about summary refs log tree commit diff stats
path: root/html
diff options
context:
space:
mode:
Diffstat (limited to 'html')
-rw-r--r--html/cards/cards.js441
-rw-r--r--html/cards/fonts/DotGothic16-Regular.ttfbin0 -> 2027048 bytes
-rw-r--r--html/cards/fonts/OFL copy.txt93
-rw-r--r--html/cards/fonts/OFL.txt93
-rw-r--r--html/cards/fonts/PressStart2P-Regular.ttfbin0 -> 116008 bytes
-rw-r--r--html/cards/index.html36
m---------html/cards/pokemon-font0
-rw-r--r--html/ccc/index.html653
-rw-r--r--html/flexagon/TODO.txt89
-rw-r--r--html/flexagon/flexagon.js502
-rw-r--r--html/flexagon/index.html26
-rw-r--r--html/fps/game.js992
-rw-r--r--html/fps/index.html23
-rw-r--r--html/immoral/app.js825
-rw-r--r--html/immoral/bookmarklet.js564
-rw-r--r--html/immoral/index.html221
-rw-r--r--html/isometric-bounce/index.html22
-rw-r--r--html/isometric-bounce/js/game.js335
-rw-r--r--html/kgame/index.html59
-rw-r--r--html/kgame/script.js437
-rw-r--r--html/kgame/style.css90
-rw-r--r--html/matt-chat/ChicagoFLF.ttfbin0 -> 31256 bytes
-rw-r--r--html/matt-chat/cat.pngbin0 -> 2573 bytes
-rw-r--r--html/matt-chat/com.user.server.plist16
-rw-r--r--html/matt-chat/index.html1266
-rw-r--r--html/matt-chat/pokemon.js157
-rwxr-xr-xhtml/matt-chat/server.sh23
-rw-r--r--html/matt-chat/uswds/css/uswds.css30073
-rw-r--r--html/matt-chat/uswds/css/uswds.min.css4
-rw-r--r--html/matt-chat/uswds/css/uswds.min.css.map1
-rw-r--r--html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-Black.ttfbin0 -> 47828 bytes
-rw-r--r--html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-Black.woffbin0 -> 26568 bytes
-rw-r--r--html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-Black.woff2bin0 -> 21036 bytes
-rw-r--r--html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-BlackItalic.ttfbin0 -> 41000 bytes
-rw-r--r--html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-BlackItalic.woffbin0 -> 24324 bytes
-rw-r--r--html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-BlackItalic.woff2bin0 -> 19384 bytes
-rw-r--r--html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-Bold.ttfbin0 -> 47228 bytes
-rw-r--r--html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-Bold.woffbin0 -> 26892 bytes
-rw-r--r--html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-Bold.woff2bin0 -> 21308 bytes
-rw-r--r--html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-BoldItalic.ttfbin0 -> 40472 bytes
-rw-r--r--html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-BoldItalic.woffbin0 -> 24464 bytes
-rw-r--r--html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-BoldItalic.woff2bin0 -> 19568 bytes
-rw-r--r--html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-Italic.ttfbin0 -> 39480 bytes
-rw-r--r--html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-Italic.woffbin0 -> 24152 bytes
-rw-r--r--html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-Italic.woff2bin0 -> 19252 bytes
-rw-r--r--html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-Light.ttfbin0 -> 49164 bytes
-rw-r--r--html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-Light.woffbin0 -> 26988 bytes
-rw-r--r--html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-Light.woff2bin0 -> 21260 bytes
-rw-r--r--html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-LightItalic.ttfbin0 -> 39456 bytes
-rw-r--r--html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-LightItalic.woffbin0 -> 23808 bytes
-rw-r--r--html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-LightItalic.woff2bin0 -> 18976 bytes
-rw-r--r--html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-Regular.ttfbin0 -> 49484 bytes
-rw-r--r--html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-Regular.woffbin0 -> 27512 bytes
-rw-r--r--html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-Regular.woff2bin0 -> 21692 bytes
-rw-r--r--html/matt-chat/uswds/fonts/public-sans/PublicSans-Black.ttfbin0 -> 79168 bytes
-rw-r--r--html/matt-chat/uswds/fonts/public-sans/PublicSans-Black.woffbin0 -> 38904 bytes
-rw-r--r--html/matt-chat/uswds/fonts/public-sans/PublicSans-Black.woff2bin0 -> 31584 bytes
-rw-r--r--html/matt-chat/uswds/fonts/public-sans/PublicSans-BlackItalic.ttfbin0 -> 79016 bytes
-rw-r--r--html/matt-chat/uswds/fonts/public-sans/PublicSans-BlackItalic.woffbin0 -> 39580 bytes
-rw-r--r--html/matt-chat/uswds/fonts/public-sans/PublicSans-BlackItalic.woff2bin0 -> 32192 bytes
-rw-r--r--html/matt-chat/uswds/fonts/public-sans/PublicSans-Bold.ttfbin0 -> 79468 bytes
-rw-r--r--html/matt-chat/uswds/fonts/public-sans/PublicSans-Bold.woffbin0 -> 40048 bytes
-rw-r--r--html/matt-chat/uswds/fonts/public-sans/PublicSans-Bold.woff2bin0 -> 32404 bytes
-rw-r--r--html/matt-chat/uswds/fonts/public-sans/PublicSans-BoldItalic.ttfbin0 -> 79272 bytes
-rw-r--r--html/matt-chat/uswds/fonts/public-sans/PublicSans-BoldItalic.woffbin0 -> 40672 bytes
-rw-r--r--html/matt-chat/uswds/fonts/public-sans/PublicSans-BoldItalic.woff2bin0 -> 33212 bytes
-rw-r--r--html/matt-chat/uswds/fonts/public-sans/PublicSans-ExtraBold.ttfbin0 -> 79904 bytes
-rw-r--r--html/matt-chat/uswds/fonts/public-sans/PublicSans-ExtraBold.woffbin0 -> 40144 bytes
-rw-r--r--html/matt-chat/uswds/fonts/public-sans/PublicSans-ExtraBold.woff2bin0 -> 32700 bytes
-rw-r--r--html/matt-chat/uswds/fonts/public-sans/PublicSans-ExtraBoldItalic.ttfbin0 -> 79768 bytes
-rw-r--r--html/matt-chat/uswds/fonts/public-sans/PublicSans-ExtraBoldItalic.woffbin0 -> 40660 bytes
-rw-r--r--html/matt-chat/uswds/fonts/public-sans/PublicSans-ExtraBoldItalic.woff2bin0 -> 33160 bytes
-rw-r--r--html/matt-chat/uswds/fonts/public-sans/PublicSans-ExtraLight.ttfbin0 -> 80400 bytes
-rw-r--r--html/matt-chat/uswds/fonts/public-sans/PublicSans-ExtraLight.woffbin0 -> 40036 bytes
-rw-r--r--html/matt-chat/uswds/fonts/public-sans/PublicSans-ExtraLight.woff2bin0 -> 32480 bytes
-rw-r--r--html/matt-chat/uswds/fonts/public-sans/PublicSans-ExtraLightItalic.ttfbin0 -> 80296 bytes
-rw-r--r--html/matt-chat/uswds/fonts/public-sans/PublicSans-ExtraLightItalic.woffbin0 -> 40504 bytes
-rw-r--r--html/matt-chat/uswds/fonts/public-sans/PublicSans-ExtraLightItalic.woff2bin0 -> 33044 bytes
-rw-r--r--html/matt-chat/uswds/fonts/public-sans/PublicSans-Italic.ttfbin0 -> 79568 bytes
-rw-r--r--html/matt-chat/uswds/fonts/public-sans/PublicSans-Italic.woffbin0 -> 40524 bytes
-rw-r--r--html/matt-chat/uswds/fonts/public-sans/PublicSans-Italic.woff2bin0 -> 33036 bytes
-rw-r--r--html/matt-chat/uswds/fonts/public-sans/PublicSans-Light.ttfbin0 -> 79784 bytes
-rw-r--r--html/matt-chat/uswds/fonts/public-sans/PublicSans-Light.woffbin0 -> 40168 bytes
-rw-r--r--html/matt-chat/uswds/fonts/public-sans/PublicSans-Light.woff2bin0 -> 32608 bytes
-rw-r--r--html/matt-chat/uswds/fonts/public-sans/PublicSans-LightItalic.ttfbin0 -> 79296 bytes
-rw-r--r--html/matt-chat/uswds/fonts/public-sans/PublicSans-LightItalic.woffbin0 -> 40480 bytes
-rw-r--r--html/matt-chat/uswds/fonts/public-sans/PublicSans-LightItalic.woff2bin0 -> 32916 bytes
-rw-r--r--html/matt-chat/uswds/fonts/public-sans/PublicSans-Medium.ttfbin0 -> 79904 bytes
-rw-r--r--html/matt-chat/uswds/fonts/public-sans/PublicSans-Medium.woffbin0 -> 40244 bytes
-rw-r--r--html/matt-chat/uswds/fonts/public-sans/PublicSans-Medium.woff2bin0 -> 32688 bytes
-rw-r--r--html/matt-chat/uswds/fonts/public-sans/PublicSans-MediumItalic.ttfbin0 -> 79372 bytes
-rw-r--r--html/matt-chat/uswds/fonts/public-sans/PublicSans-MediumItalic.woffbin0 -> 40500 bytes
-rw-r--r--html/matt-chat/uswds/fonts/public-sans/PublicSans-MediumItalic.woff2bin0 -> 33088 bytes
-rw-r--r--html/matt-chat/uswds/fonts/public-sans/PublicSans-Regular.ttfbin0 -> 79904 bytes
-rw-r--r--html/matt-chat/uswds/fonts/public-sans/PublicSans-Regular.woffbin0 -> 40112 bytes
-rw-r--r--html/matt-chat/uswds/fonts/public-sans/PublicSans-Regular.woff2bin0 -> 32548 bytes
-rw-r--r--html/matt-chat/uswds/fonts/public-sans/PublicSans-SemiBold.ttfbin0 -> 79296 bytes
-rw-r--r--html/matt-chat/uswds/fonts/public-sans/PublicSans-SemiBold.woffbin0 -> 40084 bytes
-rw-r--r--html/matt-chat/uswds/fonts/public-sans/PublicSans-SemiBold.woff2bin0 -> 32588 bytes
-rw-r--r--html/matt-chat/uswds/fonts/public-sans/PublicSans-SemiBoldItalic.ttfbin0 -> 79352 bytes
-rw-r--r--html/matt-chat/uswds/fonts/public-sans/PublicSans-SemiBoldItalic.woffbin0 -> 40532 bytes
-rw-r--r--html/matt-chat/uswds/fonts/public-sans/PublicSans-SemiBoldItalic.woff2bin0 -> 33060 bytes
-rw-r--r--html/matt-chat/uswds/fonts/public-sans/PublicSans-Thin.ttfbin0 -> 77708 bytes
-rw-r--r--html/matt-chat/uswds/fonts/public-sans/PublicSans-Thin.woffbin0 -> 38480 bytes
-rw-r--r--html/matt-chat/uswds/fonts/public-sans/PublicSans-Thin.woff2bin0 -> 31120 bytes
-rw-r--r--html/matt-chat/uswds/fonts/public-sans/PublicSans-ThinItalic.ttfbin0 -> 76964 bytes
-rw-r--r--html/matt-chat/uswds/fonts/public-sans/PublicSans-ThinItalic.woffbin0 -> 38908 bytes
-rw-r--r--html/matt-chat/uswds/fonts/public-sans/PublicSans-ThinItalic.woff2bin0 -> 31608 bytes
-rw-r--r--html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-100.ttfbin0 -> 31836 bytes
-rw-r--r--html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-100.woffbin0 -> 20080 bytes
-rw-r--r--html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-100.woff2bin0 -> 16656 bytes
-rw-r--r--html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-100italic.ttfbin0 -> 31808 bytes
-rw-r--r--html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-100italic.woffbin0 -> 20716 bytes
-rw-r--r--html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-100italic.woff2bin0 -> 17008 bytes
-rw-r--r--html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-300.ttfbin0 -> 32160 bytes
-rw-r--r--html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-300.woffbin0 -> 19884 bytes
-rw-r--r--html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-300.woff2bin0 -> 16380 bytes
-rw-r--r--html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-300italic.ttfbin0 -> 32596 bytes
-rw-r--r--html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-300italic.woffbin0 -> 21052 bytes
-rw-r--r--html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-300italic.woff2bin0 -> 17340 bytes
-rw-r--r--html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-500.ttfbin0 -> 31168 bytes
-rw-r--r--html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-500.woffbin0 -> 19656 bytes
-rw-r--r--html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-500.woff2bin0 -> 16016 bytes
-rw-r--r--html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-500italic.ttfbin0 -> 32816 bytes
-rw-r--r--html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-500italic.woffbin0 -> 21128 bytes
-rw-r--r--html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-500italic.woff2bin0 -> 17480 bytes
-rw-r--r--html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-700.ttfbin0 -> 31092 bytes
-rw-r--r--html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-700.woffbin0 -> 19564 bytes
-rw-r--r--html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-700.woff2bin0 -> 15956 bytes
-rw-r--r--html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-700italic.ttfbin0 -> 32564 bytes
-rw-r--r--html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-700italic.woffbin0 -> 21132 bytes
-rw-r--r--html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-700italic.woff2bin0 -> 17336 bytes
-rw-r--r--html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-italic.ttfbin0 -> 32336 bytes
-rw-r--r--html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-italic.woffbin0 -> 21096 bytes
-rw-r--r--html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-italic.woff2bin0 -> 17312 bytes
-rw-r--r--html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-regular.ttfbin0 -> 31052 bytes
-rw-r--r--html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-regular.woffbin0 -> 19576 bytes
-rw-r--r--html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-regular.woff2bin0 -> 16028 bytes
-rw-r--r--html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-black-webfont.ttfbin0 -> 54096 bytes
-rw-r--r--html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-black-webfont.woffbin0 -> 24888 bytes
-rw-r--r--html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-black-webfont.woff2bin0 -> 19560 bytes
-rw-r--r--html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-blackitalic-webfont.ttfbin0 -> 38784 bytes
-rw-r--r--html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-blackitalic-webfont.woffbin0 -> 19540 bytes
-rw-r--r--html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-blackitalic-webfont.woff2bin0 -> 15636 bytes
-rw-r--r--html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-bold-webfont.ttfbin0 -> 54340 bytes
-rw-r--r--html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-bold-webfont.woffbin0 -> 26040 bytes
-rw-r--r--html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-bold-webfont.woff2bin0 -> 20368 bytes
-rw-r--r--html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-bolditalic-webfont.ttfbin0 -> 38760 bytes
-rw-r--r--html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-bolditalic-webfont.woffbin0 -> 20164 bytes
-rw-r--r--html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-bolditalic-webfont.woff2bin0 -> 16416 bytes
-rw-r--r--html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-extralight-webfont.ttfbin0 -> 53996 bytes
-rw-r--r--html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-extralight-webfont.woffbin0 -> 25184 bytes
-rw-r--r--html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-extralight-webfont.woff2bin0 -> 19772 bytes
-rw-r--r--html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-extralightitalic-webfont.ttfbin0 -> 39120 bytes
-rw-r--r--html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-extralightitalic-webfont.woffbin0 -> 19548 bytes
-rw-r--r--html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-extralightitalic-webfont.woff2bin0 -> 15728 bytes
-rw-r--r--html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-italic-webfont.ttfbin0 -> 38848 bytes
-rw-r--r--html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-italic-webfont.woffbin0 -> 20204 bytes
-rw-r--r--html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-italic-webfont.woff2bin0 -> 16372 bytes
-rw-r--r--html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-light-webfont.ttfbin0 -> 54504 bytes
-rw-r--r--html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-light-webfont.woffbin0 -> 25956 bytes
-rw-r--r--html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-light-webfont.woff2bin0 -> 20412 bytes
-rw-r--r--html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-lightitalic-webfont.ttfbin0 -> 39144 bytes
-rw-r--r--html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-lightitalic-webfont.woffbin0 -> 20256 bytes
-rw-r--r--html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-lightitalic-webfont.woff2bin0 -> 16316 bytes
-rw-r--r--html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-regular-webfont.ttfbin0 -> 54432 bytes
-rw-r--r--html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-regular-webfont.woffbin0 -> 26140 bytes
-rw-r--r--html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-regular-webfont.woff2bin0 -> 20540 bytes
-rw-r--r--html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-semibold-webfont.ttfbin0 -> 54400 bytes
-rw-r--r--html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-semibold-webfont.woffbin0 -> 26144 bytes
-rw-r--r--html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-semibold-webfont.woff2bin0 -> 20500 bytes
-rw-r--r--html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-semibolditalic-webfont.ttfbin0 -> 38848 bytes
-rw-r--r--html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-semibolditalic-webfont.woffbin0 -> 20084 bytes
-rw-r--r--html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-semibolditalic-webfont.woff2bin0 -> 16404 bytes
-rw-r--r--html/matt-chat/uswds/img/checkbox-indeterminate-alt.svg1
-rw-r--r--html/matt-chat/uswds/img/checkbox-indeterminate.svg1
-rw-r--r--html/matt-chat/uswds/img/circle-124.pngbin0 -> 1352 bytes
-rw-r--r--html/matt-chat/uswds/img/circle-gray-20.svg1
-rw-r--r--html/matt-chat/uswds/img/correct8-alt.svg1
-rw-r--r--html/matt-chat/uswds/img/correct8.svg1
-rw-r--r--html/matt-chat/uswds/img/favicons/favicon-114.pngbin0 -> 1469 bytes
-rw-r--r--html/matt-chat/uswds/img/favicons/favicon-144.pngbin0 -> 1817 bytes
-rw-r--r--html/matt-chat/uswds/img/favicons/favicon-16.pngbin0 -> 373 bytes
-rw-r--r--html/matt-chat/uswds/img/favicons/favicon-192.pngbin0 -> 2326 bytes
-rw-r--r--html/matt-chat/uswds/img/favicons/favicon-40.pngbin0 -> 667 bytes
-rw-r--r--html/matt-chat/uswds/img/favicons/favicon-57.pngbin0 -> 896 bytes
-rw-r--r--html/matt-chat/uswds/img/favicons/favicon-72.pngbin0 -> 1029 bytes
-rw-r--r--html/matt-chat/uswds/img/favicons/favicon.icobin0 -> 15086 bytes
-rw-r--r--html/matt-chat/uswds/img/favicons/favicon.pngbin0 -> 2851 bytes
-rw-r--r--html/matt-chat/uswds/img/file-excel.svg1
-rw-r--r--html/matt-chat/uswds/img/file-pdf.svg1
-rw-r--r--html/matt-chat/uswds/img/file-video.svg1
-rw-r--r--html/matt-chat/uswds/img/file-word.svg1
-rw-r--r--html/matt-chat/uswds/img/file.svg1
-rw-r--r--html/matt-chat/uswds/img/hero.jpgbin0 -> 146561 bytes
-rw-r--r--html/matt-chat/uswds/img/hero.webpbin0 -> 104736 bytes
-rw-r--r--html/matt-chat/uswds/img/icon-dot-gov.svg1
-rw-r--r--html/matt-chat/uswds/img/icon-https.svg1
-rw-r--r--html/matt-chat/uswds/img/loader.gifbin0 -> 7437 bytes
-rw-r--r--html/matt-chat/uswds/img/loader.svg1
-rw-r--r--html/matt-chat/uswds/img/lock.svg1
-rw-r--r--html/matt-chat/uswds/img/logo-img.pngbin0 -> 1022 bytes
-rwxr-xr-xhtml/matt-chat/uswds/img/material-icons-deprecated/eco.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons-deprecated/facebook.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons-deprecated/info_outline.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons-deprecated/lightbulb_outline.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons-deprecated/lock_outline.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/10k.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/10mp.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/11mp.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/123.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/12mp.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/13mp.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/14mp.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/15mp.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/16mp.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/17mp.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/18_up_rating.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/18mp.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/19mp.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/1k.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/1k_plus.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/1x_mobiledata.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/20mp.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/21mp.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/22mp.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/23mp.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/24mp.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/2k.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/2k_plus.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/2mp.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/30fps.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/30fps_select.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/360.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/3d_rotation.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/3g_mobiledata.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/3k.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/3k_plus.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/3mp.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/3p.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/4g_mobiledata.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/4g_plus_mobiledata.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/4k.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/4k_plus.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/4mp.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/5g.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/5k.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/5k_plus.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/5mp.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/60fps.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/60fps_select.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/6_ft_apart.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/6k.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/6k_plus.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/6mp.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/7k.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/7k_plus.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/7mp.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/8k.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/8k_plus.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/8mp.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/9k.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/9k_plus.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/9mp.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/abc.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/ac_unit.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/access_alarm.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/access_alarms.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/access_time.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/access_time_filled.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/accessibility.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/accessibility_new.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/accessible.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/accessible_forward.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/account_balance.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/account_balance_wallet.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/account_box.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/account_circle.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/account_tree.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/ad_units.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/adb.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/add.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/add_a_photo.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/add_alarm.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/add_alert.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/add_box.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/add_business.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/add_card.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/add_chart.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/add_circle.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/add_circle_outline.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/add_comment.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/add_home.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/add_home_work.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/add_ic_call.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/add_link.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/add_location.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/add_location_alt.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/add_moderator.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/add_photo_alternate.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/add_reaction.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/add_road.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/add_shopping_cart.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/add_task.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/add_to_drive.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/add_to_home_screen.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/add_to_photos.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/add_to_queue.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/addchart.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/adf_scanner.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/adjust.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/admin_panel_settings.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/ads_click.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/agriculture.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/air.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/airline_seat_flat.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/airline_seat_flat_angled.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/airline_seat_individual_suite.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/airline_seat_legroom_extra.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/airline_seat_legroom_normal.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/airline_seat_legroom_reduced.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/airline_seat_recline_extra.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/airline_seat_recline_normal.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/airline_stops.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/airlines.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/airplane_ticket.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/airplanemode_active.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/airplanemode_inactive.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/airplay.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/airport_shuttle.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/alarm.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/alarm_add.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/alarm_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/alarm_on.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/album.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/align_horizontal_center.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/align_horizontal_left.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/align_horizontal_right.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/align_vertical_bottom.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/align_vertical_center.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/align_vertical_top.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/all_inbox.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/all_inclusive.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/all_out.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/alt_route.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/alternate_email.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/analytics.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/anchor.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/android.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/animation.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/announcement.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/aod.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/apartment.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/api.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/app_blocking.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/app_registration.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/app_settings_alt.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/app_shortcut.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/approval.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/apps.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/apps_outage.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/architecture.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/archive.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/area_chart.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/arrow_back.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/arrow_back_ios.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/arrow_back_ios_new.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/arrow_circle_down.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/arrow_circle_left.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/arrow_circle_right.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/arrow_circle_up.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/arrow_downward.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/arrow_drop_down.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/arrow_drop_down_circle.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/arrow_drop_up.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/arrow_forward.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/arrow_forward_ios.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/arrow_left.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/arrow_outward.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/arrow_right.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/arrow_right_alt.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/arrow_upward.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/art_track.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/article.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/aspect_ratio.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/assessment.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/assignment.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/assignment_ind.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/assignment_late.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/assignment_return.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/assignment_returned.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/assignment_turned_in.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/assist_walker.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/assistant.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/assistant_direction.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/assistant_photo.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/assured_workload.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/atm.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/attach_email.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/attach_file.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/attach_money.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/attachment.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/attractions.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/attribution.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/audio_file.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/audiotrack.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/auto_awesome.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/auto_awesome_mosaic.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/auto_awesome_motion.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/auto_delete.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/auto_fix_high.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/auto_fix_normal.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/auto_fix_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/auto_graph.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/auto_mode.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/auto_stories.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/autofps_select.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/autorenew.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/av_timer.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/baby_changing_station.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/back_hand.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/backpack.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/backspace.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/backup.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/backup_table.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/badge.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/bakery_dining.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/balance.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/balcony.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/ballot.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/bar_chart.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/batch_prediction.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/bathroom.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/bathtub.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/battery_0_bar.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/battery_1_bar.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/battery_2_bar.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/battery_3_bar.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/battery_4_bar.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/battery_5_bar.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/battery_6_bar.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/battery_alert.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/battery_charging_full.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/battery_full.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/battery_saver.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/battery_std.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/battery_unknown.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/beach_access.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/bed.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/bedroom_baby.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/bedroom_child.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/bedroom_parent.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/bedtime.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/bedtime_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/beenhere.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/bento.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/bike_scooter.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/biotech.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/blender.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/blind.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/blinds.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/blinds_closed.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/block.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/bloodtype.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/bluetooth.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/bluetooth_audio.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/bluetooth_connected.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/bluetooth_disabled.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/bluetooth_drive.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/bluetooth_searching.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/blur_circular.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/blur_linear.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/blur_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/blur_on.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/bolt.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/book.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/book_online.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/bookmark.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/bookmark_add.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/bookmark_added.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/bookmark_border.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/bookmark_remove.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/bookmarks.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/border_all.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/border_bottom.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/border_clear.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/border_color.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/border_horizontal.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/border_inner.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/border_left.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/border_outer.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/border_right.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/border_style.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/border_top.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/border_vertical.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/boy.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/branding_watermark.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/breakfast_dining.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/brightness_1.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/brightness_2.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/brightness_3.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/brightness_4.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/brightness_5.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/brightness_6.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/brightness_7.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/brightness_auto.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/brightness_high.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/brightness_low.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/brightness_medium.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/broadcast_on_home.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/broadcast_on_personal.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/broken_image.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/browse_gallery.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/browser_not_supported.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/browser_updated.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/brunch_dining.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/brush.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/bubble_chart.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/bug_report.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/build.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/build_circle.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/bungalow.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/burst_mode.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/bus_alert.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/business.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/business_center.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/cabin.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/cable.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/cached.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/cake.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/calculate.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/calendar_month.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/calendar_today.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/calendar_view_day.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/calendar_view_month.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/calendar_view_week.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/call.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/call_end.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/call_made.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/call_merge.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/call_missed.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/call_missed_outgoing.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/call_received.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/call_split.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/call_to_action.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/camera.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/camera_alt.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/camera_enhance.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/camera_front.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/camera_indoor.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/camera_outdoor.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/camera_rear.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/camera_roll.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/cameraswitch.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/campaign.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/cancel.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/cancel_presentation.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/cancel_schedule_send.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/candlestick_chart.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/car_crash.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/car_rental.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/car_repair.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/card_giftcard.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/card_membership.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/card_travel.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/carpenter.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/cases.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/casino.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/cast.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/cast_connected.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/cast_for_education.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/castle.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/catching_pokemon.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/category.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/celebration.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/cell_tower.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/cell_wifi.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/center_focus_strong.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/center_focus_weak.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/chair.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/chair_alt.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/chalet.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/change_circle.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/change_history.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/charging_station.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/chat.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/chat_bubble.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/chat_bubble_outline.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/check.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/check_box.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/check_box_outline_blank.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/check_circle.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/check_circle_outline.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/checklist.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/checklist_rtl.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/checkroom.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/chevron_left.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/chevron_right.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/child_care.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/child_friendly.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/chrome_reader_mode.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/church.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/circle.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/circle_notifications.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/class.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/clean_hands.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/cleaning_services.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/clear.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/clear_all.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/close.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/close_fullscreen.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/closed_caption.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/closed_caption_disabled.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/closed_caption_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/cloud.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/cloud_circle.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/cloud_done.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/cloud_download.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/cloud_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/cloud_queue.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/cloud_sync.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/cloud_upload.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/co2.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/co_present.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/code.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/code_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/coffee.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/coffee_maker.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/collections.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/collections_bookmark.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/color_lens.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/colorize.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/comment.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/comment_bank.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/comments_disabled.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/commit.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/commute.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/compare.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/compare_arrows.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/compass_calibration.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/compost.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/compress.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/computer.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/confirmation_number.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/connect_without_contact.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/connected_tv.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/connecting_airports.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/construction.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/contact_emergency.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/contact_mail.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/contact_page.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/contact_phone.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/contact_support.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/contactless.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/contacts.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/content_copy.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/content_cut.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/content_paste.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/content_paste_go.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/content_paste_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/content_paste_search.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/contrast.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/control_camera.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/control_point.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/control_point_duplicate.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/cookie.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/copy_all.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/copyright.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/coronavirus.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/corporate_fare.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/cottage.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/countertops.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/create.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/create_new_folder.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/credit_card.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/credit_card_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/credit_score.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/crib.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/crisis_alert.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/crop.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/crop_16_9.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/crop_3_2.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/crop_5_4.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/crop_7_5.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/crop_din.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/crop_free.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/crop_landscape.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/crop_original.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/crop_portrait.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/crop_rotate.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/crop_square.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/cruelty_free.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/css.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/currency_bitcoin.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/currency_exchange.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/currency_franc.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/currency_lira.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/currency_pound.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/currency_ruble.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/currency_rupee.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/currency_yen.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/currency_yuan.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/curtains.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/curtains_closed.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/cyclone.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/dangerous.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/dark_mode.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/dashboard.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/dashboard_customize.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/data_array.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/data_exploration.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/data_object.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/data_saver_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/data_saver_on.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/data_thresholding.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/data_usage.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/dataset.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/dataset_linked.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/date_range.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/deblur.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/deck.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/dehaze.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/delete.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/delete_forever.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/delete_outline.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/delete_sweep.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/delivery_dining.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/density_large.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/density_medium.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/density_small.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/departure_board.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/description.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/deselect.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/design_services.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/desk.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/desktop_access_disabled.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/desktop_mac.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/desktop_windows.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/details.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/developer_board.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/developer_board_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/developer_mode.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/device_hub.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/device_thermostat.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/device_unknown.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/devices.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/devices_fold.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/devices_other.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/dialer_sip.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/dialpad.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/diamond.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/difference.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/dining.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/dinner_dining.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/directions.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/directions_bike.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/directions_boat.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/directions_boat_filled.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/directions_bus.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/directions_bus_filled.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/directions_car.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/directions_car_filled.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/directions_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/directions_railway.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/directions_railway_filled.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/directions_run.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/directions_subway.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/directions_subway_filled.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/directions_transit.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/directions_transit_filled.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/directions_walk.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/dirty_lens.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/disabled_by_default.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/disabled_visible.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/disc_full.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/discount.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/display_settings.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/diversity_1.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/diversity_2.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/diversity_3.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/dns.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/do_disturb.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/do_disturb_alt.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/do_disturb_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/do_disturb_on.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/do_not_disturb.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/do_not_disturb_alt.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/do_not_disturb_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/do_not_disturb_on.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/do_not_disturb_on_total_silence.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/do_not_step.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/do_not_touch.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/dock.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/document_scanner.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/domain.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/domain_add.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/domain_disabled.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/domain_verification.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/done.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/done_all.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/done_outline.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/donut_large.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/donut_small.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/door_back.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/door_front.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/door_sliding.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/doorbell.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/double_arrow.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/downhill_skiing.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/download.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/download_done.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/download_for_offline.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/downloading.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/drafts.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/drag_handle.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/drag_indicator.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/draw.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/drive_eta.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/drive_file_move.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/drive_file_move_rtl.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/drive_file_rename_outline.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/drive_folder_upload.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/dry.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/dry_cleaning.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/duo.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/dvr.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/dynamic_feed.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/dynamic_form.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/e_mobiledata.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/earbuds.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/earbuds_battery.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/east.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/edgesensor_high.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/edgesensor_low.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/edit.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/edit_attributes.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/edit_calendar.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/edit_location.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/edit_location_alt.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/edit_note.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/edit_notifications.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/edit_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/edit_road.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/egg.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/egg_alt.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/eject.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/elderly.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/elderly_woman.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/electric_bike.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/electric_bolt.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/electric_car.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/electric_meter.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/electric_moped.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/electric_rickshaw.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/electric_scooter.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/electrical_services.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/elevator.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/email.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/emergency.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/emergency_recording.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/emergency_share.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/emoji_emotions.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/emoji_events.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/emoji_food_beverage.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/emoji_nature.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/emoji_objects.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/emoji_people.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/emoji_symbols.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/emoji_transportation.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/energy_savings_leaf.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/engineering.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/enhanced_encryption.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/equalizer.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/error.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/error_outline.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/escalator.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/escalator_warning.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/euro.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/euro_symbol.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/ev_station.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/event.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/event_available.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/event_busy.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/event_note.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/event_repeat.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/event_seat.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/exit_to_app.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/expand.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/expand_circle_down.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/expand_less.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/expand_more.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/explicit.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/explore.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/explore_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/exposure.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/exposure_neg_1.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/exposure_neg_2.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/exposure_plus_1.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/exposure_plus_2.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/exposure_zero.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/extension.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/extension_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/face.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/face_2.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/face_3.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/face_4.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/face_5.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/face_6.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/face_retouching_natural.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/face_retouching_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/fact_check.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/factory.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/family_restroom.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/fast_forward.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/fast_rewind.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/fastfood.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/favorite.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/favorite_border.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/fax.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/featured_play_list.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/featured_video.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/feed.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/feedback.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/female.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/fence.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/festival.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/fiber_dvr.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/fiber_manual_record.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/fiber_new.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/fiber_pin.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/fiber_smart_record.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/file_copy.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/file_download.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/file_download_done.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/file_download_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/file_open.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/file_present.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/file_upload.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/filter.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/filter_1.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/filter_2.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/filter_3.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/filter_4.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/filter_5.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/filter_6.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/filter_7.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/filter_8.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/filter_9.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/filter_9_plus.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/filter_alt.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/filter_alt_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/filter_b_and_w.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/filter_center_focus.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/filter_drama.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/filter_frames.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/filter_hdr.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/filter_list.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/filter_list_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/filter_none.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/filter_tilt_shift.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/filter_vintage.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/find_in_page.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/find_replace.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/fingerprint.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/fire_extinguisher.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/fire_hydrant_alt.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/fire_truck.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/fireplace.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/first_page.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/fit_screen.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/fitbit.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/fitness_center.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/flag.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/flag_circle.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/flaky.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/flare.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/flash_auto.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/flash_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/flash_on.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/flashlight_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/flashlight_on.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/flatware.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/flight.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/flight_class.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/flight_land.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/flight_takeoff.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/flip.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/flip_camera_android.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/flip_camera_ios.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/flip_to_back.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/flip_to_front.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/flood.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/fluorescent.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/flutter_dash.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/fmd_bad.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/fmd_good.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/folder.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/folder_copy.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/folder_delete.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/folder_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/folder_open.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/folder_shared.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/folder_special.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/folder_zip.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/follow_the_signs.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/font_download.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/font_download_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/food_bank.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/forest.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/fork_left.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/fork_right.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/format_align_center.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/format_align_justify.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/format_align_left.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/format_align_right.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/format_bold.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/format_clear.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/format_color_fill.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/format_color_reset.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/format_color_text.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/format_indent_decrease.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/format_indent_increase.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/format_italic.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/format_line_spacing.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/format_list_bulleted.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/format_list_numbered.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/format_list_numbered_rtl.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/format_overline.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/format_paint.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/format_quote.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/format_shapes.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/format_size.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/format_strikethrough.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/format_textdirection_l_to_r.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/format_textdirection_r_to_l.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/format_underlined.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/fort.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/forum.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/forward.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/forward_10.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/forward_30.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/forward_5.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/forward_to_inbox.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/foundation.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/free_breakfast.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/free_cancellation.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/front_hand.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/fullscreen.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/fullscreen_exit.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/functions.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/g_mobiledata.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/g_translate.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/gamepad.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/games.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/garage.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/gas_meter.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/gavel.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/generating_tokens.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/gesture.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/get_app.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/gif.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/gif_box.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/girl.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/gite.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/golf_course.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/gpp_bad.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/gpp_good.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/gpp_maybe.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/gps_fixed.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/gps_not_fixed.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/gps_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/grade.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/gradient.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/grading.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/grain.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/graphic_eq.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/grass.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/grid_3x3.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/grid_4x4.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/grid_goldenratio.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/grid_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/grid_on.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/grid_view.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/group.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/group_add.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/group_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/group_remove.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/group_work.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/groups.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/groups_2.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/groups_3.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/h_mobiledata.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/h_plus_mobiledata.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/hail.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/handshake.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/handyman.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/hardware.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/hd.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/hdr_auto.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/hdr_auto_select.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/hdr_enhanced_select.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/hdr_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/hdr_off_select.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/hdr_on.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/hdr_on_select.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/hdr_plus.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/hdr_strong.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/hdr_weak.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/headphones.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/headphones_battery.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/headset.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/headset_mic.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/headset_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/healing.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/health_and_safety.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/hearing.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/hearing_disabled.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/heart_broken.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/heat_pump.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/height.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/help.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/help_center.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/help_outline.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/hevc.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/hexagon.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/hide_image.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/hide_source.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/high_quality.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/highlight.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/highlight_alt.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/highlight_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/hiking.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/history.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/history_edu.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/history_toggle_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/hive.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/hls.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/hls_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/holiday_village.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/home.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/home_max.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/home_mini.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/home_repair_service.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/home_work.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/horizontal_distribute.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/horizontal_rule.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/horizontal_split.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/hot_tub.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/hotel.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/hotel_class.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/hourglass_bottom.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/hourglass_disabled.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/hourglass_empty.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/hourglass_full.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/hourglass_top.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/house.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/house_siding.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/houseboat.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/how_to_reg.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/how_to_vote.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/html.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/http.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/https.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/hub.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/hvac.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/ice_skating.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/icecream.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/image.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/image_aspect_ratio.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/image_not_supported.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/image_search.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/imagesearch_roller.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/import_contacts.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/import_export.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/important_devices.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/inbox.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/incomplete_circle.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/indeterminate_check_box.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/info.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/input.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/insert_chart.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/insert_chart_outlined.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/insert_comment.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/insert_drive_file.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/insert_emoticon.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/insert_invitation.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/insert_link.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/insert_page_break.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/insert_photo.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/insights.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/install_desktop.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/install_mobile.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/integration_instructions.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/interests.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/interpreter_mode.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/inventory.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/inventory_2.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/invert_colors.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/invert_colors_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/ios_share.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/iron.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/iso.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/javascript.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/join_full.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/join_inner.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/join_left.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/join_right.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/kayaking.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/kebab_dining.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/key.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/key_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/keyboard.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/keyboard_alt.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/keyboard_arrow_down.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/keyboard_arrow_left.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/keyboard_arrow_right.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/keyboard_arrow_up.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/keyboard_backspace.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/keyboard_capslock.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/keyboard_command_key.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/keyboard_control_key.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/keyboard_double_arrow_down.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/keyboard_double_arrow_left.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/keyboard_double_arrow_right.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/keyboard_double_arrow_up.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/keyboard_hide.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/keyboard_option_key.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/keyboard_return.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/keyboard_tab.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/keyboard_voice.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/king_bed.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/kitchen.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/kitesurfing.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/label.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/label_important.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/label_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/lan.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/landscape.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/landslide.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/language.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/laptop.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/laptop_chromebook.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/laptop_mac.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/laptop_windows.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/last_page.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/launch.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/layers.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/layers_clear.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/leaderboard.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/leak_add.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/leak_remove.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/legend_toggle.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/lens.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/lens_blur.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/library_add.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/library_add_check.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/library_books.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/library_music.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/light.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/light_mode.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/lightbulb.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/lightbulb_circle.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/line_axis.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/line_style.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/line_weight.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/linear_scale.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/link.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/link_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/linked_camera.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/liquor.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/list.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/list_alt.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/live_help.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/live_tv.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/living.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/local_activity.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/local_airport.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/local_atm.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/local_bar.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/local_cafe.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/local_car_wash.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/local_convenience_store.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/local_dining.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/local_drink.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/local_fire_department.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/local_florist.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/local_gas_station.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/local_grocery_store.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/local_hospital.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/local_hotel.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/local_laundry_service.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/local_library.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/local_mall.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/local_movies.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/local_offer.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/local_parking.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/local_pharmacy.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/local_phone.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/local_pizza.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/local_play.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/local_police.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/local_post_office.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/local_printshop.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/local_see.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/local_shipping.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/local_taxi.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/location_city.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/location_disabled.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/location_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/location_on.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/location_searching.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/lock.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/lock_clock.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/lock_open.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/lock_person.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/lock_reset.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/login.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/logo_dev.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/logout.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/looks.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/looks_3.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/looks_4.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/looks_5.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/looks_6.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/looks_one.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/looks_two.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/loop.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/loupe.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/low_priority.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/loyalty.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/lte_mobiledata.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/lte_plus_mobiledata.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/luggage.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/lunch_dining.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/lyrics.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/macro_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/mail.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/mail_lock.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/mail_outline.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/male.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/man.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/man_2.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/man_3.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/man_4.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/manage_accounts.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/manage_history.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/manage_search.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/map.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/maps_home_work.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/maps_ugc.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/margin.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/mark_as_unread.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/mark_chat_read.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/mark_chat_unread.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/mark_email_read.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/mark_email_unread.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/mark_unread_chat_alt.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/markunread.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/markunread_mailbox.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/masks.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/maximize.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/media_bluetooth_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/media_bluetooth_on.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/mediation.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/medical_information.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/medical_services.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/medication.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/medication_liquid.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/meeting_room.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/memory.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/menu.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/menu_book.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/menu_open.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/merge.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/merge_type.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/message.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/mic.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/mic_external_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/mic_external_on.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/mic_none.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/mic_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/microwave.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/military_tech.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/minimize.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/minor_crash.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/miscellaneous_services.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/missed_video_call.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/mms.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/mobile_friendly.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/mobile_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/mobile_screen_share.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/mobiledata_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/mode.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/mode_comment.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/mode_edit.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/mode_edit_outline.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/mode_fan_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/mode_night.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/mode_of_travel.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/mode_standby.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/model_training.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/monetization_on.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/money.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/money_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/money_off_csred.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/monitor.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/monitor_heart.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/monitor_weight.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/monochrome_photos.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/mood.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/mood_bad.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/moped.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/more.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/more_horiz.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/more_time.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/more_vert.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/mosque.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/motion_photos_auto.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/motion_photos_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/motion_photos_on.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/motion_photos_pause.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/motion_photos_paused.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/mouse.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/move_down.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/move_to_inbox.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/move_up.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/movie.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/movie_creation.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/movie_filter.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/moving.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/mp.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/multiline_chart.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/multiple_stop.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/museum.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/music_note.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/music_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/music_video.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/my_location.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/nat.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/nature.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/nature_people.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/navigate_before.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/navigate_next.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/navigation.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/near_me.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/near_me_disabled.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/nearby_error.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/nearby_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/nest_cam_wired_stand.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/network_cell.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/network_check.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/network_locked.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/network_ping.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/network_wifi.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/network_wifi_1_bar.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/network_wifi_2_bar.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/network_wifi_3_bar.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/new_label.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/new_releases.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/newspaper.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/next_plan.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/next_week.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/nfc.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/night_shelter.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/nightlife.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/nightlight.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/nightlight_round.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/nights_stay.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/no_accounts.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/no_adult_content.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/no_backpack.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/no_cell.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/no_crash.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/no_drinks.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/no_encryption.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/no_encryption_gmailerrorred.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/no_flash.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/no_food.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/no_luggage.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/no_meals.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/no_meeting_room.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/no_photography.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/no_sim.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/no_stroller.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/no_transfer.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/noise_aware.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/noise_control_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/nordic_walking.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/north.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/north_east.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/north_west.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/not_accessible.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/not_interested.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/not_listed_location.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/not_started.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/note.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/note_add.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/note_alt.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/notes.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/notification_add.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/notification_important.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/notifications.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/notifications_active.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/notifications_none.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/notifications_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/notifications_paused.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/numbers.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/offline_bolt.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/offline_pin.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/offline_share.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/oil_barrel.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/on_device_training.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/ondemand_video.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/online_prediction.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/opacity.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/open_in_browser.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/open_in_full.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/open_in_new.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/open_in_new_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/open_with.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/other_houses.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/outbound.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/outbox.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/outdoor_grill.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/outlet.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/outlined_flag.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/output.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/padding.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/pages.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/pageview.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/paid.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/palette.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/pan_tool.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/pan_tool_alt.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/panorama.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/panorama_fish_eye.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/panorama_horizontal.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/panorama_horizontal_select.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/panorama_photosphere.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/panorama_photosphere_select.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/panorama_vertical.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/panorama_vertical_select.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/panorama_wide_angle.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/panorama_wide_angle_select.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/paragliding.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/park.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/party_mode.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/password.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/pattern.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/pause.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/pause_circle.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/pause_circle_filled.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/pause_circle_outline.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/pause_presentation.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/payment.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/payments.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/pedal_bike.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/pending.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/pending_actions.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/pentagon.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/people.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/people_alt.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/people_outline.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/percent.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/perm_camera_mic.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/perm_contact_calendar.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/perm_data_setting.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/perm_device_information.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/perm_identity.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/perm_media.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/perm_phone_msg.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/perm_scan_wifi.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/person.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/person_2.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/person_3.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/person_4.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/person_add.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/person_add_alt.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/person_add_alt_1.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/person_add_disabled.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/person_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/person_outline.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/person_pin.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/person_pin_circle.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/person_remove.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/person_remove_alt_1.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/person_search.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/personal_injury.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/personal_video.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/pest_control.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/pest_control_rodent.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/pets.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/phishing.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/phone.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/phone_android.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/phone_bluetooth_speaker.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/phone_callback.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/phone_disabled.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/phone_enabled.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/phone_forwarded.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/phone_iphone.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/phone_locked.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/phone_missed.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/phone_paused.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/phonelink.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/phonelink_erase.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/phonelink_lock.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/phonelink_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/phonelink_ring.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/phonelink_setup.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/photo.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/photo_album.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/photo_camera.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/photo_camera_back.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/photo_camera_front.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/photo_filter.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/photo_library.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/photo_size_select_actual.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/photo_size_select_large.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/photo_size_select_small.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/php.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/piano.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/piano_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/picture_as_pdf.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/picture_in_picture.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/picture_in_picture_alt.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/pie_chart.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/pie_chart_outline.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/pin.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/pin_drop.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/pin_end.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/pin_invoke.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/pinch.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/pivot_table_chart.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/pix.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/place.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/plagiarism.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/play_arrow.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/play_circle.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/play_circle_filled.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/play_circle_outline.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/play_disabled.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/play_for_work.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/play_lesson.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/playlist_add.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/playlist_add_check.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/playlist_add_check_circle.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/playlist_add_circle.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/playlist_play.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/playlist_remove.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/plumbing.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/plus_one.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/podcasts.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/point_of_sale.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/policy.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/poll.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/polyline.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/polymer.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/pool.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/portable_wifi_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/portrait.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/post_add.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/power.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/power_input.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/power_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/power_settings_new.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/precision_manufacturing.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/pregnant_woman.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/present_to_all.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/preview.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/price_change.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/price_check.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/print.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/print_disabled.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/priority_high.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/privacy_tip.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/private_connectivity.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/production_quantity_limits.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/propane.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/propane_tank.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/psychology.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/psychology_alt.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/public.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/public_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/publish.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/published_with_changes.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/punch_clock.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/push_pin.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/qr_code.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/qr_code_2.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/qr_code_scanner.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/query_builder.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/query_stats.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/question_answer.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/question_mark.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/queue.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/queue_music.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/queue_play_next.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/quickreply.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/quiz.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/r_mobiledata.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/radar.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/radio.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/radio_button_checked.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/radio_button_unchecked.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/railway_alert.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/ramen_dining.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/ramp_left.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/ramp_right.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/rate_review.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/raw_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/raw_on.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/read_more.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/real_estate_agent.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/receipt.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/receipt_long.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/recent_actors.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/recommend.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/record_voice_over.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/rectangle.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/recycling.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/redeem.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/redo.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/reduce_capacity.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/refresh.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/remember_me.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/remove.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/remove_circle.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/remove_circle_outline.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/remove_done.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/remove_from_queue.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/remove_moderator.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/remove_red_eye.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/remove_road.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/remove_shopping_cart.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/reorder.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/repartition.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/repeat.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/repeat_on.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/repeat_one.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/repeat_one_on.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/replay.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/replay_10.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/replay_30.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/replay_5.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/replay_circle_filled.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/reply.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/reply_all.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/report.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/report_gmailerrorred.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/report_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/report_problem.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/request_page.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/request_quote.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/reset_tv.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/restart_alt.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/restaurant.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/restaurant_menu.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/restore.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/restore_from_trash.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/restore_page.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/reviews.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/rice_bowl.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/ring_volume.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/rocket.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/rocket_launch.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/roller_shades.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/roller_shades_closed.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/roller_skating.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/roofing.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/room.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/room_preferences.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/room_service.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/rotate_90_degrees_ccw.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/rotate_90_degrees_cw.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/rotate_left.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/rotate_right.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/roundabout_left.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/roundabout_right.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/rounded_corner.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/route.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/router.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/rowing.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/rss_feed.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/rsvp.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/rtt.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/rule.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/rule_folder.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/run_circle.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/running_with_errors.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/rv_hookup.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/safety_check.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/safety_divider.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/sailing.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/sanitizer.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/satellite.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/satellite_alt.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/save.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/save_alt.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/save_as.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/saved_search.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/savings.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/scale.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/scanner.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/scatter_plot.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/schedule.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/schedule_send.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/schema.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/school.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/science.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/score.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/scoreboard.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/screen_lock_landscape.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/screen_lock_portrait.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/screen_lock_rotation.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/screen_rotation.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/screen_rotation_alt.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/screen_search_desktop.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/screen_share.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/screenshot.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/screenshot_monitor.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/scuba_diving.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/sd.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/sd_card.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/sd_card_alert.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/sd_storage.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/search.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/search_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/security.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/security_update.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/security_update_good.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/security_update_warning.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/segment.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/select_all.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/self_improvement.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/sell.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/send.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/send_and_archive.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/send_time_extension.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/send_to_mobile.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/sensor_door.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/sensor_occupied.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/sensor_window.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/sensors.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/sensors_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/sentiment_dissatisfied.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/sentiment_neutral.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/sentiment_satisfied.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/sentiment_satisfied_alt.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/sentiment_very_dissatisfied.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/sentiment_very_satisfied.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/set_meal.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/settings.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/settings_accessibility.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/settings_applications.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/settings_backup_restore.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/settings_bluetooth.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/settings_brightness.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/settings_cell.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/settings_ethernet.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/settings_input_antenna.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/settings_input_component.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/settings_input_composite.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/settings_input_hdmi.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/settings_input_svideo.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/settings_overscan.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/settings_phone.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/settings_power.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/settings_remote.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/settings_suggest.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/settings_system_daydream.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/settings_voice.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/severe_cold.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/shape_line.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/share.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/share_location.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/shield.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/shield_moon.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/shop.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/shop_2.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/shop_two.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/shopping_bag.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/shopping_basket.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/shopping_cart.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/shopping_cart_checkout.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/short_text.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/shortcut.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/show_chart.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/shower.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/shuffle.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/shuffle_on.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/shutter_speed.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/sick.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/sign_language.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/signal_cellular_0_bar.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/signal_cellular_4_bar.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/signal_cellular_alt.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/signal_cellular_alt_1_bar.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/signal_cellular_alt_2_bar.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/signal_cellular_connected_no_internet_0_bar.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/signal_cellular_connected_no_internet_4_bar.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/signal_cellular_no_sim.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/signal_cellular_nodata.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/signal_cellular_null.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/signal_cellular_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/signal_wifi_0_bar.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/signal_wifi_4_bar.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/signal_wifi_4_bar_lock.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/signal_wifi_bad.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/signal_wifi_connected_no_internet_4.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/signal_wifi_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/signal_wifi_statusbar_4_bar.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/signal_wifi_statusbar_connected_no_internet_4.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/signal_wifi_statusbar_null.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/signpost.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/sim_card.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/sim_card_alert.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/sim_card_download.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/single_bed.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/sip.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/skateboarding.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/skip_next.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/skip_previous.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/sledding.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/slideshow.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/slow_motion_video.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/smart_button.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/smart_display.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/smart_screen.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/smart_toy.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/smartphone.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/smoke_free.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/smoking_rooms.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/sms.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/sms_failed.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/snippet_folder.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/snooze.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/snowboarding.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/snowmobile.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/snowshoeing.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/soap.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/social_distance.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/solar_power.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/sort.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/sort_by_alpha.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/sos.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/soup_kitchen.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/source.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/south.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/south_america.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/south_east.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/south_west.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/spa.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/space_bar.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/space_dashboard.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/spatial_audio.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/spatial_audio_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/spatial_tracking.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/speaker.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/speaker_group.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/speaker_notes.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/speaker_notes_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/speaker_phone.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/speed.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/spellcheck.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/splitscreen.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/spoke.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/sports.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/sports_bar.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/sports_baseball.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/sports_basketball.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/sports_cricket.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/sports_esports.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/sports_football.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/sports_golf.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/sports_gymnastics.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/sports_handball.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/sports_hockey.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/sports_kabaddi.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/sports_martial_arts.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/sports_mma.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/sports_motorsports.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/sports_rugby.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/sports_score.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/sports_soccer.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/sports_tennis.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/sports_volleyball.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/square.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/square_foot.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/ssid_chart.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/stacked_bar_chart.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/stacked_line_chart.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/stadium.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/stairs.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/star.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/star_border.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/star_border_purple500.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/star_half.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/star_outline.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/star_purple500.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/star_rate.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/stars.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/start.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/stay_current_landscape.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/stay_current_portrait.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/stay_primary_landscape.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/stay_primary_portrait.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/sticky_note_2.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/stop.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/stop_circle.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/stop_screen_share.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/storage.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/store.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/store_mall_directory.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/storefront.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/storm.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/straight.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/straighten.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/stream.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/streetview.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/strikethrough_s.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/stroller.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/style.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/subdirectory_arrow_left.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/subdirectory_arrow_right.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/subject.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/subscript.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/subscriptions.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/subtitles.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/subtitles_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/subway.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/summarize.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/superscript.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/supervised_user_circle.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/supervisor_account.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/support.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/support_agent.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/surfing.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/surround_sound.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/swap_calls.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/swap_horiz.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/swap_horizontal_circle.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/swap_vert.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/swap_vertical_circle.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/swipe.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/swipe_down.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/swipe_down_alt.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/swipe_left.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/swipe_left_alt.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/swipe_right.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/swipe_right_alt.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/swipe_up.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/swipe_up_alt.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/swipe_vertical.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/switch_access_shortcut.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/switch_access_shortcut_add.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/switch_account.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/switch_camera.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/switch_left.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/switch_right.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/switch_video.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/synagogue.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/sync.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/sync_alt.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/sync_disabled.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/sync_lock.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/sync_problem.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/system_security_update.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/system_security_update_good.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/system_security_update_warning.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/system_update.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/system_update_alt.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/tab.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/tab_unselected.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/table_bar.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/table_chart.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/table_restaurant.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/table_rows.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/table_view.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/tablet.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/tablet_android.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/tablet_mac.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/tag.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/tag_faces.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/takeout_dining.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/tap_and_play.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/tapas.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/task.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/task_alt.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/taxi_alert.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/temple_buddhist.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/temple_hindu.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/terminal.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/terrain.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/text_decrease.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/text_fields.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/text_format.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/text_increase.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/text_rotate_up.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/text_rotate_vertical.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/text_rotation_angledown.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/text_rotation_angleup.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/text_rotation_down.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/text_rotation_none.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/text_snippet.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/textsms.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/texture.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/theater_comedy.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/theaters.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/thermostat.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/thermostat_auto.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/thumb_down.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/thumb_down_alt.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/thumb_down_off_alt.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/thumb_up.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/thumb_up_alt.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/thumb_up_off_alt.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/thumbs_up_down.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/thunderstorm.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/time_to_leave.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/timelapse.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/timeline.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/timer.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/timer_10.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/timer_10_select.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/timer_3.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/timer_3_select.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/timer_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/tips_and_updates.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/tire_repair.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/title.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/toc.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/today.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/toggle_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/toggle_on.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/token.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/toll.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/tonality.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/topic.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/tornado.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/touch_app.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/tour.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/toys.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/track_changes.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/traffic.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/train.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/tram.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/transcribe.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/transfer_within_a_station.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/transform.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/transgender.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/transit_enterexit.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/translate.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/travel_explore.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/trending_down.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/trending_flat.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/trending_up.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/trip_origin.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/troubleshoot.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/try.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/tsunami.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/tty.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/tune.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/tungsten.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/turn_left.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/turn_right.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/turn_sharp_left.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/turn_sharp_right.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/turn_slight_left.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/turn_slight_right.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/turned_in.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/turned_in_not.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/tv.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/tv_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/two_wheeler.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/type_specimen.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/u_turn_left.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/u_turn_right.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/umbrella.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/unarchive.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/undo.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/unfold_less.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/unfold_less_double.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/unfold_more.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/unfold_more_double.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/unpublished.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/unsubscribe.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/upcoming.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/update.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/update_disabled.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/upgrade.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/upload.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/upload_file.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/usb.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/usb_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/vaccines.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/vape_free.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/vaping_rooms.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/verified.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/verified_user.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/vertical_align_bottom.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/vertical_align_center.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/vertical_align_top.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/vertical_distribute.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/vertical_shades.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/vertical_shades_closed.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/vertical_split.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/vibration.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/video_call.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/video_camera_back.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/video_camera_front.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/video_chat.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/video_file.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/video_label.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/video_library.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/video_settings.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/video_stable.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/videocam.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/videocam_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/videogame_asset.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/videogame_asset_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/view_agenda.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/view_array.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/view_carousel.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/view_column.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/view_comfy.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/view_comfy_alt.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/view_compact.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/view_compact_alt.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/view_cozy.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/view_day.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/view_headline.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/view_in_ar.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/view_kanban.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/view_list.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/view_module.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/view_quilt.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/view_sidebar.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/view_stream.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/view_timeline.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/view_week.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/vignette.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/villa.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/visibility.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/visibility_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/voice_chat.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/voice_over_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/voicemail.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/volcano.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/volume_down.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/volume_mute.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/volume_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/volume_up.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/volunteer_activism.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/vpn_key.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/vpn_key_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/vpn_lock.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/vrpano.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/wallet.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/wallpaper.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/warehouse.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/warning.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/warning_amber.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/wash.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/watch.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/watch_later.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/watch_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/water.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/water_damage.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/water_drop.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/waterfall_chart.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/waves.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/waving_hand.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/wb_auto.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/wb_cloudy.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/wb_incandescent.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/wb_iridescent.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/wb_shade.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/wb_sunny.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/wb_twilight.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/wc.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/web.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/web_asset.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/web_asset_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/web_stories.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/webhook.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/weekend.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/west.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/whatshot.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/wheelchair_pickup.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/where_to_vote.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/widgets.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/width_full.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/width_normal.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/width_wide.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/wifi.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/wifi_1_bar.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/wifi_2_bar.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/wifi_calling.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/wifi_calling_3.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/wifi_channel.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/wifi_find.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/wifi_lock.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/wifi_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/wifi_password.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/wifi_protected_setup.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/wifi_tethering.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/wifi_tethering_error.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/wifi_tethering_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/wind_power.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/window.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/wine_bar.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/woman.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/woman_2.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/work.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/work_history.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/work_off.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/work_outline.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/workspace_premium.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/workspaces.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/wrap_text.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/wrong_location.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/wysiwyg.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/yard.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/youtube_searched_for.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/zoom_in.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/zoom_in_map.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/zoom_out.svg1
-rw-r--r--html/matt-chat/uswds/img/material-icons/zoom_out_map.svg1
-rw-r--r--html/matt-chat/uswds/img/sprite.svg1
-rw-r--r--html/matt-chat/uswds/img/us_flag.svg1
-rw-r--r--html/matt-chat/uswds/img/us_flag_small.pngbin0 -> 244 bytes
-rw-r--r--html/matt-chat/uswds/img/usa-icons-bg/add--white.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons-bg/arrow_back--white.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons-bg/calendar_today--white.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons-bg/check--blue-60v.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons-bg/check_circle--white.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons-bg/close--white.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons-bg/error--white.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons-bg/expand_less--white.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons-bg/expand_more--blue-warm-70v.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons-bg/expand_more--white.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons-bg/info--white.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons-bg/launch--white.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons-bg/navigate_before--white.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons-bg/navigate_far_before--white.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons-bg/navigate_far_next--white.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons-bg/navigate_next--white.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons-bg/remove--white.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons-bg/search--white.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons-bg/warning--white.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/accessibility_new.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/accessible_forward.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/account_balance.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/account_box.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/account_circle.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/add.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/add_circle.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/add_circle_outline.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/alarm.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/alternate_email.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/announcement.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/api.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/arrow_back.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/arrow_downward.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/arrow_drop_down.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/arrow_drop_up.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/arrow_forward.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/arrow_upward.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/assessment.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/attach_file.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/attach_money.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/autorenew.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/backpack.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/bathtub.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/bedding.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/bookmark.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/bug_report.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/build.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/calendar_today.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/campaign.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/camping.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/cancel.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/chat.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/check.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/check_box_outline_blank.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/check_circle.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/check_circle_outline.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/checkroom.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/chevron_left.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/chevron_right.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/clean_hands.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/close.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/closed_caption.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/clothes.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/cloud.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/code.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/comment.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/connect_without_contact.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/construction.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/construction_worker.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/contact_page.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/content_copy.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/coronavirus.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/credit_card.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/deck.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/delete.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/device_thermostat.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/directions.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/directions_bike.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/directions_bus.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/directions_car.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/directions_walk.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/do_not_disturb.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/do_not_touch.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/drag_handle.svg1
-rwxr-xr-xhtml/matt-chat/uswds/img/usa-icons/eco.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/edit.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/electrical_services.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/emoji_events.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/error.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/error_outline.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/event.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/expand_less.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/expand_more.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/facebook.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/fast_forward.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/fast_rewind.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/favorite.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/favorite_border.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/fax.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/file_download.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/file_present.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/file_upload.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/filter_alt.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/filter_list.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/fingerprint.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/first_page.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/flag.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/flickr.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/flight.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/flooding.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/folder.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/folder_open.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/format_quote.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/format_size.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/forum.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/github.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/grid_view.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/group_add.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/groups.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/hearing.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/help.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/help_outline.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/highlight_off.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/history.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/home.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/hospital.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/hotel.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/hourglass_empty.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/hurricane.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/identification.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/image.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/info.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/info_outline.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/insights.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/instagram.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/keyboard.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/label.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/language.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/last_page.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/launch.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/lightbulb.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/lightbulb_outline.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/link.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/link_off.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/linkedin.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/list.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/local_cafe.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/local_fire_department.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/local_gas_station.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/local_grocery_store.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/local_hospital.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/local_laundry_service.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/local_library.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/local_offer.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/local_parking.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/local_pharmacy.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/local_police.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/local_taxi.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/location_city.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/location_on.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/lock.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/lock_open.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/lock_outline.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/login.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/logout.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/loop.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/mail.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/mail_outline.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/map.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/masks.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/medical_services.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/menu.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/military_tech.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/more_horiz.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/more_vert.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/my_location.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/navigate_before.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/navigate_far_before.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/navigate_far_next.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/navigate_next.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/near_me.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/notifications.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/notifications_active.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/notifications_none.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/notifications_off.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/park.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/people.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/person.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/pets.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/phone.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/photo_camera.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/print.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/priority_high.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/public.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/push_pin.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/radio_button_unchecked.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/rain.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/reduce_capacity.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/remove.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/remove_circle.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/report.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/restaurant.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/rss_feed.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/safety_divider.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/sanitizer.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/save_alt.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/schedule.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/school.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/science.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/search.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/security.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/send.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/sentiment_dissatisfied.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/sentiment_neutral.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/sentiment_satisfied.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/sentiment_satisfied_alt.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/sentiment_very_dissatisfied.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/settings.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/severe_weather.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/share.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/shield.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/shopping_basket.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/snow.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/soap.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/social_distance.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/sort_arrow.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/spellcheck.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/star.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/star_half.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/star_outline.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/store.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/support.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/support_agent.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/text_fields.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/thumb_down_alt.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/thumb_up_alt.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/timer.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/toggle_off.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/toggle_on.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/topic.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/tornado.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/translate.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/trending_down.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/trending_up.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/twitter.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/undo.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/unfold_less.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/unfold_more.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/update.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/upload_file.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/verified.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/verified_user.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/visibility.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/visibility_off.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/volume_off.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/warning.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/wash.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/wifi.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/work.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/x.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/youtube.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/zoom_in.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/zoom_out.svg1
-rw-r--r--html/matt-chat/uswds/img/usa-icons/zoom_out_map.svg1
-rw-r--r--html/matt-chat/uswds/img/uswds-icons/bedding.svg1
-rw-r--r--html/matt-chat/uswds/img/uswds-icons/camping.svg1
-rw-r--r--html/matt-chat/uswds/img/uswds-icons/chevron_left.svg1
-rw-r--r--html/matt-chat/uswds/img/uswds-icons/chevron_right.svg1
-rw-r--r--html/matt-chat/uswds/img/uswds-icons/clothes.svg1
-rw-r--r--html/matt-chat/uswds/img/uswds-icons/construction_worker.svg1
-rw-r--r--html/matt-chat/uswds/img/uswds-icons/flickr.svg1
-rw-r--r--html/matt-chat/uswds/img/uswds-icons/flooding.svg1
-rw-r--r--html/matt-chat/uswds/img/uswds-icons/github.svg1
-rw-r--r--html/matt-chat/uswds/img/uswds-icons/hospital.svg1
-rw-r--r--html/matt-chat/uswds/img/uswds-icons/hurricane.svg1
-rw-r--r--html/matt-chat/uswds/img/uswds-icons/identification.svg1
-rw-r--r--html/matt-chat/uswds/img/uswds-icons/instagram.svg1
-rw-r--r--html/matt-chat/uswds/img/uswds-icons/linkedin.svg1
-rw-r--r--html/matt-chat/uswds/img/uswds-icons/navigate_far_before.svg1
-rw-r--r--html/matt-chat/uswds/img/uswds-icons/navigate_far_next.svg1
-rw-r--r--html/matt-chat/uswds/img/uswds-icons/rain.svg1
-rw-r--r--html/matt-chat/uswds/img/uswds-icons/severe_weather.svg1
-rw-r--r--html/matt-chat/uswds/img/uswds-icons/snow.svg1
-rw-r--r--html/matt-chat/uswds/img/uswds-icons/sort_arrow.svg1
-rw-r--r--html/matt-chat/uswds/img/uswds-icons/tornado.svg1
-rw-r--r--html/matt-chat/uswds/img/uswds-icons/twitter.svg1
-rw-r--r--html/matt-chat/uswds/img/uswds-icons/x.svg1
-rw-r--r--html/matt-chat/uswds/img/uswds-icons/youtube.svg1
-rw-r--r--html/matt-chat/uswds/js/uswds-init.js24
-rw-r--r--html/matt-chat/uswds/js/uswds-init.min.js2
-rw-r--r--html/matt-chat/uswds/js/uswds-init.min.js.map1
-rw-r--r--html/matt-chat/uswds/js/uswds.js7137
-rw-r--r--html/matt-chat/uswds/js/uswds.min.js84
-rw-r--r--html/matt-chat/uswds/js/uswds.min.js.map1
-rw-r--r--html/merfolk/app.js280
-rw-r--r--html/merfolk/html2canvas.min.js20
-rw-r--r--html/merfolk/index.html29
-rw-r--r--html/merfolk/mermaid.min.js2607
-rw-r--r--html/merfolk/panzoom.min.js1
-rw-r--r--html/merfolk/styles.css160
-rw-r--r--html/playground/index.html435
-rw-r--r--html/read-write/index.html198
-rw-r--r--html/rogue/assets/home/goblin-01.pngbin0 -> 11889 bytes
-rw-r--r--html/rogue/assets/home/goblin-02.pngbin0 -> 11875 bytes
-rw-r--r--html/rogue/assets/home/goblin.json617
-rw-r--r--html/rogue/assets/itch/FreeCatCharacterAnimations/1_Cat_Idle-Sheet.pngbin0 -> 587 bytes
-rw-r--r--html/rogue/assets/itch/FreeCatCharacterAnimations/2_Cat_Run-Sheet.pngbin0 -> 1098 bytes
-rw-r--r--html/rogue/assets/itch/FreeCatCharacterAnimations/3_Cat_Jump-Sheet.pngbin0 -> 469 bytes
-rw-r--r--html/rogue/assets/itch/FreeCatCharacterAnimations/4_Cat_Fall-Sheet.pngbin0 -> 442 bytes
-rw-r--r--html/rogue/assets/itch/FreeCatCharacterAnimations/Contact.txt4
-rw-r--r--html/rogue/assets/itch/FreeCatCharacterAnimations/License.txt5
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/FreeLicense.txt33
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/DwarfAttack.pngbin0 -> 1129 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/DwarfChargedAttack.pngbin0 -> 1107 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/DwarfDmg.pngbin0 -> 1550 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/DwarfIdle.pngbin0 -> 1072 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/DwarfJump.pngbin0 -> 942 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/DwarfSpinDie.pngbin0 -> 763 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/DwarfWalk.pngbin0 -> 715 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/_AnimationInfo.txt10
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/_GIFs/DwarfAttack.gifbin0 -> 13351 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/_GIFs/DwarfChargedAttack.gifbin0 -> 16418 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/_GIFs/DwarfDmg.gifbin0 -> 12680 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/_GIFs/DwarfIdle.gifbin0 -> 26409 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/_GIFs/DwarfJump.gifbin0 -> 11342 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/_GIFs/DwarfSpinDie.gifbin0 -> 10192 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/_GIFs/DwarfWalk.gifbin0 -> 11349 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/_Shadows/ShadowDwarJump.pngbin0 -> 359 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/_Shadows/ShadowDwarSpinDie.pngbin0 -> 238 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/_Shadows/ShadowDwarWalk.pngbin0 -> 293 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/_Shadows/ShadowDwarfAttack.pngbin0 -> 411 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/_Shadows/ShadowDwarfChargedAttack.pngbin0 -> 330 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/_Shadows/ShadowDwarfDmg.pngbin0 -> 240 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/_Shadows/ShadowDwarfIdle.pngbin0 -> 475 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/YellowBearAttack.pngbin0 -> 1323 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/YellowBearChargedAttack.pngbin0 -> 1283 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/YellowBearDmg.pngbin0 -> 1686 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/YellowBearJump.pngbin0 -> 1297 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/YellowBearSpinDie.pngbin0 -> 864 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/YellowBearWalk.pngbin0 -> 978 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/YellowBeardIdle.pngbin0 -> 1489 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/_AnimationInfo.txt10
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/_GIFs/YellowBearAttack.gifbin0 -> 15344 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/_GIFs/YellowBearChargedAttack.gifbin0 -> 18889 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/_GIFs/YellowBearDmg.gifbin0 -> 14645 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/_GIFs/YellowBearJump.gifbin0 -> 13389 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/_GIFs/YellowBearSpinDie.gifbin0 -> 11889 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/_GIFs/YellowBearWalk.gifbin0 -> 13465 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/_GIFs/YellowBeardIdle.gifbin0 -> 29093 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/_Shadows/ShadowDwarJump.pngbin0 -> 359 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/_Shadows/ShadowDwarSpinDie.pngbin0 -> 238 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/_Shadows/ShadowDwarWalk.pngbin0 -> 293 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/_Shadows/ShadowDwarfAttack.pngbin0 -> 411 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/_Shadows/ShadowDwarfChargedAttack.pngbin0 -> 330 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/_Shadows/ShadowDwarfDmg.pngbin0 -> 240 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/_Shadows/ShadowDwarfIdle.pngbin0 -> 475 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/ElfAttack.pngbin0 -> 1212 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/ElfChargedAttack.pngbin0 -> 1173 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/ElfDmg.pngbin0 -> 1798 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/ElfIdle.pngbin0 -> 1817 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/ElfJump.pngbin0 -> 1323 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/ElfSpinDie.pngbin0 -> 779 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/ElfWalk.pngbin0 -> 1058 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/_AnimationInfo.txt10
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/_GIFs/ElfAttack.gifbin0 -> 14283 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/_GIFs/ElfChargedAttack.gifbin0 -> 17619 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/_GIFs/ElfDmg.gifbin0 -> 13627 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/_GIFs/ElfIdle.gifbin0 -> 27751 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/_GIFs/ElfJump.gifbin0 -> 12286 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/_GIFs/ElfSpinDie.gifbin0 -> 10886 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/_GIFs/ElfWalk.gifbin0 -> 12413 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/_Shadows/ShadowHumanoidAttack.pngbin0 -> 388 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/_Shadows/ShadowHumanoidChargedAttack.pngbin0 -> 326 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/_Shadows/ShadowHumanoidDmg.pngbin0 -> 268 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/_Shadows/ShadowHumanoidIdle.pngbin0 -> 530 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/_Shadows/ShadowHumanoidJump.pngbin0 -> 355 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/_Shadows/ShadowHumanoidSoulDie.pngbin0 -> 226 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/_Shadows/ShadowHumanoidSpinDie.pngbin0 -> 240 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/_Shadows/ShadowHumanoidWalk.pngbin0 -> 293 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/GoblinAttack.pngbin0 -> 1106 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/GoblinChargedAttack.pngbin0 -> 1117 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/GoblinDmg.pngbin0 -> 1320 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/GoblinIdle.pngbin0 -> 1278 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/GoblinJump.pngbin0 -> 1200 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/GoblinSpinDie.pngbin0 -> 759 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/GoblinWalk.pngbin0 -> 897 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/_AnimationInfo.txt10
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/_GIFs/GoblinAttack.gifbin0 -> 13344 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/_GIFs/GoblinChargedAttack.gifbin0 -> 16408 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/_GIFs/GoblinDmg.gifbin0 -> 11410 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/_GIFs/GoblinIdle.gifbin0 -> 26223 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/_GIFs/GoblinJump.gifbin0 -> 11156 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/_GIFs/GoblinSpinDie.gifbin0 -> 10430 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/_GIFs/GoblinWalk.gifbin0 -> 11146 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/_Shadows/ShadowHumanoidAttack.pngbin0 -> 388 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/_Shadows/ShadowHumanoidChargedAttack.pngbin0 -> 326 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/_Shadows/ShadowHumanoidDmg.pngbin0 -> 268 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/_Shadows/ShadowHumanoidIdle.pngbin0 -> 530 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/_Shadows/ShadowHumanoidJump.pngbin0 -> 355 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/_Shadows/ShadowHumanoidSoulDie.pngbin0 -> 226 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/_Shadows/ShadowHumanoidSpinDie.pngbin0 -> 240 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/_Shadows/ShadowHumanoidWalk.pngbin0 -> 293 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/HalflingAttack.pngbin0 -> 1028 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/HalflingChargedAttack.pngbin0 -> 1085 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/HalflingDmg.pngbin0 -> 1182 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/HalflingIdle.pngbin0 -> 1253 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/HalflingJump.pngbin0 -> 1029 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/HalflingSpinDie.pngbin0 -> 715 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/HalflingWalk.pngbin0 -> 841 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/_AnimationInfo.txt10
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/_GIFs/HalflingAttack.gifbin0 -> 13099 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/_GIFs/HalflingChargedAttack.gifbin0 -> 16150 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/_GIFs/HalflingDmg.gifbin0 -> 11262 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/_GIFs/HalflingIdle.gifbin0 -> 25869 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/_GIFs/HalflingJump.gifbin0 -> 10991 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/_GIFs/HalflingSpinDie.gifbin0 -> 10350 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/_GIFs/HalflingWalk.gifbin0 -> 10914 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/_Shadows/ShadowHumanoidAttack.pngbin0 -> 388 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/_Shadows/ShadowHumanoidChargedAttack.pngbin0 -> 326 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/_Shadows/ShadowHumanoidDmg.pngbin0 -> 268 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/_Shadows/ShadowHumanoidIdle.pngbin0 -> 530 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/_Shadows/ShadowHumanoidJump.pngbin0 -> 355 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/_Shadows/ShadowHumanoidSoulDie.pngbin0 -> 226 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/_Shadows/ShadowHumanoidSpinDie.pngbin0 -> 240 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/_Shadows/ShadowHumanoidWalk.pngbin0 -> 293 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/HumanAttack.pngbin0 -> 1170 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/HumanChargedAttack.pngbin0 -> 1154 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/HumanDmg.pngbin0 -> 1424 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/HumanIdle.pngbin0 -> 1524 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/HumanJump.pngbin0 -> 1260 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/HumanSoulDie.pngbin0 -> 1771 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/HumanSpinDie.pngbin0 -> 875 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/HumanWalk.pngbin0 -> 993 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/_AnimationInfo.txt10
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/_GIFs/HumanAttack.gifbin0 -> 14115 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/_GIFs/HumanChargedAttack.gifbin0 -> 17491 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/_GIFs/HumanDmg.gifbin0 -> 13340 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/_GIFs/HumanIdle.gifbin0 -> 27390 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/_GIFs/HumanJump.gifbin0 -> 12174 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/_GIFs/HumanSoulDie.gifbin0 -> 10633 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/_GIFs/HumanSpinDie.gifbin0 -> 10778 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/_GIFs/HumanWalk.gifbin0 -> 12175 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/_Shadows/ShadowHumanoidAttack.pngbin0 -> 388 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/_Shadows/ShadowHumanoidChargedAttack.pngbin0 -> 326 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/_Shadows/ShadowHumanoidDmg.pngbin0 -> 268 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/_Shadows/ShadowHumanoidIdle.pngbin0 -> 530 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/_Shadows/ShadowHumanoidJump.pngbin0 -> 355 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/_Shadows/ShadowHumanoidSoulDie.pngbin0 -> 226 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/_Shadows/ShadowHumanoidSpinDie.pngbin0 -> 240 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/_Shadows/ShadowHumanoidWalk.pngbin0 -> 293 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/AmazonAttack.pngbin0 -> 1397 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/AmazonChargedAttack.pngbin0 -> 1321 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/AmazonDie.pngbin0 -> 1007 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/AmazonDmg.pngbin0 -> 1800 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/AmazonIdle.pngbin0 -> 1743 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/AmazonJump.pngbin0 -> 1535 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/AmazonWalk.pngbin0 -> 1268 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/_AnimationInfo.txt10
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/_GIFs/AmazonAttack.gifbin0 -> 17501 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/_GIFs/AmazonChargedAttack.gifbin0 -> 20971 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/_GIFs/AmazonDie.gifbin0 -> 12656 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/_GIFs/AmazonDmg.gifbin0 -> 16611 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/_GIFs/AmazonIdle.gifbin0 -> 32048 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/_GIFs/AmazonJump.gifbin0 -> 15796 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/_GIFs/AmazonWalk.gifbin0 -> 15767 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/_Shadows/ShadowHumanoidAttack.pngbin0 -> 388 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/_Shadows/ShadowHumanoidChargedAttack.pngbin0 -> 326 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/_Shadows/ShadowHumanoidDmg.pngbin0 -> 268 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/_Shadows/ShadowHumanoidIdle.pngbin0 -> 530 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/_Shadows/ShadowHumanoidJump.pngbin0 -> 355 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/_Shadows/ShadowHumanoidSoulDie.pngbin0 -> 226 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/_Shadows/ShadowHumanoidSpinDie.pngbin0 -> 240 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/_Shadows/ShadowHumanoidWalk.pngbin0 -> 293 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/HumanTownsfolkAttack.pngbin0 -> 1407 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/HumanTownsfolkChargedAttack.pngbin0 -> 1366 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/HumanTownsfolkDmg.pngbin0 -> 1936 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/HumanTownsfolkIdle.pngbin0 -> 1859 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/HumanTownsfolkJump.pngbin0 -> 619 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/HumanTownsfolkSpinDie.pngbin0 -> 959 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/HumanTownsfolkWalk.pngbin0 -> 1332 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/_AnimationInfo.txt10
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/_GIFs/HumanTownsfolkAttack.gifbin0 -> 18066 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/_GIFs/HumanTownsfolkChargedAttack.gifbin0 -> 21791 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/_GIFs/HumanTownsfolkDmg.gifbin0 -> 17214 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/_GIFs/HumanTownsfolkIdle.gifbin0 -> 32475 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/_GIFs/HumanTownsfolkJump.gifbin0 -> 5293 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/_GIFs/HumanTownsfolkSpinDie.gifbin0 -> 13123 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/_GIFs/HumanTownsfolkWalk.gifbin0 -> 16379 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/_Shadows/ShadowHumanoidAttack.pngbin0 -> 388 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/_Shadows/ShadowHumanoidChargedAttack.pngbin0 -> 326 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/_Shadows/ShadowHumanoidDmg.pngbin0 -> 268 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/_Shadows/ShadowHumanoidIdle.pngbin0 -> 530 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/_Shadows/ShadowHumanoidJump.pngbin0 -> 355 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/_Shadows/ShadowHumanoidSoulDie.pngbin0 -> 226 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/_Shadows/ShadowHumanoidSpinDie.pngbin0 -> 240 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/_Shadows/ShadowHumanoidWalk.pngbin0 -> 293 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/OrcBaseAttack.pngbin0 -> 1231 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/OrcChargedAttack.pngbin0 -> 1119 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/OrcDie.pngbin0 -> 859 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/OrcDmg.pngbin0 -> 1823 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/OrcIdle.pngbin0 -> 1761 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/OrcJump.pngbin0 -> 1364 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/OrcWalk.pngbin0 -> 1041 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/_AnimationInfo.txt10
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/_GIFs/OrcBaseAttack.gifbin0 -> 14277 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/_GIFs/OrcChargedAttack.gifbin0 -> 17619 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/_GIFs/OrcDie.gifbin0 -> 10886 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/_GIFs/OrcDmg.gifbin0 -> 13627 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/_GIFs/OrcIdle.gifbin0 -> 27751 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/_GIFs/OrcJump.gifbin0 -> 12286 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/_GIFs/OrcWalk.gifbin0 -> 12411 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/_Shadows/ShadowHumanoidAttack.pngbin0 -> 388 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/_Shadows/ShadowHumanoidChargedAttack.pngbin0 -> 326 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/_Shadows/ShadowHumanoidDmg.pngbin0 -> 268 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/_Shadows/ShadowHumanoidIdle.pngbin0 -> 530 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/_Shadows/ShadowHumanoidJump.pngbin0 -> 355 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/_Shadows/ShadowHumanoidSoulDie.pngbin0 -> 226 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/_Shadows/ShadowHumanoidSpinDie.pngbin0 -> 240 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/_Shadows/ShadowHumanoidWalk.pngbin0 -> 293 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/WildOrcAttack.pngbin0 -> 2472 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/WildOrcChargedAttack.pngbin0 -> 1439 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/WildOrcDie.pngbin0 -> 1121 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/WildOrcDmg.pngbin0 -> 2188 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/WildOrcIdle.pngbin0 -> 1937 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/WildOrcJump.pngbin0 -> 1650 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/WildOrcWalk.pngbin0 -> 1274 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/_AnimationInfo.txt10
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/_GIFs/WildOrcAttack.gifbin0 -> 17839 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/_GIFs/WildOrcChargedAttack.gifbin0 -> 21026 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/_GIFs/WildOrcDie.gifbin0 -> 12655 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/_GIFs/WildOrcDmg.gifbin0 -> 16222 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/_GIFs/WildOrcIdle.gifbin0 -> 31662 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/_GIFs/WildOrcJump.gifbin0 -> 15362 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/_GIFs/WildOrcWalk.gifbin0 -> 15485 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/_Shadows/ShadowHumanoidAttack.pngbin0 -> 388 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/_Shadows/ShadowHumanoidChargedAttack.pngbin0 -> 326 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/_Shadows/ShadowHumanoidDmg.pngbin0 -> 268 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/_Shadows/ShadowHumanoidIdle.pngbin0 -> 530 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/_Shadows/ShadowHumanoidJump.pngbin0 -> 355 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/_Shadows/ShadowHumanoidSoulDie.pngbin0 -> 226 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/_Shadows/ShadowHumanoidSpinDie.pngbin0 -> 240 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/_Shadows/ShadowHumanoidWalk.pngbin0 -> 293 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Bat/BatAttack.pngbin0 -> 1486 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Bat/BatDie.pngbin0 -> 614 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Bat/BatDmg.pngbin0 -> 1223 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Bat/BatFlyIdle.pngbin0 -> 611 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Bat/BatSleep.pngbin0 -> 955 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Bat/_AnimationInfo.txt10
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Bat/_GIFs/BatAttack.gifbin0 -> 14418 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Bat/_GIFs/BatDie.gifbin0 -> 7945 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Bat/_GIFs/BatDmg.gifbin0 -> 12301 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Bat/_GIFs/BatFlyIdle.gifbin0 -> 5686 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Bat/_GIFs/BatSleep.gifbin0 -> 14889 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Bat/_Shadows/ShadowBatAttack.pngbin0 -> 270 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Bat/_Shadows/ShadowBatDie.pngbin0 -> 198 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Bat/_Shadows/ShadowBatDmg.pngbin0 -> 256 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Bat/_Shadows/ShadowBatFly.pngbin0 -> 215 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Bat/_Shadows/ShadowBatSleep.pngbin0 -> 302 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Warg/WargAttack.pngbin0 -> 2155 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Warg/WargDie.pngbin0 -> 877 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Warg/WargDmg.pngbin0 -> 1822 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Warg/WargIdle.pngbin0 -> 2022 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Warg/WargJump.pngbin0 -> 1662 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Warg/WargWalk.pngbin0 -> 1503 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Warg/_AnimationInfo.txt10
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Warg/_GIFs/WargAttack.gifbin0 -> 24631 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Warg/_GIFs/WargDie.gifbin0 -> 12156 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Warg/_GIFs/WargDmg.gifbin0 -> 19530 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Warg/_GIFs/WargIdle.gifbin0 -> 55710 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Warg/_GIFs/WargJump.gifbin0 -> 20554 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Warg/_GIFs/WargWalk.gifbin0 -> 19240 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Warg/_Shadows/ShadowWargAttack.pngbin0 -> 317 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Warg/_Shadows/ShadowWargDie.pngbin0 -> 192 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Warg/_Shadows/ShadowWargDmg.pngbin0 -> 308 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Warg/_Shadows/ShadowWargIdle.pngbin0 -> 399 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Warg/_Shadows/ShadowWargJump.pngbin0 -> 382 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Warg/_Shadows/ShadowWargWalk.pngbin0 -> 271 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Wolf/WolfAttack.pngbin0 -> 1252 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Wolf/WolfDie.pngbin0 -> 635 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Wolf/WolfDmg.pngbin0 -> 1096 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Wolf/WolfIdle.pngbin0 -> 1515 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Wolf/WolfJump.pngbin0 -> 1207 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Wolf/WolfWalk.pngbin0 -> 1021 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Wolf/_AnimationInfo.txt10
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Wolf/_GIFs/WolfAttack.gifbin0 -> 15198 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Wolf/_GIFs/WolfDie.gifbin0 -> 8303 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Wolf/_GIFs/WolfDmg.gifbin0 -> 13301 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Wolf/_GIFs/WolfIdle.gifbin0 -> 38796 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Wolf/_GIFs/WolfJump.gifbin0 -> 14085 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Wolf/_GIFs/WolfWalk.gifbin0 -> 13075 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Wolf/_Shadows/ShadowWolfAttack.pngbin0 -> 357 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Wolf/_Shadows/ShadowWolfDie.pngbin0 -> 189 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Wolf/_Shadows/ShadowWolfDmg.pngbin0 -> 273 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Wolf/_Shadows/ShadowWolfIdle.pngbin0 -> 399 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Wolf/_Shadows/ShadowWolfJump.pngbin0 -> 374 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Wolf/_Shadows/ShadowWolfWalk.pngbin0 -> 280 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Centaur/CentaurAttack.pngbin0 -> 1557 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Centaur/CentaurDie.pngbin0 -> 917 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Centaur/CentaurDmg.pngbin0 -> 1342 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Centaur/CentaurIdle.pngbin0 -> 1605 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Centaur/CentaurJump.pngbin0 -> 1469 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Centaur/CentaurWalk.pngbin0 -> 904 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Centaur/_AnimationInfo.txt10
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Centaur/_GIFs/CentaurAttack.gifbin0 -> 17943 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Centaur/_GIFs/CentaurDie.gifbin0 -> 14113 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Centaur/_GIFs/CentaurDmg.gifbin0 -> 16397 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Centaur/_GIFs/CentaurIdle.gifbin0 -> 31351 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Centaur/_GIFs/CentaurJump.gifbin0 -> 16356 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Centaur/_GIFs/CentaurWalk.gifbin0 -> 15179 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Centaur/_Shadow/ShadowCentaurAttack.pngbin0 -> 307 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Centaur/_Shadow/ShadowCentaurDie.pngbin0 -> 215 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Centaur/_Shadow/ShadowCentaurDmg.pngbin0 -> 251 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Centaur/_Shadow/ShadowCentaurIdle.pngbin0 -> 476 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Centaur/_Shadow/ShadowCentaurJump.pngbin0 -> 377 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Centaur/_Shadow/ShadowCentaurWalk.pngbin0 -> 265 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Cyclop/CyclopAttack.pngbin0 -> 1803 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Cyclop/CyclopDie.pngbin0 -> 1136 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Cyclop/CyclopDmg.pngbin0 -> 1437 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Cyclop/CyclopIdle.pngbin0 -> 1723 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Cyclop/CyclopJump.pngbin0 -> 1867 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Cyclop/CyclopWalk.pngbin0 -> 1598 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Cyclop/_AnimationInfo.txt10
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Cyclop/_GIFs/CyclopAttack.gifbin0 -> 21353 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Cyclop/_GIFs/CyclopDie.gifbin0 -> 17228 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Cyclop/_GIFs/CyclopDmg.gifbin0 -> 18029 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Cyclop/_GIFs/CyclopIdle.gifbin0 -> 34254 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Cyclop/_GIFs/CyclopJump.gifbin0 -> 25551 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Cyclop/_GIFs/CyclopWalk.gifbin0 -> 25666 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Cyclop/_Shadows/ShadowAttack.pngbin0 -> 263 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Cyclop/_Shadows/ShadowDie.pngbin0 -> 221 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Cyclop/_Shadows/ShadowDmg.pngbin0 -> 259 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Cyclop/_Shadows/ShadowIdle.pngbin0 -> 475 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Cyclop/_Shadows/ShadowJump.pngbin0 -> 429 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Cyclop/_Shadows/ShadowWalk.pngbin0 -> 361 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Evil_Snowman/EvilSnowmanActivation.pngbin0 -> 549 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Evil_Snowman/EvilSnowmanAttack.pngbin0 -> 2381 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Evil_Snowman/SnowBall.pngbin0 -> 565 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Evil_Snowman/_GIFs/EvilSnowmanActivation.gifbin0 -> 6980 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Evil_Snowman/_GIFs/EvilSnowmanAttack.gifbin0 -> 40316 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Evil_Snowman/_Shadows/EvilSnowmanActivationShadows.pngbin0 -> 134 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Evil_Snowman/_Shadows/EvilSnowmanAttackShadows.pngbin0 -> 391 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Minotaur/MinotaurAttack.pngbin0 -> 8741 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Minotaur/MinotaurDie.pngbin0 -> 1399 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Minotaur/MinotaurDmg.pngbin0 -> 1609 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Minotaur/MinotaurIdle.pngbin0 -> 1896 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Minotaur/MinotaurJump.pngbin0 -> 2100 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Minotaur/MinotaurWalk.pngbin0 -> 1718 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Minotaur/_AnimationInfo.txt10
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Minotaur/_GIFs/MinotaurAttack.gifbin0 -> 64653 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Minotaur/_GIFs/MinotaurDie.gifbin0 -> 20641 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Minotaur/_GIFs/MinotaurDmg.gifbin0 -> 21357 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Minotaur/_GIFs/MinotaurIdle.gifbin0 -> 38857 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Minotaur/_GIFs/MinotaurJump.gifbin0 -> 30896 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Minotaur/_GIFs/MinotaurWalk.gifbin0 -> 30336 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Minotaur/_Shadows/ShadowAttack.pngbin0 -> 590 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Minotaur/_Shadows/ShadowDie.pngbin0 -> 217 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Minotaur/_Shadows/ShadowDmg.pngbin0 -> 259 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Minotaur/_Shadows/ShadowIdle.pngbin0 -> 475 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Minotaur/_Shadows/ShadowJump.pngbin0 -> 429 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Minotaur/_Shadows/ShadowWalk.pngbin0 -> 361 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Pumpkin_Horror/PumpkinHorrorBaseAttack.pngbin0 -> 1299 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Pumpkin_Horror/PumpkinHorrorBaseDie.pngbin0 -> 966 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Pumpkin_Horror/PumpkinHorrorBaseDmg.pngbin0 -> 1612 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Pumpkin_Horror/PumpkinHorrorBaseIdleActivation.pngbin0 -> 992 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Pumpkin_Horror/PumpkinHorrorBaseWalk.pngbin0 -> 614 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Pumpkin_Horror/_AnimationInfo.txt10
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Pumpkin_Horror/_GIFs/PumpkinHorrorBaseAttack.gifbin0 -> 21523 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Pumpkin_Horror/_GIFs/PumpkinHorrorBaseDie.gifbin0 -> 13782 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Pumpkin_Horror/_GIFs/PumpkinHorrorBaseDmg.gifbin0 -> 18883 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Pumpkin_Horror/_GIFs/PumpkinHorrorBaseIdleActivation.gifbin0 -> 14094 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Pumpkin_Horror/_GIFs/PumpkinHorrorBaseWalk.gifbin0 -> 8489 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Pumpkin_Horror/_Shadows/ShadowPumkinHorrorAttack.pngbin0 -> 287 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Pumpkin_Horror/_Shadows/ShadowPumkinHorrorDmg.pngbin0 -> 279 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Pumpkin_Horror/_Shadows/ShadowPumkinHorrorIdle.pngbin0 -> 307 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Pumpkin_Horror/_Shadows/ShadowPumkinHorrorWalk.pngbin0 -> 186 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Pumpkin_Horror/_Shadows/ShadowPumpkinHorrorDie.pngbin0 -> 234 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/AnimationInfo.txt10
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/TrasgoAttack.pngbin0 -> 1079 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/TrasgoChargedAttack.pngbin0 -> 1145 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/TrasgoDmg.pngbin0 -> 1439 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/TrasgoIdle.pngbin0 -> 1075 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/TrasgoJump.pngbin0 -> 976 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/TrasgoSpinDie.pngbin0 -> 733 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/TrasgoWalk.pngbin0 -> 792 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/_GIFs/TrasgoAttack.gifbin0 -> 13158 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/_GIFs/TrasgoChargedAttack.gifbin0 -> 16598 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/_GIFs/TrasgoDmg.gifbin0 -> 12837 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/_GIFs/TrasgoIdle.gifbin0 -> 26619 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/_GIFs/TrasgoJump.gifbin0 -> 11479 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/_GIFs/TrasgoSpinDie.gifbin0 -> 10256 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/_GIFs/TrasgoWalk.gifbin0 -> 11497 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/_Shadows/ShadowTrasgoAttack.pngbin0 -> 411 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/_Shadows/ShadowTrasgoChargedAttack.pngbin0 -> 330 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/_Shadows/ShadowTrasgoDmg.pngbin0 -> 240 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/_Shadows/ShadowTrasgoIdle.pngbin0 -> 475 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/_Shadows/ShadowTrasgoJump.pngbin0 -> 359 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/_Shadows/ShadowTrasgoSpinDie.pngbin0 -> 238 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/_Shadows/ShadowTrasgoWalk.pngbin0 -> 293 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Troll/TrollAttack.pngbin0 -> 1687 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Troll/TrollDie.pngbin0 -> 917 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Troll/TrollDmg.pngbin0 -> 1324 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Troll/TrollIdle.pngbin0 -> 1419 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Troll/TrollJump.pngbin0 -> 1521 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Troll/TrollWalk.pngbin0 -> 1156 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Troll/_AnimationInfo.txt10
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Troll/_GIFs/TrollAttack.gifbin0 -> 19100 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Troll/_GIFs/TrollDie.gifbin0 -> 15803 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Troll/_GIFs/TrollDmg.gifbin0 -> 16393 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Troll/_GIFs/TrollIdle.gifbin0 -> 31588 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Troll/_GIFs/TrollJump.gifbin0 -> 22223 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Troll/_GIFs/TrollWalk.gifbin0 -> 22314 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Troll/_Shadows/ShadowAttack.pngbin0 -> 263 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Troll/_Shadows/ShadowDie.pngbin0 -> 221 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Troll/_Shadows/ShadowDmg.pngbin0 -> 259 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Troll/_Shadows/ShadowIdle.pngbin0 -> 475 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Troll/_Shadows/ShadowJump.pngbin0 -> 429 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Troll/_Shadows/ShadowWalk.pngbin0 -> 361 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Yeti/YetiAttack.pngbin0 -> 1849 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Yeti/YetiDie.pngbin0 -> 1180 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Yeti/YetiDmg.pngbin0 -> 2254 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Yeti/YetiIdle.pngbin0 -> 1974 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Yeti/YetiJump.pngbin0 -> 2159 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Yeti/YetiWalk.pngbin0 -> 2113 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Yeti/_AnimationInfo.txt10
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Yeti/_GIFs/YetiAttack.gifbin0 -> 25086 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Yeti/_GIFs/YetiDie.gifbin0 -> 18260 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Yeti/_GIFs/YetiDmg.gifbin0 -> 21577 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Yeti/_GIFs/YetiIdle.gifbin0 -> 38218 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Yeti/_GIFs/YetiJump.gifbin0 -> 31035 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Yeti/_GIFs/YetiWalk.gifbin0 -> 30001 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Yeti/_Shadows/ShadowAttack.pngbin0 -> 263 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Yeti/_Shadows/ShadowDie.pngbin0 -> 221 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Yeti/_Shadows/ShadowDmg.pngbin0 -> 259 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Yeti/_Shadows/ShadowIdle.pngbin0 -> 475 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Yeti/_Shadows/ShadowJump.pngbin0 -> 429 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Yeti/_Shadows/ShadowWalk.pngbin0 -> 361 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue _Slime/BlueSlimeDie.pngbin0 -> 594 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue _Slime/BlueSlimeDmg.pngbin0 -> 748 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue _Slime/BlueSlimeIdle.pngbin0 -> 704 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue _Slime/BlueSlimeJumpAttack.pngbin0 -> 744 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue _Slime/_AnimationInfo.txt10
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue _Slime/_GIFs/BlueSlimeDie.gifbin0 -> 8831 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue _Slime/_GIFs/BlueSlimeDmg.gifbin0 -> 9680 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue _Slime/_GIFs/BlueSlimeIdle.gifbin0 -> 17950 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue _Slime/_GIFs/BlueSlimeJumpAttack.gifbin0 -> 9112 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue _Slime/_Shadow/ShadowBlueSlimeDie.pngbin0 -> 195 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue _Slime/_Shadow/ShadowBlueSlimeDmg.pngbin0 -> 268 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue _Slime/_Shadow/ShadowBlueSlimeIdle.pngbin0 -> 398 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue _Slime/_Shadow/ShadowBlueSlimeJump.pngbin0 -> 338 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue_Mother_Slime/BlueMotherSlimeDie.pngbin0 -> 998 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue_Mother_Slime/BlueMotherSlimeDmg.pngbin0 -> 1217 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue_Mother_Slime/BlueMotherSlimeIdle.pngbin0 -> 768 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue_Mother_Slime/BlueMotherSlimeJumpAttack.pngbin0 -> 1168 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue_Mother_Slime/_AnimationInfo.txt10
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue_Mother_Slime/_GIFs/BlueMotherSlimeDie.gifbin0 -> 15551 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue_Mother_Slime/_GIFs/BlueMotherSlimeDmg.gifbin0 -> 14046 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue_Mother_Slime/_GIFs/BlueMotherSlimeIdle.gifbin0 -> 25161 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue_Mother_Slime/_GIFs/BlueMotherSlimeJumpAttack.gifbin0 -> 13242 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue_Mother_Slime/_Shadows/ShadowBlueMotherSlimeDie.pngbin0 -> 341 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue_Mother_Slime/_Shadows/ShadowBlueMotherSlimeDmg.pngbin0 -> 301 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue_Mother_Slime/_Shadows/ShadowBlueMotherSlimeIdle.pngbin0 -> 346 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue_Mother_Slime/_Shadows/ShadowBlueMotherSlimeJump.pngbin0 -> 342 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Mother_Slime/MotherSlimeGreenDie.pngbin0 -> 967 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Mother_Slime/MotherSlimeGreenDmg.pngbin0 -> 1191 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Mother_Slime/MotherSlimeGreenIdle.pngbin0 -> 812 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Mother_Slime/MotherSlimeGreenJumpAttack.pngbin0 -> 1155 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Mother_Slime/_AnimationInfo.txt10
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Mother_Slime/_GIFs/MotherSlimeGreenDie.gifbin0 -> 15273 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Mother_Slime/_GIFs/MotherSlimeGreenDmg.gifbin0 -> 14131 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Mother_Slime/_GIFs/MotherSlimeGreenIdle.gifbin0 -> 25216 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Mother_Slime/_GIFs/MotherSlimeGreenJumpAttack.gifbin0 -> 13416 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Mother_Slime/_Shadows/ShadowMotherSlimeDie.pngbin0 -> 334 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Mother_Slime/_Shadows/ShadowMotherSlimeDmg.pngbin0 -> 263 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Mother_Slime/_Shadows/ShadowMotherSlimeIdle.pngbin0 -> 349 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Mother_Slime/_Shadows/ShadowMotherSlimeJump.pngbin0 -> 322 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Slime/SlimeGreenDie.pngbin0 -> 593 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Slime/SlimeGreenDmg.pngbin0 -> 817 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Slime/SlimeGreenIdle.pngbin0 -> 693 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Slime/SlimeGreenJumpAttack.pngbin0 -> 762 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Slime/_AnimationInfo.txt10
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Slime/_GIFs/SlimeGreenDie.gifbin0 -> 8943 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Slime/_GIFs/SlimeGreenDmg.gifbin0 -> 9778 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Slime/_GIFs/SlimeGreenIdle.gifbin0 -> 17572 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Slime/_GIFs/SlimeGreenJumpAttack.gifbin0 -> 9163 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Slime/_Shadows/ShadowSlimeDie.pngbin0 -> 197 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Slime/_Shadows/ShadowSlimeDmg.pngbin0 -> 258 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Slime/_Shadows/ShadowSlimeIdle.pngbin0 -> 368 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Slime/_Shadows/ShadowSlimeJump.pngbin0 -> 320 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Skeleton/SkeletonAttack.pngbin0 -> 1033 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Skeleton/SkeletonDie.pngbin0 -> 584 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Skeleton/SkeletonDmg.pngbin0 -> 1197 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Skeleton/SkeletonIdle.pngbin0 -> 697 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Skeleton/SkeletonWalk.pngbin0 -> 489 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Skeleton/_AnimationInfo.txt10
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Skeleton/_GIFs/SkeletonAttack.gifbin0 -> 15887 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Skeleton/_GIFs/SkeletonDie.gifbin0 -> 9115 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Skeleton/_GIFs/SkeletonDmg.gifbin0 -> 14084 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Skeleton/_GIFs/SkeletonIdle.gifbin0 -> 10860 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Skeleton/_GIFs/SkeletonWalk.gifbin0 -> 6256 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Skeleton/_Shadows/ShadowSkeletonAttack.pngbin0 -> 287 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Skeleton/_Shadows/ShadowSkeletonDie.pngbin0 -> 206 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Skeleton/_Shadows/ShadowSkeletonDmg.pngbin0 -> 279 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Skeleton/_Shadows/ShadowSkeletonIdle.pngbin0 -> 282 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Skeleton/_Shadows/ShadowSkeletonWalk.pngbin0 -> 186 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Wildfire/WildfireDie.pngbin0 -> 1036 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Wildfire/WildfireDmg.pngbin0 -> 592 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Wildfire/WildfireFly.pngbin0 -> 1377 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Wildfire/WildfireIdle.pngbin0 -> 490 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Wildfire/_AnimationInfo.txt10
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Wildfire/_GIFs/WildfireDie.gifbin0 -> 11624 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Wildfire/_GIFs/WildfireDmg.gifbin0 -> 4296 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Wildfire/_GIFs/WildfireFly.gifbin0 -> 14546 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Wildfire/_GIFs/WildfireIdle.gifbin0 -> 5055 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Wildfire/_Shadows/ShadowWildfireDie.pngbin0 -> 218 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Wildfire/_Shadows/ShadowWildfireDmg.pngbin0 -> 167 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Wildfire/_Shadows/ShadowWildfireFly.pngbin0 -> 284 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Wildfire/_Shadows/ShadowWildfireIdle.pngbin0 -> 156 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Zombie/ZombieAttack.pngbin0 -> 1159 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Zombie/ZombieDie.pngbin0 -> 881 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Zombie/ZombieDmg.pngbin0 -> 1642 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Zombie/ZombieIdle.pngbin0 -> 543 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Zombie/ZombieWalk.pngbin0 -> 900 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Zombie/_AnimationInfo.txt10
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Zombie/_GIFs/ZombieAttack.gifbin0 -> 18228 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Zombie/_GIFs/ZombieDie.gifbin0 -> 12580 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Zombie/_GIFs/ZombieDmg.gifbin0 -> 14636 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Zombie/_GIFs/ZombieIdle.gifbin0 -> 14257 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Zombie/_GIFs/ZombieWalk.gifbin0 -> 13580 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Zombie/_Shadows/ZombieAttackShadow.pngbin0 -> 311 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Zombie/_Shadows/ZombieDieShadow.pngbin0 -> 218 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Zombie/_Shadows/ZombieDmgShadow.pngbin0 -> 268 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Zombie/_Shadows/ZombieIdleShadow.pngbin0 -> 210 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Zombie/_Shadows/ZombieWalkShadow.pngbin0 -> 254 bytes
-rw-r--r--html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Patreon_Minifantasy.url5
-rw-r--r--html/rogue/index.html29
-rw-r--r--html/rogue/js/animation.js53
-rw-r--r--html/rogue/js/camera.js145
-rw-r--r--html/rogue/js/config.js115
-rw-r--r--html/rogue/js/debug.js113
-rw-r--r--html/rogue/js/events.js16
-rw-r--r--html/rogue/js/fow.js85
-rw-r--r--html/rogue/js/game.js121
-rw-r--r--html/rogue/js/hex.js98
-rw-r--r--html/rogue/js/inventory-ui.js63
-rw-r--r--html/rogue/js/items.js63
-rw-r--r--html/rogue/js/player.js281
-rw-r--r--html/rogue/js/renderer.js120
-rw-r--r--html/rogue/js/state.js17
-rw-r--r--html/rogue/js/utils.js25
-rw-r--r--html/side-scrolling-rogue-thing/index.html26
-rw-r--r--html/side-scrolling-rogue-thing/js/camera.js56
-rw-r--r--html/side-scrolling-rogue-thing/js/config.js32
-rw-r--r--html/side-scrolling-rogue-thing/js/input.js (renamed from html/rogue/js/input.js)0
-rw-r--r--html/side-scrolling-rogue-thing/js/player.js64
-rw-r--r--html/side-scrolling-rogue-thing/js/renderer.js97
-rw-r--r--html/side-scrolling-rogue-thing/js/rogue.js (renamed from html/rogue/js/rogue.js)0
-rw-r--r--html/side-scrolling-rogue-thing/js/world.js (renamed from html/rogue/js/world.js)0
-rw-r--r--html/simple-shape/app.js464
-rw-r--r--html/simple-shape/docs/ContextManager.html671
-rw-r--r--html/simple-shape/docs/Layout.html423
-rw-r--r--html/simple-shape/docs/Patterns.html371
-rw-r--r--html/simple-shape/docs/Shapes.html436
-rw-r--r--html/simple-shape/docs/Utils.html985
-rw-r--r--html/simple-shape/docs/app.js.html514
-rw-r--r--html/simple-shape/docs/fonts/OpenSans-Bold-webfont.eotbin0 -> 19544 bytes
-rw-r--r--html/simple-shape/docs/fonts/OpenSans-Bold-webfont.svg1830
-rw-r--r--html/simple-shape/docs/fonts/OpenSans-Bold-webfont.woffbin0 -> 22432 bytes
-rw-r--r--html/simple-shape/docs/fonts/OpenSans-BoldItalic-webfont.eotbin0 -> 20133 bytes
-rw-r--r--html/simple-shape/docs/fonts/OpenSans-BoldItalic-webfont.svg1830
-rw-r--r--html/simple-shape/docs/fonts/OpenSans-BoldItalic-webfont.woffbin0 -> 23048 bytes
-rw-r--r--html/simple-shape/docs/fonts/OpenSans-Italic-webfont.eotbin0 -> 20265 bytes
-rw-r--r--html/simple-shape/docs/fonts/OpenSans-Italic-webfont.svg1830
-rw-r--r--html/simple-shape/docs/fonts/OpenSans-Italic-webfont.woffbin0 -> 23188 bytes
-rw-r--r--html/simple-shape/docs/fonts/OpenSans-Light-webfont.eotbin0 -> 19514 bytes
-rw-r--r--html/simple-shape/docs/fonts/OpenSans-Light-webfont.svg1831
-rw-r--r--html/simple-shape/docs/fonts/OpenSans-Light-webfont.woffbin0 -> 22248 bytes
-rw-r--r--html/simple-shape/docs/fonts/OpenSans-LightItalic-webfont.eotbin0 -> 20535 bytes
-rw-r--r--html/simple-shape/docs/fonts/OpenSans-LightItalic-webfont.svg1835
-rw-r--r--html/simple-shape/docs/fonts/OpenSans-LightItalic-webfont.woffbin0 -> 23400 bytes
-rw-r--r--html/simple-shape/docs/fonts/OpenSans-Regular-webfont.eotbin0 -> 19836 bytes
-rw-r--r--html/simple-shape/docs/fonts/OpenSans-Regular-webfont.svg1831
-rw-r--r--html/simple-shape/docs/fonts/OpenSans-Regular-webfont.woffbin0 -> 22660 bytes
-rw-r--r--html/simple-shape/docs/global.html265
-rw-r--r--html/simple-shape/docs/index.html65
-rw-r--r--html/simple-shape/docs/scripts/linenumber.js25
-rw-r--r--html/simple-shape/docs/scripts/prettify/Apache-License-2.0.txt202
-rw-r--r--html/simple-shape/docs/scripts/prettify/lang-css.js2
-rw-r--r--html/simple-shape/docs/scripts/prettify/prettify.js28
-rw-r--r--html/simple-shape/docs/styles/jsdoc-default.css358
-rw-r--r--html/simple-shape/docs/styles/prettify-jsdoc.css111
-rw-r--r--html/simple-shape/docs/styles/prettify-tomorrow.css132
-rw-r--r--html/simple-shape/index.html58
-rw-r--r--html/space/game.js45
-rw-r--r--html/space/gameState.js169
-rw-r--r--html/space/index.html22
-rw-r--r--html/space/input.js83
-rw-r--r--html/space/physics.js253
-rw-r--r--html/space/renderer.js358
-rw-r--r--html/svg-viewer/index.html522
-rw-r--r--html/text-world/index.html41
-rw-r--r--html/text-world/js/b.js126
-rw-r--r--html/text-world/js/ecs.js93
-rw-r--r--html/text-world/js/game.js239
-rw-r--r--html/text-world/js/where.js82
-rw-r--r--html/text-world/js/worldgen.js130
-rw-r--r--html/tower/docs/fonts/OpenSans-Bold-webfont.eotbin0 -> 19544 bytes
-rw-r--r--html/tower/docs/fonts/OpenSans-Bold-webfont.svg1830
-rw-r--r--html/tower/docs/fonts/OpenSans-Bold-webfont.woffbin0 -> 22432 bytes
-rw-r--r--html/tower/docs/fonts/OpenSans-BoldItalic-webfont.eotbin0 -> 20133 bytes
-rw-r--r--html/tower/docs/fonts/OpenSans-BoldItalic-webfont.svg1830
-rw-r--r--html/tower/docs/fonts/OpenSans-BoldItalic-webfont.woffbin0 -> 23048 bytes
-rw-r--r--html/tower/docs/fonts/OpenSans-Italic-webfont.eotbin0 -> 20265 bytes
-rw-r--r--html/tower/docs/fonts/OpenSans-Italic-webfont.svg1830
-rw-r--r--html/tower/docs/fonts/OpenSans-Italic-webfont.woffbin0 -> 23188 bytes
-rw-r--r--html/tower/docs/fonts/OpenSans-Light-webfont.eotbin0 -> 19514 bytes
-rw-r--r--html/tower/docs/fonts/OpenSans-Light-webfont.svg1831
-rw-r--r--html/tower/docs/fonts/OpenSans-Light-webfont.woffbin0 -> 22248 bytes
-rw-r--r--html/tower/docs/fonts/OpenSans-LightItalic-webfont.eotbin0 -> 20535 bytes
-rw-r--r--html/tower/docs/fonts/OpenSans-LightItalic-webfont.svg1835
-rw-r--r--html/tower/docs/fonts/OpenSans-LightItalic-webfont.woffbin0 -> 23400 bytes
-rw-r--r--html/tower/docs/fonts/OpenSans-Regular-webfont.eotbin0 -> 19836 bytes
-rw-r--r--html/tower/docs/fonts/OpenSans-Regular-webfont.svg1831
-rw-r--r--html/tower/docs/fonts/OpenSans-Regular-webfont.woffbin0 -> 22660 bytes
-rw-r--r--html/tower/docs/game.js.html537
-rw-r--r--html/tower/docs/gameState.js.html338
-rw-r--r--html/tower/docs/global.html3447
-rw-r--r--html/tower/docs/index.html65
-rw-r--r--html/tower/docs/mechanics.js.html480
-rw-r--r--html/tower/docs/module-game.html1553
-rw-r--r--html/tower/docs/module-gameState.html1407
-rw-r--r--html/tower/docs/module-mechanics.html2286
-rw-r--r--html/tower/docs/module-path.html531
-rw-r--r--html/tower/docs/module-renderer.html659
-rw-r--r--html/tower/docs/module-uiHandlers.html543
-rw-r--r--html/tower/docs/path.js.html226
-rw-r--r--html/tower/docs/renderer.js.html431
-rw-r--r--html/tower/docs/scripts/linenumber.js25
-rw-r--r--html/tower/docs/scripts/prettify/Apache-License-2.0.txt202
-rw-r--r--html/tower/docs/scripts/prettify/lang-css.js2
-rw-r--r--html/tower/docs/scripts/prettify/prettify.js28
-rw-r--r--html/tower/docs/styles/jsdoc-default.css358
-rw-r--r--html/tower/docs/styles/prettify-jsdoc.css111
-rw-r--r--html/tower/docs/styles/prettify-tomorrow.css132
-rw-r--r--html/tower/docs/uiHandlers.js.html146
-rw-r--r--html/tower/index.html116
-rw-r--r--html/tower/js/game.js487
-rw-r--r--html/tower/js/gameState.js288
-rw-r--r--html/tower/js/mechanics.js430
-rw-r--r--html/tower/js/path.js176
-rw-r--r--html/tower/js/renderer.js381
-rw-r--r--html/tower/js/uiHandlers.js96
-rw-r--r--html/voice-memos/app.js606
-rw-r--r--html/voice-memos/index.html248
3285 files changed, 98137 insertions, 449 deletions
diff --git a/html/cards/cards.js b/html/cards/cards.js
new file mode 100644
index 0000000..98aa0e1
--- /dev/null
+++ b/html/cards/cards.js
@@ -0,0 +1,441 @@
+/**
+ * @fileOverview Trying to make an easily extensible bit of code to handle
+ * creating and drawing any number of decks of cards. 
+ * 
+ * @author: eli_oat
+ * @license: no gods, no masters
+ */
+
+/**
+ * @typedef {Object} Card
+ * @property {number} x
+ * @property {number} y
+ * @property {CardData} card
+ * @property {boolean} isFaceUp
+ */
+
+/**
+ * @typedef {Object} CardData
+ * @property {string} suit
+ * @property {string} value
+ */
+
+/**
+ * @typedef {Object} GameState
+ * @property {Card[]} cards
+ * @property {Card|null} draggingCard
+ * @property {CardData[]} deck
+ * @property {{x: number, y: number}} stackPosition
+ */
+
+const CARD_WIDTH = 100;
+const CARD_HEIGHT = 150;
+const PADDING = 10;
+const SUITS = ['❤️', '♦️', '♣️', '♠️'];
+const VALUES = ['2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K', 'A'];
+const PATTERN_SIZE = 10;
+const INITIAL_CARD_X = 20;
+const INITIAL_CARD_Y = 20;
+const FONT_SIZE = '34px "pokemon-font", monospace';
+const CARD_BORDER_COLOR = '#000000';
+const CARD_FACE_COLOR = '#FFFFFF';
+const DECK_COUNT = 4; // Can be changed to any number
+const BASE_COLORS = [
+    { primary: '#FF9900', secondary: '#FFCC00' }, // Original orange deck
+    { primary: '#6B8E23', secondary: '#9ACD32' }, // Olive green deck
+    { primary: '#4169E1', secondary: '#87CEEB' }, // Royal blue deck
+    { primary: '#8B008B', secondary: '#DA70D6' }, // Purple deck
+    { primary: '#CD853F', secondary: '#DEB887' }  // Brown deck
+];
+
+
+// Pile layout
+const PILE_SPACING = CARD_WIDTH + PADDING * 4; // Space between piles
+const PILE_OFFSET = 5; // Vertical offset for stacked cards
+
+
+// Setting up the canvas
+const canvas = document.getElementById('cards');
+const ctx = canvas.getContext('2d');
+canvas.width = window.innerWidth;
+canvas.height = window.innerHeight;
+
+
+/**
+ * Shuffles an array in place and returns a new shuffled array.
+ * @param {Array} array - The array to shuffle.
+ * @returns {Array} A new array containing the shuffled elements.
+ */
+const shuffle = array => {
+    const result = [...array];
+    for (let i = result.length - 1; i > 0; i--) {
+        const j = Math.floor(Math.random() * (i + 1));
+        [result[i], result[j]] = [result[j], result[i]];
+    }
+    return result;
+};
+
+
+/**
+ * Creates a deck of cards for a given deck index.
+ * @param {number} deckIndex - The index of the deck being created.
+ * @returns {Array} An array of card objects, each containing suit, value, and deckId.
+ */
+const createDeck = (deckIndex) => SUITS.flatMap(suit => 
+    VALUES.map(value => ({ 
+        suit, 
+        value,
+        deckId: deckIndex // Add deckId to track which deck a card belongs to
+    }))
+);
+
+/**
+ * Creates multiple decks of cards based on the specified count.
+ * If the count exceeds the number of unique deck colors defined, 
+ * some decks will repeat colors.
+ * 
+ * @param {number} count - The number of decks to create.
+ * @returns {Array} An array of card objects, each containing suit, value, and deckId.
+ */
+const createDecks = (count) => {
+    if (count > BASE_COLORS.length) {
+        console.warn(`Only ${BASE_COLORS.length} unique deck colors are defined. Some decks will repeat colors.`);
+    }
+    return Array.from({ length: count }, (_, i) => createDeck(i)).flat();
+};
+
+/**
+ * Creates a card object with a known position and some card data.
+ * @param {number} x - The x-coordinate of the card.
+ * @param {number} y - The y-coordinate of the card.
+ * @param {CardData} cardData - The data for the card, including suit and value.
+ * @returns {Card} A new card object.
+ */
+const createCard = (x, y, cardData) => Object.freeze({
+    x: x + PADDING,
+    y: y + PADDING,
+    card: Object.freeze({ ...cardData }),
+    isFaceUp: false
+});
+
+/**
+ * Determines if a point is within a card.
+ * Used to determine where to hold a card when dragging.
+ * @param {number} x - The x-coordinate of the point.
+ * @param {number} y - The y-coordinate of the point.
+ * @param {Card} card - The card to check by card object reference.
+ * @returns {boolean} True if the point is within the card.
+ */
+const isPointInCard = (x, y, card) =>
+    x >= card.x && x <= card.x + CARD_WIDTH && y >= card.y && y <= card.y + CARD_HEIGHT;
+
+const clearCanvas = () => {
+    ctx.fillStyle = 'beige';
+    ctx.fillRect(0, 0, canvas.width, canvas.height);
+};
+
+const drawCardBack = card => {
+    ctx.fillRect(card.x, card.y, CARD_WIDTH, CARD_HEIGHT);
+    drawRetroPattern(card);
+    ctx.strokeStyle = CARD_BORDER_COLOR;
+    ctx.strokeRect(card.x, card.y, CARD_WIDTH, CARD_HEIGHT);
+};
+
+const drawRetroPattern = card => {
+    const checkeredSize = 10;
+    const deckColors = BASE_COLORS[card.card.deckId % BASE_COLORS.length];
+    
+    for (let i = 0; i < CARD_WIDTH; i += checkeredSize) {
+        for (let j = 0; j < CARD_HEIGHT; j += checkeredSize) {
+            ctx.fillStyle = (Math.floor(i / checkeredSize) + Math.floor(j / checkeredSize)) % 2 === 0 
+                ? deckColors.primary 
+                : deckColors.secondary;
+            ctx.fillRect(card.x + i, card.y + j, checkeredSize, checkeredSize);
+        }
+    }
+};
+
+const drawCardFront = card => {
+    ctx.fillStyle = CARD_FACE_COLOR;
+    ctx.fillRect(card.x, card.y, CARD_WIDTH, CARD_HEIGHT);
+    ctx.fillStyle = CARD_BORDER_COLOR;
+    ctx.font = FONT_SIZE;
+    ctx.strokeRect(card.x, card.y, CARD_WIDTH, CARD_HEIGHT);
+    
+    drawCardValue(card.card.value, card.x + 12, card.y + 42, 'left');
+    drawCardSuit(card.card.suit, card.x + CARD_WIDTH / 2, card.y + CARD_HEIGHT / 2 + 20);
+};
+
+const drawCardValue = (value, x, y, alignment) => {
+    ctx.textAlign = alignment;
+    ctx.fillStyle = CARD_BORDER_COLOR;
+    ctx.fillText(value, x, y);
+};
+
+const drawCardSuit = (suit, x, y) => {
+    ctx.textAlign = 'center';
+    ctx.fillStyle = CARD_BORDER_COLOR;
+    ctx.fillText(suit, x, y);
+};
+
+/**
+ * Renders a card, determining which side to draw based on its face-up state.
+ * @param {Card} card - The card to render by card object reference.
+ */
+const renderCard = card => {
+    card.isFaceUp ? drawCardFront(card) : drawCardBack(card);
+};
+
+const renderAllCards = cards => {
+    clearCanvas();
+    cards.forEach(renderCard);
+};
+
+let gameState;
+
+const initializeGameState = () => ({
+    cards: [],
+    draggingCard: null,
+    deck: shuffle(createDecks(DECK_COUNT)),
+    stackPosition: { x: 0, y: 0 }
+});
+
+const initializeGame = () => {
+    try {
+        gameState = initializeGameState();
+        
+        // Group cards by deck
+        const cardsByDeck = gameState.deck.reduce((acc, cardData) => {
+            const deckId = cardData.deckId;
+            if (!acc[deckId]) acc[deckId] = [];
+            acc[deckId].push(cardData);
+            return acc;
+        }, {});
+
+        // Calculate starting X position to center all piles
+        // FIXME: How can I make the deck position be dynamic?
+        const totalWidth = PILE_SPACING * DECK_COUNT;
+        const startX = (canvas.width - totalWidth) / 2;
+
+        // Create cards for each deck in its own pile
+        gameState.cards = Object.entries(cardsByDeck).flatMap(([deckId, deckCards]) => {
+            const pileX = startX + (parseInt(deckId) * PILE_SPACING);
+            
+            return deckCards.map((cardData, indexInDeck) => 
+                createCard(
+                    pileX,
+                    INITIAL_CARD_Y + (indexInDeck * PILE_OFFSET),
+                    cardData
+                )
+            );
+        });
+
+        // TODO: Consider adding another level Box > Deck > Pile > Card
+
+        clearCanvas();
+        renderAllCards(gameState.cards);
+        setupEventListeners();
+
+    } catch (error) {
+        console.error('Failed to initialize game:', error);
+        alert('Failed to initialize game. Please refresh the page.');
+    }
+};
+
+const setupEventListeners = () => {
+    canvas.addEventListener('mousedown', handleMouseDown);
+    canvas.addEventListener('contextmenu', e => e.preventDefault());
+    document.addEventListener('keydown', e => {
+        if (e.key === 'q') handleResetGame();
+    });
+};
+
+const handleMouseMove = e => {
+    if (!gameState.draggingCard) return;
+
+    const rect = canvas.getBoundingClientRect();
+    const newX = e.clientX - rect.left - dragOffset.x;
+    const newY = e.clientY - rect.top - dragOffset.y;
+
+    const updatedCard = moveCard(gameState.draggingCard, newX, newY);
+    gameState.cards = gameState.cards.map(card => 
+        card === gameState.draggingCard ? updatedCard : card
+    );
+    gameState.draggingCard = updatedCard;
+
+    renderAllCards(gameState.cards);
+};
+
+const handleMouseUp = e => {
+    if (!gameState.draggingCard) {
+        const rect = canvas.getBoundingClientRect();
+        const x = e.clientX - rect.left;
+        const y = e.clientY - rect.top;
+
+        // Was the card clicked?
+        const clickedCard = gameState.cards.slice().reverse().find(card => isPointInCard(x, y, card));
+        if (clickedCard) {
+            // Move the clicked card to the top of the stack
+            gameState.cards = gameState.cards.filter(card => card !== clickedCard);
+            gameState.cards.push(clickedCard);
+            renderAllCards(gameState.cards); // Re-render all cards
+        }
+    }
+
+    gameState.draggingCard = null;
+    document.removeEventListener('mousemove', handleMouseMove);
+    document.removeEventListener('mouseup', handleMouseUp);
+};
+
+let dragOffset = { x: 0, y: 0 }; // To store the offset of the click position
+
+/**
+ * Finds the card that was clicked.
+ * @param {number} x - The x-coordinate of the click.
+ * @param {number} y - The y-coordinate of the click.
+ * @param {Card[]} cards - The list of cards to search through by card object reference.
+ * @returns {Card|null} The card that was clicked, or null if no card was clicked.
+ */
+const findClickedCard = (x, y, cards) => 
+    cards.slice().reverse().find(card => isPointInCard(x, y, card));
+
+/**
+ * Moves a card to the top of the stack.
+ * @param {Card} targetCard - The card to move to the top.
+ * @param {Card[]} cards - The list of cards to search through by card object reference.
+ * @returns {Card[]} A new array with the target card moved to the top.
+ */
+const moveCardToTop = (targetCard, cards) => [
+    ...cards.filter(card => card !== targetCard),
+    targetCard
+];
+
+const handleMouseDown = e => {
+    const rect = canvas.getBoundingClientRect();
+    const x = e.clientX - rect.left;
+    const y = e.clientY - rect.top;
+
+    if (e.button === 2) {
+        e.preventDefault();
+        const clickedCard = findClickedCard(x, y, gameState.cards);
+        if (clickedCard) {
+            const updatedCard = toggleCardFace(clickedCard);
+            gameState.cards = gameState.cards.map(card => 
+                card === clickedCard ? updatedCard : card
+            );
+            renderAllCards(gameState.cards);
+        }
+        return;
+    }
+
+    const clickedCard = findClickedCard(x, y, gameState.cards);
+    if (clickedCard) {
+        gameState.draggingCard = clickedCard;
+        dragOffset = {
+            x: x - clickedCard.x,
+            y: y - clickedCard.y
+        };
+        gameState.cards = moveCardToTop(clickedCard, gameState.cards);
+        
+        document.addEventListener('mousemove', handleMouseMove);
+        document.addEventListener('mouseup', handleMouseUp);
+    }
+};
+
+const handleResetGame = () => {
+    if (confirm("Would you like to reset the cards?")) {
+        resetCardsToOriginalPiles();
+    }
+};
+
+/**
+ * Moves a card to a new position.
+ * @param {Card} card - The card to move.
+ * @param {number} newX - The new x-coordinate for the card.
+ * @param {number} newY - The new y-coordinate for the card.
+ * @returns {Card} A new card object with updated position.
+ */
+const moveCard = (card, newX, newY) => ({
+    ...card,
+    x: newX,
+    y: newY
+});
+
+const toggleCardFace = card => ({
+    ...card,
+    isFaceUp: !card.isFaceUp
+});
+
+/**
+ * Calculates some stats for each deck, including total and face-up counts.
+ * @returns {Map} A map containing the total and face-up counts for each deck. 
+ * Useful for debugging information to the canvas.
+ */
+const getDeckStats = () => {
+    const stats = new Map();
+    gameState.cards.forEach(card => {
+        const deckId = card.card.deckId;
+        const current = stats.get(deckId) || { total: 0, faceUp: 0 };
+        stats.set(deckId, {
+            total: current.total + 1,
+            faceUp: current.faceUp + (card.isFaceUp ? 1 : 0)
+        });
+    });
+    return stats;
+};
+
+const renderDeckStats = () => {
+    const stats = getDeckStats();
+    ctx.font = '16px "pokemon-font", monospace';
+    
+    // Calculate the same starting X position as the piles
+    const totalWidth = PILE_SPACING * DECK_COUNT;
+    const startX = (canvas.width - totalWidth) / 2;
+    
+    stats.forEach((stat, deckId) => {
+        const colors = BASE_COLORS[deckId % BASE_COLORS.length];
+        const pileX = startX + (deckId * PILE_SPACING);
+        
+        ctx.fillStyle = colors.primary;
+        ctx.textAlign = 'center';
+        ctx.fillText(
+            `Deck ${deckId + 1}: ${stat.faceUp}/${stat.total}`, 
+            pileX + CARD_WIDTH / 2,
+            INITIAL_CARD_Y - 10
+        );
+    });
+};
+
+// FIXME: this is too complicated, and would probably work better if I had a better way of handling state. 
+const resetCardsToOriginalPiles = () => {
+    const totalWidth = PILE_SPACING * DECK_COUNT;
+    const startX = (canvas.width - totalWidth) / 2;
+
+    // Group cards by deck
+    const cardsByDeck = gameState.cards.reduce((acc, card) => {
+        const deckId = card.card.deckId;
+        if (!acc[deckId]) acc[deckId] = [];
+        acc[deckId].push(card);
+        return acc;
+    }, {});
+
+    // Reset position for each deck
+    Object.entries(cardsByDeck).forEach(([deckId, deckCards]) => {
+        const pileX = startX + (parseInt(deckId) * PILE_SPACING);
+        
+        deckCards.forEach((card, index) => {
+            card.x = pileX;
+            card.y = INITIAL_CARD_Y + (index * PILE_OFFSET);
+            card.isFaceUp = false;
+        });
+    });
+
+    renderAllCards(gameState.cards);
+};
+
+initializeGame();
+
+window.addEventListener('unload', () => {
+    canvas.removeEventListener('mousedown', handleMouseDown);
+    canvas.removeEventListener('contextmenu', e => e.preventDefault());
+}); 
\ No newline at end of file
diff --git a/html/cards/fonts/DotGothic16-Regular.ttf b/html/cards/fonts/DotGothic16-Regular.ttf
new file mode 100644
index 0000000..6634bc1
--- /dev/null
+++ b/html/cards/fonts/DotGothic16-Regular.ttf
Binary files differdiff --git a/html/cards/fonts/OFL copy.txt b/html/cards/fonts/OFL copy.txt
new file mode 100644
index 0000000..7c6649c
--- /dev/null
+++ b/html/cards/fonts/OFL copy.txt
@@ -0,0 +1,93 @@
+Copyright 2020 The DotGothic16 Project Authors (https://github.com/fontworks-fonts/DotGothic16)

+

+This Font Software is licensed under the SIL Open Font License, Version 1.1.

+This license is copied below, and is also available with a FAQ at:

+https://openfontlicense.org

+

+

+-----------------------------------------------------------

+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007

+-----------------------------------------------------------

+

+PREAMBLE

+The goals of the Open Font License (OFL) are to stimulate worldwide

+development of collaborative font projects, to support the font creation

+efforts of academic and linguistic communities, and to provide a free and

+open framework in which fonts may be shared and improved in partnership

+with others.

+

+The OFL allows the licensed fonts to be used, studied, modified and

+redistributed freely as long as they are not sold by themselves. The

+fonts, including any derivative works, can be bundled, embedded, 

+redistributed and/or sold with any software provided that any reserved

+names are not used by derivative works. The fonts and derivatives,

+however, cannot be released under any other type of license. The

+requirement for fonts to remain under this license does not apply

+to any document created using the fonts or their derivatives.

+

+DEFINITIONS

+"Font Software" refers to the set of files released by the Copyright

+Holder(s) under this license and clearly marked as such. This may

+include source files, build scripts and documentation.

+

+"Reserved Font Name" refers to any names specified as such after the

+copyright statement(s).

+

+"Original Version" refers to the collection of Font Software components as

+distributed by the Copyright Holder(s).

+

+"Modified Version" refers to any derivative made by adding to, deleting,

+or substituting -- in part or in whole -- any of the components of the

+Original Version, by changing formats or by porting the Font Software to a

+new environment.

+

+"Author" refers to any designer, engineer, programmer, technical

+writer or other person who contributed to the Font Software.

+

+PERMISSION & CONDITIONS

+Permission is hereby granted, free of charge, to any person obtaining

+a copy of the Font Software, to use, study, copy, merge, embed, modify,

+redistribute, and sell modified and unmodified copies of the Font

+Software, subject to the following conditions:

+

+1) Neither the Font Software nor any of its individual components,

+in Original or Modified Versions, may be sold by itself.

+

+2) Original or Modified Versions of the Font Software may be bundled,

+redistributed and/or sold with any software, provided that each copy

+contains the above copyright notice and this license. These can be

+included either as stand-alone text files, human-readable headers or

+in the appropriate machine-readable metadata fields within text or

+binary files as long as those fields can be easily viewed by the user.

+

+3) No Modified Version of the Font Software may use the Reserved Font

+Name(s) unless explicit written permission is granted by the corresponding

+Copyright Holder. This restriction only applies to the primary font name as

+presented to the users.

+

+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font

+Software shall not be used to promote, endorse or advertise any

+Modified Version, except to acknowledge the contribution(s) of the

+Copyright Holder(s) and the Author(s) or with their explicit written

+permission.

+

+5) The Font Software, modified or unmodified, in part or in whole,

+must be distributed entirely under this license, and must not be

+distributed under any other license. The requirement for fonts to

+remain under this license does not apply to any document created

+using the Font Software.

+

+TERMINATION

+This license becomes null and void if any of the above conditions are

+not met.

+

+DISCLAIMER

+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,

+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF

+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT

+OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE

+COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,

+INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL

+DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING

+FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM

+OTHER DEALINGS IN THE FONT SOFTWARE.

diff --git a/html/cards/fonts/OFL.txt b/html/cards/fonts/OFL.txt
new file mode 100644
index 0000000..70041e1
--- /dev/null
+++ b/html/cards/fonts/OFL.txt
@@ -0,0 +1,93 @@
+Copyright 2012 The Press Start 2P Project Authors (cody@zone38.net), with Reserved Font Name "Press Start 2P".

+

+This Font Software is licensed under the SIL Open Font License, Version 1.1.

+This license is copied below, and is also available with a FAQ at:

+https://openfontlicense.org

+

+

+-----------------------------------------------------------

+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007

+-----------------------------------------------------------

+

+PREAMBLE

+The goals of the Open Font License (OFL) are to stimulate worldwide

+development of collaborative font projects, to support the font creation

+efforts of academic and linguistic communities, and to provide a free and

+open framework in which fonts may be shared and improved in partnership

+with others.

+

+The OFL allows the licensed fonts to be used, studied, modified and

+redistributed freely as long as they are not sold by themselves. The

+fonts, including any derivative works, can be bundled, embedded, 

+redistributed and/or sold with any software provided that any reserved

+names are not used by derivative works. The fonts and derivatives,

+however, cannot be released under any other type of license. The

+requirement for fonts to remain under this license does not apply

+to any document created using the fonts or their derivatives.

+

+DEFINITIONS

+"Font Software" refers to the set of files released by the Copyright

+Holder(s) under this license and clearly marked as such. This may

+include source files, build scripts and documentation.

+

+"Reserved Font Name" refers to any names specified as such after the

+copyright statement(s).

+

+"Original Version" refers to the collection of Font Software components as

+distributed by the Copyright Holder(s).

+

+"Modified Version" refers to any derivative made by adding to, deleting,

+or substituting -- in part or in whole -- any of the components of the

+Original Version, by changing formats or by porting the Font Software to a

+new environment.

+

+"Author" refers to any designer, engineer, programmer, technical

+writer or other person who contributed to the Font Software.

+

+PERMISSION & CONDITIONS

+Permission is hereby granted, free of charge, to any person obtaining

+a copy of the Font Software, to use, study, copy, merge, embed, modify,

+redistribute, and sell modified and unmodified copies of the Font

+Software, subject to the following conditions:

+

+1) Neither the Font Software nor any of its individual components,

+in Original or Modified Versions, may be sold by itself.

+

+2) Original or Modified Versions of the Font Software may be bundled,

+redistributed and/or sold with any software, provided that each copy

+contains the above copyright notice and this license. These can be

+included either as stand-alone text files, human-readable headers or

+in the appropriate machine-readable metadata fields within text or

+binary files as long as those fields can be easily viewed by the user.

+

+3) No Modified Version of the Font Software may use the Reserved Font

+Name(s) unless explicit written permission is granted by the corresponding

+Copyright Holder. This restriction only applies to the primary font name as

+presented to the users.

+

+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font

+Software shall not be used to promote, endorse or advertise any

+Modified Version, except to acknowledge the contribution(s) of the

+Copyright Holder(s) and the Author(s) or with their explicit written

+permission.

+

+5) The Font Software, modified or unmodified, in part or in whole,

+must be distributed entirely under this license, and must not be

+distributed under any other license. The requirement for fonts to

+remain under this license does not apply to any document created

+using the Font Software.

+

+TERMINATION

+This license becomes null and void if any of the above conditions are

+not met.

+

+DISCLAIMER

+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,

+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF

+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT

+OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE

+COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,

+INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL

+DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING

+FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM

+OTHER DEALINGS IN THE FONT SOFTWARE.

diff --git a/html/cards/fonts/PressStart2P-Regular.ttf b/html/cards/fonts/PressStart2P-Regular.ttf
new file mode 100644
index 0000000..2442aff
--- /dev/null
+++ b/html/cards/fonts/PressStart2P-Regular.ttf
Binary files differdiff --git a/html/cards/index.html b/html/cards/index.html
new file mode 100644
index 0000000..6c6c25e
--- /dev/null
+++ b/html/cards/index.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <meta name="description" content="One should always play fairly when one has the winning cards - Oscar Wilde">
+    <title>🃏 cards 🃏</title>
+    <style>
+        @font-face {
+            font-family: 'pokemon-font';
+            src: url('./pokemon-font/fonts/pokemon-font.ttf') format('ttf'); /* IE9 Compat Modes */
+            src: url('./pokemon-font/fonts/pokemon-font.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
+                url('./pokemon-font/fonts/pokemon-font.woff2') format('woff2'), /* Super Modern Browsers */
+                url('./pokemon-font/fonts/pokemon-font.woff') format('woff'), /* Pretty Modern Browsers */
+                url('./pokemon-font/fonts/pokemon-font.ttf')  format('truetype') /* Safari, Android, iOS */
+        }
+
+        body {
+            margin: 0;
+            padding: 0;
+            font-smooth: never;
+            -webkit-font-smoothing: none;
+            font-family: "pokemon-font", monospace;
+            font-size: 16px;
+        }
+
+        canvas {
+            display: block;
+        }
+    </style>
+</head>
+<body>
+    <canvas id="cards"></canvas>
+    <script src="./cards.js"></script>
+</body>
+</html>
diff --git a/html/cards/pokemon-font b/html/cards/pokemon-font
new file mode 160000
+Subproject 81b60805150c75ebfdfcec6d8352c67e491f8a6
diff --git a/html/ccc/index.html b/html/ccc/index.html
new file mode 100644
index 0000000..96fee2e
--- /dev/null
+++ b/html/ccc/index.html
@@ -0,0 +1,653 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>Color Contrast Checker</title>
+    <meta name="description" content="Give it a list of colors, find accessible combinations.">
+    <style>
+        body { font-family: Arial, sans-serif; padding: 20px; size: 16px;}
+        .color-input { margin-bottom: 10px; width: 100%; height: 100px; font-size: 16px; /* Prevent iOS zoom */ }
+        .color-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; }
+        .color-box { padding: 10px; text-align: center; border: 1px solid #ccc; }
+        .hidden { display: none; }
+        .form-controls { 
+            display: flex;
+            flex-wrap: wrap;
+            gap: 1rem;
+            padding: 1rem;
+            background: #f5f5f5;
+            border-radius: 4px;
+            margin-top: 1rem;
+            justify-content: space-between;
+        }
+        .checkbox-controls { 
+            display: flex;
+            flex-wrap: wrap;
+            gap: 1rem;
+            align-items: center;
+            justify-content: flex-end;
+        }
+        @media (max-width: 600px) {
+            .form-controls {
+                flex-direction: column;
+                align-items: stretch;
+            }
+            .checkbox-controls {
+                flex-direction: column;
+                align-items: stretch;
+            }
+            button {
+                width: 100%;
+            }
+        }
+        button {
+            padding: 0.5rem 1rem;
+            border: none;
+            border-radius: 4px;
+            background: #007bff;
+            color: white;
+            cursor: pointer;
+        }
+        button:hover {
+            background: #0056b3;
+        }
+        button[onclick="shareColors()"] {
+            background: #6c757d;
+        }
+        button[onclick="shareColors()"]:hover {
+            background: #545b62;
+        }
+        label {
+            white-space: nowrap;
+        }
+        .error {
+            color: #721c24;
+            background-color: #f8d7da;
+            border: 1px solid #f5c6cb;
+            padding: 1rem;
+            border-radius: 4px;
+            margin: 1rem 0;
+            grid-column: 1 / -1;
+        }
+        .warning {
+            color: #856404;
+            background-color: #fff3cd;
+            border: 1px solid #ffeeba;
+            padding: 1rem;
+            border-radius: 4px;
+            margin: 1rem 0;
+            grid-column: 1 / -1;
+        }
+    </style>
+</head>
+<body>
+    <header>
+        <h1>What color combinations are accessible?</h1>
+    </header>
+    <main>
+        <form id="colorForm" onsubmit="event.preventDefault(); updateColors();">
+            <label for="colors">Colors you want to check for contrast:</label>
+            <textarea id="colors" class="color-input" required placeholder="Feel free to mix and match hex, rgb, and rgba values!"></textarea>
+            <p style="margin-top: 0;">You can enter colors as a comma separated list, or as a newline separated list...or a mix of both! Colors can be in hex (#RGB or #RRGGBB), rgb(r,g,b), or rgba(r,g,b,a) format. You can mix and match color formats, too!</p>
+            <div class="form-controls">
+                <button type="submit">Check Contrast</button>
+                <div class="checkbox-controls">
+                    <label><input type="checkbox" id="toggleFails" onchange="updateVisibility()"> Hide failing pairs</label>
+                    <label><input type="checkbox" id="sortContrast" onchange="updateColors()"> Sort by contrast</label>
+                    <button type="button" onclick="shareColors()">Share Palette</button>
+                </div>
+            </div>
+        </form>
+        <br>
+        <br>
+        <section id="results" class="color-grid" aria-live="polite"></section>
+    </main>
+    <footer>
+        <p>Color Contrast Checker &mdash; A tool to help you find accessible color combinations.</p>
+        <p>This tool can only determine if two color combinations have a mathmatically correct contrast ratio. Digital accessiblity isn't just about math, though, so use this as a starting place, not as the final word on if a color combination is accessible.</p>
+    </footer>
+    
+    <script>
+        // ===== Initialization and URL Parameter Handling =====
+        window.addEventListener('load', () => {
+            const urlParams = new URLSearchParams(window.location.search);
+            const colors = urlParams.get('colors');
+            if (colors) {
+                document.getElementById('colors').value = decodeURIComponent(colors);
+                updateColors();
+            }
+
+            // Only create test UI if tests parameter is present and true
+            if (urlParams.get('tests') === 'true' || urlParams.get('tests') === 't') {
+                createTestUI();
+            }
+        });
+
+        // ===== Share Functionality =====
+        function shareColors() {
+            const colors = document.getElementById('colors').value;
+            if (!colors) return;
+            
+            const encodedColors = encodeURIComponent(colors);
+            const url = `${window.location.origin}${window.location.pathname}?colors=${encodedColors}`;
+            
+            // Copy to clipboard
+            navigator.clipboard.writeText(url).then(() => {
+                alert('Share link copied to clipboard!');
+            }).catch(() => {
+                // Fallback if clipboard API fails
+                prompt('Copy this share link:', url);
+            });
+        }
+
+        // ===== Color Parsing and Conversion =====
+        function parseColor(color) {
+            // Remove all whitespace and convert to lowercase
+            const originalColor = color; // Store original format
+            color = color.replace(/\s/g, '').toLowerCase();
+            
+            // If it's just numbers, assume it's an error
+            if (/^\d+$/.test(color)) {
+                throw new Error(`Invalid color format: ${color}. Please use hex (#RGB or #RRGGBB) or rgb()/rgba() format.`);
+            }
+
+            // Add # prefix if it's a hex code without it
+            if (/^[0-9a-f]{3}$|^[0-9a-f]{6}$/.test(color)) {
+                color = '#' + color;
+            }
+            
+            // Handle hex colors
+            if (color.startsWith('#')) {
+                // Validate hex format
+                if (!/^#([0-9a-f]{3}|[0-9a-f]{6})$/.test(color)) {
+                    throw new Error(`Invalid hex color format: ${color}. Use #RGB or #RRGGBB format.`);
+                }
+                
+                // Convert 3-digit hex to 6-digit
+                if (color.length === 4) {
+                    color = '#' + color[1] + color[1] + color[2] + color[2] + color[3] + color[3];
+                }
+                // Remove # and convert to RGB array
+                const hex = color.substring(1);
+                return {
+                    r: parseInt(hex.slice(0, 2), 16),
+                    g: parseInt(hex.slice(2, 4), 16),
+                    b: parseInt(hex.slice(4, 6), 16),
+                    a: 1,
+                    originalFormat: originalColor
+                };
+            }
+            
+            // Handle rgb/rgba colors
+            if (color.startsWith('rgb')) {
+                // Validate rgb/rgba format
+                if (!/^rgba?\(\d+(\.\d+)?(,\d+(\.\d+)?){2}(,\d*\.?\d+)?\)$/.test(color)) {
+                    throw new Error(`Invalid rgb/rgba format: ${color}. Use rgb(r,g,b) or rgba(r,g,b,a) format.`);
+                }
+                
+                const values = color.match(/[\d.]+/g);
+                const rgb = values.map(v => parseFloat(v));
+                
+                // Validate rgb values are in range
+                if (rgb.slice(0, 3).some(v => v < 0 || v > 255)) {
+                    throw new Error(`RGB values must be between 0 and 255: ${color}`);
+                }
+                if (rgb.length === 4 && (rgb[3] < 0 || rgb[3] > 1)) {
+                    throw new Error(`Alpha value must be between 0 and 1: ${color}`);
+                }
+                
+                return {
+                    r: rgb[0],
+                    g: rgb[1],
+                    b: rgb[2],
+                    a: rgb.length === 4 ? rgb[3] : 1,
+                    originalFormat: originalColor
+                };
+            }
+            
+            throw new Error(`Unsupported color format: ${color}. Please use hex (#RGB or #RRGGBB) or rgb()/rgba() format.`);
+        }
+
+        function colorToHex({r, g, b}) {
+            const toHex = (n) => {
+                const hex = Math.round(n).toString(16);
+                return hex.length === 1 ? '0' + hex : hex;
+            };
+            return `#${toHex(r)}${toHex(g)}${toHex(b)}`;
+        }
+
+        // ===== Contrast Calculation and WCAG Compliance =====
+        function getContrastRatio(color1, color2) {
+            // Calculate relative luminance using WCAG formula
+            // L = 0.2126 * R + 0.7152 * G + 0.0722 * B
+            // where R, G, and B are the red, green, and blue values of the color
+            // the formula normalizes the RGB values to a 0-1 range
+            // and then applies coefficients to represent human perception of color
+            // Returns a value between 0 and 1, where 0 is darkest and 1 is brightest
+            function luminance(r, g, b) {
+                // Convert RGB values to sRGB colorspace values
+                let channels = [r, g, b].map(v => {
+                    // Step 1: Normalize RGB values to 0-1 range
+                    v /= 255;
+                    
+                    // Step 2: Convert to sRGB using WCAG formula
+                    // If value is small (≤ 0.03928), use simple linear calculation
+                    // Otherwise, use the more complex power formula
+                    return v <= 0.03928 
+                        ? v / 12.92 
+                        : Math.pow((v + 0.055) / 1.055, 2.4);
+                });
+                
+                // Step 3: Apply luminance coefficients
+                // These coefficients represent human perception of color
+                // Red contributes 21.26%, Green 71.52%, and Blue 7.22% to perceived brightness
+                return channels[0] * 0.2126  // Red coefficient
+                     + channels[1] * 0.7152  // Green coefficient
+                     + channels[2] * 0.0722; // Blue coefficient
+            }
+
+            // Handle colors with transparency by compositing them with white background
+            const parseAndComposite = (color) => {
+                const parsed = parseColor(color);
+                // If color is fully opaque, return as is
+                if (parsed.a === 1) return parsed;
+                
+                // For semi-transparent colors, composite with white background
+                // Using alpha compositing formula: result = (foreground × alpha) + (background × (1 - alpha))
+                const alpha = parsed.a;
+                return {
+                    r: (parsed.r * alpha) + (255 * (1 - alpha)), // Blend red channel
+                    g: (parsed.g * alpha) + (255 * (1 - alpha)), // Blend green channel
+                    b: (parsed.b * alpha) + (255 * (1 - alpha)), // Blend blue channel
+                    a: 1 // Result is fully opaque
+                };
+            };
+
+            // Process both colors, handling any transparency
+            const rgb1 = parseAndComposite(color1);
+            const rgb2 = parseAndComposite(color2);
+            
+            // Calculate luminance for both colors
+            const lum1 = luminance(rgb1.r, rgb1.g, rgb1.b);
+            const lum2 = luminance(rgb2.r, rgb2.g, rgb2.b);
+            
+            // Calculate contrast ratio using WCAG formula:
+            // (L1 + 0.05) / (L2 + 0.05), where L1 is the lighter color's luminance
+            // The 0.05 constant prevents division by zero and handles very dark colors
+            const lighter = Math.max(lum1, lum2);
+            const darker = Math.min(lum1, lum2);
+            return (lighter + 0.05) / (darker + 0.05);
+        }
+
+
+        // This is an incomplete check since it is only dealing with color, and doesn't consider font sizing
+        // https://developer.mozilla.org/en-US/docs/Web/Accessibility/Understanding_WCAG/Perceivable/Color_contrast
+        function getWCAGLevel(contrast) {
+            // Level AAA: Contrast ratio of at least 7:1
+            if (contrast >= 7) return "AAA";
+            // Level AA: Contrast ratio of at least 4.5:1
+            if (contrast >= 4.5) return "AA";
+            // Failing: Contrast ratio below 4.5:1
+            return "Fail";
+        }
+
+        // ===== UI Generation and Updates =====
+        function createColorBox(color1, color2, contrast, level, accessible, showGlow) {
+            const classes = ["color-box"];
+            if (!accessible) classes.push("failing");
+            if (level === "AAA" && showGlow) classes.push("glowing-border");
+            
+            const foreground = parseColor(color1);
+            const background = parseColor(color2);
+            
+            return `
+                <div class="${classes.join(' ')}" style="background: ${background.originalFormat}; color: ${foreground.originalFormat};">
+                    ${foreground.originalFormat} on ${background.originalFormat}<br>
+                    Ratio: ${contrast} ${accessible ? "✅" : "❌"}<br>
+                    WCAG: ${level}
+                </div>
+            `;
+        }
+
+        function updateColors() {
+            const input = document.getElementById("colors").value;
+            const results = document.getElementById("results");
+            
+            // First split by newlines
+            const colorLines = input.split(/\n+/).map(line => line.trim()).filter(line => line);
+            
+            // Then process each line to handle both comma-separated values and rgb/rgba formats
+            let colors = colorLines.flatMap(line => {
+                // Temporary replace commas in rgb/rgba values with a special marker
+                line = line.replace(/rgba?\([^)]+\)/g, match => match.replace(/,/g, '|'));
+                
+                // Split by commas and restore the original commas in rgb/rgba values
+                return line.split(',')
+                    .map(color => color.trim().replace(/\|/g, ','))
+                    .filter(color => color);
+            });
+
+            // Clear any existing warnings
+            document.querySelectorAll('.warning').forEach(el => el.remove());
+
+            // Deduplicate colors by converting to a standard format and back
+            colors = [...new Set(colors.map(color => {
+                try {
+                    const parsed = parseColor(color);
+                    return parsed.originalFormat;
+                } catch (error) {
+                    return color; // Keep invalid colors for error handling
+                }
+            }))];
+
+            const duplicates = findDuplicateColors(colors);
+            if (duplicates.length > 0) {
+                console.warn('Duplicate colors found:', duplicates);
+            }
+
+            try {
+                const colorCombinations = colors.flatMap((color1, i) => 
+                    colors.slice(i + 1).map(color2 => {
+                        try {
+                            const contrast = getContrastRatio(color1, color2).toFixed(2);
+                            const level = getWCAGLevel(contrast);
+                            const accessible = level !== "Fail";
+                            return { color1, color2, contrast, level, accessible };
+                        } catch (error) {
+                            console.error(`Error processing colors ${color1} and ${color2}:`, error);
+                            return null;
+                        }
+                    }).filter(combo => combo !== null)
+                );
+
+                const sortByContrast = document.getElementById("sortContrast").checked;
+                if (sortByContrast) {
+                    colorCombinations.sort((a, b) => b.contrast - a.contrast);
+                }
+
+                const colorBoxes = colorCombinations.map(({ color1, color2, contrast, level, accessible }) => {
+                    return createColorBox(color1, color2, contrast, level, accessible, false);
+                });
+
+                results.innerHTML = colorBoxes.join('');
+                updateVisibility();
+            } catch (error) {
+                results.innerHTML = `<div class="error">Error: ${error.message}</div>`;
+            }
+        }
+
+        function findDuplicateColors(colors) {
+            const seen = new Map();
+            const duplicates = new Set();
+
+            colors.forEach(color => {
+                try {
+                    const parsed = parseColor(color);
+                    const normalized = `rgb(${parsed.r},${parsed.g},${parsed.b},${parsed.a})`;
+                    
+                    if (seen.has(normalized)) {
+                        duplicates.add(color);
+                    }
+                    seen.set(normalized, color);
+                } catch (error) {
+                    // Ignore invalid colors
+                }
+            });
+
+            return Array.from(duplicates);
+        }
+
+        function updateVisibility() {
+            let hideFails = document.getElementById("toggleFails").checked;
+            
+            document.querySelectorAll(".failing").forEach(box => {
+                box.style.display = hideFails ? "none" : "block";
+            });
+        }
+
+
+
+
+
+
+
+
+
+
+
+        
+        // ===== Testing Functions =====
+        function runContrastTests() {
+            const testCases = [
+                {
+                    color1: '#000000',
+                    color2: '#FFFFFF',
+                    expectedRatio: 21,  // Black on White should be ~21:1
+                    description: 'Black on White - Maximum Contrast'
+                },
+                {
+                    color1: '#000000',
+                    color2: '#000000',
+                    expectedRatio: 1,   // Same colors should be 1:1
+                    description: 'Same Colors - Minimum Contrast'
+                },
+                {
+                    color1: '#000',
+                    color2: 'rgb(255, 255, 255)',
+                    expectedRatio: 21,
+                    description: 'Short hex vs RGB - Should match black on white'
+                },
+                {
+                    color1: 'rgba(0, 0, 0, 1)',
+                    color2: '#FFFFFF',
+                    expectedRatio: 21,
+                    description: 'RGBA vs Hex - Should match black on white'
+                },
+                {
+                    color1: 'rgba(0, 0, 0, 0.5)',
+                    color2: '#FFFFFF',
+                    expectedRatio: 3.95,  // Corrected value based on WCAG formula
+                    description: 'Semi-transparent black on white'
+                },
+                {
+                    color1: '#777777',
+                    color2: '#FFFFFF',
+                    expectedRatio: 4.48,  // Common gray on white
+                    description: 'Gray on White - Just below AA'
+                },
+                {
+                    color1: '#565656',
+                    color2: '#FFFFFF',
+                    expectedRatio: 7.34,
+                    description: 'Dark Gray on White - AAA level'
+                },
+                {
+                    color1: '#FF0000',
+                    color2: '#FFFFFF',
+                    expectedRatio: 3.99,
+                    description: 'Red on White'
+                },
+                {
+                    color1: 'rgba(0, 0, 0, 0.8)',
+                    color2: '#FFFFFF',
+                    expectedRatio: 12.63,
+                    description: '80% transparent black on white'
+                },
+                {
+                    color1: '#FFFFFF',
+                    color2: '#FFFFFE',
+                    expectedRatio: 1.0,
+                    description: 'Nearly identical colors'
+                },
+                {
+                    color1: 'rgba(0, 0, 0, 0.001)',
+                    color2: '#FFFFFF',
+                    expectedRatio: 1.0,
+                    description: 'Nearly transparent color'
+                },
+                {
+                    color1: '#808080',
+                    color2: '#FFFFFF',
+                    expectedRatio: 3.95,
+                    description: '50% gray on white'
+                },
+                {
+                    color1: '#FFFFFF',
+                    color2: '#000000',
+                    expectedRatio: 21,
+                    description: 'White on Black - Should match Black on White'
+                }
+            ];
+
+            function runTestGroup(tests) {
+                let groupResults = {
+                    total: tests.length,
+                    passed: 0,
+                    failed: 0,
+                    details: []
+                };
+
+                tests.forEach(test => {
+                    const actualRatio = parseFloat(getContrastRatio(test.color1, test.color2).toFixed(2));
+                    const expectedRatio = parseFloat(test.expectedRatio.toFixed(2));
+                    const difference = Math.abs(actualRatio - expectedRatio);
+                    const passed = difference <= 0.1;
+
+                    groupResults.details.push({
+                        description: test.description,
+                        passed,
+                        expected: expectedRatio,
+                        actual: actualRatio,
+                        difference
+                    });
+
+                    if (passed) groupResults.passed++;
+                    else groupResults.failed++;
+                });
+
+                // Log results in a table format
+                console.table(groupResults.details);
+                
+                return groupResults;
+            }
+
+            // Group tests by category
+            console.group('Running Contrast Ratio Tests');
+            
+            console.group('Basic Contrast Tests');
+            const basicResults = runTestGroup(testCases.filter(t => !t.color1.includes('rgba')));
+            console.groupEnd();
+            
+            console.group('Transparency Tests');
+            const transparencyResults = runTestGroup(testCases.filter(t => t.color1.includes('rgba')));
+            console.groupEnd();
+
+            console.groupEnd();
+
+            // Return combined results
+            return {
+                total: basicResults.total + transparencyResults.total,
+                passed: basicResults.passed + transparencyResults.passed,
+                failed: basicResults.failed + transparencyResults.failed
+            };
+        }
+
+        function runValidationTests() {
+            const invalidCases = [
+                {
+                    input: 'not-a-color',
+                    expectedError: 'Unsupported color format'
+                },
+                {
+                    input: '#GGG',
+                    expectedError: 'Invalid hex color format'
+                },
+                {
+                    input: 'rgb(256,0,0)',
+                    expectedError: 'RGB values must be between 0 and 255'
+                },
+                {
+                    input: 'rgba(0,0,0,1.1)',
+                    expectedError: 'Alpha value must be between 0 and 1'
+                }
+            ];
+
+            console.group('Running Validation Tests');
+            
+            let results = {
+                total: invalidCases.length,
+                passed: 0,
+                failed: 0
+            };
+            
+            invalidCases.forEach(test => {
+                try {
+                    parseColor(test.input);
+                    console.error(`❌ FAILED: Expected error for "${test.input}"`);
+                    results.failed++;
+                } catch (error) {
+                    if (error.message.includes(test.expectedError)) {
+                        console.log(`✅ PASSED: Correctly rejected "${test.input}"`);
+                        results.passed++;
+                    } else {
+                        console.error(`❌ FAILED: Wrong error for "${test.input}"`);
+                        console.error(`   Expected: ${test.expectedError}`);
+                        console.error(`   Got: ${error.message}`);
+                        results.failed++;
+                    }
+                }
+            });
+
+            console.groupEnd();
+            return results;
+        }
+
+        function createTestUI() {
+            const testSection = document.createElement('section');
+            testSection.innerHTML = `
+                <div class="test-controls">
+                    <h2>Test Suite</h2>
+                    <button onclick="runContrastTests()">Run Contrast Tests</button>
+                    <button onclick="runValidationTests()">Run Validation Tests</button>
+                    <button onclick="runAllTests()">Run All Tests</button>
+                    <div id="test-results"></div>
+                </div>
+            `;
+            
+            // Add some styles
+            const style = document.createElement('style');
+            style.textContent = `
+                .test-controls {
+                    margin: 20px 0;
+                    padding: 20px;
+                    border: 1px solid #ccc;
+                    border-radius: 4px;
+                }
+                .test-controls button {
+                    margin: 0 10px 10px 0;
+                }
+                #test-results {
+                    margin-top: 20px;
+                    font-family: monospace;
+                }
+            `;
+            
+            document.head.appendChild(style);
+            document.querySelector('main').appendChild(testSection);
+        }
+
+        function runAllTests() {
+            const contrastResults = runContrastTests();
+            const validationResults = runValidationTests();
+            
+            const resultsDiv = document.getElementById('test-results');
+            resultsDiv.innerHTML = `
+                <h3>Test Results</h3>
+                <p>Contrast Tests: ${contrastResults.passed}/${contrastResults.total} passed</p>
+                <p>Validation Tests: ${validationResults.passed}/${validationResults.total} passed</p>
+            `;
+        }
+    </script>
+</body>
+</html>
diff --git a/html/flexagon/TODO.txt b/html/flexagon/TODO.txt
new file mode 100644
index 0000000..b9c9160
--- /dev/null
+++ b/html/flexagon/TODO.txt
@@ -0,0 +1,89 @@
+HEXAHEXAFLEXAGON IMPLEMENTATION STATUS & TODO
+=========================================
+
+CURRENT IMPLEMENTATION:
+---------------------
+- Core mathematical model for a hexahexaflexagon with 19 equilateral triangles
+- 3D transformation utilities (rotation matrices, point transformation)
+- Animation system with easing functions
+- Basic rendering system with debug visualization
+- Mouse interaction handling
+
+WHAT WE'VE TRIED:
+---------------
+1. Initial Rendering Debug Steps:
+   - Added light gray background for visibility
+   - Drew coordinate axes (red for X, green for Y)
+   - Made faces semi-transparent (alpha 0.7)
+   - Added face numbers for identification
+   - Disabled face culling temporarily
+   - Added initial rotation transforms (PI/6 for both X and Y)
+   - Increased scale to 100 for better visibility
+
+2. State Management:
+   - Implemented state tracking for faces, transforms, and animation
+   - Added debug logging for state changes
+   - Simplified initial state creation
+
+CURRENT ISSUES:
+-------------
+1. Visibility:
+   - Faces are being created but not visible (visible faces count = 0)
+   - Transform matrix calculations may not be working as expected
+   - Initial positioning might be incorrect
+
+2. Triangle Strip:
+   - Need to verify the initial strip creation geometry
+   - Connection between triangles needs review
+   - Pat pattern implementation might need adjustment
+
+NEXT STEPS TO TRY:
+----------------
+1. Geometry Verification:
+   - Add debug logging for triangle vertices during creation
+   - Verify triangle dimensions and connections
+   - Add visual markers for triangle orientation
+
+2. Transform Pipeline:
+   - Add step-by-step logging of matrix transformations
+   - Verify matrix multiplication implementation
+   - Test transform chain with simpler shapes first
+
+3. Rendering Improvements:
+   - Implement proper z-ordering for faces
+   - Add depth testing
+   - Improve perspective projection
+   - Add face normal calculations for proper visibility
+
+4. Development Tools:
+   - Add state visualization panel
+   - Add transform controls for manual positioning
+   - Add vertex position display
+   - Create test cases for geometry calculations
+
+5. Simplification Steps:
+   - Start with fewer triangles (e.g., 6) to verify basic folding
+   - Implement single fold before full flexagon
+   - Add step-by-step folding visualization
+
+IMMEDIATE NEXT ACTIONS:
+--------------------
+1. Add vertex position logging in createTriangle()
+2. Verify initial strip layout is correct
+3. Test transform pipeline with single triangle
+4. Add visual debug helpers for face orientation
+5. Implement proper z-depth sorting
+
+QUESTIONS TO RESOLVE:
+------------------
+1. Is the initial triangle strip properly oriented?
+2. Are the transformation matrices being applied in the correct order?
+3. Is the perspective projection working correctly?
+4. Are the face normals being calculated properly?
+5. Is the pat pattern being correctly applied to the strip?
+
+REFERENCES:
+----------
+- Original flexagon research pat notation
+- 3D graphics pipeline best practices
+- Matrix transformation order conventions 
\ No newline at end of file
diff --git a/html/flexagon/flexagon.js b/html/flexagon/flexagon.js
new file mode 100644
index 0000000..56069ad
--- /dev/null
+++ b/html/flexagon/flexagon.js
@@ -0,0 +1,502 @@
+// Flexagon Simulation
+// This implementation uses a functional programming approach with immutable data structures
+// and clear separation between the mathematical model, rendering, and interaction systems.
+
+// ===== Core Mathematical Model =====
+// The flexagon is modeled as a series of connected triangles in 3D space that can be folded
+// A hexahexaflexagon is made from a strip of 19 equilateral triangles
+
+/**
+ * Represents a point in 3D space
+ * @typedef {Object} Point3D
+ * @property {number} x - X coordinate
+ * @property {number} y - Y coordinate
+ * @property {number} z - Z coordinate
+ */
+
+/**
+ * Represents a 3x3 transformation matrix
+ * @typedef {Object} Matrix3D
+ * @property {number[]} values - 3x3 matrix values in row-major order
+ */
+
+/**
+ * Represents a triangle face of the flexagon
+ * @typedef {Object} Face
+ * @property {Point3D[]} vertices - Three vertices of the triangle
+ * @property {string} color - Color of the face
+ * @property {number} layer - Layer depth of the face
+ * @property {number[]} connectedFaces - Indices of connected faces
+ * @property {number[]} sharedEdges - Indices of shared edges with connected faces
+ */
+
+/**
+ * Represents the state of the flexagon
+ * @typedef {Object} FlexagonState
+ * @property {Face[]} faces - All faces of the flexagon
+ * @property {number} currentFaceIndex - Index of the currently visible face
+ * @property {Matrix3D} transform - Current 3D transformation
+ * @property {boolean} isAnimating - Whether an animation is in progress
+ * @property {number} animationProgress - Progress of current animation (0-1)
+ */
+
+// Constants for the hexaflexagon
+const FLEXAGON_CONFIG = {
+    triangleCount: 19, // Number of triangles in the strip
+    colors: ['#FF6B6B', '#4ECDC4', '#45B7D1', '#96CEB4', '#FFEEAD', '#D4A5A5'],
+    animationDuration: 500, // ms
+    foldAngle: Math.PI / 3, // 60 degrees
+    sideLength: 100, // Length of triangle sides
+    // Pat notation for the hexahexaflexagon
+    // This represents the folding pattern as described in the Flexagon paper
+    patPattern: [1, 2, 3, 1, 2, 3, 1, 2, 3, 4, 5, 6, 4, 5, 6, 4, 5, 6, 1]
+};
+
+// ===== 3D Transformation Utilities =====
+/**
+ * Creates an identity matrix
+ * @returns {Matrix3D} Identity matrix
+ */
+const createIdentityMatrix = () => ({
+    values: [
+        1, 0, 0,
+        0, 1, 0,
+        0, 0, 1
+    ]
+});
+
+/**
+ * Creates a rotation matrix around the X axis
+ * @param {number} angle - Rotation angle in radians
+ * @returns {Matrix3D} Rotation matrix
+ */
+const createRotationX = (angle) => ({
+    values: [
+        1, 0, 0,
+        0, Math.cos(angle), -Math.sin(angle),
+        0, Math.sin(angle), Math.cos(angle)
+    ]
+});
+
+/**
+ * Creates a rotation matrix around the Y axis
+ * @param {number} angle - Rotation angle in radians
+ * @returns {Matrix3D} Rotation matrix
+ */
+const createRotationY = (angle) => ({
+    values: [
+        Math.cos(angle), 0, Math.sin(angle),
+        0, 1, 0,
+        -Math.sin(angle), 0, Math.cos(angle)
+    ]
+});
+
+/**
+ * Multiplies two matrices
+ * @param {Matrix3D} a - First matrix
+ * @param {Matrix3D} b - Second matrix
+ * @returns {Matrix3D} Resulting matrix
+ */
+const multiplyMatrices = (a, b) => {
+    const result = createIdentityMatrix();
+    for (let row = 0; row < 3; row++) {
+        for (let col = 0; col < 3; col++) {
+            let sum = 0;
+            for (let i = 0; i < 3; i++) {
+                sum += a.values[row * 3 + i] * b.values[i * 3 + col];
+            }
+            result.values[row * 3 + col] = sum;
+        }
+    }
+    return result;
+};
+
+/**
+ * Applies a transformation matrix to a point
+ * @param {Point3D} point - Point to transform
+ * @param {Matrix3D} matrix - Transformation matrix
+ * @returns {Point3D} Transformed point
+ */
+const transformPoint = (point, matrix) => ({
+    x: point.x * matrix.values[0] + point.y * matrix.values[1] + point.z * matrix.values[2],
+    y: point.x * matrix.values[3] + point.y * matrix.values[4] + point.z * matrix.values[5],
+    z: point.x * matrix.values[6] + point.y * matrix.values[7] + point.z * matrix.values[8]
+});
+
+// ===== Animation System =====
+/**
+ * Easing function for smooth animations
+ * @param {number} t - Time progress (0-1)
+ * @returns {number} Eased progress
+ */
+const easeInOutCubic = (t) => {
+    return t < 0.5 ? 4 * t * t * t : 1 - Math.pow(-2 * t + 2, 3) / 2;
+};
+
+/**
+ * Creates an equilateral triangle in 3D space
+ * @param {number} centerX - Center X coordinate
+ * @param {number} centerY - Center Y coordinate
+ * @param {number} centerZ - Center Z coordinate
+ * @param {number} angle - Rotation angle
+ * @param {number} size - Size of the triangle
+ * @returns {Point3D[]} Array of three vertices
+ */
+const createTriangle = (centerX, centerY, centerZ, angle, size) => {
+    const height = size * Math.sqrt(3) / 2;
+    return [
+        { x: centerX, y: centerY, z: centerZ },
+        { 
+            x: centerX + size * Math.cos(angle),
+            y: centerY + size * Math.sin(angle),
+            z: centerZ
+        },
+        {
+            x: centerX + size * Math.cos(angle + Math.PI / 3),
+            y: centerY + size * Math.sin(angle + Math.PI / 3),
+            z: centerZ
+        }
+    ];
+};
+
+/**
+ * Creates the initial strip of triangles for the hexaflexagon
+ * @returns {Face[]} Array of connected triangles
+ */
+const createInitialStrip = () => {
+    const faces = [];
+    const size = FLEXAGON_CONFIG.sideLength;
+    
+    // Create the strip of triangles following the pat pattern
+    for (let i = 0; i < FLEXAGON_CONFIG.triangleCount; i++) {
+        const centerX = (i * size * 1.5);
+        const centerY = 0;
+        const centerZ = 0;
+        const angle = (i % 2) * Math.PI; // Alternate triangle orientations
+        
+        faces.push({
+            vertices: createTriangle(centerX, centerY, centerZ, angle, size),
+            color: FLEXAGON_CONFIG.colors[FLEXAGON_CONFIG.patPattern[i] - 1],
+            layer: Math.floor(i / 6), // Group triangles into layers
+            connectedFaces: [
+                (i + 1) % FLEXAGON_CONFIG.triangleCount,
+                (i - 1 + FLEXAGON_CONFIG.triangleCount) % FLEXAGON_CONFIG.triangleCount
+            ],
+            sharedEdges: [1, 2] // Indices of shared edges with next and previous triangles
+        });
+    }
+    
+    return faces;
+};
+
+/**
+ * Determines if a face is visible
+ * @param {Face} face - Face to check
+ * @param {Matrix3D} transform - Current transformation
+ * @returns {boolean} Whether the face is visible
+ */
+const isFaceVisible = (face) => {
+    // During development, show all faces
+    return true;
+};
+
+/**
+ * Creates the initial state
+ * @returns {FlexagonState} Initial state of the flexagon
+ */
+const createInitialState = () => {
+    const faces = createInitialStrip();
+    
+    // Apply initial transformations to make faces visible
+    const initialTransform = multiplyMatrices(
+        createRotationX(Math.PI / 6), // Tilt forward
+        createRotationY(Math.PI / 6)  // Rotate slightly right
+    );
+    
+    return {
+        faces: faces,
+        currentFaceIndex: 0,
+        transform: initialTransform,
+        isAnimating: false,
+        animationProgress: 0
+    };
+};
+
+/**
+ * Folds the strip of triangles into a hexagonal shape
+ * @param {Face[]} faces - Array of faces in the strip
+ * @returns {Face[]} Folded faces
+ */
+const foldStrip = (faces) => {
+    // Implementation of the folding algorithm
+    // This follows the Tuckerman traverse pattern
+    const foldedFaces = [...faces];
+    const foldAngles = [
+        Math.PI / 3, -Math.PI / 3,  // First fold
+        Math.PI / 3, -Math.PI / 3,  // Second fold
+        Math.PI / 3, -Math.PI / 3   // Third fold
+    ];
+    
+    // Apply the folds
+    for (let i = 0; i < foldAngles.length; i++) {
+        const foldIndex = i * 3;
+        const foldAngle = foldAngles[i];
+        
+        // Transform all vertices after the fold point
+        for (let j = foldIndex + 1; j < foldedFaces.length; j++) {
+            foldedFaces[j].vertices = foldedFaces[j].vertices.map(vertex => 
+                transformPoint(vertex, createRotationY(foldAngle))
+            );
+        }
+    }
+    
+    return foldedFaces;
+};
+
+/**
+ * Performs a flex operation on the flexagon
+ * @param {FlexagonState} state - Current state
+ * @returns {FlexagonState} New state after flexing
+ */
+const flex = (state) => {
+    if (state.isAnimating) return state;
+
+    const currentFace = state.faces[state.currentFaceIndex];
+    const nextFaceIndex = currentFace.connectedFaces[0];
+    
+    // Create rotation matrices for the animation
+    const startRotation = createIdentityMatrix();
+    const endRotation = multiplyMatrices(
+        createRotationX(FLEXAGON_CONFIG.foldAngle),
+        createRotationY(Math.PI / 3)
+    );
+
+    // Apply an initial rotation to better show the 3D structure
+    const initialRotation = createRotationX(Math.PI / 6);
+    const combinedRotation = multiplyMatrices(endRotation, initialRotation);
+
+    return {
+        ...state,
+        currentFaceIndex: nextFaceIndex,
+        isAnimating: true,
+        animationProgress: 0,
+        transform: startRotation
+    };
+};
+
+/**
+ * Updates the animation state
+ * @param {FlexagonState} state - Current state
+ * @param {number} deltaTime - Time since last update in ms
+ * @returns {FlexagonState} Updated state
+ */
+const updateAnimation = (state, deltaTime) => {
+    if (!state.isAnimating) return state;
+
+    const newProgress = Math.min(1, state.animationProgress + deltaTime / FLEXAGON_CONFIG.animationDuration);
+    const easedProgress = easeInOutCubic(newProgress);
+
+    // Interpolate between start and end transformations
+    const startRotation = createIdentityMatrix();
+    const endRotation = multiplyMatrices(
+        createRotationX(FLEXAGON_CONFIG.foldAngle),
+        createRotationY(Math.PI / 3)
+    );
+
+    const interpolatedMatrix = {
+        values: startRotation.values.map((value, i) => 
+            value + (endRotation.values[i] - value) * easedProgress
+        )
+    };
+
+    return {
+        ...state,
+        animationProgress: newProgress,
+        transform: interpolatedMatrix,
+        isAnimating: newProgress < 1
+    };
+};
+
+// ===== Rendering System =====
+/**
+ * Projects a 3D point onto 2D canvas coordinates with perspective
+ * @param {Point3D} point - 3D point to project
+ * @param {number} canvasWidth - Width of the canvas
+ * @param {number} canvasHeight - Height of the canvas
+ * @returns {Object} 2D coordinates {x, y}
+ */
+const projectPoint = (point, canvasWidth, canvasHeight) => {
+    // Perspective projection with a fixed focal length
+    const focalLength = 500;
+    const scale = focalLength / (focalLength + point.z);
+    
+    return {
+        x: point.x * scale + canvasWidth / 2,
+        y: point.y * scale + canvasHeight / 2
+    };
+};
+
+/**
+ * Calculates the normal vector of a face
+ * @param {Face} face - Face to calculate normal for
+ * @returns {Point3D} Normal vector
+ */
+const calculateFaceNormal = (face) => {
+    const v1 = face.vertices[1];
+    const v2 = face.vertices[2];
+    
+    return {
+        x: (v1.y - v2.y) * (v1.z - v2.z),
+        y: (v1.z - v2.z) * (v1.x - v2.x),
+        z: (v1.x - v2.x) * (v1.y - v2.y)
+    };
+};
+
+/**
+ * Renders the flexagon on the canvas
+ * @param {CanvasRenderingContext2D} ctx - Canvas context
+ * @param {FlexagonState} state - Current state
+ */
+const renderFlexagon = (ctx, state) => {
+    const canvas = ctx.canvas;
+    
+    // Clear canvas with a light gray background for debugging
+    ctx.fillStyle = '#f0f0f0';
+    ctx.fillRect(0, 0, canvas.width, canvas.height);
+    
+    // Debug: Draw coordinate axes
+    ctx.beginPath();
+    ctx.strokeStyle = 'red';
+    ctx.moveTo(canvas.width/2, canvas.height/2);
+    ctx.lineTo(canvas.width/2 + 50, canvas.height/2);
+    ctx.stroke();
+    ctx.beginPath();
+    ctx.strokeStyle = 'green';
+    ctx.moveTo(canvas.width/2, canvas.height/2);
+    ctx.lineTo(canvas.width/2, canvas.height/2 - 50);
+    ctx.stroke();
+
+    // Center the flexagon
+    const centerX = canvas.width / 2;
+    const centerY = canvas.height / 2;
+    const scale = 100; // Increase scale to make faces more visible
+    
+    // Draw all faces for debugging
+    state.faces.forEach((face, index) => {
+        // Transform vertices
+        const projectedPoints = face.vertices.map(vertex => {
+            const transformed = transformPoint(vertex, state.transform);
+            return {
+                x: centerX + transformed.x * scale,
+                y: centerY + transformed.y * scale
+            };
+        });
+        
+        // Draw face
+        ctx.beginPath();
+        ctx.moveTo(projectedPoints[0].x, projectedPoints[0].y);
+        projectedPoints.slice(1).forEach(point => {
+            ctx.lineTo(point.x, point.y);
+        });
+        ctx.closePath();
+        
+        // Fill with semi-transparent color
+        ctx.fillStyle = face.color;
+        ctx.globalAlpha = 0.7;
+        ctx.fill();
+        
+        // Draw edges
+        ctx.strokeStyle = '#000';
+        ctx.globalAlpha = 1.0;
+        ctx.stroke();
+        
+        // Draw face number
+        ctx.fillStyle = '#000';
+        ctx.font = '14px Arial';
+        const centerPoint = {
+            x: projectedPoints.reduce((sum, p) => sum + p.x, 0) / 3,
+            y: projectedPoints.reduce((sum, p) => sum + p.y, 0) / 3
+        };
+        ctx.fillText(index.toString(), centerPoint.x, centerPoint.y);
+    });
+    
+    // Reset alpha
+    ctx.globalAlpha = 1.0;
+};
+
+// ===== Interaction System =====
+/**
+ * Sets up mouse interaction for the flexagon
+ * @param {HTMLCanvasElement} canvas - Canvas element
+ * @param {Function} onFlex - Callback when flexing occurs
+ */
+const setupInteraction = (canvas, onFlex) => {
+    let isDragging = false;
+    let startX = 0;
+    
+    canvas.addEventListener('mousedown', (e) => {
+        isDragging = true;
+        startX = e.clientX;
+    });
+    
+    canvas.addEventListener('mousemove', (e) => {
+        if (!isDragging) return;
+        
+        const deltaX = e.clientX - startX;
+        if (Math.abs(deltaX) > 50) { // Threshold for flexing
+            onFlex();
+            isDragging = false;
+        }
+    });
+    
+    canvas.addEventListener('mouseup', () => {
+        isDragging = false;
+    });
+    
+    canvas.addEventListener('mouseleave', () => {
+        isDragging = false;
+    });
+};
+
+// ===== Main Application =====
+const main = () => {
+    const canvas = document.getElementById('flexagonCanvas');
+    const ctx = canvas.getContext('2d');
+    
+    // Set canvas size
+    canvas.width = 600;
+    canvas.height = 600;
+    
+    console.log('Canvas initialized:', canvas.width, 'x', canvas.height);
+    
+    // Initialize state
+    let state = createInitialState();
+    console.log('Initial state created:', {
+        faceCount: state.faces.length,
+        vertices: state.faces[0]?.vertices
+    });
+    
+    let lastTime = performance.now();
+    
+    // Animation loop
+    const animate = (currentTime) => {
+        const deltaTime = currentTime - lastTime;
+        lastTime = currentTime;
+        
+        state = updateAnimation(state, deltaTime);
+        renderFlexagon(ctx, state);
+        
+        requestAnimationFrame(animate);
+    };
+    
+    // Setup interaction
+    setupInteraction(canvas, () => {
+        state = flex(state);
+    });
+    
+    // Start animation loop
+    requestAnimationFrame(animate);
+};
+
+// Start the application when the DOM is loaded
+document.addEventListener('DOMContentLoaded', main);
diff --git a/html/flexagon/index.html b/html/flexagon/index.html
new file mode 100644
index 0000000..5d42dec
--- /dev/null
+++ b/html/flexagon/index.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>Flexagon Simulation</title>
+    <style>
+        body {
+            margin: 0;
+            display: flex;
+            justify-content: center;
+            align-items: center;
+            min-height: 100vh;
+            background: #f0f0f0;
+        }
+        canvas {
+            border: 1px solid #ccc;
+            background: white;
+        }
+    </style>
+</head>
+<body>
+    <canvas id="flexagonCanvas"></canvas>
+    <script src="flexagon.js"></script>
+</body>
+</html>
diff --git a/html/fps/game.js b/html/fps/game.js
new file mode 100644
index 0000000..e157ab1
--- /dev/null
+++ b/html/fps/game.js
@@ -0,0 +1,992 @@
+// Game state management
+const GameState = {
+    player: {
+        x: 0,
+        y: 0,
+        angle: 0,
+        health: 100,
+        ammo: 10,
+        score: 0
+    },
+    level: {
+        width: 32,
+        height: 32,
+        map: [],
+        flag: { x: 0, y: 0 }
+    },
+    enemies: [],
+    items: [],
+    isGameOver: false,
+    gun: {
+        recoil: 0,
+        lastShot: 0,
+        muzzleFlash: 0,
+        slidePosition: 0,  // 0 = forward, 1 = back
+        tilt: 0  // 0 = normal, 1 = tilted
+    },
+    shots: [],
+    isStarted: false,
+    gradients: {}, // Cache for wall gradients
+    lastGradientUpdate: 0,
+    particles: [],
+    damageFlash: 0
+};
+
+// Level generation using a simple maze algorithm
+const generateLevel = () => {
+    const map = Array(GameState.level.height).fill().map(() => 
+        Array(GameState.level.width).fill(1)
+    );
+    
+    // Create starting room
+    const startRoomSize = 5;
+    for (let y = 1; y < startRoomSize; y++) {
+        for (let x = 1; x < startRoomSize; x++) {
+            map[y][x] = 0;
+        }
+    }
+    
+    // Add fewer random larger rooms
+    const numLargeRooms = 2; // Reduced from 3
+    for (let i = 0; i < numLargeRooms; i++) {
+        const roomWidth = Math.floor(Math.random() * 3) + 4; // 4-6 (reduced from 4-7)
+        const roomHeight = Math.floor(Math.random() * 3) + 4; // 4-6 (reduced from 4-7)
+        const roomX = Math.floor(Math.random() * (GameState.level.width - roomWidth - 2)) + 1;
+        const roomY = Math.floor(Math.random() * (GameState.level.height - roomHeight - 2)) + 1;
+        
+        // Create room
+        for (let y = roomY; y < roomY + roomHeight; y++) {
+            for (let x = roomX; x < roomX + roomWidth; x++) {
+                map[y][x] = 0;
+            }
+        }
+        
+        // Connect to maze
+        const connectX = roomX + Math.floor(roomWidth/2);
+        const connectY = roomY + Math.floor(roomHeight/2);
+        map[connectY][connectX] = 0;
+    }
+    
+    // Simple maze generation using depth-first search with single-cell hallways
+    const carveMaze = (x, y) => {
+        // Ensure we're within bounds
+        if (x <= 0 || x >= GameState.level.width - 1 || y <= 0 || y >= GameState.level.height - 1) {
+            return;
+        }
+        
+        map[y][x] = 0;
+        
+        const directions = [
+            [0, -2], [2, 0], [0, 2], [-2, 0]
+        ].sort(() => Math.random() - 0.5);
+        
+        for (const [dx, dy] of directions) {
+            const nx = x + dx;
+            const ny = y + dy;
+            if (nx > 0 && nx < GameState.level.width - 1 &&
+                ny > 0 && ny < GameState.level.height - 1 &&
+                map[ny][nx] === 1) {
+                // Carve single-cell paths
+                const midX = x + Math.floor(dx/2);
+                const midY = y + Math.floor(dy/2);
+                if (midX >= 0 && midX < GameState.level.width &&
+                    midY >= 0 && midY < GameState.level.height) {
+                    map[midY][midX] = 0;
+                }
+                carveMaze(nx, ny);
+            }
+        }
+    };
+    
+    // Start maze generation from the edge of the starting room
+    carveMaze(startRoomSize, startRoomSize);
+    
+    // Place flag in a random open space (not in starting room)
+    const openSpaces = [];
+    for (let y = 0; y < GameState.level.height; y++) {
+        for (let x = 0; x < GameState.level.width; x++) {
+            if (map[y][x] === 0 && (x >= startRoomSize || y >= startRoomSize)) {
+                openSpaces.push({x, y});
+            }
+        }
+    }
+    const flagPos = openSpaces[Math.floor(Math.random() * openSpaces.length)];
+    GameState.level.flag = flagPos;
+    
+    // Place enemies in open spaces (not in starting room)
+    GameState.enemies = [];
+    for (let i = 0; i < 5; i++) {
+        const pos = openSpaces[Math.floor(Math.random() * openSpaces.length)];
+        GameState.enemies.push({
+            x: pos.x,
+            y: pos.y,
+            health: Math.floor(Math.random() * 4) + 2
+        });
+    }
+    
+    // Place items in open spaces (not in starting room)
+    GameState.items = [];
+    // Add health packs
+    for (let i = 0; i < 8; i++) {
+        const pos = openSpaces[Math.floor(Math.random() * openSpaces.length)];
+        GameState.items.push({
+            x: pos.x,
+            y: pos.y,
+            type: 'health',
+            value: Math.floor(Math.random() * 5) + 1
+        });
+    }
+    // Add ammo packs
+    for (let i = 0; i < 6; i++) {
+        const pos = openSpaces[Math.floor(Math.random() * openSpaces.length)];
+        GameState.items.push({
+            x: pos.x,
+            y: pos.y,
+            type: 'ammo',
+            value: 5
+        });
+    }
+    
+    GameState.level.map = map;
+    GameState.player.x = startRoomSize/2;
+    GameState.player.y = startRoomSize/2;
+    GameState.player.angle = 0;
+};
+
+// Player movement and controls
+const handlePlayerMovement = (keys) => {
+    const moveSpeed = 0.05;
+    const rotateSpeed = 0.05;
+    
+    if (keys.w) {
+        // Move forward in the direction the player is facing
+        GameState.player.x += Math.sin(GameState.player.angle) * moveSpeed;
+        GameState.player.y -= Math.cos(GameState.player.angle) * moveSpeed;
+    }
+    if (keys.s) {
+        // Move backward
+        GameState.player.x -= Math.sin(GameState.player.angle) * moveSpeed;
+        GameState.player.y += Math.cos(GameState.player.angle) * moveSpeed;
+    }
+    if (keys.a) {
+        // Strafe left
+        GameState.player.x -= Math.cos(GameState.player.angle) * moveSpeed;
+        GameState.player.y -= Math.sin(GameState.player.angle) * moveSpeed;
+    }
+    if (keys.d) {
+        // Strafe right
+        GameState.player.x += Math.cos(GameState.player.angle) * moveSpeed;
+        GameState.player.y += Math.sin(GameState.player.angle) * moveSpeed;
+    }
+    
+    // Add arrow key rotation
+    if (keys.ArrowLeft) {
+        GameState.player.angle -= rotateSpeed;
+    }
+    if (keys.ArrowRight) {
+        GameState.player.angle += rotateSpeed;
+    }
+};
+
+// Enemy AI
+const updateEnemies = () => {
+    GameState.enemies = GameState.enemies.map(enemy => {
+        if (enemy.health <= 0) return null;
+        
+        const dx = GameState.player.x - enemy.x;
+        const dy = GameState.player.y - enemy.y;
+        const dist = Math.sqrt(dx * dx + dy * dy);
+        
+        if (dist < 0.5) {
+            GameState.player.health -= 10;
+            GameState.damageFlash = 1.0; // Trigger full flash
+            if (GameState.player.health <= 0) {
+                GameState.isGameOver = true;
+            }
+        } else if (dist < 5) {
+            // Check if path to player is clear
+            const steps = 10;
+            let canMove = true;
+            for (let i = 1; i <= steps; i++) {
+                const testX = enemy.x + (dx / dist) * (i / steps);
+                const testY = enemy.y + (dy / dist) * (i / steps);
+                if (GameState.level.map[Math.floor(testY)][Math.floor(testX)] === 1) {
+                    canMove = false;
+                    break;
+                }
+            }
+            
+            if (canMove) {
+                enemy.x += dx / dist * 0.05;
+                enemy.y += dy / dist * 0.05;
+            }
+        }
+        
+        return enemy;
+    }).filter(Boolean);
+};
+
+// Collision detection
+const checkCollisions = () => {
+    // Wall collisions with improved precision and bounds checking
+    const playerX = GameState.player.x;
+    const playerY = GameState.player.y;
+    
+    // Check if player is within map bounds
+    if (playerX < 0 || playerX >= GameState.level.width ||
+        playerY < 0 || playerY >= GameState.level.height) {
+        // Push player back to last valid position
+        GameState.player.x = Math.max(0, Math.min(GameState.player.x, GameState.level.width - 1));
+        GameState.player.y = Math.max(0, Math.min(GameState.player.y, GameState.level.height - 1));
+        return;
+    }
+    
+    const nextX = playerX + Math.sin(GameState.player.angle) * 0.1;
+    const nextY = playerY + Math.cos(GameState.player.angle) * 0.1;
+    
+    // Check all four corners of the player's collision box
+    const checkPoint = (x, y) => {
+        const gridX = Math.floor(x);
+        const gridY = Math.floor(y);
+        // Ensure we're within bounds
+        if (gridX < 0 || gridX >= GameState.level.width ||
+            gridY < 0 || gridY >= GameState.level.height) {
+            return true; // Treat out of bounds as a wall
+        }
+        return GameState.level.map[gridY][gridX] === 1;
+    };
+    
+    const collisionBox = 0.2; // Player collision box size
+    
+    if (checkPoint(playerX + collisionBox, playerY + collisionBox) ||
+        checkPoint(playerX + collisionBox, playerY - collisionBox) ||
+        checkPoint(playerX - collisionBox, playerY + collisionBox) ||
+        checkPoint(playerX - collisionBox, playerY - collisionBox)) {
+        // Push player back to last valid position
+        GameState.player.x = Math.floor(GameState.player.x) + 0.5;
+        GameState.player.y = Math.floor(GameState.player.y) + 0.5;
+    }
+    
+    // Item collection
+    GameState.items = GameState.items.filter(item => {
+        const dx = GameState.player.x - item.x;
+        const dy = GameState.player.y - item.y;
+        if (Math.sqrt(dx * dx + dy * dy) < 0.5) {
+            if (item.type === 'ammo') {
+                GameState.player.ammo += item.value;
+            } else {
+                GameState.player.health = Math.min(100, GameState.player.health + item.value);
+            }
+            return false;
+        }
+        return true;
+    });
+    
+    // Flag collection
+    const dx = GameState.player.x - GameState.level.flag.x;
+    const dy = GameState.player.y - GameState.level.flag.y;
+    if (Math.sqrt(dx * dx + dy * dy) < 0.5) {
+        GameState.player.score++;
+        generateLevel();
+    }
+};
+
+// Rendering system
+const render = (ctx) => {
+    const canvas = ctx.canvas;
+    const width = canvas.width;
+    const height = canvas.height;
+    
+    // Clear screen
+    ctx.fillStyle = '#000';
+    ctx.fillRect(0, 0, width, height);
+    
+    if (!GameState.isStarted) {
+        // Draw start screen
+        ctx.fillStyle = 'rgba(0, 0, 0, 0.8)';
+        ctx.fillRect(0, 0, width, height);
+        
+        // Draw title
+        ctx.fillStyle = '#fff';
+        ctx.font = '48px monospace';
+        ctx.textAlign = 'center';
+        ctx.fillText('Hedge Maze', width/2, height/2 - 50);
+        
+        // Draw start button
+        const buttonWidth = 200;
+        const buttonHeight = 60;
+        const buttonX = width/2 - buttonWidth/2;
+        const buttonY = height/2;
+        
+        ctx.fillStyle = '#333';
+        ctx.fillRect(buttonX, buttonY, buttonWidth, buttonHeight);
+        
+        ctx.fillStyle = '#fff';
+        ctx.font = '24px monospace';
+        ctx.fillText('START GAME', width/2, buttonY + buttonHeight/2 + 8);
+        
+        return;
+    }
+    
+    // Draw ceiling
+    ctx.fillStyle = '#1a1a4a';
+    ctx.fillRect(0, 0, width, height/2);
+    
+    // Draw floor
+    ctx.fillStyle = '#4a2a00';
+    ctx.fillRect(0, height/2, width, height/2);
+    
+    // Draw walls and sprites using ray casting
+    const fov = Math.PI / 3;
+    const numRays = Math.floor(width / 2); // Reduce ray count by half
+    const rayResults = [];
+    
+    // Pre-calculate common values
+    const halfHeight = height / 2;
+    const brightnessSteps = 20; // Number of brightness levels to cache
+    const gradientCache = {};
+    
+    // Create cached gradients for different brightness levels
+    for (let b = 0; b <= brightnessSteps; b++) {
+        const brightness = b / brightnessSteps;
+        const baseColor = Math.floor(brightness * 100);
+        const distanceColor = Math.floor(brightness * 50);
+        
+        gradientCache[b] = {
+            top: `rgb(${distanceColor}, ${baseColor + 20}, ${distanceColor})`,
+            middle: `rgb(${distanceColor}, ${baseColor}, ${distanceColor})`,
+            bottom: `rgb(${distanceColor}, ${baseColor - 20}, ${distanceColor})`,
+            line: `rgba(0, ${baseColor - 30}, 0, 0.3)`
+        };
+    }
+    
+    for (let i = 0; i < width; i += 2) {
+        const rayIndex = Math.floor(i / 2);
+        const rayAngle = GameState.player.angle - fov/2 + fov * rayIndex / numRays;
+        let distance = 0;
+        let hit = false;
+        
+        while (!hit && distance < 20) {
+            distance += 0.2;
+            const testX = GameState.player.x + Math.sin(rayAngle) * distance;
+            const testY = GameState.player.y + Math.cos(rayAngle) * distance;
+            
+            // Check for wall hits
+            if (GameState.level.map[Math.floor(testY)][Math.floor(testX)] === 1) {
+                hit = true;
+            }
+        }
+        
+        rayResults[rayIndex] = {
+            distance,
+            angle: rayAngle
+        };
+        
+        const wallHeight = height / (distance * Math.cos(rayAngle - GameState.player.angle));
+        const brightness = Math.max(0, 1 - distance / 20);
+        const brightnessIndex = Math.floor(brightness * brightnessSteps);
+        const colors = gradientCache[brightnessIndex];
+        
+        const wallTop = halfHeight - wallHeight/2;
+        const wallBottom = halfHeight + wallHeight/2;
+        
+        // Draw wall with cached colors
+        ctx.fillStyle = colors.middle;
+        ctx.fillRect(i, wallTop, 2, wallHeight);
+        
+        // Draw top and bottom highlights
+        ctx.fillStyle = colors.top;
+        ctx.fillRect(i, wallTop, 2, 1);
+        ctx.fillStyle = colors.bottom;
+        ctx.fillRect(i, wallBottom - 1, 2, 1);
+        
+        // Draw vertical lines less frequently
+        if (i % 8 === 0) {
+            ctx.fillStyle = colors.line;
+            ctx.fillRect(i, wallTop, 2, wallHeight);
+        }
+    }
+    
+    // Draw shots
+    const now = Date.now();
+    GameState.shots = GameState.shots.filter(shot => {
+        const age = now - shot.time;
+        if (age > 200) return false; // Remove shots older than 200ms
+        
+        const progress = age / 200;
+        const distance = progress * 20;
+        const x = GameState.player.x + Math.sin(shot.angle) * distance;
+        const y = GameState.player.y + Math.cos(shot.angle) * distance;
+        
+        // Convert world position to screen position
+        const dx = x - GameState.player.x;
+        const dy = y - GameState.player.y;
+        const angle = Math.atan2(dx, dy) - GameState.player.angle;
+        const screenX = (angle / fov + 0.5) * width;
+        
+        if (screenX >= 0 && screenX < width) {
+            ctx.fillStyle = '#ffff00';
+            ctx.fillRect(screenX, halfHeight, 2, 2);
+        }
+        
+        return true;
+    });
+    
+    // Draw gun
+    const gunY = height - 150;
+    const gunX = width/2;
+    const recoilOffset = Math.sin(GameState.gun.recoil * Math.PI) * 50;
+    const tiltAngle = GameState.gun.tilt * Math.PI / 6;
+    
+    // Only draw gun if it's not in full recoil
+    if (GameState.gun.recoil < 0.8) {
+        ctx.save();
+        ctx.translate(gunX, gunY + recoilOffset);
+        ctx.rotate(tiltAngle);
+        
+        // Gun body (larger rectangle) extending below screen
+        ctx.fillStyle = '#333';
+        ctx.fillRect(-30, 0, 60, height);
+        
+        // Gun slide (smaller rectangle) with sliding animation
+        const slideOffset = GameState.gun.slidePosition * 20;
+        ctx.fillStyle = '#222';
+        // Adjusted slide dimensions: shorter above, longer below
+        ctx.fillRect(-8, -15 - slideOffset, 16, 90); // Changed from -30 to -15 for top, and 60 to 90 for height
+        
+        // Muzzle flash
+        if (GameState.gun.muzzleFlash > 0) {
+            const flashSize = GameState.gun.muzzleFlash * 30;
+            ctx.fillStyle = `rgba(255, 255, 0, ${GameState.gun.muzzleFlash})`;
+            ctx.beginPath();
+            ctx.arc(0, -15 - slideOffset, flashSize, 0, Math.PI * 2); // Adjusted to match new slide position
+            ctx.fill();
+        }
+        
+        ctx.restore();
+    }
+    
+    // Draw crosshair
+    ctx.fillStyle = '#fff';
+    ctx.fillRect(width/2 - 5, halfHeight, 10, 1);
+    ctx.fillRect(width/2, halfHeight - 5, 1, 10);
+    
+    // Draw HUD - only canvas-based
+    ctx.fillStyle = 'rgba(0, 0, 0, 0.7)';
+    ctx.fillRect(10, 10, 200, 120);
+    
+    ctx.fillStyle = '#fff';
+    ctx.font = '24px monospace';
+    ctx.fillText(`Health: ${GameState.player.health}`, 100, 45);
+    ctx.fillText(`Ammo: ${GameState.player.ammo}`, 80, 80);
+    ctx.fillText(`Score: ${GameState.player.score}`, 80, 115);
+    
+    // Draw compass
+    const compassSize = 100;
+    const compassX = width/2 - compassSize/2;
+    const compassY = 20;
+    
+    // Draw compass background
+    ctx.fillStyle = 'rgba(0, 0, 0, 0.7)';
+    ctx.fillRect(compassX, compassY, compassSize, compassSize); // Make it square
+    ctx.strokeStyle = 'rgba(255, 255, 255, 0.3)';
+    ctx.lineWidth = 2;
+    ctx.strokeRect(compassX, compassY, compassSize, compassSize);
+    
+    // Draw compass directions
+    ctx.fillStyle = '#fff';
+    ctx.font = '16px monospace';
+    ctx.textAlign = 'center';
+    ctx.textBaseline = 'middle';
+    
+    // Draw N, E, S, W in traditional compass layout
+    ctx.fillText('N', compassX + compassSize/2, compassY + 15);
+    ctx.fillText('E', compassX + compassSize - 15, compassY + compassSize/2);
+    ctx.fillText('S', compassX + compassSize/2, compassY + compassSize - 15);
+    ctx.fillText('W', compassX + 15, compassY + compassSize/2);
+    
+    // Draw direction indicator - ensure it's always visible within the compass
+    const angle = GameState.player.angle;
+    const radius = compassSize/2 - 15; // Keep indicator within compass bounds
+    const indicatorX = compassX + compassSize/2 + Math.sin(angle) * radius;
+    const indicatorY = compassY + compassSize/2 - Math.cos(angle) * radius;
+    
+    ctx.fillStyle = '#0f0';
+    ctx.beginPath();
+    ctx.arc(indicatorX, indicatorY, 4, 0, Math.PI * 2);
+    ctx.fill();
+    
+    // Draw sprites
+    const drawSprite = (x, y, distance, type) => {
+        // Calculate screen position
+        const dx = x - GameState.player.x;
+        const dy = y - GameState.player.y;
+        const angle = Math.atan2(dx, dy) - GameState.player.angle;
+        
+        // Convert to screen coordinates
+        const screenX = (angle / (Math.PI / 3) + 0.5) * width;
+        const screenY = height / 2;
+        
+        // Calculate size based on distance
+        const baseSize = 0.5;
+        const size = (baseSize / distance) * height;
+        
+        // Only draw if on screen and not behind a wall
+        if (screenX >= 0 && screenX < width) {
+            const wallDistance = rayResults[Math.floor(screenX / 2)].distance;
+            if (distance < wallDistance) {
+                // Set color based on type
+                if (type === 'enemy') {
+                    ctx.fillStyle = '#f00';
+                } else if (type === 'health') {
+                    ctx.fillStyle = '#0f0';
+                } else if (type === 'ammo') {
+                    ctx.fillStyle = '#0ff';
+                } else if (type === 'flag') {
+                    ctx.fillStyle = '#ff0';
+                }
+                
+                // Draw single square
+                ctx.fillRect(screenX - size/2, screenY - size/2, size, size);
+            }
+        }
+    };
+
+    // Draw all sprites
+    GameState.enemies.forEach(enemy => {
+        const dx = enemy.x - GameState.player.x;
+        const dy = enemy.y - GameState.player.y;
+        const distance = Math.sqrt(dx * dx + dy * dy);
+        drawSprite(enemy.x, enemy.y, distance, 'enemy');
+    });
+
+    GameState.items.forEach(item => {
+        const dx = item.x - GameState.player.x;
+        const dy = item.y - GameState.player.y;
+        const distance = Math.sqrt(dx * dx + dy * dy);
+        drawSprite(item.x, item.y, distance, item.type);
+    });
+
+    // Draw flag
+    const dx = GameState.level.flag.x - GameState.player.x;
+    const dy = GameState.level.flag.y - GameState.player.y;
+    const flagDistance = Math.sqrt(dx * dx + dy * dy);
+    drawSprite(GameState.level.flag.x, GameState.level.flag.y, flagDistance, 'flag');
+    
+    // Draw particles
+    GameState.particles.forEach(particle => {
+        const dx = particle.x - GameState.player.x;
+        const dy = particle.y - GameState.player.y;
+        const distance = Math.sqrt(dx * dx + dy * dy);
+        const angle = Math.atan2(dx, dy) - GameState.player.angle;
+        
+        // Convert world position to screen position
+        const screenX = (angle / (Math.PI / 3) + 0.5) * width;
+        const screenY = height / 2;
+        
+        // Ensure size is always positive and within reasonable bounds
+        const size = Math.max(1, Math.min(particle.size, (1 - distance / 20) * particle.size));
+        
+        if (screenX >= 0 && screenX < width && size > 0) {
+            ctx.save();
+            ctx.translate(screenX, screenY);
+            ctx.rotate(particle.rotation);
+            
+            ctx.fillStyle = particle.color;
+            ctx.globalAlpha = particle.life;
+            
+            // Draw a more interesting particle shape
+            ctx.beginPath();
+            ctx.moveTo(0, -size);
+            ctx.lineTo(size, size);
+            ctx.lineTo(-size, size);
+            ctx.closePath();
+            ctx.fill();
+            
+            ctx.restore();
+            ctx.globalAlpha = 1;
+        }
+    });
+    
+    // Draw mini-map
+    const miniMapSize = 200;
+    const miniMapX = width - miniMapSize - 10;
+    const miniMapY = 10;
+    const cellSize = miniMapSize / GameState.level.width;
+    
+    // Draw mini-map background with semi-transparent border
+    ctx.fillStyle = 'rgba(0, 0, 0, 0.7)';
+    ctx.fillRect(miniMapX, miniMapY, miniMapSize, miniMapSize);
+    ctx.strokeStyle = 'rgba(255, 255, 255, 0.3)';
+    ctx.lineWidth = 2;
+    ctx.strokeRect(miniMapX, miniMapY, miniMapSize, miniMapSize);
+    
+    // Draw walls
+    ctx.fillStyle = '#666';
+    for (let y = 0; y < GameState.level.height; y++) {
+        for (let x = 0; x < GameState.level.width; x++) {
+            if (GameState.level.map[y][x] === 1) {
+                ctx.fillRect(
+                    miniMapX + x * cellSize,
+                    miniMapY + y * cellSize,
+                    cellSize,
+                    cellSize
+                );
+            }
+        }
+    }
+    
+    // Draw flag
+    ctx.fillStyle = '#ff0';
+    ctx.beginPath();
+    ctx.arc(
+        miniMapX + GameState.level.flag.x * cellSize + cellSize/2,
+        miniMapY + GameState.level.flag.y * cellSize + cellSize/2,
+        cellSize/2,
+        0,
+        Math.PI * 2
+    );
+    ctx.fill();
+    
+    // Draw items
+    GameState.items.forEach(item => {
+        if (item.type === 'health') {
+            ctx.fillStyle = '#0f0';
+        } else {
+            ctx.fillStyle = '#0ff';
+        }
+        ctx.beginPath();
+        ctx.arc(
+            miniMapX + item.x * cellSize + cellSize/2,
+            miniMapY + item.y * cellSize + cellSize/2,
+            cellSize/3,
+            0,
+            Math.PI * 2
+        );
+        ctx.fill();
+    });
+    
+    // Draw enemies
+    ctx.fillStyle = '#f00';
+    GameState.enemies.forEach(enemy => {
+        ctx.beginPath();
+        ctx.arc(
+            miniMapX + enemy.x * cellSize + cellSize/2,
+            miniMapY + enemy.y * cellSize + cellSize/2,
+            cellSize/2,
+            0,
+            Math.PI * 2
+        );
+        ctx.fill();
+    });
+    
+    // Draw player with enhanced direction indicator
+    const playerX = miniMapX + GameState.player.x * cellSize;
+    const playerY = miniMapY + GameState.player.y * cellSize;
+    const size = cellSize * 1.5;
+    
+    // Draw player outline
+    ctx.strokeStyle = '#fff';
+    ctx.lineWidth = 2;
+    ctx.beginPath();
+    ctx.arc(playerX + cellSize/2, playerY + cellSize/2, size/2 + 2, 0, Math.PI * 2);
+    ctx.stroke();
+    
+    // Draw player triangle with direction indicator - use the angle directly
+    ctx.fillStyle = '#00f';
+    ctx.save();
+    ctx.translate(playerX + cellSize/2, playerY + cellSize/2);
+    ctx.rotate(GameState.player.angle);  // Use the angle directly
+    
+    // Draw main triangle
+    ctx.beginPath();
+    ctx.moveTo(0, -size/2);
+    ctx.lineTo(size/2, size/2);
+    ctx.lineTo(-size/2, size/2);
+    ctx.closePath();
+    ctx.fill();
+    
+    // Draw direction indicator line
+    ctx.strokeStyle = '#fff';
+    ctx.lineWidth = 1;
+    ctx.beginPath();
+    ctx.moveTo(0, -size/2);
+    ctx.lineTo(0, -size);
+    ctx.stroke();
+    
+    // Draw small circle at the end of the direction line
+    ctx.fillStyle = '#fff';
+    ctx.beginPath();
+    ctx.arc(0, -size, size/4, 0, Math.PI * 2);
+    ctx.fill();
+    
+    ctx.restore();
+
+    // Draw damage flash effect
+    if (GameState.damageFlash > 0) {
+        // Create a radial gradient that's transparent in the center and red at the edges
+        const gradient = ctx.createRadialGradient(
+            width/2, height/2, 0,  // Inner circle (center)
+            width/2, height/2, Math.max(width, height)/2  // Outer circle (edges)
+        );
+        gradient.addColorStop(0, `rgba(255, 0, 0, 0)`);  // Transparent center
+        gradient.addColorStop(0.7, `rgba(255, 0, 0, 0)`);  // Start red at 70% of radius
+        gradient.addColorStop(1, `rgba(255, 0, 0, ${GameState.damageFlash})`);  // Full red at edges
+        
+        ctx.fillStyle = gradient;
+        ctx.fillRect(0, 0, width, height);
+        GameState.damageFlash -= 0.05; // Fade out over time
+    }
+};
+
+// Game loop
+const gameLoop = (ctx) => {
+    if (!GameState.isStarted) {
+        render(ctx);
+        requestAnimationFrame(() => gameLoop(ctx));
+        return;
+    }
+    
+    if (GameState.isGameOver) {
+        ctx.fillStyle = '#fff';
+        ctx.font = '48px monospace';
+        ctx.fillText('GAME OVER', ctx.canvas.width/2 - 100, ctx.canvas.height/2);
+        return;
+    }
+    
+    // Check for firing input
+    if ((keys[' '] || keys.e) && GameState.player.ammo > 0 && 
+        Date.now() - GameState.gun.lastShot > 200) {
+        GameState.player.ammo--;
+        GameState.gun.recoil = 1;
+        GameState.gun.muzzleFlash = 1;
+        GameState.gun.lastShot = Date.now();
+        GameState.shots.push({
+            time: Date.now(),
+            angle: GameState.player.angle
+        });
+        
+        // Check for enemy hits
+        const fov = Math.PI / 3;
+        const rayAngle = GameState.player.angle;
+        let distance = 0;
+        let hitEnemy = null;
+        let hitWall = false;
+        
+        while (!hitEnemy && !hitWall && distance < 20) {
+            distance += 0.1;
+            const testX = GameState.player.x + Math.sin(rayAngle) * distance;
+            const testY = GameState.player.y + Math.cos(rayAngle) * distance;
+            
+            if (GameState.level.map[Math.floor(testY)][Math.floor(testX)] === 1) {
+                hitWall = true;
+                break;
+            }
+            
+            hitEnemy = GameState.enemies.find(enemy => {
+                const dx = testX - enemy.x;
+                const dy = testY - enemy.y;
+                return Math.sqrt(dx * dx + dy * dy) < 0.5;
+            });
+        }
+        
+        if (hitEnemy) {
+            hitEnemy.health--;
+            if (hitEnemy.health <= 0) {
+                // Create more particles with more colors
+                const colors = [
+                    '#ff0000', '#00ff00', '#0000ff', '#ffff00', '#ff00ff', '#00ffff',
+                    '#ff8800', '#88ff00', '#00ff88', '#0088ff', '#8800ff', '#ff0088',
+                    '#ff4444', '#44ff44', '#4444ff', '#ffff44', '#ff44ff', '#44ffff'
+                ];
+                for (let i = 0; i < 80; i++) { // More particles
+                    const color = colors[Math.floor(Math.random() * colors.length)];
+                    GameState.particles.push(new Particle(hitEnemy.x, hitEnemy.y, color));
+                }
+            }
+        }
+    }
+    
+    // Update gun recoil, muzzle flash, and slide position
+    if (GameState.gun.recoil > 0) {
+        GameState.gun.recoil -= 0.1;
+        // Animate slide moving back
+        GameState.gun.slidePosition = Math.min(1, GameState.gun.slidePosition + 0.2);
+    } else if (GameState.gun.slidePosition > 0) {
+        // Animate slide moving forward
+        GameState.gun.slidePosition = Math.max(0, GameState.gun.slidePosition - 0.1);
+    }
+    if (GameState.gun.muzzleFlash > 0) {
+        GameState.gun.muzzleFlash -= 0.2;
+    }
+
+    // Update gun tilt based on ammo
+    if (GameState.player.ammo === 0) {
+        GameState.gun.tilt = Math.min(1, GameState.gun.tilt + 0.1);
+    } else {
+        GameState.gun.tilt = Math.max(0, GameState.gun.tilt - 0.1);
+    }
+    
+    // Update particles
+    GameState.particles = GameState.particles.filter(particle => particle.update());
+    
+    handlePlayerMovement(keys);
+    updateEnemies();
+    checkCollisions();
+    render(ctx);
+    
+    requestAnimationFrame(() => gameLoop(ctx));
+};
+
+// Input handling
+const keys = { 
+    w: false, 
+    a: false, 
+    s: false, 
+    d: false,
+    ArrowLeft: false,
+    ArrowRight: false,
+    ' ': false,  // Space bar
+    e: false     // E key
+};
+
+document.addEventListener('keydown', e => {
+    if (!GameState.isStarted && (e.key === ' ' || e.key === 'Enter')) {
+        GameState.isStarted = true;
+        generateLevel();
+        return;
+    }
+    
+    if (e.key.toLowerCase() in keys) keys[e.key.toLowerCase()] = true;
+    if (e.key in keys) keys[e.key] = true;
+});
+
+document.addEventListener('keyup', e => {
+    if (e.key.toLowerCase() in keys) keys[e.key.toLowerCase()] = false;
+    if (e.key in keys) keys[e.key] = false;
+});
+
+document.addEventListener('mousemove', e => {
+    if (GameState.isStarted) {
+        GameState.player.angle += e.movementX * 0.01;
+    }
+});
+
+// Update click handler to handle both start screen and firing
+document.addEventListener('click', (e) => {
+    if (!GameState.isStarted) {
+        const canvas = document.getElementById('gameCanvas');
+        const rect = canvas.getBoundingClientRect();
+        const x = e.clientX - rect.left;
+        const y = e.clientY - rect.top;
+        
+        const buttonWidth = 200;
+        const buttonHeight = 60;
+        const buttonX = canvas.width/2 - buttonWidth/2;
+        const buttonY = canvas.height/2;
+        
+        if (x >= buttonX && x <= buttonX + buttonWidth &&
+            y >= buttonY && y <= buttonY + buttonHeight) {
+            GameState.isStarted = true;
+            generateLevel();
+        }
+        return;
+    }
+    
+    // Handle firing on click during gameplay
+    if (GameState.player.ammo > 0 && Date.now() - GameState.gun.lastShot > 200) {
+        GameState.player.ammo--;
+        GameState.gun.recoil = 1;
+        GameState.gun.muzzleFlash = 1;
+        GameState.gun.lastShot = Date.now();
+        GameState.shots.push({
+            time: Date.now(),
+            angle: GameState.player.angle
+        });
+        
+        // Check for enemy hits
+        const fov = Math.PI / 3;
+        const rayAngle = GameState.player.angle;
+        let distance = 0;
+        let hitEnemy = null;
+        let hitWall = false;
+        
+        while (!hitEnemy && !hitWall && distance < 20) {
+            distance += 0.1;
+            const testX = GameState.player.x + Math.sin(rayAngle) * distance;
+            const testY = GameState.player.y + Math.cos(rayAngle) * distance;
+            
+            if (GameState.level.map[Math.floor(testY)][Math.floor(testX)] === 1) {
+                hitWall = true;
+                break;
+            }
+            
+            hitEnemy = GameState.enemies.find(enemy => {
+                const dx = testX - enemy.x;
+                const dy = testY - enemy.y;
+                return Math.sqrt(dx * dx + dy * dy) < 0.5;
+            });
+        }
+        
+        if (hitEnemy) {
+            hitEnemy.health--;
+            if (hitEnemy.health <= 0) {
+                // Create more particles with more colors
+                const colors = [
+                    '#ff0000', '#00ff00', '#0000ff', '#ffff00', '#ff00ff', '#00ffff',
+                    '#ff8800', '#88ff00', '#00ff88', '#0088ff', '#8800ff', '#ff0088',
+                    '#ff4444', '#44ff44', '#4444ff', '#ffff44', '#ff44ff', '#44ffff'
+                ];
+                for (let i = 0; i < 80; i++) { // More particles
+                    const color = colors[Math.floor(Math.random() * colors.length)];
+                    GameState.particles.push(new Particle(hitEnemy.x, hitEnemy.y, color));
+                }
+            }
+        }
+    }
+});
+
+// Initialize game
+const init = () => {
+    const canvas = document.getElementById('gameCanvas');
+    canvas.width = window.innerWidth;
+    canvas.height = window.innerHeight;
+    const ctx = canvas.getContext('2d');
+    
+    // Don't generate level or start game loop until start button is clicked
+    render(ctx);
+    gameLoop(ctx);
+};
+
+// Add particle class
+class Particle {
+    constructor(x, y, color) {
+        this.x = x;
+        this.y = y;
+        this.color = color;
+        this.size = Math.random() * 8 + 4; // Larger size range (4-12)
+        
+        // Random direction in all directions (360 degrees)
+        const angle = Math.random() * Math.PI * 2;
+        const speed = Math.random() * 15 + 5; // Faster spread (5-20)
+        this.speedX = Math.sin(angle) * speed;
+        this.speedY = Math.cos(angle) * speed;
+        
+        this.life = 1.0;
+        this.decay = Math.random() * 0.005 + 0.002; // Slower decay
+        this.rotation = Math.random() * Math.PI * 2;
+        this.rotationSpeed = (Math.random() - 0.5) * 0.2;
+        this.gravity = Math.random() * 0.15 + 0.05;
+    }
+
+    update() {
+        this.x += this.speedX;
+        this.y += this.speedY;
+        this.speedY += this.gravity;
+        this.life -= this.decay;
+        this.rotation += this.rotationSpeed;
+        return this.life > 0;
+    }
+}
+
+init();
diff --git a/html/fps/index.html b/html/fps/index.html
new file mode 100644
index 0000000..4715b47
--- /dev/null
+++ b/html/fps/index.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>Hedge Maze</title>
+    <style>
+        body {
+            margin: 0;
+            padding: 0;
+            overflow: hidden;
+            background-color: #000;
+        }
+        canvas {
+            display: block;
+        }
+    </style>
+</head>
+<body>
+    <canvas id="gameCanvas"></canvas>
+    <script type="module" src="game.js"></script>
+</body>
+</html>
diff --git a/html/immoral/app.js b/html/immoral/app.js
new file mode 100644
index 0000000..3e6cfa7
--- /dev/null
+++ b/html/immoral/app.js
@@ -0,0 +1,825 @@
+/**
+ * Web Font Vacuum
+ * A tool to find and extract web fonts from any website
+ * 
+ * We sort of set up a pipeline where each step processes the data and passes it to the next:
+ * 1. URL Input > 2. Fetch HTML > 3. Parse & Extract > 4. Process CSS > 5. Display Results
+ * 
+ */
+
+/**
+ * Proxy List
+ * Proxies are buggy, and temperamental...so why not use a whole lot of them!
+ * List of CORS proxies we can try if the main one fails.
+ * Keeps track of the last working proxy to optimize future requests.
+ * @type {Array<{name: string, url: string, urlFormatter: (url: string) => string}>}
+ */
+const CORS_PROXIES = [
+    {
+        name: 'allorigins',
+        url: 'https://api.allorigins.win/raw?url=',
+        urlFormatter: url => `https://api.allorigins.win/raw?url=${encodeURIComponent(url)}`
+    },
+    {
+        name: 'corsproxy.io',
+        url: 'https://corsproxy.io/?',
+        urlFormatter: url => `https://corsproxy.io/?${encodeURIComponent(url)}`
+    },
+    {
+        name: 'cors.sh',
+        url: 'https://cors.sh/',
+        urlFormatter: url => `https://cors.sh/${url}`
+    },
+    {
+        name: 'corsanywhere',
+        url: 'https://cors-anywhere.herokuapp.com/', // FIXME: pretty certain this one doesn't work without human intervention
+        urlFormatter: url => `https://cors-anywhere.herokuapp.com/${url}`
+    },
+    {
+        name: 'thingproxy',
+        url: 'https://thingproxy.freeboard.io/fetch/',
+        urlFormatter: url => `https://thingproxy.freeboard.io/fetch/${url}`
+    }
+];
+
+// Keep track of which proxy worked last
+let lastWorkingProxyIndex = 0;
+let proxyFailureCount = 0;
+const MAX_PROXY_FAILURES = 3;
+
+async function fetchWithProxies(url, attempt = 0, isBinary = false) {
+    // Start with the last working proxy
+    const startIndex = lastWorkingProxyIndex;
+    
+    for (let i = 0; i < CORS_PROXIES.length; i++) {
+        // Calculate the current proxy index, wrapping around if necessary
+        const proxyIndex = (startIndex + i) % CORS_PROXIES.length;
+        const proxy = CORS_PROXIES[proxyIndex];
+        
+        try {
+            console.log(`Trying proxy: ${proxy.name} for URL: ${url}`);
+            
+            const fetchOptions = {
+                headers: {
+                    'Accept': isBinary ? '*/*' : 'text/html,application/xhtml+xml,text/css',
+                    'Origin': window.location.origin
+                },
+                mode: 'cors'
+            };
+            
+            const response = await fetch(proxy.urlFormatter(url), fetchOptions);
+            
+            if (response.ok) {
+                lastWorkingProxyIndex = proxyIndex;
+                proxyFailureCount = 0;
+                return response;
+            }
+        } catch (error) {
+            console.log(`Proxy ${proxy.name} failed:`, error);
+            proxyFailureCount++;
+            
+            // If we've had too many failures, wait a bit before continuing
+            if (proxyFailureCount >= MAX_PROXY_FAILURES) {
+                await new Promise(resolve => setTimeout(resolve, 1000));
+                proxyFailureCount = 0;
+            }
+        }
+    }
+    
+    throw new Error('All proxies failed to fetch the resource');
+}
+
+async function downloadFont(url, filename) {
+    try {
+        console.log('Downloading font from:', url);
+        const response = await fetchWithProxies(url, 0, true);
+        
+        const arrayBuffer = await response.arrayBuffer();
+        if (arrayBuffer.byteLength === 0) {
+            throw new Error('Received empty font file');
+        }
+        
+        // Convert ArrayBuffer to Blob with proper MIME type
+        const blob = new Blob([arrayBuffer], { type: getFontMimeType(url) });
+        
+        // Temporary link to trigger the download
+        const objectUrl = URL.createObjectURL(blob);
+        const link = document.createElement('a');
+        link.href = objectUrl;
+        link.download = filename;
+        
+        document.body.appendChild(link);
+        link.click();
+        
+        // Small delay to ensure download starts before cleanup
+        setTimeout(() => {
+            document.body.removeChild(link);
+            URL.revokeObjectURL(objectUrl);
+        }, 100);
+        
+        return true;
+    } catch (error) {
+        console.error('Error downloading font:', error);
+        alert(`Error downloading font: ${error.message}`);
+        return false;
+    }
+}
+
+// Assume the MIME type based on the file's extension
+function getFontMimeType(url) {
+    const extension = url.split('.').pop().toLowerCase().split('?')[0];
+    switch (extension) {
+        case 'woff':
+            return 'font/woff';
+        case 'woff2':
+            return 'font/woff2';
+        case 'ttf':
+            return 'font/ttf';
+        case 'otf':
+            return 'font/otf';
+        default:
+            return 'application/octet-stream';
+    }
+}
+
+/**
+ * Event listeners and initialization.
+ * 
+ * 1. Enter URL and analyze
+ * 2. Fetch the HTML through a CORS proxy
+ * 3. Parse HTML to find:
+ *    - Direct font links
+ *    - Stylesheet links
+ *    - Inline styles
+ * 4. Process each CSS source to find @font-face rules
+ * 5. Display results with preview/download options
+ */
+document.addEventListener('DOMContentLoaded', () => {
+    const urlInput = document.getElementById('urlInput');
+    const analyzeBtn = document.getElementById('analyzeBtn');
+    const resultsDiv = document.getElementById('results');
+    const errorDiv = document.getElementById('error');
+    
+    /**
+     * Two different methods to load the font:
+     * - Using a data URL
+     * - Fallback: Using a blob URL if data URL fails
+     * 
+     * @param {string} url - The URL of the font file to preview
+     * @param {string} fontFamily - The font-family name to use
+     * @returns {Promise<boolean>} - Whether the font was successfully loaded
+     */
+    async function previewFont(url, fontFamily) {
+        try {
+            console.log('Loading font from:', url);
+            const response = await fetchWithProxies(url, 0, true);
+            
+            const arrayBuffer = await response.arrayBuffer();
+            if (arrayBuffer.byteLength === 0) {
+                throw new Error('Received empty font file');
+            }
+
+            // Convert ArrayBuffer to Blob
+            const blob = new Blob([arrayBuffer], { type: getFontMimeType(url) });
+            
+            // Try using a data URL instead of a blob URL
+            const reader = new FileReader();
+            
+            return new Promise((resolve, reject) => {
+                reader.onload = async function() {
+                    try {
+                        const dataUrl = reader.result;
+                        
+                        const fontFace = new FontFace(fontFamily, `url(${dataUrl})`, {
+                            style: 'normal',
+                            weight: '400',
+                            display: 'swap'
+                        });
+                        
+                        const loadedFont = await fontFace.load();
+                        document.fonts.add(loadedFont);
+                        
+                        resolve(true);
+                    } catch (loadError) {
+                        console.error('Font load error:', loadError);
+                        
+                        // Try fallback method with blob URL
+                        try {
+                            const fontUrl = URL.createObjectURL(blob);
+                            const fontFace = new FontFace(fontFamily, `url(${fontUrl})`, {
+                                style: 'normal',
+                                weight: '400',
+                                display: 'swap'
+                            });
+                            
+                            const loadedFont = await fontFace.load();
+                            document.fonts.add(loadedFont);
+                            
+                            URL.revokeObjectURL(fontUrl);
+                            resolve(true);
+                        } catch (fallbackError) {
+                            console.error('Font fallback load error:', fallbackError);
+                            reject(fallbackError);
+                        }
+                    }
+                };
+                
+                reader.onerror = function() {
+                    reject(new Error('Failed to read font file'));
+                };
+                
+                reader.readAsDataURL(blob);
+            });
+        } catch (error) {
+            console.error('Error loading font for preview:', error);
+            return false;
+        }
+    }
+    
+    /**
+     * Click handler for the Analyze button.
+     * 
+     * 1. Validate input URL
+     * 2. Fetch and parse webpage
+     * 3. Look for fonts in:
+     *    - Direct links (preload, regular links)
+     *    - CSS files (external and inline)
+     *    - Common font directories
+     * 4. Display results
+     */
+    analyzeBtn.addEventListener('click', async () => {
+        const url = urlInput.value.trim();
+        if (!url) {
+            showError('Please enter a valid URL');
+            return;
+        }
+
+        try {
+            // Clear previous results and errors
+            resultsDiv.innerHTML = '';
+            errorDiv.style.display = 'none';
+
+            // Show loading state
+            resultsDiv.innerHTML = '<p>Analyzing webpage. Sometimes this takes a while.</p>';
+
+            // Fetch the target webpage through the proxy system
+            const response = await fetchWithProxies(url);
+            const html = await response.text();
+
+            // Create a temporary DOM to parse the HTML
+            const parser = new DOMParser();
+            const doc = parser.parseFromString(html, 'text/html');
+
+            // Find all potential font sources
+            const fontUrls = new Set();
+            
+            // Get the base URL (domain)
+            const baseUrlObj = new URL(url);
+            const domain = baseUrlObj.origin;
+            
+            // Brute force common font paths, for scenarios where the font is not found in the css
+            const commonFontPaths = [
+                '/assets/fonts/',
+                '/fonts/',
+                '/assets/',
+                '/css/fonts/',
+                '/wp-content/themes/*/fonts/',
+                '/static/fonts/'
+            ];
+            
+            console.log('Checking common font paths for:', domain);
+
+            // Check for direct font links in the HTML
+            extractDirectFontLinks(doc, url, fontUrls);
+
+            // Check stylesheet links
+            const cssPromises = Array.from(doc.querySelectorAll('link[rel="stylesheet"]')).map(link => {
+                const href = link.getAttribute('href');
+                if (!href) return Promise.resolve();
+                
+                const cssUrl = new URL(href, url).href;
+                console.log('Processing CSS URL:', cssUrl);
+                return processCssUrl(cssUrl, fontUrls, url);
+            });
+
+            // Wait for all CSS files to be processed
+            await Promise.all(cssPromises.filter(Boolean));
+
+            // Check style tags
+            doc.querySelectorAll('style').forEach(style => {
+                extractFontUrlsFromCss(style.textContent, url, fontUrls);
+            });
+
+            // If no fonts found, try checking common paths
+            if (fontUrls.size === 0) {
+                console.log('No fonts found in CSS, checking common paths...');
+                
+                const commonPathPromises = commonFontPaths.map(async path => {
+                    try {
+                        // Try to access the directory
+                        const directoryUrl = new URL(path, domain).href;
+                        console.log('Checking directory:', directoryUrl);
+                        
+                        // We can't list directory contents directly, but we can try common font names
+                        const commonFontNames = ['font', 'fonts', 'webfont', 'custom-font', 'main'];
+                        const fontExtensions = ['woff', 'woff2', 'ttf', 'otf'];
+                        
+                        for (const name of commonFontNames) {
+                            for (const ext of fontExtensions) {
+                                const fontUrl = `${directoryUrl}${name}.${ext}`;
+                                try {
+                                    const fontResponse = await fetchWithProxies(fontUrl, 0, true);
+                                    if (fontResponse.ok) {
+                                        console.log('Found font at common path:', fontUrl);
+                                        fontUrls.add({
+                                            url: fontUrl,
+                                            family: 'Unknown Font',
+                                            filename: `${name}.${ext}`
+                                        });
+                                    }
+                                } catch (error) {
+                                    // Ignore errors for common path checks
+                                }
+                            }
+                        }
+                    } catch (error) {
+                        // Ignore errors for common path checks
+                    }
+                });
+                
+                await Promise.all(commonPathPromises);
+            }
+
+            // Display results
+            if (fontUrls.size === 0) {
+                resultsDiv.innerHTML = '<p>No web fonts (WOFF/TTF/WOFF2/OTF) were found on this page.</p>';
+            } else {
+                displayFontUrls(fontUrls);
+            }
+
+        } catch (error) {
+            showError(`Error analyzing the webpage: ${error.message}`);
+            console.error('Full error:', error);
+        }
+    });
+
+    /**
+     * Processes a the URL of a CSS file to extract font information.
+     * 
+     * @param {string} cssUrl - The URL of the CSS file to process
+     * @param {Set} fontUrls - Set to store found font URLs
+     * @param {string} baseUrl - Base URL for resolving relative paths
+     */
+    async function processCssUrl(cssUrl, fontUrls, baseUrl) {
+        try {
+            console.log('Fetching CSS from:', cssUrl);
+            const response = await fetchWithProxies(cssUrl);
+            const css = await response.text();
+            
+            // Extract font URLs from the CSS content
+            extractFontUrlsFromCss(css, cssUrl, fontUrls);
+        } catch (error) {
+            console.error(`Error processing CSS from ${cssUrl}:`, error);
+        }
+    }
+
+    /**
+     * Extract font URLs from CSS content
+     * 
+     * @param {string} css - The CSS content to process
+     * @param {string} cssUrl - The URL of the CSS file (for resolving relative paths)
+     * @param {Set} fontUrls - Set to store found font URLs
+     */
+    function extractFontUrlsFromCss(css, cssUrl, fontUrls) {
+        // Get the base URL for resolving relative paths
+        const baseUrl = new URL(cssUrl).origin;
+        
+        // Match @font-face blocks
+        const fontFaceRegex = /@font-face\s*{[^}]*}/g;
+        const urlRegex = /url\(['"]?([^'"\)]+)['"]?\)/g;
+        const fontFamilyRegex = /font-family\s*:\s*['"]?([^'";]*)['"]?/;
+        
+        let fontFaceMatch;
+        while ((fontFaceMatch = fontFaceRegex.exec(css)) !== null) {
+            const fontFaceBlock = fontFaceMatch[0];
+            
+            // Extract font-family name
+            const familyMatch = fontFaceBlock.match(fontFamilyRegex);
+            const fontFamily = familyMatch ? familyMatch[1].trim() : 'Unknown Font';
+            
+            // Clean up the CSS rule for display
+            const cleanRule = fontFaceBlock.replace(/\s+/g, ' ').trim();
+            
+            // Extract all URLs from this @font-face block
+            let urlMatch;
+            while ((urlMatch = urlRegex.exec(fontFaceBlock)) !== null) {
+                try {
+                    let fontUrl = urlMatch[1].trim();
+                    
+                    // Skip data: URLs
+                    if (fontUrl.startsWith('data:')) {
+                        console.log('Skipping data: URL font');
+                        continue;
+                    }
+                    
+                    // Only process known font file types
+                    if (!fontUrl.match(/\.(woff2?|ttf|otf|eot)(\?.*)?$/i)) {
+                        continue;
+                    }
+                    
+                    // Resolve relative URLs
+                    if (fontUrl.startsWith('//')) {
+                        fontUrl = 'https:' + fontUrl;
+                    } else if (!fontUrl.startsWith('http')) {
+                        fontUrl = new URL(fontUrl, cssUrl).href;
+                    }
+                    
+                    const filename = fontUrl.split('/').pop().split('?')[0];
+                    console.log(`Found font in CSS: ${fontUrl} (${fontFamily})`);
+                    
+                    fontUrls.add({
+                        url: fontUrl,
+                        family: fontFamily,
+                        filename: filename,
+                        cssRule: cleanRule
+                    });
+                } catch (error) {
+                    console.error('Error processing font URL:', urlMatch[1], error);
+                }
+            }
+        }
+    }
+
+    /**
+     * Find direct font links in HTML.
+     * Checks two types of links:
+     * 1. Preload links with as="font"
+     * 2. Regular <a> tags pointing to font files
+     * 
+     * @param {Document} doc - Parsed HTML document
+     * @param {string} baseUrl - Base URL for resolving relative paths
+     * @param {Set} fontUrls - Set to store found font URLs
+     */
+    function extractDirectFontLinks(doc, baseUrl, fontUrls) {
+        // Check for preload links
+        doc.querySelectorAll('link[rel="preload"][as="font"], link[rel="stylesheet"]').forEach(link => {
+            const href = link.getAttribute('href');
+            if (href && href.match(/\.(woff|woff2|ttf|otf|css)(\?.*)?$/i)) {
+                try {
+                    const absoluteUrl = new URL(href, baseUrl).href;
+                    if (href.match(/\.css(\?.*)?$/i)) {
+                        processCssUrl(absoluteUrl, fontUrls, baseUrl);
+                    } else {
+                        const filename = href.split('/').pop().split('?')[0];
+                        let fontFamilyName = 'Unknown Font';
+                        if (link.dataset.fontFamily) {
+                            fontFamilyName = link.dataset.fontFamily;
+                        }
+                        
+                        console.log(`Found preloaded font: ${absoluteUrl} (${fontFamilyName})`);
+                        fontUrls.add({
+                            url: absoluteUrl,
+                            family: fontFamilyName,
+                            filename: filename,
+                            cssRule: `@font-face { font-family: "${fontFamilyName}"; src: url("${absoluteUrl}") format("${getFormatFromFilename(filename)}"); }`
+                        });
+                    }
+                } catch (error) {
+                    console.error('Error resolving font URL:', href, error);
+                }
+            }
+        });
+    }
+
+    /**
+     * Get the format string for a font file based on its filename
+     * @param {string} filename 
+     * @returns {string}
+     */
+    function getFormatFromFilename(filename) {
+        const ext = filename.split('.').pop().toLowerCase();
+        switch (ext) {
+            case 'woff2':
+                return 'woff2';
+            case 'woff':
+                return 'woff';
+            case 'ttf':
+                return 'truetype';
+            case 'otf':
+                return 'opentype';
+            default:
+                return ext;
+        }
+    }
+
+    /**
+     * The V of MVC
+     *  
+     * - Auto-preview for 3 or fewer fonts
+     * - Manual preview toggle for 4+ fonts
+     * - Download buttons
+     * - Font information display
+     * - CSS rule display
+     * - Preview with multiple sizes
+     * 
+     * @param {Array} urls - Array of font data objects to display
+     */
+    async function displayFontUrls(urls) {
+        const resultsDiv = document.getElementById('results');
+        resultsDiv.innerHTML = '';
+
+        let fontsArray = Array.isArray(urls) ? urls : Array.from(urls);
+        
+        const fontFamilies = new Map();
+        fontsArray.forEach(fontData => {
+            if (!fontFamilies.has(fontData.family)) {
+                fontFamilies.set(fontData.family, {
+                    variants: [],
+                    // Keep the first CSS rule as the base rule
+                    cssRule: fontData.cssRule
+                });
+            }
+            fontFamilies.get(fontData.family).variants.push(fontData);
+        });
+
+        fontsArray = Array.from(fontFamilies.entries()).map(([family, data]) => ({
+            family,
+            variants: data.variants,
+            cssRule: data.cssRule
+        }));
+        
+        if (fontsArray.length === 0) {
+            resultsDiv.innerHTML = '<p>No fonts found on this webpage.</p>';
+            return;
+        }
+
+        const container = document.createElement('div');
+        container.style.display = 'flex';
+        container.style.flexDirection = 'column';
+        container.style.gap = '2rem';
+        container.style.maxWidth = '800px';
+        container.style.margin = '0 auto';
+
+        const shouldAutoPreview = fontsArray.length < 4;
+
+        for (let fontData of fontsArray) {
+            const fontItem = document.createElement('div');
+            fontItem.style.border = '2px solid var(--dark)';
+            fontItem.style.padding = '1rem';
+            fontItem.style.background = 'var(--beige)';
+            fontItem.style.position = 'relative';
+
+            const accentBar = document.createElement('div');
+            accentBar.style.position = 'absolute';
+            accentBar.style.top = '0';
+            accentBar.style.left = '0';
+            accentBar.style.right = '0';
+            accentBar.style.height = '4px';
+            accentBar.style.background = 'var(--accent)';
+            fontItem.appendChild(accentBar);
+
+            const fontInfo = document.createElement('div');
+            fontInfo.style.marginTop = '0.5rem';
+            
+            const fontName = document.createElement('h3');
+            fontName.style.margin = '0';
+            fontName.style.textTransform = 'uppercase';
+            fontName.textContent = fontData.family;
+            fontInfo.appendChild(fontName);
+
+            // Show all available formats
+            const formatContainer = document.createElement('div');
+            formatContainer.style.display = 'flex';
+            formatContainer.style.gap = '0.5rem';
+            formatContainer.style.flexWrap = 'wrap';
+            formatContainer.style.marginTop = '0.5rem';
+            
+            const uniqueFormats = new Set(fontData.variants.map(v => v.filename.split('.').pop().toUpperCase()));
+            uniqueFormats.forEach(format => {
+                const formatBadge = document.createElement('div');
+                formatBadge.style.display = 'inline-block';
+                formatBadge.style.background = 'var(--dark)';
+                formatBadge.style.color = 'var(--beige)';
+                formatBadge.style.padding = '0.2rem 0.5rem';
+                formatBadge.style.fontSize = '0.8rem';
+                formatBadge.textContent = format;
+                formatContainer.appendChild(formatBadge);
+            });
+            fontInfo.appendChild(formatContainer);
+
+            const previewContainer = document.createElement('div');
+            previewContainer.style.marginTop = '1rem';
+            previewContainer.style.padding = '1rem';
+            previewContainer.style.border = '1px dashed var(--dark)';
+            
+            // Assume hidden if not auto-previewing
+            if (!shouldAutoPreview) {
+                previewContainer.style.display = 'none';
+            }
+            
+            const previewLabel = document.createElement('div');
+            previewLabel.style.fontWeight = 'bold';
+            previewLabel.style.marginBottom = '0.5rem';
+            previewLabel.textContent = 'Preview';
+            previewContainer.appendChild(previewLabel);
+
+            // Create preview for each style variation
+            const previewText = 'Society for me my misery<br>Since Gift of Thee --'; // Emily Dickinson
+            const styleVariations = document.createElement('div');
+            styleVariations.style.display = 'flex';
+            styleVariations.style.flexDirection = 'column';
+            styleVariations.style.gap = '1rem';
+
+            // Preview for each variant
+            fontData.variants.forEach((variant, index) => {
+                const variantPreview = document.createElement('div');
+                variantPreview.style.marginBottom = '1rem';
+                variantPreview.id = `preview-${variant.filename}-${index}`;
+                variantPreview.innerHTML = previewText;
+                
+                // Extract style information from CSS rule
+                let styleInfo = 'Regular';
+                if (variant.cssRule) {
+                    const fontStyle = variant.cssRule.match(/font-style:\s*([^;]+)/);
+                    const fontWeight = variant.cssRule.match(/font-weight:\s*([^;]+)/);
+                    if (fontStyle || fontWeight) {
+                        styleInfo = [
+                            fontWeight?.[1] || '',
+                            fontStyle?.[1] !== 'normal' ? fontStyle?.[1] : ''
+                        ].filter(Boolean).join(' ') || 'Regular';
+                    }
+                }
+                
+                const styleLabel = document.createElement('div');
+                styleLabel.style.fontSize = '0.8rem';
+                styleLabel.style.color = 'var(--dark)';
+                styleLabel.style.marginBottom = '0.25rem';
+                styleLabel.textContent = styleInfo;
+                
+                const variantContainer = document.createElement('div');
+                variantContainer.appendChild(styleLabel);
+                variantContainer.appendChild(variantPreview);
+                styleVariations.appendChild(variantContainer);
+            });
+
+            previewContainer.appendChild(styleVariations);
+
+            if (fontData.cssRule) {
+                const cssContainer = document.createElement('div');
+                cssContainer.style.marginTop = '1rem';
+                cssContainer.style.marginBottom = '1rem';
+                cssContainer.style.padding = '1rem';
+                cssContainer.style.background = 'var(--dark)';
+                cssContainer.style.color = 'var(--beige)';
+                cssContainer.style.borderRadius = '4px';
+                cssContainer.style.position = 'relative';
+                
+                const cssLabel = document.createElement('div');
+                cssLabel.style.position = 'absolute';
+                cssLabel.style.top = '-10px';
+                cssLabel.style.left = '10px';
+                cssLabel.style.background = 'var(--accent)';
+                cssLabel.style.color = 'var(--dark)';
+                cssLabel.style.padding = '0 0.5rem';
+                cssLabel.style.fontSize = '0.8rem';
+                cssLabel.style.fontWeight = 'bold';
+                cssLabel.textContent = '@font-face';
+                cssContainer.appendChild(cssLabel);
+                
+                const cssContent = document.createElement('pre');
+                cssContent.style.margin = '0';
+                cssContent.style.fontFamily = 'monospace';
+                cssContent.style.fontSize = '0.9rem';
+                cssContent.style.whiteSpace = 'pre-wrap';
+                cssContent.style.wordBreak = 'break-all';
+                
+                const allCssRules = fontData.variants.map(variant => {
+                    if (!variant.cssRule) return '';
+                    return variant.cssRule
+                        .replace(/{/, ' {\n    ')
+                        .replace(/;/g, ';\n    ')
+                        .replace(/}/g, '\n}')
+                        .replace(/\s+}/g, '}')
+                        .trim();
+                }).join('\n\n');
+                
+                cssContent.textContent = allCssRules;
+                cssContainer.appendChild(cssContent);
+                
+                fontInfo.appendChild(cssContainer);
+            }
+
+            const sizeVariations = document.createElement('div');
+            sizeVariations.style.borderTop = '1px solid var(--dark)';
+            sizeVariations.style.paddingTop = '0.5rem';
+            sizeVariations.style.marginTop = '0.5rem';
+            
+            [12, 18, 24].forEach(size => {
+                const sizePreview = document.createElement('div');
+                sizePreview.style.fontSize = `${size}px`;
+                sizePreview.textContent = `${size}px - The quick brown fox jumps over the lazy dog 0123456789`;
+                sizeVariations.appendChild(sizePreview);
+            });
+            
+            previewContainer.appendChild(sizeVariations);
+
+            const buttonContainer = document.createElement('div');
+            buttonContainer.style.display = 'flex';
+            buttonContainer.style.gap = '0.5rem';
+            buttonContainer.style.marginTop = '1rem';
+            buttonContainer.style.flexWrap = 'wrap';
+
+            const uniqueDownloads = new Map();
+            fontData.variants.forEach(variant => {
+                if (!uniqueDownloads.has(variant.url)) {
+                    uniqueDownloads.set(variant.url, {
+                        filename: variant.filename,
+                        url: variant.url
+                    });
+                }
+            });
+
+            uniqueDownloads.forEach(({filename, url}) => {
+                const downloadBtn = document.createElement('button');
+                downloadBtn.textContent = `⬇ Download ${filename}`;
+                downloadBtn.style.flex = '1';
+                downloadBtn.addEventListener('click', () => downloadFont(url, filename));
+                buttonContainer.appendChild(downloadBtn);
+            });
+
+            if (!shouldAutoPreview) {
+                const previewBtn = document.createElement('button');
+                previewBtn.textContent = '👁 Preview';
+                previewBtn.style.flex = '1';
+                
+                let isPreviewVisible = false;
+                previewBtn.addEventListener('click', async () => {
+                    if (!isPreviewVisible) {
+                        previewContainer.style.display = 'block';
+                        
+                        const loadPromises = fontData.variants.map(async (variant, index) => {
+                            const previewElement = document.getElementById(`preview-${variant.filename}-${index}`);
+                            if (await previewFont(variant.url, fontData.family)) {
+                                previewElement.style.fontFamily = fontData.family;
+                                if (variant.cssRule) {
+                                    const fontStyle = variant.cssRule.match(/font-style:\s*([^;]+)/);
+                                    const fontWeight = variant.cssRule.match(/font-weight:\s*([^;]+)/);
+                                    if (fontStyle) previewElement.style.fontStyle = fontStyle[1];
+                                    if (fontWeight) previewElement.style.fontWeight = fontWeight[1];
+                                }
+                            }
+                        });
+                        
+                        await Promise.all(loadPromises);
+                        
+                        sizeVariations.querySelectorAll('div').forEach(div => {
+                            div.style.fontFamily = fontData.family;
+                        });
+                        
+                        previewBtn.textContent = '👁 Hide Preview';
+                        isPreviewVisible = true;
+                    } else {
+                        previewContainer.style.display = 'none';
+                        previewBtn.textContent = '👁 Preview';
+                        isPreviewVisible = false;
+                    }
+                });
+                buttonContainer.appendChild(previewBtn);
+            } else {
+                // Auto-preview for all variants
+                setTimeout(async () => {
+                    const loadPromises = fontData.variants.map(async (variant, index) => {
+                        const previewElement = document.getElementById(`preview-${variant.filename}-${index}`);
+                        if (await previewFont(variant.url, fontData.family)) {
+                            previewElement.style.fontFamily = fontData.family;
+                            if (variant.cssRule) {
+                                const fontStyle = variant.cssRule.match(/font-style:\s*([^;]+)/);
+                                const fontWeight = variant.cssRule.match(/font-weight:\s*([^;]+)/);
+                                if (fontStyle) previewElement.style.fontStyle = fontStyle[1];
+                                if (fontWeight) previewElement.style.fontWeight = fontWeight[1];
+                            }
+                        }
+                    });
+                    
+                    await Promise.all(loadPromises);
+                    
+                    sizeVariations.querySelectorAll('div').forEach(div => {
+                        div.style.fontFamily = fontData.family;
+                    });
+                }, 100);
+            }
+
+            fontItem.appendChild(fontInfo);
+            fontItem.appendChild(previewContainer);
+            fontItem.appendChild(buttonContainer);
+            container.appendChild(fontItem);
+        }
+
+        resultsDiv.appendChild(container);
+    }
+
+    function showError(message) {
+        errorDiv.textContent = message;
+        errorDiv.style.display = 'block';
+    }
+}); 
\ No newline at end of file
diff --git a/html/immoral/bookmarklet.js b/html/immoral/bookmarklet.js
new file mode 100644
index 0000000..7f61ec4
--- /dev/null
+++ b/html/immoral/bookmarklet.js
@@ -0,0 +1,564 @@
+(function() {
+    // Prevent multiple instances from running at once
+    if (window.immoralFontVacuum) {
+        alert('Web Font Vacuum is already running!');
+        return;
+    }
+    window.immoralFontVacuum = true;
+
+    const logCollector = {
+        logs: [],
+        group: function(label) {
+            this.logs.push(`\n### ${label}`);
+        },
+        groupEnd: function() {
+            this.logs.push(`### End Group\n`);
+        },
+        log: function(...args) {
+            this.logs.push(args.map(arg => 
+                typeof arg === 'object' ? JSON.stringify(arg, null, 2) : arg
+            ).join(' '));
+        },
+        warn: function(...args) {
+            this.logs.push(`⚠️ ${args.map(arg => 
+                typeof arg === 'object' ? JSON.stringify(arg, null, 2) : arg
+            ).join(' ')}`);
+        },
+        error: function(...args) {
+            this.logs.push(`❌ ${args.map(arg => 
+                typeof arg === 'object' ? JSON.stringify(arg, null, 2) : arg
+            ).join(' ')}`);
+        },
+        getReport: function() {
+            return `Font Vacuum Report
+==================
+Time: ${new Date().toISOString()}
+URL: ${window.location.href}
+
+${this.logs.join('\n')}`;
+        }
+    };
+
+    const styleRoot = document.createElement('div');
+    styleRoot.className = 'fv-root';
+    styleRoot.style.all = 'initial';  // Reset all styles
+    
+    const style = document.createElement('style');
+    style.textContent = `
+        .fv-root {
+            font: 16px system-ui, -apple-system, sans-serif;
+            color: #333333;
+            line-height: 1.4;
+            box-sizing: border-box;
+        }
+        
+        .fv-root * {
+            box-sizing: inherit;
+            font-family: inherit;
+            line-height: inherit;
+            color: inherit;
+        }
+
+        .fv-container {
+            position: fixed;
+            top: 20px;
+            right: 20px;
+            width: 400px;
+            max-height: 90vh;
+            background: #f5f5f5;
+            z-index: 999999;
+            overflow-y: auto;
+            display: flex;
+            flex-direction: column;
+            border: 3px solid #333;
+            box-shadow: 8px 8px 0 #ff4d00;
+        }
+        
+        .fv-header {
+            padding: 1rem;
+            background: #333333;
+            color: #f5f5f5;
+            display: flex;
+            justify-content: space-between;
+            align-items: center;
+            cursor: move;
+            user-select: none;
+            flex-shrink: 0;
+        }
+        
+        .fv-header h1 {
+            margin: 0;
+            font-size: 1.1rem;
+            line-height: 1;
+        }
+        
+        .fv-close {
+            background: none;
+            border: none;
+            color: #f5f5f5;
+            cursor: pointer;
+            font-size: 1.5rem;
+            padding: 0;
+            margin: 0;
+            line-height: 1;
+            display: flex;
+            align-items: center;
+        }
+        
+        .fv-content {
+            padding: 1rem;
+            overflow-y: auto;
+            flex-grow: 1;
+        }
+        
+        .fv-footer {
+            padding: 0.75rem 1rem;
+            background: #333333;
+            color: #f5f5f5;
+            display: flex;
+            justify-content: flex-end;
+            align-items: center;
+            flex-shrink: 0;
+        }
+
+        .fv-footer-button {
+            background: #555;
+            color: #f5f5f5;
+            border: none;
+            padding: 0.5rem 1rem;
+            cursor: pointer;
+            font-size: 0.9em;
+            display: flex;
+            align-items: center;
+            gap: 0.5rem;
+        }
+        
+        .fv-footer-button:hover {
+            background: #666;
+        }
+        
+        .fv-font-item {
+            margin-bottom: 1rem;
+            padding: 1rem;
+            border: 1px solid #ddd;
+            background: #ffffff;
+        }
+        
+        .fv-font-item h3 {
+            margin: 0 0 1rem 0;
+            padding: 0;
+            font-size: 1.1em;
+            font-weight: 600;
+        }
+        
+        .fv-preview {
+            margin: 1rem 0;
+            padding: 1rem;
+            border: 1px dashed #333;
+            background: #ffffff;
+        }
+        
+        .fv-button {
+            background: #333;
+            color: #f5f5f5;
+            border: none;
+            padding: 0.5rem 1rem;
+            cursor: pointer;
+            margin: 0.25rem 0.5rem 0.25rem 0;
+            font-size: 0.9em;
+        }
+        
+        .fv-button:last-child {
+            margin-right: 0;
+        }
+        
+        .fv-button:hover {
+            background: #444;
+        }
+    `;
+    styleRoot.appendChild(style);
+    document.body.appendChild(styleRoot);
+
+    const container = document.createElement('div');
+    container.className = 'fv-container';
+    styleRoot.appendChild(container);
+    
+    let isDragging = false;
+    let currentX;
+    let currentY;
+    let initialX;
+    let initialY;
+    let xOffset = 0;
+    let yOffset = 0;
+
+    const header = document.createElement('header');
+    header.className = 'fv-header';
+    header.innerHTML = `
+        <h1>Web Font Vacuum</h1>
+        <button class="fv-close">&times;</button>
+    `;
+    
+    header.addEventListener('mousedown', dragStart);
+    document.addEventListener('mousemove', drag);
+    document.addEventListener('mouseup', dragEnd);
+
+    function dragStart(e) {
+        initialX = e.clientX - xOffset;
+        initialY = e.clientY - yOffset;
+        if (e.target === header) {
+            isDragging = true;
+        }
+    }
+
+    function drag(e) {
+        if (isDragging) {
+            e.preventDefault();
+            currentX = e.clientX - initialX;
+            currentY = e.clientY - initialY;
+            xOffset = currentX;
+            yOffset = currentY;
+            container.style.transform = `translate(${currentX}px, ${currentY}px)`;
+        }
+    }
+
+    function dragEnd() {
+        isDragging = false;
+    }
+
+    header.querySelector('.fv-close').addEventListener('click', () => {
+        document.body.removeChild(styleRoot);
+        window.immoralFontVacuum = false;
+    });
+
+    const content = document.createElement('div');
+    content.className = 'fv-content';
+
+    function extractFontUrls(cssText, baseUrl) {
+        const fontUrls = [];
+        const fontFaceRegex = /@font-face\s*{[^}]*}/g;
+        const urlRegex = /url\(['"]?([^'"\)]+)['"]?\)/g;
+        const fontFamilyRegex = /font-family\s*:\s*['"]?([^'";]*)['"]?/;
+        
+        function resolveUrl(url, base) {
+            try {
+                // Protocol-relative URLs
+                if (url.startsWith('//')) {
+                    return `${location.protocol}${url}`;
+                }
+                // Absolute URLs
+                if (url.match(/^https?:\/\//)) {
+                    return url;
+                }
+                // Root-relative URLs
+                if (url.startsWith('/')) {
+                    return `${location.origin}${url}`;
+                }
+                // Relative URLs - use stylesheet URL as base if available
+                return new URL(url, base || location.href).href;
+            } catch (e) {
+                console.warn('Failed to resolve URL:', url, e);
+                return url;
+            }
+        }
+        
+        let fontFaceMatch;
+        while ((fontFaceMatch = fontFaceRegex.exec(cssText)) !== null) {
+            const fontFaceBlock = fontFaceMatch[0];
+            const familyMatch = fontFaceBlock.match(fontFamilyRegex);
+            const fontFamily = familyMatch ? familyMatch[1].trim() : 'Unknown Font';
+            
+            let urlMatch;
+            while ((urlMatch = urlRegex.exec(fontFaceBlock)) !== null) {
+                let fontUrl = urlMatch[1].trim();
+                
+                // Skip data: URLs
+                if (fontUrl.startsWith('data:')) continue;
+                
+                // Only process known font file types
+                if (!fontUrl.match(/\.(woff2?|ttf|otf|eot)(\?.*)?$/i)) continue;
+                
+                // Resolve the URL relative to the stylesheet's URL
+                fontUrl = resolveUrl(fontUrl, baseUrl);
+                
+                fontUrls.push({
+                    family: fontFamily,
+                    url: fontUrl,
+                    filename: fontUrl.split('/').pop().split('?')[0],
+                    cssRule: fontFaceBlock
+                });
+            }
+        }
+        return fontUrls;
+    }
+
+    function findFonts() {
+        const fonts = new Map();
+        logCollector.group('Font Vacuum: Scanning Stylesheets');
+        
+        logCollector.log(`Found ${document.styleSheets.length} stylesheets`);
+        
+        for (const sheet of document.styleSheets) {
+            try {
+                const baseUrl = sheet.href;
+                logCollector.group(`Stylesheet: ${baseUrl || 'inline'}`);
+                const cssRules = sheet.cssRules || sheet.rules;
+                logCollector.log(`- Rules found: ${cssRules.length}`);
+                
+                let cssText = '';
+                let fontFaceCount = 0;
+                for (const rule of cssRules) {
+                    if (rule.constructor.name === 'CSSFontFaceRule') {
+                        fontFaceCount++;
+                    }
+                    cssText += rule.cssText + '\n';
+                }
+                logCollector.log(`- @font-face rules found: ${fontFaceCount}`);
+                
+                const fontUrls = extractFontUrls(cssText, baseUrl);
+                logCollector.log(`- Font URLs extracted: ${fontUrls.length}`);
+                fontUrls.forEach(font => {
+                    logCollector.log(`  • ${font.family}: ${font.url}`);
+                    if (!fonts.has(font.family)) {
+                        fonts.set(font.family, {
+                            variants: [],
+                            cssRule: font.cssRule
+                        });
+                    }
+                    fonts.get(font.family).variants.push(font);
+                });
+                logCollector.groupEnd();
+            } catch (e) {
+                logCollector.warn(`Could not access stylesheet:`, sheet.href, e);
+                logCollector.groupEnd();
+            }
+        }
+        
+        const results = Array.from(fonts.entries()).map(([family, data]) => ({
+            family,
+            variants: data.variants,
+            cssRule: data.cssRule
+        }));
+        
+        logCollector.log('Final Results:', {
+            totalFamilies: results.length,
+            families: results.map(f => ({
+                family: f.family,
+                variants: f.variants.length,
+                urls: f.variants.map(v => v.url)
+            }))
+        });
+        logCollector.groupEnd();
+        
+        return results;
+    }
+
+    async function downloadFont(url, filename) {
+        try {
+            logCollector.group(`Font Vacuum: Downloading ${filename} from ${url}`);
+            
+            logCollector.log('Searching for existing font-face rule...');
+            const existingFontRule = Array.from(document.styleSheets)
+                .flatMap(sheet => {
+                    try {
+                        return Array.from(sheet.cssRules);
+                    } catch (e) {
+                        return [];
+                    }
+                })
+                .find(rule => 
+                    rule.constructor.name === 'CSSFontFaceRule' && 
+                    rule.cssText.includes(url)
+                );
+
+            logCollector.log('Existing font-face rule found:', !!existingFontRule);
+            let response;
+            
+            if (existingFontRule) {
+                logCollector.log('Attempting to fetch using existing rule credentials...');
+                const fontBlob = await fetch(url, {
+                    mode: 'cors',
+                    credentials: 'include',
+                    headers: {
+                        'Origin': window.location.origin
+                    }
+                }).then(r => r.blob());
+                response = new Response(fontBlob);
+            } else {
+                logCollector.log('No existing rule found, attempting direct fetch...');
+                response = await fetch(url, {
+                    mode: 'cors',
+                    credentials: 'include',
+                    headers: {
+                        'Origin': window.location.origin
+                    }
+                });
+            }
+
+            if (!response.ok) {
+                throw new Error(`Network response was not ok. Status: ${response.status}`);
+            }
+            
+            logCollector.log('Font fetched successfully, preparing download...');
+            const blob = await response.blob();
+            logCollector.log('Font blob size:', blob.size, 'bytes');
+            
+            const objectUrl = URL.createObjectURL(blob);
+            const link = document.createElement('a');
+            link.href = objectUrl;
+            link.download = filename;
+            document.body.appendChild(link);
+            link.click();
+            document.body.removeChild(link);
+            
+            setTimeout(() => URL.revokeObjectURL(objectUrl), 100);
+            logCollector.log('Download initiated successfully');
+            logCollector.groupEnd();
+            return true;
+        } catch (error) {
+            logCollector.error('Error downloading font:', error);
+            logCollector.groupEnd();
+            alert(`Error downloading font: ${error.message}\n\nTroubleshooting tips:\n1. Check the console for detailed logs\n2. Try using your browser's developer tools Network tab to find and download the font file directly\n3. Some sites may block direct font downloads`);
+            return false;
+        }
+    }
+
+    async function previewFont(url, fontFamily) {
+        try {
+            logCollector.group(`Font Vacuum: Previewing ${fontFamily} from ${url}`);
+            
+            const existingFontRule = Array.from(document.styleSheets)
+                .flatMap(sheet => {
+                    try {
+                        return Array.from(sheet.cssRules);
+                    } catch (e) {
+                        return [];
+                    }
+                })
+                .find(rule => 
+                    rule.constructor.name === 'CSSFontFaceRule' && 
+                    rule.cssText.includes(url)
+                );
+
+            if (existingFontRule) {
+                logCollector.log('Using existing font-face rule for preview');
+                logCollector.groupEnd();
+                return true;
+            }
+
+            logCollector.log('No existing rule found, attempting to load font...');
+            const response = await fetch(url, {
+                mode: 'cors',
+                credentials: 'include',
+                headers: {
+                    'Origin': window.location.origin
+                }
+            });
+            
+            if (!response.ok) {
+                throw new Error(`Network response was not ok. Status: ${response.status}`);
+            }
+            
+            const blob = await response.blob();
+            logCollector.log('Font blob size:', blob.size, 'bytes');
+            const fontUrl = URL.createObjectURL(blob);
+            
+            const fontFace = new FontFace(fontFamily, `url(${fontUrl})`, {
+                style: 'normal',
+                weight: '400',
+                display: 'swap'
+            });
+            
+            const loadedFont = await fontFace.load();
+            document.fonts.add(loadedFont);
+            URL.revokeObjectURL(fontUrl);
+            
+            logCollector.log('Font loaded successfully');
+            logCollector.groupEnd();
+            return true;
+        } catch (error) {
+            logCollector.error('Error loading font:', error);
+            logCollector.groupEnd();
+            return false;
+        }
+    }
+
+    const fonts = findFonts();
+    
+    if (fonts.length === 0) {
+        content.innerHTML = '<p>No web fonts found on this page.</p>';
+    } else {
+        fonts.forEach(fontData => {
+            const fontItem = document.createElement('div');
+            fontItem.className = 'fv-font-item';
+            
+            const fontName = document.createElement('h3');
+            fontName.style.margin = '0 0 1rem 0';
+            fontName.textContent = fontData.family;
+            fontItem.appendChild(fontName);
+            
+            const preview = document.createElement('div');
+            preview.className = 'fv-preview';
+            preview.innerHTML = '0123456789<br><br>Society for me my misery<br>Since Gift of Thee --<br><br>The quick brown fox jumps over the lazy dog!?';
+            fontItem.appendChild(preview);
+            
+            const uniqueDownloads = new Map();
+            fontData.variants.forEach(variant => {
+                if (!uniqueDownloads.has(variant.url)) {
+                    uniqueDownloads.set(variant.url, {
+                        filename: variant.filename,
+                        url: variant.url
+                    });
+                }
+            });
+            
+            const buttonContainer = document.createElement('div');
+            buttonContainer.style.marginTop = '1rem';
+            
+            uniqueDownloads.forEach(({filename, url}) => {
+                const downloadBtn = document.createElement('button');
+                downloadBtn.className = 'fv-button';
+                downloadBtn.textContent = `⬇ Download ${filename}`;
+                downloadBtn.addEventListener('click', () => downloadFont(url, filename));
+                buttonContainer.appendChild(downloadBtn);
+            });
+            
+            fontItem.appendChild(buttonContainer);
+            
+            fontData.variants.forEach(async (variant) => {
+                if (await previewFont(variant.url, fontData.family)) {
+                    preview.style.fontFamily = fontData.family;
+                    if (variant.cssRule) {
+                        const fontStyle = variant.cssRule.match(/font-style:\s*([^;]+)/);
+                        const fontWeight = variant.cssRule.match(/font-weight:\s*([^;]+)/);
+                        if (fontStyle) preview.style.fontStyle = fontStyle[1];
+                        if (fontWeight) preview.style.fontWeight = fontWeight[1];
+                    }
+                }
+            });
+            
+            content.appendChild(fontItem);
+        });
+    }
+
+    const footer = document.createElement('div');
+    footer.className = 'fv-footer';
+    
+    const reportBtn = document.createElement('button');
+    reportBtn.className = 'fv-footer-button';
+    reportBtn.innerHTML = '<span>📋</span><span>Copy Debug Report</span>';
+    reportBtn.addEventListener('click', () => {
+        const report = logCollector.getReport();
+        navigator.clipboard.writeText(report).then(() => {
+            reportBtn.innerHTML = '<span>✅</span><span>Report Copied!</span>';
+            setTimeout(() => {
+                reportBtn.innerHTML = '<span>📋</span><span>Copy Debug Report</span>';
+            }, 2000);
+        });
+    });
+    
+    footer.appendChild(reportBtn);
+    container.appendChild(header);
+    container.appendChild(content);
+    container.appendChild(footer);
+    styleRoot.appendChild(container);
+})(); 
\ No newline at end of file
diff --git a/html/immoral/index.html b/html/immoral/index.html
new file mode 100644
index 0000000..b7d3ca4
--- /dev/null
+++ b/html/immoral/index.html
@@ -0,0 +1,221 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>An Immoral Web Font Vacuum</title>
+    <meta name="description" content="Enter a URL to find, preview, and download web fonts (WOFF/TTF/WOFF2/OTF) present on the page.">
+    <style>
+        :root {
+            --beige: #f5f2e9;
+            --dark: #111111;
+            --accent: #ff4d00;
+            --grid-line: #ccbea7;
+            --container-bg: #ffffff;
+            --focus-outline: #2563eb;
+        }
+        
+        body {
+            font-family: 'Iowan Old Style', 'Palatino Linotype', 'URW Palladio L', P052, serif;
+            max-width: 900px;
+            margin: 0 auto;
+            padding: 1rem;
+            line-height: 1.5;
+            background: var(--beige);
+            color: var(--dark);
+        }
+        
+        h1, h2 {
+            text-transform: uppercase;
+            letter-spacing: 2px;
+            border-bottom: 3px solid var(--accent);
+            padding-bottom: 0.5rem;
+            font-weight: 900;
+        }
+        
+        .container {
+            background: var(--container-bg);
+            padding: 2rem;
+            border: 3px solid var(--dark);
+            box-shadow: 8px 8px 0 var(--dark);
+            margin-top: 2rem;
+        }
+        
+        .input-group {
+            display: flex;
+            gap: 1rem;
+            margin-bottom: 2rem;
+            border: 2px solid var(--dark);
+            padding: 1rem;
+            background: var(--beige);
+        }
+        
+        @media (max-width: 600px) {
+            .input-group {
+                flex-direction: column;
+                gap: 0.75rem;
+            }
+            
+            .input-group button {
+                width: 100%;
+            }
+        }
+        
+        .sr-only {
+            position: absolute;
+            width: 1px;
+            height: 1px;
+            padding: 0;
+            margin: -1px;
+            overflow: hidden;
+            clip: rect(0, 0, 0, 0);
+            white-space: nowrap;
+            border: 0;
+        }
+        
+        input[type="url"] {
+            flex: 1;
+            padding: 0.75rem;
+            font-size: 1rem;
+            border: 2px solid var(--dark);
+            background: var(--beige);
+            font-family: 'Courier New', monospace;
+        }
+        
+        input[type="url"]:focus {
+            outline: 3px solid var(--focus-outline);
+            outline-offset: 2px;
+        }
+        
+        button {
+            padding: 0.75rem 1.5rem;
+            font-size: 1rem;
+            background: var(--dark);
+            color: var(--beige);
+            border: 2px solid var(--dark);
+            cursor: pointer;
+            text-transform: uppercase;
+            font-weight: bold;
+            font-family: 'Courier New', monospace;
+            transition: all 0.2s;
+        }
+        
+        button:hover,
+        button:focus-visible {
+            background: var(--accent);
+            transform: translateY(-2px);
+            outline: 3px solid var(--focus-outline);
+            outline-offset: 2px;
+        }
+        
+        button:focus:not(:focus-visible) {
+            outline: none;
+        }
+        
+        .error {
+            color: var(--accent);
+            padding: 1rem;
+            background: rgba(255, 77, 0, 0.1);
+            border: 2px solid var(--accent);
+            margin-top: 1rem;
+            display: none;
+            font-weight: bold;
+        }
+        
+        #results {
+            margin-top: 1rem;
+        }
+
+        .immoral {
+            color: #cc0000;
+            text-shadow: 
+                0 0 1px #fff,
+                0 0 3px #fff,
+                0 0 5px #ff0000,
+                2px 2px 0 #600;
+            font-weight: 900;
+            letter-spacing: 2px;
+            transform: skew(-5deg);
+            display: inline-block;
+            position: relative;
+            padding: 0 4px;
+        }
+        
+        .immoral::first-letter {
+            font-size: 1.2em;
+            text-shadow: 
+                0 0 1px #fff,
+                0 0 3px #fff,
+                0 0 5px #ff0000,
+                2px 2px 0 #800;
+        }
+
+        footer {
+            margin-top: 1rem;
+            margin-bottom: 2rem;
+        }
+
+        footer abbr {
+            color: var(--accent);
+            text-decoration: none;
+            border-bottom: 1px dotted var(--dark);
+        }
+
+        footer abbr:hover {
+            cursor: help;
+        }
+    </style>
+</head>
+<body>
+    <main class="container">
+        <h1><span class="immoral">Immoral</span> Web Font Vacuum</h1>
+        <p>Enter a URL to find, preview, and download web fonts (WOFF/TTF/WOFF2/OTF) present on the page.</p>
+        <section id="urlForm">
+            <form class="input-group" role="search" aria-label="Website URL search form" onsubmit="event.preventDefault();">
+                <label for="urlInput" class="sr-only">Website URL</label>
+                <input 
+                    type="url" 
+                    id="urlInput" 
+                    name="urlInput"
+                    placeholder="Enter website URL (e.g., https://example.com)" 
+                    required
+                    aria-required="true"
+                    aria-describedby="urlHint"
+                >
+                <span id="urlHint" class="sr-only">Enter the full website URL including https:// or http://</span>
+                <button 
+                    id="analyzeBtn" 
+                    type="submit"
+                    aria-label="Find all web fonts on the website"
+                >Find Fonts</button>
+            </form>
+        </section>
+        <section id="error" class="error" role="alert" aria-live="polite"></section>
+        <section id="results" role="region" aria-label="Font analysis results"></section>
+        <section class="bookmarklet-section" style="margin: 2rem 0; padding: 1rem; border: 2px dashed var(--dark); background: var(--beige);">
+            <h2>Web Font Vacuum Bookmarklet</h2>
+            <p>Drag this link to your bookmarks bar to vacuum web fonts from any webpage:</p>
+            <p style="text-align: center;">
+                <a href="javascript:(function(){
+                    const script = document.createElement('script');
+                    script.src = 'https://smallandnearlysilent.com/immoral/bookmarklet.js';
+                    document.body.appendChild(script);
+                })()" 
+                class="bookmarklet-link" 
+                style="display: inline-block; padding: 0.5rem 1rem; background: var(--dark); color: var(--beige); text-decoration: none; border-radius: 4px; font-weight: bold;"
+                onclick="event.preventDefault(); alert('Drag this to your bookmarks bar!');">
+                    Web Font Vacuum
+                </a>
+            </p>
+            <p>
+                Use the bookmarklet on any webpage to find and download its fonts directly.
+            </p>
+        </section>
+    </main>
+    <footer>
+        <p class="immoral">A note for those among us on the web who don't love having to pipe web traffic through random, mostly unknown services:</p>
+        <p>Because of <abbr title="Cross-Origin Resource Sharing">CORS</abbr> I've had to funnel requests through a CORS proxy service, and, because I'm too lazy to host my own I'm using a random one I found after 11 minutes of searching...and because that one seemed unreliable I went ahead and found a few more to cycle through at every request. The CORS issue only comes to play when you use the form on this website. The bookmarklet runs in the same scope as the website that you run it against, so, no CORS issues at all. No weird, unknown and untrusted servers in the way. Bookmarklets, ftw.</p>
+    </footer>
+    <script src="app.js"></script>
+</body>
+</html>
diff --git a/html/isometric-bounce/index.html b/html/isometric-bounce/index.html
new file mode 100644
index 0000000..570f247
--- /dev/null
+++ b/html/isometric-bounce/index.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <title>Bouncy Isometric Guy</title>
+    <style>
+        body {
+            margin: 0;
+            overflow: hidden;
+        }
+        canvas {
+            display: block;
+            width: 100vw;
+            height: 100vh;
+            background: #bce8ff;
+        }
+    </style>
+</head>
+<body>
+    <canvas id="gameCanvas"></canvas>
+    <script src="js/game.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/html/isometric-bounce/js/game.js b/html/isometric-bounce/js/game.js
new file mode 100644
index 0000000..a1849c8
--- /dev/null
+++ b/html/isometric-bounce/js/game.js
@@ -0,0 +1,335 @@
+function createGame() {
+    const state = {
+        canvas: document.getElementById('gameCanvas'),
+        ctx: null,
+        gridSize: 10,
+        tileWidth: 50,
+        tileHeight: 25,
+        offsetX: 0,
+        offsetY: 0,
+        particles: [],
+        lastFrameTime: 0,
+        player: {
+            x: 0,
+            y: 0,
+            targetX: 0,
+            targetY: 0,
+            size: 20,
+            path: [],
+            currentWaypoint: null,
+            jumpHeight: 0,
+            jumpProgress: 0,
+            isJumping: false,
+            startX: 0,
+            startY: 0
+        },
+        isHopping: false,
+        hopProgress: 0
+    };
+
+    state.ctx = state.canvas.getContext('2d');
+
+    function toIsometric(x, y) {
+        return {
+            x: (x - y) * state.tileWidth / 2,
+            y: (x + y) * state.tileHeight / 2
+        };
+    }
+
+    function fromIsometric(screenX, screenY) {
+        const adjustedX = screenX - state.offsetX;
+        const adjustedY = screenY - state.offsetY;
+        
+        const x = (adjustedX / state.tileWidth + adjustedY / state.tileHeight) / 1;
+        const y = (adjustedY / state.tileHeight - adjustedX / state.tileWidth) / 1;
+        
+        return { x: Math.round(x), y: Math.round(y) };
+    }
+
+    function resizeCanvas() {
+        state.canvas.width = window.innerWidth;
+        state.canvas.height = window.innerHeight;
+        
+        state.offsetX = state.canvas.width / 2;
+        state.offsetY = state.canvas.height / 3;
+        
+        const minDimension = Math.min(state.canvas.width, state.canvas.height);
+        const scaleFactor = minDimension / 800;
+        state.tileWidth = 50 * scaleFactor;
+        state.tileHeight = 25 * scaleFactor;
+        state.player.size = 20 * scaleFactor;
+    }
+
+    function dustyParticles(x, y) {
+        const particleCount = 12;
+        for (let i = 0; i < particleCount; i++) {
+            const baseAngle = (Math.PI * 2 * i) / particleCount;
+            const randomAngle = baseAngle + (Math.random() - 0.5) * 0.5;
+            
+            const speed = 0.3 + Math.random() * 0.4;
+            const initialSize = (state.player.size * 0.15) + (Math.random() * state.player.size * 0.15);
+            const greyValue = 220 + Math.floor(Math.random() * 35);
+            
+            state.particles.push({
+                x, y,
+                dx: Math.cos(randomAngle) * speed,
+                dy: Math.sin(randomAngle) * speed,
+                life: 0.8 + Math.random() * 0.4,
+                size: initialSize,
+                color: `rgb(${greyValue}, ${greyValue}, ${greyValue})`,
+                initialSize,
+                rotationSpeed: (Math.random() - 0.5) * 0.2,
+                rotation: Math.random() * Math.PI * 2
+            });
+        }
+    }
+
+    function updateParticles() {
+        for (let i = state.particles.length - 1; i >= 0; i--) {
+            const particle = state.particles[i];
+            
+            particle.x += particle.dx;
+            particle.y += particle.dy;
+            particle.dy += 0.01;
+            particle.rotation += particle.rotationSpeed;
+            particle.life -= 0.03;
+            particle.size = particle.initialSize * (particle.life * 1.5);
+            
+            if (particle.life <= 0) {
+                state.particles.splice(i, 1);
+            }
+        }
+    }
+
+    function findPath(startX, startY, endX, endY) {
+        const path = [];
+        
+        if (startX !== endX) {
+            const stepX = startX < endX ? 1 : -1;
+            for (let x = startX + stepX; stepX > 0 ? x <= endX : x >= endX; x += stepX) {
+                path.push({ x, y: startY });
+            }
+        }
+        
+        if (startY !== endY) {
+            const stepY = startY < endY ? 1 : -1;
+            for (let y = startY + stepY; stepY > 0 ? y <= endY : y >= endY; y += stepY) {
+                path.push({ x: endX, y });
+            }
+        }
+
+        return path;
+    }
+
+    function updatePlayer() {
+        const jumpDuration = 0.1;
+        const maxJumpHeight = state.tileHeight;
+
+        if (state.isHopping) {
+            state.hopProgress += jumpDuration;
+            state.hopProgress = Math.min(state.hopProgress, 1);
+            
+            state.player.jumpHeight = Math.sin(state.hopProgress * Math.PI) * maxJumpHeight;
+
+            if (state.hopProgress >= 1) {
+                state.isHopping = false;
+                state.player.jumpHeight = 0;
+            }
+        } else {
+            if (!state.player.currentWaypoint && state.player.path.length > 0) {
+                state.player.currentWaypoint = state.player.path.shift();
+                state.player.isJumping = true;
+                state.player.jumpProgress = 0;
+                state.player.startX = state.player.x;
+                state.player.startY = state.player.y;
+            }
+
+            if (state.player.currentWaypoint && state.player.isJumping) {
+                state.player.jumpProgress += jumpDuration;
+                state.player.jumpProgress = Math.min(state.player.jumpProgress, 1);
+                
+                state.player.jumpHeight = Math.sin(state.player.jumpProgress * Math.PI) * maxJumpHeight;
+                
+                state.player.x = state.player.startX + (state.player.currentWaypoint.x - state.player.startX) * state.player.jumpProgress;
+                state.player.y = state.player.startY + (state.player.currentWaypoint.y - state.player.startY) * state.player.jumpProgress;
+                
+                if (state.player.jumpProgress >= 1) {
+                    state.player.isJumping = false;
+                    state.player.jumpHeight = 0;
+                    state.player.x = state.player.currentWaypoint.x;
+                    state.player.y = state.player.currentWaypoint.y;
+                    dustyParticles(state.player.x, state.player.y);
+                    state.player.currentWaypoint = null;
+                }
+            }
+        }
+    }
+
+    function drawGrid() {
+        for (let x = 0; x < state.gridSize; x++) {
+            for (let y = 0; y < state.gridSize; y++) {
+                const iso = toIsometric(x, y);
+                
+                // Diamonds!
+                state.ctx.beginPath(); // Start a new path
+                state.ctx.moveTo(iso.x + state.offsetX, iso.y + state.offsetY - state.tileHeight/2); // Move to the top point of the diamond
+                state.ctx.lineTo(iso.x + state.offsetX + state.tileWidth/2, iso.y + state.offsetY); // Draw line to the right point of the diamond
+                state.ctx.lineTo(iso.x + state.offsetX, iso.y + state.offsetY + state.tileHeight/2); // Draw line to the bottom point of the diamond
+                state.ctx.lineTo(iso.x + state.offsetX - state.tileWidth/2, iso.y + state.offsetY); // Draw line to the left point of the diamond
+                state.ctx.closePath(); // Close the path to complete the diamond
+                
+                state.ctx.strokeStyle = '#666';
+                state.ctx.stroke();
+                state.ctx.fillStyle = '#fff';
+                state.ctx.fill();
+            }
+        }
+    }
+
+    function drawParticles() {
+        state.particles.forEach(particle => {
+            const iso = toIsometric(particle.x, particle.y);
+            
+            state.ctx.save();
+            state.ctx.translate(iso.x + state.offsetX, iso.y + state.offsetY);
+            state.ctx.rotate(particle.rotation);
+            
+            state.ctx.beginPath();
+            const points = 5;
+            for (let i = 0; i < points * 2; i++) {
+                const angle = (i * Math.PI) / points;
+                const radius = particle.size * (i % 2 ? 0.7 : 1);
+                const x = Math.cos(angle) * radius;
+                const y = Math.sin(angle) * radius;
+                i === 0 ? state.ctx.moveTo(x, y) : state.ctx.lineTo(x, y);
+            }
+            state.ctx.closePath();
+            
+            state.ctx.fillStyle = `rgba(${particle.color.slice(4, -1)}, ${particle.life * 0.5})`;
+            state.ctx.fill();
+            
+            state.ctx.restore();
+        });
+    }
+
+    function drawPlayer() {
+        const iso = toIsometric(state.player.x, state.player.y);
+        const jumpOffset = state.player.jumpHeight || state.player.jumpHeight;
+        
+        let squashStretch = 1;
+        if (state.player.isJumping) {
+            const jumpPhase = Math.sin(state.player.jumpProgress * Math.PI);
+            if (state.player.jumpProgress < 0.2) {
+                squashStretch = 1 + (0.3 * (1 - state.player.jumpProgress / 0.2));
+            } else if (state.player.jumpProgress > 0.8) {
+                squashStretch = 1 - (0.3 * ((state.player.jumpProgress - 0.8) / 0.2));
+            } else {
+                squashStretch = 1 + (0.1 * jumpPhase);
+            }
+        }
+        
+        const shadowScale = Math.max(0.2, 1 - (jumpOffset / state.tileHeight));
+        state.ctx.beginPath();
+        state.ctx.ellipse(
+            iso.x + state.offsetX,
+            iso.y + state.offsetY + 2,
+            state.player.size * 0.8 * shadowScale,
+            state.player.size * 0.3 * shadowScale,
+            0, 0, Math.PI * 2
+        );
+        state.ctx.fillStyle = `rgba(0,0,0,${0.2 * shadowScale})`;
+        state.ctx.fill();
+
+        const bodyHeight = state.player.size * 2 * squashStretch;
+        const bodyWidth = state.player.size * 0.8 * (1 / squashStretch);
+        
+        state.ctx.save();
+        state.ctx.translate(iso.x + state.offsetX, iso.y + state.offsetY - jumpOffset);
+        state.ctx.scale(1, 0.5);
+        state.ctx.fillStyle = '#ff4444';
+        state.ctx.strokeStyle = '#aa0000';
+        state.ctx.fillRect(-bodyWidth/2, -bodyHeight, bodyWidth, bodyHeight);
+        state.ctx.strokeRect(-bodyWidth/2, -bodyHeight, bodyWidth, bodyHeight);
+        state.ctx.restore();
+
+        state.ctx.beginPath();
+        state.ctx.ellipse(
+            iso.x + state.offsetX,
+            iso.y + state.offsetY - state.player.size * squashStretch - jumpOffset,
+            state.player.size * (1 / squashStretch),
+            state.player.size * 0.5 * squashStretch,
+            0, 0, Math.PI * 2
+        );
+        state.ctx.fillStyle = '#ff4444';
+        state.ctx.fill();
+        state.ctx.strokeStyle = '#aa0000';
+        state.ctx.stroke();
+    }
+
+    function gameLoop(timestamp) {
+
+        const frameInterval = 1000 / 60;
+        
+        if (!state.lastFrameTime || timestamp - state.lastFrameTime >= frameInterval) {
+            state.ctx.clearRect(0, 0, state.canvas.width, state.canvas.height);
+            
+            drawGrid();
+            updateParticles();
+            drawParticles();
+            updatePlayer();
+            drawPlayer();
+            
+            state.lastFrameTime = timestamp;
+        }
+        
+        requestAnimationFrame(gameLoop);
+    }
+
+    function handleClick(e) {
+        const rect = state.canvas.getBoundingClientRect();
+        const clickX = e.clientX - rect.left;
+        const clickY = e.clientY - rect.top;
+        
+        const gridPos = fromIsometric(clickX, clickY);
+        
+        const iso = toIsometric(state.player.x, state.player.y);
+        const playerRadius = state.player.size;
+        const distanceToPlayer = Math.sqrt(
+            Math.pow(clickX - (iso.x + state.offsetX), 2) +
+            Math.pow(clickY - (iso.y + state.offsetY), 2)
+        );
+
+        if (distanceToPlayer < playerRadius) {
+            state.isHopping = true;
+            state.hopProgress = 0;
+        } else if (gridPos.x >= 0 && gridPos.x < state.gridSize &&
+                   gridPos.y >= 0 && gridPos.y < state.gridSize) {
+            state.player.targetX = Math.round(gridPos.x);
+            state.player.targetY = Math.round(gridPos.y);
+            
+            state.player.path = findPath(
+                Math.round(state.player.x),
+                Math.round(state.player.y),
+                state.player.targetX,
+                state.player.targetY
+            );
+            
+            state.player.currentWaypoint = null;
+        }
+    }
+
+    function init() {
+        resizeCanvas();
+        window.addEventListener('resize', resizeCanvas);
+        state.canvas.addEventListener('click', handleClick);
+        state.lastFrameTime = 0;
+        gameLoop();
+    }
+
+    return { init };
+}
+
+window.onload = () => {
+    const game = createGame();
+    game.init();
+};
\ No newline at end of file
diff --git a/html/kgame/index.html b/html/kgame/index.html
new file mode 100644
index 0000000..233c1d6
--- /dev/null
+++ b/html/kgame/index.html
@@ -0,0 +1,59 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>K-Grid Painter</title>
+    <link rel="stylesheet" href="style.css">
+</head>
+<body>
+    <h1>K-Grid Painter</h1>
+    <p>Control the 50x50 grid below using simplified K-like commands.</p>
+    <p>The grid state is represented by the variable <code>G</code> (a list of 2500 integers, 0 or 1).</p>
+    <p>Example commands:</p>
+    <ul>
+        <li><code>G : 0</code>             (Clear grid)</li>
+        <li><code>G : 1</code>             (Fill grid)</li>
+        
+        <li><strong>Basic Operations:</strong></li>
+        <li><code>G @ 0 : 1</code>         (Turn on cell at index 0)</li>
+        <li><code>G @ (!10) : 1</code>     (Turn on first 10 cells - demonstrates ! operator)</li>
+        <li><code>G @ (100 + !50) : 1</code> (Turn on cells 100-149 - demonstrates + operator)</li>
+        <li><code>G @ (50 * !50) : 1</code> (Turn on first column - demonstrates * operator)</li>
+        <li><code>G @ (!2500) : (!2500) % 2</code> (Alternating vertical columns - demonstrates % operator)</li>
+        
+        <li><strong>Comparison Operators:</strong></li>
+        <li><code>G @ (!2500) : ((!2500) % 50) < 25</code> (Left half filled - demonstrates < operator)</li>
+        <li><code>G @ (!2500) : ((!2500) % 50) > 25</code> (Right half filled - demonstrates > operator)</li>
+        <li><code>G @ (!2500) : ((!2500) % 50) = 25</code> (Middle column - demonstrates = operator)</li>
+        
+        <li><strong>Complex Patterns:</strong></li>
+        <li><code>G @ (50 * !50 + 25) : 1</code> (Vertical line in middle - demonstrates row/col math)</li>
+        <li><code>G @ (!50 + 25 * 50) : 1</code> (Horizontal line in middle - demonstrates row/col math)</li>
+        <li><code>G @ (50 * !50 + !50) : 1</code> (Diagonal line from top-left - demonstrates row/col math)</li>
+        <li><code>G @ (50 * !50 + (49 - !50)) : 1</code> (Diagonal line from top-right - demonstrates - operator)</li>
+        <li><code>G @ (!2500) : ((!2500) / 50 + (!2500) % 50) % 2</code> (Checkerboard pattern - demonstrates / and % operators)</li>
+        
+        <li><strong>Unary Operators:</strong></li>
+        <li><code>G @ (!25) : ~(!25)</code> (First cell 1, rest 0 - demonstrates ~ not operator)</li>
+        <li><code>G @ (!25) : |(!25)</code> (Reverse sequence - demonstrates | reverse operator)</li>
+        <li><code>G @ (!25) : $(!25)</code> (Rotate sequence - demonstrates $ rotate operator)</li>
+        <li><code>G @ (!25) : #(!25)</code> (Reshape sequence - demonstrates # reshape operator)</li>
+        
+        <li><strong>Operator Composition:</strong></li>
+        <li><code>G @ (!25) : ~((!25) / 5 + (!25) % 5) % 2</code> (Inverted checkerboard - demonstrates ~ with math)</li>
+        <li><code>G @ (!25) : |((!25) / 5 + (!25) % 5) % 2</code> (Flipped checkerboard - demonstrates | with math)</li>
+        <li><code>G @ (!25) : $((!25) / 5 + (!25) % 5) % 2</code> (Rotated checkerboard - demonstrates $ with math)</li>
+        <li><code>G @ (!25) : #((!25) % 2)</code> (Alternating columns reshaped - demonstrates # with math)</li>
+    </ul>
+
+    <canvas id="gridCanvas"></canvas>
+    <div class="input-area">
+        <input type="text" id="kInput" placeholder="Enter K-like code (e.g., G @ !10 : 1)" size="60">
+        <button id="runButton">Run</button>
+    </div>
+    <pre id="output"></pre>
+
+    <script src="script.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/html/kgame/script.js b/html/kgame/script.js
new file mode 100644
index 0000000..ed71eeb
--- /dev/null
+++ b/html/kgame/script.js
@@ -0,0 +1,437 @@
+document.addEventListener('DOMContentLoaded', () => {
+    const GRID_SIZE = 50;
+    const CELL_SIZE = 10; // Adjust for desired visual size
+    const CANVAS_WIDTH = GRID_SIZE * CELL_SIZE;
+    const CANVAS_HEIGHT = GRID_SIZE * CELL_SIZE;
+
+    const canvas = document.getElementById('gridCanvas');
+    const ctx = canvas.getContext('2d');
+    const input = document.getElementById('kInput');
+    const runButton = document.getElementById('runButton');
+    const output = document.getElementById('output');
+
+    canvas.width = CANVAS_WIDTH;
+    canvas.height = CANVAS_HEIGHT;
+
+    // --- Grid State ---
+    let G = Array(GRID_SIZE).fill().map(() => Array(GRID_SIZE).fill(0)); // 2D matrix grid state
+
+    // --- Drawing ---
+    function drawGridLines() {
+        ctx.strokeStyle = '#eee'; // Light gray grid lines
+        ctx.lineWidth = 1;
+
+        for (let i = 0; i <= GRID_SIZE; i++) {
+            // Vertical lines
+            ctx.beginPath();
+            ctx.moveTo(i * CELL_SIZE + 0.5, 0);
+            ctx.lineTo(i * CELL_SIZE + 0.5, CANVAS_HEIGHT);
+            ctx.stroke();
+
+            // Horizontal lines
+            ctx.beginPath();
+            ctx.moveTo(0, i * CELL_SIZE + 0.5);
+            ctx.lineTo(CANVAS_WIDTH, i * CELL_SIZE + 0.5);
+            ctx.stroke();
+        }
+    }
+
+    function drawCells() {
+        ctx.fillStyle = '#333'; // Color for 'on' cells
+        for (let row = 0; row < GRID_SIZE; row++) {
+            for (let col = 0; col < GRID_SIZE; col++) {
+                if (G[row][col] === 1) {
+                    ctx.fillRect(col * CELL_SIZE, row * CELL_SIZE, CELL_SIZE, CELL_SIZE);
+                }
+            }
+        }
+    }
+
+    function redraw() {
+        // Clear canvas
+        ctx.fillStyle = '#fff'; // Background color
+        ctx.fillRect(0, 0, CANVAS_WIDTH, CANVAS_HEIGHT);
+
+        drawGridLines();
+        drawCells();
+    }
+
+    // Helper functions for array operations
+    const range = (n) => Array.from({length: n}, (_, i) => i);
+    const reshape = (arr, rows, cols) => {
+        const result = [];
+        for (let i = 0; i < rows; i++) {
+            result.push(arr.slice(i * cols, (i + 1) * cols));
+        }
+        return result;
+    };
+    const ravel = (arr) => arr.flat();
+    const zip = (a, b) => a.map((x, i) => [x, b[i]]);
+
+    // --- K-like Interpreter ---
+    function tokenize(code) {
+        // First, normalize whitespace
+        code = code.replace(/\s+/g, ' ').trim();
+        
+        // Define all operators and special characters
+        const operators = ['+', '-', '*', '/', '%', '(', ')', '!', '@', ':', '=', '<', '>', "'", '|', '$', '#', '~'];
+        
+        // Add spaces around all operators
+        operators.forEach(op => {
+            // Use a regex that ensures we don't double-space
+            const regex = new RegExp(`\\${op}`, 'g');
+            code = code.replace(regex, ` ${op} `);
+        });
+        
+        // Normalize spaces again
+        code = code.replace(/\s+/g, ' ').trim();
+        
+        // Split into tokens
+        const tokens = code.split(' ');
+        
+        // Filter out empty tokens and log for debugging
+        const filteredTokens = tokens.filter(t => t.length > 0);
+        console.log('Tokenized:', filteredTokens);
+        
+        return filteredTokens;
+    }
+
+    function evaluateExpression(tokens) {
+        if (!tokens || tokens.length === 0) throw new Error("Empty expression");
+
+        function parseAtom() {
+            let token = tokens.shift();
+            if (!token) throw new Error("Unexpected end of expression");
+
+            if (token === '(') {
+                const value = parseAddSub();
+                if (tokens.length === 0) {
+                    throw new Error("Missing closing parenthesis");
+                }
+                const nextToken = tokens.shift();
+                if (nextToken !== ')') {
+                    throw new Error(`Expected closing parenthesis, got: ${nextToken}`);
+                }
+                return value;
+            } else if (token === '!') { // Iota (prefix)
+                const operand = parseAtom();
+                if (typeof operand !== 'number' || !Number.isInteger(operand) || operand < 0) {
+                    throw new Error("Operand for ! (iota) must be a non-negative integer");
+                }
+                const maxIndex = GRID_SIZE * GRID_SIZE;
+                const result = Array.from({length: Math.min(operand, maxIndex)}, (_, i) => i);
+                console.log(`Iota generated array of length ${result.length}, first few values:`, result.slice(0, 5));
+                return result;
+            } else if (token === '~') { // Not operator
+                const operand = parseAtom();
+                if (Array.isArray(operand)) {
+                    const result = operand.map(x => {
+                        const val = x === 0 ? 1 : 0;
+                        console.log(`Not operation: ${x} -> ${val}`);
+                        return val;
+                    });
+                    console.log(`Not operation on array, first few results:`, result.slice(0, 5));
+                    console.log(`Input array first few values:`, operand.slice(0, 5));
+                    return result;
+                } else {
+                    const result = operand === 0 ? 1 : 0;
+                    console.log(`Not operation (scalar): ${operand} -> ${result}`);
+                    return result;
+                }
+            } else if (/^-?\d+$/.test(token)) {
+                return parseInt(token, 10);
+            } else {
+                throw new Error(`Unrecognized token: ${token}`);
+            }
+        }
+
+        function parseUnary() {
+            let token = tokens[0];
+            if (token === '|' || token === '$' || token === '#') {
+                tokens.shift();
+                const operand = parseUnary();
+                let result;
+                switch (token) {
+                    case '|':
+                        result = [...operand].reverse();
+                        break;
+                    case '$':
+                        if (!Array.isArray(operand)) {
+                            throw new Error("Rotate operator ($) requires an array operand");
+                        }
+                        const size = Math.sqrt(operand.length);
+                        if (size * size !== operand.length) {
+                            throw new Error("Rotate operator ($) requires a square array");
+                        }
+                        result = [];
+                        for (let col = 0; col < size; col++) {
+                            for (let row = size - 1; row >= 0; row--) {
+                                result.push(operand[row * size + col]);
+                            }
+                        }
+                        break;
+                    case '#':
+                        if (!Array.isArray(operand)) {
+                            throw new Error("Reshape operator (#) requires an array operand");
+                        }
+                        result = [];
+                        for (let i = 0; i < GRID_SIZE; i++) {
+                            result.push(operand.slice(i * GRID_SIZE, (i + 1) * GRID_SIZE));
+                        }
+                        result = result.flat();
+                        break;
+                }
+                return result;
+            }
+            return parseAtom();
+        }
+
+        function applyOperation(a, b, op) {
+            const isAList = Array.isArray(a);
+            const isBList = Array.isArray(b);
+
+            const scalarOp = (x, y) => {
+                let result;
+                switch (op) {
+                    case '+': result = x + y; break;
+                    case '-': result = x - y; break;
+                    case '*': result = x * y; break;
+                    case '%': result = y === 0 ? 0 : x % y; break;
+                    case '/': result = y === 0 ? 0 : Math.floor(x / y); break;
+                    case '<': result = x < y ? 1 : 0; break;
+                    case '>': result = x > y ? 1 : 0; break;
+                    case '=': result = x === y ? 1 : 0; break;
+                    default: throw new Error(`Unknown operator: ${op}`);
+                }
+                return result;
+            };
+
+            // Handle scalar operations
+            if (!isAList && !isBList) {
+                return scalarOp(a, b);
+            }
+
+            // Handle array operations
+            const arrayOp = (arr, val) => {
+                if (Array.isArray(arr)) {
+                    const result = arr.map(x => arrayOp(x, val));
+                    if (op === '/' || op === '%') {
+                        console.log(`Array operation ${op} with ${val}, first few results:`, result.slice(0, 5));
+                    }
+                    return result;
+                }
+                return scalarOp(arr, val);
+            };
+
+            if (isAList && !isBList) {
+                const result = arrayOp(a, b);
+                if (op === '+') {
+                    console.log(`Array + scalar operation, first few values:`, {
+                        array: a.slice(0, 5),
+                        scalar: b,
+                        result: result.slice(0, 5)
+                    });
+                }
+                return result;
+            } else if (!isAList && isBList) {
+                const result = arrayOp(b, a);
+                if (op === '+') {
+                    console.log(`Scalar + array operation, first few values:`, {
+                        scalar: a,
+                        array: b.slice(0, 5),
+                        result: result.slice(0, 5)
+                    });
+                }
+                return result;
+            } else {
+                // Both are arrays
+                if (a.length !== b.length) {
+                    throw new Error(`List length mismatch for operator ${op}: ${a.length} vs ${b.length}`);
+                }
+                const result = a.map((x, i) => {
+                    const val = arrayOp(x, b[i]);
+                    if (op === '+') {
+                        console.log(`Adding values at index ${i}: ${x} + ${b[i]} = ${val}`);
+                    }
+                    return val;
+                });
+                if (op === '+') {
+                    console.log(`Array addition, first few results:`, result.slice(0, 5));
+                }
+                return result;
+            }
+        }
+
+        function parseMulDivMod() {
+            let left = parseUnary();
+            while (tokens.length > 0 && (tokens[0] === '*' || tokens[0] === '%' || tokens[0] === '/')) {
+                const op = tokens.shift();
+                const right = parseUnary();
+                left = applyOperation(left, right, op);
+            }
+            return left;
+        }
+
+        function parseAddSub() {
+            let left = parseMulDivMod();
+            while (tokens.length > 0 && (tokens[0] === '+' || tokens[0] === '-')) {
+                const op = tokens.shift();
+                const right = parseMulDivMod();
+                left = applyOperation(left, right, op);
+            }
+            return left;
+        }
+
+        function parseComparison() {
+            let left = parseAddSub();
+            while (tokens.length > 0 && (tokens[0] === '<' || tokens[0] === '>' || tokens[0] === '=')) {
+                const op = tokens.shift();
+                const right = parseAddSub();
+                left = applyOperation(left, right, op);
+            }
+            return left;
+        }
+
+        function parseNot() {
+            let left = parseComparison();
+            while (tokens.length > 0 && tokens[0] === '~') {
+                tokens.shift();
+                left = Array.isArray(left) ? left.map(x => x === 0 ? 1 : 0) : (left === 0 ? 1 : 0);
+            }
+            return left;
+        }
+
+        return parseNot();
+    }
+
+    // Main execution function
+    function executeK(code) {
+        code = code.trim();
+        if (!code) return;
+
+        try {
+            if (code === 'G : 0') {
+                G = Array(GRID_SIZE).fill().map(() => Array(GRID_SIZE).fill(0));
+                setOutput("Grid cleared.", "success");
+                return;
+            }
+            if (code === 'G : 1') {
+                G = Array(GRID_SIZE).fill().map(() => Array(GRID_SIZE).fill(1));
+                setOutput("Grid filled.", "success");
+                return;
+            }
+
+            const assignMatch = code.match(/^G\s*@\s*(.+?)\s*:\s*(.+)$/);
+            if (assignMatch) {
+                const indexExpr = assignMatch[1].trim();
+                const valueExpr = assignMatch[2].trim();
+                const steps = [];
+
+                // Parse and evaluate indices
+                steps.push(`1. Evaluating indices expression: ${indexExpr}`);
+                const indices = evaluateExpression(tokenize(indexExpr));
+                steps.push(`   → Generated ${indices.length} indices`);
+
+                // Parse and evaluate values
+                steps.push(`2. Evaluating values expression: ${valueExpr}`);
+                const values = evaluateExpression(tokenize(valueExpr));
+                steps.push(`   → Generated ${Array.isArray(values) ? values.length : 1} values`);
+
+                const indicesArray = Array.isArray(indices) ? indices : [indices];
+                const valuesArray = Array.isArray(values) ? values : [values];
+
+                if (indicesArray.length === 0) {
+                    setOutput("Warning: Assignment applied to empty index list.", "info", steps);
+                    return;
+                }
+
+                // Vectorized assignment
+                const assignments = indicesArray.reduce((count, idx, i) => {
+                    const row = Math.floor(idx / GRID_SIZE);
+                    const col = idx % GRID_SIZE;
+                    
+                    if (row >= 0 && row < GRID_SIZE && col >= 0 && col < GRID_SIZE) {
+                        const valueToAssign = valuesArray[i % valuesArray.length];
+                        if (count < 5) { // Only log first few assignments
+                            console.log(`Assignment [${row},${col}]: ${valueToAssign} (from index ${idx})`);
+                        }
+                        G[row][col] = valueToAssign % 2;
+                        return count + 1;
+                    }
+                    return count;
+                }, 0);
+
+                steps.push(`3. Assignment complete:`);
+                steps.push(`   → Applied ${assignments} assignments to the grid`);
+                steps.push(`   → Each value was taken modulo 2 to ensure binary (0/1) values`);
+
+                setOutput(`OK. Performed ${assignments} assignments.`, "success", steps);
+            } else {
+                const result = evaluateExpression(tokenize(code));
+                setOutput(`Evaluated: ${JSON.stringify(result)}`, "info", [
+                    `1. Evaluated expression: ${code}`,
+                    `2. Result: ${JSON.stringify(result)}`
+                ]);
+            }
+        } catch (error) {
+            setOutput(`Error: ${error.message}`, "error", [
+                `1. Error occurred while executing: ${code}`,
+                `2. Error details: ${error.message}`
+            ]);
+            console.error("K execution error:", error);
+        }
+    }
+
+    // --- Output Helper ---
+    function setOutput(message, type = "info", steps = []) {
+        const outputDiv = document.getElementById('output');
+        
+        // Create a container for the message and steps
+        const container = document.createElement('div');
+        container.className = type;
+        
+        // Add the main message
+        const messageDiv = document.createElement('div');
+        messageDiv.textContent = message;
+        container.appendChild(messageDiv);
+        
+        // Add steps if provided
+        if (steps.length > 0) {
+            const stepsDiv = document.createElement('div');
+            stepsDiv.className = 'steps';
+            steps.forEach(step => {
+                const stepDiv = document.createElement('div');
+                stepDiv.className = 'step';
+                stepDiv.textContent = step;
+                stepsDiv.appendChild(stepDiv);
+            });
+            container.appendChild(stepsDiv);
+        }
+        
+        // Clear previous output and add new content
+        outputDiv.innerHTML = '';
+        outputDiv.appendChild(container);
+    }
+
+    // --- Event Listeners ---
+    function handleRun() {
+         const code = input.value;
+         executeK(code);
+         redraw();
+         // Optional: Clear input after running
+         // input.value = '';
+     }
+
+    input.addEventListener('keydown', (event) => {
+        if (event.key === 'Enter') {
+            handleRun();
+        }
+    });
+
+    runButton.addEventListener('click', handleRun);
+
+
+    // --- Initial Draw ---
+    setOutput("Grid initialized. Enter commands below.", "info");
+    redraw();
+});
\ No newline at end of file
diff --git a/html/kgame/style.css b/html/kgame/style.css
new file mode 100644
index 0000000..dfb0f33
--- /dev/null
+++ b/html/kgame/style.css
@@ -0,0 +1,90 @@
+body {
+    font-family: sans-serif;
+    display: flex;
+    flex-direction: column;
+    align-items: center;
+    margin: 1em;
+    background-color: #f4f4f4;
+}
+
+h1 {
+    margin-bottom: 0.5em;
+}
+
+p, ul {
+     max-width: 600px;
+     text-align: left;
+     margin-bottom: 0.5em;
+ }
+
+li {
+    margin-bottom: 0.3em;
+}
+
+code {
+    font-family: monospace;
+    background-color: #e0e0e0;
+    padding: 0.1em 0.3em;
+    border-radius: 3px;
+}
+
+canvas {
+    border: 1px solid #333;
+    margin-top: 1em;
+    background-color: #fff;
+    /* Prevent blurry rendering */
+    image-rendering: -moz-crisp-edges;
+    image-rendering: -webkit-crisp-edges;
+    image-rendering: pixelated;
+    image-rendering: crisp-edges;
+}
+
+.input-area {
+    margin-top: 1em;
+    display: flex;
+    align-items: center;
+}
+
+#kInput {
+    padding: 8px;
+    font-size: 1em;
+    font-family: monospace;
+    margin-right: 5px;
+    border: 1px solid #ccc;
+    border-radius: 4px;
+}
+
+#runButton {
+    padding: 8px 15px;
+    font-size: 1em;
+    cursor: pointer;
+    background-color: #4CAF50;
+    color: white;
+    border: none;
+    border-radius: 4px;
+}
+
+#runButton:hover {
+    background-color: #45a049;
+}
+
+#output {
+    margin-top: 1em;
+    padding: 10px;
+    background-color: #e0e0e0;
+    border: 1px solid #ccc;
+    min-height: 3em;
+    width: 500px; /* Adjust as needed */
+    white-space: pre-wrap; /* Wrap long lines */
+    word-wrap: break-word; /* Break long words */
+    font-family: monospace;
+    color: #d00; /* Default to error color */
+}
+
+#output.success {
+    color: #080; /* Green for success */
+}
+
+#output.info {
+    color: #333; /* Default black/gray for info */
+}
\ No newline at end of file
diff --git a/html/matt-chat/ChicagoFLF.ttf b/html/matt-chat/ChicagoFLF.ttf
new file mode 100644
index 0000000..60691e1
--- /dev/null
+++ b/html/matt-chat/ChicagoFLF.ttf
Binary files differdiff --git a/html/matt-chat/cat.png b/html/matt-chat/cat.png
new file mode 100644
index 0000000..7d4c0b9
--- /dev/null
+++ b/html/matt-chat/cat.png
Binary files differdiff --git a/html/matt-chat/com.user.server.plist b/html/matt-chat/com.user.server.plist
new file mode 100644
index 0000000..b5fb9dd
--- /dev/null
+++ b/html/matt-chat/com.user.server.plist
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+    <key>Label</key>
+    <string>com.user.server</string>
+    <key>ProgramArguments</key>
+    <array>
+        <string>/Users/eli/Code/institute/tour/html/matt-chat/server.sh</string>
+    </array>
+    <key>RunAtLoad</key>
+    <true/>
+    <key>KeepAlive</key>
+    <true/>
+</dict>
+</plist>
\ No newline at end of file
diff --git a/html/matt-chat/index.html b/html/matt-chat/index.html
new file mode 100644
index 0000000..cf5d5f9
--- /dev/null
+++ b/html/matt-chat/index.html
@@ -0,0 +1,1266 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <meta name="description" content="Chatty chat chat chat. A super simple chat interface for the Ollama API.">
+    <title>matt chat is not a cat</title>
+    <meta name="theme-color" content="#007BFF">
+    <link rel="icon" href="cat.png" type="image/x-icon">
+    <link rel="shortcut icon" href="cat.png" type="image/x-icon">
+    <link rel="apple-touch-icon" href="cat.png">  
+    <link href="https://fonts.googleapis.com/css2?family=Press+Start+2P&display=swap" rel="stylesheet">
+    <style>
+        body {
+            font-family: Arial, sans-serif;
+            font-size: 22px;
+            margin: 0;
+            padding: 20px;
+            background-color: #f7f7f7;
+            max-width: 800px;
+            margin: 0 auto;
+            display: flex;
+            flex-direction: column;
+            align-items: center;
+            height: 100vh;
+            overflow: hidden;
+        }
+        #chat-container {
+            background-color: white;
+            border: 1px solid #ccc;
+            border-radius: 8px;
+            padding: 1em;
+            margin: 0 auto;
+            flex: 1;
+            overflow-y: auto;
+            width: 100%;
+            max-height: 400px;
+            scroll-behavior: smooth;
+        }
+        #user-input {
+            width: 100%;
+            padding: 10px;
+            border-radius: 4px;
+            border: 1px solid #ddd;
+            font-size: 16px;
+            margin-top: 10px;
+            box-sizing: border-box;
+        }
+        #send-button {
+            padding: 10px 15px;
+            border-radius: 4px;
+            background-color: #007BFF;
+            color: white;
+            border: none;
+            cursor: pointer;
+            margin-top: 10px;
+            width: 100%;
+        }
+        #send-button:hover {
+            background-color: #0056b3;
+        }
+
+        .model-select-container {
+            align-self: flex-start;
+            width: 100%;
+            display: flex;
+            justify-content: space-between;
+            padding: 1em;
+        }
+
+        .model-select-container label {
+            margin-left: 10px;
+        }
+
+        .message {
+            white-space: pre-wrap;
+            margin-bottom: 10px;
+            padding: 1em;
+            border-radius: 8px;
+            background-color: #f1f1f1;
+            display: block;
+            max-width: 100%;
+        }
+
+        .user-message {
+            background-color: #007BFF;
+            color: white;
+            text-align: right;
+            margin-left: 20px;
+        }
+
+        .bot-message {
+            background-color: #f0f0f0;
+            color: #333;
+            text-align: left;
+            margin-right: 20px;
+        }
+
+        @media (max-width: 600px) {
+            #chat-container {
+                max-height: 300px;
+            }
+        }
+
+        body.dark-mode {
+            background-color: #333;
+            color: #f7f7f7;
+        }
+
+        #chat-container.dark-mode {
+            background-color: #444;
+            border: 1px solid #555;
+        }
+
+        #user-input.dark-mode {
+            background-color: #555;
+            color: #f7f7f7;
+            border: 1px solid #666;
+        }
+
+        #send-button.dark-mode {
+            background-color: #007BFF;
+            color: white;
+        }
+
+        .message.dark-mode {
+            background-color: #555;
+            color: #f7f7f7;
+        }
+
+        .user-message.dark-mode {
+            background-color: #007BFF;
+            color: white;
+        }
+
+        .bot-message.dark-mode {
+            background-color: #666;
+            color: #f7f7f7;
+        }
+
+        .bot-time {
+            margin: 0.5em 0;
+            font-size: 0.9em;
+            color: #888;
+            text-align: center;
+        }
+        
+        /* Professional theme */
+        body.theme-professional {
+            font-family: Arial, sans-serif;
+            font-size: 22px;
+        }
+
+        /* Molly Millions theme */
+        body.theme-molly-millions {
+            font-family: "Courier New", monospace;
+            font-size: 22px;
+            margin: 0;
+            padding: 20px;
+            background-color: #0a0a0a;
+            color: #00ff00;
+            max-width: 800px;
+            margin: 0 auto;
+            display: flex;
+            flex-direction: column;
+            align-items: center;
+            height: 100vh;
+            overflow: hidden;
+        }
+
+        .theme-molly-millions #chat-container {
+            background-color: #000000;
+            border: 2px solid #00ff00;
+            border-radius: 0;
+            padding: 1em;
+            margin: 0 auto;
+            flex: 1;
+            overflow-y: auto;
+            width: 100%;
+            max-height: 400px;
+            scroll-behavior: smooth;
+            box-shadow: 0 0 10px #00ff00;
+        }
+
+        .theme-molly-millions #user-input {
+            width: 100%;
+            padding: 10px;
+            border-radius: 0;
+            border: 2px solid #00ff00;
+            background-color: #000000;
+            color: #00ff00;
+            font-family: "Courier New", monospace;
+            font-size: 16px;
+            margin-top: 10px;
+            box-sizing: border-box;
+        }
+
+        .theme-molly-millions #send-button {
+            padding: 10px 15px;
+            border-radius: 0;
+            background-color: #000000;
+            color: #00ff00;
+            border: 2px solid #00ff00;
+            cursor: pointer;
+            margin-top: 10px;
+            width: 100%;
+            font-family: "Courier New", monospace;
+            text-transform: uppercase;
+        }
+
+        .theme-molly-millions #send-button:hover {
+            background-color: #00ff00;
+            color: #000000;
+        }
+
+        .theme-molly-millions .message {
+            white-space: pre-wrap;
+            margin-bottom: 10px;
+            padding: 1em;
+            border-radius: 0;
+            border: 1px solid #00ff00;
+            background-color: #0a0a0a;
+            display: block;
+            max-width: 100%;
+        }
+
+        .theme-molly-millions .user-message {
+            background-color: #001100;
+            color: #00ff00;
+            border: 1px solid #00ff00;
+            text-align: right;
+            margin-left: 20px;
+        }
+
+        .theme-molly-millions .bot-message {
+            background-color: #000000;
+            color: #00ff00;
+            border: 1px solid #00ff00;
+            text-align: left;
+            margin-right: 20px;
+        }
+
+        .theme-molly-millions .bot-time {
+            color: #005500;
+        }
+
+        /* Cloud theme */
+        body.theme-cloud {
+            font-family: "Press Start 2P", "Courier New", monospace;
+            font-size: 18px;
+            margin: 0;
+            padding: 20px;
+            background: linear-gradient(135deg, #1a1b4b 0%, #162057 50%, #1a1b4b 100%);
+            color: #ffffff;
+            max-width: 800px;
+            margin: 0 auto;
+            display: flex;
+            flex-direction: column;
+            align-items: center;
+            height: 100vh;
+            overflow: hidden;
+        }
+
+        .theme-cloud #chat-container {
+            background: rgba(0, 0, 32, 0.75);
+            border: 3px solid #4080ff;
+            border-radius: 3px;
+            padding: 1em;
+            margin: 0 auto;
+            flex: 1;
+            overflow-y: auto;
+            width: 100%;
+            max-height: 400px;
+            scroll-behavior: smooth;
+            box-shadow: 0 0 15px rgba(64, 128, 255, 0.3);
+        }
+
+        .theme-cloud #user-input {
+            width: 100%;
+            padding: 10px;
+            border: 2px solid #4080ff;
+            background: rgba(0, 0, 32, 0.75);
+            color: #ffffff;
+            font-family: "Press Start 2P", "Courier New", monospace;
+            font-size: 14px;
+            margin-top: 10px;
+            box-sizing: border-box;
+        }
+
+        .theme-cloud #send-button {
+            padding: 10px 15px;
+            background: linear-gradient(to bottom, #4080ff 0%, #2048c0 100%);
+            color: white;
+            border: 2px solid #2048c0;
+            cursor: pointer;
+            margin-top: 10px;
+            width: 100%;
+            font-family: "Press Start 2P", "Courier New", monospace;
+            font-size: 14px;
+            text-transform: uppercase;
+            text-shadow: 2px 2px #000000;
+        }
+
+        .theme-cloud #send-button:hover {
+            background: linear-gradient(to bottom, #50a0ff 0%, #3060e0 100%);
+        }
+
+        .theme-cloud .message {
+            white-space: pre-wrap;
+            margin-bottom: 10px;
+            padding: 1em;
+            border: 2px solid #4080ff;
+            background: rgba(0, 0, 32, 0.5);
+            display: block;
+            max-width: 100%;
+            font-size: 14px;
+        }
+
+        .theme-cloud .user-message {
+            background: rgba(64, 128, 255, 0.2);
+            color: #ffffff;
+            border: 2px solid #4080ff;
+            text-align: right;
+            margin-left: 20px;
+            text-shadow: 1px 1px #000000;
+        }
+
+        .theme-cloud .bot-message {
+            background: rgba(32, 64, 128, 0.2);
+            color: #ffffff;
+            border: 2px solid #4080ff;
+            text-align: left;
+            margin-right: 20px;
+            text-shadow: 1px 1px #000000;
+        }
+
+        .theme-cloud .bot-time {
+            color: #80c0ff;
+            font-size: 12px;
+            text-shadow: 1px 1px #000000;
+        }
+
+        .theme-cloud #counter {
+            color: #80c0ff !important;
+            text-shadow: 1px 1px #000000;
+        }
+
+        .theme-cloud .model-select-container {
+            background: rgba(0, 0, 32, 0.75);
+            border: 2px solid #4080ff;
+            padding: 10px;
+            margin-bottom: 10px;
+            width: 100%;
+            box-sizing: border-box;
+        }
+
+        .theme-cloud #model-select {
+            background: rgba(0, 0, 32, 0.75);
+            color: #ffffff;
+            border: 1px solid #4080ff;
+            padding: 5px;
+            font-family: "Press Start 2P", "Courier New", monospace;
+            font-size: 12px;
+        }
+
+        /* Classic Mac theme */
+        @font-face {
+            font-family: 'ChicagoFLF';
+            src: url('/ChicagoFLF.ttf') format('truetype');
+        }
+
+        body.theme-classic {
+            font-family: 'ChicagoFLF', 'Monaco', monospace;
+            font-size: 14px;
+            margin: 0;
+            padding: 20px;
+            background-color: #DDDDDD;
+            color: #000000;
+            max-width: 800px;
+            margin: 0 auto;
+            display: flex;
+            flex-direction: column;
+            align-items: center;
+            height: 100vh;
+            overflow: hidden;
+            image-rendering: pixelated;
+        }
+
+        .theme-classic #chat-container {
+            background-color: #FFFFFF;
+            border: 2px solid #000000;
+            border-radius: 2px;
+            padding: 1em;
+            margin: 0 auto;
+            flex: 1;
+            overflow-y: auto;
+            width: 100%;
+            max-height: 400px;
+            scroll-behavior: smooth;
+            box-shadow: 2px 2px 0px #000000;
+        }
+
+        .theme-classic #user-input {
+            width: 100%;
+            padding: 8px;
+            border: 2px solid #000000;
+            background-color: #FFFFFF;
+            color: #000000;
+            font-family: 'ChicagoFLF', 'Monaco', monospace;
+            font-size: 14px;
+            margin-top: 10px;
+            box-sizing: border-box;
+            border-radius: 2px;
+        }
+
+        .theme-classic #send-button {
+            padding: 4px 15px;
+            background-color: #FFFFFF;
+            color: #000000;
+            border: 2px solid #000000;
+            border-radius: 2px;
+            cursor: pointer;
+            margin-top: 10px;
+            width: 100%;
+            font-family: 'ChicagoFLF', 'Monaco', monospace;
+            font-size: 14px;
+            box-shadow: 2px 2px 0px #000000;
+        }
+
+        .theme-classic #send-button:hover {
+            background-color: #000000;
+            color: #FFFFFF;
+        }
+
+        .theme-classic #send-button:active {
+            box-shadow: 1px 1px 0px #000000;
+            transform: translate(1px, 1px);
+        }
+
+        .theme-classic .message {
+            white-space: pre-wrap;
+            margin-bottom: 10px;
+            padding: 8px;
+            border: 2px solid #000000;
+            background-color: #FFFFFF;
+            display: block;
+            max-width: 100%;
+            font-size: 14px;
+            border-radius: 2px;
+        }
+
+        .theme-classic .user-message {
+            background-color: #FFFFFF;
+            color: #000000;
+            text-align: right;
+            margin-left: 20px;
+            box-shadow: 2px 2px 0px #000000;
+        }
+
+        .theme-classic .bot-message {
+            background-color: #FFFFFF;
+            color: #000000;
+            text-align: left;
+            margin-right: 20px;
+            box-shadow: 2px 2px 0px #000000;
+        }
+
+        .theme-classic .bot-time {
+            color: #666666;
+            font-size: 12px;
+            text-align: center;
+            margin: 4px 0;
+        }
+
+        .theme-classic #counter {
+            color: #000000 !important;
+        }
+
+        .theme-classic .model-select-container {
+            background-color: #FFFFFF;
+            border: 2px solid #000000;
+            padding: 8px;
+            margin-bottom: 10px;
+            width: 100%;
+            box-sizing: border-box;
+            border-radius: 2px;
+            box-shadow: 2px 2px 0px #000000;
+        }
+
+        .theme-classic #model-select {
+            background-color: #FFFFFF;
+            color: #000000;
+            border: 2px solid #000000;
+            padding: 2px;
+            font-family: 'ChicagoFLF', 'Monaco', monospace;
+            font-size: 14px;
+            border-radius: 2px;
+        }
+
+        .theme-classic input[type="checkbox"] {
+            appearance: none;
+            -webkit-appearance: none;
+            width: 16px;
+            height: 16px;
+            border: 2px solid #000000;
+            background-color: #FFFFFF;
+            position: relative;
+            vertical-align: middle;
+            margin-right: 5px;
+        }
+
+        .theme-classic input[type="checkbox"]:checked::after {
+            content: '✓';
+            position: absolute;
+            left: 1px;
+            top: -2px;
+            font-size: 14px;
+        }
+
+        /* LCARS Theme */
+        body.theme-lcars {
+            font-family: "Helvetica Neue", Arial, sans-serif;
+            font-size: 18px;
+            margin: 0;
+            padding: 20px;
+            background-color: #000;
+            color: #FF9966;
+            max-width: 800px;
+            margin: 0 auto;
+            display: flex;
+            flex-direction: column;
+            align-items: center;
+            height: 100vh;
+            overflow: hidden;
+        }
+
+        .theme-lcars #chat-container {
+            background-color: #000;
+            border: none;
+            border-radius: 0;
+            padding: 1em;
+            margin: 0 auto;
+            flex: 1;
+            overflow-y: auto;
+            width: 100%;
+            max-height: 400px;
+            scroll-behavior: smooth;
+            position: relative;
+        }
+
+        .theme-lcars #chat-container::before {
+            content: '';
+            position: absolute;
+            top: 0;
+            left: 0;
+            right: 0;
+            height: 2em;
+            background: #CC6699;
+            border-radius: 20px 20px 0 0;
+        }
+
+        .theme-lcars #user-input {
+            width: 100%;
+            padding: 10px;
+            border: none;
+            background-color: #000;
+            color: #FF9966;
+            font-family: "Helvetica Neue", Arial, sans-serif;
+            font-size: 16px;
+            margin-top: 10px;
+            box-sizing: border-box;
+            border-left: 2em solid #CC6699;
+        }
+
+        .theme-lcars #send-button {
+            padding: 10px 15px;
+            background-color: #CC6699;
+            color: #000;
+            border: none;
+            cursor: pointer;
+            margin-top: 10px;
+            width: 100%;
+            font-family: "Helvetica Neue", Arial, sans-serif;
+            font-weight: bold;
+            font-size: 16px;
+            text-transform: uppercase;
+            border-radius: 0 0 20px 20px;
+        }
+
+        .theme-lcars #send-button:hover {
+            background-color: #FF9966;
+        }
+
+        .theme-lcars .message {
+            white-space: pre-wrap;
+            margin-bottom: 10px;
+            padding: 1em;
+            border: none;
+            display: block;
+            max-width: 100%;
+            position: relative;
+        }
+
+        .theme-lcars .user-message {
+            background-color: #000;
+            color: #FF9966;
+            text-align: right;
+            margin-left: 20px;
+            border-right: 1em solid #CC6699;
+        }
+
+        .theme-lcars .bot-message {
+            background-color: #000;
+            color: #99CCFF;
+            text-align: left;
+            margin-right: 20px;
+            border-left: 1em solid #9999CC;
+        }
+
+        .theme-lcars .bot-time {
+            color: #CC6699;
+            font-size: 0.8em;
+            text-align: center;
+            margin: 4px 0;
+        }
+
+        .theme-lcars #counter {
+            color: #99CCFF !important;
+        }
+
+        .theme-lcars .model-select-container {
+            background-color: #000;
+            border: none;
+            padding: 10px;
+            margin-bottom: 10px;
+            width: 100%;
+            box-sizing: border-box;
+            display: flex;
+            align-items: center;
+            border-radius: 20px;
+            position: relative;
+            overflow: hidden;
+        }
+
+        .theme-lcars .model-select-container::before {
+            content: '';
+            position: absolute;
+            top: 0;
+            left: 0;
+            bottom: 0;
+            width: 2em;
+            background: #9999CC;
+            border-radius: 20px 0 0 20px;
+        }
+
+        .theme-lcars #model-select {
+            background-color: #000;
+            color: #FF9966;
+            border: none;
+            padding: 5px;
+            margin-left: 3em;
+            font-family: "Helvetica Neue", Arial, sans-serif;
+            font-size: 16px;
+        }
+
+        .theme-lcars input[type="checkbox"] {
+            appearance: none;
+            -webkit-appearance: none;
+            width: 16px;
+            height: 16px;
+            border: 2px solid #CC6699;
+            background-color: #000;
+            position: relative;
+            vertical-align: middle;
+            margin-right: 5px;
+        }
+
+        .theme-lcars input[type="checkbox"]:checked {
+            background-color: #CC6699;
+        }
+
+        .theme-lcars input[type="checkbox"]:checked::after {
+            content: '✓';
+            position: absolute;
+            left: 2px;
+            top: -2px;
+            color: #000;
+            font-size: 14px;
+        }
+    </style>
+</head>
+<body>
+
+    <div class="model-select-container">
+        <select id="model-select"></select>
+        <label>
+            <input type="checkbox" id="retain-history" checked/> Build Context As You Chat?
+        </label>
+    </div>
+    
+    <div id="chat-container">
+        <!-- Messages will appear here -->
+    </div>
+
+    <!-- New container for user input and send button -->
+    <div id="input-container" style="width: 100%; display: flex; flex-direction: column; margin-top: 10px;">
+        <div id="counter" style="text-align: left; font-size: 0.9em; color: #555;">
+            Characters: <span id="char-count">0</span> | Words: <span id="word-count">0</span>
+        </div>
+        <textarea id="user-input" placeholder="Type your message..."></textarea>
+        <button id="send-button">Send</button>
+    </div>
+
+    <script>
+        // ==================================================
+        // MATT CHAT IS NOT A CAT
+        // This is a simple chat interface for the Ollama API
+        // ==================================================
+        //
+        // This configuration object is used to define all local variables for your needs
+        // Set the base url for the ollama api, and then list all the models you want to use
+        // The context window size is the number of previous exchanges to keep...
+        // though this is relatively naive at the moment
+
+        const config = {}
+
+        const localConfig = {
+            apiUrl: "http://localhost:11434/v1",
+            completionsEndpoint: "http://localhost:11434/v1/chat/completions",
+            modelsEndpoint: "http://localhost:11434/v1/models",
+            contextWindowSize: 6,
+            systemMessage: "You are a helpful assistant. If you don't know something you'll let me know. When possible, you should provide multiple options or variation on an answer in a straightforward way. When talking about code, especially JavaScript  that I'm an experienced JavaScript developer who prefers a functional style of programming, and using a only browser APIs and no 3rd party code unless absolutely necessary. Your name is Matt.",
+            maxTokens: 4096,
+            summarizeThreshold: 3584,
+        };
+
+        const mattConfig = {
+            apiUrl: "http://100.108.91.106:11434/v1",
+            completionsEndpoint: "http://100.108.91.106:11434/v1/chat/completions",
+            modelsEndpoint: "http://100.108.91.106:11434/v1/models",
+            contextWindowSize: 6,
+            systemMessage: "You are a helpful assistant. If you don't know something you'll let me know. Your name is Matt.",
+            maxTokens: 4096,
+            summarizeThreshold: 3584,
+        }
+
+        let conversationHistory = {
+            summary: null,
+            current: [],
+            full: []
+        };
+
+        let isCatMode = false; // Flag to track cat mode
+
+        const API_MODELS_ENDPOINT = config.modelsEndpoint;
+
+        // Add this near the top with other constants
+        const AVAILABLE_THEMES = {
+            'professional': 'Professional -- boring, like wearing a tie',
+            'molly-millions': 'Molly Millions\' manicure',
+            'cloud': 'Cloud -- it took a lot of self control not to add sound effects',
+            'classic': 'Classic -- this is not a fish',
+            'lcars': 'LCARS -- boldly going'
+        };
+
+        function handleError(message) {
+            console.error(message);
+            addMessage(message, "bot");
+        }
+
+        function showLoadingMessage() {
+            return addMessage("Loading models...", "bot");
+        }
+
+        async function populateModelSelect() {
+            const modelSelect = document.getElementById("model-select");
+            modelSelect.innerHTML = ""; // Clear existing options
+
+            const loadingMessage = showLoadingMessage();
+            const modelIds = [];
+
+            try {
+                const response = await fetch(config.modelsEndpoint);
+                if (!response.ok) throw new Error('Failed to fetch models');
+
+                const data = await response.json();
+                console.log("API Response:", data);
+
+                if (Array.isArray(data.data)) {
+                    data.data.forEach(model => {
+                        const option = document.createElement("option");
+                        option.value = model.id;
+                        option.textContent = model.id;
+                        modelSelect.appendChild(option);
+                        modelIds.push(model.id);
+                    });
+                    console.log("Model IDs:", modelIds);
+                } else {
+                    handleError("Expected an array of models, but got: " + JSON.stringify(data));
+                }
+            } catch (error) {
+                handleError("Error fetching models: " + error.message);
+            } finally {
+                loadingMessage.remove();
+                if (modelIds.length > 0) {
+                    addMessage(`Models loaded successfully! Ready to chat.\n\nAvailable models: ${modelIds.join(', ')}`, "bot");
+                } else {
+                    addMessage("No models available to chat.", "bot");
+                }
+            }
+        }
+
+        document.addEventListener("DOMContentLoaded", () => {
+            populateModelSelect();
+            const modelSelect = document.getElementById("model-select");
+            const savedModel = localStorage.getItem("selectedModel");
+            if (savedModel) {
+                modelSelect.value = savedModel;
+            }
+            modelSelect.addEventListener("change", () => {
+                localStorage.setItem("selectedModel", modelSelect.value);
+            });
+            const savedTheme = localStorage.getItem('selectedTheme') || 'professional';
+            switchTheme(savedTheme);
+        });
+
+        function addMessage(message, sender = "user") {
+            const chatContainer = document.getElementById("chat-container");
+            const messageElement = document.createElement("div");
+            messageElement.classList.add("message", sender === "user" ? "user-message" : "bot-message");
+            messageElement.textContent = message;
+            chatContainer.appendChild(messageElement);
+            messageElement.scrollIntoView({ behavior: "smooth", block: "end" });
+            chatContainer.scrollTop = chatContainer.scrollHeight; // Make sure the chat is scrolled to the bottom
+            return messageElement; // Return the message element so it is easier to use
+        }
+
+        // Fancy format milliseconds into a more readable format
+        function formatDuration(duration) {
+            const minutes = Math.floor(duration / (1000 * 60));
+            const seconds = Math.floor((duration % (1000 * 60)) / 1000);
+            const milliseconds = duration % 1000;
+            
+            if (minutes > 0) {
+                return `${minutes}m ${seconds}.${Math.floor(milliseconds / 10)}s`;
+            }
+            return `${seconds}.${Math.floor(milliseconds / 10)}s`;
+        }
+
+        // Character and word counter
+        function updateCounter() {
+            const userInput = document.getElementById("user-input");
+            const charCount = document.getElementById("char-count");
+            const wordCount = document.getElementById("word-count");
+
+            const text = userInput.value;
+            const characters = text.length;
+            const words = text.trim() ? text.trim().split(/\s+/).length : 0; // Count words
+
+            charCount.textContent = characters;
+            wordCount.textContent = words;
+        }
+
+        // Event listener to update the counter on input
+        document.getElementById("user-input").addEventListener("input", updateCounter);
+
+        function toggleCatMode() {
+            isCatMode = !isCatMode; // Toggle the flag
+            if (isCatMode) {
+                config.systemMessage += " You are a cat."; // Append the phrase
+            } else {
+                config.systemMessage = config.systemMessage.replace(" You are a large, fluffy cat. You are a little aloof, but kind.", ""); // Remove the phrase
+            }
+            addMessage(`Cat mode is now ${isCatMode ? "enabled" : "disabled"}.`, "bot"); // Inform the user
+        }
+
+        async function sendMessage() {
+            const userInput = document.getElementById("user-input");
+            const userMessage = userInput.value.trim();
+
+            if (!userMessage) return;
+
+            // Check for slash commands
+            if (userMessage.toLowerCase() === '/dark' || userMessage.toLowerCase() === '/darkmode') {
+                toggleDarkMode();
+                userInput.value = ""; // Clear input after command
+                updateCounter(); // Reset counters
+                return;
+            }
+
+            if (userMessage.toLowerCase() === '/clear') {
+                clearChat();
+                userInput.value = ""; // Clear input after command
+                updateCounter(); // Reset counters
+                return;
+            }
+
+            if (userMessage.toLowerCase() === '/help') {
+                displayHelp();
+                userInput.value = ""; // Clear input after command
+                updateCounter(); // Reset counters
+                return;
+            }
+
+            if (userMessage.toLowerCase() === '/cat' || userMessage.toLowerCase() === '/catmode') {
+                toggleCatMode(); // Toggle cat mode
+                userInput.value = ""; // Clear input after command
+                updateCounter(); // Reset counters
+                return;
+            }
+
+            if (userMessage.toLowerCase() === '/context') {
+                const context = viewCurrentContext();
+                addMessage(`Current conversation has ${context.currentMessages} messages\nEstimated tokens: ${context.estimatedTokens}`, "bot");
+                return;
+            }
+
+            if (userMessage.toLowerCase().startsWith('/theme')) {
+                const requestedTheme = userMessage.toLowerCase().split(' ')[1];
+                if (!requestedTheme) {
+                    // If no theme is specified, lets show all available themes
+                    addMessage(`Available themes: ${Object.keys(AVAILABLE_THEMES).join(', ')}`, "bot");
+                } else if (AVAILABLE_THEMES[requestedTheme]) {
+                    switchTheme(requestedTheme);
+                } else {
+                    addMessage(`Unknown theme. Available themes: ${Object.keys(AVAILABLE_THEMES).join(', ')}`, "bot");
+                }
+                userInput.value = "";
+                updateCounter();
+                return;
+            }
+
+            if (userMessage.toLowerCase() === '/matt') {
+                Object.assign(config, mattConfig);
+                addMessage("Switched to Matt's config", "bot");
+                userInput.value = "";
+                updateCounter();
+                populateModelSelect(); // Refresh the model list for the new endpoint
+                return;
+            }
+
+            if (userMessage.toLowerCase() === '/local') {
+                Object.assign(config, localConfig);
+                addMessage("Switched to local config", "bot");
+                userInput.value = "";
+                updateCounter();
+                populateModelSelect(); // Refresh the model list for the new endpoint
+                return;
+            }
+
+            addMessage(userMessage, "user");
+            userInput.value = ""; // Clear input after sending the message
+            
+            // Reset the counter
+            document.getElementById("char-count").textContent = "0";
+            document.getElementById("word-count").textContent = "0";
+
+            // Create and add loading indicator
+            const loadingIndicator = document.createElement("div");
+            loadingIndicator.id = "loading-indicator";
+            loadingIndicator.classList.add("message", "bot-message");
+            loadingIndicator.textContent = "...";
+            document.getElementById("chat-container").appendChild(loadingIndicator);
+            scrollToBottom();
+
+            // Start animation for this specific indicator
+            const animationInterval = animateLoadingIndicator(loadingIndicator);
+
+            const startTime = Date.now(); // Capture the start time
+
+            try {
+                const modelSelect = document.getElementById("model-select");
+                const selectedModel = modelSelect.value;
+                const retainHistory = document.getElementById("retain-history").checked; // Check the checkbox state
+
+                // Prepare the messages for the API
+                const messagesToSend = await prepareMessages(userMessage);
+
+                const response = await fetch(config.completionsEndpoint, {
+                    method: "POST",
+                    headers: {
+                        "Content-Type": "application/json",
+                    },
+                    body: JSON.stringify({
+                        model: selectedModel,
+                        messages: messagesToSend,
+                    }),
+                });
+
+                if (!response.ok) {
+                    throw new Error('Error communicating with Ollama API');
+                }
+
+                const data = await response.json();
+                console.log("API Response:", data);
+
+                if (data.choices && data.choices.length > 0) {
+                    const botResponse = data.choices[0].message.content;
+                    
+                    // Clear loading indicator
+                    clearInterval(animationInterval);
+                    loadingIndicator.remove();
+                    
+                    // Add bot's response to chat and history
+                    addMessage(botResponse, "bot");
+                    conversationHistory.current.push({ role: "assistant", content: botResponse });
+
+                    // Calculate and display duration
+                    const duration = Date.now() - startTime;
+                    const timeTakenMessage = formatDuration(duration);
+                    const timeDisplay = document.createElement("div");
+                    timeDisplay.classList.add("bot-time");
+                    timeDisplay.textContent = `Response time: ${timeTakenMessage}`;
+                    document.getElementById("chat-container").appendChild(timeDisplay);
+                    scrollToBottom();
+
+                } else {
+                    console.error("No response from API");
+                    loadingIndicator.remove();
+                    addMessage("Sorry, I didn't get a response from the assistant.", "bot");
+                }
+
+                if (conversationHistory.current.length > 10) {
+                    conversationHistory.current.shift(); // Remove the oldest message
+                }
+
+            } catch (error) {
+                console.error("Error:", error);
+                clearInterval(animationInterval);
+                loadingIndicator.remove();
+                addMessage("Sorry, there was an error processing your request.", "bot");
+            }
+        }
+
+        function animateLoadingIndicator(indicator) {
+            let dots = 0;
+            return setInterval(() => {
+                dots = (dots + 1) % 6;
+                if (indicator && document.contains(indicator)) {
+                    indicator.textContent = '.'.repeat(dots || 1);
+                }
+            }, 500);
+        }
+
+        document.getElementById("send-button").addEventListener("click", sendMessage);
+
+        document.getElementById("user-input").addEventListener("keypress", function (e) {
+            if (e.key === "Enter") {
+                e.preventDefault(); // Prevent line break
+                sendMessage();
+            }
+        });
+
+        function toggleDarkMode() {
+            const body = document.body;
+            const chatContainer = document.getElementById("chat-container");
+            const userInput = document.getElementById("user-input");
+            const sendButton = document.getElementById("send-button");
+
+            body.classList.toggle("dark-mode");
+            chatContainer.classList.toggle("dark-mode");
+            userInput.classList.toggle("dark-mode");
+            sendButton.classList.toggle("dark-mode");
+
+            // Update message classes
+            const messages = document.querySelectorAll(".message");
+            messages.forEach(message => {
+                message.classList.toggle("dark-mode");
+            });
+
+            // Save preference to local storage
+            const isDarkMode = body.classList.contains("dark-mode");
+            localStorage.setItem("darkMode", isDarkMode);
+        }
+
+        // Load dark mode preference from local storage on page load
+        document.addEventListener("DOMContentLoaded", () => {
+            const darkModePreference = localStorage.getItem("darkMode");
+            if (darkModePreference === "true") {
+                toggleDarkMode(); // Activate dark mode if preference is set
+            }
+        });
+
+        function clearChat() {
+            const chatContainer = document.getElementById("chat-container");
+            chatContainer.innerHTML = "";
+            conversationHistory = {
+                summary: null,
+                current: [],
+                full: []
+            };
+        }
+
+        function displayHelp() {
+            const helpMessage = `
+Available commands:\n
+  /dark - Toggle dark mode when using the professional theme
+  /cat - Toggle cat mode
+  /context - Show the current conversation's context
+  /clear - Clear the chat history
+  /help - Show this message
+  /theme [theme-name] - Switch theme (available themes: ${Object.keys(AVAILABLE_THEMES).join(', ')})
+      without a theme name, this will show all available themes, too
+  /local - Switch to local Ollama instance
+  /matt - Switch to Matt's Ollama instance
+            `;
+            addMessage(helpMessage, "bot");
+        }
+
+        function estimateTokens(text) {
+            // Rough estimation: ~4 chars per token for English text
+            return Math.ceil(text.length / 4);
+        }
+
+        function getContextSize(messages) {
+            return messages.reduce((sum, msg) => sum + estimateTokens(msg.content), 0);
+        }
+
+        async function summarizeConversation(messages) {
+            try {
+                const modelSelect = document.getElementById("model-select");
+                const selectedModel = modelSelect.value;
+
+                const response = await fetch(config.completionsEndpoint, {
+                    method: "POST",
+                    headers: {
+                        "Content-Type": "application/json",
+                    },
+                    body: JSON.stringify({
+                        model: selectedModel,
+                        messages: messages,
+                    }),
+                });
+
+                const data = await response.json();
+                return data.choices[0].message.content;
+            } catch (error) {
+                console.error("Error summarizing conversation:", error);
+                return null;
+            }
+        }
+
+        async function prepareMessages(userMessage) {
+            const messages = [];
+            
+            // Always start with system message
+            messages.push({ role: "system", content: config.systemMessage });
+            
+            if (document.getElementById("retain-history").checked) {
+                // If we have a summary, add it more naturally
+                if (conversationHistory.summary) {
+                    messages.push({
+                        role: "system",
+                        content: `Previous discussion: ${conversationHistory.summary}`
+                    });
+                }
+                
+                // Add current conversation segment
+                messages.push(...conversationHistory.current);
+            }
+            
+            // Add the new message to history before we check for summarization
+            const newMessage = { role: "user", content: userMessage };
+            conversationHistory.current.push(newMessage);
+            messages.push(newMessage);
+            
+            // Do we need to summarize?
+            const totalTokens = getContextSize(messages);
+            if (totalTokens > config.summarizeThreshold) {
+                // Move current messages to full history, except for the newest message
+                conversationHistory.full.push(...conversationHistory.current.slice(0, -1));
+                
+                // Supposedly this is a more natural summarization prompt...
+                const summary = await summarizeConversation([
+                    {
+                        role: "system",
+                        content: "Summarize this conversation's key points and context that would be important for continuing the discussion naturally. Be concise but maintain essential details."
+                    },
+                    ...conversationHistory.full
+                ]);
+                
+                if (summary) {
+                    conversationHistory.summary = summary;
+                    // Keep only the most recent messages for immediate context
+                    conversationHistory.current = conversationHistory.current.slice(-4);
+                    
+                    // Rebuild messages array with new summary
+                    return [
+                        { role: "system", content: config.systemMessage },
+                        { role: "system", content: `Previous discussion: ${summary}` },
+                        ...conversationHistory.current
+                    ];
+                }
+            }
+            
+            return messages;
+        }
+
+        // Clean up old messages periodically
+        function pruneConversationHistory() {
+            if (conversationHistory.full.length > 100) {
+                // Keep only the last 100 messages in full history
+                conversationHistory.full = conversationHistory.full.slice(-100);
+            }
+        }
+
+        // Call this after successful responses
+        setInterval(pruneConversationHistory, 60000); // Clean up every minute
+
+        function viewCurrentContext() {
+            const context = {
+                summary: conversationHistory.summary,
+                currentMessages: conversationHistory.current.length,
+                fullHistoryMessages: conversationHistory.full.length,
+                estimatedTokens: getContextSize(conversationHistory.current)
+            };
+            console.log("Current Context:", context);
+            return context;
+        }
+
+        function scrollToBottom() {
+            const chatContainer = document.getElementById("chat-container");
+            chatContainer.scrollTop = chatContainer.scrollHeight;
+        }
+
+        function switchTheme(themeName) {
+            // Remove all theme classes
+            Object.keys(AVAILABLE_THEMES).forEach(theme => {
+                document.body.classList.remove(`theme-${theme}`);
+            });
+            
+            // Add the new theme class
+            document.body.classList.add(`theme-${themeName}`);
+            
+            // Update meta theme-color
+            const metaThemeColor = document.querySelector('meta[name="theme-color"]');
+            if (metaThemeColor) {
+                switch(themeName) {
+                    case 'molly-millions':
+                        metaThemeColor.setAttribute('content', '#00ff00');
+                        break;
+                    case 'cloud':
+                        metaThemeColor.setAttribute('content', '#4080ff');
+                        break;
+                    case 'classic':
+                        metaThemeColor.setAttribute('content', '#DDDDDD');
+                        break;
+                    case 'lcars':
+                        metaThemeColor.setAttribute('content', '#CC6699');
+                        break;
+                    case 'professional':
+                    default:
+                        metaThemeColor.setAttribute('content', '#007BFF');
+                        break;
+                }
+            }
+            
+            localStorage.setItem('selectedTheme', themeName);            
+            addMessage(`Theme switched to: ${AVAILABLE_THEMES[themeName]}`, "bot");
+        }
+
+        // Initialize with localConfig
+        Object.assign(config, localConfig);
+    </script>
+</body>
+</html>
diff --git a/html/matt-chat/pokemon.js b/html/matt-chat/pokemon.js
new file mode 100644
index 0000000..e707e7b
--- /dev/null
+++ b/html/matt-chat/pokemon.js
@@ -0,0 +1,157 @@
+// Pokemon API functionality using functional programming approach
+
+// Base URL for the PokeAPI
+const POKE_API_BASE = 'https://pokeapi.co/api/v2';
+
+// Utility function to fetch data from the API
+const fetchPokeData = async (endpoint) => {
+    try {
+        const response = await fetch(`${POKE_API_BASE}${endpoint}`);
+        if (!response.ok) throw new Error(`HTTP error! status: ${response.status}`);
+        return await response.json();
+    } catch (error) {
+        console.error('Error fetching Pokemon data:', error);
+        throw error;
+    }
+};
+
+// Function to get Pokemon basic info
+const getPokemonInfo = async (pokemonName) => {
+    try {
+        const data = await fetchPokeData(`/pokemon/${pokemonName.toLowerCase()}`);
+        return {
+            name: data.name,
+            id: data.id,
+            types: data.types.map(type => type.type.name),
+            abilities: data.abilities.map(ability => ({
+                name: ability.ability.name,
+                isHidden: ability.is_hidden
+            })),
+            stats: data.stats.map(stat => ({
+                name: stat.stat.name,
+                value: stat.base_stat
+            })),
+            height: data.height / 10, // Convert to meters
+            weight: data.weight / 10, // Convert to kilograms
+            sprite: data.sprites.front_default
+        };
+    } catch (error) {
+        throw new Error(`Could not find Pokemon: ${pokemonName}`);
+    }
+};
+
+// Function to get ability details
+const getAbilityInfo = async (abilityName) => {
+    try {
+        const data = await fetchPokeData(`/ability/${abilityName.toLowerCase()}`);
+        return {
+            name: data.name,
+            effect: data.effect_entries.find(e => e.language.name === 'en')?.effect || 'No effect description available.',
+            pokemon: data.pokemon.map(p => p.pokemon.name)
+        };
+    } catch (error) {
+        throw new Error(`Could not find ability: ${abilityName}`);
+    }
+};
+
+// Function to get move details
+const getMoveInfo = async (moveName) => {
+    try {
+        const data = await fetchPokeData(`/move/${moveName.toLowerCase()}`);
+        return {
+            name: data.name,
+            type: data.type.name,
+            power: data.power,
+            accuracy: data.accuracy,
+            pp: data.pp,
+            effect: data.effect_entries.find(e => e.language.name === 'en')?.effect || 'No effect description available.'
+        };
+    } catch (error) {
+        throw new Error(`Could not find move: ${moveName}`);
+    }
+};
+
+const getEvolutionInfo = async (pokemonName) => {
+    const data = await fetchPokeData(`/pokemon-species/${pokemonName.toLowerCase()}`);
+    return data.evolution_chain;
+};
+
+// Function to format Pokemon info into a readable message
+const formatPokemonInfo = (info) => {
+    const spriteImage = info.sprite ? `<img src="${info.sprite}" alt="${info.name} sprite" style="width: 100px; height: auto;" />` : '';
+    return `
+🔍 Pokemon: ${info.name.toUpperCase()} (#${info.id})
+📊 Types: ${info.types.join(', ')}
+💪 Abilities: ${info.abilities.map(a => `${a.name}${a.isHidden ? ' (Hidden)' : ''}`).join(', ')}
+📈 Stats:
+${info.stats.map(s => `  ${s.name}: ${s.value}`).join('\n')}
+📏 Height: ${info.height}m
+⚖️ Weight: ${info.weight}kg
+${spriteImage}
+    `.trim();
+};
+
+// Function to format ability info into a readable message
+const formatAbilityInfo = (info) => {
+    return `
+🔰 Ability: ${info.name.toUpperCase()}
+📝 Effect: ${info.effect}
+✨ Pokemon with this ability: ${info.pokemon.join(', ')}
+    `.trim();
+};
+
+// Function to format move info into a readable message
+const formatMoveInfo = (info) => {
+    return `
+⚔️ Move: ${info.name.toUpperCase()}
+🎯 Type: ${info.type}
+💥 Power: ${info.power || 'N/A'}
+🎲 Accuracy: ${info.accuracy || 'N/A'}
+🔄 PP: ${info.pp}
+📝 Effect: ${info.effect}
+    `.trim();
+};
+
+const formatEvolutionInfo = (info) => {
+    return `
+🔗 Evolution Chain: ${info.name.toUpperCase()}
+    `.trim();
+};
+
+// Main handler for Pokemon commands
+const handlePokemonCommand = async (args) => {
+    if (!args.length) {
+        return "Usage: /pokemon [pokemon|ability|move] [name]";
+    }
+
+    const [type, ...nameArgs] = args;
+    const name = nameArgs.join(' ').replace(/\s+/g, '-'); // Replace spaces with hyphens
+
+    if (!name) {
+        return "Please provide a name to search for.";
+    }
+
+    try {
+        switch (type.toLowerCase()) {
+            case 'pokemon':
+                const pokemonInfo = await getPokemonInfo(name);
+                return formatPokemonInfo(pokemonInfo);
+            case 'ability':
+                const abilityInfo = await getAbilityInfo(name);
+                return formatAbilityInfo(abilityInfo);
+            case 'move':
+                const moveInfo = await getMoveInfo(name);
+                return formatMoveInfo(moveInfo);
+            case 'evolution-chain':
+                const evolutionInfo = await getEvolutionInfo(name);
+                return formatEvolutionInfo(evolutionInfo);
+            default:
+                return "Invalid type. Use: pokemon, ability, or move.";
+        }
+    } catch (error) {
+        return `Error: ${error.message}`;
+    }
+};
+
+// Export the handler for use in main application
+export { handlePokemonCommand }; 
\ No newline at end of file
diff --git a/html/matt-chat/server.sh b/html/matt-chat/server.sh
new file mode 100755
index 0000000..b294acd
--- /dev/null
+++ b/html/matt-chat/server.sh
@@ -0,0 +1,23 @@
+#!/bin/bash
+
+# check that the ollama server is running, if it isn't, start it in the background and continue with the script
+if ! pgrep -f ollama; then
+    ollama start &
+fi
+
+# check that port 38478 is free
+if lsof -i :38478; then
+    echo "Port 38478 is already in use. Please choose a different port."
+    exit 1
+fi
+
+# Start a simple HTTP server using Python on port 38478 and run it in the background
+python3 -m http.server 38478 &
+
+
+#   nvim ~/Library/LaunchAgents/com.user.server.plist
+#   cp com.user.server.plist ~/Library/LaunchAgents/
+#   launchctl load ~/Library/LaunchAgents/com.user.server.plist
+#   launchctl start com.user.server
+#   launchctl list | grep com.user.server
+#   launchctl unload ~/Library/LaunchAgents/com.user.server.plist
\ No newline at end of file
diff --git a/html/matt-chat/uswds/css/uswds.css b/html/matt-chat/uswds/css/uswds.css
new file mode 100644
index 0000000..68fc8c0
--- /dev/null
+++ b/html/matt-chat/uswds/css/uswds.css
@@ -0,0 +1,30073 @@
+@charset "UTF-8";
+/*! uswds v3.11.0 */
+html{
+  line-height:1.15;
+  -webkit-text-size-adjust:100%;
+}
+body{
+  margin:0;
+}
+h1{
+  font-size:2em;
+  margin:0.67em 0;
+}
+hr{
+  box-sizing:content-box;
+  height:0;
+  color:inherit;
+}
+pre{
+  font-family:monospace, monospace;
+  font-size:1em;
+}
+abbr[title]{
+  text-decoration:underline;
+  -webkit-text-decoration:underline dotted;
+          text-decoration:underline dotted;
+}
+b,
+strong{
+  font-weight:bolder;
+}
+code,
+kbd,
+samp{
+  font-family:monospace, monospace;
+  font-size:1em;
+}
+small{
+  font-size:80%;
+}
+sub,
+sup{
+  font-size:75%;
+  line-height:0;
+  position:relative;
+  vertical-align:baseline;
+}
+
+sub{
+  bottom:-0.25em;
+}
+
+sup{
+  top:-0.5em;
+}
+button,
+input,
+optgroup,
+select,
+textarea{
+  font-family:inherit;
+  font-size:100%;
+  line-height:1.15;
+  margin:0;
+}
+button,
+select{
+  text-transform:none;
+}
+button,
+[type=button],
+[type=reset],
+[type=submit]{
+  -webkit-appearance:button;
+}
+button::-moz-focus-inner,
+[type=button]::-moz-focus-inner,
+[type=reset]::-moz-focus-inner,
+[type=submit]::-moz-focus-inner{
+  border-style:none;
+  padding:0;
+}
+button:-moz-focusring,
+[type=button]:-moz-focusring,
+[type=reset]:-moz-focusring,
+[type=submit]:-moz-focusring{
+  outline:1px dotted ButtonText;
+}
+legend{
+  padding:0;
+}
+progress{
+  vertical-align:baseline;
+}
+::-webkit-inner-spin-button,
+::-webkit-outer-spin-button{
+  height:auto;
+}
+[type=search]{
+  -webkit-appearance:textfield;
+  outline-offset:-2px;
+}
+::-webkit-search-decoration{
+  -webkit-appearance:none;
+}
+::-webkit-file-upload-button{
+  -webkit-appearance:button;
+  font:inherit;
+}
+summary{
+  display:list-item;
+}
+.usa-textarea, .usa-range, .usa-radio__label, .usa-input-group, .usa-hint, .usa-combo-box__input, .usa-combo-box__list, .usa-select, .usa-checkbox__label, .usa-fieldset, .usa-input{
+  font-family:Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
+  font-size:1.06rem;
+  line-height:1.3;
+}
+
+.usa-textarea, .usa-range, .usa-input-group, .usa-combo-box__input, .usa-select, .usa-input{
+  border-width:1px;
+  border-color:#565c65;
+  border-style:solid;
+  -webkit-appearance:none;
+     -moz-appearance:none;
+          appearance:none;
+  border-radius:0;
+  color:#1b1b1b;
+  display:block;
+  height:2.5rem;
+  margin-top:0.5rem;
+  max-width:30rem;
+  padding:0.5rem;
+  width:100%;
+}
+@font-face{
+  font-family:"Roboto Mono Web";
+  font-style:normal;
+  font-weight:300;
+  font-display:fallback;
+  src:url(../fonts/roboto-mono/roboto-mono-v5-latin-300.woff2) format("woff2");
+}
+@font-face{
+  font-family:"Roboto Mono Web";
+  font-style:normal;
+  font-weight:400;
+  font-display:fallback;
+  src:url(../fonts/roboto-mono/roboto-mono-v5-latin-regular.woff2) format("woff2");
+}
+@font-face{
+  font-family:"Roboto Mono Web";
+  font-style:normal;
+  font-weight:700;
+  font-display:fallback;
+  src:url(../fonts/roboto-mono/roboto-mono-v5-latin-700.woff2) format("woff2");
+}
+@font-face{
+  font-family:"Roboto Mono Web";
+  font-style:italic;
+  font-weight:300;
+  font-display:fallback;
+  src:url(../fonts/roboto-mono/roboto-mono-v5-latin-300italic.woff2) format("woff2");
+}
+@font-face{
+  font-family:"Roboto Mono Web";
+  font-style:italic;
+  font-weight:400;
+  font-display:fallback;
+  src:url(../fonts/roboto-mono/roboto-mono-v5-latin-italic.woff2) format("woff2");
+}
+@font-face{
+  font-family:"Roboto Mono Web";
+  font-style:italic;
+  font-weight:700;
+  font-display:fallback;
+  src:url(../fonts/roboto-mono/roboto-mono-v5-latin-700italic.woff2) format("woff2");
+}
+@font-face{
+  font-family:"Source Sans Pro Web";
+  font-style:normal;
+  font-weight:300;
+  font-display:fallback;
+  src:url(../fonts/source-sans-pro/sourcesanspro-light-webfont.woff2) format("woff2");
+}
+@font-face{
+  font-family:"Source Sans Pro Web";
+  font-style:normal;
+  font-weight:400;
+  font-display:fallback;
+  src:url(../fonts/source-sans-pro/sourcesanspro-regular-webfont.woff2) format("woff2");
+}
+@font-face{
+  font-family:"Source Sans Pro Web";
+  font-style:normal;
+  font-weight:700;
+  font-display:fallback;
+  src:url(../fonts/source-sans-pro/sourcesanspro-bold-webfont.woff2) format("woff2");
+}
+@font-face{
+  font-family:"Source Sans Pro Web";
+  font-style:italic;
+  font-weight:300;
+  font-display:fallback;
+  src:url(../fonts/source-sans-pro/sourcesanspro-lightitalic-webfont.woff2) format("woff2");
+}
+@font-face{
+  font-family:"Source Sans Pro Web";
+  font-style:italic;
+  font-weight:400;
+  font-display:fallback;
+  src:url(../fonts/source-sans-pro/sourcesanspro-italic-webfont.woff2) format("woff2");
+}
+@font-face{
+  font-family:"Source Sans Pro Web";
+  font-style:italic;
+  font-weight:700;
+  font-display:fallback;
+  src:url(../fonts/source-sans-pro/sourcesanspro-bolditalic-webfont.woff2) format("woff2");
+}
+@font-face{
+  font-family:"Merriweather Web";
+  font-style:normal;
+  font-weight:300;
+  font-display:fallback;
+  src:url(../fonts/merriweather/Latin-Merriweather-Light.woff2) format("woff2");
+}
+@font-face{
+  font-family:"Merriweather Web";
+  font-style:normal;
+  font-weight:400;
+  font-display:fallback;
+  src:url(../fonts/merriweather/Latin-Merriweather-Regular.woff2) format("woff2");
+}
+@font-face{
+  font-family:"Merriweather Web";
+  font-style:normal;
+  font-weight:700;
+  font-display:fallback;
+  src:url(../fonts/merriweather/Latin-Merriweather-Bold.woff2) format("woff2");
+}
+@font-face{
+  font-family:"Merriweather Web";
+  font-style:italic;
+  font-weight:300;
+  font-display:fallback;
+  src:url(../fonts/merriweather/Latin-Merriweather-LightItalic.woff2) format("woff2");
+}
+@font-face{
+  font-family:"Merriweather Web";
+  font-style:italic;
+  font-weight:400;
+  font-display:fallback;
+  src:url(../fonts/merriweather/Latin-Merriweather-Italic.woff2) format("woff2");
+}
+@font-face{
+  font-family:"Merriweather Web";
+  font-style:italic;
+  font-weight:700;
+  font-display:fallback;
+  src:url(../fonts/merriweather/Latin-Merriweather-BoldItalic.woff2) format("woff2");
+}
+body{
+  color:#1b1b1b;
+  background-color:white;
+  overflow-x:hidden;
+}
+
+input:not([disabled]):focus,
+select:not([disabled]):focus,
+textarea:not([disabled]):focus,
+button:not([disabled]):focus{
+  outline:0.25rem solid #2491ff;
+  outline-offset:0rem;
+}
+
+iframe:focus,
+[href]:focus,
+[tabindex]:focus,
+[contentEditable=true]:focus{
+  outline:0.25rem solid #2491ff;
+  outline-offset:0rem;
+}
+
+img{
+  max-width:100%;
+}
+
+.usa-media-link{
+  display:inline-block;
+  line-height:0;
+}
+
+html{
+  box-sizing:border-box;
+}
+
+*,
+*::before,
+*::after{
+  box-sizing:inherit;
+}
+
+html{
+  font-feature-settings:"kern" 1;
+  font-kerning:normal;
+  font-family:Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
+  font-size:100%;
+}
+
+cite,
+var,
+address,
+dfn{
+  font-style:normal;
+}
+
+.usa-focus{
+  outline:0.25rem solid #2491ff;
+  outline-offset:0rem;
+}
+
+.usa-sr-only{
+  position:absolute;
+  left:-999em;
+  right:auto;
+}
+
+.usa-content p,
+.usa-content ul:not(.usa-accordion):not(.usa-accordion--bordered),
+.usa-content ol:not(.usa-accordion):not(.usa-accordion--bordered){
+  max-width:68ex;
+}
+
+.usa-dark-background{
+  background-color:#3d4551;
+}
+.usa-dark-background p,
+.usa-dark-background span{
+  color:white;
+}
+.usa-dark-background a{
+  color:#dfe1e2;
+}
+.usa-dark-background a:visited{
+  color:#dfe1e2;
+}
+.usa-dark-background a:hover, .usa-dark-background a:active{
+  color:#f0f0f0;
+}
+
+.usa-display{
+  margin-bottom:0;
+  margin-top:0;
+  clear:both;
+  font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+  font-size:1.34rem;
+  line-height:1.2;
+  font-weight:700;
+  margin-bottom:0;
+}
+* + .usa-display{
+  margin-top:1.5em;
+}
+.usa-display + *{
+  margin-top:1em;
+}
+@media all and (min-width: 30em){
+  .usa-display{
+    margin-bottom:0;
+    margin-top:0;
+    clear:both;
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:2.44rem;
+    line-height:1.2;
+    font-weight:700;
+  }
+  * + .usa-display{
+    margin-top:1.5em;
+  }
+  .usa-display + *{
+    margin-top:1em;
+  }
+}
+@media all and (min-width: 40em){
+  .usa-display{
+    margin-bottom:0;
+    margin-top:0;
+    clear:both;
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:2.93rem;
+    line-height:1.2;
+    font-weight:700;
+  }
+  * + .usa-display{
+    margin-top:1.5em;
+  }
+  .usa-display + *{
+    margin-top:1em;
+  }
+}
+
+.usa-intro{
+  font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+  font-size:1.34rem;
+  line-height:1.8;
+  font-weight:400;
+  max-width:88ex;
+}
+
+.usa-icon{
+  display:inline-block;
+  fill:currentColor;
+  height:1em;
+  position:relative;
+  width:1em;
+}
+
+.usa-icon--size-3{
+  height:1.5rem;
+  width:1.5rem;
+}
+
+.usa-icon--size-4{
+  height:2rem;
+  width:2rem;
+}
+
+.usa-icon--size-5{
+  height:2.5rem;
+  width:2.5rem;
+}
+
+.usa-icon--size-6{
+  height:3rem;
+  width:3rem;
+}
+
+.usa-icon--size-7{
+  height:3.5rem;
+  width:3.5rem;
+}
+
+.usa-icon--size-8{
+  height:4rem;
+  width:4rem;
+}
+
+.usa-icon--size-9{
+  height:4.5rem;
+  width:4.5rem;
+}
+
+.usa-link{
+  color:#005ea2;
+  text-decoration:underline;
+}
+.usa-link:visited{
+  color:#54278f;
+}
+.usa-link:hover{
+  color:#1a4480;
+}
+.usa-link:active{
+  color:#162e51;
+}
+.usa-link:focus{
+  outline:0.25rem solid #2491ff;
+  outline-offset:0rem;
+}
+
+.usa-link--external{
+  display:inline;
+}
+.usa-link--external::before{
+  position:absolute;
+  left:-999em;
+  right:auto;
+  content:"External.";
+}
+.usa-link--external[target=_blank]::before{
+  position:absolute;
+  left:-999em;
+  right:auto;
+  content:"External, opens in a new tab.";
+}
+.usa-link--external::after{
+  background-image:url("../img/usa-icons/launch.svg");
+  background-repeat:no-repeat;
+  background-position:center center;
+  background-size:1.75ex 1.75ex;
+  display:inline-block;
+  height:1.75ex;
+  width:1.75ex;
+  content:"";
+  display:inline;
+  margin-top:0.7ex;
+  margin-left:2px;
+  padding-left:1.75ex;
+  vertical-align:middle;
+}
+@supports ((-webkit-mask: url("")) or (mask: url(""))){
+  .usa-link--external::after{
+    background:none;
+    background-color:currentColor;
+    -webkit-mask-image:url("../img/usa-icons/launch.svg"), linear-gradient(transparent, transparent);
+            mask-image:url("../img/usa-icons/launch.svg"), linear-gradient(transparent, transparent);
+    -webkit-mask-position:center center;
+            mask-position:center center;
+    -webkit-mask-repeat:no-repeat;
+            mask-repeat:no-repeat;
+    -webkit-mask-size:1.75ex 1.75ex;
+            mask-size:1.75ex 1.75ex;
+  }
+}
+.usa-link--external.usa-link--alt{
+  display:inline;
+}
+.usa-link--external.usa-link--alt::before{
+  position:absolute;
+  left:-999em;
+  right:auto;
+  content:"External.";
+}
+.usa-link--external.usa-link--alt[target=_blank]::before{
+  position:absolute;
+  left:-999em;
+  right:auto;
+  content:"External, opens in a new tab.";
+}
+.usa-link--external.usa-link--alt::after{
+  background-image:url("../img/usa-icons-bg/launch--white.svg");
+  background-repeat:no-repeat;
+  background-position:center center;
+  background-size:1.75ex 1.75ex;
+  display:inline-block;
+  height:1.75ex;
+  width:1.75ex;
+  content:"";
+  display:inline;
+  margin-top:0.7ex;
+  margin-left:2px;
+  padding-left:1.75ex;
+  vertical-align:middle;
+}
+@supports ((-webkit-mask: url("")) or (mask: url(""))){
+  .usa-link--external.usa-link--alt::after{
+    background:none;
+    background-color:currentColor;
+    -webkit-mask-image:url("../img/usa-icons/launch.svg"), linear-gradient(transparent, transparent);
+            mask-image:url("../img/usa-icons/launch.svg"), linear-gradient(transparent, transparent);
+    -webkit-mask-position:center center;
+            mask-position:center center;
+    -webkit-mask-repeat:no-repeat;
+            mask-repeat:no-repeat;
+    -webkit-mask-size:1.75ex 1.75ex;
+            mask-size:1.75ex 1.75ex;
+  }
+}
+
+.usa-list{
+  margin-bottom:1em;
+  margin-top:1em;
+  line-height:1.5;
+  padding-left:3ch;
+}
+.usa-list:last-child{
+  margin-bottom:0;
+}
+.usa-list ul,
+.usa-list ol{
+  margin-top:0.25em;
+}
+.usa-list li{
+  margin-bottom:0.25em;
+  max-width:68ex;
+}
+.usa-list li:last-child{
+  margin-bottom:0;
+}
+
+.usa-list--unstyled{
+  margin-bottom:0;
+  margin-top:0;
+  list-style-type:none;
+  padding-left:0;
+}
+.usa-list--unstyled > li{
+  margin-bottom:0;
+  max-width:unset;
+}
+
+.usa-prose .usa-list--unstyled{
+  margin-bottom:0;
+  margin-top:0;
+  list-style-type:none;
+  padding-left:0;
+}
+.usa-prose .usa-list--unstyled > li{
+  margin-bottom:0;
+  max-width:unset;
+}
+
+.usa-paragraph{
+  line-height:1.5;
+  max-width:68ex;
+  margin-bottom:0;
+  margin-top:0;
+}
+* + .usa-paragraph{
+  margin-top:1em;
+}
+.usa-paragraph + *{
+  margin-top:1em;
+}
+
+.usa-prose{
+  font-family:Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
+  font-size:1.06rem;
+  line-height:1.5;
+}
+.usa-prose > ul,
+.usa-prose > ol{
+  margin-bottom:1em;
+  margin-top:1em;
+  line-height:1.5;
+  padding-left:3ch;
+}
+.usa-prose > ul:last-child,
+.usa-prose > ol:last-child{
+  margin-bottom:0;
+}
+.usa-prose > ul ul,
+.usa-prose > ul ol,
+.usa-prose > ol ul,
+.usa-prose > ol ol{
+  margin-top:0.25em;
+}
+.usa-prose > ul li,
+.usa-prose > ol li{
+  margin-bottom:0.25em;
+  max-width:68ex;
+}
+.usa-prose > ul li:last-child,
+.usa-prose > ol li:last-child{
+  margin-bottom:0;
+}
+.usa-prose > table{
+  font-family:Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
+  font-size:1.06rem;
+  line-height:1.5;
+  border-collapse:collapse;
+  border-spacing:0;
+  color:#1b1b1b;
+  margin:1.25rem 0;
+  text-align:left;
+}
+.usa-prose > table thead td,
+.usa-prose > table tfoot td,
+.usa-prose > table th{
+  background-clip:padding-box;
+  line-height:1.3;
+  background-color:#dfe1e2;
+  color:#1b1b1b;
+}
+.usa-prose > table th,
+.usa-prose > table td{
+  border:1px solid #1b1b1b;
+  padding:0.5rem 1rem;
+}
+.usa-prose > table td{
+  background-color:white;
+  font-weight:normal;
+}
+.usa-prose > table caption{
+  font-family:Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
+  font-size:1rem;
+  font-weight:700;
+  margin-bottom:0.75rem;
+  text-align:left;
+}
+.usa-prose > table th[data-sortable]{
+  padding-right:2.5rem;
+  position:relative;
+}
+.usa-prose > table th[data-sortable]::after{
+  border-bottom-color:transparent;
+  border-bottom-style:solid;
+  border-bottom-width:1px;
+  bottom:0;
+  content:"";
+  height:0;
+  left:0;
+  position:absolute;
+  width:100%;
+}
+.usa-prose > table th[data-sortable]:not([aria-sort]) .usa-table__header__button, .usa-prose > table th[data-sortable][aria-sort=none] .usa-table__header__button{
+  color:#005ea2;
+  text-decoration:underline;
+  background-color:transparent;
+  border:0;
+  border-radius:0;
+  box-shadow:none;
+  font-weight:normal;
+  justify-content:normal;
+  text-align:left;
+  margin:0;
+  padding:0;
+  width:auto;
+  height:2rem;
+  width:2rem;
+  background-position:center center;
+  background-size:1.5rem;
+  color:#71767a;
+  cursor:pointer;
+  display:inline-block;
+  margin:0;
+  position:absolute;
+  right:0.25rem;
+  text-align:center;
+  text-decoration:none;
+  top:50%;
+  transform:translate(0, -50%);
+}
+.usa-prose > table th[data-sortable]:not([aria-sort]) .usa-table__header__button:visited, .usa-prose > table th[data-sortable][aria-sort=none] .usa-table__header__button:visited{
+  color:#54278f;
+}
+.usa-prose > table th[data-sortable]:not([aria-sort]) .usa-table__header__button:hover, .usa-prose > table th[data-sortable][aria-sort=none] .usa-table__header__button:hover{
+  color:#1a4480;
+}
+.usa-prose > table th[data-sortable]:not([aria-sort]) .usa-table__header__button:active, .usa-prose > table th[data-sortable][aria-sort=none] .usa-table__header__button:active{
+  color:#162e51;
+}
+.usa-prose > table th[data-sortable]:not([aria-sort]) .usa-table__header__button:focus, .usa-prose > table th[data-sortable][aria-sort=none] .usa-table__header__button:focus{
+  outline:0.25rem solid #2491ff;
+  outline-offset:0rem;
+}
+.usa-prose > table th[data-sortable]:not([aria-sort]) .usa-table__header__button:hover, .usa-prose > table th[data-sortable]:not([aria-sort]) .usa-table__header__button.usa-button--hover, .usa-prose > table th[data-sortable]:not([aria-sort]) .usa-table__header__button:disabled:hover, .usa-prose > table th[data-sortable]:not([aria-sort]) .usa-table__header__button[aria-disabled=true]:hover, .usa-prose > table th[data-sortable]:not([aria-sort]) .usa-table__header__button:disabled.usa-button--hover, .usa-prose > table th[data-sortable]:not([aria-sort]) .usa-table__header__button[aria-disabled=true].usa-button--hover, .usa-prose > table th[data-sortable]:not([aria-sort]) .usa-table__header__button:active, .usa-prose > table th[data-sortable]:not([aria-sort]) .usa-table__header__button.usa-button--active, .usa-prose > table th[data-sortable]:not([aria-sort]) .usa-table__header__button:disabled:active, .usa-prose > table th[data-sortable]:not([aria-sort]) .usa-table__header__button[aria-disabled=true]:active, .usa-prose > table th[data-sortable]:not([aria-sort]) .usa-table__header__button:disabled.usa-button--active, .usa-prose > table th[data-sortable]:not([aria-sort]) .usa-table__header__button[aria-disabled=true].usa-button--active, .usa-prose > table th[data-sortable]:not([aria-sort]) .usa-table__header__button:disabled:focus, .usa-prose > table th[data-sortable]:not([aria-sort]) .usa-table__header__button[aria-disabled=true]:focus, .usa-prose > table th[data-sortable]:not([aria-sort]) .usa-table__header__button:disabled.usa-focus, .usa-prose > table th[data-sortable]:not([aria-sort]) .usa-table__header__button[aria-disabled=true].usa-focus, .usa-prose > table th[data-sortable]:not([aria-sort]) .usa-table__header__button:disabled, .usa-prose > table th[data-sortable]:not([aria-sort]) .usa-table__header__button[aria-disabled=true], .usa-prose > table th[data-sortable]:not([aria-sort]) .usa-table__header__button.usa-button--disabled, .usa-prose > table th[data-sortable][aria-sort=none] .usa-table__header__button:hover, .usa-prose > table th[data-sortable][aria-sort=none] .usa-table__header__button.usa-button--hover, .usa-prose > table th[data-sortable][aria-sort=none] .usa-table__header__button:disabled:hover, .usa-prose > table th[data-sortable][aria-sort=none] .usa-table__header__button[aria-disabled=true]:hover, .usa-prose > table th[data-sortable][aria-sort=none] .usa-table__header__button:disabled.usa-button--hover, .usa-prose > table th[data-sortable][aria-sort=none] .usa-table__header__button[aria-disabled=true].usa-button--hover, .usa-prose > table th[data-sortable][aria-sort=none] .usa-table__header__button:active, .usa-prose > table th[data-sortable][aria-sort=none] .usa-table__header__button.usa-button--active, .usa-prose > table th[data-sortable][aria-sort=none] .usa-table__header__button:disabled:active, .usa-prose > table th[data-sortable][aria-sort=none] .usa-table__header__button[aria-disabled=true]:active, .usa-prose > table th[data-sortable][aria-sort=none] .usa-table__header__button:disabled.usa-button--active, .usa-prose > table th[data-sortable][aria-sort=none] .usa-table__header__button[aria-disabled=true].usa-button--active, .usa-prose > table th[data-sortable][aria-sort=none] .usa-table__header__button:disabled:focus, .usa-prose > table th[data-sortable][aria-sort=none] .usa-table__header__button[aria-disabled=true]:focus, .usa-prose > table th[data-sortable][aria-sort=none] .usa-table__header__button:disabled.usa-focus, .usa-prose > table th[data-sortable][aria-sort=none] .usa-table__header__button[aria-disabled=true].usa-focus, .usa-prose > table th[data-sortable][aria-sort=none] .usa-table__header__button:disabled, .usa-prose > table th[data-sortable][aria-sort=none] .usa-table__header__button[aria-disabled=true], .usa-prose > table th[data-sortable][aria-sort=none] .usa-table__header__button.usa-button--disabled{
+  background-color:transparent;
+  box-shadow:none;
+  text-decoration:underline;
+}
+.usa-prose > table th[data-sortable]:not([aria-sort]) .usa-table__header__button.usa-button--hover, .usa-prose > table th[data-sortable][aria-sort=none] .usa-table__header__button.usa-button--hover{
+  color:#1a4480;
+}
+.usa-prose > table th[data-sortable]:not([aria-sort]) .usa-table__header__button.usa-button--active, .usa-prose > table th[data-sortable][aria-sort=none] .usa-table__header__button.usa-button--active{
+  color:#162e51;
+}
+.usa-prose > table th[data-sortable]:not([aria-sort]) .usa-table__header__button:disabled, .usa-prose > table th[data-sortable]:not([aria-sort]) .usa-table__header__button[aria-disabled=true], .usa-prose > table th[data-sortable]:not([aria-sort]) .usa-table__header__button:disabled:hover, .usa-prose > table th[data-sortable]:not([aria-sort]) .usa-table__header__button[aria-disabled=true]:hover, .usa-prose > table th[data-sortable]:not([aria-sort]) .usa-table__header__button[aria-disabled=true]:focus, .usa-prose > table th[data-sortable][aria-sort=none] .usa-table__header__button:disabled, .usa-prose > table th[data-sortable][aria-sort=none] .usa-table__header__button[aria-disabled=true], .usa-prose > table th[data-sortable][aria-sort=none] .usa-table__header__button:disabled:hover, .usa-prose > table th[data-sortable][aria-sort=none] .usa-table__header__button[aria-disabled=true]:hover, .usa-prose > table th[data-sortable][aria-sort=none] .usa-table__header__button[aria-disabled=true]:focus{
+  color:#757575;
+}
+@media (forced-colors: active){
+  .usa-prose > table th[data-sortable]:not([aria-sort]) .usa-table__header__button:disabled, .usa-prose > table th[data-sortable]:not([aria-sort]) .usa-table__header__button[aria-disabled=true], .usa-prose > table th[data-sortable]:not([aria-sort]) .usa-table__header__button:disabled:hover, .usa-prose > table th[data-sortable]:not([aria-sort]) .usa-table__header__button[aria-disabled=true]:hover, .usa-prose > table th[data-sortable]:not([aria-sort]) .usa-table__header__button[aria-disabled=true]:focus, .usa-prose > table th[data-sortable][aria-sort=none] .usa-table__header__button:disabled, .usa-prose > table th[data-sortable][aria-sort=none] .usa-table__header__button[aria-disabled=true], .usa-prose > table th[data-sortable][aria-sort=none] .usa-table__header__button:disabled:hover, .usa-prose > table th[data-sortable][aria-sort=none] .usa-table__header__button[aria-disabled=true]:hover, .usa-prose > table th[data-sortable][aria-sort=none] .usa-table__header__button[aria-disabled=true]:focus{
+    color:GrayText;
+  }
+}
+.usa-prose > table th[data-sortable]:not([aria-sort]) .usa-table__header__button .usa-icon, .usa-prose > table th[data-sortable][aria-sort=none] .usa-table__header__button .usa-icon{
+  height:1.5rem;
+  width:1.5rem;
+  vertical-align:middle;
+}
+.usa-prose > table th[data-sortable]:not([aria-sort]) .usa-table__header__button .usa-icon > g, .usa-prose > table th[data-sortable][aria-sort=none] .usa-table__header__button .usa-icon > g{
+  fill:transparent;
+}
+.usa-prose > table th[data-sortable]:not([aria-sort]) .usa-table__header__button .usa-icon > g.unsorted, .usa-prose > table th[data-sortable][aria-sort=none] .usa-table__header__button .usa-icon > g.unsorted{
+  fill:#1b1b1b;
+}
+.usa-prose > table th[data-sortable]:not([aria-sort]) .usa-table__header__button:hover .usa-icon > g.unsorted, .usa-prose > table th[data-sortable][aria-sort=none] .usa-table__header__button:hover .usa-icon > g.unsorted{
+  fill:black;
+}
+.usa-prose > table th[data-sortable][aria-sort=descending], .usa-prose > table th[data-sortable][aria-sort=ascending]{
+  background-color:#97d4ea;
+}
+.usa-prose > table th[data-sortable][aria-sort=descending] .usa-table__header__button{
+  color:#005ea2;
+  text-decoration:underline;
+  background-color:transparent;
+  border:0;
+  border-radius:0;
+  box-shadow:none;
+  font-weight:normal;
+  justify-content:normal;
+  text-align:left;
+  margin:0;
+  padding:0;
+  width:auto;
+  height:2rem;
+  width:2rem;
+  background-position:center center;
+  background-size:1.5rem;
+  color:#71767a;
+  cursor:pointer;
+  display:inline-block;
+  margin:0;
+  position:absolute;
+  right:0.25rem;
+  text-align:center;
+  text-decoration:none;
+  top:50%;
+  transform:translate(0, -50%);
+}
+.usa-prose > table th[data-sortable][aria-sort=descending] .usa-table__header__button:visited{
+  color:#54278f;
+}
+.usa-prose > table th[data-sortable][aria-sort=descending] .usa-table__header__button:hover{
+  color:#1a4480;
+}
+.usa-prose > table th[data-sortable][aria-sort=descending] .usa-table__header__button:active{
+  color:#162e51;
+}
+.usa-prose > table th[data-sortable][aria-sort=descending] .usa-table__header__button:focus{
+  outline:0.25rem solid #2491ff;
+  outline-offset:0rem;
+}
+.usa-prose > table th[data-sortable][aria-sort=descending] .usa-table__header__button:hover, .usa-prose > table th[data-sortable][aria-sort=descending] .usa-table__header__button.usa-button--hover, .usa-prose > table th[data-sortable][aria-sort=descending] .usa-table__header__button:disabled:hover, .usa-prose > table th[data-sortable][aria-sort=descending] .usa-table__header__button[aria-disabled=true]:hover, .usa-prose > table th[data-sortable][aria-sort=descending] .usa-table__header__button:disabled.usa-button--hover, .usa-prose > table th[data-sortable][aria-sort=descending] .usa-table__header__button[aria-disabled=true].usa-button--hover, .usa-prose > table th[data-sortable][aria-sort=descending] .usa-table__header__button:active, .usa-prose > table th[data-sortable][aria-sort=descending] .usa-table__header__button.usa-button--active, .usa-prose > table th[data-sortable][aria-sort=descending] .usa-table__header__button:disabled:active, .usa-prose > table th[data-sortable][aria-sort=descending] .usa-table__header__button[aria-disabled=true]:active, .usa-prose > table th[data-sortable][aria-sort=descending] .usa-table__header__button:disabled.usa-button--active, .usa-prose > table th[data-sortable][aria-sort=descending] .usa-table__header__button[aria-disabled=true].usa-button--active, .usa-prose > table th[data-sortable][aria-sort=descending] .usa-table__header__button:disabled:focus, .usa-prose > table th[data-sortable][aria-sort=descending] .usa-table__header__button[aria-disabled=true]:focus, .usa-prose > table th[data-sortable][aria-sort=descending] .usa-table__header__button:disabled.usa-focus, .usa-prose > table th[data-sortable][aria-sort=descending] .usa-table__header__button[aria-disabled=true].usa-focus, .usa-prose > table th[data-sortable][aria-sort=descending] .usa-table__header__button:disabled, .usa-prose > table th[data-sortable][aria-sort=descending] .usa-table__header__button[aria-disabled=true], .usa-prose > table th[data-sortable][aria-sort=descending] .usa-table__header__button.usa-button--disabled{
+  background-color:transparent;
+  box-shadow:none;
+  text-decoration:underline;
+}
+.usa-prose > table th[data-sortable][aria-sort=descending] .usa-table__header__button.usa-button--hover{
+  color:#1a4480;
+}
+.usa-prose > table th[data-sortable][aria-sort=descending] .usa-table__header__button.usa-button--active{
+  color:#162e51;
+}
+.usa-prose > table th[data-sortable][aria-sort=descending] .usa-table__header__button:disabled, .usa-prose > table th[data-sortable][aria-sort=descending] .usa-table__header__button[aria-disabled=true], .usa-prose > table th[data-sortable][aria-sort=descending] .usa-table__header__button:disabled:hover, .usa-prose > table th[data-sortable][aria-sort=descending] .usa-table__header__button[aria-disabled=true]:hover, .usa-prose > table th[data-sortable][aria-sort=descending] .usa-table__header__button[aria-disabled=true]:focus{
+  color:#757575;
+}
+@media (forced-colors: active){
+  .usa-prose > table th[data-sortable][aria-sort=descending] .usa-table__header__button:disabled, .usa-prose > table th[data-sortable][aria-sort=descending] .usa-table__header__button[aria-disabled=true], .usa-prose > table th[data-sortable][aria-sort=descending] .usa-table__header__button:disabled:hover, .usa-prose > table th[data-sortable][aria-sort=descending] .usa-table__header__button[aria-disabled=true]:hover, .usa-prose > table th[data-sortable][aria-sort=descending] .usa-table__header__button[aria-disabled=true]:focus{
+    color:GrayText;
+  }
+}
+.usa-prose > table th[data-sortable][aria-sort=descending] .usa-table__header__button .usa-icon{
+  height:1.5rem;
+  width:1.5rem;
+  vertical-align:middle;
+}
+.usa-prose > table th[data-sortable][aria-sort=descending] .usa-table__header__button .usa-icon > g{
+  fill:transparent;
+}
+.usa-prose > table th[data-sortable][aria-sort=descending] .usa-table__header__button .usa-icon > g.descending{
+  fill:#1b1b1b;
+}
+.usa-prose > table th[data-sortable][aria-sort=ascending] .usa-table__header__button{
+  color:#005ea2;
+  text-decoration:underline;
+  background-color:transparent;
+  border:0;
+  border-radius:0;
+  box-shadow:none;
+  font-weight:normal;
+  justify-content:normal;
+  text-align:left;
+  margin:0;
+  padding:0;
+  width:auto;
+  height:2rem;
+  width:2rem;
+  background-position:center center;
+  background-size:1.5rem;
+  color:#71767a;
+  cursor:pointer;
+  display:inline-block;
+  margin:0;
+  position:absolute;
+  right:0.25rem;
+  text-align:center;
+  text-decoration:none;
+  top:50%;
+  transform:translate(0, -50%);
+}
+.usa-prose > table th[data-sortable][aria-sort=ascending] .usa-table__header__button:visited{
+  color:#54278f;
+}
+.usa-prose > table th[data-sortable][aria-sort=ascending] .usa-table__header__button:hover{
+  color:#1a4480;
+}
+.usa-prose > table th[data-sortable][aria-sort=ascending] .usa-table__header__button:active{
+  color:#162e51;
+}
+.usa-prose > table th[data-sortable][aria-sort=ascending] .usa-table__header__button:focus{
+  outline:0.25rem solid #2491ff;
+  outline-offset:0rem;
+}
+.usa-prose > table th[data-sortable][aria-sort=ascending] .usa-table__header__button:hover, .usa-prose > table th[data-sortable][aria-sort=ascending] .usa-table__header__button.usa-button--hover, .usa-prose > table th[data-sortable][aria-sort=ascending] .usa-table__header__button:disabled:hover, .usa-prose > table th[data-sortable][aria-sort=ascending] .usa-table__header__button[aria-disabled=true]:hover, .usa-prose > table th[data-sortable][aria-sort=ascending] .usa-table__header__button:disabled.usa-button--hover, .usa-prose > table th[data-sortable][aria-sort=ascending] .usa-table__header__button[aria-disabled=true].usa-button--hover, .usa-prose > table th[data-sortable][aria-sort=ascending] .usa-table__header__button:active, .usa-prose > table th[data-sortable][aria-sort=ascending] .usa-table__header__button.usa-button--active, .usa-prose > table th[data-sortable][aria-sort=ascending] .usa-table__header__button:disabled:active, .usa-prose > table th[data-sortable][aria-sort=ascending] .usa-table__header__button[aria-disabled=true]:active, .usa-prose > table th[data-sortable][aria-sort=ascending] .usa-table__header__button:disabled.usa-button--active, .usa-prose > table th[data-sortable][aria-sort=ascending] .usa-table__header__button[aria-disabled=true].usa-button--active, .usa-prose > table th[data-sortable][aria-sort=ascending] .usa-table__header__button:disabled:focus, .usa-prose > table th[data-sortable][aria-sort=ascending] .usa-table__header__button[aria-disabled=true]:focus, .usa-prose > table th[data-sortable][aria-sort=ascending] .usa-table__header__button:disabled.usa-focus, .usa-prose > table th[data-sortable][aria-sort=ascending] .usa-table__header__button[aria-disabled=true].usa-focus, .usa-prose > table th[data-sortable][aria-sort=ascending] .usa-table__header__button:disabled, .usa-prose > table th[data-sortable][aria-sort=ascending] .usa-table__header__button[aria-disabled=true], .usa-prose > table th[data-sortable][aria-sort=ascending] .usa-table__header__button.usa-button--disabled{
+  background-color:transparent;
+  box-shadow:none;
+  text-decoration:underline;
+}
+.usa-prose > table th[data-sortable][aria-sort=ascending] .usa-table__header__button.usa-button--hover{
+  color:#1a4480;
+}
+.usa-prose > table th[data-sortable][aria-sort=ascending] .usa-table__header__button.usa-button--active{
+  color:#162e51;
+}
+.usa-prose > table th[data-sortable][aria-sort=ascending] .usa-table__header__button:disabled, .usa-prose > table th[data-sortable][aria-sort=ascending] .usa-table__header__button[aria-disabled=true], .usa-prose > table th[data-sortable][aria-sort=ascending] .usa-table__header__button:disabled:hover, .usa-prose > table th[data-sortable][aria-sort=ascending] .usa-table__header__button[aria-disabled=true]:hover, .usa-prose > table th[data-sortable][aria-sort=ascending] .usa-table__header__button[aria-disabled=true]:focus{
+  color:#757575;
+}
+@media (forced-colors: active){
+  .usa-prose > table th[data-sortable][aria-sort=ascending] .usa-table__header__button:disabled, .usa-prose > table th[data-sortable][aria-sort=ascending] .usa-table__header__button[aria-disabled=true], .usa-prose > table th[data-sortable][aria-sort=ascending] .usa-table__header__button:disabled:hover, .usa-prose > table th[data-sortable][aria-sort=ascending] .usa-table__header__button[aria-disabled=true]:hover, .usa-prose > table th[data-sortable][aria-sort=ascending] .usa-table__header__button[aria-disabled=true]:focus{
+    color:GrayText;
+  }
+}
+.usa-prose > table th[data-sortable][aria-sort=ascending] .usa-table__header__button .usa-icon{
+  height:1.5rem;
+  width:1.5rem;
+  vertical-align:middle;
+}
+.usa-prose > table th[data-sortable][aria-sort=ascending] .usa-table__header__button .usa-icon > g{
+  fill:transparent;
+}
+.usa-prose > table th[data-sortable][aria-sort=ascending] .usa-table__header__button .usa-icon > g.ascending{
+  fill:#1b1b1b;
+}
+.usa-prose > table thead th[aria-sort]{
+  background-color:#97d4ea;
+  color:#1b1b1b;
+}
+.usa-prose > table td[data-sort-active],
+.usa-prose > table th[data-sort-active]{
+  background-color:#e1f3f8;
+  color:#1b1b1b;
+}
+.usa-prose > .usa-table--borderless{
+}
+.usa-prose > .usa-table--borderless th,
+.usa-prose > .usa-table--borderless thead td,
+.usa-prose > .usa-table--borderless tfoot td{
+  background-color:white;
+}
+.usa-prose > .usa-table--borderless th{
+  border-top:0;
+  color:#1b1b1b;
+}
+.usa-prose > .usa-table--borderless th[aria-sort]{
+  color:#1b1b1b;
+}
+.usa-prose > .usa-table--borderless th[data-sortable]:not([aria-sort]) .usa-table__header__button .usa-icon > g.unsorted{
+  fill:#1b1b1b;
+}
+.usa-prose > .usa-table--borderless th[data-sortable]:not([aria-sort]) .usa-table__header__button:hover .usa-icon > g.unsorted{
+  fill:black;
+}
+.usa-prose > .usa-table--borderless th,
+.usa-prose > .usa-table--borderless td{
+  border-left:0;
+  border-right:0;
+}
+.usa-prose > .usa-table--compact th,
+.usa-prose > .usa-table--compact td{
+  padding:0.25rem 0.75rem;
+}
+.usa-prose > .usa-table--striped tbody tr:nth-child(odd) td{
+  background-color:#f0f0f0;
+  color:#1b1b1b;
+}
+.usa-prose > .usa-table--striped tbody tr:nth-child(odd) td[data-sort-active]{
+  background-color:#c3ebfa;
+  color:#1b1b1b;
+}
+@media all and (max-width: 29.99em){
+  .usa-prose > .usa-table--stacked thead{
+    display:none;
+  }
+  .usa-prose > .usa-table--stacked th{
+    background-color:white;
+  }
+  .usa-prose > .usa-table--stacked th,
+  .usa-prose > .usa-table--stacked td{
+    border-bottom-width:0;
+    display:block;
+    width:100%;
+  }
+  .usa-prose > .usa-table--stacked tr{
+    border-bottom:0.25rem solid #1b1b1b;
+    border-top-width:0;
+    width:100%;
+  }
+  .usa-prose > .usa-table--stacked tr th:first-child,
+  .usa-prose > .usa-table--stacked tr td:first-child{
+    border-top-width:0;
+  }
+  .usa-prose > .usa-table--stacked tr:nth-child(odd) td,
+  .usa-prose > .usa-table--stacked tr:nth-child(odd) th{
+    background-color:inherit;
+  }
+  .usa-prose > .usa-table--stacked tr:first-child th:first-child,
+  .usa-prose > .usa-table--stacked tr:first-child td:first-child{
+    border-top:0.25rem solid #1b1b1b;
+  }
+  .usa-prose > .usa-table--stacked th[data-label],
+  .usa-prose > .usa-table--stacked td[data-label]{
+    padding-bottom:0.75rem;
+  }
+  .usa-prose > .usa-table--stacked th[data-label]:before,
+  .usa-prose > .usa-table--stacked td[data-label]:before{
+    content:attr(data-label);
+    display:block;
+    font-weight:700;
+    margin:-0.5rem -1rem 0rem;
+    padding:0.75rem 1rem 0.25rem;
+  }
+}
+@media all and (max-width: 29.99em){
+  .usa-prose > .usa-table--stacked-header thead{
+    display:none;
+  }
+  .usa-prose > .usa-table--stacked-header th{
+    background-color:white;
+  }
+  .usa-prose > .usa-table--stacked-header th,
+  .usa-prose > .usa-table--stacked-header td{
+    border-bottom-width:0;
+    display:block;
+    width:100%;
+  }
+  .usa-prose > .usa-table--stacked-header tr{
+    border-bottom:0.25rem solid #1b1b1b;
+    border-top-width:0;
+    width:100%;
+  }
+  .usa-prose > .usa-table--stacked-header tr th:first-child,
+  .usa-prose > .usa-table--stacked-header tr td:first-child{
+    border-top-width:0;
+  }
+  .usa-prose > .usa-table--stacked-header tr:nth-child(odd) td,
+  .usa-prose > .usa-table--stacked-header tr:nth-child(odd) th{
+    background-color:inherit;
+  }
+  .usa-prose > .usa-table--stacked-header tr:first-child th:first-child,
+  .usa-prose > .usa-table--stacked-header tr:first-child td:first-child{
+    border-top:0.25rem solid #1b1b1b;
+  }
+  .usa-prose > .usa-table--stacked-header th[data-label],
+  .usa-prose > .usa-table--stacked-header td[data-label]{
+    padding-bottom:0.75rem;
+  }
+  .usa-prose > .usa-table--stacked-header th[data-label]:before,
+  .usa-prose > .usa-table--stacked-header td[data-label]:before{
+    content:attr(data-label);
+    display:block;
+    font-weight:700;
+    margin:-0.5rem -1rem 0rem;
+    padding:0.75rem 1rem 0.25rem;
+  }
+  .usa-prose > .usa-table--stacked-header tr td:first-child,
+  .usa-prose > .usa-table--stacked-header tr th:first-child{
+    font-family:Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
+    font-size:1.06rem;
+    line-height:1.1;
+    background-color:#dfe1e2;
+    color:#1b1b1b;
+    font-weight:700;
+    padding:0.75rem 1rem;
+  }
+  .usa-prose > .usa-table--stacked-header tr td:first-child:before,
+  .usa-prose > .usa-table--stacked-header tr th:first-child:before{
+    display:none;
+  }
+}
+.usa-prose > .width-mobile .usa-table--stacked thead{
+  display:none;
+}
+.usa-prose > .width-mobile .usa-table--stacked th{
+  background-color:white;
+}
+.usa-prose > .width-mobile .usa-table--stacked th,
+.usa-prose > .width-mobile .usa-table--stacked td{
+  border-bottom-width:0;
+  display:block;
+  width:100%;
+}
+.usa-prose > .width-mobile .usa-table--stacked tr{
+  border-bottom:0.25rem solid #1b1b1b;
+  border-top-width:0;
+  width:100%;
+}
+.usa-prose > .width-mobile .usa-table--stacked tr th:first-child,
+.usa-prose > .width-mobile .usa-table--stacked tr td:first-child{
+  border-top-width:0;
+}
+.usa-prose > .width-mobile .usa-table--stacked tr:nth-child(odd) td,
+.usa-prose > .width-mobile .usa-table--stacked tr:nth-child(odd) th{
+  background-color:inherit;
+}
+.usa-prose > .width-mobile .usa-table--stacked tr:first-child th:first-child,
+.usa-prose > .width-mobile .usa-table--stacked tr:first-child td:first-child{
+  border-top:0.25rem solid #1b1b1b;
+}
+.usa-prose > .width-mobile .usa-table--stacked th[data-label],
+.usa-prose > .width-mobile .usa-table--stacked td[data-label]{
+  padding-bottom:0.75rem;
+}
+.usa-prose > .width-mobile .usa-table--stacked th[data-label]:before,
+.usa-prose > .width-mobile .usa-table--stacked td[data-label]:before{
+  content:attr(data-label);
+  display:block;
+  font-weight:700;
+  margin:-0.5rem -1rem 0rem;
+  padding:0.75rem 1rem 0.25rem;
+}
+.usa-prose > .width-mobile .usa-table--stacked-header thead{
+  display:none;
+}
+.usa-prose > .width-mobile .usa-table--stacked-header th{
+  background-color:white;
+}
+.usa-prose > .width-mobile .usa-table--stacked-header th,
+.usa-prose > .width-mobile .usa-table--stacked-header td{
+  border-bottom-width:0;
+  display:block;
+  width:100%;
+}
+.usa-prose > .width-mobile .usa-table--stacked-header tr{
+  border-bottom:0.25rem solid #1b1b1b;
+  border-top-width:0;
+  width:100%;
+}
+.usa-prose > .width-mobile .usa-table--stacked-header tr th:first-child,
+.usa-prose > .width-mobile .usa-table--stacked-header tr td:first-child{
+  border-top-width:0;
+}
+.usa-prose > .width-mobile .usa-table--stacked-header tr:nth-child(odd) td,
+.usa-prose > .width-mobile .usa-table--stacked-header tr:nth-child(odd) th{
+  background-color:inherit;
+}
+.usa-prose > .width-mobile .usa-table--stacked-header tr:first-child th:first-child,
+.usa-prose > .width-mobile .usa-table--stacked-header tr:first-child td:first-child{
+  border-top:0.25rem solid #1b1b1b;
+}
+.usa-prose > .width-mobile .usa-table--stacked-header th[data-label],
+.usa-prose > .width-mobile .usa-table--stacked-header td[data-label]{
+  padding-bottom:0.75rem;
+}
+.usa-prose > .width-mobile .usa-table--stacked-header th[data-label]:before,
+.usa-prose > .width-mobile .usa-table--stacked-header td[data-label]:before{
+  content:attr(data-label);
+  display:block;
+  font-weight:700;
+  margin:-0.5rem -1rem 0rem;
+  padding:0.75rem 1rem 0.25rem;
+}
+.usa-prose > .width-mobile .usa-table--stacked-header tr td:first-child,
+.usa-prose > .width-mobile .usa-table--stacked-header tr th:first-child{
+  font-family:Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
+  font-size:1.06rem;
+  line-height:1.1;
+  background-color:#dfe1e2;
+  color:#1b1b1b;
+  font-weight:700;
+  padding:0.75rem 1rem;
+}
+.usa-prose > .width-mobile .usa-table--stacked-header tr td:first-child:before,
+.usa-prose > .width-mobile .usa-table--stacked-header tr th:first-child:before{
+  display:none;
+}
+.usa-prose > .usa-table-container--scrollable{
+  margin:1.25rem 0;
+  overflow-y:hidden;
+}
+.usa-prose > .usa-table-container--scrollable .usa-table{
+  margin:0;
+}
+.usa-prose > .usa-table-container--scrollable td{
+  white-space:nowrap;
+}
+.usa-prose > p{
+  line-height:1.5;
+  max-width:68ex;
+}
+.usa-prose > h1,
+.usa-prose > h2,
+.usa-prose > h3,
+.usa-prose > h4,
+.usa-prose > h5,
+.usa-prose > h6{
+  margin-bottom:0;
+  margin-top:0;
+  clear:both;
+}
+.usa-prose > * + *{
+  margin-top:1em;
+  margin-bottom:0;
+}
+.usa-prose > * + h1,
+.usa-prose > * + h2,
+.usa-prose > * + h3,
+.usa-prose > * + h4,
+.usa-prose > * + h5,
+.usa-prose > * + h6{
+  margin-top:1.5em;
+}
+.usa-prose > h1{
+  font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+  font-size:2.44rem;
+  line-height:1.2;
+  font-weight:700;
+}
+.usa-prose > h2{
+  font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+  font-size:1.95rem;
+  line-height:1.2;
+  font-weight:700;
+}
+.usa-prose > h3{
+  font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+  font-size:1.34rem;
+  line-height:1.2;
+  font-weight:700;
+}
+.usa-prose > h4{
+  font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+  font-size:0.98rem;
+  line-height:1.2;
+  font-weight:700;
+}
+.usa-prose > h5{
+  font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+  font-size:0.91rem;
+  line-height:1.2;
+  font-weight:700;
+}
+.usa-prose > h6{
+  font-family:Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
+  font-size:0.87rem;
+  line-height:1.1;
+  font-weight:normal;
+  letter-spacing:0.025em;
+  text-transform:uppercase;
+}
+
+.usa-accordion{
+  margin-bottom:0;
+  margin-top:0;
+  list-style-type:none;
+  padding-left:0;
+  color:#1b1b1b;
+  margin:0;
+  padding:0;
+  width:100%;
+  font-family:Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
+  font-size:1.06rem;
+  line-height:1.5;
+}
+.usa-accordion > li{
+  margin-bottom:0;
+  max-width:unset;
+}
+.usa-accordion > ul li ul{
+  list-style:disc;
+}
+.usa-accordion > ul li ul > li > ul{
+  list-style:circle;
+}
+.usa-accordion > ul li ul > li > ul > li > ul{
+  list-style:square;
+}
+.usa-accordion + .usa-accordion,
+.usa-accordion + .usa-accordion--bordered{
+  margin-top:0.5rem;
+}
+
+.usa-accordion--bordered .usa-accordion__content{
+  border-bottom:0.25rem solid #f0f0f0;
+  border-left:0.25rem solid #f0f0f0;
+  border-right:0.25rem solid #f0f0f0;
+  padding-bottom:1rem;
+}
+.usa-accordion--bordered .usa-accordion__heading{
+  margin-bottom:0;
+}
+
+.usa-accordion__heading,
+.usa-prose .usa-accordion__heading{
+  font-family:Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
+  font-size:1.06rem;
+  line-height:0.9;
+  margin:0;
+}
+.usa-accordion__heading:not(:first-child),
+.usa-prose .usa-accordion__heading:not(:first-child){
+  margin-top:0.5rem;
+}
+
+.usa-accordion__content{
+  color:#1b1b1b;
+  background-color:white;
+  margin-top:0;
+  overflow:auto;
+  padding:1rem 1.25rem calc(1rem - 0.25rem) 1.25rem;
+}
+.usa-accordion__content > *:first-child{
+  margin-top:0;
+}
+.usa-accordion__content > *:last-child{
+  margin-bottom:0;
+}
+
+.usa-accordion__button{
+  color:#005ea2;
+  text-decoration:underline;
+  background-color:transparent;
+  border:0;
+  border-radius:0;
+  box-shadow:none;
+  font-weight:normal;
+  justify-content:normal;
+  text-align:left;
+  margin:0;
+  padding:0;
+  width:auto;
+  color:#1b1b1b;
+  background-color:#f0f0f0;
+  background-image:url("../img/usa-icons/remove.svg"), linear-gradient(transparent, transparent);
+  background-repeat:no-repeat;
+  background-position:right 1.25rem center;
+  background-size:1.5rem;
+  cursor:pointer;
+  display:inline-block;
+  font-weight:700;
+  margin:0;
+  padding:1rem 3.5rem 1rem 1.25rem;
+  text-decoration:none;
+  width:100%;
+}
+.usa-accordion__button:visited{
+  color:#54278f;
+}
+.usa-accordion__button:hover{
+  color:#1a4480;
+}
+.usa-accordion__button:active{
+  color:#162e51;
+}
+.usa-accordion__button:focus{
+  outline:0.25rem solid #2491ff;
+  outline-offset:0rem;
+}
+.usa-accordion__button:hover, .usa-accordion__button.usa-button--hover, .usa-accordion__button:disabled:hover, .usa-accordion__button[aria-disabled=true]:hover, .usa-accordion__button:disabled.usa-button--hover, .usa-accordion__button[aria-disabled=true].usa-button--hover, .usa-accordion__button:active, .usa-accordion__button.usa-button--active, .usa-accordion__button:disabled:active, .usa-accordion__button[aria-disabled=true]:active, .usa-accordion__button:disabled.usa-button--active, .usa-accordion__button[aria-disabled=true].usa-button--active, .usa-accordion__button:disabled:focus, .usa-accordion__button[aria-disabled=true]:focus, .usa-accordion__button:disabled.usa-focus, .usa-accordion__button[aria-disabled=true].usa-focus, .usa-accordion__button:disabled, .usa-accordion__button[aria-disabled=true], .usa-accordion__button.usa-button--disabled{
+  background-color:transparent;
+  box-shadow:none;
+  text-decoration:underline;
+}
+.usa-accordion__button.usa-button--hover{
+  color:#1a4480;
+}
+.usa-accordion__button.usa-button--active{
+  color:#162e51;
+}
+.usa-accordion__button:disabled, .usa-accordion__button[aria-disabled=true], .usa-accordion__button:disabled:hover, .usa-accordion__button[aria-disabled=true]:hover, .usa-accordion__button[aria-disabled=true]:focus{
+  color:#757575;
+}
+@media (forced-colors: active){
+  .usa-accordion__button:disabled, .usa-accordion__button[aria-disabled=true], .usa-accordion__button:disabled:hover, .usa-accordion__button[aria-disabled=true]:hover, .usa-accordion__button[aria-disabled=true]:focus{
+    color:GrayText;
+  }
+}
+.usa-accordion__button:hover{
+  color:#1b1b1b;
+  background-color:#dfe1e2;
+  background-image:url("../img/usa-icons/remove.svg"), linear-gradient(transparent, transparent);
+  background-repeat:no-repeat;
+  text-decoration:none;
+}
+@media (forced-colors: active){
+  .usa-accordion__button{
+    border:2px solid transparent;
+    position:relative;
+  }
+  .usa-accordion__button::before{
+    background-image:url("../img/usa-icons/remove.svg");
+    background-repeat:no-repeat;
+    background-position:center center;
+    background-size:1.5rem 1.5rem;
+    display:inline-block;
+    height:1.5rem;
+    width:1.5rem;
+    height:100%;
+    position:absolute;
+    right:1.25rem;
+    top:0;
+    content:"";
+  }
+  @supports ((-webkit-mask: url("")) or (mask: url(""))){
+    .usa-accordion__button::before{
+      background:none;
+      background-color:ButtonText;
+      -webkit-mask-image:url("../img/usa-icons/remove.svg"), linear-gradient(transparent, transparent);
+              mask-image:url("../img/usa-icons/remove.svg"), linear-gradient(transparent, transparent);
+      -webkit-mask-position:center center;
+              mask-position:center center;
+      -webkit-mask-repeat:no-repeat;
+              mask-repeat:no-repeat;
+      -webkit-mask-size:1.5rem 1.5rem;
+              mask-size:1.5rem 1.5rem;
+    }
+  }
+}
+
+.usa-accordion__button[aria-expanded=false]{
+  background-image:url("../img/usa-icons/add.svg"), linear-gradient(transparent, transparent);
+  background-repeat:no-repeat;
+  background-size:1.5rem;
+}
+.usa-accordion__button[aria-expanded=false]:hover{
+  background-image:url("../img/usa-icons/add.svg"), linear-gradient(transparent, transparent);
+  background-repeat:no-repeat;
+}
+@media (forced-colors: active){
+  .usa-accordion__button[aria-expanded=false]::before{
+    background-image:url("../img/usa-icons/add.svg");
+    background-repeat:no-repeat;
+    background-position:center center;
+    background-size:1.5rem 1.5rem;
+    display:inline-block;
+    height:1.5rem;
+    width:1.5rem;
+    height:100%;
+    position:absolute;
+    right:1.25rem;
+    top:0;
+  }
+  @supports ((-webkit-mask: url("")) or (mask: url(""))){
+    .usa-accordion__button[aria-expanded=false]::before{
+      background:none;
+      background-color:ButtonText;
+      -webkit-mask-image:url("../img/usa-icons/add.svg"), linear-gradient(transparent, transparent);
+              mask-image:url("../img/usa-icons/add.svg"), linear-gradient(transparent, transparent);
+      -webkit-mask-position:center center;
+              mask-position:center center;
+      -webkit-mask-repeat:no-repeat;
+              mask-repeat:no-repeat;
+      -webkit-mask-size:1.5rem 1.5rem;
+              mask-size:1.5rem 1.5rem;
+    }
+  }
+}
+
+.usa-alert{
+  background-color:#f0f0f0;
+  border-left:0.5rem solid #a9aeb1;
+  color:#1b1b1b;
+}
+.usa-alert .usa-alert__body{
+  font-family:Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
+  font-size:1.06rem;
+  line-height:1.5;
+  padding-bottom:1rem;
+  padding-top:1rem;
+  position:relative;
+}
+.usa-alert .usa-alert__text{
+  margin-bottom:0;
+  margin-top:0;
+}
+.usa-alert .usa-alert__text:only-child{
+  padding-bottom:0;
+  padding-top:0;
+}
+.usa-alert .usa-alert__heading{
+  font-family:Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
+  font-size:1.46rem;
+  line-height:0.9;
+  margin-top:0;
+  margin-bottom:0.5rem;
+}
+.usa-alert > .usa-list,
+.usa-alert .usa-alert__body > .usa-list{
+  padding-left:2ch;
+}
+.usa-alert > .usa-list:last-child,
+.usa-alert .usa-alert__body > .usa-list:last-child{
+  margin-bottom:0;
+}
+.usa-alert .usa-alert__body{
+  padding-left:1.25rem;
+  padding-right:1.25rem;
+}
+.usa-alert .usa-alert__body::before{
+  left:1.0833333333rem;
+}
+* + .usa-alert{
+  margin-top:1rem;
+}
+
+.usa-alert--success{
+  background-color:#ecf3ec;
+  border-left-color:#00a91c;
+}
+.usa-alert--success .usa-alert__body{
+  color:#1b1b1b;
+  background-color:#ecf3ec;
+  display:flex;
+  flex-direction:column;
+  justify-content:center;
+  min-height:3.3333333333rem;
+}
+.usa-alert--success .usa-alert__body::before{
+  background-image:url("../img/usa-icons/check_circle.svg");
+  background-repeat:no-repeat;
+  background-position:center center;
+  background-size:2rem 2rem;
+  display:inline-block;
+  height:2rem;
+  width:2rem;
+  content:"";
+  display:block;
+  position:absolute;
+  top:0.6666666667rem;
+}
+@supports ((-webkit-mask: url("")) or (mask: url(""))){
+  .usa-alert--success .usa-alert__body::before{
+    background:none;
+    background-color:#1b1b1b;
+    -webkit-mask-image:url("../img/usa-icons/check_circle.svg"), linear-gradient(transparent, transparent);
+            mask-image:url("../img/usa-icons/check_circle.svg"), linear-gradient(transparent, transparent);
+    -webkit-mask-position:center center;
+            mask-position:center center;
+    -webkit-mask-repeat:no-repeat;
+            mask-repeat:no-repeat;
+    -webkit-mask-size:2rem 2rem;
+            mask-size:2rem 2rem;
+  }
+}
+.usa-alert--success .usa-alert__body > *{
+  margin-left:2.5rem;
+}
+.usa-alert--success .usa-alert__body .usa-link{
+  color:#005ea2;
+}
+.usa-alert--success .usa-alert__body .usa-link:visited{
+  color:#54278f;
+}
+.usa-alert--success .usa-alert__body .usa-link:hover, .usa-alert--success .usa-alert__body .usa-link:active{
+  color:#1a4480;
+}
+
+.usa-alert--warning{
+  background-color:#faf3d1;
+  border-left-color:#ffbe2e;
+}
+.usa-alert--warning .usa-alert__body{
+  color:#1b1b1b;
+  background-color:#faf3d1;
+  display:flex;
+  flex-direction:column;
+  justify-content:center;
+  min-height:3.3333333333rem;
+}
+.usa-alert--warning .usa-alert__body::before{
+  background-image:url("../img/usa-icons/warning.svg");
+  background-repeat:no-repeat;
+  background-position:center center;
+  background-size:2rem 2rem;
+  display:inline-block;
+  height:2rem;
+  width:2rem;
+  content:"";
+  display:block;
+  position:absolute;
+  top:0.6666666667rem;
+}
+@supports ((-webkit-mask: url("")) or (mask: url(""))){
+  .usa-alert--warning .usa-alert__body::before{
+    background:none;
+    background-color:#1b1b1b;
+    -webkit-mask-image:url("../img/usa-icons/warning.svg"), linear-gradient(transparent, transparent);
+            mask-image:url("../img/usa-icons/warning.svg"), linear-gradient(transparent, transparent);
+    -webkit-mask-position:center center;
+            mask-position:center center;
+    -webkit-mask-repeat:no-repeat;
+            mask-repeat:no-repeat;
+    -webkit-mask-size:2rem 2rem;
+            mask-size:2rem 2rem;
+  }
+}
+.usa-alert--warning .usa-alert__body > *{
+  margin-left:2.5rem;
+}
+.usa-alert--warning .usa-alert__body .usa-link{
+  color:#005ea2;
+}
+.usa-alert--warning .usa-alert__body .usa-link:visited{
+  color:#54278f;
+}
+.usa-alert--warning .usa-alert__body .usa-link:hover, .usa-alert--warning .usa-alert__body .usa-link:active{
+  color:#1a4480;
+}
+
+.usa-alert--error{
+  background-color:#f4e3db;
+  border-left-color:#d54309;
+}
+.usa-alert--error .usa-alert__body{
+  color:#1b1b1b;
+  background-color:#f4e3db;
+  display:flex;
+  flex-direction:column;
+  justify-content:center;
+  min-height:3.3333333333rem;
+}
+.usa-alert--error .usa-alert__body::before{
+  background-image:url("../img/usa-icons/error.svg");
+  background-repeat:no-repeat;
+  background-position:center center;
+  background-size:2rem 2rem;
+  display:inline-block;
+  height:2rem;
+  width:2rem;
+  content:"";
+  display:block;
+  position:absolute;
+  top:0.6666666667rem;
+}
+@supports ((-webkit-mask: url("")) or (mask: url(""))){
+  .usa-alert--error .usa-alert__body::before{
+    background:none;
+    background-color:#1b1b1b;
+    -webkit-mask-image:url("../img/usa-icons/error.svg"), linear-gradient(transparent, transparent);
+            mask-image:url("../img/usa-icons/error.svg"), linear-gradient(transparent, transparent);
+    -webkit-mask-position:center center;
+            mask-position:center center;
+    -webkit-mask-repeat:no-repeat;
+            mask-repeat:no-repeat;
+    -webkit-mask-size:2rem 2rem;
+            mask-size:2rem 2rem;
+  }
+}
+.usa-alert--error .usa-alert__body > *{
+  margin-left:2.5rem;
+}
+.usa-alert--error .usa-alert__body .usa-link{
+  color:#005ea2;
+}
+.usa-alert--error .usa-alert__body .usa-link:visited{
+  color:#54278f;
+}
+.usa-alert--error .usa-alert__body .usa-link:hover, .usa-alert--error .usa-alert__body .usa-link:active{
+  color:#1a4480;
+}
+
+.usa-alert--info{
+  background-color:#e7f6f8;
+  border-left-color:#00bde3;
+}
+.usa-alert--info .usa-alert__body{
+  color:#1b1b1b;
+  background-color:#e7f6f8;
+  display:flex;
+  flex-direction:column;
+  justify-content:center;
+  min-height:3.3333333333rem;
+}
+.usa-alert--info .usa-alert__body::before{
+  background-image:url("../img/usa-icons/info.svg");
+  background-repeat:no-repeat;
+  background-position:center center;
+  background-size:2rem 2rem;
+  display:inline-block;
+  height:2rem;
+  width:2rem;
+  content:"";
+  display:block;
+  position:absolute;
+  top:0.6666666667rem;
+}
+@supports ((-webkit-mask: url("")) or (mask: url(""))){
+  .usa-alert--info .usa-alert__body::before{
+    background:none;
+    background-color:#1b1b1b;
+    -webkit-mask-image:url("../img/usa-icons/info.svg"), linear-gradient(transparent, transparent);
+            mask-image:url("../img/usa-icons/info.svg"), linear-gradient(transparent, transparent);
+    -webkit-mask-position:center center;
+            mask-position:center center;
+    -webkit-mask-repeat:no-repeat;
+            mask-repeat:no-repeat;
+    -webkit-mask-size:2rem 2rem;
+            mask-size:2rem 2rem;
+  }
+}
+.usa-alert--info .usa-alert__body > *{
+  margin-left:2.5rem;
+}
+.usa-alert--info .usa-alert__body .usa-link{
+  color:#005ea2;
+}
+.usa-alert--info .usa-alert__body .usa-link:visited{
+  color:#54278f;
+}
+.usa-alert--info .usa-alert__body .usa-link:hover, .usa-alert--info .usa-alert__body .usa-link:active{
+  color:#1a4480;
+}
+
+.usa-alert--emergency{
+  background-color:#9c3d10;
+  border-left-color:#9c3d10;
+}
+.usa-alert--emergency .usa-alert__body{
+  color:white;
+  background-color:#9c3d10;
+  display:flex;
+  flex-direction:column;
+  justify-content:center;
+  min-height:3.3333333333rem;
+}
+.usa-alert--emergency .usa-alert__body::before{
+  background-image:url("../img/usa-icons-bg/error--white.svg");
+  background-repeat:no-repeat;
+  background-position:center center;
+  background-size:2rem 2rem;
+  display:inline-block;
+  height:2rem;
+  width:2rem;
+  content:"";
+  display:block;
+  position:absolute;
+  top:0.6666666667rem;
+}
+@supports ((-webkit-mask: url("")) or (mask: url(""))){
+  .usa-alert--emergency .usa-alert__body::before{
+    background:none;
+    background-color:white;
+    -webkit-mask-image:url("../img/usa-icons/error.svg"), linear-gradient(transparent, transparent);
+            mask-image:url("../img/usa-icons/error.svg"), linear-gradient(transparent, transparent);
+    -webkit-mask-position:center center;
+            mask-position:center center;
+    -webkit-mask-repeat:no-repeat;
+            mask-repeat:no-repeat;
+    -webkit-mask-size:2rem 2rem;
+            mask-size:2rem 2rem;
+  }
+}
+.usa-alert--emergency .usa-alert__body > *{
+  margin-left:2.5rem;
+}
+.usa-alert--emergency .usa-alert__body .usa-link{
+  color:#dfe1e2;
+}
+.usa-alert--emergency .usa-alert__body .usa-link:visited{
+  color:#dfe1e2;
+}
+.usa-alert--emergency .usa-alert__body .usa-link:hover, .usa-alert--emergency .usa-alert__body .usa-link:active{
+  color:#f0f0f0;
+}
+
+.usa-alert--slim .usa-alert__body{
+  padding-bottom:0.5rem;
+  padding-top:0.5rem;
+  min-height:0;
+}
+.usa-alert--slim .usa-alert__body:before{
+  height:1.5rem;
+  top:0.5rem;
+  width:1.5rem;
+}
+@supports ((-webkit-mask: url("")) or (mask: url(""))){
+  .usa-alert--slim .usa-alert__body:before{
+    -webkit-mask-size:1.5rem;
+            mask-size:1.5rem;
+  }
+}
+.usa-alert--slim .usa-alert__body > *{
+  margin-left:2rem;
+}
+.usa-alert--slim .usa-alert__body::before{
+  left:1.125rem;
+}
+
+.usa-alert--no-icon .usa-alert__body{
+  min-height:0;
+}
+.usa-alert--no-icon .usa-alert__body:before{
+  display:none;
+}
+.usa-alert--no-icon .usa-alert__body > *{
+  margin-left:0;
+}
+
+.usa-alert--validation .usa-checklist{
+  margin-top:1rem;
+}
+
+.usa-banner{
+  font-family:Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
+  font-size:1.06rem;
+  line-height:1.5;
+  background-color:#f0f0f0;
+}
+@media all and (min-width: 40em){
+  .usa-banner{
+    font-size:0.87rem;
+    padding-bottom:0rem;
+  }
+}
+.usa-banner .usa-accordion{
+  font-family:Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
+  font-size:1.06rem;
+  line-height:1.5;
+}
+.usa-banner .grid-row{
+  display:flex;
+  flex-wrap:wrap;
+}
+.usa-banner .grid-row.grid-gap-lg{
+  margin-left:-0.75rem;
+  margin-right:-0.75rem;
+}
+.usa-banner .grid-row.grid-gap-lg > *{
+  padding-left:0.75rem;
+  padding-right:0.75rem;
+}
+@media all and (min-width: 40em){
+  .usa-banner .grid-row .tablet\:grid-col-6{
+    flex:0 1 auto;
+    width:50%;
+  }
+}
+
+.usa-banner__header,
+.usa-banner__content{
+  color:#1b1b1b;
+}
+
+.usa-banner__content{
+  margin-left:auto;
+  margin-right:auto;
+  max-width:64rem;
+  padding-left:1rem;
+  padding-right:1rem;
+  padding-left:1rem;
+  padding-right:1rem;
+  background-color:transparent;
+  font-size:1rem;
+  overflow:hidden;
+  padding-bottom:1rem;
+  padding-left:0.5rem;
+  padding-top:0.25rem;
+  width:100%;
+}
+@media all and (min-width: 64em){
+  .usa-banner__content{
+    padding-left:2rem;
+    padding-right:2rem;
+  }
+}
+@media all and (min-width: 64em){
+  .usa-banner__content{
+    padding-left:2rem;
+    padding-right:2rem;
+  }
+}
+@media all and (min-width: 40em){
+  .usa-banner__content{
+    padding-bottom:1.5rem;
+    padding-top:1.5rem;
+  }
+}
+.usa-banner__content p:first-child{
+  margin:0;
+}
+
+.usa-banner__guidance{
+  display:flex;
+  align-items:flex-start;
+  max-width:64ex;
+  padding-top:1rem;
+}
+@media all and (min-width: 40em){
+  .usa-banner__guidance{
+    padding-top:0rem;
+  }
+}
+
+.usa-banner__lock-image{
+  height:1.5ex;
+  width:1.21875ex;
+}
+.usa-banner__lock-image path{
+  fill:currentColor;
+}
+@media (forced-colors: active){
+  .usa-banner__lock-image path{
+    fill:CanvasText;
+  }
+}
+
+.usa-banner__inner{
+  padding-left:1rem;
+  padding-right:1rem;
+  margin-left:auto;
+  margin-right:auto;
+  max-width:64rem;
+  padding-left:1rem;
+  padding-right:1rem;
+  display:flex;
+  flex-wrap:wrap;
+  align-items:flex-start;
+  padding-right:0rem;
+}
+@media all and (min-width: 64em){
+  .usa-banner__inner{
+    padding-left:2rem;
+    padding-right:2rem;
+  }
+}
+@media all and (min-width: 64em){
+  .usa-banner__inner{
+    padding-left:2rem;
+    padding-right:2rem;
+  }
+}
+@media all and (min-width: 40em){
+  .usa-banner__inner{
+    align-items:center;
+  }
+}
+
+.usa-banner__header{
+  padding-bottom:0.5rem;
+  padding-top:0.5rem;
+  font-size:0.8rem;
+  font-weight:normal;
+  min-height:3rem;
+  position:relative;
+}
+@media all and (min-width: 40em){
+  .usa-banner__header{
+    padding-bottom:0.25rem;
+    padding-top:0.25rem;
+    min-height:0;
+  }
+}
+
+.usa-banner__header-text{
+  margin-bottom:0;
+  margin-top:0;
+  font-size:0.8rem;
+  line-height:1.1;
+}
+
+.usa-banner__header-action{
+  color:#005ea2;
+  line-height:1.1;
+  margin-bottom:0rem;
+  margin-top:2px;
+  text-decoration:underline;
+}
+.usa-banner__header-action::after{
+  background-image:url("../img/usa-icons/expand_more.svg");
+  background-repeat:no-repeat;
+  background-position:center center;
+  background-size:1rem 1rem;
+  display:inline-block;
+  height:1rem;
+  width:1rem;
+  content:"";
+  vertical-align:middle;
+  margin-left:auto;
+}
+@supports ((-webkit-mask: url("")) or (mask: url(""))){
+  .usa-banner__header-action::after{
+    background:none;
+    background-color:#005ea2;
+    -webkit-mask-image:url("../img/usa-icons/expand_more.svg"), linear-gradient(transparent, transparent);
+            mask-image:url("../img/usa-icons/expand_more.svg"), linear-gradient(transparent, transparent);
+    -webkit-mask-position:center center;
+            mask-position:center center;
+    -webkit-mask-repeat:no-repeat;
+            mask-repeat:no-repeat;
+    -webkit-mask-size:1rem 1rem;
+            mask-size:1rem 1rem;
+  }
+  .usa-banner__header-action::after:hover{
+    background-color:#1a4480;
+  }
+}
+.usa-banner__header-action:hover::after{
+  content:"";
+  background-color:#1a4480;
+}
+.usa-banner__header-action:visited{
+  color:#54278f;
+}
+.usa-banner__header-action:hover, .usa-banner__header-action:active{
+  color:#1a4480;
+}
+.usa-banner__header--expanded .usa-banner__header-action{
+  display:none;
+}
+@media all and (min-width: 40em){
+  .usa-banner__header-action{
+    display:none;
+  }
+}
+@media (forced-colors: active){
+  .usa-banner__header-action{
+    color:LinkText;
+  }
+  .usa-banner__header-action::after{
+    background-color:ButtonText;
+  }
+}
+
+.usa-banner__header-flag{
+  float:left;
+  margin-right:0.5rem;
+  width:1rem;
+}
+@media all and (min-width: 40em){
+  .usa-banner__header-flag{
+    margin-right:0.5rem;
+    padding-top:0rem;
+  }
+}
+
+.usa-banner__header--expanded{
+  padding-right:3.5rem;
+}
+@media all and (min-width: 40em){
+  .usa-banner__header--expanded{
+    background-color:transparent;
+    display:block;
+    font-size:0.8rem;
+    font-weight:normal;
+    min-height:0rem;
+    padding-right:0rem;
+  }
+}
+.usa-banner__header--expanded .usa-banner__inner{
+  margin-left:0rem;
+}
+@media all and (min-width: 40em){
+  .usa-banner__header--expanded .usa-banner__inner{
+    margin-left:auto;
+  }
+}
+.usa-banner__header--expanded .usa-banner__header-action{
+  display:none;
+}
+
+.usa-banner__button{
+  color:#005ea2;
+  text-decoration:underline;
+  background-color:transparent;
+  border:0;
+  border-radius:0;
+  box-shadow:none;
+  font-weight:normal;
+  justify-content:normal;
+  text-align:left;
+  margin:0;
+  padding:0;
+  width:auto;
+  position:absolute;
+  left:0;
+  position:absolute;
+  bottom:0;
+  top:0;
+  color:#005ea2;
+  text-decoration:underline;
+  color:#005ea2;
+  display:block;
+  font-size:0.8rem;
+  height:auto;
+  line-height:1.1;
+  padding-top:0rem;
+  padding-left:0rem;
+  text-decoration:none;
+  width:auto;
+}
+.usa-banner__button:visited{
+  color:#54278f;
+}
+.usa-banner__button:hover{
+  color:#1a4480;
+}
+.usa-banner__button:active{
+  color:#162e51;
+}
+.usa-banner__button:focus{
+  outline:0.25rem solid #2491ff;
+  outline-offset:0rem;
+}
+.usa-banner__button:hover, .usa-banner__button.usa-button--hover, .usa-banner__button:disabled:hover, .usa-banner__button[aria-disabled=true]:hover, .usa-banner__button:disabled.usa-button--hover, .usa-banner__button[aria-disabled=true].usa-button--hover, .usa-banner__button:active, .usa-banner__button.usa-button--active, .usa-banner__button:disabled:active, .usa-banner__button[aria-disabled=true]:active, .usa-banner__button:disabled.usa-button--active, .usa-banner__button[aria-disabled=true].usa-button--active, .usa-banner__button:disabled:focus, .usa-banner__button[aria-disabled=true]:focus, .usa-banner__button:disabled.usa-focus, .usa-banner__button[aria-disabled=true].usa-focus, .usa-banner__button:disabled, .usa-banner__button[aria-disabled=true], .usa-banner__button.usa-button--disabled{
+  background-color:transparent;
+  box-shadow:none;
+  text-decoration:underline;
+}
+.usa-banner__button.usa-button--hover{
+  color:#1a4480;
+}
+.usa-banner__button.usa-button--active{
+  color:#162e51;
+}
+.usa-banner__button:disabled, .usa-banner__button[aria-disabled=true], .usa-banner__button:disabled:hover, .usa-banner__button[aria-disabled=true]:hover, .usa-banner__button[aria-disabled=true]:focus{
+  color:#757575;
+}
+@media (forced-colors: active){
+  .usa-banner__button:disabled, .usa-banner__button[aria-disabled=true], .usa-banner__button:disabled:hover, .usa-banner__button[aria-disabled=true]:hover, .usa-banner__button[aria-disabled=true]:focus{
+    color:GrayText;
+  }
+}
+.usa-banner__button:visited{
+  color:#54278f;
+}
+.usa-banner__button:hover, .usa-banner__button:active{
+  color:#1a4480;
+}
+@media all and (max-width: 39.99em){
+  .usa-banner__button{
+    width:100%;
+  }
+  .usa-banner__button:enabled:focus{
+    outline-offset:-0.25rem;
+  }
+}
+@media all and (min-width: 40em){
+  .usa-banner__button{
+    color:#005ea2;
+    position:static;
+    bottom:auto;
+    left:auto;
+    right:auto;
+    top:auto;
+    display:inline;
+    margin-left:0.5rem;
+    position:relative;
+  }
+  .usa-banner__button::after{
+    background-image:url("../img/usa-icons/expand_more.svg");
+    background-repeat:no-repeat;
+    background-position:center center;
+    background-size:1rem 1rem;
+    display:inline-block;
+    height:1rem;
+    width:1rem;
+    content:"";
+    vertical-align:middle;
+    margin-left:2px;
+  }
+  @supports ((-webkit-mask: url("")) or (mask: url(""))){
+    .usa-banner__button::after{
+      background:none;
+      background-color:#005ea2;
+      -webkit-mask-image:url("../img/usa-icons/expand_more.svg"), linear-gradient(transparent, transparent);
+              mask-image:url("../img/usa-icons/expand_more.svg"), linear-gradient(transparent, transparent);
+      -webkit-mask-position:center center;
+              mask-position:center center;
+      -webkit-mask-repeat:no-repeat;
+              mask-repeat:no-repeat;
+      -webkit-mask-size:1rem 1rem;
+              mask-size:1rem 1rem;
+    }
+    .usa-banner__button::after:hover{
+      background-color:#1a4480;
+    }
+  }
+  .usa-banner__button:hover::after{
+    content:"";
+    background-color:#1a4480;
+  }
+  .usa-banner__button:visited{
+    color:#54278f;
+  }
+  .usa-banner__button:hover, .usa-banner__button:active{
+    color:#1a4480;
+  }
+  .usa-banner__button::after, .usa-banner__button:hover::after{
+    position:absolute;
+  }
+}
+@media (min-width: 40em) and (forced-colors: active){
+  .usa-banner__button::after, .usa-banner__button:hover::after{
+    background-color:ButtonText;
+  }
+}
+@media all and (min-width: 40em){
+  .usa-banner__button:hover{
+    text-decoration:none;
+  }
+}
+.usa-banner__button[aria-expanded=false], .usa-banner__button[aria-expanded=false]:hover, .usa-banner__button[aria-expanded=true], .usa-banner__button[aria-expanded=true]:hover{
+  background-image:none;
+}
+@media (forced-colors: active){
+  .usa-banner__button[aria-expanded=false]::before, .usa-banner__button[aria-expanded=false]:hover::before, .usa-banner__button[aria-expanded=true]::before, .usa-banner__button[aria-expanded=true]:hover::before{
+    content:none;
+  }
+}
+@media all and (max-width: 39.99em){
+  .usa-banner__button[aria-expanded=true]::after{
+    background-image:url("../img/usa-icons/close.svg");
+    background-repeat:no-repeat;
+    background-position:center center;
+    background-size:1.5rem 1.5rem;
+    display:inline-block;
+    height:3rem;
+    width:3rem;
+    content:"";
+    vertical-align:middle;
+    margin-left:0rem;
+  }
+  @supports ((-webkit-mask: url("")) or (mask: url(""))){
+    .usa-banner__button[aria-expanded=true]::after{
+      background:none;
+      background-color:#005ea2;
+      -webkit-mask-image:url("../img/usa-icons/close.svg"), linear-gradient(transparent, transparent);
+              mask-image:url("../img/usa-icons/close.svg"), linear-gradient(transparent, transparent);
+      -webkit-mask-position:center center;
+              mask-position:center center;
+      -webkit-mask-repeat:no-repeat;
+              mask-repeat:no-repeat;
+      -webkit-mask-size:1.5rem 1.5rem;
+              mask-size:1.5rem 1.5rem;
+    }
+  }
+  .usa-banner__button[aria-expanded=true]::before{
+    position:absolute;
+    bottom:0;
+    top:0;
+    position:absolute;
+    right:0;
+    background-color:#dfe1e2;
+    content:"";
+    display:block;
+    height:3rem;
+    width:3rem;
+  }
+  .usa-banner__button[aria-expanded=true]::after{
+    position:absolute;
+    bottom:0;
+    top:0;
+    position:absolute;
+    right:0;
+  }
+}
+@media all and (min-width: 40em){
+  .usa-banner__button[aria-expanded=true]{
+    height:auto;
+    padding:0rem;
+    position:relative;
+  }
+  .usa-banner__button[aria-expanded=true]::after{
+    background-image:url("../img/usa-icons/expand_less.svg");
+    background-repeat:no-repeat;
+    background-position:center center;
+    background-size:1rem 1rem;
+    display:inline-block;
+    height:1rem;
+    width:1rem;
+    content:"";
+    vertical-align:middle;
+    margin-left:2px;
+  }
+  @supports ((-webkit-mask: url("")) or (mask: url(""))){
+    .usa-banner__button[aria-expanded=true]::after{
+      background:none;
+      background-color:#005ea2;
+      -webkit-mask-image:url("../img/usa-icons/expand_less.svg"), linear-gradient(transparent, transparent);
+              mask-image:url("../img/usa-icons/expand_less.svg"), linear-gradient(transparent, transparent);
+      -webkit-mask-position:center center;
+              mask-position:center center;
+      -webkit-mask-repeat:no-repeat;
+              mask-repeat:no-repeat;
+      -webkit-mask-size:1rem 1rem;
+              mask-size:1rem 1rem;
+    }
+    .usa-banner__button[aria-expanded=true]::after:hover{
+      background-color:#1a4480;
+    }
+  }
+  .usa-banner__button[aria-expanded=true]:hover::after{
+    content:"";
+    background-color:#1a4480;
+  }
+  .usa-banner__button[aria-expanded=true]::after, .usa-banner__button[aria-expanded=true]:hover::after{
+    position:absolute;
+  }
+}
+@media (min-width: 40em) and (forced-colors: active){
+  .usa-banner__button[aria-expanded=true]::after, .usa-banner__button[aria-expanded=true]:hover::after{
+    background-color:ButtonText;
+  }
+}
+
+.usa-banner__button-text{
+  position:absolute;
+  left:-999em;
+  right:auto;
+  text-decoration:underline;
+}
+@media all and (min-width: 40em){
+  .usa-banner__button-text{
+    position:static;
+    display:inline;
+  }
+}
+@media (forced-colors: active){
+  .usa-banner__button-text{
+    color:LinkText;
+  }
+}
+
+.usa-banner__icon{
+  width:2.5rem;
+}
+
+.usa-js-loading .usa-banner__content{
+  position:absolute;
+  left:-999em;
+  right:auto;
+}
+
+.usa-breadcrumb{
+  font-family:Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
+  font-size:1.06rem;
+  line-height:1.3;
+  color:#1b1b1b;
+  background-color:white;
+  padding-left:0;
+  padding-right:0;
+}
+@media all and (min-width: 30em){
+  .usa-breadcrumb{
+    padding-bottom:1rem;
+    padding-top:1rem;
+  }
+}
+@media all and (min-width: 30em){
+  .usa-breadcrumb:not(.usa-breadcrumb--wrap) .usa-breadcrumb__list{
+    white-space:nowrap;
+    text-overflow:ellipsis;
+    overflow:hidden;
+  }
+}
+
+.usa-breadcrumb__list{
+  margin-bottom:0;
+  margin-top:0;
+  list-style-type:none;
+  padding-left:0;
+  display:block;
+  padding:0.25rem;
+  margin-left:-0.25rem;
+  margin-right:-0.25rem;
+}
+.usa-breadcrumb__list > li{
+  margin-bottom:0;
+  max-width:unset;
+}
+
+.usa-breadcrumb__list-item{
+  position:absolute;
+  left:-999em;
+  right:auto;
+  display:inline;
+}
+@media all and (max-width: 29.99em){
+  .usa-breadcrumb__list-item{
+    white-space:normal;
+  }
+  .usa-breadcrumb__list-item:nth-last-child(2){
+    position:static;
+  }
+  .usa-breadcrumb__list-item:nth-last-child(2) .usa-breadcrumb__link{
+    padding-left:calc(2ex + 0px);
+    text-indent:calc((2ex + 0px) * -1);
+    display:inline-block;
+    padding-bottom:1rem;
+    padding-top:1rem;
+  }
+  .usa-breadcrumb__list-item:nth-last-child(2) .usa-breadcrumb__link::before{
+    background-image:url("../img/usa-icons/arrow_back.svg");
+    background-repeat:no-repeat;
+    background-position:center center;
+    background-size:2ex 2ex;
+    display:inline-block;
+    height:2ex;
+    width:2ex;
+    content:"";
+    vertical-align:baseline;
+    margin-right:0rem;
+  }
+  @supports ((-webkit-mask: url("")) or (mask: url(""))){
+    .usa-breadcrumb__list-item:nth-last-child(2) .usa-breadcrumb__link::before{
+      background:none;
+      background-color:#71767a;
+      -webkit-mask-image:url("../img/usa-icons/arrow_back.svg"), linear-gradient(transparent, transparent);
+              mask-image:url("../img/usa-icons/arrow_back.svg"), linear-gradient(transparent, transparent);
+      -webkit-mask-position:center center;
+              mask-position:center center;
+      -webkit-mask-repeat:no-repeat;
+              mask-repeat:no-repeat;
+      -webkit-mask-size:2ex 2ex;
+              mask-size:2ex 2ex;
+    }
+  }
+  .usa-breadcrumb__list-item:nth-last-child(2) .usa-breadcrumb__link:before{
+    bottom:-0.2em;
+    height:2ex;
+    position:relative;
+  }
+  .usa-breadcrumb__list-item:nth-last-child(2) .usa-breadcrumb__link, .usa-breadcrumb__list-item:nth-last-child(2) .usa-breadcrumb__link:hover, .usa-breadcrumb__list-item:nth-last-child(2) .usa-breadcrumb__link:active{
+    text-decoration:none;
+  }
+  .usa-breadcrumb__list-item:nth-last-child(2) .usa-breadcrumb__link span{
+    text-decoration:underline;
+  }
+  .usa-breadcrumb__list-item:nth-last-child(2) .usa-breadcrumb__link::before{
+    margin-right:0px;
+  }
+}
+@media all and (min-width: 30em){
+  .usa-breadcrumb__list-item{
+    position:static;
+  }
+  .usa-breadcrumb__list-item:not(:last-child)::after{
+    background-image:url("../img/usa-icons/navigate_next.svg");
+    background-repeat:no-repeat;
+    background-position:center center;
+    background-size:2ex 2ex;
+    display:inline-block;
+    height:2ex;
+    width:2ex;
+    content:"";
+    vertical-align:baseline;
+    margin-left:0rem;
+  }
+  @supports ((-webkit-mask: url("")) or (mask: url(""))){
+    .usa-breadcrumb__list-item:not(:last-child)::after{
+      background:none;
+      background-color:#71767a;
+      -webkit-mask-image:url("../img/usa-icons/navigate_next.svg"), linear-gradient(transparent, transparent);
+              mask-image:url("../img/usa-icons/navigate_next.svg"), linear-gradient(transparent, transparent);
+      -webkit-mask-position:center center;
+              mask-position:center center;
+      -webkit-mask-repeat:no-repeat;
+              mask-repeat:no-repeat;
+      -webkit-mask-size:2ex 2ex;
+              mask-size:2ex 2ex;
+    }
+  }
+  .usa-breadcrumb__list-item:not(:last-child)::after{
+    bottom:-0.2em;
+    margin-left:0px;
+    margin-right:0px;
+    height:2ex;
+    position:relative;
+  }
+}
+
+.usa-breadcrumb__link{
+  color:#005ea2;
+  display:inline;
+  text-decoration:none;
+}
+.usa-breadcrumb__link:visited{
+  color:#54278f;
+}
+.usa-breadcrumb__link:hover, .usa-breadcrumb__link:active{
+  color:#1a4480;
+}
+.usa-breadcrumb__link span{
+  text-decoration:underline;
+}
+
+@media all and (min-width: 30em){
+  .usa-breadcrumb--wrap{
+    line-height:1.4;
+  }
+}
+.usa-breadcrumb--wrap .usa-breadcrumb__list-item{
+  display:inline-block;
+}
+
+.usa-button-group{
+  margin-bottom:0;
+  margin-top:0;
+  display:flex;
+  flex-direction:column;
+  flex-wrap:wrap;
+  list-style-type:none;
+  margin-left:-0.25rem;
+  margin-right:-0.25rem;
+  padding-left:0;
+}
+@media all and (min-width: 30em){
+  .usa-button-group{
+    flex-wrap:nowrap;
+    align-items:stretch;
+    flex-direction:row;
+  }
+}
+.usa-button-group .usa-button-group{
+  height:100%;
+}
+@media all and (min-width: 30em){
+  .usa-button-group .usa-button-group .usa-button-group__item{
+    margin-top:0;
+    margin-bottom:0;
+  }
+}
+.usa-button-group .usa-button-group--segmented .usa-button-group__item{
+  margin-top:0;
+  margin-bottom:0;
+}
+
+.usa-button-group__item{
+  margin:0.25rem;
+}
+@media all and (min-width: 30em){
+  .usa-button-group__item:last-child{
+    margin-right:0;
+  }
+}
+.usa-button-group__item .usa-button{
+  height:100%;
+  margin-left:0;
+  margin-right:0;
+}
+
+.usa-button-group--segmented{
+  flex-direction:row;
+  flex-wrap:nowrap;
+  justify-content:space-between;
+  margin-left:0;
+  margin-right:0;
+}
+@media all and (min-width: 30em){
+  .usa-button-group--segmented{
+    justify-content:flex-start;
+  }
+}
+.usa-button-group--segmented .usa-button{
+  position:relative;
+  width:calc(100% + 2px);
+}
+@media all and (min-width: 30em){
+  .usa-button-group--segmented .usa-button{
+    width:auto;
+  }
+}
+.usa-button-group--segmented .usa-button:hover, .usa-button-group--segmented .usa-button:active{
+  z-index:2;
+}
+.usa-button-group--segmented .usa-button:focus{
+  z-index:3;
+}
+.usa-button-group--segmented .usa-button-group__item{
+  margin-left:0;
+  margin-right:0;
+  width:100%;
+}
+@media all and (min-width: 30em){
+  .usa-button-group--segmented .usa-button-group__item{
+    width:auto;
+  }
+}
+.usa-button-group--segmented .usa-button-group__item:first-child > .usa-button{
+  border-top-right-radius:0;
+  border-bottom-right-radius:0;
+  margin-right:-1px;
+}
+.usa-button-group--segmented .usa-button-group__item:last-child > .usa-button{
+  border-top-left-radius:0;
+  border-bottom-left-radius:0;
+  margin-right:0;
+  margin-left:-2px;
+  width:calc(100% + 2px);
+}
+@media all and (min-width: 30em){
+  .usa-button-group--segmented .usa-button-group__item:last-child > .usa-button{
+    margin-left:-1px;
+    width:auto;
+  }
+}
+.usa-button-group--segmented .usa-button-group__item:where(:not(:first-child):not(:last-child)) > .usa-button{
+  border-radius:0;
+  margin-right:-1px;
+  margin-left:-1px;
+}
+.usa-button-group--segmented .usa-button-group__item:where(:not(:last-child)) .usa-button::before{
+  border-right:1px solid #1a4480;
+  bottom:0;
+  content:"";
+  display:block;
+  height:100%;
+  position:absolute;
+  right:1px;
+  top:0;
+  width:1px;
+  z-index:3;
+}
+.usa-button-group--segmented .usa-button-group__item:where(:not(:last-child)) .usa-button--secondary::before{
+  border-right-color:#b50909;
+}
+.usa-button-group--segmented .usa-button-group__item:where(:not(:last-child)) .usa-button--accent-cool::before{
+  border-right-color:#28a0cb;
+}
+.usa-button-group--segmented .usa-button-group__item:where(:not(:last-child)) .usa-button--base::before{
+  border-right-color:#565c65;
+}
+.usa-button-group--segmented .usa-button-group__item:where(:not(:last-child)) [class*=usa-button]:disabled::before,
+.usa-button-group--segmented .usa-button-group__item:where(:not(:last-child)) [class*=usa-button][aria-disabled=true]::before{
+  border-right-color:white;
+}
+.usa-button-group--segmented .usa-button-group__item:where(:not(:last-child)) .usa-button:active::before,
+.usa-button-group--segmented .usa-button-group__item:where(:not(:last-child)) .usa-button--outline::before{
+  display:none;
+}
+
+.usa-button{
+  font-family:Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
+  font-size:1.06rem;
+  line-height:0.9;
+  color:white;
+  background-color:#005ea2;
+  -webkit-appearance:none;
+     -moz-appearance:none;
+          appearance:none;
+  align-items:center;
+  border:0;
+  border-radius:0.25rem;
+  cursor:pointer;
+  -moz-column-gap:0.5rem;
+       column-gap:0.5rem;
+  display:inline-flex;
+  font-weight:700;
+  justify-content:center;
+  margin-right:0.5rem;
+  padding:0.75rem 1.25rem;
+  text-align:center;
+  text-decoration:none;
+  width:100%;
+}
+@media all and (min-width: 30em){
+  .usa-button{
+    width:auto;
+  }
+}
+.usa-button:visited{
+  color:white;
+}
+.usa-button:hover, .usa-button.usa-button--hover{
+  color:white;
+  background-color:#1a4480;
+  border-bottom:0;
+  text-decoration:none;
+}
+.usa-button:active, .usa-button.usa-button--active{
+  color:white;
+  background-color:#162e51;
+}
+.usa-button:not([disabled]):focus, .usa-button:not([disabled]).usa-focus{
+  outline-offset:0.25rem;
+}
+.usa-button:disabled, .usa-button[aria-disabled=true]{
+  color:#454545;
+  background-color:#c9c9c9;
+  cursor:not-allowed;
+  opacity:1;
+}
+.usa-button:disabled:hover, .usa-button:disabled:active, .usa-button:disabled:focus, .usa-button:disabled.usa-focus, .usa-button[aria-disabled=true]:hover, .usa-button[aria-disabled=true]:active, .usa-button[aria-disabled=true]:focus, .usa-button[aria-disabled=true].usa-focus{
+  color:#454545;
+  background-color:#c9c9c9;
+}
+@media (forced-colors: active){
+  .usa-button:disabled, .usa-button[aria-disabled=true]{
+    border:0;
+    color:GrayText;
+  }
+  .usa-button:disabled:hover, .usa-button:disabled:active, .usa-button:disabled:focus, .usa-button:disabled.usa-focus, .usa-button[aria-disabled=true]:hover, .usa-button[aria-disabled=true]:active, .usa-button[aria-disabled=true]:focus, .usa-button[aria-disabled=true].usa-focus{
+    color:GrayText;
+  }
+}
+.usa-button:disabled.usa-button--hover, .usa-button:disabled.usa-button--active, .usa-button[aria-disabled=true].usa-button--hover, .usa-button[aria-disabled=true].usa-button--active{
+  color:#454545;
+  background-color:#c9c9c9;
+  cursor:not-allowed;
+  opacity:1;
+}
+.usa-button:disabled.usa-button--hover:hover, .usa-button:disabled.usa-button--hover:active, .usa-button:disabled.usa-button--hover:focus, .usa-button:disabled.usa-button--hover.usa-focus, .usa-button:disabled.usa-button--active:hover, .usa-button:disabled.usa-button--active:active, .usa-button:disabled.usa-button--active:focus, .usa-button:disabled.usa-button--active.usa-focus, .usa-button[aria-disabled=true].usa-button--hover:hover, .usa-button[aria-disabled=true].usa-button--hover:active, .usa-button[aria-disabled=true].usa-button--hover:focus, .usa-button[aria-disabled=true].usa-button--hover.usa-focus, .usa-button[aria-disabled=true].usa-button--active:hover, .usa-button[aria-disabled=true].usa-button--active:active, .usa-button[aria-disabled=true].usa-button--active:focus, .usa-button[aria-disabled=true].usa-button--active.usa-focus{
+  color:#454545;
+  background-color:#c9c9c9;
+}
+@media (forced-colors: active){
+  .usa-button:disabled.usa-button--hover, .usa-button:disabled.usa-button--active, .usa-button[aria-disabled=true].usa-button--hover, .usa-button[aria-disabled=true].usa-button--active{
+    border:0;
+    color:GrayText;
+  }
+  .usa-button:disabled.usa-button--hover:hover, .usa-button:disabled.usa-button--hover:active, .usa-button:disabled.usa-button--hover:focus, .usa-button:disabled.usa-button--hover.usa-focus, .usa-button:disabled.usa-button--active:hover, .usa-button:disabled.usa-button--active:active, .usa-button:disabled.usa-button--active:focus, .usa-button:disabled.usa-button--active.usa-focus, .usa-button[aria-disabled=true].usa-button--hover:hover, .usa-button[aria-disabled=true].usa-button--hover:active, .usa-button[aria-disabled=true].usa-button--hover:focus, .usa-button[aria-disabled=true].usa-button--hover.usa-focus, .usa-button[aria-disabled=true].usa-button--active:hover, .usa-button[aria-disabled=true].usa-button--active:active, .usa-button[aria-disabled=true].usa-button--active:focus, .usa-button[aria-disabled=true].usa-button--active.usa-focus{
+    color:GrayText;
+  }
+}
+@media (forced-colors: active){
+  .usa-button:disabled:not(.usa-button--unstyled), .usa-button[aria-disabled=true]:not(.usa-button--unstyled){
+    border:2px solid GrayText;
+  }
+}
+.usa-button .usa-icon{
+  flex-shrink:0;
+}
+@media (forced-colors: active){
+  .usa-button:not(.usa-button--unstyled){
+    border:2px solid transparent;
+  }
+}
+
+.usa-button--accent-cool{
+  color:#1b1b1b;
+  background-color:#00bde3;
+}
+.usa-button--accent-cool:visited{
+  color:#1b1b1b;
+  background-color:#00bde3;
+}
+.usa-button--accent-cool:hover, .usa-button--accent-cool.usa-button--hover{
+  color:#1b1b1b;
+  background-color:#28a0cb;
+}
+.usa-button--accent-cool:active, .usa-button--accent-cool.usa-button--active{
+  color:white;
+  background-color:#07648d;
+}
+
+.usa-button--accent-warm{
+  color:#1b1b1b;
+  background-color:#fa9441;
+}
+.usa-button--accent-warm:visited{
+  color:#1b1b1b;
+  background-color:#fa9441;
+}
+.usa-button--accent-warm:hover, .usa-button--accent-warm.usa-button--hover{
+  color:white;
+  background-color:#c05600;
+}
+.usa-button--accent-warm:active, .usa-button--accent-warm.usa-button--active{
+  color:white;
+  background-color:#775540;
+}
+
+.usa-button--outline{
+  background-color:transparent;
+  box-shadow:inset 0 0 0 2px #005ea2;
+  color:#005ea2;
+}
+.usa-button--outline:visited{
+  color:#005ea2;
+}
+.usa-button--outline:hover, .usa-button--outline.usa-button--hover{
+  background-color:transparent;
+  box-shadow:inset 0 0 0 2px #1a4480;
+  color:#1a4480;
+}
+.usa-button--outline:active, .usa-button--outline.usa-button--active{
+  background-color:transparent;
+  box-shadow:inset 0 0 0 2px #162e51;
+  color:#162e51;
+}
+.usa-button--outline.usa-button--inverse{
+  box-shadow:inset 0 0 0 2px #dfe1e2;
+  color:#dfe1e2;
+}
+.usa-button--outline.usa-button--inverse:visited{
+  color:#dfe1e2;
+}
+.usa-button--outline.usa-button--inverse:hover, .usa-button--outline.usa-button--inverse.usa-button--hover{
+  box-shadow:inset 0 0 0 2px #f0f0f0;
+  color:#f0f0f0;
+}
+.usa-button--outline.usa-button--inverse:active, .usa-button--outline.usa-button--inverse.usa-button--active{
+  background-color:transparent;
+  box-shadow:inset 0 0 0 2px white;
+  color:white;
+}
+.usa-button--outline.usa-button--inverse.usa-button--unstyled{
+  color:#005ea2;
+  text-decoration:underline;
+  background-color:transparent;
+  border:0;
+  border-radius:0;
+  box-shadow:none;
+  font-weight:normal;
+  justify-content:normal;
+  text-align:left;
+  margin:0;
+  padding:0;
+  width:auto;
+  color:#dfe1e2;
+}
+.usa-button--outline.usa-button--inverse.usa-button--unstyled:visited{
+  color:#54278f;
+}
+.usa-button--outline.usa-button--inverse.usa-button--unstyled:hover{
+  color:#1a4480;
+}
+.usa-button--outline.usa-button--inverse.usa-button--unstyled:active{
+  color:#162e51;
+}
+.usa-button--outline.usa-button--inverse.usa-button--unstyled:focus{
+  outline:0.25rem solid #2491ff;
+  outline-offset:0rem;
+}
+.usa-button--outline.usa-button--inverse.usa-button--unstyled:hover, .usa-button--outline.usa-button--inverse.usa-button--unstyled.usa-button--hover, .usa-button--outline.usa-button--inverse.usa-button--unstyled:disabled:hover, .usa-button--outline.usa-button--inverse.usa-button--unstyled[aria-disabled=true]:hover, .usa-button--outline.usa-button--inverse.usa-button--unstyled:disabled.usa-button--hover, .usa-button--outline.usa-button--inverse.usa-button--unstyled[aria-disabled=true].usa-button--hover, .usa-button--outline.usa-button--inverse.usa-button--unstyled:active, .usa-button--outline.usa-button--inverse.usa-button--unstyled.usa-button--active, .usa-button--outline.usa-button--inverse.usa-button--unstyled:disabled:active, .usa-button--outline.usa-button--inverse.usa-button--unstyled[aria-disabled=true]:active, .usa-button--outline.usa-button--inverse.usa-button--unstyled:disabled.usa-button--active, .usa-button--outline.usa-button--inverse.usa-button--unstyled[aria-disabled=true].usa-button--active, .usa-button--outline.usa-button--inverse.usa-button--unstyled:disabled:focus, .usa-button--outline.usa-button--inverse.usa-button--unstyled[aria-disabled=true]:focus, .usa-button--outline.usa-button--inverse.usa-button--unstyled:disabled.usa-focus, .usa-button--outline.usa-button--inverse.usa-button--unstyled[aria-disabled=true].usa-focus, .usa-button--outline.usa-button--inverse.usa-button--unstyled:disabled, .usa-button--outline.usa-button--inverse.usa-button--unstyled[aria-disabled=true], .usa-button--outline.usa-button--inverse.usa-button--unstyled.usa-button--disabled{
+  background-color:transparent;
+  box-shadow:none;
+  text-decoration:underline;
+}
+.usa-button--outline.usa-button--inverse.usa-button--unstyled.usa-button--hover{
+  color:#1a4480;
+}
+.usa-button--outline.usa-button--inverse.usa-button--unstyled.usa-button--active{
+  color:#162e51;
+}
+.usa-button--outline.usa-button--inverse.usa-button--unstyled:disabled, .usa-button--outline.usa-button--inverse.usa-button--unstyled[aria-disabled=true], .usa-button--outline.usa-button--inverse.usa-button--unstyled:disabled:hover, .usa-button--outline.usa-button--inverse.usa-button--unstyled[aria-disabled=true]:hover, .usa-button--outline.usa-button--inverse.usa-button--unstyled[aria-disabled=true]:focus{
+  color:#757575;
+}
+@media (forced-colors: active){
+  .usa-button--outline.usa-button--inverse.usa-button--unstyled:disabled, .usa-button--outline.usa-button--inverse.usa-button--unstyled[aria-disabled=true], .usa-button--outline.usa-button--inverse.usa-button--unstyled:disabled:hover, .usa-button--outline.usa-button--inverse.usa-button--unstyled[aria-disabled=true]:hover, .usa-button--outline.usa-button--inverse.usa-button--unstyled[aria-disabled=true]:focus{
+    color:GrayText;
+  }
+}
+.usa-button--outline.usa-button--inverse.usa-button--unstyled:visited{
+  color:#dfe1e2;
+}
+.usa-button--outline.usa-button--inverse.usa-button--unstyled:hover, .usa-button--outline.usa-button--inverse.usa-button--unstyled.usa-button--hover{
+  color:#f0f0f0;
+}
+.usa-button--outline.usa-button--inverse.usa-button--unstyled:active, .usa-button--outline.usa-button--inverse.usa-button--unstyled.usa-button--active{
+  color:white;
+}
+
+.usa-button--base{
+  color:white;
+  background-color:#71767a;
+}
+.usa-button--base:hover, .usa-button--base.usa-button--hover{
+  color:white;
+  background-color:#565c65;
+}
+.usa-button--base:active, .usa-button--base.usa-button--active{
+  color:white;
+  background-color:#3d4551;
+}
+
+.usa-button--secondary{
+  color:white;
+  background-color:#d83933;
+}
+.usa-button--secondary:hover, .usa-button--secondary.usa-button--hover{
+  color:white;
+  background-color:#b50909;
+}
+.usa-button--secondary:active, .usa-button--secondary.usa-button--active{
+  color:white;
+  background-color:#8b0a03;
+}
+
+.usa-button--big{
+  border-radius:0.25rem;
+  font-size:1.46rem;
+  padding:1rem 1.5rem;
+}
+
+.usa-button--outline:disabled, .usa-button--outline:disabled:hover, .usa-button--outline:disabled:active, .usa-button--outline:disabled:focus,
+.usa-button--outline[aria-disabled=true],
+.usa-button--outline[aria-disabled=true]:hover,
+.usa-button--outline[aria-disabled=true]:active,
+.usa-button--outline[aria-disabled=true]:focus,
+.usa-button--outline-inverse:disabled,
+.usa-button--outline-inverse:disabled:hover,
+.usa-button--outline-inverse:disabled:active,
+.usa-button--outline-inverse:disabled:focus,
+.usa-button--outline-inverse[aria-disabled=true],
+.usa-button--outline-inverse[aria-disabled=true]:hover,
+.usa-button--outline-inverse[aria-disabled=true]:active,
+.usa-button--outline-inverse[aria-disabled=true]:focus{
+  background-color:transparent;
+  color:#757575;
+}
+
+.usa-button--outline:disabled,
+.usa-button--outline[aria-disabled=true]{
+  box-shadow:inset 0 0 0 2px #c9c9c9;
+}
+.usa-button--outline:disabled.usa-button--inverse,
+.usa-button--outline[aria-disabled=true].usa-button--inverse{
+  box-shadow:inset 0 0 0 2px #919191;
+  color:#919191;
+}
+@media (forced-colors: active){
+  .usa-button--outline:disabled.usa-button--inverse,
+  .usa-button--outline[aria-disabled=true].usa-button--inverse{
+    color:GrayText;
+  }
+}
+
+.usa-button--unstyled{
+  color:#005ea2;
+  text-decoration:underline;
+  background-color:transparent;
+  border:0;
+  border-radius:0;
+  box-shadow:none;
+  font-weight:normal;
+  justify-content:normal;
+  text-align:left;
+  margin:0;
+  padding:0;
+  width:auto;
+}
+.usa-button--unstyled:visited{
+  color:#54278f;
+}
+.usa-button--unstyled:hover{
+  color:#1a4480;
+}
+.usa-button--unstyled:active{
+  color:#162e51;
+}
+.usa-button--unstyled:focus{
+  outline:0.25rem solid #2491ff;
+  outline-offset:0rem;
+}
+.usa-button--unstyled:hover, .usa-button--unstyled.usa-button--hover, .usa-button--unstyled:disabled:hover, .usa-button--unstyled[aria-disabled=true]:hover, .usa-button--unstyled:disabled.usa-button--hover, .usa-button--unstyled[aria-disabled=true].usa-button--hover, .usa-button--unstyled:active, .usa-button--unstyled.usa-button--active, .usa-button--unstyled:disabled:active, .usa-button--unstyled[aria-disabled=true]:active, .usa-button--unstyled:disabled.usa-button--active, .usa-button--unstyled[aria-disabled=true].usa-button--active, .usa-button--unstyled:disabled:focus, .usa-button--unstyled[aria-disabled=true]:focus, .usa-button--unstyled:disabled.usa-focus, .usa-button--unstyled[aria-disabled=true].usa-focus, .usa-button--unstyled:disabled, .usa-button--unstyled[aria-disabled=true], .usa-button--unstyled.usa-button--disabled{
+  background-color:transparent;
+  box-shadow:none;
+  text-decoration:underline;
+}
+.usa-button--unstyled.usa-button--hover{
+  color:#1a4480;
+}
+.usa-button--unstyled.usa-button--active{
+  color:#162e51;
+}
+.usa-button--unstyled:disabled, .usa-button--unstyled[aria-disabled=true], .usa-button--unstyled:disabled:hover, .usa-button--unstyled[aria-disabled=true]:hover, .usa-button--unstyled[aria-disabled=true]:focus{
+  color:#757575;
+}
+@media (forced-colors: active){
+  .usa-button--unstyled:disabled, .usa-button--unstyled[aria-disabled=true], .usa-button--unstyled:disabled:hover, .usa-button--unstyled[aria-disabled=true]:hover, .usa-button--unstyled[aria-disabled=true]:focus{
+    color:GrayText;
+  }
+}
+.usa-card-group{
+  margin-bottom:0;
+  margin-top:0;
+  list-style-type:none;
+  padding-left:0;
+}
+
+.usa-prose .usa-card-group{
+  margin-bottom:0;
+  margin-top:0;
+  list-style-type:none;
+  padding-left:0;
+}
+
+.usa-card-group{
+  display:flex;
+  flex-direction:column;
+  flex-wrap:wrap;
+  align-items:stretch;
+  margin-left:-0.5rem;
+  margin-right:-0.5rem;
+}
+@media all and (min-width: 40em){
+  .usa-card-group{
+    flex-direction:row;
+  }
+}
+
+.usa-card{
+  margin-bottom:2.5rem;
+  max-width:none;
+}
+.usa-card:last-child{
+  margin-bottom:2.5rem;
+}
+@media all and (min-width: 40em){
+  .usa-card{
+    margin-bottom:2rem;
+  }
+  .usa-card:last-child{
+    margin-bottom:2rem;
+  }
+}
+
+.usa-prose .usa-card{
+  margin-bottom:2.5rem;
+  max-width:none;
+}
+.usa-prose .usa-card:last-child{
+  margin-bottom:2.5rem;
+}
+@media all and (min-width: 40em){
+  .usa-prose .usa-card{
+    margin-bottom:2rem;
+  }
+  .usa-prose .usa-card:last-child{
+    margin-bottom:2rem;
+  }
+}
+
+.usa-card__container{
+  color:#1b1b1b;
+  background-color:white;
+  font-family:Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
+  font-size:1.06rem;
+  line-height:1.5;
+  border-width:2px;
+  border-color:#dfe1e2;
+  border-style:solid;
+  display:flex;
+  height:100%;
+  flex-direction:column;
+  margin-left:0.5rem;
+  margin-right:0.5rem;
+  position:relative;
+  border-radius:0.5rem;
+}
+
+.usa-card:not(.usa-card--flag) .usa-card__container > :only-child{
+  padding:1.5rem;
+}
+
+.usa-card .usa-card__img{
+  display:block;
+}
+
+.usa-card__header{
+  padding-top:1.5rem;
+  padding-left:1.5rem;
+  padding-right:1.5rem;
+  padding-bottom:0.5rem;
+}
+.usa-card__header:last-child{
+  padding-bottom:1.5rem;
+}
+
+.usa-card__heading{
+  font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+  font-size:1.34rem;
+  line-height:1.2;
+  margin:0;
+}
+
+.usa-card__media{
+  order:-1;
+  min-height:1px;
+}
+
+.usa-card__img{
+  border-top-left-radius:calc(0.5rem - 2px);
+  border-top-right-radius:calc(0.5rem - 2px);
+  background-color:#f0f0f0;
+  position:relative;
+  overflow:hidden;
+}
+.usa-card__img img{
+  display:block;
+  height:100%;
+  width:100%;
+  -o-object-fit:cover;
+     object-fit:cover;
+}
+
+.usa-card__media--inset{
+  padding-top:1.5rem;
+  padding-left:1.5rem;
+  padding-right:1.5rem;
+}
+.usa-card__media--inset .usa-card__img{
+  border-radius:0;
+}
+
+.usa-card__body{
+  flex:1 1 0%;
+  padding-left:1.5rem;
+  padding-right:1.5rem;
+  padding-bottom:0.5rem;
+  padding-top:0.5rem;
+  flex-basis:auto;
+}
+.usa-card__body:last-child{
+  padding-bottom:1.5rem;
+}
+.usa-card__body:first-child{
+  padding-top:1.5rem;
+}
+.usa-card__body:only-child{
+  padding-bottom:1.5rem;
+  padding-top:1.5rem;
+}
+
+.usa-card__footer{
+  padding-bottom:1.5rem;
+  padding-left:1.5rem;
+  padding-right:1.5rem;
+  padding-top:0.5rem;
+}
+
+.usa-card__footer .usa-button:only-of-type{
+  margin-right:0;
+}
+
+.usa-card__header > :last-child,
+.usa-card__body > :last-child{
+  padding-bottom:0;
+  margin-bottom:0;
+}
+.usa-card__header > :first-child,
+.usa-card__body > :first-child{
+  margin-top:0;
+  padding-top:0;
+}
+.usa-card__header > :only-child,
+.usa-card__body > :only-child{
+  margin-bottom:0;
+  margin-top:0;
+  padding-bottom:0;
+  padding-top:0;
+}
+
+.usa-card__header--exdent,
+.usa-card__media--exdent,
+.usa-card__body--exdent,
+.usa-card__footer--exdent{
+  margin-inline:-2px;
+}
+
+.usa-card__header--exdent > *,
+.usa-card__body--exdent > *,
+.usa-card__footer--exdent > *{
+  padding-left:2px;
+  padding-right:2px;
+}
+
+.usa-card__media--exdent{
+  margin-top:-2px;
+}
+.usa-card__media--exdent .usa-card__img{
+  border-top-left-radius:0.5rem;
+  border-top-right-radius:0.5rem;
+}
+
+.usa-card--header-first .usa-card__header{
+  border-top-left-radius:calc(0.5rem - 2px);
+  border-top-right-radius:calc(0.5rem - 2px);
+  padding-bottom:1rem;
+}
+.usa-card--header-first .usa-card__header--exdent{
+  border-top-left-radius:0.5rem;
+  border-top-right-radius:0.5rem;
+  margin-top:-2px;
+}
+.usa-card--header-first .usa-card__media--inset{
+  padding-top:0;
+}
+.usa-card--header-first .usa-card__media{
+  order:0;
+}
+.usa-card--header-first .usa-card__media--exdent{
+  margin-top:0;
+}
+.usa-card--header-first .usa-card__img{
+  border-radius:0;
+}
+.usa-card--header-first .usa-card__body{
+  padding-top:1rem;
+}
+
+@media all and (min-width: 40em){
+  .usa-card--flag .usa-card__media{
+    display:flex;
+    overflow:hidden;
+    position:absolute;
+    bottom:0;
+    top:0;
+    position:absolute;
+    left:0;
+    position:absolute;
+    width:15rem;
+  }
+  .usa-card--flag .usa-card__img{
+    border-radius:0;
+    border-top-left-radius:calc(0.5rem - 2px);
+    border-bottom-left-radius:calc(0.5rem - 2px);
+  }
+  .usa-card--flag .usa-card__header,
+  .usa-card--flag .usa-card__body,
+  .usa-card--flag .usa-card__footer{
+    margin-left:15rem;
+  }
+  .usa-card--flag .usa-card__media--exdent{
+    margin:-2px;
+  }
+  .usa-card--flag .usa-card__media--exdent .usa-card__img{
+    border-bottom-left-radius:0.5rem;
+    border-top-left-radius:0.5rem;
+  }
+  .usa-card--flag .usa-card__media--inset{
+    padding-right:0;
+    padding-bottom:1.5rem;
+  }
+  .usa-card--flag .usa-card__media--inset .usa-card__img{
+    border-radius:0;
+  }
+  .usa-card--flag.usa-card--header-first .usa-card__header{
+    padding-bottom:0.5rem;
+  }
+  .usa-card--flag.usa-card--header-first .usa-card__body{
+    padding-top:0.5rem;
+  }
+  .usa-card--flag.usa-card--header-first .usa-card__media--inset{
+    padding-top:1.5rem;
+  }
+  .usa-card--flag.usa-card--media-right .usa-card__media{
+    left:auto;
+    right:0;
+  }
+  .usa-card--flag.usa-card--media-right .usa-card__media--inset{
+    padding-left:0;
+    padding-right:1.5rem;
+  }
+  .usa-card--flag.usa-card--media-right .usa-card__media--inset .usa-card__img{
+    border-radius:0;
+  }
+  .usa-card--flag.usa-card--media-right .usa-card__img{
+    border-radius:0;
+    border-top-right-radius:calc(0.5rem - 2px);
+    border-bottom-right-radius:calc(0.5rem - 2px);
+  }
+  .usa-card--flag.usa-card--media-right .usa-card__header,
+  .usa-card--flag.usa-card--media-right .usa-card__body,
+  .usa-card--flag.usa-card--media-right .usa-card__footer{
+    margin-left:0;
+    margin-right:15rem;
+  }
+  .usa-card--flag.usa-card--media-right .usa-card__img{
+    border-radius:0;
+    border-bottom-right-radius:0.5rem;
+    border-top-right-radius:0.5rem;
+  }
+}
+
+.usa-card:not(.usa-card--flag).usa-card__media--set-aspect{
+  box-sizing:border-box;
+  height:0;
+  overflow:hidden;
+  padding-bottom:56.25%;
+  position:relative;
+  position:relative;
+}
+@supports (aspect-ratio: 1){
+  .usa-card:not(.usa-card--flag).usa-card__media--set-aspect{
+    height:inherit;
+    padding:inherit;
+    aspect-ratio:1.7777777778;
+    max-width:100%;
+  }
+  .usa-card:not(.usa-card--flag).usa-card__media--set-aspect > *{
+    position:absolute;
+    top:0;
+    left:0;
+    width:100%;
+    height:100%;
+  }
+  img.usa-card:not(.usa-card--flag).usa-card__media--set-aspect, .usa-card:not(.usa-card--flag).usa-card__media--set-aspect > img{
+    -o-object-fit:cover;
+       object-fit:cover;
+  }
+}
+.usa-card:not(.usa-card--flag).usa-card__media--set-aspect .usa-card__img{
+  position:absolute;
+  bottom:0;
+  left:0;
+  right:0;
+  top:0;
+}
+
+.usa-checklist{
+  margin-bottom:0;
+  margin-top:0;
+  list-style-type:none;
+  padding-left:0;
+  font-family:Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
+  font-size:1.06rem;
+  line-height:1.5;
+}
+
+.usa-checklist__item{
+  text-indent:-2.5rem;
+  margin-bottom:0;
+  margin-top:0;
+  margin-bottom:0;
+  margin-top:0.5rem;
+}
+.usa-checklist__item::before{
+  content:" ";
+  display:inline-block;
+  height:1rem;
+  margin-left:-0.25rem;
+  margin-right:0.75rem;
+  width:2rem;
+}
+.usa-checklist__item.usa-checklist__item--checked::before{
+  background-image:url("../img/usa-icons-bg/check--blue-60v.svg"), linear-gradient(transparent, transparent);
+  background-repeat:no-repeat;
+  background-position:center;
+  background-size:1.5rem;
+}
+
+.usa-collection{
+  font-family:Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
+  font-size:1.06rem;
+  line-height:1.3;
+  margin-bottom:1em;
+  margin-top:1em;
+  line-height:1.5;
+  padding-left:3ch;
+  padding-left:0;
+}
+.usa-collection:last-child{
+  margin-bottom:0;
+}
+.usa-collection ul,
+.usa-collection ol{
+  margin-top:0.25em;
+}
+
+.usa-collection__item{
+  margin-bottom:0.25em;
+  max-width:68ex;
+  margin-bottom:0;
+  margin-top:0;
+  list-style-type:none;
+  padding-left:0;
+  align-items:flex-start;
+  border-top-width:1px;
+  border-top-style:solid;
+  display:flex;
+  margin-bottom:1rem;
+  margin-top:1rem;
+  padding-top:1rem;
+}
+.usa-collection__item:last-child{
+  margin-bottom:0;
+}
+.usa-collection__item > li{
+  margin-bottom:0;
+  max-width:unset;
+}
+
+.usa-prose .usa-collection{
+  font-family:Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
+  font-size:1.06rem;
+  line-height:1.3;
+  margin-bottom:1em;
+  margin-top:1em;
+  line-height:1.5;
+  padding-left:3ch;
+  padding-left:0;
+}
+.usa-prose .usa-collection:last-child{
+  margin-bottom:0;
+}
+.usa-prose .usa-collection ul,
+.usa-prose .usa-collection ol{
+  margin-top:0.25em;
+}
+.usa-prose .usa-collection__item{
+  margin-bottom:0.25em;
+  max-width:68ex;
+  margin-bottom:0;
+  margin-top:0;
+  list-style-type:none;
+  padding-left:0;
+  align-items:flex-start;
+  border-top-width:1px;
+  border-top-style:solid;
+  display:flex;
+  margin-bottom:1rem;
+  margin-top:1rem;
+  padding-top:1rem;
+}
+.usa-prose .usa-collection__item:last-child{
+  margin-bottom:0;
+}
+.usa-prose .usa-collection__item > li{
+  margin-bottom:0;
+  max-width:unset;
+}
+
+.usa-collection__img,
+.usa-collection__calendar-date{
+  flex-shrink:0;
+  margin-right:0.5rem;
+  width:4rem;
+  margin-right:1rem;
+}
+@media all and (min-width: 40em){
+  .usa-collection__img,
+  .usa-collection__calendar-date{
+    width:5rem;
+  }
+}
+
+.usa-collection__body{
+  flex:1 1 0%;
+}
+
+.usa-collection__heading{
+  font-family:Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
+  font-size:1.13rem;
+  line-height:1.3;
+  margin-bottom:0;
+  margin-top:0;
+}
+
+.usa-collection__description{
+  margin-bottom:0.5rem;
+  margin-top:0.5rem;
+}
+
+.usa-collection__meta{
+  margin-bottom:0;
+  margin-top:0;
+  list-style-type:none;
+  padding-left:0;
+  margin-top:0.25rem;
+}
+.usa-collection__meta > li{
+  margin-bottom:0;
+  max-width:unset;
+}
+
+.usa-collection__meta-item{
+  margin-top:0.25rem;
+  font-family:Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
+  font-size:0.93rem;
+  line-height:1.3;
+  display:block;
+  margin-right:0.5rem;
+}
+.usa-collection__meta-item.usa-tag{
+  background-color:#dfe1e2;
+  line-height:0.9;
+  padding-bottom:0.25rem;
+  padding-top:0.25rem;
+  color:#1b1b1b;
+  display:inline-block;
+  margin-top:0.25rem;
+}
+.usa-collection__meta-item.usa-tag--new{
+  background-color:#c05600;
+  color:white;
+}
+
+.usa-collection__calendar-date{
+  text-decoration:none;
+}
+
+.usa-collection__calendar-date-month,
+.usa-collection__calendar-date-day{
+  font-family:Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
+  font-size:1.13rem;
+  display:block;
+  font-weight:700;
+  padding:0.25rem;
+  text-align:center;
+}
+@media all and (min-width: 40em){
+  .usa-collection__calendar-date-month,
+  .usa-collection__calendar-date-day{
+    padding:0.5rem;
+  }
+}
+
+.usa-collection__calendar-date-month{
+  border-top-left-radius:2px;
+  border-top-right-radius:2px;
+  background-color:#005ea2;
+  color:white;
+}
+
+.usa-collection__calendar-date-day{
+  border-bottom-left-radius:2px;
+  border-bottom-right-radius:2px;
+  border:1px solid #005ea2;
+  color:#005ea2;
+}
+
+.usa-collection--condensed .usa-collection__item{
+  margin-bottom:0.5rem;
+  margin-top:0.5rem;
+  padding-top:0.5rem;
+}
+
+.usa-embed-container iframe,
+.usa-embed-container object,
+.usa-embed-container embed{
+  position:absolute;
+  top:0;
+  left:0;
+  width:100%;
+  height:100%;
+}
+
+.usa-embed-container{
+  box-sizing:border-box;
+  height:0;
+  overflow:hidden;
+  padding-bottom:56.25%;
+  position:relative;
+  max-width:100%;
+}
+@supports (aspect-ratio: 1){
+  .usa-embed-container{
+    height:inherit;
+    padding:inherit;
+    aspect-ratio:1.7777777778;
+    max-width:100%;
+  }
+  .usa-embed-container > *{
+    position:absolute;
+    top:0;
+    left:0;
+    width:100%;
+    height:100%;
+  }
+  img.usa-embed-container, .usa-embed-container > img{
+    -o-object-fit:cover;
+       object-fit:cover;
+  }
+}
+
+.usa-footer{
+  font-family:Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
+  font-size:1.06rem;
+  line-height:1.5;
+}
+.usa-footer > .grid-container{
+  margin-left:auto;
+  margin-right:auto;
+  max-width:64rem;
+  padding-left:1rem;
+  padding-right:1rem;
+}
+@media all and (min-width: 64em){
+  .usa-footer > .grid-container{
+    padding-left:2rem;
+    padding-right:2rem;
+  }
+}
+
+.usa-footer__return-to-top{
+  padding-bottom:1.25rem;
+  padding-top:1.25rem;
+  line-height:0.9;
+}
+.usa-footer__return-to-top a{
+  color:#005ea2;
+  text-decoration:underline;
+}
+.usa-footer__return-to-top a:visited{
+  color:#54278f;
+}
+.usa-footer__return-to-top a:hover{
+  color:#1a4480;
+}
+.usa-footer__return-to-top a:active{
+  color:#162e51;
+}
+.usa-footer__return-to-top a:focus{
+  outline:0.25rem solid #2491ff;
+  outline-offset:0rem;
+}
+
+.usa-footer__nav{
+  margin-left:auto;
+  margin-right:auto;
+  max-width:64rem;
+  padding-left:1rem;
+  padding-right:1rem;
+  padding-left:0;
+  padding-right:0;
+  border-bottom:1px solid #a9aeb1;
+}
+@media all and (min-width: 64em){
+  .usa-footer__nav{
+    padding-left:2rem;
+    padding-right:2rem;
+  }
+}
+@media all and (min-width: 30em){
+  .usa-footer__nav{
+    padding-left:1rem;
+    padding-right:1rem;
+    border-bottom:none;
+  }
+}
+@media all and (min-width: 30em) and (min-width: 64em){
+  .usa-footer__nav{
+    padding-left:2rem;
+    padding-right:2rem;
+  }
+}
+.usa-footer__nav > ul{
+  margin-bottom:0;
+  margin-top:0;
+  list-style-type:none;
+  padding-left:0;
+}
+
+.usa-footer__primary-section{
+  background-color:#f0f0f0;
+}
+.usa-footer__primary-section > .grid-container{
+  margin-left:auto;
+  margin-right:auto;
+  max-width:64rem;
+  padding-left:1rem;
+  padding-right:1rem;
+}
+@media all and (min-width: 64em){
+  .usa-footer__primary-section > .grid-container{
+    padding-left:2rem;
+    padding-right:2rem;
+  }
+}
+
+.usa-footer__primary-container{
+  margin-left:auto;
+  margin-right:auto;
+  max-width:64rem;
+  padding-left:1rem;
+  padding-right:1rem;
+  padding-left:0;
+  padding-right:0;
+}
+@media all and (min-width: 64em){
+  .usa-footer__primary-container{
+    padding-left:2rem;
+    padding-right:2rem;
+  }
+}
+@media all and (min-width: 64em){
+  .usa-footer__primary-container{
+    padding-left:2rem;
+    padding-right:2rem;
+  }
+}
+
+.usa-footer__primary-content{
+  line-height:1.1;
+}
+
+.usa-footer__primary-link{
+  padding-left:1rem;
+  padding-right:1rem;
+  padding-bottom:1rem;
+  padding-top:1rem;
+  color:#1b1b1b;
+  font-weight:700;
+  border:0;
+  border-top:1px solid #a9aeb1;
+  display:block;
+}
+@media all and (min-width: 30em){
+  .usa-footer__primary-link{
+    padding-left:0;
+    padding-right:0;
+    border:none;
+  }
+}
+.usa-footer__primary-link--button{
+  width:100%;
+  cursor:pointer;
+}
+.usa-footer__primary-link--button::before{
+  background-image:url("../img/usa-icons/expand_more.svg");
+  background-repeat:no-repeat;
+  background-position:center center;
+  background-size:1.25rem 1.25rem;
+  display:inline-block;
+  height:1.25rem;
+  width:1.25rem;
+  content:"";
+  vertical-align:middle;
+  margin-right:0.25rem;
+}
+@supports ((-webkit-mask: url("")) or (mask: url(""))){
+  .usa-footer__primary-link--button::before{
+    background:none;
+    background-color:currentColor;
+    -webkit-mask-image:url("../img/usa-icons/expand_more.svg"), linear-gradient(transparent, transparent);
+            mask-image:url("../img/usa-icons/expand_more.svg"), linear-gradient(transparent, transparent);
+    -webkit-mask-position:center center;
+            mask-position:center center;
+    -webkit-mask-repeat:no-repeat;
+            mask-repeat:no-repeat;
+    -webkit-mask-size:1.25rem 1.25rem;
+            mask-size:1.25rem 1.25rem;
+  }
+}
+.usa-footer__primary-link--button:not([disabled]):focus{
+  outline:0.25rem solid #2491ff;
+  outline-offset:-0.25rem;
+}
+.usa-footer__primary-link--button::before{
+  height:1.25rem;
+  width:1.25rem;
+  align-items:center;
+  background-size:contain;
+  content:"";
+  display:inline-flex;
+  justify-content:center;
+  margin-right:0.25rem;
+  margin-left:-0.25rem;
+}
+@media (forced-colors: active){
+  .usa-footer__primary-link--button::before{
+    background-color:buttonText !important;
+  }
+}
+.usa-footer__primary-link--button + .usa-list--unstyled{
+  margin-top:0.5rem;
+  margin-bottom:0.5rem;
+}
+.usa-footer__primary-link--button[aria-expanded=false]::before{
+  background-image:url("../img/usa-icons/navigate_next.svg");
+  background-repeat:no-repeat;
+  background-position:center center;
+  background-size:1.25rem 1.25rem;
+  display:inline-block;
+  height:1.25rem;
+  width:1.25rem;
+  content:"";
+  vertical-align:middle;
+  margin-right:0.25rem;
+}
+@supports ((-webkit-mask: url("")) or (mask: url(""))){
+  .usa-footer__primary-link--button[aria-expanded=false]::before{
+    background:none;
+    background-color:currentColor;
+    -webkit-mask-image:url("../img/usa-icons/navigate_next.svg"), linear-gradient(transparent, transparent);
+            mask-image:url("../img/usa-icons/navigate_next.svg"), linear-gradient(transparent, transparent);
+    -webkit-mask-position:center center;
+            mask-position:center center;
+    -webkit-mask-repeat:no-repeat;
+            mask-repeat:no-repeat;
+    -webkit-mask-size:1.25rem 1.25rem;
+            mask-size:1.25rem 1.25rem;
+  }
+}
+.usa-footer__primary-link--button[aria-expanded=false] + .usa-list--unstyled{
+  display:none;
+}
+
+.usa-footer__secondary-link{
+  line-height:1.1;
+  margin-left:1rem;
+  padding:0;
+}
+.usa-footer__secondary-link a{
+  color:#005ea2;
+  text-decoration:underline;
+}
+.usa-footer__secondary-link a:visited{
+  color:#54278f;
+}
+.usa-footer__secondary-link a:hover{
+  color:#1a4480;
+}
+.usa-footer__secondary-link a:active{
+  color:#162e51;
+}
+.usa-footer__secondary-link a:focus{
+  outline:0.25rem solid #2491ff;
+  outline-offset:0rem;
+}
+.usa-footer__secondary-link + .usa-footer__secondary-link{
+  padding-top:1rem;
+}
+@media all and (min-width: 30em){
+  .usa-footer__secondary-link{
+    margin-left:0;
+  }
+}
+
+.usa-footer__contact-info{
+  line-height:1.1;
+}
+.usa-footer__contact-info a{
+  color:#1b1b1b;
+}
+@media all and (min-width: 30em){
+  .usa-footer__contact-info{
+    justify-content:flex-end;
+    margin-top:0.5rem;
+  }
+}
+
+.usa-sign-up{
+  padding-bottom:2rem;
+  padding-top:1.5rem;
+}
+.usa-sign-up .usa-label,
+.usa-sign-up .usa-button{
+  margin-top:0.75rem;
+}
+
+.usa-sign-up__heading{
+  font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+  font-size:1.34rem;
+  line-height:1.2;
+  font-weight:700;
+  margin:0;
+}
+
+.usa-footer__secondary-section{
+  padding-bottom:1.25rem;
+  padding-top:1.25rem;
+  color:#1b1b1b;
+  background-color:#dfe1e2;
+}
+.usa-footer__secondary-section > .grid-container{
+  margin-left:auto;
+  margin-right:auto;
+  max-width:64rem;
+  padding-left:1rem;
+  padding-right:1rem;
+}
+@media all and (min-width: 64em){
+  .usa-footer__secondary-section > .grid-container{
+    padding-left:2rem;
+    padding-right:2rem;
+  }
+}
+.usa-footer__secondary-section > .grid-container > .grid-row{
+  justify-content:space-between;
+}
+.usa-footer__secondary-section a{
+  color:#1b1b1b;
+}
+
+.usa-footer__logo{
+  margin-bottom:0.5rem;
+  margin-top:0.5rem;
+}
+@media all and (min-width: 30em){
+  .usa-footer__logo{
+    margin-bottom:0;
+    margin-top:0;
+    align-items:center;
+  }
+}
+
+.usa-footer__logo-img{
+  max-width:5rem;
+}
+
+.usa-footer__logo-heading{
+  font-family:Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
+  font-size:1.46rem;
+  line-height:0.9;
+  font-weight:700;
+  margin-bottom:0.5rem;
+  margin-top:0.5rem;
+}
+
+.usa-footer__contact-links{
+  margin-top:1.5rem;
+}
+@media all and (min-width: 30em){
+  .usa-footer__contact-links{
+    margin-top:0;
+    text-align:right;
+  }
+}
+
+.usa-footer__contact-heading{
+  font-family:Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
+  font-size:1.46rem;
+  line-height:1.1;
+  font-weight:700;
+  margin-top:0;
+}
+@media all and (min-width: 30em){
+  .usa-footer__contact-heading{
+    margin-bottom:0.25rem;
+    margin-top:0.25rem;
+  }
+}
+
+.usa-footer__social-links{
+  line-height:0.9;
+  padding-bottom:0.5rem;
+}
+.usa-footer__social-links a{
+  text-decoration:none;
+}
+@media all and (min-width: 30em){
+  .usa-footer__social-links{
+    justify-content:flex-end;
+  }
+}
+
+.usa-social-link{
+  height:3rem;
+  width:3rem;
+  background-color:rgba(0, 0, 0, 0.1);
+  display:inline-block;
+  padding:0.25rem;
+}
+.usa-social-link:hover{
+  background-color:white;
+}
+@media (forced-colors: active){
+  .usa-social-link{
+    background-color:lightgrey;
+    forced-color-adjust:none;
+  }
+}
+
+.usa-social-link__icon{
+  display:block;
+  height:auto;
+  width:100%;
+}
+
+@media all and (min-width: 30em){
+  .usa-footer__address{
+    justify-content:flex-end;
+  }
+}
+
+@media all and (min-width: 64em){
+  .usa-footer--slim .usa-footer__nav{
+    padding-left:0;
+    padding-right:0;
+  }
+}
+.usa-footer--slim .usa-footer__address{
+  padding-left:1rem;
+  padding-right:1rem;
+  padding-bottom:1rem;
+  padding-top:1rem;
+}
+@media all and (min-width: 30em){
+  .usa-footer--slim .usa-footer__address{
+    padding:0;
+  }
+}
+.usa-footer--slim .usa-footer__logo{
+  align-items:center;
+}
+.usa-footer--slim .usa-footer__logo-img{
+  max-width:3rem;
+}
+.usa-footer--slim .usa-footer__contact-info{
+  display:inline-block;
+}
+@media all and (min-width: 30em){
+  .usa-footer--slim .usa-footer__contact-info{
+    padding-bottom:1rem;
+    padding-top:1rem;
+    margin-top:0;
+  }
+}
+
+.usa-footer--big .usa-footer__nav{
+  margin-left:-1rem;
+  margin-right:-1rem;
+}
+@media all and (min-width: 30em){
+  .usa-footer--big .usa-footer__nav{
+    border-bottom:1px solid #a9aeb1;
+    padding-top:2rem;
+  }
+}
+@media all and (min-width: 40em){
+  .usa-footer--big .usa-footer__nav{
+    margin-left:0;
+    margin-right:0;
+    padding-left:0;
+    padding-right:0;
+    border-bottom:none;
+  }
+}
+.usa-footer--big .usa-footer__primary-link{
+  font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+  font-size:0.98rem;
+  line-height:1.2;
+  font-weight:700;
+  line-height:1.2;
+  margin:0;
+}
+@media all and (min-width: 30em){
+  .usa-footer--big .usa-footer__primary-link{
+    padding-bottom:0;
+    padding-top:0;
+    margin-bottom:0.5rem;
+  }
+  .usa-footer--big .usa-footer__primary-link:hover{
+    cursor:auto;
+    text-decoration:none;
+  }
+}
+.usa-footer--big .usa-footer__primary-content--collapsible .usa-footer__primary-link{
+  align-items:center;
+  display:flex;
+  justify-content:flex-start;
+}
+.usa-footer--big .usa-footer__primary-content--collapsible .usa-list--unstyled{
+  padding-left:1rem;
+  padding-right:1rem;
+  padding-bottom:1.25rem;
+}
+@media all and (min-width: 30em){
+  .usa-footer--big .usa-footer__primary-content--collapsible .usa-list--unstyled{
+    padding-left:0;
+    padding-right:0;
+    padding-bottom:2rem;
+    padding-top:0.75rem;
+  }
+}
+
+.usa-form{
+  font-family:Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
+  font-size:1.06rem;
+  line-height:1.3;
+}
+@media all and (min-width: 30em){
+  .usa-form{
+    max-width:20rem;
+  }
+}
+.usa-form abbr[title=required]{
+  text-decoration:none;
+}
+.usa-form :where(.usa-input, .usa-textarea, .usa-select, .usa-range){
+  max-width:none;
+}
+.usa-form .usa-button{
+  margin-top:0.5rem;
+}
+@media all and (min-width: 30em){
+  .usa-form .usa-button{
+    margin-top:1.5rem;
+  }
+}
+.usa-form a:where(:not(.usa-button)){
+  color:#005ea2;
+  text-decoration:underline;
+}
+.usa-form a:where(:not(.usa-button)):visited{
+  color:#54278f;
+}
+.usa-form a:where(:not(.usa-button)):hover{
+  color:#1a4480;
+}
+.usa-form a:where(:not(.usa-button)):active{
+  color:#162e51;
+}
+.usa-form a:where(:not(.usa-button)):focus{
+  outline:0.25rem solid #2491ff;
+  outline-offset:0rem;
+}
+
+@media all and (min-width: 30em){
+  .usa-form--large{
+    max-width:30rem;
+  }
+}
+
+.usa-show-password{
+  color:#005ea2;
+  text-decoration:underline;
+  background-color:transparent;
+  border:0;
+  border-radius:0;
+  box-shadow:none;
+  font-weight:normal;
+  justify-content:normal;
+  text-align:left;
+  margin:0;
+  padding:0;
+  width:auto;
+  cursor:pointer;
+}
+.usa-show-password:visited{
+  color:#54278f;
+}
+.usa-show-password:hover{
+  color:#1a4480;
+}
+.usa-show-password:active{
+  color:#162e51;
+}
+.usa-show-password:focus{
+  outline:0.25rem solid #2491ff;
+  outline-offset:0rem;
+}
+.usa-show-password:hover, .usa-show-password.usa-button--hover, .usa-show-password:disabled:hover, .usa-show-password[aria-disabled=true]:hover, .usa-show-password:disabled.usa-button--hover, .usa-show-password[aria-disabled=true].usa-button--hover, .usa-show-password:active, .usa-show-password.usa-button--active, .usa-show-password:disabled:active, .usa-show-password[aria-disabled=true]:active, .usa-show-password:disabled.usa-button--active, .usa-show-password[aria-disabled=true].usa-button--active, .usa-show-password:disabled:focus, .usa-show-password[aria-disabled=true]:focus, .usa-show-password:disabled.usa-focus, .usa-show-password[aria-disabled=true].usa-focus, .usa-show-password:disabled, .usa-show-password[aria-disabled=true], .usa-show-password.usa-button--disabled{
+  background-color:transparent;
+  box-shadow:none;
+  text-decoration:underline;
+}
+.usa-show-password.usa-button--hover{
+  color:#1a4480;
+}
+.usa-show-password.usa-button--active{
+  color:#162e51;
+}
+.usa-show-password:disabled, .usa-show-password[aria-disabled=true], .usa-show-password:disabled:hover, .usa-show-password[aria-disabled=true]:hover, .usa-show-password[aria-disabled=true]:focus{
+  color:#757575;
+}
+@media (forced-colors: active){
+  .usa-show-password:disabled, .usa-show-password[aria-disabled=true], .usa-show-password:disabled:hover, .usa-show-password[aria-disabled=true]:hover, .usa-show-password[aria-disabled=true]:focus{
+    color:GrayText;
+  }
+}
+
+.usa-form__note,
+.usa-show-password{
+  font-family:Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
+  font-size:0.93rem;
+  line-height:1.3;
+  float:right;
+  margin:0.25rem 0 1rem;
+}
+
+.usa-graphic-list{
+  font-family:Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
+  font-size:1.06rem;
+  line-height:1.5;
+}
+.usa-graphic-list .usa-graphic-list__row .usa-media-block{
+  margin-bottom:2rem;
+}
+@media all and (min-width: 40em){
+  .usa-graphic-list .usa-graphic-list__row .usa-media-block{
+    margin-bottom:4rem;
+  }
+}
+@media all and (min-width: 40em){
+  .usa-graphic-list .usa-graphic-list__row:last-child .usa-media-block{
+    margin-bottom:0;
+  }
+}
+.usa-graphic-list .usa-graphic-list__row:last-child .usa-media-block:last-child{
+  margin-bottom:0;
+}
+.usa-graphic-list .usa-media-block__img{
+  margin-right:1.5rem;
+}
+.usa-graphic-list .usa-media-block__body > :first-child{
+  margin-top:0;
+}
+
+.usa-graphic-list__heading{
+  margin-bottom:0;
+  margin-top:0;
+  clear:both;
+  font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+  font-size:1.34rem;
+  line-height:1.2;
+  font-weight:700;
+}
+* + .usa-graphic-list__heading{
+  margin-top:1.5em;
+}
+.usa-graphic-list__heading + *{
+  margin-top:1em;
+}
+
+.usa-header{
+  font-family:Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
+  font-size:1.06rem;
+  line-height:1.5;
+}
+.usa-header::after{
+  clear:both;
+  content:"";
+  display:block;
+}
+.usa-header a{
+  border-bottom:none;
+}
+.usa-header .usa-search{
+  margin-top:0.5rem;
+}
+@media all and (min-width: 64em){
+  .usa-header .usa-search{
+    float:right;
+  }
+}
+@media all and (min-width: 64em){
+  .usa-header [role=search]{
+    float:right;
+    max-width:calc(27ch + 3rem);
+    width:100%;
+  }
+}
+.usa-header [type=search]{
+  min-width:0;
+}
+@media all and (min-width: 64em){
+  .usa-header + .usa-hero{
+    border-top:1px solid white;
+  }
+}
+@media all and (min-width: 64em){
+  .usa-header + .usa-section,
+  .usa-header + main{
+    border-top:1px solid #dfe1e2;
+  }
+}
+
+@media all and (max-width: 63.99em){
+  .usa-logo{
+    flex:1 1 0%;
+    font-size:0.93rem;
+    line-height:0.9;
+    margin-left:1rem;
+  }
+}
+@media all and (min-width: 64em){
+  .usa-logo{
+    margin-top:2rem;
+    margin-bottom:1rem;
+    font-size:1.46rem;
+    line-height:1.1;
+  }
+}
+.usa-logo a{
+  color:#1b1b1b;
+  text-decoration:none;
+}
+
+.usa-logo__text{
+  display:block;
+  font-style:normal;
+  font-weight:700;
+  margin:0;
+}
+
+.usa-menu-btn{
+  color:#005ea2;
+  text-decoration:underline;
+  background-color:transparent;
+  border:0;
+  border-radius:0;
+  box-shadow:none;
+  font-weight:normal;
+  justify-content:normal;
+  text-align:left;
+  margin:0;
+  padding:0;
+  width:auto;
+  flex:0 1 auto;
+  padding-left:0.75rem;
+  padding-right:0.75rem;
+  background-color:#005ea2;
+  color:white;
+  font-size:0.87rem;
+  height:3rem;
+  text-align:center;
+  text-decoration:none;
+  text-transform:uppercase;
+}
+.usa-menu-btn:visited{
+  color:#54278f;
+}
+.usa-menu-btn:hover{
+  color:#1a4480;
+}
+.usa-menu-btn:active{
+  color:#162e51;
+}
+.usa-menu-btn:focus{
+  outline:0.25rem solid #2491ff;
+  outline-offset:0rem;
+}
+.usa-menu-btn:hover, .usa-menu-btn.usa-button--hover, .usa-menu-btn:disabled:hover, .usa-menu-btn[aria-disabled=true]:hover, .usa-menu-btn:disabled.usa-button--hover, .usa-menu-btn[aria-disabled=true].usa-button--hover, .usa-menu-btn:active, .usa-menu-btn.usa-button--active, .usa-menu-btn:disabled:active, .usa-menu-btn[aria-disabled=true]:active, .usa-menu-btn:disabled.usa-button--active, .usa-menu-btn[aria-disabled=true].usa-button--active, .usa-menu-btn:disabled:focus, .usa-menu-btn[aria-disabled=true]:focus, .usa-menu-btn:disabled.usa-focus, .usa-menu-btn[aria-disabled=true].usa-focus, .usa-menu-btn:disabled, .usa-menu-btn[aria-disabled=true], .usa-menu-btn.usa-button--disabled{
+  background-color:transparent;
+  box-shadow:none;
+  text-decoration:underline;
+}
+.usa-menu-btn.usa-button--hover{
+  color:#1a4480;
+}
+.usa-menu-btn.usa-button--active{
+  color:#162e51;
+}
+.usa-menu-btn:disabled, .usa-menu-btn[aria-disabled=true], .usa-menu-btn:disabled:hover, .usa-menu-btn[aria-disabled=true]:hover, .usa-menu-btn[aria-disabled=true]:focus{
+  color:#757575;
+}
+@media (forced-colors: active){
+  .usa-menu-btn:disabled, .usa-menu-btn[aria-disabled=true], .usa-menu-btn:disabled:hover, .usa-menu-btn[aria-disabled=true]:hover, .usa-menu-btn[aria-disabled=true]:focus{
+    color:GrayText;
+  }
+}
+@media all and (min-width: 64em){
+  .usa-menu-btn{
+    display:none;
+  }
+}
+.usa-menu-btn:hover{
+  background-color:#1a4480;
+  color:white;
+  text-decoration:none;
+}
+.usa-menu-btn:active{
+  color:white;
+}
+.usa-menu-btn:visited{
+  color:white;
+}
+
+.usa-overlay{
+  position:absolute;
+  bottom:0;
+  left:0;
+  right:0;
+  top:0;
+  position:fixed;
+  background:rgba(0, 0, 0, 0.7);
+  opacity:0;
+  transition:opacity 0.15s ease-in-out;
+  visibility:hidden;
+  z-index:400;
+}
+.usa-overlay.is-visible{
+  opacity:1;
+  visibility:visible;
+}
+
+@media all and (min-width: 64em){
+  .usa-header--basic .usa-navbar{
+    position:relative;
+    width:33%;
+  }
+  .usa-header--basic .usa-nav{
+    flex-direction:row;
+    align-items:center;
+    justify-content:flex-end;
+    display:flex;
+    padding:0 0 0.5rem 0.5rem;
+    width:100%;
+  }
+  .usa-header--basic .usa-nav-container{
+    align-items:flex-end;
+    justify-content:space-between;
+    display:flex;
+  }
+  .usa-header--basic .usa-nav__primary-item > .usa-current,
+  .usa-header--basic .usa-nav__link:hover{
+    position:relative;
+  }
+  .usa-header--basic .usa-nav__primary-item > .usa-current::after,
+  .usa-header--basic .usa-nav__link:hover::after{
+    background-color:#005ea2;
+    border-radius:0;
+    content:"";
+    display:block;
+    position:absolute;
+    height:0.25rem;
+    left:1rem;
+    right:1rem;
+    bottom:-0.25rem;
+  }
+}
+@media (min-width: 64em) and (forced-colors: active){
+  .usa-header--basic .usa-nav__primary-item > .usa-current::after,
+  .usa-header--basic .usa-nav__link:hover::after{
+    background-color:ButtonText;
+  }
+}
+@media all and (min-width: 64em){
+  .usa-header--basic .usa-nav__link[aria-expanded=true]::after,
+  .usa-header--basic .usa-nav__link[aria-expanded=true]:hover::after{
+    display:none;
+  }
+  .usa-header--basic .usa-nav__primary{
+    width:auto;
+  }
+  .usa-header--basic .usa-nav__primary-item:last-of-type{
+    position:relative;
+  }
+  .usa-header--basic .usa-nav__primary-item:last-of-type .usa-nav__submenu{
+    position:absolute;
+    right:0;
+  }
+  .usa-header--basic .usa-search{
+    top:0;
+  }
+}
+.usa-header--basic.usa-header--megamenu .usa-nav__inner{
+  display:flex;
+  flex-direction:column;
+}
+@media all and (min-width: 64em){
+  .usa-header--basic.usa-header--megamenu .usa-nav__inner{
+    display:block;
+    float:right;
+    margin-top:-2.5rem;
+  }
+}
+@media all and (min-width: 64em){
+  .usa-header--basic.usa-header--megamenu .usa-nav__primary-item:last-of-type{
+    position:static;
+  }
+}
+
+@media all and (min-width: 64em){
+  .usa-header--extended{
+    padding-top:0;
+  }
+  .usa-header--extended .usa-nav__primary-item > .usa-current,
+  .usa-header--extended .usa-nav__primary-item > .usa-nav__link:hover{
+    position:relative;
+  }
+  .usa-header--extended .usa-nav__primary-item > .usa-current::after,
+  .usa-header--extended .usa-nav__primary-item > .usa-nav__link:hover::after{
+    background-color:#005ea2;
+    border-radius:0;
+    content:"";
+    display:block;
+    position:absolute;
+    height:0.25rem;
+    left:1rem;
+    right:1rem;
+    bottom:0rem;
+  }
+}
+@media (min-width: 64em) and (forced-colors: active){
+  .usa-header--extended .usa-nav__primary-item > .usa-current::after,
+  .usa-header--extended .usa-nav__primary-item > .usa-nav__link:hover::after{
+    background-color:ButtonText;
+  }
+}
+@media all and (min-width: 64em){
+  .usa-header--extended .usa-nav__link[aria-expanded=true]::after,
+  .usa-header--extended .usa-nav__link[aria-expanded=true]:hover::after{
+    display:none;
+  }
+}
+@media all and (min-width: 64em){
+  .usa-header--extended .usa-logo{
+    font-size:2.13rem;
+    margin:2rem 0 1.5rem;
+    max-width:33%;
+  }
+}
+@media all and (min-width: 64em){
+  .usa-header--extended .usa-navbar{
+    margin-left:auto;
+    margin-right:auto;
+    max-width:64rem;
+    padding-left:1rem;
+    padding-right:1rem;
+    display:block;
+    height:auto;
+    overflow:auto;
+  }
+}
+@media all and (min-width: 64em) and (min-width: 64em){
+  .usa-header--extended .usa-navbar{
+    padding-left:2rem;
+    padding-right:2rem;
+  }
+}
+@media all and (min-width: 64em){
+  .usa-header--extended .usa-nav{
+    border-top:1px solid #dfe1e2;
+    padding:0;
+    width:100%;
+  }
+}
+@media all and (min-width: 64em){
+  .usa-header--extended .usa-nav__inner{
+    margin-left:auto;
+    margin-right:auto;
+    max-width:64rem;
+    padding-left:1rem;
+    padding-right:1rem;
+    position:relative;
+  }
+}
+@media all and (min-width: 64em) and (min-width: 64em){
+  .usa-header--extended .usa-nav__inner{
+    padding-left:2rem;
+    padding-right:2rem;
+  }
+}
+@media all and (min-width: 64em){
+  .usa-header--extended .usa-nav__primary{
+    margin-left:-1rem;
+  }
+  .usa-header--extended .usa-nav__primary::after{
+    clear:both;
+    content:"";
+    display:block;
+  }
+}
+@media all and (min-width: 64em){
+  .usa-header--extended .usa-nav__link{
+    padding-bottom:1rem;
+    padding-top:1rem;
+  }
+}
+@media all and (min-width: 64em){
+  .usa-header--extended .usa-nav__submenu .usa-grid-full{
+    padding-left:0.75rem;
+  }
+}
+@media all and (min-width: 64em){
+  .usa-header--extended .usa-nav__submenu.usa-megamenu{
+    left:0;
+    padding-left:2rem;
+    padding-right:2rem;
+  }
+}
+
+html.usa-js-loading .usa-nav__submenu,
+html.usa-js-loading .usa-nav__submenu.usa-megamenu{
+  position:absolute;
+  left:-999em;
+  right:auto;
+}
+
+.usa-megamenu .usa-col{
+  flex:1 1 auto;
+}
+@media all and (min-width: 64em){
+  .usa-megamenu .usa-col{
+    flex:4 1 0%;
+  }
+  .usa-megamenu .usa-col .usa-nav__submenu-item a{
+    padding-left:0.5rem;
+    padding-right:0.5rem;
+  }
+  .usa-megamenu .usa-col:first-child .usa-nav__submenu-item a{
+    padding-left:0;
+  }
+  .usa-megamenu .usa-col:last-child .usa-nav__submenu-item a{
+    padding-right:0;
+  }
+}
+
+@media all and (min-width: 64em){
+  .usa-megamenu.usa-nav__submenu{
+    padding-left:0;
+    padding-right:0;
+    padding-bottom:2rem;
+    padding-top:2rem;
+    left:-33%;
+    right:0;
+    width:auto;
+  }
+}
+@media all and (min-width: 64em){
+  .usa-megamenu.usa-nav__submenu::before{
+    position:absolute;
+    bottom:0;
+    top:0;
+    background-color:#162e51;
+    content:"";
+    display:block;
+    position:absolute;
+    width:calc(50vw - 32rem + 2rem);
+    right:100%;
+  }
+}
+@media all and (min-width: 64em){
+  .usa-megamenu.usa-nav__submenu::after{
+    position:absolute;
+    bottom:0;
+    top:0;
+    background-color:#162e51;
+    content:"";
+    display:block;
+    position:absolute;
+    width:calc(50vw - 32rem + 2rem);
+    left:100%;
+  }
+}
+
+@media all and (min-width: 64em){
+  .usa-header--extended .usa-megamenu.usa-nav__submenu::before{
+    position:absolute;
+    bottom:0;
+    top:0;
+    background-color:#162e51;
+    content:"";
+    display:block;
+    position:absolute;
+    width:calc(50vw - 32rem);
+  }
+}
+@media all and (min-width: 64em){
+  .usa-header--extended .usa-megamenu.usa-nav__submenu::after{
+    position:absolute;
+    bottom:0;
+    top:0;
+    background-color:#162e51;
+    content:"";
+    display:block;
+    position:absolute;
+    width:calc(50vw - 32rem);
+  }
+}
+
+@media all and (min-width: 64em){
+  .usa-nav-container{
+    margin-left:auto;
+    margin-right:auto;
+    max-width:64rem;
+    padding-left:1rem;
+    padding-right:1rem;
+    padding-left:2rem;
+    padding-right:2rem;
+  }
+  .usa-nav-container::after{
+    clear:both;
+    content:"";
+    display:block;
+  }
+}
+@media all and (min-width: 64em) and (min-width: 64em){
+  .usa-nav-container{
+    padding-left:2rem;
+    padding-right:2rem;
+  }
+}
+
+.usa-navbar{
+  height:3rem;
+}
+@media all and (max-width: 63.99em){
+  .usa-navbar{
+    align-items:center;
+    border-bottom:1px solid #dfe1e2;
+    display:flex;
+  }
+}
+@media all and (min-width: 64em){
+  .usa-navbar{
+    border-bottom:none;
+    display:inline-block;
+    height:auto;
+  }
+}
+
+.usa-hero{
+  font-family:Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
+  font-size:1.06rem;
+  line-height:1.5;
+  background-image:url("../img/hero.jpg");
+  background-position:center;
+  background-size:cover;
+  color:white;
+}
+.usa-hero > .grid-container{
+  position:relative;
+  padding-bottom:2rem;
+  padding-top:2rem;
+}
+
+.usa-hero__callout{
+  background-color:#162e51;
+  padding:2rem;
+}
+@media all and (min-width: 40em){
+  .usa-hero__callout{
+    max-width:20rem;
+  }
+}
+
+.usa-hero__heading{
+  margin-bottom:0;
+  margin-top:0;
+  clear:both;
+  font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+  font-size:1.95rem;
+  line-height:1.2;
+  font-weight:700;
+  color:#00bde3;
+  line-height:1.2;
+}
+* + .usa-hero__heading{
+  margin-top:1.5em;
+}
+.usa-hero__heading + *{
+  margin-top:1em;
+}
+
+.usa-hero__heading--alt{
+  color:white;
+  display:block;
+}
+
+.usa-icon-list{
+  font-family:Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
+  font-size:1.06rem;
+  line-height:1.5;
+  margin-bottom:0;
+  margin-top:0;
+  list-style-type:none;
+  padding-left:0;
+  max-width:72ex;
+}
+.usa-icon-list > li{
+  margin-bottom:0;
+  max-width:unset;
+}
+
+.usa-icon-list__item{
+  display:flex;
+  position:relative;
+}
+.usa-icon-list__item + .usa-icon-list__item{
+  padding-top:0.75rem;
+}
+
+.usa-prose .usa-icon-list{
+  font-family:Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
+  font-size:1.06rem;
+  line-height:1.5;
+  margin-bottom:0;
+  margin-top:0;
+  list-style-type:none;
+  padding-left:0;
+  max-width:72ex;
+}
+.usa-prose .usa-icon-list > li{
+  margin-bottom:0;
+  max-width:unset;
+}
+.usa-prose .usa-icon-list__item{
+  display:flex;
+  position:relative;
+}
+.usa-prose .usa-icon-list__item + .usa-icon-list__item{
+  padding-top:0.75rem;
+}
+
+.usa-icon-list--base-lightest .usa-icon-list__icon{
+  color:#f0f0f0;
+}
+.usa-icon-list--base-lighter .usa-icon-list__icon{
+  color:#dfe1e2;
+}
+.usa-icon-list--base-light .usa-icon-list__icon{
+  color:#a9aeb1;
+}
+.usa-icon-list--base .usa-icon-list__icon{
+  color:#71767a;
+}
+.usa-icon-list--base-dark .usa-icon-list__icon{
+  color:#565c65;
+}
+.usa-icon-list--base-darker .usa-icon-list__icon{
+  color:#3d4551;
+}
+.usa-icon-list--base-darkest .usa-icon-list__icon{
+  color:#1b1b1b;
+}
+.usa-icon-list--primary-lighter .usa-icon-list__icon{
+  color:#d9e8f6;
+}
+.usa-icon-list--primary-light .usa-icon-list__icon{
+  color:#73b3e7;
+}
+.usa-icon-list--primary .usa-icon-list__icon{
+  color:#005ea2;
+}
+.usa-icon-list--primary-vivid .usa-icon-list__icon{
+  color:#0050d8;
+}
+.usa-icon-list--primary-dark .usa-icon-list__icon{
+  color:#1a4480;
+}
+.usa-icon-list--primary-darker .usa-icon-list__icon{
+  color:#162e51;
+}
+.usa-icon-list--secondary-lighter .usa-icon-list__icon{
+  color:#f3e1e4;
+}
+.usa-icon-list--secondary-light .usa-icon-list__icon{
+  color:#f2938c;
+}
+.usa-icon-list--secondary .usa-icon-list__icon{
+  color:#d83933;
+}
+.usa-icon-list--secondary-vivid .usa-icon-list__icon{
+  color:#e41d3d;
+}
+.usa-icon-list--secondary-dark .usa-icon-list__icon{
+  color:#b50909;
+}
+.usa-icon-list--secondary-darker .usa-icon-list__icon{
+  color:#8b0a03;
+}
+.usa-icon-list--accent-warm-lighter .usa-icon-list__icon{
+  color:#f2e4d4;
+}
+.usa-icon-list--accent-warm-light .usa-icon-list__icon{
+  color:#ffbc78;
+}
+.usa-icon-list--accent-warm .usa-icon-list__icon{
+  color:#fa9441;
+}
+.usa-icon-list--accent-warm-dark .usa-icon-list__icon{
+  color:#c05600;
+}
+.usa-icon-list--accent-warm-darker .usa-icon-list__icon{
+  color:#775540;
+}
+.usa-icon-list--accent-cool-lighter .usa-icon-list__icon{
+  color:#e1f3f8;
+}
+.usa-icon-list--accent-cool-light .usa-icon-list__icon{
+  color:#97d4ea;
+}
+.usa-icon-list--accent-cool .usa-icon-list__icon{
+  color:#00bde3;
+}
+.usa-icon-list--accent-cool-dark .usa-icon-list__icon{
+  color:#28a0cb;
+}
+.usa-icon-list--accent-cool-darker .usa-icon-list__icon{
+  color:#07648d;
+}
+.usa-icon-list--error-lighter .usa-icon-list__icon{
+  color:#f4e3db;
+}
+.usa-icon-list--error-light .usa-icon-list__icon{
+  color:#f39268;
+}
+.usa-icon-list--error .usa-icon-list__icon{
+  color:#d54309;
+}
+.usa-icon-list--error-dark .usa-icon-list__icon{
+  color:#b50909;
+}
+.usa-icon-list--error-darker .usa-icon-list__icon{
+  color:#6f3331;
+}
+.usa-icon-list--warning-lighter .usa-icon-list__icon{
+  color:#faf3d1;
+}
+.usa-icon-list--warning-light .usa-icon-list__icon{
+  color:#fee685;
+}
+.usa-icon-list--warning .usa-icon-list__icon{
+  color:#ffbe2e;
+}
+.usa-icon-list--warning-dark .usa-icon-list__icon{
+  color:#e5a000;
+}
+.usa-icon-list--warning-darker .usa-icon-list__icon{
+  color:#936f38;
+}
+.usa-icon-list--success-lighter .usa-icon-list__icon{
+  color:#ecf3ec;
+}
+.usa-icon-list--success-light .usa-icon-list__icon{
+  color:#70e17b;
+}
+.usa-icon-list--success .usa-icon-list__icon{
+  color:#00a91c;
+}
+.usa-icon-list--success-dark .usa-icon-list__icon{
+  color:#008817;
+}
+.usa-icon-list--success-darker .usa-icon-list__icon{
+  color:#216e1f;
+}
+.usa-icon-list--info-lighter .usa-icon-list__icon{
+  color:#e7f6f8;
+}
+.usa-icon-list--info-light .usa-icon-list__icon{
+  color:#99deea;
+}
+.usa-icon-list--info .usa-icon-list__icon{
+  color:#00bde3;
+}
+.usa-icon-list--info-dark .usa-icon-list__icon{
+  color:#009ec1;
+}
+.usa-icon-list--info-darker .usa-icon-list__icon{
+  color:#2e6276;
+}
+.usa-icon-list--disabled-lighter .usa-icon-list__icon{
+  color:#c9c9c9;
+}
+.usa-icon-list--disabled-light .usa-icon-list__icon{
+  color:#919191;
+}
+.usa-icon-list--disabled .usa-icon-list__icon{
+  color:#757575;
+}
+.usa-icon-list--disabled-dark .usa-icon-list__icon{
+  color:#454545;
+}
+.usa-icon-list--disabled-darker .usa-icon-list__icon{
+  color:#1b1b1b;
+}
+.usa-icon-list--emergency .usa-icon-list__icon{
+  color:#9c3d10;
+}
+.usa-icon-list--emergency-dark .usa-icon-list__icon{
+  color:#332d29;
+}
+
+.usa-icon-list__icon .usa-icon{
+  display:block;
+  height:1.5rem;
+  position:relative;
+  width:1.5rem;
+}
+
+.usa-icon-list__content > p,
+.usa-icon-list__content > ul,
+.usa-icon-list__content > ol{
+  font-family:Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
+  font-size:1.06rem;
+  max-width:72ex;
+}
+
+.usa-icon-list[class*=usa-icon-list--size-]{
+  max-width:none;
+}
+
+.usa-icon-list--size-micro .usa-icon-list__icon .usa-icon{
+  height:1.005rem;
+  width:1.005rem;
+}
+.usa-icon-list--size-micro .usa-icon-list__content{
+  max-width:72ex;
+  font-size:0.67rem;
+  padding-left:0.268rem;
+}
+.usa-icon-list--size-micro .usa-icon-list__content .usa-icon-list__title{
+  font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+  font-size:0.61rem;
+}
+
+.usa-icon-list--size-1 .usa-icon-list__icon .usa-icon{
+  height:1.2rem;
+  width:1.2rem;
+}
+.usa-icon-list--size-1 .usa-icon-list__content{
+  max-width:72ex;
+  font-size:0.8rem;
+  padding-left:0.32rem;
+}
+.usa-icon-list--size-1 .usa-icon-list__content .usa-icon-list__title{
+  font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+  font-size:0.73rem;
+}
+
+.usa-icon-list--size-2 .usa-icon-list__icon .usa-icon{
+  height:1.305rem;
+  width:1.305rem;
+}
+.usa-icon-list--size-2 .usa-icon-list__content{
+  max-width:72ex;
+  font-size:0.87rem;
+  padding-left:0.348rem;
+}
+.usa-icon-list--size-2 .usa-icon-list__content .usa-icon-list__title{
+  font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+  font-size:0.79rem;
+}
+
+.usa-icon-list--size-3 .usa-icon-list__icon .usa-icon{
+  height:1.395rem;
+  width:1.395rem;
+}
+.usa-icon-list--size-3 .usa-icon-list__content{
+  max-width:72ex;
+  font-size:0.93rem;
+  padding-left:0.372rem;
+}
+.usa-icon-list--size-3 .usa-icon-list__content .usa-icon-list__title{
+  font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+  font-size:0.85rem;
+}
+
+.usa-icon-list--size-4 .usa-icon-list__icon .usa-icon{
+  height:1.5rem;
+  width:1.5rem;
+}
+.usa-icon-list--size-4 .usa-icon-list__content{
+  max-width:72ex;
+  font-size:1rem;
+  padding-left:0.4rem;
+}
+.usa-icon-list--size-4 .usa-icon-list__content .usa-icon-list__title{
+  font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+  font-size:0.91rem;
+}
+
+.usa-icon-list--size-5 .usa-icon-list__icon .usa-icon{
+  height:1.59rem;
+  width:1.59rem;
+}
+.usa-icon-list--size-5 .usa-icon-list__content{
+  max-width:72ex;
+  font-size:1.06rem;
+  padding-left:0.424rem;
+}
+.usa-icon-list--size-5 .usa-icon-list__content .usa-icon-list__title{
+  font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+  font-size:0.98rem;
+}
+
+.usa-icon-list--size-6 .usa-icon-list__icon .usa-icon{
+  height:1.695rem;
+  width:1.695rem;
+}
+.usa-icon-list--size-6 .usa-icon-list__content{
+  max-width:72ex;
+  font-size:1.13rem;
+  padding-left:0.452rem;
+}
+.usa-icon-list--size-6 .usa-icon-list__content .usa-icon-list__title{
+  font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+  font-size:1.04rem;
+}
+
+.usa-icon-list--size-7 .usa-icon-list__icon .usa-icon{
+  height:1.8rem;
+  width:1.8rem;
+}
+.usa-icon-list--size-7 .usa-icon-list__content{
+  max-width:72ex;
+  font-size:1.2rem;
+  padding-left:0.48rem;
+}
+.usa-icon-list--size-7 .usa-icon-list__content .usa-icon-list__title{
+  font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+  font-size:1.1rem;
+}
+
+.usa-icon-list--size-8 .usa-icon-list__icon .usa-icon{
+  height:1.995rem;
+  width:1.995rem;
+}
+.usa-icon-list--size-8 .usa-icon-list__content{
+  max-width:72ex;
+  font-size:1.33rem;
+  padding-left:0.532rem;
+}
+.usa-icon-list--size-8 .usa-icon-list__content .usa-icon-list__title{
+  font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+  font-size:1.22rem;
+}
+
+.usa-icon-list--size-9 .usa-icon-list__icon .usa-icon{
+  height:2.19rem;
+  width:2.19rem;
+}
+.usa-icon-list--size-9 .usa-icon-list__content{
+  max-width:72ex;
+  font-size:1.46rem;
+  padding-left:0.584rem;
+}
+.usa-icon-list--size-9 .usa-icon-list__content .usa-icon-list__title{
+  font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+  font-size:1.34rem;
+}
+
+.usa-icon-list--size-10 .usa-icon-list__icon .usa-icon{
+  height:2.4rem;
+  width:2.4rem;
+}
+.usa-icon-list--size-10 .usa-icon-list__content{
+  max-width:72ex;
+  font-size:1.6rem;
+  padding-left:0.64rem;
+}
+.usa-icon-list--size-10 .usa-icon-list__content .usa-icon-list__title{
+  font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+  font-size:1.46rem;
+}
+
+.usa-icon-list--size-11 .usa-icon-list__icon .usa-icon{
+  height:2.79rem;
+  width:2.79rem;
+}
+.usa-icon-list--size-11 .usa-icon-list__content{
+  max-width:72ex;
+  font-size:1.86rem;
+  padding-left:0.744rem;
+}
+.usa-icon-list--size-11 .usa-icon-list__content .usa-icon-list__title{
+  font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+  font-size:1.71rem;
+}
+
+.usa-icon-list--size-12 .usa-icon-list__icon .usa-icon{
+  height:3.195rem;
+  width:3.195rem;
+}
+.usa-icon-list--size-12 .usa-icon-list__content{
+  max-width:72ex;
+  font-size:2.13rem;
+  padding-left:0.852rem;
+}
+.usa-icon-list--size-12 .usa-icon-list__content .usa-icon-list__title{
+  font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+  font-size:1.95rem;
+}
+
+.usa-icon-list--size-13 .usa-icon-list__icon .usa-icon{
+  height:3.6rem;
+  width:3.6rem;
+}
+.usa-icon-list--size-13 .usa-icon-list__content{
+  max-width:72ex;
+  font-size:2.4rem;
+  padding-left:0.96rem;
+}
+.usa-icon-list--size-13 .usa-icon-list__content .usa-icon-list__title{
+  font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+  font-size:2.2rem;
+}
+
+.usa-icon-list--size-14 .usa-icon-list__icon .usa-icon{
+  height:3.99rem;
+  width:3.99rem;
+}
+.usa-icon-list--size-14 .usa-icon-list__content{
+  max-width:72ex;
+  font-size:2.66rem;
+  padding-left:1.064rem;
+}
+.usa-icon-list--size-14 .usa-icon-list__content .usa-icon-list__title{
+  font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+  font-size:2.44rem;
+}
+
+.usa-icon-list--size-15 .usa-icon-list__icon .usa-icon{
+  height:4.785rem;
+  width:4.785rem;
+}
+.usa-icon-list--size-15 .usa-icon-list__content{
+  max-width:72ex;
+  font-size:3.19rem;
+  padding-left:1.276rem;
+}
+.usa-icon-list--size-15 .usa-icon-list__content .usa-icon-list__title{
+  font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+  font-size:2.93rem;
+}
+
+.usa-icon-list--size-16 .usa-icon-list__icon .usa-icon{
+  height:5.595rem;
+  width:5.595rem;
+}
+.usa-icon-list--size-16 .usa-icon-list__content{
+  max-width:72ex;
+  font-size:3.73rem;
+  padding-left:1.492rem;
+}
+.usa-icon-list--size-16 .usa-icon-list__content .usa-icon-list__title{
+  font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+  font-size:3.42rem;
+}
+
+.usa-icon-list--size-17 .usa-icon-list__icon .usa-icon{
+  height:6.39rem;
+  width:6.39rem;
+}
+.usa-icon-list--size-17 .usa-icon-list__content{
+  max-width:72ex;
+  font-size:4.26rem;
+  padding-left:1.704rem;
+}
+.usa-icon-list--size-17 .usa-icon-list__content .usa-icon-list__title{
+  font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+  font-size:3.9rem;
+}
+
+.usa-icon-list--size-18 .usa-icon-list__icon .usa-icon{
+  height:7.98rem;
+  width:7.98rem;
+}
+.usa-icon-list--size-18 .usa-icon-list__content{
+  max-width:72ex;
+  font-size:5.32rem;
+  padding-left:2.128rem;
+}
+.usa-icon-list--size-18 .usa-icon-list__content .usa-icon-list__title{
+  font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+  font-size:4.88rem;
+}
+
+.usa-icon-list--size-19 .usa-icon-list__icon .usa-icon{
+  height:11.985rem;
+  width:11.985rem;
+}
+.usa-icon-list--size-19 .usa-icon-list__content{
+  max-width:72ex;
+  font-size:7.99rem;
+  padding-left:3.196rem;
+}
+.usa-icon-list--size-19 .usa-icon-list__content .usa-icon-list__title{
+  font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+  font-size:7.32rem;
+}
+
+.usa-icon-list--size-20 .usa-icon-list__icon .usa-icon{
+  height:13.98rem;
+  width:13.98rem;
+}
+.usa-icon-list--size-20 .usa-icon-list__content{
+  max-width:72ex;
+  font-size:9.32rem;
+  padding-left:3.728rem;
+}
+.usa-icon-list--size-20 .usa-icon-list__content .usa-icon-list__title{
+  font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+  font-size:8.54rem;
+}
+
+.usa-icon-list--size-3xs .usa-icon-list__icon .usa-icon{
+  height:1.305rem;
+  width:1.305rem;
+}
+.usa-icon-list--size-3xs .usa-icon-list__content{
+  max-width:72ex;
+  font-size:0.87rem;
+  padding-left:0.348rem;
+}
+.usa-icon-list--size-3xs .usa-icon-list__content .usa-icon-list__title{
+  font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+  font-size:0.79rem;
+}
+
+.usa-icon-list--size-2xs .usa-icon-list__icon .usa-icon{
+  height:1.395rem;
+  width:1.395rem;
+}
+.usa-icon-list--size-2xs .usa-icon-list__content{
+  max-width:72ex;
+  font-size:0.93rem;
+  padding-left:0.372rem;
+}
+.usa-icon-list--size-2xs .usa-icon-list__content .usa-icon-list__title{
+  font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+  font-size:0.85rem;
+}
+
+.usa-icon-list--size-xs .usa-icon-list__icon .usa-icon{
+  height:1.5rem;
+  width:1.5rem;
+}
+.usa-icon-list--size-xs .usa-icon-list__content{
+  max-width:72ex;
+  font-size:1rem;
+  padding-left:0.4rem;
+}
+.usa-icon-list--size-xs .usa-icon-list__content .usa-icon-list__title{
+  font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+  font-size:0.91rem;
+}
+
+.usa-icon-list--size-sm .usa-icon-list__icon .usa-icon{
+  height:1.59rem;
+  width:1.59rem;
+}
+.usa-icon-list--size-sm .usa-icon-list__content{
+  max-width:72ex;
+  font-size:1.06rem;
+  padding-left:0.424rem;
+}
+.usa-icon-list--size-sm .usa-icon-list__content .usa-icon-list__title{
+  font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+  font-size:0.98rem;
+}
+
+.usa-icon-list--size-md .usa-icon-list__icon .usa-icon{
+  height:1.695rem;
+  width:1.695rem;
+}
+.usa-icon-list--size-md .usa-icon-list__content{
+  max-width:72ex;
+  font-size:1.13rem;
+  padding-left:0.452rem;
+}
+.usa-icon-list--size-md .usa-icon-list__content .usa-icon-list__title{
+  font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+  font-size:1.04rem;
+}
+
+.usa-icon-list--size-lg .usa-icon-list__icon .usa-icon{
+  height:2.19rem;
+  width:2.19rem;
+}
+.usa-icon-list--size-lg .usa-icon-list__content{
+  max-width:72ex;
+  font-size:1.46rem;
+  padding-left:0.584rem;
+}
+.usa-icon-list--size-lg .usa-icon-list__content .usa-icon-list__title{
+  font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+  font-size:1.34rem;
+}
+
+.usa-icon-list--size-xl .usa-icon-list__icon .usa-icon{
+  height:3.195rem;
+  width:3.195rem;
+}
+.usa-icon-list--size-xl .usa-icon-list__content{
+  max-width:72ex;
+  font-size:2.13rem;
+  padding-left:0.852rem;
+}
+.usa-icon-list--size-xl .usa-icon-list__content .usa-icon-list__title{
+  font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+  font-size:1.95rem;
+}
+
+.usa-icon-list--size-2xl .usa-icon-list__icon .usa-icon{
+  height:3.99rem;
+  width:3.99rem;
+}
+.usa-icon-list--size-2xl .usa-icon-list__content{
+  max-width:72ex;
+  font-size:2.66rem;
+  padding-left:1.064rem;
+}
+.usa-icon-list--size-2xl .usa-icon-list__content .usa-icon-list__title{
+  font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+  font-size:2.44rem;
+}
+
+.usa-icon-list--size-3xl .usa-icon-list__icon .usa-icon{
+  height:4.785rem;
+  width:4.785rem;
+}
+.usa-icon-list--size-3xl .usa-icon-list__content{
+  max-width:72ex;
+  font-size:3.19rem;
+  padding-left:1.276rem;
+}
+.usa-icon-list--size-3xl .usa-icon-list__content .usa-icon-list__title{
+  font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+  font-size:2.93rem;
+}
+
+@media all and (min-width: 30em){
+  .mobile-lg\:usa-icon-list--size-micro .usa-icon-list__icon .usa-icon{
+    height:1.005rem;
+    width:1.005rem;
+  }
+  .mobile-lg\:usa-icon-list--size-micro .usa-icon-list__content{
+    max-width:72ex;
+    font-size:0.67rem;
+    padding-left:0.268rem;
+  }
+  .mobile-lg\:usa-icon-list--size-micro .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:0.61rem;
+  }
+  .mobile-lg\:usa-icon-list--size-1 .usa-icon-list__icon .usa-icon{
+    height:1.2rem;
+    width:1.2rem;
+  }
+  .mobile-lg\:usa-icon-list--size-1 .usa-icon-list__content{
+    max-width:72ex;
+    font-size:0.8rem;
+    padding-left:0.32rem;
+  }
+  .mobile-lg\:usa-icon-list--size-1 .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:0.73rem;
+  }
+  .mobile-lg\:usa-icon-list--size-2 .usa-icon-list__icon .usa-icon{
+    height:1.305rem;
+    width:1.305rem;
+  }
+  .mobile-lg\:usa-icon-list--size-2 .usa-icon-list__content{
+    max-width:72ex;
+    font-size:0.87rem;
+    padding-left:0.348rem;
+  }
+  .mobile-lg\:usa-icon-list--size-2 .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:0.79rem;
+  }
+  .mobile-lg\:usa-icon-list--size-3 .usa-icon-list__icon .usa-icon{
+    height:1.395rem;
+    width:1.395rem;
+  }
+  .mobile-lg\:usa-icon-list--size-3 .usa-icon-list__content{
+    max-width:72ex;
+    font-size:0.93rem;
+    padding-left:0.372rem;
+  }
+  .mobile-lg\:usa-icon-list--size-3 .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:0.85rem;
+  }
+  .mobile-lg\:usa-icon-list--size-4 .usa-icon-list__icon .usa-icon{
+    height:1.5rem;
+    width:1.5rem;
+  }
+  .mobile-lg\:usa-icon-list--size-4 .usa-icon-list__content{
+    max-width:72ex;
+    font-size:1rem;
+    padding-left:0.4rem;
+  }
+  .mobile-lg\:usa-icon-list--size-4 .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:0.91rem;
+  }
+  .mobile-lg\:usa-icon-list--size-5 .usa-icon-list__icon .usa-icon{
+    height:1.59rem;
+    width:1.59rem;
+  }
+  .mobile-lg\:usa-icon-list--size-5 .usa-icon-list__content{
+    max-width:72ex;
+    font-size:1.06rem;
+    padding-left:0.424rem;
+  }
+  .mobile-lg\:usa-icon-list--size-5 .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:0.98rem;
+  }
+  .mobile-lg\:usa-icon-list--size-6 .usa-icon-list__icon .usa-icon{
+    height:1.695rem;
+    width:1.695rem;
+  }
+  .mobile-lg\:usa-icon-list--size-6 .usa-icon-list__content{
+    max-width:72ex;
+    font-size:1.13rem;
+    padding-left:0.452rem;
+  }
+  .mobile-lg\:usa-icon-list--size-6 .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:1.04rem;
+  }
+  .mobile-lg\:usa-icon-list--size-7 .usa-icon-list__icon .usa-icon{
+    height:1.8rem;
+    width:1.8rem;
+  }
+  .mobile-lg\:usa-icon-list--size-7 .usa-icon-list__content{
+    max-width:72ex;
+    font-size:1.2rem;
+    padding-left:0.48rem;
+  }
+  .mobile-lg\:usa-icon-list--size-7 .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:1.1rem;
+  }
+  .mobile-lg\:usa-icon-list--size-8 .usa-icon-list__icon .usa-icon{
+    height:1.995rem;
+    width:1.995rem;
+  }
+  .mobile-lg\:usa-icon-list--size-8 .usa-icon-list__content{
+    max-width:72ex;
+    font-size:1.33rem;
+    padding-left:0.532rem;
+  }
+  .mobile-lg\:usa-icon-list--size-8 .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:1.22rem;
+  }
+  .mobile-lg\:usa-icon-list--size-9 .usa-icon-list__icon .usa-icon{
+    height:2.19rem;
+    width:2.19rem;
+  }
+  .mobile-lg\:usa-icon-list--size-9 .usa-icon-list__content{
+    max-width:72ex;
+    font-size:1.46rem;
+    padding-left:0.584rem;
+  }
+  .mobile-lg\:usa-icon-list--size-9 .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:1.34rem;
+  }
+  .mobile-lg\:usa-icon-list--size-10 .usa-icon-list__icon .usa-icon{
+    height:2.4rem;
+    width:2.4rem;
+  }
+  .mobile-lg\:usa-icon-list--size-10 .usa-icon-list__content{
+    max-width:72ex;
+    font-size:1.6rem;
+    padding-left:0.64rem;
+  }
+  .mobile-lg\:usa-icon-list--size-10 .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:1.46rem;
+  }
+  .mobile-lg\:usa-icon-list--size-11 .usa-icon-list__icon .usa-icon{
+    height:2.79rem;
+    width:2.79rem;
+  }
+  .mobile-lg\:usa-icon-list--size-11 .usa-icon-list__content{
+    max-width:72ex;
+    font-size:1.86rem;
+    padding-left:0.744rem;
+  }
+  .mobile-lg\:usa-icon-list--size-11 .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:1.71rem;
+  }
+  .mobile-lg\:usa-icon-list--size-12 .usa-icon-list__icon .usa-icon{
+    height:3.195rem;
+    width:3.195rem;
+  }
+  .mobile-lg\:usa-icon-list--size-12 .usa-icon-list__content{
+    max-width:72ex;
+    font-size:2.13rem;
+    padding-left:0.852rem;
+  }
+  .mobile-lg\:usa-icon-list--size-12 .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:1.95rem;
+  }
+  .mobile-lg\:usa-icon-list--size-13 .usa-icon-list__icon .usa-icon{
+    height:3.6rem;
+    width:3.6rem;
+  }
+  .mobile-lg\:usa-icon-list--size-13 .usa-icon-list__content{
+    max-width:72ex;
+    font-size:2.4rem;
+    padding-left:0.96rem;
+  }
+  .mobile-lg\:usa-icon-list--size-13 .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:2.2rem;
+  }
+  .mobile-lg\:usa-icon-list--size-14 .usa-icon-list__icon .usa-icon{
+    height:3.99rem;
+    width:3.99rem;
+  }
+  .mobile-lg\:usa-icon-list--size-14 .usa-icon-list__content{
+    max-width:72ex;
+    font-size:2.66rem;
+    padding-left:1.064rem;
+  }
+  .mobile-lg\:usa-icon-list--size-14 .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:2.44rem;
+  }
+  .mobile-lg\:usa-icon-list--size-15 .usa-icon-list__icon .usa-icon{
+    height:4.785rem;
+    width:4.785rem;
+  }
+  .mobile-lg\:usa-icon-list--size-15 .usa-icon-list__content{
+    max-width:72ex;
+    font-size:3.19rem;
+    padding-left:1.276rem;
+  }
+  .mobile-lg\:usa-icon-list--size-15 .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:2.93rem;
+  }
+  .mobile-lg\:usa-icon-list--size-16 .usa-icon-list__icon .usa-icon{
+    height:5.595rem;
+    width:5.595rem;
+  }
+  .mobile-lg\:usa-icon-list--size-16 .usa-icon-list__content{
+    max-width:72ex;
+    font-size:3.73rem;
+    padding-left:1.492rem;
+  }
+  .mobile-lg\:usa-icon-list--size-16 .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:3.42rem;
+  }
+  .mobile-lg\:usa-icon-list--size-17 .usa-icon-list__icon .usa-icon{
+    height:6.39rem;
+    width:6.39rem;
+  }
+  .mobile-lg\:usa-icon-list--size-17 .usa-icon-list__content{
+    max-width:72ex;
+    font-size:4.26rem;
+    padding-left:1.704rem;
+  }
+  .mobile-lg\:usa-icon-list--size-17 .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:3.9rem;
+  }
+  .mobile-lg\:usa-icon-list--size-18 .usa-icon-list__icon .usa-icon{
+    height:7.98rem;
+    width:7.98rem;
+  }
+  .mobile-lg\:usa-icon-list--size-18 .usa-icon-list__content{
+    max-width:72ex;
+    font-size:5.32rem;
+    padding-left:2.128rem;
+  }
+  .mobile-lg\:usa-icon-list--size-18 .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:4.88rem;
+  }
+  .mobile-lg\:usa-icon-list--size-19 .usa-icon-list__icon .usa-icon{
+    height:11.985rem;
+    width:11.985rem;
+  }
+  .mobile-lg\:usa-icon-list--size-19 .usa-icon-list__content{
+    max-width:72ex;
+    font-size:7.99rem;
+    padding-left:3.196rem;
+  }
+  .mobile-lg\:usa-icon-list--size-19 .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:7.32rem;
+  }
+  .mobile-lg\:usa-icon-list--size-20 .usa-icon-list__icon .usa-icon{
+    height:13.98rem;
+    width:13.98rem;
+  }
+  .mobile-lg\:usa-icon-list--size-20 .usa-icon-list__content{
+    max-width:72ex;
+    font-size:9.32rem;
+    padding-left:3.728rem;
+  }
+  .mobile-lg\:usa-icon-list--size-20 .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:8.54rem;
+  }
+  .mobile-lg\:usa-icon-list--size-3xs .usa-icon-list__icon .usa-icon{
+    height:1.305rem;
+    width:1.305rem;
+  }
+  .mobile-lg\:usa-icon-list--size-3xs .usa-icon-list__content{
+    max-width:72ex;
+    font-size:0.87rem;
+    padding-left:0.348rem;
+  }
+  .mobile-lg\:usa-icon-list--size-3xs .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:0.79rem;
+  }
+  .mobile-lg\:usa-icon-list--size-2xs .usa-icon-list__icon .usa-icon{
+    height:1.395rem;
+    width:1.395rem;
+  }
+  .mobile-lg\:usa-icon-list--size-2xs .usa-icon-list__content{
+    max-width:72ex;
+    font-size:0.93rem;
+    padding-left:0.372rem;
+  }
+  .mobile-lg\:usa-icon-list--size-2xs .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:0.85rem;
+  }
+  .mobile-lg\:usa-icon-list--size-xs .usa-icon-list__icon .usa-icon{
+    height:1.5rem;
+    width:1.5rem;
+  }
+  .mobile-lg\:usa-icon-list--size-xs .usa-icon-list__content{
+    max-width:72ex;
+    font-size:1rem;
+    padding-left:0.4rem;
+  }
+  .mobile-lg\:usa-icon-list--size-xs .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:0.91rem;
+  }
+  .mobile-lg\:usa-icon-list--size-sm .usa-icon-list__icon .usa-icon{
+    height:1.59rem;
+    width:1.59rem;
+  }
+  .mobile-lg\:usa-icon-list--size-sm .usa-icon-list__content{
+    max-width:72ex;
+    font-size:1.06rem;
+    padding-left:0.424rem;
+  }
+  .mobile-lg\:usa-icon-list--size-sm .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:0.98rem;
+  }
+  .mobile-lg\:usa-icon-list--size-md .usa-icon-list__icon .usa-icon{
+    height:1.695rem;
+    width:1.695rem;
+  }
+  .mobile-lg\:usa-icon-list--size-md .usa-icon-list__content{
+    max-width:72ex;
+    font-size:1.13rem;
+    padding-left:0.452rem;
+  }
+  .mobile-lg\:usa-icon-list--size-md .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:1.04rem;
+  }
+  .mobile-lg\:usa-icon-list--size-lg .usa-icon-list__icon .usa-icon{
+    height:2.19rem;
+    width:2.19rem;
+  }
+  .mobile-lg\:usa-icon-list--size-lg .usa-icon-list__content{
+    max-width:72ex;
+    font-size:1.46rem;
+    padding-left:0.584rem;
+  }
+  .mobile-lg\:usa-icon-list--size-lg .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:1.34rem;
+  }
+  .mobile-lg\:usa-icon-list--size-xl .usa-icon-list__icon .usa-icon{
+    height:3.195rem;
+    width:3.195rem;
+  }
+  .mobile-lg\:usa-icon-list--size-xl .usa-icon-list__content{
+    max-width:72ex;
+    font-size:2.13rem;
+    padding-left:0.852rem;
+  }
+  .mobile-lg\:usa-icon-list--size-xl .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:1.95rem;
+  }
+  .mobile-lg\:usa-icon-list--size-2xl .usa-icon-list__icon .usa-icon{
+    height:3.99rem;
+    width:3.99rem;
+  }
+  .mobile-lg\:usa-icon-list--size-2xl .usa-icon-list__content{
+    max-width:72ex;
+    font-size:2.66rem;
+    padding-left:1.064rem;
+  }
+  .mobile-lg\:usa-icon-list--size-2xl .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:2.44rem;
+  }
+  .mobile-lg\:usa-icon-list--size-3xl .usa-icon-list__icon .usa-icon{
+    height:4.785rem;
+    width:4.785rem;
+  }
+  .mobile-lg\:usa-icon-list--size-3xl .usa-icon-list__content{
+    max-width:72ex;
+    font-size:3.19rem;
+    padding-left:1.276rem;
+  }
+  .mobile-lg\:usa-icon-list--size-3xl .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:2.93rem;
+  }
+}
+@media all and (min-width: 40em){
+  .tablet\:usa-icon-list--size-micro .usa-icon-list__icon .usa-icon{
+    height:1.005rem;
+    width:1.005rem;
+  }
+  .tablet\:usa-icon-list--size-micro .usa-icon-list__content{
+    max-width:72ex;
+    font-size:0.67rem;
+    padding-left:0.268rem;
+  }
+  .tablet\:usa-icon-list--size-micro .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:0.61rem;
+  }
+  .tablet\:usa-icon-list--size-1 .usa-icon-list__icon .usa-icon{
+    height:1.2rem;
+    width:1.2rem;
+  }
+  .tablet\:usa-icon-list--size-1 .usa-icon-list__content{
+    max-width:72ex;
+    font-size:0.8rem;
+    padding-left:0.32rem;
+  }
+  .tablet\:usa-icon-list--size-1 .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:0.73rem;
+  }
+  .tablet\:usa-icon-list--size-2 .usa-icon-list__icon .usa-icon{
+    height:1.305rem;
+    width:1.305rem;
+  }
+  .tablet\:usa-icon-list--size-2 .usa-icon-list__content{
+    max-width:72ex;
+    font-size:0.87rem;
+    padding-left:0.348rem;
+  }
+  .tablet\:usa-icon-list--size-2 .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:0.79rem;
+  }
+  .tablet\:usa-icon-list--size-3 .usa-icon-list__icon .usa-icon{
+    height:1.395rem;
+    width:1.395rem;
+  }
+  .tablet\:usa-icon-list--size-3 .usa-icon-list__content{
+    max-width:72ex;
+    font-size:0.93rem;
+    padding-left:0.372rem;
+  }
+  .tablet\:usa-icon-list--size-3 .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:0.85rem;
+  }
+  .tablet\:usa-icon-list--size-4 .usa-icon-list__icon .usa-icon{
+    height:1.5rem;
+    width:1.5rem;
+  }
+  .tablet\:usa-icon-list--size-4 .usa-icon-list__content{
+    max-width:72ex;
+    font-size:1rem;
+    padding-left:0.4rem;
+  }
+  .tablet\:usa-icon-list--size-4 .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:0.91rem;
+  }
+  .tablet\:usa-icon-list--size-5 .usa-icon-list__icon .usa-icon{
+    height:1.59rem;
+    width:1.59rem;
+  }
+  .tablet\:usa-icon-list--size-5 .usa-icon-list__content{
+    max-width:72ex;
+    font-size:1.06rem;
+    padding-left:0.424rem;
+  }
+  .tablet\:usa-icon-list--size-5 .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:0.98rem;
+  }
+  .tablet\:usa-icon-list--size-6 .usa-icon-list__icon .usa-icon{
+    height:1.695rem;
+    width:1.695rem;
+  }
+  .tablet\:usa-icon-list--size-6 .usa-icon-list__content{
+    max-width:72ex;
+    font-size:1.13rem;
+    padding-left:0.452rem;
+  }
+  .tablet\:usa-icon-list--size-6 .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:1.04rem;
+  }
+  .tablet\:usa-icon-list--size-7 .usa-icon-list__icon .usa-icon{
+    height:1.8rem;
+    width:1.8rem;
+  }
+  .tablet\:usa-icon-list--size-7 .usa-icon-list__content{
+    max-width:72ex;
+    font-size:1.2rem;
+    padding-left:0.48rem;
+  }
+  .tablet\:usa-icon-list--size-7 .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:1.1rem;
+  }
+  .tablet\:usa-icon-list--size-8 .usa-icon-list__icon .usa-icon{
+    height:1.995rem;
+    width:1.995rem;
+  }
+  .tablet\:usa-icon-list--size-8 .usa-icon-list__content{
+    max-width:72ex;
+    font-size:1.33rem;
+    padding-left:0.532rem;
+  }
+  .tablet\:usa-icon-list--size-8 .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:1.22rem;
+  }
+  .tablet\:usa-icon-list--size-9 .usa-icon-list__icon .usa-icon{
+    height:2.19rem;
+    width:2.19rem;
+  }
+  .tablet\:usa-icon-list--size-9 .usa-icon-list__content{
+    max-width:72ex;
+    font-size:1.46rem;
+    padding-left:0.584rem;
+  }
+  .tablet\:usa-icon-list--size-9 .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:1.34rem;
+  }
+  .tablet\:usa-icon-list--size-10 .usa-icon-list__icon .usa-icon{
+    height:2.4rem;
+    width:2.4rem;
+  }
+  .tablet\:usa-icon-list--size-10 .usa-icon-list__content{
+    max-width:72ex;
+    font-size:1.6rem;
+    padding-left:0.64rem;
+  }
+  .tablet\:usa-icon-list--size-10 .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:1.46rem;
+  }
+  .tablet\:usa-icon-list--size-11 .usa-icon-list__icon .usa-icon{
+    height:2.79rem;
+    width:2.79rem;
+  }
+  .tablet\:usa-icon-list--size-11 .usa-icon-list__content{
+    max-width:72ex;
+    font-size:1.86rem;
+    padding-left:0.744rem;
+  }
+  .tablet\:usa-icon-list--size-11 .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:1.71rem;
+  }
+  .tablet\:usa-icon-list--size-12 .usa-icon-list__icon .usa-icon{
+    height:3.195rem;
+    width:3.195rem;
+  }
+  .tablet\:usa-icon-list--size-12 .usa-icon-list__content{
+    max-width:72ex;
+    font-size:2.13rem;
+    padding-left:0.852rem;
+  }
+  .tablet\:usa-icon-list--size-12 .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:1.95rem;
+  }
+  .tablet\:usa-icon-list--size-13 .usa-icon-list__icon .usa-icon{
+    height:3.6rem;
+    width:3.6rem;
+  }
+  .tablet\:usa-icon-list--size-13 .usa-icon-list__content{
+    max-width:72ex;
+    font-size:2.4rem;
+    padding-left:0.96rem;
+  }
+  .tablet\:usa-icon-list--size-13 .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:2.2rem;
+  }
+  .tablet\:usa-icon-list--size-14 .usa-icon-list__icon .usa-icon{
+    height:3.99rem;
+    width:3.99rem;
+  }
+  .tablet\:usa-icon-list--size-14 .usa-icon-list__content{
+    max-width:72ex;
+    font-size:2.66rem;
+    padding-left:1.064rem;
+  }
+  .tablet\:usa-icon-list--size-14 .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:2.44rem;
+  }
+  .tablet\:usa-icon-list--size-15 .usa-icon-list__icon .usa-icon{
+    height:4.785rem;
+    width:4.785rem;
+  }
+  .tablet\:usa-icon-list--size-15 .usa-icon-list__content{
+    max-width:72ex;
+    font-size:3.19rem;
+    padding-left:1.276rem;
+  }
+  .tablet\:usa-icon-list--size-15 .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:2.93rem;
+  }
+  .tablet\:usa-icon-list--size-16 .usa-icon-list__icon .usa-icon{
+    height:5.595rem;
+    width:5.595rem;
+  }
+  .tablet\:usa-icon-list--size-16 .usa-icon-list__content{
+    max-width:72ex;
+    font-size:3.73rem;
+    padding-left:1.492rem;
+  }
+  .tablet\:usa-icon-list--size-16 .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:3.42rem;
+  }
+  .tablet\:usa-icon-list--size-17 .usa-icon-list__icon .usa-icon{
+    height:6.39rem;
+    width:6.39rem;
+  }
+  .tablet\:usa-icon-list--size-17 .usa-icon-list__content{
+    max-width:72ex;
+    font-size:4.26rem;
+    padding-left:1.704rem;
+  }
+  .tablet\:usa-icon-list--size-17 .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:3.9rem;
+  }
+  .tablet\:usa-icon-list--size-18 .usa-icon-list__icon .usa-icon{
+    height:7.98rem;
+    width:7.98rem;
+  }
+  .tablet\:usa-icon-list--size-18 .usa-icon-list__content{
+    max-width:72ex;
+    font-size:5.32rem;
+    padding-left:2.128rem;
+  }
+  .tablet\:usa-icon-list--size-18 .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:4.88rem;
+  }
+  .tablet\:usa-icon-list--size-19 .usa-icon-list__icon .usa-icon{
+    height:11.985rem;
+    width:11.985rem;
+  }
+  .tablet\:usa-icon-list--size-19 .usa-icon-list__content{
+    max-width:72ex;
+    font-size:7.99rem;
+    padding-left:3.196rem;
+  }
+  .tablet\:usa-icon-list--size-19 .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:7.32rem;
+  }
+  .tablet\:usa-icon-list--size-20 .usa-icon-list__icon .usa-icon{
+    height:13.98rem;
+    width:13.98rem;
+  }
+  .tablet\:usa-icon-list--size-20 .usa-icon-list__content{
+    max-width:72ex;
+    font-size:9.32rem;
+    padding-left:3.728rem;
+  }
+  .tablet\:usa-icon-list--size-20 .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:8.54rem;
+  }
+  .tablet\:usa-icon-list--size-3xs .usa-icon-list__icon .usa-icon{
+    height:1.305rem;
+    width:1.305rem;
+  }
+  .tablet\:usa-icon-list--size-3xs .usa-icon-list__content{
+    max-width:72ex;
+    font-size:0.87rem;
+    padding-left:0.348rem;
+  }
+  .tablet\:usa-icon-list--size-3xs .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:0.79rem;
+  }
+  .tablet\:usa-icon-list--size-2xs .usa-icon-list__icon .usa-icon{
+    height:1.395rem;
+    width:1.395rem;
+  }
+  .tablet\:usa-icon-list--size-2xs .usa-icon-list__content{
+    max-width:72ex;
+    font-size:0.93rem;
+    padding-left:0.372rem;
+  }
+  .tablet\:usa-icon-list--size-2xs .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:0.85rem;
+  }
+  .tablet\:usa-icon-list--size-xs .usa-icon-list__icon .usa-icon{
+    height:1.5rem;
+    width:1.5rem;
+  }
+  .tablet\:usa-icon-list--size-xs .usa-icon-list__content{
+    max-width:72ex;
+    font-size:1rem;
+    padding-left:0.4rem;
+  }
+  .tablet\:usa-icon-list--size-xs .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:0.91rem;
+  }
+  .tablet\:usa-icon-list--size-sm .usa-icon-list__icon .usa-icon{
+    height:1.59rem;
+    width:1.59rem;
+  }
+  .tablet\:usa-icon-list--size-sm .usa-icon-list__content{
+    max-width:72ex;
+    font-size:1.06rem;
+    padding-left:0.424rem;
+  }
+  .tablet\:usa-icon-list--size-sm .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:0.98rem;
+  }
+  .tablet\:usa-icon-list--size-md .usa-icon-list__icon .usa-icon{
+    height:1.695rem;
+    width:1.695rem;
+  }
+  .tablet\:usa-icon-list--size-md .usa-icon-list__content{
+    max-width:72ex;
+    font-size:1.13rem;
+    padding-left:0.452rem;
+  }
+  .tablet\:usa-icon-list--size-md .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:1.04rem;
+  }
+  .tablet\:usa-icon-list--size-lg .usa-icon-list__icon .usa-icon{
+    height:2.19rem;
+    width:2.19rem;
+  }
+  .tablet\:usa-icon-list--size-lg .usa-icon-list__content{
+    max-width:72ex;
+    font-size:1.46rem;
+    padding-left:0.584rem;
+  }
+  .tablet\:usa-icon-list--size-lg .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:1.34rem;
+  }
+  .tablet\:usa-icon-list--size-xl .usa-icon-list__icon .usa-icon{
+    height:3.195rem;
+    width:3.195rem;
+  }
+  .tablet\:usa-icon-list--size-xl .usa-icon-list__content{
+    max-width:72ex;
+    font-size:2.13rem;
+    padding-left:0.852rem;
+  }
+  .tablet\:usa-icon-list--size-xl .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:1.95rem;
+  }
+  .tablet\:usa-icon-list--size-2xl .usa-icon-list__icon .usa-icon{
+    height:3.99rem;
+    width:3.99rem;
+  }
+  .tablet\:usa-icon-list--size-2xl .usa-icon-list__content{
+    max-width:72ex;
+    font-size:2.66rem;
+    padding-left:1.064rem;
+  }
+  .tablet\:usa-icon-list--size-2xl .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:2.44rem;
+  }
+  .tablet\:usa-icon-list--size-3xl .usa-icon-list__icon .usa-icon{
+    height:4.785rem;
+    width:4.785rem;
+  }
+  .tablet\:usa-icon-list--size-3xl .usa-icon-list__content{
+    max-width:72ex;
+    font-size:3.19rem;
+    padding-left:1.276rem;
+  }
+  .tablet\:usa-icon-list--size-3xl .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:2.93rem;
+  }
+}
+@media all and (min-width: 64em){
+  .desktop\:usa-icon-list--size-micro .usa-icon-list__icon .usa-icon{
+    height:1.005rem;
+    width:1.005rem;
+  }
+  .desktop\:usa-icon-list--size-micro .usa-icon-list__content{
+    max-width:72ex;
+    font-size:0.67rem;
+    padding-left:0.268rem;
+  }
+  .desktop\:usa-icon-list--size-micro .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:0.61rem;
+  }
+  .desktop\:usa-icon-list--size-1 .usa-icon-list__icon .usa-icon{
+    height:1.2rem;
+    width:1.2rem;
+  }
+  .desktop\:usa-icon-list--size-1 .usa-icon-list__content{
+    max-width:72ex;
+    font-size:0.8rem;
+    padding-left:0.32rem;
+  }
+  .desktop\:usa-icon-list--size-1 .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:0.73rem;
+  }
+  .desktop\:usa-icon-list--size-2 .usa-icon-list__icon .usa-icon{
+    height:1.305rem;
+    width:1.305rem;
+  }
+  .desktop\:usa-icon-list--size-2 .usa-icon-list__content{
+    max-width:72ex;
+    font-size:0.87rem;
+    padding-left:0.348rem;
+  }
+  .desktop\:usa-icon-list--size-2 .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:0.79rem;
+  }
+  .desktop\:usa-icon-list--size-3 .usa-icon-list__icon .usa-icon{
+    height:1.395rem;
+    width:1.395rem;
+  }
+  .desktop\:usa-icon-list--size-3 .usa-icon-list__content{
+    max-width:72ex;
+    font-size:0.93rem;
+    padding-left:0.372rem;
+  }
+  .desktop\:usa-icon-list--size-3 .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:0.85rem;
+  }
+  .desktop\:usa-icon-list--size-4 .usa-icon-list__icon .usa-icon{
+    height:1.5rem;
+    width:1.5rem;
+  }
+  .desktop\:usa-icon-list--size-4 .usa-icon-list__content{
+    max-width:72ex;
+    font-size:1rem;
+    padding-left:0.4rem;
+  }
+  .desktop\:usa-icon-list--size-4 .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:0.91rem;
+  }
+  .desktop\:usa-icon-list--size-5 .usa-icon-list__icon .usa-icon{
+    height:1.59rem;
+    width:1.59rem;
+  }
+  .desktop\:usa-icon-list--size-5 .usa-icon-list__content{
+    max-width:72ex;
+    font-size:1.06rem;
+    padding-left:0.424rem;
+  }
+  .desktop\:usa-icon-list--size-5 .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:0.98rem;
+  }
+  .desktop\:usa-icon-list--size-6 .usa-icon-list__icon .usa-icon{
+    height:1.695rem;
+    width:1.695rem;
+  }
+  .desktop\:usa-icon-list--size-6 .usa-icon-list__content{
+    max-width:72ex;
+    font-size:1.13rem;
+    padding-left:0.452rem;
+  }
+  .desktop\:usa-icon-list--size-6 .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:1.04rem;
+  }
+  .desktop\:usa-icon-list--size-7 .usa-icon-list__icon .usa-icon{
+    height:1.8rem;
+    width:1.8rem;
+  }
+  .desktop\:usa-icon-list--size-7 .usa-icon-list__content{
+    max-width:72ex;
+    font-size:1.2rem;
+    padding-left:0.48rem;
+  }
+  .desktop\:usa-icon-list--size-7 .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:1.1rem;
+  }
+  .desktop\:usa-icon-list--size-8 .usa-icon-list__icon .usa-icon{
+    height:1.995rem;
+    width:1.995rem;
+  }
+  .desktop\:usa-icon-list--size-8 .usa-icon-list__content{
+    max-width:72ex;
+    font-size:1.33rem;
+    padding-left:0.532rem;
+  }
+  .desktop\:usa-icon-list--size-8 .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:1.22rem;
+  }
+  .desktop\:usa-icon-list--size-9 .usa-icon-list__icon .usa-icon{
+    height:2.19rem;
+    width:2.19rem;
+  }
+  .desktop\:usa-icon-list--size-9 .usa-icon-list__content{
+    max-width:72ex;
+    font-size:1.46rem;
+    padding-left:0.584rem;
+  }
+  .desktop\:usa-icon-list--size-9 .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:1.34rem;
+  }
+  .desktop\:usa-icon-list--size-10 .usa-icon-list__icon .usa-icon{
+    height:2.4rem;
+    width:2.4rem;
+  }
+  .desktop\:usa-icon-list--size-10 .usa-icon-list__content{
+    max-width:72ex;
+    font-size:1.6rem;
+    padding-left:0.64rem;
+  }
+  .desktop\:usa-icon-list--size-10 .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:1.46rem;
+  }
+  .desktop\:usa-icon-list--size-11 .usa-icon-list__icon .usa-icon{
+    height:2.79rem;
+    width:2.79rem;
+  }
+  .desktop\:usa-icon-list--size-11 .usa-icon-list__content{
+    max-width:72ex;
+    font-size:1.86rem;
+    padding-left:0.744rem;
+  }
+  .desktop\:usa-icon-list--size-11 .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:1.71rem;
+  }
+  .desktop\:usa-icon-list--size-12 .usa-icon-list__icon .usa-icon{
+    height:3.195rem;
+    width:3.195rem;
+  }
+  .desktop\:usa-icon-list--size-12 .usa-icon-list__content{
+    max-width:72ex;
+    font-size:2.13rem;
+    padding-left:0.852rem;
+  }
+  .desktop\:usa-icon-list--size-12 .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:1.95rem;
+  }
+  .desktop\:usa-icon-list--size-13 .usa-icon-list__icon .usa-icon{
+    height:3.6rem;
+    width:3.6rem;
+  }
+  .desktop\:usa-icon-list--size-13 .usa-icon-list__content{
+    max-width:72ex;
+    font-size:2.4rem;
+    padding-left:0.96rem;
+  }
+  .desktop\:usa-icon-list--size-13 .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:2.2rem;
+  }
+  .desktop\:usa-icon-list--size-14 .usa-icon-list__icon .usa-icon{
+    height:3.99rem;
+    width:3.99rem;
+  }
+  .desktop\:usa-icon-list--size-14 .usa-icon-list__content{
+    max-width:72ex;
+    font-size:2.66rem;
+    padding-left:1.064rem;
+  }
+  .desktop\:usa-icon-list--size-14 .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:2.44rem;
+  }
+  .desktop\:usa-icon-list--size-15 .usa-icon-list__icon .usa-icon{
+    height:4.785rem;
+    width:4.785rem;
+  }
+  .desktop\:usa-icon-list--size-15 .usa-icon-list__content{
+    max-width:72ex;
+    font-size:3.19rem;
+    padding-left:1.276rem;
+  }
+  .desktop\:usa-icon-list--size-15 .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:2.93rem;
+  }
+  .desktop\:usa-icon-list--size-16 .usa-icon-list__icon .usa-icon{
+    height:5.595rem;
+    width:5.595rem;
+  }
+  .desktop\:usa-icon-list--size-16 .usa-icon-list__content{
+    max-width:72ex;
+    font-size:3.73rem;
+    padding-left:1.492rem;
+  }
+  .desktop\:usa-icon-list--size-16 .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:3.42rem;
+  }
+  .desktop\:usa-icon-list--size-17 .usa-icon-list__icon .usa-icon{
+    height:6.39rem;
+    width:6.39rem;
+  }
+  .desktop\:usa-icon-list--size-17 .usa-icon-list__content{
+    max-width:72ex;
+    font-size:4.26rem;
+    padding-left:1.704rem;
+  }
+  .desktop\:usa-icon-list--size-17 .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:3.9rem;
+  }
+  .desktop\:usa-icon-list--size-18 .usa-icon-list__icon .usa-icon{
+    height:7.98rem;
+    width:7.98rem;
+  }
+  .desktop\:usa-icon-list--size-18 .usa-icon-list__content{
+    max-width:72ex;
+    font-size:5.32rem;
+    padding-left:2.128rem;
+  }
+  .desktop\:usa-icon-list--size-18 .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:4.88rem;
+  }
+  .desktop\:usa-icon-list--size-19 .usa-icon-list__icon .usa-icon{
+    height:11.985rem;
+    width:11.985rem;
+  }
+  .desktop\:usa-icon-list--size-19 .usa-icon-list__content{
+    max-width:72ex;
+    font-size:7.99rem;
+    padding-left:3.196rem;
+  }
+  .desktop\:usa-icon-list--size-19 .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:7.32rem;
+  }
+  .desktop\:usa-icon-list--size-20 .usa-icon-list__icon .usa-icon{
+    height:13.98rem;
+    width:13.98rem;
+  }
+  .desktop\:usa-icon-list--size-20 .usa-icon-list__content{
+    max-width:72ex;
+    font-size:9.32rem;
+    padding-left:3.728rem;
+  }
+  .desktop\:usa-icon-list--size-20 .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:8.54rem;
+  }
+  .desktop\:usa-icon-list--size-3xs .usa-icon-list__icon .usa-icon{
+    height:1.305rem;
+    width:1.305rem;
+  }
+  .desktop\:usa-icon-list--size-3xs .usa-icon-list__content{
+    max-width:72ex;
+    font-size:0.87rem;
+    padding-left:0.348rem;
+  }
+  .desktop\:usa-icon-list--size-3xs .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:0.79rem;
+  }
+  .desktop\:usa-icon-list--size-2xs .usa-icon-list__icon .usa-icon{
+    height:1.395rem;
+    width:1.395rem;
+  }
+  .desktop\:usa-icon-list--size-2xs .usa-icon-list__content{
+    max-width:72ex;
+    font-size:0.93rem;
+    padding-left:0.372rem;
+  }
+  .desktop\:usa-icon-list--size-2xs .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:0.85rem;
+  }
+  .desktop\:usa-icon-list--size-xs .usa-icon-list__icon .usa-icon{
+    height:1.5rem;
+    width:1.5rem;
+  }
+  .desktop\:usa-icon-list--size-xs .usa-icon-list__content{
+    max-width:72ex;
+    font-size:1rem;
+    padding-left:0.4rem;
+  }
+  .desktop\:usa-icon-list--size-xs .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:0.91rem;
+  }
+  .desktop\:usa-icon-list--size-sm .usa-icon-list__icon .usa-icon{
+    height:1.59rem;
+    width:1.59rem;
+  }
+  .desktop\:usa-icon-list--size-sm .usa-icon-list__content{
+    max-width:72ex;
+    font-size:1.06rem;
+    padding-left:0.424rem;
+  }
+  .desktop\:usa-icon-list--size-sm .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:0.98rem;
+  }
+  .desktop\:usa-icon-list--size-md .usa-icon-list__icon .usa-icon{
+    height:1.695rem;
+    width:1.695rem;
+  }
+  .desktop\:usa-icon-list--size-md .usa-icon-list__content{
+    max-width:72ex;
+    font-size:1.13rem;
+    padding-left:0.452rem;
+  }
+  .desktop\:usa-icon-list--size-md .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:1.04rem;
+  }
+  .desktop\:usa-icon-list--size-lg .usa-icon-list__icon .usa-icon{
+    height:2.19rem;
+    width:2.19rem;
+  }
+  .desktop\:usa-icon-list--size-lg .usa-icon-list__content{
+    max-width:72ex;
+    font-size:1.46rem;
+    padding-left:0.584rem;
+  }
+  .desktop\:usa-icon-list--size-lg .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:1.34rem;
+  }
+  .desktop\:usa-icon-list--size-xl .usa-icon-list__icon .usa-icon{
+    height:3.195rem;
+    width:3.195rem;
+  }
+  .desktop\:usa-icon-list--size-xl .usa-icon-list__content{
+    max-width:72ex;
+    font-size:2.13rem;
+    padding-left:0.852rem;
+  }
+  .desktop\:usa-icon-list--size-xl .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:1.95rem;
+  }
+  .desktop\:usa-icon-list--size-2xl .usa-icon-list__icon .usa-icon{
+    height:3.99rem;
+    width:3.99rem;
+  }
+  .desktop\:usa-icon-list--size-2xl .usa-icon-list__content{
+    max-width:72ex;
+    font-size:2.66rem;
+    padding-left:1.064rem;
+  }
+  .desktop\:usa-icon-list--size-2xl .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:2.44rem;
+  }
+  .desktop\:usa-icon-list--size-3xl .usa-icon-list__icon .usa-icon{
+    height:4.785rem;
+    width:4.785rem;
+  }
+  .desktop\:usa-icon-list--size-3xl .usa-icon-list__content{
+    max-width:72ex;
+    font-size:3.19rem;
+    padding-left:1.276rem;
+  }
+  .desktop\:usa-icon-list--size-3xl .usa-icon-list__content .usa-icon-list__title{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:2.93rem;
+  }
+}
+.usa-icon-list__title{
+  font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+  font-size:0.98rem;
+  line-height:1.2;
+  margin-bottom:0rem;
+  padding-top:0.425ex;
+}
+.usa-icon-list__title + *{
+  margin-top:0.5rem;
+}
+
+.usa-icon-list__content{
+  font-size:1.06rem;
+  padding-left:0.424rem;
+}
+.usa-icon-list__content > *:first-child{
+  margin-top:0;
+}
+.usa-icon-list__content > *:last-child{
+  margin-bottom:0;
+}
+.usa-icon-list__content ul li{
+  list-style-type:disc;
+}
+
+.usa-identifier{
+  font-family:Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
+  font-size:1.06rem;
+  line-height:1.3;
+  color:white;
+  background-color:#1b1b1b;
+  padding-bottom:1rem;
+}
+
+.usa-identifier__container{
+  margin-left:auto;
+  margin-right:auto;
+  max-width:64rem;
+  padding-left:1rem;
+  padding-right:1rem;
+  max-width:64rem;
+}
+@media all and (min-width: 64em){
+  .usa-identifier__container{
+    padding-left:2rem;
+    padding-right:2rem;
+  }
+}
+
+.usa-identifier__section{
+  padding-bottom:1rem;
+  padding-top:1rem;
+}
+
+@media all and (min-width: 40em){
+  .usa-identifier__section--masthead .usa-identifier__container{
+    align-items:center;
+    display:flex;
+  }
+}
+
+.usa-identifier__logos{
+  display:flex;
+  margin-right:1rem;
+}
+
+.usa-identifier__logo{
+  text-decoration:none;
+  height:3rem;
+  display:block;
+}
+.usa-identifier__logo + .usa-identifier__logo{
+  margin-left:0.5rem;
+}
+
+.usa-identifier__logo-img{
+  height:100%;
+  width:auto;
+}
+
+.usa-identifier__identity{
+  flex:1 1 0%;
+  margin-top:1rem;
+}
+@media all and (min-width: 40em){
+  .usa-identifier__identity{
+    margin-top:0rem;
+  }
+}
+
+.usa-identifier__identity-domain,
+.usa-identifier__identity-disclaimer{
+  margin:0;
+  padding:0;
+}
+
+.usa-identifier__identity-domain{
+  color:#a9aeb1;
+}
+
+.usa-identifier__identity-disclaimer{
+  font-weight:700;
+}
+.usa-identifier__identity-disclaimer a{
+  color:#dfe1e2;
+}
+.usa-identifier__identity-disclaimer a:visited{
+  color:#dfe1e2;
+}
+.usa-identifier__identity-disclaimer a:hover, .usa-identifier__identity-disclaimer a:active{
+  color:#f0f0f0;
+}
+
+@media all and (min-width: 40em){
+  .usa-identifier__section--required-links{
+    padding-bottom:0.5rem;
+    padding-top:0.5rem;
+  }
+}
+@media all and (min-width: 64em){
+  .usa-identifier__section--required-links{
+    font-size:1rem;
+  }
+}
+
+.usa-identifier__required-links-list{
+  margin-bottom:0;
+  margin-top:0;
+  list-style-type:none;
+  padding-left:0;
+  margin-bottom:0;
+  margin-top:0;
+}
+@media all and (min-width: 40em){
+  .usa-identifier__required-links-list{
+    -moz-column-count:2;
+         column-count:2;
+    -moz-column-gap:2rem;
+         column-gap:2rem;
+    -moz-column-fill:balance;
+         column-fill:balance;
+  }
+}
+@media all and (min-width: 64em){
+  .usa-identifier__required-links-list{
+    -moz-column-count:4;
+         column-count:4;
+  }
+}
+
+.usa-identifier__required-links-item{
+  -moz-column-break-inside:avoid;
+       break-inside:avoid;
+  margin-bottom:0.75rem;
+}
+.usa-identifier__required-links-item:last-child{
+  margin-bottom:0rem;
+}
+@media all and (min-width: 64em){
+  .usa-identifier__required-links-item{
+    margin-bottom:0.5rem;
+  }
+}
+
+.usa-identifier__required-link,
+.usa-identifier__required-link.usa-link{
+  color:#a9aeb1;
+  display:inline-block;
+}
+.usa-identifier__required-link:visited,
+.usa-identifier__required-link.usa-link:visited{
+  color:#a9aeb1;
+}
+.usa-identifier__required-link:hover, .usa-identifier__required-link:active,
+.usa-identifier__required-link.usa-link:hover,
+.usa-identifier__required-link.usa-link:active{
+  color:#dfe1e2;
+}
+
+.usa-identifier__section--usagov a{
+  color:#dfe1e2;
+  font-weight:700;
+  display:inline-block;
+  margin-top:0.5rem;
+}
+.usa-identifier__section--usagov a:visited{
+  color:#dfe1e2;
+}
+.usa-identifier__section--usagov a:hover, .usa-identifier__section--usagov a:active{
+  color:#f0f0f0;
+}
+@media all and (min-width: 40em){
+  .usa-identifier__section--usagov a{
+    margin-top:0;
+  }
+}
+
+@media all and (min-width: 40em){
+  .usa-identifier__usagov-description{
+    display:inline-flex;
+  }
+}
+
+.usa-in-page-nav-container{
+  align-items:flex-start;
+  display:flex;
+}
+.usa-in-page-nav-container main{
+  max-width:64rem;
+  width:100%;
+}
+
+.usa-in-page-nav{
+  color:#1b1b1b;
+  display:none;
+  margin-left:2rem;
+  margin-top:1.25rem;
+  max-width:15rem;
+  order:2;
+  position:sticky;
+  top:2rem;
+  width:100%;
+}
+@media all and (min-width: 40em){
+  .usa-in-page-nav{
+    display:block;
+  }
+}
+
+.usa-in-page-nav__nav{
+  color:#1b1b1b;
+  background-color:white;
+  border-radius:0.5rem;
+  padding:1rem;
+}
+
+.usa-in-page-nav__heading{
+  font-family:Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
+  font-size:0.93rem;
+  line-height:1.3;
+  font-weight:700;
+  margin-bottom:1rem;
+  margin-top:0;
+  padding:0;
+}
+
+.usa-in-page-nav__list{
+  margin-bottom:0;
+  margin-top:0;
+  list-style-type:none;
+  padding-left:0;
+  border-left:1px solid rgba(27, 27, 27, 0.25);
+  padding:0;
+}
+.usa-in-page-nav__list > li{
+  margin-bottom:0;
+  max-width:unset;
+}
+.usa-in-page-nav__list__item{
+  border-top:1px solid #dfe1e2;
+}
+.usa-in-page-nav__list a:not(.usa-button){
+  display:block;
+  padding:0.5rem 1rem;
+  text-decoration:none;
+}
+.usa-in-page-nav__list a:not(.usa-button):hover{
+  background-color:#f0f0f0;
+  text-decoration:none;
+}
+.usa-in-page-nav__list a:not(.usa-button):not(.usa-current){
+  color:#565c65;
+}
+.usa-in-page-nav__list a:not(.usa-button):not(.usa-current):hover{
+  color:#005ea2;
+}
+.usa-in-page-nav__list a:not(.usa-button):not(.usa-current):focus{
+  outline-offset:0;
+}
+.usa-in-page-nav__list .usa-current{
+  position:relative;
+  color:#005ea2;
+  font-weight:700;
+}
+.usa-in-page-nav__list .usa-current::after{
+  background-color:#005ea2;
+  border-radius:99rem;
+  content:"";
+  display:block;
+  position:absolute;
+  bottom:0.25rem;
+  top:0.25rem;
+  width:0.25rem;
+  left:0.25rem;
+}
+@media all and (min-width: 40em){
+  .usa-in-page-nav__list .usa-current{
+    position:relative;
+  }
+  .usa-in-page-nav__list .usa-current::after{
+    background-color:#005ea2;
+    border-radius:99rem;
+    content:"";
+    display:block;
+    position:absolute;
+    bottom:0.25rem;
+    top:0.25rem;
+    width:0.25rem;
+    left:0rem;
+  }
+}
+.usa-in-page-nav__list a:not(.usa-button):not(.usa-current){
+  color:#005ea2;
+}
+.usa-in-page-nav__list a:not(.usa-button):not(.usa-current):visited{
+  color:#54278f;
+}
+.usa-in-page-nav__list a:not(.usa-button):not(.usa-current):hover, .usa-in-page-nav__list a:not(.usa-button):not(.usa-current):active{
+  color:#1a4480;
+}
+.usa-in-page-nav__list a:not(.usa-button):not(.usa-current):visited{
+  color:#005ea2;
+}
+.usa-in-page-nav__list a:not(.usa-button).usa-current{
+  color:#1b1b1b;
+  font-weight:inherit;
+}
+.usa-in-page-nav__list a:not(.usa-button):hover{
+  text-decoration:underline;
+  background-color:none;
+}
+.usa-in-page-nav__list a:not(.usa-button).usa-current{
+  position:static;
+}
+.usa-in-page-nav__list a:not(.usa-button).usa-current::after{
+  background-color:#1b1b1b;
+  border-radius:0;
+  bottom:-1px;
+  left:0;
+  top:0;
+  width:0.25rem;
+  z-index:100;
+}
+
+.usa-in-page-nav__item{
+  font-family:Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
+  font-size:0.93rem;
+  line-height:1.1;
+  border:none;
+  position:relative;
+}
+.usa-in-page-nav__item--primary{
+  font-weight:700;
+}
+
+.usa-language{
+  flex-direction:row;
+  align-items:center;
+  justify-content:flex-end;
+  display:flex;
+  padding:0 0 0.25rem 0.5rem;
+  width:100%;
+}
+.usa-language--small .usa-button{
+  padding-left:0.75rem;
+  padding-right:0.75rem;
+  padding-bottom:0;
+  padding-top:0;
+  font-size:0.87rem;
+  height:2rem;
+  margin-top:0.3rem;
+  min-width:3rem;
+}
+
+.usa-language-container{
+  align-items:center;
+  justify-content:flex-end;
+  display:flex;
+}
+
+.usa-nav-container .usa-language-container{
+  align-self:center;
+  margin-left:0rem;
+  position:absolute;
+  right:5rem;
+  top:1rem;
+}
+@media all and (min-width: 64em){
+  .usa-nav-container .usa-language-container{
+    align-self:flex-end;
+    margin-left:0.75rem;
+    margin-bottom:0.5rem;
+    position:relative;
+    right:inherit;
+    top:-2px;
+  }
+}
+
+.usa-language__link{
+  margin-right:0rem;
+}
+
+.usa-language__primary{
+  width:auto;
+}
+
+.usa-language__primary-item:last-of-type{
+  position:relative;
+}
+.usa-language__primary-item:last-of-type .usa-language__submenu{
+  position:absolute;
+  right:0;
+}
+
+.usa-language__submenu{
+  margin-bottom:0;
+  margin-top:0;
+  list-style-type:none;
+  padding-left:0;
+  margin-bottom:0;
+  margin-top:0;
+  list-style-type:none;
+  padding-left:0;
+  margin:0;
+  background-color:#162e51;
+  position:absolute;
+  width:15rem;
+  z-index:400;
+}
+.usa-language__submenu > li{
+  margin-bottom:0;
+  max-width:unset;
+}
+.usa-language__submenu-item{
+  border-top:1px solid #dfe1e2;
+  font-size:0.93rem;
+}
+.usa-language__submenu .usa-current::after{
+  display:none;
+}
+@media all and (min-width: 40em){
+  .usa-language__submenu .usa-current::after{
+    display:none;
+  }
+}
+.usa-language__submenu a:not(.usa-button){
+  padding-left:2rem;
+}
+.usa-language__submenu .usa-language__submenu a:not(.usa-button){
+  padding-left:3rem;
+}
+.usa-language__submenu .usa-language__submenu .usa-language__submenu a:not(.usa-button){
+  padding-left:4rem;
+}
+.usa-language__submenu[aria-hidden=true]{
+  display:none;
+}
+.usa-language__submenu .usa-language__submenu-item a{
+  color:white;
+  display:block;
+  line-height:1.3;
+  padding:0;
+  padding:0.5rem;
+  text-decoration:none;
+}
+.usa-language__submenu .usa-language__submenu-item a:focus{
+  outline-offset:-0.25rem;
+}
+.usa-language__submenu .usa-language__submenu-item a:hover{
+  color:white;
+  text-decoration:underline;
+}
+
+.usa-language__submenu-list{
+  margin-bottom:0;
+  margin-top:0;
+  list-style-type:none;
+  padding-left:0;
+}
+.usa-language__submenu-list > li{
+  margin-bottom:0;
+  max-width:unset;
+}
+.usa-language__submenu-list .usa-language__submenu-list-item{
+  margin:0;
+  font-size:0.93rem;
+}
+.usa-language__submenu-list .usa-language__submenu-list-item a{
+  line-height:1.3;
+}
+
+.usa-layout-docs__sidenav{
+  padding-top:2rem;
+}
+@media all and (min-width: 64em){
+  .usa-layout-docs__sidenav{
+    padding-top:0;
+  }
+}
+.grid-container{
+  margin-left:auto;
+  margin-right:auto;
+  max-width:64rem;
+  padding-left:1rem;
+  padding-right:1rem;
+}
+@media all and (min-width: 64em){
+  .grid-container{
+    padding-left:2rem;
+    padding-right:2rem;
+  }
+}
+
+.grid-container-card{
+  margin-left:auto;
+  margin-right:auto;
+  max-width:10rem;
+  padding-left:1rem;
+  padding-right:1rem;
+}
+@media all and (min-width: 64em){
+  .grid-container-card{
+    padding-left:2rem;
+    padding-right:2rem;
+  }
+}
+
+.grid-container-card-lg{
+  margin-left:auto;
+  margin-right:auto;
+  max-width:15rem;
+  padding-left:1rem;
+  padding-right:1rem;
+}
+@media all and (min-width: 64em){
+  .grid-container-card-lg{
+    padding-left:2rem;
+    padding-right:2rem;
+  }
+}
+
+.grid-container-mobile{
+  margin-left:auto;
+  margin-right:auto;
+  max-width:20rem;
+  padding-left:1rem;
+  padding-right:1rem;
+}
+@media all and (min-width: 64em){
+  .grid-container-mobile{
+    padding-left:2rem;
+    padding-right:2rem;
+  }
+}
+
+.grid-container-mobile-lg{
+  margin-left:auto;
+  margin-right:auto;
+  max-width:30rem;
+  padding-left:1rem;
+  padding-right:1rem;
+}
+@media all and (min-width: 64em){
+  .grid-container-mobile-lg{
+    padding-left:2rem;
+    padding-right:2rem;
+  }
+}
+
+.grid-container-tablet{
+  margin-left:auto;
+  margin-right:auto;
+  max-width:40rem;
+  padding-left:1rem;
+  padding-right:1rem;
+}
+@media all and (min-width: 64em){
+  .grid-container-tablet{
+    padding-left:2rem;
+    padding-right:2rem;
+  }
+}
+
+.grid-container-tablet-lg{
+  margin-left:auto;
+  margin-right:auto;
+  max-width:55rem;
+  padding-left:1rem;
+  padding-right:1rem;
+}
+@media all and (min-width: 64em){
+  .grid-container-tablet-lg{
+    padding-left:2rem;
+    padding-right:2rem;
+  }
+}
+
+.grid-container-desktop{
+  margin-left:auto;
+  margin-right:auto;
+  max-width:64rem;
+  padding-left:1rem;
+  padding-right:1rem;
+}
+@media all and (min-width: 64em){
+  .grid-container-desktop{
+    padding-left:2rem;
+    padding-right:2rem;
+  }
+}
+
+.grid-container-desktop-lg{
+  margin-left:auto;
+  margin-right:auto;
+  max-width:75rem;
+  padding-left:1rem;
+  padding-right:1rem;
+}
+@media all and (min-width: 64em){
+  .grid-container-desktop-lg{
+    padding-left:2rem;
+    padding-right:2rem;
+  }
+}
+
+.grid-container-widescreen{
+  margin-left:auto;
+  margin-right:auto;
+  max-width:87.5rem;
+  padding-left:1rem;
+  padding-right:1rem;
+}
+@media all and (min-width: 64em){
+  .grid-container-widescreen{
+    padding-left:2rem;
+    padding-right:2rem;
+  }
+}
+
+@media all and (min-width: 30em){
+  .mobile-lg\:grid-container{
+    margin-left:auto;
+    margin-right:auto;
+    max-width:64rem;
+    padding-left:1rem;
+    padding-right:1rem;
+  }
+}
+@media all and (min-width: 30em) and (min-width: 64em){
+  .mobile-lg\:grid-container{
+    padding-left:2rem;
+    padding-right:2rem;
+  }
+}
+@media all and (min-width: 30em){
+  .mobile-lg\:grid-container-card{
+    margin-left:auto;
+    margin-right:auto;
+    max-width:10rem;
+    padding-left:1rem;
+    padding-right:1rem;
+  }
+}
+@media all and (min-width: 30em) and (min-width: 64em){
+  .mobile-lg\:grid-container-card{
+    padding-left:2rem;
+    padding-right:2rem;
+  }
+}
+@media all and (min-width: 30em){
+  .mobile-lg\:grid-container-card-lg{
+    margin-left:auto;
+    margin-right:auto;
+    max-width:15rem;
+    padding-left:1rem;
+    padding-right:1rem;
+  }
+}
+@media all and (min-width: 30em) and (min-width: 64em){
+  .mobile-lg\:grid-container-card-lg{
+    padding-left:2rem;
+    padding-right:2rem;
+  }
+}
+@media all and (min-width: 30em){
+  .mobile-lg\:grid-container-mobile{
+    margin-left:auto;
+    margin-right:auto;
+    max-width:20rem;
+    padding-left:1rem;
+    padding-right:1rem;
+  }
+}
+@media all and (min-width: 30em) and (min-width: 64em){
+  .mobile-lg\:grid-container-mobile{
+    padding-left:2rem;
+    padding-right:2rem;
+  }
+}
+@media all and (min-width: 30em){
+  .mobile-lg\:grid-container-mobile-lg{
+    margin-left:auto;
+    margin-right:auto;
+    max-width:30rem;
+    padding-left:1rem;
+    padding-right:1rem;
+  }
+}
+@media all and (min-width: 30em) and (min-width: 64em){
+  .mobile-lg\:grid-container-mobile-lg{
+    padding-left:2rem;
+    padding-right:2rem;
+  }
+}
+@media all and (min-width: 30em){
+  .mobile-lg\:grid-container-tablet{
+    margin-left:auto;
+    margin-right:auto;
+    max-width:40rem;
+    padding-left:1rem;
+    padding-right:1rem;
+  }
+}
+@media all and (min-width: 30em) and (min-width: 64em){
+  .mobile-lg\:grid-container-tablet{
+    padding-left:2rem;
+    padding-right:2rem;
+  }
+}
+@media all and (min-width: 30em){
+  .mobile-lg\:grid-container-tablet-lg{
+    margin-left:auto;
+    margin-right:auto;
+    max-width:55rem;
+    padding-left:1rem;
+    padding-right:1rem;
+  }
+}
+@media all and (min-width: 30em) and (min-width: 64em){
+  .mobile-lg\:grid-container-tablet-lg{
+    padding-left:2rem;
+    padding-right:2rem;
+  }
+}
+@media all and (min-width: 30em){
+  .mobile-lg\:grid-container-desktop{
+    margin-left:auto;
+    margin-right:auto;
+    max-width:64rem;
+    padding-left:1rem;
+    padding-right:1rem;
+  }
+}
+@media all and (min-width: 30em) and (min-width: 64em){
+  .mobile-lg\:grid-container-desktop{
+    padding-left:2rem;
+    padding-right:2rem;
+  }
+}
+@media all and (min-width: 30em){
+  .mobile-lg\:grid-container-desktop-lg{
+    margin-left:auto;
+    margin-right:auto;
+    max-width:75rem;
+    padding-left:1rem;
+    padding-right:1rem;
+  }
+}
+@media all and (min-width: 30em) and (min-width: 64em){
+  .mobile-lg\:grid-container-desktop-lg{
+    padding-left:2rem;
+    padding-right:2rem;
+  }
+}
+@media all and (min-width: 30em){
+  .mobile-lg\:grid-container-widescreen{
+    margin-left:auto;
+    margin-right:auto;
+    max-width:87.5rem;
+    padding-left:1rem;
+    padding-right:1rem;
+  }
+}
+@media all and (min-width: 30em) and (min-width: 64em){
+  .mobile-lg\:grid-container-widescreen{
+    padding-left:2rem;
+    padding-right:2rem;
+  }
+}
+@media all and (min-width: 40em){
+  .tablet\:grid-container{
+    margin-left:auto;
+    margin-right:auto;
+    max-width:64rem;
+    padding-left:1rem;
+    padding-right:1rem;
+  }
+}
+@media all and (min-width: 40em) and (min-width: 64em){
+  .tablet\:grid-container{
+    padding-left:2rem;
+    padding-right:2rem;
+  }
+}
+@media all and (min-width: 40em){
+  .tablet\:grid-container-card{
+    margin-left:auto;
+    margin-right:auto;
+    max-width:10rem;
+    padding-left:1rem;
+    padding-right:1rem;
+  }
+}
+@media all and (min-width: 40em) and (min-width: 64em){
+  .tablet\:grid-container-card{
+    padding-left:2rem;
+    padding-right:2rem;
+  }
+}
+@media all and (min-width: 40em){
+  .tablet\:grid-container-card-lg{
+    margin-left:auto;
+    margin-right:auto;
+    max-width:15rem;
+    padding-left:1rem;
+    padding-right:1rem;
+  }
+}
+@media all and (min-width: 40em) and (min-width: 64em){
+  .tablet\:grid-container-card-lg{
+    padding-left:2rem;
+    padding-right:2rem;
+  }
+}
+@media all and (min-width: 40em){
+  .tablet\:grid-container-mobile{
+    margin-left:auto;
+    margin-right:auto;
+    max-width:20rem;
+    padding-left:1rem;
+    padding-right:1rem;
+  }
+}
+@media all and (min-width: 40em) and (min-width: 64em){
+  .tablet\:grid-container-mobile{
+    padding-left:2rem;
+    padding-right:2rem;
+  }
+}
+@media all and (min-width: 40em){
+  .tablet\:grid-container-mobile-lg{
+    margin-left:auto;
+    margin-right:auto;
+    max-width:30rem;
+    padding-left:1rem;
+    padding-right:1rem;
+  }
+}
+@media all and (min-width: 40em) and (min-width: 64em){
+  .tablet\:grid-container-mobile-lg{
+    padding-left:2rem;
+    padding-right:2rem;
+  }
+}
+@media all and (min-width: 40em){
+  .tablet\:grid-container-tablet{
+    margin-left:auto;
+    margin-right:auto;
+    max-width:40rem;
+    padding-left:1rem;
+    padding-right:1rem;
+  }
+}
+@media all and (min-width: 40em) and (min-width: 64em){
+  .tablet\:grid-container-tablet{
+    padding-left:2rem;
+    padding-right:2rem;
+  }
+}
+@media all and (min-width: 40em){
+  .tablet\:grid-container-tablet-lg{
+    margin-left:auto;
+    margin-right:auto;
+    max-width:55rem;
+    padding-left:1rem;
+    padding-right:1rem;
+  }
+}
+@media all and (min-width: 40em) and (min-width: 64em){
+  .tablet\:grid-container-tablet-lg{
+    padding-left:2rem;
+    padding-right:2rem;
+  }
+}
+@media all and (min-width: 40em){
+  .tablet\:grid-container-desktop{
+    margin-left:auto;
+    margin-right:auto;
+    max-width:64rem;
+    padding-left:1rem;
+    padding-right:1rem;
+  }
+}
+@media all and (min-width: 40em) and (min-width: 64em){
+  .tablet\:grid-container-desktop{
+    padding-left:2rem;
+    padding-right:2rem;
+  }
+}
+@media all and (min-width: 40em){
+  .tablet\:grid-container-desktop-lg{
+    margin-left:auto;
+    margin-right:auto;
+    max-width:75rem;
+    padding-left:1rem;
+    padding-right:1rem;
+  }
+}
+@media all and (min-width: 40em) and (min-width: 64em){
+  .tablet\:grid-container-desktop-lg{
+    padding-left:2rem;
+    padding-right:2rem;
+  }
+}
+@media all and (min-width: 40em){
+  .tablet\:grid-container-widescreen{
+    margin-left:auto;
+    margin-right:auto;
+    max-width:87.5rem;
+    padding-left:1rem;
+    padding-right:1rem;
+  }
+}
+@media all and (min-width: 40em) and (min-width: 64em){
+  .tablet\:grid-container-widescreen{
+    padding-left:2rem;
+    padding-right:2rem;
+  }
+}
+@media all and (min-width: 64em){
+  .desktop\:grid-container{
+    margin-left:auto;
+    margin-right:auto;
+    max-width:64rem;
+    padding-left:1rem;
+    padding-right:1rem;
+  }
+}
+@media all and (min-width: 64em) and (min-width: 64em){
+  .desktop\:grid-container{
+    padding-left:2rem;
+    padding-right:2rem;
+  }
+}
+@media all and (min-width: 64em){
+  .desktop\:grid-container-card{
+    margin-left:auto;
+    margin-right:auto;
+    max-width:10rem;
+    padding-left:1rem;
+    padding-right:1rem;
+  }
+}
+@media all and (min-width: 64em) and (min-width: 64em){
+  .desktop\:grid-container-card{
+    padding-left:2rem;
+    padding-right:2rem;
+  }
+}
+@media all and (min-width: 64em){
+  .desktop\:grid-container-card-lg{
+    margin-left:auto;
+    margin-right:auto;
+    max-width:15rem;
+    padding-left:1rem;
+    padding-right:1rem;
+  }
+}
+@media all and (min-width: 64em) and (min-width: 64em){
+  .desktop\:grid-container-card-lg{
+    padding-left:2rem;
+    padding-right:2rem;
+  }
+}
+@media all and (min-width: 64em){
+  .desktop\:grid-container-mobile{
+    margin-left:auto;
+    margin-right:auto;
+    max-width:20rem;
+    padding-left:1rem;
+    padding-right:1rem;
+  }
+}
+@media all and (min-width: 64em) and (min-width: 64em){
+  .desktop\:grid-container-mobile{
+    padding-left:2rem;
+    padding-right:2rem;
+  }
+}
+@media all and (min-width: 64em){
+  .desktop\:grid-container-mobile-lg{
+    margin-left:auto;
+    margin-right:auto;
+    max-width:30rem;
+    padding-left:1rem;
+    padding-right:1rem;
+  }
+}
+@media all and (min-width: 64em) and (min-width: 64em){
+  .desktop\:grid-container-mobile-lg{
+    padding-left:2rem;
+    padding-right:2rem;
+  }
+}
+@media all and (min-width: 64em){
+  .desktop\:grid-container-tablet{
+    margin-left:auto;
+    margin-right:auto;
+    max-width:40rem;
+    padding-left:1rem;
+    padding-right:1rem;
+  }
+}
+@media all and (min-width: 64em) and (min-width: 64em){
+  .desktop\:grid-container-tablet{
+    padding-left:2rem;
+    padding-right:2rem;
+  }
+}
+@media all and (min-width: 64em){
+  .desktop\:grid-container-tablet-lg{
+    margin-left:auto;
+    margin-right:auto;
+    max-width:55rem;
+    padding-left:1rem;
+    padding-right:1rem;
+  }
+}
+@media all and (min-width: 64em) and (min-width: 64em){
+  .desktop\:grid-container-tablet-lg{
+    padding-left:2rem;
+    padding-right:2rem;
+  }
+}
+@media all and (min-width: 64em){
+  .desktop\:grid-container-desktop{
+    margin-left:auto;
+    margin-right:auto;
+    max-width:64rem;
+    padding-left:1rem;
+    padding-right:1rem;
+  }
+}
+@media all and (min-width: 64em) and (min-width: 64em){
+  .desktop\:grid-container-desktop{
+    padding-left:2rem;
+    padding-right:2rem;
+  }
+}
+@media all and (min-width: 64em){
+  .desktop\:grid-container-desktop-lg{
+    margin-left:auto;
+    margin-right:auto;
+    max-width:75rem;
+    padding-left:1rem;
+    padding-right:1rem;
+  }
+}
+@media all and (min-width: 64em) and (min-width: 64em){
+  .desktop\:grid-container-desktop-lg{
+    padding-left:2rem;
+    padding-right:2rem;
+  }
+}
+@media all and (min-width: 64em){
+  .desktop\:grid-container-widescreen{
+    margin-left:auto;
+    margin-right:auto;
+    max-width:87.5rem;
+    padding-left:1rem;
+    padding-right:1rem;
+  }
+}
+@media all and (min-width: 64em) and (min-width: 64em){
+  .desktop\:grid-container-widescreen{
+    padding-left:2rem;
+    padding-right:2rem;
+  }
+}
+.grid-row{
+  display:flex;
+  flex-wrap:wrap;
+}
+.grid-row.grid-gap{
+  margin-left:-0.5rem;
+  margin-right:-0.5rem;
+}
+.grid-row.grid-gap > *{
+  padding-left:0.5rem;
+  padding-right:0.5rem;
+}
+@media all and (min-width: 64em){
+  .grid-row.grid-gap{
+    margin-left:-1rem;
+    margin-right:-1rem;
+  }
+  .grid-row.grid-gap > *{
+    padding-left:1rem;
+    padding-right:1rem;
+  }
+}
+.grid-row.grid-gap-0{
+  margin-left:0;
+  margin-right:0;
+}
+.grid-row.grid-gap-0 > *{
+  padding-left:0;
+  padding-right:0;
+}
+.grid-row.grid-gap-2px{
+  margin-left:-1px;
+  margin-right:-1px;
+}
+.grid-row.grid-gap-2px > *{
+  padding-left:1px;
+  padding-right:1px;
+}
+.grid-row.grid-gap-05{
+  margin-left:-2px;
+  margin-right:-2px;
+}
+.grid-row.grid-gap-05 > *{
+  padding-left:2px;
+  padding-right:2px;
+}
+.grid-row.grid-gap-1{
+  margin-left:-0.25rem;
+  margin-right:-0.25rem;
+}
+.grid-row.grid-gap-1 > *{
+  padding-left:0.25rem;
+  padding-right:0.25rem;
+}
+.grid-row.grid-gap-2{
+  margin-left:-0.5rem;
+  margin-right:-0.5rem;
+}
+.grid-row.grid-gap-2 > *{
+  padding-left:0.5rem;
+  padding-right:0.5rem;
+}
+.grid-row.grid-gap-3{
+  margin-left:-0.75rem;
+  margin-right:-0.75rem;
+}
+.grid-row.grid-gap-3 > *{
+  padding-left:0.75rem;
+  padding-right:0.75rem;
+}
+.grid-row.grid-gap-4{
+  margin-left:-1rem;
+  margin-right:-1rem;
+}
+.grid-row.grid-gap-4 > *{
+  padding-left:1rem;
+  padding-right:1rem;
+}
+.grid-row.grid-gap-5{
+  margin-left:-1.25rem;
+  margin-right:-1.25rem;
+}
+.grid-row.grid-gap-5 > *{
+  padding-left:1.25rem;
+  padding-right:1.25rem;
+}
+.grid-row.grid-gap-6{
+  margin-left:-1.5rem;
+  margin-right:-1.5rem;
+}
+.grid-row.grid-gap-6 > *{
+  padding-left:1.5rem;
+  padding-right:1.5rem;
+}
+.grid-row.grid-gap-sm{
+  margin-left:-1px;
+  margin-right:-1px;
+}
+.grid-row.grid-gap-sm > *{
+  padding-left:1px;
+  padding-right:1px;
+}
+.grid-row.grid-gap-md{
+  margin-left:-0.5rem;
+  margin-right:-0.5rem;
+}
+.grid-row.grid-gap-md > *{
+  padding-left:0.5rem;
+  padding-right:0.5rem;
+}
+.grid-row.grid-gap-lg{
+  margin-left:-0.75rem;
+  margin-right:-0.75rem;
+}
+.grid-row.grid-gap-lg > *{
+  padding-left:0.75rem;
+  padding-right:0.75rem;
+}
+@media all and (min-width: 30em){
+  .grid-row.mobile-lg\:grid-gap-0{
+    margin-left:0;
+    margin-right:0;
+  }
+  .grid-row.mobile-lg\:grid-gap-0 > *{
+    padding-left:0;
+    padding-right:0;
+  }
+  .grid-row.mobile-lg\:grid-gap-2px{
+    margin-left:-1px;
+    margin-right:-1px;
+  }
+  .grid-row.mobile-lg\:grid-gap-2px > *{
+    padding-left:1px;
+    padding-right:1px;
+  }
+  .grid-row.mobile-lg\:grid-gap-05{
+    margin-left:-2px;
+    margin-right:-2px;
+  }
+  .grid-row.mobile-lg\:grid-gap-05 > *{
+    padding-left:2px;
+    padding-right:2px;
+  }
+  .grid-row.mobile-lg\:grid-gap-1{
+    margin-left:-0.25rem;
+    margin-right:-0.25rem;
+  }
+  .grid-row.mobile-lg\:grid-gap-1 > *{
+    padding-left:0.25rem;
+    padding-right:0.25rem;
+  }
+  .grid-row.mobile-lg\:grid-gap-2{
+    margin-left:-0.5rem;
+    margin-right:-0.5rem;
+  }
+  .grid-row.mobile-lg\:grid-gap-2 > *{
+    padding-left:0.5rem;
+    padding-right:0.5rem;
+  }
+  .grid-row.mobile-lg\:grid-gap-3{
+    margin-left:-0.75rem;
+    margin-right:-0.75rem;
+  }
+  .grid-row.mobile-lg\:grid-gap-3 > *{
+    padding-left:0.75rem;
+    padding-right:0.75rem;
+  }
+  .grid-row.mobile-lg\:grid-gap-4{
+    margin-left:-1rem;
+    margin-right:-1rem;
+  }
+  .grid-row.mobile-lg\:grid-gap-4 > *{
+    padding-left:1rem;
+    padding-right:1rem;
+  }
+  .grid-row.mobile-lg\:grid-gap-5{
+    margin-left:-1.25rem;
+    margin-right:-1.25rem;
+  }
+  .grid-row.mobile-lg\:grid-gap-5 > *{
+    padding-left:1.25rem;
+    padding-right:1.25rem;
+  }
+  .grid-row.mobile-lg\:grid-gap-6{
+    margin-left:-1.5rem;
+    margin-right:-1.5rem;
+  }
+  .grid-row.mobile-lg\:grid-gap-6 > *{
+    padding-left:1.5rem;
+    padding-right:1.5rem;
+  }
+  .grid-row.mobile-lg\:grid-gap-sm{
+    margin-left:-1px;
+    margin-right:-1px;
+  }
+  .grid-row.mobile-lg\:grid-gap-sm > *{
+    padding-left:1px;
+    padding-right:1px;
+  }
+  .grid-row.mobile-lg\:grid-gap-md{
+    margin-left:-0.5rem;
+    margin-right:-0.5rem;
+  }
+  .grid-row.mobile-lg\:grid-gap-md > *{
+    padding-left:0.5rem;
+    padding-right:0.5rem;
+  }
+  .grid-row.mobile-lg\:grid-gap-lg{
+    margin-left:-0.75rem;
+    margin-right:-0.75rem;
+  }
+  .grid-row.mobile-lg\:grid-gap-lg > *{
+    padding-left:0.75rem;
+    padding-right:0.75rem;
+  }
+}
+@media all and (min-width: 40em){
+  .grid-row.tablet\:grid-gap-0{
+    margin-left:0;
+    margin-right:0;
+  }
+  .grid-row.tablet\:grid-gap-0 > *{
+    padding-left:0;
+    padding-right:0;
+  }
+  .grid-row.tablet\:grid-gap-2px{
+    margin-left:-1px;
+    margin-right:-1px;
+  }
+  .grid-row.tablet\:grid-gap-2px > *{
+    padding-left:1px;
+    padding-right:1px;
+  }
+  .grid-row.tablet\:grid-gap-05{
+    margin-left:-2px;
+    margin-right:-2px;
+  }
+  .grid-row.tablet\:grid-gap-05 > *{
+    padding-left:2px;
+    padding-right:2px;
+  }
+  .grid-row.tablet\:grid-gap-1{
+    margin-left:-0.25rem;
+    margin-right:-0.25rem;
+  }
+  .grid-row.tablet\:grid-gap-1 > *{
+    padding-left:0.25rem;
+    padding-right:0.25rem;
+  }
+  .grid-row.tablet\:grid-gap-2{
+    margin-left:-0.5rem;
+    margin-right:-0.5rem;
+  }
+  .grid-row.tablet\:grid-gap-2 > *{
+    padding-left:0.5rem;
+    padding-right:0.5rem;
+  }
+  .grid-row.tablet\:grid-gap-3{
+    margin-left:-0.75rem;
+    margin-right:-0.75rem;
+  }
+  .grid-row.tablet\:grid-gap-3 > *{
+    padding-left:0.75rem;
+    padding-right:0.75rem;
+  }
+  .grid-row.tablet\:grid-gap-4{
+    margin-left:-1rem;
+    margin-right:-1rem;
+  }
+  .grid-row.tablet\:grid-gap-4 > *{
+    padding-left:1rem;
+    padding-right:1rem;
+  }
+  .grid-row.tablet\:grid-gap-5{
+    margin-left:-1.25rem;
+    margin-right:-1.25rem;
+  }
+  .grid-row.tablet\:grid-gap-5 > *{
+    padding-left:1.25rem;
+    padding-right:1.25rem;
+  }
+  .grid-row.tablet\:grid-gap-6{
+    margin-left:-1.5rem;
+    margin-right:-1.5rem;
+  }
+  .grid-row.tablet\:grid-gap-6 > *{
+    padding-left:1.5rem;
+    padding-right:1.5rem;
+  }
+  .grid-row.tablet\:grid-gap-sm{
+    margin-left:-1px;
+    margin-right:-1px;
+  }
+  .grid-row.tablet\:grid-gap-sm > *{
+    padding-left:1px;
+    padding-right:1px;
+  }
+  .grid-row.tablet\:grid-gap-md{
+    margin-left:-0.5rem;
+    margin-right:-0.5rem;
+  }
+  .grid-row.tablet\:grid-gap-md > *{
+    padding-left:0.5rem;
+    padding-right:0.5rem;
+  }
+  .grid-row.tablet\:grid-gap-lg{
+    margin-left:-0.75rem;
+    margin-right:-0.75rem;
+  }
+  .grid-row.tablet\:grid-gap-lg > *{
+    padding-left:0.75rem;
+    padding-right:0.75rem;
+  }
+}
+@media all and (min-width: 64em){
+  .grid-row.desktop\:grid-gap-0{
+    margin-left:0;
+    margin-right:0;
+  }
+  .grid-row.desktop\:grid-gap-0 > *{
+    padding-left:0;
+    padding-right:0;
+  }
+  .grid-row.desktop\:grid-gap-2px{
+    margin-left:-1px;
+    margin-right:-1px;
+  }
+  .grid-row.desktop\:grid-gap-2px > *{
+    padding-left:1px;
+    padding-right:1px;
+  }
+  .grid-row.desktop\:grid-gap-05{
+    margin-left:-2px;
+    margin-right:-2px;
+  }
+  .grid-row.desktop\:grid-gap-05 > *{
+    padding-left:2px;
+    padding-right:2px;
+  }
+  .grid-row.desktop\:grid-gap-1{
+    margin-left:-0.25rem;
+    margin-right:-0.25rem;
+  }
+  .grid-row.desktop\:grid-gap-1 > *{
+    padding-left:0.25rem;
+    padding-right:0.25rem;
+  }
+  .grid-row.desktop\:grid-gap-2{
+    margin-left:-0.5rem;
+    margin-right:-0.5rem;
+  }
+  .grid-row.desktop\:grid-gap-2 > *{
+    padding-left:0.5rem;
+    padding-right:0.5rem;
+  }
+  .grid-row.desktop\:grid-gap-3{
+    margin-left:-0.75rem;
+    margin-right:-0.75rem;
+  }
+  .grid-row.desktop\:grid-gap-3 > *{
+    padding-left:0.75rem;
+    padding-right:0.75rem;
+  }
+  .grid-row.desktop\:grid-gap-4{
+    margin-left:-1rem;
+    margin-right:-1rem;
+  }
+  .grid-row.desktop\:grid-gap-4 > *{
+    padding-left:1rem;
+    padding-right:1rem;
+  }
+  .grid-row.desktop\:grid-gap-5{
+    margin-left:-1.25rem;
+    margin-right:-1.25rem;
+  }
+  .grid-row.desktop\:grid-gap-5 > *{
+    padding-left:1.25rem;
+    padding-right:1.25rem;
+  }
+  .grid-row.desktop\:grid-gap-6{
+    margin-left:-1.5rem;
+    margin-right:-1.5rem;
+  }
+  .grid-row.desktop\:grid-gap-6 > *{
+    padding-left:1.5rem;
+    padding-right:1.5rem;
+  }
+  .grid-row.desktop\:grid-gap-sm{
+    margin-left:-1px;
+    margin-right:-1px;
+  }
+  .grid-row.desktop\:grid-gap-sm > *{
+    padding-left:1px;
+    padding-right:1px;
+  }
+  .grid-row.desktop\:grid-gap-md{
+    margin-left:-0.5rem;
+    margin-right:-0.5rem;
+  }
+  .grid-row.desktop\:grid-gap-md > *{
+    padding-left:0.5rem;
+    padding-right:0.5rem;
+  }
+  .grid-row.desktop\:grid-gap-lg{
+    margin-left:-0.75rem;
+    margin-right:-0.75rem;
+  }
+  .grid-row.desktop\:grid-gap-lg > *{
+    padding-left:0.75rem;
+    padding-right:0.75rem;
+  }
+}
+
+[class*=grid-col]{
+  position:relative;
+  width:100%;
+  box-sizing:border-box;
+}
+
+.grid-col{
+  flex:1 1 0%;
+  width:auto;
+  max-width:100%;
+  min-width:1px;
+}
+
+.grid-col-auto{
+  flex:0 1 auto;
+  width:auto;
+  max-width:100%;
+}
+
+.grid-col-fill{
+  flex:1 1 0%;
+  width:auto;
+  max-width:100%;
+  min-width:1px;
+}
+
+.grid-col-1{
+  flex:0 1 auto;
+  width:8.3333333333%;
+}
+
+.grid-col-2{
+  flex:0 1 auto;
+  width:16.6666666667%;
+}
+
+.grid-col-3{
+  flex:0 1 auto;
+  width:25%;
+}
+
+.grid-col-4{
+  flex:0 1 auto;
+  width:33.3333333333%;
+}
+
+.grid-col-5{
+  flex:0 1 auto;
+  width:41.6666666667%;
+}
+
+.grid-col-6{
+  flex:0 1 auto;
+  width:50%;
+}
+
+.grid-col-7{
+  flex:0 1 auto;
+  width:58.3333333333%;
+}
+
+.grid-col-8{
+  flex:0 1 auto;
+  width:66.6666666667%;
+}
+
+.grid-col-9{
+  flex:0 1 auto;
+  width:75%;
+}
+
+.grid-col-10{
+  flex:0 1 auto;
+  width:83.3333333333%;
+}
+
+.grid-col-11{
+  flex:0 1 auto;
+  width:91.6666666667%;
+}
+
+.grid-col-12{
+  flex:0 1 auto;
+  width:100%;
+}
+
+@media all and (min-width: 30em){
+  .mobile-lg\:grid-col{
+    flex:1 1 0%;
+    width:auto;
+    max-width:100%;
+    min-width:1px;
+  }
+  .mobile-lg\:grid-col-fill{
+    flex:1 1 0%;
+    width:auto;
+    max-width:100%;
+    min-width:1px;
+  }
+  .mobile-lg\:grid-col-auto{
+    flex:0 1 auto;
+    width:auto;
+    max-width:100%;
+  }
+  .mobile-lg\:grid-col-1{
+    flex:0 1 auto;
+    width:8.3333333333%;
+  }
+  .mobile-lg\:grid-col-2{
+    flex:0 1 auto;
+    width:16.6666666667%;
+  }
+  .mobile-lg\:grid-col-3{
+    flex:0 1 auto;
+    width:25%;
+  }
+  .mobile-lg\:grid-col-4{
+    flex:0 1 auto;
+    width:33.3333333333%;
+  }
+  .mobile-lg\:grid-col-5{
+    flex:0 1 auto;
+    width:41.6666666667%;
+  }
+  .mobile-lg\:grid-col-6{
+    flex:0 1 auto;
+    width:50%;
+  }
+  .mobile-lg\:grid-col-7{
+    flex:0 1 auto;
+    width:58.3333333333%;
+  }
+  .mobile-lg\:grid-col-8{
+    flex:0 1 auto;
+    width:66.6666666667%;
+  }
+  .mobile-lg\:grid-col-9{
+    flex:0 1 auto;
+    width:75%;
+  }
+  .mobile-lg\:grid-col-10{
+    flex:0 1 auto;
+    width:83.3333333333%;
+  }
+  .mobile-lg\:grid-col-11{
+    flex:0 1 auto;
+    width:91.6666666667%;
+  }
+  .mobile-lg\:grid-col-12{
+    flex:0 1 auto;
+    width:100%;
+  }
+}
+@media all and (min-width: 40em){
+  .tablet\:grid-col{
+    flex:1 1 0%;
+    width:auto;
+    max-width:100%;
+    min-width:1px;
+  }
+  .tablet\:grid-col-fill{
+    flex:1 1 0%;
+    width:auto;
+    max-width:100%;
+    min-width:1px;
+  }
+  .tablet\:grid-col-auto{
+    flex:0 1 auto;
+    width:auto;
+    max-width:100%;
+  }
+  .tablet\:grid-col-1{
+    flex:0 1 auto;
+    width:8.3333333333%;
+  }
+  .tablet\:grid-col-2{
+    flex:0 1 auto;
+    width:16.6666666667%;
+  }
+  .tablet\:grid-col-3{
+    flex:0 1 auto;
+    width:25%;
+  }
+  .tablet\:grid-col-4{
+    flex:0 1 auto;
+    width:33.3333333333%;
+  }
+  .tablet\:grid-col-5{
+    flex:0 1 auto;
+    width:41.6666666667%;
+  }
+  .tablet\:grid-col-6{
+    flex:0 1 auto;
+    width:50%;
+  }
+  .tablet\:grid-col-7{
+    flex:0 1 auto;
+    width:58.3333333333%;
+  }
+  .tablet\:grid-col-8{
+    flex:0 1 auto;
+    width:66.6666666667%;
+  }
+  .tablet\:grid-col-9{
+    flex:0 1 auto;
+    width:75%;
+  }
+  .tablet\:grid-col-10{
+    flex:0 1 auto;
+    width:83.3333333333%;
+  }
+  .tablet\:grid-col-11{
+    flex:0 1 auto;
+    width:91.6666666667%;
+  }
+  .tablet\:grid-col-12{
+    flex:0 1 auto;
+    width:100%;
+  }
+}
+@media all and (min-width: 64em){
+  .desktop\:grid-col{
+    flex:1 1 0%;
+    width:auto;
+    max-width:100%;
+    min-width:1px;
+  }
+  .desktop\:grid-col-fill{
+    flex:1 1 0%;
+    width:auto;
+    max-width:100%;
+    min-width:1px;
+  }
+  .desktop\:grid-col-auto{
+    flex:0 1 auto;
+    width:auto;
+    max-width:100%;
+  }
+  .desktop\:grid-col-1{
+    flex:0 1 auto;
+    width:8.3333333333%;
+  }
+  .desktop\:grid-col-2{
+    flex:0 1 auto;
+    width:16.6666666667%;
+  }
+  .desktop\:grid-col-3{
+    flex:0 1 auto;
+    width:25%;
+  }
+  .desktop\:grid-col-4{
+    flex:0 1 auto;
+    width:33.3333333333%;
+  }
+  .desktop\:grid-col-5{
+    flex:0 1 auto;
+    width:41.6666666667%;
+  }
+  .desktop\:grid-col-6{
+    flex:0 1 auto;
+    width:50%;
+  }
+  .desktop\:grid-col-7{
+    flex:0 1 auto;
+    width:58.3333333333%;
+  }
+  .desktop\:grid-col-8{
+    flex:0 1 auto;
+    width:66.6666666667%;
+  }
+  .desktop\:grid-col-9{
+    flex:0 1 auto;
+    width:75%;
+  }
+  .desktop\:grid-col-10{
+    flex:0 1 auto;
+    width:83.3333333333%;
+  }
+  .desktop\:grid-col-11{
+    flex:0 1 auto;
+    width:91.6666666667%;
+  }
+  .desktop\:grid-col-12{
+    flex:0 1 auto;
+    width:100%;
+  }
+}
+.grid-offset-1{
+  margin-left:8.3333333333%;
+}
+
+.grid-offset-2{
+  margin-left:16.6666666667%;
+}
+
+.grid-offset-3{
+  margin-left:25%;
+}
+
+.grid-offset-4{
+  margin-left:33.3333333333%;
+}
+
+.grid-offset-5{
+  margin-left:41.6666666667%;
+}
+
+.grid-offset-6{
+  margin-left:50%;
+}
+
+.grid-offset-7{
+  margin-left:58.3333333333%;
+}
+
+.grid-offset-8{
+  margin-left:66.6666666667%;
+}
+
+.grid-offset-9{
+  margin-left:75%;
+}
+
+.grid-offset-10{
+  margin-left:83.3333333333%;
+}
+
+.grid-offset-11{
+  margin-left:91.6666666667%;
+}
+
+.grid-offset-12{
+  margin-left:100%;
+}
+
+.grid-offset-none{
+  margin-left:0;
+}
+
+@media all and (min-width: 30em){
+  .mobile-lg\:grid-offset-1{
+    margin-left:8.3333333333%;
+  }
+}
+@media all and (min-width: 30em){
+  .mobile-lg\:grid-offset-2{
+    margin-left:16.6666666667%;
+  }
+}
+@media all and (min-width: 30em){
+  .mobile-lg\:grid-offset-3{
+    margin-left:25%;
+  }
+}
+@media all and (min-width: 30em){
+  .mobile-lg\:grid-offset-4{
+    margin-left:33.3333333333%;
+  }
+}
+@media all and (min-width: 30em){
+  .mobile-lg\:grid-offset-5{
+    margin-left:41.6666666667%;
+  }
+}
+@media all and (min-width: 30em){
+  .mobile-lg\:grid-offset-6{
+    margin-left:50%;
+  }
+}
+@media all and (min-width: 30em){
+  .mobile-lg\:grid-offset-7{
+    margin-left:58.3333333333%;
+  }
+}
+@media all and (min-width: 30em){
+  .mobile-lg\:grid-offset-8{
+    margin-left:66.6666666667%;
+  }
+}
+@media all and (min-width: 30em){
+  .mobile-lg\:grid-offset-9{
+    margin-left:75%;
+  }
+}
+@media all and (min-width: 30em){
+  .mobile-lg\:grid-offset-10{
+    margin-left:83.3333333333%;
+  }
+}
+@media all and (min-width: 30em){
+  .mobile-lg\:grid-offset-11{
+    margin-left:91.6666666667%;
+  }
+}
+@media all and (min-width: 30em){
+  .mobile-lg\:grid-offset-12{
+    margin-left:100%;
+  }
+}
+@media all and (min-width: 30em){
+  .mobile-lg\:grid-offset-none{
+    margin-left:0;
+  }
+}
+@media all and (min-width: 40em){
+  .tablet\:grid-offset-1{
+    margin-left:8.3333333333%;
+  }
+}
+@media all and (min-width: 40em){
+  .tablet\:grid-offset-2{
+    margin-left:16.6666666667%;
+  }
+}
+@media all and (min-width: 40em){
+  .tablet\:grid-offset-3{
+    margin-left:25%;
+  }
+}
+@media all and (min-width: 40em){
+  .tablet\:grid-offset-4{
+    margin-left:33.3333333333%;
+  }
+}
+@media all and (min-width: 40em){
+  .tablet\:grid-offset-5{
+    margin-left:41.6666666667%;
+  }
+}
+@media all and (min-width: 40em){
+  .tablet\:grid-offset-6{
+    margin-left:50%;
+  }
+}
+@media all and (min-width: 40em){
+  .tablet\:grid-offset-7{
+    margin-left:58.3333333333%;
+  }
+}
+@media all and (min-width: 40em){
+  .tablet\:grid-offset-8{
+    margin-left:66.6666666667%;
+  }
+}
+@media all and (min-width: 40em){
+  .tablet\:grid-offset-9{
+    margin-left:75%;
+  }
+}
+@media all and (min-width: 40em){
+  .tablet\:grid-offset-10{
+    margin-left:83.3333333333%;
+  }
+}
+@media all and (min-width: 40em){
+  .tablet\:grid-offset-11{
+    margin-left:91.6666666667%;
+  }
+}
+@media all and (min-width: 40em){
+  .tablet\:grid-offset-12{
+    margin-left:100%;
+  }
+}
+@media all and (min-width: 40em){
+  .tablet\:grid-offset-none{
+    margin-left:0;
+  }
+}
+@media all and (min-width: 64em){
+  .desktop\:grid-offset-1{
+    margin-left:8.3333333333%;
+  }
+}
+@media all and (min-width: 64em){
+  .desktop\:grid-offset-2{
+    margin-left:16.6666666667%;
+  }
+}
+@media all and (min-width: 64em){
+  .desktop\:grid-offset-3{
+    margin-left:25%;
+  }
+}
+@media all and (min-width: 64em){
+  .desktop\:grid-offset-4{
+    margin-left:33.3333333333%;
+  }
+}
+@media all and (min-width: 64em){
+  .desktop\:grid-offset-5{
+    margin-left:41.6666666667%;
+  }
+}
+@media all and (min-width: 64em){
+  .desktop\:grid-offset-6{
+    margin-left:50%;
+  }
+}
+@media all and (min-width: 64em){
+  .desktop\:grid-offset-7{
+    margin-left:58.3333333333%;
+  }
+}
+@media all and (min-width: 64em){
+  .desktop\:grid-offset-8{
+    margin-left:66.6666666667%;
+  }
+}
+@media all and (min-width: 64em){
+  .desktop\:grid-offset-9{
+    margin-left:75%;
+  }
+}
+@media all and (min-width: 64em){
+  .desktop\:grid-offset-10{
+    margin-left:83.3333333333%;
+  }
+}
+@media all and (min-width: 64em){
+  .desktop\:grid-offset-11{
+    margin-left:91.6666666667%;
+  }
+}
+@media all and (min-width: 64em){
+  .desktop\:grid-offset-12{
+    margin-left:100%;
+  }
+}
+@media all and (min-width: 64em){
+  .desktop\:grid-offset-none{
+    margin-left:0;
+  }
+}
+.usa-media-block{
+  align-items:flex-start;
+  display:flex;
+}
+
+.usa-media-block__img{
+  flex-shrink:0;
+  margin-right:0.5rem;
+}
+
+.usa-media-block__body{
+  flex:1 1 0%;
+}
+
+.usa-js-no-click{
+  pointer-events:none;
+  -webkit-user-select:none;
+     -moz-user-select:none;
+          user-select:none;
+}
+.usa-js-no-click .usa-modal,
+.usa-js-no-click .usa-modal *{
+  pointer-events:auto;
+  -webkit-user-select:text;
+     -moz-user-select:text;
+          user-select:text;
+}
+
+[data-open-modal] *{
+  pointer-events:none;
+}
+
+.usa-modal-wrapper{
+  text-align:center;
+  transition:opacity 0.15s ease-in-out;
+}
+.usa-modal-wrapper.is-hidden{
+  visibility:hidden;
+  opacity:0;
+  position:fixed;
+}
+.usa-modal-wrapper.is-visible{
+  visibility:visible;
+  opacity:1;
+  position:fixed;
+  z-index:99999;
+}
+
+.usa-modal-overlay{
+  background:rgba(0, 0, 0, 0.7);
+  bottom:0;
+  height:100%;
+  left:0;
+  overflow:scroll;
+  overflow-x:hidden;
+  padding:1.5rem;
+  position:fixed;
+  scroll-behavior:smooth;
+  top:0;
+  width:100%;
+}
+.usa-modal-overlay:before{
+  content:"";
+  display:inline-block;
+  height:100%;
+  vertical-align:middle;
+}
+.usa-modal-overlay[data-force-action=true]{
+  pointer-events:none;
+}
+.usa-modal-overlay[data-force-action=true] *{
+  pointer-events:auto;
+}
+
+.usa-js-loading .usa-modal-wrapper{
+  position:absolute;
+  left:-999em;
+  right:auto;
+}
+.usa-js-loading .usa-modal-wrapper:target{
+  position:static;
+}
+
+.usa-modal{
+  font-family:Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
+  font-size:1.06rem;
+  line-height:1.5;
+  border-radius:0.5rem;
+  background:white;
+  color:#1b1b1b;
+  display:inline-block;
+  margin:1.25rem auto;
+  max-width:30rem;
+  position:relative;
+  text-align:left;
+  vertical-align:middle;
+  width:100%;
+}
+.usa-modal:focus{
+  outline:none;
+}
+
+.usa-modal__content{
+  display:flex;
+  flex-direction:column-reverse;
+  padding-top:2rem;
+  width:100%;
+}
+
+.usa-modal__main{
+  margin:0 auto;
+  padding:0.5rem 2rem 2rem;
+}
+
+.usa-modal-wrapper [data-close-modal] > .usa-icon,
+.usa-modal-wrapper [data-close-modal] > .usa-icon use{
+  pointer-events:none !important;
+}
+
+.usa-modal__close{
+  align-items:center;
+  align-self:flex-end;
+  background-color:transparent;
+  color:#71767a;
+  display:flex;
+  flex-shrink:0;
+  font-size:0.93rem;
+  margin:-2rem 0 0 auto;
+  padding:0.25rem 0.25rem;
+  width:auto;
+}
+.usa-modal__close:hover, .usa-modal__close:active{
+  background-color:transparent;
+  color:#1b1b1b;
+}
+.usa-modal__close:focus{
+  outline-offset:0;
+}
+.usa-modal__close .usa-icon{
+  height:2rem;
+  margin:2px 2px 0 0;
+  width:2rem;
+}
+
+.usa-modal__heading{
+  font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+  font-size:1.34rem;
+  line-height:1.4;
+  margin-top:0;
+}
+
+.usa-modal__footer{
+  margin-top:1.5rem;
+}
+
+.usa-modal--lg{
+  max-width:55rem;
+  width:100%;
+}
+.usa-modal--lg .usa-modal__main{
+  padding-bottom:4rem;
+  padding-top:1.25rem;
+  width:100%;
+  max-width:40rem;
+}
+@media all and (min-width: 40em){
+  .usa-modal--lg .usa-modal__heading{
+    font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+    font-size:1.95rem;
+  }
+}
+
+.usa-js-modal--active{
+  overflow:hidden;
+}
+
+@keyframes slidein-left{
+  from{
+    transform:translateX(15rem);
+  }
+  to{
+    transform:translateX(0);
+  }
+}
+.usa-nav{
+  font-family:Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
+  font-size:1.06rem;
+  line-height:0.9;
+}
+@media all and (max-width: 63.99em){
+  .usa-nav{
+    position:absolute;
+    right:0;
+    position:absolute;
+    bottom:0;
+    top:0;
+    position:fixed;
+    background:white;
+    border-right:0;
+    display:none;
+    flex-direction:column;
+    overflow-y:auto;
+    padding:1rem;
+    width:15rem;
+    z-index:500;
+  }
+  .usa-nav.is-visible{
+    animation:slidein-left 0.3s ease-in-out;
+    display:flex;
+  }
+}
+@media all and (min-width: 64em){
+  .usa-nav{
+    float:right;
+    position:relative;
+  }
+}
+.usa-nav .usa-search{
+  margin-top:1rem;
+}
+@media all and (min-width: 64em){
+  .usa-nav .usa-search{
+    margin-left:1rem;
+    margin-top:0;
+  }
+}
+.usa-nav .usa-accordion{
+  font-family:Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
+  font-size:1.06rem;
+  line-height:0.9;
+}
+
+@media all and (max-width: 63.99em){
+  .usa-nav__primary{
+    margin-bottom:0;
+    margin-top:0;
+    list-style-type:none;
+    padding-left:0;
+  }
+  .usa-nav__primary > li{
+    margin-bottom:0;
+    max-width:unset;
+  }
+  .usa-nav__primary-item{
+    border-top:1px solid #dfe1e2;
+  }
+  .usa-nav__primary a:not(.usa-button){
+    display:block;
+    padding:0.5rem 1rem;
+    text-decoration:none;
+  }
+  .usa-nav__primary a:not(.usa-button):hover{
+    background-color:#f0f0f0;
+    text-decoration:none;
+  }
+  .usa-nav__primary a:not(.usa-button):not(.usa-current){
+    color:#565c65;
+  }
+  .usa-nav__primary a:not(.usa-button):not(.usa-current):hover{
+    color:#005ea2;
+  }
+  .usa-nav__primary a:not(.usa-button):not(.usa-current):focus{
+    outline-offset:0;
+  }
+  .usa-nav__primary .usa-current{
+    position:relative;
+    color:#005ea2;
+    font-weight:700;
+  }
+  .usa-nav__primary .usa-current::after{
+    background-color:#005ea2;
+    border-radius:99rem;
+    content:"";
+    display:block;
+    position:absolute;
+    bottom:0.25rem;
+    top:0.25rem;
+    width:0.25rem;
+    left:0.25rem;
+  }
+}
+@media all and (max-width: 63.99em) and (min-width: 40em){
+  .usa-nav__primary .usa-current{
+    position:relative;
+  }
+  .usa-nav__primary .usa-current::after{
+    background-color:#005ea2;
+    border-radius:99rem;
+    content:"";
+    display:block;
+    position:absolute;
+    bottom:0.25rem;
+    top:0.25rem;
+    width:0.25rem;
+    left:0rem;
+  }
+}
+@media all and (max-width: 63.99em){
+  .usa-nav__primary a{
+    padding-bottom:0.75rem;
+    padding-top:0.75rem;
+  }
+}
+@media all and (min-width: 64em){
+  .usa-nav__primary{
+    display:flex;
+    align-items:stretch;
+  }
+}
+.usa-nav__primary .usa-nav__primary-item a{
+  text-decoration:none;
+}
+.usa-nav__primary > .usa-nav__primary-item{
+  line-height:1.1;
+}
+@media all and (min-width: 64em){
+  .usa-nav__primary > .usa-nav__primary-item{
+    font-size:0.93rem;
+    line-height:0.9;
+  }
+}
+@media all and (min-width: 64em){
+  .usa-nav__primary > .usa-nav__primary-item > a{
+    line-height:0.9;
+    padding:1rem;
+    align-items:center;
+    color:#565c65;
+    display:flex;
+    font-weight:700;
+  }
+  .usa-nav__primary > .usa-nav__primary-item > a:hover{
+    color:#005ea2;
+  }
+}
+@media all and (min-width: 64em){
+  .usa-nav__primary > .usa-nav__primary-item > button,
+  .usa-nav__primary > .usa-nav__primary-item > a{
+    height:100%;
+  }
+}
+@media all and (min-width: 64em){
+  .usa-nav__primary a{
+    padding-bottom:0.5rem;
+    padding-top:0.5rem;
+  }
+}
+.usa-nav__primary button{
+  color:#005ea2;
+  text-decoration:underline;
+  background-color:transparent;
+  border:0;
+  border-radius:0;
+  box-shadow:none;
+  font-weight:normal;
+  justify-content:normal;
+  text-align:left;
+  margin:0;
+  padding:0;
+  width:auto;
+  position:relative;
+  color:#565c65;
+  font-weight:normal;
+  line-height:1.1;
+  padding:0.75rem 1rem;
+  text-decoration:none;
+  width:100%;
+}
+.usa-nav__primary button:visited{
+  color:#54278f;
+}
+.usa-nav__primary button:hover{
+  color:#1a4480;
+}
+.usa-nav__primary button:active{
+  color:#162e51;
+}
+.usa-nav__primary button:focus{
+  outline:0.25rem solid #2491ff;
+  outline-offset:0rem;
+}
+.usa-nav__primary button:hover, .usa-nav__primary button.usa-button--hover, .usa-nav__primary button:disabled:hover, .usa-nav__primary button[aria-disabled=true]:hover, .usa-nav__primary button:disabled.usa-button--hover, .usa-nav__primary button[aria-disabled=true].usa-button--hover, .usa-nav__primary button:active, .usa-nav__primary button.usa-button--active, .usa-nav__primary button:disabled:active, .usa-nav__primary button[aria-disabled=true]:active, .usa-nav__primary button:disabled.usa-button--active, .usa-nav__primary button[aria-disabled=true].usa-button--active, .usa-nav__primary button:disabled:focus, .usa-nav__primary button[aria-disabled=true]:focus, .usa-nav__primary button:disabled.usa-focus, .usa-nav__primary button[aria-disabled=true].usa-focus, .usa-nav__primary button:disabled, .usa-nav__primary button[aria-disabled=true], .usa-nav__primary button.usa-button--disabled{
+  background-color:transparent;
+  box-shadow:none;
+  text-decoration:underline;
+}
+.usa-nav__primary button.usa-button--hover{
+  color:#1a4480;
+}
+.usa-nav__primary button.usa-button--active{
+  color:#162e51;
+}
+.usa-nav__primary button:disabled, .usa-nav__primary button[aria-disabled=true], .usa-nav__primary button:disabled:hover, .usa-nav__primary button[aria-disabled=true]:hover, .usa-nav__primary button[aria-disabled=true]:focus{
+  color:#757575;
+}
+@media (forced-colors: active){
+  .usa-nav__primary button:disabled, .usa-nav__primary button[aria-disabled=true], .usa-nav__primary button:disabled:hover, .usa-nav__primary button[aria-disabled=true]:hover, .usa-nav__primary button[aria-disabled=true]:focus{
+    color:GrayText;
+  }
+}
+@media all and (min-width: 64em){
+  .usa-nav__primary button{
+    line-height:0.9;
+    padding:1rem;
+    font-size:0.93rem;
+    font-weight:700;
+  }
+}
+@media (forced-colors: active){
+  .usa-nav__primary button{
+    forced-color-adjust:auto;
+  }
+}
+.usa-nav__primary button:hover{
+  color:#005ea2;
+  background-color:#f0f0f0;
+  text-decoration:none;
+}
+@media all and (min-width: 64em){
+  .usa-nav__primary button:hover{
+    background-color:transparent;
+  }
+}
+.usa-nav__primary button[aria-expanded], .usa-nav__primary button[aria-expanded]:hover{
+  background-image:none;
+}
+@media (forced-colors: active){
+  .usa-nav__primary button[aria-expanded]::before, .usa-nav__primary button[aria-expanded]:hover::before{
+    content:none;
+  }
+}
+.usa-nav__primary button[aria-expanded] span::after{
+  position:absolute;
+  top:50%;
+  right:0;
+  transform:translateY(-50%);
+}
+.usa-nav__primary button[aria-expanded=false] span::after{
+  background-image:url("../img/usa-icons/add.svg");
+  background-repeat:no-repeat;
+  background-position:center center;
+  background-size:1.25rem 1.25rem;
+  display:inline-block;
+  height:1.25rem;
+  width:1.25rem;
+  content:"";
+  vertical-align:middle;
+  margin-left:auto;
+}
+@supports ((-webkit-mask: url("")) or (mask: url(""))){
+  .usa-nav__primary button[aria-expanded=false] span::after{
+    background:none;
+    background-color:ButtonText;
+    -webkit-mask-image:url("../img/usa-icons/add.svg"), linear-gradient(transparent, transparent);
+            mask-image:url("../img/usa-icons/add.svg"), linear-gradient(transparent, transparent);
+    -webkit-mask-position:center center;
+            mask-position:center center;
+    -webkit-mask-repeat:no-repeat;
+            mask-repeat:no-repeat;
+    -webkit-mask-size:1.25rem 1.25rem;
+            mask-size:1.25rem 1.25rem;
+  }
+}
+.usa-nav__primary button[aria-expanded=false] span::after:hover{
+  background-color:buttonText;
+}
+@media all and (min-width: 64em){
+  .usa-nav__primary button[aria-expanded=false] span::after{
+    background-image:url("../img/usa-icons/expand_more.svg");
+    background-repeat:no-repeat;
+    background-position:center center;
+    background-size:1rem 1rem;
+    display:inline-block;
+    height:1rem;
+    width:1rem;
+    content:"";
+    vertical-align:middle;
+    margin-left:auto;
+  }
+  @supports ((-webkit-mask: url("")) or (mask: url(""))){
+    .usa-nav__primary button[aria-expanded=false] span::after{
+      background:none;
+      background-color:ButtonText;
+      -webkit-mask-image:url("../img/usa-icons/expand_more.svg"), linear-gradient(transparent, transparent);
+              mask-image:url("../img/usa-icons/expand_more.svg"), linear-gradient(transparent, transparent);
+      -webkit-mask-position:center center;
+              mask-position:center center;
+      -webkit-mask-repeat:no-repeat;
+              mask-repeat:no-repeat;
+      -webkit-mask-size:1rem 1rem;
+              mask-size:1rem 1rem;
+    }
+  }
+  .usa-nav__primary button[aria-expanded=false] span::after{
+    right:0.75rem;
+  }
+}
+@media all and (min-width: 64em){
+  .usa-nav__primary button[aria-expanded=false]:hover span::after{
+    background-color:#1a4480;
+  }
+}
+@media (min-width: 64em) and (forced-colors: active){
+  .usa-nav__primary button[aria-expanded=false]:hover span::after{
+    background-color:ButtonText;
+  }
+}
+.usa-nav__primary button[aria-expanded=true] span::after{
+  background-image:url("../img/usa-icons/remove.svg");
+  background-repeat:no-repeat;
+  background-position:center center;
+  background-size:1.25rem 1.25rem;
+  display:inline-block;
+  height:1.25rem;
+  width:1.25rem;
+  content:"";
+  vertical-align:middle;
+  margin-left:auto;
+}
+@supports ((-webkit-mask: url("")) or (mask: url(""))){
+  .usa-nav__primary button[aria-expanded=true] span::after{
+    background:none;
+    background-color:ButtonText;
+    -webkit-mask-image:url("../img/usa-icons/remove.svg"), linear-gradient(transparent, transparent);
+            mask-image:url("../img/usa-icons/remove.svg"), linear-gradient(transparent, transparent);
+    -webkit-mask-position:center center;
+            mask-position:center center;
+    -webkit-mask-repeat:no-repeat;
+            mask-repeat:no-repeat;
+    -webkit-mask-size:1.25rem 1.25rem;
+            mask-size:1.25rem 1.25rem;
+  }
+}
+.usa-nav__primary button[aria-expanded=true] span::after{
+  position:absolute;
+  right:0;
+}
+@media (forced-colors: active){
+  .usa-nav__primary button[aria-expanded=true] span::after{
+    background-color:ButtonText;
+  }
+}
+@media all and (min-width: 64em){
+  .usa-nav__primary button[aria-expanded=true]{
+    background-image:none;
+    background-color:#162e51;
+    color:white;
+  }
+}
+@media all and (min-width: 64em) and (min-width: 64em){
+  .usa-nav__primary button[aria-expanded=true] span::after{
+    background-image:url("../img/usa-icons/expand_less.svg");
+    background-repeat:no-repeat;
+    background-position:center center;
+    background-size:1rem 1rem;
+    display:inline-block;
+    height:1rem;
+    width:1rem;
+    content:"";
+    vertical-align:middle;
+    margin-left:auto;
+  }
+  @supports ((-webkit-mask: url("")) or (mask: url(""))){
+    .usa-nav__primary button[aria-expanded=true] span::after{
+      background:none;
+      background-color:ButtonText;
+      -webkit-mask-image:url("../img/usa-icons/expand_less.svg"), linear-gradient(transparent, transparent);
+              mask-image:url("../img/usa-icons/expand_less.svg"), linear-gradient(transparent, transparent);
+      -webkit-mask-position:center center;
+              mask-position:center center;
+      -webkit-mask-repeat:no-repeat;
+              mask-repeat:no-repeat;
+      -webkit-mask-size:1rem 1rem;
+              mask-size:1rem 1rem;
+    }
+  }
+  .usa-nav__primary button[aria-expanded=true] span::after{
+    right:0.75rem;
+    background-color:white;
+  }
+}
+@media (min-width: 64em) and (min-width: 64em) and (forced-colors: active){
+  .usa-nav__primary button[aria-expanded=true] span::after{
+    background-color:ButtonText;
+  }
+}
+@media all and (min-width: 64em){
+  .usa-nav__primary .usa-accordion__button span{
+    display:inline-block;
+    margin-right:0;
+    padding-right:1rem;
+  }
+}
+
+.usa-nav__secondary{
+  margin-top:1rem;
+}
+@media all and (min-width: 64em){
+  .usa-nav__secondary{
+    flex-direction:column;
+    align-items:flex-end;
+    bottom:4rem;
+    display:flex;
+    font-size:0.93rem;
+    margin-top:0.5rem;
+    min-width:calc(27ch + 3rem);
+    position:absolute;
+    right:2rem;
+  }
+}
+.usa-nav__secondary .usa-search{
+  width:100%;
+}
+@media all and (min-width: 64em){
+  .usa-nav__secondary .usa-search{
+    margin-left:0;
+    margin-top:0.5rem;
+  }
+}
+
+.usa-nav__secondary-links{
+  margin-bottom:0;
+  margin-top:0;
+  list-style-type:none;
+  padding-left:0;
+  line-height:1.3;
+  margin-top:1.5rem;
+}
+@media all and (min-width: 64em){
+  .usa-nav__secondary-links{
+    -moz-column-gap:0.5rem;
+         column-gap:0.5rem;
+    display:flex;
+    flex-flow:row nowrap;
+    line-height:0.9;
+    margin-bottom:0.25rem;
+    margin-top:0;
+  }
+}
+@media all and (min-width: 64em){
+  .usa-nav__secondary-links .usa-nav__secondary-item{
+    padding-left:0.25rem;
+  }
+  .usa-nav__secondary-links .usa-nav__secondary-item + .usa-nav__secondary-item{
+    border-left:1px solid #dfe1e2;
+    padding-left:0.5rem;
+  }
+}
+.usa-nav__secondary-links a{
+  color:#71767a;
+  display:inline-block;
+  font-size:0.93rem;
+  text-decoration:none;
+}
+.usa-nav__secondary-links a:hover{
+  color:#005ea2;
+  text-decoration:underline;
+}
+
+@media all and (max-width: 63.99em){
+  .usa-nav__submenu{
+    margin-bottom:0;
+    margin-top:0;
+    list-style-type:none;
+    padding-left:0;
+    margin:0;
+  }
+  .usa-nav__submenu > li{
+    margin-bottom:0;
+    max-width:unset;
+  }
+  .usa-nav__submenu-item{
+    border-top:1px solid #dfe1e2;
+    font-size:0.93rem;
+  }
+  .usa-nav__submenu .usa-current::after{
+    display:none;
+  }
+}
+@media all and (max-width: 63.99em) and (min-width: 40em){
+  .usa-nav__submenu .usa-current::after{
+    display:none;
+  }
+}
+@media all and (max-width: 63.99em){
+  .usa-nav__submenu a:not(.usa-button){
+    padding-left:2rem;
+  }
+  .usa-nav__submenu .usa-nav__submenu a:not(.usa-button){
+    padding-left:3rem;
+  }
+  .usa-nav__submenu .usa-nav__submenu .usa-nav__submenu a:not(.usa-button){
+    padding-left:4rem;
+  }
+}
+@media all and (min-width: 64em){
+  .usa-nav__submenu{
+    margin-bottom:0;
+    margin-top:0;
+    list-style-type:none;
+    padding-left:0;
+    padding-bottom:0.5rem;
+    padding-top:0.5rem;
+    background-color:#162e51;
+    width:15rem;
+    position:absolute;
+    z-index:400;
+  }
+}
+.usa-nav__submenu[aria-hidden=true]{
+  display:none;
+}
+@media all and (min-width: 64em){
+  .usa-nav__submenu .usa-nav__submenu-item a{
+    padding-left:1rem;
+    padding-right:1rem;
+    color:white;
+    line-height:1.3;
+    display:block;
+  }
+  .usa-nav__submenu .usa-nav__submenu-item a:focus{
+    outline-offset:-0.25rem;
+  }
+  .usa-nav__submenu .usa-nav__submenu-item a:hover{
+    color:white;
+    text-decoration:underline;
+  }
+}
+
+.usa-nav__submenu-list{
+  margin-bottom:0;
+  margin-top:0;
+  list-style-type:none;
+  padding-left:0;
+}
+.usa-nav__submenu-list > li{
+  margin-bottom:0;
+  max-width:unset;
+}
+.usa-nav__submenu-list .usa-nav__submenu-list-item{
+  margin:0;
+  font-size:0.93rem;
+}
+.usa-nav__submenu-list .usa-nav__submenu-list-item a{
+  line-height:1.3;
+}
+
+.usa-nav__close{
+  color:#005ea2;
+  text-decoration:underline;
+  background-color:transparent;
+  border:0;
+  border-radius:0;
+  box-shadow:none;
+  font-weight:normal;
+  justify-content:normal;
+  text-align:left;
+  margin:0;
+  padding:0;
+  width:auto;
+  height:3rem;
+  width:3rem;
+  background-image:none;
+  color:currentColor;
+  flex:none;
+  float:right;
+  margin:-0.75rem -1rem 1rem auto;
+  text-align:center;
+}
+.usa-nav__close:visited{
+  color:#54278f;
+}
+.usa-nav__close:hover{
+  color:#1a4480;
+}
+.usa-nav__close:active{
+  color:#162e51;
+}
+.usa-nav__close:focus{
+  outline:0.25rem solid #2491ff;
+  outline-offset:0rem;
+}
+.usa-nav__close:hover, .usa-nav__close.usa-button--hover, .usa-nav__close:disabled:hover, .usa-nav__close[aria-disabled=true]:hover, .usa-nav__close:disabled.usa-button--hover, .usa-nav__close[aria-disabled=true].usa-button--hover, .usa-nav__close:active, .usa-nav__close.usa-button--active, .usa-nav__close:disabled:active, .usa-nav__close[aria-disabled=true]:active, .usa-nav__close:disabled.usa-button--active, .usa-nav__close[aria-disabled=true].usa-button--active, .usa-nav__close:disabled:focus, .usa-nav__close[aria-disabled=true]:focus, .usa-nav__close:disabled.usa-focus, .usa-nav__close[aria-disabled=true].usa-focus, .usa-nav__close:disabled, .usa-nav__close[aria-disabled=true], .usa-nav__close.usa-button--disabled{
+  background-color:transparent;
+  box-shadow:none;
+  text-decoration:underline;
+}
+.usa-nav__close.usa-button--hover{
+  color:#1a4480;
+}
+.usa-nav__close.usa-button--active{
+  color:#162e51;
+}
+.usa-nav__close:disabled, .usa-nav__close[aria-disabled=true], .usa-nav__close:disabled:hover, .usa-nav__close[aria-disabled=true]:hover, .usa-nav__close[aria-disabled=true]:focus{
+  color:#757575;
+}
+@media (forced-colors: active){
+  .usa-nav__close:disabled, .usa-nav__close[aria-disabled=true], .usa-nav__close:disabled:hover, .usa-nav__close[aria-disabled=true]:hover, .usa-nav__close[aria-disabled=true]:focus{
+    color:GrayText;
+  }
+}
+@media (forced-colors: active){
+  .usa-nav__close::before{
+    background-image:url("../img/usa-icons/close.svg");
+    background-repeat:no-repeat;
+    background-position:center center;
+    background-size:1.25rem 1.25rem;
+    display:inline-block;
+    height:1.25rem;
+    width:1.25rem;
+    content:"";
+    vertical-align:middle;
+    margin-right:auto;
+  }
+  @supports ((-webkit-mask: url("")) or (mask: url(""))){
+    .usa-nav__close::before{
+      background:none;
+      background-color:ButtonText;
+      -webkit-mask-image:url("../img/usa-icons/close.svg"), linear-gradient(transparent, transparent);
+              mask-image:url("../img/usa-icons/close.svg"), linear-gradient(transparent, transparent);
+      -webkit-mask-position:center center;
+              mask-position:center center;
+      -webkit-mask-repeat:no-repeat;
+              mask-repeat:no-repeat;
+      -webkit-mask-size:1.25rem 1.25rem;
+              mask-size:1.25rem 1.25rem;
+    }
+  }
+  .usa-nav__close::before{
+    background-color:buttonText;
+  }
+}
+.usa-nav__close:hover{
+  color:currentColor;
+  text-decoration:none;
+}
+@media all and (min-width: 64em){
+  .usa-nav__close{
+    display:none;
+  }
+}
+.usa-nav__close img{
+  width:1.5rem;
+}
+@media (forced-colors: active){
+  .usa-nav__close img{
+    display:none;
+  }
+}
+.usa-nav__close + *{
+  clear:both;
+}
+
+.usa-js-mobile-nav--active{
+  overflow:hidden;
+}
+
+@media (min-width: 63.06rem){
+  .usa-js-mobile-nav--active.is-safari{
+    overflow-y:scroll;
+    position:fixed;
+    top:var(--scrolltop, 0);
+  }
+}
+.usa-pagination{
+  margin-bottom:1rem;
+  margin-top:1rem;
+  font-family:Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
+  font-size:1.06rem;
+  line-height:1.5;
+  color:#1b1b1b;
+  background-color:white;
+  display:flex;
+  justify-content:center;
+}
+
+.usa-pagination .usa-icon{
+  height:1.13rem;
+  width:1.13rem;
+}
+
+.usa-pagination__list{
+  margin-bottom:0;
+  margin-top:0;
+  list-style-type:none;
+  padding-left:0;
+  align-items:center;
+  display:flex;
+  flex-flow:row nowrap;
+  justify-content:center;
+  width:auto;
+}
+
+.usa-pagination__item{
+  display:inline-flex;
+  height:2.5rem;
+  justify-content:center;
+  line-height:1;
+  margin-left:0.25rem;
+  margin-right:0.25rem;
+  min-width:2.5rem;
+}
+@media all and (min-width: 40em){
+  .usa-pagination__item{
+    flex:1 0 auto;
+  }
+}
+
+.usa-pagination__arrow{
+  display:none;
+}
+@media all and (min-width: 40em){
+  .usa-pagination__arrow{
+    display:inherit;
+  }
+}
+
+@media all and (min-width: 40em){
+  .usa-pagination__previous-page{
+    margin-right:1.25rem;
+  }
+}
+
+@media all and (min-width: 40em){
+  .usa-pagination__next-page{
+    margin-left:1.25rem;
+  }
+}
+
+.usa-pagination__link{
+  align-items:center;
+  color:#005ea2;
+  display:inline-flex;
+}
+.usa-pagination__link[disabled]{
+  opacity:0.4 !important;
+  pointer-events:none;
+}
+.usa-pagination__link:hover, .usa-pagination__link:focus, .usa-pagination__link:active{
+  color:#1a4480;
+}
+.usa-pagination__link:visited{
+  color:#005ea2;
+}
+
+.usa-pagination__button{
+  align-items:center;
+  border-color:rgba(27, 27, 27, 0.2);
+  border-radius:0.25rem;
+  border-style:solid;
+  border-width:1px;
+  color:#005ea2;
+  display:inline-flex;
+  justify-content:center;
+  padding:0.5rem;
+  width:100%;
+}
+.usa-pagination__button:hover, .usa-pagination__button:focus, .usa-pagination__button:active{
+  color:#1a4480;
+  border-color:#1a4480;
+}
+@media (forced-colors: active){
+  .usa-pagination__button:hover, .usa-pagination__button:focus, .usa-pagination__button:active{
+    border:2px solid transparent;
+  }
+}
+
+.usa-pagination .usa-current{
+  background-color:#1b1b1b;
+  border-color:transparent;
+  color:white;
+}
+@media (forced-colors: active){
+  .usa-pagination .usa-current{
+    border:2px solid transparent;
+    color:buttonText;
+  }
+}
+.usa-pagination .usa-current:hover, .usa-pagination .usa-current:focus, .usa-pagination .usa-current:active{
+  background-color:#1b1b1b;
+  color:white;
+}
+@media (forced-colors: active){
+  .usa-pagination .usa-current:hover, .usa-pagination .usa-current:focus, .usa-pagination .usa-current:active{
+    color:buttontext;
+  }
+}
+
+.usa-pagination__overflow{
+  align-items:center;
+  align-self:stretch;
+  display:inherit;
+  -webkit-user-select:none;
+     -moz-user-select:none;
+          user-select:none;
+  padding:0.5rem;
+}
+
+.usa-process-list{
+  font-family:Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
+  font-size:1.06rem;
+  line-height:1.5;
+  margin-bottom:0;
+  margin-top:0;
+  list-style-type:none;
+  padding-left:0;
+  counter-reset:usa-numbered-list;
+  padding:20px 0 0 calc(2.5rem / 2 - 0.5rem / 2);
+  position:relative;
+}
+.usa-process-list > li{
+  margin-bottom:0;
+  max-width:unset;
+}
+.usa-process-list > .usa-process-list__item{
+  max-width:72ex;
+}
+
+.usa-process-list__item{
+  border-left:0.5rem solid #d9e8f6;
+  font-size:1.06rem;
+  margin-bottom:0;
+  padding-bottom:2rem;
+  padding-left:calc(calc(2.5rem / 2 - 0.25rem) * 2);
+}
+
+.usa-prose .usa-process-list{
+  font-family:Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
+  font-size:1.06rem;
+  line-height:1.5;
+  margin-bottom:0;
+  margin-top:0;
+  list-style-type:none;
+  padding-left:0;
+  counter-reset:usa-numbered-list;
+  padding:20px 0 0 calc(2.5rem / 2 - 0.5rem / 2);
+  position:relative;
+}
+.usa-prose .usa-process-list > li{
+  margin-bottom:0;
+  max-width:unset;
+}
+.usa-prose .usa-process-list > .usa-process-list__item{
+  max-width:72ex;
+}
+.usa-prose .usa-process-list__item{
+  border-left:0.5rem solid #d9e8f6;
+  font-size:1.06rem;
+  margin-bottom:0;
+  padding-bottom:2rem;
+  padding-left:calc(calc(2.5rem / 2 - 0.25rem) * 2);
+}
+
+.usa-process-list__item:last-child{
+  border-left:0.5rem solid transparent;
+}
+.usa-process-list__item::before{
+  flex-direction:row;
+  align-items:center;
+  justify-content:center;
+  height:2.5rem;
+  border-radius:99rem;
+  width:2.5rem;
+  background-color:white;
+  border:0.25rem solid #1b1b1b;
+  box-shadow:0 0 0 0.25rem white;
+  color:#1b1b1b;
+  content:counter(usa-numbered-list, decimal);
+  counter-increment:usa-numbered-list;
+  display:flex;
+  font-family:Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
+  font-size:1.46rem;
+  font-weight:700;
+  height:2.5rem;
+  left:0;
+  line-height:0.9;
+  margin-top:-0.4rem;
+  position:absolute;
+  width:2.5rem;
+}
+.usa-process-list__item ul{
+  list-style-type:disc;
+}
+.usa-process-list__item ul li{
+  margin-bottom:0.25rem;
+}
+.usa-process-list__item ul li:last-child{
+  margin-bottom:0;
+}
+.usa-process-list__item > *:first-child{
+  margin-top:0;
+}
+.usa-process-list__item > *:last-child{
+  margin-bottom:0;
+}
+
+.usa-process-list__heading{
+  font-family:Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
+  font-size:1.46rem;
+  line-height:1.1;
+  color:#1b1b1b;
+  font-family:Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
+  font-weight:700;
+  margin:0;
+}
+.usa-process-list__heading + *{
+  margin-top:0.25rem;
+}
+
+.usa-search{
+  font-family:Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
+  font-size:1.06rem;
+  line-height:1.5;
+  position:relative;
+}
+.usa-search::after{
+  clear:both;
+  content:"";
+  display:block;
+}
+.usa-search[role=search], .usa-search[role=search] > div,
+.usa-search [role=search]{
+  display:flex;
+}
+.usa-search [type=submit]{
+  border-bottom-left-radius:0;
+  border-top-left-radius:0;
+  height:2rem;
+  margin:0;
+  padding:0;
+  width:3rem;
+}
+@media all and (min-width: 30em){
+  .usa-search [type=submit]{
+    padding-left:1rem;
+    padding-right:1rem;
+    width:auto;
+  }
+}
+@media (forced-colors: active){
+  .usa-search [type=submit]::before{
+    background-image:url("../img/usa-icons/search.svg");
+    background-repeat:no-repeat;
+    background-position:center center;
+    background-size:1.5rem 1.5rem;
+    display:inline-block;
+    height:1.5rem;
+    width:1.5rem;
+    content:"";
+    vertical-align:middle;
+    margin-right:auto;
+  }
+  @supports ((-webkit-mask: url("")) or (mask: url(""))){
+    .usa-search [type=submit]::before{
+      background:none;
+      background-color:ButtonText;
+      -webkit-mask-image:url("../img/usa-icons/search.svg"), linear-gradient(transparent, transparent);
+              mask-image:url("../img/usa-icons/search.svg"), linear-gradient(transparent, transparent);
+      -webkit-mask-position:center center;
+              mask-position:center center;
+      -webkit-mask-repeat:no-repeat;
+              mask-repeat:no-repeat;
+      -webkit-mask-size:1.5rem 1.5rem;
+              mask-size:1.5rem 1.5rem;
+    }
+  }
+  .usa-search [type=submit]:focus{
+    outline-offset:0;
+  }
+}
+@media (forced-colors: active) and (min-width: 30em){
+  .usa-search [type=submit]::before{
+    content:none;
+  }
+}
+@media all and (min-width: 30em){
+  .usa-search__submit-icon{
+    display:none;
+  }
+}
+@media (forced-colors: active){
+  .usa-search__submit-icon{
+    display:none;
+  }
+}
+
+@media all and (min-width: 30em){
+  .usa-search--big [type=search],
+  .usa-search--big .usa-search__input{
+    font-size:1.06rem;
+    height:3rem;
+  }
+}
+@media all and (min-width: 30em){
+  .usa-search--big [type=submit],
+  .usa-search--big .usa-search__submit{
+    padding-left:2rem;
+    padding-right:2rem;
+    font-size:1.46rem;
+    height:3rem;
+    width:auto;
+  }
+}
+
+.usa-search--small [type=submit],
+.usa-search--small .usa-search__submit{
+  padding-left:0.75rem;
+  padding-right:0.75rem;
+  min-width:3rem;
+}
+@media (forced-colors: active) and (min-width: 30em){
+  .usa-search--small [type=submit]::before{
+    content:"";
+  }
+}
+.usa-search--small .usa-search__submit-icon{
+  height:1.5rem;
+  width:1.5rem;
+  display:block;
+}
+@media (forced-colors: active){
+  .usa-search--small .usa-search__submit-icon{
+    display:none;
+  }
+}
+
+input[type=search]{
+  box-sizing:border-box;
+  -webkit-appearance:none;
+     -moz-appearance:none;
+          appearance:none;
+}
+
+[type=search],
+.usa-search__input{
+  padding-bottom:0;
+  padding-top:0;
+  border-bottom-right-radius:0;
+  border-right:none;
+  border-top-right-radius:0;
+  box-sizing:border-box;
+  float:left;
+  font-size:1rem;
+  height:2rem;
+  margin:0;
+}
+
+.usa-search__submit-text{
+  display:none;
+}
+@media all and (min-width: 30em){
+  .usa-search__submit-text{
+    display:block;
+  }
+}
+
+.usa-section{
+  padding-bottom:2rem;
+  padding-top:2rem;
+}
+@media all and (min-width: 40em){
+  .usa-section{
+    padding-bottom:4rem;
+    padding-top:4rem;
+  }
+}
+
+.usa-section--light{
+  background-color:#f0f0f0;
+}
+
+.usa-section--dark{
+  background-color:#162e51;
+  color:white;
+}
+.usa-section--dark h1,
+.usa-section--dark h2,
+.usa-section--dark h3,
+.usa-section--dark h4,
+.usa-section--dark h5,
+.usa-section--dark h6{
+  color:#00bde3;
+}
+.usa-section--dark p{
+  color:white;
+}
+.usa-section--dark a{
+  color:#dfe1e2;
+}
+.usa-section--dark a:visited{
+  color:#dfe1e2;
+}
+.usa-section--dark a:hover, .usa-section--dark a:active{
+  color:#f0f0f0;
+}
+
+.usa-sidenav{
+  margin-bottom:0;
+  margin-top:0;
+  list-style-type:none;
+  padding-left:0;
+  font-family:Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
+  font-size:1.06rem;
+  line-height:1.3;
+  border-bottom:1px solid #dfe1e2;
+}
+.usa-sidenav > li{
+  margin-bottom:0;
+  max-width:unset;
+}
+.usa-sidenav__item{
+  border-top:1px solid #dfe1e2;
+}
+.usa-sidenav a:not(.usa-button){
+  display:block;
+  padding:0.5rem 1rem;
+  text-decoration:none;
+}
+.usa-sidenav a:not(.usa-button):hover{
+  background-color:#f0f0f0;
+  text-decoration:none;
+}
+.usa-sidenav a:not(.usa-button):not(.usa-current){
+  color:#565c65;
+}
+.usa-sidenav a:not(.usa-button):not(.usa-current):hover{
+  color:#005ea2;
+}
+.usa-sidenav a:not(.usa-button):not(.usa-current):focus{
+  outline-offset:0;
+}
+.usa-sidenav .usa-current{
+  position:relative;
+  color:#005ea2;
+  font-weight:700;
+}
+.usa-sidenav .usa-current::after{
+  background-color:#005ea2;
+  border-radius:99rem;
+  content:"";
+  display:block;
+  position:absolute;
+  bottom:0.25rem;
+  top:0.25rem;
+  width:0.25rem;
+  left:0.25rem;
+}
+@media all and (min-width: 40em){
+  .usa-sidenav .usa-current{
+    position:relative;
+  }
+  .usa-sidenav .usa-current::after{
+    background-color:#005ea2;
+    border-radius:99rem;
+    content:"";
+    display:block;
+    position:absolute;
+    bottom:0.25rem;
+    top:0.25rem;
+    width:0.25rem;
+    left:0rem;
+  }
+}
+.grid-container .usa-sidenav{
+  margin-left:-1rem;
+  margin-right:-1rem;
+}
+@media all and (min-width: 40em){
+  .grid-container .usa-sidenav{
+    margin-left:0;
+    margin-right:0;
+  }
+}
+
+.usa-sidenav__sublist{
+  margin-bottom:0;
+  margin-top:0;
+  list-style-type:none;
+  padding-left:0;
+  margin:0;
+  font-size:1rem;
+}
+.usa-sidenav__sublist > li{
+  margin-bottom:0;
+  max-width:unset;
+}
+.usa-sidenav__sublist-item{
+  border-top:1px solid #dfe1e2;
+  font-size:0.93rem;
+}
+.usa-sidenav__sublist .usa-current::after{
+  display:none;
+}
+@media all and (min-width: 40em){
+  .usa-sidenav__sublist .usa-current::after{
+    display:none;
+  }
+}
+.usa-sidenav__sublist a:not(.usa-button){
+  padding-left:2rem;
+}
+.usa-sidenav__sublist .usa-sidenav__sublist a:not(.usa-button){
+  padding-left:3rem;
+}
+.usa-sidenav__sublist .usa-sidenav__sublist .usa-sidenav__sublist a:not(.usa-button){
+  padding-left:4rem;
+}
+
+.usa-site-alert .usa-alert{
+  background-color:#f0f0f0;
+  border-left:0.5rem solid #a9aeb1;
+  color:#1b1b1b;
+}
+.usa-site-alert .usa-alert .usa-alert__body{
+  font-family:Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
+  font-size:1.06rem;
+  line-height:1.5;
+  padding-bottom:1rem;
+  padding-top:1rem;
+  position:relative;
+}
+.usa-site-alert .usa-alert .usa-alert__text{
+  margin-bottom:0;
+  margin-top:0;
+}
+.usa-site-alert .usa-alert .usa-alert__text:only-child{
+  padding-bottom:0;
+  padding-top:0;
+}
+.usa-site-alert .usa-alert .usa-alert__heading{
+  font-family:Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
+  font-size:1.46rem;
+  line-height:0.9;
+  margin-top:0;
+  margin-bottom:0.5rem;
+}
+.usa-site-alert .usa-alert > .usa-list,
+.usa-site-alert .usa-alert .usa-alert__body > .usa-list{
+  padding-left:2ch;
+}
+.usa-site-alert .usa-alert > .usa-list:last-child,
+.usa-site-alert .usa-alert .usa-alert__body > .usa-list:last-child{
+  margin-bottom:0;
+}
+.usa-site-alert .usa-alert .usa-alert__body{
+  max-width:64rem;
+  padding-left:1.25rem;
+  padding-right:1.25rem;
+}
+.usa-site-alert .usa-alert .usa-alert__body::before{
+  left:1.0833333333rem;
+}
+@media all and (min-width: 64em){
+  .usa-site-alert .usa-alert .usa-alert__body{
+    margin-left:auto;
+    margin-right:auto;
+    padding-left:1.75rem;
+    padding-right:1.75rem;
+  }
+  .usa-site-alert .usa-alert .usa-alert__body::before{
+    left:1.5833333333rem;
+  }
+}
+
+.usa-site-alert--info .usa-alert{
+  background-color:#e7f6f8;
+  border-left-color:#00bde3;
+}
+.usa-site-alert--info .usa-alert .usa-alert__body{
+  color:#1b1b1b;
+  background-color:#e7f6f8;
+  display:flex;
+  flex-direction:column;
+  justify-content:center;
+  min-height:3.3333333333rem;
+}
+.usa-site-alert--info .usa-alert .usa-alert__body::before{
+  background-image:url("../img/usa-icons/info.svg");
+  background-repeat:no-repeat;
+  background-position:center center;
+  background-size:2rem 2rem;
+  display:inline-block;
+  height:2rem;
+  width:2rem;
+  content:"";
+  display:block;
+  position:absolute;
+  top:0.6666666667rem;
+}
+@supports ((-webkit-mask: url("")) or (mask: url(""))){
+  .usa-site-alert--info .usa-alert .usa-alert__body::before{
+    background:none;
+    background-color:#1b1b1b;
+    -webkit-mask-image:url("../img/usa-icons/info.svg"), linear-gradient(transparent, transparent);
+            mask-image:url("../img/usa-icons/info.svg"), linear-gradient(transparent, transparent);
+    -webkit-mask-position:center center;
+            mask-position:center center;
+    -webkit-mask-repeat:no-repeat;
+            mask-repeat:no-repeat;
+    -webkit-mask-size:2rem 2rem;
+            mask-size:2rem 2rem;
+  }
+}
+.usa-site-alert--info .usa-alert .usa-alert__body > *{
+  margin-left:2.5rem;
+}
+.usa-site-alert--info .usa-alert .usa-alert__body .usa-link{
+  color:#005ea2;
+}
+.usa-site-alert--info .usa-alert .usa-alert__body .usa-link:visited{
+  color:#54278f;
+}
+.usa-site-alert--info .usa-alert .usa-alert__body .usa-link:hover, .usa-site-alert--info .usa-alert .usa-alert__body .usa-link:active{
+  color:#1a4480;
+}
+
+.usa-site-alert--emergency .usa-alert{
+  background-color:#9c3d10;
+  border-left-color:#9c3d10;
+}
+.usa-site-alert--emergency .usa-alert .usa-alert__body{
+  color:white;
+  background-color:#9c3d10;
+  display:flex;
+  flex-direction:column;
+  justify-content:center;
+  min-height:3.3333333333rem;
+}
+.usa-site-alert--emergency .usa-alert .usa-alert__body::before{
+  background-image:url("../img/usa-icons-bg/error--white.svg");
+  background-repeat:no-repeat;
+  background-position:center center;
+  background-size:2rem 2rem;
+  display:inline-block;
+  height:2rem;
+  width:2rem;
+  content:"";
+  display:block;
+  position:absolute;
+  top:0.6666666667rem;
+}
+@supports ((-webkit-mask: url("")) or (mask: url(""))){
+  .usa-site-alert--emergency .usa-alert .usa-alert__body::before{
+    background:none;
+    background-color:white;
+    -webkit-mask-image:url("../img/usa-icons/error.svg"), linear-gradient(transparent, transparent);
+            mask-image:url("../img/usa-icons/error.svg"), linear-gradient(transparent, transparent);
+    -webkit-mask-position:center center;
+            mask-position:center center;
+    -webkit-mask-repeat:no-repeat;
+            mask-repeat:no-repeat;
+    -webkit-mask-size:2rem 2rem;
+            mask-size:2rem 2rem;
+  }
+}
+.usa-site-alert--emergency .usa-alert .usa-alert__body > *{
+  margin-left:2.5rem;
+}
+.usa-site-alert--emergency .usa-alert .usa-alert__body .usa-link{
+  color:#dfe1e2;
+}
+.usa-site-alert--emergency .usa-alert .usa-alert__body .usa-link:visited{
+  color:#dfe1e2;
+}
+.usa-site-alert--emergency .usa-alert .usa-alert__body .usa-link:hover, .usa-site-alert--emergency .usa-alert .usa-alert__body .usa-link:active{
+  color:#f0f0f0;
+}
+
+.usa-site-alert--slim .usa-alert .usa-alert__body{
+  padding-bottom:0.5rem;
+  padding-top:0.5rem;
+  min-height:0;
+}
+.usa-site-alert--slim .usa-alert .usa-alert__body:before{
+  height:1.5rem;
+  top:0.5rem;
+  width:1.5rem;
+}
+@supports ((-webkit-mask: url("")) or (mask: url(""))){
+  .usa-site-alert--slim .usa-alert .usa-alert__body:before{
+    -webkit-mask-size:1.5rem;
+            mask-size:1.5rem;
+  }
+}
+.usa-site-alert--slim .usa-alert .usa-alert__body > *{
+  margin-left:2rem;
+}
+.usa-site-alert--slim .usa-alert .usa-alert__body::before{
+  left:1.125rem;
+}
+@media all and (min-width: 64em){
+  .usa-site-alert--slim .usa-alert .usa-alert__body::before{
+    left:1.625rem;
+  }
+}
+
+.usa-site-alert--no-icon .usa-alert .usa-alert__body{
+  min-height:0;
+}
+.usa-site-alert--no-icon .usa-alert .usa-alert__body:before{
+  display:none;
+}
+.usa-site-alert--no-icon .usa-alert .usa-alert__body > *{
+  margin-left:0;
+}
+
+.usa-skipnav{
+  font-family:Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
+  font-size:1.06rem;
+  line-height:1.5;
+  color:#005ea2;
+  text-decoration:underline;
+  background:transparent;
+  left:0;
+  padding:0.5rem 1rem;
+  position:absolute;
+  top:-3.8rem;
+  transition:0.15s ease-in-out;
+  z-index:100;
+}
+.usa-skipnav:visited{
+  color:#54278f;
+}
+.usa-skipnav:hover{
+  color:#1a4480;
+}
+.usa-skipnav:active{
+  color:#162e51;
+}
+.usa-skipnav:focus{
+  outline:0.25rem solid #2491ff;
+  outline-offset:0rem;
+}
+.usa-skipnav:focus, .usa-skipnav.usa-focus{
+  background:white;
+  left:0;
+  position:absolute;
+  top:0;
+  transition:0.15s ease-in-out;
+}
+
+.usa-skipnav__container{
+  position:relative;
+}
+
+.usa-step-indicator{
+  font-family:Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
+  font-size:1.06rem;
+  line-height:1.1;
+  background-color:white;
+  margin-bottom:2rem;
+  margin-left:-1px;
+  margin-right:-1px;
+}
+@media all and (min-width: 40em){
+  .usa-step-indicator{
+    margin-left:0;
+    margin-right:0;
+  }
+}
+
+.usa-step-indicator__segments{
+  counter-reset:usa-step-indicator;
+  display:flex;
+  list-style:none;
+  margin:0;
+  padding:0;
+}
+
+.usa-step-indicator__segment{
+  flex:1 1 0%;
+  counter-increment:usa-step-indicator;
+  margin-left:1px;
+  margin-right:1px;
+  max-width:15rem;
+  min-height:0.5rem;
+  position:relative;
+}
+.usa-step-indicator__segment:after{
+  background-color:#919191;
+  content:"";
+  display:block;
+  height:0.5rem;
+  left:0;
+  position:absolute;
+  right:0;
+  top:0;
+}
+@media all and (min-width: 40em){
+  .usa-step-indicator__segment:after{
+    height:0.5rem;
+  }
+}
+
+.usa-step-indicator__segment--complete::after{
+  background-color:#162e51;
+}
+.usa-step-indicator__segment--complete .usa-step-indicator__segment-label{
+  color:#162e51;
+}
+
+.usa-step-indicator__segment--current::after{
+  background-color:#005ea2;
+}
+.usa-step-indicator__segment--current .usa-step-indicator__segment-label{
+  color:#005ea2;
+  font-weight:700;
+}
+
+.usa-step-indicator__segment-label{
+  display:none;
+}
+@media all and (min-width: 40em){
+  .usa-step-indicator__segment-label{
+    color:#565c65;
+    display:block;
+    font-size:1.06rem;
+    margin-top:calc(0.5rem + 0.5rem);
+    padding-right:2rem;
+    text-align:left;
+  }
+}
+
+.usa-step-indicator__header{
+  align-items:baseline;
+  display:flex;
+}
+
+.usa-step-indicator__heading{
+  color:#1b1b1b;
+  font-family:Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
+  font-size:1.13rem;
+  font-weight:700;
+  margin:1rem 0 0;
+}
+@media all and (min-width: 40em){
+  .usa-step-indicator__heading{
+    font-size:1.46rem;
+    margin-top:2rem;
+  }
+}
+
+.usa-step-indicator__current-step{
+  height:2.5rem;
+  border-radius:99rem;
+  width:2.5rem;
+  font-weight:normal;
+  font-feature-settings:"tnum" 1, "kern" 1;
+  background-color:#005ea2;
+  color:white;
+  display:inline-block;
+  padding:calc((2.5rem - 2ex * 1.1) * 0.5);
+  text-align:center;
+}
+
+.usa-step-indicator__total-steps{
+  font-weight:normal;
+  font-feature-settings:"tnum" 1, "kern" 1;
+  color:#005ea2;
+  margin-right:0.5rem;
+}
+
+@media all and (min-width: 40em){
+  .usa-step-indicator--counters .usa-step-indicator__segment,
+  .usa-step-indicator--counters-sm .usa-step-indicator__segment{
+    margin-left:0;
+    margin-right:0;
+    margin-top:calc((2.5rem - 0.5rem) / 2 + 0.25rem);
+  }
+  .usa-step-indicator--counters .usa-step-indicator__segment:before,
+  .usa-step-indicator--counters-sm .usa-step-indicator__segment:before{
+    height:2.5rem;
+    border-radius:99rem;
+    width:2.5rem;
+    font-feature-settings:"tnum" 1, "kern" 1;
+    background-color:white;
+    box-shadow:inset 0 0 0 0.25rem #919191, 0 0 0 0.25rem white;
+    color:#565c65;
+    content:counter(usa-step-indicator);
+    display:block;
+    font-weight:700;
+    left:0;
+    line-height:0.9;
+    padding:calc((2.5rem - 2ex * 0.9) * 0.5);
+    position:absolute;
+    text-align:center;
+    top:calc((2.5rem - 0.5rem) / -2);
+    z-index:100;
+  }
+  .usa-step-indicator--counters .usa-step-indicator__segment:last-child:after,
+  .usa-step-indicator--counters-sm .usa-step-indicator__segment:last-child:after{
+    display:none;
+  }
+}
+.usa-step-indicator--counters .usa-step-indicator__segment--complete::before,
+.usa-step-indicator--counters-sm .usa-step-indicator__segment--complete::before{
+  background-color:#162e51;
+  box-shadow:0 0 0 0.25rem white;
+  color:white;
+}
+.usa-step-indicator--counters .usa-step-indicator__segment--current::before,
+.usa-step-indicator--counters-sm .usa-step-indicator__segment--current::before{
+  background-color:#005ea2;
+  box-shadow:0 0 0 0.25rem white;
+  color:white;
+}
+@media all and (min-width: 40em){
+  .usa-step-indicator--counters .usa-step-indicator__segment-label,
+  .usa-step-indicator--counters-sm .usa-step-indicator__segment-label{
+    margin-top:calc((2.5rem + 0.5rem) / 2 + 0.5rem);
+  }
+}
+@media all and (min-width: 40em){
+  .usa-step-indicator--counters.usa-step-indicator--center .usa-step-indicator__segment:first-child:after,
+  .usa-step-indicator--counters-sm.usa-step-indicator--center .usa-step-indicator__segment:first-child:after{
+    left:50%;
+    right:0;
+    width:auto;
+  }
+  .usa-step-indicator--counters.usa-step-indicator--center .usa-step-indicator__segment:last-child:after,
+  .usa-step-indicator--counters-sm.usa-step-indicator--center .usa-step-indicator__segment:last-child:after{
+    display:block;
+    left:0;
+    right:50%;
+    width:auto;
+  }
+}
+
+@media all and (min-width: 40em){
+  .usa-step-indicator--counters-sm .usa-step-indicator__segment{
+    margin-top:calc((1.5rem - 0.5rem) / 2 + 0.25rem);
+  }
+  .usa-step-indicator--counters-sm .usa-step-indicator__segment:before{
+    height:1.5rem;
+    border-radius:99rem;
+    width:1.5rem;
+    font-size:0.93rem;
+    padding:calc(0.25rem + 1px);
+    top:calc((1.5rem - 0.5rem) / -2);
+  }
+  .usa-step-indicator--counters-sm .usa-step-indicator__segment:last-child:after{
+    display:none;
+  }
+}
+@media all and (min-width: 40em){
+  .usa-step-indicator--counters-sm .usa-step-indicator__segment-label{
+    margin-top:calc((1.5rem + 0.5rem) / 2 + 0.5rem);
+  }
+}
+
+.usa-step-indicator--no-labels{
+  margin-left:-1px;
+  margin-right:-1px;
+}
+.usa-step-indicator--no-labels .usa-step-indicator__segment{
+  margin-top:0;
+  margin-left:1px;
+  margin-right:1px;
+}
+.usa-step-indicator--no-labels .usa-step-indicator__segment:before{
+  display:none;
+}
+.usa-step-indicator--no-labels .usa-step-indicator__segment:last-child:after{
+  display:block;
+}
+.usa-step-indicator--no-labels .usa-step-indicator__heading{
+  margin-top:1rem;
+}
+
+.usa-step-indicator--no-labels .usa-step-indicator__segment-label{
+  display:none;
+}
+
+.usa-step-indicator--center{
+  margin-left:-1px;
+  margin-right:-1px;
+}
+.usa-step-indicator--center .usa-step-indicator__segment{
+  margin-left:1px;
+  margin-right:1px;
+}
+.usa-step-indicator--center .usa-step-indicator__segment:before{
+  left:calc(50% - (2.5rem + 0.25rem) / 2);
+}
+.usa-step-indicator--center .usa-step-indicator__segment-label{
+  padding-left:0.5rem;
+  padding-right:0.5rem;
+  text-align:center;
+}
+.usa-step-indicator--center.usa-step-indicator--no-labels .usa-step-indicator__segment:first-child:after{
+  left:0;
+}
+.usa-step-indicator--center.usa-step-indicator--no-labels .usa-step-indicator__segment:last-child:after{
+  right:0;
+}
+.usa-step-indicator--center.usa-step-indicator--counters-sm .usa-step-indicator__segment:before{
+  left:calc(50% - (1.5rem + 0.25rem) / 2);
+}
+
+.usa-summary-box{
+  font-family:Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
+  font-size:1.06rem;
+  line-height:1.5;
+  color:#1b1b1b;
+  background-color:#e7f6f8;
+  border-radius:0.25rem;
+  border:1px #99deea solid;
+  padding:1.5rem;
+  position:relative;
+}
+.usa-summary-box .usa-list:last-child{
+  margin-bottom:0;
+}
+* + .usa-summary-box{
+  margin-top:1rem;
+}
+
+.usa-summary-box__heading{
+  font-family:Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
+  font-size:1.46rem;
+  line-height:1.1;
+  margin-top:0;
+  margin-bottom:0.5rem;
+}
+
+.usa-summary-box__text{
+  margin-bottom:0;
+  margin-top:0;
+}
+
+.usa-summary-box__text:only-child{
+  margin-bottom:1px;
+  padding-top:0.25rem;
+}
+
+.usa-summary-box__link{
+  color:#005ea2;
+}
+.usa-summary-box__link:visited{
+  color:#54278f;
+}
+.usa-summary-box__link:hover, .usa-summary-box__link:active{
+  color:#1a4480;
+}
+.usa-summary-box__link[href^="#"]:visited{
+  color:#005ea2;
+}
+.usa-summary-box__link[href^="#"]:hover{
+  color:#1a4480;
+}
+
+.usa-table{
+  font-family:Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
+  font-size:1.06rem;
+  line-height:1.5;
+  border-collapse:collapse;
+  border-spacing:0;
+  color:#1b1b1b;
+  margin:1.25rem 0;
+  text-align:left;
+}
+.usa-table thead td,
+.usa-table tfoot td,
+.usa-table th{
+  background-clip:padding-box;
+  line-height:1.3;
+  background-color:#dfe1e2;
+  color:#1b1b1b;
+}
+.usa-table th,
+.usa-table td{
+  border:1px solid #1b1b1b;
+  padding:0.5rem 1rem;
+}
+.usa-table td{
+  background-color:white;
+  font-weight:normal;
+}
+.usa-table caption{
+  font-family:Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
+  font-size:1rem;
+  font-weight:700;
+  margin-bottom:0.75rem;
+  text-align:left;
+}
+.usa-table th[data-sortable]{
+  padding-right:2.5rem;
+  position:relative;
+}
+.usa-table th[data-sortable]::after{
+  border-bottom-color:transparent;
+  border-bottom-style:solid;
+  border-bottom-width:1px;
+  bottom:0;
+  content:"";
+  height:0;
+  left:0;
+  position:absolute;
+  width:100%;
+}
+.usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button, .usa-table th[data-sortable][aria-sort=none] .usa-table__header__button{
+  color:#005ea2;
+  text-decoration:underline;
+  background-color:transparent;
+  border:0;
+  border-radius:0;
+  box-shadow:none;
+  font-weight:normal;
+  justify-content:normal;
+  text-align:left;
+  margin:0;
+  padding:0;
+  width:auto;
+  height:2rem;
+  width:2rem;
+  background-position:center center;
+  background-size:1.5rem;
+  color:#71767a;
+  cursor:pointer;
+  display:inline-block;
+  margin:0;
+  position:absolute;
+  right:0.25rem;
+  text-align:center;
+  text-decoration:none;
+  top:50%;
+  transform:translate(0, -50%);
+}
+.usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button:visited, .usa-table th[data-sortable][aria-sort=none] .usa-table__header__button:visited{
+  color:#54278f;
+}
+.usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button:hover, .usa-table th[data-sortable][aria-sort=none] .usa-table__header__button:hover{
+  color:#1a4480;
+}
+.usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button:active, .usa-table th[data-sortable][aria-sort=none] .usa-table__header__button:active{
+  color:#162e51;
+}
+.usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button:focus, .usa-table th[data-sortable][aria-sort=none] .usa-table__header__button:focus{
+  outline:0.25rem solid #2491ff;
+  outline-offset:0rem;
+}
+.usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button:hover, .usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button.usa-button--hover, .usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button:disabled:hover, .usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button[aria-disabled=true]:hover, .usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button:disabled.usa-button--hover, .usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button[aria-disabled=true].usa-button--hover, .usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button:active, .usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button.usa-button--active, .usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button:disabled:active, .usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button[aria-disabled=true]:active, .usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button:disabled.usa-button--active, .usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button[aria-disabled=true].usa-button--active, .usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button:disabled:focus, .usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button[aria-disabled=true]:focus, .usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button:disabled.usa-focus, .usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button[aria-disabled=true].usa-focus, .usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button:disabled, .usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button[aria-disabled=true], .usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button.usa-button--disabled, .usa-table th[data-sortable][aria-sort=none] .usa-table__header__button:hover, .usa-table th[data-sortable][aria-sort=none] .usa-table__header__button.usa-button--hover, .usa-table th[data-sortable][aria-sort=none] .usa-table__header__button:disabled:hover, .usa-table th[data-sortable][aria-sort=none] .usa-table__header__button[aria-disabled=true]:hover, .usa-table th[data-sortable][aria-sort=none] .usa-table__header__button:disabled.usa-button--hover, .usa-table th[data-sortable][aria-sort=none] .usa-table__header__button[aria-disabled=true].usa-button--hover, .usa-table th[data-sortable][aria-sort=none] .usa-table__header__button:active, .usa-table th[data-sortable][aria-sort=none] .usa-table__header__button.usa-button--active, .usa-table th[data-sortable][aria-sort=none] .usa-table__header__button:disabled:active, .usa-table th[data-sortable][aria-sort=none] .usa-table__header__button[aria-disabled=true]:active, .usa-table th[data-sortable][aria-sort=none] .usa-table__header__button:disabled.usa-button--active, .usa-table th[data-sortable][aria-sort=none] .usa-table__header__button[aria-disabled=true].usa-button--active, .usa-table th[data-sortable][aria-sort=none] .usa-table__header__button:disabled:focus, .usa-table th[data-sortable][aria-sort=none] .usa-table__header__button[aria-disabled=true]:focus, .usa-table th[data-sortable][aria-sort=none] .usa-table__header__button:disabled.usa-focus, .usa-table th[data-sortable][aria-sort=none] .usa-table__header__button[aria-disabled=true].usa-focus, .usa-table th[data-sortable][aria-sort=none] .usa-table__header__button:disabled, .usa-table th[data-sortable][aria-sort=none] .usa-table__header__button[aria-disabled=true], .usa-table th[data-sortable][aria-sort=none] .usa-table__header__button.usa-button--disabled{
+  background-color:transparent;
+  box-shadow:none;
+  text-decoration:underline;
+}
+.usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button.usa-button--hover, .usa-table th[data-sortable][aria-sort=none] .usa-table__header__button.usa-button--hover{
+  color:#1a4480;
+}
+.usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button.usa-button--active, .usa-table th[data-sortable][aria-sort=none] .usa-table__header__button.usa-button--active{
+  color:#162e51;
+}
+.usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button:disabled, .usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button[aria-disabled=true], .usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button:disabled:hover, .usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button[aria-disabled=true]:hover, .usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button[aria-disabled=true]:focus, .usa-table th[data-sortable][aria-sort=none] .usa-table__header__button:disabled, .usa-table th[data-sortable][aria-sort=none] .usa-table__header__button[aria-disabled=true], .usa-table th[data-sortable][aria-sort=none] .usa-table__header__button:disabled:hover, .usa-table th[data-sortable][aria-sort=none] .usa-table__header__button[aria-disabled=true]:hover, .usa-table th[data-sortable][aria-sort=none] .usa-table__header__button[aria-disabled=true]:focus{
+  color:#757575;
+}
+@media (forced-colors: active){
+  .usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button:disabled, .usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button[aria-disabled=true], .usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button:disabled:hover, .usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button[aria-disabled=true]:hover, .usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button[aria-disabled=true]:focus, .usa-table th[data-sortable][aria-sort=none] .usa-table__header__button:disabled, .usa-table th[data-sortable][aria-sort=none] .usa-table__header__button[aria-disabled=true], .usa-table th[data-sortable][aria-sort=none] .usa-table__header__button:disabled:hover, .usa-table th[data-sortable][aria-sort=none] .usa-table__header__button[aria-disabled=true]:hover, .usa-table th[data-sortable][aria-sort=none] .usa-table__header__button[aria-disabled=true]:focus{
+    color:GrayText;
+  }
+}
+.usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button .usa-icon, .usa-table th[data-sortable][aria-sort=none] .usa-table__header__button .usa-icon{
+  height:1.5rem;
+  width:1.5rem;
+  vertical-align:middle;
+}
+.usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button .usa-icon > g, .usa-table th[data-sortable][aria-sort=none] .usa-table__header__button .usa-icon > g{
+  fill:transparent;
+}
+.usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button .usa-icon > g.unsorted, .usa-table th[data-sortable][aria-sort=none] .usa-table__header__button .usa-icon > g.unsorted{
+  fill:#1b1b1b;
+}
+.usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button:hover .usa-icon > g.unsorted, .usa-table th[data-sortable][aria-sort=none] .usa-table__header__button:hover .usa-icon > g.unsorted{
+  fill:black;
+}
+.usa-table th[data-sortable][aria-sort=descending], .usa-table th[data-sortable][aria-sort=ascending]{
+  background-color:#97d4ea;
+}
+.usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button{
+  color:#005ea2;
+  text-decoration:underline;
+  background-color:transparent;
+  border:0;
+  border-radius:0;
+  box-shadow:none;
+  font-weight:normal;
+  justify-content:normal;
+  text-align:left;
+  margin:0;
+  padding:0;
+  width:auto;
+  height:2rem;
+  width:2rem;
+  background-position:center center;
+  background-size:1.5rem;
+  color:#71767a;
+  cursor:pointer;
+  display:inline-block;
+  margin:0;
+  position:absolute;
+  right:0.25rem;
+  text-align:center;
+  text-decoration:none;
+  top:50%;
+  transform:translate(0, -50%);
+}
+.usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button:visited{
+  color:#54278f;
+}
+.usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button:hover{
+  color:#1a4480;
+}
+.usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button:active{
+  color:#162e51;
+}
+.usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button:focus{
+  outline:0.25rem solid #2491ff;
+  outline-offset:0rem;
+}
+.usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button:hover, .usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button.usa-button--hover, .usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button:disabled:hover, .usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button[aria-disabled=true]:hover, .usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button:disabled.usa-button--hover, .usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button[aria-disabled=true].usa-button--hover, .usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button:active, .usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button.usa-button--active, .usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button:disabled:active, .usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button[aria-disabled=true]:active, .usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button:disabled.usa-button--active, .usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button[aria-disabled=true].usa-button--active, .usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button:disabled:focus, .usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button[aria-disabled=true]:focus, .usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button:disabled.usa-focus, .usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button[aria-disabled=true].usa-focus, .usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button:disabled, .usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button[aria-disabled=true], .usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button.usa-button--disabled{
+  background-color:transparent;
+  box-shadow:none;
+  text-decoration:underline;
+}
+.usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button.usa-button--hover{
+  color:#1a4480;
+}
+.usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button.usa-button--active{
+  color:#162e51;
+}
+.usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button:disabled, .usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button[aria-disabled=true], .usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button:disabled:hover, .usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button[aria-disabled=true]:hover, .usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button[aria-disabled=true]:focus{
+  color:#757575;
+}
+@media (forced-colors: active){
+  .usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button:disabled, .usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button[aria-disabled=true], .usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button:disabled:hover, .usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button[aria-disabled=true]:hover, .usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button[aria-disabled=true]:focus{
+    color:GrayText;
+  }
+}
+.usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button .usa-icon{
+  height:1.5rem;
+  width:1.5rem;
+  vertical-align:middle;
+}
+.usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button .usa-icon > g{
+  fill:transparent;
+}
+.usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button .usa-icon > g.descending{
+  fill:#1b1b1b;
+}
+.usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button{
+  color:#005ea2;
+  text-decoration:underline;
+  background-color:transparent;
+  border:0;
+  border-radius:0;
+  box-shadow:none;
+  font-weight:normal;
+  justify-content:normal;
+  text-align:left;
+  margin:0;
+  padding:0;
+  width:auto;
+  height:2rem;
+  width:2rem;
+  background-position:center center;
+  background-size:1.5rem;
+  color:#71767a;
+  cursor:pointer;
+  display:inline-block;
+  margin:0;
+  position:absolute;
+  right:0.25rem;
+  text-align:center;
+  text-decoration:none;
+  top:50%;
+  transform:translate(0, -50%);
+}
+.usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button:visited{
+  color:#54278f;
+}
+.usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button:hover{
+  color:#1a4480;
+}
+.usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button:active{
+  color:#162e51;
+}
+.usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button:focus{
+  outline:0.25rem solid #2491ff;
+  outline-offset:0rem;
+}
+.usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button:hover, .usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button.usa-button--hover, .usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button:disabled:hover, .usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button[aria-disabled=true]:hover, .usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button:disabled.usa-button--hover, .usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button[aria-disabled=true].usa-button--hover, .usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button:active, .usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button.usa-button--active, .usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button:disabled:active, .usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button[aria-disabled=true]:active, .usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button:disabled.usa-button--active, .usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button[aria-disabled=true].usa-button--active, .usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button:disabled:focus, .usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button[aria-disabled=true]:focus, .usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button:disabled.usa-focus, .usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button[aria-disabled=true].usa-focus, .usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button:disabled, .usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button[aria-disabled=true], .usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button.usa-button--disabled{
+  background-color:transparent;
+  box-shadow:none;
+  text-decoration:underline;
+}
+.usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button.usa-button--hover{
+  color:#1a4480;
+}
+.usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button.usa-button--active{
+  color:#162e51;
+}
+.usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button:disabled, .usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button[aria-disabled=true], .usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button:disabled:hover, .usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button[aria-disabled=true]:hover, .usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button[aria-disabled=true]:focus{
+  color:#757575;
+}
+@media (forced-colors: active){
+  .usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button:disabled, .usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button[aria-disabled=true], .usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button:disabled:hover, .usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button[aria-disabled=true]:hover, .usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button[aria-disabled=true]:focus{
+    color:GrayText;
+  }
+}
+.usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button .usa-icon{
+  height:1.5rem;
+  width:1.5rem;
+  vertical-align:middle;
+}
+.usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button .usa-icon > g{
+  fill:transparent;
+}
+.usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button .usa-icon > g.ascending{
+  fill:#1b1b1b;
+}
+.usa-table thead th[aria-sort]{
+  background-color:#97d4ea;
+  color:#1b1b1b;
+}
+.usa-table td[data-sort-active],
+.usa-table th[data-sort-active]{
+  background-color:#e1f3f8;
+  color:#1b1b1b;
+}
+
+.usa-table--borderless{
+}
+.usa-table--borderless th,
+.usa-table--borderless thead td,
+.usa-table--borderless tfoot td{
+  background-color:white;
+}
+.usa-table--borderless th{
+  border-top:0;
+  color:#1b1b1b;
+}
+.usa-table--borderless th[aria-sort]{
+  color:#1b1b1b;
+}
+.usa-table--borderless th[data-sortable]:not([aria-sort]) .usa-table__header__button .usa-icon > g.unsorted{
+  fill:#1b1b1b;
+}
+.usa-table--borderless th[data-sortable]:not([aria-sort]) .usa-table__header__button:hover .usa-icon > g.unsorted{
+  fill:black;
+}
+.usa-table--borderless th,
+.usa-table--borderless td{
+  border-left:0;
+  border-right:0;
+}
+
+.usa-table--compact th,
+.usa-table--compact td{
+  padding:0.25rem 0.75rem;
+}
+
+.usa-table--striped tbody tr:nth-child(odd) td{
+  background-color:#f0f0f0;
+  color:#1b1b1b;
+}
+.usa-table--striped tbody tr:nth-child(odd) td[data-sort-active]{
+  background-color:#c3ebfa;
+  color:#1b1b1b;
+}
+
+@media all and (max-width: 29.99em){
+  .usa-table--stacked thead{
+    display:none;
+  }
+  .usa-table--stacked th{
+    background-color:white;
+  }
+  .usa-table--stacked th,
+  .usa-table--stacked td{
+    border-bottom-width:0;
+    display:block;
+    width:100%;
+  }
+  .usa-table--stacked tr{
+    border-bottom:0.25rem solid #1b1b1b;
+    border-top-width:0;
+    width:100%;
+  }
+  .usa-table--stacked tr th:first-child,
+  .usa-table--stacked tr td:first-child{
+    border-top-width:0;
+  }
+  .usa-table--stacked tr:nth-child(odd) td,
+  .usa-table--stacked tr:nth-child(odd) th{
+    background-color:inherit;
+  }
+  .usa-table--stacked tr:first-child th:first-child,
+  .usa-table--stacked tr:first-child td:first-child{
+    border-top:0.25rem solid #1b1b1b;
+  }
+  .usa-table--stacked th[data-label],
+  .usa-table--stacked td[data-label]{
+    padding-bottom:0.75rem;
+  }
+  .usa-table--stacked th[data-label]:before,
+  .usa-table--stacked td[data-label]:before{
+    content:attr(data-label);
+    display:block;
+    font-weight:700;
+    margin:-0.5rem -1rem 0rem;
+    padding:0.75rem 1rem 0.25rem;
+  }
+}
+
+@media all and (max-width: 29.99em){
+  .usa-table--stacked-header thead{
+    display:none;
+  }
+  .usa-table--stacked-header th{
+    background-color:white;
+  }
+  .usa-table--stacked-header th,
+  .usa-table--stacked-header td{
+    border-bottom-width:0;
+    display:block;
+    width:100%;
+  }
+  .usa-table--stacked-header tr{
+    border-bottom:0.25rem solid #1b1b1b;
+    border-top-width:0;
+    width:100%;
+  }
+  .usa-table--stacked-header tr th:first-child,
+  .usa-table--stacked-header tr td:first-child{
+    border-top-width:0;
+  }
+  .usa-table--stacked-header tr:nth-child(odd) td,
+  .usa-table--stacked-header tr:nth-child(odd) th{
+    background-color:inherit;
+  }
+  .usa-table--stacked-header tr:first-child th:first-child,
+  .usa-table--stacked-header tr:first-child td:first-child{
+    border-top:0.25rem solid #1b1b1b;
+  }
+  .usa-table--stacked-header th[data-label],
+  .usa-table--stacked-header td[data-label]{
+    padding-bottom:0.75rem;
+  }
+  .usa-table--stacked-header th[data-label]:before,
+  .usa-table--stacked-header td[data-label]:before{
+    content:attr(data-label);
+    display:block;
+    font-weight:700;
+    margin:-0.5rem -1rem 0rem;
+    padding:0.75rem 1rem 0.25rem;
+  }
+  .usa-table--stacked-header tr td:first-child,
+  .usa-table--stacked-header tr th:first-child{
+    font-family:Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
+    font-size:1.06rem;
+    line-height:1.1;
+    background-color:#dfe1e2;
+    color:#1b1b1b;
+    font-weight:700;
+    padding:0.75rem 1rem;
+  }
+  .usa-table--stacked-header tr td:first-child:before,
+  .usa-table--stacked-header tr th:first-child:before{
+    display:none;
+  }
+}
+
+.width-mobile .usa-table--stacked thead{
+  display:none;
+}
+.width-mobile .usa-table--stacked th{
+  background-color:white;
+}
+.width-mobile .usa-table--stacked th,
+.width-mobile .usa-table--stacked td{
+  border-bottom-width:0;
+  display:block;
+  width:100%;
+}
+.width-mobile .usa-table--stacked tr{
+  border-bottom:0.25rem solid #1b1b1b;
+  border-top-width:0;
+  width:100%;
+}
+.width-mobile .usa-table--stacked tr th:first-child,
+.width-mobile .usa-table--stacked tr td:first-child{
+  border-top-width:0;
+}
+.width-mobile .usa-table--stacked tr:nth-child(odd) td,
+.width-mobile .usa-table--stacked tr:nth-child(odd) th{
+  background-color:inherit;
+}
+.width-mobile .usa-table--stacked tr:first-child th:first-child,
+.width-mobile .usa-table--stacked tr:first-child td:first-child{
+  border-top:0.25rem solid #1b1b1b;
+}
+.width-mobile .usa-table--stacked th[data-label],
+.width-mobile .usa-table--stacked td[data-label]{
+  padding-bottom:0.75rem;
+}
+.width-mobile .usa-table--stacked th[data-label]:before,
+.width-mobile .usa-table--stacked td[data-label]:before{
+  content:attr(data-label);
+  display:block;
+  font-weight:700;
+  margin:-0.5rem -1rem 0rem;
+  padding:0.75rem 1rem 0.25rem;
+}
+.width-mobile .usa-table--stacked-header thead{
+  display:none;
+}
+.width-mobile .usa-table--stacked-header th{
+  background-color:white;
+}
+.width-mobile .usa-table--stacked-header th,
+.width-mobile .usa-table--stacked-header td{
+  border-bottom-width:0;
+  display:block;
+  width:100%;
+}
+.width-mobile .usa-table--stacked-header tr{
+  border-bottom:0.25rem solid #1b1b1b;
+  border-top-width:0;
+  width:100%;
+}
+.width-mobile .usa-table--stacked-header tr th:first-child,
+.width-mobile .usa-table--stacked-header tr td:first-child{
+  border-top-width:0;
+}
+.width-mobile .usa-table--stacked-header tr:nth-child(odd) td,
+.width-mobile .usa-table--stacked-header tr:nth-child(odd) th{
+  background-color:inherit;
+}
+.width-mobile .usa-table--stacked-header tr:first-child th:first-child,
+.width-mobile .usa-table--stacked-header tr:first-child td:first-child{
+  border-top:0.25rem solid #1b1b1b;
+}
+.width-mobile .usa-table--stacked-header th[data-label],
+.width-mobile .usa-table--stacked-header td[data-label]{
+  padding-bottom:0.75rem;
+}
+.width-mobile .usa-table--stacked-header th[data-label]:before,
+.width-mobile .usa-table--stacked-header td[data-label]:before{
+  content:attr(data-label);
+  display:block;
+  font-weight:700;
+  margin:-0.5rem -1rem 0rem;
+  padding:0.75rem 1rem 0.25rem;
+}
+.width-mobile .usa-table--stacked-header tr td:first-child,
+.width-mobile .usa-table--stacked-header tr th:first-child{
+  font-family:Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
+  font-size:1.06rem;
+  line-height:1.1;
+  background-color:#dfe1e2;
+  color:#1b1b1b;
+  font-weight:700;
+  padding:0.75rem 1rem;
+}
+.width-mobile .usa-table--stacked-header tr td:first-child:before,
+.width-mobile .usa-table--stacked-header tr th:first-child:before{
+  display:none;
+}
+
+.usa-table--sticky-header{
+  border:1px solid #1b1b1b;
+  border-collapse:separate;
+}
+.usa-table--sticky-header td,
+.usa-table--sticky-header th{
+  border-left:none;
+  border-top:none;
+}
+.usa-table--sticky-header td:last-child,
+.usa-table--sticky-header th:last-child{
+  border-right:none;
+}
+.usa-table--sticky-header tfoot td,
+.usa-table--sticky-header tfoot th{
+  border-top:1px solid #1b1b1b;
+  border-bottom:none;
+}
+.usa-table--sticky-header tbody tr:last-child td,
+.usa-table--sticky-header tbody tr:last-child th{
+  border-bottom:none;
+}
+.usa-table--sticky-header thead{
+  position:sticky;
+  top:-1px;
+}
+.usa-table--sticky-header.usa-table--borderless{
+  border:none;
+}
+.usa-table--sticky-header.usa-table--borderless th{
+  background-color:white;
+}
+.usa-table--sticky-header.usa-table--borderless td,
+.usa-table--sticky-header.usa-table--borderless th{
+  border-right:none;
+}
+
+.usa-table-container--scrollable{
+  margin:1.25rem 0;
+  overflow-y:hidden;
+}
+.usa-table-container--scrollable .usa-table{
+  margin:0;
+}
+.usa-table-container--scrollable td{
+  white-space:nowrap;
+}
+
+.usa-tag{
+  font-family:Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
+  font-size:0.93rem;
+  color:white;
+  text-transform:uppercase;
+  background-color:#565c65;
+  border-radius:2px;
+  margin-right:0.25rem;
+  padding:1px 0.5rem;
+}
+.usa-tag:only-of-type{
+  margin-right:0;
+}
+
+.usa-tag--big{
+  padding-left:0.5rem;
+  padding-right:0.5rem;
+  font-family:Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
+  font-size:1.06rem;
+}
+.usa-tooltip{
+  display:inline-block;
+  position:relative;
+}
+
+.usa-tooltip__trigger{
+  cursor:pointer;
+}
+.usa-tooltip__trigger > svg{
+  display:block;
+  pointer-events:none;
+}
+
+.usa-tooltip__body,
+.usa-tooltip__body--top{
+  transition:opacity 0.08s ease-in-out;
+  background-color:#1b1b1b;
+  border-radius:0.25rem;
+  color:#f0f0f0;
+  display:none;
+  font-size:1rem;
+  opacity:0;
+  padding:0.5rem;
+  width:auto;
+  white-space:pre;
+  z-index:100000;
+  position:absolute;
+}
+.usa-tooltip__body::after,
+.usa-tooltip__body--top::after{
+  content:"";
+  display:block;
+  width:0;
+  height:0;
+  border-left:5px solid transparent;
+  border-right:5px solid transparent;
+  border-top:5px solid #1b1b1b;
+  position:absolute;
+  bottom:-5px;
+  left:50%;
+  margin-left:-5px;
+}
+.usa-tooltip__body::before,
+.usa-tooltip__body--top::before{
+  content:"";
+  display:block;
+  position:absolute;
+}
+
+.usa-tooltip__body--wrap{
+  width:100%;
+  white-space:normal;
+  text-align:center;
+  min-width:50vw;
+}
+
+.usa-tooltip__body.is-set{
+  display:block;
+}
+
+.usa-tooltip__body.is-visible{
+  opacity:1;
+}
+
+.usa-tooltip__body--top::before{
+  top:100%;
+  height:5px;
+  left:0;
+  right:0;
+}
+
+.usa-tooltip__body--bottom::before{
+  bottom:100%;
+  height:5px;
+  left:0;
+  right:0;
+}
+.usa-tooltip__body--bottom::after{
+  border-left:5px solid transparent;
+  border-right:5px solid transparent;
+  border-bottom:5px solid #1b1b1b;
+  border-top:0;
+  bottom:auto;
+  top:-5px;
+}
+
+.usa-tooltip__body--right::before{
+  right:100%;
+  bottom:0;
+  top:0;
+  width:5px;
+}
+.usa-tooltip__body--right::after{
+  border-top:5px solid transparent;
+  border-bottom:5px solid transparent;
+  border-right:5px solid #1b1b1b;
+  border-left:0;
+  right:auto;
+  top:50%;
+  bottom:0;
+  left:-5px;
+  margin:-5px 0 0 0;
+}
+
+.usa-tooltip__body--left::before{
+  left:100%;
+  bottom:0;
+  top:0;
+  width:5px;
+}
+.usa-tooltip__body--left::after{
+  border-top:5px solid transparent;
+  border-bottom:5px solid transparent;
+  border-left:5px solid #1b1b1b;
+  border-right:0;
+  right:-5px;
+  top:50%;
+  bottom:0;
+  left:auto;
+  margin:-5px 0 0 0;
+}
+
+.usa-character-count__status{
+  display:inline-block;
+  padding-top:0.25rem;
+}
+.usa-character-count__status.usa-character-count__status--invalid{
+  color:#b50909;
+  font-weight:700;
+}
+
+.usa-input:disabled, .usa-input[aria-disabled=true]{
+  color:#454545;
+  background-color:#c9c9c9;
+  cursor:not-allowed;
+  opacity:1;
+  -webkit-text-fill-color:#454545;
+}
+.usa-input:disabled:hover, .usa-input:disabled:active, .usa-input:disabled:focus, .usa-input:disabled.usa-focus, .usa-input[aria-disabled=true]:hover, .usa-input[aria-disabled=true]:active, .usa-input[aria-disabled=true]:focus, .usa-input[aria-disabled=true].usa-focus{
+  color:#454545;
+  background-color:#c9c9c9;
+}
+@media (forced-colors: active){
+  .usa-input:disabled, .usa-input[aria-disabled=true]{
+    border:0;
+    color:GrayText;
+  }
+  .usa-input:disabled:hover, .usa-input:disabled:active, .usa-input:disabled:focus, .usa-input:disabled.usa-focus, .usa-input[aria-disabled=true]:hover, .usa-input[aria-disabled=true]:active, .usa-input[aria-disabled=true]:focus, .usa-input[aria-disabled=true].usa-focus{
+    color:GrayText;
+  }
+}
+@media (forced-colors: active){
+  .usa-input:disabled, .usa-input[aria-disabled=true]{
+    border:2px solid GrayText;
+  }
+}
+
+.usa-input--2xs,
+.usa-form .usa-input--2xs{
+  max-width:5ex;
+}
+
+.usa-input--xs,
+.usa-form .usa-input--xs{
+  max-width:9ex;
+}
+
+.usa-input--sm,
+.usa-form .usa-input--sm{
+  max-width:13ex;
+}
+
+.usa-input--small,
+.usa-form .usa-input--small{
+  max-width:13ex;
+}
+
+.usa-input--md,
+.usa-form .usa-input--md{
+  max-width:20ex;
+}
+
+.usa-input--medium,
+.usa-form .usa-input--medium{
+  max-width:20ex;
+}
+
+.usa-input--lg,
+.usa-form .usa-input--lg{
+  max-width:30ex;
+}
+
+.usa-input--xl,
+.usa-form .usa-input--xl{
+  max-width:40ex;
+}
+
+.usa-input--2xl,
+.usa-form .usa-input--2xl{
+  max-width:50ex;
+}
+
+.usa-input--error{
+  border-width:0.25rem;
+  border-color:#b50909;
+  border-style:solid;
+  padding-top:calc(0.5rem - 0.25rem);
+  padding-bottom:calc(0.5rem - 0.25rem);
+}
+
+.usa-input--success{
+  border-width:0.25rem;
+  border-color:#00a91c;
+  border-style:solid;
+  padding-top:calc(0.5rem - 0.25rem);
+  padding-bottom:calc(0.5rem - 0.25rem);
+}
+
+.usa-fieldset{
+  border:none;
+  margin:0;
+  padding:0;
+}
+
+.usa-legend{
+  font-family:Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
+  font-size:1.06rem;
+  line-height:1.3;
+  display:block;
+  font-weight:normal;
+  margin-top:1.5rem;
+  max-width:30rem;
+}
+
+.usa-legend--large{
+  font-size:2.13rem;
+  font-weight:700;
+  margin-top:1rem;
+}
+
+.usa-input-list{
+  margin-bottom:0;
+  margin-top:0;
+  list-style-type:none;
+  padding-left:0;
+}
+.usa-input-list li{
+  line-height:1.3;
+}
+
+.usa-prose .usa-input-list{
+  margin-bottom:0;
+  margin-top:0;
+  list-style-type:none;
+  padding-left:0;
+}
+.usa-prose .usa-input-list li{
+  line-height:1.3;
+}
+
+.usa-checkbox{
+  background:white;
+}
+
+.usa-checkbox__label{
+  color:#1b1b1b;
+}
+.usa-checkbox__label::before{
+  background:white;
+  box-shadow:0 0 0 2px #1b1b1b;
+}
+@media (forced-colors: active){
+  .usa-checkbox__label::before{
+    outline:2px solid transparent;
+    outline-offset:2px;
+  }
+}
+
+.usa-checkbox__input:checked + [class*=__label]::before{
+  background-color:#005ea2;
+  box-shadow:0 0 0 2px #005ea2;
+}
+.usa-checkbox__input:disabled + [class*=__label], .usa-checkbox__input[aria-disabled=true] + [class*=__label]{
+  color:#757575;
+  cursor:not-allowed;
+}
+@media (forced-colors: active){
+  .usa-checkbox__input:disabled + [class*=__label], .usa-checkbox__input[aria-disabled=true] + [class*=__label]{
+    color:GrayText;
+  }
+}
+.usa-checkbox__input:disabled + [class*=__label]::before, .usa-checkbox__input[aria-disabled=true] + [class*=__label]::before{
+  background-color:white;
+  box-shadow:0 0 0 2px #757575;
+}
+.usa-checkbox__input--tile + [class*=__label]{
+  background-color:white;
+  border:2px solid #c9c9c9;
+  color:#1b1b1b;
+}
+.usa-checkbox__input--tile:checked + [class*=__label]{
+  background-color:rgba(0, 94, 162, 0.1);
+  border-color:#005ea2;
+}
+@media (forced-colors: active){
+  .usa-checkbox__input--tile:checked + [class*=__label]{
+    border:ButtonText solid 0.25rem;
+  }
+}
+.usa-checkbox__input--tile:disabled + [class*=__label], .usa-checkbox__input--tile[aria-disabled=true] + [class*=__label]{
+  border-color:#e6e6e6;
+}
+.usa-checkbox__input--tile:disabled:checked + [class*=__label], .usa-checkbox__input--tile:disabled:indeterminate + [class*=__label], .usa-checkbox__input--tile:disabled[data-indeterminate] + [class*=__label], .usa-checkbox__input--tile[aria-disabled=true]:checked + [class*=__label], .usa-checkbox__input--tile[aria-disabled=true]:indeterminate + [class*=__label], .usa-checkbox__input--tile[aria-disabled=true][data-indeterminate] + [class*=__label]{
+  background-color:white;
+}
+
+.usa-checkbox__input:indeterminate + [class*=__label]::before, .usa-checkbox__input[data-indeterminate] + [class*=__label]::before{
+  background-image:url("../img/checkbox-indeterminate.svg"), linear-gradient(transparent, transparent);
+  background-repeat:no-repeat;
+  background-color:#005ea2;
+  box-shadow:0 0 0 2px #005ea2;
+  background-position:center center;
+  background-size:0.75rem auto;
+}
+@media (forced-colors: active){
+  .usa-checkbox__input:indeterminate + [class*=__label]::before, .usa-checkbox__input[data-indeterminate] + [class*=__label]::before{
+    background-image:url("../img/checkbox-indeterminate-alt.svg"), linear-gradient(transparent, transparent);
+    background-repeat:no-repeat;
+    background-color:SelectedItem;
+  }
+}
+.usa-checkbox__input:indeterminate:disabled + [class*=__label]::before, .usa-checkbox__input:indeterminate[aria-disabled=true] + [class*=__label]::before, .usa-checkbox__input[data-indeterminate]:disabled + [class*=__label]::before, .usa-checkbox__input[data-indeterminate][aria-disabled=true] + [class*=__label]::before{
+  box-shadow:0 0 0 2px #757575;
+}
+.usa-checkbox__input:indeterminate:disabled + [class*=__label], .usa-checkbox__input:indeterminate[aria-disabled=true] + [class*=__label], .usa-checkbox__input[data-indeterminate]:disabled + [class*=__label], .usa-checkbox__input[data-indeterminate][aria-disabled=true] + [class*=__label]{
+  border-color:#e6e6e6;
+}
+.usa-checkbox__input--tile:indeterminate + [class*=__label], .usa-checkbox__input--tile[data-indeterminate] + [class*=__label]{
+  background-color:rgba(0, 94, 162, 0.1);
+  border-color:#005ea2;
+}
+@media (forced-colors: active){
+  .usa-checkbox__input--tile:indeterminate + [class*=__label], .usa-checkbox__input--tile[data-indeterminate] + [class*=__label]{
+    border:ButtonText solid 0.25rem;
+  }
+}
+.usa-checkbox__input:checked + [class*=__label]::before, .usa-checkbox__input:checked:disabled + [class*=__label]::before, .usa-checkbox__input:checked[aria-disabled=true] + [class*=__label]::before{
+  background-image:url("../img/correct8.svg"), linear-gradient(transparent, transparent);
+  background-repeat:no-repeat;
+}
+@media (forced-colors: active){
+  .usa-checkbox__input:checked + [class*=__label]::before, .usa-checkbox__input:checked:disabled + [class*=__label]::before, .usa-checkbox__input:checked[aria-disabled=true] + [class*=__label]::before{
+    background-image:url("../img/correct8-alt.svg"), linear-gradient(transparent, transparent);
+    background-repeat:no-repeat;
+  }
+}
+.usa-checkbox__input:checked:disabled + [class*=__label]::before, .usa-checkbox__input:checked[aria-disabled=true] + [class*=__label]::before, .usa-checkbox__input:indeterminate:disabled + [class*=__label]::before, .usa-checkbox__input:indeterminate[aria-disabled=true] + [class*=__label]::before, .usa-checkbox__input[data-indeterminate]:disabled + [class*=__label]::before, .usa-checkbox__input[data-indeterminate][aria-disabled=true] + [class*=__label]::before{
+  background-color:#757575;
+}
+@media (forced-colors: active){
+  .usa-checkbox__input:checked:disabled + [class*=__label]::before, .usa-checkbox__input:checked[aria-disabled=true] + [class*=__label]::before, .usa-checkbox__input:indeterminate:disabled + [class*=__label]::before, .usa-checkbox__input:indeterminate[aria-disabled=true] + [class*=__label]::before, .usa-checkbox__input[data-indeterminate]:disabled + [class*=__label]::before, .usa-checkbox__input[data-indeterminate][aria-disabled=true] + [class*=__label]::before{
+    background-color:GrayText;
+  }
+}
+
+.usa-checkbox__input{
+  position:absolute;
+  left:-999em;
+  right:auto;
+}
+.usa-checkbox__input:focus + [class*=__label]::before{
+  outline:0.25rem solid #2491ff;
+  outline-offset:0.25rem;
+}
+.usa-checkbox__input--tile + [class*=__label]{
+  border-radius:0.25rem;
+  margin-top:0.5rem;
+  padding:0.75rem 1rem 0.75rem 2.5rem;
+}
+.usa-checkbox__input--tile + [class*=__label]::before{
+  left:0.5rem;
+}
+
+.usa-checkbox__input:checked + [class*=__label]::before{
+  background-position:center center;
+  background-size:0.75rem auto;
+}
+@media print{
+  .usa-checkbox__input:checked + [class*=__label]::before{
+    background-image:none;
+    background-color:white;
+    content:"✔";
+    text-align:center;
+  }
+}
+@media (forced-colors: active){
+  .usa-checkbox__input:checked + [class*=__label]::before{
+    background-color:SelectedItem;
+  }
+}
+
+.usa-checkbox__label{
+  cursor:pointer;
+  display:inherit;
+  font-weight:normal;
+  margin-top:0.75rem;
+  padding-left:2rem;
+  position:relative;
+}
+.usa-checkbox__label::before{
+  content:" ";
+  display:block;
+  left:0;
+  margin-left:2px;
+  margin-top:0.064rem;
+  position:absolute;
+}
+
+.usa-checkbox__label::before{
+  height:1.25rem;
+  width:1.25rem;
+  border-radius:2px;
+}
+
+.usa-checkbox__label-description{
+  display:block;
+  font-size:0.93rem;
+  margin-top:0.5rem;
+}
+.usa-select{
+  background-image:url("../img/usa-icons/unfold_more.svg"), linear-gradient(transparent, transparent);
+  background-repeat:no-repeat;
+  -webkit-appearance:none;
+     -moz-appearance:none;
+          appearance:none;
+  background-color:white;
+  background-position:right 0.5rem center;
+  background-size:1.25rem;
+  padding-right:2rem;
+}
+.usa-select::-ms-expand{
+  display:none;
+}
+.usa-select:-webkit-autofill{
+  -webkit-appearance:menulist;
+          appearance:menulist;
+}
+.usa-select:-moz-focusring{
+  color:transparent;
+  text-shadow:0 0 0 black;
+}
+.usa-select[multiple]{
+  height:auto;
+  background-image:none;
+  padding-right:0;
+}
+.usa-select option{
+  overflow:hidden;
+  text-overflow:ellipsis;
+}
+.usa-select:disabled, .usa-select[aria-disabled=true]{
+  color:#454545;
+  background-color:#c9c9c9;
+  cursor:not-allowed;
+  opacity:1;
+}
+.usa-select:disabled:hover, .usa-select:disabled:active, .usa-select:disabled:focus, .usa-select:disabled.usa-focus, .usa-select[aria-disabled=true]:hover, .usa-select[aria-disabled=true]:active, .usa-select[aria-disabled=true]:focus, .usa-select[aria-disabled=true].usa-focus{
+  color:#454545;
+  background-color:#c9c9c9;
+}
+@media (forced-colors: active){
+  .usa-select:disabled, .usa-select[aria-disabled=true]{
+    border:0;
+    color:GrayText;
+  }
+  .usa-select:disabled:hover, .usa-select:disabled:active, .usa-select:disabled:focus, .usa-select:disabled.usa-focus, .usa-select[aria-disabled=true]:hover, .usa-select[aria-disabled=true]:active, .usa-select[aria-disabled=true]:focus, .usa-select[aria-disabled=true].usa-focus{
+    color:GrayText;
+  }
+}
+@media (forced-colors: active){
+  .usa-select:disabled, .usa-select[aria-disabled=true]{
+    border:2px solid GrayText;
+  }
+}
+@media (forced-colors: active){
+  .usa-select{
+    -webkit-appearance:listbox;
+       -moz-appearance:listbox;
+            appearance:listbox;
+    background-image:none;
+    padding-right:0;
+  }
+}
+
+.usa-combo-box{
+  max-width:30rem;
+  position:relative;
+}
+
+.usa-combo-box--pristine .usa-combo-box__input{
+  padding-right:calc(5em + 4px);
+}
+.usa-combo-box--pristine .usa-combo-box__input::-ms-clear{
+  display:none;
+}
+.usa-combo-box--pristine .usa-combo-box__clear-input{
+  display:block;
+}
+@media (forced-colors: active){
+  .usa-combo-box--pristine .usa-combo-box__clear-input{
+    background-image:url("../img/usa-icons/close.svg");
+    background-repeat:no-repeat;
+    background-position:center center;
+    background-size:1rem 1rem;
+    display:inline-block;
+    height:1rem;
+    width:1rem;
+    height:1.5rem;
+    width:auto;
+    top:0.5rem;
+  }
+  @supports ((-webkit-mask: url("")) or (mask: url(""))){
+    .usa-combo-box--pristine .usa-combo-box__clear-input{
+      background:none;
+      background-color:ButtonText;
+      -webkit-mask-image:url("../img/usa-icons/close.svg"), linear-gradient(transparent, transparent);
+              mask-image:url("../img/usa-icons/close.svg"), linear-gradient(transparent, transparent);
+      -webkit-mask-position:center center;
+              mask-position:center center;
+      -webkit-mask-repeat:no-repeat;
+              mask-repeat:no-repeat;
+      -webkit-mask-size:1rem 1rem;
+              mask-size:1rem 1rem;
+    }
+  }
+}
+
+.usa-combo-box__input{
+  -webkit-appearance:none;
+     -moz-appearance:none;
+          appearance:none;
+  margin-bottom:0;
+  max-width:none;
+  padding-right:calc(2.5em + 3px);
+}
+.usa-combo-box__input:disabled, .usa-combo-box__input[aria-disabled=true]{
+  color:#454545;
+  background-color:#c9c9c9;
+  cursor:not-allowed;
+  opacity:1;
+  -webkit-text-fill-color:#454545;
+}
+.usa-combo-box__input:disabled:hover, .usa-combo-box__input:disabled:active, .usa-combo-box__input:disabled:focus, .usa-combo-box__input:disabled.usa-focus, .usa-combo-box__input[aria-disabled=true]:hover, .usa-combo-box__input[aria-disabled=true]:active, .usa-combo-box__input[aria-disabled=true]:focus, .usa-combo-box__input[aria-disabled=true].usa-focus{
+  color:#454545;
+  background-color:#c9c9c9;
+}
+@media (forced-colors: active){
+  .usa-combo-box__input:disabled, .usa-combo-box__input[aria-disabled=true]{
+    border:0;
+    color:GrayText;
+  }
+  .usa-combo-box__input:disabled:hover, .usa-combo-box__input:disabled:active, .usa-combo-box__input:disabled:focus, .usa-combo-box__input:disabled.usa-focus, .usa-combo-box__input[aria-disabled=true]:hover, .usa-combo-box__input[aria-disabled=true]:active, .usa-combo-box__input[aria-disabled=true]:focus, .usa-combo-box__input[aria-disabled=true].usa-focus{
+    color:GrayText;
+  }
+}
+@media (forced-colors: active){
+  .usa-combo-box__input:disabled, .usa-combo-box__input[aria-disabled=true]{
+    border:2px solid GrayText;
+  }
+}
+.usa-combo-box__input:disabled::-moz-placeholder, .usa-combo-box__input[aria-disabled=true]::-moz-placeholder{
+  opacity:1;
+}
+.usa-combo-box__input:disabled::placeholder, .usa-combo-box__input[aria-disabled=true]::placeholder{
+  opacity:1;
+}
+.usa-combo-box__input:disabled ~ .usa-combo-box__input-button-separator, .usa-combo-box__input[aria-disabled=true] ~ .usa-combo-box__input-button-separator{
+  background-color:#454545;
+  cursor:not-allowed;
+}
+
+button.usa-combo-box__toggle-list:focus,
+button.usa-combo-box__clear-input:focus{
+  outline-offset:-4px;
+}
+button.usa-combo-box__toggle-list:disabled, button.usa-combo-box__toggle-list[aria-disabled=true],
+button.usa-combo-box__clear-input:disabled,
+button.usa-combo-box__clear-input[aria-disabled=true]{
+  cursor:not-allowed;
+}
+.usa-combo-box__toggle-list__wrapper:focus,
+.usa-combo-box__clear-input__wrapper:focus{
+  outline:0;
+}
+.usa-combo-box__toggle-list,
+.usa-combo-box__clear-input{
+  background-color:transparent;
+  background-position:center;
+  background-size:auto 1.5rem;
+  border:0;
+  bottom:1px;
+  cursor:pointer;
+  margin-bottom:0;
+  opacity:0.6;
+  padding-right:2rem;
+  position:absolute;
+  top:1px;
+  z-index:100;
+}
+
+.usa-combo-box__clear-input{
+  background-image:url("../img/usa-icons/close.svg"), linear-gradient(transparent, transparent);
+  background-repeat:no-repeat;
+  display:none;
+  right:calc(2.5em + 3px);
+}
+
+.usa-combo-box__toggle-list{
+  background-image:url("../img/usa-icons/expand_more.svg"), linear-gradient(transparent, transparent);
+  background-repeat:no-repeat;
+  background-size:auto 2rem;
+  right:1px;
+}
+@media (forced-colors: active){
+  .usa-combo-box__toggle-list{
+    background-image:url("../img/usa-icons/expand_more.svg");
+    background-repeat:no-repeat;
+    background-position:center center;
+    background-size:1rem 1rem;
+    display:inline-block;
+    height:1rem;
+    width:1rem;
+    height:auto;
+    width:auto;
+  }
+  @supports ((-webkit-mask: url("")) or (mask: url(""))){
+    .usa-combo-box__toggle-list{
+      background:none;
+      background-color:ButtonText;
+      -webkit-mask-image:url("../img/usa-icons/expand_more.svg"), linear-gradient(transparent, transparent);
+              mask-image:url("../img/usa-icons/expand_more.svg"), linear-gradient(transparent, transparent);
+      -webkit-mask-position:center center;
+              mask-position:center center;
+      -webkit-mask-repeat:no-repeat;
+              mask-repeat:no-repeat;
+      -webkit-mask-size:1rem 1rem;
+              mask-size:1rem 1rem;
+    }
+  }
+  .usa-combo-box__toggle-list:disabled, .usa-combo-box__toggle-list[aria-disabled=true]{
+    background-color:GrayText;
+  }
+}
+
+.usa-combo-box__input-button-separator{
+  background-color:#c6cace;
+  position:absolute;
+  top:1px;
+  height:calc(100% - 1rem);
+  margin-bottom:0.5rem;
+  margin-top:0.5rem;
+  width:1px;
+  right:calc(2.5em + 2px);
+  box-sizing:border-box;
+  z-index:200;
+}
+@media (forced-colors: active){
+  .usa-combo-box__input-button-separator{
+    background-color:ButtonText;
+  }
+}
+
+.usa-combo-box__list{
+  border-width:1px;
+  border-color:#565c65;
+  border-style:solid;
+  background-color:white;
+  border-radius:0;
+  border-top:0;
+  margin:0;
+  max-height:12.1em;
+  overflow-x:hidden;
+  overflow-y:scroll;
+  padding:0;
+  position:absolute;
+  width:100%;
+  z-index:300;
+}
+.usa-combo-box__list:focus{
+  outline:0;
+}
+
+.usa-combo-box__list-option{
+  border-bottom:1px solid #dfe1e2;
+  cursor:pointer;
+  display:block;
+  padding:0.5rem;
+}
+.usa-combo-box__list-option--focused{
+  outline:2px solid #162e51;
+  outline-offset:-2px;
+  position:relative;
+  z-index:100;
+}
+.usa-combo-box__list-option--focused:focus{
+  outline-offset:-4px;
+}
+.usa-combo-box__list-option--selected{
+  background-color:#005ea2;
+  border-color:#005ea2;
+  color:white;
+}
+
+.usa-combo-box__list-option--no-results{
+  cursor:not-allowed;
+  display:block;
+  padding:0.5rem;
+}
+
+.usa-date-picker__wrapper{
+  display:none;
+  position:relative;
+  max-width:30rem;
+}
+.usa-date-picker__wrapper:focus{
+  outline:0;
+}
+
+.usa-date-picker__external-input[aria-disabled=true] + .usa-date-picker__button, .usa-date-picker__calendar__year:disabled, .usa-date-picker__calendar__previous-year-chunk:disabled,
+.usa-date-picker__calendar__next-year-chunk:disabled, .usa-date-picker__calendar__month:disabled, .usa-date-picker__calendar__year-selection:disabled,
+.usa-date-picker__calendar__month-selection:disabled, .usa-date-picker__calendar__date:disabled, .usa-date-picker__calendar__previous-year:disabled,
+.usa-date-picker__calendar__previous-month:disabled,
+.usa-date-picker__calendar__next-year:disabled,
+.usa-date-picker__calendar__next-month:disabled, .usa-date-picker__button:disabled, [aria-disabled=true].usa-date-picker__calendar__year, [aria-disabled=true].usa-date-picker__calendar__previous-year-chunk,
+[aria-disabled=true].usa-date-picker__calendar__next-year-chunk, [aria-disabled=true].usa-date-picker__calendar__month, [aria-disabled=true].usa-date-picker__calendar__year-selection,
+[aria-disabled=true].usa-date-picker__calendar__month-selection, [aria-disabled=true].usa-date-picker__calendar__date, [aria-disabled=true].usa-date-picker__calendar__previous-year,
+[aria-disabled=true].usa-date-picker__calendar__previous-month,
+[aria-disabled=true].usa-date-picker__calendar__next-year,
+[aria-disabled=true].usa-date-picker__calendar__next-month, [aria-disabled=true].usa-date-picker__button{
+  cursor:not-allowed;
+  opacity:0.6;
+}
+.usa-date-picker__external-input[aria-disabled=true] + .usa-date-picker__button:hover, .usa-date-picker__calendar__year:hover:disabled, .usa-date-picker__calendar__previous-year-chunk:hover:disabled,
+.usa-date-picker__calendar__next-year-chunk:hover:disabled, .usa-date-picker__calendar__month:hover:disabled, .usa-date-picker__calendar__year-selection:hover:disabled,
+.usa-date-picker__calendar__month-selection:hover:disabled, .usa-date-picker__calendar__date:hover:disabled, .usa-date-picker__calendar__previous-year:hover:disabled,
+.usa-date-picker__calendar__previous-month:hover:disabled,
+.usa-date-picker__calendar__next-year:hover:disabled,
+.usa-date-picker__calendar__next-month:hover:disabled, .usa-date-picker__button:hover:disabled, [aria-disabled=true].usa-date-picker__calendar__year:hover, [aria-disabled=true].usa-date-picker__calendar__previous-year-chunk:hover,
+[aria-disabled=true].usa-date-picker__calendar__next-year-chunk:hover, [aria-disabled=true].usa-date-picker__calendar__month:hover, [aria-disabled=true].usa-date-picker__calendar__year-selection:hover,
+[aria-disabled=true].usa-date-picker__calendar__month-selection:hover, [aria-disabled=true].usa-date-picker__calendar__date:hover, [aria-disabled=true].usa-date-picker__calendar__previous-year:hover,
+[aria-disabled=true].usa-date-picker__calendar__previous-month:hover,
+[aria-disabled=true].usa-date-picker__calendar__next-year:hover,
+[aria-disabled=true].usa-date-picker__calendar__next-month:hover, [aria-disabled=true].usa-date-picker__button:hover{
+  background-color:initial;
+}
+@media (forced-colors: active){
+  .usa-date-picker__external-input[aria-disabled=true] + .usa-date-picker__button, .usa-date-picker__calendar__year:disabled, .usa-date-picker__calendar__previous-year-chunk:disabled,
+  .usa-date-picker__calendar__next-year-chunk:disabled, .usa-date-picker__calendar__month:disabled, .usa-date-picker__calendar__year-selection:disabled,
+  .usa-date-picker__calendar__month-selection:disabled, .usa-date-picker__calendar__date:disabled, .usa-date-picker__calendar__previous-year:disabled,
+  .usa-date-picker__calendar__previous-month:disabled,
+  .usa-date-picker__calendar__next-year:disabled,
+  .usa-date-picker__calendar__next-month:disabled, .usa-date-picker__button:disabled, [aria-disabled=true].usa-date-picker__calendar__year, [aria-disabled=true].usa-date-picker__calendar__previous-year-chunk,
+  [aria-disabled=true].usa-date-picker__calendar__next-year-chunk, [aria-disabled=true].usa-date-picker__calendar__month, [aria-disabled=true].usa-date-picker__calendar__year-selection,
+  [aria-disabled=true].usa-date-picker__calendar__month-selection, [aria-disabled=true].usa-date-picker__calendar__date, [aria-disabled=true].usa-date-picker__calendar__previous-year,
+  [aria-disabled=true].usa-date-picker__calendar__previous-month,
+  [aria-disabled=true].usa-date-picker__calendar__next-year,
+  [aria-disabled=true].usa-date-picker__calendar__next-month, [aria-disabled=true].usa-date-picker__button{
+    background-color:GrayText;
+  }
+  .usa-date-picker__external-input[aria-disabled=true] + .usa-date-picker__button:hover, .usa-date-picker__calendar__year:hover:disabled, .usa-date-picker__calendar__previous-year-chunk:hover:disabled,
+  .usa-date-picker__calendar__next-year-chunk:hover:disabled, .usa-date-picker__calendar__month:hover:disabled, .usa-date-picker__calendar__year-selection:hover:disabled,
+  .usa-date-picker__calendar__month-selection:hover:disabled, .usa-date-picker__calendar__date:hover:disabled, .usa-date-picker__calendar__previous-year:hover:disabled,
+  .usa-date-picker__calendar__previous-month:hover:disabled,
+  .usa-date-picker__calendar__next-year:hover:disabled,
+  .usa-date-picker__calendar__next-month:hover:disabled, .usa-date-picker__button:hover:disabled, [aria-disabled=true].usa-date-picker__calendar__year:hover, [aria-disabled=true].usa-date-picker__calendar__previous-year-chunk:hover,
+  [aria-disabled=true].usa-date-picker__calendar__next-year-chunk:hover, [aria-disabled=true].usa-date-picker__calendar__month:hover, [aria-disabled=true].usa-date-picker__calendar__year-selection:hover,
+  [aria-disabled=true].usa-date-picker__calendar__month-selection:hover, [aria-disabled=true].usa-date-picker__calendar__date:hover, [aria-disabled=true].usa-date-picker__calendar__previous-year:hover,
+  [aria-disabled=true].usa-date-picker__calendar__previous-month:hover,
+  [aria-disabled=true].usa-date-picker__calendar__next-year:hover,
+  [aria-disabled=true].usa-date-picker__calendar__next-month:hover, [aria-disabled=true].usa-date-picker__button:hover{
+    background-color:GrayText;
+  }
+}
+
+.usa-date-picker__calendar__year, .usa-date-picker__calendar__previous-year-chunk,
+.usa-date-picker__calendar__next-year-chunk, .usa-date-picker__calendar__month, .usa-date-picker__calendar__year-selection,
+.usa-date-picker__calendar__month-selection, .usa-date-picker__calendar__date, .usa-date-picker__calendar__previous-year,
+.usa-date-picker__calendar__previous-month,
+.usa-date-picker__calendar__next-year,
+.usa-date-picker__calendar__next-month, .usa-date-picker__button{
+  background-color:#f0f0f0;
+  border:0;
+  width:100%;
+}
+.usa-date-picker__calendar__year:not([disabled]), .usa-date-picker__calendar__previous-year-chunk:not([disabled]),
+.usa-date-picker__calendar__next-year-chunk:not([disabled]), .usa-date-picker__calendar__month:not([disabled]), .usa-date-picker__calendar__year-selection:not([disabled]),
+.usa-date-picker__calendar__month-selection:not([disabled]), .usa-date-picker__calendar__date:not([disabled]), .usa-date-picker__calendar__previous-year:not([disabled]),
+.usa-date-picker__calendar__previous-month:not([disabled]),
+.usa-date-picker__calendar__next-year:not([disabled]),
+.usa-date-picker__calendar__next-month:not([disabled]), .usa-date-picker__button:not([disabled]){
+  cursor:pointer;
+}
+.usa-date-picker__calendar__year:not([disabled]):focus, .usa-date-picker__calendar__previous-year-chunk:not([disabled]):focus,
+.usa-date-picker__calendar__next-year-chunk:not([disabled]):focus, .usa-date-picker__calendar__month:not([disabled]):focus, .usa-date-picker__calendar__year-selection:not([disabled]):focus,
+.usa-date-picker__calendar__month-selection:not([disabled]):focus, .usa-date-picker__calendar__date:not([disabled]):focus, .usa-date-picker__calendar__previous-year:not([disabled]):focus,
+.usa-date-picker__calendar__previous-month:not([disabled]):focus,
+.usa-date-picker__calendar__next-year:not([disabled]):focus,
+.usa-date-picker__calendar__next-month:not([disabled]):focus, .usa-date-picker__button:not([disabled]):focus{
+  outline-offset:-4px;
+}
+.usa-date-picker__calendar__year:not([disabled]):hover, .usa-date-picker__calendar__previous-year-chunk:not([disabled]):hover,
+.usa-date-picker__calendar__next-year-chunk:not([disabled]):hover, .usa-date-picker__calendar__month:not([disabled]):hover, .usa-date-picker__calendar__year-selection:not([disabled]):hover,
+.usa-date-picker__calendar__month-selection:not([disabled]):hover, .usa-date-picker__calendar__date:not([disabled]):hover, .usa-date-picker__calendar__previous-year:not([disabled]):hover,
+.usa-date-picker__calendar__previous-month:not([disabled]):hover,
+.usa-date-picker__calendar__next-year:not([disabled]):hover,
+.usa-date-picker__calendar__next-month:not([disabled]):hover, .usa-date-picker__button:not([disabled]):hover{
+  background-color:#dfe1e2;
+}
+@media (forced-colors: active){
+  .usa-date-picker__calendar__year:not([disabled]):hover, .usa-date-picker__calendar__previous-year-chunk:not([disabled]):hover,
+  .usa-date-picker__calendar__next-year-chunk:not([disabled]):hover, .usa-date-picker__calendar__month:not([disabled]):hover, .usa-date-picker__calendar__year-selection:not([disabled]):hover,
+  .usa-date-picker__calendar__month-selection:not([disabled]):hover, .usa-date-picker__calendar__date:not([disabled]):hover, .usa-date-picker__calendar__previous-year:not([disabled]):hover,
+  .usa-date-picker__calendar__previous-month:not([disabled]):hover,
+  .usa-date-picker__calendar__next-year:not([disabled]):hover,
+  .usa-date-picker__calendar__next-month:not([disabled]):hover, .usa-date-picker__button:not([disabled]):hover{
+    background-color:buttontext;
+  }
+}
+.usa-date-picker__calendar__year:not([disabled]):active, .usa-date-picker__calendar__previous-year-chunk:not([disabled]):active,
+.usa-date-picker__calendar__next-year-chunk:not([disabled]):active, .usa-date-picker__calendar__month:not([disabled]):active, .usa-date-picker__calendar__year-selection:not([disabled]):active,
+.usa-date-picker__calendar__month-selection:not([disabled]):active, .usa-date-picker__calendar__date:not([disabled]):active, .usa-date-picker__calendar__previous-year:not([disabled]):active,
+.usa-date-picker__calendar__previous-month:not([disabled]):active,
+.usa-date-picker__calendar__next-year:not([disabled]):active,
+.usa-date-picker__calendar__next-month:not([disabled]):active, .usa-date-picker__button:not([disabled]):active{
+  background-color:#a9aeb1;
+}
+@media (forced-colors: active){
+  .usa-date-picker__calendar__year:not([disabled]):active, .usa-date-picker__calendar__previous-year-chunk:not([disabled]):active,
+  .usa-date-picker__calendar__next-year-chunk:not([disabled]):active, .usa-date-picker__calendar__month:not([disabled]):active, .usa-date-picker__calendar__year-selection:not([disabled]):active,
+  .usa-date-picker__calendar__month-selection:not([disabled]):active, .usa-date-picker__calendar__date:not([disabled]):active, .usa-date-picker__calendar__previous-year:not([disabled]):active,
+  .usa-date-picker__calendar__previous-month:not([disabled]):active,
+  .usa-date-picker__calendar__next-year:not([disabled]):active,
+  .usa-date-picker__calendar__next-month:not([disabled]):active, .usa-date-picker__button:not([disabled]):active{
+    background-color:buttontext;
+  }
+}
+.usa-date-picker--active .usa-date-picker__button{
+  background-color:#f0f0f0;
+}
+@media (forced-colors: active){
+  .usa-date-picker--active .usa-date-picker__button{
+    background-color:buttontext;
+  }
+}
+.usa-date-picker--active .usa-date-picker__calendar{
+  z-index:400;
+}
+
+.usa-date-picker__button{
+  background-image:url("../img/usa-icons/calendar_today.svg"), linear-gradient(transparent, transparent);
+  background-repeat:no-repeat;
+  align-self:stretch;
+  background-color:transparent;
+  background-position:center;
+  background-size:1.5rem;
+  margin-top:0.5em;
+  width:3em;
+}
+@media (forced-colors: active){
+  .usa-date-picker__button{
+    background-image:url("../img/usa-icons/calendar_today.svg");
+    background-repeat:no-repeat;
+    background-position:center center;
+    background-size:2.5rem 2.5rem;
+    display:inline-block;
+    height:2.5rem;
+    width:3rem;
+    -webkit-mask-size:1.5rem !important;
+            mask-size:1.5rem !important;
+    position:relative;
+  }
+  @supports ((-webkit-mask: url("")) or (mask: url(""))){
+    .usa-date-picker__button{
+      background:none;
+      background-color:ButtonText;
+      -webkit-mask-image:url("../img/usa-icons/calendar_today.svg"), linear-gradient(transparent, transparent);
+              mask-image:url("../img/usa-icons/calendar_today.svg"), linear-gradient(transparent, transparent);
+      -webkit-mask-position:center center;
+              mask-position:center center;
+      -webkit-mask-repeat:no-repeat;
+              mask-repeat:no-repeat;
+      -webkit-mask-size:2.5rem 2.5rem;
+              mask-size:2.5rem 2.5rem;
+    }
+  }
+  .usa-date-picker__button:not([disabled]):focus, .usa-date-picker__button:not([disabled]):hover{
+    background-color:Highlight;
+  }
+}
+
+.usa-date-picker--initialized .usa-date-picker__wrapper{
+  display:flex;
+}
+
+.usa-date-picker__calendar{
+  background-color:#f0f0f0;
+  left:auto;
+  max-width:20rem;
+  position:absolute;
+  right:0;
+  width:100%;
+  z-index:100;
+}
+.usa-date-picker__calendar__table{
+  border-spacing:0;
+  border-collapse:collapse;
+  table-layout:fixed;
+  text-align:center;
+  width:100%;
+}
+.usa-date-picker__calendar__table th{
+  font-weight:normal;
+}
+.usa-date-picker__calendar__table td{
+  padding:0;
+}
+
+.usa-date-picker__calendar__row{
+  display:flex;
+  flex-wrap:wrap;
+  text-align:center;
+  width:100%;
+}
+
+.usa-date-picker__calendar__cell{
+  background-color:#f0f0f0;
+  flex:1;
+}
+
+.usa-date-picker__calendar__cell--center-items{
+  display:flex;
+  justify-content:center;
+  align-items:center;
+}
+@media (forced-colors: active){
+  .usa-date-picker__calendar__cell--center-items:not([disabled]):hover{
+    outline:2px solid transparent;
+    outline-offset:-2px;
+  }
+}
+
+.usa-date-picker__calendar__previous-year,
+.usa-date-picker__calendar__previous-month,
+.usa-date-picker__calendar__next-year,
+.usa-date-picker__calendar__next-month{
+  background-position:center;
+  background-size:auto 1.5rem;
+  height:1.5rem;
+  padding:20px 10px;
+}
+@media (forced-colors: active){
+  .usa-date-picker__calendar__previous-year,
+  .usa-date-picker__calendar__previous-month,
+  .usa-date-picker__calendar__next-year,
+  .usa-date-picker__calendar__next-month{
+    -webkit-mask-size:1.5rem !important;
+            mask-size:1.5rem !important;
+  }
+}
+
+.usa-date-picker__calendar__previous-year:not([disabled]){
+  background-image:url("../img/usa-icons/navigate_far_before.svg"), linear-gradient(transparent, transparent);
+  background-repeat:no-repeat;
+}
+@media (forced-colors: active){
+  .usa-date-picker__calendar__previous-year:not([disabled]){
+    background-image:url("../img/usa-icons/navigate_far_before.svg");
+    background-repeat:no-repeat;
+    background-position:center center;
+    background-size:2.5rem 2.5rem;
+    display:inline-block;
+    height:2.5rem;
+    width:3rem;
+    background-color:buttonText;
+  }
+  @supports ((-webkit-mask: url("")) or (mask: url(""))){
+    .usa-date-picker__calendar__previous-year:not([disabled]){
+      background:none;
+      background-color:ButtonText;
+      -webkit-mask-image:url("../img/usa-icons/navigate_far_before.svg"), linear-gradient(transparent, transparent);
+              mask-image:url("../img/usa-icons/navigate_far_before.svg"), linear-gradient(transparent, transparent);
+      -webkit-mask-position:center center;
+              mask-position:center center;
+      -webkit-mask-repeat:no-repeat;
+              mask-repeat:no-repeat;
+      -webkit-mask-size:2.5rem 2.5rem;
+              mask-size:2.5rem 2.5rem;
+    }
+  }
+}
+
+.usa-date-picker__calendar__previous-month:not([disabled]){
+  background-image:url("../img/usa-icons/navigate_before.svg"), linear-gradient(transparent, transparent);
+  background-repeat:no-repeat;
+}
+@media (forced-colors: active){
+  .usa-date-picker__calendar__previous-month:not([disabled]){
+    background-image:url("../img/usa-icons/navigate_before.svg");
+    background-repeat:no-repeat;
+    background-position:center center;
+    background-size:2.5rem 2.5rem;
+    display:inline-block;
+    height:2.5rem;
+    width:3rem;
+    background-color:buttonText;
+  }
+  @supports ((-webkit-mask: url("")) or (mask: url(""))){
+    .usa-date-picker__calendar__previous-month:not([disabled]){
+      background:none;
+      background-color:ButtonText;
+      -webkit-mask-image:url("../img/usa-icons/navigate_before.svg"), linear-gradient(transparent, transparent);
+              mask-image:url("../img/usa-icons/navigate_before.svg"), linear-gradient(transparent, transparent);
+      -webkit-mask-position:center center;
+              mask-position:center center;
+      -webkit-mask-repeat:no-repeat;
+              mask-repeat:no-repeat;
+      -webkit-mask-size:2.5rem 2.5rem;
+              mask-size:2.5rem 2.5rem;
+    }
+  }
+}
+
+.usa-date-picker__calendar__next-year:not([disabled]){
+  background-image:url("../img/usa-icons/navigate_far_next.svg"), linear-gradient(transparent, transparent);
+  background-repeat:no-repeat;
+}
+@media (forced-colors: active){
+  .usa-date-picker__calendar__next-year:not([disabled]){
+    background-image:url("../img/usa-icons/navigate_far_next.svg");
+    background-repeat:no-repeat;
+    background-position:center center;
+    background-size:2.5rem 2.5rem;
+    display:inline-block;
+    height:2.5rem;
+    width:3rem;
+    background-color:buttonText;
+  }
+  @supports ((-webkit-mask: url("")) or (mask: url(""))){
+    .usa-date-picker__calendar__next-year:not([disabled]){
+      background:none;
+      background-color:ButtonText;
+      -webkit-mask-image:url("../img/usa-icons/navigate_far_next.svg"), linear-gradient(transparent, transparent);
+              mask-image:url("../img/usa-icons/navigate_far_next.svg"), linear-gradient(transparent, transparent);
+      -webkit-mask-position:center center;
+              mask-position:center center;
+      -webkit-mask-repeat:no-repeat;
+              mask-repeat:no-repeat;
+      -webkit-mask-size:2.5rem 2.5rem;
+              mask-size:2.5rem 2.5rem;
+    }
+  }
+}
+
+.usa-date-picker__calendar__next-month:not([disabled]){
+  background-image:url("../img/usa-icons/navigate_next.svg"), linear-gradient(transparent, transparent);
+  background-repeat:no-repeat;
+}
+@media (forced-colors: active){
+  .usa-date-picker__calendar__next-month:not([disabled]){
+    background-image:url("../img/usa-icons/navigate_next.svg");
+    background-repeat:no-repeat;
+    background-position:center center;
+    background-size:2.5rem 2.5rem;
+    display:inline-block;
+    height:2.5rem;
+    width:3rem;
+    background-color:buttonText;
+  }
+  @supports ((-webkit-mask: url("")) or (mask: url(""))){
+    .usa-date-picker__calendar__next-month:not([disabled]){
+      background:none;
+      background-color:ButtonText;
+      -webkit-mask-image:url("../img/usa-icons/navigate_next.svg"), linear-gradient(transparent, transparent);
+              mask-image:url("../img/usa-icons/navigate_next.svg"), linear-gradient(transparent, transparent);
+      -webkit-mask-position:center center;
+              mask-position:center center;
+      -webkit-mask-repeat:no-repeat;
+              mask-repeat:no-repeat;
+      -webkit-mask-size:2.5rem 2.5rem;
+              mask-size:2.5rem 2.5rem;
+    }
+  }
+}
+
+.usa-date-picker__calendar__day-of-week{
+  padding:6px 0px;
+}
+
+.usa-date-picker__calendar__date{
+  padding:10px 0px;
+}
+.usa-date-picker__calendar__date--focused{
+  outline:2px solid #162e51;
+  outline-offset:-2px;
+  position:relative;
+  z-index:100;
+}
+.usa-date-picker__calendar__date--next-month:not([disabled]), .usa-date-picker__calendar__date--previous-month:not([disabled]){
+  color:#5d5d52;
+}
+.usa-date-picker__calendar__date--selected, .usa-date-picker__calendar__date--range-date{
+  background-color:#0050d8;
+  color:#f9f9f9;
+}
+.usa-date-picker__calendar__date--selected:not([disabled]), .usa-date-picker__calendar__date--range-date:not([disabled]){
+  background-color:#0050d8;
+  color:#f9f9f9;
+}
+@media (forced-colors: active){
+  .usa-date-picker__calendar__date--selected:not([disabled]), .usa-date-picker__calendar__date--range-date:not([disabled]){
+    border:ActiveText 2px solid;
+  }
+}
+.usa-date-picker__calendar__date--selected:not([disabled]):hover, .usa-date-picker__calendar__date--range-date:not([disabled]):hover{
+  background-color:#0050d8;
+  color:#e6e6e6;
+}
+.usa-date-picker__calendar__date--selected:not([disabled]):focus, .usa-date-picker__calendar__date--range-date:not([disabled]):focus{
+  background-color:#0050d8;
+  color:#f9f9f9;
+}
+@media (forced-colors: active){
+  .usa-date-picker__calendar__date--selected:not([disabled]):focus, .usa-date-picker__calendar__date--range-date:not([disabled]):focus{
+    border:ActiveText 2px solid;
+  }
+}
+.usa-date-picker__calendar__date--selected:not([disabled]):active, .usa-date-picker__calendar__date--range-date:not([disabled]):active{
+  background-color:#1a4480;
+}
+@media (forced-colors: active){
+  .usa-date-picker__calendar__date--selected:not([disabled]):active, .usa-date-picker__calendar__date--range-date:not([disabled]):active{
+    background-color:Highlight;
+  }
+}
+.usa-date-picker__calendar__date--range-date-start{
+  border-top-left-radius:10%;
+  border-bottom-left-radius:10%;
+}
+.usa-date-picker__calendar__date--range-date-end{
+  border-top-right-radius:10%;
+  border-bottom-right-radius:10%;
+}
+.usa-date-picker__calendar__date--within-range{
+  background-color:#cfe8ff;
+}
+.usa-date-picker__calendar__date--within-range:not([disabled]){
+  background-color:#cfe8ff;
+}
+@media (forced-colors: active){
+  .usa-date-picker__calendar__date--within-range:not([disabled]){
+    border:Highlight 2px solid;
+  }
+}
+.usa-date-picker__calendar__date--within-range:not([disabled]):hover{
+  background-color:#cfe8ff;
+}
+@media (forced-colors: active){
+  .usa-date-picker__calendar__date--within-range:not([disabled]):hover{
+    border:Highlight 2px solid;
+  }
+}
+.usa-date-picker__calendar__date--within-range:not([disabled]):focus{
+  background-color:#cfe8ff;
+}
+@media (forced-colors: active){
+  .usa-date-picker__calendar__date--within-range:not([disabled]):focus{
+    border:Highlight 2px solid;
+  }
+}
+.usa-date-picker__calendar__date--within-range:not([disabled]):active{
+  background-color:#cfe8ff;
+}
+@media (forced-colors: active){
+  .usa-date-picker__calendar__date--within-range:not([disabled]):active{
+    background-color:Highlight;
+  }
+}
+
+@media all and (max-width: 19.99em){
+  .usa-date-picker__calendar__month-label{
+    min-width:100%;
+    order:-1;
+  }
+}
+@media all and (min-width: 20em){
+  .usa-date-picker__calendar__month-label{
+    flex:4;
+    text-align:center;
+  }
+}
+
+.usa-date-picker__calendar__year-selection,
+.usa-date-picker__calendar__month-selection{
+  display:inline-block;
+  height:100%;
+  padding:8px 4px;
+  width:auto;
+}
+@media all and (max-width: 19.99em){
+  .usa-date-picker__calendar__year-selection,
+  .usa-date-picker__calendar__month-selection{
+    padding-bottom:0;
+    padding-top:12px;
+  }
+}
+
+.usa-date-picker__calendar__month-picker{
+  padding:20px 5px;
+}
+@media all and (max-width: 19.99em){
+  .usa-date-picker__calendar__month-picker{
+    padding-bottom:12px;
+    padding-top:12px;
+  }
+  .usa-date-picker__calendar__month-picker tr{
+    display:flex;
+    flex-direction:column;
+  }
+}
+
+.usa-date-picker__calendar__month{
+  padding:10px 0;
+}
+.usa-date-picker__calendar__month--focused{
+  outline:2px solid #162e51;
+  outline-offset:-2px;
+  position:relative;
+  z-index:100;
+}
+.usa-date-picker__calendar__month--selected{
+  background-color:#0050d8;
+  color:#f9f9f9;
+}
+.usa-date-picker__calendar__month--selected:not([disabled]){
+  background-color:#0050d8;
+  color:#f9f9f9;
+}
+.usa-date-picker__calendar__month--selected:not([disabled]):hover{
+  background-color:#0050d8;
+  color:#e6e6e6;
+}
+.usa-date-picker__calendar__month--selected:not([disabled]):focus{
+  background-color:#0050d8;
+  color:#f9f9f9;
+}
+.usa-date-picker__calendar__month--selected:not([disabled]):active{
+  background-color:#1a4480;
+}
+
+.usa-date-picker__calendar__year-picker{
+  padding:20px 5px;
+}
+
+.usa-date-picker__calendar__previous-year-chunk,
+.usa-date-picker__calendar__next-year-chunk{
+  background-position:center;
+  background-size:auto 2rem;
+  margin:auto;
+  padding:40px 0;
+}
+@media (forced-colors: active){
+  .usa-date-picker__calendar__previous-year-chunk,
+  .usa-date-picker__calendar__next-year-chunk{
+    -webkit-mask-size:1.5rem !important;
+            mask-size:1.5rem !important;
+  }
+}
+
+.usa-date-picker__calendar__previous-year-chunk:not([disabled]){
+  background-image:url("../img/usa-icons/navigate_before.svg"), linear-gradient(transparent, transparent);
+  background-repeat:no-repeat;
+}
+@media (forced-colors: active){
+  .usa-date-picker__calendar__previous-year-chunk:not([disabled]){
+    background-image:none;
+  }
+  .usa-date-picker__calendar__previous-year-chunk:not([disabled])::after{
+    background-image:url("../img/usa-icons/navigate_before.svg");
+    background-repeat:no-repeat;
+    background-position:center center;
+    background-size:2.5rem 2.5rem;
+    display:inline-block;
+    height:2.5rem;
+    width:3rem;
+    content:"";
+    vertical-align:middle;
+    margin-left:auto;
+  }
+  @supports ((-webkit-mask: url("")) or (mask: url(""))){
+    .usa-date-picker__calendar__previous-year-chunk:not([disabled])::after{
+      background:none;
+      background-color:ButtonText;
+      -webkit-mask-image:url("../img/usa-icons/navigate_before.svg"), linear-gradient(transparent, transparent);
+              mask-image:url("../img/usa-icons/navigate_before.svg"), linear-gradient(transparent, transparent);
+      -webkit-mask-position:center center;
+              mask-position:center center;
+      -webkit-mask-repeat:no-repeat;
+              mask-repeat:no-repeat;
+      -webkit-mask-size:2.5rem 2.5rem;
+              mask-size:2.5rem 2.5rem;
+    }
+  }
+  .usa-date-picker__calendar__previous-year-chunk:not([disabled]):hover{
+    border:2px solid transparent;
+    background-color:transparent;
+  }
+}
+
+.usa-date-picker__calendar__next-year-chunk:not([disabled]){
+  background-image:url("../img/usa-icons/navigate_next.svg"), linear-gradient(transparent, transparent);
+  background-repeat:no-repeat;
+}
+@media (forced-colors: active){
+  .usa-date-picker__calendar__next-year-chunk:not([disabled]){
+    background-image:none;
+  }
+  .usa-date-picker__calendar__next-year-chunk:not([disabled])::after{
+    background-image:url("../img/usa-icons/navigate_next.svg");
+    background-repeat:no-repeat;
+    background-position:center center;
+    background-size:2.5rem 2.5rem;
+    display:inline-block;
+    height:2.5rem;
+    width:3rem;
+    content:"";
+    vertical-align:middle;
+    margin-left:auto;
+  }
+  @supports ((-webkit-mask: url("")) or (mask: url(""))){
+    .usa-date-picker__calendar__next-year-chunk:not([disabled])::after{
+      background:none;
+      background-color:ButtonText;
+      -webkit-mask-image:url("../img/usa-icons/navigate_next.svg"), linear-gradient(transparent, transparent);
+              mask-image:url("../img/usa-icons/navigate_next.svg"), linear-gradient(transparent, transparent);
+      -webkit-mask-position:center center;
+              mask-position:center center;
+      -webkit-mask-repeat:no-repeat;
+              mask-repeat:no-repeat;
+      -webkit-mask-size:2.5rem 2.5rem;
+              mask-size:2.5rem 2.5rem;
+    }
+  }
+  .usa-date-picker__calendar__next-year-chunk:not([disabled]):hover{
+    border:2px solid transparent;
+    background-color:transparent;
+  }
+}
+
+.usa-date-picker__calendar__year{
+  padding:10px 0;
+}
+.usa-date-picker__calendar__year--focused{
+  outline:2px solid #162e51;
+  outline-offset:-2px;
+  position:relative;
+  z-index:100;
+}
+.usa-date-picker__calendar__year--selected{
+  background-color:#0050d8;
+  color:#f9f9f9;
+}
+.usa-date-picker__calendar__year--selected:not([disabled]){
+  background-color:#0050d8;
+  color:#f9f9f9;
+}
+.usa-date-picker__calendar__year--selected:not([disabled]):hover{
+  background-color:#0050d8;
+  color:#e6e6e6;
+}
+.usa-date-picker__calendar__year--selected:not([disabled]):focus{
+  background-color:#0050d8;
+  color:#f9f9f9;
+}
+.usa-date-picker__calendar__year--selected:not([disabled]):active{
+  background-color:#1a4480;
+}
+.usa-error-message{
+  padding-bottom:0.25rem;
+  padding-top:0.25rem;
+  color:#b50909;
+  display:block;
+  font-weight:700;
+}
+
+[type=file]{
+  border:none;
+  margin-top:0.5rem;
+  padding-left:0;
+  padding-top:0.2rem;
+}
+
+.usa-file-input{
+  display:block;
+  max-width:30rem;
+  width:100%;
+}
+
+.usa-file-input__target{
+  border:1px dashed #a9aeb1;
+  display:block;
+  font-size:0.93rem;
+  margin-top:0.5rem;
+  position:relative;
+  text-align:center;
+  width:100%;
+}
+.usa-file-input__target:hover{
+  border-color:#71767a;
+}
+
+.usa-file-input__target.has-invalid-file{
+  border-color:#fa9441;
+}
+
+.usa-file-input__accepted-files-message{
+  font-weight:bold;
+  margin:-1.5rem 0 1.5rem;
+  pointer-events:none;
+  position:relative;
+  z-index:3;
+}
+
+.has-invalid-file .usa-file-input__accepted-files-message{
+  color:#b50909;
+}
+
+.usa-file-input__choose{
+  color:#005ea2;
+  text-decoration:underline;
+  font-weight:normal;
+}
+.usa-file-input__choose:visited{
+  color:#54278f;
+}
+.usa-file-input__choose:hover{
+  color:#1a4480;
+}
+.usa-file-input__choose:active{
+  color:#162e51;
+}
+.usa-file-input__choose:focus{
+  outline:0.25rem solid #2491ff;
+  outline-offset:0rem;
+}
+
+.usa-file-input__instructions{
+  padding:2rem 1rem;
+  pointer-events:none;
+  position:relative;
+  z-index:3;
+}
+
+.usa-file-input__box{
+  background:white;
+  height:100%;
+  left:0;
+  pointer-events:none;
+  position:absolute;
+  top:0;
+  width:100%;
+  z-index:2;
+}
+
+.usa-file-input .usa-file-input__input[type]{
+  cursor:pointer;
+  height:100%;
+  left:0;
+  margin:0;
+  max-width:none;
+  position:absolute;
+  padding:0.5rem;
+  text-indent:-999em;
+  top:0;
+  width:100%;
+  z-index:1;
+}
+
+.usa-file-input .usa-file-input__input[type]::-webkit-file-upload-button{
+  display:none;
+}
+
+.usa-file-input--drag .usa-file-input__target{
+  border-color:#005ea2;
+}
+
+.usa-file-input--drag .usa-file-input__box{
+  background-color:#d9e8f6;
+}
+
+.usa-file-input--drag .usa-file-input__preview{
+  opacity:0.1;
+}
+
+.usa-file-input__preview-heading{
+  align-items:center;
+  background:#d9e8f6;
+  display:flex;
+  font-weight:bold;
+  justify-content:space-between;
+  padding:0.5rem;
+  pointer-events:none;
+  position:relative;
+  z-index:3;
+}
+
+.usa-file-input__preview{
+  align-items:center;
+  background:#d9e8f6;
+  word-wrap:anywhere;
+  display:flex;
+  font-size:0.87rem;
+  margin-top:1px;
+  padding:0.25rem 0.5rem;
+  pointer-events:none;
+  position:relative;
+  text-align:left;
+  z-index:3;
+}
+.usa-file-input__preview:last-child{
+  margin-bottom:-1.5rem;
+}
+
+.usa-file-input__preview-image{
+  border:none;
+  display:block;
+  height:2.5rem;
+  margin-right:0.5rem;
+  -o-object-fit:contain;
+     object-fit:contain;
+  width:2.5rem;
+}
+
+.usa-file-input__preview-image.is-loading{
+  background-image:url("../img/loader.svg"), linear-gradient(transparent, transparent);
+  background-repeat:no-repeat;
+  background-position:center center;
+  background-repeat:no-repeat;
+  background-size:2rem;
+}
+
+.usa-file-input__preview-image--generic,
+.usa-file-input__preview-image--pdf,
+.usa-file-input__preview-image--word,
+.usa-file-input__preview-image--excel,
+.usa-file-input__preview-image--video{
+  background-position:center center;
+  background-repeat:no-repeat;
+  background-size:1.5rem;
+}
+
+.usa-file-input__preview-image--pdf{
+  background-image:url("../img/file-pdf.svg"), linear-gradient(transparent, transparent);
+  background-repeat:no-repeat;
+}
+
+.usa-file-input__preview-image--generic{
+  background-image:url("../img/file.svg"), linear-gradient(transparent, transparent);
+  background-repeat:no-repeat;
+}
+
+.usa-file-input__preview-image--word{
+  background-image:url("../img/file-word.svg"), linear-gradient(transparent, transparent);
+  background-repeat:no-repeat;
+}
+
+.usa-file-input__preview-image--excel{
+  background-image:url("../img/file-excel.svg"), linear-gradient(transparent, transparent);
+  background-repeat:no-repeat;
+}
+
+.usa-file-input__preview-image--video{
+  background-image:url("../img/file-video.svg"), linear-gradient(transparent, transparent);
+  background-repeat:no-repeat;
+}
+
+.usa-form-group--error .usa-file-input__target{
+  border-color:#b50909;
+  border-width:2px;
+}
+
+.usa-file-input--disabled .usa-file-input__instructions,
+.usa-file-input--disabled .usa-file-input__choose{
+  color:#454545;
+}
+.usa-file-input--disabled .usa-file-input__box{
+  background-color:#c9c9c9;
+}
+.usa-file-input--disabled .usa-file-input__input[type]{
+  cursor:not-allowed;
+}
+.usa-file-input--disabled .usa-file-input__target:hover{
+  border-color:#a9aeb1;
+}
+.usa-file-input--disabled .usa-file-input--drag .usa-file-input__box{
+  background-color:#c9c9c9;
+}
+@media (forced-colors: active){
+  .usa-file-input--disabled .usa-file-input__instructions,
+  .usa-file-input--disabled .usa-file-input__choose{
+    color:GrayText;
+  }
+  .usa-file-input--disabled .usa-file-input__target,
+  .usa-file-input--disabled .usa-file-input__target:hover{
+    border-color:GrayText;
+  }
+}
+
+.usa-form-group{
+  margin-top:1.5rem;
+}
+.usa-form-group .usa-label:first-child{
+  margin-top:0;
+}
+
+.usa-form-group--error{
+  border-left-width:0.25rem;
+  border-left-color:#b50909;
+  border-left-style:solid;
+  padding-left:1rem;
+  position:relative;
+}
+@media all and (min-width: 64em){
+  .usa-form-group--error{
+    margin-left:-1.25rem;
+  }
+}
+
+.usa-hint{
+  color:#71767a;
+}
+
+.usa-hint--required{
+  color:#b50909;
+}
+
+.usa-input-group{
+  align-items:center;
+  display:flex;
+  padding:0;
+  position:relative;
+}
+.usa-input-group--error input:focus, .usa-input-group--success input:focus{
+  outline-offset:0.25rem;
+}
+.usa-input-group--error{
+  border-width:0.25rem;
+  border-color:#b50909;
+  border-style:solid;
+}
+.usa-input-group--success{
+  border-width:0.25rem;
+  border-color:#00a91c;
+  border-style:solid;
+}
+.usa-input-group input{
+  padding-right:2.5rem;
+  border:0;
+  height:100%;
+  margin-top:0;
+  min-width:0;
+  width:100%;
+}
+.usa-input-group input:disabled + .usa-input-suffix, .usa-input-group input[aria-disabled=true] + .usa-input-suffix{
+  color:#454545;
+  background-color:#c9c9c9;
+  cursor:not-allowed;
+  opacity:1;
+}
+.usa-input-group input:disabled + .usa-input-suffix:hover, .usa-input-group input:disabled + .usa-input-suffix:active, .usa-input-group input:disabled + .usa-input-suffix:focus, .usa-input-group input:disabled + .usa-input-suffix.usa-focus, .usa-input-group input[aria-disabled=true] + .usa-input-suffix:hover, .usa-input-group input[aria-disabled=true] + .usa-input-suffix:active, .usa-input-group input[aria-disabled=true] + .usa-input-suffix:focus, .usa-input-group input[aria-disabled=true] + .usa-input-suffix.usa-focus{
+  color:#454545;
+  background-color:#c9c9c9;
+}
+@media (forced-colors: active){
+  .usa-input-group input:disabled + .usa-input-suffix, .usa-input-group input[aria-disabled=true] + .usa-input-suffix{
+    border:0;
+    color:GrayText;
+  }
+  .usa-input-group input:disabled + .usa-input-suffix:hover, .usa-input-group input:disabled + .usa-input-suffix:active, .usa-input-group input:disabled + .usa-input-suffix:focus, .usa-input-group input:disabled + .usa-input-suffix.usa-focus, .usa-input-group input[aria-disabled=true] + .usa-input-suffix:hover, .usa-input-group input[aria-disabled=true] + .usa-input-suffix:active, .usa-input-group input[aria-disabled=true] + .usa-input-suffix:focus, .usa-input-group input[aria-disabled=true] + .usa-input-suffix.usa-focus{
+    color:GrayText;
+  }
+}
+@media (forced-colors: active){
+  .usa-input-group input:disabled, .usa-input-group input[aria-disabled=true]{
+    border:0;
+  }
+}
+@media (forced-colors: active){
+  .usa-input-group:has(input:disabled), .usa-input-group:has(input[aria-disabled=true]){
+    border:2px solid GrayText;
+  }
+}
+
+.usa-input-group--2xs,
+.usa-form .usa-input-group--2xs{
+  max-width:5ex;
+}
+
+.usa-input-group--xs,
+.usa-form .usa-input-group--xs{
+  max-width:9ex;
+}
+
+.usa-input-group--sm,
+.usa-form .usa-input-group--sm{
+  max-width:13ex;
+}
+
+.usa-input-group--small,
+.usa-form .usa-input-group--small{
+  max-width:13ex;
+}
+
+.usa-input-group--md,
+.usa-form .usa-input-group--md{
+  max-width:20ex;
+}
+
+.usa-input-group--medium,
+.usa-form .usa-input-group--medium{
+  max-width:20ex;
+}
+
+.usa-input-group--lg,
+.usa-form .usa-input-group--lg{
+  max-width:30ex;
+}
+
+.usa-input-group--xl,
+.usa-form .usa-input-group--xl{
+  max-width:40ex;
+}
+
+.usa-input-group--2xl,
+.usa-form .usa-input-group--2xl{
+  max-width:50ex;
+}
+
+.usa-input-prefix:has(+ input:disabled),
+.usa-input-prefix:has(+ input[aria-disabled=true]){
+  color:#454545;
+  background-color:#c9c9c9;
+  cursor:not-allowed;
+  opacity:1;
+}
+.usa-input-prefix:has(+ input:disabled):hover, .usa-input-prefix:has(+ input:disabled):active, .usa-input-prefix:has(+ input:disabled):focus, .usa-input-prefix:has(+ input:disabled).usa-focus,
+.usa-input-prefix:has(+ input[aria-disabled=true]):hover,
+.usa-input-prefix:has(+ input[aria-disabled=true]):active,
+.usa-input-prefix:has(+ input[aria-disabled=true]):focus,
+.usa-input-prefix:has(+ input[aria-disabled=true]).usa-focus{
+  color:#454545;
+  background-color:#c9c9c9;
+}
+@media (forced-colors: active){
+  .usa-input-prefix:has(+ input:disabled),
+  .usa-input-prefix:has(+ input[aria-disabled=true]){
+    border:0;
+    color:GrayText;
+  }
+  .usa-input-prefix:has(+ input:disabled):hover, .usa-input-prefix:has(+ input:disabled):active, .usa-input-prefix:has(+ input:disabled):focus, .usa-input-prefix:has(+ input:disabled).usa-focus,
+  .usa-input-prefix:has(+ input[aria-disabled=true]):hover,
+  .usa-input-prefix:has(+ input[aria-disabled=true]):active,
+  .usa-input-prefix:has(+ input[aria-disabled=true]):focus,
+  .usa-input-prefix:has(+ input[aria-disabled=true]).usa-focus{
+    color:GrayText;
+  }
+}
+
+.usa-input-prefix,
+.usa-input-suffix{
+  position:absolute;
+  color:#71767a;
+  line-height:0;
+  padding:0 0.5rem;
+  -webkit-user-select:none;
+     -moz-user-select:none;
+          user-select:none;
+  white-space:nowrap;
+}
+.usa-input-prefix .usa-icon,
+.usa-input-suffix .usa-icon{
+  height:1.5rem;
+  width:1.5rem;
+}
+
+.usa-input-prefix + input{
+  padding-left:2.5rem;
+  padding-right:0.5rem;
+}
+
+.usa-input-suffix{
+  right:0;
+}
+
+.usa-input-mask{
+  display:block;
+  position:relative;
+}
+
+.usa-input-mask--content{
+  border:1px solid transparent;
+  color:#757575;
+  display:block;
+  left:2px;
+  pointer-events:none;
+  position:absolute;
+  top:0;
+}
+.usa-input-mask--content i{
+  visibility:hidden;
+}
+@media (forced-colors: active){
+  .usa-input-mask--content i{
+    color:ButtonText;
+    font-style:normal;
+    visibility:visible;
+  }
+}
+@media (forced-colors: active){
+  .usa-input-mask--content{
+    border:none;
+  }
+}
+
+.usa-masked,
+.usa-input-mask--content{
+  background-color:transparent;
+  padding:0.5rem;
+}
+
+.usa-label{
+  font-family:Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
+  font-size:1.06rem;
+  line-height:1.3;
+  display:block;
+  font-weight:normal;
+  margin-top:1.5rem;
+  max-width:30rem;
+}
+
+.usa-label--error{
+  font-weight:700;
+  margin-top:0;
+}
+
+.usa-label--required{
+  color:#b50909;
+}
+
+.usa-memorable-date{
+  display:flex;
+  flex-wrap:wrap;
+}
+.usa-memorable-date [type=number]{
+  -moz-appearance:textfield;
+}
+.usa-memorable-date [type=number]::-webkit-inner-spin-button{
+  -webkit-appearance:none;
+          appearance:none;
+}
+.usa-memorable-date [type=number]::-webkit-contacts-auto-fill-button{
+  visibility:hidden;
+  display:none !important;
+  pointer-events:none;
+  height:0;
+  width:0;
+  margin:0;
+}
+.usa-memorable-date .usa-form-group{
+  margin-top:1rem;
+}
+
+.usa-form-group--day,
+.usa-form-group--month,
+.usa-form-group--year{
+  flex:0 1 auto;
+  margin-right:1rem;
+  width:-moz-fit-content;
+  width:fit-content;
+}
+
+.usa-form-group--day input,
+.usa-form-group--month input{
+  width:3rem;
+}
+
+.usa-form-group--month select{
+  width:15rem;
+}
+
+.usa-form-group--year input{
+  width:4.5rem;
+}
+
+.usa-radio{
+  background:white;
+}
+
+.usa-radio__label{
+  color:#1b1b1b;
+}
+.usa-radio__label::before{
+  background:white;
+  box-shadow:0 0 0 2px #1b1b1b;
+}
+@media (forced-colors: active){
+  .usa-radio__label::before{
+    outline:2px solid transparent;
+    outline-offset:2px;
+  }
+}
+
+.usa-radio__input:checked + [class*=__label]::before{
+  background-color:#005ea2;
+  box-shadow:0 0 0 2px #005ea2;
+}
+.usa-radio__input:disabled + [class*=__label], .usa-radio__input[aria-disabled=true] + [class*=__label]{
+  color:#757575;
+  cursor:not-allowed;
+}
+@media (forced-colors: active){
+  .usa-radio__input:disabled + [class*=__label], .usa-radio__input[aria-disabled=true] + [class*=__label]{
+    color:GrayText;
+  }
+}
+.usa-radio__input:disabled + [class*=__label]::before, .usa-radio__input[aria-disabled=true] + [class*=__label]::before{
+  background-color:white;
+  box-shadow:0 0 0 2px #757575;
+}
+.usa-radio__input--tile + [class*=__label]{
+  background-color:white;
+  border:2px solid #c9c9c9;
+  color:#1b1b1b;
+}
+.usa-radio__input--tile:checked + [class*=__label]{
+  background-color:rgba(0, 94, 162, 0.1);
+  border-color:#005ea2;
+}
+@media (forced-colors: active){
+  .usa-radio__input--tile:checked + [class*=__label]{
+    border:ButtonText solid 0.25rem;
+  }
+}
+.usa-radio__input--tile:disabled + [class*=__label], .usa-radio__input--tile[aria-disabled=true] + [class*=__label]{
+  border-color:#e6e6e6;
+}
+.usa-radio__input--tile:disabled:checked + [class*=__label], .usa-radio__input--tile:disabled:indeterminate + [class*=__label], .usa-radio__input--tile:disabled[data-indeterminate] + [class*=__label], .usa-radio__input--tile[aria-disabled=true]:checked + [class*=__label], .usa-radio__input--tile[aria-disabled=true]:indeterminate + [class*=__label], .usa-radio__input--tile[aria-disabled=true][data-indeterminate] + [class*=__label]{
+  background-color:white;
+}
+
+.usa-radio__input:checked + [class*=__label]::before{
+  box-shadow:0 0 0 2px #005ea2, inset 0 0 0 2px white;
+}
+@media (forced-colors: active){
+  .usa-radio__input:checked + [class*=__label]::before{
+    background-color:ButtonText;
+  }
+}
+.usa-radio__input:checked:disabled + [class*=__label]::before, .usa-radio__input:checked[aria-disabled=true] + [class*=__label]::before{
+  background-color:#757575;
+  box-shadow:0 0 0 2px #757575, inset 0 0 0 2px white;
+}
+@media (forced-colors: active){
+  .usa-radio__input:checked:disabled + [class*=__label]::before, .usa-radio__input:checked[aria-disabled=true] + [class*=__label]::before{
+    background-color:GrayText;
+  }
+}
+
+.usa-radio__input{
+  position:absolute;
+  left:-999em;
+  right:auto;
+}
+.usa-radio__input:focus + [class*=__label]::before{
+  outline:0.25rem solid #2491ff;
+  outline-offset:0.25rem;
+}
+.usa-radio__input--tile + [class*=__label]{
+  border-radius:0.25rem;
+  margin-top:0.5rem;
+  padding:0.75rem 1rem 0.75rem 2.5rem;
+}
+.usa-radio__input--tile + [class*=__label]::before{
+  left:0.5rem;
+}
+
+@media print{
+  .usa-radio__input:checked + [class*=__label]::before{
+    box-shadow:inset 0 0 0 2px white, inset 0 0 0 1rem #005ea2, 0 0 0 2px #005ea2;
+  }
+}
+
+.usa-radio__label{
+  cursor:pointer;
+  display:inherit;
+  font-weight:normal;
+  margin-top:0.75rem;
+  padding-left:2rem;
+  position:relative;
+}
+.usa-radio__label::before{
+  content:" ";
+  display:block;
+  left:0;
+  margin-left:2px;
+  margin-top:0.064rem;
+  position:absolute;
+}
+
+.usa-radio__label::before{
+  height:1.25rem;
+  border-radius:99rem;
+  width:1.25rem;
+}
+
+.usa-radio__label-description{
+  display:block;
+  font-size:0.93rem;
+  margin-top:0.5rem;
+}
+.usa-range{
+  -webkit-appearance:none;
+     -moz-appearance:none;
+          appearance:none;
+  border:none;
+  padding-left:1px;
+  width:100%;
+}
+.usa-range:focus{
+  outline:none;
+}
+.usa-range:focus::-webkit-slider-thumb{
+  background-color:white;
+  box-shadow:0 0 0 2px #2491ff;
+}
+.usa-range:focus::-moz-range-thumb{
+  background-color:white;
+  box-shadow:0 0 0 2px #2491ff;
+}
+.usa-range:focus::-ms-thumb{
+  background-color:white;
+  box-shadow:0 0 0 2px #2491ff;
+}
+.usa-range::-webkit-slider-runnable-track{
+  background-color:#f0f0f0;
+  border-radius:99rem;
+  border:1px solid #71767a;
+  cursor:pointer;
+  height:1rem;
+  width:100%;
+}
+.usa-range::-moz-range-track{
+  background-color:#f0f0f0;
+  border-radius:99rem;
+  border:1px solid #71767a;
+  cursor:pointer;
+  height:1rem;
+  width:100%;
+}
+.usa-range::-ms-track{
+  background-color:#f0f0f0;
+  border-radius:99rem;
+  border:1px solid #71767a;
+  cursor:pointer;
+  height:1rem;
+  width:100%;
+}
+.usa-range::-webkit-slider-thumb{
+  height:1.25rem;
+  border-radius:99rem;
+  width:1.25rem;
+  background:#f0f0f0;
+  border:none;
+  box-shadow:0 0 0 2px #71767a;
+  cursor:pointer;
+  -webkit-appearance:none;
+          appearance:none;
+  margin-top:-0.19rem;
+}
+@media (forced-colors: active){
+  .usa-range::-webkit-slider-thumb{
+    outline:2px solid transparent;
+  }
+}
+.usa-range::-moz-range-thumb{
+  height:1.25rem;
+  border-radius:99rem;
+  width:1.25rem;
+  background:#f0f0f0;
+  border:none;
+  box-shadow:0 0 0 2px #71767a;
+  cursor:pointer;
+}
+@media (forced-colors: active){
+  .usa-range::-moz-range-thumb{
+    outline:2px solid transparent;
+  }
+}
+.usa-range::-ms-thumb{
+  height:1.25rem;
+  border-radius:99rem;
+  width:1.25rem;
+  background:#f0f0f0;
+  border:none;
+  box-shadow:0 0 0 2px #71767a;
+  cursor:pointer;
+}
+@media (forced-colors: active){
+  .usa-range::-ms-thumb{
+    outline:2px solid transparent;
+  }
+}
+.usa-range::-ms-fill-lower{
+  background-color:#f0f0f0;
+  border-radius:99rem;
+  border:1px solid #71767a;
+}
+.usa-range::-ms-fill-upper{
+  background-color:#f0f0f0;
+  border-radius:99rem;
+  border:1px solid #71767a;
+}
+.usa-range:disabled, .usa-range[aria-disabled=true]{
+  opacity:1;
+}
+.usa-range:disabled::-webkit-slider-runnable-track, .usa-range[aria-disabled=true]::-webkit-slider-runnable-track{
+  color:#454545;
+  background-color:#c9c9c9;
+  cursor:not-allowed;
+  opacity:1;
+}
+.usa-range:disabled::-webkit-slider-runnable-track:hover, .usa-range:disabled::-webkit-slider-runnable-track:active, .usa-range:disabled::-webkit-slider-runnable-track:focus, .usa-range:disabled::-webkit-slider-runnable-track.usa-focus, .usa-range[aria-disabled=true]::-webkit-slider-runnable-track:hover, .usa-range[aria-disabled=true]::-webkit-slider-runnable-track:active, .usa-range[aria-disabled=true]::-webkit-slider-runnable-track:focus, .usa-range[aria-disabled=true]::-webkit-slider-runnable-track.usa-focus{
+  color:#454545;
+  background-color:#c9c9c9;
+}
+@media (forced-colors: active){
+  .usa-range:disabled::-webkit-slider-runnable-track, .usa-range[aria-disabled=true]::-webkit-slider-runnable-track{
+    border:0;
+    color:GrayText;
+  }
+  .usa-range:disabled::-webkit-slider-runnable-track:hover, .usa-range:disabled::-webkit-slider-runnable-track:active, .usa-range:disabled::-webkit-slider-runnable-track:focus, .usa-range:disabled::-webkit-slider-runnable-track.usa-focus, .usa-range[aria-disabled=true]::-webkit-slider-runnable-track:hover, .usa-range[aria-disabled=true]::-webkit-slider-runnable-track:active, .usa-range[aria-disabled=true]::-webkit-slider-runnable-track:focus, .usa-range[aria-disabled=true]::-webkit-slider-runnable-track.usa-focus{
+    color:GrayText;
+  }
+}
+@media (forced-colors: active){
+  .usa-range:disabled::-webkit-slider-runnable-track, .usa-range[aria-disabled=true]::-webkit-slider-runnable-track{
+    border:2px solid GrayText;
+  }
+}
+.usa-range:disabled::-moz-range-track, .usa-range[aria-disabled=true]::-moz-range-track{
+  color:#454545;
+  background-color:#c9c9c9;
+  cursor:not-allowed;
+  opacity:1;
+}
+.usa-range:disabled::-moz-range-track:hover, .usa-range:disabled::-moz-range-track:active, .usa-range:disabled::-moz-range-track:focus, .usa-range:disabled::-moz-range-track.usa-focus, .usa-range[aria-disabled=true]::-moz-range-track:hover, .usa-range[aria-disabled=true]::-moz-range-track:active, .usa-range[aria-disabled=true]::-moz-range-track:focus, .usa-range[aria-disabled=true]::-moz-range-track.usa-focus{
+  color:#454545;
+  background-color:#c9c9c9;
+}
+@media (forced-colors: active){
+  .usa-range:disabled::-moz-range-track, .usa-range[aria-disabled=true]::-moz-range-track{
+    border:0;
+    color:GrayText;
+  }
+  .usa-range:disabled::-moz-range-track:hover, .usa-range:disabled::-moz-range-track:active, .usa-range:disabled::-moz-range-track:focus, .usa-range:disabled::-moz-range-track.usa-focus, .usa-range[aria-disabled=true]::-moz-range-track:hover, .usa-range[aria-disabled=true]::-moz-range-track:active, .usa-range[aria-disabled=true]::-moz-range-track:focus, .usa-range[aria-disabled=true]::-moz-range-track.usa-focus{
+    color:GrayText;
+  }
+}
+@media (forced-colors: active){
+  .usa-range:disabled::-moz-range-track, .usa-range[aria-disabled=true]::-moz-range-track{
+    border:2px solid GrayText;
+  }
+}
+.usa-range:disabled::-ms-track, .usa-range[aria-disabled=true]::-ms-track{
+  color:#454545;
+  background-color:#c9c9c9;
+  cursor:not-allowed;
+  opacity:1;
+}
+.usa-range:disabled::-ms-track:hover, .usa-range:disabled::-ms-track:active, .usa-range:disabled::-ms-track:focus, .usa-range:disabled::-ms-track.usa-focus, .usa-range[aria-disabled=true]::-ms-track:hover, .usa-range[aria-disabled=true]::-ms-track:active, .usa-range[aria-disabled=true]::-ms-track:focus, .usa-range[aria-disabled=true]::-ms-track.usa-focus{
+  color:#454545;
+  background-color:#c9c9c9;
+}
+@media (forced-colors: active){
+  .usa-range:disabled::-ms-track, .usa-range[aria-disabled=true]::-ms-track{
+    border:0;
+    color:GrayText;
+  }
+  .usa-range:disabled::-ms-track:hover, .usa-range:disabled::-ms-track:active, .usa-range:disabled::-ms-track:focus, .usa-range:disabled::-ms-track.usa-focus, .usa-range[aria-disabled=true]::-ms-track:hover, .usa-range[aria-disabled=true]::-ms-track:active, .usa-range[aria-disabled=true]::-ms-track:focus, .usa-range[aria-disabled=true]::-ms-track.usa-focus{
+    color:GrayText;
+  }
+}
+.usa-range:disabled::-webkit-slider-thumb, .usa-range[aria-disabled=true]::-webkit-slider-thumb{
+  color:#454545;
+  background-color:#c9c9c9;
+  cursor:not-allowed;
+  opacity:1;
+}
+.usa-range:disabled::-webkit-slider-thumb:hover, .usa-range:disabled::-webkit-slider-thumb:active, .usa-range:disabled::-webkit-slider-thumb:focus, .usa-range:disabled::-webkit-slider-thumb.usa-focus, .usa-range[aria-disabled=true]::-webkit-slider-thumb:hover, .usa-range[aria-disabled=true]::-webkit-slider-thumb:active, .usa-range[aria-disabled=true]::-webkit-slider-thumb:focus, .usa-range[aria-disabled=true]::-webkit-slider-thumb.usa-focus{
+  color:#454545;
+  background-color:#c9c9c9;
+}
+@media (forced-colors: active){
+  .usa-range:disabled::-webkit-slider-thumb, .usa-range[aria-disabled=true]::-webkit-slider-thumb{
+    border:0;
+    color:GrayText;
+  }
+  .usa-range:disabled::-webkit-slider-thumb:hover, .usa-range:disabled::-webkit-slider-thumb:active, .usa-range:disabled::-webkit-slider-thumb:focus, .usa-range:disabled::-webkit-slider-thumb.usa-focus, .usa-range[aria-disabled=true]::-webkit-slider-thumb:hover, .usa-range[aria-disabled=true]::-webkit-slider-thumb:active, .usa-range[aria-disabled=true]::-webkit-slider-thumb:focus, .usa-range[aria-disabled=true]::-webkit-slider-thumb.usa-focus{
+    color:GrayText;
+  }
+}
+.usa-range:disabled::-moz-range-thumb, .usa-range[aria-disabled=true]::-moz-range-thumb{
+  color:#454545;
+  background-color:#c9c9c9;
+  cursor:not-allowed;
+  opacity:1;
+}
+.usa-range:disabled::-moz-range-thumb:hover, .usa-range:disabled::-moz-range-thumb:active, .usa-range:disabled::-moz-range-thumb:focus, .usa-range:disabled::-moz-range-thumb.usa-focus, .usa-range[aria-disabled=true]::-moz-range-thumb:hover, .usa-range[aria-disabled=true]::-moz-range-thumb:active, .usa-range[aria-disabled=true]::-moz-range-thumb:focus, .usa-range[aria-disabled=true]::-moz-range-thumb.usa-focus{
+  color:#454545;
+  background-color:#c9c9c9;
+}
+@media (forced-colors: active){
+  .usa-range:disabled::-moz-range-thumb, .usa-range[aria-disabled=true]::-moz-range-thumb{
+    border:0;
+    color:GrayText;
+  }
+  .usa-range:disabled::-moz-range-thumb:hover, .usa-range:disabled::-moz-range-thumb:active, .usa-range:disabled::-moz-range-thumb:focus, .usa-range:disabled::-moz-range-thumb.usa-focus, .usa-range[aria-disabled=true]::-moz-range-thumb:hover, .usa-range[aria-disabled=true]::-moz-range-thumb:active, .usa-range[aria-disabled=true]::-moz-range-thumb:focus, .usa-range[aria-disabled=true]::-moz-range-thumb.usa-focus{
+    color:GrayText;
+  }
+}
+.usa-range:disabled::-ms-thumb, .usa-range[aria-disabled=true]::-ms-thumb{
+  color:#454545;
+  background-color:#c9c9c9;
+  cursor:not-allowed;
+  opacity:1;
+}
+.usa-range:disabled::-ms-thumb:hover, .usa-range:disabled::-ms-thumb:active, .usa-range:disabled::-ms-thumb:focus, .usa-range:disabled::-ms-thumb.usa-focus, .usa-range[aria-disabled=true]::-ms-thumb:hover, .usa-range[aria-disabled=true]::-ms-thumb:active, .usa-range[aria-disabled=true]::-ms-thumb:focus, .usa-range[aria-disabled=true]::-ms-thumb.usa-focus{
+  color:#454545;
+  background-color:#c9c9c9;
+}
+@media (forced-colors: active){
+  .usa-range:disabled::-ms-thumb, .usa-range[aria-disabled=true]::-ms-thumb{
+    border:0;
+    color:GrayText;
+  }
+  .usa-range:disabled::-ms-thumb:hover, .usa-range:disabled::-ms-thumb:active, .usa-range:disabled::-ms-thumb:focus, .usa-range:disabled::-ms-thumb.usa-focus, .usa-range[aria-disabled=true]::-ms-thumb:hover, .usa-range[aria-disabled=true]::-ms-thumb:active, .usa-range[aria-disabled=true]::-ms-thumb:focus, .usa-range[aria-disabled=true]::-ms-thumb.usa-focus{
+    color:GrayText;
+  }
+}
+.usa-range:disabled::-ms-fill-lower, .usa-range[aria-disabled=true]::-ms-fill-lower{
+  color:#454545;
+  background-color:#c9c9c9;
+  cursor:not-allowed;
+  opacity:1;
+}
+.usa-range:disabled::-ms-fill-lower:hover, .usa-range:disabled::-ms-fill-lower:active, .usa-range:disabled::-ms-fill-lower:focus, .usa-range:disabled::-ms-fill-lower.usa-focus, .usa-range[aria-disabled=true]::-ms-fill-lower:hover, .usa-range[aria-disabled=true]::-ms-fill-lower:active, .usa-range[aria-disabled=true]::-ms-fill-lower:focus, .usa-range[aria-disabled=true]::-ms-fill-lower.usa-focus{
+  color:#454545;
+  background-color:#c9c9c9;
+}
+@media (forced-colors: active){
+  .usa-range:disabled::-ms-fill-lower, .usa-range[aria-disabled=true]::-ms-fill-lower{
+    border:0;
+    color:GrayText;
+  }
+  .usa-range:disabled::-ms-fill-lower:hover, .usa-range:disabled::-ms-fill-lower:active, .usa-range:disabled::-ms-fill-lower:focus, .usa-range:disabled::-ms-fill-lower.usa-focus, .usa-range[aria-disabled=true]::-ms-fill-lower:hover, .usa-range[aria-disabled=true]::-ms-fill-lower:active, .usa-range[aria-disabled=true]::-ms-fill-lower:focus, .usa-range[aria-disabled=true]::-ms-fill-lower.usa-focus{
+    color:GrayText;
+  }
+}
+.usa-range:disabled::-ms-fill-upper, .usa-range[aria-disabled=true]::-ms-fill-upper{
+  color:#454545;
+  background-color:#c9c9c9;
+  cursor:not-allowed;
+  opacity:1;
+}
+.usa-range:disabled::-ms-fill-upper:hover, .usa-range:disabled::-ms-fill-upper:active, .usa-range:disabled::-ms-fill-upper:focus, .usa-range:disabled::-ms-fill-upper.usa-focus, .usa-range[aria-disabled=true]::-ms-fill-upper:hover, .usa-range[aria-disabled=true]::-ms-fill-upper:active, .usa-range[aria-disabled=true]::-ms-fill-upper:focus, .usa-range[aria-disabled=true]::-ms-fill-upper.usa-focus{
+  color:#454545;
+  background-color:#c9c9c9;
+}
+@media (forced-colors: active){
+  .usa-range:disabled::-ms-fill-upper, .usa-range[aria-disabled=true]::-ms-fill-upper{
+    border:0;
+    color:GrayText;
+  }
+  .usa-range:disabled::-ms-fill-upper:hover, .usa-range:disabled::-ms-fill-upper:active, .usa-range:disabled::-ms-fill-upper:focus, .usa-range:disabled::-ms-fill-upper.usa-focus, .usa-range[aria-disabled=true]::-ms-fill-upper:hover, .usa-range[aria-disabled=true]::-ms-fill-upper:active, .usa-range[aria-disabled=true]::-ms-fill-upper:focus, .usa-range[aria-disabled=true]::-ms-fill-upper.usa-focus{
+    color:GrayText;
+  }
+}
+
+.usa-textarea:disabled, .usa-textarea[aria-disabled=true]{
+  color:#454545;
+  background-color:#c9c9c9;
+  cursor:not-allowed;
+  opacity:1;
+}
+.usa-textarea:disabled:hover, .usa-textarea:disabled:active, .usa-textarea:disabled:focus, .usa-textarea:disabled.usa-focus, .usa-textarea[aria-disabled=true]:hover, .usa-textarea[aria-disabled=true]:active, .usa-textarea[aria-disabled=true]:focus, .usa-textarea[aria-disabled=true].usa-focus{
+  color:#454545;
+  background-color:#c9c9c9;
+}
+@media (forced-colors: active){
+  .usa-textarea:disabled, .usa-textarea[aria-disabled=true]{
+    border:0;
+    color:GrayText;
+  }
+  .usa-textarea:disabled:hover, .usa-textarea:disabled:active, .usa-textarea:disabled:focus, .usa-textarea:disabled.usa-focus, .usa-textarea[aria-disabled=true]:hover, .usa-textarea[aria-disabled=true]:active, .usa-textarea[aria-disabled=true]:focus, .usa-textarea[aria-disabled=true].usa-focus{
+    color:GrayText;
+  }
+}
+@media (forced-colors: active){
+  .usa-textarea:disabled, .usa-textarea[aria-disabled=true]{
+    border:2px solid GrayText;
+  }
+}
+
+.usa-textarea{
+  height:10rem;
+}
+
+.usa-time-picker{
+  width:10em;
+}
+[class*=font-mono-]{
+  font-family:Roboto Mono Web, Bitstream Vera Sans Mono, Consolas, Courier, monospace;
+}
+
+[class*=font-sans-]{
+  font-family:Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
+}
+
+[class*=font-serif-]{
+  font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+}
+
+[class*=font-ui-]{
+  font-family:Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
+}
+
+[class*=font-heading-]{
+  font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+}
+
+[class*=font-body-]{
+  font-family:Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
+}
+
+[class*=font-code-]{
+  font-family:Roboto Mono Web, Bitstream Vera Sans Mono, Consolas, Courier, monospace;
+}
+
+[class*=font-alt-]{
+  font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+}
+.add-aspect-9x16{
+  box-sizing:border-box;
+  height:0;
+  overflow:hidden;
+  padding-bottom:177.77778%;
+  position:relative;
+}
+@supports (aspect-ratio: 1){
+  .add-aspect-9x16{
+    height:inherit;
+    padding:inherit;
+    aspect-ratio:0.5625;
+    max-width:100%;
+  }
+  .add-aspect-9x16 > *{
+    position:absolute;
+    top:0;
+    left:0;
+    width:100%;
+    height:100%;
+  }
+  img.add-aspect-9x16, .add-aspect-9x16 > img{
+    -o-object-fit:cover;
+       object-fit:cover;
+  }
+}
+
+.add-aspect-16x9{
+  box-sizing:border-box;
+  height:0;
+  overflow:hidden;
+  padding-bottom:56.25%;
+  position:relative;
+}
+@supports (aspect-ratio: 1){
+  .add-aspect-16x9{
+    height:inherit;
+    padding:inherit;
+    aspect-ratio:1.7777777778;
+    max-width:100%;
+  }
+  .add-aspect-16x9 > *{
+    position:absolute;
+    top:0;
+    left:0;
+    width:100%;
+    height:100%;
+  }
+  img.add-aspect-16x9, .add-aspect-16x9 > img{
+    -o-object-fit:cover;
+       object-fit:cover;
+  }
+}
+
+.add-aspect-1x1{
+  box-sizing:border-box;
+  height:0;
+  overflow:hidden;
+  padding-bottom:100%;
+  position:relative;
+}
+@supports (aspect-ratio: 1){
+  .add-aspect-1x1{
+    height:inherit;
+    padding:inherit;
+    aspect-ratio:1;
+    max-width:100%;
+  }
+  .add-aspect-1x1 > *{
+    position:absolute;
+    top:0;
+    left:0;
+    width:100%;
+    height:100%;
+  }
+  img.add-aspect-1x1, .add-aspect-1x1 > img{
+    -o-object-fit:cover;
+       object-fit:cover;
+  }
+}
+
+.add-aspect-4x3{
+  box-sizing:border-box;
+  height:0;
+  overflow:hidden;
+  padding-bottom:75%;
+  position:relative;
+}
+@supports (aspect-ratio: 1){
+  .add-aspect-4x3{
+    height:inherit;
+    padding:inherit;
+    aspect-ratio:1.3333333333;
+    max-width:100%;
+  }
+  .add-aspect-4x3 > *{
+    position:absolute;
+    top:0;
+    left:0;
+    width:100%;
+    height:100%;
+  }
+  img.add-aspect-4x3, .add-aspect-4x3 > img{
+    -o-object-fit:cover;
+       object-fit:cover;
+  }
+}
+
+.add-aspect-2x1{
+  box-sizing:border-box;
+  height:0;
+  overflow:hidden;
+  padding-bottom:50%;
+  position:relative;
+}
+@supports (aspect-ratio: 1){
+  .add-aspect-2x1{
+    height:inherit;
+    padding:inherit;
+    aspect-ratio:2;
+    max-width:100%;
+  }
+  .add-aspect-2x1 > *{
+    position:absolute;
+    top:0;
+    left:0;
+    width:100%;
+    height:100%;
+  }
+  img.add-aspect-2x1, .add-aspect-2x1 > img{
+    -o-object-fit:cover;
+       object-fit:cover;
+  }
+}
+
+@supports (aspect-ratio: 1){
+  :where(img[class*=add-aspect-]){
+    width:-moz-min-content;
+    width:min-content;
+  }
+}
+.add-list-reset{
+  margin-bottom:0;
+  margin-top:0;
+  padding-left:0;
+  list-style:none;
+}
+
+.flex-align-start{
+  align-items:flex-start;
+}
+
+.flex-align-end{
+  align-items:flex-end;
+}
+
+.flex-align-center{
+  align-items:center;
+}
+
+.flex-align-stretch{
+  align-items:stretch;
+}
+
+.flex-align-baseline{
+  align-items:baseline;
+}
+
+.flex-align-self-start{
+  align-self:flex-start;
+}
+
+.flex-align-self-end{
+  align-self:flex-end;
+}
+
+.flex-align-self-center{
+  align-self:center;
+}
+
+.flex-align-self-stretch{
+  align-self:stretch;
+}
+
+.flex-align-self-baseline{
+  align-self:baseline;
+}
+
+.bg-transparent{
+  background-color:transparent;
+}
+
+.hover\:bg-transparent:hover{
+  background-color:transparent;
+}
+
+.bg-black{
+  background-color:black;
+}
+
+.hover\:bg-black:hover{
+  background-color:black;
+}
+
+.bg-white{
+  background-color:white;
+}
+
+.hover\:bg-white:hover{
+  background-color:white;
+}
+
+.bg-red{
+  background-color:#e52207;
+}
+
+.hover\:bg-red:hover{
+  background-color:#e52207;
+}
+
+.bg-orange{
+  background-color:#e66f0e;
+}
+
+.hover\:bg-orange:hover{
+  background-color:#e66f0e;
+}
+
+.bg-gold{
+  background-color:#ffbe2e;
+}
+
+.hover\:bg-gold:hover{
+  background-color:#ffbe2e;
+}
+
+.bg-yellow{
+  background-color:#fee685;
+}
+
+.hover\:bg-yellow:hover{
+  background-color:#fee685;
+}
+
+.bg-green{
+  background-color:#538200;
+}
+
+.hover\:bg-green:hover{
+  background-color:#538200;
+}
+
+.bg-mint{
+  background-color:#04c585;
+}
+
+.hover\:bg-mint:hover{
+  background-color:#04c585;
+}
+
+.bg-cyan{
+  background-color:#009ec1;
+}
+
+.hover\:bg-cyan:hover{
+  background-color:#009ec1;
+}
+
+.bg-blue{
+  background-color:#0076d6;
+}
+
+.hover\:bg-blue:hover{
+  background-color:#0076d6;
+}
+
+.bg-indigo{
+  background-color:#676cc8;
+}
+
+.hover\:bg-indigo:hover{
+  background-color:#676cc8;
+}
+
+.bg-violet{
+  background-color:#8168b3;
+}
+
+.hover\:bg-violet:hover{
+  background-color:#8168b3;
+}
+
+.bg-magenta{
+  background-color:#d72d79;
+}
+
+.hover\:bg-magenta:hover{
+  background-color:#d72d79;
+}
+
+.bg-gray-5{
+  background-color:#f0f0f0;
+}
+
+.hover\:bg-gray-5:hover{
+  background-color:#f0f0f0;
+}
+
+.bg-gray-10{
+  background-color:#e6e6e6;
+}
+
+.hover\:bg-gray-10:hover{
+  background-color:#e6e6e6;
+}
+
+.bg-gray-30{
+  background-color:#adadad;
+}
+
+.hover\:bg-gray-30:hover{
+  background-color:#adadad;
+}
+
+.bg-gray-50{
+  background-color:#757575;
+}
+
+.hover\:bg-gray-50:hover{
+  background-color:#757575;
+}
+
+.bg-gray-70{
+  background-color:#454545;
+}
+
+.hover\:bg-gray-70:hover{
+  background-color:#454545;
+}
+
+.bg-gray-90{
+  background-color:#1b1b1b;
+}
+
+.hover\:bg-gray-90:hover{
+  background-color:#1b1b1b;
+}
+
+.bg-base-lightest{
+  background-color:#f0f0f0;
+}
+
+.hover\:bg-base-lightest:hover{
+  background-color:#f0f0f0;
+}
+
+.bg-base-lighter{
+  background-color:#dfe1e2;
+}
+
+.hover\:bg-base-lighter:hover{
+  background-color:#dfe1e2;
+}
+
+.bg-base-light{
+  background-color:#a9aeb1;
+}
+
+.hover\:bg-base-light:hover{
+  background-color:#a9aeb1;
+}
+
+.bg-base{
+  background-color:#71767a;
+}
+
+.hover\:bg-base:hover{
+  background-color:#71767a;
+}
+
+.bg-base-dark{
+  background-color:#565c65;
+}
+
+.hover\:bg-base-dark:hover{
+  background-color:#565c65;
+}
+
+.bg-base-darker{
+  background-color:#3d4551;
+}
+
+.hover\:bg-base-darker:hover{
+  background-color:#3d4551;
+}
+
+.bg-base-darkest{
+  background-color:#1b1b1b;
+}
+
+.hover\:bg-base-darkest:hover{
+  background-color:#1b1b1b;
+}
+
+.bg-ink{
+  background-color:#1b1b1b;
+}
+
+.hover\:bg-ink:hover{
+  background-color:#1b1b1b;
+}
+
+.bg-primary-lighter{
+  background-color:#d9e8f6;
+}
+
+.hover\:bg-primary-lighter:hover{
+  background-color:#d9e8f6;
+}
+
+.bg-primary-light{
+  background-color:#73b3e7;
+}
+
+.hover\:bg-primary-light:hover{
+  background-color:#73b3e7;
+}
+
+.bg-primary{
+  background-color:#005ea2;
+}
+
+.hover\:bg-primary:hover{
+  background-color:#005ea2;
+}
+
+.bg-primary-vivid{
+  background-color:#0050d8;
+}
+
+.hover\:bg-primary-vivid:hover{
+  background-color:#0050d8;
+}
+
+.bg-primary-dark{
+  background-color:#1a4480;
+}
+
+.hover\:bg-primary-dark:hover{
+  background-color:#1a4480;
+}
+
+.bg-primary-darker{
+  background-color:#162e51;
+}
+
+.hover\:bg-primary-darker:hover{
+  background-color:#162e51;
+}
+
+.bg-secondary-lighter{
+  background-color:#f3e1e4;
+}
+
+.hover\:bg-secondary-lighter:hover{
+  background-color:#f3e1e4;
+}
+
+.bg-secondary-light{
+  background-color:#f2938c;
+}
+
+.hover\:bg-secondary-light:hover{
+  background-color:#f2938c;
+}
+
+.bg-secondary{
+  background-color:#d83933;
+}
+
+.hover\:bg-secondary:hover{
+  background-color:#d83933;
+}
+
+.bg-secondary-vivid{
+  background-color:#e41d3d;
+}
+
+.hover\:bg-secondary-vivid:hover{
+  background-color:#e41d3d;
+}
+
+.bg-secondary-dark{
+  background-color:#b50909;
+}
+
+.hover\:bg-secondary-dark:hover{
+  background-color:#b50909;
+}
+
+.bg-secondary-darker{
+  background-color:#8b0a03;
+}
+
+.hover\:bg-secondary-darker:hover{
+  background-color:#8b0a03;
+}
+
+.bg-accent-warm-darker{
+  background-color:#775540;
+}
+
+.hover\:bg-accent-warm-darker:hover{
+  background-color:#775540;
+}
+
+.bg-accent-warm-dark{
+  background-color:#c05600;
+}
+
+.hover\:bg-accent-warm-dark:hover{
+  background-color:#c05600;
+}
+
+.bg-accent-warm{
+  background-color:#fa9441;
+}
+
+.hover\:bg-accent-warm:hover{
+  background-color:#fa9441;
+}
+
+.bg-accent-warm-light{
+  background-color:#ffbc78;
+}
+
+.hover\:bg-accent-warm-light:hover{
+  background-color:#ffbc78;
+}
+
+.bg-accent-warm-lighter{
+  background-color:#f2e4d4;
+}
+
+.hover\:bg-accent-warm-lighter:hover{
+  background-color:#f2e4d4;
+}
+
+.bg-accent-cool-darker{
+  background-color:#07648d;
+}
+
+.hover\:bg-accent-cool-darker:hover{
+  background-color:#07648d;
+}
+
+.bg-accent-cool-dark{
+  background-color:#28a0cb;
+}
+
+.hover\:bg-accent-cool-dark:hover{
+  background-color:#28a0cb;
+}
+
+.bg-accent-cool{
+  background-color:#00bde3;
+}
+
+.hover\:bg-accent-cool:hover{
+  background-color:#00bde3;
+}
+
+.bg-accent-cool-light{
+  background-color:#97d4ea;
+}
+
+.hover\:bg-accent-cool-light:hover{
+  background-color:#97d4ea;
+}
+
+.bg-accent-cool-lighter{
+  background-color:#e1f3f8;
+}
+
+.hover\:bg-accent-cool-lighter:hover{
+  background-color:#e1f3f8;
+}
+
+.bg-error-lighter{
+  background-color:#f4e3db;
+}
+
+.hover\:bg-error-lighter:hover{
+  background-color:#f4e3db;
+}
+
+.bg-error-light{
+  background-color:#f39268;
+}
+
+.hover\:bg-error-light:hover{
+  background-color:#f39268;
+}
+
+.bg-error{
+  background-color:#d54309;
+}
+
+.hover\:bg-error:hover{
+  background-color:#d54309;
+}
+
+.bg-error-dark{
+  background-color:#b50909;
+}
+
+.hover\:bg-error-dark:hover{
+  background-color:#b50909;
+}
+
+.bg-error-darker{
+  background-color:#6f3331;
+}
+
+.hover\:bg-error-darker:hover{
+  background-color:#6f3331;
+}
+
+.bg-warning-lighter{
+  background-color:#faf3d1;
+}
+
+.hover\:bg-warning-lighter:hover{
+  background-color:#faf3d1;
+}
+
+.bg-warning-light{
+  background-color:#fee685;
+}
+
+.hover\:bg-warning-light:hover{
+  background-color:#fee685;
+}
+
+.bg-warning{
+  background-color:#ffbe2e;
+}
+
+.hover\:bg-warning:hover{
+  background-color:#ffbe2e;
+}
+
+.bg-warning-dark{
+  background-color:#e5a000;
+}
+
+.hover\:bg-warning-dark:hover{
+  background-color:#e5a000;
+}
+
+.bg-warning-darker{
+  background-color:#936f38;
+}
+
+.hover\:bg-warning-darker:hover{
+  background-color:#936f38;
+}
+
+.bg-success-lighter{
+  background-color:#ecf3ec;
+}
+
+.hover\:bg-success-lighter:hover{
+  background-color:#ecf3ec;
+}
+
+.bg-success-light{
+  background-color:#70e17b;
+}
+
+.hover\:bg-success-light:hover{
+  background-color:#70e17b;
+}
+
+.bg-success{
+  background-color:#00a91c;
+}
+
+.hover\:bg-success:hover{
+  background-color:#00a91c;
+}
+
+.bg-success-dark{
+  background-color:#008817;
+}
+
+.hover\:bg-success-dark:hover{
+  background-color:#008817;
+}
+
+.bg-success-darker{
+  background-color:#216e1f;
+}
+
+.hover\:bg-success-darker:hover{
+  background-color:#216e1f;
+}
+
+.bg-info-lighter{
+  background-color:#e7f6f8;
+}
+
+.hover\:bg-info-lighter:hover{
+  background-color:#e7f6f8;
+}
+
+.bg-info-light{
+  background-color:#99deea;
+}
+
+.hover\:bg-info-light:hover{
+  background-color:#99deea;
+}
+
+.bg-info{
+  background-color:#00bde3;
+}
+
+.hover\:bg-info:hover{
+  background-color:#00bde3;
+}
+
+.bg-info-dark{
+  background-color:#009ec1;
+}
+
+.hover\:bg-info-dark:hover{
+  background-color:#009ec1;
+}
+
+.bg-info-darker{
+  background-color:#2e6276;
+}
+
+.hover\:bg-info-darker:hover{
+  background-color:#2e6276;
+}
+
+.bg-disabled-lighter{
+  background-color:#c9c9c9;
+}
+
+.hover\:bg-disabled-lighter:hover{
+  background-color:#c9c9c9;
+}
+
+.bg-disabled-light{
+  background-color:#919191;
+}
+
+.hover\:bg-disabled-light:hover{
+  background-color:#919191;
+}
+
+.bg-disabled{
+  background-color:#757575;
+}
+
+.hover\:bg-disabled:hover{
+  background-color:#757575;
+}
+
+.bg-disabled-dark{
+  background-color:#454545;
+}
+
+.hover\:bg-disabled-dark:hover{
+  background-color:#454545;
+}
+
+.bg-disabled-darker{
+  background-color:#1b1b1b;
+}
+
+.hover\:bg-disabled-darker:hover{
+  background-color:#1b1b1b;
+}
+
+.bg-emergency{
+  background-color:#9c3d10;
+}
+
+.hover\:bg-emergency:hover{
+  background-color:#9c3d10;
+}
+
+.bg-emergency-dark{
+  background-color:#332d29;
+}
+
+.hover\:bg-emergency-dark:hover{
+  background-color:#332d29;
+}
+
+.border-1px{
+  border:1px solid;
+}
+
+.hover\:border-1px:hover{
+  border:1px solid;
+}
+
+.border-y-1px{
+  border-top:1px solid;
+  border-bottom:1px solid;
+}
+
+.hover\:border-y-1px:hover{
+  border-top:1px solid;
+  border-bottom:1px solid;
+}
+
+.border-x-1px{
+  border-left:1px solid;
+  border-right:1px solid;
+}
+
+.hover\:border-x-1px:hover{
+  border-left:1px solid;
+  border-right:1px solid;
+}
+
+.border-top-1px{
+  border-top:1px solid;
+}
+
+.hover\:border-top-1px:hover{
+  border-top:1px solid;
+}
+
+.border-right-1px{
+  border-right:1px solid;
+}
+
+.hover\:border-right-1px:hover{
+  border-right:1px solid;
+}
+
+.border-bottom-1px{
+  border-bottom:1px solid;
+}
+
+.hover\:border-bottom-1px:hover{
+  border-bottom:1px solid;
+}
+
+.border-left-1px{
+  border-left:1px solid;
+}
+
+.hover\:border-left-1px:hover{
+  border-left:1px solid;
+}
+
+.border-2px{
+  border:2px solid;
+}
+
+.hover\:border-2px:hover{
+  border:2px solid;
+}
+
+.border-y-2px{
+  border-top:2px solid;
+  border-bottom:2px solid;
+}
+
+.hover\:border-y-2px:hover{
+  border-top:2px solid;
+  border-bottom:2px solid;
+}
+
+.border-x-2px{
+  border-left:2px solid;
+  border-right:2px solid;
+}
+
+.hover\:border-x-2px:hover{
+  border-left:2px solid;
+  border-right:2px solid;
+}
+
+.border-top-2px{
+  border-top:2px solid;
+}
+
+.hover\:border-top-2px:hover{
+  border-top:2px solid;
+}
+
+.border-right-2px{
+  border-right:2px solid;
+}
+
+.hover\:border-right-2px:hover{
+  border-right:2px solid;
+}
+
+.border-bottom-2px{
+  border-bottom:2px solid;
+}
+
+.hover\:border-bottom-2px:hover{
+  border-bottom:2px solid;
+}
+
+.border-left-2px{
+  border-left:2px solid;
+}
+
+.hover\:border-left-2px:hover{
+  border-left:2px solid;
+}
+
+.border-05{
+  border:0.25rem solid;
+}
+
+.hover\:border-05:hover{
+  border:0.25rem solid;
+}
+
+.border-y-05{
+  border-top:0.25rem solid;
+  border-bottom:0.25rem solid;
+}
+
+.hover\:border-y-05:hover{
+  border-top:0.25rem solid;
+  border-bottom:0.25rem solid;
+}
+
+.border-x-05{
+  border-left:0.25rem solid;
+  border-right:0.25rem solid;
+}
+
+.hover\:border-x-05:hover{
+  border-left:0.25rem solid;
+  border-right:0.25rem solid;
+}
+
+.border-top-05{
+  border-top:0.25rem solid;
+}
+
+.hover\:border-top-05:hover{
+  border-top:0.25rem solid;
+}
+
+.border-right-05{
+  border-right:0.25rem solid;
+}
+
+.hover\:border-right-05:hover{
+  border-right:0.25rem solid;
+}
+
+.border-bottom-05{
+  border-bottom:0.25rem solid;
+}
+
+.hover\:border-bottom-05:hover{
+  border-bottom:0.25rem solid;
+}
+
+.border-left-05{
+  border-left:0.25rem solid;
+}
+
+.hover\:border-left-05:hover{
+  border-left:0.25rem solid;
+}
+
+.border-1{
+  border:0.5rem solid;
+}
+
+.hover\:border-1:hover{
+  border:0.5rem solid;
+}
+
+.border-y-1{
+  border-top:0.5rem solid;
+  border-bottom:0.5rem solid;
+}
+
+.hover\:border-y-1:hover{
+  border-top:0.5rem solid;
+  border-bottom:0.5rem solid;
+}
+
+.border-x-1{
+  border-left:0.5rem solid;
+  border-right:0.5rem solid;
+}
+
+.hover\:border-x-1:hover{
+  border-left:0.5rem solid;
+  border-right:0.5rem solid;
+}
+
+.border-top-1{
+  border-top:0.5rem solid;
+}
+
+.hover\:border-top-1:hover{
+  border-top:0.5rem solid;
+}
+
+.border-right-1{
+  border-right:0.5rem solid;
+}
+
+.hover\:border-right-1:hover{
+  border-right:0.5rem solid;
+}
+
+.border-bottom-1{
+  border-bottom:0.5rem solid;
+}
+
+.hover\:border-bottom-1:hover{
+  border-bottom:0.5rem solid;
+}
+
+.border-left-1{
+  border-left:0.5rem solid;
+}
+
+.hover\:border-left-1:hover{
+  border-left:0.5rem solid;
+}
+
+.border-105{
+  border:0.75rem solid;
+}
+
+.hover\:border-105:hover{
+  border:0.75rem solid;
+}
+
+.border-y-105{
+  border-top:0.75rem solid;
+  border-bottom:0.75rem solid;
+}
+
+.hover\:border-y-105:hover{
+  border-top:0.75rem solid;
+  border-bottom:0.75rem solid;
+}
+
+.border-x-105{
+  border-left:0.75rem solid;
+  border-right:0.75rem solid;
+}
+
+.hover\:border-x-105:hover{
+  border-left:0.75rem solid;
+  border-right:0.75rem solid;
+}
+
+.border-top-105{
+  border-top:0.75rem solid;
+}
+
+.hover\:border-top-105:hover{
+  border-top:0.75rem solid;
+}
+
+.border-right-105{
+  border-right:0.75rem solid;
+}
+
+.hover\:border-right-105:hover{
+  border-right:0.75rem solid;
+}
+
+.border-bottom-105{
+  border-bottom:0.75rem solid;
+}
+
+.hover\:border-bottom-105:hover{
+  border-bottom:0.75rem solid;
+}
+
+.border-left-105{
+  border-left:0.75rem solid;
+}
+
+.hover\:border-left-105:hover{
+  border-left:0.75rem solid;
+}
+
+.border-2{
+  border:1rem solid;
+}
+
+.hover\:border-2:hover{
+  border:1rem solid;
+}
+
+.border-y-2{
+  border-top:1rem solid;
+  border-bottom:1rem solid;
+}
+
+.hover\:border-y-2:hover{
+  border-top:1rem solid;
+  border-bottom:1rem solid;
+}
+
+.border-x-2{
+  border-left:1rem solid;
+  border-right:1rem solid;
+}
+
+.hover\:border-x-2:hover{
+  border-left:1rem solid;
+  border-right:1rem solid;
+}
+
+.border-top-2{
+  border-top:1rem solid;
+}
+
+.hover\:border-top-2:hover{
+  border-top:1rem solid;
+}
+
+.border-right-2{
+  border-right:1rem solid;
+}
+
+.hover\:border-right-2:hover{
+  border-right:1rem solid;
+}
+
+.border-bottom-2{
+  border-bottom:1rem solid;
+}
+
+.hover\:border-bottom-2:hover{
+  border-bottom:1rem solid;
+}
+
+.border-left-2{
+  border-left:1rem solid;
+}
+
+.hover\:border-left-2:hover{
+  border-left:1rem solid;
+}
+
+.border-205{
+  border:1.25rem solid;
+}
+
+.hover\:border-205:hover{
+  border:1.25rem solid;
+}
+
+.border-y-205{
+  border-top:1.25rem solid;
+  border-bottom:1.25rem solid;
+}
+
+.hover\:border-y-205:hover{
+  border-top:1.25rem solid;
+  border-bottom:1.25rem solid;
+}
+
+.border-x-205{
+  border-left:1.25rem solid;
+  border-right:1.25rem solid;
+}
+
+.hover\:border-x-205:hover{
+  border-left:1.25rem solid;
+  border-right:1.25rem solid;
+}
+
+.border-top-205{
+  border-top:1.25rem solid;
+}
+
+.hover\:border-top-205:hover{
+  border-top:1.25rem solid;
+}
+
+.border-right-205{
+  border-right:1.25rem solid;
+}
+
+.hover\:border-right-205:hover{
+  border-right:1.25rem solid;
+}
+
+.border-bottom-205{
+  border-bottom:1.25rem solid;
+}
+
+.hover\:border-bottom-205:hover{
+  border-bottom:1.25rem solid;
+}
+
+.border-left-205{
+  border-left:1.25rem solid;
+}
+
+.hover\:border-left-205:hover{
+  border-left:1.25rem solid;
+}
+
+.border-3{
+  border:1.5rem solid;
+}
+
+.hover\:border-3:hover{
+  border:1.5rem solid;
+}
+
+.border-y-3{
+  border-top:1.5rem solid;
+  border-bottom:1.5rem solid;
+}
+
+.hover\:border-y-3:hover{
+  border-top:1.5rem solid;
+  border-bottom:1.5rem solid;
+}
+
+.border-x-3{
+  border-left:1.5rem solid;
+  border-right:1.5rem solid;
+}
+
+.hover\:border-x-3:hover{
+  border-left:1.5rem solid;
+  border-right:1.5rem solid;
+}
+
+.border-top-3{
+  border-top:1.5rem solid;
+}
+
+.hover\:border-top-3:hover{
+  border-top:1.5rem solid;
+}
+
+.border-right-3{
+  border-right:1.5rem solid;
+}
+
+.hover\:border-right-3:hover{
+  border-right:1.5rem solid;
+}
+
+.border-bottom-3{
+  border-bottom:1.5rem solid;
+}
+
+.hover\:border-bottom-3:hover{
+  border-bottom:1.5rem solid;
+}
+
+.border-left-3{
+  border-left:1.5rem solid;
+}
+
+.hover\:border-left-3:hover{
+  border-left:1.5rem solid;
+}
+
+.border-0{
+  border:0 solid;
+}
+
+.hover\:border-0:hover{
+  border:0 solid;
+}
+
+.border-y-0{
+  border-top:0 solid;
+  border-bottom:0 solid;
+}
+
+.hover\:border-y-0:hover{
+  border-top:0 solid;
+  border-bottom:0 solid;
+}
+
+.border-x-0{
+  border-left:0 solid;
+  border-right:0 solid;
+}
+
+.hover\:border-x-0:hover{
+  border-left:0 solid;
+  border-right:0 solid;
+}
+
+.border-top-0{
+  border-top:0 solid;
+}
+
+.hover\:border-top-0:hover{
+  border-top:0 solid;
+}
+
+.border-right-0{
+  border-right:0 solid;
+}
+
+.hover\:border-right-0:hover{
+  border-right:0 solid;
+}
+
+.border-bottom-0{
+  border-bottom:0 solid;
+}
+
+.hover\:border-bottom-0:hover{
+  border-bottom:0 solid;
+}
+
+.border-left-0{
+  border-left:0 solid;
+}
+
+.hover\:border-left-0:hover{
+  border-left:0 solid;
+}
+
+.border{
+  border:1px solid;
+}
+
+.hover\:border:hover{
+  border:1px solid;
+}
+
+.border-y{
+  border-top:1px solid;
+  border-bottom:1px solid;
+}
+
+.hover\:border-y:hover{
+  border-top:1px solid;
+  border-bottom:1px solid;
+}
+
+.border-x{
+  border-left:1px solid;
+  border-right:1px solid;
+}
+
+.hover\:border-x:hover{
+  border-left:1px solid;
+  border-right:1px solid;
+}
+
+.border-top{
+  border-top:1px solid;
+}
+
+.hover\:border-top:hover{
+  border-top:1px solid;
+}
+
+.border-right{
+  border-right:1px solid;
+}
+
+.hover\:border-right:hover{
+  border-right:1px solid;
+}
+
+.border-bottom{
+  border-bottom:1px solid;
+}
+
+.hover\:border-bottom:hover{
+  border-bottom:1px solid;
+}
+
+.border-left{
+  border-left:1px solid;
+}
+
+.hover\:border-left:hover{
+  border-left:1px solid;
+}
+
+.border-transparent{
+  border-color:transparent;
+}
+
+.hover\:border-transparent:hover{
+  border-color:transparent;
+}
+
+.border-black{
+  border-color:black;
+}
+
+.hover\:border-black:hover{
+  border-color:black;
+}
+
+.border-white{
+  border-color:white;
+}
+
+.hover\:border-white:hover{
+  border-color:white;
+}
+
+.border-red{
+  border-color:#e52207;
+}
+
+.hover\:border-red:hover{
+  border-color:#e52207;
+}
+
+.border-orange{
+  border-color:#e66f0e;
+}
+
+.hover\:border-orange:hover{
+  border-color:#e66f0e;
+}
+
+.border-gold{
+  border-color:#ffbe2e;
+}
+
+.hover\:border-gold:hover{
+  border-color:#ffbe2e;
+}
+
+.border-yellow{
+  border-color:#fee685;
+}
+
+.hover\:border-yellow:hover{
+  border-color:#fee685;
+}
+
+.border-green{
+  border-color:#538200;
+}
+
+.hover\:border-green:hover{
+  border-color:#538200;
+}
+
+.border-mint{
+  border-color:#04c585;
+}
+
+.hover\:border-mint:hover{
+  border-color:#04c585;
+}
+
+.border-cyan{
+  border-color:#009ec1;
+}
+
+.hover\:border-cyan:hover{
+  border-color:#009ec1;
+}
+
+.border-blue{
+  border-color:#0076d6;
+}
+
+.hover\:border-blue:hover{
+  border-color:#0076d6;
+}
+
+.border-indigo{
+  border-color:#676cc8;
+}
+
+.hover\:border-indigo:hover{
+  border-color:#676cc8;
+}
+
+.border-violet{
+  border-color:#8168b3;
+}
+
+.hover\:border-violet:hover{
+  border-color:#8168b3;
+}
+
+.border-magenta{
+  border-color:#d72d79;
+}
+
+.hover\:border-magenta:hover{
+  border-color:#d72d79;
+}
+
+.border-gray-5{
+  border-color:#f0f0f0;
+}
+
+.hover\:border-gray-5:hover{
+  border-color:#f0f0f0;
+}
+
+.border-gray-10{
+  border-color:#e6e6e6;
+}
+
+.hover\:border-gray-10:hover{
+  border-color:#e6e6e6;
+}
+
+.border-gray-30{
+  border-color:#adadad;
+}
+
+.hover\:border-gray-30:hover{
+  border-color:#adadad;
+}
+
+.border-gray-50{
+  border-color:#757575;
+}
+
+.hover\:border-gray-50:hover{
+  border-color:#757575;
+}
+
+.border-gray-70{
+  border-color:#454545;
+}
+
+.hover\:border-gray-70:hover{
+  border-color:#454545;
+}
+
+.border-gray-90{
+  border-color:#1b1b1b;
+}
+
+.hover\:border-gray-90:hover{
+  border-color:#1b1b1b;
+}
+
+.border-base-lightest{
+  border-color:#f0f0f0;
+}
+
+.hover\:border-base-lightest:hover{
+  border-color:#f0f0f0;
+}
+
+.border-base-lighter{
+  border-color:#dfe1e2;
+}
+
+.hover\:border-base-lighter:hover{
+  border-color:#dfe1e2;
+}
+
+.border-base-light{
+  border-color:#a9aeb1;
+}
+
+.hover\:border-base-light:hover{
+  border-color:#a9aeb1;
+}
+
+.border-base{
+  border-color:#71767a;
+}
+
+.hover\:border-base:hover{
+  border-color:#71767a;
+}
+
+.border-base-dark{
+  border-color:#565c65;
+}
+
+.hover\:border-base-dark:hover{
+  border-color:#565c65;
+}
+
+.border-base-darker{
+  border-color:#3d4551;
+}
+
+.hover\:border-base-darker:hover{
+  border-color:#3d4551;
+}
+
+.border-base-darkest{
+  border-color:#1b1b1b;
+}
+
+.hover\:border-base-darkest:hover{
+  border-color:#1b1b1b;
+}
+
+.border-ink{
+  border-color:#1b1b1b;
+}
+
+.hover\:border-ink:hover{
+  border-color:#1b1b1b;
+}
+
+.border-primary-lighter{
+  border-color:#d9e8f6;
+}
+
+.hover\:border-primary-lighter:hover{
+  border-color:#d9e8f6;
+}
+
+.border-primary-light{
+  border-color:#73b3e7;
+}
+
+.hover\:border-primary-light:hover{
+  border-color:#73b3e7;
+}
+
+.border-primary{
+  border-color:#005ea2;
+}
+
+.hover\:border-primary:hover{
+  border-color:#005ea2;
+}
+
+.border-primary-vivid{
+  border-color:#0050d8;
+}
+
+.hover\:border-primary-vivid:hover{
+  border-color:#0050d8;
+}
+
+.border-primary-dark{
+  border-color:#1a4480;
+}
+
+.hover\:border-primary-dark:hover{
+  border-color:#1a4480;
+}
+
+.border-primary-darker{
+  border-color:#162e51;
+}
+
+.hover\:border-primary-darker:hover{
+  border-color:#162e51;
+}
+
+.border-secondary-lighter{
+  border-color:#f3e1e4;
+}
+
+.hover\:border-secondary-lighter:hover{
+  border-color:#f3e1e4;
+}
+
+.border-secondary-light{
+  border-color:#f2938c;
+}
+
+.hover\:border-secondary-light:hover{
+  border-color:#f2938c;
+}
+
+.border-secondary{
+  border-color:#d83933;
+}
+
+.hover\:border-secondary:hover{
+  border-color:#d83933;
+}
+
+.border-secondary-vivid{
+  border-color:#e41d3d;
+}
+
+.hover\:border-secondary-vivid:hover{
+  border-color:#e41d3d;
+}
+
+.border-secondary-dark{
+  border-color:#b50909;
+}
+
+.hover\:border-secondary-dark:hover{
+  border-color:#b50909;
+}
+
+.border-secondary-darker{
+  border-color:#8b0a03;
+}
+
+.hover\:border-secondary-darker:hover{
+  border-color:#8b0a03;
+}
+
+.border-accent-warm-darker{
+  border-color:#775540;
+}
+
+.hover\:border-accent-warm-darker:hover{
+  border-color:#775540;
+}
+
+.border-accent-warm-dark{
+  border-color:#c05600;
+}
+
+.hover\:border-accent-warm-dark:hover{
+  border-color:#c05600;
+}
+
+.border-accent-warm{
+  border-color:#fa9441;
+}
+
+.hover\:border-accent-warm:hover{
+  border-color:#fa9441;
+}
+
+.border-accent-warm-light{
+  border-color:#ffbc78;
+}
+
+.hover\:border-accent-warm-light:hover{
+  border-color:#ffbc78;
+}
+
+.border-accent-warm-lighter{
+  border-color:#f2e4d4;
+}
+
+.hover\:border-accent-warm-lighter:hover{
+  border-color:#f2e4d4;
+}
+
+.border-accent-cool-darker{
+  border-color:#07648d;
+}
+
+.hover\:border-accent-cool-darker:hover{
+  border-color:#07648d;
+}
+
+.border-accent-cool-dark{
+  border-color:#28a0cb;
+}
+
+.hover\:border-accent-cool-dark:hover{
+  border-color:#28a0cb;
+}
+
+.border-accent-cool{
+  border-color:#00bde3;
+}
+
+.hover\:border-accent-cool:hover{
+  border-color:#00bde3;
+}
+
+.border-accent-cool-light{
+  border-color:#97d4ea;
+}
+
+.hover\:border-accent-cool-light:hover{
+  border-color:#97d4ea;
+}
+
+.border-accent-cool-lighter{
+  border-color:#e1f3f8;
+}
+
+.hover\:border-accent-cool-lighter:hover{
+  border-color:#e1f3f8;
+}
+
+.border-error-lighter{
+  border-color:#f4e3db;
+}
+
+.hover\:border-error-lighter:hover{
+  border-color:#f4e3db;
+}
+
+.border-error-light{
+  border-color:#f39268;
+}
+
+.hover\:border-error-light:hover{
+  border-color:#f39268;
+}
+
+.border-error{
+  border-color:#d54309;
+}
+
+.hover\:border-error:hover{
+  border-color:#d54309;
+}
+
+.border-error-dark{
+  border-color:#b50909;
+}
+
+.hover\:border-error-dark:hover{
+  border-color:#b50909;
+}
+
+.border-error-darker{
+  border-color:#6f3331;
+}
+
+.hover\:border-error-darker:hover{
+  border-color:#6f3331;
+}
+
+.border-warning-lighter{
+  border-color:#faf3d1;
+}
+
+.hover\:border-warning-lighter:hover{
+  border-color:#faf3d1;
+}
+
+.border-warning-light{
+  border-color:#fee685;
+}
+
+.hover\:border-warning-light:hover{
+  border-color:#fee685;
+}
+
+.border-warning{
+  border-color:#ffbe2e;
+}
+
+.hover\:border-warning:hover{
+  border-color:#ffbe2e;
+}
+
+.border-warning-dark{
+  border-color:#e5a000;
+}
+
+.hover\:border-warning-dark:hover{
+  border-color:#e5a000;
+}
+
+.border-warning-darker{
+  border-color:#936f38;
+}
+
+.hover\:border-warning-darker:hover{
+  border-color:#936f38;
+}
+
+.border-success-lighter{
+  border-color:#ecf3ec;
+}
+
+.hover\:border-success-lighter:hover{
+  border-color:#ecf3ec;
+}
+
+.border-success-light{
+  border-color:#70e17b;
+}
+
+.hover\:border-success-light:hover{
+  border-color:#70e17b;
+}
+
+.border-success{
+  border-color:#00a91c;
+}
+
+.hover\:border-success:hover{
+  border-color:#00a91c;
+}
+
+.border-success-dark{
+  border-color:#008817;
+}
+
+.hover\:border-success-dark:hover{
+  border-color:#008817;
+}
+
+.border-success-darker{
+  border-color:#216e1f;
+}
+
+.hover\:border-success-darker:hover{
+  border-color:#216e1f;
+}
+
+.border-info-lighter{
+  border-color:#e7f6f8;
+}
+
+.hover\:border-info-lighter:hover{
+  border-color:#e7f6f8;
+}
+
+.border-info-light{
+  border-color:#99deea;
+}
+
+.hover\:border-info-light:hover{
+  border-color:#99deea;
+}
+
+.border-info{
+  border-color:#00bde3;
+}
+
+.hover\:border-info:hover{
+  border-color:#00bde3;
+}
+
+.border-info-dark{
+  border-color:#009ec1;
+}
+
+.hover\:border-info-dark:hover{
+  border-color:#009ec1;
+}
+
+.border-info-darker{
+  border-color:#2e6276;
+}
+
+.hover\:border-info-darker:hover{
+  border-color:#2e6276;
+}
+
+.border-disabled-lighter{
+  border-color:#c9c9c9;
+}
+
+.hover\:border-disabled-lighter:hover{
+  border-color:#c9c9c9;
+}
+
+.border-disabled-light{
+  border-color:#919191;
+}
+
+.hover\:border-disabled-light:hover{
+  border-color:#919191;
+}
+
+.border-disabled{
+  border-color:#757575;
+}
+
+.hover\:border-disabled:hover{
+  border-color:#757575;
+}
+
+.border-disabled-dark{
+  border-color:#454545;
+}
+
+.hover\:border-disabled-dark:hover{
+  border-color:#454545;
+}
+
+.border-disabled-darker{
+  border-color:#1b1b1b;
+}
+
+.hover\:border-disabled-darker:hover{
+  border-color:#1b1b1b;
+}
+
+.border-emergency{
+  border-color:#9c3d10;
+}
+
+.hover\:border-emergency:hover{
+  border-color:#9c3d10;
+}
+
+.border-emergency-dark{
+  border-color:#332d29;
+}
+
+.hover\:border-emergency-dark:hover{
+  border-color:#332d29;
+}
+
+.radius-0{
+  border-radius:0;
+}
+
+.radius-top-0{
+  border-top-left-radius:0;
+  border-top-right-radius:0;
+}
+
+.radius-right-0{
+  border-top-right-radius:0;
+  border-bottom-right-radius:0;
+}
+
+.radius-bottom-0{
+  border-bottom-left-radius:0;
+  border-bottom-right-radius:0;
+}
+
+.radius-left-0{
+  border-top-left-radius:0;
+  border-bottom-left-radius:0;
+}
+
+.radius-sm{
+  border-radius:2px;
+}
+
+.radius-top-sm{
+  border-top-left-radius:2px;
+  border-top-right-radius:2px;
+}
+
+.radius-right-sm{
+  border-top-right-radius:2px;
+  border-bottom-right-radius:2px;
+}
+
+.radius-bottom-sm{
+  border-bottom-left-radius:2px;
+  border-bottom-right-radius:2px;
+}
+
+.radius-left-sm{
+  border-top-left-radius:2px;
+  border-bottom-left-radius:2px;
+}
+
+.radius-md{
+  border-radius:0.25rem;
+}
+
+.radius-top-md{
+  border-top-left-radius:0.25rem;
+  border-top-right-radius:0.25rem;
+}
+
+.radius-right-md{
+  border-top-right-radius:0.25rem;
+  border-bottom-right-radius:0.25rem;
+}
+
+.radius-bottom-md{
+  border-bottom-left-radius:0.25rem;
+  border-bottom-right-radius:0.25rem;
+}
+
+.radius-left-md{
+  border-top-left-radius:0.25rem;
+  border-bottom-left-radius:0.25rem;
+}
+
+.radius-lg{
+  border-radius:0.5rem;
+}
+
+.radius-top-lg{
+  border-top-left-radius:0.5rem;
+  border-top-right-radius:0.5rem;
+}
+
+.radius-right-lg{
+  border-top-right-radius:0.5rem;
+  border-bottom-right-radius:0.5rem;
+}
+
+.radius-bottom-lg{
+  border-bottom-left-radius:0.5rem;
+  border-bottom-right-radius:0.5rem;
+}
+
+.radius-left-lg{
+  border-top-left-radius:0.5rem;
+  border-bottom-left-radius:0.5rem;
+}
+
+.radius-pill{
+  border-radius:99rem;
+}
+
+.radius-top-pill{
+  border-top-left-radius:99rem;
+  border-top-right-radius:99rem;
+}
+
+.radius-right-pill{
+  border-top-right-radius:99rem;
+  border-bottom-right-radius:99rem;
+}
+
+.radius-bottom-pill{
+  border-bottom-left-radius:99rem;
+  border-bottom-right-radius:99rem;
+}
+
+.radius-left-pill{
+  border-top-left-radius:99rem;
+  border-bottom-left-radius:99rem;
+}
+
+.border-dashed{
+  border-style:dashed;
+}
+
+.border-dotted{
+  border-style:dotted;
+}
+
+.border-solid{
+  border-style:solid;
+}
+
+.border-width-1px{
+  border-width:1px;
+}
+
+.border-y-width-1px{
+  border-top-width:1px;
+  border-bottom-width:1px;
+}
+
+.border-x-width-1px{
+  border-left-width:1px;
+  border-right-width:1px;
+}
+
+.border-top-width-1px{
+  border-top-width:1px;
+}
+
+.border-right-width-1px{
+  border-right-width:1px;
+}
+
+.border-bottom-width-1px{
+  border-bottom-width:1px;
+}
+
+.border-left-width-1px{
+  border-left-width:1px;
+}
+
+.border-width-2px{
+  border-width:2px;
+}
+
+.border-y-width-2px{
+  border-top-width:2px;
+  border-bottom-width:2px;
+}
+
+.border-x-width-2px{
+  border-left-width:2px;
+  border-right-width:2px;
+}
+
+.border-top-width-2px{
+  border-top-width:2px;
+}
+
+.border-right-width-2px{
+  border-right-width:2px;
+}
+
+.border-bottom-width-2px{
+  border-bottom-width:2px;
+}
+
+.border-left-width-2px{
+  border-left-width:2px;
+}
+
+.border-width-05{
+  border-width:0.25rem;
+}
+
+.border-y-width-05{
+  border-top-width:0.25rem;
+  border-bottom-width:0.25rem;
+}
+
+.border-x-width-05{
+  border-left-width:0.25rem;
+  border-right-width:0.25rem;
+}
+
+.border-top-width-05{
+  border-top-width:0.25rem;
+}
+
+.border-right-width-05{
+  border-right-width:0.25rem;
+}
+
+.border-bottom-width-05{
+  border-bottom-width:0.25rem;
+}
+
+.border-left-width-05{
+  border-left-width:0.25rem;
+}
+
+.border-width-1{
+  border-width:0.5rem;
+}
+
+.border-y-width-1{
+  border-top-width:0.5rem;
+  border-bottom-width:0.5rem;
+}
+
+.border-x-width-1{
+  border-left-width:0.5rem;
+  border-right-width:0.5rem;
+}
+
+.border-top-width-1{
+  border-top-width:0.5rem;
+}
+
+.border-right-width-1{
+  border-right-width:0.5rem;
+}
+
+.border-bottom-width-1{
+  border-bottom-width:0.5rem;
+}
+
+.border-left-width-1{
+  border-left-width:0.5rem;
+}
+
+.border-width-105{
+  border-width:0.75rem;
+}
+
+.border-y-width-105{
+  border-top-width:0.75rem;
+  border-bottom-width:0.75rem;
+}
+
+.border-x-width-105{
+  border-left-width:0.75rem;
+  border-right-width:0.75rem;
+}
+
+.border-top-width-105{
+  border-top-width:0.75rem;
+}
+
+.border-right-width-105{
+  border-right-width:0.75rem;
+}
+
+.border-bottom-width-105{
+  border-bottom-width:0.75rem;
+}
+
+.border-left-width-105{
+  border-left-width:0.75rem;
+}
+
+.border-width-2{
+  border-width:1rem;
+}
+
+.border-y-width-2{
+  border-top-width:1rem;
+  border-bottom-width:1rem;
+}
+
+.border-x-width-2{
+  border-left-width:1rem;
+  border-right-width:1rem;
+}
+
+.border-top-width-2{
+  border-top-width:1rem;
+}
+
+.border-right-width-2{
+  border-right-width:1rem;
+}
+
+.border-bottom-width-2{
+  border-bottom-width:1rem;
+}
+
+.border-left-width-2{
+  border-left-width:1rem;
+}
+
+.border-width-205{
+  border-width:1.25rem;
+}
+
+.border-y-width-205{
+  border-top-width:1.25rem;
+  border-bottom-width:1.25rem;
+}
+
+.border-x-width-205{
+  border-left-width:1.25rem;
+  border-right-width:1.25rem;
+}
+
+.border-top-width-205{
+  border-top-width:1.25rem;
+}
+
+.border-right-width-205{
+  border-right-width:1.25rem;
+}
+
+.border-bottom-width-205{
+  border-bottom-width:1.25rem;
+}
+
+.border-left-width-205{
+  border-left-width:1.25rem;
+}
+
+.border-width-3{
+  border-width:1.5rem;
+}
+
+.border-y-width-3{
+  border-top-width:1.5rem;
+  border-bottom-width:1.5rem;
+}
+
+.border-x-width-3{
+  border-left-width:1.5rem;
+  border-right-width:1.5rem;
+}
+
+.border-top-width-3{
+  border-top-width:1.5rem;
+}
+
+.border-right-width-3{
+  border-right-width:1.5rem;
+}
+
+.border-bottom-width-3{
+  border-bottom-width:1.5rem;
+}
+
+.border-left-width-3{
+  border-left-width:1.5rem;
+}
+
+.border-width-0{
+  border-width:0;
+}
+
+.border-y-width-0{
+  border-top-width:0;
+  border-bottom-width:0;
+}
+
+.border-x-width-0{
+  border-left-width:0;
+  border-right-width:0;
+}
+
+.border-top-width-0{
+  border-top-width:0;
+}
+
+.border-right-width-0{
+  border-right-width:0;
+}
+
+.border-bottom-width-0{
+  border-bottom-width:0;
+}
+
+.border-left-width-0{
+  border-left-width:0;
+}
+
+.bottom-1px{
+  bottom:1px;
+}
+
+.bottom-2px{
+  bottom:2px;
+}
+
+.bottom-05{
+  bottom:0.25rem;
+}
+
+.bottom-1{
+  bottom:0.5rem;
+}
+
+.bottom-105{
+  bottom:0.75rem;
+}
+
+.bottom-2{
+  bottom:1rem;
+}
+
+.bottom-205{
+  bottom:1.25rem;
+}
+
+.bottom-3{
+  bottom:1.5rem;
+}
+
+.bottom-neg-1px{
+  bottom:-1px;
+}
+
+.bottom-neg-2px{
+  bottom:-2px;
+}
+
+.bottom-neg-05{
+  bottom:-0.25rem;
+}
+
+.bottom-neg-1{
+  bottom:-0.5rem;
+}
+
+.bottom-neg-105{
+  bottom:-0.75rem;
+}
+
+.bottom-neg-2{
+  bottom:-1rem;
+}
+
+.bottom-neg-205{
+  bottom:-1.25rem;
+}
+
+.bottom-neg-3{
+  bottom:-1.5rem;
+}
+
+.bottom-0{
+  bottom:0;
+}
+
+.bottom-auto{
+  bottom:auto;
+}
+
+.bottom-full{
+  bottom:100%;
+}
+
+.shadow-none{
+  box-shadow:none;
+}
+
+.hover\:shadow-none:hover{
+  box-shadow:none;
+}
+
+.shadow-1{
+  box-shadow:0 1px 0.25rem 0 rgba(0, 0, 0, 0.1);
+}
+
+.hover\:shadow-1:hover{
+  box-shadow:0 1px 0.25rem 0 rgba(0, 0, 0, 0.1);
+}
+
+.shadow-2{
+  box-shadow:0 0.25rem 0.5rem 0 rgba(0, 0, 0, 0.1);
+}
+
+.hover\:shadow-2:hover{
+  box-shadow:0 0.25rem 0.5rem 0 rgba(0, 0, 0, 0.1);
+}
+
+.shadow-3{
+  box-shadow:0 0.5rem 1rem 0 rgba(0, 0, 0, 0.1);
+}
+
+.hover\:shadow-3:hover{
+  box-shadow:0 0.5rem 1rem 0 rgba(0, 0, 0, 0.1);
+}
+
+.shadow-4{
+  box-shadow:0 0.75rem 1.5rem 0 rgba(0, 0, 0, 0.1);
+}
+
+.hover\:shadow-4:hover{
+  box-shadow:0 0.75rem 1.5rem 0 rgba(0, 0, 0, 0.1);
+}
+
+.shadow-5{
+  box-shadow:0 1rem 2rem 0 rgba(0, 0, 0, 0.1);
+}
+
+.hover\:shadow-5:hover{
+  box-shadow:0 1rem 2rem 0 rgba(0, 0, 0, 0.1);
+}
+
+.circle-1px{
+  height:1px;
+  width:1px;
+  border-radius:50%;
+}
+
+.circle-2px{
+  height:2px;
+  width:2px;
+  border-radius:50%;
+}
+
+.circle-05{
+  height:0.25rem;
+  width:0.25rem;
+  border-radius:50%;
+}
+
+.circle-1{
+  height:0.5rem;
+  width:0.5rem;
+  border-radius:50%;
+}
+
+.circle-105{
+  height:0.75rem;
+  width:0.75rem;
+  border-radius:50%;
+}
+
+.circle-2{
+  height:1rem;
+  width:1rem;
+  border-radius:50%;
+}
+
+.circle-205{
+  height:1.25rem;
+  width:1.25rem;
+  border-radius:50%;
+}
+
+.circle-3{
+  height:1.5rem;
+  width:1.5rem;
+  border-radius:50%;
+}
+
+.circle-4{
+  height:2rem;
+  width:2rem;
+  border-radius:50%;
+}
+
+.circle-5{
+  height:2.5rem;
+  width:2.5rem;
+  border-radius:50%;
+}
+
+.circle-6{
+  height:3rem;
+  width:3rem;
+  border-radius:50%;
+}
+
+.circle-7{
+  height:3.5rem;
+  width:3.5rem;
+  border-radius:50%;
+}
+
+.circle-8{
+  height:4rem;
+  width:4rem;
+  border-radius:50%;
+}
+
+.circle-9{
+  height:4.5rem;
+  width:4.5rem;
+  border-radius:50%;
+}
+
+.circle-10{
+  height:5rem;
+  width:5rem;
+  border-radius:50%;
+}
+
+.circle-15{
+  height:7.5rem;
+  width:7.5rem;
+  border-radius:50%;
+}
+
+.circle-card{
+  height:10rem;
+  width:10rem;
+  border-radius:50%;
+}
+
+.circle-card-lg{
+  height:15rem;
+  width:15rem;
+  border-radius:50%;
+}
+
+.circle-mobile{
+  height:20rem;
+  width:20rem;
+  border-radius:50%;
+}
+
+.clearfix::after{
+  content:"";
+  display:block;
+  clear:both;
+}
+
+.text-transparent{
+  color:transparent;
+}
+
+.hover\:text-transparent:hover{
+  color:transparent;
+}
+
+.text-black{
+  color:black;
+}
+
+.hover\:text-black:hover{
+  color:black;
+}
+
+.text-white{
+  color:white;
+}
+
+.hover\:text-white:hover{
+  color:white;
+}
+
+.text-red{
+  color:#e52207;
+}
+
+.hover\:text-red:hover{
+  color:#e52207;
+}
+
+.text-orange{
+  color:#e66f0e;
+}
+
+.hover\:text-orange:hover{
+  color:#e66f0e;
+}
+
+.text-gold{
+  color:#ffbe2e;
+}
+
+.hover\:text-gold:hover{
+  color:#ffbe2e;
+}
+
+.text-yellow{
+  color:#fee685;
+}
+
+.hover\:text-yellow:hover{
+  color:#fee685;
+}
+
+.text-green{
+  color:#538200;
+}
+
+.hover\:text-green:hover{
+  color:#538200;
+}
+
+.text-mint{
+  color:#04c585;
+}
+
+.hover\:text-mint:hover{
+  color:#04c585;
+}
+
+.text-cyan{
+  color:#009ec1;
+}
+
+.hover\:text-cyan:hover{
+  color:#009ec1;
+}
+
+.text-blue{
+  color:#0076d6;
+}
+
+.hover\:text-blue:hover{
+  color:#0076d6;
+}
+
+.text-indigo{
+  color:#676cc8;
+}
+
+.hover\:text-indigo:hover{
+  color:#676cc8;
+}
+
+.text-violet{
+  color:#8168b3;
+}
+
+.hover\:text-violet:hover{
+  color:#8168b3;
+}
+
+.text-magenta{
+  color:#d72d79;
+}
+
+.hover\:text-magenta:hover{
+  color:#d72d79;
+}
+
+.text-gray-5{
+  color:#f0f0f0;
+}
+
+.hover\:text-gray-5:hover{
+  color:#f0f0f0;
+}
+
+.text-gray-10{
+  color:#e6e6e6;
+}
+
+.hover\:text-gray-10:hover{
+  color:#e6e6e6;
+}
+
+.text-gray-30{
+  color:#adadad;
+}
+
+.hover\:text-gray-30:hover{
+  color:#adadad;
+}
+
+.text-gray-50{
+  color:#757575;
+}
+
+.hover\:text-gray-50:hover{
+  color:#757575;
+}
+
+.text-gray-70{
+  color:#454545;
+}
+
+.hover\:text-gray-70:hover{
+  color:#454545;
+}
+
+.text-gray-90{
+  color:#1b1b1b;
+}
+
+.hover\:text-gray-90:hover{
+  color:#1b1b1b;
+}
+
+.text-base-lightest{
+  color:#f0f0f0;
+}
+
+.hover\:text-base-lightest:hover{
+  color:#f0f0f0;
+}
+
+.text-base-lighter{
+  color:#dfe1e2;
+}
+
+.hover\:text-base-lighter:hover{
+  color:#dfe1e2;
+}
+
+.text-base-light{
+  color:#a9aeb1;
+}
+
+.hover\:text-base-light:hover{
+  color:#a9aeb1;
+}
+
+.text-base{
+  color:#71767a;
+}
+
+.hover\:text-base:hover{
+  color:#71767a;
+}
+
+.text-base-dark{
+  color:#565c65;
+}
+
+.hover\:text-base-dark:hover{
+  color:#565c65;
+}
+
+.text-base-darker{
+  color:#3d4551;
+}
+
+.hover\:text-base-darker:hover{
+  color:#3d4551;
+}
+
+.text-base-darkest{
+  color:#1b1b1b;
+}
+
+.hover\:text-base-darkest:hover{
+  color:#1b1b1b;
+}
+
+.text-ink{
+  color:#1b1b1b;
+}
+
+.hover\:text-ink:hover{
+  color:#1b1b1b;
+}
+
+.text-primary-lighter{
+  color:#d9e8f6;
+}
+
+.hover\:text-primary-lighter:hover{
+  color:#d9e8f6;
+}
+
+.text-primary-light{
+  color:#73b3e7;
+}
+
+.hover\:text-primary-light:hover{
+  color:#73b3e7;
+}
+
+.text-primary{
+  color:#005ea2;
+}
+
+.hover\:text-primary:hover{
+  color:#005ea2;
+}
+
+.text-primary-vivid{
+  color:#0050d8;
+}
+
+.hover\:text-primary-vivid:hover{
+  color:#0050d8;
+}
+
+.text-primary-dark{
+  color:#1a4480;
+}
+
+.hover\:text-primary-dark:hover{
+  color:#1a4480;
+}
+
+.text-primary-darker{
+  color:#162e51;
+}
+
+.hover\:text-primary-darker:hover{
+  color:#162e51;
+}
+
+.text-secondary-lighter{
+  color:#f3e1e4;
+}
+
+.hover\:text-secondary-lighter:hover{
+  color:#f3e1e4;
+}
+
+.text-secondary-light{
+  color:#f2938c;
+}
+
+.hover\:text-secondary-light:hover{
+  color:#f2938c;
+}
+
+.text-secondary{
+  color:#d83933;
+}
+
+.hover\:text-secondary:hover{
+  color:#d83933;
+}
+
+.text-secondary-vivid{
+  color:#e41d3d;
+}
+
+.hover\:text-secondary-vivid:hover{
+  color:#e41d3d;
+}
+
+.text-secondary-dark{
+  color:#b50909;
+}
+
+.hover\:text-secondary-dark:hover{
+  color:#b50909;
+}
+
+.text-secondary-darker{
+  color:#8b0a03;
+}
+
+.hover\:text-secondary-darker:hover{
+  color:#8b0a03;
+}
+
+.text-accent-warm-darker{
+  color:#775540;
+}
+
+.hover\:text-accent-warm-darker:hover{
+  color:#775540;
+}
+
+.text-accent-warm-dark{
+  color:#c05600;
+}
+
+.hover\:text-accent-warm-dark:hover{
+  color:#c05600;
+}
+
+.text-accent-warm{
+  color:#fa9441;
+}
+
+.hover\:text-accent-warm:hover{
+  color:#fa9441;
+}
+
+.text-accent-warm-light{
+  color:#ffbc78;
+}
+
+.hover\:text-accent-warm-light:hover{
+  color:#ffbc78;
+}
+
+.text-accent-warm-lighter{
+  color:#f2e4d4;
+}
+
+.hover\:text-accent-warm-lighter:hover{
+  color:#f2e4d4;
+}
+
+.text-accent-cool-darker{
+  color:#07648d;
+}
+
+.hover\:text-accent-cool-darker:hover{
+  color:#07648d;
+}
+
+.text-accent-cool-dark{
+  color:#28a0cb;
+}
+
+.hover\:text-accent-cool-dark:hover{
+  color:#28a0cb;
+}
+
+.text-accent-cool{
+  color:#00bde3;
+}
+
+.hover\:text-accent-cool:hover{
+  color:#00bde3;
+}
+
+.text-accent-cool-light{
+  color:#97d4ea;
+}
+
+.hover\:text-accent-cool-light:hover{
+  color:#97d4ea;
+}
+
+.text-accent-cool-lighter{
+  color:#e1f3f8;
+}
+
+.hover\:text-accent-cool-lighter:hover{
+  color:#e1f3f8;
+}
+
+.text-error-lighter{
+  color:#f4e3db;
+}
+
+.hover\:text-error-lighter:hover{
+  color:#f4e3db;
+}
+
+.text-error-light{
+  color:#f39268;
+}
+
+.hover\:text-error-light:hover{
+  color:#f39268;
+}
+
+.text-error{
+  color:#d54309;
+}
+
+.hover\:text-error:hover{
+  color:#d54309;
+}
+
+.text-error-dark{
+  color:#b50909;
+}
+
+.hover\:text-error-dark:hover{
+  color:#b50909;
+}
+
+.text-error-darker{
+  color:#6f3331;
+}
+
+.hover\:text-error-darker:hover{
+  color:#6f3331;
+}
+
+.text-warning-lighter{
+  color:#faf3d1;
+}
+
+.hover\:text-warning-lighter:hover{
+  color:#faf3d1;
+}
+
+.text-warning-light{
+  color:#fee685;
+}
+
+.hover\:text-warning-light:hover{
+  color:#fee685;
+}
+
+.text-warning{
+  color:#ffbe2e;
+}
+
+.hover\:text-warning:hover{
+  color:#ffbe2e;
+}
+
+.text-warning-dark{
+  color:#e5a000;
+}
+
+.hover\:text-warning-dark:hover{
+  color:#e5a000;
+}
+
+.text-warning-darker{
+  color:#936f38;
+}
+
+.hover\:text-warning-darker:hover{
+  color:#936f38;
+}
+
+.text-success-lighter{
+  color:#ecf3ec;
+}
+
+.hover\:text-success-lighter:hover{
+  color:#ecf3ec;
+}
+
+.text-success-light{
+  color:#70e17b;
+}
+
+.hover\:text-success-light:hover{
+  color:#70e17b;
+}
+
+.text-success{
+  color:#00a91c;
+}
+
+.hover\:text-success:hover{
+  color:#00a91c;
+}
+
+.text-success-dark{
+  color:#008817;
+}
+
+.hover\:text-success-dark:hover{
+  color:#008817;
+}
+
+.text-success-darker{
+  color:#216e1f;
+}
+
+.hover\:text-success-darker:hover{
+  color:#216e1f;
+}
+
+.text-info-lighter{
+  color:#e7f6f8;
+}
+
+.hover\:text-info-lighter:hover{
+  color:#e7f6f8;
+}
+
+.text-info-light{
+  color:#99deea;
+}
+
+.hover\:text-info-light:hover{
+  color:#99deea;
+}
+
+.text-info{
+  color:#00bde3;
+}
+
+.hover\:text-info:hover{
+  color:#00bde3;
+}
+
+.text-info-dark{
+  color:#009ec1;
+}
+
+.hover\:text-info-dark:hover{
+  color:#009ec1;
+}
+
+.text-info-darker{
+  color:#2e6276;
+}
+
+.hover\:text-info-darker:hover{
+  color:#2e6276;
+}
+
+.text-disabled-lighter{
+  color:#c9c9c9;
+}
+
+.hover\:text-disabled-lighter:hover{
+  color:#c9c9c9;
+}
+
+.text-disabled-light{
+  color:#919191;
+}
+
+.hover\:text-disabled-light:hover{
+  color:#919191;
+}
+
+.text-disabled{
+  color:#757575;
+}
+
+.hover\:text-disabled:hover{
+  color:#757575;
+}
+
+.text-disabled-dark{
+  color:#454545;
+}
+
+.hover\:text-disabled-dark:hover{
+  color:#454545;
+}
+
+.text-disabled-darker{
+  color:#1b1b1b;
+}
+
+.hover\:text-disabled-darker:hover{
+  color:#1b1b1b;
+}
+
+.text-emergency{
+  color:#9c3d10;
+}
+
+.hover\:text-emergency:hover{
+  color:#9c3d10;
+}
+
+.text-emergency-dark{
+  color:#332d29;
+}
+
+.hover\:text-emergency-dark:hover{
+  color:#332d29;
+}
+
+.cursor-auto{
+  cursor:auto;
+}
+
+.cursor-default{
+  cursor:default;
+}
+
+.cursor-pointer{
+  cursor:pointer;
+}
+
+.cursor-wait{
+  cursor:wait;
+}
+
+.cursor-move{
+  cursor:move;
+}
+
+.cursor-not-allowed{
+  cursor:not-allowed;
+}
+
+.display-block{
+  display:block;
+}
+
+.display-flex{
+  display:flex;
+}
+
+.display-none{
+  display:none;
+}
+
+.display-inline{
+  display:inline;
+}
+
+.display-inline-block{
+  display:inline-block;
+}
+
+.display-inline-flex{
+  display:inline-flex;
+}
+
+.display-table{
+  display:table;
+}
+
+.display-table-cell{
+  display:table-cell;
+}
+
+.display-table-row{
+  display:table-row;
+}
+
+.flex-1{
+  flex:1 1 0%;
+}
+
+.flex-2{
+  flex:2 1 0%;
+}
+
+.flex-3{
+  flex:3 1 0%;
+}
+
+.flex-4{
+  flex:4 1 0%;
+}
+
+.flex-5{
+  flex:5 1 0%;
+}
+
+.flex-6{
+  flex:6 1 0%;
+}
+
+.flex-7{
+  flex:7 1 0%;
+}
+
+.flex-8{
+  flex:8 1 0%;
+}
+
+.flex-9{
+  flex:9 1 0%;
+}
+
+.flex-10{
+  flex:10 1 0%;
+}
+
+.flex-11{
+  flex:11 1 0%;
+}
+
+.flex-12{
+  flex:12 1 0%;
+}
+
+.flex-fill{
+  flex:1 1 0%;
+}
+
+.flex-auto{
+  flex:0 1 auto;
+}
+
+.flex-row{
+  flex-direction:row;
+}
+
+.flex-column{
+  flex-direction:column;
+}
+
+.flex-wrap{
+  flex-wrap:wrap;
+}
+
+.flex-no-wrap{
+  flex-wrap:nowrap;
+}
+
+.float-left{
+  float:left;
+}
+
+.float-none{
+  float:none;
+}
+
+.float-right{
+  float:right;
+}
+
+.font-mono-3xs{
+  font-size:0.77rem;
+}
+
+.font-mono-2xs{
+  font-size:0.83rem;
+}
+
+.font-mono-xs{
+  font-size:0.89rem;
+}
+
+.font-mono-sm{
+  font-size:0.95rem;
+}
+
+.font-mono-md{
+  font-size:1.01rem;
+}
+
+.font-mono-lg{
+  font-size:1.31rem;
+}
+
+.font-mono-xl{
+  font-size:1.91rem;
+}
+
+.font-mono-2xl{
+  font-size:2.38rem;
+}
+
+.font-mono-3xl{
+  font-size:2.86rem;
+}
+
+.font-sans-3xs{
+  font-size:0.87rem;
+}
+
+.font-sans-2xs{
+  font-size:0.93rem;
+}
+
+.font-sans-xs{
+  font-size:1rem;
+}
+
+.font-sans-sm{
+  font-size:1.06rem;
+}
+
+.font-sans-md{
+  font-size:1.13rem;
+}
+
+.font-sans-lg{
+  font-size:1.46rem;
+}
+
+.font-sans-xl{
+  font-size:2.13rem;
+}
+
+.font-sans-2xl{
+  font-size:2.66rem;
+}
+
+.font-sans-3xl{
+  font-size:3.19rem;
+}
+
+.font-serif-3xs{
+  font-size:0.79rem;
+}
+
+.font-serif-2xs{
+  font-size:0.85rem;
+}
+
+.font-serif-xs{
+  font-size:0.91rem;
+}
+
+.font-serif-sm{
+  font-size:0.98rem;
+}
+
+.font-serif-md{
+  font-size:1.04rem;
+}
+
+.font-serif-lg{
+  font-size:1.34rem;
+}
+
+.font-serif-xl{
+  font-size:1.95rem;
+}
+
+.font-serif-2xl{
+  font-size:2.44rem;
+}
+
+.font-serif-3xl{
+  font-size:2.93rem;
+}
+
+.font-heading-3xs{
+  font-size:0.79rem;
+}
+
+.font-heading-2xs{
+  font-size:0.85rem;
+}
+
+.font-heading-xs{
+  font-size:0.91rem;
+}
+
+.font-heading-sm{
+  font-size:0.98rem;
+}
+
+.font-heading-md{
+  font-size:1.04rem;
+}
+
+.font-heading-lg{
+  font-size:1.34rem;
+}
+
+.font-heading-xl{
+  font-size:1.95rem;
+}
+
+.font-heading-2xl{
+  font-size:2.44rem;
+}
+
+.font-heading-3xl{
+  font-size:2.93rem;
+}
+
+.font-body-3xs{
+  font-size:0.87rem;
+}
+
+.font-body-2xs{
+  font-size:0.93rem;
+}
+
+.font-body-xs{
+  font-size:1rem;
+}
+
+.font-body-sm{
+  font-size:1.06rem;
+}
+
+.font-body-md{
+  font-size:1.13rem;
+}
+
+.font-body-lg{
+  font-size:1.46rem;
+}
+
+.font-body-xl{
+  font-size:2.13rem;
+}
+
+.font-body-2xl{
+  font-size:2.66rem;
+}
+
+.font-body-3xl{
+  font-size:3.19rem;
+}
+
+.font-code-3xs{
+  font-size:0.77rem;
+}
+
+.font-code-2xs{
+  font-size:0.83rem;
+}
+
+.font-code-xs{
+  font-size:0.89rem;
+}
+
+.font-code-sm{
+  font-size:0.95rem;
+}
+
+.font-code-md{
+  font-size:1.01rem;
+}
+
+.font-code-lg{
+  font-size:1.31rem;
+}
+
+.font-code-xl{
+  font-size:1.91rem;
+}
+
+.font-code-2xl{
+  font-size:2.38rem;
+}
+
+.font-code-3xl{
+  font-size:2.86rem;
+}
+
+.font-alt-3xs{
+  font-size:0.79rem;
+}
+
+.font-alt-2xs{
+  font-size:0.85rem;
+}
+
+.font-alt-xs{
+  font-size:0.91rem;
+}
+
+.font-alt-sm{
+  font-size:0.98rem;
+}
+
+.font-alt-md{
+  font-size:1.04rem;
+}
+
+.font-alt-lg{
+  font-size:1.34rem;
+}
+
+.font-alt-xl{
+  font-size:1.95rem;
+}
+
+.font-alt-2xl{
+  font-size:2.44rem;
+}
+
+.font-alt-3xl{
+  font-size:2.93rem;
+}
+
+.font-ui-3xs{
+  font-size:0.87rem;
+}
+
+.font-ui-2xs{
+  font-size:0.93rem;
+}
+
+.font-ui-xs{
+  font-size:1rem;
+}
+
+.font-ui-sm{
+  font-size:1.06rem;
+}
+
+.font-ui-md{
+  font-size:1.13rem;
+}
+
+.font-ui-lg{
+  font-size:1.46rem;
+}
+
+.font-ui-xl{
+  font-size:2.13rem;
+}
+
+.font-ui-2xl{
+  font-size:2.66rem;
+}
+
+.font-ui-3xl{
+  font-size:3.19rem;
+}
+
+.font-family-mono{
+  font-family:Roboto Mono Web, Bitstream Vera Sans Mono, Consolas, Courier, monospace;
+}
+
+.font-family-sans{
+  font-family:Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
+}
+
+.font-family-serif{
+  font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+}
+
+.font-family-ui{
+  font-family:Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
+}
+
+.font-family-heading{
+  font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+}
+
+.font-family-body{
+  font-family:Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
+}
+
+.font-family-code{
+  font-family:Roboto Mono Web, Bitstream Vera Sans Mono, Consolas, Courier, monospace;
+}
+
+.font-family-alt{
+  font-family:Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;
+}
+
+.text-tabular{
+  font-feature-settings:"tnum" 1, "kern" 1;
+}
+
+.text-no-tabular{
+  font-feature-settings:"kern" 1;
+}
+
+.text-italic{
+  font-style:italic;
+}
+
+.text-no-italic{
+  font-style:normal;
+}
+
+.text-light{
+  font-weight:300;
+}
+
+.text-normal{
+  font-weight:normal;
+}
+
+.text-bold{
+  font-weight:700;
+}
+
+.height-1px{
+  height:1px;
+}
+
+.height-2px{
+  height:2px;
+}
+
+.height-05{
+  height:0.25rem;
+}
+
+.height-1{
+  height:0.5rem;
+}
+
+.height-105{
+  height:0.75rem;
+}
+
+.height-2{
+  height:1rem;
+}
+
+.height-205{
+  height:1.25rem;
+}
+
+.height-3{
+  height:1.5rem;
+}
+
+.height-4{
+  height:2rem;
+}
+
+.height-5{
+  height:2.5rem;
+}
+
+.height-6{
+  height:3rem;
+}
+
+.height-7{
+  height:3.5rem;
+}
+
+.height-8{
+  height:4rem;
+}
+
+.height-9{
+  height:4.5rem;
+}
+
+.height-10{
+  height:5rem;
+}
+
+.height-15{
+  height:7.5rem;
+}
+
+.height-card{
+  height:10rem;
+}
+
+.height-card-lg{
+  height:15rem;
+}
+
+.height-mobile{
+  height:20rem;
+}
+
+.height-0{
+  height:0;
+}
+
+.height-auto{
+  height:auto;
+}
+
+.height-full{
+  height:100%;
+}
+
+.height-viewport{
+  height:100vh;
+}
+
+.flex-justify-center{
+  justify-content:center;
+}
+
+.flex-justify-start{
+  justify-content:flex-start;
+}
+
+.flex-justify-end{
+  justify-content:flex-end;
+}
+
+.flex-justify{
+  justify-content:space-between;
+}
+
+.left-1px{
+  left:1px;
+}
+
+.left-2px{
+  left:2px;
+}
+
+.left-05{
+  left:0.25rem;
+}
+
+.left-1{
+  left:0.5rem;
+}
+
+.left-105{
+  left:0.75rem;
+}
+
+.left-2{
+  left:1rem;
+}
+
+.left-205{
+  left:1.25rem;
+}
+
+.left-3{
+  left:1.5rem;
+}
+
+.left-neg-1px{
+  left:-1px;
+}
+
+.left-neg-2px{
+  left:-2px;
+}
+
+.left-neg-05{
+  left:-0.25rem;
+}
+
+.left-neg-1{
+  left:-0.5rem;
+}
+
+.left-neg-105{
+  left:-0.75rem;
+}
+
+.left-neg-2{
+  left:-1rem;
+}
+
+.left-neg-205{
+  left:-1.25rem;
+}
+
+.left-neg-3{
+  left:-1.5rem;
+}
+
+.left-0{
+  left:0;
+}
+
+.left-auto{
+  left:auto;
+}
+
+.left-full{
+  left:100%;
+}
+
+.text-ls-auto{
+  letter-spacing:initial;
+}
+
+.text-ls-neg-3{
+  letter-spacing:-0.03em;
+}
+
+.text-ls-neg-2{
+  letter-spacing:-0.02em;
+}
+
+.text-ls-neg-1{
+  letter-spacing:-0.01em;
+}
+
+.text-ls-1{
+  letter-spacing:0.025em;
+}
+
+.text-ls-2{
+  letter-spacing:0.1em;
+}
+
+.text-ls-3{
+  letter-spacing:0.15em;
+}
+
+.line-height-sans-1{
+  line-height:0.9;
+}
+
+.line-height-sans-2{
+  line-height:1.1;
+}
+
+.line-height-sans-3{
+  line-height:1.3;
+}
+
+.line-height-sans-4{
+  line-height:1.4;
+}
+
+.line-height-sans-5{
+  line-height:1.5;
+}
+
+.line-height-sans-6{
+  line-height:1.6;
+}
+
+.line-height-serif-1{
+  line-height:1;
+}
+
+.line-height-serif-2{
+  line-height:1.2;
+}
+
+.line-height-serif-3{
+  line-height:1.4;
+}
+
+.line-height-serif-4{
+  line-height:1.5;
+}
+
+.line-height-serif-5{
+  line-height:1.7;
+}
+
+.line-height-serif-6{
+  line-height:1.8;
+}
+
+.line-height-mono-1{
+  line-height:1;
+}
+
+.line-height-mono-2{
+  line-height:1.3;
+}
+
+.line-height-mono-3{
+  line-height:1.4;
+}
+
+.line-height-mono-4{
+  line-height:1.6;
+}
+
+.line-height-mono-5{
+  line-height:1.7;
+}
+
+.line-height-mono-6{
+  line-height:1.8;
+}
+
+.line-height-heading-1{
+  line-height:1;
+}
+
+.line-height-heading-2{
+  line-height:1.2;
+}
+
+.line-height-heading-3{
+  line-height:1.4;
+}
+
+.line-height-heading-4{
+  line-height:1.5;
+}
+
+.line-height-heading-5{
+  line-height:1.7;
+}
+
+.line-height-heading-6{
+  line-height:1.8;
+}
+
+.line-height-ui-1{
+  line-height:0.9;
+}
+
+.line-height-ui-2{
+  line-height:1.1;
+}
+
+.line-height-ui-3{
+  line-height:1.3;
+}
+
+.line-height-ui-4{
+  line-height:1.4;
+}
+
+.line-height-ui-5{
+  line-height:1.5;
+}
+
+.line-height-ui-6{
+  line-height:1.6;
+}
+
+.line-height-body-1{
+  line-height:0.9;
+}
+
+.line-height-body-2{
+  line-height:1.1;
+}
+
+.line-height-body-3{
+  line-height:1.3;
+}
+
+.line-height-body-4{
+  line-height:1.4;
+}
+
+.line-height-body-5{
+  line-height:1.5;
+}
+
+.line-height-body-6{
+  line-height:1.6;
+}
+
+.line-height-code-1{
+  line-height:1;
+}
+
+.line-height-code-2{
+  line-height:1.3;
+}
+
+.line-height-code-3{
+  line-height:1.4;
+}
+
+.line-height-code-4{
+  line-height:1.6;
+}
+
+.line-height-code-5{
+  line-height:1.7;
+}
+
+.line-height-code-6{
+  line-height:1.8;
+}
+
+.line-height-alt-1{
+  line-height:1;
+}
+
+.line-height-alt-2{
+  line-height:1.2;
+}
+
+.line-height-alt-3{
+  line-height:1.4;
+}
+
+.line-height-alt-4{
+  line-height:1.5;
+}
+
+.line-height-alt-5{
+  line-height:1.7;
+}
+
+.line-height-alt-6{
+  line-height:1.8;
+}
+
+.margin-neg-1px{
+  margin:-1px;
+}
+
+.margin-neg-2px{
+  margin:-2px;
+}
+
+.margin-neg-05{
+  margin:-0.25rem;
+}
+
+.margin-neg-1{
+  margin:-0.5rem;
+}
+
+.margin-neg-105{
+  margin:-0.75rem;
+}
+
+.margin-neg-2{
+  margin:-1rem;
+}
+
+.margin-neg-205{
+  margin:-1.25rem;
+}
+
+.margin-neg-3{
+  margin:-1.5rem;
+}
+
+.margin-1px{
+  margin:1px;
+}
+
+.margin-2px{
+  margin:2px;
+}
+
+.margin-05{
+  margin:0.25rem;
+}
+
+.margin-1{
+  margin:0.5rem;
+}
+
+.margin-105{
+  margin:0.75rem;
+}
+
+.margin-2{
+  margin:1rem;
+}
+
+.margin-205{
+  margin:1.25rem;
+}
+
+.margin-3{
+  margin:1.5rem;
+}
+
+.margin-neg-4{
+  margin:-2rem;
+}
+
+.margin-neg-5{
+  margin:-2.5rem;
+}
+
+.margin-neg-6{
+  margin:-3rem;
+}
+
+.margin-neg-7{
+  margin:-3.5rem;
+}
+
+.margin-neg-8{
+  margin:-4rem;
+}
+
+.margin-neg-9{
+  margin:-4.5rem;
+}
+
+.margin-neg-10{
+  margin:-5rem;
+}
+
+.margin-neg-15{
+  margin:-7.5rem;
+}
+
+.margin-4{
+  margin:2rem;
+}
+
+.margin-5{
+  margin:2.5rem;
+}
+
+.margin-6{
+  margin:3rem;
+}
+
+.margin-7{
+  margin:3.5rem;
+}
+
+.margin-8{
+  margin:4rem;
+}
+
+.margin-9{
+  margin:4.5rem;
+}
+
+.margin-10{
+  margin:5rem;
+}
+
+.margin-15{
+  margin:7.5rem;
+}
+
+.margin-05em{
+  margin:0.5em;
+}
+
+.margin-1em{
+  margin:1em;
+}
+
+.margin-105em{
+  margin:1.5em;
+}
+
+.margin-2em{
+  margin:2em;
+}
+
+.margin-0{
+  margin:0;
+}
+
+.margin-y-1px{
+  margin-top:1px;
+  margin-bottom:1px;
+}
+
+.margin-top-1px{
+  margin-top:1px;
+}
+
+.margin-bottom-1px{
+  margin-bottom:1px;
+}
+
+.margin-y-2px{
+  margin-top:2px;
+  margin-bottom:2px;
+}
+
+.margin-top-2px{
+  margin-top:2px;
+}
+
+.margin-bottom-2px{
+  margin-bottom:2px;
+}
+
+.margin-y-05{
+  margin-top:0.25rem;
+  margin-bottom:0.25rem;
+}
+
+.margin-top-05{
+  margin-top:0.25rem;
+}
+
+.margin-bottom-05{
+  margin-bottom:0.25rem;
+}
+
+.margin-y-1{
+  margin-top:0.5rem;
+  margin-bottom:0.5rem;
+}
+
+.margin-top-1{
+  margin-top:0.5rem;
+}
+
+.margin-bottom-1{
+  margin-bottom:0.5rem;
+}
+
+.margin-y-105{
+  margin-top:0.75rem;
+  margin-bottom:0.75rem;
+}
+
+.margin-top-105{
+  margin-top:0.75rem;
+}
+
+.margin-bottom-105{
+  margin-bottom:0.75rem;
+}
+
+.margin-y-2{
+  margin-top:1rem;
+  margin-bottom:1rem;
+}
+
+.margin-top-2{
+  margin-top:1rem;
+}
+
+.margin-bottom-2{
+  margin-bottom:1rem;
+}
+
+.margin-y-205{
+  margin-top:1.25rem;
+  margin-bottom:1.25rem;
+}
+
+.margin-top-205{
+  margin-top:1.25rem;
+}
+
+.margin-bottom-205{
+  margin-bottom:1.25rem;
+}
+
+.margin-y-3{
+  margin-top:1.5rem;
+  margin-bottom:1.5rem;
+}
+
+.margin-top-3{
+  margin-top:1.5rem;
+}
+
+.margin-bottom-3{
+  margin-bottom:1.5rem;
+}
+
+.margin-y-neg-1px{
+  margin-top:-1px;
+  margin-bottom:-1px;
+}
+
+.margin-top-neg-1px{
+  margin-top:-1px;
+}
+
+.margin-bottom-neg-1px{
+  margin-bottom:-1px;
+}
+
+.margin-y-neg-2px{
+  margin-top:-2px;
+  margin-bottom:-2px;
+}
+
+.margin-top-neg-2px{
+  margin-top:-2px;
+}
+
+.margin-bottom-neg-2px{
+  margin-bottom:-2px;
+}
+
+.margin-y-neg-05{
+  margin-top:-0.25rem;
+  margin-bottom:-0.25rem;
+}
+
+.margin-top-neg-05{
+  margin-top:-0.25rem;
+}
+
+.margin-bottom-neg-05{
+  margin-bottom:-0.25rem;
+}
+
+.margin-y-neg-1{
+  margin-top:-0.5rem;
+  margin-bottom:-0.5rem;
+}
+
+.margin-top-neg-1{
+  margin-top:-0.5rem;
+}
+
+.margin-bottom-neg-1{
+  margin-bottom:-0.5rem;
+}
+
+.margin-y-neg-105{
+  margin-top:-0.75rem;
+  margin-bottom:-0.75rem;
+}
+
+.margin-top-neg-105{
+  margin-top:-0.75rem;
+}
+
+.margin-bottom-neg-105{
+  margin-bottom:-0.75rem;
+}
+
+.margin-y-neg-2{
+  margin-top:-1rem;
+  margin-bottom:-1rem;
+}
+
+.margin-top-neg-2{
+  margin-top:-1rem;
+}
+
+.margin-bottom-neg-2{
+  margin-bottom:-1rem;
+}
+
+.margin-y-neg-205{
+  margin-top:-1.25rem;
+  margin-bottom:-1.25rem;
+}
+
+.margin-top-neg-205{
+  margin-top:-1.25rem;
+}
+
+.margin-bottom-neg-205{
+  margin-bottom:-1.25rem;
+}
+
+.margin-y-neg-3{
+  margin-top:-1.5rem;
+  margin-bottom:-1.5rem;
+}
+
+.margin-top-neg-3{
+  margin-top:-1.5rem;
+}
+
+.margin-bottom-neg-3{
+  margin-bottom:-1.5rem;
+}
+
+.margin-y-neg-4{
+  margin-top:-2rem;
+  margin-bottom:-2rem;
+}
+
+.margin-top-neg-4{
+  margin-top:-2rem;
+}
+
+.margin-bottom-neg-4{
+  margin-bottom:-2rem;
+}
+
+.margin-y-neg-5{
+  margin-top:-2.5rem;
+  margin-bottom:-2.5rem;
+}
+
+.margin-top-neg-5{
+  margin-top:-2.5rem;
+}
+
+.margin-bottom-neg-5{
+  margin-bottom:-2.5rem;
+}
+
+.margin-y-neg-6{
+  margin-top:-3rem;
+  margin-bottom:-3rem;
+}
+
+.margin-top-neg-6{
+  margin-top:-3rem;
+}
+
+.margin-bottom-neg-6{
+  margin-bottom:-3rem;
+}
+
+.margin-y-neg-7{
+  margin-top:-3.5rem;
+  margin-bottom:-3.5rem;
+}
+
+.margin-top-neg-7{
+  margin-top:-3.5rem;
+}
+
+.margin-bottom-neg-7{
+  margin-bottom:-3.5rem;
+}
+
+.margin-y-neg-8{
+  margin-top:-4rem;
+  margin-bottom:-4rem;
+}
+
+.margin-top-neg-8{
+  margin-top:-4rem;
+}
+
+.margin-bottom-neg-8{
+  margin-bottom:-4rem;
+}
+
+.margin-y-neg-9{
+  margin-top:-4.5rem;
+  margin-bottom:-4.5rem;
+}
+
+.margin-top-neg-9{
+  margin-top:-4.5rem;
+}
+
+.margin-bottom-neg-9{
+  margin-bottom:-4.5rem;
+}
+
+.margin-y-neg-10{
+  margin-top:-5rem;
+  margin-bottom:-5rem;
+}
+
+.margin-top-neg-10{
+  margin-top:-5rem;
+}
+
+.margin-bottom-neg-10{
+  margin-bottom:-5rem;
+}
+
+.margin-y-neg-15{
+  margin-top:-7.5rem;
+  margin-bottom:-7.5rem;
+}
+
+.margin-top-neg-15{
+  margin-top:-7.5rem;
+}
+
+.margin-bottom-neg-15{
+  margin-bottom:-7.5rem;
+}
+
+.margin-y-4{
+  margin-top:2rem;
+  margin-bottom:2rem;
+}
+
+.margin-top-4{
+  margin-top:2rem;
+}
+
+.margin-bottom-4{
+  margin-bottom:2rem;
+}
+
+.margin-y-5{
+  margin-top:2.5rem;
+  margin-bottom:2.5rem;
+}
+
+.margin-top-5{
+  margin-top:2.5rem;
+}
+
+.margin-bottom-5{
+  margin-bottom:2.5rem;
+}
+
+.margin-y-6{
+  margin-top:3rem;
+  margin-bottom:3rem;
+}
+
+.margin-top-6{
+  margin-top:3rem;
+}
+
+.margin-bottom-6{
+  margin-bottom:3rem;
+}
+
+.margin-y-7{
+  margin-top:3.5rem;
+  margin-bottom:3.5rem;
+}
+
+.margin-top-7{
+  margin-top:3.5rem;
+}
+
+.margin-bottom-7{
+  margin-bottom:3.5rem;
+}
+
+.margin-y-8{
+  margin-top:4rem;
+  margin-bottom:4rem;
+}
+
+.margin-top-8{
+  margin-top:4rem;
+}
+
+.margin-bottom-8{
+  margin-bottom:4rem;
+}
+
+.margin-y-9{
+  margin-top:4.5rem;
+  margin-bottom:4.5rem;
+}
+
+.margin-top-9{
+  margin-top:4.5rem;
+}
+
+.margin-bottom-9{
+  margin-bottom:4.5rem;
+}
+
+.margin-y-10{
+  margin-top:5rem;
+  margin-bottom:5rem;
+}
+
+.margin-top-10{
+  margin-top:5rem;
+}
+
+.margin-bottom-10{
+  margin-bottom:5rem;
+}
+
+.margin-y-15{
+  margin-top:7.5rem;
+  margin-bottom:7.5rem;
+}
+
+.margin-top-15{
+  margin-top:7.5rem;
+}
+
+.margin-bottom-15{
+  margin-bottom:7.5rem;
+}
+
+.margin-y-05em{
+  margin-top:0.5em;
+  margin-bottom:0.5em;
+}
+
+.margin-top-05em{
+  margin-top:0.5em;
+}
+
+.margin-bottom-05em{
+  margin-bottom:0.5em;
+}
+
+.margin-y-1em{
+  margin-top:1em;
+  margin-bottom:1em;
+}
+
+.margin-top-1em{
+  margin-top:1em;
+}
+
+.margin-bottom-1em{
+  margin-bottom:1em;
+}
+
+.margin-y-105em{
+  margin-top:1.5em;
+  margin-bottom:1.5em;
+}
+
+.margin-top-105em{
+  margin-top:1.5em;
+}
+
+.margin-bottom-105em{
+  margin-bottom:1.5em;
+}
+
+.margin-y-2em{
+  margin-top:2em;
+  margin-bottom:2em;
+}
+
+.margin-top-2em{
+  margin-top:2em;
+}
+
+.margin-bottom-2em{
+  margin-bottom:2em;
+}
+
+.margin-y-0{
+  margin-top:0;
+  margin-bottom:0;
+}
+
+.margin-top-0{
+  margin-top:0;
+}
+
+.margin-bottom-0{
+  margin-bottom:0;
+}
+
+.margin-y-auto{
+  margin-top:auto;
+  margin-bottom:auto;
+}
+
+.margin-top-auto{
+  margin-top:auto;
+}
+
+.margin-bottom-auto{
+  margin-bottom:auto;
+}
+
+.margin-x-1px{
+  margin-left:1px;
+  margin-right:1px;
+}
+
+.margin-right-1px{
+  margin-right:1px;
+}
+
+.margin-left-1px{
+  margin-left:1px;
+}
+
+.margin-x-2px{
+  margin-left:2px;
+  margin-right:2px;
+}
+
+.margin-right-2px{
+  margin-right:2px;
+}
+
+.margin-left-2px{
+  margin-left:2px;
+}
+
+.margin-x-05{
+  margin-left:0.25rem;
+  margin-right:0.25rem;
+}
+
+.margin-right-05{
+  margin-right:0.25rem;
+}
+
+.margin-left-05{
+  margin-left:0.25rem;
+}
+
+.margin-x-1{
+  margin-left:0.5rem;
+  margin-right:0.5rem;
+}
+
+.margin-right-1{
+  margin-right:0.5rem;
+}
+
+.margin-left-1{
+  margin-left:0.5rem;
+}
+
+.margin-x-105{
+  margin-left:0.75rem;
+  margin-right:0.75rem;
+}
+
+.margin-right-105{
+  margin-right:0.75rem;
+}
+
+.margin-left-105{
+  margin-left:0.75rem;
+}
+
+.margin-x-2{
+  margin-left:1rem;
+  margin-right:1rem;
+}
+
+.margin-right-2{
+  margin-right:1rem;
+}
+
+.margin-left-2{
+  margin-left:1rem;
+}
+
+.margin-x-205{
+  margin-left:1.25rem;
+  margin-right:1.25rem;
+}
+
+.margin-right-205{
+  margin-right:1.25rem;
+}
+
+.margin-left-205{
+  margin-left:1.25rem;
+}
+
+.margin-x-3{
+  margin-left:1.5rem;
+  margin-right:1.5rem;
+}
+
+.margin-right-3{
+  margin-right:1.5rem;
+}
+
+.margin-left-3{
+  margin-left:1.5rem;
+}
+
+.margin-x-neg-1px{
+  margin-left:-1px;
+  margin-right:-1px;
+}
+
+.margin-right-neg-1px{
+  margin-right:-1px;
+}
+
+.margin-left-neg-1px{
+  margin-left:-1px;
+}
+
+.margin-x-neg-2px{
+  margin-left:-2px;
+  margin-right:-2px;
+}
+
+.margin-right-neg-2px{
+  margin-right:-2px;
+}
+
+.margin-left-neg-2px{
+  margin-left:-2px;
+}
+
+.margin-x-neg-05{
+  margin-left:-0.25rem;
+  margin-right:-0.25rem;
+}
+
+.margin-right-neg-05{
+  margin-right:-0.25rem;
+}
+
+.margin-left-neg-05{
+  margin-left:-0.25rem;
+}
+
+.margin-x-neg-1{
+  margin-left:-0.5rem;
+  margin-right:-0.5rem;
+}
+
+.margin-right-neg-1{
+  margin-right:-0.5rem;
+}
+
+.margin-left-neg-1{
+  margin-left:-0.5rem;
+}
+
+.margin-x-neg-105{
+  margin-left:-0.75rem;
+  margin-right:-0.75rem;
+}
+
+.margin-right-neg-105{
+  margin-right:-0.75rem;
+}
+
+.margin-left-neg-105{
+  margin-left:-0.75rem;
+}
+
+.margin-x-neg-2{
+  margin-left:-1rem;
+  margin-right:-1rem;
+}
+
+.margin-right-neg-2{
+  margin-right:-1rem;
+}
+
+.margin-left-neg-2{
+  margin-left:-1rem;
+}
+
+.margin-x-neg-205{
+  margin-left:-1.25rem;
+  margin-right:-1.25rem;
+}
+
+.margin-right-neg-205{
+  margin-right:-1.25rem;
+}
+
+.margin-left-neg-205{
+  margin-left:-1.25rem;
+}
+
+.margin-x-neg-3{
+  margin-left:-1.5rem;
+  margin-right:-1.5rem;
+}
+
+.margin-right-neg-3{
+  margin-right:-1.5rem;
+}
+
+.margin-left-neg-3{
+  margin-left:-1.5rem;
+}
+
+.margin-x-neg-4{
+  margin-left:-2rem;
+  margin-right:-2rem;
+}
+
+.margin-right-neg-4{
+  margin-right:-2rem;
+}
+
+.margin-left-neg-4{
+  margin-left:-2rem;
+}
+
+.margin-x-neg-5{
+  margin-left:-2.5rem;
+  margin-right:-2.5rem;
+}
+
+.margin-right-neg-5{
+  margin-right:-2.5rem;
+}
+
+.margin-left-neg-5{
+  margin-left:-2.5rem;
+}
+
+.margin-x-neg-6{
+  margin-left:-3rem;
+  margin-right:-3rem;
+}
+
+.margin-right-neg-6{
+  margin-right:-3rem;
+}
+
+.margin-left-neg-6{
+  margin-left:-3rem;
+}
+
+.margin-x-neg-7{
+  margin-left:-3.5rem;
+  margin-right:-3.5rem;
+}
+
+.margin-right-neg-7{
+  margin-right:-3.5rem;
+}
+
+.margin-left-neg-7{
+  margin-left:-3.5rem;
+}
+
+.margin-x-neg-8{
+  margin-left:-4rem;
+  margin-right:-4rem;
+}
+
+.margin-right-neg-8{
+  margin-right:-4rem;
+}
+
+.margin-left-neg-8{
+  margin-left:-4rem;
+}
+
+.margin-x-neg-9{
+  margin-left:-4.5rem;
+  margin-right:-4.5rem;
+}
+
+.margin-right-neg-9{
+  margin-right:-4.5rem;
+}
+
+.margin-left-neg-9{
+  margin-left:-4.5rem;
+}
+
+.margin-x-neg-10{
+  margin-left:-5rem;
+  margin-right:-5rem;
+}
+
+.margin-right-neg-10{
+  margin-right:-5rem;
+}
+
+.margin-left-neg-10{
+  margin-left:-5rem;
+}
+
+.margin-x-neg-15{
+  margin-left:-7.5rem;
+  margin-right:-7.5rem;
+}
+
+.margin-right-neg-15{
+  margin-right:-7.5rem;
+}
+
+.margin-left-neg-15{
+  margin-left:-7.5rem;
+}
+
+.margin-x-4{
+  margin-left:2rem;
+  margin-right:2rem;
+}
+
+.margin-right-4{
+  margin-right:2rem;
+}
+
+.margin-left-4{
+  margin-left:2rem;
+}
+
+.margin-x-5{
+  margin-left:2.5rem;
+  margin-right:2.5rem;
+}
+
+.margin-right-5{
+  margin-right:2.5rem;
+}
+
+.margin-left-5{
+  margin-left:2.5rem;
+}
+
+.margin-x-6{
+  margin-left:3rem;
+  margin-right:3rem;
+}
+
+.margin-right-6{
+  margin-right:3rem;
+}
+
+.margin-left-6{
+  margin-left:3rem;
+}
+
+.margin-x-7{
+  margin-left:3.5rem;
+  margin-right:3.5rem;
+}
+
+.margin-right-7{
+  margin-right:3.5rem;
+}
+
+.margin-left-7{
+  margin-left:3.5rem;
+}
+
+.margin-x-8{
+  margin-left:4rem;
+  margin-right:4rem;
+}
+
+.margin-right-8{
+  margin-right:4rem;
+}
+
+.margin-left-8{
+  margin-left:4rem;
+}
+
+.margin-x-9{
+  margin-left:4.5rem;
+  margin-right:4.5rem;
+}
+
+.margin-right-9{
+  margin-right:4.5rem;
+}
+
+.margin-left-9{
+  margin-left:4.5rem;
+}
+
+.margin-x-10{
+  margin-left:5rem;
+  margin-right:5rem;
+}
+
+.margin-right-10{
+  margin-right:5rem;
+}
+
+.margin-left-10{
+  margin-left:5rem;
+}
+
+.margin-x-15{
+  margin-left:7.5rem;
+  margin-right:7.5rem;
+}
+
+.margin-right-15{
+  margin-right:7.5rem;
+}
+
+.margin-left-15{
+  margin-left:7.5rem;
+}
+
+.margin-x-card{
+  margin-left:10rem;
+  margin-right:10rem;
+}
+
+.margin-right-card{
+  margin-right:10rem;
+}
+
+.margin-left-card{
+  margin-left:10rem;
+}
+
+.margin-x-card-lg{
+  margin-left:15rem;
+  margin-right:15rem;
+}
+
+.margin-right-card-lg{
+  margin-right:15rem;
+}
+
+.margin-left-card-lg{
+  margin-left:15rem;
+}
+
+.margin-x-mobile{
+  margin-left:20rem;
+  margin-right:20rem;
+}
+
+.margin-right-mobile{
+  margin-right:20rem;
+}
+
+.margin-left-mobile{
+  margin-left:20rem;
+}
+
+.margin-x-05em{
+  margin-left:0.5em;
+  margin-right:0.5em;
+}
+
+.margin-right-05em{
+  margin-right:0.5em;
+}
+
+.margin-left-05em{
+  margin-left:0.5em;
+}
+
+.margin-x-1em{
+  margin-left:1em;
+  margin-right:1em;
+}
+
+.margin-right-1em{
+  margin-right:1em;
+}
+
+.margin-left-1em{
+  margin-left:1em;
+}
+
+.margin-x-105em{
+  margin-left:1.5em;
+  margin-right:1.5em;
+}
+
+.margin-right-105em{
+  margin-right:1.5em;
+}
+
+.margin-left-105em{
+  margin-left:1.5em;
+}
+
+.margin-x-2em{
+  margin-left:2em;
+  margin-right:2em;
+}
+
+.margin-right-2em{
+  margin-right:2em;
+}
+
+.margin-left-2em{
+  margin-left:2em;
+}
+
+.margin-x-0{
+  margin-left:0;
+  margin-right:0;
+}
+
+.margin-right-0{
+  margin-right:0;
+}
+
+.margin-left-0{
+  margin-left:0;
+}
+
+.margin-x-auto{
+  margin-left:auto;
+  margin-right:auto;
+}
+
+.margin-right-auto{
+  margin-right:auto;
+}
+
+.margin-left-auto{
+  margin-left:auto;
+}
+
+.maxh-05{
+  max-height:0.25rem;
+}
+
+.maxh-1{
+  max-height:0.5rem;
+}
+
+.maxh-105{
+  max-height:0.75rem;
+}
+
+.maxh-2{
+  max-height:1rem;
+}
+
+.maxh-205{
+  max-height:1.25rem;
+}
+
+.maxh-3{
+  max-height:1.5rem;
+}
+
+.maxh-4{
+  max-height:2rem;
+}
+
+.maxh-5{
+  max-height:2.5rem;
+}
+
+.maxh-6{
+  max-height:3rem;
+}
+
+.maxh-7{
+  max-height:3.5rem;
+}
+
+.maxh-8{
+  max-height:4rem;
+}
+
+.maxh-9{
+  max-height:4.5rem;
+}
+
+.maxh-10{
+  max-height:5rem;
+}
+
+.maxh-15{
+  max-height:7.5rem;
+}
+
+.maxh-card{
+  max-height:10rem;
+}
+
+.maxh-card-lg{
+  max-height:15rem;
+}
+
+.maxh-mobile{
+  max-height:20rem;
+}
+
+.maxh-mobile-lg{
+  max-height:30rem;
+}
+
+.maxh-tablet{
+  max-height:40rem;
+}
+
+.maxh-tablet-lg{
+  max-height:55rem;
+}
+
+.maxh-none{
+  max-height:none;
+}
+
+.maxh-viewport{
+  max-height:100vh;
+}
+
+.maxw-05{
+  max-width:0.25rem;
+}
+
+.maxw-1{
+  max-width:0.5rem;
+}
+
+.maxw-105{
+  max-width:0.75rem;
+}
+
+.maxw-2{
+  max-width:1rem;
+}
+
+.maxw-205{
+  max-width:1.25rem;
+}
+
+.maxw-3{
+  max-width:1.5rem;
+}
+
+.maxw-4{
+  max-width:2rem;
+}
+
+.maxw-5{
+  max-width:2.5rem;
+}
+
+.maxw-6{
+  max-width:3rem;
+}
+
+.maxw-7{
+  max-width:3.5rem;
+}
+
+.maxw-8{
+  max-width:4rem;
+}
+
+.maxw-9{
+  max-width:4.5rem;
+}
+
+.maxw-10{
+  max-width:5rem;
+}
+
+.maxw-15{
+  max-width:7.5rem;
+}
+
+.maxw-card{
+  max-width:10rem;
+}
+
+.maxw-card-lg{
+  max-width:15rem;
+}
+
+.maxw-mobile{
+  max-width:20rem;
+}
+
+.maxw-mobile-lg{
+  max-width:30rem;
+}
+
+.maxw-tablet{
+  max-width:40rem;
+}
+
+.maxw-tablet-lg{
+  max-width:55rem;
+}
+
+.maxw-desktop{
+  max-width:64rem;
+}
+
+.maxw-desktop-lg{
+  max-width:75rem;
+}
+
+.maxw-widescreen{
+  max-width:87.5rem;
+}
+
+.maxw-none{
+  max-width:none;
+}
+
+.maxw-full{
+  max-width:100%;
+}
+
+.measure-1{
+  max-width:44ex;
+}
+
+.measure-2{
+  max-width:60ex;
+}
+
+.measure-3{
+  max-width:64ex;
+}
+
+.measure-4{
+  max-width:68ex;
+}
+
+.measure-5{
+  max-width:72ex;
+}
+
+.measure-6{
+  max-width:88ex;
+}
+
+.measure-none{
+  max-width:none;
+}
+
+.minh-1px{
+  min-height:1px;
+}
+
+.minh-2px{
+  min-height:2px;
+}
+
+.minh-05{
+  min-height:0.25rem;
+}
+
+.minh-1{
+  min-height:0.5rem;
+}
+
+.minh-105{
+  min-height:0.75rem;
+}
+
+.minh-2{
+  min-height:1rem;
+}
+
+.minh-205{
+  min-height:1.25rem;
+}
+
+.minh-3{
+  min-height:1.5rem;
+}
+
+.minh-4{
+  min-height:2rem;
+}
+
+.minh-5{
+  min-height:2.5rem;
+}
+
+.minh-6{
+  min-height:3rem;
+}
+
+.minh-7{
+  min-height:3.5rem;
+}
+
+.minh-8{
+  min-height:4rem;
+}
+
+.minh-9{
+  min-height:4.5rem;
+}
+
+.minh-10{
+  min-height:5rem;
+}
+
+.minh-15{
+  min-height:7.5rem;
+}
+
+.minh-card{
+  min-height:10rem;
+}
+
+.minh-card-lg{
+  min-height:15rem;
+}
+
+.minh-mobile{
+  min-height:20rem;
+}
+
+.minh-mobile-lg{
+  min-height:30rem;
+}
+
+.minh-tablet{
+  min-height:40rem;
+}
+
+.minh-tablet-lg{
+  min-height:55rem;
+}
+
+.minh-0{
+  min-height:0;
+}
+
+.minh-full{
+  min-height:100%;
+}
+
+.minh-viewport{
+  min-height:100vh;
+}
+
+.minw-05{
+  min-width:0.25rem;
+}
+
+.minw-1{
+  min-width:0.5rem;
+}
+
+.minw-105{
+  min-width:0.75rem;
+}
+
+.minw-2{
+  min-width:1rem;
+}
+
+.minw-205{
+  min-width:1.25rem;
+}
+
+.minw-3{
+  min-width:1.5rem;
+}
+
+.minw-4{
+  min-width:2rem;
+}
+
+.minw-5{
+  min-width:2.5rem;
+}
+
+.minw-6{
+  min-width:3rem;
+}
+
+.minw-7{
+  min-width:3.5rem;
+}
+
+.minw-8{
+  min-width:4rem;
+}
+
+.minw-9{
+  min-width:4.5rem;
+}
+
+.minw-10{
+  min-width:5rem;
+}
+
+.minw-15{
+  min-width:7.5rem;
+}
+
+.minw-0{
+  min-width:0;
+}
+
+.opacity-0{
+  opacity:0;
+}
+
+.opacity-10{
+  opacity:0.1;
+}
+
+.opacity-20{
+  opacity:0.2;
+}
+
+.opacity-30{
+  opacity:0.3;
+}
+
+.opacity-40{
+  opacity:0.4;
+}
+
+.opacity-50{
+  opacity:0.5;
+}
+
+.opacity-60{
+  opacity:0.6;
+}
+
+.opacity-70{
+  opacity:0.7;
+}
+
+.opacity-80{
+  opacity:0.8;
+}
+
+.opacity-90{
+  opacity:0.9;
+}
+
+.opacity-100{
+  opacity:1;
+}
+
+.order-first{
+  order:-1;
+}
+
+.order-last{
+  order:999;
+}
+
+.order-initial{
+  order:initial;
+}
+
+.order-0{
+  order:0;
+}
+
+.order-1{
+  order:1;
+}
+
+.order-2{
+  order:2;
+}
+
+.order-3{
+  order:3;
+}
+
+.order-4{
+  order:4;
+}
+
+.order-5{
+  order:5;
+}
+
+.order-6{
+  order:6;
+}
+
+.order-7{
+  order:7;
+}
+
+.order-8{
+  order:8;
+}
+
+.order-9{
+  order:9;
+}
+
+.order-10{
+  order:10;
+}
+
+.order-11{
+  order:11;
+}
+
+.outline-1px{
+  outline:1px solid;
+}
+
+.outline-2px{
+  outline:2px solid;
+}
+
+.outline-0{
+  outline:0 solid;
+}
+
+.outline-05{
+  outline:0.25rem solid;
+}
+
+.outline-transparent{
+  outline-color:transparent;
+}
+
+.outline-black{
+  outline-color:black;
+}
+
+.outline-white{
+  outline-color:white;
+}
+
+.outline-red{
+  outline-color:#e52207;
+}
+
+.outline-orange{
+  outline-color:#e66f0e;
+}
+
+.outline-gold{
+  outline-color:#ffbe2e;
+}
+
+.outline-yellow{
+  outline-color:#fee685;
+}
+
+.outline-green{
+  outline-color:#538200;
+}
+
+.outline-mint{
+  outline-color:#04c585;
+}
+
+.outline-cyan{
+  outline-color:#009ec1;
+}
+
+.outline-blue{
+  outline-color:#0076d6;
+}
+
+.outline-indigo{
+  outline-color:#676cc8;
+}
+
+.outline-violet{
+  outline-color:#8168b3;
+}
+
+.outline-magenta{
+  outline-color:#d72d79;
+}
+
+.outline-gray-5{
+  outline-color:#f0f0f0;
+}
+
+.outline-gray-10{
+  outline-color:#e6e6e6;
+}
+
+.outline-gray-30{
+  outline-color:#adadad;
+}
+
+.outline-gray-50{
+  outline-color:#757575;
+}
+
+.outline-gray-70{
+  outline-color:#454545;
+}
+
+.outline-gray-90{
+  outline-color:#1b1b1b;
+}
+
+.outline-base-lightest{
+  outline-color:#f0f0f0;
+}
+
+.outline-base-lighter{
+  outline-color:#dfe1e2;
+}
+
+.outline-base-light{
+  outline-color:#a9aeb1;
+}
+
+.outline-base{
+  outline-color:#71767a;
+}
+
+.outline-base-dark{
+  outline-color:#565c65;
+}
+
+.outline-base-darker{
+  outline-color:#3d4551;
+}
+
+.outline-base-darkest{
+  outline-color:#1b1b1b;
+}
+
+.outline-ink{
+  outline-color:#1b1b1b;
+}
+
+.outline-primary-lighter{
+  outline-color:#d9e8f6;
+}
+
+.outline-primary-light{
+  outline-color:#73b3e7;
+}
+
+.outline-primary{
+  outline-color:#005ea2;
+}
+
+.outline-primary-vivid{
+  outline-color:#0050d8;
+}
+
+.outline-primary-dark{
+  outline-color:#1a4480;
+}
+
+.outline-primary-darker{
+  outline-color:#162e51;
+}
+
+.outline-secondary-lighter{
+  outline-color:#f3e1e4;
+}
+
+.outline-secondary-light{
+  outline-color:#f2938c;
+}
+
+.outline-secondary{
+  outline-color:#d83933;
+}
+
+.outline-secondary-vivid{
+  outline-color:#e41d3d;
+}
+
+.outline-secondary-dark{
+  outline-color:#b50909;
+}
+
+.outline-secondary-darker{
+  outline-color:#8b0a03;
+}
+
+.outline-accent-warm-darker{
+  outline-color:#775540;
+}
+
+.outline-accent-warm-dark{
+  outline-color:#c05600;
+}
+
+.outline-accent-warm{
+  outline-color:#fa9441;
+}
+
+.outline-accent-warm-light{
+  outline-color:#ffbc78;
+}
+
+.outline-accent-warm-lighter{
+  outline-color:#f2e4d4;
+}
+
+.outline-accent-cool-darker{
+  outline-color:#07648d;
+}
+
+.outline-accent-cool-dark{
+  outline-color:#28a0cb;
+}
+
+.outline-accent-cool{
+  outline-color:#00bde3;
+}
+
+.outline-accent-cool-light{
+  outline-color:#97d4ea;
+}
+
+.outline-accent-cool-lighter{
+  outline-color:#e1f3f8;
+}
+
+.outline-error-lighter{
+  outline-color:#f4e3db;
+}
+
+.outline-error-light{
+  outline-color:#f39268;
+}
+
+.outline-error{
+  outline-color:#d54309;
+}
+
+.outline-error-dark{
+  outline-color:#b50909;
+}
+
+.outline-error-darker{
+  outline-color:#6f3331;
+}
+
+.outline-warning-lighter{
+  outline-color:#faf3d1;
+}
+
+.outline-warning-light{
+  outline-color:#fee685;
+}
+
+.outline-warning{
+  outline-color:#ffbe2e;
+}
+
+.outline-warning-dark{
+  outline-color:#e5a000;
+}
+
+.outline-warning-darker{
+  outline-color:#936f38;
+}
+
+.outline-success-lighter{
+  outline-color:#ecf3ec;
+}
+
+.outline-success-light{
+  outline-color:#70e17b;
+}
+
+.outline-success{
+  outline-color:#00a91c;
+}
+
+.outline-success-dark{
+  outline-color:#008817;
+}
+
+.outline-success-darker{
+  outline-color:#216e1f;
+}
+
+.outline-info-lighter{
+  outline-color:#e7f6f8;
+}
+
+.outline-info-light{
+  outline-color:#99deea;
+}
+
+.outline-info{
+  outline-color:#00bde3;
+}
+
+.outline-info-dark{
+  outline-color:#009ec1;
+}
+
+.outline-info-darker{
+  outline-color:#2e6276;
+}
+
+.outline-disabled-lighter{
+  outline-color:#c9c9c9;
+}
+
+.outline-disabled-light{
+  outline-color:#919191;
+}
+
+.outline-disabled{
+  outline-color:#757575;
+}
+
+.outline-disabled-dark{
+  outline-color:#454545;
+}
+
+.outline-disabled-darker{
+  outline-color:#1b1b1b;
+}
+
+.outline-emergency{
+  outline-color:#9c3d10;
+}
+
+.outline-emergency-dark{
+  outline-color:#332d29;
+}
+
+.overflow-hidden{
+  overflow:hidden;
+}
+
+.overflow-y-hidden{
+  overflow-y:hidden;
+}
+
+.overflow-x-hidden{
+  overflow-x:hidden;
+}
+
+.overflow-scroll{
+  overflow:scroll;
+}
+
+.overflow-y-scroll{
+  overflow-y:scroll;
+}
+
+.overflow-x-scroll{
+  overflow-x:scroll;
+}
+
+.overflow-auto{
+  overflow:auto;
+}
+
+.overflow-y-auto{
+  overflow-y:auto;
+}
+
+.overflow-x-auto{
+  overflow-x:auto;
+}
+
+.overflow-visible{
+  overflow:visible;
+}
+
+.overflow-y-visible{
+  overflow-y:visible;
+}
+
+.overflow-x-visible{
+  overflow-x:visible;
+}
+
+.padding-1px{
+  padding:1px;
+}
+
+.padding-y-1px{
+  padding-top:1px;
+  padding-bottom:1px;
+}
+
+.padding-x-1px{
+  padding-left:1px;
+  padding-right:1px;
+}
+
+.padding-top-1px{
+  padding-top:1px;
+}
+
+.padding-right-1px{
+  padding-right:1px;
+}
+
+.padding-bottom-1px{
+  padding-bottom:1px;
+}
+
+.padding-left-1px{
+  padding-left:1px;
+}
+
+.padding-2px{
+  padding:2px;
+}
+
+.padding-y-2px{
+  padding-top:2px;
+  padding-bottom:2px;
+}
+
+.padding-x-2px{
+  padding-left:2px;
+  padding-right:2px;
+}
+
+.padding-top-2px{
+  padding-top:2px;
+}
+
+.padding-right-2px{
+  padding-right:2px;
+}
+
+.padding-bottom-2px{
+  padding-bottom:2px;
+}
+
+.padding-left-2px{
+  padding-left:2px;
+}
+
+.padding-05{
+  padding:0.25rem;
+}
+
+.padding-y-05{
+  padding-top:0.25rem;
+  padding-bottom:0.25rem;
+}
+
+.padding-x-05{
+  padding-left:0.25rem;
+  padding-right:0.25rem;
+}
+
+.padding-top-05{
+  padding-top:0.25rem;
+}
+
+.padding-right-05{
+  padding-right:0.25rem;
+}
+
+.padding-bottom-05{
+  padding-bottom:0.25rem;
+}
+
+.padding-left-05{
+  padding-left:0.25rem;
+}
+
+.padding-1{
+  padding:0.5rem;
+}
+
+.padding-y-1{
+  padding-top:0.5rem;
+  padding-bottom:0.5rem;
+}
+
+.padding-x-1{
+  padding-left:0.5rem;
+  padding-right:0.5rem;
+}
+
+.padding-top-1{
+  padding-top:0.5rem;
+}
+
+.padding-right-1{
+  padding-right:0.5rem;
+}
+
+.padding-bottom-1{
+  padding-bottom:0.5rem;
+}
+
+.padding-left-1{
+  padding-left:0.5rem;
+}
+
+.padding-105{
+  padding:0.75rem;
+}
+
+.padding-y-105{
+  padding-top:0.75rem;
+  padding-bottom:0.75rem;
+}
+
+.padding-x-105{
+  padding-left:0.75rem;
+  padding-right:0.75rem;
+}
+
+.padding-top-105{
+  padding-top:0.75rem;
+}
+
+.padding-right-105{
+  padding-right:0.75rem;
+}
+
+.padding-bottom-105{
+  padding-bottom:0.75rem;
+}
+
+.padding-left-105{
+  padding-left:0.75rem;
+}
+
+.padding-2{
+  padding:1rem;
+}
+
+.padding-y-2{
+  padding-top:1rem;
+  padding-bottom:1rem;
+}
+
+.padding-x-2{
+  padding-left:1rem;
+  padding-right:1rem;
+}
+
+.padding-top-2{
+  padding-top:1rem;
+}
+
+.padding-right-2{
+  padding-right:1rem;
+}
+
+.padding-bottom-2{
+  padding-bottom:1rem;
+}
+
+.padding-left-2{
+  padding-left:1rem;
+}
+
+.padding-205{
+  padding:1.25rem;
+}
+
+.padding-y-205{
+  padding-top:1.25rem;
+  padding-bottom:1.25rem;
+}
+
+.padding-x-205{
+  padding-left:1.25rem;
+  padding-right:1.25rem;
+}
+
+.padding-top-205{
+  padding-top:1.25rem;
+}
+
+.padding-right-205{
+  padding-right:1.25rem;
+}
+
+.padding-bottom-205{
+  padding-bottom:1.25rem;
+}
+
+.padding-left-205{
+  padding-left:1.25rem;
+}
+
+.padding-3{
+  padding:1.5rem;
+}
+
+.padding-y-3{
+  padding-top:1.5rem;
+  padding-bottom:1.5rem;
+}
+
+.padding-x-3{
+  padding-left:1.5rem;
+  padding-right:1.5rem;
+}
+
+.padding-top-3{
+  padding-top:1.5rem;
+}
+
+.padding-right-3{
+  padding-right:1.5rem;
+}
+
+.padding-bottom-3{
+  padding-bottom:1.5rem;
+}
+
+.padding-left-3{
+  padding-left:1.5rem;
+}
+
+.padding-4{
+  padding:2rem;
+}
+
+.padding-y-4{
+  padding-top:2rem;
+  padding-bottom:2rem;
+}
+
+.padding-x-4{
+  padding-left:2rem;
+  padding-right:2rem;
+}
+
+.padding-top-4{
+  padding-top:2rem;
+}
+
+.padding-right-4{
+  padding-right:2rem;
+}
+
+.padding-bottom-4{
+  padding-bottom:2rem;
+}
+
+.padding-left-4{
+  padding-left:2rem;
+}
+
+.padding-5{
+  padding:2.5rem;
+}
+
+.padding-y-5{
+  padding-top:2.5rem;
+  padding-bottom:2.5rem;
+}
+
+.padding-x-5{
+  padding-left:2.5rem;
+  padding-right:2.5rem;
+}
+
+.padding-top-5{
+  padding-top:2.5rem;
+}
+
+.padding-right-5{
+  padding-right:2.5rem;
+}
+
+.padding-bottom-5{
+  padding-bottom:2.5rem;
+}
+
+.padding-left-5{
+  padding-left:2.5rem;
+}
+
+.padding-6{
+  padding:3rem;
+}
+
+.padding-y-6{
+  padding-top:3rem;
+  padding-bottom:3rem;
+}
+
+.padding-x-6{
+  padding-left:3rem;
+  padding-right:3rem;
+}
+
+.padding-top-6{
+  padding-top:3rem;
+}
+
+.padding-right-6{
+  padding-right:3rem;
+}
+
+.padding-bottom-6{
+  padding-bottom:3rem;
+}
+
+.padding-left-6{
+  padding-left:3rem;
+}
+
+.padding-7{
+  padding:3.5rem;
+}
+
+.padding-y-7{
+  padding-top:3.5rem;
+  padding-bottom:3.5rem;
+}
+
+.padding-x-7{
+  padding-left:3.5rem;
+  padding-right:3.5rem;
+}
+
+.padding-top-7{
+  padding-top:3.5rem;
+}
+
+.padding-right-7{
+  padding-right:3.5rem;
+}
+
+.padding-bottom-7{
+  padding-bottom:3.5rem;
+}
+
+.padding-left-7{
+  padding-left:3.5rem;
+}
+
+.padding-8{
+  padding:4rem;
+}
+
+.padding-y-8{
+  padding-top:4rem;
+  padding-bottom:4rem;
+}
+
+.padding-x-8{
+  padding-left:4rem;
+  padding-right:4rem;
+}
+
+.padding-top-8{
+  padding-top:4rem;
+}
+
+.padding-right-8{
+  padding-right:4rem;
+}
+
+.padding-bottom-8{
+  padding-bottom:4rem;
+}
+
+.padding-left-8{
+  padding-left:4rem;
+}
+
+.padding-9{
+  padding:4.5rem;
+}
+
+.padding-y-9{
+  padding-top:4.5rem;
+  padding-bottom:4.5rem;
+}
+
+.padding-x-9{
+  padding-left:4.5rem;
+  padding-right:4.5rem;
+}
+
+.padding-top-9{
+  padding-top:4.5rem;
+}
+
+.padding-right-9{
+  padding-right:4.5rem;
+}
+
+.padding-bottom-9{
+  padding-bottom:4.5rem;
+}
+
+.padding-left-9{
+  padding-left:4.5rem;
+}
+
+.padding-10{
+  padding:5rem;
+}
+
+.padding-y-10{
+  padding-top:5rem;
+  padding-bottom:5rem;
+}
+
+.padding-x-10{
+  padding-left:5rem;
+  padding-right:5rem;
+}
+
+.padding-top-10{
+  padding-top:5rem;
+}
+
+.padding-right-10{
+  padding-right:5rem;
+}
+
+.padding-bottom-10{
+  padding-bottom:5rem;
+}
+
+.padding-left-10{
+  padding-left:5rem;
+}
+
+.padding-15{
+  padding:7.5rem;
+}
+
+.padding-y-15{
+  padding-top:7.5rem;
+  padding-bottom:7.5rem;
+}
+
+.padding-x-15{
+  padding-left:7.5rem;
+  padding-right:7.5rem;
+}
+
+.padding-top-15{
+  padding-top:7.5rem;
+}
+
+.padding-right-15{
+  padding-right:7.5rem;
+}
+
+.padding-bottom-15{
+  padding-bottom:7.5rem;
+}
+
+.padding-left-15{
+  padding-left:7.5rem;
+}
+
+.padding-0{
+  padding:0;
+}
+
+.padding-y-0{
+  padding-top:0;
+  padding-bottom:0;
+}
+
+.padding-x-0{
+  padding-left:0;
+  padding-right:0;
+}
+
+.padding-top-0{
+  padding-top:0;
+}
+
+.padding-right-0{
+  padding-right:0;
+}
+
+.padding-bottom-0{
+  padding-bottom:0;
+}
+
+.padding-left-0{
+  padding-left:0;
+}
+
+.pin-all{
+  bottom:0;
+  left:0;
+  right:0;
+  top:0;
+  position:absolute;
+}
+
+.pin-x{
+  left:0;
+  right:0;
+  position:absolute;
+}
+
+.pin-y{
+  bottom:0;
+  top:0;
+  position:absolute;
+}
+
+.pin-bottom{
+  bottom:0;
+  position:absolute;
+}
+
+.pin-left{
+  left:0;
+  position:absolute;
+}
+
+.pin-right{
+  right:0;
+  position:absolute;
+}
+
+.pin-top{
+  top:0;
+  position:absolute;
+}
+
+.pin-none{
+  bottom:auto;
+  left:auto;
+  right:auto;
+  top:auto;
+  position:static;
+}
+
+.position-absolute{
+  position:absolute;
+}
+
+.position-fixed{
+  position:fixed;
+}
+
+.position-relative{
+  position:relative;
+}
+
+.position-static{
+  position:static;
+}
+
+.position-sticky{
+  position:sticky;
+}
+
+.right-1px{
+  right:1px;
+}
+
+.right-2px{
+  right:2px;
+}
+
+.right-05{
+  right:0.25rem;
+}
+
+.right-1{
+  right:0.5rem;
+}
+
+.right-105{
+  right:0.75rem;
+}
+
+.right-2{
+  right:1rem;
+}
+
+.right-205{
+  right:1.25rem;
+}
+
+.right-3{
+  right:1.5rem;
+}
+
+.right-neg-1px{
+  right:-1px;
+}
+
+.right-neg-2px{
+  right:-2px;
+}
+
+.right-neg-05{
+  right:-0.25rem;
+}
+
+.right-neg-1{
+  right:-0.5rem;
+}
+
+.right-neg-105{
+  right:-0.75rem;
+}
+
+.right-neg-2{
+  right:-1rem;
+}
+
+.right-neg-205{
+  right:-1.25rem;
+}
+
+.right-neg-3{
+  right:-1.5rem;
+}
+
+.right-0{
+  right:0;
+}
+
+.right-auto{
+  right:auto;
+}
+
+.right-full{
+  right:100%;
+}
+
+.square-1px{
+  height:1px;
+  width:1px;
+}
+
+.square-2px{
+  height:2px;
+  width:2px;
+}
+
+.square-05{
+  height:0.25rem;
+  width:0.25rem;
+}
+
+.square-1{
+  height:0.5rem;
+  width:0.5rem;
+}
+
+.square-105{
+  height:0.75rem;
+  width:0.75rem;
+}
+
+.square-2{
+  height:1rem;
+  width:1rem;
+}
+
+.square-205{
+  height:1.25rem;
+  width:1.25rem;
+}
+
+.square-3{
+  height:1.5rem;
+  width:1.5rem;
+}
+
+.square-4{
+  height:2rem;
+  width:2rem;
+}
+
+.square-5{
+  height:2.5rem;
+  width:2.5rem;
+}
+
+.square-6{
+  height:3rem;
+  width:3rem;
+}
+
+.square-7{
+  height:3.5rem;
+  width:3.5rem;
+}
+
+.square-8{
+  height:4rem;
+  width:4rem;
+}
+
+.square-9{
+  height:4.5rem;
+  width:4.5rem;
+}
+
+.square-10{
+  height:5rem;
+  width:5rem;
+}
+
+.square-15{
+  height:7.5rem;
+  width:7.5rem;
+}
+
+.square-card{
+  height:10rem;
+  width:10rem;
+}
+
+.square-card-lg{
+  height:15rem;
+  width:15rem;
+}
+
+.square-mobile{
+  height:20rem;
+  width:20rem;
+}
+
+.text-center{
+  text-align:center;
+}
+
+.text-left{
+  text-align:left;
+}
+
+.text-justify{
+  text-align:justify;
+}
+
+.text-right{
+  text-align:right;
+}
+
+.text-strike{
+  text-decoration:line-through;
+}
+
+.hover\:text-strike:hover{
+  text-decoration:line-through;
+}
+
+.text-underline{
+  text-decoration:underline;
+}
+
+.hover\:text-underline:hover{
+  text-decoration:underline;
+}
+
+.text-no-underline{
+  text-decoration:none;
+}
+
+.hover\:text-no-underline:hover{
+  text-decoration:none;
+}
+
+.text-no-strike{
+  text-decoration:none;
+}
+
+.hover\:text-no-strike:hover{
+  text-decoration:none;
+}
+
+.underline-red{
+  text-decoration-color:#e52207;
+}
+
+.hover\:underline-red:hover{
+  text-decoration-color:#e52207;
+}
+
+.underline-orange{
+  text-decoration-color:#e66f0e;
+}
+
+.hover\:underline-orange:hover{
+  text-decoration-color:#e66f0e;
+}
+
+.underline-gold{
+  text-decoration-color:#ffbe2e;
+}
+
+.hover\:underline-gold:hover{
+  text-decoration-color:#ffbe2e;
+}
+
+.underline-yellow{
+  text-decoration-color:#fee685;
+}
+
+.hover\:underline-yellow:hover{
+  text-decoration-color:#fee685;
+}
+
+.underline-green{
+  text-decoration-color:#538200;
+}
+
+.hover\:underline-green:hover{
+  text-decoration-color:#538200;
+}
+
+.underline-mint{
+  text-decoration-color:#04c585;
+}
+
+.hover\:underline-mint:hover{
+  text-decoration-color:#04c585;
+}
+
+.underline-cyan{
+  text-decoration-color:#009ec1;
+}
+
+.hover\:underline-cyan:hover{
+  text-decoration-color:#009ec1;
+}
+
+.underline-blue{
+  text-decoration-color:#0076d6;
+}
+
+.hover\:underline-blue:hover{
+  text-decoration-color:#0076d6;
+}
+
+.underline-indigo{
+  text-decoration-color:#676cc8;
+}
+
+.hover\:underline-indigo:hover{
+  text-decoration-color:#676cc8;
+}
+
+.underline-violet{
+  text-decoration-color:#8168b3;
+}
+
+.hover\:underline-violet:hover{
+  text-decoration-color:#8168b3;
+}
+
+.underline-magenta{
+  text-decoration-color:#d72d79;
+}
+
+.hover\:underline-magenta:hover{
+  text-decoration-color:#d72d79;
+}
+
+.underline-gray-5{
+  text-decoration-color:#f0f0f0;
+}
+
+.hover\:underline-gray-5:hover{
+  text-decoration-color:#f0f0f0;
+}
+
+.underline-gray-10{
+  text-decoration-color:#e6e6e6;
+}
+
+.hover\:underline-gray-10:hover{
+  text-decoration-color:#e6e6e6;
+}
+
+.underline-gray-30{
+  text-decoration-color:#adadad;
+}
+
+.hover\:underline-gray-30:hover{
+  text-decoration-color:#adadad;
+}
+
+.underline-gray-50{
+  text-decoration-color:#757575;
+}
+
+.hover\:underline-gray-50:hover{
+  text-decoration-color:#757575;
+}
+
+.underline-gray-70{
+  text-decoration-color:#454545;
+}
+
+.hover\:underline-gray-70:hover{
+  text-decoration-color:#454545;
+}
+
+.underline-gray-90{
+  text-decoration-color:#1b1b1b;
+}
+
+.hover\:underline-gray-90:hover{
+  text-decoration-color:#1b1b1b;
+}
+
+.underline-base-lightest{
+  text-decoration-color:#f0f0f0;
+}
+
+.hover\:underline-base-lightest:hover{
+  text-decoration-color:#f0f0f0;
+}
+
+.underline-base-lighter{
+  text-decoration-color:#dfe1e2;
+}
+
+.hover\:underline-base-lighter:hover{
+  text-decoration-color:#dfe1e2;
+}
+
+.underline-base-light{
+  text-decoration-color:#a9aeb1;
+}
+
+.hover\:underline-base-light:hover{
+  text-decoration-color:#a9aeb1;
+}
+
+.underline-base{
+  text-decoration-color:#71767a;
+}
+
+.hover\:underline-base:hover{
+  text-decoration-color:#71767a;
+}
+
+.underline-base-dark{
+  text-decoration-color:#565c65;
+}
+
+.hover\:underline-base-dark:hover{
+  text-decoration-color:#565c65;
+}
+
+.underline-base-darker{
+  text-decoration-color:#3d4551;
+}
+
+.hover\:underline-base-darker:hover{
+  text-decoration-color:#3d4551;
+}
+
+.underline-base-darkest{
+  text-decoration-color:#1b1b1b;
+}
+
+.hover\:underline-base-darkest:hover{
+  text-decoration-color:#1b1b1b;
+}
+
+.underline-ink{
+  text-decoration-color:#1b1b1b;
+}
+
+.hover\:underline-ink:hover{
+  text-decoration-color:#1b1b1b;
+}
+
+.underline-primary-lighter{
+  text-decoration-color:#d9e8f6;
+}
+
+.hover\:underline-primary-lighter:hover{
+  text-decoration-color:#d9e8f6;
+}
+
+.underline-primary-light{
+  text-decoration-color:#73b3e7;
+}
+
+.hover\:underline-primary-light:hover{
+  text-decoration-color:#73b3e7;
+}
+
+.underline-primary{
+  text-decoration-color:#005ea2;
+}
+
+.hover\:underline-primary:hover{
+  text-decoration-color:#005ea2;
+}
+
+.underline-primary-vivid{
+  text-decoration-color:#0050d8;
+}
+
+.hover\:underline-primary-vivid:hover{
+  text-decoration-color:#0050d8;
+}
+
+.underline-primary-dark{
+  text-decoration-color:#1a4480;
+}
+
+.hover\:underline-primary-dark:hover{
+  text-decoration-color:#1a4480;
+}
+
+.underline-primary-darker{
+  text-decoration-color:#162e51;
+}
+
+.hover\:underline-primary-darker:hover{
+  text-decoration-color:#162e51;
+}
+
+.underline-secondary-lighter{
+  text-decoration-color:#f3e1e4;
+}
+
+.hover\:underline-secondary-lighter:hover{
+  text-decoration-color:#f3e1e4;
+}
+
+.underline-secondary-light{
+  text-decoration-color:#f2938c;
+}
+
+.hover\:underline-secondary-light:hover{
+  text-decoration-color:#f2938c;
+}
+
+.underline-secondary{
+  text-decoration-color:#d83933;
+}
+
+.hover\:underline-secondary:hover{
+  text-decoration-color:#d83933;
+}
+
+.underline-secondary-vivid{
+  text-decoration-color:#e41d3d;
+}
+
+.hover\:underline-secondary-vivid:hover{
+  text-decoration-color:#e41d3d;
+}
+
+.underline-secondary-dark{
+  text-decoration-color:#b50909;
+}
+
+.hover\:underline-secondary-dark:hover{
+  text-decoration-color:#b50909;
+}
+
+.underline-secondary-darker{
+  text-decoration-color:#8b0a03;
+}
+
+.hover\:underline-secondary-darker:hover{
+  text-decoration-color:#8b0a03;
+}
+
+.underline-accent-warm-darker{
+  text-decoration-color:#775540;
+}
+
+.hover\:underline-accent-warm-darker:hover{
+  text-decoration-color:#775540;
+}
+
+.underline-accent-warm-dark{
+  text-decoration-color:#c05600;
+}
+
+.hover\:underline-accent-warm-dark:hover{
+  text-decoration-color:#c05600;
+}
+
+.underline-accent-warm{
+  text-decoration-color:#fa9441;
+}
+
+.hover\:underline-accent-warm:hover{
+  text-decoration-color:#fa9441;
+}
+
+.underline-accent-warm-light{
+  text-decoration-color:#ffbc78;
+}
+
+.hover\:underline-accent-warm-light:hover{
+  text-decoration-color:#ffbc78;
+}
+
+.underline-accent-warm-lighter{
+  text-decoration-color:#f2e4d4;
+}
+
+.hover\:underline-accent-warm-lighter:hover{
+  text-decoration-color:#f2e4d4;
+}
+
+.underline-accent-cool-darker{
+  text-decoration-color:#07648d;
+}
+
+.hover\:underline-accent-cool-darker:hover{
+  text-decoration-color:#07648d;
+}
+
+.underline-accent-cool-dark{
+  text-decoration-color:#28a0cb;
+}
+
+.hover\:underline-accent-cool-dark:hover{
+  text-decoration-color:#28a0cb;
+}
+
+.underline-accent-cool{
+  text-decoration-color:#00bde3;
+}
+
+.hover\:underline-accent-cool:hover{
+  text-decoration-color:#00bde3;
+}
+
+.underline-accent-cool-light{
+  text-decoration-color:#97d4ea;
+}
+
+.hover\:underline-accent-cool-light:hover{
+  text-decoration-color:#97d4ea;
+}
+
+.underline-accent-cool-lighter{
+  text-decoration-color:#e1f3f8;
+}
+
+.hover\:underline-accent-cool-lighter:hover{
+  text-decoration-color:#e1f3f8;
+}
+
+.underline-error-lighter{
+  text-decoration-color:#f4e3db;
+}
+
+.hover\:underline-error-lighter:hover{
+  text-decoration-color:#f4e3db;
+}
+
+.underline-error-light{
+  text-decoration-color:#f39268;
+}
+
+.hover\:underline-error-light:hover{
+  text-decoration-color:#f39268;
+}
+
+.underline-error{
+  text-decoration-color:#d54309;
+}
+
+.hover\:underline-error:hover{
+  text-decoration-color:#d54309;
+}
+
+.underline-error-dark{
+  text-decoration-color:#b50909;
+}
+
+.hover\:underline-error-dark:hover{
+  text-decoration-color:#b50909;
+}
+
+.underline-error-darker{
+  text-decoration-color:#6f3331;
+}
+
+.hover\:underline-error-darker:hover{
+  text-decoration-color:#6f3331;
+}
+
+.underline-warning-lighter{
+  text-decoration-color:#faf3d1;
+}
+
+.hover\:underline-warning-lighter:hover{
+  text-decoration-color:#faf3d1;
+}
+
+.underline-warning-light{
+  text-decoration-color:#fee685;
+}
+
+.hover\:underline-warning-light:hover{
+  text-decoration-color:#fee685;
+}
+
+.underline-warning{
+  text-decoration-color:#ffbe2e;
+}
+
+.hover\:underline-warning:hover{
+  text-decoration-color:#ffbe2e;
+}
+
+.underline-warning-dark{
+  text-decoration-color:#e5a000;
+}
+
+.hover\:underline-warning-dark:hover{
+  text-decoration-color:#e5a000;
+}
+
+.underline-warning-darker{
+  text-decoration-color:#936f38;
+}
+
+.hover\:underline-warning-darker:hover{
+  text-decoration-color:#936f38;
+}
+
+.underline-success-lighter{
+  text-decoration-color:#ecf3ec;
+}
+
+.hover\:underline-success-lighter:hover{
+  text-decoration-color:#ecf3ec;
+}
+
+.underline-success-light{
+  text-decoration-color:#70e17b;
+}
+
+.hover\:underline-success-light:hover{
+  text-decoration-color:#70e17b;
+}
+
+.underline-success{
+  text-decoration-color:#00a91c;
+}
+
+.hover\:underline-success:hover{
+  text-decoration-color:#00a91c;
+}
+
+.underline-success-dark{
+  text-decoration-color:#008817;
+}
+
+.hover\:underline-success-dark:hover{
+  text-decoration-color:#008817;
+}
+
+.underline-success-darker{
+  text-decoration-color:#216e1f;
+}
+
+.hover\:underline-success-darker:hover{
+  text-decoration-color:#216e1f;
+}
+
+.underline-info-lighter{
+  text-decoration-color:#e7f6f8;
+}
+
+.hover\:underline-info-lighter:hover{
+  text-decoration-color:#e7f6f8;
+}
+
+.underline-info-light{
+  text-decoration-color:#99deea;
+}
+
+.hover\:underline-info-light:hover{
+  text-decoration-color:#99deea;
+}
+
+.underline-info{
+  text-decoration-color:#00bde3;
+}
+
+.hover\:underline-info:hover{
+  text-decoration-color:#00bde3;
+}
+
+.underline-info-dark{
+  text-decoration-color:#009ec1;
+}
+
+.hover\:underline-info-dark:hover{
+  text-decoration-color:#009ec1;
+}
+
+.underline-info-darker{
+  text-decoration-color:#2e6276;
+}
+
+.hover\:underline-info-darker:hover{
+  text-decoration-color:#2e6276;
+}
+
+.underline-disabled-lighter{
+  text-decoration-color:#c9c9c9;
+}
+
+.hover\:underline-disabled-lighter:hover{
+  text-decoration-color:#c9c9c9;
+}
+
+.underline-disabled-light{
+  text-decoration-color:#919191;
+}
+
+.hover\:underline-disabled-light:hover{
+  text-decoration-color:#919191;
+}
+
+.underline-disabled{
+  text-decoration-color:#757575;
+}
+
+.hover\:underline-disabled:hover{
+  text-decoration-color:#757575;
+}
+
+.underline-disabled-dark{
+  text-decoration-color:#454545;
+}
+
+.hover\:underline-disabled-dark:hover{
+  text-decoration-color:#454545;
+}
+
+.underline-disabled-darker{
+  text-decoration-color:#1b1b1b;
+}
+
+.hover\:underline-disabled-darker:hover{
+  text-decoration-color:#1b1b1b;
+}
+
+.underline-emergency{
+  text-decoration-color:#9c3d10;
+}
+
+.hover\:underline-emergency:hover{
+  text-decoration-color:#9c3d10;
+}
+
+.underline-emergency-dark{
+  text-decoration-color:#332d29;
+}
+
+.hover\:underline-emergency-dark:hover{
+  text-decoration-color:#332d29;
+}
+
+.text-indent-0{
+  text-indent:0;
+}
+
+.text-indent-05{
+  text-indent:0.25rem;
+}
+
+.text-indent-1{
+  text-indent:0.5rem;
+}
+
+.text-indent-105{
+  text-indent:0.75rem;
+}
+
+.text-indent-2{
+  text-indent:1rem;
+}
+
+.text-indent-205{
+  text-indent:1.25rem;
+}
+
+.text-indent-3{
+  text-indent:1.5rem;
+}
+
+.text-indent-neg-05{
+  text-indent:-0.25rem;
+}
+
+.text-indent-neg-1{
+  text-indent:-0.5rem;
+}
+
+.text-indent-neg-105{
+  text-indent:-0.75rem;
+}
+
+.text-indent-neg-2{
+  text-indent:-1rem;
+}
+
+.text-indent-neg-205{
+  text-indent:-1.25rem;
+}
+
+.text-indent-neg-3{
+  text-indent:-1.5rem;
+}
+
+.text-indent-4{
+  text-indent:2rem;
+}
+
+.text-indent-5{
+  text-indent:2.5rem;
+}
+
+.text-indent-6{
+  text-indent:3rem;
+}
+
+.text-indent-7{
+  text-indent:3.5rem;
+}
+
+.text-indent-8{
+  text-indent:4rem;
+}
+
+.text-indent-9{
+  text-indent:4.5rem;
+}
+
+.text-indent-10{
+  text-indent:5rem;
+}
+
+.text-indent-15{
+  text-indent:7.5rem;
+}
+
+.text-indent-neg-4{
+  text-indent:-2rem;
+}
+
+.text-indent-neg-5{
+  text-indent:-2.5rem;
+}
+
+.text-indent-neg-6{
+  text-indent:-3rem;
+}
+
+.text-indent-neg-7{
+  text-indent:-3.5rem;
+}
+
+.text-indent-neg-8{
+  text-indent:-4rem;
+}
+
+.text-indent-neg-9{
+  text-indent:-4.5rem;
+}
+
+.text-indent-neg-10{
+  text-indent:-5rem;
+}
+
+.text-indent-neg-15{
+  text-indent:-7.5rem;
+}
+
+.text-uppercase{
+  text-transform:uppercase;
+}
+
+.text-no-uppercase{
+  text-transform:none;
+}
+
+.text-lowercase{
+  text-transform:lowercase;
+}
+
+.text-no-lowercase{
+  text-transform:none;
+}
+
+.top-1px{
+  top:1px;
+}
+
+.top-2px{
+  top:2px;
+}
+
+.top-05{
+  top:0.25rem;
+}
+
+.top-1{
+  top:0.5rem;
+}
+
+.top-105{
+  top:0.75rem;
+}
+
+.top-2{
+  top:1rem;
+}
+
+.top-205{
+  top:1.25rem;
+}
+
+.top-3{
+  top:1.5rem;
+}
+
+.top-neg-1px{
+  top:-1px;
+}
+
+.top-neg-2px{
+  top:-2px;
+}
+
+.top-neg-05{
+  top:-0.25rem;
+}
+
+.top-neg-1{
+  top:-0.5rem;
+}
+
+.top-neg-105{
+  top:-0.75rem;
+}
+
+.top-neg-2{
+  top:-1rem;
+}
+
+.top-neg-205{
+  top:-1.25rem;
+}
+
+.top-neg-3{
+  top:-1.5rem;
+}
+
+.top-0{
+  top:0;
+}
+
+.top-auto{
+  top:auto;
+}
+
+.top-full{
+  top:100%;
+}
+
+.text-baseline{
+  vertical-align:baseline;
+}
+
+.text-bottom{
+  vertical-align:bottom;
+}
+
+.text-middle{
+  vertical-align:middle;
+}
+
+.text-sub{
+  vertical-align:sub;
+}
+
+.text-super{
+  vertical-align:super;
+}
+
+.text-tbottom{
+  vertical-align:text-bottom;
+}
+
+.text-ttop{
+  vertical-align:text-top;
+}
+
+.text-top{
+  vertical-align:top;
+}
+
+.text-pre{
+  white-space:pre;
+}
+
+.text-pre-line{
+  white-space:pre-line;
+}
+
+.text-pre-wrap{
+  white-space:pre-wrap;
+}
+
+.text-wrap{
+  white-space:normal;
+}
+
+.text-no-wrap{
+  white-space:nowrap;
+}
+
+.width-1px{
+  width:1px;
+}
+
+.width-2px{
+  width:2px;
+}
+
+.width-05{
+  width:0.25rem;
+}
+
+.width-1{
+  width:0.5rem;
+}
+
+.width-105{
+  width:0.75rem;
+}
+
+.width-2{
+  width:1rem;
+}
+
+.width-205{
+  width:1.25rem;
+}
+
+.width-3{
+  width:1.5rem;
+}
+
+.width-4{
+  width:2rem;
+}
+
+.width-5{
+  width:2.5rem;
+}
+
+.width-6{
+  width:3rem;
+}
+
+.width-7{
+  width:3.5rem;
+}
+
+.width-8{
+  width:4rem;
+}
+
+.width-9{
+  width:4.5rem;
+}
+
+.width-10{
+  width:5rem;
+}
+
+.width-15{
+  width:7.5rem;
+}
+
+.width-card{
+  width:10rem;
+}
+
+.width-card-lg{
+  width:15rem;
+}
+
+.width-mobile{
+  width:20rem;
+}
+
+.width-mobile-lg{
+  width:30rem;
+}
+
+.width-tablet{
+  width:40rem;
+}
+
+.width-tablet-lg{
+  width:55rem;
+}
+
+.width-desktop{
+  width:64rem;
+}
+
+.width-desktop-lg{
+  width:75rem;
+}
+
+.width-widescreen{
+  width:87.5rem;
+}
+
+.width-0{
+  width:0;
+}
+
+.width-full{
+  width:100%;
+}
+
+.width-auto{
+  width:auto;
+}
+
+.z-auto{
+  z-index:auto;
+}
+
+.z-bottom{
+  z-index:-100;
+}
+
+.z-top{
+  z-index:99999;
+}
+
+.z-0{
+  z-index:0;
+}
+
+.z-100{
+  z-index:100;
+}
+
+.z-200{
+  z-index:200;
+}
+
+.z-300{
+  z-index:300;
+}
+
+.z-400{
+  z-index:400;
+}
+
+.z-500{
+  z-index:500;
+}
+
+@media all and (min-width: 30em){
+  .mobile-lg\:border-1px{
+    border:1px solid;
+  }
+  .mobile-lg\:hover\:border-1px:hover{
+    border:1px solid;
+  }
+  .mobile-lg\:border-y-1px{
+    border-top:1px solid;
+    border-bottom:1px solid;
+  }
+  .mobile-lg\:hover\:border-y-1px:hover{
+    border-top:1px solid;
+    border-bottom:1px solid;
+  }
+  .mobile-lg\:border-x-1px{
+    border-left:1px solid;
+    border-right:1px solid;
+  }
+  .mobile-lg\:hover\:border-x-1px:hover{
+    border-left:1px solid;
+    border-right:1px solid;
+  }
+  .mobile-lg\:border-top-1px{
+    border-top:1px solid;
+  }
+  .mobile-lg\:hover\:border-top-1px:hover{
+    border-top:1px solid;
+  }
+  .mobile-lg\:border-right-1px{
+    border-right:1px solid;
+  }
+  .mobile-lg\:hover\:border-right-1px:hover{
+    border-right:1px solid;
+  }
+  .mobile-lg\:border-bottom-1px{
+    border-bottom:1px solid;
+  }
+  .mobile-lg\:hover\:border-bottom-1px:hover{
+    border-bottom:1px solid;
+  }
+  .mobile-lg\:border-left-1px{
+    border-left:1px solid;
+  }
+  .mobile-lg\:hover\:border-left-1px:hover{
+    border-left:1px solid;
+  }
+  .mobile-lg\:border-2px{
+    border:2px solid;
+  }
+  .mobile-lg\:hover\:border-2px:hover{
+    border:2px solid;
+  }
+  .mobile-lg\:border-y-2px{
+    border-top:2px solid;
+    border-bottom:2px solid;
+  }
+  .mobile-lg\:hover\:border-y-2px:hover{
+    border-top:2px solid;
+    border-bottom:2px solid;
+  }
+  .mobile-lg\:border-x-2px{
+    border-left:2px solid;
+    border-right:2px solid;
+  }
+  .mobile-lg\:hover\:border-x-2px:hover{
+    border-left:2px solid;
+    border-right:2px solid;
+  }
+  .mobile-lg\:border-top-2px{
+    border-top:2px solid;
+  }
+  .mobile-lg\:hover\:border-top-2px:hover{
+    border-top:2px solid;
+  }
+  .mobile-lg\:border-right-2px{
+    border-right:2px solid;
+  }
+  .mobile-lg\:hover\:border-right-2px:hover{
+    border-right:2px solid;
+  }
+  .mobile-lg\:border-bottom-2px{
+    border-bottom:2px solid;
+  }
+  .mobile-lg\:hover\:border-bottom-2px:hover{
+    border-bottom:2px solid;
+  }
+  .mobile-lg\:border-left-2px{
+    border-left:2px solid;
+  }
+  .mobile-lg\:hover\:border-left-2px:hover{
+    border-left:2px solid;
+  }
+  .mobile-lg\:border-05{
+    border:0.25rem solid;
+  }
+  .mobile-lg\:hover\:border-05:hover{
+    border:0.25rem solid;
+  }
+  .mobile-lg\:border-y-05{
+    border-top:0.25rem solid;
+    border-bottom:0.25rem solid;
+  }
+  .mobile-lg\:hover\:border-y-05:hover{
+    border-top:0.25rem solid;
+    border-bottom:0.25rem solid;
+  }
+  .mobile-lg\:border-x-05{
+    border-left:0.25rem solid;
+    border-right:0.25rem solid;
+  }
+  .mobile-lg\:hover\:border-x-05:hover{
+    border-left:0.25rem solid;
+    border-right:0.25rem solid;
+  }
+  .mobile-lg\:border-top-05{
+    border-top:0.25rem solid;
+  }
+  .mobile-lg\:hover\:border-top-05:hover{
+    border-top:0.25rem solid;
+  }
+  .mobile-lg\:border-right-05{
+    border-right:0.25rem solid;
+  }
+  .mobile-lg\:hover\:border-right-05:hover{
+    border-right:0.25rem solid;
+  }
+  .mobile-lg\:border-bottom-05{
+    border-bottom:0.25rem solid;
+  }
+  .mobile-lg\:hover\:border-bottom-05:hover{
+    border-bottom:0.25rem solid;
+  }
+  .mobile-lg\:border-left-05{
+    border-left:0.25rem solid;
+  }
+  .mobile-lg\:hover\:border-left-05:hover{
+    border-left:0.25rem solid;
+  }
+  .mobile-lg\:border-1{
+    border:0.5rem solid;
+  }
+  .mobile-lg\:hover\:border-1:hover{
+    border:0.5rem solid;
+  }
+  .mobile-lg\:border-y-1{
+    border-top:0.5rem solid;
+    border-bottom:0.5rem solid;
+  }
+  .mobile-lg\:hover\:border-y-1:hover{
+    border-top:0.5rem solid;
+    border-bottom:0.5rem solid;
+  }
+  .mobile-lg\:border-x-1{
+    border-left:0.5rem solid;
+    border-right:0.5rem solid;
+  }
+  .mobile-lg\:hover\:border-x-1:hover{
+    border-left:0.5rem solid;
+    border-right:0.5rem solid;
+  }
+  .mobile-lg\:border-top-1{
+    border-top:0.5rem solid;
+  }
+  .mobile-lg\:hover\:border-top-1:hover{
+    border-top:0.5rem solid;
+  }
+  .mobile-lg\:border-right-1{
+    border-right:0.5rem solid;
+  }
+  .mobile-lg\:hover\:border-right-1:hover{
+    border-right:0.5rem solid;
+  }
+  .mobile-lg\:border-bottom-1{
+    border-bottom:0.5rem solid;
+  }
+  .mobile-lg\:hover\:border-bottom-1:hover{
+    border-bottom:0.5rem solid;
+  }
+  .mobile-lg\:border-left-1{
+    border-left:0.5rem solid;
+  }
+  .mobile-lg\:hover\:border-left-1:hover{
+    border-left:0.5rem solid;
+  }
+  .mobile-lg\:border-105{
+    border:0.75rem solid;
+  }
+  .mobile-lg\:hover\:border-105:hover{
+    border:0.75rem solid;
+  }
+  .mobile-lg\:border-y-105{
+    border-top:0.75rem solid;
+    border-bottom:0.75rem solid;
+  }
+  .mobile-lg\:hover\:border-y-105:hover{
+    border-top:0.75rem solid;
+    border-bottom:0.75rem solid;
+  }
+  .mobile-lg\:border-x-105{
+    border-left:0.75rem solid;
+    border-right:0.75rem solid;
+  }
+  .mobile-lg\:hover\:border-x-105:hover{
+    border-left:0.75rem solid;
+    border-right:0.75rem solid;
+  }
+  .mobile-lg\:border-top-105{
+    border-top:0.75rem solid;
+  }
+  .mobile-lg\:hover\:border-top-105:hover{
+    border-top:0.75rem solid;
+  }
+  .mobile-lg\:border-right-105{
+    border-right:0.75rem solid;
+  }
+  .mobile-lg\:hover\:border-right-105:hover{
+    border-right:0.75rem solid;
+  }
+  .mobile-lg\:border-bottom-105{
+    border-bottom:0.75rem solid;
+  }
+  .mobile-lg\:hover\:border-bottom-105:hover{
+    border-bottom:0.75rem solid;
+  }
+  .mobile-lg\:border-left-105{
+    border-left:0.75rem solid;
+  }
+  .mobile-lg\:hover\:border-left-105:hover{
+    border-left:0.75rem solid;
+  }
+  .mobile-lg\:border-2{
+    border:1rem solid;
+  }
+  .mobile-lg\:hover\:border-2:hover{
+    border:1rem solid;
+  }
+  .mobile-lg\:border-y-2{
+    border-top:1rem solid;
+    border-bottom:1rem solid;
+  }
+  .mobile-lg\:hover\:border-y-2:hover{
+    border-top:1rem solid;
+    border-bottom:1rem solid;
+  }
+  .mobile-lg\:border-x-2{
+    border-left:1rem solid;
+    border-right:1rem solid;
+  }
+  .mobile-lg\:hover\:border-x-2:hover{
+    border-left:1rem solid;
+    border-right:1rem solid;
+  }
+  .mobile-lg\:border-top-2{
+    border-top:1rem solid;
+  }
+  .mobile-lg\:hover\:border-top-2:hover{
+    border-top:1rem solid;
+  }
+  .mobile-lg\:border-right-2{
+    border-right:1rem solid;
+  }
+  .mobile-lg\:hover\:border-right-2:hover{
+    border-right:1rem solid;
+  }
+  .mobile-lg\:border-bottom-2{
+    border-bottom:1rem solid;
+  }
+  .mobile-lg\:hover\:border-bottom-2:hover{
+    border-bottom:1rem solid;
+  }
+  .mobile-lg\:border-left-2{
+    border-left:1rem solid;
+  }
+  .mobile-lg\:hover\:border-left-2:hover{
+    border-left:1rem solid;
+  }
+  .mobile-lg\:border-205{
+    border:1.25rem solid;
+  }
+  .mobile-lg\:hover\:border-205:hover{
+    border:1.25rem solid;
+  }
+  .mobile-lg\:border-y-205{
+    border-top:1.25rem solid;
+    border-bottom:1.25rem solid;
+  }
+  .mobile-lg\:hover\:border-y-205:hover{
+    border-top:1.25rem solid;
+    border-bottom:1.25rem solid;
+  }
+  .mobile-lg\:border-x-205{
+    border-left:1.25rem solid;
+    border-right:1.25rem solid;
+  }
+  .mobile-lg\:hover\:border-x-205:hover{
+    border-left:1.25rem solid;
+    border-right:1.25rem solid;
+  }
+  .mobile-lg\:border-top-205{
+    border-top:1.25rem solid;
+  }
+  .mobile-lg\:hover\:border-top-205:hover{
+    border-top:1.25rem solid;
+  }
+  .mobile-lg\:border-right-205{
+    border-right:1.25rem solid;
+  }
+  .mobile-lg\:hover\:border-right-205:hover{
+    border-right:1.25rem solid;
+  }
+  .mobile-lg\:border-bottom-205{
+    border-bottom:1.25rem solid;
+  }
+  .mobile-lg\:hover\:border-bottom-205:hover{
+    border-bottom:1.25rem solid;
+  }
+  .mobile-lg\:border-left-205{
+    border-left:1.25rem solid;
+  }
+  .mobile-lg\:hover\:border-left-205:hover{
+    border-left:1.25rem solid;
+  }
+  .mobile-lg\:border-3{
+    border:1.5rem solid;
+  }
+  .mobile-lg\:hover\:border-3:hover{
+    border:1.5rem solid;
+  }
+  .mobile-lg\:border-y-3{
+    border-top:1.5rem solid;
+    border-bottom:1.5rem solid;
+  }
+  .mobile-lg\:hover\:border-y-3:hover{
+    border-top:1.5rem solid;
+    border-bottom:1.5rem solid;
+  }
+  .mobile-lg\:border-x-3{
+    border-left:1.5rem solid;
+    border-right:1.5rem solid;
+  }
+  .mobile-lg\:hover\:border-x-3:hover{
+    border-left:1.5rem solid;
+    border-right:1.5rem solid;
+  }
+  .mobile-lg\:border-top-3{
+    border-top:1.5rem solid;
+  }
+  .mobile-lg\:hover\:border-top-3:hover{
+    border-top:1.5rem solid;
+  }
+  .mobile-lg\:border-right-3{
+    border-right:1.5rem solid;
+  }
+  .mobile-lg\:hover\:border-right-3:hover{
+    border-right:1.5rem solid;
+  }
+  .mobile-lg\:border-bottom-3{
+    border-bottom:1.5rem solid;
+  }
+  .mobile-lg\:hover\:border-bottom-3:hover{
+    border-bottom:1.5rem solid;
+  }
+  .mobile-lg\:border-left-3{
+    border-left:1.5rem solid;
+  }
+  .mobile-lg\:hover\:border-left-3:hover{
+    border-left:1.5rem solid;
+  }
+  .mobile-lg\:border-0{
+    border:0 solid;
+  }
+  .mobile-lg\:hover\:border-0:hover{
+    border:0 solid;
+  }
+  .mobile-lg\:border-y-0{
+    border-top:0 solid;
+    border-bottom:0 solid;
+  }
+  .mobile-lg\:hover\:border-y-0:hover{
+    border-top:0 solid;
+    border-bottom:0 solid;
+  }
+  .mobile-lg\:border-x-0{
+    border-left:0 solid;
+    border-right:0 solid;
+  }
+  .mobile-lg\:hover\:border-x-0:hover{
+    border-left:0 solid;
+    border-right:0 solid;
+  }
+  .mobile-lg\:border-top-0{
+    border-top:0 solid;
+  }
+  .mobile-lg\:hover\:border-top-0:hover{
+    border-top:0 solid;
+  }
+  .mobile-lg\:border-right-0{
+    border-right:0 solid;
+  }
+  .mobile-lg\:hover\:border-right-0:hover{
+    border-right:0 solid;
+  }
+  .mobile-lg\:border-bottom-0{
+    border-bottom:0 solid;
+  }
+  .mobile-lg\:hover\:border-bottom-0:hover{
+    border-bottom:0 solid;
+  }
+  .mobile-lg\:border-left-0{
+    border-left:0 solid;
+  }
+  .mobile-lg\:hover\:border-left-0:hover{
+    border-left:0 solid;
+  }
+  .mobile-lg\:border{
+    border:1px solid;
+  }
+  .mobile-lg\:hover\:border:hover{
+    border:1px solid;
+  }
+  .mobile-lg\:border-y{
+    border-top:1px solid;
+    border-bottom:1px solid;
+  }
+  .mobile-lg\:hover\:border-y:hover{
+    border-top:1px solid;
+    border-bottom:1px solid;
+  }
+  .mobile-lg\:border-x{
+    border-left:1px solid;
+    border-right:1px solid;
+  }
+  .mobile-lg\:hover\:border-x:hover{
+    border-left:1px solid;
+    border-right:1px solid;
+  }
+  .mobile-lg\:border-top{
+    border-top:1px solid;
+  }
+  .mobile-lg\:hover\:border-top:hover{
+    border-top:1px solid;
+  }
+  .mobile-lg\:border-right{
+    border-right:1px solid;
+  }
+  .mobile-lg\:hover\:border-right:hover{
+    border-right:1px solid;
+  }
+  .mobile-lg\:border-bottom{
+    border-bottom:1px solid;
+  }
+  .mobile-lg\:hover\:border-bottom:hover{
+    border-bottom:1px solid;
+  }
+  .mobile-lg\:border-left{
+    border-left:1px solid;
+  }
+  .mobile-lg\:hover\:border-left:hover{
+    border-left:1px solid;
+  }
+  .mobile-lg\:border-transparent{
+    border-color:transparent;
+  }
+  .mobile-lg\:hover\:border-transparent:hover{
+    border-color:transparent;
+  }
+  .mobile-lg\:border-black{
+    border-color:black;
+  }
+  .mobile-lg\:hover\:border-black:hover{
+    border-color:black;
+  }
+  .mobile-lg\:border-white{
+    border-color:white;
+  }
+  .mobile-lg\:hover\:border-white:hover{
+    border-color:white;
+  }
+  .mobile-lg\:border-red{
+    border-color:#e52207;
+  }
+  .mobile-lg\:hover\:border-red:hover{
+    border-color:#e52207;
+  }
+  .mobile-lg\:border-orange{
+    border-color:#e66f0e;
+  }
+  .mobile-lg\:hover\:border-orange:hover{
+    border-color:#e66f0e;
+  }
+  .mobile-lg\:border-gold{
+    border-color:#ffbe2e;
+  }
+  .mobile-lg\:hover\:border-gold:hover{
+    border-color:#ffbe2e;
+  }
+  .mobile-lg\:border-yellow{
+    border-color:#fee685;
+  }
+  .mobile-lg\:hover\:border-yellow:hover{
+    border-color:#fee685;
+  }
+  .mobile-lg\:border-green{
+    border-color:#538200;
+  }
+  .mobile-lg\:hover\:border-green:hover{
+    border-color:#538200;
+  }
+  .mobile-lg\:border-mint{
+    border-color:#04c585;
+  }
+  .mobile-lg\:hover\:border-mint:hover{
+    border-color:#04c585;
+  }
+  .mobile-lg\:border-cyan{
+    border-color:#009ec1;
+  }
+  .mobile-lg\:hover\:border-cyan:hover{
+    border-color:#009ec1;
+  }
+  .mobile-lg\:border-blue{
+    border-color:#0076d6;
+  }
+  .mobile-lg\:hover\:border-blue:hover{
+    border-color:#0076d6;
+  }
+  .mobile-lg\:border-indigo{
+    border-color:#676cc8;
+  }
+  .mobile-lg\:hover\:border-indigo:hover{
+    border-color:#676cc8;
+  }
+  .mobile-lg\:border-violet{
+    border-color:#8168b3;
+  }
+  .mobile-lg\:hover\:border-violet:hover{
+    border-color:#8168b3;
+  }
+  .mobile-lg\:border-magenta{
+    border-color:#d72d79;
+  }
+  .mobile-lg\:hover\:border-magenta:hover{
+    border-color:#d72d79;
+  }
+  .mobile-lg\:border-gray-5{
+    border-color:#f0f0f0;
+  }
+  .mobile-lg\:hover\:border-gray-5:hover{
+    border-color:#f0f0f0;
+  }
+  .mobile-lg\:border-gray-10{
+    border-color:#e6e6e6;
+  }
+  .mobile-lg\:hover\:border-gray-10:hover{
+    border-color:#e6e6e6;
+  }
+  .mobile-lg\:border-gray-30{
+    border-color:#adadad;
+  }
+  .mobile-lg\:hover\:border-gray-30:hover{
+    border-color:#adadad;
+  }
+  .mobile-lg\:border-gray-50{
+    border-color:#757575;
+  }
+  .mobile-lg\:hover\:border-gray-50:hover{
+    border-color:#757575;
+  }
+  .mobile-lg\:border-gray-70{
+    border-color:#454545;
+  }
+  .mobile-lg\:hover\:border-gray-70:hover{
+    border-color:#454545;
+  }
+  .mobile-lg\:border-gray-90{
+    border-color:#1b1b1b;
+  }
+  .mobile-lg\:hover\:border-gray-90:hover{
+    border-color:#1b1b1b;
+  }
+  .mobile-lg\:border-base-lightest{
+    border-color:#f0f0f0;
+  }
+  .mobile-lg\:hover\:border-base-lightest:hover{
+    border-color:#f0f0f0;
+  }
+  .mobile-lg\:border-base-lighter{
+    border-color:#dfe1e2;
+  }
+  .mobile-lg\:hover\:border-base-lighter:hover{
+    border-color:#dfe1e2;
+  }
+  .mobile-lg\:border-base-light{
+    border-color:#a9aeb1;
+  }
+  .mobile-lg\:hover\:border-base-light:hover{
+    border-color:#a9aeb1;
+  }
+  .mobile-lg\:border-base{
+    border-color:#71767a;
+  }
+  .mobile-lg\:hover\:border-base:hover{
+    border-color:#71767a;
+  }
+  .mobile-lg\:border-base-dark{
+    border-color:#565c65;
+  }
+  .mobile-lg\:hover\:border-base-dark:hover{
+    border-color:#565c65;
+  }
+  .mobile-lg\:border-base-darker{
+    border-color:#3d4551;
+  }
+  .mobile-lg\:hover\:border-base-darker:hover{
+    border-color:#3d4551;
+  }
+  .mobile-lg\:border-base-darkest{
+    border-color:#1b1b1b;
+  }
+  .mobile-lg\:hover\:border-base-darkest:hover{
+    border-color:#1b1b1b;
+  }
+  .mobile-lg\:border-ink{
+    border-color:#1b1b1b;
+  }
+  .mobile-lg\:hover\:border-ink:hover{
+    border-color:#1b1b1b;
+  }
+  .mobile-lg\:border-primary-lighter{
+    border-color:#d9e8f6;
+  }
+  .mobile-lg\:hover\:border-primary-lighter:hover{
+    border-color:#d9e8f6;
+  }
+  .mobile-lg\:border-primary-light{
+    border-color:#73b3e7;
+  }
+  .mobile-lg\:hover\:border-primary-light:hover{
+    border-color:#73b3e7;
+  }
+  .mobile-lg\:border-primary{
+    border-color:#005ea2;
+  }
+  .mobile-lg\:hover\:border-primary:hover{
+    border-color:#005ea2;
+  }
+  .mobile-lg\:border-primary-vivid{
+    border-color:#0050d8;
+  }
+  .mobile-lg\:hover\:border-primary-vivid:hover{
+    border-color:#0050d8;
+  }
+  .mobile-lg\:border-primary-dark{
+    border-color:#1a4480;
+  }
+  .mobile-lg\:hover\:border-primary-dark:hover{
+    border-color:#1a4480;
+  }
+  .mobile-lg\:border-primary-darker{
+    border-color:#162e51;
+  }
+  .mobile-lg\:hover\:border-primary-darker:hover{
+    border-color:#162e51;
+  }
+  .mobile-lg\:border-secondary-lighter{
+    border-color:#f3e1e4;
+  }
+  .mobile-lg\:hover\:border-secondary-lighter:hover{
+    border-color:#f3e1e4;
+  }
+  .mobile-lg\:border-secondary-light{
+    border-color:#f2938c;
+  }
+  .mobile-lg\:hover\:border-secondary-light:hover{
+    border-color:#f2938c;
+  }
+  .mobile-lg\:border-secondary{
+    border-color:#d83933;
+  }
+  .mobile-lg\:hover\:border-secondary:hover{
+    border-color:#d83933;
+  }
+  .mobile-lg\:border-secondary-vivid{
+    border-color:#e41d3d;
+  }
+  .mobile-lg\:hover\:border-secondary-vivid:hover{
+    border-color:#e41d3d;
+  }
+  .mobile-lg\:border-secondary-dark{
+    border-color:#b50909;
+  }
+  .mobile-lg\:hover\:border-secondary-dark:hover{
+    border-color:#b50909;
+  }
+  .mobile-lg\:border-secondary-darker{
+    border-color:#8b0a03;
+  }
+  .mobile-lg\:hover\:border-secondary-darker:hover{
+    border-color:#8b0a03;
+  }
+  .mobile-lg\:border-accent-warm-darker{
+    border-color:#775540;
+  }
+  .mobile-lg\:hover\:border-accent-warm-darker:hover{
+    border-color:#775540;
+  }
+  .mobile-lg\:border-accent-warm-dark{
+    border-color:#c05600;
+  }
+  .mobile-lg\:hover\:border-accent-warm-dark:hover{
+    border-color:#c05600;
+  }
+  .mobile-lg\:border-accent-warm{
+    border-color:#fa9441;
+  }
+  .mobile-lg\:hover\:border-accent-warm:hover{
+    border-color:#fa9441;
+  }
+  .mobile-lg\:border-accent-warm-light{
+    border-color:#ffbc78;
+  }
+  .mobile-lg\:hover\:border-accent-warm-light:hover{
+    border-color:#ffbc78;
+  }
+  .mobile-lg\:border-accent-warm-lighter{
+    border-color:#f2e4d4;
+  }
+  .mobile-lg\:hover\:border-accent-warm-lighter:hover{
+    border-color:#f2e4d4;
+  }
+  .mobile-lg\:border-accent-cool-darker{
+    border-color:#07648d;
+  }
+  .mobile-lg\:hover\:border-accent-cool-darker:hover{
+    border-color:#07648d;
+  }
+  .mobile-lg\:border-accent-cool-dark{
+    border-color:#28a0cb;
+  }
+  .mobile-lg\:hover\:border-accent-cool-dark:hover{
+    border-color:#28a0cb;
+  }
+  .mobile-lg\:border-accent-cool{
+    border-color:#00bde3;
+  }
+  .mobile-lg\:hover\:border-accent-cool:hover{
+    border-color:#00bde3;
+  }
+  .mobile-lg\:border-accent-cool-light{
+    border-color:#97d4ea;
+  }
+  .mobile-lg\:hover\:border-accent-cool-light:hover{
+    border-color:#97d4ea;
+  }
+  .mobile-lg\:border-accent-cool-lighter{
+    border-color:#e1f3f8;
+  }
+  .mobile-lg\:hover\:border-accent-cool-lighter:hover{
+    border-color:#e1f3f8;
+  }
+  .mobile-lg\:border-error-lighter{
+    border-color:#f4e3db;
+  }
+  .mobile-lg\:hover\:border-error-lighter:hover{
+    border-color:#f4e3db;
+  }
+  .mobile-lg\:border-error-light{
+    border-color:#f39268;
+  }
+  .mobile-lg\:hover\:border-error-light:hover{
+    border-color:#f39268;
+  }
+  .mobile-lg\:border-error{
+    border-color:#d54309;
+  }
+  .mobile-lg\:hover\:border-error:hover{
+    border-color:#d54309;
+  }
+  .mobile-lg\:border-error-dark{
+    border-color:#b50909;
+  }
+  .mobile-lg\:hover\:border-error-dark:hover{
+    border-color:#b50909;
+  }
+  .mobile-lg\:border-error-darker{
+    border-color:#6f3331;
+  }
+  .mobile-lg\:hover\:border-error-darker:hover{
+    border-color:#6f3331;
+  }
+  .mobile-lg\:border-warning-lighter{
+    border-color:#faf3d1;
+  }
+  .mobile-lg\:hover\:border-warning-lighter:hover{
+    border-color:#faf3d1;
+  }
+  .mobile-lg\:border-warning-light{
+    border-color:#fee685;
+  }
+  .mobile-lg\:hover\:border-warning-light:hover{
+    border-color:#fee685;
+  }
+  .mobile-lg\:border-warning{
+    border-color:#ffbe2e;
+  }
+  .mobile-lg\:hover\:border-warning:hover{
+    border-color:#ffbe2e;
+  }
+  .mobile-lg\:border-warning-dark{
+    border-color:#e5a000;
+  }
+  .mobile-lg\:hover\:border-warning-dark:hover{
+    border-color:#e5a000;
+  }
+  .mobile-lg\:border-warning-darker{
+    border-color:#936f38;
+  }
+  .mobile-lg\:hover\:border-warning-darker:hover{
+    border-color:#936f38;
+  }
+  .mobile-lg\:border-success-lighter{
+    border-color:#ecf3ec;
+  }
+  .mobile-lg\:hover\:border-success-lighter:hover{
+    border-color:#ecf3ec;
+  }
+  .mobile-lg\:border-success-light{
+    border-color:#70e17b;
+  }
+  .mobile-lg\:hover\:border-success-light:hover{
+    border-color:#70e17b;
+  }
+  .mobile-lg\:border-success{
+    border-color:#00a91c;
+  }
+  .mobile-lg\:hover\:border-success:hover{
+    border-color:#00a91c;
+  }
+  .mobile-lg\:border-success-dark{
+    border-color:#008817;
+  }
+  .mobile-lg\:hover\:border-success-dark:hover{
+    border-color:#008817;
+  }
+  .mobile-lg\:border-success-darker{
+    border-color:#216e1f;
+  }
+  .mobile-lg\:hover\:border-success-darker:hover{
+    border-color:#216e1f;
+  }
+  .mobile-lg\:border-info-lighter{
+    border-color:#e7f6f8;
+  }
+  .mobile-lg\:hover\:border-info-lighter:hover{
+    border-color:#e7f6f8;
+  }
+  .mobile-lg\:border-info-light{
+    border-color:#99deea;
+  }
+  .mobile-lg\:hover\:border-info-light:hover{
+    border-color:#99deea;
+  }
+  .mobile-lg\:border-info{
+    border-color:#00bde3;
+  }
+  .mobile-lg\:hover\:border-info:hover{
+    border-color:#00bde3;
+  }
+  .mobile-lg\:border-info-dark{
+    border-color:#009ec1;
+  }
+  .mobile-lg\:hover\:border-info-dark:hover{
+    border-color:#009ec1;
+  }
+  .mobile-lg\:border-info-darker{
+    border-color:#2e6276;
+  }
+  .mobile-lg\:hover\:border-info-darker:hover{
+    border-color:#2e6276;
+  }
+  .mobile-lg\:border-disabled-lighter{
+    border-color:#c9c9c9;
+  }
+  .mobile-lg\:hover\:border-disabled-lighter:hover{
+    border-color:#c9c9c9;
+  }
+  .mobile-lg\:border-disabled-light{
+    border-color:#919191;
+  }
+  .mobile-lg\:hover\:border-disabled-light:hover{
+    border-color:#919191;
+  }
+  .mobile-lg\:border-disabled{
+    border-color:#757575;
+  }
+  .mobile-lg\:hover\:border-disabled:hover{
+    border-color:#757575;
+  }
+  .mobile-lg\:border-disabled-dark{
+    border-color:#454545;
+  }
+  .mobile-lg\:hover\:border-disabled-dark:hover{
+    border-color:#454545;
+  }
+  .mobile-lg\:border-disabled-darker{
+    border-color:#1b1b1b;
+  }
+  .mobile-lg\:hover\:border-disabled-darker:hover{
+    border-color:#1b1b1b;
+  }
+  .mobile-lg\:border-emergency{
+    border-color:#9c3d10;
+  }
+  .mobile-lg\:hover\:border-emergency:hover{
+    border-color:#9c3d10;
+  }
+  .mobile-lg\:border-emergency-dark{
+    border-color:#332d29;
+  }
+  .mobile-lg\:hover\:border-emergency-dark:hover{
+    border-color:#332d29;
+  }
+  .mobile-lg\:radius-0{
+    border-radius:0;
+  }
+  .mobile-lg\:radius-top-0{
+    border-top-left-radius:0;
+    border-top-right-radius:0;
+  }
+  .mobile-lg\:radius-right-0{
+    border-top-right-radius:0;
+    border-bottom-right-radius:0;
+  }
+  .mobile-lg\:radius-bottom-0{
+    border-bottom-left-radius:0;
+    border-bottom-right-radius:0;
+  }
+  .mobile-lg\:radius-left-0{
+    border-top-left-radius:0;
+    border-bottom-left-radius:0;
+  }
+  .mobile-lg\:radius-sm{
+    border-radius:2px;
+  }
+  .mobile-lg\:radius-top-sm{
+    border-top-left-radius:2px;
+    border-top-right-radius:2px;
+  }
+  .mobile-lg\:radius-right-sm{
+    border-top-right-radius:2px;
+    border-bottom-right-radius:2px;
+  }
+  .mobile-lg\:radius-bottom-sm{
+    border-bottom-left-radius:2px;
+    border-bottom-right-radius:2px;
+  }
+  .mobile-lg\:radius-left-sm{
+    border-top-left-radius:2px;
+    border-bottom-left-radius:2px;
+  }
+  .mobile-lg\:radius-md{
+    border-radius:0.25rem;
+  }
+  .mobile-lg\:radius-top-md{
+    border-top-left-radius:0.25rem;
+    border-top-right-radius:0.25rem;
+  }
+  .mobile-lg\:radius-right-md{
+    border-top-right-radius:0.25rem;
+    border-bottom-right-radius:0.25rem;
+  }
+  .mobile-lg\:radius-bottom-md{
+    border-bottom-left-radius:0.25rem;
+    border-bottom-right-radius:0.25rem;
+  }
+  .mobile-lg\:radius-left-md{
+    border-top-left-radius:0.25rem;
+    border-bottom-left-radius:0.25rem;
+  }
+  .mobile-lg\:radius-lg{
+    border-radius:0.5rem;
+  }
+  .mobile-lg\:radius-top-lg{
+    border-top-left-radius:0.5rem;
+    border-top-right-radius:0.5rem;
+  }
+  .mobile-lg\:radius-right-lg{
+    border-top-right-radius:0.5rem;
+    border-bottom-right-radius:0.5rem;
+  }
+  .mobile-lg\:radius-bottom-lg{
+    border-bottom-left-radius:0.5rem;
+    border-bottom-right-radius:0.5rem;
+  }
+  .mobile-lg\:radius-left-lg{
+    border-top-left-radius:0.5rem;
+    border-bottom-left-radius:0.5rem;
+  }
+  .mobile-lg\:radius-pill{
+    border-radius:99rem;
+  }
+  .mobile-lg\:radius-top-pill{
+    border-top-left-radius:99rem;
+    border-top-right-radius:99rem;
+  }
+  .mobile-lg\:radius-right-pill{
+    border-top-right-radius:99rem;
+    border-bottom-right-radius:99rem;
+  }
+  .mobile-lg\:radius-bottom-pill{
+    border-bottom-left-radius:99rem;
+    border-bottom-right-radius:99rem;
+  }
+  .mobile-lg\:radius-left-pill{
+    border-top-left-radius:99rem;
+    border-bottom-left-radius:99rem;
+  }
+  .mobile-lg\:display-block{
+    display:block;
+  }
+  .mobile-lg\:display-flex{
+    display:flex;
+  }
+  .mobile-lg\:display-none{
+    display:none;
+  }
+  .mobile-lg\:display-inline{
+    display:inline;
+  }
+  .mobile-lg\:display-inline-block{
+    display:inline-block;
+  }
+  .mobile-lg\:display-inline-flex{
+    display:inline-flex;
+  }
+  .mobile-lg\:display-table{
+    display:table;
+  }
+  .mobile-lg\:display-table-cell{
+    display:table-cell;
+  }
+  .mobile-lg\:display-table-row{
+    display:table-row;
+  }
+  .mobile-lg\:font-mono-3xs{
+    font-size:0.77rem;
+  }
+  .mobile-lg\:font-mono-2xs{
+    font-size:0.83rem;
+  }
+  .mobile-lg\:font-mono-xs{
+    font-size:0.89rem;
+  }
+  .mobile-lg\:font-mono-sm{
+    font-size:0.95rem;
+  }
+  .mobile-lg\:font-mono-md{
+    font-size:1.01rem;
+  }
+  .mobile-lg\:font-mono-lg{
+    font-size:1.31rem;
+  }
+  .mobile-lg\:font-mono-xl{
+    font-size:1.91rem;
+  }
+  .mobile-lg\:font-mono-2xl{
+    font-size:2.38rem;
+  }
+  .mobile-lg\:font-mono-3xl{
+    font-size:2.86rem;
+  }
+  .mobile-lg\:font-sans-3xs{
+    font-size:0.87rem;
+  }
+  .mobile-lg\:font-sans-2xs{
+    font-size:0.93rem;
+  }
+  .mobile-lg\:font-sans-xs{
+    font-size:1rem;
+  }
+  .mobile-lg\:font-sans-sm{
+    font-size:1.06rem;
+  }
+  .mobile-lg\:font-sans-md{
+    font-size:1.13rem;
+  }
+  .mobile-lg\:font-sans-lg{
+    font-size:1.46rem;
+  }
+  .mobile-lg\:font-sans-xl{
+    font-size:2.13rem;
+  }
+  .mobile-lg\:font-sans-2xl{
+    font-size:2.66rem;
+  }
+  .mobile-lg\:font-sans-3xl{
+    font-size:3.19rem;
+  }
+  .mobile-lg\:font-serif-3xs{
+    font-size:0.79rem;
+  }
+  .mobile-lg\:font-serif-2xs{
+    font-size:0.85rem;
+  }
+  .mobile-lg\:font-serif-xs{
+    font-size:0.91rem;
+  }
+  .mobile-lg\:font-serif-sm{
+    font-size:0.98rem;
+  }
+  .mobile-lg\:font-serif-md{
+    font-size:1.04rem;
+  }
+  .mobile-lg\:font-serif-lg{
+    font-size:1.34rem;
+  }
+  .mobile-lg\:font-serif-xl{
+    font-size:1.95rem;
+  }
+  .mobile-lg\:font-serif-2xl{
+    font-size:2.44rem;
+  }
+  .mobile-lg\:font-serif-3xl{
+    font-size:2.93rem;
+  }
+  .mobile-lg\:font-heading-3xs{
+    font-size:0.79rem;
+  }
+  .mobile-lg\:font-heading-2xs{
+    font-size:0.85rem;
+  }
+  .mobile-lg\:font-heading-xs{
+    font-size:0.91rem;
+  }
+  .mobile-lg\:font-heading-sm{
+    font-size:0.98rem;
+  }
+  .mobile-lg\:font-heading-md{
+    font-size:1.04rem;
+  }
+  .mobile-lg\:font-heading-lg{
+    font-size:1.34rem;
+  }
+  .mobile-lg\:font-heading-xl{
+    font-size:1.95rem;
+  }
+  .mobile-lg\:font-heading-2xl{
+    font-size:2.44rem;
+  }
+  .mobile-lg\:font-heading-3xl{
+    font-size:2.93rem;
+  }
+  .mobile-lg\:font-body-3xs{
+    font-size:0.87rem;
+  }
+  .mobile-lg\:font-body-2xs{
+    font-size:0.93rem;
+  }
+  .mobile-lg\:font-body-xs{
+    font-size:1rem;
+  }
+  .mobile-lg\:font-body-sm{
+    font-size:1.06rem;
+  }
+  .mobile-lg\:font-body-md{
+    font-size:1.13rem;
+  }
+  .mobile-lg\:font-body-lg{
+    font-size:1.46rem;
+  }
+  .mobile-lg\:font-body-xl{
+    font-size:2.13rem;
+  }
+  .mobile-lg\:font-body-2xl{
+    font-size:2.66rem;
+  }
+  .mobile-lg\:font-body-3xl{
+    font-size:3.19rem;
+  }
+  .mobile-lg\:font-code-3xs{
+    font-size:0.77rem;
+  }
+  .mobile-lg\:font-code-2xs{
+    font-size:0.83rem;
+  }
+  .mobile-lg\:font-code-xs{
+    font-size:0.89rem;
+  }
+  .mobile-lg\:font-code-sm{
+    font-size:0.95rem;
+  }
+  .mobile-lg\:font-code-md{
+    font-size:1.01rem;
+  }
+  .mobile-lg\:font-code-lg{
+    font-size:1.31rem;
+  }
+  .mobile-lg\:font-code-xl{
+    font-size:1.91rem;
+  }
+  .mobile-lg\:font-code-2xl{
+    font-size:2.38rem;
+  }
+  .mobile-lg\:font-code-3xl{
+    font-size:2.86rem;
+  }
+  .mobile-lg\:font-alt-3xs{
+    font-size:0.79rem;
+  }
+  .mobile-lg\:font-alt-2xs{
+    font-size:0.85rem;
+  }
+  .mobile-lg\:font-alt-xs{
+    font-size:0.91rem;
+  }
+  .mobile-lg\:font-alt-sm{
+    font-size:0.98rem;
+  }
+  .mobile-lg\:font-alt-md{
+    font-size:1.04rem;
+  }
+  .mobile-lg\:font-alt-lg{
+    font-size:1.34rem;
+  }
+  .mobile-lg\:font-alt-xl{
+    font-size:1.95rem;
+  }
+  .mobile-lg\:font-alt-2xl{
+    font-size:2.44rem;
+  }
+  .mobile-lg\:font-alt-3xl{
+    font-size:2.93rem;
+  }
+  .mobile-lg\:font-ui-3xs{
+    font-size:0.87rem;
+  }
+  .mobile-lg\:font-ui-2xs{
+    font-size:0.93rem;
+  }
+  .mobile-lg\:font-ui-xs{
+    font-size:1rem;
+  }
+  .mobile-lg\:font-ui-sm{
+    font-size:1.06rem;
+  }
+  .mobile-lg\:font-ui-md{
+    font-size:1.13rem;
+  }
+  .mobile-lg\:font-ui-lg{
+    font-size:1.46rem;
+  }
+  .mobile-lg\:font-ui-xl{
+    font-size:2.13rem;
+  }
+  .mobile-lg\:font-ui-2xl{
+    font-size:2.66rem;
+  }
+  .mobile-lg\:font-ui-3xl{
+    font-size:3.19rem;
+  }
+  .mobile-lg\:text-light{
+    font-weight:300;
+  }
+  .mobile-lg\:text-normal{
+    font-weight:normal;
+  }
+  .mobile-lg\:text-bold{
+    font-weight:700;
+  }
+  .mobile-lg\:flex-justify-center{
+    justify-content:center;
+  }
+  .mobile-lg\:flex-justify-start{
+    justify-content:flex-start;
+  }
+  .mobile-lg\:flex-justify-end{
+    justify-content:flex-end;
+  }
+  .mobile-lg\:flex-justify{
+    justify-content:space-between;
+  }
+  .mobile-lg\:line-height-sans-1{
+    line-height:0.9;
+  }
+  .mobile-lg\:line-height-sans-2{
+    line-height:1.1;
+  }
+  .mobile-lg\:line-height-sans-3{
+    line-height:1.3;
+  }
+  .mobile-lg\:line-height-sans-4{
+    line-height:1.4;
+  }
+  .mobile-lg\:line-height-sans-5{
+    line-height:1.5;
+  }
+  .mobile-lg\:line-height-sans-6{
+    line-height:1.6;
+  }
+  .mobile-lg\:line-height-serif-1{
+    line-height:1;
+  }
+  .mobile-lg\:line-height-serif-2{
+    line-height:1.2;
+  }
+  .mobile-lg\:line-height-serif-3{
+    line-height:1.4;
+  }
+  .mobile-lg\:line-height-serif-4{
+    line-height:1.5;
+  }
+  .mobile-lg\:line-height-serif-5{
+    line-height:1.7;
+  }
+  .mobile-lg\:line-height-serif-6{
+    line-height:1.8;
+  }
+  .mobile-lg\:line-height-mono-1{
+    line-height:1;
+  }
+  .mobile-lg\:line-height-mono-2{
+    line-height:1.3;
+  }
+  .mobile-lg\:line-height-mono-3{
+    line-height:1.4;
+  }
+  .mobile-lg\:line-height-mono-4{
+    line-height:1.6;
+  }
+  .mobile-lg\:line-height-mono-5{
+    line-height:1.7;
+  }
+  .mobile-lg\:line-height-mono-6{
+    line-height:1.8;
+  }
+  .mobile-lg\:line-height-heading-1{
+    line-height:1;
+  }
+  .mobile-lg\:line-height-heading-2{
+    line-height:1.2;
+  }
+  .mobile-lg\:line-height-heading-3{
+    line-height:1.4;
+  }
+  .mobile-lg\:line-height-heading-4{
+    line-height:1.5;
+  }
+  .mobile-lg\:line-height-heading-5{
+    line-height:1.7;
+  }
+  .mobile-lg\:line-height-heading-6{
+    line-height:1.8;
+  }
+  .mobile-lg\:line-height-ui-1{
+    line-height:0.9;
+  }
+  .mobile-lg\:line-height-ui-2{
+    line-height:1.1;
+  }
+  .mobile-lg\:line-height-ui-3{
+    line-height:1.3;
+  }
+  .mobile-lg\:line-height-ui-4{
+    line-height:1.4;
+  }
+  .mobile-lg\:line-height-ui-5{
+    line-height:1.5;
+  }
+  .mobile-lg\:line-height-ui-6{
+    line-height:1.6;
+  }
+  .mobile-lg\:line-height-body-1{
+    line-height:0.9;
+  }
+  .mobile-lg\:line-height-body-2{
+    line-height:1.1;
+  }
+  .mobile-lg\:line-height-body-3{
+    line-height:1.3;
+  }
+  .mobile-lg\:line-height-body-4{
+    line-height:1.4;
+  }
+  .mobile-lg\:line-height-body-5{
+    line-height:1.5;
+  }
+  .mobile-lg\:line-height-body-6{
+    line-height:1.6;
+  }
+  .mobile-lg\:line-height-code-1{
+    line-height:1;
+  }
+  .mobile-lg\:line-height-code-2{
+    line-height:1.3;
+  }
+  .mobile-lg\:line-height-code-3{
+    line-height:1.4;
+  }
+  .mobile-lg\:line-height-code-4{
+    line-height:1.6;
+  }
+  .mobile-lg\:line-height-code-5{
+    line-height:1.7;
+  }
+  .mobile-lg\:line-height-code-6{
+    line-height:1.8;
+  }
+  .mobile-lg\:line-height-alt-1{
+    line-height:1;
+  }
+  .mobile-lg\:line-height-alt-2{
+    line-height:1.2;
+  }
+  .mobile-lg\:line-height-alt-3{
+    line-height:1.4;
+  }
+  .mobile-lg\:line-height-alt-4{
+    line-height:1.5;
+  }
+  .mobile-lg\:line-height-alt-5{
+    line-height:1.7;
+  }
+  .mobile-lg\:line-height-alt-6{
+    line-height:1.8;
+  }
+  .mobile-lg\:margin-neg-1px{
+    margin:-1px;
+  }
+  .mobile-lg\:margin-neg-2px{
+    margin:-2px;
+  }
+  .mobile-lg\:margin-neg-05{
+    margin:-0.25rem;
+  }
+  .mobile-lg\:margin-neg-1{
+    margin:-0.5rem;
+  }
+  .mobile-lg\:margin-neg-105{
+    margin:-0.75rem;
+  }
+  .mobile-lg\:margin-neg-2{
+    margin:-1rem;
+  }
+  .mobile-lg\:margin-neg-205{
+    margin:-1.25rem;
+  }
+  .mobile-lg\:margin-neg-3{
+    margin:-1.5rem;
+  }
+  .mobile-lg\:margin-1px{
+    margin:1px;
+  }
+  .mobile-lg\:margin-2px{
+    margin:2px;
+  }
+  .mobile-lg\:margin-05{
+    margin:0.25rem;
+  }
+  .mobile-lg\:margin-1{
+    margin:0.5rem;
+  }
+  .mobile-lg\:margin-105{
+    margin:0.75rem;
+  }
+  .mobile-lg\:margin-2{
+    margin:1rem;
+  }
+  .mobile-lg\:margin-205{
+    margin:1.25rem;
+  }
+  .mobile-lg\:margin-3{
+    margin:1.5rem;
+  }
+  .mobile-lg\:margin-neg-4{
+    margin:-2rem;
+  }
+  .mobile-lg\:margin-neg-5{
+    margin:-2.5rem;
+  }
+  .mobile-lg\:margin-neg-6{
+    margin:-3rem;
+  }
+  .mobile-lg\:margin-neg-7{
+    margin:-3.5rem;
+  }
+  .mobile-lg\:margin-neg-8{
+    margin:-4rem;
+  }
+  .mobile-lg\:margin-neg-9{
+    margin:-4.5rem;
+  }
+  .mobile-lg\:margin-neg-10{
+    margin:-5rem;
+  }
+  .mobile-lg\:margin-neg-15{
+    margin:-7.5rem;
+  }
+  .mobile-lg\:margin-4{
+    margin:2rem;
+  }
+  .mobile-lg\:margin-5{
+    margin:2.5rem;
+  }
+  .mobile-lg\:margin-6{
+    margin:3rem;
+  }
+  .mobile-lg\:margin-7{
+    margin:3.5rem;
+  }
+  .mobile-lg\:margin-8{
+    margin:4rem;
+  }
+  .mobile-lg\:margin-9{
+    margin:4.5rem;
+  }
+  .mobile-lg\:margin-10{
+    margin:5rem;
+  }
+  .mobile-lg\:margin-15{
+    margin:7.5rem;
+  }
+  .mobile-lg\:margin-05em{
+    margin:0.5em;
+  }
+  .mobile-lg\:margin-1em{
+    margin:1em;
+  }
+  .mobile-lg\:margin-105em{
+    margin:1.5em;
+  }
+  .mobile-lg\:margin-2em{
+    margin:2em;
+  }
+  .mobile-lg\:margin-0{
+    margin:0;
+  }
+  .mobile-lg\:margin-y-1px{
+    margin-top:1px;
+    margin-bottom:1px;
+  }
+  .mobile-lg\:margin-top-1px{
+    margin-top:1px;
+  }
+  .mobile-lg\:margin-bottom-1px{
+    margin-bottom:1px;
+  }
+  .mobile-lg\:margin-y-2px{
+    margin-top:2px;
+    margin-bottom:2px;
+  }
+  .mobile-lg\:margin-top-2px{
+    margin-top:2px;
+  }
+  .mobile-lg\:margin-bottom-2px{
+    margin-bottom:2px;
+  }
+  .mobile-lg\:margin-y-05{
+    margin-top:0.25rem;
+    margin-bottom:0.25rem;
+  }
+  .mobile-lg\:margin-top-05{
+    margin-top:0.25rem;
+  }
+  .mobile-lg\:margin-bottom-05{
+    margin-bottom:0.25rem;
+  }
+  .mobile-lg\:margin-y-1{
+    margin-top:0.5rem;
+    margin-bottom:0.5rem;
+  }
+  .mobile-lg\:margin-top-1{
+    margin-top:0.5rem;
+  }
+  .mobile-lg\:margin-bottom-1{
+    margin-bottom:0.5rem;
+  }
+  .mobile-lg\:margin-y-105{
+    margin-top:0.75rem;
+    margin-bottom:0.75rem;
+  }
+  .mobile-lg\:margin-top-105{
+    margin-top:0.75rem;
+  }
+  .mobile-lg\:margin-bottom-105{
+    margin-bottom:0.75rem;
+  }
+  .mobile-lg\:margin-y-2{
+    margin-top:1rem;
+    margin-bottom:1rem;
+  }
+  .mobile-lg\:margin-top-2{
+    margin-top:1rem;
+  }
+  .mobile-lg\:margin-bottom-2{
+    margin-bottom:1rem;
+  }
+  .mobile-lg\:margin-y-205{
+    margin-top:1.25rem;
+    margin-bottom:1.25rem;
+  }
+  .mobile-lg\:margin-top-205{
+    margin-top:1.25rem;
+  }
+  .mobile-lg\:margin-bottom-205{
+    margin-bottom:1.25rem;
+  }
+  .mobile-lg\:margin-y-3{
+    margin-top:1.5rem;
+    margin-bottom:1.5rem;
+  }
+  .mobile-lg\:margin-top-3{
+    margin-top:1.5rem;
+  }
+  .mobile-lg\:margin-bottom-3{
+    margin-bottom:1.5rem;
+  }
+  .mobile-lg\:margin-y-neg-1px{
+    margin-top:-1px;
+    margin-bottom:-1px;
+  }
+  .mobile-lg\:margin-top-neg-1px{
+    margin-top:-1px;
+  }
+  .mobile-lg\:margin-bottom-neg-1px{
+    margin-bottom:-1px;
+  }
+  .mobile-lg\:margin-y-neg-2px{
+    margin-top:-2px;
+    margin-bottom:-2px;
+  }
+  .mobile-lg\:margin-top-neg-2px{
+    margin-top:-2px;
+  }
+  .mobile-lg\:margin-bottom-neg-2px{
+    margin-bottom:-2px;
+  }
+  .mobile-lg\:margin-y-neg-05{
+    margin-top:-0.25rem;
+    margin-bottom:-0.25rem;
+  }
+  .mobile-lg\:margin-top-neg-05{
+    margin-top:-0.25rem;
+  }
+  .mobile-lg\:margin-bottom-neg-05{
+    margin-bottom:-0.25rem;
+  }
+  .mobile-lg\:margin-y-neg-1{
+    margin-top:-0.5rem;
+    margin-bottom:-0.5rem;
+  }
+  .mobile-lg\:margin-top-neg-1{
+    margin-top:-0.5rem;
+  }
+  .mobile-lg\:margin-bottom-neg-1{
+    margin-bottom:-0.5rem;
+  }
+  .mobile-lg\:margin-y-neg-105{
+    margin-top:-0.75rem;
+    margin-bottom:-0.75rem;
+  }
+  .mobile-lg\:margin-top-neg-105{
+    margin-top:-0.75rem;
+  }
+  .mobile-lg\:margin-bottom-neg-105{
+    margin-bottom:-0.75rem;
+  }
+  .mobile-lg\:margin-y-neg-2{
+    margin-top:-1rem;
+    margin-bottom:-1rem;
+  }
+  .mobile-lg\:margin-top-neg-2{
+    margin-top:-1rem;
+  }
+  .mobile-lg\:margin-bottom-neg-2{
+    margin-bottom:-1rem;
+  }
+  .mobile-lg\:margin-y-neg-205{
+    margin-top:-1.25rem;
+    margin-bottom:-1.25rem;
+  }
+  .mobile-lg\:margin-top-neg-205{
+    margin-top:-1.25rem;
+  }
+  .mobile-lg\:margin-bottom-neg-205{
+    margin-bottom:-1.25rem;
+  }
+  .mobile-lg\:margin-y-neg-3{
+    margin-top:-1.5rem;
+    margin-bottom:-1.5rem;
+  }
+  .mobile-lg\:margin-top-neg-3{
+    margin-top:-1.5rem;
+  }
+  .mobile-lg\:margin-bottom-neg-3{
+    margin-bottom:-1.5rem;
+  }
+  .mobile-lg\:margin-y-neg-4{
+    margin-top:-2rem;
+    margin-bottom:-2rem;
+  }
+  .mobile-lg\:margin-top-neg-4{
+    margin-top:-2rem;
+  }
+  .mobile-lg\:margin-bottom-neg-4{
+    margin-bottom:-2rem;
+  }
+  .mobile-lg\:margin-y-neg-5{
+    margin-top:-2.5rem;
+    margin-bottom:-2.5rem;
+  }
+  .mobile-lg\:margin-top-neg-5{
+    margin-top:-2.5rem;
+  }
+  .mobile-lg\:margin-bottom-neg-5{
+    margin-bottom:-2.5rem;
+  }
+  .mobile-lg\:margin-y-neg-6{
+    margin-top:-3rem;
+    margin-bottom:-3rem;
+  }
+  .mobile-lg\:margin-top-neg-6{
+    margin-top:-3rem;
+  }
+  .mobile-lg\:margin-bottom-neg-6{
+    margin-bottom:-3rem;
+  }
+  .mobile-lg\:margin-y-neg-7{
+    margin-top:-3.5rem;
+    margin-bottom:-3.5rem;
+  }
+  .mobile-lg\:margin-top-neg-7{
+    margin-top:-3.5rem;
+  }
+  .mobile-lg\:margin-bottom-neg-7{
+    margin-bottom:-3.5rem;
+  }
+  .mobile-lg\:margin-y-neg-8{
+    margin-top:-4rem;
+    margin-bottom:-4rem;
+  }
+  .mobile-lg\:margin-top-neg-8{
+    margin-top:-4rem;
+  }
+  .mobile-lg\:margin-bottom-neg-8{
+    margin-bottom:-4rem;
+  }
+  .mobile-lg\:margin-y-neg-9{
+    margin-top:-4.5rem;
+    margin-bottom:-4.5rem;
+  }
+  .mobile-lg\:margin-top-neg-9{
+    margin-top:-4.5rem;
+  }
+  .mobile-lg\:margin-bottom-neg-9{
+    margin-bottom:-4.5rem;
+  }
+  .mobile-lg\:margin-y-neg-10{
+    margin-top:-5rem;
+    margin-bottom:-5rem;
+  }
+  .mobile-lg\:margin-top-neg-10{
+    margin-top:-5rem;
+  }
+  .mobile-lg\:margin-bottom-neg-10{
+    margin-bottom:-5rem;
+  }
+  .mobile-lg\:margin-y-neg-15{
+    margin-top:-7.5rem;
+    margin-bottom:-7.5rem;
+  }
+  .mobile-lg\:margin-top-neg-15{
+    margin-top:-7.5rem;
+  }
+  .mobile-lg\:margin-bottom-neg-15{
+    margin-bottom:-7.5rem;
+  }
+  .mobile-lg\:margin-y-4{
+    margin-top:2rem;
+    margin-bottom:2rem;
+  }
+  .mobile-lg\:margin-top-4{
+    margin-top:2rem;
+  }
+  .mobile-lg\:margin-bottom-4{
+    margin-bottom:2rem;
+  }
+  .mobile-lg\:margin-y-5{
+    margin-top:2.5rem;
+    margin-bottom:2.5rem;
+  }
+  .mobile-lg\:margin-top-5{
+    margin-top:2.5rem;
+  }
+  .mobile-lg\:margin-bottom-5{
+    margin-bottom:2.5rem;
+  }
+  .mobile-lg\:margin-y-6{
+    margin-top:3rem;
+    margin-bottom:3rem;
+  }
+  .mobile-lg\:margin-top-6{
+    margin-top:3rem;
+  }
+  .mobile-lg\:margin-bottom-6{
+    margin-bottom:3rem;
+  }
+  .mobile-lg\:margin-y-7{
+    margin-top:3.5rem;
+    margin-bottom:3.5rem;
+  }
+  .mobile-lg\:margin-top-7{
+    margin-top:3.5rem;
+  }
+  .mobile-lg\:margin-bottom-7{
+    margin-bottom:3.5rem;
+  }
+  .mobile-lg\:margin-y-8{
+    margin-top:4rem;
+    margin-bottom:4rem;
+  }
+  .mobile-lg\:margin-top-8{
+    margin-top:4rem;
+  }
+  .mobile-lg\:margin-bottom-8{
+    margin-bottom:4rem;
+  }
+  .mobile-lg\:margin-y-9{
+    margin-top:4.5rem;
+    margin-bottom:4.5rem;
+  }
+  .mobile-lg\:margin-top-9{
+    margin-top:4.5rem;
+  }
+  .mobile-lg\:margin-bottom-9{
+    margin-bottom:4.5rem;
+  }
+  .mobile-lg\:margin-y-10{
+    margin-top:5rem;
+    margin-bottom:5rem;
+  }
+  .mobile-lg\:margin-top-10{
+    margin-top:5rem;
+  }
+  .mobile-lg\:margin-bottom-10{
+    margin-bottom:5rem;
+  }
+  .mobile-lg\:margin-y-15{
+    margin-top:7.5rem;
+    margin-bottom:7.5rem;
+  }
+  .mobile-lg\:margin-top-15{
+    margin-top:7.5rem;
+  }
+  .mobile-lg\:margin-bottom-15{
+    margin-bottom:7.5rem;
+  }
+  .mobile-lg\:margin-y-05em{
+    margin-top:0.5em;
+    margin-bottom:0.5em;
+  }
+  .mobile-lg\:margin-top-05em{
+    margin-top:0.5em;
+  }
+  .mobile-lg\:margin-bottom-05em{
+    margin-bottom:0.5em;
+  }
+  .mobile-lg\:margin-y-1em{
+    margin-top:1em;
+    margin-bottom:1em;
+  }
+  .mobile-lg\:margin-top-1em{
+    margin-top:1em;
+  }
+  .mobile-lg\:margin-bottom-1em{
+    margin-bottom:1em;
+  }
+  .mobile-lg\:margin-y-105em{
+    margin-top:1.5em;
+    margin-bottom:1.5em;
+  }
+  .mobile-lg\:margin-top-105em{
+    margin-top:1.5em;
+  }
+  .mobile-lg\:margin-bottom-105em{
+    margin-bottom:1.5em;
+  }
+  .mobile-lg\:margin-y-2em{
+    margin-top:2em;
+    margin-bottom:2em;
+  }
+  .mobile-lg\:margin-top-2em{
+    margin-top:2em;
+  }
+  .mobile-lg\:margin-bottom-2em{
+    margin-bottom:2em;
+  }
+  .mobile-lg\:margin-y-0{
+    margin-top:0;
+    margin-bottom:0;
+  }
+  .mobile-lg\:margin-top-0{
+    margin-top:0;
+  }
+  .mobile-lg\:margin-bottom-0{
+    margin-bottom:0;
+  }
+  .mobile-lg\:margin-y-auto{
+    margin-top:auto;
+    margin-bottom:auto;
+  }
+  .mobile-lg\:margin-top-auto{
+    margin-top:auto;
+  }
+  .mobile-lg\:margin-bottom-auto{
+    margin-bottom:auto;
+  }
+  .mobile-lg\:margin-x-1px{
+    margin-left:1px;
+    margin-right:1px;
+  }
+  .mobile-lg\:margin-right-1px{
+    margin-right:1px;
+  }
+  .mobile-lg\:margin-left-1px{
+    margin-left:1px;
+  }
+  .mobile-lg\:margin-x-2px{
+    margin-left:2px;
+    margin-right:2px;
+  }
+  .mobile-lg\:margin-right-2px{
+    margin-right:2px;
+  }
+  .mobile-lg\:margin-left-2px{
+    margin-left:2px;
+  }
+  .mobile-lg\:margin-x-05{
+    margin-left:0.25rem;
+    margin-right:0.25rem;
+  }
+  .mobile-lg\:margin-right-05{
+    margin-right:0.25rem;
+  }
+  .mobile-lg\:margin-left-05{
+    margin-left:0.25rem;
+  }
+  .mobile-lg\:margin-x-1{
+    margin-left:0.5rem;
+    margin-right:0.5rem;
+  }
+  .mobile-lg\:margin-right-1{
+    margin-right:0.5rem;
+  }
+  .mobile-lg\:margin-left-1{
+    margin-left:0.5rem;
+  }
+  .mobile-lg\:margin-x-105{
+    margin-left:0.75rem;
+    margin-right:0.75rem;
+  }
+  .mobile-lg\:margin-right-105{
+    margin-right:0.75rem;
+  }
+  .mobile-lg\:margin-left-105{
+    margin-left:0.75rem;
+  }
+  .mobile-lg\:margin-x-2{
+    margin-left:1rem;
+    margin-right:1rem;
+  }
+  .mobile-lg\:margin-right-2{
+    margin-right:1rem;
+  }
+  .mobile-lg\:margin-left-2{
+    margin-left:1rem;
+  }
+  .mobile-lg\:margin-x-205{
+    margin-left:1.25rem;
+    margin-right:1.25rem;
+  }
+  .mobile-lg\:margin-right-205{
+    margin-right:1.25rem;
+  }
+  .mobile-lg\:margin-left-205{
+    margin-left:1.25rem;
+  }
+  .mobile-lg\:margin-x-3{
+    margin-left:1.5rem;
+    margin-right:1.5rem;
+  }
+  .mobile-lg\:margin-right-3{
+    margin-right:1.5rem;
+  }
+  .mobile-lg\:margin-left-3{
+    margin-left:1.5rem;
+  }
+  .mobile-lg\:margin-x-neg-1px{
+    margin-left:-1px;
+    margin-right:-1px;
+  }
+  .mobile-lg\:margin-right-neg-1px{
+    margin-right:-1px;
+  }
+  .mobile-lg\:margin-left-neg-1px{
+    margin-left:-1px;
+  }
+  .mobile-lg\:margin-x-neg-2px{
+    margin-left:-2px;
+    margin-right:-2px;
+  }
+  .mobile-lg\:margin-right-neg-2px{
+    margin-right:-2px;
+  }
+  .mobile-lg\:margin-left-neg-2px{
+    margin-left:-2px;
+  }
+  .mobile-lg\:margin-x-neg-05{
+    margin-left:-0.25rem;
+    margin-right:-0.25rem;
+  }
+  .mobile-lg\:margin-right-neg-05{
+    margin-right:-0.25rem;
+  }
+  .mobile-lg\:margin-left-neg-05{
+    margin-left:-0.25rem;
+  }
+  .mobile-lg\:margin-x-neg-1{
+    margin-left:-0.5rem;
+    margin-right:-0.5rem;
+  }
+  .mobile-lg\:margin-right-neg-1{
+    margin-right:-0.5rem;
+  }
+  .mobile-lg\:margin-left-neg-1{
+    margin-left:-0.5rem;
+  }
+  .mobile-lg\:margin-x-neg-105{
+    margin-left:-0.75rem;
+    margin-right:-0.75rem;
+  }
+  .mobile-lg\:margin-right-neg-105{
+    margin-right:-0.75rem;
+  }
+  .mobile-lg\:margin-left-neg-105{
+    margin-left:-0.75rem;
+  }
+  .mobile-lg\:margin-x-neg-2{
+    margin-left:-1rem;
+    margin-right:-1rem;
+  }
+  .mobile-lg\:margin-right-neg-2{
+    margin-right:-1rem;
+  }
+  .mobile-lg\:margin-left-neg-2{
+    margin-left:-1rem;
+  }
+  .mobile-lg\:margin-x-neg-205{
+    margin-left:-1.25rem;
+    margin-right:-1.25rem;
+  }
+  .mobile-lg\:margin-right-neg-205{
+    margin-right:-1.25rem;
+  }
+  .mobile-lg\:margin-left-neg-205{
+    margin-left:-1.25rem;
+  }
+  .mobile-lg\:margin-x-neg-3{
+    margin-left:-1.5rem;
+    margin-right:-1.5rem;
+  }
+  .mobile-lg\:margin-right-neg-3{
+    margin-right:-1.5rem;
+  }
+  .mobile-lg\:margin-left-neg-3{
+    margin-left:-1.5rem;
+  }
+  .mobile-lg\:margin-x-neg-4{
+    margin-left:-2rem;
+    margin-right:-2rem;
+  }
+  .mobile-lg\:margin-right-neg-4{
+    margin-right:-2rem;
+  }
+  .mobile-lg\:margin-left-neg-4{
+    margin-left:-2rem;
+  }
+  .mobile-lg\:margin-x-neg-5{
+    margin-left:-2.5rem;
+    margin-right:-2.5rem;
+  }
+  .mobile-lg\:margin-right-neg-5{
+    margin-right:-2.5rem;
+  }
+  .mobile-lg\:margin-left-neg-5{
+    margin-left:-2.5rem;
+  }
+  .mobile-lg\:margin-x-neg-6{
+    margin-left:-3rem;
+    margin-right:-3rem;
+  }
+  .mobile-lg\:margin-right-neg-6{
+    margin-right:-3rem;
+  }
+  .mobile-lg\:margin-left-neg-6{
+    margin-left:-3rem;
+  }
+  .mobile-lg\:margin-x-neg-7{
+    margin-left:-3.5rem;
+    margin-right:-3.5rem;
+  }
+  .mobile-lg\:margin-right-neg-7{
+    margin-right:-3.5rem;
+  }
+  .mobile-lg\:margin-left-neg-7{
+    margin-left:-3.5rem;
+  }
+  .mobile-lg\:margin-x-neg-8{
+    margin-left:-4rem;
+    margin-right:-4rem;
+  }
+  .mobile-lg\:margin-right-neg-8{
+    margin-right:-4rem;
+  }
+  .mobile-lg\:margin-left-neg-8{
+    margin-left:-4rem;
+  }
+  .mobile-lg\:margin-x-neg-9{
+    margin-left:-4.5rem;
+    margin-right:-4.5rem;
+  }
+  .mobile-lg\:margin-right-neg-9{
+    margin-right:-4.5rem;
+  }
+  .mobile-lg\:margin-left-neg-9{
+    margin-left:-4.5rem;
+  }
+  .mobile-lg\:margin-x-neg-10{
+    margin-left:-5rem;
+    margin-right:-5rem;
+  }
+  .mobile-lg\:margin-right-neg-10{
+    margin-right:-5rem;
+  }
+  .mobile-lg\:margin-left-neg-10{
+    margin-left:-5rem;
+  }
+  .mobile-lg\:margin-x-neg-15{
+    margin-left:-7.5rem;
+    margin-right:-7.5rem;
+  }
+  .mobile-lg\:margin-right-neg-15{
+    margin-right:-7.5rem;
+  }
+  .mobile-lg\:margin-left-neg-15{
+    margin-left:-7.5rem;
+  }
+  .mobile-lg\:margin-x-4{
+    margin-left:2rem;
+    margin-right:2rem;
+  }
+  .mobile-lg\:margin-right-4{
+    margin-right:2rem;
+  }
+  .mobile-lg\:margin-left-4{
+    margin-left:2rem;
+  }
+  .mobile-lg\:margin-x-5{
+    margin-left:2.5rem;
+    margin-right:2.5rem;
+  }
+  .mobile-lg\:margin-right-5{
+    margin-right:2.5rem;
+  }
+  .mobile-lg\:margin-left-5{
+    margin-left:2.5rem;
+  }
+  .mobile-lg\:margin-x-6{
+    margin-left:3rem;
+    margin-right:3rem;
+  }
+  .mobile-lg\:margin-right-6{
+    margin-right:3rem;
+  }
+  .mobile-lg\:margin-left-6{
+    margin-left:3rem;
+  }
+  .mobile-lg\:margin-x-7{
+    margin-left:3.5rem;
+    margin-right:3.5rem;
+  }
+  .mobile-lg\:margin-right-7{
+    margin-right:3.5rem;
+  }
+  .mobile-lg\:margin-left-7{
+    margin-left:3.5rem;
+  }
+  .mobile-lg\:margin-x-8{
+    margin-left:4rem;
+    margin-right:4rem;
+  }
+  .mobile-lg\:margin-right-8{
+    margin-right:4rem;
+  }
+  .mobile-lg\:margin-left-8{
+    margin-left:4rem;
+  }
+  .mobile-lg\:margin-x-9{
+    margin-left:4.5rem;
+    margin-right:4.5rem;
+  }
+  .mobile-lg\:margin-right-9{
+    margin-right:4.5rem;
+  }
+  .mobile-lg\:margin-left-9{
+    margin-left:4.5rem;
+  }
+  .mobile-lg\:margin-x-10{
+    margin-left:5rem;
+    margin-right:5rem;
+  }
+  .mobile-lg\:margin-right-10{
+    margin-right:5rem;
+  }
+  .mobile-lg\:margin-left-10{
+    margin-left:5rem;
+  }
+  .mobile-lg\:margin-x-15{
+    margin-left:7.5rem;
+    margin-right:7.5rem;
+  }
+  .mobile-lg\:margin-right-15{
+    margin-right:7.5rem;
+  }
+  .mobile-lg\:margin-left-15{
+    margin-left:7.5rem;
+  }
+  .mobile-lg\:margin-x-card{
+    margin-left:10rem;
+    margin-right:10rem;
+  }
+  .mobile-lg\:margin-right-card{
+    margin-right:10rem;
+  }
+  .mobile-lg\:margin-left-card{
+    margin-left:10rem;
+  }
+  .mobile-lg\:margin-x-card-lg{
+    margin-left:15rem;
+    margin-right:15rem;
+  }
+  .mobile-lg\:margin-right-card-lg{
+    margin-right:15rem;
+  }
+  .mobile-lg\:margin-left-card-lg{
+    margin-left:15rem;
+  }
+  .mobile-lg\:margin-x-mobile{
+    margin-left:20rem;
+    margin-right:20rem;
+  }
+  .mobile-lg\:margin-right-mobile{
+    margin-right:20rem;
+  }
+  .mobile-lg\:margin-left-mobile{
+    margin-left:20rem;
+  }
+  .mobile-lg\:margin-x-05em{
+    margin-left:0.5em;
+    margin-right:0.5em;
+  }
+  .mobile-lg\:margin-right-05em{
+    margin-right:0.5em;
+  }
+  .mobile-lg\:margin-left-05em{
+    margin-left:0.5em;
+  }
+  .mobile-lg\:margin-x-1em{
+    margin-left:1em;
+    margin-right:1em;
+  }
+  .mobile-lg\:margin-right-1em{
+    margin-right:1em;
+  }
+  .mobile-lg\:margin-left-1em{
+    margin-left:1em;
+  }
+  .mobile-lg\:margin-x-105em{
+    margin-left:1.5em;
+    margin-right:1.5em;
+  }
+  .mobile-lg\:margin-right-105em{
+    margin-right:1.5em;
+  }
+  .mobile-lg\:margin-left-105em{
+    margin-left:1.5em;
+  }
+  .mobile-lg\:margin-x-2em{
+    margin-left:2em;
+    margin-right:2em;
+  }
+  .mobile-lg\:margin-right-2em{
+    margin-right:2em;
+  }
+  .mobile-lg\:margin-left-2em{
+    margin-left:2em;
+  }
+  .mobile-lg\:margin-x-0{
+    margin-left:0;
+    margin-right:0;
+  }
+  .mobile-lg\:margin-right-0{
+    margin-right:0;
+  }
+  .mobile-lg\:margin-left-0{
+    margin-left:0;
+  }
+  .mobile-lg\:margin-x-auto{
+    margin-left:auto;
+    margin-right:auto;
+  }
+  .mobile-lg\:margin-right-auto{
+    margin-right:auto;
+  }
+  .mobile-lg\:margin-left-auto{
+    margin-left:auto;
+  }
+  .mobile-lg\:measure-1{
+    max-width:44ex;
+  }
+  .mobile-lg\:measure-2{
+    max-width:60ex;
+  }
+  .mobile-lg\:measure-3{
+    max-width:64ex;
+  }
+  .mobile-lg\:measure-4{
+    max-width:68ex;
+  }
+  .mobile-lg\:measure-5{
+    max-width:72ex;
+  }
+  .mobile-lg\:measure-6{
+    max-width:88ex;
+  }
+  .mobile-lg\:measure-none{
+    max-width:none;
+  }
+  .mobile-lg\:order-first{
+    order:-1;
+  }
+  .mobile-lg\:order-last{
+    order:999;
+  }
+  .mobile-lg\:order-initial{
+    order:initial;
+  }
+  .mobile-lg\:order-0{
+    order:0;
+  }
+  .mobile-lg\:order-1{
+    order:1;
+  }
+  .mobile-lg\:order-2{
+    order:2;
+  }
+  .mobile-lg\:order-3{
+    order:3;
+  }
+  .mobile-lg\:order-4{
+    order:4;
+  }
+  .mobile-lg\:order-5{
+    order:5;
+  }
+  .mobile-lg\:order-6{
+    order:6;
+  }
+  .mobile-lg\:order-7{
+    order:7;
+  }
+  .mobile-lg\:order-8{
+    order:8;
+  }
+  .mobile-lg\:order-9{
+    order:9;
+  }
+  .mobile-lg\:order-10{
+    order:10;
+  }
+  .mobile-lg\:order-11{
+    order:11;
+  }
+  .mobile-lg\:padding-1px{
+    padding:1px;
+  }
+  .mobile-lg\:padding-y-1px{
+    padding-top:1px;
+    padding-bottom:1px;
+  }
+  .mobile-lg\:padding-x-1px{
+    padding-left:1px;
+    padding-right:1px;
+  }
+  .mobile-lg\:padding-top-1px{
+    padding-top:1px;
+  }
+  .mobile-lg\:padding-right-1px{
+    padding-right:1px;
+  }
+  .mobile-lg\:padding-bottom-1px{
+    padding-bottom:1px;
+  }
+  .mobile-lg\:padding-left-1px{
+    padding-left:1px;
+  }
+  .mobile-lg\:padding-2px{
+    padding:2px;
+  }
+  .mobile-lg\:padding-y-2px{
+    padding-top:2px;
+    padding-bottom:2px;
+  }
+  .mobile-lg\:padding-x-2px{
+    padding-left:2px;
+    padding-right:2px;
+  }
+  .mobile-lg\:padding-top-2px{
+    padding-top:2px;
+  }
+  .mobile-lg\:padding-right-2px{
+    padding-right:2px;
+  }
+  .mobile-lg\:padding-bottom-2px{
+    padding-bottom:2px;
+  }
+  .mobile-lg\:padding-left-2px{
+    padding-left:2px;
+  }
+  .mobile-lg\:padding-05{
+    padding:0.25rem;
+  }
+  .mobile-lg\:padding-y-05{
+    padding-top:0.25rem;
+    padding-bottom:0.25rem;
+  }
+  .mobile-lg\:padding-x-05{
+    padding-left:0.25rem;
+    padding-right:0.25rem;
+  }
+  .mobile-lg\:padding-top-05{
+    padding-top:0.25rem;
+  }
+  .mobile-lg\:padding-right-05{
+    padding-right:0.25rem;
+  }
+  .mobile-lg\:padding-bottom-05{
+    padding-bottom:0.25rem;
+  }
+  .mobile-lg\:padding-left-05{
+    padding-left:0.25rem;
+  }
+  .mobile-lg\:padding-1{
+    padding:0.5rem;
+  }
+  .mobile-lg\:padding-y-1{
+    padding-top:0.5rem;
+    padding-bottom:0.5rem;
+  }
+  .mobile-lg\:padding-x-1{
+    padding-left:0.5rem;
+    padding-right:0.5rem;
+  }
+  .mobile-lg\:padding-top-1{
+    padding-top:0.5rem;
+  }
+  .mobile-lg\:padding-right-1{
+    padding-right:0.5rem;
+  }
+  .mobile-lg\:padding-bottom-1{
+    padding-bottom:0.5rem;
+  }
+  .mobile-lg\:padding-left-1{
+    padding-left:0.5rem;
+  }
+  .mobile-lg\:padding-105{
+    padding:0.75rem;
+  }
+  .mobile-lg\:padding-y-105{
+    padding-top:0.75rem;
+    padding-bottom:0.75rem;
+  }
+  .mobile-lg\:padding-x-105{
+    padding-left:0.75rem;
+    padding-right:0.75rem;
+  }
+  .mobile-lg\:padding-top-105{
+    padding-top:0.75rem;
+  }
+  .mobile-lg\:padding-right-105{
+    padding-right:0.75rem;
+  }
+  .mobile-lg\:padding-bottom-105{
+    padding-bottom:0.75rem;
+  }
+  .mobile-lg\:padding-left-105{
+    padding-left:0.75rem;
+  }
+  .mobile-lg\:padding-2{
+    padding:1rem;
+  }
+  .mobile-lg\:padding-y-2{
+    padding-top:1rem;
+    padding-bottom:1rem;
+  }
+  .mobile-lg\:padding-x-2{
+    padding-left:1rem;
+    padding-right:1rem;
+  }
+  .mobile-lg\:padding-top-2{
+    padding-top:1rem;
+  }
+  .mobile-lg\:padding-right-2{
+    padding-right:1rem;
+  }
+  .mobile-lg\:padding-bottom-2{
+    padding-bottom:1rem;
+  }
+  .mobile-lg\:padding-left-2{
+    padding-left:1rem;
+  }
+  .mobile-lg\:padding-205{
+    padding:1.25rem;
+  }
+  .mobile-lg\:padding-y-205{
+    padding-top:1.25rem;
+    padding-bottom:1.25rem;
+  }
+  .mobile-lg\:padding-x-205{
+    padding-left:1.25rem;
+    padding-right:1.25rem;
+  }
+  .mobile-lg\:padding-top-205{
+    padding-top:1.25rem;
+  }
+  .mobile-lg\:padding-right-205{
+    padding-right:1.25rem;
+  }
+  .mobile-lg\:padding-bottom-205{
+    padding-bottom:1.25rem;
+  }
+  .mobile-lg\:padding-left-205{
+    padding-left:1.25rem;
+  }
+  .mobile-lg\:padding-3{
+    padding:1.5rem;
+  }
+  .mobile-lg\:padding-y-3{
+    padding-top:1.5rem;
+    padding-bottom:1.5rem;
+  }
+  .mobile-lg\:padding-x-3{
+    padding-left:1.5rem;
+    padding-right:1.5rem;
+  }
+  .mobile-lg\:padding-top-3{
+    padding-top:1.5rem;
+  }
+  .mobile-lg\:padding-right-3{
+    padding-right:1.5rem;
+  }
+  .mobile-lg\:padding-bottom-3{
+    padding-bottom:1.5rem;
+  }
+  .mobile-lg\:padding-left-3{
+    padding-left:1.5rem;
+  }
+  .mobile-lg\:padding-4{
+    padding:2rem;
+  }
+  .mobile-lg\:padding-y-4{
+    padding-top:2rem;
+    padding-bottom:2rem;
+  }
+  .mobile-lg\:padding-x-4{
+    padding-left:2rem;
+    padding-right:2rem;
+  }
+  .mobile-lg\:padding-top-4{
+    padding-top:2rem;
+  }
+  .mobile-lg\:padding-right-4{
+    padding-right:2rem;
+  }
+  .mobile-lg\:padding-bottom-4{
+    padding-bottom:2rem;
+  }
+  .mobile-lg\:padding-left-4{
+    padding-left:2rem;
+  }
+  .mobile-lg\:padding-5{
+    padding:2.5rem;
+  }
+  .mobile-lg\:padding-y-5{
+    padding-top:2.5rem;
+    padding-bottom:2.5rem;
+  }
+  .mobile-lg\:padding-x-5{
+    padding-left:2.5rem;
+    padding-right:2.5rem;
+  }
+  .mobile-lg\:padding-top-5{
+    padding-top:2.5rem;
+  }
+  .mobile-lg\:padding-right-5{
+    padding-right:2.5rem;
+  }
+  .mobile-lg\:padding-bottom-5{
+    padding-bottom:2.5rem;
+  }
+  .mobile-lg\:padding-left-5{
+    padding-left:2.5rem;
+  }
+  .mobile-lg\:padding-6{
+    padding:3rem;
+  }
+  .mobile-lg\:padding-y-6{
+    padding-top:3rem;
+    padding-bottom:3rem;
+  }
+  .mobile-lg\:padding-x-6{
+    padding-left:3rem;
+    padding-right:3rem;
+  }
+  .mobile-lg\:padding-top-6{
+    padding-top:3rem;
+  }
+  .mobile-lg\:padding-right-6{
+    padding-right:3rem;
+  }
+  .mobile-lg\:padding-bottom-6{
+    padding-bottom:3rem;
+  }
+  .mobile-lg\:padding-left-6{
+    padding-left:3rem;
+  }
+  .mobile-lg\:padding-7{
+    padding:3.5rem;
+  }
+  .mobile-lg\:padding-y-7{
+    padding-top:3.5rem;
+    padding-bottom:3.5rem;
+  }
+  .mobile-lg\:padding-x-7{
+    padding-left:3.5rem;
+    padding-right:3.5rem;
+  }
+  .mobile-lg\:padding-top-7{
+    padding-top:3.5rem;
+  }
+  .mobile-lg\:padding-right-7{
+    padding-right:3.5rem;
+  }
+  .mobile-lg\:padding-bottom-7{
+    padding-bottom:3.5rem;
+  }
+  .mobile-lg\:padding-left-7{
+    padding-left:3.5rem;
+  }
+  .mobile-lg\:padding-8{
+    padding:4rem;
+  }
+  .mobile-lg\:padding-y-8{
+    padding-top:4rem;
+    padding-bottom:4rem;
+  }
+  .mobile-lg\:padding-x-8{
+    padding-left:4rem;
+    padding-right:4rem;
+  }
+  .mobile-lg\:padding-top-8{
+    padding-top:4rem;
+  }
+  .mobile-lg\:padding-right-8{
+    padding-right:4rem;
+  }
+  .mobile-lg\:padding-bottom-8{
+    padding-bottom:4rem;
+  }
+  .mobile-lg\:padding-left-8{
+    padding-left:4rem;
+  }
+  .mobile-lg\:padding-9{
+    padding:4.5rem;
+  }
+  .mobile-lg\:padding-y-9{
+    padding-top:4.5rem;
+    padding-bottom:4.5rem;
+  }
+  .mobile-lg\:padding-x-9{
+    padding-left:4.5rem;
+    padding-right:4.5rem;
+  }
+  .mobile-lg\:padding-top-9{
+    padding-top:4.5rem;
+  }
+  .mobile-lg\:padding-right-9{
+    padding-right:4.5rem;
+  }
+  .mobile-lg\:padding-bottom-9{
+    padding-bottom:4.5rem;
+  }
+  .mobile-lg\:padding-left-9{
+    padding-left:4.5rem;
+  }
+  .mobile-lg\:padding-10{
+    padding:5rem;
+  }
+  .mobile-lg\:padding-y-10{
+    padding-top:5rem;
+    padding-bottom:5rem;
+  }
+  .mobile-lg\:padding-x-10{
+    padding-left:5rem;
+    padding-right:5rem;
+  }
+  .mobile-lg\:padding-top-10{
+    padding-top:5rem;
+  }
+  .mobile-lg\:padding-right-10{
+    padding-right:5rem;
+  }
+  .mobile-lg\:padding-bottom-10{
+    padding-bottom:5rem;
+  }
+  .mobile-lg\:padding-left-10{
+    padding-left:5rem;
+  }
+  .mobile-lg\:padding-15{
+    padding:7.5rem;
+  }
+  .mobile-lg\:padding-y-15{
+    padding-top:7.5rem;
+    padding-bottom:7.5rem;
+  }
+  .mobile-lg\:padding-x-15{
+    padding-left:7.5rem;
+    padding-right:7.5rem;
+  }
+  .mobile-lg\:padding-top-15{
+    padding-top:7.5rem;
+  }
+  .mobile-lg\:padding-right-15{
+    padding-right:7.5rem;
+  }
+  .mobile-lg\:padding-bottom-15{
+    padding-bottom:7.5rem;
+  }
+  .mobile-lg\:padding-left-15{
+    padding-left:7.5rem;
+  }
+  .mobile-lg\:padding-0{
+    padding:0;
+  }
+  .mobile-lg\:padding-y-0{
+    padding-top:0;
+    padding-bottom:0;
+  }
+  .mobile-lg\:padding-x-0{
+    padding-left:0;
+    padding-right:0;
+  }
+  .mobile-lg\:padding-top-0{
+    padding-top:0;
+  }
+  .mobile-lg\:padding-right-0{
+    padding-right:0;
+  }
+  .mobile-lg\:padding-bottom-0{
+    padding-bottom:0;
+  }
+  .mobile-lg\:padding-left-0{
+    padding-left:0;
+  }
+  .mobile-lg\:width-1px{
+    width:1px;
+  }
+  .mobile-lg\:width-2px{
+    width:2px;
+  }
+  .mobile-lg\:width-05{
+    width:0.25rem;
+  }
+  .mobile-lg\:width-1{
+    width:0.5rem;
+  }
+  .mobile-lg\:width-105{
+    width:0.75rem;
+  }
+  .mobile-lg\:width-2{
+    width:1rem;
+  }
+  .mobile-lg\:width-205{
+    width:1.25rem;
+  }
+  .mobile-lg\:width-3{
+    width:1.5rem;
+  }
+  .mobile-lg\:width-4{
+    width:2rem;
+  }
+  .mobile-lg\:width-5{
+    width:2.5rem;
+  }
+  .mobile-lg\:width-6{
+    width:3rem;
+  }
+  .mobile-lg\:width-7{
+    width:3.5rem;
+  }
+  .mobile-lg\:width-8{
+    width:4rem;
+  }
+  .mobile-lg\:width-9{
+    width:4.5rem;
+  }
+  .mobile-lg\:width-10{
+    width:5rem;
+  }
+  .mobile-lg\:width-15{
+    width:7.5rem;
+  }
+  .mobile-lg\:width-card{
+    width:10rem;
+  }
+  .mobile-lg\:width-card-lg{
+    width:15rem;
+  }
+  .mobile-lg\:width-mobile{
+    width:20rem;
+  }
+  .mobile-lg\:width-mobile-lg{
+    width:30rem;
+  }
+  .mobile-lg\:width-tablet{
+    width:40rem;
+  }
+  .mobile-lg\:width-tablet-lg{
+    width:55rem;
+  }
+  .mobile-lg\:width-desktop{
+    width:64rem;
+  }
+  .mobile-lg\:width-desktop-lg{
+    width:75rem;
+  }
+  .mobile-lg\:width-widescreen{
+    width:87.5rem;
+  }
+  .mobile-lg\:width-0{
+    width:0;
+  }
+  .mobile-lg\:width-full{
+    width:100%;
+  }
+  .mobile-lg\:width-auto{
+    width:auto;
+  }
+}
+@media all and (min-width: 40em){
+  .tablet\:border-1px{
+    border:1px solid;
+  }
+  .tablet\:hover\:border-1px:hover{
+    border:1px solid;
+  }
+  .tablet\:border-y-1px{
+    border-top:1px solid;
+    border-bottom:1px solid;
+  }
+  .tablet\:hover\:border-y-1px:hover{
+    border-top:1px solid;
+    border-bottom:1px solid;
+  }
+  .tablet\:border-x-1px{
+    border-left:1px solid;
+    border-right:1px solid;
+  }
+  .tablet\:hover\:border-x-1px:hover{
+    border-left:1px solid;
+    border-right:1px solid;
+  }
+  .tablet\:border-top-1px{
+    border-top:1px solid;
+  }
+  .tablet\:hover\:border-top-1px:hover{
+    border-top:1px solid;
+  }
+  .tablet\:border-right-1px{
+    border-right:1px solid;
+  }
+  .tablet\:hover\:border-right-1px:hover{
+    border-right:1px solid;
+  }
+  .tablet\:border-bottom-1px{
+    border-bottom:1px solid;
+  }
+  .tablet\:hover\:border-bottom-1px:hover{
+    border-bottom:1px solid;
+  }
+  .tablet\:border-left-1px{
+    border-left:1px solid;
+  }
+  .tablet\:hover\:border-left-1px:hover{
+    border-left:1px solid;
+  }
+  .tablet\:border-2px{
+    border:2px solid;
+  }
+  .tablet\:hover\:border-2px:hover{
+    border:2px solid;
+  }
+  .tablet\:border-y-2px{
+    border-top:2px solid;
+    border-bottom:2px solid;
+  }
+  .tablet\:hover\:border-y-2px:hover{
+    border-top:2px solid;
+    border-bottom:2px solid;
+  }
+  .tablet\:border-x-2px{
+    border-left:2px solid;
+    border-right:2px solid;
+  }
+  .tablet\:hover\:border-x-2px:hover{
+    border-left:2px solid;
+    border-right:2px solid;
+  }
+  .tablet\:border-top-2px{
+    border-top:2px solid;
+  }
+  .tablet\:hover\:border-top-2px:hover{
+    border-top:2px solid;
+  }
+  .tablet\:border-right-2px{
+    border-right:2px solid;
+  }
+  .tablet\:hover\:border-right-2px:hover{
+    border-right:2px solid;
+  }
+  .tablet\:border-bottom-2px{
+    border-bottom:2px solid;
+  }
+  .tablet\:hover\:border-bottom-2px:hover{
+    border-bottom:2px solid;
+  }
+  .tablet\:border-left-2px{
+    border-left:2px solid;
+  }
+  .tablet\:hover\:border-left-2px:hover{
+    border-left:2px solid;
+  }
+  .tablet\:border-05{
+    border:0.25rem solid;
+  }
+  .tablet\:hover\:border-05:hover{
+    border:0.25rem solid;
+  }
+  .tablet\:border-y-05{
+    border-top:0.25rem solid;
+    border-bottom:0.25rem solid;
+  }
+  .tablet\:hover\:border-y-05:hover{
+    border-top:0.25rem solid;
+    border-bottom:0.25rem solid;
+  }
+  .tablet\:border-x-05{
+    border-left:0.25rem solid;
+    border-right:0.25rem solid;
+  }
+  .tablet\:hover\:border-x-05:hover{
+    border-left:0.25rem solid;
+    border-right:0.25rem solid;
+  }
+  .tablet\:border-top-05{
+    border-top:0.25rem solid;
+  }
+  .tablet\:hover\:border-top-05:hover{
+    border-top:0.25rem solid;
+  }
+  .tablet\:border-right-05{
+    border-right:0.25rem solid;
+  }
+  .tablet\:hover\:border-right-05:hover{
+    border-right:0.25rem solid;
+  }
+  .tablet\:border-bottom-05{
+    border-bottom:0.25rem solid;
+  }
+  .tablet\:hover\:border-bottom-05:hover{
+    border-bottom:0.25rem solid;
+  }
+  .tablet\:border-left-05{
+    border-left:0.25rem solid;
+  }
+  .tablet\:hover\:border-left-05:hover{
+    border-left:0.25rem solid;
+  }
+  .tablet\:border-1{
+    border:0.5rem solid;
+  }
+  .tablet\:hover\:border-1:hover{
+    border:0.5rem solid;
+  }
+  .tablet\:border-y-1{
+    border-top:0.5rem solid;
+    border-bottom:0.5rem solid;
+  }
+  .tablet\:hover\:border-y-1:hover{
+    border-top:0.5rem solid;
+    border-bottom:0.5rem solid;
+  }
+  .tablet\:border-x-1{
+    border-left:0.5rem solid;
+    border-right:0.5rem solid;
+  }
+  .tablet\:hover\:border-x-1:hover{
+    border-left:0.5rem solid;
+    border-right:0.5rem solid;
+  }
+  .tablet\:border-top-1{
+    border-top:0.5rem solid;
+  }
+  .tablet\:hover\:border-top-1:hover{
+    border-top:0.5rem solid;
+  }
+  .tablet\:border-right-1{
+    border-right:0.5rem solid;
+  }
+  .tablet\:hover\:border-right-1:hover{
+    border-right:0.5rem solid;
+  }
+  .tablet\:border-bottom-1{
+    border-bottom:0.5rem solid;
+  }
+  .tablet\:hover\:border-bottom-1:hover{
+    border-bottom:0.5rem solid;
+  }
+  .tablet\:border-left-1{
+    border-left:0.5rem solid;
+  }
+  .tablet\:hover\:border-left-1:hover{
+    border-left:0.5rem solid;
+  }
+  .tablet\:border-105{
+    border:0.75rem solid;
+  }
+  .tablet\:hover\:border-105:hover{
+    border:0.75rem solid;
+  }
+  .tablet\:border-y-105{
+    border-top:0.75rem solid;
+    border-bottom:0.75rem solid;
+  }
+  .tablet\:hover\:border-y-105:hover{
+    border-top:0.75rem solid;
+    border-bottom:0.75rem solid;
+  }
+  .tablet\:border-x-105{
+    border-left:0.75rem solid;
+    border-right:0.75rem solid;
+  }
+  .tablet\:hover\:border-x-105:hover{
+    border-left:0.75rem solid;
+    border-right:0.75rem solid;
+  }
+  .tablet\:border-top-105{
+    border-top:0.75rem solid;
+  }
+  .tablet\:hover\:border-top-105:hover{
+    border-top:0.75rem solid;
+  }
+  .tablet\:border-right-105{
+    border-right:0.75rem solid;
+  }
+  .tablet\:hover\:border-right-105:hover{
+    border-right:0.75rem solid;
+  }
+  .tablet\:border-bottom-105{
+    border-bottom:0.75rem solid;
+  }
+  .tablet\:hover\:border-bottom-105:hover{
+    border-bottom:0.75rem solid;
+  }
+  .tablet\:border-left-105{
+    border-left:0.75rem solid;
+  }
+  .tablet\:hover\:border-left-105:hover{
+    border-left:0.75rem solid;
+  }
+  .tablet\:border-2{
+    border:1rem solid;
+  }
+  .tablet\:hover\:border-2:hover{
+    border:1rem solid;
+  }
+  .tablet\:border-y-2{
+    border-top:1rem solid;
+    border-bottom:1rem solid;
+  }
+  .tablet\:hover\:border-y-2:hover{
+    border-top:1rem solid;
+    border-bottom:1rem solid;
+  }
+  .tablet\:border-x-2{
+    border-left:1rem solid;
+    border-right:1rem solid;
+  }
+  .tablet\:hover\:border-x-2:hover{
+    border-left:1rem solid;
+    border-right:1rem solid;
+  }
+  .tablet\:border-top-2{
+    border-top:1rem solid;
+  }
+  .tablet\:hover\:border-top-2:hover{
+    border-top:1rem solid;
+  }
+  .tablet\:border-right-2{
+    border-right:1rem solid;
+  }
+  .tablet\:hover\:border-right-2:hover{
+    border-right:1rem solid;
+  }
+  .tablet\:border-bottom-2{
+    border-bottom:1rem solid;
+  }
+  .tablet\:hover\:border-bottom-2:hover{
+    border-bottom:1rem solid;
+  }
+  .tablet\:border-left-2{
+    border-left:1rem solid;
+  }
+  .tablet\:hover\:border-left-2:hover{
+    border-left:1rem solid;
+  }
+  .tablet\:border-205{
+    border:1.25rem solid;
+  }
+  .tablet\:hover\:border-205:hover{
+    border:1.25rem solid;
+  }
+  .tablet\:border-y-205{
+    border-top:1.25rem solid;
+    border-bottom:1.25rem solid;
+  }
+  .tablet\:hover\:border-y-205:hover{
+    border-top:1.25rem solid;
+    border-bottom:1.25rem solid;
+  }
+  .tablet\:border-x-205{
+    border-left:1.25rem solid;
+    border-right:1.25rem solid;
+  }
+  .tablet\:hover\:border-x-205:hover{
+    border-left:1.25rem solid;
+    border-right:1.25rem solid;
+  }
+  .tablet\:border-top-205{
+    border-top:1.25rem solid;
+  }
+  .tablet\:hover\:border-top-205:hover{
+    border-top:1.25rem solid;
+  }
+  .tablet\:border-right-205{
+    border-right:1.25rem solid;
+  }
+  .tablet\:hover\:border-right-205:hover{
+    border-right:1.25rem solid;
+  }
+  .tablet\:border-bottom-205{
+    border-bottom:1.25rem solid;
+  }
+  .tablet\:hover\:border-bottom-205:hover{
+    border-bottom:1.25rem solid;
+  }
+  .tablet\:border-left-205{
+    border-left:1.25rem solid;
+  }
+  .tablet\:hover\:border-left-205:hover{
+    border-left:1.25rem solid;
+  }
+  .tablet\:border-3{
+    border:1.5rem solid;
+  }
+  .tablet\:hover\:border-3:hover{
+    border:1.5rem solid;
+  }
+  .tablet\:border-y-3{
+    border-top:1.5rem solid;
+    border-bottom:1.5rem solid;
+  }
+  .tablet\:hover\:border-y-3:hover{
+    border-top:1.5rem solid;
+    border-bottom:1.5rem solid;
+  }
+  .tablet\:border-x-3{
+    border-left:1.5rem solid;
+    border-right:1.5rem solid;
+  }
+  .tablet\:hover\:border-x-3:hover{
+    border-left:1.5rem solid;
+    border-right:1.5rem solid;
+  }
+  .tablet\:border-top-3{
+    border-top:1.5rem solid;
+  }
+  .tablet\:hover\:border-top-3:hover{
+    border-top:1.5rem solid;
+  }
+  .tablet\:border-right-3{
+    border-right:1.5rem solid;
+  }
+  .tablet\:hover\:border-right-3:hover{
+    border-right:1.5rem solid;
+  }
+  .tablet\:border-bottom-3{
+    border-bottom:1.5rem solid;
+  }
+  .tablet\:hover\:border-bottom-3:hover{
+    border-bottom:1.5rem solid;
+  }
+  .tablet\:border-left-3{
+    border-left:1.5rem solid;
+  }
+  .tablet\:hover\:border-left-3:hover{
+    border-left:1.5rem solid;
+  }
+  .tablet\:border-0{
+    border:0 solid;
+  }
+  .tablet\:hover\:border-0:hover{
+    border:0 solid;
+  }
+  .tablet\:border-y-0{
+    border-top:0 solid;
+    border-bottom:0 solid;
+  }
+  .tablet\:hover\:border-y-0:hover{
+    border-top:0 solid;
+    border-bottom:0 solid;
+  }
+  .tablet\:border-x-0{
+    border-left:0 solid;
+    border-right:0 solid;
+  }
+  .tablet\:hover\:border-x-0:hover{
+    border-left:0 solid;
+    border-right:0 solid;
+  }
+  .tablet\:border-top-0{
+    border-top:0 solid;
+  }
+  .tablet\:hover\:border-top-0:hover{
+    border-top:0 solid;
+  }
+  .tablet\:border-right-0{
+    border-right:0 solid;
+  }
+  .tablet\:hover\:border-right-0:hover{
+    border-right:0 solid;
+  }
+  .tablet\:border-bottom-0{
+    border-bottom:0 solid;
+  }
+  .tablet\:hover\:border-bottom-0:hover{
+    border-bottom:0 solid;
+  }
+  .tablet\:border-left-0{
+    border-left:0 solid;
+  }
+  .tablet\:hover\:border-left-0:hover{
+    border-left:0 solid;
+  }
+  .tablet\:border{
+    border:1px solid;
+  }
+  .tablet\:hover\:border:hover{
+    border:1px solid;
+  }
+  .tablet\:border-y{
+    border-top:1px solid;
+    border-bottom:1px solid;
+  }
+  .tablet\:hover\:border-y:hover{
+    border-top:1px solid;
+    border-bottom:1px solid;
+  }
+  .tablet\:border-x{
+    border-left:1px solid;
+    border-right:1px solid;
+  }
+  .tablet\:hover\:border-x:hover{
+    border-left:1px solid;
+    border-right:1px solid;
+  }
+  .tablet\:border-top{
+    border-top:1px solid;
+  }
+  .tablet\:hover\:border-top:hover{
+    border-top:1px solid;
+  }
+  .tablet\:border-right{
+    border-right:1px solid;
+  }
+  .tablet\:hover\:border-right:hover{
+    border-right:1px solid;
+  }
+  .tablet\:border-bottom{
+    border-bottom:1px solid;
+  }
+  .tablet\:hover\:border-bottom:hover{
+    border-bottom:1px solid;
+  }
+  .tablet\:border-left{
+    border-left:1px solid;
+  }
+  .tablet\:hover\:border-left:hover{
+    border-left:1px solid;
+  }
+  .tablet\:border-transparent{
+    border-color:transparent;
+  }
+  .tablet\:hover\:border-transparent:hover{
+    border-color:transparent;
+  }
+  .tablet\:border-black{
+    border-color:black;
+  }
+  .tablet\:hover\:border-black:hover{
+    border-color:black;
+  }
+  .tablet\:border-white{
+    border-color:white;
+  }
+  .tablet\:hover\:border-white:hover{
+    border-color:white;
+  }
+  .tablet\:border-red{
+    border-color:#e52207;
+  }
+  .tablet\:hover\:border-red:hover{
+    border-color:#e52207;
+  }
+  .tablet\:border-orange{
+    border-color:#e66f0e;
+  }
+  .tablet\:hover\:border-orange:hover{
+    border-color:#e66f0e;
+  }
+  .tablet\:border-gold{
+    border-color:#ffbe2e;
+  }
+  .tablet\:hover\:border-gold:hover{
+    border-color:#ffbe2e;
+  }
+  .tablet\:border-yellow{
+    border-color:#fee685;
+  }
+  .tablet\:hover\:border-yellow:hover{
+    border-color:#fee685;
+  }
+  .tablet\:border-green{
+    border-color:#538200;
+  }
+  .tablet\:hover\:border-green:hover{
+    border-color:#538200;
+  }
+  .tablet\:border-mint{
+    border-color:#04c585;
+  }
+  .tablet\:hover\:border-mint:hover{
+    border-color:#04c585;
+  }
+  .tablet\:border-cyan{
+    border-color:#009ec1;
+  }
+  .tablet\:hover\:border-cyan:hover{
+    border-color:#009ec1;
+  }
+  .tablet\:border-blue{
+    border-color:#0076d6;
+  }
+  .tablet\:hover\:border-blue:hover{
+    border-color:#0076d6;
+  }
+  .tablet\:border-indigo{
+    border-color:#676cc8;
+  }
+  .tablet\:hover\:border-indigo:hover{
+    border-color:#676cc8;
+  }
+  .tablet\:border-violet{
+    border-color:#8168b3;
+  }
+  .tablet\:hover\:border-violet:hover{
+    border-color:#8168b3;
+  }
+  .tablet\:border-magenta{
+    border-color:#d72d79;
+  }
+  .tablet\:hover\:border-magenta:hover{
+    border-color:#d72d79;
+  }
+  .tablet\:border-gray-5{
+    border-color:#f0f0f0;
+  }
+  .tablet\:hover\:border-gray-5:hover{
+    border-color:#f0f0f0;
+  }
+  .tablet\:border-gray-10{
+    border-color:#e6e6e6;
+  }
+  .tablet\:hover\:border-gray-10:hover{
+    border-color:#e6e6e6;
+  }
+  .tablet\:border-gray-30{
+    border-color:#adadad;
+  }
+  .tablet\:hover\:border-gray-30:hover{
+    border-color:#adadad;
+  }
+  .tablet\:border-gray-50{
+    border-color:#757575;
+  }
+  .tablet\:hover\:border-gray-50:hover{
+    border-color:#757575;
+  }
+  .tablet\:border-gray-70{
+    border-color:#454545;
+  }
+  .tablet\:hover\:border-gray-70:hover{
+    border-color:#454545;
+  }
+  .tablet\:border-gray-90{
+    border-color:#1b1b1b;
+  }
+  .tablet\:hover\:border-gray-90:hover{
+    border-color:#1b1b1b;
+  }
+  .tablet\:border-base-lightest{
+    border-color:#f0f0f0;
+  }
+  .tablet\:hover\:border-base-lightest:hover{
+    border-color:#f0f0f0;
+  }
+  .tablet\:border-base-lighter{
+    border-color:#dfe1e2;
+  }
+  .tablet\:hover\:border-base-lighter:hover{
+    border-color:#dfe1e2;
+  }
+  .tablet\:border-base-light{
+    border-color:#a9aeb1;
+  }
+  .tablet\:hover\:border-base-light:hover{
+    border-color:#a9aeb1;
+  }
+  .tablet\:border-base{
+    border-color:#71767a;
+  }
+  .tablet\:hover\:border-base:hover{
+    border-color:#71767a;
+  }
+  .tablet\:border-base-dark{
+    border-color:#565c65;
+  }
+  .tablet\:hover\:border-base-dark:hover{
+    border-color:#565c65;
+  }
+  .tablet\:border-base-darker{
+    border-color:#3d4551;
+  }
+  .tablet\:hover\:border-base-darker:hover{
+    border-color:#3d4551;
+  }
+  .tablet\:border-base-darkest{
+    border-color:#1b1b1b;
+  }
+  .tablet\:hover\:border-base-darkest:hover{
+    border-color:#1b1b1b;
+  }
+  .tablet\:border-ink{
+    border-color:#1b1b1b;
+  }
+  .tablet\:hover\:border-ink:hover{
+    border-color:#1b1b1b;
+  }
+  .tablet\:border-primary-lighter{
+    border-color:#d9e8f6;
+  }
+  .tablet\:hover\:border-primary-lighter:hover{
+    border-color:#d9e8f6;
+  }
+  .tablet\:border-primary-light{
+    border-color:#73b3e7;
+  }
+  .tablet\:hover\:border-primary-light:hover{
+    border-color:#73b3e7;
+  }
+  .tablet\:border-primary{
+    border-color:#005ea2;
+  }
+  .tablet\:hover\:border-primary:hover{
+    border-color:#005ea2;
+  }
+  .tablet\:border-primary-vivid{
+    border-color:#0050d8;
+  }
+  .tablet\:hover\:border-primary-vivid:hover{
+    border-color:#0050d8;
+  }
+  .tablet\:border-primary-dark{
+    border-color:#1a4480;
+  }
+  .tablet\:hover\:border-primary-dark:hover{
+    border-color:#1a4480;
+  }
+  .tablet\:border-primary-darker{
+    border-color:#162e51;
+  }
+  .tablet\:hover\:border-primary-darker:hover{
+    border-color:#162e51;
+  }
+  .tablet\:border-secondary-lighter{
+    border-color:#f3e1e4;
+  }
+  .tablet\:hover\:border-secondary-lighter:hover{
+    border-color:#f3e1e4;
+  }
+  .tablet\:border-secondary-light{
+    border-color:#f2938c;
+  }
+  .tablet\:hover\:border-secondary-light:hover{
+    border-color:#f2938c;
+  }
+  .tablet\:border-secondary{
+    border-color:#d83933;
+  }
+  .tablet\:hover\:border-secondary:hover{
+    border-color:#d83933;
+  }
+  .tablet\:border-secondary-vivid{
+    border-color:#e41d3d;
+  }
+  .tablet\:hover\:border-secondary-vivid:hover{
+    border-color:#e41d3d;
+  }
+  .tablet\:border-secondary-dark{
+    border-color:#b50909;
+  }
+  .tablet\:hover\:border-secondary-dark:hover{
+    border-color:#b50909;
+  }
+  .tablet\:border-secondary-darker{
+    border-color:#8b0a03;
+  }
+  .tablet\:hover\:border-secondary-darker:hover{
+    border-color:#8b0a03;
+  }
+  .tablet\:border-accent-warm-darker{
+    border-color:#775540;
+  }
+  .tablet\:hover\:border-accent-warm-darker:hover{
+    border-color:#775540;
+  }
+  .tablet\:border-accent-warm-dark{
+    border-color:#c05600;
+  }
+  .tablet\:hover\:border-accent-warm-dark:hover{
+    border-color:#c05600;
+  }
+  .tablet\:border-accent-warm{
+    border-color:#fa9441;
+  }
+  .tablet\:hover\:border-accent-warm:hover{
+    border-color:#fa9441;
+  }
+  .tablet\:border-accent-warm-light{
+    border-color:#ffbc78;
+  }
+  .tablet\:hover\:border-accent-warm-light:hover{
+    border-color:#ffbc78;
+  }
+  .tablet\:border-accent-warm-lighter{
+    border-color:#f2e4d4;
+  }
+  .tablet\:hover\:border-accent-warm-lighter:hover{
+    border-color:#f2e4d4;
+  }
+  .tablet\:border-accent-cool-darker{
+    border-color:#07648d;
+  }
+  .tablet\:hover\:border-accent-cool-darker:hover{
+    border-color:#07648d;
+  }
+  .tablet\:border-accent-cool-dark{
+    border-color:#28a0cb;
+  }
+  .tablet\:hover\:border-accent-cool-dark:hover{
+    border-color:#28a0cb;
+  }
+  .tablet\:border-accent-cool{
+    border-color:#00bde3;
+  }
+  .tablet\:hover\:border-accent-cool:hover{
+    border-color:#00bde3;
+  }
+  .tablet\:border-accent-cool-light{
+    border-color:#97d4ea;
+  }
+  .tablet\:hover\:border-accent-cool-light:hover{
+    border-color:#97d4ea;
+  }
+  .tablet\:border-accent-cool-lighter{
+    border-color:#e1f3f8;
+  }
+  .tablet\:hover\:border-accent-cool-lighter:hover{
+    border-color:#e1f3f8;
+  }
+  .tablet\:border-error-lighter{
+    border-color:#f4e3db;
+  }
+  .tablet\:hover\:border-error-lighter:hover{
+    border-color:#f4e3db;
+  }
+  .tablet\:border-error-light{
+    border-color:#f39268;
+  }
+  .tablet\:hover\:border-error-light:hover{
+    border-color:#f39268;
+  }
+  .tablet\:border-error{
+    border-color:#d54309;
+  }
+  .tablet\:hover\:border-error:hover{
+    border-color:#d54309;
+  }
+  .tablet\:border-error-dark{
+    border-color:#b50909;
+  }
+  .tablet\:hover\:border-error-dark:hover{
+    border-color:#b50909;
+  }
+  .tablet\:border-error-darker{
+    border-color:#6f3331;
+  }
+  .tablet\:hover\:border-error-darker:hover{
+    border-color:#6f3331;
+  }
+  .tablet\:border-warning-lighter{
+    border-color:#faf3d1;
+  }
+  .tablet\:hover\:border-warning-lighter:hover{
+    border-color:#faf3d1;
+  }
+  .tablet\:border-warning-light{
+    border-color:#fee685;
+  }
+  .tablet\:hover\:border-warning-light:hover{
+    border-color:#fee685;
+  }
+  .tablet\:border-warning{
+    border-color:#ffbe2e;
+  }
+  .tablet\:hover\:border-warning:hover{
+    border-color:#ffbe2e;
+  }
+  .tablet\:border-warning-dark{
+    border-color:#e5a000;
+  }
+  .tablet\:hover\:border-warning-dark:hover{
+    border-color:#e5a000;
+  }
+  .tablet\:border-warning-darker{
+    border-color:#936f38;
+  }
+  .tablet\:hover\:border-warning-darker:hover{
+    border-color:#936f38;
+  }
+  .tablet\:border-success-lighter{
+    border-color:#ecf3ec;
+  }
+  .tablet\:hover\:border-success-lighter:hover{
+    border-color:#ecf3ec;
+  }
+  .tablet\:border-success-light{
+    border-color:#70e17b;
+  }
+  .tablet\:hover\:border-success-light:hover{
+    border-color:#70e17b;
+  }
+  .tablet\:border-success{
+    border-color:#00a91c;
+  }
+  .tablet\:hover\:border-success:hover{
+    border-color:#00a91c;
+  }
+  .tablet\:border-success-dark{
+    border-color:#008817;
+  }
+  .tablet\:hover\:border-success-dark:hover{
+    border-color:#008817;
+  }
+  .tablet\:border-success-darker{
+    border-color:#216e1f;
+  }
+  .tablet\:hover\:border-success-darker:hover{
+    border-color:#216e1f;
+  }
+  .tablet\:border-info-lighter{
+    border-color:#e7f6f8;
+  }
+  .tablet\:hover\:border-info-lighter:hover{
+    border-color:#e7f6f8;
+  }
+  .tablet\:border-info-light{
+    border-color:#99deea;
+  }
+  .tablet\:hover\:border-info-light:hover{
+    border-color:#99deea;
+  }
+  .tablet\:border-info{
+    border-color:#00bde3;
+  }
+  .tablet\:hover\:border-info:hover{
+    border-color:#00bde3;
+  }
+  .tablet\:border-info-dark{
+    border-color:#009ec1;
+  }
+  .tablet\:hover\:border-info-dark:hover{
+    border-color:#009ec1;
+  }
+  .tablet\:border-info-darker{
+    border-color:#2e6276;
+  }
+  .tablet\:hover\:border-info-darker:hover{
+    border-color:#2e6276;
+  }
+  .tablet\:border-disabled-lighter{
+    border-color:#c9c9c9;
+  }
+  .tablet\:hover\:border-disabled-lighter:hover{
+    border-color:#c9c9c9;
+  }
+  .tablet\:border-disabled-light{
+    border-color:#919191;
+  }
+  .tablet\:hover\:border-disabled-light:hover{
+    border-color:#919191;
+  }
+  .tablet\:border-disabled{
+    border-color:#757575;
+  }
+  .tablet\:hover\:border-disabled:hover{
+    border-color:#757575;
+  }
+  .tablet\:border-disabled-dark{
+    border-color:#454545;
+  }
+  .tablet\:hover\:border-disabled-dark:hover{
+    border-color:#454545;
+  }
+  .tablet\:border-disabled-darker{
+    border-color:#1b1b1b;
+  }
+  .tablet\:hover\:border-disabled-darker:hover{
+    border-color:#1b1b1b;
+  }
+  .tablet\:border-emergency{
+    border-color:#9c3d10;
+  }
+  .tablet\:hover\:border-emergency:hover{
+    border-color:#9c3d10;
+  }
+  .tablet\:border-emergency-dark{
+    border-color:#332d29;
+  }
+  .tablet\:hover\:border-emergency-dark:hover{
+    border-color:#332d29;
+  }
+  .tablet\:radius-0{
+    border-radius:0;
+  }
+  .tablet\:radius-top-0{
+    border-top-left-radius:0;
+    border-top-right-radius:0;
+  }
+  .tablet\:radius-right-0{
+    border-top-right-radius:0;
+    border-bottom-right-radius:0;
+  }
+  .tablet\:radius-bottom-0{
+    border-bottom-left-radius:0;
+    border-bottom-right-radius:0;
+  }
+  .tablet\:radius-left-0{
+    border-top-left-radius:0;
+    border-bottom-left-radius:0;
+  }
+  .tablet\:radius-sm{
+    border-radius:2px;
+  }
+  .tablet\:radius-top-sm{
+    border-top-left-radius:2px;
+    border-top-right-radius:2px;
+  }
+  .tablet\:radius-right-sm{
+    border-top-right-radius:2px;
+    border-bottom-right-radius:2px;
+  }
+  .tablet\:radius-bottom-sm{
+    border-bottom-left-radius:2px;
+    border-bottom-right-radius:2px;
+  }
+  .tablet\:radius-left-sm{
+    border-top-left-radius:2px;
+    border-bottom-left-radius:2px;
+  }
+  .tablet\:radius-md{
+    border-radius:0.25rem;
+  }
+  .tablet\:radius-top-md{
+    border-top-left-radius:0.25rem;
+    border-top-right-radius:0.25rem;
+  }
+  .tablet\:radius-right-md{
+    border-top-right-radius:0.25rem;
+    border-bottom-right-radius:0.25rem;
+  }
+  .tablet\:radius-bottom-md{
+    border-bottom-left-radius:0.25rem;
+    border-bottom-right-radius:0.25rem;
+  }
+  .tablet\:radius-left-md{
+    border-top-left-radius:0.25rem;
+    border-bottom-left-radius:0.25rem;
+  }
+  .tablet\:radius-lg{
+    border-radius:0.5rem;
+  }
+  .tablet\:radius-top-lg{
+    border-top-left-radius:0.5rem;
+    border-top-right-radius:0.5rem;
+  }
+  .tablet\:radius-right-lg{
+    border-top-right-radius:0.5rem;
+    border-bottom-right-radius:0.5rem;
+  }
+  .tablet\:radius-bottom-lg{
+    border-bottom-left-radius:0.5rem;
+    border-bottom-right-radius:0.5rem;
+  }
+  .tablet\:radius-left-lg{
+    border-top-left-radius:0.5rem;
+    border-bottom-left-radius:0.5rem;
+  }
+  .tablet\:radius-pill{
+    border-radius:99rem;
+  }
+  .tablet\:radius-top-pill{
+    border-top-left-radius:99rem;
+    border-top-right-radius:99rem;
+  }
+  .tablet\:radius-right-pill{
+    border-top-right-radius:99rem;
+    border-bottom-right-radius:99rem;
+  }
+  .tablet\:radius-bottom-pill{
+    border-bottom-left-radius:99rem;
+    border-bottom-right-radius:99rem;
+  }
+  .tablet\:radius-left-pill{
+    border-top-left-radius:99rem;
+    border-bottom-left-radius:99rem;
+  }
+  .tablet\:display-block{
+    display:block;
+  }
+  .tablet\:display-flex{
+    display:flex;
+  }
+  .tablet\:display-none{
+    display:none;
+  }
+  .tablet\:display-inline{
+    display:inline;
+  }
+  .tablet\:display-inline-block{
+    display:inline-block;
+  }
+  .tablet\:display-inline-flex{
+    display:inline-flex;
+  }
+  .tablet\:display-table{
+    display:table;
+  }
+  .tablet\:display-table-cell{
+    display:table-cell;
+  }
+  .tablet\:display-table-row{
+    display:table-row;
+  }
+  .tablet\:font-mono-3xs{
+    font-size:0.77rem;
+  }
+  .tablet\:font-mono-2xs{
+    font-size:0.83rem;
+  }
+  .tablet\:font-mono-xs{
+    font-size:0.89rem;
+  }
+  .tablet\:font-mono-sm{
+    font-size:0.95rem;
+  }
+  .tablet\:font-mono-md{
+    font-size:1.01rem;
+  }
+  .tablet\:font-mono-lg{
+    font-size:1.31rem;
+  }
+  .tablet\:font-mono-xl{
+    font-size:1.91rem;
+  }
+  .tablet\:font-mono-2xl{
+    font-size:2.38rem;
+  }
+  .tablet\:font-mono-3xl{
+    font-size:2.86rem;
+  }
+  .tablet\:font-sans-3xs{
+    font-size:0.87rem;
+  }
+  .tablet\:font-sans-2xs{
+    font-size:0.93rem;
+  }
+  .tablet\:font-sans-xs{
+    font-size:1rem;
+  }
+  .tablet\:font-sans-sm{
+    font-size:1.06rem;
+  }
+  .tablet\:font-sans-md{
+    font-size:1.13rem;
+  }
+  .tablet\:font-sans-lg{
+    font-size:1.46rem;
+  }
+  .tablet\:font-sans-xl{
+    font-size:2.13rem;
+  }
+  .tablet\:font-sans-2xl{
+    font-size:2.66rem;
+  }
+  .tablet\:font-sans-3xl{
+    font-size:3.19rem;
+  }
+  .tablet\:font-serif-3xs{
+    font-size:0.79rem;
+  }
+  .tablet\:font-serif-2xs{
+    font-size:0.85rem;
+  }
+  .tablet\:font-serif-xs{
+    font-size:0.91rem;
+  }
+  .tablet\:font-serif-sm{
+    font-size:0.98rem;
+  }
+  .tablet\:font-serif-md{
+    font-size:1.04rem;
+  }
+  .tablet\:font-serif-lg{
+    font-size:1.34rem;
+  }
+  .tablet\:font-serif-xl{
+    font-size:1.95rem;
+  }
+  .tablet\:font-serif-2xl{
+    font-size:2.44rem;
+  }
+  .tablet\:font-serif-3xl{
+    font-size:2.93rem;
+  }
+  .tablet\:font-heading-3xs{
+    font-size:0.79rem;
+  }
+  .tablet\:font-heading-2xs{
+    font-size:0.85rem;
+  }
+  .tablet\:font-heading-xs{
+    font-size:0.91rem;
+  }
+  .tablet\:font-heading-sm{
+    font-size:0.98rem;
+  }
+  .tablet\:font-heading-md{
+    font-size:1.04rem;
+  }
+  .tablet\:font-heading-lg{
+    font-size:1.34rem;
+  }
+  .tablet\:font-heading-xl{
+    font-size:1.95rem;
+  }
+  .tablet\:font-heading-2xl{
+    font-size:2.44rem;
+  }
+  .tablet\:font-heading-3xl{
+    font-size:2.93rem;
+  }
+  .tablet\:font-body-3xs{
+    font-size:0.87rem;
+  }
+  .tablet\:font-body-2xs{
+    font-size:0.93rem;
+  }
+  .tablet\:font-body-xs{
+    font-size:1rem;
+  }
+  .tablet\:font-body-sm{
+    font-size:1.06rem;
+  }
+  .tablet\:font-body-md{
+    font-size:1.13rem;
+  }
+  .tablet\:font-body-lg{
+    font-size:1.46rem;
+  }
+  .tablet\:font-body-xl{
+    font-size:2.13rem;
+  }
+  .tablet\:font-body-2xl{
+    font-size:2.66rem;
+  }
+  .tablet\:font-body-3xl{
+    font-size:3.19rem;
+  }
+  .tablet\:font-code-3xs{
+    font-size:0.77rem;
+  }
+  .tablet\:font-code-2xs{
+    font-size:0.83rem;
+  }
+  .tablet\:font-code-xs{
+    font-size:0.89rem;
+  }
+  .tablet\:font-code-sm{
+    font-size:0.95rem;
+  }
+  .tablet\:font-code-md{
+    font-size:1.01rem;
+  }
+  .tablet\:font-code-lg{
+    font-size:1.31rem;
+  }
+  .tablet\:font-code-xl{
+    font-size:1.91rem;
+  }
+  .tablet\:font-code-2xl{
+    font-size:2.38rem;
+  }
+  .tablet\:font-code-3xl{
+    font-size:2.86rem;
+  }
+  .tablet\:font-alt-3xs{
+    font-size:0.79rem;
+  }
+  .tablet\:font-alt-2xs{
+    font-size:0.85rem;
+  }
+  .tablet\:font-alt-xs{
+    font-size:0.91rem;
+  }
+  .tablet\:font-alt-sm{
+    font-size:0.98rem;
+  }
+  .tablet\:font-alt-md{
+    font-size:1.04rem;
+  }
+  .tablet\:font-alt-lg{
+    font-size:1.34rem;
+  }
+  .tablet\:font-alt-xl{
+    font-size:1.95rem;
+  }
+  .tablet\:font-alt-2xl{
+    font-size:2.44rem;
+  }
+  .tablet\:font-alt-3xl{
+    font-size:2.93rem;
+  }
+  .tablet\:font-ui-3xs{
+    font-size:0.87rem;
+  }
+  .tablet\:font-ui-2xs{
+    font-size:0.93rem;
+  }
+  .tablet\:font-ui-xs{
+    font-size:1rem;
+  }
+  .tablet\:font-ui-sm{
+    font-size:1.06rem;
+  }
+  .tablet\:font-ui-md{
+    font-size:1.13rem;
+  }
+  .tablet\:font-ui-lg{
+    font-size:1.46rem;
+  }
+  .tablet\:font-ui-xl{
+    font-size:2.13rem;
+  }
+  .tablet\:font-ui-2xl{
+    font-size:2.66rem;
+  }
+  .tablet\:font-ui-3xl{
+    font-size:3.19rem;
+  }
+  .tablet\:text-light{
+    font-weight:300;
+  }
+  .tablet\:text-normal{
+    font-weight:normal;
+  }
+  .tablet\:text-bold{
+    font-weight:700;
+  }
+  .tablet\:flex-justify-center{
+    justify-content:center;
+  }
+  .tablet\:flex-justify-start{
+    justify-content:flex-start;
+  }
+  .tablet\:flex-justify-end{
+    justify-content:flex-end;
+  }
+  .tablet\:flex-justify{
+    justify-content:space-between;
+  }
+  .tablet\:line-height-sans-1{
+    line-height:0.9;
+  }
+  .tablet\:line-height-sans-2{
+    line-height:1.1;
+  }
+  .tablet\:line-height-sans-3{
+    line-height:1.3;
+  }
+  .tablet\:line-height-sans-4{
+    line-height:1.4;
+  }
+  .tablet\:line-height-sans-5{
+    line-height:1.5;
+  }
+  .tablet\:line-height-sans-6{
+    line-height:1.6;
+  }
+  .tablet\:line-height-serif-1{
+    line-height:1;
+  }
+  .tablet\:line-height-serif-2{
+    line-height:1.2;
+  }
+  .tablet\:line-height-serif-3{
+    line-height:1.4;
+  }
+  .tablet\:line-height-serif-4{
+    line-height:1.5;
+  }
+  .tablet\:line-height-serif-5{
+    line-height:1.7;
+  }
+  .tablet\:line-height-serif-6{
+    line-height:1.8;
+  }
+  .tablet\:line-height-mono-1{
+    line-height:1;
+  }
+  .tablet\:line-height-mono-2{
+    line-height:1.3;
+  }
+  .tablet\:line-height-mono-3{
+    line-height:1.4;
+  }
+  .tablet\:line-height-mono-4{
+    line-height:1.6;
+  }
+  .tablet\:line-height-mono-5{
+    line-height:1.7;
+  }
+  .tablet\:line-height-mono-6{
+    line-height:1.8;
+  }
+  .tablet\:line-height-heading-1{
+    line-height:1;
+  }
+  .tablet\:line-height-heading-2{
+    line-height:1.2;
+  }
+  .tablet\:line-height-heading-3{
+    line-height:1.4;
+  }
+  .tablet\:line-height-heading-4{
+    line-height:1.5;
+  }
+  .tablet\:line-height-heading-5{
+    line-height:1.7;
+  }
+  .tablet\:line-height-heading-6{
+    line-height:1.8;
+  }
+  .tablet\:line-height-ui-1{
+    line-height:0.9;
+  }
+  .tablet\:line-height-ui-2{
+    line-height:1.1;
+  }
+  .tablet\:line-height-ui-3{
+    line-height:1.3;
+  }
+  .tablet\:line-height-ui-4{
+    line-height:1.4;
+  }
+  .tablet\:line-height-ui-5{
+    line-height:1.5;
+  }
+  .tablet\:line-height-ui-6{
+    line-height:1.6;
+  }
+  .tablet\:line-height-body-1{
+    line-height:0.9;
+  }
+  .tablet\:line-height-body-2{
+    line-height:1.1;
+  }
+  .tablet\:line-height-body-3{
+    line-height:1.3;
+  }
+  .tablet\:line-height-body-4{
+    line-height:1.4;
+  }
+  .tablet\:line-height-body-5{
+    line-height:1.5;
+  }
+  .tablet\:line-height-body-6{
+    line-height:1.6;
+  }
+  .tablet\:line-height-code-1{
+    line-height:1;
+  }
+  .tablet\:line-height-code-2{
+    line-height:1.3;
+  }
+  .tablet\:line-height-code-3{
+    line-height:1.4;
+  }
+  .tablet\:line-height-code-4{
+    line-height:1.6;
+  }
+  .tablet\:line-height-code-5{
+    line-height:1.7;
+  }
+  .tablet\:line-height-code-6{
+    line-height:1.8;
+  }
+  .tablet\:line-height-alt-1{
+    line-height:1;
+  }
+  .tablet\:line-height-alt-2{
+    line-height:1.2;
+  }
+  .tablet\:line-height-alt-3{
+    line-height:1.4;
+  }
+  .tablet\:line-height-alt-4{
+    line-height:1.5;
+  }
+  .tablet\:line-height-alt-5{
+    line-height:1.7;
+  }
+  .tablet\:line-height-alt-6{
+    line-height:1.8;
+  }
+  .tablet\:margin-neg-1px{
+    margin:-1px;
+  }
+  .tablet\:margin-neg-2px{
+    margin:-2px;
+  }
+  .tablet\:margin-neg-05{
+    margin:-0.25rem;
+  }
+  .tablet\:margin-neg-1{
+    margin:-0.5rem;
+  }
+  .tablet\:margin-neg-105{
+    margin:-0.75rem;
+  }
+  .tablet\:margin-neg-2{
+    margin:-1rem;
+  }
+  .tablet\:margin-neg-205{
+    margin:-1.25rem;
+  }
+  .tablet\:margin-neg-3{
+    margin:-1.5rem;
+  }
+  .tablet\:margin-1px{
+    margin:1px;
+  }
+  .tablet\:margin-2px{
+    margin:2px;
+  }
+  .tablet\:margin-05{
+    margin:0.25rem;
+  }
+  .tablet\:margin-1{
+    margin:0.5rem;
+  }
+  .tablet\:margin-105{
+    margin:0.75rem;
+  }
+  .tablet\:margin-2{
+    margin:1rem;
+  }
+  .tablet\:margin-205{
+    margin:1.25rem;
+  }
+  .tablet\:margin-3{
+    margin:1.5rem;
+  }
+  .tablet\:margin-neg-4{
+    margin:-2rem;
+  }
+  .tablet\:margin-neg-5{
+    margin:-2.5rem;
+  }
+  .tablet\:margin-neg-6{
+    margin:-3rem;
+  }
+  .tablet\:margin-neg-7{
+    margin:-3.5rem;
+  }
+  .tablet\:margin-neg-8{
+    margin:-4rem;
+  }
+  .tablet\:margin-neg-9{
+    margin:-4.5rem;
+  }
+  .tablet\:margin-neg-10{
+    margin:-5rem;
+  }
+  .tablet\:margin-neg-15{
+    margin:-7.5rem;
+  }
+  .tablet\:margin-4{
+    margin:2rem;
+  }
+  .tablet\:margin-5{
+    margin:2.5rem;
+  }
+  .tablet\:margin-6{
+    margin:3rem;
+  }
+  .tablet\:margin-7{
+    margin:3.5rem;
+  }
+  .tablet\:margin-8{
+    margin:4rem;
+  }
+  .tablet\:margin-9{
+    margin:4.5rem;
+  }
+  .tablet\:margin-10{
+    margin:5rem;
+  }
+  .tablet\:margin-15{
+    margin:7.5rem;
+  }
+  .tablet\:margin-05em{
+    margin:0.5em;
+  }
+  .tablet\:margin-1em{
+    margin:1em;
+  }
+  .tablet\:margin-105em{
+    margin:1.5em;
+  }
+  .tablet\:margin-2em{
+    margin:2em;
+  }
+  .tablet\:margin-0{
+    margin:0;
+  }
+  .tablet\:margin-y-1px{
+    margin-top:1px;
+    margin-bottom:1px;
+  }
+  .tablet\:margin-top-1px{
+    margin-top:1px;
+  }
+  .tablet\:margin-bottom-1px{
+    margin-bottom:1px;
+  }
+  .tablet\:margin-y-2px{
+    margin-top:2px;
+    margin-bottom:2px;
+  }
+  .tablet\:margin-top-2px{
+    margin-top:2px;
+  }
+  .tablet\:margin-bottom-2px{
+    margin-bottom:2px;
+  }
+  .tablet\:margin-y-05{
+    margin-top:0.25rem;
+    margin-bottom:0.25rem;
+  }
+  .tablet\:margin-top-05{
+    margin-top:0.25rem;
+  }
+  .tablet\:margin-bottom-05{
+    margin-bottom:0.25rem;
+  }
+  .tablet\:margin-y-1{
+    margin-top:0.5rem;
+    margin-bottom:0.5rem;
+  }
+  .tablet\:margin-top-1{
+    margin-top:0.5rem;
+  }
+  .tablet\:margin-bottom-1{
+    margin-bottom:0.5rem;
+  }
+  .tablet\:margin-y-105{
+    margin-top:0.75rem;
+    margin-bottom:0.75rem;
+  }
+  .tablet\:margin-top-105{
+    margin-top:0.75rem;
+  }
+  .tablet\:margin-bottom-105{
+    margin-bottom:0.75rem;
+  }
+  .tablet\:margin-y-2{
+    margin-top:1rem;
+    margin-bottom:1rem;
+  }
+  .tablet\:margin-top-2{
+    margin-top:1rem;
+  }
+  .tablet\:margin-bottom-2{
+    margin-bottom:1rem;
+  }
+  .tablet\:margin-y-205{
+    margin-top:1.25rem;
+    margin-bottom:1.25rem;
+  }
+  .tablet\:margin-top-205{
+    margin-top:1.25rem;
+  }
+  .tablet\:margin-bottom-205{
+    margin-bottom:1.25rem;
+  }
+  .tablet\:margin-y-3{
+    margin-top:1.5rem;
+    margin-bottom:1.5rem;
+  }
+  .tablet\:margin-top-3{
+    margin-top:1.5rem;
+  }
+  .tablet\:margin-bottom-3{
+    margin-bottom:1.5rem;
+  }
+  .tablet\:margin-y-neg-1px{
+    margin-top:-1px;
+    margin-bottom:-1px;
+  }
+  .tablet\:margin-top-neg-1px{
+    margin-top:-1px;
+  }
+  .tablet\:margin-bottom-neg-1px{
+    margin-bottom:-1px;
+  }
+  .tablet\:margin-y-neg-2px{
+    margin-top:-2px;
+    margin-bottom:-2px;
+  }
+  .tablet\:margin-top-neg-2px{
+    margin-top:-2px;
+  }
+  .tablet\:margin-bottom-neg-2px{
+    margin-bottom:-2px;
+  }
+  .tablet\:margin-y-neg-05{
+    margin-top:-0.25rem;
+    margin-bottom:-0.25rem;
+  }
+  .tablet\:margin-top-neg-05{
+    margin-top:-0.25rem;
+  }
+  .tablet\:margin-bottom-neg-05{
+    margin-bottom:-0.25rem;
+  }
+  .tablet\:margin-y-neg-1{
+    margin-top:-0.5rem;
+    margin-bottom:-0.5rem;
+  }
+  .tablet\:margin-top-neg-1{
+    margin-top:-0.5rem;
+  }
+  .tablet\:margin-bottom-neg-1{
+    margin-bottom:-0.5rem;
+  }
+  .tablet\:margin-y-neg-105{
+    margin-top:-0.75rem;
+    margin-bottom:-0.75rem;
+  }
+  .tablet\:margin-top-neg-105{
+    margin-top:-0.75rem;
+  }
+  .tablet\:margin-bottom-neg-105{
+    margin-bottom:-0.75rem;
+  }
+  .tablet\:margin-y-neg-2{
+    margin-top:-1rem;
+    margin-bottom:-1rem;
+  }
+  .tablet\:margin-top-neg-2{
+    margin-top:-1rem;
+  }
+  .tablet\:margin-bottom-neg-2{
+    margin-bottom:-1rem;
+  }
+  .tablet\:margin-y-neg-205{
+    margin-top:-1.25rem;
+    margin-bottom:-1.25rem;
+  }
+  .tablet\:margin-top-neg-205{
+    margin-top:-1.25rem;
+  }
+  .tablet\:margin-bottom-neg-205{
+    margin-bottom:-1.25rem;
+  }
+  .tablet\:margin-y-neg-3{
+    margin-top:-1.5rem;
+    margin-bottom:-1.5rem;
+  }
+  .tablet\:margin-top-neg-3{
+    margin-top:-1.5rem;
+  }
+  .tablet\:margin-bottom-neg-3{
+    margin-bottom:-1.5rem;
+  }
+  .tablet\:margin-y-neg-4{
+    margin-top:-2rem;
+    margin-bottom:-2rem;
+  }
+  .tablet\:margin-top-neg-4{
+    margin-top:-2rem;
+  }
+  .tablet\:margin-bottom-neg-4{
+    margin-bottom:-2rem;
+  }
+  .tablet\:margin-y-neg-5{
+    margin-top:-2.5rem;
+    margin-bottom:-2.5rem;
+  }
+  .tablet\:margin-top-neg-5{
+    margin-top:-2.5rem;
+  }
+  .tablet\:margin-bottom-neg-5{
+    margin-bottom:-2.5rem;
+  }
+  .tablet\:margin-y-neg-6{
+    margin-top:-3rem;
+    margin-bottom:-3rem;
+  }
+  .tablet\:margin-top-neg-6{
+    margin-top:-3rem;
+  }
+  .tablet\:margin-bottom-neg-6{
+    margin-bottom:-3rem;
+  }
+  .tablet\:margin-y-neg-7{
+    margin-top:-3.5rem;
+    margin-bottom:-3.5rem;
+  }
+  .tablet\:margin-top-neg-7{
+    margin-top:-3.5rem;
+  }
+  .tablet\:margin-bottom-neg-7{
+    margin-bottom:-3.5rem;
+  }
+  .tablet\:margin-y-neg-8{
+    margin-top:-4rem;
+    margin-bottom:-4rem;
+  }
+  .tablet\:margin-top-neg-8{
+    margin-top:-4rem;
+  }
+  .tablet\:margin-bottom-neg-8{
+    margin-bottom:-4rem;
+  }
+  .tablet\:margin-y-neg-9{
+    margin-top:-4.5rem;
+    margin-bottom:-4.5rem;
+  }
+  .tablet\:margin-top-neg-9{
+    margin-top:-4.5rem;
+  }
+  .tablet\:margin-bottom-neg-9{
+    margin-bottom:-4.5rem;
+  }
+  .tablet\:margin-y-neg-10{
+    margin-top:-5rem;
+    margin-bottom:-5rem;
+  }
+  .tablet\:margin-top-neg-10{
+    margin-top:-5rem;
+  }
+  .tablet\:margin-bottom-neg-10{
+    margin-bottom:-5rem;
+  }
+  .tablet\:margin-y-neg-15{
+    margin-top:-7.5rem;
+    margin-bottom:-7.5rem;
+  }
+  .tablet\:margin-top-neg-15{
+    margin-top:-7.5rem;
+  }
+  .tablet\:margin-bottom-neg-15{
+    margin-bottom:-7.5rem;
+  }
+  .tablet\:margin-y-4{
+    margin-top:2rem;
+    margin-bottom:2rem;
+  }
+  .tablet\:margin-top-4{
+    margin-top:2rem;
+  }
+  .tablet\:margin-bottom-4{
+    margin-bottom:2rem;
+  }
+  .tablet\:margin-y-5{
+    margin-top:2.5rem;
+    margin-bottom:2.5rem;
+  }
+  .tablet\:margin-top-5{
+    margin-top:2.5rem;
+  }
+  .tablet\:margin-bottom-5{
+    margin-bottom:2.5rem;
+  }
+  .tablet\:margin-y-6{
+    margin-top:3rem;
+    margin-bottom:3rem;
+  }
+  .tablet\:margin-top-6{
+    margin-top:3rem;
+  }
+  .tablet\:margin-bottom-6{
+    margin-bottom:3rem;
+  }
+  .tablet\:margin-y-7{
+    margin-top:3.5rem;
+    margin-bottom:3.5rem;
+  }
+  .tablet\:margin-top-7{
+    margin-top:3.5rem;
+  }
+  .tablet\:margin-bottom-7{
+    margin-bottom:3.5rem;
+  }
+  .tablet\:margin-y-8{
+    margin-top:4rem;
+    margin-bottom:4rem;
+  }
+  .tablet\:margin-top-8{
+    margin-top:4rem;
+  }
+  .tablet\:margin-bottom-8{
+    margin-bottom:4rem;
+  }
+  .tablet\:margin-y-9{
+    margin-top:4.5rem;
+    margin-bottom:4.5rem;
+  }
+  .tablet\:margin-top-9{
+    margin-top:4.5rem;
+  }
+  .tablet\:margin-bottom-9{
+    margin-bottom:4.5rem;
+  }
+  .tablet\:margin-y-10{
+    margin-top:5rem;
+    margin-bottom:5rem;
+  }
+  .tablet\:margin-top-10{
+    margin-top:5rem;
+  }
+  .tablet\:margin-bottom-10{
+    margin-bottom:5rem;
+  }
+  .tablet\:margin-y-15{
+    margin-top:7.5rem;
+    margin-bottom:7.5rem;
+  }
+  .tablet\:margin-top-15{
+    margin-top:7.5rem;
+  }
+  .tablet\:margin-bottom-15{
+    margin-bottom:7.5rem;
+  }
+  .tablet\:margin-y-05em{
+    margin-top:0.5em;
+    margin-bottom:0.5em;
+  }
+  .tablet\:margin-top-05em{
+    margin-top:0.5em;
+  }
+  .tablet\:margin-bottom-05em{
+    margin-bottom:0.5em;
+  }
+  .tablet\:margin-y-1em{
+    margin-top:1em;
+    margin-bottom:1em;
+  }
+  .tablet\:margin-top-1em{
+    margin-top:1em;
+  }
+  .tablet\:margin-bottom-1em{
+    margin-bottom:1em;
+  }
+  .tablet\:margin-y-105em{
+    margin-top:1.5em;
+    margin-bottom:1.5em;
+  }
+  .tablet\:margin-top-105em{
+    margin-top:1.5em;
+  }
+  .tablet\:margin-bottom-105em{
+    margin-bottom:1.5em;
+  }
+  .tablet\:margin-y-2em{
+    margin-top:2em;
+    margin-bottom:2em;
+  }
+  .tablet\:margin-top-2em{
+    margin-top:2em;
+  }
+  .tablet\:margin-bottom-2em{
+    margin-bottom:2em;
+  }
+  .tablet\:margin-y-0{
+    margin-top:0;
+    margin-bottom:0;
+  }
+  .tablet\:margin-top-0{
+    margin-top:0;
+  }
+  .tablet\:margin-bottom-0{
+    margin-bottom:0;
+  }
+  .tablet\:margin-y-auto{
+    margin-top:auto;
+    margin-bottom:auto;
+  }
+  .tablet\:margin-top-auto{
+    margin-top:auto;
+  }
+  .tablet\:margin-bottom-auto{
+    margin-bottom:auto;
+  }
+  .tablet\:margin-x-1px{
+    margin-left:1px;
+    margin-right:1px;
+  }
+  .tablet\:margin-right-1px{
+    margin-right:1px;
+  }
+  .tablet\:margin-left-1px{
+    margin-left:1px;
+  }
+  .tablet\:margin-x-2px{
+    margin-left:2px;
+    margin-right:2px;
+  }
+  .tablet\:margin-right-2px{
+    margin-right:2px;
+  }
+  .tablet\:margin-left-2px{
+    margin-left:2px;
+  }
+  .tablet\:margin-x-05{
+    margin-left:0.25rem;
+    margin-right:0.25rem;
+  }
+  .tablet\:margin-right-05{
+    margin-right:0.25rem;
+  }
+  .tablet\:margin-left-05{
+    margin-left:0.25rem;
+  }
+  .tablet\:margin-x-1{
+    margin-left:0.5rem;
+    margin-right:0.5rem;
+  }
+  .tablet\:margin-right-1{
+    margin-right:0.5rem;
+  }
+  .tablet\:margin-left-1{
+    margin-left:0.5rem;
+  }
+  .tablet\:margin-x-105{
+    margin-left:0.75rem;
+    margin-right:0.75rem;
+  }
+  .tablet\:margin-right-105{
+    margin-right:0.75rem;
+  }
+  .tablet\:margin-left-105{
+    margin-left:0.75rem;
+  }
+  .tablet\:margin-x-2{
+    margin-left:1rem;
+    margin-right:1rem;
+  }
+  .tablet\:margin-right-2{
+    margin-right:1rem;
+  }
+  .tablet\:margin-left-2{
+    margin-left:1rem;
+  }
+  .tablet\:margin-x-205{
+    margin-left:1.25rem;
+    margin-right:1.25rem;
+  }
+  .tablet\:margin-right-205{
+    margin-right:1.25rem;
+  }
+  .tablet\:margin-left-205{
+    margin-left:1.25rem;
+  }
+  .tablet\:margin-x-3{
+    margin-left:1.5rem;
+    margin-right:1.5rem;
+  }
+  .tablet\:margin-right-3{
+    margin-right:1.5rem;
+  }
+  .tablet\:margin-left-3{
+    margin-left:1.5rem;
+  }
+  .tablet\:margin-x-neg-1px{
+    margin-left:-1px;
+    margin-right:-1px;
+  }
+  .tablet\:margin-right-neg-1px{
+    margin-right:-1px;
+  }
+  .tablet\:margin-left-neg-1px{
+    margin-left:-1px;
+  }
+  .tablet\:margin-x-neg-2px{
+    margin-left:-2px;
+    margin-right:-2px;
+  }
+  .tablet\:margin-right-neg-2px{
+    margin-right:-2px;
+  }
+  .tablet\:margin-left-neg-2px{
+    margin-left:-2px;
+  }
+  .tablet\:margin-x-neg-05{
+    margin-left:-0.25rem;
+    margin-right:-0.25rem;
+  }
+  .tablet\:margin-right-neg-05{
+    margin-right:-0.25rem;
+  }
+  .tablet\:margin-left-neg-05{
+    margin-left:-0.25rem;
+  }
+  .tablet\:margin-x-neg-1{
+    margin-left:-0.5rem;
+    margin-right:-0.5rem;
+  }
+  .tablet\:margin-right-neg-1{
+    margin-right:-0.5rem;
+  }
+  .tablet\:margin-left-neg-1{
+    margin-left:-0.5rem;
+  }
+  .tablet\:margin-x-neg-105{
+    margin-left:-0.75rem;
+    margin-right:-0.75rem;
+  }
+  .tablet\:margin-right-neg-105{
+    margin-right:-0.75rem;
+  }
+  .tablet\:margin-left-neg-105{
+    margin-left:-0.75rem;
+  }
+  .tablet\:margin-x-neg-2{
+    margin-left:-1rem;
+    margin-right:-1rem;
+  }
+  .tablet\:margin-right-neg-2{
+    margin-right:-1rem;
+  }
+  .tablet\:margin-left-neg-2{
+    margin-left:-1rem;
+  }
+  .tablet\:margin-x-neg-205{
+    margin-left:-1.25rem;
+    margin-right:-1.25rem;
+  }
+  .tablet\:margin-right-neg-205{
+    margin-right:-1.25rem;
+  }
+  .tablet\:margin-left-neg-205{
+    margin-left:-1.25rem;
+  }
+  .tablet\:margin-x-neg-3{
+    margin-left:-1.5rem;
+    margin-right:-1.5rem;
+  }
+  .tablet\:margin-right-neg-3{
+    margin-right:-1.5rem;
+  }
+  .tablet\:margin-left-neg-3{
+    margin-left:-1.5rem;
+  }
+  .tablet\:margin-x-neg-4{
+    margin-left:-2rem;
+    margin-right:-2rem;
+  }
+  .tablet\:margin-right-neg-4{
+    margin-right:-2rem;
+  }
+  .tablet\:margin-left-neg-4{
+    margin-left:-2rem;
+  }
+  .tablet\:margin-x-neg-5{
+    margin-left:-2.5rem;
+    margin-right:-2.5rem;
+  }
+  .tablet\:margin-right-neg-5{
+    margin-right:-2.5rem;
+  }
+  .tablet\:margin-left-neg-5{
+    margin-left:-2.5rem;
+  }
+  .tablet\:margin-x-neg-6{
+    margin-left:-3rem;
+    margin-right:-3rem;
+  }
+  .tablet\:margin-right-neg-6{
+    margin-right:-3rem;
+  }
+  .tablet\:margin-left-neg-6{
+    margin-left:-3rem;
+  }
+  .tablet\:margin-x-neg-7{
+    margin-left:-3.5rem;
+    margin-right:-3.5rem;
+  }
+  .tablet\:margin-right-neg-7{
+    margin-right:-3.5rem;
+  }
+  .tablet\:margin-left-neg-7{
+    margin-left:-3.5rem;
+  }
+  .tablet\:margin-x-neg-8{
+    margin-left:-4rem;
+    margin-right:-4rem;
+  }
+  .tablet\:margin-right-neg-8{
+    margin-right:-4rem;
+  }
+  .tablet\:margin-left-neg-8{
+    margin-left:-4rem;
+  }
+  .tablet\:margin-x-neg-9{
+    margin-left:-4.5rem;
+    margin-right:-4.5rem;
+  }
+  .tablet\:margin-right-neg-9{
+    margin-right:-4.5rem;
+  }
+  .tablet\:margin-left-neg-9{
+    margin-left:-4.5rem;
+  }
+  .tablet\:margin-x-neg-10{
+    margin-left:-5rem;
+    margin-right:-5rem;
+  }
+  .tablet\:margin-right-neg-10{
+    margin-right:-5rem;
+  }
+  .tablet\:margin-left-neg-10{
+    margin-left:-5rem;
+  }
+  .tablet\:margin-x-neg-15{
+    margin-left:-7.5rem;
+    margin-right:-7.5rem;
+  }
+  .tablet\:margin-right-neg-15{
+    margin-right:-7.5rem;
+  }
+  .tablet\:margin-left-neg-15{
+    margin-left:-7.5rem;
+  }
+  .tablet\:margin-x-4{
+    margin-left:2rem;
+    margin-right:2rem;
+  }
+  .tablet\:margin-right-4{
+    margin-right:2rem;
+  }
+  .tablet\:margin-left-4{
+    margin-left:2rem;
+  }
+  .tablet\:margin-x-5{
+    margin-left:2.5rem;
+    margin-right:2.5rem;
+  }
+  .tablet\:margin-right-5{
+    margin-right:2.5rem;
+  }
+  .tablet\:margin-left-5{
+    margin-left:2.5rem;
+  }
+  .tablet\:margin-x-6{
+    margin-left:3rem;
+    margin-right:3rem;
+  }
+  .tablet\:margin-right-6{
+    margin-right:3rem;
+  }
+  .tablet\:margin-left-6{
+    margin-left:3rem;
+  }
+  .tablet\:margin-x-7{
+    margin-left:3.5rem;
+    margin-right:3.5rem;
+  }
+  .tablet\:margin-right-7{
+    margin-right:3.5rem;
+  }
+  .tablet\:margin-left-7{
+    margin-left:3.5rem;
+  }
+  .tablet\:margin-x-8{
+    margin-left:4rem;
+    margin-right:4rem;
+  }
+  .tablet\:margin-right-8{
+    margin-right:4rem;
+  }
+  .tablet\:margin-left-8{
+    margin-left:4rem;
+  }
+  .tablet\:margin-x-9{
+    margin-left:4.5rem;
+    margin-right:4.5rem;
+  }
+  .tablet\:margin-right-9{
+    margin-right:4.5rem;
+  }
+  .tablet\:margin-left-9{
+    margin-left:4.5rem;
+  }
+  .tablet\:margin-x-10{
+    margin-left:5rem;
+    margin-right:5rem;
+  }
+  .tablet\:margin-right-10{
+    margin-right:5rem;
+  }
+  .tablet\:margin-left-10{
+    margin-left:5rem;
+  }
+  .tablet\:margin-x-15{
+    margin-left:7.5rem;
+    margin-right:7.5rem;
+  }
+  .tablet\:margin-right-15{
+    margin-right:7.5rem;
+  }
+  .tablet\:margin-left-15{
+    margin-left:7.5rem;
+  }
+  .tablet\:margin-x-card{
+    margin-left:10rem;
+    margin-right:10rem;
+  }
+  .tablet\:margin-right-card{
+    margin-right:10rem;
+  }
+  .tablet\:margin-left-card{
+    margin-left:10rem;
+  }
+  .tablet\:margin-x-card-lg{
+    margin-left:15rem;
+    margin-right:15rem;
+  }
+  .tablet\:margin-right-card-lg{
+    margin-right:15rem;
+  }
+  .tablet\:margin-left-card-lg{
+    margin-left:15rem;
+  }
+  .tablet\:margin-x-mobile{
+    margin-left:20rem;
+    margin-right:20rem;
+  }
+  .tablet\:margin-right-mobile{
+    margin-right:20rem;
+  }
+  .tablet\:margin-left-mobile{
+    margin-left:20rem;
+  }
+  .tablet\:margin-x-05em{
+    margin-left:0.5em;
+    margin-right:0.5em;
+  }
+  .tablet\:margin-right-05em{
+    margin-right:0.5em;
+  }
+  .tablet\:margin-left-05em{
+    margin-left:0.5em;
+  }
+  .tablet\:margin-x-1em{
+    margin-left:1em;
+    margin-right:1em;
+  }
+  .tablet\:margin-right-1em{
+    margin-right:1em;
+  }
+  .tablet\:margin-left-1em{
+    margin-left:1em;
+  }
+  .tablet\:margin-x-105em{
+    margin-left:1.5em;
+    margin-right:1.5em;
+  }
+  .tablet\:margin-right-105em{
+    margin-right:1.5em;
+  }
+  .tablet\:margin-left-105em{
+    margin-left:1.5em;
+  }
+  .tablet\:margin-x-2em{
+    margin-left:2em;
+    margin-right:2em;
+  }
+  .tablet\:margin-right-2em{
+    margin-right:2em;
+  }
+  .tablet\:margin-left-2em{
+    margin-left:2em;
+  }
+  .tablet\:margin-x-0{
+    margin-left:0;
+    margin-right:0;
+  }
+  .tablet\:margin-right-0{
+    margin-right:0;
+  }
+  .tablet\:margin-left-0{
+    margin-left:0;
+  }
+  .tablet\:margin-x-auto{
+    margin-left:auto;
+    margin-right:auto;
+  }
+  .tablet\:margin-right-auto{
+    margin-right:auto;
+  }
+  .tablet\:margin-left-auto{
+    margin-left:auto;
+  }
+  .tablet\:measure-1{
+    max-width:44ex;
+  }
+  .tablet\:measure-2{
+    max-width:60ex;
+  }
+  .tablet\:measure-3{
+    max-width:64ex;
+  }
+  .tablet\:measure-4{
+    max-width:68ex;
+  }
+  .tablet\:measure-5{
+    max-width:72ex;
+  }
+  .tablet\:measure-6{
+    max-width:88ex;
+  }
+  .tablet\:measure-none{
+    max-width:none;
+  }
+  .tablet\:order-first{
+    order:-1;
+  }
+  .tablet\:order-last{
+    order:999;
+  }
+  .tablet\:order-initial{
+    order:initial;
+  }
+  .tablet\:order-0{
+    order:0;
+  }
+  .tablet\:order-1{
+    order:1;
+  }
+  .tablet\:order-2{
+    order:2;
+  }
+  .tablet\:order-3{
+    order:3;
+  }
+  .tablet\:order-4{
+    order:4;
+  }
+  .tablet\:order-5{
+    order:5;
+  }
+  .tablet\:order-6{
+    order:6;
+  }
+  .tablet\:order-7{
+    order:7;
+  }
+  .tablet\:order-8{
+    order:8;
+  }
+  .tablet\:order-9{
+    order:9;
+  }
+  .tablet\:order-10{
+    order:10;
+  }
+  .tablet\:order-11{
+    order:11;
+  }
+  .tablet\:padding-1px{
+    padding:1px;
+  }
+  .tablet\:padding-y-1px{
+    padding-top:1px;
+    padding-bottom:1px;
+  }
+  .tablet\:padding-x-1px{
+    padding-left:1px;
+    padding-right:1px;
+  }
+  .tablet\:padding-top-1px{
+    padding-top:1px;
+  }
+  .tablet\:padding-right-1px{
+    padding-right:1px;
+  }
+  .tablet\:padding-bottom-1px{
+    padding-bottom:1px;
+  }
+  .tablet\:padding-left-1px{
+    padding-left:1px;
+  }
+  .tablet\:padding-2px{
+    padding:2px;
+  }
+  .tablet\:padding-y-2px{
+    padding-top:2px;
+    padding-bottom:2px;
+  }
+  .tablet\:padding-x-2px{
+    padding-left:2px;
+    padding-right:2px;
+  }
+  .tablet\:padding-top-2px{
+    padding-top:2px;
+  }
+  .tablet\:padding-right-2px{
+    padding-right:2px;
+  }
+  .tablet\:padding-bottom-2px{
+    padding-bottom:2px;
+  }
+  .tablet\:padding-left-2px{
+    padding-left:2px;
+  }
+  .tablet\:padding-05{
+    padding:0.25rem;
+  }
+  .tablet\:padding-y-05{
+    padding-top:0.25rem;
+    padding-bottom:0.25rem;
+  }
+  .tablet\:padding-x-05{
+    padding-left:0.25rem;
+    padding-right:0.25rem;
+  }
+  .tablet\:padding-top-05{
+    padding-top:0.25rem;
+  }
+  .tablet\:padding-right-05{
+    padding-right:0.25rem;
+  }
+  .tablet\:padding-bottom-05{
+    padding-bottom:0.25rem;
+  }
+  .tablet\:padding-left-05{
+    padding-left:0.25rem;
+  }
+  .tablet\:padding-1{
+    padding:0.5rem;
+  }
+  .tablet\:padding-y-1{
+    padding-top:0.5rem;
+    padding-bottom:0.5rem;
+  }
+  .tablet\:padding-x-1{
+    padding-left:0.5rem;
+    padding-right:0.5rem;
+  }
+  .tablet\:padding-top-1{
+    padding-top:0.5rem;
+  }
+  .tablet\:padding-right-1{
+    padding-right:0.5rem;
+  }
+  .tablet\:padding-bottom-1{
+    padding-bottom:0.5rem;
+  }
+  .tablet\:padding-left-1{
+    padding-left:0.5rem;
+  }
+  .tablet\:padding-105{
+    padding:0.75rem;
+  }
+  .tablet\:padding-y-105{
+    padding-top:0.75rem;
+    padding-bottom:0.75rem;
+  }
+  .tablet\:padding-x-105{
+    padding-left:0.75rem;
+    padding-right:0.75rem;
+  }
+  .tablet\:padding-top-105{
+    padding-top:0.75rem;
+  }
+  .tablet\:padding-right-105{
+    padding-right:0.75rem;
+  }
+  .tablet\:padding-bottom-105{
+    padding-bottom:0.75rem;
+  }
+  .tablet\:padding-left-105{
+    padding-left:0.75rem;
+  }
+  .tablet\:padding-2{
+    padding:1rem;
+  }
+  .tablet\:padding-y-2{
+    padding-top:1rem;
+    padding-bottom:1rem;
+  }
+  .tablet\:padding-x-2{
+    padding-left:1rem;
+    padding-right:1rem;
+  }
+  .tablet\:padding-top-2{
+    padding-top:1rem;
+  }
+  .tablet\:padding-right-2{
+    padding-right:1rem;
+  }
+  .tablet\:padding-bottom-2{
+    padding-bottom:1rem;
+  }
+  .tablet\:padding-left-2{
+    padding-left:1rem;
+  }
+  .tablet\:padding-205{
+    padding:1.25rem;
+  }
+  .tablet\:padding-y-205{
+    padding-top:1.25rem;
+    padding-bottom:1.25rem;
+  }
+  .tablet\:padding-x-205{
+    padding-left:1.25rem;
+    padding-right:1.25rem;
+  }
+  .tablet\:padding-top-205{
+    padding-top:1.25rem;
+  }
+  .tablet\:padding-right-205{
+    padding-right:1.25rem;
+  }
+  .tablet\:padding-bottom-205{
+    padding-bottom:1.25rem;
+  }
+  .tablet\:padding-left-205{
+    padding-left:1.25rem;
+  }
+  .tablet\:padding-3{
+    padding:1.5rem;
+  }
+  .tablet\:padding-y-3{
+    padding-top:1.5rem;
+    padding-bottom:1.5rem;
+  }
+  .tablet\:padding-x-3{
+    padding-left:1.5rem;
+    padding-right:1.5rem;
+  }
+  .tablet\:padding-top-3{
+    padding-top:1.5rem;
+  }
+  .tablet\:padding-right-3{
+    padding-right:1.5rem;
+  }
+  .tablet\:padding-bottom-3{
+    padding-bottom:1.5rem;
+  }
+  .tablet\:padding-left-3{
+    padding-left:1.5rem;
+  }
+  .tablet\:padding-4{
+    padding:2rem;
+  }
+  .tablet\:padding-y-4{
+    padding-top:2rem;
+    padding-bottom:2rem;
+  }
+  .tablet\:padding-x-4{
+    padding-left:2rem;
+    padding-right:2rem;
+  }
+  .tablet\:padding-top-4{
+    padding-top:2rem;
+  }
+  .tablet\:padding-right-4{
+    padding-right:2rem;
+  }
+  .tablet\:padding-bottom-4{
+    padding-bottom:2rem;
+  }
+  .tablet\:padding-left-4{
+    padding-left:2rem;
+  }
+  .tablet\:padding-5{
+    padding:2.5rem;
+  }
+  .tablet\:padding-y-5{
+    padding-top:2.5rem;
+    padding-bottom:2.5rem;
+  }
+  .tablet\:padding-x-5{
+    padding-left:2.5rem;
+    padding-right:2.5rem;
+  }
+  .tablet\:padding-top-5{
+    padding-top:2.5rem;
+  }
+  .tablet\:padding-right-5{
+    padding-right:2.5rem;
+  }
+  .tablet\:padding-bottom-5{
+    padding-bottom:2.5rem;
+  }
+  .tablet\:padding-left-5{
+    padding-left:2.5rem;
+  }
+  .tablet\:padding-6{
+    padding:3rem;
+  }
+  .tablet\:padding-y-6{
+    padding-top:3rem;
+    padding-bottom:3rem;
+  }
+  .tablet\:padding-x-6{
+    padding-left:3rem;
+    padding-right:3rem;
+  }
+  .tablet\:padding-top-6{
+    padding-top:3rem;
+  }
+  .tablet\:padding-right-6{
+    padding-right:3rem;
+  }
+  .tablet\:padding-bottom-6{
+    padding-bottom:3rem;
+  }
+  .tablet\:padding-left-6{
+    padding-left:3rem;
+  }
+  .tablet\:padding-7{
+    padding:3.5rem;
+  }
+  .tablet\:padding-y-7{
+    padding-top:3.5rem;
+    padding-bottom:3.5rem;
+  }
+  .tablet\:padding-x-7{
+    padding-left:3.5rem;
+    padding-right:3.5rem;
+  }
+  .tablet\:padding-top-7{
+    padding-top:3.5rem;
+  }
+  .tablet\:padding-right-7{
+    padding-right:3.5rem;
+  }
+  .tablet\:padding-bottom-7{
+    padding-bottom:3.5rem;
+  }
+  .tablet\:padding-left-7{
+    padding-left:3.5rem;
+  }
+  .tablet\:padding-8{
+    padding:4rem;
+  }
+  .tablet\:padding-y-8{
+    padding-top:4rem;
+    padding-bottom:4rem;
+  }
+  .tablet\:padding-x-8{
+    padding-left:4rem;
+    padding-right:4rem;
+  }
+  .tablet\:padding-top-8{
+    padding-top:4rem;
+  }
+  .tablet\:padding-right-8{
+    padding-right:4rem;
+  }
+  .tablet\:padding-bottom-8{
+    padding-bottom:4rem;
+  }
+  .tablet\:padding-left-8{
+    padding-left:4rem;
+  }
+  .tablet\:padding-9{
+    padding:4.5rem;
+  }
+  .tablet\:padding-y-9{
+    padding-top:4.5rem;
+    padding-bottom:4.5rem;
+  }
+  .tablet\:padding-x-9{
+    padding-left:4.5rem;
+    padding-right:4.5rem;
+  }
+  .tablet\:padding-top-9{
+    padding-top:4.5rem;
+  }
+  .tablet\:padding-right-9{
+    padding-right:4.5rem;
+  }
+  .tablet\:padding-bottom-9{
+    padding-bottom:4.5rem;
+  }
+  .tablet\:padding-left-9{
+    padding-left:4.5rem;
+  }
+  .tablet\:padding-10{
+    padding:5rem;
+  }
+  .tablet\:padding-y-10{
+    padding-top:5rem;
+    padding-bottom:5rem;
+  }
+  .tablet\:padding-x-10{
+    padding-left:5rem;
+    padding-right:5rem;
+  }
+  .tablet\:padding-top-10{
+    padding-top:5rem;
+  }
+  .tablet\:padding-right-10{
+    padding-right:5rem;
+  }
+  .tablet\:padding-bottom-10{
+    padding-bottom:5rem;
+  }
+  .tablet\:padding-left-10{
+    padding-left:5rem;
+  }
+  .tablet\:padding-15{
+    padding:7.5rem;
+  }
+  .tablet\:padding-y-15{
+    padding-top:7.5rem;
+    padding-bottom:7.5rem;
+  }
+  .tablet\:padding-x-15{
+    padding-left:7.5rem;
+    padding-right:7.5rem;
+  }
+  .tablet\:padding-top-15{
+    padding-top:7.5rem;
+  }
+  .tablet\:padding-right-15{
+    padding-right:7.5rem;
+  }
+  .tablet\:padding-bottom-15{
+    padding-bottom:7.5rem;
+  }
+  .tablet\:padding-left-15{
+    padding-left:7.5rem;
+  }
+  .tablet\:padding-0{
+    padding:0;
+  }
+  .tablet\:padding-y-0{
+    padding-top:0;
+    padding-bottom:0;
+  }
+  .tablet\:padding-x-0{
+    padding-left:0;
+    padding-right:0;
+  }
+  .tablet\:padding-top-0{
+    padding-top:0;
+  }
+  .tablet\:padding-right-0{
+    padding-right:0;
+  }
+  .tablet\:padding-bottom-0{
+    padding-bottom:0;
+  }
+  .tablet\:padding-left-0{
+    padding-left:0;
+  }
+  .tablet\:width-1px{
+    width:1px;
+  }
+  .tablet\:width-2px{
+    width:2px;
+  }
+  .tablet\:width-05{
+    width:0.25rem;
+  }
+  .tablet\:width-1{
+    width:0.5rem;
+  }
+  .tablet\:width-105{
+    width:0.75rem;
+  }
+  .tablet\:width-2{
+    width:1rem;
+  }
+  .tablet\:width-205{
+    width:1.25rem;
+  }
+  .tablet\:width-3{
+    width:1.5rem;
+  }
+  .tablet\:width-4{
+    width:2rem;
+  }
+  .tablet\:width-5{
+    width:2.5rem;
+  }
+  .tablet\:width-6{
+    width:3rem;
+  }
+  .tablet\:width-7{
+    width:3.5rem;
+  }
+  .tablet\:width-8{
+    width:4rem;
+  }
+  .tablet\:width-9{
+    width:4.5rem;
+  }
+  .tablet\:width-10{
+    width:5rem;
+  }
+  .tablet\:width-15{
+    width:7.5rem;
+  }
+  .tablet\:width-card{
+    width:10rem;
+  }
+  .tablet\:width-card-lg{
+    width:15rem;
+  }
+  .tablet\:width-mobile{
+    width:20rem;
+  }
+  .tablet\:width-mobile-lg{
+    width:30rem;
+  }
+  .tablet\:width-tablet{
+    width:40rem;
+  }
+  .tablet\:width-tablet-lg{
+    width:55rem;
+  }
+  .tablet\:width-desktop{
+    width:64rem;
+  }
+  .tablet\:width-desktop-lg{
+    width:75rem;
+  }
+  .tablet\:width-widescreen{
+    width:87.5rem;
+  }
+  .tablet\:width-0{
+    width:0;
+  }
+  .tablet\:width-full{
+    width:100%;
+  }
+  .tablet\:width-auto{
+    width:auto;
+  }
+}
+@media all and (min-width: 64em){
+  .desktop\:border-1px{
+    border:1px solid;
+  }
+  .desktop\:hover\:border-1px:hover{
+    border:1px solid;
+  }
+  .desktop\:border-y-1px{
+    border-top:1px solid;
+    border-bottom:1px solid;
+  }
+  .desktop\:hover\:border-y-1px:hover{
+    border-top:1px solid;
+    border-bottom:1px solid;
+  }
+  .desktop\:border-x-1px{
+    border-left:1px solid;
+    border-right:1px solid;
+  }
+  .desktop\:hover\:border-x-1px:hover{
+    border-left:1px solid;
+    border-right:1px solid;
+  }
+  .desktop\:border-top-1px{
+    border-top:1px solid;
+  }
+  .desktop\:hover\:border-top-1px:hover{
+    border-top:1px solid;
+  }
+  .desktop\:border-right-1px{
+    border-right:1px solid;
+  }
+  .desktop\:hover\:border-right-1px:hover{
+    border-right:1px solid;
+  }
+  .desktop\:border-bottom-1px{
+    border-bottom:1px solid;
+  }
+  .desktop\:hover\:border-bottom-1px:hover{
+    border-bottom:1px solid;
+  }
+  .desktop\:border-left-1px{
+    border-left:1px solid;
+  }
+  .desktop\:hover\:border-left-1px:hover{
+    border-left:1px solid;
+  }
+  .desktop\:border-2px{
+    border:2px solid;
+  }
+  .desktop\:hover\:border-2px:hover{
+    border:2px solid;
+  }
+  .desktop\:border-y-2px{
+    border-top:2px solid;
+    border-bottom:2px solid;
+  }
+  .desktop\:hover\:border-y-2px:hover{
+    border-top:2px solid;
+    border-bottom:2px solid;
+  }
+  .desktop\:border-x-2px{
+    border-left:2px solid;
+    border-right:2px solid;
+  }
+  .desktop\:hover\:border-x-2px:hover{
+    border-left:2px solid;
+    border-right:2px solid;
+  }
+  .desktop\:border-top-2px{
+    border-top:2px solid;
+  }
+  .desktop\:hover\:border-top-2px:hover{
+    border-top:2px solid;
+  }
+  .desktop\:border-right-2px{
+    border-right:2px solid;
+  }
+  .desktop\:hover\:border-right-2px:hover{
+    border-right:2px solid;
+  }
+  .desktop\:border-bottom-2px{
+    border-bottom:2px solid;
+  }
+  .desktop\:hover\:border-bottom-2px:hover{
+    border-bottom:2px solid;
+  }
+  .desktop\:border-left-2px{
+    border-left:2px solid;
+  }
+  .desktop\:hover\:border-left-2px:hover{
+    border-left:2px solid;
+  }
+  .desktop\:border-05{
+    border:0.25rem solid;
+  }
+  .desktop\:hover\:border-05:hover{
+    border:0.25rem solid;
+  }
+  .desktop\:border-y-05{
+    border-top:0.25rem solid;
+    border-bottom:0.25rem solid;
+  }
+  .desktop\:hover\:border-y-05:hover{
+    border-top:0.25rem solid;
+    border-bottom:0.25rem solid;
+  }
+  .desktop\:border-x-05{
+    border-left:0.25rem solid;
+    border-right:0.25rem solid;
+  }
+  .desktop\:hover\:border-x-05:hover{
+    border-left:0.25rem solid;
+    border-right:0.25rem solid;
+  }
+  .desktop\:border-top-05{
+    border-top:0.25rem solid;
+  }
+  .desktop\:hover\:border-top-05:hover{
+    border-top:0.25rem solid;
+  }
+  .desktop\:border-right-05{
+    border-right:0.25rem solid;
+  }
+  .desktop\:hover\:border-right-05:hover{
+    border-right:0.25rem solid;
+  }
+  .desktop\:border-bottom-05{
+    border-bottom:0.25rem solid;
+  }
+  .desktop\:hover\:border-bottom-05:hover{
+    border-bottom:0.25rem solid;
+  }
+  .desktop\:border-left-05{
+    border-left:0.25rem solid;
+  }
+  .desktop\:hover\:border-left-05:hover{
+    border-left:0.25rem solid;
+  }
+  .desktop\:border-1{
+    border:0.5rem solid;
+  }
+  .desktop\:hover\:border-1:hover{
+    border:0.5rem solid;
+  }
+  .desktop\:border-y-1{
+    border-top:0.5rem solid;
+    border-bottom:0.5rem solid;
+  }
+  .desktop\:hover\:border-y-1:hover{
+    border-top:0.5rem solid;
+    border-bottom:0.5rem solid;
+  }
+  .desktop\:border-x-1{
+    border-left:0.5rem solid;
+    border-right:0.5rem solid;
+  }
+  .desktop\:hover\:border-x-1:hover{
+    border-left:0.5rem solid;
+    border-right:0.5rem solid;
+  }
+  .desktop\:border-top-1{
+    border-top:0.5rem solid;
+  }
+  .desktop\:hover\:border-top-1:hover{
+    border-top:0.5rem solid;
+  }
+  .desktop\:border-right-1{
+    border-right:0.5rem solid;
+  }
+  .desktop\:hover\:border-right-1:hover{
+    border-right:0.5rem solid;
+  }
+  .desktop\:border-bottom-1{
+    border-bottom:0.5rem solid;
+  }
+  .desktop\:hover\:border-bottom-1:hover{
+    border-bottom:0.5rem solid;
+  }
+  .desktop\:border-left-1{
+    border-left:0.5rem solid;
+  }
+  .desktop\:hover\:border-left-1:hover{
+    border-left:0.5rem solid;
+  }
+  .desktop\:border-105{
+    border:0.75rem solid;
+  }
+  .desktop\:hover\:border-105:hover{
+    border:0.75rem solid;
+  }
+  .desktop\:border-y-105{
+    border-top:0.75rem solid;
+    border-bottom:0.75rem solid;
+  }
+  .desktop\:hover\:border-y-105:hover{
+    border-top:0.75rem solid;
+    border-bottom:0.75rem solid;
+  }
+  .desktop\:border-x-105{
+    border-left:0.75rem solid;
+    border-right:0.75rem solid;
+  }
+  .desktop\:hover\:border-x-105:hover{
+    border-left:0.75rem solid;
+    border-right:0.75rem solid;
+  }
+  .desktop\:border-top-105{
+    border-top:0.75rem solid;
+  }
+  .desktop\:hover\:border-top-105:hover{
+    border-top:0.75rem solid;
+  }
+  .desktop\:border-right-105{
+    border-right:0.75rem solid;
+  }
+  .desktop\:hover\:border-right-105:hover{
+    border-right:0.75rem solid;
+  }
+  .desktop\:border-bottom-105{
+    border-bottom:0.75rem solid;
+  }
+  .desktop\:hover\:border-bottom-105:hover{
+    border-bottom:0.75rem solid;
+  }
+  .desktop\:border-left-105{
+    border-left:0.75rem solid;
+  }
+  .desktop\:hover\:border-left-105:hover{
+    border-left:0.75rem solid;
+  }
+  .desktop\:border-2{
+    border:1rem solid;
+  }
+  .desktop\:hover\:border-2:hover{
+    border:1rem solid;
+  }
+  .desktop\:border-y-2{
+    border-top:1rem solid;
+    border-bottom:1rem solid;
+  }
+  .desktop\:hover\:border-y-2:hover{
+    border-top:1rem solid;
+    border-bottom:1rem solid;
+  }
+  .desktop\:border-x-2{
+    border-left:1rem solid;
+    border-right:1rem solid;
+  }
+  .desktop\:hover\:border-x-2:hover{
+    border-left:1rem solid;
+    border-right:1rem solid;
+  }
+  .desktop\:border-top-2{
+    border-top:1rem solid;
+  }
+  .desktop\:hover\:border-top-2:hover{
+    border-top:1rem solid;
+  }
+  .desktop\:border-right-2{
+    border-right:1rem solid;
+  }
+  .desktop\:hover\:border-right-2:hover{
+    border-right:1rem solid;
+  }
+  .desktop\:border-bottom-2{
+    border-bottom:1rem solid;
+  }
+  .desktop\:hover\:border-bottom-2:hover{
+    border-bottom:1rem solid;
+  }
+  .desktop\:border-left-2{
+    border-left:1rem solid;
+  }
+  .desktop\:hover\:border-left-2:hover{
+    border-left:1rem solid;
+  }
+  .desktop\:border-205{
+    border:1.25rem solid;
+  }
+  .desktop\:hover\:border-205:hover{
+    border:1.25rem solid;
+  }
+  .desktop\:border-y-205{
+    border-top:1.25rem solid;
+    border-bottom:1.25rem solid;
+  }
+  .desktop\:hover\:border-y-205:hover{
+    border-top:1.25rem solid;
+    border-bottom:1.25rem solid;
+  }
+  .desktop\:border-x-205{
+    border-left:1.25rem solid;
+    border-right:1.25rem solid;
+  }
+  .desktop\:hover\:border-x-205:hover{
+    border-left:1.25rem solid;
+    border-right:1.25rem solid;
+  }
+  .desktop\:border-top-205{
+    border-top:1.25rem solid;
+  }
+  .desktop\:hover\:border-top-205:hover{
+    border-top:1.25rem solid;
+  }
+  .desktop\:border-right-205{
+    border-right:1.25rem solid;
+  }
+  .desktop\:hover\:border-right-205:hover{
+    border-right:1.25rem solid;
+  }
+  .desktop\:border-bottom-205{
+    border-bottom:1.25rem solid;
+  }
+  .desktop\:hover\:border-bottom-205:hover{
+    border-bottom:1.25rem solid;
+  }
+  .desktop\:border-left-205{
+    border-left:1.25rem solid;
+  }
+  .desktop\:hover\:border-left-205:hover{
+    border-left:1.25rem solid;
+  }
+  .desktop\:border-3{
+    border:1.5rem solid;
+  }
+  .desktop\:hover\:border-3:hover{
+    border:1.5rem solid;
+  }
+  .desktop\:border-y-3{
+    border-top:1.5rem solid;
+    border-bottom:1.5rem solid;
+  }
+  .desktop\:hover\:border-y-3:hover{
+    border-top:1.5rem solid;
+    border-bottom:1.5rem solid;
+  }
+  .desktop\:border-x-3{
+    border-left:1.5rem solid;
+    border-right:1.5rem solid;
+  }
+  .desktop\:hover\:border-x-3:hover{
+    border-left:1.5rem solid;
+    border-right:1.5rem solid;
+  }
+  .desktop\:border-top-3{
+    border-top:1.5rem solid;
+  }
+  .desktop\:hover\:border-top-3:hover{
+    border-top:1.5rem solid;
+  }
+  .desktop\:border-right-3{
+    border-right:1.5rem solid;
+  }
+  .desktop\:hover\:border-right-3:hover{
+    border-right:1.5rem solid;
+  }
+  .desktop\:border-bottom-3{
+    border-bottom:1.5rem solid;
+  }
+  .desktop\:hover\:border-bottom-3:hover{
+    border-bottom:1.5rem solid;
+  }
+  .desktop\:border-left-3{
+    border-left:1.5rem solid;
+  }
+  .desktop\:hover\:border-left-3:hover{
+    border-left:1.5rem solid;
+  }
+  .desktop\:border-0{
+    border:0 solid;
+  }
+  .desktop\:hover\:border-0:hover{
+    border:0 solid;
+  }
+  .desktop\:border-y-0{
+    border-top:0 solid;
+    border-bottom:0 solid;
+  }
+  .desktop\:hover\:border-y-0:hover{
+    border-top:0 solid;
+    border-bottom:0 solid;
+  }
+  .desktop\:border-x-0{
+    border-left:0 solid;
+    border-right:0 solid;
+  }
+  .desktop\:hover\:border-x-0:hover{
+    border-left:0 solid;
+    border-right:0 solid;
+  }
+  .desktop\:border-top-0{
+    border-top:0 solid;
+  }
+  .desktop\:hover\:border-top-0:hover{
+    border-top:0 solid;
+  }
+  .desktop\:border-right-0{
+    border-right:0 solid;
+  }
+  .desktop\:hover\:border-right-0:hover{
+    border-right:0 solid;
+  }
+  .desktop\:border-bottom-0{
+    border-bottom:0 solid;
+  }
+  .desktop\:hover\:border-bottom-0:hover{
+    border-bottom:0 solid;
+  }
+  .desktop\:border-left-0{
+    border-left:0 solid;
+  }
+  .desktop\:hover\:border-left-0:hover{
+    border-left:0 solid;
+  }
+  .desktop\:border{
+    border:1px solid;
+  }
+  .desktop\:hover\:border:hover{
+    border:1px solid;
+  }
+  .desktop\:border-y{
+    border-top:1px solid;
+    border-bottom:1px solid;
+  }
+  .desktop\:hover\:border-y:hover{
+    border-top:1px solid;
+    border-bottom:1px solid;
+  }
+  .desktop\:border-x{
+    border-left:1px solid;
+    border-right:1px solid;
+  }
+  .desktop\:hover\:border-x:hover{
+    border-left:1px solid;
+    border-right:1px solid;
+  }
+  .desktop\:border-top{
+    border-top:1px solid;
+  }
+  .desktop\:hover\:border-top:hover{
+    border-top:1px solid;
+  }
+  .desktop\:border-right{
+    border-right:1px solid;
+  }
+  .desktop\:hover\:border-right:hover{
+    border-right:1px solid;
+  }
+  .desktop\:border-bottom{
+    border-bottom:1px solid;
+  }
+  .desktop\:hover\:border-bottom:hover{
+    border-bottom:1px solid;
+  }
+  .desktop\:border-left{
+    border-left:1px solid;
+  }
+  .desktop\:hover\:border-left:hover{
+    border-left:1px solid;
+  }
+  .desktop\:border-transparent{
+    border-color:transparent;
+  }
+  .desktop\:hover\:border-transparent:hover{
+    border-color:transparent;
+  }
+  .desktop\:border-black{
+    border-color:black;
+  }
+  .desktop\:hover\:border-black:hover{
+    border-color:black;
+  }
+  .desktop\:border-white{
+    border-color:white;
+  }
+  .desktop\:hover\:border-white:hover{
+    border-color:white;
+  }
+  .desktop\:border-red{
+    border-color:#e52207;
+  }
+  .desktop\:hover\:border-red:hover{
+    border-color:#e52207;
+  }
+  .desktop\:border-orange{
+    border-color:#e66f0e;
+  }
+  .desktop\:hover\:border-orange:hover{
+    border-color:#e66f0e;
+  }
+  .desktop\:border-gold{
+    border-color:#ffbe2e;
+  }
+  .desktop\:hover\:border-gold:hover{
+    border-color:#ffbe2e;
+  }
+  .desktop\:border-yellow{
+    border-color:#fee685;
+  }
+  .desktop\:hover\:border-yellow:hover{
+    border-color:#fee685;
+  }
+  .desktop\:border-green{
+    border-color:#538200;
+  }
+  .desktop\:hover\:border-green:hover{
+    border-color:#538200;
+  }
+  .desktop\:border-mint{
+    border-color:#04c585;
+  }
+  .desktop\:hover\:border-mint:hover{
+    border-color:#04c585;
+  }
+  .desktop\:border-cyan{
+    border-color:#009ec1;
+  }
+  .desktop\:hover\:border-cyan:hover{
+    border-color:#009ec1;
+  }
+  .desktop\:border-blue{
+    border-color:#0076d6;
+  }
+  .desktop\:hover\:border-blue:hover{
+    border-color:#0076d6;
+  }
+  .desktop\:border-indigo{
+    border-color:#676cc8;
+  }
+  .desktop\:hover\:border-indigo:hover{
+    border-color:#676cc8;
+  }
+  .desktop\:border-violet{
+    border-color:#8168b3;
+  }
+  .desktop\:hover\:border-violet:hover{
+    border-color:#8168b3;
+  }
+  .desktop\:border-magenta{
+    border-color:#d72d79;
+  }
+  .desktop\:hover\:border-magenta:hover{
+    border-color:#d72d79;
+  }
+  .desktop\:border-gray-5{
+    border-color:#f0f0f0;
+  }
+  .desktop\:hover\:border-gray-5:hover{
+    border-color:#f0f0f0;
+  }
+  .desktop\:border-gray-10{
+    border-color:#e6e6e6;
+  }
+  .desktop\:hover\:border-gray-10:hover{
+    border-color:#e6e6e6;
+  }
+  .desktop\:border-gray-30{
+    border-color:#adadad;
+  }
+  .desktop\:hover\:border-gray-30:hover{
+    border-color:#adadad;
+  }
+  .desktop\:border-gray-50{
+    border-color:#757575;
+  }
+  .desktop\:hover\:border-gray-50:hover{
+    border-color:#757575;
+  }
+  .desktop\:border-gray-70{
+    border-color:#454545;
+  }
+  .desktop\:hover\:border-gray-70:hover{
+    border-color:#454545;
+  }
+  .desktop\:border-gray-90{
+    border-color:#1b1b1b;
+  }
+  .desktop\:hover\:border-gray-90:hover{
+    border-color:#1b1b1b;
+  }
+  .desktop\:border-base-lightest{
+    border-color:#f0f0f0;
+  }
+  .desktop\:hover\:border-base-lightest:hover{
+    border-color:#f0f0f0;
+  }
+  .desktop\:border-base-lighter{
+    border-color:#dfe1e2;
+  }
+  .desktop\:hover\:border-base-lighter:hover{
+    border-color:#dfe1e2;
+  }
+  .desktop\:border-base-light{
+    border-color:#a9aeb1;
+  }
+  .desktop\:hover\:border-base-light:hover{
+    border-color:#a9aeb1;
+  }
+  .desktop\:border-base{
+    border-color:#71767a;
+  }
+  .desktop\:hover\:border-base:hover{
+    border-color:#71767a;
+  }
+  .desktop\:border-base-dark{
+    border-color:#565c65;
+  }
+  .desktop\:hover\:border-base-dark:hover{
+    border-color:#565c65;
+  }
+  .desktop\:border-base-darker{
+    border-color:#3d4551;
+  }
+  .desktop\:hover\:border-base-darker:hover{
+    border-color:#3d4551;
+  }
+  .desktop\:border-base-darkest{
+    border-color:#1b1b1b;
+  }
+  .desktop\:hover\:border-base-darkest:hover{
+    border-color:#1b1b1b;
+  }
+  .desktop\:border-ink{
+    border-color:#1b1b1b;
+  }
+  .desktop\:hover\:border-ink:hover{
+    border-color:#1b1b1b;
+  }
+  .desktop\:border-primary-lighter{
+    border-color:#d9e8f6;
+  }
+  .desktop\:hover\:border-primary-lighter:hover{
+    border-color:#d9e8f6;
+  }
+  .desktop\:border-primary-light{
+    border-color:#73b3e7;
+  }
+  .desktop\:hover\:border-primary-light:hover{
+    border-color:#73b3e7;
+  }
+  .desktop\:border-primary{
+    border-color:#005ea2;
+  }
+  .desktop\:hover\:border-primary:hover{
+    border-color:#005ea2;
+  }
+  .desktop\:border-primary-vivid{
+    border-color:#0050d8;
+  }
+  .desktop\:hover\:border-primary-vivid:hover{
+    border-color:#0050d8;
+  }
+  .desktop\:border-primary-dark{
+    border-color:#1a4480;
+  }
+  .desktop\:hover\:border-primary-dark:hover{
+    border-color:#1a4480;
+  }
+  .desktop\:border-primary-darker{
+    border-color:#162e51;
+  }
+  .desktop\:hover\:border-primary-darker:hover{
+    border-color:#162e51;
+  }
+  .desktop\:border-secondary-lighter{
+    border-color:#f3e1e4;
+  }
+  .desktop\:hover\:border-secondary-lighter:hover{
+    border-color:#f3e1e4;
+  }
+  .desktop\:border-secondary-light{
+    border-color:#f2938c;
+  }
+  .desktop\:hover\:border-secondary-light:hover{
+    border-color:#f2938c;
+  }
+  .desktop\:border-secondary{
+    border-color:#d83933;
+  }
+  .desktop\:hover\:border-secondary:hover{
+    border-color:#d83933;
+  }
+  .desktop\:border-secondary-vivid{
+    border-color:#e41d3d;
+  }
+  .desktop\:hover\:border-secondary-vivid:hover{
+    border-color:#e41d3d;
+  }
+  .desktop\:border-secondary-dark{
+    border-color:#b50909;
+  }
+  .desktop\:hover\:border-secondary-dark:hover{
+    border-color:#b50909;
+  }
+  .desktop\:border-secondary-darker{
+    border-color:#8b0a03;
+  }
+  .desktop\:hover\:border-secondary-darker:hover{
+    border-color:#8b0a03;
+  }
+  .desktop\:border-accent-warm-darker{
+    border-color:#775540;
+  }
+  .desktop\:hover\:border-accent-warm-darker:hover{
+    border-color:#775540;
+  }
+  .desktop\:border-accent-warm-dark{
+    border-color:#c05600;
+  }
+  .desktop\:hover\:border-accent-warm-dark:hover{
+    border-color:#c05600;
+  }
+  .desktop\:border-accent-warm{
+    border-color:#fa9441;
+  }
+  .desktop\:hover\:border-accent-warm:hover{
+    border-color:#fa9441;
+  }
+  .desktop\:border-accent-warm-light{
+    border-color:#ffbc78;
+  }
+  .desktop\:hover\:border-accent-warm-light:hover{
+    border-color:#ffbc78;
+  }
+  .desktop\:border-accent-warm-lighter{
+    border-color:#f2e4d4;
+  }
+  .desktop\:hover\:border-accent-warm-lighter:hover{
+    border-color:#f2e4d4;
+  }
+  .desktop\:border-accent-cool-darker{
+    border-color:#07648d;
+  }
+  .desktop\:hover\:border-accent-cool-darker:hover{
+    border-color:#07648d;
+  }
+  .desktop\:border-accent-cool-dark{
+    border-color:#28a0cb;
+  }
+  .desktop\:hover\:border-accent-cool-dark:hover{
+    border-color:#28a0cb;
+  }
+  .desktop\:border-accent-cool{
+    border-color:#00bde3;
+  }
+  .desktop\:hover\:border-accent-cool:hover{
+    border-color:#00bde3;
+  }
+  .desktop\:border-accent-cool-light{
+    border-color:#97d4ea;
+  }
+  .desktop\:hover\:border-accent-cool-light:hover{
+    border-color:#97d4ea;
+  }
+  .desktop\:border-accent-cool-lighter{
+    border-color:#e1f3f8;
+  }
+  .desktop\:hover\:border-accent-cool-lighter:hover{
+    border-color:#e1f3f8;
+  }
+  .desktop\:border-error-lighter{
+    border-color:#f4e3db;
+  }
+  .desktop\:hover\:border-error-lighter:hover{
+    border-color:#f4e3db;
+  }
+  .desktop\:border-error-light{
+    border-color:#f39268;
+  }
+  .desktop\:hover\:border-error-light:hover{
+    border-color:#f39268;
+  }
+  .desktop\:border-error{
+    border-color:#d54309;
+  }
+  .desktop\:hover\:border-error:hover{
+    border-color:#d54309;
+  }
+  .desktop\:border-error-dark{
+    border-color:#b50909;
+  }
+  .desktop\:hover\:border-error-dark:hover{
+    border-color:#b50909;
+  }
+  .desktop\:border-error-darker{
+    border-color:#6f3331;
+  }
+  .desktop\:hover\:border-error-darker:hover{
+    border-color:#6f3331;
+  }
+  .desktop\:border-warning-lighter{
+    border-color:#faf3d1;
+  }
+  .desktop\:hover\:border-warning-lighter:hover{
+    border-color:#faf3d1;
+  }
+  .desktop\:border-warning-light{
+    border-color:#fee685;
+  }
+  .desktop\:hover\:border-warning-light:hover{
+    border-color:#fee685;
+  }
+  .desktop\:border-warning{
+    border-color:#ffbe2e;
+  }
+  .desktop\:hover\:border-warning:hover{
+    border-color:#ffbe2e;
+  }
+  .desktop\:border-warning-dark{
+    border-color:#e5a000;
+  }
+  .desktop\:hover\:border-warning-dark:hover{
+    border-color:#e5a000;
+  }
+  .desktop\:border-warning-darker{
+    border-color:#936f38;
+  }
+  .desktop\:hover\:border-warning-darker:hover{
+    border-color:#936f38;
+  }
+  .desktop\:border-success-lighter{
+    border-color:#ecf3ec;
+  }
+  .desktop\:hover\:border-success-lighter:hover{
+    border-color:#ecf3ec;
+  }
+  .desktop\:border-success-light{
+    border-color:#70e17b;
+  }
+  .desktop\:hover\:border-success-light:hover{
+    border-color:#70e17b;
+  }
+  .desktop\:border-success{
+    border-color:#00a91c;
+  }
+  .desktop\:hover\:border-success:hover{
+    border-color:#00a91c;
+  }
+  .desktop\:border-success-dark{
+    border-color:#008817;
+  }
+  .desktop\:hover\:border-success-dark:hover{
+    border-color:#008817;
+  }
+  .desktop\:border-success-darker{
+    border-color:#216e1f;
+  }
+  .desktop\:hover\:border-success-darker:hover{
+    border-color:#216e1f;
+  }
+  .desktop\:border-info-lighter{
+    border-color:#e7f6f8;
+  }
+  .desktop\:hover\:border-info-lighter:hover{
+    border-color:#e7f6f8;
+  }
+  .desktop\:border-info-light{
+    border-color:#99deea;
+  }
+  .desktop\:hover\:border-info-light:hover{
+    border-color:#99deea;
+  }
+  .desktop\:border-info{
+    border-color:#00bde3;
+  }
+  .desktop\:hover\:border-info:hover{
+    border-color:#00bde3;
+  }
+  .desktop\:border-info-dark{
+    border-color:#009ec1;
+  }
+  .desktop\:hover\:border-info-dark:hover{
+    border-color:#009ec1;
+  }
+  .desktop\:border-info-darker{
+    border-color:#2e6276;
+  }
+  .desktop\:hover\:border-info-darker:hover{
+    border-color:#2e6276;
+  }
+  .desktop\:border-disabled-lighter{
+    border-color:#c9c9c9;
+  }
+  .desktop\:hover\:border-disabled-lighter:hover{
+    border-color:#c9c9c9;
+  }
+  .desktop\:border-disabled-light{
+    border-color:#919191;
+  }
+  .desktop\:hover\:border-disabled-light:hover{
+    border-color:#919191;
+  }
+  .desktop\:border-disabled{
+    border-color:#757575;
+  }
+  .desktop\:hover\:border-disabled:hover{
+    border-color:#757575;
+  }
+  .desktop\:border-disabled-dark{
+    border-color:#454545;
+  }
+  .desktop\:hover\:border-disabled-dark:hover{
+    border-color:#454545;
+  }
+  .desktop\:border-disabled-darker{
+    border-color:#1b1b1b;
+  }
+  .desktop\:hover\:border-disabled-darker:hover{
+    border-color:#1b1b1b;
+  }
+  .desktop\:border-emergency{
+    border-color:#9c3d10;
+  }
+  .desktop\:hover\:border-emergency:hover{
+    border-color:#9c3d10;
+  }
+  .desktop\:border-emergency-dark{
+    border-color:#332d29;
+  }
+  .desktop\:hover\:border-emergency-dark:hover{
+    border-color:#332d29;
+  }
+  .desktop\:radius-0{
+    border-radius:0;
+  }
+  .desktop\:radius-top-0{
+    border-top-left-radius:0;
+    border-top-right-radius:0;
+  }
+  .desktop\:radius-right-0{
+    border-top-right-radius:0;
+    border-bottom-right-radius:0;
+  }
+  .desktop\:radius-bottom-0{
+    border-bottom-left-radius:0;
+    border-bottom-right-radius:0;
+  }
+  .desktop\:radius-left-0{
+    border-top-left-radius:0;
+    border-bottom-left-radius:0;
+  }
+  .desktop\:radius-sm{
+    border-radius:2px;
+  }
+  .desktop\:radius-top-sm{
+    border-top-left-radius:2px;
+    border-top-right-radius:2px;
+  }
+  .desktop\:radius-right-sm{
+    border-top-right-radius:2px;
+    border-bottom-right-radius:2px;
+  }
+  .desktop\:radius-bottom-sm{
+    border-bottom-left-radius:2px;
+    border-bottom-right-radius:2px;
+  }
+  .desktop\:radius-left-sm{
+    border-top-left-radius:2px;
+    border-bottom-left-radius:2px;
+  }
+  .desktop\:radius-md{
+    border-radius:0.25rem;
+  }
+  .desktop\:radius-top-md{
+    border-top-left-radius:0.25rem;
+    border-top-right-radius:0.25rem;
+  }
+  .desktop\:radius-right-md{
+    border-top-right-radius:0.25rem;
+    border-bottom-right-radius:0.25rem;
+  }
+  .desktop\:radius-bottom-md{
+    border-bottom-left-radius:0.25rem;
+    border-bottom-right-radius:0.25rem;
+  }
+  .desktop\:radius-left-md{
+    border-top-left-radius:0.25rem;
+    border-bottom-left-radius:0.25rem;
+  }
+  .desktop\:radius-lg{
+    border-radius:0.5rem;
+  }
+  .desktop\:radius-top-lg{
+    border-top-left-radius:0.5rem;
+    border-top-right-radius:0.5rem;
+  }
+  .desktop\:radius-right-lg{
+    border-top-right-radius:0.5rem;
+    border-bottom-right-radius:0.5rem;
+  }
+  .desktop\:radius-bottom-lg{
+    border-bottom-left-radius:0.5rem;
+    border-bottom-right-radius:0.5rem;
+  }
+  .desktop\:radius-left-lg{
+    border-top-left-radius:0.5rem;
+    border-bottom-left-radius:0.5rem;
+  }
+  .desktop\:radius-pill{
+    border-radius:99rem;
+  }
+  .desktop\:radius-top-pill{
+    border-top-left-radius:99rem;
+    border-top-right-radius:99rem;
+  }
+  .desktop\:radius-right-pill{
+    border-top-right-radius:99rem;
+    border-bottom-right-radius:99rem;
+  }
+  .desktop\:radius-bottom-pill{
+    border-bottom-left-radius:99rem;
+    border-bottom-right-radius:99rem;
+  }
+  .desktop\:radius-left-pill{
+    border-top-left-radius:99rem;
+    border-bottom-left-radius:99rem;
+  }
+  .desktop\:display-block{
+    display:block;
+  }
+  .desktop\:display-flex{
+    display:flex;
+  }
+  .desktop\:display-none{
+    display:none;
+  }
+  .desktop\:display-inline{
+    display:inline;
+  }
+  .desktop\:display-inline-block{
+    display:inline-block;
+  }
+  .desktop\:display-inline-flex{
+    display:inline-flex;
+  }
+  .desktop\:display-table{
+    display:table;
+  }
+  .desktop\:display-table-cell{
+    display:table-cell;
+  }
+  .desktop\:display-table-row{
+    display:table-row;
+  }
+  .desktop\:font-mono-3xs{
+    font-size:0.77rem;
+  }
+  .desktop\:font-mono-2xs{
+    font-size:0.83rem;
+  }
+  .desktop\:font-mono-xs{
+    font-size:0.89rem;
+  }
+  .desktop\:font-mono-sm{
+    font-size:0.95rem;
+  }
+  .desktop\:font-mono-md{
+    font-size:1.01rem;
+  }
+  .desktop\:font-mono-lg{
+    font-size:1.31rem;
+  }
+  .desktop\:font-mono-xl{
+    font-size:1.91rem;
+  }
+  .desktop\:font-mono-2xl{
+    font-size:2.38rem;
+  }
+  .desktop\:font-mono-3xl{
+    font-size:2.86rem;
+  }
+  .desktop\:font-sans-3xs{
+    font-size:0.87rem;
+  }
+  .desktop\:font-sans-2xs{
+    font-size:0.93rem;
+  }
+  .desktop\:font-sans-xs{
+    font-size:1rem;
+  }
+  .desktop\:font-sans-sm{
+    font-size:1.06rem;
+  }
+  .desktop\:font-sans-md{
+    font-size:1.13rem;
+  }
+  .desktop\:font-sans-lg{
+    font-size:1.46rem;
+  }
+  .desktop\:font-sans-xl{
+    font-size:2.13rem;
+  }
+  .desktop\:font-sans-2xl{
+    font-size:2.66rem;
+  }
+  .desktop\:font-sans-3xl{
+    font-size:3.19rem;
+  }
+  .desktop\:font-serif-3xs{
+    font-size:0.79rem;
+  }
+  .desktop\:font-serif-2xs{
+    font-size:0.85rem;
+  }
+  .desktop\:font-serif-xs{
+    font-size:0.91rem;
+  }
+  .desktop\:font-serif-sm{
+    font-size:0.98rem;
+  }
+  .desktop\:font-serif-md{
+    font-size:1.04rem;
+  }
+  .desktop\:font-serif-lg{
+    font-size:1.34rem;
+  }
+  .desktop\:font-serif-xl{
+    font-size:1.95rem;
+  }
+  .desktop\:font-serif-2xl{
+    font-size:2.44rem;
+  }
+  .desktop\:font-serif-3xl{
+    font-size:2.93rem;
+  }
+  .desktop\:font-heading-3xs{
+    font-size:0.79rem;
+  }
+  .desktop\:font-heading-2xs{
+    font-size:0.85rem;
+  }
+  .desktop\:font-heading-xs{
+    font-size:0.91rem;
+  }
+  .desktop\:font-heading-sm{
+    font-size:0.98rem;
+  }
+  .desktop\:font-heading-md{
+    font-size:1.04rem;
+  }
+  .desktop\:font-heading-lg{
+    font-size:1.34rem;
+  }
+  .desktop\:font-heading-xl{
+    font-size:1.95rem;
+  }
+  .desktop\:font-heading-2xl{
+    font-size:2.44rem;
+  }
+  .desktop\:font-heading-3xl{
+    font-size:2.93rem;
+  }
+  .desktop\:font-body-3xs{
+    font-size:0.87rem;
+  }
+  .desktop\:font-body-2xs{
+    font-size:0.93rem;
+  }
+  .desktop\:font-body-xs{
+    font-size:1rem;
+  }
+  .desktop\:font-body-sm{
+    font-size:1.06rem;
+  }
+  .desktop\:font-body-md{
+    font-size:1.13rem;
+  }
+  .desktop\:font-body-lg{
+    font-size:1.46rem;
+  }
+  .desktop\:font-body-xl{
+    font-size:2.13rem;
+  }
+  .desktop\:font-body-2xl{
+    font-size:2.66rem;
+  }
+  .desktop\:font-body-3xl{
+    font-size:3.19rem;
+  }
+  .desktop\:font-code-3xs{
+    font-size:0.77rem;
+  }
+  .desktop\:font-code-2xs{
+    font-size:0.83rem;
+  }
+  .desktop\:font-code-xs{
+    font-size:0.89rem;
+  }
+  .desktop\:font-code-sm{
+    font-size:0.95rem;
+  }
+  .desktop\:font-code-md{
+    font-size:1.01rem;
+  }
+  .desktop\:font-code-lg{
+    font-size:1.31rem;
+  }
+  .desktop\:font-code-xl{
+    font-size:1.91rem;
+  }
+  .desktop\:font-code-2xl{
+    font-size:2.38rem;
+  }
+  .desktop\:font-code-3xl{
+    font-size:2.86rem;
+  }
+  .desktop\:font-alt-3xs{
+    font-size:0.79rem;
+  }
+  .desktop\:font-alt-2xs{
+    font-size:0.85rem;
+  }
+  .desktop\:font-alt-xs{
+    font-size:0.91rem;
+  }
+  .desktop\:font-alt-sm{
+    font-size:0.98rem;
+  }
+  .desktop\:font-alt-md{
+    font-size:1.04rem;
+  }
+  .desktop\:font-alt-lg{
+    font-size:1.34rem;
+  }
+  .desktop\:font-alt-xl{
+    font-size:1.95rem;
+  }
+  .desktop\:font-alt-2xl{
+    font-size:2.44rem;
+  }
+  .desktop\:font-alt-3xl{
+    font-size:2.93rem;
+  }
+  .desktop\:font-ui-3xs{
+    font-size:0.87rem;
+  }
+  .desktop\:font-ui-2xs{
+    font-size:0.93rem;
+  }
+  .desktop\:font-ui-xs{
+    font-size:1rem;
+  }
+  .desktop\:font-ui-sm{
+    font-size:1.06rem;
+  }
+  .desktop\:font-ui-md{
+    font-size:1.13rem;
+  }
+  .desktop\:font-ui-lg{
+    font-size:1.46rem;
+  }
+  .desktop\:font-ui-xl{
+    font-size:2.13rem;
+  }
+  .desktop\:font-ui-2xl{
+    font-size:2.66rem;
+  }
+  .desktop\:font-ui-3xl{
+    font-size:3.19rem;
+  }
+  .desktop\:text-light{
+    font-weight:300;
+  }
+  .desktop\:text-normal{
+    font-weight:normal;
+  }
+  .desktop\:text-bold{
+    font-weight:700;
+  }
+  .desktop\:flex-justify-center{
+    justify-content:center;
+  }
+  .desktop\:flex-justify-start{
+    justify-content:flex-start;
+  }
+  .desktop\:flex-justify-end{
+    justify-content:flex-end;
+  }
+  .desktop\:flex-justify{
+    justify-content:space-between;
+  }
+  .desktop\:line-height-sans-1{
+    line-height:0.9;
+  }
+  .desktop\:line-height-sans-2{
+    line-height:1.1;
+  }
+  .desktop\:line-height-sans-3{
+    line-height:1.3;
+  }
+  .desktop\:line-height-sans-4{
+    line-height:1.4;
+  }
+  .desktop\:line-height-sans-5{
+    line-height:1.5;
+  }
+  .desktop\:line-height-sans-6{
+    line-height:1.6;
+  }
+  .desktop\:line-height-serif-1{
+    line-height:1;
+  }
+  .desktop\:line-height-serif-2{
+    line-height:1.2;
+  }
+  .desktop\:line-height-serif-3{
+    line-height:1.4;
+  }
+  .desktop\:line-height-serif-4{
+    line-height:1.5;
+  }
+  .desktop\:line-height-serif-5{
+    line-height:1.7;
+  }
+  .desktop\:line-height-serif-6{
+    line-height:1.8;
+  }
+  .desktop\:line-height-mono-1{
+    line-height:1;
+  }
+  .desktop\:line-height-mono-2{
+    line-height:1.3;
+  }
+  .desktop\:line-height-mono-3{
+    line-height:1.4;
+  }
+  .desktop\:line-height-mono-4{
+    line-height:1.6;
+  }
+  .desktop\:line-height-mono-5{
+    line-height:1.7;
+  }
+  .desktop\:line-height-mono-6{
+    line-height:1.8;
+  }
+  .desktop\:line-height-heading-1{
+    line-height:1;
+  }
+  .desktop\:line-height-heading-2{
+    line-height:1.2;
+  }
+  .desktop\:line-height-heading-3{
+    line-height:1.4;
+  }
+  .desktop\:line-height-heading-4{
+    line-height:1.5;
+  }
+  .desktop\:line-height-heading-5{
+    line-height:1.7;
+  }
+  .desktop\:line-height-heading-6{
+    line-height:1.8;
+  }
+  .desktop\:line-height-ui-1{
+    line-height:0.9;
+  }
+  .desktop\:line-height-ui-2{
+    line-height:1.1;
+  }
+  .desktop\:line-height-ui-3{
+    line-height:1.3;
+  }
+  .desktop\:line-height-ui-4{
+    line-height:1.4;
+  }
+  .desktop\:line-height-ui-5{
+    line-height:1.5;
+  }
+  .desktop\:line-height-ui-6{
+    line-height:1.6;
+  }
+  .desktop\:line-height-body-1{
+    line-height:0.9;
+  }
+  .desktop\:line-height-body-2{
+    line-height:1.1;
+  }
+  .desktop\:line-height-body-3{
+    line-height:1.3;
+  }
+  .desktop\:line-height-body-4{
+    line-height:1.4;
+  }
+  .desktop\:line-height-body-5{
+    line-height:1.5;
+  }
+  .desktop\:line-height-body-6{
+    line-height:1.6;
+  }
+  .desktop\:line-height-code-1{
+    line-height:1;
+  }
+  .desktop\:line-height-code-2{
+    line-height:1.3;
+  }
+  .desktop\:line-height-code-3{
+    line-height:1.4;
+  }
+  .desktop\:line-height-code-4{
+    line-height:1.6;
+  }
+  .desktop\:line-height-code-5{
+    line-height:1.7;
+  }
+  .desktop\:line-height-code-6{
+    line-height:1.8;
+  }
+  .desktop\:line-height-alt-1{
+    line-height:1;
+  }
+  .desktop\:line-height-alt-2{
+    line-height:1.2;
+  }
+  .desktop\:line-height-alt-3{
+    line-height:1.4;
+  }
+  .desktop\:line-height-alt-4{
+    line-height:1.5;
+  }
+  .desktop\:line-height-alt-5{
+    line-height:1.7;
+  }
+  .desktop\:line-height-alt-6{
+    line-height:1.8;
+  }
+  .desktop\:margin-neg-1px{
+    margin:-1px;
+  }
+  .desktop\:margin-neg-2px{
+    margin:-2px;
+  }
+  .desktop\:margin-neg-05{
+    margin:-0.25rem;
+  }
+  .desktop\:margin-neg-1{
+    margin:-0.5rem;
+  }
+  .desktop\:margin-neg-105{
+    margin:-0.75rem;
+  }
+  .desktop\:margin-neg-2{
+    margin:-1rem;
+  }
+  .desktop\:margin-neg-205{
+    margin:-1.25rem;
+  }
+  .desktop\:margin-neg-3{
+    margin:-1.5rem;
+  }
+  .desktop\:margin-1px{
+    margin:1px;
+  }
+  .desktop\:margin-2px{
+    margin:2px;
+  }
+  .desktop\:margin-05{
+    margin:0.25rem;
+  }
+  .desktop\:margin-1{
+    margin:0.5rem;
+  }
+  .desktop\:margin-105{
+    margin:0.75rem;
+  }
+  .desktop\:margin-2{
+    margin:1rem;
+  }
+  .desktop\:margin-205{
+    margin:1.25rem;
+  }
+  .desktop\:margin-3{
+    margin:1.5rem;
+  }
+  .desktop\:margin-neg-4{
+    margin:-2rem;
+  }
+  .desktop\:margin-neg-5{
+    margin:-2.5rem;
+  }
+  .desktop\:margin-neg-6{
+    margin:-3rem;
+  }
+  .desktop\:margin-neg-7{
+    margin:-3.5rem;
+  }
+  .desktop\:margin-neg-8{
+    margin:-4rem;
+  }
+  .desktop\:margin-neg-9{
+    margin:-4.5rem;
+  }
+  .desktop\:margin-neg-10{
+    margin:-5rem;
+  }
+  .desktop\:margin-neg-15{
+    margin:-7.5rem;
+  }
+  .desktop\:margin-4{
+    margin:2rem;
+  }
+  .desktop\:margin-5{
+    margin:2.5rem;
+  }
+  .desktop\:margin-6{
+    margin:3rem;
+  }
+  .desktop\:margin-7{
+    margin:3.5rem;
+  }
+  .desktop\:margin-8{
+    margin:4rem;
+  }
+  .desktop\:margin-9{
+    margin:4.5rem;
+  }
+  .desktop\:margin-10{
+    margin:5rem;
+  }
+  .desktop\:margin-15{
+    margin:7.5rem;
+  }
+  .desktop\:margin-05em{
+    margin:0.5em;
+  }
+  .desktop\:margin-1em{
+    margin:1em;
+  }
+  .desktop\:margin-105em{
+    margin:1.5em;
+  }
+  .desktop\:margin-2em{
+    margin:2em;
+  }
+  .desktop\:margin-0{
+    margin:0;
+  }
+  .desktop\:margin-y-1px{
+    margin-top:1px;
+    margin-bottom:1px;
+  }
+  .desktop\:margin-top-1px{
+    margin-top:1px;
+  }
+  .desktop\:margin-bottom-1px{
+    margin-bottom:1px;
+  }
+  .desktop\:margin-y-2px{
+    margin-top:2px;
+    margin-bottom:2px;
+  }
+  .desktop\:margin-top-2px{
+    margin-top:2px;
+  }
+  .desktop\:margin-bottom-2px{
+    margin-bottom:2px;
+  }
+  .desktop\:margin-y-05{
+    margin-top:0.25rem;
+    margin-bottom:0.25rem;
+  }
+  .desktop\:margin-top-05{
+    margin-top:0.25rem;
+  }
+  .desktop\:margin-bottom-05{
+    margin-bottom:0.25rem;
+  }
+  .desktop\:margin-y-1{
+    margin-top:0.5rem;
+    margin-bottom:0.5rem;
+  }
+  .desktop\:margin-top-1{
+    margin-top:0.5rem;
+  }
+  .desktop\:margin-bottom-1{
+    margin-bottom:0.5rem;
+  }
+  .desktop\:margin-y-105{
+    margin-top:0.75rem;
+    margin-bottom:0.75rem;
+  }
+  .desktop\:margin-top-105{
+    margin-top:0.75rem;
+  }
+  .desktop\:margin-bottom-105{
+    margin-bottom:0.75rem;
+  }
+  .desktop\:margin-y-2{
+    margin-top:1rem;
+    margin-bottom:1rem;
+  }
+  .desktop\:margin-top-2{
+    margin-top:1rem;
+  }
+  .desktop\:margin-bottom-2{
+    margin-bottom:1rem;
+  }
+  .desktop\:margin-y-205{
+    margin-top:1.25rem;
+    margin-bottom:1.25rem;
+  }
+  .desktop\:margin-top-205{
+    margin-top:1.25rem;
+  }
+  .desktop\:margin-bottom-205{
+    margin-bottom:1.25rem;
+  }
+  .desktop\:margin-y-3{
+    margin-top:1.5rem;
+    margin-bottom:1.5rem;
+  }
+  .desktop\:margin-top-3{
+    margin-top:1.5rem;
+  }
+  .desktop\:margin-bottom-3{
+    margin-bottom:1.5rem;
+  }
+  .desktop\:margin-y-neg-1px{
+    margin-top:-1px;
+    margin-bottom:-1px;
+  }
+  .desktop\:margin-top-neg-1px{
+    margin-top:-1px;
+  }
+  .desktop\:margin-bottom-neg-1px{
+    margin-bottom:-1px;
+  }
+  .desktop\:margin-y-neg-2px{
+    margin-top:-2px;
+    margin-bottom:-2px;
+  }
+  .desktop\:margin-top-neg-2px{
+    margin-top:-2px;
+  }
+  .desktop\:margin-bottom-neg-2px{
+    margin-bottom:-2px;
+  }
+  .desktop\:margin-y-neg-05{
+    margin-top:-0.25rem;
+    margin-bottom:-0.25rem;
+  }
+  .desktop\:margin-top-neg-05{
+    margin-top:-0.25rem;
+  }
+  .desktop\:margin-bottom-neg-05{
+    margin-bottom:-0.25rem;
+  }
+  .desktop\:margin-y-neg-1{
+    margin-top:-0.5rem;
+    margin-bottom:-0.5rem;
+  }
+  .desktop\:margin-top-neg-1{
+    margin-top:-0.5rem;
+  }
+  .desktop\:margin-bottom-neg-1{
+    margin-bottom:-0.5rem;
+  }
+  .desktop\:margin-y-neg-105{
+    margin-top:-0.75rem;
+    margin-bottom:-0.75rem;
+  }
+  .desktop\:margin-top-neg-105{
+    margin-top:-0.75rem;
+  }
+  .desktop\:margin-bottom-neg-105{
+    margin-bottom:-0.75rem;
+  }
+  .desktop\:margin-y-neg-2{
+    margin-top:-1rem;
+    margin-bottom:-1rem;
+  }
+  .desktop\:margin-top-neg-2{
+    margin-top:-1rem;
+  }
+  .desktop\:margin-bottom-neg-2{
+    margin-bottom:-1rem;
+  }
+  .desktop\:margin-y-neg-205{
+    margin-top:-1.25rem;
+    margin-bottom:-1.25rem;
+  }
+  .desktop\:margin-top-neg-205{
+    margin-top:-1.25rem;
+  }
+  .desktop\:margin-bottom-neg-205{
+    margin-bottom:-1.25rem;
+  }
+  .desktop\:margin-y-neg-3{
+    margin-top:-1.5rem;
+    margin-bottom:-1.5rem;
+  }
+  .desktop\:margin-top-neg-3{
+    margin-top:-1.5rem;
+  }
+  .desktop\:margin-bottom-neg-3{
+    margin-bottom:-1.5rem;
+  }
+  .desktop\:margin-y-neg-4{
+    margin-top:-2rem;
+    margin-bottom:-2rem;
+  }
+  .desktop\:margin-top-neg-4{
+    margin-top:-2rem;
+  }
+  .desktop\:margin-bottom-neg-4{
+    margin-bottom:-2rem;
+  }
+  .desktop\:margin-y-neg-5{
+    margin-top:-2.5rem;
+    margin-bottom:-2.5rem;
+  }
+  .desktop\:margin-top-neg-5{
+    margin-top:-2.5rem;
+  }
+  .desktop\:margin-bottom-neg-5{
+    margin-bottom:-2.5rem;
+  }
+  .desktop\:margin-y-neg-6{
+    margin-top:-3rem;
+    margin-bottom:-3rem;
+  }
+  .desktop\:margin-top-neg-6{
+    margin-top:-3rem;
+  }
+  .desktop\:margin-bottom-neg-6{
+    margin-bottom:-3rem;
+  }
+  .desktop\:margin-y-neg-7{
+    margin-top:-3.5rem;
+    margin-bottom:-3.5rem;
+  }
+  .desktop\:margin-top-neg-7{
+    margin-top:-3.5rem;
+  }
+  .desktop\:margin-bottom-neg-7{
+    margin-bottom:-3.5rem;
+  }
+  .desktop\:margin-y-neg-8{
+    margin-top:-4rem;
+    margin-bottom:-4rem;
+  }
+  .desktop\:margin-top-neg-8{
+    margin-top:-4rem;
+  }
+  .desktop\:margin-bottom-neg-8{
+    margin-bottom:-4rem;
+  }
+  .desktop\:margin-y-neg-9{
+    margin-top:-4.5rem;
+    margin-bottom:-4.5rem;
+  }
+  .desktop\:margin-top-neg-9{
+    margin-top:-4.5rem;
+  }
+  .desktop\:margin-bottom-neg-9{
+    margin-bottom:-4.5rem;
+  }
+  .desktop\:margin-y-neg-10{
+    margin-top:-5rem;
+    margin-bottom:-5rem;
+  }
+  .desktop\:margin-top-neg-10{
+    margin-top:-5rem;
+  }
+  .desktop\:margin-bottom-neg-10{
+    margin-bottom:-5rem;
+  }
+  .desktop\:margin-y-neg-15{
+    margin-top:-7.5rem;
+    margin-bottom:-7.5rem;
+  }
+  .desktop\:margin-top-neg-15{
+    margin-top:-7.5rem;
+  }
+  .desktop\:margin-bottom-neg-15{
+    margin-bottom:-7.5rem;
+  }
+  .desktop\:margin-y-4{
+    margin-top:2rem;
+    margin-bottom:2rem;
+  }
+  .desktop\:margin-top-4{
+    margin-top:2rem;
+  }
+  .desktop\:margin-bottom-4{
+    margin-bottom:2rem;
+  }
+  .desktop\:margin-y-5{
+    margin-top:2.5rem;
+    margin-bottom:2.5rem;
+  }
+  .desktop\:margin-top-5{
+    margin-top:2.5rem;
+  }
+  .desktop\:margin-bottom-5{
+    margin-bottom:2.5rem;
+  }
+  .desktop\:margin-y-6{
+    margin-top:3rem;
+    margin-bottom:3rem;
+  }
+  .desktop\:margin-top-6{
+    margin-top:3rem;
+  }
+  .desktop\:margin-bottom-6{
+    margin-bottom:3rem;
+  }
+  .desktop\:margin-y-7{
+    margin-top:3.5rem;
+    margin-bottom:3.5rem;
+  }
+  .desktop\:margin-top-7{
+    margin-top:3.5rem;
+  }
+  .desktop\:margin-bottom-7{
+    margin-bottom:3.5rem;
+  }
+  .desktop\:margin-y-8{
+    margin-top:4rem;
+    margin-bottom:4rem;
+  }
+  .desktop\:margin-top-8{
+    margin-top:4rem;
+  }
+  .desktop\:margin-bottom-8{
+    margin-bottom:4rem;
+  }
+  .desktop\:margin-y-9{
+    margin-top:4.5rem;
+    margin-bottom:4.5rem;
+  }
+  .desktop\:margin-top-9{
+    margin-top:4.5rem;
+  }
+  .desktop\:margin-bottom-9{
+    margin-bottom:4.5rem;
+  }
+  .desktop\:margin-y-10{
+    margin-top:5rem;
+    margin-bottom:5rem;
+  }
+  .desktop\:margin-top-10{
+    margin-top:5rem;
+  }
+  .desktop\:margin-bottom-10{
+    margin-bottom:5rem;
+  }
+  .desktop\:margin-y-15{
+    margin-top:7.5rem;
+    margin-bottom:7.5rem;
+  }
+  .desktop\:margin-top-15{
+    margin-top:7.5rem;
+  }
+  .desktop\:margin-bottom-15{
+    margin-bottom:7.5rem;
+  }
+  .desktop\:margin-y-05em{
+    margin-top:0.5em;
+    margin-bottom:0.5em;
+  }
+  .desktop\:margin-top-05em{
+    margin-top:0.5em;
+  }
+  .desktop\:margin-bottom-05em{
+    margin-bottom:0.5em;
+  }
+  .desktop\:margin-y-1em{
+    margin-top:1em;
+    margin-bottom:1em;
+  }
+  .desktop\:margin-top-1em{
+    margin-top:1em;
+  }
+  .desktop\:margin-bottom-1em{
+    margin-bottom:1em;
+  }
+  .desktop\:margin-y-105em{
+    margin-top:1.5em;
+    margin-bottom:1.5em;
+  }
+  .desktop\:margin-top-105em{
+    margin-top:1.5em;
+  }
+  .desktop\:margin-bottom-105em{
+    margin-bottom:1.5em;
+  }
+  .desktop\:margin-y-2em{
+    margin-top:2em;
+    margin-bottom:2em;
+  }
+  .desktop\:margin-top-2em{
+    margin-top:2em;
+  }
+  .desktop\:margin-bottom-2em{
+    margin-bottom:2em;
+  }
+  .desktop\:margin-y-0{
+    margin-top:0;
+    margin-bottom:0;
+  }
+  .desktop\:margin-top-0{
+    margin-top:0;
+  }
+  .desktop\:margin-bottom-0{
+    margin-bottom:0;
+  }
+  .desktop\:margin-y-auto{
+    margin-top:auto;
+    margin-bottom:auto;
+  }
+  .desktop\:margin-top-auto{
+    margin-top:auto;
+  }
+  .desktop\:margin-bottom-auto{
+    margin-bottom:auto;
+  }
+  .desktop\:margin-x-1px{
+    margin-left:1px;
+    margin-right:1px;
+  }
+  .desktop\:margin-right-1px{
+    margin-right:1px;
+  }
+  .desktop\:margin-left-1px{
+    margin-left:1px;
+  }
+  .desktop\:margin-x-2px{
+    margin-left:2px;
+    margin-right:2px;
+  }
+  .desktop\:margin-right-2px{
+    margin-right:2px;
+  }
+  .desktop\:margin-left-2px{
+    margin-left:2px;
+  }
+  .desktop\:margin-x-05{
+    margin-left:0.25rem;
+    margin-right:0.25rem;
+  }
+  .desktop\:margin-right-05{
+    margin-right:0.25rem;
+  }
+  .desktop\:margin-left-05{
+    margin-left:0.25rem;
+  }
+  .desktop\:margin-x-1{
+    margin-left:0.5rem;
+    margin-right:0.5rem;
+  }
+  .desktop\:margin-right-1{
+    margin-right:0.5rem;
+  }
+  .desktop\:margin-left-1{
+    margin-left:0.5rem;
+  }
+  .desktop\:margin-x-105{
+    margin-left:0.75rem;
+    margin-right:0.75rem;
+  }
+  .desktop\:margin-right-105{
+    margin-right:0.75rem;
+  }
+  .desktop\:margin-left-105{
+    margin-left:0.75rem;
+  }
+  .desktop\:margin-x-2{
+    margin-left:1rem;
+    margin-right:1rem;
+  }
+  .desktop\:margin-right-2{
+    margin-right:1rem;
+  }
+  .desktop\:margin-left-2{
+    margin-left:1rem;
+  }
+  .desktop\:margin-x-205{
+    margin-left:1.25rem;
+    margin-right:1.25rem;
+  }
+  .desktop\:margin-right-205{
+    margin-right:1.25rem;
+  }
+  .desktop\:margin-left-205{
+    margin-left:1.25rem;
+  }
+  .desktop\:margin-x-3{
+    margin-left:1.5rem;
+    margin-right:1.5rem;
+  }
+  .desktop\:margin-right-3{
+    margin-right:1.5rem;
+  }
+  .desktop\:margin-left-3{
+    margin-left:1.5rem;
+  }
+  .desktop\:margin-x-neg-1px{
+    margin-left:-1px;
+    margin-right:-1px;
+  }
+  .desktop\:margin-right-neg-1px{
+    margin-right:-1px;
+  }
+  .desktop\:margin-left-neg-1px{
+    margin-left:-1px;
+  }
+  .desktop\:margin-x-neg-2px{
+    margin-left:-2px;
+    margin-right:-2px;
+  }
+  .desktop\:margin-right-neg-2px{
+    margin-right:-2px;
+  }
+  .desktop\:margin-left-neg-2px{
+    margin-left:-2px;
+  }
+  .desktop\:margin-x-neg-05{
+    margin-left:-0.25rem;
+    margin-right:-0.25rem;
+  }
+  .desktop\:margin-right-neg-05{
+    margin-right:-0.25rem;
+  }
+  .desktop\:margin-left-neg-05{
+    margin-left:-0.25rem;
+  }
+  .desktop\:margin-x-neg-1{
+    margin-left:-0.5rem;
+    margin-right:-0.5rem;
+  }
+  .desktop\:margin-right-neg-1{
+    margin-right:-0.5rem;
+  }
+  .desktop\:margin-left-neg-1{
+    margin-left:-0.5rem;
+  }
+  .desktop\:margin-x-neg-105{
+    margin-left:-0.75rem;
+    margin-right:-0.75rem;
+  }
+  .desktop\:margin-right-neg-105{
+    margin-right:-0.75rem;
+  }
+  .desktop\:margin-left-neg-105{
+    margin-left:-0.75rem;
+  }
+  .desktop\:margin-x-neg-2{
+    margin-left:-1rem;
+    margin-right:-1rem;
+  }
+  .desktop\:margin-right-neg-2{
+    margin-right:-1rem;
+  }
+  .desktop\:margin-left-neg-2{
+    margin-left:-1rem;
+  }
+  .desktop\:margin-x-neg-205{
+    margin-left:-1.25rem;
+    margin-right:-1.25rem;
+  }
+  .desktop\:margin-right-neg-205{
+    margin-right:-1.25rem;
+  }
+  .desktop\:margin-left-neg-205{
+    margin-left:-1.25rem;
+  }
+  .desktop\:margin-x-neg-3{
+    margin-left:-1.5rem;
+    margin-right:-1.5rem;
+  }
+  .desktop\:margin-right-neg-3{
+    margin-right:-1.5rem;
+  }
+  .desktop\:margin-left-neg-3{
+    margin-left:-1.5rem;
+  }
+  .desktop\:margin-x-neg-4{
+    margin-left:-2rem;
+    margin-right:-2rem;
+  }
+  .desktop\:margin-right-neg-4{
+    margin-right:-2rem;
+  }
+  .desktop\:margin-left-neg-4{
+    margin-left:-2rem;
+  }
+  .desktop\:margin-x-neg-5{
+    margin-left:-2.5rem;
+    margin-right:-2.5rem;
+  }
+  .desktop\:margin-right-neg-5{
+    margin-right:-2.5rem;
+  }
+  .desktop\:margin-left-neg-5{
+    margin-left:-2.5rem;
+  }
+  .desktop\:margin-x-neg-6{
+    margin-left:-3rem;
+    margin-right:-3rem;
+  }
+  .desktop\:margin-right-neg-6{
+    margin-right:-3rem;
+  }
+  .desktop\:margin-left-neg-6{
+    margin-left:-3rem;
+  }
+  .desktop\:margin-x-neg-7{
+    margin-left:-3.5rem;
+    margin-right:-3.5rem;
+  }
+  .desktop\:margin-right-neg-7{
+    margin-right:-3.5rem;
+  }
+  .desktop\:margin-left-neg-7{
+    margin-left:-3.5rem;
+  }
+  .desktop\:margin-x-neg-8{
+    margin-left:-4rem;
+    margin-right:-4rem;
+  }
+  .desktop\:margin-right-neg-8{
+    margin-right:-4rem;
+  }
+  .desktop\:margin-left-neg-8{
+    margin-left:-4rem;
+  }
+  .desktop\:margin-x-neg-9{
+    margin-left:-4.5rem;
+    margin-right:-4.5rem;
+  }
+  .desktop\:margin-right-neg-9{
+    margin-right:-4.5rem;
+  }
+  .desktop\:margin-left-neg-9{
+    margin-left:-4.5rem;
+  }
+  .desktop\:margin-x-neg-10{
+    margin-left:-5rem;
+    margin-right:-5rem;
+  }
+  .desktop\:margin-right-neg-10{
+    margin-right:-5rem;
+  }
+  .desktop\:margin-left-neg-10{
+    margin-left:-5rem;
+  }
+  .desktop\:margin-x-neg-15{
+    margin-left:-7.5rem;
+    margin-right:-7.5rem;
+  }
+  .desktop\:margin-right-neg-15{
+    margin-right:-7.5rem;
+  }
+  .desktop\:margin-left-neg-15{
+    margin-left:-7.5rem;
+  }
+  .desktop\:margin-x-4{
+    margin-left:2rem;
+    margin-right:2rem;
+  }
+  .desktop\:margin-right-4{
+    margin-right:2rem;
+  }
+  .desktop\:margin-left-4{
+    margin-left:2rem;
+  }
+  .desktop\:margin-x-5{
+    margin-left:2.5rem;
+    margin-right:2.5rem;
+  }
+  .desktop\:margin-right-5{
+    margin-right:2.5rem;
+  }
+  .desktop\:margin-left-5{
+    margin-left:2.5rem;
+  }
+  .desktop\:margin-x-6{
+    margin-left:3rem;
+    margin-right:3rem;
+  }
+  .desktop\:margin-right-6{
+    margin-right:3rem;
+  }
+  .desktop\:margin-left-6{
+    margin-left:3rem;
+  }
+  .desktop\:margin-x-7{
+    margin-left:3.5rem;
+    margin-right:3.5rem;
+  }
+  .desktop\:margin-right-7{
+    margin-right:3.5rem;
+  }
+  .desktop\:margin-left-7{
+    margin-left:3.5rem;
+  }
+  .desktop\:margin-x-8{
+    margin-left:4rem;
+    margin-right:4rem;
+  }
+  .desktop\:margin-right-8{
+    margin-right:4rem;
+  }
+  .desktop\:margin-left-8{
+    margin-left:4rem;
+  }
+  .desktop\:margin-x-9{
+    margin-left:4.5rem;
+    margin-right:4.5rem;
+  }
+  .desktop\:margin-right-9{
+    margin-right:4.5rem;
+  }
+  .desktop\:margin-left-9{
+    margin-left:4.5rem;
+  }
+  .desktop\:margin-x-10{
+    margin-left:5rem;
+    margin-right:5rem;
+  }
+  .desktop\:margin-right-10{
+    margin-right:5rem;
+  }
+  .desktop\:margin-left-10{
+    margin-left:5rem;
+  }
+  .desktop\:margin-x-15{
+    margin-left:7.5rem;
+    margin-right:7.5rem;
+  }
+  .desktop\:margin-right-15{
+    margin-right:7.5rem;
+  }
+  .desktop\:margin-left-15{
+    margin-left:7.5rem;
+  }
+  .desktop\:margin-x-card{
+    margin-left:10rem;
+    margin-right:10rem;
+  }
+  .desktop\:margin-right-card{
+    margin-right:10rem;
+  }
+  .desktop\:margin-left-card{
+    margin-left:10rem;
+  }
+  .desktop\:margin-x-card-lg{
+    margin-left:15rem;
+    margin-right:15rem;
+  }
+  .desktop\:margin-right-card-lg{
+    margin-right:15rem;
+  }
+  .desktop\:margin-left-card-lg{
+    margin-left:15rem;
+  }
+  .desktop\:margin-x-mobile{
+    margin-left:20rem;
+    margin-right:20rem;
+  }
+  .desktop\:margin-right-mobile{
+    margin-right:20rem;
+  }
+  .desktop\:margin-left-mobile{
+    margin-left:20rem;
+  }
+  .desktop\:margin-x-05em{
+    margin-left:0.5em;
+    margin-right:0.5em;
+  }
+  .desktop\:margin-right-05em{
+    margin-right:0.5em;
+  }
+  .desktop\:margin-left-05em{
+    margin-left:0.5em;
+  }
+  .desktop\:margin-x-1em{
+    margin-left:1em;
+    margin-right:1em;
+  }
+  .desktop\:margin-right-1em{
+    margin-right:1em;
+  }
+  .desktop\:margin-left-1em{
+    margin-left:1em;
+  }
+  .desktop\:margin-x-105em{
+    margin-left:1.5em;
+    margin-right:1.5em;
+  }
+  .desktop\:margin-right-105em{
+    margin-right:1.5em;
+  }
+  .desktop\:margin-left-105em{
+    margin-left:1.5em;
+  }
+  .desktop\:margin-x-2em{
+    margin-left:2em;
+    margin-right:2em;
+  }
+  .desktop\:margin-right-2em{
+    margin-right:2em;
+  }
+  .desktop\:margin-left-2em{
+    margin-left:2em;
+  }
+  .desktop\:margin-x-0{
+    margin-left:0;
+    margin-right:0;
+  }
+  .desktop\:margin-right-0{
+    margin-right:0;
+  }
+  .desktop\:margin-left-0{
+    margin-left:0;
+  }
+  .desktop\:margin-x-auto{
+    margin-left:auto;
+    margin-right:auto;
+  }
+  .desktop\:margin-right-auto{
+    margin-right:auto;
+  }
+  .desktop\:margin-left-auto{
+    margin-left:auto;
+  }
+  .desktop\:measure-1{
+    max-width:44ex;
+  }
+  .desktop\:measure-2{
+    max-width:60ex;
+  }
+  .desktop\:measure-3{
+    max-width:64ex;
+  }
+  .desktop\:measure-4{
+    max-width:68ex;
+  }
+  .desktop\:measure-5{
+    max-width:72ex;
+  }
+  .desktop\:measure-6{
+    max-width:88ex;
+  }
+  .desktop\:measure-none{
+    max-width:none;
+  }
+  .desktop\:order-first{
+    order:-1;
+  }
+  .desktop\:order-last{
+    order:999;
+  }
+  .desktop\:order-initial{
+    order:initial;
+  }
+  .desktop\:order-0{
+    order:0;
+  }
+  .desktop\:order-1{
+    order:1;
+  }
+  .desktop\:order-2{
+    order:2;
+  }
+  .desktop\:order-3{
+    order:3;
+  }
+  .desktop\:order-4{
+    order:4;
+  }
+  .desktop\:order-5{
+    order:5;
+  }
+  .desktop\:order-6{
+    order:6;
+  }
+  .desktop\:order-7{
+    order:7;
+  }
+  .desktop\:order-8{
+    order:8;
+  }
+  .desktop\:order-9{
+    order:9;
+  }
+  .desktop\:order-10{
+    order:10;
+  }
+  .desktop\:order-11{
+    order:11;
+  }
+  .desktop\:padding-1px{
+    padding:1px;
+  }
+  .desktop\:padding-y-1px{
+    padding-top:1px;
+    padding-bottom:1px;
+  }
+  .desktop\:padding-x-1px{
+    padding-left:1px;
+    padding-right:1px;
+  }
+  .desktop\:padding-top-1px{
+    padding-top:1px;
+  }
+  .desktop\:padding-right-1px{
+    padding-right:1px;
+  }
+  .desktop\:padding-bottom-1px{
+    padding-bottom:1px;
+  }
+  .desktop\:padding-left-1px{
+    padding-left:1px;
+  }
+  .desktop\:padding-2px{
+    padding:2px;
+  }
+  .desktop\:padding-y-2px{
+    padding-top:2px;
+    padding-bottom:2px;
+  }
+  .desktop\:padding-x-2px{
+    padding-left:2px;
+    padding-right:2px;
+  }
+  .desktop\:padding-top-2px{
+    padding-top:2px;
+  }
+  .desktop\:padding-right-2px{
+    padding-right:2px;
+  }
+  .desktop\:padding-bottom-2px{
+    padding-bottom:2px;
+  }
+  .desktop\:padding-left-2px{
+    padding-left:2px;
+  }
+  .desktop\:padding-05{
+    padding:0.25rem;
+  }
+  .desktop\:padding-y-05{
+    padding-top:0.25rem;
+    padding-bottom:0.25rem;
+  }
+  .desktop\:padding-x-05{
+    padding-left:0.25rem;
+    padding-right:0.25rem;
+  }
+  .desktop\:padding-top-05{
+    padding-top:0.25rem;
+  }
+  .desktop\:padding-right-05{
+    padding-right:0.25rem;
+  }
+  .desktop\:padding-bottom-05{
+    padding-bottom:0.25rem;
+  }
+  .desktop\:padding-left-05{
+    padding-left:0.25rem;
+  }
+  .desktop\:padding-1{
+    padding:0.5rem;
+  }
+  .desktop\:padding-y-1{
+    padding-top:0.5rem;
+    padding-bottom:0.5rem;
+  }
+  .desktop\:padding-x-1{
+    padding-left:0.5rem;
+    padding-right:0.5rem;
+  }
+  .desktop\:padding-top-1{
+    padding-top:0.5rem;
+  }
+  .desktop\:padding-right-1{
+    padding-right:0.5rem;
+  }
+  .desktop\:padding-bottom-1{
+    padding-bottom:0.5rem;
+  }
+  .desktop\:padding-left-1{
+    padding-left:0.5rem;
+  }
+  .desktop\:padding-105{
+    padding:0.75rem;
+  }
+  .desktop\:padding-y-105{
+    padding-top:0.75rem;
+    padding-bottom:0.75rem;
+  }
+  .desktop\:padding-x-105{
+    padding-left:0.75rem;
+    padding-right:0.75rem;
+  }
+  .desktop\:padding-top-105{
+    padding-top:0.75rem;
+  }
+  .desktop\:padding-right-105{
+    padding-right:0.75rem;
+  }
+  .desktop\:padding-bottom-105{
+    padding-bottom:0.75rem;
+  }
+  .desktop\:padding-left-105{
+    padding-left:0.75rem;
+  }
+  .desktop\:padding-2{
+    padding:1rem;
+  }
+  .desktop\:padding-y-2{
+    padding-top:1rem;
+    padding-bottom:1rem;
+  }
+  .desktop\:padding-x-2{
+    padding-left:1rem;
+    padding-right:1rem;
+  }
+  .desktop\:padding-top-2{
+    padding-top:1rem;
+  }
+  .desktop\:padding-right-2{
+    padding-right:1rem;
+  }
+  .desktop\:padding-bottom-2{
+    padding-bottom:1rem;
+  }
+  .desktop\:padding-left-2{
+    padding-left:1rem;
+  }
+  .desktop\:padding-205{
+    padding:1.25rem;
+  }
+  .desktop\:padding-y-205{
+    padding-top:1.25rem;
+    padding-bottom:1.25rem;
+  }
+  .desktop\:padding-x-205{
+    padding-left:1.25rem;
+    padding-right:1.25rem;
+  }
+  .desktop\:padding-top-205{
+    padding-top:1.25rem;
+  }
+  .desktop\:padding-right-205{
+    padding-right:1.25rem;
+  }
+  .desktop\:padding-bottom-205{
+    padding-bottom:1.25rem;
+  }
+  .desktop\:padding-left-205{
+    padding-left:1.25rem;
+  }
+  .desktop\:padding-3{
+    padding:1.5rem;
+  }
+  .desktop\:padding-y-3{
+    padding-top:1.5rem;
+    padding-bottom:1.5rem;
+  }
+  .desktop\:padding-x-3{
+    padding-left:1.5rem;
+    padding-right:1.5rem;
+  }
+  .desktop\:padding-top-3{
+    padding-top:1.5rem;
+  }
+  .desktop\:padding-right-3{
+    padding-right:1.5rem;
+  }
+  .desktop\:padding-bottom-3{
+    padding-bottom:1.5rem;
+  }
+  .desktop\:padding-left-3{
+    padding-left:1.5rem;
+  }
+  .desktop\:padding-4{
+    padding:2rem;
+  }
+  .desktop\:padding-y-4{
+    padding-top:2rem;
+    padding-bottom:2rem;
+  }
+  .desktop\:padding-x-4{
+    padding-left:2rem;
+    padding-right:2rem;
+  }
+  .desktop\:padding-top-4{
+    padding-top:2rem;
+  }
+  .desktop\:padding-right-4{
+    padding-right:2rem;
+  }
+  .desktop\:padding-bottom-4{
+    padding-bottom:2rem;
+  }
+  .desktop\:padding-left-4{
+    padding-left:2rem;
+  }
+  .desktop\:padding-5{
+    padding:2.5rem;
+  }
+  .desktop\:padding-y-5{
+    padding-top:2.5rem;
+    padding-bottom:2.5rem;
+  }
+  .desktop\:padding-x-5{
+    padding-left:2.5rem;
+    padding-right:2.5rem;
+  }
+  .desktop\:padding-top-5{
+    padding-top:2.5rem;
+  }
+  .desktop\:padding-right-5{
+    padding-right:2.5rem;
+  }
+  .desktop\:padding-bottom-5{
+    padding-bottom:2.5rem;
+  }
+  .desktop\:padding-left-5{
+    padding-left:2.5rem;
+  }
+  .desktop\:padding-6{
+    padding:3rem;
+  }
+  .desktop\:padding-y-6{
+    padding-top:3rem;
+    padding-bottom:3rem;
+  }
+  .desktop\:padding-x-6{
+    padding-left:3rem;
+    padding-right:3rem;
+  }
+  .desktop\:padding-top-6{
+    padding-top:3rem;
+  }
+  .desktop\:padding-right-6{
+    padding-right:3rem;
+  }
+  .desktop\:padding-bottom-6{
+    padding-bottom:3rem;
+  }
+  .desktop\:padding-left-6{
+    padding-left:3rem;
+  }
+  .desktop\:padding-7{
+    padding:3.5rem;
+  }
+  .desktop\:padding-y-7{
+    padding-top:3.5rem;
+    padding-bottom:3.5rem;
+  }
+  .desktop\:padding-x-7{
+    padding-left:3.5rem;
+    padding-right:3.5rem;
+  }
+  .desktop\:padding-top-7{
+    padding-top:3.5rem;
+  }
+  .desktop\:padding-right-7{
+    padding-right:3.5rem;
+  }
+  .desktop\:padding-bottom-7{
+    padding-bottom:3.5rem;
+  }
+  .desktop\:padding-left-7{
+    padding-left:3.5rem;
+  }
+  .desktop\:padding-8{
+    padding:4rem;
+  }
+  .desktop\:padding-y-8{
+    padding-top:4rem;
+    padding-bottom:4rem;
+  }
+  .desktop\:padding-x-8{
+    padding-left:4rem;
+    padding-right:4rem;
+  }
+  .desktop\:padding-top-8{
+    padding-top:4rem;
+  }
+  .desktop\:padding-right-8{
+    padding-right:4rem;
+  }
+  .desktop\:padding-bottom-8{
+    padding-bottom:4rem;
+  }
+  .desktop\:padding-left-8{
+    padding-left:4rem;
+  }
+  .desktop\:padding-9{
+    padding:4.5rem;
+  }
+  .desktop\:padding-y-9{
+    padding-top:4.5rem;
+    padding-bottom:4.5rem;
+  }
+  .desktop\:padding-x-9{
+    padding-left:4.5rem;
+    padding-right:4.5rem;
+  }
+  .desktop\:padding-top-9{
+    padding-top:4.5rem;
+  }
+  .desktop\:padding-right-9{
+    padding-right:4.5rem;
+  }
+  .desktop\:padding-bottom-9{
+    padding-bottom:4.5rem;
+  }
+  .desktop\:padding-left-9{
+    padding-left:4.5rem;
+  }
+  .desktop\:padding-10{
+    padding:5rem;
+  }
+  .desktop\:padding-y-10{
+    padding-top:5rem;
+    padding-bottom:5rem;
+  }
+  .desktop\:padding-x-10{
+    padding-left:5rem;
+    padding-right:5rem;
+  }
+  .desktop\:padding-top-10{
+    padding-top:5rem;
+  }
+  .desktop\:padding-right-10{
+    padding-right:5rem;
+  }
+  .desktop\:padding-bottom-10{
+    padding-bottom:5rem;
+  }
+  .desktop\:padding-left-10{
+    padding-left:5rem;
+  }
+  .desktop\:padding-15{
+    padding:7.5rem;
+  }
+  .desktop\:padding-y-15{
+    padding-top:7.5rem;
+    padding-bottom:7.5rem;
+  }
+  .desktop\:padding-x-15{
+    padding-left:7.5rem;
+    padding-right:7.5rem;
+  }
+  .desktop\:padding-top-15{
+    padding-top:7.5rem;
+  }
+  .desktop\:padding-right-15{
+    padding-right:7.5rem;
+  }
+  .desktop\:padding-bottom-15{
+    padding-bottom:7.5rem;
+  }
+  .desktop\:padding-left-15{
+    padding-left:7.5rem;
+  }
+  .desktop\:padding-0{
+    padding:0;
+  }
+  .desktop\:padding-y-0{
+    padding-top:0;
+    padding-bottom:0;
+  }
+  .desktop\:padding-x-0{
+    padding-left:0;
+    padding-right:0;
+  }
+  .desktop\:padding-top-0{
+    padding-top:0;
+  }
+  .desktop\:padding-right-0{
+    padding-right:0;
+  }
+  .desktop\:padding-bottom-0{
+    padding-bottom:0;
+  }
+  .desktop\:padding-left-0{
+    padding-left:0;
+  }
+  .desktop\:width-1px{
+    width:1px;
+  }
+  .desktop\:width-2px{
+    width:2px;
+  }
+  .desktop\:width-05{
+    width:0.25rem;
+  }
+  .desktop\:width-1{
+    width:0.5rem;
+  }
+  .desktop\:width-105{
+    width:0.75rem;
+  }
+  .desktop\:width-2{
+    width:1rem;
+  }
+  .desktop\:width-205{
+    width:1.25rem;
+  }
+  .desktop\:width-3{
+    width:1.5rem;
+  }
+  .desktop\:width-4{
+    width:2rem;
+  }
+  .desktop\:width-5{
+    width:2.5rem;
+  }
+  .desktop\:width-6{
+    width:3rem;
+  }
+  .desktop\:width-7{
+    width:3.5rem;
+  }
+  .desktop\:width-8{
+    width:4rem;
+  }
+  .desktop\:width-9{
+    width:4.5rem;
+  }
+  .desktop\:width-10{
+    width:5rem;
+  }
+  .desktop\:width-15{
+    width:7.5rem;
+  }
+  .desktop\:width-card{
+    width:10rem;
+  }
+  .desktop\:width-card-lg{
+    width:15rem;
+  }
+  .desktop\:width-mobile{
+    width:20rem;
+  }
+  .desktop\:width-mobile-lg{
+    width:30rem;
+  }
+  .desktop\:width-tablet{
+    width:40rem;
+  }
+  .desktop\:width-tablet-lg{
+    width:55rem;
+  }
+  .desktop\:width-desktop{
+    width:64rem;
+  }
+  .desktop\:width-desktop-lg{
+    width:75rem;
+  }
+  .desktop\:width-widescreen{
+    width:87.5rem;
+  }
+  .desktop\:width-0{
+    width:0;
+  }
+  .desktop\:width-full{
+    width:100%;
+  }
+  .desktop\:width-auto{
+    width:auto;
+  }
+}
\ No newline at end of file
diff --git a/html/matt-chat/uswds/css/uswds.min.css b/html/matt-chat/uswds/css/uswds.min.css
new file mode 100644
index 0000000..2096eab
--- /dev/null
+++ b/html/matt-chat/uswds/css/uswds.min.css
@@ -0,0 +1,4 @@
+@charset "UTF-8";
+/*! uswds v3.11.0 */
+@keyframes slidein-left{0%{transform:translateX(15rem)}to{transform:translateX(0)}}html{line-height:1.15;-webkit-text-size-adjust:100%;box-sizing:border-box;font-feature-settings:"kern"1;font-kerning:normal;font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:100%}body{margin:0;color:#1b1b1b;background-color:#fff;overflow-x:hidden}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;color:inherit}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}legend{padding:0}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}.usa-checkbox__label,.usa-combo-box__input,.usa-combo-box__list,.usa-fieldset,.usa-hint,.usa-input,.usa-input-group,.usa-radio__label,.usa-range,.usa-select,.usa-textarea{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.06rem;line-height:1.3}.usa-range,.usa-textarea{border-radius:0;color:#1b1b1b;display:block;margin-top:.5rem;max-width:30rem;padding:.5rem}.usa-textarea{border-width:1px;border-color:#565c65;border-style:solid;-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%}.usa-range{height:2.5rem}.usa-input-group{-webkit-appearance:none;-moz-appearance:none;appearance:none}.usa-combo-box__input,.usa-input,.usa-input-group,.usa-select{border-width:1px;border-color:#565c65;border-style:solid;border-radius:0;color:#1b1b1b;display:block;height:2.5rem;margin-top:.5rem;max-width:30rem;padding:.5rem;width:100%}.usa-input{-webkit-appearance:none;-moz-appearance:none;appearance:none}@font-face{font-family:"Roboto Mono Web";font-style:normal;font-weight:300;font-display:fallback;src:url(../fonts/roboto-mono/roboto-mono-v5-latin-300.woff2)format("woff2")}@font-face{font-family:"Roboto Mono Web";font-style:normal;font-weight:400;font-display:fallback;src:url(../fonts/roboto-mono/roboto-mono-v5-latin-regular.woff2)format("woff2")}@font-face{font-family:"Roboto Mono Web";font-style:normal;font-weight:700;font-display:fallback;src:url(../fonts/roboto-mono/roboto-mono-v5-latin-700.woff2)format("woff2")}@font-face{font-family:"Roboto Mono Web";font-style:italic;font-weight:300;font-display:fallback;src:url(../fonts/roboto-mono/roboto-mono-v5-latin-300italic.woff2)format("woff2")}@font-face{font-family:"Roboto Mono Web";font-style:italic;font-weight:400;font-display:fallback;src:url(../fonts/roboto-mono/roboto-mono-v5-latin-italic.woff2)format("woff2")}@font-face{font-family:"Roboto Mono Web";font-style:italic;font-weight:700;font-display:fallback;src:url(../fonts/roboto-mono/roboto-mono-v5-latin-700italic.woff2)format("woff2")}@font-face{font-family:"Source Sans Pro Web";font-style:normal;font-weight:300;font-display:fallback;src:url(../fonts/source-sans-pro/sourcesanspro-light-webfont.woff2)format("woff2")}@font-face{font-family:"Source Sans Pro Web";font-style:normal;font-weight:400;font-display:fallback;src:url(../fonts/source-sans-pro/sourcesanspro-regular-webfont.woff2)format("woff2")}@font-face{font-family:"Source Sans Pro Web";font-style:normal;font-weight:700;font-display:fallback;src:url(../fonts/source-sans-pro/sourcesanspro-bold-webfont.woff2)format("woff2")}@font-face{font-family:"Source Sans Pro Web";font-style:italic;font-weight:300;font-display:fallback;src:url(../fonts/source-sans-pro/sourcesanspro-lightitalic-webfont.woff2)format("woff2")}@font-face{font-family:"Source Sans Pro Web";font-style:italic;font-weight:400;font-display:fallback;src:url(../fonts/source-sans-pro/sourcesanspro-italic-webfont.woff2)format("woff2")}@font-face{font-family:"Source Sans Pro Web";font-style:italic;font-weight:700;font-display:fallback;src:url(../fonts/source-sans-pro/sourcesanspro-bolditalic-webfont.woff2)format("woff2")}@font-face{font-family:"Merriweather Web";font-style:normal;font-weight:300;font-display:fallback;src:url(../fonts/merriweather/Latin-Merriweather-Light.woff2)format("woff2")}@font-face{font-family:"Merriweather Web";font-style:normal;font-weight:400;font-display:fallback;src:url(../fonts/merriweather/Latin-Merriweather-Regular.woff2)format("woff2")}@font-face{font-family:"Merriweather Web";font-style:normal;font-weight:700;font-display:fallback;src:url(../fonts/merriweather/Latin-Merriweather-Bold.woff2)format("woff2")}@font-face{font-family:"Merriweather Web";font-style:italic;font-weight:300;font-display:fallback;src:url(../fonts/merriweather/Latin-Merriweather-LightItalic.woff2)format("woff2")}@font-face{font-family:"Merriweather Web";font-style:italic;font-weight:400;font-display:fallback;src:url(../fonts/merriweather/Latin-Merriweather-Italic.woff2)format("woff2")}@font-face{font-family:"Merriweather Web";font-style:italic;font-weight:700;font-display:fallback;src:url(../fonts/merriweather/Latin-Merriweather-BoldItalic.woff2)format("woff2")}button:not([disabled]):focus,input:not([disabled]):focus,select:not([disabled]):focus,textarea:not([disabled]):focus{outline:.25rem solid #2491ff;outline-offset:0}[contentEditable=true]:focus,[href]:focus,[tabindex]:focus,iframe:focus{outline:.25rem solid #2491ff;outline-offset:0}img{max-width:100%}.usa-media-link{display:inline-block;line-height:0}*,::after,::before{box-sizing:inherit}address,cite,dfn,var{font-style:normal}.usa-focus{outline:.25rem solid #2491ff;outline-offset:0}.usa-sr-only{position:absolute;left:-999em;right:auto}.usa-content ol:not(.usa-accordion):not(.usa-accordion--bordered),.usa-content p,.usa-content ul:not(.usa-accordion):not(.usa-accordion--bordered){max-width:68ex}.usa-dark-background{background-color:#3d4551}.usa-dark-background p,.usa-dark-background span{color:#fff}.usa-dark-background a,.usa-dark-background a:visited{color:#dfe1e2}.usa-dark-background a:active,.usa-dark-background a:hover{color:#f0f0f0}.usa-display{margin-top:0;clear:both;font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:1.34rem;line-height:1.2;font-weight:700;margin-bottom:0}*+.usa-display{margin-top:1.5em}.usa-display+*{margin-top:1em}@media all and (min-width:30em){.usa-display{margin-bottom:0;margin-top:0;clear:both;font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:2.44rem;line-height:1.2;font-weight:700}*+.usa-display{margin-top:1.5em}.usa-display+*{margin-top:1em}}@media all and (min-width:40em){.usa-display{margin-bottom:0;margin-top:0;clear:both;font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:2.93rem;line-height:1.2;font-weight:700}*+.usa-display{margin-top:1.5em}.usa-display+*{margin-top:1em}}.usa-intro{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:1.34rem;line-height:1.8;font-weight:400;max-width:88ex}.usa-icon{display:inline-block;fill:currentColor;height:1em;position:relative;width:1em}.usa-icon--size-3{height:1.5rem;width:1.5rem}.usa-icon--size-4{height:2rem;width:2rem}.usa-icon--size-5{height:2.5rem;width:2.5rem}.usa-icon--size-6{height:3rem;width:3rem}.usa-icon--size-7{height:3.5rem;width:3.5rem}.usa-icon--size-8{height:4rem;width:4rem}.usa-icon--size-9{height:4.5rem;width:4.5rem}.usa-footer__return-to-top a,.usa-footer__secondary-link a,.usa-link{color:#005ea2;text-decoration:underline}.usa-link:visited{color:#54278f}.usa-link:hover{color:#1a4480}.usa-link:active{color:#162e51}.usa-link:focus{outline:.25rem solid #2491ff;outline-offset:0}.usa-link--external,.usa-link--external.usa-link--alt{display:inline}.usa-link--external::before{position:absolute;left:-999em;right:auto;content:"External."}.usa-link--external.usa-link--alt[target=_blank]::before,.usa-link--external[target=_blank]::before{position:absolute;left:-999em;right:auto;content:"External, opens in a new tab."}.usa-link--external::after{background-image:url(../img/usa-icons/launch.svg);background-repeat:no-repeat;background-position:center center;background-size:1.75ex 1.75ex;height:1.75ex;width:1.75ex;content:"";display:inline;margin-top:.7ex;margin-left:2px;padding-left:1.75ex;vertical-align:middle}@supports ((-webkit-mask:url()) or (mask:url())){.usa-link--external::after{background:0 0;background-color:currentColor;-webkit-mask-image:url(../img/usa-icons/launch.svg),linear-gradient(transparent,transparent);mask-image:url(../img/usa-icons/launch.svg),linear-gradient(transparent,transparent);-webkit-mask-position:center center;mask-position:center center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:1.75ex 1.75ex;mask-size:1.75ex 1.75ex}}.usa-link--external.usa-link--alt::before{position:absolute;left:-999em;right:auto;content:"External."}.usa-link--external.usa-link--alt::after{background-image:url(../img/usa-icons-bg/launch--white.svg);background-repeat:no-repeat;background-position:center center;background-size:1.75ex 1.75ex;height:1.75ex;width:1.75ex;content:"";display:inline;margin-top:.7ex;margin-left:2px;padding-left:1.75ex;vertical-align:middle}@supports ((-webkit-mask:url()) or (mask:url())){.usa-link--external.usa-link--alt::after{background:0 0;background-color:currentColor;-webkit-mask-image:url(../img/usa-icons/launch.svg),linear-gradient(transparent,transparent);mask-image:url(../img/usa-icons/launch.svg),linear-gradient(transparent,transparent);-webkit-mask-position:center center;mask-position:center center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:1.75ex 1.75ex;mask-size:1.75ex 1.75ex}}.usa-list{margin-bottom:1em;margin-top:1em;line-height:1.5;padding-left:3ch}.usa-list li:last-child,.usa-list:last-child,.usa-prose>ol li:last-child,.usa-prose>ol:last-child,.usa-prose>ul li:last-child,.usa-prose>ul:last-child{margin-bottom:0}.usa-list ol,.usa-list ul,.usa-prose>ol ol,.usa-prose>ol ul,.usa-prose>ul ol,.usa-prose>ul ul{margin-top:.25em}.usa-list li,.usa-prose>ol li,.usa-prose>ul li{margin-bottom:.25em;max-width:68ex}.usa-list--unstyled,.usa-prose .usa-list--unstyled{margin-bottom:0;margin-top:0;list-style-type:none;padding-left:0}.usa-accordion>li,.usa-breadcrumb__list>li,.usa-collection__item>li,.usa-collection__meta>li,.usa-icon-list>li,.usa-in-page-nav__list>li,.usa-language__submenu-list>li,.usa-language__submenu>li,.usa-list--unstyled>li,.usa-paragraph,.usa-prose .usa-collection__item>li,.usa-prose .usa-icon-list>li,.usa-prose .usa-list--unstyled>li{margin-bottom:0;max-width:unset}.usa-paragraph{line-height:1.5;max-width:68ex;margin-top:0}*+.usa-paragraph,.usa-paragraph+*{margin-top:1em}.usa-prose,.usa-prose>table,.usa-prose>table caption,.usa-table caption{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif}.usa-prose>ol,.usa-prose>ul{margin-bottom:1em;margin-top:1em;line-height:1.5;padding-left:3ch}.usa-prose>table,.usa-prose>table caption,.usa-table caption{text-align:left}.usa-prose,.usa-prose>table{font-size:1.06rem;line-height:1.5}.usa-prose>table{border-collapse:collapse;border-spacing:0;color:#1b1b1b;margin:1.25rem 0}.usa-prose>table tfoot td,.usa-prose>table th,.usa-prose>table thead td{background-clip:padding-box;line-height:1.3;background-color:#dfe1e2;color:#1b1b1b}.usa-prose>table td,.usa-prose>table th{border:1px solid #1b1b1b;padding:.5rem 1rem}.usa-prose>table td{background-color:#fff;font-weight:400}.usa-prose>table caption,.usa-table caption{font-size:1rem;font-weight:700;margin-bottom:.75rem}.usa-prose>table th[data-sortable]{padding-right:2.5rem;position:relative}.usa-prose>table th[data-sortable]::after{border-bottom-color:transparent;border-bottom-style:solid;border-bottom-width:1px;bottom:0;content:"";height:0;left:0;position:absolute;width:100%}.usa-prose>table th[data-sortable]:not([aria-sort]) .usa-table__header__button,.usa-prose>table th[data-sortable][aria-sort=none] .usa-table__header__button{background-color:transparent;border:0;border-radius:0;box-shadow:none;font-weight:400;justify-content:normal;padding:0;width:auto;height:2rem;width:2rem;background-position:center center;background-size:1.5rem;color:#71767a;cursor:pointer;display:inline-block;margin:0;position:absolute;right:.25rem;text-align:center;text-decoration:none;top:50%;transform:translate(0,-50%)}.usa-prose>table th[data-sortable]:not([aria-sort]) .usa-table__header__button:visited,.usa-prose>table th[data-sortable][aria-sort=none] .usa-table__header__button:visited{color:#54278f}.usa-prose>table th[data-sortable]:not([aria-sort]) .usa-table__header__button:hover,.usa-prose>table th[data-sortable][aria-sort=none] .usa-table__header__button:hover{color:#1a4480}.usa-prose>table th[data-sortable]:not([aria-sort]) .usa-table__header__button:active,.usa-prose>table th[data-sortable][aria-sort=none] .usa-table__header__button:active{color:#162e51}.usa-prose>table th[data-sortable]:not([aria-sort]) .usa-table__header__button:focus,.usa-prose>table th[data-sortable][aria-sort=none] .usa-table__header__button:focus{outline:.25rem solid #2491ff;outline-offset:0}.usa-prose>table th[data-sortable]:not([aria-sort]) .usa-table__header__button.usa-button--active,.usa-prose>table th[data-sortable]:not([aria-sort]) .usa-table__header__button.usa-button--disabled,.usa-prose>table th[data-sortable]:not([aria-sort]) .usa-table__header__button.usa-button--hover,.usa-prose>table th[data-sortable]:not([aria-sort]) .usa-table__header__button:active,.usa-prose>table th[data-sortable]:not([aria-sort]) .usa-table__header__button:disabled,.usa-prose>table th[data-sortable]:not([aria-sort]) .usa-table__header__button:disabled.usa-button--active,.usa-prose>table th[data-sortable]:not([aria-sort]) .usa-table__header__button:disabled.usa-button--hover,.usa-prose>table th[data-sortable]:not([aria-sort]) .usa-table__header__button:disabled.usa-focus,.usa-prose>table th[data-sortable]:not([aria-sort]) .usa-table__header__button:disabled:active,.usa-prose>table th[data-sortable]:not([aria-sort]) .usa-table__header__button:disabled:focus,.usa-prose>table th[data-sortable]:not([aria-sort]) .usa-table__header__button:disabled:hover,.usa-prose>table th[data-sortable]:not([aria-sort]) .usa-table__header__button:hover,.usa-prose>table th[data-sortable]:not([aria-sort]) .usa-table__header__button[aria-disabled=true],.usa-prose>table th[data-sortable]:not([aria-sort]) .usa-table__header__button[aria-disabled=true].usa-button--active,.usa-prose>table th[data-sortable]:not([aria-sort]) .usa-table__header__button[aria-disabled=true].usa-button--hover,.usa-prose>table th[data-sortable]:not([aria-sort]) .usa-table__header__button[aria-disabled=true].usa-focus,.usa-prose>table th[data-sortable]:not([aria-sort]) .usa-table__header__button[aria-disabled=true]:active,.usa-prose>table th[data-sortable]:not([aria-sort]) .usa-table__header__button[aria-disabled=true]:focus,.usa-prose>table th[data-sortable]:not([aria-sort]) .usa-table__header__button[aria-disabled=true]:hover,.usa-prose>table th[data-sortable][aria-sort=none] .usa-table__header__button.usa-button--active,.usa-prose>table th[data-sortable][aria-sort=none] .usa-table__header__button.usa-button--disabled,.usa-prose>table th[data-sortable][aria-sort=none] .usa-table__header__button.usa-button--hover,.usa-prose>table th[data-sortable][aria-sort=none] .usa-table__header__button:active,.usa-prose>table th[data-sortable][aria-sort=none] .usa-table__header__button:disabled,.usa-prose>table th[data-sortable][aria-sort=none] .usa-table__header__button:disabled.usa-button--active,.usa-prose>table th[data-sortable][aria-sort=none] .usa-table__header__button:disabled.usa-button--hover,.usa-prose>table th[data-sortable][aria-sort=none] .usa-table__header__button:disabled.usa-focus,.usa-prose>table th[data-sortable][aria-sort=none] .usa-table__header__button:disabled:active,.usa-prose>table th[data-sortable][aria-sort=none] .usa-table__header__button:disabled:focus,.usa-prose>table th[data-sortable][aria-sort=none] .usa-table__header__button:disabled:hover,.usa-prose>table th[data-sortable][aria-sort=none] .usa-table__header__button:hover,.usa-prose>table th[data-sortable][aria-sort=none] .usa-table__header__button[aria-disabled=true],.usa-prose>table th[data-sortable][aria-sort=none] .usa-table__header__button[aria-disabled=true].usa-button--active,.usa-prose>table th[data-sortable][aria-sort=none] .usa-table__header__button[aria-disabled=true].usa-button--hover,.usa-prose>table th[data-sortable][aria-sort=none] .usa-table__header__button[aria-disabled=true].usa-focus,.usa-prose>table th[data-sortable][aria-sort=none] .usa-table__header__button[aria-disabled=true]:active,.usa-prose>table th[data-sortable][aria-sort=none] .usa-table__header__button[aria-disabled=true]:focus,.usa-prose>table th[data-sortable][aria-sort=none] .usa-table__header__button[aria-disabled=true]:hover{background-color:transparent;box-shadow:none;text-decoration:underline}.usa-prose>table th[data-sortable]:not([aria-sort]) .usa-table__header__button.usa-button--hover,.usa-prose>table th[data-sortable][aria-sort=none] .usa-table__header__button.usa-button--hover{color:#1a4480}.usa-prose>table th[data-sortable]:not([aria-sort]) .usa-table__header__button.usa-button--active,.usa-prose>table th[data-sortable][aria-sort=none] .usa-table__header__button.usa-button--active{color:#162e51}.usa-prose>table th[data-sortable]:not([aria-sort]) .usa-table__header__button:disabled,.usa-prose>table th[data-sortable]:not([aria-sort]) .usa-table__header__button:disabled:hover,.usa-prose>table th[data-sortable]:not([aria-sort]) .usa-table__header__button[aria-disabled=true],.usa-prose>table th[data-sortable]:not([aria-sort]) .usa-table__header__button[aria-disabled=true]:focus,.usa-prose>table th[data-sortable]:not([aria-sort]) .usa-table__header__button[aria-disabled=true]:hover,.usa-prose>table th[data-sortable][aria-sort=none] .usa-table__header__button:disabled,.usa-prose>table th[data-sortable][aria-sort=none] .usa-table__header__button:disabled:hover,.usa-prose>table th[data-sortable][aria-sort=none] .usa-table__header__button[aria-disabled=true],.usa-prose>table th[data-sortable][aria-sort=none] .usa-table__header__button[aria-disabled=true]:focus,.usa-prose>table th[data-sortable][aria-sort=none] .usa-table__header__button[aria-disabled=true]:hover{color:#757575}@media (forced-colors:active){.usa-prose>table th[data-sortable]:not([aria-sort]) .usa-table__header__button:disabled,.usa-prose>table th[data-sortable]:not([aria-sort]) .usa-table__header__button:disabled:hover,.usa-prose>table th[data-sortable]:not([aria-sort]) .usa-table__header__button[aria-disabled=true],.usa-prose>table th[data-sortable]:not([aria-sort]) .usa-table__header__button[aria-disabled=true]:focus,.usa-prose>table th[data-sortable]:not([aria-sort]) .usa-table__header__button[aria-disabled=true]:hover,.usa-prose>table th[data-sortable][aria-sort=none] .usa-table__header__button:disabled,.usa-prose>table th[data-sortable][aria-sort=none] .usa-table__header__button:disabled:hover,.usa-prose>table th[data-sortable][aria-sort=none] .usa-table__header__button[aria-disabled=true],.usa-prose>table th[data-sortable][aria-sort=none] .usa-table__header__button[aria-disabled=true]:focus,.usa-prose>table th[data-sortable][aria-sort=none] .usa-table__header__button[aria-disabled=true]:hover{color:GrayText}}.usa-prose>table th[data-sortable]:not([aria-sort]) .usa-table__header__button .usa-icon,.usa-prose>table th[data-sortable][aria-sort=none] .usa-table__header__button .usa-icon{height:1.5rem;width:1.5rem;vertical-align:middle}.usa-prose>table th[data-sortable]:not([aria-sort]) .usa-table__header__button .usa-icon>g,.usa-prose>table th[data-sortable][aria-sort=none] .usa-table__header__button .usa-icon>g,.usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button .usa-icon>g,.usa-table th[data-sortable][aria-sort=none] .usa-table__header__button .usa-icon>g{fill:transparent}.usa-prose>.usa-table--borderless th[data-sortable]:not([aria-sort]) .usa-table__header__button .usa-icon>g.unsorted,.usa-prose>table th[data-sortable]:not([aria-sort]) .usa-table__header__button .usa-icon>g.unsorted,.usa-prose>table th[data-sortable][aria-sort=none] .usa-table__header__button .usa-icon>g.unsorted,.usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button .usa-icon>g.unsorted,.usa-table th[data-sortable][aria-sort=none] .usa-table__header__button .usa-icon>g.unsorted{fill:#1b1b1b}.usa-prose>.usa-table--borderless th[data-sortable]:not([aria-sort]) .usa-table__header__button:hover .usa-icon>g.unsorted,.usa-prose>table th[data-sortable]:not([aria-sort]) .usa-table__header__button:hover .usa-icon>g.unsorted,.usa-prose>table th[data-sortable][aria-sort=none] .usa-table__header__button:hover .usa-icon>g.unsorted,.usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button:hover .usa-icon>g.unsorted,.usa-table th[data-sortable][aria-sort=none] .usa-table__header__button:hover .usa-icon>g.unsorted,.usa-table--borderless th[data-sortable]:not([aria-sort]) .usa-table__header__button:hover .usa-icon>g.unsorted{fill:#000}.usa-prose>table th[data-sortable][aria-sort=ascending],.usa-prose>table th[data-sortable][aria-sort=descending]{background-color:#97d4ea}.usa-prose>table th[data-sortable][aria-sort=ascending] .usa-table__header__button,.usa-prose>table th[data-sortable][aria-sort=descending] .usa-table__header__button{background-color:transparent;border:0;border-radius:0;box-shadow:none;font-weight:400;justify-content:normal;padding:0;width:auto;height:2rem;width:2rem;background-position:center center;background-size:1.5rem;color:#71767a;cursor:pointer;display:inline-block;margin:0;position:absolute;right:.25rem;text-align:center;text-decoration:none;top:50%;transform:translate(0,-50%)}.usa-prose>table th[data-sortable][aria-sort=descending] .usa-table__header__button:visited{color:#54278f}.usa-prose>table th[data-sortable][aria-sort=descending] .usa-table__header__button:hover{color:#1a4480}.usa-prose>table th[data-sortable][aria-sort=descending] .usa-table__header__button:active{color:#162e51}.usa-prose>table th[data-sortable][aria-sort=descending] .usa-table__header__button:focus{outline:.25rem solid #2491ff;outline-offset:0}.usa-prose>table th[data-sortable][aria-sort=descending] .usa-table__header__button.usa-button--active,.usa-prose>table th[data-sortable][aria-sort=descending] .usa-table__header__button.usa-button--disabled,.usa-prose>table th[data-sortable][aria-sort=descending] .usa-table__header__button.usa-button--hover,.usa-prose>table th[data-sortable][aria-sort=descending] .usa-table__header__button:active,.usa-prose>table th[data-sortable][aria-sort=descending] .usa-table__header__button:disabled,.usa-prose>table th[data-sortable][aria-sort=descending] .usa-table__header__button:disabled.usa-button--active,.usa-prose>table th[data-sortable][aria-sort=descending] .usa-table__header__button:disabled.usa-button--hover,.usa-prose>table th[data-sortable][aria-sort=descending] .usa-table__header__button:disabled.usa-focus,.usa-prose>table th[data-sortable][aria-sort=descending] .usa-table__header__button:disabled:active,.usa-prose>table th[data-sortable][aria-sort=descending] .usa-table__header__button:disabled:focus,.usa-prose>table th[data-sortable][aria-sort=descending] .usa-table__header__button:disabled:hover,.usa-prose>table th[data-sortable][aria-sort=descending] .usa-table__header__button:hover,.usa-prose>table th[data-sortable][aria-sort=descending] .usa-table__header__button[aria-disabled=true],.usa-prose>table th[data-sortable][aria-sort=descending] .usa-table__header__button[aria-disabled=true].usa-button--active,.usa-prose>table th[data-sortable][aria-sort=descending] .usa-table__header__button[aria-disabled=true].usa-button--hover,.usa-prose>table th[data-sortable][aria-sort=descending] .usa-table__header__button[aria-disabled=true].usa-focus,.usa-prose>table th[data-sortable][aria-sort=descending] .usa-table__header__button[aria-disabled=true]:active,.usa-prose>table th[data-sortable][aria-sort=descending] .usa-table__header__button[aria-disabled=true]:focus,.usa-prose>table th[data-sortable][aria-sort=descending] .usa-table__header__button[aria-disabled=true]:hover{background-color:transparent;box-shadow:none;text-decoration:underline}.usa-prose>table th[data-sortable][aria-sort=descending] .usa-table__header__button.usa-button--hover{color:#1a4480}.usa-prose>table th[data-sortable][aria-sort=descending] .usa-table__header__button.usa-button--active{color:#162e51}.usa-prose>table th[data-sortable][aria-sort=descending] .usa-table__header__button:disabled,.usa-prose>table th[data-sortable][aria-sort=descending] .usa-table__header__button:disabled:hover,.usa-prose>table th[data-sortable][aria-sort=descending] .usa-table__header__button[aria-disabled=true],.usa-prose>table th[data-sortable][aria-sort=descending] .usa-table__header__button[aria-disabled=true]:focus,.usa-prose>table th[data-sortable][aria-sort=descending] .usa-table__header__button[aria-disabled=true]:hover{color:#757575}@media (forced-colors:active){.usa-prose>table th[data-sortable][aria-sort=descending] .usa-table__header__button:disabled,.usa-prose>table th[data-sortable][aria-sort=descending] .usa-table__header__button:disabled:hover,.usa-prose>table th[data-sortable][aria-sort=descending] .usa-table__header__button[aria-disabled=true],.usa-prose>table th[data-sortable][aria-sort=descending] .usa-table__header__button[aria-disabled=true]:focus,.usa-prose>table th[data-sortable][aria-sort=descending] .usa-table__header__button[aria-disabled=true]:hover{color:GrayText}}.usa-prose>table th[data-sortable][aria-sort=descending] .usa-table__header__button .usa-icon{height:1.5rem;width:1.5rem;vertical-align:middle}.usa-prose>table th[data-sortable][aria-sort=ascending] .usa-table__header__button .usa-icon>g,.usa-prose>table th[data-sortable][aria-sort=descending] .usa-table__header__button .usa-icon>g,.usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button .usa-icon>g,.usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button .usa-icon>g{fill:transparent}.usa-prose>table th[data-sortable][aria-sort=ascending] .usa-table__header__button .usa-icon>g.ascending,.usa-prose>table th[data-sortable][aria-sort=descending] .usa-table__header__button .usa-icon>g.descending,.usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button .usa-icon>g.ascending,.usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button .usa-icon>g.descending{fill:#1b1b1b}.usa-prose>table th[data-sortable][aria-sort=ascending] .usa-table__header__button:visited{color:#54278f}.usa-prose>table th[data-sortable][aria-sort=ascending] .usa-table__header__button:hover{color:#1a4480}.usa-prose>table th[data-sortable][aria-sort=ascending] .usa-table__header__button:active{color:#162e51}.usa-prose>table th[data-sortable][aria-sort=ascending] .usa-table__header__button:focus{outline:.25rem solid #2491ff;outline-offset:0}.usa-prose>table th[data-sortable][aria-sort=ascending] .usa-table__header__button.usa-button--active,.usa-prose>table th[data-sortable][aria-sort=ascending] .usa-table__header__button.usa-button--disabled,.usa-prose>table th[data-sortable][aria-sort=ascending] .usa-table__header__button.usa-button--hover,.usa-prose>table th[data-sortable][aria-sort=ascending] .usa-table__header__button:active,.usa-prose>table th[data-sortable][aria-sort=ascending] .usa-table__header__button:disabled,.usa-prose>table th[data-sortable][aria-sort=ascending] .usa-table__header__button:disabled.usa-button--active,.usa-prose>table th[data-sortable][aria-sort=ascending] .usa-table__header__button:disabled.usa-button--hover,.usa-prose>table th[data-sortable][aria-sort=ascending] .usa-table__header__button:disabled.usa-focus,.usa-prose>table th[data-sortable][aria-sort=ascending] .usa-table__header__button:disabled:active,.usa-prose>table th[data-sortable][aria-sort=ascending] .usa-table__header__button:disabled:focus,.usa-prose>table th[data-sortable][aria-sort=ascending] .usa-table__header__button:disabled:hover,.usa-prose>table th[data-sortable][aria-sort=ascending] .usa-table__header__button:hover,.usa-prose>table th[data-sortable][aria-sort=ascending] .usa-table__header__button[aria-disabled=true],.usa-prose>table th[data-sortable][aria-sort=ascending] .usa-table__header__button[aria-disabled=true].usa-button--active,.usa-prose>table th[data-sortable][aria-sort=ascending] .usa-table__header__button[aria-disabled=true].usa-button--hover,.usa-prose>table th[data-sortable][aria-sort=ascending] .usa-table__header__button[aria-disabled=true].usa-focus,.usa-prose>table th[data-sortable][aria-sort=ascending] .usa-table__header__button[aria-disabled=true]:active,.usa-prose>table th[data-sortable][aria-sort=ascending] .usa-table__header__button[aria-disabled=true]:focus,.usa-prose>table th[data-sortable][aria-sort=ascending] .usa-table__header__button[aria-disabled=true]:hover{background-color:transparent;box-shadow:none;text-decoration:underline}.usa-prose>table th[data-sortable][aria-sort=ascending] .usa-table__header__button.usa-button--hover{color:#1a4480}.usa-prose>table th[data-sortable][aria-sort=ascending] .usa-table__header__button.usa-button--active{color:#162e51}.usa-prose>table th[data-sortable][aria-sort=ascending] .usa-table__header__button:disabled,.usa-prose>table th[data-sortable][aria-sort=ascending] .usa-table__header__button:disabled:hover,.usa-prose>table th[data-sortable][aria-sort=ascending] .usa-table__header__button[aria-disabled=true],.usa-prose>table th[data-sortable][aria-sort=ascending] .usa-table__header__button[aria-disabled=true]:focus,.usa-prose>table th[data-sortable][aria-sort=ascending] .usa-table__header__button[aria-disabled=true]:hover{color:#757575}@media (forced-colors:active){.usa-prose>table th[data-sortable][aria-sort=ascending] .usa-table__header__button:disabled,.usa-prose>table th[data-sortable][aria-sort=ascending] .usa-table__header__button:disabled:hover,.usa-prose>table th[data-sortable][aria-sort=ascending] .usa-table__header__button[aria-disabled=true],.usa-prose>table th[data-sortable][aria-sort=ascending] .usa-table__header__button[aria-disabled=true]:focus,.usa-prose>table th[data-sortable][aria-sort=ascending] .usa-table__header__button[aria-disabled=true]:hover{color:GrayText}}.usa-prose>table th[data-sortable][aria-sort=ascending] .usa-table__header__button .usa-icon{height:1.5rem;width:1.5rem;vertical-align:middle}.usa-prose>table thead th[aria-sort]{background-color:#97d4ea;color:#1b1b1b}.usa-prose>table td[data-sort-active],.usa-prose>table th[data-sort-active]{background-color:#e1f3f8;color:#1b1b1b}.usa-prose>.usa-table--borderless tfoot td,.usa-prose>.usa-table--borderless th,.usa-prose>.usa-table--borderless thead td{background-color:#fff}.usa-prose>.usa-table--borderless th{border-top:0;color:#1b1b1b;border-left:0;border-right:0}.usa-prose>.usa-table--borderless th[aria-sort]{color:#1b1b1b}.usa-prose>.usa-table--borderless td{border-left:0;border-right:0}.usa-prose>.usa-table--compact td,.usa-prose>.usa-table--compact th{padding:.25rem .75rem}.usa-prose>.usa-table--striped tbody tr:nth-child(odd) td,.usa-table--striped tbody tr:nth-child(odd) td{background-color:#f0f0f0;color:#1b1b1b}.usa-prose>.usa-table--striped tbody tr:nth-child(odd) td[data-sort-active]{background-color:#c3ebfa;color:#1b1b1b}@media all and (max-width:29.99em){.usa-prose>.usa-table--stacked thead,.usa-prose>.usa-table--stacked-header thead{display:none}.usa-prose>.usa-table--stacked th{background-color:#fff}.usa-prose>.usa-table--stacked td,.usa-prose>.usa-table--stacked th{border-bottom-width:0;display:block;width:100%}.usa-prose>.usa-table--stacked tr,.usa-prose>.usa-table--stacked-header tr{border-bottom:.25rem solid #1b1b1b;border-top-width:0;width:100%}.usa-prose>.usa-table--stacked tr td:first-child,.usa-prose>.usa-table--stacked tr th:first-child{border-top-width:0}.usa-prose>.usa-table--stacked tr:nth-child(odd) td,.usa-prose>.usa-table--stacked tr:nth-child(odd) th{background-color:inherit}.usa-prose>.usa-table--stacked tr:first-child td:first-child,.usa-prose>.usa-table--stacked tr:first-child th:first-child,.usa-prose>.usa-table--stacked-header tr:first-child td:first-child,.usa-prose>.usa-table--stacked-header tr:first-child th:first-child{border-top:.25rem solid #1b1b1b}.usa-prose>.usa-table--stacked td[data-label],.usa-prose>.usa-table--stacked th[data-label],.usa-prose>.usa-table--stacked-header td[data-label],.usa-prose>.usa-table--stacked-header th[data-label]{padding-bottom:.75rem}.usa-prose>.usa-table--stacked td[data-label]:before,.usa-prose>.usa-table--stacked th[data-label]:before{content:attr(data-label);display:block;font-weight:700;margin:-.5rem -1rem 0;padding:.75rem 1rem .25rem}.usa-prose>.usa-table--stacked-header th{background-color:#fff}.usa-prose>.usa-table--stacked-header td,.usa-prose>.usa-table--stacked-header th{border-bottom-width:0;display:block;width:100%}.usa-prose>.usa-table--stacked-header tr td:first-child,.usa-prose>.usa-table--stacked-header tr th:first-child{border-top-width:0}.usa-prose>.usa-table--stacked-header tr:nth-child(odd) td,.usa-prose>.usa-table--stacked-header tr:nth-child(odd) th{background-color:inherit}.usa-prose>.usa-table--stacked-header td[data-label]:before,.usa-prose>.usa-table--stacked-header th[data-label]:before{content:attr(data-label);display:block;font-weight:700;margin:-.5rem -1rem 0;padding:.75rem 1rem .25rem}.usa-prose>.usa-table--stacked-header tr td:first-child,.usa-prose>.usa-table--stacked-header tr th:first-child{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.06rem;line-height:1.1;background-color:#dfe1e2;color:#1b1b1b;font-weight:700;padding:.75rem 1rem}.usa-prose>.usa-table--stacked-header tr td:first-child:before,.usa-prose>.usa-table--stacked-header tr th:first-child:before{display:none}}.usa-prose>.width-mobile .usa-table--stacked thead,.usa-prose>.width-mobile .usa-table--stacked-header thead{display:none}.usa-prose>.width-mobile .usa-table--stacked th{background-color:#fff;border-bottom-width:0;display:block;width:100%}.usa-prose>.width-mobile .usa-table--stacked td{border-bottom-width:0;display:block;width:100%}.usa-prose>.width-mobile .usa-table--stacked tr,.usa-prose>.width-mobile .usa-table--stacked-header tr,.width-mobile .usa-table--stacked tr,.width-mobile .usa-table--stacked-header tr{border-bottom:.25rem solid #1b1b1b;border-top-width:0;width:100%}.usa-prose>.width-mobile .usa-table--stacked tr td:first-child,.usa-prose>.width-mobile .usa-table--stacked tr th:first-child{border-top-width:0}.usa-prose>.width-mobile .usa-table--stacked tr:nth-child(odd) td,.usa-prose>.width-mobile .usa-table--stacked tr:nth-child(odd) th{background-color:inherit}.usa-prose>.width-mobile .usa-table--stacked tr:first-child td:first-child,.usa-prose>.width-mobile .usa-table--stacked tr:first-child th:first-child,.usa-prose>.width-mobile .usa-table--stacked-header tr:first-child td:first-child,.usa-prose>.width-mobile .usa-table--stacked-header tr:first-child th:first-child{border-top:.25rem solid #1b1b1b}.usa-prose>.width-mobile .usa-table--stacked td[data-label],.usa-prose>.width-mobile .usa-table--stacked th[data-label],.usa-prose>.width-mobile .usa-table--stacked-header td[data-label],.usa-prose>.width-mobile .usa-table--stacked-header th[data-label]{padding-bottom:.75rem}.usa-prose>.width-mobile .usa-table--stacked td[data-label]:before,.usa-prose>.width-mobile .usa-table--stacked th[data-label]:before{content:attr(data-label);display:block;font-weight:700;margin:-.5rem -1rem 0;padding:.75rem 1rem .25rem}.usa-prose>.width-mobile .usa-table--stacked-header th{background-color:#fff;border-bottom-width:0;display:block;width:100%}.usa-prose>.width-mobile .usa-table--stacked-header td{border-bottom-width:0;display:block;width:100%}.usa-prose>.width-mobile .usa-table--stacked-header tr td:first-child,.usa-prose>.width-mobile .usa-table--stacked-header tr th:first-child{border-top-width:0}.usa-prose>.width-mobile .usa-table--stacked-header tr:nth-child(odd) td,.usa-prose>.width-mobile .usa-table--stacked-header tr:nth-child(odd) th{background-color:inherit}.usa-prose>.width-mobile .usa-table--stacked-header td[data-label]:before,.usa-prose>.width-mobile .usa-table--stacked-header th[data-label]:before{content:attr(data-label);display:block;font-weight:700;margin:-.5rem -1rem 0;padding:.75rem 1rem .25rem}.usa-prose>.width-mobile .usa-table--stacked-header tr td:first-child,.usa-prose>.width-mobile .usa-table--stacked-header tr th:first-child{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.06rem;line-height:1.1;background-color:#dfe1e2;color:#1b1b1b;font-weight:700;padding:.75rem 1rem}.usa-prose>.width-mobile .usa-table--stacked-header tr td:first-child:before,.usa-prose>.width-mobile .usa-table--stacked-header tr th:first-child:before{display:none}.usa-prose>.usa-table-container--scrollable{margin:1.25rem 0;overflow-y:hidden}.usa-prose>.usa-table-container--scrollable .usa-table{margin:0}.usa-prose>.usa-table-container--scrollable td{white-space:nowrap}.usa-prose>p{line-height:1.5;max-width:68ex}.usa-prose>h1,.usa-prose>h2,.usa-prose>h3,.usa-prose>h4,.usa-prose>h5,.usa-prose>h6{margin-bottom:0;margin-top:0;clear:both}.usa-prose>*+*{margin-top:1em;margin-bottom:0}.usa-prose>*+h1,.usa-prose>*+h2,.usa-prose>*+h3,.usa-prose>*+h4,.usa-prose>*+h5,.usa-prose>*+h6{margin-top:1.5em}.usa-prose>h1,.usa-prose>h2,.usa-prose>h3,.usa-prose>h4,.usa-prose>h5{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:2.44rem;line-height:1.2;font-weight:700}.usa-prose>h2,.usa-prose>h3,.usa-prose>h4,.usa-prose>h5{font-size:1.95rem}.usa-prose>h3,.usa-prose>h4,.usa-prose>h5{font-size:1.34rem}.usa-prose>h4,.usa-prose>h5{font-size:.98rem}.usa-prose>h5{font-size:.91rem}.usa-accordion,.usa-prose>h6{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif}.usa-prose>h6{font-size:.87rem;line-height:1.1;font-weight:400;letter-spacing:.025em;text-transform:uppercase}.usa-accordion{list-style-type:none;color:#1b1b1b;margin:0;padding:0;width:100%;font-size:1.06rem;line-height:1.5}.usa-accordion>ul li ul{list-style:disc}.usa-accordion>ul li ul>li>ul{list-style:circle}.usa-accordion>ul li ul>li>ul>li>ul{list-style:square}.usa-accordion+.usa-accordion,.usa-accordion+.usa-accordion--bordered{margin-top:.5rem}.usa-accordion--bordered .usa-accordion__content{border-bottom:.25rem solid #f0f0f0;border-left:.25rem solid #f0f0f0;border-right:.25rem solid #f0f0f0;padding-bottom:1rem}.usa-accordion--bordered .usa-accordion__heading{margin-bottom:0}.usa-accordion__heading,.usa-prose .usa-accordion__heading{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.06rem;line-height:.9;margin:0}.usa-accordion__heading:not(:first-child),.usa-prose .usa-accordion__heading:not(:first-child){margin-top:.5rem}.usa-accordion__content{color:#1b1b1b;background-color:#fff;margin-top:0;overflow:auto;padding:1rem 1.25rem calc(1rem - .25rem)}.usa-accordion__content>:first-child{margin-top:0}.usa-accordion__content>:last-child{margin-bottom:0}.usa-accordion__button{border:0;border-radius:0;box-shadow:none;justify-content:normal;text-align:left;padding:0;color:#1b1b1b;background-color:#f0f0f0;background-image:url(../img/usa-icons/remove.svg),linear-gradient(transparent,transparent);background-repeat:no-repeat;background-position:right 1.25rem center;background-size:1.5rem;cursor:pointer;display:inline-block;font-weight:700;margin:0;padding:1rem 3.5rem 1rem 1.25rem;text-decoration:none;width:100%}.usa-accordion__button:visited{color:#54278f}.usa-accordion__button:active{color:#162e51}.usa-accordion__button:focus{outline:.25rem solid #2491ff;outline-offset:0}.usa-accordion__button.usa-button--active,.usa-accordion__button.usa-button--disabled,.usa-accordion__button.usa-button--hover,.usa-accordion__button:active,.usa-accordion__button:disabled,.usa-accordion__button:disabled.usa-button--active,.usa-accordion__button:disabled.usa-button--hover,.usa-accordion__button:disabled.usa-focus,.usa-accordion__button:disabled:active,.usa-accordion__button:disabled:focus,.usa-accordion__button:disabled:hover,.usa-accordion__button:hover,.usa-accordion__button[aria-disabled=true],.usa-accordion__button[aria-disabled=true].usa-button--active,.usa-accordion__button[aria-disabled=true].usa-button--hover,.usa-accordion__button[aria-disabled=true].usa-focus,.usa-accordion__button[aria-disabled=true]:active,.usa-accordion__button[aria-disabled=true]:focus,.usa-accordion__button[aria-disabled=true]:hover{background-color:transparent;box-shadow:none;text-decoration:underline}.usa-accordion__button.usa-button--hover{color:#1a4480}.usa-accordion__button.usa-button--active{color:#162e51}.usa-accordion__button:disabled,.usa-accordion__button:disabled:hover,.usa-accordion__button[aria-disabled=true],.usa-accordion__button[aria-disabled=true]:focus,.usa-accordion__button[aria-disabled=true]:hover{color:#757575}@media (forced-colors:active){.usa-accordion__button:disabled,.usa-accordion__button:disabled:hover,.usa-accordion__button[aria-disabled=true],.usa-accordion__button[aria-disabled=true]:focus,.usa-accordion__button[aria-disabled=true]:hover{color:GrayText}}.usa-accordion__button:hover{color:#1b1b1b;background-color:#dfe1e2;background-image:url(../img/usa-icons/remove.svg),linear-gradient(transparent,transparent);background-repeat:no-repeat;text-decoration:none}@media (forced-colors:active){.usa-accordion__button{border:2px solid transparent;position:relative}.usa-accordion__button::before{background-image:url(../img/usa-icons/remove.svg);background-repeat:no-repeat;background-position:center center;background-size:1.5rem 1.5rem;display:inline-block;height:1.5rem;width:1.5rem;height:100%;position:absolute;right:1.25rem;top:0;content:""}@supports ((-webkit-mask:url()) or (mask:url())){.usa-accordion__button::before{background:0 0;background-color:ButtonText;-webkit-mask-image:url(../img/usa-icons/remove.svg),linear-gradient(transparent,transparent);mask-image:url(../img/usa-icons/remove.svg),linear-gradient(transparent,transparent);-webkit-mask-position:center center;mask-position:center center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:1.5rem 1.5rem;mask-size:1.5rem 1.5rem}}}.usa-accordion__button[aria-expanded=false]{background-size:1.5rem}.usa-accordion__button[aria-expanded=false],.usa-accordion__button[aria-expanded=false]:hover{background-image:url(../img/usa-icons/add.svg),linear-gradient(transparent,transparent);background-repeat:no-repeat}@media (forced-colors:active){.usa-accordion__button[aria-expanded=false]::before{background-image:url(../img/usa-icons/add.svg);background-repeat:no-repeat;background-position:center center;background-size:1.5rem 1.5rem;display:inline-block;height:1.5rem;width:1.5rem;height:100%;position:absolute;right:1.25rem;top:0}@supports ((-webkit-mask:url()) or (mask:url())){.usa-accordion__button[aria-expanded=false]::before{background:0 0;background-color:ButtonText;-webkit-mask-image:url(../img/usa-icons/add.svg),linear-gradient(transparent,transparent);mask-image:url(../img/usa-icons/add.svg),linear-gradient(transparent,transparent);-webkit-mask-position:center center;mask-position:center center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:1.5rem 1.5rem;mask-size:1.5rem 1.5rem}}}.usa-alert{background-color:#f0f0f0;border-left:.5rem solid #a9aeb1;color:#1b1b1b}.usa-alert .usa-alert__body{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.06rem;line-height:1.5;padding-bottom:1rem;padding-top:1rem;position:relative}.usa-alert .usa-alert__text{margin-bottom:0;margin-top:0}.usa-alert .usa-alert__text:only-child{padding-bottom:0;padding-top:0}.usa-alert .usa-alert__heading{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.46rem;line-height:.9;margin-top:0;margin-bottom:.5rem}.usa-alert .usa-alert__body>.usa-list,.usa-alert>.usa-list{padding-left:2ch}.usa-alert .usa-alert__body>.usa-list:last-child,.usa-alert>.usa-list:last-child{margin-bottom:0}.usa-alert .usa-alert__body{padding-left:1.25rem;padding-right:1.25rem}.usa-alert .usa-alert__body::before{left:1.0833333333rem}*+.usa-alert{margin-top:1rem}.usa-alert--success{background-color:#ecf3ec;border-left-color:#00a91c}.usa-alert--success .usa-alert__body{color:#1b1b1b;background-color:#ecf3ec;display:flex;flex-direction:column;justify-content:center;min-height:3.3333333333rem}.usa-alert--success .usa-alert__body::before{background-image:url(../img/usa-icons/check_circle.svg);background-repeat:no-repeat;background-position:center center;background-size:2rem 2rem;height:2rem;width:2rem;content:"";display:block;position:absolute;top:.6666666667rem}@supports ((-webkit-mask:url()) or (mask:url())){.usa-alert--success .usa-alert__body::before{background:0 0;background-color:#1b1b1b;-webkit-mask-image:url(../img/usa-icons/check_circle.svg),linear-gradient(transparent,transparent);mask-image:url(../img/usa-icons/check_circle.svg),linear-gradient(transparent,transparent);-webkit-mask-position:center center;mask-position:center center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:2rem 2rem;mask-size:2rem 2rem}}.usa-alert--success .usa-alert__body>*{margin-left:2.5rem}.usa-alert--error .usa-alert__body .usa-link,.usa-alert--info .usa-alert__body .usa-link,.usa-alert--success .usa-alert__body .usa-link,.usa-alert--warning .usa-alert__body .usa-link{color:#005ea2}.usa-alert--success .usa-alert__body .usa-link:visited{color:#54278f}.usa-alert--success .usa-alert__body .usa-link:active,.usa-alert--success .usa-alert__body .usa-link:hover{color:#1a4480}.usa-alert--warning{background-color:#faf3d1;border-left-color:#ffbe2e}.usa-alert--warning .usa-alert__body{color:#1b1b1b;background-color:#faf3d1;display:flex;flex-direction:column;justify-content:center;min-height:3.3333333333rem}.usa-alert--warning .usa-alert__body::before{background-image:url(../img/usa-icons/warning.svg);background-repeat:no-repeat;background-position:center center;background-size:2rem 2rem;height:2rem;width:2rem;content:"";display:block;position:absolute;top:.6666666667rem}@supports ((-webkit-mask:url()) or (mask:url())){.usa-alert--warning .usa-alert__body::before{background:0 0;background-color:#1b1b1b;-webkit-mask-image:url(../img/usa-icons/warning.svg),linear-gradient(transparent,transparent);mask-image:url(../img/usa-icons/warning.svg),linear-gradient(transparent,transparent);-webkit-mask-position:center center;mask-position:center center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:2rem 2rem;mask-size:2rem 2rem}}.usa-alert--warning .usa-alert__body>*{margin-left:2.5rem}.usa-alert--warning .usa-alert__body .usa-link:visited{color:#54278f}.usa-alert--warning .usa-alert__body .usa-link:active,.usa-alert--warning .usa-alert__body .usa-link:hover{color:#1a4480}.usa-alert--error{background-color:#f4e3db;border-left-color:#d54309}.usa-alert--error .usa-alert__body{color:#1b1b1b;background-color:#f4e3db;display:flex;flex-direction:column;justify-content:center;min-height:3.3333333333rem}.usa-alert--error .usa-alert__body::before{background-image:url(../img/usa-icons/error.svg);background-repeat:no-repeat;background-position:center center;background-size:2rem 2rem;height:2rem;width:2rem;content:"";display:block;position:absolute;top:.6666666667rem}@supports ((-webkit-mask:url()) or (mask:url())){.usa-alert--error .usa-alert__body::before{background:0 0;background-color:#1b1b1b;-webkit-mask-image:url(../img/usa-icons/error.svg),linear-gradient(transparent,transparent);mask-image:url(../img/usa-icons/error.svg),linear-gradient(transparent,transparent);-webkit-mask-position:center center;mask-position:center center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:2rem 2rem;mask-size:2rem 2rem}}.usa-alert--error .usa-alert__body>*{margin-left:2.5rem}.usa-alert--error .usa-alert__body .usa-link:visited{color:#54278f}.usa-alert--error .usa-alert__body .usa-link:active,.usa-alert--error .usa-alert__body .usa-link:hover{color:#1a4480}.usa-alert--info{background-color:#e7f6f8;border-left-color:#00bde3}.usa-alert--info .usa-alert__body{color:#1b1b1b;background-color:#e7f6f8;display:flex;flex-direction:column;justify-content:center;min-height:3.3333333333rem}.usa-alert--info .usa-alert__body::before{background-image:url(../img/usa-icons/info.svg);background-repeat:no-repeat;background-position:center center;background-size:2rem 2rem;height:2rem;width:2rem;content:"";display:block;position:absolute;top:.6666666667rem}@supports ((-webkit-mask:url()) or (mask:url())){.usa-alert--info .usa-alert__body::before{background:0 0;background-color:#1b1b1b;-webkit-mask-image:url(../img/usa-icons/info.svg),linear-gradient(transparent,transparent);mask-image:url(../img/usa-icons/info.svg),linear-gradient(transparent,transparent);-webkit-mask-position:center center;mask-position:center center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:2rem 2rem;mask-size:2rem 2rem}}.usa-alert--info .usa-alert__body>*{margin-left:2.5rem}.usa-alert--info .usa-alert__body .usa-link:visited{color:#54278f}.usa-alert--info .usa-alert__body .usa-link:active,.usa-alert--info .usa-alert__body .usa-link:hover{color:#1a4480}.usa-alert--emergency{background-color:#9c3d10;border-left-color:#9c3d10}.usa-alert--emergency .usa-alert__body{color:#fff;background-color:#9c3d10;display:flex;flex-direction:column;justify-content:center;min-height:3.3333333333rem}.usa-alert--emergency .usa-alert__body::before{background-image:url(../img/usa-icons-bg/error--white.svg);background-repeat:no-repeat;background-position:center center;background-size:2rem 2rem;height:2rem;width:2rem;content:"";display:block;position:absolute;top:.6666666667rem}@supports ((-webkit-mask:url()) or (mask:url())){.usa-alert--emergency .usa-alert__body::before{background:0 0;background-color:#fff;-webkit-mask-image:url(../img/usa-icons/error.svg),linear-gradient(transparent,transparent);mask-image:url(../img/usa-icons/error.svg),linear-gradient(transparent,transparent);-webkit-mask-position:center center;mask-position:center center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:2rem 2rem;mask-size:2rem 2rem}}.usa-alert--emergency .usa-alert__body>*{margin-left:2.5rem}.usa-alert--emergency .usa-alert__body .usa-link,.usa-alert--emergency .usa-alert__body .usa-link:visited{color:#dfe1e2}.usa-alert--emergency .usa-alert__body .usa-link:active,.usa-alert--emergency .usa-alert__body .usa-link:hover{color:#f0f0f0}.usa-alert--slim .usa-alert__body{padding-bottom:.5rem;padding-top:.5rem;min-height:0}.usa-alert--slim .usa-alert__body:before{height:1.5rem;top:.5rem;width:1.5rem}@supports ((-webkit-mask:url()) or (mask:url())){.usa-alert--slim .usa-alert__body:before{-webkit-mask-size:1.5rem;mask-size:1.5rem}}.usa-alert--slim .usa-alert__body>*{margin-left:2rem}.usa-alert--slim .usa-alert__body::before{left:1.125rem}.usa-alert--no-icon .usa-alert__body{min-height:0}.usa-alert--no-icon .usa-alert__body:before{display:none}.usa-alert--no-icon .usa-alert__body>*{margin-left:0}.usa-alert--validation .usa-checklist{margin-top:1rem}.usa-banner{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.06rem;line-height:1.5;background-color:#f0f0f0}@media all and (min-width:40em){.usa-banner{font-size:.87rem;padding-bottom:0}}.usa-banner .usa-accordion{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.06rem;line-height:1.5}.usa-banner .grid-row{display:flex;flex-wrap:wrap}.usa-banner .grid-row.grid-gap-lg{margin-left:-.75rem;margin-right:-.75rem}.usa-banner .grid-row.grid-gap-lg>*{padding-left:.75rem;padding-right:.75rem}@media all and (min-width:40em){.usa-banner .grid-row .tablet\:grid-col-6{flex:0 1 auto;width:50%}}.usa-banner__content,.usa-banner__header,.usa-footer__contact-info a,.usa-footer__secondary-section a{color:#1b1b1b}.usa-banner__content{margin-left:auto;margin-right:auto;max-width:64rem;background-color:transparent;font-size:1rem;overflow:hidden;padding:.25rem 1rem 1rem .5rem;width:100%}@media all and (min-width:64em){.usa-banner__content{padding-left:2rem;padding-right:2rem}}@media all and (min-width:40em){.usa-banner__content{padding-bottom:1.5rem;padding-top:1.5rem}}.usa-banner__content p:first-child{margin:0}.usa-banner__guidance{display:flex;align-items:flex-start;max-width:64ex;padding-top:1rem}@media all and (min-width:40em){.usa-banner__guidance{padding-top:0}}.usa-banner__lock-image{height:1.5ex;width:1.21875ex}.usa-banner__lock-image path{fill:currentColor}@media (forced-colors:active){.usa-banner__lock-image path{fill:CanvasText}}.usa-banner__inner{margin-left:auto;margin-right:auto;max-width:64rem;padding-left:1rem;padding-right:1rem;display:flex;flex-wrap:wrap;align-items:flex-start;padding-right:0}@media all and (min-width:64em){.usa-banner__inner{padding-left:2rem;padding-right:2rem}}@media all and (min-width:40em){.usa-banner__inner{align-items:center}}.usa-banner__header{padding-bottom:.5rem;padding-top:.5rem;font-size:.8rem;font-weight:400;min-height:3rem;position:relative}@media all and (min-width:40em){.usa-banner__header{padding-bottom:.25rem;padding-top:.25rem;min-height:0}}.usa-banner__header-text{margin-bottom:0;margin-top:0;font-size:.8rem;line-height:1.1}.usa-banner__header-action{color:#005ea2;line-height:1.1;margin-bottom:0;margin-top:2px;text-decoration:underline}.usa-banner__header-action::after{background-image:url(../img/usa-icons/expand_more.svg);background-repeat:no-repeat;background-position:center center;background-size:1rem 1rem;display:inline-block;height:1rem;width:1rem;content:"";vertical-align:middle;margin-left:auto}@supports ((-webkit-mask:url()) or (mask:url())){.usa-banner__header-action::after{background:0 0;background-color:#005ea2;-webkit-mask-image:url(../img/usa-icons/expand_more.svg),linear-gradient(transparent,transparent);mask-image:url(../img/usa-icons/expand_more.svg),linear-gradient(transparent,transparent);-webkit-mask-position:center center;mask-position:center center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:1rem 1rem;mask-size:1rem 1rem}.usa-banner__header-action::after:hover{background-color:#1a4480}}.usa-banner__header-action:hover::after{content:"";background-color:#1a4480}.usa-banner__header-action:visited{color:#54278f}.usa-banner__header-action:active,.usa-banner__header-action:hover{color:#1a4480}@media all and (min-width:40em){.usa-banner__header-action{display:none}}@media (forced-colors:active){.usa-banner__header-action{color:LinkText}.usa-banner__header-action::after{background-color:ButtonText}}.usa-banner__header-flag{float:left;margin-right:.5rem;width:1rem}@media all and (min-width:40em){.usa-banner__header-flag{margin-right:.5rem;padding-top:0}}.usa-banner__header--expanded{padding-right:3.5rem}@media all and (min-width:40em){.usa-banner__header--expanded{background-color:transparent;display:block;font-size:.8rem;font-weight:400;min-height:0;padding-right:0}}.usa-banner__header--expanded .usa-banner__inner{margin-left:0}@media all and (min-width:40em){.usa-banner__header--expanded .usa-banner__inner{margin-left:auto}}.usa-banner__header--expanded .usa-banner__header-action{display:none}.usa-banner__button{background-color:transparent;border:0;border-radius:0;box-shadow:none;font-weight:400;justify-content:normal;text-align:left;margin:0;left:0;position:absolute;bottom:0;top:0;color:#005ea2;display:block;font-size:.8rem;height:auto;line-height:1.1;padding:0;text-decoration:none;width:auto}.usa-banner__button:focus{outline:.25rem solid #2491ff;outline-offset:0}.usa-banner__button.usa-button--active,.usa-banner__button.usa-button--disabled,.usa-banner__button.usa-button--hover,.usa-banner__button:active,.usa-banner__button:disabled,.usa-banner__button:disabled.usa-button--active,.usa-banner__button:disabled.usa-button--hover,.usa-banner__button:disabled.usa-focus,.usa-banner__button:disabled:active,.usa-banner__button:disabled:focus,.usa-banner__button:disabled:hover,.usa-banner__button:hover,.usa-banner__button[aria-disabled=true],.usa-banner__button[aria-disabled=true].usa-button--active,.usa-banner__button[aria-disabled=true].usa-button--hover,.usa-banner__button[aria-disabled=true].usa-focus,.usa-banner__button[aria-disabled=true]:active,.usa-banner__button[aria-disabled=true]:focus,.usa-banner__button[aria-disabled=true]:hover{background-color:transparent;box-shadow:none;text-decoration:underline}.usa-banner__button.usa-button--hover{color:#1a4480}.usa-banner__button.usa-button--active{color:#162e51}.usa-banner__button:disabled,.usa-banner__button:disabled:hover,.usa-banner__button[aria-disabled=true],.usa-banner__button[aria-disabled=true]:focus,.usa-banner__button[aria-disabled=true]:hover{color:#757575}@media (forced-colors:active){.usa-banner__button:disabled,.usa-banner__button:disabled:hover,.usa-banner__button[aria-disabled=true],.usa-banner__button[aria-disabled=true]:focus,.usa-banner__button[aria-disabled=true]:hover{color:GrayText}}.usa-banner__button:visited{color:#54278f}.usa-banner__button:active,.usa-banner__button:hover{color:#1a4480}@media all and (max-width:39.99em){.usa-banner__button{width:100%}.usa-banner__button:enabled:focus{outline-offset:-.25rem}}@media all and (min-width:40em){.usa-banner__button{color:#005ea2;bottom:auto;left:auto;right:auto;top:auto;display:inline;margin-left:.5rem;position:relative}.usa-banner__button::after{background-image:url(../img/usa-icons/expand_more.svg);background-repeat:no-repeat;background-position:center center;background-size:1rem 1rem;display:inline-block;height:1rem;width:1rem;content:"";vertical-align:middle;margin-left:2px}@supports ((-webkit-mask:url()) or (mask:url())){.usa-banner__button::after{background:0 0;background-color:#005ea2;-webkit-mask-image:url(../img/usa-icons/expand_more.svg),linear-gradient(transparent,transparent);mask-image:url(../img/usa-icons/expand_more.svg),linear-gradient(transparent,transparent);-webkit-mask-position:center center;mask-position:center center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:1rem 1rem;mask-size:1rem 1rem}.usa-banner__button::after:hover{background-color:#1a4480}}.usa-banner__button:hover::after{content:"";background-color:#1a4480}.usa-banner__button:visited{color:#54278f}.usa-banner__button:active,.usa-banner__button:hover{color:#1a4480}.usa-banner__button::after,.usa-banner__button:hover::after{position:absolute}}@media (min-width:40em) and (forced-colors:active){.usa-banner__button::after,.usa-banner__button:hover::after{background-color:ButtonText}}@media all and (min-width:40em){.usa-banner__button:hover{text-decoration:none}}.usa-banner__button[aria-expanded=false],.usa-banner__button[aria-expanded=false]:hover,.usa-banner__button[aria-expanded=true],.usa-banner__button[aria-expanded=true]:hover{background-image:none}@media (forced-colors:active){.usa-banner__button[aria-expanded=false]::before,.usa-banner__button[aria-expanded=false]:hover::before,.usa-banner__button[aria-expanded=true]::before,.usa-banner__button[aria-expanded=true]:hover::before{content:none}}@media all and (max-width:39.99em){.usa-banner__button[aria-expanded=true]::after{background-image:url(../img/usa-icons/close.svg);background-repeat:no-repeat;background-position:center center;background-size:1.5rem 1.5rem;display:inline-block;height:3rem;width:3rem;content:"";vertical-align:middle;margin-left:0}@supports ((-webkit-mask:url()) or (mask:url())){.usa-banner__button[aria-expanded=true]::after{background:0 0;background-color:#005ea2;-webkit-mask-image:url(../img/usa-icons/close.svg),linear-gradient(transparent,transparent);mask-image:url(../img/usa-icons/close.svg),linear-gradient(transparent,transparent);-webkit-mask-position:center center;mask-position:center center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:1.5rem 1.5rem;mask-size:1.5rem 1.5rem}}.usa-banner__button[aria-expanded=true]::before{bottom:0;top:0;position:absolute;right:0;background-color:#dfe1e2;content:"";display:block;height:3rem;width:3rem}.usa-banner__button[aria-expanded=true]::after{bottom:0;top:0;position:absolute;right:0}}@media all and (min-width:40em){.usa-banner__button[aria-expanded=true]{height:auto;padding:0;position:relative}.usa-banner__button[aria-expanded=true]::after{background-image:url(../img/usa-icons/expand_less.svg);background-repeat:no-repeat;background-position:center center;background-size:1rem 1rem;display:inline-block;height:1rem;width:1rem;content:"";vertical-align:middle;margin-left:2px}@supports ((-webkit-mask:url()) or (mask:url())){.usa-banner__button[aria-expanded=true]::after{background:0 0;background-color:#005ea2;-webkit-mask-image:url(../img/usa-icons/expand_less.svg),linear-gradient(transparent,transparent);mask-image:url(../img/usa-icons/expand_less.svg),linear-gradient(transparent,transparent);-webkit-mask-position:center center;mask-position:center center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:1rem 1rem;mask-size:1rem 1rem}.usa-banner__button[aria-expanded=true]::after:hover{background-color:#1a4480}}.usa-banner__button[aria-expanded=true]:hover::after{content:"";background-color:#1a4480;position:absolute}.usa-banner__button[aria-expanded=true]::after{position:absolute}}@media (min-width:40em) and (forced-colors:active){.usa-banner__button[aria-expanded=true]::after,.usa-banner__button[aria-expanded=true]:hover::after{background-color:ButtonText}}.usa-banner__button-text{position:absolute;left:-999em;right:auto;text-decoration:underline}@media all and (min-width:40em){.usa-banner__button-text{position:static;display:inline}}@media (forced-colors:active){.usa-banner__button-text{color:LinkText}}.usa-banner__icon{width:2.5rem}.usa-js-loading .usa-banner__content{position:absolute;left:-999em;right:auto}.usa-breadcrumb{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.06rem;line-height:1.3;color:#1b1b1b;background-color:#fff;padding-left:0;padding-right:0}@media all and (min-width:30em){.usa-breadcrumb{padding-bottom:1rem;padding-top:1rem}.usa-breadcrumb:not(.usa-breadcrumb--wrap) .usa-breadcrumb__list{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}}.usa-breadcrumb__list{margin-bottom:0;margin-top:0;list-style-type:none;padding-left:0;display:block;padding:.25rem;margin-left:-.25rem;margin-right:-.25rem}.usa-breadcrumb__list-item{position:absolute;left:-999em;right:auto;display:inline}@media all and (max-width:29.99em){.usa-breadcrumb__list-item{white-space:normal}.usa-breadcrumb__list-item:nth-last-child(2){position:static}.usa-breadcrumb__list-item:nth-last-child(2) .usa-breadcrumb__link{padding-left:calc(2ex + 0px);text-indent:calc((2ex + 0px)*-1);display:inline-block;padding-bottom:1rem;padding-top:1rem}.usa-breadcrumb__list-item:nth-last-child(2) .usa-breadcrumb__link::before{background-image:url(../img/usa-icons/arrow_back.svg);background-repeat:no-repeat;background-position:center center;background-size:2ex 2ex;display:inline-block;height:2ex;width:2ex;content:"";vertical-align:baseline}@supports ((-webkit-mask:url()) or (mask:url())){.usa-breadcrumb__list-item:nth-last-child(2) .usa-breadcrumb__link::before{background:0 0;background-color:#71767a;-webkit-mask-image:url(../img/usa-icons/arrow_back.svg),linear-gradient(transparent,transparent);mask-image:url(../img/usa-icons/arrow_back.svg),linear-gradient(transparent,transparent);-webkit-mask-position:center center;mask-position:center center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:2ex 2ex;mask-size:2ex 2ex}}.usa-breadcrumb__list-item:nth-last-child(2) .usa-breadcrumb__link:before{bottom:-.2em;height:2ex;position:relative}.usa-breadcrumb__list-item:nth-last-child(2) .usa-breadcrumb__link,.usa-breadcrumb__list-item:nth-last-child(2) .usa-breadcrumb__link:active,.usa-breadcrumb__list-item:nth-last-child(2) .usa-breadcrumb__link:hover{text-decoration:none}.usa-breadcrumb__list-item:nth-last-child(2) .usa-breadcrumb__link span{text-decoration:underline}.usa-breadcrumb__list-item:nth-last-child(2) .usa-breadcrumb__link::before{margin-right:0}}@media all and (min-width:30em){.usa-breadcrumb__list-item{position:static}.usa-breadcrumb__list-item:not(:last-child)::after{background-image:url(../img/usa-icons/navigate_next.svg);background-repeat:no-repeat;background-position:center center;background-size:2ex 2ex;display:inline-block;width:2ex;content:"";vertical-align:baseline}@supports ((-webkit-mask:url()) or (mask:url())){.usa-breadcrumb__list-item:not(:last-child)::after{background:0 0;background-color:#71767a;-webkit-mask-image:url(../img/usa-icons/navigate_next.svg),linear-gradient(transparent,transparent);mask-image:url(../img/usa-icons/navigate_next.svg),linear-gradient(transparent,transparent);-webkit-mask-position:center center;mask-position:center center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:2ex 2ex;mask-size:2ex 2ex}}.usa-breadcrumb__list-item:not(:last-child)::after{bottom:-.2em;margin-left:0;margin-right:0;height:2ex;position:relative}}.usa-breadcrumb__link{color:#005ea2;display:inline;text-decoration:none}.usa-breadcrumb__link:visited{color:#54278f}.usa-breadcrumb__link:active,.usa-breadcrumb__link:hover{color:#1a4480}.usa-breadcrumb__link span{text-decoration:underline}@media all and (min-width:30em){.usa-breadcrumb--wrap{line-height:1.4}}.usa-breadcrumb--wrap .usa-breadcrumb__list-item{display:inline-block}.usa-button-group{margin-bottom:0;margin-top:0;display:flex;flex-direction:column;flex-wrap:wrap;list-style-type:none;margin-left:-.25rem;margin-right:-.25rem;padding-left:0}@media all and (min-width:30em){.usa-button-group{flex-wrap:nowrap;align-items:stretch;flex-direction:row}}.usa-button-group .usa-button-group{height:100%}@media all and (min-width:30em){.usa-button-group .usa-button-group .usa-button-group__item{margin-top:0;margin-bottom:0}}.usa-button-group .usa-button-group--segmented .usa-button-group__item{margin-top:0;margin-bottom:0}.usa-button-group__item{margin:.25rem}@media all and (min-width:30em){.usa-button-group__item:last-child{margin-right:0}}.usa-button-group__item .usa-button{height:100%;margin-left:0;margin-right:0}.usa-button-group--segmented{flex-direction:row;flex-wrap:nowrap;justify-content:space-between;margin-left:0;margin-right:0}@media all and (min-width:30em){.usa-button-group--segmented{justify-content:flex-start}}.usa-button-group--segmented .usa-button{position:relative;width:calc(100% + 2px)}@media all and (min-width:30em){.usa-button-group--segmented .usa-button{width:auto}}.usa-button-group--segmented .usa-button:active,.usa-button-group--segmented .usa-button:hover{z-index:2}.usa-button-group--segmented .usa-button:focus{z-index:3}.usa-button-group--segmented .usa-button-group__item{margin-left:0;margin-right:0;width:100%}@media all and (min-width:30em){.usa-button-group--segmented .usa-button-group__item{width:auto}}.usa-button-group--segmented .usa-button-group__item:first-child>.usa-button{border-top-right-radius:0;border-bottom-right-radius:0;margin-right:-1px}.usa-button-group--segmented .usa-button-group__item:last-child>.usa-button{border-top-left-radius:0;border-bottom-left-radius:0;margin-right:0;margin-left:-2px;width:calc(100% + 2px)}@media all and (min-width:30em){.usa-button-group--segmented .usa-button-group__item:last-child>.usa-button{margin-left:-1px;width:auto}}.usa-button-group--segmented .usa-button-group__item:where(:not(:first-child):not(:last-child))>.usa-button{border-radius:0;margin-right:-1px;margin-left:-1px}.usa-button-group--segmented .usa-button-group__item:where(:not(:last-child)) .usa-button::before{border-right:1px solid #1a4480;bottom:0;content:"";display:block;height:100%;position:absolute;right:1px;top:0;width:1px;z-index:3}.usa-button-group--segmented .usa-button-group__item:where(:not(:last-child)) .usa-button--secondary::before{border-right-color:#b50909}.usa-button-group--segmented .usa-button-group__item:where(:not(:last-child)) .usa-button--accent-cool::before{border-right-color:#28a0cb}.usa-button-group--segmented .usa-button-group__item:where(:not(:last-child)) .usa-button--base::before{border-right-color:#565c65}.usa-button-group--segmented .usa-button-group__item:where(:not(:last-child)) [class*=usa-button]:disabled::before,.usa-button-group--segmented .usa-button-group__item:where(:not(:last-child)) [class*=usa-button][aria-disabled=true]::before{border-right-color:#fff}.usa-button-group--segmented .usa-button-group__item:where(:not(:last-child)) .usa-button--outline::before,.usa-button-group--segmented .usa-button-group__item:where(:not(:last-child)) .usa-button:active::before{display:none}.usa-button{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.06rem;line-height:.9;color:#fff;background-color:#005ea2;-webkit-appearance:none;-moz-appearance:none;appearance:none;align-items:center;border:0;border-radius:.25rem;cursor:pointer;-moz-column-gap:.5rem;column-gap:.5rem;display:inline-flex;font-weight:700;justify-content:center;margin-right:.5rem;padding:.75rem 1.25rem;text-align:center;text-decoration:none;width:100%}@media all and (min-width:30em){.usa-button{width:auto}}.usa-button:visited{color:#fff}.usa-button.usa-button--hover,.usa-button:hover{color:#fff;background-color:#1a4480;border-bottom:0;text-decoration:none}.usa-button.usa-button--active,.usa-button:active{color:#fff;background-color:#162e51}.usa-button:not([disabled]).usa-focus,.usa-button:not([disabled]):focus{outline-offset:.25rem}.usa-button:disabled,.usa-button[aria-disabled=true]{color:#454545;background-color:#c9c9c9;cursor:not-allowed;opacity:1}.usa-button:disabled.usa-button--active.usa-focus,.usa-button:disabled.usa-button--active:active,.usa-button:disabled.usa-button--active:focus,.usa-button:disabled.usa-button--active:hover,.usa-button:disabled.usa-button--hover.usa-focus,.usa-button:disabled.usa-button--hover:active,.usa-button:disabled.usa-button--hover:focus,.usa-button:disabled.usa-button--hover:hover,.usa-button:disabled.usa-focus,.usa-button:disabled:active,.usa-button:disabled:focus,.usa-button:disabled:hover,.usa-button[aria-disabled=true].usa-button--active.usa-focus,.usa-button[aria-disabled=true].usa-button--active:active,.usa-button[aria-disabled=true].usa-button--active:focus,.usa-button[aria-disabled=true].usa-button--active:hover,.usa-button[aria-disabled=true].usa-button--hover.usa-focus,.usa-button[aria-disabled=true].usa-button--hover:active,.usa-button[aria-disabled=true].usa-button--hover:focus,.usa-button[aria-disabled=true].usa-button--hover:hover,.usa-button[aria-disabled=true].usa-focus,.usa-button[aria-disabled=true]:active,.usa-button[aria-disabled=true]:focus,.usa-button[aria-disabled=true]:hover{color:#454545;background-color:#c9c9c9}@media (forced-colors:active){.usa-button:disabled,.usa-button[aria-disabled=true]{border:0;color:GrayText}.usa-button:disabled.usa-focus,.usa-button:disabled:active,.usa-button:disabled:focus,.usa-button:disabled:hover,.usa-button[aria-disabled=true].usa-focus,.usa-button[aria-disabled=true]:active,.usa-button[aria-disabled=true]:focus,.usa-button[aria-disabled=true]:hover{color:GrayText}}.usa-button:disabled.usa-button--active,.usa-button:disabled.usa-button--hover,.usa-button[aria-disabled=true].usa-button--active,.usa-button[aria-disabled=true].usa-button--hover{color:#454545;background-color:#c9c9c9;cursor:not-allowed;opacity:1}@media (forced-colors:active){.usa-button:disabled.usa-button--active,.usa-button:disabled.usa-button--hover,.usa-button[aria-disabled=true].usa-button--active,.usa-button[aria-disabled=true].usa-button--hover{border:0;color:GrayText}.usa-button:disabled.usa-button--active.usa-focus,.usa-button:disabled.usa-button--active:active,.usa-button:disabled.usa-button--active:focus,.usa-button:disabled.usa-button--active:hover,.usa-button:disabled.usa-button--hover.usa-focus,.usa-button:disabled.usa-button--hover:active,.usa-button:disabled.usa-button--hover:focus,.usa-button:disabled.usa-button--hover:hover,.usa-button[aria-disabled=true].usa-button--active.usa-focus,.usa-button[aria-disabled=true].usa-button--active:active,.usa-button[aria-disabled=true].usa-button--active:focus,.usa-button[aria-disabled=true].usa-button--active:hover,.usa-button[aria-disabled=true].usa-button--hover.usa-focus,.usa-button[aria-disabled=true].usa-button--hover:active,.usa-button[aria-disabled=true].usa-button--hover:focus,.usa-button[aria-disabled=true].usa-button--hover:hover{color:GrayText}.usa-button:disabled:not(.usa-button--unstyled),.usa-button[aria-disabled=true]:not(.usa-button--unstyled){border:2px solid GrayText}}.usa-button .usa-icon{flex-shrink:0}@media (forced-colors:active){.usa-button:not(.usa-button--unstyled){border:2px solid transparent}}.usa-button--accent-cool,.usa-button--accent-cool:visited{color:#1b1b1b;background-color:#00bde3}.usa-button--accent-cool.usa-button--hover,.usa-button--accent-cool:hover{color:#1b1b1b;background-color:#28a0cb}.usa-button--accent-cool.usa-button--active,.usa-button--accent-cool:active{color:#fff;background-color:#07648d}.usa-button--accent-warm,.usa-button--accent-warm:visited{color:#1b1b1b;background-color:#fa9441}.usa-button--accent-warm.usa-button--hover,.usa-button--accent-warm:hover{color:#fff;background-color:#c05600}.usa-button--accent-warm.usa-button--active,.usa-button--accent-warm:active{color:#fff;background-color:#775540}.usa-button--outline{background-color:transparent;box-shadow:inset 0 0 0 2px #005ea2;color:#005ea2}.usa-button--outline:visited{color:#005ea2}.usa-button--outline.usa-button--hover,.usa-button--outline:hover{background-color:transparent;box-shadow:inset 0 0 0 2px #1a4480;color:#1a4480}.usa-button--outline.usa-button--active,.usa-button--outline:active{background-color:transparent;box-shadow:inset 0 0 0 2px #162e51;color:#162e51}.usa-button--outline.usa-button--inverse{box-shadow:inset 0 0 0 2px #dfe1e2;color:#dfe1e2}.usa-button--outline.usa-button--inverse:visited{color:#dfe1e2}.usa-button--outline.usa-button--inverse.usa-button--hover,.usa-button--outline.usa-button--inverse:hover{box-shadow:inset 0 0 0 2px #f0f0f0;color:#f0f0f0}.usa-button--outline.usa-button--inverse.usa-button--active,.usa-button--outline.usa-button--inverse:active{background-color:transparent;box-shadow:inset 0 0 0 2px #fff;color:#fff}.usa-button--outline.usa-button--inverse.usa-button--unstyled{text-decoration:underline;background-color:transparent;border:0;border-radius:0;box-shadow:none;font-weight:400;justify-content:normal;text-align:left;margin:0;padding:0;width:auto;color:#dfe1e2}.usa-button--outline.usa-button--inverse.usa-button--unstyled:focus{outline:.25rem solid #2491ff;outline-offset:0}.usa-button--outline.usa-button--inverse.usa-button--unstyled.usa-button--active,.usa-button--outline.usa-button--inverse.usa-button--unstyled.usa-button--disabled,.usa-button--outline.usa-button--inverse.usa-button--unstyled.usa-button--hover,.usa-button--outline.usa-button--inverse.usa-button--unstyled:active,.usa-button--outline.usa-button--inverse.usa-button--unstyled:disabled,.usa-button--outline.usa-button--inverse.usa-button--unstyled:disabled.usa-button--active,.usa-button--outline.usa-button--inverse.usa-button--unstyled:disabled.usa-button--hover,.usa-button--outline.usa-button--inverse.usa-button--unstyled:disabled.usa-focus,.usa-button--outline.usa-button--inverse.usa-button--unstyled:disabled:active,.usa-button--outline.usa-button--inverse.usa-button--unstyled:disabled:focus,.usa-button--outline.usa-button--inverse.usa-button--unstyled:disabled:hover,.usa-button--outline.usa-button--inverse.usa-button--unstyled:hover,.usa-button--outline.usa-button--inverse.usa-button--unstyled[aria-disabled=true],.usa-button--outline.usa-button--inverse.usa-button--unstyled[aria-disabled=true].usa-button--active,.usa-button--outline.usa-button--inverse.usa-button--unstyled[aria-disabled=true].usa-button--hover,.usa-button--outline.usa-button--inverse.usa-button--unstyled[aria-disabled=true].usa-focus,.usa-button--outline.usa-button--inverse.usa-button--unstyled[aria-disabled=true]:active,.usa-button--outline.usa-button--inverse.usa-button--unstyled[aria-disabled=true]:focus,.usa-button--outline.usa-button--inverse.usa-button--unstyled[aria-disabled=true]:hover{background-color:transparent;box-shadow:none;text-decoration:underline}.usa-button--outline.usa-button--inverse.usa-button--unstyled:disabled,.usa-button--outline.usa-button--inverse.usa-button--unstyled:disabled:hover,.usa-button--outline.usa-button--inverse.usa-button--unstyled[aria-disabled=true],.usa-button--outline.usa-button--inverse.usa-button--unstyled[aria-disabled=true]:focus,.usa-button--outline.usa-button--inverse.usa-button--unstyled[aria-disabled=true]:hover{color:#757575}@media (forced-colors:active){.usa-button--outline.usa-button--inverse.usa-button--unstyled:disabled,.usa-button--outline.usa-button--inverse.usa-button--unstyled:disabled:hover,.usa-button--outline.usa-button--inverse.usa-button--unstyled[aria-disabled=true],.usa-button--outline.usa-button--inverse.usa-button--unstyled[aria-disabled=true]:focus,.usa-button--outline.usa-button--inverse.usa-button--unstyled[aria-disabled=true]:hover{color:GrayText}}.usa-button--outline.usa-button--inverse.usa-button--unstyled:visited{color:#dfe1e2}.usa-button--outline.usa-button--inverse.usa-button--unstyled.usa-button--hover,.usa-button--outline.usa-button--inverse.usa-button--unstyled:hover{color:#f0f0f0}.usa-button--outline.usa-button--inverse.usa-button--unstyled.usa-button--active,.usa-button--outline.usa-button--inverse.usa-button--unstyled:active{color:#fff}.usa-button--base{color:#fff;background-color:#71767a}.usa-button--base.usa-button--hover,.usa-button--base:hover{color:#fff;background-color:#565c65}.usa-button--base.usa-button--active,.usa-button--base:active{color:#fff;background-color:#3d4551}.usa-button--secondary{color:#fff;background-color:#d83933}.usa-button--secondary.usa-button--hover,.usa-button--secondary:hover{color:#fff;background-color:#b50909}.usa-button--secondary.usa-button--active,.usa-button--secondary:active{color:#fff;background-color:#8b0a03}.usa-button--big{border-radius:.25rem;font-size:1.46rem;padding:1rem 1.5rem}.usa-button--outline-inverse:disabled,.usa-button--outline-inverse:disabled:active,.usa-button--outline-inverse:disabled:focus,.usa-button--outline-inverse:disabled:hover,.usa-button--outline-inverse[aria-disabled=true],.usa-button--outline-inverse[aria-disabled=true]:active,.usa-button--outline-inverse[aria-disabled=true]:focus,.usa-button--outline-inverse[aria-disabled=true]:hover,.usa-button--outline:disabled,.usa-button--outline:disabled:active,.usa-button--outline:disabled:focus,.usa-button--outline:disabled:hover,.usa-button--outline[aria-disabled=true],.usa-button--outline[aria-disabled=true]:active,.usa-button--outline[aria-disabled=true]:focus,.usa-button--outline[aria-disabled=true]:hover{background-color:transparent;color:#757575}.usa-button--outline:disabled,.usa-button--outline[aria-disabled=true]{box-shadow:inset 0 0 0 2px #c9c9c9}.usa-button--outline:disabled.usa-button--inverse,.usa-button--outline[aria-disabled=true].usa-button--inverse{box-shadow:inset 0 0 0 2px #919191;color:#919191}@media (forced-colors:active){.usa-button--outline:disabled.usa-button--inverse,.usa-button--outline[aria-disabled=true].usa-button--inverse{color:GrayText}}.usa-button--unstyled{color:#005ea2;text-decoration:underline;background-color:transparent;border:0;border-radius:0;box-shadow:none;font-weight:400;justify-content:normal;text-align:left;margin:0;padding:0;width:auto}.usa-button--unstyled:visited,.usa-footer__return-to-top a:visited{color:#54278f}.usa-button--unstyled:hover{color:#1a4480}.usa-button--unstyled:active{color:#162e51}.usa-button--unstyled:focus{outline:.25rem solid #2491ff;outline-offset:0}.usa-button--unstyled.usa-button--active,.usa-button--unstyled.usa-button--disabled,.usa-button--unstyled.usa-button--hover,.usa-button--unstyled:active,.usa-button--unstyled:disabled,.usa-button--unstyled:disabled.usa-button--active,.usa-button--unstyled:disabled.usa-button--hover,.usa-button--unstyled:disabled.usa-focus,.usa-button--unstyled:disabled:active,.usa-button--unstyled:disabled:focus,.usa-button--unstyled:disabled:hover,.usa-button--unstyled:hover,.usa-button--unstyled[aria-disabled=true],.usa-button--unstyled[aria-disabled=true].usa-button--active,.usa-button--unstyled[aria-disabled=true].usa-button--hover,.usa-button--unstyled[aria-disabled=true].usa-focus,.usa-button--unstyled[aria-disabled=true]:active,.usa-button--unstyled[aria-disabled=true]:focus,.usa-button--unstyled[aria-disabled=true]:hover{background-color:transparent;box-shadow:none;text-decoration:underline}.usa-button--unstyled.usa-button--hover,.usa-footer__return-to-top a:hover{color:#1a4480}.usa-button--unstyled.usa-button--active,.usa-footer__return-to-top a:active{color:#162e51}.usa-button--unstyled:disabled,.usa-button--unstyled:disabled:hover,.usa-button--unstyled[aria-disabled=true],.usa-button--unstyled[aria-disabled=true]:focus,.usa-button--unstyled[aria-disabled=true]:hover{color:#757575}@media (forced-colors:active){.usa-button--unstyled:disabled,.usa-button--unstyled:disabled:hover,.usa-button--unstyled[aria-disabled=true],.usa-button--unstyled[aria-disabled=true]:focus,.usa-button--unstyled[aria-disabled=true]:hover{color:GrayText}}.usa-card-group,.usa-prose .usa-card-group{margin-bottom:0;margin-top:0;list-style-type:none;padding-left:0}.usa-card-group{display:flex;flex-direction:column;flex-wrap:wrap;align-items:stretch;margin-left:-.5rem;margin-right:-.5rem}@media all and (min-width:40em){.usa-card-group{flex-direction:row}}.usa-card{margin-bottom:2.5rem;max-width:none}.usa-card:last-child,.usa-prose .usa-card:last-child{margin-bottom:2.5rem}@media all and (min-width:40em){.usa-card{margin-bottom:2rem}.usa-card:last-child{margin-bottom:2rem}}.usa-prose .usa-card{margin-bottom:2.5rem;max-width:none}@media all and (min-width:40em){.usa-prose .usa-card{margin-bottom:2rem}.usa-prose .usa-card:last-child{margin-bottom:2rem}}.usa-card__container{color:#1b1b1b;background-color:#fff;font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.06rem;line-height:1.5;border-width:2px;border-color:#dfe1e2;border-style:solid;display:flex;height:100%;flex-direction:column;margin-left:.5rem;margin-right:.5rem;position:relative;border-radius:.5rem}.usa-card:not(.usa-card--flag) .usa-card__container>:only-child{padding:1.5rem}.usa-card .usa-card__img{display:block}.usa-card__header{padding:1.5rem 1.5rem .5rem}.usa-card__header:last-child{padding-bottom:1.5rem}.usa-card__heading{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:1.34rem;line-height:1.2;margin:0}.usa-card__media{order:-1;min-height:1px}.usa-card__img{border-top-left-radius:calc(.5rem - 2px);border-top-right-radius:calc(.5rem - 2px);background-color:#f0f0f0;position:relative;overflow:hidden}.usa-card__img img{display:block;height:100%;width:100%;-o-object-fit:cover;object-fit:cover}.usa-card__media--inset{padding-top:1.5rem;padding-left:1.5rem;padding-right:1.5rem}.usa-card__media--inset .usa-card__img{border-radius:0}.usa-card__body{flex:1 1 0%;padding:.5rem 1.5rem;flex-basis:auto}.usa-card__body:last-child{padding-bottom:1.5rem}.usa-card__body:first-child{padding-top:1.5rem}.usa-card__body:only-child{padding-bottom:1.5rem;padding-top:1.5rem}.usa-card__footer{padding:.5rem 1.5rem 1.5rem}.usa-card__footer .usa-button:only-of-type{margin-right:0}.usa-card__body>:last-child,.usa-card__header>:last-child{padding-bottom:0;margin-bottom:0}.usa-card__body>:first-child,.usa-card__header>:first-child{margin-top:0;padding-top:0}.usa-card__body>:only-child,.usa-card__header>:only-child{margin-bottom:0;margin-top:0;padding-bottom:0;padding-top:0}.usa-card__body--exdent,.usa-card__footer--exdent,.usa-card__header--exdent,.usa-card__media--exdent{margin-inline:-2px}.usa-card__body--exdent>*,.usa-card__footer--exdent>*,.usa-card__header--exdent>*{padding-left:2px;padding-right:2px}.usa-card__media--exdent{margin-top:-2px}.usa-card__media--exdent .usa-card__img{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.usa-card--header-first .usa-card__header{border-top-left-radius:calc(.5rem - 2px);border-top-right-radius:calc(.5rem - 2px);padding-bottom:1rem}.usa-card--header-first .usa-card__header--exdent{border-top-left-radius:.5rem;border-top-right-radius:.5rem;margin-top:-2px}.usa-card--header-first .usa-card__media--inset{padding-top:0}.usa-card--header-first .usa-card__media{order:0}.usa-card--header-first .usa-card__media--exdent{margin-top:0}.usa-card--header-first .usa-card__img{border-radius:0}.usa-card--header-first .usa-card__body{padding-top:1rem}@media all and (min-width:40em){.usa-card--flag .usa-card__media{display:flex;overflow:hidden;bottom:0;top:0;left:0;position:absolute;width:15rem}.usa-card--flag .usa-card__img{border-radius:0;border-top-left-radius:calc(.5rem - 2px);border-bottom-left-radius:calc(.5rem - 2px)}.usa-card--flag .usa-card__body,.usa-card--flag .usa-card__footer,.usa-card--flag .usa-card__header{margin-left:15rem}.usa-card--flag .usa-card__media--exdent{margin:-2px}.usa-card--flag .usa-card__media--exdent .usa-card__img{border-bottom-left-radius:.5rem;border-top-left-radius:.5rem}.usa-card--flag .usa-card__media--inset{padding-right:0;padding-bottom:1.5rem}.usa-card--flag .usa-card__media--inset .usa-card__img,.usa-card--flag.usa-card--media-right .usa-card__media--inset .usa-card__img{border-radius:0}.usa-card--flag.usa-card--header-first .usa-card__header{padding-bottom:.5rem}.usa-card--flag.usa-card--header-first .usa-card__body{padding-top:.5rem}.usa-card--flag.usa-card--header-first .usa-card__media--inset{padding-top:1.5rem}.usa-card--flag.usa-card--media-right .usa-card__media{left:auto;right:0}.usa-card--flag.usa-card--media-right .usa-card__media--inset{padding-left:0;padding-right:1.5rem}.usa-card--flag.usa-card--media-right .usa-card__img{border-top-right-radius:calc(.5rem - 2px);border-bottom-right-radius:calc(.5rem - 2px)}.usa-card--flag.usa-card--media-right .usa-card__body,.usa-card--flag.usa-card--media-right .usa-card__footer,.usa-card--flag.usa-card--media-right .usa-card__header{margin-left:0;margin-right:15rem}.usa-card--flag.usa-card--media-right .usa-card__img{border-radius:0;border-bottom-right-radius:.5rem;border-top-right-radius:.5rem}}.usa-card:not(.usa-card--flag).usa-card__media--set-aspect{box-sizing:border-box;height:0;overflow:hidden;padding-bottom:56.25%;position:relative}@supports (aspect-ratio:1){.usa-card:not(.usa-card--flag).usa-card__media--set-aspect{height:inherit;padding:inherit;aspect-ratio:1.7777777778;max-width:100%}.usa-card:not(.usa-card--flag).usa-card__media--set-aspect>*{position:absolute;top:0;left:0;width:100%;height:100%}.usa-card:not(.usa-card--flag).usa-card__media--set-aspect>img,img.usa-card:not(.usa-card--flag).usa-card__media--set-aspect{-o-object-fit:cover;object-fit:cover}}.usa-card:not(.usa-card--flag).usa-card__media--set-aspect .usa-card__img{position:absolute;bottom:0;left:0;right:0;top:0}.usa-checklist{margin-bottom:0;margin-top:0;list-style-type:none;padding-left:0;font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.06rem;line-height:1.5}.usa-checklist__item{text-indent:-2.5rem;margin-top:0;margin-bottom:0;margin-top:.5rem}.usa-checklist__item::before{content:" ";display:inline-block;height:1rem;margin-left:-.25rem;margin-right:.75rem;width:2rem}.usa-checklist__item.usa-checklist__item--checked::before{background-image:url(../img/usa-icons-bg/check--blue-60v.svg),linear-gradient(transparent,transparent);background-repeat:no-repeat;background-position:center;background-size:1.5rem}.usa-collection{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.06rem;margin-bottom:1em;margin-top:1em;line-height:1.5;padding-left:0}.usa-collection:last-child,.usa-collection__item:last-child,.usa-graphic-list .usa-graphic-list__row:last-child .usa-media-block:last-child,.usa-prose .usa-collection:last-child,.usa-prose .usa-collection__item:last-child{margin-bottom:0}.usa-collection ol,.usa-collection ul,.usa-prose .usa-collection ol,.usa-prose .usa-collection ul{margin-top:.25em}.usa-prose .usa-collection{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.06rem;margin-bottom:1em;margin-top:1em;line-height:1.5;padding-left:0}.usa-collection__item,.usa-prose .usa-collection__item{max-width:68ex;margin-bottom:0;margin-top:0;list-style-type:none;padding-left:0;align-items:flex-start;border-top-width:1px;border-top-style:solid;display:flex;margin-bottom:1rem;margin-top:1rem;padding-top:1rem}.usa-collection__calendar-date,.usa-collection__img{flex-shrink:0;width:4rem;margin-right:1rem}@media all and (min-width:40em){.usa-collection__calendar-date,.usa-collection__img{width:5rem}}.usa-collection__body{flex:1 1 0%}.usa-collection__heading{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.13rem;line-height:1.3;margin-bottom:0;margin-top:0}.usa-collection__description{margin-bottom:.5rem;margin-top:.5rem}.usa-collection__meta{margin-bottom:0;margin-top:0;list-style-type:none;padding-left:0;margin-top:.25rem}.usa-collection__meta-item{margin-top:.25rem;font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:.93rem;line-height:1.3;display:block;margin-right:.5rem}.usa-collection__meta-item.usa-tag{background-color:#dfe1e2;line-height:.9;padding-bottom:.25rem;padding-top:.25rem;color:#1b1b1b;display:inline-block;margin-top:.25rem}.usa-collection__meta-item.usa-tag--new{background-color:#c05600;color:#fff}.usa-collection__calendar-date,.usa-footer__social-links a,.usa-form abbr[title=required]{text-decoration:none}.usa-collection__calendar-date-day,.usa-collection__calendar-date-month{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.13rem;display:block;font-weight:700;padding:.25rem;text-align:center}@media all and (min-width:40em){.usa-collection__calendar-date-day,.usa-collection__calendar-date-month{padding:.5rem}}.usa-collection__calendar-date-month{border-top-left-radius:2px;border-top-right-radius:2px;background-color:#005ea2;color:#fff}.usa-collection__calendar-date-day{border-bottom-left-radius:2px;border-bottom-right-radius:2px;border:1px solid #005ea2;color:#005ea2}.usa-collection--condensed .usa-collection__item{margin-bottom:.5rem;margin-top:.5rem;padding-top:.5rem}.usa-embed-container embed,.usa-embed-container iframe,.usa-embed-container object{position:absolute;top:0;left:0;width:100%;height:100%}.usa-embed-container{box-sizing:border-box;height:0;overflow:hidden;padding-bottom:56.25%;position:relative;max-width:100%}@supports (aspect-ratio:1){.usa-embed-container{height:inherit;padding:inherit;aspect-ratio:1.7777777778;max-width:100%}.usa-embed-container>*{position:absolute;top:0;left:0;width:100%;height:100%}.usa-embed-container>img,img.usa-embed-container{-o-object-fit:cover;object-fit:cover}}.usa-footer{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.06rem;line-height:1.5}.usa-footer>.grid-container{margin-left:auto;margin-right:auto;max-width:64rem;padding-left:1rem;padding-right:1rem}@media all and (min-width:64em){.usa-footer>.grid-container{padding-left:2rem;padding-right:2rem}}.usa-footer__return-to-top{padding-bottom:1.25rem;padding-top:1.25rem;line-height:.9}.usa-footer__return-to-top a:focus{outline:.25rem solid #2491ff;outline-offset:0}.usa-footer__nav{margin-left:auto;margin-right:auto;max-width:64rem;padding-left:1rem;padding-right:1rem;padding-left:0;padding-right:0;border-bottom:1px solid #a9aeb1}@media all and (min-width:64em){.usa-footer__nav{padding-left:2rem;padding-right:2rem}}@media all and (min-width:30em){.usa-footer__nav{padding-left:1rem;padding-right:1rem;border-bottom:none}}@media all and (min-width:30em) and (min-width:64em){.usa-footer__nav{padding-left:2rem;padding-right:2rem}}.usa-footer__nav>ul{margin-bottom:0;margin-top:0;list-style-type:none;padding-left:0}.usa-footer__primary-section{background-color:#f0f0f0}.usa-footer__primary-container,.usa-footer__primary-section>.grid-container{margin-left:auto;margin-right:auto;max-width:64rem;padding-left:1rem;padding-right:1rem}@media all and (min-width:64em){.usa-footer__primary-section>.grid-container{padding-left:2rem;padding-right:2rem}}.usa-footer__primary-container{padding-left:0;padding-right:0}@media all and (min-width:64em){.usa-footer__primary-container{padding-left:2rem;padding-right:2rem}}.usa-footer__primary-content{line-height:1.1}.usa-footer__primary-link{padding:1rem;color:#1b1b1b;font-weight:700;border:0;border-top:1px solid #a9aeb1;display:block}@media all and (min-width:30em){.usa-footer__primary-link{padding-left:0;padding-right:0;border:0}}.usa-footer__primary-link--button{width:100%;cursor:pointer}.usa-footer__primary-link--button::before{background-image:url(../img/usa-icons/expand_more.svg);background-repeat:no-repeat;background-position:center center;background-size:1.25rem 1.25rem;display:inline-block;vertical-align:middle}@supports ((-webkit-mask:url()) or (mask:url())){.usa-footer__primary-link--button::before{background:0 0;background-color:currentColor;-webkit-mask-image:url(../img/usa-icons/expand_more.svg),linear-gradient(transparent,transparent);mask-image:url(../img/usa-icons/expand_more.svg),linear-gradient(transparent,transparent);-webkit-mask-position:center center;mask-position:center center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:1.25rem 1.25rem;mask-size:1.25rem 1.25rem}}.usa-footer__primary-link--button:not([disabled]):focus{outline:.25rem solid #2491ff;outline-offset:-.25rem}.usa-footer__primary-link--button::before{height:1.25rem;width:1.25rem;align-items:center;background-size:contain;content:"";display:inline-flex;justify-content:center;margin-right:.25rem;margin-left:-.25rem}@media (forced-colors:active){.usa-footer__primary-link--button::before{background-color:buttonText!important}}.usa-footer__primary-link--button+.usa-list--unstyled{margin-top:.5rem;margin-bottom:.5rem}.usa-footer__primary-link--button[aria-expanded=false]::before{background-image:url(../img/usa-icons/navigate_next.svg);background-repeat:no-repeat;background-position:center center;background-size:1.25rem 1.25rem;display:inline-block;height:1.25rem;width:1.25rem;content:"";vertical-align:middle;margin-right:.25rem}@supports ((-webkit-mask:url()) or (mask:url())){.usa-footer__primary-link--button[aria-expanded=false]::before{background:0 0;background-color:currentColor;-webkit-mask-image:url(../img/usa-icons/navigate_next.svg),linear-gradient(transparent,transparent);mask-image:url(../img/usa-icons/navigate_next.svg),linear-gradient(transparent,transparent);-webkit-mask-position:center center;mask-position:center center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:1.25rem 1.25rem;mask-size:1.25rem 1.25rem}}.usa-footer__primary-link--button[aria-expanded=false]+.usa-list--unstyled{display:none}.usa-footer__secondary-link{line-height:1.1;margin-left:1rem;padding:0}.usa-footer__secondary-link a:visited{color:#54278f}.usa-footer__secondary-link a:hover{color:#1a4480}.usa-footer__secondary-link a:active{color:#162e51}.usa-footer__secondary-link a:focus{outline:.25rem solid #2491ff;outline-offset:0}.usa-footer__secondary-link+.usa-footer__secondary-link{padding-top:1rem}@media all and (min-width:30em){.usa-footer__secondary-link{margin-left:0}}.usa-footer__contact-info{line-height:1.1}@media all and (min-width:30em){.usa-footer__contact-info{justify-content:flex-end;margin-top:.5rem}}.usa-sign-up{padding-bottom:2rem;padding-top:1.5rem}.usa-sign-up .usa-button,.usa-sign-up .usa-label{margin-top:.75rem}.usa-sign-up__heading{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:1.34rem;line-height:1.2;font-weight:700;margin:0}.usa-footer__secondary-section{padding-bottom:1.25rem;padding-top:1.25rem;color:#1b1b1b;background-color:#dfe1e2}.usa-footer__secondary-section>.grid-container{margin-left:auto;margin-right:auto;max-width:64rem;padding-left:1rem;padding-right:1rem}@media all and (min-width:64em){.usa-footer__secondary-section>.grid-container{padding-left:2rem;padding-right:2rem}}.usa-footer__secondary-section>.grid-container>.grid-row{justify-content:space-between}.usa-footer__logo{margin-bottom:.5rem;margin-top:.5rem}@media all and (min-width:30em){.usa-footer__logo{margin-bottom:0;margin-top:0;align-items:center}}.usa-footer__logo-img{max-width:5rem}.usa-footer__logo-heading{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.46rem;line-height:.9;font-weight:700;margin-bottom:.5rem;margin-top:.5rem}.usa-footer__contact-links{margin-top:1.5rem}@media all and (min-width:30em){.usa-footer__contact-links{margin-top:0;text-align:right}}.usa-footer__contact-heading{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.46rem;line-height:1.1;font-weight:700;margin-top:0}@media all and (min-width:30em){.usa-footer__contact-heading{margin-bottom:.25rem;margin-top:.25rem}}.usa-footer__social-links{line-height:.9;padding-bottom:.5rem}@media all and (min-width:30em){.usa-footer__social-links{justify-content:flex-end}}.usa-social-link{height:3rem;width:3rem;background-color:rgba(0,0,0,.1);display:inline-block;padding:.25rem}.usa-social-link:hover{background-color:#fff}@media (forced-colors:active){.usa-social-link{background-color:#d3d3d3;forced-color-adjust:none}}.usa-social-link__icon{display:block;height:auto;width:100%}@media all and (min-width:30em){.usa-footer__address{justify-content:flex-end}}@media all and (min-width:64em){.usa-footer--slim .usa-footer__nav{padding-left:0;padding-right:0}}.usa-footer--slim .usa-footer__address{padding:1rem}@media all and (min-width:30em){.usa-footer--slim .usa-footer__address{padding:0}}.usa-footer--slim .usa-footer__logo{align-items:center}.usa-footer--slim .usa-footer__logo-img{max-width:3rem}.usa-footer--slim .usa-footer__contact-info{display:inline-block}@media all and (min-width:30em){.usa-footer--slim .usa-footer__contact-info{padding-bottom:1rem;padding-top:1rem;margin-top:0}}.usa-footer--big .usa-footer__nav{margin-left:-1rem;margin-right:-1rem}@media all and (min-width:30em){.usa-footer--big .usa-footer__nav{border-bottom:1px solid #a9aeb1;padding-top:2rem}}@media all and (min-width:40em){.usa-footer--big .usa-footer__nav{margin-left:0;margin-right:0;padding-left:0;padding-right:0;border-bottom:none}}.usa-footer--big .usa-footer__primary-link{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:.98rem;font-weight:700;line-height:1.2;margin:0}@media all and (min-width:30em){.usa-footer--big .usa-footer__primary-link{padding-bottom:0;padding-top:0;margin-bottom:.5rem}.usa-footer--big .usa-footer__primary-link:hover{cursor:auto;text-decoration:none}}.usa-footer--big .usa-footer__primary-content--collapsible .usa-footer__primary-link{align-items:center;display:flex;justify-content:flex-start}.usa-footer--big .usa-footer__primary-content--collapsible .usa-list--unstyled{padding-left:1rem;padding-right:1rem;padding-bottom:1.25rem}@media all and (min-width:30em){.usa-footer--big .usa-footer__primary-content--collapsible .usa-list--unstyled{padding-left:0;padding-right:0;padding-bottom:2rem;padding-top:.75rem}}.usa-form{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.06rem;line-height:1.3}@media all and (min-width:30em){.usa-form{max-width:20rem}}.usa-form :where(.usa-input,.usa-textarea,.usa-select,.usa-range){max-width:none}.usa-form .usa-button{margin-top:.5rem}@media all and (min-width:30em){.usa-form .usa-button{margin-top:1.5rem}}.usa-form a:where(:not(.usa-button)){color:#005ea2;text-decoration:underline}.usa-form a:where(:not(.usa-button)):visited{color:#54278f}.usa-form a:where(:not(.usa-button)):hover{color:#1a4480}.usa-form a:where(:not(.usa-button)):active{color:#162e51}.usa-form a:where(:not(.usa-button)):focus{outline:.25rem solid #2491ff;outline-offset:0}@media all and (min-width:30em){.usa-form--large{max-width:30rem}}.usa-show-password{color:#005ea2;text-decoration:underline;background-color:transparent;border:0;border-radius:0;box-shadow:none;font-weight:400;justify-content:normal;text-align:left;margin:0;padding:0;width:auto;cursor:pointer}.usa-show-password:visited{color:#54278f}.usa-show-password:hover{color:#1a4480}.usa-show-password:active{color:#162e51}.usa-show-password:focus{outline:.25rem solid #2491ff;outline-offset:0}.usa-show-password.usa-button--active,.usa-show-password.usa-button--disabled,.usa-show-password.usa-button--hover,.usa-show-password:active,.usa-show-password:disabled,.usa-show-password:disabled.usa-button--active,.usa-show-password:disabled.usa-button--hover,.usa-show-password:disabled.usa-focus,.usa-show-password:disabled:active,.usa-show-password:disabled:focus,.usa-show-password:disabled:hover,.usa-show-password:hover,.usa-show-password[aria-disabled=true],.usa-show-password[aria-disabled=true].usa-button--active,.usa-show-password[aria-disabled=true].usa-button--hover,.usa-show-password[aria-disabled=true].usa-focus,.usa-show-password[aria-disabled=true]:active,.usa-show-password[aria-disabled=true]:focus,.usa-show-password[aria-disabled=true]:hover{background-color:transparent;box-shadow:none;text-decoration:underline}.usa-show-password.usa-button--hover{color:#1a4480}.usa-show-password.usa-button--active{color:#162e51}.usa-show-password:disabled,.usa-show-password:disabled:hover,.usa-show-password[aria-disabled=true],.usa-show-password[aria-disabled=true]:focus,.usa-show-password[aria-disabled=true]:hover{color:#757575}@media (forced-colors:active){.usa-show-password:disabled,.usa-show-password:disabled:hover,.usa-show-password[aria-disabled=true],.usa-show-password[aria-disabled=true]:focus,.usa-show-password[aria-disabled=true]:hover{color:GrayText}}.usa-form__note,.usa-graphic-list,.usa-show-password{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif}.usa-form__note,.usa-show-password{font-size:.93rem;line-height:1.3;float:right;margin:.25rem 0 1rem}.usa-graphic-list{font-size:1.06rem;line-height:1.5}.usa-graphic-list .usa-graphic-list__row .usa-media-block{margin-bottom:2rem}@media all and (min-width:40em){.usa-graphic-list .usa-graphic-list__row .usa-media-block{margin-bottom:4rem}.usa-graphic-list .usa-graphic-list__row:last-child .usa-media-block{margin-bottom:0}}.usa-graphic-list .usa-media-block__img{margin-right:1.5rem}.usa-graphic-list .usa-media-block__body>:first-child{margin-top:0}.usa-graphic-list__heading{margin-bottom:0;margin-top:0;clear:both;font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:1.34rem;line-height:1.2;font-weight:700}*+.usa-graphic-list__heading{margin-top:1.5em}.usa-graphic-list__heading+*{margin-top:1em}.usa-header{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.06rem;line-height:1.5}.usa-header::after{clear:both;content:"";display:block}.usa-header a{border-bottom:none}.usa-header .usa-search{margin-top:.5rem}@media all and (min-width:64em){.usa-header .usa-search{float:right}.usa-header [role=search]{float:right;max-width:calc(27ch + 3rem);width:100%}}.usa-header [type=search]{min-width:0}@media all and (min-width:64em){.usa-header+.usa-hero{border-top:1px solid #fff}.usa-header+.usa-section,.usa-header+main{border-top:1px solid #dfe1e2}}@media all and (max-width:63.99em){.usa-logo{flex:1 1 0%;font-size:.93rem;line-height:.9;margin-left:1rem}}@media all and (min-width:64em){.usa-logo{margin-top:2rem;margin-bottom:1rem;font-size:1.46rem;line-height:1.1}}.usa-logo a{color:#1b1b1b;text-decoration:none}.usa-logo__text{display:block;font-style:normal;font-weight:700;margin:0}.usa-menu-btn{border:0;border-radius:0;box-shadow:none;font-weight:400;justify-content:normal;margin:0;padding:0;width:auto;flex:0 1 auto;padding-left:.75rem;padding-right:.75rem;background-color:#005ea2;color:#fff;font-size:.87rem;height:3rem;text-align:center;text-decoration:none;text-transform:uppercase}.usa-menu-btn:focus{outline:.25rem solid #2491ff;outline-offset:0}.usa-menu-btn.usa-button--active,.usa-menu-btn.usa-button--disabled,.usa-menu-btn.usa-button--hover,.usa-menu-btn:active,.usa-menu-btn:disabled,.usa-menu-btn:disabled.usa-button--active,.usa-menu-btn:disabled.usa-button--hover,.usa-menu-btn:disabled.usa-focus,.usa-menu-btn:disabled:active,.usa-menu-btn:disabled:focus,.usa-menu-btn:disabled:hover,.usa-menu-btn:hover,.usa-menu-btn[aria-disabled=true],.usa-menu-btn[aria-disabled=true].usa-button--active,.usa-menu-btn[aria-disabled=true].usa-button--hover,.usa-menu-btn[aria-disabled=true].usa-focus,.usa-menu-btn[aria-disabled=true]:active,.usa-menu-btn[aria-disabled=true]:focus,.usa-menu-btn[aria-disabled=true]:hover{background-color:transparent;box-shadow:none;text-decoration:underline}.usa-menu-btn.usa-button--hover{color:#1a4480}.usa-menu-btn.usa-button--active{color:#162e51}.usa-menu-btn:disabled,.usa-menu-btn:disabled:hover,.usa-menu-btn[aria-disabled=true],.usa-menu-btn[aria-disabled=true]:focus,.usa-menu-btn[aria-disabled=true]:hover{color:#757575}@media (forced-colors:active){.usa-menu-btn:disabled,.usa-menu-btn:disabled:hover,.usa-menu-btn[aria-disabled=true],.usa-menu-btn[aria-disabled=true]:focus,.usa-menu-btn[aria-disabled=true]:hover{color:GrayText}}@media all and (min-width:64em){.usa-menu-btn{display:none}}.usa-menu-btn:hover{background-color:#1a4480;color:#fff;text-decoration:none}.usa-menu-btn:active,.usa-menu-btn:visited{color:#fff}.usa-overlay{bottom:0;left:0;right:0;top:0;position:fixed;background:rgba(0,0,0,.7);opacity:0;transition:opacity .15s ease-in-out;visibility:hidden;z-index:400}.usa-overlay.is-visible{opacity:1;visibility:visible}@media all and (min-width:64em){.usa-header--basic .usa-navbar{position:relative;width:33%}.usa-header--basic .usa-nav{flex-direction:row;align-items:center;justify-content:flex-end;display:flex;padding:0 0 .5rem .5rem;width:100%}.usa-header--basic .usa-nav-container{align-items:flex-end;justify-content:space-between;display:flex}.usa-header--basic .usa-nav__link:hover,.usa-header--basic .usa-nav__primary-item>.usa-current{position:relative}.usa-header--basic .usa-nav__link:hover::after,.usa-header--basic .usa-nav__primary-item>.usa-current::after{background-color:#005ea2;border-radius:0;content:"";display:block;position:absolute;height:.25rem;left:1rem;right:1rem;bottom:-.25rem}}@media (min-width:64em) and (forced-colors:active){.usa-header--basic .usa-nav__link:hover::after,.usa-header--basic .usa-nav__primary-item>.usa-current::after{background-color:ButtonText}}@media all and (min-width:64em){.usa-header--basic .usa-nav__link[aria-expanded=true]::after,.usa-header--basic .usa-nav__link[aria-expanded=true]:hover::after{display:none}.usa-header--basic .usa-nav__primary{width:auto}.usa-header--basic .usa-nav__primary-item:last-of-type{position:relative}.usa-header--basic .usa-nav__primary-item:last-of-type .usa-nav__submenu{position:absolute;right:0}.usa-header--basic .usa-search{top:0}}.usa-header--basic.usa-header--megamenu .usa-nav__inner{display:flex;flex-direction:column}@media all and (min-width:64em){.usa-header--basic.usa-header--megamenu .usa-nav__inner{display:block;float:right;margin-top:-2.5rem}.usa-header--basic.usa-header--megamenu .usa-nav__primary-item:last-of-type{position:static}.usa-header--extended{padding-top:0}.usa-header--extended .usa-nav__primary-item>.usa-current,.usa-header--extended .usa-nav__primary-item>.usa-nav__link:hover{position:relative}.usa-header--extended .usa-nav__primary-item>.usa-current::after,.usa-header--extended .usa-nav__primary-item>.usa-nav__link:hover::after{background-color:#005ea2;border-radius:0;content:"";display:block;position:absolute;height:.25rem;left:1rem;right:1rem;bottom:0}}@media (min-width:64em) and (forced-colors:active){.usa-header--extended .usa-nav__primary-item>.usa-current::after,.usa-header--extended .usa-nav__primary-item>.usa-nav__link:hover::after{background-color:ButtonText}}@media all and (min-width:64em){.usa-header--extended .usa-nav__link[aria-expanded=true]::after,.usa-header--extended .usa-nav__link[aria-expanded=true]:hover::after{display:none}.usa-header--extended .usa-logo{font-size:2.13rem;margin:2rem 0 1.5rem;max-width:33%}.usa-header--extended .usa-navbar{margin-left:auto;margin-right:auto;max-width:64rem;padding-left:1rem;padding-right:1rem;display:block;height:auto;overflow:auto}}@media all and (min-width:64em) and (min-width:64em){.usa-header--extended .usa-navbar{padding-left:2rem;padding-right:2rem}}@media all and (min-width:64em){.usa-header--extended .usa-nav{border-top:1px solid #dfe1e2;padding:0;width:100%}.usa-header--extended .usa-nav__inner{margin-left:auto;margin-right:auto;max-width:64rem;padding-left:1rem;padding-right:1rem;position:relative}}@media all and (min-width:64em) and (min-width:64em){.usa-header--extended .usa-nav__inner{padding-left:2rem;padding-right:2rem}}@media all and (min-width:64em){.usa-header--extended .usa-nav__primary{margin-left:-1rem}.usa-header--extended .usa-nav__primary::after{clear:both;content:"";display:block}.usa-header--extended .usa-nav__link{padding-bottom:1rem;padding-top:1rem}.usa-header--extended .usa-nav__submenu .usa-grid-full{padding-left:.75rem}.usa-header--extended .usa-nav__submenu.usa-megamenu{left:0;padding-left:2rem;padding-right:2rem}}html.usa-js-loading .usa-nav__submenu,html.usa-js-loading .usa-nav__submenu.usa-megamenu{position:absolute;left:-999em;right:auto}.usa-megamenu .usa-col{flex:1 1 auto}@media all and (min-width:64em){.usa-megamenu .usa-col{flex:4 1 0%}.usa-megamenu .usa-col .usa-nav__submenu-item a{padding-left:.5rem;padding-right:.5rem}.usa-megamenu .usa-col:first-child .usa-nav__submenu-item a{padding-left:0}.usa-megamenu .usa-col:last-child .usa-nav__submenu-item a{padding-right:0}.usa-megamenu.usa-nav__submenu{padding-left:0;padding-right:0;padding-bottom:2rem;padding-top:2rem;left:-33%;right:0;width:auto}.usa-megamenu.usa-nav__submenu::after,.usa-megamenu.usa-nav__submenu::before{bottom:0;top:0;background-color:#162e51;content:"";display:block;position:absolute;width:calc(50vw - 32rem + 2rem)}.usa-megamenu.usa-nav__submenu::before{right:100%}.usa-megamenu.usa-nav__submenu::after{left:100%}.usa-header--extended .usa-megamenu.usa-nav__submenu::after,.usa-header--extended .usa-megamenu.usa-nav__submenu::before{bottom:0;top:0;background-color:#162e51;content:"";display:block;position:absolute;width:calc(50vw - 32rem)}.usa-nav-container{margin-left:auto;margin-right:auto;max-width:64rem;padding-left:2rem;padding-right:2rem}.usa-nav-container::after{clear:both;content:"";display:block}}@media all and (min-width:64em) and (min-width:64em){.usa-nav-container{padding-left:2rem;padding-right:2rem}}.usa-navbar{height:3rem}@media all and (max-width:63.99em){.usa-navbar{align-items:center;border-bottom:1px solid #dfe1e2;display:flex}}@media all and (min-width:64em){.usa-navbar{border-bottom:none;display:inline-block;height:auto}}.usa-hero,.usa-icon-list__content>ol,.usa-icon-list__content>p,.usa-icon-list__content>ul{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.06rem}.usa-hero{line-height:1.5;background-image:url(../img/hero.jpg);background-position:center;background-size:cover;color:#fff}.usa-hero>.grid-container{position:relative;padding-bottom:2rem;padding-top:2rem}.usa-hero__callout{background-color:#162e51;padding:2rem}@media all and (min-width:40em){.usa-hero__callout{max-width:20rem}}.usa-hero__heading{margin-bottom:0;margin-top:0;clear:both;font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:1.95rem;font-weight:700;color:#00bde3;line-height:1.2}*+.usa-hero__heading{margin-top:1.5em}.usa-hero__heading+*{margin-top:1em}.usa-hero__heading--alt{color:#fff;display:block}.usa-icon-list{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.06rem;line-height:1.5;margin-bottom:0;margin-top:0;list-style-type:none;padding-left:0;max-width:72ex}.usa-icon-list__item{display:flex;position:relative}.usa-icon-list__item+.usa-icon-list__item,.usa-prose .usa-icon-list__item+.usa-icon-list__item{padding-top:.75rem}.usa-prose .usa-icon-list{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.06rem;line-height:1.5;margin-bottom:0;margin-top:0;list-style-type:none;padding-left:0;max-width:72ex}.usa-prose .usa-icon-list__item{display:flex;position:relative}.usa-icon-list--base-lightest .usa-icon-list__icon{color:#f0f0f0}.usa-icon-list--base-lighter .usa-icon-list__icon,.usa-identifier__identity-disclaimer a,.usa-identifier__identity-disclaimer a:visited{color:#dfe1e2}.usa-icon-list--base-light .usa-icon-list__icon{color:#a9aeb1}.usa-icon-list--base .usa-icon-list__icon{color:#71767a}.usa-icon-list--base-dark .usa-icon-list__icon{color:#565c65}.usa-icon-list--base-darker .usa-icon-list__icon{color:#3d4551}.usa-icon-list--base-darkest .usa-icon-list__icon{color:#1b1b1b}.usa-icon-list--primary-lighter .usa-icon-list__icon{color:#d9e8f6}.usa-icon-list--primary-light .usa-icon-list__icon{color:#73b3e7}.usa-icon-list--primary .usa-icon-list__icon{color:#005ea2}.usa-icon-list--primary-vivid .usa-icon-list__icon{color:#0050d8}.usa-icon-list--primary-dark .usa-icon-list__icon{color:#1a4480}.usa-icon-list--primary-darker .usa-icon-list__icon{color:#162e51}.usa-icon-list--secondary-lighter .usa-icon-list__icon{color:#f3e1e4}.usa-icon-list--secondary-light .usa-icon-list__icon{color:#f2938c}.usa-icon-list--secondary .usa-icon-list__icon{color:#d83933}.usa-icon-list--secondary-vivid .usa-icon-list__icon{color:#e41d3d}.usa-icon-list--secondary-dark .usa-icon-list__icon{color:#b50909}.usa-icon-list--secondary-darker .usa-icon-list__icon{color:#8b0a03}.usa-icon-list--accent-warm-lighter .usa-icon-list__icon{color:#f2e4d4}.usa-icon-list--accent-warm-light .usa-icon-list__icon{color:#ffbc78}.usa-icon-list--accent-warm .usa-icon-list__icon{color:#fa9441}.usa-icon-list--accent-warm-dark .usa-icon-list__icon{color:#c05600}.usa-icon-list--accent-warm-darker .usa-icon-list__icon{color:#775540}.usa-icon-list--accent-cool-lighter .usa-icon-list__icon{color:#e1f3f8}.usa-icon-list--accent-cool-light .usa-icon-list__icon{color:#97d4ea}.usa-icon-list--accent-cool .usa-icon-list__icon{color:#00bde3}.usa-icon-list--accent-cool-dark .usa-icon-list__icon{color:#28a0cb}.usa-icon-list--accent-cool-darker .usa-icon-list__icon{color:#07648d}.usa-icon-list--error-lighter .usa-icon-list__icon{color:#f4e3db}.usa-icon-list--error-light .usa-icon-list__icon{color:#f39268}.usa-icon-list--error .usa-icon-list__icon{color:#d54309}.usa-icon-list--error-dark .usa-icon-list__icon{color:#b50909}.usa-icon-list--error-darker .usa-icon-list__icon{color:#6f3331}.usa-icon-list--warning-lighter .usa-icon-list__icon{color:#faf3d1}.usa-icon-list--warning-light .usa-icon-list__icon{color:#fee685}.usa-icon-list--warning .usa-icon-list__icon{color:#ffbe2e}.usa-icon-list--warning-dark .usa-icon-list__icon{color:#e5a000}.usa-icon-list--warning-darker .usa-icon-list__icon{color:#936f38}.usa-icon-list--success-lighter .usa-icon-list__icon{color:#ecf3ec}.usa-icon-list--success-light .usa-icon-list__icon{color:#70e17b}.usa-icon-list--success .usa-icon-list__icon{color:#00a91c}.usa-icon-list--success-dark .usa-icon-list__icon{color:#008817}.usa-icon-list--success-darker .usa-icon-list__icon{color:#216e1f}.usa-icon-list--info-lighter .usa-icon-list__icon{color:#e7f6f8}.usa-icon-list--info-light .usa-icon-list__icon{color:#99deea}.usa-icon-list--info .usa-icon-list__icon,.usa-section--dark h1,.usa-section--dark h2,.usa-section--dark h3,.usa-section--dark h4,.usa-section--dark h5,.usa-section--dark h6{color:#00bde3}.usa-icon-list--info-dark .usa-icon-list__icon{color:#009ec1}.usa-icon-list--info-darker .usa-icon-list__icon{color:#2e6276}.usa-icon-list--disabled-lighter .usa-icon-list__icon{color:#c9c9c9}.usa-icon-list--disabled-light .usa-icon-list__icon{color:#919191}.usa-icon-list--disabled .usa-icon-list__icon{color:#757575}.usa-icon-list--disabled-dark .usa-icon-list__icon{color:#454545}.usa-icon-list--disabled-darker .usa-icon-list__icon{color:#1b1b1b}.usa-icon-list--emergency .usa-icon-list__icon{color:#9c3d10}.usa-icon-list--emergency-dark .usa-icon-list__icon{color:#332d29}.usa-icon-list__icon .usa-icon{display:block;height:1.5rem;position:relative;width:1.5rem}.usa-icon-list__content>ol,.usa-icon-list__content>p,.usa-icon-list__content>ul{max-width:72ex}.usa-icon-list[class*=usa-icon-list--size-]{max-width:none}.usa-icon-list--size-micro .usa-icon-list__icon .usa-icon{height:1.005rem;width:1.005rem}.usa-icon-list--size-micro .usa-icon-list__content{max-width:72ex;font-size:.67rem;padding-left:.268rem}.usa-icon-list--size-micro .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:.61rem}.usa-icon-list--size-1 .usa-icon-list__icon .usa-icon{height:1.2rem;width:1.2rem}.usa-icon-list--size-1 .usa-icon-list__content{max-width:72ex;font-size:.8rem;padding-left:.32rem}.usa-icon-list--size-1 .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:.73rem}.usa-icon-list--size-2 .usa-icon-list__icon .usa-icon{height:1.305rem;width:1.305rem}.usa-icon-list--size-2 .usa-icon-list__content{max-width:72ex;font-size:.87rem;padding-left:.348rem}.usa-icon-list--size-2 .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:.79rem}.usa-icon-list--size-3 .usa-icon-list__icon .usa-icon{height:1.395rem;width:1.395rem}.usa-icon-list--size-3 .usa-icon-list__content{max-width:72ex;font-size:.93rem;padding-left:.372rem}.usa-icon-list--size-3 .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:.85rem}.usa-icon-list--size-4 .usa-icon-list__icon .usa-icon{height:1.5rem;width:1.5rem}.usa-icon-list--size-4 .usa-icon-list__content{max-width:72ex;font-size:1rem;padding-left:.4rem}.usa-icon-list--size-4 .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:.91rem}.usa-icon-list--size-5 .usa-icon-list__icon .usa-icon{height:1.59rem;width:1.59rem}.usa-icon-list--size-5 .usa-icon-list__content{max-width:72ex;font-size:1.06rem;padding-left:.424rem}.usa-icon-list--size-5 .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:.98rem}.usa-icon-list--size-6 .usa-icon-list__icon .usa-icon{height:1.695rem;width:1.695rem}.usa-icon-list--size-6 .usa-icon-list__content{max-width:72ex;font-size:1.13rem;padding-left:.452rem}.usa-icon-list--size-6 .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:1.04rem}.usa-icon-list--size-7 .usa-icon-list__icon .usa-icon{height:1.8rem;width:1.8rem}.usa-icon-list--size-7 .usa-icon-list__content{max-width:72ex;font-size:1.2rem;padding-left:.48rem}.usa-icon-list--size-7 .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:1.1rem}.usa-icon-list--size-8 .usa-icon-list__icon .usa-icon{height:1.995rem;width:1.995rem}.usa-icon-list--size-8 .usa-icon-list__content{max-width:72ex;font-size:1.33rem;padding-left:.532rem}.usa-icon-list--size-8 .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:1.22rem}.usa-icon-list--size-9 .usa-icon-list__icon .usa-icon{height:2.19rem;width:2.19rem}.usa-icon-list--size-9 .usa-icon-list__content{max-width:72ex;font-size:1.46rem;padding-left:.584rem}.usa-icon-list--size-9 .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:1.34rem}.usa-icon-list--size-10 .usa-icon-list__icon .usa-icon{height:2.4rem;width:2.4rem}.usa-icon-list--size-10 .usa-icon-list__content{max-width:72ex;font-size:1.6rem;padding-left:.64rem}.usa-icon-list--size-10 .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:1.46rem}.usa-icon-list--size-11 .usa-icon-list__icon .usa-icon{height:2.79rem;width:2.79rem}.usa-icon-list--size-11 .usa-icon-list__content{max-width:72ex;font-size:1.86rem;padding-left:.744rem}.usa-icon-list--size-11 .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:1.71rem}.usa-icon-list--size-12 .usa-icon-list__icon .usa-icon{height:3.195rem;width:3.195rem}.usa-icon-list--size-12 .usa-icon-list__content{max-width:72ex;font-size:2.13rem;padding-left:.852rem}.usa-icon-list--size-12 .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:1.95rem}.usa-icon-list--size-13 .usa-icon-list__icon .usa-icon{height:3.6rem;width:3.6rem}.usa-icon-list--size-13 .usa-icon-list__content{max-width:72ex;font-size:2.4rem;padding-left:.96rem}.usa-icon-list--size-13 .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:2.2rem}.usa-icon-list--size-14 .usa-icon-list__icon .usa-icon{height:3.99rem;width:3.99rem}.usa-icon-list--size-14 .usa-icon-list__content{max-width:72ex;font-size:2.66rem;padding-left:1.064rem}.usa-icon-list--size-14 .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:2.44rem}.usa-icon-list--size-15 .usa-icon-list__icon .usa-icon{height:4.785rem;width:4.785rem}.usa-icon-list--size-15 .usa-icon-list__content{max-width:72ex;font-size:3.19rem;padding-left:1.276rem}.usa-icon-list--size-15 .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:2.93rem}.usa-icon-list--size-16 .usa-icon-list__icon .usa-icon{height:5.595rem;width:5.595rem}.usa-icon-list--size-16 .usa-icon-list__content{max-width:72ex;font-size:3.73rem;padding-left:1.492rem}.usa-icon-list--size-16 .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:3.42rem}.usa-icon-list--size-17 .usa-icon-list__icon .usa-icon{height:6.39rem;width:6.39rem}.usa-icon-list--size-17 .usa-icon-list__content{max-width:72ex;font-size:4.26rem;padding-left:1.704rem}.usa-icon-list--size-17 .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:3.9rem}.usa-icon-list--size-18 .usa-icon-list__icon .usa-icon{height:7.98rem;width:7.98rem}.usa-icon-list--size-18 .usa-icon-list__content{max-width:72ex;font-size:5.32rem;padding-left:2.128rem}.usa-icon-list--size-18 .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:4.88rem}.usa-icon-list--size-19 .usa-icon-list__icon .usa-icon{height:11.985rem;width:11.985rem}.usa-icon-list--size-19 .usa-icon-list__content{max-width:72ex;font-size:7.99rem;padding-left:3.196rem}.usa-icon-list--size-19 .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:7.32rem}.usa-icon-list--size-20 .usa-icon-list__icon .usa-icon{height:13.98rem;width:13.98rem}.usa-icon-list--size-20 .usa-icon-list__content{max-width:72ex;font-size:9.32rem;padding-left:3.728rem}.usa-icon-list--size-20 .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:8.54rem}.usa-icon-list--size-3xs .usa-icon-list__icon .usa-icon{height:1.305rem;width:1.305rem}.usa-icon-list--size-3xs .usa-icon-list__content{max-width:72ex;font-size:.87rem;padding-left:.348rem}.usa-icon-list--size-3xs .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:.79rem}.usa-icon-list--size-2xs .usa-icon-list__icon .usa-icon{height:1.395rem;width:1.395rem}.usa-icon-list--size-2xs .usa-icon-list__content{max-width:72ex;font-size:.93rem;padding-left:.372rem}.usa-icon-list--size-2xs .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:.85rem}.usa-icon-list--size-xs .usa-icon-list__icon .usa-icon{height:1.5rem;width:1.5rem}.usa-icon-list--size-xs .usa-icon-list__content{max-width:72ex;font-size:1rem;padding-left:.4rem}.usa-icon-list--size-xs .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:.91rem}.usa-icon-list--size-sm .usa-icon-list__icon .usa-icon{height:1.59rem;width:1.59rem}.usa-icon-list--size-sm .usa-icon-list__content{max-width:72ex;font-size:1.06rem;padding-left:.424rem}.usa-icon-list--size-sm .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:.98rem}.usa-icon-list--size-md .usa-icon-list__icon .usa-icon{height:1.695rem;width:1.695rem}.usa-icon-list--size-md .usa-icon-list__content{max-width:72ex;font-size:1.13rem;padding-left:.452rem}.usa-icon-list--size-md .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:1.04rem}.usa-icon-list--size-lg .usa-icon-list__icon .usa-icon{height:2.19rem;width:2.19rem}.usa-icon-list--size-lg .usa-icon-list__content{max-width:72ex;font-size:1.46rem;padding-left:.584rem}.usa-icon-list--size-lg .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:1.34rem}.usa-icon-list--size-xl .usa-icon-list__icon .usa-icon{height:3.195rem;width:3.195rem}.usa-icon-list--size-xl .usa-icon-list__content{max-width:72ex;font-size:2.13rem;padding-left:.852rem}.usa-icon-list--size-xl .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:1.95rem}.usa-icon-list--size-2xl .usa-icon-list__icon .usa-icon{height:3.99rem;width:3.99rem}.usa-icon-list--size-2xl .usa-icon-list__content{max-width:72ex;font-size:2.66rem;padding-left:1.064rem}.usa-icon-list--size-2xl .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:2.44rem}.usa-icon-list--size-3xl .usa-icon-list__icon .usa-icon{height:4.785rem;width:4.785rem}.usa-icon-list--size-3xl .usa-icon-list__content{max-width:72ex;font-size:3.19rem;padding-left:1.276rem}.usa-icon-list--size-3xl .usa-icon-list__content .usa-icon-list__title,.usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:2.93rem}@media all and (min-width:30em){.mobile-lg\:usa-icon-list--size-micro .usa-icon-list__icon .usa-icon{height:1.005rem;width:1.005rem}.mobile-lg\:usa-icon-list--size-micro .usa-icon-list__content{max-width:72ex;font-size:.67rem;padding-left:.268rem}.mobile-lg\:usa-icon-list--size-micro .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:.61rem}.mobile-lg\:usa-icon-list--size-1 .usa-icon-list__icon .usa-icon{height:1.2rem;width:1.2rem}.mobile-lg\:usa-icon-list--size-1 .usa-icon-list__content{max-width:72ex;font-size:.8rem;padding-left:.32rem}.mobile-lg\:usa-icon-list--size-1 .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:.73rem}.mobile-lg\:usa-icon-list--size-2 .usa-icon-list__icon .usa-icon{height:1.305rem;width:1.305rem}.mobile-lg\:usa-icon-list--size-2 .usa-icon-list__content{max-width:72ex;font-size:.87rem;padding-left:.348rem}.mobile-lg\:usa-icon-list--size-2 .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:.79rem}.mobile-lg\:usa-icon-list--size-3 .usa-icon-list__icon .usa-icon{height:1.395rem;width:1.395rem}.mobile-lg\:usa-icon-list--size-3 .usa-icon-list__content{max-width:72ex;font-size:.93rem;padding-left:.372rem}.mobile-lg\:usa-icon-list--size-3 .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:.85rem}.mobile-lg\:usa-icon-list--size-4 .usa-icon-list__icon .usa-icon{height:1.5rem;width:1.5rem}.mobile-lg\:usa-icon-list--size-4 .usa-icon-list__content{max-width:72ex;font-size:1rem;padding-left:.4rem}.mobile-lg\:usa-icon-list--size-4 .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:.91rem}.mobile-lg\:usa-icon-list--size-5 .usa-icon-list__icon .usa-icon{height:1.59rem;width:1.59rem}.mobile-lg\:usa-icon-list--size-5 .usa-icon-list__content{max-width:72ex;font-size:1.06rem;padding-left:.424rem}.mobile-lg\:usa-icon-list--size-5 .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:.98rem}.mobile-lg\:usa-icon-list--size-6 .usa-icon-list__icon .usa-icon{height:1.695rem;width:1.695rem}.mobile-lg\:usa-icon-list--size-6 .usa-icon-list__content{max-width:72ex;font-size:1.13rem;padding-left:.452rem}.mobile-lg\:usa-icon-list--size-6 .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:1.04rem}.mobile-lg\:usa-icon-list--size-7 .usa-icon-list__icon .usa-icon{height:1.8rem;width:1.8rem}.mobile-lg\:usa-icon-list--size-7 .usa-icon-list__content{max-width:72ex;font-size:1.2rem;padding-left:.48rem}.mobile-lg\:usa-icon-list--size-7 .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:1.1rem}.mobile-lg\:usa-icon-list--size-8 .usa-icon-list__icon .usa-icon{height:1.995rem;width:1.995rem}.mobile-lg\:usa-icon-list--size-8 .usa-icon-list__content{max-width:72ex;font-size:1.33rem;padding-left:.532rem}.mobile-lg\:usa-icon-list--size-8 .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:1.22rem}.mobile-lg\:usa-icon-list--size-9 .usa-icon-list__icon .usa-icon{height:2.19rem;width:2.19rem}.mobile-lg\:usa-icon-list--size-9 .usa-icon-list__content{max-width:72ex;font-size:1.46rem;padding-left:.584rem}.mobile-lg\:usa-icon-list--size-9 .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:1.34rem}.mobile-lg\:usa-icon-list--size-10 .usa-icon-list__icon .usa-icon{height:2.4rem;width:2.4rem}.mobile-lg\:usa-icon-list--size-10 .usa-icon-list__content{max-width:72ex;font-size:1.6rem;padding-left:.64rem}.mobile-lg\:usa-icon-list--size-10 .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:1.46rem}.mobile-lg\:usa-icon-list--size-11 .usa-icon-list__icon .usa-icon{height:2.79rem;width:2.79rem}.mobile-lg\:usa-icon-list--size-11 .usa-icon-list__content{max-width:72ex;font-size:1.86rem;padding-left:.744rem}.mobile-lg\:usa-icon-list--size-11 .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:1.71rem}.mobile-lg\:usa-icon-list--size-12 .usa-icon-list__icon .usa-icon{height:3.195rem;width:3.195rem}.mobile-lg\:usa-icon-list--size-12 .usa-icon-list__content{max-width:72ex;font-size:2.13rem;padding-left:.852rem}.mobile-lg\:usa-icon-list--size-12 .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:1.95rem}.mobile-lg\:usa-icon-list--size-13 .usa-icon-list__icon .usa-icon{height:3.6rem;width:3.6rem}.mobile-lg\:usa-icon-list--size-13 .usa-icon-list__content{max-width:72ex;font-size:2.4rem;padding-left:.96rem}.mobile-lg\:usa-icon-list--size-13 .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:2.2rem}.mobile-lg\:usa-icon-list--size-14 .usa-icon-list__icon .usa-icon{height:3.99rem;width:3.99rem}.mobile-lg\:usa-icon-list--size-14 .usa-icon-list__content{max-width:72ex;font-size:2.66rem;padding-left:1.064rem}.mobile-lg\:usa-icon-list--size-14 .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:2.44rem}.mobile-lg\:usa-icon-list--size-15 .usa-icon-list__icon .usa-icon{height:4.785rem;width:4.785rem}.mobile-lg\:usa-icon-list--size-15 .usa-icon-list__content{max-width:72ex;font-size:3.19rem;padding-left:1.276rem}.mobile-lg\:usa-icon-list--size-15 .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:2.93rem}.mobile-lg\:usa-icon-list--size-16 .usa-icon-list__icon .usa-icon{height:5.595rem;width:5.595rem}.mobile-lg\:usa-icon-list--size-16 .usa-icon-list__content{max-width:72ex;font-size:3.73rem;padding-left:1.492rem}.mobile-lg\:usa-icon-list--size-16 .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:3.42rem}.mobile-lg\:usa-icon-list--size-17 .usa-icon-list__icon .usa-icon{height:6.39rem;width:6.39rem}.mobile-lg\:usa-icon-list--size-17 .usa-icon-list__content{max-width:72ex;font-size:4.26rem;padding-left:1.704rem}.mobile-lg\:usa-icon-list--size-17 .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:3.9rem}.mobile-lg\:usa-icon-list--size-18 .usa-icon-list__icon .usa-icon{height:7.98rem;width:7.98rem}.mobile-lg\:usa-icon-list--size-18 .usa-icon-list__content{max-width:72ex;font-size:5.32rem;padding-left:2.128rem}.mobile-lg\:usa-icon-list--size-18 .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:4.88rem}.mobile-lg\:usa-icon-list--size-19 .usa-icon-list__icon .usa-icon{height:11.985rem;width:11.985rem}.mobile-lg\:usa-icon-list--size-19 .usa-icon-list__content{max-width:72ex;font-size:7.99rem;padding-left:3.196rem}.mobile-lg\:usa-icon-list--size-19 .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:7.32rem}.mobile-lg\:usa-icon-list--size-20 .usa-icon-list__icon .usa-icon{height:13.98rem;width:13.98rem}.mobile-lg\:usa-icon-list--size-20 .usa-icon-list__content{max-width:72ex;font-size:9.32rem;padding-left:3.728rem}.mobile-lg\:usa-icon-list--size-20 .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:8.54rem}.mobile-lg\:usa-icon-list--size-3xs .usa-icon-list__icon .usa-icon{height:1.305rem;width:1.305rem}.mobile-lg\:usa-icon-list--size-3xs .usa-icon-list__content{max-width:72ex;font-size:.87rem;padding-left:.348rem}.mobile-lg\:usa-icon-list--size-3xs .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:.79rem}.mobile-lg\:usa-icon-list--size-2xs .usa-icon-list__icon .usa-icon{height:1.395rem;width:1.395rem}.mobile-lg\:usa-icon-list--size-2xs .usa-icon-list__content{max-width:72ex;font-size:.93rem;padding-left:.372rem}.mobile-lg\:usa-icon-list--size-2xs .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:.85rem}.mobile-lg\:usa-icon-list--size-xs .usa-icon-list__icon .usa-icon{height:1.5rem;width:1.5rem}.mobile-lg\:usa-icon-list--size-xs .usa-icon-list__content{max-width:72ex;font-size:1rem;padding-left:.4rem}.mobile-lg\:usa-icon-list--size-xs .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:.91rem}.mobile-lg\:usa-icon-list--size-sm .usa-icon-list__icon .usa-icon{height:1.59rem;width:1.59rem}.mobile-lg\:usa-icon-list--size-sm .usa-icon-list__content{max-width:72ex;font-size:1.06rem;padding-left:.424rem}.mobile-lg\:usa-icon-list--size-sm .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:.98rem}.mobile-lg\:usa-icon-list--size-md .usa-icon-list__icon .usa-icon{height:1.695rem;width:1.695rem}.mobile-lg\:usa-icon-list--size-md .usa-icon-list__content{max-width:72ex;font-size:1.13rem;padding-left:.452rem}.mobile-lg\:usa-icon-list--size-md .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:1.04rem}.mobile-lg\:usa-icon-list--size-lg .usa-icon-list__icon .usa-icon{height:2.19rem;width:2.19rem}.mobile-lg\:usa-icon-list--size-lg .usa-icon-list__content{max-width:72ex;font-size:1.46rem;padding-left:.584rem}.mobile-lg\:usa-icon-list--size-lg .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:1.34rem}.mobile-lg\:usa-icon-list--size-xl .usa-icon-list__icon .usa-icon{height:3.195rem;width:3.195rem}.mobile-lg\:usa-icon-list--size-xl .usa-icon-list__content{max-width:72ex;font-size:2.13rem;padding-left:.852rem}.mobile-lg\:usa-icon-list--size-xl .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:1.95rem}.mobile-lg\:usa-icon-list--size-2xl .usa-icon-list__icon .usa-icon{height:3.99rem;width:3.99rem}.mobile-lg\:usa-icon-list--size-2xl .usa-icon-list__content{max-width:72ex;font-size:2.66rem;padding-left:1.064rem}.mobile-lg\:usa-icon-list--size-2xl .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:2.44rem}.mobile-lg\:usa-icon-list--size-3xl .usa-icon-list__icon .usa-icon{height:4.785rem;width:4.785rem}.mobile-lg\:usa-icon-list--size-3xl .usa-icon-list__content{max-width:72ex;font-size:3.19rem;padding-left:1.276rem}.mobile-lg\:usa-icon-list--size-3xl .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:2.93rem}}@media all and (min-width:40em){.tablet\:usa-icon-list--size-micro .usa-icon-list__icon .usa-icon{height:1.005rem;width:1.005rem}.tablet\:usa-icon-list--size-micro .usa-icon-list__content{max-width:72ex;font-size:.67rem;padding-left:.268rem}.tablet\:usa-icon-list--size-micro .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:.61rem}.tablet\:usa-icon-list--size-1 .usa-icon-list__icon .usa-icon{height:1.2rem;width:1.2rem}.tablet\:usa-icon-list--size-1 .usa-icon-list__content{max-width:72ex;font-size:.8rem;padding-left:.32rem}.tablet\:usa-icon-list--size-1 .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:.73rem}.tablet\:usa-icon-list--size-2 .usa-icon-list__icon .usa-icon{height:1.305rem;width:1.305rem}.tablet\:usa-icon-list--size-2 .usa-icon-list__content{max-width:72ex;font-size:.87rem;padding-left:.348rem}.tablet\:usa-icon-list--size-2 .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:.79rem}.tablet\:usa-icon-list--size-3 .usa-icon-list__icon .usa-icon{height:1.395rem;width:1.395rem}.tablet\:usa-icon-list--size-3 .usa-icon-list__content{max-width:72ex;font-size:.93rem;padding-left:.372rem}.tablet\:usa-icon-list--size-3 .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:.85rem}.tablet\:usa-icon-list--size-4 .usa-icon-list__icon .usa-icon{height:1.5rem;width:1.5rem}.tablet\:usa-icon-list--size-4 .usa-icon-list__content{max-width:72ex;font-size:1rem;padding-left:.4rem}.tablet\:usa-icon-list--size-4 .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:.91rem}.tablet\:usa-icon-list--size-5 .usa-icon-list__icon .usa-icon{height:1.59rem;width:1.59rem}.tablet\:usa-icon-list--size-5 .usa-icon-list__content{max-width:72ex;font-size:1.06rem;padding-left:.424rem}.tablet\:usa-icon-list--size-5 .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:.98rem}.tablet\:usa-icon-list--size-6 .usa-icon-list__icon .usa-icon{height:1.695rem;width:1.695rem}.tablet\:usa-icon-list--size-6 .usa-icon-list__content{max-width:72ex;font-size:1.13rem;padding-left:.452rem}.tablet\:usa-icon-list--size-6 .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:1.04rem}.tablet\:usa-icon-list--size-7 .usa-icon-list__icon .usa-icon{height:1.8rem;width:1.8rem}.tablet\:usa-icon-list--size-7 .usa-icon-list__content{max-width:72ex;font-size:1.2rem;padding-left:.48rem}.tablet\:usa-icon-list--size-7 .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:1.1rem}.tablet\:usa-icon-list--size-8 .usa-icon-list__icon .usa-icon{height:1.995rem;width:1.995rem}.tablet\:usa-icon-list--size-8 .usa-icon-list__content{max-width:72ex;font-size:1.33rem;padding-left:.532rem}.tablet\:usa-icon-list--size-8 .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:1.22rem}.tablet\:usa-icon-list--size-9 .usa-icon-list__icon .usa-icon{height:2.19rem;width:2.19rem}.tablet\:usa-icon-list--size-9 .usa-icon-list__content{max-width:72ex;font-size:1.46rem;padding-left:.584rem}.tablet\:usa-icon-list--size-9 .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:1.34rem}.tablet\:usa-icon-list--size-10 .usa-icon-list__icon .usa-icon{height:2.4rem;width:2.4rem}.tablet\:usa-icon-list--size-10 .usa-icon-list__content{max-width:72ex;font-size:1.6rem;padding-left:.64rem}.tablet\:usa-icon-list--size-10 .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:1.46rem}.tablet\:usa-icon-list--size-11 .usa-icon-list__icon .usa-icon{height:2.79rem;width:2.79rem}.tablet\:usa-icon-list--size-11 .usa-icon-list__content{max-width:72ex;font-size:1.86rem;padding-left:.744rem}.tablet\:usa-icon-list--size-11 .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:1.71rem}.tablet\:usa-icon-list--size-12 .usa-icon-list__icon .usa-icon{height:3.195rem;width:3.195rem}.tablet\:usa-icon-list--size-12 .usa-icon-list__content{max-width:72ex;font-size:2.13rem;padding-left:.852rem}.tablet\:usa-icon-list--size-12 .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:1.95rem}.tablet\:usa-icon-list--size-13 .usa-icon-list__icon .usa-icon{height:3.6rem;width:3.6rem}.tablet\:usa-icon-list--size-13 .usa-icon-list__content{max-width:72ex;font-size:2.4rem;padding-left:.96rem}.tablet\:usa-icon-list--size-13 .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:2.2rem}.tablet\:usa-icon-list--size-14 .usa-icon-list__icon .usa-icon{height:3.99rem;width:3.99rem}.tablet\:usa-icon-list--size-14 .usa-icon-list__content{max-width:72ex;font-size:2.66rem;padding-left:1.064rem}.tablet\:usa-icon-list--size-14 .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:2.44rem}.tablet\:usa-icon-list--size-15 .usa-icon-list__icon .usa-icon{height:4.785rem;width:4.785rem}.tablet\:usa-icon-list--size-15 .usa-icon-list__content{max-width:72ex;font-size:3.19rem;padding-left:1.276rem}.tablet\:usa-icon-list--size-15 .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:2.93rem}.tablet\:usa-icon-list--size-16 .usa-icon-list__icon .usa-icon{height:5.595rem;width:5.595rem}.tablet\:usa-icon-list--size-16 .usa-icon-list__content{max-width:72ex;font-size:3.73rem;padding-left:1.492rem}.tablet\:usa-icon-list--size-16 .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:3.42rem}.tablet\:usa-icon-list--size-17 .usa-icon-list__icon .usa-icon{height:6.39rem;width:6.39rem}.tablet\:usa-icon-list--size-17 .usa-icon-list__content{max-width:72ex;font-size:4.26rem;padding-left:1.704rem}.tablet\:usa-icon-list--size-17 .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:3.9rem}.tablet\:usa-icon-list--size-18 .usa-icon-list__icon .usa-icon{height:7.98rem;width:7.98rem}.tablet\:usa-icon-list--size-18 .usa-icon-list__content{max-width:72ex;font-size:5.32rem;padding-left:2.128rem}.tablet\:usa-icon-list--size-18 .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:4.88rem}.tablet\:usa-icon-list--size-19 .usa-icon-list__icon .usa-icon{height:11.985rem;width:11.985rem}.tablet\:usa-icon-list--size-19 .usa-icon-list__content{max-width:72ex;font-size:7.99rem;padding-left:3.196rem}.tablet\:usa-icon-list--size-19 .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:7.32rem}.tablet\:usa-icon-list--size-20 .usa-icon-list__icon .usa-icon{height:13.98rem;width:13.98rem}.tablet\:usa-icon-list--size-20 .usa-icon-list__content{max-width:72ex;font-size:9.32rem;padding-left:3.728rem}.tablet\:usa-icon-list--size-20 .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:8.54rem}.tablet\:usa-icon-list--size-3xs .usa-icon-list__icon .usa-icon{height:1.305rem;width:1.305rem}.tablet\:usa-icon-list--size-3xs .usa-icon-list__content{max-width:72ex;font-size:.87rem;padding-left:.348rem}.tablet\:usa-icon-list--size-3xs .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:.79rem}.tablet\:usa-icon-list--size-2xs .usa-icon-list__icon .usa-icon{height:1.395rem;width:1.395rem}.tablet\:usa-icon-list--size-2xs .usa-icon-list__content{max-width:72ex;font-size:.93rem;padding-left:.372rem}.tablet\:usa-icon-list--size-2xs .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:.85rem}.tablet\:usa-icon-list--size-xs .usa-icon-list__icon .usa-icon{height:1.5rem;width:1.5rem}.tablet\:usa-icon-list--size-xs .usa-icon-list__content{max-width:72ex;font-size:1rem;padding-left:.4rem}.tablet\:usa-icon-list--size-xs .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:.91rem}.tablet\:usa-icon-list--size-sm .usa-icon-list__icon .usa-icon{height:1.59rem;width:1.59rem}.tablet\:usa-icon-list--size-sm .usa-icon-list__content{max-width:72ex;font-size:1.06rem;padding-left:.424rem}.tablet\:usa-icon-list--size-sm .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:.98rem}.tablet\:usa-icon-list--size-md .usa-icon-list__icon .usa-icon{height:1.695rem;width:1.695rem}.tablet\:usa-icon-list--size-md .usa-icon-list__content{max-width:72ex;font-size:1.13rem;padding-left:.452rem}.tablet\:usa-icon-list--size-md .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:1.04rem}.tablet\:usa-icon-list--size-lg .usa-icon-list__icon .usa-icon{height:2.19rem;width:2.19rem}.tablet\:usa-icon-list--size-lg .usa-icon-list__content{max-width:72ex;font-size:1.46rem;padding-left:.584rem}.tablet\:usa-icon-list--size-lg .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:1.34rem}.tablet\:usa-icon-list--size-xl .usa-icon-list__icon .usa-icon{height:3.195rem;width:3.195rem}.tablet\:usa-icon-list--size-xl .usa-icon-list__content{max-width:72ex;font-size:2.13rem;padding-left:.852rem}.tablet\:usa-icon-list--size-xl .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:1.95rem}.tablet\:usa-icon-list--size-2xl .usa-icon-list__icon .usa-icon{height:3.99rem;width:3.99rem}.tablet\:usa-icon-list--size-2xl .usa-icon-list__content{max-width:72ex;font-size:2.66rem;padding-left:1.064rem}.tablet\:usa-icon-list--size-2xl .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:2.44rem}.tablet\:usa-icon-list--size-3xl .usa-icon-list__icon .usa-icon{height:4.785rem;width:4.785rem}.tablet\:usa-icon-list--size-3xl .usa-icon-list__content{max-width:72ex;font-size:3.19rem;padding-left:1.276rem}.tablet\:usa-icon-list--size-3xl .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:2.93rem}}@media all and (min-width:64em){.desktop\:usa-icon-list--size-micro .usa-icon-list__icon .usa-icon{height:1.005rem;width:1.005rem}.desktop\:usa-icon-list--size-micro .usa-icon-list__content{max-width:72ex;font-size:.67rem;padding-left:.268rem}.desktop\:usa-icon-list--size-micro .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:.61rem}.desktop\:usa-icon-list--size-1 .usa-icon-list__icon .usa-icon{height:1.2rem;width:1.2rem}.desktop\:usa-icon-list--size-1 .usa-icon-list__content{max-width:72ex;font-size:.8rem;padding-left:.32rem}.desktop\:usa-icon-list--size-1 .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:.73rem}.desktop\:usa-icon-list--size-2 .usa-icon-list__icon .usa-icon{height:1.305rem;width:1.305rem}.desktop\:usa-icon-list--size-2 .usa-icon-list__content{max-width:72ex;font-size:.87rem;padding-left:.348rem}.desktop\:usa-icon-list--size-2 .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:.79rem}.desktop\:usa-icon-list--size-3 .usa-icon-list__icon .usa-icon{height:1.395rem;width:1.395rem}.desktop\:usa-icon-list--size-3 .usa-icon-list__content{max-width:72ex;font-size:.93rem;padding-left:.372rem}.desktop\:usa-icon-list--size-3 .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:.85rem}.desktop\:usa-icon-list--size-4 .usa-icon-list__icon .usa-icon{height:1.5rem;width:1.5rem}.desktop\:usa-icon-list--size-4 .usa-icon-list__content{max-width:72ex;font-size:1rem;padding-left:.4rem}.desktop\:usa-icon-list--size-4 .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:.91rem}.desktop\:usa-icon-list--size-5 .usa-icon-list__icon .usa-icon{height:1.59rem;width:1.59rem}.desktop\:usa-icon-list--size-5 .usa-icon-list__content{max-width:72ex;font-size:1.06rem;padding-left:.424rem}.desktop\:usa-icon-list--size-5 .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:.98rem}.desktop\:usa-icon-list--size-6 .usa-icon-list__icon .usa-icon{height:1.695rem;width:1.695rem}.desktop\:usa-icon-list--size-6 .usa-icon-list__content{max-width:72ex;font-size:1.13rem;padding-left:.452rem}.desktop\:usa-icon-list--size-6 .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:1.04rem}.desktop\:usa-icon-list--size-7 .usa-icon-list__icon .usa-icon{height:1.8rem;width:1.8rem}.desktop\:usa-icon-list--size-7 .usa-icon-list__content{max-width:72ex;font-size:1.2rem;padding-left:.48rem}.desktop\:usa-icon-list--size-7 .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:1.1rem}.desktop\:usa-icon-list--size-8 .usa-icon-list__icon .usa-icon{height:1.995rem;width:1.995rem}.desktop\:usa-icon-list--size-8 .usa-icon-list__content{max-width:72ex;font-size:1.33rem;padding-left:.532rem}.desktop\:usa-icon-list--size-8 .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:1.22rem}.desktop\:usa-icon-list--size-9 .usa-icon-list__icon .usa-icon{height:2.19rem;width:2.19rem}.desktop\:usa-icon-list--size-9 .usa-icon-list__content{max-width:72ex;font-size:1.46rem;padding-left:.584rem}.desktop\:usa-icon-list--size-9 .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:1.34rem}.desktop\:usa-icon-list--size-10 .usa-icon-list__icon .usa-icon{height:2.4rem;width:2.4rem}.desktop\:usa-icon-list--size-10 .usa-icon-list__content{max-width:72ex;font-size:1.6rem;padding-left:.64rem}.desktop\:usa-icon-list--size-10 .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:1.46rem}.desktop\:usa-icon-list--size-11 .usa-icon-list__icon .usa-icon{height:2.79rem;width:2.79rem}.desktop\:usa-icon-list--size-11 .usa-icon-list__content{max-width:72ex;font-size:1.86rem;padding-left:.744rem}.desktop\:usa-icon-list--size-11 .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:1.71rem}.desktop\:usa-icon-list--size-12 .usa-icon-list__icon .usa-icon{height:3.195rem;width:3.195rem}.desktop\:usa-icon-list--size-12 .usa-icon-list__content{max-width:72ex;font-size:2.13rem;padding-left:.852rem}.desktop\:usa-icon-list--size-12 .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:1.95rem}.desktop\:usa-icon-list--size-13 .usa-icon-list__icon .usa-icon{height:3.6rem;width:3.6rem}.desktop\:usa-icon-list--size-13 .usa-icon-list__content{max-width:72ex;font-size:2.4rem;padding-left:.96rem}.desktop\:usa-icon-list--size-13 .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:2.2rem}.desktop\:usa-icon-list--size-14 .usa-icon-list__icon .usa-icon{height:3.99rem;width:3.99rem}.desktop\:usa-icon-list--size-14 .usa-icon-list__content{max-width:72ex;font-size:2.66rem;padding-left:1.064rem}.desktop\:usa-icon-list--size-14 .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:2.44rem}.desktop\:usa-icon-list--size-15 .usa-icon-list__icon .usa-icon{height:4.785rem;width:4.785rem}.desktop\:usa-icon-list--size-15 .usa-icon-list__content{max-width:72ex;font-size:3.19rem;padding-left:1.276rem}.desktop\:usa-icon-list--size-15 .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:2.93rem}.desktop\:usa-icon-list--size-16 .usa-icon-list__icon .usa-icon{height:5.595rem;width:5.595rem}.desktop\:usa-icon-list--size-16 .usa-icon-list__content{max-width:72ex;font-size:3.73rem;padding-left:1.492rem}.desktop\:usa-icon-list--size-16 .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:3.42rem}.desktop\:usa-icon-list--size-17 .usa-icon-list__icon .usa-icon{height:6.39rem;width:6.39rem}.desktop\:usa-icon-list--size-17 .usa-icon-list__content{max-width:72ex;font-size:4.26rem;padding-left:1.704rem}.desktop\:usa-icon-list--size-17 .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:3.9rem}.desktop\:usa-icon-list--size-18 .usa-icon-list__icon .usa-icon{height:7.98rem;width:7.98rem}.desktop\:usa-icon-list--size-18 .usa-icon-list__content{max-width:72ex;font-size:5.32rem;padding-left:2.128rem}.desktop\:usa-icon-list--size-18 .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:4.88rem}.desktop\:usa-icon-list--size-19 .usa-icon-list__icon .usa-icon{height:11.985rem;width:11.985rem}.desktop\:usa-icon-list--size-19 .usa-icon-list__content{max-width:72ex;font-size:7.99rem;padding-left:3.196rem}.desktop\:usa-icon-list--size-19 .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:7.32rem}.desktop\:usa-icon-list--size-20 .usa-icon-list__icon .usa-icon{height:13.98rem;width:13.98rem}.desktop\:usa-icon-list--size-20 .usa-icon-list__content{max-width:72ex;font-size:9.32rem;padding-left:3.728rem}.desktop\:usa-icon-list--size-20 .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:8.54rem}.desktop\:usa-icon-list--size-3xs .usa-icon-list__icon .usa-icon{height:1.305rem;width:1.305rem}.desktop\:usa-icon-list--size-3xs .usa-icon-list__content{max-width:72ex;font-size:.87rem;padding-left:.348rem}.desktop\:usa-icon-list--size-3xs .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:.79rem}.desktop\:usa-icon-list--size-2xs .usa-icon-list__icon .usa-icon{height:1.395rem;width:1.395rem}.desktop\:usa-icon-list--size-2xs .usa-icon-list__content{max-width:72ex;font-size:.93rem;padding-left:.372rem}.desktop\:usa-icon-list--size-2xs .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:.85rem}.desktop\:usa-icon-list--size-xs .usa-icon-list__icon .usa-icon{height:1.5rem;width:1.5rem}.desktop\:usa-icon-list--size-xs .usa-icon-list__content{max-width:72ex;font-size:1rem;padding-left:.4rem}.desktop\:usa-icon-list--size-xs .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:.91rem}.desktop\:usa-icon-list--size-sm .usa-icon-list__icon .usa-icon{height:1.59rem;width:1.59rem}.desktop\:usa-icon-list--size-sm .usa-icon-list__content{max-width:72ex;font-size:1.06rem;padding-left:.424rem}.desktop\:usa-icon-list--size-sm .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:.98rem}.desktop\:usa-icon-list--size-md .usa-icon-list__icon .usa-icon{height:1.695rem;width:1.695rem}.desktop\:usa-icon-list--size-md .usa-icon-list__content{max-width:72ex;font-size:1.13rem;padding-left:.452rem}.desktop\:usa-icon-list--size-md .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:1.04rem}.desktop\:usa-icon-list--size-lg .usa-icon-list__icon .usa-icon{height:2.19rem;width:2.19rem}.desktop\:usa-icon-list--size-lg .usa-icon-list__content{max-width:72ex;font-size:1.46rem;padding-left:.584rem}.desktop\:usa-icon-list--size-lg .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:1.34rem}.desktop\:usa-icon-list--size-xl .usa-icon-list__icon .usa-icon{height:3.195rem;width:3.195rem}.desktop\:usa-icon-list--size-xl .usa-icon-list__content{max-width:72ex;font-size:2.13rem;padding-left:.852rem}.desktop\:usa-icon-list--size-xl .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:1.95rem}.desktop\:usa-icon-list--size-2xl .usa-icon-list__icon .usa-icon{height:3.99rem;width:3.99rem}.desktop\:usa-icon-list--size-2xl .usa-icon-list__content{max-width:72ex;font-size:2.66rem;padding-left:1.064rem}.desktop\:usa-icon-list--size-2xl .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:2.44rem}.desktop\:usa-icon-list--size-3xl .usa-icon-list__icon .usa-icon{height:4.785rem;width:4.785rem}.desktop\:usa-icon-list--size-3xl .usa-icon-list__content{max-width:72ex;font-size:3.19rem;padding-left:1.276rem}.desktop\:usa-icon-list--size-3xl .usa-icon-list__content .usa-icon-list__title{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:2.93rem}}.usa-icon-list__title{font-size:.98rem;line-height:1.2;margin-bottom:0;padding-top:.425ex}.usa-icon-list__title+*{margin-top:.5rem}.usa-icon-list__content{font-size:1.06rem;padding-left:.424rem}.usa-icon-list__content>:first-child{margin-top:0}.usa-icon-list__content>:last-child{margin-bottom:0}.usa-icon-list__content ul li,.usa-process-list__item ul{list-style-type:disc}.usa-identifier{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.06rem;line-height:1.3;color:#fff;background-color:#1b1b1b;padding-bottom:1rem}.usa-identifier__container{margin-left:auto;margin-right:auto;padding-left:1rem;padding-right:1rem;max-width:64rem}@media all and (min-width:64em){.usa-identifier__container{padding-left:2rem;padding-right:2rem}}.usa-identifier__section{padding-bottom:1rem;padding-top:1rem}@media all and (min-width:40em){.usa-identifier__section--masthead .usa-identifier__container{align-items:center;display:flex}}.usa-identifier__logos{display:flex;margin-right:1rem}.usa-identifier__logo{text-decoration:none;height:3rem;display:block}.usa-identifier__logo+.usa-identifier__logo{margin-left:.5rem}.usa-identifier__logo-img{height:100%;width:auto}.usa-identifier__identity{flex:1 1 0%;margin-top:1rem}@media all and (min-width:40em){.usa-identifier__identity{margin-top:0}}.usa-identifier__identity-disclaimer,.usa-identifier__identity-domain{margin:0;padding:0}.usa-identifier__identity-domain{color:#a9aeb1}.usa-identifier__identity-disclaimer{font-weight:700}.usa-identifier__identity-disclaimer a:active,.usa-identifier__identity-disclaimer a:hover{color:#f0f0f0}@media all and (min-width:40em){.usa-identifier__section--required-links{padding-bottom:.5rem;padding-top:.5rem}}@media all and (min-width:64em){.usa-identifier__section--required-links{font-size:1rem}}.usa-identifier__required-links-list{list-style-type:none;padding-left:0;margin-bottom:0;margin-top:0}@media all and (min-width:40em){.usa-identifier__required-links-list{-moz-column-count:2;column-count:2;-moz-column-gap:2rem;column-gap:2rem;-moz-column-fill:balance;column-fill:balance}}@media all and (min-width:64em){.usa-identifier__required-links-list{-moz-column-count:4;column-count:4}}.usa-identifier__required-links-item{-moz-column-break-inside:avoid;break-inside:avoid;margin-bottom:.75rem}.usa-identifier__required-links-item:last-child,.usa-process-list__item ul li:last-child{margin-bottom:0}@media all and (min-width:64em){.usa-identifier__required-links-item{margin-bottom:.5rem}}.usa-identifier__required-link,.usa-identifier__required-link.usa-link{color:#a9aeb1;display:inline-block}.usa-identifier__required-link.usa-link:visited,.usa-identifier__required-link:visited{color:#a9aeb1}.usa-identifier__required-link.usa-link:active,.usa-identifier__required-link.usa-link:hover,.usa-identifier__required-link:active,.usa-identifier__required-link:hover,.usa-identifier__section--usagov a:visited{color:#dfe1e2}.usa-identifier__section--usagov a{color:#dfe1e2;font-weight:700;display:inline-block;margin-top:.5rem}.usa-identifier__section--usagov a:active,.usa-identifier__section--usagov a:hover{color:#f0f0f0}@media all and (min-width:40em){.usa-identifier__section--usagov a{margin-top:0}.usa-identifier__usagov-description{display:inline-flex}}.usa-in-page-nav-container{align-items:flex-start;display:flex}.usa-in-page-nav-container main{max-width:64rem;width:100%}.usa-in-page-nav{color:#1b1b1b;display:none;margin-left:2rem;margin-top:1.25rem;max-width:15rem;order:2;position:sticky;top:2rem;width:100%}@media all and (min-width:40em){.usa-in-page-nav{display:block}}.usa-in-page-nav__nav{color:#1b1b1b;background-color:#fff;border-radius:.5rem;padding:1rem}.usa-in-page-nav__heading{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:.93rem;line-height:1.3;font-weight:700;margin-bottom:1rem;margin-top:0;padding:0}.usa-in-page-nav__list{margin-bottom:0;margin-top:0;list-style-type:none;border-left:1px solid rgba(27,27,27,.25);padding:0}.usa-in-page-nav__list__item{border-top:1px solid #dfe1e2}.usa-in-page-nav__list a:not(.usa-button){display:block;padding:.5rem 1rem;text-decoration:none}.usa-in-page-nav__list a:not(.usa-button):not(.usa-current){color:#005ea2}.usa-in-page-nav__list a:not(.usa-button):not(.usa-current):focus{outline-offset:0}.usa-in-page-nav__list .usa-current{position:relative;color:#005ea2;font-weight:700}.usa-in-page-nav__list .usa-current::after{background-color:#005ea2;border-radius:99rem;content:"";display:block;position:absolute;bottom:.25rem;top:.25rem;width:.25rem;left:.25rem}@media all and (min-width:40em){.usa-in-page-nav__list .usa-current{position:relative}.usa-in-page-nav__list .usa-current::after{background-color:#005ea2;border-radius:99rem;content:"";display:block;position:absolute;bottom:.25rem;top:.25rem;width:.25rem;left:0}}.usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button:visited,.usa-table th[data-sortable][aria-sort=none] .usa-table__header__button:visited{color:#54278f}.usa-in-page-nav__list a:not(.usa-button):not(.usa-current):active,.usa-in-page-nav__list a:not(.usa-button):not(.usa-current):hover,.usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button:hover,.usa-table th[data-sortable][aria-sort=none] .usa-table__header__button:hover{color:#1a4480}.usa-in-page-nav__list a:not(.usa-button):not(.usa-current):visited{color:#005ea2}.usa-in-page-nav__list a:not(.usa-button).usa-current{color:#1b1b1b;font-weight:inherit}.usa-in-page-nav__list a:not(.usa-button):hover{text-decoration:underline;background-color:none}.usa-in-page-nav__list a:not(.usa-button).usa-current{position:static}.usa-in-page-nav__list a:not(.usa-button).usa-current::after{background-color:#1b1b1b;border-radius:0;bottom:-1px;left:0;top:0;width:.25rem;z-index:100}.usa-in-page-nav__item{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:.93rem;line-height:1.1;border:0;position:relative}.usa-in-page-nav__item--primary{font-weight:700}.usa-language{flex-direction:row;padding:0 0 .25rem .5rem;width:100%}.usa-language--small .usa-button{padding-left:.75rem;padding-right:.75rem;padding-bottom:0;padding-top:0;font-size:.87rem;height:2rem;margin-top:.3rem;min-width:3rem}.usa-language,.usa-language-container{align-items:center;justify-content:flex-end;display:flex}.usa-nav-container .usa-language-container{align-self:center;margin-left:0;position:absolute;right:5rem;top:1rem}@media all and (min-width:64em){.usa-nav-container .usa-language-container{align-self:flex-end;margin-left:.75rem;margin-bottom:.5rem;position:relative;right:inherit;top:-2px}}.usa-language__link{margin-right:0}.usa-language__primary{width:auto}.usa-language__primary-item:last-of-type{position:relative}.usa-language__primary-item:last-of-type .usa-language__submenu{position:absolute;right:0}.usa-language__submenu{list-style-type:none;padding-left:0;margin:0;background-color:#162e51;position:absolute;width:15rem;z-index:400}.usa-language__submenu-item{border-top:1px solid #dfe1e2;font-size:.93rem}.usa-language__submenu .usa-current::after,.usa-language__submenu[aria-hidden=true]{display:none}@media all and (min-width:40em){.usa-language__submenu .usa-current::after{display:none}}.usa-language__submenu a:not(.usa-button){padding-left:2rem}.usa-language__submenu .usa-language__submenu a:not(.usa-button){padding-left:3rem}.usa-language__submenu .usa-language__submenu .usa-language__submenu a:not(.usa-button){padding-left:4rem}.usa-language__submenu .usa-language__submenu-item a{color:#fff;display:block;line-height:1.3;padding:0;padding:.5rem;text-decoration:none}.usa-language__submenu .usa-language__submenu-item a:focus{outline-offset:-.25rem}.usa-language__submenu .usa-language__submenu-item a:hover{color:#fff;text-decoration:underline}.usa-language__submenu-list{margin-bottom:0;margin-top:0;list-style-type:none;padding-left:0}.usa-language__submenu-list .usa-language__submenu-list-item{margin:0;font-size:.93rem}.usa-language__submenu-list .usa-language__submenu-list-item a{line-height:1.3}.usa-layout-docs__sidenav{padding-top:2rem}@media all and (min-width:64em){.usa-layout-docs__sidenav{padding-top:0}}.grid-container{margin-left:auto;margin-right:auto;max-width:64rem;padding-left:1rem;padding-right:1rem}@media all and (min-width:64em){.grid-container{padding-left:2rem;padding-right:2rem}}.grid-container-card{margin-left:auto;margin-right:auto;max-width:10rem;padding-left:1rem;padding-right:1rem}@media all and (min-width:64em){.grid-container-card{padding-left:2rem;padding-right:2rem}}.grid-container-card-lg{margin-left:auto;margin-right:auto;max-width:15rem;padding-left:1rem;padding-right:1rem}@media all and (min-width:64em){.grid-container-card-lg{padding-left:2rem;padding-right:2rem}}.grid-container-mobile{margin-left:auto;margin-right:auto;max-width:20rem;padding-left:1rem;padding-right:1rem}@media all and (min-width:64em){.grid-container-mobile{padding-left:2rem;padding-right:2rem}}.grid-container-mobile-lg{margin-left:auto;margin-right:auto;max-width:30rem;padding-left:1rem;padding-right:1rem}@media all and (min-width:64em){.grid-container-mobile-lg{padding-left:2rem;padding-right:2rem}}.grid-container-tablet{margin-left:auto;margin-right:auto;max-width:40rem;padding-left:1rem;padding-right:1rem}@media all and (min-width:64em){.grid-container-tablet{padding-left:2rem;padding-right:2rem}}.grid-container-tablet-lg{margin-left:auto;margin-right:auto;max-width:55rem;padding-left:1rem;padding-right:1rem}@media all and (min-width:64em){.grid-container-tablet-lg{padding-left:2rem;padding-right:2rem}}.grid-container-desktop{margin-left:auto;margin-right:auto;max-width:64rem;padding-left:1rem;padding-right:1rem}@media all and (min-width:64em){.grid-container-desktop{padding-left:2rem;padding-right:2rem}}.grid-container-desktop-lg{margin-left:auto;margin-right:auto;max-width:75rem;padding-left:1rem;padding-right:1rem}@media all and (min-width:64em){.grid-container-desktop-lg{padding-left:2rem;padding-right:2rem}}.grid-container-widescreen{margin-left:auto;margin-right:auto;max-width:87.5rem;padding-left:1rem;padding-right:1rem}@media all and (min-width:64em){.grid-container-widescreen{padding-left:2rem;padding-right:2rem}}@media all and (min-width:30em){.mobile-lg\:grid-container{margin-left:auto;margin-right:auto;max-width:64rem;padding-left:1rem;padding-right:1rem}}@media all and (min-width:30em) and (min-width:64em){.mobile-lg\:grid-container{padding-left:2rem;padding-right:2rem}}@media all and (min-width:30em){.mobile-lg\:grid-container-card{margin-left:auto;margin-right:auto;max-width:10rem;padding-left:1rem;padding-right:1rem}}@media all and (min-width:30em) and (min-width:64em){.mobile-lg\:grid-container-card{padding-left:2rem;padding-right:2rem}}@media all and (min-width:30em){.mobile-lg\:grid-container-card-lg{margin-left:auto;margin-right:auto;max-width:15rem;padding-left:1rem;padding-right:1rem}}@media all and (min-width:30em) and (min-width:64em){.mobile-lg\:grid-container-card-lg{padding-left:2rem;padding-right:2rem}}@media all and (min-width:30em){.mobile-lg\:grid-container-mobile{margin-left:auto;margin-right:auto;max-width:20rem;padding-left:1rem;padding-right:1rem}}@media all and (min-width:30em) and (min-width:64em){.mobile-lg\:grid-container-mobile{padding-left:2rem;padding-right:2rem}}@media all and (min-width:30em){.mobile-lg\:grid-container-mobile-lg{margin-left:auto;margin-right:auto;max-width:30rem;padding-left:1rem;padding-right:1rem}}@media all and (min-width:30em) and (min-width:64em){.mobile-lg\:grid-container-mobile-lg{padding-left:2rem;padding-right:2rem}}@media all and (min-width:30em){.mobile-lg\:grid-container-tablet{margin-left:auto;margin-right:auto;max-width:40rem;padding-left:1rem;padding-right:1rem}}@media all and (min-width:30em) and (min-width:64em){.mobile-lg\:grid-container-tablet{padding-left:2rem;padding-right:2rem}}@media all and (min-width:30em){.mobile-lg\:grid-container-tablet-lg{margin-left:auto;margin-right:auto;max-width:55rem;padding-left:1rem;padding-right:1rem}}@media all and (min-width:30em) and (min-width:64em){.mobile-lg\:grid-container-tablet-lg{padding-left:2rem;padding-right:2rem}}@media all and (min-width:30em){.mobile-lg\:grid-container-desktop{margin-left:auto;margin-right:auto;max-width:64rem;padding-left:1rem;padding-right:1rem}}@media all and (min-width:30em) and (min-width:64em){.mobile-lg\:grid-container-desktop{padding-left:2rem;padding-right:2rem}}@media all and (min-width:30em){.mobile-lg\:grid-container-desktop-lg{margin-left:auto;margin-right:auto;max-width:75rem;padding-left:1rem;padding-right:1rem}}@media all and (min-width:30em) and (min-width:64em){.mobile-lg\:grid-container-desktop-lg{padding-left:2rem;padding-right:2rem}}@media all and (min-width:30em){.mobile-lg\:grid-container-widescreen{margin-left:auto;margin-right:auto;max-width:87.5rem;padding-left:1rem;padding-right:1rem}}@media all and (min-width:30em) and (min-width:64em){.mobile-lg\:grid-container-widescreen{padding-left:2rem;padding-right:2rem}}@media all and (min-width:40em){.tablet\:grid-container{margin-left:auto;margin-right:auto;max-width:64rem;padding-left:1rem;padding-right:1rem}}@media all and (min-width:40em) and (min-width:64em){.tablet\:grid-container{padding-left:2rem;padding-right:2rem}}@media all and (min-width:40em){.tablet\:grid-container-card{margin-left:auto;margin-right:auto;max-width:10rem;padding-left:1rem;padding-right:1rem}}@media all and (min-width:40em) and (min-width:64em){.tablet\:grid-container-card{padding-left:2rem;padding-right:2rem}}@media all and (min-width:40em){.tablet\:grid-container-card-lg{margin-left:auto;margin-right:auto;max-width:15rem;padding-left:1rem;padding-right:1rem}}@media all and (min-width:40em) and (min-width:64em){.tablet\:grid-container-card-lg{padding-left:2rem;padding-right:2rem}}@media all and (min-width:40em){.tablet\:grid-container-mobile{margin-left:auto;margin-right:auto;max-width:20rem;padding-left:1rem;padding-right:1rem}}@media all and (min-width:40em) and (min-width:64em){.tablet\:grid-container-mobile{padding-left:2rem;padding-right:2rem}}@media all and (min-width:40em){.tablet\:grid-container-mobile-lg{margin-left:auto;margin-right:auto;max-width:30rem;padding-left:1rem;padding-right:1rem}}@media all and (min-width:40em) and (min-width:64em){.tablet\:grid-container-mobile-lg{padding-left:2rem;padding-right:2rem}}@media all and (min-width:40em){.tablet\:grid-container-tablet{margin-left:auto;margin-right:auto;max-width:40rem;padding-left:1rem;padding-right:1rem}}@media all and (min-width:40em) and (min-width:64em){.tablet\:grid-container-tablet{padding-left:2rem;padding-right:2rem}}@media all and (min-width:40em){.tablet\:grid-container-tablet-lg{margin-left:auto;margin-right:auto;max-width:55rem;padding-left:1rem;padding-right:1rem}}@media all and (min-width:40em) and (min-width:64em){.tablet\:grid-container-tablet-lg{padding-left:2rem;padding-right:2rem}}@media all and (min-width:40em){.tablet\:grid-container-desktop{margin-left:auto;margin-right:auto;max-width:64rem;padding-left:1rem;padding-right:1rem}}@media all and (min-width:40em) and (min-width:64em){.tablet\:grid-container-desktop{padding-left:2rem;padding-right:2rem}}@media all and (min-width:40em){.tablet\:grid-container-desktop-lg{margin-left:auto;margin-right:auto;max-width:75rem;padding-left:1rem;padding-right:1rem}}@media all and (min-width:40em) and (min-width:64em){.tablet\:grid-container-desktop-lg{padding-left:2rem;padding-right:2rem}}@media all and (min-width:40em){.tablet\:grid-container-widescreen{margin-left:auto;margin-right:auto;max-width:87.5rem;padding-left:1rem;padding-right:1rem}}@media all and (min-width:40em) and (min-width:64em){.tablet\:grid-container-widescreen{padding-left:2rem;padding-right:2rem}}@media all and (min-width:64em){.desktop\:grid-container{margin-left:auto;margin-right:auto;max-width:64rem;padding-left:1rem;padding-right:1rem}}@media all and (min-width:64em) and (min-width:64em){.desktop\:grid-container{padding-left:2rem;padding-right:2rem}}@media all and (min-width:64em){.desktop\:grid-container-card{margin-left:auto;margin-right:auto;max-width:10rem;padding-left:1rem;padding-right:1rem}}@media all and (min-width:64em) and (min-width:64em){.desktop\:grid-container-card{padding-left:2rem;padding-right:2rem}}@media all and (min-width:64em){.desktop\:grid-container-card-lg{margin-left:auto;margin-right:auto;max-width:15rem;padding-left:1rem;padding-right:1rem}}@media all and (min-width:64em) and (min-width:64em){.desktop\:grid-container-card-lg{padding-left:2rem;padding-right:2rem}}@media all and (min-width:64em){.desktop\:grid-container-mobile{margin-left:auto;margin-right:auto;max-width:20rem;padding-left:1rem;padding-right:1rem}}@media all and (min-width:64em) and (min-width:64em){.desktop\:grid-container-mobile{padding-left:2rem;padding-right:2rem}}@media all and (min-width:64em){.desktop\:grid-container-mobile-lg{margin-left:auto;margin-right:auto;max-width:30rem;padding-left:1rem;padding-right:1rem}}@media all and (min-width:64em) and (min-width:64em){.desktop\:grid-container-mobile-lg{padding-left:2rem;padding-right:2rem}}@media all and (min-width:64em){.desktop\:grid-container-tablet{margin-left:auto;margin-right:auto;max-width:40rem;padding-left:1rem;padding-right:1rem}}@media all and (min-width:64em) and (min-width:64em){.desktop\:grid-container-tablet{padding-left:2rem;padding-right:2rem}}@media all and (min-width:64em){.desktop\:grid-container-tablet-lg{margin-left:auto;margin-right:auto;max-width:55rem;padding-left:1rem;padding-right:1rem}}@media all and (min-width:64em) and (min-width:64em){.desktop\:grid-container-tablet-lg{padding-left:2rem;padding-right:2rem}}@media all and (min-width:64em){.desktop\:grid-container-desktop{margin-left:auto;margin-right:auto;max-width:64rem;padding-left:1rem;padding-right:1rem}}@media all and (min-width:64em) and (min-width:64em){.desktop\:grid-container-desktop{padding-left:2rem;padding-right:2rem}}@media all and (min-width:64em){.desktop\:grid-container-desktop-lg{margin-left:auto;margin-right:auto;max-width:75rem;padding-left:1rem;padding-right:1rem}}@media all and (min-width:64em) and (min-width:64em){.desktop\:grid-container-desktop-lg{padding-left:2rem;padding-right:2rem}}@media all and (min-width:64em){.desktop\:grid-container-widescreen{margin-left:auto;margin-right:auto;max-width:87.5rem;padding-left:1rem;padding-right:1rem}}@media all and (min-width:64em) and (min-width:64em){.desktop\:grid-container-widescreen{padding-left:2rem;padding-right:2rem}}.grid-row{display:flex;flex-wrap:wrap}.grid-row.grid-gap{margin-left:-.5rem;margin-right:-.5rem}.grid-row.grid-gap>*{padding-left:.5rem;padding-right:.5rem}@media all and (min-width:64em){.grid-row.grid-gap{margin-left:-1rem;margin-right:-1rem}.grid-row.grid-gap>*{padding-left:1rem;padding-right:1rem}}.grid-row.grid-gap-0{margin-left:0;margin-right:0}.grid-row.grid-gap-0>*{padding-left:0;padding-right:0}.grid-row.grid-gap-2px{margin-left:-1px;margin-right:-1px}.grid-row.grid-gap-2px>*{padding-left:1px;padding-right:1px}.grid-row.grid-gap-05{margin-left:-2px;margin-right:-2px}.grid-row.grid-gap-05>*{padding-left:2px;padding-right:2px}.grid-row.grid-gap-1{margin-left:-.25rem;margin-right:-.25rem}.grid-row.grid-gap-1>*{padding-left:.25rem;padding-right:.25rem}.grid-row.grid-gap-2{margin-left:-.5rem;margin-right:-.5rem}.grid-row.grid-gap-2>*{padding-left:.5rem;padding-right:.5rem}.grid-row.grid-gap-3{margin-left:-.75rem;margin-right:-.75rem}.grid-row.grid-gap-3>*{padding-left:.75rem;padding-right:.75rem}.grid-row.grid-gap-4{margin-left:-1rem;margin-right:-1rem}.grid-row.grid-gap-4>*{padding-left:1rem;padding-right:1rem}.grid-row.grid-gap-5{margin-left:-1.25rem;margin-right:-1.25rem}.grid-row.grid-gap-5>*{padding-left:1.25rem;padding-right:1.25rem}.grid-row.grid-gap-6{margin-left:-1.5rem;margin-right:-1.5rem}.grid-row.grid-gap-6>*{padding-left:1.5rem;padding-right:1.5rem}.grid-row.grid-gap-sm{margin-left:-1px;margin-right:-1px}.grid-row.grid-gap-sm>*{padding-left:1px;padding-right:1px}.grid-row.grid-gap-md{margin-left:-.5rem;margin-right:-.5rem}.grid-row.grid-gap-md>*{padding-left:.5rem;padding-right:.5rem}.grid-row.grid-gap-lg{margin-left:-.75rem;margin-right:-.75rem}.grid-row.grid-gap-lg>*{padding-left:.75rem;padding-right:.75rem}@media all and (min-width:30em){.grid-row.mobile-lg\:grid-gap-0{margin-left:0;margin-right:0}.grid-row.mobile-lg\:grid-gap-0>*{padding-left:0;padding-right:0}.grid-row.mobile-lg\:grid-gap-2px{margin-left:-1px;margin-right:-1px}.grid-row.mobile-lg\:grid-gap-2px>*{padding-left:1px;padding-right:1px}.grid-row.mobile-lg\:grid-gap-05{margin-left:-2px;margin-right:-2px}.grid-row.mobile-lg\:grid-gap-05>*{padding-left:2px;padding-right:2px}.grid-row.mobile-lg\:grid-gap-1{margin-left:-.25rem;margin-right:-.25rem}.grid-row.mobile-lg\:grid-gap-1>*{padding-left:.25rem;padding-right:.25rem}.grid-row.mobile-lg\:grid-gap-2{margin-left:-.5rem;margin-right:-.5rem}.grid-row.mobile-lg\:grid-gap-2>*{padding-left:.5rem;padding-right:.5rem}.grid-row.mobile-lg\:grid-gap-3{margin-left:-.75rem;margin-right:-.75rem}.grid-row.mobile-lg\:grid-gap-3>*{padding-left:.75rem;padding-right:.75rem}.grid-row.mobile-lg\:grid-gap-4{margin-left:-1rem;margin-right:-1rem}.grid-row.mobile-lg\:grid-gap-4>*{padding-left:1rem;padding-right:1rem}.grid-row.mobile-lg\:grid-gap-5{margin-left:-1.25rem;margin-right:-1.25rem}.grid-row.mobile-lg\:grid-gap-5>*{padding-left:1.25rem;padding-right:1.25rem}.grid-row.mobile-lg\:grid-gap-6{margin-left:-1.5rem;margin-right:-1.5rem}.grid-row.mobile-lg\:grid-gap-6>*{padding-left:1.5rem;padding-right:1.5rem}.grid-row.mobile-lg\:grid-gap-sm{margin-left:-1px;margin-right:-1px}.grid-row.mobile-lg\:grid-gap-sm>*{padding-left:1px;padding-right:1px}.grid-row.mobile-lg\:grid-gap-md{margin-left:-.5rem;margin-right:-.5rem}.grid-row.mobile-lg\:grid-gap-md>*{padding-left:.5rem;padding-right:.5rem}.grid-row.mobile-lg\:grid-gap-lg{margin-left:-.75rem;margin-right:-.75rem}.grid-row.mobile-lg\:grid-gap-lg>*{padding-left:.75rem;padding-right:.75rem}}@media all and (min-width:40em){.grid-row.tablet\:grid-gap-0{margin-left:0;margin-right:0}.grid-row.tablet\:grid-gap-0>*{padding-left:0;padding-right:0}.grid-row.tablet\:grid-gap-2px{margin-left:-1px;margin-right:-1px}.grid-row.tablet\:grid-gap-2px>*{padding-left:1px;padding-right:1px}.grid-row.tablet\:grid-gap-05{margin-left:-2px;margin-right:-2px}.grid-row.tablet\:grid-gap-05>*{padding-left:2px;padding-right:2px}.grid-row.tablet\:grid-gap-1{margin-left:-.25rem;margin-right:-.25rem}.grid-row.tablet\:grid-gap-1>*{padding-left:.25rem;padding-right:.25rem}.grid-row.tablet\:grid-gap-2{margin-left:-.5rem;margin-right:-.5rem}.grid-row.tablet\:grid-gap-2>*{padding-left:.5rem;padding-right:.5rem}.grid-row.tablet\:grid-gap-3{margin-left:-.75rem;margin-right:-.75rem}.grid-row.tablet\:grid-gap-3>*{padding-left:.75rem;padding-right:.75rem}.grid-row.tablet\:grid-gap-4{margin-left:-1rem;margin-right:-1rem}.grid-row.tablet\:grid-gap-4>*{padding-left:1rem;padding-right:1rem}.grid-row.tablet\:grid-gap-5{margin-left:-1.25rem;margin-right:-1.25rem}.grid-row.tablet\:grid-gap-5>*{padding-left:1.25rem;padding-right:1.25rem}.grid-row.tablet\:grid-gap-6{margin-left:-1.5rem;margin-right:-1.5rem}.grid-row.tablet\:grid-gap-6>*{padding-left:1.5rem;padding-right:1.5rem}.grid-row.tablet\:grid-gap-sm{margin-left:-1px;margin-right:-1px}.grid-row.tablet\:grid-gap-sm>*{padding-left:1px;padding-right:1px}.grid-row.tablet\:grid-gap-md{margin-left:-.5rem;margin-right:-.5rem}.grid-row.tablet\:grid-gap-md>*{padding-left:.5rem;padding-right:.5rem}.grid-row.tablet\:grid-gap-lg{margin-left:-.75rem;margin-right:-.75rem}.grid-row.tablet\:grid-gap-lg>*{padding-left:.75rem;padding-right:.75rem}}@media all and (min-width:64em){.grid-row.desktop\:grid-gap-0{margin-left:0;margin-right:0}.grid-row.desktop\:grid-gap-0>*{padding-left:0;padding-right:0}.grid-row.desktop\:grid-gap-2px{margin-left:-1px;margin-right:-1px}.grid-row.desktop\:grid-gap-2px>*{padding-left:1px;padding-right:1px}.grid-row.desktop\:grid-gap-05{margin-left:-2px;margin-right:-2px}.grid-row.desktop\:grid-gap-05>*{padding-left:2px;padding-right:2px}.grid-row.desktop\:grid-gap-1{margin-left:-.25rem;margin-right:-.25rem}.grid-row.desktop\:grid-gap-1>*{padding-left:.25rem;padding-right:.25rem}.grid-row.desktop\:grid-gap-2{margin-left:-.5rem;margin-right:-.5rem}.grid-row.desktop\:grid-gap-2>*{padding-left:.5rem;padding-right:.5rem}.grid-row.desktop\:grid-gap-3{margin-left:-.75rem;margin-right:-.75rem}.grid-row.desktop\:grid-gap-3>*{padding-left:.75rem;padding-right:.75rem}.grid-row.desktop\:grid-gap-4{margin-left:-1rem;margin-right:-1rem}.grid-row.desktop\:grid-gap-4>*{padding-left:1rem;padding-right:1rem}.grid-row.desktop\:grid-gap-5{margin-left:-1.25rem;margin-right:-1.25rem}.grid-row.desktop\:grid-gap-5>*{padding-left:1.25rem;padding-right:1.25rem}.grid-row.desktop\:grid-gap-6{margin-left:-1.5rem;margin-right:-1.5rem}.grid-row.desktop\:grid-gap-6>*{padding-left:1.5rem;padding-right:1.5rem}.grid-row.desktop\:grid-gap-sm{margin-left:-1px;margin-right:-1px}.grid-row.desktop\:grid-gap-sm>*{padding-left:1px;padding-right:1px}.grid-row.desktop\:grid-gap-md{margin-left:-.5rem;margin-right:-.5rem}.grid-row.desktop\:grid-gap-md>*{padding-left:.5rem;padding-right:.5rem}.grid-row.desktop\:grid-gap-lg{margin-left:-.75rem;margin-right:-.75rem}.grid-row.desktop\:grid-gap-lg>*{padding-left:.75rem;padding-right:.75rem}}[class*=grid-col]{position:relative;width:100%;box-sizing:border-box}.grid-col{flex:1 1 0%;width:auto;max-width:100%;min-width:1px}.grid-col-auto,.grid-col-fill{flex:0 1 auto;width:auto;max-width:100%}.grid-col-fill{flex:1 1 0%;min-width:1px}.grid-col-1,.grid-col-2{flex:0 1 auto;width:8.3333333333%}.grid-col-2{width:16.6666666667%}.grid-col-3,.grid-col-4{flex:0 1 auto;width:25%}.grid-col-4{width:33.3333333333%}.grid-col-5,.grid-col-6{flex:0 1 auto;width:41.6666666667%}.grid-col-6{width:50%}.grid-col-7,.grid-col-8{flex:0 1 auto;width:58.3333333333%}.grid-col-8{width:66.6666666667%}.grid-col-10,.grid-col-9{flex:0 1 auto;width:75%}.grid-col-10{width:83.3333333333%}.grid-col-11,.grid-col-12{flex:0 1 auto;width:91.6666666667%}.grid-col-12{width:100%}@media all and (min-width:30em){.mobile-lg\:grid-col,.mobile-lg\:grid-col-fill{flex:1 1 0%;width:auto;max-width:100%;min-width:1px}.mobile-lg\:grid-col-auto{flex:0 1 auto;width:auto;max-width:100%}.mobile-lg\:grid-col-1{flex:0 1 auto;width:8.3333333333%}.mobile-lg\:grid-col-2{flex:0 1 auto;width:16.6666666667%}.mobile-lg\:grid-col-3{flex:0 1 auto;width:25%}.mobile-lg\:grid-col-4{flex:0 1 auto;width:33.3333333333%}.mobile-lg\:grid-col-5{flex:0 1 auto;width:41.6666666667%}.mobile-lg\:grid-col-6{flex:0 1 auto;width:50%}.mobile-lg\:grid-col-7{flex:0 1 auto;width:58.3333333333%}.mobile-lg\:grid-col-8{flex:0 1 auto;width:66.6666666667%}.mobile-lg\:grid-col-9{flex:0 1 auto;width:75%}.mobile-lg\:grid-col-10{flex:0 1 auto;width:83.3333333333%}.mobile-lg\:grid-col-11{flex:0 1 auto;width:91.6666666667%}.mobile-lg\:grid-col-12{flex:0 1 auto;width:100%}}@media all and (min-width:40em){.tablet\:grid-col,.tablet\:grid-col-fill{flex:1 1 0%;width:auto;max-width:100%;min-width:1px}.tablet\:grid-col-auto{flex:0 1 auto;width:auto;max-width:100%}.tablet\:grid-col-1{flex:0 1 auto;width:8.3333333333%}.tablet\:grid-col-2{flex:0 1 auto;width:16.6666666667%}.tablet\:grid-col-3{flex:0 1 auto;width:25%}.tablet\:grid-col-4{flex:0 1 auto;width:33.3333333333%}.tablet\:grid-col-5{flex:0 1 auto;width:41.6666666667%}.tablet\:grid-col-6{flex:0 1 auto;width:50%}.tablet\:grid-col-7{flex:0 1 auto;width:58.3333333333%}.tablet\:grid-col-8{flex:0 1 auto;width:66.6666666667%}.tablet\:grid-col-9{flex:0 1 auto;width:75%}.tablet\:grid-col-10{flex:0 1 auto;width:83.3333333333%}.tablet\:grid-col-11{flex:0 1 auto;width:91.6666666667%}.tablet\:grid-col-12{flex:0 1 auto;width:100%}}@media all and (min-width:64em){.desktop\:grid-col,.desktop\:grid-col-fill{flex:1 1 0%;width:auto;max-width:100%;min-width:1px}.desktop\:grid-col-auto{flex:0 1 auto;width:auto;max-width:100%}.desktop\:grid-col-1{flex:0 1 auto;width:8.3333333333%}.desktop\:grid-col-2{flex:0 1 auto;width:16.6666666667%}.desktop\:grid-col-3{flex:0 1 auto;width:25%}.desktop\:grid-col-4{flex:0 1 auto;width:33.3333333333%}.desktop\:grid-col-5{flex:0 1 auto;width:41.6666666667%}.desktop\:grid-col-6{flex:0 1 auto;width:50%}.desktop\:grid-col-7{flex:0 1 auto;width:58.3333333333%}.desktop\:grid-col-8{flex:0 1 auto;width:66.6666666667%}.desktop\:grid-col-9{flex:0 1 auto;width:75%}.desktop\:grid-col-10{flex:0 1 auto;width:83.3333333333%}.desktop\:grid-col-11{flex:0 1 auto;width:91.6666666667%}.desktop\:grid-col-12{flex:0 1 auto;width:100%}}.grid-offset-1{margin-left:8.3333333333%}.grid-offset-2{margin-left:16.6666666667%}.grid-offset-3{margin-left:25%}.grid-offset-4{margin-left:33.3333333333%}.grid-offset-5{margin-left:41.6666666667%}.grid-offset-6{margin-left:50%}.grid-offset-7{margin-left:58.3333333333%}.grid-offset-8{margin-left:66.6666666667%}.grid-offset-9{margin-left:75%}.grid-offset-10{margin-left:83.3333333333%}.grid-offset-11{margin-left:91.6666666667%}.grid-offset-12{margin-left:100%}.grid-offset-none{margin-left:0}@media all and (min-width:30em){.mobile-lg\:grid-offset-1{margin-left:8.3333333333%}.mobile-lg\:grid-offset-2{margin-left:16.6666666667%}.mobile-lg\:grid-offset-3{margin-left:25%}.mobile-lg\:grid-offset-4{margin-left:33.3333333333%}.mobile-lg\:grid-offset-5{margin-left:41.6666666667%}.mobile-lg\:grid-offset-6{margin-left:50%}.mobile-lg\:grid-offset-7{margin-left:58.3333333333%}.mobile-lg\:grid-offset-8{margin-left:66.6666666667%}.mobile-lg\:grid-offset-9{margin-left:75%}.mobile-lg\:grid-offset-10{margin-left:83.3333333333%}.mobile-lg\:grid-offset-11{margin-left:91.6666666667%}.mobile-lg\:grid-offset-12{margin-left:100%}.mobile-lg\:grid-offset-none{margin-left:0}}@media all and (min-width:40em){.tablet\:grid-offset-1{margin-left:8.3333333333%}.tablet\:grid-offset-2{margin-left:16.6666666667%}.tablet\:grid-offset-3{margin-left:25%}.tablet\:grid-offset-4{margin-left:33.3333333333%}.tablet\:grid-offset-5{margin-left:41.6666666667%}.tablet\:grid-offset-6{margin-left:50%}.tablet\:grid-offset-7{margin-left:58.3333333333%}.tablet\:grid-offset-8{margin-left:66.6666666667%}.tablet\:grid-offset-9{margin-left:75%}.tablet\:grid-offset-10{margin-left:83.3333333333%}.tablet\:grid-offset-11{margin-left:91.6666666667%}.tablet\:grid-offset-12{margin-left:100%}.tablet\:grid-offset-none{margin-left:0}}@media all and (min-width:64em){.desktop\:grid-offset-1{margin-left:8.3333333333%}.desktop\:grid-offset-2{margin-left:16.6666666667%}.desktop\:grid-offset-3{margin-left:25%}.desktop\:grid-offset-4{margin-left:33.3333333333%}.desktop\:grid-offset-5{margin-left:41.6666666667%}.desktop\:grid-offset-6{margin-left:50%}.desktop\:grid-offset-7{margin-left:58.3333333333%}.desktop\:grid-offset-8{margin-left:66.6666666667%}.desktop\:grid-offset-9{margin-left:75%}.desktop\:grid-offset-10{margin-left:83.3333333333%}.desktop\:grid-offset-11{margin-left:91.6666666667%}.desktop\:grid-offset-12{margin-left:100%}.desktop\:grid-offset-none{margin-left:0}}.usa-media-block{align-items:flex-start;display:flex}.usa-media-block__img{flex-shrink:0;margin-right:.5rem}.usa-media-block__body{flex:1 1 0%}.usa-js-no-click{-webkit-user-select:none;-moz-user-select:none;user-select:none}.usa-js-no-click .usa-modal,.usa-js-no-click .usa-modal *{pointer-events:auto;-webkit-user-select:text;-moz-user-select:text;user-select:text}.usa-js-no-click,[data-open-modal] *{pointer-events:none}.usa-modal-wrapper{text-align:center;transition:opacity .15s ease-in-out}.usa-modal-wrapper.is-hidden{visibility:hidden;opacity:0;position:fixed}.usa-modal-wrapper.is-visible{visibility:visible;opacity:1;position:fixed;z-index:99999}.usa-modal-overlay{background:rgba(0,0,0,.7);bottom:0;height:100%;left:0;overflow:scroll;overflow-x:hidden;padding:1.5rem;position:fixed;scroll-behavior:smooth;top:0;width:100%}.usa-modal-overlay:before{content:"";display:inline-block;height:100%;vertical-align:middle}.usa-modal-overlay[data-force-action=true]{pointer-events:none}.usa-modal-overlay[data-force-action=true] *{pointer-events:auto}.usa-js-loading .usa-modal-wrapper{position:absolute;left:-999em;right:auto}.usa-js-loading .usa-modal-wrapper:target{position:static}.usa-modal{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.06rem;line-height:1.5;border-radius:.5rem;background:#fff;color:#1b1b1b;display:inline-block;margin:1.25rem auto;max-width:30rem;position:relative;text-align:left;vertical-align:middle;width:100%}.usa-modal:focus{outline:0}.usa-modal__content{display:flex;flex-direction:column-reverse;padding-top:2rem;width:100%}.usa-modal__main{margin:0 auto;padding:.5rem 2rem 2rem}.usa-modal-wrapper [data-close-modal]>.usa-icon,.usa-modal-wrapper [data-close-modal]>.usa-icon use{pointer-events:none!important}.usa-modal__close{align-items:center;align-self:flex-end;background-color:transparent;color:#71767a;display:flex;flex-shrink:0;font-size:.93rem;margin:-2rem 0 0 auto;padding:.25rem;width:auto}.usa-modal__close:active,.usa-modal__close:hover{background-color:transparent;color:#1b1b1b}.usa-modal__close:focus{outline-offset:0}.usa-modal__close .usa-icon{height:2rem;margin:2px 2px 0 0;width:2rem}.usa-modal__heading{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:1.34rem;line-height:1.4;margin-top:0}.usa-modal__footer{margin-top:1.5rem}.usa-modal--lg{max-width:55rem;width:100%}.usa-modal--lg .usa-modal__main{padding-bottom:4rem;padding-top:1.25rem;width:100%;max-width:40rem}@media all and (min-width:40em){.usa-modal--lg .usa-modal__heading{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif;font-size:1.95rem}}.usa-js-modal--active{overflow:hidden}.usa-nav{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.06rem;line-height:.9}@media all and (max-width:63.99em){.usa-nav{right:0;bottom:0;top:0;position:fixed;background:#fff;border-right:0;display:none;flex-direction:column;overflow-y:auto;padding:1rem;width:15rem;z-index:500}.usa-nav.is-visible{animation:slidein-left .3s ease-in-out;display:flex}}@media all and (min-width:64em){.usa-nav{float:right;position:relative}}.usa-nav .usa-search{margin-top:1rem}@media all and (min-width:64em){.usa-nav .usa-search{margin-left:1rem;margin-top:0}}.usa-nav .usa-accordion{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.06rem;line-height:.9}@media all and (max-width:63.99em){.usa-nav__primary{margin-bottom:0;margin-top:0;list-style-type:none;padding-left:0}.usa-nav__primary>li{margin-bottom:0;max-width:unset}.usa-nav__primary-item{border-top:1px solid #dfe1e2}.usa-nav__primary a:not(.usa-button){display:block;padding:.5rem 1rem;text-decoration:none}.usa-nav__primary a:not(.usa-button):hover{background-color:#f0f0f0;text-decoration:none}.usa-nav__primary a:not(.usa-button):not(.usa-current){color:#565c65}.usa-nav__primary a:not(.usa-button):not(.usa-current):hover{color:#005ea2}.usa-nav__primary a:not(.usa-button):not(.usa-current):focus{outline-offset:0}.usa-nav__primary .usa-current{position:relative;color:#005ea2;font-weight:700}.usa-nav__primary .usa-current::after{background-color:#005ea2;border-radius:99rem;content:"";display:block;position:absolute;bottom:.25rem;top:.25rem;width:.25rem;left:.25rem}}@media all and (max-width:63.99em) and (min-width:40em){.usa-nav__primary .usa-current{position:relative}.usa-nav__primary .usa-current::after{background-color:#005ea2;border-radius:99rem;content:"";display:block;position:absolute;bottom:.25rem;top:.25rem;width:.25rem;left:0}}@media all and (max-width:63.99em){.usa-nav__primary a{padding-bottom:.75rem;padding-top:.75rem}}@media all and (min-width:64em){.usa-nav__primary{display:flex;align-items:stretch}}.usa-nav__primary .usa-nav__primary-item a{text-decoration:none}.usa-nav__primary>.usa-nav__primary-item{line-height:1.1}@media all and (min-width:64em){.usa-nav__primary>.usa-nav__primary-item{font-size:.93rem;line-height:.9}.usa-nav__primary>.usa-nav__primary-item>a{line-height:.9;padding:1rem;align-items:center;color:#565c65;display:flex;font-weight:700;height:100%}.usa-nav__primary>.usa-nav__primary-item>a:hover{color:#005ea2}.usa-nav__primary>.usa-nav__primary-item>button{height:100%}.usa-nav__primary a{padding-bottom:.5rem;padding-top:.5rem}}.usa-nav__primary button{background-color:transparent;border:0;border-radius:0;box-shadow:none;justify-content:normal;text-align:left;margin:0;padding:0;position:relative;color:#565c65;font-weight:400;line-height:1.1;padding:.75rem 1rem;text-decoration:none;width:100%}.usa-nav__primary button:visited{color:#54278f}.usa-nav__primary button:active{color:#162e51}.usa-nav__primary button:focus{outline:.25rem solid #2491ff;outline-offset:0}.usa-nav__primary button.usa-button--active,.usa-nav__primary button.usa-button--disabled,.usa-nav__primary button.usa-button--hover,.usa-nav__primary button:active,.usa-nav__primary button:disabled,.usa-nav__primary button:disabled.usa-button--active,.usa-nav__primary button:disabled.usa-button--hover,.usa-nav__primary button:disabled.usa-focus,.usa-nav__primary button:disabled:active,.usa-nav__primary button:disabled:focus,.usa-nav__primary button:disabled:hover,.usa-nav__primary button:hover,.usa-nav__primary button[aria-disabled=true],.usa-nav__primary button[aria-disabled=true].usa-button--active,.usa-nav__primary button[aria-disabled=true].usa-button--hover,.usa-nav__primary button[aria-disabled=true].usa-focus,.usa-nav__primary button[aria-disabled=true]:active,.usa-nav__primary button[aria-disabled=true]:focus,.usa-nav__primary button[aria-disabled=true]:hover{background-color:transparent;box-shadow:none;text-decoration:underline}.usa-nav__primary button.usa-button--hover{color:#1a4480}.usa-nav__primary button.usa-button--active{color:#162e51}.usa-nav__primary button:disabled,.usa-nav__primary button:disabled:hover,.usa-nav__primary button[aria-disabled=true],.usa-nav__primary button[aria-disabled=true]:focus,.usa-nav__primary button[aria-disabled=true]:hover{color:#757575}@media (forced-colors:active){.usa-nav__primary button:disabled,.usa-nav__primary button:disabled:hover,.usa-nav__primary button[aria-disabled=true],.usa-nav__primary button[aria-disabled=true]:focus,.usa-nav__primary button[aria-disabled=true]:hover{color:GrayText}}@media all and (min-width:64em){.usa-nav__primary button{line-height:.9;padding:1rem;font-size:.93rem;font-weight:700}}@media (forced-colors:active){.usa-nav__primary button{forced-color-adjust:auto}}.usa-nav__primary button:hover{color:#005ea2;background-color:#f0f0f0;text-decoration:none}@media all and (min-width:64em){.usa-nav__primary button:hover{background-color:transparent}}.usa-nav__primary button[aria-expanded],.usa-nav__primary button[aria-expanded]:hover{background-image:none}@media (forced-colors:active){.usa-nav__primary button[aria-expanded]::before,.usa-nav__primary button[aria-expanded]:hover::before{content:none}}.usa-nav__primary button[aria-expanded] span::after{position:absolute;top:50%;right:0;transform:translateY(-50%)}.usa-nav__primary button[aria-expanded=false] span::after{background-image:url(../img/usa-icons/add.svg);background-repeat:no-repeat;background-position:center center;background-size:1.25rem 1.25rem;display:inline-block;height:1.25rem;width:1.25rem;content:"";vertical-align:middle;margin-left:auto}@supports ((-webkit-mask:url()) or (mask:url())){.usa-nav__primary button[aria-expanded=false] span::after{background:0 0;background-color:ButtonText;-webkit-mask-image:url(../img/usa-icons/add.svg),linear-gradient(transparent,transparent);mask-image:url(../img/usa-icons/add.svg),linear-gradient(transparent,transparent);-webkit-mask-position:center center;mask-position:center center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:1.25rem 1.25rem;mask-size:1.25rem 1.25rem}}.usa-nav__primary button[aria-expanded=false] span::after:hover{background-color:buttonText}@media all and (min-width:64em){.usa-nav__primary button[aria-expanded=false] span::after{background-image:url(../img/usa-icons/expand_more.svg);background-repeat:no-repeat;background-position:center center;background-size:1rem 1rem;display:inline-block;height:1rem;width:1rem;content:"";vertical-align:middle;margin-left:auto}@supports ((-webkit-mask:url()) or (mask:url())){.usa-nav__primary button[aria-expanded=false] span::after{background:0 0;background-color:ButtonText;-webkit-mask-image:url(../img/usa-icons/expand_more.svg),linear-gradient(transparent,transparent);mask-image:url(../img/usa-icons/expand_more.svg),linear-gradient(transparent,transparent);-webkit-mask-position:center center;mask-position:center center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:1rem 1rem;mask-size:1rem 1rem}}.usa-nav__primary button[aria-expanded=false] span::after{right:.75rem}.usa-nav__primary button[aria-expanded=false]:hover span::after{background-color:#1a4480}}@media (min-width:64em) and (forced-colors:active){.usa-nav__primary button[aria-expanded=false]:hover span::after{background-color:ButtonText}}.usa-nav__primary button[aria-expanded=true] span::after{background-image:url(../img/usa-icons/remove.svg);background-repeat:no-repeat;background-position:center center;background-size:1.25rem 1.25rem;display:inline-block;height:1.25rem;width:1.25rem;content:"";vertical-align:middle;margin-left:auto}@supports ((-webkit-mask:url()) or (mask:url())){.usa-nav__primary button[aria-expanded=true] span::after{background:0 0;background-color:ButtonText;-webkit-mask-image:url(../img/usa-icons/remove.svg),linear-gradient(transparent,transparent);mask-image:url(../img/usa-icons/remove.svg),linear-gradient(transparent,transparent);-webkit-mask-position:center center;mask-position:center center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:1.25rem 1.25rem;mask-size:1.25rem 1.25rem}}.usa-nav__primary button[aria-expanded=true] span::after{position:absolute;right:0}@media (forced-colors:active){.usa-nav__primary button[aria-expanded=true] span::after{background-color:ButtonText}}@media all and (min-width:64em){.usa-nav__primary button[aria-expanded=true]{background-image:none;background-color:#162e51;color:#fff}}@media all and (min-width:64em) and (min-width:64em){.usa-nav__primary button[aria-expanded=true] span::after{background-image:url(../img/usa-icons/expand_less.svg);background-repeat:no-repeat;background-position:center center;background-size:1rem 1rem;display:inline-block;height:1rem;width:1rem;content:"";vertical-align:middle;margin-left:auto}@supports ((-webkit-mask:url()) or (mask:url())){.usa-nav__primary button[aria-expanded=true] span::after{background:0 0;background-color:ButtonText;-webkit-mask-image:url(../img/usa-icons/expand_less.svg),linear-gradient(transparent,transparent);mask-image:url(../img/usa-icons/expand_less.svg),linear-gradient(transparent,transparent);-webkit-mask-position:center center;mask-position:center center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:1rem 1rem;mask-size:1rem 1rem}}.usa-nav__primary button[aria-expanded=true] span::after{right:.75rem;background-color:#fff}}@media (min-width:64em) and (min-width:64em) and (forced-colors:active){.usa-nav__primary button[aria-expanded=true] span::after{background-color:ButtonText}}@media all and (min-width:64em){.usa-nav__primary .usa-accordion__button span{display:inline-block;margin-right:0;padding-right:1rem}}.usa-nav__secondary{margin-top:1rem}@media all and (min-width:64em){.usa-nav__secondary{flex-direction:column;align-items:flex-end;bottom:4rem;display:flex;font-size:.93rem;margin-top:.5rem;min-width:calc(27ch + 3rem);position:absolute;right:2rem}}.usa-nav__secondary .usa-search{width:100%}@media all and (min-width:64em){.usa-nav__secondary .usa-search{margin-left:0;margin-top:.5rem}}.usa-nav__secondary-links{margin-bottom:0;margin-top:0;list-style-type:none;padding-left:0;line-height:1.3;margin-top:1.5rem}@media all and (min-width:64em){.usa-nav__secondary-links{-moz-column-gap:.5rem;column-gap:.5rem;display:flex;flex-flow:row nowrap;line-height:.9;margin-bottom:.25rem;margin-top:0}.usa-nav__secondary-links .usa-nav__secondary-item{padding-left:.25rem}.usa-nav__secondary-links .usa-nav__secondary-item+.usa-nav__secondary-item{border-left:1px solid #dfe1e2;padding-left:.5rem}}.usa-nav__secondary-links a{color:#71767a;display:inline-block;font-size:.93rem;text-decoration:none}.usa-nav__secondary-links a:hover{color:#005ea2;text-decoration:underline}@media all and (max-width:63.99em){.usa-nav__submenu{list-style-type:none;padding-left:0;margin:0}.usa-nav__submenu>li{margin-bottom:0;max-width:unset}.usa-nav__submenu-item{border-top:1px solid #dfe1e2;font-size:.93rem}.usa-nav__submenu .usa-current::after{display:none}}@media all and (max-width:63.99em) and (min-width:40em){.usa-nav__submenu .usa-current::after{display:none}}@media all and (max-width:63.99em){.usa-nav__submenu a:not(.usa-button){padding-left:2rem}.usa-nav__submenu .usa-nav__submenu a:not(.usa-button){padding-left:3rem}.usa-nav__submenu .usa-nav__submenu .usa-nav__submenu a:not(.usa-button){padding-left:4rem}}@media all and (min-width:64em){.usa-nav__submenu{margin-bottom:0;margin-top:0;list-style-type:none;padding-left:0;padding-bottom:.5rem;padding-top:.5rem;background-color:#162e51;width:15rem;position:absolute;z-index:400}}.usa-nav__submenu[aria-hidden=true]{display:none}@media all and (min-width:64em){.usa-nav__submenu .usa-nav__submenu-item a{padding-left:1rem;padding-right:1rem;color:#fff;line-height:1.3;display:block}.usa-nav__submenu .usa-nav__submenu-item a:focus{outline-offset:-.25rem}.usa-nav__submenu .usa-nav__submenu-item a:hover{color:#fff;text-decoration:underline}}.usa-nav__submenu-list{margin-bottom:0;margin-top:0;list-style-type:none;padding-left:0}.usa-nav__submenu-list>li,.usa-process-list>li,.usa-prose .usa-process-list>li,.usa-sidenav>li,.usa-sidenav__sublist>li{margin-bottom:0;max-width:unset}.usa-nav__submenu-list .usa-nav__submenu-list-item{margin:0;font-size:.93rem}.usa-input-list li,.usa-nav__submenu-list .usa-nav__submenu-list-item a,.usa-prose .usa-input-list li{line-height:1.3}.usa-nav__close{text-decoration:underline;background-color:transparent;border:0;border-radius:0;box-shadow:none;font-weight:400;justify-content:normal;margin:0;padding:0;width:auto;height:3rem;width:3rem;background-image:none;color:currentColor;flex:none;float:right;margin:-.75rem -1rem 1rem auto;text-align:center}.usa-nav__close:visited{color:#54278f}.usa-nav__close:active{color:#162e51}.usa-nav__close:focus{outline:.25rem solid #2491ff;outline-offset:0}.usa-nav__close.usa-button--active,.usa-nav__close.usa-button--disabled,.usa-nav__close.usa-button--hover,.usa-nav__close:active,.usa-nav__close:disabled,.usa-nav__close:disabled.usa-button--active,.usa-nav__close:disabled.usa-button--hover,.usa-nav__close:disabled.usa-focus,.usa-nav__close:disabled:active,.usa-nav__close:disabled:focus,.usa-nav__close:disabled:hover,.usa-nav__close:hover,.usa-nav__close[aria-disabled=true],.usa-nav__close[aria-disabled=true].usa-button--active,.usa-nav__close[aria-disabled=true].usa-button--hover,.usa-nav__close[aria-disabled=true].usa-focus,.usa-nav__close[aria-disabled=true]:active,.usa-nav__close[aria-disabled=true]:focus,.usa-nav__close[aria-disabled=true]:hover{background-color:transparent;box-shadow:none;text-decoration:underline}.usa-nav__close.usa-button--hover{color:#1a4480}.usa-nav__close.usa-button--active{color:#162e51}.usa-nav__close:disabled,.usa-nav__close:disabled:hover,.usa-nav__close[aria-disabled=true],.usa-nav__close[aria-disabled=true]:focus,.usa-nav__close[aria-disabled=true]:hover{color:#757575}@media (forced-colors:active){.usa-nav__close:disabled,.usa-nav__close:disabled:hover,.usa-nav__close[aria-disabled=true],.usa-nav__close[aria-disabled=true]:focus,.usa-nav__close[aria-disabled=true]:hover{color:GrayText}.usa-nav__close::before{background-image:url(../img/usa-icons/close.svg);background-repeat:no-repeat;background-position:center center;background-size:1.25rem 1.25rem;display:inline-block;height:1.25rem;width:1.25rem;content:"";vertical-align:middle;margin-right:auto}@supports ((-webkit-mask:url()) or (mask:url())){.usa-nav__close::before{background:0 0;background-color:ButtonText;-webkit-mask-image:url(../img/usa-icons/close.svg),linear-gradient(transparent,transparent);mask-image:url(../img/usa-icons/close.svg),linear-gradient(transparent,transparent);-webkit-mask-position:center center;mask-position:center center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:1.25rem 1.25rem;mask-size:1.25rem 1.25rem}}.usa-nav__close::before{background-color:buttonText}}.usa-nav__close:hover{color:currentColor;text-decoration:none}@media all and (min-width:64em){.usa-nav__close{display:none}}.usa-nav__close img{width:1.5rem}@media (forced-colors:active){.usa-nav__close img{display:none}}.usa-nav__close+*{clear:both}.usa-js-mobile-nav--active{overflow:hidden}@media (min-width:63.06rem){.usa-js-mobile-nav--active.is-safari{overflow-y:scroll;position:fixed;top:var(--scrolltop, 0)}}.usa-pagination{margin-bottom:1rem;margin-top:1rem;font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.06rem;line-height:1.5;color:#1b1b1b;background-color:#fff;display:flex;justify-content:center}.usa-pagination .usa-icon{height:1.13rem;width:1.13rem}.usa-pagination__list{margin-bottom:0;margin-top:0;list-style-type:none;padding-left:0;align-items:center;display:flex;flex-flow:row nowrap;justify-content:center;width:auto}.usa-pagination__item{display:inline-flex;height:2.5rem;justify-content:center;line-height:1;margin-left:.25rem;margin-right:.25rem;min-width:2.5rem}@media all and (min-width:40em){.usa-pagination__item{flex:1 0 auto}}.usa-pagination__arrow{display:none}@media all and (min-width:40em){.usa-pagination__arrow{display:inherit}.usa-pagination__previous-page{margin-right:1.25rem}.usa-pagination__next-page{margin-left:1.25rem}}.usa-pagination__link{align-items:center;color:#005ea2;display:inline-flex}.usa-pagination__link[disabled]{opacity:.4!important;pointer-events:none}.usa-pagination__link:active,.usa-pagination__link:focus,.usa-pagination__link:hover{color:#1a4480}.usa-pagination__link:visited{color:#005ea2}.usa-pagination__button{align-items:center;border-color:rgba(27,27,27,.2);border-radius:.25rem;border-style:solid;border-width:1px;color:#005ea2;display:inline-flex;justify-content:center;padding:.5rem;width:100%}.usa-pagination__button:active,.usa-pagination__button:focus,.usa-pagination__button:hover{color:#1a4480;border-color:#1a4480}@media (forced-colors:active){.usa-pagination__button:active,.usa-pagination__button:focus,.usa-pagination__button:hover{border:2px solid transparent}}.usa-pagination .usa-current{background-color:#1b1b1b;border-color:transparent;color:#fff}@media (forced-colors:active){.usa-pagination .usa-current{border:2px solid transparent;color:buttonText}}.usa-pagination .usa-current:active,.usa-pagination .usa-current:focus,.usa-pagination .usa-current:hover{background-color:#1b1b1b;color:#fff}@media (forced-colors:active){.usa-pagination .usa-current:active,.usa-pagination .usa-current:focus,.usa-pagination .usa-current:hover{color:buttontext}}.usa-pagination__overflow{align-items:center;align-self:stretch;display:inherit;-webkit-user-select:none;-moz-user-select:none;user-select:none;padding:.5rem}.usa-process-list>.usa-process-list__item,.usa-prose .usa-process-list>.usa-process-list__item{max-width:72ex}.usa-process-list,.usa-prose .usa-process-list{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.06rem;line-height:1.5;margin-bottom:0;margin-top:0;list-style-type:none;padding-left:0;counter-reset:usa-numbered-list;padding:20px 0 0 calc(2.5rem/2 - .5rem/2);position:relative}.usa-process-list__item,.usa-prose .usa-process-list__item{border-left:.5rem solid #d9e8f6;font-size:1.06rem;margin-bottom:0;padding-bottom:2rem;padding-left:calc(calc(2.5rem/2 - .25rem)*2)}.usa-process-list__item:last-child{border-left:.5rem solid transparent}.usa-process-list__item::before{flex-direction:row;align-items:center;justify-content:center;border-radius:99rem;background-color:#fff;border:.25rem solid #1b1b1b;box-shadow:0 0 0 .25rem #fff;color:#1b1b1b;content:counter(usa-numbered-list,decimal);counter-increment:usa-numbered-list;display:flex;font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.46rem;font-weight:700;height:2.5rem;left:0;line-height:.9;margin-top:-.4rem;position:absolute;width:2.5rem}.usa-process-list__item ul li{margin-bottom:.25rem}.usa-process-list__item>:first-child{margin-top:0}.usa-process-list__item>:last-child{margin-bottom:0}.usa-process-list__heading{font-size:1.46rem;line-height:1.1;color:#1b1b1b;font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-weight:700;margin:0}.usa-process-list__heading+*{margin-top:.25rem}.usa-search{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.06rem;line-height:1.5;position:relative}.usa-search::after{clear:both;content:"";display:block}.usa-search [role=search],.usa-search[role=search],.usa-search[role=search]>div{display:flex}.usa-search [type=submit]{border-bottom-left-radius:0;border-top-left-radius:0;height:2rem;margin:0;padding:0;width:3rem}@media all and (min-width:30em){.usa-search [type=submit]{padding-left:1rem;padding-right:1rem;width:auto}}@media (forced-colors:active){.usa-search [type=submit]::before{background-image:url(../img/usa-icons/search.svg);background-repeat:no-repeat;background-position:center center;background-size:1.5rem 1.5rem;display:inline-block;height:1.5rem;width:1.5rem;content:"";vertical-align:middle;margin-right:auto}@supports ((-webkit-mask:url()) or (mask:url())){.usa-search [type=submit]::before{background:0 0;background-color:ButtonText;-webkit-mask-image:url(../img/usa-icons/search.svg),linear-gradient(transparent,transparent);mask-image:url(../img/usa-icons/search.svg),linear-gradient(transparent,transparent);-webkit-mask-position:center center;mask-position:center center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:1.5rem 1.5rem;mask-size:1.5rem 1.5rem}}.usa-search [type=submit]:focus{outline-offset:0}}@media (forced-colors:active) and (min-width:30em){.usa-search [type=submit]::before{content:none}}@media all and (min-width:30em){.usa-search__submit-icon{display:none}}@media (forced-colors:active){.usa-search__submit-icon{display:none}}@media all and (min-width:30em){.usa-search--big .usa-search__input,.usa-search--big [type=search]{font-size:1.06rem;height:3rem}.usa-search--big .usa-search__submit,.usa-search--big [type=submit]{padding-left:2rem;padding-right:2rem;font-size:1.46rem;height:3rem;width:auto}}.usa-search--small .usa-search__submit,.usa-search--small [type=submit]{padding-left:.75rem;padding-right:.75rem;min-width:3rem}@media (forced-colors:active) and (min-width:30em){.usa-search--small [type=submit]::before{content:""}}.usa-search--small .usa-search__submit-icon{height:1.5rem;width:1.5rem;display:block}@media (forced-colors:active){.usa-search--small .usa-search__submit-icon{display:none}}input[type=search]{box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;appearance:none}.usa-search__input,[type=search]{padding-bottom:0;padding-top:0;border-bottom-right-radius:0;border-right:none;border-top-right-radius:0;box-sizing:border-box;float:left;font-size:1rem;height:2rem;margin:0}.usa-search__submit-text{display:none}@media all and (min-width:30em){.usa-search__submit-text{display:block}}.usa-section{padding-bottom:2rem;padding-top:2rem}@media all and (min-width:40em){.usa-section{padding-bottom:4rem;padding-top:4rem}}.usa-section--light{background-color:#f0f0f0}.usa-section--dark{background-color:#162e51;color:#fff}.usa-section--dark p{color:#fff}.usa-section--dark a,.usa-section--dark a:visited{color:#dfe1e2}.usa-section--dark a:active,.usa-section--dark a:hover{color:#f0f0f0}.usa-sidenav{margin-bottom:0;margin-top:0;list-style-type:none;padding-left:0;font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.06rem;line-height:1.3;border-bottom:1px solid #dfe1e2}.usa-sidenav__item{border-top:1px solid #dfe1e2}.usa-sidenav a:not(.usa-button){display:block;padding:.5rem 1rem;text-decoration:none}.usa-sidenav a:not(.usa-button):hover{background-color:#f0f0f0;text-decoration:none}.usa-sidenav a:not(.usa-button):not(.usa-current){color:#565c65}.usa-sidenav a:not(.usa-button):not(.usa-current):hover{color:#005ea2}.usa-sidenav a:not(.usa-button):not(.usa-current):focus{outline-offset:0}.usa-sidenav .usa-current{position:relative;color:#005ea2;font-weight:700}.usa-sidenav .usa-current::after{background-color:#005ea2;border-radius:99rem;content:"";display:block;position:absolute;bottom:.25rem;top:.25rem;width:.25rem;left:.25rem}@media all and (min-width:40em){.usa-sidenav .usa-current{position:relative}.usa-sidenav .usa-current::after{background-color:#005ea2;border-radius:99rem;content:"";display:block;position:absolute;bottom:.25rem;top:.25rem;width:.25rem;left:0}}.grid-container .usa-sidenav{margin-left:-1rem;margin-right:-1rem}@media all and (min-width:40em){.grid-container .usa-sidenav{margin-left:0;margin-right:0}}.usa-sidenav__sublist{list-style-type:none;padding-left:0;margin:0;font-size:1rem}.usa-sidenav__sublist-item{border-top:1px solid #dfe1e2;font-size:.93rem}.usa-sidenav__sublist .usa-current::after{display:none}@media all and (min-width:40em){.usa-sidenav__sublist .usa-current::after{display:none}}.usa-sidenav__sublist a:not(.usa-button){padding-left:2rem}.usa-sidenav__sublist .usa-sidenav__sublist a:not(.usa-button){padding-left:3rem}.usa-sidenav__sublist .usa-sidenav__sublist .usa-sidenav__sublist a:not(.usa-button){padding-left:4rem}.usa-site-alert .usa-alert{background-color:#f0f0f0;border-left:.5rem solid #a9aeb1;color:#1b1b1b}.usa-site-alert .usa-alert .usa-alert__body{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.06rem;line-height:1.5;padding-bottom:1rem;padding-top:1rem;position:relative}.usa-site-alert .usa-alert .usa-alert__text{margin-bottom:0;margin-top:0}.usa-site-alert .usa-alert .usa-alert__text:only-child{padding-bottom:0;padding-top:0}.usa-site-alert .usa-alert .usa-alert__heading{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.46rem;line-height:.9;margin-top:0;margin-bottom:.5rem}.usa-site-alert .usa-alert .usa-alert__body>.usa-list,.usa-site-alert .usa-alert>.usa-list{padding-left:2ch}.usa-site-alert .usa-alert .usa-alert__body>.usa-list:last-child,.usa-site-alert .usa-alert>.usa-list:last-child{margin-bottom:0}.usa-site-alert .usa-alert .usa-alert__body{max-width:64rem;padding-left:1.25rem;padding-right:1.25rem}.usa-site-alert .usa-alert .usa-alert__body::before{left:1.0833333333rem}@media all and (min-width:64em){.usa-site-alert .usa-alert .usa-alert__body{margin-left:auto;margin-right:auto;padding-left:1.75rem;padding-right:1.75rem}.usa-site-alert .usa-alert .usa-alert__body::before{left:1.5833333333rem}}.usa-site-alert--info .usa-alert{background-color:#e7f6f8;border-left-color:#00bde3}.usa-site-alert--info .usa-alert .usa-alert__body{color:#1b1b1b;background-color:#e7f6f8;display:flex;flex-direction:column;justify-content:center;min-height:3.3333333333rem}.usa-site-alert--info .usa-alert .usa-alert__body::before{background-image:url(../img/usa-icons/info.svg);background-repeat:no-repeat;background-position:center center;background-size:2rem 2rem;height:2rem;width:2rem;content:"";display:block;position:absolute;top:.6666666667rem}@supports ((-webkit-mask:url()) or (mask:url())){.usa-site-alert--info .usa-alert .usa-alert__body::before{background:0 0;background-color:#1b1b1b;-webkit-mask-image:url(../img/usa-icons/info.svg),linear-gradient(transparent,transparent);mask-image:url(../img/usa-icons/info.svg),linear-gradient(transparent,transparent);-webkit-mask-position:center center;mask-position:center center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:2rem 2rem;mask-size:2rem 2rem}}.usa-site-alert--info .usa-alert .usa-alert__body>*{margin-left:2.5rem}.usa-site-alert--info .usa-alert .usa-alert__body .usa-link,.usa-skipnav{color:#005ea2}.usa-site-alert--info .usa-alert .usa-alert__body .usa-link:visited{color:#54278f}.usa-site-alert--info .usa-alert .usa-alert__body .usa-link:active,.usa-site-alert--info .usa-alert .usa-alert__body .usa-link:hover{color:#1a4480}.usa-site-alert--emergency .usa-alert{background-color:#9c3d10;border-left-color:#9c3d10}.usa-site-alert--emergency .usa-alert .usa-alert__body{color:#fff;background-color:#9c3d10;display:flex;flex-direction:column;justify-content:center;min-height:3.3333333333rem}.usa-site-alert--emergency .usa-alert .usa-alert__body::before{background-image:url(../img/usa-icons-bg/error--white.svg);background-repeat:no-repeat;background-position:center center;background-size:2rem 2rem;height:2rem;width:2rem;content:"";display:block;position:absolute;top:.6666666667rem}@supports ((-webkit-mask:url()) or (mask:url())){.usa-site-alert--emergency .usa-alert .usa-alert__body::before{background:0 0;background-color:#fff;-webkit-mask-image:url(../img/usa-icons/error.svg),linear-gradient(transparent,transparent);mask-image:url(../img/usa-icons/error.svg),linear-gradient(transparent,transparent);-webkit-mask-position:center center;mask-position:center center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:2rem 2rem;mask-size:2rem 2rem}}.usa-site-alert--emergency .usa-alert .usa-alert__body>*{margin-left:2.5rem}.usa-site-alert--emergency .usa-alert .usa-alert__body .usa-link,.usa-site-alert--emergency .usa-alert .usa-alert__body .usa-link:visited{color:#dfe1e2}.usa-site-alert--emergency .usa-alert .usa-alert__body .usa-link:active,.usa-site-alert--emergency .usa-alert .usa-alert__body .usa-link:hover{color:#f0f0f0}.usa-site-alert--slim .usa-alert .usa-alert__body{padding-bottom:.5rem;padding-top:.5rem;min-height:0}.usa-site-alert--slim .usa-alert .usa-alert__body:before{height:1.5rem;top:.5rem;width:1.5rem}@supports ((-webkit-mask:url()) or (mask:url())){.usa-site-alert--slim .usa-alert .usa-alert__body:before{-webkit-mask-size:1.5rem;mask-size:1.5rem}}.usa-site-alert--slim .usa-alert .usa-alert__body>*{margin-left:2rem}.usa-site-alert--slim .usa-alert .usa-alert__body::before{left:1.125rem}@media all and (min-width:64em){.usa-site-alert--slim .usa-alert .usa-alert__body::before{left:1.625rem}}.usa-site-alert--no-icon .usa-alert .usa-alert__body{min-height:0}.usa-site-alert--no-icon .usa-alert .usa-alert__body:before{display:none}.usa-site-alert--no-icon .usa-alert .usa-alert__body>*{margin-left:0}.usa-skipnav{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.06rem;line-height:1.5;text-decoration:underline;background:0 0;left:0;padding:.5rem 1rem;position:absolute;top:-3.8rem;transition:.15s ease-in-out;z-index:100}.usa-skipnav:visited{color:#54278f}.usa-skipnav:hover{color:#1a4480}.usa-skipnav:active{color:#162e51}.usa-skipnav:focus{outline:.25rem solid #2491ff;outline-offset:0}.usa-skipnav.usa-focus,.usa-skipnav:focus{background:#fff;left:0;position:absolute;top:0;transition:.15s ease-in-out}.usa-skipnav__container{position:relative}.usa-step-indicator{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.06rem;line-height:1.1;background-color:#fff;margin-bottom:2rem;margin-left:-1px;margin-right:-1px}@media all and (min-width:40em){.usa-step-indicator{margin-left:0;margin-right:0}}.usa-step-indicator__segments{counter-reset:usa-step-indicator;display:flex;list-style:none;margin:0;padding:0}.usa-step-indicator__segment{flex:1 1 0%;counter-increment:usa-step-indicator;margin-left:1px;margin-right:1px;max-width:15rem;min-height:.5rem;position:relative}.usa-step-indicator__segment:after{background-color:#919191;content:"";display:block;height:.5rem;left:0;position:absolute;right:0;top:0}@media all and (min-width:40em){.usa-step-indicator__segment:after{height:.5rem}}.usa-step-indicator__segment--complete::after{background-color:#162e51}.usa-step-indicator__segment--complete .usa-step-indicator__segment-label{color:#162e51}.usa-step-indicator__segment--current::after{background-color:#005ea2}.usa-step-indicator__segment--current .usa-step-indicator__segment-label{color:#005ea2;font-weight:700}.usa-step-indicator__segment-label{display:none}@media all and (min-width:40em){.usa-step-indicator__segment-label{color:#565c65;display:block;font-size:1.06rem;margin-top:calc(.5rem + .5rem);padding-right:2rem;text-align:left}}.usa-step-indicator__header{align-items:baseline;display:flex}.usa-step-indicator__heading{color:#1b1b1b;font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.13rem;font-weight:700;margin:1rem 0 0}@media all and (min-width:40em){.usa-step-indicator__heading{font-size:1.46rem;margin-top:2rem}}.usa-step-indicator__current-step{height:2.5rem;border-radius:99rem;width:2.5rem;font-weight:400;font-feature-settings:"tnum"1,"kern"1;background-color:#005ea2;color:#fff;display:inline-block;padding:calc((2.5rem - 2ex*1.1)*.5);text-align:center}.usa-step-indicator__total-steps{font-weight:400;font-feature-settings:"tnum"1,"kern"1;color:#005ea2;margin-right:.5rem}@media all and (min-width:40em){.usa-step-indicator--counters .usa-step-indicator__segment,.usa-step-indicator--counters-sm .usa-step-indicator__segment{margin-left:0;margin-right:0;margin-top:calc((2.5rem - .5rem)/2 + .25rem)}.usa-step-indicator--counters .usa-step-indicator__segment:before,.usa-step-indicator--counters-sm .usa-step-indicator__segment:before{height:2.5rem;border-radius:99rem;width:2.5rem;font-feature-settings:"tnum"1,"kern"1;background-color:#fff;box-shadow:inset 0 0 0 .25rem #919191,0 0 0 .25rem #fff;color:#565c65;content:counter(usa-step-indicator);display:block;font-weight:700;left:0;line-height:.9;padding:calc((2.5rem - 2ex*.9)*.5);position:absolute;text-align:center;top:calc((2.5rem - .5rem)/-2);z-index:100}.usa-step-indicator--counters .usa-step-indicator__segment:last-child:after,.usa-step-indicator--counters-sm .usa-step-indicator__segment:last-child:after{display:none}}.usa-step-indicator--counters .usa-step-indicator__segment--complete::before,.usa-step-indicator--counters-sm .usa-step-indicator__segment--complete::before{background-color:#162e51;box-shadow:0 0 0 .25rem #fff;color:#fff}.usa-step-indicator--counters .usa-step-indicator__segment--current::before,.usa-step-indicator--counters-sm .usa-step-indicator__segment--current::before{background-color:#005ea2;box-shadow:0 0 0 .25rem #fff;color:#fff}@media all and (min-width:40em){.usa-step-indicator--counters .usa-step-indicator__segment-label{margin-top:calc((2.5rem + .5rem)/2 + .5rem)}.usa-step-indicator--counters-sm.usa-step-indicator--center .usa-step-indicator__segment:first-child:after,.usa-step-indicator--counters.usa-step-indicator--center .usa-step-indicator__segment:first-child:after{left:50%;right:0;width:auto}.usa-step-indicator--counters-sm.usa-step-indicator--center .usa-step-indicator__segment:last-child:after,.usa-step-indicator--counters.usa-step-indicator--center .usa-step-indicator__segment:last-child:after{display:block;left:0;right:50%;width:auto}.usa-step-indicator--counters-sm .usa-step-indicator__segment{margin-top:calc((1.5rem - .5rem)/2 + .25rem)}.usa-step-indicator--counters-sm .usa-step-indicator__segment:before{height:1.5rem;border-radius:99rem;width:1.5rem;font-size:.93rem;padding:calc(.25rem + 1px);top:calc((1.5rem - .5rem)/-2)}.usa-step-indicator--counters-sm .usa-step-indicator__segment:last-child:after{display:none}.usa-step-indicator--counters-sm .usa-step-indicator__segment-label{margin-top:calc((1.5rem + .5rem)/2 + .5rem)}}.usa-step-indicator--center,.usa-step-indicator--no-labels{margin-left:-1px;margin-right:-1px}.usa-step-indicator--no-labels .usa-step-indicator__segment{margin-top:0;margin-left:1px;margin-right:1px}.usa-step-indicator--no-labels .usa-step-indicator__segment:before{display:none}.usa-step-indicator--no-labels .usa-step-indicator__segment:last-child:after{display:block}.usa-step-indicator--no-labels .usa-step-indicator__heading{margin-top:1rem}.usa-step-indicator--no-labels .usa-step-indicator__segment-label,.width-mobile .usa-table--stacked thead,.width-mobile .usa-table--stacked-header thead{display:none}.usa-step-indicator--center .usa-step-indicator__segment{margin-left:1px;margin-right:1px}.usa-step-indicator--center .usa-step-indicator__segment:before{left:calc(50% - (2.5rem + .25rem)/2)}.usa-step-indicator--center .usa-step-indicator__segment-label{padding-left:.5rem;padding-right:.5rem;text-align:center}.usa-step-indicator--center.usa-step-indicator--no-labels .usa-step-indicator__segment:first-child:after{left:0}.usa-step-indicator--center.usa-step-indicator--no-labels .usa-step-indicator__segment:last-child:after{right:0}.usa-step-indicator--center.usa-step-indicator--counters-sm .usa-step-indicator__segment:before{left:calc(50% - (1.5rem + .25rem)/2)}.usa-summary-box{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.06rem;line-height:1.5;color:#1b1b1b;background-color:#e7f6f8;border-radius:.25rem;border:1px #99deea solid;padding:1.5rem;position:relative}.usa-summary-box .usa-list:last-child{margin-bottom:0}*+.usa-summary-box{margin-top:1rem}.usa-summary-box__heading{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.46rem;line-height:1.1;margin-top:0;margin-bottom:.5rem}.usa-summary-box__text{margin-bottom:0;margin-top:0}.usa-summary-box__text:only-child{margin-bottom:1px;padding-top:.25rem}.usa-summary-box__link,.usa-summary-box__link[href^="#"]:visited{color:#005ea2}.usa-summary-box__link:visited{color:#54278f}.usa-summary-box__link:active,.usa-summary-box__link:hover,.usa-summary-box__link[href^="#"]:hover{color:#1a4480}.usa-table{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.06rem;line-height:1.5;border-collapse:collapse;border-spacing:0;color:#1b1b1b;margin:1.25rem 0;text-align:left}.usa-table tfoot td,.usa-table th,.usa-table thead td{background-clip:padding-box;line-height:1.3;background-color:#dfe1e2;color:#1b1b1b}.usa-table td,.usa-table th{border:1px solid #1b1b1b;padding:.5rem 1rem}.usa-table td{background-color:#fff;font-weight:400}.usa-table th[data-sortable]{padding-right:2.5rem;position:relative}.usa-table th[data-sortable]::after{border-bottom-color:transparent;border-bottom-style:solid;border-bottom-width:1px;bottom:0;content:"";height:0;left:0;position:absolute;width:100%}.usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button,.usa-table th[data-sortable][aria-sort=none] .usa-table__header__button{background-color:transparent;border:0;border-radius:0;box-shadow:none;font-weight:400;justify-content:normal;padding:0;width:auto;height:2rem;width:2rem;background-position:center center;background-size:1.5rem;color:#71767a;cursor:pointer;display:inline-block;margin:0;position:absolute;right:.25rem;text-align:center;text-decoration:none;top:50%;transform:translate(0,-50%)}.usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button:active,.usa-table th[data-sortable][aria-sort=none] .usa-table__header__button:active{color:#162e51}.usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button:focus,.usa-table th[data-sortable][aria-sort=none] .usa-table__header__button:focus{outline:.25rem solid #2491ff;outline-offset:0}.usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button.usa-button--active,.usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button.usa-button--disabled,.usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button.usa-button--hover,.usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button:active,.usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button:disabled,.usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button:disabled.usa-button--active,.usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button:disabled.usa-button--hover,.usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button:disabled.usa-focus,.usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button:disabled:active,.usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button:disabled:focus,.usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button:disabled:hover,.usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button:hover,.usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button[aria-disabled=true],.usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button[aria-disabled=true].usa-button--active,.usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button[aria-disabled=true].usa-button--hover,.usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button[aria-disabled=true].usa-focus,.usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button[aria-disabled=true]:active,.usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button[aria-disabled=true]:focus,.usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button[aria-disabled=true]:hover,.usa-table th[data-sortable][aria-sort=none] .usa-table__header__button.usa-button--active,.usa-table th[data-sortable][aria-sort=none] .usa-table__header__button.usa-button--disabled,.usa-table th[data-sortable][aria-sort=none] .usa-table__header__button.usa-button--hover,.usa-table th[data-sortable][aria-sort=none] .usa-table__header__button:active,.usa-table th[data-sortable][aria-sort=none] .usa-table__header__button:disabled,.usa-table th[data-sortable][aria-sort=none] .usa-table__header__button:disabled.usa-button--active,.usa-table th[data-sortable][aria-sort=none] .usa-table__header__button:disabled.usa-button--hover,.usa-table th[data-sortable][aria-sort=none] .usa-table__header__button:disabled.usa-focus,.usa-table th[data-sortable][aria-sort=none] .usa-table__header__button:disabled:active,.usa-table th[data-sortable][aria-sort=none] .usa-table__header__button:disabled:focus,.usa-table th[data-sortable][aria-sort=none] .usa-table__header__button:disabled:hover,.usa-table th[data-sortable][aria-sort=none] .usa-table__header__button:hover,.usa-table th[data-sortable][aria-sort=none] .usa-table__header__button[aria-disabled=true],.usa-table th[data-sortable][aria-sort=none] .usa-table__header__button[aria-disabled=true].usa-button--active,.usa-table th[data-sortable][aria-sort=none] .usa-table__header__button[aria-disabled=true].usa-button--hover,.usa-table th[data-sortable][aria-sort=none] .usa-table__header__button[aria-disabled=true].usa-focus,.usa-table th[data-sortable][aria-sort=none] .usa-table__header__button[aria-disabled=true]:active,.usa-table th[data-sortable][aria-sort=none] .usa-table__header__button[aria-disabled=true]:focus,.usa-table th[data-sortable][aria-sort=none] .usa-table__header__button[aria-disabled=true]:hover{background-color:transparent;box-shadow:none;text-decoration:underline}.usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button.usa-button--hover,.usa-table th[data-sortable][aria-sort=none] .usa-table__header__button.usa-button--hover{color:#1a4480}.usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button.usa-button--active,.usa-table th[data-sortable][aria-sort=none] .usa-table__header__button.usa-button--active{color:#162e51}.usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button:disabled,.usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button:disabled:hover,.usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button[aria-disabled=true],.usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button[aria-disabled=true]:focus,.usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button[aria-disabled=true]:hover,.usa-table th[data-sortable][aria-sort=none] .usa-table__header__button:disabled,.usa-table th[data-sortable][aria-sort=none] .usa-table__header__button:disabled:hover,.usa-table th[data-sortable][aria-sort=none] .usa-table__header__button[aria-disabled=true],.usa-table th[data-sortable][aria-sort=none] .usa-table__header__button[aria-disabled=true]:focus,.usa-table th[data-sortable][aria-sort=none] .usa-table__header__button[aria-disabled=true]:hover{color:#757575}@media (forced-colors:active){.usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button:disabled,.usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button:disabled:hover,.usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button[aria-disabled=true],.usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button[aria-disabled=true]:focus,.usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button[aria-disabled=true]:hover,.usa-table th[data-sortable][aria-sort=none] .usa-table__header__button:disabled,.usa-table th[data-sortable][aria-sort=none] .usa-table__header__button:disabled:hover,.usa-table th[data-sortable][aria-sort=none] .usa-table__header__button[aria-disabled=true],.usa-table th[data-sortable][aria-sort=none] .usa-table__header__button[aria-disabled=true]:focus,.usa-table th[data-sortable][aria-sort=none] .usa-table__header__button[aria-disabled=true]:hover{color:GrayText}}.usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button .usa-icon,.usa-table th[data-sortable][aria-sort=none] .usa-table__header__button .usa-icon{height:1.5rem;width:1.5rem;vertical-align:middle}.usa-table th[data-sortable][aria-sort=ascending],.usa-table th[data-sortable][aria-sort=descending]{background-color:#97d4ea}.usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button,.usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button{background-color:transparent;border:0;border-radius:0;box-shadow:none;font-weight:400;justify-content:normal;padding:0;width:auto;height:2rem;width:2rem;background-position:center center;background-size:1.5rem;color:#71767a;cursor:pointer;display:inline-block;margin:0;position:absolute;right:.25rem;text-align:center;text-decoration:none;top:50%;transform:translate(0,-50%)}.usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button:visited{color:#54278f}.usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button:hover{color:#1a4480}.usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button:active{color:#162e51}.usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button:focus{outline:.25rem solid #2491ff;outline-offset:0}.usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button.usa-button--active,.usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button.usa-button--disabled,.usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button.usa-button--hover,.usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button:active,.usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button:disabled,.usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button:disabled.usa-button--active,.usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button:disabled.usa-button--hover,.usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button:disabled.usa-focus,.usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button:disabled:active,.usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button:disabled:focus,.usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button:disabled:hover,.usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button:hover,.usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button[aria-disabled=true],.usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button[aria-disabled=true].usa-button--active,.usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button[aria-disabled=true].usa-button--hover,.usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button[aria-disabled=true].usa-focus,.usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button[aria-disabled=true]:active,.usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button[aria-disabled=true]:focus,.usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button[aria-disabled=true]:hover{background-color:transparent;box-shadow:none;text-decoration:underline}.usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button.usa-button--hover{color:#1a4480}.usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button.usa-button--active{color:#162e51}.usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button:disabled,.usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button:disabled:hover,.usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button[aria-disabled=true],.usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button[aria-disabled=true]:focus,.usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button[aria-disabled=true]:hover{color:#757575}@media (forced-colors:active){.usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button:disabled,.usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button:disabled:hover,.usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button[aria-disabled=true],.usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button[aria-disabled=true]:focus,.usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button[aria-disabled=true]:hover{color:GrayText}}.usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button .usa-icon{height:1.5rem;width:1.5rem;vertical-align:middle}.usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button:visited{color:#54278f}.usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button:hover{color:#1a4480}.usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button:active{color:#162e51}.usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button:focus{outline:.25rem solid #2491ff;outline-offset:0}.usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button.usa-button--active,.usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button.usa-button--disabled,.usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button.usa-button--hover,.usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button:active,.usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button:disabled,.usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button:disabled.usa-button--active,.usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button:disabled.usa-button--hover,.usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button:disabled.usa-focus,.usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button:disabled:active,.usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button:disabled:focus,.usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button:disabled:hover,.usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button:hover,.usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button[aria-disabled=true],.usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button[aria-disabled=true].usa-button--active,.usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button[aria-disabled=true].usa-button--hover,.usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button[aria-disabled=true].usa-focus,.usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button[aria-disabled=true]:active,.usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button[aria-disabled=true]:focus,.usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button[aria-disabled=true]:hover{background-color:transparent;box-shadow:none;text-decoration:underline}.usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button.usa-button--hover{color:#1a4480}.usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button.usa-button--active{color:#162e51}.usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button:disabled,.usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button:disabled:hover,.usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button[aria-disabled=true],.usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button[aria-disabled=true]:focus,.usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button[aria-disabled=true]:hover{color:#757575}@media (forced-colors:active){.usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button:disabled,.usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button:disabled:hover,.usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button[aria-disabled=true],.usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button[aria-disabled=true]:focus,.usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button[aria-disabled=true]:hover{color:GrayText}}.usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button .usa-icon{height:1.5rem;width:1.5rem;vertical-align:middle}.usa-table thead th[aria-sort]{background-color:#97d4ea;color:#1b1b1b}.usa-table td[data-sort-active],.usa-table th[data-sort-active]{background-color:#e1f3f8;color:#1b1b1b}.usa-table--borderless tfoot td,.usa-table--borderless th,.usa-table--borderless thead td{background-color:#fff}.usa-table--borderless th{border-top:0;color:#1b1b1b}.usa-table--borderless th[aria-sort]{color:#1b1b1b}.usa-table--borderless th[data-sortable]:not([aria-sort]) .usa-table__header__button .usa-icon>g.unsorted{fill:#1b1b1b}.usa-table--borderless td,.usa-table--borderless th{border-left:0;border-right:0}.usa-table--compact td,.usa-table--compact th{padding:.25rem .75rem}.usa-table--striped tbody tr:nth-child(odd) td[data-sort-active]{background-color:#c3ebfa;color:#1b1b1b}@media all and (max-width:29.99em){.usa-table--stacked thead,.usa-table--stacked-header thead{display:none}.usa-table--stacked th{background-color:#fff}.usa-table--stacked td,.usa-table--stacked th{border-bottom-width:0;display:block;width:100%}.usa-table--stacked tr,.usa-table--stacked-header tr{border-bottom:.25rem solid #1b1b1b;border-top-width:0;width:100%}.usa-table--stacked tr td:first-child,.usa-table--stacked tr th:first-child{border-top-width:0}.usa-table--stacked tr:nth-child(odd) td,.usa-table--stacked tr:nth-child(odd) th{background-color:inherit}.usa-table--stacked tr:first-child td:first-child,.usa-table--stacked tr:first-child th:first-child,.usa-table--stacked-header tr:first-child td:first-child,.usa-table--stacked-header tr:first-child th:first-child{border-top:.25rem solid #1b1b1b}.usa-table--stacked td[data-label],.usa-table--stacked th[data-label],.usa-table--stacked-header td[data-label],.usa-table--stacked-header th[data-label]{padding-bottom:.75rem}.usa-table--stacked td[data-label]:before,.usa-table--stacked th[data-label]:before{content:attr(data-label);display:block;font-weight:700;margin:-.5rem -1rem 0;padding:.75rem 1rem .25rem}.usa-table--stacked-header th{background-color:#fff}.usa-table--stacked-header td,.usa-table--stacked-header th{border-bottom-width:0;display:block;width:100%}.usa-table--stacked-header tr td:first-child,.usa-table--stacked-header tr th:first-child{border-top-width:0}.usa-table--stacked-header tr:nth-child(odd) td,.usa-table--stacked-header tr:nth-child(odd) th{background-color:inherit}.usa-table--stacked-header td[data-label]:before,.usa-table--stacked-header th[data-label]:before{content:attr(data-label);display:block;font-weight:700;margin:-.5rem -1rem 0;padding:.75rem 1rem .25rem}.usa-table--stacked-header tr td:first-child,.usa-table--stacked-header tr th:first-child{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.06rem;line-height:1.1;background-color:#dfe1e2;color:#1b1b1b;font-weight:700;padding:.75rem 1rem}.usa-table--stacked-header tr td:first-child:before,.usa-table--stacked-header tr th:first-child:before{display:none}}.width-mobile .usa-table--stacked th{background-color:#fff}.width-mobile .usa-table--stacked td,.width-mobile .usa-table--stacked th{border-bottom-width:0;display:block;width:100%}.width-mobile .usa-table--stacked tr td:first-child,.width-mobile .usa-table--stacked tr th:first-child{border-top-width:0}.width-mobile .usa-table--stacked tr:nth-child(odd) td,.width-mobile .usa-table--stacked tr:nth-child(odd) th{background-color:inherit}.width-mobile .usa-table--stacked tr:first-child td:first-child,.width-mobile .usa-table--stacked tr:first-child th:first-child,.width-mobile .usa-table--stacked-header tr:first-child td:first-child,.width-mobile .usa-table--stacked-header tr:first-child th:first-child{border-top:.25rem solid #1b1b1b}.width-mobile .usa-table--stacked td[data-label],.width-mobile .usa-table--stacked th[data-label],.width-mobile .usa-table--stacked-header td[data-label],.width-mobile .usa-table--stacked-header th[data-label]{padding-bottom:.75rem}.width-mobile .usa-table--stacked td[data-label]:before,.width-mobile .usa-table--stacked th[data-label]:before{content:attr(data-label);display:block;font-weight:700;margin:-.5rem -1rem 0;padding:.75rem 1rem .25rem}.width-mobile .usa-table--stacked-header th{background-color:#fff}.width-mobile .usa-table--stacked-header td,.width-mobile .usa-table--stacked-header th{border-bottom-width:0;display:block;width:100%}.width-mobile .usa-table--stacked-header tr td:first-child,.width-mobile .usa-table--stacked-header tr th:first-child{border-top-width:0}.width-mobile .usa-table--stacked-header tr:nth-child(odd) td,.width-mobile .usa-table--stacked-header tr:nth-child(odd) th{background-color:inherit}.width-mobile .usa-table--stacked-header td[data-label]:before,.width-mobile .usa-table--stacked-header th[data-label]:before{content:attr(data-label);display:block;font-weight:700;margin:-.5rem -1rem 0;padding:.75rem 1rem .25rem}.width-mobile .usa-table--stacked-header tr td:first-child,.width-mobile .usa-table--stacked-header tr th:first-child{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.06rem;line-height:1.1;background-color:#dfe1e2;color:#1b1b1b;font-weight:700;padding:.75rem 1rem}.width-mobile .usa-table--stacked-header tr td:first-child:before,.width-mobile .usa-table--stacked-header tr th:first-child:before{display:none}.usa-table--sticky-header{border:1px solid #1b1b1b;border-collapse:separate}.usa-table--sticky-header td,.usa-table--sticky-header th{border-left:none;border-top:none}.usa-table--sticky-header td:last-child,.usa-table--sticky-header th:last-child{border-right:none}.usa-table--sticky-header tfoot td,.usa-table--sticky-header tfoot th{border-top:1px solid #1b1b1b;border-bottom:none}.usa-table--sticky-header tbody tr:last-child td,.usa-table--sticky-header tbody tr:last-child th{border-bottom:none}.usa-table--sticky-header thead{position:sticky;top:-1px}.usa-table--sticky-header.usa-table--borderless{border:0}.usa-table--sticky-header.usa-table--borderless th{background-color:#fff;border-right:none}.usa-table--sticky-header.usa-table--borderless td{border-right:none}.usa-table-container--scrollable{margin:1.25rem 0;overflow-y:hidden}.usa-table-container--scrollable .usa-table{margin:0}.usa-table-container--scrollable td{white-space:nowrap}.usa-tag{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:.93rem;color:#fff;text-transform:uppercase;background-color:#565c65;border-radius:2px;margin-right:.25rem;padding:1px .5rem}.usa-tag:only-of-type{margin-right:0}.usa-tag--big{padding-left:.5rem;padding-right:.5rem;font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.06rem}.usa-tooltip{display:inline-block;position:relative}.usa-tooltip__trigger{cursor:pointer}.usa-tooltip__trigger>svg{display:block;pointer-events:none}.usa-tooltip__body,.usa-tooltip__body--top{transition:opacity .08s ease-in-out;background-color:#1b1b1b;border-radius:.25rem;color:#f0f0f0;display:none;font-size:1rem;opacity:0;padding:.5rem;width:auto;white-space:pre;z-index:100000;position:absolute}.usa-tooltip__body--top::after,.usa-tooltip__body::after{content:"";display:block;width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid #1b1b1b;position:absolute;bottom:-5px;left:50%;margin-left:-5px}.usa-tooltip__body--top::before,.usa-tooltip__body::before{content:"";display:block;position:absolute}.usa-tooltip__body--wrap{width:100%;white-space:normal;text-align:center;min-width:50vw}.usa-tooltip__body.is-set{display:block}.usa-tooltip__body.is-visible{opacity:1}.usa-tooltip__body--top::before{top:100%;height:5px;left:0;right:0}.usa-tooltip__body--bottom::before{bottom:100%;height:5px;left:0;right:0}.usa-tooltip__body--bottom::after{border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:5px solid #1b1b1b;border-top:0;bottom:auto;top:-5px}.usa-tooltip__body--right::before{right:100%;bottom:0;top:0;width:5px}.usa-tooltip__body--right::after{border-top:5px solid transparent;border-bottom:5px solid transparent;border-right:5px solid #1b1b1b;border-left:0;right:auto;top:50%;bottom:0;left:-5px;margin:-5px 0 0}.usa-tooltip__body--left::before{left:100%;bottom:0;top:0;width:5px}.usa-tooltip__body--left::after{border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:5px solid #1b1b1b;border-right:0;right:-5px;top:50%;bottom:0;left:auto;margin:-5px 0 0}.usa-character-count__status{display:inline-block;padding-top:.25rem}.usa-character-count__status.usa-character-count__status--invalid{color:#b50909;font-weight:700}.usa-input:disabled,.usa-input[aria-disabled=true]{color:#454545;background-color:#c9c9c9;cursor:not-allowed;opacity:1;-webkit-text-fill-color:#454545}.usa-input:disabled.usa-focus,.usa-input:disabled:active,.usa-input:disabled:focus,.usa-input:disabled:hover,.usa-input[aria-disabled=true].usa-focus,.usa-input[aria-disabled=true]:active,.usa-input[aria-disabled=true]:focus,.usa-input[aria-disabled=true]:hover{color:#454545;background-color:#c9c9c9}@media (forced-colors:active){.usa-input:disabled,.usa-input[aria-disabled=true]{color:GrayText;border:2px solid GrayText}.usa-input:disabled.usa-focus,.usa-input:disabled:active,.usa-input:disabled:focus,.usa-input:disabled:hover,.usa-input[aria-disabled=true].usa-focus,.usa-input[aria-disabled=true]:active,.usa-input[aria-disabled=true]:focus,.usa-input[aria-disabled=true]:hover{color:GrayText}}.usa-form .usa-input--2xs,.usa-input--2xs{max-width:5ex}.usa-form .usa-input--xs,.usa-input--xs{max-width:9ex}.usa-form .usa-input--sm,.usa-form .usa-input--small,.usa-input--sm,.usa-input--small{max-width:13ex}.usa-form .usa-input--md,.usa-form .usa-input--medium,.usa-input--md,.usa-input--medium{max-width:20ex}.usa-form .usa-input--lg,.usa-input--lg{max-width:30ex}.usa-form .usa-input--xl,.usa-input--xl{max-width:40ex}.usa-form .usa-input--2xl,.usa-input--2xl{max-width:50ex}.usa-input--error,.usa-input--success{border-width:.25rem;border-color:#b50909;border-style:solid;padding-top:calc(.5rem - .25rem);padding-bottom:calc(.5rem - .25rem)}.usa-input--success{border-color:#00a91c}.usa-fieldset{border:0;margin:0;padding:0}.usa-legend{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.06rem;line-height:1.3;display:block;font-weight:400;margin-top:1.5rem;max-width:30rem}.usa-legend--large{font-size:2.13rem;font-weight:700;margin-top:1rem}.usa-input-list,.usa-prose .usa-input-list{margin-bottom:0;margin-top:0;list-style-type:none;padding-left:0}.usa-checkbox{background:#fff}.usa-checkbox__label{color:#1b1b1b}.usa-checkbox__label::before{background:#fff;box-shadow:0 0 0 2px #1b1b1b}@media (forced-colors:active){.usa-checkbox__label::before{outline:2px solid transparent;outline-offset:2px}}.usa-checkbox__input:checked+[class*=__label]::before{background-color:#005ea2;box-shadow:0 0 0 2px #005ea2}.usa-checkbox__input:disabled+[class*=__label],.usa-checkbox__input[aria-disabled=true]+[class*=__label]{color:#757575;cursor:not-allowed}@media (forced-colors:active){.usa-checkbox__input:disabled+[class*=__label],.usa-checkbox__input[aria-disabled=true]+[class*=__label]{color:GrayText}}.usa-checkbox__input:disabled+[class*=__label]::before,.usa-checkbox__input[aria-disabled=true]+[class*=__label]::before{background-color:#fff;box-shadow:0 0 0 2px #757575}.usa-checkbox__input--tile+[class*=__label]{background-color:#fff;border:2px solid #c9c9c9;color:#1b1b1b;border-radius:.25rem;margin-top:.5rem;padding:.75rem 1rem .75rem 2.5rem}.usa-checkbox__input--tile:checked+[class*=__label]{background-color:rgba(0,94,162,.1);border-color:#005ea2}@media (forced-colors:active){.usa-checkbox__input--tile:checked+[class*=__label]{border:ButtonText solid .25rem}}.usa-checkbox__input--tile:disabled+[class*=__label],.usa-checkbox__input--tile[aria-disabled=true]+[class*=__label]{border-color:#e6e6e6}.usa-checkbox__input--tile:disabled:checked+[class*=__label],.usa-checkbox__input--tile:disabled:indeterminate+[class*=__label],.usa-checkbox__input--tile:disabled[data-indeterminate]+[class*=__label],.usa-checkbox__input--tile[aria-disabled=true]:checked+[class*=__label],.usa-checkbox__input--tile[aria-disabled=true]:indeterminate+[class*=__label],.usa-checkbox__input--tile[aria-disabled=true][data-indeterminate]+[class*=__label]{background-color:#fff}.usa-checkbox__input:indeterminate+[class*=__label]::before,.usa-checkbox__input[data-indeterminate]+[class*=__label]::before{background-image:url(../img/checkbox-indeterminate.svg),linear-gradient(transparent,transparent);background-repeat:no-repeat;background-color:#005ea2;box-shadow:0 0 0 2px #005ea2;background-position:center center;background-size:.75rem auto}@media (forced-colors:active){.usa-checkbox__input:indeterminate+[class*=__label]::before,.usa-checkbox__input[data-indeterminate]+[class*=__label]::before{background-image:url(../img/checkbox-indeterminate-alt.svg),linear-gradient(transparent,transparent);background-repeat:no-repeat;background-color:SelectedItem}}.usa-checkbox__input:indeterminate:disabled+[class*=__label]::before,.usa-checkbox__input:indeterminate[aria-disabled=true]+[class*=__label]::before,.usa-checkbox__input[data-indeterminate]:disabled+[class*=__label]::before,.usa-checkbox__input[data-indeterminate][aria-disabled=true]+[class*=__label]::before{box-shadow:0 0 0 2px #757575}.usa-checkbox__input:indeterminate:disabled+[class*=__label],.usa-checkbox__input:indeterminate[aria-disabled=true]+[class*=__label],.usa-checkbox__input[data-indeterminate]:disabled+[class*=__label],.usa-checkbox__input[data-indeterminate][aria-disabled=true]+[class*=__label]{border-color:#e6e6e6}.usa-checkbox__input--tile:indeterminate+[class*=__label],.usa-checkbox__input--tile[data-indeterminate]+[class*=__label]{background-color:rgba(0,94,162,.1);border-color:#005ea2}@media (forced-colors:active){.usa-checkbox__input--tile:indeterminate+[class*=__label],.usa-checkbox__input--tile[data-indeterminate]+[class*=__label]{border:ButtonText solid .25rem}}.usa-checkbox__input:checked+[class*=__label]::before,.usa-checkbox__input:checked:disabled+[class*=__label]::before,.usa-checkbox__input:checked[aria-disabled=true]+[class*=__label]::before{background-image:url(../img/correct8.svg),linear-gradient(transparent,transparent);background-repeat:no-repeat}@media (forced-colors:active){.usa-checkbox__input:checked+[class*=__label]::before,.usa-checkbox__input:checked:disabled+[class*=__label]::before,.usa-checkbox__input:checked[aria-disabled=true]+[class*=__label]::before{background-image:url(../img/correct8-alt.svg),linear-gradient(transparent,transparent);background-repeat:no-repeat}}.usa-checkbox__input:checked:disabled+[class*=__label]::before,.usa-checkbox__input:checked[aria-disabled=true]+[class*=__label]::before,.usa-checkbox__input:indeterminate:disabled+[class*=__label]::before,.usa-checkbox__input:indeterminate[aria-disabled=true]+[class*=__label]::before,.usa-checkbox__input[data-indeterminate]:disabled+[class*=__label]::before,.usa-checkbox__input[data-indeterminate][aria-disabled=true]+[class*=__label]::before{background-color:#757575}@media (forced-colors:active){.usa-checkbox__input:checked:disabled+[class*=__label]::before,.usa-checkbox__input:checked[aria-disabled=true]+[class*=__label]::before,.usa-checkbox__input:indeterminate:disabled+[class*=__label]::before,.usa-checkbox__input:indeterminate[aria-disabled=true]+[class*=__label]::before,.usa-checkbox__input[data-indeterminate]:disabled+[class*=__label]::before,.usa-checkbox__input[data-indeterminate][aria-disabled=true]+[class*=__label]::before{background-color:GrayText}}.usa-checkbox__input{position:absolute;left:-999em;right:auto}.usa-checkbox__input:focus+[class*=__label]::before{outline:.25rem solid #2491ff;outline-offset:.25rem}.usa-checkbox__input--tile+[class*=__label]::before{left:.5rem}.usa-checkbox__input:checked+[class*=__label]::before{background-position:center center;background-size:.75rem auto}@media print{.usa-checkbox__input:checked+[class*=__label]::before{background-image:none;background-color:#fff;content:"✔";text-align:center}}@media (forced-colors:active){.usa-checkbox__input:checked+[class*=__label]::before{background-color:SelectedItem}}.usa-checkbox__label{cursor:pointer;display:inherit;font-weight:400;margin-top:.75rem;padding-left:2rem;position:relative}.usa-checkbox__label::before{content:" ";display:block;left:0;margin-left:2px;margin-top:.064rem;position:absolute;height:1.25rem;width:1.25rem;border-radius:2px}.usa-checkbox__label-description{display:block;font-size:.93rem;margin-top:.5rem}.usa-select{background-image:url(../img/usa-icons/unfold_more.svg),linear-gradient(transparent,transparent);background-repeat:no-repeat;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;background-position:right .5rem center;background-size:1.25rem;padding-right:2rem}.usa-select::-ms-expand{display:none}.usa-select:-webkit-autofill{-webkit-appearance:menulist;appearance:menulist}.usa-select:-moz-focusring{color:transparent;text-shadow:0 0 0#000}.usa-select[multiple]{height:auto;background-image:none;padding-right:0}.usa-select option{overflow:hidden;text-overflow:ellipsis}.usa-select:disabled,.usa-select[aria-disabled=true]{color:#454545;background-color:#c9c9c9;cursor:not-allowed;opacity:1}.usa-select:disabled.usa-focus,.usa-select:disabled:active,.usa-select:disabled:focus,.usa-select:disabled:hover,.usa-select[aria-disabled=true].usa-focus,.usa-select[aria-disabled=true]:active,.usa-select[aria-disabled=true]:focus,.usa-select[aria-disabled=true]:hover{color:#454545;background-color:#c9c9c9}@media (forced-colors:active){.usa-select:disabled,.usa-select[aria-disabled=true]{color:GrayText;border:2px solid GrayText}.usa-select:disabled.usa-focus,.usa-select:disabled:active,.usa-select:disabled:focus,.usa-select:disabled:hover,.usa-select[aria-disabled=true].usa-focus,.usa-select[aria-disabled=true]:active,.usa-select[aria-disabled=true]:focus,.usa-select[aria-disabled=true]:hover{color:GrayText}.usa-select{-webkit-appearance:listbox;-moz-appearance:listbox;appearance:listbox;background-image:none;padding-right:0}}.usa-combo-box{max-width:30rem;position:relative}.usa-combo-box--pristine .usa-combo-box__input{padding-right:calc(5em + 4px)}.usa-combo-box--pristine .usa-combo-box__input::-ms-clear{display:none}.usa-combo-box--pristine .usa-combo-box__clear-input{display:block}@media (forced-colors:active){.usa-combo-box--pristine .usa-combo-box__clear-input{background-image:url(../img/usa-icons/close.svg);background-repeat:no-repeat;background-position:center center;background-size:1rem 1rem;display:inline-block;width:1rem;height:1.5rem;width:auto;top:.5rem}@supports ((-webkit-mask:url()) or (mask:url())){.usa-combo-box--pristine .usa-combo-box__clear-input{background:0 0;background-color:ButtonText;-webkit-mask-image:url(../img/usa-icons/close.svg),linear-gradient(transparent,transparent);mask-image:url(../img/usa-icons/close.svg),linear-gradient(transparent,transparent);-webkit-mask-position:center center;mask-position:center center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:1rem 1rem;mask-size:1rem 1rem}}}.usa-combo-box__input{-webkit-appearance:none;-moz-appearance:none;appearance:none;margin-bottom:0;max-width:none;padding-right:calc(2.5em + 3px)}.usa-combo-box__input:disabled,.usa-combo-box__input[aria-disabled=true]{color:#454545;background-color:#c9c9c9;cursor:not-allowed;opacity:1;-webkit-text-fill-color:#454545}.usa-combo-box__input:disabled.usa-focus,.usa-combo-box__input:disabled:active,.usa-combo-box__input:disabled:focus,.usa-combo-box__input:disabled:hover,.usa-combo-box__input[aria-disabled=true].usa-focus,.usa-combo-box__input[aria-disabled=true]:active,.usa-combo-box__input[aria-disabled=true]:focus,.usa-combo-box__input[aria-disabled=true]:hover,.usa-input-group input:disabled+.usa-input-suffix.usa-focus,.usa-input-group input:disabled+.usa-input-suffix:active,.usa-input-group input:disabled+.usa-input-suffix:focus,.usa-input-group input:disabled+.usa-input-suffix:hover,.usa-input-group input[aria-disabled=true]+.usa-input-suffix.usa-focus,.usa-input-group input[aria-disabled=true]+.usa-input-suffix:active,.usa-input-group input[aria-disabled=true]+.usa-input-suffix:focus,.usa-input-group input[aria-disabled=true]+.usa-input-suffix:hover{color:#454545;background-color:#c9c9c9}@media (forced-colors:active){.usa-combo-box__input:disabled,.usa-combo-box__input[aria-disabled=true]{color:GrayText;border:2px solid GrayText}.usa-combo-box__input:disabled.usa-focus,.usa-combo-box__input:disabled:active,.usa-combo-box__input:disabled:focus,.usa-combo-box__input:disabled:hover,.usa-combo-box__input[aria-disabled=true].usa-focus,.usa-combo-box__input[aria-disabled=true]:active,.usa-combo-box__input[aria-disabled=true]:focus,.usa-combo-box__input[aria-disabled=true]:hover{color:GrayText}}.usa-combo-box__input:disabled::-moz-placeholder,.usa-combo-box__input[aria-disabled=true]::-moz-placeholder{opacity:1}.usa-combo-box__input:disabled::placeholder,.usa-combo-box__input[aria-disabled=true]::placeholder{opacity:1}.usa-combo-box__input:disabled~.usa-combo-box__input-button-separator,.usa-combo-box__input[aria-disabled=true]~.usa-combo-box__input-button-separator{background-color:#454545;cursor:not-allowed}button.usa-combo-box__clear-input:focus,button.usa-combo-box__toggle-list:focus{outline-offset:-4px}button.usa-combo-box__clear-input:disabled,button.usa-combo-box__clear-input[aria-disabled=true],button.usa-combo-box__toggle-list:disabled,button.usa-combo-box__toggle-list[aria-disabled=true]{cursor:not-allowed}.usa-combo-box__clear-input__wrapper:focus,.usa-combo-box__toggle-list__wrapper:focus{outline:0}.usa-combo-box__clear-input,.usa-combo-box__toggle-list{background-color:transparent;background-position:center;border:0;bottom:1px;cursor:pointer;margin-bottom:0;opacity:.6;padding-right:2rem;position:absolute;top:1px;z-index:100}.usa-combo-box__clear-input{background-size:auto 1.5rem;background-image:url(../img/usa-icons/close.svg),linear-gradient(transparent,transparent);background-repeat:no-repeat;display:none;right:calc(2.5em + 3px)}.usa-combo-box__toggle-list{background-image:url(../img/usa-icons/expand_more.svg),linear-gradient(transparent,transparent);background-repeat:no-repeat;background-size:auto 2rem;right:1px}@media (forced-colors:active){.usa-combo-box__toggle-list{background-image:url(../img/usa-icons/expand_more.svg);background-repeat:no-repeat;background-position:center center;background-size:1rem 1rem;display:inline-block;height:1rem;width:1rem;height:auto;width:auto}@supports ((-webkit-mask:url()) or (mask:url())){.usa-combo-box__toggle-list{background:0 0;background-color:ButtonText;-webkit-mask-image:url(../img/usa-icons/expand_more.svg),linear-gradient(transparent,transparent);mask-image:url(../img/usa-icons/expand_more.svg),linear-gradient(transparent,transparent);-webkit-mask-position:center center;mask-position:center center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:1rem 1rem;mask-size:1rem 1rem}}.usa-combo-box__toggle-list:disabled,.usa-combo-box__toggle-list[aria-disabled=true]{background-color:GrayText}}.usa-combo-box__input-button-separator{background-color:#c6cace;position:absolute;top:1px;height:calc(100% - 1rem);margin-bottom:.5rem;margin-top:.5rem;width:1px;right:calc(2.5em + 2px);box-sizing:border-box;z-index:200}@media (forced-colors:active){.usa-combo-box__input-button-separator{background-color:ButtonText}}.usa-combo-box__list{border-width:1px;border-color:#565c65;border-style:solid;background-color:#fff;border-radius:0;border-top:0;margin:0;max-height:12.1em;overflow-x:hidden;overflow-y:scroll;padding:0;position:absolute;width:100%;z-index:300}.usa-combo-box__list:focus{outline:0}.usa-combo-box__list-option{border-bottom:1px solid #dfe1e2;cursor:pointer;display:block;padding:.5rem}.usa-combo-box__list-option--focused{outline:2px solid #162e51;outline-offset:-2px;position:relative;z-index:100}.usa-combo-box__list-option--focused:focus{outline-offset:-4px}.usa-combo-box__list-option--selected{background-color:#005ea2;border-color:#005ea2;color:#fff}.usa-combo-box__list-option--no-results{cursor:not-allowed;display:block;padding:.5rem}.usa-date-picker__wrapper{display:none;position:relative;max-width:30rem}.usa-date-picker__wrapper:focus{outline:0}.usa-date-picker__button:disabled,.usa-date-picker__calendar__date:disabled,.usa-date-picker__calendar__month-selection:disabled,.usa-date-picker__calendar__month:disabled,.usa-date-picker__calendar__next-month:disabled,.usa-date-picker__calendar__next-year-chunk:disabled,.usa-date-picker__calendar__next-year:disabled,.usa-date-picker__calendar__previous-month:disabled,.usa-date-picker__calendar__previous-year-chunk:disabled,.usa-date-picker__calendar__previous-year:disabled,.usa-date-picker__calendar__year-selection:disabled,.usa-date-picker__calendar__year:disabled,.usa-date-picker__external-input[aria-disabled=true]+.usa-date-picker__button,[aria-disabled=true].usa-date-picker__button,[aria-disabled=true].usa-date-picker__calendar__date,[aria-disabled=true].usa-date-picker__calendar__month,[aria-disabled=true].usa-date-picker__calendar__month-selection,[aria-disabled=true].usa-date-picker__calendar__next-month,[aria-disabled=true].usa-date-picker__calendar__next-year,[aria-disabled=true].usa-date-picker__calendar__next-year-chunk,[aria-disabled=true].usa-date-picker__calendar__previous-month,[aria-disabled=true].usa-date-picker__calendar__previous-year,[aria-disabled=true].usa-date-picker__calendar__previous-year-chunk,[aria-disabled=true].usa-date-picker__calendar__year,[aria-disabled=true].usa-date-picker__calendar__year-selection{cursor:not-allowed;opacity:.6}.usa-date-picker__button:hover:disabled,.usa-date-picker__calendar__date:hover:disabled,.usa-date-picker__calendar__month-selection:hover:disabled,.usa-date-picker__calendar__month:hover:disabled,.usa-date-picker__calendar__next-month:hover:disabled,.usa-date-picker__calendar__next-year-chunk:hover:disabled,.usa-date-picker__calendar__next-year:hover:disabled,.usa-date-picker__calendar__previous-month:hover:disabled,.usa-date-picker__calendar__previous-year-chunk:hover:disabled,.usa-date-picker__calendar__previous-year:hover:disabled,.usa-date-picker__calendar__year-selection:hover:disabled,.usa-date-picker__calendar__year:hover:disabled,.usa-date-picker__external-input[aria-disabled=true]+.usa-date-picker__button:hover,[aria-disabled=true].usa-date-picker__button:hover,[aria-disabled=true].usa-date-picker__calendar__date:hover,[aria-disabled=true].usa-date-picker__calendar__month-selection:hover,[aria-disabled=true].usa-date-picker__calendar__month:hover,[aria-disabled=true].usa-date-picker__calendar__next-month:hover,[aria-disabled=true].usa-date-picker__calendar__next-year-chunk:hover,[aria-disabled=true].usa-date-picker__calendar__next-year:hover,[aria-disabled=true].usa-date-picker__calendar__previous-month:hover,[aria-disabled=true].usa-date-picker__calendar__previous-year-chunk:hover,[aria-disabled=true].usa-date-picker__calendar__previous-year:hover,[aria-disabled=true].usa-date-picker__calendar__year-selection:hover,[aria-disabled=true].usa-date-picker__calendar__year:hover{background-color:initial}@media (forced-colors:active){.usa-date-picker__button:disabled,.usa-date-picker__button:hover:disabled,.usa-date-picker__calendar__date:disabled,.usa-date-picker__calendar__date:hover:disabled,.usa-date-picker__calendar__month-selection:disabled,.usa-date-picker__calendar__month-selection:hover:disabled,.usa-date-picker__calendar__month:disabled,.usa-date-picker__calendar__month:hover:disabled,.usa-date-picker__calendar__next-month:disabled,.usa-date-picker__calendar__next-month:hover:disabled,.usa-date-picker__calendar__next-year-chunk:disabled,.usa-date-picker__calendar__next-year-chunk:hover:disabled,.usa-date-picker__calendar__next-year:disabled,.usa-date-picker__calendar__next-year:hover:disabled,.usa-date-picker__calendar__previous-month:disabled,.usa-date-picker__calendar__previous-month:hover:disabled,.usa-date-picker__calendar__previous-year-chunk:disabled,.usa-date-picker__calendar__previous-year-chunk:hover:disabled,.usa-date-picker__calendar__previous-year:disabled,.usa-date-picker__calendar__previous-year:hover:disabled,.usa-date-picker__calendar__year-selection:disabled,.usa-date-picker__calendar__year-selection:hover:disabled,.usa-date-picker__calendar__year:disabled,.usa-date-picker__calendar__year:hover:disabled,.usa-date-picker__external-input[aria-disabled=true]+.usa-date-picker__button,.usa-date-picker__external-input[aria-disabled=true]+.usa-date-picker__button:hover,[aria-disabled=true].usa-date-picker__button,[aria-disabled=true].usa-date-picker__button:hover,[aria-disabled=true].usa-date-picker__calendar__date,[aria-disabled=true].usa-date-picker__calendar__date:hover,[aria-disabled=true].usa-date-picker__calendar__month,[aria-disabled=true].usa-date-picker__calendar__month-selection,[aria-disabled=true].usa-date-picker__calendar__month-selection:hover,[aria-disabled=true].usa-date-picker__calendar__month:hover,[aria-disabled=true].usa-date-picker__calendar__next-month,[aria-disabled=true].usa-date-picker__calendar__next-month:hover,[aria-disabled=true].usa-date-picker__calendar__next-year,[aria-disabled=true].usa-date-picker__calendar__next-year-chunk,[aria-disabled=true].usa-date-picker__calendar__next-year-chunk:hover,[aria-disabled=true].usa-date-picker__calendar__next-year:hover,[aria-disabled=true].usa-date-picker__calendar__previous-month,[aria-disabled=true].usa-date-picker__calendar__previous-month:hover,[aria-disabled=true].usa-date-picker__calendar__previous-year,[aria-disabled=true].usa-date-picker__calendar__previous-year-chunk,[aria-disabled=true].usa-date-picker__calendar__previous-year-chunk:hover,[aria-disabled=true].usa-date-picker__calendar__previous-year:hover,[aria-disabled=true].usa-date-picker__calendar__year,[aria-disabled=true].usa-date-picker__calendar__year-selection,[aria-disabled=true].usa-date-picker__calendar__year-selection:hover,[aria-disabled=true].usa-date-picker__calendar__year:hover{background-color:GrayText}}.usa-date-picker__calendar__month,.usa-date-picker__calendar__next-year-chunk,.usa-date-picker__calendar__previous-year-chunk,.usa-date-picker__calendar__year{background-color:#f0f0f0;border:0;width:100%}.usa-date-picker__calendar__month-selection,.usa-date-picker__calendar__year-selection{background-color:#f0f0f0;border:0}.usa-date-picker__calendar__date,.usa-date-picker__calendar__next-month,.usa-date-picker__calendar__next-year,.usa-date-picker__calendar__previous-month,.usa-date-picker__calendar__previous-year{background-color:#f0f0f0;border:0;width:100%}.usa-date-picker__button{border:0}.usa-date-picker__button:not([disabled]),.usa-date-picker__calendar__date:not([disabled]),.usa-date-picker__calendar__month-selection:not([disabled]),.usa-date-picker__calendar__month:not([disabled]),.usa-date-picker__calendar__next-month:not([disabled]),.usa-date-picker__calendar__next-year-chunk:not([disabled]),.usa-date-picker__calendar__next-year:not([disabled]),.usa-date-picker__calendar__previous-month:not([disabled]),.usa-date-picker__calendar__previous-year-chunk:not([disabled]),.usa-date-picker__calendar__previous-year:not([disabled]),.usa-date-picker__calendar__year-selection:not([disabled]),.usa-date-picker__calendar__year:not([disabled]){cursor:pointer}.usa-date-picker__button:not([disabled]):focus,.usa-date-picker__calendar__date:not([disabled]):focus,.usa-date-picker__calendar__month-selection:not([disabled]):focus,.usa-date-picker__calendar__month:not([disabled]):focus,.usa-date-picker__calendar__next-month:not([disabled]):focus,.usa-date-picker__calendar__next-year-chunk:not([disabled]):focus,.usa-date-picker__calendar__next-year:not([disabled]):focus,.usa-date-picker__calendar__previous-month:not([disabled]):focus,.usa-date-picker__calendar__previous-year-chunk:not([disabled]):focus,.usa-date-picker__calendar__previous-year:not([disabled]):focus,.usa-date-picker__calendar__year-selection:not([disabled]):focus,.usa-date-picker__calendar__year:not([disabled]):focus{outline-offset:-4px}.usa-date-picker__button:not([disabled]):hover,.usa-date-picker__calendar__date:not([disabled]):hover,.usa-date-picker__calendar__month-selection:not([disabled]):hover,.usa-date-picker__calendar__month:not([disabled]):hover,.usa-date-picker__calendar__next-month:not([disabled]):hover,.usa-date-picker__calendar__next-year-chunk:not([disabled]):hover,.usa-date-picker__calendar__next-year:not([disabled]):hover,.usa-date-picker__calendar__previous-month:not([disabled]):hover,.usa-date-picker__calendar__previous-year-chunk:not([disabled]):hover,.usa-date-picker__calendar__previous-year:not([disabled]):hover,.usa-date-picker__calendar__year-selection:not([disabled]):hover,.usa-date-picker__calendar__year:not([disabled]):hover{background-color:#dfe1e2}@media (forced-colors:active){.usa-date-picker__button:not([disabled]):hover,.usa-date-picker__calendar__date:not([disabled]):hover,.usa-date-picker__calendar__month-selection:not([disabled]):hover,.usa-date-picker__calendar__month:not([disabled]):hover,.usa-date-picker__calendar__next-month:not([disabled]):hover,.usa-date-picker__calendar__next-year-chunk:not([disabled]):hover,.usa-date-picker__calendar__next-year:not([disabled]):hover,.usa-date-picker__calendar__previous-month:not([disabled]):hover,.usa-date-picker__calendar__previous-year-chunk:not([disabled]):hover,.usa-date-picker__calendar__previous-year:not([disabled]):hover,.usa-date-picker__calendar__year-selection:not([disabled]):hover,.usa-date-picker__calendar__year:not([disabled]):hover{background-color:buttontext}}.usa-date-picker__button:not([disabled]):active,.usa-date-picker__calendar__date:not([disabled]):active,.usa-date-picker__calendar__month-selection:not([disabled]):active,.usa-date-picker__calendar__month:not([disabled]):active,.usa-date-picker__calendar__next-month:not([disabled]):active,.usa-date-picker__calendar__next-year-chunk:not([disabled]):active,.usa-date-picker__calendar__next-year:not([disabled]):active,.usa-date-picker__calendar__previous-month:not([disabled]):active,.usa-date-picker__calendar__previous-year-chunk:not([disabled]):active,.usa-date-picker__calendar__previous-year:not([disabled]):active,.usa-date-picker__calendar__year-selection:not([disabled]):active,.usa-date-picker__calendar__year:not([disabled]):active{background-color:#a9aeb1}@media (forced-colors:active){.usa-date-picker__button:not([disabled]):active,.usa-date-picker__calendar__date:not([disabled]):active,.usa-date-picker__calendar__month-selection:not([disabled]):active,.usa-date-picker__calendar__month:not([disabled]):active,.usa-date-picker__calendar__next-month:not([disabled]):active,.usa-date-picker__calendar__next-year-chunk:not([disabled]):active,.usa-date-picker__calendar__next-year:not([disabled]):active,.usa-date-picker__calendar__previous-month:not([disabled]):active,.usa-date-picker__calendar__previous-year-chunk:not([disabled]):active,.usa-date-picker__calendar__previous-year:not([disabled]):active,.usa-date-picker__calendar__year-selection:not([disabled]):active,.usa-date-picker__calendar__year:not([disabled]):active{background-color:buttontext}}.usa-date-picker--active .usa-date-picker__button{background-color:#f0f0f0}@media (forced-colors:active){.usa-date-picker--active .usa-date-picker__button{background-color:buttontext}}.usa-date-picker--active .usa-date-picker__calendar{z-index:400}.usa-date-picker__button{background-image:url(../img/usa-icons/calendar_today.svg),linear-gradient(transparent,transparent);background-repeat:no-repeat;align-self:stretch;background-color:transparent;background-position:center;background-size:1.5rem;margin-top:.5em;width:3em}@media (forced-colors:active){.usa-date-picker__button{background-image:url(../img/usa-icons/calendar_today.svg);background-repeat:no-repeat;background-position:center center;background-size:2.5rem 2.5rem;display:inline-block;height:2.5rem;width:3rem;-webkit-mask-size:1.5rem!important;mask-size:1.5rem!important;position:relative}@supports ((-webkit-mask:url()) or (mask:url())){.usa-date-picker__button{background:0 0;background-color:ButtonText;-webkit-mask-image:url(../img/usa-icons/calendar_today.svg),linear-gradient(transparent,transparent);mask-image:url(../img/usa-icons/calendar_today.svg),linear-gradient(transparent,transparent);-webkit-mask-position:center center;mask-position:center center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:2.5rem 2.5rem;mask-size:2.5rem 2.5rem}}.usa-date-picker__button:not([disabled]):focus,.usa-date-picker__button:not([disabled]):hover{background-color:Highlight}}.usa-date-picker--initialized .usa-date-picker__wrapper{display:flex}.usa-date-picker__calendar{background-color:#f0f0f0;left:auto;max-width:20rem;position:absolute;right:0;width:100%;z-index:100}.usa-date-picker__calendar__table{border-spacing:0;border-collapse:collapse;table-layout:fixed;text-align:center;width:100%}.usa-date-picker__calendar__table th{font-weight:400}.usa-date-picker__calendar__table td{padding:0}.usa-date-picker__calendar__row{display:flex;flex-wrap:wrap;text-align:center;width:100%}.usa-date-picker__calendar__cell{background-color:#f0f0f0;flex:1}.usa-date-picker__calendar__cell--center-items{display:flex;justify-content:center;align-items:center}@media (forced-colors:active){.usa-date-picker__calendar__cell--center-items:not([disabled]):hover{outline:2px solid transparent;outline-offset:-2px}}.usa-date-picker__calendar__next-month,.usa-date-picker__calendar__next-year,.usa-date-picker__calendar__previous-month,.usa-date-picker__calendar__previous-year{background-position:center;background-size:auto 1.5rem;height:1.5rem;padding:20px 10px}@media (forced-colors:active){.usa-date-picker__calendar__next-month,.usa-date-picker__calendar__next-year,.usa-date-picker__calendar__previous-month,.usa-date-picker__calendar__previous-year{-webkit-mask-size:1.5rem!important;mask-size:1.5rem!important}}.usa-date-picker__calendar__previous-year:not([disabled]){background-image:url(../img/usa-icons/navigate_far_before.svg),linear-gradient(transparent,transparent);background-repeat:no-repeat}@media (forced-colors:active){.usa-date-picker__calendar__previous-year:not([disabled]){background-image:url(../img/usa-icons/navigate_far_before.svg);background-repeat:no-repeat;background-position:center center;background-size:2.5rem 2.5rem;display:inline-block;height:2.5rem;width:3rem;background-color:buttonText}@supports ((-webkit-mask:url()) or (mask:url())){.usa-date-picker__calendar__previous-year:not([disabled]){background:0 0;background-color:ButtonText;-webkit-mask-image:url(../img/usa-icons/navigate_far_before.svg),linear-gradient(transparent,transparent);mask-image:url(../img/usa-icons/navigate_far_before.svg),linear-gradient(transparent,transparent);-webkit-mask-position:center center;mask-position:center center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:2.5rem 2.5rem;mask-size:2.5rem 2.5rem}}}.usa-date-picker__calendar__previous-month:not([disabled]){background-image:url(../img/usa-icons/navigate_before.svg),linear-gradient(transparent,transparent);background-repeat:no-repeat}@media (forced-colors:active){.usa-date-picker__calendar__previous-month:not([disabled]){background-image:url(../img/usa-icons/navigate_before.svg);background-repeat:no-repeat;background-position:center center;background-size:2.5rem 2.5rem;display:inline-block;height:2.5rem;width:3rem;background-color:buttonText}@supports ((-webkit-mask:url()) or (mask:url())){.usa-date-picker__calendar__previous-month:not([disabled]){background:0 0;background-color:ButtonText;-webkit-mask-image:url(../img/usa-icons/navigate_before.svg),linear-gradient(transparent,transparent);mask-image:url(../img/usa-icons/navigate_before.svg),linear-gradient(transparent,transparent);-webkit-mask-position:center center;mask-position:center center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:2.5rem 2.5rem;mask-size:2.5rem 2.5rem}}}.usa-date-picker__calendar__next-year:not([disabled]){background-image:url(../img/usa-icons/navigate_far_next.svg),linear-gradient(transparent,transparent);background-repeat:no-repeat}@media (forced-colors:active){.usa-date-picker__calendar__next-year:not([disabled]){background-image:url(../img/usa-icons/navigate_far_next.svg);background-repeat:no-repeat;background-position:center center;background-size:2.5rem 2.5rem;display:inline-block;height:2.5rem;width:3rem;background-color:buttonText}@supports ((-webkit-mask:url()) or (mask:url())){.usa-date-picker__calendar__next-year:not([disabled]){background:0 0;background-color:ButtonText;-webkit-mask-image:url(../img/usa-icons/navigate_far_next.svg),linear-gradient(transparent,transparent);mask-image:url(../img/usa-icons/navigate_far_next.svg),linear-gradient(transparent,transparent);-webkit-mask-position:center center;mask-position:center center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:2.5rem 2.5rem;mask-size:2.5rem 2.5rem}}}.usa-date-picker__calendar__next-month:not([disabled]){background-image:url(../img/usa-icons/navigate_next.svg),linear-gradient(transparent,transparent);background-repeat:no-repeat}@media (forced-colors:active){.usa-date-picker__calendar__next-month:not([disabled]){background-image:url(../img/usa-icons/navigate_next.svg);background-repeat:no-repeat;background-position:center center;background-size:2.5rem 2.5rem;display:inline-block;height:2.5rem;width:3rem;background-color:buttonText}@supports ((-webkit-mask:url()) or (mask:url())){.usa-date-picker__calendar__next-month:not([disabled]){background:0 0;background-color:ButtonText;-webkit-mask-image:url(../img/usa-icons/navigate_next.svg),linear-gradient(transparent,transparent);mask-image:url(../img/usa-icons/navigate_next.svg),linear-gradient(transparent,transparent);-webkit-mask-position:center center;mask-position:center center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:2.5rem 2.5rem;mask-size:2.5rem 2.5rem}}}.usa-date-picker__calendar__day-of-week{padding:6px 0}.usa-date-picker__calendar__date{padding:10px 0}.usa-date-picker__calendar__date--focused{outline:2px solid #162e51;outline-offset:-2px;position:relative;z-index:100}.usa-date-picker__calendar__date--next-month:not([disabled]),.usa-date-picker__calendar__date--previous-month:not([disabled]){color:#5d5d52}.usa-date-picker__calendar__date--range-date,.usa-date-picker__calendar__date--selected{background-color:#0050d8;color:#f9f9f9}.usa-date-picker__calendar__date--range-date:not([disabled]),.usa-date-picker__calendar__date--selected:not([disabled]){background-color:#0050d8;color:#f9f9f9}@media (forced-colors:active){.usa-date-picker__calendar__date--range-date:not([disabled]),.usa-date-picker__calendar__date--selected:not([disabled]){border:ActiveText 2px solid}}.usa-date-picker__calendar__date--range-date:not([disabled]):hover,.usa-date-picker__calendar__date--selected:not([disabled]):hover{background-color:#0050d8;color:#e6e6e6}.usa-date-picker__calendar__date--range-date:not([disabled]):focus,.usa-date-picker__calendar__date--selected:not([disabled]):focus{background-color:#0050d8;color:#f9f9f9}@media (forced-colors:active){.usa-date-picker__calendar__date--range-date:not([disabled]):focus,.usa-date-picker__calendar__date--selected:not([disabled]):focus{border:ActiveText 2px solid}}.usa-date-picker__calendar__date--range-date:not([disabled]):active,.usa-date-picker__calendar__date--selected:not([disabled]):active{background-color:#1a4480}@media (forced-colors:active){.usa-date-picker__calendar__date--range-date:not([disabled]):active,.usa-date-picker__calendar__date--selected:not([disabled]):active{background-color:Highlight}}.usa-date-picker__calendar__date--range-date-start{border-top-left-radius:10%;border-bottom-left-radius:10%}.usa-date-picker__calendar__date--range-date-end{border-top-right-radius:10%;border-bottom-right-radius:10%}.usa-date-picker__calendar__date--within-range{background-color:#cfe8ff}.usa-date-picker__calendar__date--within-range:not([disabled]),.usa-date-picker__calendar__date--within-range:not([disabled]):hover{background-color:#cfe8ff}@media (forced-colors:active){.usa-date-picker__calendar__date--within-range:not([disabled]){border:Highlight 2px solid}}@media (forced-colors:active){.usa-date-picker__calendar__date--within-range:not([disabled]):hover{border:Highlight 2px solid}}.usa-date-picker__calendar__date--within-range:not([disabled]):focus{background-color:#cfe8ff}@media (forced-colors:active){.usa-date-picker__calendar__date--within-range:not([disabled]):focus{border:Highlight 2px solid}}.usa-date-picker__calendar__date--within-range:not([disabled]):active{background-color:#cfe8ff}@media (forced-colors:active){.usa-date-picker__calendar__date--within-range:not([disabled]):active{background-color:Highlight}}@media all and (max-width:19.99em){.usa-date-picker__calendar__month-label{min-width:100%;order:-1}}@media all and (min-width:20em){.usa-date-picker__calendar__month-label{flex:4;text-align:center}}.usa-date-picker__calendar__month-selection,.usa-date-picker__calendar__year-selection{display:inline-block;height:100%;padding:8px 4px;width:auto}@media all and (max-width:19.99em){.usa-date-picker__calendar__month-selection,.usa-date-picker__calendar__year-selection{padding-bottom:0;padding-top:12px}}.usa-date-picker__calendar__month-picker{padding:20px 5px}@media all and (max-width:19.99em){.usa-date-picker__calendar__month-picker{padding-bottom:12px;padding-top:12px}.usa-date-picker__calendar__month-picker tr{display:flex;flex-direction:column}}.usa-date-picker__calendar__month{padding:10px 0}.usa-date-picker__calendar__month--focused{outline:2px solid #162e51;outline-offset:-2px;position:relative;z-index:100}.usa-date-picker__calendar__month--selected{background-color:#0050d8;color:#f9f9f9}.usa-date-picker__calendar__month--selected:not([disabled]){background-color:#0050d8;color:#f9f9f9}.usa-date-picker__calendar__month--selected:not([disabled]):hover{background-color:#0050d8;color:#e6e6e6}.usa-date-picker__calendar__month--selected:not([disabled]):focus{background-color:#0050d8;color:#f9f9f9}.usa-date-picker__calendar__month--selected:not([disabled]):active{background-color:#1a4480}.usa-date-picker__calendar__year-picker{padding:20px 5px}.usa-date-picker__calendar__next-year-chunk,.usa-date-picker__calendar__previous-year-chunk{background-position:center;background-size:auto 2rem;margin:auto;padding:40px 0}@media (forced-colors:active){.usa-date-picker__calendar__next-year-chunk,.usa-date-picker__calendar__previous-year-chunk{-webkit-mask-size:1.5rem!important;mask-size:1.5rem!important}}.usa-date-picker__calendar__previous-year-chunk:not([disabled]){background-image:url(../img/usa-icons/navigate_before.svg),linear-gradient(transparent,transparent);background-repeat:no-repeat}@media (forced-colors:active){.usa-date-picker__calendar__previous-year-chunk:not([disabled]){background-image:none}.usa-date-picker__calendar__previous-year-chunk:not([disabled])::after{background-image:url(../img/usa-icons/navigate_before.svg);background-repeat:no-repeat;background-position:center center;background-size:2.5rem 2.5rem;display:inline-block;height:2.5rem;width:3rem;content:"";vertical-align:middle;margin-left:auto}@supports ((-webkit-mask:url()) or (mask:url())){.usa-date-picker__calendar__previous-year-chunk:not([disabled])::after{background:0 0;background-color:ButtonText;-webkit-mask-image:url(../img/usa-icons/navigate_before.svg),linear-gradient(transparent,transparent);mask-image:url(../img/usa-icons/navigate_before.svg),linear-gradient(transparent,transparent);-webkit-mask-position:center center;mask-position:center center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:2.5rem 2.5rem;mask-size:2.5rem 2.5rem}}.usa-date-picker__calendar__previous-year-chunk:not([disabled]):hover{border:2px solid transparent;background-color:transparent}}.usa-date-picker__calendar__next-year-chunk:not([disabled]){background-image:url(../img/usa-icons/navigate_next.svg),linear-gradient(transparent,transparent);background-repeat:no-repeat}@media (forced-colors:active){.usa-date-picker__calendar__next-year-chunk:not([disabled]){background-image:none}.usa-date-picker__calendar__next-year-chunk:not([disabled])::after{background-image:url(../img/usa-icons/navigate_next.svg);background-repeat:no-repeat;background-position:center center;background-size:2.5rem 2.5rem;display:inline-block;height:2.5rem;width:3rem;content:"";vertical-align:middle;margin-left:auto}@supports ((-webkit-mask:url()) or (mask:url())){.usa-date-picker__calendar__next-year-chunk:not([disabled])::after{background:0 0;background-color:ButtonText;-webkit-mask-image:url(../img/usa-icons/navigate_next.svg),linear-gradient(transparent,transparent);mask-image:url(../img/usa-icons/navigate_next.svg),linear-gradient(transparent,transparent);-webkit-mask-position:center center;mask-position:center center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:2.5rem 2.5rem;mask-size:2.5rem 2.5rem}}.usa-date-picker__calendar__next-year-chunk:not([disabled]):hover{border:2px solid transparent;background-color:transparent}}.usa-date-picker__calendar__year{padding:10px 0}.usa-date-picker__calendar__year--focused{outline:2px solid #162e51;outline-offset:-2px;position:relative;z-index:100}.usa-date-picker__calendar__year--selected{background-color:#0050d8;color:#f9f9f9}.usa-date-picker__calendar__year--selected:not([disabled]){background-color:#0050d8;color:#f9f9f9}.usa-date-picker__calendar__year--selected:not([disabled]):hover{background-color:#0050d8;color:#e6e6e6}.usa-date-picker__calendar__year--selected:not([disabled]):focus{background-color:#0050d8;color:#f9f9f9}.usa-date-picker__calendar__year--selected:not([disabled]):active{background-color:#1a4480}.usa-error-message{padding-bottom:.25rem;padding-top:.25rem;color:#b50909;display:block;font-weight:700}[type=file]{border:0;margin-top:.5rem;padding-left:0;padding-top:.2rem}.usa-file-input{display:block;max-width:30rem;width:100%}.usa-file-input__target{border:1px dashed #a9aeb1;display:block;font-size:.93rem;margin-top:.5rem;position:relative;text-align:center;width:100%}.usa-file-input__target:hover{border-color:#71767a}.usa-file-input__target.has-invalid-file{border-color:#fa9441}.usa-file-input__accepted-files-message{font-weight:700;margin:-1.5rem 0 1.5rem;pointer-events:none;position:relative;z-index:3}.has-invalid-file .usa-file-input__accepted-files-message{color:#b50909}.usa-file-input__choose{color:#005ea2;text-decoration:underline;font-weight:400}.usa-file-input__choose:visited{color:#54278f}.usa-file-input__choose:hover{color:#1a4480}.usa-file-input__choose:active{color:#162e51}.usa-file-input__choose:focus{outline:.25rem solid #2491ff;outline-offset:0}.usa-file-input__instructions{padding:2rem 1rem;pointer-events:none;position:relative;z-index:3}.usa-file-input__box{background:#fff;height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%;z-index:2}.usa-file-input .usa-file-input__input[type]{cursor:pointer;height:100%;left:0;margin:0;max-width:none;position:absolute;padding:.5rem;text-indent:-999em;top:0;width:100%;z-index:1}.usa-file-input .usa-file-input__input[type]::-webkit-file-upload-button{display:none}.usa-file-input--drag .usa-file-input__target{border-color:#005ea2}.usa-file-input--drag .usa-file-input__box{background-color:#d9e8f6}.usa-file-input--drag .usa-file-input__preview{opacity:.1}.usa-file-input__preview,.usa-file-input__preview-heading{align-items:center;background:#d9e8f6;display:flex;pointer-events:none;position:relative;z-index:3}.usa-file-input__preview-heading{font-weight:700;justify-content:space-between;padding:.5rem}.usa-file-input__preview{word-wrap:anywhere;font-size:.87rem;margin-top:1px;padding:.25rem .5rem;text-align:left}.usa-file-input__preview:last-child{margin-bottom:-1.5rem}.usa-file-input__preview-image{border:0;display:block;height:2.5rem;margin-right:.5rem;-o-object-fit:contain;object-fit:contain;width:2.5rem}.usa-file-input__preview-image.is-loading{background-image:url(../img/loader.svg),linear-gradient(transparent,transparent);background-position:center center;background-repeat:no-repeat;background-size:2rem}.usa-file-input__preview-image--excel,.usa-file-input__preview-image--generic,.usa-file-input__preview-image--pdf,.usa-file-input__preview-image--video,.usa-file-input__preview-image--word{background-position:center center;background-size:1.5rem}.usa-file-input__preview-image--pdf{background-image:url(../img/file-pdf.svg),linear-gradient(transparent,transparent);background-repeat:no-repeat}.usa-file-input__preview-image--generic{background-image:url(../img/file.svg),linear-gradient(transparent,transparent);background-repeat:no-repeat}.usa-file-input__preview-image--word{background-image:url(../img/file-word.svg),linear-gradient(transparent,transparent);background-repeat:no-repeat}.usa-file-input__preview-image--excel{background-image:url(../img/file-excel.svg),linear-gradient(transparent,transparent);background-repeat:no-repeat}.usa-file-input__preview-image--video{background-image:url(../img/file-video.svg),linear-gradient(transparent,transparent);background-repeat:no-repeat}.usa-form-group--error .usa-file-input__target{border-color:#b50909;border-width:2px}.usa-file-input--disabled .usa-file-input__choose,.usa-file-input--disabled .usa-file-input__instructions{color:#454545}.usa-file-input--disabled .usa-file-input__box{background-color:#c9c9c9}.usa-file-input--disabled .usa-file-input__input[type]{cursor:not-allowed}.usa-file-input--disabled .usa-file-input__target:hover{border-color:#a9aeb1}.usa-file-input--disabled .usa-file-input--drag .usa-file-input__box{background-color:#c9c9c9}@media (forced-colors:active){.usa-file-input--disabled .usa-file-input__choose,.usa-file-input--disabled .usa-file-input__instructions{color:GrayText}.usa-file-input--disabled .usa-file-input__target,.usa-file-input--disabled .usa-file-input__target:hover{border-color:GrayText}}.usa-form-group{margin-top:1.5rem}.usa-form-group .usa-label:first-child{margin-top:0}.usa-form-group--error{border-left-width:.25rem;border-left-color:#b50909;border-left-style:solid;padding-left:1rem;position:relative}@media all and (min-width:64em){.usa-form-group--error{margin-left:-1.25rem}}.usa-hint{color:#71767a}.usa-hint--required{color:#b50909}.usa-input-group{align-items:center;display:flex;padding:0;position:relative}.usa-input-group--error input:focus,.usa-input-group--success input:focus{outline-offset:.25rem}.usa-input-group--error,.usa-input-group--success{border-width:.25rem;border-color:#b50909;border-style:solid}.usa-input-group--success{border-color:#00a91c}.usa-input-group input{padding-right:2.5rem;border:0;height:100%;margin-top:0;min-width:0;width:100%}.usa-input-group input:disabled+.usa-input-suffix,.usa-input-group input[aria-disabled=true]+.usa-input-suffix{color:#454545;background-color:#c9c9c9;cursor:not-allowed;opacity:1}@media (forced-colors:active){.usa-input-group input:disabled+.usa-input-suffix,.usa-input-group input[aria-disabled=true]+.usa-input-suffix{border:0;color:GrayText}.usa-input-group input:disabled+.usa-input-suffix.usa-focus,.usa-input-group input:disabled+.usa-input-suffix:active,.usa-input-group input:disabled+.usa-input-suffix:focus,.usa-input-group input:disabled+.usa-input-suffix:hover,.usa-input-group input[aria-disabled=true]+.usa-input-suffix.usa-focus,.usa-input-group input[aria-disabled=true]+.usa-input-suffix:active,.usa-input-group input[aria-disabled=true]+.usa-input-suffix:focus,.usa-input-group input[aria-disabled=true]+.usa-input-suffix:hover{color:GrayText}.usa-input-group input:disabled,.usa-input-group input[aria-disabled=true]{border:0}.usa-input-group:has(input:disabled),.usa-input-group:has(input[aria-disabled=true]){border:2px solid GrayText}}.usa-form .usa-input-group--2xs,.usa-input-group--2xs{max-width:5ex}.usa-form .usa-input-group--xs,.usa-input-group--xs{max-width:9ex}.usa-form .usa-input-group--sm,.usa-form .usa-input-group--small,.usa-input-group--sm,.usa-input-group--small{max-width:13ex}.usa-form .usa-input-group--md,.usa-form .usa-input-group--medium,.usa-input-group--md,.usa-input-group--medium{max-width:20ex}.usa-form .usa-input-group--lg,.usa-input-group--lg{max-width:30ex}.usa-form .usa-input-group--xl,.usa-input-group--xl{max-width:40ex}.usa-form .usa-input-group--2xl,.usa-input-group--2xl{max-width:50ex}.usa-input-prefix:has(+input:disabled),.usa-input-prefix:has(+input[aria-disabled=true]){color:#454545;background-color:#c9c9c9;cursor:not-allowed;opacity:1}.usa-input-prefix:has(+input:disabled).usa-focus,.usa-input-prefix:has(+input:disabled):active,.usa-input-prefix:has(+input:disabled):focus,.usa-input-prefix:has(+input:disabled):hover,.usa-input-prefix:has(+input[aria-disabled=true]).usa-focus,.usa-input-prefix:has(+input[aria-disabled=true]):active,.usa-input-prefix:has(+input[aria-disabled=true]):focus,.usa-input-prefix:has(+input[aria-disabled=true]):hover{color:#454545;background-color:#c9c9c9}@media (forced-colors:active){.usa-input-prefix:has(+input:disabled),.usa-input-prefix:has(+input[aria-disabled=true]){border:0;color:GrayText}.usa-input-prefix:has(+input:disabled).usa-focus,.usa-input-prefix:has(+input:disabled):active,.usa-input-prefix:has(+input:disabled):focus,.usa-input-prefix:has(+input:disabled):hover,.usa-input-prefix:has(+input[aria-disabled=true]).usa-focus,.usa-input-prefix:has(+input[aria-disabled=true]):active,.usa-input-prefix:has(+input[aria-disabled=true]):focus,.usa-input-prefix:has(+input[aria-disabled=true]):hover{color:GrayText}}.usa-input-prefix,.usa-input-suffix{position:absolute;color:#71767a;line-height:0;padding:0 .5rem;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.usa-input-prefix .usa-icon,.usa-input-suffix .usa-icon{height:1.5rem;width:1.5rem}.usa-input-prefix+input{padding-left:2.5rem;padding-right:.5rem}.usa-input-suffix{right:0}.usa-input-mask{display:block;position:relative}.usa-input-mask--content{border:1px solid transparent;color:#757575;display:block;left:2px;pointer-events:none;position:absolute;top:0}.usa-input-mask--content i{visibility:hidden}@media (forced-colors:active){.usa-input-mask--content i{color:ButtonText;font-style:normal;visibility:visible}.usa-input-mask--content{border:0}}.usa-input-mask--content,.usa-masked{background-color:transparent;padding:.5rem}.usa-label{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-size:1.06rem;line-height:1.3;display:block;font-weight:400;margin-top:1.5rem;max-width:30rem}.usa-label--error{font-weight:700;margin-top:0}.usa-label--required{color:#b50909}.usa-memorable-date{display:flex;flex-wrap:wrap}.usa-memorable-date [type=number]{-moz-appearance:textfield}.usa-memorable-date [type=number]::-webkit-inner-spin-button{-webkit-appearance:none;appearance:none}.usa-memorable-date [type=number]::-webkit-contacts-auto-fill-button{visibility:hidden;display:none!important;pointer-events:none;height:0;width:0;margin:0}.usa-memorable-date .usa-form-group{margin-top:1rem}.usa-form-group--day,.usa-form-group--month,.usa-form-group--year{flex:0 1 auto;margin-right:1rem;width:-moz-fit-content;width:fit-content}.usa-form-group--day input,.usa-form-group--month input{width:3rem}.usa-form-group--month select{width:15rem}.usa-form-group--year input{width:4.5rem}.usa-radio{background:#fff}.usa-radio__label{color:#1b1b1b}.usa-radio__label::before{background:#fff;box-shadow:0 0 0 2px #1b1b1b}@media (forced-colors:active){.usa-radio__label::before{outline:2px solid transparent;outline-offset:2px}}.usa-radio__input:checked+[class*=__label]::before{background-color:#005ea2}.usa-radio__input:disabled+[class*=__label],.usa-radio__input[aria-disabled=true]+[class*=__label]{color:#757575;cursor:not-allowed}@media (forced-colors:active){.usa-radio__input:disabled+[class*=__label],.usa-radio__input[aria-disabled=true]+[class*=__label]{color:GrayText}}.usa-radio__input:disabled+[class*=__label]::before,.usa-radio__input[aria-disabled=true]+[class*=__label]::before{background-color:#fff;box-shadow:0 0 0 2px #757575}.usa-radio__input--tile+[class*=__label]{background-color:#fff;border:2px solid #c9c9c9;color:#1b1b1b;border-radius:.25rem;margin-top:.5rem;padding:.75rem 1rem .75rem 2.5rem}.usa-radio__input--tile:checked+[class*=__label]{background-color:rgba(0,94,162,.1);border-color:#005ea2}@media (forced-colors:active){.usa-radio__input--tile:checked+[class*=__label]{border:ButtonText solid .25rem}}.usa-radio__input--tile:disabled+[class*=__label],.usa-radio__input--tile[aria-disabled=true]+[class*=__label]{border-color:#e6e6e6}.usa-radio__input--tile:disabled:checked+[class*=__label],.usa-radio__input--tile:disabled:indeterminate+[class*=__label],.usa-radio__input--tile:disabled[data-indeterminate]+[class*=__label],.usa-radio__input--tile[aria-disabled=true]:checked+[class*=__label],.usa-radio__input--tile[aria-disabled=true]:indeterminate+[class*=__label],.usa-radio__input--tile[aria-disabled=true][data-indeterminate]+[class*=__label]{background-color:#fff}.usa-radio__input:checked+[class*=__label]::before{box-shadow:0 0 0 2px #005ea2,inset 0 0 0 2px #fff}@media (forced-colors:active){.usa-radio__input:checked+[class*=__label]::before{background-color:ButtonText}}.usa-radio__input:checked:disabled+[class*=__label]::before,.usa-radio__input:checked[aria-disabled=true]+[class*=__label]::before{background-color:#757575;box-shadow:0 0 0 2px #757575,inset 0 0 0 2px #fff}@media (forced-colors:active){.usa-radio__input:checked:disabled+[class*=__label]::before,.usa-radio__input:checked[aria-disabled=true]+[class*=__label]::before{background-color:GrayText}}.usa-radio__input{position:absolute;left:-999em;right:auto}.usa-radio__input:focus+[class*=__label]::before{outline:.25rem solid #2491ff;outline-offset:.25rem}.usa-radio__input--tile+[class*=__label]::before{left:.5rem}@media print{.usa-radio__input:checked+[class*=__label]::before{box-shadow:inset 0 0 0 2px #fff,inset 0 0 0 1rem #005ea2,0 0 0 2px #005ea2}}.usa-radio__label{cursor:pointer;display:inherit;font-weight:400;margin-top:.75rem;padding-left:2rem;position:relative}.usa-radio__label::before{content:" ";display:block;left:0;margin-left:2px;margin-top:.064rem;position:absolute;height:1.25rem;border-radius:99rem;width:1.25rem}.usa-radio__label-description{display:block;font-size:.93rem;margin-top:.5rem}.usa-range{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;padding-left:1px;width:100%}.usa-range:focus{outline:0}.usa-range:focus::-webkit-slider-thumb{background-color:#fff;box-shadow:0 0 0 2px #2491ff}.usa-range:focus::-moz-range-thumb{background-color:#fff;box-shadow:0 0 0 2px #2491ff}.usa-range:focus::-ms-thumb{background-color:#fff;box-shadow:0 0 0 2px #2491ff}.usa-range::-webkit-slider-runnable-track{background-color:#f0f0f0;border-radius:99rem;border:1px solid #71767a;cursor:pointer;height:1rem;width:100%}.usa-range::-moz-range-track{background-color:#f0f0f0;border-radius:99rem;border:1px solid #71767a;cursor:pointer;height:1rem;width:100%}.usa-range::-ms-track{background-color:#f0f0f0;border-radius:99rem;border:1px solid #71767a;cursor:pointer;height:1rem;width:100%}.usa-range::-webkit-slider-thumb{height:1.25rem;border-radius:99rem;width:1.25rem;background:#f0f0f0;border:0;box-shadow:0 0 0 2px #71767a;cursor:pointer;-webkit-appearance:none;appearance:none;margin-top:-.19rem}@media (forced-colors:active){.usa-range::-webkit-slider-thumb{outline:2px solid transparent}}.usa-range::-moz-range-thumb{height:1.25rem;border-radius:99rem;width:1.25rem;background:#f0f0f0;border:0;box-shadow:0 0 0 2px #71767a;cursor:pointer}@media (forced-colors:active){.usa-range::-moz-range-thumb{outline:2px solid transparent}}.usa-range::-ms-thumb{height:1.25rem;border-radius:99rem;width:1.25rem;background:#f0f0f0;border:0;box-shadow:0 0 0 2px #71767a;cursor:pointer}@media (forced-colors:active){.usa-range::-ms-thumb{outline:2px solid transparent}}.usa-range::-ms-fill-lower{background-color:#f0f0f0;border-radius:99rem;border:1px solid #71767a}.usa-range::-ms-fill-upper{background-color:#f0f0f0;border-radius:99rem;border:1px solid #71767a}.usa-range:disabled,.usa-range[aria-disabled=true]{opacity:1}.usa-range:disabled::-webkit-slider-runnable-track,.usa-range[aria-disabled=true]::-webkit-slider-runnable-track{color:#454545;background-color:#c9c9c9;cursor:not-allowed;opacity:1}.usa-range:disabled::-webkit-slider-runnable-track.usa-focus,.usa-range:disabled::-webkit-slider-runnable-track:active,.usa-range:disabled::-webkit-slider-runnable-track:focus,.usa-range:disabled::-webkit-slider-runnable-track:hover,.usa-range[aria-disabled=true]::-webkit-slider-runnable-track.usa-focus,.usa-range[aria-disabled=true]::-webkit-slider-runnable-track:active,.usa-range[aria-disabled=true]::-webkit-slider-runnable-track:focus,.usa-range[aria-disabled=true]::-webkit-slider-runnable-track:hover{color:#454545;background-color:#c9c9c9}@media (forced-colors:active){.usa-range:disabled::-webkit-slider-runnable-track,.usa-range[aria-disabled=true]::-webkit-slider-runnable-track{color:GrayText;border:2px solid GrayText}.usa-range:disabled::-webkit-slider-runnable-track.usa-focus,.usa-range:disabled::-webkit-slider-runnable-track:active,.usa-range:disabled::-webkit-slider-runnable-track:focus,.usa-range:disabled::-webkit-slider-runnable-track:hover,.usa-range[aria-disabled=true]::-webkit-slider-runnable-track.usa-focus,.usa-range[aria-disabled=true]::-webkit-slider-runnable-track:active,.usa-range[aria-disabled=true]::-webkit-slider-runnable-track:focus,.usa-range[aria-disabled=true]::-webkit-slider-runnable-track:hover{color:GrayText}}.usa-range:disabled::-moz-range-track,.usa-range[aria-disabled=true]::-moz-range-track{color:#454545;background-color:#c9c9c9;cursor:not-allowed;opacity:1}.usa-range:disabled::-moz-range-track.usa-focus,.usa-range:disabled::-moz-range-track:active,.usa-range:disabled::-moz-range-track:focus,.usa-range:disabled::-moz-range-track:hover,.usa-range[aria-disabled=true]::-moz-range-track.usa-focus,.usa-range[aria-disabled=true]::-moz-range-track:active,.usa-range[aria-disabled=true]::-moz-range-track:focus,.usa-range[aria-disabled=true]::-moz-range-track:hover{color:#454545;background-color:#c9c9c9}@media (forced-colors:active){.usa-range:disabled::-moz-range-track,.usa-range[aria-disabled=true]::-moz-range-track{color:GrayText;border:2px solid GrayText}.usa-range:disabled::-moz-range-track.usa-focus,.usa-range:disabled::-moz-range-track:active,.usa-range:disabled::-moz-range-track:focus,.usa-range:disabled::-moz-range-track:hover,.usa-range[aria-disabled=true]::-moz-range-track.usa-focus,.usa-range[aria-disabled=true]::-moz-range-track:active,.usa-range[aria-disabled=true]::-moz-range-track:focus,.usa-range[aria-disabled=true]::-moz-range-track:hover{color:GrayText}}.usa-range:disabled::-ms-track,.usa-range[aria-disabled=true]::-ms-track{color:#454545;background-color:#c9c9c9;cursor:not-allowed;opacity:1}.usa-range:disabled::-ms-track.usa-focus,.usa-range:disabled::-ms-track:active,.usa-range:disabled::-ms-track:focus,.usa-range:disabled::-ms-track:hover,.usa-range[aria-disabled=true]::-ms-track.usa-focus,.usa-range[aria-disabled=true]::-ms-track:active,.usa-range[aria-disabled=true]::-ms-track:focus,.usa-range[aria-disabled=true]::-ms-track:hover{color:#454545;background-color:#c9c9c9}@media (forced-colors:active){.usa-range:disabled::-ms-track,.usa-range[aria-disabled=true]::-ms-track{border:0;color:GrayText}.usa-range:disabled::-ms-track.usa-focus,.usa-range:disabled::-ms-track:active,.usa-range:disabled::-ms-track:focus,.usa-range:disabled::-ms-track:hover,.usa-range[aria-disabled=true]::-ms-track.usa-focus,.usa-range[aria-disabled=true]::-ms-track:active,.usa-range[aria-disabled=true]::-ms-track:focus,.usa-range[aria-disabled=true]::-ms-track:hover{color:GrayText}}.usa-range:disabled::-webkit-slider-thumb,.usa-range[aria-disabled=true]::-webkit-slider-thumb{color:#454545;background-color:#c9c9c9;cursor:not-allowed;opacity:1}.usa-range:disabled::-webkit-slider-thumb.usa-focus,.usa-range:disabled::-webkit-slider-thumb:active,.usa-range:disabled::-webkit-slider-thumb:focus,.usa-range:disabled::-webkit-slider-thumb:hover,.usa-range[aria-disabled=true]::-webkit-slider-thumb.usa-focus,.usa-range[aria-disabled=true]::-webkit-slider-thumb:active,.usa-range[aria-disabled=true]::-webkit-slider-thumb:focus,.usa-range[aria-disabled=true]::-webkit-slider-thumb:hover{color:#454545;background-color:#c9c9c9}@media (forced-colors:active){.usa-range:disabled::-webkit-slider-thumb,.usa-range[aria-disabled=true]::-webkit-slider-thumb{border:0;color:GrayText}.usa-range:disabled::-webkit-slider-thumb.usa-focus,.usa-range:disabled::-webkit-slider-thumb:active,.usa-range:disabled::-webkit-slider-thumb:focus,.usa-range:disabled::-webkit-slider-thumb:hover,.usa-range[aria-disabled=true]::-webkit-slider-thumb.usa-focus,.usa-range[aria-disabled=true]::-webkit-slider-thumb:active,.usa-range[aria-disabled=true]::-webkit-slider-thumb:focus,.usa-range[aria-disabled=true]::-webkit-slider-thumb:hover{color:GrayText}}.usa-range:disabled::-moz-range-thumb,.usa-range[aria-disabled=true]::-moz-range-thumb{color:#454545;background-color:#c9c9c9;cursor:not-allowed;opacity:1}.usa-range:disabled::-moz-range-thumb.usa-focus,.usa-range:disabled::-moz-range-thumb:active,.usa-range:disabled::-moz-range-thumb:focus,.usa-range:disabled::-moz-range-thumb:hover,.usa-range[aria-disabled=true]::-moz-range-thumb.usa-focus,.usa-range[aria-disabled=true]::-moz-range-thumb:active,.usa-range[aria-disabled=true]::-moz-range-thumb:focus,.usa-range[aria-disabled=true]::-moz-range-thumb:hover{color:#454545;background-color:#c9c9c9}@media (forced-colors:active){.usa-range:disabled::-moz-range-thumb,.usa-range[aria-disabled=true]::-moz-range-thumb{border:0;color:GrayText}.usa-range:disabled::-moz-range-thumb.usa-focus,.usa-range:disabled::-moz-range-thumb:active,.usa-range:disabled::-moz-range-thumb:focus,.usa-range:disabled::-moz-range-thumb:hover,.usa-range[aria-disabled=true]::-moz-range-thumb.usa-focus,.usa-range[aria-disabled=true]::-moz-range-thumb:active,.usa-range[aria-disabled=true]::-moz-range-thumb:focus,.usa-range[aria-disabled=true]::-moz-range-thumb:hover{color:GrayText}}.usa-range:disabled::-ms-thumb,.usa-range[aria-disabled=true]::-ms-thumb{color:#454545;background-color:#c9c9c9;cursor:not-allowed;opacity:1}.usa-range:disabled::-ms-thumb.usa-focus,.usa-range:disabled::-ms-thumb:active,.usa-range:disabled::-ms-thumb:focus,.usa-range:disabled::-ms-thumb:hover,.usa-range[aria-disabled=true]::-ms-thumb.usa-focus,.usa-range[aria-disabled=true]::-ms-thumb:active,.usa-range[aria-disabled=true]::-ms-thumb:focus,.usa-range[aria-disabled=true]::-ms-thumb:hover{color:#454545;background-color:#c9c9c9}@media (forced-colors:active){.usa-range:disabled::-ms-thumb,.usa-range[aria-disabled=true]::-ms-thumb{border:0;color:GrayText}.usa-range:disabled::-ms-thumb.usa-focus,.usa-range:disabled::-ms-thumb:active,.usa-range:disabled::-ms-thumb:focus,.usa-range:disabled::-ms-thumb:hover,.usa-range[aria-disabled=true]::-ms-thumb.usa-focus,.usa-range[aria-disabled=true]::-ms-thumb:active,.usa-range[aria-disabled=true]::-ms-thumb:focus,.usa-range[aria-disabled=true]::-ms-thumb:hover{color:GrayText}}.usa-range:disabled::-ms-fill-lower,.usa-range[aria-disabled=true]::-ms-fill-lower{color:#454545;background-color:#c9c9c9;cursor:not-allowed;opacity:1}.usa-range:disabled::-ms-fill-lower.usa-focus,.usa-range:disabled::-ms-fill-lower:active,.usa-range:disabled::-ms-fill-lower:focus,.usa-range:disabled::-ms-fill-lower:hover,.usa-range[aria-disabled=true]::-ms-fill-lower.usa-focus,.usa-range[aria-disabled=true]::-ms-fill-lower:active,.usa-range[aria-disabled=true]::-ms-fill-lower:focus,.usa-range[aria-disabled=true]::-ms-fill-lower:hover{color:#454545;background-color:#c9c9c9}@media (forced-colors:active){.usa-range:disabled::-ms-fill-lower,.usa-range[aria-disabled=true]::-ms-fill-lower{border:0;color:GrayText}.usa-range:disabled::-ms-fill-lower.usa-focus,.usa-range:disabled::-ms-fill-lower:active,.usa-range:disabled::-ms-fill-lower:focus,.usa-range:disabled::-ms-fill-lower:hover,.usa-range[aria-disabled=true]::-ms-fill-lower.usa-focus,.usa-range[aria-disabled=true]::-ms-fill-lower:active,.usa-range[aria-disabled=true]::-ms-fill-lower:focus,.usa-range[aria-disabled=true]::-ms-fill-lower:hover{color:GrayText}}.usa-range:disabled::-ms-fill-upper,.usa-range[aria-disabled=true]::-ms-fill-upper{color:#454545;background-color:#c9c9c9;cursor:not-allowed;opacity:1}.usa-range:disabled::-ms-fill-upper.usa-focus,.usa-range:disabled::-ms-fill-upper:active,.usa-range:disabled::-ms-fill-upper:focus,.usa-range:disabled::-ms-fill-upper:hover,.usa-range[aria-disabled=true]::-ms-fill-upper.usa-focus,.usa-range[aria-disabled=true]::-ms-fill-upper:active,.usa-range[aria-disabled=true]::-ms-fill-upper:focus,.usa-range[aria-disabled=true]::-ms-fill-upper:hover{color:#454545;background-color:#c9c9c9}@media (forced-colors:active){.usa-range:disabled::-ms-fill-upper,.usa-range[aria-disabled=true]::-ms-fill-upper{border:0;color:GrayText}.usa-range:disabled::-ms-fill-upper.usa-focus,.usa-range:disabled::-ms-fill-upper:active,.usa-range:disabled::-ms-fill-upper:focus,.usa-range:disabled::-ms-fill-upper:hover,.usa-range[aria-disabled=true]::-ms-fill-upper.usa-focus,.usa-range[aria-disabled=true]::-ms-fill-upper:active,.usa-range[aria-disabled=true]::-ms-fill-upper:focus,.usa-range[aria-disabled=true]::-ms-fill-upper:hover{color:GrayText}}.usa-textarea:disabled,.usa-textarea[aria-disabled=true]{color:#454545;background-color:#c9c9c9;cursor:not-allowed;opacity:1}.usa-textarea:disabled.usa-focus,.usa-textarea:disabled:active,.usa-textarea:disabled:focus,.usa-textarea:disabled:hover,.usa-textarea[aria-disabled=true].usa-focus,.usa-textarea[aria-disabled=true]:active,.usa-textarea[aria-disabled=true]:focus,.usa-textarea[aria-disabled=true]:hover{color:#454545;background-color:#c9c9c9}@media (forced-colors:active){.usa-textarea:disabled,.usa-textarea[aria-disabled=true]{color:GrayText;border:2px solid GrayText}.usa-textarea:disabled.usa-focus,.usa-textarea:disabled:active,.usa-textarea:disabled:focus,.usa-textarea:disabled:hover,.usa-textarea[aria-disabled=true].usa-focus,.usa-textarea[aria-disabled=true]:active,.usa-textarea[aria-disabled=true]:focus,.usa-textarea[aria-disabled=true]:hover{color:GrayText}}.usa-textarea{height:10rem}.usa-time-picker{width:10em}[class*=font-mono-]{font-family:Roboto Mono Web,Bitstream Vera Sans Mono,Consolas,Courier,monospace}[class*=font-sans-]{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif}[class*=font-serif-]{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif}[class*=font-ui-]{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif}[class*=font-heading-]{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif}[class*=font-body-]{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif}[class*=font-code-]{font-family:Roboto Mono Web,Bitstream Vera Sans Mono,Consolas,Courier,monospace}[class*=font-alt-]{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif}.add-aspect-9x16{box-sizing:border-box;height:0;overflow:hidden;padding-bottom:177.77778%;position:relative}@supports (aspect-ratio:1){.add-aspect-9x16{height:inherit;padding:inherit;aspect-ratio:.5625;max-width:100%}.add-aspect-9x16>*{position:absolute;top:0;left:0;width:100%;height:100%}.add-aspect-9x16>img,img.add-aspect-9x16{-o-object-fit:cover;object-fit:cover}}.add-aspect-16x9{box-sizing:border-box;height:0;overflow:hidden;padding-bottom:56.25%;position:relative}@supports (aspect-ratio:1){.add-aspect-16x9{height:inherit;padding:inherit;aspect-ratio:1.7777777778;max-width:100%}.add-aspect-16x9>*{position:absolute;top:0;left:0;width:100%;height:100%}.add-aspect-16x9>img,img.add-aspect-16x9{-o-object-fit:cover;object-fit:cover}}.add-aspect-1x1{box-sizing:border-box;height:0;overflow:hidden;padding-bottom:100%;position:relative}@supports (aspect-ratio:1){.add-aspect-1x1{height:inherit;padding:inherit;aspect-ratio:1;max-width:100%}.add-aspect-1x1>*{position:absolute;top:0;left:0;width:100%;height:100%}.add-aspect-1x1>img,img.add-aspect-1x1{-o-object-fit:cover;object-fit:cover}}.add-aspect-4x3{box-sizing:border-box;height:0;overflow:hidden;padding-bottom:75%;position:relative}@supports (aspect-ratio:1){.add-aspect-4x3{height:inherit;padding:inherit;aspect-ratio:1.3333333333;max-width:100%}.add-aspect-4x3>*{position:absolute;top:0;left:0;width:100%;height:100%}.add-aspect-4x3>img,img.add-aspect-4x3{-o-object-fit:cover;object-fit:cover}}.add-aspect-2x1{box-sizing:border-box;height:0;overflow:hidden;padding-bottom:50%;position:relative}@supports (aspect-ratio:1){.add-aspect-2x1{height:inherit;padding:inherit;aspect-ratio:2;max-width:100%}.add-aspect-2x1>*{position:absolute;top:0;left:0;width:100%;height:100%}.add-aspect-2x1>img,img.add-aspect-2x1{-o-object-fit:cover;object-fit:cover}}@supports (aspect-ratio:1){:where(img[class*=add-aspect-]){width:-moz-min-content;width:min-content}}.add-list-reset{margin-bottom:0;margin-top:0;padding-left:0;list-style:none}.flex-align-start{align-items:flex-start}.flex-align-end{align-items:flex-end}.flex-align-center{align-items:center}.flex-align-stretch{align-items:stretch}.flex-align-baseline{align-items:baseline}.flex-align-self-start{align-self:flex-start}.flex-align-self-end{align-self:flex-end}.flex-align-self-center{align-self:center}.flex-align-self-stretch{align-self:stretch}.flex-align-self-baseline{align-self:baseline}.bg-transparent,.hover\:bg-transparent:hover{background-color:transparent}.bg-black,.hover\:bg-black:hover{background-color:#000}.bg-white,.hover\:bg-white:hover{background-color:#fff}.bg-red,.hover\:bg-red:hover{background-color:#e52207}.bg-orange,.hover\:bg-orange:hover{background-color:#e66f0e}.bg-gold,.hover\:bg-gold:hover{background-color:#ffbe2e}.bg-yellow,.hover\:bg-yellow:hover{background-color:#fee685}.bg-green,.hover\:bg-green:hover{background-color:#538200}.bg-mint,.hover\:bg-mint:hover{background-color:#04c585}.bg-cyan,.hover\:bg-cyan:hover{background-color:#009ec1}.bg-blue,.hover\:bg-blue:hover{background-color:#0076d6}.bg-indigo,.hover\:bg-indigo:hover{background-color:#676cc8}.bg-violet,.hover\:bg-violet:hover{background-color:#8168b3}.bg-magenta,.hover\:bg-magenta:hover{background-color:#d72d79}.bg-gray-5,.hover\:bg-gray-5:hover{background-color:#f0f0f0}.bg-gray-10,.hover\:bg-gray-10:hover{background-color:#e6e6e6}.bg-gray-30,.hover\:bg-gray-30:hover{background-color:#adadad}.bg-gray-50,.hover\:bg-gray-50:hover{background-color:#757575}.bg-gray-70,.hover\:bg-gray-70:hover{background-color:#454545}.bg-gray-90,.hover\:bg-gray-90:hover{background-color:#1b1b1b}.bg-base-lightest,.hover\:bg-base-lightest:hover{background-color:#f0f0f0}.bg-base-lighter,.hover\:bg-base-lighter:hover{background-color:#dfe1e2}.bg-base-light,.hover\:bg-base-light:hover{background-color:#a9aeb1}.bg-base,.hover\:bg-base:hover{background-color:#71767a}.bg-base-dark,.hover\:bg-base-dark:hover{background-color:#565c65}.bg-base-darker,.hover\:bg-base-darker:hover{background-color:#3d4551}.bg-base-darkest,.bg-ink,.hover\:bg-base-darkest:hover,.hover\:bg-ink:hover{background-color:#1b1b1b}.bg-primary-lighter,.hover\:bg-primary-lighter:hover{background-color:#d9e8f6}.bg-primary-light,.hover\:bg-primary-light:hover{background-color:#73b3e7}.bg-primary,.hover\:bg-primary:hover{background-color:#005ea2}.bg-primary-vivid,.hover\:bg-primary-vivid:hover{background-color:#0050d8}.bg-primary-dark,.hover\:bg-primary-dark:hover{background-color:#1a4480}.bg-primary-darker,.hover\:bg-primary-darker:hover{background-color:#162e51}.bg-secondary-lighter,.hover\:bg-secondary-lighter:hover{background-color:#f3e1e4}.bg-secondary-light,.hover\:bg-secondary-light:hover{background-color:#f2938c}.bg-secondary,.hover\:bg-secondary:hover{background-color:#d83933}.bg-secondary-vivid,.hover\:bg-secondary-vivid:hover{background-color:#e41d3d}.bg-secondary-dark,.hover\:bg-secondary-dark:hover{background-color:#b50909}.bg-secondary-darker,.hover\:bg-secondary-darker:hover{background-color:#8b0a03}.bg-accent-warm-darker,.hover\:bg-accent-warm-darker:hover{background-color:#775540}.bg-accent-warm-dark,.hover\:bg-accent-warm-dark:hover{background-color:#c05600}.bg-accent-warm,.hover\:bg-accent-warm:hover{background-color:#fa9441}.bg-accent-warm-light,.hover\:bg-accent-warm-light:hover{background-color:#ffbc78}.bg-accent-warm-lighter,.hover\:bg-accent-warm-lighter:hover{background-color:#f2e4d4}.bg-accent-cool-darker,.hover\:bg-accent-cool-darker:hover{background-color:#07648d}.bg-accent-cool-dark,.hover\:bg-accent-cool-dark:hover{background-color:#28a0cb}.bg-accent-cool,.hover\:bg-accent-cool:hover{background-color:#00bde3}.bg-accent-cool-light,.hover\:bg-accent-cool-light:hover{background-color:#97d4ea}.bg-accent-cool-lighter,.hover\:bg-accent-cool-lighter:hover{background-color:#e1f3f8}.bg-error-lighter,.hover\:bg-error-lighter:hover{background-color:#f4e3db}.bg-error-light,.hover\:bg-error-light:hover{background-color:#f39268}.bg-error,.hover\:bg-error:hover{background-color:#d54309}.bg-error-dark,.hover\:bg-error-dark:hover{background-color:#b50909}.bg-error-darker,.hover\:bg-error-darker:hover{background-color:#6f3331}.bg-warning-lighter,.hover\:bg-warning-lighter:hover{background-color:#faf3d1}.bg-warning-light,.hover\:bg-warning-light:hover{background-color:#fee685}.bg-warning,.hover\:bg-warning:hover{background-color:#ffbe2e}.bg-warning-dark,.hover\:bg-warning-dark:hover{background-color:#e5a000}.bg-warning-darker,.hover\:bg-warning-darker:hover{background-color:#936f38}.bg-success-lighter,.hover\:bg-success-lighter:hover{background-color:#ecf3ec}.bg-success-light,.hover\:bg-success-light:hover{background-color:#70e17b}.bg-success,.hover\:bg-success:hover{background-color:#00a91c}.bg-success-dark,.hover\:bg-success-dark:hover{background-color:#008817}.bg-success-darker,.hover\:bg-success-darker:hover{background-color:#216e1f}.bg-info-lighter,.hover\:bg-info-lighter:hover{background-color:#e7f6f8}.bg-info-light,.hover\:bg-info-light:hover{background-color:#99deea}.bg-info,.hover\:bg-info:hover{background-color:#00bde3}.bg-info-dark,.hover\:bg-info-dark:hover{background-color:#009ec1}.bg-info-darker,.hover\:bg-info-darker:hover{background-color:#2e6276}.bg-disabled-lighter,.hover\:bg-disabled-lighter:hover{background-color:#c9c9c9}.bg-disabled-light,.hover\:bg-disabled-light:hover{background-color:#919191}.bg-disabled,.hover\:bg-disabled:hover{background-color:#757575}.bg-disabled-dark,.hover\:bg-disabled-dark:hover{background-color:#454545}.bg-disabled-darker,.hover\:bg-disabled-darker:hover{background-color:#1b1b1b}.bg-emergency,.hover\:bg-emergency:hover{background-color:#9c3d10}.bg-emergency-dark,.hover\:bg-emergency-dark:hover{background-color:#332d29}.border-1px,.hover\:border-1px:hover{border:1px solid}.border-y-1px,.hover\:border-y-1px:hover{border-top:1px solid;border-bottom:1px solid}.border-x-1px,.hover\:border-x-1px:hover{border-left:1px solid;border-right:1px solid}.border-top-1px,.hover\:border-top-1px:hover{border-top:1px solid}.border-right-1px,.hover\:border-right-1px:hover{border-right:1px solid}.border-bottom-1px,.hover\:border-bottom-1px:hover{border-bottom:1px solid}.border-left-1px,.hover\:border-left-1px:hover{border-left:1px solid}.border-2px,.hover\:border-2px:hover{border:2px solid}.border-y-2px,.hover\:border-y-2px:hover{border-top:2px solid;border-bottom:2px solid}.border-x-2px,.hover\:border-x-2px:hover{border-left:2px solid;border-right:2px solid}.border-top-2px,.hover\:border-top-2px:hover{border-top:2px solid}.border-right-2px,.hover\:border-right-2px:hover{border-right:2px solid}.border-bottom-2px,.hover\:border-bottom-2px:hover{border-bottom:2px solid}.border-left-2px,.hover\:border-left-2px:hover{border-left:2px solid}.border-05,.hover\:border-05:hover{border:.25rem solid}.border-y-05,.hover\:border-y-05:hover{border-top:.25rem solid;border-bottom:.25rem solid}.border-x-05,.hover\:border-x-05:hover{border-left:.25rem solid;border-right:.25rem solid}.border-top-05,.hover\:border-top-05:hover{border-top:.25rem solid}.border-right-05,.hover\:border-right-05:hover{border-right:.25rem solid}.border-bottom-05,.hover\:border-bottom-05:hover{border-bottom:.25rem solid}.border-left-05,.hover\:border-left-05:hover{border-left:.25rem solid}.border-1,.hover\:border-1:hover{border:.5rem solid}.border-y-1,.hover\:border-y-1:hover{border-top:.5rem solid;border-bottom:.5rem solid}.border-x-1,.hover\:border-x-1:hover{border-left:.5rem solid;border-right:.5rem solid}.border-top-1,.hover\:border-top-1:hover{border-top:.5rem solid}.border-right-1,.hover\:border-right-1:hover{border-right:.5rem solid}.border-bottom-1,.hover\:border-bottom-1:hover{border-bottom:.5rem solid}.border-left-1,.hover\:border-left-1:hover{border-left:.5rem solid}.border-105,.hover\:border-105:hover{border:.75rem solid}.border-y-105,.hover\:border-y-105:hover{border-top:.75rem solid;border-bottom:.75rem solid}.border-x-105,.hover\:border-x-105:hover{border-left:.75rem solid;border-right:.75rem solid}.border-top-105,.hover\:border-top-105:hover{border-top:.75rem solid}.border-right-105,.hover\:border-right-105:hover{border-right:.75rem solid}.border-bottom-105,.hover\:border-bottom-105:hover{border-bottom:.75rem solid}.border-left-105,.hover\:border-left-105:hover{border-left:.75rem solid}.border-2,.hover\:border-2:hover{border:1rem solid}.border-y-2,.hover\:border-y-2:hover{border-top:1rem solid;border-bottom:1rem solid}.border-x-2,.hover\:border-x-2:hover{border-left:1rem solid;border-right:1rem solid}.border-top-2,.hover\:border-top-2:hover{border-top:1rem solid}.border-right-2,.hover\:border-right-2:hover{border-right:1rem solid}.border-bottom-2,.hover\:border-bottom-2:hover{border-bottom:1rem solid}.border-left-2,.hover\:border-left-2:hover{border-left:1rem solid}.border-205,.hover\:border-205:hover{border:1.25rem solid}.border-y-205,.hover\:border-y-205:hover{border-top:1.25rem solid;border-bottom:1.25rem solid}.border-x-205,.hover\:border-x-205:hover{border-left:1.25rem solid;border-right:1.25rem solid}.border-top-205,.hover\:border-top-205:hover{border-top:1.25rem solid}.border-right-205,.hover\:border-right-205:hover{border-right:1.25rem solid}.border-bottom-205,.hover\:border-bottom-205:hover{border-bottom:1.25rem solid}.border-left-205,.hover\:border-left-205:hover{border-left:1.25rem solid}.border-3,.hover\:border-3:hover{border:1.5rem solid}.border-y-3,.hover\:border-y-3:hover{border-top:1.5rem solid;border-bottom:1.5rem solid}.border-x-3,.hover\:border-x-3:hover{border-left:1.5rem solid;border-right:1.5rem solid}.border-top-3,.hover\:border-top-3:hover{border-top:1.5rem solid}.border-right-3,.hover\:border-right-3:hover{border-right:1.5rem solid}.border-bottom-3,.hover\:border-bottom-3:hover{border-bottom:1.5rem solid}.border-left-3,.hover\:border-left-3:hover{border-left:1.5rem solid}.border-0,.hover\:border-0:hover{border:0 solid}.border-y-0,.hover\:border-y-0:hover{border-top:0 solid;border-bottom:0 solid}.border-x-0,.hover\:border-x-0:hover{border-left:0 solid;border-right:0 solid}.border-top-0,.hover\:border-top-0:hover{border-top:0 solid}.border-right-0,.hover\:border-right-0:hover{border-right:0 solid}.border-bottom-0,.hover\:border-bottom-0:hover{border-bottom:0 solid}.border-left-0,.hover\:border-left-0:hover{border-left:0 solid}.border,.hover\:border:hover{border:1px solid}.border-y,.hover\:border-y:hover{border-top:1px solid;border-bottom:1px solid}.border-x,.hover\:border-x:hover{border-left:1px solid;border-right:1px solid}.border-top,.hover\:border-top:hover{border-top:1px solid}.border-right,.hover\:border-right:hover{border-right:1px solid}.border-bottom,.hover\:border-bottom:hover{border-bottom:1px solid}.border-left,.hover\:border-left:hover{border-left:1px solid}.border-transparent,.hover\:border-transparent:hover{border-color:transparent}.border-black,.hover\:border-black:hover{border-color:#000}.border-white,.hover\:border-white:hover{border-color:#fff}.border-red,.hover\:border-red:hover{border-color:#e52207}.border-orange,.hover\:border-orange:hover{border-color:#e66f0e}.border-gold,.hover\:border-gold:hover{border-color:#ffbe2e}.border-yellow,.hover\:border-yellow:hover{border-color:#fee685}.border-green,.hover\:border-green:hover{border-color:#538200}.border-mint,.hover\:border-mint:hover{border-color:#04c585}.border-cyan,.hover\:border-cyan:hover{border-color:#009ec1}.border-blue,.hover\:border-blue:hover{border-color:#0076d6}.border-indigo,.hover\:border-indigo:hover{border-color:#676cc8}.border-violet,.hover\:border-violet:hover{border-color:#8168b3}.border-magenta,.hover\:border-magenta:hover{border-color:#d72d79}.border-gray-5,.hover\:border-gray-5:hover{border-color:#f0f0f0}.border-gray-10,.hover\:border-gray-10:hover{border-color:#e6e6e6}.border-gray-30,.hover\:border-gray-30:hover{border-color:#adadad}.border-gray-50,.hover\:border-gray-50:hover{border-color:#757575}.border-gray-70,.hover\:border-gray-70:hover{border-color:#454545}.border-gray-90,.hover\:border-gray-90:hover{border-color:#1b1b1b}.border-base-lightest,.hover\:border-base-lightest:hover{border-color:#f0f0f0}.border-base-lighter,.hover\:border-base-lighter:hover{border-color:#dfe1e2}.border-base-light,.hover\:border-base-light:hover{border-color:#a9aeb1}.border-base,.hover\:border-base:hover{border-color:#71767a}.border-base-dark,.hover\:border-base-dark:hover{border-color:#565c65}.border-base-darker,.hover\:border-base-darker:hover{border-color:#3d4551}.border-base-darkest,.border-ink,.hover\:border-base-darkest:hover,.hover\:border-ink:hover{border-color:#1b1b1b}.border-primary-lighter,.hover\:border-primary-lighter:hover{border-color:#d9e8f6}.border-primary-light,.hover\:border-primary-light:hover{border-color:#73b3e7}.border-primary,.hover\:border-primary:hover{border-color:#005ea2}.border-primary-vivid,.hover\:border-primary-vivid:hover{border-color:#0050d8}.border-primary-dark,.hover\:border-primary-dark:hover{border-color:#1a4480}.border-primary-darker,.hover\:border-primary-darker:hover{border-color:#162e51}.border-secondary-lighter,.hover\:border-secondary-lighter:hover{border-color:#f3e1e4}.border-secondary-light,.hover\:border-secondary-light:hover{border-color:#f2938c}.border-secondary,.hover\:border-secondary:hover{border-color:#d83933}.border-secondary-vivid,.hover\:border-secondary-vivid:hover{border-color:#e41d3d}.border-secondary-dark,.hover\:border-secondary-dark:hover{border-color:#b50909}.border-secondary-darker,.hover\:border-secondary-darker:hover{border-color:#8b0a03}.border-accent-warm-darker,.hover\:border-accent-warm-darker:hover{border-color:#775540}.border-accent-warm-dark,.hover\:border-accent-warm-dark:hover{border-color:#c05600}.border-accent-warm,.hover\:border-accent-warm:hover{border-color:#fa9441}.border-accent-warm-light,.hover\:border-accent-warm-light:hover{border-color:#ffbc78}.border-accent-warm-lighter,.hover\:border-accent-warm-lighter:hover{border-color:#f2e4d4}.border-accent-cool-darker,.hover\:border-accent-cool-darker:hover{border-color:#07648d}.border-accent-cool-dark,.hover\:border-accent-cool-dark:hover{border-color:#28a0cb}.border-accent-cool,.hover\:border-accent-cool:hover{border-color:#00bde3}.border-accent-cool-light,.hover\:border-accent-cool-light:hover{border-color:#97d4ea}.border-accent-cool-lighter,.hover\:border-accent-cool-lighter:hover{border-color:#e1f3f8}.border-error-lighter,.hover\:border-error-lighter:hover{border-color:#f4e3db}.border-error-light,.hover\:border-error-light:hover{border-color:#f39268}.border-error,.hover\:border-error:hover{border-color:#d54309}.border-error-dark,.hover\:border-error-dark:hover{border-color:#b50909}.border-error-darker,.hover\:border-error-darker:hover{border-color:#6f3331}.border-warning-lighter,.hover\:border-warning-lighter:hover{border-color:#faf3d1}.border-warning-light,.hover\:border-warning-light:hover{border-color:#fee685}.border-warning,.hover\:border-warning:hover{border-color:#ffbe2e}.border-warning-dark,.hover\:border-warning-dark:hover{border-color:#e5a000}.border-warning-darker,.hover\:border-warning-darker:hover{border-color:#936f38}.border-success-lighter,.hover\:border-success-lighter:hover{border-color:#ecf3ec}.border-success-light,.hover\:border-success-light:hover{border-color:#70e17b}.border-success,.hover\:border-success:hover{border-color:#00a91c}.border-success-dark,.hover\:border-success-dark:hover{border-color:#008817}.border-success-darker,.hover\:border-success-darker:hover{border-color:#216e1f}.border-info-lighter,.hover\:border-info-lighter:hover{border-color:#e7f6f8}.border-info-light,.hover\:border-info-light:hover{border-color:#99deea}.border-info,.hover\:border-info:hover{border-color:#00bde3}.border-info-dark,.hover\:border-info-dark:hover{border-color:#009ec1}.border-info-darker,.hover\:border-info-darker:hover{border-color:#2e6276}.border-disabled-lighter,.hover\:border-disabled-lighter:hover{border-color:#c9c9c9}.border-disabled-light,.hover\:border-disabled-light:hover{border-color:#919191}.border-disabled,.hover\:border-disabled:hover{border-color:#757575}.border-disabled-dark,.hover\:border-disabled-dark:hover{border-color:#454545}.border-disabled-darker,.hover\:border-disabled-darker:hover{border-color:#1b1b1b}.border-emergency,.hover\:border-emergency:hover{border-color:#9c3d10}.border-emergency-dark,.hover\:border-emergency-dark:hover{border-color:#332d29}.radius-0{border-radius:0}.radius-top-0{border-top-left-radius:0;border-top-right-radius:0}.radius-right-0{border-top-right-radius:0;border-bottom-right-radius:0}.radius-bottom-0{border-bottom-left-radius:0;border-bottom-right-radius:0}.radius-left-0{border-top-left-radius:0;border-bottom-left-radius:0}.radius-sm{border-radius:2px}.radius-top-sm{border-top-left-radius:2px;border-top-right-radius:2px}.radius-right-sm{border-top-right-radius:2px;border-bottom-right-radius:2px}.radius-bottom-sm{border-bottom-left-radius:2px;border-bottom-right-radius:2px}.radius-left-sm{border-top-left-radius:2px;border-bottom-left-radius:2px}.radius-md{border-radius:.25rem}.radius-top-md{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.radius-right-md{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.radius-bottom-md{border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}.radius-left-md{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.radius-lg{border-radius:.5rem}.radius-top-lg{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.radius-right-lg{border-top-right-radius:.5rem;border-bottom-right-radius:.5rem}.radius-bottom-lg{border-bottom-left-radius:.5rem;border-bottom-right-radius:.5rem}.radius-left-lg{border-top-left-radius:.5rem;border-bottom-left-radius:.5rem}.radius-pill{border-radius:99rem}.radius-top-pill{border-top-left-radius:99rem;border-top-right-radius:99rem}.radius-right-pill{border-top-right-radius:99rem;border-bottom-right-radius:99rem}.radius-bottom-pill{border-bottom-left-radius:99rem;border-bottom-right-radius:99rem}.radius-left-pill{border-top-left-radius:99rem;border-bottom-left-radius:99rem}.border-dashed{border-style:dashed}.border-dotted{border-style:dotted}.border-solid{border-style:solid}.border-width-1px{border-width:1px}.border-y-width-1px{border-top-width:1px;border-bottom-width:1px}.border-x-width-1px{border-left-width:1px;border-right-width:1px}.border-top-width-1px{border-top-width:1px}.border-right-width-1px{border-right-width:1px}.border-bottom-width-1px{border-bottom-width:1px}.border-left-width-1px{border-left-width:1px}.border-width-2px{border-width:2px}.border-y-width-2px{border-top-width:2px;border-bottom-width:2px}.border-x-width-2px{border-left-width:2px;border-right-width:2px}.border-top-width-2px{border-top-width:2px}.border-right-width-2px{border-right-width:2px}.border-bottom-width-2px{border-bottom-width:2px}.border-left-width-2px{border-left-width:2px}.border-width-05{border-width:.25rem}.border-y-width-05{border-top-width:.25rem;border-bottom-width:.25rem}.border-x-width-05{border-left-width:.25rem;border-right-width:.25rem}.border-top-width-05{border-top-width:.25rem}.border-right-width-05{border-right-width:.25rem}.border-bottom-width-05{border-bottom-width:.25rem}.border-left-width-05{border-left-width:.25rem}.border-width-1{border-width:.5rem}.border-y-width-1{border-top-width:.5rem;border-bottom-width:.5rem}.border-x-width-1{border-left-width:.5rem;border-right-width:.5rem}.border-top-width-1{border-top-width:.5rem}.border-right-width-1{border-right-width:.5rem}.border-bottom-width-1{border-bottom-width:.5rem}.border-left-width-1{border-left-width:.5rem}.border-width-105{border-width:.75rem}.border-y-width-105{border-top-width:.75rem;border-bottom-width:.75rem}.border-x-width-105{border-left-width:.75rem;border-right-width:.75rem}.border-top-width-105{border-top-width:.75rem}.border-right-width-105{border-right-width:.75rem}.border-bottom-width-105{border-bottom-width:.75rem}.border-left-width-105{border-left-width:.75rem}.border-width-2{border-width:1rem}.border-y-width-2{border-top-width:1rem;border-bottom-width:1rem}.border-x-width-2{border-left-width:1rem;border-right-width:1rem}.border-top-width-2{border-top-width:1rem}.border-right-width-2{border-right-width:1rem}.border-bottom-width-2{border-bottom-width:1rem}.border-left-width-2{border-left-width:1rem}.border-width-205{border-width:1.25rem}.border-y-width-205{border-top-width:1.25rem;border-bottom-width:1.25rem}.border-x-width-205{border-left-width:1.25rem;border-right-width:1.25rem}.border-top-width-205{border-top-width:1.25rem}.border-right-width-205{border-right-width:1.25rem}.border-bottom-width-205{border-bottom-width:1.25rem}.border-left-width-205{border-left-width:1.25rem}.border-width-3{border-width:1.5rem}.border-y-width-3{border-top-width:1.5rem;border-bottom-width:1.5rem}.border-x-width-3{border-left-width:1.5rem;border-right-width:1.5rem}.border-top-width-3{border-top-width:1.5rem}.border-right-width-3{border-right-width:1.5rem}.border-bottom-width-3{border-bottom-width:1.5rem}.border-left-width-3{border-left-width:1.5rem}.border-width-0{border-width:0}.border-y-width-0{border-top-width:0;border-bottom-width:0}.border-x-width-0{border-left-width:0;border-right-width:0}.border-top-width-0{border-top-width:0}.border-right-width-0{border-right-width:0}.border-bottom-width-0{border-bottom-width:0}.border-left-width-0{border-left-width:0}.bottom-1px{bottom:1px}.bottom-2px{bottom:2px}.bottom-05{bottom:.25rem}.bottom-1{bottom:.5rem}.bottom-105{bottom:.75rem}.bottom-2{bottom:1rem}.bottom-205{bottom:1.25rem}.bottom-3{bottom:1.5rem}.bottom-neg-1px{bottom:-1px}.bottom-neg-2px{bottom:-2px}.bottom-neg-05{bottom:-.25rem}.bottom-neg-1{bottom:-.5rem}.bottom-neg-105{bottom:-.75rem}.bottom-neg-2{bottom:-1rem}.bottom-neg-205{bottom:-1.25rem}.bottom-neg-3{bottom:-1.5rem}.bottom-0{bottom:0}.bottom-auto{bottom:auto}.bottom-full{bottom:100%}.hover\:shadow-none:hover,.shadow-none{box-shadow:none}.hover\:shadow-1:hover,.shadow-1{box-shadow:0 1px .25rem 0 rgba(0,0,0,.1)}.hover\:shadow-2:hover,.shadow-2{box-shadow:0 .25rem .5rem 0 rgba(0,0,0,.1)}.hover\:shadow-3:hover,.shadow-3{box-shadow:0 .5rem 1rem 0 rgba(0,0,0,.1)}.hover\:shadow-4:hover,.shadow-4{box-shadow:0 .75rem 1.5rem 0 rgba(0,0,0,.1)}.hover\:shadow-5:hover,.shadow-5{box-shadow:0 1rem 2rem 0 rgba(0,0,0,.1)}.circle-1px,.circle-2px{height:1px;width:1px;border-radius:50%}.circle-2px{height:2px;width:2px}.circle-05{height:.25rem;width:.25rem;border-radius:50%}.circle-1,.circle-105{height:.5rem;width:.5rem;border-radius:50%}.circle-105{height:.75rem;width:.75rem}.circle-2,.circle-205{height:1rem;width:1rem;border-radius:50%}.circle-205{height:1.25rem;width:1.25rem}.circle-3,.circle-4{height:1.5rem;width:1.5rem;border-radius:50%}.circle-4{height:2rem;width:2rem}.circle-5,.circle-6{height:2.5rem;width:2.5rem;border-radius:50%}.circle-6{height:3rem;width:3rem}.circle-7,.circle-8{height:3.5rem;width:3.5rem;border-radius:50%}.circle-8{height:4rem;width:4rem}.circle-10,.circle-9{height:4.5rem;width:4.5rem;border-radius:50%}.circle-10{height:5rem;width:5rem}.circle-15,.circle-card{height:7.5rem;width:7.5rem;border-radius:50%}.circle-card{height:10rem;width:10rem}.circle-card-lg,.circle-mobile{height:15rem;width:15rem;border-radius:50%}.circle-mobile{height:20rem;width:20rem}.clearfix::after{content:"";display:block;clear:both}.hover\:text-transparent:hover,.text-transparent{color:transparent}.hover\:text-black:hover,.text-black{color:#000}.hover\:text-white:hover,.text-white{color:#fff}.hover\:text-red:hover,.text-red{color:#e52207}.hover\:text-orange:hover,.text-orange{color:#e66f0e}.hover\:text-gold:hover,.text-gold{color:#ffbe2e}.hover\:text-yellow:hover,.text-yellow{color:#fee685}.hover\:text-green:hover,.text-green{color:#538200}.hover\:text-mint:hover,.text-mint{color:#04c585}.hover\:text-cyan:hover,.text-cyan{color:#009ec1}.hover\:text-blue:hover,.text-blue{color:#0076d6}.hover\:text-indigo:hover,.text-indigo{color:#676cc8}.hover\:text-violet:hover,.text-violet{color:#8168b3}.hover\:text-magenta:hover,.text-magenta{color:#d72d79}.hover\:text-gray-5:hover,.text-gray-5{color:#f0f0f0}.hover\:text-gray-10:hover,.text-gray-10{color:#e6e6e6}.hover\:text-gray-30:hover,.text-gray-30{color:#adadad}.hover\:text-gray-50:hover,.text-gray-50{color:#757575}.hover\:text-gray-70:hover,.text-gray-70{color:#454545}.hover\:text-gray-90:hover,.text-gray-90{color:#1b1b1b}.hover\:text-base-lightest:hover,.text-base-lightest{color:#f0f0f0}.hover\:text-base-lighter:hover,.text-base-lighter{color:#dfe1e2}.hover\:text-base-light:hover,.text-base-light{color:#a9aeb1}.hover\:text-base:hover,.text-base{color:#71767a}.hover\:text-base-dark:hover,.text-base-dark{color:#565c65}.hover\:text-base-darker:hover,.text-base-darker{color:#3d4551}.hover\:text-base-darkest:hover,.hover\:text-ink:hover,.text-base-darkest,.text-ink{color:#1b1b1b}.hover\:text-primary-lighter:hover,.text-primary-lighter{color:#d9e8f6}.hover\:text-primary-light:hover,.text-primary-light{color:#73b3e7}.hover\:text-primary:hover,.text-primary{color:#005ea2}.hover\:text-primary-vivid:hover,.text-primary-vivid{color:#0050d8}.hover\:text-primary-dark:hover,.text-primary-dark{color:#1a4480}.hover\:text-primary-darker:hover,.text-primary-darker{color:#162e51}.hover\:text-secondary-lighter:hover,.text-secondary-lighter{color:#f3e1e4}.hover\:text-secondary-light:hover,.text-secondary-light{color:#f2938c}.hover\:text-secondary:hover,.text-secondary{color:#d83933}.hover\:text-secondary-vivid:hover,.text-secondary-vivid{color:#e41d3d}.hover\:text-secondary-dark:hover,.text-secondary-dark{color:#b50909}.hover\:text-secondary-darker:hover,.text-secondary-darker{color:#8b0a03}.hover\:text-accent-warm-darker:hover,.text-accent-warm-darker{color:#775540}.hover\:text-accent-warm-dark:hover,.text-accent-warm-dark{color:#c05600}.hover\:text-accent-warm:hover,.text-accent-warm{color:#fa9441}.hover\:text-accent-warm-light:hover,.text-accent-warm-light{color:#ffbc78}.hover\:text-accent-warm-lighter:hover,.text-accent-warm-lighter{color:#f2e4d4}.hover\:text-accent-cool-darker:hover,.text-accent-cool-darker{color:#07648d}.hover\:text-accent-cool-dark:hover,.text-accent-cool-dark{color:#28a0cb}.hover\:text-accent-cool:hover,.text-accent-cool{color:#00bde3}.hover\:text-accent-cool-light:hover,.text-accent-cool-light{color:#97d4ea}.hover\:text-accent-cool-lighter:hover,.text-accent-cool-lighter{color:#e1f3f8}.hover\:text-error-lighter:hover,.text-error-lighter{color:#f4e3db}.hover\:text-error-light:hover,.text-error-light{color:#f39268}.hover\:text-error:hover,.text-error{color:#d54309}.hover\:text-error-dark:hover,.text-error-dark{color:#b50909}.hover\:text-error-darker:hover,.text-error-darker{color:#6f3331}.hover\:text-warning-lighter:hover,.text-warning-lighter{color:#faf3d1}.hover\:text-warning-light:hover,.text-warning-light{color:#fee685}.hover\:text-warning:hover,.text-warning{color:#ffbe2e}.hover\:text-warning-dark:hover,.text-warning-dark{color:#e5a000}.hover\:text-warning-darker:hover,.text-warning-darker{color:#936f38}.hover\:text-success-lighter:hover,.text-success-lighter{color:#ecf3ec}.hover\:text-success-light:hover,.text-success-light{color:#70e17b}.hover\:text-success:hover,.text-success{color:#00a91c}.hover\:text-success-dark:hover,.text-success-dark{color:#008817}.hover\:text-success-darker:hover,.text-success-darker{color:#216e1f}.hover\:text-info-lighter:hover,.text-info-lighter{color:#e7f6f8}.hover\:text-info-light:hover,.text-info-light{color:#99deea}.hover\:text-info:hover,.text-info{color:#00bde3}.hover\:text-info-dark:hover,.text-info-dark{color:#009ec1}.hover\:text-info-darker:hover,.text-info-darker{color:#2e6276}.hover\:text-disabled-lighter:hover,.text-disabled-lighter{color:#c9c9c9}.hover\:text-disabled-light:hover,.text-disabled-light{color:#919191}.hover\:text-disabled:hover,.text-disabled{color:#757575}.hover\:text-disabled-dark:hover,.text-disabled-dark{color:#454545}.hover\:text-disabled-darker:hover,.text-disabled-darker{color:#1b1b1b}.hover\:text-emergency:hover,.text-emergency{color:#9c3d10}.hover\:text-emergency-dark:hover,.text-emergency-dark{color:#332d29}.cursor-auto{cursor:auto}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.cursor-wait{cursor:wait}.cursor-move{cursor:move}.cursor-not-allowed{cursor:not-allowed}.display-block{display:block}.display-flex{display:flex}.display-none{display:none}.display-inline{display:inline}.display-inline-block{display:inline-block}.display-inline-flex{display:inline-flex}.display-table{display:table}.display-table-cell{display:table-cell}.display-table-row{display:table-row}.flex-1{flex:1 1 0%}.flex-2{flex:2 1 0%}.flex-3{flex:3 1 0%}.flex-4{flex:4 1 0%}.flex-5{flex:5 1 0%}.flex-6{flex:6 1 0%}.flex-7{flex:7 1 0%}.flex-8{flex:8 1 0%}.flex-9{flex:9 1 0%}.flex-10{flex:10 1 0%}.flex-11{flex:11 1 0%}.flex-12{flex:12 1 0%}.flex-fill{flex:1 1 0%}.flex-auto{flex:0 1 auto}.flex-row{flex-direction:row}.flex-column{flex-direction:column}.flex-wrap{flex-wrap:wrap}.flex-no-wrap{flex-wrap:nowrap}.float-left{float:left}.float-none{float:none}.float-right{float:right}.font-mono-3xs{font-size:.77rem}.font-mono-2xs{font-size:.83rem}.font-mono-xs{font-size:.89rem}.font-mono-sm{font-size:.95rem}.font-mono-md{font-size:1.01rem}.font-mono-lg{font-size:1.31rem}.font-mono-xl{font-size:1.91rem}.font-mono-2xl{font-size:2.38rem}.font-mono-3xl{font-size:2.86rem}.font-sans-3xs{font-size:.87rem}.font-sans-2xs{font-size:.93rem}.font-sans-xs{font-size:1rem}.font-sans-sm{font-size:1.06rem}.font-sans-md{font-size:1.13rem}.font-sans-lg{font-size:1.46rem}.font-sans-xl{font-size:2.13rem}.font-sans-2xl{font-size:2.66rem}.font-sans-3xl{font-size:3.19rem}.font-serif-3xs{font-size:.79rem}.font-serif-2xs{font-size:.85rem}.font-serif-xs{font-size:.91rem}.font-serif-sm{font-size:.98rem}.font-serif-md{font-size:1.04rem}.font-serif-lg{font-size:1.34rem}.font-serif-xl{font-size:1.95rem}.font-serif-2xl{font-size:2.44rem}.font-serif-3xl{font-size:2.93rem}.font-heading-3xs{font-size:.79rem}.font-heading-2xs{font-size:.85rem}.font-heading-xs{font-size:.91rem}.font-heading-sm{font-size:.98rem}.font-heading-md{font-size:1.04rem}.font-heading-lg{font-size:1.34rem}.font-heading-xl{font-size:1.95rem}.font-heading-2xl{font-size:2.44rem}.font-heading-3xl{font-size:2.93rem}.font-body-3xs{font-size:.87rem}.font-body-2xs{font-size:.93rem}.font-body-xs{font-size:1rem}.font-body-sm{font-size:1.06rem}.font-body-md{font-size:1.13rem}.font-body-lg{font-size:1.46rem}.font-body-xl{font-size:2.13rem}.font-body-2xl{font-size:2.66rem}.font-body-3xl{font-size:3.19rem}.font-code-3xs{font-size:.77rem}.font-code-2xs{font-size:.83rem}.font-code-xs{font-size:.89rem}.font-code-sm{font-size:.95rem}.font-code-md{font-size:1.01rem}.font-code-lg{font-size:1.31rem}.font-code-xl{font-size:1.91rem}.font-code-2xl{font-size:2.38rem}.font-code-3xl{font-size:2.86rem}.font-alt-3xs{font-size:.79rem}.font-alt-2xs{font-size:.85rem}.font-alt-xs{font-size:.91rem}.font-alt-sm{font-size:.98rem}.font-alt-md{font-size:1.04rem}.font-alt-lg{font-size:1.34rem}.font-alt-xl{font-size:1.95rem}.font-alt-2xl{font-size:2.44rem}.font-alt-3xl{font-size:2.93rem}.font-ui-3xs{font-size:.87rem}.font-ui-2xs{font-size:.93rem}.font-ui-xs{font-size:1rem}.font-ui-sm{font-size:1.06rem}.font-ui-md{font-size:1.13rem}.font-ui-lg{font-size:1.46rem}.font-ui-xl{font-size:2.13rem}.font-ui-2xl{font-size:2.66rem}.font-ui-3xl{font-size:3.19rem}.font-family-mono{font-family:Roboto Mono Web,Bitstream Vera Sans Mono,Consolas,Courier,monospace}.font-family-sans{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif}.font-family-serif{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif}.font-family-ui{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif}.font-family-heading{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif}.font-family-body{font-family:Source Sans Pro Web,Helvetica Neue,Helvetica,Roboto,Arial,sans-serif}.font-family-code{font-family:Roboto Mono Web,Bitstream Vera Sans Mono,Consolas,Courier,monospace}.font-family-alt{font-family:Merriweather Web,Georgia,Cambria,Times New Roman,Times,serif}.text-tabular{font-feature-settings:"tnum"1,"kern"1}.text-no-tabular{font-feature-settings:"kern"1}.text-italic{font-style:italic}.text-no-italic{font-style:normal}.text-light{font-weight:300}.text-normal{font-weight:400}.text-bold{font-weight:700}.height-1px{height:1px}.height-2px{height:2px}.height-05{height:.25rem}.height-1{height:.5rem}.height-105{height:.75rem}.height-2{height:1rem}.height-205{height:1.25rem}.height-3{height:1.5rem}.height-4{height:2rem}.height-5{height:2.5rem}.height-6{height:3rem}.height-7{height:3.5rem}.height-8{height:4rem}.height-9{height:4.5rem}.height-10{height:5rem}.height-15{height:7.5rem}.height-card{height:10rem}.height-card-lg{height:15rem}.height-mobile{height:20rem}.height-0{height:0}.height-auto{height:auto}.height-full{height:100%}.height-viewport{height:100vh}.flex-justify-center{justify-content:center}.flex-justify-start{justify-content:flex-start}.flex-justify-end{justify-content:flex-end}.flex-justify{justify-content:space-between}.left-1px{left:1px}.left-2px{left:2px}.left-05{left:.25rem}.left-1{left:.5rem}.left-105{left:.75rem}.left-2{left:1rem}.left-205{left:1.25rem}.left-3{left:1.5rem}.left-neg-1px{left:-1px}.left-neg-2px{left:-2px}.left-neg-05{left:-.25rem}.left-neg-1{left:-.5rem}.left-neg-105{left:-.75rem}.left-neg-2{left:-1rem}.left-neg-205{left:-1.25rem}.left-neg-3{left:-1.5rem}.left-0{left:0}.left-auto{left:auto}.left-full{left:100%}.text-ls-auto{letter-spacing:initial}.text-ls-neg-3{letter-spacing:-.03em}.text-ls-neg-2{letter-spacing:-.02em}.text-ls-neg-1{letter-spacing:-.01em}.text-ls-1{letter-spacing:.025em}.text-ls-2{letter-spacing:.1em}.text-ls-3{letter-spacing:.15em}.line-height-sans-1{line-height:.9}.line-height-sans-2{line-height:1.1}.line-height-sans-3{line-height:1.3}.line-height-sans-4{line-height:1.4}.line-height-sans-5{line-height:1.5}.line-height-sans-6{line-height:1.6}.line-height-serif-1{line-height:1}.line-height-serif-2{line-height:1.2}.line-height-serif-3{line-height:1.4}.line-height-serif-4{line-height:1.5}.line-height-serif-5{line-height:1.7}.line-height-serif-6{line-height:1.8}.line-height-mono-1{line-height:1}.line-height-mono-2{line-height:1.3}.line-height-mono-3{line-height:1.4}.line-height-mono-4{line-height:1.6}.line-height-mono-5{line-height:1.7}.line-height-mono-6{line-height:1.8}.line-height-heading-1{line-height:1}.line-height-heading-2{line-height:1.2}.line-height-heading-3{line-height:1.4}.line-height-heading-4{line-height:1.5}.line-height-heading-5{line-height:1.7}.line-height-heading-6{line-height:1.8}.line-height-ui-1{line-height:.9}.line-height-ui-2{line-height:1.1}.line-height-ui-3{line-height:1.3}.line-height-ui-4{line-height:1.4}.line-height-ui-5{line-height:1.5}.line-height-ui-6{line-height:1.6}.line-height-body-1{line-height:.9}.line-height-body-2{line-height:1.1}.line-height-body-3{line-height:1.3}.line-height-body-4{line-height:1.4}.line-height-body-5{line-height:1.5}.line-height-body-6{line-height:1.6}.line-height-code-1{line-height:1}.line-height-code-2{line-height:1.3}.line-height-code-3{line-height:1.4}.line-height-code-4{line-height:1.6}.line-height-code-5{line-height:1.7}.line-height-code-6{line-height:1.8}.line-height-alt-1{line-height:1}.line-height-alt-2{line-height:1.2}.line-height-alt-3{line-height:1.4}.line-height-alt-4{line-height:1.5}.line-height-alt-5{line-height:1.7}.line-height-alt-6{line-height:1.8}.margin-neg-1px{margin:-1px}.margin-neg-2px{margin:-2px}.margin-neg-05{margin:-.25rem}.margin-neg-1{margin:-.5rem}.margin-neg-105{margin:-.75rem}.margin-neg-2{margin:-1rem}.margin-neg-205{margin:-1.25rem}.margin-neg-3{margin:-1.5rem}.margin-1px{margin:1px}.margin-2px{margin:2px}.margin-05{margin:.25rem}.margin-1{margin:.5rem}.margin-105{margin:.75rem}.margin-2{margin:1rem}.margin-205{margin:1.25rem}.margin-3{margin:1.5rem}.margin-neg-4{margin:-2rem}.margin-neg-5{margin:-2.5rem}.margin-neg-6{margin:-3rem}.margin-neg-7{margin:-3.5rem}.margin-neg-8{margin:-4rem}.margin-neg-9{margin:-4.5rem}.margin-neg-10{margin:-5rem}.margin-neg-15{margin:-7.5rem}.margin-4{margin:2rem}.margin-5{margin:2.5rem}.margin-6{margin:3rem}.margin-7{margin:3.5rem}.margin-8{margin:4rem}.margin-9{margin:4.5rem}.margin-10{margin:5rem}.margin-15{margin:7.5rem}.margin-05em{margin:.5em}.margin-1em{margin:1em}.margin-105em{margin:1.5em}.margin-2em{margin:2em}.margin-0{margin:0}.margin-y-1px{margin-bottom:1px}.margin-top-1px,.margin-y-1px{margin-top:1px}.margin-bottom-1px{margin-bottom:1px}.margin-y-2px{margin-bottom:2px}.margin-top-2px,.margin-y-2px{margin-top:2px}.margin-bottom-2px{margin-bottom:2px}.margin-y-05{margin-bottom:.25rem}.margin-top-05,.margin-y-05{margin-top:.25rem}.margin-bottom-05{margin-bottom:.25rem}.margin-y-1{margin-bottom:.5rem}.margin-top-1,.margin-y-1{margin-top:.5rem}.margin-bottom-1{margin-bottom:.5rem}.margin-y-105{margin-bottom:.75rem}.margin-top-105,.margin-y-105{margin-top:.75rem}.margin-bottom-105{margin-bottom:.75rem}.margin-y-2{margin-bottom:1rem}.margin-top-2,.margin-y-2{margin-top:1rem}.margin-bottom-2{margin-bottom:1rem}.margin-y-205{margin-bottom:1.25rem}.margin-top-205,.margin-y-205{margin-top:1.25rem}.margin-bottom-205{margin-bottom:1.25rem}.margin-y-3{margin-bottom:1.5rem}.margin-top-3,.margin-y-3{margin-top:1.5rem}.margin-bottom-3{margin-bottom:1.5rem}.margin-y-neg-1px{margin-top:-1px;margin-bottom:-1px}.margin-top-neg-1px{margin-top:-1px}.margin-bottom-neg-1px{margin-bottom:-1px}.margin-y-neg-2px{margin-top:-2px;margin-bottom:-2px}.margin-top-neg-2px{margin-top:-2px}.margin-bottom-neg-2px{margin-bottom:-2px}.margin-y-neg-05{margin-bottom:-.25rem}.margin-top-neg-05,.margin-y-neg-05{margin-top:-.25rem}.margin-bottom-neg-05{margin-bottom:-.25rem}.margin-y-neg-1{margin-bottom:-.5rem}.margin-top-neg-1,.margin-y-neg-1{margin-top:-.5rem}.margin-bottom-neg-1{margin-bottom:-.5rem}.margin-y-neg-105{margin-bottom:-.75rem}.margin-top-neg-105,.margin-y-neg-105{margin-top:-.75rem}.margin-bottom-neg-105{margin-bottom:-.75rem}.margin-y-neg-2{margin-bottom:-1rem}.margin-top-neg-2,.margin-y-neg-2{margin-top:-1rem}.margin-bottom-neg-2{margin-bottom:-1rem}.margin-y-neg-205{margin-bottom:-1.25rem}.margin-top-neg-205,.margin-y-neg-205{margin-top:-1.25rem}.margin-bottom-neg-205{margin-bottom:-1.25rem}.margin-y-neg-3{margin-bottom:-1.5rem}.margin-top-neg-3,.margin-y-neg-3{margin-top:-1.5rem}.margin-bottom-neg-3{margin-bottom:-1.5rem}.margin-y-neg-4{margin-bottom:-2rem}.margin-top-neg-4,.margin-y-neg-4{margin-top:-2rem}.margin-bottom-neg-4{margin-bottom:-2rem}.margin-y-neg-5{margin-bottom:-2.5rem}.margin-top-neg-5,.margin-y-neg-5{margin-top:-2.5rem}.margin-bottom-neg-5{margin-bottom:-2.5rem}.margin-y-neg-6{margin-bottom:-3rem}.margin-top-neg-6,.margin-y-neg-6{margin-top:-3rem}.margin-bottom-neg-6{margin-bottom:-3rem}.margin-y-neg-7{margin-bottom:-3.5rem}.margin-top-neg-7,.margin-y-neg-7{margin-top:-3.5rem}.margin-bottom-neg-7{margin-bottom:-3.5rem}.margin-y-neg-8{margin-bottom:-4rem}.margin-top-neg-8,.margin-y-neg-8{margin-top:-4rem}.margin-bottom-neg-8{margin-bottom:-4rem}.margin-y-neg-9{margin-bottom:-4.5rem}.margin-top-neg-9,.margin-y-neg-9{margin-top:-4.5rem}.margin-bottom-neg-9{margin-bottom:-4.5rem}.margin-y-neg-10{margin-top:-5rem;margin-bottom:-5rem}.margin-top-neg-10{margin-top:-5rem}.margin-bottom-neg-10{margin-bottom:-5rem}.margin-y-neg-15{margin-bottom:-7.5rem}.margin-top-neg-15,.margin-y-neg-15{margin-top:-7.5rem}.margin-bottom-neg-15{margin-bottom:-7.5rem}.margin-y-4{margin-bottom:2rem}.margin-top-4,.margin-y-4{margin-top:2rem}.margin-bottom-4{margin-bottom:2rem}.margin-y-5{margin-bottom:2.5rem}.margin-top-5,.margin-y-5{margin-top:2.5rem}.margin-bottom-5{margin-bottom:2.5rem}.margin-y-6{margin-bottom:3rem}.margin-top-6,.margin-y-6{margin-top:3rem}.margin-bottom-6{margin-bottom:3rem}.margin-y-7{margin-bottom:3.5rem}.margin-top-7,.margin-y-7{margin-top:3.5rem}.margin-bottom-7{margin-bottom:3.5rem}.margin-y-8{margin-bottom:4rem}.margin-top-8,.margin-y-8{margin-top:4rem}.margin-bottom-8{margin-bottom:4rem}.margin-y-9{margin-bottom:4.5rem}.margin-top-9,.margin-y-9{margin-top:4.5rem}.margin-bottom-9{margin-bottom:4.5rem}.margin-y-10{margin-bottom:5rem}.margin-top-10,.margin-y-10{margin-top:5rem}.margin-bottom-10{margin-bottom:5rem}.margin-y-15{margin-bottom:7.5rem}.margin-top-15,.margin-y-15{margin-top:7.5rem}.margin-bottom-15{margin-bottom:7.5rem}.margin-y-05em{margin-bottom:.5em}.margin-top-05em,.margin-y-05em{margin-top:.5em}.margin-bottom-05em{margin-bottom:.5em}.margin-y-1em{margin-bottom:1em}.margin-top-1em,.margin-y-1em{margin-top:1em}.margin-bottom-1em{margin-bottom:1em}.margin-y-105em{margin-bottom:1.5em}.margin-top-105em,.margin-y-105em{margin-top:1.5em}.margin-bottom-105em{margin-bottom:1.5em}.margin-y-2em{margin-bottom:2em}.margin-top-2em,.margin-y-2em{margin-top:2em}.margin-bottom-2em{margin-bottom:2em}.margin-y-0{margin-bottom:0}.margin-top-0,.margin-y-0{margin-top:0}.margin-bottom-0{margin-bottom:0}.margin-y-auto{margin-bottom:auto}.margin-top-auto,.margin-y-auto{margin-top:auto}.margin-bottom-auto{margin-bottom:auto}.margin-x-1px{margin-left:1px}.margin-right-1px,.margin-x-1px{margin-right:1px}.margin-left-1px{margin-left:1px}.margin-x-2px{margin-left:2px}.margin-right-2px,.margin-x-2px{margin-right:2px}.margin-left-2px{margin-left:2px}.margin-x-05{margin-left:.25rem}.margin-right-05,.margin-x-05{margin-right:.25rem}.margin-left-05{margin-left:.25rem}.margin-x-1{margin-left:.5rem}.margin-right-1,.margin-x-1{margin-right:.5rem}.margin-left-1{margin-left:.5rem}.margin-x-105{margin-left:.75rem}.margin-right-105,.margin-x-105{margin-right:.75rem}.margin-left-105{margin-left:.75rem}.margin-x-2{margin-left:1rem}.margin-right-2,.margin-x-2{margin-right:1rem}.margin-left-2{margin-left:1rem}.margin-x-205{margin-left:1.25rem}.margin-right-205,.margin-x-205{margin-right:1.25rem}.margin-left-205{margin-left:1.25rem}.margin-x-3{margin-left:1.5rem}.margin-right-3,.margin-x-3{margin-right:1.5rem}.margin-left-3{margin-left:1.5rem}.margin-x-neg-1px{margin-left:-1px;margin-right:-1px}.margin-right-neg-1px{margin-right:-1px}.margin-left-neg-1px{margin-left:-1px}.margin-x-neg-2px{margin-left:-2px;margin-right:-2px}.margin-right-neg-2px{margin-right:-2px}.margin-left-neg-2px{margin-left:-2px}.margin-x-neg-05{margin-left:-.25rem}.margin-right-neg-05,.margin-x-neg-05{margin-right:-.25rem}.margin-left-neg-05{margin-left:-.25rem}.margin-x-neg-1{margin-left:-.5rem}.margin-right-neg-1,.margin-x-neg-1{margin-right:-.5rem}.margin-left-neg-1{margin-left:-.5rem}.margin-x-neg-105{margin-left:-.75rem}.margin-right-neg-105,.margin-x-neg-105{margin-right:-.75rem}.margin-left-neg-105{margin-left:-.75rem}.margin-x-neg-2{margin-left:-1rem}.margin-right-neg-2,.margin-x-neg-2{margin-right:-1rem}.margin-left-neg-2{margin-left:-1rem}.margin-x-neg-205{margin-left:-1.25rem}.margin-right-neg-205,.margin-x-neg-205{margin-right:-1.25rem}.margin-left-neg-205{margin-left:-1.25rem}.margin-x-neg-3{margin-left:-1.5rem}.margin-right-neg-3,.margin-x-neg-3{margin-right:-1.5rem}.margin-left-neg-3{margin-left:-1.5rem}.margin-x-neg-4{margin-left:-2rem}.margin-right-neg-4,.margin-x-neg-4{margin-right:-2rem}.margin-left-neg-4{margin-left:-2rem}.margin-x-neg-5{margin-left:-2.5rem}.margin-right-neg-5,.margin-x-neg-5{margin-right:-2.5rem}.margin-left-neg-5{margin-left:-2.5rem}.margin-x-neg-6{margin-left:-3rem}.margin-right-neg-6,.margin-x-neg-6{margin-right:-3rem}.margin-left-neg-6{margin-left:-3rem}.margin-x-neg-7{margin-left:-3.5rem}.margin-right-neg-7,.margin-x-neg-7{margin-right:-3.5rem}.margin-left-neg-7{margin-left:-3.5rem}.margin-x-neg-8{margin-left:-4rem}.margin-right-neg-8,.margin-x-neg-8{margin-right:-4rem}.margin-left-neg-8{margin-left:-4rem}.margin-x-neg-9{margin-left:-4.5rem}.margin-right-neg-9,.margin-x-neg-9{margin-right:-4.5rem}.margin-left-neg-9{margin-left:-4.5rem}.margin-x-neg-10{margin-left:-5rem}.margin-right-neg-10,.margin-x-neg-10{margin-right:-5rem}.margin-left-neg-10{margin-left:-5rem}.margin-x-neg-15{margin-left:-7.5rem}.margin-right-neg-15,.margin-x-neg-15{margin-right:-7.5rem}.margin-left-neg-15{margin-left:-7.5rem}.margin-x-4{margin-left:2rem}.margin-right-4,.margin-x-4{margin-right:2rem}.margin-left-4{margin-left:2rem}.margin-x-5{margin-left:2.5rem}.margin-right-5,.margin-x-5{margin-right:2.5rem}.margin-left-5{margin-left:2.5rem}.margin-x-6{margin-left:3rem}.margin-right-6,.margin-x-6{margin-right:3rem}.margin-left-6{margin-left:3rem}.margin-x-7{margin-left:3.5rem}.margin-right-7,.margin-x-7{margin-right:3.5rem}.margin-left-7{margin-left:3.5rem}.margin-x-8{margin-left:4rem}.margin-right-8,.margin-x-8{margin-right:4rem}.margin-left-8{margin-left:4rem}.margin-x-9{margin-left:4.5rem}.margin-right-9,.margin-x-9{margin-right:4.5rem}.margin-left-9{margin-left:4.5rem}.margin-x-10{margin-left:5rem}.margin-right-10,.margin-x-10{margin-right:5rem}.margin-left-10{margin-left:5rem}.margin-x-15{margin-left:7.5rem}.margin-right-15,.margin-x-15{margin-right:7.5rem}.margin-left-15{margin-left:7.5rem}.margin-x-card{margin-left:10rem}.margin-right-card,.margin-x-card{margin-right:10rem}.margin-left-card{margin-left:10rem}.margin-x-card-lg{margin-left:15rem}.margin-right-card-lg,.margin-x-card-lg{margin-right:15rem}.margin-left-card-lg{margin-left:15rem}.margin-x-mobile{margin-left:20rem}.margin-right-mobile,.margin-x-mobile{margin-right:20rem}.margin-left-mobile{margin-left:20rem}.margin-x-05em{margin-left:.5em}.margin-right-05em,.margin-x-05em{margin-right:.5em}.margin-left-05em{margin-left:.5em}.margin-x-1em{margin-left:1em}.margin-right-1em,.margin-x-1em{margin-right:1em}.margin-left-1em{margin-left:1em}.margin-x-105em{margin-left:1.5em}.margin-right-105em,.margin-x-105em{margin-right:1.5em}.margin-left-105em{margin-left:1.5em}.margin-x-2em{margin-left:2em}.margin-right-2em,.margin-x-2em{margin-right:2em}.margin-left-2em{margin-left:2em}.margin-x-0{margin-left:0}.margin-right-0,.margin-x-0{margin-right:0}.margin-left-0{margin-left:0}.margin-x-auto{margin-left:auto}.margin-right-auto,.margin-x-auto{margin-right:auto}.margin-left-auto{margin-left:auto}.maxh-05{max-height:.25rem}.maxh-1{max-height:.5rem}.maxh-105{max-height:.75rem}.maxh-2{max-height:1rem}.maxh-205{max-height:1.25rem}.maxh-3{max-height:1.5rem}.maxh-4{max-height:2rem}.maxh-5{max-height:2.5rem}.maxh-6{max-height:3rem}.maxh-7{max-height:3.5rem}.maxh-8{max-height:4rem}.maxh-9{max-height:4.5rem}.maxh-10{max-height:5rem}.maxh-15{max-height:7.5rem}.maxh-card{max-height:10rem}.maxh-card-lg{max-height:15rem}.maxh-mobile{max-height:20rem}.maxh-mobile-lg{max-height:30rem}.maxh-tablet{max-height:40rem}.maxh-tablet-lg{max-height:55rem}.maxh-none{max-height:none}.maxh-viewport{max-height:100vh}.maxw-05{max-width:.25rem}.maxw-1{max-width:.5rem}.maxw-105{max-width:.75rem}.maxw-2{max-width:1rem}.maxw-205{max-width:1.25rem}.maxw-3{max-width:1.5rem}.maxw-4{max-width:2rem}.maxw-5{max-width:2.5rem}.maxw-6{max-width:3rem}.maxw-7{max-width:3.5rem}.maxw-8{max-width:4rem}.maxw-9{max-width:4.5rem}.maxw-10{max-width:5rem}.maxw-15{max-width:7.5rem}.maxw-card{max-width:10rem}.maxw-card-lg{max-width:15rem}.maxw-mobile{max-width:20rem}.maxw-mobile-lg{max-width:30rem}.maxw-tablet{max-width:40rem}.maxw-tablet-lg{max-width:55rem}.maxw-desktop{max-width:64rem}.maxw-desktop-lg{max-width:75rem}.maxw-widescreen{max-width:87.5rem}.maxw-none{max-width:none}.maxw-full{max-width:100%}.measure-1{max-width:44ex}.measure-2{max-width:60ex}.measure-3{max-width:64ex}.measure-4{max-width:68ex}.measure-5{max-width:72ex}.measure-6{max-width:88ex}.measure-none{max-width:none}.minh-1px{min-height:1px}.minh-2px{min-height:2px}.minh-05{min-height:.25rem}.minh-1{min-height:.5rem}.minh-105{min-height:.75rem}.minh-2{min-height:1rem}.minh-205{min-height:1.25rem}.minh-3{min-height:1.5rem}.minh-4{min-height:2rem}.minh-5{min-height:2.5rem}.minh-6{min-height:3rem}.minh-7{min-height:3.5rem}.minh-8{min-height:4rem}.minh-9{min-height:4.5rem}.minh-10{min-height:5rem}.minh-15{min-height:7.5rem}.minh-card{min-height:10rem}.minh-card-lg{min-height:15rem}.minh-mobile{min-height:20rem}.minh-mobile-lg{min-height:30rem}.minh-tablet{min-height:40rem}.minh-tablet-lg{min-height:55rem}.minh-0{min-height:0}.minh-full{min-height:100%}.minh-viewport{min-height:100vh}.minw-05{min-width:.25rem}.minw-1{min-width:.5rem}.minw-105{min-width:.75rem}.minw-2{min-width:1rem}.minw-205{min-width:1.25rem}.minw-3{min-width:1.5rem}.minw-4{min-width:2rem}.minw-5{min-width:2.5rem}.minw-6{min-width:3rem}.minw-7{min-width:3.5rem}.minw-8{min-width:4rem}.minw-9{min-width:4.5rem}.minw-10{min-width:5rem}.minw-15{min-width:7.5rem}.minw-0{min-width:0}.opacity-0{opacity:0}.opacity-10{opacity:.1}.opacity-20{opacity:.2}.opacity-30{opacity:.3}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-80{opacity:.8}.opacity-90{opacity:.9}.opacity-100{opacity:1}.order-first{order:-1}.order-last{order:999}.order-initial{order:initial}.order-0{order:0}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-6{order:6}.order-7{order:7}.order-8{order:8}.order-9{order:9}.order-10{order:10}.order-11{order:11}.outline-1px{outline:1px solid}.outline-2px{outline:2px solid}.outline-0{outline:0 solid}.outline-05{outline:.25rem solid}.outline-transparent{outline-color:transparent}.outline-black{outline-color:#000}.outline-white{outline-color:#fff}.outline-red{outline-color:#e52207}.outline-orange{outline-color:#e66f0e}.outline-gold{outline-color:#ffbe2e}.outline-yellow{outline-color:#fee685}.outline-green{outline-color:#538200}.outline-mint{outline-color:#04c585}.outline-cyan{outline-color:#009ec1}.outline-blue{outline-color:#0076d6}.outline-indigo{outline-color:#676cc8}.outline-violet{outline-color:#8168b3}.outline-magenta{outline-color:#d72d79}.outline-gray-5{outline-color:#f0f0f0}.outline-gray-10{outline-color:#e6e6e6}.outline-gray-30{outline-color:#adadad}.outline-gray-50{outline-color:#757575}.outline-gray-70{outline-color:#454545}.outline-gray-90{outline-color:#1b1b1b}.outline-base-lightest{outline-color:#f0f0f0}.outline-base-lighter{outline-color:#dfe1e2}.outline-base-light{outline-color:#a9aeb1}.outline-base{outline-color:#71767a}.outline-base-dark{outline-color:#565c65}.outline-base-darker{outline-color:#3d4551}.outline-base-darkest,.outline-ink{outline-color:#1b1b1b}.outline-primary-lighter{outline-color:#d9e8f6}.outline-primary-light{outline-color:#73b3e7}.outline-primary{outline-color:#005ea2}.outline-primary-vivid{outline-color:#0050d8}.outline-primary-dark{outline-color:#1a4480}.outline-primary-darker{outline-color:#162e51}.outline-secondary-lighter{outline-color:#f3e1e4}.outline-secondary-light{outline-color:#f2938c}.outline-secondary{outline-color:#d83933}.outline-secondary-vivid{outline-color:#e41d3d}.outline-secondary-dark{outline-color:#b50909}.outline-secondary-darker{outline-color:#8b0a03}.outline-accent-warm-darker{outline-color:#775540}.outline-accent-warm-dark{outline-color:#c05600}.outline-accent-warm{outline-color:#fa9441}.outline-accent-warm-light{outline-color:#ffbc78}.outline-accent-warm-lighter{outline-color:#f2e4d4}.outline-accent-cool-darker{outline-color:#07648d}.outline-accent-cool-dark{outline-color:#28a0cb}.outline-accent-cool{outline-color:#00bde3}.outline-accent-cool-light{outline-color:#97d4ea}.outline-accent-cool-lighter{outline-color:#e1f3f8}.outline-error-lighter{outline-color:#f4e3db}.outline-error-light{outline-color:#f39268}.outline-error{outline-color:#d54309}.outline-error-dark{outline-color:#b50909}.outline-error-darker{outline-color:#6f3331}.outline-warning-lighter{outline-color:#faf3d1}.outline-warning-light{outline-color:#fee685}.outline-warning{outline-color:#ffbe2e}.outline-warning-dark{outline-color:#e5a000}.outline-warning-darker{outline-color:#936f38}.outline-success-lighter{outline-color:#ecf3ec}.outline-success-light{outline-color:#70e17b}.outline-success{outline-color:#00a91c}.outline-success-dark{outline-color:#008817}.outline-success-darker{outline-color:#216e1f}.outline-info-lighter{outline-color:#e7f6f8}.outline-info-light{outline-color:#99deea}.outline-info{outline-color:#00bde3}.outline-info-dark{outline-color:#009ec1}.outline-info-darker{outline-color:#2e6276}.outline-disabled-lighter{outline-color:#c9c9c9}.outline-disabled-light{outline-color:#919191}.outline-disabled{outline-color:#757575}.outline-disabled-dark{outline-color:#454545}.outline-disabled-darker{outline-color:#1b1b1b}.outline-emergency{outline-color:#9c3d10}.outline-emergency-dark{outline-color:#332d29}.overflow-hidden{overflow:hidden}.overflow-y-hidden{overflow-y:hidden}.overflow-x-hidden{overflow-x:hidden}.overflow-scroll{overflow:scroll}.overflow-y-scroll{overflow-y:scroll}.overflow-x-scroll{overflow-x:scroll}.overflow-auto{overflow:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-auto{overflow-x:auto}.overflow-visible{overflow:visible}.overflow-y-visible{overflow-y:visible}.overflow-x-visible{overflow-x:visible}.padding-1px{padding:1px}.padding-y-1px{padding-top:1px;padding-bottom:1px}.padding-x-1px{padding-left:1px;padding-right:1px}.padding-top-1px{padding-top:1px}.padding-right-1px{padding-right:1px}.padding-bottom-1px{padding-bottom:1px}.padding-left-1px{padding-left:1px}.padding-2px{padding:2px}.padding-y-2px{padding-top:2px;padding-bottom:2px}.padding-x-2px{padding-left:2px;padding-right:2px}.padding-top-2px{padding-top:2px}.padding-right-2px{padding-right:2px}.padding-bottom-2px{padding-bottom:2px}.padding-left-2px{padding-left:2px}.padding-05{padding:.25rem}.padding-y-05{padding-top:.25rem;padding-bottom:.25rem}.padding-x-05{padding-left:.25rem;padding-right:.25rem}.padding-top-05{padding-top:.25rem}.padding-right-05{padding-right:.25rem}.padding-bottom-05{padding-bottom:.25rem}.padding-left-05{padding-left:.25rem}.padding-1{padding:.5rem}.padding-y-1{padding-top:.5rem;padding-bottom:.5rem}.padding-x-1{padding-left:.5rem;padding-right:.5rem}.padding-top-1{padding-top:.5rem}.padding-right-1{padding-right:.5rem}.padding-bottom-1{padding-bottom:.5rem}.padding-left-1{padding-left:.5rem}.padding-105{padding:.75rem}.padding-y-105{padding-top:.75rem;padding-bottom:.75rem}.padding-x-105{padding-left:.75rem;padding-right:.75rem}.padding-top-105{padding-top:.75rem}.padding-right-105{padding-right:.75rem}.padding-bottom-105{padding-bottom:.75rem}.padding-left-105{padding-left:.75rem}.padding-2{padding:1rem}.padding-y-2{padding-top:1rem;padding-bottom:1rem}.padding-x-2{padding-left:1rem;padding-right:1rem}.padding-top-2{padding-top:1rem}.padding-right-2{padding-right:1rem}.padding-bottom-2{padding-bottom:1rem}.padding-left-2{padding-left:1rem}.padding-205{padding:1.25rem}.padding-y-205{padding-top:1.25rem;padding-bottom:1.25rem}.padding-x-205{padding-left:1.25rem;padding-right:1.25rem}.padding-top-205{padding-top:1.25rem}.padding-right-205{padding-right:1.25rem}.padding-bottom-205{padding-bottom:1.25rem}.padding-left-205{padding-left:1.25rem}.padding-3{padding:1.5rem}.padding-y-3{padding-top:1.5rem;padding-bottom:1.5rem}.padding-x-3{padding-left:1.5rem;padding-right:1.5rem}.padding-top-3{padding-top:1.5rem}.padding-right-3{padding-right:1.5rem}.padding-bottom-3{padding-bottom:1.5rem}.padding-left-3{padding-left:1.5rem}.padding-4{padding:2rem}.padding-y-4{padding-top:2rem;padding-bottom:2rem}.padding-x-4{padding-left:2rem;padding-right:2rem}.padding-top-4{padding-top:2rem}.padding-right-4{padding-right:2rem}.padding-bottom-4{padding-bottom:2rem}.padding-left-4{padding-left:2rem}.padding-5{padding:2.5rem}.padding-y-5{padding-top:2.5rem;padding-bottom:2.5rem}.padding-x-5{padding-left:2.5rem;padding-right:2.5rem}.padding-top-5{padding-top:2.5rem}.padding-right-5{padding-right:2.5rem}.padding-bottom-5{padding-bottom:2.5rem}.padding-left-5{padding-left:2.5rem}.padding-6{padding:3rem}.padding-y-6{padding-top:3rem;padding-bottom:3rem}.padding-x-6{padding-left:3rem;padding-right:3rem}.padding-top-6{padding-top:3rem}.padding-right-6{padding-right:3rem}.padding-bottom-6{padding-bottom:3rem}.padding-left-6{padding-left:3rem}.padding-7{padding:3.5rem}.padding-y-7{padding-top:3.5rem;padding-bottom:3.5rem}.padding-x-7{padding-left:3.5rem;padding-right:3.5rem}.padding-top-7{padding-top:3.5rem}.padding-right-7{padding-right:3.5rem}.padding-bottom-7{padding-bottom:3.5rem}.padding-left-7{padding-left:3.5rem}.padding-8{padding:4rem}.padding-y-8{padding-top:4rem;padding-bottom:4rem}.padding-x-8{padding-left:4rem;padding-right:4rem}.padding-top-8{padding-top:4rem}.padding-right-8{padding-right:4rem}.padding-bottom-8{padding-bottom:4rem}.padding-left-8{padding-left:4rem}.padding-9{padding:4.5rem}.padding-y-9{padding-top:4.5rem;padding-bottom:4.5rem}.padding-x-9{padding-left:4.5rem;padding-right:4.5rem}.padding-top-9{padding-top:4.5rem}.padding-right-9{padding-right:4.5rem}.padding-bottom-9{padding-bottom:4.5rem}.padding-left-9{padding-left:4.5rem}.padding-10{padding:5rem}.padding-y-10{padding-top:5rem;padding-bottom:5rem}.padding-x-10{padding-left:5rem;padding-right:5rem}.padding-top-10{padding-top:5rem}.padding-right-10{padding-right:5rem}.padding-bottom-10{padding-bottom:5rem}.padding-left-10{padding-left:5rem}.padding-15{padding:7.5rem}.padding-y-15{padding-top:7.5rem;padding-bottom:7.5rem}.padding-x-15{padding-left:7.5rem;padding-right:7.5rem}.padding-top-15{padding-top:7.5rem}.padding-right-15{padding-right:7.5rem}.padding-bottom-15{padding-bottom:7.5rem}.padding-left-15{padding-left:7.5rem}.padding-0{padding:0}.padding-y-0{padding-top:0;padding-bottom:0}.padding-x-0{padding-left:0;padding-right:0}.padding-top-0{padding-top:0}.padding-right-0{padding-right:0}.padding-bottom-0{padding-bottom:0}.padding-left-0{padding-left:0}.pin-all{bottom:0;top:0}.pin-all,.pin-x{left:0;right:0;position:absolute}.pin-y{top:0}.pin-bottom,.pin-y{bottom:0;position:absolute}.pin-left{left:0;position:absolute}.pin-right{right:0;position:absolute}.pin-top{top:0;position:absolute}.pin-none{bottom:auto;left:auto;right:auto;top:auto;position:static}.position-absolute{position:absolute}.position-fixed{position:fixed}.position-relative{position:relative}.position-static{position:static}.position-sticky{position:sticky}.right-1px{right:1px}.right-2px{right:2px}.right-05{right:.25rem}.right-1{right:.5rem}.right-105{right:.75rem}.right-2{right:1rem}.right-205{right:1.25rem}.right-3{right:1.5rem}.right-neg-1px{right:-1px}.right-neg-2px{right:-2px}.right-neg-05{right:-.25rem}.right-neg-1{right:-.5rem}.right-neg-105{right:-.75rem}.right-neg-2{right:-1rem}.right-neg-205{right:-1.25rem}.right-neg-3{right:-1.5rem}.right-0{right:0}.right-auto{right:auto}.right-full{right:100%}.square-1px{height:1px;width:1px}.square-2px{height:2px;width:2px}.square-05{height:.25rem;width:.25rem}.square-1{height:.5rem;width:.5rem}.square-105{height:.75rem;width:.75rem}.square-2{height:1rem;width:1rem}.square-205{height:1.25rem;width:1.25rem}.square-3{height:1.5rem;width:1.5rem}.square-4{height:2rem;width:2rem}.square-5{height:2.5rem;width:2.5rem}.square-6{height:3rem;width:3rem}.square-7{height:3.5rem;width:3.5rem}.square-8{height:4rem;width:4rem}.square-9{height:4.5rem;width:4.5rem}.square-10{height:5rem;width:5rem}.square-15{height:7.5rem;width:7.5rem}.square-card{height:10rem;width:10rem}.square-card-lg{height:15rem;width:15rem}.square-mobile{height:20rem;width:20rem}.text-center{text-align:center}.text-left{text-align:left}.text-justify{text-align:justify}.text-right{text-align:right}.hover\:text-strike:hover,.text-strike{text-decoration:line-through}.hover\:text-underline:hover,.text-underline{text-decoration:underline}.hover\:text-no-strike:hover,.hover\:text-no-underline:hover,.text-no-strike,.text-no-underline{text-decoration:none}.hover\:underline-red:hover,.underline-red{text-decoration-color:#e52207}.hover\:underline-orange:hover,.underline-orange{text-decoration-color:#e66f0e}.hover\:underline-gold:hover,.underline-gold{text-decoration-color:#ffbe2e}.hover\:underline-yellow:hover,.underline-yellow{text-decoration-color:#fee685}.hover\:underline-green:hover,.underline-green{text-decoration-color:#538200}.hover\:underline-mint:hover,.underline-mint{text-decoration-color:#04c585}.hover\:underline-cyan:hover,.underline-cyan{text-decoration-color:#009ec1}.hover\:underline-blue:hover,.underline-blue{text-decoration-color:#0076d6}.hover\:underline-indigo:hover,.underline-indigo{text-decoration-color:#676cc8}.hover\:underline-violet:hover,.underline-violet{text-decoration-color:#8168b3}.hover\:underline-magenta:hover,.underline-magenta{text-decoration-color:#d72d79}.hover\:underline-gray-5:hover,.underline-gray-5{text-decoration-color:#f0f0f0}.hover\:underline-gray-10:hover,.underline-gray-10{text-decoration-color:#e6e6e6}.hover\:underline-gray-30:hover,.underline-gray-30{text-decoration-color:#adadad}.hover\:underline-gray-50:hover,.underline-gray-50{text-decoration-color:#757575}.hover\:underline-gray-70:hover,.underline-gray-70{text-decoration-color:#454545}.hover\:underline-gray-90:hover,.underline-gray-90{text-decoration-color:#1b1b1b}.hover\:underline-base-lightest:hover,.underline-base-lightest{text-decoration-color:#f0f0f0}.hover\:underline-base-lighter:hover,.underline-base-lighter{text-decoration-color:#dfe1e2}.hover\:underline-base-light:hover,.underline-base-light{text-decoration-color:#a9aeb1}.hover\:underline-base:hover,.underline-base{text-decoration-color:#71767a}.hover\:underline-base-dark:hover,.underline-base-dark{text-decoration-color:#565c65}.hover\:underline-base-darker:hover,.underline-base-darker{text-decoration-color:#3d4551}.hover\:underline-base-darkest:hover,.hover\:underline-ink:hover,.underline-base-darkest,.underline-ink{text-decoration-color:#1b1b1b}.hover\:underline-primary-lighter:hover,.underline-primary-lighter{text-decoration-color:#d9e8f6}.hover\:underline-primary-light:hover,.underline-primary-light{text-decoration-color:#73b3e7}.hover\:underline-primary:hover,.underline-primary{text-decoration-color:#005ea2}.hover\:underline-primary-vivid:hover,.underline-primary-vivid{text-decoration-color:#0050d8}.hover\:underline-primary-dark:hover,.underline-primary-dark{text-decoration-color:#1a4480}.hover\:underline-primary-darker:hover,.underline-primary-darker{text-decoration-color:#162e51}.hover\:underline-secondary-lighter:hover,.underline-secondary-lighter{text-decoration-color:#f3e1e4}.hover\:underline-secondary-light:hover,.underline-secondary-light{text-decoration-color:#f2938c}.hover\:underline-secondary:hover,.underline-secondary{text-decoration-color:#d83933}.hover\:underline-secondary-vivid:hover,.underline-secondary-vivid{text-decoration-color:#e41d3d}.hover\:underline-secondary-dark:hover,.underline-secondary-dark{text-decoration-color:#b50909}.hover\:underline-secondary-darker:hover,.underline-secondary-darker{text-decoration-color:#8b0a03}.hover\:underline-accent-warm-darker:hover,.underline-accent-warm-darker{text-decoration-color:#775540}.hover\:underline-accent-warm-dark:hover,.underline-accent-warm-dark{text-decoration-color:#c05600}.hover\:underline-accent-warm:hover,.underline-accent-warm{text-decoration-color:#fa9441}.hover\:underline-accent-warm-light:hover,.underline-accent-warm-light{text-decoration-color:#ffbc78}.hover\:underline-accent-warm-lighter:hover,.underline-accent-warm-lighter{text-decoration-color:#f2e4d4}.hover\:underline-accent-cool-darker:hover,.underline-accent-cool-darker{text-decoration-color:#07648d}.hover\:underline-accent-cool-dark:hover,.underline-accent-cool-dark{text-decoration-color:#28a0cb}.hover\:underline-accent-cool:hover,.underline-accent-cool{text-decoration-color:#00bde3}.hover\:underline-accent-cool-light:hover,.underline-accent-cool-light{text-decoration-color:#97d4ea}.hover\:underline-accent-cool-lighter:hover,.underline-accent-cool-lighter{text-decoration-color:#e1f3f8}.hover\:underline-error-lighter:hover,.underline-error-lighter{text-decoration-color:#f4e3db}.hover\:underline-error-light:hover,.underline-error-light{text-decoration-color:#f39268}.hover\:underline-error:hover,.underline-error{text-decoration-color:#d54309}.hover\:underline-error-dark:hover,.underline-error-dark{text-decoration-color:#b50909}.hover\:underline-error-darker:hover,.underline-error-darker{text-decoration-color:#6f3331}.hover\:underline-warning-lighter:hover,.underline-warning-lighter{text-decoration-color:#faf3d1}.hover\:underline-warning-light:hover,.underline-warning-light{text-decoration-color:#fee685}.hover\:underline-warning:hover,.underline-warning{text-decoration-color:#ffbe2e}.hover\:underline-warning-dark:hover,.underline-warning-dark{text-decoration-color:#e5a000}.hover\:underline-warning-darker:hover,.underline-warning-darker{text-decoration-color:#936f38}.hover\:underline-success-lighter:hover,.underline-success-lighter{text-decoration-color:#ecf3ec}.hover\:underline-success-light:hover,.underline-success-light{text-decoration-color:#70e17b}.hover\:underline-success:hover,.underline-success{text-decoration-color:#00a91c}.hover\:underline-success-dark:hover,.underline-success-dark{text-decoration-color:#008817}.hover\:underline-success-darker:hover,.underline-success-darker{text-decoration-color:#216e1f}.hover\:underline-info-lighter:hover,.underline-info-lighter{text-decoration-color:#e7f6f8}.hover\:underline-info-light:hover,.underline-info-light{text-decoration-color:#99deea}.hover\:underline-info:hover,.underline-info{text-decoration-color:#00bde3}.hover\:underline-info-dark:hover,.underline-info-dark{text-decoration-color:#009ec1}.hover\:underline-info-darker:hover,.underline-info-darker{text-decoration-color:#2e6276}.hover\:underline-disabled-lighter:hover,.underline-disabled-lighter{text-decoration-color:#c9c9c9}.hover\:underline-disabled-light:hover,.underline-disabled-light{text-decoration-color:#919191}.hover\:underline-disabled:hover,.underline-disabled{text-decoration-color:#757575}.hover\:underline-disabled-dark:hover,.underline-disabled-dark{text-decoration-color:#454545}.hover\:underline-disabled-darker:hover,.underline-disabled-darker{text-decoration-color:#1b1b1b}.hover\:underline-emergency:hover,.underline-emergency{text-decoration-color:#9c3d10}.hover\:underline-emergency-dark:hover,.underline-emergency-dark{text-decoration-color:#332d29}.text-indent-0{text-indent:0}.text-indent-05{text-indent:.25rem}.text-indent-1{text-indent:.5rem}.text-indent-105{text-indent:.75rem}.text-indent-2{text-indent:1rem}.text-indent-205{text-indent:1.25rem}.text-indent-3{text-indent:1.5rem}.text-indent-neg-05{text-indent:-.25rem}.text-indent-neg-1{text-indent:-.5rem}.text-indent-neg-105{text-indent:-.75rem}.text-indent-neg-2{text-indent:-1rem}.text-indent-neg-205{text-indent:-1.25rem}.text-indent-neg-3{text-indent:-1.5rem}.text-indent-4{text-indent:2rem}.text-indent-5{text-indent:2.5rem}.text-indent-6{text-indent:3rem}.text-indent-7{text-indent:3.5rem}.text-indent-8{text-indent:4rem}.text-indent-9{text-indent:4.5rem}.text-indent-10{text-indent:5rem}.text-indent-15{text-indent:7.5rem}.text-indent-neg-4{text-indent:-2rem}.text-indent-neg-5{text-indent:-2.5rem}.text-indent-neg-6{text-indent:-3rem}.text-indent-neg-7{text-indent:-3.5rem}.text-indent-neg-8{text-indent:-4rem}.text-indent-neg-9{text-indent:-4.5rem}.text-indent-neg-10{text-indent:-5rem}.text-indent-neg-15{text-indent:-7.5rem}.text-uppercase{text-transform:uppercase}.text-no-uppercase{text-transform:none}.text-lowercase{text-transform:lowercase}.text-no-lowercase{text-transform:none}.top-1px{top:1px}.top-2px{top:2px}.top-05{top:.25rem}.top-1{top:.5rem}.top-105{top:.75rem}.top-2{top:1rem}.top-205{top:1.25rem}.top-3{top:1.5rem}.top-neg-1px{top:-1px}.top-neg-2px{top:-2px}.top-neg-05{top:-.25rem}.top-neg-1{top:-.5rem}.top-neg-105{top:-.75rem}.top-neg-2{top:-1rem}.top-neg-205{top:-1.25rem}.top-neg-3{top:-1.5rem}.top-0{top:0}.top-auto{top:auto}.top-full{top:100%}.text-baseline{vertical-align:baseline}.text-bottom{vertical-align:bottom}.text-middle{vertical-align:middle}.text-sub{vertical-align:sub}.text-super{vertical-align:super}.text-tbottom{vertical-align:text-bottom}.text-ttop{vertical-align:text-top}.text-top{vertical-align:top}.text-pre{white-space:pre}.text-pre-line{white-space:pre-line}.text-pre-wrap{white-space:pre-wrap}.text-wrap{white-space:normal}.text-no-wrap{white-space:nowrap}.width-1px{width:1px}.width-2px{width:2px}.width-05{width:.25rem}.width-1{width:.5rem}.width-105{width:.75rem}.width-2{width:1rem}.width-205{width:1.25rem}.width-3{width:1.5rem}.width-4{width:2rem}.width-5{width:2.5rem}.width-6{width:3rem}.width-7{width:3.5rem}.width-8{width:4rem}.width-9{width:4.5rem}.width-10{width:5rem}.width-15{width:7.5rem}.width-card{width:10rem}.width-card-lg{width:15rem}.width-mobile{width:20rem}.width-mobile-lg{width:30rem}.width-tablet{width:40rem}.width-tablet-lg{width:55rem}.width-desktop{width:64rem}.width-desktop-lg{width:75rem}.width-widescreen{width:87.5rem}.width-0{width:0}.width-full{width:100%}.width-auto{width:auto}.z-auto{z-index:auto}.z-bottom{z-index:-100}.z-top{z-index:99999}.z-0{z-index:0}.z-100{z-index:100}.z-200{z-index:200}.z-300{z-index:300}.z-400{z-index:400}.z-500{z-index:500}@media all and (min-width:30em){.mobile-lg\:border-1px,.mobile-lg\:hover\:border-1px:hover{border:1px solid}.mobile-lg\:border-y-1px,.mobile-lg\:hover\:border-y-1px:hover{border-top:1px solid;border-bottom:1px solid}.mobile-lg\:border-x-1px,.mobile-lg\:hover\:border-x-1px:hover{border-left:1px solid;border-right:1px solid}.mobile-lg\:border-top-1px,.mobile-lg\:hover\:border-top-1px:hover{border-top:1px solid}.mobile-lg\:border-right-1px,.mobile-lg\:hover\:border-right-1px:hover{border-right:1px solid}.mobile-lg\:border-bottom-1px,.mobile-lg\:hover\:border-bottom-1px:hover{border-bottom:1px solid}.mobile-lg\:border-left-1px,.mobile-lg\:hover\:border-left-1px:hover{border-left:1px solid}.mobile-lg\:border-2px,.mobile-lg\:hover\:border-2px:hover{border:2px solid}.mobile-lg\:border-y-2px,.mobile-lg\:hover\:border-y-2px:hover{border-top:2px solid;border-bottom:2px solid}.mobile-lg\:border-x-2px,.mobile-lg\:hover\:border-x-2px:hover{border-left:2px solid;border-right:2px solid}.mobile-lg\:border-top-2px,.mobile-lg\:hover\:border-top-2px:hover{border-top:2px solid}.mobile-lg\:border-right-2px,.mobile-lg\:hover\:border-right-2px:hover{border-right:2px solid}.mobile-lg\:border-bottom-2px,.mobile-lg\:hover\:border-bottom-2px:hover{border-bottom:2px solid}.mobile-lg\:border-left-2px,.mobile-lg\:hover\:border-left-2px:hover{border-left:2px solid}.mobile-lg\:border-05,.mobile-lg\:hover\:border-05:hover{border:.25rem solid}.mobile-lg\:border-y-05,.mobile-lg\:hover\:border-y-05:hover{border-top:.25rem solid;border-bottom:.25rem solid}.mobile-lg\:border-x-05,.mobile-lg\:hover\:border-x-05:hover{border-left:.25rem solid;border-right:.25rem solid}.mobile-lg\:border-top-05,.mobile-lg\:hover\:border-top-05:hover{border-top:.25rem solid}.mobile-lg\:border-right-05,.mobile-lg\:hover\:border-right-05:hover{border-right:.25rem solid}.mobile-lg\:border-bottom-05,.mobile-lg\:hover\:border-bottom-05:hover{border-bottom:.25rem solid}.mobile-lg\:border-left-05,.mobile-lg\:hover\:border-left-05:hover{border-left:.25rem solid}.mobile-lg\:border-1,.mobile-lg\:hover\:border-1:hover{border:.5rem solid}.mobile-lg\:border-y-1,.mobile-lg\:hover\:border-y-1:hover{border-top:.5rem solid;border-bottom:.5rem solid}.mobile-lg\:border-x-1,.mobile-lg\:hover\:border-x-1:hover{border-left:.5rem solid;border-right:.5rem solid}.mobile-lg\:border-top-1,.mobile-lg\:hover\:border-top-1:hover{border-top:.5rem solid}.mobile-lg\:border-right-1,.mobile-lg\:hover\:border-right-1:hover{border-right:.5rem solid}.mobile-lg\:border-bottom-1,.mobile-lg\:hover\:border-bottom-1:hover{border-bottom:.5rem solid}.mobile-lg\:border-left-1,.mobile-lg\:hover\:border-left-1:hover{border-left:.5rem solid}.mobile-lg\:border-105,.mobile-lg\:hover\:border-105:hover{border:.75rem solid}.mobile-lg\:border-y-105,.mobile-lg\:hover\:border-y-105:hover{border-top:.75rem solid;border-bottom:.75rem solid}.mobile-lg\:border-x-105,.mobile-lg\:hover\:border-x-105:hover{border-left:.75rem solid;border-right:.75rem solid}.mobile-lg\:border-top-105,.mobile-lg\:hover\:border-top-105:hover{border-top:.75rem solid}.mobile-lg\:border-right-105,.mobile-lg\:hover\:border-right-105:hover{border-right:.75rem solid}.mobile-lg\:border-bottom-105,.mobile-lg\:hover\:border-bottom-105:hover{border-bottom:.75rem solid}.mobile-lg\:border-left-105,.mobile-lg\:hover\:border-left-105:hover{border-left:.75rem solid}.mobile-lg\:border-2,.mobile-lg\:hover\:border-2:hover{border:1rem solid}.mobile-lg\:border-y-2,.mobile-lg\:hover\:border-y-2:hover{border-top:1rem solid;border-bottom:1rem solid}.mobile-lg\:border-x-2,.mobile-lg\:hover\:border-x-2:hover{border-left:1rem solid;border-right:1rem solid}.mobile-lg\:border-top-2,.mobile-lg\:hover\:border-top-2:hover{border-top:1rem solid}.mobile-lg\:border-right-2,.mobile-lg\:hover\:border-right-2:hover{border-right:1rem solid}.mobile-lg\:border-bottom-2,.mobile-lg\:hover\:border-bottom-2:hover{border-bottom:1rem solid}.mobile-lg\:border-left-2,.mobile-lg\:hover\:border-left-2:hover{border-left:1rem solid}.mobile-lg\:border-205,.mobile-lg\:hover\:border-205:hover{border:1.25rem solid}.mobile-lg\:border-y-205,.mobile-lg\:hover\:border-y-205:hover{border-top:1.25rem solid;border-bottom:1.25rem solid}.mobile-lg\:border-x-205,.mobile-lg\:hover\:border-x-205:hover{border-left:1.25rem solid;border-right:1.25rem solid}.mobile-lg\:border-top-205,.mobile-lg\:hover\:border-top-205:hover{border-top:1.25rem solid}.mobile-lg\:border-right-205,.mobile-lg\:hover\:border-right-205:hover{border-right:1.25rem solid}.mobile-lg\:border-bottom-205,.mobile-lg\:hover\:border-bottom-205:hover{border-bottom:1.25rem solid}.mobile-lg\:border-left-205,.mobile-lg\:hover\:border-left-205:hover{border-left:1.25rem solid}.mobile-lg\:border-3,.mobile-lg\:hover\:border-3:hover{border:1.5rem solid}.mobile-lg\:border-y-3,.mobile-lg\:hover\:border-y-3:hover{border-top:1.5rem solid;border-bottom:1.5rem solid}.mobile-lg\:border-x-3,.mobile-lg\:hover\:border-x-3:hover{border-left:1.5rem solid;border-right:1.5rem solid}.mobile-lg\:border-top-3,.mobile-lg\:hover\:border-top-3:hover{border-top:1.5rem solid}.mobile-lg\:border-right-3,.mobile-lg\:hover\:border-right-3:hover{border-right:1.5rem solid}.mobile-lg\:border-bottom-3,.mobile-lg\:hover\:border-bottom-3:hover{border-bottom:1.5rem solid}.mobile-lg\:border-left-3,.mobile-lg\:hover\:border-left-3:hover{border-left:1.5rem solid}.mobile-lg\:border-0,.mobile-lg\:hover\:border-0:hover{border:0 solid}.mobile-lg\:border-y-0,.mobile-lg\:hover\:border-y-0:hover{border-top:0 solid;border-bottom:0 solid}.mobile-lg\:border-x-0,.mobile-lg\:hover\:border-x-0:hover{border-left:0 solid;border-right:0 solid}.mobile-lg\:border-top-0,.mobile-lg\:hover\:border-top-0:hover{border-top:0 solid}.mobile-lg\:border-right-0,.mobile-lg\:hover\:border-right-0:hover{border-right:0 solid}.mobile-lg\:border-bottom-0,.mobile-lg\:hover\:border-bottom-0:hover{border-bottom:0 solid}.mobile-lg\:border-left-0,.mobile-lg\:hover\:border-left-0:hover{border-left:0 solid}.mobile-lg\:border,.mobile-lg\:hover\:border:hover{border:1px solid}.mobile-lg\:border-y,.mobile-lg\:hover\:border-y:hover{border-top:1px solid;border-bottom:1px solid}.mobile-lg\:border-x,.mobile-lg\:hover\:border-x:hover{border-left:1px solid;border-right:1px solid}.mobile-lg\:border-top,.mobile-lg\:hover\:border-top:hover{border-top:1px solid}.mobile-lg\:border-right,.mobile-lg\:hover\:border-right:hover{border-right:1px solid}.mobile-lg\:border-bottom,.mobile-lg\:hover\:border-bottom:hover{border-bottom:1px solid}.mobile-lg\:border-left,.mobile-lg\:hover\:border-left:hover{border-left:1px solid}.mobile-lg\:border-transparent,.mobile-lg\:hover\:border-transparent:hover{border-color:transparent}.mobile-lg\:border-black,.mobile-lg\:hover\:border-black:hover{border-color:#000}.mobile-lg\:border-white,.mobile-lg\:hover\:border-white:hover{border-color:#fff}.mobile-lg\:border-red,.mobile-lg\:hover\:border-red:hover{border-color:#e52207}.mobile-lg\:border-orange,.mobile-lg\:hover\:border-orange:hover{border-color:#e66f0e}.mobile-lg\:border-gold,.mobile-lg\:hover\:border-gold:hover{border-color:#ffbe2e}.mobile-lg\:border-yellow,.mobile-lg\:hover\:border-yellow:hover{border-color:#fee685}.mobile-lg\:border-green,.mobile-lg\:hover\:border-green:hover{border-color:#538200}.mobile-lg\:border-mint,.mobile-lg\:hover\:border-mint:hover{border-color:#04c585}.mobile-lg\:border-cyan,.mobile-lg\:hover\:border-cyan:hover{border-color:#009ec1}.mobile-lg\:border-blue,.mobile-lg\:hover\:border-blue:hover{border-color:#0076d6}.mobile-lg\:border-indigo,.mobile-lg\:hover\:border-indigo:hover{border-color:#676cc8}.mobile-lg\:border-violet,.mobile-lg\:hover\:border-violet:hover{border-color:#8168b3}.mobile-lg\:border-magenta,.mobile-lg\:hover\:border-magenta:hover{border-color:#d72d79}.mobile-lg\:border-gray-5,.mobile-lg\:hover\:border-gray-5:hover{border-color:#f0f0f0}.mobile-lg\:border-gray-10,.mobile-lg\:hover\:border-gray-10:hover{border-color:#e6e6e6}.mobile-lg\:border-gray-30,.mobile-lg\:hover\:border-gray-30:hover{border-color:#adadad}.mobile-lg\:border-gray-50,.mobile-lg\:hover\:border-gray-50:hover{border-color:#757575}.mobile-lg\:border-gray-70,.mobile-lg\:hover\:border-gray-70:hover{border-color:#454545}.mobile-lg\:border-gray-90,.mobile-lg\:hover\:border-gray-90:hover{border-color:#1b1b1b}.mobile-lg\:border-base-lightest,.mobile-lg\:hover\:border-base-lightest:hover{border-color:#f0f0f0}.mobile-lg\:border-base-lighter,.mobile-lg\:hover\:border-base-lighter:hover{border-color:#dfe1e2}.mobile-lg\:border-base-light,.mobile-lg\:hover\:border-base-light:hover{border-color:#a9aeb1}.mobile-lg\:border-base,.mobile-lg\:hover\:border-base:hover{border-color:#71767a}.mobile-lg\:border-base-dark,.mobile-lg\:hover\:border-base-dark:hover{border-color:#565c65}.mobile-lg\:border-base-darker,.mobile-lg\:hover\:border-base-darker:hover{border-color:#3d4551}.mobile-lg\:border-base-darkest,.mobile-lg\:border-ink,.mobile-lg\:hover\:border-base-darkest:hover,.mobile-lg\:hover\:border-ink:hover{border-color:#1b1b1b}.mobile-lg\:border-primary-lighter,.mobile-lg\:hover\:border-primary-lighter:hover{border-color:#d9e8f6}.mobile-lg\:border-primary-light,.mobile-lg\:hover\:border-primary-light:hover{border-color:#73b3e7}.mobile-lg\:border-primary,.mobile-lg\:hover\:border-primary:hover{border-color:#005ea2}.mobile-lg\:border-primary-vivid,.mobile-lg\:hover\:border-primary-vivid:hover{border-color:#0050d8}.mobile-lg\:border-primary-dark,.mobile-lg\:hover\:border-primary-dark:hover{border-color:#1a4480}.mobile-lg\:border-primary-darker,.mobile-lg\:hover\:border-primary-darker:hover{border-color:#162e51}.mobile-lg\:border-secondary-lighter,.mobile-lg\:hover\:border-secondary-lighter:hover{border-color:#f3e1e4}.mobile-lg\:border-secondary-light,.mobile-lg\:hover\:border-secondary-light:hover{border-color:#f2938c}.mobile-lg\:border-secondary,.mobile-lg\:hover\:border-secondary:hover{border-color:#d83933}.mobile-lg\:border-secondary-vivid,.mobile-lg\:hover\:border-secondary-vivid:hover{border-color:#e41d3d}.mobile-lg\:border-secondary-dark,.mobile-lg\:hover\:border-secondary-dark:hover{border-color:#b50909}.mobile-lg\:border-secondary-darker,.mobile-lg\:hover\:border-secondary-darker:hover{border-color:#8b0a03}.mobile-lg\:border-accent-warm-darker,.mobile-lg\:hover\:border-accent-warm-darker:hover{border-color:#775540}.mobile-lg\:border-accent-warm-dark,.mobile-lg\:hover\:border-accent-warm-dark:hover{border-color:#c05600}.mobile-lg\:border-accent-warm,.mobile-lg\:hover\:border-accent-warm:hover{border-color:#fa9441}.mobile-lg\:border-accent-warm-light,.mobile-lg\:hover\:border-accent-warm-light:hover{border-color:#ffbc78}.mobile-lg\:border-accent-warm-lighter,.mobile-lg\:hover\:border-accent-warm-lighter:hover{border-color:#f2e4d4}.mobile-lg\:border-accent-cool-darker,.mobile-lg\:hover\:border-accent-cool-darker:hover{border-color:#07648d}.mobile-lg\:border-accent-cool-dark,.mobile-lg\:hover\:border-accent-cool-dark:hover{border-color:#28a0cb}.mobile-lg\:border-accent-cool,.mobile-lg\:hover\:border-accent-cool:hover{border-color:#00bde3}.mobile-lg\:border-accent-cool-light,.mobile-lg\:hover\:border-accent-cool-light:hover{border-color:#97d4ea}.mobile-lg\:border-accent-cool-lighter,.mobile-lg\:hover\:border-accent-cool-lighter:hover{border-color:#e1f3f8}.mobile-lg\:border-error-lighter,.mobile-lg\:hover\:border-error-lighter:hover{border-color:#f4e3db}.mobile-lg\:border-error-light,.mobile-lg\:hover\:border-error-light:hover{border-color:#f39268}.mobile-lg\:border-error,.mobile-lg\:hover\:border-error:hover{border-color:#d54309}.mobile-lg\:border-error-dark,.mobile-lg\:hover\:border-error-dark:hover{border-color:#b50909}.mobile-lg\:border-error-darker,.mobile-lg\:hover\:border-error-darker:hover{border-color:#6f3331}.mobile-lg\:border-warning-lighter,.mobile-lg\:hover\:border-warning-lighter:hover{border-color:#faf3d1}.mobile-lg\:border-warning-light,.mobile-lg\:hover\:border-warning-light:hover{border-color:#fee685}.mobile-lg\:border-warning,.mobile-lg\:hover\:border-warning:hover{border-color:#ffbe2e}.mobile-lg\:border-warning-dark,.mobile-lg\:hover\:border-warning-dark:hover{border-color:#e5a000}.mobile-lg\:border-warning-darker,.mobile-lg\:hover\:border-warning-darker:hover{border-color:#936f38}.mobile-lg\:border-success-lighter,.mobile-lg\:hover\:border-success-lighter:hover{border-color:#ecf3ec}.mobile-lg\:border-success-light,.mobile-lg\:hover\:border-success-light:hover{border-color:#70e17b}.mobile-lg\:border-success,.mobile-lg\:hover\:border-success:hover{border-color:#00a91c}.mobile-lg\:border-success-dark,.mobile-lg\:hover\:border-success-dark:hover{border-color:#008817}.mobile-lg\:border-success-darker,.mobile-lg\:hover\:border-success-darker:hover{border-color:#216e1f}.mobile-lg\:border-info-lighter,.mobile-lg\:hover\:border-info-lighter:hover{border-color:#e7f6f8}.mobile-lg\:border-info-light,.mobile-lg\:hover\:border-info-light:hover{border-color:#99deea}.mobile-lg\:border-info,.mobile-lg\:hover\:border-info:hover{border-color:#00bde3}.mobile-lg\:border-info-dark,.mobile-lg\:hover\:border-info-dark:hover{border-color:#009ec1}.mobile-lg\:border-info-darker,.mobile-lg\:hover\:border-info-darker:hover{border-color:#2e6276}.mobile-lg\:border-disabled-lighter,.mobile-lg\:hover\:border-disabled-lighter:hover{border-color:#c9c9c9}.mobile-lg\:border-disabled-light,.mobile-lg\:hover\:border-disabled-light:hover{border-color:#919191}.mobile-lg\:border-disabled,.mobile-lg\:hover\:border-disabled:hover{border-color:#757575}.mobile-lg\:border-disabled-dark,.mobile-lg\:hover\:border-disabled-dark:hover{border-color:#454545}.mobile-lg\:border-disabled-darker,.mobile-lg\:hover\:border-disabled-darker:hover{border-color:#1b1b1b}.mobile-lg\:border-emergency,.mobile-lg\:hover\:border-emergency:hover{border-color:#9c3d10}.mobile-lg\:border-emergency-dark,.mobile-lg\:hover\:border-emergency-dark:hover{border-color:#332d29}.mobile-lg\:radius-0{border-radius:0}.mobile-lg\:radius-top-0{border-top-left-radius:0;border-top-right-radius:0}.mobile-lg\:radius-right-0{border-top-right-radius:0;border-bottom-right-radius:0}.mobile-lg\:radius-bottom-0{border-bottom-left-radius:0;border-bottom-right-radius:0}.mobile-lg\:radius-left-0{border-top-left-radius:0;border-bottom-left-radius:0}.mobile-lg\:radius-sm{border-radius:2px}.mobile-lg\:radius-top-sm{border-top-left-radius:2px;border-top-right-radius:2px}.mobile-lg\:radius-right-sm{border-top-right-radius:2px;border-bottom-right-radius:2px}.mobile-lg\:radius-bottom-sm{border-bottom-left-radius:2px;border-bottom-right-radius:2px}.mobile-lg\:radius-left-sm{border-top-left-radius:2px;border-bottom-left-radius:2px}.mobile-lg\:radius-md{border-radius:.25rem}.mobile-lg\:radius-top-md{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.mobile-lg\:radius-right-md{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.mobile-lg\:radius-bottom-md{border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}.mobile-lg\:radius-left-md{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.mobile-lg\:radius-lg{border-radius:.5rem}.mobile-lg\:radius-top-lg{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.mobile-lg\:radius-right-lg{border-top-right-radius:.5rem;border-bottom-right-radius:.5rem}.mobile-lg\:radius-bottom-lg{border-bottom-left-radius:.5rem;border-bottom-right-radius:.5rem}.mobile-lg\:radius-left-lg{border-top-left-radius:.5rem;border-bottom-left-radius:.5rem}.mobile-lg\:radius-pill{border-radius:99rem}.mobile-lg\:radius-top-pill{border-top-left-radius:99rem;border-top-right-radius:99rem}.mobile-lg\:radius-right-pill{border-top-right-radius:99rem;border-bottom-right-radius:99rem}.mobile-lg\:radius-bottom-pill{border-bottom-left-radius:99rem;border-bottom-right-radius:99rem}.mobile-lg\:radius-left-pill{border-top-left-radius:99rem;border-bottom-left-radius:99rem}.mobile-lg\:display-block{display:block}.mobile-lg\:display-flex{display:flex}.mobile-lg\:display-none{display:none}.mobile-lg\:display-inline{display:inline}.mobile-lg\:display-inline-block{display:inline-block}.mobile-lg\:display-inline-flex{display:inline-flex}.mobile-lg\:display-table{display:table}.mobile-lg\:display-table-cell{display:table-cell}.mobile-lg\:display-table-row{display:table-row}.mobile-lg\:font-mono-3xs{font-size:.77rem}.mobile-lg\:font-mono-2xs{font-size:.83rem}.mobile-lg\:font-mono-xs{font-size:.89rem}.mobile-lg\:font-mono-sm{font-size:.95rem}.mobile-lg\:font-mono-md{font-size:1.01rem}.mobile-lg\:font-mono-lg{font-size:1.31rem}.mobile-lg\:font-mono-xl{font-size:1.91rem}.mobile-lg\:font-mono-2xl{font-size:2.38rem}.mobile-lg\:font-mono-3xl{font-size:2.86rem}.mobile-lg\:font-sans-3xs{font-size:.87rem}.mobile-lg\:font-sans-2xs{font-size:.93rem}.mobile-lg\:font-sans-xs{font-size:1rem}.mobile-lg\:font-sans-sm{font-size:1.06rem}.mobile-lg\:font-sans-md{font-size:1.13rem}.mobile-lg\:font-sans-lg{font-size:1.46rem}.mobile-lg\:font-sans-xl{font-size:2.13rem}.mobile-lg\:font-sans-2xl{font-size:2.66rem}.mobile-lg\:font-sans-3xl{font-size:3.19rem}.mobile-lg\:font-serif-3xs{font-size:.79rem}.mobile-lg\:font-serif-2xs{font-size:.85rem}.mobile-lg\:font-serif-xs{font-size:.91rem}.mobile-lg\:font-serif-sm{font-size:.98rem}.mobile-lg\:font-serif-md{font-size:1.04rem}.mobile-lg\:font-serif-lg{font-size:1.34rem}.mobile-lg\:font-serif-xl{font-size:1.95rem}.mobile-lg\:font-serif-2xl{font-size:2.44rem}.mobile-lg\:font-serif-3xl{font-size:2.93rem}.mobile-lg\:font-heading-3xs{font-size:.79rem}.mobile-lg\:font-heading-2xs{font-size:.85rem}.mobile-lg\:font-heading-xs{font-size:.91rem}.mobile-lg\:font-heading-sm{font-size:.98rem}.mobile-lg\:font-heading-md{font-size:1.04rem}.mobile-lg\:font-heading-lg{font-size:1.34rem}.mobile-lg\:font-heading-xl{font-size:1.95rem}.mobile-lg\:font-heading-2xl{font-size:2.44rem}.mobile-lg\:font-heading-3xl{font-size:2.93rem}.mobile-lg\:font-body-3xs{font-size:.87rem}.mobile-lg\:font-body-2xs{font-size:.93rem}.mobile-lg\:font-body-xs{font-size:1rem}.mobile-lg\:font-body-sm{font-size:1.06rem}.mobile-lg\:font-body-md{font-size:1.13rem}.mobile-lg\:font-body-lg{font-size:1.46rem}.mobile-lg\:font-body-xl{font-size:2.13rem}.mobile-lg\:font-body-2xl{font-size:2.66rem}.mobile-lg\:font-body-3xl{font-size:3.19rem}.mobile-lg\:font-code-3xs{font-size:.77rem}.mobile-lg\:font-code-2xs{font-size:.83rem}.mobile-lg\:font-code-xs{font-size:.89rem}.mobile-lg\:font-code-sm{font-size:.95rem}.mobile-lg\:font-code-md{font-size:1.01rem}.mobile-lg\:font-code-lg{font-size:1.31rem}.mobile-lg\:font-code-xl{font-size:1.91rem}.mobile-lg\:font-code-2xl{font-size:2.38rem}.mobile-lg\:font-code-3xl{font-size:2.86rem}.mobile-lg\:font-alt-3xs{font-size:.79rem}.mobile-lg\:font-alt-2xs{font-size:.85rem}.mobile-lg\:font-alt-xs{font-size:.91rem}.mobile-lg\:font-alt-sm{font-size:.98rem}.mobile-lg\:font-alt-md{font-size:1.04rem}.mobile-lg\:font-alt-lg{font-size:1.34rem}.mobile-lg\:font-alt-xl{font-size:1.95rem}.mobile-lg\:font-alt-2xl{font-size:2.44rem}.mobile-lg\:font-alt-3xl{font-size:2.93rem}.mobile-lg\:font-ui-3xs{font-size:.87rem}.mobile-lg\:font-ui-2xs{font-size:.93rem}.mobile-lg\:font-ui-xs{font-size:1rem}.mobile-lg\:font-ui-sm{font-size:1.06rem}.mobile-lg\:font-ui-md{font-size:1.13rem}.mobile-lg\:font-ui-lg{font-size:1.46rem}.mobile-lg\:font-ui-xl{font-size:2.13rem}.mobile-lg\:font-ui-2xl{font-size:2.66rem}.mobile-lg\:font-ui-3xl{font-size:3.19rem}.mobile-lg\:text-light{font-weight:300}.mobile-lg\:text-normal{font-weight:400}.mobile-lg\:text-bold{font-weight:700}.mobile-lg\:flex-justify-center{justify-content:center}.mobile-lg\:flex-justify-start{justify-content:flex-start}.mobile-lg\:flex-justify-end{justify-content:flex-end}.mobile-lg\:flex-justify{justify-content:space-between}.mobile-lg\:line-height-sans-1{line-height:.9}.mobile-lg\:line-height-sans-2{line-height:1.1}.mobile-lg\:line-height-sans-3{line-height:1.3}.mobile-lg\:line-height-sans-4{line-height:1.4}.mobile-lg\:line-height-sans-5{line-height:1.5}.mobile-lg\:line-height-sans-6{line-height:1.6}.mobile-lg\:line-height-serif-1{line-height:1}.mobile-lg\:line-height-serif-2{line-height:1.2}.mobile-lg\:line-height-serif-3{line-height:1.4}.mobile-lg\:line-height-serif-4{line-height:1.5}.mobile-lg\:line-height-serif-5{line-height:1.7}.mobile-lg\:line-height-serif-6{line-height:1.8}.mobile-lg\:line-height-mono-1{line-height:1}.mobile-lg\:line-height-mono-2{line-height:1.3}.mobile-lg\:line-height-mono-3{line-height:1.4}.mobile-lg\:line-height-mono-4{line-height:1.6}.mobile-lg\:line-height-mono-5{line-height:1.7}.mobile-lg\:line-height-mono-6{line-height:1.8}.mobile-lg\:line-height-heading-1{line-height:1}.mobile-lg\:line-height-heading-2{line-height:1.2}.mobile-lg\:line-height-heading-3{line-height:1.4}.mobile-lg\:line-height-heading-4{line-height:1.5}.mobile-lg\:line-height-heading-5{line-height:1.7}.mobile-lg\:line-height-heading-6{line-height:1.8}.mobile-lg\:line-height-ui-1{line-height:.9}.mobile-lg\:line-height-ui-2{line-height:1.1}.mobile-lg\:line-height-ui-3{line-height:1.3}.mobile-lg\:line-height-ui-4{line-height:1.4}.mobile-lg\:line-height-ui-5{line-height:1.5}.mobile-lg\:line-height-ui-6{line-height:1.6}.mobile-lg\:line-height-body-1{line-height:.9}.mobile-lg\:line-height-body-2{line-height:1.1}.mobile-lg\:line-height-body-3{line-height:1.3}.mobile-lg\:line-height-body-4{line-height:1.4}.mobile-lg\:line-height-body-5{line-height:1.5}.mobile-lg\:line-height-body-6{line-height:1.6}.mobile-lg\:line-height-code-1{line-height:1}.mobile-lg\:line-height-code-2{line-height:1.3}.mobile-lg\:line-height-code-3{line-height:1.4}.mobile-lg\:line-height-code-4{line-height:1.6}.mobile-lg\:line-height-code-5{line-height:1.7}.mobile-lg\:line-height-code-6{line-height:1.8}.mobile-lg\:line-height-alt-1{line-height:1}.mobile-lg\:line-height-alt-2{line-height:1.2}.mobile-lg\:line-height-alt-3{line-height:1.4}.mobile-lg\:line-height-alt-4{line-height:1.5}.mobile-lg\:line-height-alt-5{line-height:1.7}.mobile-lg\:line-height-alt-6{line-height:1.8}.mobile-lg\:margin-neg-1px{margin:-1px}.mobile-lg\:margin-neg-2px{margin:-2px}.mobile-lg\:margin-neg-05{margin:-.25rem}.mobile-lg\:margin-neg-1{margin:-.5rem}.mobile-lg\:margin-neg-105{margin:-.75rem}.mobile-lg\:margin-neg-2{margin:-1rem}.mobile-lg\:margin-neg-205{margin:-1.25rem}.mobile-lg\:margin-neg-3{margin:-1.5rem}.mobile-lg\:margin-1px{margin:1px}.mobile-lg\:margin-2px{margin:2px}.mobile-lg\:margin-05{margin:.25rem}.mobile-lg\:margin-1{margin:.5rem}.mobile-lg\:margin-105{margin:.75rem}.mobile-lg\:margin-2{margin:1rem}.mobile-lg\:margin-205{margin:1.25rem}.mobile-lg\:margin-3{margin:1.5rem}.mobile-lg\:margin-neg-4{margin:-2rem}.mobile-lg\:margin-neg-5{margin:-2.5rem}.mobile-lg\:margin-neg-6{margin:-3rem}.mobile-lg\:margin-neg-7{margin:-3.5rem}.mobile-lg\:margin-neg-8{margin:-4rem}.mobile-lg\:margin-neg-9{margin:-4.5rem}.mobile-lg\:margin-neg-10{margin:-5rem}.mobile-lg\:margin-neg-15{margin:-7.5rem}.mobile-lg\:margin-4{margin:2rem}.mobile-lg\:margin-5{margin:2.5rem}.mobile-lg\:margin-6{margin:3rem}.mobile-lg\:margin-7{margin:3.5rem}.mobile-lg\:margin-8{margin:4rem}.mobile-lg\:margin-9{margin:4.5rem}.mobile-lg\:margin-10{margin:5rem}.mobile-lg\:margin-15{margin:7.5rem}.mobile-lg\:margin-05em{margin:.5em}.mobile-lg\:margin-1em{margin:1em}.mobile-lg\:margin-105em{margin:1.5em}.mobile-lg\:margin-2em{margin:2em}.mobile-lg\:margin-0{margin:0}.mobile-lg\:margin-y-1px{margin-top:1px;margin-bottom:1px}.mobile-lg\:margin-top-1px{margin-top:1px}.mobile-lg\:margin-bottom-1px{margin-bottom:1px}.mobile-lg\:margin-y-2px{margin-top:2px;margin-bottom:2px}.mobile-lg\:margin-top-2px{margin-top:2px}.mobile-lg\:margin-bottom-2px{margin-bottom:2px}.mobile-lg\:margin-y-05{margin-top:.25rem;margin-bottom:.25rem}.mobile-lg\:margin-top-05{margin-top:.25rem}.mobile-lg\:margin-bottom-05{margin-bottom:.25rem}.mobile-lg\:margin-y-1{margin-top:.5rem;margin-bottom:.5rem}.mobile-lg\:margin-top-1{margin-top:.5rem}.mobile-lg\:margin-bottom-1{margin-bottom:.5rem}.mobile-lg\:margin-y-105{margin-top:.75rem;margin-bottom:.75rem}.mobile-lg\:margin-top-105{margin-top:.75rem}.mobile-lg\:margin-bottom-105{margin-bottom:.75rem}.mobile-lg\:margin-y-2{margin-top:1rem;margin-bottom:1rem}.mobile-lg\:margin-top-2{margin-top:1rem}.mobile-lg\:margin-bottom-2{margin-bottom:1rem}.mobile-lg\:margin-y-205{margin-top:1.25rem;margin-bottom:1.25rem}.mobile-lg\:margin-top-205{margin-top:1.25rem}.mobile-lg\:margin-bottom-205{margin-bottom:1.25rem}.mobile-lg\:margin-y-3{margin-top:1.5rem;margin-bottom:1.5rem}.mobile-lg\:margin-top-3{margin-top:1.5rem}.mobile-lg\:margin-bottom-3{margin-bottom:1.5rem}.mobile-lg\:margin-y-neg-1px{margin-top:-1px;margin-bottom:-1px}.mobile-lg\:margin-top-neg-1px{margin-top:-1px}.mobile-lg\:margin-bottom-neg-1px{margin-bottom:-1px}.mobile-lg\:margin-y-neg-2px{margin-top:-2px;margin-bottom:-2px}.mobile-lg\:margin-top-neg-2px{margin-top:-2px}.mobile-lg\:margin-bottom-neg-2px{margin-bottom:-2px}.mobile-lg\:margin-y-neg-05{margin-top:-.25rem;margin-bottom:-.25rem}.mobile-lg\:margin-top-neg-05{margin-top:-.25rem}.mobile-lg\:margin-bottom-neg-05{margin-bottom:-.25rem}.mobile-lg\:margin-y-neg-1{margin-top:-.5rem;margin-bottom:-.5rem}.mobile-lg\:margin-top-neg-1{margin-top:-.5rem}.mobile-lg\:margin-bottom-neg-1{margin-bottom:-.5rem}.mobile-lg\:margin-y-neg-105{margin-top:-.75rem;margin-bottom:-.75rem}.mobile-lg\:margin-top-neg-105{margin-top:-.75rem}.mobile-lg\:margin-bottom-neg-105{margin-bottom:-.75rem}.mobile-lg\:margin-y-neg-2{margin-top:-1rem;margin-bottom:-1rem}.mobile-lg\:margin-top-neg-2{margin-top:-1rem}.mobile-lg\:margin-bottom-neg-2{margin-bottom:-1rem}.mobile-lg\:margin-y-neg-205{margin-top:-1.25rem;margin-bottom:-1.25rem}.mobile-lg\:margin-top-neg-205{margin-top:-1.25rem}.mobile-lg\:margin-bottom-neg-205{margin-bottom:-1.25rem}.mobile-lg\:margin-y-neg-3{margin-top:-1.5rem;margin-bottom:-1.5rem}.mobile-lg\:margin-top-neg-3{margin-top:-1.5rem}.mobile-lg\:margin-bottom-neg-3{margin-bottom:-1.5rem}.mobile-lg\:margin-y-neg-4{margin-top:-2rem;margin-bottom:-2rem}.mobile-lg\:margin-top-neg-4{margin-top:-2rem}.mobile-lg\:margin-bottom-neg-4{margin-bottom:-2rem}.mobile-lg\:margin-y-neg-5{margin-top:-2.5rem;margin-bottom:-2.5rem}.mobile-lg\:margin-top-neg-5{margin-top:-2.5rem}.mobile-lg\:margin-bottom-neg-5{margin-bottom:-2.5rem}.mobile-lg\:margin-y-neg-6{margin-top:-3rem;margin-bottom:-3rem}.mobile-lg\:margin-top-neg-6{margin-top:-3rem}.mobile-lg\:margin-bottom-neg-6{margin-bottom:-3rem}.mobile-lg\:margin-y-neg-7{margin-top:-3.5rem;margin-bottom:-3.5rem}.mobile-lg\:margin-top-neg-7{margin-top:-3.5rem}.mobile-lg\:margin-bottom-neg-7{margin-bottom:-3.5rem}.mobile-lg\:margin-y-neg-8{margin-top:-4rem;margin-bottom:-4rem}.mobile-lg\:margin-top-neg-8{margin-top:-4rem}.mobile-lg\:margin-bottom-neg-8{margin-bottom:-4rem}.mobile-lg\:margin-y-neg-9{margin-top:-4.5rem;margin-bottom:-4.5rem}.mobile-lg\:margin-top-neg-9{margin-top:-4.5rem}.mobile-lg\:margin-bottom-neg-9{margin-bottom:-4.5rem}.mobile-lg\:margin-y-neg-10{margin-top:-5rem;margin-bottom:-5rem}.mobile-lg\:margin-top-neg-10{margin-top:-5rem}.mobile-lg\:margin-bottom-neg-10{margin-bottom:-5rem}.mobile-lg\:margin-y-neg-15{margin-top:-7.5rem;margin-bottom:-7.5rem}.mobile-lg\:margin-top-neg-15{margin-top:-7.5rem}.mobile-lg\:margin-bottom-neg-15{margin-bottom:-7.5rem}.mobile-lg\:margin-y-4{margin-top:2rem;margin-bottom:2rem}.mobile-lg\:margin-top-4{margin-top:2rem}.mobile-lg\:margin-bottom-4{margin-bottom:2rem}.mobile-lg\:margin-y-5{margin-top:2.5rem;margin-bottom:2.5rem}.mobile-lg\:margin-top-5{margin-top:2.5rem}.mobile-lg\:margin-bottom-5{margin-bottom:2.5rem}.mobile-lg\:margin-y-6{margin-top:3rem;margin-bottom:3rem}.mobile-lg\:margin-top-6{margin-top:3rem}.mobile-lg\:margin-bottom-6{margin-bottom:3rem}.mobile-lg\:margin-y-7{margin-top:3.5rem;margin-bottom:3.5rem}.mobile-lg\:margin-top-7{margin-top:3.5rem}.mobile-lg\:margin-bottom-7{margin-bottom:3.5rem}.mobile-lg\:margin-y-8{margin-top:4rem;margin-bottom:4rem}.mobile-lg\:margin-top-8{margin-top:4rem}.mobile-lg\:margin-bottom-8{margin-bottom:4rem}.mobile-lg\:margin-y-9{margin-top:4.5rem;margin-bottom:4.5rem}.mobile-lg\:margin-top-9{margin-top:4.5rem}.mobile-lg\:margin-bottom-9{margin-bottom:4.5rem}.mobile-lg\:margin-y-10{margin-top:5rem;margin-bottom:5rem}.mobile-lg\:margin-top-10{margin-top:5rem}.mobile-lg\:margin-bottom-10{margin-bottom:5rem}.mobile-lg\:margin-y-15{margin-top:7.5rem;margin-bottom:7.5rem}.mobile-lg\:margin-top-15{margin-top:7.5rem}.mobile-lg\:margin-bottom-15{margin-bottom:7.5rem}.mobile-lg\:margin-y-05em{margin-top:.5em;margin-bottom:.5em}.mobile-lg\:margin-top-05em{margin-top:.5em}.mobile-lg\:margin-bottom-05em{margin-bottom:.5em}.mobile-lg\:margin-y-1em{margin-top:1em;margin-bottom:1em}.mobile-lg\:margin-top-1em{margin-top:1em}.mobile-lg\:margin-bottom-1em{margin-bottom:1em}.mobile-lg\:margin-y-105em{margin-top:1.5em;margin-bottom:1.5em}.mobile-lg\:margin-top-105em{margin-top:1.5em}.mobile-lg\:margin-bottom-105em{margin-bottom:1.5em}.mobile-lg\:margin-y-2em{margin-top:2em;margin-bottom:2em}.mobile-lg\:margin-top-2em{margin-top:2em}.mobile-lg\:margin-bottom-2em{margin-bottom:2em}.mobile-lg\:margin-y-0{margin-top:0;margin-bottom:0}.mobile-lg\:margin-top-0{margin-top:0}.mobile-lg\:margin-bottom-0{margin-bottom:0}.mobile-lg\:margin-y-auto{margin-top:auto;margin-bottom:auto}.mobile-lg\:margin-top-auto{margin-top:auto}.mobile-lg\:margin-bottom-auto{margin-bottom:auto}.mobile-lg\:margin-x-1px{margin-left:1px;margin-right:1px}.mobile-lg\:margin-right-1px{margin-right:1px}.mobile-lg\:margin-left-1px{margin-left:1px}.mobile-lg\:margin-x-2px{margin-left:2px;margin-right:2px}.mobile-lg\:margin-right-2px{margin-right:2px}.mobile-lg\:margin-left-2px{margin-left:2px}.mobile-lg\:margin-x-05{margin-left:.25rem;margin-right:.25rem}.mobile-lg\:margin-right-05{margin-right:.25rem}.mobile-lg\:margin-left-05{margin-left:.25rem}.mobile-lg\:margin-x-1{margin-left:.5rem;margin-right:.5rem}.mobile-lg\:margin-right-1{margin-right:.5rem}.mobile-lg\:margin-left-1{margin-left:.5rem}.mobile-lg\:margin-x-105{margin-left:.75rem;margin-right:.75rem}.mobile-lg\:margin-right-105{margin-right:.75rem}.mobile-lg\:margin-left-105{margin-left:.75rem}.mobile-lg\:margin-x-2{margin-left:1rem;margin-right:1rem}.mobile-lg\:margin-right-2{margin-right:1rem}.mobile-lg\:margin-left-2{margin-left:1rem}.mobile-lg\:margin-x-205{margin-left:1.25rem;margin-right:1.25rem}.mobile-lg\:margin-right-205{margin-right:1.25rem}.mobile-lg\:margin-left-205{margin-left:1.25rem}.mobile-lg\:margin-x-3{margin-left:1.5rem;margin-right:1.5rem}.mobile-lg\:margin-right-3{margin-right:1.5rem}.mobile-lg\:margin-left-3{margin-left:1.5rem}.mobile-lg\:margin-x-neg-1px{margin-left:-1px;margin-right:-1px}.mobile-lg\:margin-right-neg-1px{margin-right:-1px}.mobile-lg\:margin-left-neg-1px{margin-left:-1px}.mobile-lg\:margin-x-neg-2px{margin-left:-2px;margin-right:-2px}.mobile-lg\:margin-right-neg-2px{margin-right:-2px}.mobile-lg\:margin-left-neg-2px{margin-left:-2px}.mobile-lg\:margin-x-neg-05{margin-left:-.25rem;margin-right:-.25rem}.mobile-lg\:margin-right-neg-05{margin-right:-.25rem}.mobile-lg\:margin-left-neg-05{margin-left:-.25rem}.mobile-lg\:margin-x-neg-1{margin-left:-.5rem;margin-right:-.5rem}.mobile-lg\:margin-right-neg-1{margin-right:-.5rem}.mobile-lg\:margin-left-neg-1{margin-left:-.5rem}.mobile-lg\:margin-x-neg-105{margin-left:-.75rem;margin-right:-.75rem}.mobile-lg\:margin-right-neg-105{margin-right:-.75rem}.mobile-lg\:margin-left-neg-105{margin-left:-.75rem}.mobile-lg\:margin-x-neg-2{margin-left:-1rem;margin-right:-1rem}.mobile-lg\:margin-right-neg-2{margin-right:-1rem}.mobile-lg\:margin-left-neg-2{margin-left:-1rem}.mobile-lg\:margin-x-neg-205{margin-left:-1.25rem;margin-right:-1.25rem}.mobile-lg\:margin-right-neg-205{margin-right:-1.25rem}.mobile-lg\:margin-left-neg-205{margin-left:-1.25rem}.mobile-lg\:margin-x-neg-3{margin-left:-1.5rem;margin-right:-1.5rem}.mobile-lg\:margin-right-neg-3{margin-right:-1.5rem}.mobile-lg\:margin-left-neg-3{margin-left:-1.5rem}.mobile-lg\:margin-x-neg-4{margin-left:-2rem;margin-right:-2rem}.mobile-lg\:margin-right-neg-4{margin-right:-2rem}.mobile-lg\:margin-left-neg-4{margin-left:-2rem}.mobile-lg\:margin-x-neg-5{margin-left:-2.5rem;margin-right:-2.5rem}.mobile-lg\:margin-right-neg-5{margin-right:-2.5rem}.mobile-lg\:margin-left-neg-5{margin-left:-2.5rem}.mobile-lg\:margin-x-neg-6{margin-left:-3rem;margin-right:-3rem}.mobile-lg\:margin-right-neg-6{margin-right:-3rem}.mobile-lg\:margin-left-neg-6{margin-left:-3rem}.mobile-lg\:margin-x-neg-7{margin-left:-3.5rem;margin-right:-3.5rem}.mobile-lg\:margin-right-neg-7{margin-right:-3.5rem}.mobile-lg\:margin-left-neg-7{margin-left:-3.5rem}.mobile-lg\:margin-x-neg-8{margin-left:-4rem;margin-right:-4rem}.mobile-lg\:margin-right-neg-8{margin-right:-4rem}.mobile-lg\:margin-left-neg-8{margin-left:-4rem}.mobile-lg\:margin-x-neg-9{margin-left:-4.5rem;margin-right:-4.5rem}.mobile-lg\:margin-right-neg-9{margin-right:-4.5rem}.mobile-lg\:margin-left-neg-9{margin-left:-4.5rem}.mobile-lg\:margin-x-neg-10{margin-left:-5rem;margin-right:-5rem}.mobile-lg\:margin-right-neg-10{margin-right:-5rem}.mobile-lg\:margin-left-neg-10{margin-left:-5rem}.mobile-lg\:margin-x-neg-15{margin-left:-7.5rem;margin-right:-7.5rem}.mobile-lg\:margin-right-neg-15{margin-right:-7.5rem}.mobile-lg\:margin-left-neg-15{margin-left:-7.5rem}.mobile-lg\:margin-x-4{margin-left:2rem;margin-right:2rem}.mobile-lg\:margin-right-4{margin-right:2rem}.mobile-lg\:margin-left-4{margin-left:2rem}.mobile-lg\:margin-x-5{margin-left:2.5rem;margin-right:2.5rem}.mobile-lg\:margin-right-5{margin-right:2.5rem}.mobile-lg\:margin-left-5{margin-left:2.5rem}.mobile-lg\:margin-x-6{margin-left:3rem;margin-right:3rem}.mobile-lg\:margin-right-6{margin-right:3rem}.mobile-lg\:margin-left-6{margin-left:3rem}.mobile-lg\:margin-x-7{margin-left:3.5rem;margin-right:3.5rem}.mobile-lg\:margin-right-7{margin-right:3.5rem}.mobile-lg\:margin-left-7{margin-left:3.5rem}.mobile-lg\:margin-x-8{margin-left:4rem;margin-right:4rem}.mobile-lg\:margin-right-8{margin-right:4rem}.mobile-lg\:margin-left-8{margin-left:4rem}.mobile-lg\:margin-x-9{margin-left:4.5rem;margin-right:4.5rem}.mobile-lg\:margin-right-9{margin-right:4.5rem}.mobile-lg\:margin-left-9{margin-left:4.5rem}.mobile-lg\:margin-x-10{margin-left:5rem;margin-right:5rem}.mobile-lg\:margin-right-10{margin-right:5rem}.mobile-lg\:margin-left-10{margin-left:5rem}.mobile-lg\:margin-x-15{margin-left:7.5rem;margin-right:7.5rem}.mobile-lg\:margin-right-15{margin-right:7.5rem}.mobile-lg\:margin-left-15{margin-left:7.5rem}.mobile-lg\:margin-x-card{margin-left:10rem;margin-right:10rem}.mobile-lg\:margin-right-card{margin-right:10rem}.mobile-lg\:margin-left-card{margin-left:10rem}.mobile-lg\:margin-x-card-lg{margin-left:15rem;margin-right:15rem}.mobile-lg\:margin-right-card-lg{margin-right:15rem}.mobile-lg\:margin-left-card-lg{margin-left:15rem}.mobile-lg\:margin-x-mobile{margin-left:20rem;margin-right:20rem}.mobile-lg\:margin-right-mobile{margin-right:20rem}.mobile-lg\:margin-left-mobile{margin-left:20rem}.mobile-lg\:margin-x-05em{margin-left:.5em;margin-right:.5em}.mobile-lg\:margin-right-05em{margin-right:.5em}.mobile-lg\:margin-left-05em{margin-left:.5em}.mobile-lg\:margin-x-1em{margin-left:1em;margin-right:1em}.mobile-lg\:margin-right-1em{margin-right:1em}.mobile-lg\:margin-left-1em{margin-left:1em}.mobile-lg\:margin-x-105em{margin-left:1.5em;margin-right:1.5em}.mobile-lg\:margin-right-105em{margin-right:1.5em}.mobile-lg\:margin-left-105em{margin-left:1.5em}.mobile-lg\:margin-x-2em{margin-left:2em;margin-right:2em}.mobile-lg\:margin-right-2em{margin-right:2em}.mobile-lg\:margin-left-2em{margin-left:2em}.mobile-lg\:margin-x-0{margin-left:0;margin-right:0}.mobile-lg\:margin-right-0{margin-right:0}.mobile-lg\:margin-left-0{margin-left:0}.mobile-lg\:margin-x-auto{margin-left:auto;margin-right:auto}.mobile-lg\:margin-right-auto{margin-right:auto}.mobile-lg\:margin-left-auto{margin-left:auto}.mobile-lg\:measure-1{max-width:44ex}.mobile-lg\:measure-2{max-width:60ex}.mobile-lg\:measure-3{max-width:64ex}.mobile-lg\:measure-4{max-width:68ex}.mobile-lg\:measure-5{max-width:72ex}.mobile-lg\:measure-6{max-width:88ex}.mobile-lg\:measure-none{max-width:none}.mobile-lg\:order-first{order:-1}.mobile-lg\:order-last{order:999}.mobile-lg\:order-initial{order:initial}.mobile-lg\:order-0{order:0}.mobile-lg\:order-1{order:1}.mobile-lg\:order-2{order:2}.mobile-lg\:order-3{order:3}.mobile-lg\:order-4{order:4}.mobile-lg\:order-5{order:5}.mobile-lg\:order-6{order:6}.mobile-lg\:order-7{order:7}.mobile-lg\:order-8{order:8}.mobile-lg\:order-9{order:9}.mobile-lg\:order-10{order:10}.mobile-lg\:order-11{order:11}.mobile-lg\:padding-1px{padding:1px}.mobile-lg\:padding-y-1px{padding-top:1px;padding-bottom:1px}.mobile-lg\:padding-x-1px{padding-left:1px;padding-right:1px}.mobile-lg\:padding-top-1px{padding-top:1px}.mobile-lg\:padding-right-1px{padding-right:1px}.mobile-lg\:padding-bottom-1px{padding-bottom:1px}.mobile-lg\:padding-left-1px{padding-left:1px}.mobile-lg\:padding-2px{padding:2px}.mobile-lg\:padding-y-2px{padding-top:2px;padding-bottom:2px}.mobile-lg\:padding-x-2px{padding-left:2px;padding-right:2px}.mobile-lg\:padding-top-2px{padding-top:2px}.mobile-lg\:padding-right-2px{padding-right:2px}.mobile-lg\:padding-bottom-2px{padding-bottom:2px}.mobile-lg\:padding-left-2px{padding-left:2px}.mobile-lg\:padding-05{padding:.25rem}.mobile-lg\:padding-y-05{padding-top:.25rem;padding-bottom:.25rem}.mobile-lg\:padding-x-05{padding-left:.25rem;padding-right:.25rem}.mobile-lg\:padding-top-05{padding-top:.25rem}.mobile-lg\:padding-right-05{padding-right:.25rem}.mobile-lg\:padding-bottom-05{padding-bottom:.25rem}.mobile-lg\:padding-left-05{padding-left:.25rem}.mobile-lg\:padding-1{padding:.5rem}.mobile-lg\:padding-y-1{padding-top:.5rem;padding-bottom:.5rem}.mobile-lg\:padding-x-1{padding-left:.5rem;padding-right:.5rem}.mobile-lg\:padding-top-1{padding-top:.5rem}.mobile-lg\:padding-right-1{padding-right:.5rem}.mobile-lg\:padding-bottom-1{padding-bottom:.5rem}.mobile-lg\:padding-left-1{padding-left:.5rem}.mobile-lg\:padding-105{padding:.75rem}.mobile-lg\:padding-y-105{padding-top:.75rem;padding-bottom:.75rem}.mobile-lg\:padding-x-105{padding-left:.75rem;padding-right:.75rem}.mobile-lg\:padding-top-105{padding-top:.75rem}.mobile-lg\:padding-right-105{padding-right:.75rem}.mobile-lg\:padding-bottom-105{padding-bottom:.75rem}.mobile-lg\:padding-left-105{padding-left:.75rem}.mobile-lg\:padding-2{padding:1rem}.mobile-lg\:padding-y-2{padding-top:1rem;padding-bottom:1rem}.mobile-lg\:padding-x-2{padding-left:1rem;padding-right:1rem}.mobile-lg\:padding-top-2{padding-top:1rem}.mobile-lg\:padding-right-2{padding-right:1rem}.mobile-lg\:padding-bottom-2{padding-bottom:1rem}.mobile-lg\:padding-left-2{padding-left:1rem}.mobile-lg\:padding-205{padding:1.25rem}.mobile-lg\:padding-y-205{padding-top:1.25rem;padding-bottom:1.25rem}.mobile-lg\:padding-x-205{padding-left:1.25rem;padding-right:1.25rem}.mobile-lg\:padding-top-205{padding-top:1.25rem}.mobile-lg\:padding-right-205{padding-right:1.25rem}.mobile-lg\:padding-bottom-205{padding-bottom:1.25rem}.mobile-lg\:padding-left-205{padding-left:1.25rem}.mobile-lg\:padding-3{padding:1.5rem}.mobile-lg\:padding-y-3{padding-top:1.5rem;padding-bottom:1.5rem}.mobile-lg\:padding-x-3{padding-left:1.5rem;padding-right:1.5rem}.mobile-lg\:padding-top-3{padding-top:1.5rem}.mobile-lg\:padding-right-3{padding-right:1.5rem}.mobile-lg\:padding-bottom-3{padding-bottom:1.5rem}.mobile-lg\:padding-left-3{padding-left:1.5rem}.mobile-lg\:padding-4{padding:2rem}.mobile-lg\:padding-y-4{padding-top:2rem;padding-bottom:2rem}.mobile-lg\:padding-x-4{padding-left:2rem;padding-right:2rem}.mobile-lg\:padding-top-4{padding-top:2rem}.mobile-lg\:padding-right-4{padding-right:2rem}.mobile-lg\:padding-bottom-4{padding-bottom:2rem}.mobile-lg\:padding-left-4{padding-left:2rem}.mobile-lg\:padding-5{padding:2.5rem}.mobile-lg\:padding-y-5{padding-top:2.5rem;padding-bottom:2.5rem}.mobile-lg\:padding-x-5{padding-left:2.5rem;padding-right:2.5rem}.mobile-lg\:padding-top-5{padding-top:2.5rem}.mobile-lg\:padding-right-5{padding-right:2.5rem}.mobile-lg\:padding-bottom-5{padding-bottom:2.5rem}.mobile-lg\:padding-left-5{padding-left:2.5rem}.mobile-lg\:padding-6{padding:3rem}.mobile-lg\:padding-y-6{padding-top:3rem;padding-bottom:3rem}.mobile-lg\:padding-x-6{padding-left:3rem;padding-right:3rem}.mobile-lg\:padding-top-6{padding-top:3rem}.mobile-lg\:padding-right-6{padding-right:3rem}.mobile-lg\:padding-bottom-6{padding-bottom:3rem}.mobile-lg\:padding-left-6{padding-left:3rem}.mobile-lg\:padding-7{padding:3.5rem}.mobile-lg\:padding-y-7{padding-top:3.5rem;padding-bottom:3.5rem}.mobile-lg\:padding-x-7{padding-left:3.5rem;padding-right:3.5rem}.mobile-lg\:padding-top-7{padding-top:3.5rem}.mobile-lg\:padding-right-7{padding-right:3.5rem}.mobile-lg\:padding-bottom-7{padding-bottom:3.5rem}.mobile-lg\:padding-left-7{padding-left:3.5rem}.mobile-lg\:padding-8{padding:4rem}.mobile-lg\:padding-y-8{padding-top:4rem;padding-bottom:4rem}.mobile-lg\:padding-x-8{padding-left:4rem;padding-right:4rem}.mobile-lg\:padding-top-8{padding-top:4rem}.mobile-lg\:padding-right-8{padding-right:4rem}.mobile-lg\:padding-bottom-8{padding-bottom:4rem}.mobile-lg\:padding-left-8{padding-left:4rem}.mobile-lg\:padding-9{padding:4.5rem}.mobile-lg\:padding-y-9{padding-top:4.5rem;padding-bottom:4.5rem}.mobile-lg\:padding-x-9{padding-left:4.5rem;padding-right:4.5rem}.mobile-lg\:padding-top-9{padding-top:4.5rem}.mobile-lg\:padding-right-9{padding-right:4.5rem}.mobile-lg\:padding-bottom-9{padding-bottom:4.5rem}.mobile-lg\:padding-left-9{padding-left:4.5rem}.mobile-lg\:padding-10{padding:5rem}.mobile-lg\:padding-y-10{padding-top:5rem;padding-bottom:5rem}.mobile-lg\:padding-x-10{padding-left:5rem;padding-right:5rem}.mobile-lg\:padding-top-10{padding-top:5rem}.mobile-lg\:padding-right-10{padding-right:5rem}.mobile-lg\:padding-bottom-10{padding-bottom:5rem}.mobile-lg\:padding-left-10{padding-left:5rem}.mobile-lg\:padding-15{padding:7.5rem}.mobile-lg\:padding-y-15{padding-top:7.5rem;padding-bottom:7.5rem}.mobile-lg\:padding-x-15{padding-left:7.5rem;padding-right:7.5rem}.mobile-lg\:padding-top-15{padding-top:7.5rem}.mobile-lg\:padding-right-15{padding-right:7.5rem}.mobile-lg\:padding-bottom-15{padding-bottom:7.5rem}.mobile-lg\:padding-left-15{padding-left:7.5rem}.mobile-lg\:padding-0{padding:0}.mobile-lg\:padding-y-0{padding-top:0;padding-bottom:0}.mobile-lg\:padding-x-0{padding-left:0;padding-right:0}.mobile-lg\:padding-top-0{padding-top:0}.mobile-lg\:padding-right-0{padding-right:0}.mobile-lg\:padding-bottom-0{padding-bottom:0}.mobile-lg\:padding-left-0{padding-left:0}.mobile-lg\:width-1px{width:1px}.mobile-lg\:width-2px{width:2px}.mobile-lg\:width-05{width:.25rem}.mobile-lg\:width-1{width:.5rem}.mobile-lg\:width-105{width:.75rem}.mobile-lg\:width-2{width:1rem}.mobile-lg\:width-205{width:1.25rem}.mobile-lg\:width-3{width:1.5rem}.mobile-lg\:width-4{width:2rem}.mobile-lg\:width-5{width:2.5rem}.mobile-lg\:width-6{width:3rem}.mobile-lg\:width-7{width:3.5rem}.mobile-lg\:width-8{width:4rem}.mobile-lg\:width-9{width:4.5rem}.mobile-lg\:width-10{width:5rem}.mobile-lg\:width-15{width:7.5rem}.mobile-lg\:width-card{width:10rem}.mobile-lg\:width-card-lg{width:15rem}.mobile-lg\:width-mobile{width:20rem}.mobile-lg\:width-mobile-lg{width:30rem}.mobile-lg\:width-tablet{width:40rem}.mobile-lg\:width-tablet-lg{width:55rem}.mobile-lg\:width-desktop{width:64rem}.mobile-lg\:width-desktop-lg{width:75rem}.mobile-lg\:width-widescreen{width:87.5rem}.mobile-lg\:width-0{width:0}.mobile-lg\:width-full{width:100%}.mobile-lg\:width-auto{width:auto}}@media all and (min-width:40em){.tablet\:border-1px,.tablet\:hover\:border-1px:hover{border:1px solid}.tablet\:border-y-1px,.tablet\:hover\:border-y-1px:hover{border-top:1px solid;border-bottom:1px solid}.tablet\:border-x-1px,.tablet\:hover\:border-x-1px:hover{border-left:1px solid;border-right:1px solid}.tablet\:border-top-1px,.tablet\:hover\:border-top-1px:hover{border-top:1px solid}.tablet\:border-right-1px,.tablet\:hover\:border-right-1px:hover{border-right:1px solid}.tablet\:border-bottom-1px,.tablet\:hover\:border-bottom-1px:hover{border-bottom:1px solid}.tablet\:border-left-1px,.tablet\:hover\:border-left-1px:hover{border-left:1px solid}.tablet\:border-2px,.tablet\:hover\:border-2px:hover{border:2px solid}.tablet\:border-y-2px,.tablet\:hover\:border-y-2px:hover{border-top:2px solid;border-bottom:2px solid}.tablet\:border-x-2px,.tablet\:hover\:border-x-2px:hover{border-left:2px solid;border-right:2px solid}.tablet\:border-top-2px,.tablet\:hover\:border-top-2px:hover{border-top:2px solid}.tablet\:border-right-2px,.tablet\:hover\:border-right-2px:hover{border-right:2px solid}.tablet\:border-bottom-2px,.tablet\:hover\:border-bottom-2px:hover{border-bottom:2px solid}.tablet\:border-left-2px,.tablet\:hover\:border-left-2px:hover{border-left:2px solid}.tablet\:border-05,.tablet\:hover\:border-05:hover{border:.25rem solid}.tablet\:border-y-05,.tablet\:hover\:border-y-05:hover{border-top:.25rem solid;border-bottom:.25rem solid}.tablet\:border-x-05,.tablet\:hover\:border-x-05:hover{border-left:.25rem solid;border-right:.25rem solid}.tablet\:border-top-05,.tablet\:hover\:border-top-05:hover{border-top:.25rem solid}.tablet\:border-right-05,.tablet\:hover\:border-right-05:hover{border-right:.25rem solid}.tablet\:border-bottom-05,.tablet\:hover\:border-bottom-05:hover{border-bottom:.25rem solid}.tablet\:border-left-05,.tablet\:hover\:border-left-05:hover{border-left:.25rem solid}.tablet\:border-1,.tablet\:hover\:border-1:hover{border:.5rem solid}.tablet\:border-y-1,.tablet\:hover\:border-y-1:hover{border-top:.5rem solid;border-bottom:.5rem solid}.tablet\:border-x-1,.tablet\:hover\:border-x-1:hover{border-left:.5rem solid;border-right:.5rem solid}.tablet\:border-top-1,.tablet\:hover\:border-top-1:hover{border-top:.5rem solid}.tablet\:border-right-1,.tablet\:hover\:border-right-1:hover{border-right:.5rem solid}.tablet\:border-bottom-1,.tablet\:hover\:border-bottom-1:hover{border-bottom:.5rem solid}.tablet\:border-left-1,.tablet\:hover\:border-left-1:hover{border-left:.5rem solid}.tablet\:border-105,.tablet\:hover\:border-105:hover{border:.75rem solid}.tablet\:border-y-105,.tablet\:hover\:border-y-105:hover{border-top:.75rem solid;border-bottom:.75rem solid}.tablet\:border-x-105,.tablet\:hover\:border-x-105:hover{border-left:.75rem solid;border-right:.75rem solid}.tablet\:border-top-105,.tablet\:hover\:border-top-105:hover{border-top:.75rem solid}.tablet\:border-right-105,.tablet\:hover\:border-right-105:hover{border-right:.75rem solid}.tablet\:border-bottom-105,.tablet\:hover\:border-bottom-105:hover{border-bottom:.75rem solid}.tablet\:border-left-105,.tablet\:hover\:border-left-105:hover{border-left:.75rem solid}.tablet\:border-2,.tablet\:hover\:border-2:hover{border:1rem solid}.tablet\:border-y-2,.tablet\:hover\:border-y-2:hover{border-top:1rem solid;border-bottom:1rem solid}.tablet\:border-x-2,.tablet\:hover\:border-x-2:hover{border-left:1rem solid;border-right:1rem solid}.tablet\:border-top-2,.tablet\:hover\:border-top-2:hover{border-top:1rem solid}.tablet\:border-right-2,.tablet\:hover\:border-right-2:hover{border-right:1rem solid}.tablet\:border-bottom-2,.tablet\:hover\:border-bottom-2:hover{border-bottom:1rem solid}.tablet\:border-left-2,.tablet\:hover\:border-left-2:hover{border-left:1rem solid}.tablet\:border-205,.tablet\:hover\:border-205:hover{border:1.25rem solid}.tablet\:border-y-205,.tablet\:hover\:border-y-205:hover{border-top:1.25rem solid;border-bottom:1.25rem solid}.tablet\:border-x-205,.tablet\:hover\:border-x-205:hover{border-left:1.25rem solid;border-right:1.25rem solid}.tablet\:border-top-205,.tablet\:hover\:border-top-205:hover{border-top:1.25rem solid}.tablet\:border-right-205,.tablet\:hover\:border-right-205:hover{border-right:1.25rem solid}.tablet\:border-bottom-205,.tablet\:hover\:border-bottom-205:hover{border-bottom:1.25rem solid}.tablet\:border-left-205,.tablet\:hover\:border-left-205:hover{border-left:1.25rem solid}.tablet\:border-3,.tablet\:hover\:border-3:hover{border:1.5rem solid}.tablet\:border-y-3,.tablet\:hover\:border-y-3:hover{border-top:1.5rem solid;border-bottom:1.5rem solid}.tablet\:border-x-3,.tablet\:hover\:border-x-3:hover{border-left:1.5rem solid;border-right:1.5rem solid}.tablet\:border-top-3,.tablet\:hover\:border-top-3:hover{border-top:1.5rem solid}.tablet\:border-right-3,.tablet\:hover\:border-right-3:hover{border-right:1.5rem solid}.tablet\:border-bottom-3,.tablet\:hover\:border-bottom-3:hover{border-bottom:1.5rem solid}.tablet\:border-left-3,.tablet\:hover\:border-left-3:hover{border-left:1.5rem solid}.tablet\:border-0,.tablet\:hover\:border-0:hover{border:0 solid}.tablet\:border-y-0,.tablet\:hover\:border-y-0:hover{border-top:0 solid;border-bottom:0 solid}.tablet\:border-x-0,.tablet\:hover\:border-x-0:hover{border-left:0 solid;border-right:0 solid}.tablet\:border-top-0,.tablet\:hover\:border-top-0:hover{border-top:0 solid}.tablet\:border-right-0,.tablet\:hover\:border-right-0:hover{border-right:0 solid}.tablet\:border-bottom-0,.tablet\:hover\:border-bottom-0:hover{border-bottom:0 solid}.tablet\:border-left-0,.tablet\:hover\:border-left-0:hover{border-left:0 solid}.tablet\:border,.tablet\:hover\:border:hover{border:1px solid}.tablet\:border-y,.tablet\:hover\:border-y:hover{border-top:1px solid;border-bottom:1px solid}.tablet\:border-x,.tablet\:hover\:border-x:hover{border-left:1px solid;border-right:1px solid}.tablet\:border-top,.tablet\:hover\:border-top:hover{border-top:1px solid}.tablet\:border-right,.tablet\:hover\:border-right:hover{border-right:1px solid}.tablet\:border-bottom,.tablet\:hover\:border-bottom:hover{border-bottom:1px solid}.tablet\:border-left,.tablet\:hover\:border-left:hover{border-left:1px solid}.tablet\:border-transparent,.tablet\:hover\:border-transparent:hover{border-color:transparent}.tablet\:border-black,.tablet\:hover\:border-black:hover{border-color:#000}.tablet\:border-white,.tablet\:hover\:border-white:hover{border-color:#fff}.tablet\:border-red,.tablet\:hover\:border-red:hover{border-color:#e52207}.tablet\:border-orange,.tablet\:hover\:border-orange:hover{border-color:#e66f0e}.tablet\:border-gold,.tablet\:hover\:border-gold:hover{border-color:#ffbe2e}.tablet\:border-yellow,.tablet\:hover\:border-yellow:hover{border-color:#fee685}.tablet\:border-green,.tablet\:hover\:border-green:hover{border-color:#538200}.tablet\:border-mint,.tablet\:hover\:border-mint:hover{border-color:#04c585}.tablet\:border-cyan,.tablet\:hover\:border-cyan:hover{border-color:#009ec1}.tablet\:border-blue,.tablet\:hover\:border-blue:hover{border-color:#0076d6}.tablet\:border-indigo,.tablet\:hover\:border-indigo:hover{border-color:#676cc8}.tablet\:border-violet,.tablet\:hover\:border-violet:hover{border-color:#8168b3}.tablet\:border-magenta,.tablet\:hover\:border-magenta:hover{border-color:#d72d79}.tablet\:border-gray-5,.tablet\:hover\:border-gray-5:hover{border-color:#f0f0f0}.tablet\:border-gray-10,.tablet\:hover\:border-gray-10:hover{border-color:#e6e6e6}.tablet\:border-gray-30,.tablet\:hover\:border-gray-30:hover{border-color:#adadad}.tablet\:border-gray-50,.tablet\:hover\:border-gray-50:hover{border-color:#757575}.tablet\:border-gray-70,.tablet\:hover\:border-gray-70:hover{border-color:#454545}.tablet\:border-gray-90,.tablet\:hover\:border-gray-90:hover{border-color:#1b1b1b}.tablet\:border-base-lightest,.tablet\:hover\:border-base-lightest:hover{border-color:#f0f0f0}.tablet\:border-base-lighter,.tablet\:hover\:border-base-lighter:hover{border-color:#dfe1e2}.tablet\:border-base-light,.tablet\:hover\:border-base-light:hover{border-color:#a9aeb1}.tablet\:border-base,.tablet\:hover\:border-base:hover{border-color:#71767a}.tablet\:border-base-dark,.tablet\:hover\:border-base-dark:hover{border-color:#565c65}.tablet\:border-base-darker,.tablet\:hover\:border-base-darker:hover{border-color:#3d4551}.tablet\:border-base-darkest,.tablet\:border-ink,.tablet\:hover\:border-base-darkest:hover,.tablet\:hover\:border-ink:hover{border-color:#1b1b1b}.tablet\:border-primary-lighter,.tablet\:hover\:border-primary-lighter:hover{border-color:#d9e8f6}.tablet\:border-primary-light,.tablet\:hover\:border-primary-light:hover{border-color:#73b3e7}.tablet\:border-primary,.tablet\:hover\:border-primary:hover{border-color:#005ea2}.tablet\:border-primary-vivid,.tablet\:hover\:border-primary-vivid:hover{border-color:#0050d8}.tablet\:border-primary-dark,.tablet\:hover\:border-primary-dark:hover{border-color:#1a4480}.tablet\:border-primary-darker,.tablet\:hover\:border-primary-darker:hover{border-color:#162e51}.tablet\:border-secondary-lighter,.tablet\:hover\:border-secondary-lighter:hover{border-color:#f3e1e4}.tablet\:border-secondary-light,.tablet\:hover\:border-secondary-light:hover{border-color:#f2938c}.tablet\:border-secondary,.tablet\:hover\:border-secondary:hover{border-color:#d83933}.tablet\:border-secondary-vivid,.tablet\:hover\:border-secondary-vivid:hover{border-color:#e41d3d}.tablet\:border-secondary-dark,.tablet\:hover\:border-secondary-dark:hover{border-color:#b50909}.tablet\:border-secondary-darker,.tablet\:hover\:border-secondary-darker:hover{border-color:#8b0a03}.tablet\:border-accent-warm-darker,.tablet\:hover\:border-accent-warm-darker:hover{border-color:#775540}.tablet\:border-accent-warm-dark,.tablet\:hover\:border-accent-warm-dark:hover{border-color:#c05600}.tablet\:border-accent-warm,.tablet\:hover\:border-accent-warm:hover{border-color:#fa9441}.tablet\:border-accent-warm-light,.tablet\:hover\:border-accent-warm-light:hover{border-color:#ffbc78}.tablet\:border-accent-warm-lighter,.tablet\:hover\:border-accent-warm-lighter:hover{border-color:#f2e4d4}.tablet\:border-accent-cool-darker,.tablet\:hover\:border-accent-cool-darker:hover{border-color:#07648d}.tablet\:border-accent-cool-dark,.tablet\:hover\:border-accent-cool-dark:hover{border-color:#28a0cb}.tablet\:border-accent-cool,.tablet\:hover\:border-accent-cool:hover{border-color:#00bde3}.tablet\:border-accent-cool-light,.tablet\:hover\:border-accent-cool-light:hover{border-color:#97d4ea}.tablet\:border-accent-cool-lighter,.tablet\:hover\:border-accent-cool-lighter:hover{border-color:#e1f3f8}.tablet\:border-error-lighter,.tablet\:hover\:border-error-lighter:hover{border-color:#f4e3db}.tablet\:border-error-light,.tablet\:hover\:border-error-light:hover{border-color:#f39268}.tablet\:border-error,.tablet\:hover\:border-error:hover{border-color:#d54309}.tablet\:border-error-dark,.tablet\:hover\:border-error-dark:hover{border-color:#b50909}.tablet\:border-error-darker,.tablet\:hover\:border-error-darker:hover{border-color:#6f3331}.tablet\:border-warning-lighter,.tablet\:hover\:border-warning-lighter:hover{border-color:#faf3d1}.tablet\:border-warning-light,.tablet\:hover\:border-warning-light:hover{border-color:#fee685}.tablet\:border-warning,.tablet\:hover\:border-warning:hover{border-color:#ffbe2e}.tablet\:border-warning-dark,.tablet\:hover\:border-warning-dark:hover{border-color:#e5a000}.tablet\:border-warning-darker,.tablet\:hover\:border-warning-darker:hover{border-color:#936f38}.tablet\:border-success-lighter,.tablet\:hover\:border-success-lighter:hover{border-color:#ecf3ec}.tablet\:border-success-light,.tablet\:hover\:border-success-light:hover{border-color:#70e17b}.tablet\:border-success,.tablet\:hover\:border-success:hover{border-color:#00a91c}.tablet\:border-success-dark,.tablet\:hover\:border-success-dark:hover{border-color:#008817}.tablet\:border-success-darker,.tablet\:hover\:border-success-darker:hover{border-color:#216e1f}.tablet\:border-info-lighter,.tablet\:hover\:border-info-lighter:hover{border-color:#e7f6f8}.tablet\:border-info-light,.tablet\:hover\:border-info-light:hover{border-color:#99deea}.tablet\:border-info,.tablet\:hover\:border-info:hover{border-color:#00bde3}.tablet\:border-info-dark,.tablet\:hover\:border-info-dark:hover{border-color:#009ec1}.tablet\:border-info-darker,.tablet\:hover\:border-info-darker:hover{border-color:#2e6276}.tablet\:border-disabled-lighter,.tablet\:hover\:border-disabled-lighter:hover{border-color:#c9c9c9}.tablet\:border-disabled-light,.tablet\:hover\:border-disabled-light:hover{border-color:#919191}.tablet\:border-disabled,.tablet\:hover\:border-disabled:hover{border-color:#757575}.tablet\:border-disabled-dark,.tablet\:hover\:border-disabled-dark:hover{border-color:#454545}.tablet\:border-disabled-darker,.tablet\:hover\:border-disabled-darker:hover{border-color:#1b1b1b}.tablet\:border-emergency,.tablet\:hover\:border-emergency:hover{border-color:#9c3d10}.tablet\:border-emergency-dark,.tablet\:hover\:border-emergency-dark:hover{border-color:#332d29}.tablet\:radius-0{border-radius:0}.tablet\:radius-top-0{border-top-left-radius:0;border-top-right-radius:0}.tablet\:radius-right-0{border-top-right-radius:0;border-bottom-right-radius:0}.tablet\:radius-bottom-0{border-bottom-left-radius:0;border-bottom-right-radius:0}.tablet\:radius-left-0{border-top-left-radius:0;border-bottom-left-radius:0}.tablet\:radius-sm{border-radius:2px}.tablet\:radius-top-sm{border-top-left-radius:2px;border-top-right-radius:2px}.tablet\:radius-right-sm{border-top-right-radius:2px;border-bottom-right-radius:2px}.tablet\:radius-bottom-sm{border-bottom-left-radius:2px;border-bottom-right-radius:2px}.tablet\:radius-left-sm{border-top-left-radius:2px;border-bottom-left-radius:2px}.tablet\:radius-md{border-radius:.25rem}.tablet\:radius-top-md{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.tablet\:radius-right-md{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.tablet\:radius-bottom-md{border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}.tablet\:radius-left-md{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.tablet\:radius-lg{border-radius:.5rem}.tablet\:radius-top-lg{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.tablet\:radius-right-lg{border-top-right-radius:.5rem;border-bottom-right-radius:.5rem}.tablet\:radius-bottom-lg{border-bottom-left-radius:.5rem;border-bottom-right-radius:.5rem}.tablet\:radius-left-lg{border-top-left-radius:.5rem;border-bottom-left-radius:.5rem}.tablet\:radius-pill{border-radius:99rem}.tablet\:radius-top-pill{border-top-left-radius:99rem;border-top-right-radius:99rem}.tablet\:radius-right-pill{border-top-right-radius:99rem;border-bottom-right-radius:99rem}.tablet\:radius-bottom-pill{border-bottom-left-radius:99rem;border-bottom-right-radius:99rem}.tablet\:radius-left-pill{border-top-left-radius:99rem;border-bottom-left-radius:99rem}.tablet\:display-block{display:block}.tablet\:display-flex{display:flex}.tablet\:display-none{display:none}.tablet\:display-inline{display:inline}.tablet\:display-inline-block{display:inline-block}.tablet\:display-inline-flex{display:inline-flex}.tablet\:display-table{display:table}.tablet\:display-table-cell{display:table-cell}.tablet\:display-table-row{display:table-row}.tablet\:font-mono-3xs{font-size:.77rem}.tablet\:font-mono-2xs{font-size:.83rem}.tablet\:font-mono-xs{font-size:.89rem}.tablet\:font-mono-sm{font-size:.95rem}.tablet\:font-mono-md{font-size:1.01rem}.tablet\:font-mono-lg{font-size:1.31rem}.tablet\:font-mono-xl{font-size:1.91rem}.tablet\:font-mono-2xl{font-size:2.38rem}.tablet\:font-mono-3xl{font-size:2.86rem}.tablet\:font-sans-3xs{font-size:.87rem}.tablet\:font-sans-2xs{font-size:.93rem}.tablet\:font-sans-xs{font-size:1rem}.tablet\:font-sans-sm{font-size:1.06rem}.tablet\:font-sans-md{font-size:1.13rem}.tablet\:font-sans-lg{font-size:1.46rem}.tablet\:font-sans-xl{font-size:2.13rem}.tablet\:font-sans-2xl{font-size:2.66rem}.tablet\:font-sans-3xl{font-size:3.19rem}.tablet\:font-serif-3xs{font-size:.79rem}.tablet\:font-serif-2xs{font-size:.85rem}.tablet\:font-serif-xs{font-size:.91rem}.tablet\:font-serif-sm{font-size:.98rem}.tablet\:font-serif-md{font-size:1.04rem}.tablet\:font-serif-lg{font-size:1.34rem}.tablet\:font-serif-xl{font-size:1.95rem}.tablet\:font-serif-2xl{font-size:2.44rem}.tablet\:font-serif-3xl{font-size:2.93rem}.tablet\:font-heading-3xs{font-size:.79rem}.tablet\:font-heading-2xs{font-size:.85rem}.tablet\:font-heading-xs{font-size:.91rem}.tablet\:font-heading-sm{font-size:.98rem}.tablet\:font-heading-md{font-size:1.04rem}.tablet\:font-heading-lg{font-size:1.34rem}.tablet\:font-heading-xl{font-size:1.95rem}.tablet\:font-heading-2xl{font-size:2.44rem}.tablet\:font-heading-3xl{font-size:2.93rem}.tablet\:font-body-3xs{font-size:.87rem}.tablet\:font-body-2xs{font-size:.93rem}.tablet\:font-body-xs{font-size:1rem}.tablet\:font-body-sm{font-size:1.06rem}.tablet\:font-body-md{font-size:1.13rem}.tablet\:font-body-lg{font-size:1.46rem}.tablet\:font-body-xl{font-size:2.13rem}.tablet\:font-body-2xl{font-size:2.66rem}.tablet\:font-body-3xl{font-size:3.19rem}.tablet\:font-code-3xs{font-size:.77rem}.tablet\:font-code-2xs{font-size:.83rem}.tablet\:font-code-xs{font-size:.89rem}.tablet\:font-code-sm{font-size:.95rem}.tablet\:font-code-md{font-size:1.01rem}.tablet\:font-code-lg{font-size:1.31rem}.tablet\:font-code-xl{font-size:1.91rem}.tablet\:font-code-2xl{font-size:2.38rem}.tablet\:font-code-3xl{font-size:2.86rem}.tablet\:font-alt-3xs{font-size:.79rem}.tablet\:font-alt-2xs{font-size:.85rem}.tablet\:font-alt-xs{font-size:.91rem}.tablet\:font-alt-sm{font-size:.98rem}.tablet\:font-alt-md{font-size:1.04rem}.tablet\:font-alt-lg{font-size:1.34rem}.tablet\:font-alt-xl{font-size:1.95rem}.tablet\:font-alt-2xl{font-size:2.44rem}.tablet\:font-alt-3xl{font-size:2.93rem}.tablet\:font-ui-3xs{font-size:.87rem}.tablet\:font-ui-2xs{font-size:.93rem}.tablet\:font-ui-xs{font-size:1rem}.tablet\:font-ui-sm{font-size:1.06rem}.tablet\:font-ui-md{font-size:1.13rem}.tablet\:font-ui-lg{font-size:1.46rem}.tablet\:font-ui-xl{font-size:2.13rem}.tablet\:font-ui-2xl{font-size:2.66rem}.tablet\:font-ui-3xl{font-size:3.19rem}.tablet\:text-light{font-weight:300}.tablet\:text-normal{font-weight:400}.tablet\:text-bold{font-weight:700}.tablet\:flex-justify-center{justify-content:center}.tablet\:flex-justify-start{justify-content:flex-start}.tablet\:flex-justify-end{justify-content:flex-end}.tablet\:flex-justify{justify-content:space-between}.tablet\:line-height-sans-1{line-height:.9}.tablet\:line-height-sans-2{line-height:1.1}.tablet\:line-height-sans-3{line-height:1.3}.tablet\:line-height-sans-4{line-height:1.4}.tablet\:line-height-sans-5{line-height:1.5}.tablet\:line-height-sans-6{line-height:1.6}.tablet\:line-height-serif-1{line-height:1}.tablet\:line-height-serif-2{line-height:1.2}.tablet\:line-height-serif-3{line-height:1.4}.tablet\:line-height-serif-4{line-height:1.5}.tablet\:line-height-serif-5{line-height:1.7}.tablet\:line-height-serif-6{line-height:1.8}.tablet\:line-height-mono-1{line-height:1}.tablet\:line-height-mono-2{line-height:1.3}.tablet\:line-height-mono-3{line-height:1.4}.tablet\:line-height-mono-4{line-height:1.6}.tablet\:line-height-mono-5{line-height:1.7}.tablet\:line-height-mono-6{line-height:1.8}.tablet\:line-height-heading-1{line-height:1}.tablet\:line-height-heading-2{line-height:1.2}.tablet\:line-height-heading-3{line-height:1.4}.tablet\:line-height-heading-4{line-height:1.5}.tablet\:line-height-heading-5{line-height:1.7}.tablet\:line-height-heading-6{line-height:1.8}.tablet\:line-height-ui-1{line-height:.9}.tablet\:line-height-ui-2{line-height:1.1}.tablet\:line-height-ui-3{line-height:1.3}.tablet\:line-height-ui-4{line-height:1.4}.tablet\:line-height-ui-5{line-height:1.5}.tablet\:line-height-ui-6{line-height:1.6}.tablet\:line-height-body-1{line-height:.9}.tablet\:line-height-body-2{line-height:1.1}.tablet\:line-height-body-3{line-height:1.3}.tablet\:line-height-body-4{line-height:1.4}.tablet\:line-height-body-5{line-height:1.5}.tablet\:line-height-body-6{line-height:1.6}.tablet\:line-height-code-1{line-height:1}.tablet\:line-height-code-2{line-height:1.3}.tablet\:line-height-code-3{line-height:1.4}.tablet\:line-height-code-4{line-height:1.6}.tablet\:line-height-code-5{line-height:1.7}.tablet\:line-height-code-6{line-height:1.8}.tablet\:line-height-alt-1{line-height:1}.tablet\:line-height-alt-2{line-height:1.2}.tablet\:line-height-alt-3{line-height:1.4}.tablet\:line-height-alt-4{line-height:1.5}.tablet\:line-height-alt-5{line-height:1.7}.tablet\:line-height-alt-6{line-height:1.8}.tablet\:margin-neg-1px{margin:-1px}.tablet\:margin-neg-2px{margin:-2px}.tablet\:margin-neg-05{margin:-.25rem}.tablet\:margin-neg-1{margin:-.5rem}.tablet\:margin-neg-105{margin:-.75rem}.tablet\:margin-neg-2{margin:-1rem}.tablet\:margin-neg-205{margin:-1.25rem}.tablet\:margin-neg-3{margin:-1.5rem}.tablet\:margin-1px{margin:1px}.tablet\:margin-2px{margin:2px}.tablet\:margin-05{margin:.25rem}.tablet\:margin-1{margin:.5rem}.tablet\:margin-105{margin:.75rem}.tablet\:margin-2{margin:1rem}.tablet\:margin-205{margin:1.25rem}.tablet\:margin-3{margin:1.5rem}.tablet\:margin-neg-4{margin:-2rem}.tablet\:margin-neg-5{margin:-2.5rem}.tablet\:margin-neg-6{margin:-3rem}.tablet\:margin-neg-7{margin:-3.5rem}.tablet\:margin-neg-8{margin:-4rem}.tablet\:margin-neg-9{margin:-4.5rem}.tablet\:margin-neg-10{margin:-5rem}.tablet\:margin-neg-15{margin:-7.5rem}.tablet\:margin-4{margin:2rem}.tablet\:margin-5{margin:2.5rem}.tablet\:margin-6{margin:3rem}.tablet\:margin-7{margin:3.5rem}.tablet\:margin-8{margin:4rem}.tablet\:margin-9{margin:4.5rem}.tablet\:margin-10{margin:5rem}.tablet\:margin-15{margin:7.5rem}.tablet\:margin-05em{margin:.5em}.tablet\:margin-1em{margin:1em}.tablet\:margin-105em{margin:1.5em}.tablet\:margin-2em{margin:2em}.tablet\:margin-0{margin:0}.tablet\:margin-y-1px{margin-top:1px;margin-bottom:1px}.tablet\:margin-top-1px{margin-top:1px}.tablet\:margin-bottom-1px{margin-bottom:1px}.tablet\:margin-y-2px{margin-top:2px;margin-bottom:2px}.tablet\:margin-top-2px{margin-top:2px}.tablet\:margin-bottom-2px{margin-bottom:2px}.tablet\:margin-y-05{margin-top:.25rem;margin-bottom:.25rem}.tablet\:margin-top-05{margin-top:.25rem}.tablet\:margin-bottom-05{margin-bottom:.25rem}.tablet\:margin-y-1{margin-top:.5rem;margin-bottom:.5rem}.tablet\:margin-top-1{margin-top:.5rem}.tablet\:margin-bottom-1{margin-bottom:.5rem}.tablet\:margin-y-105{margin-top:.75rem;margin-bottom:.75rem}.tablet\:margin-top-105{margin-top:.75rem}.tablet\:margin-bottom-105{margin-bottom:.75rem}.tablet\:margin-y-2{margin-top:1rem;margin-bottom:1rem}.tablet\:margin-top-2{margin-top:1rem}.tablet\:margin-bottom-2{margin-bottom:1rem}.tablet\:margin-y-205{margin-top:1.25rem;margin-bottom:1.25rem}.tablet\:margin-top-205{margin-top:1.25rem}.tablet\:margin-bottom-205{margin-bottom:1.25rem}.tablet\:margin-y-3{margin-top:1.5rem;margin-bottom:1.5rem}.tablet\:margin-top-3{margin-top:1.5rem}.tablet\:margin-bottom-3{margin-bottom:1.5rem}.tablet\:margin-y-neg-1px{margin-top:-1px;margin-bottom:-1px}.tablet\:margin-top-neg-1px{margin-top:-1px}.tablet\:margin-bottom-neg-1px{margin-bottom:-1px}.tablet\:margin-y-neg-2px{margin-top:-2px;margin-bottom:-2px}.tablet\:margin-top-neg-2px{margin-top:-2px}.tablet\:margin-bottom-neg-2px{margin-bottom:-2px}.tablet\:margin-y-neg-05{margin-top:-.25rem;margin-bottom:-.25rem}.tablet\:margin-top-neg-05{margin-top:-.25rem}.tablet\:margin-bottom-neg-05{margin-bottom:-.25rem}.tablet\:margin-y-neg-1{margin-top:-.5rem;margin-bottom:-.5rem}.tablet\:margin-top-neg-1{margin-top:-.5rem}.tablet\:margin-bottom-neg-1{margin-bottom:-.5rem}.tablet\:margin-y-neg-105{margin-top:-.75rem;margin-bottom:-.75rem}.tablet\:margin-top-neg-105{margin-top:-.75rem}.tablet\:margin-bottom-neg-105{margin-bottom:-.75rem}.tablet\:margin-y-neg-2{margin-top:-1rem;margin-bottom:-1rem}.tablet\:margin-top-neg-2{margin-top:-1rem}.tablet\:margin-bottom-neg-2{margin-bottom:-1rem}.tablet\:margin-y-neg-205{margin-top:-1.25rem;margin-bottom:-1.25rem}.tablet\:margin-top-neg-205{margin-top:-1.25rem}.tablet\:margin-bottom-neg-205{margin-bottom:-1.25rem}.tablet\:margin-y-neg-3{margin-top:-1.5rem;margin-bottom:-1.5rem}.tablet\:margin-top-neg-3{margin-top:-1.5rem}.tablet\:margin-bottom-neg-3{margin-bottom:-1.5rem}.tablet\:margin-y-neg-4{margin-top:-2rem;margin-bottom:-2rem}.tablet\:margin-top-neg-4{margin-top:-2rem}.tablet\:margin-bottom-neg-4{margin-bottom:-2rem}.tablet\:margin-y-neg-5{margin-top:-2.5rem;margin-bottom:-2.5rem}.tablet\:margin-top-neg-5{margin-top:-2.5rem}.tablet\:margin-bottom-neg-5{margin-bottom:-2.5rem}.tablet\:margin-y-neg-6{margin-top:-3rem;margin-bottom:-3rem}.tablet\:margin-top-neg-6{margin-top:-3rem}.tablet\:margin-bottom-neg-6{margin-bottom:-3rem}.tablet\:margin-y-neg-7{margin-top:-3.5rem;margin-bottom:-3.5rem}.tablet\:margin-top-neg-7{margin-top:-3.5rem}.tablet\:margin-bottom-neg-7{margin-bottom:-3.5rem}.tablet\:margin-y-neg-8{margin-top:-4rem;margin-bottom:-4rem}.tablet\:margin-top-neg-8{margin-top:-4rem}.tablet\:margin-bottom-neg-8{margin-bottom:-4rem}.tablet\:margin-y-neg-9{margin-top:-4.5rem;margin-bottom:-4.5rem}.tablet\:margin-top-neg-9{margin-top:-4.5rem}.tablet\:margin-bottom-neg-9{margin-bottom:-4.5rem}.tablet\:margin-y-neg-10{margin-top:-5rem;margin-bottom:-5rem}.tablet\:margin-top-neg-10{margin-top:-5rem}.tablet\:margin-bottom-neg-10{margin-bottom:-5rem}.tablet\:margin-y-neg-15{margin-top:-7.5rem;margin-bottom:-7.5rem}.tablet\:margin-top-neg-15{margin-top:-7.5rem}.tablet\:margin-bottom-neg-15{margin-bottom:-7.5rem}.tablet\:margin-y-4{margin-top:2rem;margin-bottom:2rem}.tablet\:margin-top-4{margin-top:2rem}.tablet\:margin-bottom-4{margin-bottom:2rem}.tablet\:margin-y-5{margin-top:2.5rem;margin-bottom:2.5rem}.tablet\:margin-top-5{margin-top:2.5rem}.tablet\:margin-bottom-5{margin-bottom:2.5rem}.tablet\:margin-y-6{margin-top:3rem;margin-bottom:3rem}.tablet\:margin-top-6{margin-top:3rem}.tablet\:margin-bottom-6{margin-bottom:3rem}.tablet\:margin-y-7{margin-top:3.5rem;margin-bottom:3.5rem}.tablet\:margin-top-7{margin-top:3.5rem}.tablet\:margin-bottom-7{margin-bottom:3.5rem}.tablet\:margin-y-8{margin-top:4rem;margin-bottom:4rem}.tablet\:margin-top-8{margin-top:4rem}.tablet\:margin-bottom-8{margin-bottom:4rem}.tablet\:margin-y-9{margin-top:4.5rem;margin-bottom:4.5rem}.tablet\:margin-top-9{margin-top:4.5rem}.tablet\:margin-bottom-9{margin-bottom:4.5rem}.tablet\:margin-y-10{margin-top:5rem;margin-bottom:5rem}.tablet\:margin-top-10{margin-top:5rem}.tablet\:margin-bottom-10{margin-bottom:5rem}.tablet\:margin-y-15{margin-top:7.5rem;margin-bottom:7.5rem}.tablet\:margin-top-15{margin-top:7.5rem}.tablet\:margin-bottom-15{margin-bottom:7.5rem}.tablet\:margin-y-05em{margin-top:.5em;margin-bottom:.5em}.tablet\:margin-top-05em{margin-top:.5em}.tablet\:margin-bottom-05em{margin-bottom:.5em}.tablet\:margin-y-1em{margin-top:1em;margin-bottom:1em}.tablet\:margin-top-1em{margin-top:1em}.tablet\:margin-bottom-1em{margin-bottom:1em}.tablet\:margin-y-105em{margin-top:1.5em;margin-bottom:1.5em}.tablet\:margin-top-105em{margin-top:1.5em}.tablet\:margin-bottom-105em{margin-bottom:1.5em}.tablet\:margin-y-2em{margin-top:2em;margin-bottom:2em}.tablet\:margin-top-2em{margin-top:2em}.tablet\:margin-bottom-2em{margin-bottom:2em}.tablet\:margin-y-0{margin-top:0;margin-bottom:0}.tablet\:margin-top-0{margin-top:0}.tablet\:margin-bottom-0{margin-bottom:0}.tablet\:margin-y-auto{margin-top:auto;margin-bottom:auto}.tablet\:margin-top-auto{margin-top:auto}.tablet\:margin-bottom-auto{margin-bottom:auto}.tablet\:margin-x-1px{margin-left:1px;margin-right:1px}.tablet\:margin-right-1px{margin-right:1px}.tablet\:margin-left-1px{margin-left:1px}.tablet\:margin-x-2px{margin-left:2px;margin-right:2px}.tablet\:margin-right-2px{margin-right:2px}.tablet\:margin-left-2px{margin-left:2px}.tablet\:margin-x-05{margin-left:.25rem;margin-right:.25rem}.tablet\:margin-right-05{margin-right:.25rem}.tablet\:margin-left-05{margin-left:.25rem}.tablet\:margin-x-1{margin-left:.5rem;margin-right:.5rem}.tablet\:margin-right-1{margin-right:.5rem}.tablet\:margin-left-1{margin-left:.5rem}.tablet\:margin-x-105{margin-left:.75rem;margin-right:.75rem}.tablet\:margin-right-105{margin-right:.75rem}.tablet\:margin-left-105{margin-left:.75rem}.tablet\:margin-x-2{margin-left:1rem;margin-right:1rem}.tablet\:margin-right-2{margin-right:1rem}.tablet\:margin-left-2{margin-left:1rem}.tablet\:margin-x-205{margin-left:1.25rem;margin-right:1.25rem}.tablet\:margin-right-205{margin-right:1.25rem}.tablet\:margin-left-205{margin-left:1.25rem}.tablet\:margin-x-3{margin-left:1.5rem;margin-right:1.5rem}.tablet\:margin-right-3{margin-right:1.5rem}.tablet\:margin-left-3{margin-left:1.5rem}.tablet\:margin-x-neg-1px{margin-left:-1px;margin-right:-1px}.tablet\:margin-right-neg-1px{margin-right:-1px}.tablet\:margin-left-neg-1px{margin-left:-1px}.tablet\:margin-x-neg-2px{margin-left:-2px;margin-right:-2px}.tablet\:margin-right-neg-2px{margin-right:-2px}.tablet\:margin-left-neg-2px{margin-left:-2px}.tablet\:margin-x-neg-05{margin-left:-.25rem;margin-right:-.25rem}.tablet\:margin-right-neg-05{margin-right:-.25rem}.tablet\:margin-left-neg-05{margin-left:-.25rem}.tablet\:margin-x-neg-1{margin-left:-.5rem;margin-right:-.5rem}.tablet\:margin-right-neg-1{margin-right:-.5rem}.tablet\:margin-left-neg-1{margin-left:-.5rem}.tablet\:margin-x-neg-105{margin-left:-.75rem;margin-right:-.75rem}.tablet\:margin-right-neg-105{margin-right:-.75rem}.tablet\:margin-left-neg-105{margin-left:-.75rem}.tablet\:margin-x-neg-2{margin-left:-1rem;margin-right:-1rem}.tablet\:margin-right-neg-2{margin-right:-1rem}.tablet\:margin-left-neg-2{margin-left:-1rem}.tablet\:margin-x-neg-205{margin-left:-1.25rem;margin-right:-1.25rem}.tablet\:margin-right-neg-205{margin-right:-1.25rem}.tablet\:margin-left-neg-205{margin-left:-1.25rem}.tablet\:margin-x-neg-3{margin-left:-1.5rem;margin-right:-1.5rem}.tablet\:margin-right-neg-3{margin-right:-1.5rem}.tablet\:margin-left-neg-3{margin-left:-1.5rem}.tablet\:margin-x-neg-4{margin-left:-2rem;margin-right:-2rem}.tablet\:margin-right-neg-4{margin-right:-2rem}.tablet\:margin-left-neg-4{margin-left:-2rem}.tablet\:margin-x-neg-5{margin-left:-2.5rem;margin-right:-2.5rem}.tablet\:margin-right-neg-5{margin-right:-2.5rem}.tablet\:margin-left-neg-5{margin-left:-2.5rem}.tablet\:margin-x-neg-6{margin-left:-3rem;margin-right:-3rem}.tablet\:margin-right-neg-6{margin-right:-3rem}.tablet\:margin-left-neg-6{margin-left:-3rem}.tablet\:margin-x-neg-7{margin-left:-3.5rem;margin-right:-3.5rem}.tablet\:margin-right-neg-7{margin-right:-3.5rem}.tablet\:margin-left-neg-7{margin-left:-3.5rem}.tablet\:margin-x-neg-8{margin-left:-4rem;margin-right:-4rem}.tablet\:margin-right-neg-8{margin-right:-4rem}.tablet\:margin-left-neg-8{margin-left:-4rem}.tablet\:margin-x-neg-9{margin-left:-4.5rem;margin-right:-4.5rem}.tablet\:margin-right-neg-9{margin-right:-4.5rem}.tablet\:margin-left-neg-9{margin-left:-4.5rem}.tablet\:margin-x-neg-10{margin-left:-5rem;margin-right:-5rem}.tablet\:margin-right-neg-10{margin-right:-5rem}.tablet\:margin-left-neg-10{margin-left:-5rem}.tablet\:margin-x-neg-15{margin-left:-7.5rem;margin-right:-7.5rem}.tablet\:margin-right-neg-15{margin-right:-7.5rem}.tablet\:margin-left-neg-15{margin-left:-7.5rem}.tablet\:margin-x-4{margin-left:2rem;margin-right:2rem}.tablet\:margin-right-4{margin-right:2rem}.tablet\:margin-left-4{margin-left:2rem}.tablet\:margin-x-5{margin-left:2.5rem;margin-right:2.5rem}.tablet\:margin-right-5{margin-right:2.5rem}.tablet\:margin-left-5{margin-left:2.5rem}.tablet\:margin-x-6{margin-left:3rem;margin-right:3rem}.tablet\:margin-right-6{margin-right:3rem}.tablet\:margin-left-6{margin-left:3rem}.tablet\:margin-x-7{margin-left:3.5rem;margin-right:3.5rem}.tablet\:margin-right-7{margin-right:3.5rem}.tablet\:margin-left-7{margin-left:3.5rem}.tablet\:margin-x-8{margin-left:4rem;margin-right:4rem}.tablet\:margin-right-8{margin-right:4rem}.tablet\:margin-left-8{margin-left:4rem}.tablet\:margin-x-9{margin-left:4.5rem;margin-right:4.5rem}.tablet\:margin-right-9{margin-right:4.5rem}.tablet\:margin-left-9{margin-left:4.5rem}.tablet\:margin-x-10{margin-left:5rem;margin-right:5rem}.tablet\:margin-right-10{margin-right:5rem}.tablet\:margin-left-10{margin-left:5rem}.tablet\:margin-x-15{margin-left:7.5rem;margin-right:7.5rem}.tablet\:margin-right-15{margin-right:7.5rem}.tablet\:margin-left-15{margin-left:7.5rem}.tablet\:margin-x-card{margin-left:10rem;margin-right:10rem}.tablet\:margin-right-card{margin-right:10rem}.tablet\:margin-left-card{margin-left:10rem}.tablet\:margin-x-card-lg{margin-left:15rem;margin-right:15rem}.tablet\:margin-right-card-lg{margin-right:15rem}.tablet\:margin-left-card-lg{margin-left:15rem}.tablet\:margin-x-mobile{margin-left:20rem;margin-right:20rem}.tablet\:margin-right-mobile{margin-right:20rem}.tablet\:margin-left-mobile{margin-left:20rem}.tablet\:margin-x-05em{margin-left:.5em;margin-right:.5em}.tablet\:margin-right-05em{margin-right:.5em}.tablet\:margin-left-05em{margin-left:.5em}.tablet\:margin-x-1em{margin-left:1em;margin-right:1em}.tablet\:margin-right-1em{margin-right:1em}.tablet\:margin-left-1em{margin-left:1em}.tablet\:margin-x-105em{margin-left:1.5em;margin-right:1.5em}.tablet\:margin-right-105em{margin-right:1.5em}.tablet\:margin-left-105em{margin-left:1.5em}.tablet\:margin-x-2em{margin-left:2em;margin-right:2em}.tablet\:margin-right-2em{margin-right:2em}.tablet\:margin-left-2em{margin-left:2em}.tablet\:margin-x-0{margin-left:0;margin-right:0}.tablet\:margin-right-0{margin-right:0}.tablet\:margin-left-0{margin-left:0}.tablet\:margin-x-auto{margin-left:auto;margin-right:auto}.tablet\:margin-right-auto{margin-right:auto}.tablet\:margin-left-auto{margin-left:auto}.tablet\:measure-1{max-width:44ex}.tablet\:measure-2{max-width:60ex}.tablet\:measure-3{max-width:64ex}.tablet\:measure-4{max-width:68ex}.tablet\:measure-5{max-width:72ex}.tablet\:measure-6{max-width:88ex}.tablet\:measure-none{max-width:none}.tablet\:order-first{order:-1}.tablet\:order-last{order:999}.tablet\:order-initial{order:initial}.tablet\:order-0{order:0}.tablet\:order-1{order:1}.tablet\:order-2{order:2}.tablet\:order-3{order:3}.tablet\:order-4{order:4}.tablet\:order-5{order:5}.tablet\:order-6{order:6}.tablet\:order-7{order:7}.tablet\:order-8{order:8}.tablet\:order-9{order:9}.tablet\:order-10{order:10}.tablet\:order-11{order:11}.tablet\:padding-1px{padding:1px}.tablet\:padding-y-1px{padding-top:1px;padding-bottom:1px}.tablet\:padding-x-1px{padding-left:1px;padding-right:1px}.tablet\:padding-top-1px{padding-top:1px}.tablet\:padding-right-1px{padding-right:1px}.tablet\:padding-bottom-1px{padding-bottom:1px}.tablet\:padding-left-1px{padding-left:1px}.tablet\:padding-2px{padding:2px}.tablet\:padding-y-2px{padding-top:2px;padding-bottom:2px}.tablet\:padding-x-2px{padding-left:2px;padding-right:2px}.tablet\:padding-top-2px{padding-top:2px}.tablet\:padding-right-2px{padding-right:2px}.tablet\:padding-bottom-2px{padding-bottom:2px}.tablet\:padding-left-2px{padding-left:2px}.tablet\:padding-05{padding:.25rem}.tablet\:padding-y-05{padding-top:.25rem;padding-bottom:.25rem}.tablet\:padding-x-05{padding-left:.25rem;padding-right:.25rem}.tablet\:padding-top-05{padding-top:.25rem}.tablet\:padding-right-05{padding-right:.25rem}.tablet\:padding-bottom-05{padding-bottom:.25rem}.tablet\:padding-left-05{padding-left:.25rem}.tablet\:padding-1{padding:.5rem}.tablet\:padding-y-1{padding-top:.5rem;padding-bottom:.5rem}.tablet\:padding-x-1{padding-left:.5rem;padding-right:.5rem}.tablet\:padding-top-1{padding-top:.5rem}.tablet\:padding-right-1{padding-right:.5rem}.tablet\:padding-bottom-1{padding-bottom:.5rem}.tablet\:padding-left-1{padding-left:.5rem}.tablet\:padding-105{padding:.75rem}.tablet\:padding-y-105{padding-top:.75rem;padding-bottom:.75rem}.tablet\:padding-x-105{padding-left:.75rem;padding-right:.75rem}.tablet\:padding-top-105{padding-top:.75rem}.tablet\:padding-right-105{padding-right:.75rem}.tablet\:padding-bottom-105{padding-bottom:.75rem}.tablet\:padding-left-105{padding-left:.75rem}.tablet\:padding-2{padding:1rem}.tablet\:padding-y-2{padding-top:1rem;padding-bottom:1rem}.tablet\:padding-x-2{padding-left:1rem;padding-right:1rem}.tablet\:padding-top-2{padding-top:1rem}.tablet\:padding-right-2{padding-right:1rem}.tablet\:padding-bottom-2{padding-bottom:1rem}.tablet\:padding-left-2{padding-left:1rem}.tablet\:padding-205{padding:1.25rem}.tablet\:padding-y-205{padding-top:1.25rem;padding-bottom:1.25rem}.tablet\:padding-x-205{padding-left:1.25rem;padding-right:1.25rem}.tablet\:padding-top-205{padding-top:1.25rem}.tablet\:padding-right-205{padding-right:1.25rem}.tablet\:padding-bottom-205{padding-bottom:1.25rem}.tablet\:padding-left-205{padding-left:1.25rem}.tablet\:padding-3{padding:1.5rem}.tablet\:padding-y-3{padding-top:1.5rem;padding-bottom:1.5rem}.tablet\:padding-x-3{padding-left:1.5rem;padding-right:1.5rem}.tablet\:padding-top-3{padding-top:1.5rem}.tablet\:padding-right-3{padding-right:1.5rem}.tablet\:padding-bottom-3{padding-bottom:1.5rem}.tablet\:padding-left-3{padding-left:1.5rem}.tablet\:padding-4{padding:2rem}.tablet\:padding-y-4{padding-top:2rem;padding-bottom:2rem}.tablet\:padding-x-4{padding-left:2rem;padding-right:2rem}.tablet\:padding-top-4{padding-top:2rem}.tablet\:padding-right-4{padding-right:2rem}.tablet\:padding-bottom-4{padding-bottom:2rem}.tablet\:padding-left-4{padding-left:2rem}.tablet\:padding-5{padding:2.5rem}.tablet\:padding-y-5{padding-top:2.5rem;padding-bottom:2.5rem}.tablet\:padding-x-5{padding-left:2.5rem;padding-right:2.5rem}.tablet\:padding-top-5{padding-top:2.5rem}.tablet\:padding-right-5{padding-right:2.5rem}.tablet\:padding-bottom-5{padding-bottom:2.5rem}.tablet\:padding-left-5{padding-left:2.5rem}.tablet\:padding-6{padding:3rem}.tablet\:padding-y-6{padding-top:3rem;padding-bottom:3rem}.tablet\:padding-x-6{padding-left:3rem;padding-right:3rem}.tablet\:padding-top-6{padding-top:3rem}.tablet\:padding-right-6{padding-right:3rem}.tablet\:padding-bottom-6{padding-bottom:3rem}.tablet\:padding-left-6{padding-left:3rem}.tablet\:padding-7{padding:3.5rem}.tablet\:padding-y-7{padding-top:3.5rem;padding-bottom:3.5rem}.tablet\:padding-x-7{padding-left:3.5rem;padding-right:3.5rem}.tablet\:padding-top-7{padding-top:3.5rem}.tablet\:padding-right-7{padding-right:3.5rem}.tablet\:padding-bottom-7{padding-bottom:3.5rem}.tablet\:padding-left-7{padding-left:3.5rem}.tablet\:padding-8{padding:4rem}.tablet\:padding-y-8{padding-top:4rem;padding-bottom:4rem}.tablet\:padding-x-8{padding-left:4rem;padding-right:4rem}.tablet\:padding-top-8{padding-top:4rem}.tablet\:padding-right-8{padding-right:4rem}.tablet\:padding-bottom-8{padding-bottom:4rem}.tablet\:padding-left-8{padding-left:4rem}.tablet\:padding-9{padding:4.5rem}.tablet\:padding-y-9{padding-top:4.5rem;padding-bottom:4.5rem}.tablet\:padding-x-9{padding-left:4.5rem;padding-right:4.5rem}.tablet\:padding-top-9{padding-top:4.5rem}.tablet\:padding-right-9{padding-right:4.5rem}.tablet\:padding-bottom-9{padding-bottom:4.5rem}.tablet\:padding-left-9{padding-left:4.5rem}.tablet\:padding-10{padding:5rem}.tablet\:padding-y-10{padding-top:5rem;padding-bottom:5rem}.tablet\:padding-x-10{padding-left:5rem;padding-right:5rem}.tablet\:padding-top-10{padding-top:5rem}.tablet\:padding-right-10{padding-right:5rem}.tablet\:padding-bottom-10{padding-bottom:5rem}.tablet\:padding-left-10{padding-left:5rem}.tablet\:padding-15{padding:7.5rem}.tablet\:padding-y-15{padding-top:7.5rem;padding-bottom:7.5rem}.tablet\:padding-x-15{padding-left:7.5rem;padding-right:7.5rem}.tablet\:padding-top-15{padding-top:7.5rem}.tablet\:padding-right-15{padding-right:7.5rem}.tablet\:padding-bottom-15{padding-bottom:7.5rem}.tablet\:padding-left-15{padding-left:7.5rem}.tablet\:padding-0{padding:0}.tablet\:padding-y-0{padding-top:0;padding-bottom:0}.tablet\:padding-x-0{padding-left:0;padding-right:0}.tablet\:padding-top-0{padding-top:0}.tablet\:padding-right-0{padding-right:0}.tablet\:padding-bottom-0{padding-bottom:0}.tablet\:padding-left-0{padding-left:0}.tablet\:width-1px{width:1px}.tablet\:width-2px{width:2px}.tablet\:width-05{width:.25rem}.tablet\:width-1{width:.5rem}.tablet\:width-105{width:.75rem}.tablet\:width-2{width:1rem}.tablet\:width-205{width:1.25rem}.tablet\:width-3{width:1.5rem}.tablet\:width-4{width:2rem}.tablet\:width-5{width:2.5rem}.tablet\:width-6{width:3rem}.tablet\:width-7{width:3.5rem}.tablet\:width-8{width:4rem}.tablet\:width-9{width:4.5rem}.tablet\:width-10{width:5rem}.tablet\:width-15{width:7.5rem}.tablet\:width-card{width:10rem}.tablet\:width-card-lg{width:15rem}.tablet\:width-mobile{width:20rem}.tablet\:width-mobile-lg{width:30rem}.tablet\:width-tablet{width:40rem}.tablet\:width-tablet-lg{width:55rem}.tablet\:width-desktop{width:64rem}.tablet\:width-desktop-lg{width:75rem}.tablet\:width-widescreen{width:87.5rem}.tablet\:width-0{width:0}.tablet\:width-full{width:100%}.tablet\:width-auto{width:auto}}@media all and (min-width:64em){.desktop\:border-1px,.desktop\:hover\:border-1px:hover{border:1px solid}.desktop\:border-y-1px,.desktop\:hover\:border-y-1px:hover{border-top:1px solid;border-bottom:1px solid}.desktop\:border-x-1px,.desktop\:hover\:border-x-1px:hover{border-left:1px solid;border-right:1px solid}.desktop\:border-top-1px,.desktop\:hover\:border-top-1px:hover{border-top:1px solid}.desktop\:border-right-1px,.desktop\:hover\:border-right-1px:hover{border-right:1px solid}.desktop\:border-bottom-1px,.desktop\:hover\:border-bottom-1px:hover{border-bottom:1px solid}.desktop\:border-left-1px,.desktop\:hover\:border-left-1px:hover{border-left:1px solid}.desktop\:border-2px,.desktop\:hover\:border-2px:hover{border:2px solid}.desktop\:border-y-2px,.desktop\:hover\:border-y-2px:hover{border-top:2px solid;border-bottom:2px solid}.desktop\:border-x-2px,.desktop\:hover\:border-x-2px:hover{border-left:2px solid;border-right:2px solid}.desktop\:border-top-2px,.desktop\:hover\:border-top-2px:hover{border-top:2px solid}.desktop\:border-right-2px,.desktop\:hover\:border-right-2px:hover{border-right:2px solid}.desktop\:border-bottom-2px,.desktop\:hover\:border-bottom-2px:hover{border-bottom:2px solid}.desktop\:border-left-2px,.desktop\:hover\:border-left-2px:hover{border-left:2px solid}.desktop\:border-05,.desktop\:hover\:border-05:hover{border:.25rem solid}.desktop\:border-y-05,.desktop\:hover\:border-y-05:hover{border-top:.25rem solid;border-bottom:.25rem solid}.desktop\:border-x-05,.desktop\:hover\:border-x-05:hover{border-left:.25rem solid;border-right:.25rem solid}.desktop\:border-top-05,.desktop\:hover\:border-top-05:hover{border-top:.25rem solid}.desktop\:border-right-05,.desktop\:hover\:border-right-05:hover{border-right:.25rem solid}.desktop\:border-bottom-05,.desktop\:hover\:border-bottom-05:hover{border-bottom:.25rem solid}.desktop\:border-left-05,.desktop\:hover\:border-left-05:hover{border-left:.25rem solid}.desktop\:border-1,.desktop\:hover\:border-1:hover{border:.5rem solid}.desktop\:border-y-1,.desktop\:hover\:border-y-1:hover{border-top:.5rem solid;border-bottom:.5rem solid}.desktop\:border-x-1,.desktop\:hover\:border-x-1:hover{border-left:.5rem solid;border-right:.5rem solid}.desktop\:border-top-1,.desktop\:hover\:border-top-1:hover{border-top:.5rem solid}.desktop\:border-right-1,.desktop\:hover\:border-right-1:hover{border-right:.5rem solid}.desktop\:border-bottom-1,.desktop\:hover\:border-bottom-1:hover{border-bottom:.5rem solid}.desktop\:border-left-1,.desktop\:hover\:border-left-1:hover{border-left:.5rem solid}.desktop\:border-105,.desktop\:hover\:border-105:hover{border:.75rem solid}.desktop\:border-y-105,.desktop\:hover\:border-y-105:hover{border-top:.75rem solid;border-bottom:.75rem solid}.desktop\:border-x-105,.desktop\:hover\:border-x-105:hover{border-left:.75rem solid;border-right:.75rem solid}.desktop\:border-top-105,.desktop\:hover\:border-top-105:hover{border-top:.75rem solid}.desktop\:border-right-105,.desktop\:hover\:border-right-105:hover{border-right:.75rem solid}.desktop\:border-bottom-105,.desktop\:hover\:border-bottom-105:hover{border-bottom:.75rem solid}.desktop\:border-left-105,.desktop\:hover\:border-left-105:hover{border-left:.75rem solid}.desktop\:border-2,.desktop\:hover\:border-2:hover{border:1rem solid}.desktop\:border-y-2,.desktop\:hover\:border-y-2:hover{border-top:1rem solid;border-bottom:1rem solid}.desktop\:border-x-2,.desktop\:hover\:border-x-2:hover{border-left:1rem solid;border-right:1rem solid}.desktop\:border-top-2,.desktop\:hover\:border-top-2:hover{border-top:1rem solid}.desktop\:border-right-2,.desktop\:hover\:border-right-2:hover{border-right:1rem solid}.desktop\:border-bottom-2,.desktop\:hover\:border-bottom-2:hover{border-bottom:1rem solid}.desktop\:border-left-2,.desktop\:hover\:border-left-2:hover{border-left:1rem solid}.desktop\:border-205,.desktop\:hover\:border-205:hover{border:1.25rem solid}.desktop\:border-y-205,.desktop\:hover\:border-y-205:hover{border-top:1.25rem solid;border-bottom:1.25rem solid}.desktop\:border-x-205,.desktop\:hover\:border-x-205:hover{border-left:1.25rem solid;border-right:1.25rem solid}.desktop\:border-top-205,.desktop\:hover\:border-top-205:hover{border-top:1.25rem solid}.desktop\:border-right-205,.desktop\:hover\:border-right-205:hover{border-right:1.25rem solid}.desktop\:border-bottom-205,.desktop\:hover\:border-bottom-205:hover{border-bottom:1.25rem solid}.desktop\:border-left-205,.desktop\:hover\:border-left-205:hover{border-left:1.25rem solid}.desktop\:border-3,.desktop\:hover\:border-3:hover{border:1.5rem solid}.desktop\:border-y-3,.desktop\:hover\:border-y-3:hover{border-top:1.5rem solid;border-bottom:1.5rem solid}.desktop\:border-x-3,.desktop\:hover\:border-x-3:hover{border-left:1.5rem solid;border-right:1.5rem solid}.desktop\:border-top-3,.desktop\:hover\:border-top-3:hover{border-top:1.5rem solid}.desktop\:border-right-3,.desktop\:hover\:border-right-3:hover{border-right:1.5rem solid}.desktop\:border-bottom-3,.desktop\:hover\:border-bottom-3:hover{border-bottom:1.5rem solid}.desktop\:border-left-3,.desktop\:hover\:border-left-3:hover{border-left:1.5rem solid}.desktop\:border-0,.desktop\:hover\:border-0:hover{border:0 solid}.desktop\:border-y-0,.desktop\:hover\:border-y-0:hover{border-top:0 solid;border-bottom:0 solid}.desktop\:border-x-0,.desktop\:hover\:border-x-0:hover{border-left:0 solid;border-right:0 solid}.desktop\:border-top-0,.desktop\:hover\:border-top-0:hover{border-top:0 solid}.desktop\:border-right-0,.desktop\:hover\:border-right-0:hover{border-right:0 solid}.desktop\:border-bottom-0,.desktop\:hover\:border-bottom-0:hover{border-bottom:0 solid}.desktop\:border-left-0,.desktop\:hover\:border-left-0:hover{border-left:0 solid}.desktop\:border,.desktop\:hover\:border:hover{border:1px solid}.desktop\:border-y,.desktop\:hover\:border-y:hover{border-top:1px solid;border-bottom:1px solid}.desktop\:border-x,.desktop\:hover\:border-x:hover{border-left:1px solid;border-right:1px solid}.desktop\:border-top,.desktop\:hover\:border-top:hover{border-top:1px solid}.desktop\:border-right,.desktop\:hover\:border-right:hover{border-right:1px solid}.desktop\:border-bottom,.desktop\:hover\:border-bottom:hover{border-bottom:1px solid}.desktop\:border-left,.desktop\:hover\:border-left:hover{border-left:1px solid}.desktop\:border-transparent,.desktop\:hover\:border-transparent:hover{border-color:transparent}.desktop\:border-black,.desktop\:hover\:border-black:hover{border-color:#000}.desktop\:border-white,.desktop\:hover\:border-white:hover{border-color:#fff}.desktop\:border-red,.desktop\:hover\:border-red:hover{border-color:#e52207}.desktop\:border-orange,.desktop\:hover\:border-orange:hover{border-color:#e66f0e}.desktop\:border-gold,.desktop\:hover\:border-gold:hover{border-color:#ffbe2e}.desktop\:border-yellow,.desktop\:hover\:border-yellow:hover{border-color:#fee685}.desktop\:border-green,.desktop\:hover\:border-green:hover{border-color:#538200}.desktop\:border-mint,.desktop\:hover\:border-mint:hover{border-color:#04c585}.desktop\:border-cyan,.desktop\:hover\:border-cyan:hover{border-color:#009ec1}.desktop\:border-blue,.desktop\:hover\:border-blue:hover{border-color:#0076d6}.desktop\:border-indigo,.desktop\:hover\:border-indigo:hover{border-color:#676cc8}.desktop\:border-violet,.desktop\:hover\:border-violet:hover{border-color:#8168b3}.desktop\:border-magenta,.desktop\:hover\:border-magenta:hover{border-color:#d72d79}.desktop\:border-gray-5,.desktop\:hover\:border-gray-5:hover{border-color:#f0f0f0}.desktop\:border-gray-10,.desktop\:hover\:border-gray-10:hover{border-color:#e6e6e6}.desktop\:border-gray-30,.desktop\:hover\:border-gray-30:hover{border-color:#adadad}.desktop\:border-gray-50,.desktop\:hover\:border-gray-50:hover{border-color:#757575}.desktop\:border-gray-70,.desktop\:hover\:border-gray-70:hover{border-color:#454545}.desktop\:border-gray-90,.desktop\:hover\:border-gray-90:hover{border-color:#1b1b1b}.desktop\:border-base-lightest,.desktop\:hover\:border-base-lightest:hover{border-color:#f0f0f0}.desktop\:border-base-lighter,.desktop\:hover\:border-base-lighter:hover{border-color:#dfe1e2}.desktop\:border-base-light,.desktop\:hover\:border-base-light:hover{border-color:#a9aeb1}.desktop\:border-base,.desktop\:hover\:border-base:hover{border-color:#71767a}.desktop\:border-base-dark,.desktop\:hover\:border-base-dark:hover{border-color:#565c65}.desktop\:border-base-darker,.desktop\:hover\:border-base-darker:hover{border-color:#3d4551}.desktop\:border-base-darkest,.desktop\:border-ink,.desktop\:hover\:border-base-darkest:hover,.desktop\:hover\:border-ink:hover{border-color:#1b1b1b}.desktop\:border-primary-lighter,.desktop\:hover\:border-primary-lighter:hover{border-color:#d9e8f6}.desktop\:border-primary-light,.desktop\:hover\:border-primary-light:hover{border-color:#73b3e7}.desktop\:border-primary,.desktop\:hover\:border-primary:hover{border-color:#005ea2}.desktop\:border-primary-vivid,.desktop\:hover\:border-primary-vivid:hover{border-color:#0050d8}.desktop\:border-primary-dark,.desktop\:hover\:border-primary-dark:hover{border-color:#1a4480}.desktop\:border-primary-darker,.desktop\:hover\:border-primary-darker:hover{border-color:#162e51}.desktop\:border-secondary-lighter,.desktop\:hover\:border-secondary-lighter:hover{border-color:#f3e1e4}.desktop\:border-secondary-light,.desktop\:hover\:border-secondary-light:hover{border-color:#f2938c}.desktop\:border-secondary,.desktop\:hover\:border-secondary:hover{border-color:#d83933}.desktop\:border-secondary-vivid,.desktop\:hover\:border-secondary-vivid:hover{border-color:#e41d3d}.desktop\:border-secondary-dark,.desktop\:hover\:border-secondary-dark:hover{border-color:#b50909}.desktop\:border-secondary-darker,.desktop\:hover\:border-secondary-darker:hover{border-color:#8b0a03}.desktop\:border-accent-warm-darker,.desktop\:hover\:border-accent-warm-darker:hover{border-color:#775540}.desktop\:border-accent-warm-dark,.desktop\:hover\:border-accent-warm-dark:hover{border-color:#c05600}.desktop\:border-accent-warm,.desktop\:hover\:border-accent-warm:hover{border-color:#fa9441}.desktop\:border-accent-warm-light,.desktop\:hover\:border-accent-warm-light:hover{border-color:#ffbc78}.desktop\:border-accent-warm-lighter,.desktop\:hover\:border-accent-warm-lighter:hover{border-color:#f2e4d4}.desktop\:border-accent-cool-darker,.desktop\:hover\:border-accent-cool-darker:hover{border-color:#07648d}.desktop\:border-accent-cool-dark,.desktop\:hover\:border-accent-cool-dark:hover{border-color:#28a0cb}.desktop\:border-accent-cool,.desktop\:hover\:border-accent-cool:hover{border-color:#00bde3}.desktop\:border-accent-cool-light,.desktop\:hover\:border-accent-cool-light:hover{border-color:#97d4ea}.desktop\:border-accent-cool-lighter,.desktop\:hover\:border-accent-cool-lighter:hover{border-color:#e1f3f8}.desktop\:border-error-lighter,.desktop\:hover\:border-error-lighter:hover{border-color:#f4e3db}.desktop\:border-error-light,.desktop\:hover\:border-error-light:hover{border-color:#f39268}.desktop\:border-error,.desktop\:hover\:border-error:hover{border-color:#d54309}.desktop\:border-error-dark,.desktop\:hover\:border-error-dark:hover{border-color:#b50909}.desktop\:border-error-darker,.desktop\:hover\:border-error-darker:hover{border-color:#6f3331}.desktop\:border-warning-lighter,.desktop\:hover\:border-warning-lighter:hover{border-color:#faf3d1}.desktop\:border-warning-light,.desktop\:hover\:border-warning-light:hover{border-color:#fee685}.desktop\:border-warning,.desktop\:hover\:border-warning:hover{border-color:#ffbe2e}.desktop\:border-warning-dark,.desktop\:hover\:border-warning-dark:hover{border-color:#e5a000}.desktop\:border-warning-darker,.desktop\:hover\:border-warning-darker:hover{border-color:#936f38}.desktop\:border-success-lighter,.desktop\:hover\:border-success-lighter:hover{border-color:#ecf3ec}.desktop\:border-success-light,.desktop\:hover\:border-success-light:hover{border-color:#70e17b}.desktop\:border-success,.desktop\:hover\:border-success:hover{border-color:#00a91c}.desktop\:border-success-dark,.desktop\:hover\:border-success-dark:hover{border-color:#008817}.desktop\:border-success-darker,.desktop\:hover\:border-success-darker:hover{border-color:#216e1f}.desktop\:border-info-lighter,.desktop\:hover\:border-info-lighter:hover{border-color:#e7f6f8}.desktop\:border-info-light,.desktop\:hover\:border-info-light:hover{border-color:#99deea}.desktop\:border-info,.desktop\:hover\:border-info:hover{border-color:#00bde3}.desktop\:border-info-dark,.desktop\:hover\:border-info-dark:hover{border-color:#009ec1}.desktop\:border-info-darker,.desktop\:hover\:border-info-darker:hover{border-color:#2e6276}.desktop\:border-disabled-lighter,.desktop\:hover\:border-disabled-lighter:hover{border-color:#c9c9c9}.desktop\:border-disabled-light,.desktop\:hover\:border-disabled-light:hover{border-color:#919191}.desktop\:border-disabled,.desktop\:hover\:border-disabled:hover{border-color:#757575}.desktop\:border-disabled-dark,.desktop\:hover\:border-disabled-dark:hover{border-color:#454545}.desktop\:border-disabled-darker,.desktop\:hover\:border-disabled-darker:hover{border-color:#1b1b1b}.desktop\:border-emergency,.desktop\:hover\:border-emergency:hover{border-color:#9c3d10}.desktop\:border-emergency-dark,.desktop\:hover\:border-emergency-dark:hover{border-color:#332d29}.desktop\:radius-0{border-radius:0}.desktop\:radius-top-0{border-top-left-radius:0;border-top-right-radius:0}.desktop\:radius-right-0{border-top-right-radius:0;border-bottom-right-radius:0}.desktop\:radius-bottom-0{border-bottom-left-radius:0;border-bottom-right-radius:0}.desktop\:radius-left-0{border-top-left-radius:0;border-bottom-left-radius:0}.desktop\:radius-sm{border-radius:2px}.desktop\:radius-top-sm{border-top-left-radius:2px;border-top-right-radius:2px}.desktop\:radius-right-sm{border-top-right-radius:2px;border-bottom-right-radius:2px}.desktop\:radius-bottom-sm{border-bottom-left-radius:2px;border-bottom-right-radius:2px}.desktop\:radius-left-sm{border-top-left-radius:2px;border-bottom-left-radius:2px}.desktop\:radius-md{border-radius:.25rem}.desktop\:radius-top-md{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.desktop\:radius-right-md{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.desktop\:radius-bottom-md{border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}.desktop\:radius-left-md{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.desktop\:radius-lg{border-radius:.5rem}.desktop\:radius-top-lg{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.desktop\:radius-right-lg{border-top-right-radius:.5rem;border-bottom-right-radius:.5rem}.desktop\:radius-bottom-lg{border-bottom-left-radius:.5rem;border-bottom-right-radius:.5rem}.desktop\:radius-left-lg{border-top-left-radius:.5rem;border-bottom-left-radius:.5rem}.desktop\:radius-pill{border-radius:99rem}.desktop\:radius-top-pill{border-top-left-radius:99rem;border-top-right-radius:99rem}.desktop\:radius-right-pill{border-top-right-radius:99rem;border-bottom-right-radius:99rem}.desktop\:radius-bottom-pill{border-bottom-left-radius:99rem;border-bottom-right-radius:99rem}.desktop\:radius-left-pill{border-top-left-radius:99rem;border-bottom-left-radius:99rem}.desktop\:display-block{display:block}.desktop\:display-flex{display:flex}.desktop\:display-none{display:none}.desktop\:display-inline{display:inline}.desktop\:display-inline-block{display:inline-block}.desktop\:display-inline-flex{display:inline-flex}.desktop\:display-table{display:table}.desktop\:display-table-cell{display:table-cell}.desktop\:display-table-row{display:table-row}.desktop\:font-mono-3xs{font-size:.77rem}.desktop\:font-mono-2xs{font-size:.83rem}.desktop\:font-mono-xs{font-size:.89rem}.desktop\:font-mono-sm{font-size:.95rem}.desktop\:font-mono-md{font-size:1.01rem}.desktop\:font-mono-lg{font-size:1.31rem}.desktop\:font-mono-xl{font-size:1.91rem}.desktop\:font-mono-2xl{font-size:2.38rem}.desktop\:font-mono-3xl{font-size:2.86rem}.desktop\:font-sans-3xs{font-size:.87rem}.desktop\:font-sans-2xs{font-size:.93rem}.desktop\:font-sans-xs{font-size:1rem}.desktop\:font-sans-sm{font-size:1.06rem}.desktop\:font-sans-md{font-size:1.13rem}.desktop\:font-sans-lg{font-size:1.46rem}.desktop\:font-sans-xl{font-size:2.13rem}.desktop\:font-sans-2xl{font-size:2.66rem}.desktop\:font-sans-3xl{font-size:3.19rem}.desktop\:font-serif-3xs{font-size:.79rem}.desktop\:font-serif-2xs{font-size:.85rem}.desktop\:font-serif-xs{font-size:.91rem}.desktop\:font-serif-sm{font-size:.98rem}.desktop\:font-serif-md{font-size:1.04rem}.desktop\:font-serif-lg{font-size:1.34rem}.desktop\:font-serif-xl{font-size:1.95rem}.desktop\:font-serif-2xl{font-size:2.44rem}.desktop\:font-serif-3xl{font-size:2.93rem}.desktop\:font-heading-3xs{font-size:.79rem}.desktop\:font-heading-2xs{font-size:.85rem}.desktop\:font-heading-xs{font-size:.91rem}.desktop\:font-heading-sm{font-size:.98rem}.desktop\:font-heading-md{font-size:1.04rem}.desktop\:font-heading-lg{font-size:1.34rem}.desktop\:font-heading-xl{font-size:1.95rem}.desktop\:font-heading-2xl{font-size:2.44rem}.desktop\:font-heading-3xl{font-size:2.93rem}.desktop\:font-body-3xs{font-size:.87rem}.desktop\:font-body-2xs{font-size:.93rem}.desktop\:font-body-xs{font-size:1rem}.desktop\:font-body-sm{font-size:1.06rem}.desktop\:font-body-md{font-size:1.13rem}.desktop\:font-body-lg{font-size:1.46rem}.desktop\:font-body-xl{font-size:2.13rem}.desktop\:font-body-2xl{font-size:2.66rem}.desktop\:font-body-3xl{font-size:3.19rem}.desktop\:font-code-3xs{font-size:.77rem}.desktop\:font-code-2xs{font-size:.83rem}.desktop\:font-code-xs{font-size:.89rem}.desktop\:font-code-sm{font-size:.95rem}.desktop\:font-code-md{font-size:1.01rem}.desktop\:font-code-lg{font-size:1.31rem}.desktop\:font-code-xl{font-size:1.91rem}.desktop\:font-code-2xl{font-size:2.38rem}.desktop\:font-code-3xl{font-size:2.86rem}.desktop\:font-alt-3xs{font-size:.79rem}.desktop\:font-alt-2xs{font-size:.85rem}.desktop\:font-alt-xs{font-size:.91rem}.desktop\:font-alt-sm{font-size:.98rem}.desktop\:font-alt-md{font-size:1.04rem}.desktop\:font-alt-lg{font-size:1.34rem}.desktop\:font-alt-xl{font-size:1.95rem}.desktop\:font-alt-2xl{font-size:2.44rem}.desktop\:font-alt-3xl{font-size:2.93rem}.desktop\:font-ui-3xs{font-size:.87rem}.desktop\:font-ui-2xs{font-size:.93rem}.desktop\:font-ui-xs{font-size:1rem}.desktop\:font-ui-sm{font-size:1.06rem}.desktop\:font-ui-md{font-size:1.13rem}.desktop\:font-ui-lg{font-size:1.46rem}.desktop\:font-ui-xl{font-size:2.13rem}.desktop\:font-ui-2xl{font-size:2.66rem}.desktop\:font-ui-3xl{font-size:3.19rem}.desktop\:text-light{font-weight:300}.desktop\:text-normal{font-weight:400}.desktop\:text-bold{font-weight:700}.desktop\:flex-justify-center{justify-content:center}.desktop\:flex-justify-start{justify-content:flex-start}.desktop\:flex-justify-end{justify-content:flex-end}.desktop\:flex-justify{justify-content:space-between}.desktop\:line-height-sans-1{line-height:.9}.desktop\:line-height-sans-2{line-height:1.1}.desktop\:line-height-sans-3{line-height:1.3}.desktop\:line-height-sans-4{line-height:1.4}.desktop\:line-height-sans-5{line-height:1.5}.desktop\:line-height-sans-6{line-height:1.6}.desktop\:line-height-serif-1{line-height:1}.desktop\:line-height-serif-2{line-height:1.2}.desktop\:line-height-serif-3{line-height:1.4}.desktop\:line-height-serif-4{line-height:1.5}.desktop\:line-height-serif-5{line-height:1.7}.desktop\:line-height-serif-6{line-height:1.8}.desktop\:line-height-mono-1{line-height:1}.desktop\:line-height-mono-2{line-height:1.3}.desktop\:line-height-mono-3{line-height:1.4}.desktop\:line-height-mono-4{line-height:1.6}.desktop\:line-height-mono-5{line-height:1.7}.desktop\:line-height-mono-6{line-height:1.8}.desktop\:line-height-heading-1{line-height:1}.desktop\:line-height-heading-2{line-height:1.2}.desktop\:line-height-heading-3{line-height:1.4}.desktop\:line-height-heading-4{line-height:1.5}.desktop\:line-height-heading-5{line-height:1.7}.desktop\:line-height-heading-6{line-height:1.8}.desktop\:line-height-ui-1{line-height:.9}.desktop\:line-height-ui-2{line-height:1.1}.desktop\:line-height-ui-3{line-height:1.3}.desktop\:line-height-ui-4{line-height:1.4}.desktop\:line-height-ui-5{line-height:1.5}.desktop\:line-height-ui-6{line-height:1.6}.desktop\:line-height-body-1{line-height:.9}.desktop\:line-height-body-2{line-height:1.1}.desktop\:line-height-body-3{line-height:1.3}.desktop\:line-height-body-4{line-height:1.4}.desktop\:line-height-body-5{line-height:1.5}.desktop\:line-height-body-6{line-height:1.6}.desktop\:line-height-code-1{line-height:1}.desktop\:line-height-code-2{line-height:1.3}.desktop\:line-height-code-3{line-height:1.4}.desktop\:line-height-code-4{line-height:1.6}.desktop\:line-height-code-5{line-height:1.7}.desktop\:line-height-code-6{line-height:1.8}.desktop\:line-height-alt-1{line-height:1}.desktop\:line-height-alt-2{line-height:1.2}.desktop\:line-height-alt-3{line-height:1.4}.desktop\:line-height-alt-4{line-height:1.5}.desktop\:line-height-alt-5{line-height:1.7}.desktop\:line-height-alt-6{line-height:1.8}.desktop\:margin-neg-1px{margin:-1px}.desktop\:margin-neg-2px{margin:-2px}.desktop\:margin-neg-05{margin:-.25rem}.desktop\:margin-neg-1{margin:-.5rem}.desktop\:margin-neg-105{margin:-.75rem}.desktop\:margin-neg-2{margin:-1rem}.desktop\:margin-neg-205{margin:-1.25rem}.desktop\:margin-neg-3{margin:-1.5rem}.desktop\:margin-1px{margin:1px}.desktop\:margin-2px{margin:2px}.desktop\:margin-05{margin:.25rem}.desktop\:margin-1{margin:.5rem}.desktop\:margin-105{margin:.75rem}.desktop\:margin-2{margin:1rem}.desktop\:margin-205{margin:1.25rem}.desktop\:margin-3{margin:1.5rem}.desktop\:margin-neg-4{margin:-2rem}.desktop\:margin-neg-5{margin:-2.5rem}.desktop\:margin-neg-6{margin:-3rem}.desktop\:margin-neg-7{margin:-3.5rem}.desktop\:margin-neg-8{margin:-4rem}.desktop\:margin-neg-9{margin:-4.5rem}.desktop\:margin-neg-10{margin:-5rem}.desktop\:margin-neg-15{margin:-7.5rem}.desktop\:margin-4{margin:2rem}.desktop\:margin-5{margin:2.5rem}.desktop\:margin-6{margin:3rem}.desktop\:margin-7{margin:3.5rem}.desktop\:margin-8{margin:4rem}.desktop\:margin-9{margin:4.5rem}.desktop\:margin-10{margin:5rem}.desktop\:margin-15{margin:7.5rem}.desktop\:margin-05em{margin:.5em}.desktop\:margin-1em{margin:1em}.desktop\:margin-105em{margin:1.5em}.desktop\:margin-2em{margin:2em}.desktop\:margin-0{margin:0}.desktop\:margin-y-1px{margin-top:1px;margin-bottom:1px}.desktop\:margin-top-1px{margin-top:1px}.desktop\:margin-bottom-1px{margin-bottom:1px}.desktop\:margin-y-2px{margin-top:2px;margin-bottom:2px}.desktop\:margin-top-2px{margin-top:2px}.desktop\:margin-bottom-2px{margin-bottom:2px}.desktop\:margin-y-05{margin-top:.25rem;margin-bottom:.25rem}.desktop\:margin-top-05{margin-top:.25rem}.desktop\:margin-bottom-05{margin-bottom:.25rem}.desktop\:margin-y-1{margin-top:.5rem;margin-bottom:.5rem}.desktop\:margin-top-1{margin-top:.5rem}.desktop\:margin-bottom-1{margin-bottom:.5rem}.desktop\:margin-y-105{margin-top:.75rem;margin-bottom:.75rem}.desktop\:margin-top-105{margin-top:.75rem}.desktop\:margin-bottom-105{margin-bottom:.75rem}.desktop\:margin-y-2{margin-top:1rem;margin-bottom:1rem}.desktop\:margin-top-2{margin-top:1rem}.desktop\:margin-bottom-2{margin-bottom:1rem}.desktop\:margin-y-205{margin-top:1.25rem;margin-bottom:1.25rem}.desktop\:margin-top-205{margin-top:1.25rem}.desktop\:margin-bottom-205{margin-bottom:1.25rem}.desktop\:margin-y-3{margin-top:1.5rem;margin-bottom:1.5rem}.desktop\:margin-top-3{margin-top:1.5rem}.desktop\:margin-bottom-3{margin-bottom:1.5rem}.desktop\:margin-y-neg-1px{margin-top:-1px;margin-bottom:-1px}.desktop\:margin-top-neg-1px{margin-top:-1px}.desktop\:margin-bottom-neg-1px{margin-bottom:-1px}.desktop\:margin-y-neg-2px{margin-top:-2px;margin-bottom:-2px}.desktop\:margin-top-neg-2px{margin-top:-2px}.desktop\:margin-bottom-neg-2px{margin-bottom:-2px}.desktop\:margin-y-neg-05{margin-top:-.25rem;margin-bottom:-.25rem}.desktop\:margin-top-neg-05{margin-top:-.25rem}.desktop\:margin-bottom-neg-05{margin-bottom:-.25rem}.desktop\:margin-y-neg-1{margin-top:-.5rem;margin-bottom:-.5rem}.desktop\:margin-top-neg-1{margin-top:-.5rem}.desktop\:margin-bottom-neg-1{margin-bottom:-.5rem}.desktop\:margin-y-neg-105{margin-top:-.75rem;margin-bottom:-.75rem}.desktop\:margin-top-neg-105{margin-top:-.75rem}.desktop\:margin-bottom-neg-105{margin-bottom:-.75rem}.desktop\:margin-y-neg-2{margin-top:-1rem;margin-bottom:-1rem}.desktop\:margin-top-neg-2{margin-top:-1rem}.desktop\:margin-bottom-neg-2{margin-bottom:-1rem}.desktop\:margin-y-neg-205{margin-top:-1.25rem;margin-bottom:-1.25rem}.desktop\:margin-top-neg-205{margin-top:-1.25rem}.desktop\:margin-bottom-neg-205{margin-bottom:-1.25rem}.desktop\:margin-y-neg-3{margin-top:-1.5rem;margin-bottom:-1.5rem}.desktop\:margin-top-neg-3{margin-top:-1.5rem}.desktop\:margin-bottom-neg-3{margin-bottom:-1.5rem}.desktop\:margin-y-neg-4{margin-top:-2rem;margin-bottom:-2rem}.desktop\:margin-top-neg-4{margin-top:-2rem}.desktop\:margin-bottom-neg-4{margin-bottom:-2rem}.desktop\:margin-y-neg-5{margin-top:-2.5rem;margin-bottom:-2.5rem}.desktop\:margin-top-neg-5{margin-top:-2.5rem}.desktop\:margin-bottom-neg-5{margin-bottom:-2.5rem}.desktop\:margin-y-neg-6{margin-top:-3rem;margin-bottom:-3rem}.desktop\:margin-top-neg-6{margin-top:-3rem}.desktop\:margin-bottom-neg-6{margin-bottom:-3rem}.desktop\:margin-y-neg-7{margin-top:-3.5rem;margin-bottom:-3.5rem}.desktop\:margin-top-neg-7{margin-top:-3.5rem}.desktop\:margin-bottom-neg-7{margin-bottom:-3.5rem}.desktop\:margin-y-neg-8{margin-top:-4rem;margin-bottom:-4rem}.desktop\:margin-top-neg-8{margin-top:-4rem}.desktop\:margin-bottom-neg-8{margin-bottom:-4rem}.desktop\:margin-y-neg-9{margin-top:-4.5rem;margin-bottom:-4.5rem}.desktop\:margin-top-neg-9{margin-top:-4.5rem}.desktop\:margin-bottom-neg-9{margin-bottom:-4.5rem}.desktop\:margin-y-neg-10{margin-top:-5rem;margin-bottom:-5rem}.desktop\:margin-top-neg-10{margin-top:-5rem}.desktop\:margin-bottom-neg-10{margin-bottom:-5rem}.desktop\:margin-y-neg-15{margin-top:-7.5rem;margin-bottom:-7.5rem}.desktop\:margin-top-neg-15{margin-top:-7.5rem}.desktop\:margin-bottom-neg-15{margin-bottom:-7.5rem}.desktop\:margin-y-4{margin-top:2rem;margin-bottom:2rem}.desktop\:margin-top-4{margin-top:2rem}.desktop\:margin-bottom-4{margin-bottom:2rem}.desktop\:margin-y-5{margin-top:2.5rem;margin-bottom:2.5rem}.desktop\:margin-top-5{margin-top:2.5rem}.desktop\:margin-bottom-5{margin-bottom:2.5rem}.desktop\:margin-y-6{margin-top:3rem;margin-bottom:3rem}.desktop\:margin-top-6{margin-top:3rem}.desktop\:margin-bottom-6{margin-bottom:3rem}.desktop\:margin-y-7{margin-top:3.5rem;margin-bottom:3.5rem}.desktop\:margin-top-7{margin-top:3.5rem}.desktop\:margin-bottom-7{margin-bottom:3.5rem}.desktop\:margin-y-8{margin-top:4rem;margin-bottom:4rem}.desktop\:margin-top-8{margin-top:4rem}.desktop\:margin-bottom-8{margin-bottom:4rem}.desktop\:margin-y-9{margin-top:4.5rem;margin-bottom:4.5rem}.desktop\:margin-top-9{margin-top:4.5rem}.desktop\:margin-bottom-9{margin-bottom:4.5rem}.desktop\:margin-y-10{margin-top:5rem;margin-bottom:5rem}.desktop\:margin-top-10{margin-top:5rem}.desktop\:margin-bottom-10{margin-bottom:5rem}.desktop\:margin-y-15{margin-top:7.5rem;margin-bottom:7.5rem}.desktop\:margin-top-15{margin-top:7.5rem}.desktop\:margin-bottom-15{margin-bottom:7.5rem}.desktop\:margin-y-05em{margin-top:.5em;margin-bottom:.5em}.desktop\:margin-top-05em{margin-top:.5em}.desktop\:margin-bottom-05em{margin-bottom:.5em}.desktop\:margin-y-1em{margin-top:1em;margin-bottom:1em}.desktop\:margin-top-1em{margin-top:1em}.desktop\:margin-bottom-1em{margin-bottom:1em}.desktop\:margin-y-105em{margin-top:1.5em;margin-bottom:1.5em}.desktop\:margin-top-105em{margin-top:1.5em}.desktop\:margin-bottom-105em{margin-bottom:1.5em}.desktop\:margin-y-2em{margin-top:2em;margin-bottom:2em}.desktop\:margin-top-2em{margin-top:2em}.desktop\:margin-bottom-2em{margin-bottom:2em}.desktop\:margin-y-0{margin-top:0;margin-bottom:0}.desktop\:margin-top-0{margin-top:0}.desktop\:margin-bottom-0{margin-bottom:0}.desktop\:margin-y-auto{margin-top:auto;margin-bottom:auto}.desktop\:margin-top-auto{margin-top:auto}.desktop\:margin-bottom-auto{margin-bottom:auto}.desktop\:margin-x-1px{margin-left:1px;margin-right:1px}.desktop\:margin-right-1px{margin-right:1px}.desktop\:margin-left-1px{margin-left:1px}.desktop\:margin-x-2px{margin-left:2px;margin-right:2px}.desktop\:margin-right-2px{margin-right:2px}.desktop\:margin-left-2px{margin-left:2px}.desktop\:margin-x-05{margin-left:.25rem;margin-right:.25rem}.desktop\:margin-right-05{margin-right:.25rem}.desktop\:margin-left-05{margin-left:.25rem}.desktop\:margin-x-1{margin-left:.5rem;margin-right:.5rem}.desktop\:margin-right-1{margin-right:.5rem}.desktop\:margin-left-1{margin-left:.5rem}.desktop\:margin-x-105{margin-left:.75rem;margin-right:.75rem}.desktop\:margin-right-105{margin-right:.75rem}.desktop\:margin-left-105{margin-left:.75rem}.desktop\:margin-x-2{margin-left:1rem;margin-right:1rem}.desktop\:margin-right-2{margin-right:1rem}.desktop\:margin-left-2{margin-left:1rem}.desktop\:margin-x-205{margin-left:1.25rem;margin-right:1.25rem}.desktop\:margin-right-205{margin-right:1.25rem}.desktop\:margin-left-205{margin-left:1.25rem}.desktop\:margin-x-3{margin-left:1.5rem;margin-right:1.5rem}.desktop\:margin-right-3{margin-right:1.5rem}.desktop\:margin-left-3{margin-left:1.5rem}.desktop\:margin-x-neg-1px{margin-left:-1px;margin-right:-1px}.desktop\:margin-right-neg-1px{margin-right:-1px}.desktop\:margin-left-neg-1px{margin-left:-1px}.desktop\:margin-x-neg-2px{margin-left:-2px;margin-right:-2px}.desktop\:margin-right-neg-2px{margin-right:-2px}.desktop\:margin-left-neg-2px{margin-left:-2px}.desktop\:margin-x-neg-05{margin-left:-.25rem;margin-right:-.25rem}.desktop\:margin-right-neg-05{margin-right:-.25rem}.desktop\:margin-left-neg-05{margin-left:-.25rem}.desktop\:margin-x-neg-1{margin-left:-.5rem;margin-right:-.5rem}.desktop\:margin-right-neg-1{margin-right:-.5rem}.desktop\:margin-left-neg-1{margin-left:-.5rem}.desktop\:margin-x-neg-105{margin-left:-.75rem;margin-right:-.75rem}.desktop\:margin-right-neg-105{margin-right:-.75rem}.desktop\:margin-left-neg-105{margin-left:-.75rem}.desktop\:margin-x-neg-2{margin-left:-1rem;margin-right:-1rem}.desktop\:margin-right-neg-2{margin-right:-1rem}.desktop\:margin-left-neg-2{margin-left:-1rem}.desktop\:margin-x-neg-205{margin-left:-1.25rem;margin-right:-1.25rem}.desktop\:margin-right-neg-205{margin-right:-1.25rem}.desktop\:margin-left-neg-205{margin-left:-1.25rem}.desktop\:margin-x-neg-3{margin-left:-1.5rem;margin-right:-1.5rem}.desktop\:margin-right-neg-3{margin-right:-1.5rem}.desktop\:margin-left-neg-3{margin-left:-1.5rem}.desktop\:margin-x-neg-4{margin-left:-2rem;margin-right:-2rem}.desktop\:margin-right-neg-4{margin-right:-2rem}.desktop\:margin-left-neg-4{margin-left:-2rem}.desktop\:margin-x-neg-5{margin-left:-2.5rem;margin-right:-2.5rem}.desktop\:margin-right-neg-5{margin-right:-2.5rem}.desktop\:margin-left-neg-5{margin-left:-2.5rem}.desktop\:margin-x-neg-6{margin-left:-3rem;margin-right:-3rem}.desktop\:margin-right-neg-6{margin-right:-3rem}.desktop\:margin-left-neg-6{margin-left:-3rem}.desktop\:margin-x-neg-7{margin-left:-3.5rem;margin-right:-3.5rem}.desktop\:margin-right-neg-7{margin-right:-3.5rem}.desktop\:margin-left-neg-7{margin-left:-3.5rem}.desktop\:margin-x-neg-8{margin-left:-4rem;margin-right:-4rem}.desktop\:margin-right-neg-8{margin-right:-4rem}.desktop\:margin-left-neg-8{margin-left:-4rem}.desktop\:margin-x-neg-9{margin-left:-4.5rem;margin-right:-4.5rem}.desktop\:margin-right-neg-9{margin-right:-4.5rem}.desktop\:margin-left-neg-9{margin-left:-4.5rem}.desktop\:margin-x-neg-10{margin-left:-5rem;margin-right:-5rem}.desktop\:margin-right-neg-10{margin-right:-5rem}.desktop\:margin-left-neg-10{margin-left:-5rem}.desktop\:margin-x-neg-15{margin-left:-7.5rem;margin-right:-7.5rem}.desktop\:margin-right-neg-15{margin-right:-7.5rem}.desktop\:margin-left-neg-15{margin-left:-7.5rem}.desktop\:margin-x-4{margin-left:2rem;margin-right:2rem}.desktop\:margin-right-4{margin-right:2rem}.desktop\:margin-left-4{margin-left:2rem}.desktop\:margin-x-5{margin-left:2.5rem;margin-right:2.5rem}.desktop\:margin-right-5{margin-right:2.5rem}.desktop\:margin-left-5{margin-left:2.5rem}.desktop\:margin-x-6{margin-left:3rem;margin-right:3rem}.desktop\:margin-right-6{margin-right:3rem}.desktop\:margin-left-6{margin-left:3rem}.desktop\:margin-x-7{margin-left:3.5rem;margin-right:3.5rem}.desktop\:margin-right-7{margin-right:3.5rem}.desktop\:margin-left-7{margin-left:3.5rem}.desktop\:margin-x-8{margin-left:4rem;margin-right:4rem}.desktop\:margin-right-8{margin-right:4rem}.desktop\:margin-left-8{margin-left:4rem}.desktop\:margin-x-9{margin-left:4.5rem;margin-right:4.5rem}.desktop\:margin-right-9{margin-right:4.5rem}.desktop\:margin-left-9{margin-left:4.5rem}.desktop\:margin-x-10{margin-left:5rem;margin-right:5rem}.desktop\:margin-right-10{margin-right:5rem}.desktop\:margin-left-10{margin-left:5rem}.desktop\:margin-x-15{margin-left:7.5rem;margin-right:7.5rem}.desktop\:margin-right-15{margin-right:7.5rem}.desktop\:margin-left-15{margin-left:7.5rem}.desktop\:margin-x-card{margin-left:10rem;margin-right:10rem}.desktop\:margin-right-card{margin-right:10rem}.desktop\:margin-left-card{margin-left:10rem}.desktop\:margin-x-card-lg{margin-left:15rem;margin-right:15rem}.desktop\:margin-right-card-lg{margin-right:15rem}.desktop\:margin-left-card-lg{margin-left:15rem}.desktop\:margin-x-mobile{margin-left:20rem;margin-right:20rem}.desktop\:margin-right-mobile{margin-right:20rem}.desktop\:margin-left-mobile{margin-left:20rem}.desktop\:margin-x-05em{margin-left:.5em;margin-right:.5em}.desktop\:margin-right-05em{margin-right:.5em}.desktop\:margin-left-05em{margin-left:.5em}.desktop\:margin-x-1em{margin-left:1em;margin-right:1em}.desktop\:margin-right-1em{margin-right:1em}.desktop\:margin-left-1em{margin-left:1em}.desktop\:margin-x-105em{margin-left:1.5em;margin-right:1.5em}.desktop\:margin-right-105em{margin-right:1.5em}.desktop\:margin-left-105em{margin-left:1.5em}.desktop\:margin-x-2em{margin-left:2em;margin-right:2em}.desktop\:margin-right-2em{margin-right:2em}.desktop\:margin-left-2em{margin-left:2em}.desktop\:margin-x-0{margin-left:0;margin-right:0}.desktop\:margin-right-0{margin-right:0}.desktop\:margin-left-0{margin-left:0}.desktop\:margin-x-auto{margin-left:auto;margin-right:auto}.desktop\:margin-right-auto{margin-right:auto}.desktop\:margin-left-auto{margin-left:auto}.desktop\:measure-1{max-width:44ex}.desktop\:measure-2{max-width:60ex}.desktop\:measure-3{max-width:64ex}.desktop\:measure-4{max-width:68ex}.desktop\:measure-5{max-width:72ex}.desktop\:measure-6{max-width:88ex}.desktop\:measure-none{max-width:none}.desktop\:order-first{order:-1}.desktop\:order-last{order:999}.desktop\:order-initial{order:initial}.desktop\:order-0{order:0}.desktop\:order-1{order:1}.desktop\:order-2{order:2}.desktop\:order-3{order:3}.desktop\:order-4{order:4}.desktop\:order-5{order:5}.desktop\:order-6{order:6}.desktop\:order-7{order:7}.desktop\:order-8{order:8}.desktop\:order-9{order:9}.desktop\:order-10{order:10}.desktop\:order-11{order:11}.desktop\:padding-1px{padding:1px}.desktop\:padding-y-1px{padding-top:1px;padding-bottom:1px}.desktop\:padding-x-1px{padding-left:1px;padding-right:1px}.desktop\:padding-top-1px{padding-top:1px}.desktop\:padding-right-1px{padding-right:1px}.desktop\:padding-bottom-1px{padding-bottom:1px}.desktop\:padding-left-1px{padding-left:1px}.desktop\:padding-2px{padding:2px}.desktop\:padding-y-2px{padding-top:2px;padding-bottom:2px}.desktop\:padding-x-2px{padding-left:2px;padding-right:2px}.desktop\:padding-top-2px{padding-top:2px}.desktop\:padding-right-2px{padding-right:2px}.desktop\:padding-bottom-2px{padding-bottom:2px}.desktop\:padding-left-2px{padding-left:2px}.desktop\:padding-05{padding:.25rem}.desktop\:padding-y-05{padding-top:.25rem;padding-bottom:.25rem}.desktop\:padding-x-05{padding-left:.25rem;padding-right:.25rem}.desktop\:padding-top-05{padding-top:.25rem}.desktop\:padding-right-05{padding-right:.25rem}.desktop\:padding-bottom-05{padding-bottom:.25rem}.desktop\:padding-left-05{padding-left:.25rem}.desktop\:padding-1{padding:.5rem}.desktop\:padding-y-1{padding-top:.5rem;padding-bottom:.5rem}.desktop\:padding-x-1{padding-left:.5rem;padding-right:.5rem}.desktop\:padding-top-1{padding-top:.5rem}.desktop\:padding-right-1{padding-right:.5rem}.desktop\:padding-bottom-1{padding-bottom:.5rem}.desktop\:padding-left-1{padding-left:.5rem}.desktop\:padding-105{padding:.75rem}.desktop\:padding-y-105{padding-top:.75rem;padding-bottom:.75rem}.desktop\:padding-x-105{padding-left:.75rem;padding-right:.75rem}.desktop\:padding-top-105{padding-top:.75rem}.desktop\:padding-right-105{padding-right:.75rem}.desktop\:padding-bottom-105{padding-bottom:.75rem}.desktop\:padding-left-105{padding-left:.75rem}.desktop\:padding-2{padding:1rem}.desktop\:padding-y-2{padding-top:1rem;padding-bottom:1rem}.desktop\:padding-x-2{padding-left:1rem;padding-right:1rem}.desktop\:padding-top-2{padding-top:1rem}.desktop\:padding-right-2{padding-right:1rem}.desktop\:padding-bottom-2{padding-bottom:1rem}.desktop\:padding-left-2{padding-left:1rem}.desktop\:padding-205{padding:1.25rem}.desktop\:padding-y-205{padding-top:1.25rem;padding-bottom:1.25rem}.desktop\:padding-x-205{padding-left:1.25rem;padding-right:1.25rem}.desktop\:padding-top-205{padding-top:1.25rem}.desktop\:padding-right-205{padding-right:1.25rem}.desktop\:padding-bottom-205{padding-bottom:1.25rem}.desktop\:padding-left-205{padding-left:1.25rem}.desktop\:padding-3{padding:1.5rem}.desktop\:padding-y-3{padding-top:1.5rem;padding-bottom:1.5rem}.desktop\:padding-x-3{padding-left:1.5rem;padding-right:1.5rem}.desktop\:padding-top-3{padding-top:1.5rem}.desktop\:padding-right-3{padding-right:1.5rem}.desktop\:padding-bottom-3{padding-bottom:1.5rem}.desktop\:padding-left-3{padding-left:1.5rem}.desktop\:padding-4{padding:2rem}.desktop\:padding-y-4{padding-top:2rem;padding-bottom:2rem}.desktop\:padding-x-4{padding-left:2rem;padding-right:2rem}.desktop\:padding-top-4{padding-top:2rem}.desktop\:padding-right-4{padding-right:2rem}.desktop\:padding-bottom-4{padding-bottom:2rem}.desktop\:padding-left-4{padding-left:2rem}.desktop\:padding-5{padding:2.5rem}.desktop\:padding-y-5{padding-top:2.5rem;padding-bottom:2.5rem}.desktop\:padding-x-5{padding-left:2.5rem;padding-right:2.5rem}.desktop\:padding-top-5{padding-top:2.5rem}.desktop\:padding-right-5{padding-right:2.5rem}.desktop\:padding-bottom-5{padding-bottom:2.5rem}.desktop\:padding-left-5{padding-left:2.5rem}.desktop\:padding-6{padding:3rem}.desktop\:padding-y-6{padding-top:3rem;padding-bottom:3rem}.desktop\:padding-x-6{padding-left:3rem;padding-right:3rem}.desktop\:padding-top-6{padding-top:3rem}.desktop\:padding-right-6{padding-right:3rem}.desktop\:padding-bottom-6{padding-bottom:3rem}.desktop\:padding-left-6{padding-left:3rem}.desktop\:padding-7{padding:3.5rem}.desktop\:padding-y-7{padding-top:3.5rem;padding-bottom:3.5rem}.desktop\:padding-x-7{padding-left:3.5rem;padding-right:3.5rem}.desktop\:padding-top-7{padding-top:3.5rem}.desktop\:padding-right-7{padding-right:3.5rem}.desktop\:padding-bottom-7{padding-bottom:3.5rem}.desktop\:padding-left-7{padding-left:3.5rem}.desktop\:padding-8{padding:4rem}.desktop\:padding-y-8{padding-top:4rem;padding-bottom:4rem}.desktop\:padding-x-8{padding-left:4rem;padding-right:4rem}.desktop\:padding-top-8{padding-top:4rem}.desktop\:padding-right-8{padding-right:4rem}.desktop\:padding-bottom-8{padding-bottom:4rem}.desktop\:padding-left-8{padding-left:4rem}.desktop\:padding-9{padding:4.5rem}.desktop\:padding-y-9{padding-top:4.5rem;padding-bottom:4.5rem}.desktop\:padding-x-9{padding-left:4.5rem;padding-right:4.5rem}.desktop\:padding-top-9{padding-top:4.5rem}.desktop\:padding-right-9{padding-right:4.5rem}.desktop\:padding-bottom-9{padding-bottom:4.5rem}.desktop\:padding-left-9{padding-left:4.5rem}.desktop\:padding-10{padding:5rem}.desktop\:padding-y-10{padding-top:5rem;padding-bottom:5rem}.desktop\:padding-x-10{padding-left:5rem;padding-right:5rem}.desktop\:padding-top-10{padding-top:5rem}.desktop\:padding-right-10{padding-right:5rem}.desktop\:padding-bottom-10{padding-bottom:5rem}.desktop\:padding-left-10{padding-left:5rem}.desktop\:padding-15{padding:7.5rem}.desktop\:padding-y-15{padding-top:7.5rem;padding-bottom:7.5rem}.desktop\:padding-x-15{padding-left:7.5rem;padding-right:7.5rem}.desktop\:padding-top-15{padding-top:7.5rem}.desktop\:padding-right-15{padding-right:7.5rem}.desktop\:padding-bottom-15{padding-bottom:7.5rem}.desktop\:padding-left-15{padding-left:7.5rem}.desktop\:padding-0{padding:0}.desktop\:padding-y-0{padding-top:0;padding-bottom:0}.desktop\:padding-x-0{padding-left:0;padding-right:0}.desktop\:padding-top-0{padding-top:0}.desktop\:padding-right-0{padding-right:0}.desktop\:padding-bottom-0{padding-bottom:0}.desktop\:padding-left-0{padding-left:0}.desktop\:width-1px{width:1px}.desktop\:width-2px{width:2px}.desktop\:width-05{width:.25rem}.desktop\:width-1{width:.5rem}.desktop\:width-105{width:.75rem}.desktop\:width-2{width:1rem}.desktop\:width-205{width:1.25rem}.desktop\:width-3{width:1.5rem}.desktop\:width-4{width:2rem}.desktop\:width-5{width:2.5rem}.desktop\:width-6{width:3rem}.desktop\:width-7{width:3.5rem}.desktop\:width-8{width:4rem}.desktop\:width-9{width:4.5rem}.desktop\:width-10{width:5rem}.desktop\:width-15{width:7.5rem}.desktop\:width-card{width:10rem}.desktop\:width-card-lg{width:15rem}.desktop\:width-mobile{width:20rem}.desktop\:width-mobile-lg{width:30rem}.desktop\:width-tablet{width:40rem}.desktop\:width-tablet-lg{width:55rem}.desktop\:width-desktop{width:64rem}.desktop\:width-desktop-lg{width:75rem}.desktop\:width-widescreen{width:87.5rem}.desktop\:width-0{width:0}.desktop\:width-full{width:100%}.desktop\:width-auto{width:auto}}
+/*# sourceMappingURL=uswds.min.css.map */
diff --git a/html/matt-chat/uswds/css/uswds.min.css.map b/html/matt-chat/uswds/css/uswds.min.css.map
new file mode 100644
index 0000000..ae7833d
--- /dev/null
+++ b/html/matt-chat/uswds/css/uswds.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["uswds.css","../../packages/uswds/_index.scss","../../packages/usa-nav/src/styles/_usa-nav.scss","../../packages/uswds-elements/lib/_normalize.scss","../../packages/uswds-elements/src/styles/_sizing.scss","../../packages/uswds-core/src/styles/mixins/general/add-kerning.scss","../../packages/uswds-elements/src/styles/_typography.scss","../../packages/uswds-core/src/styles/functions/units/_root.scss","../../packages/uswds-core/src/styles/mixins/helpers/set-text-from-bg.scss","../../packages/uswds-core/src/styles/mixins/helpers/set-text-and-bg.scss","../../packages/uswds-elements/src/styles/_body.scss","../../packages/uswds-core/src/styles/placeholders/_forms.scss","../../packages/uswds-core/src/styles/mixins/utilities/_font.scss","../../packages/uswds-core/src/styles/mixins/utilities/_line-height.scss","<no source>","../../packages/uswds-core/src/styles/mixins/utilities/_border.scss","../../packages/uswds-core/src/styles/mixins/general/font-face.scss","../../packages/uswds-elements/src/styles/_focus.scss","../../packages/uswds-core/src/styles/mixins/general/focus-outline.scss","../../packages/uswds-elements/src/styles/_img.scss","../../packages/uswds-core/src/styles/mixins/general/media-link.scss","../../packages/uswds-helpers/src/styles/_usa-focus.scss","../../packages/uswds-helpers/src/styles/_usa-sr-only.scss","../../packages/uswds-core/src/styles/mixins/general/screen-reader.scss","../../packages/usa-content/src/styles/_usa-content.scss","../../packages/usa-dark-background/src/styles/_usa-dark-background.scss","../../packages/uswds-core/src/styles/mixins/helpers/set-link-from-bg.scss","../../packages/usa-display/src/styles/_usa-display.scss","../../packages/uswds-core/src/styles/mixins/utilities/_margin.scss","../../packages/uswds-core/src/styles/mixins/typography/typeset.scss","../../packages/uswds-core/src/styles/mixins/typography/headings.scss","../../packages/uswds-core/src/styles/mixins/helpers/at-media.scss","../../packages/usa-intro/src/styles/_usa-intro.scss","../../packages/uswds-core/src/styles/settings/_settings-typography.scss","../../packages/usa-icon/src/styles/_usa-icon.scss","../../packages/uswds-core/src/styles/mixins/utilities/_height.scss","../../packages/uswds-core/src/styles/mixins/utilities/_width.scss","../../packages/usa-link/src/styles/_usa-link.scss","../../packages/uswds-core/src/styles/mixins/general/external-link.scss","../../packages/uswds-core/src/styles/mixins/general/icon.scss","../../packages/usa-list/src/styles/_usa-list.scss","../../packages/uswds-core/src/styles/mixins/typography/usa-list.scss","../../packages/uswds-core/src/styles/mixins/typography/unstyled-list.scss","../../packages/usa-paragraph/src/styles/_usa-paragraph.scss","../../packages/usa-prose/src/styles/_usa-prose.scss","../../packages/uswds-core/src/styles/mixins/general/table.scss","../../packages/uswds-core/src/styles/mixins/typography/usa-table-styles.scss","../../packages/uswds-core/src/styles/mixins/general/button-unstyled.scss","../../packages/usa-accordion/src/styles/_usa-accordion.scss","../../packages/uswds-core/src/styles/mixins/general/add-background-svg.scss","../../packages/uswds-core/src/styles/variables/border-high-contrast.scss","../../packages/usa-alert/src/styles/_usa-alert.scss","../../packages/uswds-core/src/styles/mixins/helpers/alert-status-styles.scss","../../packages/uswds-core/src/styles/mixins/utilities/_padding.scss","../../packages/usa-banner/src/styles/_usa-banner.scss","../../packages/uswds-core/src/styles/mixins/utilities/_display.scss","../../packages/uswds-core/src/styles/mixins/utilities/_flex.scss","../../packages/uswds-core/src/styles/mixins/general/layout-grid.scss","../../packages/uswds-core/src/styles/mixins/utilities/_max-width.scss","../../packages/uswds-core/src/styles/mixins/utilities/_measure.scss","../../packages/uswds-core/src/styles/mixins/utilities/_float.scss","../../packages/uswds-core/src/styles/mixins/utilities/_pin.scss","../../packages/uswds-core/src/styles/mixins/utilities/_position.scss","../../packages/usa-breadcrumb/src/styles/_usa-breadcrumb.scss","../../packages/uswds-core/src/styles/mixins/utilities/_white-space.scss","../../packages/uswds-core/src/styles/mixins/utilities/_text.scss","../../packages/usa-button-group/src/styles/_usa-button-group.scss","../../packages/usa-button/src/styles/_usa-button.scss","../../packages/uswds-core/src/styles/mixins/utilities/_disabled.scss","../../packages/uswds-core/src/styles/mixins/general/button-disabled.scss","../../packages/usa-card/src/styles/_usa-card.scss","../../packages/uswds-core/src/styles/mixins/typography/add-list-reset.scss","../../packages/uswds-core/src/styles/mixins/utilities/_border-radius.scss","../../packages/uswds-core/src/styles/mixins/utilities/_order.scss","../../packages/uswds-core/src/styles/mixins/utilities/_background-color.scss","../../packages/uswds-core/src/styles/mixins/utilities/_overflow.scss","../../packages/uswds-core/src/styles/mixins/utilities/_left.scss","../../packages/uswds-core/src/styles/mixins/utilities/_right.scss","../../packages/uswds-core/src/styles/mixins/general/add-aspect.scss","../../packages/usa-checklist/src/styles/_usa-checklist.scss","../../packages/uswds-core/src/styles/mixins/general/add-checkbox-placeholder.scss","../../packages/uswds-core/src/styles/mixins/general/add-success-mark.scss","../../packages/usa-collection/src/styles/_usa-collection.scss","../../packages/uswds-core/src/styles/mixins/utilities/_align-items.scss","../../packages/uswds-core/src/styles/mixins/general/media-block-img.scss","../../packages/usa-embed-container/src/styles/_usa-embed-container.scss","../../packages/usa-footer/src/styles/_usa-footer.scss","../../packages/uswds-core/src/styles/mixins/utilities/_font-weight.scss","../../packages/usa-form/src/styles/_usa-form.scss","../../packages/usa-graphic-list/src/styles/_usa-graphic-list.scss","../../packages/usa-header/src/styles/_usa-header.scss","../../packages/uswds-core/src/styles/mixins/general/clearfix.scss","../../packages/uswds-core/src/styles/mixins/general/add-bar.scss","../../packages/usa-header/src/styles/_usa-megamenu.scss","../../packages/usa-header/src/styles/_usa-nav-container.scss","../../packages/usa-header/src/styles/_usa-navbar.scss","../../packages/usa-hero/src/styles/_usa-hero.scss","../../packages/usa-icon-list/src/styles/_usa-icon-list.scss","../../packages/usa-identifier/src/styles/_usa-identifier.scss","../../packages/uswds-core/src/styles/mixins/utilities/_text-decoration.scss","../../packages/usa-in-page-navigation/src/styles/_usa-in-page-navigation.scss","../../packages/uswds-core/src/styles/mixins/general/nav-list.scss","../../packages/usa-language-selector/src/styles/_usa-language-selector.scss","../../packages/usa-layout-docs/src/styles/_usa-layout-docs.scss","../../packages/usa-layout-grid/src/styles/_usa-layout-grid.scss","../../packages/usa-media-block/src/styles/_usa-media-block.scss","../../packages/usa-modal/src/styles/_usa-modal.scss","../../packages/usa-pagination/src/styles/_usa-pagination.scss","../../packages/usa-process-list/src/styles/_usa-process-list.scss","../../packages/usa-search/src/styles/_usa-search.scss","../../packages/usa-section/src/styles/_usa-section.scss","../../packages/usa-sidenav/src/styles/_usa-sidenav.scss","../../packages/usa-site-alert/src/styles/_usa-site-alert.scss","../../packages/usa-skipnav/src/styles/_usa-skipnav.scss","../../packages/uswds-core/src/styles/variables/project-easing.scss","../../packages/usa-step-indicator/src/styles/_usa-step-indicator.scss","../../packages/usa-summary-box/src/styles/_usa-summary-box.scss","../../packages/uswds-core/src/styles/settings/_settings-components.scss","../../packages/usa-table/src/styles/_usa-table.scss","../../packages/usa-tag/src/styles/_usa-tag.scss","../../packages/usa-tooltip/src/styles/_usa-tooltip.scss","../../packages/usa-character-count/src/styles/_usa-character-count.scss","../../packages/usa-input/src/styles/_usa-input.scss","../../packages/usa-fieldset/src/styles/_usa-fieldset.scss","../../packages/usa-legend/src/styles/_usa-legend.scss","../../packages/uswds-core/src/styles/mixins/helpers/add-label-styles.scss","../../packages/usa-input-list/src/styles/_usa-input-list.scss","../../packages/uswds-core/src/styles/mixins/helpers/checkbox-and-radio-colors.scss","../../packages/uswds-core/src/styles/mixins/helpers/format-input.scss","../../packages/uswds-core/src/styles/mixins/helpers/format-label.scss","../../packages/usa-checkbox/src/styles/_usa-checkbox.scss","../../packages/usa-select/src/styles/_usa-select.scss","../../packages/usa-combo-box/src/styles/_usa-combo-box.scss","../../packages/usa-date-picker/src/styles/_usa-date-picker.scss","../../packages/usa-error-message/src/styles/_usa-error-message.scss","../../packages/usa-file-input/src/styles/_usa-file-input.scss","../../packages/usa-form-group/src/styles/_usa-form-group.scss","../../packages/usa-hint/src/styles/_usa-hint.scss","../../packages/usa-input-prefix-suffix/src/styles/_usa-input-prefix-suffix.scss","../../packages/usa-input-mask/src/styles/_usa-input-mask.scss","../../packages/usa-label/src/styles/_usa-label.scss","../../packages/usa-memorable-date/src/styles/_usa-memorable-date.scss","../../packages/usa-radio/src/styles/_usa-radio.scss","../../packages/usa-range/src/styles/_usa-range.scss","../../packages/usa-textarea/src/styles/_usa-textarea.scss","../../packages/usa-time-picker/src/styles/_usa-time-picker.scss","../../packages/uswds-utilities/src/styles/utility-fonts.scss","../../packages/uswds-utilities/src/styles/rules/add-aspect.scss","../../packages/uswds-core/src/styles/mixins/_utility-builder.scss"],"names":[],"mappings":"AAAA,gBAAgB;ACAhB,mBAAA;ACyEA,wBACE,GACE,2BFy6TF,CEt6TA,GACE,uBFw6TF,CACF,CGh/TA,KACE,gBAAA,CACA,6BAAA,CCHE,qBAAA,CCNF,6BAAA,CACA,mBAAA,CCKA,gFAAA,CACA,aCFe,CPKjB,CGSA,KACE,QAAA,CKDA,aAAA,CCIA,qBAAA,CCpBA,gBAAA,CVgBF,CGSA,GACE,aAAA,CACA,cHFF,CGaA,GACE,sBAAA,CACA,QAAA,CACA,aHJF,CGYA,kBACE,+BAAA,CACA,aHLF,CGeA,YAEE,wCAAA,CAAA,gCHPF,CGcA,SAEE,kBHRF,CG2BA,MACE,aHVF,CGkBA,QAEE,aAAA,CACA,aAAA,CACA,iBAAA,CACA,uBHXF,CGcA,IACE,aHXF,CGcA,IACE,SHXF,CGsBA,sCAKE,mBAAA,CACA,cAAA,CACA,gBAAA,CACA,QHbF,CGoBA,cAEE,mBHdF,CGqBA,gDAIE,yBHfF,CGsBA,wHAIE,iBAAA,CACA,SHhBF,CGuBA,4GAIE,6BHjBF,CGwBA,OACE,SHlBF,CGyBA,SACE,uBHnBF,CG0BA,wDAEE,WHpBF,CG4BA,cACE,4BAAA,CACA,mBHrBF,CG4BA,4BACE,uBHtBF,CG8BA,6BACE,yBAAA,CACA,YHvBF,CGiCA,QACE,iBHzBF,CWlNA,2KCiCE,gFAAA,CACA,iBAAA,CCzBA,ebmnDF,CcpoDA,yBHoBE,eAAA,CACA,aAAA,CACA,aAAA,CAEA,gBAAA,CACA,eAAA,CACA,YAAA,EATF,AGjBA,cCqDU,gBAAA,CAhBF,oBAAA,CA0EF,kBAAA,CJ5FJ,uBAAA,CAAA,oBAAA,CAAA,eAAA,CAQA,UXwnDF,CWloDA,WAME,YAAA,CX4nDF,CWloDA,iBAEE,uBAAA,CAAA,oBAAA,CAAA,cAAA,CXgoDF,CWloDA,8DIoCU,gBAAA,CAhBF,oBAAA,CA0EF,kBAAA,CJ3FJ,eAAA,CACA,aAAA,CACA,aAAA,CACA,aAAA,CACA,gBAAA,CACA,eAAA,CACA,aAAA,CACA,SAAA,CXwnDF,CWloDA,WAEE,uBAAA,CAAA,oBAAA,CAAA,cAAA,CXgoDF,CgBpoDE,WACE,6BAoBM,CAnBN,iBAAA,CACA,eAqBM,CApBN,qBAAA,CACA,2EhBwoDJ,CgB7oDE,WACE,6BAoBM,CAnBN,iBAAA,CACA,eAqBM,CApBN,qBAAA,CACA,+EhB+oDJ,CgBppDE,WACE,6BAoBM,CAnBN,iBAAA,CACA,eAqBM,CApBN,qBAAA,CACA,2EhBspDJ,CgB3pDE,WACE,6BAoBM,CAnBN,iBAAA,CACA,eAqBM,CApBN,qBAAA,CACA,iFhB6pDJ,CgBlqDE,WACE,6BAoBM,CAnBN,iBAAA,CACA,eAqBM,CApBN,qBAAA,CACA,8EhBoqDJ,CgBzqDE,WACE,6BAoBM,CAnBN,iBAAA,CACA,eAqBM,CApBN,qBAAA,CACA,iFhB2qDJ,CgBhrDE,WACE,iCAoBM,CAnBN,iBAAA,CACA,eAqBM,CApBN,qBAAA,CACA,kFhBkrDJ,CgBvrDE,WACE,iCAoBM,CAnBN,iBAAA,CACA,eAqBM,CApBN,qBAAA,CACA,oFhByrDJ,CgB9rDE,WACE,iCAoBM,CAnBN,iBAAA,CACA,eAqBM,CApBN,qBAAA,CACA,iFhBgsDJ,CgBrsDE,WACE,iCAoBM,CAnBN,iBAAA,CACA,eAqBM,CApBN,qBAAA,CACA,wFhBusDJ,CgB5sDE,WACE,iCAoBM,CAnBN,iBAAA,CACA,eAqBM,CApBN,qBAAA,CACA,mFhB8sDJ,CgBntDE,WACE,iCAoBM,CAnBN,iBAAA,CACA,eAqBM,CApBN,qBAAA,CACA,uFhBqtDJ,CgB1tDE,WACE,8BAoBM,CAnBN,iBAAA,CACA,eAqBM,CApBN,qBAAA,CACA,4EhB4tDJ,CgBjuDE,WACE,8BAoBM,CAnBN,iBAAA,CACA,eAqBM,CApBN,qBAAA,CACA,8EhBmuDJ,CgBxuDE,WACE,8BAoBM,CAnBN,iBAAA,CACA,eAqBM,CApBN,qBAAA,CACA,2EhB0uDJ,CgB/uDE,WACE,8BAoBM,CAnBN,iBAAA,CACA,eAqBM,CApBN,qBAAA,CACA,kFhBivDJ,CgBtvDE,WACE,8BAoBM,CAnBN,iBAAA,CACA,eAqBM,CApBN,qBAAA,CACA,6EhBwvDJ,CgB7vDE,WACE,8BAoBM,CAnBN,iBAAA,CACA,eAqBM,CApBN,qBAAA,CACA,iFhB+vDJ,CiB3wDI,qHCMF,4BAAA,CACA,gBlBkxDF,CiB/wDE,wECJA,4BAAA,CACA,gBlB0xDF,CmBvyDA,IACE,cnB0yDF,CmBvyDA,gBCJE,oBAAA,CACA,apB+yDF,CIxyDE,mBAGE,kBJ+yDJ,CM7xDA,qBAIE,iBNuyDF,CqBx0DA,WHYE,4BAAA,CACA,gBlBg0DF,CsB70DA,aCAE,iBAAA,CACA,WAAA,CACA,UvBi1DF,CwBl1DE,mJAGE,cxBq1DJ,CyBv1DA,qBACE,wBzB01DF,CyBx1DE,iDAEE,UzB01DJ,CyBv1DE,sDC0BA,a1Bg0DF,C0B5zDE,2DAEE,a1Bg0DJ,C2B12DA,aCoCI,YAAA,CCCF,UAAA,CjBEA,wEAAA,CACA,iBAAA,CCzBA,eAAA,CiBUA,eAAA,CHvBA,e3Bm3DF,C6B10DE,eACE,gB7B40DJ,C6Bz0DE,eACE,c7B20DJ,C+Bz2DI,gCJlBJ,aCmCI,eAAA,CACA,YAAA,CCCF,UAAA,CjBEA,wEAAA,CACA,iBAAA,CCzBA,eAAA,CiBAA,e9Bs3DA,C6B11DA,eACE,gB7B41DF,C6Bz1DA,eACE,c7B21DF,CACF,C+B13DI,gCJlBJ,aCmCI,eAAA,CACA,YAAA,CCCF,UAAA,CjBEA,wEAAA,CACA,iBAAA,CCzBA,eAAA,CiBLA,e9B44DA,C6B32DA,eACE,gB7B62DF,C6B12DA,eACE,c7B42DF,CACF,CgC75DA,WpBuCE,wEAAA,CACA,iBAAA,CCzBA,eAAA,CmBTA,eCkUyB,CDjUzB,chC85DF,CkCz5DA,UACE,oBAAA,CACA,iBAAA,CACA,UAL8B,CAM9B,iBAAA,CACA,SlC45DF,CkCx5DE,kBCRA,aAAA,CCAA,YpCq6DF,CkC75DE,kBCRA,WAAA,CCAA,UpC06DF,CkCl6DE,kBCRA,aAAA,CCAA,YpC+6DF,CkCv6DE,kBCRA,WAAA,CCAA,UpCo7DF,CkC56DE,kBCRA,aAAA,CCAA,YpCy7DF,CkCj7DE,kBCRA,WAAA,CCAA,UpC87DF,CkCt7DE,kBCRA,aAAA,CCAA,YpCm8DF,CqCh9DA,qERwEE,aAAA,CACA,yB7B44DF,C6B14DE,kBACE,a7B44DJ,C6Bz4DE,gBACE,a7B24DJ,C6Bx4DE,iBACE,a7B04DJ,C6Bv4DE,gBX3EA,4BAAA,CACA,gBlBq9DF,CqC19DA,sDCQE,ctCs9DF,CsCn9DE,4BfnBA,iBAAA,CACA,WAAA,CACA,UAAA,CemBE,mBtCu9DJ,CsCp9DE,oGfxBA,iBAAA,CACA,WAAA,CACA,UAAA,CewBE,uCtCw9DJ,CsCr9DE,2BCkHA,iDAAA,CACA,2BAAA,CACA,iCAAA,CACA,6BAAA,CAEA,aAAA,CACA,YAAA,CDtHE,UAAA,CACA,cAAA,CACA,eAAA,CACA,eAAA,CACA,mBAAA,CACA,qBtC69DJ,CuCt2DE,iDD9HA,2BC+HE,cAAA,CACA,6BAAA,CACA,4FAAA,CAAA,oFAAA,CAEA,mCAAA,CAAA,2BAAA,CACA,6BAAA,CAAA,qBAAA,CACA,+BAAA,CAAA,uBvCw2DF,CACF,CsCx/DE,0CfnBA,iBAAA,CACA,WAAA,CACA,UAAA,CemBE,mBtC+/DJ,CsCv/DE,yCCkHA,2DAAA,CACA,2BAAA,CACA,iCAAA,CACA,6BAAA,CAEA,aAAA,CACA,YAAA,CDtHE,UAAA,CACA,cAAA,CACA,eAAA,CACA,eAAA,CACA,mBAAA,CACA,qBtCqgEJ,CuC94DE,iDD9HA,yCC+HE,cAAA,CACA,6BAAA,CACA,4FAAA,CAAA,oFAAA,CAEA,mCAAA,CAAA,2BAAA,CACA,6BAAA,CAAA,qBAAA,CACA,+BAAA,CAAA,uBvCg5DF,CACF,CwCnjEA,UZmCI,iBAAA,CACA,cAAA,CahCF,eAAA,CACA,gBzCqjEF,CyCnjEE,uJACE,ezCqjEJ,CyCljEE,8FAEE,gBzCojEJ,CwC9jEE,+CCeA,mBAAA,CACA,czCkjEF,CwC3jEE,mDZyBE,eAAA,CACA,YAAA,CcjCF,oBAAA,CACA,c1C2kEF,C0CzkEE,2UACE,eAAA,CACA,e1C2kEJ,C2CnlEA,edqDE,eAAA,CACA,cAAA,CDlBE,Y5BikEJ,C6BviEE,kCACE,c7ByiEJ,C4CxmEA,wEhCuCE,gFZ0kEF,CyCtlEE,4BbQE,iBAAA,CACA,cAAA,CahCF,eAAA,CACA,gBzCmnEF,Cc1nEA,6D+BuPI,cAAA,E/BvPJ,4BF0CE,iBAAA,CCzBA,cAAA,EiCbA,AhCJF,iB+ByNE,wBAAA,CACA,gBAAA,CACA,aAAA,CACA,gB7C67DF,C6C17DE,wEAGE,2BAAA,CACA,eAAA,CACA,wBAAA,CACA,a7C47DJ,C6Cz7DE,wCAEE,wBAAA,CACA,kB7C27DJ,C6Cx7DE,oBACE,qBAAA,CACA,e7C07DJ,C6Cv7DE,4CjCzMA,cAAA,CiC2ME,eAAA,CACA,oB7C27DJ,C6Ct7DE,mCAjLA,oBAAA,CACA,iB7C0mEF,C6CzmEE,0CACE,+BAAA,CACA,yBAAA,CACA,uBAAA,CACA,QAAA,CACA,UAAA,CACA,QAAA,CACA,MAAA,CACA,iBAAA,CACA,U7C2mEJ,C6Ch8DM,6JEhPJ,4BAAA,CACA,QAAA,CACA,eAAA,CACA,eAAA,CACA,eAAA,CACA,sBAAA,CAGA,SAAA,CACA,UAAA,CZVA,WAAA,CCAA,UAAA,CS6EA,iCAAA,CACA,sBAAA,CACA,aAAA,CACA,cAAA,CACA,oBAAA,CACA,QAAA,CACA,iBAAA,CACA,YAAA,CACA,iBAAA,CACA,oBAAA,CAEA,OAAA,CACA,2B7ConEF,C6B/oEE,6KACE,a7BipEJ,C6B9oEE,yKACE,a7BgpEJ,C6B7oEE,2KACE,a7B+oEJ,C6B5oEE,yKX3EA,4BAAA,CACA,gBlB0tEF,C+C9sEE,mtHAmBE,4BAAA,CACA,eAAA,CACA,yB/C8rEJ,C+C3rEE,iMACE,a/C6rEJ,C+C1rEE,mMACE,a/C4rEJ,C+CzrEE,i9BAKE,a/CurEJ,C+CrrEI,8BAPF,i9BAQI,c/CwrEJ,CACF,C6CnpEE,iLV1FA,aAAA,CCAA,YAAA,CS4FE,qB7CspEJ,C6CrpEI,8VACE,gB7CupEN,C6C7oEE,ufACE,Y7C+oEJ,C6C7oEE,qoBACE,S7C+oEJ,C6CrgEI,iHAEE,wB7CsgEN,C6ClgEM,uKE3PJ,4BAAA,CACA,QAAA,CACA,eAAA,CACA,eAAA,CACA,eAAA,CACA,sBAAA,CAGA,SAAA,CACA,UAAA,CZVA,WAAA,CCAA,UAAA,CS6EA,iCAAA,CACA,sBAAA,CACA,aAAA,CACA,cAAA,CACA,oBAAA,CACA,QAAA,CACA,iBAAA,CACA,YAAA,CACA,iBAAA,CACA,oBAAA,CAEA,OAAA,CACA,2B7CisEF,C6B5tEE,4FACE,a7B8tEJ,C6B3tEE,0FACE,a7B6tEJ,C6B1tEE,2FACE,a7B4tEJ,C6BztEE,0FX3EA,4BAAA,CACA,gBlBuyEF,C+C3xEE,k9DAmBE,4BAAA,CACA,eAAA,CACA,yB/C2wEJ,C+CxwEE,sGACE,a/C0wEJ,C+CvwEE,uGACE,a/CywEJ,C+CtwEE,ogBAKE,a/CowEJ,C+ClwEI,8BAPF,ogBAQI,c/CqwEJ,CACF,C6ChuEE,8FV1FA,aAAA,CCAA,YAAA,CS4FE,qB7CmuEJ,C6CluEI,kXACE,gB7CouEN,C6CzsEE,4ZACE,Y7C2sEJ,C6BvwEE,2FACE,a7BqyEJ,C6BlyEE,yFACE,a7BoyEJ,C6BjyEE,0FACE,a7BmyEJ,C6BhyEE,yFX3EA,4BAAA,CACA,gBlB82EF,C+Cl2EE,+7DAmBE,4BAAA,CACA,eAAA,CACA,yB/Ck1EJ,C+C/0EE,qGACE,a/Ci1EJ,C+C90EE,sGACE,a/Cg1EJ,C+C70EE,+fAKE,a/C20EJ,C+Cz0EI,8BAPF,+fAQI,c/C40EJ,CACF,C6CvyEE,6FV1FA,aAAA,CCAA,YAAA,CS4FE,qB7C0yEJ,C6C5nEI,qCACE,wBAAA,CACA,a7CooEN,C6ChoEE,4EAEE,wBAAA,CACA,a7CkoEJ,C6C7nEE,2HAGE,qB7CmoEJ,C6ChoEE,qCACE,YAAA,CACA,aAAA,CAmBA,aAAA,CACA,aAAA,C7C8mEJ,C6ChoEI,gDACE,a7CkoEN,C6CpnEE,qCAEE,aAAA,CACA,c7C4nEJ,C6CvnEE,oEAEE,qB7CynEJ,C6ClnEM,yGACE,wBAAA,CACA,a7ConER,C6CnnEQ,4EACE,wBAAA,CACA,a7CqnEV,C+Bz5EI,mCc4FF,iFACE,Y7Cg0EF,C6C7zEA,kCACE,qB7C+zEF,C6C5zEA,oEAEE,qBAAA,CACA,aAAA,CACA,U7C8zEF,C6C3zEA,2EACE,kCAAA,CACA,kBAAA,CACA,U7C6zEF,C6C5zEE,kGAEE,kB7C8zEJ,C6C3zEI,wGAEE,wB7C6zEN,C6CxzEI,kQAEE,+B7C0zEN,C6CrzEA,sMAEE,qB7CuzEF,C6CrzEE,0GACE,wBAAA,CACA,aAAA,CACA,eAAA,CACA,qBAAA,CACA,0B7CwzEJ,C6Cn2EA,yCACE,qB7C02EF,C6Cv2EA,kFAEE,qBAAA,CACA,aAAA,CACA,U7Cy2EF,C6Cl2EE,gHAEE,kB7Cy2EJ,C6Ct2EI,sHAEE,wB7Cw2EN,C6Cx1EE,wHACE,wBAAA,CACA,aAAA,CACA,eAAA,CACA,qBAAA,CACA,0B7Cm2EJ,C6C51EE,gHjC3JF,gFAAA,CACA,iBAAA,CCzBA,eAAA,CgC0LI,wBAAA,CACA,aAzLoB,CA0LpB,eAAA,CACA,mB7C41EJ,C6C31EI,8HACE,Y7C81EN,CAxDF,C6Cx2EE,6GACE,Y7Cm6EJ,C6Ch6EE,gDACE,qBAAA,CAKA,qBAAA,CACA,aAAA,CACA,SAAA,C7C25EJ,C6C/5EE,gDAEE,qBAAA,CACA,aAAA,CACA,U7Ci6EJ,C6C95EE,wLACE,kCAAA,CACA,kBAAA,CACA,U7Cg6EJ,C6C/5EI,8HAEE,kB7Ci6EN,C6C95EM,oIAEE,wB7Cg6ER,C6C35EM,0TAEE,+B7C65ER,C6Cx5EE,8PAEE,qB7C05EJ,C6Cx5EI,sIACE,wBAAA,CACA,aAAA,CACA,eAAA,CACA,qBAAA,CACA,0B7C25EN,C6Ct8EE,uDACE,qBAAA,CAKA,qBAAA,CACA,aAAA,CACA,SAAA,C7Co8EJ,C6Cx8EE,uDAEE,qBAAA,CACA,aAAA,CACA,U7C08EJ,C6Cn8EI,4IAEE,kB7C08EN,C6Cv8EM,kJAEE,wB7Cy8ER,C6Cz7EI,oJACE,wBAAA,CACA,aAAA,CACA,eAAA,CACA,qBAAA,CACA,0B7Co8EN,C6C77EI,4IjC3JF,gFAAA,CACA,iBAAA,CCzBA,eAAA,CgC0LI,wBAAA,CACA,aAzLoB,CA0LpB,eAAA,CACA,mB7C67EN,C6C57EM,0JACE,Y7C+7ER,C8C5mFE,4CDoXA,gBAAA,CACA,iB7C2vEF,C6CzvEE,uDACE,Q7C2vEJ,C6CxvEE,+CACE,kB7C0vEJ,C4ChpFI,af8CF,eAAA,CACA,c7BqmFF,C4ChpFI,oFhBwBA,eAAA,CACA,YAAA,CCCF,U7BgoFF,C4CjpFI,eACE,cXyZuB,CWxZvB,e5CmpFN,C4C/oFM,gGAME,gB5CipFR,C4C5oFI,sEhCEF,wEAAA,CACA,iBAAA,CCzBA,eAAA,CiBAA,e9BwqFF,C4C/oFI,wDhCAF,iBZqpFF,C4ClpFI,0ChCHF,iBZ2pFF,C4CrpFI,4BhCNF,gBZiqFF,C4CxpFI,chCTF,gBZuqFF,CcjtFA,6BFyCE,+EAAA,EgCaE,A9BtDJ,cF0CE,gBAAA,CCzBA,eAAA,CiBwBA,eAAA,CACA,qBAAA,CACA,wB9B8qFF,CgDjlFA,eNnIE,oBAAA,CMmCA,aAAA,CACA,QAAA,CACA,SAAA,CACA,UAAA,CpCDA,iBAAA,CCzBA,ebstFF,CgD1mFE,wBACE,ehDgnFJ,CgD/mFI,8BACE,iBhDinFN,CgDhnFM,oCACE,iBhDknFR,CgDtmFE,sEAEE,gBhDwmFJ,CgDnmFE,iDACE,kCAhJe,CAiJf,gCAjJe,CAkJf,iCAlJe,CAmJf,mBhDsmFJ,CgDnmFE,iDACE,ehDqmFJ,CgDjmFA,2DpCxHE,gFAAA,CACA,iBAAA,CCzBA,cAAA,CmCqJA,QhDomFF,CgDlmFE,+FACE,gBhDqmFJ,CgDjmFA,wBxCzJE,aAAA,CCIA,qBAAA,CuC0JA,YAAA,CACA,aAAA,CACA,wChDkmFF,CgDhmFE,qCACE,YhDkmFJ,CgD/lFE,oCACE,ehDimFJ,CgD7lFA,uBD9KE,QAAA,CACA,eAAA,CACA,eAAA,CAEA,sBAAA,CACA,eAAA,CAEA,SAAA,CvCJA,aAAA,CCIA,wBAAA,CwClBA,0FAAA,CAEA,2BAAA,CDyDA,wCAAA,CACA,sBAAA,CACA,cAAA,CACA,oBAAA,CACA,eAAA,CACA,QAAA,CACA,gCAAA,CACA,oBAAA,CACA,UhD+uFF,C6B3uFE,+BACE,a7B6uFJ,C6BtuFE,8BACE,a7B2uFJ,C6BxuFE,6BX3EA,4BAAA,CACA,gBlBszFF,C+C1yFE,20BAmBE,4BAAA,CACA,eAAA,CACA,yB/C0xFJ,C+CvxFE,yCACE,a/CyxFJ,C+CtxFE,0CACE,a/CwxFJ,C+CrxFE,mNAKE,a/CmxFJ,C+CjxFI,8BAPF,mNAQI,c/CoxFJ,CACF,CgD7wFE,6BxCvDA,aAAA,CCIA,wBAAA,CwClBA,0FAAA,CAEA,2BAAA,CD6EE,oBhD0wFJ,CgDvwFE,8BAuGF,uBAtGI,4BEtFmB,CFuFnB,iBhD0wFF,CgDxwFE,+BTqDF,iDAAA,CACA,2BAAA,CACA,iCAAA,CACA,6BAAA,CACA,oBAAA,CACA,aAAA,CACA,YAAA,CSxGA,WAAA,CACA,iBAAA,CACA,aAAA,CACA,KAAA,CA6CI,UhDmxFJ,CuCrtFA,iDSjEE,+BTkEA,cAAA,CACA,2BAAA,CACA,4FAAA,CAAA,oFAAA,CAEA,mCAAA,CAAA,2BAAA,CACA,6BAAA,CAAA,qBAAA,CACA,+BAAA,CAAA,uBvCutFA,CACF,CACF,CgD1rFA,4CAzFE,sBhDyxFF,CgDvxFE,8FCtGA,uFAAA,CAEA,2BjD+3FF,CgDnxFE,8BACE,oDT4BF,8CAAA,CACA,2BAAA,CACA,iCAAA,CACA,6BAAA,CACA,oBAAA,CACA,aAAA,CACA,YAAA,CSxGA,WAAA,CACA,iBAAA,CACA,aAAA,CACA,KhDm2FA,CuCxvFA,iDSxCE,oDTyCA,cAAA,CACA,2BAAA,CACA,yFAAA,CAAA,iFAAA,CAEA,mCAAA,CAAA,2BAAA,CACA,6BAAA,CAAA,qBAAA,CACA,+BAAA,CAAA,uBvC0vFA,CACF,CACF,CmDn5FA,WCqBE,wBAAA,CACA,+BAAA,CACA,apDk4FF,CoDh4FE,4BxCGA,gFAAA,CACA,iBAAA,CCzBA,eAAA,CwCIE,mBAAA,CACA,gBAAA,CDoBA,iBpDo4FJ,CoDj4FE,4BxBRE,eAAA,CACA,Y5B44FJ,CoDl4FI,uCC3BA,gBAAA,CACA,arDg6FJ,CoDj4FE,+BxCZA,gFAAA,CACA,iBAAA,CCzBA,cAAA,CuCsCE,YAAA,CACA,mBpDq4FJ,CoDl4FE,2DAEE,gBpDo4FJ,CoDl4FI,iFACE,epDq4FN,CmDr7FE,4BEEE,oBAAA,CACA,qBrDs7FJ,CmDt7FI,oCACE,oBnDw7FN,CmDl7FE,aACE,enDo7FJ,CmD/6FE,oBCyCA,wBAAA,CACA,yBpD04FF,CmDj7FI,qC3CfF,aAAA,CCIA,wBAAA,C2CiEA,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,0BpDg4FF,CoDr2FE,6Cb0BA,uDAAA,CACA,2BAAA,CACA,iCAAA,CACA,yBAAA,CAEA,WAAA,CACA,UAAA,Ca9BE,UAAA,CACA,aAAA,CACA,iBAAA,CACA,kBpD62FJ,CuC50FE,iDatCA,6CbuCE,cAAA,CACA,wBAAA,CACA,kGAAA,CAAA,0FAAA,CAEA,mCAAA,CAAA,2BAAA,CACA,6BAAA,CAAA,qBAAA,CACA,2BAAA,CAAA,mBvC80FF,CACF,CoDn5FE,uCACE,kBpDq5FJ,CoDl5FE,uL1B9DA,a1Bm9FF,C0Bl9FE,uDACE,a1Bo9FJ,C0Bl9FE,2GAEE,a1Bm9FJ,CmD/9FE,oBCyCA,wBAAA,CACA,yBpD07FF,CmDj+FI,qC3CfF,aAAA,CCIA,wBAAA,C2CiEA,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,0BpDg7FF,CoDr5FE,6Cb0BA,kDAAA,CACA,2BAAA,CACA,iCAAA,CACA,yBAAA,CAEA,WAAA,CACA,UAAA,Ca9BE,UAAA,CACA,aAAA,CACA,iBAAA,CACA,kBpD65FJ,CuC53FE,iDatCA,6CbuCE,cAAA,CACA,wBAAA,CACA,6FAAA,CAAA,qFAAA,CAEA,mCAAA,CAAA,2BAAA,CACA,6BAAA,CAAA,qBAAA,CACA,2BAAA,CAAA,mBvC83FF,CACF,CoDn8FE,uCACE,kBpDq8FJ,C0B//FE,uDACE,a1BogGJ,C0BlgGE,2GAEE,a1BmgGJ,CmD/gGE,kBCyCA,wBAAA,CACA,yBpD0+FF,CmDjhGI,mC3CfF,aAAA,CCIA,wBAAA,C2CiEA,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,0BpDg+FF,CoDr8FE,2Cb0BA,gDAAA,CACA,2BAAA,CACA,iCAAA,CACA,yBAAA,CAEA,WAAA,CACA,UAAA,Ca9BE,UAAA,CACA,aAAA,CACA,iBAAA,CACA,kBpD68FJ,CuC56FE,iDatCA,2CbuCE,cAAA,CACA,wBAAA,CACA,2FAAA,CAAA,mFAAA,CAEA,mCAAA,CAAA,2BAAA,CACA,6BAAA,CAAA,qBAAA,CACA,2BAAA,CAAA,mBvC86FF,CACF,CoDn/FE,qCACE,kBpDq/FJ,C0B/iGE,qDACE,a1BojGJ,C0BljGE,uGAEE,a1BmjGJ,CmD/jGE,iBCyCA,wBAAA,CACA,yBpD0hGF,CmDjkGI,kC3CfF,aAAA,CCIA,wBAAA,C2CiEA,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,0BpDghGF,CoDr/FE,0Cb0BA,+CAAA,CACA,2BAAA,CACA,iCAAA,CACA,yBAAA,CAEA,WAAA,CACA,UAAA,Ca9BE,UAAA,CACA,aAAA,CACA,iBAAA,CACA,kBpD6/FJ,CuC59FE,iDatCA,0CbuCE,cAAA,CACA,wBAAA,CACA,0FAAA,CAAA,kFAAA,CAEA,mCAAA,CAAA,2BAAA,CACA,6BAAA,CAAA,qBAAA,CACA,2BAAA,CAAA,mBvC89FF,CACF,CoDniGE,oCACE,kBpDqiGJ,C0B/lGE,oDACE,a1BomGJ,C0BlmGE,qGAEE,a1BmmGJ,CmD/mGE,sBCyCA,wBAAA,CACA,yBpD0kGF,CmDjnGI,uC3CfF,UAAA,CCIA,wBAAA,C2CiEA,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,0BpDgkGF,CoDriGE,+Cb0BA,0DAAA,CACA,2BAAA,CACA,iCAAA,CACA,yBAAA,CAEA,WAAA,CACA,UAAA,Ca9BE,UAAA,CACA,aAAA,CACA,iBAAA,CACA,kBpD6iGJ,CuC5gGE,iDatCA,+CbuCE,cAAA,CACA,qBAAA,CACA,2FAAA,CAAA,mFAAA,CAEA,mCAAA,CAAA,2BAAA,CACA,6BAAA,CAAA,qBAAA,CACA,2BAAA,CAAA,mBvC8gGF,CACF,CoDnlGE,yCACE,kBpDqlGJ,CoDllGE,0G1B9DA,a1BmpGF,C0B/oGE,+GAEE,a1BmpGJ,CoDniGE,kCCvIE,oBAAA,CACA,iBAAA,CDyIA,YpDsiGJ,CoDpjGE,yCAIE,aAAA,CACA,SAAA,CACA,YpDmjGJ,CoDxjGI,iDADF,yCAEI,wBAAA,CAAA,gBpD2jGJ,CACF,CoD9iGI,oCACE,gBpDgjGN,CmDtqGE,0CACE,anDwqGJ,CoDnlGE,qCACE,YpDslGJ,CoDplGI,4CACE,YpDslGN,CoDnlGI,uCACE,apDqlGN,CmDvqGE,sCACE,enD0qGJ,CsD3rGA,Y1CCE,gFAAA,CACA,iBAAA,CCzBA,eAAA,CyC0BA,wBtD+rGF,C+BttGI,gCuBoBJ,YAMI,gBAAA,CACA,gBtDgsGF,CACF,CsD9rGE,2B1CTA,gFAAA,CACA,iBAAA,CCzBA,ebouGF,CsD5rGE,sBC1CA,YAAA,CCiCM,cxDysGR,CsD7rGI,kC1BlCA,mBAAA,CACA,oB5BkuGJ,CyDjrGM,oCJ1DF,mBAAA,CACA,oBrD8uGJ,C+B7uGI,gCuB4CA,0CEhBI,aAAA,CpBjCN,SpCuvGA,CACF,CsD9rGA,sG9CrDE,aRwvGF,CsD3rGA,qB1BvDI,gBAAA,CACA,iBAAA,C8BZF,eAAA,CJqEA,4BAAA,CACA,cAAA,CACA,eAAA,CAGA,8BAAA,CACA,UtDmsGF,C+BzwGI,gCuB6DJ,qBD/DI,iBAAA,CACA,iBAAA,CrD+wGF,CACF,C+B/wGI,gCuB6DJ,qBD5DI,qBAAA,CACA,kBrDwxGF,CACF,CsD9sGI,mCACE,QtDgtGN,CsD3sGA,sBCxFE,YAAA,CCiCM,sBAAA,CGjCN,cAAA,CL4FA,gBtD8sGF,C+BryGI,gCuBmFJ,sBAOI,atD+sGF,CACF,CsD5sGA,wBAME,YAFc,CAGd,etD0sGF,CsDzsGE,6BACE,iBtD2sGJ,CsDzsGI,8BAHF,6BAII,etD4sGJ,CACF,CsDxsGA,mB1BzGI,gBAAA,CACA,iBAAA,C8BZF,eAAA,CLGE,iBAAA,CACA,kBAAA,CEJF,YAAA,CCiCM,cAAA,CAAA,sBAAA,CFwFN,etDitGF,C+Br0GI,gCuB+GJ,mBDjHI,iBAAA,CACA,iBAAA,CrD20GF,CACF,C+B30GI,gCuB+GJ,mBEnFQ,kBxDyzGN,CACF,CsD3tGA,oBD1HI,oBAAA,CACA,iBAAA,CC2HF,eAAA,CACA,eAAA,CACA,eAAA,CACA,iBtD+tGF,C+B/1GI,gCuB2HJ,oBD1HI,qBAAA,CACA,kBAAA,CCkIA,YtDiuGF,CACF,CsD9tGA,yB1BvHI,eAAA,CACA,YAAA,C0BwHF,eAAA,CACA,etDkuGF,CsD/tGA,2B5B5HE,aAAA,C4BoIA,eAAA,CACA,eAAA,CACA,cAAA,CACA,yBtD4tGF,CuC7sGE,kCA3CA,sDAAA,CACA,2BAAA,CACA,iCAAA,CACA,yBAAA,CACA,oBAAA,CACA,WAAA,CACA,UAAA,CAuCE,UAAA,CACA,qBAXe,CAcb,gBvCmtGN,CuCxvGE,iDA+BA,kCA9BE,cAAA,CACA,wBAAA,CACA,iGAAA,CAAA,yFAAA,CAEA,mCAAA,CAAA,2BAAA,CACA,6BAAA,CAAA,qBAAA,CACA,2BAAA,CAAA,mBvC0vGF,CuCvvGI,wCACE,wBvCyvGN,CACF,CuCztGI,wCACE,UAAA,CACA,wBvC2tGN,C0B/3GE,mCACE,a1Bi4GJ,C0B/3GE,mEAEE,a1Bg4GJ,C+Bx5GI,gCuB8IJ,2BAkBI,YtD+vGF,CACF,CsD7vGE,8BArBF,2BAsBI,ctDgwGF,CsD9vGE,kCACE,2BtDgwGJ,CACF,CsD5vGA,yBMjLE,UAAA,CNmLA,kBAAA,CACA,UtD+vGF,C+B96GI,gCuB4KJ,yBAMI,kBAAA,CACA,atDgwGF,CACF,CsD7vGA,8BACE,oBtDgwGF,C+Bx7GI,gCuBuLJ,8BAII,4BAAA,CACA,aAAA,CACA,eAAA,CACA,eAAA,CACA,YAAA,CACA,etDiwGF,CACF,CsD/vGE,iDACE,atDiwGJ,C+Br8GI,gCuBmMF,iDAII,gBtDkwGJ,CACF,CsD/vGE,yDACE,YtDiwGJ,CsD7vGA,oBPpNE,4BAAA,CACA,QAAA,CACA,eAAA,CACA,eAAA,CACA,eAAA,CACA,sBAAA,CACA,eAAA,CACA,QAAA,CcoBI,MAAA,CC5BJ,iBAAA,CDqBI,QAAA,CACA,KAAA,CnCCJ,aAAA,C4BwMA,aAAA,CACA,eAAA,CACA,WAAA,CACA,eAAA,CAEA,SAAA,CACA,oBAAA,CACA,UtD2wGF,C6Bv6GE,0BX3EA,4BAAA,CACA,gBlB8/GF,C+Cl/GE,kxBAmBE,4BAAA,CACA,eAAA,CACA,yB/Ck+GJ,C+C/9GE,sCACE,a/Ci+GJ,C+C99GE,uCACE,a/Cg+GJ,C+C79GE,oMAKE,a/C29GJ,C+Cz9GI,8BAPF,oMAQI,c/C49GJ,CACF,C0Bz/GE,4BACE,a1B2/GJ,C0Bz/GE,qDAEE,a1B0/GJ,C+Bp/GI,mCuBkLJ,oBAoBI,UtDkzGF,CsDhzGE,kCAEE,sBtDizGJ,CACF,C+B1hHI,gCuBgNJ,oB5B9LE,aAAA,CmCWI,WAAA,CACA,SAAA,CACA,UAAA,CACA,QAAA,CPoNF,cAAA,CACA,iBAAA,CACA,iBtDgzGF,CuC93GA,2BA3CA,sDAAA,CACA,2BAAA,CACA,iCAAA,CACA,yBAAA,CACA,oBAAA,CACA,WAAA,CACA,UAAA,CAuCE,UAAA,CACA,qBAXe,CAcb,evCo4GJ,CuCz6GA,iDA+BA,2BA9BE,cAAA,CACA,wBAAA,CACA,iGAAA,CAAA,yFAAA,CAEA,mCAAA,CAAA,2BAAA,CACA,6BAAA,CAAA,qBAAA,CACA,2BAAA,CAAA,mBvC26GA,CuCx6GE,iCACE,wBvC06GJ,CACF,CuC14GE,iCACE,UAAA,CACA,wBvC44GJ,C0BhjHA,4BACE,a1BkjHF,C0BhjHA,qDAEE,a1BijHF,CsDj1GE,4DAEE,iBtDk1GJ,CACF,CsDj1GM,mDAJF,4DAKI,2BtDo1GN,CACF,C+BllHI,gCuBiQA,0BAEE,oBtDm1GJ,CACF,CsD90GE,8KAIE,qBtD60GJ,CsD30GI,8BACE,8MACE,YtD60GN,CACF,C+BjkHI,mCQ0IF,+CA3CA,gDAAA,CACA,2BAAA,CACA,iCAAA,CACA,6BAAA,CACA,oBAAA,CACA,WAAA,CACA,UAAA,CAuCE,UAAA,CACA,qBeiHI,Cf9GF,avC87GJ,CuCn+GA,iDA+BA,+CA9BE,cAAA,CACA,wBAAA,CACA,2FAAA,CAAA,mFAAA,CAEA,mCAAA,CAAA,2BAAA,CACA,6BAAA,CAAA,qBAAA,CACA,+BAAA,CAAA,uBvCq+GA,CACF,CsDt1GI,gDOhRA,QAAA,CACA,KAAA,CCtBJ,iBAAA,CD8BI,OAAA,CP0QE,wBAAA,CACA,UAAA,CACA,aAAA,CACA,WAAA,CACA,UtD21GN,CsDz1GI,+COzRA,QAAA,CACA,KAAA,CCtBJ,iBAAA,CD8BI,O7DgnHJ,CACF,C+B1oHI,gCuBsRF,wCAiCI,WAAA,CACA,SAAA,CACA,iBtDu1GJ,CuCx+GA,+CA3CA,sDAAA,CACA,2BAAA,CACA,iCAAA,CACA,yBAAA,CACA,oBAAA,CACA,WAAA,CACA,UAAA,CAuCE,UAAA,CACA,qBeyII,CftIF,evC8+GJ,CuCnhHA,iDA+BA,+CA9BE,cAAA,CACA,wBAAA,CACA,iGAAA,CAAA,yFAAA,CAEA,mCAAA,CAAA,2BAAA,CACA,6BAAA,CAAA,qBAAA,CACA,2BAAA,CAAA,mBvCqhHA,CuClhHE,qDACE,wBvCohHJ,CACF,CuCp/GE,qDACE,UAAA,CACA,wBAAA,CesIE,gBAAA,CtDg3GN,CsDl3GI,+CAEE,iBtDm3GN,CACF,CsDl3GQ,mDAJF,oGAKI,2BtDq3GR,CACF,CsD/2GA,yB/BzVE,iBAAA,CACA,WAAA,CACA,UAAA,C+ByVA,yBtDo3GF,C+B7rHI,gCuBuUJ,yB/BtUE,eAAA,C+B4UE,ctDq3GF,CACF,CsDn3GE,8BATF,yBAUI,ctDs3GF,CACF,CsDn3GA,kBACE,YtDs3GF,CsDj3GE,qC/B7WA,iBAAA,CACA,WAAA,CACA,UvBkuHF,C+DprHA,gBnDTE,gFAAA,CACA,iBAAA,CCzBA,eAAA,CLGA,aAAA,CCIA,qBAAA,C4CNE,cAAA,CACA,erD6tHJ,C+B5tHI,gCgC8BJ,gBV1BI,mBAAA,CAAA,gBrD6tHF,C+DjrHE,iECrDF,kBAAA,CDwDM,sBAAA,CACA,e/DorHN,CANF,C+DxqHA,sBnCzCI,eAAA,CACA,YAAA,CcjCF,oBAAA,CACA,cAAA,CaSA,aAAA,CFCE,cAAA,CUkEF,mBAAA,CACA,oB/DqrHF,C+DlrHA,2BxCpFE,iBAAA,CACA,WAAA,CACA,UAAA,CgCWA,cvDowHF,C+BjuHI,mCgCoCJ,2BCvEE,kBhEwwHA,C+DzrHE,6CxC7EF,evBywHA,C+DzrHI,mEAnDJ,4BAAA,CACA,gCAAA,CRhCA,oBAAA,CFSE,mBAAA,CAAA,gBrDywHF,CuCrmHA,2EA3CA,qDAAA,CACA,2BAAA,CACA,iCAAA,CACA,uBAAA,CACA,oBAAA,CACA,UAAA,CACA,SAAA,CAuCE,UAAA,CACA,uBvC8mHF,CuChpHA,iDA+BA,2EA9BE,cAAA,CACA,wBAAA,CACA,gGAAA,CAAA,wFAAA,CAEA,mCAAA,CAAA,2BAAA,CACA,6BAAA,CAAA,qBAAA,CACA,yBAAA,CAAA,iBvCkpHA,CACF,C+DxsHM,0EACE,YAnGa,CAqGb,UAjGuB,CAkGvB,iB/DysHR,C+DrsHM,sNEpDE,oBjE4vHR,C+DnsHM,wEEzDE,yBjE+vHR,C+DhsHI,2EACE,c/DksHN,CACF,C+BlzHI,gCgCkEJ,2BxCrEE,evByzHA,CuC9oHA,mDA3CA,wDAAA,CACA,2BAAA,CACA,iCAAA,CACA,uBAAA,CACA,oBAAA,CAEA,SAAA,CAuCE,UAAA,CACA,uBvCupHF,CuCzrHA,iDA+BA,mDA9BE,cAAA,CACA,wBAAA,CACA,mGAAA,CAAA,2FAAA,CAEA,mCAAA,CAAA,2BAAA,CACA,6BAAA,CAAA,qBAAA,CACA,yBAAA,CAAA,iBvC2rHA,CACF,C+DzsHE,mDAEE,YA5IiB,CA6IjB,aAxIoB,CAyIpB,cAzIoB,CA0IpB,UA3I2B,CA4I3B,iB/D0sHJ,CACF,C+DtsHA,sBrC5HE,aAAA,C6BvBA,cAAA,CUoDQ,oBjE2yHV,C0Bv0HE,8BACE,a1By0HJ,C0Bv0HE,yDAEE,a1Bw0HJ,C+DvsHE,2BE1GQ,yBjEozHV,C+Bn2HI,gCgCmKJ,sBlDtKE,eb22HA,CACF,C+DjsHE,iDR7KA,oBvDi3HF,CkE33HA,kBtCgCI,eAAA,CACA,YAAA,CsC/BF,YAAA,CACA,qBAAA,CACA,cAAA,CACA,oBAAA,CACA,mBAAA,CACA,oBAAA,CACA,clE+3HF,C+Bx3HI,gCmCfJ,kBAWI,gBAAA,CACA,mBAAA,CACA,kBlEg4HF,CACF,CkE73HE,oCACE,WlE+3HJ,C+Bl4HI,gCmCKA,4DAEI,YAAA,CACA,elE+3HN,CACF,CkE13HM,uEACE,YAAA,CACA,elE43HR,CkEt3HA,wBACE,alEy3HF,C+Bh5HI,gCmCyBF,mCAEI,clEy3HJ,CACF,CkEt3HE,oCACE,WAAA,CACA,aAAA,CACA,clEw3HJ,CkEn3HA,6BACE,kBAAA,CACA,gBAAA,CACA,6BAAA,CACA,aAAA,CACA,clEs3HF,C+Bl6HI,gCmCuCJ,6BAQI,0BlEu3HF,CACF,CkEr3HE,yCACE,iBAAA,CACA,sBlEu3HJ,C+B36HI,gCmCkDF,yCAKI,UlEw3HJ,CACF,CkEr3HI,+FAEE,SlEs3HN,CkEn3HI,+CACE,SlEq3HN,CkEj3HE,qDACE,aAAA,CACA,cAAA,CACA,UlEm3HJ,C+B37HI,gCmCqEF,qDAMI,UlEo3HJ,CACF,CkEl3HI,6EACE,yBAAA,CACA,4BAAA,CACA,iBlEo3HN,CkEj3HI,4EACE,wBAAA,CACA,2BAAA,CACA,cAAA,CACA,gBAAA,CACA,sBlEm3HN,C+B58HI,gCmCoFA,4EAQI,gBAAA,CACA,UlEo3HN,CACF,CkEj3HI,4GACE,eAAA,CACA,iBAAA,CACA,gBlEm3HN,CkE92HM,kGACE,8BAAA,CACA,QAAA,CACA,UAAA,CACA,aAAA,CACA,WAAA,CACA,iBAAA,CACA,SAAA,CACA,KAAA,CACA,SAAA,CACA,SlEg3HR,CkE72HM,6GACE,0BlE+2HR,CkE52HM,+GACE,0BlE82HR,CkE32HM,wGACE,0BlE62HR,CkE12HM,iPAEE,uBlE42HR,CkEz2HM,oNAEE,YlE22HR,CmEhgIA,YvDiCE,gFAAA,CACA,iBAAA,CCzBA,cAAA,CLGA,UAAA,CCIA,wBAAA,C0DZA,uBAAA,CAAA,oBAAA,CAAA,eAAA,CACA,kBAAA,CACA,QAAA,CACA,oBAAA,CACA,cAAA,CACA,qBAAA,CAAA,gBAAA,CACA,mBAAA,CACA,eAAA,CACA,sBAAA,CACA,kBAAA,CACA,sBAAA,CACA,iBAAA,CACA,oBAAA,CACA,UnEqgIF,C+B1gII,gCoCZJ,YAoBI,UnEsgIF,CACF,CmEpgIE,oBACE,UnEsgIJ,CmEngIE,gD3DfA,UAAA,CCIA,wBAAA,C0DcE,eAAA,CACA,oBnEqgIJ,CmElgIE,kD3DtBA,UAAA,CCIA,wBTwhIF,CmEjgIE,wEAEE,qBnEkgIJ,CmE//HE,qD3DhCA,aAAA,CCIA,wBAAA,C2DJA,kBAAA,CACA,SpEoiIF,CoEliIE,klC5DHA,aAAA,CCIA,wBTqiIF,CoE/hIE,8BDsBA,qDCrBE,QAAA,CACA,cpEkiIF,CoEhiIE,8QAIE,cpE+hIJ,CACF,CqEjkIE,oL7DeA,aAAA,CCIA,wBAAA,C2DJA,kBAAA,CACA,SpEujIF,CoE9iIE,8BCzBA,oLD0BE,QAAA,CACA,cpEqjIF,CoEnjIE,o0BAIE,cpEkjIJ,CqE9kIA,2GD4CE,yBpEuiIF,CAJF,CmEhiIE,sBACE,anEuiIJ,CmEpiIE,8BACE,uCACE,4BnEsiIJ,CACF,CmEliIA,0D3DhDE,aAAA,CCIA,wBTmlIF,CmEhiIE,0E3DvDA,aAAA,CCIA,wBT2lIF,CmEniIE,4E3D5DA,UAAA,CCIA,wBT+lIF,CmEjiIA,0D3DlEE,aAAA,CCIA,wBTomIF,CmE/hIE,0E3DzEA,UAAA,CCIA,wBT4mIF,CmEliIE,4E3D9EA,UAAA,CCIA,wBTgnIF,CmEhiIA,qBACE,4BAAA,CACA,kCAAA,CACA,anEmiIF,CmEjiIE,6BACE,anEmiIJ,CmEhiIE,kEAEE,4BAAA,CACA,kCAAA,CACA,anEiiIJ,CmE9hIE,oEAEE,4BAAA,CACA,kCAAA,CACA,anE+hIJ,CmE5hIE,yCAKE,kCAAA,CACA,anE0hIJ,CmExhII,iDACE,anE0hIN,CmEvhII,0GAEE,kCAAA,CACA,anEwhIN,CmErhII,4GAEE,4BAAA,CACA,+BAAA,CACA,UnEshIN,CmEnhII,8DtC7EF,yBAAA,CkB3DA,4BAAA,CACA,QAAA,CACA,eAAA,CACA,eAAA,CACA,eAAA,CACA,sBAAA,CACA,eAAA,CACA,QAAA,CACA,SAAA,CACA,UAAA,CoBiII,anEgiIN,C6BjmIE,oEX3EA,4BAAA,CACA,gBlBwrIF,C+C5qIE,gjDAmBE,4BAAA,CACA,eAAA,CACA,yB/C4pIJ,C+CjpIE,sZAKE,a/CqpIJ,C+CnpII,8BAPF,sZAQI,c/CspIJ,CACF,CmE9jIM,sEACE,anEgkIR,CmE7jIM,oJAEE,anE8jIR,CmE3jIM,sJAEE,UnE4jIR,CmEtjIA,kB3DzJE,UAAA,CCIA,wBTgtIF,CmExjIE,4D3D5JA,UAAA,CCIA,wBTotIF,CmEvjIE,8D3DjKA,UAAA,CCIA,wBTwtIF,CmErjIA,uB3DvKE,UAAA,CCIA,wBT6tIF,CmEvjIE,sE3D1KA,UAAA,CCIA,wBTiuIF,CmEtjIE,wE3D/KA,UAAA,CCIA,wBTquIF,CmEpjIA,iBACE,oBAAA,CACA,iBAAA,CACA,mBnEujIF,CmE/iIE,osBAIE,4BAAA,CACA,anE2jIJ,CmEvjIA,uEAEE,kCnE0jIF,CmExjIE,+GACE,kCAAA,CACA,anE2jIJ,CmEzjII,8BAJF,+GAKI,cnE6jIJ,CACF,CmEzjIA,sBtCjKE,aAAA,CACA,yBAAA,CkB3DA,4BAAA,CACA,QAAA,CACA,eAAA,CACA,eAAA,CACA,eAAA,CACA,sBAAA,CACA,eAAA,CACA,QAAA,CACA,SAAA,CACA,U/C0xIF,C6BtuIE,mEACE,a7BwuIJ,C6BruIE,4BACE,a7BuuIJ,C6BpuIE,6BACE,a7BsuIJ,C6BnuIE,4BX3EA,4BAAA,CACA,gBlBizIF,C+CryIE,wzBAmBE,4BAAA,CACA,eAAA,CACA,yB/CqxIJ,C+ClxIE,2EACE,a/CoxIJ,C+CjxIE,6EACE,a/CmxIJ,C+ChxIE,8MAKE,a/C8wIJ,C+C5wII,8BAPF,8MAQI,c/C+wIJ,CACF,CsEj0IE,2CCTA,eAAA,CACA,YAAA,CACA,oBAAA,CACA,cvEi1IF,CsEt0IA,gBfRE,YAAA,CCiCM,qBAAA,CAAA,cAAA,CAAA,mBAAA,C5BtBJ,kBAAA,CACA,mB5Bk1IJ,C+Bz1II,gCuCGJ,gBdyBQ,kBxDi0IN,CACF,CsEh1IE,U1CkCE,oBAAA,C8BrDF,c1Dw2IF,CsEj1II,qD1C8BA,oB5BszIJ,C+Bt2II,gCuCcF,U1CkCE,kB5B0zIF,CsE/0II,qB1CqBF,kB5B6zIF,CACF,CsEh2IE,qB1CkCE,oBAAA,C8BrDF,c1Dw3IF,C+Bn3II,gCuCcF,qB1CkCE,kB5B00IF,CsE/1II,gC1CqBF,kB5B60IF,CACF,CsE11IA,qB9DpCE,aAAA,CCIA,qBAAA,CGiBA,gFAAA,CACA,iBAAA,CCzBA,eAAA,CEoCQ,gBAAA,CAhBF,oBAAA,CA0EF,kBAAA,CwChGJ,YAAA,CpBAA,WAAA,CqBiCM,qBAAA,C5BtBJ,iBAAA,CACA,kBAAA,CkCZF,iBAAA,CUAA,mBxEq5IF,CsE/1IA,gEjBrDI,crDw5IJ,CsE/1IA,yBf1DE,avD65IF,CsE71IA,kBAGE,2BtEi2IF,CsE/1IE,6BjB5DE,qBrD85IJ,CsE71IA,mB1DhDE,wEAAA,CACA,iBAAA,CCzBA,eAAA,CeDE,Q5B66IJ,CsE71IA,iBGjFE,QAAA,CHqFA,ctE81IF,CsE31IA,eA9FE,wCAAA,CAGA,yCAAA,CICA,wBAAA,CZEA,iBAAA,CQ4FA,etE+1IF,CsE71IE,mBf9FA,aAAA,CpBAA,WAAA,CCAA,UAAA,CkCkGE,mBAAA,CAAA,gBtE+1IJ,CsE31IA,wBjB7FI,kBAAA,CANA,mBAAA,CACA,oBrDm8IJ,CsE71IE,uCE1GA,exE08IF,CsEz1IA,gBdhFQ,WAAA,CcoFN,oBAAA,CAEA,etE41IF,CsEz1IE,2BjBjHE,qBrD68IJ,CsEx1IE,4BjBrHE,kBrDg9IJ,CsEv1IE,2BjB5HE,qBAAA,CACA,kBrDs9IJ,CsEp1IA,kBAGE,2BtEw1IF,CsEr1IA,2C1CpGI,c5B67IJ,CsEl1IE,0DjB7IE,gBAAA,CzB4CA,e5By7IJ,CsEn1IE,4D1C1HE,YAAA,CyBxBA,arD0+IJ,CsEn1IE,0D1C1IE,eAAA,CACA,YAAA,CyBjBA,gBAAA,CACA,arDm/IJ,CsE/0IA,qGAIE,kBtEk1IF,CsE50IE,kFjBlLE,gBAAA,CACA,iBrDogJJ,CsE90IA,yBACE,etEi1IF,CsE/0IE,wCEjIA,4BAAA,CACA,6BxEm9IF,CsE30IE,0CA3MA,wCAAA,CAGA,yCAAA,CjBYE,mBrD6gJJ,CsE50IE,kDE9IA,4BAAA,CACA,6BAAA,CF+IE,etE+0IJ,CsE50IE,gDjBtME,arDqhJJ,CsE30IE,yCGnNA,OzEiiJF,CsE30II,iD1CrLA,Y5BmgJJ,CsEz0IE,uCE3NA,exEuiJF,CsEx0IE,wCjBtNE,gBrDiiJJ,C+BriJI,gCuCiOA,iCftOF,YAAA,CoBAA,eAAA,CdqBI,QAAA,CACA,KAAA,CAMA,MAAA,CC5BJ,iBAAA,C1BAA,WpCujJA,CsEx0IE,+BE/OF,eAAA,CFiPI,wCAAA,CAIA,2CtEu0IJ,CsEj0IE,oG1C5LA,iB5BkgJF,CsEh0IE,yCACE,WtEk0IJ,CsEh0II,wDEvOJ,+BAAA,CAEA,4BxEyiJA,CsE/zIE,wCjBhQA,eAAA,CAAA,qBrDmkJF,CsE/zII,oIE7QJ,exE+kJA,CsE5zII,yDACE,oBtE8zIN,CsE3zII,uDACE,iBtE6zIN,CsE1zII,+DjBlRF,kBrD+kJF,CsEvzII,uDMjSJ,SAAA,CCAA,O7E4lJA,CsEtzII,8DjB7RF,cAAA,CAAA,oBrDulJF,CsEjzII,qDAEE,yCAAA,CAIA,4CtEmzIN,CsE7yII,sK1C5PF,aAAA,CApBA,kB5BmkJF,CsE5yII,qDElUJ,eAAA,CA4CA,gCAAA,CAEA,6BxEqkJA,CACF,CsE1yIA,2DQ3TI,qBAAA,CACA,QAAA,CACA,eAAA,CACA,qBAAA,ChBlBF,iB9D6nJF,C8EvmJI,2BRoTJ,2DQlTM,cAAA,CACA,eAAA,CAEA,yBAAA,CACA,c9EwmJJ,C8E7oJA,6DACE,iBAAA,CACA,KAAA,CACA,MAAA,CACA,UAAA,CACA,W9E+oJF,C8E5oJS,6HAEP,mBAAA,CAAA,gB9E6oJF,CACF,CsEj0IE,0ER9UA,iBAAA,CDaI,QAAA,CACA,MAAA,CACA,OAAA,CACA,K7DsoJN,C+EnqJA,eROE,eAAA,CACA,YAAA,CACA,oBAAA,CACA,cAAA,C3D6BA,gFAAA,CACA,iBAAA,CCzBA,eb8pJF,C+EvqJA,qBCFE,mBAAA,CpDgCE,YAAA,CmD3BF,eAAA,CACA,gB/E2qJF,CgF/qJE,6BACE,WAAA,CACA,oBAAA,CACA,WAAA,CACA,mBAAA,CACA,mBAAA,CACA,UhFirJJ,CiF3rJE,0DhCEA,sGAAA,CAEA,2BAAA,CgCFE,0BAAA,CACA,sBjF8rJJ,CkF9rJE,gBtEkCA,gFAAA,CACA,iBAAA,CgBLE,iBAAA,CACA,cAAA,CahCF,eAAA,CYkBE,crDwrJJ,CyCvsJE,8NACE,ezCysJJ,CyCtsJE,kGAEE,gBzCwsJJ,CkFhtJE,2BtEkCA,gFAAA,CACA,iBAAA,CgBLE,iBAAA,CACA,cAAA,CahCF,eAAA,CYkBE,crDiuJJ,CkF5uJE,uDzCQA,cAAA,CbgBE,eAAA,CACA,YAAA,CcjCF,oBAAA,CACA,cAAA,CyCWA,sBAAA,CpE4CQ,oBAAA,CA0DJ,sBAAA,CwCxGJ,YAAA,C3BsBE,kBAAA,CACA,eAAA,CyBdA,gBrDuvJJ,CkFvvJA,oDErBE,aAAA,CFwBA,UAAA,CACA,iBlFkwJF,C+B1wJI,gCmDIJ,oDAOI,UlFowJF,CACF,CkFjwJA,sB1BaQ,WxDwvJR,CkFjwJA,yBtEEE,gFAAA,CACA,iBAAA,CCzBA,eAAA,CemDE,eAAA,CApBA,Y5BgwJJ,CkFnwJA,6BtDRI,mBAAA,CACA,gB5B+wJJ,CkFpwJA,sBtDZI,eAAA,CACA,YAAA,CcjCF,oBAAA,CACA,cAAA,Cd0CE,iB5B6wJJ,CkFvwJA,2BtDNI,iBAAA,ChBPF,gFAAA,CACA,gBAAA,CCzBA,eAAA,CqEwCA,aAAA,CACA,kBlFgxJF,CkF9wJE,mCR/CA,wBAAA,C7DIA,cAAA,CwCIE,qBAAA,CACA,kBAAA,CYyCE,aAAA,CiBEF,oBAAA,CACA,iBlFixJJ,CkF/wJI,wCRvDF,wBAAA,CTkDI,UjEwxJN,CkF5wJA,0FACE,oBlF+wJF,CkF5wJA,wEtEtCE,gFAAA,CACA,iBAAA,CsEwCA,aAAA,CACA,eAAA,CACA,cAAA,CACA,iBlFgxJF,C+Bj1JI,gCmD2DJ,wEASI,alFkxJF,CACF,CkF/wJA,qCVjBE,0BAAA,CACA,2BAAA,CUkBA,wBAAA,CACA,UlFmxJF,CkFhxJA,mCVtEE,6BAAA,CAEA,8BAAA,CUsEA,wBAAA,CACA,alFoxJF,CkFhxJE,iDtDpEE,mBAAA,CACA,gBAAA,CyBdA,iBrDu2JJ,CqF53JE,mFAGE,iBAAA,CACA,KAAA,CACA,MAAA,CACA,UAAA,CACA,WrF+3JJ,CqF33JA,qBPgBI,qBAAA,CACA,QAAA,CACA,eAAA,CACA,qBAAA,CACA,iBAAA,COlBF,crFk4JF,C8E72JI,2BOvBJ,qBPyBM,cAAA,CACA,eAAA,CAEA,yBAAA,CACA,c9E82JJ,C8En5JA,uBACE,iBAAA,CACA,KAAA,CACA,MAAA,CACA,UAAA,CACA,W9Eq5JF,C8El5JS,iDAEP,mBAAA,CAAA,gB9Em5JF,CACF,CsF34JA,Y1EgBE,gFAAA,CACA,iBAAA,CCzBA,eby5JF,CsF74JE,4B1DHE,gBAAA,CACA,iBAAA,C8BZF,eAAA,CLGE,iBAAA,CACA,kBrD85JJ,C+B75JI,gCuDSF,4BjCXE,iBAAA,CACA,kBrDm6JF,CACF,CsFt5JA,2BjCZI,sBAAA,CACA,mBAAA,CiCaF,ctF05JF,C6Bp2JE,mCX3EA,4BAAA,CACA,gBlB+7JF,CsFp6JA,iB1DhBI,gBAAA,CACA,iBAAA,C8BZF,eAAA,CLGE,iBAAA,CACA,kBAAA,CADA,cAAA,CACA,eAAA,CiC0BF,+BtF46JF,C+Br8JI,gCuDsBJ,iBjCxBI,iBAAA,CACA,kBrD28JF,CACF,C+B38JI,gCuDsBJ,iBjCxBI,iBAAA,CACA,kBAAA,CiC8BA,kBtFo7JF,CACF,C+Bl9JI,qDuDsBJ,iBjCxBI,iBAAA,CACA,kBrDw9JF,CACF,CsFx7JE,oBf3CA,eAAA,CACA,YAAA,CACA,oBAAA,CACA,cvEs+JF,CsFz7JA,6BACE,wBtF47JF,CsF17JE,4E1DlCE,gBAAA,CACA,iBAAA,C8BZF,eAAA,CLGE,iBAAA,CACA,kBrD0+JJ,C+Bz+JI,gCuDwCF,6CjC1CE,iBAAA,CACA,kBrD++JF,CACF,CsFl8JA,+BjC/CI,cAAA,CACA,erD0/JJ,C+Bz/JI,gCuD6CJ,+BjC/CI,iBAAA,CACA,iBAAA,CrD+/JF,CACF,CsFz8JA,6BACE,etFk9JF,CsF/8JA,0BjCxDI,YAAA,CYyCE,aAAA,CAII,eAAA,CqBgBR,QAAA,CACA,4BAAA,CACA,atFo9JF,C+BrhKI,gCuD0DJ,0BjC5DI,cAAA,CACA,eAAA,CiCsEA,QtFs9JF,CACF,CsFn9JE,kCAEE,UAAA,CACA,ctFo9JJ,CuCx3JE,0CA3CA,sDAAA,CACA,2BAAA,CACA,iCAAA,CACA,+BAAA,CACA,oBAAA,CA0CE,qBvCi4JJ,CuCn6JE,iDA+BA,0CA9BE,cAAA,CACA,6BAAA,CACA,iGAAA,CAAA,yFAAA,CAEA,mCAAA,CAAA,2BAAA,CACA,6BAAA,CAAA,qBAAA,CACA,iCAAA,CAAA,yBvCq6JF,CACF,CsFx+JI,wDpEpFF,4BAAA,CACA,sBlB+jKF,CsFt+JI,0CnDzFF,cAAA,CCAA,aAAA,CkD2FI,kBAAA,CACA,uBAAA,CACA,UAAA,CACA,mBAAA,CACA,sBAAA,CACA,mBAAA,CACA,mBtFy+JN,CsFv+JM,8BAVF,0CAWI,qCtF0+JN,CACF,CsFv+JI,sDACE,gBAAA,CACA,mBtFy+JN,CuCt6JE,+DA3CA,wDAAA,CACA,2BAAA,CACA,iCAAA,CACA,+BAAA,CACA,oBAAA,CACA,cAAA,CACA,aAAA,CAuCE,UAAA,CACA,qBAXe,CAgBb,mBvC06JN,CuCj9JE,iDA+BA,+DA9BE,cAAA,CACA,6BAAA,CACA,mGAAA,CAAA,2FAAA,CAEA,mCAAA,CAAA,2BAAA,CACA,6BAAA,CAAA,qBAAA,CACA,iCAAA,CAAA,yBvCm9JF,CACF,CsFx/JM,2EACE,YtF0/JR,CsFp/JA,4BACE,eAAA,CACA,gBAAA,CACA,StFu/JF,C6BpjKE,sCACE,a7B0jKJ,C6BvjKE,oCACE,a7ByjKJ,C6BtjKE,qCACE,a7BwjKJ,C6BrjKE,oCX3EA,4BAAA,CACA,gBlBmoKF,CsFlgKE,wDACE,gBtFogKJ,C+BjoKI,gCuDmHJ,4BAcI,atFogKF,CACF,CsFjgKA,0BACE,etFogKF,C+B1oKI,gCuDqIJ,0B9BzGQ,wBAAA,C8BkHJ,gBtFogKF,CACF,CsFjgKA,aACE,mBAAA,CACA,kBtFogKF,CsFlgKE,iDAEE,iBtFogKJ,CsFhgKA,sB1EvIE,wEAAA,CACA,iBAAA,CCzBA,eAAA,CiBUA,eAAA,CwDuJA,QtFsgKF,CsFngKA,+BjChKI,sBAAA,CACA,mBAAA,C7CFF,aAAA,CCIA,wBTuqKF,CsFtgKE,+C1D/JE,gBAAA,CACA,iBAAA,C8BZF,eAAA,CLGE,iBAAA,CACA,kBrDmrKJ,C+BlrKI,gCuDqKF,+CjCvKE,iBAAA,CACA,kBrDwrKF,CACF,CsFhhKI,yDACE,6BtFkhKN,CsFzgKA,kB1DjKI,mBAAA,CACA,gB5BirKJ,C+BnsKI,gCuDkLJ,kB1DjKI,eAAA,CACA,YAAA,C4BUI,kBxD6qKN,CACF,CsF/gKA,sBACE,ctFkhKF,CsF/gKA,0B1E1KE,gFAAA,CACA,iBAAA,CCzBA,cAAA,C0EFA,eAAA,C3DsBE,mBAAA,CACA,gB5BqsKJ,CsFlhKA,2BACE,iBtFqhKF,C+B3tKI,gCuDqMJ,2BAII,YAAA,CACA,gBtFshKF,CACF,CsFnhKA,6B1EzLE,gFAAA,CACA,iBAAA,CCzBA,eAAA,C0EFA,eAAA,CD0NA,YtFohKF,C+BzuKI,gCuD8MJ,6B1D7LI,oBAAA,CACA,iB5B4tKF,CACF,CsFnhKA,0BACE,cAAA,CACA,oBtFshKF,C+BpvKI,gCuD4NJ,0B9BhMQ,wBxD+tKN,CACF,CsFnhKA,iBnD9OE,WAAA,CCAA,UAAA,CkDgPA,+BAAA,CACA,oBAAA,CACA,ctFuhKF,CsFrhKE,uBACE,qBtFuhKJ,CsFphKE,8BAVF,iBAWI,wBAAA,CACA,wBtFuhKF,CACF,CsFphKA,uBACE,aAAA,CACA,WAAA,CACA,UtFuhKF,C+BnxKI,gCuD+PJ,qB9BnOQ,wBxD4vKN,CACF,C+BzxKI,gCuDwQF,mCjC1QE,cAAA,CACA,erDgyKF,CACF,CsFlhKE,uCjC5QE,YrDoyKJ,C+BtyKI,gCuD8QF,uCjClRE,SrD8yKF,CACF,CsFphKE,oC9B3PM,kBxDkxKR,CsFnhKE,wCACE,ctFqhKJ,CsFlhKE,4CACE,oBtFohKJ,C+BpzKI,gCuD+RF,4CjC9RE,mBAAA,CACA,gBAAA,CiCkSE,YtFshKJ,CACF,CsF/gKE,kC1DtSE,iBAAA,CACA,kB5ByzKJ,C+Bh0KI,gCuD4SF,kCAGI,+BAAA,CACA,gBtFqhKJ,CACF,C+Bt0KI,gCuD4SF,kC1DtSE,aAAA,CACA,cAAA,CyBTA,cAAA,CACA,eAAA,CiCsTE,kBtFyhKJ,CACF,CsFthKE,2C1EpSA,wEAAA,CACA,gBAAA,CkBVA,eAAA,CwD+SE,eAAA,CACA,QtF2hKJ,C+Bv1KI,gCuDyTF,2CjCxTE,gBAAA,CACA,aAAA,CiC8TE,mBtF6hKJ,CsF3hKI,iDACE,WAAA,CACA,oBtF6hKN,CACF,CsFxhKI,qFACE,kBAAA,CACA,YAAA,CACA,0BtF0hKN,CsFvhKI,+EjClVA,iBAAA,CACA,kBAAA,CiCmVE,sBtF0hKN,C+B52KI,gCuDgVA,+EjClVA,cAAA,CACA,eAAA,CiCuVI,mBAAA,CACA,kBtF4hKN,CACF,CwFt4KA,U5EuCE,gFAAA,CACA,iBAAA,CCzBA,eb63KF,C+B13KI,gCyDlBJ,UASI,exFu4KF,CACF,CwF73KE,kEACE,cxFk4KJ,CwF/3KE,sBACE,gBxFi4KJ,C+Bx4KI,gCyDMF,sBAII,iBxFk4KJ,CACF,CwF93KE,qC3DuCA,aAAA,CACA,yB7B01KF,C6Bx1KE,6CACE,a7B01KJ,C6Bv1KE,2CACE,a7By1KJ,C6Bt1KE,4CACE,a7Bw1KJ,C6Br1KE,2CX3EA,4BAAA,CACA,gBlBm6KF,C+B95KI,gCyDoBJ,iBAEI,exF64KF,CACF,CwF14KA,mB3D4BE,aAAA,CACA,yBAAA,CkB3DA,4BAAA,CACA,QAAA,CACA,eAAA,CACA,eAAA,CACA,eAAA,CACA,sBAAA,CACA,eAAA,CACA,QAAA,CACA,SAAA,CACA,UAAA,CyCuBA,cxFw5KF,C6B33KE,2BACE,a7B63KJ,C6B13KE,yBACE,a7B43KJ,C6Bz3KE,0BACE,a7B23KJ,C6Bx3KE,yBX3EA,4BAAA,CACA,gBlBs8KF,C+C17KE,+vBAmBE,4BAAA,CACA,eAAA,CACA,yB/C06KJ,C+Cv6KE,qCACE,a/Cy6KJ,C+Ct6KE,sCACE,a/Cw6KJ,C+Cr6KE,+LAKE,a/Cm6KJ,C+Cj6KI,8BAPF,+LAQI,c/Co6KJ,CACF,Ccx+KA,qDFyCE,+EAAA,E4EUF,A1EnDA,mCF0CE,gBAAA,CCzBA,eAAA,C2EqCA,WAAA,CACA,oBxF07KF,CyF7+KA,kB7EsCE,iBAAA,CCzBA,ebs+KF,CyF9+KI,0DACE,kBzFg/KN,C+Bt+KI,gC0DXA,0DAII,kBzFi/KN,CyF5+KI,qEAEI,ezF++KR,CAJF,CyFj+KE,wCACE,mBzF2+KJ,CyFv+KI,sDACE,YzFy+KN,CyFp+KA,2B7DJI,eAAA,CACA,YAAA,CCCF,UAAA,CjBEA,wEAAA,CACA,iBAAA,CCzBA,eAAA,CiBUA,e9B4/KF,C6B1+KE,6BACE,gB7B4+KJ,C6Bz+KE,6BACE,c7B2+KJ,C0F1gLA,Y9EsBE,gFAAA,CACA,iBAAA,CCzBA,ebkhLF,C2FliLE,mBACE,UAAA,CACA,UAAA,CACA,a3FoiLJ,C0FhhLE,cACE,kB1FkhLJ,C0F9gLE,wBACE,gB1FghLJ,C+B1hLI,gC2DSF,wBAGI,W1FkhLJ,C0F7gLA,0BAEI,WAAA,CACA,2BAAA,CAGA,U1F8gLJ,CANF,C0FngLE,0BACE,W1F4gLJ,C+BziLI,gC2DgCF,sBAEI,yB1F2gLJ,C0FvgLA,0CAGI,4B1F0gLJ,CALF,C+BhhLI,mC2DgBJ,UlClBQ,WAAA,CkCqBJ,gBAAA,CACA,cAAA,CACA,gB1FygLF,CACF,C+B7jLI,gC2D8CJ,UASI,eAAA,CACA,kBAAA,CACA,iBAAA,CACA,e1F0gLF,CACF,C0FxgLE,YACE,aAAA,CACA,oB1F0gLJ,C0FtgLA,gBACE,aAAA,CACA,iBAAA,CACA,eAAA,CACA,Q1FygLF,C0FtgLA,c3C7EE,QAAA,CACA,eAAA,CACA,eAAA,CACA,eAAA,CACA,sBAAA,CAEA,QAAA,CACA,SAAA,CACA,UAAA,CSuBM,aAAA,CH9BJ,mBAAA,CACA,oBAAA,CqC+EF,wBAAA,CACA,UAAA,CACA,gBAAA,CACA,WAAA,CACA,iBAAA,CACA,oBAAA,CACA,wB1FqhLF,C6BpiLE,oBX3EA,4BAAA,CACA,gBlB2nLF,C+C/mLE,gqBAmBE,4BAAA,CACA,eAAA,CACA,yB/C+lLJ,C+C5lLE,gCACE,a/C8lLJ,C+C3lLE,iCACE,a/C6lLJ,C+C1lLE,sKAKE,a/CwlLJ,C+CtlLI,8BAPF,sKAQI,c/CylLJ,CACF,C+BzoLI,gC2D0EJ,cAaI,Y1FsjLF,CACF,C0FpjLE,oBACE,wBAAA,CACA,UAAA,CACA,oB1FsjLJ,C0FnjLE,2CACE,U1FqjLJ,C0F7iLA,a7BjGM,QAAA,CACA,MAAA,CACA,OAAA,CACA,KAAA,C6BgGJ,cAAA,CACA,yBAAA,CACA,SAAA,CACA,mCAAA,CACA,iBAAA,CACA,W1FujLF,C0FrjLE,wBACE,SAAA,CACA,kB1FujLJ,C+B3qLI,gC2D6HA,+BACE,iBAAA,CACA,S1FkjLJ,C0F/iLE,4BlCtGI,kBAAA,CAAA,kBAAA,CAAA,wBAAA,CkCwGF,YAAA,CACA,uBAAA,CACA,U1FmjLJ,C0FhjLE,sClC7GI,oBAAA,CAAA,6BAAA,CkC+GF,Y1FmjLJ,C0FhjLE,+FEjJF,iB5FqsLA,C4FnsLA,6GACE,wBAAA,CACA,eAAA,CACA,UAAA,CACA,aAAA,CACA,iBAAA,CAQE,aAAA,CACA,SAAA,CACA,UAAA,CACA,c5F+rLJ,CACF,C4F9rLM,mDAlBJ,6GAmBM,2B5FksLN,CACF,C+BrtLI,gC2DoJA,gIAEE,Y1FokLJ,C0FjkLE,qCACE,U1FmkLJ,C0F/jLE,uDACE,iB1FikLJ,C0F/jLI,yE5BtKJ,iBAAA,CD8BI,O7D2sLJ,C0F9jLE,+BACE,K1FgkLJ,CACF,C0F5jLI,wDACE,YAAA,CACA,qB1F8jLN,C+B5uLI,gC2D4KA,wDAKI,aAAA,CACA,WAAA,CACA,kB1F+jLN,C0F3jLE,4EAEI,e1F8jLN,C0FrjLF,sBAEI,a1FyjLF,C0FvjLE,4HEzMF,iB5FowLA,C4FlwLA,0IACE,wBAAA,CACA,eAAA,CACA,UAAA,CACA,aAAA,CACA,iBAAA,CAQE,aAAA,CACA,SAAA,CACA,UAAA,CACA,Q5F8vLJ,CA1BF,C4FluLM,mDAlBJ,0IAmBM,2B5FiwLN,CACF,C+BpxLI,gC2D4MA,sIAEE,Y1F2kLJ,C0FvkLA,gCAEI,iBAAA,CACA,oBAAA,CACA,a1F0kLJ,C0FtkLA,kC9DpNE,gBAAA,CACA,iBAAA,C8BZF,eAAA,CLGE,iBAAA,CACA,kBAAA,CqC8NE,aAAA,CACA,WAAA,CACA,a1F6kLJ,CAlBF,C+B1xLI,qD2D0NF,kCrC5NE,iBAAA,CACA,kBrDmzLF,CACF,C+BnzLI,gC2DmOF,+BAEI,4BAAA,CACA,SAAA,CACA,U1FklLJ,C0F9kLA,sC9DrOE,gBAAA,CACA,iBAAA,C8BZF,eAAA,CLGE,iBAAA,CACA,kBAAA,CqC+OE,iB1FqlLJ,CATF,C+B1zLI,qD2D2OF,sCrC7OE,iBAAA,CACA,kBrD00LF,CACF,C+B10LI,gC2DkPF,wCAGI,iB1FylLJ,C2Fj2LA,+CACE,UAAA,CACA,UAAA,CACA,a3Fm2LF,C0F1lLA,qCrCxPE,mBAAA,CACA,gBrDu1LF,C0FzlLE,uDAEI,mB1F4lLN,C0FvlLA,qDAEI,MAAA,CACA,iBAAA,CACA,kB1F0lLJ,CAjBF,C0FlkLE,yFnEpSA,iBAAA,CACA,WAAA,CACA,UvB63LF,C6F91LE,uBAIE,a7F81LJ,C+Bj3LI,gC8DeF,uBrCaM,WxDy1LN,C6F51LI,gDxC3BF,kBAAA,CACA,mBrD03LF,C6F31LI,4DACE,c7F61LN,C6F31LI,2DACE,e7F61LN,C6Fv1LF,+BxC1CI,cAAA,CACA,eAAA,CAEA,mBAAA,CACA,gBAAA,CwC0CA,SAAA,CACA,OAAA,CACA,U7F61LF,Cc/5LF,6E+CoCM,QAAA,CACA,KAAA,CgC9BJ,wBAAA,CACA,UAAA,CACA,aAAA,CACA,iBAAA,CAkBE,8BAAA,EAyCF,A/ErEF,uC+EwEM,U7Fo2LJ,C6Fh2LA,sCAGI,S7F02LJ,C6Fp2LA,yHhCjDI,QAAA,CACA,KAAA,CgC9BJ,wBAAA,CACA,UAAA,CACA,aAAA,CACA,iBAAA,CAoBE,wB7Fw6LF,C8Fp8LF,mBlEwBI,gBAAA,CACA,iBAAA,C8BZF,eAAA,CLGE,iBAAA,CACA,kBrD28LF,C2F79LA,0BACE,UAAA,CACA,UAAA,CACA,a3F+9LF,CA/EF,C+Bh4LI,qD+DlBJ,mBzCgBI,iBAAA,CACA,kBrDs9LF,CACF,C+Fx+LA,YAEE,W/F0+LF,C+B57LI,mCgEhDJ,YvC8CQ,kBAAA,CuCxCJ,+BAAA,CACA,Y/F2+LF,CACF,C+Bj+LI,gCgElBJ,YAWI,kBAAA,CACA,oBAAA,CACA,W/F4+LF,CACF,Cc5/LA,0FFyCE,gFAAA,CACA,gBAAA,EoFrCF,AlFLA,UDiBE,eAAA,CmFTA,qCAAA,CACA,0BAAA,CACA,qBAAA,CACA,UhG2/LF,CgGz/LE,0BACE,iBAAA,C3COA,mBAAA,CACA,gBrDq/LJ,CgGx/LA,mBACE,wBAAA,CACA,YhG2/LF,C+B5/LI,gCiEDJ,mBAKI,ehG4/LF,CACF,CgGz/LA,mBpESI,eAAA,CACA,YAAA,CCCF,UAAA,CjBEA,wEAAA,CACA,iBAAA,CkBpBA,eAAA,CkEQA,aAAA,CACA,ehGkgMF,C6Bp/LE,qBACE,gB7Bs/LJ,C6Bn/LE,qBACE,c7Bq/LJ,CgGrgMA,wBACE,UAAA,CACA,ahGwgMF,CiGjhME,erFcA,gFAAA,CACA,iBAAA,CCzBA,eAAA,CeoBE,eAAA,CACA,YAAA,CcjCF,oBAAA,CACA,cAAA,CiBSA,c3DwiMF,CiGthME,qBACE,YAAA,CACA,iBjG6hMJ,CiG3hMI,+FACE,kBjG6hMN,CiGxiME,0BrFcA,gFAAA,CACA,iBAAA,CCzBA,eAAA,CeoBE,eAAA,CACA,YAAA,CcjCF,oBAAA,CACA,cAAA,CiBSA,c3D+jMF,CiG7iME,gCACE,YAAA,CACA,iBjGmjMJ,CiGpiMU,mDACE,ajG0iMZ,CiG3iMU,wIACE,ajG6iMZ,CiG9iMU,gDACE,ajGgjMZ,CiGjjMU,0CACE,ajGmjMZ,CiGpjMU,+CACE,ajGsjMZ,CiGvjMU,iDACE,ajGyjMZ,CiG1jMU,kDACE,ajG4jMZ,CiG7jMU,qDACE,ajG+jMZ,CiGhkMU,mDACE,ajGkkMZ,CiGnkMU,6CACE,ajGqkMZ,CiGtkMU,mDACE,ajGwkMZ,CiGzkMU,kDACE,ajG2kMZ,CiG5kMU,oDACE,ajG8kMZ,CiG/kMU,uDACE,ajGilMZ,CiGllMU,qDACE,ajGolMZ,CiGrlMU,+CACE,ajGulMZ,CiGxlMU,qDACE,ajG0lMZ,CiG3lMU,oDACE,ajG6lMZ,CiG9lMU,sDACE,ajGgmMZ,CiGjmMU,yDACE,ajGmmMZ,CiGpmMU,uDACE,ajGsmMZ,CiGvmMU,iDACE,ajGymMZ,CiG1mMU,sDACE,ajG4mMZ,CiG7mMU,wDACE,ajG+mMZ,CiGhnMU,yDACE,ajGknMZ,CiGnnMU,uDACE,ajGqnMZ,CiGtnMU,iDACE,ajGwnMZ,CiGznMU,sDACE,ajG2nMZ,CiG5nMU,wDACE,ajG8nMZ,CiG/nMU,mDACE,ajGioMZ,CiGloMU,iDACE,ajGooMZ,CiGroMU,2CACE,ajGuoMZ,CiGxoMU,gDACE,ajG0oMZ,CiG3oMU,kDACE,ajG6oMZ,CiG9oMU,qDACE,ajGgpMZ,CiGjpMU,mDACE,ajGmpMZ,CiGppMU,6CACE,ajGspMZ,CiGvpMU,kDACE,ajGypMZ,CiG1pMU,oDACE,ajG4pMZ,CiG7pMU,qDACE,ajG+pMZ,CiGhqMU,mDACE,ajGkqMZ,CiGnqMU,6CACE,ajGqqMZ,CiGtqMU,kDACE,ajGwqMZ,CiGzqMU,oDACE,ajG2qMZ,CiG5qMU,kDACE,ajG8qMZ,CiG/qMU,gDACE,ajGirMZ,CiGlrMU,8KACE,ajGorMZ,CiGrrMU,+CACE,ajGurMZ,CiGxrMU,iDACE,ajG0rMZ,CiG3rMU,sDACE,ajG6rMZ,CiG9rMU,oDACE,ajGgsMZ,CiGjsMU,8CACE,ajGmsMZ,CiGpsMU,mDACE,ajGssMZ,CiGvsMU,qDACE,ajGysMZ,CiG1sMU,+CACE,ajG4sMZ,CiG7sMU,oDACE,ajG+sMZ,CiGtsME,+BAGE,aAAA,CACA,aAAA,CAEA,iBAAA,CACA,YjGssMJ,CiGhsME,gFtC1DA,c3DkwMF,CiGhsMA,4CtClEE,c3DswMF,CiGxqMY,0DAEE,eAAA,CACA,cjG0qMd,CiGtqMU,mDtCrGR,cAAA,CsCwGU,gBAAA,CAEA,oBjGsqMZ,CiGnqMY,yErFnFV,wEAAA,CACA,gBZyvMF,CiGtrMY,sDAEE,aAAA,CACA,YjGwrMd,CiGprMU,+CtCrGR,cAAA,CsCwGU,eAAA,CAEA,mBjGorMZ,CiGjrMY,qErFnFV,wEAAA,CACA,gBZuwMF,CiGpsMY,sDAEE,eAAA,CACA,cjGssMd,CiGlsMU,+CtCrGR,cAAA,CsCwGU,gBAAA,CAEA,oBjGksMZ,CiG/rMY,qErFnFV,wEAAA,CACA,gBZqxMF,CiGltMY,sDAEE,eAAA,CACA,cjGotMd,CiGhtMU,+CtCrGR,cAAA,CsCwGU,gBAAA,CAEA,oBjGgtMZ,CiG7sMY,qErFnFV,wEAAA,CACA,gBZmyMF,CiGhuMY,sDAEE,aAAA,CACA,YjGkuMd,CiG9tMU,+CtCrGR,cAAA,CsCwGU,cAAA,CAEA,kBjG8tMZ,CiG3tMY,qErFnFV,wEAAA,CACA,gBZizMF,CiG9uMY,sDAEE,cAAA,CACA,ajGgvMd,CiG5uMU,+CtCrGR,cAAA,CsCwGU,iBAAA,CAEA,oBjG4uMZ,CiGzuMY,qErFnFV,wEAAA,CACA,gBZ+zMF,CiG5vMY,sDAEE,eAAA,CACA,cjG8vMd,CiG1vMU,+CtCrGR,cAAA,CsCwGU,iBAAA,CAEA,oBjG0vMZ,CiGvvMY,qErFnFV,wEAAA,CACA,iBZ60MF,CiG1wMY,sDAEE,aAAA,CACA,YjG4wMd,CiGxwMU,+CtCrGR,cAAA,CsCwGU,gBAAA,CAEA,mBjGwwMZ,CiGrwMY,qErFnFV,wEAAA,CACA,gBZ21MF,CiGxxMY,sDAEE,eAAA,CACA,cjG0xMd,CiGtxMU,+CtCrGR,cAAA,CsCwGU,iBAAA,CAEA,oBjGsxMZ,CiGnxMY,qErFnFV,wEAAA,CACA,iBZy2MF,CiGtyMY,sDAEE,cAAA,CACA,ajGwyMd,CiGpyMU,+CtCrGR,cAAA,CsCwGU,iBAAA,CAEA,oBjGoyMZ,CiGjyMY,qErFnFV,wEAAA,CACA,iBZu3MF,CiGpzMY,uDAEE,aAAA,CACA,YjGszMd,CiGlzMU,gDtCrGR,cAAA,CsCwGU,gBAAA,CAEA,mBjGkzMZ,CiG/yMY,sErFnFV,wEAAA,CACA,iBZq4MF,CiGl0MY,uDAEE,cAAA,CACA,ajGo0Md,CiGh0MU,gDtCrGR,cAAA,CsCwGU,iBAAA,CAEA,oBjGg0MZ,CiG7zMY,sErFnFV,wEAAA,CACA,iBZm5MF,CiGh1MY,uDAEE,eAAA,CACA,cjGk1Md,CiG90MU,gDtCrGR,cAAA,CsCwGU,iBAAA,CAEA,oBjG80MZ,CiG30MY,sErFnFV,wEAAA,CACA,iBZi6MF,CiG91MY,uDAEE,aAAA,CACA,YjGg2Md,CiG51MU,gDtCrGR,cAAA,CsCwGU,gBAAA,CAEA,mBjG41MZ,CiGz1MY,sErFnFV,wEAAA,CACA,gBZ+6MF,CiG52MY,uDAEE,cAAA,CACA,ajG82Md,CiG12MU,gDtCrGR,cAAA,CsCwGU,iBAAA,CAEA,qBjG02MZ,CiGv2MY,sErFnFV,wEAAA,CACA,iBZ67MF,CiG13MY,uDAEE,eAAA,CACA,cjG43Md,CiGx3MU,gDtCrGR,cAAA,CsCwGU,iBAAA,CAEA,qBjGw3MZ,CiGr3MY,sErFnFV,wEAAA,CACA,iBZ28MF,CiGx4MY,uDAEE,eAAA,CACA,cjG04Md,CiGt4MU,gDtCrGR,cAAA,CsCwGU,iBAAA,CAEA,qBjGs4MZ,CiGn4MY,sErFnFV,wEAAA,CACA,iBZy9MF,CiGt5MY,uDAEE,cAAA,CACA,ajGw5Md,CiGp5MU,gDtCrGR,cAAA,CsCwGU,iBAAA,CAEA,qBjGo5MZ,CiGj5MY,sErFnFV,wEAAA,CACA,gBZu+MF,CiGp6MY,uDAEE,cAAA,CACA,ajGs6Md,CiGl6MU,gDtCrGR,cAAA,CsCwGU,iBAAA,CAEA,qBjGk6MZ,CiG/5MY,sErFnFV,wEAAA,CACA,iBZq/MF,CiGl7MY,uDAEE,gBAAA,CACA,ejGo7Md,CiGh7MU,gDtCrGR,cAAA,CsCwGU,iBAAA,CAEA,qBjGg7MZ,CiG76MY,sErFnFV,wEAAA,CACA,iBZmgNF,CiGh8MY,uDAEE,eAAA,CACA,cjGk8Md,CiG97MU,gDtCrGR,cAAA,CsCwGU,iBAAA,CAEA,qBjG87MZ,CiG37MY,sErFnFV,wEAAA,CACA,iBZihNF,CiG98MY,wDAEE,eAAA,CACA,cjGg9Md,CiG58MU,iDtCrGR,cAAA,CsCwGU,gBAAA,CAEA,oBjG48MZ,CiGz8MY,uErFnFV,wEAAA,CACA,gBZ+hNF,CiG59MY,wDAEE,eAAA,CACA,cjG89Md,CiG19MU,iDtCrGR,cAAA,CsCwGU,gBAAA,CAEA,oBjG09MZ,CiGv9MY,uErFnFV,wEAAA,CACA,gBZ6iNF,CiG1+MY,uDAEE,aAAA,CACA,YjG4+Md,CiGx+MU,gDtCrGR,cAAA,CsCwGU,cAAA,CAEA,kBjGw+MZ,CiGr+MY,sErFnFV,wEAAA,CACA,gBZ2jNF,CiGx/MY,uDAEE,cAAA,CACA,ajG0/Md,CiGt/MU,gDtCrGR,cAAA,CsCwGU,iBAAA,CAEA,oBjGs/MZ,CiGn/MY,sErFnFV,wEAAA,CACA,gBZykNF,CiGtgNY,uDAEE,eAAA,CACA,cjGwgNd,CiGpgNU,gDtCrGR,cAAA,CsCwGU,iBAAA,CAEA,oBjGogNZ,CiGjgNY,sErFnFV,wEAAA,CACA,iBZulNF,CiGphNY,uDAEE,cAAA,CACA,ajGshNd,CiGlhNU,gDtCrGR,cAAA,CsCwGU,iBAAA,CAEA,oBjGkhNZ,CiG/gNY,sErFnFV,wEAAA,CACA,iBZqmNF,CiGliNY,uDAEE,eAAA,CACA,cjGoiNd,CiGhiNU,gDtCrGR,cAAA,CsCwGU,iBAAA,CAEA,oBjGgiNZ,CiG7hNY,sErFnFV,wEAAA,CACA,iBZmnNF,CiGhjNY,wDAEE,cAAA,CACA,ajGkjNd,CiG9iNU,iDtCrGR,cAAA,CsCwGU,iBAAA,CAEA,qBjG8iNZ,CiG3iNY,uErFnFV,wEAAA,CACA,iBZioNF,CiG9jNY,wDAEE,eAAA,CACA,cjGgkNd,CiG5jNU,iDtCrGR,cAAA,CsCwGU,iBAAA,CAEA,qBjG4jNZ,CiGzjNY,6FrFnFV,wEAAA,CACA,iBZ+oNF,C+BrqNI,gCkEyFQ,qEAEE,eAAA,CACA,cjG+kNZ,CiG3kNQ,8DtCrGR,cAAA,CsCwGU,gBAAA,CAEA,oBjG2kNV,CiGxkNU,oFrFnFV,wEAAA,CACA,gBZ8pNA,CiG3lNU,iEAEE,aAAA,CACA,YjG4lNZ,CiGxlNQ,0DtCrGR,cAAA,CsCwGU,eAAA,CAEA,mBjGwlNV,CiGrlNU,gFrFnFV,wEAAA,CACA,gBZ2qNA,CiGxmNU,iEAEE,eAAA,CACA,cjGymNZ,CiGrmNQ,0DtCrGR,cAAA,CsCwGU,gBAAA,CAEA,oBjGqmNV,CiGlmNU,gFrFnFV,wEAAA,CACA,gBZwrNA,CiGrnNU,iEAEE,eAAA,CACA,cjGsnNZ,CiGlnNQ,0DtCrGR,cAAA,CsCwGU,gBAAA,CAEA,oBjGknNV,CiG/mNU,gFrFnFV,wEAAA,CACA,gBZqsNA,CiGloNU,iEAEE,aAAA,CACA,YjGmoNZ,CiG/nNQ,0DtCrGR,cAAA,CsCwGU,cAAA,CAEA,kBjG+nNV,CiG5nNU,gFrFnFV,wEAAA,CACA,gBZktNA,CiG/oNU,iEAEE,cAAA,CACA,ajGgpNZ,CiG5oNQ,0DtCrGR,cAAA,CsCwGU,iBAAA,CAEA,oBjG4oNV,CiGzoNU,gFrFnFV,wEAAA,CACA,gBZ+tNA,CiG5pNU,iEAEE,eAAA,CACA,cjG6pNZ,CiGzpNQ,0DtCrGR,cAAA,CsCwGU,iBAAA,CAEA,oBjGypNV,CiGtpNU,gFrFnFV,wEAAA,CACA,iBZ4uNA,CiGzqNU,iEAEE,aAAA,CACA,YjG0qNZ,CiGtqNQ,0DtCrGR,cAAA,CsCwGU,gBAAA,CAEA,mBjGsqNV,CiGnqNU,gFrFnFV,wEAAA,CACA,gBZyvNA,CiGtrNU,iEAEE,eAAA,CACA,cjGurNZ,CiGnrNQ,0DtCrGR,cAAA,CsCwGU,iBAAA,CAEA,oBjGmrNV,CiGhrNU,gFrFnFV,wEAAA,CACA,iBZswNA,CiGnsNU,iEAEE,cAAA,CACA,ajGosNZ,CiGhsNQ,0DtCrGR,cAAA,CsCwGU,iBAAA,CAEA,oBjGgsNV,CiG7rNU,gFrFnFV,wEAAA,CACA,iBZmxNA,CiGhtNU,kEAEE,aAAA,CACA,YjGitNZ,CiG7sNQ,2DtCrGR,cAAA,CsCwGU,gBAAA,CAEA,mBjG6sNV,CiG1sNU,iFrFnFV,wEAAA,CACA,iBZgyNA,CiG7tNU,kEAEE,cAAA,CACA,ajG8tNZ,CiG1tNQ,2DtCrGR,cAAA,CsCwGU,iBAAA,CAEA,oBjG0tNV,CiGvtNU,iFrFnFV,wEAAA,CACA,iBZ6yNA,CiG1uNU,kEAEE,eAAA,CACA,cjG2uNZ,CiGvuNQ,2DtCrGR,cAAA,CsCwGU,iBAAA,CAEA,oBjGuuNV,CiGpuNU,iFrFnFV,wEAAA,CACA,iBZ0zNA,CiGvvNU,kEAEE,aAAA,CACA,YjGwvNZ,CiGpvNQ,2DtCrGR,cAAA,CsCwGU,gBAAA,CAEA,mBjGovNV,CiGjvNU,iFrFnFV,wEAAA,CACA,gBZu0NA,CiGpwNU,kEAEE,cAAA,CACA,ajGqwNZ,CiGjwNQ,2DtCrGR,cAAA,CsCwGU,iBAAA,CAEA,qBjGiwNV,CiG9vNU,iFrFnFV,wEAAA,CACA,iBZo1NA,CiGjxNU,kEAEE,eAAA,CACA,cjGkxNZ,CiG9wNQ,2DtCrGR,cAAA,CsCwGU,iBAAA,CAEA,qBjG8wNV,CiG3wNU,iFrFnFV,wEAAA,CACA,iBZi2NA,CiG9xNU,kEAEE,eAAA,CACA,cjG+xNZ,CiG3xNQ,2DtCrGR,cAAA,CsCwGU,iBAAA,CAEA,qBjG2xNV,CiGxxNU,iFrFnFV,wEAAA,CACA,iBZ82NA,CiG3yNU,kEAEE,cAAA,CACA,ajG4yNZ,CiGxyNQ,2DtCrGR,cAAA,CsCwGU,iBAAA,CAEA,qBjGwyNV,CiGryNU,iFrFnFV,wEAAA,CACA,gBZ23NA,CiGxzNU,kEAEE,cAAA,CACA,ajGyzNZ,CiGrzNQ,2DtCrGR,cAAA,CsCwGU,iBAAA,CAEA,qBjGqzNV,CiGlzNU,iFrFnFV,wEAAA,CACA,iBZw4NA,CiGr0NU,kEAEE,gBAAA,CACA,ejGs0NZ,CiGl0NQ,2DtCrGR,cAAA,CsCwGU,iBAAA,CAEA,qBjGk0NV,CiG/zNU,iFrFnFV,wEAAA,CACA,iBZq5NA,CiGl1NU,kEAEE,eAAA,CACA,cjGm1NZ,CiG/0NQ,2DtCrGR,cAAA,CsCwGU,iBAAA,CAEA,qBjG+0NV,CiG50NU,iFrFnFV,wEAAA,CACA,iBZk6NA,CiG/1NU,mEAEE,eAAA,CACA,cjGg2NZ,CiG51NQ,4DtCrGR,cAAA,CsCwGU,gBAAA,CAEA,oBjG41NV,CiGz1NU,kFrFnFV,wEAAA,CACA,gBZ+6NA,CiG52NU,mEAEE,eAAA,CACA,cjG62NZ,CiGz2NQ,4DtCrGR,cAAA,CsCwGU,gBAAA,CAEA,oBjGy2NV,CiGt2NU,kFrFnFV,wEAAA,CACA,gBZ47NA,CiGz3NU,kEAEE,aAAA,CACA,YjG03NZ,CiGt3NQ,2DtCrGR,cAAA,CsCwGU,cAAA,CAEA,kBjGs3NV,CiGn3NU,iFrFnFV,wEAAA,CACA,gBZy8NA,CiGt4NU,kEAEE,cAAA,CACA,ajGu4NZ,CiGn4NQ,2DtCrGR,cAAA,CsCwGU,iBAAA,CAEA,oBjGm4NV,CiGh4NU,iFrFnFV,wEAAA,CACA,gBZs9NA,CiGn5NU,kEAEE,eAAA,CACA,cjGo5NZ,CiGh5NQ,2DtCrGR,cAAA,CsCwGU,iBAAA,CAEA,oBjGg5NV,CiG74NU,iFrFnFV,wEAAA,CACA,iBZm+NA,CiGh6NU,kEAEE,cAAA,CACA,ajGi6NZ,CiG75NQ,2DtCrGR,cAAA,CsCwGU,iBAAA,CAEA,oBjG65NV,CiG15NU,iFrFnFV,wEAAA,CACA,iBZg/NA,CiG76NU,kEAEE,eAAA,CACA,cjG86NZ,CiG16NQ,2DtCrGR,cAAA,CsCwGU,iBAAA,CAEA,oBjG06NV,CiGv6NU,iFrFnFV,wEAAA,CACA,iBZ6/NA,CiG17NU,mEAEE,cAAA,CACA,ajG27NZ,CiGv7NQ,4DtCrGR,cAAA,CsCwGU,iBAAA,CAEA,qBjGu7NV,CiGp7NU,kFrFnFV,wEAAA,CACA,iBZ0gOA,CiGv8NU,mEAEE,eAAA,CACA,cjGw8NZ,CiGp8NQ,4DtCrGR,cAAA,CsCwGU,iBAAA,CAEA,qBjGo8NV,CiGj8NU,kFrFnFV,wEAAA,CACA,iBZuhOA,CACF,C+B9iOI,gCkEyFQ,kEAEE,eAAA,CACA,cjGu9NZ,CiGn9NQ,2DtCrGR,cAAA,CsCwGU,gBAAA,CAEA,oBjGm9NV,CiGh9NU,iFrFnFV,wEAAA,CACA,gBZsiOA,CiGn+NU,8DAEE,aAAA,CACA,YjGo+NZ,CiGh+NQ,uDtCrGR,cAAA,CsCwGU,eAAA,CAEA,mBjGg+NV,CiG79NU,6ErFnFV,wEAAA,CACA,gBZmjOA,CiGh/NU,8DAEE,eAAA,CACA,cjGi/NZ,CiG7+NQ,uDtCrGR,cAAA,CsCwGU,gBAAA,CAEA,oBjG6+NV,CiG1+NU,6ErFnFV,wEAAA,CACA,gBZgkOA,CiG7/NU,8DAEE,eAAA,CACA,cjG8/NZ,CiG1/NQ,uDtCrGR,cAAA,CsCwGU,gBAAA,CAEA,oBjG0/NV,CiGv/NU,6ErFnFV,wEAAA,CACA,gBZ6kOA,CiG1gOU,8DAEE,aAAA,CACA,YjG2gOZ,CiGvgOQ,uDtCrGR,cAAA,CsCwGU,cAAA,CAEA,kBjGugOV,CiGpgOU,6ErFnFV,wEAAA,CACA,gBZ0lOA,CiGvhOU,8DAEE,cAAA,CACA,ajGwhOZ,CiGphOQ,uDtCrGR,cAAA,CsCwGU,iBAAA,CAEA,oBjGohOV,CiGjhOU,6ErFnFV,wEAAA,CACA,gBZumOA,CiGpiOU,8DAEE,eAAA,CACA,cjGqiOZ,CiGjiOQ,uDtCrGR,cAAA,CsCwGU,iBAAA,CAEA,oBjGiiOV,CiG9hOU,6ErFnFV,wEAAA,CACA,iBZonOA,CiGjjOU,8DAEE,aAAA,CACA,YjGkjOZ,CiG9iOQ,uDtCrGR,cAAA,CsCwGU,gBAAA,CAEA,mBjG8iOV,CiG3iOU,6ErFnFV,wEAAA,CACA,gBZioOA,CiG9jOU,8DAEE,eAAA,CACA,cjG+jOZ,CiG3jOQ,uDtCrGR,cAAA,CsCwGU,iBAAA,CAEA,oBjG2jOV,CiGxjOU,6ErFnFV,wEAAA,CACA,iBZ8oOA,CiG3kOU,8DAEE,cAAA,CACA,ajG4kOZ,CiGxkOQ,uDtCrGR,cAAA,CsCwGU,iBAAA,CAEA,oBjGwkOV,CiGrkOU,6ErFnFV,wEAAA,CACA,iBZ2pOA,CiGxlOU,+DAEE,aAAA,CACA,YjGylOZ,CiGrlOQ,wDtCrGR,cAAA,CsCwGU,gBAAA,CAEA,mBjGqlOV,CiGllOU,8ErFnFV,wEAAA,CACA,iBZwqOA,CiGrmOU,+DAEE,cAAA,CACA,ajGsmOZ,CiGlmOQ,wDtCrGR,cAAA,CsCwGU,iBAAA,CAEA,oBjGkmOV,CiG/lOU,8ErFnFV,wEAAA,CACA,iBZqrOA,CiGlnOU,+DAEE,eAAA,CACA,cjGmnOZ,CiG/mOQ,wDtCrGR,cAAA,CsCwGU,iBAAA,CAEA,oBjG+mOV,CiG5mOU,8ErFnFV,wEAAA,CACA,iBZksOA,CiG/nOU,+DAEE,aAAA,CACA,YjGgoOZ,CiG5nOQ,wDtCrGR,cAAA,CsCwGU,gBAAA,CAEA,mBjG4nOV,CiGznOU,8ErFnFV,wEAAA,CACA,gBZ+sOA,CiG5oOU,+DAEE,cAAA,CACA,ajG6oOZ,CiGzoOQ,wDtCrGR,cAAA,CsCwGU,iBAAA,CAEA,qBjGyoOV,CiGtoOU,8ErFnFV,wEAAA,CACA,iBZ4tOA,CiGzpOU,+DAEE,eAAA,CACA,cjG0pOZ,CiGtpOQ,wDtCrGR,cAAA,CsCwGU,iBAAA,CAEA,qBjGspOV,CiGnpOU,8ErFnFV,wEAAA,CACA,iBZyuOA,CiGtqOU,+DAEE,eAAA,CACA,cjGuqOZ,CiGnqOQ,wDtCrGR,cAAA,CsCwGU,iBAAA,CAEA,qBjGmqOV,CiGhqOU,8ErFnFV,wEAAA,CACA,iBZsvOA,CiGnrOU,+DAEE,cAAA,CACA,ajGorOZ,CiGhrOQ,wDtCrGR,cAAA,CsCwGU,iBAAA,CAEA,qBjGgrOV,CiG7qOU,8ErFnFV,wEAAA,CACA,gBZmwOA,CiGhsOU,+DAEE,cAAA,CACA,ajGisOZ,CiG7rOQ,wDtCrGR,cAAA,CsCwGU,iBAAA,CAEA,qBjG6rOV,CiG1rOU,8ErFnFV,wEAAA,CACA,iBZgxOA,CiG7sOU,+DAEE,gBAAA,CACA,ejG8sOZ,CiG1sOQ,wDtCrGR,cAAA,CsCwGU,iBAAA,CAEA,qBjG0sOV,CiGvsOU,8ErFnFV,wEAAA,CACA,iBZ6xOA,CiG1tOU,+DAEE,eAAA,CACA,cjG2tOZ,CiGvtOQ,wDtCrGR,cAAA,CsCwGU,iBAAA,CAEA,qBjGutOV,CiGptOU,8ErFnFV,wEAAA,CACA,iBZ0yOA,CiGvuOU,gEAEE,eAAA,CACA,cjGwuOZ,CiGpuOQ,yDtCrGR,cAAA,CsCwGU,gBAAA,CAEA,oBjGouOV,CiGjuOU,+ErFnFV,wEAAA,CACA,gBZuzOA,CiGpvOU,gEAEE,eAAA,CACA,cjGqvOZ,CiGjvOQ,yDtCrGR,cAAA,CsCwGU,gBAAA,CAEA,oBjGivOV,CiG9uOU,+ErFnFV,wEAAA,CACA,gBZo0OA,CiGjwOU,+DAEE,aAAA,CACA,YjGkwOZ,CiG9vOQ,wDtCrGR,cAAA,CsCwGU,cAAA,CAEA,kBjG8vOV,CiG3vOU,8ErFnFV,wEAAA,CACA,gBZi1OA,CiG9wOU,+DAEE,cAAA,CACA,ajG+wOZ,CiG3wOQ,wDtCrGR,cAAA,CsCwGU,iBAAA,CAEA,oBjG2wOV,CiGxwOU,8ErFnFV,wEAAA,CACA,gBZ81OA,CiG3xOU,+DAEE,eAAA,CACA,cjG4xOZ,CiGxxOQ,wDtCrGR,cAAA,CsCwGU,iBAAA,CAEA,oBjGwxOV,CiGrxOU,8ErFnFV,wEAAA,CACA,iBZ22OA,CiGxyOU,+DAEE,cAAA,CACA,ajGyyOZ,CiGryOQ,wDtCrGR,cAAA,CsCwGU,iBAAA,CAEA,oBjGqyOV,CiGlyOU,8ErFnFV,wEAAA,CACA,iBZw3OA,CiGrzOU,+DAEE,eAAA,CACA,cjGszOZ,CiGlzOQ,wDtCrGR,cAAA,CsCwGU,iBAAA,CAEA,oBjGkzOV,CiG/yOU,8ErFnFV,wEAAA,CACA,iBZq4OA,CiGl0OU,gEAEE,cAAA,CACA,ajGm0OZ,CiG/zOQ,yDtCrGR,cAAA,CsCwGU,iBAAA,CAEA,qBjG+zOV,CiG5zOU,+ErFnFV,wEAAA,CACA,iBZk5OA,CiG/0OU,gEAEE,eAAA,CACA,cjGg1OZ,CiG50OQ,yDtCrGR,cAAA,CsCwGU,iBAAA,CAEA,qBjG40OV,CiGz0OU,+ErFnFV,wEAAA,CACA,iBZ+5OA,CACF,C+Bt7OI,gCkEyFQ,mEAEE,eAAA,CACA,cjG+1OZ,CiG31OQ,4DtCrGR,cAAA,CsCwGU,gBAAA,CAEA,oBjG21OV,CiGx1OU,kFrFnFV,wEAAA,CACA,gBZ86OA,CiG32OU,+DAEE,aAAA,CACA,YjG42OZ,CiGx2OQ,wDtCrGR,cAAA,CsCwGU,eAAA,CAEA,mBjGw2OV,CiGr2OU,8ErFnFV,wEAAA,CACA,gBZ27OA,CiGx3OU,+DAEE,eAAA,CACA,cjGy3OZ,CiGr3OQ,wDtCrGR,cAAA,CsCwGU,gBAAA,CAEA,oBjGq3OV,CiGl3OU,8ErFnFV,wEAAA,CACA,gBZw8OA,CiGr4OU,+DAEE,eAAA,CACA,cjGs4OZ,CiGl4OQ,wDtCrGR,cAAA,CsCwGU,gBAAA,CAEA,oBjGk4OV,CiG/3OU,8ErFnFV,wEAAA,CACA,gBZq9OA,CiGl5OU,+DAEE,aAAA,CACA,YjGm5OZ,CiG/4OQ,wDtCrGR,cAAA,CsCwGU,cAAA,CAEA,kBjG+4OV,CiG54OU,8ErFnFV,wEAAA,CACA,gBZk+OA,CiG/5OU,+DAEE,cAAA,CACA,ajGg6OZ,CiG55OQ,wDtCrGR,cAAA,CsCwGU,iBAAA,CAEA,oBjG45OV,CiGz5OU,8ErFnFV,wEAAA,CACA,gBZ++OA,CiG56OU,+DAEE,eAAA,CACA,cjG66OZ,CiGz6OQ,wDtCrGR,cAAA,CsCwGU,iBAAA,CAEA,oBjGy6OV,CiGt6OU,8ErFnFV,wEAAA,CACA,iBZ4/OA,CiGz7OU,+DAEE,aAAA,CACA,YjG07OZ,CiGt7OQ,wDtCrGR,cAAA,CsCwGU,gBAAA,CAEA,mBjGs7OV,CiGn7OU,8ErFnFV,wEAAA,CACA,gBZygPA,CiGt8OU,+DAEE,eAAA,CACA,cjGu8OZ,CiGn8OQ,wDtCrGR,cAAA,CsCwGU,iBAAA,CAEA,oBjGm8OV,CiGh8OU,8ErFnFV,wEAAA,CACA,iBZshPA,CiGn9OU,+DAEE,cAAA,CACA,ajGo9OZ,CiGh9OQ,wDtCrGR,cAAA,CsCwGU,iBAAA,CAEA,oBjGg9OV,CiG78OU,8ErFnFV,wEAAA,CACA,iBZmiPA,CiGh+OU,gEAEE,aAAA,CACA,YjGi+OZ,CiG79OQ,yDtCrGR,cAAA,CsCwGU,gBAAA,CAEA,mBjG69OV,CiG19OU,+ErFnFV,wEAAA,CACA,iBZgjPA,CiG7+OU,gEAEE,cAAA,CACA,ajG8+OZ,CiG1+OQ,yDtCrGR,cAAA,CsCwGU,iBAAA,CAEA,oBjG0+OV,CiGv+OU,+ErFnFV,wEAAA,CACA,iBZ6jPA,CiG1/OU,gEAEE,eAAA,CACA,cjG2/OZ,CiGv/OQ,yDtCrGR,cAAA,CsCwGU,iBAAA,CAEA,oBjGu/OV,CiGp/OU,+ErFnFV,wEAAA,CACA,iBZ0kPA,CiGvgPU,gEAEE,aAAA,CACA,YjGwgPZ,CiGpgPQ,yDtCrGR,cAAA,CsCwGU,gBAAA,CAEA,mBjGogPV,CiGjgPU,+ErFnFV,wEAAA,CACA,gBZulPA,CiGphPU,gEAEE,cAAA,CACA,ajGqhPZ,CiGjhPQ,yDtCrGR,cAAA,CsCwGU,iBAAA,CAEA,qBjGihPV,CiG9gPU,+ErFnFV,wEAAA,CACA,iBZomPA,CiGjiPU,gEAEE,eAAA,CACA,cjGkiPZ,CiG9hPQ,yDtCrGR,cAAA,CsCwGU,iBAAA,CAEA,qBjG8hPV,CiG3hPU,+ErFnFV,wEAAA,CACA,iBZinPA,CiG9iPU,gEAEE,eAAA,CACA,cjG+iPZ,CiG3iPQ,yDtCrGR,cAAA,CsCwGU,iBAAA,CAEA,qBjG2iPV,CiGxiPU,+ErFnFV,wEAAA,CACA,iBZ8nPA,CiG3jPU,gEAEE,cAAA,CACA,ajG4jPZ,CiGxjPQ,yDtCrGR,cAAA,CsCwGU,iBAAA,CAEA,qBjGwjPV,CiGrjPU,+ErFnFV,wEAAA,CACA,gBZ2oPA,CiGxkPU,gEAEE,cAAA,CACA,ajGykPZ,CiGrkPQ,yDtCrGR,cAAA,CsCwGU,iBAAA,CAEA,qBjGqkPV,CiGlkPU,+ErFnFV,wEAAA,CACA,iBZwpPA,CiGrlPU,gEAEE,gBAAA,CACA,ejGslPZ,CiGllPQ,yDtCrGR,cAAA,CsCwGU,iBAAA,CAEA,qBjGklPV,CiG/kPU,+ErFnFV,wEAAA,CACA,iBZqqPA,CiGlmPU,gEAEE,eAAA,CACA,cjGmmPZ,CiG/lPQ,yDtCrGR,cAAA,CsCwGU,iBAAA,CAEA,qBjG+lPV,CiG5lPU,+ErFnFV,wEAAA,CACA,iBZkrPA,CiG/mPU,iEAEE,eAAA,CACA,cjGgnPZ,CiG5mPQ,0DtCrGR,cAAA,CsCwGU,gBAAA,CAEA,oBjG4mPV,CiGzmPU,gFrFnFV,wEAAA,CACA,gBZ+rPA,CiG5nPU,iEAEE,eAAA,CACA,cjG6nPZ,CiGznPQ,0DtCrGR,cAAA,CsCwGU,gBAAA,CAEA,oBjGynPV,CiGtnPU,gFrFnFV,wEAAA,CACA,gBZ4sPA,CiGzoPU,gEAEE,aAAA,CACA,YjG0oPZ,CiGtoPQ,yDtCrGR,cAAA,CsCwGU,cAAA,CAEA,kBjGsoPV,CiGnoPU,+ErFnFV,wEAAA,CACA,gBZytPA,CiGtpPU,gEAEE,cAAA,CACA,ajGupPZ,CiGnpPQ,yDtCrGR,cAAA,CsCwGU,iBAAA,CAEA,oBjGmpPV,CiGhpPU,+ErFnFV,wEAAA,CACA,gBZsuPA,CiGnqPU,gEAEE,eAAA,CACA,cjGoqPZ,CiGhqPQ,yDtCrGR,cAAA,CsCwGU,iBAAA,CAEA,oBjGgqPV,CiG7pPU,+ErFnFV,wEAAA,CACA,iBZmvPA,CiGhrPU,gEAEE,cAAA,CACA,ajGirPZ,CiG7qPQ,yDtCrGR,cAAA,CsCwGU,iBAAA,CAEA,oBjG6qPV,CiG1qPU,+ErFnFV,wEAAA,CACA,iBZgwPA,CiG7rPU,gEAEE,eAAA,CACA,cjG8rPZ,CiG1rPQ,yDtCrGR,cAAA,CsCwGU,iBAAA,CAEA,oBjG0rPV,CiGvrPU,+ErFnFV,wEAAA,CACA,iBZ6wPA,CiG1sPU,iEAEE,cAAA,CACA,ajG2sPZ,CiGvsPQ,0DtCrGR,cAAA,CsCwGU,iBAAA,CAEA,qBjGusPV,CiGpsPU,gFrFnFV,wEAAA,CACA,iBZ0xPA,CiGvtPU,iEAEE,eAAA,CACA,cjGwtPZ,CiGptPQ,0DtCrGR,cAAA,CsCwGU,iBAAA,CAEA,qBjGotPV,CiGjtPU,gFrFnFV,wEAAA,CACA,iBZuyPA,CACF,CiG5sPA,sBrF5FE,gBAAA,CCzBA,eAAA,CoF2HA,eAAA,CACA,kBjG4sPF,CiG3sPE,wBACE,gBjG6sPJ,CiGzsPA,wBACE,iBArIW,CAsIX,oBjG4sPF,CiG3sPE,qCACE,YjG6sPJ,CiG3sPE,oCACE,ejG6sPJ,CiG1sPE,yDACE,oBjG4sPJ,CkG70PA,gBtFYE,gFAAA,CACA,iBAAA,CCzBA,eAAA,CLGA,UAAA,CCIA,wBAAA,CyFWA,mBlGg1PF,CkG70PA,2BtEZI,gBAAA,CACA,iBAAA,CyBTA,iBAAA,CACA,kBAAA,CKJF,e1D62PF,C+Bx2PI,gCmEkBJ,2B7CpBI,iBAAA,CACA,kBrD82PF,CACF,CkGv1PA,yB7CtBI,mBAAA,CACA,gBrDi3PJ,C+Bn3PI,gCmE4BF,8Df/BA,kBAAA,C5BFA,YvD83PA,CACF,CkGt1PA,uBACE,YAAA,CACA,iBlGy1PF,CkGt1PA,sBCxCM,oBAAA,CD0CJ,WAAA,CACA,alGy1PF,CkGv1PE,4CACE,iBlGy1PJ,CkGr1PA,0BACE,WAAA,CACA,UlGw1PF,CkGr1PA,0B1C5BQ,WAAA,C0C8BN,elGw1PF,C+Bl5PI,gCmEwDJ,0BAKI,YlGy1PF,CACF,CkGt1PA,sEAEE,QAAA,CACA,SlGy1PF,CkGt1PA,iC1FvEE,aRi6PF,CkGl1PA,qCjChCU,ejEs3PV,C0B/4PE,2FAEE,a1Bs5PJ,C+B96PI,gCmEuFJ,yC7CtFI,oBAAA,CACA,iBrDk7PF,CACF,C+Br7PI,gCmEuFJ,yCtFlFE,cZo7PA,CACF,CkG11PA,qC3BzGE,oBAAA,CACA,cAAA,C3CyBE,eAAA,CACA,Y5Bi7PJ,C+Bn8PI,gCmEgGJ,qCAKI,mBAAA,CAAA,cAAA,CACA,oBAAA,CAAA,eAAA,CACA,wBAAA,CAAA,mBlGk2PF,CACF,C+B18PI,gCmEgGJ,qCAWI,mBAAA,CAAA,clGm2PF,CACF,CkGh2PA,qCACE,8BAAA,CAAA,kBAAA,CACA,oBlGm2PF,CkGj2PE,yFACE,elGm2PJ,C+Bv9PI,gCmE+GJ,qCASI,mBlGm2PF,CACF,CkGh2PA,uExE1GE,aAAA,CwE6GA,oBlGm2PF,C0B/8PE,uFACE,a1Bk9PJ,C0Bh9PE,mNAEE,a1Bm9PJ,CkGz2PA,mCxEhHE,aAAA,CuC6BQ,eAAA,CiCsFR,oBAAA,CACA,gBlG42PF,C0B59PE,mFAEE,a1Bg+PJ,C+Bx/PI,gCmEkIJ,mCAOI,YlGm3PF,CkG/2PF,oCAEI,mBlGm3PF,CALF,CoG7gQA,2BACE,sBAAA,CACA,YpGshQF,CoGnhQE,gCACE,eAAA,CACA,UpGqhQJ,CoGjhQA,iB5FKE,aAAA,C4FAA,YAAA,CACA,gBAAA,CACA,kBAAA,CACA,eAAA,CACA,OAAA,CACA,eAAA,CACA,QAAA,CACA,UpGihQF,C+BxhQI,gCqELJ,iBAeI,apGkhQF,CACF,CoG/gQA,sB5FdE,aAAA,CCIA,qBAAA,C2FeA,mBAAA,CACA,YpGghQF,CoG7gQA,0BxFFE,gFAAA,CACA,gBAAA,CCzBA,eAAA,C0EFA,eAAA,CagCA,kBAAA,CACA,YAAA,CACA,SpGihQF,CoG9gQA,uBxEfI,eAAA,CACA,YAAA,CcjCF,oBAAA,C0DkDA,wCAAA,CAUA,SpG0gQF,CqG3jQI,6BACE,4BrGikQN,CqGvjQE,0CACE,aAAA,CACA,kBAAA,CACA,oBrGyjQJ,CqG9iQI,4DACE,arGujQN,CqGpjQI,kEACE,gBrGsjQN,CqGljQE,oCTjCA,iBAAA,CS0CE,aAAA,CACA,erG6iQJ,C4FtlQE,2CACE,wBAAA,CACA,mBAAA,CACA,UAAA,CACA,aAAA,CACA,iBAAA,CAGE,aAAA,CACA,UAAA,CACA,YAAA,CACA,W5FslQN,C+BhmQI,gCsE8BF,oCTjCA,iB5FumQA,C4FrmQA,2CACE,wBAAA,CACA,mBAAA,CACA,UAAA,CACA,aAAA,CACA,iBAAA,CAGE,aAAA,CACA,UAAA,CACA,YAAA,CACA,M5FqmQJ,CACF,C0B7lQE,iKACE,a1BkmQJ,C0BhmQE,kSAEE,a1BimQJ,CoGjkQM,oEACE,apGmkQR,CoGtjQI,sD5FtEF,aAAA,C4F2EI,mBpGqjQN,CoGljQI,gDACE,yBAAA,CACA,qBpGojQN,CoGjjQI,sDACE,epGmjQN,CoGjjQM,6DACE,wBAAA,CAOA,eAAA,CACA,WAAA,CACA,MAAA,CACA,KAAA,CACA,YAAA,CACA,WpG6iQR,CoGviQA,uBxFpFE,gFAAA,CACA,gBAAA,CCzBA,eAAA,CuF8GA,QAAA,CACA,iBpG4iQF,CoG1iQE,gCbnHA,evFgqQF,CsG7qQA,c9C8CQ,kBAAA,C8C3CN,wBAAA,CACA,UtGkrQF,CsG/qQI,iCjDSA,mBAAA,CACA,oBAAA,CAEA,gBAAA,CACA,aAAA,CiDVE,gBAAA,CACA,WAAA,CACA,gBAAA,CACA,ctGmrQN,CsG9qQA,sC9C4BQ,kBAAA,CAAA,wBAAA,C8C1BN,YtGkrQF,CsG9qQE,2CACE,iBAAA,CACA,aAAA,CACA,iBAAA,CACA,UAAA,CACA,QtGirQJ,C+B5rQI,gCuEMF,2CAQI,mBAAA,CACA,kBAAA,CACA,mBAAA,CACA,iBAAA,CACA,aAAA,CACA,QtGkrQJ,CACF,CsG9qQA,oBACE,ctGirQF,CsG9qQA,uBACE,UtGirQF,CsG9qQA,yCACE,iBtGirQF,CsG/qQE,gExCxCA,iBAAA,CD8BI,O7D6rQN,CsG9qQA,uB5DvDE,oBAAA,CACA,cAAA,C2DuEA,QAAA,CCdA,wBAAA,CACA,iBAAA,CACA,WAAA,CACA,WtGwrQF,CqG3qQE,4BACE,4BAAA,CACA,gBrGirQJ,C4FrtQE,oFACE,Y5FutQJ,C+BjvQI,gC6DyBF,2CACE,Y5F2tQF,CACF,CqG7qQE,0CACE,iBrG+qQJ,CqG3qQE,iEACE,iBrG6qQJ,CqGzqQE,wFACE,iBrG2qQJ,CsG1sQI,qDACE,UAAA,CACA,aAAA,CACA,eAAA,CACA,SAAA,CACA,aAAA,CACA,oBtG+sQN,CsG7sQM,2DACE,sBtG+sQR,CsG5sQM,2DACE,UAAA,CACA,yBtG8sQR,CsGxsQA,4B1ExDI,eAAA,CACA,YAAA,CcjCF,oBAAA,CACA,c1CsyQF,CsG5sQE,6DACE,QAAA,CACA,gBtGktQJ,CsGhtQI,+DACE,etGktQN,CuGnzQA,0BACE,gBvGszQF,C+BvyQI,gCwEhBJ,0BAII,avGuzQF,CACF,CwGpzQA,gB5EcI,gBAAA,CACA,iBAAA,C8BZF,eAAA,CLGE,iBAAA,CACA,kBrDszQJ,C+BrzQI,gCyERJ,gBnDMI,iBAAA,CACA,kBrD2zQF,CACF,CwG5zQE,qB5EOE,gBAAA,CACA,iBAAA,C8BZF,eAAA,CLGE,iBAAA,CACA,kBrDo0QJ,C+Bn0QI,gCyEDF,qBnDDE,iBAAA,CACA,kBrDy0QF,CACF,CwG10QE,wB5EOE,gBAAA,CACA,iBAAA,C8BZF,eAAA,CLGE,iBAAA,CACA,kBrDk1QJ,C+Bj1QI,gCyEDF,wBnDDE,iBAAA,CACA,kBrDu1QF,CACF,CwGx1QE,uB5EOE,gBAAA,CACA,iBAAA,C8BZF,eAAA,CLGE,iBAAA,CACA,kBrDg2QJ,C+B/1QI,gCyEDF,uBnDDE,iBAAA,CACA,kBrDq2QF,CACF,CwGt2QE,0B5EOE,gBAAA,CACA,iBAAA,C8BZF,eAAA,CLGE,iBAAA,CACA,kBrD82QJ,C+B72QI,gCyEDF,0BnDDE,iBAAA,CACA,kBrDm3QF,CACF,CwGp3QE,uB5EOE,gBAAA,CACA,iBAAA,C8BZF,eAAA,CLGE,iBAAA,CACA,kBrD43QJ,C+B33QI,gCyEDF,uBnDDE,iBAAA,CACA,kBrDi4QF,CACF,CwGl4QE,0B5EOE,gBAAA,CACA,iBAAA,C8BZF,eAAA,CLGE,iBAAA,CACA,kBrD04QJ,C+Bz4QI,gCyEDF,0BnDDE,iBAAA,CACA,kBrD+4QF,CACF,CwGh5QE,wB5EOE,gBAAA,CACA,iBAAA,C8BZF,eAAA,CLGE,iBAAA,CACA,kBrDw5QJ,C+Bv5QI,gCyEDF,wBnDDE,iBAAA,CACA,kBrD65QF,CACF,CwG95QE,2B5EOE,gBAAA,CACA,iBAAA,C8BZF,eAAA,CLGE,iBAAA,CACA,kBrDs6QJ,C+Br6QI,gCyEDF,2BnDDE,iBAAA,CACA,kBrD26QF,CACF,CwG56QE,2B5EOE,gBAAA,CACA,iBAAA,C8BZF,iBAAA,CLGE,iBAAA,CACA,kBrDo7QJ,C+Bn7QI,gCyEDF,2BnDDE,iBAAA,CACA,kBrDy7QF,CACF,C+Bz7QI,gCyESE,2B5EHF,gBAAA,CACA,iBAAA,C8BZF,eAAA,CLGE,iBAAA,CACA,kBrDm8QF,CACF,C+Bn8QI,qDyESE,2BnDXF,iBAAA,CACA,kBrDy8QF,CACF,C+Bz8QI,gCyEgBI,gC5EVJ,gBAAA,CACA,iBAAA,C8BZF,eAAA,CLGE,iBAAA,CACA,kBrDk9QF,CACF,C+Bl9QI,qDyEgBI,gCnDlBJ,iBAAA,CACA,kBrDw9QF,CACF,C+Bx9QI,gCyEgBI,mC5EVJ,gBAAA,CACA,iBAAA,C8BZF,eAAA,CLGE,iBAAA,CACA,kBrDi+QF,CACF,C+Bj+QI,qDyEgBI,mCnDlBJ,iBAAA,CACA,kBrDu+QF,CACF,C+Bv+QI,gCyEgBI,kC5EVJ,gBAAA,CACA,iBAAA,C8BZF,eAAA,CLGE,iBAAA,CACA,kBrDg/QF,CACF,C+Bh/QI,qDyEgBI,kCnDlBJ,iBAAA,CACA,kBrDs/QF,CACF,C+Bt/QI,gCyEgBI,qC5EVJ,gBAAA,CACA,iBAAA,C8BZF,eAAA,CLGE,iBAAA,CACA,kBrD+/QF,CACF,C+B//QI,qDyEgBI,qCnDlBJ,iBAAA,CACA,kBrDqgRF,CACF,C+BrgRI,gCyEgBI,kC5EVJ,gBAAA,CACA,iBAAA,C8BZF,eAAA,CLGE,iBAAA,CACA,kBrD8gRF,CACF,C+B9gRI,qDyEgBI,kCnDlBJ,iBAAA,CACA,kBrDohRF,CACF,C+BphRI,gCyEgBI,qC5EVJ,gBAAA,CACA,iBAAA,C8BZF,eAAA,CLGE,iBAAA,CACA,kBrD6hRF,CACF,C+B7hRI,qDyEgBI,qCnDlBJ,iBAAA,CACA,kBrDmiRF,CACF,C+BniRI,gCyEgBI,mC5EVJ,gBAAA,CACA,iBAAA,C8BZF,eAAA,CLGE,iBAAA,CACA,kBrD4iRF,CACF,C+B5iRI,qDyEgBI,mCnDlBJ,iBAAA,CACA,kBrDkjRF,CACF,C+BljRI,gCyEgBI,sC5EVJ,gBAAA,CACA,iBAAA,C8BZF,eAAA,CLGE,iBAAA,CACA,kBrD2jRF,CACF,C+B3jRI,qDyEgBI,sCnDlBJ,iBAAA,CACA,kBrDikRF,CACF,C+BjkRI,gCyEgBI,sC5EVJ,gBAAA,CACA,iBAAA,C8BZF,iBAAA,CLGE,iBAAA,CACA,kBrD0kRF,CACF,C+B1kRI,qDyEgBI,sCnDlBJ,iBAAA,CACA,kBrDglRF,CACF,C+BhlRI,gCyESE,wB5EHF,gBAAA,CACA,iBAAA,C8BZF,eAAA,CLGE,iBAAA,CACA,kBrDylRF,CACF,C+BzlRI,qDyESE,wBnDXF,iBAAA,CACA,kBrD+lRF,CACF,C+B/lRI,gCyEgBI,6B5EVJ,gBAAA,CACA,iBAAA,C8BZF,eAAA,CLGE,iBAAA,CACA,kBrDwmRF,CACF,C+BxmRI,qDyEgBI,6BnDlBJ,iBAAA,CACA,kBrD8mRF,CACF,C+B9mRI,gCyEgBI,gC5EVJ,gBAAA,CACA,iBAAA,C8BZF,eAAA,CLGE,iBAAA,CACA,kBrDunRF,CACF,C+BvnRI,qDyEgBI,gCnDlBJ,iBAAA,CACA,kBrD6nRF,CACF,C+B7nRI,gCyEgBI,+B5EVJ,gBAAA,CACA,iBAAA,C8BZF,eAAA,CLGE,iBAAA,CACA,kBrDsoRF,CACF,C+BtoRI,qDyEgBI,+BnDlBJ,iBAAA,CACA,kBrD4oRF,CACF,C+B5oRI,gCyEgBI,kC5EVJ,gBAAA,CACA,iBAAA,C8BZF,eAAA,CLGE,iBAAA,CACA,kBrDqpRF,CACF,C+BrpRI,qDyEgBI,kCnDlBJ,iBAAA,CACA,kBrD2pRF,CACF,C+B3pRI,gCyEgBI,+B5EVJ,gBAAA,CACA,iBAAA,C8BZF,eAAA,CLGE,iBAAA,CACA,kBrDoqRF,CACF,C+BpqRI,qDyEgBI,+BnDlBJ,iBAAA,CACA,kBrD0qRF,CACF,C+B1qRI,gCyEgBI,kC5EVJ,gBAAA,CACA,iBAAA,C8BZF,eAAA,CLGE,iBAAA,CACA,kBrDmrRF,CACF,C+BnrRI,qDyEgBI,kCnDlBJ,iBAAA,CACA,kBrDyrRF,CACF,C+BzrRI,gCyEgBI,gC5EVJ,gBAAA,CACA,iBAAA,C8BZF,eAAA,CLGE,iBAAA,CACA,kBrDksRF,CACF,C+BlsRI,qDyEgBI,gCnDlBJ,iBAAA,CACA,kBrDwsRF,CACF,C+BxsRI,gCyEgBI,mC5EVJ,gBAAA,CACA,iBAAA,C8BZF,eAAA,CLGE,iBAAA,CACA,kBrDitRF,CACF,C+BjtRI,qDyEgBI,mCnDlBJ,iBAAA,CACA,kBrDutRF,CACF,C+BvtRI,gCyEgBI,mC5EVJ,gBAAA,CACA,iBAAA,C8BZF,iBAAA,CLGE,iBAAA,CACA,kBrDguRF,CACF,C+BhuRI,qDyEgBI,mCnDlBJ,iBAAA,CACA,kBrDsuRF,CACF,C+BtuRI,gCyESE,yB5EHF,gBAAA,CACA,iBAAA,C8BZF,eAAA,CLGE,iBAAA,CACA,kBrD+uRF,CACF,C+B/uRI,qDyESE,yBnDXF,iBAAA,CACA,kBrDqvRF,CACF,C+BrvRI,gCyEgBI,8B5EVJ,gBAAA,CACA,iBAAA,C8BZF,eAAA,CLGE,iBAAA,CACA,kBrD8vRF,CACF,C+B9vRI,qDyEgBI,8BnDlBJ,iBAAA,CACA,kBrDowRF,CACF,C+BpwRI,gCyEgBI,iC5EVJ,gBAAA,CACA,iBAAA,C8BZF,eAAA,CLGE,iBAAA,CACA,kBrD6wRF,CACF,C+B7wRI,qDyEgBI,iCnDlBJ,iBAAA,CACA,kBrDmxRF,CACF,C+BnxRI,gCyEgBI,gC5EVJ,gBAAA,CACA,iBAAA,C8BZF,eAAA,CLGE,iBAAA,CACA,kBrD4xRF,CACF,C+B5xRI,qDyEgBI,gCnDlBJ,iBAAA,CACA,kBrDkyRF,CACF,C+BlyRI,gCyEgBI,mC5EVJ,gBAAA,CACA,iBAAA,C8BZF,eAAA,CLGE,iBAAA,CACA,kBrD2yRF,CACF,C+B3yRI,qDyEgBI,mCnDlBJ,iBAAA,CACA,kBrDizRF,CACF,C+BjzRI,gCyEgBI,gC5EVJ,gBAAA,CACA,iBAAA,C8BZF,eAAA,CLGE,iBAAA,CACA,kBrD0zRF,CACF,C+B1zRI,qDyEgBI,gCnDlBJ,iBAAA,CACA,kBrDg0RF,CACF,C+Bh0RI,gCyEgBI,mC5EVJ,gBAAA,CACA,iBAAA,C8BZF,eAAA,CLGE,iBAAA,CACA,kBrDy0RF,CACF,C+Bz0RI,qDyEgBI,mCnDlBJ,iBAAA,CACA,kBrD+0RF,CACF,C+B/0RI,gCyEgBI,iC5EVJ,gBAAA,CACA,iBAAA,C8BZF,eAAA,CLGE,iBAAA,CACA,kBrDw1RF,CACF,C+Bx1RI,qDyEgBI,iCnDlBJ,iBAAA,CACA,kBrD81RF,CACF,C+B91RI,gCyEgBI,oC5EVJ,gBAAA,CACA,iBAAA,C8BZF,eAAA,CLGE,iBAAA,CACA,kBrDu2RF,CACF,C+Bv2RI,qDyEgBI,oCnDlBJ,iBAAA,CACA,kBrD62RF,CACF,C+B72RI,gCyEgBI,oC5EVJ,gBAAA,CACA,iBAAA,C8BZF,iBAAA,CLGE,iBAAA,CACA,kBrDs3RF,CACF,C+Bt3RI,qDyEgBI,oCnDlBJ,iBAAA,CACA,kBrD43RF,CACF,CwGl2RA,UjD/BE,YAAA,CCiCM,cxDo2RR,CwGl2RE,mB5ExBE,kBAAA,CACA,mB5B63RJ,CyDt3RE,qBJhBE,kBAAA,CACA,mBrDy4RJ,C+Bx4RI,gCyE8BF,mB5ExBE,iBAAA,CACA,kB5Bs4RF,CyDr3RE,qBJ1BA,iBAAA,CACA,kBrDk5RF,CACF,CwGh3RI,qB5E5BA,aAAA,CACA,c5B+4RJ,CyD92RM,uBJ1CF,cAAA,CACA,erD25RJ,CwGx3RI,uB5E5BA,gBAAA,CACA,iB5Bu5RJ,CyDt2RM,yBJ1DF,gBAAA,CACA,iBrDm6RJ,CwGh4RI,sB5E5BA,gBAAA,CACA,iB5B+5RJ,CyD92RM,wBJ1DF,gBAAA,CACA,iBrD26RJ,CwGx4RI,qB5E5BA,mBAAA,CACA,oB5Bu6RJ,CyDt3RM,uBJ1DF,mBAAA,CACA,oBrDm7RJ,CwGh5RI,qB5E5BA,kBAAA,CACA,mB5B+6RJ,CyD93RM,uBJ1DF,kBAAA,CACA,mBrD27RJ,CwGx5RI,qB5E5BA,mBAAA,CACA,oB5Bu7RJ,CyDt4RM,uBJ1DF,mBAAA,CACA,oBrDm8RJ,CwGh6RI,qB5E5BA,iBAAA,CACA,kB5B+7RJ,CyD94RM,uBJ1DF,iBAAA,CACA,kBrD28RJ,CwGx6RI,qB5E5BA,oBAAA,CACA,qB5Bu8RJ,CyDt5RM,uBJ1DF,oBAAA,CACA,qBrDm9RJ,CwGh7RI,qB5E5BA,mBAAA,CACA,oB5B+8RJ,CyD95RM,uBJ1DF,mBAAA,CACA,oBrD29RJ,CwGx7RI,sB5E5BA,gBAAA,CACA,iB5Bu9RJ,CyDt6RM,wBJ1DF,gBAAA,CACA,iBrDm+RJ,CwGh8RI,sB5E5BA,kBAAA,CACA,mB5B+9RJ,CyD96RM,wBJ1DF,kBAAA,CACA,mBrD2+RJ,CwGx8RI,sB5E5BA,mBAAA,CACA,oB5Bu+RJ,CyDt7RM,wBJ1DF,mBAAA,CACA,oBrDm/RJ,C+Bl/RI,gCyE+CM,gC5EzCN,aAAA,CACA,c5Bg/RF,CyD/8RI,kCJ1CF,cAAA,CACA,erD4/RF,CwG58RQ,kC5EzCN,gBAAA,CACA,iB5Bw/RF,CyDv8RI,oCJ1DF,gBAAA,CACA,iBrDogSF,CwGp9RQ,iC5EzCN,gBAAA,CACA,iB5BggSF,CyD/8RI,mCJ1DF,gBAAA,CACA,iBrD4gSF,CwG59RQ,gC5EzCN,mBAAA,CACA,oB5BwgSF,CyDv9RI,kCJ1DF,mBAAA,CACA,oBrDohSF,CwGp+RQ,gC5EzCN,kBAAA,CACA,mB5BghSF,CyD/9RI,kCJ1DF,kBAAA,CACA,mBrD4hSF,CwG5+RQ,gC5EzCN,mBAAA,CACA,oB5BwhSF,CyDv+RI,kCJ1DF,mBAAA,CACA,oBrDoiSF,CwGp/RQ,gC5EzCN,iBAAA,CACA,kB5BgiSF,CyD/+RI,kCJ1DF,iBAAA,CACA,kBrD4iSF,CwG5/RQ,gC5EzCN,oBAAA,CACA,qB5BwiSF,CyDv/RI,kCJ1DF,oBAAA,CACA,qBrDojSF,CwGpgSQ,gC5EzCN,mBAAA,CACA,oB5BgjSF,CyD//RI,kCJ1DF,mBAAA,CACA,oBrD4jSF,CwG5gSQ,iC5EzCN,gBAAA,CACA,iB5BwjSF,CyDvgSI,mCJ1DF,gBAAA,CACA,iBrDokSF,CwGphSQ,iC5EzCN,kBAAA,CACA,mB5BgkSF,CyD/gSI,mCJ1DF,kBAAA,CACA,mBrD4kSF,CwG5hSQ,iC5EzCN,mBAAA,CACA,oB5BwkSF,CyDvhSI,mCJ1DF,mBAAA,CACA,oBrDolSF,CACF,C+BplSI,gCyE+CM,6B5EzCN,aAAA,CACA,c5BklSF,CyDjjSI,+BJ1CF,cAAA,CACA,erD8lSF,CwG9iSQ,+B5EzCN,gBAAA,CACA,iB5B0lSF,CyDziSI,iCJ1DF,gBAAA,CACA,iBrDsmSF,CwGtjSQ,8B5EzCN,gBAAA,CACA,iB5BkmSF,CyDjjSI,gCJ1DF,gBAAA,CACA,iBrD8mSF,CwG9jSQ,6B5EzCN,mBAAA,CACA,oB5B0mSF,CyDzjSI,+BJ1DF,mBAAA,CACA,oBrDsnSF,CwGtkSQ,6B5EzCN,kBAAA,CACA,mB5BknSF,CyDjkSI,+BJ1DF,kBAAA,CACA,mBrD8nSF,CwG9kSQ,6B5EzCN,mBAAA,CACA,oB5B0nSF,CyDzkSI,+BJ1DF,mBAAA,CACA,oBrDsoSF,CwGtlSQ,6B5EzCN,iBAAA,CACA,kB5BkoSF,CyDjlSI,+BJ1DF,iBAAA,CACA,kBrD8oSF,CwG9lSQ,6B5EzCN,oBAAA,CACA,qB5B0oSF,CyDzlSI,+BJ1DF,oBAAA,CACA,qBrDspSF,CwGtmSQ,6B5EzCN,mBAAA,CACA,oB5BkpSF,CyDjmSI,+BJ1DF,mBAAA,CACA,oBrD8pSF,CwG9mSQ,8B5EzCN,gBAAA,CACA,iB5B0pSF,CyDzmSI,gCJ1DF,gBAAA,CACA,iBrDsqSF,CwGtnSQ,8B5EzCN,kBAAA,CACA,mB5BkqSF,CyDjnSI,gCJ1DF,kBAAA,CACA,mBrD8qSF,CwG9nSQ,8B5EzCN,mBAAA,CACA,oB5B0qSF,CyDznSI,gCJ1DF,mBAAA,CACA,oBrDsrSF,CACF,C+BtrSI,gCyE+CM,8B5EzCN,aAAA,CACA,c5BorSF,CyDnpSI,gCJ1CF,cAAA,CACA,erDgsSF,CwGhpSQ,gC5EzCN,gBAAA,CACA,iB5B4rSF,CyD3oSI,kCJ1DF,gBAAA,CACA,iBrDwsSF,CwGxpSQ,+B5EzCN,gBAAA,CACA,iB5BosSF,CyDnpSI,iCJ1DF,gBAAA,CACA,iBrDgtSF,CwGhqSQ,8B5EzCN,mBAAA,CACA,oB5B4sSF,CyD3pSI,gCJ1DF,mBAAA,CACA,oBrDwtSF,CwGxqSQ,8B5EzCN,kBAAA,CACA,mB5BotSF,CyDnqSI,gCJ1DF,kBAAA,CACA,mBrDguSF,CwGhrSQ,8B5EzCN,mBAAA,CACA,oB5B4tSF,CyD3qSI,gCJ1DF,mBAAA,CACA,oBrDwuSF,CwGxrSQ,8B5EzCN,iBAAA,CACA,kB5BouSF,CyDnrSI,gCJ1DF,iBAAA,CACA,kBrDgvSF,CwGhsSQ,8B5EzCN,oBAAA,CACA,qB5B4uSF,CyD3rSI,gCJ1DF,oBAAA,CACA,qBrDwvSF,CwGxsSQ,8B5EzCN,mBAAA,CACA,oB5BovSF,CyDnsSI,gCJ1DF,mBAAA,CACA,oBrDgwSF,CwGhtSQ,+B5EzCN,gBAAA,CACA,iB5B4vSF,CyD3sSI,iCJ1DF,gBAAA,CACA,iBrDwwSF,CwGxtSQ,+B5EzCN,kBAAA,CACA,mB5BowSF,CyDntSI,iCJ1DF,kBAAA,CACA,mBrDgxSF,CwGhuSQ,+B5EzCN,mBAAA,CACA,oB5B4wSF,CyD3tSI,iCJ1DF,mBAAA,CACA,oBrDwxSF,CACF,CwG9tSA,kB1C/DE,iBAAA,C1BAA,UAAA,CoEkEA,qBxGiuSF,CwG9tSA,UhDpCQ,WAAA,CpBjCN,UAAA,CsBAA,cAAA,CD4FI,azD8sSN,CwGhuSA,8BhDzCQ,aAAA,CpBjCN,UAAA,CsBAA,c1DgzSF,CwGjuSA,ehD9CQ,WAAA,CC2DF,azD2tSN,CwGjuSE,wBhDrDM,aAAA,CpBjCN,mBpC4zSF,CwGtuSE,YpEtFA,oBpCi0SF,CwG3uSE,wBhDrDM,aAAA,CpBjCN,SpCs0SF,CwGhvSE,YpEtFA,oBpC20SF,CwGrvSE,wBhDrDM,aAAA,CpBjCN,oBpCg1SF,CwG1vSE,YpEtFA,SpCq1SF,CwG/vSE,wBhDrDM,aAAA,CpBjCN,oBpC01SF,CwGpwSE,YpEtFA,oBpC+1SF,CwGzwSE,yBhDrDM,aAAA,CpBjCN,SpCo2SF,CwG9wSE,apEtFA,oBpCy2SF,CwGnxSE,0BhDrDM,aAAA,CpBjCN,oBpC82SF,CwGxxSE,apEtFA,UpCm3SF,C+B92SI,gCyE2FE,+ChD/DE,WAAA,CpBjCN,UAAA,CsBAA,cAAA,CD4FI,azD+xSJ,CwGnxSI,0BhDvEE,aAAA,CpBjCN,UAAA,CsBAA,c1Ds4SA,CwGxxSM,uBhD7EA,aAAA,CpBjCN,mBpC04SA,CwG5xSM,uBhD7EA,aAAA,CpBjCN,oBpC84SA,CwGhySM,uBhD7EA,aAAA,CpBjCN,SpCk5SA,CwGpySM,uBhD7EA,aAAA,CpBjCN,oBpCs5SA,CwGxySM,uBhD7EA,aAAA,CpBjCN,oBpC05SA,CwG5ySM,uBhD7EA,aAAA,CpBjCN,SpC85SA,CwGhzSM,uBhD7EA,aAAA,CpBjCN,oBpCk6SA,CwGpzSM,uBhD7EA,aAAA,CpBjCN,oBpCs6SA,CwGxzSM,uBhD7EA,aAAA,CpBjCN,SpC06SA,CwG5zSM,wBhD7EA,aAAA,CpBjCN,oBpC86SA,CwGh0SM,wBhD7EA,aAAA,CpBjCN,oBpCk7SA,CwGp0SM,wBhD7EA,aAAA,CpBjCN,UpCs7SA,CACF,C+Bl7SI,gCyE2FE,yChD/DE,WAAA,CpBjCN,UAAA,CsBAA,cAAA,CD4FI,azDk2SJ,CwGt1SI,uBhDvEE,aAAA,CpBjCN,UAAA,CsBAA,c1Dy8SA,CwG31SM,oBhD7EA,aAAA,CpBjCN,mBpC68SA,CwG/1SM,oBhD7EA,aAAA,CpBjCN,oBpCi9SA,CwGn2SM,oBhD7EA,aAAA,CpBjCN,SpCq9SA,CwGv2SM,oBhD7EA,aAAA,CpBjCN,oBpCy9SA,CwG32SM,oBhD7EA,aAAA,CpBjCN,oBpC69SA,CwG/2SM,oBhD7EA,aAAA,CpBjCN,SpCi+SA,CwGn3SM,oBhD7EA,aAAA,CpBjCN,oBpCq+SA,CwGv3SM,oBhD7EA,aAAA,CpBjCN,oBpCy+SA,CwG33SM,oBhD7EA,aAAA,CpBjCN,SpC6+SA,CwG/3SM,qBhD7EA,aAAA,CpBjCN,oBpCi/SA,CwGn4SM,qBhD7EA,aAAA,CpBjCN,oBpCq/SA,CwGv4SM,qBhD7EA,aAAA,CpBjCN,UpCy/SA,CACF,C+Br/SI,gCyE2FE,2ChD/DE,WAAA,CpBjCN,UAAA,CsBAA,cAAA,CD4FI,azDq6SJ,CwGz5SI,wBhDvEE,aAAA,CpBjCN,UAAA,CsBAA,c1D4gTA,CwG95SM,qBhD7EA,aAAA,CpBjCN,mBpCghTA,CwGl6SM,qBhD7EA,aAAA,CpBjCN,oBpCohTA,CwGt6SM,qBhD7EA,aAAA,CpBjCN,SpCwhTA,CwG16SM,qBhD7EA,aAAA,CpBjCN,oBpC4hTA,CwG96SM,qBhD7EA,aAAA,CpBjCN,oBpCgiTA,CwGl7SM,qBhD7EA,aAAA,CpBjCN,SpCoiTA,CwGt7SM,qBhD7EA,aAAA,CpBjCN,oBpCwiTA,CwG17SM,qBhD7EA,aAAA,CpBjCN,oBpC4iTA,CwG97SM,qBhD7EA,aAAA,CpBjCN,SpCgjTA,CwGl8SM,sBhD7EA,aAAA,CpBjCN,oBpCojTA,CwGt8SM,sBhD7EA,aAAA,CpBjCN,oBpCwjTA,CwG18SM,sBhD7EA,aAAA,CpBjCN,UpC4jTA,CACF,CwGp8SE,e5E1DE,yB5BigTJ,CwGv8SE,e5E1DE,0B5BqgTJ,CwG38SE,e5E1DE,e5BygTJ,CwG/8SE,e5E1DE,0B5B6gTJ,CwGn9SE,e5E1DE,0B5BihTJ,CwGv9SE,e5E1DE,e5BqhTJ,CwG39SE,e5E1DE,0B5ByhTJ,CwG/9SE,e5E1DE,0B5B6hTJ,CwGn+SE,e5E1DE,e5BiiTJ,CwGv+SE,gB5E1DE,0B5BqiTJ,CwG3+SE,gB5E1DE,0B5ByiTJ,CwG/+SE,gB5E1DE,gB5B6iTJ,CwG9+SA,kB5E/DI,a5BijTJ,C+B3mTI,gCyEmII,0B5EzEJ,yB5BsjTF,CwG7+SM,0B5EzEJ,0B5B2jTF,CwGl/SM,0B5EzEJ,e5BgkTF,CwGv/SM,0B5EzEJ,0B5BqkTF,CwG5/SM,0B5EzEJ,0B5B0kTF,CwGjgTM,0B5EzEJ,e5B+kTF,CwGtgTM,0B5EzEJ,0B5BolTF,CwG3gTM,0B5EzEJ,0B5BylTF,CwGhhTM,0B5EzEJ,e5B8lTF,CwGrhTM,2B5EzEJ,0B5BmmTF,CwG1hTM,2B5EzEJ,0B5BwmTF,CwG/hTM,2B5EzEJ,gB5B6mTF,CwG7hTI,6B5EhFF,a5BknTF,CA3DF,C+BjnTI,gCyEmII,uB5EzEJ,yB5BunTF,CwG9iTM,uB5EzEJ,0B5B4nTF,CwGnjTM,uB5EzEJ,e5BioTF,CwGxjTM,uB5EzEJ,0B5BsoTF,CwG7jTM,uB5EzEJ,0B5B2oTF,CwGlkTM,uB5EzEJ,e5BgpTF,CwGvkTM,uB5EzEJ,0B5BqpTF,CwG5kTM,uB5EzEJ,0B5B0pTF,CwGjlTM,uB5EzEJ,e5B+pTF,CwGtlTM,wB5EzEJ,0B5BoqTF,CwG3lTM,wB5EzEJ,0B5ByqTF,CwGhmTM,wB5EzEJ,gB5B8qTF,CwG9lTI,0B5EhFF,a5BmrTF,CA3DF,C+BlrTI,gCyEmII,wB5EzEJ,yB5BwrTF,CwG/mTM,wB5EzEJ,0B5B6rTF,CwGpnTM,wB5EzEJ,e5BksTF,CwGznTM,wB5EzEJ,0B5BusTF,CwG9nTM,wB5EzEJ,0B5B4sTF,CwGnoTM,wB5EzEJ,e5BitTF,CwGxoTM,wB5EzEJ,0B5BstTF,CwG7oTM,wB5EzEJ,0B5B2tTF,CwGlpTM,wB5EzEJ,e5BguTF,CwGvpTM,yB5EzEJ,0B5BquTF,CwG5pTM,yB5EzEJ,0B5B0uTF,CwGjqTM,yB5EzEJ,gB5B+uTF,CwG/pTI,2B5EhFF,a5BovTF,CA3DF,CyGrwTA,iBtBeE,sBAAA,C5BFA,YvDyzTF,CyGj0TA,sBrBJE,aAAA,CACA,kBpFy0TF,CyGl0TA,uBjDqCQ,WxDiyTR,C0G/0TA,iBAEE,wBAAA,CAAA,qBAAA,CAAA,gB1Gk1TF,C0Gh1TE,0DAEE,mBAAA,CACA,wBAAA,CAAA,qBAAA,CAAA,gB1Gk1TJ,C0G30TA,qCACE,mB1G80TF,C0G30TA,mBACE,iBAAA,CACA,mC1G80TF,C0Gz0TE,6BACE,iBAAA,CACA,SAAA,CACA,c1G20TJ,C0Gx0TE,8BACE,kBAAA,CACA,SAAA,CACA,cAAA,CACA,a1G00TJ,C0Gt0TA,mBACE,yBAAA,CACA,QAAA,CACA,WAAA,CACA,MAAA,CACA,eAAA,CACA,iBAAA,CACA,cAAA,CACA,cAAA,CACA,sBAAA,CACA,KAAA,CACA,U1Gy0TF,C0Gv0TE,0BACE,UAAA,CACA,oBAAA,CACA,WAAA,CACA,qB1Gy0TJ,C0Gt0TE,2CACE,mB1Gw0TJ,C0Gt0TI,6CACE,mB1Gw0TN,C0Gh0TE,mCnFvEA,iBAAA,CACA,WAAA,CACA,UvB24TF,C0Gl0TE,0CACE,e1Go0TJ,C0Gh0TA,W9FzCE,gFAAA,CACA,iBAAA,CCzBA,eAAA,C2DFA,mBAAA,CkCsEA,eAAA,ClGjEA,aAAA,CkGmEA,oBAAA,CACA,mBAAA,CACA,eAAA,CACA,iBAAA,CACA,eAAA,CACA,qBAAA,CACA,U1Gq0TF,C0Gn0TE,iBACE,S1Gq0TJ,C0Gj0TA,oBACE,YAAA,CACA,6BAAA,CACA,gBAAA,CACA,U1Go0TF,C0Gj0TA,iBACE,aAAA,CACA,uB1Go0TF,C0Gh0TA,oGAEE,6B1Gm0TF,C0Gh0TA,kBACE,kBAAA,CACA,mBAAA,CACA,4BAAA,CACA,aAAA,CACA,YAAA,CACA,aAAA,CACA,gBAAA,CACA,qBAAA,CACA,cAAA,CACA,U1Gm0TF,C0Gj0TE,iDAEE,4BAAA,CACA,a1Gk0TJ,C0G/zTE,wBACE,gB1Gi0TJ,C0G9zTE,4BACE,WAAA,CACA,kBAAA,CACA,U1Gg0TJ,C0G5zTA,oB9F1GE,wEAAA,CACA,iBAAA,C8F2GA,eAAA,CACA,Y1Gg0TF,C0G7zTA,mBACE,iB1Gg0TF,C0G5zTA,eACE,eAAA,CACA,U1G+zTF,C0G7zTE,gCACE,mBAAA,CACA,mBAAA,CACA,UAAA,CACA,e1G+zTJ,C+Bj9TI,gC2EqJF,mC9FhIA,wEAAA,CACA,iBZg8TA,CACF,C0G3zTA,sBACE,e1G8zTF,CE15TA,SU5CE,gFAAA,CACA,iBAAA,CCzBA,cb4+TF,C+B38TI,mC7BmCJ,S2DxCM,OAAA,CATA,QAAA,CACA,KAAA,C3DsDF,cAAA,CACA,eAAA,CACA,cAAA,CACA,YAAA,CACA,qBAAA,CACA,eAAA,CACA,YAAA,CACA,WAAA,CACA,WF26TF,CEz6TE,oBACE,sCAAA,CACA,YF26TJ,CACF,C+B//TI,gC7BiEJ,SAuBI,WAAA,CACA,iBF26TF,CACF,CEz6TE,qBACE,eF26TJ,C+BxgUI,gC7B4FF,qBAII,gBAAA,CACA,YF46TJ,CACF,CEz6TE,wBUhFA,gFAAA,CACA,iBAAA,CCzBA,cbshUF,C+Br/TI,mC7B+EJ,kB0B5FI,eAAA,CACA,YAAA,CcjCF,oBAAA,CACA,c1CyiUA,C0CviUA,qBACE,eAAA,CACA,e1CyiUF,CqG7hUE,uBACE,4BrG+hUJ,CqG3hUA,qCACE,aAAA,CACA,kBAAA,CACA,oBrG6hUF,CqG3hUE,2CACE,wBAAA,CACA,oBrG6hUJ,CqGzhUA,uDACE,arG2hUF,CqGzhUE,6DACE,arG2hUJ,CqGxhUE,6DACE,gBrG0hUJ,CqGthUA,+BTjCA,iBAAA,CS0CE,aAAA,CACA,erGihUF,C4F1jUA,sCACE,wBAAA,CACA,mBAAA,CACA,UAAA,CACA,aAAA,CACA,iBAAA,CAGE,aAAA,CACA,UAAA,CACA,YAAA,CACA,W5F0jUJ,CACF,C+BrkUI,wDsE8BF,+BTjCA,iB5F4kUA,C4F1kUA,sCACE,wBAAA,CACA,mBAAA,CACA,UAAA,CACA,aAAA,CACA,iBAAA,CAGE,aAAA,CACA,UAAA,CACA,YAAA,CACA,M5F0kUJ,CACF,C+BvjUI,mC7BqFA,oBmDlHA,qBAAA,CACA,kBrDwlUF,CACF,C+B3lUI,gC7B6GJ,kBAaI,YAAA,CACA,mBFq+TF,CACF,CEj+TI,2CACE,oBFm+TN,CE99TE,yCACE,eFg+TJ,C+BvmUI,gC7BsIF,yCAII,gBAAA,CACA,cFi+TJ,CE79TE,2CA5JF,cAAA,CACA,YAAA,CA8JM,kBAAA,CACA,aAAA,CACA,YAAA,CACA,eAAA,CAWA,UAAA,CFs9TN,CE/9TM,iDACE,aFi+TR,CE59TE,gDAGI,WF+9TN,CE19TA,oBmDpKE,oBAAA,CACA,iBrDmoUF,CAxBF,CEl8TE,yB6C/KA,4BAAA,CACA,QAAA,CACA,eAAA,CACA,eAAA,CAEA,sBAAA,CACA,eAAA,CACA,QAAA,CACA,SAAA,C7C2KE,iBAAA,CACA,aAAA,CACA,eAAA,CACA,eAAA,CACA,mBAAA,CACA,oBAAA,CACA,UFs+TJ,C6BlmUE,iCACE,a7BomUJ,C6B7lUE,gCACE,a7BkmUJ,C6B/lUE,+BX3EA,4BAAA,CACA,gBlB6qUF,C+CjqUE,i3BAmBE,4BAAA,CACA,eAAA,CACA,yB/CipUJ,C+C9oUE,2CACE,a/CgpUJ,C+C7oUE,4CACE,a/C+oUJ,C+C5oUE,6NAKE,a/C0oUJ,C+CxoUI,8BAPF,6NAQI,c/C2oUJ,CACF,C+B3rUI,gC7B2KF,yBAxLA,cAAA,CACA,YAAA,CAqMI,gBAAA,CACA,eFwgUJ,CACF,CEtgUI,8BAlBF,yBAmBI,wBFygUJ,CACF,CEvgUI,+BACE,aAAA,CACA,wBAAA,CACA,oBFygUN,C+B7sUI,gC7BiMA,+BAMI,4BF0gUN,CACF,CErgUI,sFAEE,qBFsgUN,CEpgUM,8BACE,sGACE,YFsgUR,CACF,CEhgUQ,oDACE,iBAAA,CACA,OAAA,CACA,OAAA,CACA,0BFkgUV,CuCxjUE,0DA3CA,8CAAA,CACA,2BAAA,CACA,iCAAA,CACA,+BAAA,CACA,oBAAA,CACA,cAAA,CACA,aAAA,CAuCE,UAAA,CACA,qBAXe,CAcb,gBvC8jUN,CuCnmUE,iDA+BA,0DA9BE,cAAA,CACA,2BAAA,CACA,yFAAA,CAAA,iFAAA,CAEA,mCAAA,CAAA,2BAAA,CACA,6BAAA,CAAA,qBAAA,CACA,iCAAA,CAAA,yBvCqmUF,CACF,CE/gUQ,gEACE,2BFihUV,C+BzvUI,gCQwKF,0DA3CA,sDAAA,CACA,2BAAA,CACA,iCAAA,CACA,yBAAA,CACA,oBAAA,CACA,WAAA,CACA,UAAA,CAuCE,UAAA,CACA,qBAXe,CAcb,gBvCwlUJ,CuC7nUA,iDA+BA,0DA9BE,cAAA,CACA,2BAAA,CACA,iGAAA,CAAA,yFAAA,CAEA,mCAAA,CAAA,2BAAA,CACA,6BAAA,CAAA,qBAAA,CACA,2BAAA,CAAA,mBvC+nUA,CACF,CEhiUQ,0DACE,YFkiUV,CE3hUQ,gEACE,wBF+hUV,CAJF,CEzhUY,mDAHF,gEAII,2BFiiUZ,CACF,CuCtnUE,yDA3CA,iDAAA,CACA,2BAAA,CACA,iCAAA,CACA,+BAAA,CACA,oBAAA,CACA,cAAA,CACA,aAAA,CAuCE,UAAA,CACA,qBAXe,CAcb,gBvC4nUN,CuCjqUE,iDA+BA,yDA9BE,cAAA,CACA,2BAAA,CACA,4FAAA,CAAA,oFAAA,CAEA,mCAAA,CAAA,2BAAA,CACA,6BAAA,CAAA,qBAAA,CACA,iCAAA,CAAA,yBvCmqUF,CACF,CE7iUQ,yDACE,iBAAA,CACA,OF+iUV,CE7iUU,8BAJF,yDAKI,2BFgjUV,CACF,C+B7zUI,gC7BmQA,6CAeI,qBAAA,CACA,wBAAA,CACA,UF+iUN,CACF,C+Bp0UI,qDQwKF,yDA3CA,sDAAA,CACA,2BAAA,CACA,iCAAA,CACA,yBAAA,CACA,oBAAA,CACA,WAAA,CACA,UAAA,CAuCE,UAAA,CACA,qBAXe,CAcb,gBvCmqUJ,CuCxsUA,iDA+BA,yDA9BE,cAAA,CACA,2BAAA,CACA,iGAAA,CAAA,yFAAA,CAEA,mCAAA,CAAA,2BAAA,CACA,6BAAA,CAAA,qBAAA,CACA,2BAAA,CAAA,mBvC0sUA,CACF,CElkUU,yDACE,YAAA,CACA,qBFokUZ,CACF,CEpkUc,wEAHF,yDAII,2BFukUd,CACF,C+Br2UI,gC7BuSA,8CAEI,oBAAA,CACA,cAAA,CACA,kBFgkUN,CACF,CExjUA,oBACE,eF2jUF,C+Bh3UI,gC7BoTJ,oBsDxRQ,qBAAA,CAAA,oBAAA,CtD6RJ,WAAA,CACA,YAAA,CACA,gBAAA,CACA,gBAAA,CACA,2BAAA,CAGA,iBAAA,CACA,UF2jUF,CACF,CEzjUE,gCACE,UF2jUJ,C+Bh4UI,gC7BoUF,gCAII,aAAA,CACA,gBF4jUJ,CACF,CExjUA,0BqEzVE,eAAA,CACA,YAAA,CACA,oBAAA,CACA,cAAA,CrEwVA,eAAA,CACA,iBF8jUF,C+B/4UI,gC7B8UJ,0BAMI,qBAAA,CAAA,gBAAA,CACA,YAAA,CACA,oBAAA,CACA,cAAA,CACA,oBAAA,CACA,YF+jUF,CE5jUA,mDAEI,mBF+jUJ,CE7jUI,4EACE,6BAAA,CACA,kBF+jUN,CARF,CEljUE,4BACE,aAAA,CACA,oBAAA,CACA,gBAAA,CACA,oBF6jUJ,CE3jUI,kCACE,aAAA,CACA,yBF6jUN,C+B94UI,mC7ByVJ,kBwCtYE,oBAAA,CACA,cAAA,C2DuEA,QrG43UA,C0Cj8UA,qBACE,eAAA,CACA,e1Cm8UF,CqG93UA,uBACE,4BAAA,CACA,gBrGg4UF,C4Fp6UA,sCACE,Y5Fs6UF,CACF,C+Bj8UI,wD6DyBF,sCACE,Y5F26UF,CACF,C+Bx6UI,mCsE2CF,qCACE,iBrGg4UF,CqG53UA,uDACE,iBrG83UF,CqG13UA,yEACE,iBrG43UF,CACF,C+Bj9UI,gC7BuXJ,kBqElYE,eAAA,CACA,YAAA,CACA,oBAAA,CACA,cAAA,ClBSE,oBAAA,CACA,iBAAA,CnD6XA,wBAAA,CACA,WAAA,CACA,iBAAA,CACA,WF4lUF,CACF,CE1lUE,oCACE,YF4lUJ,C+Bl+UI,gC7B2YE,2CmD7YF,iBAAA,CACA,kBAAA,CnD8YI,UAAA,CACA,eAAA,CACA,aF2lUN,CEzlUM,iDACE,sBF2lUR,CExlUM,iDACE,UAAA,CACA,yBF0lUR,CACF,CEplUA,uB0B7YI,eAAA,CACA,YAAA,CcjCF,oBAAA,CACA,c1CugVF,C0CrgVE,wHACE,eAAA,CACA,e1CugVJ,CE5lUE,mDACE,QAAA,CACA,gBF8lUJ,CE5lUI,sGACE,eF8lUN,CEtlUA,gB2BvXE,yBAAA,CkB3DA,4BAAA,CACA,QAAA,CACA,eAAA,CACA,eAAA,CACA,eAAA,CACA,sBAAA,CAEA,QAAA,CACA,SAAA,CACA,UAAA,CZVA,WAAA,CCAA,UAAA,ClCsbA,qBAAA,CACA,kBAAA,CACA,SAAA,CACA,WAAA,CACA,8BAAA,CACA,iBFqmUF,C6Bl+UE,wBACE,a7Bo+UJ,C6B79UE,uBACE,a7Bk+UJ,C6B/9UE,sBX3EA,4BAAA,CACA,gBlB6iVF,C+CjiVE,ssBAmBE,4BAAA,CACA,eAAA,CACA,yB/CihVJ,C+C9gVE,kCACE,a/CghVJ,C+C7gVE,mCACE,a/C+gVJ,C+C5gVE,gLAKE,a/C0gVJ,C+CxgVI,8BAPF,gLAQI,c/C2gVJ,CuCl5UA,wBA3CA,gDAAA,CACA,2BAAA,CACA,iCAAA,CACA,+BAAA,CACA,oBAAA,CACA,cAAA,CACA,aAAA,CAuCE,UAAA,CACA,qBAXe,CAgBb,iBvCw5UJ,CuC/7UA,iDA+BA,wBA9BE,cAAA,CACA,2BAAA,CACA,2FAAA,CAAA,mFAAA,CAEA,mCAAA,CAAA,2BAAA,CACA,6BAAA,CAAA,qBAAA,CACA,iCAAA,CAAA,yBvCi8UA,CACF,CExpUE,wBACE,2BF0pUJ,CA1BF,CE5nUE,sBACE,kBAAA,CACA,oBFypUJ,C+B1lVI,gC7B8aJ,gBAuBI,YFypUF,CACF,CEvpUE,oBACE,YFypUJ,CEvpUI,8BAHF,oBAII,YF0pUJ,CACF,CEvpUE,kBACE,UFypUJ,CErpUA,2BACE,eFwpUF,CEtoUE,4BACE,qCACE,iBAAA,CACA,cAAA,CAEA,uBFwoUJ,CACF,C2G9mVA,gB/ESI,kBAAA,CACA,eAAA,ChBGF,gFAAA,CACA,iBAAA,CCzBA,eAAA,CLGA,aAAA,CCIA,qBAAA,CkGWA,YAAA,CACA,sB3GinVF,C2G7mVA,0BACE,cAAA,CACA,a3GgnVF,C2GxmVA,sBpCzCE,eAAA,CACA,YAAA,CACA,oBAAA,CACA,cAAA,CoCwCA,kBAAA,CACA,YAAA,CACA,oBAAA,CACA,sBAAA,CACA,U3G8mVF,C2GzmVA,sBACE,mBAAA,CACA,aAAA,CACA,sBAAA,CACA,aAAA,CACA,kBAAA,CACA,mBAAA,CACA,gB3G4mVF,C+B5pVI,gC4EyCJ,sBAUI,a3G6mVF,CACF,C2GxmVA,uBACE,Y3G2mVF,C+BrqVI,gC4EyDJ,uBAGI,e3G6mVF,C2GzmVF,+BAEI,oB3G6mVF,C2GzmVF,2BAEI,mB3G6mVF,CAXF,C2G9lVA,sBACE,kBAAA,CACA,aAAA,CACA,mB3G6mVF,C2G3mVE,gCACE,oBAAA,CACA,mB3G6mVJ,C2G1mVE,qFAGE,a3G0mVJ,C2GvmVE,8BACE,a3GymVJ,C2GrmVA,wBACE,kBAAA,CACA,8BAAA,CACA,oBAAA,CACA,kBAAA,CACA,gBAAA,CACA,aAAA,CACA,mBAAA,CACA,sBAAA,CACA,aAAA,CACA,U3GwmVF,C2GtmVE,2FAGE,aAAA,CACA,oB3GsmVJ,C2GpmVI,8BANF,2FAOI,4B3GumVJ,CACF,C2GnmVA,6BAME,wBAAA,CACA,wBAAA,CACA,U3GimVF,C2G/lVE,8BAVF,6BAWI,4BzDrJmB,CyDsJnB,gB3GkmVF,CACF,C2GhmVE,0GAGE,wBAAA,CACA,U3GgmVJ,C2G9lVI,8BANF,0GAOI,gB3GimVJ,CACF,C2G7lVA,0BACE,kBAAA,CACA,kBAAA,CACA,eAAA,CACA,wBAAA,CAAA,qBAAA,CAAA,gBAAA,CACA,a3GgmVF,C4GvvVI,+FjDPF,c3DkxVF,C4GnxVE,+ChG2BA,gFAAA,CACA,iBAAA,CCzBA,eAAA,CeoBE,eAAA,CACA,YAAA,CcjCF,oBAAA,CACA,cAAA,CkEWE,+BAAA,CACA,yCAAA,CACA,iB5GmyVJ,C4G3xVE,2DACE,+BAAA,CAEA,iBAAA,CAIA,eAAA,CACA,mBAAA,CACA,4C5GgyVJ,C4G3xVE,mCACE,mC5G8xVJ,C4G3xVE,gCpDGM,kBAAA,CAAA,kBAAA,CAAA,sBAAA,CgBjCN,mBAAA,CoCkCE,qBAAA,CACA,2BAAA,CAEA,4BAAA,CAEA,aAAA,CACA,0CAAA,CACA,mCAAA,CACA,YAAA,CACA,gFAAA,CACA,iBAAA,CAIA,eAAA,CACA,aAAA,CACA,MAAA,CACA,cAAA,CACA,iBApBoB,CAqBpB,iBAAA,CACA,Y5G2xVJ,C4GrxVI,8BACE,oB5G0xVN,C4GlxVE,qCACE,Y5GuxVJ,C4GpxVE,oCACE,e5GsxVJ,C4GlxVA,2BhGnDE,iBAAA,CCzBA,eAAA,C+FkFA,aAAA,CACA,gFAAA,CACA,eAAA,CACA,Q5GmxVF,C4GjxVE,6BACE,iB5GmxVJ,C6Gj3VA,YjG8BE,gFAAA,CACA,iBAAA,CCzBA,eAAA,CgGFA,iB7Go3VF,C2Fl4VE,mBACE,UAAA,CACA,UAAA,CACA,a3Fo4VJ,C6Gt3VE,gFAKE,Y7Gq3VJ,C6Gl3VE,0BACE,2BAAA,CACA,wBAAA,CACA,WAAA,CACA,QAAA,CACA,SAAA,CACA,U7Go3VJ,C+Bh4VI,gC8EMF,0BxDRE,iBAAA,CACA,kBAAA,CwDiBE,U7Gs3VJ,CACF,C6Gp3VI,8BtEqJF,kCA3CA,iDAAA,CACA,2BAAA,CACA,iCAAA,CACA,6BAAA,CACA,oBAAA,CACA,aAAA,CACA,YAAA,CAuCE,UAAA,CACA,qBAXe,CAgBb,iBvCouVJ,CuC3wVA,iDA+BA,kCA9BE,cAAA,CACA,2BAAA,CACA,4FAAA,CAAA,oFAAA,CAEA,mCAAA,CAAA,2BAAA,CACA,6BAAA,CAAA,qBAAA,CACA,+BAAA,CAAA,uBvC6wVA,CACF,C6Gx4VI,gCACE,gB7G04VN,CACF,C+Bl6VI,mD8E0BE,kCAEI,Y7G04VR,CACF,C+Bv6VI,gC8EkCF,yBAEI,Y7Gu4VJ,CACF,C6Gr4VI,8BALF,yBAMI,Y7Gw4VJ,CACF,C+Bj7VI,gC8EgDF,mEAGI,iBAAA,CACA,W7Go4VJ,C6Gh4VA,oExD1DE,iBAAA,CACA,kBAAA,CwD6DE,iBAAA,CACA,WAfK,CAgBL,U7Go4VJ,CATF,C6Gr3VE,wExDtEE,mBAAA,CACA,oBAAA,CwDwEA,c7Gm4VJ,C+B18VI,mD8E4EE,yCAEI,U7Gg4VR,CACF,C6G33VE,4C1EzFA,aAAA,CCAA,YAAA,CyE2FE,a7G83VJ,C6G53VI,8BAJF,4CAKI,Y7G+3VJ,CACF,C6G13VA,mBAEE,qBAAA,CACA,uBAAA,CAAA,oBAAA,CAAA,e7G63VF,C6G13VA,iCxDpGI,gBAAA,CACA,aAAA,CwDsGF,4BAAA,CACA,iBAAA,CACA,yBAAA,CACA,qBAAA,CACA,UAAA,CACA,cAAA,CACA,WAAA,CACA,Q7G83VF,C6G33VA,yBACE,Y7G83VF,C+Bj/VI,gC8EkHJ,yBAII,a7G+3VF,CACF,C8GtgWA,azDiBI,mBAAA,CACA,gBrDy/VJ,C+B3/VI,gC+EhBJ,azDiBI,mBAAA,CACA,gBrD8/VF,CACF,C8GxgWA,oBACE,wB9G2gWF,C8GxgWA,mBACE,wBAAA,CACA,U9G2gWF,C8G9/VE,qBACE,U9GwgWJ,C8GrgWE,kDpFEA,a1BsgWF,C0BlgWE,uDAEE,a1BsgWJ,C+GhjWA,anFmCI,eAAA,CACA,YAAA,CcjCF,oBAAA,CACA,cAAA,C9BmCA,gFAAA,CACA,iBAAA,CCzBA,eAAA,CkGXA,+B/GujWF,CqG7iWI,mBACE,4BrGmjWN,CqGziWE,gCACE,aAAA,CACA,kBAAA,CACA,oBrG2iWJ,CqGziWI,sCACE,wBAAA,CACA,oBrG2iWN,CqGviWE,kDACE,arGyiWJ,CqGviWI,wDACE,arGyiWN,CqGtiWI,wDACE,gBrGwiWN,CqGpiWE,0BTjCA,iBAAA,CS0CE,aAAA,CACA,erG+hWJ,C4FxkWE,iCACE,wBAAA,CACA,mBAAA,CACA,UAAA,CACA,aAAA,CACA,iBAAA,CAGE,aAAA,CACA,UAAA,CACA,YAAA,CACA,W5FwkWN,C+BllWI,gCsE8BF,0BTjCA,iB5FylWA,C4FvlWA,iCACE,wBAAA,CACA,mBAAA,CACA,UAAA,CACA,aAAA,CACA,iBAAA,CAGE,aAAA,CACA,UAAA,CACA,YAAA,CACA,M5FulWJ,CACF,C+G9mWE,6BnFkBE,iBAAA,CACA,kB5B+lWJ,C+BtmWI,gCgFZF,6BnFkBE,aAAA,CACA,c5BomWF,CACF,C+G/mWA,sBrEZE,oBAAA,CACA,cAAA,C2DuEA,QAAA,CU1DA,c/GsnWF,CqG1jWE,2BACE,4BAAA,CACA,gBrGgkWJ,C4FpmWE,0CACE,Y5FsmWJ,C+BhoWI,gC6DyBF,0CACE,Y5F0mWF,CACF,CqG5jWE,yCACE,iBrG8jWJ,CqG1jWE,+DACE,iBrG4jWJ,CqGxjWE,qFACE,iBrG0jWJ,CgHppWE,2B5DoBA,wBAAA,CACA,+BAAA,CACA,apDooWF,CoDloWE,4CxCGA,gFAAA,CACA,iBAAA,CCzBA,eAAA,CwCIE,mBAAA,CACA,gBAAA,CDoBA,iBpDsoWJ,CoDnoWE,4CxBRE,eAAA,CACA,Y5B8oWJ,CoDpoWI,uDC3BA,gBAAA,CACA,arDkqWJ,CoDnoWE,+CxCZA,gFAAA,CACA,iBAAA,CCzBA,cAAA,CuCsCE,YAAA,CACA,mBpDuoWJ,CoDpoWE,2FAEE,gBpDsoWJ,CoDpoWI,iHACE,epDuoWN,CgHtrWI,4CtDFF,eAAA,CLGE,oBAAA,CACA,qBrDyrWJ,CgHvrWM,oDACE,oBhHyrWR,C+B3rWI,gCiFHA,4CpFSA,gBAAA,CACA,iBAAA,CoFGI,oBArBe,CAsBf,qBhHurWN,CgHrrWM,oDACE,oBhHurWR,CACF,CgHhrWE,iC5D+BA,wBAAA,CACA,yBpDqpWF,CgHlrWI,kDxGzBF,aAAA,CCIA,wBAAA,C2CiEA,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,0BpD2oWF,CoDhnWE,0Db0BA,+CAAA,CACA,2BAAA,CACA,iCAAA,CACA,yBAAA,CAEA,WAAA,CACA,UAAA,Ca9BE,UAAA,CACA,aAAA,CACA,iBAAA,CACA,kBpDwnWJ,CuCvlWE,iDatCA,0DbuCE,cAAA,CACA,wBAAA,CACA,0FAAA,CAAA,kFAAA,CAEA,mCAAA,CAAA,2BAAA,CACA,6BAAA,CAAA,qBAAA,CACA,2BAAA,CAAA,mBvCylWF,CACF,CoD9pWE,oDACE,kBpDgqWJ,CoD7pWE,yE1B9DA,a1B8tWF,C0B7tWE,oEACE,a1B+tWJ,C0B7tWE,qIAEE,a1B8tWJ,CgHhuWE,sC5D+BA,wBAAA,CACA,yBpDqsWF,CgHluWI,uDxGzBF,UAAA,CCIA,wBAAA,C2CiEA,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,0BpD2rWF,CoDhqWE,+Db0BA,0DAAA,CACA,2BAAA,CACA,iCAAA,CACA,yBAAA,CAEA,WAAA,CACA,UAAA,Ca9BE,UAAA,CACA,aAAA,CACA,iBAAA,CACA,kBpDwqWJ,CuCvoWE,iDatCA,+DbuCE,cAAA,CACA,qBAAA,CACA,2FAAA,CAAA,mFAAA,CAEA,mCAAA,CAAA,2BAAA,CACA,6BAAA,CAAA,qBAAA,CACA,2BAAA,CAAA,mBvCyoWF,CACF,CoD9sWE,yDACE,kBpDgtWJ,CoD7sWE,0I1B9DA,a1B8wWF,C0B1wWE,+IAEE,a1B8wWJ,CoD9pWE,kDCvIE,oBAAA,CACA,iBAAA,CDyIA,YpDiqWJ,CoD/qWE,yDAIE,aAAA,CACA,SAAA,CACA,YpD8qWJ,CoDnrWI,iDADF,yDAEI,wBAAA,CAAA,gBpDsrWJ,CACF,CoDzqWI,oDACE,gBpD2qWN,CgHvxWE,0DACE,ahHyxWJ,C+B5zWI,gCiFkCF,0DAMI,ahHwxWJ,CACF,CoDntWE,qDACE,YpDstWJ,CoDptWI,4DACE,YpDstWN,CoDntWI,uDACE,apDqtWN,CiH71WA,arGuCE,gFAAA,CACA,iBAAA,CCzBA,eAAA,CgB0DA,yBAAA,CoFrEA,cAAA,CACA,MAAA,CACA,kBAAA,CACA,iBAAA,CACA,WAAA,CACA,2BCNe,CDOf,WjHk2WF,C6BjyWE,qBACE,a7BmyWJ,C6BhyWE,mBACE,a7BkyWJ,C6B/xWE,oBACE,a7BiyWJ,C6B9xWE,mBX3EA,4BAAA,CACA,gBlB42WF,CiH72WE,0CAEE,eAAA,CACA,MAAA,CACA,iBAAA,CACA,KAAA,CACA,2BjH82WJ,CiH12WA,wBACE,iBjH62WF,CmH13WA,oBvG6BE,gFAAA,CACA,iBAAA,CCzBA,eAAA,CsGCA,qBAAA,CACA,kBAAA,CACA,gBAAA,CACA,iBnH23WF,C+B53WI,gCoFRJ,oBvFcI,aAAA,CACA,c5B03WF,CACF,CmH13WA,8BACE,gCAAA,CACA,YAAA,CACA,eAAA,CACA,QAAA,CACA,SnH63WF,CmH13WA,6B3DYQ,WAAA,C2DVN,oCAAA,CACA,eAAA,CACA,gBAAA,CACA,eAAA,CACA,gBAAA,CACA,iBnH63WF,CmH13WE,mCACE,wBAAA,CACA,UAAA,CACA,aAAA,CAEA,YAAA,CACA,MAAA,CACA,iBAAA,CACA,OAAA,CACA,KnH23WJ,C+B95WI,gCoF0BF,mCAYI,YnH43WJ,CACF,CmHv3WE,8CACE,wBnH03WJ,CmHx3WE,0EACE,anH03WJ,CmHr3WE,6CACE,wBnHw3WJ,CmHt3WE,yEACE,aAAA,CACA,enHw3WJ,CmHp3WA,mCACE,YnHu3WF,C+Bt7WI,gCoF8DJ,mCAII,aAAA,CACA,aAAA,CACA,iBAAA,CAKA,8BAAA,CAIA,kBAAA,CACA,enHi3WF,CACF,CmH92WA,4BACE,oBAAA,CACA,YnHi3WF,CmH92WA,6BACE,aAAA,CACA,gFAAA,CACA,iBAAA,CAIA,eAAA,CACA,enH82WF,C+B78WI,gCoFuFJ,6BAWI,iBAAA,CAIA,enH42WF,CACF,CmHz2WA,kChF/GE,aAAA,CqCAA,mBAAA,CpCAA,YAAA,C6BoDQ,eAAA,CAAA,qCAAA,CkD+DR,wBAAA,CACA,UAAA,CACA,oBAAA,CAEA,mCAAA,CAGA,iBnH22WF,CmHx2WA,iClDzEU,eAAA,CAAA,qCAAA,CkD2ER,aAAA,CACA,kBnH42WF,C+Bv+WI,gCoFgIF,yHvF1HE,aAAA,CACA,cAAA,CuF2II,4CnH61WN,CmHh1WI,uIhFpKJ,aAAA,CqCAA,mBAAA,CpCAA,YAAA,C6BoDQ,qCAAA,CkDmHF,qBAAA,CACA,uDACE,CAIF,aAAA,CACA,mCAAA,CACA,aAAA,CACA,eAAA,CACA,MAAA,CACA,cAAA,CAEA,kCAAA,CAKA,iBAAA,CACA,iBAAA,CACA,6BAAA,CAOA,WnHs0WN,CmHj0WM,2JACE,YnHo0WR,CACF,CmH9zWI,6JACE,wBAAA,CACA,4BAAA,CAEA,UnHg0WN,CmH3zWI,2JACE,wBAAA,CACA,4BAAA,CAEA,UnH6zWN,C+BphXI,gCoF2NF,iEAGI,2CnH2zWJ,CmHzyWQ,mNACE,QAAA,CACA,OAAA,CACA,UnH8yWV,CmHzyWQ,iNACE,aAAA,CACA,MAAA,CACA,SAAA,CACA,UnH4yWV,CmHnyWA,8DAeM,4CnH0xWN,CmH7wWI,qEhFtSJ,aAAA,CqCAA,mBAAA,CpCAA,YAAA,CxBUA,gBAAA,CuG+RM,0BAAA,CACA,6BnHixWN,CmHtwWM,+EACE,YnHwwWR,CmHlwWA,oEAGI,2CnHowWJ,CApCF,CmHltWA,2DACE,gBAAA,CACA,iBnH0vWF,CmHxvWE,4DAEE,YAAA,CAEA,eAAA,CACA,gBnHwvWJ,CmHtvWI,mEAEE,YnHuvWN,CmHlvWM,6EACE,anHovWR,CmH/uWE,4DACE,enHivWJ,CmH5uWE,yJAEE,YnH8uWJ,CmHtuWE,yDACE,eAAA,CACA,gBnH6uWJ,CmH3uWI,gEAII,oCnH0uWR,CmH5tWE,+D9DxYE,kBAAA,CACA,mBAAA,C8D2YA,iBnH6tWJ,CmHttWQ,yGACE,MnHwtWV,CmHntWQ,wGACE,OnHqtWV,CmH7sWM,gGAII,oCnH4sWV,CoH9nXA,iBxGmCE,gFAAA,CACA,iBAAA,CCzBA,eAAA,CLGA,aAAA,CCIA,wBAAA,C+DTA,oBAAA,C4CAA,wBAAA,CAEA,cAAA,CACA,iBpH8nXF,CoH3nXI,sCACE,epH6nXN,CoHznXE,mBACE,epH2nXJ,CoHvnXA,0BxGUE,gFAAA,CACA,iBAAA,CCzBA,eAAA,CuGgBA,YAAA,CACA,mBpH4nXF,CoHznXA,uBxFAI,eAAA,CACA,Y5B6nXJ,CoH1nXA,kCACE,iBC8J+B,CD7J/B,kBpH6nXF,CoH1nXA,iE1FRE,a1BsoXF,C0BroXE,+BACE,a1BuoXJ,C0BroXE,mGAEE,a1BsoXJ,CsHhrXA,W1GuCE,gFAAA,CACA,iBAAA,CCzBA,eAAA,CgCwMA,wBAAA,CACA,gBAAA,CACA,aAAA,CACA,gBAAA,CACA,e7Cw+WF,C6Ct+WE,sDAGE,2BAAA,CACA,eAAA,CACA,wBAAA,CACA,a7Cw+WJ,C6Cr+WE,4BAEE,wBAAA,CACA,kB7Cu+WJ,C6Cp+WE,cACE,qBAAA,CACA,e7Cs+WJ,C6C39WE,6BAjLA,oBAAA,CACA,iB7CspXF,C6CrpXE,oCACE,+BAAA,CACA,yBAAA,CACA,uBAAA,CACA,QAAA,CACA,UAAA,CACA,QAAA,CACA,MAAA,CACA,iBAAA,CACA,U7CupXJ,C6C5+WM,iJEhPJ,4BAAA,CACA,QAAA,CACA,eAAA,CACA,eAAA,CACA,eAAA,CACA,sBAAA,CAGA,SAAA,CACA,UAAA,CZVA,WAAA,CCAA,UAAA,CS6EA,iCAAA,CACA,sBAAA,CACA,aAAA,CACA,cAAA,CACA,oBAAA,CACA,QAAA,CACA,iBAAA,CACA,YAAA,CACA,iBAAA,CACA,oBAAA,CAEA,OAAA,CACA,2B7CgqXF,C6BnrXE,+JACE,a7B2rXJ,C6BxrXE,6JX3EA,4BAAA,CACA,gBlBswXF,C+C1vXE,++GAmBE,4BAAA,CACA,eAAA,CACA,yB/C0uXJ,C+CvuXE,qLACE,a/CyuXJ,C+CtuXE,uLACE,a/CwuXJ,C+CruXE,q5BAKE,a/CmuXJ,C+CjuXI,8BAPF,q5BAQI,c/CouXJ,CACF,C6C/rXE,qKV1FA,aAAA,CCAA,YAAA,CS4FE,qB7CksXJ,C6CxiXI,qGAEE,wB7CkjXN,C6C9iXM,2JE3PJ,4BAAA,CACA,QAAA,CACA,eAAA,CACA,eAAA,CACA,eAAA,CACA,sBAAA,CAGA,SAAA,CACA,UAAA,CZVA,WAAA,CCAA,UAAA,CS6EA,iCAAA,CACA,sBAAA,CACA,aAAA,CACA,cAAA,CACA,oBAAA,CACA,QAAA,CACA,iBAAA,CACA,YAAA,CACA,iBAAA,CACA,oBAAA,CAEA,OAAA,CACA,2B7C6uXF,C6BxwXE,sFACE,a7B0wXJ,C6BvwXE,oFACE,a7BywXJ,C6BtwXE,qFACE,a7BwwXJ,C6BrwXE,oFX3EA,4BAAA,CACA,gBlBm1XF,C+Cv0XE,g2DAmBE,4BAAA,CACA,eAAA,CACA,yB/CuzXJ,C+CpzXE,gGACE,a/CszXJ,C+CnzXE,iGACE,a/CqzXJ,C+ClzXE,seAKE,a/CgzXJ,C+C9yXI,8BAPF,seAQI,c/CizXJ,CACF,C6C5wXE,wFV1FA,aAAA,CCAA,YAAA,CS4FE,qB7C+wXJ,C6B7yXE,qFACE,a7Bi1XJ,C6B90XE,mFACE,a7Bg1XJ,C6B70XE,oFACE,a7B+0XJ,C6B50XE,mFX3EA,4BAAA,CACA,gBlB05XF,C+C94XE,60DAmBE,4BAAA,CACA,eAAA,CACA,yB/C83XJ,C+C33XE,+FACE,a/C63XJ,C+C13XE,gGACE,a/C43XJ,C+Cz3XE,ieAKE,a/Cu3XJ,C+Cr3XI,8BAPF,ieAQI,c/Cw3XJ,CACF,C6Cn1XE,uFV1FA,aAAA,CCAA,YAAA,CS4FE,qB7Cs1XJ,C6CxqXI,+BACE,wBAAA,CACA,a7CgrXN,C6C5qXE,gEAEE,wBAAA,CACA,a7C8qXJ,C6CzqXE,0FAGE,qB7CgrXJ,C6C7qXE,0BACE,YAAA,CACA,a7C+qXJ,C6C7qXI,qCACE,a7C+qXN,C6C1qXI,0GACE,Y7C4qXN,C6CpqXE,oDAEE,aAAA,CACA,c7CyqXJ,C6CpqXE,8CAEE,qB7CuqXJ,C6C7pXQ,iEACE,wBAAA,CACA,a7CoqXV,C+Bx8XI,mCc4FF,2DACE,Y7Cg3XF,C6C72XA,uBACE,qB7C+2XF,C6C52XA,8CAEE,qBAAA,CACA,aAAA,CACA,U7C82XF,C6C32XA,qDACE,kCAAA,CACA,kBAAA,CACA,U7C62XF,C6C52XE,4EAEE,kB7C82XJ,C6C32XI,kFAEE,wB7C62XN,C6Cx2XI,sNAEE,+B7C02XN,C6Cr2XA,0JAEE,qB7Cu2XF,C6Cr2XE,oFACE,wBAAA,CACA,aAAA,CACA,eAAA,CACA,qBAAA,CACA,0B7Cw2XJ,C6Cn5XA,8BACE,qB7C25XF,C6Cx5XA,4DAEE,qBAAA,CACA,aAAA,CACA,U7C05XF,C6Cn5XE,0FAEE,kB7C05XJ,C6Cv5XI,gGAEE,wB7Cy5XN,C6Cz4XE,kGACE,wBAAA,CACA,aAAA,CACA,eAAA,CACA,qBAAA,CACA,0B7Co5XJ,C6C74XE,0FjC3JF,gFAAA,CACA,iBAAA,CCzBA,eAAA,CgC0LI,wBAAA,CACA,aAzLoB,CA0LpB,eAAA,CACA,mB7C64XJ,C6C54XI,wGACE,Y7C+4XN,CAzDF,C6Cp5XE,qCACE,qB7Co9XJ,C6Cj9XE,0EAEE,qBAAA,CACA,aAAA,CACA,U7Cm9XJ,C6C58XI,wGAEE,kB7Cm9XN,C6Ch9XM,8GAEE,wB7Ck9XR,C6C78XM,8QAEE,+B7C+8XR,C6C18XE,kNAEE,qB7C48XJ,C6C18XI,gHACE,wBAAA,CACA,aAAA,CACA,eAAA,CACA,qBAAA,CACA,0B7C68XN,C6Cx/XE,4CACE,qB7C6/XJ,C6C1/XE,wFAEE,qBAAA,CACA,aAAA,CACA,U7C4/XJ,C6Cr/XI,sHAEE,kB7C4/XN,C6Cz/XM,4HAEE,wB7C2/XR,C6C3+XI,8HACE,wBAAA,CACA,aAAA,CACA,eAAA,CACA,qBAAA,CACA,0B7Cs/XN,C6C/+XI,sHjC3JF,gFAAA,CACA,iBAAA,CCzBA,eAAA,CgC0LI,wBAAA,CACA,aAzLoB,CA0LpB,eAAA,CACA,mB7C++XN,C6C9+XM,oIACE,Y7Ci/XR,CsHxpYA,0BzE8TE,wBAAA,CACA,wB7C81XF,C6C51XE,0DAEE,gBAAA,CACA,e7C81XJ,C6C51XI,gFACE,iB7C+1XN,C6C11XI,sEAEE,4BAAA,CACA,kB7C41XN,C6Cv1XI,kGAEE,kB7Cy1XN,C6Cr1XE,gCACE,eAAA,CACA,Q7Cu1XJ,C6Cp1XE,gDACE,Q7Cs1XJ,C6Cp1XI,mDACE,qBAAA,CAKA,gBAAA,C7Ci1XN,C6Cn1XI,mDAEE,iB7Cq1XN,CsHzrYA,iCzE0WE,gBAAA,CACA,iB7Cm1XF,C6Cj1XE,4CACE,Q7Cm1XJ,C6Ch1XE,oCACE,kB7Ck1XJ,CuH/uYA,S3GuCE,gFAAA,CACA,gBAAA,CqDqBI,UAAA,CAII,wBAAA,CsD7DR,wBAAA,CACA,iBAAA,CACA,mBAAA,CACA,iBvHmvYF,CuHjvYE,sBACE,cvHmvYJ,CuH/uYA,clEEI,kBAAA,CACA,mBAAA,CzCsBF,gFAAA,CACA,iBZ4tYF,CwHluYA,aACE,oBAAA,CACA,iBxHsuYF,CwHnuYA,sBACE,cxHsuYF,CwHpuYE,0BACE,aAAA,CACA,mBxHsuYJ,CwHluYA,2CAEE,mCAAA,CACA,wBAAA,CACA,oBAAA,CACA,aAAA,CACA,YAAA,CACA,cAAA,CACA,SAAA,CACA,aAAA,CACA,UAAA,CACA,eAAA,CACA,cAAA,CACA,iBxHsuYF,CwHnuYE,yDACE,UAAA,CACA,aAAA,CACA,OAAA,CACA,QAAA,CACA,iCAAA,CACA,kCAAA,CACA,4BAAA,CACA,iBAAA,CACA,WAAA,CACA,QAAA,CACA,gBxHsuYJ,CwHhuYE,2DACE,UAAA,CACA,aAAA,CACA,iBxHmuYJ,CwH/tYA,yBACE,UAAA,CACA,kBAAA,CACA,iBAAA,CACA,cxHkuYF,CwH/tYA,0BACE,axHkuYF,CwH/tYA,8BACE,SxHkuYF,CwHpzYE,gCACE,QAAA,CAOE,UAzBU,CA0BV,MAAA,CACA,OxHizYN,CwH3zYE,mCACE,WAAA,CAOE,UAzBU,CA0BV,MAAA,CACA,OxHwzYN,CwHtuYE,kCACE,iCAAA,CACA,kCAAA,CACA,+BAAA,CACA,YAAA,CACA,WAAA,CACA,QxHwuYJ,CwH10YE,kCACE,UAAA,CAGE,QAAA,CACA,KAAA,CACA,SxH20YN,CwHxuYE,iCACE,gCAAA,CACA,mCAAA,CACA,8BAAA,CACA,aAAA,CACA,UAAA,CACA,OAAA,CACA,QAAA,CACA,SAAA,CACA,exH0uYJ,CwH51YE,iCACE,SAAA,CAGE,QAAA,CACA,KAAA,CACA,SxH61YN,CwH1uYE,gCACE,gCAAA,CACA,mCAAA,CACA,6BAAA,CACA,cAAA,CACA,UAAA,CACA,OAAA,CACA,QAAA,CACA,SAAA,CACA,exH4uYJ,CyHh4YA,6BACE,oBAAA,CACA,kBzHm4YF,CyHj4YE,kEACE,aAAA,CACA,ezHm4YJ,C0Hr4YE,mDlHcA,aAAA,CCIA,wBAAA,C2DJA,kBAAA,CACA,SAAA,CsDVE,+B1Hw4YJ,CoE53YE,sQ5DHA,aAAA,CCIA,wBT+3YF,CoEz3YE,8BsDxBA,mDtD0BE,cAAA,CAsBA,wBlBlD4B,ClDw5Y9B,CoE13YE,sQAIE,cpEy3YJ,CACF,C0H/4YE,0CAEE,a1Hu5YJ,C0Hz5YE,wCAEE,a1H45YJ,C0H95YE,sFAEE,c1Hi6YJ,C0Hn6YE,wFAEE,c1H26YJ,C0H76YE,wCAEE,c1Hq7YJ,C0Hv7YE,wCAEE,c1H07YJ,C0H57YE,0CAEE,c1H+7YJ,C0H37YA,sC3G8BU,mBAAA,CAhBF,oBAAA,CA0EF,kBAAA,C2GtFJ,gCAAA,CACA,mC1Hg8YF,C0H77YA,oB3GQQ,oBf67YR,C2Hh+YA,cAEE,QAAA,CACA,QAAA,CACA,S3Hk+YF,C4Ht+YA,YhHuCE,gFAAA,CACA,iBAAA,CCzBA,eAAA,CgHLA,aAAA,CACA,eAAA,CACA,iBAAA,CACA,e7Hm+YF,C4H5+YA,mBACE,iBAAA,CACA,eAAA,CACA,e5H++YF,C8Hr/YE,2CvDMA,eAAA,CACA,YAAA,CACA,oBAAA,CACA,cvEm/YF,C+Hj7YE,cACE,e/Hi8YJ,C+H97YE,qBACE,a/Hi8YJ,C+H/7YI,6BACE,eAAA,CACA,4B/Hi8YN,C+H97YM,8BALF,6BAMI,6B7ExFe,C6EyFf,kB/Hi8YN,CACF,CgI7hZE,sDDmCA,wBAAA,CACA,4B/H8/YF,CiIliZE,yGFwGM,aAAA,CACA,kB/H67YR,C+H37YQ,8BE3GN,yGF4GQ,c/H87YR,CACF,CgI3iZE,yHDgHM,qBAAA,CACA,4B/H87YR,CiI/iZE,4CFsHM,qBAAA,CACA,wBAAA,CACA,aAAA,CGrGF,oBAAA,CACA,gBAAA,CACA,gCAAA,ClI+hZN,CiIpjZE,oDFsBA,kCAAA,CACA,oB/HiiZF,C+H/hZE,8BEzBA,oDF0BE,8B/HkiZF,CACF,CiI7jZE,qHFkIQ,oB/H87YV,CiIhkZE,mbFyIU,qB/H07YZ,CgInkZE,8H/EKA,gGAAA,CAEA,2BAAA,C8E4BA,wBAAA,CACA,4BAAA,CAqHQ,iCAAA,CACA,2B/Hk7YV,C+Hh7YU,8BC5JR,8H/EKA,oGAAA,CAEA,2BAAA,C8EuJU,6B/Ho7YV,CACF,CgInlZE,sTDqKU,4B/Hi7YZ,CiItlZE,sRFyKU,oB/Hg7YZ,CiIzlZE,0HFsBA,kCAAA,CACA,oB/HskZF,C+HpkZE,8BEzBA,0HF0BE,8B/HukZF,CACF,CgIlmZE,+L/EKA,kFAAA,CAEA,2BjD+lZF,C+H16YQ,8BC5LN,+L/EKA,sFAAA,CAEA,2BjDomZA,CACF,CgI5mZE,+bDyMQ,wB/Hs6YV,C+Hr6YU,8BC1MR,+bD2MU,yB/Hw6YV,CACF,CkI/mZA,qB3GJE,iBAAA,CACA,WAAA,CACA,UvBunZF,CgI1nZE,oD9GaA,4BAAA,CACA,qBlBgnZF,CkIvmZM,oDACE,UlI8mZR,CgItoZE,sDEmCI,iCAAA,CACA,2BlIumZN,CkItmZM,aFrCJ,sDEsCM,qBAAA,CACA,qBAAA,CACA,WAAA,CACA,iBlIymZN,CACF,CkIvmZM,8BF5CJ,sDE6CM,6BlI0mZN,CACF,CkIrmZA,qBAEE,cAAA,CACA,eAAA,CACA,eAAA,CACA,iBAAA,CACA,iBAAA,CAEA,iBlIsmZF,CkIpmZE,6BACE,WAAA,CACA,aAAA,CACA,MAAA,CACA,eAAA,CACA,kBAAA,CASA,iBAAA,C/F7DF,cAAA,CCAA,aAAA,C8FmEA,gBAAA,ClIwlZF,CkIrlZA,iCACE,aAAA,CACA,gBAAA,CACA,gBlI8lZF,CmIprZA,YlFIE,+FAAA,CAEA,2BAAA,CkFFA,uBAAA,CAAA,oBAAA,CAAA,eAAA,CACA,qBAAA,CACA,sCAAA,CACA,uBAAA,CACA,kBnI8rZF,CmI5rZE,wBACE,YnI8rZJ,CmI1rZE,6BACE,2BAAA,CAAA,mBnI4rZJ,CmIxrZE,2BACE,iBAAA,CACA,qBnI0rZJ,CmIvrZE,sBACE,WAAA,CACA,qBAAA,CACA,enIyrZJ,CmItrZE,mBACE,eAAA,CACA,sBnIwrZJ,CmIrrZE,qD3HlBA,aAAA,CCIA,wBAAA,C2DJA,kBAAA,CACA,SpE4sZF,CoE1sZE,8Q5DHA,aAAA,CCIA,wBT6sZF,CoEvsZE,8B+DQA,qD/DNE,cAAA,CAsBA,wBlBlD4B,ClDsuZ9B,CoExsZE,8QAIE,cpEusZJ,CmI3uZF,YA4CI,0BAAA,CAAA,uBAAA,CAAA,kBAAA,CACA,qBAAA,CACA,enIysZF,CAXF,CoIrtZA,eACE,eAAA,CACA,iBpIouZF,CoIhuZE,+CACE,6BpImuZJ,CoIjuZI,0DACE,YpImuZN,CoI/tZE,qDACE,apIiuZJ,CoI/tZI,8BAHF,qD7F0GA,gDAAA,CACA,2BAAA,CACA,iCAAA,CACA,yBAAA,CACA,oBAAA,CAEA,UAAA,C6F3GI,aAAA,CACA,UAAA,CACA,SpIwuZJ,CuCznZA,iD6FtHA,qD7FuHE,cAAA,CACA,2BAAA,CACA,2FAAA,CAAA,mFAAA,CAEA,mCAAA,CAAA,2BAAA,CACA,6BAAA,CAAA,qBAAA,CACA,2BAAA,CAAA,mBvC2nZA,CACF,CACF,CoI9uZA,sBAGE,uBAAA,CAAA,oBAAA,CAAA,eAAA,CACA,eAAA,CACA,cAAA,CACA,+BpI+uZF,CoI7uZE,yE5HvCA,aAAA,CCIA,wBAAA,C2DJA,kBAAA,CACA,SAAA,CgE4CE,+BpI8uZJ,CoExxZE,o1B5DHA,aAAA,CCIA,wBT2xZF,CoErxZE,8BgE6BA,yEhE3BE,cAAA,CAsBA,wBlBlD4B,ClDozZ9B,CoEtxZE,8VAIE,cpEqxZJ,CACF,CoIxvZI,6GACE,SpI+vZN,CoIhwZI,mGACE,SpI+vZN,CoI5vZI,uJACE,wBAAA,CACA,kBpI8vZN,CoIvvZE,gFACE,mBpI2vZJ,CoIxvZE,kMAEE,kBpI2vZJ,CoItvZA,sFAEE,SpI0vZF,CoItvZA,wDAEE,4BAAA,CACA,0BAAA,CAEA,QAAA,CACA,UAAA,CACA,cAAA,CACA,eAAA,CACA,UAAA,CACA,kBAAA,CACA,iBAAA,CACA,OAAA,CACA,WpI0vZF,CoIvwZA,4BAIE,2BAAA,CnFhGA,yFAAA,CAEA,2BAAA,CmF4GA,YAAA,CACA,sBAAA,CpIovZF,CoIjvZA,4BnFlHE,+FAAA,CAEA,2BAAA,CmFkHA,yBAAA,CACA,SpI4vZF,CoI1vZE,8BALF,4B7FyBE,sDAAA,CACA,2BAAA,CACA,iCAAA,CACA,yBAAA,CACA,oBAAA,CACA,WAAA,CACA,UAAA,C6FxBE,WAAA,CACA,UpImwZF,CuCtuZA,iD6FrCF,4B7FsCI,cAAA,CACA,2BAAA,CACA,iGAAA,CAAA,yFAAA,CAEA,mCAAA,CAAA,2BAAA,CACA,6BAAA,CAAA,qBAAA,CACA,2BAAA,CAAA,mBvCwuZA,CACF,CoI3wZE,qFAEE,yBpI4wZJ,CACF,CoIxwZA,uCACE,wBAAA,CACA,iBAAA,CACA,OAAA,CACA,wBAAA,CACA,mBAAA,CACA,gBAAA,CACA,SAAA,CACA,uBAAA,CACA,qBAAA,CACA,WpI2wZF,CoIzwZE,8BAZF,uCAaI,2BpI4wZF,CACF,CoIzwZA,qBrHrGU,gBAAA,CAhBF,oBAAA,CA0EF,kBAAA,CqH8CJ,qBAAA,CACA,eAAA,CACA,YAAA,CACA,QAAA,CACA,iBAAA,CACA,iBAAA,CACA,iBAAA,CACA,SAAA,CACA,iBAAA,CACA,UAAA,CACA,WpI6wZF,CoI3wZE,2BACE,SpI6wZJ,CoIzwZA,4BACE,+BAAA,CACA,cAAA,CACA,aAAA,CACA,apI4wZF,CoI1wZE,qClHtKA,yBAAA,CACA,mBAAA,CkHuKE,iBAAA,CACA,WpI6wZJ,CoI3wZI,2CACE,mBpI6wZN,CoIzwZE,sCACE,wBAAA,CACA,oBAAA,CACA,UpI2wZJ,CoIvwZA,wCACE,kBAAA,CACA,aAAA,CACA,apI0wZF,CqIh6ZA,0BACE,YAAA,CACA,iBAAA,CACA,erIm6ZF,CqIj6ZE,gCACE,SrIm6ZJ,CqI/5ZA,80CACE,kBAAA,CACA,UrI46ZF,CqI16ZE,o+CACE,wBrIs7ZJ,CqIn7ZE,8BARF,kzFASI,yBrIg8ZF,CAcF,CqIr8ZA,+JACE,wBAAA,CACA,QAAA,CACA,UrI68ZF,CqIh9ZA,uFACE,wBAAA,CACA,OAAA,CrI88ZF,CqIh9ZA,mMACE,wBAAA,CACA,QAAA,CACA,SAAA,CrI68ZF,CqIh9ZA,yBAEE,OAAA,CrI88ZF,CqI38ZE,kpBACE,crIk9ZJ,CqIh9ZI,0tBACE,mBrIu9ZN,CqIp9ZI,0tBACE,wBrI29ZN,CqIz9ZM,8BAHF,0tBAII,2BrIi+ZN,CACF,CqI99ZI,suBACE,wBrIq+ZN,CqIn+ZM,8BAHF,suBAII,2BrI2+ZN,CACF,CqIh+ZE,kDACE,wBrIk+ZJ,CqIh+ZI,8BAHF,kDAII,2BrIm+ZJ,CACF,CqIh+ZE,oDACE,WrIk+ZJ,CqI99ZA,yBpFzHE,kGAAA,CAEA,2BAAA,CoF0HA,kBAAA,CACA,4BAAA,CACA,0BAAA,CACA,sBAAA,CACA,eAAA,CACA,SrIi+ZF,CqI/9ZE,8BAVF,yB9FkBE,yDAAA,CACA,2BAAA,CACA,iCAAA,CACA,6BAAA,CACA,oBAAA,CACA,aAAA,CACA,UAAA,C8FZE,kCAAA,CAAA,0BAAA,CACA,iBrIw+ZF,CuCv9ZA,iD8F9BF,yB9F+BI,cAAA,CACA,2BAAA,CACA,oGAAA,CAAA,4FAAA,CAEA,mCAAA,CAAA,2BAAA,CACA,6BAAA,CAAA,qBAAA,CACA,+BAAA,CAAA,uBvCy9ZA,CACF,CqI/+ZI,8FAEE,0BrIg/ZN,CACF,CqIr+ZE,wDACE,YrIw+ZJ,CqIn+ZA,2BACE,wBAAA,CACA,SAAA,CACA,eAAA,CACA,iBAAA,CACA,OAAA,CACA,UAAA,CACA,WrIs+ZF,CqIj+ZA,kCACE,gBAAA,CACA,wBAAA,CACA,kBAAA,CACA,iBAAA,CACA,UrIq+ZF,CqIn+ZE,qCACE,erIq+ZJ,CqIl+ZE,qCACE,SrIo+ZJ,CqI/9ZA,gC9EjLE,YAAA,CCiCM,cAAA,C6EkJN,iBAAA,CACA,UrIm+ZF,CqIh+ZA,iCACE,wBAAA,CACA,MrIm+ZF,CqIh+ZA,+CACE,YAAA,CACA,sBAAA,CACA,kBrIm+ZF,CqIj+ZE,8BACE,qEACE,6BnF/MiB,CmFgNjB,mBrIm+ZJ,CACF,CqI99ZA,kKAKE,0BAAA,CACA,2BAAA,CACA,aAAA,CACA,iBrIg+ZF,CqI99ZE,8BAVF,kKAWI,kCAAA,CAAA,0BrIo+ZF,CACF,CqIj+ZA,0DpFlOE,uGAAA,CAEA,2BjDssaF,CqIn+ZE,8BAHF,0D9FvFE,8DAAA,CACA,2BAAA,CACA,iCAAA,CACA,6BAAA,CACA,oBAAA,CACA,aAAA,CACA,UAAA,C8FsFE,2BrI4+ZF,CuC5jaA,iD8F2EF,0D9F1EI,cAAA,CACA,2BAAA,CACA,yGAAA,CAAA,iGAAA,CAEA,mCAAA,CAAA,2BAAA,CACA,6BAAA,CAAA,qBAAA,CACA,+BAAA,CAAA,uBvC8jaA,CACF,CACF,CqIn/ZA,2DpF3OE,mGAAA,CAEA,2BjDiuaF,CqIr/ZE,8BAHF,2D9FhGE,0DAAA,CACA,2BAAA,CACA,iCAAA,CACA,6BAAA,CACA,oBAAA,CACA,aAAA,CACA,UAAA,C8F+FE,2BrI8/ZF,CuCvlaA,iD8FoFF,2D9FnFI,cAAA,CACA,2BAAA,CACA,qGAAA,CAAA,6FAAA,CAEA,mCAAA,CAAA,2BAAA,CACA,6BAAA,CAAA,qBAAA,CACA,+BAAA,CAAA,uBvCylaA,CACF,CACF,CqIrgaA,sDpFpPE,qGAAA,CAEA,2BjD4vaF,CqIvgaE,8BAHF,sD9FzGE,4DAAA,CACA,2BAAA,CACA,iCAAA,CACA,6BAAA,CACA,oBAAA,CACA,aAAA,CACA,UAAA,C8FwGE,2BrIghaF,CuClnaA,iD8F6FF,sD9F5FI,cAAA,CACA,2BAAA,CACA,uGAAA,CAAA,+FAAA,CAEA,mCAAA,CAAA,2BAAA,CACA,6BAAA,CAAA,qBAAA,CACA,+BAAA,CAAA,uBvConaA,CACF,CACF,CqIvhaA,uDpF7PE,iGAAA,CAEA,2BjDuxaF,CqIzhaE,8BAHF,uD9FlHE,wDAAA,CACA,2BAAA,CACA,iCAAA,CACA,6BAAA,CACA,oBAAA,CACA,aAAA,CACA,UAAA,C8FiHE,2BrIkiaF,CuC7oaA,iD8FsGF,uD9FrGI,cAAA,CACA,2BAAA,CACA,mGAAA,CAAA,2FAAA,CAEA,mCAAA,CAAA,2BAAA,CACA,6BAAA,CAAA,qBAAA,CACA,+BAAA,CAAA,uBvC+oaA,CACF,CACF,CqIziaA,wCACE,arI4iaF,CqIziaA,iCAEE,crI2iaF,CqIziaE,0CnHtQA,yBAAA,CACA,mBAAA,CmHuQE,iBAAA,CACA,WrI4iaJ,CqIziaE,8HAEE,arI0iaJ,CqIviaE,wFAEE,wBAAA,CACA,arIwiaJ,CqItiaI,wHACE,wBAAA,CACA,arIwiaN,CqItiaM,8BAJF,wHAKI,2BrIyiaN,CACF,CqIviaM,oIACE,wBAAA,CACA,arIyiaR,CqItiaM,oIACE,wBAAA,CACA,arIwiaR,CqItiaQ,8BAJF,oIAKI,2BrIyiaR,CACF,CqItiaM,sIACE,wBrIwiaR,CqItiaQ,8BAHF,sIAII,0BrIyiaR,CACF,CqIpiaE,mDACE,0BAAA,CACA,6BrIsiaJ,CqIniaE,iDACE,2BAAA,CACA,8BrIqiaJ,CqIliaE,+CACE,wBrIoiaJ,CqIliaI,oIACE,wBrIoiaN,CqIliaM,8BAHF,+DAII,0BrIqiaN,CACF,CqIhiaQ,8BAHF,qEAII,0BrIsiaR,CACF,CqIniaM,qEACE,wBrIqiaR,CqIniaQ,8BAHF,qEAII,0BrIsiaR,CACF,CqIniaM,sEACE,wBrIqiaR,CqIniaQ,8BAHF,sEAII,0BrIsiaR,CACF,C+Bj2aI,mCsGiUJ,wCAEI,cAAA,CACA,QrImiaF,CACF,C+Bt4aI,gCsG+VJ,wCAOI,MAAA,CACA,iBrIoiaF,CACF,CqIjiaA,uFAGE,oBAAA,CACA,WAAA,CACA,eAAA,CACA,UrImiaF,C+Bt3aI,mCsG6UJ,uFASI,gBAAA,CACA,gBrIqiaF,CACF,CqIjiaA,yCACE,gBrIoiaF,C+Bj4aI,mCsG4VJ,yCAII,mBAAA,CACA,gBrIqiaF,CqIniaE,4CACE,YAAA,CACA,qBrIqiaJ,CACF,CqIjiaA,kCAEE,crImiaF,CqIjiaE,2CnHlZA,yBAAA,CACA,mBAAA,CmHmZE,iBAAA,CACA,WrIoiaJ,CqIjiaE,4CACE,wBAAA,CACA,arImiaJ,CqIjiaI,4DACE,wBAAA,CACA,arImiaN,CqIjiaM,kEACE,wBAAA,CACA,arImiaR,CqIhiaM,kEACE,wBAAA,CACA,arIkiaR,CqI/haM,mEACE,wBrIiiaR,CqI1haA,wCACE,gBrI6haF,CqI1haA,4FAGE,0BAAA,CACA,yBAAA,CACA,WAAA,CACA,crI4haF,CqI1haE,8BARF,4FASI,kCAAA,CAAA,0BrI8haF,CACF,CqI3haA,gEpF3cE,mGAAA,CAEA,2BjDy+aF,CqI7haE,8BAHF,gEAKI,qBrI+haF,CuCzzaA,uEA3CA,0DAAA,CACA,2BAAA,CACA,iCAAA,CACA,6BAAA,CACA,oBAAA,CACA,aAAA,CACA,UAAA,CAuCE,UAAA,CACA,qBAXe,CAcb,gBvC+zaJ,CuCp2aA,iDA+BA,uEA9BE,cAAA,CACA,2BAAA,CACA,qGAAA,CAAA,6FAAA,CAEA,mCAAA,CAAA,2BAAA,CACA,6BAAA,CAAA,qBAAA,CACA,+BAAA,CAAA,uBvCs2aA,CACF,CqInjaE,sEACE,4BnFtdiB,CmFudjB,4BrIqjaJ,CACF,CqIjjaA,4DpFzdE,iGAAA,CAEA,2BjD6gbF,CqInjaE,8BAHF,4DAKI,qBrIqjaF,CuC71aA,mEA3CA,wDAAA,CACA,2BAAA,CACA,iCAAA,CACA,6BAAA,CACA,oBAAA,CACA,aAAA,CACA,UAAA,CAuCE,UAAA,CACA,qBAXe,CAcb,gBvCm2aJ,CuCx4aA,iDA+BA,mEA9BE,cAAA,CACA,2BAAA,CACA,mGAAA,CAAA,2FAAA,CAEA,mCAAA,CAAA,2BAAA,CACA,6BAAA,CAAA,qBAAA,CACA,+BAAA,CAAA,uBvC04aA,CACF,CqIzkaE,kEACE,4BnFpeiB,CmFqejB,4BrI2kaJ,CACF,CqIvkaA,iCAEE,crIykaF,CqIvkaE,0CnHneA,yBAAA,CACA,mBAAA,CmHoeE,iBAAA,CACA,WrI0kaJ,CqIvkaE,2CACE,wBAAA,CACA,arIykaJ,CqIvkaI,2DACE,wBAAA,CACA,arIykaN,CqIvkaM,iEACE,wBAAA,CACA,arIykaR,CqItkaM,iEACE,wBAAA,CACA,arIwkaR,CqIrkaM,kEACE,wBrIukaR,CsI/kbA,mBjFmBI,qBAAA,CACA,kBAAA,CiFlBF,aAAA,CACA,aAAA,CACA,etIolbF,CuIxlbA,YACE,QAAA,CACA,gBAAA,CACA,cAAA,CACA,iBvI2lbF,CuIxlbA,gBACE,aAAA,CACA,eAAA,CACA,UvI2lbF,CuIxlbA,wBACE,yBAAA,CACA,aAAA,CACA,gBAAA,CACA,gBAAA,CACA,iBAAA,CACA,iBAAA,CACA,UvI2lbF,CuIzlbE,8BACE,oBvI2lbJ,CuIvlbA,yCACE,oBvI0lbF,CuIvlbA,wCACE,eAAA,CACA,uBAAA,CACA,mBAAA,CACA,iBAAA,CACA,SvI0lbF,CuIvlbA,0DACE,avI0lbF,CuIvlbA,wB1G6BE,aAAA,CACA,yBAAA,C0G5BA,evI2lbF,C6B7jbE,gCACE,a7B+jbJ,C6B5jbE,8BACE,a7B8jbJ,C6B3jbE,+BACE,a7B6jbJ,C6B1jbE,8BX3EA,4BAAA,CACA,gBlBwobF,CuIrmbA,8BACE,iBAAA,CACA,mBAAA,CACA,iBAAA,CACA,SvIwmbF,CuIrmbA,qBACE,eAAA,CACA,WAAA,CACA,MAAA,CACA,mBAAA,CACA,iBAAA,CACA,KAAA,CACA,UAAA,CACA,SvIwmbF,CuIrmbA,6CACE,cAAA,CACA,WAAA,CACA,MAAA,CACA,QAAA,CACA,cAAA,CACA,iBAAA,CACA,aAAA,CACA,kBAAA,CACA,KAAA,CACA,UAAA,CACA,SvIwmbF,CuIrmbA,yEACE,YvIwmbF,CuIrmbA,8CACE,oBvIwmbF,CuIrmbA,2CACE,wBvIwmbF,CuIrmbA,+CACE,UvIwmbF,CcvsbA,0DyH+GE,kBAAA,CACA,kBAAA,CAEA,YAAA,CAIA,mBAAA,CACA,iBAAA,CAEA,QAAA,EAvBF,AzHlGA,iCyHsGE,eAAA,CACA,6BAAA,CACA,avI2mbF,CuIrmbA,yBAGE,kBAAA,CAEA,gBAAA,CACA,cAAA,CACA,oBAAA,CAGA,evIymbF,CuItmbE,oCACE,qBvIwmbJ,CuIpmbA,+BACE,QAAA,CACA,aAAA,CACA,aAAA,CACA,kBAAA,CACA,qBAAA,CAAA,kBAAA,CACA,YvIumbF,CuIpmbA,0CtFnIE,gFAAA,CsFqIA,iCAAA,CACA,2BAAA,CACA,oBvIwmbF,CuIrmbA,6LAKE,iCAAA,CAEA,sBvIwmbF,CuIrmbA,oCtFpJE,kFAAA,CAEA,2BjD4vbF,CuItmbA,wCtFxJE,8EAAA,CAEA,2BjDiwbF,CuIvmbA,qCtF5JE,mFAAA,CAEA,2BjDswbF,CuIxmbA,sCtFhKE,oFAAA,CAEA,2BjD2wbF,CuIzmbA,sCtFpKE,oFAAA,CAEA,2BjDgxbF,CuIzmbA,+CACE,oBAAA,CACA,gBvI4mbF,CuIvmbE,0G/HlKA,aR8wbF,CuIvmbE,+CACE,wBvIymbJ,CuItmbE,uDACE,kBvIwmbJ,CuIpmbI,wDACE,oBvIsmbN,CuIlmbE,qEACE,wBvIombJ,CuIjmbE,8BACE,0GAEE,cvImmbJ,CuIhmbE,0GAEE,qBvIkmbJ,CACF,CwItzbA,gBACE,iBxIyzbF,CwItzbE,uCACE,YxIwzbJ,CwInzbA,uBzHiDU,wBAAA,CAhBF,yBAAA,CA0EF,uBAAA,CyHzGJ,iBAAA,CACA,iBxIwzbF,C+BnzbI,gCyGRJ,uBAMI,oBxIyzbF,CACF,CyI10bA,UAEE,azI40bF,CyIz0bA,oBACE,azI40bF,C0I50bA,iBAGE,kBAAA,CACA,YAAA,CACA,SAAA,CACA,iB1I60bF,C0Iz0bI,0EACE,qB1I20bN,C0Iv0bE,kD3H8BQ,mBAAA,CAhBF,oBAAA,CA0EF,kBfovbN,C0Ix0bE,0B3HUM,oBfm0bR,C0Ix0bE,uBrFRE,oBAAA,CqFUA,QAAA,CACA,WAAA,CACA,YAAA,CACA,WAAA,CACA,U1I00bJ,C0It0bM,+GlItBJ,aAAA,CCIA,wBAAA,C2DJA,kBAAA,CACA,SpEi2bF,CoEx1bE,8BsEYI,+GtEXF,QAAA,CACA,cpE+1bF,CoE71bE,sfAIE,cpE41bJ,C0I11bE,2EAQI,Q1Iu1bN,C0Ij1bA,qFtEAE,yBpEs1bF,CATF,C0Ir0bE,sDAEE,a1Ik1bJ,C0Ip1bE,oDAEE,a1Iu1bJ,C0Iz1bE,8GAEE,c1I41bJ,C0I91bE,gHAEE,c1Is2bJ,C0Ix2bE,oDAEE,c1Ig3bJ,C0Il3bE,oDAEE,c1Iq3bJ,C0Iv3bE,sDAEE,c1I03bJ,C0It3bA,yFlIhDE,aAAA,CCIA,wBAAA,C2DJA,kBAAA,CACA,SpE66bF,CoE36bE,8Z5DHA,aAAA,CCIA,wBTk7bF,CoE56bE,8BsEsCF,yFtErCI,QAAA,CACA,cpEg7bF,CoE96bE,8ZAIE,cpEi7bJ,CACF,C0I/4bA,oCAEE,iBAAA,CACA,aAAA,CACA,aAAA,CACA,eAAA,CACA,wBAAA,CAAA,qBAAA,CAAA,gBAAA,CACA,kB1Ik5bF,C0Ih5bE,wDvGnEA,aAAA,CCAA,YpCw9bF,C0Ih5bA,wBrF/DI,mBAAA,CAAA,mBrDo9bJ,C0Ih5bA,kBACE,O1Im5bF,C2I9+bA,gBACE,aAAA,CACA,iB3Ii/bF,C2I9+bA,yBACE,4BAAA,CACA,aAAA,CACA,aAAA,CACA,QAAA,CACA,mBAAA,CACA,iBAAA,CACA,K3Ii/bF,C2I/+bE,2BACE,iB3Ii/bJ,C2I/+bI,8BAHF,2BAII,gBAAA,CACA,iBAAA,CACA,kB3Ik/bJ,C2IjgcF,yBAoBI,Q3Ik/bF,CAJF,C2I1+bA,qCAGE,4BAAA,CACA,a3Ii/bF,C4IlhcA,WhIuCE,gFAAA,CACA,iBAAA,CCzBA,eAAA,CgHLA,aAAA,CACA,eAAA,CACA,iBAAA,CACA,e7H+gcF,C4IxhcA,kBACE,eAAA,CACA,Y5I2hcF,C4IxhcA,qBACE,a5I2hcF,C6IricA,oBACE,YAAA,CACA,c7IwicF,C6IticE,kCACE,yB7IwicJ,C6IticI,6DACE,uBAAA,CAAA,e7IwicN,C6IricI,qEACE,iBAAA,CACA,sBAAA,CAEA,mBAAA,CACA,QAAA,CACA,OAAA,CACA,Q7IuicN,C6InicE,oCACE,e7IqicJ,C6IjicA,kErFmBQ,aAAA,CqFfN,iBAAA,CACA,sBAAA,CAAA,iB7IoicF,C6IhicA,wDAEE,U7ImicF,C6I/hcA,8BACE,W7IkicF,C6I/hcA,4BACE,Y7IkicF,C+HrgcE,WACE,e/HwgcJ,C+HrgcE,kBACE,a/HwgcJ,C+HtgcI,0BACE,eAAA,CACA,4B/HwgcN,C+HrgcM,8BALF,0BAMI,6B7ExFe,C6EyFf,kB/HwgcN,CACF,CgIpmcE,mDDmCA,wB/HskcF,CiIzmcE,mGFwGM,aAAA,CACA,kB/HogcR,C+HlgcQ,8BE3GN,mGF4GQ,c/HqgcR,CACF,CgIlncE,mHDgHM,qBAAA,CACA,4B/HqgcR,CiItncE,yCFsHM,qBAAA,CACA,wBAAA,CACA,aAAA,CerGF,oBAAA,CACA,gBAAA,CACA,gCAAA,C9IsmcN,CiI3ncE,iDFsBA,kCAAA,CACA,oB/HwmcF,C+HtmcE,8BEzBA,iDF0BE,8B/HymcF,CACF,CiIpocE,+GFkIQ,oB/HqgcV,CiIvocE,iaFyIU,qB/HigcZ,CgI1ocE,mDDsNQ,iD/Hw7bV,C+Hl7bU,8BC5NR,mDD6NU,2B/Hq7bV,CACF,CgInpcE,mIDoOQ,wBAAA,CACA,iD/Hk7bV,C+H96bU,8BCzOR,mID0OU,yB/Hi7bV,CACF,C8IvpcA,kBvHJE,iBAAA,CACA,WAAA,CACA,UvB+pcF,CgIlqcE,iD9GaA,4BAAA,CACA,qBlBwpcF,C8I/ocM,iDACE,U9IspcR,C8I3ocM,adnCJ,mDcoCM,0E9I+ocN,CACF,C8IvocA,kBAEE,cAAA,CACA,eAAA,CACA,eAAA,CACA,iBAAA,CACA,iBAAA,CAEA,iB9IwocF,C8ItocE,0BACE,WAAA,CACA,aAAA,CACA,MAAA,CACA,eAAA,CACA,kBAAA,CAOA,iBAAA,C3GrDF,cAAA,CqCAA,mBAAA,CpCAA,YAAA,CpCurcF,C8I1ncA,8BACE,aAAA,CACA,gBAAA,CACA,gB9ImocF,C+IhrcA,WAGE,uBAAA,CAAA,oBAAA,CAAA,eAAA,CACA,QAAA,CACA,gBAAA,CACA,U/IyrcF,C+IvrcE,iBACE,S/IyrcJ,C+IvrcI,uCA1CF,qBAAA,CACA,4B/IoucF,C+IvrcI,mCA9CF,qBAAA,CACA,4B/IwucF,C+IvrcI,4BAlDF,qBAAA,CACA,4B/I4ucF,C+ItrcE,0CAlDA,wBAAA,CACA,mBAAA,CACA,wBAAA,CACA,cAAA,CACA,WAAA,CACA,U/I2ucF,C+I1rcE,6BAtDA,wBAAA,CACA,mBAAA,CACA,wBAAA,CACA,cAAA,CACA,WAAA,CACA,U/ImvcF,C+I9rcE,sBA1DA,wBAAA,CACA,mBAAA,CACA,wBAAA,CACA,cAAA,CACA,WAAA,CACA,U/I2vcF,C+IlscE,iC5GvDA,cAAA,CqCAA,mBAAA,CpCAA,aAAA,C2GGA,kBAAA,CACA,QAAA,CACA,4BAAA,CACA,cAAA,CAmDE,uBAAA,CAAA,eAAA,CACA,kB/I0scJ,C+I5vcE,8BA+CA,iCA9CE,6B/I+vcF,CACF,C+I5scE,6B5G7DA,cAAA,CqCAA,mBAAA,CpCAA,aAAA,C2GGA,kBAAA,CACA,QAAA,CACA,4BAAA,CACA,c/I4wcF,C+I1wcE,8BAqDA,6BApDE,6B/I6wcF,CACF,C+IttcE,sB5GjEA,cAAA,CqCAA,mBAAA,CpCAA,aAAA,C2GGA,kBAAA,CACA,QAAA,CACA,4BAAA,CACA,c/I0xcF,C+IxxcE,8BAyDA,sBAxDE,6B/I2xcF,CACF,C+IhucE,2BAvDA,wBAAA,CACA,mBAAA,CACA,wB/I0xcF,C+IjucE,2BA3DA,wBAAA,CACA,mBAAA,CACA,wB/I+xcF,C+IlucE,mDAGE,S/IkucJ,C+IhucI,iHvI7EF,aAAA,CCIA,wBAAA,C2DJA,kBAAA,CACA,SpEkzcF,CoEhzcE,8f5DHA,aAAA,CCIA,wBTmzcF,CoE7ycE,8B2EmEE,iH3EjEA,cAAA,CAsBA,wBlBlD4B,ClD40c9B,CoE9ycE,8fAIE,cpE6ycJ,CACF,C+I9ucI,uFvIlFF,aAAA,CCIA,wBAAA,C2DJA,kBAAA,CACA,SpE00cF,CoEx0cE,sZ5DHA,aAAA,CCIA,wBT20cF,CoEr0cE,8B2EwEE,uF3EtEA,cAAA,CAsBA,wBlBlD4B,ClDo2c9B,CoEt0cE,sZAIE,cpEq0cJ,CACF,C+IjwcI,yEvIvFF,aAAA,CCIA,wBAAA,C2DJA,kBAAA,CACA,SpEk2cF,CoEh2cE,8V5DHA,aAAA,CCIA,wBTm2cF,CoE71cE,8B2E6EE,yE3E5EA,QAAA,CACA,cpEg2cF,CoE91cE,8VAIE,cpE61cJ,CACF,C+IrxcI,+FvI3FF,aAAA,CCIA,wBAAA,C2DJA,kBAAA,CACA,SpEq3cF,CoEn3cE,sb5DHA,aAAA,CCIA,wBTs3cF,CoEh3cE,8B2EiFE,+F3EhFA,QAAA,CACA,cpEm3cF,CoEj3cE,sbAIE,cpEg3cJ,CACF,C+IpycI,uFvI/FF,aAAA,CCIA,wBAAA,C2DJA,kBAAA,CACA,SpEw4cF,CoEt4cE,sZ5DHA,aAAA,CCIA,wBTy4cF,CoEn4cE,8B2EqFE,uF3EpFA,QAAA,CACA,cpEs4cF,CoEp4cE,sZAIE,cpEm4cJ,CACF,C+InzcI,yEvInGF,aAAA,CCIA,wBAAA,C2DJA,kBAAA,CACA,SpE25cF,CoEz5cE,8V5DHA,aAAA,CCIA,wBT45cF,CoEt5cE,8B2EyFE,yE3ExFA,QAAA,CACA,cpEy5cF,CoEv5cE,8VAIE,cpEs5cJ,CACF,C+Il0cI,mFvIvGF,aAAA,CCIA,wBAAA,C2DJA,kBAAA,CACA,SpE86cF,CoE56cE,sY5DHA,aAAA,CCIA,wBT+6cF,CoEz6cE,8B2E6FE,mF3E5FA,QAAA,CACA,cpE46cF,CoE16cE,sYAIE,cpEy6cJ,CACF,C+Ij1cI,mFvI3GF,aAAA,CCIA,wBAAA,C2DJA,kBAAA,CACA,SpEi8cF,CoE/7cE,sY5DHA,aAAA,CCIA,wBTk8cF,CoE57cE,8B2EiGE,mF3EhGA,QAAA,CACA,cpE+7cF,CoE77cE,sYAIE,cpE47cJ,CACF,CgJ79cE,yDxIcA,aAAA,CCIA,wBAAA,C2DJA,kBAAA,CACA,SpEq9cF,CoEn9cE,8R5DHA,aAAA,CCIA,wBTs9cF,CoEh9cE,8B4ExBA,yD5E0BE,cAAA,CAsBA,wBlBlD4B,ClD++c9B,CoEj9cE,8RAIE,cpEg9cJ,CACF,CgJ1+cA,cACE,YhJk/cF,CiJhgdA,iBACE,UjJmgdF,CkJt+cM,oBACE,+ElJ++cR,CkJh/cM,oBACE,gFlJm/cR,CkJp/cM,qBACE,wElJu/cR,CkJx/cM,kBACE,gFlJ2/cR,CkJ5/cM,uBACE,wElJ+/cR,CkJhgdM,oBACE,gFlJmgdR,CkJpgdM,oBACE,+ElJugdR,CkJxgdM,mBACE,wElJ2gdR,CmJj/cE,iBrE3BE,qBAAA,CACA,QAAA,CACA,eAAA,CACA,yBAAA,CACA,iB9EmidJ,C8EhidI,2BqEoBF,iBrElBI,cAAA,CACA,eAAA,CAEA,kBAAA,CACA,c9EiidJ,C8EtkdA,mBACE,iBAAA,CACA,KAAA,CACA,MAAA,CACA,UAAA,CACA,W9EwkdF,C8ErkdS,yCAEP,mBAAA,CAAA,gB9EskdF,CACF,CmJ9hdE,iBrE3BE,qBAAA,CACA,QAAA,CACA,eAAA,CACA,qBAAA,CACA,iB9E6jdJ,C8E1jdI,2BqEoBF,iBrElBI,cAAA,CACA,eAAA,CAEA,yBAAA,CACA,c9E2jdJ,C8EhmdA,mBACE,iBAAA,CACA,KAAA,CACA,MAAA,CACA,UAAA,CACA,W9EkmdF,C8E/ldS,yCAEP,mBAAA,CAAA,gB9EgmdF,CACF,CmJxjdE,gBrE3BE,qBAAA,CACA,QAAA,CACA,eAAA,CACA,mBAAA,CACA,iB9EuldJ,C8EpldI,2BqEoBF,gBrElBI,cAAA,CACA,eAAA,CAEA,cAAA,CACA,c9EqldJ,C8E1ndA,kBACE,iBAAA,CACA,KAAA,CACA,MAAA,CACA,UAAA,CACA,W9E4ndF,C8EzndS,uCAEP,mBAAA,CAAA,gB9E0ndF,CACF,CmJlldE,gBrE3BE,qBAAA,CACA,QAAA,CACA,eAAA,CACA,kBAAA,CACA,iB9EindJ,C8E9mdI,2BqEoBF,gBrElBI,cAAA,CACA,eAAA,CAEA,yBAAA,CACA,c9E+mdJ,C8EppdA,kBACE,iBAAA,CACA,KAAA,CACA,MAAA,CACA,UAAA,CACA,W9EspdF,C8EnpdS,uCAEP,mBAAA,CAAA,gB9EopdF,CACF,CmJ5mdE,gBrE3BE,qBAAA,CACA,QAAA,CACA,eAAA,CACA,kBAAA,CACA,iB9E2odJ,C8ExodI,2BqEoBF,gBrElBI,cAAA,CACA,eAAA,CAEA,cAAA,CACA,c9EyodJ,C8E9qdA,kBACE,iBAAA,CACA,KAAA,CACA,MAAA,CACA,UAAA,CACA,W9EgrdF,C8E7qdS,uCAEP,mBAAA,CAAA,gB9E8qdF,CACF,CmJ/ndA,2BACE,gCACE,sBAAA,CAAA,iBnJkodF,CACF,CoJtndE,gBAnCE,eAAA,CAAA,YAAA,CAAA,cAAA,CA6CE,epJs8gBN,CoJh9gBE,kBAUI,sBpJ08gBN,CoJp9gBE,gBAUI,oBpJ88gBN,CoJx9gBE,mBAUI,kBpJk9gBN,CoJ59gBE,oBAUI,mBpJs9gBN,CoJh+gBE,qBAUI,oBpJ09gBN,CoJp+gBE,uBAUI,qBpJ89gBN,CoJx+gBE,qBAUI,mBpJk+gBN,CoJ5+gBE,wBAUI,iBpJs+gBN,CoJh/gBE,yBAUI,kBpJ0+gBN,CoJp/gBE,0BAUI,mBpJ8+gBN,CoJx/gBE,6CAUI,4BpJk/gBN,CoJ5/gBE,iCAUI,qBpJ0/gBN,CoJpghBE,iCAUI,qBpJkghBN,CoJ5ghBE,6BAUI,wBpJ0ghBN,CoJphhBE,mCAUI,wBpJkhhBN,CoJ5hhBE,+BAUI,wBpJ0hhBN,CoJpihBE,mCAUI,wBpJkihBN,CoJ5ihBE,iCAUI,wBpJ0ihBN,CoJpjhBE,+BAUI,wBpJkjhBN,CoJ5jhBE,+BAUI,wBpJ0jhBN,CoJpkhBE,+BAUI,wBpJkkhBN,CoJ5khBE,mCAUI,wBpJ0khBN,CoJplhBE,mCAUI,wBpJklhBN,CoJ5lhBE,qCAUI,wBpJ0lhBN,CoJpmhBE,mCAUI,wBpJkmhBN,CoJ5mhBE,qCAUI,wBpJ0mhBN,CoJpnhBE,qCAUI,wBpJknhBN,CoJ5nhBE,qCAUI,wBpJ0nhBN,CoJpohBE,qCAUI,wBpJkohBN,CoJ5ohBE,qCAUI,wBpJ0ohBN,CoJpphBE,iDAUI,wBpJkphBN,CoJ5phBE,+CAUI,wBpJ0phBN,CoJpqhBE,2CAUI,wBpJkqhBN,CoJ5qhBE,+BAUI,wBpJ0qhBN,CoJprhBE,yCAUI,wBpJkrhBN,CoJ5rhBE,6CAUI,wBpJ0rhBN,CoJpshBE,4EAUI,wBpJkshBN,CoJ5shBE,qDAUI,wBpJkthBN,CoJ5thBE,iDAUI,wBpJ0thBN,CoJpuhBE,qCAUI,wBpJkuhBN,CoJ5uhBE,iDAUI,wBpJ0uhBN,CoJpvhBE,+CAUI,wBpJkvhBN,CoJ5vhBE,mDAUI,wBpJ0vhBN,CoJpwhBE,yDAUI,wBpJkwhBN,CoJ5whBE,qDAUI,wBpJ0whBN,CoJpxhBE,yCAUI,wBpJkxhBN,CoJ5xhBE,qDAUI,wBpJ0xhBN,CoJpyhBE,mDAUI,wBpJkyhBN,CoJ5yhBE,uDAUI,wBpJ0yhBN,CoJpzhBE,2DAUI,wBpJkzhBN,CoJ5zhBE,uDAUI,wBpJ0zhBN,CoJp0hBE,6CAUI,wBpJk0hBN,CoJ50hBE,yDAUI,wBpJ00hBN,CoJp1hBE,6DAUI,wBpJk1hBN,CoJ51hBE,2DAUI,wBpJ01hBN,CoJp2hBE,uDAUI,wBpJk2hBN,CoJ52hBE,6CAUI,wBpJ02hBN,CoJp3hBE,yDAUI,wBpJk3hBN,CoJ53hBE,6DAUI,wBpJ03hBN,CoJp4hBE,iDAUI,wBpJk4hBN,CoJ54hBE,6CAUI,wBpJ04hBN,CoJp5hBE,iCAUI,wBpJk5hBN,CoJ55hBE,2CAUI,wBpJ05hBN,CoJp6hBE,+CAUI,wBpJk6hBN,CoJ56hBE,qDAUI,wBpJ06hBN,CoJp7hBE,iDAUI,wBpJk7hBN,CoJ57hBE,qCAUI,wBpJ07hBN,CoJp8hBE,+CAUI,wBpJk8hBN,CoJ58hBE,mDAUI,wBpJ08hBN,CoJp9hBE,qDAUI,wBpJk9hBN,CoJ59hBE,iDAUI,wBpJ09hBN,CoJp+hBE,qCAUI,wBpJk+hBN,CoJ5+hBE,+CAUI,wBpJ0+hBN,CoJp/hBE,mDAUI,wBpJk/hBN,CoJ5/hBE,+CAUI,wBpJ0/hBN,CoJpgiBE,2CAUI,wBpJkgiBN,CoJ5giBE,+BAUI,wBpJ0giBN,CoJphiBE,yCAUI,wBpJkhiBN,CoJ5hiBE,6CAUI,wBpJ0hiBN,CoJpiiBE,uDAUI,wBpJkiiBN,CoJ5iiBE,mDAUI,wBpJ0iiBN,CoJpjiBE,uCAUI,wBpJkjiBN,CoJ5jiBE,iDAUI,wBpJ0jiBN,CoJpkiBE,qDAUI,wBpJkkiBN,CoJ5kiBE,yCAUI,wBpJ0kiBN,CoJpliBE,mDAUI,wBpJkliBN,CoJ5liBE,qCAUI,gBpJ0liBN,CoJpmiBE,yCAUI,oBAAA,CAAA,uBpJmmiBN,CoJ7miBE,yCAUI,qBAAA,CAAA,sBpJ6miBN,CoJvniBE,6CAUI,oBpJsniBN,CoJhoiBE,iDAUI,sBpJ8niBN,CoJxoiBE,mDAUI,uBpJsoiBN,CoJhpiBE,+CAUI,qBpJ8oiBN,CoJxpiBE,qCAUI,gBpJspiBN,CoJhqiBE,yCAUI,oBAAA,CAAA,uBpJ+piBN,CoJzqiBE,yCAUI,qBAAA,CAAA,sBpJyqiBN,CoJnriBE,6CAUI,oBpJkriBN,CoJ5riBE,iDAUI,sBpJ0riBN,CoJpsiBE,mDAUI,uBpJksiBN,CoJ5siBE,+CAUI,qBpJ0siBN,CoJptiBE,mCAUI,mBpJktiBN,CoJ5tiBE,uCAUI,uBAAA,CAAA,0BpJ2tiBN,CoJruiBE,uCAUI,wBAAA,CAAA,yBpJquiBN,CoJ/uiBE,2CAUI,uBpJ8uiBN,CoJxviBE,+CAUI,yBpJsviBN,CoJhwiBE,iDAUI,0BpJ8viBN,CoJxwiBE,6CAUI,wBpJswiBN,CoJhxiBE,iCAUI,kBpJ8wiBN,CoJxxiBE,qCAUI,sBAAA,CAAA,yBpJuxiBN,CoJjyiBE,qCAUI,uBAAA,CAAA,wBpJiyiBN,CoJ3yiBE,yCAUI,sBpJ0yiBN,CoJpziBE,6CAUI,wBpJkziBN,CoJ5ziBE,+CAUI,yBpJ0ziBN,CoJp0iBE,2CAUI,uBpJk0iBN,CoJ50iBE,qCAUI,mBpJ00iBN,CoJp1iBE,yCAUI,uBAAA,CAAA,0BpJm1iBN,CoJ71iBE,yCAUI,wBAAA,CAAA,yBpJ61iBN,CoJv2iBE,6CAUI,uBpJs2iBN,CoJh3iBE,iDAUI,yBpJ82iBN,CoJx3iBE,mDAUI,0BpJs3iBN,CoJh4iBE,+CAUI,wBpJ83iBN,CoJx4iBE,iCAUI,iBpJs4iBN,CoJh5iBE,qCAUI,qBAAA,CAAA,wBpJ+4iBN,CoJz5iBE,qCAUI,sBAAA,CAAA,uBpJy5iBN,CoJn6iBE,yCAUI,qBpJk6iBN,CoJ56iBE,6CAUI,uBpJ06iBN,CoJp7iBE,+CAUI,wBpJk7iBN,CoJ57iBE,2CAUI,sBpJ07iBN,CoJp8iBE,qCAUI,oBpJk8iBN,CoJ58iBE,yCAUI,wBAAA,CAAA,2BpJ28iBN,CoJr9iBE,yCAUI,yBAAA,CAAA,0BpJq9iBN,CoJ/9iBE,6CAUI,wBpJ89iBN,CoJx+iBE,iDAUI,0BpJs+iBN,CoJh/iBE,mDAUI,2BpJ8+iBN,CoJx/iBE,+CAUI,yBpJs/iBN,CoJhgjBE,iCAUI,mBpJ8/iBN,CoJxgjBE,qCAUI,uBAAA,CAAA,0BpJugjBN,CoJjhjBE,qCAUI,wBAAA,CAAA,yBpJihjBN,CoJ3hjBE,yCAUI,uBpJ0hjBN,CoJpijBE,6CAUI,yBpJkijBN,CoJ5ijBE,+CAUI,0BpJ0ijBN,CoJpjjBE,2CAUI,wBpJkjjBN,CoJ5jjBE,iCAUI,cpJ0jjBN,CoJpkjBE,qCAUI,kBAAA,CAAA,qBpJmkjBN,CoJ7kjBE,qCAUI,mBAAA,CAAA,oBpJ6kjBN,CoJvljBE,yCAUI,kBpJsljBN,CoJhmjBE,6CAUI,oBpJ8ljBN,CoJxmjBE,+CAUI,qBpJsmjBN,CoJhnjBE,2CAUI,mBpJ8mjBN,CoJxnjBE,6BAUI,gBpJsnjBN,CoJhojBE,iCAUI,oBAAA,CAAA,uBpJ+njBN,CoJzojBE,iCAUI,qBAAA,CAAA,sBpJyojBN,CoJnpjBE,qCAUI,oBpJkpjBN,CoJ5pjBE,yCAUI,sBpJ0pjBN,CoJpqjBE,2CAUI,uBpJkqjBN,CoJ5qjBE,uCAUI,qBpJ0qjBN,CoJprjBE,qDAUI,wBpJkrjBN,CoJ5rjBE,yCAUI,iBpJ0rjBN,CoJpsjBE,yCAUI,iBpJksjBN,CoJ5sjBE,qCAUI,oBpJ0sjBN,CoJptjBE,2CAUI,oBpJktjBN,CoJ5tjBE,uCAUI,oBpJ0tjBN,CoJpujBE,2CAUI,oBpJkujBN,CoJ5ujBE,yCAUI,oBpJ0ujBN,CoJpvjBE,uCAUI,oBpJkvjBN,CoJ5vjBE,uCAUI,oBpJ0vjBN,CoJpwjBE,uCAUI,oBpJkwjBN,CoJ5wjBE,2CAUI,oBpJ0wjBN,CoJpxjBE,2CAUI,oBpJkxjBN,CoJ5xjBE,6CAUI,oBpJ0xjBN,CoJpyjBE,2CAUI,oBpJkyjBN,CoJ5yjBE,6CAUI,oBpJ0yjBN,CoJpzjBE,6CAUI,oBpJkzjBN,CoJ5zjBE,6CAUI,oBpJ0zjBN,CoJp0jBE,6CAUI,oBpJk0jBN,CoJ50jBE,6CAUI,oBpJ00jBN,CoJp1jBE,yDAUI,oBpJk1jBN,CoJ51jBE,uDAUI,oBpJ01jBN,CoJp2jBE,mDAUI,oBpJk2jBN,CoJ52jBE,uCAUI,oBpJ02jBN,CoJp3jBE,iDAUI,oBpJk3jBN,CoJ53jBE,qDAUI,oBpJ03jBN,CoJp4jBE,4FAUI,oBpJk4jBN,CoJ54jBE,6DAUI,oBpJk5jBN,CoJ55jBE,yDAUI,oBpJ05jBN,CoJp6jBE,6CAUI,oBpJk6jBN,CoJ56jBE,yDAUI,oBpJ06jBN,CoJp7jBE,uDAUI,oBpJk7jBN,CoJ57jBE,2DAUI,oBpJ07jBN,CoJp8jBE,iEAUI,oBpJk8jBN,CoJ58jBE,6DAUI,oBpJ08jBN,CoJp9jBE,iDAUI,oBpJk9jBN,CoJ59jBE,6DAUI,oBpJ09jBN,CoJp+jBE,2DAUI,oBpJk+jBN,CoJ5+jBE,+DAUI,oBpJ0+jBN,CoJp/jBE,mEAUI,oBpJk/jBN,CoJ5/jBE,+DAUI,oBpJ0/jBN,CoJpgkBE,qDAUI,oBpJkgkBN,CoJ5gkBE,iEAUI,oBpJ0gkBN,CoJphkBE,qEAUI,oBpJkhkBN,CoJ5hkBE,mEAUI,oBpJ0hkBN,CoJpikBE,+DAUI,oBpJkikBN,CoJ5ikBE,qDAUI,oBpJ0ikBN,CoJpjkBE,iEAUI,oBpJkjkBN,CoJ5jkBE,qEAUI,oBpJ0jkBN,CoJpkkBE,yDAUI,oBpJkkkBN,CoJ5kkBE,qDAUI,oBpJ0kkBN,CoJplkBE,yCAUI,oBpJklkBN,CoJ5lkBE,mDAUI,oBpJ0lkBN,CoJpmkBE,uDAUI,oBpJkmkBN,CoJ5mkBE,6DAUI,oBpJ0mkBN,CoJpnkBE,yDAUI,oBpJknkBN,CoJ5nkBE,6CAUI,oBpJ0nkBN,CoJpokBE,uDAUI,oBpJkokBN,CoJ5okBE,2DAUI,oBpJ0okBN,CoJppkBE,6DAUI,oBpJkpkBN,CoJ5pkBE,yDAUI,oBpJ0pkBN,CoJpqkBE,6CAUI,oBpJkqkBN,CoJ5qkBE,uDAUI,oBpJ0qkBN,CoJprkBE,2DAUI,oBpJkrkBN,CoJ5rkBE,uDAUI,oBpJ0rkBN,CoJpskBE,mDAUI,oBpJkskBN,CoJ5skBE,uCAUI,oBpJ0skBN,CoJptkBE,iDAUI,oBpJktkBN,CoJ5tkBE,qDAUI,oBpJ0tkBN,CoJpukBE,+DAUI,oBpJkukBN,CoJ5ukBE,2DAUI,oBpJ0ukBN,CoJpvkBE,+CAUI,oBpJkvkBN,CoJ5vkBE,yDAUI,oBpJ0vkBN,CoJpwkBE,6DAUI,oBpJkwkBN,CoJ5wkBE,iDAUI,oBpJ0wkBN,CoJpxkBE,2DAUI,oBpJkxkBN,CoJ5xkBE,UAUI,epJ0xkBN,CoJpykBE,cAUI,wBAAA,CAAA,yBpJ+xkBN,CoJzykBE,gBAUI,yBAAA,CAAA,4BpJoykBN,CoJ9ykBE,iBAUI,2BAAA,CAAA,4BpJyykBN,CoJnzkBE,eAUI,wBAAA,CAAA,2BpJ8ykBN,CoJxzkBE,WAUI,iBpJkzkBN,CoJ5zkBE,eAUI,0BAAA,CAAA,2BpJuzkBN,CoJj0kBE,iBAUI,2BAAA,CAAA,8BpJ4zkBN,CoJt0kBE,kBAUI,6BAAA,CAAA,8BpJi0kBN,CoJ30kBE,gBAUI,0BAAA,CAAA,6BpJs0kBN,CoJh1kBE,WAUI,oBpJ00kBN,CoJp1kBE,eAUI,6BAAA,CAAA,8BpJ+0kBN,CoJz1kBE,iBAUI,8BAAA,CAAA,iCpJo1kBN,CoJ91kBE,kBAUI,gCAAA,CAAA,iCpJy1kBN,CoJn2kBE,gBAUI,6BAAA,CAAA,gCpJ81kBN,CoJx2kBE,WAUI,mBpJk2kBN,CoJ52kBE,eAUI,4BAAA,CAAA,6BpJu2kBN,CoJj3kBE,iBAUI,6BAAA,CAAA,gCpJ42kBN,CoJt3kBE,kBAUI,+BAAA,CAAA,gCpJi3kBN,CoJ33kBE,gBAUI,4BAAA,CAAA,+BpJs3kBN,CoJh4kBE,aAUI,mBpJ03kBN,CoJp4kBE,iBAUI,4BAAA,CAAA,6BpJ+3kBN,CoJz4kBE,mBAUI,6BAAA,CAAA,gCpJo4kBN,CoJ94kBE,oBAUI,+BAAA,CAAA,gCpJy4kBN,CoJn5kBE,kBAUI,4BAAA,CAAA,+BpJ84kBN,CoJx5kBE,eAUI,mBpJk5kBN,CoJ55kBE,eAUI,mBpJs5kBN,CoJh6kBE,cAUI,kBpJ05kBN,CoJp6kBE,kBAUI,gBpJ85kBN,CoJx6kBE,oBAUI,oBAAA,CAAA,uBpJm6kBN,CoJ76kBE,oBAUI,qBAAA,CAAA,sBpJw6kBN,CoJl7kBE,sBAUI,oBpJ46kBN,CoJt7kBE,wBAUI,sBpJg7kBN,CoJ17kBE,yBAUI,uBpJo7kBN,CoJ97kBE,uBAUI,qBpJw7kBN,CoJl8kBE,kBAUI,gBpJ47kBN,CoJt8kBE,oBAUI,oBAAA,CAAA,uBpJi8kBN,CoJ38kBE,oBAUI,qBAAA,CAAA,sBpJs8kBN,CoJh9kBE,sBAUI,oBpJ08kBN,CoJp9kBE,wBAUI,sBpJ88kBN,CoJx9kBE,yBAUI,uBpJk9kBN,CoJ59kBE,uBAUI,qBpJs9kBN,CoJh+kBE,iBAUI,mBpJ09kBN,CoJp+kBE,mBAUI,uBAAA,CAAA,0BpJ+9kBN,CoJz+kBE,mBAUI,wBAAA,CAAA,yBpJo+kBN,CoJ9+kBE,qBAUI,uBpJw+kBN,CoJl/kBE,uBAUI,yBpJ4+kBN,CoJt/kBE,wBAUI,0BpJg/kBN,CoJ1/kBE,sBAUI,wBpJo/kBN,CoJ9/kBE,gBAUI,kBpJw/kBN,CoJlglBE,kBAUI,sBAAA,CAAA,yBpJ6/kBN,CoJvglBE,kBAUI,uBAAA,CAAA,wBpJkglBN,CoJ5glBE,oBAUI,sBpJsglBN,CoJhhlBE,sBAUI,wBpJ0glBN,CoJphlBE,uBAUI,yBpJ8glBN,CoJxhlBE,qBAUI,uBpJkhlBN,CoJ5hlBE,kBAUI,mBpJshlBN,CoJhilBE,oBAUI,uBAAA,CAAA,0BpJ2hlBN,CoJrilBE,oBAUI,wBAAA,CAAA,yBpJgilBN,CoJ1ilBE,sBAUI,uBpJoilBN,CoJ9ilBE,wBAUI,yBpJwilBN,CoJljlBE,yBAUI,0BpJ4ilBN,CoJtjlBE,uBAUI,wBpJgjlBN,CoJ1jlBE,gBAUI,iBpJojlBN,CoJ9jlBE,kBAUI,qBAAA,CAAA,wBpJyjlBN,CoJnklBE,kBAUI,sBAAA,CAAA,uBpJ8jlBN,CoJxklBE,oBAUI,qBpJkklBN,CoJ5klBE,sBAUI,uBpJsklBN,CoJhllBE,uBAUI,wBpJ0klBN,CoJpllBE,qBAUI,sBpJ8klBN,CoJxllBE,kBAUI,oBpJkllBN,CoJ5llBE,oBAUI,wBAAA,CAAA,2BpJullBN,CoJjmlBE,oBAUI,yBAAA,CAAA,0BpJ4llBN,CoJtmlBE,sBAUI,wBpJgmlBN,CoJ1mlBE,wBAUI,0BpJomlBN,CoJ9mlBE,yBAUI,2BpJwmlBN,CoJlnlBE,uBAUI,yBpJ4mlBN,CoJtnlBE,gBAUI,mBpJgnlBN,CoJ1nlBE,kBAUI,uBAAA,CAAA,0BpJqnlBN,CoJ/nlBE,kBAUI,wBAAA,CAAA,yBpJ0nlBN,CoJpolBE,oBAUI,uBpJ8nlBN,CoJxolBE,sBAUI,yBpJkolBN,CoJ5olBE,uBAUI,0BpJsolBN,CoJhplBE,qBAUI,wBpJ0olBN,CoJpplBE,gBAUI,cpJ8olBN,CoJxplBE,kBAUI,kBAAA,CAAA,qBpJmplBN,CoJ7plBE,kBAUI,mBAAA,CAAA,oBpJwplBN,CoJlqlBE,oBAUI,kBpJ4plBN,CoJtqlBE,sBAUI,oBpJgqlBN,CoJ1qlBE,uBAUI,qBpJoqlBN,CoJ9qlBE,qBAUI,mBpJwqlBN,CoJlrlBE,YAUI,UpJ4qlBN,CoJtrlBE,YAUI,UpJgrlBN,CoJ1rlBE,WAUI,apJorlBN,CoJ9rlBE,UAUI,YpJwrlBN,CoJlslBE,YAUI,apJ4rlBN,CoJtslBE,UAUI,WpJgslBN,CoJ1slBE,YAUI,cpJoslBN,CoJ9slBE,UAUI,apJwslBN,CoJltlBE,gBAUI,WpJ4slBN,CoJttlBE,gBAUI,WpJgtlBN,CoJ1tlBE,eAUI,cpJotlBN,CoJ9tlBE,cAUI,apJwtlBN,CoJlulBE,gBAUI,cpJ4tlBN,CoJtulBE,cAUI,YpJgulBN,CoJ1ulBE,gBAUI,epJoulBN,CoJ9ulBE,cAUI,cpJwulBN,CoJlvlBE,UAUI,QpJ4ulBN,CoJtvlBE,aAUI,WpJgvlBN,CoJ1vlBE,aAUI,WpJovlBN,CoJ9vlBE,uCAUI,epJwvlBN,CoJlwlBE,iCAUI,wCpJgwlBN,CoJ1wlBE,iCAUI,0CpJwwlBN,CoJlxlBE,iCAUI,wCpJgxlBN,CoJ1xlBE,iCAUI,2CpJwxlBN,CoJlylBE,iCAUI,uCpJgylBN,CoJ1ylBE,wBAUI,UAAA,CAAA,SAAA,CA7CF,iBpJu1lBJ,CoJpzlBE,YAUI,UAAA,CAAA,SpJgzlBN,CoJ1zlBE,WAUI,aAAA,CAAA,YAAA,CA7CF,iBpJm2lBJ,CoJh0lBE,sBAUI,YAAA,CAAA,WAAA,CA7CF,iBpJy2lBJ,CoJt0lBE,YAUI,aAAA,CAAA,YpJk0lBN,CoJ50lBE,sBAUI,WAAA,CAAA,UAAA,CA7CF,iBpJq3lBJ,CoJl1lBE,YAUI,cAAA,CAAA,apJ80lBN,CoJx1lBE,oBAUI,aAAA,CAAA,YAAA,CA7CF,iBpJi4lBJ,CoJ91lBE,UAUI,WAAA,CAAA,UpJ01lBN,CoJp2lBE,oBAUI,aAAA,CAAA,YAAA,CA7CF,iBpJ64lBJ,CoJ12lBE,UAUI,WAAA,CAAA,UpJs2lBN,CoJh3lBE,oBAUI,aAAA,CAAA,YAAA,CA7CF,iBpJy5lBJ,CoJt3lBE,UAUI,WAAA,CAAA,UpJk3lBN,CoJ53lBE,qBAUI,aAAA,CAAA,YAAA,CA7CF,iBpJq6lBJ,CoJl4lBE,WAUI,WAAA,CAAA,UpJ83lBN,CoJx4lBE,wBAUI,aAAA,CAAA,YAAA,CA7CF,iBpJi7lBJ,CoJ94lBE,aAUI,YAAA,CAAA,WpJ04lBN,CoJp5lBE,+BAUI,YAAA,CAAA,WAAA,CA7CF,iBpJ67lBJ,CoJ15lBE,eAUI,YAAA,CAAA,WpJs5lBN,CoJh6lBE,iBAnCE,UAAA,CAAA,aAAA,CA6CE,UpJ45lBN,CoJt6lBE,iDAUI,iBpJg6lBN,CoJ16lBE,qCAUI,UpJw6lBN,CoJl7lBE,qCAUI,UpJg7lBN,CoJ17lBE,iCAUI,apJw7lBN,CoJl8lBE,uCAUI,apJg8lBN,CoJ18lBE,mCAUI,apJw8lBN,CoJl9lBE,uCAUI,apJg9lBN,CoJ19lBE,qCAUI,apJw9lBN,CoJl+lBE,mCAUI,apJg+lBN,CoJ1+lBE,mCAUI,apJw+lBN,CoJl/lBE,mCAUI,apJg/lBN,CoJ1/lBE,uCAUI,apJw/lBN,CoJlgmBE,uCAUI,apJggmBN,CoJ1gmBE,yCAUI,apJwgmBN,CoJlhmBE,uCAUI,apJghmBN,CoJ1hmBE,yCAUI,apJwhmBN,CoJlimBE,yCAUI,apJgimBN,CoJ1imBE,yCAUI,apJwimBN,CoJljmBE,yCAUI,apJgjmBN,CoJ1jmBE,yCAUI,apJwjmBN,CoJlkmBE,qDAUI,apJgkmBN,CoJ1kmBE,mDAUI,apJwkmBN,CoJllmBE,+CAUI,apJglmBN,CoJ1lmBE,mCAUI,apJwlmBN,CoJlmmBE,6CAUI,apJgmmBN,CoJ1mmBE,iDAUI,apJwmmBN,CoJlnmBE,oFAUI,apJgnmBN,CoJ1nmBE,yDAUI,apJgomBN,CoJ1omBE,qDAUI,apJwomBN,CoJlpmBE,yCAUI,apJgpmBN,CoJ1pmBE,qDAUI,apJwpmBN,CoJlqmBE,mDAUI,apJgqmBN,CoJ1qmBE,uDAUI,apJwqmBN,CoJlrmBE,6DAUI,apJgrmBN,CoJ1rmBE,yDAUI,apJwrmBN,CoJlsmBE,6CAUI,apJgsmBN,CoJ1smBE,yDAUI,apJwsmBN,CoJltmBE,uDAUI,apJgtmBN,CoJ1tmBE,2DAUI,apJwtmBN,CoJlumBE,+DAUI,apJgumBN,CoJ1umBE,2DAUI,apJwumBN,CoJlvmBE,iDAUI,apJgvmBN,CoJ1vmBE,6DAUI,apJwvmBN,CoJlwmBE,iEAUI,apJgwmBN,CoJ1wmBE,+DAUI,apJwwmBN,CoJlxmBE,2DAUI,apJgxmBN,CoJ1xmBE,iDAUI,apJwxmBN,CoJlymBE,6DAUI,apJgymBN,CoJ1ymBE,iEAUI,apJwymBN,CoJlzmBE,qDAUI,apJgzmBN,CoJ1zmBE,iDAUI,apJwzmBN,CoJl0mBE,qCAUI,apJg0mBN,CoJ10mBE,+CAUI,apJw0mBN,CoJl1mBE,mDAUI,apJg1mBN,CoJ11mBE,yDAUI,apJw1mBN,CoJl2mBE,qDAUI,apJg2mBN,CoJ12mBE,yCAUI,apJw2mBN,CoJl3mBE,mDAUI,apJg3mBN,CoJ13mBE,uDAUI,apJw3mBN,CoJl4mBE,yDAUI,apJg4mBN,CoJ14mBE,qDAUI,apJw4mBN,CoJl5mBE,yCAUI,apJg5mBN,CoJ15mBE,mDAUI,apJw5mBN,CoJl6mBE,uDAUI,apJg6mBN,CoJ16mBE,mDAUI,apJw6mBN,CoJl7mBE,+CAUI,apJg7mBN,CoJ17mBE,mCAUI,apJw7mBN,CoJl8mBE,6CAUI,apJg8mBN,CoJ18mBE,iDAUI,apJw8mBN,CoJl9mBE,2DAUI,apJg9mBN,CoJ19mBE,uDAUI,apJw9mBN,CoJl+mBE,2CAUI,apJg+mBN,CoJ1+mBE,qDAUI,apJw+mBN,CoJl/mBE,yDAUI,apJg/mBN,CoJ1/mBE,6CAUI,apJw/mBN,CoJlgnBE,uDAUI,apJggnBN,CoJ1gnBE,aAUI,WpJwgnBN,CoJlhnBE,gBAUI,cpJ4gnBN,CoJthnBE,gBAUI,cpJghnBN,CoJ1hnBE,aAUI,WpJohnBN,CoJ9hnBE,aAUI,WpJwhnBN,CoJlinBE,oBAUI,kBpJ4hnBN,CoJtinBE,eAUI,apJginBN,CoJ1inBE,cAUI,YpJoinBN,CoJ9inBE,cAUI,YpJwinBN,CoJljnBE,gBAUI,cpJ4inBN,CoJtjnBE,sBAUI,oBpJgjnBN,CoJ1jnBE,qBAUI,mBpJojnBN,CoJ9jnBE,eAUI,apJwjnBN,CoJlknBE,oBAUI,kBpJ4jnBN,CoJtknBE,mBAUI,iBpJgknBN,CoJ1knBE,QAUI,WpJoknBN,CoJ9knBE,QAUI,WpJwknBN,CoJllnBE,QAUI,WpJ4knBN,CoJtlnBE,QAUI,WpJglnBN,CoJ1lnBE,QAUI,WpJolnBN,CoJ9lnBE,QAUI,WpJwlnBN,CoJlmnBE,QAUI,WpJ4lnBN,CoJtmnBE,QAUI,WpJgmnBN,CoJ1mnBE,QAUI,WpJomnBN,CoJ9mnBE,SAUI,YpJwmnBN,CoJlnnBE,SAUI,YpJ4mnBN,CoJtnnBE,SAUI,YpJgnnBN,CoJ1nnBE,WAUI,WpJonnBN,CoJ9nnBE,WAUI,apJwnnBN,CoJlonBE,UAUI,kBpJ4nnBN,CoJtonBE,aAUI,qBpJgonBN,CoJ1onBE,WAUI,cpJoonBN,CoJ9onBE,cAUI,gBpJwonBN,CoJlpnBE,YAUI,UpJ4onBN,CoJtpnBE,YAUI,UpJgpnBN,CoJ1pnBE,aAUI,WpJopnBN,CoJ9pnBE,eAUI,gBpJwpnBN,CoJlqnBE,eAUI,gBpJ4pnBN,CoJtqnBE,cAUI,gBpJgqnBN,CoJ1qnBE,cAUI,gBpJoqnBN,CoJ9qnBE,cAUI,iBpJwqnBN,CoJlrnBE,cAUI,iBpJ4qnBN,CoJtrnBE,cAUI,iBpJgrnBN,CoJ1rnBE,eAUI,iBpJornBN,CoJ9rnBE,eAUI,iBpJwrnBN,CoJlsnBE,eAUI,gBpJ4rnBN,CoJtsnBE,eAUI,gBpJgsnBN,CoJ1snBE,cAUI,cpJosnBN,CoJ9snBE,cAUI,iBpJwsnBN,CoJltnBE,cAUI,iBpJ4snBN,CoJttnBE,cAUI,iBpJgtnBN,CoJ1tnBE,cAUI,iBpJotnBN,CoJ9tnBE,eAUI,iBpJwtnBN,CoJlunBE,eAUI,iBpJ4tnBN,CoJtunBE,gBAUI,gBpJgunBN,CoJ1unBE,gBAUI,gBpJounBN,CoJ9unBE,eAUI,gBpJwunBN,CoJlvnBE,eAUI,gBpJ4unBN,CoJtvnBE,eAUI,iBpJgvnBN,CoJ1vnBE,eAUI,iBpJovnBN,CoJ9vnBE,eAUI,iBpJwvnBN,CoJlwnBE,gBAUI,iBpJ4vnBN,CoJtwnBE,gBAUI,iBpJgwnBN,CoJ1wnBE,kBAUI,gBpJownBN,CoJ9wnBE,kBAUI,gBpJwwnBN,CoJlxnBE,iBAUI,gBpJ4wnBN,CoJtxnBE,iBAUI,gBpJgxnBN,CoJ1xnBE,iBAUI,iBpJoxnBN,CoJ9xnBE,iBAUI,iBpJwxnBN,CoJlynBE,iBAUI,iBpJ4xnBN,CoJtynBE,kBAUI,iBpJgynBN,CoJ1ynBE,kBAUI,iBpJoynBN,CoJ9ynBE,eAUI,gBpJwynBN,CoJlznBE,eAUI,gBpJ4ynBN,CoJtznBE,cAUI,cpJgznBN,CoJ1znBE,cAUI,iBpJoznBN,CoJ9znBE,cAUI,iBpJwznBN,CoJl0nBE,cAUI,iBpJ4znBN,CoJt0nBE,cAUI,iBpJg0nBN,CoJ10nBE,eAUI,iBpJo0nBN,CoJ90nBE,eAUI,iBpJw0nBN,CoJl1nBE,eAUI,gBpJ40nBN,CoJt1nBE,eAUI,gBpJg1nBN,CoJ11nBE,cAUI,gBpJo1nBN,CoJ91nBE,cAUI,gBpJw1nBN,CoJl2nBE,cAUI,iBpJ41nBN,CoJt2nBE,cAUI,iBpJg2nBN,CoJ12nBE,cAUI,iBpJo2nBN,CoJ92nBE,eAUI,iBpJw2nBN,CoJl3nBE,eAUI,iBpJ42nBN,CoJt3nBE,cAUI,gBpJg3nBN,CoJ13nBE,cAUI,gBpJo3nBN,CoJ93nBE,aAUI,gBpJw3nBN,CoJl4nBE,aAUI,gBpJ43nBN,CoJt4nBE,aAUI,iBpJg4nBN,CoJ14nBE,aAUI,iBpJo4nBN,CoJ94nBE,aAUI,iBpJw4nBN,CoJl5nBE,cAUI,iBpJ44nBN,CoJt5nBE,cAUI,iBpJg5nBN,CoJ15nBE,aAUI,gBpJo5nBN,CoJ95nBE,aAUI,gBpJw5nBN,CoJl6nBE,YAUI,cpJ45nBN,CoJt6nBE,YAUI,iBpJg6nBN,CoJ16nBE,YAUI,iBpJo6nBN,CoJ96nBE,YAUI,iBpJw6nBN,CoJl7nBE,YAUI,iBpJ46nBN,CoJt7nBE,aAUI,iBpJg7nBN,CoJ17nBE,aAUI,iBpJo7nBN,CoJ97nBE,kBAUI,+EpJw7nBN,CoJl8nBE,kBAUI,gFpJ47nBN,CoJt8nBE,mBAUI,wEpJg8nBN,CoJ18nBE,gBAUI,gFpJo8nBN,CoJ98nBE,qBAUI,wEpJw8nBN,CoJl9nBE,kBAUI,gFpJ48nBN,CoJt9nBE,kBAUI,+EpJg9nBN,CoJ19nBE,iBAUI,wEpJo9nBN,CoJ99nBE,cAUI,qCpJw9nBN,CoJl+nBE,iBAUI,6BpJ49nBN,CoJt+nBE,aAUI,iBpJg+nBN,CoJ1+nBE,gBAUI,iBpJo+nBN,CoJ9+nBE,YAUI,epJw+nBN,CoJl/nBE,aAUI,epJ4+nBN,CoJt/nBE,WAUI,epJg/nBN,CoJ1/nBE,YAUI,UpJo/nBN,CoJ9/nBE,YAUI,UpJw/nBN,CoJlgoBE,WAUI,apJ4/nBN,CoJtgoBE,UAUI,YpJggoBN,CoJ1goBE,YAUI,apJogoBN,CoJ9goBE,UAUI,WpJwgoBN,CoJlhoBE,YAUI,cpJ4goBN,CoJthoBE,UAUI,apJghoBN,CoJ1hoBE,UAUI,WpJohoBN,CoJ9hoBE,UAUI,apJwhoBN,CoJlioBE,UAUI,WpJ4hoBN,CoJtioBE,UAUI,apJgioBN,CoJ1ioBE,UAUI,WpJoioBN,CoJ9ioBE,UAUI,apJwioBN,CoJljoBE,WAUI,WpJ4ioBN,CoJtjoBE,WAUI,apJgjoBN,CoJ1joBE,aAUI,YpJojoBN,CoJ9joBE,gBAUI,YpJwjoBN,CoJlkoBE,eAUI,YpJ4joBN,CoJtkoBE,UAUI,QpJgkoBN,CoJ1koBE,aAUI,WpJokoBN,CoJ9koBE,aAUI,WpJwkoBN,CoJlloBE,iBAUI,YpJ4koBN,CoJtloBE,qBAUI,sBpJgloBN,CoJ1loBE,oBAUI,0BpJoloBN,CoJ9loBE,kBAUI,wBpJwloBN,CoJlmoBE,cAUI,6BpJ4loBN,CoJtmoBE,UAUI,QpJgmoBN,CoJ1moBE,UAUI,QpJomoBN,CoJ9moBE,SAUI,WpJwmoBN,CoJlnoBE,QAUI,UpJ4moBN,CoJtnoBE,UAUI,WpJgnoBN,CoJ1noBE,QAUI,SpJonoBN,CoJ9noBE,UAUI,YpJwnoBN,CoJlooBE,QAUI,WpJ4noBN,CoJtooBE,cAUI,SpJgooBN,CoJ1ooBE,cAUI,SpJoooBN,CoJ9ooBE,aAUI,YpJwooBN,CoJlpoBE,YAUI,WpJ4ooBN,CoJtpoBE,cAUI,YpJgpoBN,CoJ1poBE,YAUI,UpJopoBN,CoJ9poBE,cAUI,apJwpoBN,CoJlqoBE,YAUI,YpJ4poBN,CoJtqoBE,QAUI,MpJgqoBN,CoJ1qoBE,WAUI,SpJoqoBN,CoJ9qoBE,WAUI,SpJwqoBN,CoJlroBE,cAUI,sBpJ4qoBN,CoJtroBE,eAUI,qBpJgroBN,CoJ1roBE,eAUI,qBpJoroBN,CoJ9roBE,eAUI,qBpJwroBN,CoJlsoBE,WAUI,qBpJ4roBN,CoJtsoBE,WAUI,mBpJgsoBN,CoJ1soBE,WAUI,oBpJosoBN,CoJ9soBE,oBAUI,cpJwsoBN,CoJltoBE,oBAUI,epJ4soBN,CoJttoBE,oBAUI,epJgtoBN,CoJ1toBE,oBAUI,epJotoBN,CoJ9toBE,oBAUI,epJwtoBN,CoJluoBE,oBAUI,epJ4toBN,CoJtuoBE,qBAUI,apJguoBN,CoJ1uoBE,qBAUI,epJouoBN,CoJ9uoBE,qBAUI,epJwuoBN,CoJlvoBE,qBAUI,epJ4uoBN,CoJtvoBE,qBAUI,epJgvoBN,CoJ1voBE,qBAUI,epJovoBN,CoJ9voBE,oBAUI,apJwvoBN,CoJlwoBE,oBAUI,epJ4voBN,CoJtwoBE,oBAUI,epJgwoBN,CoJ1woBE,oBAUI,epJowoBN,CoJ9woBE,oBAUI,epJwwoBN,CoJlxoBE,oBAUI,epJ4woBN,CoJtxoBE,uBAUI,apJgxoBN,CoJ1xoBE,uBAUI,epJoxoBN,CoJ9xoBE,uBAUI,epJwxoBN,CoJlyoBE,uBAUI,epJ4xoBN,CoJtyoBE,uBAUI,epJgyoBN,CoJ1yoBE,uBAUI,epJoyoBN,CoJ9yoBE,kBAUI,cpJwyoBN,CoJlzoBE,kBAUI,epJ4yoBN,CoJtzoBE,kBAUI,epJgzoBN,CoJ1zoBE,kBAUI,epJozoBN,CoJ9zoBE,kBAUI,epJwzoBN,CoJl0oBE,kBAUI,epJ4zoBN,CoJt0oBE,oBAUI,cpJg0oBN,CoJ10oBE,oBAUI,epJo0oBN,CoJ90oBE,oBAUI,epJw0oBN,CoJl1oBE,oBAUI,epJ40oBN,CoJt1oBE,oBAUI,epJg1oBN,CoJ11oBE,oBAUI,epJo1oBN,CoJ91oBE,oBAUI,apJw1oBN,CoJl2oBE,oBAUI,epJ41oBN,CoJt2oBE,oBAUI,epJg2oBN,CoJ12oBE,oBAUI,epJo2oBN,CoJ92oBE,oBAUI,epJw2oBN,CoJl3oBE,oBAUI,epJ42oBN,CoJt3oBE,mBAUI,apJg3oBN,CoJ13oBE,mBAUI,epJo3oBN,CoJ93oBE,mBAUI,epJw3oBN,CoJl4oBE,mBAUI,epJ43oBN,CoJt4oBE,mBAUI,epJg4oBN,CoJ14oBE,mBAUI,epJo4oBN,CoJ94oBE,gBAUI,WpJw4oBN,CoJl5oBE,gBAUI,WpJ44oBN,CoJt5oBE,eAUI,cpJg5oBN,CoJ15oBE,cAUI,apJo5oBN,CoJ95oBE,gBAUI,cpJw5oBN,CoJl6oBE,cAUI,YpJ45oBN,CoJt6oBE,gBAUI,epJg6oBN,CoJ16oBE,cAUI,cpJo6oBN,CoJ96oBE,YAUI,UpJw6oBN,CoJl7oBE,YAUI,UpJ46oBN,CoJt7oBE,WAUI,apJg7oBN,CoJ17oBE,UAUI,YpJo7oBN,CoJ97oBE,YAUI,apJw7oBN,CoJl8oBE,UAUI,WpJ47oBN,CoJt8oBE,YAUI,cpJg8oBN,CoJ18oBE,UAUI,apJo8oBN,CoJ98oBE,cAUI,YpJw8oBN,CoJl9oBE,cAUI,cpJ48oBN,CoJt9oBE,cAUI,YpJg9oBN,CoJ19oBE,cAUI,cpJo9oBN,CoJ99oBE,cAUI,YpJw9oBN,CoJl+oBE,cAUI,cpJ49oBN,CoJt+oBE,eAUI,YpJg+oBN,CoJ1+oBE,eAUI,cpJo+oBN,CoJ9+oBE,UAUI,WpJw+oBN,CoJl/oBE,UAUI,apJ4+oBN,CoJt/oBE,UAUI,WpJg/oBN,CoJ1/oBE,UAUI,apJo/oBN,CoJ9/oBE,UAUI,WpJw/oBN,CoJlgpBE,UAUI,apJ4/oBN,CoJtgpBE,WAUI,WpJggpBN,CoJ1gpBE,WAUI,apJogpBN,CoJ9gpBE,aAUI,WpJwgpBN,CoJlhpBE,YAUI,UpJ4gpBN,CoJthpBE,cAUI,YpJghpBN,CoJ1hpBE,YAUI,UpJohpBN,CoJ9hpBE,UAUI,QpJwhpBN,CoJlipBE,cAUI,iBpJ6hpBN,CoJvipBE,8BAUI,cpJiipBN,CoJ3ipBE,mBAUI,iBpJqipBN,CoJ/ipBE,cAUI,iBpJ0ipBN,CoJpjpBE,8BAUI,cpJ8ipBN,CoJxjpBE,mBAUI,iBpJkjpBN,CoJ5jpBE,aAUI,oBpJujpBN,CoJjkpBE,4BAUI,iBpJ2jpBN,CoJrkpBE,kBAUI,oBpJ+jpBN,CoJzkpBE,YAUI,mBpJokpBN,CoJ9kpBE,0BAUI,gBpJwkpBN,CoJllpBE,iBAUI,mBpJ4kpBN,CoJtlpBE,cAUI,oBpJilpBN,CoJ3lpBE,8BAUI,iBpJqlpBN,CoJ/lpBE,mBAUI,oBpJylpBN,CoJnmpBE,YAUI,kBpJ8lpBN,CoJxmpBE,0BAUI,epJkmpBN,CoJ5mpBE,iBAUI,kBpJsmpBN,CoJhnpBE,cAUI,qBpJ2mpBN,CoJrnpBE,8BAUI,kBpJ+mpBN,CoJznpBE,mBAUI,qBpJmnpBN,CoJ7npBE,YAUI,oBpJwnpBN,CoJlopBE,0BAUI,iBpJ4npBN,CoJtopBE,iBAUI,oBpJgopBN,CoJ1opBE,kBAUI,eAAA,CAAA,kBpJqopBN,CoJ/opBE,oBAUI,epJyopBN,CoJnppBE,uBAUI,kBpJ6opBN,CoJvppBE,kBAUI,eAAA,CAAA,kBpJkppBN,CoJ5ppBE,oBAUI,epJsppBN,CoJhqpBE,uBAUI,kBpJ0ppBN,CoJpqpBE,iBAUI,qBpJ+ppBN,CoJzqpBE,oCAUI,kBpJmqpBN,CoJ7qpBE,sBAUI,qBpJuqpBN,CoJjrpBE,gBAUI,oBpJ4qpBN,CoJtrpBE,kCAUI,iBpJgrpBN,CoJ1rpBE,qBAUI,oBpJorpBN,CoJ9rpBE,kBAUI,qBpJyrpBN,CoJnspBE,sCAUI,kBpJ6rpBN,CoJvspBE,uBAUI,qBpJispBN,CoJ3spBE,gBAUI,mBpJsspBN,CoJhtpBE,kCAUI,gBpJ0spBN,CoJptpBE,qBAUI,mBpJ8spBN,CoJxtpBE,kBAUI,sBpJmtpBN,CoJ7tpBE,sCAUI,mBpJutpBN,CoJjupBE,uBAUI,sBpJ2tpBN,CoJrupBE,gBAUI,qBpJgupBN,CoJ1upBE,kCAUI,kBpJoupBN,CoJ9upBE,qBAUI,qBpJwupBN,CoJlvpBE,gBAUI,mBpJ6upBN,CoJvvpBE,kCAUI,gBpJivpBN,CoJ3vpBE,qBAUI,mBpJqvpBN,CoJ/vpBE,gBAUI,qBpJ0vpBN,CoJpwpBE,kCAUI,kBpJ8vpBN,CoJxwpBE,qBAUI,qBpJkwpBN,CoJ5wpBE,gBAUI,mBpJuwpBN,CoJjxpBE,kCAUI,gBpJ2wpBN,CoJrxpBE,qBAUI,mBpJ+wpBN,CoJzxpBE,gBAUI,qBpJoxpBN,CoJ9xpBE,kCAUI,kBpJwxpBN,CoJlypBE,qBAUI,qBpJ4xpBN,CoJtypBE,gBAUI,mBpJiypBN,CoJ3ypBE,kCAUI,gBpJqypBN,CoJ/ypBE,qBAUI,mBpJyypBN,CoJnzpBE,gBAUI,qBpJ8ypBN,CoJxzpBE,kCAUI,kBpJkzpBN,CoJ5zpBE,qBAUI,qBpJszpBN,CoJh0pBE,iBAUI,gBAAA,CAAA,mBpJ2zpBN,CoJr0pBE,mBAUI,gBpJ+zpBN,CoJz0pBE,sBAUI,mBpJm0pBN,CoJ70pBE,iBAUI,qBpJw0pBN,CoJl1pBE,oCAUI,kBpJ40pBN,CoJt1pBE,sBAUI,qBpJg1pBN,CoJ11pBE,YAUI,kBpJq1pBN,CoJ/1pBE,0BAUI,epJy1pBN,CoJn2pBE,iBAUI,kBpJ61pBN,CoJv2pBE,YAUI,oBpJk2pBN,CoJ52pBE,0BAUI,iBpJs2pBN,CoJh3pBE,iBAUI,oBpJ02pBN,CoJp3pBE,YAUI,kBpJ+2pBN,CoJz3pBE,0BAUI,epJm3pBN,CoJ73pBE,iBAUI,kBpJu3pBN,CoJj4pBE,YAUI,oBpJ43pBN,CoJt4pBE,0BAUI,iBpJg4pBN,CoJ14pBE,iBAUI,oBpJo4pBN,CoJ94pBE,YAUI,kBpJy4pBN,CoJn5pBE,0BAUI,epJ64pBN,CoJv5pBE,iBAUI,kBpJi5pBN,CoJ35pBE,YAUI,oBpJs5pBN,CoJh6pBE,0BAUI,iBpJ05pBN,CoJp6pBE,iBAUI,oBpJ85pBN,CoJx6pBE,aAUI,kBpJm6pBN,CoJ76pBE,4BAUI,epJu6pBN,CoJj7pBE,kBAUI,kBpJ26pBN,CoJr7pBE,aAUI,oBpJg7pBN,CoJ17pBE,4BAUI,iBpJo7pBN,CoJ97pBE,kBAUI,oBpJw7pBN,CoJl8pBE,eAUI,kBpJ67pBN,CoJv8pBE,gCAUI,epJi8pBN,CoJ38pBE,oBAUI,kBpJq8pBN,CoJ/8pBE,cAUI,iBpJ08pBN,CoJp9pBE,8BAUI,cpJ88pBN,CoJx9pBE,mBAUI,iBpJk9pBN,CoJ59pBE,gBAUI,mBpJu9pBN,CoJj+pBE,kCAUI,gBpJ29pBN,CoJr+pBE,qBAUI,mBpJ+9pBN,CoJz+pBE,cAUI,iBpJo+pBN,CoJ9+pBE,8BAUI,cpJw+pBN,CoJl/pBE,mBAUI,iBpJ4+pBN,CoJt/pBE,YAUI,epJi/pBN,CoJ3/pBE,0BAUI,YpJq/pBN,CoJ//pBE,iBAUI,epJy/pBN,CoJngqBE,eAUI,kBpJ8/pBN,CoJxgqBE,gCAUI,epJkgqBN,CoJ5gqBE,oBAUI,kBpJsgqBN,CoJhhqBE,cAUI,epJ2gqBN,CoJrhqBE,gCAUI,gBpJ+gqBN,CoJzhqBE,iBAUI,epJmhqBN,CoJ7hqBE,cAUI,epJwhqBN,CoJliqBE,gCAUI,gBpJ4hqBN,CoJtiqBE,iBAUI,epJgiqBN,CoJ1iqBE,aAUI,kBpJqiqBN,CoJ/iqBE,8BAUI,mBpJyiqBN,CoJnjqBE,gBAUI,kBpJ6iqBN,CoJvjqBE,YAUI,iBpJkjqBN,CoJ5jqBE,4BAUI,kBpJsjqBN,CoJhkqBE,eAUI,iBpJ0jqBN,CoJpkqBE,cAUI,kBpJ+jqBN,CoJzkqBE,gCAUI,mBpJmkqBN,CoJ7kqBE,iBAUI,kBpJukqBN,CoJjlqBE,YAUI,gBpJ4kqBN,CoJtlqBE,4BAUI,iBpJglqBN,CoJ1lqBE,eAUI,gBpJolqBN,CoJ9lqBE,cAUI,mBpJylqBN,CoJnmqBE,gCAUI,oBpJ6lqBN,CoJvmqBE,iBAUI,mBpJimqBN,CoJ3mqBE,YAUI,kBpJsmqBN,CoJhnqBE,4BAUI,mBpJ0mqBN,CoJpnqBE,eAUI,kBpJ8mqBN,CoJxnqBE,kBAUI,gBAAA,CAAA,iBpJmnqBN,CoJ7nqBE,sBAUI,iBpJunqBN,CoJjoqBE,qBAUI,gBpJ2nqBN,CoJroqBE,kBAUI,gBAAA,CAAA,iBpJgoqBN,CoJ1oqBE,sBAUI,iBpJooqBN,CoJ9oqBE,qBAUI,gBpJwoqBN,CoJlpqBE,iBAUI,mBpJ6oqBN,CoJvpqBE,sCAUI,oBpJipqBN,CoJ3pqBE,oBAUI,mBpJqpqBN,CoJ/pqBE,gBAUI,kBpJ0pqBN,CoJpqqBE,oCAUI,mBpJ8pqBN,CoJxqqBE,mBAUI,kBpJkqqBN,CoJ5qqBE,kBAUI,mBpJuqqBN,CoJjrqBE,wCAUI,oBpJ2qqBN,CoJrrqBE,qBAUI,mBpJ+qqBN,CoJzrqBE,gBAUI,iBpJorqBN,CoJ9rqBE,oCAUI,kBpJwrqBN,CoJlsqBE,mBAUI,iBpJ4rqBN,CoJtsqBE,kBAUI,oBpJisqBN,CoJ3sqBE,wCAUI,qBpJqsqBN,CoJ/sqBE,qBAUI,oBpJysqBN,CoJntqBE,gBAUI,mBpJ8sqBN,CoJxtqBE,oCAUI,oBpJktqBN,CoJ5tqBE,mBAUI,mBpJstqBN,CoJhuqBE,gBAUI,iBpJ2tqBN,CoJruqBE,oCAUI,kBpJ+tqBN,CoJzuqBE,mBAUI,iBpJmuqBN,CoJ7uqBE,gBAUI,mBpJwuqBN,CoJlvqBE,oCAUI,oBpJ4uqBN,CoJtvqBE,mBAUI,mBpJgvqBN,CoJ1vqBE,gBAUI,iBpJqvqBN,CoJ/vqBE,oCAUI,kBpJyvqBN,CoJnwqBE,mBAUI,iBpJ6vqBN,CoJvwqBE,gBAUI,mBpJkwqBN,CoJ5wqBE,oCAUI,oBpJswqBN,CoJhxqBE,mBAUI,mBpJ0wqBN,CoJpxqBE,gBAUI,iBpJ+wqBN,CoJzxqBE,oCAUI,kBpJmxqBN,CoJ7xqBE,mBAUI,iBpJuxqBN,CoJjyqBE,gBAUI,mBpJ4xqBN,CoJtyqBE,oCAUI,oBpJgyqBN,CoJ1yqBE,mBAUI,mBpJoyqBN,CoJ9yqBE,iBAUI,iBpJyyqBN,CoJnzqBE,sCAUI,kBpJ6yqBN,CoJvzqBE,oBAUI,iBpJizqBN,CoJ3zqBE,iBAUI,mBpJszqBN,CoJh0qBE,sCAUI,oBpJ0zqBN,CoJp0qBE,oBAUI,mBpJ8zqBN,CoJx0qBE,YAUI,gBpJm0qBN,CoJ70qBE,4BAUI,iBpJu0qBN,CoJj1qBE,eAUI,gBpJ20qBN,CoJr1qBE,YAUI,kBpJg1qBN,CoJ11qBE,4BAUI,mBpJo1qBN,CoJ91qBE,eAUI,kBpJw1qBN,CoJl2qBE,YAUI,gBpJ61qBN,CoJv2qBE,4BAUI,iBpJi2qBN,CoJ32qBE,eAUI,gBpJq2qBN,CoJ/2qBE,YAUI,kBpJ02qBN,CoJp3qBE,4BAUI,mBpJ82qBN,CoJx3qBE,eAUI,kBpJk3qBN,CoJ53qBE,YAUI,gBpJu3qBN,CoJj4qBE,4BAUI,iBpJ23qBN,CoJr4qBE,eAUI,gBpJ+3qBN,CoJz4qBE,YAUI,kBpJo4qBN,CoJ94qBE,4BAUI,mBpJw4qBN,CoJl5qBE,eAUI,kBpJ44qBN,CoJt5qBE,aAUI,gBpJi5qBN,CoJ35qBE,8BAUI,iBpJq5qBN,CoJ/5qBE,gBAUI,gBpJy5qBN,CoJn6qBE,aAUI,kBpJ85qBN,CoJx6qBE,8BAUI,mBpJk6qBN,CoJ56qBE,gBAUI,kBpJs6qBN,CoJh7qBE,eAUI,iBpJ26qBN,CoJr7qBE,kCAUI,kBpJ+6qBN,CoJz7qBE,kBAUI,iBpJm7qBN,CoJ77qBE,kBAUI,iBpJw7qBN,CoJl8qBE,wCAUI,kBpJ47qBN,CoJt8qBE,qBAUI,iBpJg8qBN,CoJ18qBE,iBAUI,iBpJq8qBN,CoJ/8qBE,sCAUI,kBpJy8qBN,CoJn9qBE,oBAUI,iBpJ68qBN,CoJv9qBE,eAUI,gBpJk9qBN,CoJ59qBE,kCAUI,iBpJs9qBN,CoJh+qBE,kBAUI,gBpJ09qBN,CoJp+qBE,cAUI,epJ+9qBN,CoJz+qBE,gCAUI,gBpJm+qBN,CoJ7+qBE,iBAUI,epJu+qBN,CoJj/qBE,gBAUI,iBpJ4+qBN,CoJt/qBE,oCAUI,kBpJg/qBN,CoJ1/qBE,mBAUI,iBpJo/qBN,CoJ9/qBE,cAUI,epJy/qBN,CoJngrBE,gCAUI,gBpJ6/qBN,CoJvgrBE,iBAUI,epJigrBN,CoJ3grBE,YAUI,apJsgrBN,CoJhhrBE,4BAUI,cpJ0grBN,CoJphrBE,eAUI,apJ8grBN,CoJxhrBE,eAUI,gBpJmhrBN,CoJ7hrBE,kCAUI,iBpJuhrBN,CoJjirBE,kBAUI,gBpJ2hrBN,CoJrirBE,SAUI,iBpJ+hrBN,CoJzirBE,QAUI,gBpJmirBN,CoJ7irBE,UAUI,iBpJuirBN,CoJjjrBE,QAUI,epJ2irBN,CoJrjrBE,UAUI,kBpJ+irBN,CoJzjrBE,QAUI,iBpJmjrBN,CoJ7jrBE,QAUI,epJujrBN,CoJjkrBE,QAUI,iBpJ2jrBN,CoJrkrBE,QAUI,epJ+jrBN,CoJzkrBE,QAUI,iBpJmkrBN,CoJ7krBE,QAUI,epJukrBN,CoJjlrBE,QAUI,iBpJ2krBN,CoJrlrBE,SAUI,epJ+krBN,CoJzlrBE,SAUI,iBpJmlrBN,CoJ7lrBE,WAUI,gBpJulrBN,CoJjmrBE,cAUI,gBpJ2lrBN,CoJrmrBE,aAUI,gBpJ+lrBN,CoJzmrBE,gBAUI,gBpJmmrBN,CoJ7mrBE,aAUI,gBpJumrBN,CoJjnrBE,gBAUI,gBpJ2mrBN,CoJrnrBE,WAUI,epJ+mrBN,CoJznrBE,eAUI,gBpJmnrBN,CoJ7nrBE,SAUI,gBpJunrBN,CoJjorBE,QAUI,epJ2nrBN,CoJrorBE,UAUI,gBpJ+nrBN,CoJzorBE,QAUI,cpJmorBN,CoJ7orBE,UAUI,iBpJuorBN,CoJjprBE,QAUI,gBpJ2orBN,CoJrprBE,QAUI,cpJ+orBN,CoJzprBE,QAUI,gBpJmprBN,CoJ7prBE,QAUI,cpJuprBN,CoJjqrBE,QAUI,gBpJ2prBN,CoJrqrBE,QAUI,cpJ+prBN,CoJzqrBE,QAUI,gBpJmqrBN,CoJ7qrBE,SAUI,cpJuqrBN,CoJjrrBE,SAUI,gBpJ2qrBN,CoJrrrBE,WAUI,epJ+qrBN,CoJzrrBE,cAUI,epJmrrBN,CoJ7rrBE,aAUI,epJurrBN,CoJjsrBE,gBAUI,epJ2rrBN,CoJrsrBE,aAUI,epJ+rrBN,CoJzsrBE,gBAUI,epJmsrBN,CoJ7srBE,cAUI,epJusrBN,CoJjtrBE,iBAUI,epJ2srBN,CoJrtrBE,iBAUI,iBpJ+srBN,CoJztrBE,WAUI,cpJmtrBN,CoJ7trBE,WAUI,cpJutrBN,CoJjurBE,WAUI,cpJ2trBN,CoJrurBE,WAUI,cpJ+trBN,CoJzurBE,WAUI,cpJmurBN,CoJ7urBE,WAUI,cpJuurBN,CoJjvrBE,WAUI,cpJ2urBN,CoJrvrBE,WAUI,cpJ+urBN,CoJzvrBE,cAUI,cpJmvrBN,CoJ7vrBE,UAUI,cpJuvrBN,CoJjwrBE,UAUI,cpJ2vrBN,CoJrwrBE,SAUI,iBpJ+vrBN,CoJzwrBE,QAUI,gBpJmwrBN,CoJ7wrBE,UAUI,iBpJuwrBN,CoJjxrBE,QAUI,epJ2wrBN,CoJrxrBE,UAUI,kBpJ+wrBN,CoJzxrBE,QAUI,iBpJmxrBN,CoJ7xrBE,QAUI,epJuxrBN,CoJjyrBE,QAUI,iBpJ2xrBN,CoJryrBE,QAUI,epJ+xrBN,CoJzyrBE,QAUI,iBpJmyrBN,CoJ7yrBE,QAUI,epJuyrBN,CoJjzrBE,QAUI,iBpJ2yrBN,CoJrzrBE,SAUI,epJ+yrBN,CoJzzrBE,SAUI,iBpJmzrBN,CoJ7zrBE,WAUI,gBpJuzrBN,CoJj0rBE,cAUI,gBpJ2zrBN,CoJr0rBE,aAUI,gBpJ+zrBN,CoJz0rBE,gBAUI,gBpJm0rBN,CoJ70rBE,aAUI,gBpJu0rBN,CoJj1rBE,gBAUI,gBpJ20rBN,CoJr1rBE,QAUI,YpJ+0rBN,CoJz1rBE,WAUI,epJm1rBN,CoJ71rBE,eAUI,gBpJu1rBN,CoJj2rBE,SAUI,gBpJ21rBN,CoJr2rBE,QAUI,epJ+1rBN,CoJz2rBE,UAUI,gBpJm2rBN,CoJ72rBE,QAUI,cpJu2rBN,CoJj3rBE,UAUI,iBpJ22rBN,CoJr3rBE,QAUI,gBpJ+2rBN,CoJz3rBE,QAUI,cpJm3rBN,CoJ73rBE,QAUI,gBpJu3rBN,CoJj4rBE,QAUI,cpJ23rBN,CoJr4rBE,QAUI,gBpJ+3rBN,CoJz4rBE,QAUI,cpJm4rBN,CoJ74rBE,QAUI,gBpJu4rBN,CoJj5rBE,SAUI,cpJ24rBN,CoJr5rBE,SAUI,gBpJ+4rBN,CoJz5rBE,QAUI,WpJm5rBN,CoJ75rBE,WAUI,SpJu5rBN,CoJj6rBE,YAUI,UpJ25rBN,CoJr6rBE,YAUI,UpJ+5rBN,CoJz6rBE,YAUI,UpJm6rBN,CoJ76rBE,YAUI,UpJu6rBN,CoJj7rBE,YAUI,UpJ26rBN,CoJr7rBE,YAUI,UpJ+6rBN,CoJz7rBE,YAUI,UpJm7rBN,CoJ77rBE,YAUI,UpJu7rBN,CoJj8rBE,YAUI,UpJ27rBN,CoJr8rBE,aAUI,SpJ+7rBN,CoJz8rBE,aAUI,QpJm8rBN,CoJ78rBE,YAUI,SpJu8rBN,CoJj9rBE,eAUI,apJ28rBN,CoJr9rBE,SAUI,OpJ+8rBN,CoJz9rBE,SAUI,OpJm9rBN,CoJ79rBE,SAUI,OpJu9rBN,CoJj+rBE,SAUI,OpJ29rBN,CoJr+rBE,SAUI,OpJ+9rBN,CoJz+rBE,SAUI,OpJm+rBN,CoJ7+rBE,SAUI,OpJu+rBN,CoJj/rBE,SAUI,OpJ2+rBN,CoJr/rBE,SAUI,OpJ++rBN,CoJz/rBE,SAUI,OpJm/rBN,CoJ7/rBE,UAUI,QpJu/rBN,CoJjgsBE,UAUI,QpJ2/rBN,CoJrgsBE,aAUI,iBpJ+/rBN,CoJzgsBE,aAUI,iBpJmgsBN,CoJ7gsBE,WAUI,epJugsBN,CoJjhsBE,YAUI,oBpJ2gsBN,CoJrhsBE,qBAUI,yBpJ+gsBN,CoJzhsBE,eAUI,kBpJmhsBN,CoJ7hsBE,eAUI,kBpJuhsBN,CoJjisBE,aAUI,qBpJ2hsBN,CoJrisBE,gBAUI,qBpJ+hsBN,CoJzisBE,cAUI,qBpJmisBN,CoJ7isBE,gBAUI,qBpJuisBN,CoJjjsBE,eAUI,qBpJ2isBN,CoJrjsBE,cAUI,qBpJ+isBN,CoJzjsBE,cAUI,qBpJmjsBN,CoJ7jsBE,cAUI,qBpJujsBN,CoJjksBE,gBAUI,qBpJ2jsBN,CoJrksBE,gBAUI,qBpJ+jsBN,CoJzksBE,iBAUI,qBpJmksBN,CoJ7ksBE,gBAUI,qBpJuksBN,CoJjlsBE,iBAUI,qBpJ2ksBN,CoJrlsBE,iBAUI,qBpJ+ksBN,CoJzlsBE,iBAUI,qBpJmlsBN,CoJ7lsBE,iBAUI,qBpJulsBN,CoJjmsBE,iBAUI,qBpJ2lsBN,CoJrmsBE,uBAUI,qBpJ+lsBN,CoJzmsBE,sBAUI,qBpJmmsBN,CoJ7msBE,oBAUI,qBpJumsBN,CoJjnsBE,cAUI,qBpJ2msBN,CoJrnsBE,mBAUI,qBpJ+msBN,CoJznsBE,qBAUI,qBpJmnsBN,CoJ7nsBE,mCAUI,qBpJunsBN,CoJjosBE,yBAUI,qBpJ+nsBN,CoJzosBE,uBAUI,qBpJmosBN,CoJ7osBE,iBAUI,qBpJuosBN,CoJjpsBE,uBAUI,qBpJ2osBN,CoJrpsBE,sBAUI,qBpJ+osBN,CoJzpsBE,wBAUI,qBpJmpsBN,CoJ7psBE,2BAUI,qBpJupsBN,CoJjqsBE,yBAUI,qBpJ2psBN,CoJrqsBE,mBAUI,qBpJ+psBN,CoJzqsBE,yBAUI,qBpJmqsBN,CoJ7qsBE,wBAUI,qBpJuqsBN,CoJjrsBE,0BAUI,qBpJ2qsBN,CoJrrsBE,4BAUI,qBpJ+qsBN,CoJzrsBE,0BAUI,qBpJmrsBN,CoJ7rsBE,qBAUI,qBpJursBN,CoJjssBE,2BAUI,qBpJ2rsBN,CoJrssBE,6BAUI,qBpJ+rsBN,CoJzssBE,4BAUI,qBpJmssBN,CoJ7ssBE,0BAUI,qBpJussBN,CoJjtsBE,qBAUI,qBpJ2ssBN,CoJrtsBE,2BAUI,qBpJ+ssBN,CoJztsBE,6BAUI,qBpJmtsBN,CoJ7tsBE,uBAUI,qBpJutsBN,CoJjusBE,qBAUI,qBpJ2tsBN,CoJrusBE,eAUI,qBpJ+tsBN,CoJzusBE,oBAUI,qBpJmusBN,CoJ7usBE,sBAUI,qBpJuusBN,CoJjvsBE,yBAUI,qBpJ2usBN,CoJrvsBE,uBAUI,qBpJ+usBN,CoJzvsBE,iBAUI,qBpJmvsBN,CoJ7vsBE,sBAUI,qBpJuvsBN,CoJjwsBE,wBAUI,qBpJ2vsBN,CoJrwsBE,yBAUI,qBpJ+vsBN,CoJzwsBE,uBAUI,qBpJmwsBN,CoJ7wsBE,iBAUI,qBpJuwsBN,CoJjxsBE,sBAUI,qBpJ2wsBN,CoJrxsBE,wBAUI,qBpJ+wsBN,CoJzxsBE,sBAUI,qBpJmxsBN,CoJ7xsBE,oBAUI,qBpJuxsBN,CoJjysBE,cAUI,qBpJ2xsBN,CoJrysBE,mBAUI,qBpJ+xsBN,CoJzysBE,qBAUI,qBpJmysBN,CoJ7ysBE,0BAUI,qBpJuysBN,CoJjzsBE,wBAUI,qBpJ2ysBN,CoJrzsBE,kBAUI,qBpJ+ysBN,CoJzzsBE,uBAUI,qBpJmzsBN,CoJ7zsBE,yBAUI,qBpJuzsBN,CoJj0sBE,mBAUI,qBpJ2zsBN,CoJr0sBE,wBAUI,qBpJ+zsBN,CoJz0sBE,iBAUI,epJm0sBN,CoJ70sBE,mBAUI,iBpJu0sBN,CoJj1sBE,mBAUI,iBpJ20sBN,CoJr1sBE,iBAUI,epJ+0sBN,CoJz1sBE,mBAUI,iBpJm1sBN,CoJ71sBE,mBAUI,iBpJu1sBN,CoJj2sBE,eAUI,apJ21sBN,CoJr2sBE,iBAUI,epJ+1sBN,CoJz2sBE,iBAUI,epJm2sBN,CoJ72sBE,kBAUI,gBpJu2sBN,CoJj3sBE,oBAUI,kBpJ22sBN,CoJr3sBE,oBAUI,kBpJ+2sBN,CoJz3sBE,aAUI,WpJm3sBN,CoJ73sBE,eAUI,eAAA,CAAA,kBpJw3sBN,CoJl4sBE,eAUI,gBAAA,CAAA,iBpJ63sBN,CoJv4sBE,iBAUI,epJi4sBN,CoJ34sBE,mBAUI,iBpJq4sBN,CoJ/4sBE,oBAUI,kBpJy4sBN,CoJn5sBE,kBAUI,gBpJ64sBN,CoJv5sBE,aAUI,WpJi5sBN,CoJ35sBE,eAUI,eAAA,CAAA,kBpJs5sBN,CoJh6sBE,eAUI,gBAAA,CAAA,iBpJ25sBN,CoJr6sBE,iBAUI,epJ+5sBN,CoJz6sBE,mBAUI,iBpJm6sBN,CoJ76sBE,oBAUI,kBpJu6sBN,CoJj7sBE,kBAUI,gBpJ26sBN,CoJr7sBE,YAUI,cpJ+6sBN,CoJz7sBE,cAUI,kBAAA,CAAA,qBpJo7sBN,CoJ97sBE,cAUI,mBAAA,CAAA,oBpJy7sBN,CoJn8sBE,gBAUI,kBpJ67sBN,CoJv8sBE,kBAUI,oBpJi8sBN,CoJ38sBE,mBAUI,qBpJq8sBN,CoJ/8sBE,iBAUI,mBpJy8sBN,CoJn9sBE,WAUI,apJ68sBN,CoJv9sBE,aAUI,iBAAA,CAAA,oBpJk9sBN,CoJ59sBE,aAUI,kBAAA,CAAA,mBpJu9sBN,CoJj+sBE,eAUI,iBpJ29sBN,CoJr+sBE,iBAUI,mBpJ+9sBN,CoJz+sBE,kBAUI,oBpJm+sBN,CoJ7+sBE,gBAUI,kBpJu+sBN,CoJj/sBE,aAUI,cpJ2+sBN,CoJr/sBE,eAUI,kBAAA,CAAA,qBpJg/sBN,CoJ1/sBE,eAUI,mBAAA,CAAA,oBpJq/sBN,CoJ//sBE,iBAUI,kBpJy/sBN,CoJngtBE,mBAUI,oBpJ6/sBN,CoJvgtBE,oBAUI,qBpJigtBN,CoJ3gtBE,kBAUI,mBpJqgtBN,CoJ/gtBE,WAUI,YpJygtBN,CoJnhtBE,aAUI,gBAAA,CAAA,mBpJ8gtBN,CoJxhtBE,aAUI,iBAAA,CAAA,kBpJmhtBN,CoJ7htBE,eAUI,gBpJuhtBN,CoJjitBE,iBAUI,kBpJ2htBN,CoJritBE,kBAUI,mBpJ+htBN,CoJzitBE,gBAUI,iBpJmitBN,CoJ7itBE,aAUI,epJuitBN,CoJjjtBE,eAUI,mBAAA,CAAA,sBpJ4itBN,CoJtjtBE,eAUI,oBAAA,CAAA,qBpJijtBN,CoJ3jtBE,iBAUI,mBpJqjtBN,CoJ/jtBE,mBAUI,qBpJyjtBN,CoJnktBE,oBAUI,sBpJ6jtBN,CoJvktBE,kBAUI,oBpJiktBN,CoJ3ktBE,WAUI,cpJqktBN,CoJ/ktBE,aAUI,kBAAA,CAAA,qBpJ0ktBN,CoJpltBE,aAUI,mBAAA,CAAA,oBpJ+ktBN,CoJzltBE,eAUI,kBpJmltBN,CoJ7ltBE,iBAUI,oBpJultBN,CoJjmtBE,kBAUI,qBpJ2ltBN,CoJrmtBE,gBAUI,mBpJ+ltBN,CoJzmtBE,WAUI,YpJmmtBN,CoJ7mtBE,aAUI,gBAAA,CAAA,mBpJwmtBN,CoJlntBE,aAUI,iBAAA,CAAA,kBpJ6mtBN,CoJvntBE,eAUI,gBpJintBN,CoJ3ntBE,iBAUI,kBpJqntBN,CoJ/ntBE,kBAUI,mBpJyntBN,CoJnotBE,gBAUI,iBpJ6ntBN,CoJvotBE,WAUI,cpJiotBN,CoJ3otBE,aAUI,kBAAA,CAAA,qBpJsotBN,CoJhptBE,aAUI,mBAAA,CAAA,oBpJ2otBN,CoJrptBE,eAUI,kBpJ+otBN,CoJzptBE,iBAUI,oBpJmptBN,CoJ7ptBE,kBAUI,qBpJuptBN,CoJjqtBE,gBAUI,mBpJ2ptBN,CoJrqtBE,WAUI,YpJ+ptBN,CoJzqtBE,aAUI,gBAAA,CAAA,mBpJoqtBN,CoJ9qtBE,aAUI,iBAAA,CAAA,kBpJyqtBN,CoJnrtBE,eAUI,gBpJ6qtBN,CoJvrtBE,iBAUI,kBpJirtBN,CoJ3rtBE,kBAUI,mBpJqrtBN,CoJ/rtBE,gBAUI,iBpJyrtBN,CoJnstBE,WAUI,cpJ6rtBN,CoJvstBE,aAUI,kBAAA,CAAA,qBpJkstBN,CoJ5stBE,aAUI,mBAAA,CAAA,oBpJustBN,CoJjttBE,eAUI,kBpJ2stBN,CoJrttBE,iBAUI,oBpJ+stBN,CoJzttBE,kBAUI,qBpJmttBN,CoJ7ttBE,gBAUI,mBpJuttBN,CoJjutBE,WAUI,YpJ2ttBN,CoJrutBE,aAUI,gBAAA,CAAA,mBpJgutBN,CoJ1utBE,aAUI,iBAAA,CAAA,kBpJqutBN,CoJ/utBE,eAUI,gBpJyutBN,CoJnvtBE,iBAUI,kBpJ6utBN,CoJvvtBE,kBAUI,mBpJivtBN,CoJ3vtBE,gBAUI,iBpJqvtBN,CoJ/vtBE,WAUI,cpJyvtBN,CoJnwtBE,aAUI,kBAAA,CAAA,qBpJ8vtBN,CoJxwtBE,aAUI,mBAAA,CAAA,oBpJmwtBN,CoJ7wtBE,eAUI,kBpJuwtBN,CoJjxtBE,iBAUI,oBpJ2wtBN,CoJrxtBE,kBAUI,qBpJ+wtBN,CoJzxtBE,gBAUI,mBpJmxtBN,CoJ7xtBE,YAUI,YpJuxtBN,CoJjytBE,cAUI,gBAAA,CAAA,mBpJ4xtBN,CoJtytBE,cAUI,iBAAA,CAAA,kBpJiytBN,CoJ3ytBE,gBAUI,gBpJqytBN,CoJ/ytBE,kBAUI,kBpJyytBN,CoJnztBE,mBAUI,mBpJ6ytBN,CoJvztBE,iBAUI,iBpJiztBN,CoJ3ztBE,YAUI,cpJqztBN,CoJ/ztBE,cAUI,kBAAA,CAAA,qBpJ0ztBN,CoJp0tBE,cAUI,mBAAA,CAAA,oBpJ+ztBN,CoJz0tBE,gBAUI,kBpJm0tBN,CoJ70tBE,kBAUI,oBpJu0tBN,CoJj1tBE,mBAUI,qBpJ20tBN,CoJr1tBE,iBAUI,mBpJ+0tBN,CoJz1tBE,WAUI,SpJm1tBN,CoJ71tBE,aAUI,aAAA,CAAA,gBpJw1tBN,CoJl2tBE,aAUI,cAAA,CAAA,epJ61tBN,CoJv2tBE,eAUI,apJi2tBN,CoJ32tBE,iBAUI,epJq2tBN,CoJ/2tBE,kBAUI,gBpJy2tBN,CoJn3tBE,gBAUI,cpJ62tBN,CoJv3tBE,SAnCE,QAAA,CAAA,KpJk6tBJ,CoJ/3tBE,gBAnCE,MAAA,CAAA,OAAA,CA6CE,iBpJ23tBN,CoJr4tBE,OAnCE,KpJ86tBJ,CoJ34tBE,mBAnCE,QAAA,CA6CE,iBpJs4tBN,CoJh5tBE,UAnCE,MAAA,CA6CE,iBpJ24tBN,CoJr5tBE,WAnCE,OAAA,CA6CE,iBpJg5tBN,CoJ15tBE,SAnCE,KAAA,CA6CE,iBpJq5tBN,CoJ/5tBE,UAnCE,WAAA,CAAA,SAAA,CAAA,UAAA,CAAA,QAAA,CA6CE,epJ65tBN,CoJv6tBE,mBAUI,iBpJi6tBN,CoJ36tBE,gBAUI,cpJq6tBN,CoJ/6tBE,mBAUI,iBpJy6tBN,CoJn7tBE,iBAUI,epJ66tBN,CoJv7tBE,iBAUI,epJi7tBN,CoJ37tBE,WAUI,SpJq7tBN,CoJ/7tBE,WAUI,SpJy7tBN,CoJn8tBE,UAUI,YpJ67tBN,CoJv8tBE,SAUI,WpJi8tBN,CoJ38tBE,WAUI,YpJq8tBN,CoJ/8tBE,SAUI,UpJy8tBN,CoJn9tBE,WAUI,apJ68tBN,CoJv9tBE,SAUI,YpJi9tBN,CoJ39tBE,eAUI,UpJq9tBN,CoJ/9tBE,eAUI,UpJy9tBN,CoJn+tBE,cAUI,apJ69tBN,CoJv+tBE,aAUI,YpJi+tBN,CoJ3+tBE,eAUI,apJq+tBN,CoJ/+tBE,aAUI,WpJy+tBN,CoJn/tBE,eAUI,cpJ6+tBN,CoJv/tBE,aAUI,apJi/tBN,CoJ3/tBE,SAUI,OpJq/tBN,CoJ//tBE,YAUI,UpJy/tBN,CoJnguBE,YAUI,UpJ6/tBN,CoJvguBE,YAUI,UAAA,CAAA,SpJkguBN,CoJ5guBE,YAUI,UAAA,CAAA,SpJuguBN,CoJjhuBE,WAUI,aAAA,CAAA,YpJ4guBN,CoJthuBE,UAUI,YAAA,CAAA,WpJihuBN,CoJ3huBE,YAUI,aAAA,CAAA,YpJshuBN,CoJhiuBE,UAUI,WAAA,CAAA,UpJ2huBN,CoJriuBE,YAUI,cAAA,CAAA,apJgiuBN,CoJ1iuBE,UAUI,aAAA,CAAA,YpJqiuBN,CoJ/iuBE,UAUI,WAAA,CAAA,UpJ0iuBN,CoJpjuBE,UAUI,aAAA,CAAA,YpJ+iuBN,CoJzjuBE,UAUI,WAAA,CAAA,UpJojuBN,CoJ9juBE,UAUI,aAAA,CAAA,YpJyjuBN,CoJnkuBE,UAUI,WAAA,CAAA,UpJ8juBN,CoJxkuBE,UAUI,aAAA,CAAA,YpJmkuBN,CoJ7kuBE,WAUI,WAAA,CAAA,UpJwkuBN,CoJlluBE,WAUI,aAAA,CAAA,YpJ6kuBN,CoJvluBE,aAUI,YAAA,CAAA,WpJkluBN,CoJ5luBE,gBAUI,YAAA,CAAA,WpJuluBN,CoJjmuBE,eAUI,YAAA,CAAA,WpJ4luBN,CoJtmuBE,aAUI,iBpJgmuBN,CoJ1muBE,WAUI,epJomuBN,CoJ9muBE,cAUI,kBpJwmuBN,CoJlnuBE,YAUI,gBpJ4muBN,CoJtnuBE,uCAUI,4BpJgnuBN,CoJ1nuBE,6CAUI,yBpJwnuBN,CoJlouBE,gGAUI,oBpJgouBN,CoJ1ouBE,2CAUI,6BpJgpuBN,CoJ1puBE,iDAUI,6BpJwpuBN,CoJlquBE,6CAUI,6BpJgquBN,CoJ1quBE,iDAUI,6BpJwquBN,CoJlruBE,+CAUI,6BpJgruBN,CoJ1ruBE,6CAUI,6BpJwruBN,CoJlsuBE,6CAUI,6BpJgsuBN,CoJ1suBE,6CAUI,6BpJwsuBN,CoJltuBE,iDAUI,6BpJgtuBN,CoJ1tuBE,iDAUI,6BpJwtuBN,CoJluuBE,mDAUI,6BpJguuBN,CoJ1uuBE,iDAUI,6BpJwuuBN,CoJlvuBE,mDAUI,6BpJgvuBN,CoJ1vuBE,mDAUI,6BpJwvuBN,CoJlwuBE,mDAUI,6BpJgwuBN,CoJ1wuBE,mDAUI,6BpJwwuBN,CoJlxuBE,mDAUI,6BpJgxuBN,CoJ1xuBE,+DAUI,6BpJwxuBN,CoJlyuBE,6DAUI,6BpJgyuBN,CoJ1yuBE,yDAUI,6BpJwyuBN,CoJlzuBE,6CAUI,6BpJgzuBN,CoJ1zuBE,uDAUI,6BpJwzuBN,CoJl0uBE,2DAUI,6BpJg0uBN,CoJ10uBE,wGAUI,6BpJw0uBN,CoJl1uBE,mEAUI,6BpJw1uBN,CoJl2uBE,+DAUI,6BpJg2uBN,CoJ12uBE,mDAUI,6BpJw2uBN,CoJl3uBE,+DAUI,6BpJg3uBN,CoJ13uBE,6DAUI,6BpJw3uBN,CoJl4uBE,iEAUI,6BpJg4uBN,CoJ14uBE,uEAUI,6BpJw4uBN,CoJl5uBE,mEAUI,6BpJg5uBN,CoJ15uBE,uDAUI,6BpJw5uBN,CoJl6uBE,mEAUI,6BpJg6uBN,CoJ16uBE,iEAUI,6BpJw6uBN,CoJl7uBE,qEAUI,6BpJg7uBN,CoJ17uBE,yEAUI,6BpJw7uBN,CoJl8uBE,qEAUI,6BpJg8uBN,CoJ18uBE,2DAUI,6BpJw8uBN,CoJl9uBE,uEAUI,6BpJg9uBN,CoJ19uBE,2EAUI,6BpJw9uBN,CoJl+uBE,yEAUI,6BpJg+uBN,CoJ1+uBE,qEAUI,6BpJw+uBN,CoJl/uBE,2DAUI,6BpJg/uBN,CoJ1/uBE,uEAUI,6BpJw/uBN,CoJlgvBE,2EAUI,6BpJggvBN,CoJ1gvBE,+DAUI,6BpJwgvBN,CoJlhvBE,2DAUI,6BpJghvBN,CoJ1hvBE,+CAUI,6BpJwhvBN,CoJlivBE,yDAUI,6BpJgivBN,CoJ1ivBE,6DAUI,6BpJwivBN,CoJljvBE,mEAUI,6BpJgjvBN,CoJ1jvBE,+DAUI,6BpJwjvBN,CoJlkvBE,mDAUI,6BpJgkvBN,CoJ1kvBE,6DAUI,6BpJwkvBN,CoJllvBE,iEAUI,6BpJglvBN,CoJ1lvBE,mEAUI,6BpJwlvBN,CoJlmvBE,+DAUI,6BpJgmvBN,CoJ1mvBE,mDAUI,6BpJwmvBN,CoJlnvBE,6DAUI,6BpJgnvBN,CoJ1nvBE,iEAUI,6BpJwnvBN,CoJlovBE,6DAUI,6BpJgovBN,CoJ1ovBE,yDAUI,6BpJwovBN,CoJlpvBE,6CAUI,6BpJgpvBN,CoJ1pvBE,uDAUI,6BpJwpvBN,CoJlqvBE,2DAUI,6BpJgqvBN,CoJ1qvBE,qEAUI,6BpJwqvBN,CoJlrvBE,iEAUI,6BpJgrvBN,CoJ1rvBE,qDAUI,6BpJwrvBN,CoJlsvBE,+DAUI,6BpJgsvBN,CoJ1svBE,mEAUI,6BpJwsvBN,CoJltvBE,uDAUI,6BpJgtvBN,CoJ1tvBE,iEAUI,6BpJwtvBN,CoJluvBE,eAUI,apJguvBN,CoJ1uvBE,gBAUI,kBpJouvBN,CoJ9uvBE,eAUI,iBpJwuvBN,CoJlvvBE,iBAUI,kBpJ4uvBN,CoJtvvBE,eAUI,gBpJgvvBN,CoJ1vvBE,iBAUI,mBpJovvBN,CoJ9vvBE,eAUI,kBpJwvvBN,CoJlwvBE,oBAUI,mBpJ4vvBN,CoJtwvBE,mBAUI,kBpJgwvBN,CoJ1wvBE,qBAUI,mBpJowvBN,CoJ9wvBE,mBAUI,iBpJwwvBN,CoJlxvBE,qBAUI,oBpJ4wvBN,CoJtxvBE,mBAUI,mBpJgxvBN,CoJ1xvBE,eAUI,gBpJoxvBN,CoJ9xvBE,eAUI,kBpJwxvBN,CoJlyvBE,eAUI,gBpJ4xvBN,CoJtyvBE,eAUI,kBpJgyvBN,CoJ1yvBE,eAUI,gBpJoyvBN,CoJ9yvBE,eAUI,kBpJwyvBN,CoJlzvBE,gBAUI,gBpJ4yvBN,CoJtzvBE,gBAUI,kBpJgzvBN,CoJ1zvBE,mBAUI,iBpJozvBN,CoJ9zvBE,mBAUI,mBpJwzvBN,CoJl0vBE,mBAUI,iBpJ4zvBN,CoJt0vBE,mBAUI,mBpJg0vBN,CoJ10vBE,mBAUI,iBpJo0vBN,CoJ90vBE,mBAUI,mBpJw0vBN,CoJl1vBE,oBAUI,iBpJ40vBN,CoJt1vBE,oBAUI,mBpJg1vBN,CoJ11vBE,gBAUI,wBpJo1vBN,CoJ91vBE,mBAUI,mBpJw1vBN,CoJl2vBE,gBAUI,wBpJ41vBN,CoJt2vBE,mBAUI,mBpJg2vBN,CoJ12vBE,SAUI,OpJo2vBN,CoJ92vBE,SAUI,OpJw2vBN,CoJl3vBE,QAUI,UpJ42vBN,CoJt3vBE,OAUI,SpJg3vBN,CoJ13vBE,SAUI,UpJo3vBN,CoJ93vBE,OAUI,QpJw3vBN,CoJl4vBE,SAUI,WpJ43vBN,CoJt4vBE,OAUI,UpJg4vBN,CoJ14vBE,aAUI,QpJo4vBN,CoJ94vBE,aAUI,QpJw4vBN,CoJl5vBE,YAUI,WpJ44vBN,CoJt5vBE,WAUI,UpJg5vBN,CoJ15vBE,aAUI,WpJo5vBN,CoJ95vBE,WAUI,SpJw5vBN,CoJl6vBE,aAUI,YpJ45vBN,CoJt6vBE,WAUI,WpJg6vBN,CoJ16vBE,OAUI,KpJo6vBN,CoJ96vBE,UAUI,QpJw6vBN,CoJl7vBE,UAUI,QpJ46vBN,CoJt7vBE,eAUI,uBpJg7vBN,CoJ17vBE,aAUI,qBpJo7vBN,CoJ97vBE,aAUI,qBpJw7vBN,CoJl8vBE,UAUI,kBpJ47vBN,CoJt8vBE,YAUI,oBpJg8vBN,CoJ18vBE,cAUI,0BpJo8vBN,CoJ98vBE,WAUI,uBpJw8vBN,CoJl9vBE,UAUI,kBpJ48vBN,CoJt9vBE,UAUI,epJg9vBN,CoJ19vBE,eAUI,oBpJo9vBN,CoJ99vBE,eAUI,oBpJw9vBN,CoJl+vBE,WAUI,kBpJ49vBN,CoJt+vBE,cAUI,kBpJg+vBN,CoJ1+vBE,WAUI,SpJo+vBN,CoJ9+vBE,WAUI,SpJw+vBN,CoJl/vBE,UAUI,YpJ4+vBN,CoJt/vBE,SAUI,WpJg/vBN,CoJ1/vBE,WAUI,YpJo/vBN,CoJ9/vBE,SAUI,UpJw/vBN,CoJlgwBE,WAUI,apJ4/vBN,CoJtgwBE,SAUI,YpJggwBN,CoJ1gwBE,SAUI,UpJogwBN,CoJ9gwBE,SAUI,YpJwgwBN,CoJlhwBE,SAUI,UpJ4gwBN,CoJthwBE,SAUI,YpJghwBN,CoJ1hwBE,SAUI,UpJohwBN,CoJ9hwBE,SAUI,YpJwhwBN,CoJliwBE,UAUI,UpJ4hwBN,CoJtiwBE,UAUI,YpJgiwBN,CoJ1iwBE,YAUI,WpJoiwBN,CoJ9iwBE,eAUI,WpJwiwBN,CoJljwBE,cAUI,WpJ4iwBN,CoJtjwBE,iBAUI,WpJgjwBN,CoJ1jwBE,cAUI,WpJojwBN,CoJ9jwBE,iBAUI,WpJwjwBN,CoJlkwBE,eAUI,WpJ4jwBN,CoJtkwBE,kBAUI,WpJgkwBN,CoJ1kwBE,kBAUI,apJokwBN,CoJ9kwBE,SAUI,OpJwkwBN,CoJllwBE,YAUI,UpJ4kwBN,CoJtlwBE,YAUI,UpJglwBN,CoJ1lwBE,QAUI,YpJolwBN,CoJ9lwBE,UAUI,YpJwlwBN,CoJlmwBE,OAUI,apJ4lwBN,CoJtmwBE,KAUI,SpJgmwBN,CoJ1mwBE,OAUI,WpJomwBN,CoJ9mwBE,OAUI,WpJwmwBN,CoJlnwBE,OAUI,WpJ4mwBN,CoJtnwBE,OAUI,WpJgnwBN,CoJ1nwBE,OAUI,WpJonwBN,C+BzrwBI,gCqH2DF,2DAUI,gBpJynwBJ,CoJnowBA,+DAUI,oBAAA,CAAA,uBpJgowBJ,CoJ1owBA,+DAUI,qBAAA,CAAA,sBpJwowBJ,CoJlpwBA,mEAUI,oBpJ+owBJ,CoJzpwBA,uEAUI,sBpJqpwBJ,CoJ/pwBA,yEAUI,uBpJ2pwBJ,CoJrqwBA,qEAUI,qBpJiqwBJ,CoJ3qwBA,2DAUI,gBpJuqwBJ,CoJjrwBA,+DAUI,oBAAA,CAAA,uBpJ8qwBJ,CoJxrwBA,+DAUI,qBAAA,CAAA,sBpJsrwBJ,CoJhswBA,mEAUI,oBpJ6rwBJ,CoJvswBA,uEAUI,sBpJmswBJ,CoJ7swBA,yEAUI,uBpJyswBJ,CoJntwBA,qEAUI,qBpJ+swBJ,CoJztwBA,yDAUI,mBpJqtwBJ,CoJ/twBA,6DAUI,uBAAA,CAAA,0BpJ4twBJ,CoJtuwBA,6DAUI,wBAAA,CAAA,yBpJouwBJ,CoJ9uwBA,iEAUI,uBpJ2uwBJ,CoJrvwBA,qEAUI,yBpJivwBJ,CoJ3vwBA,uEAUI,0BpJuvwBJ,CoJjwwBA,mEAUI,wBpJ6vwBJ,CoJvwwBA,uDAUI,kBpJmwwBJ,CoJ7wwBA,2DAUI,sBAAA,CAAA,yBpJ0wwBJ,CoJpxwBA,2DAUI,uBAAA,CAAA,wBpJkxwBJ,CoJ5xwBA,+DAUI,sBpJyxwBJ,CoJnywBA,mEAUI,wBpJ+xwBJ,CoJzywBA,qEAUI,yBpJqywBJ,CoJ/ywBA,iEAUI,uBpJ2ywBJ,CoJrzwBA,2DAUI,mBpJizwBJ,CoJ3zwBA,+DAUI,uBAAA,CAAA,0BpJwzwBJ,CoJl0wBA,+DAUI,wBAAA,CAAA,yBpJg0wBJ,CoJ10wBA,mEAUI,uBpJu0wBJ,CoJj1wBA,uEAUI,yBpJ60wBJ,CoJv1wBA,yEAUI,0BpJm1wBJ,CoJ71wBA,qEAUI,wBpJy1wBJ,CoJn2wBA,uDAUI,iBpJ+1wBJ,CoJz2wBA,2DAUI,qBAAA,CAAA,wBpJs2wBJ,CoJh3wBA,2DAUI,sBAAA,CAAA,uBpJ82wBJ,CoJx3wBA,+DAUI,qBpJq3wBJ,CoJ/3wBA,mEAUI,uBpJ23wBJ,CoJr4wBA,qEAUI,wBpJi4wBJ,CoJ34wBA,iEAUI,sBpJu4wBJ,CoJj5wBA,2DAUI,oBpJ64wBJ,CoJv5wBA,+DAUI,wBAAA,CAAA,2BpJo5wBJ,CoJ95wBA,+DAUI,yBAAA,CAAA,0BpJ45wBJ,CoJt6wBA,mEAUI,wBpJm6wBJ,CoJ76wBA,uEAUI,0BpJy6wBJ,CoJn7wBA,yEAUI,2BpJ+6wBJ,CoJz7wBA,qEAUI,yBpJq7wBJ,CoJ/7wBA,uDAUI,mBpJ27wBJ,CoJr8wBA,2DAUI,uBAAA,CAAA,0BpJk8wBJ,CoJ58wBA,2DAUI,wBAAA,CAAA,yBpJ08wBJ,CoJp9wBA,+DAUI,uBpJi9wBJ,CoJ39wBA,mEAUI,yBpJu9wBJ,CoJj+wBA,qEAUI,0BpJ69wBJ,CoJv+wBA,iEAUI,wBpJm+wBJ,CoJ7+wBA,uDAUI,cpJy+wBJ,CoJn/wBA,2DAUI,kBAAA,CAAA,qBpJg/wBJ,CoJ1/wBA,2DAUI,mBAAA,CAAA,oBpJw/wBJ,CoJlgxBA,+DAUI,kBpJ+/wBJ,CoJzgxBA,mEAUI,oBpJqgxBJ,CoJ/gxBA,qEAUI,qBpJ2gxBJ,CoJrhxBA,iEAUI,mBpJihxBJ,CoJ3hxBA,mDAUI,gBpJuhxBJ,CoJjixBA,uDAUI,oBAAA,CAAA,uBpJ8hxBJ,CoJxixBA,uDAUI,qBAAA,CAAA,sBpJsixBJ,CoJhjxBA,2DAUI,oBpJ6ixBJ,CoJvjxBA,+DAUI,sBpJmjxBJ,CoJ7jxBA,iEAUI,uBpJyjxBJ,CoJnkxBA,6DAUI,qBpJ+jxBJ,CoJzkxBA,2EAUI,wBpJqkxBJ,CoJ/kxBA,+DAUI,iBpJ2kxBJ,CoJrlxBA,+DAUI,iBpJilxBJ,CoJ3lxBA,2DAUI,oBpJulxBJ,CoJjmxBA,iEAUI,oBpJ6lxBJ,CoJvmxBA,6DAUI,oBpJmmxBJ,CoJ7mxBA,iEAUI,oBpJymxBJ,CoJnnxBA,+DAUI,oBpJ+mxBJ,CoJznxBA,6DAUI,oBpJqnxBJ,CoJ/nxBA,6DAUI,oBpJ2nxBJ,CoJroxBA,6DAUI,oBpJioxBJ,CoJ3oxBA,iEAUI,oBpJuoxBJ,CoJjpxBA,iEAUI,oBpJ6oxBJ,CoJvpxBA,mEAUI,oBpJmpxBJ,CoJ7pxBA,iEAUI,oBpJypxBJ,CoJnqxBA,mEAUI,oBpJ+pxBJ,CoJzqxBA,mEAUI,oBpJqqxBJ,CoJ/qxBA,mEAUI,oBpJ2qxBJ,CoJrrxBA,mEAUI,oBpJirxBJ,CoJ3rxBA,mEAUI,oBpJurxBJ,CoJjsxBA,+EAUI,oBpJ6rxBJ,CoJvsxBA,6EAUI,oBpJmsxBJ,CoJ7sxBA,yEAUI,oBpJysxBJ,CoJntxBA,6DAUI,oBpJ+sxBJ,CoJztxBA,uEAUI,oBpJqtxBJ,CoJ/txBA,2EAUI,oBpJ2txBJ,CoJruxBA,wIAUI,oBpJiuxBJ,CoJ3uxBA,mFAUI,oBpJ6uxBJ,CoJvvxBA,+EAUI,oBpJmvxBJ,CoJ7vxBA,mEAUI,oBpJyvxBJ,CoJnwxBA,+EAUI,oBpJ+vxBJ,CoJzwxBA,6EAUI,oBpJqwxBJ,CoJ/wxBA,iFAUI,oBpJ2wxBJ,CoJrxxBA,uFAUI,oBpJixxBJ,CoJ3xxBA,mFAUI,oBpJuxxBJ,CoJjyxBA,uEAUI,oBpJ6xxBJ,CoJvyxBA,mFAUI,oBpJmyxBJ,CoJ7yxBA,iFAUI,oBpJyyxBJ,CoJnzxBA,qFAUI,oBpJ+yxBJ,CoJzzxBA,yFAUI,oBpJqzxBJ,CoJ/zxBA,qFAUI,oBpJ2zxBJ,CoJr0xBA,2EAUI,oBpJi0xBJ,CoJ30xBA,uFAUI,oBpJu0xBJ,CoJj1xBA,2FAUI,oBpJ60xBJ,CoJv1xBA,yFAUI,oBpJm1xBJ,CoJ71xBA,qFAUI,oBpJy1xBJ,CoJn2xBA,2EAUI,oBpJ+1xBJ,CoJz2xBA,uFAUI,oBpJq2xBJ,CoJ/2xBA,2FAUI,oBpJ22xBJ,CoJr3xBA,+EAUI,oBpJi3xBJ,CoJ33xBA,2EAUI,oBpJu3xBJ,CoJj4xBA,+DAUI,oBpJ63xBJ,CoJv4xBA,yEAUI,oBpJm4xBJ,CoJ74xBA,6EAUI,oBpJy4xBJ,CoJn5xBA,mFAUI,oBpJ+4xBJ,CoJz5xBA,+EAUI,oBpJq5xBJ,CoJ/5xBA,mEAUI,oBpJ25xBJ,CoJr6xBA,6EAUI,oBpJi6xBJ,CoJ36xBA,iFAUI,oBpJu6xBJ,CoJj7xBA,mFAUI,oBpJ66xBJ,CoJv7xBA,+EAUI,oBpJm7xBJ,CoJ77xBA,mEAUI,oBpJy7xBJ,CoJn8xBA,6EAUI,oBpJ+7xBJ,CoJz8xBA,iFAUI,oBpJq8xBJ,CoJ/8xBA,6EAUI,oBpJ28xBJ,CoJr9xBA,yEAUI,oBpJi9xBJ,CoJ39xBA,6DAUI,oBpJu9xBJ,CoJj+xBA,uEAUI,oBpJ69xBJ,CoJv+xBA,2EAUI,oBpJm+xBJ,CoJ7+xBA,qFAUI,oBpJy+xBJ,CoJn/xBA,iFAUI,oBpJ++xBJ,CoJz/xBA,qEAUI,oBpJq/xBJ,CoJ//xBA,+EAUI,oBpJ2/xBJ,CoJrgyBA,mFAUI,oBpJigyBJ,CoJ3gyBA,uEAUI,oBpJugyBJ,CoJjhyBA,iFAUI,oBpJ6gyBJ,CoJvhyBA,qBAUI,epJmhyBJ,CoJ7hyBA,yBAUI,wBAAA,CAAA,yBpJuhyBJ,CoJjiyBA,2BAUI,yBAAA,CAAA,4BpJ2hyBJ,CoJriyBA,4BAUI,2BAAA,CAAA,4BpJ+hyBJ,CoJziyBA,0BAUI,wBAAA,CAAA,2BpJmiyBJ,CoJ7iyBA,sBAUI,iBpJsiyBJ,CoJhjyBA,0BAUI,0BAAA,CAAA,2BpJ0iyBJ,CoJpjyBA,4BAUI,2BAAA,CAAA,8BpJ8iyBJ,CoJxjyBA,6BAUI,6BAAA,CAAA,8BpJkjyBJ,CoJ5jyBA,2BAUI,0BAAA,CAAA,6BpJsjyBJ,CoJhkyBA,sBAUI,oBpJyjyBJ,CoJnkyBA,0BAUI,6BAAA,CAAA,8BpJ6jyBJ,CoJvkyBA,4BAUI,8BAAA,CAAA,iCpJikyBJ,CoJ3kyBA,6BAUI,gCAAA,CAAA,iCpJqkyBJ,CoJ/kyBA,2BAUI,6BAAA,CAAA,gCpJykyBJ,CoJnlyBA,sBAUI,mBpJ4kyBJ,CoJtlyBA,0BAUI,4BAAA,CAAA,6BpJglyBJ,CoJ1lyBA,4BAUI,6BAAA,CAAA,gCpJolyBJ,CoJ9lyBA,6BAUI,+BAAA,CAAA,gCpJwlyBJ,CoJlmyBA,2BAUI,4BAAA,CAAA,+BpJ4lyBJ,CoJtmyBA,wBAUI,mBpJ+lyBJ,CoJzmyBA,4BAUI,4BAAA,CAAA,6BpJmmyBJ,CoJ7myBA,8BAUI,6BAAA,CAAA,gCpJumyBJ,CoJjnyBA,+BAUI,+BAAA,CAAA,gCpJ2myBJ,CoJrnyBA,6BAUI,4BAAA,CAAA,+BpJ+myBJ,CoJznyBA,0BAUI,apJknyBJ,CoJ5nyBA,yBAUI,YpJqnyBJ,CoJ/nyBA,yBAUI,YpJwnyBJ,CoJloyBA,2BAUI,cpJ2nyBJ,CoJroyBA,iCAUI,oBpJ8nyBJ,CoJxoyBA,gCAUI,mBpJioyBJ,CoJ3oyBA,0BAUI,apJooyBJ,CoJ9oyBA,+BAUI,kBpJuoyBJ,CoJjpyBA,8BAUI,iBpJ0oyBJ,CoJppyBA,0BAUI,gBpJ6oyBJ,CoJvpyBA,0BAUI,gBpJgpyBJ,CoJ1pyBA,yBAUI,gBpJmpyBJ,CoJ7pyBA,yBAUI,gBpJspyBJ,CoJhqyBA,yBAUI,iBpJypyBJ,CoJnqyBA,yBAUI,iBpJ4pyBJ,CoJtqyBA,yBAUI,iBpJ+pyBJ,CoJzqyBA,0BAUI,iBpJkqyBJ,CoJ5qyBA,0BAUI,iBpJqqyBJ,CoJ/qyBA,0BAUI,gBpJwqyBJ,CoJlryBA,0BAUI,gBpJ2qyBJ,CoJrryBA,yBAUI,cpJ8qyBJ,CoJxryBA,yBAUI,iBpJiryBJ,CoJ3ryBA,yBAUI,iBpJoryBJ,CoJ9ryBA,yBAUI,iBpJuryBJ,CoJjsyBA,yBAUI,iBpJ0ryBJ,CoJpsyBA,0BAUI,iBpJ6ryBJ,CoJvsyBA,0BAUI,iBpJgsyBJ,CoJ1syBA,2BAUI,gBpJmsyBJ,CoJ7syBA,2BAUI,gBpJssyBJ,CoJhtyBA,0BAUI,gBpJysyBJ,CoJntyBA,0BAUI,gBpJ4syBJ,CoJttyBA,0BAUI,iBpJ+syBJ,CoJztyBA,0BAUI,iBpJktyBJ,CoJ5tyBA,0BAUI,iBpJqtyBJ,CoJ/tyBA,2BAUI,iBpJwtyBJ,CoJluyBA,2BAUI,iBpJ2tyBJ,CoJruyBA,6BAUI,gBpJ8tyBJ,CoJxuyBA,6BAUI,gBpJiuyBJ,CoJ3uyBA,4BAUI,gBpJouyBJ,CoJ9uyBA,4BAUI,gBpJuuyBJ,CoJjvyBA,4BAUI,iBpJ0uyBJ,CoJpvyBA,4BAUI,iBpJ6uyBJ,CoJvvyBA,4BAUI,iBpJgvyBJ,CoJ1vyBA,6BAUI,iBpJmvyBJ,CoJ7vyBA,6BAUI,iBpJsvyBJ,CoJhwyBA,0BAUI,gBpJyvyBJ,CoJnwyBA,0BAUI,gBpJ4vyBJ,CoJtwyBA,yBAUI,cpJ+vyBJ,CoJzwyBA,yBAUI,iBpJkwyBJ,CoJ5wyBA,yBAUI,iBpJqwyBJ,CoJ/wyBA,yBAUI,iBpJwwyBJ,CoJlxyBA,yBAUI,iBpJ2wyBJ,CoJrxyBA,0BAUI,iBpJ8wyBJ,CoJxxyBA,0BAUI,iBpJixyBJ,CoJ3xyBA,0BAUI,gBpJoxyBJ,CoJ9xyBA,0BAUI,gBpJuxyBJ,CoJjyyBA,yBAUI,gBpJ0xyBJ,CoJpyyBA,yBAUI,gBpJ6xyBJ,CoJvyyBA,yBAUI,iBpJgyyBJ,CoJ1yyBA,yBAUI,iBpJmyyBJ,CoJ7yyBA,yBAUI,iBpJsyyBJ,CoJhzyBA,0BAUI,iBpJyyyBJ,CoJnzyBA,0BAUI,iBpJ4yyBJ,CoJtzyBA,yBAUI,gBpJ+yyBJ,CoJzzyBA,yBAUI,gBpJkzyBJ,CoJ5zyBA,wBAUI,gBpJqzyBJ,CoJ/zyBA,wBAUI,gBpJwzyBJ,CoJl0yBA,wBAUI,iBpJ2zyBJ,CoJr0yBA,wBAUI,iBpJ8zyBJ,CoJx0yBA,wBAUI,iBpJi0yBJ,CoJ30yBA,yBAUI,iBpJo0yBJ,CoJ90yBA,yBAUI,iBpJu0yBJ,CoJj1yBA,wBAUI,gBpJ00yBJ,CoJp1yBA,wBAUI,gBpJ60yBJ,CoJv1yBA,uBAUI,cpJg1yBJ,CoJ11yBA,uBAUI,iBpJm1yBJ,CoJ71yBA,uBAUI,iBpJs1yBJ,CoJh2yBA,uBAUI,iBpJy1yBJ,CoJn2yBA,uBAUI,iBpJ41yBJ,CoJt2yBA,wBAUI,iBpJ+1yBJ,CoJz2yBA,wBAUI,iBpJk2yBJ,CoJ52yBA,uBAUI,epJq2yBJ,CoJ/2yBA,wBAUI,epJw2yBJ,CoJl3yBA,sBAUI,epJ22yBJ,CoJr3yBA,gCAUI,sBpJ82yBJ,CoJx3yBA,+BAUI,0BpJi3yBJ,CoJ33yBA,6BAUI,wBpJo3yBJ,CoJ93yBA,yBAUI,6BpJu3yBJ,CoJj4yBA,+BAUI,cpJ03yBJ,CoJp4yBA,+BAUI,epJ63yBJ,CoJv4yBA,+BAUI,epJg4yBJ,CoJ14yBA,+BAUI,epJm4yBJ,CoJ74yBA,+BAUI,epJs4yBJ,CoJh5yBA,+BAUI,epJy4yBJ,CoJn5yBA,gCAUI,apJ44yBJ,CoJt5yBA,gCAUI,epJ+4yBJ,CoJz5yBA,gCAUI,epJk5yBJ,CoJ55yBA,gCAUI,epJq5yBJ,CoJ/5yBA,gCAUI,epJw5yBJ,CoJl6yBA,gCAUI,epJ25yBJ,CoJr6yBA,+BAUI,apJ85yBJ,CoJx6yBA,+BAUI,epJi6yBJ,CoJ36yBA,+BAUI,epJo6yBJ,CoJ96yBA,+BAUI,epJu6yBJ,CoJj7yBA,+BAUI,epJ06yBJ,CoJp7yBA,+BAUI,epJ66yBJ,CoJv7yBA,kCAUI,apJg7yBJ,CoJ17yBA,kCAUI,epJm7yBJ,CoJ77yBA,kCAUI,epJs7yBJ,CoJh8yBA,kCAUI,epJy7yBJ,CoJn8yBA,kCAUI,epJ47yBJ,CoJt8yBA,kCAUI,epJ+7yBJ,CoJz8yBA,6BAUI,cpJk8yBJ,CoJ58yBA,6BAUI,epJq8yBJ,CoJ/8yBA,6BAUI,epJw8yBJ,CoJl9yBA,6BAUI,epJ28yBJ,CoJr9yBA,6BAUI,epJ88yBJ,CoJx9yBA,6BAUI,epJi9yBJ,CoJ39yBA,+BAUI,cpJo9yBJ,CoJ99yBA,+BAUI,epJu9yBJ,CoJj+yBA,+BAUI,epJ09yBJ,CoJp+yBA,+BAUI,epJ69yBJ,CoJv+yBA,+BAUI,epJg+yBJ,CoJ1+yBA,+BAUI,epJm+yBJ,CoJ7+yBA,+BAUI,apJs+yBJ,CoJh/yBA,+BAUI,epJy+yBJ,CoJn/yBA,+BAUI,epJ4+yBJ,CoJt/yBA,+BAUI,epJ++yBJ,CoJz/yBA,+BAUI,epJk/yBJ,CoJ5/yBA,+BAUI,epJq/yBJ,CoJ//yBA,8BAUI,apJw/yBJ,CoJlgzBA,8BAUI,epJ2/yBJ,CoJrgzBA,8BAUI,epJ8/yBJ,CoJxgzBA,8BAUI,epJigzBJ,CoJ3gzBA,8BAUI,epJogzBJ,CoJ9gzBA,8BAUI,epJugzBJ,CoJjhzBA,2BAUI,WpJ0gzBJ,CoJphzBA,2BAUI,WpJ6gzBJ,CoJvhzBA,0BAUI,cpJghzBJ,CoJ1hzBA,yBAUI,apJmhzBJ,CoJ7hzBA,2BAUI,cpJshzBJ,CoJhizBA,yBAUI,YpJyhzBJ,CoJnizBA,2BAUI,epJ4hzBJ,CoJtizBA,yBAUI,cpJ+hzBJ,CoJzizBA,uBAUI,UpJkizBJ,CoJ5izBA,uBAUI,UpJqizBJ,CoJ/izBA,sBAUI,apJwizBJ,CoJljzBA,qBAUI,YpJ2izBJ,CoJrjzBA,uBAUI,apJ8izBJ,CoJxjzBA,qBAUI,WpJijzBJ,CoJ3jzBA,uBAUI,cpJojzBJ,CoJ9jzBA,qBAUI,apJujzBJ,CoJjkzBA,yBAUI,YpJ0jzBJ,CoJpkzBA,yBAUI,cpJ6jzBJ,CoJvkzBA,yBAUI,YpJgkzBJ,CoJ1kzBA,yBAUI,cpJmkzBJ,CoJ7kzBA,yBAUI,YpJskzBJ,CoJhlzBA,yBAUI,cpJykzBJ,CoJnlzBA,0BAUI,YpJ4kzBJ,CoJtlzBA,0BAUI,cpJ+kzBJ,CoJzlzBA,qBAUI,WpJklzBJ,CoJ5lzBA,qBAUI,apJqlzBJ,CoJ/lzBA,qBAUI,WpJwlzBJ,CoJlmzBA,qBAUI,apJ2lzBJ,CoJrmzBA,qBAUI,WpJ8lzBJ,CoJxmzBA,qBAUI,apJimzBJ,CoJ3mzBA,sBAUI,WpJomzBJ,CoJ9mzBA,sBAUI,apJumzBJ,CoJjnzBA,wBAUI,WpJ0mzBJ,CoJpnzBA,uBAUI,UpJ6mzBJ,CoJvnzBA,yBAUI,YpJgnzBJ,CoJ1nzBA,uBAUI,UpJmnzBJ,CoJ7nzBA,qBAUI,QpJsnzBJ,CoJhozBA,yBAUI,cAAA,CAAA,iBpJ0nzBJ,CoJpozBA,2BAUI,cpJ6nzBJ,CoJvozBA,8BAUI,iBpJgozBJ,CoJ1ozBA,yBAUI,cAAA,CAAA,iBpJoozBJ,CoJ9ozBA,2BAUI,cpJuozBJ,CoJjpzBA,8BAUI,iBpJ0ozBJ,CoJppzBA,wBAUI,iBAAA,CAAA,oBpJ8ozBJ,CoJxpzBA,0BAUI,iBpJipzBJ,CoJ3pzBA,6BAUI,oBpJopzBJ,CoJ9pzBA,uBAUI,gBAAA,CAAA,mBpJwpzBJ,CoJlqzBA,yBAUI,gBpJ2pzBJ,CoJrqzBA,4BAUI,mBpJ8pzBJ,CoJxqzBA,yBAUI,iBAAA,CAAA,oBpJkqzBJ,CoJ5qzBA,2BAUI,iBpJqqzBJ,CoJ/qzBA,8BAUI,oBpJwqzBJ,CoJlrzBA,uBAUI,eAAA,CAAA,kBpJ4qzBJ,CoJtrzBA,yBAUI,epJ+qzBJ,CoJzrzBA,4BAUI,kBpJkrzBJ,CoJ5rzBA,yBAUI,kBAAA,CAAA,qBpJsrzBJ,CoJhszBA,2BAUI,kBpJyrzBJ,CoJnszBA,8BAUI,qBpJ4rzBJ,CoJtszBA,uBAUI,iBAAA,CAAA,oBpJgszBJ,CoJ1szBA,yBAUI,iBpJmszBJ,CoJ7szBA,4BAUI,oBpJsszBJ,CoJhtzBA,6BAUI,eAAA,CAAA,kBpJ0szBJ,CoJptzBA,+BAUI,epJ6szBJ,CoJvtzBA,kCAUI,kBpJgtzBJ,CoJ1tzBA,6BAUI,eAAA,CAAA,kBpJotzBJ,CoJ9tzBA,+BAUI,epJutzBJ,CoJjuzBA,kCAUI,kBpJ0tzBJ,CoJpuzBA,4BAUI,kBAAA,CAAA,qBpJ8tzBJ,CoJxuzBA,8BAUI,kBpJiuzBJ,CoJ3uzBA,iCAUI,qBpJouzBJ,CoJ9uzBA,2BAUI,iBAAA,CAAA,oBpJwuzBJ,CoJlvzBA,6BAUI,iBpJ2uzBJ,CoJrvzBA,gCAUI,oBpJ8uzBJ,CoJxvzBA,6BAUI,kBAAA,CAAA,qBpJkvzBJ,CoJ5vzBA,+BAUI,kBpJqvzBJ,CoJ/vzBA,kCAUI,qBpJwvzBJ,CoJlwzBA,2BAUI,gBAAA,CAAA,mBpJ4vzBJ,CoJtwzBA,6BAUI,gBpJ+vzBJ,CoJzwzBA,gCAUI,mBpJkwzBJ,CoJ5wzBA,6BAUI,mBAAA,CAAA,sBpJswzBJ,CoJhxzBA,+BAUI,mBpJywzBJ,CoJnxzBA,kCAUI,sBpJ4wzBJ,CoJtxzBA,2BAUI,kBAAA,CAAA,qBpJgxzBJ,CoJ1xzBA,6BAUI,kBpJmxzBJ,CoJ7xzBA,gCAUI,qBpJsxzBJ,CoJhyzBA,2BAUI,gBAAA,CAAA,mBpJ0xzBJ,CoJpyzBA,6BAUI,gBpJ6xzBJ,CoJvyzBA,gCAUI,mBpJgyzBJ,CoJ1yzBA,2BAUI,kBAAA,CAAA,qBpJoyzBJ,CoJ9yzBA,6BAUI,kBpJuyzBJ,CoJjzzBA,gCAUI,qBpJ0yzBJ,CoJpzzBA,2BAUI,gBAAA,CAAA,mBpJ8yzBJ,CoJxzzBA,6BAUI,gBpJizzBJ,CoJ3zzBA,gCAUI,mBpJozzBJ,CoJ9zzBA,2BAUI,kBAAA,CAAA,qBpJwzzBJ,CoJl0zBA,6BAUI,kBpJ2zzBJ,CoJr0zBA,gCAUI,qBpJ8zzBJ,CoJx0zBA,2BAUI,gBAAA,CAAA,mBpJk0zBJ,CoJ50zBA,6BAUI,gBpJq0zBJ,CoJ/0zBA,gCAUI,mBpJw0zBJ,CoJl1zBA,2BAUI,kBAAA,CAAA,qBpJ40zBJ,CoJt1zBA,6BAUI,kBpJ+0zBJ,CoJz1zBA,gCAUI,qBpJk1zBJ,CoJ51zBA,4BAUI,gBAAA,CAAA,mBpJs1zBJ,CoJh2zBA,8BAUI,gBpJy1zBJ,CoJn2zBA,iCAUI,mBpJ41zBJ,CoJt2zBA,4BAUI,kBAAA,CAAA,qBpJg2zBJ,CoJ12zBA,8BAUI,kBpJm2zBJ,CoJ72zBA,iCAUI,qBpJs2zBJ,CoJh3zBA,uBAUI,eAAA,CAAA,kBpJ02zBJ,CoJp3zBA,yBAUI,epJ62zBJ,CoJv3zBA,4BAUI,kBpJg3zBJ,CoJ13zBA,uBAUI,iBAAA,CAAA,oBpJo3zBJ,CoJ93zBA,yBAUI,iBpJu3zBJ,CoJj4zBA,4BAUI,oBpJ03zBJ,CoJp4zBA,uBAUI,eAAA,CAAA,kBpJ83zBJ,CoJx4zBA,yBAUI,epJi4zBJ,CoJ34zBA,4BAUI,kBpJo4zBJ,CoJ94zBA,uBAUI,iBAAA,CAAA,oBpJw4zBJ,CoJl5zBA,yBAUI,iBpJ24zBJ,CoJr5zBA,4BAUI,oBpJ84zBJ,CoJx5zBA,uBAUI,eAAA,CAAA,kBpJk5zBJ,CoJ55zBA,yBAUI,epJq5zBJ,CoJ/5zBA,4BAUI,kBpJw5zBJ,CoJl6zBA,uBAUI,iBAAA,CAAA,oBpJ45zBJ,CoJt6zBA,yBAUI,iBpJ+5zBJ,CoJz6zBA,4BAUI,oBpJk6zBJ,CoJ56zBA,wBAUI,eAAA,CAAA,kBpJs6zBJ,CoJh7zBA,0BAUI,epJy6zBJ,CoJn7zBA,6BAUI,kBpJ46zBJ,CoJt7zBA,wBAUI,iBAAA,CAAA,oBpJg7zBJ,CoJ17zBA,0BAUI,iBpJm7zBJ,CoJ77zBA,6BAUI,oBpJs7zBJ,CoJh8zBA,0BAUI,eAAA,CAAA,kBpJ07zBJ,CoJp8zBA,4BAUI,epJ67zBJ,CoJv8zBA,+BAUI,kBpJg8zBJ,CoJ18zBA,yBAUI,cAAA,CAAA,iBpJo8zBJ,CoJ98zBA,2BAUI,cpJu8zBJ,CoJj9zBA,8BAUI,iBpJ08zBJ,CoJp9zBA,2BAUI,gBAAA,CAAA,mBpJ88zBJ,CoJx9zBA,6BAUI,gBpJi9zBJ,CoJ39zBA,gCAUI,mBpJo9zBJ,CoJ99zBA,yBAUI,cAAA,CAAA,iBpJw9zBJ,CoJl+zBA,2BAUI,cpJ29zBJ,CoJr+zBA,8BAUI,iBpJ89zBJ,CoJx+zBA,uBAUI,YAAA,CAAA,epJk+zBJ,CoJ5+zBA,yBAUI,YpJq+zBJ,CoJ/+zBA,4BAUI,epJw+zBJ,CoJl/zBA,0BAUI,eAAA,CAAA,kBpJ4+zBJ,CoJt/zBA,4BAUI,epJ++zBJ,CoJz/zBA,+BAUI,kBpJk/zBJ,CoJ5/zBA,yBAUI,eAAA,CAAA,gBpJs/zBJ,CoJhg0BA,6BAUI,gBpJy/zBJ,CoJng0BA,4BAUI,epJ4/zBJ,CoJtg0BA,yBAUI,eAAA,CAAA,gBpJgg0BJ,CoJ1g0BA,6BAUI,gBpJmg0BJ,CoJ7g0BA,4BAUI,epJsg0BJ,CoJhh0BA,wBAUI,kBAAA,CAAA,mBpJ0g0BJ,CoJph0BA,4BAUI,mBpJ6g0BJ,CoJvh0BA,2BAUI,kBpJgh0BJ,CoJ1h0BA,uBAUI,iBAAA,CAAA,kBpJoh0BJ,CoJ9h0BA,2BAUI,kBpJuh0BJ,CoJji0BA,0BAUI,iBpJ0h0BJ,CoJpi0BA,yBAUI,kBAAA,CAAA,mBpJ8h0BJ,CoJxi0BA,6BAUI,mBpJii0BJ,CoJ3i0BA,4BAUI,kBpJoi0BJ,CoJ9i0BA,uBAUI,gBAAA,CAAA,iBpJwi0BJ,CoJlj0BA,2BAUI,iBpJ2i0BJ,CoJrj0BA,0BAUI,gBpJ8i0BJ,CoJxj0BA,yBAUI,mBAAA,CAAA,oBpJkj0BJ,CoJ5j0BA,6BAUI,oBpJqj0BJ,CoJ/j0BA,4BAUI,mBpJwj0BJ,CoJlk0BA,uBAUI,kBAAA,CAAA,mBpJ4j0BJ,CoJtk0BA,2BAUI,mBpJ+j0BJ,CoJzk0BA,0BAUI,kBpJkk0BJ,CoJ5k0BA,6BAUI,gBAAA,CAAA,iBpJsk0BJ,CoJhl0BA,iCAUI,iBpJyk0BJ,CoJnl0BA,gCAUI,gBpJ4k0BJ,CoJtl0BA,6BAUI,gBAAA,CAAA,iBpJgl0BJ,CoJ1l0BA,iCAUI,iBpJml0BJ,CoJ7l0BA,gCAUI,gBpJsl0BJ,CoJhm0BA,4BAUI,mBAAA,CAAA,oBpJ0l0BJ,CoJpm0BA,gCAUI,oBpJ6l0BJ,CoJvm0BA,+BAUI,mBpJgm0BJ,CoJ1m0BA,2BAUI,kBAAA,CAAA,mBpJom0BJ,CoJ9m0BA,+BAUI,mBpJum0BJ,CoJjn0BA,8BAUI,kBpJ0m0BJ,CoJpn0BA,6BAUI,mBAAA,CAAA,oBpJ8m0BJ,CoJxn0BA,iCAUI,oBpJin0BJ,CoJ3n0BA,gCAUI,mBpJon0BJ,CoJ9n0BA,2BAUI,iBAAA,CAAA,kBpJwn0BJ,CoJlo0BA,+BAUI,kBpJ2n0BJ,CoJro0BA,8BAUI,iBpJ8n0BJ,CoJxo0BA,6BAUI,oBAAA,CAAA,qBpJko0BJ,CoJ5o0BA,iCAUI,qBpJqo0BJ,CoJ/o0BA,gCAUI,oBpJwo0BJ,CoJlp0BA,2BAUI,mBAAA,CAAA,oBpJ4o0BJ,CoJtp0BA,+BAUI,oBpJ+o0BJ,CoJzp0BA,8BAUI,mBpJkp0BJ,CoJ5p0BA,2BAUI,iBAAA,CAAA,kBpJsp0BJ,CoJhq0BA,+BAUI,kBpJyp0BJ,CoJnq0BA,8BAUI,iBpJ4p0BJ,CoJtq0BA,2BAUI,mBAAA,CAAA,oBpJgq0BJ,CoJ1q0BA,+BAUI,oBpJmq0BJ,CoJ7q0BA,8BAUI,mBpJsq0BJ,CoJhr0BA,2BAUI,iBAAA,CAAA,kBpJ0q0BJ,CoJpr0BA,+BAUI,kBpJ6q0BJ,CoJvr0BA,8BAUI,iBpJgr0BJ,CoJ1r0BA,2BAUI,mBAAA,CAAA,oBpJor0BJ,CoJ9r0BA,+BAUI,oBpJur0BJ,CoJjs0BA,8BAUI,mBpJ0r0BJ,CoJps0BA,2BAUI,iBAAA,CAAA,kBpJ8r0BJ,CoJxs0BA,+BAUI,kBpJis0BJ,CoJ3s0BA,8BAUI,iBpJos0BJ,CoJ9s0BA,2BAUI,mBAAA,CAAA,oBpJws0BJ,CoJlt0BA,+BAUI,oBpJ2s0BJ,CoJrt0BA,8BAUI,mBpJ8s0BJ,CoJxt0BA,4BAUI,iBAAA,CAAA,kBpJkt0BJ,CoJ5t0BA,gCAUI,kBpJqt0BJ,CoJ/t0BA,+BAUI,iBpJwt0BJ,CoJlu0BA,4BAUI,mBAAA,CAAA,oBpJ4t0BJ,CoJtu0BA,gCAUI,oBpJ+t0BJ,CoJzu0BA,+BAUI,mBpJku0BJ,CoJ5u0BA,uBAUI,gBAAA,CAAA,iBpJsu0BJ,CoJhv0BA,2BAUI,iBpJyu0BJ,CoJnv0BA,0BAUI,gBpJ4u0BJ,CoJtv0BA,uBAUI,kBAAA,CAAA,mBpJgv0BJ,CoJ1v0BA,2BAUI,mBpJmv0BJ,CoJ7v0BA,0BAUI,kBpJsv0BJ,CoJhw0BA,uBAUI,gBAAA,CAAA,iBpJ0v0BJ,CoJpw0BA,2BAUI,iBpJ6v0BJ,CoJvw0BA,0BAUI,gBpJgw0BJ,CoJ1w0BA,uBAUI,kBAAA,CAAA,mBpJow0BJ,CoJ9w0BA,2BAUI,mBpJuw0BJ,CoJjx0BA,0BAUI,kBpJ0w0BJ,CoJpx0BA,uBAUI,gBAAA,CAAA,iBpJ8w0BJ,CoJxx0BA,2BAUI,iBpJix0BJ,CoJ3x0BA,0BAUI,gBpJox0BJ,CoJ9x0BA,uBAUI,kBAAA,CAAA,mBpJwx0BJ,CoJly0BA,2BAUI,mBpJ2x0BJ,CoJry0BA,0BAUI,kBpJ8x0BJ,CoJxy0BA,wBAUI,gBAAA,CAAA,iBpJky0BJ,CoJ5y0BA,4BAUI,iBpJqy0BJ,CoJ/y0BA,2BAUI,gBpJwy0BJ,CoJlz0BA,wBAUI,kBAAA,CAAA,mBpJ4y0BJ,CoJtz0BA,4BAUI,mBpJ+y0BJ,CoJzz0BA,2BAUI,kBpJkz0BJ,CoJ5z0BA,0BAUI,iBAAA,CAAA,kBpJsz0BJ,CoJh00BA,8BAUI,kBpJyz0BJ,CoJn00BA,6BAUI,iBpJ4z0BJ,CoJt00BA,6BAUI,iBAAA,CAAA,kBpJg00BJ,CoJ100BA,iCAUI,kBpJm00BJ,CoJ700BA,gCAUI,iBpJs00BJ,CoJh10BA,4BAUI,iBAAA,CAAA,kBpJ000BJ,CoJp10BA,gCAUI,kBpJ600BJ,CoJv10BA,+BAUI,iBpJg10BJ,CoJ110BA,0BAUI,gBAAA,CAAA,iBpJo10BJ,CoJ910BA,8BAUI,iBpJu10BJ,CoJj20BA,6BAUI,gBpJ010BJ,CoJp20BA,yBAUI,eAAA,CAAA,gBpJ810BJ,CoJx20BA,6BAUI,gBpJi20BJ,CoJ320BA,4BAUI,epJo20BJ,CoJ920BA,2BAUI,iBAAA,CAAA,kBpJw20BJ,CoJl30BA,+BAUI,kBpJ220BJ,CoJr30BA,8BAUI,iBpJ820BJ,CoJx30BA,yBAUI,eAAA,CAAA,gBpJk30BJ,CoJ530BA,6BAUI,gBpJq30BJ,CoJ/30BA,4BAUI,epJw30BJ,CoJl40BA,uBAUI,aAAA,CAAA,cpJ430BJ,CoJt40BA,2BAUI,cpJ+30BJ,CoJz40BA,0BAUI,apJk40BJ,CoJ540BA,0BAUI,gBAAA,CAAA,iBpJs40BJ,CoJh50BA,8BAUI,iBpJy40BJ,CoJn50BA,6BAUI,gBpJ440BJ,CoJt50BA,sBAUI,cpJ+40BJ,CoJz50BA,sBAUI,cpJk50BJ,CoJ550BA,sBAUI,cpJq50BJ,CoJ/50BA,sBAUI,cpJw50BJ,CoJl60BA,sBAUI,cpJ250BJ,CoJr60BA,sBAUI,cpJ850BJ,CoJx60BA,yBAUI,cpJi60BJ,CoJ360BA,wBAUI,QpJo60BJ,CoJ960BA,uBAUI,SpJu60BJ,CoJj70BA,0BAUI,apJ060BJ,CoJp70BA,oBAUI,OpJ660BJ,CoJv70BA,oBAUI,OpJg70BJ,CoJ170BA,oBAUI,OpJm70BJ,CoJ770BA,oBAUI,OpJs70BJ,CoJh80BA,oBAUI,OpJy70BJ,CoJn80BA,oBAUI,OpJ470BJ,CoJt80BA,oBAUI,OpJ+70BJ,CoJz80BA,oBAUI,OpJk80BJ,CoJ580BA,oBAUI,OpJq80BJ,CoJ/80BA,oBAUI,OpJw80BJ,CoJl90BA,qBAUI,QpJ280BJ,CoJr90BA,qBAUI,QpJ880BJ,CoJx90BA,wBAUI,WpJi90BJ,CoJ390BA,0BAUI,eAAA,CAAA,kBpJq90BJ,CoJ/90BA,0BAUI,gBAAA,CAAA,iBpJy90BJ,CoJn+0BA,4BAUI,epJ490BJ,CoJt+0BA,8BAUI,iBpJ+90BJ,CoJz+0BA,+BAUI,kBpJk+0BJ,CoJ5+0BA,6BAUI,gBpJq+0BJ,CoJ/+0BA,wBAUI,WpJw+0BJ,CoJl/0BA,0BAUI,eAAA,CAAA,kBpJ4+0BJ,CoJt/0BA,0BAUI,gBAAA,CAAA,iBpJg/0BJ,CoJ1/0BA,4BAUI,epJm/0BJ,CoJ7/0BA,8BAUI,iBpJs/0BJ,CoJhg1BA,+BAUI,kBpJy/0BJ,CoJng1BA,6BAUI,gBpJ4/0BJ,CoJtg1BA,uBAUI,cpJ+/0BJ,CoJzg1BA,yBAUI,kBAAA,CAAA,qBpJmg1BJ,CoJ7g1BA,yBAUI,mBAAA,CAAA,oBpJug1BJ,CoJjh1BA,2BAUI,kBpJ0g1BJ,CoJph1BA,6BAUI,oBpJ6g1BJ,CoJvh1BA,8BAUI,qBpJgh1BJ,CoJ1h1BA,4BAUI,mBpJmh1BJ,CoJ7h1BA,sBAUI,apJsh1BJ,CoJhi1BA,wBAUI,iBAAA,CAAA,oBpJ0h1BJ,CoJpi1BA,wBAUI,kBAAA,CAAA,mBpJ8h1BJ,CoJxi1BA,0BAUI,iBpJii1BJ,CoJ3i1BA,4BAUI,mBpJoi1BJ,CoJ9i1BA,6BAUI,oBpJui1BJ,CoJjj1BA,2BAUI,kBpJ0i1BJ,CoJpj1BA,wBAUI,cpJ6i1BJ,CoJvj1BA,0BAUI,kBAAA,CAAA,qBpJij1BJ,CoJ3j1BA,0BAUI,mBAAA,CAAA,oBpJqj1BJ,CoJ/j1BA,4BAUI,kBpJwj1BJ,CoJlk1BA,8BAUI,oBpJ2j1BJ,CoJrk1BA,+BAUI,qBpJ8j1BJ,CoJxk1BA,6BAUI,mBpJik1BJ,CoJ3k1BA,sBAUI,YpJok1BJ,CoJ9k1BA,wBAUI,gBAAA,CAAA,mBpJwk1BJ,CoJll1BA,wBAUI,iBAAA,CAAA,kBpJ4k1BJ,CoJtl1BA,0BAUI,gBpJ+k1BJ,CoJzl1BA,4BAUI,kBpJkl1BJ,CoJ5l1BA,6BAUI,mBpJql1BJ,CoJ/l1BA,2BAUI,iBpJwl1BJ,CoJlm1BA,wBAUI,epJ2l1BJ,CoJrm1BA,0BAUI,mBAAA,CAAA,sBpJ+l1BJ,CoJzm1BA,0BAUI,oBAAA,CAAA,qBpJmm1BJ,CoJ7m1BA,4BAUI,mBpJsm1BJ,CoJhn1BA,8BAUI,qBpJym1BJ,CoJnn1BA,+BAUI,sBpJ4m1BJ,CoJtn1BA,6BAUI,oBpJ+m1BJ,CoJzn1BA,sBAUI,cpJkn1BJ,CoJ5n1BA,wBAUI,kBAAA,CAAA,qBpJsn1BJ,CoJho1BA,wBAUI,mBAAA,CAAA,oBpJ0n1BJ,CoJpo1BA,0BAUI,kBpJ6n1BJ,CoJvo1BA,4BAUI,oBpJgo1BJ,CoJ1o1BA,6BAUI,qBpJmo1BJ,CoJ7o1BA,2BAUI,mBpJso1BJ,CoJhp1BA,sBAUI,YpJyo1BJ,CoJnp1BA,wBAUI,gBAAA,CAAA,mBpJ6o1BJ,CoJvp1BA,wBAUI,iBAAA,CAAA,kBpJip1BJ,CoJ3p1BA,0BAUI,gBpJop1BJ,CoJ9p1BA,4BAUI,kBpJup1BJ,CoJjq1BA,6BAUI,mBpJ0p1BJ,CoJpq1BA,2BAUI,iBpJ6p1BJ,CoJvq1BA,sBAUI,cpJgq1BJ,CoJ1q1BA,wBAUI,kBAAA,CAAA,qBpJoq1BJ,CoJ9q1BA,wBAUI,mBAAA,CAAA,oBpJwq1BJ,CoJlr1BA,0BAUI,kBpJ2q1BJ,CoJrr1BA,4BAUI,oBpJ8q1BJ,CoJxr1BA,6BAUI,qBpJir1BJ,CoJ3r1BA,2BAUI,mBpJor1BJ,CoJ9r1BA,sBAUI,YpJur1BJ,CoJjs1BA,wBAUI,gBAAA,CAAA,mBpJ2r1BJ,CoJrs1BA,wBAUI,iBAAA,CAAA,kBpJ+r1BJ,CoJzs1BA,0BAUI,gBpJks1BJ,CoJ5s1BA,4BAUI,kBpJqs1BJ,CoJ/s1BA,6BAUI,mBpJws1BJ,CoJlt1BA,2BAUI,iBpJ2s1BJ,CoJrt1BA,sBAUI,cpJ8s1BJ,CoJxt1BA,wBAUI,kBAAA,CAAA,qBpJkt1BJ,CoJ5t1BA,wBAUI,mBAAA,CAAA,oBpJst1BJ,CoJhu1BA,0BAUI,kBpJyt1BJ,CoJnu1BA,4BAUI,oBpJ4t1BJ,CoJtu1BA,6BAUI,qBpJ+t1BJ,CoJzu1BA,2BAUI,mBpJku1BJ,CoJ5u1BA,sBAUI,YpJqu1BJ,CoJ/u1BA,wBAUI,gBAAA,CAAA,mBpJyu1BJ,CoJnv1BA,wBAUI,iBAAA,CAAA,kBpJ6u1BJ,CoJvv1BA,0BAUI,gBpJgv1BJ,CoJ1v1BA,4BAUI,kBpJmv1BJ,CoJ7v1BA,6BAUI,mBpJsv1BJ,CoJhw1BA,2BAUI,iBpJyv1BJ,CoJnw1BA,sBAUI,cpJ4v1BJ,CoJtw1BA,wBAUI,kBAAA,CAAA,qBpJgw1BJ,CoJ1w1BA,wBAUI,mBAAA,CAAA,oBpJow1BJ,CoJ9w1BA,0BAUI,kBpJuw1BJ,CoJjx1BA,4BAUI,oBpJ0w1BJ,CoJpx1BA,6BAUI,qBpJ6w1BJ,CoJvx1BA,2BAUI,mBpJgx1BJ,CoJ1x1BA,uBAUI,YpJmx1BJ,CoJ7x1BA,yBAUI,gBAAA,CAAA,mBpJux1BJ,CoJjy1BA,yBAUI,iBAAA,CAAA,kBpJ2x1BJ,CoJry1BA,2BAUI,gBpJ8x1BJ,CoJxy1BA,6BAUI,kBpJiy1BJ,CoJ3y1BA,8BAUI,mBpJoy1BJ,CoJ9y1BA,4BAUI,iBpJuy1BJ,CoJjz1BA,uBAUI,cpJ0y1BJ,CoJpz1BA,yBAUI,kBAAA,CAAA,qBpJ8y1BJ,CoJxz1BA,yBAUI,mBAAA,CAAA,oBpJkz1BJ,CoJ5z1BA,2BAUI,kBpJqz1BJ,CoJ/z1BA,6BAUI,oBpJwz1BJ,CoJl01BA,8BAUI,qBpJ2z1BJ,CoJr01BA,4BAUI,mBpJ8z1BJ,CoJx01BA,sBAUI,SpJi01BJ,CoJ301BA,wBAUI,aAAA,CAAA,gBpJq01BJ,CoJ/01BA,wBAUI,cAAA,CAAA,epJy01BJ,CoJn11BA,0BAUI,apJ401BJ,CoJt11BA,4BAUI,epJ+01BJ,CoJz11BA,6BAUI,gBpJk11BJ,CoJ511BA,2BAUI,cpJq11BJ,CoJ/11BA,sBAUI,SpJw11BJ,CoJl21BA,sBAUI,SpJ211BJ,CoJr21BA,qBAUI,YpJ811BJ,CoJx21BA,oBAUI,WpJi21BJ,CoJ321BA,sBAUI,YpJo21BJ,CoJ921BA,oBAUI,UpJu21BJ,CoJj31BA,sBAUI,apJ021BJ,CoJp31BA,oBAUI,YpJ621BJ,CoJv31BA,oBAUI,UpJg31BJ,CoJ131BA,oBAUI,YpJm31BJ,CoJ731BA,oBAUI,UpJs31BJ,CoJh41BA,oBAUI,YpJy31BJ,CoJn41BA,oBAUI,UpJ431BJ,CoJt41BA,oBAUI,YpJ+31BJ,CoJz41BA,qBAUI,UpJk41BJ,CoJ541BA,qBAUI,YpJq41BJ,CoJ/41BA,uBAUI,WpJw41BJ,CoJl51BA,0BAUI,WpJ241BJ,CoJr51BA,yBAUI,WpJ841BJ,CoJx51BA,4BAUI,WpJi51BJ,CoJ351BA,yBAUI,WpJo51BJ,CoJ951BA,4BAUI,WpJu51BJ,CoJj61BA,0BAUI,WpJ051BJ,CoJp61BA,6BAUI,WpJ651BJ,CoJv61BA,6BAUI,apJg61BJ,CoJ161BA,oBAUI,OpJm61BJ,CoJ761BA,uBAUI,UpJs61BJ,CoJh71BA,uBAUI,UpJy61BJ,CACF,C+B/+1BI,gCqH2DF,qDAUI,gBpJ861BJ,CoJx71BA,yDAUI,oBAAA,CAAA,uBpJq71BJ,CoJ/71BA,yDAUI,qBAAA,CAAA,sBpJ671BJ,CoJv81BA,6DAUI,oBpJo81BJ,CoJ981BA,iEAUI,sBpJ081BJ,CoJp91BA,mEAUI,uBpJg91BJ,CoJ191BA,+DAUI,qBpJs91BJ,CoJh+1BA,qDAUI,gBpJ491BJ,CoJt+1BA,yDAUI,oBAAA,CAAA,uBpJm+1BJ,CoJ7+1BA,yDAUI,qBAAA,CAAA,sBpJ2+1BJ,CoJr/1BA,6DAUI,oBpJk/1BJ,CoJ5/1BA,iEAUI,sBpJw/1BJ,CoJlg2BA,mEAUI,uBpJ8/1BJ,CoJxg2BA,+DAUI,qBpJog2BJ,CoJ9g2BA,mDAUI,mBpJ0g2BJ,CoJph2BA,uDAUI,uBAAA,CAAA,0BpJih2BJ,CoJ3h2BA,uDAUI,wBAAA,CAAA,yBpJyh2BJ,CoJni2BA,2DAUI,uBpJgi2BJ,CoJ1i2BA,+DAUI,yBpJsi2BJ,CoJhj2BA,iEAUI,0BpJ4i2BJ,CoJtj2BA,6DAUI,wBpJkj2BJ,CoJ5j2BA,iDAUI,kBpJwj2BJ,CoJlk2BA,qDAUI,sBAAA,CAAA,yBpJ+j2BJ,CoJzk2BA,qDAUI,uBAAA,CAAA,wBpJuk2BJ,CoJjl2BA,yDAUI,sBpJ8k2BJ,CoJxl2BA,6DAUI,wBpJol2BJ,CoJ9l2BA,+DAUI,yBpJ0l2BJ,CoJpm2BA,2DAUI,uBpJgm2BJ,CoJ1m2BA,qDAUI,mBpJsm2BJ,CoJhn2BA,yDAUI,uBAAA,CAAA,0BpJ6m2BJ,CoJvn2BA,yDAUI,wBAAA,CAAA,yBpJqn2BJ,CoJ/n2BA,6DAUI,uBpJ4n2BJ,CoJto2BA,iEAUI,yBpJko2BJ,CoJ5o2BA,mEAUI,0BpJwo2BJ,CoJlp2BA,+DAUI,wBpJ8o2BJ,CoJxp2BA,iDAUI,iBpJop2BJ,CoJ9p2BA,qDAUI,qBAAA,CAAA,wBpJ2p2BJ,CoJrq2BA,qDAUI,sBAAA,CAAA,uBpJmq2BJ,CoJ7q2BA,yDAUI,qBpJ0q2BJ,CoJpr2BA,6DAUI,uBpJgr2BJ,CoJ1r2BA,+DAUI,wBpJsr2BJ,CoJhs2BA,2DAUI,sBpJ4r2BJ,CoJts2BA,qDAUI,oBpJks2BJ,CoJ5s2BA,yDAUI,wBAAA,CAAA,2BpJys2BJ,CoJnt2BA,yDAUI,yBAAA,CAAA,0BpJit2BJ,CoJ3t2BA,6DAUI,wBpJwt2BJ,CoJlu2BA,iEAUI,0BpJ8t2BJ,CoJxu2BA,mEAUI,2BpJou2BJ,CoJ9u2BA,+DAUI,yBpJ0u2BJ,CoJpv2BA,iDAUI,mBpJgv2BJ,CoJ1v2BA,qDAUI,uBAAA,CAAA,0BpJuv2BJ,CoJjw2BA,qDAUI,wBAAA,CAAA,yBpJ+v2BJ,CoJzw2BA,yDAUI,uBpJsw2BJ,CoJhx2BA,6DAUI,yBpJ4w2BJ,CoJtx2BA,+DAUI,0BpJkx2BJ,CoJ5x2BA,2DAUI,wBpJwx2BJ,CoJly2BA,iDAUI,cpJ8x2BJ,CoJxy2BA,qDAUI,kBAAA,CAAA,qBpJqy2BJ,CoJ/y2BA,qDAUI,mBAAA,CAAA,oBpJ6y2BJ,CoJvz2BA,yDAUI,kBpJoz2BJ,CoJ9z2BA,6DAUI,oBpJ0z2BJ,CoJp02BA,+DAUI,qBpJg02BJ,CoJ102BA,2DAUI,mBpJs02BJ,CoJh12BA,6CAUI,gBpJ402BJ,CoJt12BA,iDAUI,oBAAA,CAAA,uBpJm12BJ,CoJ712BA,iDAUI,qBAAA,CAAA,sBpJ212BJ,CoJr22BA,qDAUI,oBpJk22BJ,CoJ522BA,yDAUI,sBpJw22BJ,CoJl32BA,2DAUI,uBpJ822BJ,CoJx32BA,uDAUI,qBpJo32BJ,CoJ932BA,qEAUI,wBpJ032BJ,CoJp42BA,yDAUI,iBpJg42BJ,CoJ142BA,yDAUI,iBpJs42BJ,CoJh52BA,qDAUI,oBpJ442BJ,CoJt52BA,2DAUI,oBpJk52BJ,CoJ552BA,uDAUI,oBpJw52BJ,CoJl62BA,2DAUI,oBpJ852BJ,CoJx62BA,yDAUI,oBpJo62BJ,CoJ962BA,uDAUI,oBpJ062BJ,CoJp72BA,uDAUI,oBpJg72BJ,CoJ172BA,uDAUI,oBpJs72BJ,CoJh82BA,2DAUI,oBpJ472BJ,CoJt82BA,2DAUI,oBpJk82BJ,CoJ582BA,6DAUI,oBpJw82BJ,CoJl92BA,2DAUI,oBpJ882BJ,CoJx92BA,6DAUI,oBpJo92BJ,CoJ992BA,6DAUI,oBpJ092BJ,CoJp+2BA,6DAUI,oBpJg+2BJ,CoJ1+2BA,6DAUI,oBpJs+2BJ,CoJh/2BA,6DAUI,oBpJ4+2BJ,CoJt/2BA,yEAUI,oBpJk/2BJ,CoJ5/2BA,uEAUI,oBpJw/2BJ,CoJlg3BA,mEAUI,oBpJ8/2BJ,CoJxg3BA,uDAUI,oBpJog3BJ,CoJ9g3BA,iEAUI,oBpJ0g3BJ,CoJph3BA,qEAUI,oBpJgh3BJ,CoJ1h3BA,4HAUI,oBpJsh3BJ,CoJhi3BA,6EAUI,oBpJki3BJ,CoJ5i3BA,yEAUI,oBpJwi3BJ,CoJlj3BA,6DAUI,oBpJ8i3BJ,CoJxj3BA,yEAUI,oBpJoj3BJ,CoJ9j3BA,uEAUI,oBpJ0j3BJ,CoJpk3BA,2EAUI,oBpJgk3BJ,CoJ1k3BA,iFAUI,oBpJsk3BJ,CoJhl3BA,6EAUI,oBpJ4k3BJ,CoJtl3BA,iEAUI,oBpJkl3BJ,CoJ5l3BA,6EAUI,oBpJwl3BJ,CoJlm3BA,2EAUI,oBpJ8l3BJ,CoJxm3BA,+EAUI,oBpJom3BJ,CoJ9m3BA,mFAUI,oBpJ0m3BJ,CoJpn3BA,+EAUI,oBpJgn3BJ,CoJ1n3BA,qEAUI,oBpJsn3BJ,CoJho3BA,iFAUI,oBpJ4n3BJ,CoJto3BA,qFAUI,oBpJko3BJ,CoJ5o3BA,mFAUI,oBpJwo3BJ,CoJlp3BA,+EAUI,oBpJ8o3BJ,CoJxp3BA,qEAUI,oBpJop3BJ,CoJ9p3BA,iFAUI,oBpJ0p3BJ,CoJpq3BA,qFAUI,oBpJgq3BJ,CoJ1q3BA,yEAUI,oBpJsq3BJ,CoJhr3BA,qEAUI,oBpJ4q3BJ,CoJtr3BA,yDAUI,oBpJkr3BJ,CoJ5r3BA,mEAUI,oBpJwr3BJ,CoJls3BA,uEAUI,oBpJ8r3BJ,CoJxs3BA,6EAUI,oBpJos3BJ,CoJ9s3BA,yEAUI,oBpJ0s3BJ,CoJpt3BA,6DAUI,oBpJgt3BJ,CoJ1t3BA,uEAUI,oBpJst3BJ,CoJhu3BA,2EAUI,oBpJ4t3BJ,CoJtu3BA,6EAUI,oBpJku3BJ,CoJ5u3BA,yEAUI,oBpJwu3BJ,CoJlv3BA,6DAUI,oBpJ8u3BJ,CoJxv3BA,uEAUI,oBpJov3BJ,CoJ9v3BA,2EAUI,oBpJ0v3BJ,CoJpw3BA,uEAUI,oBpJgw3BJ,CoJ1w3BA,mEAUI,oBpJsw3BJ,CoJhx3BA,uDAUI,oBpJ4w3BJ,CoJtx3BA,iEAUI,oBpJkx3BJ,CoJ5x3BA,qEAUI,oBpJwx3BJ,CoJly3BA,+EAUI,oBpJ8x3BJ,CoJxy3BA,2EAUI,oBpJoy3BJ,CoJ9y3BA,+DAUI,oBpJ0y3BJ,CoJpz3BA,yEAUI,oBpJgz3BJ,CoJ1z3BA,6EAUI,oBpJsz3BJ,CoJh03BA,iEAUI,oBpJ4z3BJ,CoJt03BA,2EAUI,oBpJk03BJ,CoJ503BA,kBAUI,epJw03BJ,CoJl13BA,sBAUI,wBAAA,CAAA,yBpJ403BJ,CoJt13BA,wBAUI,yBAAA,CAAA,4BpJg13BJ,CoJ113BA,yBAUI,2BAAA,CAAA,4BpJo13BJ,CoJ913BA,uBAUI,wBAAA,CAAA,2BpJw13BJ,CoJl23BA,mBAUI,iBpJ213BJ,CoJr23BA,uBAUI,0BAAA,CAAA,2BpJ+13BJ,CoJz23BA,yBAUI,2BAAA,CAAA,8BpJm23BJ,CoJ723BA,0BAUI,6BAAA,CAAA,8BpJu23BJ,CoJj33BA,wBAUI,0BAAA,CAAA,6BpJ223BJ,CoJr33BA,mBAUI,oBpJ823BJ,CoJx33BA,uBAUI,6BAAA,CAAA,8BpJk33BJ,CoJ533BA,yBAUI,8BAAA,CAAA,iCpJs33BJ,CoJh43BA,0BAUI,gCAAA,CAAA,iCpJ033BJ,CoJp43BA,wBAUI,6BAAA,CAAA,gCpJ833BJ,CoJx43BA,mBAUI,mBpJi43BJ,CoJ343BA,uBAUI,4BAAA,CAAA,6BpJq43BJ,CoJ/43BA,yBAUI,6BAAA,CAAA,gCpJy43BJ,CoJn53BA,0BAUI,+BAAA,CAAA,gCpJ643BJ,CoJv53BA,wBAUI,4BAAA,CAAA,+BpJi53BJ,CoJ353BA,qBAUI,mBpJo53BJ,CoJ953BA,yBAUI,4BAAA,CAAA,6BpJw53BJ,CoJl63BA,2BAUI,6BAAA,CAAA,gCpJ453BJ,CoJt63BA,4BAUI,+BAAA,CAAA,gCpJg63BJ,CoJ163BA,0BAUI,4BAAA,CAAA,+BpJo63BJ,CoJ963BA,uBAUI,apJu63BJ,CoJj73BA,sBAUI,YpJ063BJ,CoJp73BA,sBAUI,YpJ663BJ,CoJv73BA,wBAUI,cpJg73BJ,CoJ173BA,8BAUI,oBpJm73BJ,CoJ773BA,6BAUI,mBpJs73BJ,CoJh83BA,uBAUI,apJy73BJ,CoJn83BA,4BAUI,kBpJ473BJ,CoJt83BA,2BAUI,iBpJ+73BJ,CoJz83BA,uBAUI,gBpJk83BJ,CoJ583BA,uBAUI,gBpJq83BJ,CoJ/83BA,sBAUI,gBpJw83BJ,CoJl93BA,sBAUI,gBpJ283BJ,CoJr93BA,sBAUI,iBpJ883BJ,CoJx93BA,sBAUI,iBpJi93BJ,CoJ393BA,sBAUI,iBpJo93BJ,CoJ993BA,uBAUI,iBpJu93BJ,CoJj+3BA,uBAUI,iBpJ093BJ,CoJp+3BA,uBAUI,gBpJ693BJ,CoJv+3BA,uBAUI,gBpJg+3BJ,CoJ1+3BA,sBAUI,cpJm+3BJ,CoJ7+3BA,sBAUI,iBpJs+3BJ,CoJh/3BA,sBAUI,iBpJy+3BJ,CoJn/3BA,sBAUI,iBpJ4+3BJ,CoJt/3BA,sBAUI,iBpJ++3BJ,CoJz/3BA,uBAUI,iBpJk/3BJ,CoJ5/3BA,uBAUI,iBpJq/3BJ,CoJ//3BA,wBAUI,gBpJw/3BJ,CoJlg4BA,wBAUI,gBpJ2/3BJ,CoJrg4BA,uBAUI,gBpJ8/3BJ,CoJxg4BA,uBAUI,gBpJig4BJ,CoJ3g4BA,uBAUI,iBpJog4BJ,CoJ9g4BA,uBAUI,iBpJug4BJ,CoJjh4BA,uBAUI,iBpJ0g4BJ,CoJph4BA,wBAUI,iBpJ6g4BJ,CoJvh4BA,wBAUI,iBpJgh4BJ,CoJ1h4BA,0BAUI,gBpJmh4BJ,CoJ7h4BA,0BAUI,gBpJsh4BJ,CoJhi4BA,yBAUI,gBpJyh4BJ,CoJni4BA,yBAUI,gBpJ4h4BJ,CoJti4BA,yBAUI,iBpJ+h4BJ,CoJzi4BA,yBAUI,iBpJki4BJ,CoJ5i4BA,yBAUI,iBpJqi4BJ,CoJ/i4BA,0BAUI,iBpJwi4BJ,CoJlj4BA,0BAUI,iBpJ2i4BJ,CoJrj4BA,uBAUI,gBpJ8i4BJ,CoJxj4BA,uBAUI,gBpJij4BJ,CoJ3j4BA,sBAUI,cpJoj4BJ,CoJ9j4BA,sBAUI,iBpJuj4BJ,CoJjk4BA,sBAUI,iBpJ0j4BJ,CoJpk4BA,sBAUI,iBpJ6j4BJ,CoJvk4BA,sBAUI,iBpJgk4BJ,CoJ1k4BA,uBAUI,iBpJmk4BJ,CoJ7k4BA,uBAUI,iBpJsk4BJ,CoJhl4BA,uBAUI,gBpJyk4BJ,CoJnl4BA,uBAUI,gBpJ4k4BJ,CoJtl4BA,sBAUI,gBpJ+k4BJ,CoJzl4BA,sBAUI,gBpJkl4BJ,CoJ5l4BA,sBAUI,iBpJql4BJ,CoJ/l4BA,sBAUI,iBpJwl4BJ,CoJlm4BA,sBAUI,iBpJ2l4BJ,CoJrm4BA,uBAUI,iBpJ8l4BJ,CoJxm4BA,uBAUI,iBpJim4BJ,CoJ3m4BA,sBAUI,gBpJom4BJ,CoJ9m4BA,sBAUI,gBpJum4BJ,CoJjn4BA,qBAUI,gBpJ0m4BJ,CoJpn4BA,qBAUI,gBpJ6m4BJ,CoJvn4BA,qBAUI,iBpJgn4BJ,CoJ1n4BA,qBAUI,iBpJmn4BJ,CoJ7n4BA,qBAUI,iBpJsn4BJ,CoJho4BA,sBAUI,iBpJyn4BJ,CoJno4BA,sBAUI,iBpJ4n4BJ,CoJto4BA,qBAUI,gBpJ+n4BJ,CoJzo4BA,qBAUI,gBpJko4BJ,CoJ5o4BA,oBAUI,cpJqo4BJ,CoJ/o4BA,oBAUI,iBpJwo4BJ,CoJlp4BA,oBAUI,iBpJ2o4BJ,CoJrp4BA,oBAUI,iBpJ8o4BJ,CoJxp4BA,oBAUI,iBpJip4BJ,CoJ3p4BA,qBAUI,iBpJop4BJ,CoJ9p4BA,qBAUI,iBpJup4BJ,CoJjq4BA,oBAUI,epJ0p4BJ,CoJpq4BA,qBAUI,epJ6p4BJ,CoJvq4BA,mBAUI,epJgq4BJ,CoJ1q4BA,6BAUI,sBpJmq4BJ,CoJ7q4BA,4BAUI,0BpJsq4BJ,CoJhr4BA,0BAUI,wBpJyq4BJ,CoJnr4BA,sBAUI,6BpJ4q4BJ,CoJtr4BA,4BAUI,cpJ+q4BJ,CoJzr4BA,4BAUI,epJkr4BJ,CoJ5r4BA,4BAUI,epJqr4BJ,CoJ/r4BA,4BAUI,epJwr4BJ,CoJls4BA,4BAUI,epJ2r4BJ,CoJrs4BA,4BAUI,epJ8r4BJ,CoJxs4BA,6BAUI,apJis4BJ,CoJ3s4BA,6BAUI,epJos4BJ,CoJ9s4BA,6BAUI,epJus4BJ,CoJjt4BA,6BAUI,epJ0s4BJ,CoJpt4BA,6BAUI,epJ6s4BJ,CoJvt4BA,6BAUI,epJgt4BJ,CoJ1t4BA,4BAUI,apJmt4BJ,CoJ7t4BA,4BAUI,epJst4BJ,CoJhu4BA,4BAUI,epJyt4BJ,CoJnu4BA,4BAUI,epJ4t4BJ,CoJtu4BA,4BAUI,epJ+t4BJ,CoJzu4BA,4BAUI,epJku4BJ,CoJ5u4BA,+BAUI,apJqu4BJ,CoJ/u4BA,+BAUI,epJwu4BJ,CoJlv4BA,+BAUI,epJ2u4BJ,CoJrv4BA,+BAUI,epJ8u4BJ,CoJxv4BA,+BAUI,epJiv4BJ,CoJ3v4BA,+BAUI,epJov4BJ,CoJ9v4BA,0BAUI,cpJuv4BJ,CoJjw4BA,0BAUI,epJ0v4BJ,CoJpw4BA,0BAUI,epJ6v4BJ,CoJvw4BA,0BAUI,epJgw4BJ,CoJ1w4BA,0BAUI,epJmw4BJ,CoJ7w4BA,0BAUI,epJsw4BJ,CoJhx4BA,4BAUI,cpJyw4BJ,CoJnx4BA,4BAUI,epJ4w4BJ,CoJtx4BA,4BAUI,epJ+w4BJ,CoJzx4BA,4BAUI,epJkx4BJ,CoJ5x4BA,4BAUI,epJqx4BJ,CoJ/x4BA,4BAUI,epJwx4BJ,CoJly4BA,4BAUI,apJ2x4BJ,CoJry4BA,4BAUI,epJ8x4BJ,CoJxy4BA,4BAUI,epJiy4BJ,CoJ3y4BA,4BAUI,epJoy4BJ,CoJ9y4BA,4BAUI,epJuy4BJ,CoJjz4BA,4BAUI,epJ0y4BJ,CoJpz4BA,2BAUI,apJ6y4BJ,CoJvz4BA,2BAUI,epJgz4BJ,CoJ1z4BA,2BAUI,epJmz4BJ,CoJ7z4BA,2BAUI,epJsz4BJ,CoJh04BA,2BAUI,epJyz4BJ,CoJn04BA,2BAUI,epJ4z4BJ,CoJt04BA,wBAUI,WpJ+z4BJ,CoJz04BA,wBAUI,WpJk04BJ,CoJ504BA,uBAUI,cpJq04BJ,CoJ/04BA,sBAUI,apJw04BJ,CoJl14BA,wBAUI,cpJ204BJ,CoJr14BA,sBAUI,YpJ804BJ,CoJx14BA,wBAUI,epJi14BJ,CoJ314BA,sBAUI,cpJo14BJ,CoJ914BA,oBAUI,UpJu14BJ,CoJj24BA,oBAUI,UpJ014BJ,CoJp24BA,mBAUI,apJ614BJ,CoJv24BA,kBAUI,YpJg24BJ,CoJ124BA,oBAUI,apJm24BJ,CoJ724BA,kBAUI,WpJs24BJ,CoJh34BA,oBAUI,cpJy24BJ,CoJn34BA,kBAUI,apJ424BJ,CoJt34BA,sBAUI,YpJ+24BJ,CoJz34BA,sBAUI,cpJk34BJ,CoJ534BA,sBAUI,YpJq34BJ,CoJ/34BA,sBAUI,cpJw34BJ,CoJl44BA,sBAUI,YpJ234BJ,CoJr44BA,sBAUI,cpJ834BJ,CoJx44BA,uBAUI,YpJi44BJ,CoJ344BA,uBAUI,cpJo44BJ,CoJ944BA,kBAUI,WpJu44BJ,CoJj54BA,kBAUI,apJ044BJ,CoJp54BA,kBAUI,WpJ644BJ,CoJv54BA,kBAUI,apJg54BJ,CoJ154BA,kBAUI,WpJm54BJ,CoJ754BA,kBAUI,apJs54BJ,CoJh64BA,mBAUI,WpJy54BJ,CoJn64BA,mBAUI,apJ454BJ,CoJt64BA,qBAUI,WpJ+54BJ,CoJz64BA,oBAUI,UpJk64BJ,CoJ564BA,sBAUI,YpJq64BJ,CoJ/64BA,oBAUI,UpJw64BJ,CoJl74BA,kBAUI,QpJ264BJ,CoJr74BA,sBAUI,cAAA,CAAA,iBpJ+64BJ,CoJz74BA,wBAUI,cpJk74BJ,CoJ574BA,2BAUI,iBpJq74BJ,CoJ/74BA,sBAUI,cAAA,CAAA,iBpJy74BJ,CoJn84BA,wBAUI,cpJ474BJ,CoJt84BA,2BAUI,iBpJ+74BJ,CoJz84BA,qBAUI,iBAAA,CAAA,oBpJm84BJ,CoJ784BA,uBAUI,iBpJs84BJ,CoJh94BA,0BAUI,oBpJy84BJ,CoJn94BA,oBAUI,gBAAA,CAAA,mBpJ684BJ,CoJv94BA,sBAUI,gBpJg94BJ,CoJ194BA,yBAUI,mBpJm94BJ,CoJ794BA,sBAUI,iBAAA,CAAA,oBpJu94BJ,CoJj+4BA,wBAUI,iBpJ094BJ,CoJp+4BA,2BAUI,oBpJ694BJ,CoJv+4BA,oBAUI,eAAA,CAAA,kBpJi+4BJ,CoJ3+4BA,sBAUI,epJo+4BJ,CoJ9+4BA,yBAUI,kBpJu+4BJ,CoJj/4BA,sBAUI,kBAAA,CAAA,qBpJ2+4BJ,CoJr/4BA,wBAUI,kBpJ8+4BJ,CoJx/4BA,2BAUI,qBpJi/4BJ,CoJ3/4BA,oBAUI,iBAAA,CAAA,oBpJq/4BJ,CoJ//4BA,sBAUI,iBpJw/4BJ,CoJlg5BA,yBAUI,oBpJ2/4BJ,CoJrg5BA,0BAUI,eAAA,CAAA,kBpJ+/4BJ,CoJzg5BA,4BAUI,epJkg5BJ,CoJ5g5BA,+BAUI,kBpJqg5BJ,CoJ/g5BA,0BAUI,eAAA,CAAA,kBpJyg5BJ,CoJnh5BA,4BAUI,epJ4g5BJ,CoJth5BA,+BAUI,kBpJ+g5BJ,CoJzh5BA,yBAUI,kBAAA,CAAA,qBpJmh5BJ,CoJ7h5BA,2BAUI,kBpJsh5BJ,CoJhi5BA,8BAUI,qBpJyh5BJ,CoJni5BA,wBAUI,iBAAA,CAAA,oBpJ6h5BJ,CoJvi5BA,0BAUI,iBpJgi5BJ,CoJ1i5BA,6BAUI,oBpJmi5BJ,CoJ7i5BA,0BAUI,kBAAA,CAAA,qBpJui5BJ,CoJjj5BA,4BAUI,kBpJ0i5BJ,CoJpj5BA,+BAUI,qBpJ6i5BJ,CoJvj5BA,wBAUI,gBAAA,CAAA,mBpJij5BJ,CoJ3j5BA,0BAUI,gBpJoj5BJ,CoJ9j5BA,6BAUI,mBpJuj5BJ,CoJjk5BA,0BAUI,mBAAA,CAAA,sBpJ2j5BJ,CoJrk5BA,4BAUI,mBpJ8j5BJ,CoJxk5BA,+BAUI,sBpJik5BJ,CoJ3k5BA,wBAUI,kBAAA,CAAA,qBpJqk5BJ,CoJ/k5BA,0BAUI,kBpJwk5BJ,CoJll5BA,6BAUI,qBpJ2k5BJ,CoJrl5BA,wBAUI,gBAAA,CAAA,mBpJ+k5BJ,CoJzl5BA,0BAUI,gBpJkl5BJ,CoJ5l5BA,6BAUI,mBpJql5BJ,CoJ/l5BA,wBAUI,kBAAA,CAAA,qBpJyl5BJ,CoJnm5BA,0BAUI,kBpJ4l5BJ,CoJtm5BA,6BAUI,qBpJ+l5BJ,CoJzm5BA,wBAUI,gBAAA,CAAA,mBpJmm5BJ,CoJ7m5BA,0BAUI,gBpJsm5BJ,CoJhn5BA,6BAUI,mBpJym5BJ,CoJnn5BA,wBAUI,kBAAA,CAAA,qBpJ6m5BJ,CoJvn5BA,0BAUI,kBpJgn5BJ,CoJ1n5BA,6BAUI,qBpJmn5BJ,CoJ7n5BA,wBAUI,gBAAA,CAAA,mBpJun5BJ,CoJjo5BA,0BAUI,gBpJ0n5BJ,CoJpo5BA,6BAUI,mBpJ6n5BJ,CoJvo5BA,wBAUI,kBAAA,CAAA,qBpJio5BJ,CoJ3o5BA,0BAUI,kBpJoo5BJ,CoJ9o5BA,6BAUI,qBpJuo5BJ,CoJjp5BA,yBAUI,gBAAA,CAAA,mBpJ2o5BJ,CoJrp5BA,2BAUI,gBpJ8o5BJ,CoJxp5BA,8BAUI,mBpJip5BJ,CoJ3p5BA,yBAUI,kBAAA,CAAA,qBpJqp5BJ,CoJ/p5BA,2BAUI,kBpJwp5BJ,CoJlq5BA,8BAUI,qBpJ2p5BJ,CoJrq5BA,oBAUI,eAAA,CAAA,kBpJ+p5BJ,CoJzq5BA,sBAUI,epJkq5BJ,CoJ5q5BA,yBAUI,kBpJqq5BJ,CoJ/q5BA,oBAUI,iBAAA,CAAA,oBpJyq5BJ,CoJnr5BA,sBAUI,iBpJ4q5BJ,CoJtr5BA,yBAUI,oBpJ+q5BJ,CoJzr5BA,oBAUI,eAAA,CAAA,kBpJmr5BJ,CoJ7r5BA,sBAUI,epJsr5BJ,CoJhs5BA,yBAUI,kBpJyr5BJ,CoJns5BA,oBAUI,iBAAA,CAAA,oBpJ6r5BJ,CoJvs5BA,sBAUI,iBpJgs5BJ,CoJ1s5BA,yBAUI,oBpJms5BJ,CoJ7s5BA,oBAUI,eAAA,CAAA,kBpJus5BJ,CoJjt5BA,sBAUI,epJ0s5BJ,CoJpt5BA,yBAUI,kBpJ6s5BJ,CoJvt5BA,oBAUI,iBAAA,CAAA,oBpJit5BJ,CoJ3t5BA,sBAUI,iBpJot5BJ,CoJ9t5BA,yBAUI,oBpJut5BJ,CoJju5BA,qBAUI,eAAA,CAAA,kBpJ2t5BJ,CoJru5BA,uBAUI,epJ8t5BJ,CoJxu5BA,0BAUI,kBpJiu5BJ,CoJ3u5BA,qBAUI,iBAAA,CAAA,oBpJqu5BJ,CoJ/u5BA,uBAUI,iBpJwu5BJ,CoJlv5BA,0BAUI,oBpJ2u5BJ,CoJrv5BA,uBAUI,eAAA,CAAA,kBpJ+u5BJ,CoJzv5BA,yBAUI,epJkv5BJ,CoJ5v5BA,4BAUI,kBpJqv5BJ,CoJ/v5BA,sBAUI,cAAA,CAAA,iBpJyv5BJ,CoJnw5BA,wBAUI,cpJ4v5BJ,CoJtw5BA,2BAUI,iBpJ+v5BJ,CoJzw5BA,wBAUI,gBAAA,CAAA,mBpJmw5BJ,CoJ7w5BA,0BAUI,gBpJsw5BJ,CoJhx5BA,6BAUI,mBpJyw5BJ,CoJnx5BA,sBAUI,cAAA,CAAA,iBpJ6w5BJ,CoJvx5BA,wBAUI,cpJgx5BJ,CoJ1x5BA,2BAUI,iBpJmx5BJ,CoJ7x5BA,oBAUI,YAAA,CAAA,epJux5BJ,CoJjy5BA,sBAUI,YpJ0x5BJ,CoJpy5BA,yBAUI,epJ6x5BJ,CoJvy5BA,uBAUI,eAAA,CAAA,kBpJiy5BJ,CoJ3y5BA,yBAUI,epJoy5BJ,CoJ9y5BA,4BAUI,kBpJuy5BJ,CoJjz5BA,sBAUI,eAAA,CAAA,gBpJ2y5BJ,CoJrz5BA,0BAUI,gBpJ8y5BJ,CoJxz5BA,yBAUI,epJiz5BJ,CoJ3z5BA,sBAUI,eAAA,CAAA,gBpJqz5BJ,CoJ/z5BA,0BAUI,gBpJwz5BJ,CoJl05BA,yBAUI,epJ2z5BJ,CoJr05BA,qBAUI,kBAAA,CAAA,mBpJ+z5BJ,CoJz05BA,yBAUI,mBpJk05BJ,CoJ505BA,wBAUI,kBpJq05BJ,CoJ/05BA,oBAUI,iBAAA,CAAA,kBpJy05BJ,CoJn15BA,wBAUI,kBpJ405BJ,CoJt15BA,uBAUI,iBpJ+05BJ,CoJz15BA,sBAUI,kBAAA,CAAA,mBpJm15BJ,CoJ715BA,0BAUI,mBpJs15BJ,CoJh25BA,yBAUI,kBpJy15BJ,CoJn25BA,oBAUI,gBAAA,CAAA,iBpJ615BJ,CoJv25BA,wBAUI,iBpJg25BJ,CoJ125BA,uBAUI,gBpJm25BJ,CoJ725BA,sBAUI,mBAAA,CAAA,oBpJu25BJ,CoJj35BA,0BAUI,oBpJ025BJ,CoJp35BA,yBAUI,mBpJ625BJ,CoJv35BA,oBAUI,kBAAA,CAAA,mBpJi35BJ,CoJ335BA,wBAUI,mBpJo35BJ,CoJ935BA,uBAUI,kBpJu35BJ,CoJj45BA,0BAUI,gBAAA,CAAA,iBpJ235BJ,CoJr45BA,8BAUI,iBpJ835BJ,CoJx45BA,6BAUI,gBpJi45BJ,CoJ345BA,0BAUI,gBAAA,CAAA,iBpJq45BJ,CoJ/45BA,8BAUI,iBpJw45BJ,CoJl55BA,6BAUI,gBpJ245BJ,CoJr55BA,yBAUI,mBAAA,CAAA,oBpJ+45BJ,CoJz55BA,6BAUI,oBpJk55BJ,CoJ555BA,4BAUI,mBpJq55BJ,CoJ/55BA,wBAUI,kBAAA,CAAA,mBpJy55BJ,CoJn65BA,4BAUI,mBpJ455BJ,CoJt65BA,2BAUI,kBpJ+55BJ,CoJz65BA,0BAUI,mBAAA,CAAA,oBpJm65BJ,CoJ765BA,8BAUI,oBpJs65BJ,CoJh75BA,6BAUI,mBpJy65BJ,CoJn75BA,wBAUI,iBAAA,CAAA,kBpJ665BJ,CoJv75BA,4BAUI,kBpJg75BJ,CoJ175BA,2BAUI,iBpJm75BJ,CoJ775BA,0BAUI,oBAAA,CAAA,qBpJu75BJ,CoJj85BA,8BAUI,qBpJ075BJ,CoJp85BA,6BAUI,oBpJ675BJ,CoJv85BA,wBAUI,mBAAA,CAAA,oBpJi85BJ,CoJ385BA,4BAUI,oBpJo85BJ,CoJ985BA,2BAUI,mBpJu85BJ,CoJj95BA,wBAUI,iBAAA,CAAA,kBpJ285BJ,CoJr95BA,4BAUI,kBpJ885BJ,CoJx95BA,2BAUI,iBpJi95BJ,CoJ395BA,wBAUI,mBAAA,CAAA,oBpJq95BJ,CoJ/95BA,4BAUI,oBpJw95BJ,CoJl+5BA,2BAUI,mBpJ295BJ,CoJr+5BA,wBAUI,iBAAA,CAAA,kBpJ+95BJ,CoJz+5BA,4BAUI,kBpJk+5BJ,CoJ5+5BA,2BAUI,iBpJq+5BJ,CoJ/+5BA,wBAUI,mBAAA,CAAA,oBpJy+5BJ,CoJn/5BA,4BAUI,oBpJ4+5BJ,CoJt/5BA,2BAUI,mBpJ++5BJ,CoJz/5BA,wBAUI,iBAAA,CAAA,kBpJm/5BJ,CoJ7/5BA,4BAUI,kBpJs/5BJ,CoJhg6BA,2BAUI,iBpJy/5BJ,CoJng6BA,wBAUI,mBAAA,CAAA,oBpJ6/5BJ,CoJvg6BA,4BAUI,oBpJgg6BJ,CoJ1g6BA,2BAUI,mBpJmg6BJ,CoJ7g6BA,yBAUI,iBAAA,CAAA,kBpJug6BJ,CoJjh6BA,6BAUI,kBpJ0g6BJ,CoJph6BA,4BAUI,iBpJ6g6BJ,CoJvh6BA,yBAUI,mBAAA,CAAA,oBpJih6BJ,CoJ3h6BA,6BAUI,oBpJoh6BJ,CoJ9h6BA,4BAUI,mBpJuh6BJ,CoJji6BA,oBAUI,gBAAA,CAAA,iBpJ2h6BJ,CoJri6BA,wBAUI,iBpJ8h6BJ,CoJxi6BA,uBAUI,gBpJii6BJ,CoJ3i6BA,oBAUI,kBAAA,CAAA,mBpJqi6BJ,CoJ/i6BA,wBAUI,mBpJwi6BJ,CoJlj6BA,uBAUI,kBpJ2i6BJ,CoJrj6BA,oBAUI,gBAAA,CAAA,iBpJ+i6BJ,CoJzj6BA,wBAUI,iBpJkj6BJ,CoJ5j6BA,uBAUI,gBpJqj6BJ,CoJ/j6BA,oBAUI,kBAAA,CAAA,mBpJyj6BJ,CoJnk6BA,wBAUI,mBpJ4j6BJ,CoJtk6BA,uBAUI,kBpJ+j6BJ,CoJzk6BA,oBAUI,gBAAA,CAAA,iBpJmk6BJ,CoJ7k6BA,wBAUI,iBpJsk6BJ,CoJhl6BA,uBAUI,gBpJyk6BJ,CoJnl6BA,oBAUI,kBAAA,CAAA,mBpJ6k6BJ,CoJvl6BA,wBAUI,mBpJgl6BJ,CoJ1l6BA,uBAUI,kBpJml6BJ,CoJ7l6BA,qBAUI,gBAAA,CAAA,iBpJul6BJ,CoJjm6BA,yBAUI,iBpJ0l6BJ,CoJpm6BA,wBAUI,gBpJ6l6BJ,CoJvm6BA,qBAUI,kBAAA,CAAA,mBpJim6BJ,CoJ3m6BA,yBAUI,mBpJom6BJ,CoJ9m6BA,wBAUI,kBpJum6BJ,CoJjn6BA,uBAUI,iBAAA,CAAA,kBpJ2m6BJ,CoJrn6BA,2BAUI,kBpJ8m6BJ,CoJxn6BA,0BAUI,iBpJin6BJ,CoJ3n6BA,0BAUI,iBAAA,CAAA,kBpJqn6BJ,CoJ/n6BA,8BAUI,kBpJwn6BJ,CoJlo6BA,6BAUI,iBpJ2n6BJ,CoJro6BA,yBAUI,iBAAA,CAAA,kBpJ+n6BJ,CoJzo6BA,6BAUI,kBpJko6BJ,CoJ5o6BA,4BAUI,iBpJqo6BJ,CoJ/o6BA,uBAUI,gBAAA,CAAA,iBpJyo6BJ,CoJnp6BA,2BAUI,iBpJ4o6BJ,CoJtp6BA,0BAUI,gBpJ+o6BJ,CoJzp6BA,sBAUI,eAAA,CAAA,gBpJmp6BJ,CoJ7p6BA,0BAUI,gBpJsp6BJ,CoJhq6BA,yBAUI,epJyp6BJ,CoJnq6BA,wBAUI,iBAAA,CAAA,kBpJ6p6BJ,CoJvq6BA,4BAUI,kBpJgq6BJ,CoJ1q6BA,2BAUI,iBpJmq6BJ,CoJ7q6BA,sBAUI,eAAA,CAAA,gBpJuq6BJ,CoJjr6BA,0BAUI,gBpJ0q6BJ,CoJpr6BA,yBAUI,epJ6q6BJ,CoJvr6BA,oBAUI,aAAA,CAAA,cpJir6BJ,CoJ3r6BA,wBAUI,cpJor6BJ,CoJ9r6BA,uBAUI,apJur6BJ,CoJjs6BA,uBAUI,gBAAA,CAAA,iBpJ2r6BJ,CoJrs6BA,2BAUI,iBpJ8r6BJ,CoJxs6BA,0BAUI,gBpJis6BJ,CoJ3s6BA,mBAUI,cpJos6BJ,CoJ9s6BA,mBAUI,cpJus6BJ,CoJjt6BA,mBAUI,cpJ0s6BJ,CoJpt6BA,mBAUI,cpJ6s6BJ,CoJvt6BA,mBAUI,cpJgt6BJ,CoJ1t6BA,mBAUI,cpJmt6BJ,CoJ7t6BA,sBAUI,cpJst6BJ,CoJhu6BA,qBAUI,QpJyt6BJ,CoJnu6BA,oBAUI,SpJ4t6BJ,CoJtu6BA,uBAUI,apJ+t6BJ,CoJzu6BA,iBAUI,OpJku6BJ,CoJ5u6BA,iBAUI,OpJqu6BJ,CoJ/u6BA,iBAUI,OpJwu6BJ,CoJlv6BA,iBAUI,OpJ2u6BJ,CoJrv6BA,iBAUI,OpJ8u6BJ,CoJxv6BA,iBAUI,OpJiv6BJ,CoJ3v6BA,iBAUI,OpJov6BJ,CoJ9v6BA,iBAUI,OpJuv6BJ,CoJjw6BA,iBAUI,OpJ0v6BJ,CoJpw6BA,iBAUI,OpJ6v6BJ,CoJvw6BA,kBAUI,QpJgw6BJ,CoJ1w6BA,kBAUI,QpJmw6BJ,CoJ7w6BA,qBAUI,WpJsw6BJ,CoJhx6BA,uBAUI,eAAA,CAAA,kBpJ0w6BJ,CoJpx6BA,uBAUI,gBAAA,CAAA,iBpJ8w6BJ,CoJxx6BA,yBAUI,epJix6BJ,CoJ3x6BA,2BAUI,iBpJox6BJ,CoJ9x6BA,4BAUI,kBpJux6BJ,CoJjy6BA,0BAUI,gBpJ0x6BJ,CoJpy6BA,qBAUI,WpJ6x6BJ,CoJvy6BA,uBAUI,eAAA,CAAA,kBpJiy6BJ,CoJ3y6BA,uBAUI,gBAAA,CAAA,iBpJqy6BJ,CoJ/y6BA,yBAUI,epJwy6BJ,CoJlz6BA,2BAUI,iBpJ2y6BJ,CoJrz6BA,4BAUI,kBpJ8y6BJ,CoJxz6BA,0BAUI,gBpJiz6BJ,CoJ3z6BA,oBAUI,cpJoz6BJ,CoJ9z6BA,sBAUI,kBAAA,CAAA,qBpJwz6BJ,CoJl06BA,sBAUI,mBAAA,CAAA,oBpJ4z6BJ,CoJt06BA,wBAUI,kBpJ+z6BJ,CoJz06BA,0BAUI,oBpJk06BJ,CoJ506BA,2BAUI,qBpJq06BJ,CoJ/06BA,yBAUI,mBpJw06BJ,CoJl16BA,mBAUI,apJ206BJ,CoJr16BA,qBAUI,iBAAA,CAAA,oBpJ+06BJ,CoJz16BA,qBAUI,kBAAA,CAAA,mBpJm16BJ,CoJ716BA,uBAUI,iBpJs16BJ,CoJh26BA,yBAUI,mBpJy16BJ,CoJn26BA,0BAUI,oBpJ416BJ,CoJt26BA,wBAUI,kBpJ+16BJ,CoJz26BA,qBAUI,cpJk26BJ,CoJ526BA,uBAUI,kBAAA,CAAA,qBpJs26BJ,CoJh36BA,uBAUI,mBAAA,CAAA,oBpJ026BJ,CoJp36BA,yBAUI,kBpJ626BJ,CoJv36BA,2BAUI,oBpJg36BJ,CoJ136BA,4BAUI,qBpJm36BJ,CoJ736BA,0BAUI,mBpJs36BJ,CoJh46BA,mBAUI,YpJy36BJ,CoJn46BA,qBAUI,gBAAA,CAAA,mBpJ636BJ,CoJv46BA,qBAUI,iBAAA,CAAA,kBpJi46BJ,CoJ346BA,uBAUI,gBpJo46BJ,CoJ946BA,yBAUI,kBpJu46BJ,CoJj56BA,0BAUI,mBpJ046BJ,CoJp56BA,wBAUI,iBpJ646BJ,CoJv56BA,qBAUI,epJg56BJ,CoJ156BA,uBAUI,mBAAA,CAAA,sBpJo56BJ,CoJ956BA,uBAUI,oBAAA,CAAA,qBpJw56BJ,CoJl66BA,yBAUI,mBpJ256BJ,CoJr66BA,2BAUI,qBpJ856BJ,CoJx66BA,4BAUI,sBpJi66BJ,CoJ366BA,0BAUI,oBpJo66BJ,CoJ966BA,mBAUI,cpJu66BJ,CoJj76BA,qBAUI,kBAAA,CAAA,qBpJ266BJ,CoJr76BA,qBAUI,mBAAA,CAAA,oBpJ+66BJ,CoJz76BA,uBAUI,kBpJk76BJ,CoJ576BA,yBAUI,oBpJq76BJ,CoJ/76BA,0BAUI,qBpJw76BJ,CoJl86BA,wBAUI,mBpJ276BJ,CoJr86BA,mBAUI,YpJ876BJ,CoJx86BA,qBAUI,gBAAA,CAAA,mBpJk86BJ,CoJ586BA,qBAUI,iBAAA,CAAA,kBpJs86BJ,CoJh96BA,uBAUI,gBpJy86BJ,CoJn96BA,yBAUI,kBpJ486BJ,CoJt96BA,0BAUI,mBpJ+86BJ,CoJz96BA,wBAUI,iBpJk96BJ,CoJ596BA,mBAUI,cpJq96BJ,CoJ/96BA,qBAUI,kBAAA,CAAA,qBpJy96BJ,CoJn+6BA,qBAUI,mBAAA,CAAA,oBpJ696BJ,CoJv+6BA,uBAUI,kBpJg+6BJ,CoJ1+6BA,yBAUI,oBpJm+6BJ,CoJ7+6BA,0BAUI,qBpJs+6BJ,CoJh/6BA,wBAUI,mBpJy+6BJ,CoJn/6BA,mBAUI,YpJ4+6BJ,CoJt/6BA,qBAUI,gBAAA,CAAA,mBpJg/6BJ,CoJ1/6BA,qBAUI,iBAAA,CAAA,kBpJo/6BJ,CoJ9/6BA,uBAUI,gBpJu/6BJ,CoJjg7BA,yBAUI,kBpJ0/6BJ,CoJpg7BA,0BAUI,mBpJ6/6BJ,CoJvg7BA,wBAUI,iBpJgg7BJ,CoJ1g7BA,mBAUI,cpJmg7BJ,CoJ7g7BA,qBAUI,kBAAA,CAAA,qBpJug7BJ,CoJjh7BA,qBAUI,mBAAA,CAAA,oBpJ2g7BJ,CoJrh7BA,uBAUI,kBpJ8g7BJ,CoJxh7BA,yBAUI,oBpJih7BJ,CoJ3h7BA,0BAUI,qBpJoh7BJ,CoJ9h7BA,wBAUI,mBpJuh7BJ,CoJji7BA,mBAUI,YpJ0h7BJ,CoJpi7BA,qBAUI,gBAAA,CAAA,mBpJ8h7BJ,CoJxi7BA,qBAUI,iBAAA,CAAA,kBpJki7BJ,CoJ5i7BA,uBAUI,gBpJqi7BJ,CoJ/i7BA,yBAUI,kBpJwi7BJ,CoJlj7BA,0BAUI,mBpJ2i7BJ,CoJrj7BA,wBAUI,iBpJ8i7BJ,CoJxj7BA,mBAUI,cpJij7BJ,CoJ3j7BA,qBAUI,kBAAA,CAAA,qBpJqj7BJ,CoJ/j7BA,qBAUI,mBAAA,CAAA,oBpJyj7BJ,CoJnk7BA,uBAUI,kBpJ4j7BJ,CoJtk7BA,yBAUI,oBpJ+j7BJ,CoJzk7BA,0BAUI,qBpJkk7BJ,CoJ5k7BA,wBAUI,mBpJqk7BJ,CoJ/k7BA,oBAUI,YpJwk7BJ,CoJll7BA,sBAUI,gBAAA,CAAA,mBpJ4k7BJ,CoJtl7BA,sBAUI,iBAAA,CAAA,kBpJgl7BJ,CoJ1l7BA,wBAUI,gBpJml7BJ,CoJ7l7BA,0BAUI,kBpJsl7BJ,CoJhm7BA,2BAUI,mBpJyl7BJ,CoJnm7BA,yBAUI,iBpJ4l7BJ,CoJtm7BA,oBAUI,cpJ+l7BJ,CoJzm7BA,sBAUI,kBAAA,CAAA,qBpJmm7BJ,CoJ7m7BA,sBAUI,mBAAA,CAAA,oBpJum7BJ,CoJjn7BA,wBAUI,kBpJ0m7BJ,CoJpn7BA,0BAUI,oBpJ6m7BJ,CoJvn7BA,2BAUI,qBpJgn7BJ,CoJ1n7BA,yBAUI,mBpJmn7BJ,CoJ7n7BA,mBAUI,SpJsn7BJ,CoJho7BA,qBAUI,aAAA,CAAA,gBpJ0n7BJ,CoJpo7BA,qBAUI,cAAA,CAAA,epJ8n7BJ,CoJxo7BA,uBAUI,apJio7BJ,CoJ3o7BA,yBAUI,epJoo7BJ,CoJ9o7BA,0BAUI,gBpJuo7BJ,CoJjp7BA,wBAUI,cpJ0o7BJ,CoJpp7BA,mBAUI,SpJ6o7BJ,CoJvp7BA,mBAUI,SpJgp7BJ,CoJ1p7BA,kBAUI,YpJmp7BJ,CoJ7p7BA,iBAUI,WpJsp7BJ,CoJhq7BA,mBAUI,YpJyp7BJ,CoJnq7BA,iBAUI,UpJ4p7BJ,CoJtq7BA,mBAUI,apJ+p7BJ,CoJzq7BA,iBAUI,YpJkq7BJ,CoJ5q7BA,iBAUI,UpJqq7BJ,CoJ/q7BA,iBAUI,YpJwq7BJ,CoJlr7BA,iBAUI,UpJ2q7BJ,CoJrr7BA,iBAUI,YpJ8q7BJ,CoJxr7BA,iBAUI,UpJir7BJ,CoJ3r7BA,iBAUI,YpJor7BJ,CoJ9r7BA,kBAUI,UpJur7BJ,CoJjs7BA,kBAUI,YpJ0r7BJ,CoJps7BA,oBAUI,WpJ6r7BJ,CoJvs7BA,uBAUI,WpJgs7BJ,CoJ1s7BA,sBAUI,WpJms7BJ,CoJ7s7BA,yBAUI,WpJss7BJ,CoJht7BA,sBAUI,WpJys7BJ,CoJnt7BA,yBAUI,WpJ4s7BJ,CoJtt7BA,uBAUI,WpJ+s7BJ,CoJzt7BA,0BAUI,WpJkt7BJ,CoJ5t7BA,0BAUI,apJqt7BJ,CoJ/t7BA,iBAUI,OpJwt7BJ,CoJlu7BA,oBAUI,UpJ2t7BJ,CoJru7BA,oBAUI,UpJ8t7BJ,CACF,C+Bpy7BI,gCqH2DF,uDAUI,gBpJmu7BJ,CoJ7u7BA,2DAUI,oBAAA,CAAA,uBpJ0u7BJ,CoJpv7BA,2DAUI,qBAAA,CAAA,sBpJkv7BJ,CoJ5v7BA,+DAUI,oBpJyv7BJ,CoJnw7BA,mEAUI,sBpJ+v7BJ,CoJzw7BA,qEAUI,uBpJqw7BJ,CoJ/w7BA,iEAUI,qBpJ2w7BJ,CoJrx7BA,uDAUI,gBpJix7BJ,CoJ3x7BA,2DAUI,oBAAA,CAAA,uBpJwx7BJ,CoJly7BA,2DAUI,qBAAA,CAAA,sBpJgy7BJ,CoJ1y7BA,+DAUI,oBpJuy7BJ,CoJjz7BA,mEAUI,sBpJ6y7BJ,CoJvz7BA,qEAUI,uBpJmz7BJ,CoJ7z7BA,iEAUI,qBpJyz7BJ,CoJn07BA,qDAUI,mBpJ+z7BJ,CoJz07BA,yDAUI,uBAAA,CAAA,0BpJs07BJ,CoJh17BA,yDAUI,wBAAA,CAAA,yBpJ807BJ,CoJx17BA,6DAUI,uBpJq17BJ,CoJ/17BA,iEAUI,yBpJ217BJ,CoJr27BA,mEAUI,0BpJi27BJ,CoJ327BA,+DAUI,wBpJu27BJ,CoJj37BA,mDAUI,kBpJ627BJ,CoJv37BA,uDAUI,sBAAA,CAAA,yBpJo37BJ,CoJ937BA,uDAUI,uBAAA,CAAA,wBpJ437BJ,CoJt47BA,2DAUI,sBpJm47BJ,CoJ747BA,+DAUI,wBpJy47BJ,CoJn57BA,iEAUI,yBpJ+47BJ,CoJz57BA,6DAUI,uBpJq57BJ,CoJ/57BA,uDAUI,mBpJ257BJ,CoJr67BA,2DAUI,uBAAA,CAAA,0BpJk67BJ,CoJ567BA,2DAUI,wBAAA,CAAA,yBpJ067BJ,CoJp77BA,+DAUI,uBpJi77BJ,CoJ377BA,mEAUI,yBpJu77BJ,CoJj87BA,qEAUI,0BpJ677BJ,CoJv87BA,iEAUI,wBpJm87BJ,CoJ787BA,mDAUI,iBpJy87BJ,CoJn97BA,uDAUI,qBAAA,CAAA,wBpJg97BJ,CoJ197BA,uDAUI,sBAAA,CAAA,uBpJw97BJ,CoJl+7BA,2DAUI,qBpJ+97BJ,CoJz+7BA,+DAUI,uBpJq+7BJ,CoJ/+7BA,iEAUI,wBpJ2+7BJ,CoJr/7BA,6DAUI,sBpJi/7BJ,CoJ3/7BA,uDAUI,oBpJu/7BJ,CoJjg8BA,2DAUI,wBAAA,CAAA,2BpJ8/7BJ,CoJxg8BA,2DAUI,yBAAA,CAAA,0BpJsg8BJ,CoJhh8BA,+DAUI,wBpJ6g8BJ,CoJvh8BA,mEAUI,0BpJmh8BJ,CoJ7h8BA,qEAUI,2BpJyh8BJ,CoJni8BA,iEAUI,yBpJ+h8BJ,CoJzi8BA,mDAUI,mBpJqi8BJ,CoJ/i8BA,uDAUI,uBAAA,CAAA,0BpJ4i8BJ,CoJtj8BA,uDAUI,wBAAA,CAAA,yBpJoj8BJ,CoJ9j8BA,2DAUI,uBpJ2j8BJ,CoJrk8BA,+DAUI,yBpJik8BJ,CoJ3k8BA,iEAUI,0BpJuk8BJ,CoJjl8BA,6DAUI,wBpJ6k8BJ,CoJvl8BA,mDAUI,cpJml8BJ,CoJ7l8BA,uDAUI,kBAAA,CAAA,qBpJ0l8BJ,CoJpm8BA,uDAUI,mBAAA,CAAA,oBpJkm8BJ,CoJ5m8BA,2DAUI,kBpJym8BJ,CoJnn8BA,+DAUI,oBpJ+m8BJ,CoJzn8BA,iEAUI,qBpJqn8BJ,CoJ/n8BA,6DAUI,mBpJ2n8BJ,CoJro8BA,+CAUI,gBpJio8BJ,CoJ3o8BA,mDAUI,oBAAA,CAAA,uBpJwo8BJ,CoJlp8BA,mDAUI,qBAAA,CAAA,sBpJgp8BJ,CoJ1p8BA,uDAUI,oBpJup8BJ,CoJjq8BA,2DAUI,sBpJ6p8BJ,CoJvq8BA,6DAUI,uBpJmq8BJ,CoJ7q8BA,yDAUI,qBpJyq8BJ,CoJnr8BA,uEAUI,wBpJ+q8BJ,CoJzr8BA,2DAUI,iBpJqr8BJ,CoJ/r8BA,2DAUI,iBpJ2r8BJ,CoJrs8BA,uDAUI,oBpJis8BJ,CoJ3s8BA,6DAUI,oBpJus8BJ,CoJjt8BA,yDAUI,oBpJ6s8BJ,CoJvt8BA,6DAUI,oBpJmt8BJ,CoJ7t8BA,2DAUI,oBpJyt8BJ,CoJnu8BA,yDAUI,oBpJ+t8BJ,CoJzu8BA,yDAUI,oBpJqu8BJ,CoJ/u8BA,yDAUI,oBpJ2u8BJ,CoJrv8BA,6DAUI,oBpJiv8BJ,CoJ3v8BA,6DAUI,oBpJuv8BJ,CoJjw8BA,+DAUI,oBpJ6v8BJ,CoJvw8BA,6DAUI,oBpJmw8BJ,CoJ7w8BA,+DAUI,oBpJyw8BJ,CoJnx8BA,+DAUI,oBpJ+w8BJ,CoJzx8BA,+DAUI,oBpJqx8BJ,CoJ/x8BA,+DAUI,oBpJ2x8BJ,CoJry8BA,+DAUI,oBpJiy8BJ,CoJ3y8BA,2EAUI,oBpJuy8BJ,CoJjz8BA,yEAUI,oBpJ6y8BJ,CoJvz8BA,qEAUI,oBpJmz8BJ,CoJ7z8BA,yDAUI,oBpJyz8BJ,CoJn08BA,mEAUI,oBpJ+z8BJ,CoJz08BA,uEAUI,oBpJq08BJ,CoJ/08BA,gIAUI,oBpJ208BJ,CoJr18BA,+EAUI,oBpJu18BJ,CoJj28BA,2EAUI,oBpJ618BJ,CoJv28BA,+DAUI,oBpJm28BJ,CoJ728BA,2EAUI,oBpJy28BJ,CoJn38BA,yEAUI,oBpJ+28BJ,CoJz38BA,6EAUI,oBpJq38BJ,CoJ/38BA,mFAUI,oBpJ238BJ,CoJr48BA,+EAUI,oBpJi48BJ,CoJ348BA,mEAUI,oBpJu48BJ,CoJj58BA,+EAUI,oBpJ648BJ,CoJv58BA,6EAUI,oBpJm58BJ,CoJ758BA,iFAUI,oBpJy58BJ,CoJn68BA,qFAUI,oBpJ+58BJ,CoJz68BA,iFAUI,oBpJq68BJ,CoJ/68BA,uEAUI,oBpJ268BJ,CoJr78BA,mFAUI,oBpJi78BJ,CoJ378BA,uFAUI,oBpJu78BJ,CoJj88BA,qFAUI,oBpJ678BJ,CoJv88BA,iFAUI,oBpJm88BJ,CoJ788BA,uEAUI,oBpJy88BJ,CoJn98BA,mFAUI,oBpJ+88BJ,CoJz98BA,uFAUI,oBpJq98BJ,CoJ/98BA,2EAUI,oBpJ298BJ,CoJr+8BA,uEAUI,oBpJi+8BJ,CoJ3+8BA,2DAUI,oBpJu+8BJ,CoJj/8BA,qEAUI,oBpJ6+8BJ,CoJv/8BA,yEAUI,oBpJm/8BJ,CoJ7/8BA,+EAUI,oBpJy/8BJ,CoJng9BA,2EAUI,oBpJ+/8BJ,CoJzg9BA,+DAUI,oBpJqg9BJ,CoJ/g9BA,yEAUI,oBpJ2g9BJ,CoJrh9BA,6EAUI,oBpJih9BJ,CoJ3h9BA,+EAUI,oBpJuh9BJ,CoJji9BA,2EAUI,oBpJ6h9BJ,CoJvi9BA,+DAUI,oBpJmi9BJ,CoJ7i9BA,yEAUI,oBpJyi9BJ,CoJnj9BA,6EAUI,oBpJ+i9BJ,CoJzj9BA,yEAUI,oBpJqj9BJ,CoJ/j9BA,qEAUI,oBpJ2j9BJ,CoJrk9BA,yDAUI,oBpJik9BJ,CoJ3k9BA,mEAUI,oBpJuk9BJ,CoJjl9BA,uEAUI,oBpJ6k9BJ,CoJvl9BA,iFAUI,oBpJml9BJ,CoJ7l9BA,6EAUI,oBpJyl9BJ,CoJnm9BA,iEAUI,oBpJ+l9BJ,CoJzm9BA,2EAUI,oBpJqm9BJ,CoJ/m9BA,+EAUI,oBpJ2m9BJ,CoJrn9BA,mEAUI,oBpJin9BJ,CoJ3n9BA,6EAUI,oBpJun9BJ,CoJjo9BA,mBAUI,epJ6n9BJ,CoJvo9BA,uBAUI,wBAAA,CAAA,yBpJio9BJ,CoJ3o9BA,yBAUI,yBAAA,CAAA,4BpJqo9BJ,CoJ/o9BA,0BAUI,2BAAA,CAAA,4BpJyo9BJ,CoJnp9BA,wBAUI,wBAAA,CAAA,2BpJ6o9BJ,CoJvp9BA,oBAUI,iBpJgp9BJ,CoJ1p9BA,wBAUI,0BAAA,CAAA,2BpJop9BJ,CoJ9p9BA,0BAUI,2BAAA,CAAA,8BpJwp9BJ,CoJlq9BA,2BAUI,6BAAA,CAAA,8BpJ4p9BJ,CoJtq9BA,yBAUI,0BAAA,CAAA,6BpJgq9BJ,CoJ1q9BA,oBAUI,oBpJmq9BJ,CoJ7q9BA,wBAUI,6BAAA,CAAA,8BpJuq9BJ,CoJjr9BA,0BAUI,8BAAA,CAAA,iCpJ2q9BJ,CoJrr9BA,2BAUI,gCAAA,CAAA,iCpJ+q9BJ,CoJzr9BA,yBAUI,6BAAA,CAAA,gCpJmr9BJ,CoJ7r9BA,oBAUI,mBpJsr9BJ,CoJhs9BA,wBAUI,4BAAA,CAAA,6BpJ0r9BJ,CoJps9BA,0BAUI,6BAAA,CAAA,gCpJ8r9BJ,CoJxs9BA,2BAUI,+BAAA,CAAA,gCpJks9BJ,CoJ5s9BA,yBAUI,4BAAA,CAAA,+BpJss9BJ,CoJht9BA,sBAUI,mBpJys9BJ,CoJnt9BA,0BAUI,4BAAA,CAAA,6BpJ6s9BJ,CoJvt9BA,4BAUI,6BAAA,CAAA,gCpJit9BJ,CoJ3t9BA,6BAUI,+BAAA,CAAA,gCpJqt9BJ,CoJ/t9BA,2BAUI,4BAAA,CAAA,+BpJyt9BJ,CoJnu9BA,wBAUI,apJ4t9BJ,CoJtu9BA,uBAUI,YpJ+t9BJ,CoJzu9BA,uBAUI,YpJku9BJ,CoJ5u9BA,yBAUI,cpJqu9BJ,CoJ/u9BA,+BAUI,oBpJwu9BJ,CoJlv9BA,8BAUI,mBpJ2u9BJ,CoJrv9BA,wBAUI,apJ8u9BJ,CoJxv9BA,6BAUI,kBpJiv9BJ,CoJ3v9BA,4BAUI,iBpJov9BJ,CoJ9v9BA,wBAUI,gBpJuv9BJ,CoJjw9BA,wBAUI,gBpJ0v9BJ,CoJpw9BA,uBAUI,gBpJ6v9BJ,CoJvw9BA,uBAUI,gBpJgw9BJ,CoJ1w9BA,uBAUI,iBpJmw9BJ,CoJ7w9BA,uBAUI,iBpJsw9BJ,CoJhx9BA,uBAUI,iBpJyw9BJ,CoJnx9BA,wBAUI,iBpJ4w9BJ,CoJtx9BA,wBAUI,iBpJ+w9BJ,CoJzx9BA,wBAUI,gBpJkx9BJ,CoJ5x9BA,wBAUI,gBpJqx9BJ,CoJ/x9BA,uBAUI,cpJwx9BJ,CoJly9BA,uBAUI,iBpJ2x9BJ,CoJry9BA,uBAUI,iBpJ8x9BJ,CoJxy9BA,uBAUI,iBpJiy9BJ,CoJ3y9BA,uBAUI,iBpJoy9BJ,CoJ9y9BA,wBAUI,iBpJuy9BJ,CoJjz9BA,wBAUI,iBpJ0y9BJ,CoJpz9BA,yBAUI,gBpJ6y9BJ,CoJvz9BA,yBAUI,gBpJgz9BJ,CoJ1z9BA,wBAUI,gBpJmz9BJ,CoJ7z9BA,wBAUI,gBpJsz9BJ,CoJh09BA,wBAUI,iBpJyz9BJ,CoJn09BA,wBAUI,iBpJ4z9BJ,CoJt09BA,wBAUI,iBpJ+z9BJ,CoJz09BA,yBAUI,iBpJk09BJ,CoJ509BA,yBAUI,iBpJq09BJ,CoJ/09BA,2BAUI,gBpJw09BJ,CoJl19BA,2BAUI,gBpJ209BJ,CoJr19BA,0BAUI,gBpJ809BJ,CoJx19BA,0BAUI,gBpJi19BJ,CoJ319BA,0BAUI,iBpJo19BJ,CoJ919BA,0BAUI,iBpJu19BJ,CoJj29BA,0BAUI,iBpJ019BJ,CoJp29BA,2BAUI,iBpJ619BJ,CoJv29BA,2BAUI,iBpJg29BJ,CoJ129BA,wBAUI,gBpJm29BJ,CoJ729BA,wBAUI,gBpJs29BJ,CoJh39BA,uBAUI,cpJy29BJ,CoJn39BA,uBAUI,iBpJ429BJ,CoJt39BA,uBAUI,iBpJ+29BJ,CoJz39BA,uBAUI,iBpJk39BJ,CoJ539BA,uBAUI,iBpJq39BJ,CoJ/39BA,wBAUI,iBpJw39BJ,CoJl49BA,wBAUI,iBpJ239BJ,CoJr49BA,wBAUI,gBpJ839BJ,CoJx49BA,wBAUI,gBpJi49BJ,CoJ349BA,uBAUI,gBpJo49BJ,CoJ949BA,uBAUI,gBpJu49BJ,CoJj59BA,uBAUI,iBpJ049BJ,CoJp59BA,uBAUI,iBpJ649BJ,CoJv59BA,uBAUI,iBpJg59BJ,CoJ159BA,wBAUI,iBpJm59BJ,CoJ759BA,wBAUI,iBpJs59BJ,CoJh69BA,uBAUI,gBpJy59BJ,CoJn69BA,uBAUI,gBpJ459BJ,CoJt69BA,sBAUI,gBpJ+59BJ,CoJz69BA,sBAUI,gBpJk69BJ,CoJ569BA,sBAUI,iBpJq69BJ,CoJ/69BA,sBAUI,iBpJw69BJ,CoJl79BA,sBAUI,iBpJ269BJ,CoJr79BA,uBAUI,iBpJ869BJ,CoJx79BA,uBAUI,iBpJi79BJ,CoJ379BA,sBAUI,gBpJo79BJ,CoJ979BA,sBAUI,gBpJu79BJ,CoJj89BA,qBAUI,cpJ079BJ,CoJp89BA,qBAUI,iBpJ679BJ,CoJv89BA,qBAUI,iBpJg89BJ,CoJ189BA,qBAUI,iBpJm89BJ,CoJ789BA,qBAUI,iBpJs89BJ,CoJh99BA,sBAUI,iBpJy89BJ,CoJn99BA,sBAUI,iBpJ489BJ,CoJt99BA,qBAUI,epJ+89BJ,CoJz99BA,sBAUI,epJk99BJ,CoJ599BA,oBAUI,epJq99BJ,CoJ/99BA,8BAUI,sBpJw99BJ,CoJl+9BA,6BAUI,0BpJ299BJ,CoJr+9BA,2BAUI,wBpJ899BJ,CoJx+9BA,uBAUI,6BpJi+9BJ,CoJ3+9BA,6BAUI,cpJo+9BJ,CoJ9+9BA,6BAUI,epJu+9BJ,CoJj/9BA,6BAUI,epJ0+9BJ,CoJp/9BA,6BAUI,epJ6+9BJ,CoJv/9BA,6BAUI,epJg/9BJ,CoJ1/9BA,6BAUI,epJm/9BJ,CoJ7/9BA,8BAUI,apJs/9BJ,CoJhg+BA,8BAUI,epJy/9BJ,CoJng+BA,8BAUI,epJ4/9BJ,CoJtg+BA,8BAUI,epJ+/9BJ,CoJzg+BA,8BAUI,epJkg+BJ,CoJ5g+BA,8BAUI,epJqg+BJ,CoJ/g+BA,6BAUI,apJwg+BJ,CoJlh+BA,6BAUI,epJ2g+BJ,CoJrh+BA,6BAUI,epJ8g+BJ,CoJxh+BA,6BAUI,epJih+BJ,CoJ3h+BA,6BAUI,epJoh+BJ,CoJ9h+BA,6BAUI,epJuh+BJ,CoJji+BA,gCAUI,apJ0h+BJ,CoJpi+BA,gCAUI,epJ6h+BJ,CoJvi+BA,gCAUI,epJgi+BJ,CoJ1i+BA,gCAUI,epJmi+BJ,CoJ7i+BA,gCAUI,epJsi+BJ,CoJhj+BA,gCAUI,epJyi+BJ,CoJnj+BA,2BAUI,cpJ4i+BJ,CoJtj+BA,2BAUI,epJ+i+BJ,CoJzj+BA,2BAUI,epJkj+BJ,CoJ5j+BA,2BAUI,epJqj+BJ,CoJ/j+BA,2BAUI,epJwj+BJ,CoJlk+BA,2BAUI,epJ2j+BJ,CoJrk+BA,6BAUI,cpJ8j+BJ,CoJxk+BA,6BAUI,epJik+BJ,CoJ3k+BA,6BAUI,epJok+BJ,CoJ9k+BA,6BAUI,epJuk+BJ,CoJjl+BA,6BAUI,epJ0k+BJ,CoJpl+BA,6BAUI,epJ6k+BJ,CoJvl+BA,6BAUI,apJgl+BJ,CoJ1l+BA,6BAUI,epJml+BJ,CoJ7l+BA,6BAUI,epJsl+BJ,CoJhm+BA,6BAUI,epJyl+BJ,CoJnm+BA,6BAUI,epJ4l+BJ,CoJtm+BA,6BAUI,epJ+l+BJ,CoJzm+BA,4BAUI,apJkm+BJ,CoJ5m+BA,4BAUI,epJqm+BJ,CoJ/m+BA,4BAUI,epJwm+BJ,CoJln+BA,4BAUI,epJ2m+BJ,CoJrn+BA,4BAUI,epJ8m+BJ,CoJxn+BA,4BAUI,epJin+BJ,CoJ3n+BA,yBAUI,WpJon+BJ,CoJ9n+BA,yBAUI,WpJun+BJ,CoJjo+BA,wBAUI,cpJ0n+BJ,CoJpo+BA,uBAUI,apJ6n+BJ,CoJvo+BA,yBAUI,cpJgo+BJ,CoJ1o+BA,uBAUI,YpJmo+BJ,CoJ7o+BA,yBAUI,epJso+BJ,CoJhp+BA,uBAUI,cpJyo+BJ,CoJnp+BA,qBAUI,UpJ4o+BJ,CoJtp+BA,qBAUI,UpJ+o+BJ,CoJzp+BA,oBAUI,apJkp+BJ,CoJ5p+BA,mBAUI,YpJqp+BJ,CoJ/p+BA,qBAUI,apJwp+BJ,CoJlq+BA,mBAUI,WpJ2p+BJ,CoJrq+BA,qBAUI,cpJ8p+BJ,CoJxq+BA,mBAUI,apJiq+BJ,CoJ3q+BA,uBAUI,YpJoq+BJ,CoJ9q+BA,uBAUI,cpJuq+BJ,CoJjr+BA,uBAUI,YpJ0q+BJ,CoJpr+BA,uBAUI,cpJ6q+BJ,CoJvr+BA,uBAUI,YpJgr+BJ,CoJ1r+BA,uBAUI,cpJmr+BJ,CoJ7r+BA,wBAUI,YpJsr+BJ,CoJhs+BA,wBAUI,cpJyr+BJ,CoJns+BA,mBAUI,WpJ4r+BJ,CoJts+BA,mBAUI,apJ+r+BJ,CoJzs+BA,mBAUI,WpJks+BJ,CoJ5s+BA,mBAUI,apJqs+BJ,CoJ/s+BA,mBAUI,WpJws+BJ,CoJlt+BA,mBAUI,apJ2s+BJ,CoJrt+BA,oBAUI,WpJ8s+BJ,CoJxt+BA,oBAUI,apJit+BJ,CoJ3t+BA,sBAUI,WpJot+BJ,CoJ9t+BA,qBAUI,UpJut+BJ,CoJju+BA,uBAUI,YpJ0t+BJ,CoJpu+BA,qBAUI,UpJ6t+BJ,CoJvu+BA,mBAUI,QpJgu+BJ,CoJ1u+BA,uBAUI,cAAA,CAAA,iBpJou+BJ,CoJ9u+BA,yBAUI,cpJuu+BJ,CoJjv+BA,4BAUI,iBpJ0u+BJ,CoJpv+BA,uBAUI,cAAA,CAAA,iBpJ8u+BJ,CoJxv+BA,yBAUI,cpJiv+BJ,CoJ3v+BA,4BAUI,iBpJov+BJ,CoJ9v+BA,sBAUI,iBAAA,CAAA,oBpJwv+BJ,CoJlw+BA,wBAUI,iBpJ2v+BJ,CoJrw+BA,2BAUI,oBpJ8v+BJ,CoJxw+BA,qBAUI,gBAAA,CAAA,mBpJkw+BJ,CoJ5w+BA,uBAUI,gBpJqw+BJ,CoJ/w+BA,0BAUI,mBpJww+BJ,CoJlx+BA,uBAUI,iBAAA,CAAA,oBpJ4w+BJ,CoJtx+BA,yBAUI,iBpJ+w+BJ,CoJzx+BA,4BAUI,oBpJkx+BJ,CoJ5x+BA,qBAUI,eAAA,CAAA,kBpJsx+BJ,CoJhy+BA,uBAUI,epJyx+BJ,CoJny+BA,0BAUI,kBpJ4x+BJ,CoJty+BA,uBAUI,kBAAA,CAAA,qBpJgy+BJ,CoJ1y+BA,yBAUI,kBpJmy+BJ,CoJ7y+BA,4BAUI,qBpJsy+BJ,CoJhz+BA,qBAUI,iBAAA,CAAA,oBpJ0y+BJ,CoJpz+BA,uBAUI,iBpJ6y+BJ,CoJvz+BA,0BAUI,oBpJgz+BJ,CoJ1z+BA,2BAUI,eAAA,CAAA,kBpJoz+BJ,CoJ9z+BA,6BAUI,epJuz+BJ,CoJj0+BA,gCAUI,kBpJ0z+BJ,CoJp0+BA,2BAUI,eAAA,CAAA,kBpJ8z+BJ,CoJx0+BA,6BAUI,epJi0+BJ,CoJ30+BA,gCAUI,kBpJo0+BJ,CoJ90+BA,0BAUI,kBAAA,CAAA,qBpJw0+BJ,CoJl1+BA,4BAUI,kBpJ20+BJ,CoJr1+BA,+BAUI,qBpJ80+BJ,CoJx1+BA,yBAUI,iBAAA,CAAA,oBpJk1+BJ,CoJ51+BA,2BAUI,iBpJq1+BJ,CoJ/1+BA,8BAUI,oBpJw1+BJ,CoJl2+BA,2BAUI,kBAAA,CAAA,qBpJ41+BJ,CoJt2+BA,6BAUI,kBpJ+1+BJ,CoJz2+BA,gCAUI,qBpJk2+BJ,CoJ52+BA,yBAUI,gBAAA,CAAA,mBpJs2+BJ,CoJh3+BA,2BAUI,gBpJy2+BJ,CoJn3+BA,8BAUI,mBpJ42+BJ,CoJt3+BA,2BAUI,mBAAA,CAAA,sBpJg3+BJ,CoJ13+BA,6BAUI,mBpJm3+BJ,CoJ73+BA,gCAUI,sBpJs3+BJ,CoJh4+BA,yBAUI,kBAAA,CAAA,qBpJ03+BJ,CoJp4+BA,2BAUI,kBpJ63+BJ,CoJv4+BA,8BAUI,qBpJg4+BJ,CoJ14+BA,yBAUI,gBAAA,CAAA,mBpJo4+BJ,CoJ94+BA,2BAUI,gBpJu4+BJ,CoJj5+BA,8BAUI,mBpJ04+BJ,CoJp5+BA,yBAUI,kBAAA,CAAA,qBpJ84+BJ,CoJx5+BA,2BAUI,kBpJi5+BJ,CoJ35+BA,8BAUI,qBpJo5+BJ,CoJ95+BA,yBAUI,gBAAA,CAAA,mBpJw5+BJ,CoJl6+BA,2BAUI,gBpJ25+BJ,CoJr6+BA,8BAUI,mBpJ85+BJ,CoJx6+BA,yBAUI,kBAAA,CAAA,qBpJk6+BJ,CoJ56+BA,2BAUI,kBpJq6+BJ,CoJ/6+BA,8BAUI,qBpJw6+BJ,CoJl7+BA,yBAUI,gBAAA,CAAA,mBpJ46+BJ,CoJt7+BA,2BAUI,gBpJ+6+BJ,CoJz7+BA,8BAUI,mBpJk7+BJ,CoJ57+BA,yBAUI,kBAAA,CAAA,qBpJs7+BJ,CoJh8+BA,2BAUI,kBpJy7+BJ,CoJn8+BA,8BAUI,qBpJ47+BJ,CoJt8+BA,0BAUI,gBAAA,CAAA,mBpJg8+BJ,CoJ18+BA,4BAUI,gBpJm8+BJ,CoJ78+BA,+BAUI,mBpJs8+BJ,CoJh9+BA,0BAUI,kBAAA,CAAA,qBpJ08+BJ,CoJp9+BA,4BAUI,kBpJ68+BJ,CoJv9+BA,+BAUI,qBpJg9+BJ,CoJ19+BA,qBAUI,eAAA,CAAA,kBpJo9+BJ,CoJ99+BA,uBAUI,epJu9+BJ,CoJj++BA,0BAUI,kBpJ09+BJ,CoJp++BA,qBAUI,iBAAA,CAAA,oBpJ89+BJ,CoJx++BA,uBAUI,iBpJi++BJ,CoJ3++BA,0BAUI,oBpJo++BJ,CoJ9++BA,qBAUI,eAAA,CAAA,kBpJw++BJ,CoJl/+BA,uBAUI,epJ2++BJ,CoJr/+BA,0BAUI,kBpJ8++BJ,CoJx/+BA,qBAUI,iBAAA,CAAA,oBpJk/+BJ,CoJ5/+BA,uBAUI,iBpJq/+BJ,CoJ//+BA,0BAUI,oBpJw/+BJ,CoJlg/BA,qBAUI,eAAA,CAAA,kBpJ4/+BJ,CoJtg/BA,uBAUI,epJ+/+BJ,CoJzg/BA,0BAUI,kBpJkg/BJ,CoJ5g/BA,qBAUI,iBAAA,CAAA,oBpJsg/BJ,CoJhh/BA,uBAUI,iBpJyg/BJ,CoJnh/BA,0BAUI,oBpJ4g/BJ,CoJth/BA,sBAUI,eAAA,CAAA,kBpJgh/BJ,CoJ1h/BA,wBAUI,epJmh/BJ,CoJ7h/BA,2BAUI,kBpJsh/BJ,CoJhi/BA,sBAUI,iBAAA,CAAA,oBpJ0h/BJ,CoJpi/BA,wBAUI,iBpJ6h/BJ,CoJvi/BA,2BAUI,oBpJgi/BJ,CoJ1i/BA,wBAUI,eAAA,CAAA,kBpJoi/BJ,CoJ9i/BA,0BAUI,epJui/BJ,CoJjj/BA,6BAUI,kBpJ0i/BJ,CoJpj/BA,uBAUI,cAAA,CAAA,iBpJ8i/BJ,CoJxj/BA,yBAUI,cpJij/BJ,CoJ3j/BA,4BAUI,iBpJoj/BJ,CoJ9j/BA,yBAUI,gBAAA,CAAA,mBpJwj/BJ,CoJlk/BA,2BAUI,gBpJ2j/BJ,CoJrk/BA,8BAUI,mBpJ8j/BJ,CoJxk/BA,uBAUI,cAAA,CAAA,iBpJkk/BJ,CoJ5k/BA,yBAUI,cpJqk/BJ,CoJ/k/BA,4BAUI,iBpJwk/BJ,CoJll/BA,qBAUI,YAAA,CAAA,epJ4k/BJ,CoJtl/BA,uBAUI,YpJ+k/BJ,CoJzl/BA,0BAUI,epJkl/BJ,CoJ5l/BA,wBAUI,eAAA,CAAA,kBpJsl/BJ,CoJhm/BA,0BAUI,epJyl/BJ,CoJnm/BA,6BAUI,kBpJ4l/BJ,CoJtm/BA,uBAUI,eAAA,CAAA,gBpJgm/BJ,CoJ1m/BA,2BAUI,gBpJmm/BJ,CoJ7m/BA,0BAUI,epJsm/BJ,CoJhn/BA,uBAUI,eAAA,CAAA,gBpJ0m/BJ,CoJpn/BA,2BAUI,gBpJ6m/BJ,CoJvn/BA,0BAUI,epJgn/BJ,CoJ1n/BA,sBAUI,kBAAA,CAAA,mBpJon/BJ,CoJ9n/BA,0BAUI,mBpJun/BJ,CoJjo/BA,yBAUI,kBpJ0n/BJ,CoJpo/BA,qBAUI,iBAAA,CAAA,kBpJ8n/BJ,CoJxo/BA,yBAUI,kBpJio/BJ,CoJ3o/BA,wBAUI,iBpJoo/BJ,CoJ9o/BA,uBAUI,kBAAA,CAAA,mBpJwo/BJ,CoJlp/BA,2BAUI,mBpJ2o/BJ,CoJrp/BA,0BAUI,kBpJ8o/BJ,CoJxp/BA,qBAUI,gBAAA,CAAA,iBpJkp/BJ,CoJ5p/BA,yBAUI,iBpJqp/BJ,CoJ/p/BA,wBAUI,gBpJwp/BJ,CoJlq/BA,uBAUI,mBAAA,CAAA,oBpJ4p/BJ,CoJtq/BA,2BAUI,oBpJ+p/BJ,CoJzq/BA,0BAUI,mBpJkq/BJ,CoJ5q/BA,qBAUI,kBAAA,CAAA,mBpJsq/BJ,CoJhr/BA,yBAUI,mBpJyq/BJ,CoJnr/BA,wBAUI,kBpJ4q/BJ,CoJtr/BA,2BAUI,gBAAA,CAAA,iBpJgr/BJ,CoJ1r/BA,+BAUI,iBpJmr/BJ,CoJ7r/BA,8BAUI,gBpJsr/BJ,CoJhs/BA,2BAUI,gBAAA,CAAA,iBpJ0r/BJ,CoJps/BA,+BAUI,iBpJ6r/BJ,CoJvs/BA,8BAUI,gBpJgs/BJ,CoJ1s/BA,0BAUI,mBAAA,CAAA,oBpJos/BJ,CoJ9s/BA,8BAUI,oBpJus/BJ,CoJjt/BA,6BAUI,mBpJ0s/BJ,CoJpt/BA,yBAUI,kBAAA,CAAA,mBpJ8s/BJ,CoJxt/BA,6BAUI,mBpJit/BJ,CoJ3t/BA,4BAUI,kBpJot/BJ,CoJ9t/BA,2BAUI,mBAAA,CAAA,oBpJwt/BJ,CoJlu/BA,+BAUI,oBpJ2t/BJ,CoJru/BA,8BAUI,mBpJ8t/BJ,CoJxu/BA,yBAUI,iBAAA,CAAA,kBpJku/BJ,CoJ5u/BA,6BAUI,kBpJqu/BJ,CoJ/u/BA,4BAUI,iBpJwu/BJ,CoJlv/BA,2BAUI,oBAAA,CAAA,qBpJ4u/BJ,CoJtv/BA,+BAUI,qBpJ+u/BJ,CoJzv/BA,8BAUI,oBpJkv/BJ,CoJ5v/BA,yBAUI,mBAAA,CAAA,oBpJsv/BJ,CoJhw/BA,6BAUI,oBpJyv/BJ,CoJnw/BA,4BAUI,mBpJ4v/BJ,CoJtw/BA,yBAUI,iBAAA,CAAA,kBpJgw/BJ,CoJ1w/BA,6BAUI,kBpJmw/BJ,CoJ7w/BA,4BAUI,iBpJsw/BJ,CoJhx/BA,yBAUI,mBAAA,CAAA,oBpJ0w/BJ,CoJpx/BA,6BAUI,oBpJ6w/BJ,CoJvx/BA,4BAUI,mBpJgx/BJ,CoJ1x/BA,yBAUI,iBAAA,CAAA,kBpJox/BJ,CoJ9x/BA,6BAUI,kBpJux/BJ,CoJjy/BA,4BAUI,iBpJ0x/BJ,CoJpy/BA,yBAUI,mBAAA,CAAA,oBpJ8x/BJ,CoJxy/BA,6BAUI,oBpJiy/BJ,CoJ3y/BA,4BAUI,mBpJoy/BJ,CoJ9y/BA,yBAUI,iBAAA,CAAA,kBpJwy/BJ,CoJlz/BA,6BAUI,kBpJ2y/BJ,CoJrz/BA,4BAUI,iBpJ8y/BJ,CoJxz/BA,yBAUI,mBAAA,CAAA,oBpJkz/BJ,CoJ5z/BA,6BAUI,oBpJqz/BJ,CoJ/z/BA,4BAUI,mBpJwz/BJ,CoJl0/BA,0BAUI,iBAAA,CAAA,kBpJ4z/BJ,CoJt0/BA,8BAUI,kBpJ+z/BJ,CoJz0/BA,6BAUI,iBpJk0/BJ,CoJ50/BA,0BAUI,mBAAA,CAAA,oBpJs0/BJ,CoJh1/BA,8BAUI,oBpJy0/BJ,CoJn1/BA,6BAUI,mBpJ40/BJ,CoJt1/BA,qBAUI,gBAAA,CAAA,iBpJg1/BJ,CoJ11/BA,yBAUI,iBpJm1/BJ,CoJ71/BA,wBAUI,gBpJs1/BJ,CoJh2/BA,qBAUI,kBAAA,CAAA,mBpJ01/BJ,CoJp2/BA,yBAUI,mBpJ61/BJ,CoJv2/BA,wBAUI,kBpJg2/BJ,CoJ12/BA,qBAUI,gBAAA,CAAA,iBpJo2/BJ,CoJ92/BA,yBAUI,iBpJu2/BJ,CoJj3/BA,wBAUI,gBpJ02/BJ,CoJp3/BA,qBAUI,kBAAA,CAAA,mBpJ82/BJ,CoJx3/BA,yBAUI,mBpJi3/BJ,CoJ33/BA,wBAUI,kBpJo3/BJ,CoJ93/BA,qBAUI,gBAAA,CAAA,iBpJw3/BJ,CoJl4/BA,yBAUI,iBpJ23/BJ,CoJr4/BA,wBAUI,gBpJ83/BJ,CoJx4/BA,qBAUI,kBAAA,CAAA,mBpJk4/BJ,CoJ54/BA,yBAUI,mBpJq4/BJ,CoJ/4/BA,wBAUI,kBpJw4/BJ,CoJl5/BA,sBAUI,gBAAA,CAAA,iBpJ44/BJ,CoJt5/BA,0BAUI,iBpJ+4/BJ,CoJz5/BA,yBAUI,gBpJk5/BJ,CoJ55/BA,sBAUI,kBAAA,CAAA,mBpJs5/BJ,CoJh6/BA,0BAUI,mBpJy5/BJ,CoJn6/BA,yBAUI,kBpJ45/BJ,CoJt6/BA,wBAUI,iBAAA,CAAA,kBpJg6/BJ,CoJ16/BA,4BAUI,kBpJm6/BJ,CoJ76/BA,2BAUI,iBpJs6/BJ,CoJh7/BA,2BAUI,iBAAA,CAAA,kBpJ06/BJ,CoJp7/BA,+BAUI,kBpJ66/BJ,CoJv7/BA,8BAUI,iBpJg7/BJ,CoJ17/BA,0BAUI,iBAAA,CAAA,kBpJo7/BJ,CoJ97/BA,8BAUI,kBpJu7/BJ,CoJj8/BA,6BAUI,iBpJ07/BJ,CoJp8/BA,wBAUI,gBAAA,CAAA,iBpJ87/BJ,CoJx8/BA,4BAUI,iBpJi8/BJ,CoJ38/BA,2BAUI,gBpJo8/BJ,CoJ98/BA,uBAUI,eAAA,CAAA,gBpJw8/BJ,CoJl9/BA,2BAUI,gBpJ28/BJ,CoJr9/BA,0BAUI,epJ88/BJ,CoJx9/BA,yBAUI,iBAAA,CAAA,kBpJk9/BJ,CoJ59/BA,6BAUI,kBpJq9/BJ,CoJ/9/BA,4BAUI,iBpJw9/BJ,CoJl+/BA,uBAUI,eAAA,CAAA,gBpJ49/BJ,CoJt+/BA,2BAUI,gBpJ+9/BJ,CoJz+/BA,0BAUI,epJk+/BJ,CoJ5+/BA,qBAUI,aAAA,CAAA,cpJs+/BJ,CoJh//BA,yBAUI,cpJy+/BJ,CoJn//BA,wBAUI,apJ4+/BJ,CoJt//BA,wBAUI,gBAAA,CAAA,iBpJg//BJ,CoJ1//BA,4BAUI,iBpJm//BJ,CoJ7//BA,2BAUI,gBpJs//BJ,CoJhggCA,oBAUI,cpJy//BJ,CoJnggCA,oBAUI,cpJ4//BJ,CoJtggCA,oBAUI,cpJ+//BJ,CoJzggCA,oBAUI,cpJkggCJ,CoJ5ggCA,oBAUI,cpJqggCJ,CoJ/ggCA,oBAUI,cpJwggCJ,CoJlhgCA,uBAUI,cpJ2ggCJ,CoJrhgCA,sBAUI,QpJ8ggCJ,CoJxhgCA,qBAUI,SpJihgCJ,CoJ3hgCA,wBAUI,apJohgCJ,CoJ9hgCA,kBAUI,OpJuhgCJ,CoJjigCA,kBAUI,OpJ0hgCJ,CoJpigCA,kBAUI,OpJ6hgCJ,CoJvigCA,kBAUI,OpJgigCJ,CoJ1igCA,kBAUI,OpJmigCJ,CoJ7igCA,kBAUI,OpJsigCJ,CoJhjgCA,kBAUI,OpJyigCJ,CoJnjgCA,kBAUI,OpJ4igCJ,CoJtjgCA,kBAUI,OpJ+igCJ,CoJzjgCA,kBAUI,OpJkjgCJ,CoJ5jgCA,mBAUI,QpJqjgCJ,CoJ/jgCA,mBAUI,QpJwjgCJ,CoJlkgCA,sBAUI,WpJ2jgCJ,CoJrkgCA,wBAUI,eAAA,CAAA,kBpJ+jgCJ,CoJzkgCA,wBAUI,gBAAA,CAAA,iBpJmkgCJ,CoJ7kgCA,0BAUI,epJskgCJ,CoJhlgCA,4BAUI,iBpJykgCJ,CoJnlgCA,6BAUI,kBpJ4kgCJ,CoJtlgCA,2BAUI,gBpJ+kgCJ,CoJzlgCA,sBAUI,WpJklgCJ,CoJ5lgCA,wBAUI,eAAA,CAAA,kBpJslgCJ,CoJhmgCA,wBAUI,gBAAA,CAAA,iBpJ0lgCJ,CoJpmgCA,0BAUI,epJ6lgCJ,CoJvmgCA,4BAUI,iBpJgmgCJ,CoJ1mgCA,6BAUI,kBpJmmgCJ,CoJ7mgCA,2BAUI,gBpJsmgCJ,CoJhngCA,qBAUI,cpJymgCJ,CoJnngCA,uBAUI,kBAAA,CAAA,qBpJ6mgCJ,CoJvngCA,uBAUI,mBAAA,CAAA,oBpJingCJ,CoJ3ngCA,yBAUI,kBpJongCJ,CoJ9ngCA,2BAUI,oBpJungCJ,CoJjogCA,4BAUI,qBpJ0ngCJ,CoJpogCA,0BAUI,mBpJ6ngCJ,CoJvogCA,oBAUI,apJgogCJ,CoJ1ogCA,sBAUI,iBAAA,CAAA,oBpJoogCJ,CoJ9ogCA,sBAUI,kBAAA,CAAA,mBpJwogCJ,CoJlpgCA,wBAUI,iBpJ2ogCJ,CoJrpgCA,0BAUI,mBpJ8ogCJ,CoJxpgCA,2BAUI,oBpJipgCJ,CoJ3pgCA,yBAUI,kBpJopgCJ,CoJ9pgCA,sBAUI,cpJupgCJ,CoJjqgCA,wBAUI,kBAAA,CAAA,qBpJ2pgCJ,CoJrqgCA,wBAUI,mBAAA,CAAA,oBpJ+pgCJ,CoJzqgCA,0BAUI,kBpJkqgCJ,CoJ5qgCA,4BAUI,oBpJqqgCJ,CoJ/qgCA,6BAUI,qBpJwqgCJ,CoJlrgCA,2BAUI,mBpJ2qgCJ,CoJrrgCA,oBAUI,YpJ8qgCJ,CoJxrgCA,sBAUI,gBAAA,CAAA,mBpJkrgCJ,CoJ5rgCA,sBAUI,iBAAA,CAAA,kBpJsrgCJ,CoJhsgCA,wBAUI,gBpJyrgCJ,CoJnsgCA,0BAUI,kBpJ4rgCJ,CoJtsgCA,2BAUI,mBpJ+rgCJ,CoJzsgCA,yBAUI,iBpJksgCJ,CoJ5sgCA,sBAUI,epJqsgCJ,CoJ/sgCA,wBAUI,mBAAA,CAAA,sBpJysgCJ,CoJntgCA,wBAUI,oBAAA,CAAA,qBpJ6sgCJ,CoJvtgCA,0BAUI,mBpJgtgCJ,CoJ1tgCA,4BAUI,qBpJmtgCJ,CoJ7tgCA,6BAUI,sBpJstgCJ,CoJhugCA,2BAUI,oBpJytgCJ,CoJnugCA,oBAUI,cpJ4tgCJ,CoJtugCA,sBAUI,kBAAA,CAAA,qBpJgugCJ,CoJ1ugCA,sBAUI,mBAAA,CAAA,oBpJougCJ,CoJ9ugCA,wBAUI,kBpJuugCJ,CoJjvgCA,0BAUI,oBpJ0ugCJ,CoJpvgCA,2BAUI,qBpJ6ugCJ,CoJvvgCA,yBAUI,mBpJgvgCJ,CoJ1vgCA,oBAUI,YpJmvgCJ,CoJ7vgCA,sBAUI,gBAAA,CAAA,mBpJuvgCJ,CoJjwgCA,sBAUI,iBAAA,CAAA,kBpJ2vgCJ,CoJrwgCA,wBAUI,gBpJ8vgCJ,CoJxwgCA,0BAUI,kBpJiwgCJ,CoJ3wgCA,2BAUI,mBpJowgCJ,CoJ9wgCA,yBAUI,iBpJuwgCJ,CoJjxgCA,oBAUI,cpJ0wgCJ,CoJpxgCA,sBAUI,kBAAA,CAAA,qBpJ8wgCJ,CoJxxgCA,sBAUI,mBAAA,CAAA,oBpJkxgCJ,CoJ5xgCA,wBAUI,kBpJqxgCJ,CoJ/xgCA,0BAUI,oBpJwxgCJ,CoJlygCA,2BAUI,qBpJ2xgCJ,CoJrygCA,yBAUI,mBpJ8xgCJ,CoJxygCA,oBAUI,YpJiygCJ,CoJ3ygCA,sBAUI,gBAAA,CAAA,mBpJqygCJ,CoJ/ygCA,sBAUI,iBAAA,CAAA,kBpJyygCJ,CoJnzgCA,wBAUI,gBpJ4ygCJ,CoJtzgCA,0BAUI,kBpJ+ygCJ,CoJzzgCA,2BAUI,mBpJkzgCJ,CoJ5zgCA,yBAUI,iBpJqzgCJ,CoJ/zgCA,oBAUI,cpJwzgCJ,CoJl0gCA,sBAUI,kBAAA,CAAA,qBpJ4zgCJ,CoJt0gCA,sBAUI,mBAAA,CAAA,oBpJg0gCJ,CoJ10gCA,wBAUI,kBpJm0gCJ,CoJ70gCA,0BAUI,oBpJs0gCJ,CoJh1gCA,2BAUI,qBpJy0gCJ,CoJn1gCA,yBAUI,mBpJ40gCJ,CoJt1gCA,oBAUI,YpJ+0gCJ,CoJz1gCA,sBAUI,gBAAA,CAAA,mBpJm1gCJ,CoJ71gCA,sBAUI,iBAAA,CAAA,kBpJu1gCJ,CoJj2gCA,wBAUI,gBpJ01gCJ,CoJp2gCA,0BAUI,kBpJ61gCJ,CoJv2gCA,2BAUI,mBpJg2gCJ,CoJ12gCA,yBAUI,iBpJm2gCJ,CoJ72gCA,oBAUI,cpJs2gCJ,CoJh3gCA,sBAUI,kBAAA,CAAA,qBpJ02gCJ,CoJp3gCA,sBAUI,mBAAA,CAAA,oBpJ82gCJ,CoJx3gCA,wBAUI,kBpJi3gCJ,CoJ33gCA,0BAUI,oBpJo3gCJ,CoJ93gCA,2BAUI,qBpJu3gCJ,CoJj4gCA,yBAUI,mBpJ03gCJ,CoJp4gCA,qBAUI,YpJ63gCJ,CoJv4gCA,uBAUI,gBAAA,CAAA,mBpJi4gCJ,CoJ34gCA,uBAUI,iBAAA,CAAA,kBpJq4gCJ,CoJ/4gCA,yBAUI,gBpJw4gCJ,CoJl5gCA,2BAUI,kBpJ24gCJ,CoJr5gCA,4BAUI,mBpJ84gCJ,CoJx5gCA,0BAUI,iBpJi5gCJ,CoJ35gCA,qBAUI,cpJo5gCJ,CoJ95gCA,uBAUI,kBAAA,CAAA,qBpJw5gCJ,CoJl6gCA,uBAUI,mBAAA,CAAA,oBpJ45gCJ,CoJt6gCA,yBAUI,kBpJ+5gCJ,CoJz6gCA,2BAUI,oBpJk6gCJ,CoJ56gCA,4BAUI,qBpJq6gCJ,CoJ/6gCA,0BAUI,mBpJw6gCJ,CoJl7gCA,oBAUI,SpJ26gCJ,CoJr7gCA,sBAUI,aAAA,CAAA,gBpJ+6gCJ,CoJz7gCA,sBAUI,cAAA,CAAA,epJm7gCJ,CoJ77gCA,wBAUI,apJs7gCJ,CoJh8gCA,0BAUI,epJy7gCJ,CoJn8gCA,2BAUI,gBpJ47gCJ,CoJt8gCA,yBAUI,cpJ+7gCJ,CoJz8gCA,oBAUI,SpJk8gCJ,CoJ58gCA,oBAUI,SpJq8gCJ,CoJ/8gCA,mBAUI,YpJw8gCJ,CoJl9gCA,kBAUI,WpJ28gCJ,CoJr9gCA,oBAUI,YpJ88gCJ,CoJx9gCA,kBAUI,UpJi9gCJ,CoJ39gCA,oBAUI,apJo9gCJ,CoJ99gCA,kBAUI,YpJu9gCJ,CoJj+gCA,kBAUI,UpJ09gCJ,CoJp+gCA,kBAUI,YpJ69gCJ,CoJv+gCA,kBAUI,UpJg+gCJ,CoJ1+gCA,kBAUI,YpJm+gCJ,CoJ7+gCA,kBAUI,UpJs+gCJ,CoJh/gCA,kBAUI,YpJy+gCJ,CoJn/gCA,mBAUI,UpJ4+gCJ,CoJt/gCA,mBAUI,YpJ++gCJ,CoJz/gCA,qBAUI,WpJk/gCJ,CoJ5/gCA,wBAUI,WpJq/gCJ,CoJ//gCA,uBAUI,WpJw/gCJ,CoJlghCA,0BAUI,WpJ2/gCJ,CoJrghCA,uBAUI,WpJ8/gCJ,CoJxghCA,0BAUI,WpJighCJ,CoJ3ghCA,wBAUI,WpJoghCJ,CoJ9ghCA,2BAUI,WpJughCJ,CoJjhhCA,2BAUI,apJ0ghCJ,CoJphhCA,kBAUI,OpJ6ghCJ,CoJvhhCA,qBAUI,UpJghhCJ,CoJ1hhCA,qBAUI,UpJmhhCJ,CACF","file":"uswds.min.css","sourcesContent":["@charset \"UTF-8\";\n/*! uswds @version */\n/* Document\n   ========================================================================== */\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\nhtml {\n  line-height: 1.15; /* 1 */\n  -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n   ========================================================================== */\n/**\n * Remove the margin in all browsers.\n */\nbody {\n  margin: 0;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\nh1 {\n  font-size: 2em;\n  margin: 0.67em 0;\n}\n\n/* Grouping content\n   ========================================================================== */\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Correct the inheritance of border color in Firefox.\n */\nhr {\n  box-sizing: content-box; /* 1 */\n  height: 0; /* 1 */\n  color: inherit; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\npre {\n  font-family: monospace, monospace; /* 1 */\n  font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n   ========================================================================== */\n/**\n * Add the correct text decoration in Safari.\n */\nabbr[title] {\n  text-decoration: underline;\n  text-decoration: underline dotted;\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\nb,\nstrong {\n  font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\ncode,\nkbd,\nsamp {\n  font-family: monospace, monospace; /* 1 */\n  font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\nsmall {\n  font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\nsub,\nsup {\n  font-size: 75%;\n  line-height: 0;\n  position: relative;\n  vertical-align: baseline;\n}\n\nsub {\n  bottom: -0.25em;\n}\n\nsup {\n  top: -0.5em;\n}\n\n/* Forms\n   ========================================================================== */\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n  font-family: inherit; /* 1 */\n  font-size: 100%; /* 1 */\n  line-height: 1.15; /* 1 */\n  margin: 0; /* 2 */\n}\n\n/**\n * Remove the inheritance of text transform in Firefox.\n */\nbutton,\nselect {\n  text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\nbutton,\n[type=button],\n[type=reset],\n[type=submit] {\n  -webkit-appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\nbutton::-moz-focus-inner,\n[type=button]::-moz-focus-inner,\n[type=reset]::-moz-focus-inner,\n[type=submit]::-moz-focus-inner {\n  border-style: none;\n  padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule in Firefox.\n */\nbutton:-moz-focusring,\n[type=button]:-moz-focusring,\n[type=reset]:-moz-focusring,\n[type=submit]:-moz-focusring {\n  outline: 1px dotted ButtonText;\n}\n\n/**\n * Remove the padding so developers are not caught out when they zero out `fieldset` elements in all browsers.\n */\nlegend {\n  padding: 0;\n}\n\n/**\n * Add the correct vertical alignment in Chrome and Firefox.\n */\nprogress {\n  vertical-align: baseline;\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Safari.\n */\n::-webkit-inner-spin-button,\n::-webkit-outer-spin-button {\n  height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n[type=search] {\n  -webkit-appearance: textfield; /* 1 */\n  outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n::-webkit-search-decoration {\n  -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n::-webkit-file-upload-button {\n  -webkit-appearance: button; /* 1 */\n  font: inherit; /* 2 */\n}\n\n/* Interactive\n   ========================================================================== */\n/**\n * Add the correct display in Chrome and Safari.\n */\nsummary {\n  display: list-item;\n}\n\n/*\n* * * * * ==============================\n* * * * * ==============================\n* * * * * ==============================\n* * * * * ==============================\n========================================\n========================================\n========================================\n----------------------------------------\nGENERAL SETTINGS\n----------------------------------------\nRead more about settings and\nUSWDS style tokens in the documentation:\nhttps://designsystem.digital.gov/design-tokens\n----------------------------------------\n*/\n/*\n----------------------------------------\nImage path\n----------------------------------------\nRelative image file path\n----------------------------------------\n*/\n/*\n----------------------------------------\nShow compile warnings\n----------------------------------------\nShow Sass warnings when functions and\nmixins use non-standard tokens.\nAND\nShow updates and notifications.\n----------------------------------------\n*/\n/*\n----------------------------------------\nNamespace\n----------------------------------------\n*/\n/*\n----------------------------------------\nPrefix separator\n----------------------------------------\nSet the character the separates\nresponsive and state prefixes from the\nmain class name.\nThe default (\":\") needs to be preceded\nby two backslashes to be properly\nescaped.\n----------------------------------------\n*/\n/*\n----------------------------------------\nLayout grid\n----------------------------------------\nShould the layout grid classes output\nwith !important\n----------------------------------------\n*/\n/*\n----------------------------------------\nBorder box sizing\n----------------------------------------\nWhen set to true, sets the box-sizing\nproperty of all site elements to\n`border-box`.\n----------------------------------------\n*/\n/*\n----------------------------------------\nFocus styles\n----------------------------------------\n*/\n/*\n----------------------------------------\nIcons\n----------------------------------------\n*/\n/*\n* * * * * ==============================\n* * * * * ==============================\n* * * * * ==============================\n* * * * * ==============================\n========================================\n========================================\n========================================\n----------------------------------------\nTYPOGRAPHY SETTINGS\n----------------------------------------\nRead more about settings and\nUSWDS typography tokens in the documentation:\nhttps://designsystem.digital.gov/design-tokens/typesetting/overview/\n----------------------------------------\n*/\n/*\n----------------------------------------\nRoot font size\n----------------------------------------\nSetting $theme-respect-user-font-size to\ntrue sets the root font size to 100% and\nuses ems for media queries\n----------------------------------------\n$theme-root-font-size only applies when\n$theme-respect-user-font-size is set to\nfalse.\n\nThis will set the root font size\nas a specific px value and use px values\nfor media queries.\n\nAccepts true or false\n----------------------------------------\n*/\n/*\n----------------------------------------\nGlobal styles\n----------------------------------------\nAdds basic styling for the following\nunclassed elements:\n\n- paragraph: paragraph text\n- link: links\n- content: paragraph text, links,\n  headings, lists, and tables\n----------------------------------------\n*/\n/*\n----------------------------------------\nBroswer compatibility mode\n----------------------------------------\nWhen true, outputs woff and ttf font \nformats in addition to woff2\n----------------------------------------\n*/\n/*\n----------------------------------------\nFont path\n----------------------------------------\nRelative font file path\n----------------------------------------\n*/\n/*\n----------------------------------------\nCustom typeface tokens\n----------------------------------------\nAdd a new custom typeface token if\nyour project uses a typeface not already\ndefined by USWDS.\n----------------------------------------\nUSWDS defines the following tokens\nby default:\n----------------------------------------\n'georgia'\n'helvetica'\n'merriweather'\n'open-sans'\n'public-sans'\n'roboto-mono'\n'source-sans-pro'\n'system'\n'tahoma'\n'verdana'\n----------------------------------------\nAdd as many new tokens as you have\ncustom typefaces. Reference your new\ntoken(s) in the type-based font settings\nusing the quoted name of the token.\n\nFor example:\n\n$theme-font-type-cond: 'example-font-token';\n\ndisplay-name:\nThe display name of your font\n\ncap-height:\nThe height of a 500px `N` in Sketch\n----------------------------------------\nYou should change `example-[style]-token`\nnames to something more descriptive.\n----------------------------------------\n*/\n/*\n----------------------------------------\nType-based font settings\n----------------------------------------\nSet the type-based tokens for your\nproject from the following tokens,\nor from any new font tokens you added in\n$theme-typeface-tokens.\n----------------------------------------\n'georgia'\n'helvetica'\n'merriweather'\n'open-sans'\n'public-sans'\n'roboto-mono'\n'source-sans-pro'\n'system'\n'tahoma'\n'verdana'\n----------------------------------------\n*/\n/*\n----------------------------------------\nCustom font stacks\n----------------------------------------\nAdd custom font stacks to any of the\ntype-based fonts. Any USWDS typeface\ntoken already has a default stack.\n\nCustom stacks don't need to include the\nfont's display name. It will\nautomatically appear at the start of\nthe stack.\n----------------------------------------\nExample:\n$theme-font-type-sans: 'source-sans-pro';\n$theme-font-sans-custom-stack: \"Helvetica Neue\", Helvetica, Arial, sans;\n\nOutput:\nfont-family: \"Source Sans Pro\", \"Helvetica Neue\", Helvetica, Arial, sans;\n----------------------------------------\n*/\n/*\n----------------------------------------\nAdd any custom font source files\n----------------------------------------\nIf you want USWDS to generate additional\n@font-face declarations, add your font\ndata below, following the example that\nfollows.\n----------------------------------------\nUSWDS automatically generates @font-face\ndeclarations for the following\n\n'merriweather'\n'public-sans'\n'roboto-mono'\n'source-sans-pro'\n\nThese typefaces not require custom\nsource files.\n----------------------------------------\nEXAMPLE\n\n- dir:\n  Directory relative to $theme-font-path\n- This directory should include fonts saved as\n  .woff2\n  ExampleSerif-Normal.woff2\n\n$theme-font-serif-custom-src: (\n  dir: 'custom/example-serif',\n  roman: (\n    100: false,\n    200: false,\n    300: 'ExampleSerif-Light',\n    400: 'ExampleSerif-Normal',\n    500: false,\n    600: false,\n    700: 'ExampleSerif-Bold',\n    800: false,\n    900: false,\n  ),\n  italic: (\n    100: false,\n    200: false,\n    300: 'ExampleSerif-LightItalic',\n    400: 'ExampleSerif-Italic',\n    500: false,\n    600: false,\n    700: 'ExampleSerif-BoldItalic',\n    800: false,\n    900: false,\n  ),\n);\n----------------------------------------\n*/\n/*\n----------------------------------------\nRole-based font settings\n----------------------------------------\nSet the role-based tokens for your\nproject from the following font-type\ntokens.\n----------------------------------------\n'cond'\n'icon'\n'lang'\n'mono'\n'sans'\n'serif'\n----------------------------------------\n*/\n/*\n----------------------------------------\nType scale\n----------------------------------------\nDefine your project's type scale using\nvalues from the USWDS system type scale\n\n1-20\n----------------------------------------\n*/\n/*\n----------------------------------------\nFont weights\n----------------------------------------\nAssign weights 100-900\nOr use `false` for unneeded weights.\n----------------------------------------\n*/\n/*\n----------------------------------------\nGeneral typography settings\n----------------------------------------\nType scale tokens\n----------------------------------------\nmicro:      10px\n1:          12px\n2:          13px\n3:          14px\n4:          15px\n5:          16px\n6:          17px\n7:          18px\n8:          20px\n9:          22px\n10:         24px\n11:         28px\n12:         32px\n13:         36px\n14:         40px\n15:         48px\n16:         56px\n17:         64px\n18:         80px\n19:         120px\n20:         140px\n----------------------------------------\nLine height tokens\n----------------------------------------\n1:    1\n2:    1.15\n3:    1.35\n4:    1.5\n5:    1.62\n6:    1.75\n----------------------------------------\nFont role tokens\n----------------------------------------\n'ui'\n'heading'\n'body'\n'code'\n'alt'\n----------------------------------------\nMeasure (max-width) tokens\n----------------------------------------\n1:       44ex\n2:       60ex\n3:       64ex\n4:       68ex\n5:       74ex\n6:       88ex\nnone:    none\n----------------------------------------\n*/\n/*\n* * * * * ==============================\n* * * * * ==============================\n* * * * * ==============================\n* * * * * ==============================\n========================================\n========================================\n========================================\n----------------------------------------\nCOLOR SETTINGS\n----------------------------------------\nRead more about settings and\nUSWDS color tokens in the documentation:\nhttps://designsystem.digital.gov/design-tokens/color\n----------------------------------------\n*/\n/*\n----------------------------------------\nTheme palette colors\n----------------------------------------\n*/\n/*\n----------------------------------------\nState palette colors\n----------------------------------------\n*/\n/*\n----------------------------------------\nGeneral colors\n----------------------------------------\n*/\n/*\n* * * * * ==============================\n* * * * * ==============================\n* * * * * ==============================\n* * * * * ==============================\n========================================\n========================================\n========================================\n----------------------------------------\nCOMPONENT SETTINGS\n----------------------------------------\nRead more about settings and\nUSWDS style tokens in the documentation:\nhttps://designsystem.digital.gov/design-tokens\n----------------------------------------\n*/\n/*\n* * * * * ==============================\n* * * * * ==============================\n* * * * * ==============================\n* * * * * ==============================\n========================================\n========================================\n========================================\n----------------------------------------\nSPACING SETTINGS\n----------------------------------------\nRead more about settings and\nUSWDS spacing units tokens in the\ndocumentation:\nhttps://designsystem.digital.gov/design-tokens/spacing-units\n----------------------------------------\n*/\n/*\n----------------------------------------\nBorder radius\n----------------------------------------\n2px           2px\n0.5           4px\n1             8px\n1.5           12px\n2             16px\n2.5           20px\n3             24px\n4             32px\n5             40px\n6             48px\n7             56px\n8             64px\n9             72px\n----------------------------------------\n*/\n/*\n----------------------------------------\nColumn gap\n----------------------------------------\n2px         2px\n0.5         4px\n1           8px\n2           16px\n3           24px\n4           32px\n5           40px\n6           48px\n----------------------------------------\n*/\n/*\n----------------------------------------\nGrid container max-width\n----------------------------------------\nmobile\nmobile-lg\ntablet\ntablet-lg\ndesktop\ndesktop-lg\nwidescreen\n----------------------------------------\n*/\n/*\n----------------------------------------\nSite\n----------------------------------------\n*/\n/*\n* * * * * ==============================\n* * * * * ==============================\n* * * * * ==============================\n* * * * * ==============================\n========================================\n========================================\n========================================\n----------------------------------------\nUTILITIES SETTINGS\n----------------------------------------\nRead more about settings and\nUSWDS utilities in the documentation:\nhttps://designsystem.digital.gov/utilities\n----------------------------------------\n*/\n/*\n----------------------------------------\nmap-collect()\n----------------------------------------\nCollect multiple maps into a single\nlarge map\nsource: https://gist.github.com/bigglesrocks/d75091700f8f2be5abfe\n----------------------------------------\n*/\n/*\n----------------------------------------\nUtility breakpoints\n----------------------------------------\nWhich breakpoints does your project\nneed? Select as `true` any breakpoint\nused by utilities or layout grid\n----------------------------------------\n*/\n/*\n----------------------------------------\nGlobal colors\n----------------------------------------\nThe following palettes will be added to\n- background-color\n- border-color\n- color\n- text-decoration-color\n----------------------------------------\n*/\n/*\n----------------------------------------\nSettings\n----------------------------------------\n*/\n/*\n----------------------------------------\nValues\n----------------------------------------\n*/\n/*\n----------------------------------------\ncolor()\n----------------------------------------\nDerive a color from a color shortcode\n----------------------------------------\n*/\n/*\n----------------------------------------\nappend-important()\n----------------------------------------\nAppend `!important` to a list\n----------------------------------------\n*/\n/*\n----------------------------------------\nget-last()\n----------------------------------------\nReturn the last item of a list,\nReturn null if the value is null\n----------------------------------------\n*/\n/*\n----------------------------------------\nde-list()\n----------------------------------------\nTransform a one-element list or arglist\ninto that single element.\n----------------------------------------\n(1) => 1\n((1)) => (1)\n----------------------------------------\n*/\n/*\n----------------------------------------\nerror-not-token()\n----------------------------------------\nReturns a common not-a-token error.\n----------------------------------------\n*/\n/*\n----------------------------------------\nuswds-error()\n----------------------------------------\nAllow the system to pass an error as text\nto test error states in unit testing\n----------------------------------------\n*/\n/*\n----------------------------------------\nget-default()\n----------------------------------------\nReturns the default value from a map\nof project defaults\nget-default(\"bg-color\")\n> $theme-body-background-color\n----------------------------------------\n*/\n/*\n----------------------------------------\nhas-important()\n----------------------------------------\nCheck to see if `!important` is\nbeing passed in a mixin's props\n----------------------------------------\n*/\n/*\n----------------------------------------\nmap-deep-get()\n----------------------------------------\n@author Hugo Giraudel\n@access public\n@param {Map} $map - Map\n@param {Arglist} $keys - Key chain\n@return {*} - Desired value\n----------------------------------------\n*/\n/*\n----------------------------------------\nmulti-cat()\n----------------------------------------\nConcatenate two lists\n----------------------------------------\n*/\n/*\n----------------------------------------\nremove()\n----------------------------------------\nRemove a value from a list\n----------------------------------------\n*/\n/*\n----------------------------------------\nsmart-quote()\n----------------------------------------\nQuotes strings\nInspects `px`, `xs`, and `xl` numbers\nLeaves bools as is\n----------------------------------------\n*/\n/*\n----------------------------------------\nstr-replace()\n----------------------------------------\nReplace any substring with another\nstring\n----------------------------------------\n*/\n/*\n----------------------------------------\nstr-split()\n----------------------------------------\nSplit a string at a given separator\nand convert into a list of substrings\n----------------------------------------\n*/\n/*\n----------------------------------------\nstrip-unit()\n----------------------------------------\nRemove the unit of a length\n@author Hugo Giraudel\n@param {Number} $number - Number to remove unit from\n@return {Number} - Unitless number\n----------------------------------------\n*/\n/*\n----------------------------------------\nbase-to-map()\n@TODO: Deprecate and delete\n----------------------------------------\nConvert a single base to a USWDS\nvalue map.\n\nCandidate for deprecation if we remove\nisReadable\n----------------------------------------\n*/\n/*\n----------------------------------------\nto-number()\n----------------------------------------\nCasts a string into a number\n----------------------------------------\n@param {String | Number} $value - Value to be parsed\n@return {Number}\n----------------------------------------\n*/\n/*\n----------------------------------------\nunpack()\n----------------------------------------\nCreate lists of single items from lists\nof lists.\n----------------------------------------\n(1, (2.1, 2.2), 3) -->\n(1, 2.1, 2.2, 3)\n----------------------------------------\n*/\n/*\n----------------------------------------\ncolor()\n----------------------------------------\nDerive a color from a color shortcode\n----------------------------------------\n*/\n/*\n----------------------------------------\ncolor()\n----------------------------------------\nDerive a color from a color shortcode\n----------------------------------------\n*/\n/*\n----------------------------------------\nget-system-color()\n----------------------------------------\nDerive a system color from its\nfamily, value, and vivid or a passed\nvariable that is, itself, a list\n----------------------------------------\n*/\n/*\n----------------------------------------\ncolor()\n----------------------------------------\nDerive a color from a color shortcode\n----------------------------------------\n*/\n/*\n----------------------------------------\ncolor()\n----------------------------------------\nDerive a color from a color shortcode\n----------------------------------------\n*/\n/*\n----------------------------------------\ncolor()\n----------------------------------------\nDerive a color from a color shortcode\n----------------------------------------\n*/\n/*\n----------------------------------------\nset-theme-color()\n----------------------------------------\nDerive a color from a system color token\nor a hex value\n----------------------------------------\n*/\n/*\n----------------------------------------\npx-to-rem()\n----------------------------------------\nConverts a value in px to a value in rem\n----------------------------------------\n*/\n/*\n----------------------------------------\nrem-to-user-em()\n----------------------------------------\nConverts a value in rem to a value in\n[user-settings] em for use in media\nqueries\n----------------------------------------\n*/\n/*\n----------------------------------------\npx-to-user-em()\n----------------------------------------\nConverts a value in px to a value in em\n----------------------------------------\n*/\n/*\n----------------------------------------\nrem-to-px()\n----------------------------------------\nConverts a value in rem to a value in px\n----------------------------------------\n*/\n/*\n----------------------------------------\nspacing-multiple()\n----------------------------------------\nConverts a spacing unit multiple into\nthe desired final units (currently rem)\n----------------------------------------\n*/\n/*\n----------------------------------------\nunits()\n----------------------------------------\nConverts a spacing unit into\nthe desired final units (currently rem)\n----------------------------------------\n*/\n/*\n----------------------------------------\nnumber-to-token()\n----------------------------------------\nConverts an integer or numeric value\ninto a system value\n\nEx: 0.5   --> '05'\n    -1px  --> 'neg-1px'\n----------------------------------------\n*/\n/*\n----------------------------------------\nProject fonts\n----------------------------------------\nCollects font settings in a map for\nlooping.\n----------------------------------------\n*/\n/*\n----------------------------------------\nLuminance ranges\n----------------------------------------\n*/\n/*\n----------------------------------------\nns()\n----------------------------------------\nAdd a namesspace of $type if that\nnamespace is set to output\n----------------------------------------\n*/\n/*\n----------------------------------------\nLine height\n----------------------------------------\n*/\n/*\n----------------------------------------\nMeasure\n----------------------------------------\n*/\n/*\n----------------------------------------\ncap-height()\n----------------------------------------\nGet the cap height of a valid typeface\n----------------------------------------\n*/\n/*\n----------------------------------------\nvalidate-typeface-token()\n----------------------------------------\nCheck to see if a typeface-token exists.\nThrow an error if a passed token does\nnot exist in the typeface-token map.\n----------------------------------------\n*/\n/*\n----------------------------------------\nconvert-to-font-type()\n----------------------------------------\nConverts a font-role token into a\nfont-type token. Leaves font-type tokens\nunchanged.\n----------------------------------------\n*/\n/*\n----------------------------------------\nfont-sources()\n----------------------------------------\nOutputs a list of font sources used in\na @font-face declaration.\n\n$theme-font-browser-compatibility: true - output woff2, woff, ttf\n$theme-font-browser-compatibility: false - output woff2\n\n@param stem: string - [font path]/[custom-src.dir]/[custom-src.[style].[weight]]\n@output: string\n\nfiletypes must be one of the filetypes set in variables/$project-font-face-filetypes (woff, woff2, ttf)\n----------------------------------------\n*/\n/*\n----------------------------------------\nget-font-stack()\n----------------------------------------\nGet a font stack from a style- or\nrole-based font token.\n----------------------------------------\n*/\n/*\n----------------------------------------\nget-typeface-token()\n----------------------------------------\nGet a typeface token from a font-type or\nfont-role token.\n----------------------------------------\n*/\n/*\n----------------------------------------\nnormalize-type-scale()\n----------------------------------------\nNormalizes a specific face's optical size\nto a set target\n----------------------------------------\n*/\n/*\n----------------------------------------\nsystem-type-scale()\n----------------------------------------\nGet a value from the system type scale\n----------------------------------------\n*/\n/*\n----------------------------------------\nEasing\n----------------------------------------\n*/\n/*  deprecated.scss\n    ---\n    Occasionally the design system will deprecate\n    old variables or functionality. If we replace\n    the old functionality with something new, this is a\n    place to connect the old functionality to the\n    new functionality, in the service of better\n    continuity and backwards compatibility within a\n    major release cycle.\n\n    Note the USWDS version where we deprecated the\n    old functionality in a comment.\n\n    Be sure to update notifications.scss.\n\n    This file should started fresh at each\n    major version.\n*/\n/*\n----------------------------------------\nadvanced-color()\n----------------------------------------\nDerive a color from a color triplet:\n[family], [grade], [variant]\n----------------------------------------\n*/\n/*\n----------------------------------------\ncalculate-grade()\n----------------------------------------\nDerive the grade equivalent any color,\neven non-token colors\n----------------------------------------\n*/\n/*\n----------------------------------------\ncolor-token-assignment()\n----------------------------------------\nGet the system token equivalent of any\ntheme color token\n----------------------------------------\n*/\n/*\n----------------------------------------\nis-system-color-token()\n----------------------------------------\nReturn whether a token is a system\ncolor token\n----------------------------------------\n*/\n/*\n----------------------------------------\nis-theme-color-token()\n----------------------------------------\nReturn whether a token is a theme\ncolor token\n----------------------------------------\n*/\n/*\n----------------------------------------\ncolor-token-family()\n----------------------------------------\nReturns the family of a color token.\nReturns: color-family\ncolor-token-family(\"accent-warm-vivid\")\n> \"accent-warm\"\ncolor-token-family(\"red-50v\")\n> \"red\"\ncolor-token-variant((\"red\", 50, \"vivid\"))\n> \"red\"\n----------------------------------------\n*/\n/*\n----------------------------------------\ndecompose()\n----------------------------------------\nConvert a color token into into a list\nof form [family], [grade], [variant]\nVivid variants return \"vivid\" as the\nvariant.\nIf neither grade nor variant exists,\nreturns 'null'\n----------------------------------------\n*/\n/*\n----------------------------------------\ncolor-token-family()\n----------------------------------------\nReturns the family of a color token.\nReturns: color-family\ncolor-token-family(\"accent-warm-vivid\")\n> \"accent-warm\"\ncolor-token-family(\"red-50v\")\n> \"red\"\ncolor-token-variant((\"red\", 50, \"vivid\"))\n> \"red\"\n----------------------------------------\n*/\n/*\n----------------------------------------\ncolor-token-grade()\n----------------------------------------\nReturns the grade of a USWDS color token.\nReturns: color-grade\ncolor-token-grade(\"accent-warm\")\n> \"root\"\ncolor-token-grade(\"accent-warm-vivid\")\n> \"root\"\ncolor-token-grade(\"accent-warm-darker\")\n> \"darker\"\ncolor-token-grade(\"red-50v\")\n> 50\ncolor-token-variant((\"red\", 50, \"vivid\"))\n> 50\n----------------------------------------\n*/\n/*\n----------------------------------------\ncolor-token-family()\n----------------------------------------\nReturns the family of a color token.\nReturns: color-family\ncolor-token-family(\"accent-warm-vivid\")\n> \"accent-warm\"\ncolor-token-family(\"red-50v\")\n> \"red\"\ncolor-token-variant((\"red\", 50, \"vivid\"))\n> \"red\"\n----------------------------------------\n*/\n/*\n----------------------------------------\nis-color-token()\n----------------------------------------\nReturns whether a given string is a\nUSWDS color token.\n----------------------------------------\n*/\n/*\n----------------------------------------\npow()\n----------------------------------------\nRaises a unitless number to the power\nof another unitless number\nIncludes helper functions\n----------------------------------------\n*/\n/*\n----------------------------------------\nHelper functions\n----------------------------------------\n*/\n/* factorial()\n----------------------------------------\n*/\n/* summation()\n----------------------------------------\n*/\n/* exp-maclaurin()\n----------------------------------------\n*/\n/* ln()\n----------------------------------------\n*/\n/*\n----------------------------------------\ncolor-token-type()\n----------------------------------------\nReturns the type of a color token.\nReturns: \"system\" | \"theme\"\n----------------------------------------\n*/\n/*\n----------------------------------------\ncolor-token-variant()\n----------------------------------------\nReturns the variant of color token.\nReturns: \"vivid\" | false\ncolor-token-variant(\"accent-warm\")\n> false\ncolor-token-variant(\"accent-warm-vivid\")\n> \"vivid\"\ncolor-token-variant(\"red-50v\")\n> \"vivid\"\ncolor-token-variant((\"red\", 50, \"vivid\"))\n> \"vivid\"\n----------------------------------------\n*/\n/*\n----------------------------------------\nmagic-number()\n----------------------------------------\nReturns the magic number of two color\ngrades. Takes numbers or color tokens.\nmagic-number(50, 10)\nreturn: 40\nmagic-number(\"red-50\", \"red-10\")\nreturn: 40\n----------------------------------------\n*/\n/*\n----------------------------------------\nis-accessible-magic-number()\n----------------------------------------\nReturns whether two grades achieve\nspecified target color contrast\nReturns: true | false\nis-accessible-magic-number(10, 50, \"AA\")\n> false\nis-accessible-magic-number(10, 60, \"AA\")\n> true\n----------------------------------------\n*/\n/*\n----------------------------------------\nwcag-magic-number()\n----------------------------------------\nReturns the magic number of a specific\nwcag grade:\n\"AA\"\n\"AA-Large\"\n\"AAA\"\nwcag-magic-number(\"AA\")\n> 50\n----------------------------------------\n*/\n/*\n----------------------------------------\nget-link-tokens-from-bg()\n----------------------------------------\nGet accessible link colors for a given\nbackground color\nreturns: link-token, hover-token\nget-link-tokens-from-bg(\n  \"black\",\n  \"red-60\",\n  \"red-10\",\n  \"AA\")\n> \"red-10\", \"red-5\"\nget-link-tokens-from-bg(\n  \"black\",\n  \"red-60v\",\n  \"red-10v\",\n  \"AA-large\")\n> \"red-60v\", \"red-50v\"\nget-link-tokens-from-bg(\n  \"black\",\n  \"red-5v\",\n  \"red-60v\",\n  \"AA\")\n> \"red-5v\", \"white\"\nget-link-tokens-from-bg(\n  \"black\",\n  \"white\",\n  \"red-60v\",\n  \"AA\")\n> \"white\", \"white\"\n----------------------------------------\n*/\n/*\n----------------------------------------\nnext-token()\n----------------------------------------\nReturns next \"darker\" or \"lighter\" color\ntoken of the same token type and variant.\nReturns: color-token | false\nnext-token(\"accent-warm\", \"lighter\")\n> \"accent-warm-light\"\nnext-token(\"gray-10\", \"lighter\")\n> \"gray-5\"\nnext-token(\"gray-5\", \"lighter\")\n> \"white\"\nnext-token(\"white\", \"lighter\")\n> false\nnext-token(\"red-50v\", \"darker\")\n> \"red-60v\"\nnext-token(\"red-50\", \"darker\")\n> \"red-60\"\nnext-token(\"red-80v\", \"darker\")\n> \"red-90\"\nnext-token(\"red-90\", \"darker\")\n> \"black\"\nnext-token(\"white\", \"darker\")\n> \"gray-5\"\nnext-token(\"black\", \"lighter\")\n> \"gray-90\"\n----------------------------------------\n*/\n/*\n----------------------------------------\ntest-colors()\n----------------------------------------\nCheck to see if all system colors\nfall between the proper relative\nluminance range for their grade.\nHas a couple quirks, as the luminance()\nfunction returns slightly different\nresults than expected.\n----------------------------------------\n*/\n/*\n----------------------------------------\ncolumns()\n----------------------------------------\noutputs a grid-col number based on\nthe number of desired columns in the\n12-column grid\n\nEx: columns(2) --> 6\n    grid-col(columns(2))\n----------------------------------------\n*/\n/*\n----------------------------------------\nUSWDS Properties\n----------------------------------------\n*/\n/*\n----------------------------------------\nget-uswds-value()\n----------------------------------------\nFinds and outputs a value from the\nUSWDS standard values.\n\nUsed to build other standard utility\nfunctions and mixins.\n----------------------------------------\n*/\n/*\n----------------------------------------\nget-standard-values()\n----------------------------------------\nGets a map of USWDS standard values\nfor a property\n----------------------------------------\n*/\n/*\n----------------------------------------\nborder-radius()\n----------------------------------------\nGet a border-radius from the system\nborder-radii\n----------------------------------------\n*/\n/*\n----------------------------------------\nfont-weight()\nfw()\n----------------------------------------\nGet a font-weight value from the\nsystem font-weight\n----------------------------------------\n*/\n/*\n----------------------------------------\nfeature()\n----------------------------------------\nGets a valid USWDS font feature setting\n----------------------------------------\n*/\n/*\n----------------------------------------\nflex()\n----------------------------------------\nGets a valid USWDS flex value\n----------------------------------------\n*/\n/*\n----------------------------------------\nfont-family()\nfamily()\n----------------------------------------\nGet a font-family stack from a\nrole-based or type-based font family\n----------------------------------------\n*/\n/*\n----------------------------------------\nletter-spacing()\nls()\n----------------------------------------\nGet a letter-spacing value from the\nsystem letter-spacing\n----------------------------------------\n*/\n/*\n----------------------------------------\nmeasure()\n----------------------------------------\nGets a valid USWDS reading line length\n----------------------------------------\n*/\n/*\n----------------------------------------\nopacity()\n----------------------------------------\nGet an opacity from the system\nopacities\n----------------------------------------\n*/\n/*\n----------------------------------------\norder()\n----------------------------------------\nGet an order value from the\nsystem orders\n----------------------------------------\n*/\n/*\n----------------------------------------\nradius()\n----------------------------------------\nGet a border-radius value from the\nsystem letter-spacing\n----------------------------------------\n*/\n/*\n----------------------------------------\nfont-size()\n----------------------------------------\nGet type scale value from a [family] and\n[scale]\n----------------------------------------\n*/\n/*\n----------------------------------------\nz-index()\nz()\n----------------------------------------\nGet a z-index value from the\nsystem z-index\n----------------------------------------\n*/\n/*\n----------------------------------------\nutility-font()\n----------------------------------------\nGet a normalized font-size in rem from\na family and a type size in either\nsystem scale or project scale\n----------------------------------------\nNot the public-facing function.\nUsed for building the utilities and\nwithholds certain errors.\n----------------------------------------\n*/\n/*\n----------------------------------------\nfamily()\n----------------------------------------\nGet a font-family stack\n----------------------------------------\n*/\n/*\n----------------------------------------\nsize()\n----------------------------------------\nGet a normalized font-size in rem from\na family and a type size in either\nsystem scale or project scale\n----------------------------------------\n*/\n/*\n----------------------------------------\nfont()\n----------------------------------------\nGet a font-family stack\nAND\nGet a normalized font-size in rem from\na family and a type size in either\nsystem scale or project scale\n----------------------------------------\n*/\n/*\n----------------------------------------\ntypeset()\n----------------------------------------\nSets:\n- family\n- size\n- line-height\n----------------------------------------\n*/\n/* stylelint-disable max-nesting-depth */\n/*\n----------------------------------------\n@render-pseudoclass\n----------------------------------------\nBuild a pseucoclass utiliy from values\ncalculated in the @render-utilities-in\nloop\n----------------------------------------\n*/\n/*\n----------------------------------------\n@render-utility\n----------------------------------------\nBuild a utility from values calculated\nin the @render-utilities-in loop\n----------------------------------------\nTODO: Determine the proper use of\nunquote() in the following. Changed to\naccount for a 'interpolation near\noperators will be simplified in a\nfuture version of Sass' warning.\n----------------------------------------\n*/\n/*\n----------------------------------------\n@render-utilities-in\n----------------------------------------\nThe master loop that sets the building\nblocks of utilities from the values\nin individual rule settings and loops\nthrough all possible variants\n----------------------------------------\n*/\n/* stylelint-enable */\n/*  notifications.scss\n    ---\n    Adds a notification at the top of each USWDS\n    compile. Use this file for important notifications\n    and updates to the design system.\n\n    This file should started fresh at each\n    major version.\n\n*/\n/* prettier-ignore */\n/* prettier-ignore */\n.usa-textarea, .usa-range, .usa-radio__label, .usa-input-group, .usa-hint, .usa-combo-box__input, .usa-combo-box__list, .usa-select, .usa-checkbox__label, .usa-fieldset, .usa-input {\n  font-family: Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;\n  font-size: 1.06rem;\n  line-height: 1.3;\n}\n\n.usa-textarea, .usa-range, .usa-input-group, .usa-combo-box__input, .usa-select, .usa-input {\n  border-width: 1px;\n  border-color: #565c65;\n  border-style: solid;\n  appearance: none;\n  border-radius: 0;\n  color: #1b1b1b;\n  display: block;\n  height: 2.5rem;\n  margin-top: 0.5rem;\n  max-width: 30rem;\n  padding: 0.5rem;\n  width: 100%;\n}\n\n/* stylelint-disable */\n@font-face {\n  font-family: \"Roboto Mono Web\";\n  font-style: normal;\n  font-weight: 300;\n  font-display: fallback;\n  src: url(../fonts/roboto-mono/roboto-mono-v5-latin-300.woff2) format(\"woff2\");\n}\n@font-face {\n  font-family: \"Roboto Mono Web\";\n  font-style: normal;\n  font-weight: 400;\n  font-display: fallback;\n  src: url(../fonts/roboto-mono/roboto-mono-v5-latin-regular.woff2) format(\"woff2\");\n}\n@font-face {\n  font-family: \"Roboto Mono Web\";\n  font-style: normal;\n  font-weight: 700;\n  font-display: fallback;\n  src: url(../fonts/roboto-mono/roboto-mono-v5-latin-700.woff2) format(\"woff2\");\n}\n@font-face {\n  font-family: \"Roboto Mono Web\";\n  font-style: italic;\n  font-weight: 300;\n  font-display: fallback;\n  src: url(../fonts/roboto-mono/roboto-mono-v5-latin-300italic.woff2) format(\"woff2\");\n}\n@font-face {\n  font-family: \"Roboto Mono Web\";\n  font-style: italic;\n  font-weight: 400;\n  font-display: fallback;\n  src: url(../fonts/roboto-mono/roboto-mono-v5-latin-italic.woff2) format(\"woff2\");\n}\n@font-face {\n  font-family: \"Roboto Mono Web\";\n  font-style: italic;\n  font-weight: 700;\n  font-display: fallback;\n  src: url(../fonts/roboto-mono/roboto-mono-v5-latin-700italic.woff2) format(\"woff2\");\n}\n@font-face {\n  font-family: \"Source Sans Pro Web\";\n  font-style: normal;\n  font-weight: 300;\n  font-display: fallback;\n  src: url(../fonts/source-sans-pro/sourcesanspro-light-webfont.woff2) format(\"woff2\");\n}\n@font-face {\n  font-family: \"Source Sans Pro Web\";\n  font-style: normal;\n  font-weight: 400;\n  font-display: fallback;\n  src: url(../fonts/source-sans-pro/sourcesanspro-regular-webfont.woff2) format(\"woff2\");\n}\n@font-face {\n  font-family: \"Source Sans Pro Web\";\n  font-style: normal;\n  font-weight: 700;\n  font-display: fallback;\n  src: url(../fonts/source-sans-pro/sourcesanspro-bold-webfont.woff2) format(\"woff2\");\n}\n@font-face {\n  font-family: \"Source Sans Pro Web\";\n  font-style: italic;\n  font-weight: 300;\n  font-display: fallback;\n  src: url(../fonts/source-sans-pro/sourcesanspro-lightitalic-webfont.woff2) format(\"woff2\");\n}\n@font-face {\n  font-family: \"Source Sans Pro Web\";\n  font-style: italic;\n  font-weight: 400;\n  font-display: fallback;\n  src: url(../fonts/source-sans-pro/sourcesanspro-italic-webfont.woff2) format(\"woff2\");\n}\n@font-face {\n  font-family: \"Source Sans Pro Web\";\n  font-style: italic;\n  font-weight: 700;\n  font-display: fallback;\n  src: url(../fonts/source-sans-pro/sourcesanspro-bolditalic-webfont.woff2) format(\"woff2\");\n}\n@font-face {\n  font-family: \"Merriweather Web\";\n  font-style: normal;\n  font-weight: 300;\n  font-display: fallback;\n  src: url(../fonts/merriweather/Latin-Merriweather-Light.woff2) format(\"woff2\");\n}\n@font-face {\n  font-family: \"Merriweather Web\";\n  font-style: normal;\n  font-weight: 400;\n  font-display: fallback;\n  src: url(../fonts/merriweather/Latin-Merriweather-Regular.woff2) format(\"woff2\");\n}\n@font-face {\n  font-family: \"Merriweather Web\";\n  font-style: normal;\n  font-weight: 700;\n  font-display: fallback;\n  src: url(../fonts/merriweather/Latin-Merriweather-Bold.woff2) format(\"woff2\");\n}\n@font-face {\n  font-family: \"Merriweather Web\";\n  font-style: italic;\n  font-weight: 300;\n  font-display: fallback;\n  src: url(../fonts/merriweather/Latin-Merriweather-LightItalic.woff2) format(\"woff2\");\n}\n@font-face {\n  font-family: \"Merriweather Web\";\n  font-style: italic;\n  font-weight: 400;\n  font-display: fallback;\n  src: url(../fonts/merriweather/Latin-Merriweather-Italic.woff2) format(\"woff2\");\n}\n@font-face {\n  font-family: \"Merriweather Web\";\n  font-style: italic;\n  font-weight: 700;\n  font-display: fallback;\n  src: url(../fonts/merriweather/Latin-Merriweather-BoldItalic.woff2) format(\"woff2\");\n}\n/* stylelint-enable */\nbody {\n  color: #1b1b1b;\n  background-color: white;\n  overflow-x: hidden;\n}\n\ninput:not([disabled]):focus,\nselect:not([disabled]):focus,\ntextarea:not([disabled]):focus,\nbutton:not([disabled]):focus {\n  outline: 0.25rem solid #2491ff;\n  outline-offset: 0rem;\n}\n\niframe:focus,\n[href]:focus,\n[tabindex]:focus,\n[contentEditable=true]:focus {\n  outline: 0.25rem solid #2491ff;\n  outline-offset: 0rem;\n}\n\nimg {\n  max-width: 100%;\n}\n\n.usa-media-link {\n  display: inline-block;\n  line-height: 0;\n}\n\nhtml {\n  box-sizing: border-box;\n}\n\n*,\n*::before,\n*::after {\n  box-sizing: inherit;\n}\n\nhtml {\n  font-feature-settings: \"kern\" 1;\n  font-kerning: normal;\n  font-family: Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;\n  font-size: 100%;\n}\n\ncite,\nvar,\naddress,\ndfn {\n  font-style: normal;\n}\n\n.usa-focus {\n  outline: 0.25rem solid #2491ff;\n  outline-offset: 0rem;\n}\n\n.usa-sr-only {\n  position: absolute;\n  left: -999em;\n  right: auto;\n}\n\n.usa-content p,\n.usa-content ul:not(.usa-accordion):not(.usa-accordion--bordered),\n.usa-content ol:not(.usa-accordion):not(.usa-accordion--bordered) {\n  max-width: 68ex;\n}\n\n.usa-dark-background {\n  background-color: #3d4551;\n}\n.usa-dark-background p,\n.usa-dark-background span {\n  color: white;\n}\n.usa-dark-background a {\n  color: #dfe1e2;\n}\n.usa-dark-background a:visited {\n  color: #dfe1e2;\n}\n.usa-dark-background a:hover, .usa-dark-background a:active {\n  color: #f0f0f0;\n}\n\n.usa-display {\n  margin-bottom: 0;\n  margin-top: 0;\n  clear: both;\n  font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n  font-size: 1.34rem;\n  line-height: 1.2;\n  font-weight: 700;\n  margin-bottom: 0;\n}\n* + .usa-display {\n  margin-top: 1.5em;\n}\n.usa-display + * {\n  margin-top: 1em;\n}\n@media all and (min-width: 30em) {\n  .usa-display {\n    margin-bottom: 0;\n    margin-top: 0;\n    clear: both;\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 2.44rem;\n    line-height: 1.2;\n    font-weight: 700;\n  }\n  * + .usa-display {\n    margin-top: 1.5em;\n  }\n  .usa-display + * {\n    margin-top: 1em;\n  }\n}\n@media all and (min-width: 40em) {\n  .usa-display {\n    margin-bottom: 0;\n    margin-top: 0;\n    clear: both;\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 2.93rem;\n    line-height: 1.2;\n    font-weight: 700;\n  }\n  * + .usa-display {\n    margin-top: 1.5em;\n  }\n  .usa-display + * {\n    margin-top: 1em;\n  }\n}\n\n.usa-intro {\n  font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n  font-size: 1.34rem;\n  line-height: 1.8;\n  font-weight: 400;\n  max-width: 88ex;\n}\n\n.usa-icon {\n  display: inline-block;\n  fill: currentColor;\n  height: 1em;\n  position: relative;\n  width: 1em;\n}\n\n.usa-icon--size-3 {\n  height: 1.5rem;\n  width: 1.5rem;\n}\n\n.usa-icon--size-4 {\n  height: 2rem;\n  width: 2rem;\n}\n\n.usa-icon--size-5 {\n  height: 2.5rem;\n  width: 2.5rem;\n}\n\n.usa-icon--size-6 {\n  height: 3rem;\n  width: 3rem;\n}\n\n.usa-icon--size-7 {\n  height: 3.5rem;\n  width: 3.5rem;\n}\n\n.usa-icon--size-8 {\n  height: 4rem;\n  width: 4rem;\n}\n\n.usa-icon--size-9 {\n  height: 4.5rem;\n  width: 4.5rem;\n}\n\n.usa-link {\n  color: #005ea2;\n  text-decoration: underline;\n}\n.usa-link:visited {\n  color: #54278f;\n}\n.usa-link:hover {\n  color: #1a4480;\n}\n.usa-link:active {\n  color: #162e51;\n}\n.usa-link:focus {\n  outline: 0.25rem solid #2491ff;\n  outline-offset: 0rem;\n}\n\n.usa-link--external {\n  display: inline;\n}\n.usa-link--external::before {\n  position: absolute;\n  left: -999em;\n  right: auto;\n  content: \"External.\";\n}\n.usa-link--external[target=_blank]::before {\n  position: absolute;\n  left: -999em;\n  right: auto;\n  content: \"External, opens in a new tab.\";\n}\n.usa-link--external::after {\n  background-image: url(\"../img/usa-icons/launch.svg\");\n  background-repeat: no-repeat;\n  background-position: center center;\n  background-size: 1.75ex 1.75ex;\n  display: inline-block;\n  height: 1.75ex;\n  width: 1.75ex;\n  content: \"\";\n  display: inline;\n  margin-top: 0.7ex;\n  margin-left: 2px;\n  padding-left: 1.75ex;\n  vertical-align: middle;\n}\n@supports (mask: url(\"\")) {\n  .usa-link--external::after {\n    background: none;\n    background-color: currentColor;\n    mask-image: url(\"../img/usa-icons/launch.svg\"), linear-gradient(transparent, transparent);\n    mask-position: center center;\n    mask-repeat: no-repeat;\n    mask-size: 1.75ex 1.75ex;\n  }\n}\n.usa-link--external.usa-link--alt {\n  display: inline;\n}\n.usa-link--external.usa-link--alt::before {\n  position: absolute;\n  left: -999em;\n  right: auto;\n  content: \"External.\";\n}\n.usa-link--external.usa-link--alt[target=_blank]::before {\n  position: absolute;\n  left: -999em;\n  right: auto;\n  content: \"External, opens in a new tab.\";\n}\n.usa-link--external.usa-link--alt::after {\n  background-image: url(\"../img/usa-icons-bg/launch--white.svg\");\n  background-repeat: no-repeat;\n  background-position: center center;\n  background-size: 1.75ex 1.75ex;\n  display: inline-block;\n  height: 1.75ex;\n  width: 1.75ex;\n  content: \"\";\n  display: inline;\n  margin-top: 0.7ex;\n  margin-left: 2px;\n  padding-left: 1.75ex;\n  vertical-align: middle;\n}\n@supports (mask: url(\"\")) {\n  .usa-link--external.usa-link--alt::after {\n    background: none;\n    background-color: currentColor;\n    mask-image: url(\"../img/usa-icons/launch.svg\"), linear-gradient(transparent, transparent);\n    mask-position: center center;\n    mask-repeat: no-repeat;\n    mask-size: 1.75ex 1.75ex;\n  }\n}\n\n.usa-list {\n  margin-bottom: 1em;\n  margin-top: 1em;\n  line-height: 1.5;\n  padding-left: 3ch;\n}\n.usa-list:last-child {\n  margin-bottom: 0;\n}\n.usa-list ul,\n.usa-list ol {\n  margin-top: 0.25em;\n}\n.usa-list li {\n  margin-bottom: 0.25em;\n  max-width: 68ex;\n}\n.usa-list li:last-child {\n  margin-bottom: 0;\n}\n\n.usa-list--unstyled {\n  margin-bottom: 0;\n  margin-top: 0;\n  list-style-type: none;\n  padding-left: 0;\n}\n.usa-list--unstyled > li {\n  margin-bottom: 0;\n  max-width: unset;\n}\n\n.usa-prose .usa-list--unstyled {\n  margin-bottom: 0;\n  margin-top: 0;\n  list-style-type: none;\n  padding-left: 0;\n}\n.usa-prose .usa-list--unstyled > li {\n  margin-bottom: 0;\n  max-width: unset;\n}\n\n.usa-paragraph {\n  line-height: 1.5;\n  max-width: 68ex;\n  margin-bottom: 0;\n  margin-top: 0;\n}\n* + .usa-paragraph {\n  margin-top: 1em;\n}\n.usa-paragraph + * {\n  margin-top: 1em;\n}\n\n.usa-prose {\n  font-family: Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;\n  font-size: 1.06rem;\n  line-height: 1.5;\n}\n.usa-prose > ul,\n.usa-prose > ol {\n  margin-bottom: 1em;\n  margin-top: 1em;\n  line-height: 1.5;\n  padding-left: 3ch;\n}\n.usa-prose > ul:last-child,\n.usa-prose > ol:last-child {\n  margin-bottom: 0;\n}\n.usa-prose > ul ul,\n.usa-prose > ul ol,\n.usa-prose > ol ul,\n.usa-prose > ol ol {\n  margin-top: 0.25em;\n}\n.usa-prose > ul li,\n.usa-prose > ol li {\n  margin-bottom: 0.25em;\n  max-width: 68ex;\n}\n.usa-prose > ul li:last-child,\n.usa-prose > ol li:last-child {\n  margin-bottom: 0;\n}\n.usa-prose > table {\n  font-family: Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;\n  font-size: 1.06rem;\n  line-height: 1.5;\n  border-collapse: collapse;\n  border-spacing: 0;\n  color: #1b1b1b;\n  margin: 1.25rem 0;\n  text-align: left;\n  /* stylelint-disable selector-class-pattern */\n  /* stylelint-enable selector-class-pattern */\n}\n.usa-prose > table thead td,\n.usa-prose > table tfoot td,\n.usa-prose > table th {\n  background-clip: padding-box;\n  line-height: 1.3;\n  background-color: #dfe1e2;\n  color: #1b1b1b;\n}\n.usa-prose > table th,\n.usa-prose > table td {\n  border: 1px solid #1b1b1b;\n  padding: 0.5rem 1rem;\n}\n.usa-prose > table td {\n  background-color: white;\n  font-weight: normal;\n}\n.usa-prose > table caption {\n  font-family: Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;\n  font-size: 1rem;\n  font-weight: 700;\n  margin-bottom: 0.75rem;\n  text-align: left;\n}\n.usa-prose > table th[data-sortable] {\n  padding-right: 2.5rem;\n  position: relative;\n}\n.usa-prose > table th[data-sortable]::after {\n  border-bottom-color: transparent;\n  border-bottom-style: solid;\n  border-bottom-width: 1px;\n  bottom: 0;\n  content: \"\";\n  height: 0;\n  left: 0;\n  position: absolute;\n  width: 100%;\n}\n.usa-prose > table th[data-sortable]:not([aria-sort]) .usa-table__header__button, .usa-prose > table th[data-sortable][aria-sort=none] .usa-table__header__button {\n  color: #005ea2;\n  text-decoration: underline;\n  background-color: transparent;\n  border: 0;\n  border-radius: 0;\n  box-shadow: none;\n  font-weight: normal;\n  justify-content: normal;\n  text-align: left;\n  margin: 0;\n  padding: 0;\n  width: auto;\n  height: 2rem;\n  width: 2rem;\n  background-position: center center;\n  background-size: 1.5rem;\n  color: #71767a;\n  cursor: pointer;\n  display: inline-block;\n  margin: 0;\n  position: absolute;\n  right: 0.25rem;\n  text-align: center;\n  text-decoration: none;\n  top: 50%;\n  transform: translate(0, -50%);\n}\n.usa-prose > table th[data-sortable]:not([aria-sort]) .usa-table__header__button:visited, .usa-prose > table th[data-sortable][aria-sort=none] .usa-table__header__button:visited {\n  color: #54278f;\n}\n.usa-prose > table th[data-sortable]:not([aria-sort]) .usa-table__header__button:hover, .usa-prose > table th[data-sortable][aria-sort=none] .usa-table__header__button:hover {\n  color: #1a4480;\n}\n.usa-prose > table th[data-sortable]:not([aria-sort]) .usa-table__header__button:active, .usa-prose > table th[data-sortable][aria-sort=none] .usa-table__header__button:active {\n  color: #162e51;\n}\n.usa-prose > table th[data-sortable]:not([aria-sort]) .usa-table__header__button:focus, .usa-prose > table th[data-sortable][aria-sort=none] .usa-table__header__button:focus {\n  outline: 0.25rem solid #2491ff;\n  outline-offset: 0rem;\n}\n.usa-prose > table th[data-sortable]:not([aria-sort]) .usa-table__header__button:hover, .usa-prose > table th[data-sortable]:not([aria-sort]) .usa-table__header__button.usa-button--hover, .usa-prose > table th[data-sortable]:not([aria-sort]) .usa-table__header__button:disabled:hover, .usa-prose > table th[data-sortable]:not([aria-sort]) .usa-table__header__button[aria-disabled=true]:hover, .usa-prose > table th[data-sortable]:not([aria-sort]) .usa-table__header__button:disabled.usa-button--hover, .usa-prose > table th[data-sortable]:not([aria-sort]) .usa-table__header__button[aria-disabled=true].usa-button--hover, .usa-prose > table th[data-sortable]:not([aria-sort]) .usa-table__header__button:active, .usa-prose > table th[data-sortable]:not([aria-sort]) .usa-table__header__button.usa-button--active, .usa-prose > table th[data-sortable]:not([aria-sort]) .usa-table__header__button:disabled:active, .usa-prose > table th[data-sortable]:not([aria-sort]) .usa-table__header__button[aria-disabled=true]:active, .usa-prose > table th[data-sortable]:not([aria-sort]) .usa-table__header__button:disabled.usa-button--active, .usa-prose > table th[data-sortable]:not([aria-sort]) .usa-table__header__button[aria-disabled=true].usa-button--active, .usa-prose > table th[data-sortable]:not([aria-sort]) .usa-table__header__button:disabled:focus, .usa-prose > table th[data-sortable]:not([aria-sort]) .usa-table__header__button[aria-disabled=true]:focus, .usa-prose > table th[data-sortable]:not([aria-sort]) .usa-table__header__button:disabled.usa-focus, .usa-prose > table th[data-sortable]:not([aria-sort]) .usa-table__header__button[aria-disabled=true].usa-focus, .usa-prose > table th[data-sortable]:not([aria-sort]) .usa-table__header__button:disabled, .usa-prose > table th[data-sortable]:not([aria-sort]) .usa-table__header__button[aria-disabled=true], .usa-prose > table th[data-sortable]:not([aria-sort]) .usa-table__header__button.usa-button--disabled, .usa-prose > table th[data-sortable][aria-sort=none] .usa-table__header__button:hover, .usa-prose > table th[data-sortable][aria-sort=none] .usa-table__header__button.usa-button--hover, .usa-prose > table th[data-sortable][aria-sort=none] .usa-table__header__button:disabled:hover, .usa-prose > table th[data-sortable][aria-sort=none] .usa-table__header__button[aria-disabled=true]:hover, .usa-prose > table th[data-sortable][aria-sort=none] .usa-table__header__button:disabled.usa-button--hover, .usa-prose > table th[data-sortable][aria-sort=none] .usa-table__header__button[aria-disabled=true].usa-button--hover, .usa-prose > table th[data-sortable][aria-sort=none] .usa-table__header__button:active, .usa-prose > table th[data-sortable][aria-sort=none] .usa-table__header__button.usa-button--active, .usa-prose > table th[data-sortable][aria-sort=none] .usa-table__header__button:disabled:active, .usa-prose > table th[data-sortable][aria-sort=none] .usa-table__header__button[aria-disabled=true]:active, .usa-prose > table th[data-sortable][aria-sort=none] .usa-table__header__button:disabled.usa-button--active, .usa-prose > table th[data-sortable][aria-sort=none] .usa-table__header__button[aria-disabled=true].usa-button--active, .usa-prose > table th[data-sortable][aria-sort=none] .usa-table__header__button:disabled:focus, .usa-prose > table th[data-sortable][aria-sort=none] .usa-table__header__button[aria-disabled=true]:focus, .usa-prose > table th[data-sortable][aria-sort=none] .usa-table__header__button:disabled.usa-focus, .usa-prose > table th[data-sortable][aria-sort=none] .usa-table__header__button[aria-disabled=true].usa-focus, .usa-prose > table th[data-sortable][aria-sort=none] .usa-table__header__button:disabled, .usa-prose > table th[data-sortable][aria-sort=none] .usa-table__header__button[aria-disabled=true], .usa-prose > table th[data-sortable][aria-sort=none] .usa-table__header__button.usa-button--disabled {\n  background-color: transparent;\n  box-shadow: none;\n  text-decoration: underline;\n}\n.usa-prose > table th[data-sortable]:not([aria-sort]) .usa-table__header__button.usa-button--hover, .usa-prose > table th[data-sortable][aria-sort=none] .usa-table__header__button.usa-button--hover {\n  color: #1a4480;\n}\n.usa-prose > table th[data-sortable]:not([aria-sort]) .usa-table__header__button.usa-button--active, .usa-prose > table th[data-sortable][aria-sort=none] .usa-table__header__button.usa-button--active {\n  color: #162e51;\n}\n.usa-prose > table th[data-sortable]:not([aria-sort]) .usa-table__header__button:disabled, .usa-prose > table th[data-sortable]:not([aria-sort]) .usa-table__header__button[aria-disabled=true], .usa-prose > table th[data-sortable]:not([aria-sort]) .usa-table__header__button:disabled:hover, .usa-prose > table th[data-sortable]:not([aria-sort]) .usa-table__header__button[aria-disabled=true]:hover, .usa-prose > table th[data-sortable]:not([aria-sort]) .usa-table__header__button[aria-disabled=true]:focus, .usa-prose > table th[data-sortable][aria-sort=none] .usa-table__header__button:disabled, .usa-prose > table th[data-sortable][aria-sort=none] .usa-table__header__button[aria-disabled=true], .usa-prose > table th[data-sortable][aria-sort=none] .usa-table__header__button:disabled:hover, .usa-prose > table th[data-sortable][aria-sort=none] .usa-table__header__button[aria-disabled=true]:hover, .usa-prose > table th[data-sortable][aria-sort=none] .usa-table__header__button[aria-disabled=true]:focus {\n  color: #757575;\n}\n@media (forced-colors: active) {\n  .usa-prose > table th[data-sortable]:not([aria-sort]) .usa-table__header__button:disabled, .usa-prose > table th[data-sortable]:not([aria-sort]) .usa-table__header__button[aria-disabled=true], .usa-prose > table th[data-sortable]:not([aria-sort]) .usa-table__header__button:disabled:hover, .usa-prose > table th[data-sortable]:not([aria-sort]) .usa-table__header__button[aria-disabled=true]:hover, .usa-prose > table th[data-sortable]:not([aria-sort]) .usa-table__header__button[aria-disabled=true]:focus, .usa-prose > table th[data-sortable][aria-sort=none] .usa-table__header__button:disabled, .usa-prose > table th[data-sortable][aria-sort=none] .usa-table__header__button[aria-disabled=true], .usa-prose > table th[data-sortable][aria-sort=none] .usa-table__header__button:disabled:hover, .usa-prose > table th[data-sortable][aria-sort=none] .usa-table__header__button[aria-disabled=true]:hover, .usa-prose > table th[data-sortable][aria-sort=none] .usa-table__header__button[aria-disabled=true]:focus {\n    color: GrayText;\n  }\n}\n.usa-prose > table th[data-sortable]:not([aria-sort]) .usa-table__header__button .usa-icon, .usa-prose > table th[data-sortable][aria-sort=none] .usa-table__header__button .usa-icon {\n  height: 1.5rem;\n  width: 1.5rem;\n  vertical-align: middle;\n}\n.usa-prose > table th[data-sortable]:not([aria-sort]) .usa-table__header__button .usa-icon > g, .usa-prose > table th[data-sortable][aria-sort=none] .usa-table__header__button .usa-icon > g {\n  fill: transparent;\n}\n.usa-prose > table th[data-sortable]:not([aria-sort]) .usa-table__header__button .usa-icon > g.unsorted, .usa-prose > table th[data-sortable][aria-sort=none] .usa-table__header__button .usa-icon > g.unsorted {\n  fill: #1b1b1b;\n}\n.usa-prose > table th[data-sortable]:not([aria-sort]) .usa-table__header__button:hover .usa-icon > g.unsorted, .usa-prose > table th[data-sortable][aria-sort=none] .usa-table__header__button:hover .usa-icon > g.unsorted {\n  fill: black;\n}\n.usa-prose > table th[data-sortable][aria-sort=descending], .usa-prose > table th[data-sortable][aria-sort=ascending] {\n  background-color: #97d4ea;\n}\n.usa-prose > table th[data-sortable][aria-sort=descending] .usa-table__header__button {\n  color: #005ea2;\n  text-decoration: underline;\n  background-color: transparent;\n  border: 0;\n  border-radius: 0;\n  box-shadow: none;\n  font-weight: normal;\n  justify-content: normal;\n  text-align: left;\n  margin: 0;\n  padding: 0;\n  width: auto;\n  height: 2rem;\n  width: 2rem;\n  background-position: center center;\n  background-size: 1.5rem;\n  color: #71767a;\n  cursor: pointer;\n  display: inline-block;\n  margin: 0;\n  position: absolute;\n  right: 0.25rem;\n  text-align: center;\n  text-decoration: none;\n  top: 50%;\n  transform: translate(0, -50%);\n}\n.usa-prose > table th[data-sortable][aria-sort=descending] .usa-table__header__button:visited {\n  color: #54278f;\n}\n.usa-prose > table th[data-sortable][aria-sort=descending] .usa-table__header__button:hover {\n  color: #1a4480;\n}\n.usa-prose > table th[data-sortable][aria-sort=descending] .usa-table__header__button:active {\n  color: #162e51;\n}\n.usa-prose > table th[data-sortable][aria-sort=descending] .usa-table__header__button:focus {\n  outline: 0.25rem solid #2491ff;\n  outline-offset: 0rem;\n}\n.usa-prose > table th[data-sortable][aria-sort=descending] .usa-table__header__button:hover, .usa-prose > table th[data-sortable][aria-sort=descending] .usa-table__header__button.usa-button--hover, .usa-prose > table th[data-sortable][aria-sort=descending] .usa-table__header__button:disabled:hover, .usa-prose > table th[data-sortable][aria-sort=descending] .usa-table__header__button[aria-disabled=true]:hover, .usa-prose > table th[data-sortable][aria-sort=descending] .usa-table__header__button:disabled.usa-button--hover, .usa-prose > table th[data-sortable][aria-sort=descending] .usa-table__header__button[aria-disabled=true].usa-button--hover, .usa-prose > table th[data-sortable][aria-sort=descending] .usa-table__header__button:active, .usa-prose > table th[data-sortable][aria-sort=descending] .usa-table__header__button.usa-button--active, .usa-prose > table th[data-sortable][aria-sort=descending] .usa-table__header__button:disabled:active, .usa-prose > table th[data-sortable][aria-sort=descending] .usa-table__header__button[aria-disabled=true]:active, .usa-prose > table th[data-sortable][aria-sort=descending] .usa-table__header__button:disabled.usa-button--active, .usa-prose > table th[data-sortable][aria-sort=descending] .usa-table__header__button[aria-disabled=true].usa-button--active, .usa-prose > table th[data-sortable][aria-sort=descending] .usa-table__header__button:disabled:focus, .usa-prose > table th[data-sortable][aria-sort=descending] .usa-table__header__button[aria-disabled=true]:focus, .usa-prose > table th[data-sortable][aria-sort=descending] .usa-table__header__button:disabled.usa-focus, .usa-prose > table th[data-sortable][aria-sort=descending] .usa-table__header__button[aria-disabled=true].usa-focus, .usa-prose > table th[data-sortable][aria-sort=descending] .usa-table__header__button:disabled, .usa-prose > table th[data-sortable][aria-sort=descending] .usa-table__header__button[aria-disabled=true], .usa-prose > table th[data-sortable][aria-sort=descending] .usa-table__header__button.usa-button--disabled {\n  background-color: transparent;\n  box-shadow: none;\n  text-decoration: underline;\n}\n.usa-prose > table th[data-sortable][aria-sort=descending] .usa-table__header__button.usa-button--hover {\n  color: #1a4480;\n}\n.usa-prose > table th[data-sortable][aria-sort=descending] .usa-table__header__button.usa-button--active {\n  color: #162e51;\n}\n.usa-prose > table th[data-sortable][aria-sort=descending] .usa-table__header__button:disabled, .usa-prose > table th[data-sortable][aria-sort=descending] .usa-table__header__button[aria-disabled=true], .usa-prose > table th[data-sortable][aria-sort=descending] .usa-table__header__button:disabled:hover, .usa-prose > table th[data-sortable][aria-sort=descending] .usa-table__header__button[aria-disabled=true]:hover, .usa-prose > table th[data-sortable][aria-sort=descending] .usa-table__header__button[aria-disabled=true]:focus {\n  color: #757575;\n}\n@media (forced-colors: active) {\n  .usa-prose > table th[data-sortable][aria-sort=descending] .usa-table__header__button:disabled, .usa-prose > table th[data-sortable][aria-sort=descending] .usa-table__header__button[aria-disabled=true], .usa-prose > table th[data-sortable][aria-sort=descending] .usa-table__header__button:disabled:hover, .usa-prose > table th[data-sortable][aria-sort=descending] .usa-table__header__button[aria-disabled=true]:hover, .usa-prose > table th[data-sortable][aria-sort=descending] .usa-table__header__button[aria-disabled=true]:focus {\n    color: GrayText;\n  }\n}\n.usa-prose > table th[data-sortable][aria-sort=descending] .usa-table__header__button .usa-icon {\n  height: 1.5rem;\n  width: 1.5rem;\n  vertical-align: middle;\n}\n.usa-prose > table th[data-sortable][aria-sort=descending] .usa-table__header__button .usa-icon > g {\n  fill: transparent;\n}\n.usa-prose > table th[data-sortable][aria-sort=descending] .usa-table__header__button .usa-icon > g.descending {\n  fill: #1b1b1b;\n}\n.usa-prose > table th[data-sortable][aria-sort=ascending] .usa-table__header__button {\n  color: #005ea2;\n  text-decoration: underline;\n  background-color: transparent;\n  border: 0;\n  border-radius: 0;\n  box-shadow: none;\n  font-weight: normal;\n  justify-content: normal;\n  text-align: left;\n  margin: 0;\n  padding: 0;\n  width: auto;\n  height: 2rem;\n  width: 2rem;\n  background-position: center center;\n  background-size: 1.5rem;\n  color: #71767a;\n  cursor: pointer;\n  display: inline-block;\n  margin: 0;\n  position: absolute;\n  right: 0.25rem;\n  text-align: center;\n  text-decoration: none;\n  top: 50%;\n  transform: translate(0, -50%);\n}\n.usa-prose > table th[data-sortable][aria-sort=ascending] .usa-table__header__button:visited {\n  color: #54278f;\n}\n.usa-prose > table th[data-sortable][aria-sort=ascending] .usa-table__header__button:hover {\n  color: #1a4480;\n}\n.usa-prose > table th[data-sortable][aria-sort=ascending] .usa-table__header__button:active {\n  color: #162e51;\n}\n.usa-prose > table th[data-sortable][aria-sort=ascending] .usa-table__header__button:focus {\n  outline: 0.25rem solid #2491ff;\n  outline-offset: 0rem;\n}\n.usa-prose > table th[data-sortable][aria-sort=ascending] .usa-table__header__button:hover, .usa-prose > table th[data-sortable][aria-sort=ascending] .usa-table__header__button.usa-button--hover, .usa-prose > table th[data-sortable][aria-sort=ascending] .usa-table__header__button:disabled:hover, .usa-prose > table th[data-sortable][aria-sort=ascending] .usa-table__header__button[aria-disabled=true]:hover, .usa-prose > table th[data-sortable][aria-sort=ascending] .usa-table__header__button:disabled.usa-button--hover, .usa-prose > table th[data-sortable][aria-sort=ascending] .usa-table__header__button[aria-disabled=true].usa-button--hover, .usa-prose > table th[data-sortable][aria-sort=ascending] .usa-table__header__button:active, .usa-prose > table th[data-sortable][aria-sort=ascending] .usa-table__header__button.usa-button--active, .usa-prose > table th[data-sortable][aria-sort=ascending] .usa-table__header__button:disabled:active, .usa-prose > table th[data-sortable][aria-sort=ascending] .usa-table__header__button[aria-disabled=true]:active, .usa-prose > table th[data-sortable][aria-sort=ascending] .usa-table__header__button:disabled.usa-button--active, .usa-prose > table th[data-sortable][aria-sort=ascending] .usa-table__header__button[aria-disabled=true].usa-button--active, .usa-prose > table th[data-sortable][aria-sort=ascending] .usa-table__header__button:disabled:focus, .usa-prose > table th[data-sortable][aria-sort=ascending] .usa-table__header__button[aria-disabled=true]:focus, .usa-prose > table th[data-sortable][aria-sort=ascending] .usa-table__header__button:disabled.usa-focus, .usa-prose > table th[data-sortable][aria-sort=ascending] .usa-table__header__button[aria-disabled=true].usa-focus, .usa-prose > table th[data-sortable][aria-sort=ascending] .usa-table__header__button:disabled, .usa-prose > table th[data-sortable][aria-sort=ascending] .usa-table__header__button[aria-disabled=true], .usa-prose > table th[data-sortable][aria-sort=ascending] .usa-table__header__button.usa-button--disabled {\n  background-color: transparent;\n  box-shadow: none;\n  text-decoration: underline;\n}\n.usa-prose > table th[data-sortable][aria-sort=ascending] .usa-table__header__button.usa-button--hover {\n  color: #1a4480;\n}\n.usa-prose > table th[data-sortable][aria-sort=ascending] .usa-table__header__button.usa-button--active {\n  color: #162e51;\n}\n.usa-prose > table th[data-sortable][aria-sort=ascending] .usa-table__header__button:disabled, .usa-prose > table th[data-sortable][aria-sort=ascending] .usa-table__header__button[aria-disabled=true], .usa-prose > table th[data-sortable][aria-sort=ascending] .usa-table__header__button:disabled:hover, .usa-prose > table th[data-sortable][aria-sort=ascending] .usa-table__header__button[aria-disabled=true]:hover, .usa-prose > table th[data-sortable][aria-sort=ascending] .usa-table__header__button[aria-disabled=true]:focus {\n  color: #757575;\n}\n@media (forced-colors: active) {\n  .usa-prose > table th[data-sortable][aria-sort=ascending] .usa-table__header__button:disabled, .usa-prose > table th[data-sortable][aria-sort=ascending] .usa-table__header__button[aria-disabled=true], .usa-prose > table th[data-sortable][aria-sort=ascending] .usa-table__header__button:disabled:hover, .usa-prose > table th[data-sortable][aria-sort=ascending] .usa-table__header__button[aria-disabled=true]:hover, .usa-prose > table th[data-sortable][aria-sort=ascending] .usa-table__header__button[aria-disabled=true]:focus {\n    color: GrayText;\n  }\n}\n.usa-prose > table th[data-sortable][aria-sort=ascending] .usa-table__header__button .usa-icon {\n  height: 1.5rem;\n  width: 1.5rem;\n  vertical-align: middle;\n}\n.usa-prose > table th[data-sortable][aria-sort=ascending] .usa-table__header__button .usa-icon > g {\n  fill: transparent;\n}\n.usa-prose > table th[data-sortable][aria-sort=ascending] .usa-table__header__button .usa-icon > g.ascending {\n  fill: #1b1b1b;\n}\n.usa-prose > table thead th[aria-sort] {\n  background-color: #97d4ea;\n  color: #1b1b1b;\n}\n.usa-prose > table td[data-sort-active],\n.usa-prose > table th[data-sort-active] {\n  background-color: #e1f3f8;\n  color: #1b1b1b;\n}\n.usa-prose > .usa-table--borderless {\n  /* stylelint-disable selector-class-pattern */\n  /* stylelint-enable selector-class-pattern */\n}\n.usa-prose > .usa-table--borderless th,\n.usa-prose > .usa-table--borderless thead td,\n.usa-prose > .usa-table--borderless tfoot td {\n  background-color: white;\n}\n.usa-prose > .usa-table--borderless th {\n  border-top: 0;\n  color: #1b1b1b;\n}\n.usa-prose > .usa-table--borderless th[aria-sort] {\n  color: #1b1b1b;\n}\n.usa-prose > .usa-table--borderless th[data-sortable]:not([aria-sort]) .usa-table__header__button .usa-icon > g.unsorted {\n  fill: #1b1b1b;\n}\n.usa-prose > .usa-table--borderless th[data-sortable]:not([aria-sort]) .usa-table__header__button:hover .usa-icon > g.unsorted {\n  fill: black;\n}\n.usa-prose > .usa-table--borderless th,\n.usa-prose > .usa-table--borderless td {\n  border-left: 0;\n  border-right: 0;\n}\n.usa-prose > .usa-table--compact th,\n.usa-prose > .usa-table--compact td {\n  padding: 0.25rem 0.75rem;\n}\n.usa-prose > .usa-table--striped tbody tr:nth-child(odd) td {\n  background-color: #f0f0f0;\n  color: #1b1b1b;\n}\n.usa-prose > .usa-table--striped tbody tr:nth-child(odd) td[data-sort-active] {\n  background-color: #c3ebfa;\n  color: #1b1b1b;\n}\n@media all and (max-width: 29.99em) {\n  .usa-prose > .usa-table--stacked thead {\n    display: none;\n  }\n  .usa-prose > .usa-table--stacked th {\n    background-color: white;\n  }\n  .usa-prose > .usa-table--stacked th,\n  .usa-prose > .usa-table--stacked td {\n    border-bottom-width: 0;\n    display: block;\n    width: 100%;\n  }\n  .usa-prose > .usa-table--stacked tr {\n    border-bottom: 0.25rem solid #1b1b1b;\n    border-top-width: 0;\n    width: 100%;\n  }\n  .usa-prose > .usa-table--stacked tr th:first-child,\n  .usa-prose > .usa-table--stacked tr td:first-child {\n    border-top-width: 0;\n  }\n  .usa-prose > .usa-table--stacked tr:nth-child(odd) td,\n  .usa-prose > .usa-table--stacked tr:nth-child(odd) th {\n    background-color: inherit;\n  }\n  .usa-prose > .usa-table--stacked tr:first-child th:first-child,\n  .usa-prose > .usa-table--stacked tr:first-child td:first-child {\n    border-top: 0.25rem solid #1b1b1b;\n  }\n  .usa-prose > .usa-table--stacked th[data-label],\n  .usa-prose > .usa-table--stacked td[data-label] {\n    padding-bottom: 0.75rem;\n  }\n  .usa-prose > .usa-table--stacked th[data-label]:before,\n  .usa-prose > .usa-table--stacked td[data-label]:before {\n    content: attr(data-label);\n    display: block;\n    font-weight: 700;\n    margin: -0.5rem -1rem 0rem;\n    padding: 0.75rem 1rem 0.25rem;\n  }\n}\n@media all and (max-width: 29.99em) {\n  .usa-prose > .usa-table--stacked-header thead {\n    display: none;\n  }\n  .usa-prose > .usa-table--stacked-header th {\n    background-color: white;\n  }\n  .usa-prose > .usa-table--stacked-header th,\n  .usa-prose > .usa-table--stacked-header td {\n    border-bottom-width: 0;\n    display: block;\n    width: 100%;\n  }\n  .usa-prose > .usa-table--stacked-header tr {\n    border-bottom: 0.25rem solid #1b1b1b;\n    border-top-width: 0;\n    width: 100%;\n  }\n  .usa-prose > .usa-table--stacked-header tr th:first-child,\n  .usa-prose > .usa-table--stacked-header tr td:first-child {\n    border-top-width: 0;\n  }\n  .usa-prose > .usa-table--stacked-header tr:nth-child(odd) td,\n  .usa-prose > .usa-table--stacked-header tr:nth-child(odd) th {\n    background-color: inherit;\n  }\n  .usa-prose > .usa-table--stacked-header tr:first-child th:first-child,\n  .usa-prose > .usa-table--stacked-header tr:first-child td:first-child {\n    border-top: 0.25rem solid #1b1b1b;\n  }\n  .usa-prose > .usa-table--stacked-header th[data-label],\n  .usa-prose > .usa-table--stacked-header td[data-label] {\n    padding-bottom: 0.75rem;\n  }\n  .usa-prose > .usa-table--stacked-header th[data-label]:before,\n  .usa-prose > .usa-table--stacked-header td[data-label]:before {\n    content: attr(data-label);\n    display: block;\n    font-weight: 700;\n    margin: -0.5rem -1rem 0rem;\n    padding: 0.75rem 1rem 0.25rem;\n  }\n  .usa-prose > .usa-table--stacked-header tr td:first-child,\n  .usa-prose > .usa-table--stacked-header tr th:first-child {\n    font-family: Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;\n    font-size: 1.06rem;\n    line-height: 1.1;\n    background-color: #dfe1e2;\n    color: #1b1b1b;\n    font-weight: 700;\n    padding: 0.75rem 1rem;\n  }\n  .usa-prose > .usa-table--stacked-header tr td:first-child:before,\n  .usa-prose > .usa-table--stacked-header tr th:first-child:before {\n    display: none;\n  }\n}\n.usa-prose > .width-mobile .usa-table--stacked thead {\n  display: none;\n}\n.usa-prose > .width-mobile .usa-table--stacked th {\n  background-color: white;\n}\n.usa-prose > .width-mobile .usa-table--stacked th,\n.usa-prose > .width-mobile .usa-table--stacked td {\n  border-bottom-width: 0;\n  display: block;\n  width: 100%;\n}\n.usa-prose > .width-mobile .usa-table--stacked tr {\n  border-bottom: 0.25rem solid #1b1b1b;\n  border-top-width: 0;\n  width: 100%;\n}\n.usa-prose > .width-mobile .usa-table--stacked tr th:first-child,\n.usa-prose > .width-mobile .usa-table--stacked tr td:first-child {\n  border-top-width: 0;\n}\n.usa-prose > .width-mobile .usa-table--stacked tr:nth-child(odd) td,\n.usa-prose > .width-mobile .usa-table--stacked tr:nth-child(odd) th {\n  background-color: inherit;\n}\n.usa-prose > .width-mobile .usa-table--stacked tr:first-child th:first-child,\n.usa-prose > .width-mobile .usa-table--stacked tr:first-child td:first-child {\n  border-top: 0.25rem solid #1b1b1b;\n}\n.usa-prose > .width-mobile .usa-table--stacked th[data-label],\n.usa-prose > .width-mobile .usa-table--stacked td[data-label] {\n  padding-bottom: 0.75rem;\n}\n.usa-prose > .width-mobile .usa-table--stacked th[data-label]:before,\n.usa-prose > .width-mobile .usa-table--stacked td[data-label]:before {\n  content: attr(data-label);\n  display: block;\n  font-weight: 700;\n  margin: -0.5rem -1rem 0rem;\n  padding: 0.75rem 1rem 0.25rem;\n}\n.usa-prose > .width-mobile .usa-table--stacked-header thead {\n  display: none;\n}\n.usa-prose > .width-mobile .usa-table--stacked-header th {\n  background-color: white;\n}\n.usa-prose > .width-mobile .usa-table--stacked-header th,\n.usa-prose > .width-mobile .usa-table--stacked-header td {\n  border-bottom-width: 0;\n  display: block;\n  width: 100%;\n}\n.usa-prose > .width-mobile .usa-table--stacked-header tr {\n  border-bottom: 0.25rem solid #1b1b1b;\n  border-top-width: 0;\n  width: 100%;\n}\n.usa-prose > .width-mobile .usa-table--stacked-header tr th:first-child,\n.usa-prose > .width-mobile .usa-table--stacked-header tr td:first-child {\n  border-top-width: 0;\n}\n.usa-prose > .width-mobile .usa-table--stacked-header tr:nth-child(odd) td,\n.usa-prose > .width-mobile .usa-table--stacked-header tr:nth-child(odd) th {\n  background-color: inherit;\n}\n.usa-prose > .width-mobile .usa-table--stacked-header tr:first-child th:first-child,\n.usa-prose > .width-mobile .usa-table--stacked-header tr:first-child td:first-child {\n  border-top: 0.25rem solid #1b1b1b;\n}\n.usa-prose > .width-mobile .usa-table--stacked-header th[data-label],\n.usa-prose > .width-mobile .usa-table--stacked-header td[data-label] {\n  padding-bottom: 0.75rem;\n}\n.usa-prose > .width-mobile .usa-table--stacked-header th[data-label]:before,\n.usa-prose > .width-mobile .usa-table--stacked-header td[data-label]:before {\n  content: attr(data-label);\n  display: block;\n  font-weight: 700;\n  margin: -0.5rem -1rem 0rem;\n  padding: 0.75rem 1rem 0.25rem;\n}\n.usa-prose > .width-mobile .usa-table--stacked-header tr td:first-child,\n.usa-prose > .width-mobile .usa-table--stacked-header tr th:first-child {\n  font-family: Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;\n  font-size: 1.06rem;\n  line-height: 1.1;\n  background-color: #dfe1e2;\n  color: #1b1b1b;\n  font-weight: 700;\n  padding: 0.75rem 1rem;\n}\n.usa-prose > .width-mobile .usa-table--stacked-header tr td:first-child:before,\n.usa-prose > .width-mobile .usa-table--stacked-header tr th:first-child:before {\n  display: none;\n}\n.usa-prose > .usa-table-container--scrollable {\n  margin: 1.25rem 0;\n  overflow-y: hidden;\n}\n.usa-prose > .usa-table-container--scrollable .usa-table {\n  margin: 0;\n}\n.usa-prose > .usa-table-container--scrollable td {\n  white-space: nowrap;\n}\n.usa-prose > p {\n  line-height: 1.5;\n  max-width: 68ex;\n}\n.usa-prose > h1,\n.usa-prose > h2,\n.usa-prose > h3,\n.usa-prose > h4,\n.usa-prose > h5,\n.usa-prose > h6 {\n  margin-bottom: 0;\n  margin-top: 0;\n  clear: both;\n}\n.usa-prose > * + * {\n  margin-top: 1em;\n  margin-bottom: 0;\n}\n.usa-prose > * + h1,\n.usa-prose > * + h2,\n.usa-prose > * + h3,\n.usa-prose > * + h4,\n.usa-prose > * + h5,\n.usa-prose > * + h6 {\n  margin-top: 1.5em;\n}\n.usa-prose > h1 {\n  font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n  font-size: 2.44rem;\n  line-height: 1.2;\n  font-weight: 700;\n}\n.usa-prose > h2 {\n  font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n  font-size: 1.95rem;\n  line-height: 1.2;\n  font-weight: 700;\n}\n.usa-prose > h3 {\n  font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n  font-size: 1.34rem;\n  line-height: 1.2;\n  font-weight: 700;\n}\n.usa-prose > h4 {\n  font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n  font-size: 0.98rem;\n  line-height: 1.2;\n  font-weight: 700;\n}\n.usa-prose > h5 {\n  font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n  font-size: 0.91rem;\n  line-height: 1.2;\n  font-weight: 700;\n}\n.usa-prose > h6 {\n  font-family: Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;\n  font-size: 0.87rem;\n  line-height: 1.1;\n  font-weight: normal;\n  letter-spacing: 0.025em;\n  text-transform: uppercase;\n}\n\n.usa-accordion {\n  margin-bottom: 0;\n  margin-top: 0;\n  list-style-type: none;\n  padding-left: 0;\n  color: #1b1b1b;\n  margin: 0;\n  padding: 0;\n  width: 100%;\n  font-family: Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;\n  font-size: 1.06rem;\n  line-height: 1.5;\n}\n.usa-accordion > li {\n  margin-bottom: 0;\n  max-width: unset;\n}\n.usa-accordion > ul li ul {\n  list-style: disc;\n}\n.usa-accordion > ul li ul > li > ul {\n  list-style: circle;\n}\n.usa-accordion > ul li ul > li > ul > li > ul {\n  list-style: square;\n}\n.usa-accordion + .usa-accordion,\n.usa-accordion + .usa-accordion--bordered {\n  margin-top: 0.5rem;\n}\n\n.usa-accordion--bordered .usa-accordion__content {\n  border-bottom: 0.25rem solid #f0f0f0;\n  border-left: 0.25rem solid #f0f0f0;\n  border-right: 0.25rem solid #f0f0f0;\n  padding-bottom: 1rem;\n}\n.usa-accordion--bordered .usa-accordion__heading {\n  margin-bottom: 0;\n}\n\n.usa-accordion__heading,\n.usa-prose .usa-accordion__heading {\n  font-family: Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;\n  font-size: 1.06rem;\n  line-height: 0.9;\n  margin: 0;\n}\n.usa-accordion__heading:not(:first-child),\n.usa-prose .usa-accordion__heading:not(:first-child) {\n  margin-top: 0.5rem;\n}\n\n.usa-accordion__content {\n  color: #1b1b1b;\n  background-color: white;\n  margin-top: 0;\n  overflow: auto;\n  padding: 1rem 1.25rem calc(1rem - 0.25rem) 1.25rem;\n}\n.usa-accordion__content > *:first-child {\n  margin-top: 0;\n}\n.usa-accordion__content > *:last-child {\n  margin-bottom: 0;\n}\n\n.usa-accordion__button {\n  color: #005ea2;\n  text-decoration: underline;\n  background-color: transparent;\n  border: 0;\n  border-radius: 0;\n  box-shadow: none;\n  font-weight: normal;\n  justify-content: normal;\n  text-align: left;\n  margin: 0;\n  padding: 0;\n  width: auto;\n  color: #1b1b1b;\n  background-color: #f0f0f0;\n  background-image: url(\"../img/usa-icons/remove.svg\"), linear-gradient(transparent, transparent);\n  background-repeat: no-repeat;\n  background-position: right 1.25rem center;\n  background-size: 1.5rem;\n  cursor: pointer;\n  display: inline-block;\n  font-weight: 700;\n  margin: 0;\n  padding: 1rem 3.5rem 1rem 1.25rem;\n  text-decoration: none;\n  width: 100%;\n}\n.usa-accordion__button:visited {\n  color: #54278f;\n}\n.usa-accordion__button:hover {\n  color: #1a4480;\n}\n.usa-accordion__button:active {\n  color: #162e51;\n}\n.usa-accordion__button:focus {\n  outline: 0.25rem solid #2491ff;\n  outline-offset: 0rem;\n}\n.usa-accordion__button:hover, .usa-accordion__button.usa-button--hover, .usa-accordion__button:disabled:hover, .usa-accordion__button[aria-disabled=true]:hover, .usa-accordion__button:disabled.usa-button--hover, .usa-accordion__button[aria-disabled=true].usa-button--hover, .usa-accordion__button:active, .usa-accordion__button.usa-button--active, .usa-accordion__button:disabled:active, .usa-accordion__button[aria-disabled=true]:active, .usa-accordion__button:disabled.usa-button--active, .usa-accordion__button[aria-disabled=true].usa-button--active, .usa-accordion__button:disabled:focus, .usa-accordion__button[aria-disabled=true]:focus, .usa-accordion__button:disabled.usa-focus, .usa-accordion__button[aria-disabled=true].usa-focus, .usa-accordion__button:disabled, .usa-accordion__button[aria-disabled=true], .usa-accordion__button.usa-button--disabled {\n  background-color: transparent;\n  box-shadow: none;\n  text-decoration: underline;\n}\n.usa-accordion__button.usa-button--hover {\n  color: #1a4480;\n}\n.usa-accordion__button.usa-button--active {\n  color: #162e51;\n}\n.usa-accordion__button:disabled, .usa-accordion__button[aria-disabled=true], .usa-accordion__button:disabled:hover, .usa-accordion__button[aria-disabled=true]:hover, .usa-accordion__button[aria-disabled=true]:focus {\n  color: #757575;\n}\n@media (forced-colors: active) {\n  .usa-accordion__button:disabled, .usa-accordion__button[aria-disabled=true], .usa-accordion__button:disabled:hover, .usa-accordion__button[aria-disabled=true]:hover, .usa-accordion__button[aria-disabled=true]:focus {\n    color: GrayText;\n  }\n}\n.usa-accordion__button:hover {\n  color: #1b1b1b;\n  background-color: #dfe1e2;\n  background-image: url(\"../img/usa-icons/remove.svg\"), linear-gradient(transparent, transparent);\n  background-repeat: no-repeat;\n  text-decoration: none;\n}\n@media (forced-colors: active) {\n  .usa-accordion__button {\n    border: 2px solid transparent;\n    position: relative;\n  }\n  .usa-accordion__button::before {\n    background-image: url(\"../img/usa-icons/remove.svg\");\n    background-repeat: no-repeat;\n    background-position: center center;\n    background-size: 1.5rem 1.5rem;\n    display: inline-block;\n    height: 1.5rem;\n    width: 1.5rem;\n    height: 100%;\n    position: absolute;\n    right: 1.25rem;\n    top: 0;\n    content: \"\";\n  }\n  @supports (mask: url(\"\")) {\n    .usa-accordion__button::before {\n      background: none;\n      background-color: ButtonText;\n      mask-image: url(\"../img/usa-icons/remove.svg\"), linear-gradient(transparent, transparent);\n      mask-position: center center;\n      mask-repeat: no-repeat;\n      mask-size: 1.5rem 1.5rem;\n    }\n  }\n}\n\n.usa-accordion__button[aria-expanded=false] {\n  background-image: url(\"../img/usa-icons/add.svg\"), linear-gradient(transparent, transparent);\n  background-repeat: no-repeat;\n  background-size: 1.5rem;\n}\n.usa-accordion__button[aria-expanded=false]:hover {\n  background-image: url(\"../img/usa-icons/add.svg\"), linear-gradient(transparent, transparent);\n  background-repeat: no-repeat;\n}\n@media (forced-colors: active) {\n  .usa-accordion__button[aria-expanded=false]::before {\n    background-image: url(\"../img/usa-icons/add.svg\");\n    background-repeat: no-repeat;\n    background-position: center center;\n    background-size: 1.5rem 1.5rem;\n    display: inline-block;\n    height: 1.5rem;\n    width: 1.5rem;\n    height: 100%;\n    position: absolute;\n    right: 1.25rem;\n    top: 0;\n  }\n  @supports (mask: url(\"\")) {\n    .usa-accordion__button[aria-expanded=false]::before {\n      background: none;\n      background-color: ButtonText;\n      mask-image: url(\"../img/usa-icons/add.svg\"), linear-gradient(transparent, transparent);\n      mask-position: center center;\n      mask-repeat: no-repeat;\n      mask-size: 1.5rem 1.5rem;\n    }\n  }\n}\n\n.usa-alert {\n  background-color: #f0f0f0;\n  border-left: 0.5rem solid #a9aeb1;\n  color: #1b1b1b;\n}\n.usa-alert .usa-alert__body {\n  font-family: Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;\n  font-size: 1.06rem;\n  line-height: 1.5;\n  padding-bottom: 1rem;\n  padding-top: 1rem;\n  position: relative;\n}\n.usa-alert .usa-alert__text {\n  margin-bottom: 0;\n  margin-top: 0;\n}\n.usa-alert .usa-alert__text:only-child {\n  padding-bottom: 0;\n  padding-top: 0;\n}\n.usa-alert .usa-alert__heading {\n  font-family: Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;\n  font-size: 1.46rem;\n  line-height: 0.9;\n  margin-top: 0;\n  margin-bottom: 0.5rem;\n}\n.usa-alert > .usa-list,\n.usa-alert .usa-alert__body > .usa-list {\n  padding-left: 2ch;\n}\n.usa-alert > .usa-list:last-child,\n.usa-alert .usa-alert__body > .usa-list:last-child {\n  margin-bottom: 0;\n}\n.usa-alert .usa-alert__body {\n  padding-left: 1.25rem;\n  padding-right: 1.25rem;\n}\n.usa-alert .usa-alert__body::before {\n  left: 1.0833333333rem;\n}\n* + .usa-alert {\n  margin-top: 1rem;\n}\n\n.usa-alert--success {\n  background-color: #ecf3ec;\n  border-left-color: #00a91c;\n}\n.usa-alert--success .usa-alert__body {\n  color: #1b1b1b;\n  background-color: #ecf3ec;\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  min-height: 3.3333333333rem;\n}\n.usa-alert--success .usa-alert__body::before {\n  background-image: url(\"../img/usa-icons/check_circle.svg\");\n  background-repeat: no-repeat;\n  background-position: center center;\n  background-size: 2rem 2rem;\n  display: inline-block;\n  height: 2rem;\n  width: 2rem;\n  content: \"\";\n  display: block;\n  position: absolute;\n  top: 0.6666666667rem;\n}\n@supports (mask: url(\"\")) {\n  .usa-alert--success .usa-alert__body::before {\n    background: none;\n    background-color: #1b1b1b;\n    mask-image: url(\"../img/usa-icons/check_circle.svg\"), linear-gradient(transparent, transparent);\n    mask-position: center center;\n    mask-repeat: no-repeat;\n    mask-size: 2rem 2rem;\n  }\n}\n.usa-alert--success .usa-alert__body > * {\n  margin-left: 2.5rem;\n}\n.usa-alert--success .usa-alert__body .usa-link {\n  color: #005ea2;\n}\n.usa-alert--success .usa-alert__body .usa-link:visited {\n  color: #54278f;\n}\n.usa-alert--success .usa-alert__body .usa-link:hover, .usa-alert--success .usa-alert__body .usa-link:active {\n  color: #1a4480;\n}\n\n.usa-alert--warning {\n  background-color: #faf3d1;\n  border-left-color: #ffbe2e;\n}\n.usa-alert--warning .usa-alert__body {\n  color: #1b1b1b;\n  background-color: #faf3d1;\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  min-height: 3.3333333333rem;\n}\n.usa-alert--warning .usa-alert__body::before {\n  background-image: url(\"../img/usa-icons/warning.svg\");\n  background-repeat: no-repeat;\n  background-position: center center;\n  background-size: 2rem 2rem;\n  display: inline-block;\n  height: 2rem;\n  width: 2rem;\n  content: \"\";\n  display: block;\n  position: absolute;\n  top: 0.6666666667rem;\n}\n@supports (mask: url(\"\")) {\n  .usa-alert--warning .usa-alert__body::before {\n    background: none;\n    background-color: #1b1b1b;\n    mask-image: url(\"../img/usa-icons/warning.svg\"), linear-gradient(transparent, transparent);\n    mask-position: center center;\n    mask-repeat: no-repeat;\n    mask-size: 2rem 2rem;\n  }\n}\n.usa-alert--warning .usa-alert__body > * {\n  margin-left: 2.5rem;\n}\n.usa-alert--warning .usa-alert__body .usa-link {\n  color: #005ea2;\n}\n.usa-alert--warning .usa-alert__body .usa-link:visited {\n  color: #54278f;\n}\n.usa-alert--warning .usa-alert__body .usa-link:hover, .usa-alert--warning .usa-alert__body .usa-link:active {\n  color: #1a4480;\n}\n\n.usa-alert--error {\n  background-color: #f4e3db;\n  border-left-color: #d54309;\n}\n.usa-alert--error .usa-alert__body {\n  color: #1b1b1b;\n  background-color: #f4e3db;\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  min-height: 3.3333333333rem;\n}\n.usa-alert--error .usa-alert__body::before {\n  background-image: url(\"../img/usa-icons/error.svg\");\n  background-repeat: no-repeat;\n  background-position: center center;\n  background-size: 2rem 2rem;\n  display: inline-block;\n  height: 2rem;\n  width: 2rem;\n  content: \"\";\n  display: block;\n  position: absolute;\n  top: 0.6666666667rem;\n}\n@supports (mask: url(\"\")) {\n  .usa-alert--error .usa-alert__body::before {\n    background: none;\n    background-color: #1b1b1b;\n    mask-image: url(\"../img/usa-icons/error.svg\"), linear-gradient(transparent, transparent);\n    mask-position: center center;\n    mask-repeat: no-repeat;\n    mask-size: 2rem 2rem;\n  }\n}\n.usa-alert--error .usa-alert__body > * {\n  margin-left: 2.5rem;\n}\n.usa-alert--error .usa-alert__body .usa-link {\n  color: #005ea2;\n}\n.usa-alert--error .usa-alert__body .usa-link:visited {\n  color: #54278f;\n}\n.usa-alert--error .usa-alert__body .usa-link:hover, .usa-alert--error .usa-alert__body .usa-link:active {\n  color: #1a4480;\n}\n\n.usa-alert--info {\n  background-color: #e7f6f8;\n  border-left-color: #00bde3;\n}\n.usa-alert--info .usa-alert__body {\n  color: #1b1b1b;\n  background-color: #e7f6f8;\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  min-height: 3.3333333333rem;\n}\n.usa-alert--info .usa-alert__body::before {\n  background-image: url(\"../img/usa-icons/info.svg\");\n  background-repeat: no-repeat;\n  background-position: center center;\n  background-size: 2rem 2rem;\n  display: inline-block;\n  height: 2rem;\n  width: 2rem;\n  content: \"\";\n  display: block;\n  position: absolute;\n  top: 0.6666666667rem;\n}\n@supports (mask: url(\"\")) {\n  .usa-alert--info .usa-alert__body::before {\n    background: none;\n    background-color: #1b1b1b;\n    mask-image: url(\"../img/usa-icons/info.svg\"), linear-gradient(transparent, transparent);\n    mask-position: center center;\n    mask-repeat: no-repeat;\n    mask-size: 2rem 2rem;\n  }\n}\n.usa-alert--info .usa-alert__body > * {\n  margin-left: 2.5rem;\n}\n.usa-alert--info .usa-alert__body .usa-link {\n  color: #005ea2;\n}\n.usa-alert--info .usa-alert__body .usa-link:visited {\n  color: #54278f;\n}\n.usa-alert--info .usa-alert__body .usa-link:hover, .usa-alert--info .usa-alert__body .usa-link:active {\n  color: #1a4480;\n}\n\n.usa-alert--emergency {\n  background-color: #9c3d10;\n  border-left-color: #9c3d10;\n}\n.usa-alert--emergency .usa-alert__body {\n  color: white;\n  background-color: #9c3d10;\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  min-height: 3.3333333333rem;\n}\n.usa-alert--emergency .usa-alert__body::before {\n  background-image: url(\"../img/usa-icons-bg/error--white.svg\");\n  background-repeat: no-repeat;\n  background-position: center center;\n  background-size: 2rem 2rem;\n  display: inline-block;\n  height: 2rem;\n  width: 2rem;\n  content: \"\";\n  display: block;\n  position: absolute;\n  top: 0.6666666667rem;\n}\n@supports (mask: url(\"\")) {\n  .usa-alert--emergency .usa-alert__body::before {\n    background: none;\n    background-color: white;\n    mask-image: url(\"../img/usa-icons/error.svg\"), linear-gradient(transparent, transparent);\n    mask-position: center center;\n    mask-repeat: no-repeat;\n    mask-size: 2rem 2rem;\n  }\n}\n.usa-alert--emergency .usa-alert__body > * {\n  margin-left: 2.5rem;\n}\n.usa-alert--emergency .usa-alert__body .usa-link {\n  color: #dfe1e2;\n}\n.usa-alert--emergency .usa-alert__body .usa-link:visited {\n  color: #dfe1e2;\n}\n.usa-alert--emergency .usa-alert__body .usa-link:hover, .usa-alert--emergency .usa-alert__body .usa-link:active {\n  color: #f0f0f0;\n}\n\n.usa-alert--slim .usa-alert__body {\n  padding-bottom: 0.5rem;\n  padding-top: 0.5rem;\n  min-height: 0;\n}\n.usa-alert--slim .usa-alert__body:before {\n  height: 1.5rem;\n  top: 0.5rem;\n  width: 1.5rem;\n}\n@supports (mask: url(\"\")) {\n  .usa-alert--slim .usa-alert__body:before {\n    mask-size: 1.5rem;\n  }\n}\n.usa-alert--slim .usa-alert__body > * {\n  margin-left: 2rem;\n}\n.usa-alert--slim .usa-alert__body::before {\n  left: 1.125rem;\n}\n\n.usa-alert--no-icon .usa-alert__body {\n  min-height: 0;\n}\n.usa-alert--no-icon .usa-alert__body:before {\n  display: none;\n}\n.usa-alert--no-icon .usa-alert__body > * {\n  margin-left: 0;\n}\n\n.usa-alert--validation .usa-checklist {\n  margin-top: 1rem;\n}\n\n.usa-banner {\n  font-family: Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;\n  font-size: 1.06rem;\n  line-height: 1.5;\n  background-color: #f0f0f0;\n}\n@media all and (min-width: 40em) {\n  .usa-banner {\n    font-size: 0.87rem;\n    padding-bottom: 0rem;\n  }\n}\n.usa-banner .usa-accordion {\n  font-family: Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;\n  font-size: 1.06rem;\n  line-height: 1.5;\n}\n.usa-banner .grid-row {\n  display: flex;\n  flex-wrap: wrap;\n}\n.usa-banner .grid-row.grid-gap-lg {\n  margin-left: -0.75rem;\n  margin-right: -0.75rem;\n}\n.usa-banner .grid-row.grid-gap-lg > * {\n  padding-left: 0.75rem;\n  padding-right: 0.75rem;\n}\n@media all and (min-width: 40em) {\n  .usa-banner .grid-row .tablet\\:grid-col-6 {\n    flex: 0 1 auto;\n    width: 50%;\n  }\n}\n\n.usa-banner__header,\n.usa-banner__content {\n  color: #1b1b1b;\n}\n\n.usa-banner__content {\n  margin-left: auto;\n  margin-right: auto;\n  max-width: 64rem;\n  padding-left: 1rem;\n  padding-right: 1rem;\n  padding-left: 1rem;\n  padding-right: 1rem;\n  background-color: transparent;\n  font-size: 1rem;\n  overflow: hidden;\n  padding-bottom: 1rem;\n  padding-left: 0.5rem;\n  padding-top: 0.25rem;\n  width: 100%;\n}\n@media all and (min-width: 64em) {\n  .usa-banner__content {\n    padding-left: 2rem;\n    padding-right: 2rem;\n  }\n}\n@media all and (min-width: 64em) {\n  .usa-banner__content {\n    padding-left: 2rem;\n    padding-right: 2rem;\n  }\n}\n@media all and (min-width: 40em) {\n  .usa-banner__content {\n    padding-bottom: 1.5rem;\n    padding-top: 1.5rem;\n  }\n}\n.usa-banner__content p:first-child {\n  margin: 0;\n}\n\n.usa-banner__guidance {\n  display: flex;\n  align-items: flex-start;\n  max-width: 64ex;\n  padding-top: 1rem;\n}\n@media all and (min-width: 40em) {\n  .usa-banner__guidance {\n    padding-top: 0rem;\n  }\n}\n\n.usa-banner__lock-image {\n  height: 1.5ex;\n  width: 1.21875ex;\n}\n.usa-banner__lock-image path {\n  fill: currentColor;\n}\n@media (forced-colors: active) {\n  .usa-banner__lock-image path {\n    fill: CanvasText;\n  }\n}\n\n.usa-banner__inner {\n  padding-left: 1rem;\n  padding-right: 1rem;\n  margin-left: auto;\n  margin-right: auto;\n  max-width: 64rem;\n  padding-left: 1rem;\n  padding-right: 1rem;\n  display: flex;\n  flex-wrap: wrap;\n  align-items: flex-start;\n  padding-right: 0rem;\n}\n@media all and (min-width: 64em) {\n  .usa-banner__inner {\n    padding-left: 2rem;\n    padding-right: 2rem;\n  }\n}\n@media all and (min-width: 64em) {\n  .usa-banner__inner {\n    padding-left: 2rem;\n    padding-right: 2rem;\n  }\n}\n@media all and (min-width: 40em) {\n  .usa-banner__inner {\n    align-items: center;\n  }\n}\n\n.usa-banner__header {\n  padding-bottom: 0.5rem;\n  padding-top: 0.5rem;\n  font-size: 0.8rem;\n  font-weight: normal;\n  min-height: 3rem;\n  position: relative;\n}\n@media all and (min-width: 40em) {\n  .usa-banner__header {\n    padding-bottom: 0.25rem;\n    padding-top: 0.25rem;\n    min-height: 0;\n  }\n}\n\n.usa-banner__header-text {\n  margin-bottom: 0;\n  margin-top: 0;\n  font-size: 0.8rem;\n  line-height: 1.1;\n}\n\n.usa-banner__header-action {\n  color: #005ea2;\n  line-height: 1.1;\n  margin-bottom: 0rem;\n  margin-top: 2px;\n  text-decoration: underline;\n}\n.usa-banner__header-action::after {\n  background-image: url(\"../img/usa-icons/expand_more.svg\");\n  background-repeat: no-repeat;\n  background-position: center center;\n  background-size: 1rem 1rem;\n  display: inline-block;\n  height: 1rem;\n  width: 1rem;\n  content: \"\";\n  vertical-align: middle;\n  margin-left: auto;\n}\n@supports (mask: url(\"\")) {\n  .usa-banner__header-action::after {\n    background: none;\n    background-color: #005ea2;\n    mask-image: url(\"../img/usa-icons/expand_more.svg\"), linear-gradient(transparent, transparent);\n    mask-position: center center;\n    mask-repeat: no-repeat;\n    mask-size: 1rem 1rem;\n  }\n  .usa-banner__header-action::after:hover {\n    background-color: #1a4480;\n  }\n}\n.usa-banner__header-action:hover::after {\n  content: \"\";\n  background-color: #1a4480;\n}\n.usa-banner__header-action:visited {\n  color: #54278f;\n}\n.usa-banner__header-action:hover, .usa-banner__header-action:active {\n  color: #1a4480;\n}\n.usa-banner__header--expanded .usa-banner__header-action {\n  display: none;\n}\n@media all and (min-width: 40em) {\n  .usa-banner__header-action {\n    display: none;\n  }\n}\n@media (forced-colors: active) {\n  .usa-banner__header-action {\n    color: LinkText;\n  }\n  .usa-banner__header-action::after {\n    background-color: ButtonText;\n  }\n}\n\n.usa-banner__header-flag {\n  float: left;\n  margin-right: 0.5rem;\n  width: 1rem;\n}\n@media all and (min-width: 40em) {\n  .usa-banner__header-flag {\n    margin-right: 0.5rem;\n    padding-top: 0rem;\n  }\n}\n\n.usa-banner__header--expanded {\n  padding-right: 3.5rem;\n}\n@media all and (min-width: 40em) {\n  .usa-banner__header--expanded {\n    background-color: transparent;\n    display: block;\n    font-size: 0.8rem;\n    font-weight: normal;\n    min-height: 0rem;\n    padding-right: 0rem;\n  }\n}\n.usa-banner__header--expanded .usa-banner__inner {\n  margin-left: 0rem;\n}\n@media all and (min-width: 40em) {\n  .usa-banner__header--expanded .usa-banner__inner {\n    margin-left: auto;\n  }\n}\n.usa-banner__header--expanded .usa-banner__header-action {\n  display: none;\n}\n\n.usa-banner__button {\n  color: #005ea2;\n  text-decoration: underline;\n  background-color: transparent;\n  border: 0;\n  border-radius: 0;\n  box-shadow: none;\n  font-weight: normal;\n  justify-content: normal;\n  text-align: left;\n  margin: 0;\n  padding: 0;\n  width: auto;\n  position: absolute;\n  left: 0;\n  position: absolute;\n  bottom: 0;\n  top: 0;\n  color: #005ea2;\n  text-decoration: underline;\n  color: #005ea2;\n  display: block;\n  font-size: 0.8rem;\n  height: auto;\n  line-height: 1.1;\n  padding-top: 0rem;\n  padding-left: 0rem;\n  text-decoration: none;\n  width: auto;\n}\n.usa-banner__button:visited {\n  color: #54278f;\n}\n.usa-banner__button:hover {\n  color: #1a4480;\n}\n.usa-banner__button:active {\n  color: #162e51;\n}\n.usa-banner__button:focus {\n  outline: 0.25rem solid #2491ff;\n  outline-offset: 0rem;\n}\n.usa-banner__button:hover, .usa-banner__button.usa-button--hover, .usa-banner__button:disabled:hover, .usa-banner__button[aria-disabled=true]:hover, .usa-banner__button:disabled.usa-button--hover, .usa-banner__button[aria-disabled=true].usa-button--hover, .usa-banner__button:active, .usa-banner__button.usa-button--active, .usa-banner__button:disabled:active, .usa-banner__button[aria-disabled=true]:active, .usa-banner__button:disabled.usa-button--active, .usa-banner__button[aria-disabled=true].usa-button--active, .usa-banner__button:disabled:focus, .usa-banner__button[aria-disabled=true]:focus, .usa-banner__button:disabled.usa-focus, .usa-banner__button[aria-disabled=true].usa-focus, .usa-banner__button:disabled, .usa-banner__button[aria-disabled=true], .usa-banner__button.usa-button--disabled {\n  background-color: transparent;\n  box-shadow: none;\n  text-decoration: underline;\n}\n.usa-banner__button.usa-button--hover {\n  color: #1a4480;\n}\n.usa-banner__button.usa-button--active {\n  color: #162e51;\n}\n.usa-banner__button:disabled, .usa-banner__button[aria-disabled=true], .usa-banner__button:disabled:hover, .usa-banner__button[aria-disabled=true]:hover, .usa-banner__button[aria-disabled=true]:focus {\n  color: #757575;\n}\n@media (forced-colors: active) {\n  .usa-banner__button:disabled, .usa-banner__button[aria-disabled=true], .usa-banner__button:disabled:hover, .usa-banner__button[aria-disabled=true]:hover, .usa-banner__button[aria-disabled=true]:focus {\n    color: GrayText;\n  }\n}\n.usa-banner__button:visited {\n  color: #54278f;\n}\n.usa-banner__button:hover, .usa-banner__button:active {\n  color: #1a4480;\n}\n@media all and (max-width: 39.99em) {\n  .usa-banner__button {\n    width: 100%;\n  }\n  .usa-banner__button:enabled:focus {\n    outline-offset: -0.25rem;\n  }\n}\n@media all and (min-width: 40em) {\n  .usa-banner__button {\n    color: #005ea2;\n    position: static;\n    bottom: auto;\n    left: auto;\n    right: auto;\n    top: auto;\n    display: inline;\n    margin-left: 0.5rem;\n    position: relative;\n  }\n  .usa-banner__button::after {\n    background-image: url(\"../img/usa-icons/expand_more.svg\");\n    background-repeat: no-repeat;\n    background-position: center center;\n    background-size: 1rem 1rem;\n    display: inline-block;\n    height: 1rem;\n    width: 1rem;\n    content: \"\";\n    vertical-align: middle;\n    margin-left: 2px;\n  }\n  @supports (mask: url(\"\")) {\n    .usa-banner__button::after {\n      background: none;\n      background-color: #005ea2;\n      mask-image: url(\"../img/usa-icons/expand_more.svg\"), linear-gradient(transparent, transparent);\n      mask-position: center center;\n      mask-repeat: no-repeat;\n      mask-size: 1rem 1rem;\n    }\n    .usa-banner__button::after:hover {\n      background-color: #1a4480;\n    }\n  }\n  .usa-banner__button:hover::after {\n    content: \"\";\n    background-color: #1a4480;\n  }\n  .usa-banner__button:visited {\n    color: #54278f;\n  }\n  .usa-banner__button:hover, .usa-banner__button:active {\n    color: #1a4480;\n  }\n  .usa-banner__button::after, .usa-banner__button:hover::after {\n    position: absolute;\n  }\n}\n@media (min-width: 40em) and (forced-colors: active) {\n  .usa-banner__button::after, .usa-banner__button:hover::after {\n    background-color: ButtonText;\n  }\n}\n@media all and (min-width: 40em) {\n  .usa-banner__button:hover {\n    text-decoration: none;\n  }\n}\n.usa-banner__button[aria-expanded=false], .usa-banner__button[aria-expanded=false]:hover, .usa-banner__button[aria-expanded=true], .usa-banner__button[aria-expanded=true]:hover {\n  background-image: none;\n}\n@media (forced-colors: active) {\n  .usa-banner__button[aria-expanded=false]::before, .usa-banner__button[aria-expanded=false]:hover::before, .usa-banner__button[aria-expanded=true]::before, .usa-banner__button[aria-expanded=true]:hover::before {\n    content: none;\n  }\n}\n@media all and (max-width: 39.99em) {\n  .usa-banner__button[aria-expanded=true]::after {\n    background-image: url(\"../img/usa-icons/close.svg\");\n    background-repeat: no-repeat;\n    background-position: center center;\n    background-size: 1.5rem 1.5rem;\n    display: inline-block;\n    height: 3rem;\n    width: 3rem;\n    content: \"\";\n    vertical-align: middle;\n    margin-left: 0rem;\n  }\n  @supports (mask: url(\"\")) {\n    .usa-banner__button[aria-expanded=true]::after {\n      background: none;\n      background-color: #005ea2;\n      mask-image: url(\"../img/usa-icons/close.svg\"), linear-gradient(transparent, transparent);\n      mask-position: center center;\n      mask-repeat: no-repeat;\n      mask-size: 1.5rem 1.5rem;\n    }\n  }\n  .usa-banner__button[aria-expanded=true]::before {\n    position: absolute;\n    bottom: 0;\n    top: 0;\n    position: absolute;\n    right: 0;\n    background-color: #dfe1e2;\n    content: \"\";\n    display: block;\n    height: 3rem;\n    width: 3rem;\n  }\n  .usa-banner__button[aria-expanded=true]::after {\n    position: absolute;\n    bottom: 0;\n    top: 0;\n    position: absolute;\n    right: 0;\n  }\n}\n@media all and (min-width: 40em) {\n  .usa-banner__button[aria-expanded=true] {\n    height: auto;\n    padding: 0rem;\n    position: relative;\n  }\n  .usa-banner__button[aria-expanded=true]::after {\n    background-image: url(\"../img/usa-icons/expand_less.svg\");\n    background-repeat: no-repeat;\n    background-position: center center;\n    background-size: 1rem 1rem;\n    display: inline-block;\n    height: 1rem;\n    width: 1rem;\n    content: \"\";\n    vertical-align: middle;\n    margin-left: 2px;\n  }\n  @supports (mask: url(\"\")) {\n    .usa-banner__button[aria-expanded=true]::after {\n      background: none;\n      background-color: #005ea2;\n      mask-image: url(\"../img/usa-icons/expand_less.svg\"), linear-gradient(transparent, transparent);\n      mask-position: center center;\n      mask-repeat: no-repeat;\n      mask-size: 1rem 1rem;\n    }\n    .usa-banner__button[aria-expanded=true]::after:hover {\n      background-color: #1a4480;\n    }\n  }\n  .usa-banner__button[aria-expanded=true]:hover::after {\n    content: \"\";\n    background-color: #1a4480;\n  }\n  .usa-banner__button[aria-expanded=true]::after, .usa-banner__button[aria-expanded=true]:hover::after {\n    position: absolute;\n  }\n}\n@media (min-width: 40em) and (forced-colors: active) {\n  .usa-banner__button[aria-expanded=true]::after, .usa-banner__button[aria-expanded=true]:hover::after {\n    background-color: ButtonText;\n  }\n}\n\n.usa-banner__button-text {\n  position: absolute;\n  left: -999em;\n  right: auto;\n  text-decoration: underline;\n}\n@media all and (min-width: 40em) {\n  .usa-banner__button-text {\n    position: static;\n    display: inline;\n  }\n}\n@media (forced-colors: active) {\n  .usa-banner__button-text {\n    color: LinkText;\n  }\n}\n\n.usa-banner__icon {\n  width: 2.5rem;\n}\n\n.usa-js-loading .usa-banner__content {\n  position: absolute;\n  left: -999em;\n  right: auto;\n}\n\n.usa-breadcrumb {\n  font-family: Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;\n  font-size: 1.06rem;\n  line-height: 1.3;\n  color: #1b1b1b;\n  background-color: white;\n  padding-left: 0;\n  padding-right: 0;\n}\n@media all and (min-width: 30em) {\n  .usa-breadcrumb {\n    padding-bottom: 1rem;\n    padding-top: 1rem;\n  }\n}\n@media all and (min-width: 30em) {\n  .usa-breadcrumb:not(.usa-breadcrumb--wrap) .usa-breadcrumb__list {\n    white-space: nowrap;\n    text-overflow: ellipsis;\n    overflow: hidden;\n  }\n}\n\n.usa-breadcrumb__list {\n  margin-bottom: 0;\n  margin-top: 0;\n  list-style-type: none;\n  padding-left: 0;\n  display: block;\n  padding: 0.25rem;\n  margin-left: -0.25rem;\n  margin-right: -0.25rem;\n}\n.usa-breadcrumb__list > li {\n  margin-bottom: 0;\n  max-width: unset;\n}\n\n.usa-breadcrumb__list-item {\n  position: absolute;\n  left: -999em;\n  right: auto;\n  display: inline;\n}\n@media all and (max-width: 29.99em) {\n  .usa-breadcrumb__list-item {\n    white-space: normal;\n  }\n  .usa-breadcrumb__list-item:nth-last-child(2) {\n    position: static;\n  }\n  .usa-breadcrumb__list-item:nth-last-child(2) .usa-breadcrumb__link {\n    padding-left: calc(2ex + 0px);\n    text-indent: calc((2ex + 0px) * -1);\n    display: inline-block;\n    padding-bottom: 1rem;\n    padding-top: 1rem;\n  }\n  .usa-breadcrumb__list-item:nth-last-child(2) .usa-breadcrumb__link::before {\n    background-image: url(\"../img/usa-icons/arrow_back.svg\");\n    background-repeat: no-repeat;\n    background-position: center center;\n    background-size: 2ex 2ex;\n    display: inline-block;\n    height: 2ex;\n    width: 2ex;\n    content: \"\";\n    vertical-align: baseline;\n    margin-right: 0rem;\n  }\n  @supports (mask: url(\"\")) {\n    .usa-breadcrumb__list-item:nth-last-child(2) .usa-breadcrumb__link::before {\n      background: none;\n      background-color: #71767a;\n      mask-image: url(\"../img/usa-icons/arrow_back.svg\"), linear-gradient(transparent, transparent);\n      mask-position: center center;\n      mask-repeat: no-repeat;\n      mask-size: 2ex 2ex;\n    }\n  }\n  .usa-breadcrumb__list-item:nth-last-child(2) .usa-breadcrumb__link:before {\n    bottom: -0.2em;\n    height: 2ex;\n    position: relative;\n  }\n  .usa-breadcrumb__list-item:nth-last-child(2) .usa-breadcrumb__link, .usa-breadcrumb__list-item:nth-last-child(2) .usa-breadcrumb__link:hover, .usa-breadcrumb__list-item:nth-last-child(2) .usa-breadcrumb__link:active {\n    text-decoration: none;\n  }\n  .usa-breadcrumb__list-item:nth-last-child(2) .usa-breadcrumb__link span {\n    text-decoration: underline;\n  }\n  .usa-breadcrumb__list-item:nth-last-child(2) .usa-breadcrumb__link::before {\n    margin-right: 0px;\n  }\n}\n@media all and (min-width: 30em) {\n  .usa-breadcrumb__list-item {\n    position: static;\n  }\n  .usa-breadcrumb__list-item:not(:last-child)::after {\n    background-image: url(\"../img/usa-icons/navigate_next.svg\");\n    background-repeat: no-repeat;\n    background-position: center center;\n    background-size: 2ex 2ex;\n    display: inline-block;\n    height: 2ex;\n    width: 2ex;\n    content: \"\";\n    vertical-align: baseline;\n    margin-left: 0rem;\n  }\n  @supports (mask: url(\"\")) {\n    .usa-breadcrumb__list-item:not(:last-child)::after {\n      background: none;\n      background-color: #71767a;\n      mask-image: url(\"../img/usa-icons/navigate_next.svg\"), linear-gradient(transparent, transparent);\n      mask-position: center center;\n      mask-repeat: no-repeat;\n      mask-size: 2ex 2ex;\n    }\n  }\n  .usa-breadcrumb__list-item:not(:last-child)::after {\n    bottom: -0.2em;\n    margin-left: 0px;\n    margin-right: 0px;\n    height: 2ex;\n    position: relative;\n  }\n}\n\n.usa-breadcrumb__link {\n  color: #005ea2;\n  display: inline;\n  text-decoration: none;\n}\n.usa-breadcrumb__link:visited {\n  color: #54278f;\n}\n.usa-breadcrumb__link:hover, .usa-breadcrumb__link:active {\n  color: #1a4480;\n}\n.usa-breadcrumb__link span {\n  text-decoration: underline;\n}\n\n@media all and (min-width: 30em) {\n  .usa-breadcrumb--wrap {\n    line-height: 1.4;\n  }\n}\n.usa-breadcrumb--wrap .usa-breadcrumb__list-item {\n  display: inline-block;\n}\n\n.usa-button-group {\n  margin-bottom: 0;\n  margin-top: 0;\n  display: flex;\n  flex-direction: column;\n  flex-wrap: wrap;\n  list-style-type: none;\n  margin-left: -0.25rem;\n  margin-right: -0.25rem;\n  padding-left: 0;\n}\n@media all and (min-width: 30em) {\n  .usa-button-group {\n    flex-wrap: nowrap;\n    align-items: stretch;\n    flex-direction: row;\n  }\n}\n.usa-button-group .usa-button-group {\n  height: 100%;\n}\n@media all and (min-width: 30em) {\n  .usa-button-group .usa-button-group .usa-button-group__item {\n    margin-top: 0;\n    margin-bottom: 0;\n  }\n}\n.usa-button-group .usa-button-group--segmented .usa-button-group__item {\n  margin-top: 0;\n  margin-bottom: 0;\n}\n\n.usa-button-group__item {\n  margin: 0.25rem;\n}\n@media all and (min-width: 30em) {\n  .usa-button-group__item:last-child {\n    margin-right: 0;\n  }\n}\n.usa-button-group__item .usa-button {\n  height: 100%;\n  margin-left: 0;\n  margin-right: 0;\n}\n\n.usa-button-group--segmented {\n  flex-direction: row;\n  flex-wrap: nowrap;\n  justify-content: space-between;\n  margin-left: 0;\n  margin-right: 0;\n}\n@media all and (min-width: 30em) {\n  .usa-button-group--segmented {\n    justify-content: flex-start;\n  }\n}\n.usa-button-group--segmented .usa-button {\n  position: relative;\n  width: calc(100% + 2px);\n}\n@media all and (min-width: 30em) {\n  .usa-button-group--segmented .usa-button {\n    width: auto;\n  }\n}\n.usa-button-group--segmented .usa-button:hover, .usa-button-group--segmented .usa-button:active {\n  z-index: 2;\n}\n.usa-button-group--segmented .usa-button:focus {\n  z-index: 3;\n}\n.usa-button-group--segmented .usa-button-group__item {\n  margin-left: 0;\n  margin-right: 0;\n  width: 100%;\n}\n@media all and (min-width: 30em) {\n  .usa-button-group--segmented .usa-button-group__item {\n    width: auto;\n  }\n}\n.usa-button-group--segmented .usa-button-group__item:first-child > .usa-button {\n  border-top-right-radius: 0;\n  border-bottom-right-radius: 0;\n  margin-right: -1px;\n}\n.usa-button-group--segmented .usa-button-group__item:last-child > .usa-button {\n  border-top-left-radius: 0;\n  border-bottom-left-radius: 0;\n  margin-right: 0;\n  margin-left: -2px;\n  width: calc(100% + 2px);\n}\n@media all and (min-width: 30em) {\n  .usa-button-group--segmented .usa-button-group__item:last-child > .usa-button {\n    margin-left: -1px;\n    width: auto;\n  }\n}\n.usa-button-group--segmented .usa-button-group__item:where(:not(:first-child):not(:last-child)) > .usa-button {\n  border-radius: 0;\n  margin-right: -1px;\n  margin-left: -1px;\n}\n.usa-button-group--segmented .usa-button-group__item:where(:not(:last-child)) .usa-button::before {\n  border-right: 1px solid #1a4480;\n  bottom: 0;\n  content: \"\";\n  display: block;\n  height: 100%;\n  position: absolute;\n  right: 1px;\n  top: 0;\n  width: 1px;\n  z-index: 3;\n}\n.usa-button-group--segmented .usa-button-group__item:where(:not(:last-child)) .usa-button--secondary::before {\n  border-right-color: #b50909;\n}\n.usa-button-group--segmented .usa-button-group__item:where(:not(:last-child)) .usa-button--accent-cool::before {\n  border-right-color: #28a0cb;\n}\n.usa-button-group--segmented .usa-button-group__item:where(:not(:last-child)) .usa-button--base::before {\n  border-right-color: #565c65;\n}\n.usa-button-group--segmented .usa-button-group__item:where(:not(:last-child)) [class*=usa-button]:disabled::before,\n.usa-button-group--segmented .usa-button-group__item:where(:not(:last-child)) [class*=usa-button][aria-disabled=true]::before {\n  border-right-color: white;\n}\n.usa-button-group--segmented .usa-button-group__item:where(:not(:last-child)) .usa-button:active::before,\n.usa-button-group--segmented .usa-button-group__item:where(:not(:last-child)) .usa-button--outline::before {\n  display: none;\n}\n\n.usa-button {\n  font-family: Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;\n  font-size: 1.06rem;\n  line-height: 0.9;\n  color: white;\n  background-color: #005ea2;\n  appearance: none;\n  align-items: center;\n  border: 0;\n  border-radius: 0.25rem;\n  cursor: pointer;\n  column-gap: 0.5rem;\n  display: inline-flex;\n  font-weight: 700;\n  justify-content: center;\n  margin-right: 0.5rem;\n  padding: 0.75rem 1.25rem;\n  text-align: center;\n  text-decoration: none;\n  width: 100%;\n}\n@media all and (min-width: 30em) {\n  .usa-button {\n    width: auto;\n  }\n}\n.usa-button:visited {\n  color: white;\n}\n.usa-button:hover, .usa-button.usa-button--hover {\n  color: white;\n  background-color: #1a4480;\n  border-bottom: 0;\n  text-decoration: none;\n}\n.usa-button:active, .usa-button.usa-button--active {\n  color: white;\n  background-color: #162e51;\n}\n.usa-button:not([disabled]):focus, .usa-button:not([disabled]).usa-focus {\n  outline-offset: 0.25rem;\n}\n.usa-button:disabled, .usa-button[aria-disabled=true] {\n  color: #454545;\n  background-color: #c9c9c9;\n  cursor: not-allowed;\n  opacity: 1;\n}\n.usa-button:disabled:hover, .usa-button:disabled:active, .usa-button:disabled:focus, .usa-button:disabled.usa-focus, .usa-button[aria-disabled=true]:hover, .usa-button[aria-disabled=true]:active, .usa-button[aria-disabled=true]:focus, .usa-button[aria-disabled=true].usa-focus {\n  color: #454545;\n  background-color: #c9c9c9;\n}\n@media (forced-colors: active) {\n  .usa-button:disabled, .usa-button[aria-disabled=true] {\n    border: 0;\n    color: GrayText;\n  }\n  .usa-button:disabled:hover, .usa-button:disabled:active, .usa-button:disabled:focus, .usa-button:disabled.usa-focus, .usa-button[aria-disabled=true]:hover, .usa-button[aria-disabled=true]:active, .usa-button[aria-disabled=true]:focus, .usa-button[aria-disabled=true].usa-focus {\n    color: GrayText;\n  }\n}\n.usa-button:disabled.usa-button--hover, .usa-button:disabled.usa-button--active, .usa-button[aria-disabled=true].usa-button--hover, .usa-button[aria-disabled=true].usa-button--active {\n  color: #454545;\n  background-color: #c9c9c9;\n  cursor: not-allowed;\n  opacity: 1;\n}\n.usa-button:disabled.usa-button--hover:hover, .usa-button:disabled.usa-button--hover:active, .usa-button:disabled.usa-button--hover:focus, .usa-button:disabled.usa-button--hover.usa-focus, .usa-button:disabled.usa-button--active:hover, .usa-button:disabled.usa-button--active:active, .usa-button:disabled.usa-button--active:focus, .usa-button:disabled.usa-button--active.usa-focus, .usa-button[aria-disabled=true].usa-button--hover:hover, .usa-button[aria-disabled=true].usa-button--hover:active, .usa-button[aria-disabled=true].usa-button--hover:focus, .usa-button[aria-disabled=true].usa-button--hover.usa-focus, .usa-button[aria-disabled=true].usa-button--active:hover, .usa-button[aria-disabled=true].usa-button--active:active, .usa-button[aria-disabled=true].usa-button--active:focus, .usa-button[aria-disabled=true].usa-button--active.usa-focus {\n  color: #454545;\n  background-color: #c9c9c9;\n}\n@media (forced-colors: active) {\n  .usa-button:disabled.usa-button--hover, .usa-button:disabled.usa-button--active, .usa-button[aria-disabled=true].usa-button--hover, .usa-button[aria-disabled=true].usa-button--active {\n    border: 0;\n    color: GrayText;\n  }\n  .usa-button:disabled.usa-button--hover:hover, .usa-button:disabled.usa-button--hover:active, .usa-button:disabled.usa-button--hover:focus, .usa-button:disabled.usa-button--hover.usa-focus, .usa-button:disabled.usa-button--active:hover, .usa-button:disabled.usa-button--active:active, .usa-button:disabled.usa-button--active:focus, .usa-button:disabled.usa-button--active.usa-focus, .usa-button[aria-disabled=true].usa-button--hover:hover, .usa-button[aria-disabled=true].usa-button--hover:active, .usa-button[aria-disabled=true].usa-button--hover:focus, .usa-button[aria-disabled=true].usa-button--hover.usa-focus, .usa-button[aria-disabled=true].usa-button--active:hover, .usa-button[aria-disabled=true].usa-button--active:active, .usa-button[aria-disabled=true].usa-button--active:focus, .usa-button[aria-disabled=true].usa-button--active.usa-focus {\n    color: GrayText;\n  }\n}\n@media (forced-colors: active) {\n  .usa-button:disabled:not(.usa-button--unstyled), .usa-button[aria-disabled=true]:not(.usa-button--unstyled) {\n    border: 2px solid GrayText;\n  }\n}\n.usa-button .usa-icon {\n  flex-shrink: 0;\n}\n@media (forced-colors: active) {\n  .usa-button:not(.usa-button--unstyled) {\n    border: 2px solid transparent;\n  }\n}\n\n.usa-button--accent-cool {\n  color: #1b1b1b;\n  background-color: #00bde3;\n}\n.usa-button--accent-cool:visited {\n  color: #1b1b1b;\n  background-color: #00bde3;\n}\n.usa-button--accent-cool:hover, .usa-button--accent-cool.usa-button--hover {\n  color: #1b1b1b;\n  background-color: #28a0cb;\n}\n.usa-button--accent-cool:active, .usa-button--accent-cool.usa-button--active {\n  color: white;\n  background-color: #07648d;\n}\n\n.usa-button--accent-warm {\n  color: #1b1b1b;\n  background-color: #fa9441;\n}\n.usa-button--accent-warm:visited {\n  color: #1b1b1b;\n  background-color: #fa9441;\n}\n.usa-button--accent-warm:hover, .usa-button--accent-warm.usa-button--hover {\n  color: white;\n  background-color: #c05600;\n}\n.usa-button--accent-warm:active, .usa-button--accent-warm.usa-button--active {\n  color: white;\n  background-color: #775540;\n}\n\n.usa-button--outline {\n  background-color: transparent;\n  box-shadow: inset 0 0 0 2px #005ea2;\n  color: #005ea2;\n}\n.usa-button--outline:visited {\n  color: #005ea2;\n}\n.usa-button--outline:hover, .usa-button--outline.usa-button--hover {\n  background-color: transparent;\n  box-shadow: inset 0 0 0 2px #1a4480;\n  color: #1a4480;\n}\n.usa-button--outline:active, .usa-button--outline.usa-button--active {\n  background-color: transparent;\n  box-shadow: inset 0 0 0 2px #162e51;\n  color: #162e51;\n}\n.usa-button--outline.usa-button--inverse {\n  box-shadow: inset 0 0 0 2px #dfe1e2;\n  color: #dfe1e2;\n}\n.usa-button--outline.usa-button--inverse:visited {\n  color: #dfe1e2;\n}\n.usa-button--outline.usa-button--inverse:hover, .usa-button--outline.usa-button--inverse.usa-button--hover {\n  box-shadow: inset 0 0 0 2px #f0f0f0;\n  color: #f0f0f0;\n}\n.usa-button--outline.usa-button--inverse:active, .usa-button--outline.usa-button--inverse.usa-button--active {\n  background-color: transparent;\n  box-shadow: inset 0 0 0 2px white;\n  color: white;\n}\n.usa-button--outline.usa-button--inverse.usa-button--unstyled {\n  color: #005ea2;\n  text-decoration: underline;\n  background-color: transparent;\n  border: 0;\n  border-radius: 0;\n  box-shadow: none;\n  font-weight: normal;\n  justify-content: normal;\n  text-align: left;\n  margin: 0;\n  padding: 0;\n  width: auto;\n  color: #dfe1e2;\n}\n.usa-button--outline.usa-button--inverse.usa-button--unstyled:visited {\n  color: #54278f;\n}\n.usa-button--outline.usa-button--inverse.usa-button--unstyled:hover {\n  color: #1a4480;\n}\n.usa-button--outline.usa-button--inverse.usa-button--unstyled:active {\n  color: #162e51;\n}\n.usa-button--outline.usa-button--inverse.usa-button--unstyled:focus {\n  outline: 0.25rem solid #2491ff;\n  outline-offset: 0rem;\n}\n.usa-button--outline.usa-button--inverse.usa-button--unstyled:hover, .usa-button--outline.usa-button--inverse.usa-button--unstyled.usa-button--hover, .usa-button--outline.usa-button--inverse.usa-button--unstyled:disabled:hover, .usa-button--outline.usa-button--inverse.usa-button--unstyled[aria-disabled=true]:hover, .usa-button--outline.usa-button--inverse.usa-button--unstyled:disabled.usa-button--hover, .usa-button--outline.usa-button--inverse.usa-button--unstyled[aria-disabled=true].usa-button--hover, .usa-button--outline.usa-button--inverse.usa-button--unstyled:active, .usa-button--outline.usa-button--inverse.usa-button--unstyled.usa-button--active, .usa-button--outline.usa-button--inverse.usa-button--unstyled:disabled:active, .usa-button--outline.usa-button--inverse.usa-button--unstyled[aria-disabled=true]:active, .usa-button--outline.usa-button--inverse.usa-button--unstyled:disabled.usa-button--active, .usa-button--outline.usa-button--inverse.usa-button--unstyled[aria-disabled=true].usa-button--active, .usa-button--outline.usa-button--inverse.usa-button--unstyled:disabled:focus, .usa-button--outline.usa-button--inverse.usa-button--unstyled[aria-disabled=true]:focus, .usa-button--outline.usa-button--inverse.usa-button--unstyled:disabled.usa-focus, .usa-button--outline.usa-button--inverse.usa-button--unstyled[aria-disabled=true].usa-focus, .usa-button--outline.usa-button--inverse.usa-button--unstyled:disabled, .usa-button--outline.usa-button--inverse.usa-button--unstyled[aria-disabled=true], .usa-button--outline.usa-button--inverse.usa-button--unstyled.usa-button--disabled {\n  background-color: transparent;\n  box-shadow: none;\n  text-decoration: underline;\n}\n.usa-button--outline.usa-button--inverse.usa-button--unstyled.usa-button--hover {\n  color: #1a4480;\n}\n.usa-button--outline.usa-button--inverse.usa-button--unstyled.usa-button--active {\n  color: #162e51;\n}\n.usa-button--outline.usa-button--inverse.usa-button--unstyled:disabled, .usa-button--outline.usa-button--inverse.usa-button--unstyled[aria-disabled=true], .usa-button--outline.usa-button--inverse.usa-button--unstyled:disabled:hover, .usa-button--outline.usa-button--inverse.usa-button--unstyled[aria-disabled=true]:hover, .usa-button--outline.usa-button--inverse.usa-button--unstyled[aria-disabled=true]:focus {\n  color: #757575;\n}\n@media (forced-colors: active) {\n  .usa-button--outline.usa-button--inverse.usa-button--unstyled:disabled, .usa-button--outline.usa-button--inverse.usa-button--unstyled[aria-disabled=true], .usa-button--outline.usa-button--inverse.usa-button--unstyled:disabled:hover, .usa-button--outline.usa-button--inverse.usa-button--unstyled[aria-disabled=true]:hover, .usa-button--outline.usa-button--inverse.usa-button--unstyled[aria-disabled=true]:focus {\n    color: GrayText;\n  }\n}\n.usa-button--outline.usa-button--inverse.usa-button--unstyled:visited {\n  color: #dfe1e2;\n}\n.usa-button--outline.usa-button--inverse.usa-button--unstyled:hover, .usa-button--outline.usa-button--inverse.usa-button--unstyled.usa-button--hover {\n  color: #f0f0f0;\n}\n.usa-button--outline.usa-button--inverse.usa-button--unstyled:active, .usa-button--outline.usa-button--inverse.usa-button--unstyled.usa-button--active {\n  color: white;\n}\n\n.usa-button--base {\n  color: white;\n  background-color: #71767a;\n}\n.usa-button--base:hover, .usa-button--base.usa-button--hover {\n  color: white;\n  background-color: #565c65;\n}\n.usa-button--base:active, .usa-button--base.usa-button--active {\n  color: white;\n  background-color: #3d4551;\n}\n\n.usa-button--secondary {\n  color: white;\n  background-color: #d83933;\n}\n.usa-button--secondary:hover, .usa-button--secondary.usa-button--hover {\n  color: white;\n  background-color: #b50909;\n}\n.usa-button--secondary:active, .usa-button--secondary.usa-button--active {\n  color: white;\n  background-color: #8b0a03;\n}\n\n.usa-button--big {\n  border-radius: 0.25rem;\n  font-size: 1.46rem;\n  padding: 1rem 1.5rem;\n}\n\n.usa-button--outline:disabled, .usa-button--outline:disabled:hover, .usa-button--outline:disabled:active, .usa-button--outline:disabled:focus,\n.usa-button--outline[aria-disabled=true],\n.usa-button--outline[aria-disabled=true]:hover,\n.usa-button--outline[aria-disabled=true]:active,\n.usa-button--outline[aria-disabled=true]:focus,\n.usa-button--outline-inverse:disabled,\n.usa-button--outline-inverse:disabled:hover,\n.usa-button--outline-inverse:disabled:active,\n.usa-button--outline-inverse:disabled:focus,\n.usa-button--outline-inverse[aria-disabled=true],\n.usa-button--outline-inverse[aria-disabled=true]:hover,\n.usa-button--outline-inverse[aria-disabled=true]:active,\n.usa-button--outline-inverse[aria-disabled=true]:focus {\n  background-color: transparent;\n  color: #757575;\n}\n\n.usa-button--outline:disabled,\n.usa-button--outline[aria-disabled=true] {\n  box-shadow: inset 0 0 0 2px #c9c9c9;\n}\n.usa-button--outline:disabled.usa-button--inverse,\n.usa-button--outline[aria-disabled=true].usa-button--inverse {\n  box-shadow: inset 0 0 0 2px #919191;\n  color: #919191;\n}\n@media (forced-colors: active) {\n  .usa-button--outline:disabled.usa-button--inverse,\n  .usa-button--outline[aria-disabled=true].usa-button--inverse {\n    color: GrayText;\n  }\n}\n\n.usa-button--unstyled {\n  color: #005ea2;\n  text-decoration: underline;\n  background-color: transparent;\n  border: 0;\n  border-radius: 0;\n  box-shadow: none;\n  font-weight: normal;\n  justify-content: normal;\n  text-align: left;\n  margin: 0;\n  padding: 0;\n  width: auto;\n}\n.usa-button--unstyled:visited {\n  color: #54278f;\n}\n.usa-button--unstyled:hover {\n  color: #1a4480;\n}\n.usa-button--unstyled:active {\n  color: #162e51;\n}\n.usa-button--unstyled:focus {\n  outline: 0.25rem solid #2491ff;\n  outline-offset: 0rem;\n}\n.usa-button--unstyled:hover, .usa-button--unstyled.usa-button--hover, .usa-button--unstyled:disabled:hover, .usa-button--unstyled[aria-disabled=true]:hover, .usa-button--unstyled:disabled.usa-button--hover, .usa-button--unstyled[aria-disabled=true].usa-button--hover, .usa-button--unstyled:active, .usa-button--unstyled.usa-button--active, .usa-button--unstyled:disabled:active, .usa-button--unstyled[aria-disabled=true]:active, .usa-button--unstyled:disabled.usa-button--active, .usa-button--unstyled[aria-disabled=true].usa-button--active, .usa-button--unstyled:disabled:focus, .usa-button--unstyled[aria-disabled=true]:focus, .usa-button--unstyled:disabled.usa-focus, .usa-button--unstyled[aria-disabled=true].usa-focus, .usa-button--unstyled:disabled, .usa-button--unstyled[aria-disabled=true], .usa-button--unstyled.usa-button--disabled {\n  background-color: transparent;\n  box-shadow: none;\n  text-decoration: underline;\n}\n.usa-button--unstyled.usa-button--hover {\n  color: #1a4480;\n}\n.usa-button--unstyled.usa-button--active {\n  color: #162e51;\n}\n.usa-button--unstyled:disabled, .usa-button--unstyled[aria-disabled=true], .usa-button--unstyled:disabled:hover, .usa-button--unstyled[aria-disabled=true]:hover, .usa-button--unstyled[aria-disabled=true]:focus {\n  color: #757575;\n}\n@media (forced-colors: active) {\n  .usa-button--unstyled:disabled, .usa-button--unstyled[aria-disabled=true], .usa-button--unstyled:disabled:hover, .usa-button--unstyled[aria-disabled=true]:hover, .usa-button--unstyled[aria-disabled=true]:focus {\n    color: GrayText;\n  }\n}\n\n/* TODO:\n * Add a way to change the flag breakpoint as a modifier/class?\n */\n.usa-card-group {\n  margin-bottom: 0;\n  margin-top: 0;\n  list-style-type: none;\n  padding-left: 0;\n}\n\n.usa-prose .usa-card-group {\n  margin-bottom: 0;\n  margin-top: 0;\n  list-style-type: none;\n  padding-left: 0;\n}\n\n.usa-card-group {\n  display: flex;\n  flex-direction: column;\n  flex-wrap: wrap;\n  align-items: stretch;\n  margin-left: -0.5rem;\n  margin-right: -0.5rem;\n}\n@media all and (min-width: 40em) {\n  .usa-card-group {\n    flex-direction: row;\n  }\n}\n\n.usa-card {\n  margin-bottom: 2.5rem;\n  max-width: none;\n}\n.usa-card:last-child {\n  margin-bottom: 2.5rem;\n}\n@media all and (min-width: 40em) {\n  .usa-card {\n    margin-bottom: 2rem;\n  }\n  .usa-card:last-child {\n    margin-bottom: 2rem;\n  }\n}\n\n.usa-prose .usa-card {\n  margin-bottom: 2.5rem;\n  max-width: none;\n}\n.usa-prose .usa-card:last-child {\n  margin-bottom: 2.5rem;\n}\n@media all and (min-width: 40em) {\n  .usa-prose .usa-card {\n    margin-bottom: 2rem;\n  }\n  .usa-prose .usa-card:last-child {\n    margin-bottom: 2rem;\n  }\n}\n\n.usa-card__container {\n  color: #1b1b1b;\n  background-color: white;\n  font-family: Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;\n  font-size: 1.06rem;\n  line-height: 1.5;\n  border-width: 2px;\n  border-color: #dfe1e2;\n  border-style: solid;\n  display: flex;\n  height: 100%;\n  flex-direction: column;\n  margin-left: 0.5rem;\n  margin-right: 0.5rem;\n  position: relative;\n  border-radius: 0.5rem;\n}\n\n.usa-card:not(.usa-card--flag) .usa-card__container > :only-child {\n  padding: 1.5rem;\n}\n\n.usa-card .usa-card__img {\n  display: block;\n}\n\n.usa-card__header {\n  padding-top: 1.5rem;\n  padding-left: 1.5rem;\n  padding-right: 1.5rem;\n  padding-bottom: 0.5rem;\n}\n.usa-card__header:last-child {\n  padding-bottom: 1.5rem;\n}\n\n.usa-card__heading {\n  font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n  font-size: 1.34rem;\n  line-height: 1.2;\n  margin: 0;\n}\n\n.usa-card__media {\n  order: -1;\n  min-height: 1px;\n}\n\n.usa-card__img {\n  border-top-left-radius: calc(0.5rem - 2px);\n  border-top-right-radius: calc(0.5rem - 2px);\n  background-color: #f0f0f0;\n  position: relative;\n  overflow: hidden;\n}\n.usa-card__img img {\n  display: block;\n  height: 100%;\n  width: 100%;\n  object-fit: cover;\n}\n\n.usa-card__media--inset {\n  padding-top: 1.5rem;\n  padding-left: 1.5rem;\n  padding-right: 1.5rem;\n}\n.usa-card__media--inset .usa-card__img {\n  border-radius: 0;\n}\n\n.usa-card__body {\n  flex: 1 1 0%;\n  padding-left: 1.5rem;\n  padding-right: 1.5rem;\n  padding-bottom: 0.5rem;\n  padding-top: 0.5rem;\n  flex-basis: auto;\n}\n.usa-card__body:last-child {\n  padding-bottom: 1.5rem;\n}\n.usa-card__body:first-child {\n  padding-top: 1.5rem;\n}\n.usa-card__body:only-child {\n  padding-bottom: 1.5rem;\n  padding-top: 1.5rem;\n}\n\n.usa-card__footer {\n  padding-bottom: 1.5rem;\n  padding-left: 1.5rem;\n  padding-right: 1.5rem;\n  padding-top: 0.5rem;\n}\n\n.usa-card__footer .usa-button:only-of-type {\n  margin-right: 0;\n}\n\n.usa-card__header > :last-child,\n.usa-card__body > :last-child {\n  padding-bottom: 0;\n  margin-bottom: 0;\n}\n.usa-card__header > :first-child,\n.usa-card__body > :first-child {\n  margin-top: 0;\n  padding-top: 0;\n}\n.usa-card__header > :only-child,\n.usa-card__body > :only-child {\n  margin-bottom: 0;\n  margin-top: 0;\n  padding-bottom: 0;\n  padding-top: 0;\n}\n\n.usa-card__header--exdent,\n.usa-card__media--exdent,\n.usa-card__body--exdent,\n.usa-card__footer--exdent {\n  margin-inline: -2px;\n}\n\n.usa-card__header--exdent > *,\n.usa-card__body--exdent > *,\n.usa-card__footer--exdent > * {\n  padding-left: 2px;\n  padding-right: 2px;\n}\n\n.usa-card__media--exdent {\n  margin-top: -2px;\n}\n.usa-card__media--exdent .usa-card__img {\n  border-top-left-radius: 0.5rem;\n  border-top-right-radius: 0.5rem;\n}\n\n.usa-card--header-first .usa-card__header {\n  border-top-left-radius: calc(0.5rem - 2px);\n  border-top-right-radius: calc(0.5rem - 2px);\n  padding-bottom: 1rem;\n}\n.usa-card--header-first .usa-card__header--exdent {\n  border-top-left-radius: 0.5rem;\n  border-top-right-radius: 0.5rem;\n  margin-top: -2px;\n}\n.usa-card--header-first .usa-card__media--inset {\n  padding-top: 0;\n}\n.usa-card--header-first .usa-card__media {\n  order: 0;\n}\n.usa-card--header-first .usa-card__media--exdent {\n  margin-top: 0;\n}\n.usa-card--header-first .usa-card__img {\n  border-radius: 0;\n}\n.usa-card--header-first .usa-card__body {\n  padding-top: 1rem;\n}\n\n@media all and (min-width: 40em) {\n  .usa-card--flag .usa-card__media {\n    display: flex;\n    overflow: hidden;\n    position: absolute;\n    bottom: 0;\n    top: 0;\n    position: absolute;\n    left: 0;\n    position: absolute;\n    width: 15rem;\n  }\n  .usa-card--flag .usa-card__img {\n    border-radius: 0;\n    border-top-left-radius: calc(0.5rem - 2px);\n    border-bottom-left-radius: calc(0.5rem - 2px);\n  }\n  .usa-card--flag .usa-card__header,\n  .usa-card--flag .usa-card__body,\n  .usa-card--flag .usa-card__footer {\n    margin-left: 15rem;\n  }\n  .usa-card--flag .usa-card__media--exdent {\n    margin: -2px;\n  }\n  .usa-card--flag .usa-card__media--exdent .usa-card__img {\n    border-bottom-left-radius: 0.5rem;\n    border-top-left-radius: 0.5rem;\n  }\n  .usa-card--flag .usa-card__media--inset {\n    padding-right: 0;\n    padding-bottom: 1.5rem;\n  }\n  .usa-card--flag .usa-card__media--inset .usa-card__img {\n    border-radius: 0;\n  }\n  .usa-card--flag.usa-card--header-first .usa-card__header {\n    padding-bottom: 0.5rem;\n  }\n  .usa-card--flag.usa-card--header-first .usa-card__body {\n    padding-top: 0.5rem;\n  }\n  .usa-card--flag.usa-card--header-first .usa-card__media--inset {\n    padding-top: 1.5rem;\n  }\n  .usa-card--flag.usa-card--media-right .usa-card__media {\n    left: auto;\n    right: 0;\n  }\n  .usa-card--flag.usa-card--media-right .usa-card__media--inset {\n    padding-left: 0;\n    padding-right: 1.5rem;\n  }\n  .usa-card--flag.usa-card--media-right .usa-card__media--inset .usa-card__img {\n    border-radius: 0;\n  }\n  .usa-card--flag.usa-card--media-right .usa-card__img {\n    border-radius: 0;\n    border-top-right-radius: calc(0.5rem - 2px);\n    border-bottom-right-radius: calc(0.5rem - 2px);\n  }\n  .usa-card--flag.usa-card--media-right .usa-card__header,\n  .usa-card--flag.usa-card--media-right .usa-card__body,\n  .usa-card--flag.usa-card--media-right .usa-card__footer {\n    margin-left: 0;\n    margin-right: 15rem;\n  }\n  .usa-card--flag.usa-card--media-right .usa-card__img {\n    border-radius: 0;\n    border-bottom-right-radius: 0.5rem;\n    border-top-right-radius: 0.5rem;\n  }\n}\n\n.usa-card:not(.usa-card--flag).usa-card__media--set-aspect {\n  box-sizing: border-box;\n  height: 0;\n  overflow: hidden;\n  padding-bottom: 56.25%;\n  position: relative;\n  position: relative;\n}\n@supports (aspect-ratio: 1) {\n  .usa-card:not(.usa-card--flag).usa-card__media--set-aspect {\n    height: inherit;\n    padding: inherit;\n    aspect-ratio: 1.7777777778;\n    max-width: 100%;\n  }\n  .usa-card:not(.usa-card--flag).usa-card__media--set-aspect > * {\n    position: absolute;\n    top: 0;\n    left: 0;\n    width: 100%;\n    height: 100%;\n  }\n  img.usa-card:not(.usa-card--flag).usa-card__media--set-aspect, .usa-card:not(.usa-card--flag).usa-card__media--set-aspect > img {\n    object-fit: cover;\n  }\n}\n.usa-card:not(.usa-card--flag).usa-card__media--set-aspect .usa-card__img {\n  position: absolute;\n  bottom: 0;\n  left: 0;\n  right: 0;\n  top: 0;\n}\n\n.usa-checklist {\n  margin-bottom: 0;\n  margin-top: 0;\n  list-style-type: none;\n  padding-left: 0;\n  font-family: Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;\n  font-size: 1.06rem;\n  line-height: 1.5;\n}\n\n.usa-checklist__item {\n  text-indent: -2.5rem;\n  margin-bottom: 0;\n  margin-top: 0;\n  margin-bottom: 0;\n  margin-top: 0.5rem;\n}\n.usa-checklist__item::before {\n  content: \" \";\n  display: inline-block;\n  height: 1rem;\n  margin-left: -0.25rem;\n  margin-right: 0.75rem;\n  width: 2rem;\n}\n.usa-checklist__item.usa-checklist__item--checked::before {\n  background-image: url(\"../img/usa-icons-bg/check--blue-60v.svg\"), linear-gradient(transparent, transparent);\n  background-repeat: no-repeat;\n  background-position: center;\n  background-size: 1.5rem;\n}\n\n.usa-collection {\n  font-family: Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;\n  font-size: 1.06rem;\n  line-height: 1.3;\n  margin-bottom: 1em;\n  margin-top: 1em;\n  line-height: 1.5;\n  padding-left: 3ch;\n  padding-left: 0;\n}\n.usa-collection:last-child {\n  margin-bottom: 0;\n}\n.usa-collection ul,\n.usa-collection ol {\n  margin-top: 0.25em;\n}\n\n.usa-collection__item {\n  margin-bottom: 0.25em;\n  max-width: 68ex;\n  margin-bottom: 0;\n  margin-top: 0;\n  list-style-type: none;\n  padding-left: 0;\n  align-items: flex-start;\n  border-top-width: 1px;\n  border-top-style: solid;\n  display: flex;\n  margin-bottom: 1rem;\n  margin-top: 1rem;\n  padding-top: 1rem;\n}\n.usa-collection__item:last-child {\n  margin-bottom: 0;\n}\n.usa-collection__item > li {\n  margin-bottom: 0;\n  max-width: unset;\n}\n\n.usa-prose .usa-collection {\n  font-family: Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;\n  font-size: 1.06rem;\n  line-height: 1.3;\n  margin-bottom: 1em;\n  margin-top: 1em;\n  line-height: 1.5;\n  padding-left: 3ch;\n  padding-left: 0;\n}\n.usa-prose .usa-collection:last-child {\n  margin-bottom: 0;\n}\n.usa-prose .usa-collection ul,\n.usa-prose .usa-collection ol {\n  margin-top: 0.25em;\n}\n.usa-prose .usa-collection__item {\n  margin-bottom: 0.25em;\n  max-width: 68ex;\n  margin-bottom: 0;\n  margin-top: 0;\n  list-style-type: none;\n  padding-left: 0;\n  align-items: flex-start;\n  border-top-width: 1px;\n  border-top-style: solid;\n  display: flex;\n  margin-bottom: 1rem;\n  margin-top: 1rem;\n  padding-top: 1rem;\n}\n.usa-prose .usa-collection__item:last-child {\n  margin-bottom: 0;\n}\n.usa-prose .usa-collection__item > li {\n  margin-bottom: 0;\n  max-width: unset;\n}\n\n.usa-collection__img,\n.usa-collection__calendar-date {\n  flex-shrink: 0;\n  margin-right: 0.5rem;\n  width: 4rem;\n  margin-right: 1rem;\n}\n@media all and (min-width: 40em) {\n  .usa-collection__img,\n  .usa-collection__calendar-date {\n    width: 5rem;\n  }\n}\n\n.usa-collection__body {\n  flex: 1 1 0%;\n}\n\n.usa-collection__heading {\n  font-family: Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;\n  font-size: 1.13rem;\n  line-height: 1.3;\n  margin-bottom: 0;\n  margin-top: 0;\n}\n\n.usa-collection__description {\n  margin-bottom: 0.5rem;\n  margin-top: 0.5rem;\n}\n\n.usa-collection__meta {\n  margin-bottom: 0;\n  margin-top: 0;\n  list-style-type: none;\n  padding-left: 0;\n  margin-top: 0.25rem;\n}\n.usa-collection__meta > li {\n  margin-bottom: 0;\n  max-width: unset;\n}\n\n.usa-collection__meta-item {\n  margin-top: 0.25rem;\n  font-family: Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;\n  font-size: 0.93rem;\n  line-height: 1.3;\n  display: block;\n  margin-right: 0.5rem;\n}\n.usa-collection__meta-item.usa-tag {\n  background-color: #dfe1e2;\n  line-height: 0.9;\n  padding-bottom: 0.25rem;\n  padding-top: 0.25rem;\n  color: #1b1b1b;\n  display: inline-block;\n  margin-top: 0.25rem;\n}\n.usa-collection__meta-item.usa-tag--new {\n  background-color: #c05600;\n  color: white;\n}\n\n.usa-collection__calendar-date {\n  text-decoration: none;\n}\n\n.usa-collection__calendar-date-month,\n.usa-collection__calendar-date-day {\n  font-family: Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;\n  font-size: 1.13rem;\n  display: block;\n  font-weight: 700;\n  padding: 0.25rem;\n  text-align: center;\n}\n@media all and (min-width: 40em) {\n  .usa-collection__calendar-date-month,\n  .usa-collection__calendar-date-day {\n    padding: 0.5rem;\n  }\n}\n\n.usa-collection__calendar-date-month {\n  border-top-left-radius: 2px;\n  border-top-right-radius: 2px;\n  background-color: #005ea2;\n  color: white;\n}\n\n.usa-collection__calendar-date-day {\n  border-bottom-left-radius: 2px;\n  border-bottom-right-radius: 2px;\n  border: 1px solid #005ea2;\n  color: #005ea2;\n}\n\n.usa-collection--condensed .usa-collection__item {\n  margin-bottom: 0.5rem;\n  margin-top: 0.5rem;\n  padding-top: 0.5rem;\n}\n\n.usa-embed-container iframe,\n.usa-embed-container object,\n.usa-embed-container embed {\n  position: absolute;\n  top: 0;\n  left: 0;\n  width: 100%;\n  height: 100%;\n}\n\n.usa-embed-container {\n  box-sizing: border-box;\n  height: 0;\n  overflow: hidden;\n  padding-bottom: 56.25%;\n  position: relative;\n  max-width: 100%;\n}\n@supports (aspect-ratio: 1) {\n  .usa-embed-container {\n    height: inherit;\n    padding: inherit;\n    aspect-ratio: 1.7777777778;\n    max-width: 100%;\n  }\n  .usa-embed-container > * {\n    position: absolute;\n    top: 0;\n    left: 0;\n    width: 100%;\n    height: 100%;\n  }\n  img.usa-embed-container, .usa-embed-container > img {\n    object-fit: cover;\n  }\n}\n\n.usa-footer {\n  font-family: Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;\n  font-size: 1.06rem;\n  line-height: 1.5;\n}\n.usa-footer > .grid-container {\n  margin-left: auto;\n  margin-right: auto;\n  max-width: 64rem;\n  padding-left: 1rem;\n  padding-right: 1rem;\n}\n@media all and (min-width: 64em) {\n  .usa-footer > .grid-container {\n    padding-left: 2rem;\n    padding-right: 2rem;\n  }\n}\n\n.usa-footer__return-to-top {\n  padding-bottom: 1.25rem;\n  padding-top: 1.25rem;\n  line-height: 0.9;\n}\n.usa-footer__return-to-top a {\n  color: #005ea2;\n  text-decoration: underline;\n}\n.usa-footer__return-to-top a:visited {\n  color: #54278f;\n}\n.usa-footer__return-to-top a:hover {\n  color: #1a4480;\n}\n.usa-footer__return-to-top a:active {\n  color: #162e51;\n}\n.usa-footer__return-to-top a:focus {\n  outline: 0.25rem solid #2491ff;\n  outline-offset: 0rem;\n}\n\n.usa-footer__nav {\n  margin-left: auto;\n  margin-right: auto;\n  max-width: 64rem;\n  padding-left: 1rem;\n  padding-right: 1rem;\n  padding-left: 0;\n  padding-right: 0;\n  border-bottom: 1px solid #a9aeb1;\n}\n@media all and (min-width: 64em) {\n  .usa-footer__nav {\n    padding-left: 2rem;\n    padding-right: 2rem;\n  }\n}\n@media all and (min-width: 30em) {\n  .usa-footer__nav {\n    padding-left: 1rem;\n    padding-right: 1rem;\n    border-bottom: none;\n  }\n}\n@media all and (min-width: 30em) and (min-width: 64em) {\n  .usa-footer__nav {\n    padding-left: 2rem;\n    padding-right: 2rem;\n  }\n}\n.usa-footer__nav > ul {\n  margin-bottom: 0;\n  margin-top: 0;\n  list-style-type: none;\n  padding-left: 0;\n}\n\n.usa-footer__primary-section {\n  background-color: #f0f0f0;\n}\n.usa-footer__primary-section > .grid-container {\n  margin-left: auto;\n  margin-right: auto;\n  max-width: 64rem;\n  padding-left: 1rem;\n  padding-right: 1rem;\n}\n@media all and (min-width: 64em) {\n  .usa-footer__primary-section > .grid-container {\n    padding-left: 2rem;\n    padding-right: 2rem;\n  }\n}\n\n.usa-footer__primary-container {\n  margin-left: auto;\n  margin-right: auto;\n  max-width: 64rem;\n  padding-left: 1rem;\n  padding-right: 1rem;\n  padding-left: 0;\n  padding-right: 0;\n}\n@media all and (min-width: 64em) {\n  .usa-footer__primary-container {\n    padding-left: 2rem;\n    padding-right: 2rem;\n  }\n}\n@media all and (min-width: 64em) {\n  .usa-footer__primary-container {\n    padding-left: 2rem;\n    padding-right: 2rem;\n  }\n}\n\n.usa-footer__primary-content {\n  line-height: 1.1;\n}\n\n.usa-footer__primary-link {\n  padding-left: 1rem;\n  padding-right: 1rem;\n  padding-bottom: 1rem;\n  padding-top: 1rem;\n  color: #1b1b1b;\n  font-weight: 700;\n  border: 0;\n  border-top: 1px solid #a9aeb1;\n  display: block;\n}\n@media all and (min-width: 30em) {\n  .usa-footer__primary-link {\n    padding-left: 0;\n    padding-right: 0;\n    border: none;\n  }\n}\n.usa-footer__primary-link--button {\n  width: 100%;\n  cursor: pointer;\n}\n.usa-footer__primary-link--button::before {\n  background-image: url(\"../img/usa-icons/expand_more.svg\");\n  background-repeat: no-repeat;\n  background-position: center center;\n  background-size: 1.25rem 1.25rem;\n  display: inline-block;\n  height: 1.25rem;\n  width: 1.25rem;\n  content: \"\";\n  vertical-align: middle;\n  margin-right: 0.25rem;\n}\n@supports (mask: url(\"\")) {\n  .usa-footer__primary-link--button::before {\n    background: none;\n    background-color: currentColor;\n    mask-image: url(\"../img/usa-icons/expand_more.svg\"), linear-gradient(transparent, transparent);\n    mask-position: center center;\n    mask-repeat: no-repeat;\n    mask-size: 1.25rem 1.25rem;\n  }\n}\n.usa-footer__primary-link--button:not([disabled]):focus {\n  outline: 0.25rem solid #2491ff;\n  outline-offset: -0.25rem;\n}\n.usa-footer__primary-link--button::before {\n  height: 1.25rem;\n  width: 1.25rem;\n  align-items: center;\n  background-size: contain;\n  content: \"\";\n  display: inline-flex;\n  justify-content: center;\n  margin-right: 0.25rem;\n  margin-left: -0.25rem;\n}\n@media (forced-colors: active) {\n  .usa-footer__primary-link--button::before {\n    background-color: buttonText !important;\n  }\n}\n.usa-footer__primary-link--button + .usa-list--unstyled {\n  margin-top: 0.5rem;\n  margin-bottom: 0.5rem;\n}\n.usa-footer__primary-link--button[aria-expanded=false]::before {\n  background-image: url(\"../img/usa-icons/navigate_next.svg\");\n  background-repeat: no-repeat;\n  background-position: center center;\n  background-size: 1.25rem 1.25rem;\n  display: inline-block;\n  height: 1.25rem;\n  width: 1.25rem;\n  content: \"\";\n  vertical-align: middle;\n  margin-right: 0.25rem;\n}\n@supports (mask: url(\"\")) {\n  .usa-footer__primary-link--button[aria-expanded=false]::before {\n    background: none;\n    background-color: currentColor;\n    mask-image: url(\"../img/usa-icons/navigate_next.svg\"), linear-gradient(transparent, transparent);\n    mask-position: center center;\n    mask-repeat: no-repeat;\n    mask-size: 1.25rem 1.25rem;\n  }\n}\n.usa-footer__primary-link--button[aria-expanded=false] + .usa-list--unstyled {\n  display: none;\n}\n\n.usa-footer__secondary-link {\n  line-height: 1.1;\n  margin-left: 1rem;\n  padding: 0;\n}\n.usa-footer__secondary-link a {\n  color: #005ea2;\n  text-decoration: underline;\n}\n.usa-footer__secondary-link a:visited {\n  color: #54278f;\n}\n.usa-footer__secondary-link a:hover {\n  color: #1a4480;\n}\n.usa-footer__secondary-link a:active {\n  color: #162e51;\n}\n.usa-footer__secondary-link a:focus {\n  outline: 0.25rem solid #2491ff;\n  outline-offset: 0rem;\n}\n.usa-footer__secondary-link + .usa-footer__secondary-link {\n  padding-top: 1rem;\n}\n@media all and (min-width: 30em) {\n  .usa-footer__secondary-link {\n    margin-left: 0;\n  }\n}\n\n.usa-footer__contact-info {\n  line-height: 1.1;\n}\n.usa-footer__contact-info a {\n  color: #1b1b1b;\n}\n@media all and (min-width: 30em) {\n  .usa-footer__contact-info {\n    justify-content: flex-end;\n    margin-top: 0.5rem;\n  }\n}\n\n.usa-sign-up {\n  padding-bottom: 2rem;\n  padding-top: 1.5rem;\n}\n.usa-sign-up .usa-label,\n.usa-sign-up .usa-button {\n  margin-top: 0.75rem;\n}\n\n.usa-sign-up__heading {\n  font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n  font-size: 1.34rem;\n  line-height: 1.2;\n  font-weight: 700;\n  margin: 0;\n}\n\n.usa-footer__secondary-section {\n  padding-bottom: 1.25rem;\n  padding-top: 1.25rem;\n  color: #1b1b1b;\n  background-color: #dfe1e2;\n}\n.usa-footer__secondary-section > .grid-container {\n  margin-left: auto;\n  margin-right: auto;\n  max-width: 64rem;\n  padding-left: 1rem;\n  padding-right: 1rem;\n}\n@media all and (min-width: 64em) {\n  .usa-footer__secondary-section > .grid-container {\n    padding-left: 2rem;\n    padding-right: 2rem;\n  }\n}\n.usa-footer__secondary-section > .grid-container > .grid-row {\n  justify-content: space-between;\n}\n.usa-footer__secondary-section a {\n  color: #1b1b1b;\n}\n\n.usa-footer__logo {\n  margin-bottom: 0.5rem;\n  margin-top: 0.5rem;\n}\n@media all and (min-width: 30em) {\n  .usa-footer__logo {\n    margin-bottom: 0;\n    margin-top: 0;\n    align-items: center;\n  }\n}\n\n.usa-footer__logo-img {\n  max-width: 5rem;\n}\n\n.usa-footer__logo-heading {\n  font-family: Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;\n  font-size: 1.46rem;\n  line-height: 0.9;\n  font-weight: 700;\n  margin-bottom: 0.5rem;\n  margin-top: 0.5rem;\n}\n\n.usa-footer__contact-links {\n  margin-top: 1.5rem;\n}\n@media all and (min-width: 30em) {\n  .usa-footer__contact-links {\n    margin-top: 0;\n    text-align: right;\n  }\n}\n\n.usa-footer__contact-heading {\n  font-family: Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;\n  font-size: 1.46rem;\n  line-height: 1.1;\n  font-weight: 700;\n  margin-top: 0;\n}\n@media all and (min-width: 30em) {\n  .usa-footer__contact-heading {\n    margin-bottom: 0.25rem;\n    margin-top: 0.25rem;\n  }\n}\n\n.usa-footer__social-links {\n  line-height: 0.9;\n  padding-bottom: 0.5rem;\n}\n.usa-footer__social-links a {\n  text-decoration: none;\n}\n@media all and (min-width: 30em) {\n  .usa-footer__social-links {\n    justify-content: flex-end;\n  }\n}\n\n.usa-social-link {\n  height: 3rem;\n  width: 3rem;\n  background-color: rgba(0, 0, 0, 0.1);\n  display: inline-block;\n  padding: 0.25rem;\n}\n.usa-social-link:hover {\n  background-color: white;\n}\n@media (forced-colors: active) {\n  .usa-social-link {\n    background-color: lightgrey;\n    forced-color-adjust: none;\n  }\n}\n\n.usa-social-link__icon {\n  display: block;\n  height: auto;\n  width: 100%;\n}\n\n@media all and (min-width: 30em) {\n  .usa-footer__address {\n    justify-content: flex-end;\n  }\n}\n\n@media all and (min-width: 64em) {\n  .usa-footer--slim .usa-footer__nav {\n    padding-left: 0;\n    padding-right: 0;\n  }\n}\n.usa-footer--slim .usa-footer__address {\n  padding-left: 1rem;\n  padding-right: 1rem;\n  padding-bottom: 1rem;\n  padding-top: 1rem;\n}\n@media all and (min-width: 30em) {\n  .usa-footer--slim .usa-footer__address {\n    padding: 0;\n  }\n}\n.usa-footer--slim .usa-footer__logo {\n  align-items: center;\n}\n.usa-footer--slim .usa-footer__logo-img {\n  max-width: 3rem;\n}\n.usa-footer--slim .usa-footer__contact-info {\n  display: inline-block;\n}\n@media all and (min-width: 30em) {\n  .usa-footer--slim .usa-footer__contact-info {\n    padding-bottom: 1rem;\n    padding-top: 1rem;\n    margin-top: 0;\n  }\n}\n\n.usa-footer--big .usa-footer__nav {\n  margin-left: -1rem;\n  margin-right: -1rem;\n}\n@media all and (min-width: 30em) {\n  .usa-footer--big .usa-footer__nav {\n    border-bottom: 1px solid #a9aeb1;\n    padding-top: 2rem;\n  }\n}\n@media all and (min-width: 40em) {\n  .usa-footer--big .usa-footer__nav {\n    margin-left: 0;\n    margin-right: 0;\n    padding-left: 0;\n    padding-right: 0;\n    border-bottom: none;\n  }\n}\n.usa-footer--big .usa-footer__primary-link {\n  font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n  font-size: 0.98rem;\n  line-height: 1.2;\n  font-weight: 700;\n  line-height: 1.2;\n  margin: 0;\n}\n@media all and (min-width: 30em) {\n  .usa-footer--big .usa-footer__primary-link {\n    padding-bottom: 0;\n    padding-top: 0;\n    margin-bottom: 0.5rem;\n  }\n  .usa-footer--big .usa-footer__primary-link:hover {\n    cursor: auto;\n    text-decoration: none;\n  }\n}\n.usa-footer--big .usa-footer__primary-content--collapsible .usa-footer__primary-link {\n  align-items: center;\n  display: flex;\n  justify-content: flex-start;\n}\n.usa-footer--big .usa-footer__primary-content--collapsible .usa-list--unstyled {\n  padding-left: 1rem;\n  padding-right: 1rem;\n  padding-bottom: 1.25rem;\n}\n@media all and (min-width: 30em) {\n  .usa-footer--big .usa-footer__primary-content--collapsible .usa-list--unstyled {\n    padding-left: 0;\n    padding-right: 0;\n    padding-bottom: 2rem;\n    padding-top: 0.75rem;\n  }\n}\n\n.usa-form {\n  font-family: Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;\n  font-size: 1.06rem;\n  line-height: 1.3;\n}\n@media all and (min-width: 30em) {\n  .usa-form {\n    max-width: 20rem;\n  }\n}\n.usa-form abbr[title=required] {\n  text-decoration: none;\n}\n.usa-form :where(.usa-input, .usa-textarea, .usa-select, .usa-range) {\n  max-width: none;\n}\n.usa-form .usa-button {\n  margin-top: 0.5rem;\n}\n@media all and (min-width: 30em) {\n  .usa-form .usa-button {\n    margin-top: 1.5rem;\n  }\n}\n.usa-form a:where(:not(.usa-button)) {\n  color: #005ea2;\n  text-decoration: underline;\n}\n.usa-form a:where(:not(.usa-button)):visited {\n  color: #54278f;\n}\n.usa-form a:where(:not(.usa-button)):hover {\n  color: #1a4480;\n}\n.usa-form a:where(:not(.usa-button)):active {\n  color: #162e51;\n}\n.usa-form a:where(:not(.usa-button)):focus {\n  outline: 0.25rem solid #2491ff;\n  outline-offset: 0rem;\n}\n\n@media all and (min-width: 30em) {\n  .usa-form--large {\n    max-width: 30rem;\n  }\n}\n\n.usa-show-password {\n  color: #005ea2;\n  text-decoration: underline;\n  background-color: transparent;\n  border: 0;\n  border-radius: 0;\n  box-shadow: none;\n  font-weight: normal;\n  justify-content: normal;\n  text-align: left;\n  margin: 0;\n  padding: 0;\n  width: auto;\n  cursor: pointer;\n}\n.usa-show-password:visited {\n  color: #54278f;\n}\n.usa-show-password:hover {\n  color: #1a4480;\n}\n.usa-show-password:active {\n  color: #162e51;\n}\n.usa-show-password:focus {\n  outline: 0.25rem solid #2491ff;\n  outline-offset: 0rem;\n}\n.usa-show-password:hover, .usa-show-password.usa-button--hover, .usa-show-password:disabled:hover, .usa-show-password[aria-disabled=true]:hover, .usa-show-password:disabled.usa-button--hover, .usa-show-password[aria-disabled=true].usa-button--hover, .usa-show-password:active, .usa-show-password.usa-button--active, .usa-show-password:disabled:active, .usa-show-password[aria-disabled=true]:active, .usa-show-password:disabled.usa-button--active, .usa-show-password[aria-disabled=true].usa-button--active, .usa-show-password:disabled:focus, .usa-show-password[aria-disabled=true]:focus, .usa-show-password:disabled.usa-focus, .usa-show-password[aria-disabled=true].usa-focus, .usa-show-password:disabled, .usa-show-password[aria-disabled=true], .usa-show-password.usa-button--disabled {\n  background-color: transparent;\n  box-shadow: none;\n  text-decoration: underline;\n}\n.usa-show-password.usa-button--hover {\n  color: #1a4480;\n}\n.usa-show-password.usa-button--active {\n  color: #162e51;\n}\n.usa-show-password:disabled, .usa-show-password[aria-disabled=true], .usa-show-password:disabled:hover, .usa-show-password[aria-disabled=true]:hover, .usa-show-password[aria-disabled=true]:focus {\n  color: #757575;\n}\n@media (forced-colors: active) {\n  .usa-show-password:disabled, .usa-show-password[aria-disabled=true], .usa-show-password:disabled:hover, .usa-show-password[aria-disabled=true]:hover, .usa-show-password[aria-disabled=true]:focus {\n    color: GrayText;\n  }\n}\n\n.usa-form__note,\n.usa-show-password {\n  font-family: Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;\n  font-size: 0.93rem;\n  line-height: 1.3;\n  float: right;\n  margin: 0.25rem 0 1rem;\n}\n\n.usa-graphic-list {\n  font-family: Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;\n  font-size: 1.06rem;\n  line-height: 1.5;\n}\n.usa-graphic-list .usa-graphic-list__row .usa-media-block {\n  margin-bottom: 2rem;\n}\n@media all and (min-width: 40em) {\n  .usa-graphic-list .usa-graphic-list__row .usa-media-block {\n    margin-bottom: 4rem;\n  }\n}\n@media all and (min-width: 40em) {\n  .usa-graphic-list .usa-graphic-list__row:last-child .usa-media-block {\n    margin-bottom: 0;\n  }\n}\n.usa-graphic-list .usa-graphic-list__row:last-child .usa-media-block:last-child {\n  margin-bottom: 0;\n}\n.usa-graphic-list .usa-media-block__img {\n  margin-right: 1.5rem;\n}\n.usa-graphic-list .usa-media-block__body > :first-child {\n  margin-top: 0;\n}\n\n.usa-graphic-list__heading {\n  margin-bottom: 0;\n  margin-top: 0;\n  clear: both;\n  font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n  font-size: 1.34rem;\n  line-height: 1.2;\n  font-weight: 700;\n}\n* + .usa-graphic-list__heading {\n  margin-top: 1.5em;\n}\n.usa-graphic-list__heading + * {\n  margin-top: 1em;\n}\n\n.usa-header {\n  font-family: Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;\n  font-size: 1.06rem;\n  line-height: 1.5;\n}\n.usa-header::after {\n  clear: both;\n  content: \"\";\n  display: block;\n}\n.usa-header a {\n  border-bottom: none;\n}\n.usa-header .usa-search {\n  margin-top: 0.5rem;\n}\n@media all and (min-width: 64em) {\n  .usa-header .usa-search {\n    float: right;\n  }\n}\n@media all and (min-width: 64em) {\n  .usa-header [role=search] {\n    float: right;\n    max-width: calc(27ch + 3rem);\n    width: 100%;\n  }\n}\n.usa-header [type=search] {\n  min-width: 0;\n}\n@media all and (min-width: 64em) {\n  .usa-header + .usa-hero {\n    border-top: 1px solid white;\n  }\n}\n@media all and (min-width: 64em) {\n  .usa-header + .usa-section,\n  .usa-header + main {\n    border-top: 1px solid #dfe1e2;\n  }\n}\n\n@media all and (max-width: 63.99em) {\n  .usa-logo {\n    flex: 1 1 0%;\n    font-size: 0.93rem;\n    line-height: 0.9;\n    margin-left: 1rem;\n  }\n}\n@media all and (min-width: 64em) {\n  .usa-logo {\n    margin-top: 2rem;\n    margin-bottom: 1rem;\n    font-size: 1.46rem;\n    line-height: 1.1;\n  }\n}\n.usa-logo a {\n  color: #1b1b1b;\n  text-decoration: none;\n}\n\n.usa-logo__text {\n  display: block;\n  font-style: normal;\n  font-weight: 700;\n  margin: 0;\n}\n\n.usa-menu-btn {\n  color: #005ea2;\n  text-decoration: underline;\n  background-color: transparent;\n  border: 0;\n  border-radius: 0;\n  box-shadow: none;\n  font-weight: normal;\n  justify-content: normal;\n  text-align: left;\n  margin: 0;\n  padding: 0;\n  width: auto;\n  flex: 0 1 auto;\n  padding-left: 0.75rem;\n  padding-right: 0.75rem;\n  background-color: #005ea2;\n  color: white;\n  font-size: 0.87rem;\n  height: 3rem;\n  text-align: center;\n  text-decoration: none;\n  text-transform: uppercase;\n}\n.usa-menu-btn:visited {\n  color: #54278f;\n}\n.usa-menu-btn:hover {\n  color: #1a4480;\n}\n.usa-menu-btn:active {\n  color: #162e51;\n}\n.usa-menu-btn:focus {\n  outline: 0.25rem solid #2491ff;\n  outline-offset: 0rem;\n}\n.usa-menu-btn:hover, .usa-menu-btn.usa-button--hover, .usa-menu-btn:disabled:hover, .usa-menu-btn[aria-disabled=true]:hover, .usa-menu-btn:disabled.usa-button--hover, .usa-menu-btn[aria-disabled=true].usa-button--hover, .usa-menu-btn:active, .usa-menu-btn.usa-button--active, .usa-menu-btn:disabled:active, .usa-menu-btn[aria-disabled=true]:active, .usa-menu-btn:disabled.usa-button--active, .usa-menu-btn[aria-disabled=true].usa-button--active, .usa-menu-btn:disabled:focus, .usa-menu-btn[aria-disabled=true]:focus, .usa-menu-btn:disabled.usa-focus, .usa-menu-btn[aria-disabled=true].usa-focus, .usa-menu-btn:disabled, .usa-menu-btn[aria-disabled=true], .usa-menu-btn.usa-button--disabled {\n  background-color: transparent;\n  box-shadow: none;\n  text-decoration: underline;\n}\n.usa-menu-btn.usa-button--hover {\n  color: #1a4480;\n}\n.usa-menu-btn.usa-button--active {\n  color: #162e51;\n}\n.usa-menu-btn:disabled, .usa-menu-btn[aria-disabled=true], .usa-menu-btn:disabled:hover, .usa-menu-btn[aria-disabled=true]:hover, .usa-menu-btn[aria-disabled=true]:focus {\n  color: #757575;\n}\n@media (forced-colors: active) {\n  .usa-menu-btn:disabled, .usa-menu-btn[aria-disabled=true], .usa-menu-btn:disabled:hover, .usa-menu-btn[aria-disabled=true]:hover, .usa-menu-btn[aria-disabled=true]:focus {\n    color: GrayText;\n  }\n}\n@media all and (min-width: 64em) {\n  .usa-menu-btn {\n    display: none;\n  }\n}\n.usa-menu-btn:hover {\n  background-color: #1a4480;\n  color: white;\n  text-decoration: none;\n}\n.usa-menu-btn:active {\n  color: white;\n}\n.usa-menu-btn:visited {\n  color: white;\n}\n\n.usa-overlay {\n  position: absolute;\n  bottom: 0;\n  left: 0;\n  right: 0;\n  top: 0;\n  position: fixed;\n  background: rgba(0, 0, 0, 0.7);\n  opacity: 0;\n  transition: opacity 0.15s ease-in-out;\n  visibility: hidden;\n  z-index: 400;\n}\n.usa-overlay.is-visible {\n  opacity: 1;\n  visibility: visible;\n}\n\n@media all and (min-width: 64em) {\n  .usa-header--basic .usa-navbar {\n    position: relative;\n    width: 33%;\n  }\n  .usa-header--basic .usa-nav {\n    flex-direction: row;\n    align-items: center;\n    justify-content: flex-end;\n    display: flex;\n    padding: 0 0 0.5rem 0.5rem;\n    width: 100%;\n  }\n  .usa-header--basic .usa-nav-container {\n    align-items: flex-end;\n    justify-content: space-between;\n    display: flex;\n  }\n  .usa-header--basic .usa-nav__primary-item > .usa-current,\n  .usa-header--basic .usa-nav__link:hover {\n    position: relative;\n  }\n  .usa-header--basic .usa-nav__primary-item > .usa-current::after,\n  .usa-header--basic .usa-nav__link:hover::after {\n    background-color: #005ea2;\n    border-radius: 0;\n    content: \"\";\n    display: block;\n    position: absolute;\n    height: 0.25rem;\n    left: 1rem;\n    right: 1rem;\n    bottom: -0.25rem;\n  }\n}\n@media (min-width: 64em) and (forced-colors: active) {\n  .usa-header--basic .usa-nav__primary-item > .usa-current::after,\n  .usa-header--basic .usa-nav__link:hover::after {\n    background-color: ButtonText;\n  }\n}\n@media all and (min-width: 64em) {\n  .usa-header--basic .usa-nav__link[aria-expanded=true]::after,\n  .usa-header--basic .usa-nav__link[aria-expanded=true]:hover::after {\n    display: none;\n  }\n  .usa-header--basic .usa-nav__primary {\n    width: auto;\n  }\n  .usa-header--basic .usa-nav__primary-item:last-of-type {\n    position: relative;\n  }\n  .usa-header--basic .usa-nav__primary-item:last-of-type .usa-nav__submenu {\n    position: absolute;\n    right: 0;\n  }\n  .usa-header--basic .usa-search {\n    top: 0;\n  }\n}\n.usa-header--basic.usa-header--megamenu .usa-nav__inner {\n  display: flex;\n  flex-direction: column;\n}\n@media all and (min-width: 64em) {\n  .usa-header--basic.usa-header--megamenu .usa-nav__inner {\n    display: block;\n    float: right;\n    margin-top: -2.5rem;\n  }\n}\n@media all and (min-width: 64em) {\n  .usa-header--basic.usa-header--megamenu .usa-nav__primary-item:last-of-type {\n    position: static;\n  }\n}\n\n@media all and (min-width: 64em) {\n  .usa-header--extended {\n    padding-top: 0;\n  }\n  .usa-header--extended .usa-nav__primary-item > .usa-current,\n  .usa-header--extended .usa-nav__primary-item > .usa-nav__link:hover {\n    position: relative;\n  }\n  .usa-header--extended .usa-nav__primary-item > .usa-current::after,\n  .usa-header--extended .usa-nav__primary-item > .usa-nav__link:hover::after {\n    background-color: #005ea2;\n    border-radius: 0;\n    content: \"\";\n    display: block;\n    position: absolute;\n    height: 0.25rem;\n    left: 1rem;\n    right: 1rem;\n    bottom: 0rem;\n  }\n}\n@media (min-width: 64em) and (forced-colors: active) {\n  .usa-header--extended .usa-nav__primary-item > .usa-current::after,\n  .usa-header--extended .usa-nav__primary-item > .usa-nav__link:hover::after {\n    background-color: ButtonText;\n  }\n}\n@media all and (min-width: 64em) {\n  .usa-header--extended .usa-nav__link[aria-expanded=true]::after,\n  .usa-header--extended .usa-nav__link[aria-expanded=true]:hover::after {\n    display: none;\n  }\n}\n@media all and (min-width: 64em) {\n  .usa-header--extended .usa-logo {\n    font-size: 2.13rem;\n    margin: 2rem 0 1.5rem;\n    max-width: 33%;\n  }\n}\n@media all and (min-width: 64em) {\n  .usa-header--extended .usa-navbar {\n    margin-left: auto;\n    margin-right: auto;\n    max-width: 64rem;\n    padding-left: 1rem;\n    padding-right: 1rem;\n    display: block;\n    height: auto;\n    overflow: auto;\n  }\n}\n@media all and (min-width: 64em) and (min-width: 64em) {\n  .usa-header--extended .usa-navbar {\n    padding-left: 2rem;\n    padding-right: 2rem;\n  }\n}\n@media all and (min-width: 64em) {\n  .usa-header--extended .usa-nav {\n    border-top: 1px solid #dfe1e2;\n    padding: 0;\n    width: 100%;\n  }\n}\n@media all and (min-width: 64em) {\n  .usa-header--extended .usa-nav__inner {\n    margin-left: auto;\n    margin-right: auto;\n    max-width: 64rem;\n    padding-left: 1rem;\n    padding-right: 1rem;\n    position: relative;\n  }\n}\n@media all and (min-width: 64em) and (min-width: 64em) {\n  .usa-header--extended .usa-nav__inner {\n    padding-left: 2rem;\n    padding-right: 2rem;\n  }\n}\n@media all and (min-width: 64em) {\n  .usa-header--extended .usa-nav__primary {\n    margin-left: -1rem;\n  }\n  .usa-header--extended .usa-nav__primary::after {\n    clear: both;\n    content: \"\";\n    display: block;\n  }\n}\n@media all and (min-width: 64em) {\n  .usa-header--extended .usa-nav__link {\n    padding-bottom: 1rem;\n    padding-top: 1rem;\n  }\n}\n@media all and (min-width: 64em) {\n  .usa-header--extended .usa-nav__submenu .usa-grid-full {\n    padding-left: 0.75rem;\n  }\n}\n@media all and (min-width: 64em) {\n  .usa-header--extended .usa-nav__submenu.usa-megamenu {\n    left: 0;\n    padding-left: 2rem;\n    padding-right: 2rem;\n  }\n}\n\nhtml.usa-js-loading .usa-nav__submenu,\nhtml.usa-js-loading .usa-nav__submenu.usa-megamenu {\n  position: absolute;\n  left: -999em;\n  right: auto;\n}\n\n.usa-megamenu .usa-col {\n  flex: 1 1 auto;\n}\n@media all and (min-width: 64em) {\n  .usa-megamenu .usa-col {\n    flex: 4 1 0%;\n  }\n  .usa-megamenu .usa-col .usa-nav__submenu-item a {\n    padding-left: 0.5rem;\n    padding-right: 0.5rem;\n  }\n  .usa-megamenu .usa-col:first-child .usa-nav__submenu-item a {\n    padding-left: 0;\n  }\n  .usa-megamenu .usa-col:last-child .usa-nav__submenu-item a {\n    padding-right: 0;\n  }\n}\n\n@media all and (min-width: 64em) {\n  .usa-megamenu.usa-nav__submenu {\n    padding-left: 0;\n    padding-right: 0;\n    padding-bottom: 2rem;\n    padding-top: 2rem;\n    left: -33%;\n    right: 0;\n    width: auto;\n  }\n}\n@media all and (min-width: 64em) {\n  .usa-megamenu.usa-nav__submenu::before {\n    position: absolute;\n    bottom: 0;\n    top: 0;\n    background-color: #162e51;\n    content: \"\";\n    display: block;\n    position: absolute;\n    width: calc(50vw - 32rem + 2rem);\n    right: 100%;\n  }\n}\n@media all and (min-width: 64em) {\n  .usa-megamenu.usa-nav__submenu::after {\n    position: absolute;\n    bottom: 0;\n    top: 0;\n    background-color: #162e51;\n    content: \"\";\n    display: block;\n    position: absolute;\n    width: calc(50vw - 32rem + 2rem);\n    left: 100%;\n  }\n}\n\n@media all and (min-width: 64em) {\n  .usa-header--extended .usa-megamenu.usa-nav__submenu::before {\n    position: absolute;\n    bottom: 0;\n    top: 0;\n    background-color: #162e51;\n    content: \"\";\n    display: block;\n    position: absolute;\n    width: calc(50vw - 32rem);\n  }\n}\n@media all and (min-width: 64em) {\n  .usa-header--extended .usa-megamenu.usa-nav__submenu::after {\n    position: absolute;\n    bottom: 0;\n    top: 0;\n    background-color: #162e51;\n    content: \"\";\n    display: block;\n    position: absolute;\n    width: calc(50vw - 32rem);\n  }\n}\n\n@media all and (min-width: 64em) {\n  .usa-nav-container {\n    margin-left: auto;\n    margin-right: auto;\n    max-width: 64rem;\n    padding-left: 1rem;\n    padding-right: 1rem;\n    padding-left: 2rem;\n    padding-right: 2rem;\n  }\n  .usa-nav-container::after {\n    clear: both;\n    content: \"\";\n    display: block;\n  }\n}\n@media all and (min-width: 64em) and (min-width: 64em) {\n  .usa-nav-container {\n    padding-left: 2rem;\n    padding-right: 2rem;\n  }\n}\n\n.usa-navbar {\n  height: 3rem;\n}\n@media all and (max-width: 63.99em) {\n  .usa-navbar {\n    align-items: center;\n    border-bottom: 1px solid #dfe1e2;\n    display: flex;\n  }\n}\n@media all and (min-width: 64em) {\n  .usa-navbar {\n    border-bottom: none;\n    display: inline-block;\n    height: auto;\n  }\n}\n\n.usa-hero {\n  font-family: Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;\n  font-size: 1.06rem;\n  line-height: 1.5;\n  background-image: url(\"../img/hero.jpg\");\n  background-position: center;\n  background-size: cover;\n  color: white;\n}\n.usa-hero > .grid-container {\n  position: relative;\n  padding-bottom: 2rem;\n  padding-top: 2rem;\n}\n\n.usa-hero__callout {\n  background-color: #162e51;\n  padding: 2rem;\n}\n@media all and (min-width: 40em) {\n  .usa-hero__callout {\n    max-width: 20rem;\n  }\n}\n\n.usa-hero__heading {\n  margin-bottom: 0;\n  margin-top: 0;\n  clear: both;\n  font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n  font-size: 1.95rem;\n  line-height: 1.2;\n  font-weight: 700;\n  color: #00bde3;\n  line-height: 1.2;\n}\n* + .usa-hero__heading {\n  margin-top: 1.5em;\n}\n.usa-hero__heading + * {\n  margin-top: 1em;\n}\n\n.usa-hero__heading--alt {\n  color: white;\n  display: block;\n}\n\n.usa-icon-list {\n  font-family: Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;\n  font-size: 1.06rem;\n  line-height: 1.5;\n  margin-bottom: 0;\n  margin-top: 0;\n  list-style-type: none;\n  padding-left: 0;\n  max-width: 72ex;\n}\n.usa-icon-list > li {\n  margin-bottom: 0;\n  max-width: unset;\n}\n\n.usa-icon-list__item {\n  display: flex;\n  position: relative;\n}\n.usa-icon-list__item + .usa-icon-list__item {\n  padding-top: 0.75rem;\n}\n\n.usa-prose .usa-icon-list {\n  font-family: Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;\n  font-size: 1.06rem;\n  line-height: 1.5;\n  margin-bottom: 0;\n  margin-top: 0;\n  list-style-type: none;\n  padding-left: 0;\n  max-width: 72ex;\n}\n.usa-prose .usa-icon-list > li {\n  margin-bottom: 0;\n  max-width: unset;\n}\n.usa-prose .usa-icon-list__item {\n  display: flex;\n  position: relative;\n}\n.usa-prose .usa-icon-list__item + .usa-icon-list__item {\n  padding-top: 0.75rem;\n}\n\n.usa-icon-list--base-lightest .usa-icon-list__icon {\n  color: #f0f0f0;\n}\n.usa-icon-list--base-lighter .usa-icon-list__icon {\n  color: #dfe1e2;\n}\n.usa-icon-list--base-light .usa-icon-list__icon {\n  color: #a9aeb1;\n}\n.usa-icon-list--base .usa-icon-list__icon {\n  color: #71767a;\n}\n.usa-icon-list--base-dark .usa-icon-list__icon {\n  color: #565c65;\n}\n.usa-icon-list--base-darker .usa-icon-list__icon {\n  color: #3d4551;\n}\n.usa-icon-list--base-darkest .usa-icon-list__icon {\n  color: #1b1b1b;\n}\n.usa-icon-list--primary-lighter .usa-icon-list__icon {\n  color: #d9e8f6;\n}\n.usa-icon-list--primary-light .usa-icon-list__icon {\n  color: #73b3e7;\n}\n.usa-icon-list--primary .usa-icon-list__icon {\n  color: #005ea2;\n}\n.usa-icon-list--primary-vivid .usa-icon-list__icon {\n  color: #0050d8;\n}\n.usa-icon-list--primary-dark .usa-icon-list__icon {\n  color: #1a4480;\n}\n.usa-icon-list--primary-darker .usa-icon-list__icon {\n  color: #162e51;\n}\n.usa-icon-list--secondary-lighter .usa-icon-list__icon {\n  color: #f3e1e4;\n}\n.usa-icon-list--secondary-light .usa-icon-list__icon {\n  color: #f2938c;\n}\n.usa-icon-list--secondary .usa-icon-list__icon {\n  color: #d83933;\n}\n.usa-icon-list--secondary-vivid .usa-icon-list__icon {\n  color: #e41d3d;\n}\n.usa-icon-list--secondary-dark .usa-icon-list__icon {\n  color: #b50909;\n}\n.usa-icon-list--secondary-darker .usa-icon-list__icon {\n  color: #8b0a03;\n}\n.usa-icon-list--accent-warm-lighter .usa-icon-list__icon {\n  color: #f2e4d4;\n}\n.usa-icon-list--accent-warm-light .usa-icon-list__icon {\n  color: #ffbc78;\n}\n.usa-icon-list--accent-warm .usa-icon-list__icon {\n  color: #fa9441;\n}\n.usa-icon-list--accent-warm-dark .usa-icon-list__icon {\n  color: #c05600;\n}\n.usa-icon-list--accent-warm-darker .usa-icon-list__icon {\n  color: #775540;\n}\n.usa-icon-list--accent-cool-lighter .usa-icon-list__icon {\n  color: #e1f3f8;\n}\n.usa-icon-list--accent-cool-light .usa-icon-list__icon {\n  color: #97d4ea;\n}\n.usa-icon-list--accent-cool .usa-icon-list__icon {\n  color: #00bde3;\n}\n.usa-icon-list--accent-cool-dark .usa-icon-list__icon {\n  color: #28a0cb;\n}\n.usa-icon-list--accent-cool-darker .usa-icon-list__icon {\n  color: #07648d;\n}\n.usa-icon-list--error-lighter .usa-icon-list__icon {\n  color: #f4e3db;\n}\n.usa-icon-list--error-light .usa-icon-list__icon {\n  color: #f39268;\n}\n.usa-icon-list--error .usa-icon-list__icon {\n  color: #d54309;\n}\n.usa-icon-list--error-dark .usa-icon-list__icon {\n  color: #b50909;\n}\n.usa-icon-list--error-darker .usa-icon-list__icon {\n  color: #6f3331;\n}\n.usa-icon-list--warning-lighter .usa-icon-list__icon {\n  color: #faf3d1;\n}\n.usa-icon-list--warning-light .usa-icon-list__icon {\n  color: #fee685;\n}\n.usa-icon-list--warning .usa-icon-list__icon {\n  color: #ffbe2e;\n}\n.usa-icon-list--warning-dark .usa-icon-list__icon {\n  color: #e5a000;\n}\n.usa-icon-list--warning-darker .usa-icon-list__icon {\n  color: #936f38;\n}\n.usa-icon-list--success-lighter .usa-icon-list__icon {\n  color: #ecf3ec;\n}\n.usa-icon-list--success-light .usa-icon-list__icon {\n  color: #70e17b;\n}\n.usa-icon-list--success .usa-icon-list__icon {\n  color: #00a91c;\n}\n.usa-icon-list--success-dark .usa-icon-list__icon {\n  color: #008817;\n}\n.usa-icon-list--success-darker .usa-icon-list__icon {\n  color: #216e1f;\n}\n.usa-icon-list--info-lighter .usa-icon-list__icon {\n  color: #e7f6f8;\n}\n.usa-icon-list--info-light .usa-icon-list__icon {\n  color: #99deea;\n}\n.usa-icon-list--info .usa-icon-list__icon {\n  color: #00bde3;\n}\n.usa-icon-list--info-dark .usa-icon-list__icon {\n  color: #009ec1;\n}\n.usa-icon-list--info-darker .usa-icon-list__icon {\n  color: #2e6276;\n}\n.usa-icon-list--disabled-lighter .usa-icon-list__icon {\n  color: #c9c9c9;\n}\n.usa-icon-list--disabled-light .usa-icon-list__icon {\n  color: #919191;\n}\n.usa-icon-list--disabled .usa-icon-list__icon {\n  color: #757575;\n}\n.usa-icon-list--disabled-dark .usa-icon-list__icon {\n  color: #454545;\n}\n.usa-icon-list--disabled-darker .usa-icon-list__icon {\n  color: #1b1b1b;\n}\n.usa-icon-list--emergency .usa-icon-list__icon {\n  color: #9c3d10;\n}\n.usa-icon-list--emergency-dark .usa-icon-list__icon {\n  color: #332d29;\n}\n\n.usa-icon-list__icon .usa-icon {\n  display: block;\n  height: 1.5rem;\n  position: relative;\n  width: 1.5rem;\n}\n\n.usa-icon-list__content > p,\n.usa-icon-list__content > ul,\n.usa-icon-list__content > ol {\n  font-family: Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;\n  font-size: 1.06rem;\n  max-width: 72ex;\n}\n\n.usa-icon-list[class*=usa-icon-list--size-] {\n  max-width: none;\n}\n\n.usa-icon-list--size-micro .usa-icon-list__icon .usa-icon {\n  height: 1.005rem;\n  width: 1.005rem;\n}\n.usa-icon-list--size-micro .usa-icon-list__content {\n  max-width: 72ex;\n  font-size: 0.67rem;\n  padding-left: 0.268rem;\n}\n.usa-icon-list--size-micro .usa-icon-list__content .usa-icon-list__title {\n  font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n  font-size: 0.61rem;\n}\n\n.usa-icon-list--size-1 .usa-icon-list__icon .usa-icon {\n  height: 1.2rem;\n  width: 1.2rem;\n}\n.usa-icon-list--size-1 .usa-icon-list__content {\n  max-width: 72ex;\n  font-size: 0.8rem;\n  padding-left: 0.32rem;\n}\n.usa-icon-list--size-1 .usa-icon-list__content .usa-icon-list__title {\n  font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n  font-size: 0.73rem;\n}\n\n.usa-icon-list--size-2 .usa-icon-list__icon .usa-icon {\n  height: 1.305rem;\n  width: 1.305rem;\n}\n.usa-icon-list--size-2 .usa-icon-list__content {\n  max-width: 72ex;\n  font-size: 0.87rem;\n  padding-left: 0.348rem;\n}\n.usa-icon-list--size-2 .usa-icon-list__content .usa-icon-list__title {\n  font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n  font-size: 0.79rem;\n}\n\n.usa-icon-list--size-3 .usa-icon-list__icon .usa-icon {\n  height: 1.395rem;\n  width: 1.395rem;\n}\n.usa-icon-list--size-3 .usa-icon-list__content {\n  max-width: 72ex;\n  font-size: 0.93rem;\n  padding-left: 0.372rem;\n}\n.usa-icon-list--size-3 .usa-icon-list__content .usa-icon-list__title {\n  font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n  font-size: 0.85rem;\n}\n\n.usa-icon-list--size-4 .usa-icon-list__icon .usa-icon {\n  height: 1.5rem;\n  width: 1.5rem;\n}\n.usa-icon-list--size-4 .usa-icon-list__content {\n  max-width: 72ex;\n  font-size: 1rem;\n  padding-left: 0.4rem;\n}\n.usa-icon-list--size-4 .usa-icon-list__content .usa-icon-list__title {\n  font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n  font-size: 0.91rem;\n}\n\n.usa-icon-list--size-5 .usa-icon-list__icon .usa-icon {\n  height: 1.59rem;\n  width: 1.59rem;\n}\n.usa-icon-list--size-5 .usa-icon-list__content {\n  max-width: 72ex;\n  font-size: 1.06rem;\n  padding-left: 0.424rem;\n}\n.usa-icon-list--size-5 .usa-icon-list__content .usa-icon-list__title {\n  font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n  font-size: 0.98rem;\n}\n\n.usa-icon-list--size-6 .usa-icon-list__icon .usa-icon {\n  height: 1.695rem;\n  width: 1.695rem;\n}\n.usa-icon-list--size-6 .usa-icon-list__content {\n  max-width: 72ex;\n  font-size: 1.13rem;\n  padding-left: 0.452rem;\n}\n.usa-icon-list--size-6 .usa-icon-list__content .usa-icon-list__title {\n  font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n  font-size: 1.04rem;\n}\n\n.usa-icon-list--size-7 .usa-icon-list__icon .usa-icon {\n  height: 1.8rem;\n  width: 1.8rem;\n}\n.usa-icon-list--size-7 .usa-icon-list__content {\n  max-width: 72ex;\n  font-size: 1.2rem;\n  padding-left: 0.48rem;\n}\n.usa-icon-list--size-7 .usa-icon-list__content .usa-icon-list__title {\n  font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n  font-size: 1.1rem;\n}\n\n.usa-icon-list--size-8 .usa-icon-list__icon .usa-icon {\n  height: 1.995rem;\n  width: 1.995rem;\n}\n.usa-icon-list--size-8 .usa-icon-list__content {\n  max-width: 72ex;\n  font-size: 1.33rem;\n  padding-left: 0.532rem;\n}\n.usa-icon-list--size-8 .usa-icon-list__content .usa-icon-list__title {\n  font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n  font-size: 1.22rem;\n}\n\n.usa-icon-list--size-9 .usa-icon-list__icon .usa-icon {\n  height: 2.19rem;\n  width: 2.19rem;\n}\n.usa-icon-list--size-9 .usa-icon-list__content {\n  max-width: 72ex;\n  font-size: 1.46rem;\n  padding-left: 0.584rem;\n}\n.usa-icon-list--size-9 .usa-icon-list__content .usa-icon-list__title {\n  font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n  font-size: 1.34rem;\n}\n\n.usa-icon-list--size-10 .usa-icon-list__icon .usa-icon {\n  height: 2.4rem;\n  width: 2.4rem;\n}\n.usa-icon-list--size-10 .usa-icon-list__content {\n  max-width: 72ex;\n  font-size: 1.6rem;\n  padding-left: 0.64rem;\n}\n.usa-icon-list--size-10 .usa-icon-list__content .usa-icon-list__title {\n  font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n  font-size: 1.46rem;\n}\n\n.usa-icon-list--size-11 .usa-icon-list__icon .usa-icon {\n  height: 2.79rem;\n  width: 2.79rem;\n}\n.usa-icon-list--size-11 .usa-icon-list__content {\n  max-width: 72ex;\n  font-size: 1.86rem;\n  padding-left: 0.744rem;\n}\n.usa-icon-list--size-11 .usa-icon-list__content .usa-icon-list__title {\n  font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n  font-size: 1.71rem;\n}\n\n.usa-icon-list--size-12 .usa-icon-list__icon .usa-icon {\n  height: 3.195rem;\n  width: 3.195rem;\n}\n.usa-icon-list--size-12 .usa-icon-list__content {\n  max-width: 72ex;\n  font-size: 2.13rem;\n  padding-left: 0.852rem;\n}\n.usa-icon-list--size-12 .usa-icon-list__content .usa-icon-list__title {\n  font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n  font-size: 1.95rem;\n}\n\n.usa-icon-list--size-13 .usa-icon-list__icon .usa-icon {\n  height: 3.6rem;\n  width: 3.6rem;\n}\n.usa-icon-list--size-13 .usa-icon-list__content {\n  max-width: 72ex;\n  font-size: 2.4rem;\n  padding-left: 0.96rem;\n}\n.usa-icon-list--size-13 .usa-icon-list__content .usa-icon-list__title {\n  font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n  font-size: 2.2rem;\n}\n\n.usa-icon-list--size-14 .usa-icon-list__icon .usa-icon {\n  height: 3.99rem;\n  width: 3.99rem;\n}\n.usa-icon-list--size-14 .usa-icon-list__content {\n  max-width: 72ex;\n  font-size: 2.66rem;\n  padding-left: 1.064rem;\n}\n.usa-icon-list--size-14 .usa-icon-list__content .usa-icon-list__title {\n  font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n  font-size: 2.44rem;\n}\n\n.usa-icon-list--size-15 .usa-icon-list__icon .usa-icon {\n  height: 4.785rem;\n  width: 4.785rem;\n}\n.usa-icon-list--size-15 .usa-icon-list__content {\n  max-width: 72ex;\n  font-size: 3.19rem;\n  padding-left: 1.276rem;\n}\n.usa-icon-list--size-15 .usa-icon-list__content .usa-icon-list__title {\n  font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n  font-size: 2.93rem;\n}\n\n.usa-icon-list--size-16 .usa-icon-list__icon .usa-icon {\n  height: 5.595rem;\n  width: 5.595rem;\n}\n.usa-icon-list--size-16 .usa-icon-list__content {\n  max-width: 72ex;\n  font-size: 3.73rem;\n  padding-left: 1.492rem;\n}\n.usa-icon-list--size-16 .usa-icon-list__content .usa-icon-list__title {\n  font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n  font-size: 3.42rem;\n}\n\n.usa-icon-list--size-17 .usa-icon-list__icon .usa-icon {\n  height: 6.39rem;\n  width: 6.39rem;\n}\n.usa-icon-list--size-17 .usa-icon-list__content {\n  max-width: 72ex;\n  font-size: 4.26rem;\n  padding-left: 1.704rem;\n}\n.usa-icon-list--size-17 .usa-icon-list__content .usa-icon-list__title {\n  font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n  font-size: 3.9rem;\n}\n\n.usa-icon-list--size-18 .usa-icon-list__icon .usa-icon {\n  height: 7.98rem;\n  width: 7.98rem;\n}\n.usa-icon-list--size-18 .usa-icon-list__content {\n  max-width: 72ex;\n  font-size: 5.32rem;\n  padding-left: 2.128rem;\n}\n.usa-icon-list--size-18 .usa-icon-list__content .usa-icon-list__title {\n  font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n  font-size: 4.88rem;\n}\n\n.usa-icon-list--size-19 .usa-icon-list__icon .usa-icon {\n  height: 11.985rem;\n  width: 11.985rem;\n}\n.usa-icon-list--size-19 .usa-icon-list__content {\n  max-width: 72ex;\n  font-size: 7.99rem;\n  padding-left: 3.196rem;\n}\n.usa-icon-list--size-19 .usa-icon-list__content .usa-icon-list__title {\n  font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n  font-size: 7.32rem;\n}\n\n.usa-icon-list--size-20 .usa-icon-list__icon .usa-icon {\n  height: 13.98rem;\n  width: 13.98rem;\n}\n.usa-icon-list--size-20 .usa-icon-list__content {\n  max-width: 72ex;\n  font-size: 9.32rem;\n  padding-left: 3.728rem;\n}\n.usa-icon-list--size-20 .usa-icon-list__content .usa-icon-list__title {\n  font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n  font-size: 8.54rem;\n}\n\n.usa-icon-list--size-3xs .usa-icon-list__icon .usa-icon {\n  height: 1.305rem;\n  width: 1.305rem;\n}\n.usa-icon-list--size-3xs .usa-icon-list__content {\n  max-width: 72ex;\n  font-size: 0.87rem;\n  padding-left: 0.348rem;\n}\n.usa-icon-list--size-3xs .usa-icon-list__content .usa-icon-list__title {\n  font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n  font-size: 0.79rem;\n}\n\n.usa-icon-list--size-2xs .usa-icon-list__icon .usa-icon {\n  height: 1.395rem;\n  width: 1.395rem;\n}\n.usa-icon-list--size-2xs .usa-icon-list__content {\n  max-width: 72ex;\n  font-size: 0.93rem;\n  padding-left: 0.372rem;\n}\n.usa-icon-list--size-2xs .usa-icon-list__content .usa-icon-list__title {\n  font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n  font-size: 0.85rem;\n}\n\n.usa-icon-list--size-xs .usa-icon-list__icon .usa-icon {\n  height: 1.5rem;\n  width: 1.5rem;\n}\n.usa-icon-list--size-xs .usa-icon-list__content {\n  max-width: 72ex;\n  font-size: 1rem;\n  padding-left: 0.4rem;\n}\n.usa-icon-list--size-xs .usa-icon-list__content .usa-icon-list__title {\n  font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n  font-size: 0.91rem;\n}\n\n.usa-icon-list--size-sm .usa-icon-list__icon .usa-icon {\n  height: 1.59rem;\n  width: 1.59rem;\n}\n.usa-icon-list--size-sm .usa-icon-list__content {\n  max-width: 72ex;\n  font-size: 1.06rem;\n  padding-left: 0.424rem;\n}\n.usa-icon-list--size-sm .usa-icon-list__content .usa-icon-list__title {\n  font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n  font-size: 0.98rem;\n}\n\n.usa-icon-list--size-md .usa-icon-list__icon .usa-icon {\n  height: 1.695rem;\n  width: 1.695rem;\n}\n.usa-icon-list--size-md .usa-icon-list__content {\n  max-width: 72ex;\n  font-size: 1.13rem;\n  padding-left: 0.452rem;\n}\n.usa-icon-list--size-md .usa-icon-list__content .usa-icon-list__title {\n  font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n  font-size: 1.04rem;\n}\n\n.usa-icon-list--size-lg .usa-icon-list__icon .usa-icon {\n  height: 2.19rem;\n  width: 2.19rem;\n}\n.usa-icon-list--size-lg .usa-icon-list__content {\n  max-width: 72ex;\n  font-size: 1.46rem;\n  padding-left: 0.584rem;\n}\n.usa-icon-list--size-lg .usa-icon-list__content .usa-icon-list__title {\n  font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n  font-size: 1.34rem;\n}\n\n.usa-icon-list--size-xl .usa-icon-list__icon .usa-icon {\n  height: 3.195rem;\n  width: 3.195rem;\n}\n.usa-icon-list--size-xl .usa-icon-list__content {\n  max-width: 72ex;\n  font-size: 2.13rem;\n  padding-left: 0.852rem;\n}\n.usa-icon-list--size-xl .usa-icon-list__content .usa-icon-list__title {\n  font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n  font-size: 1.95rem;\n}\n\n.usa-icon-list--size-2xl .usa-icon-list__icon .usa-icon {\n  height: 3.99rem;\n  width: 3.99rem;\n}\n.usa-icon-list--size-2xl .usa-icon-list__content {\n  max-width: 72ex;\n  font-size: 2.66rem;\n  padding-left: 1.064rem;\n}\n.usa-icon-list--size-2xl .usa-icon-list__content .usa-icon-list__title {\n  font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n  font-size: 2.44rem;\n}\n\n.usa-icon-list--size-3xl .usa-icon-list__icon .usa-icon {\n  height: 4.785rem;\n  width: 4.785rem;\n}\n.usa-icon-list--size-3xl .usa-icon-list__content {\n  max-width: 72ex;\n  font-size: 3.19rem;\n  padding-left: 1.276rem;\n}\n.usa-icon-list--size-3xl .usa-icon-list__content .usa-icon-list__title {\n  font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n  font-size: 2.93rem;\n}\n\n@media all and (min-width: 30em) {\n  .mobile-lg\\:usa-icon-list--size-micro .usa-icon-list__icon .usa-icon {\n    height: 1.005rem;\n    width: 1.005rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-micro .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 0.67rem;\n    padding-left: 0.268rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-micro .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 0.61rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-1 .usa-icon-list__icon .usa-icon {\n    height: 1.2rem;\n    width: 1.2rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-1 .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 0.8rem;\n    padding-left: 0.32rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-1 .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 0.73rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-2 .usa-icon-list__icon .usa-icon {\n    height: 1.305rem;\n    width: 1.305rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-2 .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 0.87rem;\n    padding-left: 0.348rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-2 .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 0.79rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-3 .usa-icon-list__icon .usa-icon {\n    height: 1.395rem;\n    width: 1.395rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-3 .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 0.93rem;\n    padding-left: 0.372rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-3 .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 0.85rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-4 .usa-icon-list__icon .usa-icon {\n    height: 1.5rem;\n    width: 1.5rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-4 .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 1rem;\n    padding-left: 0.4rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-4 .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 0.91rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-5 .usa-icon-list__icon .usa-icon {\n    height: 1.59rem;\n    width: 1.59rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-5 .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 1.06rem;\n    padding-left: 0.424rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-5 .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 0.98rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-6 .usa-icon-list__icon .usa-icon {\n    height: 1.695rem;\n    width: 1.695rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-6 .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 1.13rem;\n    padding-left: 0.452rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-6 .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 1.04rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-7 .usa-icon-list__icon .usa-icon {\n    height: 1.8rem;\n    width: 1.8rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-7 .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 1.2rem;\n    padding-left: 0.48rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-7 .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 1.1rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-8 .usa-icon-list__icon .usa-icon {\n    height: 1.995rem;\n    width: 1.995rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-8 .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 1.33rem;\n    padding-left: 0.532rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-8 .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 1.22rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-9 .usa-icon-list__icon .usa-icon {\n    height: 2.19rem;\n    width: 2.19rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-9 .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 1.46rem;\n    padding-left: 0.584rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-9 .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 1.34rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-10 .usa-icon-list__icon .usa-icon {\n    height: 2.4rem;\n    width: 2.4rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-10 .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 1.6rem;\n    padding-left: 0.64rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-10 .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 1.46rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-11 .usa-icon-list__icon .usa-icon {\n    height: 2.79rem;\n    width: 2.79rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-11 .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 1.86rem;\n    padding-left: 0.744rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-11 .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 1.71rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-12 .usa-icon-list__icon .usa-icon {\n    height: 3.195rem;\n    width: 3.195rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-12 .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 2.13rem;\n    padding-left: 0.852rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-12 .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 1.95rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-13 .usa-icon-list__icon .usa-icon {\n    height: 3.6rem;\n    width: 3.6rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-13 .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 2.4rem;\n    padding-left: 0.96rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-13 .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 2.2rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-14 .usa-icon-list__icon .usa-icon {\n    height: 3.99rem;\n    width: 3.99rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-14 .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 2.66rem;\n    padding-left: 1.064rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-14 .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 2.44rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-15 .usa-icon-list__icon .usa-icon {\n    height: 4.785rem;\n    width: 4.785rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-15 .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 3.19rem;\n    padding-left: 1.276rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-15 .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 2.93rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-16 .usa-icon-list__icon .usa-icon {\n    height: 5.595rem;\n    width: 5.595rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-16 .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 3.73rem;\n    padding-left: 1.492rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-16 .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 3.42rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-17 .usa-icon-list__icon .usa-icon {\n    height: 6.39rem;\n    width: 6.39rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-17 .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 4.26rem;\n    padding-left: 1.704rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-17 .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 3.9rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-18 .usa-icon-list__icon .usa-icon {\n    height: 7.98rem;\n    width: 7.98rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-18 .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 5.32rem;\n    padding-left: 2.128rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-18 .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 4.88rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-19 .usa-icon-list__icon .usa-icon {\n    height: 11.985rem;\n    width: 11.985rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-19 .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 7.99rem;\n    padding-left: 3.196rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-19 .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 7.32rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-20 .usa-icon-list__icon .usa-icon {\n    height: 13.98rem;\n    width: 13.98rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-20 .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 9.32rem;\n    padding-left: 3.728rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-20 .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 8.54rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-3xs .usa-icon-list__icon .usa-icon {\n    height: 1.305rem;\n    width: 1.305rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-3xs .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 0.87rem;\n    padding-left: 0.348rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-3xs .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 0.79rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-2xs .usa-icon-list__icon .usa-icon {\n    height: 1.395rem;\n    width: 1.395rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-2xs .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 0.93rem;\n    padding-left: 0.372rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-2xs .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 0.85rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-xs .usa-icon-list__icon .usa-icon {\n    height: 1.5rem;\n    width: 1.5rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-xs .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 1rem;\n    padding-left: 0.4rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-xs .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 0.91rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-sm .usa-icon-list__icon .usa-icon {\n    height: 1.59rem;\n    width: 1.59rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-sm .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 1.06rem;\n    padding-left: 0.424rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-sm .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 0.98rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-md .usa-icon-list__icon .usa-icon {\n    height: 1.695rem;\n    width: 1.695rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-md .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 1.13rem;\n    padding-left: 0.452rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-md .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 1.04rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-lg .usa-icon-list__icon .usa-icon {\n    height: 2.19rem;\n    width: 2.19rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-lg .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 1.46rem;\n    padding-left: 0.584rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-lg .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 1.34rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-xl .usa-icon-list__icon .usa-icon {\n    height: 3.195rem;\n    width: 3.195rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-xl .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 2.13rem;\n    padding-left: 0.852rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-xl .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 1.95rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-2xl .usa-icon-list__icon .usa-icon {\n    height: 3.99rem;\n    width: 3.99rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-2xl .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 2.66rem;\n    padding-left: 1.064rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-2xl .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 2.44rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-3xl .usa-icon-list__icon .usa-icon {\n    height: 4.785rem;\n    width: 4.785rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-3xl .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 3.19rem;\n    padding-left: 1.276rem;\n  }\n  .mobile-lg\\:usa-icon-list--size-3xl .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 2.93rem;\n  }\n}\n@media all and (min-width: 40em) {\n  .tablet\\:usa-icon-list--size-micro .usa-icon-list__icon .usa-icon {\n    height: 1.005rem;\n    width: 1.005rem;\n  }\n  .tablet\\:usa-icon-list--size-micro .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 0.67rem;\n    padding-left: 0.268rem;\n  }\n  .tablet\\:usa-icon-list--size-micro .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 0.61rem;\n  }\n  .tablet\\:usa-icon-list--size-1 .usa-icon-list__icon .usa-icon {\n    height: 1.2rem;\n    width: 1.2rem;\n  }\n  .tablet\\:usa-icon-list--size-1 .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 0.8rem;\n    padding-left: 0.32rem;\n  }\n  .tablet\\:usa-icon-list--size-1 .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 0.73rem;\n  }\n  .tablet\\:usa-icon-list--size-2 .usa-icon-list__icon .usa-icon {\n    height: 1.305rem;\n    width: 1.305rem;\n  }\n  .tablet\\:usa-icon-list--size-2 .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 0.87rem;\n    padding-left: 0.348rem;\n  }\n  .tablet\\:usa-icon-list--size-2 .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 0.79rem;\n  }\n  .tablet\\:usa-icon-list--size-3 .usa-icon-list__icon .usa-icon {\n    height: 1.395rem;\n    width: 1.395rem;\n  }\n  .tablet\\:usa-icon-list--size-3 .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 0.93rem;\n    padding-left: 0.372rem;\n  }\n  .tablet\\:usa-icon-list--size-3 .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 0.85rem;\n  }\n  .tablet\\:usa-icon-list--size-4 .usa-icon-list__icon .usa-icon {\n    height: 1.5rem;\n    width: 1.5rem;\n  }\n  .tablet\\:usa-icon-list--size-4 .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 1rem;\n    padding-left: 0.4rem;\n  }\n  .tablet\\:usa-icon-list--size-4 .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 0.91rem;\n  }\n  .tablet\\:usa-icon-list--size-5 .usa-icon-list__icon .usa-icon {\n    height: 1.59rem;\n    width: 1.59rem;\n  }\n  .tablet\\:usa-icon-list--size-5 .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 1.06rem;\n    padding-left: 0.424rem;\n  }\n  .tablet\\:usa-icon-list--size-5 .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 0.98rem;\n  }\n  .tablet\\:usa-icon-list--size-6 .usa-icon-list__icon .usa-icon {\n    height: 1.695rem;\n    width: 1.695rem;\n  }\n  .tablet\\:usa-icon-list--size-6 .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 1.13rem;\n    padding-left: 0.452rem;\n  }\n  .tablet\\:usa-icon-list--size-6 .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 1.04rem;\n  }\n  .tablet\\:usa-icon-list--size-7 .usa-icon-list__icon .usa-icon {\n    height: 1.8rem;\n    width: 1.8rem;\n  }\n  .tablet\\:usa-icon-list--size-7 .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 1.2rem;\n    padding-left: 0.48rem;\n  }\n  .tablet\\:usa-icon-list--size-7 .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 1.1rem;\n  }\n  .tablet\\:usa-icon-list--size-8 .usa-icon-list__icon .usa-icon {\n    height: 1.995rem;\n    width: 1.995rem;\n  }\n  .tablet\\:usa-icon-list--size-8 .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 1.33rem;\n    padding-left: 0.532rem;\n  }\n  .tablet\\:usa-icon-list--size-8 .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 1.22rem;\n  }\n  .tablet\\:usa-icon-list--size-9 .usa-icon-list__icon .usa-icon {\n    height: 2.19rem;\n    width: 2.19rem;\n  }\n  .tablet\\:usa-icon-list--size-9 .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 1.46rem;\n    padding-left: 0.584rem;\n  }\n  .tablet\\:usa-icon-list--size-9 .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 1.34rem;\n  }\n  .tablet\\:usa-icon-list--size-10 .usa-icon-list__icon .usa-icon {\n    height: 2.4rem;\n    width: 2.4rem;\n  }\n  .tablet\\:usa-icon-list--size-10 .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 1.6rem;\n    padding-left: 0.64rem;\n  }\n  .tablet\\:usa-icon-list--size-10 .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 1.46rem;\n  }\n  .tablet\\:usa-icon-list--size-11 .usa-icon-list__icon .usa-icon {\n    height: 2.79rem;\n    width: 2.79rem;\n  }\n  .tablet\\:usa-icon-list--size-11 .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 1.86rem;\n    padding-left: 0.744rem;\n  }\n  .tablet\\:usa-icon-list--size-11 .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 1.71rem;\n  }\n  .tablet\\:usa-icon-list--size-12 .usa-icon-list__icon .usa-icon {\n    height: 3.195rem;\n    width: 3.195rem;\n  }\n  .tablet\\:usa-icon-list--size-12 .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 2.13rem;\n    padding-left: 0.852rem;\n  }\n  .tablet\\:usa-icon-list--size-12 .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 1.95rem;\n  }\n  .tablet\\:usa-icon-list--size-13 .usa-icon-list__icon .usa-icon {\n    height: 3.6rem;\n    width: 3.6rem;\n  }\n  .tablet\\:usa-icon-list--size-13 .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 2.4rem;\n    padding-left: 0.96rem;\n  }\n  .tablet\\:usa-icon-list--size-13 .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 2.2rem;\n  }\n  .tablet\\:usa-icon-list--size-14 .usa-icon-list__icon .usa-icon {\n    height: 3.99rem;\n    width: 3.99rem;\n  }\n  .tablet\\:usa-icon-list--size-14 .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 2.66rem;\n    padding-left: 1.064rem;\n  }\n  .tablet\\:usa-icon-list--size-14 .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 2.44rem;\n  }\n  .tablet\\:usa-icon-list--size-15 .usa-icon-list__icon .usa-icon {\n    height: 4.785rem;\n    width: 4.785rem;\n  }\n  .tablet\\:usa-icon-list--size-15 .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 3.19rem;\n    padding-left: 1.276rem;\n  }\n  .tablet\\:usa-icon-list--size-15 .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 2.93rem;\n  }\n  .tablet\\:usa-icon-list--size-16 .usa-icon-list__icon .usa-icon {\n    height: 5.595rem;\n    width: 5.595rem;\n  }\n  .tablet\\:usa-icon-list--size-16 .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 3.73rem;\n    padding-left: 1.492rem;\n  }\n  .tablet\\:usa-icon-list--size-16 .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 3.42rem;\n  }\n  .tablet\\:usa-icon-list--size-17 .usa-icon-list__icon .usa-icon {\n    height: 6.39rem;\n    width: 6.39rem;\n  }\n  .tablet\\:usa-icon-list--size-17 .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 4.26rem;\n    padding-left: 1.704rem;\n  }\n  .tablet\\:usa-icon-list--size-17 .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 3.9rem;\n  }\n  .tablet\\:usa-icon-list--size-18 .usa-icon-list__icon .usa-icon {\n    height: 7.98rem;\n    width: 7.98rem;\n  }\n  .tablet\\:usa-icon-list--size-18 .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 5.32rem;\n    padding-left: 2.128rem;\n  }\n  .tablet\\:usa-icon-list--size-18 .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 4.88rem;\n  }\n  .tablet\\:usa-icon-list--size-19 .usa-icon-list__icon .usa-icon {\n    height: 11.985rem;\n    width: 11.985rem;\n  }\n  .tablet\\:usa-icon-list--size-19 .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 7.99rem;\n    padding-left: 3.196rem;\n  }\n  .tablet\\:usa-icon-list--size-19 .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 7.32rem;\n  }\n  .tablet\\:usa-icon-list--size-20 .usa-icon-list__icon .usa-icon {\n    height: 13.98rem;\n    width: 13.98rem;\n  }\n  .tablet\\:usa-icon-list--size-20 .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 9.32rem;\n    padding-left: 3.728rem;\n  }\n  .tablet\\:usa-icon-list--size-20 .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 8.54rem;\n  }\n  .tablet\\:usa-icon-list--size-3xs .usa-icon-list__icon .usa-icon {\n    height: 1.305rem;\n    width: 1.305rem;\n  }\n  .tablet\\:usa-icon-list--size-3xs .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 0.87rem;\n    padding-left: 0.348rem;\n  }\n  .tablet\\:usa-icon-list--size-3xs .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 0.79rem;\n  }\n  .tablet\\:usa-icon-list--size-2xs .usa-icon-list__icon .usa-icon {\n    height: 1.395rem;\n    width: 1.395rem;\n  }\n  .tablet\\:usa-icon-list--size-2xs .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 0.93rem;\n    padding-left: 0.372rem;\n  }\n  .tablet\\:usa-icon-list--size-2xs .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 0.85rem;\n  }\n  .tablet\\:usa-icon-list--size-xs .usa-icon-list__icon .usa-icon {\n    height: 1.5rem;\n    width: 1.5rem;\n  }\n  .tablet\\:usa-icon-list--size-xs .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 1rem;\n    padding-left: 0.4rem;\n  }\n  .tablet\\:usa-icon-list--size-xs .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 0.91rem;\n  }\n  .tablet\\:usa-icon-list--size-sm .usa-icon-list__icon .usa-icon {\n    height: 1.59rem;\n    width: 1.59rem;\n  }\n  .tablet\\:usa-icon-list--size-sm .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 1.06rem;\n    padding-left: 0.424rem;\n  }\n  .tablet\\:usa-icon-list--size-sm .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 0.98rem;\n  }\n  .tablet\\:usa-icon-list--size-md .usa-icon-list__icon .usa-icon {\n    height: 1.695rem;\n    width: 1.695rem;\n  }\n  .tablet\\:usa-icon-list--size-md .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 1.13rem;\n    padding-left: 0.452rem;\n  }\n  .tablet\\:usa-icon-list--size-md .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 1.04rem;\n  }\n  .tablet\\:usa-icon-list--size-lg .usa-icon-list__icon .usa-icon {\n    height: 2.19rem;\n    width: 2.19rem;\n  }\n  .tablet\\:usa-icon-list--size-lg .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 1.46rem;\n    padding-left: 0.584rem;\n  }\n  .tablet\\:usa-icon-list--size-lg .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 1.34rem;\n  }\n  .tablet\\:usa-icon-list--size-xl .usa-icon-list__icon .usa-icon {\n    height: 3.195rem;\n    width: 3.195rem;\n  }\n  .tablet\\:usa-icon-list--size-xl .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 2.13rem;\n    padding-left: 0.852rem;\n  }\n  .tablet\\:usa-icon-list--size-xl .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 1.95rem;\n  }\n  .tablet\\:usa-icon-list--size-2xl .usa-icon-list__icon .usa-icon {\n    height: 3.99rem;\n    width: 3.99rem;\n  }\n  .tablet\\:usa-icon-list--size-2xl .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 2.66rem;\n    padding-left: 1.064rem;\n  }\n  .tablet\\:usa-icon-list--size-2xl .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 2.44rem;\n  }\n  .tablet\\:usa-icon-list--size-3xl .usa-icon-list__icon .usa-icon {\n    height: 4.785rem;\n    width: 4.785rem;\n  }\n  .tablet\\:usa-icon-list--size-3xl .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 3.19rem;\n    padding-left: 1.276rem;\n  }\n  .tablet\\:usa-icon-list--size-3xl .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 2.93rem;\n  }\n}\n@media all and (min-width: 64em) {\n  .desktop\\:usa-icon-list--size-micro .usa-icon-list__icon .usa-icon {\n    height: 1.005rem;\n    width: 1.005rem;\n  }\n  .desktop\\:usa-icon-list--size-micro .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 0.67rem;\n    padding-left: 0.268rem;\n  }\n  .desktop\\:usa-icon-list--size-micro .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 0.61rem;\n  }\n  .desktop\\:usa-icon-list--size-1 .usa-icon-list__icon .usa-icon {\n    height: 1.2rem;\n    width: 1.2rem;\n  }\n  .desktop\\:usa-icon-list--size-1 .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 0.8rem;\n    padding-left: 0.32rem;\n  }\n  .desktop\\:usa-icon-list--size-1 .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 0.73rem;\n  }\n  .desktop\\:usa-icon-list--size-2 .usa-icon-list__icon .usa-icon {\n    height: 1.305rem;\n    width: 1.305rem;\n  }\n  .desktop\\:usa-icon-list--size-2 .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 0.87rem;\n    padding-left: 0.348rem;\n  }\n  .desktop\\:usa-icon-list--size-2 .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 0.79rem;\n  }\n  .desktop\\:usa-icon-list--size-3 .usa-icon-list__icon .usa-icon {\n    height: 1.395rem;\n    width: 1.395rem;\n  }\n  .desktop\\:usa-icon-list--size-3 .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 0.93rem;\n    padding-left: 0.372rem;\n  }\n  .desktop\\:usa-icon-list--size-3 .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 0.85rem;\n  }\n  .desktop\\:usa-icon-list--size-4 .usa-icon-list__icon .usa-icon {\n    height: 1.5rem;\n    width: 1.5rem;\n  }\n  .desktop\\:usa-icon-list--size-4 .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 1rem;\n    padding-left: 0.4rem;\n  }\n  .desktop\\:usa-icon-list--size-4 .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 0.91rem;\n  }\n  .desktop\\:usa-icon-list--size-5 .usa-icon-list__icon .usa-icon {\n    height: 1.59rem;\n    width: 1.59rem;\n  }\n  .desktop\\:usa-icon-list--size-5 .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 1.06rem;\n    padding-left: 0.424rem;\n  }\n  .desktop\\:usa-icon-list--size-5 .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 0.98rem;\n  }\n  .desktop\\:usa-icon-list--size-6 .usa-icon-list__icon .usa-icon {\n    height: 1.695rem;\n    width: 1.695rem;\n  }\n  .desktop\\:usa-icon-list--size-6 .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 1.13rem;\n    padding-left: 0.452rem;\n  }\n  .desktop\\:usa-icon-list--size-6 .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 1.04rem;\n  }\n  .desktop\\:usa-icon-list--size-7 .usa-icon-list__icon .usa-icon {\n    height: 1.8rem;\n    width: 1.8rem;\n  }\n  .desktop\\:usa-icon-list--size-7 .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 1.2rem;\n    padding-left: 0.48rem;\n  }\n  .desktop\\:usa-icon-list--size-7 .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 1.1rem;\n  }\n  .desktop\\:usa-icon-list--size-8 .usa-icon-list__icon .usa-icon {\n    height: 1.995rem;\n    width: 1.995rem;\n  }\n  .desktop\\:usa-icon-list--size-8 .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 1.33rem;\n    padding-left: 0.532rem;\n  }\n  .desktop\\:usa-icon-list--size-8 .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 1.22rem;\n  }\n  .desktop\\:usa-icon-list--size-9 .usa-icon-list__icon .usa-icon {\n    height: 2.19rem;\n    width: 2.19rem;\n  }\n  .desktop\\:usa-icon-list--size-9 .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 1.46rem;\n    padding-left: 0.584rem;\n  }\n  .desktop\\:usa-icon-list--size-9 .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 1.34rem;\n  }\n  .desktop\\:usa-icon-list--size-10 .usa-icon-list__icon .usa-icon {\n    height: 2.4rem;\n    width: 2.4rem;\n  }\n  .desktop\\:usa-icon-list--size-10 .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 1.6rem;\n    padding-left: 0.64rem;\n  }\n  .desktop\\:usa-icon-list--size-10 .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 1.46rem;\n  }\n  .desktop\\:usa-icon-list--size-11 .usa-icon-list__icon .usa-icon {\n    height: 2.79rem;\n    width: 2.79rem;\n  }\n  .desktop\\:usa-icon-list--size-11 .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 1.86rem;\n    padding-left: 0.744rem;\n  }\n  .desktop\\:usa-icon-list--size-11 .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 1.71rem;\n  }\n  .desktop\\:usa-icon-list--size-12 .usa-icon-list__icon .usa-icon {\n    height: 3.195rem;\n    width: 3.195rem;\n  }\n  .desktop\\:usa-icon-list--size-12 .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 2.13rem;\n    padding-left: 0.852rem;\n  }\n  .desktop\\:usa-icon-list--size-12 .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 1.95rem;\n  }\n  .desktop\\:usa-icon-list--size-13 .usa-icon-list__icon .usa-icon {\n    height: 3.6rem;\n    width: 3.6rem;\n  }\n  .desktop\\:usa-icon-list--size-13 .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 2.4rem;\n    padding-left: 0.96rem;\n  }\n  .desktop\\:usa-icon-list--size-13 .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 2.2rem;\n  }\n  .desktop\\:usa-icon-list--size-14 .usa-icon-list__icon .usa-icon {\n    height: 3.99rem;\n    width: 3.99rem;\n  }\n  .desktop\\:usa-icon-list--size-14 .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 2.66rem;\n    padding-left: 1.064rem;\n  }\n  .desktop\\:usa-icon-list--size-14 .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 2.44rem;\n  }\n  .desktop\\:usa-icon-list--size-15 .usa-icon-list__icon .usa-icon {\n    height: 4.785rem;\n    width: 4.785rem;\n  }\n  .desktop\\:usa-icon-list--size-15 .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 3.19rem;\n    padding-left: 1.276rem;\n  }\n  .desktop\\:usa-icon-list--size-15 .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 2.93rem;\n  }\n  .desktop\\:usa-icon-list--size-16 .usa-icon-list__icon .usa-icon {\n    height: 5.595rem;\n    width: 5.595rem;\n  }\n  .desktop\\:usa-icon-list--size-16 .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 3.73rem;\n    padding-left: 1.492rem;\n  }\n  .desktop\\:usa-icon-list--size-16 .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 3.42rem;\n  }\n  .desktop\\:usa-icon-list--size-17 .usa-icon-list__icon .usa-icon {\n    height: 6.39rem;\n    width: 6.39rem;\n  }\n  .desktop\\:usa-icon-list--size-17 .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 4.26rem;\n    padding-left: 1.704rem;\n  }\n  .desktop\\:usa-icon-list--size-17 .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 3.9rem;\n  }\n  .desktop\\:usa-icon-list--size-18 .usa-icon-list__icon .usa-icon {\n    height: 7.98rem;\n    width: 7.98rem;\n  }\n  .desktop\\:usa-icon-list--size-18 .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 5.32rem;\n    padding-left: 2.128rem;\n  }\n  .desktop\\:usa-icon-list--size-18 .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 4.88rem;\n  }\n  .desktop\\:usa-icon-list--size-19 .usa-icon-list__icon .usa-icon {\n    height: 11.985rem;\n    width: 11.985rem;\n  }\n  .desktop\\:usa-icon-list--size-19 .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 7.99rem;\n    padding-left: 3.196rem;\n  }\n  .desktop\\:usa-icon-list--size-19 .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 7.32rem;\n  }\n  .desktop\\:usa-icon-list--size-20 .usa-icon-list__icon .usa-icon {\n    height: 13.98rem;\n    width: 13.98rem;\n  }\n  .desktop\\:usa-icon-list--size-20 .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 9.32rem;\n    padding-left: 3.728rem;\n  }\n  .desktop\\:usa-icon-list--size-20 .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 8.54rem;\n  }\n  .desktop\\:usa-icon-list--size-3xs .usa-icon-list__icon .usa-icon {\n    height: 1.305rem;\n    width: 1.305rem;\n  }\n  .desktop\\:usa-icon-list--size-3xs .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 0.87rem;\n    padding-left: 0.348rem;\n  }\n  .desktop\\:usa-icon-list--size-3xs .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 0.79rem;\n  }\n  .desktop\\:usa-icon-list--size-2xs .usa-icon-list__icon .usa-icon {\n    height: 1.395rem;\n    width: 1.395rem;\n  }\n  .desktop\\:usa-icon-list--size-2xs .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 0.93rem;\n    padding-left: 0.372rem;\n  }\n  .desktop\\:usa-icon-list--size-2xs .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 0.85rem;\n  }\n  .desktop\\:usa-icon-list--size-xs .usa-icon-list__icon .usa-icon {\n    height: 1.5rem;\n    width: 1.5rem;\n  }\n  .desktop\\:usa-icon-list--size-xs .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 1rem;\n    padding-left: 0.4rem;\n  }\n  .desktop\\:usa-icon-list--size-xs .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 0.91rem;\n  }\n  .desktop\\:usa-icon-list--size-sm .usa-icon-list__icon .usa-icon {\n    height: 1.59rem;\n    width: 1.59rem;\n  }\n  .desktop\\:usa-icon-list--size-sm .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 1.06rem;\n    padding-left: 0.424rem;\n  }\n  .desktop\\:usa-icon-list--size-sm .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 0.98rem;\n  }\n  .desktop\\:usa-icon-list--size-md .usa-icon-list__icon .usa-icon {\n    height: 1.695rem;\n    width: 1.695rem;\n  }\n  .desktop\\:usa-icon-list--size-md .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 1.13rem;\n    padding-left: 0.452rem;\n  }\n  .desktop\\:usa-icon-list--size-md .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 1.04rem;\n  }\n  .desktop\\:usa-icon-list--size-lg .usa-icon-list__icon .usa-icon {\n    height: 2.19rem;\n    width: 2.19rem;\n  }\n  .desktop\\:usa-icon-list--size-lg .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 1.46rem;\n    padding-left: 0.584rem;\n  }\n  .desktop\\:usa-icon-list--size-lg .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 1.34rem;\n  }\n  .desktop\\:usa-icon-list--size-xl .usa-icon-list__icon .usa-icon {\n    height: 3.195rem;\n    width: 3.195rem;\n  }\n  .desktop\\:usa-icon-list--size-xl .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 2.13rem;\n    padding-left: 0.852rem;\n  }\n  .desktop\\:usa-icon-list--size-xl .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 1.95rem;\n  }\n  .desktop\\:usa-icon-list--size-2xl .usa-icon-list__icon .usa-icon {\n    height: 3.99rem;\n    width: 3.99rem;\n  }\n  .desktop\\:usa-icon-list--size-2xl .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 2.66rem;\n    padding-left: 1.064rem;\n  }\n  .desktop\\:usa-icon-list--size-2xl .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 2.44rem;\n  }\n  .desktop\\:usa-icon-list--size-3xl .usa-icon-list__icon .usa-icon {\n    height: 4.785rem;\n    width: 4.785rem;\n  }\n  .desktop\\:usa-icon-list--size-3xl .usa-icon-list__content {\n    max-width: 72ex;\n    font-size: 3.19rem;\n    padding-left: 1.276rem;\n  }\n  .desktop\\:usa-icon-list--size-3xl .usa-icon-list__content .usa-icon-list__title {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 2.93rem;\n  }\n}\n.usa-icon-list__title {\n  font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n  font-size: 0.98rem;\n  line-height: 1.2;\n  margin-bottom: 0rem;\n  padding-top: 0.425ex;\n}\n.usa-icon-list__title + * {\n  margin-top: 0.5rem;\n}\n\n.usa-icon-list__content {\n  font-size: 1.06rem;\n  padding-left: 0.424rem;\n}\n.usa-icon-list__content > *:first-child {\n  margin-top: 0;\n}\n.usa-icon-list__content > *:last-child {\n  margin-bottom: 0;\n}\n.usa-icon-list__content ul li {\n  list-style-type: disc;\n}\n\n.usa-identifier {\n  font-family: Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;\n  font-size: 1.06rem;\n  line-height: 1.3;\n  color: white;\n  background-color: #1b1b1b;\n  padding-bottom: 1rem;\n}\n\n.usa-identifier__container {\n  margin-left: auto;\n  margin-right: auto;\n  max-width: 64rem;\n  padding-left: 1rem;\n  padding-right: 1rem;\n  max-width: 64rem;\n}\n@media all and (min-width: 64em) {\n  .usa-identifier__container {\n    padding-left: 2rem;\n    padding-right: 2rem;\n  }\n}\n\n.usa-identifier__section {\n  padding-bottom: 1rem;\n  padding-top: 1rem;\n}\n\n@media all and (min-width: 40em) {\n  .usa-identifier__section--masthead .usa-identifier__container {\n    align-items: center;\n    display: flex;\n  }\n}\n\n.usa-identifier__logos {\n  display: flex;\n  margin-right: 1rem;\n}\n\n.usa-identifier__logo {\n  text-decoration: none;\n  height: 3rem;\n  display: block;\n}\n.usa-identifier__logo + .usa-identifier__logo {\n  margin-left: 0.5rem;\n}\n\n.usa-identifier__logo-img {\n  height: 100%;\n  width: auto;\n}\n\n.usa-identifier__identity {\n  flex: 1 1 0%;\n  margin-top: 1rem;\n}\n@media all and (min-width: 40em) {\n  .usa-identifier__identity {\n    margin-top: 0rem;\n  }\n}\n\n.usa-identifier__identity-domain,\n.usa-identifier__identity-disclaimer {\n  margin: 0;\n  padding: 0;\n}\n\n.usa-identifier__identity-domain {\n  color: #a9aeb1;\n}\n\n.usa-identifier__identity-disclaimer {\n  font-weight: 700;\n}\n.usa-identifier__identity-disclaimer a {\n  color: #dfe1e2;\n}\n.usa-identifier__identity-disclaimer a:visited {\n  color: #dfe1e2;\n}\n.usa-identifier__identity-disclaimer a:hover, .usa-identifier__identity-disclaimer a:active {\n  color: #f0f0f0;\n}\n\n@media all and (min-width: 40em) {\n  .usa-identifier__section--required-links {\n    padding-bottom: 0.5rem;\n    padding-top: 0.5rem;\n  }\n}\n@media all and (min-width: 64em) {\n  .usa-identifier__section--required-links {\n    font-size: 1rem;\n  }\n}\n\n.usa-identifier__required-links-list {\n  margin-bottom: 0;\n  margin-top: 0;\n  list-style-type: none;\n  padding-left: 0;\n  margin-bottom: 0;\n  margin-top: 0;\n}\n@media all and (min-width: 40em) {\n  .usa-identifier__required-links-list {\n    column-count: 2;\n    column-gap: 2rem;\n    column-fill: balance;\n  }\n}\n@media all and (min-width: 64em) {\n  .usa-identifier__required-links-list {\n    column-count: 4;\n  }\n}\n\n.usa-identifier__required-links-item {\n  break-inside: avoid;\n  margin-bottom: 0.75rem;\n}\n.usa-identifier__required-links-item:last-child {\n  margin-bottom: 0rem;\n}\n@media all and (min-width: 64em) {\n  .usa-identifier__required-links-item {\n    margin-bottom: 0.5rem;\n  }\n}\n\n.usa-identifier__required-link,\n.usa-identifier__required-link.usa-link {\n  color: #a9aeb1;\n  display: inline-block;\n}\n.usa-identifier__required-link:visited,\n.usa-identifier__required-link.usa-link:visited {\n  color: #a9aeb1;\n}\n.usa-identifier__required-link:hover, .usa-identifier__required-link:active,\n.usa-identifier__required-link.usa-link:hover,\n.usa-identifier__required-link.usa-link:active {\n  color: #dfe1e2;\n}\n\n.usa-identifier__section--usagov a {\n  color: #dfe1e2;\n  font-weight: 700;\n  display: inline-block;\n  margin-top: 0.5rem;\n}\n.usa-identifier__section--usagov a:visited {\n  color: #dfe1e2;\n}\n.usa-identifier__section--usagov a:hover, .usa-identifier__section--usagov a:active {\n  color: #f0f0f0;\n}\n@media all and (min-width: 40em) {\n  .usa-identifier__section--usagov a {\n    margin-top: 0;\n  }\n}\n\n@media all and (min-width: 40em) {\n  .usa-identifier__usagov-description {\n    display: inline-flex;\n  }\n}\n\n.usa-in-page-nav-container {\n  align-items: flex-start;\n  display: flex;\n}\n.usa-in-page-nav-container main {\n  max-width: 64rem;\n  width: 100%;\n}\n\n.usa-in-page-nav {\n  color: #1b1b1b;\n  display: none;\n  margin-left: 2rem;\n  margin-top: 1.25rem;\n  max-width: 15rem;\n  order: 2;\n  position: sticky;\n  top: 2rem;\n  width: 100%;\n}\n@media all and (min-width: 40em) {\n  .usa-in-page-nav {\n    display: block;\n  }\n}\n\n.usa-in-page-nav__nav {\n  color: #1b1b1b;\n  background-color: white;\n  border-radius: 0.5rem;\n  padding: 1rem;\n}\n\n.usa-in-page-nav__heading {\n  font-family: Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;\n  font-size: 0.93rem;\n  line-height: 1.3;\n  font-weight: 700;\n  margin-bottom: 1rem;\n  margin-top: 0;\n  padding: 0;\n}\n\n.usa-in-page-nav__list {\n  margin-bottom: 0;\n  margin-top: 0;\n  list-style-type: none;\n  padding-left: 0;\n  border-left: 1px solid rgba(27, 27, 27, 0.25);\n  padding: 0;\n}\n.usa-in-page-nav__list > li {\n  margin-bottom: 0;\n  max-width: unset;\n}\n.usa-in-page-nav__list__item {\n  border-top: 1px solid #dfe1e2;\n}\n.usa-in-page-nav__list a:not(.usa-button) {\n  display: block;\n  padding: 0.5rem 1rem;\n  text-decoration: none;\n}\n.usa-in-page-nav__list a:not(.usa-button):hover {\n  background-color: #f0f0f0;\n  text-decoration: none;\n}\n.usa-in-page-nav__list a:not(.usa-button):not(.usa-current) {\n  color: #565c65;\n}\n.usa-in-page-nav__list a:not(.usa-button):not(.usa-current):hover {\n  color: #005ea2;\n}\n.usa-in-page-nav__list a:not(.usa-button):not(.usa-current):focus {\n  outline-offset: 0;\n}\n.usa-in-page-nav__list .usa-current {\n  position: relative;\n  color: #005ea2;\n  font-weight: 700;\n}\n.usa-in-page-nav__list .usa-current::after {\n  background-color: #005ea2;\n  border-radius: 99rem;\n  content: \"\";\n  display: block;\n  position: absolute;\n  bottom: 0.25rem;\n  top: 0.25rem;\n  width: 0.25rem;\n  left: 0.25rem;\n}\n@media all and (min-width: 40em) {\n  .usa-in-page-nav__list .usa-current {\n    position: relative;\n  }\n  .usa-in-page-nav__list .usa-current::after {\n    background-color: #005ea2;\n    border-radius: 99rem;\n    content: \"\";\n    display: block;\n    position: absolute;\n    bottom: 0.25rem;\n    top: 0.25rem;\n    width: 0.25rem;\n    left: 0rem;\n  }\n}\n.usa-in-page-nav__list a:not(.usa-button):not(.usa-current) {\n  color: #005ea2;\n}\n.usa-in-page-nav__list a:not(.usa-button):not(.usa-current):visited {\n  color: #54278f;\n}\n.usa-in-page-nav__list a:not(.usa-button):not(.usa-current):hover, .usa-in-page-nav__list a:not(.usa-button):not(.usa-current):active {\n  color: #1a4480;\n}\n.usa-in-page-nav__list a:not(.usa-button):not(.usa-current):visited {\n  color: #005ea2;\n}\n.usa-in-page-nav__list a:not(.usa-button).usa-current {\n  color: #1b1b1b;\n  font-weight: inherit;\n}\n.usa-in-page-nav__list a:not(.usa-button):hover {\n  text-decoration: underline;\n  background-color: none;\n}\n.usa-in-page-nav__list a:not(.usa-button).usa-current {\n  position: static;\n}\n.usa-in-page-nav__list a:not(.usa-button).usa-current::after {\n  background-color: #1b1b1b;\n  border-radius: 0;\n  bottom: -1px;\n  left: 0;\n  top: 0;\n  width: 0.25rem;\n  z-index: 100;\n}\n\n.usa-in-page-nav__item {\n  font-family: Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;\n  font-size: 0.93rem;\n  line-height: 1.1;\n  border: none;\n  position: relative;\n}\n.usa-in-page-nav__item--primary {\n  font-weight: 700;\n}\n\n.usa-language {\n  flex-direction: row;\n  align-items: center;\n  justify-content: flex-end;\n  display: flex;\n  padding: 0 0 0.25rem 0.5rem;\n  width: 100%;\n}\n.usa-language--small .usa-button {\n  padding-left: 0.75rem;\n  padding-right: 0.75rem;\n  padding-bottom: 0;\n  padding-top: 0;\n  font-size: 0.87rem;\n  height: 2rem;\n  margin-top: 0.3rem;\n  min-width: 3rem;\n}\n\n.usa-language-container {\n  align-items: center;\n  justify-content: flex-end;\n  display: flex;\n}\n\n.usa-nav-container .usa-language-container {\n  align-self: center;\n  margin-left: 0rem;\n  position: absolute;\n  right: 5rem;\n  top: 1rem;\n}\n@media all and (min-width: 64em) {\n  .usa-nav-container .usa-language-container {\n    align-self: flex-end;\n    margin-left: 0.75rem;\n    margin-bottom: 0.5rem;\n    position: relative;\n    right: inherit;\n    top: -2px;\n  }\n}\n\n.usa-language__link {\n  margin-right: 0rem;\n}\n\n.usa-language__primary {\n  width: auto;\n}\n\n.usa-language__primary-item:last-of-type {\n  position: relative;\n}\n.usa-language__primary-item:last-of-type .usa-language__submenu {\n  position: absolute;\n  right: 0;\n}\n\n.usa-language__submenu {\n  margin-bottom: 0;\n  margin-top: 0;\n  list-style-type: none;\n  padding-left: 0;\n  margin-bottom: 0;\n  margin-top: 0;\n  list-style-type: none;\n  padding-left: 0;\n  margin: 0;\n  background-color: #162e51;\n  position: absolute;\n  width: 15rem;\n  z-index: 400;\n}\n.usa-language__submenu > li {\n  margin-bottom: 0;\n  max-width: unset;\n}\n.usa-language__submenu-item {\n  border-top: 1px solid #dfe1e2;\n  font-size: 0.93rem;\n}\n.usa-language__submenu .usa-current::after {\n  display: none;\n}\n@media all and (min-width: 40em) {\n  .usa-language__submenu .usa-current::after {\n    display: none;\n  }\n}\n.usa-language__submenu a:not(.usa-button) {\n  padding-left: 2rem;\n}\n.usa-language__submenu .usa-language__submenu a:not(.usa-button) {\n  padding-left: 3rem;\n}\n.usa-language__submenu .usa-language__submenu .usa-language__submenu a:not(.usa-button) {\n  padding-left: 4rem;\n}\n.usa-language__submenu[aria-hidden=true] {\n  display: none;\n}\n.usa-language__submenu .usa-language__submenu-item a {\n  color: white;\n  display: block;\n  line-height: 1.3;\n  padding: 0;\n  padding: 0.5rem;\n  text-decoration: none;\n}\n.usa-language__submenu .usa-language__submenu-item a:focus {\n  outline-offset: -0.25rem;\n}\n.usa-language__submenu .usa-language__submenu-item a:hover {\n  color: white;\n  text-decoration: underline;\n}\n\n.usa-language__submenu-list {\n  margin-bottom: 0;\n  margin-top: 0;\n  list-style-type: none;\n  padding-left: 0;\n}\n.usa-language__submenu-list > li {\n  margin-bottom: 0;\n  max-width: unset;\n}\n.usa-language__submenu-list .usa-language__submenu-list-item {\n  margin: 0;\n  font-size: 0.93rem;\n}\n.usa-language__submenu-list .usa-language__submenu-list-item a {\n  line-height: 1.3;\n}\n\n.usa-layout-docs__sidenav {\n  padding-top: 2rem;\n}\n@media all and (min-width: 64em) {\n  .usa-layout-docs__sidenav {\n    padding-top: 0;\n  }\n}\n\n/* stylelint-disable */\n.grid-container {\n  margin-left: auto;\n  margin-right: auto;\n  max-width: 64rem;\n  padding-left: 1rem;\n  padding-right: 1rem;\n}\n@media all and (min-width: 64em) {\n  .grid-container {\n    padding-left: 2rem;\n    padding-right: 2rem;\n  }\n}\n\n.grid-container-card {\n  margin-left: auto;\n  margin-right: auto;\n  max-width: 10rem;\n  padding-left: 1rem;\n  padding-right: 1rem;\n}\n@media all and (min-width: 64em) {\n  .grid-container-card {\n    padding-left: 2rem;\n    padding-right: 2rem;\n  }\n}\n\n.grid-container-card-lg {\n  margin-left: auto;\n  margin-right: auto;\n  max-width: 15rem;\n  padding-left: 1rem;\n  padding-right: 1rem;\n}\n@media all and (min-width: 64em) {\n  .grid-container-card-lg {\n    padding-left: 2rem;\n    padding-right: 2rem;\n  }\n}\n\n.grid-container-mobile {\n  margin-left: auto;\n  margin-right: auto;\n  max-width: 20rem;\n  padding-left: 1rem;\n  padding-right: 1rem;\n}\n@media all and (min-width: 64em) {\n  .grid-container-mobile {\n    padding-left: 2rem;\n    padding-right: 2rem;\n  }\n}\n\n.grid-container-mobile-lg {\n  margin-left: auto;\n  margin-right: auto;\n  max-width: 30rem;\n  padding-left: 1rem;\n  padding-right: 1rem;\n}\n@media all and (min-width: 64em) {\n  .grid-container-mobile-lg {\n    padding-left: 2rem;\n    padding-right: 2rem;\n  }\n}\n\n.grid-container-tablet {\n  margin-left: auto;\n  margin-right: auto;\n  max-width: 40rem;\n  padding-left: 1rem;\n  padding-right: 1rem;\n}\n@media all and (min-width: 64em) {\n  .grid-container-tablet {\n    padding-left: 2rem;\n    padding-right: 2rem;\n  }\n}\n\n.grid-container-tablet-lg {\n  margin-left: auto;\n  margin-right: auto;\n  max-width: 55rem;\n  padding-left: 1rem;\n  padding-right: 1rem;\n}\n@media all and (min-width: 64em) {\n  .grid-container-tablet-lg {\n    padding-left: 2rem;\n    padding-right: 2rem;\n  }\n}\n\n.grid-container-desktop {\n  margin-left: auto;\n  margin-right: auto;\n  max-width: 64rem;\n  padding-left: 1rem;\n  padding-right: 1rem;\n}\n@media all and (min-width: 64em) {\n  .grid-container-desktop {\n    padding-left: 2rem;\n    padding-right: 2rem;\n  }\n}\n\n.grid-container-desktop-lg {\n  margin-left: auto;\n  margin-right: auto;\n  max-width: 75rem;\n  padding-left: 1rem;\n  padding-right: 1rem;\n}\n@media all and (min-width: 64em) {\n  .grid-container-desktop-lg {\n    padding-left: 2rem;\n    padding-right: 2rem;\n  }\n}\n\n.grid-container-widescreen {\n  margin-left: auto;\n  margin-right: auto;\n  max-width: 87.5rem;\n  padding-left: 1rem;\n  padding-right: 1rem;\n}\n@media all and (min-width: 64em) {\n  .grid-container-widescreen {\n    padding-left: 2rem;\n    padding-right: 2rem;\n  }\n}\n\n@media all and (min-width: 30em) {\n  .mobile-lg\\:grid-container {\n    margin-left: auto;\n    margin-right: auto;\n    max-width: 64rem;\n    padding-left: 1rem;\n    padding-right: 1rem;\n  }\n}\n@media all and (min-width: 30em) and (min-width: 64em) {\n  .mobile-lg\\:grid-container {\n    padding-left: 2rem;\n    padding-right: 2rem;\n  }\n}\n@media all and (min-width: 30em) {\n  .mobile-lg\\:grid-container-card {\n    margin-left: auto;\n    margin-right: auto;\n    max-width: 10rem;\n    padding-left: 1rem;\n    padding-right: 1rem;\n  }\n}\n@media all and (min-width: 30em) and (min-width: 64em) {\n  .mobile-lg\\:grid-container-card {\n    padding-left: 2rem;\n    padding-right: 2rem;\n  }\n}\n@media all and (min-width: 30em) {\n  .mobile-lg\\:grid-container-card-lg {\n    margin-left: auto;\n    margin-right: auto;\n    max-width: 15rem;\n    padding-left: 1rem;\n    padding-right: 1rem;\n  }\n}\n@media all and (min-width: 30em) and (min-width: 64em) {\n  .mobile-lg\\:grid-container-card-lg {\n    padding-left: 2rem;\n    padding-right: 2rem;\n  }\n}\n@media all and (min-width: 30em) {\n  .mobile-lg\\:grid-container-mobile {\n    margin-left: auto;\n    margin-right: auto;\n    max-width: 20rem;\n    padding-left: 1rem;\n    padding-right: 1rem;\n  }\n}\n@media all and (min-width: 30em) and (min-width: 64em) {\n  .mobile-lg\\:grid-container-mobile {\n    padding-left: 2rem;\n    padding-right: 2rem;\n  }\n}\n@media all and (min-width: 30em) {\n  .mobile-lg\\:grid-container-mobile-lg {\n    margin-left: auto;\n    margin-right: auto;\n    max-width: 30rem;\n    padding-left: 1rem;\n    padding-right: 1rem;\n  }\n}\n@media all and (min-width: 30em) and (min-width: 64em) {\n  .mobile-lg\\:grid-container-mobile-lg {\n    padding-left: 2rem;\n    padding-right: 2rem;\n  }\n}\n@media all and (min-width: 30em) {\n  .mobile-lg\\:grid-container-tablet {\n    margin-left: auto;\n    margin-right: auto;\n    max-width: 40rem;\n    padding-left: 1rem;\n    padding-right: 1rem;\n  }\n}\n@media all and (min-width: 30em) and (min-width: 64em) {\n  .mobile-lg\\:grid-container-tablet {\n    padding-left: 2rem;\n    padding-right: 2rem;\n  }\n}\n@media all and (min-width: 30em) {\n  .mobile-lg\\:grid-container-tablet-lg {\n    margin-left: auto;\n    margin-right: auto;\n    max-width: 55rem;\n    padding-left: 1rem;\n    padding-right: 1rem;\n  }\n}\n@media all and (min-width: 30em) and (min-width: 64em) {\n  .mobile-lg\\:grid-container-tablet-lg {\n    padding-left: 2rem;\n    padding-right: 2rem;\n  }\n}\n@media all and (min-width: 30em) {\n  .mobile-lg\\:grid-container-desktop {\n    margin-left: auto;\n    margin-right: auto;\n    max-width: 64rem;\n    padding-left: 1rem;\n    padding-right: 1rem;\n  }\n}\n@media all and (min-width: 30em) and (min-width: 64em) {\n  .mobile-lg\\:grid-container-desktop {\n    padding-left: 2rem;\n    padding-right: 2rem;\n  }\n}\n@media all and (min-width: 30em) {\n  .mobile-lg\\:grid-container-desktop-lg {\n    margin-left: auto;\n    margin-right: auto;\n    max-width: 75rem;\n    padding-left: 1rem;\n    padding-right: 1rem;\n  }\n}\n@media all and (min-width: 30em) and (min-width: 64em) {\n  .mobile-lg\\:grid-container-desktop-lg {\n    padding-left: 2rem;\n    padding-right: 2rem;\n  }\n}\n@media all and (min-width: 30em) {\n  .mobile-lg\\:grid-container-widescreen {\n    margin-left: auto;\n    margin-right: auto;\n    max-width: 87.5rem;\n    padding-left: 1rem;\n    padding-right: 1rem;\n  }\n}\n@media all and (min-width: 30em) and (min-width: 64em) {\n  .mobile-lg\\:grid-container-widescreen {\n    padding-left: 2rem;\n    padding-right: 2rem;\n  }\n}\n@media all and (min-width: 40em) {\n  .tablet\\:grid-container {\n    margin-left: auto;\n    margin-right: auto;\n    max-width: 64rem;\n    padding-left: 1rem;\n    padding-right: 1rem;\n  }\n}\n@media all and (min-width: 40em) and (min-width: 64em) {\n  .tablet\\:grid-container {\n    padding-left: 2rem;\n    padding-right: 2rem;\n  }\n}\n@media all and (min-width: 40em) {\n  .tablet\\:grid-container-card {\n    margin-left: auto;\n    margin-right: auto;\n    max-width: 10rem;\n    padding-left: 1rem;\n    padding-right: 1rem;\n  }\n}\n@media all and (min-width: 40em) and (min-width: 64em) {\n  .tablet\\:grid-container-card {\n    padding-left: 2rem;\n    padding-right: 2rem;\n  }\n}\n@media all and (min-width: 40em) {\n  .tablet\\:grid-container-card-lg {\n    margin-left: auto;\n    margin-right: auto;\n    max-width: 15rem;\n    padding-left: 1rem;\n    padding-right: 1rem;\n  }\n}\n@media all and (min-width: 40em) and (min-width: 64em) {\n  .tablet\\:grid-container-card-lg {\n    padding-left: 2rem;\n    padding-right: 2rem;\n  }\n}\n@media all and (min-width: 40em) {\n  .tablet\\:grid-container-mobile {\n    margin-left: auto;\n    margin-right: auto;\n    max-width: 20rem;\n    padding-left: 1rem;\n    padding-right: 1rem;\n  }\n}\n@media all and (min-width: 40em) and (min-width: 64em) {\n  .tablet\\:grid-container-mobile {\n    padding-left: 2rem;\n    padding-right: 2rem;\n  }\n}\n@media all and (min-width: 40em) {\n  .tablet\\:grid-container-mobile-lg {\n    margin-left: auto;\n    margin-right: auto;\n    max-width: 30rem;\n    padding-left: 1rem;\n    padding-right: 1rem;\n  }\n}\n@media all and (min-width: 40em) and (min-width: 64em) {\n  .tablet\\:grid-container-mobile-lg {\n    padding-left: 2rem;\n    padding-right: 2rem;\n  }\n}\n@media all and (min-width: 40em) {\n  .tablet\\:grid-container-tablet {\n    margin-left: auto;\n    margin-right: auto;\n    max-width: 40rem;\n    padding-left: 1rem;\n    padding-right: 1rem;\n  }\n}\n@media all and (min-width: 40em) and (min-width: 64em) {\n  .tablet\\:grid-container-tablet {\n    padding-left: 2rem;\n    padding-right: 2rem;\n  }\n}\n@media all and (min-width: 40em) {\n  .tablet\\:grid-container-tablet-lg {\n    margin-left: auto;\n    margin-right: auto;\n    max-width: 55rem;\n    padding-left: 1rem;\n    padding-right: 1rem;\n  }\n}\n@media all and (min-width: 40em) and (min-width: 64em) {\n  .tablet\\:grid-container-tablet-lg {\n    padding-left: 2rem;\n    padding-right: 2rem;\n  }\n}\n@media all and (min-width: 40em) {\n  .tablet\\:grid-container-desktop {\n    margin-left: auto;\n    margin-right: auto;\n    max-width: 64rem;\n    padding-left: 1rem;\n    padding-right: 1rem;\n  }\n}\n@media all and (min-width: 40em) and (min-width: 64em) {\n  .tablet\\:grid-container-desktop {\n    padding-left: 2rem;\n    padding-right: 2rem;\n  }\n}\n@media all and (min-width: 40em) {\n  .tablet\\:grid-container-desktop-lg {\n    margin-left: auto;\n    margin-right: auto;\n    max-width: 75rem;\n    padding-left: 1rem;\n    padding-right: 1rem;\n  }\n}\n@media all and (min-width: 40em) and (min-width: 64em) {\n  .tablet\\:grid-container-desktop-lg {\n    padding-left: 2rem;\n    padding-right: 2rem;\n  }\n}\n@media all and (min-width: 40em) {\n  .tablet\\:grid-container-widescreen {\n    margin-left: auto;\n    margin-right: auto;\n    max-width: 87.5rem;\n    padding-left: 1rem;\n    padding-right: 1rem;\n  }\n}\n@media all and (min-width: 40em) and (min-width: 64em) {\n  .tablet\\:grid-container-widescreen {\n    padding-left: 2rem;\n    padding-right: 2rem;\n  }\n}\n@media all and (min-width: 64em) {\n  .desktop\\:grid-container {\n    margin-left: auto;\n    margin-right: auto;\n    max-width: 64rem;\n    padding-left: 1rem;\n    padding-right: 1rem;\n  }\n}\n@media all and (min-width: 64em) and (min-width: 64em) {\n  .desktop\\:grid-container {\n    padding-left: 2rem;\n    padding-right: 2rem;\n  }\n}\n@media all and (min-width: 64em) {\n  .desktop\\:grid-container-card {\n    margin-left: auto;\n    margin-right: auto;\n    max-width: 10rem;\n    padding-left: 1rem;\n    padding-right: 1rem;\n  }\n}\n@media all and (min-width: 64em) and (min-width: 64em) {\n  .desktop\\:grid-container-card {\n    padding-left: 2rem;\n    padding-right: 2rem;\n  }\n}\n@media all and (min-width: 64em) {\n  .desktop\\:grid-container-card-lg {\n    margin-left: auto;\n    margin-right: auto;\n    max-width: 15rem;\n    padding-left: 1rem;\n    padding-right: 1rem;\n  }\n}\n@media all and (min-width: 64em) and (min-width: 64em) {\n  .desktop\\:grid-container-card-lg {\n    padding-left: 2rem;\n    padding-right: 2rem;\n  }\n}\n@media all and (min-width: 64em) {\n  .desktop\\:grid-container-mobile {\n    margin-left: auto;\n    margin-right: auto;\n    max-width: 20rem;\n    padding-left: 1rem;\n    padding-right: 1rem;\n  }\n}\n@media all and (min-width: 64em) and (min-width: 64em) {\n  .desktop\\:grid-container-mobile {\n    padding-left: 2rem;\n    padding-right: 2rem;\n  }\n}\n@media all and (min-width: 64em) {\n  .desktop\\:grid-container-mobile-lg {\n    margin-left: auto;\n    margin-right: auto;\n    max-width: 30rem;\n    padding-left: 1rem;\n    padding-right: 1rem;\n  }\n}\n@media all and (min-width: 64em) and (min-width: 64em) {\n  .desktop\\:grid-container-mobile-lg {\n    padding-left: 2rem;\n    padding-right: 2rem;\n  }\n}\n@media all and (min-width: 64em) {\n  .desktop\\:grid-container-tablet {\n    margin-left: auto;\n    margin-right: auto;\n    max-width: 40rem;\n    padding-left: 1rem;\n    padding-right: 1rem;\n  }\n}\n@media all and (min-width: 64em) and (min-width: 64em) {\n  .desktop\\:grid-container-tablet {\n    padding-left: 2rem;\n    padding-right: 2rem;\n  }\n}\n@media all and (min-width: 64em) {\n  .desktop\\:grid-container-tablet-lg {\n    margin-left: auto;\n    margin-right: auto;\n    max-width: 55rem;\n    padding-left: 1rem;\n    padding-right: 1rem;\n  }\n}\n@media all and (min-width: 64em) and (min-width: 64em) {\n  .desktop\\:grid-container-tablet-lg {\n    padding-left: 2rem;\n    padding-right: 2rem;\n  }\n}\n@media all and (min-width: 64em) {\n  .desktop\\:grid-container-desktop {\n    margin-left: auto;\n    margin-right: auto;\n    max-width: 64rem;\n    padding-left: 1rem;\n    padding-right: 1rem;\n  }\n}\n@media all and (min-width: 64em) and (min-width: 64em) {\n  .desktop\\:grid-container-desktop {\n    padding-left: 2rem;\n    padding-right: 2rem;\n  }\n}\n@media all and (min-width: 64em) {\n  .desktop\\:grid-container-desktop-lg {\n    margin-left: auto;\n    margin-right: auto;\n    max-width: 75rem;\n    padding-left: 1rem;\n    padding-right: 1rem;\n  }\n}\n@media all and (min-width: 64em) and (min-width: 64em) {\n  .desktop\\:grid-container-desktop-lg {\n    padding-left: 2rem;\n    padding-right: 2rem;\n  }\n}\n@media all and (min-width: 64em) {\n  .desktop\\:grid-container-widescreen {\n    margin-left: auto;\n    margin-right: auto;\n    max-width: 87.5rem;\n    padding-left: 1rem;\n    padding-right: 1rem;\n  }\n}\n@media all and (min-width: 64em) and (min-width: 64em) {\n  .desktop\\:grid-container-widescreen {\n    padding-left: 2rem;\n    padding-right: 2rem;\n  }\n}\n.grid-row {\n  display: flex;\n  flex-wrap: wrap;\n}\n.grid-row.grid-gap {\n  margin-left: -0.5rem;\n  margin-right: -0.5rem;\n}\n.grid-row.grid-gap > * {\n  padding-left: 0.5rem;\n  padding-right: 0.5rem;\n}\n@media all and (min-width: 64em) {\n  .grid-row.grid-gap {\n    margin-left: -1rem;\n    margin-right: -1rem;\n  }\n  .grid-row.grid-gap > * {\n    padding-left: 1rem;\n    padding-right: 1rem;\n  }\n}\n.grid-row.grid-gap-0 {\n  margin-left: 0;\n  margin-right: 0;\n}\n.grid-row.grid-gap-0 > * {\n  padding-left: 0;\n  padding-right: 0;\n}\n.grid-row.grid-gap-2px {\n  margin-left: -1px;\n  margin-right: -1px;\n}\n.grid-row.grid-gap-2px > * {\n  padding-left: 1px;\n  padding-right: 1px;\n}\n.grid-row.grid-gap-05 {\n  margin-left: -2px;\n  margin-right: -2px;\n}\n.grid-row.grid-gap-05 > * {\n  padding-left: 2px;\n  padding-right: 2px;\n}\n.grid-row.grid-gap-1 {\n  margin-left: -0.25rem;\n  margin-right: -0.25rem;\n}\n.grid-row.grid-gap-1 > * {\n  padding-left: 0.25rem;\n  padding-right: 0.25rem;\n}\n.grid-row.grid-gap-2 {\n  margin-left: -0.5rem;\n  margin-right: -0.5rem;\n}\n.grid-row.grid-gap-2 > * {\n  padding-left: 0.5rem;\n  padding-right: 0.5rem;\n}\n.grid-row.grid-gap-3 {\n  margin-left: -0.75rem;\n  margin-right: -0.75rem;\n}\n.grid-row.grid-gap-3 > * {\n  padding-left: 0.75rem;\n  padding-right: 0.75rem;\n}\n.grid-row.grid-gap-4 {\n  margin-left: -1rem;\n  margin-right: -1rem;\n}\n.grid-row.grid-gap-4 > * {\n  padding-left: 1rem;\n  padding-right: 1rem;\n}\n.grid-row.grid-gap-5 {\n  margin-left: -1.25rem;\n  margin-right: -1.25rem;\n}\n.grid-row.grid-gap-5 > * {\n  padding-left: 1.25rem;\n  padding-right: 1.25rem;\n}\n.grid-row.grid-gap-6 {\n  margin-left: -1.5rem;\n  margin-right: -1.5rem;\n}\n.grid-row.grid-gap-6 > * {\n  padding-left: 1.5rem;\n  padding-right: 1.5rem;\n}\n.grid-row.grid-gap-sm {\n  margin-left: -1px;\n  margin-right: -1px;\n}\n.grid-row.grid-gap-sm > * {\n  padding-left: 1px;\n  padding-right: 1px;\n}\n.grid-row.grid-gap-md {\n  margin-left: -0.5rem;\n  margin-right: -0.5rem;\n}\n.grid-row.grid-gap-md > * {\n  padding-left: 0.5rem;\n  padding-right: 0.5rem;\n}\n.grid-row.grid-gap-lg {\n  margin-left: -0.75rem;\n  margin-right: -0.75rem;\n}\n.grid-row.grid-gap-lg > * {\n  padding-left: 0.75rem;\n  padding-right: 0.75rem;\n}\n@media all and (min-width: 30em) {\n  .grid-row.mobile-lg\\:grid-gap-0 {\n    margin-left: 0;\n    margin-right: 0;\n  }\n  .grid-row.mobile-lg\\:grid-gap-0 > * {\n    padding-left: 0;\n    padding-right: 0;\n  }\n  .grid-row.mobile-lg\\:grid-gap-2px {\n    margin-left: -1px;\n    margin-right: -1px;\n  }\n  .grid-row.mobile-lg\\:grid-gap-2px > * {\n    padding-left: 1px;\n    padding-right: 1px;\n  }\n  .grid-row.mobile-lg\\:grid-gap-05 {\n    margin-left: -2px;\n    margin-right: -2px;\n  }\n  .grid-row.mobile-lg\\:grid-gap-05 > * {\n    padding-left: 2px;\n    padding-right: 2px;\n  }\n  .grid-row.mobile-lg\\:grid-gap-1 {\n    margin-left: -0.25rem;\n    margin-right: -0.25rem;\n  }\n  .grid-row.mobile-lg\\:grid-gap-1 > * {\n    padding-left: 0.25rem;\n    padding-right: 0.25rem;\n  }\n  .grid-row.mobile-lg\\:grid-gap-2 {\n    margin-left: -0.5rem;\n    margin-right: -0.5rem;\n  }\n  .grid-row.mobile-lg\\:grid-gap-2 > * {\n    padding-left: 0.5rem;\n    padding-right: 0.5rem;\n  }\n  .grid-row.mobile-lg\\:grid-gap-3 {\n    margin-left: -0.75rem;\n    margin-right: -0.75rem;\n  }\n  .grid-row.mobile-lg\\:grid-gap-3 > * {\n    padding-left: 0.75rem;\n    padding-right: 0.75rem;\n  }\n  .grid-row.mobile-lg\\:grid-gap-4 {\n    margin-left: -1rem;\n    margin-right: -1rem;\n  }\n  .grid-row.mobile-lg\\:grid-gap-4 > * {\n    padding-left: 1rem;\n    padding-right: 1rem;\n  }\n  .grid-row.mobile-lg\\:grid-gap-5 {\n    margin-left: -1.25rem;\n    margin-right: -1.25rem;\n  }\n  .grid-row.mobile-lg\\:grid-gap-5 > * {\n    padding-left: 1.25rem;\n    padding-right: 1.25rem;\n  }\n  .grid-row.mobile-lg\\:grid-gap-6 {\n    margin-left: -1.5rem;\n    margin-right: -1.5rem;\n  }\n  .grid-row.mobile-lg\\:grid-gap-6 > * {\n    padding-left: 1.5rem;\n    padding-right: 1.5rem;\n  }\n  .grid-row.mobile-lg\\:grid-gap-sm {\n    margin-left: -1px;\n    margin-right: -1px;\n  }\n  .grid-row.mobile-lg\\:grid-gap-sm > * {\n    padding-left: 1px;\n    padding-right: 1px;\n  }\n  .grid-row.mobile-lg\\:grid-gap-md {\n    margin-left: -0.5rem;\n    margin-right: -0.5rem;\n  }\n  .grid-row.mobile-lg\\:grid-gap-md > * {\n    padding-left: 0.5rem;\n    padding-right: 0.5rem;\n  }\n  .grid-row.mobile-lg\\:grid-gap-lg {\n    margin-left: -0.75rem;\n    margin-right: -0.75rem;\n  }\n  .grid-row.mobile-lg\\:grid-gap-lg > * {\n    padding-left: 0.75rem;\n    padding-right: 0.75rem;\n  }\n}\n@media all and (min-width: 40em) {\n  .grid-row.tablet\\:grid-gap-0 {\n    margin-left: 0;\n    margin-right: 0;\n  }\n  .grid-row.tablet\\:grid-gap-0 > * {\n    padding-left: 0;\n    padding-right: 0;\n  }\n  .grid-row.tablet\\:grid-gap-2px {\n    margin-left: -1px;\n    margin-right: -1px;\n  }\n  .grid-row.tablet\\:grid-gap-2px > * {\n    padding-left: 1px;\n    padding-right: 1px;\n  }\n  .grid-row.tablet\\:grid-gap-05 {\n    margin-left: -2px;\n    margin-right: -2px;\n  }\n  .grid-row.tablet\\:grid-gap-05 > * {\n    padding-left: 2px;\n    padding-right: 2px;\n  }\n  .grid-row.tablet\\:grid-gap-1 {\n    margin-left: -0.25rem;\n    margin-right: -0.25rem;\n  }\n  .grid-row.tablet\\:grid-gap-1 > * {\n    padding-left: 0.25rem;\n    padding-right: 0.25rem;\n  }\n  .grid-row.tablet\\:grid-gap-2 {\n    margin-left: -0.5rem;\n    margin-right: -0.5rem;\n  }\n  .grid-row.tablet\\:grid-gap-2 > * {\n    padding-left: 0.5rem;\n    padding-right: 0.5rem;\n  }\n  .grid-row.tablet\\:grid-gap-3 {\n    margin-left: -0.75rem;\n    margin-right: -0.75rem;\n  }\n  .grid-row.tablet\\:grid-gap-3 > * {\n    padding-left: 0.75rem;\n    padding-right: 0.75rem;\n  }\n  .grid-row.tablet\\:grid-gap-4 {\n    margin-left: -1rem;\n    margin-right: -1rem;\n  }\n  .grid-row.tablet\\:grid-gap-4 > * {\n    padding-left: 1rem;\n    padding-right: 1rem;\n  }\n  .grid-row.tablet\\:grid-gap-5 {\n    margin-left: -1.25rem;\n    margin-right: -1.25rem;\n  }\n  .grid-row.tablet\\:grid-gap-5 > * {\n    padding-left: 1.25rem;\n    padding-right: 1.25rem;\n  }\n  .grid-row.tablet\\:grid-gap-6 {\n    margin-left: -1.5rem;\n    margin-right: -1.5rem;\n  }\n  .grid-row.tablet\\:grid-gap-6 > * {\n    padding-left: 1.5rem;\n    padding-right: 1.5rem;\n  }\n  .grid-row.tablet\\:grid-gap-sm {\n    margin-left: -1px;\n    margin-right: -1px;\n  }\n  .grid-row.tablet\\:grid-gap-sm > * {\n    padding-left: 1px;\n    padding-right: 1px;\n  }\n  .grid-row.tablet\\:grid-gap-md {\n    margin-left: -0.5rem;\n    margin-right: -0.5rem;\n  }\n  .grid-row.tablet\\:grid-gap-md > * {\n    padding-left: 0.5rem;\n    padding-right: 0.5rem;\n  }\n  .grid-row.tablet\\:grid-gap-lg {\n    margin-left: -0.75rem;\n    margin-right: -0.75rem;\n  }\n  .grid-row.tablet\\:grid-gap-lg > * {\n    padding-left: 0.75rem;\n    padding-right: 0.75rem;\n  }\n}\n@media all and (min-width: 64em) {\n  .grid-row.desktop\\:grid-gap-0 {\n    margin-left: 0;\n    margin-right: 0;\n  }\n  .grid-row.desktop\\:grid-gap-0 > * {\n    padding-left: 0;\n    padding-right: 0;\n  }\n  .grid-row.desktop\\:grid-gap-2px {\n    margin-left: -1px;\n    margin-right: -1px;\n  }\n  .grid-row.desktop\\:grid-gap-2px > * {\n    padding-left: 1px;\n    padding-right: 1px;\n  }\n  .grid-row.desktop\\:grid-gap-05 {\n    margin-left: -2px;\n    margin-right: -2px;\n  }\n  .grid-row.desktop\\:grid-gap-05 > * {\n    padding-left: 2px;\n    padding-right: 2px;\n  }\n  .grid-row.desktop\\:grid-gap-1 {\n    margin-left: -0.25rem;\n    margin-right: -0.25rem;\n  }\n  .grid-row.desktop\\:grid-gap-1 > * {\n    padding-left: 0.25rem;\n    padding-right: 0.25rem;\n  }\n  .grid-row.desktop\\:grid-gap-2 {\n    margin-left: -0.5rem;\n    margin-right: -0.5rem;\n  }\n  .grid-row.desktop\\:grid-gap-2 > * {\n    padding-left: 0.5rem;\n    padding-right: 0.5rem;\n  }\n  .grid-row.desktop\\:grid-gap-3 {\n    margin-left: -0.75rem;\n    margin-right: -0.75rem;\n  }\n  .grid-row.desktop\\:grid-gap-3 > * {\n    padding-left: 0.75rem;\n    padding-right: 0.75rem;\n  }\n  .grid-row.desktop\\:grid-gap-4 {\n    margin-left: -1rem;\n    margin-right: -1rem;\n  }\n  .grid-row.desktop\\:grid-gap-4 > * {\n    padding-left: 1rem;\n    padding-right: 1rem;\n  }\n  .grid-row.desktop\\:grid-gap-5 {\n    margin-left: -1.25rem;\n    margin-right: -1.25rem;\n  }\n  .grid-row.desktop\\:grid-gap-5 > * {\n    padding-left: 1.25rem;\n    padding-right: 1.25rem;\n  }\n  .grid-row.desktop\\:grid-gap-6 {\n    margin-left: -1.5rem;\n    margin-right: -1.5rem;\n  }\n  .grid-row.desktop\\:grid-gap-6 > * {\n    padding-left: 1.5rem;\n    padding-right: 1.5rem;\n  }\n  .grid-row.desktop\\:grid-gap-sm {\n    margin-left: -1px;\n    margin-right: -1px;\n  }\n  .grid-row.desktop\\:grid-gap-sm > * {\n    padding-left: 1px;\n    padding-right: 1px;\n  }\n  .grid-row.desktop\\:grid-gap-md {\n    margin-left: -0.5rem;\n    margin-right: -0.5rem;\n  }\n  .grid-row.desktop\\:grid-gap-md > * {\n    padding-left: 0.5rem;\n    padding-right: 0.5rem;\n  }\n  .grid-row.desktop\\:grid-gap-lg {\n    margin-left: -0.75rem;\n    margin-right: -0.75rem;\n  }\n  .grid-row.desktop\\:grid-gap-lg > * {\n    padding-left: 0.75rem;\n    padding-right: 0.75rem;\n  }\n}\n\n[class*=grid-col] {\n  position: relative;\n  width: 100%;\n  box-sizing: border-box;\n}\n\n.grid-col {\n  flex: 1 1 0%;\n  width: auto;\n  max-width: 100%;\n  min-width: 1px;\n}\n\n.grid-col-auto {\n  flex: 0 1 auto;\n  width: auto;\n  max-width: 100%;\n}\n\n.grid-col-fill {\n  flex: 1 1 0%;\n  width: auto;\n  max-width: 100%;\n  min-width: 1px;\n}\n\n.grid-col-1 {\n  flex: 0 1 auto;\n  width: 8.3333333333%;\n}\n\n.grid-col-2 {\n  flex: 0 1 auto;\n  width: 16.6666666667%;\n}\n\n.grid-col-3 {\n  flex: 0 1 auto;\n  width: 25%;\n}\n\n.grid-col-4 {\n  flex: 0 1 auto;\n  width: 33.3333333333%;\n}\n\n.grid-col-5 {\n  flex: 0 1 auto;\n  width: 41.6666666667%;\n}\n\n.grid-col-6 {\n  flex: 0 1 auto;\n  width: 50%;\n}\n\n.grid-col-7 {\n  flex: 0 1 auto;\n  width: 58.3333333333%;\n}\n\n.grid-col-8 {\n  flex: 0 1 auto;\n  width: 66.6666666667%;\n}\n\n.grid-col-9 {\n  flex: 0 1 auto;\n  width: 75%;\n}\n\n.grid-col-10 {\n  flex: 0 1 auto;\n  width: 83.3333333333%;\n}\n\n.grid-col-11 {\n  flex: 0 1 auto;\n  width: 91.6666666667%;\n}\n\n.grid-col-12 {\n  flex: 0 1 auto;\n  width: 100%;\n}\n\n@media all and (min-width: 30em) {\n  .mobile-lg\\:grid-col {\n    flex: 1 1 0%;\n    width: auto;\n    max-width: 100%;\n    min-width: 1px;\n  }\n  .mobile-lg\\:grid-col-fill {\n    flex: 1 1 0%;\n    width: auto;\n    max-width: 100%;\n    min-width: 1px;\n  }\n  .mobile-lg\\:grid-col-auto {\n    flex: 0 1 auto;\n    width: auto;\n    max-width: 100%;\n  }\n  .mobile-lg\\:grid-col-1 {\n    flex: 0 1 auto;\n    width: 8.3333333333%;\n  }\n  .mobile-lg\\:grid-col-2 {\n    flex: 0 1 auto;\n    width: 16.6666666667%;\n  }\n  .mobile-lg\\:grid-col-3 {\n    flex: 0 1 auto;\n    width: 25%;\n  }\n  .mobile-lg\\:grid-col-4 {\n    flex: 0 1 auto;\n    width: 33.3333333333%;\n  }\n  .mobile-lg\\:grid-col-5 {\n    flex: 0 1 auto;\n    width: 41.6666666667%;\n  }\n  .mobile-lg\\:grid-col-6 {\n    flex: 0 1 auto;\n    width: 50%;\n  }\n  .mobile-lg\\:grid-col-7 {\n    flex: 0 1 auto;\n    width: 58.3333333333%;\n  }\n  .mobile-lg\\:grid-col-8 {\n    flex: 0 1 auto;\n    width: 66.6666666667%;\n  }\n  .mobile-lg\\:grid-col-9 {\n    flex: 0 1 auto;\n    width: 75%;\n  }\n  .mobile-lg\\:grid-col-10 {\n    flex: 0 1 auto;\n    width: 83.3333333333%;\n  }\n  .mobile-lg\\:grid-col-11 {\n    flex: 0 1 auto;\n    width: 91.6666666667%;\n  }\n  .mobile-lg\\:grid-col-12 {\n    flex: 0 1 auto;\n    width: 100%;\n  }\n}\n@media all and (min-width: 40em) {\n  .tablet\\:grid-col {\n    flex: 1 1 0%;\n    width: auto;\n    max-width: 100%;\n    min-width: 1px;\n  }\n  .tablet\\:grid-col-fill {\n    flex: 1 1 0%;\n    width: auto;\n    max-width: 100%;\n    min-width: 1px;\n  }\n  .tablet\\:grid-col-auto {\n    flex: 0 1 auto;\n    width: auto;\n    max-width: 100%;\n  }\n  .tablet\\:grid-col-1 {\n    flex: 0 1 auto;\n    width: 8.3333333333%;\n  }\n  .tablet\\:grid-col-2 {\n    flex: 0 1 auto;\n    width: 16.6666666667%;\n  }\n  .tablet\\:grid-col-3 {\n    flex: 0 1 auto;\n    width: 25%;\n  }\n  .tablet\\:grid-col-4 {\n    flex: 0 1 auto;\n    width: 33.3333333333%;\n  }\n  .tablet\\:grid-col-5 {\n    flex: 0 1 auto;\n    width: 41.6666666667%;\n  }\n  .tablet\\:grid-col-6 {\n    flex: 0 1 auto;\n    width: 50%;\n  }\n  .tablet\\:grid-col-7 {\n    flex: 0 1 auto;\n    width: 58.3333333333%;\n  }\n  .tablet\\:grid-col-8 {\n    flex: 0 1 auto;\n    width: 66.6666666667%;\n  }\n  .tablet\\:grid-col-9 {\n    flex: 0 1 auto;\n    width: 75%;\n  }\n  .tablet\\:grid-col-10 {\n    flex: 0 1 auto;\n    width: 83.3333333333%;\n  }\n  .tablet\\:grid-col-11 {\n    flex: 0 1 auto;\n    width: 91.6666666667%;\n  }\n  .tablet\\:grid-col-12 {\n    flex: 0 1 auto;\n    width: 100%;\n  }\n}\n@media all and (min-width: 64em) {\n  .desktop\\:grid-col {\n    flex: 1 1 0%;\n    width: auto;\n    max-width: 100%;\n    min-width: 1px;\n  }\n  .desktop\\:grid-col-fill {\n    flex: 1 1 0%;\n    width: auto;\n    max-width: 100%;\n    min-width: 1px;\n  }\n  .desktop\\:grid-col-auto {\n    flex: 0 1 auto;\n    width: auto;\n    max-width: 100%;\n  }\n  .desktop\\:grid-col-1 {\n    flex: 0 1 auto;\n    width: 8.3333333333%;\n  }\n  .desktop\\:grid-col-2 {\n    flex: 0 1 auto;\n    width: 16.6666666667%;\n  }\n  .desktop\\:grid-col-3 {\n    flex: 0 1 auto;\n    width: 25%;\n  }\n  .desktop\\:grid-col-4 {\n    flex: 0 1 auto;\n    width: 33.3333333333%;\n  }\n  .desktop\\:grid-col-5 {\n    flex: 0 1 auto;\n    width: 41.6666666667%;\n  }\n  .desktop\\:grid-col-6 {\n    flex: 0 1 auto;\n    width: 50%;\n  }\n  .desktop\\:grid-col-7 {\n    flex: 0 1 auto;\n    width: 58.3333333333%;\n  }\n  .desktop\\:grid-col-8 {\n    flex: 0 1 auto;\n    width: 66.6666666667%;\n  }\n  .desktop\\:grid-col-9 {\n    flex: 0 1 auto;\n    width: 75%;\n  }\n  .desktop\\:grid-col-10 {\n    flex: 0 1 auto;\n    width: 83.3333333333%;\n  }\n  .desktop\\:grid-col-11 {\n    flex: 0 1 auto;\n    width: 91.6666666667%;\n  }\n  .desktop\\:grid-col-12 {\n    flex: 0 1 auto;\n    width: 100%;\n  }\n}\n.grid-offset-1 {\n  margin-left: 8.3333333333%;\n}\n\n.grid-offset-2 {\n  margin-left: 16.6666666667%;\n}\n\n.grid-offset-3 {\n  margin-left: 25%;\n}\n\n.grid-offset-4 {\n  margin-left: 33.3333333333%;\n}\n\n.grid-offset-5 {\n  margin-left: 41.6666666667%;\n}\n\n.grid-offset-6 {\n  margin-left: 50%;\n}\n\n.grid-offset-7 {\n  margin-left: 58.3333333333%;\n}\n\n.grid-offset-8 {\n  margin-left: 66.6666666667%;\n}\n\n.grid-offset-9 {\n  margin-left: 75%;\n}\n\n.grid-offset-10 {\n  margin-left: 83.3333333333%;\n}\n\n.grid-offset-11 {\n  margin-left: 91.6666666667%;\n}\n\n.grid-offset-12 {\n  margin-left: 100%;\n}\n\n.grid-offset-none {\n  margin-left: 0;\n}\n\n@media all and (min-width: 30em) {\n  .mobile-lg\\:grid-offset-1 {\n    margin-left: 8.3333333333%;\n  }\n}\n@media all and (min-width: 30em) {\n  .mobile-lg\\:grid-offset-2 {\n    margin-left: 16.6666666667%;\n  }\n}\n@media all and (min-width: 30em) {\n  .mobile-lg\\:grid-offset-3 {\n    margin-left: 25%;\n  }\n}\n@media all and (min-width: 30em) {\n  .mobile-lg\\:grid-offset-4 {\n    margin-left: 33.3333333333%;\n  }\n}\n@media all and (min-width: 30em) {\n  .mobile-lg\\:grid-offset-5 {\n    margin-left: 41.6666666667%;\n  }\n}\n@media all and (min-width: 30em) {\n  .mobile-lg\\:grid-offset-6 {\n    margin-left: 50%;\n  }\n}\n@media all and (min-width: 30em) {\n  .mobile-lg\\:grid-offset-7 {\n    margin-left: 58.3333333333%;\n  }\n}\n@media all and (min-width: 30em) {\n  .mobile-lg\\:grid-offset-8 {\n    margin-left: 66.6666666667%;\n  }\n}\n@media all and (min-width: 30em) {\n  .mobile-lg\\:grid-offset-9 {\n    margin-left: 75%;\n  }\n}\n@media all and (min-width: 30em) {\n  .mobile-lg\\:grid-offset-10 {\n    margin-left: 83.3333333333%;\n  }\n}\n@media all and (min-width: 30em) {\n  .mobile-lg\\:grid-offset-11 {\n    margin-left: 91.6666666667%;\n  }\n}\n@media all and (min-width: 30em) {\n  .mobile-lg\\:grid-offset-12 {\n    margin-left: 100%;\n  }\n}\n@media all and (min-width: 30em) {\n  .mobile-lg\\:grid-offset-none {\n    margin-left: 0;\n  }\n}\n@media all and (min-width: 40em) {\n  .tablet\\:grid-offset-1 {\n    margin-left: 8.3333333333%;\n  }\n}\n@media all and (min-width: 40em) {\n  .tablet\\:grid-offset-2 {\n    margin-left: 16.6666666667%;\n  }\n}\n@media all and (min-width: 40em) {\n  .tablet\\:grid-offset-3 {\n    margin-left: 25%;\n  }\n}\n@media all and (min-width: 40em) {\n  .tablet\\:grid-offset-4 {\n    margin-left: 33.3333333333%;\n  }\n}\n@media all and (min-width: 40em) {\n  .tablet\\:grid-offset-5 {\n    margin-left: 41.6666666667%;\n  }\n}\n@media all and (min-width: 40em) {\n  .tablet\\:grid-offset-6 {\n    margin-left: 50%;\n  }\n}\n@media all and (min-width: 40em) {\n  .tablet\\:grid-offset-7 {\n    margin-left: 58.3333333333%;\n  }\n}\n@media all and (min-width: 40em) {\n  .tablet\\:grid-offset-8 {\n    margin-left: 66.6666666667%;\n  }\n}\n@media all and (min-width: 40em) {\n  .tablet\\:grid-offset-9 {\n    margin-left: 75%;\n  }\n}\n@media all and (min-width: 40em) {\n  .tablet\\:grid-offset-10 {\n    margin-left: 83.3333333333%;\n  }\n}\n@media all and (min-width: 40em) {\n  .tablet\\:grid-offset-11 {\n    margin-left: 91.6666666667%;\n  }\n}\n@media all and (min-width: 40em) {\n  .tablet\\:grid-offset-12 {\n    margin-left: 100%;\n  }\n}\n@media all and (min-width: 40em) {\n  .tablet\\:grid-offset-none {\n    margin-left: 0;\n  }\n}\n@media all and (min-width: 64em) {\n  .desktop\\:grid-offset-1 {\n    margin-left: 8.3333333333%;\n  }\n}\n@media all and (min-width: 64em) {\n  .desktop\\:grid-offset-2 {\n    margin-left: 16.6666666667%;\n  }\n}\n@media all and (min-width: 64em) {\n  .desktop\\:grid-offset-3 {\n    margin-left: 25%;\n  }\n}\n@media all and (min-width: 64em) {\n  .desktop\\:grid-offset-4 {\n    margin-left: 33.3333333333%;\n  }\n}\n@media all and (min-width: 64em) {\n  .desktop\\:grid-offset-5 {\n    margin-left: 41.6666666667%;\n  }\n}\n@media all and (min-width: 64em) {\n  .desktop\\:grid-offset-6 {\n    margin-left: 50%;\n  }\n}\n@media all and (min-width: 64em) {\n  .desktop\\:grid-offset-7 {\n    margin-left: 58.3333333333%;\n  }\n}\n@media all and (min-width: 64em) {\n  .desktop\\:grid-offset-8 {\n    margin-left: 66.6666666667%;\n  }\n}\n@media all and (min-width: 64em) {\n  .desktop\\:grid-offset-9 {\n    margin-left: 75%;\n  }\n}\n@media all and (min-width: 64em) {\n  .desktop\\:grid-offset-10 {\n    margin-left: 83.3333333333%;\n  }\n}\n@media all and (min-width: 64em) {\n  .desktop\\:grid-offset-11 {\n    margin-left: 91.6666666667%;\n  }\n}\n@media all and (min-width: 64em) {\n  .desktop\\:grid-offset-12 {\n    margin-left: 100%;\n  }\n}\n@media all and (min-width: 64em) {\n  .desktop\\:grid-offset-none {\n    margin-left: 0;\n  }\n}\n/* stylelint-enable */\n.usa-media-block {\n  align-items: flex-start;\n  display: flex;\n}\n\n.usa-media-block__img {\n  flex-shrink: 0;\n  margin-right: 0.5rem;\n}\n\n.usa-media-block__body {\n  flex: 1 1 0%;\n}\n\n.usa-js-no-click {\n  pointer-events: none;\n  user-select: none;\n}\n.usa-js-no-click .usa-modal,\n.usa-js-no-click .usa-modal * {\n  pointer-events: auto;\n  user-select: text;\n}\n\n[data-open-modal] * {\n  pointer-events: none;\n}\n\n.usa-modal-wrapper {\n  text-align: center;\n  transition: opacity 0.15s ease-in-out;\n}\n.usa-modal-wrapper.is-hidden {\n  visibility: hidden;\n  opacity: 0;\n  position: fixed;\n}\n.usa-modal-wrapper.is-visible {\n  visibility: visible;\n  opacity: 1;\n  position: fixed;\n  z-index: 99999;\n}\n\n.usa-modal-overlay {\n  background: rgba(0, 0, 0, 0.7);\n  bottom: 0;\n  height: 100%;\n  left: 0;\n  overflow: scroll;\n  overflow-x: hidden;\n  padding: 1.5rem;\n  position: fixed;\n  scroll-behavior: smooth;\n  top: 0;\n  width: 100%;\n}\n.usa-modal-overlay:before {\n  content: \"\";\n  display: inline-block;\n  height: 100%;\n  vertical-align: middle;\n}\n.usa-modal-overlay[data-force-action=true] {\n  pointer-events: none;\n}\n.usa-modal-overlay[data-force-action=true] * {\n  pointer-events: auto;\n}\n\n.usa-js-loading .usa-modal-wrapper {\n  position: absolute;\n  left: -999em;\n  right: auto;\n}\n.usa-js-loading .usa-modal-wrapper:target {\n  position: static;\n}\n\n.usa-modal {\n  font-family: Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;\n  font-size: 1.06rem;\n  line-height: 1.5;\n  border-radius: 0.5rem;\n  background: white;\n  color: #1b1b1b;\n  display: inline-block;\n  margin: 1.25rem auto;\n  max-width: 30rem;\n  position: relative;\n  text-align: left;\n  vertical-align: middle;\n  width: 100%;\n}\n.usa-modal:focus {\n  outline: none;\n}\n\n.usa-modal__content {\n  display: flex;\n  flex-direction: column-reverse;\n  padding-top: 2rem;\n  width: 100%;\n}\n\n.usa-modal__main {\n  margin: 0 auto;\n  padding: 0.5rem 2rem 2rem;\n}\n\n.usa-modal-wrapper [data-close-modal] > .usa-icon,\n.usa-modal-wrapper [data-close-modal] > .usa-icon use {\n  pointer-events: none !important;\n}\n\n.usa-modal__close {\n  align-items: center;\n  align-self: flex-end;\n  background-color: transparent;\n  color: #71767a;\n  display: flex;\n  flex-shrink: 0;\n  font-size: 0.93rem;\n  margin: -2rem 0 0 auto;\n  padding: 0.25rem 0.25rem;\n  width: auto;\n}\n.usa-modal__close:hover, .usa-modal__close:active {\n  background-color: transparent;\n  color: #1b1b1b;\n}\n.usa-modal__close:focus {\n  outline-offset: 0;\n}\n.usa-modal__close .usa-icon {\n  height: 2rem;\n  margin: 2px 2px 0 0;\n  width: 2rem;\n}\n\n.usa-modal__heading {\n  font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n  font-size: 1.34rem;\n  line-height: 1.4;\n  margin-top: 0;\n}\n\n.usa-modal__footer {\n  margin-top: 1.5rem;\n}\n\n.usa-modal--lg {\n  max-width: 55rem;\n  width: 100%;\n}\n.usa-modal--lg .usa-modal__main {\n  padding-bottom: 4rem;\n  padding-top: 1.25rem;\n  width: 100%;\n  max-width: 40rem;\n}\n@media all and (min-width: 40em) {\n  .usa-modal--lg .usa-modal__heading {\n    font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n    font-size: 1.95rem;\n  }\n}\n\n.usa-js-modal--active {\n  overflow: hidden;\n}\n\n@keyframes slidein-left {\n  from {\n    transform: translateX(15rem);\n  }\n  to {\n    transform: translateX(0);\n  }\n}\n.usa-nav {\n  font-family: Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;\n  font-size: 1.06rem;\n  line-height: 0.9;\n}\n@media all and (max-width: 63.99em) {\n  .usa-nav {\n    position: absolute;\n    right: 0;\n    position: absolute;\n    bottom: 0;\n    top: 0;\n    position: fixed;\n    background: white;\n    border-right: 0;\n    display: none;\n    flex-direction: column;\n    overflow-y: auto;\n    padding: 1rem;\n    width: 15rem;\n    z-index: 500;\n  }\n  .usa-nav.is-visible {\n    animation: slidein-left 0.3s ease-in-out;\n    display: flex;\n  }\n}\n@media all and (min-width: 64em) {\n  .usa-nav {\n    float: right;\n    position: relative;\n  }\n}\n.usa-nav .usa-search {\n  margin-top: 1rem;\n}\n@media all and (min-width: 64em) {\n  .usa-nav .usa-search {\n    margin-left: 1rem;\n    margin-top: 0;\n  }\n}\n.usa-nav .usa-accordion {\n  font-family: Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;\n  font-size: 1.06rem;\n  line-height: 0.9;\n}\n\n@media all and (max-width: 63.99em) {\n  .usa-nav__primary {\n    margin-bottom: 0;\n    margin-top: 0;\n    list-style-type: none;\n    padding-left: 0;\n  }\n  .usa-nav__primary > li {\n    margin-bottom: 0;\n    max-width: unset;\n  }\n  .usa-nav__primary-item {\n    border-top: 1px solid #dfe1e2;\n  }\n  .usa-nav__primary a:not(.usa-button) {\n    display: block;\n    padding: 0.5rem 1rem;\n    text-decoration: none;\n  }\n  .usa-nav__primary a:not(.usa-button):hover {\n    background-color: #f0f0f0;\n    text-decoration: none;\n  }\n  .usa-nav__primary a:not(.usa-button):not(.usa-current) {\n    color: #565c65;\n  }\n  .usa-nav__primary a:not(.usa-button):not(.usa-current):hover {\n    color: #005ea2;\n  }\n  .usa-nav__primary a:not(.usa-button):not(.usa-current):focus {\n    outline-offset: 0;\n  }\n  .usa-nav__primary .usa-current {\n    position: relative;\n    color: #005ea2;\n    font-weight: 700;\n  }\n  .usa-nav__primary .usa-current::after {\n    background-color: #005ea2;\n    border-radius: 99rem;\n    content: \"\";\n    display: block;\n    position: absolute;\n    bottom: 0.25rem;\n    top: 0.25rem;\n    width: 0.25rem;\n    left: 0.25rem;\n  }\n}\n@media all and (max-width: 63.99em) and (min-width: 40em) {\n  .usa-nav__primary .usa-current {\n    position: relative;\n  }\n  .usa-nav__primary .usa-current::after {\n    background-color: #005ea2;\n    border-radius: 99rem;\n    content: \"\";\n    display: block;\n    position: absolute;\n    bottom: 0.25rem;\n    top: 0.25rem;\n    width: 0.25rem;\n    left: 0rem;\n  }\n}\n@media all and (max-width: 63.99em) {\n  .usa-nav__primary a {\n    padding-bottom: 0.75rem;\n    padding-top: 0.75rem;\n  }\n}\n@media all and (min-width: 64em) {\n  .usa-nav__primary {\n    display: flex;\n    align-items: stretch;\n  }\n}\n.usa-nav__primary .usa-nav__primary-item a {\n  text-decoration: none;\n}\n.usa-nav__primary > .usa-nav__primary-item {\n  line-height: 1.1;\n}\n@media all and (min-width: 64em) {\n  .usa-nav__primary > .usa-nav__primary-item {\n    font-size: 0.93rem;\n    line-height: 0.9;\n  }\n}\n@media all and (min-width: 64em) {\n  .usa-nav__primary > .usa-nav__primary-item > a {\n    line-height: 0.9;\n    padding: 1rem;\n    align-items: center;\n    color: #565c65;\n    display: flex;\n    font-weight: 700;\n  }\n  .usa-nav__primary > .usa-nav__primary-item > a:hover {\n    color: #005ea2;\n  }\n}\n@media all and (min-width: 64em) {\n  .usa-nav__primary > .usa-nav__primary-item > button,\n  .usa-nav__primary > .usa-nav__primary-item > a {\n    height: 100%;\n  }\n}\n@media all and (min-width: 64em) {\n  .usa-nav__primary a {\n    padding-bottom: 0.5rem;\n    padding-top: 0.5rem;\n  }\n}\n.usa-nav__primary button {\n  color: #005ea2;\n  text-decoration: underline;\n  background-color: transparent;\n  border: 0;\n  border-radius: 0;\n  box-shadow: none;\n  font-weight: normal;\n  justify-content: normal;\n  text-align: left;\n  margin: 0;\n  padding: 0;\n  width: auto;\n  position: relative;\n  color: #565c65;\n  font-weight: normal;\n  line-height: 1.1;\n  padding: 0.75rem 1rem;\n  text-decoration: none;\n  width: 100%;\n}\n.usa-nav__primary button:visited {\n  color: #54278f;\n}\n.usa-nav__primary button:hover {\n  color: #1a4480;\n}\n.usa-nav__primary button:active {\n  color: #162e51;\n}\n.usa-nav__primary button:focus {\n  outline: 0.25rem solid #2491ff;\n  outline-offset: 0rem;\n}\n.usa-nav__primary button:hover, .usa-nav__primary button.usa-button--hover, .usa-nav__primary button:disabled:hover, .usa-nav__primary button[aria-disabled=true]:hover, .usa-nav__primary button:disabled.usa-button--hover, .usa-nav__primary button[aria-disabled=true].usa-button--hover, .usa-nav__primary button:active, .usa-nav__primary button.usa-button--active, .usa-nav__primary button:disabled:active, .usa-nav__primary button[aria-disabled=true]:active, .usa-nav__primary button:disabled.usa-button--active, .usa-nav__primary button[aria-disabled=true].usa-button--active, .usa-nav__primary button:disabled:focus, .usa-nav__primary button[aria-disabled=true]:focus, .usa-nav__primary button:disabled.usa-focus, .usa-nav__primary button[aria-disabled=true].usa-focus, .usa-nav__primary button:disabled, .usa-nav__primary button[aria-disabled=true], .usa-nav__primary button.usa-button--disabled {\n  background-color: transparent;\n  box-shadow: none;\n  text-decoration: underline;\n}\n.usa-nav__primary button.usa-button--hover {\n  color: #1a4480;\n}\n.usa-nav__primary button.usa-button--active {\n  color: #162e51;\n}\n.usa-nav__primary button:disabled, .usa-nav__primary button[aria-disabled=true], .usa-nav__primary button:disabled:hover, .usa-nav__primary button[aria-disabled=true]:hover, .usa-nav__primary button[aria-disabled=true]:focus {\n  color: #757575;\n}\n@media (forced-colors: active) {\n  .usa-nav__primary button:disabled, .usa-nav__primary button[aria-disabled=true], .usa-nav__primary button:disabled:hover, .usa-nav__primary button[aria-disabled=true]:hover, .usa-nav__primary button[aria-disabled=true]:focus {\n    color: GrayText;\n  }\n}\n@media all and (min-width: 64em) {\n  .usa-nav__primary button {\n    line-height: 0.9;\n    padding: 1rem;\n    font-size: 0.93rem;\n    font-weight: 700;\n  }\n}\n@media (forced-colors: active) {\n  .usa-nav__primary button {\n    forced-color-adjust: auto;\n  }\n}\n.usa-nav__primary button:hover {\n  color: #005ea2;\n  background-color: #f0f0f0;\n  text-decoration: none;\n}\n@media all and (min-width: 64em) {\n  .usa-nav__primary button:hover {\n    background-color: transparent;\n  }\n}\n.usa-nav__primary button[aria-expanded], .usa-nav__primary button[aria-expanded]:hover {\n  background-image: none;\n}\n@media (forced-colors: active) {\n  .usa-nav__primary button[aria-expanded]::before, .usa-nav__primary button[aria-expanded]:hover::before {\n    content: none;\n  }\n}\n.usa-nav__primary button[aria-expanded] span::after {\n  position: absolute;\n  top: 50%;\n  right: 0;\n  transform: translateY(-50%);\n}\n.usa-nav__primary button[aria-expanded=false] span::after {\n  background-image: url(\"../img/usa-icons/add.svg\");\n  background-repeat: no-repeat;\n  background-position: center center;\n  background-size: 1.25rem 1.25rem;\n  display: inline-block;\n  height: 1.25rem;\n  width: 1.25rem;\n  content: \"\";\n  vertical-align: middle;\n  margin-left: auto;\n}\n@supports (mask: url(\"\")) {\n  .usa-nav__primary button[aria-expanded=false] span::after {\n    background: none;\n    background-color: ButtonText;\n    mask-image: url(\"../img/usa-icons/add.svg\"), linear-gradient(transparent, transparent);\n    mask-position: center center;\n    mask-repeat: no-repeat;\n    mask-size: 1.25rem 1.25rem;\n  }\n}\n.usa-nav__primary button[aria-expanded=false] span::after:hover {\n  background-color: buttonText;\n}\n@media all and (min-width: 64em) {\n  .usa-nav__primary button[aria-expanded=false] span::after {\n    background-image: url(\"../img/usa-icons/expand_more.svg\");\n    background-repeat: no-repeat;\n    background-position: center center;\n    background-size: 1rem 1rem;\n    display: inline-block;\n    height: 1rem;\n    width: 1rem;\n    content: \"\";\n    vertical-align: middle;\n    margin-left: auto;\n  }\n  @supports (mask: url(\"\")) {\n    .usa-nav__primary button[aria-expanded=false] span::after {\n      background: none;\n      background-color: ButtonText;\n      mask-image: url(\"../img/usa-icons/expand_more.svg\"), linear-gradient(transparent, transparent);\n      mask-position: center center;\n      mask-repeat: no-repeat;\n      mask-size: 1rem 1rem;\n    }\n  }\n  .usa-nav__primary button[aria-expanded=false] span::after {\n    right: 0.75rem;\n  }\n}\n@media all and (min-width: 64em) {\n  .usa-nav__primary button[aria-expanded=false]:hover span::after {\n    background-color: #1a4480;\n  }\n}\n@media (min-width: 64em) and (forced-colors: active) {\n  .usa-nav__primary button[aria-expanded=false]:hover span::after {\n    background-color: ButtonText;\n  }\n}\n.usa-nav__primary button[aria-expanded=true] span::after {\n  background-image: url(\"../img/usa-icons/remove.svg\");\n  background-repeat: no-repeat;\n  background-position: center center;\n  background-size: 1.25rem 1.25rem;\n  display: inline-block;\n  height: 1.25rem;\n  width: 1.25rem;\n  content: \"\";\n  vertical-align: middle;\n  margin-left: auto;\n}\n@supports (mask: url(\"\")) {\n  .usa-nav__primary button[aria-expanded=true] span::after {\n    background: none;\n    background-color: ButtonText;\n    mask-image: url(\"../img/usa-icons/remove.svg\"), linear-gradient(transparent, transparent);\n    mask-position: center center;\n    mask-repeat: no-repeat;\n    mask-size: 1.25rem 1.25rem;\n  }\n}\n.usa-nav__primary button[aria-expanded=true] span::after {\n  position: absolute;\n  right: 0;\n}\n@media (forced-colors: active) {\n  .usa-nav__primary button[aria-expanded=true] span::after {\n    background-color: ButtonText;\n  }\n}\n@media all and (min-width: 64em) {\n  .usa-nav__primary button[aria-expanded=true] {\n    background-image: none;\n    background-color: #162e51;\n    color: white;\n  }\n}\n@media all and (min-width: 64em) and (min-width: 64em) {\n  .usa-nav__primary button[aria-expanded=true] span::after {\n    background-image: url(\"../img/usa-icons/expand_less.svg\");\n    background-repeat: no-repeat;\n    background-position: center center;\n    background-size: 1rem 1rem;\n    display: inline-block;\n    height: 1rem;\n    width: 1rem;\n    content: \"\";\n    vertical-align: middle;\n    margin-left: auto;\n  }\n  @supports (mask: url(\"\")) {\n    .usa-nav__primary button[aria-expanded=true] span::after {\n      background: none;\n      background-color: ButtonText;\n      mask-image: url(\"../img/usa-icons/expand_less.svg\"), linear-gradient(transparent, transparent);\n      mask-position: center center;\n      mask-repeat: no-repeat;\n      mask-size: 1rem 1rem;\n    }\n  }\n  .usa-nav__primary button[aria-expanded=true] span::after {\n    right: 0.75rem;\n    background-color: white;\n  }\n}\n@media (min-width: 64em) and (min-width: 64em) and (forced-colors: active) {\n  .usa-nav__primary button[aria-expanded=true] span::after {\n    background-color: ButtonText;\n  }\n}\n@media all and (min-width: 64em) {\n  .usa-nav__primary .usa-accordion__button span {\n    display: inline-block;\n    margin-right: 0;\n    padding-right: 1rem;\n  }\n}\n\n.usa-nav__secondary {\n  margin-top: 1rem;\n}\n@media all and (min-width: 64em) {\n  .usa-nav__secondary {\n    flex-direction: column;\n    align-items: flex-end;\n    bottom: 4rem;\n    display: flex;\n    font-size: 0.93rem;\n    margin-top: 0.5rem;\n    min-width: calc(27ch + 3rem);\n    position: absolute;\n    right: 2rem;\n  }\n}\n.usa-nav__secondary .usa-search {\n  width: 100%;\n}\n@media all and (min-width: 64em) {\n  .usa-nav__secondary .usa-search {\n    margin-left: 0;\n    margin-top: 0.5rem;\n  }\n}\n\n.usa-nav__secondary-links {\n  margin-bottom: 0;\n  margin-top: 0;\n  list-style-type: none;\n  padding-left: 0;\n  line-height: 1.3;\n  margin-top: 1.5rem;\n}\n@media all and (min-width: 64em) {\n  .usa-nav__secondary-links {\n    column-gap: 0.5rem;\n    display: flex;\n    flex-flow: row nowrap;\n    line-height: 0.9;\n    margin-bottom: 0.25rem;\n    margin-top: 0;\n  }\n}\n@media all and (min-width: 64em) {\n  .usa-nav__secondary-links .usa-nav__secondary-item {\n    padding-left: 0.25rem;\n  }\n  .usa-nav__secondary-links .usa-nav__secondary-item + .usa-nav__secondary-item {\n    border-left: 1px solid #dfe1e2;\n    padding-left: 0.5rem;\n  }\n}\n.usa-nav__secondary-links a {\n  color: #71767a;\n  display: inline-block;\n  font-size: 0.93rem;\n  text-decoration: none;\n}\n.usa-nav__secondary-links a:hover {\n  color: #005ea2;\n  text-decoration: underline;\n}\n\n@media all and (max-width: 63.99em) {\n  .usa-nav__submenu {\n    margin-bottom: 0;\n    margin-top: 0;\n    list-style-type: none;\n    padding-left: 0;\n    margin: 0;\n  }\n  .usa-nav__submenu > li {\n    margin-bottom: 0;\n    max-width: unset;\n  }\n  .usa-nav__submenu-item {\n    border-top: 1px solid #dfe1e2;\n    font-size: 0.93rem;\n  }\n  .usa-nav__submenu .usa-current::after {\n    display: none;\n  }\n}\n@media all and (max-width: 63.99em) and (min-width: 40em) {\n  .usa-nav__submenu .usa-current::after {\n    display: none;\n  }\n}\n@media all and (max-width: 63.99em) {\n  .usa-nav__submenu a:not(.usa-button) {\n    padding-left: 2rem;\n  }\n  .usa-nav__submenu .usa-nav__submenu a:not(.usa-button) {\n    padding-left: 3rem;\n  }\n  .usa-nav__submenu .usa-nav__submenu .usa-nav__submenu a:not(.usa-button) {\n    padding-left: 4rem;\n  }\n}\n@media all and (min-width: 64em) {\n  .usa-nav__submenu {\n    margin-bottom: 0;\n    margin-top: 0;\n    list-style-type: none;\n    padding-left: 0;\n    padding-bottom: 0.5rem;\n    padding-top: 0.5rem;\n    background-color: #162e51;\n    width: 15rem;\n    position: absolute;\n    z-index: 400;\n  }\n}\n.usa-nav__submenu[aria-hidden=true] {\n  display: none;\n}\n@media all and (min-width: 64em) {\n  .usa-nav__submenu .usa-nav__submenu-item a {\n    padding-left: 1rem;\n    padding-right: 1rem;\n    color: white;\n    line-height: 1.3;\n    display: block;\n  }\n  .usa-nav__submenu .usa-nav__submenu-item a:focus {\n    outline-offset: -0.25rem;\n  }\n  .usa-nav__submenu .usa-nav__submenu-item a:hover {\n    color: white;\n    text-decoration: underline;\n  }\n}\n\n.usa-nav__submenu-list {\n  margin-bottom: 0;\n  margin-top: 0;\n  list-style-type: none;\n  padding-left: 0;\n}\n.usa-nav__submenu-list > li {\n  margin-bottom: 0;\n  max-width: unset;\n}\n.usa-nav__submenu-list .usa-nav__submenu-list-item {\n  margin: 0;\n  font-size: 0.93rem;\n}\n.usa-nav__submenu-list .usa-nav__submenu-list-item a {\n  line-height: 1.3;\n}\n\n.usa-nav__close {\n  color: #005ea2;\n  text-decoration: underline;\n  background-color: transparent;\n  border: 0;\n  border-radius: 0;\n  box-shadow: none;\n  font-weight: normal;\n  justify-content: normal;\n  text-align: left;\n  margin: 0;\n  padding: 0;\n  width: auto;\n  height: 3rem;\n  width: 3rem;\n  background-image: none;\n  color: currentColor;\n  flex: none;\n  float: right;\n  margin: -0.75rem -1rem 1rem auto;\n  text-align: center;\n}\n.usa-nav__close:visited {\n  color: #54278f;\n}\n.usa-nav__close:hover {\n  color: #1a4480;\n}\n.usa-nav__close:active {\n  color: #162e51;\n}\n.usa-nav__close:focus {\n  outline: 0.25rem solid #2491ff;\n  outline-offset: 0rem;\n}\n.usa-nav__close:hover, .usa-nav__close.usa-button--hover, .usa-nav__close:disabled:hover, .usa-nav__close[aria-disabled=true]:hover, .usa-nav__close:disabled.usa-button--hover, .usa-nav__close[aria-disabled=true].usa-button--hover, .usa-nav__close:active, .usa-nav__close.usa-button--active, .usa-nav__close:disabled:active, .usa-nav__close[aria-disabled=true]:active, .usa-nav__close:disabled.usa-button--active, .usa-nav__close[aria-disabled=true].usa-button--active, .usa-nav__close:disabled:focus, .usa-nav__close[aria-disabled=true]:focus, .usa-nav__close:disabled.usa-focus, .usa-nav__close[aria-disabled=true].usa-focus, .usa-nav__close:disabled, .usa-nav__close[aria-disabled=true], .usa-nav__close.usa-button--disabled {\n  background-color: transparent;\n  box-shadow: none;\n  text-decoration: underline;\n}\n.usa-nav__close.usa-button--hover {\n  color: #1a4480;\n}\n.usa-nav__close.usa-button--active {\n  color: #162e51;\n}\n.usa-nav__close:disabled, .usa-nav__close[aria-disabled=true], .usa-nav__close:disabled:hover, .usa-nav__close[aria-disabled=true]:hover, .usa-nav__close[aria-disabled=true]:focus {\n  color: #757575;\n}\n@media (forced-colors: active) {\n  .usa-nav__close:disabled, .usa-nav__close[aria-disabled=true], .usa-nav__close:disabled:hover, .usa-nav__close[aria-disabled=true]:hover, .usa-nav__close[aria-disabled=true]:focus {\n    color: GrayText;\n  }\n}\n@media (forced-colors: active) {\n  .usa-nav__close::before {\n    background-image: url(\"../img/usa-icons/close.svg\");\n    background-repeat: no-repeat;\n    background-position: center center;\n    background-size: 1.25rem 1.25rem;\n    display: inline-block;\n    height: 1.25rem;\n    width: 1.25rem;\n    content: \"\";\n    vertical-align: middle;\n    margin-right: auto;\n  }\n  @supports (mask: url(\"\")) {\n    .usa-nav__close::before {\n      background: none;\n      background-color: ButtonText;\n      mask-image: url(\"../img/usa-icons/close.svg\"), linear-gradient(transparent, transparent);\n      mask-position: center center;\n      mask-repeat: no-repeat;\n      mask-size: 1.25rem 1.25rem;\n    }\n  }\n  .usa-nav__close::before {\n    background-color: buttonText;\n  }\n}\n.usa-nav__close:hover {\n  color: currentColor;\n  text-decoration: none;\n}\n@media all and (min-width: 64em) {\n  .usa-nav__close {\n    display: none;\n  }\n}\n.usa-nav__close img {\n  width: 1.5rem;\n}\n@media (forced-colors: active) {\n  .usa-nav__close img {\n    display: none;\n  }\n}\n.usa-nav__close + * {\n  clear: both;\n}\n\n.usa-js-mobile-nav--active {\n  overflow: hidden;\n}\n\n@media (min-width: 63.06rem) {\n  .usa-js-mobile-nav--active.is-safari {\n    overflow-y: scroll;\n    position: fixed;\n    top: var(--scrolltop, 0);\n  }\n}\n.usa-pagination {\n  margin-bottom: 1rem;\n  margin-top: 1rem;\n  font-family: Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;\n  font-size: 1.06rem;\n  line-height: 1.5;\n  color: #1b1b1b;\n  background-color: white;\n  display: flex;\n  justify-content: center;\n}\n\n.usa-pagination .usa-icon {\n  height: 1.13rem;\n  width: 1.13rem;\n}\n\n.usa-pagination__list {\n  margin-bottom: 0;\n  margin-top: 0;\n  list-style-type: none;\n  padding-left: 0;\n  align-items: center;\n  display: flex;\n  flex-flow: row nowrap;\n  justify-content: center;\n  width: auto;\n}\n\n.usa-pagination__item {\n  display: inline-flex;\n  height: 2.5rem;\n  justify-content: center;\n  line-height: 1;\n  margin-left: 0.25rem;\n  margin-right: 0.25rem;\n  min-width: 2.5rem;\n}\n@media all and (min-width: 40em) {\n  .usa-pagination__item {\n    flex: 1 0 auto;\n  }\n}\n\n.usa-pagination__arrow {\n  display: none;\n}\n@media all and (min-width: 40em) {\n  .usa-pagination__arrow {\n    display: inherit;\n  }\n}\n\n@media all and (min-width: 40em) {\n  .usa-pagination__previous-page {\n    margin-right: 1.25rem;\n  }\n}\n\n@media all and (min-width: 40em) {\n  .usa-pagination__next-page {\n    margin-left: 1.25rem;\n  }\n}\n\n.usa-pagination__link {\n  align-items: center;\n  color: #005ea2;\n  display: inline-flex;\n}\n.usa-pagination__link[disabled] {\n  opacity: 0.4 !important;\n  pointer-events: none;\n}\n.usa-pagination__link:hover, .usa-pagination__link:focus, .usa-pagination__link:active {\n  color: #1a4480;\n}\n.usa-pagination__link:visited {\n  color: #005ea2;\n}\n\n.usa-pagination__button {\n  align-items: center;\n  border-color: rgba(27, 27, 27, 0.2);\n  border-radius: 0.25rem;\n  border-style: solid;\n  border-width: 1px;\n  color: #005ea2;\n  display: inline-flex;\n  justify-content: center;\n  padding: 0.5rem;\n  width: 100%;\n}\n.usa-pagination__button:hover, .usa-pagination__button:focus, .usa-pagination__button:active {\n  color: #1a4480;\n  border-color: #1a4480;\n}\n@media (forced-colors: active) {\n  .usa-pagination__button:hover, .usa-pagination__button:focus, .usa-pagination__button:active {\n    border: 2px solid transparent;\n  }\n}\n\n.usa-pagination .usa-current {\n  background-color: #1b1b1b;\n  border-color: transparent;\n  color: white;\n}\n@media (forced-colors: active) {\n  .usa-pagination .usa-current {\n    border: 2px solid transparent;\n    color: buttonText;\n  }\n}\n.usa-pagination .usa-current:hover, .usa-pagination .usa-current:focus, .usa-pagination .usa-current:active {\n  background-color: #1b1b1b;\n  color: white;\n}\n@media (forced-colors: active) {\n  .usa-pagination .usa-current:hover, .usa-pagination .usa-current:focus, .usa-pagination .usa-current:active {\n    color: buttontext;\n  }\n}\n\n.usa-pagination__overflow {\n  align-items: center;\n  align-self: stretch;\n  display: inherit;\n  user-select: none;\n  padding: 0.5rem;\n}\n\n.usa-process-list {\n  font-family: Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;\n  font-size: 1.06rem;\n  line-height: 1.5;\n  margin-bottom: 0;\n  margin-top: 0;\n  list-style-type: none;\n  padding-left: 0;\n  counter-reset: usa-numbered-list;\n  padding: 20px 0 0 calc(2.5rem / 2 - 0.5rem / 2);\n  position: relative;\n}\n.usa-process-list > li {\n  margin-bottom: 0;\n  max-width: unset;\n}\n.usa-process-list > .usa-process-list__item {\n  max-width: 72ex;\n}\n\n.usa-process-list__item {\n  border-left: 0.5rem solid #d9e8f6;\n  font-size: 1.06rem;\n  margin-bottom: 0;\n  padding-bottom: 2rem;\n  padding-left: calc(calc(2.5rem / 2 - 0.25rem) * 2);\n}\n\n.usa-prose .usa-process-list {\n  font-family: Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;\n  font-size: 1.06rem;\n  line-height: 1.5;\n  margin-bottom: 0;\n  margin-top: 0;\n  list-style-type: none;\n  padding-left: 0;\n  counter-reset: usa-numbered-list;\n  padding: 20px 0 0 calc(2.5rem / 2 - 0.5rem / 2);\n  position: relative;\n}\n.usa-prose .usa-process-list > li {\n  margin-bottom: 0;\n  max-width: unset;\n}\n.usa-prose .usa-process-list > .usa-process-list__item {\n  max-width: 72ex;\n}\n.usa-prose .usa-process-list__item {\n  border-left: 0.5rem solid #d9e8f6;\n  font-size: 1.06rem;\n  margin-bottom: 0;\n  padding-bottom: 2rem;\n  padding-left: calc(calc(2.5rem / 2 - 0.25rem) * 2);\n}\n\n.usa-process-list__item:last-child {\n  border-left: 0.5rem solid transparent;\n}\n.usa-process-list__item::before {\n  flex-direction: row;\n  align-items: center;\n  justify-content: center;\n  height: 2.5rem;\n  border-radius: 99rem;\n  width: 2.5rem;\n  background-color: white;\n  border: 0.25rem solid #1b1b1b;\n  box-shadow: 0 0 0 0.25rem white;\n  color: #1b1b1b;\n  content: counter(usa-numbered-list, decimal);\n  counter-increment: usa-numbered-list;\n  display: flex;\n  font-family: Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;\n  font-size: 1.46rem;\n  font-weight: 700;\n  height: 2.5rem;\n  left: 0;\n  line-height: 0.9;\n  margin-top: -0.4rem;\n  position: absolute;\n  width: 2.5rem;\n}\n.usa-process-list__item ul {\n  list-style-type: disc;\n}\n.usa-process-list__item ul li {\n  margin-bottom: 0.25rem;\n}\n.usa-process-list__item ul li:last-child {\n  margin-bottom: 0;\n}\n.usa-process-list__item > *:first-child {\n  margin-top: 0;\n}\n.usa-process-list__item > *:last-child {\n  margin-bottom: 0;\n}\n\n.usa-process-list__heading {\n  font-family: Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;\n  font-size: 1.46rem;\n  line-height: 1.1;\n  color: #1b1b1b;\n  font-family: Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;\n  font-weight: 700;\n  margin: 0;\n}\n.usa-process-list__heading + * {\n  margin-top: 0.25rem;\n}\n\n.usa-search {\n  font-family: Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;\n  font-size: 1.06rem;\n  line-height: 1.5;\n  position: relative;\n}\n.usa-search::after {\n  clear: both;\n  content: \"\";\n  display: block;\n}\n.usa-search[role=search], .usa-search[role=search] > div,\n.usa-search [role=search] {\n  display: flex;\n}\n.usa-search [type=submit] {\n  border-bottom-left-radius: 0;\n  border-top-left-radius: 0;\n  height: 2rem;\n  margin: 0;\n  padding: 0;\n  width: 3rem;\n}\n@media all and (min-width: 30em) {\n  .usa-search [type=submit] {\n    padding-left: 1rem;\n    padding-right: 1rem;\n    width: auto;\n  }\n}\n@media (forced-colors: active) {\n  .usa-search [type=submit]::before {\n    background-image: url(\"../img/usa-icons/search.svg\");\n    background-repeat: no-repeat;\n    background-position: center center;\n    background-size: 1.5rem 1.5rem;\n    display: inline-block;\n    height: 1.5rem;\n    width: 1.5rem;\n    content: \"\";\n    vertical-align: middle;\n    margin-right: auto;\n  }\n  @supports (mask: url(\"\")) {\n    .usa-search [type=submit]::before {\n      background: none;\n      background-color: ButtonText;\n      mask-image: url(\"../img/usa-icons/search.svg\"), linear-gradient(transparent, transparent);\n      mask-position: center center;\n      mask-repeat: no-repeat;\n      mask-size: 1.5rem 1.5rem;\n    }\n  }\n  .usa-search [type=submit]:focus {\n    outline-offset: 0;\n  }\n}\n@media (forced-colors: active) and (min-width: 30em) {\n  .usa-search [type=submit]::before {\n    content: none;\n  }\n}\n@media all and (min-width: 30em) {\n  .usa-search__submit-icon {\n    display: none;\n  }\n}\n@media (forced-colors: active) {\n  .usa-search__submit-icon {\n    display: none;\n  }\n}\n\n@media all and (min-width: 30em) {\n  .usa-search--big [type=search],\n  .usa-search--big .usa-search__input {\n    font-size: 1.06rem;\n    height: 3rem;\n  }\n}\n@media all and (min-width: 30em) {\n  .usa-search--big [type=submit],\n  .usa-search--big .usa-search__submit {\n    padding-left: 2rem;\n    padding-right: 2rem;\n    font-size: 1.46rem;\n    height: 3rem;\n    width: auto;\n  }\n}\n\n.usa-search--small [type=submit],\n.usa-search--small .usa-search__submit {\n  padding-left: 0.75rem;\n  padding-right: 0.75rem;\n  min-width: 3rem;\n}\n@media (forced-colors: active) and (min-width: 30em) {\n  .usa-search--small [type=submit]::before {\n    content: \"\";\n  }\n}\n.usa-search--small .usa-search__submit-icon {\n  height: 1.5rem;\n  width: 1.5rem;\n  display: block;\n}\n@media (forced-colors: active) {\n  .usa-search--small .usa-search__submit-icon {\n    display: none;\n  }\n}\n\ninput[type=search] {\n  /* stylelint-disable-line selector-no-qualifying-type */\n  box-sizing: border-box;\n  appearance: none;\n}\n\n[type=search],\n.usa-search__input {\n  padding-bottom: 0;\n  padding-top: 0;\n  border-bottom-right-radius: 0;\n  border-right: none;\n  border-top-right-radius: 0;\n  box-sizing: border-box;\n  float: left;\n  font-size: 1rem;\n  height: 2rem;\n  margin: 0;\n}\n\n.usa-search__submit-text {\n  display: none;\n}\n@media all and (min-width: 30em) {\n  .usa-search__submit-text {\n    display: block;\n  }\n}\n\n.usa-section {\n  padding-bottom: 2rem;\n  padding-top: 2rem;\n}\n@media all and (min-width: 40em) {\n  .usa-section {\n    padding-bottom: 4rem;\n    padding-top: 4rem;\n  }\n}\n\n.usa-section--light {\n  background-color: #f0f0f0;\n}\n\n.usa-section--dark {\n  background-color: #162e51;\n  color: white;\n}\n.usa-section--dark h1,\n.usa-section--dark h2,\n.usa-section--dark h3,\n.usa-section--dark h4,\n.usa-section--dark h5,\n.usa-section--dark h6 {\n  color: #00bde3;\n}\n.usa-section--dark p {\n  color: white;\n}\n.usa-section--dark a {\n  color: #dfe1e2;\n}\n.usa-section--dark a:visited {\n  color: #dfe1e2;\n}\n.usa-section--dark a:hover, .usa-section--dark a:active {\n  color: #f0f0f0;\n}\n\n.usa-sidenav {\n  margin-bottom: 0;\n  margin-top: 0;\n  list-style-type: none;\n  padding-left: 0;\n  font-family: Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;\n  font-size: 1.06rem;\n  line-height: 1.3;\n  border-bottom: 1px solid #dfe1e2;\n}\n.usa-sidenav > li {\n  margin-bottom: 0;\n  max-width: unset;\n}\n.usa-sidenav__item {\n  border-top: 1px solid #dfe1e2;\n}\n.usa-sidenav a:not(.usa-button) {\n  display: block;\n  padding: 0.5rem 1rem;\n  text-decoration: none;\n}\n.usa-sidenav a:not(.usa-button):hover {\n  background-color: #f0f0f0;\n  text-decoration: none;\n}\n.usa-sidenav a:not(.usa-button):not(.usa-current) {\n  color: #565c65;\n}\n.usa-sidenav a:not(.usa-button):not(.usa-current):hover {\n  color: #005ea2;\n}\n.usa-sidenav a:not(.usa-button):not(.usa-current):focus {\n  outline-offset: 0;\n}\n.usa-sidenav .usa-current {\n  position: relative;\n  color: #005ea2;\n  font-weight: 700;\n}\n.usa-sidenav .usa-current::after {\n  background-color: #005ea2;\n  border-radius: 99rem;\n  content: \"\";\n  display: block;\n  position: absolute;\n  bottom: 0.25rem;\n  top: 0.25rem;\n  width: 0.25rem;\n  left: 0.25rem;\n}\n@media all and (min-width: 40em) {\n  .usa-sidenav .usa-current {\n    position: relative;\n  }\n  .usa-sidenav .usa-current::after {\n    background-color: #005ea2;\n    border-radius: 99rem;\n    content: \"\";\n    display: block;\n    position: absolute;\n    bottom: 0.25rem;\n    top: 0.25rem;\n    width: 0.25rem;\n    left: 0rem;\n  }\n}\n.grid-container .usa-sidenav {\n  margin-left: -1rem;\n  margin-right: -1rem;\n}\n@media all and (min-width: 40em) {\n  .grid-container .usa-sidenav {\n    margin-left: 0;\n    margin-right: 0;\n  }\n}\n\n.usa-sidenav__sublist {\n  margin-bottom: 0;\n  margin-top: 0;\n  list-style-type: none;\n  padding-left: 0;\n  margin: 0;\n  font-size: 1rem;\n}\n.usa-sidenav__sublist > li {\n  margin-bottom: 0;\n  max-width: unset;\n}\n.usa-sidenav__sublist-item {\n  border-top: 1px solid #dfe1e2;\n  font-size: 0.93rem;\n}\n.usa-sidenav__sublist .usa-current::after {\n  display: none;\n}\n@media all and (min-width: 40em) {\n  .usa-sidenav__sublist .usa-current::after {\n    display: none;\n  }\n}\n.usa-sidenav__sublist a:not(.usa-button) {\n  padding-left: 2rem;\n}\n.usa-sidenav__sublist .usa-sidenav__sublist a:not(.usa-button) {\n  padding-left: 3rem;\n}\n.usa-sidenav__sublist .usa-sidenav__sublist .usa-sidenav__sublist a:not(.usa-button) {\n  padding-left: 4rem;\n}\n\n.usa-site-alert .usa-alert {\n  background-color: #f0f0f0;\n  border-left: 0.5rem solid #a9aeb1;\n  color: #1b1b1b;\n}\n.usa-site-alert .usa-alert .usa-alert__body {\n  font-family: Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;\n  font-size: 1.06rem;\n  line-height: 1.5;\n  padding-bottom: 1rem;\n  padding-top: 1rem;\n  position: relative;\n}\n.usa-site-alert .usa-alert .usa-alert__text {\n  margin-bottom: 0;\n  margin-top: 0;\n}\n.usa-site-alert .usa-alert .usa-alert__text:only-child {\n  padding-bottom: 0;\n  padding-top: 0;\n}\n.usa-site-alert .usa-alert .usa-alert__heading {\n  font-family: Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;\n  font-size: 1.46rem;\n  line-height: 0.9;\n  margin-top: 0;\n  margin-bottom: 0.5rem;\n}\n.usa-site-alert .usa-alert > .usa-list,\n.usa-site-alert .usa-alert .usa-alert__body > .usa-list {\n  padding-left: 2ch;\n}\n.usa-site-alert .usa-alert > .usa-list:last-child,\n.usa-site-alert .usa-alert .usa-alert__body > .usa-list:last-child {\n  margin-bottom: 0;\n}\n.usa-site-alert .usa-alert .usa-alert__body {\n  max-width: 64rem;\n  padding-left: 1.25rem;\n  padding-right: 1.25rem;\n}\n.usa-site-alert .usa-alert .usa-alert__body::before {\n  left: 1.0833333333rem;\n}\n@media all and (min-width: 64em) {\n  .usa-site-alert .usa-alert .usa-alert__body {\n    margin-left: auto;\n    margin-right: auto;\n    padding-left: 1.75rem;\n    padding-right: 1.75rem;\n  }\n  .usa-site-alert .usa-alert .usa-alert__body::before {\n    left: 1.5833333333rem;\n  }\n}\n\n.usa-site-alert--info .usa-alert {\n  background-color: #e7f6f8;\n  border-left-color: #00bde3;\n}\n.usa-site-alert--info .usa-alert .usa-alert__body {\n  color: #1b1b1b;\n  background-color: #e7f6f8;\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  min-height: 3.3333333333rem;\n}\n.usa-site-alert--info .usa-alert .usa-alert__body::before {\n  background-image: url(\"../img/usa-icons/info.svg\");\n  background-repeat: no-repeat;\n  background-position: center center;\n  background-size: 2rem 2rem;\n  display: inline-block;\n  height: 2rem;\n  width: 2rem;\n  content: \"\";\n  display: block;\n  position: absolute;\n  top: 0.6666666667rem;\n}\n@supports (mask: url(\"\")) {\n  .usa-site-alert--info .usa-alert .usa-alert__body::before {\n    background: none;\n    background-color: #1b1b1b;\n    mask-image: url(\"../img/usa-icons/info.svg\"), linear-gradient(transparent, transparent);\n    mask-position: center center;\n    mask-repeat: no-repeat;\n    mask-size: 2rem 2rem;\n  }\n}\n.usa-site-alert--info .usa-alert .usa-alert__body > * {\n  margin-left: 2.5rem;\n}\n.usa-site-alert--info .usa-alert .usa-alert__body .usa-link {\n  color: #005ea2;\n}\n.usa-site-alert--info .usa-alert .usa-alert__body .usa-link:visited {\n  color: #54278f;\n}\n.usa-site-alert--info .usa-alert .usa-alert__body .usa-link:hover, .usa-site-alert--info .usa-alert .usa-alert__body .usa-link:active {\n  color: #1a4480;\n}\n\n.usa-site-alert--emergency .usa-alert {\n  background-color: #9c3d10;\n  border-left-color: #9c3d10;\n}\n.usa-site-alert--emergency .usa-alert .usa-alert__body {\n  color: white;\n  background-color: #9c3d10;\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  min-height: 3.3333333333rem;\n}\n.usa-site-alert--emergency .usa-alert .usa-alert__body::before {\n  background-image: url(\"../img/usa-icons-bg/error--white.svg\");\n  background-repeat: no-repeat;\n  background-position: center center;\n  background-size: 2rem 2rem;\n  display: inline-block;\n  height: 2rem;\n  width: 2rem;\n  content: \"\";\n  display: block;\n  position: absolute;\n  top: 0.6666666667rem;\n}\n@supports (mask: url(\"\")) {\n  .usa-site-alert--emergency .usa-alert .usa-alert__body::before {\n    background: none;\n    background-color: white;\n    mask-image: url(\"../img/usa-icons/error.svg\"), linear-gradient(transparent, transparent);\n    mask-position: center center;\n    mask-repeat: no-repeat;\n    mask-size: 2rem 2rem;\n  }\n}\n.usa-site-alert--emergency .usa-alert .usa-alert__body > * {\n  margin-left: 2.5rem;\n}\n.usa-site-alert--emergency .usa-alert .usa-alert__body .usa-link {\n  color: #dfe1e2;\n}\n.usa-site-alert--emergency .usa-alert .usa-alert__body .usa-link:visited {\n  color: #dfe1e2;\n}\n.usa-site-alert--emergency .usa-alert .usa-alert__body .usa-link:hover, .usa-site-alert--emergency .usa-alert .usa-alert__body .usa-link:active {\n  color: #f0f0f0;\n}\n\n.usa-site-alert--slim .usa-alert .usa-alert__body {\n  padding-bottom: 0.5rem;\n  padding-top: 0.5rem;\n  min-height: 0;\n}\n.usa-site-alert--slim .usa-alert .usa-alert__body:before {\n  height: 1.5rem;\n  top: 0.5rem;\n  width: 1.5rem;\n}\n@supports (mask: url(\"\")) {\n  .usa-site-alert--slim .usa-alert .usa-alert__body:before {\n    mask-size: 1.5rem;\n  }\n}\n.usa-site-alert--slim .usa-alert .usa-alert__body > * {\n  margin-left: 2rem;\n}\n.usa-site-alert--slim .usa-alert .usa-alert__body::before {\n  left: 1.125rem;\n}\n@media all and (min-width: 64em) {\n  .usa-site-alert--slim .usa-alert .usa-alert__body::before {\n    left: 1.625rem;\n  }\n}\n\n.usa-site-alert--no-icon .usa-alert .usa-alert__body {\n  min-height: 0;\n}\n.usa-site-alert--no-icon .usa-alert .usa-alert__body:before {\n  display: none;\n}\n.usa-site-alert--no-icon .usa-alert .usa-alert__body > * {\n  margin-left: 0;\n}\n\n.usa-skipnav {\n  font-family: Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;\n  font-size: 1.06rem;\n  line-height: 1.5;\n  color: #005ea2;\n  text-decoration: underline;\n  background: transparent;\n  left: 0;\n  padding: 0.5rem 1rem;\n  position: absolute;\n  top: -3.8rem;\n  transition: 0.15s ease-in-out;\n  z-index: 100;\n}\n.usa-skipnav:visited {\n  color: #54278f;\n}\n.usa-skipnav:hover {\n  color: #1a4480;\n}\n.usa-skipnav:active {\n  color: #162e51;\n}\n.usa-skipnav:focus {\n  outline: 0.25rem solid #2491ff;\n  outline-offset: 0rem;\n}\n.usa-skipnav:focus, .usa-skipnav.usa-focus {\n  background: white;\n  left: 0;\n  position: absolute;\n  top: 0;\n  transition: 0.15s ease-in-out;\n}\n\n.usa-skipnav__container {\n  position: relative;\n}\n\n.usa-step-indicator {\n  font-family: Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;\n  font-size: 1.06rem;\n  line-height: 1.1;\n  background-color: white;\n  margin-bottom: 2rem;\n  margin-left: -1px;\n  margin-right: -1px;\n}\n@media all and (min-width: 40em) {\n  .usa-step-indicator {\n    margin-left: 0;\n    margin-right: 0;\n  }\n}\n\n.usa-step-indicator__segments {\n  counter-reset: usa-step-indicator;\n  display: flex;\n  list-style: none;\n  margin: 0;\n  padding: 0;\n}\n\n.usa-step-indicator__segment {\n  flex: 1 1 0%;\n  counter-increment: usa-step-indicator;\n  margin-left: 1px;\n  margin-right: 1px;\n  max-width: 15rem;\n  min-height: 0.5rem;\n  position: relative;\n}\n.usa-step-indicator__segment:after {\n  background-color: #919191;\n  content: \"\";\n  display: block;\n  height: 0.5rem;\n  left: 0;\n  position: absolute;\n  right: 0;\n  top: 0;\n}\n@media all and (min-width: 40em) {\n  .usa-step-indicator__segment:after {\n    height: 0.5rem;\n  }\n}\n\n.usa-step-indicator__segment--complete::after {\n  background-color: #162e51;\n}\n.usa-step-indicator__segment--complete .usa-step-indicator__segment-label {\n  color: #162e51;\n}\n\n.usa-step-indicator__segment--current::after {\n  background-color: #005ea2;\n}\n.usa-step-indicator__segment--current .usa-step-indicator__segment-label {\n  color: #005ea2;\n  font-weight: 700;\n}\n\n.usa-step-indicator__segment-label {\n  display: none;\n}\n@media all and (min-width: 40em) {\n  .usa-step-indicator__segment-label {\n    color: #565c65;\n    display: block;\n    font-size: 1.06rem;\n    margin-top: calc(0.5rem + 0.5rem);\n    padding-right: 2rem;\n    text-align: left;\n  }\n}\n\n.usa-step-indicator__header {\n  align-items: baseline;\n  display: flex;\n}\n\n.usa-step-indicator__heading {\n  color: #1b1b1b;\n  font-family: Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;\n  font-size: 1.13rem;\n  font-weight: 700;\n  margin: 1rem 0 0;\n}\n@media all and (min-width: 40em) {\n  .usa-step-indicator__heading {\n    font-size: 1.46rem;\n    margin-top: 2rem;\n  }\n}\n\n.usa-step-indicator__current-step {\n  height: 2.5rem;\n  border-radius: 99rem;\n  width: 2.5rem;\n  font-weight: normal;\n  font-feature-settings: \"tnum\" 1, \"kern\" 1;\n  background-color: #005ea2;\n  color: white;\n  display: inline-block;\n  padding: calc((2.5rem - 2ex * 1.1) * 0.5);\n  text-align: center;\n}\n\n.usa-step-indicator__total-steps {\n  font-weight: normal;\n  font-feature-settings: \"tnum\" 1, \"kern\" 1;\n  color: #005ea2;\n  margin-right: 0.5rem;\n}\n\n@media all and (min-width: 40em) {\n  .usa-step-indicator--counters .usa-step-indicator__segment,\n  .usa-step-indicator--counters-sm .usa-step-indicator__segment {\n    margin-left: 0;\n    margin-right: 0;\n    margin-top: calc((2.5rem - 0.5rem) / 2 + 0.25rem);\n  }\n  .usa-step-indicator--counters .usa-step-indicator__segment:before,\n  .usa-step-indicator--counters-sm .usa-step-indicator__segment:before {\n    height: 2.5rem;\n    border-radius: 99rem;\n    width: 2.5rem;\n    font-feature-settings: \"tnum\" 1, \"kern\" 1;\n    background-color: white;\n    box-shadow: inset 0 0 0 0.25rem #919191, 0 0 0 0.25rem white;\n    color: #565c65;\n    content: counter(usa-step-indicator);\n    display: block;\n    font-weight: 700;\n    left: 0;\n    line-height: 0.9;\n    padding: calc((2.5rem - 2ex * 0.9) * 0.5);\n    position: absolute;\n    text-align: center;\n    top: calc((2.5rem - 0.5rem) / -2);\n    z-index: 100;\n  }\n  .usa-step-indicator--counters .usa-step-indicator__segment:last-child:after,\n  .usa-step-indicator--counters-sm .usa-step-indicator__segment:last-child:after {\n    display: none;\n  }\n}\n.usa-step-indicator--counters .usa-step-indicator__segment--complete::before,\n.usa-step-indicator--counters-sm .usa-step-indicator__segment--complete::before {\n  background-color: #162e51;\n  box-shadow: 0 0 0 0.25rem white;\n  color: white;\n}\n.usa-step-indicator--counters .usa-step-indicator__segment--current::before,\n.usa-step-indicator--counters-sm .usa-step-indicator__segment--current::before {\n  background-color: #005ea2;\n  box-shadow: 0 0 0 0.25rem white;\n  color: white;\n}\n@media all and (min-width: 40em) {\n  .usa-step-indicator--counters .usa-step-indicator__segment-label,\n  .usa-step-indicator--counters-sm .usa-step-indicator__segment-label {\n    margin-top: calc((2.5rem + 0.5rem) / 2 + 0.5rem);\n  }\n}\n@media all and (min-width: 40em) {\n  .usa-step-indicator--counters.usa-step-indicator--center .usa-step-indicator__segment:first-child:after,\n  .usa-step-indicator--counters-sm.usa-step-indicator--center .usa-step-indicator__segment:first-child:after {\n    left: 50%;\n    right: 0;\n    width: auto;\n  }\n  .usa-step-indicator--counters.usa-step-indicator--center .usa-step-indicator__segment:last-child:after,\n  .usa-step-indicator--counters-sm.usa-step-indicator--center .usa-step-indicator__segment:last-child:after {\n    display: block;\n    left: 0;\n    right: 50%;\n    width: auto;\n  }\n}\n\n@media all and (min-width: 40em) {\n  .usa-step-indicator--counters-sm .usa-step-indicator__segment {\n    margin-top: calc((1.5rem - 0.5rem) / 2 + 0.25rem);\n  }\n  .usa-step-indicator--counters-sm .usa-step-indicator__segment:before {\n    height: 1.5rem;\n    border-radius: 99rem;\n    width: 1.5rem;\n    font-size: 0.93rem;\n    padding: calc(0.25rem + 1px);\n    top: calc((1.5rem - 0.5rem) / -2);\n  }\n  .usa-step-indicator--counters-sm .usa-step-indicator__segment:last-child:after {\n    display: none;\n  }\n}\n@media all and (min-width: 40em) {\n  .usa-step-indicator--counters-sm .usa-step-indicator__segment-label {\n    margin-top: calc((1.5rem + 0.5rem) / 2 + 0.5rem);\n  }\n}\n\n.usa-step-indicator--no-labels {\n  margin-left: -1px;\n  margin-right: -1px;\n}\n.usa-step-indicator--no-labels .usa-step-indicator__segment {\n  margin-top: 0;\n  margin-left: 1px;\n  margin-right: 1px;\n}\n.usa-step-indicator--no-labels .usa-step-indicator__segment:before {\n  display: none;\n}\n.usa-step-indicator--no-labels .usa-step-indicator__segment:last-child:after {\n  display: block;\n}\n.usa-step-indicator--no-labels .usa-step-indicator__heading {\n  margin-top: 1rem;\n}\n\n.usa-step-indicator--no-labels .usa-step-indicator__segment-label {\n  display: none;\n}\n\n.usa-step-indicator--center {\n  margin-left: -1px;\n  margin-right: -1px;\n}\n.usa-step-indicator--center .usa-step-indicator__segment {\n  margin-left: 1px;\n  margin-right: 1px;\n}\n.usa-step-indicator--center .usa-step-indicator__segment:before {\n  left: calc(50% - (2.5rem + 0.25rem) / 2);\n}\n.usa-step-indicator--center .usa-step-indicator__segment-label {\n  padding-left: 0.5rem;\n  padding-right: 0.5rem;\n  text-align: center;\n}\n.usa-step-indicator--center.usa-step-indicator--no-labels .usa-step-indicator__segment:first-child:after {\n  left: 0;\n}\n.usa-step-indicator--center.usa-step-indicator--no-labels .usa-step-indicator__segment:last-child:after {\n  right: 0;\n}\n.usa-step-indicator--center.usa-step-indicator--counters-sm .usa-step-indicator__segment:before {\n  left: calc(50% - (1.5rem + 0.25rem) / 2);\n}\n\n.usa-summary-box {\n  font-family: Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;\n  font-size: 1.06rem;\n  line-height: 1.5;\n  color: #1b1b1b;\n  background-color: #e7f6f8;\n  border-radius: 0.25rem;\n  border: 1px #99deea solid;\n  padding: 1.5rem;\n  position: relative;\n}\n.usa-summary-box .usa-list:last-child {\n  margin-bottom: 0;\n}\n* + .usa-summary-box {\n  margin-top: 1rem;\n}\n\n.usa-summary-box__heading {\n  font-family: Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;\n  font-size: 1.46rem;\n  line-height: 1.1;\n  margin-top: 0;\n  margin-bottom: 0.5rem;\n}\n\n.usa-summary-box__text {\n  margin-bottom: 0;\n  margin-top: 0;\n}\n\n.usa-summary-box__text:only-child {\n  margin-bottom: 1px;\n  padding-top: 0.25rem;\n}\n\n.usa-summary-box__link {\n  color: #005ea2;\n}\n.usa-summary-box__link:visited {\n  color: #54278f;\n}\n.usa-summary-box__link:hover, .usa-summary-box__link:active {\n  color: #1a4480;\n}\n.usa-summary-box__link[href^=\"#\"]:visited {\n  color: #005ea2;\n}\n.usa-summary-box__link[href^=\"#\"]:hover {\n  color: #1a4480;\n}\n\n.usa-table {\n  font-family: Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;\n  font-size: 1.06rem;\n  line-height: 1.5;\n  border-collapse: collapse;\n  border-spacing: 0;\n  color: #1b1b1b;\n  margin: 1.25rem 0;\n  text-align: left;\n  /* stylelint-disable selector-class-pattern */\n  /* stylelint-enable selector-class-pattern */\n}\n.usa-table thead td,\n.usa-table tfoot td,\n.usa-table th {\n  background-clip: padding-box;\n  line-height: 1.3;\n  background-color: #dfe1e2;\n  color: #1b1b1b;\n}\n.usa-table th,\n.usa-table td {\n  border: 1px solid #1b1b1b;\n  padding: 0.5rem 1rem;\n}\n.usa-table td {\n  background-color: white;\n  font-weight: normal;\n}\n.usa-table caption {\n  font-family: Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;\n  font-size: 1rem;\n  font-weight: 700;\n  margin-bottom: 0.75rem;\n  text-align: left;\n}\n.usa-table th[data-sortable] {\n  padding-right: 2.5rem;\n  position: relative;\n}\n.usa-table th[data-sortable]::after {\n  border-bottom-color: transparent;\n  border-bottom-style: solid;\n  border-bottom-width: 1px;\n  bottom: 0;\n  content: \"\";\n  height: 0;\n  left: 0;\n  position: absolute;\n  width: 100%;\n}\n.usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button, .usa-table th[data-sortable][aria-sort=none] .usa-table__header__button {\n  color: #005ea2;\n  text-decoration: underline;\n  background-color: transparent;\n  border: 0;\n  border-radius: 0;\n  box-shadow: none;\n  font-weight: normal;\n  justify-content: normal;\n  text-align: left;\n  margin: 0;\n  padding: 0;\n  width: auto;\n  height: 2rem;\n  width: 2rem;\n  background-position: center center;\n  background-size: 1.5rem;\n  color: #71767a;\n  cursor: pointer;\n  display: inline-block;\n  margin: 0;\n  position: absolute;\n  right: 0.25rem;\n  text-align: center;\n  text-decoration: none;\n  top: 50%;\n  transform: translate(0, -50%);\n}\n.usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button:visited, .usa-table th[data-sortable][aria-sort=none] .usa-table__header__button:visited {\n  color: #54278f;\n}\n.usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button:hover, .usa-table th[data-sortable][aria-sort=none] .usa-table__header__button:hover {\n  color: #1a4480;\n}\n.usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button:active, .usa-table th[data-sortable][aria-sort=none] .usa-table__header__button:active {\n  color: #162e51;\n}\n.usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button:focus, .usa-table th[data-sortable][aria-sort=none] .usa-table__header__button:focus {\n  outline: 0.25rem solid #2491ff;\n  outline-offset: 0rem;\n}\n.usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button:hover, .usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button.usa-button--hover, .usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button:disabled:hover, .usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button[aria-disabled=true]:hover, .usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button:disabled.usa-button--hover, .usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button[aria-disabled=true].usa-button--hover, .usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button:active, .usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button.usa-button--active, .usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button:disabled:active, .usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button[aria-disabled=true]:active, .usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button:disabled.usa-button--active, .usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button[aria-disabled=true].usa-button--active, .usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button:disabled:focus, .usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button[aria-disabled=true]:focus, .usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button:disabled.usa-focus, .usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button[aria-disabled=true].usa-focus, .usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button:disabled, .usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button[aria-disabled=true], .usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button.usa-button--disabled, .usa-table th[data-sortable][aria-sort=none] .usa-table__header__button:hover, .usa-table th[data-sortable][aria-sort=none] .usa-table__header__button.usa-button--hover, .usa-table th[data-sortable][aria-sort=none] .usa-table__header__button:disabled:hover, .usa-table th[data-sortable][aria-sort=none] .usa-table__header__button[aria-disabled=true]:hover, .usa-table th[data-sortable][aria-sort=none] .usa-table__header__button:disabled.usa-button--hover, .usa-table th[data-sortable][aria-sort=none] .usa-table__header__button[aria-disabled=true].usa-button--hover, .usa-table th[data-sortable][aria-sort=none] .usa-table__header__button:active, .usa-table th[data-sortable][aria-sort=none] .usa-table__header__button.usa-button--active, .usa-table th[data-sortable][aria-sort=none] .usa-table__header__button:disabled:active, .usa-table th[data-sortable][aria-sort=none] .usa-table__header__button[aria-disabled=true]:active, .usa-table th[data-sortable][aria-sort=none] .usa-table__header__button:disabled.usa-button--active, .usa-table th[data-sortable][aria-sort=none] .usa-table__header__button[aria-disabled=true].usa-button--active, .usa-table th[data-sortable][aria-sort=none] .usa-table__header__button:disabled:focus, .usa-table th[data-sortable][aria-sort=none] .usa-table__header__button[aria-disabled=true]:focus, .usa-table th[data-sortable][aria-sort=none] .usa-table__header__button:disabled.usa-focus, .usa-table th[data-sortable][aria-sort=none] .usa-table__header__button[aria-disabled=true].usa-focus, .usa-table th[data-sortable][aria-sort=none] .usa-table__header__button:disabled, .usa-table th[data-sortable][aria-sort=none] .usa-table__header__button[aria-disabled=true], .usa-table th[data-sortable][aria-sort=none] .usa-table__header__button.usa-button--disabled {\n  background-color: transparent;\n  box-shadow: none;\n  text-decoration: underline;\n}\n.usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button.usa-button--hover, .usa-table th[data-sortable][aria-sort=none] .usa-table__header__button.usa-button--hover {\n  color: #1a4480;\n}\n.usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button.usa-button--active, .usa-table th[data-sortable][aria-sort=none] .usa-table__header__button.usa-button--active {\n  color: #162e51;\n}\n.usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button:disabled, .usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button[aria-disabled=true], .usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button:disabled:hover, .usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button[aria-disabled=true]:hover, .usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button[aria-disabled=true]:focus, .usa-table th[data-sortable][aria-sort=none] .usa-table__header__button:disabled, .usa-table th[data-sortable][aria-sort=none] .usa-table__header__button[aria-disabled=true], .usa-table th[data-sortable][aria-sort=none] .usa-table__header__button:disabled:hover, .usa-table th[data-sortable][aria-sort=none] .usa-table__header__button[aria-disabled=true]:hover, .usa-table th[data-sortable][aria-sort=none] .usa-table__header__button[aria-disabled=true]:focus {\n  color: #757575;\n}\n@media (forced-colors: active) {\n  .usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button:disabled, .usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button[aria-disabled=true], .usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button:disabled:hover, .usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button[aria-disabled=true]:hover, .usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button[aria-disabled=true]:focus, .usa-table th[data-sortable][aria-sort=none] .usa-table__header__button:disabled, .usa-table th[data-sortable][aria-sort=none] .usa-table__header__button[aria-disabled=true], .usa-table th[data-sortable][aria-sort=none] .usa-table__header__button:disabled:hover, .usa-table th[data-sortable][aria-sort=none] .usa-table__header__button[aria-disabled=true]:hover, .usa-table th[data-sortable][aria-sort=none] .usa-table__header__button[aria-disabled=true]:focus {\n    color: GrayText;\n  }\n}\n.usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button .usa-icon, .usa-table th[data-sortable][aria-sort=none] .usa-table__header__button .usa-icon {\n  height: 1.5rem;\n  width: 1.5rem;\n  vertical-align: middle;\n}\n.usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button .usa-icon > g, .usa-table th[data-sortable][aria-sort=none] .usa-table__header__button .usa-icon > g {\n  fill: transparent;\n}\n.usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button .usa-icon > g.unsorted, .usa-table th[data-sortable][aria-sort=none] .usa-table__header__button .usa-icon > g.unsorted {\n  fill: #1b1b1b;\n}\n.usa-table th[data-sortable]:not([aria-sort]) .usa-table__header__button:hover .usa-icon > g.unsorted, .usa-table th[data-sortable][aria-sort=none] .usa-table__header__button:hover .usa-icon > g.unsorted {\n  fill: black;\n}\n.usa-table th[data-sortable][aria-sort=descending], .usa-table th[data-sortable][aria-sort=ascending] {\n  background-color: #97d4ea;\n}\n.usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button {\n  color: #005ea2;\n  text-decoration: underline;\n  background-color: transparent;\n  border: 0;\n  border-radius: 0;\n  box-shadow: none;\n  font-weight: normal;\n  justify-content: normal;\n  text-align: left;\n  margin: 0;\n  padding: 0;\n  width: auto;\n  height: 2rem;\n  width: 2rem;\n  background-position: center center;\n  background-size: 1.5rem;\n  color: #71767a;\n  cursor: pointer;\n  display: inline-block;\n  margin: 0;\n  position: absolute;\n  right: 0.25rem;\n  text-align: center;\n  text-decoration: none;\n  top: 50%;\n  transform: translate(0, -50%);\n}\n.usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button:visited {\n  color: #54278f;\n}\n.usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button:hover {\n  color: #1a4480;\n}\n.usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button:active {\n  color: #162e51;\n}\n.usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button:focus {\n  outline: 0.25rem solid #2491ff;\n  outline-offset: 0rem;\n}\n.usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button:hover, .usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button.usa-button--hover, .usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button:disabled:hover, .usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button[aria-disabled=true]:hover, .usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button:disabled.usa-button--hover, .usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button[aria-disabled=true].usa-button--hover, .usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button:active, .usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button.usa-button--active, .usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button:disabled:active, .usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button[aria-disabled=true]:active, .usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button:disabled.usa-button--active, .usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button[aria-disabled=true].usa-button--active, .usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button:disabled:focus, .usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button[aria-disabled=true]:focus, .usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button:disabled.usa-focus, .usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button[aria-disabled=true].usa-focus, .usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button:disabled, .usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button[aria-disabled=true], .usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button.usa-button--disabled {\n  background-color: transparent;\n  box-shadow: none;\n  text-decoration: underline;\n}\n.usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button.usa-button--hover {\n  color: #1a4480;\n}\n.usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button.usa-button--active {\n  color: #162e51;\n}\n.usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button:disabled, .usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button[aria-disabled=true], .usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button:disabled:hover, .usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button[aria-disabled=true]:hover, .usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button[aria-disabled=true]:focus {\n  color: #757575;\n}\n@media (forced-colors: active) {\n  .usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button:disabled, .usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button[aria-disabled=true], .usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button:disabled:hover, .usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button[aria-disabled=true]:hover, .usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button[aria-disabled=true]:focus {\n    color: GrayText;\n  }\n}\n.usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button .usa-icon {\n  height: 1.5rem;\n  width: 1.5rem;\n  vertical-align: middle;\n}\n.usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button .usa-icon > g {\n  fill: transparent;\n}\n.usa-table th[data-sortable][aria-sort=descending] .usa-table__header__button .usa-icon > g.descending {\n  fill: #1b1b1b;\n}\n.usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button {\n  color: #005ea2;\n  text-decoration: underline;\n  background-color: transparent;\n  border: 0;\n  border-radius: 0;\n  box-shadow: none;\n  font-weight: normal;\n  justify-content: normal;\n  text-align: left;\n  margin: 0;\n  padding: 0;\n  width: auto;\n  height: 2rem;\n  width: 2rem;\n  background-position: center center;\n  background-size: 1.5rem;\n  color: #71767a;\n  cursor: pointer;\n  display: inline-block;\n  margin: 0;\n  position: absolute;\n  right: 0.25rem;\n  text-align: center;\n  text-decoration: none;\n  top: 50%;\n  transform: translate(0, -50%);\n}\n.usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button:visited {\n  color: #54278f;\n}\n.usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button:hover {\n  color: #1a4480;\n}\n.usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button:active {\n  color: #162e51;\n}\n.usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button:focus {\n  outline: 0.25rem solid #2491ff;\n  outline-offset: 0rem;\n}\n.usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button:hover, .usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button.usa-button--hover, .usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button:disabled:hover, .usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button[aria-disabled=true]:hover, .usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button:disabled.usa-button--hover, .usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button[aria-disabled=true].usa-button--hover, .usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button:active, .usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button.usa-button--active, .usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button:disabled:active, .usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button[aria-disabled=true]:active, .usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button:disabled.usa-button--active, .usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button[aria-disabled=true].usa-button--active, .usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button:disabled:focus, .usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button[aria-disabled=true]:focus, .usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button:disabled.usa-focus, .usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button[aria-disabled=true].usa-focus, .usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button:disabled, .usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button[aria-disabled=true], .usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button.usa-button--disabled {\n  background-color: transparent;\n  box-shadow: none;\n  text-decoration: underline;\n}\n.usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button.usa-button--hover {\n  color: #1a4480;\n}\n.usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button.usa-button--active {\n  color: #162e51;\n}\n.usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button:disabled, .usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button[aria-disabled=true], .usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button:disabled:hover, .usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button[aria-disabled=true]:hover, .usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button[aria-disabled=true]:focus {\n  color: #757575;\n}\n@media (forced-colors: active) {\n  .usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button:disabled, .usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button[aria-disabled=true], .usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button:disabled:hover, .usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button[aria-disabled=true]:hover, .usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button[aria-disabled=true]:focus {\n    color: GrayText;\n  }\n}\n.usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button .usa-icon {\n  height: 1.5rem;\n  width: 1.5rem;\n  vertical-align: middle;\n}\n.usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button .usa-icon > g {\n  fill: transparent;\n}\n.usa-table th[data-sortable][aria-sort=ascending] .usa-table__header__button .usa-icon > g.ascending {\n  fill: #1b1b1b;\n}\n.usa-table thead th[aria-sort] {\n  background-color: #97d4ea;\n  color: #1b1b1b;\n}\n.usa-table td[data-sort-active],\n.usa-table th[data-sort-active] {\n  background-color: #e1f3f8;\n  color: #1b1b1b;\n}\n\n.usa-table--borderless {\n  /* stylelint-disable selector-class-pattern */\n  /* stylelint-enable selector-class-pattern */\n}\n.usa-table--borderless th,\n.usa-table--borderless thead td,\n.usa-table--borderless tfoot td {\n  background-color: white;\n}\n.usa-table--borderless th {\n  border-top: 0;\n  color: #1b1b1b;\n}\n.usa-table--borderless th[aria-sort] {\n  color: #1b1b1b;\n}\n.usa-table--borderless th[data-sortable]:not([aria-sort]) .usa-table__header__button .usa-icon > g.unsorted {\n  fill: #1b1b1b;\n}\n.usa-table--borderless th[data-sortable]:not([aria-sort]) .usa-table__header__button:hover .usa-icon > g.unsorted {\n  fill: black;\n}\n.usa-table--borderless th,\n.usa-table--borderless td {\n  border-left: 0;\n  border-right: 0;\n}\n\n.usa-table--compact th,\n.usa-table--compact td {\n  padding: 0.25rem 0.75rem;\n}\n\n.usa-table--striped tbody tr:nth-child(odd) td {\n  background-color: #f0f0f0;\n  color: #1b1b1b;\n}\n.usa-table--striped tbody tr:nth-child(odd) td[data-sort-active] {\n  background-color: #c3ebfa;\n  color: #1b1b1b;\n}\n\n@media all and (max-width: 29.99em) {\n  .usa-table--stacked thead {\n    display: none;\n  }\n  .usa-table--stacked th {\n    background-color: white;\n  }\n  .usa-table--stacked th,\n  .usa-table--stacked td {\n    border-bottom-width: 0;\n    display: block;\n    width: 100%;\n  }\n  .usa-table--stacked tr {\n    border-bottom: 0.25rem solid #1b1b1b;\n    border-top-width: 0;\n    width: 100%;\n  }\n  .usa-table--stacked tr th:first-child,\n  .usa-table--stacked tr td:first-child {\n    border-top-width: 0;\n  }\n  .usa-table--stacked tr:nth-child(odd) td,\n  .usa-table--stacked tr:nth-child(odd) th {\n    background-color: inherit;\n  }\n  .usa-table--stacked tr:first-child th:first-child,\n  .usa-table--stacked tr:first-child td:first-child {\n    border-top: 0.25rem solid #1b1b1b;\n  }\n  .usa-table--stacked th[data-label],\n  .usa-table--stacked td[data-label] {\n    padding-bottom: 0.75rem;\n  }\n  .usa-table--stacked th[data-label]:before,\n  .usa-table--stacked td[data-label]:before {\n    content: attr(data-label);\n    display: block;\n    font-weight: 700;\n    margin: -0.5rem -1rem 0rem;\n    padding: 0.75rem 1rem 0.25rem;\n  }\n}\n\n@media all and (max-width: 29.99em) {\n  .usa-table--stacked-header thead {\n    display: none;\n  }\n  .usa-table--stacked-header th {\n    background-color: white;\n  }\n  .usa-table--stacked-header th,\n  .usa-table--stacked-header td {\n    border-bottom-width: 0;\n    display: block;\n    width: 100%;\n  }\n  .usa-table--stacked-header tr {\n    border-bottom: 0.25rem solid #1b1b1b;\n    border-top-width: 0;\n    width: 100%;\n  }\n  .usa-table--stacked-header tr th:first-child,\n  .usa-table--stacked-header tr td:first-child {\n    border-top-width: 0;\n  }\n  .usa-table--stacked-header tr:nth-child(odd) td,\n  .usa-table--stacked-header tr:nth-child(odd) th {\n    background-color: inherit;\n  }\n  .usa-table--stacked-header tr:first-child th:first-child,\n  .usa-table--stacked-header tr:first-child td:first-child {\n    border-top: 0.25rem solid #1b1b1b;\n  }\n  .usa-table--stacked-header th[data-label],\n  .usa-table--stacked-header td[data-label] {\n    padding-bottom: 0.75rem;\n  }\n  .usa-table--stacked-header th[data-label]:before,\n  .usa-table--stacked-header td[data-label]:before {\n    content: attr(data-label);\n    display: block;\n    font-weight: 700;\n    margin: -0.5rem -1rem 0rem;\n    padding: 0.75rem 1rem 0.25rem;\n  }\n  .usa-table--stacked-header tr td:first-child,\n  .usa-table--stacked-header tr th:first-child {\n    font-family: Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;\n    font-size: 1.06rem;\n    line-height: 1.1;\n    background-color: #dfe1e2;\n    color: #1b1b1b;\n    font-weight: 700;\n    padding: 0.75rem 1rem;\n  }\n  .usa-table--stacked-header tr td:first-child:before,\n  .usa-table--stacked-header tr th:first-child:before {\n    display: none;\n  }\n}\n\n.width-mobile .usa-table--stacked thead {\n  display: none;\n}\n.width-mobile .usa-table--stacked th {\n  background-color: white;\n}\n.width-mobile .usa-table--stacked th,\n.width-mobile .usa-table--stacked td {\n  border-bottom-width: 0;\n  display: block;\n  width: 100%;\n}\n.width-mobile .usa-table--stacked tr {\n  border-bottom: 0.25rem solid #1b1b1b;\n  border-top-width: 0;\n  width: 100%;\n}\n.width-mobile .usa-table--stacked tr th:first-child,\n.width-mobile .usa-table--stacked tr td:first-child {\n  border-top-width: 0;\n}\n.width-mobile .usa-table--stacked tr:nth-child(odd) td,\n.width-mobile .usa-table--stacked tr:nth-child(odd) th {\n  background-color: inherit;\n}\n.width-mobile .usa-table--stacked tr:first-child th:first-child,\n.width-mobile .usa-table--stacked tr:first-child td:first-child {\n  border-top: 0.25rem solid #1b1b1b;\n}\n.width-mobile .usa-table--stacked th[data-label],\n.width-mobile .usa-table--stacked td[data-label] {\n  padding-bottom: 0.75rem;\n}\n.width-mobile .usa-table--stacked th[data-label]:before,\n.width-mobile .usa-table--stacked td[data-label]:before {\n  content: attr(data-label);\n  display: block;\n  font-weight: 700;\n  margin: -0.5rem -1rem 0rem;\n  padding: 0.75rem 1rem 0.25rem;\n}\n.width-mobile .usa-table--stacked-header thead {\n  display: none;\n}\n.width-mobile .usa-table--stacked-header th {\n  background-color: white;\n}\n.width-mobile .usa-table--stacked-header th,\n.width-mobile .usa-table--stacked-header td {\n  border-bottom-width: 0;\n  display: block;\n  width: 100%;\n}\n.width-mobile .usa-table--stacked-header tr {\n  border-bottom: 0.25rem solid #1b1b1b;\n  border-top-width: 0;\n  width: 100%;\n}\n.width-mobile .usa-table--stacked-header tr th:first-child,\n.width-mobile .usa-table--stacked-header tr td:first-child {\n  border-top-width: 0;\n}\n.width-mobile .usa-table--stacked-header tr:nth-child(odd) td,\n.width-mobile .usa-table--stacked-header tr:nth-child(odd) th {\n  background-color: inherit;\n}\n.width-mobile .usa-table--stacked-header tr:first-child th:first-child,\n.width-mobile .usa-table--stacked-header tr:first-child td:first-child {\n  border-top: 0.25rem solid #1b1b1b;\n}\n.width-mobile .usa-table--stacked-header th[data-label],\n.width-mobile .usa-table--stacked-header td[data-label] {\n  padding-bottom: 0.75rem;\n}\n.width-mobile .usa-table--stacked-header th[data-label]:before,\n.width-mobile .usa-table--stacked-header td[data-label]:before {\n  content: attr(data-label);\n  display: block;\n  font-weight: 700;\n  margin: -0.5rem -1rem 0rem;\n  padding: 0.75rem 1rem 0.25rem;\n}\n.width-mobile .usa-table--stacked-header tr td:first-child,\n.width-mobile .usa-table--stacked-header tr th:first-child {\n  font-family: Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;\n  font-size: 1.06rem;\n  line-height: 1.1;\n  background-color: #dfe1e2;\n  color: #1b1b1b;\n  font-weight: 700;\n  padding: 0.75rem 1rem;\n}\n.width-mobile .usa-table--stacked-header tr td:first-child:before,\n.width-mobile .usa-table--stacked-header tr th:first-child:before {\n  display: none;\n}\n\n.usa-table--sticky-header {\n  border: 1px solid #1b1b1b;\n  border-collapse: separate;\n}\n.usa-table--sticky-header td,\n.usa-table--sticky-header th {\n  border-left: none;\n  border-top: none;\n}\n.usa-table--sticky-header td:last-child,\n.usa-table--sticky-header th:last-child {\n  border-right: none;\n}\n.usa-table--sticky-header tfoot td,\n.usa-table--sticky-header tfoot th {\n  border-top: 1px solid #1b1b1b;\n  border-bottom: none;\n}\n.usa-table--sticky-header tbody tr:last-child td,\n.usa-table--sticky-header tbody tr:last-child th {\n  border-bottom: none;\n}\n.usa-table--sticky-header thead {\n  position: sticky;\n  top: -1px;\n}\n.usa-table--sticky-header.usa-table--borderless {\n  border: none;\n}\n.usa-table--sticky-header.usa-table--borderless th {\n  background-color: white;\n}\n.usa-table--sticky-header.usa-table--borderless td,\n.usa-table--sticky-header.usa-table--borderless th {\n  border-right: none;\n}\n\n.usa-table-container--scrollable {\n  margin: 1.25rem 0;\n  overflow-y: hidden;\n}\n.usa-table-container--scrollable .usa-table {\n  margin: 0;\n}\n.usa-table-container--scrollable td {\n  white-space: nowrap;\n}\n\n.usa-tag {\n  font-family: Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;\n  font-size: 0.93rem;\n  color: white;\n  text-transform: uppercase;\n  background-color: #565c65;\n  border-radius: 2px;\n  margin-right: 0.25rem;\n  padding: 1px 0.5rem;\n}\n.usa-tag:only-of-type {\n  margin-right: 0;\n}\n\n.usa-tag--big {\n  padding-left: 0.5rem;\n  padding-right: 0.5rem;\n  font-family: Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;\n  font-size: 1.06rem;\n}\n\n/* Tooltips */\n.usa-tooltip {\n  display: inline-block;\n  position: relative;\n}\n\n.usa-tooltip__trigger {\n  cursor: pointer;\n}\n.usa-tooltip__trigger > svg {\n  display: block;\n  pointer-events: none;\n}\n\n.usa-tooltip__body,\n.usa-tooltip__body--top {\n  transition: opacity 0.08s ease-in-out;\n  background-color: #1b1b1b;\n  border-radius: 0.25rem;\n  color: #f0f0f0;\n  display: none;\n  font-size: 1rem;\n  opacity: 0;\n  padding: 0.5rem;\n  width: auto;\n  white-space: pre;\n  z-index: 100000;\n  position: absolute;\n  /* positioning is completed with JS */\n}\n.usa-tooltip__body::after,\n.usa-tooltip__body--top::after {\n  content: \"\";\n  display: block;\n  width: 0;\n  height: 0;\n  border-left: 5px solid transparent;\n  border-right: 5px solid transparent;\n  border-top: 5px solid #1b1b1b;\n  position: absolute;\n  bottom: -5px;\n  left: 50%;\n  margin-left: -5px;\n}\n.usa-tooltip__body::before,\n.usa-tooltip__body--top::before {\n  content: \"\";\n  display: block;\n  position: absolute;\n}\n\n.usa-tooltip__body--wrap {\n  width: 100%;\n  white-space: normal;\n  text-align: center;\n  min-width: 50vw;\n}\n\n.usa-tooltip__body.is-set {\n  display: block;\n}\n\n.usa-tooltip__body.is-visible {\n  opacity: 1;\n}\n\n.usa-tooltip__body--top::before {\n  top: 100%;\n  height: 5px;\n  left: 0;\n  right: 0;\n}\n\n.usa-tooltip__body--bottom::before {\n  bottom: 100%;\n  height: 5px;\n  left: 0;\n  right: 0;\n}\n.usa-tooltip__body--bottom::after {\n  border-left: 5px solid transparent;\n  border-right: 5px solid transparent;\n  border-bottom: 5px solid #1b1b1b;\n  border-top: 0;\n  bottom: auto;\n  top: -5px;\n}\n\n.usa-tooltip__body--right::before {\n  right: 100%;\n  bottom: 0;\n  top: 0;\n  width: 5px;\n}\n.usa-tooltip__body--right::after {\n  border-top: 5px solid transparent;\n  border-bottom: 5px solid transparent;\n  border-right: 5px solid #1b1b1b;\n  border-left: 0;\n  right: auto;\n  top: 50%;\n  bottom: 0;\n  left: -5px;\n  margin: -5px 0 0 0;\n}\n\n.usa-tooltip__body--left::before {\n  left: 100%;\n  bottom: 0;\n  top: 0;\n  width: 5px;\n}\n.usa-tooltip__body--left::after {\n  border-top: 5px solid transparent;\n  border-bottom: 5px solid transparent;\n  border-left: 5px solid #1b1b1b;\n  border-right: 0;\n  right: -5px;\n  top: 50%;\n  bottom: 0;\n  left: auto;\n  margin: -5px 0 0 0;\n}\n\n.usa-character-count__status {\n  display: inline-block;\n  padding-top: 0.25rem;\n}\n.usa-character-count__status.usa-character-count__status--invalid {\n  color: #b50909;\n  font-weight: 700;\n}\n\n.usa-input:disabled, .usa-input[aria-disabled=true] {\n  color: #454545;\n  background-color: #c9c9c9;\n  cursor: not-allowed;\n  opacity: 1;\n  -webkit-text-fill-color: #454545;\n}\n.usa-input:disabled:hover, .usa-input:disabled:active, .usa-input:disabled:focus, .usa-input:disabled.usa-focus, .usa-input[aria-disabled=true]:hover, .usa-input[aria-disabled=true]:active, .usa-input[aria-disabled=true]:focus, .usa-input[aria-disabled=true].usa-focus {\n  color: #454545;\n  background-color: #c9c9c9;\n}\n@media (forced-colors: active) {\n  .usa-input:disabled, .usa-input[aria-disabled=true] {\n    border: 0;\n    color: GrayText;\n  }\n  .usa-input:disabled:hover, .usa-input:disabled:active, .usa-input:disabled:focus, .usa-input:disabled.usa-focus, .usa-input[aria-disabled=true]:hover, .usa-input[aria-disabled=true]:active, .usa-input[aria-disabled=true]:focus, .usa-input[aria-disabled=true].usa-focus {\n    color: GrayText;\n  }\n}\n@media (forced-colors: active) {\n  .usa-input:disabled, .usa-input[aria-disabled=true] {\n    border: 2px solid GrayText;\n  }\n}\n\n.usa-input--2xs,\n.usa-form .usa-input--2xs {\n  max-width: 5ex;\n}\n\n.usa-input--xs,\n.usa-form .usa-input--xs {\n  max-width: 9ex;\n}\n\n.usa-input--sm,\n.usa-form .usa-input--sm {\n  max-width: 13ex;\n}\n\n.usa-input--small,\n.usa-form .usa-input--small {\n  max-width: 13ex;\n}\n\n.usa-input--md,\n.usa-form .usa-input--md {\n  max-width: 20ex;\n}\n\n.usa-input--medium,\n.usa-form .usa-input--medium {\n  max-width: 20ex;\n}\n\n.usa-input--lg,\n.usa-form .usa-input--lg {\n  max-width: 30ex;\n}\n\n.usa-input--xl,\n.usa-form .usa-input--xl {\n  max-width: 40ex;\n}\n\n.usa-input--2xl,\n.usa-form .usa-input--2xl {\n  max-width: 50ex;\n}\n\n.usa-input--error {\n  border-width: 0.25rem;\n  border-color: #b50909;\n  border-style: solid;\n  padding-top: calc(0.5rem - 0.25rem);\n  padding-bottom: calc(0.5rem - 0.25rem);\n}\n\n.usa-input--success {\n  border-width: 0.25rem;\n  border-color: #00a91c;\n  border-style: solid;\n  padding-top: calc(0.5rem - 0.25rem);\n  padding-bottom: calc(0.5rem - 0.25rem);\n}\n\n.usa-fieldset {\n  border: none;\n  margin: 0;\n  padding: 0;\n}\n\n.usa-legend {\n  font-family: Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;\n  font-size: 1.06rem;\n  line-height: 1.3;\n  display: block;\n  font-weight: normal;\n  margin-top: 1.5rem;\n  max-width: 30rem;\n}\n\n.usa-legend--large {\n  font-size: 2.13rem;\n  font-weight: 700;\n  margin-top: 1rem;\n}\n\n.usa-input-list {\n  margin-bottom: 0;\n  margin-top: 0;\n  list-style-type: none;\n  padding-left: 0;\n}\n.usa-input-list li {\n  line-height: 1.3;\n}\n\n.usa-prose .usa-input-list {\n  margin-bottom: 0;\n  margin-top: 0;\n  list-style-type: none;\n  padding-left: 0;\n}\n.usa-prose .usa-input-list li {\n  line-height: 1.3;\n}\n\n.usa-checkbox {\n  background: white;\n}\n\n.usa-checkbox__label {\n  color: #1b1b1b;\n}\n.usa-checkbox__label::before {\n  background: white;\n  box-shadow: 0 0 0 2px #1b1b1b;\n}\n@media (forced-colors: active) {\n  .usa-checkbox__label::before {\n    outline: 2px solid transparent;\n    outline-offset: 2px;\n  }\n}\n\n.usa-checkbox__input:checked + [class*=__label]::before {\n  background-color: #005ea2;\n  box-shadow: 0 0 0 2px #005ea2;\n}\n.usa-checkbox__input:disabled + [class*=__label], .usa-checkbox__input[aria-disabled=true] + [class*=__label] {\n  color: #757575;\n  cursor: not-allowed;\n}\n@media (forced-colors: active) {\n  .usa-checkbox__input:disabled + [class*=__label], .usa-checkbox__input[aria-disabled=true] + [class*=__label] {\n    color: GrayText;\n  }\n}\n.usa-checkbox__input:disabled + [class*=__label]::before, .usa-checkbox__input[aria-disabled=true] + [class*=__label]::before {\n  background-color: white;\n  box-shadow: 0 0 0 2px #757575;\n}\n.usa-checkbox__input--tile + [class*=__label] {\n  background-color: white;\n  border: 2px solid #c9c9c9;\n  color: #1b1b1b;\n}\n.usa-checkbox__input--tile:checked + [class*=__label] {\n  background-color: rgba(0, 94, 162, 0.1);\n  border-color: #005ea2;\n}\n@media (forced-colors: active) {\n  .usa-checkbox__input--tile:checked + [class*=__label] {\n    border: ButtonText solid 0.25rem;\n  }\n}\n.usa-checkbox__input--tile:disabled + [class*=__label], .usa-checkbox__input--tile[aria-disabled=true] + [class*=__label] {\n  border-color: #e6e6e6;\n}\n.usa-checkbox__input--tile:disabled:checked + [class*=__label], .usa-checkbox__input--tile:disabled:indeterminate + [class*=__label], .usa-checkbox__input--tile:disabled[data-indeterminate] + [class*=__label], .usa-checkbox__input--tile[aria-disabled=true]:checked + [class*=__label], .usa-checkbox__input--tile[aria-disabled=true]:indeterminate + [class*=__label], .usa-checkbox__input--tile[aria-disabled=true][data-indeterminate] + [class*=__label] {\n  background-color: white;\n}\n\n.usa-checkbox__input:indeterminate + [class*=__label]::before, .usa-checkbox__input[data-indeterminate] + [class*=__label]::before {\n  background-image: url(\"../img/checkbox-indeterminate.svg\"), linear-gradient(transparent, transparent);\n  background-repeat: no-repeat;\n  background-color: #005ea2;\n  box-shadow: 0 0 0 2px #005ea2;\n  background-position: center center;\n  background-size: 0.75rem auto;\n}\n@media (forced-colors: active) {\n  .usa-checkbox__input:indeterminate + [class*=__label]::before, .usa-checkbox__input[data-indeterminate] + [class*=__label]::before {\n    background-image: url(\"../img/checkbox-indeterminate-alt.svg\"), linear-gradient(transparent, transparent);\n    background-repeat: no-repeat;\n    background-color: SelectedItem;\n  }\n}\n.usa-checkbox__input:indeterminate:disabled + [class*=__label]::before, .usa-checkbox__input:indeterminate[aria-disabled=true] + [class*=__label]::before, .usa-checkbox__input[data-indeterminate]:disabled + [class*=__label]::before, .usa-checkbox__input[data-indeterminate][aria-disabled=true] + [class*=__label]::before {\n  box-shadow: 0 0 0 2px #757575;\n}\n.usa-checkbox__input:indeterminate:disabled + [class*=__label], .usa-checkbox__input:indeterminate[aria-disabled=true] + [class*=__label], .usa-checkbox__input[data-indeterminate]:disabled + [class*=__label], .usa-checkbox__input[data-indeterminate][aria-disabled=true] + [class*=__label] {\n  border-color: #e6e6e6;\n}\n.usa-checkbox__input--tile:indeterminate + [class*=__label], .usa-checkbox__input--tile[data-indeterminate] + [class*=__label] {\n  background-color: rgba(0, 94, 162, 0.1);\n  border-color: #005ea2;\n}\n@media (forced-colors: active) {\n  .usa-checkbox__input--tile:indeterminate + [class*=__label], .usa-checkbox__input--tile[data-indeterminate] + [class*=__label] {\n    border: ButtonText solid 0.25rem;\n  }\n}\n.usa-checkbox__input:checked + [class*=__label]::before, .usa-checkbox__input:checked:disabled + [class*=__label]::before, .usa-checkbox__input:checked[aria-disabled=true] + [class*=__label]::before {\n  background-image: url(\"../img/correct8.svg\"), linear-gradient(transparent, transparent);\n  background-repeat: no-repeat;\n}\n@media (forced-colors: active) {\n  .usa-checkbox__input:checked + [class*=__label]::before, .usa-checkbox__input:checked:disabled + [class*=__label]::before, .usa-checkbox__input:checked[aria-disabled=true] + [class*=__label]::before {\n    background-image: url(\"../img/correct8-alt.svg\"), linear-gradient(transparent, transparent);\n    background-repeat: no-repeat;\n  }\n}\n.usa-checkbox__input:checked:disabled + [class*=__label]::before, .usa-checkbox__input:checked[aria-disabled=true] + [class*=__label]::before, .usa-checkbox__input:indeterminate:disabled + [class*=__label]::before, .usa-checkbox__input:indeterminate[aria-disabled=true] + [class*=__label]::before, .usa-checkbox__input[data-indeterminate]:disabled + [class*=__label]::before, .usa-checkbox__input[data-indeterminate][aria-disabled=true] + [class*=__label]::before {\n  background-color: #757575;\n}\n@media (forced-colors: active) {\n  .usa-checkbox__input:checked:disabled + [class*=__label]::before, .usa-checkbox__input:checked[aria-disabled=true] + [class*=__label]::before, .usa-checkbox__input:indeterminate:disabled + [class*=__label]::before, .usa-checkbox__input:indeterminate[aria-disabled=true] + [class*=__label]::before, .usa-checkbox__input[data-indeterminate]:disabled + [class*=__label]::before, .usa-checkbox__input[data-indeterminate][aria-disabled=true] + [class*=__label]::before {\n    background-color: GrayText;\n  }\n}\n\n.usa-checkbox__input {\n  position: absolute;\n  left: -999em;\n  right: auto;\n}\n.usa-checkbox__input:focus + [class*=__label]::before {\n  outline: 0.25rem solid #2491ff;\n  outline-offset: 0.25rem;\n}\n.usa-checkbox__input--tile + [class*=__label] {\n  border-radius: 0.25rem;\n  margin-top: 0.5rem;\n  padding: 0.75rem 1rem 0.75rem 2.5rem;\n}\n.usa-checkbox__input--tile + [class*=__label]::before {\n  left: 0.5rem;\n}\n\n.usa-checkbox__input:checked + [class*=__label]::before {\n  background-position: center center;\n  background-size: 0.75rem auto;\n}\n@media print {\n  .usa-checkbox__input:checked + [class*=__label]::before {\n    background-image: none;\n    background-color: white;\n    content: \"✔\";\n    text-align: center;\n  }\n}\n@media (forced-colors: active) {\n  .usa-checkbox__input:checked + [class*=__label]::before {\n    background-color: SelectedItem;\n  }\n}\n\n.usa-checkbox__label {\n  cursor: pointer;\n  display: inherit;\n  font-weight: normal;\n  margin-top: 0.75rem;\n  padding-left: 2rem;\n  position: relative;\n}\n.usa-checkbox__label::before {\n  content: \" \";\n  display: block;\n  left: 0;\n  margin-left: 2px;\n  margin-top: 0.064rem;\n  position: absolute;\n}\n\n.usa-checkbox__label::before {\n  height: 1.25rem;\n  width: 1.25rem;\n  border-radius: 2px;\n}\n\n.usa-checkbox__label-description {\n  display: block;\n  font-size: 0.93rem;\n  margin-top: 0.5rem;\n}\n\n/*\n.checkbox-tests {\n  @include set-text-and-bg(\"green-80\");\n  @include checkbox-colors(\"green-80\", \"green-warm-10v\");\n  padding: units(2);\n  border-radius: radius(\"md\");\n}\n*/\n.usa-select {\n  background-image: url(\"../img/usa-icons/unfold_more.svg\"), linear-gradient(transparent, transparent);\n  background-repeat: no-repeat;\n  appearance: none;\n  background-color: white;\n  background-position: right 0.5rem center;\n  background-size: 1.25rem;\n  padding-right: 2rem;\n}\n.usa-select::-ms-expand {\n  display: none;\n}\n.usa-select:-webkit-autofill {\n  appearance: menulist;\n}\n.usa-select:-moz-focusring {\n  color: transparent;\n  text-shadow: 0 0 0 black;\n}\n.usa-select[multiple] {\n  height: auto;\n  background-image: none;\n  padding-right: 0;\n}\n.usa-select option {\n  overflow: hidden;\n  text-overflow: ellipsis;\n}\n.usa-select:disabled, .usa-select[aria-disabled=true] {\n  color: #454545;\n  background-color: #c9c9c9;\n  cursor: not-allowed;\n  opacity: 1;\n}\n.usa-select:disabled:hover, .usa-select:disabled:active, .usa-select:disabled:focus, .usa-select:disabled.usa-focus, .usa-select[aria-disabled=true]:hover, .usa-select[aria-disabled=true]:active, .usa-select[aria-disabled=true]:focus, .usa-select[aria-disabled=true].usa-focus {\n  color: #454545;\n  background-color: #c9c9c9;\n}\n@media (forced-colors: active) {\n  .usa-select:disabled, .usa-select[aria-disabled=true] {\n    border: 0;\n    color: GrayText;\n  }\n  .usa-select:disabled:hover, .usa-select:disabled:active, .usa-select:disabled:focus, .usa-select:disabled.usa-focus, .usa-select[aria-disabled=true]:hover, .usa-select[aria-disabled=true]:active, .usa-select[aria-disabled=true]:focus, .usa-select[aria-disabled=true].usa-focus {\n    color: GrayText;\n  }\n}\n@media (forced-colors: active) {\n  .usa-select:disabled, .usa-select[aria-disabled=true] {\n    border: 2px solid GrayText;\n  }\n}\n@media (forced-colors: active) {\n  .usa-select {\n    appearance: listbox;\n    background-image: none;\n    padding-right: 0;\n  }\n}\n\n.usa-combo-box {\n  max-width: 30rem;\n  position: relative;\n}\n\n.usa-combo-box--pristine .usa-combo-box__input {\n  padding-right: calc(5em + 4px);\n}\n.usa-combo-box--pristine .usa-combo-box__input::-ms-clear {\n  display: none;\n}\n.usa-combo-box--pristine .usa-combo-box__clear-input {\n  display: block;\n}\n@media (forced-colors: active) {\n  .usa-combo-box--pristine .usa-combo-box__clear-input {\n    background-image: url(\"../img/usa-icons/close.svg\");\n    background-repeat: no-repeat;\n    background-position: center center;\n    background-size: 1rem 1rem;\n    display: inline-block;\n    height: 1rem;\n    width: 1rem;\n    height: 1.5rem;\n    width: auto;\n    top: 0.5rem;\n  }\n  @supports (mask: url(\"\")) {\n    .usa-combo-box--pristine .usa-combo-box__clear-input {\n      background: none;\n      background-color: ButtonText;\n      mask-image: url(\"../img/usa-icons/close.svg\"), linear-gradient(transparent, transparent);\n      mask-position: center center;\n      mask-repeat: no-repeat;\n      mask-size: 1rem 1rem;\n    }\n  }\n}\n\n.usa-combo-box__input {\n  appearance: none;\n  margin-bottom: 0;\n  max-width: none;\n  padding-right: calc(2.5em + 3px);\n}\n.usa-combo-box__input:disabled, .usa-combo-box__input[aria-disabled=true] {\n  color: #454545;\n  background-color: #c9c9c9;\n  cursor: not-allowed;\n  opacity: 1;\n  -webkit-text-fill-color: #454545;\n}\n.usa-combo-box__input:disabled:hover, .usa-combo-box__input:disabled:active, .usa-combo-box__input:disabled:focus, .usa-combo-box__input:disabled.usa-focus, .usa-combo-box__input[aria-disabled=true]:hover, .usa-combo-box__input[aria-disabled=true]:active, .usa-combo-box__input[aria-disabled=true]:focus, .usa-combo-box__input[aria-disabled=true].usa-focus {\n  color: #454545;\n  background-color: #c9c9c9;\n}\n@media (forced-colors: active) {\n  .usa-combo-box__input:disabled, .usa-combo-box__input[aria-disabled=true] {\n    border: 0;\n    color: GrayText;\n  }\n  .usa-combo-box__input:disabled:hover, .usa-combo-box__input:disabled:active, .usa-combo-box__input:disabled:focus, .usa-combo-box__input:disabled.usa-focus, .usa-combo-box__input[aria-disabled=true]:hover, .usa-combo-box__input[aria-disabled=true]:active, .usa-combo-box__input[aria-disabled=true]:focus, .usa-combo-box__input[aria-disabled=true].usa-focus {\n    color: GrayText;\n  }\n}\n@media (forced-colors: active) {\n  .usa-combo-box__input:disabled, .usa-combo-box__input[aria-disabled=true] {\n    border: 2px solid GrayText;\n  }\n}\n.usa-combo-box__input:disabled::placeholder, .usa-combo-box__input[aria-disabled=true]::placeholder {\n  opacity: 1;\n}\n.usa-combo-box__input:disabled ~ .usa-combo-box__input-button-separator, .usa-combo-box__input[aria-disabled=true] ~ .usa-combo-box__input-button-separator {\n  background-color: #454545;\n  cursor: not-allowed;\n}\n\nbutton.usa-combo-box__toggle-list:focus,\nbutton.usa-combo-box__clear-input:focus {\n  outline-offset: -4px;\n}\nbutton.usa-combo-box__toggle-list:disabled, button.usa-combo-box__toggle-list[aria-disabled=true],\nbutton.usa-combo-box__clear-input:disabled,\nbutton.usa-combo-box__clear-input[aria-disabled=true] {\n  cursor: not-allowed;\n}\n\n/* stylelint-disable selector-class-pattern */\n.usa-combo-box__toggle-list__wrapper:focus,\n.usa-combo-box__clear-input__wrapper:focus {\n  outline: 0;\n}\n\n/* stylelint-enable selector-class-pattern */\n.usa-combo-box__toggle-list,\n.usa-combo-box__clear-input {\n  background-color: transparent;\n  background-position: center;\n  background-size: auto 1.5rem;\n  border: 0;\n  bottom: 1px;\n  cursor: pointer;\n  margin-bottom: 0;\n  opacity: 0.6;\n  padding-right: 2rem;\n  position: absolute;\n  top: 1px;\n  z-index: 100;\n}\n\n.usa-combo-box__clear-input {\n  background-image: url(\"../img/usa-icons/close.svg\"), linear-gradient(transparent, transparent);\n  background-repeat: no-repeat;\n  display: none;\n  right: calc(2.5em + 3px);\n}\n\n.usa-combo-box__toggle-list {\n  background-image: url(\"../img/usa-icons/expand_more.svg\"), linear-gradient(transparent, transparent);\n  background-repeat: no-repeat;\n  background-size: auto 2rem;\n  right: 1px;\n}\n@media (forced-colors: active) {\n  .usa-combo-box__toggle-list {\n    background-image: url(\"../img/usa-icons/expand_more.svg\");\n    background-repeat: no-repeat;\n    background-position: center center;\n    background-size: 1rem 1rem;\n    display: inline-block;\n    height: 1rem;\n    width: 1rem;\n    height: auto;\n    width: auto;\n  }\n  @supports (mask: url(\"\")) {\n    .usa-combo-box__toggle-list {\n      background: none;\n      background-color: ButtonText;\n      mask-image: url(\"../img/usa-icons/expand_more.svg\"), linear-gradient(transparent, transparent);\n      mask-position: center center;\n      mask-repeat: no-repeat;\n      mask-size: 1rem 1rem;\n    }\n  }\n  .usa-combo-box__toggle-list:disabled, .usa-combo-box__toggle-list[aria-disabled=true] {\n    background-color: GrayText;\n  }\n}\n\n.usa-combo-box__input-button-separator {\n  background-color: #c6cace;\n  position: absolute;\n  top: 1px;\n  height: calc(100% - 1rem);\n  margin-bottom: 0.5rem;\n  margin-top: 0.5rem;\n  width: 1px;\n  right: calc(2.5em + 2px);\n  box-sizing: border-box;\n  z-index: 200;\n}\n@media (forced-colors: active) {\n  .usa-combo-box__input-button-separator {\n    background-color: ButtonText;\n  }\n}\n\n.usa-combo-box__list {\n  border-width: 1px;\n  border-color: #565c65;\n  border-style: solid;\n  background-color: white;\n  border-radius: 0;\n  border-top: 0;\n  margin: 0;\n  max-height: 12.1em;\n  overflow-x: hidden;\n  overflow-y: scroll;\n  padding: 0;\n  position: absolute;\n  width: 100%;\n  z-index: 300;\n}\n.usa-combo-box__list:focus {\n  outline: 0;\n}\n\n.usa-combo-box__list-option {\n  border-bottom: 1px solid #dfe1e2;\n  cursor: pointer;\n  display: block;\n  padding: 0.5rem;\n}\n.usa-combo-box__list-option--focused {\n  outline: 2px solid #162e51;\n  outline-offset: -2px;\n  position: relative;\n  z-index: 100;\n}\n.usa-combo-box__list-option--focused:focus {\n  outline-offset: -4px;\n}\n.usa-combo-box__list-option--selected {\n  background-color: #005ea2;\n  border-color: #005ea2;\n  color: white;\n}\n\n.usa-combo-box__list-option--no-results {\n  cursor: not-allowed;\n  display: block;\n  padding: 0.5rem;\n}\n\n.usa-date-picker__wrapper {\n  display: none;\n  position: relative;\n  max-width: 30rem;\n}\n.usa-date-picker__wrapper:focus {\n  outline: 0;\n}\n\n.usa-date-picker__external-input[aria-disabled=true] + .usa-date-picker__button, .usa-date-picker__calendar__year:disabled, .usa-date-picker__calendar__previous-year-chunk:disabled,\n.usa-date-picker__calendar__next-year-chunk:disabled, .usa-date-picker__calendar__month:disabled, .usa-date-picker__calendar__year-selection:disabled,\n.usa-date-picker__calendar__month-selection:disabled, .usa-date-picker__calendar__date:disabled, .usa-date-picker__calendar__previous-year:disabled,\n.usa-date-picker__calendar__previous-month:disabled,\n.usa-date-picker__calendar__next-year:disabled,\n.usa-date-picker__calendar__next-month:disabled, .usa-date-picker__button:disabled, [aria-disabled=true].usa-date-picker__calendar__year, [aria-disabled=true].usa-date-picker__calendar__previous-year-chunk,\n[aria-disabled=true].usa-date-picker__calendar__next-year-chunk, [aria-disabled=true].usa-date-picker__calendar__month, [aria-disabled=true].usa-date-picker__calendar__year-selection,\n[aria-disabled=true].usa-date-picker__calendar__month-selection, [aria-disabled=true].usa-date-picker__calendar__date, [aria-disabled=true].usa-date-picker__calendar__previous-year,\n[aria-disabled=true].usa-date-picker__calendar__previous-month,\n[aria-disabled=true].usa-date-picker__calendar__next-year,\n[aria-disabled=true].usa-date-picker__calendar__next-month, [aria-disabled=true].usa-date-picker__button {\n  cursor: not-allowed;\n  opacity: 0.6;\n}\n.usa-date-picker__external-input[aria-disabled=true] + .usa-date-picker__button:hover, .usa-date-picker__calendar__year:hover:disabled, .usa-date-picker__calendar__previous-year-chunk:hover:disabled,\n.usa-date-picker__calendar__next-year-chunk:hover:disabled, .usa-date-picker__calendar__month:hover:disabled, .usa-date-picker__calendar__year-selection:hover:disabled,\n.usa-date-picker__calendar__month-selection:hover:disabled, .usa-date-picker__calendar__date:hover:disabled, .usa-date-picker__calendar__previous-year:hover:disabled,\n.usa-date-picker__calendar__previous-month:hover:disabled,\n.usa-date-picker__calendar__next-year:hover:disabled,\n.usa-date-picker__calendar__next-month:hover:disabled, .usa-date-picker__button:hover:disabled, [aria-disabled=true].usa-date-picker__calendar__year:hover, [aria-disabled=true].usa-date-picker__calendar__previous-year-chunk:hover,\n[aria-disabled=true].usa-date-picker__calendar__next-year-chunk:hover, [aria-disabled=true].usa-date-picker__calendar__month:hover, [aria-disabled=true].usa-date-picker__calendar__year-selection:hover,\n[aria-disabled=true].usa-date-picker__calendar__month-selection:hover, [aria-disabled=true].usa-date-picker__calendar__date:hover, [aria-disabled=true].usa-date-picker__calendar__previous-year:hover,\n[aria-disabled=true].usa-date-picker__calendar__previous-month:hover,\n[aria-disabled=true].usa-date-picker__calendar__next-year:hover,\n[aria-disabled=true].usa-date-picker__calendar__next-month:hover, [aria-disabled=true].usa-date-picker__button:hover {\n  background-color: initial;\n}\n@media (forced-colors: active) {\n  .usa-date-picker__external-input[aria-disabled=true] + .usa-date-picker__button, .usa-date-picker__calendar__year:disabled, .usa-date-picker__calendar__previous-year-chunk:disabled,\n  .usa-date-picker__calendar__next-year-chunk:disabled, .usa-date-picker__calendar__month:disabled, .usa-date-picker__calendar__year-selection:disabled,\n  .usa-date-picker__calendar__month-selection:disabled, .usa-date-picker__calendar__date:disabled, .usa-date-picker__calendar__previous-year:disabled,\n  .usa-date-picker__calendar__previous-month:disabled,\n  .usa-date-picker__calendar__next-year:disabled,\n  .usa-date-picker__calendar__next-month:disabled, .usa-date-picker__button:disabled, [aria-disabled=true].usa-date-picker__calendar__year, [aria-disabled=true].usa-date-picker__calendar__previous-year-chunk,\n  [aria-disabled=true].usa-date-picker__calendar__next-year-chunk, [aria-disabled=true].usa-date-picker__calendar__month, [aria-disabled=true].usa-date-picker__calendar__year-selection,\n  [aria-disabled=true].usa-date-picker__calendar__month-selection, [aria-disabled=true].usa-date-picker__calendar__date, [aria-disabled=true].usa-date-picker__calendar__previous-year,\n  [aria-disabled=true].usa-date-picker__calendar__previous-month,\n  [aria-disabled=true].usa-date-picker__calendar__next-year,\n  [aria-disabled=true].usa-date-picker__calendar__next-month, [aria-disabled=true].usa-date-picker__button {\n    background-color: GrayText;\n  }\n  .usa-date-picker__external-input[aria-disabled=true] + .usa-date-picker__button:hover, .usa-date-picker__calendar__year:hover:disabled, .usa-date-picker__calendar__previous-year-chunk:hover:disabled,\n  .usa-date-picker__calendar__next-year-chunk:hover:disabled, .usa-date-picker__calendar__month:hover:disabled, .usa-date-picker__calendar__year-selection:hover:disabled,\n  .usa-date-picker__calendar__month-selection:hover:disabled, .usa-date-picker__calendar__date:hover:disabled, .usa-date-picker__calendar__previous-year:hover:disabled,\n  .usa-date-picker__calendar__previous-month:hover:disabled,\n  .usa-date-picker__calendar__next-year:hover:disabled,\n  .usa-date-picker__calendar__next-month:hover:disabled, .usa-date-picker__button:hover:disabled, [aria-disabled=true].usa-date-picker__calendar__year:hover, [aria-disabled=true].usa-date-picker__calendar__previous-year-chunk:hover,\n  [aria-disabled=true].usa-date-picker__calendar__next-year-chunk:hover, [aria-disabled=true].usa-date-picker__calendar__month:hover, [aria-disabled=true].usa-date-picker__calendar__year-selection:hover,\n  [aria-disabled=true].usa-date-picker__calendar__month-selection:hover, [aria-disabled=true].usa-date-picker__calendar__date:hover, [aria-disabled=true].usa-date-picker__calendar__previous-year:hover,\n  [aria-disabled=true].usa-date-picker__calendar__previous-month:hover,\n  [aria-disabled=true].usa-date-picker__calendar__next-year:hover,\n  [aria-disabled=true].usa-date-picker__calendar__next-month:hover, [aria-disabled=true].usa-date-picker__button:hover {\n    background-color: GrayText;\n  }\n}\n\n.usa-date-picker__calendar__year, .usa-date-picker__calendar__previous-year-chunk,\n.usa-date-picker__calendar__next-year-chunk, .usa-date-picker__calendar__month, .usa-date-picker__calendar__year-selection,\n.usa-date-picker__calendar__month-selection, .usa-date-picker__calendar__date, .usa-date-picker__calendar__previous-year,\n.usa-date-picker__calendar__previous-month,\n.usa-date-picker__calendar__next-year,\n.usa-date-picker__calendar__next-month, .usa-date-picker__button {\n  background-color: #f0f0f0;\n  border: 0;\n  width: 100%;\n}\n.usa-date-picker__calendar__year:not([disabled]), .usa-date-picker__calendar__previous-year-chunk:not([disabled]),\n.usa-date-picker__calendar__next-year-chunk:not([disabled]), .usa-date-picker__calendar__month:not([disabled]), .usa-date-picker__calendar__year-selection:not([disabled]),\n.usa-date-picker__calendar__month-selection:not([disabled]), .usa-date-picker__calendar__date:not([disabled]), .usa-date-picker__calendar__previous-year:not([disabled]),\n.usa-date-picker__calendar__previous-month:not([disabled]),\n.usa-date-picker__calendar__next-year:not([disabled]),\n.usa-date-picker__calendar__next-month:not([disabled]), .usa-date-picker__button:not([disabled]) {\n  cursor: pointer;\n}\n.usa-date-picker__calendar__year:not([disabled]):focus, .usa-date-picker__calendar__previous-year-chunk:not([disabled]):focus,\n.usa-date-picker__calendar__next-year-chunk:not([disabled]):focus, .usa-date-picker__calendar__month:not([disabled]):focus, .usa-date-picker__calendar__year-selection:not([disabled]):focus,\n.usa-date-picker__calendar__month-selection:not([disabled]):focus, .usa-date-picker__calendar__date:not([disabled]):focus, .usa-date-picker__calendar__previous-year:not([disabled]):focus,\n.usa-date-picker__calendar__previous-month:not([disabled]):focus,\n.usa-date-picker__calendar__next-year:not([disabled]):focus,\n.usa-date-picker__calendar__next-month:not([disabled]):focus, .usa-date-picker__button:not([disabled]):focus {\n  outline-offset: -4px;\n}\n.usa-date-picker__calendar__year:not([disabled]):hover, .usa-date-picker__calendar__previous-year-chunk:not([disabled]):hover,\n.usa-date-picker__calendar__next-year-chunk:not([disabled]):hover, .usa-date-picker__calendar__month:not([disabled]):hover, .usa-date-picker__calendar__year-selection:not([disabled]):hover,\n.usa-date-picker__calendar__month-selection:not([disabled]):hover, .usa-date-picker__calendar__date:not([disabled]):hover, .usa-date-picker__calendar__previous-year:not([disabled]):hover,\n.usa-date-picker__calendar__previous-month:not([disabled]):hover,\n.usa-date-picker__calendar__next-year:not([disabled]):hover,\n.usa-date-picker__calendar__next-month:not([disabled]):hover, .usa-date-picker__button:not([disabled]):hover {\n  background-color: #dfe1e2;\n}\n@media (forced-colors: active) {\n  .usa-date-picker__calendar__year:not([disabled]):hover, .usa-date-picker__calendar__previous-year-chunk:not([disabled]):hover,\n  .usa-date-picker__calendar__next-year-chunk:not([disabled]):hover, .usa-date-picker__calendar__month:not([disabled]):hover, .usa-date-picker__calendar__year-selection:not([disabled]):hover,\n  .usa-date-picker__calendar__month-selection:not([disabled]):hover, .usa-date-picker__calendar__date:not([disabled]):hover, .usa-date-picker__calendar__previous-year:not([disabled]):hover,\n  .usa-date-picker__calendar__previous-month:not([disabled]):hover,\n  .usa-date-picker__calendar__next-year:not([disabled]):hover,\n  .usa-date-picker__calendar__next-month:not([disabled]):hover, .usa-date-picker__button:not([disabled]):hover {\n    background-color: buttontext;\n  }\n}\n.usa-date-picker__calendar__year:not([disabled]):active, .usa-date-picker__calendar__previous-year-chunk:not([disabled]):active,\n.usa-date-picker__calendar__next-year-chunk:not([disabled]):active, .usa-date-picker__calendar__month:not([disabled]):active, .usa-date-picker__calendar__year-selection:not([disabled]):active,\n.usa-date-picker__calendar__month-selection:not([disabled]):active, .usa-date-picker__calendar__date:not([disabled]):active, .usa-date-picker__calendar__previous-year:not([disabled]):active,\n.usa-date-picker__calendar__previous-month:not([disabled]):active,\n.usa-date-picker__calendar__next-year:not([disabled]):active,\n.usa-date-picker__calendar__next-month:not([disabled]):active, .usa-date-picker__button:not([disabled]):active {\n  background-color: #a9aeb1;\n}\n@media (forced-colors: active) {\n  .usa-date-picker__calendar__year:not([disabled]):active, .usa-date-picker__calendar__previous-year-chunk:not([disabled]):active,\n  .usa-date-picker__calendar__next-year-chunk:not([disabled]):active, .usa-date-picker__calendar__month:not([disabled]):active, .usa-date-picker__calendar__year-selection:not([disabled]):active,\n  .usa-date-picker__calendar__month-selection:not([disabled]):active, .usa-date-picker__calendar__date:not([disabled]):active, .usa-date-picker__calendar__previous-year:not([disabled]):active,\n  .usa-date-picker__calendar__previous-month:not([disabled]):active,\n  .usa-date-picker__calendar__next-year:not([disabled]):active,\n  .usa-date-picker__calendar__next-month:not([disabled]):active, .usa-date-picker__button:not([disabled]):active {\n    background-color: buttontext;\n  }\n}\n.usa-date-picker--active .usa-date-picker__button {\n  background-color: #f0f0f0;\n}\n@media (forced-colors: active) {\n  .usa-date-picker--active .usa-date-picker__button {\n    background-color: buttontext;\n  }\n}\n.usa-date-picker--active .usa-date-picker__calendar {\n  z-index: 400;\n}\n\n.usa-date-picker__button {\n  background-image: url(\"../img/usa-icons/calendar_today.svg\"), linear-gradient(transparent, transparent);\n  background-repeat: no-repeat;\n  align-self: stretch;\n  background-color: transparent;\n  background-position: center;\n  background-size: 1.5rem;\n  margin-top: 0.5em;\n  width: 3em;\n}\n@media (forced-colors: active) {\n  .usa-date-picker__button {\n    background-image: url(\"../img/usa-icons/calendar_today.svg\");\n    background-repeat: no-repeat;\n    background-position: center center;\n    background-size: 2.5rem 2.5rem;\n    display: inline-block;\n    height: 2.5rem;\n    width: 3rem;\n    mask-size: 1.5rem !important;\n    position: relative;\n  }\n  @supports (mask: url(\"\")) {\n    .usa-date-picker__button {\n      background: none;\n      background-color: ButtonText;\n      mask-image: url(\"../img/usa-icons/calendar_today.svg\"), linear-gradient(transparent, transparent);\n      mask-position: center center;\n      mask-repeat: no-repeat;\n      mask-size: 2.5rem 2.5rem;\n    }\n  }\n  .usa-date-picker__button:not([disabled]):focus, .usa-date-picker__button:not([disabled]):hover {\n    background-color: Highlight;\n  }\n}\n\n.usa-date-picker--initialized .usa-date-picker__wrapper {\n  display: flex;\n}\n\n.usa-date-picker__calendar {\n  background-color: #f0f0f0;\n  left: auto;\n  max-width: 20rem;\n  position: absolute;\n  right: 0;\n  width: 100%;\n  z-index: 100;\n}\n\n/* stylelint-disable selector-class-pattern */\n.usa-date-picker__calendar__table {\n  border-spacing: 0;\n  border-collapse: collapse;\n  table-layout: fixed;\n  text-align: center;\n  width: 100%;\n}\n.usa-date-picker__calendar__table th {\n  font-weight: normal;\n}\n.usa-date-picker__calendar__table td {\n  padding: 0;\n}\n\n.usa-date-picker__calendar__row {\n  display: flex;\n  flex-wrap: wrap;\n  text-align: center;\n  width: 100%;\n}\n\n.usa-date-picker__calendar__cell {\n  background-color: #f0f0f0;\n  flex: 1;\n}\n\n.usa-date-picker__calendar__cell--center-items {\n  display: flex;\n  justify-content: center;\n  align-items: center;\n}\n@media (forced-colors: active) {\n  .usa-date-picker__calendar__cell--center-items:not([disabled]):hover {\n    outline: 2px solid transparent;\n    outline-offset: -2px;\n  }\n}\n\n.usa-date-picker__calendar__previous-year,\n.usa-date-picker__calendar__previous-month,\n.usa-date-picker__calendar__next-year,\n.usa-date-picker__calendar__next-month {\n  background-position: center;\n  background-size: auto 1.5rem;\n  height: 1.5rem;\n  padding: 20px 10px;\n}\n@media (forced-colors: active) {\n  .usa-date-picker__calendar__previous-year,\n  .usa-date-picker__calendar__previous-month,\n  .usa-date-picker__calendar__next-year,\n  .usa-date-picker__calendar__next-month {\n    mask-size: 1.5rem !important;\n  }\n}\n\n.usa-date-picker__calendar__previous-year:not([disabled]) {\n  background-image: url(\"../img/usa-icons/navigate_far_before.svg\"), linear-gradient(transparent, transparent);\n  background-repeat: no-repeat;\n}\n@media (forced-colors: active) {\n  .usa-date-picker__calendar__previous-year:not([disabled]) {\n    background-image: url(\"../img/usa-icons/navigate_far_before.svg\");\n    background-repeat: no-repeat;\n    background-position: center center;\n    background-size: 2.5rem 2.5rem;\n    display: inline-block;\n    height: 2.5rem;\n    width: 3rem;\n    background-color: buttonText;\n  }\n  @supports (mask: url(\"\")) {\n    .usa-date-picker__calendar__previous-year:not([disabled]) {\n      background: none;\n      background-color: ButtonText;\n      mask-image: url(\"../img/usa-icons/navigate_far_before.svg\"), linear-gradient(transparent, transparent);\n      mask-position: center center;\n      mask-repeat: no-repeat;\n      mask-size: 2.5rem 2.5rem;\n    }\n  }\n}\n\n.usa-date-picker__calendar__previous-month:not([disabled]) {\n  background-image: url(\"../img/usa-icons/navigate_before.svg\"), linear-gradient(transparent, transparent);\n  background-repeat: no-repeat;\n}\n@media (forced-colors: active) {\n  .usa-date-picker__calendar__previous-month:not([disabled]) {\n    background-image: url(\"../img/usa-icons/navigate_before.svg\");\n    background-repeat: no-repeat;\n    background-position: center center;\n    background-size: 2.5rem 2.5rem;\n    display: inline-block;\n    height: 2.5rem;\n    width: 3rem;\n    background-color: buttonText;\n  }\n  @supports (mask: url(\"\")) {\n    .usa-date-picker__calendar__previous-month:not([disabled]) {\n      background: none;\n      background-color: ButtonText;\n      mask-image: url(\"../img/usa-icons/navigate_before.svg\"), linear-gradient(transparent, transparent);\n      mask-position: center center;\n      mask-repeat: no-repeat;\n      mask-size: 2.5rem 2.5rem;\n    }\n  }\n}\n\n.usa-date-picker__calendar__next-year:not([disabled]) {\n  background-image: url(\"../img/usa-icons/navigate_far_next.svg\"), linear-gradient(transparent, transparent);\n  background-repeat: no-repeat;\n}\n@media (forced-colors: active) {\n  .usa-date-picker__calendar__next-year:not([disabled]) {\n    background-image: url(\"../img/usa-icons/navigate_far_next.svg\");\n    background-repeat: no-repeat;\n    background-position: center center;\n    background-size: 2.5rem 2.5rem;\n    display: inline-block;\n    height: 2.5rem;\n    width: 3rem;\n    background-color: buttonText;\n  }\n  @supports (mask: url(\"\")) {\n    .usa-date-picker__calendar__next-year:not([disabled]) {\n      background: none;\n      background-color: ButtonText;\n      mask-image: url(\"../img/usa-icons/navigate_far_next.svg\"), linear-gradient(transparent, transparent);\n      mask-position: center center;\n      mask-repeat: no-repeat;\n      mask-size: 2.5rem 2.5rem;\n    }\n  }\n}\n\n.usa-date-picker__calendar__next-month:not([disabled]) {\n  background-image: url(\"../img/usa-icons/navigate_next.svg\"), linear-gradient(transparent, transparent);\n  background-repeat: no-repeat;\n}\n@media (forced-colors: active) {\n  .usa-date-picker__calendar__next-month:not([disabled]) {\n    background-image: url(\"../img/usa-icons/navigate_next.svg\");\n    background-repeat: no-repeat;\n    background-position: center center;\n    background-size: 2.5rem 2.5rem;\n    display: inline-block;\n    height: 2.5rem;\n    width: 3rem;\n    background-color: buttonText;\n  }\n  @supports (mask: url(\"\")) {\n    .usa-date-picker__calendar__next-month:not([disabled]) {\n      background: none;\n      background-color: ButtonText;\n      mask-image: url(\"../img/usa-icons/navigate_next.svg\"), linear-gradient(transparent, transparent);\n      mask-position: center center;\n      mask-repeat: no-repeat;\n      mask-size: 2.5rem 2.5rem;\n    }\n  }\n}\n\n.usa-date-picker__calendar__day-of-week {\n  padding: 6px 0px;\n}\n\n.usa-date-picker__calendar__date {\n  padding: 10px 0px;\n}\n.usa-date-picker__calendar__date--focused {\n  outline: 2px solid #162e51;\n  outline-offset: -2px;\n  position: relative;\n  z-index: 100;\n}\n.usa-date-picker__calendar__date--next-month:not([disabled]), .usa-date-picker__calendar__date--previous-month:not([disabled]) {\n  color: #5d5d52;\n}\n.usa-date-picker__calendar__date--selected, .usa-date-picker__calendar__date--range-date {\n  background-color: #0050d8;\n  color: #f9f9f9;\n}\n.usa-date-picker__calendar__date--selected:not([disabled]), .usa-date-picker__calendar__date--range-date:not([disabled]) {\n  background-color: #0050d8;\n  color: #f9f9f9;\n}\n@media (forced-colors: active) {\n  .usa-date-picker__calendar__date--selected:not([disabled]), .usa-date-picker__calendar__date--range-date:not([disabled]) {\n    border: ActiveText 2px solid;\n  }\n}\n.usa-date-picker__calendar__date--selected:not([disabled]):hover, .usa-date-picker__calendar__date--range-date:not([disabled]):hover {\n  background-color: #0050d8;\n  color: #e6e6e6;\n}\n.usa-date-picker__calendar__date--selected:not([disabled]):focus, .usa-date-picker__calendar__date--range-date:not([disabled]):focus {\n  background-color: #0050d8;\n  color: #f9f9f9;\n}\n@media (forced-colors: active) {\n  .usa-date-picker__calendar__date--selected:not([disabled]):focus, .usa-date-picker__calendar__date--range-date:not([disabled]):focus {\n    border: ActiveText 2px solid;\n  }\n}\n.usa-date-picker__calendar__date--selected:not([disabled]):active, .usa-date-picker__calendar__date--range-date:not([disabled]):active {\n  background-color: #1a4480;\n}\n@media (forced-colors: active) {\n  .usa-date-picker__calendar__date--selected:not([disabled]):active, .usa-date-picker__calendar__date--range-date:not([disabled]):active {\n    background-color: Highlight;\n  }\n}\n.usa-date-picker__calendar__date--range-date-start {\n  border-top-left-radius: 10%;\n  border-bottom-left-radius: 10%;\n}\n.usa-date-picker__calendar__date--range-date-end {\n  border-top-right-radius: 10%;\n  border-bottom-right-radius: 10%;\n}\n.usa-date-picker__calendar__date--within-range {\n  background-color: #cfe8ff;\n}\n.usa-date-picker__calendar__date--within-range:not([disabled]) {\n  background-color: #cfe8ff;\n}\n@media (forced-colors: active) {\n  .usa-date-picker__calendar__date--within-range:not([disabled]) {\n    border: Highlight 2px solid;\n  }\n}\n.usa-date-picker__calendar__date--within-range:not([disabled]):hover {\n  background-color: #cfe8ff;\n}\n@media (forced-colors: active) {\n  .usa-date-picker__calendar__date--within-range:not([disabled]):hover {\n    border: Highlight 2px solid;\n  }\n}\n.usa-date-picker__calendar__date--within-range:not([disabled]):focus {\n  background-color: #cfe8ff;\n}\n@media (forced-colors: active) {\n  .usa-date-picker__calendar__date--within-range:not([disabled]):focus {\n    border: Highlight 2px solid;\n  }\n}\n.usa-date-picker__calendar__date--within-range:not([disabled]):active {\n  background-color: #cfe8ff;\n}\n@media (forced-colors: active) {\n  .usa-date-picker__calendar__date--within-range:not([disabled]):active {\n    background-color: Highlight;\n  }\n}\n\n@media all and (max-width: 19.99em) {\n  .usa-date-picker__calendar__month-label {\n    min-width: 100%;\n    order: -1;\n  }\n}\n@media all and (min-width: 20em) {\n  .usa-date-picker__calendar__month-label {\n    flex: 4;\n    text-align: center;\n  }\n}\n\n.usa-date-picker__calendar__year-selection,\n.usa-date-picker__calendar__month-selection {\n  display: inline-block;\n  height: 100%;\n  padding: 8px 4px;\n  width: auto;\n}\n@media all and (max-width: 19.99em) {\n  .usa-date-picker__calendar__year-selection,\n  .usa-date-picker__calendar__month-selection {\n    padding-bottom: 0;\n    padding-top: 12px;\n  }\n}\n\n.usa-date-picker__calendar__month-picker {\n  padding: 20px 5px;\n}\n@media all and (max-width: 19.99em) {\n  .usa-date-picker__calendar__month-picker {\n    padding-bottom: 12px;\n    padding-top: 12px;\n  }\n  .usa-date-picker__calendar__month-picker tr {\n    display: flex;\n    flex-direction: column;\n  }\n}\n\n.usa-date-picker__calendar__month {\n  padding: 10px 0;\n}\n.usa-date-picker__calendar__month--focused {\n  outline: 2px solid #162e51;\n  outline-offset: -2px;\n  position: relative;\n  z-index: 100;\n}\n.usa-date-picker__calendar__month--selected {\n  background-color: #0050d8;\n  color: #f9f9f9;\n}\n.usa-date-picker__calendar__month--selected:not([disabled]) {\n  background-color: #0050d8;\n  color: #f9f9f9;\n}\n.usa-date-picker__calendar__month--selected:not([disabled]):hover {\n  background-color: #0050d8;\n  color: #e6e6e6;\n}\n.usa-date-picker__calendar__month--selected:not([disabled]):focus {\n  background-color: #0050d8;\n  color: #f9f9f9;\n}\n.usa-date-picker__calendar__month--selected:not([disabled]):active {\n  background-color: #1a4480;\n}\n\n.usa-date-picker__calendar__year-picker {\n  padding: 20px 5px;\n}\n\n.usa-date-picker__calendar__previous-year-chunk,\n.usa-date-picker__calendar__next-year-chunk {\n  background-position: center;\n  background-size: auto 2rem;\n  margin: auto;\n  padding: 40px 0;\n}\n@media (forced-colors: active) {\n  .usa-date-picker__calendar__previous-year-chunk,\n  .usa-date-picker__calendar__next-year-chunk {\n    mask-size: 1.5rem !important;\n  }\n}\n\n.usa-date-picker__calendar__previous-year-chunk:not([disabled]) {\n  background-image: url(\"../img/usa-icons/navigate_before.svg\"), linear-gradient(transparent, transparent);\n  background-repeat: no-repeat;\n}\n@media (forced-colors: active) {\n  .usa-date-picker__calendar__previous-year-chunk:not([disabled]) {\n    background-image: none;\n  }\n  .usa-date-picker__calendar__previous-year-chunk:not([disabled])::after {\n    background-image: url(\"../img/usa-icons/navigate_before.svg\");\n    background-repeat: no-repeat;\n    background-position: center center;\n    background-size: 2.5rem 2.5rem;\n    display: inline-block;\n    height: 2.5rem;\n    width: 3rem;\n    content: \"\";\n    vertical-align: middle;\n    margin-left: auto;\n  }\n  @supports (mask: url(\"\")) {\n    .usa-date-picker__calendar__previous-year-chunk:not([disabled])::after {\n      background: none;\n      background-color: ButtonText;\n      mask-image: url(\"../img/usa-icons/navigate_before.svg\"), linear-gradient(transparent, transparent);\n      mask-position: center center;\n      mask-repeat: no-repeat;\n      mask-size: 2.5rem 2.5rem;\n    }\n  }\n  .usa-date-picker__calendar__previous-year-chunk:not([disabled]):hover {\n    border: 2px solid transparent;\n    background-color: transparent;\n  }\n}\n\n.usa-date-picker__calendar__next-year-chunk:not([disabled]) {\n  background-image: url(\"../img/usa-icons/navigate_next.svg\"), linear-gradient(transparent, transparent);\n  background-repeat: no-repeat;\n}\n@media (forced-colors: active) {\n  .usa-date-picker__calendar__next-year-chunk:not([disabled]) {\n    background-image: none;\n  }\n  .usa-date-picker__calendar__next-year-chunk:not([disabled])::after {\n    background-image: url(\"../img/usa-icons/navigate_next.svg\");\n    background-repeat: no-repeat;\n    background-position: center center;\n    background-size: 2.5rem 2.5rem;\n    display: inline-block;\n    height: 2.5rem;\n    width: 3rem;\n    content: \"\";\n    vertical-align: middle;\n    margin-left: auto;\n  }\n  @supports (mask: url(\"\")) {\n    .usa-date-picker__calendar__next-year-chunk:not([disabled])::after {\n      background: none;\n      background-color: ButtonText;\n      mask-image: url(\"../img/usa-icons/navigate_next.svg\"), linear-gradient(transparent, transparent);\n      mask-position: center center;\n      mask-repeat: no-repeat;\n      mask-size: 2.5rem 2.5rem;\n    }\n  }\n  .usa-date-picker__calendar__next-year-chunk:not([disabled]):hover {\n    border: 2px solid transparent;\n    background-color: transparent;\n  }\n}\n\n.usa-date-picker__calendar__year {\n  padding: 10px 0;\n}\n.usa-date-picker__calendar__year--focused {\n  outline: 2px solid #162e51;\n  outline-offset: -2px;\n  position: relative;\n  z-index: 100;\n}\n.usa-date-picker__calendar__year--selected {\n  background-color: #0050d8;\n  color: #f9f9f9;\n}\n.usa-date-picker__calendar__year--selected:not([disabled]) {\n  background-color: #0050d8;\n  color: #f9f9f9;\n}\n.usa-date-picker__calendar__year--selected:not([disabled]):hover {\n  background-color: #0050d8;\n  color: #e6e6e6;\n}\n.usa-date-picker__calendar__year--selected:not([disabled]):focus {\n  background-color: #0050d8;\n  color: #f9f9f9;\n}\n.usa-date-picker__calendar__year--selected:not([disabled]):active {\n  background-color: #1a4480;\n}\n\n/* stylelint-enable selector-class-pattern */\n.usa-error-message {\n  padding-bottom: 0.25rem;\n  padding-top: 0.25rem;\n  color: #b50909;\n  display: block;\n  font-weight: 700;\n}\n\n[type=file] {\n  border: none;\n  margin-top: 0.5rem;\n  padding-left: 0;\n  padding-top: 0.2rem;\n}\n\n.usa-file-input {\n  display: block;\n  max-width: 30rem;\n  width: 100%;\n}\n\n.usa-file-input__target {\n  border: 1px dashed #a9aeb1;\n  display: block;\n  font-size: 0.93rem;\n  margin-top: 0.5rem;\n  position: relative;\n  text-align: center;\n  width: 100%;\n}\n.usa-file-input__target:hover {\n  border-color: #71767a;\n}\n\n.usa-file-input__target.has-invalid-file {\n  border-color: #fa9441;\n}\n\n.usa-file-input__accepted-files-message {\n  font-weight: bold;\n  margin: -1.5rem 0 1.5rem;\n  pointer-events: none;\n  position: relative;\n  z-index: 3;\n}\n\n.has-invalid-file .usa-file-input__accepted-files-message {\n  color: #b50909;\n}\n\n.usa-file-input__choose {\n  color: #005ea2;\n  text-decoration: underline;\n  font-weight: normal;\n}\n.usa-file-input__choose:visited {\n  color: #54278f;\n}\n.usa-file-input__choose:hover {\n  color: #1a4480;\n}\n.usa-file-input__choose:active {\n  color: #162e51;\n}\n.usa-file-input__choose:focus {\n  outline: 0.25rem solid #2491ff;\n  outline-offset: 0rem;\n}\n\n.usa-file-input__instructions {\n  padding: 2rem 1rem;\n  pointer-events: none;\n  position: relative;\n  z-index: 3;\n}\n\n.usa-file-input__box {\n  background: white;\n  height: 100%;\n  left: 0;\n  pointer-events: none;\n  position: absolute;\n  top: 0;\n  width: 100%;\n  z-index: 2;\n}\n\n.usa-file-input .usa-file-input__input[type] {\n  cursor: pointer;\n  height: 100%;\n  left: 0;\n  margin: 0;\n  max-width: none;\n  position: absolute;\n  padding: 0.5rem;\n  text-indent: -999em;\n  top: 0;\n  width: 100%;\n  z-index: 1;\n}\n\n.usa-file-input .usa-file-input__input[type]::-webkit-file-upload-button {\n  display: none;\n}\n\n.usa-file-input--drag .usa-file-input__target {\n  border-color: #005ea2;\n}\n\n.usa-file-input--drag .usa-file-input__box {\n  background-color: #d9e8f6;\n}\n\n.usa-file-input--drag .usa-file-input__preview {\n  opacity: 0.1;\n}\n\n.usa-file-input__preview-heading {\n  align-items: center;\n  background: #d9e8f6;\n  display: flex;\n  font-weight: bold;\n  justify-content: space-between;\n  padding: 0.5rem;\n  pointer-events: none;\n  position: relative;\n  z-index: 3;\n}\n\n.usa-file-input__preview {\n  align-items: center;\n  background: #d9e8f6;\n  word-wrap: anywhere;\n  display: flex;\n  font-size: 0.87rem;\n  margin-top: 1px;\n  padding: 0.25rem 0.5rem;\n  pointer-events: none;\n  position: relative;\n  text-align: left;\n  z-index: 3;\n}\n.usa-file-input__preview:last-child {\n  margin-bottom: -1.5rem;\n}\n\n.usa-file-input__preview-image {\n  border: none;\n  display: block;\n  height: 2.5rem;\n  margin-right: 0.5rem;\n  object-fit: contain;\n  width: 2.5rem;\n}\n\n.usa-file-input__preview-image.is-loading {\n  background-image: url(\"../img/loader.svg\"), linear-gradient(transparent, transparent);\n  background-repeat: no-repeat;\n  background-position: center center;\n  background-repeat: no-repeat;\n  background-size: 2rem;\n}\n\n.usa-file-input__preview-image--generic,\n.usa-file-input__preview-image--pdf,\n.usa-file-input__preview-image--word,\n.usa-file-input__preview-image--excel,\n.usa-file-input__preview-image--video {\n  background-position: center center;\n  background-repeat: no-repeat;\n  background-size: 1.5rem;\n}\n\n.usa-file-input__preview-image--pdf {\n  background-image: url(\"../img/file-pdf.svg\"), linear-gradient(transparent, transparent);\n  background-repeat: no-repeat;\n}\n\n.usa-file-input__preview-image--generic {\n  background-image: url(\"../img/file.svg\"), linear-gradient(transparent, transparent);\n  background-repeat: no-repeat;\n}\n\n.usa-file-input__preview-image--word {\n  background-image: url(\"../img/file-word.svg\"), linear-gradient(transparent, transparent);\n  background-repeat: no-repeat;\n}\n\n.usa-file-input__preview-image--excel {\n  background-image: url(\"../img/file-excel.svg\"), linear-gradient(transparent, transparent);\n  background-repeat: no-repeat;\n}\n\n.usa-file-input__preview-image--video {\n  background-image: url(\"../img/file-video.svg\"), linear-gradient(transparent, transparent);\n  background-repeat: no-repeat;\n}\n\n.usa-form-group--error .usa-file-input__target {\n  border-color: #b50909;\n  border-width: 2px;\n}\n\n.usa-file-input--disabled .usa-file-input__instructions,\n.usa-file-input--disabled .usa-file-input__choose {\n  color: #454545;\n}\n.usa-file-input--disabled .usa-file-input__box {\n  background-color: #c9c9c9;\n}\n.usa-file-input--disabled .usa-file-input__input[type] {\n  cursor: not-allowed;\n}\n.usa-file-input--disabled .usa-file-input__target:hover {\n  border-color: #a9aeb1;\n}\n.usa-file-input--disabled .usa-file-input--drag .usa-file-input__box {\n  background-color: #c9c9c9;\n}\n@media (forced-colors: active) {\n  .usa-file-input--disabled .usa-file-input__instructions,\n  .usa-file-input--disabled .usa-file-input__choose {\n    color: GrayText;\n  }\n  .usa-file-input--disabled .usa-file-input__target,\n  .usa-file-input--disabled .usa-file-input__target:hover {\n    border-color: GrayText;\n  }\n}\n\n.usa-form-group {\n  margin-top: 1.5rem;\n}\n.usa-form-group .usa-label:first-child {\n  margin-top: 0;\n}\n\n.usa-form-group--error {\n  border-left-width: 0.25rem;\n  border-left-color: #b50909;\n  border-left-style: solid;\n  padding-left: 1rem;\n  position: relative;\n}\n@media all and (min-width: 64em) {\n  .usa-form-group--error {\n    margin-left: -1.25rem;\n  }\n}\n\n.usa-hint {\n  color: #71767a;\n}\n\n.usa-hint--required {\n  color: #b50909;\n}\n\n.usa-input-group {\n  align-items: center;\n  display: flex;\n  padding: 0;\n  position: relative;\n}\n.usa-input-group--error input:focus, .usa-input-group--success input:focus {\n  outline-offset: 0.25rem;\n}\n.usa-input-group--error {\n  border-width: 0.25rem;\n  border-color: #b50909;\n  border-style: solid;\n}\n.usa-input-group--success {\n  border-width: 0.25rem;\n  border-color: #00a91c;\n  border-style: solid;\n}\n.usa-input-group input {\n  padding-right: 2.5rem;\n  border: 0;\n  height: 100%;\n  margin-top: 0;\n  min-width: 0;\n  width: 100%;\n}\n.usa-input-group input:disabled + .usa-input-suffix, .usa-input-group input[aria-disabled=true] + .usa-input-suffix {\n  color: #454545;\n  background-color: #c9c9c9;\n  cursor: not-allowed;\n  opacity: 1;\n}\n.usa-input-group input:disabled + .usa-input-suffix:hover, .usa-input-group input:disabled + .usa-input-suffix:active, .usa-input-group input:disabled + .usa-input-suffix:focus, .usa-input-group input:disabled + .usa-input-suffix.usa-focus, .usa-input-group input[aria-disabled=true] + .usa-input-suffix:hover, .usa-input-group input[aria-disabled=true] + .usa-input-suffix:active, .usa-input-group input[aria-disabled=true] + .usa-input-suffix:focus, .usa-input-group input[aria-disabled=true] + .usa-input-suffix.usa-focus {\n  color: #454545;\n  background-color: #c9c9c9;\n}\n@media (forced-colors: active) {\n  .usa-input-group input:disabled + .usa-input-suffix, .usa-input-group input[aria-disabled=true] + .usa-input-suffix {\n    border: 0;\n    color: GrayText;\n  }\n  .usa-input-group input:disabled + .usa-input-suffix:hover, .usa-input-group input:disabled + .usa-input-suffix:active, .usa-input-group input:disabled + .usa-input-suffix:focus, .usa-input-group input:disabled + .usa-input-suffix.usa-focus, .usa-input-group input[aria-disabled=true] + .usa-input-suffix:hover, .usa-input-group input[aria-disabled=true] + .usa-input-suffix:active, .usa-input-group input[aria-disabled=true] + .usa-input-suffix:focus, .usa-input-group input[aria-disabled=true] + .usa-input-suffix.usa-focus {\n    color: GrayText;\n  }\n}\n@media (forced-colors: active) {\n  .usa-input-group input:disabled, .usa-input-group input[aria-disabled=true] {\n    border: 0;\n  }\n}\n@media (forced-colors: active) {\n  .usa-input-group:has(input:disabled), .usa-input-group:has(input[aria-disabled=true]) {\n    border: 2px solid GrayText;\n  }\n}\n\n.usa-input-group--2xs,\n.usa-form .usa-input-group--2xs {\n  max-width: 5ex;\n}\n\n.usa-input-group--xs,\n.usa-form .usa-input-group--xs {\n  max-width: 9ex;\n}\n\n.usa-input-group--sm,\n.usa-form .usa-input-group--sm {\n  max-width: 13ex;\n}\n\n.usa-input-group--small,\n.usa-form .usa-input-group--small {\n  max-width: 13ex;\n}\n\n.usa-input-group--md,\n.usa-form .usa-input-group--md {\n  max-width: 20ex;\n}\n\n.usa-input-group--medium,\n.usa-form .usa-input-group--medium {\n  max-width: 20ex;\n}\n\n.usa-input-group--lg,\n.usa-form .usa-input-group--lg {\n  max-width: 30ex;\n}\n\n.usa-input-group--xl,\n.usa-form .usa-input-group--xl {\n  max-width: 40ex;\n}\n\n.usa-input-group--2xl,\n.usa-form .usa-input-group--2xl {\n  max-width: 50ex;\n}\n\n.usa-input-prefix:has(+ input:disabled),\n.usa-input-prefix:has(+ input[aria-disabled=true]) {\n  color: #454545;\n  background-color: #c9c9c9;\n  cursor: not-allowed;\n  opacity: 1;\n}\n.usa-input-prefix:has(+ input:disabled):hover, .usa-input-prefix:has(+ input:disabled):active, .usa-input-prefix:has(+ input:disabled):focus, .usa-input-prefix:has(+ input:disabled).usa-focus,\n.usa-input-prefix:has(+ input[aria-disabled=true]):hover,\n.usa-input-prefix:has(+ input[aria-disabled=true]):active,\n.usa-input-prefix:has(+ input[aria-disabled=true]):focus,\n.usa-input-prefix:has(+ input[aria-disabled=true]).usa-focus {\n  color: #454545;\n  background-color: #c9c9c9;\n}\n@media (forced-colors: active) {\n  .usa-input-prefix:has(+ input:disabled),\n  .usa-input-prefix:has(+ input[aria-disabled=true]) {\n    border: 0;\n    color: GrayText;\n  }\n  .usa-input-prefix:has(+ input:disabled):hover, .usa-input-prefix:has(+ input:disabled):active, .usa-input-prefix:has(+ input:disabled):focus, .usa-input-prefix:has(+ input:disabled).usa-focus,\n  .usa-input-prefix:has(+ input[aria-disabled=true]):hover,\n  .usa-input-prefix:has(+ input[aria-disabled=true]):active,\n  .usa-input-prefix:has(+ input[aria-disabled=true]):focus,\n  .usa-input-prefix:has(+ input[aria-disabled=true]).usa-focus {\n    color: GrayText;\n  }\n}\n\n.usa-input-prefix,\n.usa-input-suffix {\n  position: absolute;\n  color: #71767a;\n  line-height: 0;\n  padding: 0 0.5rem;\n  user-select: none;\n  white-space: nowrap;\n}\n.usa-input-prefix .usa-icon,\n.usa-input-suffix .usa-icon {\n  height: 1.5rem;\n  width: 1.5rem;\n}\n\n.usa-input-prefix + input {\n  padding-left: 2.5rem;\n  padding-right: 0.5rem;\n}\n\n.usa-input-suffix {\n  right: 0;\n}\n\n.usa-input-mask {\n  display: block;\n  position: relative;\n}\n\n.usa-input-mask--content {\n  border: 1px solid transparent;\n  color: #757575;\n  display: block;\n  left: 2px;\n  pointer-events: none;\n  position: absolute;\n  top: 0;\n}\n.usa-input-mask--content i {\n  visibility: hidden;\n}\n@media (forced-colors: active) {\n  .usa-input-mask--content i {\n    color: ButtonText;\n    font-style: normal;\n    visibility: visible;\n  }\n}\n@media (forced-colors: active) {\n  .usa-input-mask--content {\n    border: none;\n  }\n}\n\n.usa-masked,\n.usa-input-mask--content {\n  background-color: transparent;\n  padding: 0.5rem;\n}\n\n.usa-label {\n  font-family: Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;\n  font-size: 1.06rem;\n  line-height: 1.3;\n  display: block;\n  font-weight: normal;\n  margin-top: 1.5rem;\n  max-width: 30rem;\n}\n\n.usa-label--error {\n  font-weight: 700;\n  margin-top: 0;\n}\n\n.usa-label--required {\n  color: #b50909;\n}\n\n.usa-memorable-date {\n  display: flex;\n  flex-wrap: wrap;\n}\n.usa-memorable-date [type=number] {\n  -moz-appearance: textfield;\n}\n.usa-memorable-date [type=number]::-webkit-inner-spin-button {\n  appearance: none;\n}\n.usa-memorable-date [type=number]::-webkit-contacts-auto-fill-button {\n  visibility: hidden;\n  display: none !important;\n  /* stylelint-disable-line declaration-no-important */\n  pointer-events: none;\n  height: 0;\n  width: 0;\n  margin: 0;\n}\n.usa-memorable-date .usa-form-group {\n  margin-top: 1rem;\n}\n\n.usa-form-group--day,\n.usa-form-group--month,\n.usa-form-group--year {\n  flex: 0 1 auto;\n  margin-right: 1rem;\n  width: fit-content;\n}\n\n.usa-form-group--day input,\n.usa-form-group--month input {\n  width: 3rem;\n}\n\n.usa-form-group--month select {\n  width: 15rem;\n}\n\n.usa-form-group--year input {\n  width: 4.5rem;\n}\n\n.usa-radio {\n  background: white;\n}\n\n.usa-radio__label {\n  color: #1b1b1b;\n}\n.usa-radio__label::before {\n  background: white;\n  box-shadow: 0 0 0 2px #1b1b1b;\n}\n@media (forced-colors: active) {\n  .usa-radio__label::before {\n    outline: 2px solid transparent;\n    outline-offset: 2px;\n  }\n}\n\n.usa-radio__input:checked + [class*=__label]::before {\n  background-color: #005ea2;\n  box-shadow: 0 0 0 2px #005ea2;\n}\n.usa-radio__input:disabled + [class*=__label], .usa-radio__input[aria-disabled=true] + [class*=__label] {\n  color: #757575;\n  cursor: not-allowed;\n}\n@media (forced-colors: active) {\n  .usa-radio__input:disabled + [class*=__label], .usa-radio__input[aria-disabled=true] + [class*=__label] {\n    color: GrayText;\n  }\n}\n.usa-radio__input:disabled + [class*=__label]::before, .usa-radio__input[aria-disabled=true] + [class*=__label]::before {\n  background-color: white;\n  box-shadow: 0 0 0 2px #757575;\n}\n.usa-radio__input--tile + [class*=__label] {\n  background-color: white;\n  border: 2px solid #c9c9c9;\n  color: #1b1b1b;\n}\n.usa-radio__input--tile:checked + [class*=__label] {\n  background-color: rgba(0, 94, 162, 0.1);\n  border-color: #005ea2;\n}\n@media (forced-colors: active) {\n  .usa-radio__input--tile:checked + [class*=__label] {\n    border: ButtonText solid 0.25rem;\n  }\n}\n.usa-radio__input--tile:disabled + [class*=__label], .usa-radio__input--tile[aria-disabled=true] + [class*=__label] {\n  border-color: #e6e6e6;\n}\n.usa-radio__input--tile:disabled:checked + [class*=__label], .usa-radio__input--tile:disabled:indeterminate + [class*=__label], .usa-radio__input--tile:disabled[data-indeterminate] + [class*=__label], .usa-radio__input--tile[aria-disabled=true]:checked + [class*=__label], .usa-radio__input--tile[aria-disabled=true]:indeterminate + [class*=__label], .usa-radio__input--tile[aria-disabled=true][data-indeterminate] + [class*=__label] {\n  background-color: white;\n}\n\n.usa-radio__input:checked + [class*=__label]::before {\n  box-shadow: 0 0 0 2px #005ea2, inset 0 0 0 2px white;\n}\n@media (forced-colors: active) {\n  .usa-radio__input:checked + [class*=__label]::before {\n    background-color: ButtonText;\n  }\n}\n.usa-radio__input:checked:disabled + [class*=__label]::before, .usa-radio__input:checked[aria-disabled=true] + [class*=__label]::before {\n  background-color: #757575;\n  box-shadow: 0 0 0 2px #757575, inset 0 0 0 2px white;\n}\n@media (forced-colors: active) {\n  .usa-radio__input:checked:disabled + [class*=__label]::before, .usa-radio__input:checked[aria-disabled=true] + [class*=__label]::before {\n    background-color: GrayText;\n  }\n}\n\n.usa-radio__input {\n  position: absolute;\n  left: -999em;\n  right: auto;\n}\n.usa-radio__input:focus + [class*=__label]::before {\n  outline: 0.25rem solid #2491ff;\n  outline-offset: 0.25rem;\n}\n.usa-radio__input--tile + [class*=__label] {\n  border-radius: 0.25rem;\n  margin-top: 0.5rem;\n  padding: 0.75rem 1rem 0.75rem 2.5rem;\n}\n.usa-radio__input--tile + [class*=__label]::before {\n  left: 0.5rem;\n}\n\n@media print {\n  .usa-radio__input:checked + [class*=__label]::before {\n    box-shadow: inset 0 0 0 2px white, inset 0 0 0 1rem #005ea2, 0 0 0 2px #005ea2;\n  }\n}\n\n.usa-radio__label {\n  cursor: pointer;\n  display: inherit;\n  font-weight: normal;\n  margin-top: 0.75rem;\n  padding-left: 2rem;\n  position: relative;\n}\n.usa-radio__label::before {\n  content: \" \";\n  display: block;\n  left: 0;\n  margin-left: 2px;\n  margin-top: 0.064rem;\n  position: absolute;\n}\n\n.usa-radio__label::before {\n  height: 1.25rem;\n  border-radius: 99rem;\n  width: 1.25rem;\n}\n\n.usa-radio__label-description {\n  display: block;\n  font-size: 0.93rem;\n  margin-top: 0.5rem;\n}\n\n/*\n.radio-tests {\n  @include set-text-and-bg(\"green-80\");\n  @include radio-colors(\"green-80\", \"green-warm-10v\");\n  padding: units(2);\n  border-radius: radius(\"md\");\n}\n*/\n.usa-range {\n  appearance: none;\n  border: none;\n  padding-left: 1px;\n  width: 100%;\n}\n.usa-range:focus {\n  outline: none;\n}\n.usa-range:focus::-webkit-slider-thumb {\n  background-color: white;\n  box-shadow: 0 0 0 2px #2491ff;\n}\n.usa-range:focus::-moz-range-thumb {\n  background-color: white;\n  box-shadow: 0 0 0 2px #2491ff;\n}\n.usa-range:focus::-ms-thumb {\n  background-color: white;\n  box-shadow: 0 0 0 2px #2491ff;\n}\n.usa-range::-webkit-slider-runnable-track {\n  background-color: #f0f0f0;\n  border-radius: 99rem;\n  border: 1px solid #71767a;\n  cursor: pointer;\n  height: 1rem;\n  width: 100%;\n}\n.usa-range::-moz-range-track {\n  background-color: #f0f0f0;\n  border-radius: 99rem;\n  border: 1px solid #71767a;\n  cursor: pointer;\n  height: 1rem;\n  width: 100%;\n}\n.usa-range::-ms-track {\n  background-color: #f0f0f0;\n  border-radius: 99rem;\n  border: 1px solid #71767a;\n  cursor: pointer;\n  height: 1rem;\n  width: 100%;\n}\n.usa-range::-webkit-slider-thumb {\n  height: 1.25rem;\n  border-radius: 99rem;\n  width: 1.25rem;\n  background: #f0f0f0;\n  border: none;\n  box-shadow: 0 0 0 2px #71767a;\n  cursor: pointer;\n  appearance: none;\n  margin-top: -0.19rem;\n}\n@media (forced-colors: active) {\n  .usa-range::-webkit-slider-thumb {\n    outline: 2px solid transparent;\n  }\n}\n.usa-range::-moz-range-thumb {\n  height: 1.25rem;\n  border-radius: 99rem;\n  width: 1.25rem;\n  background: #f0f0f0;\n  border: none;\n  box-shadow: 0 0 0 2px #71767a;\n  cursor: pointer;\n}\n@media (forced-colors: active) {\n  .usa-range::-moz-range-thumb {\n    outline: 2px solid transparent;\n  }\n}\n.usa-range::-ms-thumb {\n  height: 1.25rem;\n  border-radius: 99rem;\n  width: 1.25rem;\n  background: #f0f0f0;\n  border: none;\n  box-shadow: 0 0 0 2px #71767a;\n  cursor: pointer;\n}\n@media (forced-colors: active) {\n  .usa-range::-ms-thumb {\n    outline: 2px solid transparent;\n  }\n}\n.usa-range::-ms-fill-lower {\n  background-color: #f0f0f0;\n  border-radius: 99rem;\n  border: 1px solid #71767a;\n}\n.usa-range::-ms-fill-upper {\n  background-color: #f0f0f0;\n  border-radius: 99rem;\n  border: 1px solid #71767a;\n}\n.usa-range:disabled, .usa-range[aria-disabled=true] {\n  opacity: 1;\n}\n.usa-range:disabled::-webkit-slider-runnable-track, .usa-range[aria-disabled=true]::-webkit-slider-runnable-track {\n  color: #454545;\n  background-color: #c9c9c9;\n  cursor: not-allowed;\n  opacity: 1;\n}\n.usa-range:disabled::-webkit-slider-runnable-track:hover, .usa-range:disabled::-webkit-slider-runnable-track:active, .usa-range:disabled::-webkit-slider-runnable-track:focus, .usa-range:disabled::-webkit-slider-runnable-track.usa-focus, .usa-range[aria-disabled=true]::-webkit-slider-runnable-track:hover, .usa-range[aria-disabled=true]::-webkit-slider-runnable-track:active, .usa-range[aria-disabled=true]::-webkit-slider-runnable-track:focus, .usa-range[aria-disabled=true]::-webkit-slider-runnable-track.usa-focus {\n  color: #454545;\n  background-color: #c9c9c9;\n}\n@media (forced-colors: active) {\n  .usa-range:disabled::-webkit-slider-runnable-track, .usa-range[aria-disabled=true]::-webkit-slider-runnable-track {\n    border: 0;\n    color: GrayText;\n  }\n  .usa-range:disabled::-webkit-slider-runnable-track:hover, .usa-range:disabled::-webkit-slider-runnable-track:active, .usa-range:disabled::-webkit-slider-runnable-track:focus, .usa-range:disabled::-webkit-slider-runnable-track.usa-focus, .usa-range[aria-disabled=true]::-webkit-slider-runnable-track:hover, .usa-range[aria-disabled=true]::-webkit-slider-runnable-track:active, .usa-range[aria-disabled=true]::-webkit-slider-runnable-track:focus, .usa-range[aria-disabled=true]::-webkit-slider-runnable-track.usa-focus {\n    color: GrayText;\n  }\n}\n@media (forced-colors: active) {\n  .usa-range:disabled::-webkit-slider-runnable-track, .usa-range[aria-disabled=true]::-webkit-slider-runnable-track {\n    border: 2px solid GrayText;\n  }\n}\n.usa-range:disabled::-moz-range-track, .usa-range[aria-disabled=true]::-moz-range-track {\n  color: #454545;\n  background-color: #c9c9c9;\n  cursor: not-allowed;\n  opacity: 1;\n}\n.usa-range:disabled::-moz-range-track:hover, .usa-range:disabled::-moz-range-track:active, .usa-range:disabled::-moz-range-track:focus, .usa-range:disabled::-moz-range-track.usa-focus, .usa-range[aria-disabled=true]::-moz-range-track:hover, .usa-range[aria-disabled=true]::-moz-range-track:active, .usa-range[aria-disabled=true]::-moz-range-track:focus, .usa-range[aria-disabled=true]::-moz-range-track.usa-focus {\n  color: #454545;\n  background-color: #c9c9c9;\n}\n@media (forced-colors: active) {\n  .usa-range:disabled::-moz-range-track, .usa-range[aria-disabled=true]::-moz-range-track {\n    border: 0;\n    color: GrayText;\n  }\n  .usa-range:disabled::-moz-range-track:hover, .usa-range:disabled::-moz-range-track:active, .usa-range:disabled::-moz-range-track:focus, .usa-range:disabled::-moz-range-track.usa-focus, .usa-range[aria-disabled=true]::-moz-range-track:hover, .usa-range[aria-disabled=true]::-moz-range-track:active, .usa-range[aria-disabled=true]::-moz-range-track:focus, .usa-range[aria-disabled=true]::-moz-range-track.usa-focus {\n    color: GrayText;\n  }\n}\n@media (forced-colors: active) {\n  .usa-range:disabled::-moz-range-track, .usa-range[aria-disabled=true]::-moz-range-track {\n    border: 2px solid GrayText;\n  }\n}\n.usa-range:disabled::-ms-track, .usa-range[aria-disabled=true]::-ms-track {\n  color: #454545;\n  background-color: #c9c9c9;\n  cursor: not-allowed;\n  opacity: 1;\n}\n.usa-range:disabled::-ms-track:hover, .usa-range:disabled::-ms-track:active, .usa-range:disabled::-ms-track:focus, .usa-range:disabled::-ms-track.usa-focus, .usa-range[aria-disabled=true]::-ms-track:hover, .usa-range[aria-disabled=true]::-ms-track:active, .usa-range[aria-disabled=true]::-ms-track:focus, .usa-range[aria-disabled=true]::-ms-track.usa-focus {\n  color: #454545;\n  background-color: #c9c9c9;\n}\n@media (forced-colors: active) {\n  .usa-range:disabled::-ms-track, .usa-range[aria-disabled=true]::-ms-track {\n    border: 0;\n    color: GrayText;\n  }\n  .usa-range:disabled::-ms-track:hover, .usa-range:disabled::-ms-track:active, .usa-range:disabled::-ms-track:focus, .usa-range:disabled::-ms-track.usa-focus, .usa-range[aria-disabled=true]::-ms-track:hover, .usa-range[aria-disabled=true]::-ms-track:active, .usa-range[aria-disabled=true]::-ms-track:focus, .usa-range[aria-disabled=true]::-ms-track.usa-focus {\n    color: GrayText;\n  }\n}\n.usa-range:disabled::-webkit-slider-thumb, .usa-range[aria-disabled=true]::-webkit-slider-thumb {\n  color: #454545;\n  background-color: #c9c9c9;\n  cursor: not-allowed;\n  opacity: 1;\n}\n.usa-range:disabled::-webkit-slider-thumb:hover, .usa-range:disabled::-webkit-slider-thumb:active, .usa-range:disabled::-webkit-slider-thumb:focus, .usa-range:disabled::-webkit-slider-thumb.usa-focus, .usa-range[aria-disabled=true]::-webkit-slider-thumb:hover, .usa-range[aria-disabled=true]::-webkit-slider-thumb:active, .usa-range[aria-disabled=true]::-webkit-slider-thumb:focus, .usa-range[aria-disabled=true]::-webkit-slider-thumb.usa-focus {\n  color: #454545;\n  background-color: #c9c9c9;\n}\n@media (forced-colors: active) {\n  .usa-range:disabled::-webkit-slider-thumb, .usa-range[aria-disabled=true]::-webkit-slider-thumb {\n    border: 0;\n    color: GrayText;\n  }\n  .usa-range:disabled::-webkit-slider-thumb:hover, .usa-range:disabled::-webkit-slider-thumb:active, .usa-range:disabled::-webkit-slider-thumb:focus, .usa-range:disabled::-webkit-slider-thumb.usa-focus, .usa-range[aria-disabled=true]::-webkit-slider-thumb:hover, .usa-range[aria-disabled=true]::-webkit-slider-thumb:active, .usa-range[aria-disabled=true]::-webkit-slider-thumb:focus, .usa-range[aria-disabled=true]::-webkit-slider-thumb.usa-focus {\n    color: GrayText;\n  }\n}\n.usa-range:disabled::-moz-range-thumb, .usa-range[aria-disabled=true]::-moz-range-thumb {\n  color: #454545;\n  background-color: #c9c9c9;\n  cursor: not-allowed;\n  opacity: 1;\n}\n.usa-range:disabled::-moz-range-thumb:hover, .usa-range:disabled::-moz-range-thumb:active, .usa-range:disabled::-moz-range-thumb:focus, .usa-range:disabled::-moz-range-thumb.usa-focus, .usa-range[aria-disabled=true]::-moz-range-thumb:hover, .usa-range[aria-disabled=true]::-moz-range-thumb:active, .usa-range[aria-disabled=true]::-moz-range-thumb:focus, .usa-range[aria-disabled=true]::-moz-range-thumb.usa-focus {\n  color: #454545;\n  background-color: #c9c9c9;\n}\n@media (forced-colors: active) {\n  .usa-range:disabled::-moz-range-thumb, .usa-range[aria-disabled=true]::-moz-range-thumb {\n    border: 0;\n    color: GrayText;\n  }\n  .usa-range:disabled::-moz-range-thumb:hover, .usa-range:disabled::-moz-range-thumb:active, .usa-range:disabled::-moz-range-thumb:focus, .usa-range:disabled::-moz-range-thumb.usa-focus, .usa-range[aria-disabled=true]::-moz-range-thumb:hover, .usa-range[aria-disabled=true]::-moz-range-thumb:active, .usa-range[aria-disabled=true]::-moz-range-thumb:focus, .usa-range[aria-disabled=true]::-moz-range-thumb.usa-focus {\n    color: GrayText;\n  }\n}\n.usa-range:disabled::-ms-thumb, .usa-range[aria-disabled=true]::-ms-thumb {\n  color: #454545;\n  background-color: #c9c9c9;\n  cursor: not-allowed;\n  opacity: 1;\n}\n.usa-range:disabled::-ms-thumb:hover, .usa-range:disabled::-ms-thumb:active, .usa-range:disabled::-ms-thumb:focus, .usa-range:disabled::-ms-thumb.usa-focus, .usa-range[aria-disabled=true]::-ms-thumb:hover, .usa-range[aria-disabled=true]::-ms-thumb:active, .usa-range[aria-disabled=true]::-ms-thumb:focus, .usa-range[aria-disabled=true]::-ms-thumb.usa-focus {\n  color: #454545;\n  background-color: #c9c9c9;\n}\n@media (forced-colors: active) {\n  .usa-range:disabled::-ms-thumb, .usa-range[aria-disabled=true]::-ms-thumb {\n    border: 0;\n    color: GrayText;\n  }\n  .usa-range:disabled::-ms-thumb:hover, .usa-range:disabled::-ms-thumb:active, .usa-range:disabled::-ms-thumb:focus, .usa-range:disabled::-ms-thumb.usa-focus, .usa-range[aria-disabled=true]::-ms-thumb:hover, .usa-range[aria-disabled=true]::-ms-thumb:active, .usa-range[aria-disabled=true]::-ms-thumb:focus, .usa-range[aria-disabled=true]::-ms-thumb.usa-focus {\n    color: GrayText;\n  }\n}\n.usa-range:disabled::-ms-fill-lower, .usa-range[aria-disabled=true]::-ms-fill-lower {\n  color: #454545;\n  background-color: #c9c9c9;\n  cursor: not-allowed;\n  opacity: 1;\n}\n.usa-range:disabled::-ms-fill-lower:hover, .usa-range:disabled::-ms-fill-lower:active, .usa-range:disabled::-ms-fill-lower:focus, .usa-range:disabled::-ms-fill-lower.usa-focus, .usa-range[aria-disabled=true]::-ms-fill-lower:hover, .usa-range[aria-disabled=true]::-ms-fill-lower:active, .usa-range[aria-disabled=true]::-ms-fill-lower:focus, .usa-range[aria-disabled=true]::-ms-fill-lower.usa-focus {\n  color: #454545;\n  background-color: #c9c9c9;\n}\n@media (forced-colors: active) {\n  .usa-range:disabled::-ms-fill-lower, .usa-range[aria-disabled=true]::-ms-fill-lower {\n    border: 0;\n    color: GrayText;\n  }\n  .usa-range:disabled::-ms-fill-lower:hover, .usa-range:disabled::-ms-fill-lower:active, .usa-range:disabled::-ms-fill-lower:focus, .usa-range:disabled::-ms-fill-lower.usa-focus, .usa-range[aria-disabled=true]::-ms-fill-lower:hover, .usa-range[aria-disabled=true]::-ms-fill-lower:active, .usa-range[aria-disabled=true]::-ms-fill-lower:focus, .usa-range[aria-disabled=true]::-ms-fill-lower.usa-focus {\n    color: GrayText;\n  }\n}\n.usa-range:disabled::-ms-fill-upper, .usa-range[aria-disabled=true]::-ms-fill-upper {\n  color: #454545;\n  background-color: #c9c9c9;\n  cursor: not-allowed;\n  opacity: 1;\n}\n.usa-range:disabled::-ms-fill-upper:hover, .usa-range:disabled::-ms-fill-upper:active, .usa-range:disabled::-ms-fill-upper:focus, .usa-range:disabled::-ms-fill-upper.usa-focus, .usa-range[aria-disabled=true]::-ms-fill-upper:hover, .usa-range[aria-disabled=true]::-ms-fill-upper:active, .usa-range[aria-disabled=true]::-ms-fill-upper:focus, .usa-range[aria-disabled=true]::-ms-fill-upper.usa-focus {\n  color: #454545;\n  background-color: #c9c9c9;\n}\n@media (forced-colors: active) {\n  .usa-range:disabled::-ms-fill-upper, .usa-range[aria-disabled=true]::-ms-fill-upper {\n    border: 0;\n    color: GrayText;\n  }\n  .usa-range:disabled::-ms-fill-upper:hover, .usa-range:disabled::-ms-fill-upper:active, .usa-range:disabled::-ms-fill-upper:focus, .usa-range:disabled::-ms-fill-upper.usa-focus, .usa-range[aria-disabled=true]::-ms-fill-upper:hover, .usa-range[aria-disabled=true]::-ms-fill-upper:active, .usa-range[aria-disabled=true]::-ms-fill-upper:focus, .usa-range[aria-disabled=true]::-ms-fill-upper.usa-focus {\n    color: GrayText;\n  }\n}\n\n.usa-textarea:disabled, .usa-textarea[aria-disabled=true] {\n  color: #454545;\n  background-color: #c9c9c9;\n  cursor: not-allowed;\n  opacity: 1;\n}\n.usa-textarea:disabled:hover, .usa-textarea:disabled:active, .usa-textarea:disabled:focus, .usa-textarea:disabled.usa-focus, .usa-textarea[aria-disabled=true]:hover, .usa-textarea[aria-disabled=true]:active, .usa-textarea[aria-disabled=true]:focus, .usa-textarea[aria-disabled=true].usa-focus {\n  color: #454545;\n  background-color: #c9c9c9;\n}\n@media (forced-colors: active) {\n  .usa-textarea:disabled, .usa-textarea[aria-disabled=true] {\n    border: 0;\n    color: GrayText;\n  }\n  .usa-textarea:disabled:hover, .usa-textarea:disabled:active, .usa-textarea:disabled:focus, .usa-textarea:disabled.usa-focus, .usa-textarea[aria-disabled=true]:hover, .usa-textarea[aria-disabled=true]:active, .usa-textarea[aria-disabled=true]:focus, .usa-textarea[aria-disabled=true].usa-focus {\n    color: GrayText;\n  }\n}\n@media (forced-colors: active) {\n  .usa-textarea:disabled, .usa-textarea[aria-disabled=true] {\n    border: 2px solid GrayText;\n  }\n}\n\n.usa-textarea {\n  height: 10rem;\n}\n\n.usa-time-picker {\n  width: 10em;\n}\n\n/*\n----------------------------------------\nSet basic font rules for the font\nutilities to reference.\n----------------------------------------\n*/\n[class*=font-mono-] {\n  font-family: Roboto Mono Web, Bitstream Vera Sans Mono, Consolas, Courier, monospace;\n}\n\n[class*=font-sans-] {\n  font-family: Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;\n}\n\n[class*=font-serif-] {\n  font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n}\n\n[class*=font-ui-] {\n  font-family: Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;\n}\n\n[class*=font-heading-] {\n  font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n}\n\n[class*=font-body-] {\n  font-family: Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;\n}\n\n[class*=font-code-] {\n  font-family: Roboto Mono Web, Bitstream Vera Sans Mono, Consolas, Courier, monospace;\n}\n\n[class*=font-alt-] {\n  font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n}\n\n/*\n========================================\nASPECT\n----------------------------------------\nusage:\n  .add-aspect-[key]\n----------------------------------------\noutput:\n  aspect-ratio: [value];\n----------------------------------------\nexample:\n  .add-aspect-16x9 {\n    height: inherit;\n    padding: inherit;\n    aspect-ratio: 1.7777777778;\n    max-width: 100%;\n  }\n----------------------------------------\n*/\n.add-aspect-9x16 {\n  box-sizing: border-box;\n  height: 0;\n  overflow: hidden;\n  padding-bottom: 177.77778%;\n  position: relative;\n}\n@supports (aspect-ratio: 1) {\n  .add-aspect-9x16 {\n    height: inherit;\n    padding: inherit;\n    aspect-ratio: 0.5625;\n    max-width: 100%;\n  }\n  .add-aspect-9x16 > * {\n    position: absolute;\n    top: 0;\n    left: 0;\n    width: 100%;\n    height: 100%;\n  }\n  img.add-aspect-9x16, .add-aspect-9x16 > img {\n    object-fit: cover;\n  }\n}\n\n.add-aspect-16x9 {\n  box-sizing: border-box;\n  height: 0;\n  overflow: hidden;\n  padding-bottom: 56.25%;\n  position: relative;\n}\n@supports (aspect-ratio: 1) {\n  .add-aspect-16x9 {\n    height: inherit;\n    padding: inherit;\n    aspect-ratio: 1.7777777778;\n    max-width: 100%;\n  }\n  .add-aspect-16x9 > * {\n    position: absolute;\n    top: 0;\n    left: 0;\n    width: 100%;\n    height: 100%;\n  }\n  img.add-aspect-16x9, .add-aspect-16x9 > img {\n    object-fit: cover;\n  }\n}\n\n.add-aspect-1x1 {\n  box-sizing: border-box;\n  height: 0;\n  overflow: hidden;\n  padding-bottom: 100%;\n  position: relative;\n}\n@supports (aspect-ratio: 1) {\n  .add-aspect-1x1 {\n    height: inherit;\n    padding: inherit;\n    aspect-ratio: 1;\n    max-width: 100%;\n  }\n  .add-aspect-1x1 > * {\n    position: absolute;\n    top: 0;\n    left: 0;\n    width: 100%;\n    height: 100%;\n  }\n  img.add-aspect-1x1, .add-aspect-1x1 > img {\n    object-fit: cover;\n  }\n}\n\n.add-aspect-4x3 {\n  box-sizing: border-box;\n  height: 0;\n  overflow: hidden;\n  padding-bottom: 75%;\n  position: relative;\n}\n@supports (aspect-ratio: 1) {\n  .add-aspect-4x3 {\n    height: inherit;\n    padding: inherit;\n    aspect-ratio: 1.3333333333;\n    max-width: 100%;\n  }\n  .add-aspect-4x3 > * {\n    position: absolute;\n    top: 0;\n    left: 0;\n    width: 100%;\n    height: 100%;\n  }\n  img.add-aspect-4x3, .add-aspect-4x3 > img {\n    object-fit: cover;\n  }\n}\n\n.add-aspect-2x1 {\n  box-sizing: border-box;\n  height: 0;\n  overflow: hidden;\n  padding-bottom: 50%;\n  position: relative;\n}\n@supports (aspect-ratio: 1) {\n  .add-aspect-2x1 {\n    height: inherit;\n    padding: inherit;\n    aspect-ratio: 2;\n    max-width: 100%;\n  }\n  .add-aspect-2x1 > * {\n    position: absolute;\n    top: 0;\n    left: 0;\n    width: 100%;\n    height: 100%;\n  }\n  img.add-aspect-2x1, .add-aspect-2x1 > img {\n    object-fit: cover;\n  }\n}\n\n@supports (aspect-ratio: 1) {\n  :where(img[class*=add-aspect-]) {\n    width: min-content;\n  }\n}\n/*\n========================================\nLIST RESET\n----------------------------------------\nusage:\n  .add-list-reset\n----------------------------------------\noutput:\n  margin-bottom: 0;\n  margin-top: 0;\n  padding-left: 0;\n  list-style: none;\n----------------------------------------\nexample:\n  .add-list-reset {\n    margin-bottom: 0;\n    margin-top: 0;\n    padding-left: 0;\n    list-style: none;\n  }\n----------------------------------------\n*/\n/*\n========================================\nalign-items\n----------------------------------------\nusage:\n  .flex-align-[key]\n----------------------------------------\noutput:\n  align-items: [value];\n----------------------------------------\nexample:\n  .flex-align-start {\n    align-items: flex-start;\n  }\n----------------------------------------\n*/\n/*\n========================================\nPALETTE REGISTRY\n----------------------------------------\nThis map collects the\navailable utility palettes\n----------------------------------------\n*/\n/*\n========================================\nFONT PLUGINS\n----------------------------------------\nThese plugins collect packaged\nfont-related values for inclusion in\nutilities\n----------------------------------------\n*/\n/*\n----------------------------------------\nrole-based theme sizes\n----------------------------------------\n*/\n/*\n----------------------------------------\nsystem font sizes\n----------------------------------------\n*/\n/*\n========================================\nMISC PLUGINS\n----------------------------------------\nThese plugins collect packaged\nspacing-related values for inclusion\nin utilities\n----------------------------------------\n*/\n/*\n========================================\nPALETTE REGISTRY\n----------------------------------------\nThis map collects the\navailable utility palettes\n----------------------------------------\n*/\n/*\n========================================\nSTANDARD PLUGINS\n----------------------------------------\nThese plugins collect standard property\nvalues as plugin\n----------------------------------------\n*/\n/*\n----------------------------------------\nget-palettes()\n----------------------------------------\nBuild a single map of plugin values\nfrom a list of plugin keys.\n----------------------------------------\n*/\n/*\n========================================\nalign-items\n----------------------------------------\nusage:\n  .flex-align-[key]\n----------------------------------------\noutput:\n  align-items: [value];\n----------------------------------------\nexample:\n  .flex-align-start {\n    align-items: flex-start;\n  }\n----------------------------------------\n*/\n/*\n========================================\nalign-self\n----------------------------------------\nusage:\n  .flex-align-self-[key]\n----------------------------------------\noutput:\n  align-self: [value];\n----------------------------------------\nexample:\n  .flex-align-self-start {\n    align-self: flex-start;\n  }\n----------------------------------------\n*/\n/*\n========================================\nalign-items\n----------------------------------------\nusage:\n  .flex-align-[key]\n----------------------------------------\noutput:\n  align-items: [value];\n----------------------------------------\nexample:\n  .flex-align-start {\n    align-items: flex-start;\n  }\n----------------------------------------\n*/\n/*\n========================================\nbackground-color\n----------------------------------------\nusage:\n  .bg-[key]\n----------------------------------------\noutput:\n  background-color: [value];\n----------------------------------------\nexample:\n  .bg-red {\n    background-color: #e52207;\n  }\n----------------------------------------\n*/\n/*\n========================================\nalign-items\n----------------------------------------\nusage:\n  .flex-align-[key]\n----------------------------------------\noutput:\n  align-items: [value];\n----------------------------------------\nexample:\n  .flex-align-start {\n    align-items: flex-start;\n  }\n----------------------------------------\n*/\n/*\n========================================\nborder\n----------------------------------------\nAlso applies `solid`\nNeeds to come before other border utils\n----------------------------------------\nusage:\n  .border-[modifier]*-[key]\n----------------------------------------\noutput:\n  border-[modifier]: [value];\n----------------------------------------\nexample:\n  .border-top-1px {\n    border-top: 1px solid;\n  }\n\n  .border-0 {\n    border: 0 solid;\n  }\n----------------------------------------\n*/\n/*\n========================================\nalign-items\n----------------------------------------\nusage:\n  .flex-align-[key]\n----------------------------------------\noutput:\n  align-items: [value];\n----------------------------------------\nexample:\n  .flex-align-start {\n    align-items: flex-start;\n  }\n----------------------------------------\n*/\n/*\n========================================\nborder-color\n----------------------------------------\nusage:\n  .border-[key]\n----------------------------------------\noutput:\n  border-color: [value];\n----------------------------------------\nexample:\n  .border-red {\n    border-color: #e52207;\n  }\n----------------------------------------\n*/\n/*\n========================================\nalign-items\n----------------------------------------\nusage:\n  .flex-align-[key]\n----------------------------------------\noutput:\n  align-items: [value];\n----------------------------------------\nexample:\n  .flex-align-start {\n    align-items: flex-start;\n  }\n----------------------------------------\n*/\n/*\n========================================\nborder-radius\n----------------------------------------\nusage:\n  .radius-[key]\n----------------------------------------\noutput:\n  border-radius: [value];\n----------------------------------------\nexample:\n  .radius-0 {\n    border-radius: 0;\n  }\n\n  .radius-pill {\n    border-radius: 99rem;\n  }\n----------------------------------------\n*/\n/*\n========================================\nalign-items\n----------------------------------------\nusage:\n  .flex-align-[key]\n----------------------------------------\noutput:\n  align-items: [value];\n----------------------------------------\nexample:\n  .flex-align-start {\n    align-items: flex-start;\n  }\n----------------------------------------\n*/\n/*\n========================================\nborder-style\n----------------------------------------\nusage:\n  .border-[key]\n----------------------------------------\noutput:\n  border-style: [value];\n----------------------------------------\nexample:\n  .border-dotted {\n    border-style: dotted;\n  }\n----------------------------------------\n*/\n/*\n========================================\nalign-items\n----------------------------------------\nusage:\n  .flex-align-[key]\n----------------------------------------\noutput:\n  align-items: [value];\n----------------------------------------\nexample:\n  .flex-align-start {\n    align-items: flex-start;\n  }\n----------------------------------------\n*/\n/*\n========================================\nborder-width\n----------------------------------------\nusage:\n  .border-[modifier]*-width-[key]\n----------------------------------------\noutput:\n  border-[modifier]-width: [value];\n----------------------------------------\nexample:\n  .border-top-width-1px {\n    border-top-width: 1px;\n  }\n----------------------------------------\n*/\n/*\n========================================\nalign-items\n----------------------------------------\nusage:\n  .flex-align-[key]\n----------------------------------------\noutput:\n  align-items: [value];\n----------------------------------------\nexample:\n  .flex-align-start {\n    align-items: flex-start;\n  }\n----------------------------------------\n*/\n/*\n========================================\nbottom\n----------------------------------------\nusage:\n  .bottom-[key]\n----------------------------------------\noutput:\n  bottom: [value];\n----------------------------------------\nexample:\n  .bottom-3 {\n    bottom: 1.5rem;\n  }\n\n  .bottom-neg-2px {\n    bottom: -2px;\n  }\n----------------------------------------\n*/\n/*\n========================================\nalign-items\n----------------------------------------\nusage:\n  .flex-align-[key]\n----------------------------------------\noutput:\n  align-items: [value];\n----------------------------------------\nexample:\n  .flex-align-start {\n    align-items: flex-start;\n  }\n----------------------------------------\n*/\n/*\n========================================\nbox-shadow\n----------------------------------------\nusage:\n  .shadow-[key]\n----------------------------------------\noutput:\n  box-shadow: [value];\n----------------------------------------\nexample:\n  .shadow-1 {\n    box-shadow: 0 1px 0.25rem 0 rgba(0, 0, 0, 0.1);\n  }\n----------------------------------------\n*/\n/*\n========================================\nalign-items\n----------------------------------------\nusage:\n  .flex-align-[key]\n----------------------------------------\noutput:\n  align-items: [value];\n----------------------------------------\nexample:\n  .flex-align-start {\n    align-items: flex-start;\n  }\n----------------------------------------\n*/\n/*\n========================================\ncircle\n----------------------------------------\nusage:\n  .circle-[key]\n----------------------------------------\noutput:\n  height: [value];\n  width: [value];\n  border-radius: 50%;\n----------------------------------------\nexample:\n  .circle-6 {\n    height: 3rem;\n    width: 3rem;\n    border-radius: 50%;\n  }\n----------------------------------------\n*/\n/*\n========================================\n.clearfix\n----------------------------------------\nusage:\n  .clearfix\n----------------------------------------\nexample:\n  .clearfix::after {\n    clear: both;\n    content: \"\";\n    display: block;\n  }\n----------------------------------------\n*/\n/*\n========================================\nalign-items\n----------------------------------------\nusage:\n  .flex-align-[key]\n----------------------------------------\noutput:\n  align-items: [value];\n----------------------------------------\nexample:\n  .flex-align-start {\n    align-items: flex-start;\n  }\n----------------------------------------\n*/\n/*\n========================================\ncolor\n----------------------------------------\nusage:\n  .text-[key]\n----------------------------------------\noutput:\n  color: [value];\n----------------------------------------\nexample:\n  .text-black {\n    color: black;\n  }\n----------------------------------------\n*/\n/*\n========================================\nalign-items\n----------------------------------------\nusage:\n  .flex-align-[key]\n----------------------------------------\noutput:\n  align-items: [value];\n----------------------------------------\nexample:\n  .flex-align-start {\n    align-items: flex-start;\n  }\n----------------------------------------\n*/\n/*\n========================================\ncursor\n----------------------------------------\nusage:\n  .cursor-[key]\n----------------------------------------\noutput:\n  cursor: [value];\n----------------------------------------\nexample:\n  .cursor-pointer {\n    cursor: pointer;\n  }\n----------------------------------------\n*/\n/*\n========================================\nalign-items\n----------------------------------------\nusage:\n  .flex-align-[key]\n----------------------------------------\noutput:\n  align-items: [value];\n----------------------------------------\nexample:\n  .flex-align-start {\n    align-items: flex-start;\n  }\n----------------------------------------\n*/\n/*\n========================================\ndisplay\n----------------------------------------\nusage:\n  .display-[key]\n----------------------------------------\noutput:\n  display: [value];\n----------------------------------------\nexample:\n  .display-none {\n    display: none;\n  }\n----------------------------------------\n*/\n/*\n========================================\nalign-items\n----------------------------------------\nusage:\n  .flex-align-[key]\n----------------------------------------\noutput:\n  align-items: [value];\n----------------------------------------\nexample:\n  .flex-align-start {\n    align-items: flex-start;\n  }\n----------------------------------------\n*/\n/*\n========================================\nfloat\n----------------------------------------\nusage:\n  .float-[value]\n----------------------------------------\noutput:\n  float: [value];\n----------------------------------------\nexample:\n  .float-left {\n    float: left;\n  }\n----------------------------------------\n*/\n/*\n========================================\nalign-items\n----------------------------------------\nusage:\n  .flex-align-[key]\n----------------------------------------\noutput:\n  align-items: [value];\n----------------------------------------\nexample:\n  .flex-align-start {\n    align-items: flex-start;\n  }\n----------------------------------------\n*/\n/*\n========================================\nflex\n----------------------------------------\nusage:\n  .flex-[key]\n----------------------------------------\noutput:\n  flex: [value];\n----------------------------------------\nexample:\n  .flex-1 {\n    flex: 1 0 0;\n  }\n\n  .flex-fill {\n    flex: 1 0 0;\n  }\n\n  .flex-auto {\n    flex: 0 1 auto;\n  }\n----------------------------------------\n*/\n/*\n========================================\nalign-items\n----------------------------------------\nusage:\n  .flex-align-[key]\n----------------------------------------\noutput:\n  align-items: [value];\n----------------------------------------\nexample:\n  .flex-align-start {\n    align-items: flex-start;\n  }\n----------------------------------------\n*/\n/*\n========================================\nflex-direction\n----------------------------------------\nusage:\n  .flex-[key]\n----------------------------------------\noutput:\n  flex-direction: [value];\n----------------------------------------\nexample:\n  .flex-row {\n    flex-direction: row;\n  }\n\n  .flex-column {\n    flex-direction: column;\n  }\n----------------------------------------\n*/\n/*\n========================================\nalign-items\n----------------------------------------\nusage:\n  .flex-align-[key]\n----------------------------------------\noutput:\n  align-items: [value];\n----------------------------------------\nexample:\n  .flex-align-start {\n    align-items: flex-start;\n  }\n----------------------------------------\n*/\n/*\n========================================\nflex-wrap\n----------------------------------------\nusage:\n  .flex-[key]\n----------------------------------------\noutput:\n  flex-wrap: [value];\n----------------------------------------\nexample:\n  .flex-wrap {\n    flex-wrap: wrap;\n  }\n\n  .flex-no-wrap {\n    flex-wrap: nowrap;\n  }\n----------------------------------------\n*/\n/*\n========================================\nalign-items\n----------------------------------------\nusage:\n  .flex-align-[key]\n----------------------------------------\noutput:\n  align-items: [value];\n----------------------------------------\nexample:\n  .flex-align-start {\n    align-items: flex-start;\n  }\n----------------------------------------\n*/\n/*\n========================================\nfont-size\n----------------------------------------\nusage:\n  .font-[key]-[key]\n----------------------------------------\noutput:\n  font-size: [value];\n----------------------------------------\nexample:\n  .font-sans-md {\n    font-size: 1.13rem;\n  }\n----------------------------------------\n*/\n/*\n========================================\nalign-items\n----------------------------------------\nusage:\n  .flex-align-[key]\n----------------------------------------\noutput:\n  align-items: [value];\n----------------------------------------\nexample:\n  .flex-align-start {\n    align-items: flex-start;\n  }\n----------------------------------------\n*/\n/*\n========================================\nfont-family\n----------------------------------------\nusage:\n  .font-family-[key]\n----------------------------------------\noutput:\n  font-family: [value];\n----------------------------------------\nexample:\n  .font-family-sans {\n    font-family:\n      Source Sans Pro Web,\n      Helvetica Neue,\n      Helvetica,\n      Roboto,\n      Arial,\n      sans-serif;\n  }\n----------------------------------------\n*/\n/*\n========================================\nalign-items\n----------------------------------------\nusage:\n  .flex-align-[key]\n----------------------------------------\noutput:\n  align-items: [value];\n----------------------------------------\nexample:\n  .flex-align-start {\n    align-items: flex-start;\n  }\n----------------------------------------\n*/\n/*\n========================================\nfont-feature-settings\n----------------------------------------\nusage:\n  .text-[key]\n----------------------------------------\noutput:\n  font-feature-settings: [value];\n----------------------------------------\nexample:\n  .text-tabular {\n    font-feature-settings:\n      'tnum' 1, 'kern' 1;\n  }\n----------------------------------------\n*/\n/*\n========================================\nalign-items\n----------------------------------------\nusage:\n  .flex-align-[key]\n----------------------------------------\noutput:\n  align-items: [value];\n----------------------------------------\nexample:\n  .flex-align-start {\n    align-items: flex-start;\n  }\n----------------------------------------\n*/\n/*\n========================================\nfont-style\n----------------------------------------\nusage:\n  .text-[key]\n----------------------------------------\noutput:\n  font-style: [value];\n----------------------------------------\nexample:\n  .text-italic {\n    font-style: italic;\n  }\n\n  .text-no-italic {\n    font-style: normal;\n  }\n----------------------------------------\n*/\n/*\n========================================\nalign-items\n----------------------------------------\nusage:\n  .flex-align-[key]\n----------------------------------------\noutput:\n  align-items: [value];\n----------------------------------------\nexample:\n  .flex-align-start {\n    align-items: flex-start;\n  }\n----------------------------------------\n*/\n/*\n========================================\nfont-weight\n----------------------------------------\nusage:\n  .text-[key]\n----------------------------------------\noutput:\n  font-weight: [value];\n----------------------------------------\nexample:\n  .text-bold {\n    font-weight: 700;\n  }\n\n  .text-light{\n    font-weight: 300;\n  }\n----------------------------------------\n*/\n/*\n========================================\nalign-items\n----------------------------------------\nusage:\n  .flex-align-[key]\n----------------------------------------\noutput:\n  align-items: [value];\n----------------------------------------\nexample:\n  .flex-align-start {\n    align-items: flex-start;\n  }\n----------------------------------------\n*/\n/*\n========================================\nheight\n----------------------------------------\nusage:\n  .height-[key]\n----------------------------------------\noutput:\n  height: [value];\n----------------------------------------\nexample:\n  .height-6 {\n    height: 3rem;\n  }\n----------------------------------------\n*/\n/*\n========================================\nalign-items\n----------------------------------------\nusage:\n  .flex-align-[key]\n----------------------------------------\noutput:\n  align-items: [value];\n----------------------------------------\nexample:\n  .flex-align-start {\n    align-items: flex-start;\n  }\n----------------------------------------\n*/\n/*\n========================================\njustify-content\n----------------------------------------\nusage:\n  .flex-justify-[key]\n----------------------------------------\noutput:\n  justify-content: [value];\n----------------------------------------\nexample:\n  .flex-justify-start {\n    justify-content: flex-start;\n  }\n----------------------------------------\n*/\n/*\n========================================\nalign-items\n----------------------------------------\nusage:\n  .flex-align-[key]\n----------------------------------------\noutput:\n  align-items: [value];\n----------------------------------------\nexample:\n  .flex-align-start {\n    align-items: flex-start;\n  }\n----------------------------------------\n*/\n/*\n========================================\nleft\n----------------------------------------\nusage:\n  .left-[key]\n----------------------------------------\noutput:\n  left: [value];\n----------------------------------------\nexample:\n  .left-neg-2px {\n    left: -2px;\n  }\n----------------------------------------\n*/\n/*\n========================================\nalign-items\n----------------------------------------\nusage:\n  .flex-align-[key]\n----------------------------------------\noutput:\n  align-items: [value];\n----------------------------------------\nexample:\n  .flex-align-start {\n    align-items: flex-start;\n  }\n----------------------------------------\n*/\n/*\n========================================\nletter-spacing\n----------------------------------------\nusage:\n  .text-ls-[key]\n----------------------------------------\noutput:\n  letter-spacing: [value];\n----------------------------------------\nexample:\n  .text-ls-2 {\n    letter-spacing: .1em;\n  }\n----------------------------------------\n*/\n/*\n========================================\nalign-items\n----------------------------------------\nusage:\n  .flex-align-[key]\n----------------------------------------\noutput:\n  align-items: [value];\n----------------------------------------\nexample:\n  .flex-align-start {\n    align-items: flex-start;\n  }\n----------------------------------------\n*/\n/*\n========================================\nline-height\n----------------------------------------\nusage:\n  .line-height-[modifier]-[key]\n----------------------------------------\noutput:\n  line-height: [value];\n----------------------------------------\nexample:\n  .line-height-sans-2 {\n    line-height: 1.1;\n  }\n----------------------------------------\n*/\n/*\n========================================\nalign-items\n----------------------------------------\nusage:\n  .flex-align-[key]\n----------------------------------------\noutput:\n  align-items: [value];\n----------------------------------------\nexample:\n  .flex-align-start {\n    align-items: flex-start;\n  }\n----------------------------------------\n*/\n/*\n========================================\nmargin\n----------------------------------------\nusage:\n  .margin-[modifier]*-[key]\n----------------------------------------\noutput:\n  margin: [value];\n----------------------------------------\nexample:\n  .margin-x-auto {\n    margin-left: auto;\n    margin-right: auto;\n  }\n\n  .margin-105 {\n    margin: .75rem;\n  }\n----------------------------------------\n*/\n/*\n========================================\nalign-items\n----------------------------------------\nusage:\n  .flex-align-[key]\n----------------------------------------\noutput:\n  align-items: [value];\n----------------------------------------\nexample:\n  .flex-align-start {\n    align-items: flex-start;\n  }\n----------------------------------------\n*/\n/*\n========================================\nmax-height\n----------------------------------------\nusage:\n  .maxh-[key]\n----------------------------------------\noutput:\n  max-height: [value];\n----------------------------------------\nexample:\n  .maxh-viewport {\n    max-height: 100vh;\n  }\n----------------------------------------\n*/\n/*\n========================================\nalign-items\n----------------------------------------\nusage:\n  .flex-align-[key]\n----------------------------------------\noutput:\n  align-items: [value];\n----------------------------------------\nexample:\n  .flex-align-start {\n    align-items: flex-start;\n  }\n----------------------------------------\n*/\n/*\n========================================\nmax-width\n----------------------------------------\nusage:\n  .maxw-[key]\n----------------------------------------\noutput:\n  max-width: [value];\n----------------------------------------\nexample:\n  .maxw-desktop {\n    max-width: 64rem;\n  }\n----------------------------------------\n*/\n/*\n========================================\nalign-items\n----------------------------------------\nusage:\n  .flex-align-[key]\n----------------------------------------\noutput:\n  align-items: [value];\n----------------------------------------\nexample:\n  .flex-align-start {\n    align-items: flex-start;\n  }\n----------------------------------------\n*/\n/*\n========================================\n.measure\n----------------------------------------\nproperty: max-width\n----------------------------------------\nusage:\n  .measure-[key]\n----------------------------------------\noutput:\n  max-width: [value];\n----------------------------------------\nexample:\n  .measure-4 {\n    max-width: 68ex;\n  }\n----------------------------------------\n*/\n/*\n========================================\nalign-items\n----------------------------------------\nusage:\n  .flex-align-[key]\n----------------------------------------\noutput:\n  align-items: [value];\n----------------------------------------\nexample:\n  .flex-align-start {\n    align-items: flex-start;\n  }\n----------------------------------------\n*/\n/*\n========================================\nmin-height\n----------------------------------------\nusage:\n  .minh-[key]\n----------------------------------------\noutput:\n  min-height: [value];\n----------------------------------------\nexample:\n  .minh-card {\n    min-height: 10rem;\n  }\n----------------------------------------\n*/\n/*\n========================================\nalign-items\n----------------------------------------\nusage:\n  .flex-align-[key]\n----------------------------------------\noutput:\n  align-items: [value];\n----------------------------------------\nexample:\n  .flex-align-start {\n    align-items: flex-start;\n  }\n----------------------------------------\n*/\n/*\n========================================\nmin-width\n----------------------------------------\nusage:\n  .minw-[key]\n----------------------------------------\noutput:\n  min-width: [value];\n----------------------------------------\nexample:\n  .minw-15 {\n    min-width: 7.5rem;\n  }\n----------------------------------------\n*/\n/*\n========================================\nalign-items\n----------------------------------------\nusage:\n  .flex-align-[key]\n----------------------------------------\noutput:\n  align-items: [value];\n----------------------------------------\nexample:\n  .flex-align-start {\n    align-items: flex-start;\n  }\n----------------------------------------\n*/\n/*\n========================================\nopacity\n----------------------------------------\nusage:\n  .opacity-[key]\n----------------------------------------\noutput:\n  opacity: [value];\n----------------------------------------\nexample:\n  .opacity-0 {\n    opacity: 0;\n  }\n\n  .opacity-30 {\n    opacity: 0.3;\n  }\n----------------------------------------\n*/\n/*\n========================================\nalign-items\n----------------------------------------\nusage:\n  .flex-align-[key]\n----------------------------------------\noutput:\n  align-items: [value];\n----------------------------------------\nexample:\n  .flex-align-start {\n    align-items: flex-start;\n  }\n----------------------------------------\n*/\n/*\n========================================\noutline\n----------------------------------------\nsets width and style:solid\n----------------------------------------\nusage:\n  .outline-[modifier]\n----------------------------------------\noutput:\n  outline: [modifier] solid;\n----------------------------------------\nexample:\n  .outline-2px {\n    outline: 2px solid;\n  }\n----------------------------------------\n*/\n/*\n========================================\nalign-items\n----------------------------------------\nusage:\n  .flex-align-[key]\n----------------------------------------\noutput:\n  align-items: [value];\n----------------------------------------\nexample:\n  .flex-align-start {\n    align-items: flex-start;\n  }\n----------------------------------------\n*/\n/*\n========================================\noutline-color\n----------------------------------------\nusage:\n  .outline-[key]\n----------------------------------------\noutput:\n  outline-color: [value];\n----------------------------------------\nexample:\n  .outline-yellow {\n    outline-color: #fee685;\n  }\n----------------------------------------\n*/\n/*\n========================================\nalign-items\n----------------------------------------\nusage:\n  .flex-align-[key]\n----------------------------------------\noutput:\n  align-items: [value];\n----------------------------------------\nexample:\n  .flex-align-start {\n    align-items: flex-start;\n  }\n----------------------------------------\n*/\n/*\n========================================\noverflow\n----------------------------------------\nusage:\n  .overflow-[modifier]*-[key]\n----------------------------------------\noutput:\n  overflow[-modifier]: [value];\n----------------------------------------\nexample:\n  .overflow-y-hidden {\n    overflow-y: hidden;\n  }\n----------------------------------------\n*/\n/*\n========================================\nalign-items\n----------------------------------------\nusage:\n  .flex-align-[key]\n----------------------------------------\noutput:\n  align-items: [value];\n----------------------------------------\nexample:\n  .flex-align-start {\n    align-items: flex-start;\n  }\n----------------------------------------\n*/\n/*\n========================================\norder\n----------------------------------------\nusage:\n  .order-[key]\n----------------------------------------\noutput:\n  order: [value];\n----------------------------------------\nexample:\n  .order-first {\n    order: -1;\n  }\n\n  .order-2 {\n    order: 2;\n  }\n----------------------------------------\n*/\n/*\n========================================\nalign-items\n----------------------------------------\nusage:\n  .flex-align-[key]\n----------------------------------------\noutput:\n  align-items: [value];\n----------------------------------------\nexample:\n  .flex-align-start {\n    align-items: flex-start;\n  }\n----------------------------------------\n*/\n/*\n========================================\npadding\n----------------------------------------\nusage:\n  .padding-[modifier]*-[key]\n----------------------------------------\noutput:\n  padding[-modifier]: [value];\n----------------------------------------\nexample:\n  .padding-0 {\n    padding: 0;\n  }\n\n  .padding-bottom-1px {\n    padding-bottom: 1px;\n  }\n----------------------------------------\n*/\n/*\n========================================\nPIN\n----------------------------------------\nusage:\n  .pin-[key]\n----------------------------------------\nexample:\n  .pin-all {\n    bottom:0;\n    left:0;\n    right:0;\n    top:0;\n    position:absolute;\n  }\n\n  .pin-left {\n    left:0;\n    position:absolute;\n  }\n----------------------------------------\n*/\n/*\n========================================\nalign-items\n----------------------------------------\nusage:\n  .flex-align-[key]\n----------------------------------------\noutput:\n  align-items: [value];\n----------------------------------------\nexample:\n  .flex-align-start {\n    align-items: flex-start;\n  }\n----------------------------------------\n*/\n/*\n========================================\nposition\n----------------------------------------\nusage:\n  .position-[key]\n----------------------------------------\noutput:\n  position: [value];\n----------------------------------------\nexample:\n  .position-absolute {\n    position: absolute;\n  }\n----------------------------------------\n*/\n/*\n========================================\nalign-items\n----------------------------------------\nusage:\n  .flex-align-[key]\n----------------------------------------\noutput:\n  align-items: [value];\n----------------------------------------\nexample:\n  .flex-align-start {\n    align-items: flex-start;\n  }\n----------------------------------------\n*/\n/*\n========================================\nright\n----------------------------------------\nusage:\n  .right-[key]\n----------------------------------------\noutput:\n  right: [value];\n----------------------------------------\nexample:\n  .right-neg-2px {\n    right: -2px;\n  }\n----------------------------------------\n*/\n/*\n========================================\nalign-items\n----------------------------------------\nusage:\n  .flex-align-[key]\n----------------------------------------\noutput:\n  align-items: [value];\n----------------------------------------\nexample:\n  .flex-align-start {\n    align-items: flex-start;\n  }\n----------------------------------------\n*/\n/*\n========================================\nSQUARE\n----------------------------------------\nusage:\n  .square-[key]\n----------------------------------------\noutput:\n  height: [value];\n  width: [value];\n----------------------------------------\nexample:\n  .square-6 {\n    height: 3rem;\n    width: 3rem;\n  }\n----------------------------------------\n*/\n/*\n========================================\nalign-items\n----------------------------------------\nusage:\n  .flex-align-[key]\n----------------------------------------\noutput:\n  align-items: [value];\n----------------------------------------\nexample:\n  .flex-align-start {\n    align-items: flex-start;\n  }\n----------------------------------------\n*/\n/*\n========================================\ntext-align\n----------------------------------------\nusage:\n  .text-[key]\n----------------------------------------\noutput:\n  text-align: [value];\n----------------------------------------\nexample:\n  .text-left {\n    text-align: left;\n  }\n----------------------------------------\n*/\n/*\n========================================\nalign-items\n----------------------------------------\nusage:\n  .flex-align-[key]\n----------------------------------------\noutput:\n  align-items: [value];\n----------------------------------------\nexample:\n  .flex-align-start {\n    align-items: flex-start;\n  }\n----------------------------------------\n*/\n/*\n========================================\ntext-decoration\n----------------------------------------\nusage:\n  .text-[key]\n----------------------------------------\noutput:\n  text-decoration: [value];\n----------------------------------------\nexample:\n  .text-no-underline {\n    text-decoration: none;\n  }\n----------------------------------------\n*/\n/*\n========================================\nalign-items\n----------------------------------------\nusage:\n  .flex-align-[key]\n----------------------------------------\noutput:\n  align-items: [value];\n----------------------------------------\nexample:\n  .flex-align-start {\n    align-items: flex-start;\n  }\n----------------------------------------\n*/\n/*\n========================================\ntext-decoration-color\n----------------------------------------\nusage:\n  .underline-[key]\n----------------------------------------\noutput:\n  text-decoration-color: [value];\n----------------------------------------\nexample:\n  .underline-red {\n    text-decoration-color: #e52207;\n  }\n----------------------------------------\n*/\n/*\n========================================\nalign-items\n----------------------------------------\nusage:\n  .flex-align-[key]\n----------------------------------------\noutput:\n  align-items: [value];\n----------------------------------------\nexample:\n  .flex-align-start {\n    align-items: flex-start;\n  }\n----------------------------------------\n*/\n/*\n========================================\ntext-indent\n----------------------------------------\nusage:\n  .text-indent-[key]\n----------------------------------------\noutput:\n  text-indent: [value];\n----------------------------------------\nexample:\n  .text-indent-0 {\n    text-ident: 0;\n  }\n----------------------------------------\n*/\n/*\n========================================\nalign-items\n----------------------------------------\nusage:\n  .flex-align-[key]\n----------------------------------------\noutput:\n  align-items: [value];\n----------------------------------------\nexample:\n  .flex-align-start {\n    align-items: flex-start;\n  }\n----------------------------------------\n*/\n/*\n========================================\ntext-transform\n----------------------------------------\nusage:\n  .text-[key]\n----------------------------------------\noutput:\n  text-transform: [value];\n----------------------------------------\nexample:\n  .text-uppercase {\n    text-transform: uppercase;\n  }\n----------------------------------------\n*/\n/*\n========================================\nalign-items\n----------------------------------------\nusage:\n  .flex-align-[key]\n----------------------------------------\noutput:\n  align-items: [value];\n----------------------------------------\nexample:\n  .flex-align-start {\n    align-items: flex-start;\n  }\n----------------------------------------\n*/\n/*\n========================================\ntop\n----------------------------------------\nusage:\n  .top-[key]\n----------------------------------------\noutput:\n  top: [value];\n----------------------------------------\nexample:\n  .top-neg-2px {\n    top: -2px;\n  }\n----------------------------------------\n*/\n/*\n========================================\nalign-items\n----------------------------------------\nusage:\n  .flex-align-[key]\n----------------------------------------\noutput:\n  align-items: [value];\n----------------------------------------\nexample:\n  .flex-align-start {\n    align-items: flex-start;\n  }\n----------------------------------------\n*/\n/*\n========================================\nvertical-align\n----------------------------------------\nusage:\n  .text-[key]\n----------------------------------------\noutput:\n  vertical-align: [value];\n----------------------------------------\nexample:\n  .text-top {\n    vertical-align: top;\n  }\n----------------------------------------\n*/\n/*\n========================================\nalign-items\n----------------------------------------\nusage:\n  .flex-align-[key]\n----------------------------------------\noutput:\n  align-items: [value];\n----------------------------------------\nexample:\n  .flex-align-start {\n    align-items: flex-start;\n  }\n----------------------------------------\n*/\n/*\n========================================\nwhite-space\n----------------------------------------\nusage:\n  text-[key]\n----------------------------------------\noutput:\n  white-space: [value];\n----------------------------------------\nexample:\n  .text-pre-wrap {\n    white-space: pre-wrap;\n  }\n----------------------------------------\n*/\n/*\n========================================\nalign-items\n----------------------------------------\nusage:\n  .flex-align-[key]\n----------------------------------------\noutput:\n  align-items: [value];\n----------------------------------------\nexample:\n  .flex-align-start {\n    align-items: flex-start;\n  }\n----------------------------------------\n*/\n/*\n========================================\nwidth\n----------------------------------------\nusage:\n  .width-[key]\n----------------------------------------\noutput:\n  width: [value];\n----------------------------------------\nexample:\n  .width-2 {\n    width: 1rem;\n  }\n----------------------------------------\n*/\n/*\n========================================\nalign-items\n----------------------------------------\nusage:\n  .flex-align-[key]\n----------------------------------------\noutput:\n  align-items: [value];\n----------------------------------------\nexample:\n  .flex-align-start {\n    align-items: flex-start;\n  }\n----------------------------------------\n*/\n/*\n========================================\nz-index\n----------------------------------------\nusage:\n  z-[key]\n----------------------------------------\noutput:\n  z-index: [value];\n----------------------------------------\nexample:\n  .z-100 {\n    z-index: 100;\n  }\n\n  .z-top {\n    z-index: 99999;\n  }\n----------------------------------------\n*/\n.add-list-reset {\n  margin-bottom: 0;\n  margin-top: 0;\n  padding-left: 0;\n  list-style: none;\n}\n\n.flex-align-start {\n  align-items: flex-start;\n}\n\n.flex-align-end {\n  align-items: flex-end;\n}\n\n.flex-align-center {\n  align-items: center;\n}\n\n.flex-align-stretch {\n  align-items: stretch;\n}\n\n.flex-align-baseline {\n  align-items: baseline;\n}\n\n.flex-align-self-start {\n  align-self: flex-start;\n}\n\n.flex-align-self-end {\n  align-self: flex-end;\n}\n\n.flex-align-self-center {\n  align-self: center;\n}\n\n.flex-align-self-stretch {\n  align-self: stretch;\n}\n\n.flex-align-self-baseline {\n  align-self: baseline;\n}\n\n.bg-transparent {\n  background-color: transparent;\n}\n\n.hover\\:bg-transparent:hover {\n  background-color: transparent;\n}\n\n.bg-black {\n  background-color: black;\n}\n\n.hover\\:bg-black:hover {\n  background-color: black;\n}\n\n.bg-white {\n  background-color: white;\n}\n\n.hover\\:bg-white:hover {\n  background-color: white;\n}\n\n.bg-red {\n  background-color: #e52207;\n}\n\n.hover\\:bg-red:hover {\n  background-color: #e52207;\n}\n\n.bg-orange {\n  background-color: #e66f0e;\n}\n\n.hover\\:bg-orange:hover {\n  background-color: #e66f0e;\n}\n\n.bg-gold {\n  background-color: #ffbe2e;\n}\n\n.hover\\:bg-gold:hover {\n  background-color: #ffbe2e;\n}\n\n.bg-yellow {\n  background-color: #fee685;\n}\n\n.hover\\:bg-yellow:hover {\n  background-color: #fee685;\n}\n\n.bg-green {\n  background-color: #538200;\n}\n\n.hover\\:bg-green:hover {\n  background-color: #538200;\n}\n\n.bg-mint {\n  background-color: #04c585;\n}\n\n.hover\\:bg-mint:hover {\n  background-color: #04c585;\n}\n\n.bg-cyan {\n  background-color: #009ec1;\n}\n\n.hover\\:bg-cyan:hover {\n  background-color: #009ec1;\n}\n\n.bg-blue {\n  background-color: #0076d6;\n}\n\n.hover\\:bg-blue:hover {\n  background-color: #0076d6;\n}\n\n.bg-indigo {\n  background-color: #676cc8;\n}\n\n.hover\\:bg-indigo:hover {\n  background-color: #676cc8;\n}\n\n.bg-violet {\n  background-color: #8168b3;\n}\n\n.hover\\:bg-violet:hover {\n  background-color: #8168b3;\n}\n\n.bg-magenta {\n  background-color: #d72d79;\n}\n\n.hover\\:bg-magenta:hover {\n  background-color: #d72d79;\n}\n\n.bg-gray-5 {\n  background-color: #f0f0f0;\n}\n\n.hover\\:bg-gray-5:hover {\n  background-color: #f0f0f0;\n}\n\n.bg-gray-10 {\n  background-color: #e6e6e6;\n}\n\n.hover\\:bg-gray-10:hover {\n  background-color: #e6e6e6;\n}\n\n.bg-gray-30 {\n  background-color: #adadad;\n}\n\n.hover\\:bg-gray-30:hover {\n  background-color: #adadad;\n}\n\n.bg-gray-50 {\n  background-color: #757575;\n}\n\n.hover\\:bg-gray-50:hover {\n  background-color: #757575;\n}\n\n.bg-gray-70 {\n  background-color: #454545;\n}\n\n.hover\\:bg-gray-70:hover {\n  background-color: #454545;\n}\n\n.bg-gray-90 {\n  background-color: #1b1b1b;\n}\n\n.hover\\:bg-gray-90:hover {\n  background-color: #1b1b1b;\n}\n\n.bg-base-lightest {\n  background-color: #f0f0f0;\n}\n\n.hover\\:bg-base-lightest:hover {\n  background-color: #f0f0f0;\n}\n\n.bg-base-lighter {\n  background-color: #dfe1e2;\n}\n\n.hover\\:bg-base-lighter:hover {\n  background-color: #dfe1e2;\n}\n\n.bg-base-light {\n  background-color: #a9aeb1;\n}\n\n.hover\\:bg-base-light:hover {\n  background-color: #a9aeb1;\n}\n\n.bg-base {\n  background-color: #71767a;\n}\n\n.hover\\:bg-base:hover {\n  background-color: #71767a;\n}\n\n.bg-base-dark {\n  background-color: #565c65;\n}\n\n.hover\\:bg-base-dark:hover {\n  background-color: #565c65;\n}\n\n.bg-base-darker {\n  background-color: #3d4551;\n}\n\n.hover\\:bg-base-darker:hover {\n  background-color: #3d4551;\n}\n\n.bg-base-darkest {\n  background-color: #1b1b1b;\n}\n\n.hover\\:bg-base-darkest:hover {\n  background-color: #1b1b1b;\n}\n\n.bg-ink {\n  background-color: #1b1b1b;\n}\n\n.hover\\:bg-ink:hover {\n  background-color: #1b1b1b;\n}\n\n.bg-primary-lighter {\n  background-color: #d9e8f6;\n}\n\n.hover\\:bg-primary-lighter:hover {\n  background-color: #d9e8f6;\n}\n\n.bg-primary-light {\n  background-color: #73b3e7;\n}\n\n.hover\\:bg-primary-light:hover {\n  background-color: #73b3e7;\n}\n\n.bg-primary {\n  background-color: #005ea2;\n}\n\n.hover\\:bg-primary:hover {\n  background-color: #005ea2;\n}\n\n.bg-primary-vivid {\n  background-color: #0050d8;\n}\n\n.hover\\:bg-primary-vivid:hover {\n  background-color: #0050d8;\n}\n\n.bg-primary-dark {\n  background-color: #1a4480;\n}\n\n.hover\\:bg-primary-dark:hover {\n  background-color: #1a4480;\n}\n\n.bg-primary-darker {\n  background-color: #162e51;\n}\n\n.hover\\:bg-primary-darker:hover {\n  background-color: #162e51;\n}\n\n.bg-secondary-lighter {\n  background-color: #f3e1e4;\n}\n\n.hover\\:bg-secondary-lighter:hover {\n  background-color: #f3e1e4;\n}\n\n.bg-secondary-light {\n  background-color: #f2938c;\n}\n\n.hover\\:bg-secondary-light:hover {\n  background-color: #f2938c;\n}\n\n.bg-secondary {\n  background-color: #d83933;\n}\n\n.hover\\:bg-secondary:hover {\n  background-color: #d83933;\n}\n\n.bg-secondary-vivid {\n  background-color: #e41d3d;\n}\n\n.hover\\:bg-secondary-vivid:hover {\n  background-color: #e41d3d;\n}\n\n.bg-secondary-dark {\n  background-color: #b50909;\n}\n\n.hover\\:bg-secondary-dark:hover {\n  background-color: #b50909;\n}\n\n.bg-secondary-darker {\n  background-color: #8b0a03;\n}\n\n.hover\\:bg-secondary-darker:hover {\n  background-color: #8b0a03;\n}\n\n.bg-accent-warm-darker {\n  background-color: #775540;\n}\n\n.hover\\:bg-accent-warm-darker:hover {\n  background-color: #775540;\n}\n\n.bg-accent-warm-dark {\n  background-color: #c05600;\n}\n\n.hover\\:bg-accent-warm-dark:hover {\n  background-color: #c05600;\n}\n\n.bg-accent-warm {\n  background-color: #fa9441;\n}\n\n.hover\\:bg-accent-warm:hover {\n  background-color: #fa9441;\n}\n\n.bg-accent-warm-light {\n  background-color: #ffbc78;\n}\n\n.hover\\:bg-accent-warm-light:hover {\n  background-color: #ffbc78;\n}\n\n.bg-accent-warm-lighter {\n  background-color: #f2e4d4;\n}\n\n.hover\\:bg-accent-warm-lighter:hover {\n  background-color: #f2e4d4;\n}\n\n.bg-accent-cool-darker {\n  background-color: #07648d;\n}\n\n.hover\\:bg-accent-cool-darker:hover {\n  background-color: #07648d;\n}\n\n.bg-accent-cool-dark {\n  background-color: #28a0cb;\n}\n\n.hover\\:bg-accent-cool-dark:hover {\n  background-color: #28a0cb;\n}\n\n.bg-accent-cool {\n  background-color: #00bde3;\n}\n\n.hover\\:bg-accent-cool:hover {\n  background-color: #00bde3;\n}\n\n.bg-accent-cool-light {\n  background-color: #97d4ea;\n}\n\n.hover\\:bg-accent-cool-light:hover {\n  background-color: #97d4ea;\n}\n\n.bg-accent-cool-lighter {\n  background-color: #e1f3f8;\n}\n\n.hover\\:bg-accent-cool-lighter:hover {\n  background-color: #e1f3f8;\n}\n\n.bg-error-lighter {\n  background-color: #f4e3db;\n}\n\n.hover\\:bg-error-lighter:hover {\n  background-color: #f4e3db;\n}\n\n.bg-error-light {\n  background-color: #f39268;\n}\n\n.hover\\:bg-error-light:hover {\n  background-color: #f39268;\n}\n\n.bg-error {\n  background-color: #d54309;\n}\n\n.hover\\:bg-error:hover {\n  background-color: #d54309;\n}\n\n.bg-error-dark {\n  background-color: #b50909;\n}\n\n.hover\\:bg-error-dark:hover {\n  background-color: #b50909;\n}\n\n.bg-error-darker {\n  background-color: #6f3331;\n}\n\n.hover\\:bg-error-darker:hover {\n  background-color: #6f3331;\n}\n\n.bg-warning-lighter {\n  background-color: #faf3d1;\n}\n\n.hover\\:bg-warning-lighter:hover {\n  background-color: #faf3d1;\n}\n\n.bg-warning-light {\n  background-color: #fee685;\n}\n\n.hover\\:bg-warning-light:hover {\n  background-color: #fee685;\n}\n\n.bg-warning {\n  background-color: #ffbe2e;\n}\n\n.hover\\:bg-warning:hover {\n  background-color: #ffbe2e;\n}\n\n.bg-warning-dark {\n  background-color: #e5a000;\n}\n\n.hover\\:bg-warning-dark:hover {\n  background-color: #e5a000;\n}\n\n.bg-warning-darker {\n  background-color: #936f38;\n}\n\n.hover\\:bg-warning-darker:hover {\n  background-color: #936f38;\n}\n\n.bg-success-lighter {\n  background-color: #ecf3ec;\n}\n\n.hover\\:bg-success-lighter:hover {\n  background-color: #ecf3ec;\n}\n\n.bg-success-light {\n  background-color: #70e17b;\n}\n\n.hover\\:bg-success-light:hover {\n  background-color: #70e17b;\n}\n\n.bg-success {\n  background-color: #00a91c;\n}\n\n.hover\\:bg-success:hover {\n  background-color: #00a91c;\n}\n\n.bg-success-dark {\n  background-color: #008817;\n}\n\n.hover\\:bg-success-dark:hover {\n  background-color: #008817;\n}\n\n.bg-success-darker {\n  background-color: #216e1f;\n}\n\n.hover\\:bg-success-darker:hover {\n  background-color: #216e1f;\n}\n\n.bg-info-lighter {\n  background-color: #e7f6f8;\n}\n\n.hover\\:bg-info-lighter:hover {\n  background-color: #e7f6f8;\n}\n\n.bg-info-light {\n  background-color: #99deea;\n}\n\n.hover\\:bg-info-light:hover {\n  background-color: #99deea;\n}\n\n.bg-info {\n  background-color: #00bde3;\n}\n\n.hover\\:bg-info:hover {\n  background-color: #00bde3;\n}\n\n.bg-info-dark {\n  background-color: #009ec1;\n}\n\n.hover\\:bg-info-dark:hover {\n  background-color: #009ec1;\n}\n\n.bg-info-darker {\n  background-color: #2e6276;\n}\n\n.hover\\:bg-info-darker:hover {\n  background-color: #2e6276;\n}\n\n.bg-disabled-lighter {\n  background-color: #c9c9c9;\n}\n\n.hover\\:bg-disabled-lighter:hover {\n  background-color: #c9c9c9;\n}\n\n.bg-disabled-light {\n  background-color: #919191;\n}\n\n.hover\\:bg-disabled-light:hover {\n  background-color: #919191;\n}\n\n.bg-disabled {\n  background-color: #757575;\n}\n\n.hover\\:bg-disabled:hover {\n  background-color: #757575;\n}\n\n.bg-disabled-dark {\n  background-color: #454545;\n}\n\n.hover\\:bg-disabled-dark:hover {\n  background-color: #454545;\n}\n\n.bg-disabled-darker {\n  background-color: #1b1b1b;\n}\n\n.hover\\:bg-disabled-darker:hover {\n  background-color: #1b1b1b;\n}\n\n.bg-emergency {\n  background-color: #9c3d10;\n}\n\n.hover\\:bg-emergency:hover {\n  background-color: #9c3d10;\n}\n\n.bg-emergency-dark {\n  background-color: #332d29;\n}\n\n.hover\\:bg-emergency-dark:hover {\n  background-color: #332d29;\n}\n\n.border-1px {\n  border: 1px solid;\n}\n\n.hover\\:border-1px:hover {\n  border: 1px solid;\n}\n\n.border-y-1px {\n  border-top: 1px solid;\n  border-bottom: 1px solid;\n}\n\n.hover\\:border-y-1px:hover {\n  border-top: 1px solid;\n  border-bottom: 1px solid;\n}\n\n.border-x-1px {\n  border-left: 1px solid;\n  border-right: 1px solid;\n}\n\n.hover\\:border-x-1px:hover {\n  border-left: 1px solid;\n  border-right: 1px solid;\n}\n\n.border-top-1px {\n  border-top: 1px solid;\n}\n\n.hover\\:border-top-1px:hover {\n  border-top: 1px solid;\n}\n\n.border-right-1px {\n  border-right: 1px solid;\n}\n\n.hover\\:border-right-1px:hover {\n  border-right: 1px solid;\n}\n\n.border-bottom-1px {\n  border-bottom: 1px solid;\n}\n\n.hover\\:border-bottom-1px:hover {\n  border-bottom: 1px solid;\n}\n\n.border-left-1px {\n  border-left: 1px solid;\n}\n\n.hover\\:border-left-1px:hover {\n  border-left: 1px solid;\n}\n\n.border-2px {\n  border: 2px solid;\n}\n\n.hover\\:border-2px:hover {\n  border: 2px solid;\n}\n\n.border-y-2px {\n  border-top: 2px solid;\n  border-bottom: 2px solid;\n}\n\n.hover\\:border-y-2px:hover {\n  border-top: 2px solid;\n  border-bottom: 2px solid;\n}\n\n.border-x-2px {\n  border-left: 2px solid;\n  border-right: 2px solid;\n}\n\n.hover\\:border-x-2px:hover {\n  border-left: 2px solid;\n  border-right: 2px solid;\n}\n\n.border-top-2px {\n  border-top: 2px solid;\n}\n\n.hover\\:border-top-2px:hover {\n  border-top: 2px solid;\n}\n\n.border-right-2px {\n  border-right: 2px solid;\n}\n\n.hover\\:border-right-2px:hover {\n  border-right: 2px solid;\n}\n\n.border-bottom-2px {\n  border-bottom: 2px solid;\n}\n\n.hover\\:border-bottom-2px:hover {\n  border-bottom: 2px solid;\n}\n\n.border-left-2px {\n  border-left: 2px solid;\n}\n\n.hover\\:border-left-2px:hover {\n  border-left: 2px solid;\n}\n\n.border-05 {\n  border: 0.25rem solid;\n}\n\n.hover\\:border-05:hover {\n  border: 0.25rem solid;\n}\n\n.border-y-05 {\n  border-top: 0.25rem solid;\n  border-bottom: 0.25rem solid;\n}\n\n.hover\\:border-y-05:hover {\n  border-top: 0.25rem solid;\n  border-bottom: 0.25rem solid;\n}\n\n.border-x-05 {\n  border-left: 0.25rem solid;\n  border-right: 0.25rem solid;\n}\n\n.hover\\:border-x-05:hover {\n  border-left: 0.25rem solid;\n  border-right: 0.25rem solid;\n}\n\n.border-top-05 {\n  border-top: 0.25rem solid;\n}\n\n.hover\\:border-top-05:hover {\n  border-top: 0.25rem solid;\n}\n\n.border-right-05 {\n  border-right: 0.25rem solid;\n}\n\n.hover\\:border-right-05:hover {\n  border-right: 0.25rem solid;\n}\n\n.border-bottom-05 {\n  border-bottom: 0.25rem solid;\n}\n\n.hover\\:border-bottom-05:hover {\n  border-bottom: 0.25rem solid;\n}\n\n.border-left-05 {\n  border-left: 0.25rem solid;\n}\n\n.hover\\:border-left-05:hover {\n  border-left: 0.25rem solid;\n}\n\n.border-1 {\n  border: 0.5rem solid;\n}\n\n.hover\\:border-1:hover {\n  border: 0.5rem solid;\n}\n\n.border-y-1 {\n  border-top: 0.5rem solid;\n  border-bottom: 0.5rem solid;\n}\n\n.hover\\:border-y-1:hover {\n  border-top: 0.5rem solid;\n  border-bottom: 0.5rem solid;\n}\n\n.border-x-1 {\n  border-left: 0.5rem solid;\n  border-right: 0.5rem solid;\n}\n\n.hover\\:border-x-1:hover {\n  border-left: 0.5rem solid;\n  border-right: 0.5rem solid;\n}\n\n.border-top-1 {\n  border-top: 0.5rem solid;\n}\n\n.hover\\:border-top-1:hover {\n  border-top: 0.5rem solid;\n}\n\n.border-right-1 {\n  border-right: 0.5rem solid;\n}\n\n.hover\\:border-right-1:hover {\n  border-right: 0.5rem solid;\n}\n\n.border-bottom-1 {\n  border-bottom: 0.5rem solid;\n}\n\n.hover\\:border-bottom-1:hover {\n  border-bottom: 0.5rem solid;\n}\n\n.border-left-1 {\n  border-left: 0.5rem solid;\n}\n\n.hover\\:border-left-1:hover {\n  border-left: 0.5rem solid;\n}\n\n.border-105 {\n  border: 0.75rem solid;\n}\n\n.hover\\:border-105:hover {\n  border: 0.75rem solid;\n}\n\n.border-y-105 {\n  border-top: 0.75rem solid;\n  border-bottom: 0.75rem solid;\n}\n\n.hover\\:border-y-105:hover {\n  border-top: 0.75rem solid;\n  border-bottom: 0.75rem solid;\n}\n\n.border-x-105 {\n  border-left: 0.75rem solid;\n  border-right: 0.75rem solid;\n}\n\n.hover\\:border-x-105:hover {\n  border-left: 0.75rem solid;\n  border-right: 0.75rem solid;\n}\n\n.border-top-105 {\n  border-top: 0.75rem solid;\n}\n\n.hover\\:border-top-105:hover {\n  border-top: 0.75rem solid;\n}\n\n.border-right-105 {\n  border-right: 0.75rem solid;\n}\n\n.hover\\:border-right-105:hover {\n  border-right: 0.75rem solid;\n}\n\n.border-bottom-105 {\n  border-bottom: 0.75rem solid;\n}\n\n.hover\\:border-bottom-105:hover {\n  border-bottom: 0.75rem solid;\n}\n\n.border-left-105 {\n  border-left: 0.75rem solid;\n}\n\n.hover\\:border-left-105:hover {\n  border-left: 0.75rem solid;\n}\n\n.border-2 {\n  border: 1rem solid;\n}\n\n.hover\\:border-2:hover {\n  border: 1rem solid;\n}\n\n.border-y-2 {\n  border-top: 1rem solid;\n  border-bottom: 1rem solid;\n}\n\n.hover\\:border-y-2:hover {\n  border-top: 1rem solid;\n  border-bottom: 1rem solid;\n}\n\n.border-x-2 {\n  border-left: 1rem solid;\n  border-right: 1rem solid;\n}\n\n.hover\\:border-x-2:hover {\n  border-left: 1rem solid;\n  border-right: 1rem solid;\n}\n\n.border-top-2 {\n  border-top: 1rem solid;\n}\n\n.hover\\:border-top-2:hover {\n  border-top: 1rem solid;\n}\n\n.border-right-2 {\n  border-right: 1rem solid;\n}\n\n.hover\\:border-right-2:hover {\n  border-right: 1rem solid;\n}\n\n.border-bottom-2 {\n  border-bottom: 1rem solid;\n}\n\n.hover\\:border-bottom-2:hover {\n  border-bottom: 1rem solid;\n}\n\n.border-left-2 {\n  border-left: 1rem solid;\n}\n\n.hover\\:border-left-2:hover {\n  border-left: 1rem solid;\n}\n\n.border-205 {\n  border: 1.25rem solid;\n}\n\n.hover\\:border-205:hover {\n  border: 1.25rem solid;\n}\n\n.border-y-205 {\n  border-top: 1.25rem solid;\n  border-bottom: 1.25rem solid;\n}\n\n.hover\\:border-y-205:hover {\n  border-top: 1.25rem solid;\n  border-bottom: 1.25rem solid;\n}\n\n.border-x-205 {\n  border-left: 1.25rem solid;\n  border-right: 1.25rem solid;\n}\n\n.hover\\:border-x-205:hover {\n  border-left: 1.25rem solid;\n  border-right: 1.25rem solid;\n}\n\n.border-top-205 {\n  border-top: 1.25rem solid;\n}\n\n.hover\\:border-top-205:hover {\n  border-top: 1.25rem solid;\n}\n\n.border-right-205 {\n  border-right: 1.25rem solid;\n}\n\n.hover\\:border-right-205:hover {\n  border-right: 1.25rem solid;\n}\n\n.border-bottom-205 {\n  border-bottom: 1.25rem solid;\n}\n\n.hover\\:border-bottom-205:hover {\n  border-bottom: 1.25rem solid;\n}\n\n.border-left-205 {\n  border-left: 1.25rem solid;\n}\n\n.hover\\:border-left-205:hover {\n  border-left: 1.25rem solid;\n}\n\n.border-3 {\n  border: 1.5rem solid;\n}\n\n.hover\\:border-3:hover {\n  border: 1.5rem solid;\n}\n\n.border-y-3 {\n  border-top: 1.5rem solid;\n  border-bottom: 1.5rem solid;\n}\n\n.hover\\:border-y-3:hover {\n  border-top: 1.5rem solid;\n  border-bottom: 1.5rem solid;\n}\n\n.border-x-3 {\n  border-left: 1.5rem solid;\n  border-right: 1.5rem solid;\n}\n\n.hover\\:border-x-3:hover {\n  border-left: 1.5rem solid;\n  border-right: 1.5rem solid;\n}\n\n.border-top-3 {\n  border-top: 1.5rem solid;\n}\n\n.hover\\:border-top-3:hover {\n  border-top: 1.5rem solid;\n}\n\n.border-right-3 {\n  border-right: 1.5rem solid;\n}\n\n.hover\\:border-right-3:hover {\n  border-right: 1.5rem solid;\n}\n\n.border-bottom-3 {\n  border-bottom: 1.5rem solid;\n}\n\n.hover\\:border-bottom-3:hover {\n  border-bottom: 1.5rem solid;\n}\n\n.border-left-3 {\n  border-left: 1.5rem solid;\n}\n\n.hover\\:border-left-3:hover {\n  border-left: 1.5rem solid;\n}\n\n.border-0 {\n  border: 0 solid;\n}\n\n.hover\\:border-0:hover {\n  border: 0 solid;\n}\n\n.border-y-0 {\n  border-top: 0 solid;\n  border-bottom: 0 solid;\n}\n\n.hover\\:border-y-0:hover {\n  border-top: 0 solid;\n  border-bottom: 0 solid;\n}\n\n.border-x-0 {\n  border-left: 0 solid;\n  border-right: 0 solid;\n}\n\n.hover\\:border-x-0:hover {\n  border-left: 0 solid;\n  border-right: 0 solid;\n}\n\n.border-top-0 {\n  border-top: 0 solid;\n}\n\n.hover\\:border-top-0:hover {\n  border-top: 0 solid;\n}\n\n.border-right-0 {\n  border-right: 0 solid;\n}\n\n.hover\\:border-right-0:hover {\n  border-right: 0 solid;\n}\n\n.border-bottom-0 {\n  border-bottom: 0 solid;\n}\n\n.hover\\:border-bottom-0:hover {\n  border-bottom: 0 solid;\n}\n\n.border-left-0 {\n  border-left: 0 solid;\n}\n\n.hover\\:border-left-0:hover {\n  border-left: 0 solid;\n}\n\n.border {\n  border: 1px solid;\n}\n\n.hover\\:border:hover {\n  border: 1px solid;\n}\n\n.border-y {\n  border-top: 1px solid;\n  border-bottom: 1px solid;\n}\n\n.hover\\:border-y:hover {\n  border-top: 1px solid;\n  border-bottom: 1px solid;\n}\n\n.border-x {\n  border-left: 1px solid;\n  border-right: 1px solid;\n}\n\n.hover\\:border-x:hover {\n  border-left: 1px solid;\n  border-right: 1px solid;\n}\n\n.border-top {\n  border-top: 1px solid;\n}\n\n.hover\\:border-top:hover {\n  border-top: 1px solid;\n}\n\n.border-right {\n  border-right: 1px solid;\n}\n\n.hover\\:border-right:hover {\n  border-right: 1px solid;\n}\n\n.border-bottom {\n  border-bottom: 1px solid;\n}\n\n.hover\\:border-bottom:hover {\n  border-bottom: 1px solid;\n}\n\n.border-left {\n  border-left: 1px solid;\n}\n\n.hover\\:border-left:hover {\n  border-left: 1px solid;\n}\n\n.border-transparent {\n  border-color: transparent;\n}\n\n.hover\\:border-transparent:hover {\n  border-color: transparent;\n}\n\n.border-black {\n  border-color: black;\n}\n\n.hover\\:border-black:hover {\n  border-color: black;\n}\n\n.border-white {\n  border-color: white;\n}\n\n.hover\\:border-white:hover {\n  border-color: white;\n}\n\n.border-red {\n  border-color: #e52207;\n}\n\n.hover\\:border-red:hover {\n  border-color: #e52207;\n}\n\n.border-orange {\n  border-color: #e66f0e;\n}\n\n.hover\\:border-orange:hover {\n  border-color: #e66f0e;\n}\n\n.border-gold {\n  border-color: #ffbe2e;\n}\n\n.hover\\:border-gold:hover {\n  border-color: #ffbe2e;\n}\n\n.border-yellow {\n  border-color: #fee685;\n}\n\n.hover\\:border-yellow:hover {\n  border-color: #fee685;\n}\n\n.border-green {\n  border-color: #538200;\n}\n\n.hover\\:border-green:hover {\n  border-color: #538200;\n}\n\n.border-mint {\n  border-color: #04c585;\n}\n\n.hover\\:border-mint:hover {\n  border-color: #04c585;\n}\n\n.border-cyan {\n  border-color: #009ec1;\n}\n\n.hover\\:border-cyan:hover {\n  border-color: #009ec1;\n}\n\n.border-blue {\n  border-color: #0076d6;\n}\n\n.hover\\:border-blue:hover {\n  border-color: #0076d6;\n}\n\n.border-indigo {\n  border-color: #676cc8;\n}\n\n.hover\\:border-indigo:hover {\n  border-color: #676cc8;\n}\n\n.border-violet {\n  border-color: #8168b3;\n}\n\n.hover\\:border-violet:hover {\n  border-color: #8168b3;\n}\n\n.border-magenta {\n  border-color: #d72d79;\n}\n\n.hover\\:border-magenta:hover {\n  border-color: #d72d79;\n}\n\n.border-gray-5 {\n  border-color: #f0f0f0;\n}\n\n.hover\\:border-gray-5:hover {\n  border-color: #f0f0f0;\n}\n\n.border-gray-10 {\n  border-color: #e6e6e6;\n}\n\n.hover\\:border-gray-10:hover {\n  border-color: #e6e6e6;\n}\n\n.border-gray-30 {\n  border-color: #adadad;\n}\n\n.hover\\:border-gray-30:hover {\n  border-color: #adadad;\n}\n\n.border-gray-50 {\n  border-color: #757575;\n}\n\n.hover\\:border-gray-50:hover {\n  border-color: #757575;\n}\n\n.border-gray-70 {\n  border-color: #454545;\n}\n\n.hover\\:border-gray-70:hover {\n  border-color: #454545;\n}\n\n.border-gray-90 {\n  border-color: #1b1b1b;\n}\n\n.hover\\:border-gray-90:hover {\n  border-color: #1b1b1b;\n}\n\n.border-base-lightest {\n  border-color: #f0f0f0;\n}\n\n.hover\\:border-base-lightest:hover {\n  border-color: #f0f0f0;\n}\n\n.border-base-lighter {\n  border-color: #dfe1e2;\n}\n\n.hover\\:border-base-lighter:hover {\n  border-color: #dfe1e2;\n}\n\n.border-base-light {\n  border-color: #a9aeb1;\n}\n\n.hover\\:border-base-light:hover {\n  border-color: #a9aeb1;\n}\n\n.border-base {\n  border-color: #71767a;\n}\n\n.hover\\:border-base:hover {\n  border-color: #71767a;\n}\n\n.border-base-dark {\n  border-color: #565c65;\n}\n\n.hover\\:border-base-dark:hover {\n  border-color: #565c65;\n}\n\n.border-base-darker {\n  border-color: #3d4551;\n}\n\n.hover\\:border-base-darker:hover {\n  border-color: #3d4551;\n}\n\n.border-base-darkest {\n  border-color: #1b1b1b;\n}\n\n.hover\\:border-base-darkest:hover {\n  border-color: #1b1b1b;\n}\n\n.border-ink {\n  border-color: #1b1b1b;\n}\n\n.hover\\:border-ink:hover {\n  border-color: #1b1b1b;\n}\n\n.border-primary-lighter {\n  border-color: #d9e8f6;\n}\n\n.hover\\:border-primary-lighter:hover {\n  border-color: #d9e8f6;\n}\n\n.border-primary-light {\n  border-color: #73b3e7;\n}\n\n.hover\\:border-primary-light:hover {\n  border-color: #73b3e7;\n}\n\n.border-primary {\n  border-color: #005ea2;\n}\n\n.hover\\:border-primary:hover {\n  border-color: #005ea2;\n}\n\n.border-primary-vivid {\n  border-color: #0050d8;\n}\n\n.hover\\:border-primary-vivid:hover {\n  border-color: #0050d8;\n}\n\n.border-primary-dark {\n  border-color: #1a4480;\n}\n\n.hover\\:border-primary-dark:hover {\n  border-color: #1a4480;\n}\n\n.border-primary-darker {\n  border-color: #162e51;\n}\n\n.hover\\:border-primary-darker:hover {\n  border-color: #162e51;\n}\n\n.border-secondary-lighter {\n  border-color: #f3e1e4;\n}\n\n.hover\\:border-secondary-lighter:hover {\n  border-color: #f3e1e4;\n}\n\n.border-secondary-light {\n  border-color: #f2938c;\n}\n\n.hover\\:border-secondary-light:hover {\n  border-color: #f2938c;\n}\n\n.border-secondary {\n  border-color: #d83933;\n}\n\n.hover\\:border-secondary:hover {\n  border-color: #d83933;\n}\n\n.border-secondary-vivid {\n  border-color: #e41d3d;\n}\n\n.hover\\:border-secondary-vivid:hover {\n  border-color: #e41d3d;\n}\n\n.border-secondary-dark {\n  border-color: #b50909;\n}\n\n.hover\\:border-secondary-dark:hover {\n  border-color: #b50909;\n}\n\n.border-secondary-darker {\n  border-color: #8b0a03;\n}\n\n.hover\\:border-secondary-darker:hover {\n  border-color: #8b0a03;\n}\n\n.border-accent-warm-darker {\n  border-color: #775540;\n}\n\n.hover\\:border-accent-warm-darker:hover {\n  border-color: #775540;\n}\n\n.border-accent-warm-dark {\n  border-color: #c05600;\n}\n\n.hover\\:border-accent-warm-dark:hover {\n  border-color: #c05600;\n}\n\n.border-accent-warm {\n  border-color: #fa9441;\n}\n\n.hover\\:border-accent-warm:hover {\n  border-color: #fa9441;\n}\n\n.border-accent-warm-light {\n  border-color: #ffbc78;\n}\n\n.hover\\:border-accent-warm-light:hover {\n  border-color: #ffbc78;\n}\n\n.border-accent-warm-lighter {\n  border-color: #f2e4d4;\n}\n\n.hover\\:border-accent-warm-lighter:hover {\n  border-color: #f2e4d4;\n}\n\n.border-accent-cool-darker {\n  border-color: #07648d;\n}\n\n.hover\\:border-accent-cool-darker:hover {\n  border-color: #07648d;\n}\n\n.border-accent-cool-dark {\n  border-color: #28a0cb;\n}\n\n.hover\\:border-accent-cool-dark:hover {\n  border-color: #28a0cb;\n}\n\n.border-accent-cool {\n  border-color: #00bde3;\n}\n\n.hover\\:border-accent-cool:hover {\n  border-color: #00bde3;\n}\n\n.border-accent-cool-light {\n  border-color: #97d4ea;\n}\n\n.hover\\:border-accent-cool-light:hover {\n  border-color: #97d4ea;\n}\n\n.border-accent-cool-lighter {\n  border-color: #e1f3f8;\n}\n\n.hover\\:border-accent-cool-lighter:hover {\n  border-color: #e1f3f8;\n}\n\n.border-error-lighter {\n  border-color: #f4e3db;\n}\n\n.hover\\:border-error-lighter:hover {\n  border-color: #f4e3db;\n}\n\n.border-error-light {\n  border-color: #f39268;\n}\n\n.hover\\:border-error-light:hover {\n  border-color: #f39268;\n}\n\n.border-error {\n  border-color: #d54309;\n}\n\n.hover\\:border-error:hover {\n  border-color: #d54309;\n}\n\n.border-error-dark {\n  border-color: #b50909;\n}\n\n.hover\\:border-error-dark:hover {\n  border-color: #b50909;\n}\n\n.border-error-darker {\n  border-color: #6f3331;\n}\n\n.hover\\:border-error-darker:hover {\n  border-color: #6f3331;\n}\n\n.border-warning-lighter {\n  border-color: #faf3d1;\n}\n\n.hover\\:border-warning-lighter:hover {\n  border-color: #faf3d1;\n}\n\n.border-warning-light {\n  border-color: #fee685;\n}\n\n.hover\\:border-warning-light:hover {\n  border-color: #fee685;\n}\n\n.border-warning {\n  border-color: #ffbe2e;\n}\n\n.hover\\:border-warning:hover {\n  border-color: #ffbe2e;\n}\n\n.border-warning-dark {\n  border-color: #e5a000;\n}\n\n.hover\\:border-warning-dark:hover {\n  border-color: #e5a000;\n}\n\n.border-warning-darker {\n  border-color: #936f38;\n}\n\n.hover\\:border-warning-darker:hover {\n  border-color: #936f38;\n}\n\n.border-success-lighter {\n  border-color: #ecf3ec;\n}\n\n.hover\\:border-success-lighter:hover {\n  border-color: #ecf3ec;\n}\n\n.border-success-light {\n  border-color: #70e17b;\n}\n\n.hover\\:border-success-light:hover {\n  border-color: #70e17b;\n}\n\n.border-success {\n  border-color: #00a91c;\n}\n\n.hover\\:border-success:hover {\n  border-color: #00a91c;\n}\n\n.border-success-dark {\n  border-color: #008817;\n}\n\n.hover\\:border-success-dark:hover {\n  border-color: #008817;\n}\n\n.border-success-darker {\n  border-color: #216e1f;\n}\n\n.hover\\:border-success-darker:hover {\n  border-color: #216e1f;\n}\n\n.border-info-lighter {\n  border-color: #e7f6f8;\n}\n\n.hover\\:border-info-lighter:hover {\n  border-color: #e7f6f8;\n}\n\n.border-info-light {\n  border-color: #99deea;\n}\n\n.hover\\:border-info-light:hover {\n  border-color: #99deea;\n}\n\n.border-info {\n  border-color: #00bde3;\n}\n\n.hover\\:border-info:hover {\n  border-color: #00bde3;\n}\n\n.border-info-dark {\n  border-color: #009ec1;\n}\n\n.hover\\:border-info-dark:hover {\n  border-color: #009ec1;\n}\n\n.border-info-darker {\n  border-color: #2e6276;\n}\n\n.hover\\:border-info-darker:hover {\n  border-color: #2e6276;\n}\n\n.border-disabled-lighter {\n  border-color: #c9c9c9;\n}\n\n.hover\\:border-disabled-lighter:hover {\n  border-color: #c9c9c9;\n}\n\n.border-disabled-light {\n  border-color: #919191;\n}\n\n.hover\\:border-disabled-light:hover {\n  border-color: #919191;\n}\n\n.border-disabled {\n  border-color: #757575;\n}\n\n.hover\\:border-disabled:hover {\n  border-color: #757575;\n}\n\n.border-disabled-dark {\n  border-color: #454545;\n}\n\n.hover\\:border-disabled-dark:hover {\n  border-color: #454545;\n}\n\n.border-disabled-darker {\n  border-color: #1b1b1b;\n}\n\n.hover\\:border-disabled-darker:hover {\n  border-color: #1b1b1b;\n}\n\n.border-emergency {\n  border-color: #9c3d10;\n}\n\n.hover\\:border-emergency:hover {\n  border-color: #9c3d10;\n}\n\n.border-emergency-dark {\n  border-color: #332d29;\n}\n\n.hover\\:border-emergency-dark:hover {\n  border-color: #332d29;\n}\n\n.radius-0 {\n  border-radius: 0;\n}\n\n.radius-top-0 {\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n}\n\n.radius-right-0 {\n  border-top-right-radius: 0;\n  border-bottom-right-radius: 0;\n}\n\n.radius-bottom-0 {\n  border-bottom-left-radius: 0;\n  border-bottom-right-radius: 0;\n}\n\n.radius-left-0 {\n  border-top-left-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.radius-sm {\n  border-radius: 2px;\n}\n\n.radius-top-sm {\n  border-top-left-radius: 2px;\n  border-top-right-radius: 2px;\n}\n\n.radius-right-sm {\n  border-top-right-radius: 2px;\n  border-bottom-right-radius: 2px;\n}\n\n.radius-bottom-sm {\n  border-bottom-left-radius: 2px;\n  border-bottom-right-radius: 2px;\n}\n\n.radius-left-sm {\n  border-top-left-radius: 2px;\n  border-bottom-left-radius: 2px;\n}\n\n.radius-md {\n  border-radius: 0.25rem;\n}\n\n.radius-top-md {\n  border-top-left-radius: 0.25rem;\n  border-top-right-radius: 0.25rem;\n}\n\n.radius-right-md {\n  border-top-right-radius: 0.25rem;\n  border-bottom-right-radius: 0.25rem;\n}\n\n.radius-bottom-md {\n  border-bottom-left-radius: 0.25rem;\n  border-bottom-right-radius: 0.25rem;\n}\n\n.radius-left-md {\n  border-top-left-radius: 0.25rem;\n  border-bottom-left-radius: 0.25rem;\n}\n\n.radius-lg {\n  border-radius: 0.5rem;\n}\n\n.radius-top-lg {\n  border-top-left-radius: 0.5rem;\n  border-top-right-radius: 0.5rem;\n}\n\n.radius-right-lg {\n  border-top-right-radius: 0.5rem;\n  border-bottom-right-radius: 0.5rem;\n}\n\n.radius-bottom-lg {\n  border-bottom-left-radius: 0.5rem;\n  border-bottom-right-radius: 0.5rem;\n}\n\n.radius-left-lg {\n  border-top-left-radius: 0.5rem;\n  border-bottom-left-radius: 0.5rem;\n}\n\n.radius-pill {\n  border-radius: 99rem;\n}\n\n.radius-top-pill {\n  border-top-left-radius: 99rem;\n  border-top-right-radius: 99rem;\n}\n\n.radius-right-pill {\n  border-top-right-radius: 99rem;\n  border-bottom-right-radius: 99rem;\n}\n\n.radius-bottom-pill {\n  border-bottom-left-radius: 99rem;\n  border-bottom-right-radius: 99rem;\n}\n\n.radius-left-pill {\n  border-top-left-radius: 99rem;\n  border-bottom-left-radius: 99rem;\n}\n\n.border-dashed {\n  border-style: dashed;\n}\n\n.border-dotted {\n  border-style: dotted;\n}\n\n.border-solid {\n  border-style: solid;\n}\n\n.border-width-1px {\n  border-width: 1px;\n}\n\n.border-y-width-1px {\n  border-top-width: 1px;\n  border-bottom-width: 1px;\n}\n\n.border-x-width-1px {\n  border-left-width: 1px;\n  border-right-width: 1px;\n}\n\n.border-top-width-1px {\n  border-top-width: 1px;\n}\n\n.border-right-width-1px {\n  border-right-width: 1px;\n}\n\n.border-bottom-width-1px {\n  border-bottom-width: 1px;\n}\n\n.border-left-width-1px {\n  border-left-width: 1px;\n}\n\n.border-width-2px {\n  border-width: 2px;\n}\n\n.border-y-width-2px {\n  border-top-width: 2px;\n  border-bottom-width: 2px;\n}\n\n.border-x-width-2px {\n  border-left-width: 2px;\n  border-right-width: 2px;\n}\n\n.border-top-width-2px {\n  border-top-width: 2px;\n}\n\n.border-right-width-2px {\n  border-right-width: 2px;\n}\n\n.border-bottom-width-2px {\n  border-bottom-width: 2px;\n}\n\n.border-left-width-2px {\n  border-left-width: 2px;\n}\n\n.border-width-05 {\n  border-width: 0.25rem;\n}\n\n.border-y-width-05 {\n  border-top-width: 0.25rem;\n  border-bottom-width: 0.25rem;\n}\n\n.border-x-width-05 {\n  border-left-width: 0.25rem;\n  border-right-width: 0.25rem;\n}\n\n.border-top-width-05 {\n  border-top-width: 0.25rem;\n}\n\n.border-right-width-05 {\n  border-right-width: 0.25rem;\n}\n\n.border-bottom-width-05 {\n  border-bottom-width: 0.25rem;\n}\n\n.border-left-width-05 {\n  border-left-width: 0.25rem;\n}\n\n.border-width-1 {\n  border-width: 0.5rem;\n}\n\n.border-y-width-1 {\n  border-top-width: 0.5rem;\n  border-bottom-width: 0.5rem;\n}\n\n.border-x-width-1 {\n  border-left-width: 0.5rem;\n  border-right-width: 0.5rem;\n}\n\n.border-top-width-1 {\n  border-top-width: 0.5rem;\n}\n\n.border-right-width-1 {\n  border-right-width: 0.5rem;\n}\n\n.border-bottom-width-1 {\n  border-bottom-width: 0.5rem;\n}\n\n.border-left-width-1 {\n  border-left-width: 0.5rem;\n}\n\n.border-width-105 {\n  border-width: 0.75rem;\n}\n\n.border-y-width-105 {\n  border-top-width: 0.75rem;\n  border-bottom-width: 0.75rem;\n}\n\n.border-x-width-105 {\n  border-left-width: 0.75rem;\n  border-right-width: 0.75rem;\n}\n\n.border-top-width-105 {\n  border-top-width: 0.75rem;\n}\n\n.border-right-width-105 {\n  border-right-width: 0.75rem;\n}\n\n.border-bottom-width-105 {\n  border-bottom-width: 0.75rem;\n}\n\n.border-left-width-105 {\n  border-left-width: 0.75rem;\n}\n\n.border-width-2 {\n  border-width: 1rem;\n}\n\n.border-y-width-2 {\n  border-top-width: 1rem;\n  border-bottom-width: 1rem;\n}\n\n.border-x-width-2 {\n  border-left-width: 1rem;\n  border-right-width: 1rem;\n}\n\n.border-top-width-2 {\n  border-top-width: 1rem;\n}\n\n.border-right-width-2 {\n  border-right-width: 1rem;\n}\n\n.border-bottom-width-2 {\n  border-bottom-width: 1rem;\n}\n\n.border-left-width-2 {\n  border-left-width: 1rem;\n}\n\n.border-width-205 {\n  border-width: 1.25rem;\n}\n\n.border-y-width-205 {\n  border-top-width: 1.25rem;\n  border-bottom-width: 1.25rem;\n}\n\n.border-x-width-205 {\n  border-left-width: 1.25rem;\n  border-right-width: 1.25rem;\n}\n\n.border-top-width-205 {\n  border-top-width: 1.25rem;\n}\n\n.border-right-width-205 {\n  border-right-width: 1.25rem;\n}\n\n.border-bottom-width-205 {\n  border-bottom-width: 1.25rem;\n}\n\n.border-left-width-205 {\n  border-left-width: 1.25rem;\n}\n\n.border-width-3 {\n  border-width: 1.5rem;\n}\n\n.border-y-width-3 {\n  border-top-width: 1.5rem;\n  border-bottom-width: 1.5rem;\n}\n\n.border-x-width-3 {\n  border-left-width: 1.5rem;\n  border-right-width: 1.5rem;\n}\n\n.border-top-width-3 {\n  border-top-width: 1.5rem;\n}\n\n.border-right-width-3 {\n  border-right-width: 1.5rem;\n}\n\n.border-bottom-width-3 {\n  border-bottom-width: 1.5rem;\n}\n\n.border-left-width-3 {\n  border-left-width: 1.5rem;\n}\n\n.border-width-0 {\n  border-width: 0;\n}\n\n.border-y-width-0 {\n  border-top-width: 0;\n  border-bottom-width: 0;\n}\n\n.border-x-width-0 {\n  border-left-width: 0;\n  border-right-width: 0;\n}\n\n.border-top-width-0 {\n  border-top-width: 0;\n}\n\n.border-right-width-0 {\n  border-right-width: 0;\n}\n\n.border-bottom-width-0 {\n  border-bottom-width: 0;\n}\n\n.border-left-width-0 {\n  border-left-width: 0;\n}\n\n.bottom-1px {\n  bottom: 1px;\n}\n\n.bottom-2px {\n  bottom: 2px;\n}\n\n.bottom-05 {\n  bottom: 0.25rem;\n}\n\n.bottom-1 {\n  bottom: 0.5rem;\n}\n\n.bottom-105 {\n  bottom: 0.75rem;\n}\n\n.bottom-2 {\n  bottom: 1rem;\n}\n\n.bottom-205 {\n  bottom: 1.25rem;\n}\n\n.bottom-3 {\n  bottom: 1.5rem;\n}\n\n.bottom-neg-1px {\n  bottom: -1px;\n}\n\n.bottom-neg-2px {\n  bottom: -2px;\n}\n\n.bottom-neg-05 {\n  bottom: -0.25rem;\n}\n\n.bottom-neg-1 {\n  bottom: -0.5rem;\n}\n\n.bottom-neg-105 {\n  bottom: -0.75rem;\n}\n\n.bottom-neg-2 {\n  bottom: -1rem;\n}\n\n.bottom-neg-205 {\n  bottom: -1.25rem;\n}\n\n.bottom-neg-3 {\n  bottom: -1.5rem;\n}\n\n.bottom-0 {\n  bottom: 0;\n}\n\n.bottom-auto {\n  bottom: auto;\n}\n\n.bottom-full {\n  bottom: 100%;\n}\n\n.shadow-none {\n  box-shadow: none;\n}\n\n.hover\\:shadow-none:hover {\n  box-shadow: none;\n}\n\n.shadow-1 {\n  box-shadow: 0 1px 0.25rem 0 rgba(0, 0, 0, 0.1);\n}\n\n.hover\\:shadow-1:hover {\n  box-shadow: 0 1px 0.25rem 0 rgba(0, 0, 0, 0.1);\n}\n\n.shadow-2 {\n  box-shadow: 0 0.25rem 0.5rem 0 rgba(0, 0, 0, 0.1);\n}\n\n.hover\\:shadow-2:hover {\n  box-shadow: 0 0.25rem 0.5rem 0 rgba(0, 0, 0, 0.1);\n}\n\n.shadow-3 {\n  box-shadow: 0 0.5rem 1rem 0 rgba(0, 0, 0, 0.1);\n}\n\n.hover\\:shadow-3:hover {\n  box-shadow: 0 0.5rem 1rem 0 rgba(0, 0, 0, 0.1);\n}\n\n.shadow-4 {\n  box-shadow: 0 0.75rem 1.5rem 0 rgba(0, 0, 0, 0.1);\n}\n\n.hover\\:shadow-4:hover {\n  box-shadow: 0 0.75rem 1.5rem 0 rgba(0, 0, 0, 0.1);\n}\n\n.shadow-5 {\n  box-shadow: 0 1rem 2rem 0 rgba(0, 0, 0, 0.1);\n}\n\n.hover\\:shadow-5:hover {\n  box-shadow: 0 1rem 2rem 0 rgba(0, 0, 0, 0.1);\n}\n\n.circle-1px {\n  height: 1px;\n  width: 1px;\n  border-radius: 50%;\n}\n\n.circle-2px {\n  height: 2px;\n  width: 2px;\n  border-radius: 50%;\n}\n\n.circle-05 {\n  height: 0.25rem;\n  width: 0.25rem;\n  border-radius: 50%;\n}\n\n.circle-1 {\n  height: 0.5rem;\n  width: 0.5rem;\n  border-radius: 50%;\n}\n\n.circle-105 {\n  height: 0.75rem;\n  width: 0.75rem;\n  border-radius: 50%;\n}\n\n.circle-2 {\n  height: 1rem;\n  width: 1rem;\n  border-radius: 50%;\n}\n\n.circle-205 {\n  height: 1.25rem;\n  width: 1.25rem;\n  border-radius: 50%;\n}\n\n.circle-3 {\n  height: 1.5rem;\n  width: 1.5rem;\n  border-radius: 50%;\n}\n\n.circle-4 {\n  height: 2rem;\n  width: 2rem;\n  border-radius: 50%;\n}\n\n.circle-5 {\n  height: 2.5rem;\n  width: 2.5rem;\n  border-radius: 50%;\n}\n\n.circle-6 {\n  height: 3rem;\n  width: 3rem;\n  border-radius: 50%;\n}\n\n.circle-7 {\n  height: 3.5rem;\n  width: 3.5rem;\n  border-radius: 50%;\n}\n\n.circle-8 {\n  height: 4rem;\n  width: 4rem;\n  border-radius: 50%;\n}\n\n.circle-9 {\n  height: 4.5rem;\n  width: 4.5rem;\n  border-radius: 50%;\n}\n\n.circle-10 {\n  height: 5rem;\n  width: 5rem;\n  border-radius: 50%;\n}\n\n.circle-15 {\n  height: 7.5rem;\n  width: 7.5rem;\n  border-radius: 50%;\n}\n\n.circle-card {\n  height: 10rem;\n  width: 10rem;\n  border-radius: 50%;\n}\n\n.circle-card-lg {\n  height: 15rem;\n  width: 15rem;\n  border-radius: 50%;\n}\n\n.circle-mobile {\n  height: 20rem;\n  width: 20rem;\n  border-radius: 50%;\n}\n\n.clearfix::after {\n  content: \"\";\n  display: block;\n  clear: both;\n}\n\n.text-transparent {\n  color: transparent;\n}\n\n.hover\\:text-transparent:hover {\n  color: transparent;\n}\n\n.text-black {\n  color: black;\n}\n\n.hover\\:text-black:hover {\n  color: black;\n}\n\n.text-white {\n  color: white;\n}\n\n.hover\\:text-white:hover {\n  color: white;\n}\n\n.text-red {\n  color: #e52207;\n}\n\n.hover\\:text-red:hover {\n  color: #e52207;\n}\n\n.text-orange {\n  color: #e66f0e;\n}\n\n.hover\\:text-orange:hover {\n  color: #e66f0e;\n}\n\n.text-gold {\n  color: #ffbe2e;\n}\n\n.hover\\:text-gold:hover {\n  color: #ffbe2e;\n}\n\n.text-yellow {\n  color: #fee685;\n}\n\n.hover\\:text-yellow:hover {\n  color: #fee685;\n}\n\n.text-green {\n  color: #538200;\n}\n\n.hover\\:text-green:hover {\n  color: #538200;\n}\n\n.text-mint {\n  color: #04c585;\n}\n\n.hover\\:text-mint:hover {\n  color: #04c585;\n}\n\n.text-cyan {\n  color: #009ec1;\n}\n\n.hover\\:text-cyan:hover {\n  color: #009ec1;\n}\n\n.text-blue {\n  color: #0076d6;\n}\n\n.hover\\:text-blue:hover {\n  color: #0076d6;\n}\n\n.text-indigo {\n  color: #676cc8;\n}\n\n.hover\\:text-indigo:hover {\n  color: #676cc8;\n}\n\n.text-violet {\n  color: #8168b3;\n}\n\n.hover\\:text-violet:hover {\n  color: #8168b3;\n}\n\n.text-magenta {\n  color: #d72d79;\n}\n\n.hover\\:text-magenta:hover {\n  color: #d72d79;\n}\n\n.text-gray-5 {\n  color: #f0f0f0;\n}\n\n.hover\\:text-gray-5:hover {\n  color: #f0f0f0;\n}\n\n.text-gray-10 {\n  color: #e6e6e6;\n}\n\n.hover\\:text-gray-10:hover {\n  color: #e6e6e6;\n}\n\n.text-gray-30 {\n  color: #adadad;\n}\n\n.hover\\:text-gray-30:hover {\n  color: #adadad;\n}\n\n.text-gray-50 {\n  color: #757575;\n}\n\n.hover\\:text-gray-50:hover {\n  color: #757575;\n}\n\n.text-gray-70 {\n  color: #454545;\n}\n\n.hover\\:text-gray-70:hover {\n  color: #454545;\n}\n\n.text-gray-90 {\n  color: #1b1b1b;\n}\n\n.hover\\:text-gray-90:hover {\n  color: #1b1b1b;\n}\n\n.text-base-lightest {\n  color: #f0f0f0;\n}\n\n.hover\\:text-base-lightest:hover {\n  color: #f0f0f0;\n}\n\n.text-base-lighter {\n  color: #dfe1e2;\n}\n\n.hover\\:text-base-lighter:hover {\n  color: #dfe1e2;\n}\n\n.text-base-light {\n  color: #a9aeb1;\n}\n\n.hover\\:text-base-light:hover {\n  color: #a9aeb1;\n}\n\n.text-base {\n  color: #71767a;\n}\n\n.hover\\:text-base:hover {\n  color: #71767a;\n}\n\n.text-base-dark {\n  color: #565c65;\n}\n\n.hover\\:text-base-dark:hover {\n  color: #565c65;\n}\n\n.text-base-darker {\n  color: #3d4551;\n}\n\n.hover\\:text-base-darker:hover {\n  color: #3d4551;\n}\n\n.text-base-darkest {\n  color: #1b1b1b;\n}\n\n.hover\\:text-base-darkest:hover {\n  color: #1b1b1b;\n}\n\n.text-ink {\n  color: #1b1b1b;\n}\n\n.hover\\:text-ink:hover {\n  color: #1b1b1b;\n}\n\n.text-primary-lighter {\n  color: #d9e8f6;\n}\n\n.hover\\:text-primary-lighter:hover {\n  color: #d9e8f6;\n}\n\n.text-primary-light {\n  color: #73b3e7;\n}\n\n.hover\\:text-primary-light:hover {\n  color: #73b3e7;\n}\n\n.text-primary {\n  color: #005ea2;\n}\n\n.hover\\:text-primary:hover {\n  color: #005ea2;\n}\n\n.text-primary-vivid {\n  color: #0050d8;\n}\n\n.hover\\:text-primary-vivid:hover {\n  color: #0050d8;\n}\n\n.text-primary-dark {\n  color: #1a4480;\n}\n\n.hover\\:text-primary-dark:hover {\n  color: #1a4480;\n}\n\n.text-primary-darker {\n  color: #162e51;\n}\n\n.hover\\:text-primary-darker:hover {\n  color: #162e51;\n}\n\n.text-secondary-lighter {\n  color: #f3e1e4;\n}\n\n.hover\\:text-secondary-lighter:hover {\n  color: #f3e1e4;\n}\n\n.text-secondary-light {\n  color: #f2938c;\n}\n\n.hover\\:text-secondary-light:hover {\n  color: #f2938c;\n}\n\n.text-secondary {\n  color: #d83933;\n}\n\n.hover\\:text-secondary:hover {\n  color: #d83933;\n}\n\n.text-secondary-vivid {\n  color: #e41d3d;\n}\n\n.hover\\:text-secondary-vivid:hover {\n  color: #e41d3d;\n}\n\n.text-secondary-dark {\n  color: #b50909;\n}\n\n.hover\\:text-secondary-dark:hover {\n  color: #b50909;\n}\n\n.text-secondary-darker {\n  color: #8b0a03;\n}\n\n.hover\\:text-secondary-darker:hover {\n  color: #8b0a03;\n}\n\n.text-accent-warm-darker {\n  color: #775540;\n}\n\n.hover\\:text-accent-warm-darker:hover {\n  color: #775540;\n}\n\n.text-accent-warm-dark {\n  color: #c05600;\n}\n\n.hover\\:text-accent-warm-dark:hover {\n  color: #c05600;\n}\n\n.text-accent-warm {\n  color: #fa9441;\n}\n\n.hover\\:text-accent-warm:hover {\n  color: #fa9441;\n}\n\n.text-accent-warm-light {\n  color: #ffbc78;\n}\n\n.hover\\:text-accent-warm-light:hover {\n  color: #ffbc78;\n}\n\n.text-accent-warm-lighter {\n  color: #f2e4d4;\n}\n\n.hover\\:text-accent-warm-lighter:hover {\n  color: #f2e4d4;\n}\n\n.text-accent-cool-darker {\n  color: #07648d;\n}\n\n.hover\\:text-accent-cool-darker:hover {\n  color: #07648d;\n}\n\n.text-accent-cool-dark {\n  color: #28a0cb;\n}\n\n.hover\\:text-accent-cool-dark:hover {\n  color: #28a0cb;\n}\n\n.text-accent-cool {\n  color: #00bde3;\n}\n\n.hover\\:text-accent-cool:hover {\n  color: #00bde3;\n}\n\n.text-accent-cool-light {\n  color: #97d4ea;\n}\n\n.hover\\:text-accent-cool-light:hover {\n  color: #97d4ea;\n}\n\n.text-accent-cool-lighter {\n  color: #e1f3f8;\n}\n\n.hover\\:text-accent-cool-lighter:hover {\n  color: #e1f3f8;\n}\n\n.text-error-lighter {\n  color: #f4e3db;\n}\n\n.hover\\:text-error-lighter:hover {\n  color: #f4e3db;\n}\n\n.text-error-light {\n  color: #f39268;\n}\n\n.hover\\:text-error-light:hover {\n  color: #f39268;\n}\n\n.text-error {\n  color: #d54309;\n}\n\n.hover\\:text-error:hover {\n  color: #d54309;\n}\n\n.text-error-dark {\n  color: #b50909;\n}\n\n.hover\\:text-error-dark:hover {\n  color: #b50909;\n}\n\n.text-error-darker {\n  color: #6f3331;\n}\n\n.hover\\:text-error-darker:hover {\n  color: #6f3331;\n}\n\n.text-warning-lighter {\n  color: #faf3d1;\n}\n\n.hover\\:text-warning-lighter:hover {\n  color: #faf3d1;\n}\n\n.text-warning-light {\n  color: #fee685;\n}\n\n.hover\\:text-warning-light:hover {\n  color: #fee685;\n}\n\n.text-warning {\n  color: #ffbe2e;\n}\n\n.hover\\:text-warning:hover {\n  color: #ffbe2e;\n}\n\n.text-warning-dark {\n  color: #e5a000;\n}\n\n.hover\\:text-warning-dark:hover {\n  color: #e5a000;\n}\n\n.text-warning-darker {\n  color: #936f38;\n}\n\n.hover\\:text-warning-darker:hover {\n  color: #936f38;\n}\n\n.text-success-lighter {\n  color: #ecf3ec;\n}\n\n.hover\\:text-success-lighter:hover {\n  color: #ecf3ec;\n}\n\n.text-success-light {\n  color: #70e17b;\n}\n\n.hover\\:text-success-light:hover {\n  color: #70e17b;\n}\n\n.text-success {\n  color: #00a91c;\n}\n\n.hover\\:text-success:hover {\n  color: #00a91c;\n}\n\n.text-success-dark {\n  color: #008817;\n}\n\n.hover\\:text-success-dark:hover {\n  color: #008817;\n}\n\n.text-success-darker {\n  color: #216e1f;\n}\n\n.hover\\:text-success-darker:hover {\n  color: #216e1f;\n}\n\n.text-info-lighter {\n  color: #e7f6f8;\n}\n\n.hover\\:text-info-lighter:hover {\n  color: #e7f6f8;\n}\n\n.text-info-light {\n  color: #99deea;\n}\n\n.hover\\:text-info-light:hover {\n  color: #99deea;\n}\n\n.text-info {\n  color: #00bde3;\n}\n\n.hover\\:text-info:hover {\n  color: #00bde3;\n}\n\n.text-info-dark {\n  color: #009ec1;\n}\n\n.hover\\:text-info-dark:hover {\n  color: #009ec1;\n}\n\n.text-info-darker {\n  color: #2e6276;\n}\n\n.hover\\:text-info-darker:hover {\n  color: #2e6276;\n}\n\n.text-disabled-lighter {\n  color: #c9c9c9;\n}\n\n.hover\\:text-disabled-lighter:hover {\n  color: #c9c9c9;\n}\n\n.text-disabled-light {\n  color: #919191;\n}\n\n.hover\\:text-disabled-light:hover {\n  color: #919191;\n}\n\n.text-disabled {\n  color: #757575;\n}\n\n.hover\\:text-disabled:hover {\n  color: #757575;\n}\n\n.text-disabled-dark {\n  color: #454545;\n}\n\n.hover\\:text-disabled-dark:hover {\n  color: #454545;\n}\n\n.text-disabled-darker {\n  color: #1b1b1b;\n}\n\n.hover\\:text-disabled-darker:hover {\n  color: #1b1b1b;\n}\n\n.text-emergency {\n  color: #9c3d10;\n}\n\n.hover\\:text-emergency:hover {\n  color: #9c3d10;\n}\n\n.text-emergency-dark {\n  color: #332d29;\n}\n\n.hover\\:text-emergency-dark:hover {\n  color: #332d29;\n}\n\n.cursor-auto {\n  cursor: auto;\n}\n\n.cursor-default {\n  cursor: default;\n}\n\n.cursor-pointer {\n  cursor: pointer;\n}\n\n.cursor-wait {\n  cursor: wait;\n}\n\n.cursor-move {\n  cursor: move;\n}\n\n.cursor-not-allowed {\n  cursor: not-allowed;\n}\n\n.display-block {\n  display: block;\n}\n\n.display-flex {\n  display: flex;\n}\n\n.display-none {\n  display: none;\n}\n\n.display-inline {\n  display: inline;\n}\n\n.display-inline-block {\n  display: inline-block;\n}\n\n.display-inline-flex {\n  display: inline-flex;\n}\n\n.display-table {\n  display: table;\n}\n\n.display-table-cell {\n  display: table-cell;\n}\n\n.display-table-row {\n  display: table-row;\n}\n\n.flex-1 {\n  flex: 1 1 0%;\n}\n\n.flex-2 {\n  flex: 2 1 0%;\n}\n\n.flex-3 {\n  flex: 3 1 0%;\n}\n\n.flex-4 {\n  flex: 4 1 0%;\n}\n\n.flex-5 {\n  flex: 5 1 0%;\n}\n\n.flex-6 {\n  flex: 6 1 0%;\n}\n\n.flex-7 {\n  flex: 7 1 0%;\n}\n\n.flex-8 {\n  flex: 8 1 0%;\n}\n\n.flex-9 {\n  flex: 9 1 0%;\n}\n\n.flex-10 {\n  flex: 10 1 0%;\n}\n\n.flex-11 {\n  flex: 11 1 0%;\n}\n\n.flex-12 {\n  flex: 12 1 0%;\n}\n\n.flex-fill {\n  flex: 1 1 0%;\n}\n\n.flex-auto {\n  flex: 0 1 auto;\n}\n\n.flex-row {\n  flex-direction: row;\n}\n\n.flex-column {\n  flex-direction: column;\n}\n\n.flex-wrap {\n  flex-wrap: wrap;\n}\n\n.flex-no-wrap {\n  flex-wrap: nowrap;\n}\n\n.float-left {\n  float: left;\n}\n\n.float-none {\n  float: none;\n}\n\n.float-right {\n  float: right;\n}\n\n.font-mono-3xs {\n  font-size: 0.77rem;\n}\n\n.font-mono-2xs {\n  font-size: 0.83rem;\n}\n\n.font-mono-xs {\n  font-size: 0.89rem;\n}\n\n.font-mono-sm {\n  font-size: 0.95rem;\n}\n\n.font-mono-md {\n  font-size: 1.01rem;\n}\n\n.font-mono-lg {\n  font-size: 1.31rem;\n}\n\n.font-mono-xl {\n  font-size: 1.91rem;\n}\n\n.font-mono-2xl {\n  font-size: 2.38rem;\n}\n\n.font-mono-3xl {\n  font-size: 2.86rem;\n}\n\n.font-sans-3xs {\n  font-size: 0.87rem;\n}\n\n.font-sans-2xs {\n  font-size: 0.93rem;\n}\n\n.font-sans-xs {\n  font-size: 1rem;\n}\n\n.font-sans-sm {\n  font-size: 1.06rem;\n}\n\n.font-sans-md {\n  font-size: 1.13rem;\n}\n\n.font-sans-lg {\n  font-size: 1.46rem;\n}\n\n.font-sans-xl {\n  font-size: 2.13rem;\n}\n\n.font-sans-2xl {\n  font-size: 2.66rem;\n}\n\n.font-sans-3xl {\n  font-size: 3.19rem;\n}\n\n.font-serif-3xs {\n  font-size: 0.79rem;\n}\n\n.font-serif-2xs {\n  font-size: 0.85rem;\n}\n\n.font-serif-xs {\n  font-size: 0.91rem;\n}\n\n.font-serif-sm {\n  font-size: 0.98rem;\n}\n\n.font-serif-md {\n  font-size: 1.04rem;\n}\n\n.font-serif-lg {\n  font-size: 1.34rem;\n}\n\n.font-serif-xl {\n  font-size: 1.95rem;\n}\n\n.font-serif-2xl {\n  font-size: 2.44rem;\n}\n\n.font-serif-3xl {\n  font-size: 2.93rem;\n}\n\n.font-heading-3xs {\n  font-size: 0.79rem;\n}\n\n.font-heading-2xs {\n  font-size: 0.85rem;\n}\n\n.font-heading-xs {\n  font-size: 0.91rem;\n}\n\n.font-heading-sm {\n  font-size: 0.98rem;\n}\n\n.font-heading-md {\n  font-size: 1.04rem;\n}\n\n.font-heading-lg {\n  font-size: 1.34rem;\n}\n\n.font-heading-xl {\n  font-size: 1.95rem;\n}\n\n.font-heading-2xl {\n  font-size: 2.44rem;\n}\n\n.font-heading-3xl {\n  font-size: 2.93rem;\n}\n\n.font-body-3xs {\n  font-size: 0.87rem;\n}\n\n.font-body-2xs {\n  font-size: 0.93rem;\n}\n\n.font-body-xs {\n  font-size: 1rem;\n}\n\n.font-body-sm {\n  font-size: 1.06rem;\n}\n\n.font-body-md {\n  font-size: 1.13rem;\n}\n\n.font-body-lg {\n  font-size: 1.46rem;\n}\n\n.font-body-xl {\n  font-size: 2.13rem;\n}\n\n.font-body-2xl {\n  font-size: 2.66rem;\n}\n\n.font-body-3xl {\n  font-size: 3.19rem;\n}\n\n.font-code-3xs {\n  font-size: 0.77rem;\n}\n\n.font-code-2xs {\n  font-size: 0.83rem;\n}\n\n.font-code-xs {\n  font-size: 0.89rem;\n}\n\n.font-code-sm {\n  font-size: 0.95rem;\n}\n\n.font-code-md {\n  font-size: 1.01rem;\n}\n\n.font-code-lg {\n  font-size: 1.31rem;\n}\n\n.font-code-xl {\n  font-size: 1.91rem;\n}\n\n.font-code-2xl {\n  font-size: 2.38rem;\n}\n\n.font-code-3xl {\n  font-size: 2.86rem;\n}\n\n.font-alt-3xs {\n  font-size: 0.79rem;\n}\n\n.font-alt-2xs {\n  font-size: 0.85rem;\n}\n\n.font-alt-xs {\n  font-size: 0.91rem;\n}\n\n.font-alt-sm {\n  font-size: 0.98rem;\n}\n\n.font-alt-md {\n  font-size: 1.04rem;\n}\n\n.font-alt-lg {\n  font-size: 1.34rem;\n}\n\n.font-alt-xl {\n  font-size: 1.95rem;\n}\n\n.font-alt-2xl {\n  font-size: 2.44rem;\n}\n\n.font-alt-3xl {\n  font-size: 2.93rem;\n}\n\n.font-ui-3xs {\n  font-size: 0.87rem;\n}\n\n.font-ui-2xs {\n  font-size: 0.93rem;\n}\n\n.font-ui-xs {\n  font-size: 1rem;\n}\n\n.font-ui-sm {\n  font-size: 1.06rem;\n}\n\n.font-ui-md {\n  font-size: 1.13rem;\n}\n\n.font-ui-lg {\n  font-size: 1.46rem;\n}\n\n.font-ui-xl {\n  font-size: 2.13rem;\n}\n\n.font-ui-2xl {\n  font-size: 2.66rem;\n}\n\n.font-ui-3xl {\n  font-size: 3.19rem;\n}\n\n.font-family-mono {\n  font-family: Roboto Mono Web, Bitstream Vera Sans Mono, Consolas, Courier, monospace;\n}\n\n.font-family-sans {\n  font-family: Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;\n}\n\n.font-family-serif {\n  font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n}\n\n.font-family-ui {\n  font-family: Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;\n}\n\n.font-family-heading {\n  font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n}\n\n.font-family-body {\n  font-family: Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;\n}\n\n.font-family-code {\n  font-family: Roboto Mono Web, Bitstream Vera Sans Mono, Consolas, Courier, monospace;\n}\n\n.font-family-alt {\n  font-family: Merriweather Web, Georgia, Cambria, Times New Roman, Times, serif;\n}\n\n.text-tabular {\n  font-feature-settings: \"tnum\" 1, \"kern\" 1;\n}\n\n.text-no-tabular {\n  font-feature-settings: \"kern\" 1;\n}\n\n.text-italic {\n  font-style: italic;\n}\n\n.text-no-italic {\n  font-style: normal;\n}\n\n.text-light {\n  font-weight: 300;\n}\n\n.text-normal {\n  font-weight: normal;\n}\n\n.text-bold {\n  font-weight: 700;\n}\n\n.height-1px {\n  height: 1px;\n}\n\n.height-2px {\n  height: 2px;\n}\n\n.height-05 {\n  height: 0.25rem;\n}\n\n.height-1 {\n  height: 0.5rem;\n}\n\n.height-105 {\n  height: 0.75rem;\n}\n\n.height-2 {\n  height: 1rem;\n}\n\n.height-205 {\n  height: 1.25rem;\n}\n\n.height-3 {\n  height: 1.5rem;\n}\n\n.height-4 {\n  height: 2rem;\n}\n\n.height-5 {\n  height: 2.5rem;\n}\n\n.height-6 {\n  height: 3rem;\n}\n\n.height-7 {\n  height: 3.5rem;\n}\n\n.height-8 {\n  height: 4rem;\n}\n\n.height-9 {\n  height: 4.5rem;\n}\n\n.height-10 {\n  height: 5rem;\n}\n\n.height-15 {\n  height: 7.5rem;\n}\n\n.height-card {\n  height: 10rem;\n}\n\n.height-card-lg {\n  height: 15rem;\n}\n\n.height-mobile {\n  height: 20rem;\n}\n\n.height-0 {\n  height: 0;\n}\n\n.height-auto {\n  height: auto;\n}\n\n.height-full {\n  height: 100%;\n}\n\n.height-viewport {\n  height: 100vh;\n}\n\n.flex-justify-center {\n  justify-content: center;\n}\n\n.flex-justify-start {\n  justify-content: flex-start;\n}\n\n.flex-justify-end {\n  justify-content: flex-end;\n}\n\n.flex-justify {\n  justify-content: space-between;\n}\n\n.left-1px {\n  left: 1px;\n}\n\n.left-2px {\n  left: 2px;\n}\n\n.left-05 {\n  left: 0.25rem;\n}\n\n.left-1 {\n  left: 0.5rem;\n}\n\n.left-105 {\n  left: 0.75rem;\n}\n\n.left-2 {\n  left: 1rem;\n}\n\n.left-205 {\n  left: 1.25rem;\n}\n\n.left-3 {\n  left: 1.5rem;\n}\n\n.left-neg-1px {\n  left: -1px;\n}\n\n.left-neg-2px {\n  left: -2px;\n}\n\n.left-neg-05 {\n  left: -0.25rem;\n}\n\n.left-neg-1 {\n  left: -0.5rem;\n}\n\n.left-neg-105 {\n  left: -0.75rem;\n}\n\n.left-neg-2 {\n  left: -1rem;\n}\n\n.left-neg-205 {\n  left: -1.25rem;\n}\n\n.left-neg-3 {\n  left: -1.5rem;\n}\n\n.left-0 {\n  left: 0;\n}\n\n.left-auto {\n  left: auto;\n}\n\n.left-full {\n  left: 100%;\n}\n\n.text-ls-auto {\n  letter-spacing: initial;\n}\n\n.text-ls-neg-3 {\n  letter-spacing: -0.03em;\n}\n\n.text-ls-neg-2 {\n  letter-spacing: -0.02em;\n}\n\n.text-ls-neg-1 {\n  letter-spacing: -0.01em;\n}\n\n.text-ls-1 {\n  letter-spacing: 0.025em;\n}\n\n.text-ls-2 {\n  letter-spacing: 0.1em;\n}\n\n.text-ls-3 {\n  letter-spacing: 0.15em;\n}\n\n.line-height-sans-1 {\n  line-height: 0.9;\n}\n\n.line-height-sans-2 {\n  line-height: 1.1;\n}\n\n.line-height-sans-3 {\n  line-height: 1.3;\n}\n\n.line-height-sans-4 {\n  line-height: 1.4;\n}\n\n.line-height-sans-5 {\n  line-height: 1.5;\n}\n\n.line-height-sans-6 {\n  line-height: 1.6;\n}\n\n.line-height-serif-1 {\n  line-height: 1;\n}\n\n.line-height-serif-2 {\n  line-height: 1.2;\n}\n\n.line-height-serif-3 {\n  line-height: 1.4;\n}\n\n.line-height-serif-4 {\n  line-height: 1.5;\n}\n\n.line-height-serif-5 {\n  line-height: 1.7;\n}\n\n.line-height-serif-6 {\n  line-height: 1.8;\n}\n\n.line-height-mono-1 {\n  line-height: 1;\n}\n\n.line-height-mono-2 {\n  line-height: 1.3;\n}\n\n.line-height-mono-3 {\n  line-height: 1.4;\n}\n\n.line-height-mono-4 {\n  line-height: 1.6;\n}\n\n.line-height-mono-5 {\n  line-height: 1.7;\n}\n\n.line-height-mono-6 {\n  line-height: 1.8;\n}\n\n.line-height-heading-1 {\n  line-height: 1;\n}\n\n.line-height-heading-2 {\n  line-height: 1.2;\n}\n\n.line-height-heading-3 {\n  line-height: 1.4;\n}\n\n.line-height-heading-4 {\n  line-height: 1.5;\n}\n\n.line-height-heading-5 {\n  line-height: 1.7;\n}\n\n.line-height-heading-6 {\n  line-height: 1.8;\n}\n\n.line-height-ui-1 {\n  line-height: 0.9;\n}\n\n.line-height-ui-2 {\n  line-height: 1.1;\n}\n\n.line-height-ui-3 {\n  line-height: 1.3;\n}\n\n.line-height-ui-4 {\n  line-height: 1.4;\n}\n\n.line-height-ui-5 {\n  line-height: 1.5;\n}\n\n.line-height-ui-6 {\n  line-height: 1.6;\n}\n\n.line-height-body-1 {\n  line-height: 0.9;\n}\n\n.line-height-body-2 {\n  line-height: 1.1;\n}\n\n.line-height-body-3 {\n  line-height: 1.3;\n}\n\n.line-height-body-4 {\n  line-height: 1.4;\n}\n\n.line-height-body-5 {\n  line-height: 1.5;\n}\n\n.line-height-body-6 {\n  line-height: 1.6;\n}\n\n.line-height-code-1 {\n  line-height: 1;\n}\n\n.line-height-code-2 {\n  line-height: 1.3;\n}\n\n.line-height-code-3 {\n  line-height: 1.4;\n}\n\n.line-height-code-4 {\n  line-height: 1.6;\n}\n\n.line-height-code-5 {\n  line-height: 1.7;\n}\n\n.line-height-code-6 {\n  line-height: 1.8;\n}\n\n.line-height-alt-1 {\n  line-height: 1;\n}\n\n.line-height-alt-2 {\n  line-height: 1.2;\n}\n\n.line-height-alt-3 {\n  line-height: 1.4;\n}\n\n.line-height-alt-4 {\n  line-height: 1.5;\n}\n\n.line-height-alt-5 {\n  line-height: 1.7;\n}\n\n.line-height-alt-6 {\n  line-height: 1.8;\n}\n\n.margin-neg-1px {\n  margin: -1px;\n}\n\n.margin-neg-2px {\n  margin: -2px;\n}\n\n.margin-neg-05 {\n  margin: -0.25rem;\n}\n\n.margin-neg-1 {\n  margin: -0.5rem;\n}\n\n.margin-neg-105 {\n  margin: -0.75rem;\n}\n\n.margin-neg-2 {\n  margin: -1rem;\n}\n\n.margin-neg-205 {\n  margin: -1.25rem;\n}\n\n.margin-neg-3 {\n  margin: -1.5rem;\n}\n\n.margin-1px {\n  margin: 1px;\n}\n\n.margin-2px {\n  margin: 2px;\n}\n\n.margin-05 {\n  margin: 0.25rem;\n}\n\n.margin-1 {\n  margin: 0.5rem;\n}\n\n.margin-105 {\n  margin: 0.75rem;\n}\n\n.margin-2 {\n  margin: 1rem;\n}\n\n.margin-205 {\n  margin: 1.25rem;\n}\n\n.margin-3 {\n  margin: 1.5rem;\n}\n\n.margin-neg-4 {\n  margin: -2rem;\n}\n\n.margin-neg-5 {\n  margin: -2.5rem;\n}\n\n.margin-neg-6 {\n  margin: -3rem;\n}\n\n.margin-neg-7 {\n  margin: -3.5rem;\n}\n\n.margin-neg-8 {\n  margin: -4rem;\n}\n\n.margin-neg-9 {\n  margin: -4.5rem;\n}\n\n.margin-neg-10 {\n  margin: -5rem;\n}\n\n.margin-neg-15 {\n  margin: -7.5rem;\n}\n\n.margin-4 {\n  margin: 2rem;\n}\n\n.margin-5 {\n  margin: 2.5rem;\n}\n\n.margin-6 {\n  margin: 3rem;\n}\n\n.margin-7 {\n  margin: 3.5rem;\n}\n\n.margin-8 {\n  margin: 4rem;\n}\n\n.margin-9 {\n  margin: 4.5rem;\n}\n\n.margin-10 {\n  margin: 5rem;\n}\n\n.margin-15 {\n  margin: 7.5rem;\n}\n\n.margin-05em {\n  margin: 0.5em;\n}\n\n.margin-1em {\n  margin: 1em;\n}\n\n.margin-105em {\n  margin: 1.5em;\n}\n\n.margin-2em {\n  margin: 2em;\n}\n\n.margin-0 {\n  margin: 0;\n}\n\n.margin-y-1px {\n  margin-top: 1px;\n  margin-bottom: 1px;\n}\n\n.margin-top-1px {\n  margin-top: 1px;\n}\n\n.margin-bottom-1px {\n  margin-bottom: 1px;\n}\n\n.margin-y-2px {\n  margin-top: 2px;\n  margin-bottom: 2px;\n}\n\n.margin-top-2px {\n  margin-top: 2px;\n}\n\n.margin-bottom-2px {\n  margin-bottom: 2px;\n}\n\n.margin-y-05 {\n  margin-top: 0.25rem;\n  margin-bottom: 0.25rem;\n}\n\n.margin-top-05 {\n  margin-top: 0.25rem;\n}\n\n.margin-bottom-05 {\n  margin-bottom: 0.25rem;\n}\n\n.margin-y-1 {\n  margin-top: 0.5rem;\n  margin-bottom: 0.5rem;\n}\n\n.margin-top-1 {\n  margin-top: 0.5rem;\n}\n\n.margin-bottom-1 {\n  margin-bottom: 0.5rem;\n}\n\n.margin-y-105 {\n  margin-top: 0.75rem;\n  margin-bottom: 0.75rem;\n}\n\n.margin-top-105 {\n  margin-top: 0.75rem;\n}\n\n.margin-bottom-105 {\n  margin-bottom: 0.75rem;\n}\n\n.margin-y-2 {\n  margin-top: 1rem;\n  margin-bottom: 1rem;\n}\n\n.margin-top-2 {\n  margin-top: 1rem;\n}\n\n.margin-bottom-2 {\n  margin-bottom: 1rem;\n}\n\n.margin-y-205 {\n  margin-top: 1.25rem;\n  margin-bottom: 1.25rem;\n}\n\n.margin-top-205 {\n  margin-top: 1.25rem;\n}\n\n.margin-bottom-205 {\n  margin-bottom: 1.25rem;\n}\n\n.margin-y-3 {\n  margin-top: 1.5rem;\n  margin-bottom: 1.5rem;\n}\n\n.margin-top-3 {\n  margin-top: 1.5rem;\n}\n\n.margin-bottom-3 {\n  margin-bottom: 1.5rem;\n}\n\n.margin-y-neg-1px {\n  margin-top: -1px;\n  margin-bottom: -1px;\n}\n\n.margin-top-neg-1px {\n  margin-top: -1px;\n}\n\n.margin-bottom-neg-1px {\n  margin-bottom: -1px;\n}\n\n.margin-y-neg-2px {\n  margin-top: -2px;\n  margin-bottom: -2px;\n}\n\n.margin-top-neg-2px {\n  margin-top: -2px;\n}\n\n.margin-bottom-neg-2px {\n  margin-bottom: -2px;\n}\n\n.margin-y-neg-05 {\n  margin-top: -0.25rem;\n  margin-bottom: -0.25rem;\n}\n\n.margin-top-neg-05 {\n  margin-top: -0.25rem;\n}\n\n.margin-bottom-neg-05 {\n  margin-bottom: -0.25rem;\n}\n\n.margin-y-neg-1 {\n  margin-top: -0.5rem;\n  margin-bottom: -0.5rem;\n}\n\n.margin-top-neg-1 {\n  margin-top: -0.5rem;\n}\n\n.margin-bottom-neg-1 {\n  margin-bottom: -0.5rem;\n}\n\n.margin-y-neg-105 {\n  margin-top: -0.75rem;\n  margin-bottom: -0.75rem;\n}\n\n.margin-top-neg-105 {\n  margin-top: -0.75rem;\n}\n\n.margin-bottom-neg-105 {\n  margin-bottom: -0.75rem;\n}\n\n.margin-y-neg-2 {\n  margin-top: -1rem;\n  margin-bottom: -1rem;\n}\n\n.margin-top-neg-2 {\n  margin-top: -1rem;\n}\n\n.margin-bottom-neg-2 {\n  margin-bottom: -1rem;\n}\n\n.margin-y-neg-205 {\n  margin-top: -1.25rem;\n  margin-bottom: -1.25rem;\n}\n\n.margin-top-neg-205 {\n  margin-top: -1.25rem;\n}\n\n.margin-bottom-neg-205 {\n  margin-bottom: -1.25rem;\n}\n\n.margin-y-neg-3 {\n  margin-top: -1.5rem;\n  margin-bottom: -1.5rem;\n}\n\n.margin-top-neg-3 {\n  margin-top: -1.5rem;\n}\n\n.margin-bottom-neg-3 {\n  margin-bottom: -1.5rem;\n}\n\n.margin-y-neg-4 {\n  margin-top: -2rem;\n  margin-bottom: -2rem;\n}\n\n.margin-top-neg-4 {\n  margin-top: -2rem;\n}\n\n.margin-bottom-neg-4 {\n  margin-bottom: -2rem;\n}\n\n.margin-y-neg-5 {\n  margin-top: -2.5rem;\n  margin-bottom: -2.5rem;\n}\n\n.margin-top-neg-5 {\n  margin-top: -2.5rem;\n}\n\n.margin-bottom-neg-5 {\n  margin-bottom: -2.5rem;\n}\n\n.margin-y-neg-6 {\n  margin-top: -3rem;\n  margin-bottom: -3rem;\n}\n\n.margin-top-neg-6 {\n  margin-top: -3rem;\n}\n\n.margin-bottom-neg-6 {\n  margin-bottom: -3rem;\n}\n\n.margin-y-neg-7 {\n  margin-top: -3.5rem;\n  margin-bottom: -3.5rem;\n}\n\n.margin-top-neg-7 {\n  margin-top: -3.5rem;\n}\n\n.margin-bottom-neg-7 {\n  margin-bottom: -3.5rem;\n}\n\n.margin-y-neg-8 {\n  margin-top: -4rem;\n  margin-bottom: -4rem;\n}\n\n.margin-top-neg-8 {\n  margin-top: -4rem;\n}\n\n.margin-bottom-neg-8 {\n  margin-bottom: -4rem;\n}\n\n.margin-y-neg-9 {\n  margin-top: -4.5rem;\n  margin-bottom: -4.5rem;\n}\n\n.margin-top-neg-9 {\n  margin-top: -4.5rem;\n}\n\n.margin-bottom-neg-9 {\n  margin-bottom: -4.5rem;\n}\n\n.margin-y-neg-10 {\n  margin-top: -5rem;\n  margin-bottom: -5rem;\n}\n\n.margin-top-neg-10 {\n  margin-top: -5rem;\n}\n\n.margin-bottom-neg-10 {\n  margin-bottom: -5rem;\n}\n\n.margin-y-neg-15 {\n  margin-top: -7.5rem;\n  margin-bottom: -7.5rem;\n}\n\n.margin-top-neg-15 {\n  margin-top: -7.5rem;\n}\n\n.margin-bottom-neg-15 {\n  margin-bottom: -7.5rem;\n}\n\n.margin-y-4 {\n  margin-top: 2rem;\n  margin-bottom: 2rem;\n}\n\n.margin-top-4 {\n  margin-top: 2rem;\n}\n\n.margin-bottom-4 {\n  margin-bottom: 2rem;\n}\n\n.margin-y-5 {\n  margin-top: 2.5rem;\n  margin-bottom: 2.5rem;\n}\n\n.margin-top-5 {\n  margin-top: 2.5rem;\n}\n\n.margin-bottom-5 {\n  margin-bottom: 2.5rem;\n}\n\n.margin-y-6 {\n  margin-top: 3rem;\n  margin-bottom: 3rem;\n}\n\n.margin-top-6 {\n  margin-top: 3rem;\n}\n\n.margin-bottom-6 {\n  margin-bottom: 3rem;\n}\n\n.margin-y-7 {\n  margin-top: 3.5rem;\n  margin-bottom: 3.5rem;\n}\n\n.margin-top-7 {\n  margin-top: 3.5rem;\n}\n\n.margin-bottom-7 {\n  margin-bottom: 3.5rem;\n}\n\n.margin-y-8 {\n  margin-top: 4rem;\n  margin-bottom: 4rem;\n}\n\n.margin-top-8 {\n  margin-top: 4rem;\n}\n\n.margin-bottom-8 {\n  margin-bottom: 4rem;\n}\n\n.margin-y-9 {\n  margin-top: 4.5rem;\n  margin-bottom: 4.5rem;\n}\n\n.margin-top-9 {\n  margin-top: 4.5rem;\n}\n\n.margin-bottom-9 {\n  margin-bottom: 4.5rem;\n}\n\n.margin-y-10 {\n  margin-top: 5rem;\n  margin-bottom: 5rem;\n}\n\n.margin-top-10 {\n  margin-top: 5rem;\n}\n\n.margin-bottom-10 {\n  margin-bottom: 5rem;\n}\n\n.margin-y-15 {\n  margin-top: 7.5rem;\n  margin-bottom: 7.5rem;\n}\n\n.margin-top-15 {\n  margin-top: 7.5rem;\n}\n\n.margin-bottom-15 {\n  margin-bottom: 7.5rem;\n}\n\n.margin-y-05em {\n  margin-top: 0.5em;\n  margin-bottom: 0.5em;\n}\n\n.margin-top-05em {\n  margin-top: 0.5em;\n}\n\n.margin-bottom-05em {\n  margin-bottom: 0.5em;\n}\n\n.margin-y-1em {\n  margin-top: 1em;\n  margin-bottom: 1em;\n}\n\n.margin-top-1em {\n  margin-top: 1em;\n}\n\n.margin-bottom-1em {\n  margin-bottom: 1em;\n}\n\n.margin-y-105em {\n  margin-top: 1.5em;\n  margin-bottom: 1.5em;\n}\n\n.margin-top-105em {\n  margin-top: 1.5em;\n}\n\n.margin-bottom-105em {\n  margin-bottom: 1.5em;\n}\n\n.margin-y-2em {\n  margin-top: 2em;\n  margin-bottom: 2em;\n}\n\n.margin-top-2em {\n  margin-top: 2em;\n}\n\n.margin-bottom-2em {\n  margin-bottom: 2em;\n}\n\n.margin-y-0 {\n  margin-top: 0;\n  margin-bottom: 0;\n}\n\n.margin-top-0 {\n  margin-top: 0;\n}\n\n.margin-bottom-0 {\n  margin-bottom: 0;\n}\n\n.margin-y-auto {\n  margin-top: auto;\n  margin-bottom: auto;\n}\n\n.margin-top-auto {\n  margin-top: auto;\n}\n\n.margin-bottom-auto {\n  margin-bottom: auto;\n}\n\n.margin-x-1px {\n  margin-left: 1px;\n  margin-right: 1px;\n}\n\n.margin-right-1px {\n  margin-right: 1px;\n}\n\n.margin-left-1px {\n  margin-left: 1px;\n}\n\n.margin-x-2px {\n  margin-left: 2px;\n  margin-right: 2px;\n}\n\n.margin-right-2px {\n  margin-right: 2px;\n}\n\n.margin-left-2px {\n  margin-left: 2px;\n}\n\n.margin-x-05 {\n  margin-left: 0.25rem;\n  margin-right: 0.25rem;\n}\n\n.margin-right-05 {\n  margin-right: 0.25rem;\n}\n\n.margin-left-05 {\n  margin-left: 0.25rem;\n}\n\n.margin-x-1 {\n  margin-left: 0.5rem;\n  margin-right: 0.5rem;\n}\n\n.margin-right-1 {\n  margin-right: 0.5rem;\n}\n\n.margin-left-1 {\n  margin-left: 0.5rem;\n}\n\n.margin-x-105 {\n  margin-left: 0.75rem;\n  margin-right: 0.75rem;\n}\n\n.margin-right-105 {\n  margin-right: 0.75rem;\n}\n\n.margin-left-105 {\n  margin-left: 0.75rem;\n}\n\n.margin-x-2 {\n  margin-left: 1rem;\n  margin-right: 1rem;\n}\n\n.margin-right-2 {\n  margin-right: 1rem;\n}\n\n.margin-left-2 {\n  margin-left: 1rem;\n}\n\n.margin-x-205 {\n  margin-left: 1.25rem;\n  margin-right: 1.25rem;\n}\n\n.margin-right-205 {\n  margin-right: 1.25rem;\n}\n\n.margin-left-205 {\n  margin-left: 1.25rem;\n}\n\n.margin-x-3 {\n  margin-left: 1.5rem;\n  margin-right: 1.5rem;\n}\n\n.margin-right-3 {\n  margin-right: 1.5rem;\n}\n\n.margin-left-3 {\n  margin-left: 1.5rem;\n}\n\n.margin-x-neg-1px {\n  margin-left: -1px;\n  margin-right: -1px;\n}\n\n.margin-right-neg-1px {\n  margin-right: -1px;\n}\n\n.margin-left-neg-1px {\n  margin-left: -1px;\n}\n\n.margin-x-neg-2px {\n  margin-left: -2px;\n  margin-right: -2px;\n}\n\n.margin-right-neg-2px {\n  margin-right: -2px;\n}\n\n.margin-left-neg-2px {\n  margin-left: -2px;\n}\n\n.margin-x-neg-05 {\n  margin-left: -0.25rem;\n  margin-right: -0.25rem;\n}\n\n.margin-right-neg-05 {\n  margin-right: -0.25rem;\n}\n\n.margin-left-neg-05 {\n  margin-left: -0.25rem;\n}\n\n.margin-x-neg-1 {\n  margin-left: -0.5rem;\n  margin-right: -0.5rem;\n}\n\n.margin-right-neg-1 {\n  margin-right: -0.5rem;\n}\n\n.margin-left-neg-1 {\n  margin-left: -0.5rem;\n}\n\n.margin-x-neg-105 {\n  margin-left: -0.75rem;\n  margin-right: -0.75rem;\n}\n\n.margin-right-neg-105 {\n  margin-right: -0.75rem;\n}\n\n.margin-left-neg-105 {\n  margin-left: -0.75rem;\n}\n\n.margin-x-neg-2 {\n  margin-left: -1rem;\n  margin-right: -1rem;\n}\n\n.margin-right-neg-2 {\n  margin-right: -1rem;\n}\n\n.margin-left-neg-2 {\n  margin-left: -1rem;\n}\n\n.margin-x-neg-205 {\n  margin-left: -1.25rem;\n  margin-right: -1.25rem;\n}\n\n.margin-right-neg-205 {\n  margin-right: -1.25rem;\n}\n\n.margin-left-neg-205 {\n  margin-left: -1.25rem;\n}\n\n.margin-x-neg-3 {\n  margin-left: -1.5rem;\n  margin-right: -1.5rem;\n}\n\n.margin-right-neg-3 {\n  margin-right: -1.5rem;\n}\n\n.margin-left-neg-3 {\n  margin-left: -1.5rem;\n}\n\n.margin-x-neg-4 {\n  margin-left: -2rem;\n  margin-right: -2rem;\n}\n\n.margin-right-neg-4 {\n  margin-right: -2rem;\n}\n\n.margin-left-neg-4 {\n  margin-left: -2rem;\n}\n\n.margin-x-neg-5 {\n  margin-left: -2.5rem;\n  margin-right: -2.5rem;\n}\n\n.margin-right-neg-5 {\n  margin-right: -2.5rem;\n}\n\n.margin-left-neg-5 {\n  margin-left: -2.5rem;\n}\n\n.margin-x-neg-6 {\n  margin-left: -3rem;\n  margin-right: -3rem;\n}\n\n.margin-right-neg-6 {\n  margin-right: -3rem;\n}\n\n.margin-left-neg-6 {\n  margin-left: -3rem;\n}\n\n.margin-x-neg-7 {\n  margin-left: -3.5rem;\n  margin-right: -3.5rem;\n}\n\n.margin-right-neg-7 {\n  margin-right: -3.5rem;\n}\n\n.margin-left-neg-7 {\n  margin-left: -3.5rem;\n}\n\n.margin-x-neg-8 {\n  margin-left: -4rem;\n  margin-right: -4rem;\n}\n\n.margin-right-neg-8 {\n  margin-right: -4rem;\n}\n\n.margin-left-neg-8 {\n  margin-left: -4rem;\n}\n\n.margin-x-neg-9 {\n  margin-left: -4.5rem;\n  margin-right: -4.5rem;\n}\n\n.margin-right-neg-9 {\n  margin-right: -4.5rem;\n}\n\n.margin-left-neg-9 {\n  margin-left: -4.5rem;\n}\n\n.margin-x-neg-10 {\n  margin-left: -5rem;\n  margin-right: -5rem;\n}\n\n.margin-right-neg-10 {\n  margin-right: -5rem;\n}\n\n.margin-left-neg-10 {\n  margin-left: -5rem;\n}\n\n.margin-x-neg-15 {\n  margin-left: -7.5rem;\n  margin-right: -7.5rem;\n}\n\n.margin-right-neg-15 {\n  margin-right: -7.5rem;\n}\n\n.margin-left-neg-15 {\n  margin-left: -7.5rem;\n}\n\n.margin-x-4 {\n  margin-left: 2rem;\n  margin-right: 2rem;\n}\n\n.margin-right-4 {\n  margin-right: 2rem;\n}\n\n.margin-left-4 {\n  margin-left: 2rem;\n}\n\n.margin-x-5 {\n  margin-left: 2.5rem;\n  margin-right: 2.5rem;\n}\n\n.margin-right-5 {\n  margin-right: 2.5rem;\n}\n\n.margin-left-5 {\n  margin-left: 2.5rem;\n}\n\n.margin-x-6 {\n  margin-left: 3rem;\n  margin-right: 3rem;\n}\n\n.margin-right-6 {\n  margin-right: 3rem;\n}\n\n.margin-left-6 {\n  margin-left: 3rem;\n}\n\n.margin-x-7 {\n  margin-left: 3.5rem;\n  margin-right: 3.5rem;\n}\n\n.margin-right-7 {\n  margin-right: 3.5rem;\n}\n\n.margin-left-7 {\n  margin-left: 3.5rem;\n}\n\n.margin-x-8 {\n  margin-left: 4rem;\n  margin-right: 4rem;\n}\n\n.margin-right-8 {\n  margin-right: 4rem;\n}\n\n.margin-left-8 {\n  margin-left: 4rem;\n}\n\n.margin-x-9 {\n  margin-left: 4.5rem;\n  margin-right: 4.5rem;\n}\n\n.margin-right-9 {\n  margin-right: 4.5rem;\n}\n\n.margin-left-9 {\n  margin-left: 4.5rem;\n}\n\n.margin-x-10 {\n  margin-left: 5rem;\n  margin-right: 5rem;\n}\n\n.margin-right-10 {\n  margin-right: 5rem;\n}\n\n.margin-left-10 {\n  margin-left: 5rem;\n}\n\n.margin-x-15 {\n  margin-left: 7.5rem;\n  margin-right: 7.5rem;\n}\n\n.margin-right-15 {\n  margin-right: 7.5rem;\n}\n\n.margin-left-15 {\n  margin-left: 7.5rem;\n}\n\n.margin-x-card {\n  margin-left: 10rem;\n  margin-right: 10rem;\n}\n\n.margin-right-card {\n  margin-right: 10rem;\n}\n\n.margin-left-card {\n  margin-left: 10rem;\n}\n\n.margin-x-card-lg {\n  margin-left: 15rem;\n  margin-right: 15rem;\n}\n\n.margin-right-card-lg {\n  margin-right: 15rem;\n}\n\n.margin-left-card-lg {\n  margin-left: 15rem;\n}\n\n.margin-x-mobile {\n  margin-left: 20rem;\n  margin-right: 20rem;\n}\n\n.margin-right-mobile {\n  margin-right: 20rem;\n}\n\n.margin-left-mobile {\n  margin-left: 20rem;\n}\n\n.margin-x-05em {\n  margin-left: 0.5em;\n  margin-right: 0.5em;\n}\n\n.margin-right-05em {\n  margin-right: 0.5em;\n}\n\n.margin-left-05em {\n  margin-left: 0.5em;\n}\n\n.margin-x-1em {\n  margin-left: 1em;\n  margin-right: 1em;\n}\n\n.margin-right-1em {\n  margin-right: 1em;\n}\n\n.margin-left-1em {\n  margin-left: 1em;\n}\n\n.margin-x-105em {\n  margin-left: 1.5em;\n  margin-right: 1.5em;\n}\n\n.margin-right-105em {\n  margin-right: 1.5em;\n}\n\n.margin-left-105em {\n  margin-left: 1.5em;\n}\n\n.margin-x-2em {\n  margin-left: 2em;\n  margin-right: 2em;\n}\n\n.margin-right-2em {\n  margin-right: 2em;\n}\n\n.margin-left-2em {\n  margin-left: 2em;\n}\n\n.margin-x-0 {\n  margin-left: 0;\n  margin-right: 0;\n}\n\n.margin-right-0 {\n  margin-right: 0;\n}\n\n.margin-left-0 {\n  margin-left: 0;\n}\n\n.margin-x-auto {\n  margin-left: auto;\n  margin-right: auto;\n}\n\n.margin-right-auto {\n  margin-right: auto;\n}\n\n.margin-left-auto {\n  margin-left: auto;\n}\n\n.maxh-05 {\n  max-height: 0.25rem;\n}\n\n.maxh-1 {\n  max-height: 0.5rem;\n}\n\n.maxh-105 {\n  max-height: 0.75rem;\n}\n\n.maxh-2 {\n  max-height: 1rem;\n}\n\n.maxh-205 {\n  max-height: 1.25rem;\n}\n\n.maxh-3 {\n  max-height: 1.5rem;\n}\n\n.maxh-4 {\n  max-height: 2rem;\n}\n\n.maxh-5 {\n  max-height: 2.5rem;\n}\n\n.maxh-6 {\n  max-height: 3rem;\n}\n\n.maxh-7 {\n  max-height: 3.5rem;\n}\n\n.maxh-8 {\n  max-height: 4rem;\n}\n\n.maxh-9 {\n  max-height: 4.5rem;\n}\n\n.maxh-10 {\n  max-height: 5rem;\n}\n\n.maxh-15 {\n  max-height: 7.5rem;\n}\n\n.maxh-card {\n  max-height: 10rem;\n}\n\n.maxh-card-lg {\n  max-height: 15rem;\n}\n\n.maxh-mobile {\n  max-height: 20rem;\n}\n\n.maxh-mobile-lg {\n  max-height: 30rem;\n}\n\n.maxh-tablet {\n  max-height: 40rem;\n}\n\n.maxh-tablet-lg {\n  max-height: 55rem;\n}\n\n.maxh-none {\n  max-height: none;\n}\n\n.maxh-viewport {\n  max-height: 100vh;\n}\n\n.maxw-05 {\n  max-width: 0.25rem;\n}\n\n.maxw-1 {\n  max-width: 0.5rem;\n}\n\n.maxw-105 {\n  max-width: 0.75rem;\n}\n\n.maxw-2 {\n  max-width: 1rem;\n}\n\n.maxw-205 {\n  max-width: 1.25rem;\n}\n\n.maxw-3 {\n  max-width: 1.5rem;\n}\n\n.maxw-4 {\n  max-width: 2rem;\n}\n\n.maxw-5 {\n  max-width: 2.5rem;\n}\n\n.maxw-6 {\n  max-width: 3rem;\n}\n\n.maxw-7 {\n  max-width: 3.5rem;\n}\n\n.maxw-8 {\n  max-width: 4rem;\n}\n\n.maxw-9 {\n  max-width: 4.5rem;\n}\n\n.maxw-10 {\n  max-width: 5rem;\n}\n\n.maxw-15 {\n  max-width: 7.5rem;\n}\n\n.maxw-card {\n  max-width: 10rem;\n}\n\n.maxw-card-lg {\n  max-width: 15rem;\n}\n\n.maxw-mobile {\n  max-width: 20rem;\n}\n\n.maxw-mobile-lg {\n  max-width: 30rem;\n}\n\n.maxw-tablet {\n  max-width: 40rem;\n}\n\n.maxw-tablet-lg {\n  max-width: 55rem;\n}\n\n.maxw-desktop {\n  max-width: 64rem;\n}\n\n.maxw-desktop-lg {\n  max-width: 75rem;\n}\n\n.maxw-widescreen {\n  max-width: 87.5rem;\n}\n\n.maxw-none {\n  max-width: none;\n}\n\n.maxw-full {\n  max-width: 100%;\n}\n\n.measure-1 {\n  max-width: 44ex;\n}\n\n.measure-2 {\n  max-width: 60ex;\n}\n\n.measure-3 {\n  max-width: 64ex;\n}\n\n.measure-4 {\n  max-width: 68ex;\n}\n\n.measure-5 {\n  max-width: 72ex;\n}\n\n.measure-6 {\n  max-width: 88ex;\n}\n\n.measure-none {\n  max-width: none;\n}\n\n.minh-1px {\n  min-height: 1px;\n}\n\n.minh-2px {\n  min-height: 2px;\n}\n\n.minh-05 {\n  min-height: 0.25rem;\n}\n\n.minh-1 {\n  min-height: 0.5rem;\n}\n\n.minh-105 {\n  min-height: 0.75rem;\n}\n\n.minh-2 {\n  min-height: 1rem;\n}\n\n.minh-205 {\n  min-height: 1.25rem;\n}\n\n.minh-3 {\n  min-height: 1.5rem;\n}\n\n.minh-4 {\n  min-height: 2rem;\n}\n\n.minh-5 {\n  min-height: 2.5rem;\n}\n\n.minh-6 {\n  min-height: 3rem;\n}\n\n.minh-7 {\n  min-height: 3.5rem;\n}\n\n.minh-8 {\n  min-height: 4rem;\n}\n\n.minh-9 {\n  min-height: 4.5rem;\n}\n\n.minh-10 {\n  min-height: 5rem;\n}\n\n.minh-15 {\n  min-height: 7.5rem;\n}\n\n.minh-card {\n  min-height: 10rem;\n}\n\n.minh-card-lg {\n  min-height: 15rem;\n}\n\n.minh-mobile {\n  min-height: 20rem;\n}\n\n.minh-mobile-lg {\n  min-height: 30rem;\n}\n\n.minh-tablet {\n  min-height: 40rem;\n}\n\n.minh-tablet-lg {\n  min-height: 55rem;\n}\n\n.minh-0 {\n  min-height: 0;\n}\n\n.minh-full {\n  min-height: 100%;\n}\n\n.minh-viewport {\n  min-height: 100vh;\n}\n\n.minw-05 {\n  min-width: 0.25rem;\n}\n\n.minw-1 {\n  min-width: 0.5rem;\n}\n\n.minw-105 {\n  min-width: 0.75rem;\n}\n\n.minw-2 {\n  min-width: 1rem;\n}\n\n.minw-205 {\n  min-width: 1.25rem;\n}\n\n.minw-3 {\n  min-width: 1.5rem;\n}\n\n.minw-4 {\n  min-width: 2rem;\n}\n\n.minw-5 {\n  min-width: 2.5rem;\n}\n\n.minw-6 {\n  min-width: 3rem;\n}\n\n.minw-7 {\n  min-width: 3.5rem;\n}\n\n.minw-8 {\n  min-width: 4rem;\n}\n\n.minw-9 {\n  min-width: 4.5rem;\n}\n\n.minw-10 {\n  min-width: 5rem;\n}\n\n.minw-15 {\n  min-width: 7.5rem;\n}\n\n.minw-0 {\n  min-width: 0;\n}\n\n.opacity-0 {\n  opacity: 0;\n}\n\n.opacity-10 {\n  opacity: 0.1;\n}\n\n.opacity-20 {\n  opacity: 0.2;\n}\n\n.opacity-30 {\n  opacity: 0.3;\n}\n\n.opacity-40 {\n  opacity: 0.4;\n}\n\n.opacity-50 {\n  opacity: 0.5;\n}\n\n.opacity-60 {\n  opacity: 0.6;\n}\n\n.opacity-70 {\n  opacity: 0.7;\n}\n\n.opacity-80 {\n  opacity: 0.8;\n}\n\n.opacity-90 {\n  opacity: 0.9;\n}\n\n.opacity-100 {\n  opacity: 1;\n}\n\n.order-first {\n  order: -1;\n}\n\n.order-last {\n  order: 999;\n}\n\n.order-initial {\n  order: initial;\n}\n\n.order-0 {\n  order: 0;\n}\n\n.order-1 {\n  order: 1;\n}\n\n.order-2 {\n  order: 2;\n}\n\n.order-3 {\n  order: 3;\n}\n\n.order-4 {\n  order: 4;\n}\n\n.order-5 {\n  order: 5;\n}\n\n.order-6 {\n  order: 6;\n}\n\n.order-7 {\n  order: 7;\n}\n\n.order-8 {\n  order: 8;\n}\n\n.order-9 {\n  order: 9;\n}\n\n.order-10 {\n  order: 10;\n}\n\n.order-11 {\n  order: 11;\n}\n\n.outline-1px {\n  outline: 1px solid;\n}\n\n.outline-2px {\n  outline: 2px solid;\n}\n\n.outline-0 {\n  outline: 0 solid;\n}\n\n.outline-05 {\n  outline: 0.25rem solid;\n}\n\n.outline-transparent {\n  outline-color: transparent;\n}\n\n.outline-black {\n  outline-color: black;\n}\n\n.outline-white {\n  outline-color: white;\n}\n\n.outline-red {\n  outline-color: #e52207;\n}\n\n.outline-orange {\n  outline-color: #e66f0e;\n}\n\n.outline-gold {\n  outline-color: #ffbe2e;\n}\n\n.outline-yellow {\n  outline-color: #fee685;\n}\n\n.outline-green {\n  outline-color: #538200;\n}\n\n.outline-mint {\n  outline-color: #04c585;\n}\n\n.outline-cyan {\n  outline-color: #009ec1;\n}\n\n.outline-blue {\n  outline-color: #0076d6;\n}\n\n.outline-indigo {\n  outline-color: #676cc8;\n}\n\n.outline-violet {\n  outline-color: #8168b3;\n}\n\n.outline-magenta {\n  outline-color: #d72d79;\n}\n\n.outline-gray-5 {\n  outline-color: #f0f0f0;\n}\n\n.outline-gray-10 {\n  outline-color: #e6e6e6;\n}\n\n.outline-gray-30 {\n  outline-color: #adadad;\n}\n\n.outline-gray-50 {\n  outline-color: #757575;\n}\n\n.outline-gray-70 {\n  outline-color: #454545;\n}\n\n.outline-gray-90 {\n  outline-color: #1b1b1b;\n}\n\n.outline-base-lightest {\n  outline-color: #f0f0f0;\n}\n\n.outline-base-lighter {\n  outline-color: #dfe1e2;\n}\n\n.outline-base-light {\n  outline-color: #a9aeb1;\n}\n\n.outline-base {\n  outline-color: #71767a;\n}\n\n.outline-base-dark {\n  outline-color: #565c65;\n}\n\n.outline-base-darker {\n  outline-color: #3d4551;\n}\n\n.outline-base-darkest {\n  outline-color: #1b1b1b;\n}\n\n.outline-ink {\n  outline-color: #1b1b1b;\n}\n\n.outline-primary-lighter {\n  outline-color: #d9e8f6;\n}\n\n.outline-primary-light {\n  outline-color: #73b3e7;\n}\n\n.outline-primary {\n  outline-color: #005ea2;\n}\n\n.outline-primary-vivid {\n  outline-color: #0050d8;\n}\n\n.outline-primary-dark {\n  outline-color: #1a4480;\n}\n\n.outline-primary-darker {\n  outline-color: #162e51;\n}\n\n.outline-secondary-lighter {\n  outline-color: #f3e1e4;\n}\n\n.outline-secondary-light {\n  outline-color: #f2938c;\n}\n\n.outline-secondary {\n  outline-color: #d83933;\n}\n\n.outline-secondary-vivid {\n  outline-color: #e41d3d;\n}\n\n.outline-secondary-dark {\n  outline-color: #b50909;\n}\n\n.outline-secondary-darker {\n  outline-color: #8b0a03;\n}\n\n.outline-accent-warm-darker {\n  outline-color: #775540;\n}\n\n.outline-accent-warm-dark {\n  outline-color: #c05600;\n}\n\n.outline-accent-warm {\n  outline-color: #fa9441;\n}\n\n.outline-accent-warm-light {\n  outline-color: #ffbc78;\n}\n\n.outline-accent-warm-lighter {\n  outline-color: #f2e4d4;\n}\n\n.outline-accent-cool-darker {\n  outline-color: #07648d;\n}\n\n.outline-accent-cool-dark {\n  outline-color: #28a0cb;\n}\n\n.outline-accent-cool {\n  outline-color: #00bde3;\n}\n\n.outline-accent-cool-light {\n  outline-color: #97d4ea;\n}\n\n.outline-accent-cool-lighter {\n  outline-color: #e1f3f8;\n}\n\n.outline-error-lighter {\n  outline-color: #f4e3db;\n}\n\n.outline-error-light {\n  outline-color: #f39268;\n}\n\n.outline-error {\n  outline-color: #d54309;\n}\n\n.outline-error-dark {\n  outline-color: #b50909;\n}\n\n.outline-error-darker {\n  outline-color: #6f3331;\n}\n\n.outline-warning-lighter {\n  outline-color: #faf3d1;\n}\n\n.outline-warning-light {\n  outline-color: #fee685;\n}\n\n.outline-warning {\n  outline-color: #ffbe2e;\n}\n\n.outline-warning-dark {\n  outline-color: #e5a000;\n}\n\n.outline-warning-darker {\n  outline-color: #936f38;\n}\n\n.outline-success-lighter {\n  outline-color: #ecf3ec;\n}\n\n.outline-success-light {\n  outline-color: #70e17b;\n}\n\n.outline-success {\n  outline-color: #00a91c;\n}\n\n.outline-success-dark {\n  outline-color: #008817;\n}\n\n.outline-success-darker {\n  outline-color: #216e1f;\n}\n\n.outline-info-lighter {\n  outline-color: #e7f6f8;\n}\n\n.outline-info-light {\n  outline-color: #99deea;\n}\n\n.outline-info {\n  outline-color: #00bde3;\n}\n\n.outline-info-dark {\n  outline-color: #009ec1;\n}\n\n.outline-info-darker {\n  outline-color: #2e6276;\n}\n\n.outline-disabled-lighter {\n  outline-color: #c9c9c9;\n}\n\n.outline-disabled-light {\n  outline-color: #919191;\n}\n\n.outline-disabled {\n  outline-color: #757575;\n}\n\n.outline-disabled-dark {\n  outline-color: #454545;\n}\n\n.outline-disabled-darker {\n  outline-color: #1b1b1b;\n}\n\n.outline-emergency {\n  outline-color: #9c3d10;\n}\n\n.outline-emergency-dark {\n  outline-color: #332d29;\n}\n\n.overflow-hidden {\n  overflow: hidden;\n}\n\n.overflow-y-hidden {\n  overflow-y: hidden;\n}\n\n.overflow-x-hidden {\n  overflow-x: hidden;\n}\n\n.overflow-scroll {\n  overflow: scroll;\n}\n\n.overflow-y-scroll {\n  overflow-y: scroll;\n}\n\n.overflow-x-scroll {\n  overflow-x: scroll;\n}\n\n.overflow-auto {\n  overflow: auto;\n}\n\n.overflow-y-auto {\n  overflow-y: auto;\n}\n\n.overflow-x-auto {\n  overflow-x: auto;\n}\n\n.overflow-visible {\n  overflow: visible;\n}\n\n.overflow-y-visible {\n  overflow-y: visible;\n}\n\n.overflow-x-visible {\n  overflow-x: visible;\n}\n\n.padding-1px {\n  padding: 1px;\n}\n\n.padding-y-1px {\n  padding-top: 1px;\n  padding-bottom: 1px;\n}\n\n.padding-x-1px {\n  padding-left: 1px;\n  padding-right: 1px;\n}\n\n.padding-top-1px {\n  padding-top: 1px;\n}\n\n.padding-right-1px {\n  padding-right: 1px;\n}\n\n.padding-bottom-1px {\n  padding-bottom: 1px;\n}\n\n.padding-left-1px {\n  padding-left: 1px;\n}\n\n.padding-2px {\n  padding: 2px;\n}\n\n.padding-y-2px {\n  padding-top: 2px;\n  padding-bottom: 2px;\n}\n\n.padding-x-2px {\n  padding-left: 2px;\n  padding-right: 2px;\n}\n\n.padding-top-2px {\n  padding-top: 2px;\n}\n\n.padding-right-2px {\n  padding-right: 2px;\n}\n\n.padding-bottom-2px {\n  padding-bottom: 2px;\n}\n\n.padding-left-2px {\n  padding-left: 2px;\n}\n\n.padding-05 {\n  padding: 0.25rem;\n}\n\n.padding-y-05 {\n  padding-top: 0.25rem;\n  padding-bottom: 0.25rem;\n}\n\n.padding-x-05 {\n  padding-left: 0.25rem;\n  padding-right: 0.25rem;\n}\n\n.padding-top-05 {\n  padding-top: 0.25rem;\n}\n\n.padding-right-05 {\n  padding-right: 0.25rem;\n}\n\n.padding-bottom-05 {\n  padding-bottom: 0.25rem;\n}\n\n.padding-left-05 {\n  padding-left: 0.25rem;\n}\n\n.padding-1 {\n  padding: 0.5rem;\n}\n\n.padding-y-1 {\n  padding-top: 0.5rem;\n  padding-bottom: 0.5rem;\n}\n\n.padding-x-1 {\n  padding-left: 0.5rem;\n  padding-right: 0.5rem;\n}\n\n.padding-top-1 {\n  padding-top: 0.5rem;\n}\n\n.padding-right-1 {\n  padding-right: 0.5rem;\n}\n\n.padding-bottom-1 {\n  padding-bottom: 0.5rem;\n}\n\n.padding-left-1 {\n  padding-left: 0.5rem;\n}\n\n.padding-105 {\n  padding: 0.75rem;\n}\n\n.padding-y-105 {\n  padding-top: 0.75rem;\n  padding-bottom: 0.75rem;\n}\n\n.padding-x-105 {\n  padding-left: 0.75rem;\n  padding-right: 0.75rem;\n}\n\n.padding-top-105 {\n  padding-top: 0.75rem;\n}\n\n.padding-right-105 {\n  padding-right: 0.75rem;\n}\n\n.padding-bottom-105 {\n  padding-bottom: 0.75rem;\n}\n\n.padding-left-105 {\n  padding-left: 0.75rem;\n}\n\n.padding-2 {\n  padding: 1rem;\n}\n\n.padding-y-2 {\n  padding-top: 1rem;\n  padding-bottom: 1rem;\n}\n\n.padding-x-2 {\n  padding-left: 1rem;\n  padding-right: 1rem;\n}\n\n.padding-top-2 {\n  padding-top: 1rem;\n}\n\n.padding-right-2 {\n  padding-right: 1rem;\n}\n\n.padding-bottom-2 {\n  padding-bottom: 1rem;\n}\n\n.padding-left-2 {\n  padding-left: 1rem;\n}\n\n.padding-205 {\n  padding: 1.25rem;\n}\n\n.padding-y-205 {\n  padding-top: 1.25rem;\n  padding-bottom: 1.25rem;\n}\n\n.padding-x-205 {\n  padding-left: 1.25rem;\n  padding-right: 1.25rem;\n}\n\n.padding-top-205 {\n  padding-top: 1.25rem;\n}\n\n.padding-right-205 {\n  padding-right: 1.25rem;\n}\n\n.padding-bottom-205 {\n  padding-bottom: 1.25rem;\n}\n\n.padding-left-205 {\n  padding-left: 1.25rem;\n}\n\n.padding-3 {\n  padding: 1.5rem;\n}\n\n.padding-y-3 {\n  padding-top: 1.5rem;\n  padding-bottom: 1.5rem;\n}\n\n.padding-x-3 {\n  padding-left: 1.5rem;\n  padding-right: 1.5rem;\n}\n\n.padding-top-3 {\n  padding-top: 1.5rem;\n}\n\n.padding-right-3 {\n  padding-right: 1.5rem;\n}\n\n.padding-bottom-3 {\n  padding-bottom: 1.5rem;\n}\n\n.padding-left-3 {\n  padding-left: 1.5rem;\n}\n\n.padding-4 {\n  padding: 2rem;\n}\n\n.padding-y-4 {\n  padding-top: 2rem;\n  padding-bottom: 2rem;\n}\n\n.padding-x-4 {\n  padding-left: 2rem;\n  padding-right: 2rem;\n}\n\n.padding-top-4 {\n  padding-top: 2rem;\n}\n\n.padding-right-4 {\n  padding-right: 2rem;\n}\n\n.padding-bottom-4 {\n  padding-bottom: 2rem;\n}\n\n.padding-left-4 {\n  padding-left: 2rem;\n}\n\n.padding-5 {\n  padding: 2.5rem;\n}\n\n.padding-y-5 {\n  padding-top: 2.5rem;\n  padding-bottom: 2.5rem;\n}\n\n.padding-x-5 {\n  padding-left: 2.5rem;\n  padding-right: 2.5rem;\n}\n\n.padding-top-5 {\n  padding-top: 2.5rem;\n}\n\n.padding-right-5 {\n  padding-right: 2.5rem;\n}\n\n.padding-bottom-5 {\n  padding-bottom: 2.5rem;\n}\n\n.padding-left-5 {\n  padding-left: 2.5rem;\n}\n\n.padding-6 {\n  padding: 3rem;\n}\n\n.padding-y-6 {\n  padding-top: 3rem;\n  padding-bottom: 3rem;\n}\n\n.padding-x-6 {\n  padding-left: 3rem;\n  padding-right: 3rem;\n}\n\n.padding-top-6 {\n  padding-top: 3rem;\n}\n\n.padding-right-6 {\n  padding-right: 3rem;\n}\n\n.padding-bottom-6 {\n  padding-bottom: 3rem;\n}\n\n.padding-left-6 {\n  padding-left: 3rem;\n}\n\n.padding-7 {\n  padding: 3.5rem;\n}\n\n.padding-y-7 {\n  padding-top: 3.5rem;\n  padding-bottom: 3.5rem;\n}\n\n.padding-x-7 {\n  padding-left: 3.5rem;\n  padding-right: 3.5rem;\n}\n\n.padding-top-7 {\n  padding-top: 3.5rem;\n}\n\n.padding-right-7 {\n  padding-right: 3.5rem;\n}\n\n.padding-bottom-7 {\n  padding-bottom: 3.5rem;\n}\n\n.padding-left-7 {\n  padding-left: 3.5rem;\n}\n\n.padding-8 {\n  padding: 4rem;\n}\n\n.padding-y-8 {\n  padding-top: 4rem;\n  padding-bottom: 4rem;\n}\n\n.padding-x-8 {\n  padding-left: 4rem;\n  padding-right: 4rem;\n}\n\n.padding-top-8 {\n  padding-top: 4rem;\n}\n\n.padding-right-8 {\n  padding-right: 4rem;\n}\n\n.padding-bottom-8 {\n  padding-bottom: 4rem;\n}\n\n.padding-left-8 {\n  padding-left: 4rem;\n}\n\n.padding-9 {\n  padding: 4.5rem;\n}\n\n.padding-y-9 {\n  padding-top: 4.5rem;\n  padding-bottom: 4.5rem;\n}\n\n.padding-x-9 {\n  padding-left: 4.5rem;\n  padding-right: 4.5rem;\n}\n\n.padding-top-9 {\n  padding-top: 4.5rem;\n}\n\n.padding-right-9 {\n  padding-right: 4.5rem;\n}\n\n.padding-bottom-9 {\n  padding-bottom: 4.5rem;\n}\n\n.padding-left-9 {\n  padding-left: 4.5rem;\n}\n\n.padding-10 {\n  padding: 5rem;\n}\n\n.padding-y-10 {\n  padding-top: 5rem;\n  padding-bottom: 5rem;\n}\n\n.padding-x-10 {\n  padding-left: 5rem;\n  padding-right: 5rem;\n}\n\n.padding-top-10 {\n  padding-top: 5rem;\n}\n\n.padding-right-10 {\n  padding-right: 5rem;\n}\n\n.padding-bottom-10 {\n  padding-bottom: 5rem;\n}\n\n.padding-left-10 {\n  padding-left: 5rem;\n}\n\n.padding-15 {\n  padding: 7.5rem;\n}\n\n.padding-y-15 {\n  padding-top: 7.5rem;\n  padding-bottom: 7.5rem;\n}\n\n.padding-x-15 {\n  padding-left: 7.5rem;\n  padding-right: 7.5rem;\n}\n\n.padding-top-15 {\n  padding-top: 7.5rem;\n}\n\n.padding-right-15 {\n  padding-right: 7.5rem;\n}\n\n.padding-bottom-15 {\n  padding-bottom: 7.5rem;\n}\n\n.padding-left-15 {\n  padding-left: 7.5rem;\n}\n\n.padding-0 {\n  padding: 0;\n}\n\n.padding-y-0 {\n  padding-top: 0;\n  padding-bottom: 0;\n}\n\n.padding-x-0 {\n  padding-left: 0;\n  padding-right: 0;\n}\n\n.padding-top-0 {\n  padding-top: 0;\n}\n\n.padding-right-0 {\n  padding-right: 0;\n}\n\n.padding-bottom-0 {\n  padding-bottom: 0;\n}\n\n.padding-left-0 {\n  padding-left: 0;\n}\n\n.pin-all {\n  bottom: 0;\n  left: 0;\n  right: 0;\n  top: 0;\n  position: absolute;\n}\n\n.pin-x {\n  left: 0;\n  right: 0;\n  position: absolute;\n}\n\n.pin-y {\n  bottom: 0;\n  top: 0;\n  position: absolute;\n}\n\n.pin-bottom {\n  bottom: 0;\n  position: absolute;\n}\n\n.pin-left {\n  left: 0;\n  position: absolute;\n}\n\n.pin-right {\n  right: 0;\n  position: absolute;\n}\n\n.pin-top {\n  top: 0;\n  position: absolute;\n}\n\n.pin-none {\n  bottom: auto;\n  left: auto;\n  right: auto;\n  top: auto;\n  position: static;\n}\n\n.position-absolute {\n  position: absolute;\n}\n\n.position-fixed {\n  position: fixed;\n}\n\n.position-relative {\n  position: relative;\n}\n\n.position-static {\n  position: static;\n}\n\n.position-sticky {\n  position: sticky;\n}\n\n.right-1px {\n  right: 1px;\n}\n\n.right-2px {\n  right: 2px;\n}\n\n.right-05 {\n  right: 0.25rem;\n}\n\n.right-1 {\n  right: 0.5rem;\n}\n\n.right-105 {\n  right: 0.75rem;\n}\n\n.right-2 {\n  right: 1rem;\n}\n\n.right-205 {\n  right: 1.25rem;\n}\n\n.right-3 {\n  right: 1.5rem;\n}\n\n.right-neg-1px {\n  right: -1px;\n}\n\n.right-neg-2px {\n  right: -2px;\n}\n\n.right-neg-05 {\n  right: -0.25rem;\n}\n\n.right-neg-1 {\n  right: -0.5rem;\n}\n\n.right-neg-105 {\n  right: -0.75rem;\n}\n\n.right-neg-2 {\n  right: -1rem;\n}\n\n.right-neg-205 {\n  right: -1.25rem;\n}\n\n.right-neg-3 {\n  right: -1.5rem;\n}\n\n.right-0 {\n  right: 0;\n}\n\n.right-auto {\n  right: auto;\n}\n\n.right-full {\n  right: 100%;\n}\n\n.square-1px {\n  height: 1px;\n  width: 1px;\n}\n\n.square-2px {\n  height: 2px;\n  width: 2px;\n}\n\n.square-05 {\n  height: 0.25rem;\n  width: 0.25rem;\n}\n\n.square-1 {\n  height: 0.5rem;\n  width: 0.5rem;\n}\n\n.square-105 {\n  height: 0.75rem;\n  width: 0.75rem;\n}\n\n.square-2 {\n  height: 1rem;\n  width: 1rem;\n}\n\n.square-205 {\n  height: 1.25rem;\n  width: 1.25rem;\n}\n\n.square-3 {\n  height: 1.5rem;\n  width: 1.5rem;\n}\n\n.square-4 {\n  height: 2rem;\n  width: 2rem;\n}\n\n.square-5 {\n  height: 2.5rem;\n  width: 2.5rem;\n}\n\n.square-6 {\n  height: 3rem;\n  width: 3rem;\n}\n\n.square-7 {\n  height: 3.5rem;\n  width: 3.5rem;\n}\n\n.square-8 {\n  height: 4rem;\n  width: 4rem;\n}\n\n.square-9 {\n  height: 4.5rem;\n  width: 4.5rem;\n}\n\n.square-10 {\n  height: 5rem;\n  width: 5rem;\n}\n\n.square-15 {\n  height: 7.5rem;\n  width: 7.5rem;\n}\n\n.square-card {\n  height: 10rem;\n  width: 10rem;\n}\n\n.square-card-lg {\n  height: 15rem;\n  width: 15rem;\n}\n\n.square-mobile {\n  height: 20rem;\n  width: 20rem;\n}\n\n.text-center {\n  text-align: center;\n}\n\n.text-left {\n  text-align: left;\n}\n\n.text-justify {\n  text-align: justify;\n}\n\n.text-right {\n  text-align: right;\n}\n\n.text-strike {\n  text-decoration: line-through;\n}\n\n.hover\\:text-strike:hover {\n  text-decoration: line-through;\n}\n\n.text-underline {\n  text-decoration: underline;\n}\n\n.hover\\:text-underline:hover {\n  text-decoration: underline;\n}\n\n.text-no-underline {\n  text-decoration: none;\n}\n\n.hover\\:text-no-underline:hover {\n  text-decoration: none;\n}\n\n.text-no-strike {\n  text-decoration: none;\n}\n\n.hover\\:text-no-strike:hover {\n  text-decoration: none;\n}\n\n.underline-red {\n  text-decoration-color: #e52207;\n}\n\n.hover\\:underline-red:hover {\n  text-decoration-color: #e52207;\n}\n\n.underline-orange {\n  text-decoration-color: #e66f0e;\n}\n\n.hover\\:underline-orange:hover {\n  text-decoration-color: #e66f0e;\n}\n\n.underline-gold {\n  text-decoration-color: #ffbe2e;\n}\n\n.hover\\:underline-gold:hover {\n  text-decoration-color: #ffbe2e;\n}\n\n.underline-yellow {\n  text-decoration-color: #fee685;\n}\n\n.hover\\:underline-yellow:hover {\n  text-decoration-color: #fee685;\n}\n\n.underline-green {\n  text-decoration-color: #538200;\n}\n\n.hover\\:underline-green:hover {\n  text-decoration-color: #538200;\n}\n\n.underline-mint {\n  text-decoration-color: #04c585;\n}\n\n.hover\\:underline-mint:hover {\n  text-decoration-color: #04c585;\n}\n\n.underline-cyan {\n  text-decoration-color: #009ec1;\n}\n\n.hover\\:underline-cyan:hover {\n  text-decoration-color: #009ec1;\n}\n\n.underline-blue {\n  text-decoration-color: #0076d6;\n}\n\n.hover\\:underline-blue:hover {\n  text-decoration-color: #0076d6;\n}\n\n.underline-indigo {\n  text-decoration-color: #676cc8;\n}\n\n.hover\\:underline-indigo:hover {\n  text-decoration-color: #676cc8;\n}\n\n.underline-violet {\n  text-decoration-color: #8168b3;\n}\n\n.hover\\:underline-violet:hover {\n  text-decoration-color: #8168b3;\n}\n\n.underline-magenta {\n  text-decoration-color: #d72d79;\n}\n\n.hover\\:underline-magenta:hover {\n  text-decoration-color: #d72d79;\n}\n\n.underline-gray-5 {\n  text-decoration-color: #f0f0f0;\n}\n\n.hover\\:underline-gray-5:hover {\n  text-decoration-color: #f0f0f0;\n}\n\n.underline-gray-10 {\n  text-decoration-color: #e6e6e6;\n}\n\n.hover\\:underline-gray-10:hover {\n  text-decoration-color: #e6e6e6;\n}\n\n.underline-gray-30 {\n  text-decoration-color: #adadad;\n}\n\n.hover\\:underline-gray-30:hover {\n  text-decoration-color: #adadad;\n}\n\n.underline-gray-50 {\n  text-decoration-color: #757575;\n}\n\n.hover\\:underline-gray-50:hover {\n  text-decoration-color: #757575;\n}\n\n.underline-gray-70 {\n  text-decoration-color: #454545;\n}\n\n.hover\\:underline-gray-70:hover {\n  text-decoration-color: #454545;\n}\n\n.underline-gray-90 {\n  text-decoration-color: #1b1b1b;\n}\n\n.hover\\:underline-gray-90:hover {\n  text-decoration-color: #1b1b1b;\n}\n\n.underline-base-lightest {\n  text-decoration-color: #f0f0f0;\n}\n\n.hover\\:underline-base-lightest:hover {\n  text-decoration-color: #f0f0f0;\n}\n\n.underline-base-lighter {\n  text-decoration-color: #dfe1e2;\n}\n\n.hover\\:underline-base-lighter:hover {\n  text-decoration-color: #dfe1e2;\n}\n\n.underline-base-light {\n  text-decoration-color: #a9aeb1;\n}\n\n.hover\\:underline-base-light:hover {\n  text-decoration-color: #a9aeb1;\n}\n\n.underline-base {\n  text-decoration-color: #71767a;\n}\n\n.hover\\:underline-base:hover {\n  text-decoration-color: #71767a;\n}\n\n.underline-base-dark {\n  text-decoration-color: #565c65;\n}\n\n.hover\\:underline-base-dark:hover {\n  text-decoration-color: #565c65;\n}\n\n.underline-base-darker {\n  text-decoration-color: #3d4551;\n}\n\n.hover\\:underline-base-darker:hover {\n  text-decoration-color: #3d4551;\n}\n\n.underline-base-darkest {\n  text-decoration-color: #1b1b1b;\n}\n\n.hover\\:underline-base-darkest:hover {\n  text-decoration-color: #1b1b1b;\n}\n\n.underline-ink {\n  text-decoration-color: #1b1b1b;\n}\n\n.hover\\:underline-ink:hover {\n  text-decoration-color: #1b1b1b;\n}\n\n.underline-primary-lighter {\n  text-decoration-color: #d9e8f6;\n}\n\n.hover\\:underline-primary-lighter:hover {\n  text-decoration-color: #d9e8f6;\n}\n\n.underline-primary-light {\n  text-decoration-color: #73b3e7;\n}\n\n.hover\\:underline-primary-light:hover {\n  text-decoration-color: #73b3e7;\n}\n\n.underline-primary {\n  text-decoration-color: #005ea2;\n}\n\n.hover\\:underline-primary:hover {\n  text-decoration-color: #005ea2;\n}\n\n.underline-primary-vivid {\n  text-decoration-color: #0050d8;\n}\n\n.hover\\:underline-primary-vivid:hover {\n  text-decoration-color: #0050d8;\n}\n\n.underline-primary-dark {\n  text-decoration-color: #1a4480;\n}\n\n.hover\\:underline-primary-dark:hover {\n  text-decoration-color: #1a4480;\n}\n\n.underline-primary-darker {\n  text-decoration-color: #162e51;\n}\n\n.hover\\:underline-primary-darker:hover {\n  text-decoration-color: #162e51;\n}\n\n.underline-secondary-lighter {\n  text-decoration-color: #f3e1e4;\n}\n\n.hover\\:underline-secondary-lighter:hover {\n  text-decoration-color: #f3e1e4;\n}\n\n.underline-secondary-light {\n  text-decoration-color: #f2938c;\n}\n\n.hover\\:underline-secondary-light:hover {\n  text-decoration-color: #f2938c;\n}\n\n.underline-secondary {\n  text-decoration-color: #d83933;\n}\n\n.hover\\:underline-secondary:hover {\n  text-decoration-color: #d83933;\n}\n\n.underline-secondary-vivid {\n  text-decoration-color: #e41d3d;\n}\n\n.hover\\:underline-secondary-vivid:hover {\n  text-decoration-color: #e41d3d;\n}\n\n.underline-secondary-dark {\n  text-decoration-color: #b50909;\n}\n\n.hover\\:underline-secondary-dark:hover {\n  text-decoration-color: #b50909;\n}\n\n.underline-secondary-darker {\n  text-decoration-color: #8b0a03;\n}\n\n.hover\\:underline-secondary-darker:hover {\n  text-decoration-color: #8b0a03;\n}\n\n.underline-accent-warm-darker {\n  text-decoration-color: #775540;\n}\n\n.hover\\:underline-accent-warm-darker:hover {\n  text-decoration-color: #775540;\n}\n\n.underline-accent-warm-dark {\n  text-decoration-color: #c05600;\n}\n\n.hover\\:underline-accent-warm-dark:hover {\n  text-decoration-color: #c05600;\n}\n\n.underline-accent-warm {\n  text-decoration-color: #fa9441;\n}\n\n.hover\\:underline-accent-warm:hover {\n  text-decoration-color: #fa9441;\n}\n\n.underline-accent-warm-light {\n  text-decoration-color: #ffbc78;\n}\n\n.hover\\:underline-accent-warm-light:hover {\n  text-decoration-color: #ffbc78;\n}\n\n.underline-accent-warm-lighter {\n  text-decoration-color: #f2e4d4;\n}\n\n.hover\\:underline-accent-warm-lighter:hover {\n  text-decoration-color: #f2e4d4;\n}\n\n.underline-accent-cool-darker {\n  text-decoration-color: #07648d;\n}\n\n.hover\\:underline-accent-cool-darker:hover {\n  text-decoration-color: #07648d;\n}\n\n.underline-accent-cool-dark {\n  text-decoration-color: #28a0cb;\n}\n\n.hover\\:underline-accent-cool-dark:hover {\n  text-decoration-color: #28a0cb;\n}\n\n.underline-accent-cool {\n  text-decoration-color: #00bde3;\n}\n\n.hover\\:underline-accent-cool:hover {\n  text-decoration-color: #00bde3;\n}\n\n.underline-accent-cool-light {\n  text-decoration-color: #97d4ea;\n}\n\n.hover\\:underline-accent-cool-light:hover {\n  text-decoration-color: #97d4ea;\n}\n\n.underline-accent-cool-lighter {\n  text-decoration-color: #e1f3f8;\n}\n\n.hover\\:underline-accent-cool-lighter:hover {\n  text-decoration-color: #e1f3f8;\n}\n\n.underline-error-lighter {\n  text-decoration-color: #f4e3db;\n}\n\n.hover\\:underline-error-lighter:hover {\n  text-decoration-color: #f4e3db;\n}\n\n.underline-error-light {\n  text-decoration-color: #f39268;\n}\n\n.hover\\:underline-error-light:hover {\n  text-decoration-color: #f39268;\n}\n\n.underline-error {\n  text-decoration-color: #d54309;\n}\n\n.hover\\:underline-error:hover {\n  text-decoration-color: #d54309;\n}\n\n.underline-error-dark {\n  text-decoration-color: #b50909;\n}\n\n.hover\\:underline-error-dark:hover {\n  text-decoration-color: #b50909;\n}\n\n.underline-error-darker {\n  text-decoration-color: #6f3331;\n}\n\n.hover\\:underline-error-darker:hover {\n  text-decoration-color: #6f3331;\n}\n\n.underline-warning-lighter {\n  text-decoration-color: #faf3d1;\n}\n\n.hover\\:underline-warning-lighter:hover {\n  text-decoration-color: #faf3d1;\n}\n\n.underline-warning-light {\n  text-decoration-color: #fee685;\n}\n\n.hover\\:underline-warning-light:hover {\n  text-decoration-color: #fee685;\n}\n\n.underline-warning {\n  text-decoration-color: #ffbe2e;\n}\n\n.hover\\:underline-warning:hover {\n  text-decoration-color: #ffbe2e;\n}\n\n.underline-warning-dark {\n  text-decoration-color: #e5a000;\n}\n\n.hover\\:underline-warning-dark:hover {\n  text-decoration-color: #e5a000;\n}\n\n.underline-warning-darker {\n  text-decoration-color: #936f38;\n}\n\n.hover\\:underline-warning-darker:hover {\n  text-decoration-color: #936f38;\n}\n\n.underline-success-lighter {\n  text-decoration-color: #ecf3ec;\n}\n\n.hover\\:underline-success-lighter:hover {\n  text-decoration-color: #ecf3ec;\n}\n\n.underline-success-light {\n  text-decoration-color: #70e17b;\n}\n\n.hover\\:underline-success-light:hover {\n  text-decoration-color: #70e17b;\n}\n\n.underline-success {\n  text-decoration-color: #00a91c;\n}\n\n.hover\\:underline-success:hover {\n  text-decoration-color: #00a91c;\n}\n\n.underline-success-dark {\n  text-decoration-color: #008817;\n}\n\n.hover\\:underline-success-dark:hover {\n  text-decoration-color: #008817;\n}\n\n.underline-success-darker {\n  text-decoration-color: #216e1f;\n}\n\n.hover\\:underline-success-darker:hover {\n  text-decoration-color: #216e1f;\n}\n\n.underline-info-lighter {\n  text-decoration-color: #e7f6f8;\n}\n\n.hover\\:underline-info-lighter:hover {\n  text-decoration-color: #e7f6f8;\n}\n\n.underline-info-light {\n  text-decoration-color: #99deea;\n}\n\n.hover\\:underline-info-light:hover {\n  text-decoration-color: #99deea;\n}\n\n.underline-info {\n  text-decoration-color: #00bde3;\n}\n\n.hover\\:underline-info:hover {\n  text-decoration-color: #00bde3;\n}\n\n.underline-info-dark {\n  text-decoration-color: #009ec1;\n}\n\n.hover\\:underline-info-dark:hover {\n  text-decoration-color: #009ec1;\n}\n\n.underline-info-darker {\n  text-decoration-color: #2e6276;\n}\n\n.hover\\:underline-info-darker:hover {\n  text-decoration-color: #2e6276;\n}\n\n.underline-disabled-lighter {\n  text-decoration-color: #c9c9c9;\n}\n\n.hover\\:underline-disabled-lighter:hover {\n  text-decoration-color: #c9c9c9;\n}\n\n.underline-disabled-light {\n  text-decoration-color: #919191;\n}\n\n.hover\\:underline-disabled-light:hover {\n  text-decoration-color: #919191;\n}\n\n.underline-disabled {\n  text-decoration-color: #757575;\n}\n\n.hover\\:underline-disabled:hover {\n  text-decoration-color: #757575;\n}\n\n.underline-disabled-dark {\n  text-decoration-color: #454545;\n}\n\n.hover\\:underline-disabled-dark:hover {\n  text-decoration-color: #454545;\n}\n\n.underline-disabled-darker {\n  text-decoration-color: #1b1b1b;\n}\n\n.hover\\:underline-disabled-darker:hover {\n  text-decoration-color: #1b1b1b;\n}\n\n.underline-emergency {\n  text-decoration-color: #9c3d10;\n}\n\n.hover\\:underline-emergency:hover {\n  text-decoration-color: #9c3d10;\n}\n\n.underline-emergency-dark {\n  text-decoration-color: #332d29;\n}\n\n.hover\\:underline-emergency-dark:hover {\n  text-decoration-color: #332d29;\n}\n\n.text-indent-0 {\n  text-indent: 0;\n}\n\n.text-indent-05 {\n  text-indent: 0.25rem;\n}\n\n.text-indent-1 {\n  text-indent: 0.5rem;\n}\n\n.text-indent-105 {\n  text-indent: 0.75rem;\n}\n\n.text-indent-2 {\n  text-indent: 1rem;\n}\n\n.text-indent-205 {\n  text-indent: 1.25rem;\n}\n\n.text-indent-3 {\n  text-indent: 1.5rem;\n}\n\n.text-indent-neg-05 {\n  text-indent: -0.25rem;\n}\n\n.text-indent-neg-1 {\n  text-indent: -0.5rem;\n}\n\n.text-indent-neg-105 {\n  text-indent: -0.75rem;\n}\n\n.text-indent-neg-2 {\n  text-indent: -1rem;\n}\n\n.text-indent-neg-205 {\n  text-indent: -1.25rem;\n}\n\n.text-indent-neg-3 {\n  text-indent: -1.5rem;\n}\n\n.text-indent-4 {\n  text-indent: 2rem;\n}\n\n.text-indent-5 {\n  text-indent: 2.5rem;\n}\n\n.text-indent-6 {\n  text-indent: 3rem;\n}\n\n.text-indent-7 {\n  text-indent: 3.5rem;\n}\n\n.text-indent-8 {\n  text-indent: 4rem;\n}\n\n.text-indent-9 {\n  text-indent: 4.5rem;\n}\n\n.text-indent-10 {\n  text-indent: 5rem;\n}\n\n.text-indent-15 {\n  text-indent: 7.5rem;\n}\n\n.text-indent-neg-4 {\n  text-indent: -2rem;\n}\n\n.text-indent-neg-5 {\n  text-indent: -2.5rem;\n}\n\n.text-indent-neg-6 {\n  text-indent: -3rem;\n}\n\n.text-indent-neg-7 {\n  text-indent: -3.5rem;\n}\n\n.text-indent-neg-8 {\n  text-indent: -4rem;\n}\n\n.text-indent-neg-9 {\n  text-indent: -4.5rem;\n}\n\n.text-indent-neg-10 {\n  text-indent: -5rem;\n}\n\n.text-indent-neg-15 {\n  text-indent: -7.5rem;\n}\n\n.text-uppercase {\n  text-transform: uppercase;\n}\n\n.text-no-uppercase {\n  text-transform: none;\n}\n\n.text-lowercase {\n  text-transform: lowercase;\n}\n\n.text-no-lowercase {\n  text-transform: none;\n}\n\n.top-1px {\n  top: 1px;\n}\n\n.top-2px {\n  top: 2px;\n}\n\n.top-05 {\n  top: 0.25rem;\n}\n\n.top-1 {\n  top: 0.5rem;\n}\n\n.top-105 {\n  top: 0.75rem;\n}\n\n.top-2 {\n  top: 1rem;\n}\n\n.top-205 {\n  top: 1.25rem;\n}\n\n.top-3 {\n  top: 1.5rem;\n}\n\n.top-neg-1px {\n  top: -1px;\n}\n\n.top-neg-2px {\n  top: -2px;\n}\n\n.top-neg-05 {\n  top: -0.25rem;\n}\n\n.top-neg-1 {\n  top: -0.5rem;\n}\n\n.top-neg-105 {\n  top: -0.75rem;\n}\n\n.top-neg-2 {\n  top: -1rem;\n}\n\n.top-neg-205 {\n  top: -1.25rem;\n}\n\n.top-neg-3 {\n  top: -1.5rem;\n}\n\n.top-0 {\n  top: 0;\n}\n\n.top-auto {\n  top: auto;\n}\n\n.top-full {\n  top: 100%;\n}\n\n.text-baseline {\n  vertical-align: baseline;\n}\n\n.text-bottom {\n  vertical-align: bottom;\n}\n\n.text-middle {\n  vertical-align: middle;\n}\n\n.text-sub {\n  vertical-align: sub;\n}\n\n.text-super {\n  vertical-align: super;\n}\n\n.text-tbottom {\n  vertical-align: text-bottom;\n}\n\n.text-ttop {\n  vertical-align: text-top;\n}\n\n.text-top {\n  vertical-align: top;\n}\n\n.text-pre {\n  white-space: pre;\n}\n\n.text-pre-line {\n  white-space: pre-line;\n}\n\n.text-pre-wrap {\n  white-space: pre-wrap;\n}\n\n.text-wrap {\n  white-space: normal;\n}\n\n.text-no-wrap {\n  white-space: nowrap;\n}\n\n.width-1px {\n  width: 1px;\n}\n\n.width-2px {\n  width: 2px;\n}\n\n.width-05 {\n  width: 0.25rem;\n}\n\n.width-1 {\n  width: 0.5rem;\n}\n\n.width-105 {\n  width: 0.75rem;\n}\n\n.width-2 {\n  width: 1rem;\n}\n\n.width-205 {\n  width: 1.25rem;\n}\n\n.width-3 {\n  width: 1.5rem;\n}\n\n.width-4 {\n  width: 2rem;\n}\n\n.width-5 {\n  width: 2.5rem;\n}\n\n.width-6 {\n  width: 3rem;\n}\n\n.width-7 {\n  width: 3.5rem;\n}\n\n.width-8 {\n  width: 4rem;\n}\n\n.width-9 {\n  width: 4.5rem;\n}\n\n.width-10 {\n  width: 5rem;\n}\n\n.width-15 {\n  width: 7.5rem;\n}\n\n.width-card {\n  width: 10rem;\n}\n\n.width-card-lg {\n  width: 15rem;\n}\n\n.width-mobile {\n  width: 20rem;\n}\n\n.width-mobile-lg {\n  width: 30rem;\n}\n\n.width-tablet {\n  width: 40rem;\n}\n\n.width-tablet-lg {\n  width: 55rem;\n}\n\n.width-desktop {\n  width: 64rem;\n}\n\n.width-desktop-lg {\n  width: 75rem;\n}\n\n.width-widescreen {\n  width: 87.5rem;\n}\n\n.width-0 {\n  width: 0;\n}\n\n.width-full {\n  width: 100%;\n}\n\n.width-auto {\n  width: auto;\n}\n\n.z-auto {\n  z-index: auto;\n}\n\n.z-bottom {\n  z-index: -100;\n}\n\n.z-top {\n  z-index: 99999;\n}\n\n.z-0 {\n  z-index: 0;\n}\n\n.z-100 {\n  z-index: 100;\n}\n\n.z-200 {\n  z-index: 200;\n}\n\n.z-300 {\n  z-index: 300;\n}\n\n.z-400 {\n  z-index: 400;\n}\n\n.z-500 {\n  z-index: 500;\n}\n\n@media all and (min-width: 30em) {\n  .mobile-lg\\:border-1px {\n    border: 1px solid;\n  }\n  .mobile-lg\\:hover\\:border-1px:hover {\n    border: 1px solid;\n  }\n  .mobile-lg\\:border-y-1px {\n    border-top: 1px solid;\n    border-bottom: 1px solid;\n  }\n  .mobile-lg\\:hover\\:border-y-1px:hover {\n    border-top: 1px solid;\n    border-bottom: 1px solid;\n  }\n  .mobile-lg\\:border-x-1px {\n    border-left: 1px solid;\n    border-right: 1px solid;\n  }\n  .mobile-lg\\:hover\\:border-x-1px:hover {\n    border-left: 1px solid;\n    border-right: 1px solid;\n  }\n  .mobile-lg\\:border-top-1px {\n    border-top: 1px solid;\n  }\n  .mobile-lg\\:hover\\:border-top-1px:hover {\n    border-top: 1px solid;\n  }\n  .mobile-lg\\:border-right-1px {\n    border-right: 1px solid;\n  }\n  .mobile-lg\\:hover\\:border-right-1px:hover {\n    border-right: 1px solid;\n  }\n  .mobile-lg\\:border-bottom-1px {\n    border-bottom: 1px solid;\n  }\n  .mobile-lg\\:hover\\:border-bottom-1px:hover {\n    border-bottom: 1px solid;\n  }\n  .mobile-lg\\:border-left-1px {\n    border-left: 1px solid;\n  }\n  .mobile-lg\\:hover\\:border-left-1px:hover {\n    border-left: 1px solid;\n  }\n  .mobile-lg\\:border-2px {\n    border: 2px solid;\n  }\n  .mobile-lg\\:hover\\:border-2px:hover {\n    border: 2px solid;\n  }\n  .mobile-lg\\:border-y-2px {\n    border-top: 2px solid;\n    border-bottom: 2px solid;\n  }\n  .mobile-lg\\:hover\\:border-y-2px:hover {\n    border-top: 2px solid;\n    border-bottom: 2px solid;\n  }\n  .mobile-lg\\:border-x-2px {\n    border-left: 2px solid;\n    border-right: 2px solid;\n  }\n  .mobile-lg\\:hover\\:border-x-2px:hover {\n    border-left: 2px solid;\n    border-right: 2px solid;\n  }\n  .mobile-lg\\:border-top-2px {\n    border-top: 2px solid;\n  }\n  .mobile-lg\\:hover\\:border-top-2px:hover {\n    border-top: 2px solid;\n  }\n  .mobile-lg\\:border-right-2px {\n    border-right: 2px solid;\n  }\n  .mobile-lg\\:hover\\:border-right-2px:hover {\n    border-right: 2px solid;\n  }\n  .mobile-lg\\:border-bottom-2px {\n    border-bottom: 2px solid;\n  }\n  .mobile-lg\\:hover\\:border-bottom-2px:hover {\n    border-bottom: 2px solid;\n  }\n  .mobile-lg\\:border-left-2px {\n    border-left: 2px solid;\n  }\n  .mobile-lg\\:hover\\:border-left-2px:hover {\n    border-left: 2px solid;\n  }\n  .mobile-lg\\:border-05 {\n    border: 0.25rem solid;\n  }\n  .mobile-lg\\:hover\\:border-05:hover {\n    border: 0.25rem solid;\n  }\n  .mobile-lg\\:border-y-05 {\n    border-top: 0.25rem solid;\n    border-bottom: 0.25rem solid;\n  }\n  .mobile-lg\\:hover\\:border-y-05:hover {\n    border-top: 0.25rem solid;\n    border-bottom: 0.25rem solid;\n  }\n  .mobile-lg\\:border-x-05 {\n    border-left: 0.25rem solid;\n    border-right: 0.25rem solid;\n  }\n  .mobile-lg\\:hover\\:border-x-05:hover {\n    border-left: 0.25rem solid;\n    border-right: 0.25rem solid;\n  }\n  .mobile-lg\\:border-top-05 {\n    border-top: 0.25rem solid;\n  }\n  .mobile-lg\\:hover\\:border-top-05:hover {\n    border-top: 0.25rem solid;\n  }\n  .mobile-lg\\:border-right-05 {\n    border-right: 0.25rem solid;\n  }\n  .mobile-lg\\:hover\\:border-right-05:hover {\n    border-right: 0.25rem solid;\n  }\n  .mobile-lg\\:border-bottom-05 {\n    border-bottom: 0.25rem solid;\n  }\n  .mobile-lg\\:hover\\:border-bottom-05:hover {\n    border-bottom: 0.25rem solid;\n  }\n  .mobile-lg\\:border-left-05 {\n    border-left: 0.25rem solid;\n  }\n  .mobile-lg\\:hover\\:border-left-05:hover {\n    border-left: 0.25rem solid;\n  }\n  .mobile-lg\\:border-1 {\n    border: 0.5rem solid;\n  }\n  .mobile-lg\\:hover\\:border-1:hover {\n    border: 0.5rem solid;\n  }\n  .mobile-lg\\:border-y-1 {\n    border-top: 0.5rem solid;\n    border-bottom: 0.5rem solid;\n  }\n  .mobile-lg\\:hover\\:border-y-1:hover {\n    border-top: 0.5rem solid;\n    border-bottom: 0.5rem solid;\n  }\n  .mobile-lg\\:border-x-1 {\n    border-left: 0.5rem solid;\n    border-right: 0.5rem solid;\n  }\n  .mobile-lg\\:hover\\:border-x-1:hover {\n    border-left: 0.5rem solid;\n    border-right: 0.5rem solid;\n  }\n  .mobile-lg\\:border-top-1 {\n    border-top: 0.5rem solid;\n  }\n  .mobile-lg\\:hover\\:border-top-1:hover {\n    border-top: 0.5rem solid;\n  }\n  .mobile-lg\\:border-right-1 {\n    border-right: 0.5rem solid;\n  }\n  .mobile-lg\\:hover\\:border-right-1:hover {\n    border-right: 0.5rem solid;\n  }\n  .mobile-lg\\:border-bottom-1 {\n    border-bottom: 0.5rem solid;\n  }\n  .mobile-lg\\:hover\\:border-bottom-1:hover {\n    border-bottom: 0.5rem solid;\n  }\n  .mobile-lg\\:border-left-1 {\n    border-left: 0.5rem solid;\n  }\n  .mobile-lg\\:hover\\:border-left-1:hover {\n    border-left: 0.5rem solid;\n  }\n  .mobile-lg\\:border-105 {\n    border: 0.75rem solid;\n  }\n  .mobile-lg\\:hover\\:border-105:hover {\n    border: 0.75rem solid;\n  }\n  .mobile-lg\\:border-y-105 {\n    border-top: 0.75rem solid;\n    border-bottom: 0.75rem solid;\n  }\n  .mobile-lg\\:hover\\:border-y-105:hover {\n    border-top: 0.75rem solid;\n    border-bottom: 0.75rem solid;\n  }\n  .mobile-lg\\:border-x-105 {\n    border-left: 0.75rem solid;\n    border-right: 0.75rem solid;\n  }\n  .mobile-lg\\:hover\\:border-x-105:hover {\n    border-left: 0.75rem solid;\n    border-right: 0.75rem solid;\n  }\n  .mobile-lg\\:border-top-105 {\n    border-top: 0.75rem solid;\n  }\n  .mobile-lg\\:hover\\:border-top-105:hover {\n    border-top: 0.75rem solid;\n  }\n  .mobile-lg\\:border-right-105 {\n    border-right: 0.75rem solid;\n  }\n  .mobile-lg\\:hover\\:border-right-105:hover {\n    border-right: 0.75rem solid;\n  }\n  .mobile-lg\\:border-bottom-105 {\n    border-bottom: 0.75rem solid;\n  }\n  .mobile-lg\\:hover\\:border-bottom-105:hover {\n    border-bottom: 0.75rem solid;\n  }\n  .mobile-lg\\:border-left-105 {\n    border-left: 0.75rem solid;\n  }\n  .mobile-lg\\:hover\\:border-left-105:hover {\n    border-left: 0.75rem solid;\n  }\n  .mobile-lg\\:border-2 {\n    border: 1rem solid;\n  }\n  .mobile-lg\\:hover\\:border-2:hover {\n    border: 1rem solid;\n  }\n  .mobile-lg\\:border-y-2 {\n    border-top: 1rem solid;\n    border-bottom: 1rem solid;\n  }\n  .mobile-lg\\:hover\\:border-y-2:hover {\n    border-top: 1rem solid;\n    border-bottom: 1rem solid;\n  }\n  .mobile-lg\\:border-x-2 {\n    border-left: 1rem solid;\n    border-right: 1rem solid;\n  }\n  .mobile-lg\\:hover\\:border-x-2:hover {\n    border-left: 1rem solid;\n    border-right: 1rem solid;\n  }\n  .mobile-lg\\:border-top-2 {\n    border-top: 1rem solid;\n  }\n  .mobile-lg\\:hover\\:border-top-2:hover {\n    border-top: 1rem solid;\n  }\n  .mobile-lg\\:border-right-2 {\n    border-right: 1rem solid;\n  }\n  .mobile-lg\\:hover\\:border-right-2:hover {\n    border-right: 1rem solid;\n  }\n  .mobile-lg\\:border-bottom-2 {\n    border-bottom: 1rem solid;\n  }\n  .mobile-lg\\:hover\\:border-bottom-2:hover {\n    border-bottom: 1rem solid;\n  }\n  .mobile-lg\\:border-left-2 {\n    border-left: 1rem solid;\n  }\n  .mobile-lg\\:hover\\:border-left-2:hover {\n    border-left: 1rem solid;\n  }\n  .mobile-lg\\:border-205 {\n    border: 1.25rem solid;\n  }\n  .mobile-lg\\:hover\\:border-205:hover {\n    border: 1.25rem solid;\n  }\n  .mobile-lg\\:border-y-205 {\n    border-top: 1.25rem solid;\n    border-bottom: 1.25rem solid;\n  }\n  .mobile-lg\\:hover\\:border-y-205:hover {\n    border-top: 1.25rem solid;\n    border-bottom: 1.25rem solid;\n  }\n  .mobile-lg\\:border-x-205 {\n    border-left: 1.25rem solid;\n    border-right: 1.25rem solid;\n  }\n  .mobile-lg\\:hover\\:border-x-205:hover {\n    border-left: 1.25rem solid;\n    border-right: 1.25rem solid;\n  }\n  .mobile-lg\\:border-top-205 {\n    border-top: 1.25rem solid;\n  }\n  .mobile-lg\\:hover\\:border-top-205:hover {\n    border-top: 1.25rem solid;\n  }\n  .mobile-lg\\:border-right-205 {\n    border-right: 1.25rem solid;\n  }\n  .mobile-lg\\:hover\\:border-right-205:hover {\n    border-right: 1.25rem solid;\n  }\n  .mobile-lg\\:border-bottom-205 {\n    border-bottom: 1.25rem solid;\n  }\n  .mobile-lg\\:hover\\:border-bottom-205:hover {\n    border-bottom: 1.25rem solid;\n  }\n  .mobile-lg\\:border-left-205 {\n    border-left: 1.25rem solid;\n  }\n  .mobile-lg\\:hover\\:border-left-205:hover {\n    border-left: 1.25rem solid;\n  }\n  .mobile-lg\\:border-3 {\n    border: 1.5rem solid;\n  }\n  .mobile-lg\\:hover\\:border-3:hover {\n    border: 1.5rem solid;\n  }\n  .mobile-lg\\:border-y-3 {\n    border-top: 1.5rem solid;\n    border-bottom: 1.5rem solid;\n  }\n  .mobile-lg\\:hover\\:border-y-3:hover {\n    border-top: 1.5rem solid;\n    border-bottom: 1.5rem solid;\n  }\n  .mobile-lg\\:border-x-3 {\n    border-left: 1.5rem solid;\n    border-right: 1.5rem solid;\n  }\n  .mobile-lg\\:hover\\:border-x-3:hover {\n    border-left: 1.5rem solid;\n    border-right: 1.5rem solid;\n  }\n  .mobile-lg\\:border-top-3 {\n    border-top: 1.5rem solid;\n  }\n  .mobile-lg\\:hover\\:border-top-3:hover {\n    border-top: 1.5rem solid;\n  }\n  .mobile-lg\\:border-right-3 {\n    border-right: 1.5rem solid;\n  }\n  .mobile-lg\\:hover\\:border-right-3:hover {\n    border-right: 1.5rem solid;\n  }\n  .mobile-lg\\:border-bottom-3 {\n    border-bottom: 1.5rem solid;\n  }\n  .mobile-lg\\:hover\\:border-bottom-3:hover {\n    border-bottom: 1.5rem solid;\n  }\n  .mobile-lg\\:border-left-3 {\n    border-left: 1.5rem solid;\n  }\n  .mobile-lg\\:hover\\:border-left-3:hover {\n    border-left: 1.5rem solid;\n  }\n  .mobile-lg\\:border-0 {\n    border: 0 solid;\n  }\n  .mobile-lg\\:hover\\:border-0:hover {\n    border: 0 solid;\n  }\n  .mobile-lg\\:border-y-0 {\n    border-top: 0 solid;\n    border-bottom: 0 solid;\n  }\n  .mobile-lg\\:hover\\:border-y-0:hover {\n    border-top: 0 solid;\n    border-bottom: 0 solid;\n  }\n  .mobile-lg\\:border-x-0 {\n    border-left: 0 solid;\n    border-right: 0 solid;\n  }\n  .mobile-lg\\:hover\\:border-x-0:hover {\n    border-left: 0 solid;\n    border-right: 0 solid;\n  }\n  .mobile-lg\\:border-top-0 {\n    border-top: 0 solid;\n  }\n  .mobile-lg\\:hover\\:border-top-0:hover {\n    border-top: 0 solid;\n  }\n  .mobile-lg\\:border-right-0 {\n    border-right: 0 solid;\n  }\n  .mobile-lg\\:hover\\:border-right-0:hover {\n    border-right: 0 solid;\n  }\n  .mobile-lg\\:border-bottom-0 {\n    border-bottom: 0 solid;\n  }\n  .mobile-lg\\:hover\\:border-bottom-0:hover {\n    border-bottom: 0 solid;\n  }\n  .mobile-lg\\:border-left-0 {\n    border-left: 0 solid;\n  }\n  .mobile-lg\\:hover\\:border-left-0:hover {\n    border-left: 0 solid;\n  }\n  .mobile-lg\\:border {\n    border: 1px solid;\n  }\n  .mobile-lg\\:hover\\:border:hover {\n    border: 1px solid;\n  }\n  .mobile-lg\\:border-y {\n    border-top: 1px solid;\n    border-bottom: 1px solid;\n  }\n  .mobile-lg\\:hover\\:border-y:hover {\n    border-top: 1px solid;\n    border-bottom: 1px solid;\n  }\n  .mobile-lg\\:border-x {\n    border-left: 1px solid;\n    border-right: 1px solid;\n  }\n  .mobile-lg\\:hover\\:border-x:hover {\n    border-left: 1px solid;\n    border-right: 1px solid;\n  }\n  .mobile-lg\\:border-top {\n    border-top: 1px solid;\n  }\n  .mobile-lg\\:hover\\:border-top:hover {\n    border-top: 1px solid;\n  }\n  .mobile-lg\\:border-right {\n    border-right: 1px solid;\n  }\n  .mobile-lg\\:hover\\:border-right:hover {\n    border-right: 1px solid;\n  }\n  .mobile-lg\\:border-bottom {\n    border-bottom: 1px solid;\n  }\n  .mobile-lg\\:hover\\:border-bottom:hover {\n    border-bottom: 1px solid;\n  }\n  .mobile-lg\\:border-left {\n    border-left: 1px solid;\n  }\n  .mobile-lg\\:hover\\:border-left:hover {\n    border-left: 1px solid;\n  }\n  .mobile-lg\\:border-transparent {\n    border-color: transparent;\n  }\n  .mobile-lg\\:hover\\:border-transparent:hover {\n    border-color: transparent;\n  }\n  .mobile-lg\\:border-black {\n    border-color: black;\n  }\n  .mobile-lg\\:hover\\:border-black:hover {\n    border-color: black;\n  }\n  .mobile-lg\\:border-white {\n    border-color: white;\n  }\n  .mobile-lg\\:hover\\:border-white:hover {\n    border-color: white;\n  }\n  .mobile-lg\\:border-red {\n    border-color: #e52207;\n  }\n  .mobile-lg\\:hover\\:border-red:hover {\n    border-color: #e52207;\n  }\n  .mobile-lg\\:border-orange {\n    border-color: #e66f0e;\n  }\n  .mobile-lg\\:hover\\:border-orange:hover {\n    border-color: #e66f0e;\n  }\n  .mobile-lg\\:border-gold {\n    border-color: #ffbe2e;\n  }\n  .mobile-lg\\:hover\\:border-gold:hover {\n    border-color: #ffbe2e;\n  }\n  .mobile-lg\\:border-yellow {\n    border-color: #fee685;\n  }\n  .mobile-lg\\:hover\\:border-yellow:hover {\n    border-color: #fee685;\n  }\n  .mobile-lg\\:border-green {\n    border-color: #538200;\n  }\n  .mobile-lg\\:hover\\:border-green:hover {\n    border-color: #538200;\n  }\n  .mobile-lg\\:border-mint {\n    border-color: #04c585;\n  }\n  .mobile-lg\\:hover\\:border-mint:hover {\n    border-color: #04c585;\n  }\n  .mobile-lg\\:border-cyan {\n    border-color: #009ec1;\n  }\n  .mobile-lg\\:hover\\:border-cyan:hover {\n    border-color: #009ec1;\n  }\n  .mobile-lg\\:border-blue {\n    border-color: #0076d6;\n  }\n  .mobile-lg\\:hover\\:border-blue:hover {\n    border-color: #0076d6;\n  }\n  .mobile-lg\\:border-indigo {\n    border-color: #676cc8;\n  }\n  .mobile-lg\\:hover\\:border-indigo:hover {\n    border-color: #676cc8;\n  }\n  .mobile-lg\\:border-violet {\n    border-color: #8168b3;\n  }\n  .mobile-lg\\:hover\\:border-violet:hover {\n    border-color: #8168b3;\n  }\n  .mobile-lg\\:border-magenta {\n    border-color: #d72d79;\n  }\n  .mobile-lg\\:hover\\:border-magenta:hover {\n    border-color: #d72d79;\n  }\n  .mobile-lg\\:border-gray-5 {\n    border-color: #f0f0f0;\n  }\n  .mobile-lg\\:hover\\:border-gray-5:hover {\n    border-color: #f0f0f0;\n  }\n  .mobile-lg\\:border-gray-10 {\n    border-color: #e6e6e6;\n  }\n  .mobile-lg\\:hover\\:border-gray-10:hover {\n    border-color: #e6e6e6;\n  }\n  .mobile-lg\\:border-gray-30 {\n    border-color: #adadad;\n  }\n  .mobile-lg\\:hover\\:border-gray-30:hover {\n    border-color: #adadad;\n  }\n  .mobile-lg\\:border-gray-50 {\n    border-color: #757575;\n  }\n  .mobile-lg\\:hover\\:border-gray-50:hover {\n    border-color: #757575;\n  }\n  .mobile-lg\\:border-gray-70 {\n    border-color: #454545;\n  }\n  .mobile-lg\\:hover\\:border-gray-70:hover {\n    border-color: #454545;\n  }\n  .mobile-lg\\:border-gray-90 {\n    border-color: #1b1b1b;\n  }\n  .mobile-lg\\:hover\\:border-gray-90:hover {\n    border-color: #1b1b1b;\n  }\n  .mobile-lg\\:border-base-lightest {\n    border-color: #f0f0f0;\n  }\n  .mobile-lg\\:hover\\:border-base-lightest:hover {\n    border-color: #f0f0f0;\n  }\n  .mobile-lg\\:border-base-lighter {\n    border-color: #dfe1e2;\n  }\n  .mobile-lg\\:hover\\:border-base-lighter:hover {\n    border-color: #dfe1e2;\n  }\n  .mobile-lg\\:border-base-light {\n    border-color: #a9aeb1;\n  }\n  .mobile-lg\\:hover\\:border-base-light:hover {\n    border-color: #a9aeb1;\n  }\n  .mobile-lg\\:border-base {\n    border-color: #71767a;\n  }\n  .mobile-lg\\:hover\\:border-base:hover {\n    border-color: #71767a;\n  }\n  .mobile-lg\\:border-base-dark {\n    border-color: #565c65;\n  }\n  .mobile-lg\\:hover\\:border-base-dark:hover {\n    border-color: #565c65;\n  }\n  .mobile-lg\\:border-base-darker {\n    border-color: #3d4551;\n  }\n  .mobile-lg\\:hover\\:border-base-darker:hover {\n    border-color: #3d4551;\n  }\n  .mobile-lg\\:border-base-darkest {\n    border-color: #1b1b1b;\n  }\n  .mobile-lg\\:hover\\:border-base-darkest:hover {\n    border-color: #1b1b1b;\n  }\n  .mobile-lg\\:border-ink {\n    border-color: #1b1b1b;\n  }\n  .mobile-lg\\:hover\\:border-ink:hover {\n    border-color: #1b1b1b;\n  }\n  .mobile-lg\\:border-primary-lighter {\n    border-color: #d9e8f6;\n  }\n  .mobile-lg\\:hover\\:border-primary-lighter:hover {\n    border-color: #d9e8f6;\n  }\n  .mobile-lg\\:border-primary-light {\n    border-color: #73b3e7;\n  }\n  .mobile-lg\\:hover\\:border-primary-light:hover {\n    border-color: #73b3e7;\n  }\n  .mobile-lg\\:border-primary {\n    border-color: #005ea2;\n  }\n  .mobile-lg\\:hover\\:border-primary:hover {\n    border-color: #005ea2;\n  }\n  .mobile-lg\\:border-primary-vivid {\n    border-color: #0050d8;\n  }\n  .mobile-lg\\:hover\\:border-primary-vivid:hover {\n    border-color: #0050d8;\n  }\n  .mobile-lg\\:border-primary-dark {\n    border-color: #1a4480;\n  }\n  .mobile-lg\\:hover\\:border-primary-dark:hover {\n    border-color: #1a4480;\n  }\n  .mobile-lg\\:border-primary-darker {\n    border-color: #162e51;\n  }\n  .mobile-lg\\:hover\\:border-primary-darker:hover {\n    border-color: #162e51;\n  }\n  .mobile-lg\\:border-secondary-lighter {\n    border-color: #f3e1e4;\n  }\n  .mobile-lg\\:hover\\:border-secondary-lighter:hover {\n    border-color: #f3e1e4;\n  }\n  .mobile-lg\\:border-secondary-light {\n    border-color: #f2938c;\n  }\n  .mobile-lg\\:hover\\:border-secondary-light:hover {\n    border-color: #f2938c;\n  }\n  .mobile-lg\\:border-secondary {\n    border-color: #d83933;\n  }\n  .mobile-lg\\:hover\\:border-secondary:hover {\n    border-color: #d83933;\n  }\n  .mobile-lg\\:border-secondary-vivid {\n    border-color: #e41d3d;\n  }\n  .mobile-lg\\:hover\\:border-secondary-vivid:hover {\n    border-color: #e41d3d;\n  }\n  .mobile-lg\\:border-secondary-dark {\n    border-color: #b50909;\n  }\n  .mobile-lg\\:hover\\:border-secondary-dark:hover {\n    border-color: #b50909;\n  }\n  .mobile-lg\\:border-secondary-darker {\n    border-color: #8b0a03;\n  }\n  .mobile-lg\\:hover\\:border-secondary-darker:hover {\n    border-color: #8b0a03;\n  }\n  .mobile-lg\\:border-accent-warm-darker {\n    border-color: #775540;\n  }\n  .mobile-lg\\:hover\\:border-accent-warm-darker:hover {\n    border-color: #775540;\n  }\n  .mobile-lg\\:border-accent-warm-dark {\n    border-color: #c05600;\n  }\n  .mobile-lg\\:hover\\:border-accent-warm-dark:hover {\n    border-color: #c05600;\n  }\n  .mobile-lg\\:border-accent-warm {\n    border-color: #fa9441;\n  }\n  .mobile-lg\\:hover\\:border-accent-warm:hover {\n    border-color: #fa9441;\n  }\n  .mobile-lg\\:border-accent-warm-light {\n    border-color: #ffbc78;\n  }\n  .mobile-lg\\:hover\\:border-accent-warm-light:hover {\n    border-color: #ffbc78;\n  }\n  .mobile-lg\\:border-accent-warm-lighter {\n    border-color: #f2e4d4;\n  }\n  .mobile-lg\\:hover\\:border-accent-warm-lighter:hover {\n    border-color: #f2e4d4;\n  }\n  .mobile-lg\\:border-accent-cool-darker {\n    border-color: #07648d;\n  }\n  .mobile-lg\\:hover\\:border-accent-cool-darker:hover {\n    border-color: #07648d;\n  }\n  .mobile-lg\\:border-accent-cool-dark {\n    border-color: #28a0cb;\n  }\n  .mobile-lg\\:hover\\:border-accent-cool-dark:hover {\n    border-color: #28a0cb;\n  }\n  .mobile-lg\\:border-accent-cool {\n    border-color: #00bde3;\n  }\n  .mobile-lg\\:hover\\:border-accent-cool:hover {\n    border-color: #00bde3;\n  }\n  .mobile-lg\\:border-accent-cool-light {\n    border-color: #97d4ea;\n  }\n  .mobile-lg\\:hover\\:border-accent-cool-light:hover {\n    border-color: #97d4ea;\n  }\n  .mobile-lg\\:border-accent-cool-lighter {\n    border-color: #e1f3f8;\n  }\n  .mobile-lg\\:hover\\:border-accent-cool-lighter:hover {\n    border-color: #e1f3f8;\n  }\n  .mobile-lg\\:border-error-lighter {\n    border-color: #f4e3db;\n  }\n  .mobile-lg\\:hover\\:border-error-lighter:hover {\n    border-color: #f4e3db;\n  }\n  .mobile-lg\\:border-error-light {\n    border-color: #f39268;\n  }\n  .mobile-lg\\:hover\\:border-error-light:hover {\n    border-color: #f39268;\n  }\n  .mobile-lg\\:border-error {\n    border-color: #d54309;\n  }\n  .mobile-lg\\:hover\\:border-error:hover {\n    border-color: #d54309;\n  }\n  .mobile-lg\\:border-error-dark {\n    border-color: #b50909;\n  }\n  .mobile-lg\\:hover\\:border-error-dark:hover {\n    border-color: #b50909;\n  }\n  .mobile-lg\\:border-error-darker {\n    border-color: #6f3331;\n  }\n  .mobile-lg\\:hover\\:border-error-darker:hover {\n    border-color: #6f3331;\n  }\n  .mobile-lg\\:border-warning-lighter {\n    border-color: #faf3d1;\n  }\n  .mobile-lg\\:hover\\:border-warning-lighter:hover {\n    border-color: #faf3d1;\n  }\n  .mobile-lg\\:border-warning-light {\n    border-color: #fee685;\n  }\n  .mobile-lg\\:hover\\:border-warning-light:hover {\n    border-color: #fee685;\n  }\n  .mobile-lg\\:border-warning {\n    border-color: #ffbe2e;\n  }\n  .mobile-lg\\:hover\\:border-warning:hover {\n    border-color: #ffbe2e;\n  }\n  .mobile-lg\\:border-warning-dark {\n    border-color: #e5a000;\n  }\n  .mobile-lg\\:hover\\:border-warning-dark:hover {\n    border-color: #e5a000;\n  }\n  .mobile-lg\\:border-warning-darker {\n    border-color: #936f38;\n  }\n  .mobile-lg\\:hover\\:border-warning-darker:hover {\n    border-color: #936f38;\n  }\n  .mobile-lg\\:border-success-lighter {\n    border-color: #ecf3ec;\n  }\n  .mobile-lg\\:hover\\:border-success-lighter:hover {\n    border-color: #ecf3ec;\n  }\n  .mobile-lg\\:border-success-light {\n    border-color: #70e17b;\n  }\n  .mobile-lg\\:hover\\:border-success-light:hover {\n    border-color: #70e17b;\n  }\n  .mobile-lg\\:border-success {\n    border-color: #00a91c;\n  }\n  .mobile-lg\\:hover\\:border-success:hover {\n    border-color: #00a91c;\n  }\n  .mobile-lg\\:border-success-dark {\n    border-color: #008817;\n  }\n  .mobile-lg\\:hover\\:border-success-dark:hover {\n    border-color: #008817;\n  }\n  .mobile-lg\\:border-success-darker {\n    border-color: #216e1f;\n  }\n  .mobile-lg\\:hover\\:border-success-darker:hover {\n    border-color: #216e1f;\n  }\n  .mobile-lg\\:border-info-lighter {\n    border-color: #e7f6f8;\n  }\n  .mobile-lg\\:hover\\:border-info-lighter:hover {\n    border-color: #e7f6f8;\n  }\n  .mobile-lg\\:border-info-light {\n    border-color: #99deea;\n  }\n  .mobile-lg\\:hover\\:border-info-light:hover {\n    border-color: #99deea;\n  }\n  .mobile-lg\\:border-info {\n    border-color: #00bde3;\n  }\n  .mobile-lg\\:hover\\:border-info:hover {\n    border-color: #00bde3;\n  }\n  .mobile-lg\\:border-info-dark {\n    border-color: #009ec1;\n  }\n  .mobile-lg\\:hover\\:border-info-dark:hover {\n    border-color: #009ec1;\n  }\n  .mobile-lg\\:border-info-darker {\n    border-color: #2e6276;\n  }\n  .mobile-lg\\:hover\\:border-info-darker:hover {\n    border-color: #2e6276;\n  }\n  .mobile-lg\\:border-disabled-lighter {\n    border-color: #c9c9c9;\n  }\n  .mobile-lg\\:hover\\:border-disabled-lighter:hover {\n    border-color: #c9c9c9;\n  }\n  .mobile-lg\\:border-disabled-light {\n    border-color: #919191;\n  }\n  .mobile-lg\\:hover\\:border-disabled-light:hover {\n    border-color: #919191;\n  }\n  .mobile-lg\\:border-disabled {\n    border-color: #757575;\n  }\n  .mobile-lg\\:hover\\:border-disabled:hover {\n    border-color: #757575;\n  }\n  .mobile-lg\\:border-disabled-dark {\n    border-color: #454545;\n  }\n  .mobile-lg\\:hover\\:border-disabled-dark:hover {\n    border-color: #454545;\n  }\n  .mobile-lg\\:border-disabled-darker {\n    border-color: #1b1b1b;\n  }\n  .mobile-lg\\:hover\\:border-disabled-darker:hover {\n    border-color: #1b1b1b;\n  }\n  .mobile-lg\\:border-emergency {\n    border-color: #9c3d10;\n  }\n  .mobile-lg\\:hover\\:border-emergency:hover {\n    border-color: #9c3d10;\n  }\n  .mobile-lg\\:border-emergency-dark {\n    border-color: #332d29;\n  }\n  .mobile-lg\\:hover\\:border-emergency-dark:hover {\n    border-color: #332d29;\n  }\n  .mobile-lg\\:radius-0 {\n    border-radius: 0;\n  }\n  .mobile-lg\\:radius-top-0 {\n    border-top-left-radius: 0;\n    border-top-right-radius: 0;\n  }\n  .mobile-lg\\:radius-right-0 {\n    border-top-right-radius: 0;\n    border-bottom-right-radius: 0;\n  }\n  .mobile-lg\\:radius-bottom-0 {\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n  }\n  .mobile-lg\\:radius-left-0 {\n    border-top-left-radius: 0;\n    border-bottom-left-radius: 0;\n  }\n  .mobile-lg\\:radius-sm {\n    border-radius: 2px;\n  }\n  .mobile-lg\\:radius-top-sm {\n    border-top-left-radius: 2px;\n    border-top-right-radius: 2px;\n  }\n  .mobile-lg\\:radius-right-sm {\n    border-top-right-radius: 2px;\n    border-bottom-right-radius: 2px;\n  }\n  .mobile-lg\\:radius-bottom-sm {\n    border-bottom-left-radius: 2px;\n    border-bottom-right-radius: 2px;\n  }\n  .mobile-lg\\:radius-left-sm {\n    border-top-left-radius: 2px;\n    border-bottom-left-radius: 2px;\n  }\n  .mobile-lg\\:radius-md {\n    border-radius: 0.25rem;\n  }\n  .mobile-lg\\:radius-top-md {\n    border-top-left-radius: 0.25rem;\n    border-top-right-radius: 0.25rem;\n  }\n  .mobile-lg\\:radius-right-md {\n    border-top-right-radius: 0.25rem;\n    border-bottom-right-radius: 0.25rem;\n  }\n  .mobile-lg\\:radius-bottom-md {\n    border-bottom-left-radius: 0.25rem;\n    border-bottom-right-radius: 0.25rem;\n  }\n  .mobile-lg\\:radius-left-md {\n    border-top-left-radius: 0.25rem;\n    border-bottom-left-radius: 0.25rem;\n  }\n  .mobile-lg\\:radius-lg {\n    border-radius: 0.5rem;\n  }\n  .mobile-lg\\:radius-top-lg {\n    border-top-left-radius: 0.5rem;\n    border-top-right-radius: 0.5rem;\n  }\n  .mobile-lg\\:radius-right-lg {\n    border-top-right-radius: 0.5rem;\n    border-bottom-right-radius: 0.5rem;\n  }\n  .mobile-lg\\:radius-bottom-lg {\n    border-bottom-left-radius: 0.5rem;\n    border-bottom-right-radius: 0.5rem;\n  }\n  .mobile-lg\\:radius-left-lg {\n    border-top-left-radius: 0.5rem;\n    border-bottom-left-radius: 0.5rem;\n  }\n  .mobile-lg\\:radius-pill {\n    border-radius: 99rem;\n  }\n  .mobile-lg\\:radius-top-pill {\n    border-top-left-radius: 99rem;\n    border-top-right-radius: 99rem;\n  }\n  .mobile-lg\\:radius-right-pill {\n    border-top-right-radius: 99rem;\n    border-bottom-right-radius: 99rem;\n  }\n  .mobile-lg\\:radius-bottom-pill {\n    border-bottom-left-radius: 99rem;\n    border-bottom-right-radius: 99rem;\n  }\n  .mobile-lg\\:radius-left-pill {\n    border-top-left-radius: 99rem;\n    border-bottom-left-radius: 99rem;\n  }\n  .mobile-lg\\:display-block {\n    display: block;\n  }\n  .mobile-lg\\:display-flex {\n    display: flex;\n  }\n  .mobile-lg\\:display-none {\n    display: none;\n  }\n  .mobile-lg\\:display-inline {\n    display: inline;\n  }\n  .mobile-lg\\:display-inline-block {\n    display: inline-block;\n  }\n  .mobile-lg\\:display-inline-flex {\n    display: inline-flex;\n  }\n  .mobile-lg\\:display-table {\n    display: table;\n  }\n  .mobile-lg\\:display-table-cell {\n    display: table-cell;\n  }\n  .mobile-lg\\:display-table-row {\n    display: table-row;\n  }\n  .mobile-lg\\:font-mono-3xs {\n    font-size: 0.77rem;\n  }\n  .mobile-lg\\:font-mono-2xs {\n    font-size: 0.83rem;\n  }\n  .mobile-lg\\:font-mono-xs {\n    font-size: 0.89rem;\n  }\n  .mobile-lg\\:font-mono-sm {\n    font-size: 0.95rem;\n  }\n  .mobile-lg\\:font-mono-md {\n    font-size: 1.01rem;\n  }\n  .mobile-lg\\:font-mono-lg {\n    font-size: 1.31rem;\n  }\n  .mobile-lg\\:font-mono-xl {\n    font-size: 1.91rem;\n  }\n  .mobile-lg\\:font-mono-2xl {\n    font-size: 2.38rem;\n  }\n  .mobile-lg\\:font-mono-3xl {\n    font-size: 2.86rem;\n  }\n  .mobile-lg\\:font-sans-3xs {\n    font-size: 0.87rem;\n  }\n  .mobile-lg\\:font-sans-2xs {\n    font-size: 0.93rem;\n  }\n  .mobile-lg\\:font-sans-xs {\n    font-size: 1rem;\n  }\n  .mobile-lg\\:font-sans-sm {\n    font-size: 1.06rem;\n  }\n  .mobile-lg\\:font-sans-md {\n    font-size: 1.13rem;\n  }\n  .mobile-lg\\:font-sans-lg {\n    font-size: 1.46rem;\n  }\n  .mobile-lg\\:font-sans-xl {\n    font-size: 2.13rem;\n  }\n  .mobile-lg\\:font-sans-2xl {\n    font-size: 2.66rem;\n  }\n  .mobile-lg\\:font-sans-3xl {\n    font-size: 3.19rem;\n  }\n  .mobile-lg\\:font-serif-3xs {\n    font-size: 0.79rem;\n  }\n  .mobile-lg\\:font-serif-2xs {\n    font-size: 0.85rem;\n  }\n  .mobile-lg\\:font-serif-xs {\n    font-size: 0.91rem;\n  }\n  .mobile-lg\\:font-serif-sm {\n    font-size: 0.98rem;\n  }\n  .mobile-lg\\:font-serif-md {\n    font-size: 1.04rem;\n  }\n  .mobile-lg\\:font-serif-lg {\n    font-size: 1.34rem;\n  }\n  .mobile-lg\\:font-serif-xl {\n    font-size: 1.95rem;\n  }\n  .mobile-lg\\:font-serif-2xl {\n    font-size: 2.44rem;\n  }\n  .mobile-lg\\:font-serif-3xl {\n    font-size: 2.93rem;\n  }\n  .mobile-lg\\:font-heading-3xs {\n    font-size: 0.79rem;\n  }\n  .mobile-lg\\:font-heading-2xs {\n    font-size: 0.85rem;\n  }\n  .mobile-lg\\:font-heading-xs {\n    font-size: 0.91rem;\n  }\n  .mobile-lg\\:font-heading-sm {\n    font-size: 0.98rem;\n  }\n  .mobile-lg\\:font-heading-md {\n    font-size: 1.04rem;\n  }\n  .mobile-lg\\:font-heading-lg {\n    font-size: 1.34rem;\n  }\n  .mobile-lg\\:font-heading-xl {\n    font-size: 1.95rem;\n  }\n  .mobile-lg\\:font-heading-2xl {\n    font-size: 2.44rem;\n  }\n  .mobile-lg\\:font-heading-3xl {\n    font-size: 2.93rem;\n  }\n  .mobile-lg\\:font-body-3xs {\n    font-size: 0.87rem;\n  }\n  .mobile-lg\\:font-body-2xs {\n    font-size: 0.93rem;\n  }\n  .mobile-lg\\:font-body-xs {\n    font-size: 1rem;\n  }\n  .mobile-lg\\:font-body-sm {\n    font-size: 1.06rem;\n  }\n  .mobile-lg\\:font-body-md {\n    font-size: 1.13rem;\n  }\n  .mobile-lg\\:font-body-lg {\n    font-size: 1.46rem;\n  }\n  .mobile-lg\\:font-body-xl {\n    font-size: 2.13rem;\n  }\n  .mobile-lg\\:font-body-2xl {\n    font-size: 2.66rem;\n  }\n  .mobile-lg\\:font-body-3xl {\n    font-size: 3.19rem;\n  }\n  .mobile-lg\\:font-code-3xs {\n    font-size: 0.77rem;\n  }\n  .mobile-lg\\:font-code-2xs {\n    font-size: 0.83rem;\n  }\n  .mobile-lg\\:font-code-xs {\n    font-size: 0.89rem;\n  }\n  .mobile-lg\\:font-code-sm {\n    font-size: 0.95rem;\n  }\n  .mobile-lg\\:font-code-md {\n    font-size: 1.01rem;\n  }\n  .mobile-lg\\:font-code-lg {\n    font-size: 1.31rem;\n  }\n  .mobile-lg\\:font-code-xl {\n    font-size: 1.91rem;\n  }\n  .mobile-lg\\:font-code-2xl {\n    font-size: 2.38rem;\n  }\n  .mobile-lg\\:font-code-3xl {\n    font-size: 2.86rem;\n  }\n  .mobile-lg\\:font-alt-3xs {\n    font-size: 0.79rem;\n  }\n  .mobile-lg\\:font-alt-2xs {\n    font-size: 0.85rem;\n  }\n  .mobile-lg\\:font-alt-xs {\n    font-size: 0.91rem;\n  }\n  .mobile-lg\\:font-alt-sm {\n    font-size: 0.98rem;\n  }\n  .mobile-lg\\:font-alt-md {\n    font-size: 1.04rem;\n  }\n  .mobile-lg\\:font-alt-lg {\n    font-size: 1.34rem;\n  }\n  .mobile-lg\\:font-alt-xl {\n    font-size: 1.95rem;\n  }\n  .mobile-lg\\:font-alt-2xl {\n    font-size: 2.44rem;\n  }\n  .mobile-lg\\:font-alt-3xl {\n    font-size: 2.93rem;\n  }\n  .mobile-lg\\:font-ui-3xs {\n    font-size: 0.87rem;\n  }\n  .mobile-lg\\:font-ui-2xs {\n    font-size: 0.93rem;\n  }\n  .mobile-lg\\:font-ui-xs {\n    font-size: 1rem;\n  }\n  .mobile-lg\\:font-ui-sm {\n    font-size: 1.06rem;\n  }\n  .mobile-lg\\:font-ui-md {\n    font-size: 1.13rem;\n  }\n  .mobile-lg\\:font-ui-lg {\n    font-size: 1.46rem;\n  }\n  .mobile-lg\\:font-ui-xl {\n    font-size: 2.13rem;\n  }\n  .mobile-lg\\:font-ui-2xl {\n    font-size: 2.66rem;\n  }\n  .mobile-lg\\:font-ui-3xl {\n    font-size: 3.19rem;\n  }\n  .mobile-lg\\:text-light {\n    font-weight: 300;\n  }\n  .mobile-lg\\:text-normal {\n    font-weight: normal;\n  }\n  .mobile-lg\\:text-bold {\n    font-weight: 700;\n  }\n  .mobile-lg\\:flex-justify-center {\n    justify-content: center;\n  }\n  .mobile-lg\\:flex-justify-start {\n    justify-content: flex-start;\n  }\n  .mobile-lg\\:flex-justify-end {\n    justify-content: flex-end;\n  }\n  .mobile-lg\\:flex-justify {\n    justify-content: space-between;\n  }\n  .mobile-lg\\:line-height-sans-1 {\n    line-height: 0.9;\n  }\n  .mobile-lg\\:line-height-sans-2 {\n    line-height: 1.1;\n  }\n  .mobile-lg\\:line-height-sans-3 {\n    line-height: 1.3;\n  }\n  .mobile-lg\\:line-height-sans-4 {\n    line-height: 1.4;\n  }\n  .mobile-lg\\:line-height-sans-5 {\n    line-height: 1.5;\n  }\n  .mobile-lg\\:line-height-sans-6 {\n    line-height: 1.6;\n  }\n  .mobile-lg\\:line-height-serif-1 {\n    line-height: 1;\n  }\n  .mobile-lg\\:line-height-serif-2 {\n    line-height: 1.2;\n  }\n  .mobile-lg\\:line-height-serif-3 {\n    line-height: 1.4;\n  }\n  .mobile-lg\\:line-height-serif-4 {\n    line-height: 1.5;\n  }\n  .mobile-lg\\:line-height-serif-5 {\n    line-height: 1.7;\n  }\n  .mobile-lg\\:line-height-serif-6 {\n    line-height: 1.8;\n  }\n  .mobile-lg\\:line-height-mono-1 {\n    line-height: 1;\n  }\n  .mobile-lg\\:line-height-mono-2 {\n    line-height: 1.3;\n  }\n  .mobile-lg\\:line-height-mono-3 {\n    line-height: 1.4;\n  }\n  .mobile-lg\\:line-height-mono-4 {\n    line-height: 1.6;\n  }\n  .mobile-lg\\:line-height-mono-5 {\n    line-height: 1.7;\n  }\n  .mobile-lg\\:line-height-mono-6 {\n    line-height: 1.8;\n  }\n  .mobile-lg\\:line-height-heading-1 {\n    line-height: 1;\n  }\n  .mobile-lg\\:line-height-heading-2 {\n    line-height: 1.2;\n  }\n  .mobile-lg\\:line-height-heading-3 {\n    line-height: 1.4;\n  }\n  .mobile-lg\\:line-height-heading-4 {\n    line-height: 1.5;\n  }\n  .mobile-lg\\:line-height-heading-5 {\n    line-height: 1.7;\n  }\n  .mobile-lg\\:line-height-heading-6 {\n    line-height: 1.8;\n  }\n  .mobile-lg\\:line-height-ui-1 {\n    line-height: 0.9;\n  }\n  .mobile-lg\\:line-height-ui-2 {\n    line-height: 1.1;\n  }\n  .mobile-lg\\:line-height-ui-3 {\n    line-height: 1.3;\n  }\n  .mobile-lg\\:line-height-ui-4 {\n    line-height: 1.4;\n  }\n  .mobile-lg\\:line-height-ui-5 {\n    line-height: 1.5;\n  }\n  .mobile-lg\\:line-height-ui-6 {\n    line-height: 1.6;\n  }\n  .mobile-lg\\:line-height-body-1 {\n    line-height: 0.9;\n  }\n  .mobile-lg\\:line-height-body-2 {\n    line-height: 1.1;\n  }\n  .mobile-lg\\:line-height-body-3 {\n    line-height: 1.3;\n  }\n  .mobile-lg\\:line-height-body-4 {\n    line-height: 1.4;\n  }\n  .mobile-lg\\:line-height-body-5 {\n    line-height: 1.5;\n  }\n  .mobile-lg\\:line-height-body-6 {\n    line-height: 1.6;\n  }\n  .mobile-lg\\:line-height-code-1 {\n    line-height: 1;\n  }\n  .mobile-lg\\:line-height-code-2 {\n    line-height: 1.3;\n  }\n  .mobile-lg\\:line-height-code-3 {\n    line-height: 1.4;\n  }\n  .mobile-lg\\:line-height-code-4 {\n    line-height: 1.6;\n  }\n  .mobile-lg\\:line-height-code-5 {\n    line-height: 1.7;\n  }\n  .mobile-lg\\:line-height-code-6 {\n    line-height: 1.8;\n  }\n  .mobile-lg\\:line-height-alt-1 {\n    line-height: 1;\n  }\n  .mobile-lg\\:line-height-alt-2 {\n    line-height: 1.2;\n  }\n  .mobile-lg\\:line-height-alt-3 {\n    line-height: 1.4;\n  }\n  .mobile-lg\\:line-height-alt-4 {\n    line-height: 1.5;\n  }\n  .mobile-lg\\:line-height-alt-5 {\n    line-height: 1.7;\n  }\n  .mobile-lg\\:line-height-alt-6 {\n    line-height: 1.8;\n  }\n  .mobile-lg\\:margin-neg-1px {\n    margin: -1px;\n  }\n  .mobile-lg\\:margin-neg-2px {\n    margin: -2px;\n  }\n  .mobile-lg\\:margin-neg-05 {\n    margin: -0.25rem;\n  }\n  .mobile-lg\\:margin-neg-1 {\n    margin: -0.5rem;\n  }\n  .mobile-lg\\:margin-neg-105 {\n    margin: -0.75rem;\n  }\n  .mobile-lg\\:margin-neg-2 {\n    margin: -1rem;\n  }\n  .mobile-lg\\:margin-neg-205 {\n    margin: -1.25rem;\n  }\n  .mobile-lg\\:margin-neg-3 {\n    margin: -1.5rem;\n  }\n  .mobile-lg\\:margin-1px {\n    margin: 1px;\n  }\n  .mobile-lg\\:margin-2px {\n    margin: 2px;\n  }\n  .mobile-lg\\:margin-05 {\n    margin: 0.25rem;\n  }\n  .mobile-lg\\:margin-1 {\n    margin: 0.5rem;\n  }\n  .mobile-lg\\:margin-105 {\n    margin: 0.75rem;\n  }\n  .mobile-lg\\:margin-2 {\n    margin: 1rem;\n  }\n  .mobile-lg\\:margin-205 {\n    margin: 1.25rem;\n  }\n  .mobile-lg\\:margin-3 {\n    margin: 1.5rem;\n  }\n  .mobile-lg\\:margin-neg-4 {\n    margin: -2rem;\n  }\n  .mobile-lg\\:margin-neg-5 {\n    margin: -2.5rem;\n  }\n  .mobile-lg\\:margin-neg-6 {\n    margin: -3rem;\n  }\n  .mobile-lg\\:margin-neg-7 {\n    margin: -3.5rem;\n  }\n  .mobile-lg\\:margin-neg-8 {\n    margin: -4rem;\n  }\n  .mobile-lg\\:margin-neg-9 {\n    margin: -4.5rem;\n  }\n  .mobile-lg\\:margin-neg-10 {\n    margin: -5rem;\n  }\n  .mobile-lg\\:margin-neg-15 {\n    margin: -7.5rem;\n  }\n  .mobile-lg\\:margin-4 {\n    margin: 2rem;\n  }\n  .mobile-lg\\:margin-5 {\n    margin: 2.5rem;\n  }\n  .mobile-lg\\:margin-6 {\n    margin: 3rem;\n  }\n  .mobile-lg\\:margin-7 {\n    margin: 3.5rem;\n  }\n  .mobile-lg\\:margin-8 {\n    margin: 4rem;\n  }\n  .mobile-lg\\:margin-9 {\n    margin: 4.5rem;\n  }\n  .mobile-lg\\:margin-10 {\n    margin: 5rem;\n  }\n  .mobile-lg\\:margin-15 {\n    margin: 7.5rem;\n  }\n  .mobile-lg\\:margin-05em {\n    margin: 0.5em;\n  }\n  .mobile-lg\\:margin-1em {\n    margin: 1em;\n  }\n  .mobile-lg\\:margin-105em {\n    margin: 1.5em;\n  }\n  .mobile-lg\\:margin-2em {\n    margin: 2em;\n  }\n  .mobile-lg\\:margin-0 {\n    margin: 0;\n  }\n  .mobile-lg\\:margin-y-1px {\n    margin-top: 1px;\n    margin-bottom: 1px;\n  }\n  .mobile-lg\\:margin-top-1px {\n    margin-top: 1px;\n  }\n  .mobile-lg\\:margin-bottom-1px {\n    margin-bottom: 1px;\n  }\n  .mobile-lg\\:margin-y-2px {\n    margin-top: 2px;\n    margin-bottom: 2px;\n  }\n  .mobile-lg\\:margin-top-2px {\n    margin-top: 2px;\n  }\n  .mobile-lg\\:margin-bottom-2px {\n    margin-bottom: 2px;\n  }\n  .mobile-lg\\:margin-y-05 {\n    margin-top: 0.25rem;\n    margin-bottom: 0.25rem;\n  }\n  .mobile-lg\\:margin-top-05 {\n    margin-top: 0.25rem;\n  }\n  .mobile-lg\\:margin-bottom-05 {\n    margin-bottom: 0.25rem;\n  }\n  .mobile-lg\\:margin-y-1 {\n    margin-top: 0.5rem;\n    margin-bottom: 0.5rem;\n  }\n  .mobile-lg\\:margin-top-1 {\n    margin-top: 0.5rem;\n  }\n  .mobile-lg\\:margin-bottom-1 {\n    margin-bottom: 0.5rem;\n  }\n  .mobile-lg\\:margin-y-105 {\n    margin-top: 0.75rem;\n    margin-bottom: 0.75rem;\n  }\n  .mobile-lg\\:margin-top-105 {\n    margin-top: 0.75rem;\n  }\n  .mobile-lg\\:margin-bottom-105 {\n    margin-bottom: 0.75rem;\n  }\n  .mobile-lg\\:margin-y-2 {\n    margin-top: 1rem;\n    margin-bottom: 1rem;\n  }\n  .mobile-lg\\:margin-top-2 {\n    margin-top: 1rem;\n  }\n  .mobile-lg\\:margin-bottom-2 {\n    margin-bottom: 1rem;\n  }\n  .mobile-lg\\:margin-y-205 {\n    margin-top: 1.25rem;\n    margin-bottom: 1.25rem;\n  }\n  .mobile-lg\\:margin-top-205 {\n    margin-top: 1.25rem;\n  }\n  .mobile-lg\\:margin-bottom-205 {\n    margin-bottom: 1.25rem;\n  }\n  .mobile-lg\\:margin-y-3 {\n    margin-top: 1.5rem;\n    margin-bottom: 1.5rem;\n  }\n  .mobile-lg\\:margin-top-3 {\n    margin-top: 1.5rem;\n  }\n  .mobile-lg\\:margin-bottom-3 {\n    margin-bottom: 1.5rem;\n  }\n  .mobile-lg\\:margin-y-neg-1px {\n    margin-top: -1px;\n    margin-bottom: -1px;\n  }\n  .mobile-lg\\:margin-top-neg-1px {\n    margin-top: -1px;\n  }\n  .mobile-lg\\:margin-bottom-neg-1px {\n    margin-bottom: -1px;\n  }\n  .mobile-lg\\:margin-y-neg-2px {\n    margin-top: -2px;\n    margin-bottom: -2px;\n  }\n  .mobile-lg\\:margin-top-neg-2px {\n    margin-top: -2px;\n  }\n  .mobile-lg\\:margin-bottom-neg-2px {\n    margin-bottom: -2px;\n  }\n  .mobile-lg\\:margin-y-neg-05 {\n    margin-top: -0.25rem;\n    margin-bottom: -0.25rem;\n  }\n  .mobile-lg\\:margin-top-neg-05 {\n    margin-top: -0.25rem;\n  }\n  .mobile-lg\\:margin-bottom-neg-05 {\n    margin-bottom: -0.25rem;\n  }\n  .mobile-lg\\:margin-y-neg-1 {\n    margin-top: -0.5rem;\n    margin-bottom: -0.5rem;\n  }\n  .mobile-lg\\:margin-top-neg-1 {\n    margin-top: -0.5rem;\n  }\n  .mobile-lg\\:margin-bottom-neg-1 {\n    margin-bottom: -0.5rem;\n  }\n  .mobile-lg\\:margin-y-neg-105 {\n    margin-top: -0.75rem;\n    margin-bottom: -0.75rem;\n  }\n  .mobile-lg\\:margin-top-neg-105 {\n    margin-top: -0.75rem;\n  }\n  .mobile-lg\\:margin-bottom-neg-105 {\n    margin-bottom: -0.75rem;\n  }\n  .mobile-lg\\:margin-y-neg-2 {\n    margin-top: -1rem;\n    margin-bottom: -1rem;\n  }\n  .mobile-lg\\:margin-top-neg-2 {\n    margin-top: -1rem;\n  }\n  .mobile-lg\\:margin-bottom-neg-2 {\n    margin-bottom: -1rem;\n  }\n  .mobile-lg\\:margin-y-neg-205 {\n    margin-top: -1.25rem;\n    margin-bottom: -1.25rem;\n  }\n  .mobile-lg\\:margin-top-neg-205 {\n    margin-top: -1.25rem;\n  }\n  .mobile-lg\\:margin-bottom-neg-205 {\n    margin-bottom: -1.25rem;\n  }\n  .mobile-lg\\:margin-y-neg-3 {\n    margin-top: -1.5rem;\n    margin-bottom: -1.5rem;\n  }\n  .mobile-lg\\:margin-top-neg-3 {\n    margin-top: -1.5rem;\n  }\n  .mobile-lg\\:margin-bottom-neg-3 {\n    margin-bottom: -1.5rem;\n  }\n  .mobile-lg\\:margin-y-neg-4 {\n    margin-top: -2rem;\n    margin-bottom: -2rem;\n  }\n  .mobile-lg\\:margin-top-neg-4 {\n    margin-top: -2rem;\n  }\n  .mobile-lg\\:margin-bottom-neg-4 {\n    margin-bottom: -2rem;\n  }\n  .mobile-lg\\:margin-y-neg-5 {\n    margin-top: -2.5rem;\n    margin-bottom: -2.5rem;\n  }\n  .mobile-lg\\:margin-top-neg-5 {\n    margin-top: -2.5rem;\n  }\n  .mobile-lg\\:margin-bottom-neg-5 {\n    margin-bottom: -2.5rem;\n  }\n  .mobile-lg\\:margin-y-neg-6 {\n    margin-top: -3rem;\n    margin-bottom: -3rem;\n  }\n  .mobile-lg\\:margin-top-neg-6 {\n    margin-top: -3rem;\n  }\n  .mobile-lg\\:margin-bottom-neg-6 {\n    margin-bottom: -3rem;\n  }\n  .mobile-lg\\:margin-y-neg-7 {\n    margin-top: -3.5rem;\n    margin-bottom: -3.5rem;\n  }\n  .mobile-lg\\:margin-top-neg-7 {\n    margin-top: -3.5rem;\n  }\n  .mobile-lg\\:margin-bottom-neg-7 {\n    margin-bottom: -3.5rem;\n  }\n  .mobile-lg\\:margin-y-neg-8 {\n    margin-top: -4rem;\n    margin-bottom: -4rem;\n  }\n  .mobile-lg\\:margin-top-neg-8 {\n    margin-top: -4rem;\n  }\n  .mobile-lg\\:margin-bottom-neg-8 {\n    margin-bottom: -4rem;\n  }\n  .mobile-lg\\:margin-y-neg-9 {\n    margin-top: -4.5rem;\n    margin-bottom: -4.5rem;\n  }\n  .mobile-lg\\:margin-top-neg-9 {\n    margin-top: -4.5rem;\n  }\n  .mobile-lg\\:margin-bottom-neg-9 {\n    margin-bottom: -4.5rem;\n  }\n  .mobile-lg\\:margin-y-neg-10 {\n    margin-top: -5rem;\n    margin-bottom: -5rem;\n  }\n  .mobile-lg\\:margin-top-neg-10 {\n    margin-top: -5rem;\n  }\n  .mobile-lg\\:margin-bottom-neg-10 {\n    margin-bottom: -5rem;\n  }\n  .mobile-lg\\:margin-y-neg-15 {\n    margin-top: -7.5rem;\n    margin-bottom: -7.5rem;\n  }\n  .mobile-lg\\:margin-top-neg-15 {\n    margin-top: -7.5rem;\n  }\n  .mobile-lg\\:margin-bottom-neg-15 {\n    margin-bottom: -7.5rem;\n  }\n  .mobile-lg\\:margin-y-4 {\n    margin-top: 2rem;\n    margin-bottom: 2rem;\n  }\n  .mobile-lg\\:margin-top-4 {\n    margin-top: 2rem;\n  }\n  .mobile-lg\\:margin-bottom-4 {\n    margin-bottom: 2rem;\n  }\n  .mobile-lg\\:margin-y-5 {\n    margin-top: 2.5rem;\n    margin-bottom: 2.5rem;\n  }\n  .mobile-lg\\:margin-top-5 {\n    margin-top: 2.5rem;\n  }\n  .mobile-lg\\:margin-bottom-5 {\n    margin-bottom: 2.5rem;\n  }\n  .mobile-lg\\:margin-y-6 {\n    margin-top: 3rem;\n    margin-bottom: 3rem;\n  }\n  .mobile-lg\\:margin-top-6 {\n    margin-top: 3rem;\n  }\n  .mobile-lg\\:margin-bottom-6 {\n    margin-bottom: 3rem;\n  }\n  .mobile-lg\\:margin-y-7 {\n    margin-top: 3.5rem;\n    margin-bottom: 3.5rem;\n  }\n  .mobile-lg\\:margin-top-7 {\n    margin-top: 3.5rem;\n  }\n  .mobile-lg\\:margin-bottom-7 {\n    margin-bottom: 3.5rem;\n  }\n  .mobile-lg\\:margin-y-8 {\n    margin-top: 4rem;\n    margin-bottom: 4rem;\n  }\n  .mobile-lg\\:margin-top-8 {\n    margin-top: 4rem;\n  }\n  .mobile-lg\\:margin-bottom-8 {\n    margin-bottom: 4rem;\n  }\n  .mobile-lg\\:margin-y-9 {\n    margin-top: 4.5rem;\n    margin-bottom: 4.5rem;\n  }\n  .mobile-lg\\:margin-top-9 {\n    margin-top: 4.5rem;\n  }\n  .mobile-lg\\:margin-bottom-9 {\n    margin-bottom: 4.5rem;\n  }\n  .mobile-lg\\:margin-y-10 {\n    margin-top: 5rem;\n    margin-bottom: 5rem;\n  }\n  .mobile-lg\\:margin-top-10 {\n    margin-top: 5rem;\n  }\n  .mobile-lg\\:margin-bottom-10 {\n    margin-bottom: 5rem;\n  }\n  .mobile-lg\\:margin-y-15 {\n    margin-top: 7.5rem;\n    margin-bottom: 7.5rem;\n  }\n  .mobile-lg\\:margin-top-15 {\n    margin-top: 7.5rem;\n  }\n  .mobile-lg\\:margin-bottom-15 {\n    margin-bottom: 7.5rem;\n  }\n  .mobile-lg\\:margin-y-05em {\n    margin-top: 0.5em;\n    margin-bottom: 0.5em;\n  }\n  .mobile-lg\\:margin-top-05em {\n    margin-top: 0.5em;\n  }\n  .mobile-lg\\:margin-bottom-05em {\n    margin-bottom: 0.5em;\n  }\n  .mobile-lg\\:margin-y-1em {\n    margin-top: 1em;\n    margin-bottom: 1em;\n  }\n  .mobile-lg\\:margin-top-1em {\n    margin-top: 1em;\n  }\n  .mobile-lg\\:margin-bottom-1em {\n    margin-bottom: 1em;\n  }\n  .mobile-lg\\:margin-y-105em {\n    margin-top: 1.5em;\n    margin-bottom: 1.5em;\n  }\n  .mobile-lg\\:margin-top-105em {\n    margin-top: 1.5em;\n  }\n  .mobile-lg\\:margin-bottom-105em {\n    margin-bottom: 1.5em;\n  }\n  .mobile-lg\\:margin-y-2em {\n    margin-top: 2em;\n    margin-bottom: 2em;\n  }\n  .mobile-lg\\:margin-top-2em {\n    margin-top: 2em;\n  }\n  .mobile-lg\\:margin-bottom-2em {\n    margin-bottom: 2em;\n  }\n  .mobile-lg\\:margin-y-0 {\n    margin-top: 0;\n    margin-bottom: 0;\n  }\n  .mobile-lg\\:margin-top-0 {\n    margin-top: 0;\n  }\n  .mobile-lg\\:margin-bottom-0 {\n    margin-bottom: 0;\n  }\n  .mobile-lg\\:margin-y-auto {\n    margin-top: auto;\n    margin-bottom: auto;\n  }\n  .mobile-lg\\:margin-top-auto {\n    margin-top: auto;\n  }\n  .mobile-lg\\:margin-bottom-auto {\n    margin-bottom: auto;\n  }\n  .mobile-lg\\:margin-x-1px {\n    margin-left: 1px;\n    margin-right: 1px;\n  }\n  .mobile-lg\\:margin-right-1px {\n    margin-right: 1px;\n  }\n  .mobile-lg\\:margin-left-1px {\n    margin-left: 1px;\n  }\n  .mobile-lg\\:margin-x-2px {\n    margin-left: 2px;\n    margin-right: 2px;\n  }\n  .mobile-lg\\:margin-right-2px {\n    margin-right: 2px;\n  }\n  .mobile-lg\\:margin-left-2px {\n    margin-left: 2px;\n  }\n  .mobile-lg\\:margin-x-05 {\n    margin-left: 0.25rem;\n    margin-right: 0.25rem;\n  }\n  .mobile-lg\\:margin-right-05 {\n    margin-right: 0.25rem;\n  }\n  .mobile-lg\\:margin-left-05 {\n    margin-left: 0.25rem;\n  }\n  .mobile-lg\\:margin-x-1 {\n    margin-left: 0.5rem;\n    margin-right: 0.5rem;\n  }\n  .mobile-lg\\:margin-right-1 {\n    margin-right: 0.5rem;\n  }\n  .mobile-lg\\:margin-left-1 {\n    margin-left: 0.5rem;\n  }\n  .mobile-lg\\:margin-x-105 {\n    margin-left: 0.75rem;\n    margin-right: 0.75rem;\n  }\n  .mobile-lg\\:margin-right-105 {\n    margin-right: 0.75rem;\n  }\n  .mobile-lg\\:margin-left-105 {\n    margin-left: 0.75rem;\n  }\n  .mobile-lg\\:margin-x-2 {\n    margin-left: 1rem;\n    margin-right: 1rem;\n  }\n  .mobile-lg\\:margin-right-2 {\n    margin-right: 1rem;\n  }\n  .mobile-lg\\:margin-left-2 {\n    margin-left: 1rem;\n  }\n  .mobile-lg\\:margin-x-205 {\n    margin-left: 1.25rem;\n    margin-right: 1.25rem;\n  }\n  .mobile-lg\\:margin-right-205 {\n    margin-right: 1.25rem;\n  }\n  .mobile-lg\\:margin-left-205 {\n    margin-left: 1.25rem;\n  }\n  .mobile-lg\\:margin-x-3 {\n    margin-left: 1.5rem;\n    margin-right: 1.5rem;\n  }\n  .mobile-lg\\:margin-right-3 {\n    margin-right: 1.5rem;\n  }\n  .mobile-lg\\:margin-left-3 {\n    margin-left: 1.5rem;\n  }\n  .mobile-lg\\:margin-x-neg-1px {\n    margin-left: -1px;\n    margin-right: -1px;\n  }\n  .mobile-lg\\:margin-right-neg-1px {\n    margin-right: -1px;\n  }\n  .mobile-lg\\:margin-left-neg-1px {\n    margin-left: -1px;\n  }\n  .mobile-lg\\:margin-x-neg-2px {\n    margin-left: -2px;\n    margin-right: -2px;\n  }\n  .mobile-lg\\:margin-right-neg-2px {\n    margin-right: -2px;\n  }\n  .mobile-lg\\:margin-left-neg-2px {\n    margin-left: -2px;\n  }\n  .mobile-lg\\:margin-x-neg-05 {\n    margin-left: -0.25rem;\n    margin-right: -0.25rem;\n  }\n  .mobile-lg\\:margin-right-neg-05 {\n    margin-right: -0.25rem;\n  }\n  .mobile-lg\\:margin-left-neg-05 {\n    margin-left: -0.25rem;\n  }\n  .mobile-lg\\:margin-x-neg-1 {\n    margin-left: -0.5rem;\n    margin-right: -0.5rem;\n  }\n  .mobile-lg\\:margin-right-neg-1 {\n    margin-right: -0.5rem;\n  }\n  .mobile-lg\\:margin-left-neg-1 {\n    margin-left: -0.5rem;\n  }\n  .mobile-lg\\:margin-x-neg-105 {\n    margin-left: -0.75rem;\n    margin-right: -0.75rem;\n  }\n  .mobile-lg\\:margin-right-neg-105 {\n    margin-right: -0.75rem;\n  }\n  .mobile-lg\\:margin-left-neg-105 {\n    margin-left: -0.75rem;\n  }\n  .mobile-lg\\:margin-x-neg-2 {\n    margin-left: -1rem;\n    margin-right: -1rem;\n  }\n  .mobile-lg\\:margin-right-neg-2 {\n    margin-right: -1rem;\n  }\n  .mobile-lg\\:margin-left-neg-2 {\n    margin-left: -1rem;\n  }\n  .mobile-lg\\:margin-x-neg-205 {\n    margin-left: -1.25rem;\n    margin-right: -1.25rem;\n  }\n  .mobile-lg\\:margin-right-neg-205 {\n    margin-right: -1.25rem;\n  }\n  .mobile-lg\\:margin-left-neg-205 {\n    margin-left: -1.25rem;\n  }\n  .mobile-lg\\:margin-x-neg-3 {\n    margin-left: -1.5rem;\n    margin-right: -1.5rem;\n  }\n  .mobile-lg\\:margin-right-neg-3 {\n    margin-right: -1.5rem;\n  }\n  .mobile-lg\\:margin-left-neg-3 {\n    margin-left: -1.5rem;\n  }\n  .mobile-lg\\:margin-x-neg-4 {\n    margin-left: -2rem;\n    margin-right: -2rem;\n  }\n  .mobile-lg\\:margin-right-neg-4 {\n    margin-right: -2rem;\n  }\n  .mobile-lg\\:margin-left-neg-4 {\n    margin-left: -2rem;\n  }\n  .mobile-lg\\:margin-x-neg-5 {\n    margin-left: -2.5rem;\n    margin-right: -2.5rem;\n  }\n  .mobile-lg\\:margin-right-neg-5 {\n    margin-right: -2.5rem;\n  }\n  .mobile-lg\\:margin-left-neg-5 {\n    margin-left: -2.5rem;\n  }\n  .mobile-lg\\:margin-x-neg-6 {\n    margin-left: -3rem;\n    margin-right: -3rem;\n  }\n  .mobile-lg\\:margin-right-neg-6 {\n    margin-right: -3rem;\n  }\n  .mobile-lg\\:margin-left-neg-6 {\n    margin-left: -3rem;\n  }\n  .mobile-lg\\:margin-x-neg-7 {\n    margin-left: -3.5rem;\n    margin-right: -3.5rem;\n  }\n  .mobile-lg\\:margin-right-neg-7 {\n    margin-right: -3.5rem;\n  }\n  .mobile-lg\\:margin-left-neg-7 {\n    margin-left: -3.5rem;\n  }\n  .mobile-lg\\:margin-x-neg-8 {\n    margin-left: -4rem;\n    margin-right: -4rem;\n  }\n  .mobile-lg\\:margin-right-neg-8 {\n    margin-right: -4rem;\n  }\n  .mobile-lg\\:margin-left-neg-8 {\n    margin-left: -4rem;\n  }\n  .mobile-lg\\:margin-x-neg-9 {\n    margin-left: -4.5rem;\n    margin-right: -4.5rem;\n  }\n  .mobile-lg\\:margin-right-neg-9 {\n    margin-right: -4.5rem;\n  }\n  .mobile-lg\\:margin-left-neg-9 {\n    margin-left: -4.5rem;\n  }\n  .mobile-lg\\:margin-x-neg-10 {\n    margin-left: -5rem;\n    margin-right: -5rem;\n  }\n  .mobile-lg\\:margin-right-neg-10 {\n    margin-right: -5rem;\n  }\n  .mobile-lg\\:margin-left-neg-10 {\n    margin-left: -5rem;\n  }\n  .mobile-lg\\:margin-x-neg-15 {\n    margin-left: -7.5rem;\n    margin-right: -7.5rem;\n  }\n  .mobile-lg\\:margin-right-neg-15 {\n    margin-right: -7.5rem;\n  }\n  .mobile-lg\\:margin-left-neg-15 {\n    margin-left: -7.5rem;\n  }\n  .mobile-lg\\:margin-x-4 {\n    margin-left: 2rem;\n    margin-right: 2rem;\n  }\n  .mobile-lg\\:margin-right-4 {\n    margin-right: 2rem;\n  }\n  .mobile-lg\\:margin-left-4 {\n    margin-left: 2rem;\n  }\n  .mobile-lg\\:margin-x-5 {\n    margin-left: 2.5rem;\n    margin-right: 2.5rem;\n  }\n  .mobile-lg\\:margin-right-5 {\n    margin-right: 2.5rem;\n  }\n  .mobile-lg\\:margin-left-5 {\n    margin-left: 2.5rem;\n  }\n  .mobile-lg\\:margin-x-6 {\n    margin-left: 3rem;\n    margin-right: 3rem;\n  }\n  .mobile-lg\\:margin-right-6 {\n    margin-right: 3rem;\n  }\n  .mobile-lg\\:margin-left-6 {\n    margin-left: 3rem;\n  }\n  .mobile-lg\\:margin-x-7 {\n    margin-left: 3.5rem;\n    margin-right: 3.5rem;\n  }\n  .mobile-lg\\:margin-right-7 {\n    margin-right: 3.5rem;\n  }\n  .mobile-lg\\:margin-left-7 {\n    margin-left: 3.5rem;\n  }\n  .mobile-lg\\:margin-x-8 {\n    margin-left: 4rem;\n    margin-right: 4rem;\n  }\n  .mobile-lg\\:margin-right-8 {\n    margin-right: 4rem;\n  }\n  .mobile-lg\\:margin-left-8 {\n    margin-left: 4rem;\n  }\n  .mobile-lg\\:margin-x-9 {\n    margin-left: 4.5rem;\n    margin-right: 4.5rem;\n  }\n  .mobile-lg\\:margin-right-9 {\n    margin-right: 4.5rem;\n  }\n  .mobile-lg\\:margin-left-9 {\n    margin-left: 4.5rem;\n  }\n  .mobile-lg\\:margin-x-10 {\n    margin-left: 5rem;\n    margin-right: 5rem;\n  }\n  .mobile-lg\\:margin-right-10 {\n    margin-right: 5rem;\n  }\n  .mobile-lg\\:margin-left-10 {\n    margin-left: 5rem;\n  }\n  .mobile-lg\\:margin-x-15 {\n    margin-left: 7.5rem;\n    margin-right: 7.5rem;\n  }\n  .mobile-lg\\:margin-right-15 {\n    margin-right: 7.5rem;\n  }\n  .mobile-lg\\:margin-left-15 {\n    margin-left: 7.5rem;\n  }\n  .mobile-lg\\:margin-x-card {\n    margin-left: 10rem;\n    margin-right: 10rem;\n  }\n  .mobile-lg\\:margin-right-card {\n    margin-right: 10rem;\n  }\n  .mobile-lg\\:margin-left-card {\n    margin-left: 10rem;\n  }\n  .mobile-lg\\:margin-x-card-lg {\n    margin-left: 15rem;\n    margin-right: 15rem;\n  }\n  .mobile-lg\\:margin-right-card-lg {\n    margin-right: 15rem;\n  }\n  .mobile-lg\\:margin-left-card-lg {\n    margin-left: 15rem;\n  }\n  .mobile-lg\\:margin-x-mobile {\n    margin-left: 20rem;\n    margin-right: 20rem;\n  }\n  .mobile-lg\\:margin-right-mobile {\n    margin-right: 20rem;\n  }\n  .mobile-lg\\:margin-left-mobile {\n    margin-left: 20rem;\n  }\n  .mobile-lg\\:margin-x-05em {\n    margin-left: 0.5em;\n    margin-right: 0.5em;\n  }\n  .mobile-lg\\:margin-right-05em {\n    margin-right: 0.5em;\n  }\n  .mobile-lg\\:margin-left-05em {\n    margin-left: 0.5em;\n  }\n  .mobile-lg\\:margin-x-1em {\n    margin-left: 1em;\n    margin-right: 1em;\n  }\n  .mobile-lg\\:margin-right-1em {\n    margin-right: 1em;\n  }\n  .mobile-lg\\:margin-left-1em {\n    margin-left: 1em;\n  }\n  .mobile-lg\\:margin-x-105em {\n    margin-left: 1.5em;\n    margin-right: 1.5em;\n  }\n  .mobile-lg\\:margin-right-105em {\n    margin-right: 1.5em;\n  }\n  .mobile-lg\\:margin-left-105em {\n    margin-left: 1.5em;\n  }\n  .mobile-lg\\:margin-x-2em {\n    margin-left: 2em;\n    margin-right: 2em;\n  }\n  .mobile-lg\\:margin-right-2em {\n    margin-right: 2em;\n  }\n  .mobile-lg\\:margin-left-2em {\n    margin-left: 2em;\n  }\n  .mobile-lg\\:margin-x-0 {\n    margin-left: 0;\n    margin-right: 0;\n  }\n  .mobile-lg\\:margin-right-0 {\n    margin-right: 0;\n  }\n  .mobile-lg\\:margin-left-0 {\n    margin-left: 0;\n  }\n  .mobile-lg\\:margin-x-auto {\n    margin-left: auto;\n    margin-right: auto;\n  }\n  .mobile-lg\\:margin-right-auto {\n    margin-right: auto;\n  }\n  .mobile-lg\\:margin-left-auto {\n    margin-left: auto;\n  }\n  .mobile-lg\\:measure-1 {\n    max-width: 44ex;\n  }\n  .mobile-lg\\:measure-2 {\n    max-width: 60ex;\n  }\n  .mobile-lg\\:measure-3 {\n    max-width: 64ex;\n  }\n  .mobile-lg\\:measure-4 {\n    max-width: 68ex;\n  }\n  .mobile-lg\\:measure-5 {\n    max-width: 72ex;\n  }\n  .mobile-lg\\:measure-6 {\n    max-width: 88ex;\n  }\n  .mobile-lg\\:measure-none {\n    max-width: none;\n  }\n  .mobile-lg\\:order-first {\n    order: -1;\n  }\n  .mobile-lg\\:order-last {\n    order: 999;\n  }\n  .mobile-lg\\:order-initial {\n    order: initial;\n  }\n  .mobile-lg\\:order-0 {\n    order: 0;\n  }\n  .mobile-lg\\:order-1 {\n    order: 1;\n  }\n  .mobile-lg\\:order-2 {\n    order: 2;\n  }\n  .mobile-lg\\:order-3 {\n    order: 3;\n  }\n  .mobile-lg\\:order-4 {\n    order: 4;\n  }\n  .mobile-lg\\:order-5 {\n    order: 5;\n  }\n  .mobile-lg\\:order-6 {\n    order: 6;\n  }\n  .mobile-lg\\:order-7 {\n    order: 7;\n  }\n  .mobile-lg\\:order-8 {\n    order: 8;\n  }\n  .mobile-lg\\:order-9 {\n    order: 9;\n  }\n  .mobile-lg\\:order-10 {\n    order: 10;\n  }\n  .mobile-lg\\:order-11 {\n    order: 11;\n  }\n  .mobile-lg\\:padding-1px {\n    padding: 1px;\n  }\n  .mobile-lg\\:padding-y-1px {\n    padding-top: 1px;\n    padding-bottom: 1px;\n  }\n  .mobile-lg\\:padding-x-1px {\n    padding-left: 1px;\n    padding-right: 1px;\n  }\n  .mobile-lg\\:padding-top-1px {\n    padding-top: 1px;\n  }\n  .mobile-lg\\:padding-right-1px {\n    padding-right: 1px;\n  }\n  .mobile-lg\\:padding-bottom-1px {\n    padding-bottom: 1px;\n  }\n  .mobile-lg\\:padding-left-1px {\n    padding-left: 1px;\n  }\n  .mobile-lg\\:padding-2px {\n    padding: 2px;\n  }\n  .mobile-lg\\:padding-y-2px {\n    padding-top: 2px;\n    padding-bottom: 2px;\n  }\n  .mobile-lg\\:padding-x-2px {\n    padding-left: 2px;\n    padding-right: 2px;\n  }\n  .mobile-lg\\:padding-top-2px {\n    padding-top: 2px;\n  }\n  .mobile-lg\\:padding-right-2px {\n    padding-right: 2px;\n  }\n  .mobile-lg\\:padding-bottom-2px {\n    padding-bottom: 2px;\n  }\n  .mobile-lg\\:padding-left-2px {\n    padding-left: 2px;\n  }\n  .mobile-lg\\:padding-05 {\n    padding: 0.25rem;\n  }\n  .mobile-lg\\:padding-y-05 {\n    padding-top: 0.25rem;\n    padding-bottom: 0.25rem;\n  }\n  .mobile-lg\\:padding-x-05 {\n    padding-left: 0.25rem;\n    padding-right: 0.25rem;\n  }\n  .mobile-lg\\:padding-top-05 {\n    padding-top: 0.25rem;\n  }\n  .mobile-lg\\:padding-right-05 {\n    padding-right: 0.25rem;\n  }\n  .mobile-lg\\:padding-bottom-05 {\n    padding-bottom: 0.25rem;\n  }\n  .mobile-lg\\:padding-left-05 {\n    padding-left: 0.25rem;\n  }\n  .mobile-lg\\:padding-1 {\n    padding: 0.5rem;\n  }\n  .mobile-lg\\:padding-y-1 {\n    padding-top: 0.5rem;\n    padding-bottom: 0.5rem;\n  }\n  .mobile-lg\\:padding-x-1 {\n    padding-left: 0.5rem;\n    padding-right: 0.5rem;\n  }\n  .mobile-lg\\:padding-top-1 {\n    padding-top: 0.5rem;\n  }\n  .mobile-lg\\:padding-right-1 {\n    padding-right: 0.5rem;\n  }\n  .mobile-lg\\:padding-bottom-1 {\n    padding-bottom: 0.5rem;\n  }\n  .mobile-lg\\:padding-left-1 {\n    padding-left: 0.5rem;\n  }\n  .mobile-lg\\:padding-105 {\n    padding: 0.75rem;\n  }\n  .mobile-lg\\:padding-y-105 {\n    padding-top: 0.75rem;\n    padding-bottom: 0.75rem;\n  }\n  .mobile-lg\\:padding-x-105 {\n    padding-left: 0.75rem;\n    padding-right: 0.75rem;\n  }\n  .mobile-lg\\:padding-top-105 {\n    padding-top: 0.75rem;\n  }\n  .mobile-lg\\:padding-right-105 {\n    padding-right: 0.75rem;\n  }\n  .mobile-lg\\:padding-bottom-105 {\n    padding-bottom: 0.75rem;\n  }\n  .mobile-lg\\:padding-left-105 {\n    padding-left: 0.75rem;\n  }\n  .mobile-lg\\:padding-2 {\n    padding: 1rem;\n  }\n  .mobile-lg\\:padding-y-2 {\n    padding-top: 1rem;\n    padding-bottom: 1rem;\n  }\n  .mobile-lg\\:padding-x-2 {\n    padding-left: 1rem;\n    padding-right: 1rem;\n  }\n  .mobile-lg\\:padding-top-2 {\n    padding-top: 1rem;\n  }\n  .mobile-lg\\:padding-right-2 {\n    padding-right: 1rem;\n  }\n  .mobile-lg\\:padding-bottom-2 {\n    padding-bottom: 1rem;\n  }\n  .mobile-lg\\:padding-left-2 {\n    padding-left: 1rem;\n  }\n  .mobile-lg\\:padding-205 {\n    padding: 1.25rem;\n  }\n  .mobile-lg\\:padding-y-205 {\n    padding-top: 1.25rem;\n    padding-bottom: 1.25rem;\n  }\n  .mobile-lg\\:padding-x-205 {\n    padding-left: 1.25rem;\n    padding-right: 1.25rem;\n  }\n  .mobile-lg\\:padding-top-205 {\n    padding-top: 1.25rem;\n  }\n  .mobile-lg\\:padding-right-205 {\n    padding-right: 1.25rem;\n  }\n  .mobile-lg\\:padding-bottom-205 {\n    padding-bottom: 1.25rem;\n  }\n  .mobile-lg\\:padding-left-205 {\n    padding-left: 1.25rem;\n  }\n  .mobile-lg\\:padding-3 {\n    padding: 1.5rem;\n  }\n  .mobile-lg\\:padding-y-3 {\n    padding-top: 1.5rem;\n    padding-bottom: 1.5rem;\n  }\n  .mobile-lg\\:padding-x-3 {\n    padding-left: 1.5rem;\n    padding-right: 1.5rem;\n  }\n  .mobile-lg\\:padding-top-3 {\n    padding-top: 1.5rem;\n  }\n  .mobile-lg\\:padding-right-3 {\n    padding-right: 1.5rem;\n  }\n  .mobile-lg\\:padding-bottom-3 {\n    padding-bottom: 1.5rem;\n  }\n  .mobile-lg\\:padding-left-3 {\n    padding-left: 1.5rem;\n  }\n  .mobile-lg\\:padding-4 {\n    padding: 2rem;\n  }\n  .mobile-lg\\:padding-y-4 {\n    padding-top: 2rem;\n    padding-bottom: 2rem;\n  }\n  .mobile-lg\\:padding-x-4 {\n    padding-left: 2rem;\n    padding-right: 2rem;\n  }\n  .mobile-lg\\:padding-top-4 {\n    padding-top: 2rem;\n  }\n  .mobile-lg\\:padding-right-4 {\n    padding-right: 2rem;\n  }\n  .mobile-lg\\:padding-bottom-4 {\n    padding-bottom: 2rem;\n  }\n  .mobile-lg\\:padding-left-4 {\n    padding-left: 2rem;\n  }\n  .mobile-lg\\:padding-5 {\n    padding: 2.5rem;\n  }\n  .mobile-lg\\:padding-y-5 {\n    padding-top: 2.5rem;\n    padding-bottom: 2.5rem;\n  }\n  .mobile-lg\\:padding-x-5 {\n    padding-left: 2.5rem;\n    padding-right: 2.5rem;\n  }\n  .mobile-lg\\:padding-top-5 {\n    padding-top: 2.5rem;\n  }\n  .mobile-lg\\:padding-right-5 {\n    padding-right: 2.5rem;\n  }\n  .mobile-lg\\:padding-bottom-5 {\n    padding-bottom: 2.5rem;\n  }\n  .mobile-lg\\:padding-left-5 {\n    padding-left: 2.5rem;\n  }\n  .mobile-lg\\:padding-6 {\n    padding: 3rem;\n  }\n  .mobile-lg\\:padding-y-6 {\n    padding-top: 3rem;\n    padding-bottom: 3rem;\n  }\n  .mobile-lg\\:padding-x-6 {\n    padding-left: 3rem;\n    padding-right: 3rem;\n  }\n  .mobile-lg\\:padding-top-6 {\n    padding-top: 3rem;\n  }\n  .mobile-lg\\:padding-right-6 {\n    padding-right: 3rem;\n  }\n  .mobile-lg\\:padding-bottom-6 {\n    padding-bottom: 3rem;\n  }\n  .mobile-lg\\:padding-left-6 {\n    padding-left: 3rem;\n  }\n  .mobile-lg\\:padding-7 {\n    padding: 3.5rem;\n  }\n  .mobile-lg\\:padding-y-7 {\n    padding-top: 3.5rem;\n    padding-bottom: 3.5rem;\n  }\n  .mobile-lg\\:padding-x-7 {\n    padding-left: 3.5rem;\n    padding-right: 3.5rem;\n  }\n  .mobile-lg\\:padding-top-7 {\n    padding-top: 3.5rem;\n  }\n  .mobile-lg\\:padding-right-7 {\n    padding-right: 3.5rem;\n  }\n  .mobile-lg\\:padding-bottom-7 {\n    padding-bottom: 3.5rem;\n  }\n  .mobile-lg\\:padding-left-7 {\n    padding-left: 3.5rem;\n  }\n  .mobile-lg\\:padding-8 {\n    padding: 4rem;\n  }\n  .mobile-lg\\:padding-y-8 {\n    padding-top: 4rem;\n    padding-bottom: 4rem;\n  }\n  .mobile-lg\\:padding-x-8 {\n    padding-left: 4rem;\n    padding-right: 4rem;\n  }\n  .mobile-lg\\:padding-top-8 {\n    padding-top: 4rem;\n  }\n  .mobile-lg\\:padding-right-8 {\n    padding-right: 4rem;\n  }\n  .mobile-lg\\:padding-bottom-8 {\n    padding-bottom: 4rem;\n  }\n  .mobile-lg\\:padding-left-8 {\n    padding-left: 4rem;\n  }\n  .mobile-lg\\:padding-9 {\n    padding: 4.5rem;\n  }\n  .mobile-lg\\:padding-y-9 {\n    padding-top: 4.5rem;\n    padding-bottom: 4.5rem;\n  }\n  .mobile-lg\\:padding-x-9 {\n    padding-left: 4.5rem;\n    padding-right: 4.5rem;\n  }\n  .mobile-lg\\:padding-top-9 {\n    padding-top: 4.5rem;\n  }\n  .mobile-lg\\:padding-right-9 {\n    padding-right: 4.5rem;\n  }\n  .mobile-lg\\:padding-bottom-9 {\n    padding-bottom: 4.5rem;\n  }\n  .mobile-lg\\:padding-left-9 {\n    padding-left: 4.5rem;\n  }\n  .mobile-lg\\:padding-10 {\n    padding: 5rem;\n  }\n  .mobile-lg\\:padding-y-10 {\n    padding-top: 5rem;\n    padding-bottom: 5rem;\n  }\n  .mobile-lg\\:padding-x-10 {\n    padding-left: 5rem;\n    padding-right: 5rem;\n  }\n  .mobile-lg\\:padding-top-10 {\n    padding-top: 5rem;\n  }\n  .mobile-lg\\:padding-right-10 {\n    padding-right: 5rem;\n  }\n  .mobile-lg\\:padding-bottom-10 {\n    padding-bottom: 5rem;\n  }\n  .mobile-lg\\:padding-left-10 {\n    padding-left: 5rem;\n  }\n  .mobile-lg\\:padding-15 {\n    padding: 7.5rem;\n  }\n  .mobile-lg\\:padding-y-15 {\n    padding-top: 7.5rem;\n    padding-bottom: 7.5rem;\n  }\n  .mobile-lg\\:padding-x-15 {\n    padding-left: 7.5rem;\n    padding-right: 7.5rem;\n  }\n  .mobile-lg\\:padding-top-15 {\n    padding-top: 7.5rem;\n  }\n  .mobile-lg\\:padding-right-15 {\n    padding-right: 7.5rem;\n  }\n  .mobile-lg\\:padding-bottom-15 {\n    padding-bottom: 7.5rem;\n  }\n  .mobile-lg\\:padding-left-15 {\n    padding-left: 7.5rem;\n  }\n  .mobile-lg\\:padding-0 {\n    padding: 0;\n  }\n  .mobile-lg\\:padding-y-0 {\n    padding-top: 0;\n    padding-bottom: 0;\n  }\n  .mobile-lg\\:padding-x-0 {\n    padding-left: 0;\n    padding-right: 0;\n  }\n  .mobile-lg\\:padding-top-0 {\n    padding-top: 0;\n  }\n  .mobile-lg\\:padding-right-0 {\n    padding-right: 0;\n  }\n  .mobile-lg\\:padding-bottom-0 {\n    padding-bottom: 0;\n  }\n  .mobile-lg\\:padding-left-0 {\n    padding-left: 0;\n  }\n  .mobile-lg\\:width-1px {\n    width: 1px;\n  }\n  .mobile-lg\\:width-2px {\n    width: 2px;\n  }\n  .mobile-lg\\:width-05 {\n    width: 0.25rem;\n  }\n  .mobile-lg\\:width-1 {\n    width: 0.5rem;\n  }\n  .mobile-lg\\:width-105 {\n    width: 0.75rem;\n  }\n  .mobile-lg\\:width-2 {\n    width: 1rem;\n  }\n  .mobile-lg\\:width-205 {\n    width: 1.25rem;\n  }\n  .mobile-lg\\:width-3 {\n    width: 1.5rem;\n  }\n  .mobile-lg\\:width-4 {\n    width: 2rem;\n  }\n  .mobile-lg\\:width-5 {\n    width: 2.5rem;\n  }\n  .mobile-lg\\:width-6 {\n    width: 3rem;\n  }\n  .mobile-lg\\:width-7 {\n    width: 3.5rem;\n  }\n  .mobile-lg\\:width-8 {\n    width: 4rem;\n  }\n  .mobile-lg\\:width-9 {\n    width: 4.5rem;\n  }\n  .mobile-lg\\:width-10 {\n    width: 5rem;\n  }\n  .mobile-lg\\:width-15 {\n    width: 7.5rem;\n  }\n  .mobile-lg\\:width-card {\n    width: 10rem;\n  }\n  .mobile-lg\\:width-card-lg {\n    width: 15rem;\n  }\n  .mobile-lg\\:width-mobile {\n    width: 20rem;\n  }\n  .mobile-lg\\:width-mobile-lg {\n    width: 30rem;\n  }\n  .mobile-lg\\:width-tablet {\n    width: 40rem;\n  }\n  .mobile-lg\\:width-tablet-lg {\n    width: 55rem;\n  }\n  .mobile-lg\\:width-desktop {\n    width: 64rem;\n  }\n  .mobile-lg\\:width-desktop-lg {\n    width: 75rem;\n  }\n  .mobile-lg\\:width-widescreen {\n    width: 87.5rem;\n  }\n  .mobile-lg\\:width-0 {\n    width: 0;\n  }\n  .mobile-lg\\:width-full {\n    width: 100%;\n  }\n  .mobile-lg\\:width-auto {\n    width: auto;\n  }\n}\n@media all and (min-width: 40em) {\n  .tablet\\:border-1px {\n    border: 1px solid;\n  }\n  .tablet\\:hover\\:border-1px:hover {\n    border: 1px solid;\n  }\n  .tablet\\:border-y-1px {\n    border-top: 1px solid;\n    border-bottom: 1px solid;\n  }\n  .tablet\\:hover\\:border-y-1px:hover {\n    border-top: 1px solid;\n    border-bottom: 1px solid;\n  }\n  .tablet\\:border-x-1px {\n    border-left: 1px solid;\n    border-right: 1px solid;\n  }\n  .tablet\\:hover\\:border-x-1px:hover {\n    border-left: 1px solid;\n    border-right: 1px solid;\n  }\n  .tablet\\:border-top-1px {\n    border-top: 1px solid;\n  }\n  .tablet\\:hover\\:border-top-1px:hover {\n    border-top: 1px solid;\n  }\n  .tablet\\:border-right-1px {\n    border-right: 1px solid;\n  }\n  .tablet\\:hover\\:border-right-1px:hover {\n    border-right: 1px solid;\n  }\n  .tablet\\:border-bottom-1px {\n    border-bottom: 1px solid;\n  }\n  .tablet\\:hover\\:border-bottom-1px:hover {\n    border-bottom: 1px solid;\n  }\n  .tablet\\:border-left-1px {\n    border-left: 1px solid;\n  }\n  .tablet\\:hover\\:border-left-1px:hover {\n    border-left: 1px solid;\n  }\n  .tablet\\:border-2px {\n    border: 2px solid;\n  }\n  .tablet\\:hover\\:border-2px:hover {\n    border: 2px solid;\n  }\n  .tablet\\:border-y-2px {\n    border-top: 2px solid;\n    border-bottom: 2px solid;\n  }\n  .tablet\\:hover\\:border-y-2px:hover {\n    border-top: 2px solid;\n    border-bottom: 2px solid;\n  }\n  .tablet\\:border-x-2px {\n    border-left: 2px solid;\n    border-right: 2px solid;\n  }\n  .tablet\\:hover\\:border-x-2px:hover {\n    border-left: 2px solid;\n    border-right: 2px solid;\n  }\n  .tablet\\:border-top-2px {\n    border-top: 2px solid;\n  }\n  .tablet\\:hover\\:border-top-2px:hover {\n    border-top: 2px solid;\n  }\n  .tablet\\:border-right-2px {\n    border-right: 2px solid;\n  }\n  .tablet\\:hover\\:border-right-2px:hover {\n    border-right: 2px solid;\n  }\n  .tablet\\:border-bottom-2px {\n    border-bottom: 2px solid;\n  }\n  .tablet\\:hover\\:border-bottom-2px:hover {\n    border-bottom: 2px solid;\n  }\n  .tablet\\:border-left-2px {\n    border-left: 2px solid;\n  }\n  .tablet\\:hover\\:border-left-2px:hover {\n    border-left: 2px solid;\n  }\n  .tablet\\:border-05 {\n    border: 0.25rem solid;\n  }\n  .tablet\\:hover\\:border-05:hover {\n    border: 0.25rem solid;\n  }\n  .tablet\\:border-y-05 {\n    border-top: 0.25rem solid;\n    border-bottom: 0.25rem solid;\n  }\n  .tablet\\:hover\\:border-y-05:hover {\n    border-top: 0.25rem solid;\n    border-bottom: 0.25rem solid;\n  }\n  .tablet\\:border-x-05 {\n    border-left: 0.25rem solid;\n    border-right: 0.25rem solid;\n  }\n  .tablet\\:hover\\:border-x-05:hover {\n    border-left: 0.25rem solid;\n    border-right: 0.25rem solid;\n  }\n  .tablet\\:border-top-05 {\n    border-top: 0.25rem solid;\n  }\n  .tablet\\:hover\\:border-top-05:hover {\n    border-top: 0.25rem solid;\n  }\n  .tablet\\:border-right-05 {\n    border-right: 0.25rem solid;\n  }\n  .tablet\\:hover\\:border-right-05:hover {\n    border-right: 0.25rem solid;\n  }\n  .tablet\\:border-bottom-05 {\n    border-bottom: 0.25rem solid;\n  }\n  .tablet\\:hover\\:border-bottom-05:hover {\n    border-bottom: 0.25rem solid;\n  }\n  .tablet\\:border-left-05 {\n    border-left: 0.25rem solid;\n  }\n  .tablet\\:hover\\:border-left-05:hover {\n    border-left: 0.25rem solid;\n  }\n  .tablet\\:border-1 {\n    border: 0.5rem solid;\n  }\n  .tablet\\:hover\\:border-1:hover {\n    border: 0.5rem solid;\n  }\n  .tablet\\:border-y-1 {\n    border-top: 0.5rem solid;\n    border-bottom: 0.5rem solid;\n  }\n  .tablet\\:hover\\:border-y-1:hover {\n    border-top: 0.5rem solid;\n    border-bottom: 0.5rem solid;\n  }\n  .tablet\\:border-x-1 {\n    border-left: 0.5rem solid;\n    border-right: 0.5rem solid;\n  }\n  .tablet\\:hover\\:border-x-1:hover {\n    border-left: 0.5rem solid;\n    border-right: 0.5rem solid;\n  }\n  .tablet\\:border-top-1 {\n    border-top: 0.5rem solid;\n  }\n  .tablet\\:hover\\:border-top-1:hover {\n    border-top: 0.5rem solid;\n  }\n  .tablet\\:border-right-1 {\n    border-right: 0.5rem solid;\n  }\n  .tablet\\:hover\\:border-right-1:hover {\n    border-right: 0.5rem solid;\n  }\n  .tablet\\:border-bottom-1 {\n    border-bottom: 0.5rem solid;\n  }\n  .tablet\\:hover\\:border-bottom-1:hover {\n    border-bottom: 0.5rem solid;\n  }\n  .tablet\\:border-left-1 {\n    border-left: 0.5rem solid;\n  }\n  .tablet\\:hover\\:border-left-1:hover {\n    border-left: 0.5rem solid;\n  }\n  .tablet\\:border-105 {\n    border: 0.75rem solid;\n  }\n  .tablet\\:hover\\:border-105:hover {\n    border: 0.75rem solid;\n  }\n  .tablet\\:border-y-105 {\n    border-top: 0.75rem solid;\n    border-bottom: 0.75rem solid;\n  }\n  .tablet\\:hover\\:border-y-105:hover {\n    border-top: 0.75rem solid;\n    border-bottom: 0.75rem solid;\n  }\n  .tablet\\:border-x-105 {\n    border-left: 0.75rem solid;\n    border-right: 0.75rem solid;\n  }\n  .tablet\\:hover\\:border-x-105:hover {\n    border-left: 0.75rem solid;\n    border-right: 0.75rem solid;\n  }\n  .tablet\\:border-top-105 {\n    border-top: 0.75rem solid;\n  }\n  .tablet\\:hover\\:border-top-105:hover {\n    border-top: 0.75rem solid;\n  }\n  .tablet\\:border-right-105 {\n    border-right: 0.75rem solid;\n  }\n  .tablet\\:hover\\:border-right-105:hover {\n    border-right: 0.75rem solid;\n  }\n  .tablet\\:border-bottom-105 {\n    border-bottom: 0.75rem solid;\n  }\n  .tablet\\:hover\\:border-bottom-105:hover {\n    border-bottom: 0.75rem solid;\n  }\n  .tablet\\:border-left-105 {\n    border-left: 0.75rem solid;\n  }\n  .tablet\\:hover\\:border-left-105:hover {\n    border-left: 0.75rem solid;\n  }\n  .tablet\\:border-2 {\n    border: 1rem solid;\n  }\n  .tablet\\:hover\\:border-2:hover {\n    border: 1rem solid;\n  }\n  .tablet\\:border-y-2 {\n    border-top: 1rem solid;\n    border-bottom: 1rem solid;\n  }\n  .tablet\\:hover\\:border-y-2:hover {\n    border-top: 1rem solid;\n    border-bottom: 1rem solid;\n  }\n  .tablet\\:border-x-2 {\n    border-left: 1rem solid;\n    border-right: 1rem solid;\n  }\n  .tablet\\:hover\\:border-x-2:hover {\n    border-left: 1rem solid;\n    border-right: 1rem solid;\n  }\n  .tablet\\:border-top-2 {\n    border-top: 1rem solid;\n  }\n  .tablet\\:hover\\:border-top-2:hover {\n    border-top: 1rem solid;\n  }\n  .tablet\\:border-right-2 {\n    border-right: 1rem solid;\n  }\n  .tablet\\:hover\\:border-right-2:hover {\n    border-right: 1rem solid;\n  }\n  .tablet\\:border-bottom-2 {\n    border-bottom: 1rem solid;\n  }\n  .tablet\\:hover\\:border-bottom-2:hover {\n    border-bottom: 1rem solid;\n  }\n  .tablet\\:border-left-2 {\n    border-left: 1rem solid;\n  }\n  .tablet\\:hover\\:border-left-2:hover {\n    border-left: 1rem solid;\n  }\n  .tablet\\:border-205 {\n    border: 1.25rem solid;\n  }\n  .tablet\\:hover\\:border-205:hover {\n    border: 1.25rem solid;\n  }\n  .tablet\\:border-y-205 {\n    border-top: 1.25rem solid;\n    border-bottom: 1.25rem solid;\n  }\n  .tablet\\:hover\\:border-y-205:hover {\n    border-top: 1.25rem solid;\n    border-bottom: 1.25rem solid;\n  }\n  .tablet\\:border-x-205 {\n    border-left: 1.25rem solid;\n    border-right: 1.25rem solid;\n  }\n  .tablet\\:hover\\:border-x-205:hover {\n    border-left: 1.25rem solid;\n    border-right: 1.25rem solid;\n  }\n  .tablet\\:border-top-205 {\n    border-top: 1.25rem solid;\n  }\n  .tablet\\:hover\\:border-top-205:hover {\n    border-top: 1.25rem solid;\n  }\n  .tablet\\:border-right-205 {\n    border-right: 1.25rem solid;\n  }\n  .tablet\\:hover\\:border-right-205:hover {\n    border-right: 1.25rem solid;\n  }\n  .tablet\\:border-bottom-205 {\n    border-bottom: 1.25rem solid;\n  }\n  .tablet\\:hover\\:border-bottom-205:hover {\n    border-bottom: 1.25rem solid;\n  }\n  .tablet\\:border-left-205 {\n    border-left: 1.25rem solid;\n  }\n  .tablet\\:hover\\:border-left-205:hover {\n    border-left: 1.25rem solid;\n  }\n  .tablet\\:border-3 {\n    border: 1.5rem solid;\n  }\n  .tablet\\:hover\\:border-3:hover {\n    border: 1.5rem solid;\n  }\n  .tablet\\:border-y-3 {\n    border-top: 1.5rem solid;\n    border-bottom: 1.5rem solid;\n  }\n  .tablet\\:hover\\:border-y-3:hover {\n    border-top: 1.5rem solid;\n    border-bottom: 1.5rem solid;\n  }\n  .tablet\\:border-x-3 {\n    border-left: 1.5rem solid;\n    border-right: 1.5rem solid;\n  }\n  .tablet\\:hover\\:border-x-3:hover {\n    border-left: 1.5rem solid;\n    border-right: 1.5rem solid;\n  }\n  .tablet\\:border-top-3 {\n    border-top: 1.5rem solid;\n  }\n  .tablet\\:hover\\:border-top-3:hover {\n    border-top: 1.5rem solid;\n  }\n  .tablet\\:border-right-3 {\n    border-right: 1.5rem solid;\n  }\n  .tablet\\:hover\\:border-right-3:hover {\n    border-right: 1.5rem solid;\n  }\n  .tablet\\:border-bottom-3 {\n    border-bottom: 1.5rem solid;\n  }\n  .tablet\\:hover\\:border-bottom-3:hover {\n    border-bottom: 1.5rem solid;\n  }\n  .tablet\\:border-left-3 {\n    border-left: 1.5rem solid;\n  }\n  .tablet\\:hover\\:border-left-3:hover {\n    border-left: 1.5rem solid;\n  }\n  .tablet\\:border-0 {\n    border: 0 solid;\n  }\n  .tablet\\:hover\\:border-0:hover {\n    border: 0 solid;\n  }\n  .tablet\\:border-y-0 {\n    border-top: 0 solid;\n    border-bottom: 0 solid;\n  }\n  .tablet\\:hover\\:border-y-0:hover {\n    border-top: 0 solid;\n    border-bottom: 0 solid;\n  }\n  .tablet\\:border-x-0 {\n    border-left: 0 solid;\n    border-right: 0 solid;\n  }\n  .tablet\\:hover\\:border-x-0:hover {\n    border-left: 0 solid;\n    border-right: 0 solid;\n  }\n  .tablet\\:border-top-0 {\n    border-top: 0 solid;\n  }\n  .tablet\\:hover\\:border-top-0:hover {\n    border-top: 0 solid;\n  }\n  .tablet\\:border-right-0 {\n    border-right: 0 solid;\n  }\n  .tablet\\:hover\\:border-right-0:hover {\n    border-right: 0 solid;\n  }\n  .tablet\\:border-bottom-0 {\n    border-bottom: 0 solid;\n  }\n  .tablet\\:hover\\:border-bottom-0:hover {\n    border-bottom: 0 solid;\n  }\n  .tablet\\:border-left-0 {\n    border-left: 0 solid;\n  }\n  .tablet\\:hover\\:border-left-0:hover {\n    border-left: 0 solid;\n  }\n  .tablet\\:border {\n    border: 1px solid;\n  }\n  .tablet\\:hover\\:border:hover {\n    border: 1px solid;\n  }\n  .tablet\\:border-y {\n    border-top: 1px solid;\n    border-bottom: 1px solid;\n  }\n  .tablet\\:hover\\:border-y:hover {\n    border-top: 1px solid;\n    border-bottom: 1px solid;\n  }\n  .tablet\\:border-x {\n    border-left: 1px solid;\n    border-right: 1px solid;\n  }\n  .tablet\\:hover\\:border-x:hover {\n    border-left: 1px solid;\n    border-right: 1px solid;\n  }\n  .tablet\\:border-top {\n    border-top: 1px solid;\n  }\n  .tablet\\:hover\\:border-top:hover {\n    border-top: 1px solid;\n  }\n  .tablet\\:border-right {\n    border-right: 1px solid;\n  }\n  .tablet\\:hover\\:border-right:hover {\n    border-right: 1px solid;\n  }\n  .tablet\\:border-bottom {\n    border-bottom: 1px solid;\n  }\n  .tablet\\:hover\\:border-bottom:hover {\n    border-bottom: 1px solid;\n  }\n  .tablet\\:border-left {\n    border-left: 1px solid;\n  }\n  .tablet\\:hover\\:border-left:hover {\n    border-left: 1px solid;\n  }\n  .tablet\\:border-transparent {\n    border-color: transparent;\n  }\n  .tablet\\:hover\\:border-transparent:hover {\n    border-color: transparent;\n  }\n  .tablet\\:border-black {\n    border-color: black;\n  }\n  .tablet\\:hover\\:border-black:hover {\n    border-color: black;\n  }\n  .tablet\\:border-white {\n    border-color: white;\n  }\n  .tablet\\:hover\\:border-white:hover {\n    border-color: white;\n  }\n  .tablet\\:border-red {\n    border-color: #e52207;\n  }\n  .tablet\\:hover\\:border-red:hover {\n    border-color: #e52207;\n  }\n  .tablet\\:border-orange {\n    border-color: #e66f0e;\n  }\n  .tablet\\:hover\\:border-orange:hover {\n    border-color: #e66f0e;\n  }\n  .tablet\\:border-gold {\n    border-color: #ffbe2e;\n  }\n  .tablet\\:hover\\:border-gold:hover {\n    border-color: #ffbe2e;\n  }\n  .tablet\\:border-yellow {\n    border-color: #fee685;\n  }\n  .tablet\\:hover\\:border-yellow:hover {\n    border-color: #fee685;\n  }\n  .tablet\\:border-green {\n    border-color: #538200;\n  }\n  .tablet\\:hover\\:border-green:hover {\n    border-color: #538200;\n  }\n  .tablet\\:border-mint {\n    border-color: #04c585;\n  }\n  .tablet\\:hover\\:border-mint:hover {\n    border-color: #04c585;\n  }\n  .tablet\\:border-cyan {\n    border-color: #009ec1;\n  }\n  .tablet\\:hover\\:border-cyan:hover {\n    border-color: #009ec1;\n  }\n  .tablet\\:border-blue {\n    border-color: #0076d6;\n  }\n  .tablet\\:hover\\:border-blue:hover {\n    border-color: #0076d6;\n  }\n  .tablet\\:border-indigo {\n    border-color: #676cc8;\n  }\n  .tablet\\:hover\\:border-indigo:hover {\n    border-color: #676cc8;\n  }\n  .tablet\\:border-violet {\n    border-color: #8168b3;\n  }\n  .tablet\\:hover\\:border-violet:hover {\n    border-color: #8168b3;\n  }\n  .tablet\\:border-magenta {\n    border-color: #d72d79;\n  }\n  .tablet\\:hover\\:border-magenta:hover {\n    border-color: #d72d79;\n  }\n  .tablet\\:border-gray-5 {\n    border-color: #f0f0f0;\n  }\n  .tablet\\:hover\\:border-gray-5:hover {\n    border-color: #f0f0f0;\n  }\n  .tablet\\:border-gray-10 {\n    border-color: #e6e6e6;\n  }\n  .tablet\\:hover\\:border-gray-10:hover {\n    border-color: #e6e6e6;\n  }\n  .tablet\\:border-gray-30 {\n    border-color: #adadad;\n  }\n  .tablet\\:hover\\:border-gray-30:hover {\n    border-color: #adadad;\n  }\n  .tablet\\:border-gray-50 {\n    border-color: #757575;\n  }\n  .tablet\\:hover\\:border-gray-50:hover {\n    border-color: #757575;\n  }\n  .tablet\\:border-gray-70 {\n    border-color: #454545;\n  }\n  .tablet\\:hover\\:border-gray-70:hover {\n    border-color: #454545;\n  }\n  .tablet\\:border-gray-90 {\n    border-color: #1b1b1b;\n  }\n  .tablet\\:hover\\:border-gray-90:hover {\n    border-color: #1b1b1b;\n  }\n  .tablet\\:border-base-lightest {\n    border-color: #f0f0f0;\n  }\n  .tablet\\:hover\\:border-base-lightest:hover {\n    border-color: #f0f0f0;\n  }\n  .tablet\\:border-base-lighter {\n    border-color: #dfe1e2;\n  }\n  .tablet\\:hover\\:border-base-lighter:hover {\n    border-color: #dfe1e2;\n  }\n  .tablet\\:border-base-light {\n    border-color: #a9aeb1;\n  }\n  .tablet\\:hover\\:border-base-light:hover {\n    border-color: #a9aeb1;\n  }\n  .tablet\\:border-base {\n    border-color: #71767a;\n  }\n  .tablet\\:hover\\:border-base:hover {\n    border-color: #71767a;\n  }\n  .tablet\\:border-base-dark {\n    border-color: #565c65;\n  }\n  .tablet\\:hover\\:border-base-dark:hover {\n    border-color: #565c65;\n  }\n  .tablet\\:border-base-darker {\n    border-color: #3d4551;\n  }\n  .tablet\\:hover\\:border-base-darker:hover {\n    border-color: #3d4551;\n  }\n  .tablet\\:border-base-darkest {\n    border-color: #1b1b1b;\n  }\n  .tablet\\:hover\\:border-base-darkest:hover {\n    border-color: #1b1b1b;\n  }\n  .tablet\\:border-ink {\n    border-color: #1b1b1b;\n  }\n  .tablet\\:hover\\:border-ink:hover {\n    border-color: #1b1b1b;\n  }\n  .tablet\\:border-primary-lighter {\n    border-color: #d9e8f6;\n  }\n  .tablet\\:hover\\:border-primary-lighter:hover {\n    border-color: #d9e8f6;\n  }\n  .tablet\\:border-primary-light {\n    border-color: #73b3e7;\n  }\n  .tablet\\:hover\\:border-primary-light:hover {\n    border-color: #73b3e7;\n  }\n  .tablet\\:border-primary {\n    border-color: #005ea2;\n  }\n  .tablet\\:hover\\:border-primary:hover {\n    border-color: #005ea2;\n  }\n  .tablet\\:border-primary-vivid {\n    border-color: #0050d8;\n  }\n  .tablet\\:hover\\:border-primary-vivid:hover {\n    border-color: #0050d8;\n  }\n  .tablet\\:border-primary-dark {\n    border-color: #1a4480;\n  }\n  .tablet\\:hover\\:border-primary-dark:hover {\n    border-color: #1a4480;\n  }\n  .tablet\\:border-primary-darker {\n    border-color: #162e51;\n  }\n  .tablet\\:hover\\:border-primary-darker:hover {\n    border-color: #162e51;\n  }\n  .tablet\\:border-secondary-lighter {\n    border-color: #f3e1e4;\n  }\n  .tablet\\:hover\\:border-secondary-lighter:hover {\n    border-color: #f3e1e4;\n  }\n  .tablet\\:border-secondary-light {\n    border-color: #f2938c;\n  }\n  .tablet\\:hover\\:border-secondary-light:hover {\n    border-color: #f2938c;\n  }\n  .tablet\\:border-secondary {\n    border-color: #d83933;\n  }\n  .tablet\\:hover\\:border-secondary:hover {\n    border-color: #d83933;\n  }\n  .tablet\\:border-secondary-vivid {\n    border-color: #e41d3d;\n  }\n  .tablet\\:hover\\:border-secondary-vivid:hover {\n    border-color: #e41d3d;\n  }\n  .tablet\\:border-secondary-dark {\n    border-color: #b50909;\n  }\n  .tablet\\:hover\\:border-secondary-dark:hover {\n    border-color: #b50909;\n  }\n  .tablet\\:border-secondary-darker {\n    border-color: #8b0a03;\n  }\n  .tablet\\:hover\\:border-secondary-darker:hover {\n    border-color: #8b0a03;\n  }\n  .tablet\\:border-accent-warm-darker {\n    border-color: #775540;\n  }\n  .tablet\\:hover\\:border-accent-warm-darker:hover {\n    border-color: #775540;\n  }\n  .tablet\\:border-accent-warm-dark {\n    border-color: #c05600;\n  }\n  .tablet\\:hover\\:border-accent-warm-dark:hover {\n    border-color: #c05600;\n  }\n  .tablet\\:border-accent-warm {\n    border-color: #fa9441;\n  }\n  .tablet\\:hover\\:border-accent-warm:hover {\n    border-color: #fa9441;\n  }\n  .tablet\\:border-accent-warm-light {\n    border-color: #ffbc78;\n  }\n  .tablet\\:hover\\:border-accent-warm-light:hover {\n    border-color: #ffbc78;\n  }\n  .tablet\\:border-accent-warm-lighter {\n    border-color: #f2e4d4;\n  }\n  .tablet\\:hover\\:border-accent-warm-lighter:hover {\n    border-color: #f2e4d4;\n  }\n  .tablet\\:border-accent-cool-darker {\n    border-color: #07648d;\n  }\n  .tablet\\:hover\\:border-accent-cool-darker:hover {\n    border-color: #07648d;\n  }\n  .tablet\\:border-accent-cool-dark {\n    border-color: #28a0cb;\n  }\n  .tablet\\:hover\\:border-accent-cool-dark:hover {\n    border-color: #28a0cb;\n  }\n  .tablet\\:border-accent-cool {\n    border-color: #00bde3;\n  }\n  .tablet\\:hover\\:border-accent-cool:hover {\n    border-color: #00bde3;\n  }\n  .tablet\\:border-accent-cool-light {\n    border-color: #97d4ea;\n  }\n  .tablet\\:hover\\:border-accent-cool-light:hover {\n    border-color: #97d4ea;\n  }\n  .tablet\\:border-accent-cool-lighter {\n    border-color: #e1f3f8;\n  }\n  .tablet\\:hover\\:border-accent-cool-lighter:hover {\n    border-color: #e1f3f8;\n  }\n  .tablet\\:border-error-lighter {\n    border-color: #f4e3db;\n  }\n  .tablet\\:hover\\:border-error-lighter:hover {\n    border-color: #f4e3db;\n  }\n  .tablet\\:border-error-light {\n    border-color: #f39268;\n  }\n  .tablet\\:hover\\:border-error-light:hover {\n    border-color: #f39268;\n  }\n  .tablet\\:border-error {\n    border-color: #d54309;\n  }\n  .tablet\\:hover\\:border-error:hover {\n    border-color: #d54309;\n  }\n  .tablet\\:border-error-dark {\n    border-color: #b50909;\n  }\n  .tablet\\:hover\\:border-error-dark:hover {\n    border-color: #b50909;\n  }\n  .tablet\\:border-error-darker {\n    border-color: #6f3331;\n  }\n  .tablet\\:hover\\:border-error-darker:hover {\n    border-color: #6f3331;\n  }\n  .tablet\\:border-warning-lighter {\n    border-color: #faf3d1;\n  }\n  .tablet\\:hover\\:border-warning-lighter:hover {\n    border-color: #faf3d1;\n  }\n  .tablet\\:border-warning-light {\n    border-color: #fee685;\n  }\n  .tablet\\:hover\\:border-warning-light:hover {\n    border-color: #fee685;\n  }\n  .tablet\\:border-warning {\n    border-color: #ffbe2e;\n  }\n  .tablet\\:hover\\:border-warning:hover {\n    border-color: #ffbe2e;\n  }\n  .tablet\\:border-warning-dark {\n    border-color: #e5a000;\n  }\n  .tablet\\:hover\\:border-warning-dark:hover {\n    border-color: #e5a000;\n  }\n  .tablet\\:border-warning-darker {\n    border-color: #936f38;\n  }\n  .tablet\\:hover\\:border-warning-darker:hover {\n    border-color: #936f38;\n  }\n  .tablet\\:border-success-lighter {\n    border-color: #ecf3ec;\n  }\n  .tablet\\:hover\\:border-success-lighter:hover {\n    border-color: #ecf3ec;\n  }\n  .tablet\\:border-success-light {\n    border-color: #70e17b;\n  }\n  .tablet\\:hover\\:border-success-light:hover {\n    border-color: #70e17b;\n  }\n  .tablet\\:border-success {\n    border-color: #00a91c;\n  }\n  .tablet\\:hover\\:border-success:hover {\n    border-color: #00a91c;\n  }\n  .tablet\\:border-success-dark {\n    border-color: #008817;\n  }\n  .tablet\\:hover\\:border-success-dark:hover {\n    border-color: #008817;\n  }\n  .tablet\\:border-success-darker {\n    border-color: #216e1f;\n  }\n  .tablet\\:hover\\:border-success-darker:hover {\n    border-color: #216e1f;\n  }\n  .tablet\\:border-info-lighter {\n    border-color: #e7f6f8;\n  }\n  .tablet\\:hover\\:border-info-lighter:hover {\n    border-color: #e7f6f8;\n  }\n  .tablet\\:border-info-light {\n    border-color: #99deea;\n  }\n  .tablet\\:hover\\:border-info-light:hover {\n    border-color: #99deea;\n  }\n  .tablet\\:border-info {\n    border-color: #00bde3;\n  }\n  .tablet\\:hover\\:border-info:hover {\n    border-color: #00bde3;\n  }\n  .tablet\\:border-info-dark {\n    border-color: #009ec1;\n  }\n  .tablet\\:hover\\:border-info-dark:hover {\n    border-color: #009ec1;\n  }\n  .tablet\\:border-info-darker {\n    border-color: #2e6276;\n  }\n  .tablet\\:hover\\:border-info-darker:hover {\n    border-color: #2e6276;\n  }\n  .tablet\\:border-disabled-lighter {\n    border-color: #c9c9c9;\n  }\n  .tablet\\:hover\\:border-disabled-lighter:hover {\n    border-color: #c9c9c9;\n  }\n  .tablet\\:border-disabled-light {\n    border-color: #919191;\n  }\n  .tablet\\:hover\\:border-disabled-light:hover {\n    border-color: #919191;\n  }\n  .tablet\\:border-disabled {\n    border-color: #757575;\n  }\n  .tablet\\:hover\\:border-disabled:hover {\n    border-color: #757575;\n  }\n  .tablet\\:border-disabled-dark {\n    border-color: #454545;\n  }\n  .tablet\\:hover\\:border-disabled-dark:hover {\n    border-color: #454545;\n  }\n  .tablet\\:border-disabled-darker {\n    border-color: #1b1b1b;\n  }\n  .tablet\\:hover\\:border-disabled-darker:hover {\n    border-color: #1b1b1b;\n  }\n  .tablet\\:border-emergency {\n    border-color: #9c3d10;\n  }\n  .tablet\\:hover\\:border-emergency:hover {\n    border-color: #9c3d10;\n  }\n  .tablet\\:border-emergency-dark {\n    border-color: #332d29;\n  }\n  .tablet\\:hover\\:border-emergency-dark:hover {\n    border-color: #332d29;\n  }\n  .tablet\\:radius-0 {\n    border-radius: 0;\n  }\n  .tablet\\:radius-top-0 {\n    border-top-left-radius: 0;\n    border-top-right-radius: 0;\n  }\n  .tablet\\:radius-right-0 {\n    border-top-right-radius: 0;\n    border-bottom-right-radius: 0;\n  }\n  .tablet\\:radius-bottom-0 {\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n  }\n  .tablet\\:radius-left-0 {\n    border-top-left-radius: 0;\n    border-bottom-left-radius: 0;\n  }\n  .tablet\\:radius-sm {\n    border-radius: 2px;\n  }\n  .tablet\\:radius-top-sm {\n    border-top-left-radius: 2px;\n    border-top-right-radius: 2px;\n  }\n  .tablet\\:radius-right-sm {\n    border-top-right-radius: 2px;\n    border-bottom-right-radius: 2px;\n  }\n  .tablet\\:radius-bottom-sm {\n    border-bottom-left-radius: 2px;\n    border-bottom-right-radius: 2px;\n  }\n  .tablet\\:radius-left-sm {\n    border-top-left-radius: 2px;\n    border-bottom-left-radius: 2px;\n  }\n  .tablet\\:radius-md {\n    border-radius: 0.25rem;\n  }\n  .tablet\\:radius-top-md {\n    border-top-left-radius: 0.25rem;\n    border-top-right-radius: 0.25rem;\n  }\n  .tablet\\:radius-right-md {\n    border-top-right-radius: 0.25rem;\n    border-bottom-right-radius: 0.25rem;\n  }\n  .tablet\\:radius-bottom-md {\n    border-bottom-left-radius: 0.25rem;\n    border-bottom-right-radius: 0.25rem;\n  }\n  .tablet\\:radius-left-md {\n    border-top-left-radius: 0.25rem;\n    border-bottom-left-radius: 0.25rem;\n  }\n  .tablet\\:radius-lg {\n    border-radius: 0.5rem;\n  }\n  .tablet\\:radius-top-lg {\n    border-top-left-radius: 0.5rem;\n    border-top-right-radius: 0.5rem;\n  }\n  .tablet\\:radius-right-lg {\n    border-top-right-radius: 0.5rem;\n    border-bottom-right-radius: 0.5rem;\n  }\n  .tablet\\:radius-bottom-lg {\n    border-bottom-left-radius: 0.5rem;\n    border-bottom-right-radius: 0.5rem;\n  }\n  .tablet\\:radius-left-lg {\n    border-top-left-radius: 0.5rem;\n    border-bottom-left-radius: 0.5rem;\n  }\n  .tablet\\:radius-pill {\n    border-radius: 99rem;\n  }\n  .tablet\\:radius-top-pill {\n    border-top-left-radius: 99rem;\n    border-top-right-radius: 99rem;\n  }\n  .tablet\\:radius-right-pill {\n    border-top-right-radius: 99rem;\n    border-bottom-right-radius: 99rem;\n  }\n  .tablet\\:radius-bottom-pill {\n    border-bottom-left-radius: 99rem;\n    border-bottom-right-radius: 99rem;\n  }\n  .tablet\\:radius-left-pill {\n    border-top-left-radius: 99rem;\n    border-bottom-left-radius: 99rem;\n  }\n  .tablet\\:display-block {\n    display: block;\n  }\n  .tablet\\:display-flex {\n    display: flex;\n  }\n  .tablet\\:display-none {\n    display: none;\n  }\n  .tablet\\:display-inline {\n    display: inline;\n  }\n  .tablet\\:display-inline-block {\n    display: inline-block;\n  }\n  .tablet\\:display-inline-flex {\n    display: inline-flex;\n  }\n  .tablet\\:display-table {\n    display: table;\n  }\n  .tablet\\:display-table-cell {\n    display: table-cell;\n  }\n  .tablet\\:display-table-row {\n    display: table-row;\n  }\n  .tablet\\:font-mono-3xs {\n    font-size: 0.77rem;\n  }\n  .tablet\\:font-mono-2xs {\n    font-size: 0.83rem;\n  }\n  .tablet\\:font-mono-xs {\n    font-size: 0.89rem;\n  }\n  .tablet\\:font-mono-sm {\n    font-size: 0.95rem;\n  }\n  .tablet\\:font-mono-md {\n    font-size: 1.01rem;\n  }\n  .tablet\\:font-mono-lg {\n    font-size: 1.31rem;\n  }\n  .tablet\\:font-mono-xl {\n    font-size: 1.91rem;\n  }\n  .tablet\\:font-mono-2xl {\n    font-size: 2.38rem;\n  }\n  .tablet\\:font-mono-3xl {\n    font-size: 2.86rem;\n  }\n  .tablet\\:font-sans-3xs {\n    font-size: 0.87rem;\n  }\n  .tablet\\:font-sans-2xs {\n    font-size: 0.93rem;\n  }\n  .tablet\\:font-sans-xs {\n    font-size: 1rem;\n  }\n  .tablet\\:font-sans-sm {\n    font-size: 1.06rem;\n  }\n  .tablet\\:font-sans-md {\n    font-size: 1.13rem;\n  }\n  .tablet\\:font-sans-lg {\n    font-size: 1.46rem;\n  }\n  .tablet\\:font-sans-xl {\n    font-size: 2.13rem;\n  }\n  .tablet\\:font-sans-2xl {\n    font-size: 2.66rem;\n  }\n  .tablet\\:font-sans-3xl {\n    font-size: 3.19rem;\n  }\n  .tablet\\:font-serif-3xs {\n    font-size: 0.79rem;\n  }\n  .tablet\\:font-serif-2xs {\n    font-size: 0.85rem;\n  }\n  .tablet\\:font-serif-xs {\n    font-size: 0.91rem;\n  }\n  .tablet\\:font-serif-sm {\n    font-size: 0.98rem;\n  }\n  .tablet\\:font-serif-md {\n    font-size: 1.04rem;\n  }\n  .tablet\\:font-serif-lg {\n    font-size: 1.34rem;\n  }\n  .tablet\\:font-serif-xl {\n    font-size: 1.95rem;\n  }\n  .tablet\\:font-serif-2xl {\n    font-size: 2.44rem;\n  }\n  .tablet\\:font-serif-3xl {\n    font-size: 2.93rem;\n  }\n  .tablet\\:font-heading-3xs {\n    font-size: 0.79rem;\n  }\n  .tablet\\:font-heading-2xs {\n    font-size: 0.85rem;\n  }\n  .tablet\\:font-heading-xs {\n    font-size: 0.91rem;\n  }\n  .tablet\\:font-heading-sm {\n    font-size: 0.98rem;\n  }\n  .tablet\\:font-heading-md {\n    font-size: 1.04rem;\n  }\n  .tablet\\:font-heading-lg {\n    font-size: 1.34rem;\n  }\n  .tablet\\:font-heading-xl {\n    font-size: 1.95rem;\n  }\n  .tablet\\:font-heading-2xl {\n    font-size: 2.44rem;\n  }\n  .tablet\\:font-heading-3xl {\n    font-size: 2.93rem;\n  }\n  .tablet\\:font-body-3xs {\n    font-size: 0.87rem;\n  }\n  .tablet\\:font-body-2xs {\n    font-size: 0.93rem;\n  }\n  .tablet\\:font-body-xs {\n    font-size: 1rem;\n  }\n  .tablet\\:font-body-sm {\n    font-size: 1.06rem;\n  }\n  .tablet\\:font-body-md {\n    font-size: 1.13rem;\n  }\n  .tablet\\:font-body-lg {\n    font-size: 1.46rem;\n  }\n  .tablet\\:font-body-xl {\n    font-size: 2.13rem;\n  }\n  .tablet\\:font-body-2xl {\n    font-size: 2.66rem;\n  }\n  .tablet\\:font-body-3xl {\n    font-size: 3.19rem;\n  }\n  .tablet\\:font-code-3xs {\n    font-size: 0.77rem;\n  }\n  .tablet\\:font-code-2xs {\n    font-size: 0.83rem;\n  }\n  .tablet\\:font-code-xs {\n    font-size: 0.89rem;\n  }\n  .tablet\\:font-code-sm {\n    font-size: 0.95rem;\n  }\n  .tablet\\:font-code-md {\n    font-size: 1.01rem;\n  }\n  .tablet\\:font-code-lg {\n    font-size: 1.31rem;\n  }\n  .tablet\\:font-code-xl {\n    font-size: 1.91rem;\n  }\n  .tablet\\:font-code-2xl {\n    font-size: 2.38rem;\n  }\n  .tablet\\:font-code-3xl {\n    font-size: 2.86rem;\n  }\n  .tablet\\:font-alt-3xs {\n    font-size: 0.79rem;\n  }\n  .tablet\\:font-alt-2xs {\n    font-size: 0.85rem;\n  }\n  .tablet\\:font-alt-xs {\n    font-size: 0.91rem;\n  }\n  .tablet\\:font-alt-sm {\n    font-size: 0.98rem;\n  }\n  .tablet\\:font-alt-md {\n    font-size: 1.04rem;\n  }\n  .tablet\\:font-alt-lg {\n    font-size: 1.34rem;\n  }\n  .tablet\\:font-alt-xl {\n    font-size: 1.95rem;\n  }\n  .tablet\\:font-alt-2xl {\n    font-size: 2.44rem;\n  }\n  .tablet\\:font-alt-3xl {\n    font-size: 2.93rem;\n  }\n  .tablet\\:font-ui-3xs {\n    font-size: 0.87rem;\n  }\n  .tablet\\:font-ui-2xs {\n    font-size: 0.93rem;\n  }\n  .tablet\\:font-ui-xs {\n    font-size: 1rem;\n  }\n  .tablet\\:font-ui-sm {\n    font-size: 1.06rem;\n  }\n  .tablet\\:font-ui-md {\n    font-size: 1.13rem;\n  }\n  .tablet\\:font-ui-lg {\n    font-size: 1.46rem;\n  }\n  .tablet\\:font-ui-xl {\n    font-size: 2.13rem;\n  }\n  .tablet\\:font-ui-2xl {\n    font-size: 2.66rem;\n  }\n  .tablet\\:font-ui-3xl {\n    font-size: 3.19rem;\n  }\n  .tablet\\:text-light {\n    font-weight: 300;\n  }\n  .tablet\\:text-normal {\n    font-weight: normal;\n  }\n  .tablet\\:text-bold {\n    font-weight: 700;\n  }\n  .tablet\\:flex-justify-center {\n    justify-content: center;\n  }\n  .tablet\\:flex-justify-start {\n    justify-content: flex-start;\n  }\n  .tablet\\:flex-justify-end {\n    justify-content: flex-end;\n  }\n  .tablet\\:flex-justify {\n    justify-content: space-between;\n  }\n  .tablet\\:line-height-sans-1 {\n    line-height: 0.9;\n  }\n  .tablet\\:line-height-sans-2 {\n    line-height: 1.1;\n  }\n  .tablet\\:line-height-sans-3 {\n    line-height: 1.3;\n  }\n  .tablet\\:line-height-sans-4 {\n    line-height: 1.4;\n  }\n  .tablet\\:line-height-sans-5 {\n    line-height: 1.5;\n  }\n  .tablet\\:line-height-sans-6 {\n    line-height: 1.6;\n  }\n  .tablet\\:line-height-serif-1 {\n    line-height: 1;\n  }\n  .tablet\\:line-height-serif-2 {\n    line-height: 1.2;\n  }\n  .tablet\\:line-height-serif-3 {\n    line-height: 1.4;\n  }\n  .tablet\\:line-height-serif-4 {\n    line-height: 1.5;\n  }\n  .tablet\\:line-height-serif-5 {\n    line-height: 1.7;\n  }\n  .tablet\\:line-height-serif-6 {\n    line-height: 1.8;\n  }\n  .tablet\\:line-height-mono-1 {\n    line-height: 1;\n  }\n  .tablet\\:line-height-mono-2 {\n    line-height: 1.3;\n  }\n  .tablet\\:line-height-mono-3 {\n    line-height: 1.4;\n  }\n  .tablet\\:line-height-mono-4 {\n    line-height: 1.6;\n  }\n  .tablet\\:line-height-mono-5 {\n    line-height: 1.7;\n  }\n  .tablet\\:line-height-mono-6 {\n    line-height: 1.8;\n  }\n  .tablet\\:line-height-heading-1 {\n    line-height: 1;\n  }\n  .tablet\\:line-height-heading-2 {\n    line-height: 1.2;\n  }\n  .tablet\\:line-height-heading-3 {\n    line-height: 1.4;\n  }\n  .tablet\\:line-height-heading-4 {\n    line-height: 1.5;\n  }\n  .tablet\\:line-height-heading-5 {\n    line-height: 1.7;\n  }\n  .tablet\\:line-height-heading-6 {\n    line-height: 1.8;\n  }\n  .tablet\\:line-height-ui-1 {\n    line-height: 0.9;\n  }\n  .tablet\\:line-height-ui-2 {\n    line-height: 1.1;\n  }\n  .tablet\\:line-height-ui-3 {\n    line-height: 1.3;\n  }\n  .tablet\\:line-height-ui-4 {\n    line-height: 1.4;\n  }\n  .tablet\\:line-height-ui-5 {\n    line-height: 1.5;\n  }\n  .tablet\\:line-height-ui-6 {\n    line-height: 1.6;\n  }\n  .tablet\\:line-height-body-1 {\n    line-height: 0.9;\n  }\n  .tablet\\:line-height-body-2 {\n    line-height: 1.1;\n  }\n  .tablet\\:line-height-body-3 {\n    line-height: 1.3;\n  }\n  .tablet\\:line-height-body-4 {\n    line-height: 1.4;\n  }\n  .tablet\\:line-height-body-5 {\n    line-height: 1.5;\n  }\n  .tablet\\:line-height-body-6 {\n    line-height: 1.6;\n  }\n  .tablet\\:line-height-code-1 {\n    line-height: 1;\n  }\n  .tablet\\:line-height-code-2 {\n    line-height: 1.3;\n  }\n  .tablet\\:line-height-code-3 {\n    line-height: 1.4;\n  }\n  .tablet\\:line-height-code-4 {\n    line-height: 1.6;\n  }\n  .tablet\\:line-height-code-5 {\n    line-height: 1.7;\n  }\n  .tablet\\:line-height-code-6 {\n    line-height: 1.8;\n  }\n  .tablet\\:line-height-alt-1 {\n    line-height: 1;\n  }\n  .tablet\\:line-height-alt-2 {\n    line-height: 1.2;\n  }\n  .tablet\\:line-height-alt-3 {\n    line-height: 1.4;\n  }\n  .tablet\\:line-height-alt-4 {\n    line-height: 1.5;\n  }\n  .tablet\\:line-height-alt-5 {\n    line-height: 1.7;\n  }\n  .tablet\\:line-height-alt-6 {\n    line-height: 1.8;\n  }\n  .tablet\\:margin-neg-1px {\n    margin: -1px;\n  }\n  .tablet\\:margin-neg-2px {\n    margin: -2px;\n  }\n  .tablet\\:margin-neg-05 {\n    margin: -0.25rem;\n  }\n  .tablet\\:margin-neg-1 {\n    margin: -0.5rem;\n  }\n  .tablet\\:margin-neg-105 {\n    margin: -0.75rem;\n  }\n  .tablet\\:margin-neg-2 {\n    margin: -1rem;\n  }\n  .tablet\\:margin-neg-205 {\n    margin: -1.25rem;\n  }\n  .tablet\\:margin-neg-3 {\n    margin: -1.5rem;\n  }\n  .tablet\\:margin-1px {\n    margin: 1px;\n  }\n  .tablet\\:margin-2px {\n    margin: 2px;\n  }\n  .tablet\\:margin-05 {\n    margin: 0.25rem;\n  }\n  .tablet\\:margin-1 {\n    margin: 0.5rem;\n  }\n  .tablet\\:margin-105 {\n    margin: 0.75rem;\n  }\n  .tablet\\:margin-2 {\n    margin: 1rem;\n  }\n  .tablet\\:margin-205 {\n    margin: 1.25rem;\n  }\n  .tablet\\:margin-3 {\n    margin: 1.5rem;\n  }\n  .tablet\\:margin-neg-4 {\n    margin: -2rem;\n  }\n  .tablet\\:margin-neg-5 {\n    margin: -2.5rem;\n  }\n  .tablet\\:margin-neg-6 {\n    margin: -3rem;\n  }\n  .tablet\\:margin-neg-7 {\n    margin: -3.5rem;\n  }\n  .tablet\\:margin-neg-8 {\n    margin: -4rem;\n  }\n  .tablet\\:margin-neg-9 {\n    margin: -4.5rem;\n  }\n  .tablet\\:margin-neg-10 {\n    margin: -5rem;\n  }\n  .tablet\\:margin-neg-15 {\n    margin: -7.5rem;\n  }\n  .tablet\\:margin-4 {\n    margin: 2rem;\n  }\n  .tablet\\:margin-5 {\n    margin: 2.5rem;\n  }\n  .tablet\\:margin-6 {\n    margin: 3rem;\n  }\n  .tablet\\:margin-7 {\n    margin: 3.5rem;\n  }\n  .tablet\\:margin-8 {\n    margin: 4rem;\n  }\n  .tablet\\:margin-9 {\n    margin: 4.5rem;\n  }\n  .tablet\\:margin-10 {\n    margin: 5rem;\n  }\n  .tablet\\:margin-15 {\n    margin: 7.5rem;\n  }\n  .tablet\\:margin-05em {\n    margin: 0.5em;\n  }\n  .tablet\\:margin-1em {\n    margin: 1em;\n  }\n  .tablet\\:margin-105em {\n    margin: 1.5em;\n  }\n  .tablet\\:margin-2em {\n    margin: 2em;\n  }\n  .tablet\\:margin-0 {\n    margin: 0;\n  }\n  .tablet\\:margin-y-1px {\n    margin-top: 1px;\n    margin-bottom: 1px;\n  }\n  .tablet\\:margin-top-1px {\n    margin-top: 1px;\n  }\n  .tablet\\:margin-bottom-1px {\n    margin-bottom: 1px;\n  }\n  .tablet\\:margin-y-2px {\n    margin-top: 2px;\n    margin-bottom: 2px;\n  }\n  .tablet\\:margin-top-2px {\n    margin-top: 2px;\n  }\n  .tablet\\:margin-bottom-2px {\n    margin-bottom: 2px;\n  }\n  .tablet\\:margin-y-05 {\n    margin-top: 0.25rem;\n    margin-bottom: 0.25rem;\n  }\n  .tablet\\:margin-top-05 {\n    margin-top: 0.25rem;\n  }\n  .tablet\\:margin-bottom-05 {\n    margin-bottom: 0.25rem;\n  }\n  .tablet\\:margin-y-1 {\n    margin-top: 0.5rem;\n    margin-bottom: 0.5rem;\n  }\n  .tablet\\:margin-top-1 {\n    margin-top: 0.5rem;\n  }\n  .tablet\\:margin-bottom-1 {\n    margin-bottom: 0.5rem;\n  }\n  .tablet\\:margin-y-105 {\n    margin-top: 0.75rem;\n    margin-bottom: 0.75rem;\n  }\n  .tablet\\:margin-top-105 {\n    margin-top: 0.75rem;\n  }\n  .tablet\\:margin-bottom-105 {\n    margin-bottom: 0.75rem;\n  }\n  .tablet\\:margin-y-2 {\n    margin-top: 1rem;\n    margin-bottom: 1rem;\n  }\n  .tablet\\:margin-top-2 {\n    margin-top: 1rem;\n  }\n  .tablet\\:margin-bottom-2 {\n    margin-bottom: 1rem;\n  }\n  .tablet\\:margin-y-205 {\n    margin-top: 1.25rem;\n    margin-bottom: 1.25rem;\n  }\n  .tablet\\:margin-top-205 {\n    margin-top: 1.25rem;\n  }\n  .tablet\\:margin-bottom-205 {\n    margin-bottom: 1.25rem;\n  }\n  .tablet\\:margin-y-3 {\n    margin-top: 1.5rem;\n    margin-bottom: 1.5rem;\n  }\n  .tablet\\:margin-top-3 {\n    margin-top: 1.5rem;\n  }\n  .tablet\\:margin-bottom-3 {\n    margin-bottom: 1.5rem;\n  }\n  .tablet\\:margin-y-neg-1px {\n    margin-top: -1px;\n    margin-bottom: -1px;\n  }\n  .tablet\\:margin-top-neg-1px {\n    margin-top: -1px;\n  }\n  .tablet\\:margin-bottom-neg-1px {\n    margin-bottom: -1px;\n  }\n  .tablet\\:margin-y-neg-2px {\n    margin-top: -2px;\n    margin-bottom: -2px;\n  }\n  .tablet\\:margin-top-neg-2px {\n    margin-top: -2px;\n  }\n  .tablet\\:margin-bottom-neg-2px {\n    margin-bottom: -2px;\n  }\n  .tablet\\:margin-y-neg-05 {\n    margin-top: -0.25rem;\n    margin-bottom: -0.25rem;\n  }\n  .tablet\\:margin-top-neg-05 {\n    margin-top: -0.25rem;\n  }\n  .tablet\\:margin-bottom-neg-05 {\n    margin-bottom: -0.25rem;\n  }\n  .tablet\\:margin-y-neg-1 {\n    margin-top: -0.5rem;\n    margin-bottom: -0.5rem;\n  }\n  .tablet\\:margin-top-neg-1 {\n    margin-top: -0.5rem;\n  }\n  .tablet\\:margin-bottom-neg-1 {\n    margin-bottom: -0.5rem;\n  }\n  .tablet\\:margin-y-neg-105 {\n    margin-top: -0.75rem;\n    margin-bottom: -0.75rem;\n  }\n  .tablet\\:margin-top-neg-105 {\n    margin-top: -0.75rem;\n  }\n  .tablet\\:margin-bottom-neg-105 {\n    margin-bottom: -0.75rem;\n  }\n  .tablet\\:margin-y-neg-2 {\n    margin-top: -1rem;\n    margin-bottom: -1rem;\n  }\n  .tablet\\:margin-top-neg-2 {\n    margin-top: -1rem;\n  }\n  .tablet\\:margin-bottom-neg-2 {\n    margin-bottom: -1rem;\n  }\n  .tablet\\:margin-y-neg-205 {\n    margin-top: -1.25rem;\n    margin-bottom: -1.25rem;\n  }\n  .tablet\\:margin-top-neg-205 {\n    margin-top: -1.25rem;\n  }\n  .tablet\\:margin-bottom-neg-205 {\n    margin-bottom: -1.25rem;\n  }\n  .tablet\\:margin-y-neg-3 {\n    margin-top: -1.5rem;\n    margin-bottom: -1.5rem;\n  }\n  .tablet\\:margin-top-neg-3 {\n    margin-top: -1.5rem;\n  }\n  .tablet\\:margin-bottom-neg-3 {\n    margin-bottom: -1.5rem;\n  }\n  .tablet\\:margin-y-neg-4 {\n    margin-top: -2rem;\n    margin-bottom: -2rem;\n  }\n  .tablet\\:margin-top-neg-4 {\n    margin-top: -2rem;\n  }\n  .tablet\\:margin-bottom-neg-4 {\n    margin-bottom: -2rem;\n  }\n  .tablet\\:margin-y-neg-5 {\n    margin-top: -2.5rem;\n    margin-bottom: -2.5rem;\n  }\n  .tablet\\:margin-top-neg-5 {\n    margin-top: -2.5rem;\n  }\n  .tablet\\:margin-bottom-neg-5 {\n    margin-bottom: -2.5rem;\n  }\n  .tablet\\:margin-y-neg-6 {\n    margin-top: -3rem;\n    margin-bottom: -3rem;\n  }\n  .tablet\\:margin-top-neg-6 {\n    margin-top: -3rem;\n  }\n  .tablet\\:margin-bottom-neg-6 {\n    margin-bottom: -3rem;\n  }\n  .tablet\\:margin-y-neg-7 {\n    margin-top: -3.5rem;\n    margin-bottom: -3.5rem;\n  }\n  .tablet\\:margin-top-neg-7 {\n    margin-top: -3.5rem;\n  }\n  .tablet\\:margin-bottom-neg-7 {\n    margin-bottom: -3.5rem;\n  }\n  .tablet\\:margin-y-neg-8 {\n    margin-top: -4rem;\n    margin-bottom: -4rem;\n  }\n  .tablet\\:margin-top-neg-8 {\n    margin-top: -4rem;\n  }\n  .tablet\\:margin-bottom-neg-8 {\n    margin-bottom: -4rem;\n  }\n  .tablet\\:margin-y-neg-9 {\n    margin-top: -4.5rem;\n    margin-bottom: -4.5rem;\n  }\n  .tablet\\:margin-top-neg-9 {\n    margin-top: -4.5rem;\n  }\n  .tablet\\:margin-bottom-neg-9 {\n    margin-bottom: -4.5rem;\n  }\n  .tablet\\:margin-y-neg-10 {\n    margin-top: -5rem;\n    margin-bottom: -5rem;\n  }\n  .tablet\\:margin-top-neg-10 {\n    margin-top: -5rem;\n  }\n  .tablet\\:margin-bottom-neg-10 {\n    margin-bottom: -5rem;\n  }\n  .tablet\\:margin-y-neg-15 {\n    margin-top: -7.5rem;\n    margin-bottom: -7.5rem;\n  }\n  .tablet\\:margin-top-neg-15 {\n    margin-top: -7.5rem;\n  }\n  .tablet\\:margin-bottom-neg-15 {\n    margin-bottom: -7.5rem;\n  }\n  .tablet\\:margin-y-4 {\n    margin-top: 2rem;\n    margin-bottom: 2rem;\n  }\n  .tablet\\:margin-top-4 {\n    margin-top: 2rem;\n  }\n  .tablet\\:margin-bottom-4 {\n    margin-bottom: 2rem;\n  }\n  .tablet\\:margin-y-5 {\n    margin-top: 2.5rem;\n    margin-bottom: 2.5rem;\n  }\n  .tablet\\:margin-top-5 {\n    margin-top: 2.5rem;\n  }\n  .tablet\\:margin-bottom-5 {\n    margin-bottom: 2.5rem;\n  }\n  .tablet\\:margin-y-6 {\n    margin-top: 3rem;\n    margin-bottom: 3rem;\n  }\n  .tablet\\:margin-top-6 {\n    margin-top: 3rem;\n  }\n  .tablet\\:margin-bottom-6 {\n    margin-bottom: 3rem;\n  }\n  .tablet\\:margin-y-7 {\n    margin-top: 3.5rem;\n    margin-bottom: 3.5rem;\n  }\n  .tablet\\:margin-top-7 {\n    margin-top: 3.5rem;\n  }\n  .tablet\\:margin-bottom-7 {\n    margin-bottom: 3.5rem;\n  }\n  .tablet\\:margin-y-8 {\n    margin-top: 4rem;\n    margin-bottom: 4rem;\n  }\n  .tablet\\:margin-top-8 {\n    margin-top: 4rem;\n  }\n  .tablet\\:margin-bottom-8 {\n    margin-bottom: 4rem;\n  }\n  .tablet\\:margin-y-9 {\n    margin-top: 4.5rem;\n    margin-bottom: 4.5rem;\n  }\n  .tablet\\:margin-top-9 {\n    margin-top: 4.5rem;\n  }\n  .tablet\\:margin-bottom-9 {\n    margin-bottom: 4.5rem;\n  }\n  .tablet\\:margin-y-10 {\n    margin-top: 5rem;\n    margin-bottom: 5rem;\n  }\n  .tablet\\:margin-top-10 {\n    margin-top: 5rem;\n  }\n  .tablet\\:margin-bottom-10 {\n    margin-bottom: 5rem;\n  }\n  .tablet\\:margin-y-15 {\n    margin-top: 7.5rem;\n    margin-bottom: 7.5rem;\n  }\n  .tablet\\:margin-top-15 {\n    margin-top: 7.5rem;\n  }\n  .tablet\\:margin-bottom-15 {\n    margin-bottom: 7.5rem;\n  }\n  .tablet\\:margin-y-05em {\n    margin-top: 0.5em;\n    margin-bottom: 0.5em;\n  }\n  .tablet\\:margin-top-05em {\n    margin-top: 0.5em;\n  }\n  .tablet\\:margin-bottom-05em {\n    margin-bottom: 0.5em;\n  }\n  .tablet\\:margin-y-1em {\n    margin-top: 1em;\n    margin-bottom: 1em;\n  }\n  .tablet\\:margin-top-1em {\n    margin-top: 1em;\n  }\n  .tablet\\:margin-bottom-1em {\n    margin-bottom: 1em;\n  }\n  .tablet\\:margin-y-105em {\n    margin-top: 1.5em;\n    margin-bottom: 1.5em;\n  }\n  .tablet\\:margin-top-105em {\n    margin-top: 1.5em;\n  }\n  .tablet\\:margin-bottom-105em {\n    margin-bottom: 1.5em;\n  }\n  .tablet\\:margin-y-2em {\n    margin-top: 2em;\n    margin-bottom: 2em;\n  }\n  .tablet\\:margin-top-2em {\n    margin-top: 2em;\n  }\n  .tablet\\:margin-bottom-2em {\n    margin-bottom: 2em;\n  }\n  .tablet\\:margin-y-0 {\n    margin-top: 0;\n    margin-bottom: 0;\n  }\n  .tablet\\:margin-top-0 {\n    margin-top: 0;\n  }\n  .tablet\\:margin-bottom-0 {\n    margin-bottom: 0;\n  }\n  .tablet\\:margin-y-auto {\n    margin-top: auto;\n    margin-bottom: auto;\n  }\n  .tablet\\:margin-top-auto {\n    margin-top: auto;\n  }\n  .tablet\\:margin-bottom-auto {\n    margin-bottom: auto;\n  }\n  .tablet\\:margin-x-1px {\n    margin-left: 1px;\n    margin-right: 1px;\n  }\n  .tablet\\:margin-right-1px {\n    margin-right: 1px;\n  }\n  .tablet\\:margin-left-1px {\n    margin-left: 1px;\n  }\n  .tablet\\:margin-x-2px {\n    margin-left: 2px;\n    margin-right: 2px;\n  }\n  .tablet\\:margin-right-2px {\n    margin-right: 2px;\n  }\n  .tablet\\:margin-left-2px {\n    margin-left: 2px;\n  }\n  .tablet\\:margin-x-05 {\n    margin-left: 0.25rem;\n    margin-right: 0.25rem;\n  }\n  .tablet\\:margin-right-05 {\n    margin-right: 0.25rem;\n  }\n  .tablet\\:margin-left-05 {\n    margin-left: 0.25rem;\n  }\n  .tablet\\:margin-x-1 {\n    margin-left: 0.5rem;\n    margin-right: 0.5rem;\n  }\n  .tablet\\:margin-right-1 {\n    margin-right: 0.5rem;\n  }\n  .tablet\\:margin-left-1 {\n    margin-left: 0.5rem;\n  }\n  .tablet\\:margin-x-105 {\n    margin-left: 0.75rem;\n    margin-right: 0.75rem;\n  }\n  .tablet\\:margin-right-105 {\n    margin-right: 0.75rem;\n  }\n  .tablet\\:margin-left-105 {\n    margin-left: 0.75rem;\n  }\n  .tablet\\:margin-x-2 {\n    margin-left: 1rem;\n    margin-right: 1rem;\n  }\n  .tablet\\:margin-right-2 {\n    margin-right: 1rem;\n  }\n  .tablet\\:margin-left-2 {\n    margin-left: 1rem;\n  }\n  .tablet\\:margin-x-205 {\n    margin-left: 1.25rem;\n    margin-right: 1.25rem;\n  }\n  .tablet\\:margin-right-205 {\n    margin-right: 1.25rem;\n  }\n  .tablet\\:margin-left-205 {\n    margin-left: 1.25rem;\n  }\n  .tablet\\:margin-x-3 {\n    margin-left: 1.5rem;\n    margin-right: 1.5rem;\n  }\n  .tablet\\:margin-right-3 {\n    margin-right: 1.5rem;\n  }\n  .tablet\\:margin-left-3 {\n    margin-left: 1.5rem;\n  }\n  .tablet\\:margin-x-neg-1px {\n    margin-left: -1px;\n    margin-right: -1px;\n  }\n  .tablet\\:margin-right-neg-1px {\n    margin-right: -1px;\n  }\n  .tablet\\:margin-left-neg-1px {\n    margin-left: -1px;\n  }\n  .tablet\\:margin-x-neg-2px {\n    margin-left: -2px;\n    margin-right: -2px;\n  }\n  .tablet\\:margin-right-neg-2px {\n    margin-right: -2px;\n  }\n  .tablet\\:margin-left-neg-2px {\n    margin-left: -2px;\n  }\n  .tablet\\:margin-x-neg-05 {\n    margin-left: -0.25rem;\n    margin-right: -0.25rem;\n  }\n  .tablet\\:margin-right-neg-05 {\n    margin-right: -0.25rem;\n  }\n  .tablet\\:margin-left-neg-05 {\n    margin-left: -0.25rem;\n  }\n  .tablet\\:margin-x-neg-1 {\n    margin-left: -0.5rem;\n    margin-right: -0.5rem;\n  }\n  .tablet\\:margin-right-neg-1 {\n    margin-right: -0.5rem;\n  }\n  .tablet\\:margin-left-neg-1 {\n    margin-left: -0.5rem;\n  }\n  .tablet\\:margin-x-neg-105 {\n    margin-left: -0.75rem;\n    margin-right: -0.75rem;\n  }\n  .tablet\\:margin-right-neg-105 {\n    margin-right: -0.75rem;\n  }\n  .tablet\\:margin-left-neg-105 {\n    margin-left: -0.75rem;\n  }\n  .tablet\\:margin-x-neg-2 {\n    margin-left: -1rem;\n    margin-right: -1rem;\n  }\n  .tablet\\:margin-right-neg-2 {\n    margin-right: -1rem;\n  }\n  .tablet\\:margin-left-neg-2 {\n    margin-left: -1rem;\n  }\n  .tablet\\:margin-x-neg-205 {\n    margin-left: -1.25rem;\n    margin-right: -1.25rem;\n  }\n  .tablet\\:margin-right-neg-205 {\n    margin-right: -1.25rem;\n  }\n  .tablet\\:margin-left-neg-205 {\n    margin-left: -1.25rem;\n  }\n  .tablet\\:margin-x-neg-3 {\n    margin-left: -1.5rem;\n    margin-right: -1.5rem;\n  }\n  .tablet\\:margin-right-neg-3 {\n    margin-right: -1.5rem;\n  }\n  .tablet\\:margin-left-neg-3 {\n    margin-left: -1.5rem;\n  }\n  .tablet\\:margin-x-neg-4 {\n    margin-left: -2rem;\n    margin-right: -2rem;\n  }\n  .tablet\\:margin-right-neg-4 {\n    margin-right: -2rem;\n  }\n  .tablet\\:margin-left-neg-4 {\n    margin-left: -2rem;\n  }\n  .tablet\\:margin-x-neg-5 {\n    margin-left: -2.5rem;\n    margin-right: -2.5rem;\n  }\n  .tablet\\:margin-right-neg-5 {\n    margin-right: -2.5rem;\n  }\n  .tablet\\:margin-left-neg-5 {\n    margin-left: -2.5rem;\n  }\n  .tablet\\:margin-x-neg-6 {\n    margin-left: -3rem;\n    margin-right: -3rem;\n  }\n  .tablet\\:margin-right-neg-6 {\n    margin-right: -3rem;\n  }\n  .tablet\\:margin-left-neg-6 {\n    margin-left: -3rem;\n  }\n  .tablet\\:margin-x-neg-7 {\n    margin-left: -3.5rem;\n    margin-right: -3.5rem;\n  }\n  .tablet\\:margin-right-neg-7 {\n    margin-right: -3.5rem;\n  }\n  .tablet\\:margin-left-neg-7 {\n    margin-left: -3.5rem;\n  }\n  .tablet\\:margin-x-neg-8 {\n    margin-left: -4rem;\n    margin-right: -4rem;\n  }\n  .tablet\\:margin-right-neg-8 {\n    margin-right: -4rem;\n  }\n  .tablet\\:margin-left-neg-8 {\n    margin-left: -4rem;\n  }\n  .tablet\\:margin-x-neg-9 {\n    margin-left: -4.5rem;\n    margin-right: -4.5rem;\n  }\n  .tablet\\:margin-right-neg-9 {\n    margin-right: -4.5rem;\n  }\n  .tablet\\:margin-left-neg-9 {\n    margin-left: -4.5rem;\n  }\n  .tablet\\:margin-x-neg-10 {\n    margin-left: -5rem;\n    margin-right: -5rem;\n  }\n  .tablet\\:margin-right-neg-10 {\n    margin-right: -5rem;\n  }\n  .tablet\\:margin-left-neg-10 {\n    margin-left: -5rem;\n  }\n  .tablet\\:margin-x-neg-15 {\n    margin-left: -7.5rem;\n    margin-right: -7.5rem;\n  }\n  .tablet\\:margin-right-neg-15 {\n    margin-right: -7.5rem;\n  }\n  .tablet\\:margin-left-neg-15 {\n    margin-left: -7.5rem;\n  }\n  .tablet\\:margin-x-4 {\n    margin-left: 2rem;\n    margin-right: 2rem;\n  }\n  .tablet\\:margin-right-4 {\n    margin-right: 2rem;\n  }\n  .tablet\\:margin-left-4 {\n    margin-left: 2rem;\n  }\n  .tablet\\:margin-x-5 {\n    margin-left: 2.5rem;\n    margin-right: 2.5rem;\n  }\n  .tablet\\:margin-right-5 {\n    margin-right: 2.5rem;\n  }\n  .tablet\\:margin-left-5 {\n    margin-left: 2.5rem;\n  }\n  .tablet\\:margin-x-6 {\n    margin-left: 3rem;\n    margin-right: 3rem;\n  }\n  .tablet\\:margin-right-6 {\n    margin-right: 3rem;\n  }\n  .tablet\\:margin-left-6 {\n    margin-left: 3rem;\n  }\n  .tablet\\:margin-x-7 {\n    margin-left: 3.5rem;\n    margin-right: 3.5rem;\n  }\n  .tablet\\:margin-right-7 {\n    margin-right: 3.5rem;\n  }\n  .tablet\\:margin-left-7 {\n    margin-left: 3.5rem;\n  }\n  .tablet\\:margin-x-8 {\n    margin-left: 4rem;\n    margin-right: 4rem;\n  }\n  .tablet\\:margin-right-8 {\n    margin-right: 4rem;\n  }\n  .tablet\\:margin-left-8 {\n    margin-left: 4rem;\n  }\n  .tablet\\:margin-x-9 {\n    margin-left: 4.5rem;\n    margin-right: 4.5rem;\n  }\n  .tablet\\:margin-right-9 {\n    margin-right: 4.5rem;\n  }\n  .tablet\\:margin-left-9 {\n    margin-left: 4.5rem;\n  }\n  .tablet\\:margin-x-10 {\n    margin-left: 5rem;\n    margin-right: 5rem;\n  }\n  .tablet\\:margin-right-10 {\n    margin-right: 5rem;\n  }\n  .tablet\\:margin-left-10 {\n    margin-left: 5rem;\n  }\n  .tablet\\:margin-x-15 {\n    margin-left: 7.5rem;\n    margin-right: 7.5rem;\n  }\n  .tablet\\:margin-right-15 {\n    margin-right: 7.5rem;\n  }\n  .tablet\\:margin-left-15 {\n    margin-left: 7.5rem;\n  }\n  .tablet\\:margin-x-card {\n    margin-left: 10rem;\n    margin-right: 10rem;\n  }\n  .tablet\\:margin-right-card {\n    margin-right: 10rem;\n  }\n  .tablet\\:margin-left-card {\n    margin-left: 10rem;\n  }\n  .tablet\\:margin-x-card-lg {\n    margin-left: 15rem;\n    margin-right: 15rem;\n  }\n  .tablet\\:margin-right-card-lg {\n    margin-right: 15rem;\n  }\n  .tablet\\:margin-left-card-lg {\n    margin-left: 15rem;\n  }\n  .tablet\\:margin-x-mobile {\n    margin-left: 20rem;\n    margin-right: 20rem;\n  }\n  .tablet\\:margin-right-mobile {\n    margin-right: 20rem;\n  }\n  .tablet\\:margin-left-mobile {\n    margin-left: 20rem;\n  }\n  .tablet\\:margin-x-05em {\n    margin-left: 0.5em;\n    margin-right: 0.5em;\n  }\n  .tablet\\:margin-right-05em {\n    margin-right: 0.5em;\n  }\n  .tablet\\:margin-left-05em {\n    margin-left: 0.5em;\n  }\n  .tablet\\:margin-x-1em {\n    margin-left: 1em;\n    margin-right: 1em;\n  }\n  .tablet\\:margin-right-1em {\n    margin-right: 1em;\n  }\n  .tablet\\:margin-left-1em {\n    margin-left: 1em;\n  }\n  .tablet\\:margin-x-105em {\n    margin-left: 1.5em;\n    margin-right: 1.5em;\n  }\n  .tablet\\:margin-right-105em {\n    margin-right: 1.5em;\n  }\n  .tablet\\:margin-left-105em {\n    margin-left: 1.5em;\n  }\n  .tablet\\:margin-x-2em {\n    margin-left: 2em;\n    margin-right: 2em;\n  }\n  .tablet\\:margin-right-2em {\n    margin-right: 2em;\n  }\n  .tablet\\:margin-left-2em {\n    margin-left: 2em;\n  }\n  .tablet\\:margin-x-0 {\n    margin-left: 0;\n    margin-right: 0;\n  }\n  .tablet\\:margin-right-0 {\n    margin-right: 0;\n  }\n  .tablet\\:margin-left-0 {\n    margin-left: 0;\n  }\n  .tablet\\:margin-x-auto {\n    margin-left: auto;\n    margin-right: auto;\n  }\n  .tablet\\:margin-right-auto {\n    margin-right: auto;\n  }\n  .tablet\\:margin-left-auto {\n    margin-left: auto;\n  }\n  .tablet\\:measure-1 {\n    max-width: 44ex;\n  }\n  .tablet\\:measure-2 {\n    max-width: 60ex;\n  }\n  .tablet\\:measure-3 {\n    max-width: 64ex;\n  }\n  .tablet\\:measure-4 {\n    max-width: 68ex;\n  }\n  .tablet\\:measure-5 {\n    max-width: 72ex;\n  }\n  .tablet\\:measure-6 {\n    max-width: 88ex;\n  }\n  .tablet\\:measure-none {\n    max-width: none;\n  }\n  .tablet\\:order-first {\n    order: -1;\n  }\n  .tablet\\:order-last {\n    order: 999;\n  }\n  .tablet\\:order-initial {\n    order: initial;\n  }\n  .tablet\\:order-0 {\n    order: 0;\n  }\n  .tablet\\:order-1 {\n    order: 1;\n  }\n  .tablet\\:order-2 {\n    order: 2;\n  }\n  .tablet\\:order-3 {\n    order: 3;\n  }\n  .tablet\\:order-4 {\n    order: 4;\n  }\n  .tablet\\:order-5 {\n    order: 5;\n  }\n  .tablet\\:order-6 {\n    order: 6;\n  }\n  .tablet\\:order-7 {\n    order: 7;\n  }\n  .tablet\\:order-8 {\n    order: 8;\n  }\n  .tablet\\:order-9 {\n    order: 9;\n  }\n  .tablet\\:order-10 {\n    order: 10;\n  }\n  .tablet\\:order-11 {\n    order: 11;\n  }\n  .tablet\\:padding-1px {\n    padding: 1px;\n  }\n  .tablet\\:padding-y-1px {\n    padding-top: 1px;\n    padding-bottom: 1px;\n  }\n  .tablet\\:padding-x-1px {\n    padding-left: 1px;\n    padding-right: 1px;\n  }\n  .tablet\\:padding-top-1px {\n    padding-top: 1px;\n  }\n  .tablet\\:padding-right-1px {\n    padding-right: 1px;\n  }\n  .tablet\\:padding-bottom-1px {\n    padding-bottom: 1px;\n  }\n  .tablet\\:padding-left-1px {\n    padding-left: 1px;\n  }\n  .tablet\\:padding-2px {\n    padding: 2px;\n  }\n  .tablet\\:padding-y-2px {\n    padding-top: 2px;\n    padding-bottom: 2px;\n  }\n  .tablet\\:padding-x-2px {\n    padding-left: 2px;\n    padding-right: 2px;\n  }\n  .tablet\\:padding-top-2px {\n    padding-top: 2px;\n  }\n  .tablet\\:padding-right-2px {\n    padding-right: 2px;\n  }\n  .tablet\\:padding-bottom-2px {\n    padding-bottom: 2px;\n  }\n  .tablet\\:padding-left-2px {\n    padding-left: 2px;\n  }\n  .tablet\\:padding-05 {\n    padding: 0.25rem;\n  }\n  .tablet\\:padding-y-05 {\n    padding-top: 0.25rem;\n    padding-bottom: 0.25rem;\n  }\n  .tablet\\:padding-x-05 {\n    padding-left: 0.25rem;\n    padding-right: 0.25rem;\n  }\n  .tablet\\:padding-top-05 {\n    padding-top: 0.25rem;\n  }\n  .tablet\\:padding-right-05 {\n    padding-right: 0.25rem;\n  }\n  .tablet\\:padding-bottom-05 {\n    padding-bottom: 0.25rem;\n  }\n  .tablet\\:padding-left-05 {\n    padding-left: 0.25rem;\n  }\n  .tablet\\:padding-1 {\n    padding: 0.5rem;\n  }\n  .tablet\\:padding-y-1 {\n    padding-top: 0.5rem;\n    padding-bottom: 0.5rem;\n  }\n  .tablet\\:padding-x-1 {\n    padding-left: 0.5rem;\n    padding-right: 0.5rem;\n  }\n  .tablet\\:padding-top-1 {\n    padding-top: 0.5rem;\n  }\n  .tablet\\:padding-right-1 {\n    padding-right: 0.5rem;\n  }\n  .tablet\\:padding-bottom-1 {\n    padding-bottom: 0.5rem;\n  }\n  .tablet\\:padding-left-1 {\n    padding-left: 0.5rem;\n  }\n  .tablet\\:padding-105 {\n    padding: 0.75rem;\n  }\n  .tablet\\:padding-y-105 {\n    padding-top: 0.75rem;\n    padding-bottom: 0.75rem;\n  }\n  .tablet\\:padding-x-105 {\n    padding-left: 0.75rem;\n    padding-right: 0.75rem;\n  }\n  .tablet\\:padding-top-105 {\n    padding-top: 0.75rem;\n  }\n  .tablet\\:padding-right-105 {\n    padding-right: 0.75rem;\n  }\n  .tablet\\:padding-bottom-105 {\n    padding-bottom: 0.75rem;\n  }\n  .tablet\\:padding-left-105 {\n    padding-left: 0.75rem;\n  }\n  .tablet\\:padding-2 {\n    padding: 1rem;\n  }\n  .tablet\\:padding-y-2 {\n    padding-top: 1rem;\n    padding-bottom: 1rem;\n  }\n  .tablet\\:padding-x-2 {\n    padding-left: 1rem;\n    padding-right: 1rem;\n  }\n  .tablet\\:padding-top-2 {\n    padding-top: 1rem;\n  }\n  .tablet\\:padding-right-2 {\n    padding-right: 1rem;\n  }\n  .tablet\\:padding-bottom-2 {\n    padding-bottom: 1rem;\n  }\n  .tablet\\:padding-left-2 {\n    padding-left: 1rem;\n  }\n  .tablet\\:padding-205 {\n    padding: 1.25rem;\n  }\n  .tablet\\:padding-y-205 {\n    padding-top: 1.25rem;\n    padding-bottom: 1.25rem;\n  }\n  .tablet\\:padding-x-205 {\n    padding-left: 1.25rem;\n    padding-right: 1.25rem;\n  }\n  .tablet\\:padding-top-205 {\n    padding-top: 1.25rem;\n  }\n  .tablet\\:padding-right-205 {\n    padding-right: 1.25rem;\n  }\n  .tablet\\:padding-bottom-205 {\n    padding-bottom: 1.25rem;\n  }\n  .tablet\\:padding-left-205 {\n    padding-left: 1.25rem;\n  }\n  .tablet\\:padding-3 {\n    padding: 1.5rem;\n  }\n  .tablet\\:padding-y-3 {\n    padding-top: 1.5rem;\n    padding-bottom: 1.5rem;\n  }\n  .tablet\\:padding-x-3 {\n    padding-left: 1.5rem;\n    padding-right: 1.5rem;\n  }\n  .tablet\\:padding-top-3 {\n    padding-top: 1.5rem;\n  }\n  .tablet\\:padding-right-3 {\n    padding-right: 1.5rem;\n  }\n  .tablet\\:padding-bottom-3 {\n    padding-bottom: 1.5rem;\n  }\n  .tablet\\:padding-left-3 {\n    padding-left: 1.5rem;\n  }\n  .tablet\\:padding-4 {\n    padding: 2rem;\n  }\n  .tablet\\:padding-y-4 {\n    padding-top: 2rem;\n    padding-bottom: 2rem;\n  }\n  .tablet\\:padding-x-4 {\n    padding-left: 2rem;\n    padding-right: 2rem;\n  }\n  .tablet\\:padding-top-4 {\n    padding-top: 2rem;\n  }\n  .tablet\\:padding-right-4 {\n    padding-right: 2rem;\n  }\n  .tablet\\:padding-bottom-4 {\n    padding-bottom: 2rem;\n  }\n  .tablet\\:padding-left-4 {\n    padding-left: 2rem;\n  }\n  .tablet\\:padding-5 {\n    padding: 2.5rem;\n  }\n  .tablet\\:padding-y-5 {\n    padding-top: 2.5rem;\n    padding-bottom: 2.5rem;\n  }\n  .tablet\\:padding-x-5 {\n    padding-left: 2.5rem;\n    padding-right: 2.5rem;\n  }\n  .tablet\\:padding-top-5 {\n    padding-top: 2.5rem;\n  }\n  .tablet\\:padding-right-5 {\n    padding-right: 2.5rem;\n  }\n  .tablet\\:padding-bottom-5 {\n    padding-bottom: 2.5rem;\n  }\n  .tablet\\:padding-left-5 {\n    padding-left: 2.5rem;\n  }\n  .tablet\\:padding-6 {\n    padding: 3rem;\n  }\n  .tablet\\:padding-y-6 {\n    padding-top: 3rem;\n    padding-bottom: 3rem;\n  }\n  .tablet\\:padding-x-6 {\n    padding-left: 3rem;\n    padding-right: 3rem;\n  }\n  .tablet\\:padding-top-6 {\n    padding-top: 3rem;\n  }\n  .tablet\\:padding-right-6 {\n    padding-right: 3rem;\n  }\n  .tablet\\:padding-bottom-6 {\n    padding-bottom: 3rem;\n  }\n  .tablet\\:padding-left-6 {\n    padding-left: 3rem;\n  }\n  .tablet\\:padding-7 {\n    padding: 3.5rem;\n  }\n  .tablet\\:padding-y-7 {\n    padding-top: 3.5rem;\n    padding-bottom: 3.5rem;\n  }\n  .tablet\\:padding-x-7 {\n    padding-left: 3.5rem;\n    padding-right: 3.5rem;\n  }\n  .tablet\\:padding-top-7 {\n    padding-top: 3.5rem;\n  }\n  .tablet\\:padding-right-7 {\n    padding-right: 3.5rem;\n  }\n  .tablet\\:padding-bottom-7 {\n    padding-bottom: 3.5rem;\n  }\n  .tablet\\:padding-left-7 {\n    padding-left: 3.5rem;\n  }\n  .tablet\\:padding-8 {\n    padding: 4rem;\n  }\n  .tablet\\:padding-y-8 {\n    padding-top: 4rem;\n    padding-bottom: 4rem;\n  }\n  .tablet\\:padding-x-8 {\n    padding-left: 4rem;\n    padding-right: 4rem;\n  }\n  .tablet\\:padding-top-8 {\n    padding-top: 4rem;\n  }\n  .tablet\\:padding-right-8 {\n    padding-right: 4rem;\n  }\n  .tablet\\:padding-bottom-8 {\n    padding-bottom: 4rem;\n  }\n  .tablet\\:padding-left-8 {\n    padding-left: 4rem;\n  }\n  .tablet\\:padding-9 {\n    padding: 4.5rem;\n  }\n  .tablet\\:padding-y-9 {\n    padding-top: 4.5rem;\n    padding-bottom: 4.5rem;\n  }\n  .tablet\\:padding-x-9 {\n    padding-left: 4.5rem;\n    padding-right: 4.5rem;\n  }\n  .tablet\\:padding-top-9 {\n    padding-top: 4.5rem;\n  }\n  .tablet\\:padding-right-9 {\n    padding-right: 4.5rem;\n  }\n  .tablet\\:padding-bottom-9 {\n    padding-bottom: 4.5rem;\n  }\n  .tablet\\:padding-left-9 {\n    padding-left: 4.5rem;\n  }\n  .tablet\\:padding-10 {\n    padding: 5rem;\n  }\n  .tablet\\:padding-y-10 {\n    padding-top: 5rem;\n    padding-bottom: 5rem;\n  }\n  .tablet\\:padding-x-10 {\n    padding-left: 5rem;\n    padding-right: 5rem;\n  }\n  .tablet\\:padding-top-10 {\n    padding-top: 5rem;\n  }\n  .tablet\\:padding-right-10 {\n    padding-right: 5rem;\n  }\n  .tablet\\:padding-bottom-10 {\n    padding-bottom: 5rem;\n  }\n  .tablet\\:padding-left-10 {\n    padding-left: 5rem;\n  }\n  .tablet\\:padding-15 {\n    padding: 7.5rem;\n  }\n  .tablet\\:padding-y-15 {\n    padding-top: 7.5rem;\n    padding-bottom: 7.5rem;\n  }\n  .tablet\\:padding-x-15 {\n    padding-left: 7.5rem;\n    padding-right: 7.5rem;\n  }\n  .tablet\\:padding-top-15 {\n    padding-top: 7.5rem;\n  }\n  .tablet\\:padding-right-15 {\n    padding-right: 7.5rem;\n  }\n  .tablet\\:padding-bottom-15 {\n    padding-bottom: 7.5rem;\n  }\n  .tablet\\:padding-left-15 {\n    padding-left: 7.5rem;\n  }\n  .tablet\\:padding-0 {\n    padding: 0;\n  }\n  .tablet\\:padding-y-0 {\n    padding-top: 0;\n    padding-bottom: 0;\n  }\n  .tablet\\:padding-x-0 {\n    padding-left: 0;\n    padding-right: 0;\n  }\n  .tablet\\:padding-top-0 {\n    padding-top: 0;\n  }\n  .tablet\\:padding-right-0 {\n    padding-right: 0;\n  }\n  .tablet\\:padding-bottom-0 {\n    padding-bottom: 0;\n  }\n  .tablet\\:padding-left-0 {\n    padding-left: 0;\n  }\n  .tablet\\:width-1px {\n    width: 1px;\n  }\n  .tablet\\:width-2px {\n    width: 2px;\n  }\n  .tablet\\:width-05 {\n    width: 0.25rem;\n  }\n  .tablet\\:width-1 {\n    width: 0.5rem;\n  }\n  .tablet\\:width-105 {\n    width: 0.75rem;\n  }\n  .tablet\\:width-2 {\n    width: 1rem;\n  }\n  .tablet\\:width-205 {\n    width: 1.25rem;\n  }\n  .tablet\\:width-3 {\n    width: 1.5rem;\n  }\n  .tablet\\:width-4 {\n    width: 2rem;\n  }\n  .tablet\\:width-5 {\n    width: 2.5rem;\n  }\n  .tablet\\:width-6 {\n    width: 3rem;\n  }\n  .tablet\\:width-7 {\n    width: 3.5rem;\n  }\n  .tablet\\:width-8 {\n    width: 4rem;\n  }\n  .tablet\\:width-9 {\n    width: 4.5rem;\n  }\n  .tablet\\:width-10 {\n    width: 5rem;\n  }\n  .tablet\\:width-15 {\n    width: 7.5rem;\n  }\n  .tablet\\:width-card {\n    width: 10rem;\n  }\n  .tablet\\:width-card-lg {\n    width: 15rem;\n  }\n  .tablet\\:width-mobile {\n    width: 20rem;\n  }\n  .tablet\\:width-mobile-lg {\n    width: 30rem;\n  }\n  .tablet\\:width-tablet {\n    width: 40rem;\n  }\n  .tablet\\:width-tablet-lg {\n    width: 55rem;\n  }\n  .tablet\\:width-desktop {\n    width: 64rem;\n  }\n  .tablet\\:width-desktop-lg {\n    width: 75rem;\n  }\n  .tablet\\:width-widescreen {\n    width: 87.5rem;\n  }\n  .tablet\\:width-0 {\n    width: 0;\n  }\n  .tablet\\:width-full {\n    width: 100%;\n  }\n  .tablet\\:width-auto {\n    width: auto;\n  }\n}\n@media all and (min-width: 64em) {\n  .desktop\\:border-1px {\n    border: 1px solid;\n  }\n  .desktop\\:hover\\:border-1px:hover {\n    border: 1px solid;\n  }\n  .desktop\\:border-y-1px {\n    border-top: 1px solid;\n    border-bottom: 1px solid;\n  }\n  .desktop\\:hover\\:border-y-1px:hover {\n    border-top: 1px solid;\n    border-bottom: 1px solid;\n  }\n  .desktop\\:border-x-1px {\n    border-left: 1px solid;\n    border-right: 1px solid;\n  }\n  .desktop\\:hover\\:border-x-1px:hover {\n    border-left: 1px solid;\n    border-right: 1px solid;\n  }\n  .desktop\\:border-top-1px {\n    border-top: 1px solid;\n  }\n  .desktop\\:hover\\:border-top-1px:hover {\n    border-top: 1px solid;\n  }\n  .desktop\\:border-right-1px {\n    border-right: 1px solid;\n  }\n  .desktop\\:hover\\:border-right-1px:hover {\n    border-right: 1px solid;\n  }\n  .desktop\\:border-bottom-1px {\n    border-bottom: 1px solid;\n  }\n  .desktop\\:hover\\:border-bottom-1px:hover {\n    border-bottom: 1px solid;\n  }\n  .desktop\\:border-left-1px {\n    border-left: 1px solid;\n  }\n  .desktop\\:hover\\:border-left-1px:hover {\n    border-left: 1px solid;\n  }\n  .desktop\\:border-2px {\n    border: 2px solid;\n  }\n  .desktop\\:hover\\:border-2px:hover {\n    border: 2px solid;\n  }\n  .desktop\\:border-y-2px {\n    border-top: 2px solid;\n    border-bottom: 2px solid;\n  }\n  .desktop\\:hover\\:border-y-2px:hover {\n    border-top: 2px solid;\n    border-bottom: 2px solid;\n  }\n  .desktop\\:border-x-2px {\n    border-left: 2px solid;\n    border-right: 2px solid;\n  }\n  .desktop\\:hover\\:border-x-2px:hover {\n    border-left: 2px solid;\n    border-right: 2px solid;\n  }\n  .desktop\\:border-top-2px {\n    border-top: 2px solid;\n  }\n  .desktop\\:hover\\:border-top-2px:hover {\n    border-top: 2px solid;\n  }\n  .desktop\\:border-right-2px {\n    border-right: 2px solid;\n  }\n  .desktop\\:hover\\:border-right-2px:hover {\n    border-right: 2px solid;\n  }\n  .desktop\\:border-bottom-2px {\n    border-bottom: 2px solid;\n  }\n  .desktop\\:hover\\:border-bottom-2px:hover {\n    border-bottom: 2px solid;\n  }\n  .desktop\\:border-left-2px {\n    border-left: 2px solid;\n  }\n  .desktop\\:hover\\:border-left-2px:hover {\n    border-left: 2px solid;\n  }\n  .desktop\\:border-05 {\n    border: 0.25rem solid;\n  }\n  .desktop\\:hover\\:border-05:hover {\n    border: 0.25rem solid;\n  }\n  .desktop\\:border-y-05 {\n    border-top: 0.25rem solid;\n    border-bottom: 0.25rem solid;\n  }\n  .desktop\\:hover\\:border-y-05:hover {\n    border-top: 0.25rem solid;\n    border-bottom: 0.25rem solid;\n  }\n  .desktop\\:border-x-05 {\n    border-left: 0.25rem solid;\n    border-right: 0.25rem solid;\n  }\n  .desktop\\:hover\\:border-x-05:hover {\n    border-left: 0.25rem solid;\n    border-right: 0.25rem solid;\n  }\n  .desktop\\:border-top-05 {\n    border-top: 0.25rem solid;\n  }\n  .desktop\\:hover\\:border-top-05:hover {\n    border-top: 0.25rem solid;\n  }\n  .desktop\\:border-right-05 {\n    border-right: 0.25rem solid;\n  }\n  .desktop\\:hover\\:border-right-05:hover {\n    border-right: 0.25rem solid;\n  }\n  .desktop\\:border-bottom-05 {\n    border-bottom: 0.25rem solid;\n  }\n  .desktop\\:hover\\:border-bottom-05:hover {\n    border-bottom: 0.25rem solid;\n  }\n  .desktop\\:border-left-05 {\n    border-left: 0.25rem solid;\n  }\n  .desktop\\:hover\\:border-left-05:hover {\n    border-left: 0.25rem solid;\n  }\n  .desktop\\:border-1 {\n    border: 0.5rem solid;\n  }\n  .desktop\\:hover\\:border-1:hover {\n    border: 0.5rem solid;\n  }\n  .desktop\\:border-y-1 {\n    border-top: 0.5rem solid;\n    border-bottom: 0.5rem solid;\n  }\n  .desktop\\:hover\\:border-y-1:hover {\n    border-top: 0.5rem solid;\n    border-bottom: 0.5rem solid;\n  }\n  .desktop\\:border-x-1 {\n    border-left: 0.5rem solid;\n    border-right: 0.5rem solid;\n  }\n  .desktop\\:hover\\:border-x-1:hover {\n    border-left: 0.5rem solid;\n    border-right: 0.5rem solid;\n  }\n  .desktop\\:border-top-1 {\n    border-top: 0.5rem solid;\n  }\n  .desktop\\:hover\\:border-top-1:hover {\n    border-top: 0.5rem solid;\n  }\n  .desktop\\:border-right-1 {\n    border-right: 0.5rem solid;\n  }\n  .desktop\\:hover\\:border-right-1:hover {\n    border-right: 0.5rem solid;\n  }\n  .desktop\\:border-bottom-1 {\n    border-bottom: 0.5rem solid;\n  }\n  .desktop\\:hover\\:border-bottom-1:hover {\n    border-bottom: 0.5rem solid;\n  }\n  .desktop\\:border-left-1 {\n    border-left: 0.5rem solid;\n  }\n  .desktop\\:hover\\:border-left-1:hover {\n    border-left: 0.5rem solid;\n  }\n  .desktop\\:border-105 {\n    border: 0.75rem solid;\n  }\n  .desktop\\:hover\\:border-105:hover {\n    border: 0.75rem solid;\n  }\n  .desktop\\:border-y-105 {\n    border-top: 0.75rem solid;\n    border-bottom: 0.75rem solid;\n  }\n  .desktop\\:hover\\:border-y-105:hover {\n    border-top: 0.75rem solid;\n    border-bottom: 0.75rem solid;\n  }\n  .desktop\\:border-x-105 {\n    border-left: 0.75rem solid;\n    border-right: 0.75rem solid;\n  }\n  .desktop\\:hover\\:border-x-105:hover {\n    border-left: 0.75rem solid;\n    border-right: 0.75rem solid;\n  }\n  .desktop\\:border-top-105 {\n    border-top: 0.75rem solid;\n  }\n  .desktop\\:hover\\:border-top-105:hover {\n    border-top: 0.75rem solid;\n  }\n  .desktop\\:border-right-105 {\n    border-right: 0.75rem solid;\n  }\n  .desktop\\:hover\\:border-right-105:hover {\n    border-right: 0.75rem solid;\n  }\n  .desktop\\:border-bottom-105 {\n    border-bottom: 0.75rem solid;\n  }\n  .desktop\\:hover\\:border-bottom-105:hover {\n    border-bottom: 0.75rem solid;\n  }\n  .desktop\\:border-left-105 {\n    border-left: 0.75rem solid;\n  }\n  .desktop\\:hover\\:border-left-105:hover {\n    border-left: 0.75rem solid;\n  }\n  .desktop\\:border-2 {\n    border: 1rem solid;\n  }\n  .desktop\\:hover\\:border-2:hover {\n    border: 1rem solid;\n  }\n  .desktop\\:border-y-2 {\n    border-top: 1rem solid;\n    border-bottom: 1rem solid;\n  }\n  .desktop\\:hover\\:border-y-2:hover {\n    border-top: 1rem solid;\n    border-bottom: 1rem solid;\n  }\n  .desktop\\:border-x-2 {\n    border-left: 1rem solid;\n    border-right: 1rem solid;\n  }\n  .desktop\\:hover\\:border-x-2:hover {\n    border-left: 1rem solid;\n    border-right: 1rem solid;\n  }\n  .desktop\\:border-top-2 {\n    border-top: 1rem solid;\n  }\n  .desktop\\:hover\\:border-top-2:hover {\n    border-top: 1rem solid;\n  }\n  .desktop\\:border-right-2 {\n    border-right: 1rem solid;\n  }\n  .desktop\\:hover\\:border-right-2:hover {\n    border-right: 1rem solid;\n  }\n  .desktop\\:border-bottom-2 {\n    border-bottom: 1rem solid;\n  }\n  .desktop\\:hover\\:border-bottom-2:hover {\n    border-bottom: 1rem solid;\n  }\n  .desktop\\:border-left-2 {\n    border-left: 1rem solid;\n  }\n  .desktop\\:hover\\:border-left-2:hover {\n    border-left: 1rem solid;\n  }\n  .desktop\\:border-205 {\n    border: 1.25rem solid;\n  }\n  .desktop\\:hover\\:border-205:hover {\n    border: 1.25rem solid;\n  }\n  .desktop\\:border-y-205 {\n    border-top: 1.25rem solid;\n    border-bottom: 1.25rem solid;\n  }\n  .desktop\\:hover\\:border-y-205:hover {\n    border-top: 1.25rem solid;\n    border-bottom: 1.25rem solid;\n  }\n  .desktop\\:border-x-205 {\n    border-left: 1.25rem solid;\n    border-right: 1.25rem solid;\n  }\n  .desktop\\:hover\\:border-x-205:hover {\n    border-left: 1.25rem solid;\n    border-right: 1.25rem solid;\n  }\n  .desktop\\:border-top-205 {\n    border-top: 1.25rem solid;\n  }\n  .desktop\\:hover\\:border-top-205:hover {\n    border-top: 1.25rem solid;\n  }\n  .desktop\\:border-right-205 {\n    border-right: 1.25rem solid;\n  }\n  .desktop\\:hover\\:border-right-205:hover {\n    border-right: 1.25rem solid;\n  }\n  .desktop\\:border-bottom-205 {\n    border-bottom: 1.25rem solid;\n  }\n  .desktop\\:hover\\:border-bottom-205:hover {\n    border-bottom: 1.25rem solid;\n  }\n  .desktop\\:border-left-205 {\n    border-left: 1.25rem solid;\n  }\n  .desktop\\:hover\\:border-left-205:hover {\n    border-left: 1.25rem solid;\n  }\n  .desktop\\:border-3 {\n    border: 1.5rem solid;\n  }\n  .desktop\\:hover\\:border-3:hover {\n    border: 1.5rem solid;\n  }\n  .desktop\\:border-y-3 {\n    border-top: 1.5rem solid;\n    border-bottom: 1.5rem solid;\n  }\n  .desktop\\:hover\\:border-y-3:hover {\n    border-top: 1.5rem solid;\n    border-bottom: 1.5rem solid;\n  }\n  .desktop\\:border-x-3 {\n    border-left: 1.5rem solid;\n    border-right: 1.5rem solid;\n  }\n  .desktop\\:hover\\:border-x-3:hover {\n    border-left: 1.5rem solid;\n    border-right: 1.5rem solid;\n  }\n  .desktop\\:border-top-3 {\n    border-top: 1.5rem solid;\n  }\n  .desktop\\:hover\\:border-top-3:hover {\n    border-top: 1.5rem solid;\n  }\n  .desktop\\:border-right-3 {\n    border-right: 1.5rem solid;\n  }\n  .desktop\\:hover\\:border-right-3:hover {\n    border-right: 1.5rem solid;\n  }\n  .desktop\\:border-bottom-3 {\n    border-bottom: 1.5rem solid;\n  }\n  .desktop\\:hover\\:border-bottom-3:hover {\n    border-bottom: 1.5rem solid;\n  }\n  .desktop\\:border-left-3 {\n    border-left: 1.5rem solid;\n  }\n  .desktop\\:hover\\:border-left-3:hover {\n    border-left: 1.5rem solid;\n  }\n  .desktop\\:border-0 {\n    border: 0 solid;\n  }\n  .desktop\\:hover\\:border-0:hover {\n    border: 0 solid;\n  }\n  .desktop\\:border-y-0 {\n    border-top: 0 solid;\n    border-bottom: 0 solid;\n  }\n  .desktop\\:hover\\:border-y-0:hover {\n    border-top: 0 solid;\n    border-bottom: 0 solid;\n  }\n  .desktop\\:border-x-0 {\n    border-left: 0 solid;\n    border-right: 0 solid;\n  }\n  .desktop\\:hover\\:border-x-0:hover {\n    border-left: 0 solid;\n    border-right: 0 solid;\n  }\n  .desktop\\:border-top-0 {\n    border-top: 0 solid;\n  }\n  .desktop\\:hover\\:border-top-0:hover {\n    border-top: 0 solid;\n  }\n  .desktop\\:border-right-0 {\n    border-right: 0 solid;\n  }\n  .desktop\\:hover\\:border-right-0:hover {\n    border-right: 0 solid;\n  }\n  .desktop\\:border-bottom-0 {\n    border-bottom: 0 solid;\n  }\n  .desktop\\:hover\\:border-bottom-0:hover {\n    border-bottom: 0 solid;\n  }\n  .desktop\\:border-left-0 {\n    border-left: 0 solid;\n  }\n  .desktop\\:hover\\:border-left-0:hover {\n    border-left: 0 solid;\n  }\n  .desktop\\:border {\n    border: 1px solid;\n  }\n  .desktop\\:hover\\:border:hover {\n    border: 1px solid;\n  }\n  .desktop\\:border-y {\n    border-top: 1px solid;\n    border-bottom: 1px solid;\n  }\n  .desktop\\:hover\\:border-y:hover {\n    border-top: 1px solid;\n    border-bottom: 1px solid;\n  }\n  .desktop\\:border-x {\n    border-left: 1px solid;\n    border-right: 1px solid;\n  }\n  .desktop\\:hover\\:border-x:hover {\n    border-left: 1px solid;\n    border-right: 1px solid;\n  }\n  .desktop\\:border-top {\n    border-top: 1px solid;\n  }\n  .desktop\\:hover\\:border-top:hover {\n    border-top: 1px solid;\n  }\n  .desktop\\:border-right {\n    border-right: 1px solid;\n  }\n  .desktop\\:hover\\:border-right:hover {\n    border-right: 1px solid;\n  }\n  .desktop\\:border-bottom {\n    border-bottom: 1px solid;\n  }\n  .desktop\\:hover\\:border-bottom:hover {\n    border-bottom: 1px solid;\n  }\n  .desktop\\:border-left {\n    border-left: 1px solid;\n  }\n  .desktop\\:hover\\:border-left:hover {\n    border-left: 1px solid;\n  }\n  .desktop\\:border-transparent {\n    border-color: transparent;\n  }\n  .desktop\\:hover\\:border-transparent:hover {\n    border-color: transparent;\n  }\n  .desktop\\:border-black {\n    border-color: black;\n  }\n  .desktop\\:hover\\:border-black:hover {\n    border-color: black;\n  }\n  .desktop\\:border-white {\n    border-color: white;\n  }\n  .desktop\\:hover\\:border-white:hover {\n    border-color: white;\n  }\n  .desktop\\:border-red {\n    border-color: #e52207;\n  }\n  .desktop\\:hover\\:border-red:hover {\n    border-color: #e52207;\n  }\n  .desktop\\:border-orange {\n    border-color: #e66f0e;\n  }\n  .desktop\\:hover\\:border-orange:hover {\n    border-color: #e66f0e;\n  }\n  .desktop\\:border-gold {\n    border-color: #ffbe2e;\n  }\n  .desktop\\:hover\\:border-gold:hover {\n    border-color: #ffbe2e;\n  }\n  .desktop\\:border-yellow {\n    border-color: #fee685;\n  }\n  .desktop\\:hover\\:border-yellow:hover {\n    border-color: #fee685;\n  }\n  .desktop\\:border-green {\n    border-color: #538200;\n  }\n  .desktop\\:hover\\:border-green:hover {\n    border-color: #538200;\n  }\n  .desktop\\:border-mint {\n    border-color: #04c585;\n  }\n  .desktop\\:hover\\:border-mint:hover {\n    border-color: #04c585;\n  }\n  .desktop\\:border-cyan {\n    border-color: #009ec1;\n  }\n  .desktop\\:hover\\:border-cyan:hover {\n    border-color: #009ec1;\n  }\n  .desktop\\:border-blue {\n    border-color: #0076d6;\n  }\n  .desktop\\:hover\\:border-blue:hover {\n    border-color: #0076d6;\n  }\n  .desktop\\:border-indigo {\n    border-color: #676cc8;\n  }\n  .desktop\\:hover\\:border-indigo:hover {\n    border-color: #676cc8;\n  }\n  .desktop\\:border-violet {\n    border-color: #8168b3;\n  }\n  .desktop\\:hover\\:border-violet:hover {\n    border-color: #8168b3;\n  }\n  .desktop\\:border-magenta {\n    border-color: #d72d79;\n  }\n  .desktop\\:hover\\:border-magenta:hover {\n    border-color: #d72d79;\n  }\n  .desktop\\:border-gray-5 {\n    border-color: #f0f0f0;\n  }\n  .desktop\\:hover\\:border-gray-5:hover {\n    border-color: #f0f0f0;\n  }\n  .desktop\\:border-gray-10 {\n    border-color: #e6e6e6;\n  }\n  .desktop\\:hover\\:border-gray-10:hover {\n    border-color: #e6e6e6;\n  }\n  .desktop\\:border-gray-30 {\n    border-color: #adadad;\n  }\n  .desktop\\:hover\\:border-gray-30:hover {\n    border-color: #adadad;\n  }\n  .desktop\\:border-gray-50 {\n    border-color: #757575;\n  }\n  .desktop\\:hover\\:border-gray-50:hover {\n    border-color: #757575;\n  }\n  .desktop\\:border-gray-70 {\n    border-color: #454545;\n  }\n  .desktop\\:hover\\:border-gray-70:hover {\n    border-color: #454545;\n  }\n  .desktop\\:border-gray-90 {\n    border-color: #1b1b1b;\n  }\n  .desktop\\:hover\\:border-gray-90:hover {\n    border-color: #1b1b1b;\n  }\n  .desktop\\:border-base-lightest {\n    border-color: #f0f0f0;\n  }\n  .desktop\\:hover\\:border-base-lightest:hover {\n    border-color: #f0f0f0;\n  }\n  .desktop\\:border-base-lighter {\n    border-color: #dfe1e2;\n  }\n  .desktop\\:hover\\:border-base-lighter:hover {\n    border-color: #dfe1e2;\n  }\n  .desktop\\:border-base-light {\n    border-color: #a9aeb1;\n  }\n  .desktop\\:hover\\:border-base-light:hover {\n    border-color: #a9aeb1;\n  }\n  .desktop\\:border-base {\n    border-color: #71767a;\n  }\n  .desktop\\:hover\\:border-base:hover {\n    border-color: #71767a;\n  }\n  .desktop\\:border-base-dark {\n    border-color: #565c65;\n  }\n  .desktop\\:hover\\:border-base-dark:hover {\n    border-color: #565c65;\n  }\n  .desktop\\:border-base-darker {\n    border-color: #3d4551;\n  }\n  .desktop\\:hover\\:border-base-darker:hover {\n    border-color: #3d4551;\n  }\n  .desktop\\:border-base-darkest {\n    border-color: #1b1b1b;\n  }\n  .desktop\\:hover\\:border-base-darkest:hover {\n    border-color: #1b1b1b;\n  }\n  .desktop\\:border-ink {\n    border-color: #1b1b1b;\n  }\n  .desktop\\:hover\\:border-ink:hover {\n    border-color: #1b1b1b;\n  }\n  .desktop\\:border-primary-lighter {\n    border-color: #d9e8f6;\n  }\n  .desktop\\:hover\\:border-primary-lighter:hover {\n    border-color: #d9e8f6;\n  }\n  .desktop\\:border-primary-light {\n    border-color: #73b3e7;\n  }\n  .desktop\\:hover\\:border-primary-light:hover {\n    border-color: #73b3e7;\n  }\n  .desktop\\:border-primary {\n    border-color: #005ea2;\n  }\n  .desktop\\:hover\\:border-primary:hover {\n    border-color: #005ea2;\n  }\n  .desktop\\:border-primary-vivid {\n    border-color: #0050d8;\n  }\n  .desktop\\:hover\\:border-primary-vivid:hover {\n    border-color: #0050d8;\n  }\n  .desktop\\:border-primary-dark {\n    border-color: #1a4480;\n  }\n  .desktop\\:hover\\:border-primary-dark:hover {\n    border-color: #1a4480;\n  }\n  .desktop\\:border-primary-darker {\n    border-color: #162e51;\n  }\n  .desktop\\:hover\\:border-primary-darker:hover {\n    border-color: #162e51;\n  }\n  .desktop\\:border-secondary-lighter {\n    border-color: #f3e1e4;\n  }\n  .desktop\\:hover\\:border-secondary-lighter:hover {\n    border-color: #f3e1e4;\n  }\n  .desktop\\:border-secondary-light {\n    border-color: #f2938c;\n  }\n  .desktop\\:hover\\:border-secondary-light:hover {\n    border-color: #f2938c;\n  }\n  .desktop\\:border-secondary {\n    border-color: #d83933;\n  }\n  .desktop\\:hover\\:border-secondary:hover {\n    border-color: #d83933;\n  }\n  .desktop\\:border-secondary-vivid {\n    border-color: #e41d3d;\n  }\n  .desktop\\:hover\\:border-secondary-vivid:hover {\n    border-color: #e41d3d;\n  }\n  .desktop\\:border-secondary-dark {\n    border-color: #b50909;\n  }\n  .desktop\\:hover\\:border-secondary-dark:hover {\n    border-color: #b50909;\n  }\n  .desktop\\:border-secondary-darker {\n    border-color: #8b0a03;\n  }\n  .desktop\\:hover\\:border-secondary-darker:hover {\n    border-color: #8b0a03;\n  }\n  .desktop\\:border-accent-warm-darker {\n    border-color: #775540;\n  }\n  .desktop\\:hover\\:border-accent-warm-darker:hover {\n    border-color: #775540;\n  }\n  .desktop\\:border-accent-warm-dark {\n    border-color: #c05600;\n  }\n  .desktop\\:hover\\:border-accent-warm-dark:hover {\n    border-color: #c05600;\n  }\n  .desktop\\:border-accent-warm {\n    border-color: #fa9441;\n  }\n  .desktop\\:hover\\:border-accent-warm:hover {\n    border-color: #fa9441;\n  }\n  .desktop\\:border-accent-warm-light {\n    border-color: #ffbc78;\n  }\n  .desktop\\:hover\\:border-accent-warm-light:hover {\n    border-color: #ffbc78;\n  }\n  .desktop\\:border-accent-warm-lighter {\n    border-color: #f2e4d4;\n  }\n  .desktop\\:hover\\:border-accent-warm-lighter:hover {\n    border-color: #f2e4d4;\n  }\n  .desktop\\:border-accent-cool-darker {\n    border-color: #07648d;\n  }\n  .desktop\\:hover\\:border-accent-cool-darker:hover {\n    border-color: #07648d;\n  }\n  .desktop\\:border-accent-cool-dark {\n    border-color: #28a0cb;\n  }\n  .desktop\\:hover\\:border-accent-cool-dark:hover {\n    border-color: #28a0cb;\n  }\n  .desktop\\:border-accent-cool {\n    border-color: #00bde3;\n  }\n  .desktop\\:hover\\:border-accent-cool:hover {\n    border-color: #00bde3;\n  }\n  .desktop\\:border-accent-cool-light {\n    border-color: #97d4ea;\n  }\n  .desktop\\:hover\\:border-accent-cool-light:hover {\n    border-color: #97d4ea;\n  }\n  .desktop\\:border-accent-cool-lighter {\n    border-color: #e1f3f8;\n  }\n  .desktop\\:hover\\:border-accent-cool-lighter:hover {\n    border-color: #e1f3f8;\n  }\n  .desktop\\:border-error-lighter {\n    border-color: #f4e3db;\n  }\n  .desktop\\:hover\\:border-error-lighter:hover {\n    border-color: #f4e3db;\n  }\n  .desktop\\:border-error-light {\n    border-color: #f39268;\n  }\n  .desktop\\:hover\\:border-error-light:hover {\n    border-color: #f39268;\n  }\n  .desktop\\:border-error {\n    border-color: #d54309;\n  }\n  .desktop\\:hover\\:border-error:hover {\n    border-color: #d54309;\n  }\n  .desktop\\:border-error-dark {\n    border-color: #b50909;\n  }\n  .desktop\\:hover\\:border-error-dark:hover {\n    border-color: #b50909;\n  }\n  .desktop\\:border-error-darker {\n    border-color: #6f3331;\n  }\n  .desktop\\:hover\\:border-error-darker:hover {\n    border-color: #6f3331;\n  }\n  .desktop\\:border-warning-lighter {\n    border-color: #faf3d1;\n  }\n  .desktop\\:hover\\:border-warning-lighter:hover {\n    border-color: #faf3d1;\n  }\n  .desktop\\:border-warning-light {\n    border-color: #fee685;\n  }\n  .desktop\\:hover\\:border-warning-light:hover {\n    border-color: #fee685;\n  }\n  .desktop\\:border-warning {\n    border-color: #ffbe2e;\n  }\n  .desktop\\:hover\\:border-warning:hover {\n    border-color: #ffbe2e;\n  }\n  .desktop\\:border-warning-dark {\n    border-color: #e5a000;\n  }\n  .desktop\\:hover\\:border-warning-dark:hover {\n    border-color: #e5a000;\n  }\n  .desktop\\:border-warning-darker {\n    border-color: #936f38;\n  }\n  .desktop\\:hover\\:border-warning-darker:hover {\n    border-color: #936f38;\n  }\n  .desktop\\:border-success-lighter {\n    border-color: #ecf3ec;\n  }\n  .desktop\\:hover\\:border-success-lighter:hover {\n    border-color: #ecf3ec;\n  }\n  .desktop\\:border-success-light {\n    border-color: #70e17b;\n  }\n  .desktop\\:hover\\:border-success-light:hover {\n    border-color: #70e17b;\n  }\n  .desktop\\:border-success {\n    border-color: #00a91c;\n  }\n  .desktop\\:hover\\:border-success:hover {\n    border-color: #00a91c;\n  }\n  .desktop\\:border-success-dark {\n    border-color: #008817;\n  }\n  .desktop\\:hover\\:border-success-dark:hover {\n    border-color: #008817;\n  }\n  .desktop\\:border-success-darker {\n    border-color: #216e1f;\n  }\n  .desktop\\:hover\\:border-success-darker:hover {\n    border-color: #216e1f;\n  }\n  .desktop\\:border-info-lighter {\n    border-color: #e7f6f8;\n  }\n  .desktop\\:hover\\:border-info-lighter:hover {\n    border-color: #e7f6f8;\n  }\n  .desktop\\:border-info-light {\n    border-color: #99deea;\n  }\n  .desktop\\:hover\\:border-info-light:hover {\n    border-color: #99deea;\n  }\n  .desktop\\:border-info {\n    border-color: #00bde3;\n  }\n  .desktop\\:hover\\:border-info:hover {\n    border-color: #00bde3;\n  }\n  .desktop\\:border-info-dark {\n    border-color: #009ec1;\n  }\n  .desktop\\:hover\\:border-info-dark:hover {\n    border-color: #009ec1;\n  }\n  .desktop\\:border-info-darker {\n    border-color: #2e6276;\n  }\n  .desktop\\:hover\\:border-info-darker:hover {\n    border-color: #2e6276;\n  }\n  .desktop\\:border-disabled-lighter {\n    border-color: #c9c9c9;\n  }\n  .desktop\\:hover\\:border-disabled-lighter:hover {\n    border-color: #c9c9c9;\n  }\n  .desktop\\:border-disabled-light {\n    border-color: #919191;\n  }\n  .desktop\\:hover\\:border-disabled-light:hover {\n    border-color: #919191;\n  }\n  .desktop\\:border-disabled {\n    border-color: #757575;\n  }\n  .desktop\\:hover\\:border-disabled:hover {\n    border-color: #757575;\n  }\n  .desktop\\:border-disabled-dark {\n    border-color: #454545;\n  }\n  .desktop\\:hover\\:border-disabled-dark:hover {\n    border-color: #454545;\n  }\n  .desktop\\:border-disabled-darker {\n    border-color: #1b1b1b;\n  }\n  .desktop\\:hover\\:border-disabled-darker:hover {\n    border-color: #1b1b1b;\n  }\n  .desktop\\:border-emergency {\n    border-color: #9c3d10;\n  }\n  .desktop\\:hover\\:border-emergency:hover {\n    border-color: #9c3d10;\n  }\n  .desktop\\:border-emergency-dark {\n    border-color: #332d29;\n  }\n  .desktop\\:hover\\:border-emergency-dark:hover {\n    border-color: #332d29;\n  }\n  .desktop\\:radius-0 {\n    border-radius: 0;\n  }\n  .desktop\\:radius-top-0 {\n    border-top-left-radius: 0;\n    border-top-right-radius: 0;\n  }\n  .desktop\\:radius-right-0 {\n    border-top-right-radius: 0;\n    border-bottom-right-radius: 0;\n  }\n  .desktop\\:radius-bottom-0 {\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n  }\n  .desktop\\:radius-left-0 {\n    border-top-left-radius: 0;\n    border-bottom-left-radius: 0;\n  }\n  .desktop\\:radius-sm {\n    border-radius: 2px;\n  }\n  .desktop\\:radius-top-sm {\n    border-top-left-radius: 2px;\n    border-top-right-radius: 2px;\n  }\n  .desktop\\:radius-right-sm {\n    border-top-right-radius: 2px;\n    border-bottom-right-radius: 2px;\n  }\n  .desktop\\:radius-bottom-sm {\n    border-bottom-left-radius: 2px;\n    border-bottom-right-radius: 2px;\n  }\n  .desktop\\:radius-left-sm {\n    border-top-left-radius: 2px;\n    border-bottom-left-radius: 2px;\n  }\n  .desktop\\:radius-md {\n    border-radius: 0.25rem;\n  }\n  .desktop\\:radius-top-md {\n    border-top-left-radius: 0.25rem;\n    border-top-right-radius: 0.25rem;\n  }\n  .desktop\\:radius-right-md {\n    border-top-right-radius: 0.25rem;\n    border-bottom-right-radius: 0.25rem;\n  }\n  .desktop\\:radius-bottom-md {\n    border-bottom-left-radius: 0.25rem;\n    border-bottom-right-radius: 0.25rem;\n  }\n  .desktop\\:radius-left-md {\n    border-top-left-radius: 0.25rem;\n    border-bottom-left-radius: 0.25rem;\n  }\n  .desktop\\:radius-lg {\n    border-radius: 0.5rem;\n  }\n  .desktop\\:radius-top-lg {\n    border-top-left-radius: 0.5rem;\n    border-top-right-radius: 0.5rem;\n  }\n  .desktop\\:radius-right-lg {\n    border-top-right-radius: 0.5rem;\n    border-bottom-right-radius: 0.5rem;\n  }\n  .desktop\\:radius-bottom-lg {\n    border-bottom-left-radius: 0.5rem;\n    border-bottom-right-radius: 0.5rem;\n  }\n  .desktop\\:radius-left-lg {\n    border-top-left-radius: 0.5rem;\n    border-bottom-left-radius: 0.5rem;\n  }\n  .desktop\\:radius-pill {\n    border-radius: 99rem;\n  }\n  .desktop\\:radius-top-pill {\n    border-top-left-radius: 99rem;\n    border-top-right-radius: 99rem;\n  }\n  .desktop\\:radius-right-pill {\n    border-top-right-radius: 99rem;\n    border-bottom-right-radius: 99rem;\n  }\n  .desktop\\:radius-bottom-pill {\n    border-bottom-left-radius: 99rem;\n    border-bottom-right-radius: 99rem;\n  }\n  .desktop\\:radius-left-pill {\n    border-top-left-radius: 99rem;\n    border-bottom-left-radius: 99rem;\n  }\n  .desktop\\:display-block {\n    display: block;\n  }\n  .desktop\\:display-flex {\n    display: flex;\n  }\n  .desktop\\:display-none {\n    display: none;\n  }\n  .desktop\\:display-inline {\n    display: inline;\n  }\n  .desktop\\:display-inline-block {\n    display: inline-block;\n  }\n  .desktop\\:display-inline-flex {\n    display: inline-flex;\n  }\n  .desktop\\:display-table {\n    display: table;\n  }\n  .desktop\\:display-table-cell {\n    display: table-cell;\n  }\n  .desktop\\:display-table-row {\n    display: table-row;\n  }\n  .desktop\\:font-mono-3xs {\n    font-size: 0.77rem;\n  }\n  .desktop\\:font-mono-2xs {\n    font-size: 0.83rem;\n  }\n  .desktop\\:font-mono-xs {\n    font-size: 0.89rem;\n  }\n  .desktop\\:font-mono-sm {\n    font-size: 0.95rem;\n  }\n  .desktop\\:font-mono-md {\n    font-size: 1.01rem;\n  }\n  .desktop\\:font-mono-lg {\n    font-size: 1.31rem;\n  }\n  .desktop\\:font-mono-xl {\n    font-size: 1.91rem;\n  }\n  .desktop\\:font-mono-2xl {\n    font-size: 2.38rem;\n  }\n  .desktop\\:font-mono-3xl {\n    font-size: 2.86rem;\n  }\n  .desktop\\:font-sans-3xs {\n    font-size: 0.87rem;\n  }\n  .desktop\\:font-sans-2xs {\n    font-size: 0.93rem;\n  }\n  .desktop\\:font-sans-xs {\n    font-size: 1rem;\n  }\n  .desktop\\:font-sans-sm {\n    font-size: 1.06rem;\n  }\n  .desktop\\:font-sans-md {\n    font-size: 1.13rem;\n  }\n  .desktop\\:font-sans-lg {\n    font-size: 1.46rem;\n  }\n  .desktop\\:font-sans-xl {\n    font-size: 2.13rem;\n  }\n  .desktop\\:font-sans-2xl {\n    font-size: 2.66rem;\n  }\n  .desktop\\:font-sans-3xl {\n    font-size: 3.19rem;\n  }\n  .desktop\\:font-serif-3xs {\n    font-size: 0.79rem;\n  }\n  .desktop\\:font-serif-2xs {\n    font-size: 0.85rem;\n  }\n  .desktop\\:font-serif-xs {\n    font-size: 0.91rem;\n  }\n  .desktop\\:font-serif-sm {\n    font-size: 0.98rem;\n  }\n  .desktop\\:font-serif-md {\n    font-size: 1.04rem;\n  }\n  .desktop\\:font-serif-lg {\n    font-size: 1.34rem;\n  }\n  .desktop\\:font-serif-xl {\n    font-size: 1.95rem;\n  }\n  .desktop\\:font-serif-2xl {\n    font-size: 2.44rem;\n  }\n  .desktop\\:font-serif-3xl {\n    font-size: 2.93rem;\n  }\n  .desktop\\:font-heading-3xs {\n    font-size: 0.79rem;\n  }\n  .desktop\\:font-heading-2xs {\n    font-size: 0.85rem;\n  }\n  .desktop\\:font-heading-xs {\n    font-size: 0.91rem;\n  }\n  .desktop\\:font-heading-sm {\n    font-size: 0.98rem;\n  }\n  .desktop\\:font-heading-md {\n    font-size: 1.04rem;\n  }\n  .desktop\\:font-heading-lg {\n    font-size: 1.34rem;\n  }\n  .desktop\\:font-heading-xl {\n    font-size: 1.95rem;\n  }\n  .desktop\\:font-heading-2xl {\n    font-size: 2.44rem;\n  }\n  .desktop\\:font-heading-3xl {\n    font-size: 2.93rem;\n  }\n  .desktop\\:font-body-3xs {\n    font-size: 0.87rem;\n  }\n  .desktop\\:font-body-2xs {\n    font-size: 0.93rem;\n  }\n  .desktop\\:font-body-xs {\n    font-size: 1rem;\n  }\n  .desktop\\:font-body-sm {\n    font-size: 1.06rem;\n  }\n  .desktop\\:font-body-md {\n    font-size: 1.13rem;\n  }\n  .desktop\\:font-body-lg {\n    font-size: 1.46rem;\n  }\n  .desktop\\:font-body-xl {\n    font-size: 2.13rem;\n  }\n  .desktop\\:font-body-2xl {\n    font-size: 2.66rem;\n  }\n  .desktop\\:font-body-3xl {\n    font-size: 3.19rem;\n  }\n  .desktop\\:font-code-3xs {\n    font-size: 0.77rem;\n  }\n  .desktop\\:font-code-2xs {\n    font-size: 0.83rem;\n  }\n  .desktop\\:font-code-xs {\n    font-size: 0.89rem;\n  }\n  .desktop\\:font-code-sm {\n    font-size: 0.95rem;\n  }\n  .desktop\\:font-code-md {\n    font-size: 1.01rem;\n  }\n  .desktop\\:font-code-lg {\n    font-size: 1.31rem;\n  }\n  .desktop\\:font-code-xl {\n    font-size: 1.91rem;\n  }\n  .desktop\\:font-code-2xl {\n    font-size: 2.38rem;\n  }\n  .desktop\\:font-code-3xl {\n    font-size: 2.86rem;\n  }\n  .desktop\\:font-alt-3xs {\n    font-size: 0.79rem;\n  }\n  .desktop\\:font-alt-2xs {\n    font-size: 0.85rem;\n  }\n  .desktop\\:font-alt-xs {\n    font-size: 0.91rem;\n  }\n  .desktop\\:font-alt-sm {\n    font-size: 0.98rem;\n  }\n  .desktop\\:font-alt-md {\n    font-size: 1.04rem;\n  }\n  .desktop\\:font-alt-lg {\n    font-size: 1.34rem;\n  }\n  .desktop\\:font-alt-xl {\n    font-size: 1.95rem;\n  }\n  .desktop\\:font-alt-2xl {\n    font-size: 2.44rem;\n  }\n  .desktop\\:font-alt-3xl {\n    font-size: 2.93rem;\n  }\n  .desktop\\:font-ui-3xs {\n    font-size: 0.87rem;\n  }\n  .desktop\\:font-ui-2xs {\n    font-size: 0.93rem;\n  }\n  .desktop\\:font-ui-xs {\n    font-size: 1rem;\n  }\n  .desktop\\:font-ui-sm {\n    font-size: 1.06rem;\n  }\n  .desktop\\:font-ui-md {\n    font-size: 1.13rem;\n  }\n  .desktop\\:font-ui-lg {\n    font-size: 1.46rem;\n  }\n  .desktop\\:font-ui-xl {\n    font-size: 2.13rem;\n  }\n  .desktop\\:font-ui-2xl {\n    font-size: 2.66rem;\n  }\n  .desktop\\:font-ui-3xl {\n    font-size: 3.19rem;\n  }\n  .desktop\\:text-light {\n    font-weight: 300;\n  }\n  .desktop\\:text-normal {\n    font-weight: normal;\n  }\n  .desktop\\:text-bold {\n    font-weight: 700;\n  }\n  .desktop\\:flex-justify-center {\n    justify-content: center;\n  }\n  .desktop\\:flex-justify-start {\n    justify-content: flex-start;\n  }\n  .desktop\\:flex-justify-end {\n    justify-content: flex-end;\n  }\n  .desktop\\:flex-justify {\n    justify-content: space-between;\n  }\n  .desktop\\:line-height-sans-1 {\n    line-height: 0.9;\n  }\n  .desktop\\:line-height-sans-2 {\n    line-height: 1.1;\n  }\n  .desktop\\:line-height-sans-3 {\n    line-height: 1.3;\n  }\n  .desktop\\:line-height-sans-4 {\n    line-height: 1.4;\n  }\n  .desktop\\:line-height-sans-5 {\n    line-height: 1.5;\n  }\n  .desktop\\:line-height-sans-6 {\n    line-height: 1.6;\n  }\n  .desktop\\:line-height-serif-1 {\n    line-height: 1;\n  }\n  .desktop\\:line-height-serif-2 {\n    line-height: 1.2;\n  }\n  .desktop\\:line-height-serif-3 {\n    line-height: 1.4;\n  }\n  .desktop\\:line-height-serif-4 {\n    line-height: 1.5;\n  }\n  .desktop\\:line-height-serif-5 {\n    line-height: 1.7;\n  }\n  .desktop\\:line-height-serif-6 {\n    line-height: 1.8;\n  }\n  .desktop\\:line-height-mono-1 {\n    line-height: 1;\n  }\n  .desktop\\:line-height-mono-2 {\n    line-height: 1.3;\n  }\n  .desktop\\:line-height-mono-3 {\n    line-height: 1.4;\n  }\n  .desktop\\:line-height-mono-4 {\n    line-height: 1.6;\n  }\n  .desktop\\:line-height-mono-5 {\n    line-height: 1.7;\n  }\n  .desktop\\:line-height-mono-6 {\n    line-height: 1.8;\n  }\n  .desktop\\:line-height-heading-1 {\n    line-height: 1;\n  }\n  .desktop\\:line-height-heading-2 {\n    line-height: 1.2;\n  }\n  .desktop\\:line-height-heading-3 {\n    line-height: 1.4;\n  }\n  .desktop\\:line-height-heading-4 {\n    line-height: 1.5;\n  }\n  .desktop\\:line-height-heading-5 {\n    line-height: 1.7;\n  }\n  .desktop\\:line-height-heading-6 {\n    line-height: 1.8;\n  }\n  .desktop\\:line-height-ui-1 {\n    line-height: 0.9;\n  }\n  .desktop\\:line-height-ui-2 {\n    line-height: 1.1;\n  }\n  .desktop\\:line-height-ui-3 {\n    line-height: 1.3;\n  }\n  .desktop\\:line-height-ui-4 {\n    line-height: 1.4;\n  }\n  .desktop\\:line-height-ui-5 {\n    line-height: 1.5;\n  }\n  .desktop\\:line-height-ui-6 {\n    line-height: 1.6;\n  }\n  .desktop\\:line-height-body-1 {\n    line-height: 0.9;\n  }\n  .desktop\\:line-height-body-2 {\n    line-height: 1.1;\n  }\n  .desktop\\:line-height-body-3 {\n    line-height: 1.3;\n  }\n  .desktop\\:line-height-body-4 {\n    line-height: 1.4;\n  }\n  .desktop\\:line-height-body-5 {\n    line-height: 1.5;\n  }\n  .desktop\\:line-height-body-6 {\n    line-height: 1.6;\n  }\n  .desktop\\:line-height-code-1 {\n    line-height: 1;\n  }\n  .desktop\\:line-height-code-2 {\n    line-height: 1.3;\n  }\n  .desktop\\:line-height-code-3 {\n    line-height: 1.4;\n  }\n  .desktop\\:line-height-code-4 {\n    line-height: 1.6;\n  }\n  .desktop\\:line-height-code-5 {\n    line-height: 1.7;\n  }\n  .desktop\\:line-height-code-6 {\n    line-height: 1.8;\n  }\n  .desktop\\:line-height-alt-1 {\n    line-height: 1;\n  }\n  .desktop\\:line-height-alt-2 {\n    line-height: 1.2;\n  }\n  .desktop\\:line-height-alt-3 {\n    line-height: 1.4;\n  }\n  .desktop\\:line-height-alt-4 {\n    line-height: 1.5;\n  }\n  .desktop\\:line-height-alt-5 {\n    line-height: 1.7;\n  }\n  .desktop\\:line-height-alt-6 {\n    line-height: 1.8;\n  }\n  .desktop\\:margin-neg-1px {\n    margin: -1px;\n  }\n  .desktop\\:margin-neg-2px {\n    margin: -2px;\n  }\n  .desktop\\:margin-neg-05 {\n    margin: -0.25rem;\n  }\n  .desktop\\:margin-neg-1 {\n    margin: -0.5rem;\n  }\n  .desktop\\:margin-neg-105 {\n    margin: -0.75rem;\n  }\n  .desktop\\:margin-neg-2 {\n    margin: -1rem;\n  }\n  .desktop\\:margin-neg-205 {\n    margin: -1.25rem;\n  }\n  .desktop\\:margin-neg-3 {\n    margin: -1.5rem;\n  }\n  .desktop\\:margin-1px {\n    margin: 1px;\n  }\n  .desktop\\:margin-2px {\n    margin: 2px;\n  }\n  .desktop\\:margin-05 {\n    margin: 0.25rem;\n  }\n  .desktop\\:margin-1 {\n    margin: 0.5rem;\n  }\n  .desktop\\:margin-105 {\n    margin: 0.75rem;\n  }\n  .desktop\\:margin-2 {\n    margin: 1rem;\n  }\n  .desktop\\:margin-205 {\n    margin: 1.25rem;\n  }\n  .desktop\\:margin-3 {\n    margin: 1.5rem;\n  }\n  .desktop\\:margin-neg-4 {\n    margin: -2rem;\n  }\n  .desktop\\:margin-neg-5 {\n    margin: -2.5rem;\n  }\n  .desktop\\:margin-neg-6 {\n    margin: -3rem;\n  }\n  .desktop\\:margin-neg-7 {\n    margin: -3.5rem;\n  }\n  .desktop\\:margin-neg-8 {\n    margin: -4rem;\n  }\n  .desktop\\:margin-neg-9 {\n    margin: -4.5rem;\n  }\n  .desktop\\:margin-neg-10 {\n    margin: -5rem;\n  }\n  .desktop\\:margin-neg-15 {\n    margin: -7.5rem;\n  }\n  .desktop\\:margin-4 {\n    margin: 2rem;\n  }\n  .desktop\\:margin-5 {\n    margin: 2.5rem;\n  }\n  .desktop\\:margin-6 {\n    margin: 3rem;\n  }\n  .desktop\\:margin-7 {\n    margin: 3.5rem;\n  }\n  .desktop\\:margin-8 {\n    margin: 4rem;\n  }\n  .desktop\\:margin-9 {\n    margin: 4.5rem;\n  }\n  .desktop\\:margin-10 {\n    margin: 5rem;\n  }\n  .desktop\\:margin-15 {\n    margin: 7.5rem;\n  }\n  .desktop\\:margin-05em {\n    margin: 0.5em;\n  }\n  .desktop\\:margin-1em {\n    margin: 1em;\n  }\n  .desktop\\:margin-105em {\n    margin: 1.5em;\n  }\n  .desktop\\:margin-2em {\n    margin: 2em;\n  }\n  .desktop\\:margin-0 {\n    margin: 0;\n  }\n  .desktop\\:margin-y-1px {\n    margin-top: 1px;\n    margin-bottom: 1px;\n  }\n  .desktop\\:margin-top-1px {\n    margin-top: 1px;\n  }\n  .desktop\\:margin-bottom-1px {\n    margin-bottom: 1px;\n  }\n  .desktop\\:margin-y-2px {\n    margin-top: 2px;\n    margin-bottom: 2px;\n  }\n  .desktop\\:margin-top-2px {\n    margin-top: 2px;\n  }\n  .desktop\\:margin-bottom-2px {\n    margin-bottom: 2px;\n  }\n  .desktop\\:margin-y-05 {\n    margin-top: 0.25rem;\n    margin-bottom: 0.25rem;\n  }\n  .desktop\\:margin-top-05 {\n    margin-top: 0.25rem;\n  }\n  .desktop\\:margin-bottom-05 {\n    margin-bottom: 0.25rem;\n  }\n  .desktop\\:margin-y-1 {\n    margin-top: 0.5rem;\n    margin-bottom: 0.5rem;\n  }\n  .desktop\\:margin-top-1 {\n    margin-top: 0.5rem;\n  }\n  .desktop\\:margin-bottom-1 {\n    margin-bottom: 0.5rem;\n  }\n  .desktop\\:margin-y-105 {\n    margin-top: 0.75rem;\n    margin-bottom: 0.75rem;\n  }\n  .desktop\\:margin-top-105 {\n    margin-top: 0.75rem;\n  }\n  .desktop\\:margin-bottom-105 {\n    margin-bottom: 0.75rem;\n  }\n  .desktop\\:margin-y-2 {\n    margin-top: 1rem;\n    margin-bottom: 1rem;\n  }\n  .desktop\\:margin-top-2 {\n    margin-top: 1rem;\n  }\n  .desktop\\:margin-bottom-2 {\n    margin-bottom: 1rem;\n  }\n  .desktop\\:margin-y-205 {\n    margin-top: 1.25rem;\n    margin-bottom: 1.25rem;\n  }\n  .desktop\\:margin-top-205 {\n    margin-top: 1.25rem;\n  }\n  .desktop\\:margin-bottom-205 {\n    margin-bottom: 1.25rem;\n  }\n  .desktop\\:margin-y-3 {\n    margin-top: 1.5rem;\n    margin-bottom: 1.5rem;\n  }\n  .desktop\\:margin-top-3 {\n    margin-top: 1.5rem;\n  }\n  .desktop\\:margin-bottom-3 {\n    margin-bottom: 1.5rem;\n  }\n  .desktop\\:margin-y-neg-1px {\n    margin-top: -1px;\n    margin-bottom: -1px;\n  }\n  .desktop\\:margin-top-neg-1px {\n    margin-top: -1px;\n  }\n  .desktop\\:margin-bottom-neg-1px {\n    margin-bottom: -1px;\n  }\n  .desktop\\:margin-y-neg-2px {\n    margin-top: -2px;\n    margin-bottom: -2px;\n  }\n  .desktop\\:margin-top-neg-2px {\n    margin-top: -2px;\n  }\n  .desktop\\:margin-bottom-neg-2px {\n    margin-bottom: -2px;\n  }\n  .desktop\\:margin-y-neg-05 {\n    margin-top: -0.25rem;\n    margin-bottom: -0.25rem;\n  }\n  .desktop\\:margin-top-neg-05 {\n    margin-top: -0.25rem;\n  }\n  .desktop\\:margin-bottom-neg-05 {\n    margin-bottom: -0.25rem;\n  }\n  .desktop\\:margin-y-neg-1 {\n    margin-top: -0.5rem;\n    margin-bottom: -0.5rem;\n  }\n  .desktop\\:margin-top-neg-1 {\n    margin-top: -0.5rem;\n  }\n  .desktop\\:margin-bottom-neg-1 {\n    margin-bottom: -0.5rem;\n  }\n  .desktop\\:margin-y-neg-105 {\n    margin-top: -0.75rem;\n    margin-bottom: -0.75rem;\n  }\n  .desktop\\:margin-top-neg-105 {\n    margin-top: -0.75rem;\n  }\n  .desktop\\:margin-bottom-neg-105 {\n    margin-bottom: -0.75rem;\n  }\n  .desktop\\:margin-y-neg-2 {\n    margin-top: -1rem;\n    margin-bottom: -1rem;\n  }\n  .desktop\\:margin-top-neg-2 {\n    margin-top: -1rem;\n  }\n  .desktop\\:margin-bottom-neg-2 {\n    margin-bottom: -1rem;\n  }\n  .desktop\\:margin-y-neg-205 {\n    margin-top: -1.25rem;\n    margin-bottom: -1.25rem;\n  }\n  .desktop\\:margin-top-neg-205 {\n    margin-top: -1.25rem;\n  }\n  .desktop\\:margin-bottom-neg-205 {\n    margin-bottom: -1.25rem;\n  }\n  .desktop\\:margin-y-neg-3 {\n    margin-top: -1.5rem;\n    margin-bottom: -1.5rem;\n  }\n  .desktop\\:margin-top-neg-3 {\n    margin-top: -1.5rem;\n  }\n  .desktop\\:margin-bottom-neg-3 {\n    margin-bottom: -1.5rem;\n  }\n  .desktop\\:margin-y-neg-4 {\n    margin-top: -2rem;\n    margin-bottom: -2rem;\n  }\n  .desktop\\:margin-top-neg-4 {\n    margin-top: -2rem;\n  }\n  .desktop\\:margin-bottom-neg-4 {\n    margin-bottom: -2rem;\n  }\n  .desktop\\:margin-y-neg-5 {\n    margin-top: -2.5rem;\n    margin-bottom: -2.5rem;\n  }\n  .desktop\\:margin-top-neg-5 {\n    margin-top: -2.5rem;\n  }\n  .desktop\\:margin-bottom-neg-5 {\n    margin-bottom: -2.5rem;\n  }\n  .desktop\\:margin-y-neg-6 {\n    margin-top: -3rem;\n    margin-bottom: -3rem;\n  }\n  .desktop\\:margin-top-neg-6 {\n    margin-top: -3rem;\n  }\n  .desktop\\:margin-bottom-neg-6 {\n    margin-bottom: -3rem;\n  }\n  .desktop\\:margin-y-neg-7 {\n    margin-top: -3.5rem;\n    margin-bottom: -3.5rem;\n  }\n  .desktop\\:margin-top-neg-7 {\n    margin-top: -3.5rem;\n  }\n  .desktop\\:margin-bottom-neg-7 {\n    margin-bottom: -3.5rem;\n  }\n  .desktop\\:margin-y-neg-8 {\n    margin-top: -4rem;\n    margin-bottom: -4rem;\n  }\n  .desktop\\:margin-top-neg-8 {\n    margin-top: -4rem;\n  }\n  .desktop\\:margin-bottom-neg-8 {\n    margin-bottom: -4rem;\n  }\n  .desktop\\:margin-y-neg-9 {\n    margin-top: -4.5rem;\n    margin-bottom: -4.5rem;\n  }\n  .desktop\\:margin-top-neg-9 {\n    margin-top: -4.5rem;\n  }\n  .desktop\\:margin-bottom-neg-9 {\n    margin-bottom: -4.5rem;\n  }\n  .desktop\\:margin-y-neg-10 {\n    margin-top: -5rem;\n    margin-bottom: -5rem;\n  }\n  .desktop\\:margin-top-neg-10 {\n    margin-top: -5rem;\n  }\n  .desktop\\:margin-bottom-neg-10 {\n    margin-bottom: -5rem;\n  }\n  .desktop\\:margin-y-neg-15 {\n    margin-top: -7.5rem;\n    margin-bottom: -7.5rem;\n  }\n  .desktop\\:margin-top-neg-15 {\n    margin-top: -7.5rem;\n  }\n  .desktop\\:margin-bottom-neg-15 {\n    margin-bottom: -7.5rem;\n  }\n  .desktop\\:margin-y-4 {\n    margin-top: 2rem;\n    margin-bottom: 2rem;\n  }\n  .desktop\\:margin-top-4 {\n    margin-top: 2rem;\n  }\n  .desktop\\:margin-bottom-4 {\n    margin-bottom: 2rem;\n  }\n  .desktop\\:margin-y-5 {\n    margin-top: 2.5rem;\n    margin-bottom: 2.5rem;\n  }\n  .desktop\\:margin-top-5 {\n    margin-top: 2.5rem;\n  }\n  .desktop\\:margin-bottom-5 {\n    margin-bottom: 2.5rem;\n  }\n  .desktop\\:margin-y-6 {\n    margin-top: 3rem;\n    margin-bottom: 3rem;\n  }\n  .desktop\\:margin-top-6 {\n    margin-top: 3rem;\n  }\n  .desktop\\:margin-bottom-6 {\n    margin-bottom: 3rem;\n  }\n  .desktop\\:margin-y-7 {\n    margin-top: 3.5rem;\n    margin-bottom: 3.5rem;\n  }\n  .desktop\\:margin-top-7 {\n    margin-top: 3.5rem;\n  }\n  .desktop\\:margin-bottom-7 {\n    margin-bottom: 3.5rem;\n  }\n  .desktop\\:margin-y-8 {\n    margin-top: 4rem;\n    margin-bottom: 4rem;\n  }\n  .desktop\\:margin-top-8 {\n    margin-top: 4rem;\n  }\n  .desktop\\:margin-bottom-8 {\n    margin-bottom: 4rem;\n  }\n  .desktop\\:margin-y-9 {\n    margin-top: 4.5rem;\n    margin-bottom: 4.5rem;\n  }\n  .desktop\\:margin-top-9 {\n    margin-top: 4.5rem;\n  }\n  .desktop\\:margin-bottom-9 {\n    margin-bottom: 4.5rem;\n  }\n  .desktop\\:margin-y-10 {\n    margin-top: 5rem;\n    margin-bottom: 5rem;\n  }\n  .desktop\\:margin-top-10 {\n    margin-top: 5rem;\n  }\n  .desktop\\:margin-bottom-10 {\n    margin-bottom: 5rem;\n  }\n  .desktop\\:margin-y-15 {\n    margin-top: 7.5rem;\n    margin-bottom: 7.5rem;\n  }\n  .desktop\\:margin-top-15 {\n    margin-top: 7.5rem;\n  }\n  .desktop\\:margin-bottom-15 {\n    margin-bottom: 7.5rem;\n  }\n  .desktop\\:margin-y-05em {\n    margin-top: 0.5em;\n    margin-bottom: 0.5em;\n  }\n  .desktop\\:margin-top-05em {\n    margin-top: 0.5em;\n  }\n  .desktop\\:margin-bottom-05em {\n    margin-bottom: 0.5em;\n  }\n  .desktop\\:margin-y-1em {\n    margin-top: 1em;\n    margin-bottom: 1em;\n  }\n  .desktop\\:margin-top-1em {\n    margin-top: 1em;\n  }\n  .desktop\\:margin-bottom-1em {\n    margin-bottom: 1em;\n  }\n  .desktop\\:margin-y-105em {\n    margin-top: 1.5em;\n    margin-bottom: 1.5em;\n  }\n  .desktop\\:margin-top-105em {\n    margin-top: 1.5em;\n  }\n  .desktop\\:margin-bottom-105em {\n    margin-bottom: 1.5em;\n  }\n  .desktop\\:margin-y-2em {\n    margin-top: 2em;\n    margin-bottom: 2em;\n  }\n  .desktop\\:margin-top-2em {\n    margin-top: 2em;\n  }\n  .desktop\\:margin-bottom-2em {\n    margin-bottom: 2em;\n  }\n  .desktop\\:margin-y-0 {\n    margin-top: 0;\n    margin-bottom: 0;\n  }\n  .desktop\\:margin-top-0 {\n    margin-top: 0;\n  }\n  .desktop\\:margin-bottom-0 {\n    margin-bottom: 0;\n  }\n  .desktop\\:margin-y-auto {\n    margin-top: auto;\n    margin-bottom: auto;\n  }\n  .desktop\\:margin-top-auto {\n    margin-top: auto;\n  }\n  .desktop\\:margin-bottom-auto {\n    margin-bottom: auto;\n  }\n  .desktop\\:margin-x-1px {\n    margin-left: 1px;\n    margin-right: 1px;\n  }\n  .desktop\\:margin-right-1px {\n    margin-right: 1px;\n  }\n  .desktop\\:margin-left-1px {\n    margin-left: 1px;\n  }\n  .desktop\\:margin-x-2px {\n    margin-left: 2px;\n    margin-right: 2px;\n  }\n  .desktop\\:margin-right-2px {\n    margin-right: 2px;\n  }\n  .desktop\\:margin-left-2px {\n    margin-left: 2px;\n  }\n  .desktop\\:margin-x-05 {\n    margin-left: 0.25rem;\n    margin-right: 0.25rem;\n  }\n  .desktop\\:margin-right-05 {\n    margin-right: 0.25rem;\n  }\n  .desktop\\:margin-left-05 {\n    margin-left: 0.25rem;\n  }\n  .desktop\\:margin-x-1 {\n    margin-left: 0.5rem;\n    margin-right: 0.5rem;\n  }\n  .desktop\\:margin-right-1 {\n    margin-right: 0.5rem;\n  }\n  .desktop\\:margin-left-1 {\n    margin-left: 0.5rem;\n  }\n  .desktop\\:margin-x-105 {\n    margin-left: 0.75rem;\n    margin-right: 0.75rem;\n  }\n  .desktop\\:margin-right-105 {\n    margin-right: 0.75rem;\n  }\n  .desktop\\:margin-left-105 {\n    margin-left: 0.75rem;\n  }\n  .desktop\\:margin-x-2 {\n    margin-left: 1rem;\n    margin-right: 1rem;\n  }\n  .desktop\\:margin-right-2 {\n    margin-right: 1rem;\n  }\n  .desktop\\:margin-left-2 {\n    margin-left: 1rem;\n  }\n  .desktop\\:margin-x-205 {\n    margin-left: 1.25rem;\n    margin-right: 1.25rem;\n  }\n  .desktop\\:margin-right-205 {\n    margin-right: 1.25rem;\n  }\n  .desktop\\:margin-left-205 {\n    margin-left: 1.25rem;\n  }\n  .desktop\\:margin-x-3 {\n    margin-left: 1.5rem;\n    margin-right: 1.5rem;\n  }\n  .desktop\\:margin-right-3 {\n    margin-right: 1.5rem;\n  }\n  .desktop\\:margin-left-3 {\n    margin-left: 1.5rem;\n  }\n  .desktop\\:margin-x-neg-1px {\n    margin-left: -1px;\n    margin-right: -1px;\n  }\n  .desktop\\:margin-right-neg-1px {\n    margin-right: -1px;\n  }\n  .desktop\\:margin-left-neg-1px {\n    margin-left: -1px;\n  }\n  .desktop\\:margin-x-neg-2px {\n    margin-left: -2px;\n    margin-right: -2px;\n  }\n  .desktop\\:margin-right-neg-2px {\n    margin-right: -2px;\n  }\n  .desktop\\:margin-left-neg-2px {\n    margin-left: -2px;\n  }\n  .desktop\\:margin-x-neg-05 {\n    margin-left: -0.25rem;\n    margin-right: -0.25rem;\n  }\n  .desktop\\:margin-right-neg-05 {\n    margin-right: -0.25rem;\n  }\n  .desktop\\:margin-left-neg-05 {\n    margin-left: -0.25rem;\n  }\n  .desktop\\:margin-x-neg-1 {\n    margin-left: -0.5rem;\n    margin-right: -0.5rem;\n  }\n  .desktop\\:margin-right-neg-1 {\n    margin-right: -0.5rem;\n  }\n  .desktop\\:margin-left-neg-1 {\n    margin-left: -0.5rem;\n  }\n  .desktop\\:margin-x-neg-105 {\n    margin-left: -0.75rem;\n    margin-right: -0.75rem;\n  }\n  .desktop\\:margin-right-neg-105 {\n    margin-right: -0.75rem;\n  }\n  .desktop\\:margin-left-neg-105 {\n    margin-left: -0.75rem;\n  }\n  .desktop\\:margin-x-neg-2 {\n    margin-left: -1rem;\n    margin-right: -1rem;\n  }\n  .desktop\\:margin-right-neg-2 {\n    margin-right: -1rem;\n  }\n  .desktop\\:margin-left-neg-2 {\n    margin-left: -1rem;\n  }\n  .desktop\\:margin-x-neg-205 {\n    margin-left: -1.25rem;\n    margin-right: -1.25rem;\n  }\n  .desktop\\:margin-right-neg-205 {\n    margin-right: -1.25rem;\n  }\n  .desktop\\:margin-left-neg-205 {\n    margin-left: -1.25rem;\n  }\n  .desktop\\:margin-x-neg-3 {\n    margin-left: -1.5rem;\n    margin-right: -1.5rem;\n  }\n  .desktop\\:margin-right-neg-3 {\n    margin-right: -1.5rem;\n  }\n  .desktop\\:margin-left-neg-3 {\n    margin-left: -1.5rem;\n  }\n  .desktop\\:margin-x-neg-4 {\n    margin-left: -2rem;\n    margin-right: -2rem;\n  }\n  .desktop\\:margin-right-neg-4 {\n    margin-right: -2rem;\n  }\n  .desktop\\:margin-left-neg-4 {\n    margin-left: -2rem;\n  }\n  .desktop\\:margin-x-neg-5 {\n    margin-left: -2.5rem;\n    margin-right: -2.5rem;\n  }\n  .desktop\\:margin-right-neg-5 {\n    margin-right: -2.5rem;\n  }\n  .desktop\\:margin-left-neg-5 {\n    margin-left: -2.5rem;\n  }\n  .desktop\\:margin-x-neg-6 {\n    margin-left: -3rem;\n    margin-right: -3rem;\n  }\n  .desktop\\:margin-right-neg-6 {\n    margin-right: -3rem;\n  }\n  .desktop\\:margin-left-neg-6 {\n    margin-left: -3rem;\n  }\n  .desktop\\:margin-x-neg-7 {\n    margin-left: -3.5rem;\n    margin-right: -3.5rem;\n  }\n  .desktop\\:margin-right-neg-7 {\n    margin-right: -3.5rem;\n  }\n  .desktop\\:margin-left-neg-7 {\n    margin-left: -3.5rem;\n  }\n  .desktop\\:margin-x-neg-8 {\n    margin-left: -4rem;\n    margin-right: -4rem;\n  }\n  .desktop\\:margin-right-neg-8 {\n    margin-right: -4rem;\n  }\n  .desktop\\:margin-left-neg-8 {\n    margin-left: -4rem;\n  }\n  .desktop\\:margin-x-neg-9 {\n    margin-left: -4.5rem;\n    margin-right: -4.5rem;\n  }\n  .desktop\\:margin-right-neg-9 {\n    margin-right: -4.5rem;\n  }\n  .desktop\\:margin-left-neg-9 {\n    margin-left: -4.5rem;\n  }\n  .desktop\\:margin-x-neg-10 {\n    margin-left: -5rem;\n    margin-right: -5rem;\n  }\n  .desktop\\:margin-right-neg-10 {\n    margin-right: -5rem;\n  }\n  .desktop\\:margin-left-neg-10 {\n    margin-left: -5rem;\n  }\n  .desktop\\:margin-x-neg-15 {\n    margin-left: -7.5rem;\n    margin-right: -7.5rem;\n  }\n  .desktop\\:margin-right-neg-15 {\n    margin-right: -7.5rem;\n  }\n  .desktop\\:margin-left-neg-15 {\n    margin-left: -7.5rem;\n  }\n  .desktop\\:margin-x-4 {\n    margin-left: 2rem;\n    margin-right: 2rem;\n  }\n  .desktop\\:margin-right-4 {\n    margin-right: 2rem;\n  }\n  .desktop\\:margin-left-4 {\n    margin-left: 2rem;\n  }\n  .desktop\\:margin-x-5 {\n    margin-left: 2.5rem;\n    margin-right: 2.5rem;\n  }\n  .desktop\\:margin-right-5 {\n    margin-right: 2.5rem;\n  }\n  .desktop\\:margin-left-5 {\n    margin-left: 2.5rem;\n  }\n  .desktop\\:margin-x-6 {\n    margin-left: 3rem;\n    margin-right: 3rem;\n  }\n  .desktop\\:margin-right-6 {\n    margin-right: 3rem;\n  }\n  .desktop\\:margin-left-6 {\n    margin-left: 3rem;\n  }\n  .desktop\\:margin-x-7 {\n    margin-left: 3.5rem;\n    margin-right: 3.5rem;\n  }\n  .desktop\\:margin-right-7 {\n    margin-right: 3.5rem;\n  }\n  .desktop\\:margin-left-7 {\n    margin-left: 3.5rem;\n  }\n  .desktop\\:margin-x-8 {\n    margin-left: 4rem;\n    margin-right: 4rem;\n  }\n  .desktop\\:margin-right-8 {\n    margin-right: 4rem;\n  }\n  .desktop\\:margin-left-8 {\n    margin-left: 4rem;\n  }\n  .desktop\\:margin-x-9 {\n    margin-left: 4.5rem;\n    margin-right: 4.5rem;\n  }\n  .desktop\\:margin-right-9 {\n    margin-right: 4.5rem;\n  }\n  .desktop\\:margin-left-9 {\n    margin-left: 4.5rem;\n  }\n  .desktop\\:margin-x-10 {\n    margin-left: 5rem;\n    margin-right: 5rem;\n  }\n  .desktop\\:margin-right-10 {\n    margin-right: 5rem;\n  }\n  .desktop\\:margin-left-10 {\n    margin-left: 5rem;\n  }\n  .desktop\\:margin-x-15 {\n    margin-left: 7.5rem;\n    margin-right: 7.5rem;\n  }\n  .desktop\\:margin-right-15 {\n    margin-right: 7.5rem;\n  }\n  .desktop\\:margin-left-15 {\n    margin-left: 7.5rem;\n  }\n  .desktop\\:margin-x-card {\n    margin-left: 10rem;\n    margin-right: 10rem;\n  }\n  .desktop\\:margin-right-card {\n    margin-right: 10rem;\n  }\n  .desktop\\:margin-left-card {\n    margin-left: 10rem;\n  }\n  .desktop\\:margin-x-card-lg {\n    margin-left: 15rem;\n    margin-right: 15rem;\n  }\n  .desktop\\:margin-right-card-lg {\n    margin-right: 15rem;\n  }\n  .desktop\\:margin-left-card-lg {\n    margin-left: 15rem;\n  }\n  .desktop\\:margin-x-mobile {\n    margin-left: 20rem;\n    margin-right: 20rem;\n  }\n  .desktop\\:margin-right-mobile {\n    margin-right: 20rem;\n  }\n  .desktop\\:margin-left-mobile {\n    margin-left: 20rem;\n  }\n  .desktop\\:margin-x-05em {\n    margin-left: 0.5em;\n    margin-right: 0.5em;\n  }\n  .desktop\\:margin-right-05em {\n    margin-right: 0.5em;\n  }\n  .desktop\\:margin-left-05em {\n    margin-left: 0.5em;\n  }\n  .desktop\\:margin-x-1em {\n    margin-left: 1em;\n    margin-right: 1em;\n  }\n  .desktop\\:margin-right-1em {\n    margin-right: 1em;\n  }\n  .desktop\\:margin-left-1em {\n    margin-left: 1em;\n  }\n  .desktop\\:margin-x-105em {\n    margin-left: 1.5em;\n    margin-right: 1.5em;\n  }\n  .desktop\\:margin-right-105em {\n    margin-right: 1.5em;\n  }\n  .desktop\\:margin-left-105em {\n    margin-left: 1.5em;\n  }\n  .desktop\\:margin-x-2em {\n    margin-left: 2em;\n    margin-right: 2em;\n  }\n  .desktop\\:margin-right-2em {\n    margin-right: 2em;\n  }\n  .desktop\\:margin-left-2em {\n    margin-left: 2em;\n  }\n  .desktop\\:margin-x-0 {\n    margin-left: 0;\n    margin-right: 0;\n  }\n  .desktop\\:margin-right-0 {\n    margin-right: 0;\n  }\n  .desktop\\:margin-left-0 {\n    margin-left: 0;\n  }\n  .desktop\\:margin-x-auto {\n    margin-left: auto;\n    margin-right: auto;\n  }\n  .desktop\\:margin-right-auto {\n    margin-right: auto;\n  }\n  .desktop\\:margin-left-auto {\n    margin-left: auto;\n  }\n  .desktop\\:measure-1 {\n    max-width: 44ex;\n  }\n  .desktop\\:measure-2 {\n    max-width: 60ex;\n  }\n  .desktop\\:measure-3 {\n    max-width: 64ex;\n  }\n  .desktop\\:measure-4 {\n    max-width: 68ex;\n  }\n  .desktop\\:measure-5 {\n    max-width: 72ex;\n  }\n  .desktop\\:measure-6 {\n    max-width: 88ex;\n  }\n  .desktop\\:measure-none {\n    max-width: none;\n  }\n  .desktop\\:order-first {\n    order: -1;\n  }\n  .desktop\\:order-last {\n    order: 999;\n  }\n  .desktop\\:order-initial {\n    order: initial;\n  }\n  .desktop\\:order-0 {\n    order: 0;\n  }\n  .desktop\\:order-1 {\n    order: 1;\n  }\n  .desktop\\:order-2 {\n    order: 2;\n  }\n  .desktop\\:order-3 {\n    order: 3;\n  }\n  .desktop\\:order-4 {\n    order: 4;\n  }\n  .desktop\\:order-5 {\n    order: 5;\n  }\n  .desktop\\:order-6 {\n    order: 6;\n  }\n  .desktop\\:order-7 {\n    order: 7;\n  }\n  .desktop\\:order-8 {\n    order: 8;\n  }\n  .desktop\\:order-9 {\n    order: 9;\n  }\n  .desktop\\:order-10 {\n    order: 10;\n  }\n  .desktop\\:order-11 {\n    order: 11;\n  }\n  .desktop\\:padding-1px {\n    padding: 1px;\n  }\n  .desktop\\:padding-y-1px {\n    padding-top: 1px;\n    padding-bottom: 1px;\n  }\n  .desktop\\:padding-x-1px {\n    padding-left: 1px;\n    padding-right: 1px;\n  }\n  .desktop\\:padding-top-1px {\n    padding-top: 1px;\n  }\n  .desktop\\:padding-right-1px {\n    padding-right: 1px;\n  }\n  .desktop\\:padding-bottom-1px {\n    padding-bottom: 1px;\n  }\n  .desktop\\:padding-left-1px {\n    padding-left: 1px;\n  }\n  .desktop\\:padding-2px {\n    padding: 2px;\n  }\n  .desktop\\:padding-y-2px {\n    padding-top: 2px;\n    padding-bottom: 2px;\n  }\n  .desktop\\:padding-x-2px {\n    padding-left: 2px;\n    padding-right: 2px;\n  }\n  .desktop\\:padding-top-2px {\n    padding-top: 2px;\n  }\n  .desktop\\:padding-right-2px {\n    padding-right: 2px;\n  }\n  .desktop\\:padding-bottom-2px {\n    padding-bottom: 2px;\n  }\n  .desktop\\:padding-left-2px {\n    padding-left: 2px;\n  }\n  .desktop\\:padding-05 {\n    padding: 0.25rem;\n  }\n  .desktop\\:padding-y-05 {\n    padding-top: 0.25rem;\n    padding-bottom: 0.25rem;\n  }\n  .desktop\\:padding-x-05 {\n    padding-left: 0.25rem;\n    padding-right: 0.25rem;\n  }\n  .desktop\\:padding-top-05 {\n    padding-top: 0.25rem;\n  }\n  .desktop\\:padding-right-05 {\n    padding-right: 0.25rem;\n  }\n  .desktop\\:padding-bottom-05 {\n    padding-bottom: 0.25rem;\n  }\n  .desktop\\:padding-left-05 {\n    padding-left: 0.25rem;\n  }\n  .desktop\\:padding-1 {\n    padding: 0.5rem;\n  }\n  .desktop\\:padding-y-1 {\n    padding-top: 0.5rem;\n    padding-bottom: 0.5rem;\n  }\n  .desktop\\:padding-x-1 {\n    padding-left: 0.5rem;\n    padding-right: 0.5rem;\n  }\n  .desktop\\:padding-top-1 {\n    padding-top: 0.5rem;\n  }\n  .desktop\\:padding-right-1 {\n    padding-right: 0.5rem;\n  }\n  .desktop\\:padding-bottom-1 {\n    padding-bottom: 0.5rem;\n  }\n  .desktop\\:padding-left-1 {\n    padding-left: 0.5rem;\n  }\n  .desktop\\:padding-105 {\n    padding: 0.75rem;\n  }\n  .desktop\\:padding-y-105 {\n    padding-top: 0.75rem;\n    padding-bottom: 0.75rem;\n  }\n  .desktop\\:padding-x-105 {\n    padding-left: 0.75rem;\n    padding-right: 0.75rem;\n  }\n  .desktop\\:padding-top-105 {\n    padding-top: 0.75rem;\n  }\n  .desktop\\:padding-right-105 {\n    padding-right: 0.75rem;\n  }\n  .desktop\\:padding-bottom-105 {\n    padding-bottom: 0.75rem;\n  }\n  .desktop\\:padding-left-105 {\n    padding-left: 0.75rem;\n  }\n  .desktop\\:padding-2 {\n    padding: 1rem;\n  }\n  .desktop\\:padding-y-2 {\n    padding-top: 1rem;\n    padding-bottom: 1rem;\n  }\n  .desktop\\:padding-x-2 {\n    padding-left: 1rem;\n    padding-right: 1rem;\n  }\n  .desktop\\:padding-top-2 {\n    padding-top: 1rem;\n  }\n  .desktop\\:padding-right-2 {\n    padding-right: 1rem;\n  }\n  .desktop\\:padding-bottom-2 {\n    padding-bottom: 1rem;\n  }\n  .desktop\\:padding-left-2 {\n    padding-left: 1rem;\n  }\n  .desktop\\:padding-205 {\n    padding: 1.25rem;\n  }\n  .desktop\\:padding-y-205 {\n    padding-top: 1.25rem;\n    padding-bottom: 1.25rem;\n  }\n  .desktop\\:padding-x-205 {\n    padding-left: 1.25rem;\n    padding-right: 1.25rem;\n  }\n  .desktop\\:padding-top-205 {\n    padding-top: 1.25rem;\n  }\n  .desktop\\:padding-right-205 {\n    padding-right: 1.25rem;\n  }\n  .desktop\\:padding-bottom-205 {\n    padding-bottom: 1.25rem;\n  }\n  .desktop\\:padding-left-205 {\n    padding-left: 1.25rem;\n  }\n  .desktop\\:padding-3 {\n    padding: 1.5rem;\n  }\n  .desktop\\:padding-y-3 {\n    padding-top: 1.5rem;\n    padding-bottom: 1.5rem;\n  }\n  .desktop\\:padding-x-3 {\n    padding-left: 1.5rem;\n    padding-right: 1.5rem;\n  }\n  .desktop\\:padding-top-3 {\n    padding-top: 1.5rem;\n  }\n  .desktop\\:padding-right-3 {\n    padding-right: 1.5rem;\n  }\n  .desktop\\:padding-bottom-3 {\n    padding-bottom: 1.5rem;\n  }\n  .desktop\\:padding-left-3 {\n    padding-left: 1.5rem;\n  }\n  .desktop\\:padding-4 {\n    padding: 2rem;\n  }\n  .desktop\\:padding-y-4 {\n    padding-top: 2rem;\n    padding-bottom: 2rem;\n  }\n  .desktop\\:padding-x-4 {\n    padding-left: 2rem;\n    padding-right: 2rem;\n  }\n  .desktop\\:padding-top-4 {\n    padding-top: 2rem;\n  }\n  .desktop\\:padding-right-4 {\n    padding-right: 2rem;\n  }\n  .desktop\\:padding-bottom-4 {\n    padding-bottom: 2rem;\n  }\n  .desktop\\:padding-left-4 {\n    padding-left: 2rem;\n  }\n  .desktop\\:padding-5 {\n    padding: 2.5rem;\n  }\n  .desktop\\:padding-y-5 {\n    padding-top: 2.5rem;\n    padding-bottom: 2.5rem;\n  }\n  .desktop\\:padding-x-5 {\n    padding-left: 2.5rem;\n    padding-right: 2.5rem;\n  }\n  .desktop\\:padding-top-5 {\n    padding-top: 2.5rem;\n  }\n  .desktop\\:padding-right-5 {\n    padding-right: 2.5rem;\n  }\n  .desktop\\:padding-bottom-5 {\n    padding-bottom: 2.5rem;\n  }\n  .desktop\\:padding-left-5 {\n    padding-left: 2.5rem;\n  }\n  .desktop\\:padding-6 {\n    padding: 3rem;\n  }\n  .desktop\\:padding-y-6 {\n    padding-top: 3rem;\n    padding-bottom: 3rem;\n  }\n  .desktop\\:padding-x-6 {\n    padding-left: 3rem;\n    padding-right: 3rem;\n  }\n  .desktop\\:padding-top-6 {\n    padding-top: 3rem;\n  }\n  .desktop\\:padding-right-6 {\n    padding-right: 3rem;\n  }\n  .desktop\\:padding-bottom-6 {\n    padding-bottom: 3rem;\n  }\n  .desktop\\:padding-left-6 {\n    padding-left: 3rem;\n  }\n  .desktop\\:padding-7 {\n    padding: 3.5rem;\n  }\n  .desktop\\:padding-y-7 {\n    padding-top: 3.5rem;\n    padding-bottom: 3.5rem;\n  }\n  .desktop\\:padding-x-7 {\n    padding-left: 3.5rem;\n    padding-right: 3.5rem;\n  }\n  .desktop\\:padding-top-7 {\n    padding-top: 3.5rem;\n  }\n  .desktop\\:padding-right-7 {\n    padding-right: 3.5rem;\n  }\n  .desktop\\:padding-bottom-7 {\n    padding-bottom: 3.5rem;\n  }\n  .desktop\\:padding-left-7 {\n    padding-left: 3.5rem;\n  }\n  .desktop\\:padding-8 {\n    padding: 4rem;\n  }\n  .desktop\\:padding-y-8 {\n    padding-top: 4rem;\n    padding-bottom: 4rem;\n  }\n  .desktop\\:padding-x-8 {\n    padding-left: 4rem;\n    padding-right: 4rem;\n  }\n  .desktop\\:padding-top-8 {\n    padding-top: 4rem;\n  }\n  .desktop\\:padding-right-8 {\n    padding-right: 4rem;\n  }\n  .desktop\\:padding-bottom-8 {\n    padding-bottom: 4rem;\n  }\n  .desktop\\:padding-left-8 {\n    padding-left: 4rem;\n  }\n  .desktop\\:padding-9 {\n    padding: 4.5rem;\n  }\n  .desktop\\:padding-y-9 {\n    padding-top: 4.5rem;\n    padding-bottom: 4.5rem;\n  }\n  .desktop\\:padding-x-9 {\n    padding-left: 4.5rem;\n    padding-right: 4.5rem;\n  }\n  .desktop\\:padding-top-9 {\n    padding-top: 4.5rem;\n  }\n  .desktop\\:padding-right-9 {\n    padding-right: 4.5rem;\n  }\n  .desktop\\:padding-bottom-9 {\n    padding-bottom: 4.5rem;\n  }\n  .desktop\\:padding-left-9 {\n    padding-left: 4.5rem;\n  }\n  .desktop\\:padding-10 {\n    padding: 5rem;\n  }\n  .desktop\\:padding-y-10 {\n    padding-top: 5rem;\n    padding-bottom: 5rem;\n  }\n  .desktop\\:padding-x-10 {\n    padding-left: 5rem;\n    padding-right: 5rem;\n  }\n  .desktop\\:padding-top-10 {\n    padding-top: 5rem;\n  }\n  .desktop\\:padding-right-10 {\n    padding-right: 5rem;\n  }\n  .desktop\\:padding-bottom-10 {\n    padding-bottom: 5rem;\n  }\n  .desktop\\:padding-left-10 {\n    padding-left: 5rem;\n  }\n  .desktop\\:padding-15 {\n    padding: 7.5rem;\n  }\n  .desktop\\:padding-y-15 {\n    padding-top: 7.5rem;\n    padding-bottom: 7.5rem;\n  }\n  .desktop\\:padding-x-15 {\n    padding-left: 7.5rem;\n    padding-right: 7.5rem;\n  }\n  .desktop\\:padding-top-15 {\n    padding-top: 7.5rem;\n  }\n  .desktop\\:padding-right-15 {\n    padding-right: 7.5rem;\n  }\n  .desktop\\:padding-bottom-15 {\n    padding-bottom: 7.5rem;\n  }\n  .desktop\\:padding-left-15 {\n    padding-left: 7.5rem;\n  }\n  .desktop\\:padding-0 {\n    padding: 0;\n  }\n  .desktop\\:padding-y-0 {\n    padding-top: 0;\n    padding-bottom: 0;\n  }\n  .desktop\\:padding-x-0 {\n    padding-left: 0;\n    padding-right: 0;\n  }\n  .desktop\\:padding-top-0 {\n    padding-top: 0;\n  }\n  .desktop\\:padding-right-0 {\n    padding-right: 0;\n  }\n  .desktop\\:padding-bottom-0 {\n    padding-bottom: 0;\n  }\n  .desktop\\:padding-left-0 {\n    padding-left: 0;\n  }\n  .desktop\\:width-1px {\n    width: 1px;\n  }\n  .desktop\\:width-2px {\n    width: 2px;\n  }\n  .desktop\\:width-05 {\n    width: 0.25rem;\n  }\n  .desktop\\:width-1 {\n    width: 0.5rem;\n  }\n  .desktop\\:width-105 {\n    width: 0.75rem;\n  }\n  .desktop\\:width-2 {\n    width: 1rem;\n  }\n  .desktop\\:width-205 {\n    width: 1.25rem;\n  }\n  .desktop\\:width-3 {\n    width: 1.5rem;\n  }\n  .desktop\\:width-4 {\n    width: 2rem;\n  }\n  .desktop\\:width-5 {\n    width: 2.5rem;\n  }\n  .desktop\\:width-6 {\n    width: 3rem;\n  }\n  .desktop\\:width-7 {\n    width: 3.5rem;\n  }\n  .desktop\\:width-8 {\n    width: 4rem;\n  }\n  .desktop\\:width-9 {\n    width: 4.5rem;\n  }\n  .desktop\\:width-10 {\n    width: 5rem;\n  }\n  .desktop\\:width-15 {\n    width: 7.5rem;\n  }\n  .desktop\\:width-card {\n    width: 10rem;\n  }\n  .desktop\\:width-card-lg {\n    width: 15rem;\n  }\n  .desktop\\:width-mobile {\n    width: 20rem;\n  }\n  .desktop\\:width-mobile-lg {\n    width: 30rem;\n  }\n  .desktop\\:width-tablet {\n    width: 40rem;\n  }\n  .desktop\\:width-tablet-lg {\n    width: 55rem;\n  }\n  .desktop\\:width-desktop {\n    width: 64rem;\n  }\n  .desktop\\:width-desktop-lg {\n    width: 75rem;\n  }\n  .desktop\\:width-widescreen {\n    width: 87.5rem;\n  }\n  .desktop\\:width-0 {\n    width: 0;\n  }\n  .desktop\\:width-full {\n    width: 100%;\n  }\n  .desktop\\:width-auto {\n    width: auto;\n  }\n}","/*! uswds @version */\n\n// Global\n// -------------------------------------\n@forward \"uswds-global\";\n\n// Helpers\n// -------------------------------------\n@forward \"uswds-helpers\";\n\n// Components\n// -------------------------------------\n@forward \"uswds-typography\";\n@forward \"usa-accordion/src/styles\";\n@forward \"usa-alert/src/styles\";\n@forward \"usa-banner/src/styles\";\n@forward \"usa-breadcrumb/src/styles\";\n@forward \"usa-button-group/src/styles\";\n@forward \"usa-button/src/styles\";\n@forward \"usa-card/src/styles\";\n@forward \"usa-checklist/src/styles\";\n@forward \"usa-collection/src/styles\";\n@forward \"usa-embed-container/src/styles\";\n@forward \"usa-footer/src/styles\";\n@forward \"usa-form/src/styles\";\n@forward \"usa-graphic-list/src/styles\";\n@forward \"usa-header/src/styles\";\n@forward \"usa-hero/src/styles\";\n@forward \"usa-icon-list/src/styles\";\n@forward \"usa-icon/src/styles\";\n@forward \"usa-identifier/src/styles\";\n@forward \"usa-in-page-navigation/src/styles\";\n@forward \"usa-language-selector/src/styles\";\n@forward \"usa-layout-docs/src/styles\";\n@forward \"usa-layout-grid/src/styles\";\n@forward \"usa-media-block/src/styles\";\n@forward \"usa-modal/src/styles\";\n@forward \"usa-nav/src/styles\";\n@forward \"usa-pagination/src/styles\";\n@forward \"usa-process-list/src/styles\";\n@forward \"usa-search/src/styles\";\n@forward \"usa-section/src/styles\";\n@forward \"usa-sidenav/src/styles\";\n@forward \"usa-site-alert/src/styles\";\n@forward \"usa-skipnav/src/styles\";\n@forward \"usa-step-indicator/src/styles\";\n@forward \"usa-summary-box/src/styles\";\n@forward \"usa-table/src/styles\";\n@forward \"usa-tag/src/styles\";\n@forward \"usa-tooltip/src/styles\";\n@forward \"uswds-form-controls\";\n\n// Utilities\n// -------------------------------------\n@forward \"uswds-utilities/src/styles\";\n","@use \"sass:map\";\n@use \"uswds-core\" as *;\n\n// Navigation helpers\n// ---------------------------------\n\n@mixin primary-nav-link {\n  line-height: line-height($theme-navigation-font-family, 1);\n  padding: units(2);\n}\n\n$nav-link-color: \"base-dark\";\n$sliding-panel-width: \"card-lg\";\n$nav-link-accordion-icon-size: 2.5;\n$nav-link-arrow-icon-size: 2;\n\n// Maps for icon masks\n$place-icon-defaults: (\n  \"color\": ButtonText,\n  \"svg-height\": 24,\n  \"svg-width\": 24,\n);\n\n$-chevron-icon-defaults: map-merge(\n  $place-icon-defaults,\n  (\n    \"height\": units($nav-link-arrow-icon-size),\n  )\n);\n\n$-mobile-icon-defaults: map-merge(\n  $place-icon-defaults,\n  (\n    \"height\": units($nav-link-accordion-icon-size),\n  )\n);\n\n$-add-icon: map-merge(\n  $-mobile-icon-defaults,\n  (\n    \"name\": \"add\",\n  )\n);\n\n$-remove-icon: map-merge(\n  $-mobile-icon-defaults,\n  (\n    \"name\": \"remove\",\n  )\n);\n\n$close-icon: map-merge(\n  $-mobile-icon-defaults,\n  (\n    \"name\": \"close\",\n  )\n);\n\n$expand-more-icon: map-merge(\n  $-chevron-icon-defaults,\n  (\n    \"name\": \"expand_more\",\n  )\n);\n\n$expand-less-icon: map-merge(\n  $-chevron-icon-defaults,\n  (\n    \"name\": \"expand_less\",\n  )\n);\n\n// TODO: Collect animations in a common location?\n@keyframes slidein-left {\n  from {\n    transform: translateX(units($sliding-panel-width));\n  }\n\n  to {\n    transform: translateX(0);\n  }\n}\n\n// Header navigation\n// ---------------------------------\n.usa-nav {\n  @include typeset($theme-navigation-font-family, null, 1);\n\n  @include at-media-max($theme-header-min-width) {\n    @include u-pin(\"right\");\n    @include u-pin(\"y\");\n    position: fixed;\n    background: color(\"white\");\n    border-right: 0;\n    display: none;\n    flex-direction: column;\n    overflow-y: auto;\n    padding: units(2);\n    width: units($sliding-panel-width);\n    z-index: z-index(500);\n\n    &.is-visible {\n      animation: slidein-left 0.3s ease-in-out;\n      display: flex;\n    }\n  }\n\n  @include at-media($theme-header-min-width) {\n    float: right;\n    position: relative;\n  }\n\n  .usa-search {\n    margin-top: units(2);\n\n    @include at-media($theme-header-min-width) {\n      margin-left: units(2);\n      margin-top: 0;\n    }\n  }\n\n  .usa-accordion {\n    @include typeset($theme-navigation-font-family, null, 1);\n  }\n}\n\n// Primary navigation\n// ---------------------------------\n\n.usa-nav__primary {\n  // Until the $theme-header-width,\n  // use the usa-nav-list styles for the slide-in nav\n  @include at-media-max($theme-header-min-width) {\n    @include nav-list(\"nav\");\n\n    a {\n      @include u-padding-y(1.5);\n    }\n  }\n\n  // At $theme-header-width and wider...\n  @include at-media($theme-header-min-width) {\n    display: flex;\n    align-items: stretch;\n  }\n\n  // all nav items in the nav\n  .usa-nav__primary-item {\n    a {\n      text-decoration: none;\n    }\n  }\n\n  // just level 1 nav items...\n  > .usa-nav__primary-item {\n    line-height: line-height($theme-navigation-font-family, 2);\n\n    @include at-media($theme-header-min-width) {\n      font-size: font-size($theme-navigation-font-family, \"2xs\");\n      line-height: line-height($theme-navigation-font-family, 1);\n    }\n\n    // ...and their direct links\n    > a {\n      @include at-media($theme-header-min-width) {\n        @include primary-nav-link;\n        align-items: center;\n        color: color($nav-link-color);\n        display: flex;\n        font-weight: font-weight(\"bold\");\n\n        &:hover {\n          color: color(\"primary\");\n        }\n      }\n    }\n\n    > button,\n    > a {\n      @include at-media($theme-header-min-width) {\n        height: 100%;\n      }\n    }\n  }\n\n  a {\n    @include at-media($theme-header-min-width) {\n      @include u-padding-y(1);\n    }\n  }\n\n  button {\n    $button-vertical-offset: 53%; // XXX: Magic number\n\n    @include button-unstyled;\n    position: relative; // Anchor spans chevron pseudo element\n    color: color($nav-link-color);\n    font-weight: font-weight(\"normal\");\n    line-height: line-height($theme-navigation-font-family, 2);\n    padding: units(1.5) units(2);\n    text-decoration: none;\n    width: 100%;\n\n    @include at-media($theme-header-min-width) {\n      @include primary-nav-link;\n      font-size: font-size($theme-navigation-font-family, \"2xs\");\n      font-weight: font-weight(\"bold\");\n    }\n\n    @media (forced-colors: active) {\n      forced-color-adjust: auto;\n    }\n\n    &:hover {\n      color: color(\"primary\");\n      background-color: color(\"base-lightest\");\n      text-decoration: none;\n\n      @include at-media($theme-header-min-width) {\n        background-color: transparent;\n      }\n    }\n\n    // Remove icon set from usa-accordion.\n    // Also removed in _usa-banner.scss.\n    &[aria-expanded],\n    &[aria-expanded]:hover {\n      background-image: none;\n\n      @media (forced-colors: active) {\n        &::before {\n          content: none;\n        }\n      }\n    }\n\n    &[aria-expanded] {\n      span {\n        &::after {\n          position: absolute;\n          top: 50%;\n          right: 0;\n          transform: translateY(-50%);\n        }\n      }\n    }\n\n    &[aria-expanded=\"false\"] {\n      span {\n        @include place-icon($-add-icon, \"after\");\n\n        &::after:hover {\n          background-color: buttonText;\n        }\n      }\n\n      @include at-media($theme-header-min-width) {\n        span {\n          @include place-icon($expand-more-icon, \"after\");\n\n          &::after {\n            right: units(1.5);\n          }\n        }\n      }\n\n      &:hover {\n        @include at-media($theme-header-min-width) {\n          span::after {\n            background-color: color(blue-warm-70v);\n\n            @media (forced-colors: active) {\n              background-color: ButtonText;\n            }\n          }\n        }\n      }\n    }\n\n    &[aria-expanded=\"true\"] {\n      span {\n        @include place-icon($-remove-icon, \"after\");\n\n        &::after {\n          position: absolute;\n          right: 0;\n\n          @media (forced-colors: active) {\n            background-color: ButtonText;\n          }\n        }\n      }\n\n      @include at-media($theme-header-min-width) {\n        background-image: none;\n        background-color: color(\"primary-darker\");\n        color: color(\"white\");\n\n        @include at-media($theme-header-min-width) {\n          span {\n            @include place-icon($expand-less-icon, \"after\");\n            &::after {\n              right: units(1.5);\n              background-color: white;\n              @media (forced-colors: active) {\n                background-color: ButtonText;\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n\n  .usa-accordion__button {\n    span {\n      @include at-media($theme-header-min-width) {\n        display: inline-block;\n        margin-right: 0;\n        padding-right: units(2);\n      }\n    }\n  }\n}\n\n// Secondary navigation\n// ---------------------------------\n\n.usa-nav__secondary {\n  margin-top: units(2);\n\n  @include at-media($theme-header-min-width) {\n    @include u-flex(\"column\", \"align-end\");\n    bottom: units(8); // XXX magic number\n    display: flex;\n    font-size: font-size($theme-navigation-font-family, \"2xs\");\n    margin-top: units(1);\n    min-width: calc(\n      #{$theme-search-min-width} + #{units($theme-button-small-width)}\n    );\n    position: absolute;\n    right: units($theme-site-margins-width);\n  }\n\n  .usa-search {\n    width: 100%;\n\n    @include at-media($theme-header-min-width) {\n      margin-left: 0;\n      margin-top: units(1);\n    }\n  }\n}\n\n.usa-nav__secondary-links {\n  @include add-list-reset;\n  line-height: line-height($theme-navigation-font-family, 3);\n  margin-top: units(3);\n\n  @include at-media($theme-header-min-width) {\n    column-gap: units(1);\n    display: flex;\n    flex-flow: row nowrap;\n    line-height: line-height($theme-navigation-font-family, 1);\n    margin-bottom: units(0.5);\n    margin-top: 0;\n  }\n\n  .usa-nav__secondary-item {\n    @include at-media($theme-header-min-width) {\n      padding-left: units(0.5);\n\n      & + .usa-nav__secondary-item {\n        border-left: 1px solid color(\"base-lighter\");\n        padding-left: units(1);\n      }\n    }\n  }\n\n  a {\n    color: color(\"base\");\n    display: inline-block;\n    font-size: font-size($theme-navigation-font-family, \"2xs\");\n    text-decoration: none;\n\n    &:hover {\n      color: color(\"primary\");\n      text-decoration: underline;\n    }\n  }\n}\n\n// Navigation dropdowns\n// ---------------------------------\n\n.usa-nav__submenu {\n  @include at-media-max($theme-header-min-width) {\n    @include nav-sublist;\n  }\n\n  @include at-media($theme-header-min-width) {\n    @include add-list-reset;\n    @include u-padding-y(1);\n    background-color: color(\"primary-darker\");\n    width: units(\"card-lg\");\n    position: absolute;\n    z-index: z-index(400);\n  }\n\n  &[aria-hidden=\"true\"] {\n    display: none;\n  }\n\n  .usa-nav__submenu-item {\n    @include at-media($theme-header-min-width) {\n      a {\n        @include u-padding-x(2);\n        color: color(\"white\");\n        line-height: line-height($theme-navigation-font-family, 3);\n        display: block;\n\n        &:focus {\n          outline-offset: units(\"neg-05\");\n        }\n\n        &:hover {\n          color: color(\"white\");\n          text-decoration: underline;\n        }\n      }\n    }\n  }\n}\n\n.usa-nav__submenu-list {\n  @include unstyled-list;\n\n  .usa-nav__submenu-list-item {\n    margin: 0;\n    font-size: font-size($theme-navigation-font-family, \"2xs\");\n\n    a {\n      line-height: line-height($theme-navigation-font-family, 3);\n    }\n  }\n}\n\n// Navigation close button\n// ---------------------------------\n\n.usa-nav__close {\n  @include button-unstyled;\n  @include u-square($size-touch-target);\n  background-image: none;\n  color: currentColor;\n  flex: none;\n  float: right;\n  margin: units(-1.5) units(-2) units(2) auto;\n  text-align: center;\n\n  @media (forced-colors: active) {\n    @include place-icon($close-icon, \"before\");\n    &::before {\n      background-color: buttonText;\n    }\n  }\n\n  &:hover {\n    color: currentColor;\n    text-decoration: none;\n  }\n\n  @include at-media($theme-header-min-width) {\n    display: none;\n  }\n\n  img {\n    width: units(3);\n\n    @media (forced-colors: active) {\n      display: none;\n    }\n  }\n\n  + * {\n    clear: both;\n  }\n}\n\n.usa-js-mobile-nav--active {\n  overflow: hidden;\n}\n\n// Safari-only fix that forces a vertical scrollbar when mobile menu is open.\n// Only needed in the 15px immediately preceding $theme-header-min-width.\n//\n// Note: 15px is the current width of the Safari scrollbar.\n// Note: This fix only applies when $theme-header-min-width is defined with a system breakpoint\n//   because the header visually breaks with other values.\n//   This bypass prevents compilation errors with values like \"none\" or 1px.\n\n$our-breakpoints: map-deep-get($system-properties, breakpoints, standard);\n\n@if map-has-key($our-breakpoints, $theme-header-min-width) {\n  $safari-header-bug-min-width: calc(\n    units($theme-header-min-width) - px-to-rem(15px)\n  );\n\n  @media (min-width: $safari-header-bug-min-width) {\n    .usa-js-mobile-nav--active.is-safari {\n      overflow-y: scroll;\n      position: fixed;\n      // --scrolltop set with JS with zero as fallback.\n      top: var(--scrolltop, 0);\n    }\n  }\n}\n","/* Document\n   ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n  line-height: 1.15; /* 1 */\n  -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n   ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n  margin: 0;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n  font-size: 2em;\n  margin: 0.67em 0;\n}\n\n/* Grouping content\n   ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Correct the inheritance of border color in Firefox.\n */\n\nhr {\n  box-sizing: content-box; /* 1 */\n  height: 0; /* 1 */\n  color: inherit; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n  font-family: monospace, monospace; /* 1 */\n  font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n   ========================================================================== */\n\n/**\n * Add the correct text decoration in Safari.\n */\n\nabbr[title] {\n  text-decoration: underline;\n  text-decoration: underline dotted;\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n  font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n  font-family: monospace, monospace; /* 1 */\n  font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n  font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n  font-size: 75%;\n  line-height: 0;\n  position: relative;\n  vertical-align: baseline;\n}\n\nsub {\n  bottom: -0.25em;\n}\n\nsup {\n  top: -0.5em;\n}\n\n/* Forms\n   ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n  font-family: inherit; /* 1 */\n  font-size: 100%; /* 1 */\n  line-height: 1.15; /* 1 */\n  margin: 0; /* 2 */\n}\n\n/**\n * Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect {\n  text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n  -webkit-appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n  border-style: none;\n  padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule in Firefox.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n  outline: 1px dotted ButtonText;\n}\n\n/**\n * Remove the padding so developers are not caught out when they zero out `fieldset` elements in all browsers.\n */\n\nlegend {\n  padding: 0;\n}\n\n/**\n * Add the correct vertical alignment in Chrome and Firefox.\n */\n\nprogress {\n  vertical-align: baseline;\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Safari.\n */\n\n::-webkit-inner-spin-button,\n::-webkit-outer-spin-button {\n  height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n  -webkit-appearance: textfield; /* 1 */\n  outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n::-webkit-search-decoration {\n  -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n  -webkit-appearance: button; /* 1 */\n  font: inherit; /* 2 */\n}\n\n/* Interactive\n   ========================================================================== */\n\n/**\n * Add the correct display in Chrome and Safari.\n */\n\nsummary {\n  display: list-item;\n}\n","// Apply a natural box layout model to all elements, but allowing components to\n// change\n\n@use \"uswds-core/src/styles/settings\" as *;\n\n@if $theme-global-border-box-sizing {\n  html {\n    box-sizing: border-box;\n  }\n\n  *,\n  *::before,\n  *::after {\n    box-sizing: inherit;\n  }\n}\n","@mixin add-kerning {\n  font-feature-settings: \"kern\" 1;\n  font-kerning: normal;\n}\n","@use \"uswds-core/src/styles/settings\" as *;\n@use \"uswds-core/src/styles/functions\" as *;\n@use \"uswds-core/src/styles/mixins/general/add-kerning\" as *;\n@use \"uswds-core/src/styles/mixins/typography\" as *;\n\nhtml {\n  @include add-kerning;\n  font-family: font-family($theme-body-font-family);\n  font-size: $root-font-size;\n}\n\n@if $theme-style-body-element {\n  body {\n    @include typeset;\n  }\n}\n\n@if $theme-global-paragraph-styles == true {\n  @include usa-paragraph-style;\n}\n\n@if $theme-global-link-styles == true {\n  @include usa-link-style;\n}\n\n@if $theme-global-content-styles == true {\n  @include usa-content-styles;\n}\n\n// Remove user agent styles\n\ncite,\nvar,\naddress,\ndfn {\n  font-style: normal;\n}\n","@use \"../../settings\" as *;\n\n// The following vars need to be set\n// here, before the rest of the system\n// variables are set\n\n$root-font-size: if($theme-respect-user-font-size, 100%, $theme-root-font-size);\n\n$root-font-size-equiv: if(\n  $theme-respect-user-font-size,\n  16px,\n  $theme-root-font-size\n);\n","@use \"../../functions/color/get-color-token-from-bg\" as *;\n@use \"../../functions/utilities/color\" as *;\n@use \"../../functions/general/get-default\" as *;\n\n@mixin set-text-from-bg(\n  $bg-color: \"default\",\n  $preferred-text-color: \"default\",\n  $fallback-text-color: \"default\",\n  $wcag-target: \"AA\",\n  $context: false,\n  $important: null\n) {\n  $important: if($important, \" !important\", null);\n  $accessible-color-token: get-color-token-from-bg(\n    $bg-color,\n    $preferred-text-color,\n    $fallback-text-color,\n    $wcag-target,\n    $context\n  );\n  color: color($accessible-color-token) #{$important};\n}\n","@use \"../../functions/utilities/color\" as *;\n@use \"../../functions/general/get-default\" as *;\n\n@use \"./set-text-from-bg\" as *;\n\n@mixin set-text-and-bg(\n  $bg-color: \"default\",\n  $preferred-text-color: \"default\",\n  $fallback-text-color: \"default\",\n  $wcag-target: \"AA\",\n  $context: false,\n  $important: null\n) {\n  $important: if($important, \" !important\", null);\n\n  @include set-text-from-bg(\n    $bg-color,\n    $preferred-text-color,\n    $fallback-text-color,\n    $wcag-target,\n    $context,\n    $important: $important\n  );\n  $bg-color: if($bg-color == \"default\", get-default(\"bg-color\"), $bg-color);\n  background-color: color($bg-color) #{$important};\n}\n","@use \"uswds-core/src/styles/mixins/helpers/set-text-and-bg\" as *;\n\nbody {\n  @include set-text-and-bg($context: \"Body\");\n  overflow-x: hidden;\n}\n","@use \"../settings\" as *;\n@use \"../functions\" as *;\n@use \"../mixins\" as *;\n@use \"../variables/border-high-contrast.scss\" as *;\n\n// Helpers\n$input-select-margin-right: 1.5;\n\n%block-input-general {\n  @include border-box-sizing;\n  @include typeset(\n    $theme-form-font-family,\n    $theme-body-font-size,\n    $theme-input-line-height\n  );\n}\n\n%block-input-styles {\n  @include u-border(1px, \"base-dark\");\n  appearance: none;\n  border-radius: 0;\n  color: color(\"ink\"); // standardize on firefox\n  display: block;\n  height: units(5);\n  margin-top: units(1);\n  max-width: units($theme-input-max-width);\n  padding: units(1);\n  width: 100%;\n}\n","@use \"../../functions\" as *;\n\n/*\n----------------------------------------\nfamily()\n----------------------------------------\nGet a font-family stack\n----------------------------------------\n*/\n\n@mixin u-font-family($family) {\n  font-family: ff($family);\n}\n\n/*\n----------------------------------------\nsize()\n----------------------------------------\nGet a normalized font-size in rem from\na family and a type size in either\nsystem scale or project scale\n----------------------------------------\n*/\n\n@mixin u-font-size($family, $scale) {\n  font-size: font-size($family, $scale);\n}\n\n/*\n----------------------------------------\nfont()\n----------------------------------------\nGet a font-family stack\nAND\nGet a normalized font-size in rem from\na family and a type size in either\nsystem scale or project scale\n----------------------------------------\n*/\n\n@mixin u-font($family, $scale) {\n  font-family: ff($family);\n  font-size: font-size($family, $scale);\n}\n","@use \"sass:list\";\n@use \"../../functions\" as *;\n\n// Outputs line-height\n\n@mixin u-line-height($value...) {\n  $value: unpack($value);\n  $important: null;\n  @if has-important($value) {\n    $value: remove($value, \"!important\");\n    @if list.length($value) == 1 {\n      $value: de-list($value);\n    }\n    $important: \" !important\";\n  }\n  $family: list.nth($value, 1);\n  $scale: list.nth($value, 2);\n  line-height: lh($family, $scale) #{$important};\n}\n",null,"@use \"sass:list\";\n@use \"sass:map\";\n@use \"sass:meta\";\n@use \"sass:string\";\n@use \"../../functions\" as *;\n@use \"../../properties\" as *;\n@use \"../../tokens/color\" as *;\n\n$border-utilities: (\n  \"width\": map-collect(\n      map-deep-get($system-properties, border-width, standard),\n      map-deep-get($system-properties, border-width, extended)\n    ),\n  \"style\": map-collect(\n      map-deep-get($system-properties, border-style, standard),\n      map-deep-get($system-properties, border-style, extended)\n    ),\n);\n\n@mixin border-n($side, $value...) {\n  $important: null;\n  @if has-important($value) {\n    $value: remove($value, \"!important\");\n    @if list.length($value) == 1 {\n      $value: de-list($value);\n    }\n    $important: \" !important\";\n  }\n  $has-style: false;\n  $widths: map.get($border-utilities, \"width\");\n\n  @each $this-value in $value {\n    $match: false;\n    @if map.has-key($all-color-shortcodes, smart-quote($this-value)) {\n      $match: true;\n      $this-value: smart-quote($this-value);\n      @if $side == n {\n        border-color: color($this-value) #{$important};\n      } @else if $side == x {\n        border-left-color: color($this-value) #{$important};\n        border-right-color: color($this-value) #{$important};\n      } @else if $side == y {\n        border-bottom-color: color($this-value) #{$important};\n        border-top-color: color($this-value) #{$important};\n      } @else {\n        border-#{$side}-color: color($this-value) #{$important};\n      }\n    } @else if meta.type-of($this-value) == \"number\" {\n      $converted-value: number-to-token($this-value);\n      @if map.has-key($widths, $converted-value) {\n        $match: true;\n        $final-value: map.get($widths, $converted-value);\n        @if $side == n {\n          border-width: string.unquote(\"#{$final-value}#{$important}\");\n        } @else if $side == x {\n          border-left-width: string.unquote(\"#{$final-value}#{$important}\");\n          border-right-width: string.unquote(\"#{$final-value}#{$important}\");\n        } @else if $side == y {\n          border-bottom-width: string.unquote(\"#{$final-value}#{$important}\");\n          border-top-width: string.unquote(\"#{$final-value}#{$important}\");\n        } @else {\n          border-#{$side}-width: string.unquote(\"#{$final-value}#{$important}\");\n        }\n      } @else {\n        @error '#{$this-value} is not a valid border width. Accepted values: #{map-keys($widths)}';\n      }\n    } @else if map.has-key($widths, smart-quote($this-value)) {\n      $match: true;\n      $this-value: smart-quote($this-value);\n      $final-value: map.get($widths, $this-value);\n      @if $side == n {\n        border-width: string.unquote(\"#{$final-value}#{$important}\");\n      } @else if $side == x {\n        border-left-width: string.unquote(\"#{$final-value}#{$important}\");\n        border-right-width: string.unquote(\"#{$final-value}#{$important}\");\n      } @else if $side == y {\n        border-bottom-width: string.unquote(\"#{$final-value}#{$important}\");\n        border-top-width: string.unquote(\"#{$final-value}#{$important}\");\n      } @else {\n        border-#{$side}-width: string.unquote(\"#{$final-value}#{$important}\");\n      }\n    } @else {\n      $converted-value: smart-quote($this-value);\n      $styles: map.get($border-utilities, \"style\");\n      @if map.has-key($styles, $converted-value) {\n        $match: true;\n        $has-style: true;\n        $final-value: map.get($styles, $converted-value);\n        @if $side == n {\n          border-style: string.unquote(\"#{$final-value}#{$important}\");\n        } @else if $side == x {\n          border-left-style: string.unquote(\"#{$final-value}#{$important}\");\n          border-right-style: string.unquote(\"#{$final-value}#{$important}\");\n        } @else if $side == y {\n          border-bottom-style: string.unquote(\"#{$final-value}#{$important}\");\n          border-top-style: string.unquote(\"#{$final-value}#{$important}\");\n        } @else {\n          border-#{$side}-style: string.unquote(\"#{$final-value}#{$important}\");\n        }\n      } @else {\n        @error '`#{$this-value}` is not a valid `border` token. '\n          + 'Use valid color, units, and border-style tokens '\n          + 'separated by commas.';\n      }\n    }\n    @if not $match {\n      @error '`#{$this-value}` is not a valid `border` token.';\n    }\n  }\n  @if not $has-style {\n    @if $side == n {\n      border-style: solid#{$important};\n    } @else if $side == x {\n      border-left-style: solid#{$important};\n      border-right-style: solid#{$important};\n    } @else if $side == y {\n      border-bottom-style: solid#{$important};\n      border-top-style: solid#{$important};\n    } @else {\n      border-#{$side}-style: solid#{$important};\n    }\n  }\n}\n\n@mixin u-border($value...) {\n  @include border-n(n, $value...);\n}\n\n@mixin u-border-x($value...) {\n  @include border-n(x, $value...);\n}\n\n@mixin u-border-y($value...) {\n  @include border-n(y, $value...);\n}\n\n@mixin u-border-top($value...) {\n  @include border-n(top, $value...);\n}\n\n@mixin u-border-right($value...) {\n  @include border-n(right, $value...);\n}\n\n@mixin u-border-bottom($value...) {\n  @include border-n(bottom, $value...);\n}\n\n@mixin u-border-left($value...) {\n  @include border-n(left, $value...);\n}\n","@use \"sass:map\";\n@use \"sass:string\";\n@use \"sass:list\";\n\n@use \"../../functions\" as *;\n@use \"../../variables\" as *;\n@use \"../../tokens/font\" as *;\n@use \"../../settings\" as *;\n\n// Output the @font-face rule\n@mixin at-font-face($display-name, $file-path, $font-weight, $font-style) {\n  // TODO: If $theme-use-rails-pipeline use font-url() statements\n  // instead of url()\n  // Dunno why I can't do this without an error...\n\n  @font-face {\n    font-family: $display-name;\n    font-style: string.unquote($font-style);\n    font-weight: $font-weight;\n    font-display: fallback;\n    src: font-sources($file-path);\n  }\n}\n\n// Loop through weights, then call at-font-face\n@mixin generate-font-face(\n  $font-style-src,\n  $output-weights,\n  $display-name,\n  $dir,\n  $font-style\n) {\n  @each $font-weight, $filename in $font-style-src {\n    @each $key, $output-weight in $output-weights {\n      @if $output-weight == $font-weight and $filename {\n        @include at-font-face(\n          \"#{$display-name}\",\n          // TODO: Why is this path causing problems?\n          \"#{$theme-font-path}/#{$dir}/#{$filename}\",\n          #{$font-weight},\n          string.unquote(\"#{$font-style}\")\n        );\n      }\n    }\n  }\n}\n\n// Collect all font metadata, then call generate-font-face\n@mixin render-font-face($typeface-token, $src) {\n  $generate: false;\n  $this-src: ();\n  $output-weights: $project-font-weights;\n  @if $theme-generate-all-weights {\n    $output-weights: (\n      100: 100,\n      200: 200,\n      300: 300,\n      400: 400,\n      500: 500,\n      600: 600,\n      700: 700,\n      800: 800,\n      900: 900,\n    );\n  }\n\n  $typeface-metadata: map.get($all-typeface-tokens, $typeface-token);\n\n  // If the typeface has src in its USWDS metadata, generate and\n  // set $this-src\n  @if map.get($typeface-metadata, src) {\n    $generate: true;\n    $this-src: map.get($typeface-metadata, src);\n  }\n\n  // If the typeface has custom src defined, generate and override\n  // any existing USWDS src\n  @if $src {\n    $generate: true;\n    $this-src: $src;\n  }\n\n  @if $generate {\n    $display-name: map.get($typeface-metadata, display-name);\n    $roman: map.get($this-src, roman);\n    $italic: map.get($this-src, italic);\n    $dir: map.get($this-src, dir);\n\n    @if $roman {\n      @include generate-font-face(\n        $roman,\n        $output-weights,\n        $display-name,\n        $dir,\n        normal\n      );\n    }\n\n    @if $italic {\n      @include generate-font-face(\n        $italic,\n        $output-weights,\n        $display-name,\n        $dir,\n        italic\n      );\n    }\n  }\n}\n","@use \"uswds-core/src/styles/mixins/general/focus-outline\" as *;\n\n// Apply :focus behavior to focusable elements only (For IE 11)\ninput,\nselect,\ntextarea,\nbutton {\n  &:not([disabled]) {\n    &:focus {\n      @include focus-outline;\n    }\n  }\n}\n\niframe,\n[href],\n[tabindex],\n[contentEditable=\"true\"] {\n  &:focus {\n    @include focus-outline;\n  }\n}\n","@use \"../../functions\" as *;\n@use \"../../settings\" as *;\n\n// Focus state mixin\n@mixin focus-outline(\n  $width: $theme-focus-width,\n  $style: $theme-focus-style,\n  $color: $theme-focus-color,\n  $offset: $theme-focus-offset\n) {\n  $width: if($width == null, $theme-focus-width, $width);\n  $style: if($style == null, $theme-focus-style, $style);\n  $color: if($color == null, $theme-focus-color, $color);\n  $offset: if($offset == null, $theme-focus-offset, $offset);\n  outline: units($width) $style color($color);\n  outline-offset: units($offset);\n}\n","@use \"uswds-core/src/styles/mixins/general/media-link\" as *;\n\nimg {\n  max-width: 100%;\n}\n\n.usa-media-link {\n  @include media-link;\n}\n","// TODO: Add documentation instructions for using this class on image links\n@mixin media-link {\n  display: inline-block;\n  line-height: 0;\n}\n","@use \"uswds-core/src/styles/mixins/general/focus-outline\" as *;\n\n.usa-focus {\n  @include focus-outline;\n}\n","@use \"uswds-core/src/styles/mixins/general/screen-reader\" as *;\n\n.usa-sr-only {\n  @include sr-only;\n}\n","// Screen reader only helper\n@mixin sr-only {\n  position: absolute;\n  left: -999em;\n  right: auto;\n}\n\n@mixin add-sr-only {\n  @include sr-only;\n}\n\n// This \"negates\" the sr-only helper; useful if\n// we want the default state of something to be\n// for screen readers only, but we want to force\n// it to show for sighted users under more specific\n// conditions.\n@mixin not-sr-only {\n  position: static;\n}\n\n@mixin add-no-sr-only {\n  position: static;\n}\n","@use \"uswds-core\" as *;\n\n.usa-content {\n  p,\n  ul:not(.usa-accordion):not(.usa-accordion--bordered),\n  ol:not(.usa-accordion):not(.usa-accordion--bordered) {\n    max-width: measure($theme-text-measure);\n  }\n}\n","@use \"uswds-core\" as *;\n\n$background-context: \"Background\";\n\n.usa-dark-background {\n  background-color: color(\"base-darker\");\n\n  p,\n  span {\n    color: color($theme-text-reverse-color);\n  }\n\n  a {\n    @include set-link-from-bg(\n      \"base-darker\",\n      $theme-link-reverse-color,\n      $context: $background-context\n    );\n  }\n}\n","@use \"sass:math\";\n@use \"sass:list\";\n\n@use \"../../settings\" as *;\n@use \"../../functions/general\" as *;\n@use \"../../functions/color/\" as *;\n@use \"../../functions/utilities/color\" as *;\n\n@mixin set-link-from-bg(\n  $bg-color: \"default\",\n  $preferred-link-color: \"default\",\n  $fallback-link-color: \"default\",\n  $wcag-target: \"AA\",\n  $important: null,\n  $context: false\n) {\n  $important: if($important, \" !important\", null);\n  $link-tokens: get-link-tokens-from-bg(\n    $bg-color,\n    $preferred-link-color,\n    $fallback-link-color,\n    $wcag-target,\n    $context\n  );\n\n  $bg-color: if($bg-color == \"default\", get-default(\"bg-color\"), $bg-color);\n  $link-token: list.nth($link-tokens, 1);\n  $hover-token: list.nth($link-tokens, 2);\n\n  $visited-token: if(\n    is-accessible-magic-number(\n      $theme-link-visited-color,\n      $bg-color,\n      $wcag-target\n    ),\n    $theme-link-visited-color,\n    $link-token\n  );\n  color: color($link-token) #{$important};\n  &:visited {\n    color: color($visited-token) #{$important};\n  }\n  &:hover,\n  &:active {\n    color: color($hover-token) #{$important};\n  }\n}\n","@use \"uswds-core\" as *;\n\n.usa-display {\n  @include typeset-h3;\n  margin-bottom: 0;\n\n  @include at-media(\"mobile-lg\") {\n    @include typeset-h1;\n  }\n\n  @include at-media(\"tablet\") {\n    @include typeset-display;\n  }\n}\n","@use \"sass:list\";\n@use \"../../functions\" as *;\n\n// Adds margin either l/r(x) or t/b(y)\n\n@mixin margin-n($side, $value...) {\n  $value: unpack($value);\n  @if $side == all {\n    $important: null;\n    @if has-important($value) {\n      $value: remove($value, \"!important\");\n      @if list.length($value) == 1 {\n        $value: de-list($value);\n      }\n      $important: \" !important\";\n    }\n    margin: get-uswds-value(margin, $value...) #{$important};\n  } @else if $side == x {\n    $important: null;\n    @if has-important($value) {\n      $value: remove($value, \"!important\");\n      @if list.length($value) == 1 {\n        $value: de-list($value);\n      }\n      $important: \" !important\";\n    }\n    margin-left: get-uswds-value(\"margin-horizontal\", $value...) #{$important};\n    margin-right: get-uswds-value(\"margin-horizontal\", $value...) #{$important};\n  } @else if $side == y {\n    $important: null;\n    @if has-important($value) {\n      $value: remove($value, \"!important\");\n      @if list.length($value) == 1 {\n        $value: de-list($value);\n      }\n      $important: \" !important\";\n    }\n    margin-bottom: get-uswds-value(\"margin-vertical\", $value...) #{$important};\n    margin-top: get-uswds-value(\"margin-vertical\", $value...) #{$important};\n  } @else if $side == t {\n    $important: null;\n    @if has-important($value) {\n      $value: remove($value, \"!important\");\n      @if list.length($value) == 1 {\n        $value: de-list($value);\n      }\n      $important: \" !important\";\n    }\n    margin-top: get-uswds-value(\"margin-vertical\", $value...) #{$important};\n  } @else if $side == r {\n    $important: null;\n    @if has-important($value) {\n      $value: remove($value, \"!important\");\n      @if list.length($value) == 1 {\n        $value: de-list($value);\n      }\n      $important: \" !important\";\n    }\n    margin-right: get-uswds-value(\"margin-horizontal\", $value...) #{$important};\n  } @else if $side == b {\n    $important: null;\n    @if has-important($value) {\n      $value: remove($value, \"!important\");\n      @if list.length($value) == 1 {\n        $value: de-list($value);\n      }\n      $important: \" !important\";\n    }\n    margin-bottom: get-uswds-value(\"margin-vertical\", $value...) #{$important};\n  } @else if $side == l {\n    $important: null;\n    @if has-important($value) {\n      $value: remove($value, \"!important\");\n      @if list.length($value) == 1 {\n        $value: de-list($value);\n      }\n      $important: \" !important\";\n    }\n    margin-left: get-uswds-value(\"margin-horizontal\", $value...) #{$important};\n  }\n}\n\n@mixin u-margin($value...) {\n  @include margin-n(all, $value...);\n}\n\n@mixin u-margin-x($value...) {\n  @include margin-n(x, $value...);\n}\n\n@mixin u-margin-y($value...) {\n  @include margin-n(y, $value...);\n}\n\n@mixin u-margin-top($value...) {\n  @include margin-n(t, $value...);\n}\n\n@mixin u-margin-right($value...) {\n  @include margin-n(r, $value...);\n}\n\n@mixin u-margin-bottom($value...) {\n  @include margin-n(b, $value...);\n}\n\n@mixin u-margin-left($value...) {\n  @include margin-n(l, $value...);\n}\n","@use \"sass:meta\";\n@use \"sass:list\";\n@use \"../general/focus-outline\" as *;\n@use \"../../functions\" as *;\n@use \"../../mixins/utilities\" as *;\n@use \"../../mixins/general/focus-outline\" as *;\n@use \"../../settings\" as *;\n\n/*\n----------------------------------------\ntypeset()\n----------------------------------------\nSets:\n- family\n- size\n- line-height\n----------------------------------------\n*/\n\n@mixin typeset(\n  $family: $theme-body-font-family,\n  $scale: $theme-body-font-size,\n  $line-height: $theme-body-line-height\n) {\n  @if meta.type-of($family) == \"list\" {\n    $list: $family;\n    $family: if(list.nth($list, 1), list.nth($list, 1), null);\n    $scale: if(list.nth($list, 2), list.nth($list, 2), null);\n    $line-height: if(list.nth($list, 3), list.nth($list, 3), null);\n  }\n  $family: if($family == null, $theme-body-font-family, $family);\n  $scale: if($scale == null, $theme-body-font-size, $scale);\n  $line-height: if($line-height == null, $theme-body-line-height, $line-height);\n  @include u-font($family, $scale);\n  @include u-line-height($family, $line-height);\n}\n\n@mixin typeset-heading-base {\n  @include u-margin-y(0);\n  clear: both;\n}\n\n@mixin typeset-heading {\n  @include typeset-heading-base;\n\n  * + & {\n    margin-top: $theme-heading-margin-top;\n  }\n\n  + * {\n    margin-top: $theme-paragraph-margin-top;\n  }\n}\n\n@mixin typeset-p-base {\n  line-height: line-height($theme-body-font-family, $theme-body-line-height);\n  max-width: measure($theme-text-measure);\n}\n\n// typeset element mixins\n@mixin typeset-p {\n  @include typeset-p-base;\n  @include u-margin-y(0);\n\n  * + & {\n    margin-top: $theme-paragraph-margin-top;\n  }\n\n  + * {\n    margin-top: $theme-paragraph-margin-top;\n  }\n}\n\n@mixin typeset-link {\n  color: color($theme-link-color);\n  text-decoration: underline;\n\n  &:visited {\n    color: color($theme-link-visited-color);\n  }\n\n  &:hover {\n    color: color($theme-link-hover-color);\n  }\n\n  &:active {\n    color: color($theme-link-active-color);\n  }\n\n  &:focus {\n    @include focus-outline;\n  }\n}\n","@use \"../../settings\" as *;\n@use \"../../functions\" as *;\n@use \"../../mixins/utilities\" as *;\n@use \"./typeset\" as *;\n\n@mixin display {\n  @include typeset(\n    \"heading\",\n    $theme-display-font-size,\n    $theme-heading-line-height\n  );\n\n  font-weight: fw(\"bold\");\n}\n\n@mixin h1 {\n  @include typeset(\"heading\", $theme-h1-font-size, $theme-heading-line-height);\n  font-weight: fw(\"bold\");\n}\n\n@mixin h2 {\n  @include typeset(\"heading\", $theme-h2-font-size, $theme-heading-line-height);\n  font-weight: fw(\"bold\");\n}\n\n@mixin h3 {\n  @include typeset(\"heading\", $theme-h3-font-size, $theme-heading-line-height);\n  font-weight: fw(\"bold\");\n}\n\n@mixin h4 {\n  @include typeset(\"heading\", $theme-h4-font-size, $theme-heading-line-height);\n  font-weight: fw(\"bold\");\n}\n@mixin h5 {\n  @include typeset(\"heading\", $theme-h5-font-size, $theme-heading-line-height);\n  font-weight: fw(\"bold\");\n}\n\n@mixin h6 {\n  @include typeset(\"body\", $theme-h6-font-size, $theme-heading-line-height);\n  font-weight: fw(\"normal\");\n  letter-spacing: ls(\"ls-1\");\n  text-transform: uppercase;\n}\n\n@mixin typeset-display {\n  @include typeset-heading;\n  @include display;\n}\n\n@mixin typeset-h1 {\n  @include typeset-heading;\n  @include h1;\n}\n\n@mixin typeset-h2 {\n  @include typeset-heading;\n  @include h2;\n}\n\n@mixin typeset-h3 {\n  @include typeset-heading;\n  @include h3;\n}\n\n@mixin typeset-h4 {\n  @include typeset-heading;\n  @include h4;\n}\n\n@mixin typeset-h5 {\n  @include typeset-heading;\n  @include h5;\n}\n\n@mixin typeset-h6 {\n  @include typeset-heading;\n  @include h6;\n}\n","@use \"sass:map\";\n@use \"../../functions\" as *;\n@use \"../../properties\" as *;\n@use \"../../settings\" as *;\n\n// Mobile-first media query helper\n\n$our-breakpoints: map-deep-get($system-properties, breakpoints, standard);\n$custom-breakpoints: map-deep-get($system-properties, breakpoints, extended);\n\n@mixin at-media($bp) {\n  $quoted-bp: smart-quote($bp);\n  @if $quoted-bp == \"none\" {\n    @content;\n  } @else if map.has-key($our-breakpoints, $quoted-bp) {\n    @if $theme-respect-user-font-size {\n      $bp: rem-to-user-em(map.get($our-breakpoints, $quoted-bp));\n    } @else {\n      $bp: rem-to-px(map.get($our-breakpoints, $quoted-bp));\n    }\n    @media all and (min-width: #{$bp}) {\n      @content;\n    }\n  } @else if map.has-key($custom-breakpoints, $quoted-bp) {\n    @if unit(map.get($custom-breakpoints, $quoted-bp)) == \"px\" {\n      @if $theme-respect-user-font-size {\n        $bp: px-to-user-em(map.get($custom-breakpoints, $quoted-bp));\n      } @else {\n        $bp: map.get($custom-breakpoints, $quoted-bp);\n      }\n      @media all and (min-width: #{$bp}) {\n        @content;\n      }\n    } @else {\n      @warn 'Custom breakpoint `#{$quoted-bp}` was defined with the unit #{unit(map.get($custom-breakpoints, $quoted-bp))} and can not be generated. Values for `$theme-utility-breakpoints-custom` must be set with `px` units.';\n    }\n  } @else {\n    @warn '`#{$bp}` is not a valid USWDS project breakpoint. Valid values: #{map.keys($our-breakpoints)}';\n  }\n}\n\n// Max-width media query\n@mixin at-media-max($bp) {\n  $quoted-bp: smart-quote($bp);\n  @if map-has-key($our-breakpoints, $quoted-bp) {\n    @if $theme-respect-user-font-size {\n      $bp: rem-to-user-em(map.get($our-breakpoints, $quoted-bp)) - 0.01em;\n    } @else {\n      $bp: rem-to-px(map.get($our-breakpoints, $quoted-bp)) - 1px;\n    }\n    @media all and (max-width: #{$bp}) {\n      @content;\n    }\n  } @else if map.has-key($custom-breakpoints, $quoted-bp) {\n    @if unit(map.get($custom-breakpoints, $quoted-bp)) == \"px\" {\n      @if $theme-respect-user-font-size {\n        $bp: px-to-user-em(map.get($custom-breakpoints, $quoted-bp)) - 0.01em;\n      } @else {\n        $bp: map.get($custom-breakpoints, $quoted-bp) - 1px;\n      }\n      @media all and (max-width: #{$bp}) {\n        @content;\n      }\n    } @else {\n      @warn 'Custom breakpoint `#{$quoted-bp}` has the unit #{unit(map.get($custom-breakpoints, $quoted-bp))} and can not be generated. Custom breakpoints must be set in px.';\n    }\n  } @else {\n    @warn '`#{$bp}` is not a valid USWDS project breakpoint. Valid values: #{map-keys($our-breakpoints)}';\n  }\n}\n","@use \"uswds-core\" as *;\n\n.usa-intro {\n  @include typeset(\n    $theme-lead-font-family,\n    $theme-lead-font-size,\n    $theme-lead-line-height\n  );\n  font-weight: $theme-font-weight-normal;\n  max-width: measure($theme-lead-measure);\n}\n","/*\n* * * * * ==============================\n* * * * * ==============================\n* * * * * ==============================\n* * * * * ==============================\n========================================\n========================================\n========================================\n----------------------------------------\nTYPOGRAPHY SETTINGS\n----------------------------------------\nRead more about settings and\nUSWDS typography tokens in the documentation:\nhttps://designsystem.digital.gov/design-tokens/typesetting/overview/\n----------------------------------------\n*/\n\n/*\n----------------------------------------\nRoot font size\n----------------------------------------\nSetting $theme-respect-user-font-size to\ntrue sets the root font size to 100% and\nuses ems for media queries\n----------------------------------------\n$theme-root-font-size only applies when\n$theme-respect-user-font-size is set to\nfalse.\n\nThis will set the root font size\nas a specific px value and use px values\nfor media queries.\n\nAccepts true or false\n----------------------------------------\n*/\n\n$theme-respect-user-font-size: true !default;\n\n// $theme-root-font-size only applies when\n// $theme-respect-user-font-size is set to\n// false.\n\n// This will set the root font size\n// as a specific px value and use px values\n// for media queries.\n\n// Accepts values in px\n\n$theme-root-font-size: 10px !default;\n\n/*\n----------------------------------------\nGlobal styles\n----------------------------------------\nAdds basic styling for the following\nunclassed elements:\n\n- paragraph: paragraph text\n- link: links\n- content: paragraph text, links,\n  headings, lists, and tables\n----------------------------------------\n*/\n\n$theme-global-paragraph-styles: false !default;\n$theme-global-link-styles: false !default;\n$theme-global-content-styles: false !default;\n\n/*\n----------------------------------------\nBroswer compatibility mode\n----------------------------------------\nWhen true, outputs woff and ttf font \nformats in addition to woff2\n----------------------------------------\n*/\n\n$theme-font-browser-compatibility: false !default;\n\n/*\n----------------------------------------\nFont path\n----------------------------------------\nRelative font file path\n----------------------------------------\n*/\n\n$theme-font-path: \"../fonts\" !default;\n\n/*\n----------------------------------------\nCustom typeface tokens\n----------------------------------------\nAdd a new custom typeface token if\nyour project uses a typeface not already\ndefined by USWDS.\n----------------------------------------\nUSWDS defines the following tokens\nby default:\n----------------------------------------\n'georgia'\n'helvetica'\n'merriweather'\n'open-sans'\n'public-sans'\n'roboto-mono'\n'source-sans-pro'\n'system'\n'tahoma'\n'verdana'\n----------------------------------------\nAdd as many new tokens as you have\ncustom typefaces. Reference your new\ntoken(s) in the type-based font settings\nusing the quoted name of the token.\n\nFor example:\n\n$theme-font-type-cond: 'example-font-token';\n\ndisplay-name:\nThe display name of your font\n\ncap-height:\nThe height of a 500px `N` in Sketch\n----------------------------------------\nYou should change `example-[style]-token`\nnames to something more descriptive.\n----------------------------------------\n*/\n\n$theme-typeface-tokens: (\n  example-serif-token: (\n    display-name: \"Example Serif Display Name\",\n    cap-height: 364px,\n  ),\n  example-sans-token: (\n    display-name: \"Example Sans Display Name\",\n    cap-height: 364px,\n  ),\n) !default;\n\n/*\n----------------------------------------\nType-based font settings\n----------------------------------------\nSet the type-based tokens for your\nproject from the following tokens,\nor from any new font tokens you added in\n$theme-typeface-tokens.\n----------------------------------------\n'georgia'\n'helvetica'\n'merriweather'\n'open-sans'\n'public-sans'\n'roboto-mono'\n'source-sans-pro'\n'system'\n'tahoma'\n'verdana'\n----------------------------------------\n*/\n\n// condensed\n$theme-font-type-cond: false !default;\n\n// icon\n$theme-font-type-icon: false !default;\n\n// language-specific\n$theme-font-type-lang: false !default;\n\n// monospace\n$theme-font-type-mono: \"roboto-mono\" !default;\n\n// sans-serif\n$theme-font-type-sans: \"source-sans-pro\" !default;\n\n// serif\n$theme-font-type-serif: \"merriweather\" !default;\n\n/*\n----------------------------------------\nCustom font stacks\n----------------------------------------\nAdd custom font stacks to any of the\ntype-based fonts. Any USWDS typeface\ntoken already has a default stack.\n\nCustom stacks don't need to include the\nfont's display name. It will\nautomatically appear at the start of\nthe stack.\n----------------------------------------\nExample:\n$theme-font-type-sans: 'source-sans-pro';\n$theme-font-sans-custom-stack: \"Helvetica Neue\", Helvetica, Arial, sans;\n\nOutput:\nfont-family: \"Source Sans Pro\", \"Helvetica Neue\", Helvetica, Arial, sans;\n----------------------------------------\n*/\n\n$theme-font-cond-custom-stack: false !default;\n$theme-font-icon-custom-stack: false !default;\n$theme-font-lang-custom-stack: false !default;\n$theme-font-mono-custom-stack: false !default;\n$theme-font-sans-custom-stack: false !default;\n$theme-font-serif-custom-stack: false !default;\n\n/*\n----------------------------------------\nAdd any custom font source files\n----------------------------------------\nIf you want USWDS to generate additional\n@font-face declarations, add your font\ndata below, following the example that\nfollows.\n----------------------------------------\nUSWDS automatically generates @font-face\ndeclarations for the following\n\n'merriweather'\n'public-sans'\n'roboto-mono'\n'source-sans-pro'\n\nThese typefaces not require custom\nsource files.\n----------------------------------------\nEXAMPLE\n\n- dir:\n  Directory relative to $theme-font-path\n- This directory should include fonts saved as\n  .woff2\n  ExampleSerif-Normal.woff2\n\n$theme-font-serif-custom-src: (\n  dir: 'custom/example-serif',\n  roman: (\n    100: false,\n    200: false,\n    300: 'ExampleSerif-Light',\n    400: 'ExampleSerif-Normal',\n    500: false,\n    600: false,\n    700: 'ExampleSerif-Bold',\n    800: false,\n    900: false,\n  ),\n  italic: (\n    100: false,\n    200: false,\n    300: 'ExampleSerif-LightItalic',\n    400: 'ExampleSerif-Italic',\n    500: false,\n    600: false,\n    700: 'ExampleSerif-BoldItalic',\n    800: false,\n    900: false,\n  ),\n);\n----------------------------------------\n*/\n\n$theme-font-cond-custom-src: false !default;\n$theme-font-icon-custom-src: false !default;\n$theme-font-lang-custom-src: false !default;\n$theme-font-mono-custom-src: false !default;\n$theme-font-sans-custom-src: false !default;\n$theme-font-serif-custom-src: false !default;\n\n/*\n----------------------------------------\nRole-based font settings\n----------------------------------------\nSet the role-based tokens for your\nproject from the following font-type\ntokens.\n----------------------------------------\n'cond'\n'icon'\n'lang'\n'mono'\n'sans'\n'serif'\n----------------------------------------\n*/\n\n$theme-font-role-ui: \"sans\" !default;\n$theme-font-role-heading: \"serif\" !default;\n$theme-font-role-body: \"sans\" !default;\n$theme-font-role-code: \"mono\" !default;\n$theme-font-role-alt: \"serif\" !default;\n\n/*\n----------------------------------------\nType scale\n----------------------------------------\nDefine your project's type scale using\nvalues from the USWDS system type scale\n\n1-20\n----------------------------------------\n*/\n\n$theme-type-scale-3xs: 2 !default;\n$theme-type-scale-2xs: 3 !default;\n$theme-type-scale-xs: 4 !default;\n$theme-type-scale-sm: 5 !default;\n$theme-type-scale-md: 6 !default;\n$theme-type-scale-lg: 9 !default;\n$theme-type-scale-xl: 12 !default;\n$theme-type-scale-2xl: 14 !default;\n$theme-type-scale-3xl: 15 !default;\n\n/*\n----------------------------------------\nFont weights\n----------------------------------------\nAssign weights 100-900\nOr use `false` for unneeded weights.\n----------------------------------------\n*/\n\n$theme-font-weight-thin: false !default;\n$theme-font-weight-light: 300 !default;\n$theme-font-weight-normal: 400 !default;\n$theme-font-weight-medium: false !default;\n$theme-font-weight-semibold: false !default;\n$theme-font-weight-bold: 700 !default;\n$theme-font-weight-heavy: false !default;\n\n// If USWDS is generating your @font-face rules,\n// should we generate all available weights\n// regardless of the assignments above?\n\n$theme-generate-all-weights: false !default;\n\n/*\n----------------------------------------\nGeneral typography settings\n----------------------------------------\nType scale tokens\n----------------------------------------\nmicro:      10px\n1:          12px\n2:          13px\n3:          14px\n4:          15px\n5:          16px\n6:          17px\n7:          18px\n8:          20px\n9:          22px\n10:         24px\n11:         28px\n12:         32px\n13:         36px\n14:         40px\n15:         48px\n16:         56px\n17:         64px\n18:         80px\n19:         120px\n20:         140px\n----------------------------------------\nLine height tokens\n----------------------------------------\n1:    1\n2:    1.15\n3:    1.35\n4:    1.5\n5:    1.62\n6:    1.75\n----------------------------------------\nFont role tokens\n----------------------------------------\n'ui'\n'heading'\n'body'\n'code'\n'alt'\n----------------------------------------\nMeasure (max-width) tokens\n----------------------------------------\n1:       44ex\n2:       60ex\n3:       64ex\n4:       68ex\n5:       74ex\n6:       88ex\nnone:    none\n----------------------------------------\n*/\n\n// Body settings are the equivalent of setting the <body> element\n$theme-body-font-family: \"body\" !default;\n$theme-body-font-size: \"sm\" !default;\n$theme-body-line-height: 5 !default;\n\n// If true, explicitly style the <body> element with the base styles\n$theme-style-body-element: false !default;\n\n// Headings\n$theme-h1-font-size: \"2xl\" !default;\n$theme-h2-font-size: \"xl\" !default;\n$theme-h3-font-size: \"lg\" !default;\n$theme-h4-font-size: \"sm\" !default;\n$theme-h5-font-size: \"xs\" !default;\n$theme-h6-font-size: \"3xs\" !default;\n$theme-heading-line-height: 2 !default;\n$theme-small-font-size: \"2xs\" !default;\n$theme-display-font-size: \"3xl\" !default;\n\n// Text and prose\n$theme-text-measure-narrow: 1 !default;\n$theme-text-measure: 4 !default;\n$theme-text-measure-wide: 6 !default;\n$theme-prose-font-family: \"body\" !default;\n\n// Lead text\n$theme-lead-font-family: \"heading\" !default;\n$theme-lead-font-size: \"lg\" !default;\n$theme-lead-line-height: 6 !default;\n$theme-lead-measure: 6 !default;\n\n// Margin\n$theme-heading-margin-top: 1.5em !default;\n$theme-paragraph-margin-top: 1em !default;\n","@use \"uswds-core\" as *;\n\n$tokens-icon-sizes: (\n  \"3\": 3,\n  \"4\": 4,\n  \"5\": 5,\n  \"6\": 6,\n  \"7\": 7,\n  \"8\": 8,\n  \"9\": 9,\n);\n\n$icon-inline-size-magic-number: 1em;\n\n.usa-icon {\n  display: inline-block;\n  fill: currentColor;\n  height: $icon-inline-size-magic-number;\n  position: relative;\n  width: $icon-inline-size-magic-number;\n}\n\n@each $token, $units in $tokens-icon-sizes {\n  .usa-icon--size-#{$units} {\n    @include u-square($units);\n  }\n}\n","@use \"sass:list\";\n@use \"../../functions\" as *;\n\n// Outputs height\n\n@mixin u-height($value...) {\n  $value: unpack($value);\n  $important: null;\n  @if has-important($value) {\n    $value: remove($value, \"!important\");\n    @if list.length($value) == 1 {\n      $value: de-list($value);\n    }\n    $important: \" !important\";\n  }\n  height: get-uswds-value(\"height\", $value...) #{$important};\n}\n","@use \"sass:list\";\n@use \"../../functions\" as *;\n\n// Outputs width\n\n@mixin u-width($value...) {\n  $value: unpack($value);\n  $important: null;\n  @if has-important($value) {\n    $value: remove($value, \"!important\");\n    @if list.length($value) == 1 {\n      $value: de-list($value);\n    }\n    $important: \" !important\";\n  }\n  width: get-uswds-value(\"width\", $value...) #{$important};\n}\n","@use \"uswds-core\" as *;\n\n.usa-link {\n  @include typeset-link;\n}\n\n// External link consider 'effortless style approach':\n// [href^='http:']:not([href*='my-domain.com'])\n// [href^='https:']:not([href*='my-domain.com'])\n\n.usa-link--external {\n  @include external-link();\n\n  &.usa-link--alt {\n    @include external-link($contrast-bg: \"base-darker\");\n  }\n}\n","@use \"../../settings\" as *;\n@use \"./icon\" as *;\n@use \"../../functions\" as *;\n@use \"./screen-reader\" as *;\n\n$external-link-size: 1.75ex;\n\n$icon-object: (\n  \"name\": \"launch\",\n  \"color\": currentColor,\n  \"height\": $external-link-size,\n  \"svg-height\": 24,\n  \"svg-width\": 24,\n  \"position-x\": center,\n  \"position-y\": center,\n);\n\n@mixin external-link($contrast-bg: \"default\") {\n  display: inline;\n\n  // Screen reader label\n  &::before {\n    @include sr-only;\n    content: $theme-external-link-sr-label-tab-same;\n  }\n\n  &[target=\"_blank\"]::before {\n    @include sr-only;\n    content: $theme-external-link-sr-label-tab-new;\n  }\n\n  &::after {\n    @include add-color-icon($icon-object, $contrast-bg);\n    content: \"\";\n    display: inline;\n    margin-top: 0.7ex;\n    margin-left: 2px;\n    padding-left: 1.75ex;\n    vertical-align: middle;\n  }\n}\n","@use \"sass:map\";\n@use \"sass:math\";\n\n@use \"../../settings\" as *;\n@use \"../../functions\" as *;\n@use \"../../variables\" as *;\n@use \"./add-background-svg\" as *;\n\n@mixin display-icon($icon, $direction, $size, $margin, $hover) {\n  &::#{$direction} {\n    @include add-background-svg(\"#{$icon}\");\n    background-size: 100%;\n    content: \"\";\n    display: inline-block;\n    height: $size;\n    width: $size;\n\n    /* stylelint-disable block-closing-brace-newline-after, at-rule-empty-line-before */\n    @if $direction == \"after\" {\n      margin-left: $margin;\n    } @else {\n      margin-right: $margin;\n    }\n    /* stylelint-enable */\n  }\n\n  @if $hover == \"hover\" {\n    &:hover::#{$direction} {\n      @include add-background-svg(\"#{$icon}-hover\");\n    }\n  }\n}\n\n@mixin remove-icon($direction) {\n  &::#{$direction} {\n    display: none;\n  }\n}\n\n@mixin add-icon(\n  $icon-name,\n  $direction,\n  $image-size,\n  $container-size,\n  $margin,\n  $hover\n) {\n  &::#{$direction} {\n    @include add-background-svg(\"#{$icon-name}\");\n    background-position: center center;\n    background-repeat: no-repeat;\n    background-size: units($image-size);\n    content: \"\";\n    display: inline-block;\n    height: units($container-size);\n    width: units($container-size);\n\n    /* stylelint-disable block-closing-brace-newline-after, at-rule-empty-line-before */\n    @if $direction == \"after\" {\n      margin-left: units($margin);\n    } @else {\n      margin-right: units($margin);\n    }\n    /* stylelint-enable */\n  }\n\n  @if $hover == \"hover\" {\n    &:hover::#{$direction} {\n      @include add-background-svg(\"#{$icon-name}-hover\");\n    }\n  }\n}\n\n// New icon mixins using SVG mask technique\n//\n// $image may be a specific SVG or a list in the form\n// ($base, $variant, $variant-alt, $bg)\n// the mixin will pick IE11-compatible svgs named\n// [base]-[variant].svg based on the specified background-color\n//\n// @param {Map} - $icon-object - name, svg-height, svg-width, height, container-height, container-width, color, color-variant, color-hover, rotate, path, position-x, position-y\n// @param {String} - $contrast-bg - Color token\n@mixin add-color-icon($icon-object, $contrast-bg: \"default\") {\n  $filename-base: map.get($icon-object, \"name\");\n  $svg-height: map.get($icon-object, \"svg-height\");\n  $svg-width: map.get($icon-object, \"svg-width\");\n  $aspect: math.div($svg-width, $svg-height);\n  $height: if(\n    math.is-unitless(map.get($icon-object, \"height\")),\n    units(map.get($icon-object, \"height\")),\n    map.get($icon-object, \"height\")\n  );\n  $width: $height * $aspect;\n  $container-height: if(\n    map.has-key($icon-object, \"container-height\"),\n    units(map.get($icon-object, \"container-height\")),\n    null\n  );\n  $container-width: if(\n    map.has-key($icon-object, \"container-width\"),\n    units(map.get($icon-object, \"container-width\")),\n    null\n  );\n  $color: if(\n    map.has-key($icon-object, \"color\"),\n    map.get($icon-object, \"color\"),\n    \"ink\"\n  );\n  $color-variant: if(\n    map.has-key($icon-object, \"color-variant\"),\n    map.get($icon-object, \"color-variant\"),\n    \"white\"\n  );\n  $color-hover: if(\n    map.has-key($icon-object, \"color-hover\"),\n    map.get($icon-object, \"color-hover\"),\n    null\n  );\n  $rotate: if(\n    map.has-key($icon-object, \"rotate\"),\n    map.get($icon-object, \"rotate\"),\n    null\n  );\n  $path: if(\n    map.has-key($icon-object, \"path\"),\n    map.get($icon-object, \"path\"),\n    $theme-image-path\n  );\n  $position-y: if(\n    map.has-key($icon-object, \"position-y\"),\n    map.get($icon-object, \"position-y\"),\n    center\n  );\n  $position-x: if(\n    map.has-key($icon-object, \"position-x\"),\n    map.get($icon-object, \"position-x\"),\n    center\n  );\n  $ie11-variant: get-color-token-from-bg($contrast-bg, \"white\", \"black\");\n  $filename-ie11: if(\n    $ie11-variant == \"white\",\n    \"usa-icons-bg/#{$filename-base}--white.svg\",\n    \"usa-icons/#{$filename-base}.svg\"\n  );\n\n  background-image: url(\"#{$path}/#{$filename-ie11}\");\n  background-repeat: no-repeat;\n  background-position: $position-x $position-y;\n  background-size: $width $height;\n  display: inline-block;\n  height: if($container-height, $container-height, $height);\n  width: if($container-width, $container-width, $width);\n  @if $rotate {\n    transform: rotate($rotate);\n  }\n\n  // Mask supported styles\n  @supports (mask: url(\"\")) {\n    background: none;\n    background-color: if($color == currentColor, $color, color($color));\n    mask-image: url(\"#{$path}/usa-icons/#{$filename-base}.svg\"),\n      linear-gradient(transparent, transparent);\n    mask-position: $position-x $position-y;\n    mask-repeat: no-repeat;\n    mask-size: $width $height;\n\n    @if $color-hover {\n      &:hover {\n        background-color: color($color-hover);\n      }\n    }\n  }\n}\n\n// Places an icon before or after an element as an inline-block,\n// using the `:before` or `:after` pseudoelements.\n@mixin place-icon(\n  $icon-object,\n  $direction,\n  $margin: \"auto\",\n  $vertical-align: middle,\n  $contrast-bg: \"default\"\n) {\n  $color-hover: if(\n    map.has-key($icon-object, \"color-hover\"),\n    map.get($icon-object, \"color-hover\"),\n    null\n  );\n  &::#{$direction} {\n    @include add-color-icon($icon-object, $contrast-bg);\n    content: \"\";\n    vertical-align: $vertical-align;\n\n    @if $direction == \"after\" {\n      margin-left: units($margin);\n    } @else {\n      margin-right: units($margin);\n    }\n  }\n\n  @if $color-hover {\n    &:hover::#{$direction} {\n      content: \"\"; // Added to address a weird display bug\n      background-color: color($color-hover);\n    }\n  }\n}\n","@use \"uswds-core\" as *;\n\n.usa-list {\n  @include usa-list;\n\n  li {\n    @include usa-list-item;\n  }\n}\n\n// Unstyled lists\n@include override-prose {\n  .usa-list--unstyled {\n    @include unstyled-list;\n  }\n}\n","@use \"../../functions\" as *;\n@use \"../../mixins/utilities\" as *;\n@use \"../../settings\" as *;\n\n@mixin usa-list {\n  @include u-margin-y(1em);\n  line-height: line-height($theme-body-font-family, $theme-body-line-height);\n  padding-left: 3ch;\n\n  &:last-child {\n    margin-bottom: 0;\n  }\n\n  ul,\n  ol {\n    margin-top: 0.25em;\n  }\n}\n\n@mixin usa-list-item {\n  margin-bottom: 0.25em;\n  max-width: measure($theme-text-measure);\n\n  &:last-child {\n    margin-bottom: 0;\n  }\n}\n\n@mixin usa-list-styles {\n  ul,\n  ol {\n    @include usa-list;\n\n    li {\n      @include usa-list-item;\n    }\n  }\n}\n","@use \"../utilities\" as *;\n\n// Unstyled list helper\n@mixin unstyled-list() {\n  @include u-margin-y(0);\n  list-style-type: none;\n  padding-left: 0;\n\n  > li {\n    margin-bottom: 0;\n    max-width: unset;\n  }\n}\n","@use \"uswds-core\" as *;\n\n.usa-paragraph {\n  @include typeset-p;\n}\n","@use \"uswds-core\" as *;\n\n.usa-prose {\n  @include typeset($theme-prose-font-family);\n\n  & > {\n    @include usa-list-styles;\n    @include usa-table-styles;\n\n    p {\n      @include typeset-p-base;\n    }\n\n    h1,\n    h2,\n    h3,\n    h4,\n    h5,\n    h6 {\n      @include typeset-heading-base;\n    }\n\n    * + * {\n      margin-top: $theme-paragraph-margin-top;\n      margin-bottom: 0;\n    }\n\n    * + {\n      h1,\n      h2,\n      h3,\n      h4,\n      h5,\n      h6 {\n        margin-top: $theme-heading-margin-top;\n      }\n    }\n\n    // Replaces styles from usa-headings-styles\n    h1 {\n      @include h1;\n    }\n    h2 {\n      @include h2;\n    }\n    h3 {\n      @include h3;\n    }\n    h4 {\n      @include h4;\n    }\n    h5 {\n      @include h5;\n    }\n    h6 {\n      @include h6;\n    }\n  }\n}\n\n@mixin prose-test {\n  .usa-prose {\n    & > {\n      p {\n        @include typeset-p-base;\n      }\n\n      h1 {\n        margin-bottom: 0;\n        margin-top: 0;\n        clear: both;\n      }\n\n      * + * {\n        margin-top: $theme-paragraph-margin-top;\n      }\n\n      * + h1 {\n        margin-top: $theme-heading-margin-top;\n      }\n    }\n  }\n}\n","@use \"../../settings\" as *;\n@use \"../../functions\" as *;\n@use \"button-unstyled\" as *;\n@use \"../helpers\" as *;\n@use \"../utilities\" as *;\n@use \"../typography/typeset\" as *;\n\n$table-background-color: $theme-table-background-color;\n\n@if $table-background-color == \"default\" {\n  $table-background-color: get-default(\"bg-color\");\n}\n\n$table-text-color: get-color-token-from-bg(\n  $bg-color: $theme-table-background-color,\n  $preferred-text-token: $theme-table-text-color,\n  $context: \"Table text\",\n);\n\n$table-header-text-color: color(\n  get-color-token-from-bg(\n    $bg-color: $theme-table-header-background-color,\n    $preferred-text-token: $theme-table-header-text-color,\n    $context: \"Table header text\",\n  )\n);\n\n$table-stripe-text-color: color(\n  get-color-token-from-bg(\n    $bg-color: $theme-table-stripe-background-color,\n    $preferred-text-token: $theme-table-stripe-text-color,\n    $context: \"Table stripe text\",\n  )\n);\n\n$table-sorted-text-color: color(\n  get-color-token-from-bg(\n    $bg-color: $theme-table-sorted-background-color,\n    $context: \"Table sorted text\",\n  )\n);\n\n$table-sorted-header-text-color: color(\n  get-color-token-from-bg(\n    $bg-color: $theme-table-sorted-header-background-color,\n    $preferred-text-token: $theme-table-header-text-color,\n    $context: \"Table sorted header text\",\n  )\n);\n\n$table-sorted-stripe-text-color: color(\n  get-color-token-from-bg(\n    $bg-color: $theme-table-sorted-stripe-background-color,\n    $preferred-text-token: $theme-table-stripe-text-color,\n    $context: \"Table sorted stripe text\",\n  )\n);\n\n$table-sorted-icon-color: color(\n  get-color-token-from-bg(\n    $bg-color: $theme-table-sorted-header-background-color,\n    $preferred-text-token: $theme-table-sorted-icon-color,\n    $context: \"Table sorted icon\",\n  )\n);\n\n$table-unsorted-icon-color: get-color-token-from-bg(\n  $bg-color: $theme-table-header-background-color,\n  $preferred-text-token: $theme-table-unsorted-icon-color,\n  $context: \"Table unsorted icon\",\n);\n\n// Shared table styles\n@mixin table-header-unsorted-styles {\n  padding-right: units(5);\n  position: relative;\n  &::after {\n    border-bottom-color: transparent;\n    border-bottom-style: solid;\n    border-bottom-width: units(1px);\n    bottom: 0;\n    content: \"\";\n    height: 0;\n    left: 0;\n    position: absolute;\n    width: 100%;\n  }\n}\n\n@mixin table-button-default-styles {\n  @include button-unstyled;\n  @include u-square(4);\n  background-position: center center;\n  background-size: units(3);\n  color: color($theme-table-unsorted-icon-color);\n  cursor: pointer;\n  display: inline-block;\n  margin: 0;\n  position: absolute;\n  right: 0.25rem;\n  text-align: center;\n  text-decoration: none;\n  // vertically center button within table header\n  top: 50%;\n  transform: translate(0, -50%);\n  .usa-icon {\n    @include u-square(3);\n    vertical-align: middle;\n    & > g {\n      fill: transparent;\n    }\n  }\n}\n\n// The SVG in the sortable column button contains three icon shapes.\n// This CSS controls which of the shapes is 'filled' when active.\n\n@mixin table-button-unsorted-styles {\n  @include table-button-default-styles;\n  .usa-icon > g.unsorted {\n    fill: color($table-unsorted-icon-color);\n  }\n  &:hover .usa-icon > g.unsorted {\n    fill: color(next-token($table-unsorted-icon-color, \"darker\"));\n  }\n}\n\n@mixin table-button-sorted-ascending-styles {\n  @include table-button-default-styles;\n  .usa-icon > g.ascending {\n    fill: $table-sorted-icon-color;\n  }\n}\n\n@mixin table-button-sorted-descending-styles {\n  @include table-button-default-styles;\n  .usa-icon > g.descending {\n    fill: $table-sorted-icon-color;\n  }\n}\n\n@mixin table-stacked-styles {\n  thead {\n    display: none;\n  }\n\n  th {\n    background-color: color($table-background-color);\n  }\n\n  th,\n  td {\n    border-bottom-width: 0;\n    display: block;\n    width: 100%;\n  }\n\n  tr {\n    border-bottom: units(0.5) solid color($theme-table-border-color);\n    border-top-width: 0;\n    width: 100%;\n    th:first-child,\n    td:first-child {\n      border-top-width: 0;\n    }\n    &:nth-child(odd) {\n      td,\n      th {\n        background-color: inherit;\n      }\n    }\n\n    &:first-child {\n      th:first-child,\n      td:first-child {\n        border-top: units(0.5) solid color($theme-table-border-color);\n      }\n    }\n  }\n\n  th[data-label],\n  td[data-label] {\n    padding-bottom: units(1.5);\n\n    &:before {\n      content: attr(data-label);\n      display: block;\n      font-weight: fw(\"bold\");\n      margin: units(-1) units(-2) units(0);\n      padding: units(1.5) units(2) units(0.5);\n    }\n  }\n}\n\n@mixin table-stacked-header-styles {\n  tr {\n    td:first-child,\n    th:first-child {\n      @include typeset(\n        $theme-body-font-family,\n        $theme-h4-font-size,\n        $theme-heading-line-height\n      );\n      background-color: color($theme-table-header-background-color);\n      color: $table-header-text-color;\n      font-weight: fw(\"bold\");\n      padding: units(1.5) units(2);\n      &:before {\n        display: none;\n      }\n    }\n  }\n}\n\n@mixin usa-table {\n  @include border-box-sizing;\n  @include typeset;\n  border-collapse: collapse;\n  border-spacing: 0;\n  color: color($table-text-color);\n  margin: units(2.5) 0;\n  text-align: left;\n\n  thead td,\n  tfoot td,\n  th {\n    background-clip: padding-box;\n    line-height: line-height($theme-body-font-family, $theme-input-line-height);\n    background-color: color($theme-table-header-background-color);\n    color: $table-header-text-color;\n  }\n\n  th,\n  td {\n    border: 1px solid color($theme-table-border-color);\n    padding: units(1) units(2);\n  }\n\n  td {\n    background-color: color($table-background-color);\n    font-weight: fw(\"normal\");\n  }\n\n  caption {\n    @include u-font(\"body\", \"xs\");\n    font-weight: fw(\"bold\");\n    margin-bottom: units(1.5);\n    text-align: left;\n  }\n\n  /* stylelint-disable selector-class-pattern */\n  th[data-sortable] {\n    @include table-header-unsorted-styles;\n\n    &:not([aria-sort]),\n    &[aria-sort=\"none\"] {\n      .usa-table__header__button {\n        @include table-button-unsorted-styles;\n      }\n    }\n\n    &[aria-sort=\"descending\"],\n    &[aria-sort=\"ascending\"] {\n      background-color: color($theme-table-sorted-header-background-color);\n    }\n\n    &[aria-sort=\"descending\"] {\n      .usa-table__header__button {\n        @include table-button-sorted-descending-styles;\n      }\n    }\n\n    &[aria-sort=\"ascending\"] {\n      .usa-table__header__button {\n        @include table-button-sorted-ascending-styles;\n      }\n    }\n  }\n  /* stylelint-enable selector-class-pattern */\n\n  thead {\n    th[aria-sort] {\n      background-color: color($theme-table-sorted-header-background-color);\n      color: $table-sorted-header-text-color;\n    }\n  }\n\n  td[data-sort-active],\n  th[data-sort-active] {\n    background-color: color($theme-table-sorted-background-color);\n    color: $table-sorted-text-color;\n  }\n}\n\n@mixin usa-table--borderless {\n  th,\n  thead td,\n  tfoot td {\n    background-color: color($table-background-color);\n  }\n\n  th {\n    border-top: 0;\n    color: color($table-text-color);\n\n    &[aria-sort] {\n      color: $table-sorted-header-text-color;\n    }\n  }\n  /* stylelint-disable selector-class-pattern */\n  th[data-sortable]:not([aria-sort]) {\n    .usa-table__header__button .usa-icon > g.unsorted {\n      fill: color($table-text-color);\n    }\n\n    .usa-table__header__button:hover .usa-icon > g.unsorted {\n      fill: color(next-token($table-text-color, \"darker\"));\n    }\n  }\n  /* stylelint-enable selector-class-pattern */\n  th,\n  td {\n    border-left: 0;\n    border-right: 0;\n  }\n}\n\n@mixin usa-table--compact {\n  th,\n  td {\n    padding: units(0.5) units(1.5);\n  }\n}\n\n@mixin usa-table--striped {\n  tbody {\n    tr:nth-child(odd) {\n      td {\n        background-color: color($theme-table-stripe-background-color);\n        color: $table-stripe-text-color;\n        &[data-sort-active] {\n          background-color: color($theme-table-sorted-stripe-background-color);\n          color: $table-sorted-stripe-text-color;\n        }\n      }\n    }\n  }\n}\n\n@mixin usa-table--stacked {\n  @include table-stacked-styles;\n}\n\n@mixin usa-table--stacked-header {\n  @include table-stacked-styles;\n  @include table-stacked-header-styles;\n}\n\n@mixin usa-table--sticky-header {\n  border: 1px solid color($theme-table-border-color);\n  border-collapse: separate;\n\n  td,\n  th {\n    border-left: none;\n    border-top: none;\n\n    &:last-child {\n      border-right: none;\n    }\n  }\n\n  tfoot {\n    td,\n    th {\n      border-top: 1px solid color($theme-table-border-color);\n      border-bottom: none;\n    }\n  }\n\n  tbody tr:last-child {\n    td,\n    th {\n      border-bottom: none;\n    }\n  }\n\n  thead {\n    position: sticky;\n    top: $theme-table-sticky-top-offset;\n  }\n\n  &.usa-table--borderless {\n    border: none;\n\n    th {\n      background-color: color($table-background-color);\n    }\n\n    td,\n    th {\n      border-right: none;\n    }\n  }\n}\n\n@mixin usa-table-container--scrollable {\n  margin: units(2.5) 0;\n  overflow-y: hidden;\n\n  .usa-table {\n    margin: 0;\n  }\n\n  td {\n    white-space: nowrap;\n  }\n}\n","@use \"../general/table\" as *;\n@use \"../helpers/at-media\" as *;\n\n@mixin usa-table-styles {\n  table {\n    @include usa-table;\n  }\n  .usa-table--borderless {\n    @include usa-table--borderless;\n  }\n  .usa-table--compact {\n    @include usa-table--compact;\n  }\n  .usa-table--striped {\n    @include usa-table--striped;\n  }\n  .usa-table--stacked {\n    @include at-media-max(\"mobile-lg\") {\n      @include table-stacked-styles;\n    }\n  }\n  .usa-table--stacked-header {\n    @include at-media-max(\"mobile-lg\") {\n      @include table-stacked-styles;\n      @include table-stacked-header-styles;\n    }\n  }\n  .width-mobile {\n    .usa-table--stacked {\n      @include usa-table--stacked;\n    }\n    .usa-table--stacked-header {\n      @include usa-table--stacked-header;\n    }\n  }\n  .usa-table-container--scrollable {\n    @include usa-table-container--scrollable;\n  }\n}\n","@use \"../../settings\" as *;\n@use \"../../functions\" as *;\n@use \"../../mixins/utilities\" as *;\n@use \"../typography/typeset\" as *;\n\n///\n/// Removes button styles and adds link styles.\n/// Includes hover, active, disabled, and focus states for accessibility.\n///\n/// @example\n/// .my-unstyled-button {\n///   @include button-unstyled;\n/// }\n///\n@mixin button-unstyled {\n  @include typeset-link;\n  background-color: transparent;\n  border: 0;\n  border-radius: 0;\n  box-shadow: none;\n  font-weight: font-weight(\"normal\");\n  justify-content: normal;\n  text-align: left;\n  margin: 0;\n  padding: 0;\n  width: auto;\n\n  &:hover,\n  &.usa-button--hover,\n  &:disabled:hover,\n  &[aria-disabled=\"true\"]:hover,\n  &:disabled.usa-button--hover,\n  &[aria-disabled=\"true\"].usa-button--hover,\n  &:active,\n  &.usa-button--active,\n  &:disabled:active,\n  &[aria-disabled=\"true\"]:active,\n  &:disabled.usa-button--active,\n  &[aria-disabled=\"true\"].usa-button--active,\n  &:disabled:focus,\n  &[aria-disabled=\"true\"]:focus,\n  &:disabled.usa-focus,\n  &[aria-disabled=\"true\"].usa-focus,\n  &:disabled,\n  &[aria-disabled=\"true\"],\n  &.usa-button--disabled {\n    background-color: transparent;\n    box-shadow: none;\n    text-decoration: underline;\n  }\n\n  &.usa-button--hover {\n    color: color($theme-link-hover-color);\n  }\n\n  &.usa-button--active {\n    color: color($theme-link-active-color);\n  }\n\n  &:disabled,\n  &[aria-disabled=\"true\"],\n  &:disabled:hover,\n  &[aria-disabled=\"true\"]:hover,\n  &[aria-disabled=\"true\"]:focus {\n    color: color(\"disabled\");\n\n    @media (forced-colors: active) {\n      color: color(GrayText);\n    }\n  }\n}\n","@use \"sass:map\";\n@use \"uswds-core\" as *;\n\n// Variables\n$accordion-context: \"Accordion\";\n\n$accordion-border: units($theme-accordion-border-width) solid\n  color($theme-accordion-border-color);\n\n$accordion-button-background-active-color: next-token(\n  $theme-accordion-button-background-color,\n  \"darker\"\n);\n\n// Maps for High Contrast Mode\n\n$accordion-icon-map-defaults: (\n  color: color(\"ButtonText\"),\n  svg-height: 20,\n  svg-width: 20,\n  height: units(3),\n);\n\n$accordion-button-unopen-hc-icon: map-merge(\n  $accordion-icon-map-defaults,\n  (\n    \"name\": \"add\",\n  )\n);\n\n$accordion-button-open-hc-icon: map-merge(\n  $accordion-icon-map-defaults,\n  (\n    \"name\": \"remove\",\n  )\n);\n\n// Accordion Styles\n@mixin accordion-list-styles {\n  @include unstyled-list;\n  color: color(\"ink\");\n  margin: 0;\n  padding: 0;\n  width: 100%;\n}\n\n@mixin accordion-hc-icon-styles {\n  height: 100%;\n  position: absolute;\n  right: units(2.5);\n  top: 0;\n}\n\n// Opened styles\n@mixin accordion-button-styles {\n  @include button-unstyled;\n  @include set-text-and-bg(\n    $theme-accordion-button-background-color,\n    $context: $accordion-context\n  );\n  @include set-icon-from-bg(\n    $theme-accordion-button-background-color,\n    \"usa-icons/remove\",\n    \"usa-icons-bg/remove--white\"\n  );\n  background-position: right units(2.5) center;\n  background-size: units(3);\n  cursor: pointer;\n  display: inline-block;\n  font-weight: font-weight(\"bold\");\n  margin: 0;\n  padding: units(2) units(2.5) * 2 + units(2) units(2) units(2.5);\n  text-decoration: none;\n  width: 100%;\n\n  &:hover {\n    @include set-text-and-bg(\n      $accordion-button-background-active-color,\n      $context: $accordion-context\n    );\n    @include set-icon-from-bg(\n      $accordion-button-background-active-color,\n      \"usa-icons/remove\",\n      \"usa-icons-bg/remove--white\"\n    );\n    text-decoration: none;\n  }\n\n  @media (forced-colors: active) {\n    border: $border-high-contrast;\n    position: relative;\n\n    &::before {\n      @include add-color-icon($accordion-button-open-hc-icon);\n      @include accordion-hc-icon-styles();\n      content: \"\";\n    }\n  }\n}\n\n@mixin accordion-button-unopened-styles {\n  @include set-icon-from-bg(\n    $theme-accordion-button-background-color,\n    \"usa-icons/add\",\n    \"usa-icons-bg/add--white\"\n  );\n  background-size: units(3);\n\n  &:hover {\n    @include set-icon-from-bg(\n      $accordion-button-background-active-color,\n      \"usa-icons/add\",\n      \"usa-icons-bg/add--white\"\n    );\n  }\n\n  @media (forced-colors: active) {\n    &::before {\n      @include add-color-icon($accordion-button-unopen-hc-icon);\n      @include accordion-hc-icon-styles();\n    }\n  }\n}\n\n@mixin accordion-nested-list {\n  > ul li ul {\n    list-style: disc;\n    > li > ul {\n      list-style: circle;\n      > li > ul {\n        list-style: square;\n      }\n    }\n  }\n}\n\n.usa-accordion {\n  @include accordion-list-styles;\n  @include accordion-nested-list;\n  @include border-box-sizing;\n  @include typeset($theme-accordion-font-family);\n\n  + .usa-accordion,\n  + .usa-accordion--bordered {\n    margin-top: units(1);\n  }\n}\n\n.usa-accordion--bordered {\n  .usa-accordion__content {\n    border-bottom: $accordion-border;\n    border-left: $accordion-border;\n    border-right: $accordion-border;\n    padding-bottom: units(2);\n  }\n\n  .usa-accordion__heading {\n    margin-bottom: 0;\n  }\n}\n\n.usa-accordion__heading,\n// kludge to override .usa-prose styles\n// TODO: work this into a mixin\n.usa-prose .usa-accordion__heading {\n  @include typeset($theme-accordion-font-family, $theme-body-font-size, 1);\n  margin: 0;\n\n  &:not(:first-child) {\n    margin-top: units(1);\n  }\n}\n\n.usa-accordion__content {\n  @include set-text-and-bg(\n    $theme-accordion-background-color,\n    $context: $accordion-context\n  );\n  margin-top: 0;\n  overflow: auto;\n  padding: units(2) units(2.5) calc(#{units(2)} - #{units(0.5)}) units(2.5);\n\n  > *:first-child {\n    margin-top: 0;\n  }\n\n  > *:last-child {\n    margin-bottom: 0;\n  }\n}\n\n.usa-accordion__button {\n  @include accordion-button-styles;\n}\n\n.usa-accordion__button[aria-expanded=\"false\"] {\n  @include accordion-button-unopened-styles;\n}\n","@use \"../../settings\" as *;\n\n// Ensure browsers that don't support SVG in background-image (IE 11 and below) fall back to PNG.\n// See https://css-tricks.com/a-complete-guide-to-svg-fallbacks/\n\n@mixin add-background-svg($image-name, $image-path: $theme-image-path) {\n  background-image: url(\"#{$image-path}/#{$image-name}.svg\"),\n    linear-gradient(transparent, transparent);\n  background-repeat: no-repeat;\n}\n","@use \"../tokens/color/high-contrast-mode-colors\";\n@use \"../functions/utilities/color\" as *;\n\n$border-high-contrast: 2px solid transparent;\n$border-high-contrast-disabled: 2px solid color(GrayText);\n","@use \"sass:math\";\n\n@use \"uswds-core\" as *;\n\n// Alert variables ---------- //\n$alert-icons: (\n  success: \"check_circle\",\n  warning: \"warning\",\n  error: \"error\",\n  info: \"info\",\n  emergency: \"error\",\n);\n\n.usa-alert {\n  @include alert-styles;\n\n  .usa-alert__body {\n    @include u-padding-x($theme-alert-padding-x);\n\n    &::before {\n      left: calc(\n        units($theme-alert-padding-x) + $alert-icon-optical-adjust-left\n      );\n    }\n  }\n\n  * + & {\n    margin-top: units(2);\n  }\n}\n\n@each $name, $icon in $alert-icons {\n  .usa-alert--#{$name} {\n    @include alert-status-wrapper-styles($name);\n\n    .usa-alert__body {\n      @include alert-status-body-styles($name, $icon);\n    }\n  }\n}\n\n.usa-alert--slim {\n  @include alert-styles-slim;\n\n  .usa-alert__body::before {\n    left: calc(\n      units($theme-alert-padding-x) + $alert-slim-icon-optical-adjust-left\n    );\n  }\n}\n\n.usa-alert--no-icon {\n  @include alert-styles-no-icon;\n}\n\n.usa-alert--validation {\n  .usa-checklist {\n    margin-top: units(2);\n  }\n}\n","@use \"sass:math\";\n@use \"../../settings\" as *;\n@use \"../../functions\" as *;\n@use \"./border-box-sizing\" as *;\n@use \"./set-text-and-bg\" as *;\n@use \"../general/icon\" as *;\n@use \"../utilities\" as *;\n@use \"../typography/typeset.scss\" as *;\n@use \"../helpers/set-link-from-bg\" as *;\n\n$alert-icon-gap: 1;\n$alert-slim-icon-size: 3;\n$alert-slim-icon-padding: 1;\n\n// Optical adjustment for icons\n// Adjusts the position to accommodate the 1/12 empty space built into the icon SVGs\n$alert-icon-optical-adjust-top: calc(\n  units($theme-alert-padding-y) - units($theme-alert-icon-size) / 6\n);\n$alert-icon-optical-adjust-left: calc(units($theme-alert-icon-size) * -1 / 12);\n$alert-slim-icon-optical-adjust-left: calc(\n  units($alert-slim-icon-size) * -1 / 12\n);\n\n// Base alert styles\n@mixin alert-styles {\n  $bgcolor: \"base-lightest\";\n  $banner-text-color-token: get-color-token-from-bg(\n    $bgcolor,\n    $theme-alert-text-reverse-color,\n    $theme-alert-text-color,\n    $context: \"Alert (default)\"\n  );\n\n  background-color: color($bgcolor);\n  border-left: units($theme-alert-bar-width) solid color(\"base-light\");\n  color: color($banner-text-color-token);\n\n  .usa-alert__body {\n    @include border-box-sizing;\n    @include typeset($theme-alert-font-family);\n    @include u-padding-y($theme-alert-padding-y);\n    position: relative;\n  }\n\n  .usa-alert__text {\n    @include u-margin-y(0);\n\n    &:only-child {\n      @include u-padding-y(0);\n    }\n  }\n\n  .usa-alert__heading {\n    @include typeset($theme-alert-font-family, \"lg\", 1);\n    margin-top: 0;\n    margin-bottom: units(1);\n  }\n\n  > .usa-list,\n  .usa-alert__body > .usa-list {\n    padding-left: 2ch;\n\n    &:last-child {\n      margin-bottom: 0;\n    }\n  }\n}\n\n// Set status styles for alert wrapper/background\n@mixin alert-status-wrapper-styles($name) {\n  $bgcolor: if($name != \"emergency\", \"#{$name}-lighter\", $name);\n\n  background-color: color($bgcolor);\n  border-left-color: color($name);\n}\n\n// Set status styles for alert content\n// added to __body element\n@mixin alert-status-body-styles($name, $icon) {\n  $bgcolor: if($name != \"emergency\", \"#{$name}-lighter\", $name);\n  $banner-text-color-token: get-color-token-from-bg(\n    $bgcolor,\n    $theme-alert-text-reverse-color,\n    $theme-alert-text-color,\n    $context: \"Alert (#{$name})\"\n  );\n  @include add-alert-icon($icon, $banner-text-color-token, $bgcolor);\n  @include set-text-and-bg($bgcolor);\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  min-height: calc(\n    units($theme-alert-icon-size) + $alert-icon-optical-adjust-top * 2\n  );\n\n  > * {\n    margin-left: calc(units($theme-alert-icon-size) + units($alert-icon-gap));\n  }\n\n  .usa-link {\n    @include set-link-from-bg(\n      $bgcolor,\n      $theme-alert-link-reverse-color,\n      $theme-alert-link-color,\n      $context: \"Alert (#{$name})\"\n    );\n  }\n}\n\n@mixin add-alert-icon($name, $color, $bgcolor) {\n  $this-icon-object: (\n    \"name\": $name,\n    \"color\": $color,\n    \"svg-height\": 40,\n    \"svg-width\": 40,\n    \"height\": $theme-alert-icon-size,\n  );\n\n  &::before {\n    @include add-color-icon($this-icon-object, $bgcolor);\n    content: \"\";\n    display: block;\n    position: absolute;\n    top: $alert-icon-optical-adjust-top;\n  }\n}\n\n// Variant - no icon\n@mixin alert-styles-no-icon {\n  .usa-alert__body {\n    min-height: 0;\n\n    &:before {\n      display: none;\n    }\n\n    > * {\n      margin-left: 0;\n    }\n  }\n}\n\n// Variant - slim\n@mixin add-slim-alert-icon {\n  &:before {\n    @supports (mask: url(\"\")) {\n      mask-size: units($alert-slim-icon-size);\n    }\n    height: units($alert-slim-icon-size);\n    top: units($alert-slim-icon-padding);\n    width: units($alert-slim-icon-size);\n  }\n}\n\n@mixin alert-styles-slim {\n  .usa-alert__body {\n    @include u-padding-y($alert-slim-icon-padding);\n    @include add-slim-alert-icon;\n    min-height: 0;\n\n    > * {\n      margin-left: calc(units($alert-slim-icon-size) + units($alert-icon-gap));\n    }\n  }\n}\n","@use \"sass:list\";\n@use \"../../functions\" as *;\n\n// Adds padding either l/r(x) or t/b(y)\n\n@mixin padding-n($side, $value...) {\n  $value: unpack($value);\n  $important: null;\n  @if has-important($value) {\n    $value: remove($value, \"!important\");\n    @if list.length($value) == 1 {\n      $value: de-list($value);\n    }\n    $important: \" !important\";\n  }\n  @if $side == all {\n    padding: get-uswds-value(\"padding\", $value...) #{$important};\n  } @else if $side == x {\n    padding-left: get-uswds-value(\"padding\", $value...) #{$important};\n    padding-right: get-uswds-value(\"padding\", $value...) #{$important};\n  } @else if $side == y {\n    padding-bottom: get-uswds-value(\"padding\", $value...) #{$important};\n    padding-top: get-uswds-value(\"padding\", $value...) #{$important};\n  } @else {\n    padding-#{$side}: get-uswds-value(\"padding\", $value...) #{$important};\n  }\n}\n\n@mixin u-padding($value...) {\n  @include padding-n(all, $value...);\n}\n\n@mixin u-padding-x($value...) {\n  @include padding-n(x, $value...);\n}\n\n@mixin u-padding-y($value...) {\n  @include padding-n(y, $value...);\n}\n\n@mixin u-padding-top($value...) {\n  @include padding-n(top, $value...);\n}\n\n@mixin u-padding-right($value...) {\n  @include padding-n(right, $value...);\n}\n\n@mixin u-padding-bottom($value...) {\n  @include padding-n(bottom, $value...);\n}\n\n@mixin u-padding-left($value...) {\n  @include padding-n(left, $value...);\n}\n","@use \"sass:math\";\n@use \"sass:list\";\n\n@use \"uswds-core\" as *;\n\n$banner-context: \"Banner\";\n$banner-guidance-measure: 3;\n$banner-icon-colors: get-link-tokens-from-bg(\n  $theme-banner-background-color,\n  $theme-banner-link-color,\n  $context: $banner-context\n);\n$banner-icon-color: list.nth($banner-icon-colors, 1);\n$banner-icon-hover: list.nth($banner-icon-colors, 2);\n$banner-icon-chevron: (\n  \"name\": \"expand_more\",\n  \"svg-height\": 40,\n  \"svg-width\": 40,\n  \"height\": 2,\n  \"color\": $banner-icon-color,\n  \"color-variant\": \"white\",\n  \"color-hover\": $banner-icon-hover,\n);\n$banner-icon-chevron-up: map-merge(\n  $banner-icon-chevron,\n  (\n    \"name\": \"expand_less\",\n  )\n);\n$banner-icon-close: (\n  \"name\": \"close\",\n  \"svg-height\": 40,\n  \"svg-width\": 40,\n  \"height\": 3,\n  \"color\": \"blue-60v\",\n  \"color-variant\": \"white\",\n  \"container-height\": $size-touch-target,\n  \"container-width\": $size-touch-target,\n);\n\n.usa-banner {\n  @include typeset($theme-banner-font-family);\n  @include border-box-sizing;\n  background-color: color($theme-banner-background-color);\n\n  @include at-media(\"tablet\") {\n    font-size: font-size($theme-banner-font-family, \"3xs\");\n    padding-bottom: units(0);\n  }\n\n  .usa-accordion {\n    @include typeset($theme-banner-font-family);\n  }\n\n  // ! Stylelint will complain about BEM formatting.\n  // Added grid classes in #5000 to remove layout grid dependency.\n  // stylelint-disable selector-class-pattern\n  .grid-row {\n    @include grid-row;\n\n    &.grid-gap-lg {\n      @include grid-gap(\"lg\");\n    }\n\n    .tablet\\:grid-col-6 {\n      @include at-media(\"tablet\") {\n        @include grid-col(6);\n      }\n    }\n  }\n  // stylelint-enable\n}\n\n.usa-banner__header,\n.usa-banner__content {\n  @include set-text-from-bg(\n    $theme-banner-background-color,\n    $context: $banner-context\n  );\n}\n\n.usa-banner__content {\n  @include grid-container($theme-banner-max-width);\n  @include add-responsive-site-margins;\n  background-color: color(\"transparent\");\n  font-size: font-size($theme-banner-font-family, 4);\n  overflow: hidden;\n  padding-bottom: units(2);\n  padding-left: units($theme-site-margins-mobile-width) - units(1);\n  padding-top: units(0.5);\n  width: 100%;\n\n  @include at-media(\"tablet\") {\n    @include u-padding-y(3);\n  }\n\n  p {\n    &:first-child {\n      margin: 0;\n    }\n  }\n}\n\n.usa-banner__guidance {\n  @include u-display(\"flex\");\n  @include u-flex(\"align-start\");\n  @include u-measure($banner-guidance-measure);\n  padding-top: units(2);\n\n  @include at-media(\"tablet\") {\n    padding-top: units(0);\n  }\n}\n\n.usa-banner__lock-image {\n  $lock-h: 64; // unitless height of svg\n  $lock-w: 52; // unitless width of svg\n  $lock-aspect: math.div($lock-w, $lock-h);\n  $icon-height: 1.5ex; // height of the lock icon; use ex for resilience\n\n  height: $icon-height;\n  width: $icon-height * $lock-aspect;\n  path {\n    fill: currentColor;\n\n    @media (forced-colors: active) {\n      fill: CanvasText;\n    }\n  }\n}\n\n.usa-banner__inner {\n  @include add-responsive-site-margins;\n  @include grid-container($theme-banner-max-width);\n  @include grid-row;\n  @include u-flex(\"align-start\");\n  padding-right: units(0);\n\n  @include at-media(\"tablet\") {\n    @include u-flex(\"align-center\");\n  }\n}\n\n.usa-banner__header {\n  @include u-padding-y(1);\n  font-size: font-size($theme-banner-font-family, 1);\n  font-weight: font-weight(\"normal\");\n  min-height: units($size-touch-target);\n  position: relative;\n\n  @include at-media(\"tablet\") {\n    @include u-padding-y(0.5);\n    min-height: 0;\n  }\n}\n\n.usa-banner__header-text {\n  @include u-margin-y(0);\n  font-size: font-size($theme-banner-font-family, 1);\n  line-height: line-height($theme-banner-font-family, 2);\n}\n\n.usa-banner__header-action {\n  @include place-icon($banner-icon-chevron, \"after\");\n  @include set-link-from-bg(\n    $theme-banner-background-color,\n    $theme-banner-link-color,\n    $context: $banner-context\n  );\n\n  line-height: line-height($theme-banner-font-family, 2);\n  margin-bottom: units(0);\n  margin-top: units(2px);\n  text-decoration: underline;\n\n  .usa-banner__header--expanded & {\n    display: none;\n  }\n\n  @include at-media(\"tablet\") {\n    display: none;\n  }\n\n  @media (forced-colors: active) {\n    color: LinkText;\n\n    &::after {\n      background-color: ButtonText;\n    }\n  }\n}\n\n.usa-banner__header-flag {\n  @include u-float(\"left\");\n  margin-right: units(1);\n  width: units(2);\n\n  @include at-media(\"tablet\") {\n    margin-right: units(1);\n    padding-top: units(0);\n  }\n}\n\n.usa-banner__header--expanded {\n  padding-right: units($size-touch-target) + units(1);\n\n  @include at-media(\"tablet\") {\n    background-color: transparent;\n    display: block;\n    font-size: font-size($theme-banner-font-family, 1);\n    font-weight: font-weight(\"normal\");\n    min-height: units(0);\n    padding-right: units(0);\n  }\n\n  .usa-banner__inner {\n    margin-left: units(0);\n\n    @include at-media(\"tablet\") {\n      margin-left: units(auto);\n    }\n  }\n\n  .usa-banner__header-action {\n    display: none;\n  }\n}\n\n.usa-banner__button {\n  @include button-unstyled;\n  @include u-pin(\"left\");\n  @include u-pin(\"y\");\n  @include u-text(\"primary\", underline);\n  @include set-link-from-bg(\n    $theme-banner-background-color,\n    $theme-banner-link-color,\n    $context: $banner-context\n  );\n  display: block;\n  font-size: font-size($theme-banner-font-family, 1);\n  height: auto;\n  line-height: line-height($theme-banner-font-family, 2);\n  padding-top: units(0);\n  padding-left: units(0);\n  text-decoration: none;\n  width: auto;\n\n  @include at-media-max(\"tablet\") {\n    width: 100%;\n\n    &:enabled:focus {\n      // adjust outline to render within the viewport\n      outline-offset: units(-0.5);\n    }\n  }\n\n  @include at-media(\"tablet\") {\n    @include place-icon($banner-icon-chevron, \"after\", \"2px\");\n    @include set-link-from-bg(\n      $theme-banner-background-color,\n      $theme-banner-link-color,\n      $context: $banner-context\n    );\n    @include u-pin(\"none\");\n    display: inline;\n    margin-left: units(1);\n    position: relative;\n\n    &::after,\n    &:hover::after {\n      position: absolute;\n\n      @media (forced-colors: active) {\n        background-color: ButtonText;\n      }\n    }\n\n    &:hover {\n      // Underline added to inner text instead.\n      text-decoration: none;\n    }\n  }\n\n  // Remove icon set from usa-accordion.\n  // Also removed in _usa-nav.scss.\n  &[aria-expanded=\"false\"],\n  &[aria-expanded=\"false\"]:hover,\n  &[aria-expanded=\"true\"],\n  &[aria-expanded=\"true\"]:hover {\n    background-image: none;\n\n    @media (forced-colors: active) {\n      &::before {\n        content: none;\n      }\n    }\n  }\n\n  &[aria-expanded=\"true\"] {\n    @include at-media-max(\"tablet\") {\n      @include place-icon(\n        $banner-icon-close,\n        \"after\",\n        0,\n        middle,\n        \"base-lighter\"\n      );\n\n      &::before {\n        @include u-pin(\"y\");\n        @include u-pin(\"right\");\n        background-color: color(\"base-lighter\");\n        content: \"\";\n        display: block;\n        height: units($size-touch-target);\n        width: units($size-touch-target);\n      }\n      &::after {\n        @include u-pin(\"y\");\n        @include u-pin(\"right\");\n      }\n    }\n\n    @include at-media(\"tablet\") {\n      @include place-icon(\n        $banner-icon-chevron-up,\n        \"after\",\n        \"2px\",\n        middle,\n        $theme-banner-background-color\n      );\n      height: auto;\n      padding: units(0);\n      position: relative;\n\n      &::after,\n      &:hover::after {\n        position: absolute;\n\n        @media (forced-colors: active) {\n          background-color: ButtonText;\n        }\n      }\n    }\n  }\n}\n\n.usa-banner__button-text {\n  @include add-sr-only;\n  text-decoration: underline;\n\n  @include at-media(\"tablet\") {\n    @include add-no-sr-only;\n    display: inline;\n  }\n\n  @media (forced-colors: active) {\n    color: LinkText;\n  }\n}\n\n.usa-banner__icon {\n  width: units(5);\n}\n\n// [uswds-init.js] Offscreen content while js is loading\n.usa-js-loading {\n  .usa-banner__content {\n    @include add-sr-only;\n  }\n}\n","@use \"sass:list\";\n@use \"../../functions\" as *;\n\n// Outputs display\n\n@mixin u-display($value...) {\n  $value: unpack($value);\n  $important: null;\n  @if has-important($value) {\n    $value: remove($value, \"!important\");\n    @if list.length($value) == 1 {\n      $value: de-list($value);\n    }\n    $important: \" !important\";\n  }\n  display: get-uswds-value(\"display\", $value) #{$important};\n}\n","@use \"sass:list\";\n@use \"sass:map\";\n@use \"../../functions\" as *;\n@use \"../../properties\" as *;\n\n// Outputs flex\n\n$flex-utililies: (\n  \"align-items\": map-collect(\n      map-deep-get($system-properties, \"align-items\", standard),\n      map-deep-get($system-properties, \"align-items\", extended)\n    ),\n  \"align-self\": map-collect(\n      map-deep-get($system-properties, \"align-self\", standard),\n      map-deep-get($system-properties, \"align-self\", extended)\n    ),\n  \"flex\": map-collect(\n      map-deep-get($system-properties, \"flex\", standard),\n      map-deep-get($system-properties, \"flex\", extended)\n    ),\n  \"flex-direction\": map-collect(\n      map-deep-get($system-properties, \"flex-direction\", standard),\n      map-deep-get($system-properties, \"flex-direction\", extended)\n    ),\n  \"flex-wrap\": map-collect(\n      map-deep-get($system-properties, \"flex-wrap\", standard),\n      map-deep-get($system-properties, \"flex-wrap\", extended)\n    ),\n  \"justify-content\": map-collect(\n      map-deep-get($system-properties, \"justify-content\", standard),\n      map-deep-get($system-properties, \"justify-content\", extended)\n    ),\n);\n\n@mixin u-flex($value...) {\n  $value: unpack($value);\n  $important: null;\n  @if has-important($value) {\n    $value: remove($value, \"!important\");\n    @if list.length($value) == 1 {\n      $value: de-list($value);\n    }\n    $important: \" !important\";\n  }\n  @each $this-value in $value {\n    $match: false;\n    @each $property, $map in $flex-utililies {\n      @if not $match and map.has-key($map, $this-value) {\n        #{$property}: get-uswds-value($property, $this-value...) #{$important};\n        $match: true;\n      }\n    }\n    @if not $match {\n      @error '`#{$this-value}` is not a valid `flex` value.';\n    }\n  }\n}\n","@use \"sass:list\";\n@use \"sass:map\";\n@use \"../layout-grid\" as *;\n@use \"../../functions\" as *;\n@use \"../../mixins/helpers\" as *;\n@use \"../../mixins/utilities\" as *;\n@use \"../../tokens\" as *;\n@use \"../../variables/column-gaps\" as *;\n@use \"../../settings\" as *;\n\n@mixin grid-gap-responsive {\n  $gap-mobile: if(\n    map.has-key($system-column-gaps, $theme-column-gap-mobile),\n    map.get($system-column-gaps, $theme-column-gap-mobile),\n    \"error\"\n  );\n  $gap-desktop: if(\n    map.has-key($system-column-gaps, $theme-column-gap-desktop),\n    map.get($system-column-gaps, $theme-column-gap-desktop),\n    \"error\"\n  );\n\n  @if $gap-mobile == \"error\" {\n    @error '$theme-column-gap-mobile is not set to a valid column gap width.';\n  }\n\n  @if $gap-desktop == \"error\" {\n    @error '$theme-column-gap-desktop is not set to a valid column gap width.';\n  }\n\n  @include u-margin-x(\n    unquote(\"#{$neg-prefix}-#{calc-gap-offset($gap-mobile)}\")\n  );\n\n  > * {\n    @include this-border-box-sizing;\n    @include u-padding-x(calc-gap-offset($gap-mobile));\n  }\n\n  @include at-media(\"desktop\") {\n    @include u-margin-x(\n      unquote(\"#{$neg-prefix}-#{calc-gap-offset($gap-desktop)}\")\n    );\n\n    > * {\n      @include this-border-box-sizing;\n      @include u-padding-x(calc-gap-offset($gap-desktop));\n    }\n  }\n}\n\n@mixin grid-gap($props...) {\n  $props: unpack($props);\n  @if length($props) == 0 {\n    @include grid-gap-responsive;\n  } @else {\n    $gap: smart-quote(list.nth($props, 1));\n    @if $gap == 0 {\n      @include u-margin-x(append-important($props, 0));\n\n      > * {\n        @include this-border-box-sizing;\n        @include u-padding-x(append-important($props, 0));\n      }\n    } @else {\n      @if map.has-key($project-column-gaps, $gap) {\n        $gap: map.get($project-column-gaps, $gap);\n      } @else if map.has-key($system-column-gaps, $gap) {\n        $gap: map.get($system-column-gaps, $gap);\n      }\n      @include u-margin-x(\n        append-important(\n          $props,\n          unquote(\"#{$neg-prefix}-#{calc-gap-offset($gap)}\")\n        )\n      );\n      > * {\n        @include this-border-box-sizing;\n        @include u-padding-x(append-important($props, calc-gap-offset($gap)));\n      }\n    }\n  }\n}\n\n@mixin grid-col($props...) {\n  $props: unpack($props);\n  @include this-border-box-sizing;\n\n  @if length($props) == 0 {\n    @include u-flex(fill);\n    @include u-width(auto);\n  } @else {\n    $col: smart-quote(list.nth($props, 1));\n    @if $col == \"auto\" {\n      $flex: append-important($props, auto);\n      $width: append-important($props, auto);\n      $maxw: append-important($props, full);\n      @include u-flex($flex);\n      @include u-width($width);\n      @include u-maxw($maxw);\n    } @else if $col == \"fill\" {\n      $flex: append-important($props, fill);\n      $width: append-important($props, auto);\n      $maxw: append-important($props, full);\n      @include u-flex($flex);\n      @include u-width($width);\n      @include u-maxw($maxw);\n      min-width: 1px; // IE 11\n    } @else if not map.has-key($system-layout-grid-widths, $col) {\n      @error '#{$col} is not a valid layout grid width. Valid width are #{map-keys($system-layout-grid-widths)}';\n    } @else {\n      $flex: append-important($props, auto);\n      $width: append-important(\n        $props,\n        map.get($system-layout-grid-widths, $col)\n      );\n      @include u-flex($flex);\n      @include u-width(override, $width);\n    }\n  }\n}\n\n@mixin grid-offset($props...) {\n  $props: unpack($props);\n  $offset: smart-quote(list.nth($props, 1));\n  @if $offset == \"none\" {\n    $width: append-important($props, 0);\n    @include u-margin-left(override, $width);\n  } @else if not map.has-key($system-layout-grid-widths, $offset) {\n    @error '#{$offset} is not a valid layout grid width. Valid width are #{map-keys($system-layout-grid-widths)}';\n  } @else {\n    $width: append-important(\n      $props,\n      map.get($system-layout-grid-widths, $offset)\n    );\n    @include u-margin-left(override, $width);\n  }\n}\n","@use \"sass:list\";\n@use \"../../functions\" as *;\n\n// Outputs max-width\n\n@mixin u-maxw($value...) {\n  $value: unpack($value);\n  $important: null;\n  @if has-important($value) {\n    $value: remove($value, \"!important\");\n    @if list.length($value) == 1 {\n      $value: de-list($value);\n    }\n    $important: \" !important\";\n  }\n  max-width: get-uswds-value(\"max-width\", $value...) #{$important};\n}\n","@use \"sass:list\";\n@use \"../../functions\" as *;\n\n// Outputs measure (max width)\n\n@mixin u-measure($value...) {\n  $value: unpack($value);\n  $important: null;\n  @if has-important($value) {\n    $value: remove($value, \"!important\");\n    @if list.length($value) == 1 {\n      $value: de-list($value);\n    }\n    $important: \" !important\";\n  }\n  max-width: get-uswds-value(\"measure\", $value...) #{$important};\n}\n","@use \"sass:list\";\n@use \"../../functions\" as *;\n\n// Outputs line-height\n\n@mixin u-float($value...) {\n  $value: unpack($value);\n  $important: null;\n  @if has-important($value) {\n    $value: remove($value, \"!important\");\n    @if list.length($value) == 1 {\n      $value: de-list($value);\n    }\n    $important: \" !important\";\n  }\n  float: get-uswds-value(\"float\", $value...) #{$important};\n}\n","@use \"sass:list\";\n@use \"../../functions\" as *;\n@use \"./position\" as *;\n\n$utility-pin-options: \"all\", \"x\", \"y\", \"top\", \"bottom\", \"left\", \"right\", \"none\";\n\n@mixin u-pin($value...) {\n  $value: unpack($value);\n  $important: null;\n  $position-absolute: append-important($value, \"absolute\");\n  $position-static: append-important($value, \"static\");\n  $has-position: false;\n\n  @if has-important($value) {\n    $value: remove($value, \"!important\");\n    @if list.length($value) == 1 {\n      $value: de-list($value);\n    }\n    $important: \" !important\";\n  }\n\n  @each $option in $value {\n    $option: smart-quote($option);\n    @if $option != \"none\" and not $has-position {\n      @include u-position($position-absolute);\n      $has-position: true;\n    }\n    @if $option == \"all\" {\n      bottom: 0#{$important};\n      left: 0#{$important};\n      right: 0#{$important};\n      top: 0#{$important};\n    } @else if $option == \"x\" {\n      left: 0#{$important};\n      right: 0#{$important};\n    } @else if $option == \"y\" {\n      bottom: 0#{$important};\n      top: 0#{$important};\n    } @else if $option == \"top\" {\n      top: 0#{$important};\n    } @else if $option == \"bottom\" {\n      bottom: 0#{$important};\n    } @else if $option == \"left\" {\n      left: 0#{$important};\n    } @else if $option == \"right\" {\n      right: 0#{$important};\n    } @else if $option == \"none\" {\n      $has-position: false;\n      @include u-position($position-static);\n      bottom: auto#{$important};\n      left: auto#{$important};\n      right: auto#{$important};\n      top: auto#{$important};\n    } @else {\n      @error '`#{$option}` is not a valid `pin` value. Valid pin values include #{$utility-pin-options}';\n    }\n  }\n}\n\n@mixin u-pin-none($value...) {\n  @include u-pin(\"none\", $value...);\n}\n\n@mixin u-pin-all($value...) {\n  @include u-pin(\"all\", $value...);\n}\n\n@mixin u-pin-y($value...) {\n  @include u-pin(\"y\", $value...);\n}\n\n@mixin u-pin-x($value...) {\n  @include u-pin(\"x\", $value...);\n}\n\n@mixin u-pin-bottom($value...) {\n  @include u-pin(\"bottom\", $value...);\n}\n\n@mixin u-pin-left($value...) {\n  @include u-pin(\"left\", $value...);\n}\n\n@mixin u-pin-right($value...) {\n  @include u-pin(\"right\", $value...);\n}\n\n@mixin u-pin-top($value...) {\n  @include u-pin(\"top\", $value...);\n}\n","@use \"sass:list\";\n@use \"../../functions\" as *;\n\n// Outputs position property\n\n@mixin u-position($value...) {\n  $value: unpack($value);\n  $important: null;\n  @if has-important($value) {\n    $value: remove($value, \"!important\");\n    @if list.length($value) == 1 {\n      $value: de-list($value);\n    }\n    $important: \" !important\";\n  }\n  position: get-uswds-value(\"position\", $value...) #{$important};\n}\n","@use \"sass:math\";\n@use \"sass:map\";\n@use \"sass:list\";\n\n@use \"uswds-core\" as *;\n\n//\n// General Settings\n// =====================================\n\n// This helps balance spacing around inline-block elements\n$breadcrumb-context: \"Breadcrumb\";\n$gap-inline-spacer: -0.25em;\n$icon-vertical-spacer: -0.2em;\n\n$breadcrumb-gap: 1.5;\n$breadcrumb-icon-height: 2.5ex;\n$breadcrumb-icon-display-height: 2ex;\n$breadcrumb-icon-spacing: 0px;\n\n$icon-breadcrumb-separator: (\n  \"name\": \"navigate_next\",\n  \"svg-height\": 40,\n  \"svg-width\": 40,\n  \"height\": $breadcrumb-icon-display-height,\n  \"color\": $theme-breadcrumb-separator-color,\n);\n\n$icon-breadcrumb-back: (\n  \"name\": \"arrow_back\",\n  \"svg-height\": 40,\n  \"svg-width\": 40,\n  \"height\": $breadcrumb-icon-display-height,\n  \"color\": $theme-breadcrumb-separator-color,\n);\n\n// Set default value for custom mixin exdent-icon()\n$breadcrumb-back-icon-aspect: (\n  map.get($icon-breadcrumb-back, \"svg-width\"),\n  map.get($icon-breadcrumb-back, \"svg-height\")\n);\n\n// Defines spacing so back icon is optically placed\n@mixin exdent-icon($dim: $breadcrumb-back-icon-aspect) {\n  $aspect: math.div(list.nth($dim, 1), list.nth($dim, 2));\n  $icon-width: $breadcrumb-icon-display-height * $aspect;\n  padding-left: calc(#{$icon-width} + #{$breadcrumb-icon-spacing});\n  text-indent: calc((#{$icon-width} + #{$breadcrumb-icon-spacing}) * -1);\n}\n\n.usa-breadcrumb {\n  @include typeset(\n    $theme-breadcrumb-font-family,\n    $theme-breadcrumb-font-size,\n    3\n  );\n  @include set-text-and-bg(\n    $theme-breadcrumb-background-color,\n    $context: $breadcrumb-context\n  );\n  @include u-padding-x($theme-breadcrumb-padding-x);\n\n  @include at-media($theme-breadcrumb-min-width) {\n    @include u-padding-bottom($theme-breadcrumb-padding-bottom);\n    @include u-padding-top($theme-breadcrumb-padding-top);\n  }\n\n  &:not(.usa-breadcrumb--wrap) {\n    .usa-breadcrumb__list {\n      @include at-media($theme-breadcrumb-min-width) {\n        @include u-white-space(\"no-wrap\");\n        text-overflow: ellipsis;\n        overflow: hidden;\n      }\n    }\n  }\n}\n\n.usa-breadcrumb__list {\n  @include unstyled-list;\n  @include u-display(\"block\");\n  @include u-padding($theme-focus-width);\n  margin-left: units($theme-focus-width) * -1;\n  margin-right: units($theme-focus-width) * -1;\n}\n\n.usa-breadcrumb__list-item {\n  @include sr-only;\n  @include u-display(\"inline\");\n\n  @include at-media-max($theme-breadcrumb-min-width) {\n    @include u-white-space(\"wrap\");\n\n    // If parent link only (mobile), only show parent of current link\n    &:nth-last-child(2) {\n      @include not-sr-only;\n\n      .usa-breadcrumb__link {\n        @include exdent-icon;\n        @include place-icon(\n          $icon-breadcrumb-back,\n          \"before\",\n          0,\n          baseline,\n          $theme-breadcrumb-background-color\n        );\n\n        @include u-display(\"inline-block\");\n        @include u-padding-bottom($theme-breadcrumb-padding-bottom);\n        @include u-padding-top($theme-breadcrumb-padding-top);\n\n        &:before {\n          bottom: $icon-vertical-spacer;\n          // Magic number to center icon\n          height: $breadcrumb-icon-display-height;\n          position: relative;\n        }\n\n        // Prevent underline that extends beyond text\n        &,\n        &:hover,\n        &:active {\n          @include u-text(\"no-underline\");\n        }\n        span {\n          @include u-text(\"underline\");\n        }\n      }\n\n      // Override icon spacing from place-icon() with non-token value\n      .usa-breadcrumb__link::before {\n        margin-right: $breadcrumb-icon-spacing;\n      }\n    }\n  }\n\n  @include at-media($theme-breadcrumb-min-width) {\n    @include not-sr-only;\n\n    // Breadcrumb separator ›\n    &:not(:last-child) {\n      @include place-icon(\n        $icon-breadcrumb-separator,\n        \"after\",\n        0,\n        baseline,\n        $theme-breadcrumb-background-color\n      );\n    }\n\n    // Style overrides for separator using non-token values\n    &:not(:last-child)::after {\n      // Magic number to center icon\n      bottom: $icon-vertical-spacer;\n      margin-left: $breadcrumb-icon-spacing;\n      margin-right: $breadcrumb-icon-spacing;\n      height: $breadcrumb-icon-display-height;\n      position: relative;\n    }\n  }\n}\n\n.usa-breadcrumb__link {\n  @include set-link-from-bg(\n    $theme-breadcrumb-background-color,\n    $theme-breadcrumb-link-color,\n    $context: $breadcrumb-context\n  );\n  @include u-display(\"inline\");\n\n  // Prevent underline that extends beyond text\n  @include u-text(\"no-underline\");\n\n  span {\n    @include u-text(\"underline\");\n  }\n}\n\n// ---------------------------------\n// Variations\n// ---------------------------------\n\n// Breadcrumb wrap\n.usa-breadcrumb--wrap {\n  @include at-media($theme-breadcrumb-min-width) {\n    @include u-line-height($theme-breadcrumb-font-family, 4);\n  }\n\n  .usa-breadcrumb__list-item {\n    @include u-display(\"inline-block\");\n  }\n}\n","@use \"sass:list\";\n@use \"../../functions\" as *;\n\n// Outputs white-space\n\n@mixin u-white-space($value...) {\n  $value: unpack($value);\n  $important: null;\n  @if has-important($value) {\n    $value: remove($value, \"!important\");\n    @if list.length($value) == 1 {\n      $value: de-list($value);\n    }\n    $important: \" !important\";\n  }\n  white-space: get-uswds-value(\"white-space\", $value...) #{$important};\n}\n","@use \"sass:list\";\n@use \"sass:map\";\n@use \"../../functions\" as *;\n@use \"../../properties\" as *;\n@use \"../../tokens\" as *;\n\n// Outputs properties based on contents of text()\n\n$text-utililies: (\n  font-feature-settings: map-collect(\n      map-deep-get($system-properties, font-feature-settings, standard),\n      map-deep-get($system-properties, font-feature-settings, extended)\n    ),\n  font-style: map-collect(\n      map-deep-get($system-properties, \"font-style\", standard),\n      map-deep-get($system-properties, \"font-style\", extended)\n    ),\n  font-weight: map-collect(\n      map-deep-get($system-properties, \"font-weight\", standard),\n      map-deep-get($system-properties, \"font-weight\", extended)\n    ),\n  letter-spacing: map-collect(\n      map-deep-get($system-properties, \"letter-spacing\", standard),\n      map-deep-get($system-properties, \"letter-spacing\", extended)\n    ),\n  text-align: map-collect(\n      map-deep-get($system-properties, \"text-align\", standard),\n      map-deep-get($system-properties, \"text-align\", extended)\n    ),\n  text-decoration: map-collect(\n      map-deep-get($system-properties, \"text-decoration\", standard),\n      map-deep-get($system-properties, \"text-decoration\", extended)\n    ),\n  text-transform: map-collect(\n      map-deep-get($system-properties, \"text-transform\", standard),\n      map-deep-get($system-properties, \"text-transform\", extended)\n    ),\n  vertical-align: map-collect(\n      map-deep-get($system-properties, \"vertical-align\", standard),\n      map-deep-get($system-properties, \"vertical-align\", extended)\n    ),\n  white-space: map-collect(\n      map-deep-get($system-properties, \"white-space\", standard),\n      map-deep-get($system-properties, \"white-space\", extended)\n    ),\n  color: map-collect($tokens-color-global),\n);\n\n@mixin u-text($value...) {\n  $value: unpack($value);\n  $important: null;\n  @if has-important($value) {\n    $value: remove($value, \"!important\");\n    @if list.length($value) == 1 {\n      $value: de-list($value);\n    }\n    $important: \" !important\";\n  }\n  @each $this-value in $value {\n    $this-value: smart-quote($this-value);\n    $match: false;\n    @if map.has-key($all-color-shortcodes, $this-value) {\n      $match: true;\n      color: color($this-value) #{$important};\n    } @else {\n      @each $property, $map in $text-utililies {\n        @if not $match and map.has-key($map, $this-value) {\n          #{$property}: get-uswds-value($property, $this-value...)\n            #{$important};\n          $match: true;\n        }\n      }\n    }\n    @if not $match {\n      @error '`#{$this-value}` is not a valid `text` value.';\n    }\n  }\n}\n","@use \"sass:math\";\n\n@use \"uswds-core\" as *;\n\n// Default styles\n.usa-button-group {\n  @include u-margin-y(0);\n  display: flex;\n  flex-direction: column;\n  flex-wrap: wrap;\n  list-style-type: none;\n  margin-left: units(-0.5);\n  margin-right: units(-0.5);\n  padding-left: 0;\n\n  @include at-media(\"mobile-lg\") {\n    flex-wrap: nowrap;\n    align-items: stretch;\n    flex-direction: row;\n  }\n\n  // Styles for nested button groups\n  .usa-button-group {\n    height: 100%;\n\n    .usa-button-group__item {\n      @include at-media(\"mobile-lg\") {\n        margin-top: 0;\n        margin-bottom: 0;\n      }\n    }\n\n    // Styles for nested segmented button groups\n    &--segmented {\n      .usa-button-group__item {\n        margin-top: 0;\n        margin-bottom: 0;\n      }\n    }\n  }\n}\n\n.usa-button-group__item {\n  margin: units(0.5);\n\n  &:last-child {\n    @include at-media(\"mobile-lg\") {\n      margin-right: 0;\n    }\n  }\n\n  .usa-button {\n    height: 100%;\n    margin-left: 0;\n    margin-right: 0;\n  }\n}\n\n// Segemented styles\n.usa-button-group--segmented {\n  flex-direction: row;\n  flex-wrap: nowrap;\n  justify-content: space-between;\n  margin-left: 0;\n  margin-right: 0;\n\n  @include at-media(\"mobile-lg\") {\n    justify-content: flex-start;\n  }\n\n  .usa-button {\n    position: relative;\n    width: calc(100% + #{units($theme-button-stroke-width)});\n\n    @include at-media(\"mobile-lg\") {\n      width: auto;\n    }\n\n    // Ensures edges are not cut off when interacting with outline buttons\n    &:hover,\n    &:active {\n      z-index: 2;\n    }\n\n    &:focus {\n      z-index: 3;\n    }\n  }\n\n  .usa-button-group__item {\n    margin-left: 0;\n    margin-right: 0;\n    width: 100%;\n\n    @include at-media(\"mobile-lg\") {\n      width: auto;\n    }\n\n    &:first-child > .usa-button {\n      border-top-right-radius: 0;\n      border-bottom-right-radius: 0;\n      margin-right: -(math.div(units($theme-button-stroke-width), 2));\n    }\n\n    &:last-child > .usa-button {\n      border-top-left-radius: 0;\n      border-bottom-left-radius: 0;\n      margin-right: 0;\n      margin-left: -(units($theme-button-stroke-width));\n      width: calc(100% + #{units($theme-button-stroke-width)});\n\n      @include at-media(\"mobile-lg\") {\n        margin-left: -(math.div(units($theme-button-stroke-width), 2));\n        width: auto;\n      }\n    }\n\n    &:where(:not(:first-child):not(:last-child)) > .usa-button {\n      border-radius: 0;\n      margin-right: -(math.div(units($theme-button-stroke-width), 2));\n      margin-left: -(math.div(units($theme-button-stroke-width), 2));\n    }\n\n    // Creates separators\n    &:where(:not(:last-child)) {\n      .usa-button::before {\n        border-right: 1px solid color(\"primary-dark\");\n        bottom: 0;\n        content: \"\";\n        display: block;\n        height: 100%;\n        position: absolute;\n        right: 1px;\n        top: 0;\n        width: 1px;\n        z-index: 3;\n      }\n\n      .usa-button--secondary::before {\n        border-right-color: color(\"secondary-dark\");\n      }\n\n      .usa-button--accent-cool::before {\n        border-right-color: color(\"accent-cool-dark\");\n      }\n\n      .usa-button--base::before {\n        border-right-color: color(\"base-dark\");\n      }\n\n      [class*=\"usa-button\"]:disabled::before,\n      [class*=\"usa-button\"][aria-disabled=\"true\"]::before {\n        border-right-color: color($theme-body-background-color);\n      }\n\n      .usa-button:active::before,\n      .usa-button--outline::before {\n        display: none;\n      }\n    }\n  }\n}\n","@use \"uswds-core\" as *;\n\n// Buttons variables\n\n$button-context: \"Button\";\n$button-stroke: inset 0 0 0 units($theme-button-stroke-width);\n\n// Buttons\n.usa-button {\n  @include border-box-sizing;\n  @include typeset($theme-button-font-family, null, 1);\n  @include set-text-and-bg(\"primary\", $context: $button-context);\n  appearance: none;\n  align-items: center;\n  border: 0;\n  border-radius: radius($theme-button-border-radius);\n  cursor: pointer;\n  column-gap: units($theme-button-icon-gap);\n  display: inline-flex;\n  font-weight: font-weight(\"bold\");\n  justify-content: center;\n  margin-right: units(1);\n  padding: units(1.5) units(2.5);\n  text-align: center;\n  text-decoration: none;\n  width: 100%;\n\n  @include at-media(\"mobile-lg\") {\n    width: auto;\n  }\n\n  &:visited {\n    color: color(\"white\");\n  }\n\n  &:hover,\n  &.usa-button--hover {\n    @include set-text-and-bg(\"primary-dark\", $context: $button-context);\n    border-bottom: 0;\n    text-decoration: none;\n  }\n\n  &:active,\n  &.usa-button--active {\n    @include set-text-and-bg(\"primary-darker\", $context: $button-context);\n  }\n\n  &:not([disabled]):focus,\n  &:not([disabled]).usa-focus {\n    outline-offset: units(0.5);\n  }\n\n  &:disabled,\n  &[aria-disabled=\"true\"] {\n    @include button-disabled;\n  }\n\n  .usa-icon {\n    flex-shrink: 0; // Avoid shrinking on small screens.\n  }\n\n  @media (forced-colors: active) {\n    &:not(.usa-button--unstyled) {\n      border: $border-high-contrast;\n    }\n  }\n}\n\n.usa-button--accent-cool {\n  @include set-text-and-bg(\"accent-cool\", $context: $button-context);\n\n  &:visited {\n    @include set-text-and-bg(\"accent-cool\", $context: $button-context);\n  }\n\n  &:hover,\n  &.usa-button--hover {\n    @include set-text-and-bg(\"accent-cool-dark\", $context: $button-context);\n  }\n\n  &:active,\n  &.usa-button--active {\n    @include set-text-and-bg(\"accent-cool-darker\", $context: $button-context);\n  }\n}\n\n.usa-button--accent-warm {\n  @include set-text-and-bg(\"accent-warm\", $context: $button-context);\n\n  &:visited {\n    @include set-text-and-bg(\"accent-warm\", $context: $button-context);\n  }\n\n  &:hover,\n  &.usa-button--hover {\n    @include set-text-and-bg(\"accent-warm-dark\", $context: $button-context);\n  }\n\n  &:active,\n  &.usa-button--active {\n    @include set-text-and-bg(\"accent-warm-darker\", $context: $button-context);\n  }\n}\n\n.usa-button--outline {\n  background-color: color(\"transparent\");\n  box-shadow: $button-stroke color(\"primary\");\n  color: color(\"primary\");\n\n  &:visited {\n    color: color(\"primary\");\n  }\n\n  &:hover,\n  &.usa-button--hover {\n    background-color: color(\"transparent\");\n    box-shadow: $button-stroke color(\"primary-dark\");\n    color: color(\"primary-dark\");\n  }\n\n  &:active,\n  &.usa-button--active {\n    background-color: color(\"transparent\");\n    box-shadow: $button-stroke color(\"primary-darker\");\n    color: color(\"primary-darker\");\n  }\n\n  &.usa-button--inverse {\n    $button-inverse-color: $theme-link-reverse-color;\n    $button-inverse-hover-color: $theme-link-reverse-hover-color;\n    $button-inverse-active-color: $theme-link-reverse-active-color;\n\n    box-shadow: $button-stroke color(\"base-lighter\");\n    color: color($button-inverse-color);\n\n    &:visited {\n      color: color($button-inverse-color);\n    }\n\n    &:hover,\n    &.usa-button--hover {\n      box-shadow: $button-stroke color($button-inverse-hover-color);\n      color: color($button-inverse-hover-color);\n    }\n\n    &:active,\n    &.usa-button--active {\n      background-color: transparent;\n      box-shadow: $button-stroke color($button-inverse-active-color);\n      color: color($button-inverse-active-color);\n    }\n\n    &.usa-button--unstyled {\n      @include button-unstyled;\n      color: color($button-inverse-color);\n\n      &:visited {\n        color: color($button-inverse-color);\n      }\n\n      &:hover,\n      &.usa-button--hover {\n        color: color($button-inverse-hover-color);\n      }\n\n      &:active,\n      &.usa-button--active {\n        color: color($button-inverse-active-color);\n      }\n    }\n  }\n}\n\n.usa-button--base {\n  @include set-text-and-bg(\"base\", $context: $button-context);\n\n  &:hover,\n  &.usa-button--hover {\n    @include set-text-and-bg(\"base-dark\", $context: $button-context);\n  }\n\n  &:active,\n  &.usa-button--active {\n    @include set-text-and-bg(\"base-darker\", $context: $button-context);\n  }\n}\n\n.usa-button--secondary {\n  @include set-text-and-bg(\"secondary\", $context: $button-context);\n\n  &:hover,\n  &.usa-button--hover {\n    @include set-text-and-bg(\"secondary-dark\", $context: $button-context);\n  }\n\n  &:active,\n  &.usa-button--active {\n    @include set-text-and-bg(\"secondary-darker\", $context: $button-context);\n  }\n}\n\n.usa-button--big {\n  border-radius: radius($theme-button-border-radius);\n  font-size: font-size($theme-button-font-family, \"lg\");\n  padding: units(2) units(3);\n}\n\n// Cannot use disabled mixin due to transparent causing build errors with color grade check.\n.usa-button--outline:disabled,\n.usa-button--outline[aria-disabled=\"true\"],\n.usa-button--outline-inverse:disabled,\n.usa-button--outline-inverse[aria-disabled=\"true\"] {\n  &,\n  &:hover,\n  &:active,\n  &:focus {\n    background-color: transparent;\n    color: color(\"disabled\");\n  }\n}\n\n.usa-button--outline:disabled,\n.usa-button--outline[aria-disabled=\"true\"] {\n  box-shadow: $button-stroke color(\"disabled-lighter\");\n\n  &.usa-button--inverse {\n    box-shadow: $button-stroke color(\"disabled-light\");\n    color: color(\"disabled-light\");\n\n    @media (forced-colors: active) {\n      color: color(GrayText);\n    }\n  }\n}\n\n.usa-button--unstyled {\n  @include button-unstyled;\n}\n","@use \"../../functions/utilities/color\" as *;\n@use \"../../settings\" as *;\n@use \"../../variables/border-high-contrast\" as *;\n@use \"../helpers/set-text-and-bg.scss\" as *;\n\n/// Adds compliant disabled colors and cursor styles to elements to read as disabled.\n/// Falls back to standard disabled tokens if params fail color contrast check.\n///\n/// @param {String} $bg-color - Desired background color token.\n/// @param {String} $text-color - Desired text color token.\n///\n/// @output Theme adjusted disabled styles.\n///\n/// @example scss\n///   .foo {\n///       @include u-disabled(\"disabled-darker\", \"white\");\n///   }\n@mixin u-disabled($bg-color: \"disabled-lighter\", $text-color: \"disabled-dark\") {\n  @include set-text-and-bg($bg-color, $text-color);\n\n  cursor: not-allowed;\n  opacity: 1; // Override disabled default opacity shift (Necessary for Chromium, iOS Safari)\n\n  &:hover,\n  &:active,\n  &:focus,\n  &.usa-focus {\n    @include set-text-and-bg($bg-color, $text-color);\n  }\n\n  @media (forced-colors: active) {\n    border: 0;\n    color: color(GrayText);\n\n    &:hover,\n    &:active,\n    &:focus,\n    &.usa-focus {\n      color: color(GrayText);\n    }\n  }\n}\n\n/// Adds high contrast border using the GrayText system token.\n///\n/// @output Border size, style, and color.\n///\n/// @example scss\n///   .foo {\n///       @include u-disabled-high-contrast-border;\n///   }\n///\n@mixin u-disabled-high-contrast-border {\n  @media (forced-colors: active) {\n    border: $border-high-contrast-disabled;\n  }\n}\n","@use \"../utilities\" as *;\n\n@mixin button-disabled {\n  @include u-disabled;\n\n  &.usa-button--hover,\n  &.usa-button--active {\n    @include u-disabled;\n  }\n\n  &:not(.usa-button--unstyled) {\n    @include u-disabled-high-contrast-border;\n  }\n}\n","@use \"sass:math\";\n\n@use \"uswds-core\" as *;\n\n/* TODO:\n * Add a way to change the flag breakpoint as a modifier/class?\n */\n\n@mixin card-inner-radius {\n  border-top-left-radius: calc(\n    #{radius($theme-card-border-radius)} - #{units($theme-card-border-width)}\n  );\n  border-top-right-radius: calc(\n    #{radius($theme-card-border-radius)} - #{units($theme-card-border-width)}\n  );\n}\n\n@include override-prose {\n  .usa-card-group {\n    @include add-list-reset;\n  }\n}\n\n.usa-card-group {\n  @include u-display(\"flex\");\n  @include u-flex(\"column\", \"wrap\", \"align-stretch\");\n  @include u-margin-x(math.div($theme-card-gap, -2));\n\n  @include at-media($theme-card-flag-min-width) {\n    @include u-flex(\"row\");\n  }\n}\n\n@include override-prose {\n  .usa-card {\n    @include u-margin-bottom($theme-card-margin-bottom + 1);\n    @include u-maxw(\"none\"); // override prose scope\n\n    &:last-child {\n      @include u-margin-bottom(\n        $theme-card-margin-bottom + 1\n      ); // override prose scope\n    }\n\n    @include at-media(\"tablet\") {\n      @include u-margin-bottom($theme-card-margin-bottom);\n\n      &:last-child {\n        @include u-margin-bottom(\n          $theme-card-margin-bottom\n        ); // override prose scope\n      }\n    }\n  }\n}\n\n.usa-card__container {\n  @include border-box-sizing;\n  @include set-text-and-bg(\"white\");\n  @include typeset($theme-card-font-family);\n  @include u-border($theme-card-border-width, $theme-card-border-color);\n  @include u-display(\"flex\");\n  @include u-height(\"full\");\n  @include u-flex(\"column\");\n  @include u-margin-x(math.div($theme-card-gap, 2));\n  @include u-position(\"relative\");\n  @include u-radius($theme-card-border-radius);\n}\n\n.usa-card:not(.usa-card--flag) .usa-card__container > :only-child {\n  @include u-padding($theme-card-padding-perimeter);\n}\n\n.usa-card .usa-card__img {\n  @include u-display(\"block\");\n}\n\n// Header\n// ---------------------------------\n.usa-card__header {\n  @include u-padding-top($theme-card-padding-perimeter);\n  @include u-padding-x($theme-card-padding-perimeter);\n  padding-bottom: math.div(units($theme-card-padding-y), 2);\n\n  &:last-child {\n    @include u-padding-bottom($theme-card-padding-perimeter);\n  }\n}\n\n.usa-card__heading {\n  @include typeset($theme-card-header-typeset);\n  @include u-margin(0);\n}\n\n// Media\n// ---------------------------------\n.usa-card__media {\n  @include u-order(\"first\");\n  // IE 11\n  // http://github.com/philipwalton/flexbugs/issues/75\n  min-height: 1px;\n}\n\n.usa-card__img {\n  @include card-inner-radius;\n  @include u-bg(\"base-lightest\");\n  @include u-position(\"relative\");\n  overflow: hidden;\n\n  img {\n    @include u-display(\"block\");\n    @include u-height(\"full\");\n    @include u-width(\"full\");\n    object-fit: cover;\n  }\n}\n\n.usa-card__media--inset {\n  @include u-padding-top($theme-card-padding-perimeter);\n  @include u-padding-x($theme-card-padding-perimeter);\n\n  .usa-card__img {\n    @include u-radius(0);\n  }\n}\n\n// Body\n// ---------------------------------\n.usa-card__body {\n  @include u-flex(\"fill\");\n  @include u-padding-x($theme-card-padding-perimeter);\n  padding-bottom: math.div(units($theme-card-padding-y), 2);\n  padding-top: math.div(units($theme-card-padding-y), 2);\n  // IE 11\n  flex-basis: auto;\n\n  // adjust spacing if body lack siblings\n  &:last-child {\n    @include u-padding-bottom($theme-card-padding-perimeter);\n  }\n\n  &:first-child {\n    @include u-padding-top($theme-card-padding-perimeter);\n  }\n\n  &:only-child {\n    @include u-padding-y($theme-card-padding-perimeter);\n  }\n}\n\n// Footer\n// ---------------------------------\n.usa-card__footer {\n  @include u-padding-bottom($theme-card-padding-perimeter);\n  @include u-padding-x($theme-card-padding-perimeter);\n  padding-top: math.div(units($theme-card-padding-y), 2);\n}\n\n.usa-card__footer .usa-button:only-of-type {\n  @include u-margin-right(0);\n}\n\n.usa-card__header,\n.usa-card__body {\n  // strip spacing from first and last content\n  > :last-child {\n    @include u-padding-bottom(0);\n    @include u-margin-bottom(0);\n  }\n\n  > :first-child {\n    @include u-margin-top(0);\n    @include u-padding-top(0);\n  }\n\n  > :only-child {\n    @include u-margin-y(0);\n    @include u-padding-y(0);\n  }\n}\n\n// ---------------------------------\n// Variations\n// ---------------------------------\n\n// Exdent\n.usa-card__header--exdent,\n.usa-card__media--exdent,\n.usa-card__body--exdent,\n.usa-card__footer--exdent {\n  margin-inline: units($theme-card-border-width) * -1;\n}\n\n.usa-card__header--exdent,\n.usa-card__body--exdent,\n.usa-card__footer--exdent {\n  > * {\n    @include u-padding-x($theme-card-border-width);\n  }\n}\n\n.usa-card__media--exdent {\n  margin-top: units($theme-card-border-width) * -1;\n\n  .usa-card__img {\n    @include u-radius-top($theme-card-border-radius);\n  }\n}\n\n// Header first\n// ---------------------------------\n.usa-card--header-first {\n  .usa-card__header {\n    @include card-inner-radius;\n    @include u-padding-bottom($theme-card-padding-y);\n  }\n\n  .usa-card__header--exdent {\n    @include u-radius-top($theme-card-border-radius);\n    margin-top: units($theme-card-border-width) * -1;\n  }\n\n  .usa-card__media--inset {\n    @include u-padding-top(0);\n  }\n\n  .usa-card__media {\n    @include u-order(0);\n\n    &--exdent {\n      @include u-margin-top(0);\n    }\n  }\n\n  .usa-card__img {\n    @include u-radius(0);\n  }\n\n  .usa-card__body {\n    @include u-padding-top($theme-card-padding-y);\n  }\n}\n\n.usa-card--flag {\n  @include at-media($theme-card-flag-min-width) {\n    .usa-card__media {\n      @include u-display(\"flex\");\n      @include u-overflow(\"hidden\");\n      @include u-pin-y;\n      @include u-pin-left;\n      @include u-position(\"absolute\");\n      @include u-width($theme-card-flag-image-width);\n    }\n\n    .usa-card__img {\n      @include u-radius(0);\n      border-top-left-radius: calc(\n        #{radius($theme-card-border-radius)} -\n          #{units($theme-card-border-width)}\n      );\n      border-bottom-left-radius: calc(\n        #{radius($theme-card-border-radius)} -\n          #{units($theme-card-border-width)}\n      );\n    }\n\n    .usa-card__header,\n    .usa-card__body,\n    .usa-card__footer {\n      @include u-margin-left($theme-card-flag-image-width);\n    }\n\n    .usa-card__media--exdent {\n      margin: units($theme-card-border-width) * -1;\n\n      .usa-card__img {\n        @include u-radius-left($theme-card-border-radius);\n      }\n    }\n\n    .usa-card__media--inset {\n      @include u-padding-right(0);\n      @include u-padding-bottom($theme-card-padding-perimeter);\n\n      .usa-card__img {\n        @include u-radius(0);\n      }\n    }\n\n    &.usa-card--header-first {\n      .usa-card__header {\n        padding-bottom: math.div(units($theme-card-padding-y), 2);\n      }\n\n      .usa-card__body {\n        padding-top: math.div(units($theme-card-padding-y), 2);\n      }\n\n      .usa-card__media--inset {\n        @include u-padding-top($theme-card-padding-perimeter);\n      }\n    }\n\n    &.usa-card--media-right {\n      .usa-card__media {\n        @include u-left(\"auto\");\n        @include u-right(0);\n      }\n\n      .usa-card__media--inset {\n        @include u-padding-left(0);\n        @include u-padding-right($theme-card-padding-perimeter);\n\n        .usa-card__img {\n          @include u-radius(0);\n        }\n      }\n\n      .usa-card__img {\n        @include u-radius(0);\n        border-top-right-radius: calc(\n          #{radius($theme-card-border-radius)} -\n            #{units($theme-card-border-width)}\n        );\n        border-bottom-right-radius: calc(\n          #{radius($theme-card-border-radius)} -\n            #{units($theme-card-border-width)}\n        );\n      }\n\n      .usa-card__header,\n      .usa-card__body,\n      .usa-card__footer {\n        @include u-margin-left(0);\n        @include u-margin-right($theme-card-flag-image-width);\n      }\n\n      .usa-card__img {\n        @include u-radius(0);\n        @include u-radius-right($theme-card-border-radius);\n      }\n    }\n  }\n}\n\n.usa-card:not(.usa-card--flag).usa-card__media--set-aspect {\n  @include add-aspect(\"16x9\");\n  @include u-position(\"relative\");\n\n  .usa-card__img {\n    @include u-pin-all;\n  }\n}\n","@use \"sass:list\";\n@use \"../../functions\" as *;\n\n@mixin add-list-reset($value...) {\n  $important: null;\n  @if list.length($value) > 0 and has-important($value) {\n    $value: remove($value, \"!important\");\n    $important: \" !important\";\n  }\n  margin-bottom: 0#{$important};\n  margin-top: 0#{$important};\n  list-style-type: none#{$important};\n  padding-left: 0#{$important};\n}\n\n@mixin list-reset($value...) {\n  @include add-list-reset($value...);\n}\n","@use \"sass:list\";\n@use \"../../functions\" as *;\n\n// Outputs border-radius\n\n@mixin u-radius($value...) {\n  $value: unpack($value);\n  $important: null;\n  @if has-important($value) {\n    $value: remove($value, \"!important\");\n    @if list.length($value) == 1 {\n      $value: de-list($value);\n    }\n    $important: \" !important\";\n  }\n  border-radius: get-uswds-value(\"border-radius\", $value) #{$important};\n}\n\n@mixin u-radius-bottom($value...) {\n  $value: unpack($value);\n  $important: null;\n  @if has-important($value) {\n    $value: remove($value, \"!important\");\n    @if list.length($value) == 1 {\n      $value: de-list($value);\n    }\n    $important: \" !important\";\n  }\n  border-bottom-left-radius: get-uswds-value(\"border-radius\", $value)\n    #{$important};\n  border-bottom-right-radius: get-uswds-value(\"border-radius\", $value)\n    #{$important};\n}\n\n@mixin u-radius-left($value...) {\n  $value: unpack($value);\n  $important: null;\n  @if has-important($value) {\n    $value: remove($value, \"!important\");\n    @if list.length($value) == 1 {\n      $value: de-list($value);\n    }\n    $important: \" !important\";\n  }\n  border-bottom-left-radius: get-uswds-value(\"border-radius\", $value)\n    #{$important};\n  border-top-left-radius: get-uswds-value(\"border-radius\", $value) #{$important};\n}\n\n@mixin u-radius-right($value...) {\n  $value: unpack($value);\n  $important: null;\n  @if has-important($value) {\n    $value: remove($value, \"!important\");\n    @if list.length($value) == 1 {\n      $value: de-list($value);\n    }\n    $important: \" !important\";\n  }\n  border-bottom-right-radius: get-uswds-value(\"border-radius\", $value)\n    #{$important};\n  border-top-right-radius: get-uswds-value(\"border-radius\", $value)\n    #{$important};\n}\n\n@mixin u-radius-top($value...) {\n  $value: unpack($value);\n  $important: null;\n  @if has-important($value) {\n    $value: remove($value, \"!important\");\n    @if list.length($value) == 1 {\n      $value: de-list($value);\n    }\n    $important: \" !important\";\n  }\n  border-top-left-radius: get-uswds-value(\"border-radius\", $value) #{$important};\n  border-top-right-radius: get-uswds-value(\"border-radius\", $value)\n    #{$important};\n}\n","@use \"sass:list\";\n@use \"../../functions\" as *;\n\n// Outputs order\n\n@mixin u-order($value...) {\n  $value: unpack($value);\n  $important: null;\n  @if has-important($value) {\n    $value: remove($value, \"!important\");\n    @if list.length($value) == 1 {\n      $value: de-list($value);\n    }\n    $important: \" !important\";\n  }\n  order: get-uswds-value(\"order\", $value...) #{$important};\n}\n","@use \"sass:list\";\n@use \"../../functions\" as *;\n\n@mixin u-bg($value...) {\n  $value: unpack($value);\n  $important: null;\n  @if has-important($value) {\n    $value: remove($value, \"!important\");\n    @if list.length($value) == 1 {\n      $value: de-list($value);\n    }\n    $important: \" !important\";\n  }\n  background-color: color($value) #{$important};\n}\n","@use \"sass:list\";\n@use \"../../functions\" as *;\n\n// Outputs overflow\n\n@mixin u-overflow($value...) {\n  $value: unpack($value);\n  $important: null;\n  @if has-important($value) {\n    $value: remove($value, \"!important\");\n    @if list.length($value) == 1 {\n      $value: de-list($value);\n    }\n    $important: \" !important\";\n  }\n  overflow: get-uswds-value(\"overflow\", $value...) #{$important};\n}\n\n@mixin u-overflow-x($value...) {\n  $value: unpack($value);\n  $important: null;\n  @if has-important($value) {\n    $value: remove($value, \"!important\");\n    @if list.length($value) == 1 {\n      $value: de-list($value);\n    }\n    $important: \" !important\";\n  }\n  overflow-x: get-uswds-value(\"overflow\", $value...) #{$important};\n}\n\n@mixin u-overflow-y($value...) {\n  $value: unpack($value);\n  $important: null;\n  @if has-important($value) {\n    $value: remove($value, \"!important\");\n    @if list.length($value) == 1 {\n      $value: de-list($value);\n    }\n    $important: \" !important\";\n  }\n  overflow-y: get-uswds-value(\"overflow\", $value...) #{$important};\n}\n","@use \"sass:list\";\n@use \"../../functions\" as *;\n\n// Outputs right\n\n@mixin u-left($value...) {\n  $value: unpack($value);\n  $important: null;\n  @if has-important($value) {\n    $value: remove($value, \"!important\");\n    @if list.length($value) == 1 {\n      $value: de-list($value);\n    }\n    $important: \" !important\";\n  }\n  left: get-uswds-value(\"left\", $value...) #{$important};\n}\n","@use \"sass:list\";\n@use \"../../functions\" as *;\n\n// Outputs right\n\n@mixin u-right($value...) {\n  $value: unpack($value);\n  $important: null;\n  @if has-important($value) {\n    $value: remove($value, \"!important\");\n    @if list.length($value) == 1 {\n      $value: de-list($value);\n    }\n    $important: \" !important\";\n  }\n  right: get-uswds-value(\"right\", $value...) #{$important};\n}\n","@use \"sass:list\";\n@use \"sass:map\";\n@use \"../../functions\" as *;\n@use \"../../variables\" as *;\n\n@mixin add-aspect-children {\n  & > * {\n    position: absolute;\n    top: 0;\n    left: 0;\n    width: 100%;\n    height: 100%;\n  }\n\n  @at-root img#{&},\n    & > img {\n    object-fit: cover;\n  }\n}\n\n@mixin add-aspect($ratio, $type: \"\") {\n  $ratio: unpack($ratio);\n  $important: null;\n\n  @if has-important($ratio) {\n    $ratio: list.nth($ratio, 1);\n    $important: \"!important\";\n  }\n\n  @if map-has-key($project-aspect-ratios, $ratio) {\n    box-sizing: border-box #{$important};\n    height: 0 #{$important};\n    overflow: hidden #{$important};\n    padding-bottom: map.get($project-aspect-padding, $ratio) #{$important};\n    position: relative;\n\n    // Check for CSS aspect-ratio support\n    @supports (aspect-ratio: 1) {\n      //reset\n      height: inherit #{$important};\n      padding: inherit #{$important};\n      // end reset\n      aspect-ratio: map.get($project-aspect-ratios, $ratio);\n      max-width: 100%;\n      @include add-aspect-children;\n    }\n  } @else {\n    @error '`#{$ratio}` is not a valid key in $project-aspect-ratios. Valid values: #{map.keys($project-aspect-ratios)}';\n  }\n}\n","@use \"uswds-core\" as *;\n\n.usa-checklist {\n  @include add-list-reset;\n  @include border-box-sizing;\n  @include typeset;\n}\n\n.usa-checklist__item {\n  @include add-checkbox-placeholder;\n  @include u-margin-y(0);\n  margin-bottom: 0;\n  margin-top: units(1);\n\n  // Deprecate usa-checklist__item--checked once the js is updated\n  &.usa-checklist__item--checked {\n    @include add-success-mark;\n  }\n}\n","@use \"../../functions\" as *;\n\n@mixin add-checkbox-placeholder {\n  $placeholder-width: units(4);\n  $placeholder-margin: units(1);\n\n  text-indent: ($placeholder-width + $placeholder-margin) * -1;\n\n  &::before {\n    content: \" \";\n    display: inline-block;\n    height: units(2);\n    margin-left: units(-0.5);\n    margin-right: units(1.5);\n    width: $placeholder-width;\n  }\n}\n","@use \"./add-background-svg\" as *;\n@use \"../../functions\" as *;\n\n@mixin add-success-mark {\n  &::before {\n    @include add-background-svg(\"usa-icons-bg/check--blue-60v\");\n    background-position: center;\n    background-size: units(3);\n  }\n}\n","@use \"uswds-core\" as *;\n\n$collection-thumb-width: 10;\n$collection-thumb-width-mobile: 8;\n$collection-thumb-margin: 2;\n\n@include override-prose {\n  .usa-collection {\n    @include typeset($theme-collection-font-family, \"sm\", 3);\n    @include usa-list;\n    @include u-padding-left(0);\n  }\n\n  .usa-collection__item {\n    @include usa-list-item;\n    @include unstyled-list;\n    @include u-align-items(\"align-start\");\n    @include u-border-top(1px);\n    @include u-display(\"flex\");\n    @include u-margin-y(2);\n    @include u-padding-top(2);\n  }\n}\n\n.usa-collection__img,\n.usa-collection__calendar-date {\n  @include media-block-img;\n  width: units($collection-thumb-width-mobile);\n  margin-right: units($collection-thumb-margin);\n\n  @include at-media(\"tablet\") {\n    width: units($collection-thumb-width);\n  }\n}\n\n.usa-collection__body {\n  @include u-flex(1);\n}\n\n.usa-collection__heading {\n  @include typeset($theme-collection-header-typeset);\n  @include u-margin-bottom(0);\n  @include u-margin-top(0);\n}\n\n.usa-collection__description {\n  @include u-margin-y(1);\n}\n\n.usa-collection__meta {\n  @include unstyled-list;\n  @include u-margin-top(0.5);\n}\n\n.usa-collection__meta-item {\n  @include u-margin-top(0.5);\n  @include typeset(\"ui\", \"2xs\", 3);\n  display: block;\n  margin-right: units(1);\n\n  &.usa-tag {\n    @include u-bg(\"base-lighter\");\n    @include u-line-height(\"ui\", 1);\n    @include u-padding-y(0.5);\n    @include u-text(\"ink\");\n    display: inline-block;\n    margin-top: units(0.5);\n\n    &--new {\n      @include u-bg(\"accent-warm-dark\");\n      @include u-text(\"white\");\n    }\n  }\n}\n\n.usa-collection__calendar-date {\n  text-decoration: none;\n}\n\n.usa-collection__calendar-date-month,\n.usa-collection__calendar-date-day {\n  @include u-font(\"ui\", 6);\n  display: block;\n  font-weight: fw(\"bold\");\n  padding: units(0.5);\n  text-align: center;\n\n  @include at-media(\"tablet\") {\n    padding: units(1);\n  }\n}\n\n.usa-collection__calendar-date-month {\n  @include u-radius-top(\"sm\");\n  background-color: color(\"primary\");\n  color: color(\"white\");\n}\n\n.usa-collection__calendar-date-day {\n  @include u-radius-bottom(\"sm\");\n  border: 1px solid color(\"primary\");\n  color: color(\"primary\");\n}\n\n.usa-collection--condensed {\n  .usa-collection__item {\n    @include u-margin-y(1);\n    @include u-padding-top(1);\n  }\n}\n","@use \"sass:list\";\n@use \"../../functions/general/unpack\" as *;\n@use \"../../functions/general/has-important\" as *;\n@use \"../../functions/output/get-uswds-value\" as *;\n\n// Outputs align-items\n\n@mixin u-align-items($value...) {\n  $value: unpack($value);\n  $important: null;\n  @if has-important($value) {\n    $value: remove($value, \"!important\");\n    @if list.length($value) == 1 {\n      $value: de-list($value);\n    }\n    $important: \" !important\";\n  }\n  align-items: get-uswds-value(\"align-items\", $value) #{$important};\n}\n","@use \"../../functions\" as *;\n\n@mixin media-block-img($margin-right: units(1)) {\n  flex-shrink: 0;\n  margin-right: $margin-right;\n}\n","@use \"uswds-core\" as *;\n\n.usa-embed-container {\n  iframe,\n  object,\n  embed {\n    position: absolute;\n    top: 0;\n    left: 0;\n    width: 100%;\n    height: 100%;\n  }\n}\n\n.usa-embed-container {\n  @include add-aspect(\"16x9\");\n  max-width: 100%;\n}\n","@use \"uswds-core\" as *;\n\n// Map for high contrast mode icons\n$-chevron-icon-defaults: (\n  \"color\": currentColor,\n  \"svg-height\": 20,\n  \"svg-width\": 20,\n  \"height\": units(2.5),\n);\n\n$-chevron-next: map-merge(\n  $-chevron-icon-defaults,\n  (\n    \"name\": \"navigate_next\",\n  )\n);\n\n$-chevron-expand-more: map-merge(\n  $-chevron-icon-defaults,\n  (\n    \"name\": \"expand_more\",\n  )\n);\n\n// General footer styles\n.usa-footer {\n  @include border-box-sizing;\n  @include typeset($theme-footer-font-family);\n\n  > .grid-container {\n    @include grid-container($theme-footer-max-width);\n  }\n}\n.usa-footer__return-to-top {\n  @include u-padding-y(2.5);\n  line-height: line-height($theme-footer-font-family, 1);\n\n  a {\n    @include typeset-link;\n  }\n}\n\n.usa-footer__nav {\n  @include grid-container($theme-footer-max-width);\n  @include u-padding-x(0);\n  border-bottom: 1px solid color(\"base-light\");\n\n  @include at-media(\"mobile-lg\") {\n    @include add-responsive-site-margins;\n    border-bottom: none;\n  }\n\n  > ul {\n    @include add-list-reset;\n  }\n}\n\n.usa-footer__primary-section {\n  background-color: color(\"base-lightest\");\n\n  > .grid-container {\n    @include grid-container($theme-footer-max-width);\n  }\n}\n\n.usa-footer__primary-container {\n  @include grid-container($theme-footer-max-width);\n  @include u-padding-x(0);\n\n  @include at-media(\"desktop\") {\n    @include u-padding-x(4);\n  }\n}\n\n.usa-footer__primary-content {\n  line-height: line-height($theme-footer-font-family, 2);\n}\n\n.usa-footer__primary-link {\n  @include u-padding-x($theme-site-margins-mobile-width);\n  @include u-padding-y(2);\n  @include u-text(\"ink\", \"bold\");\n  // Border reset for button variants of footer primary links.\n  border: 0;\n  border-top: 1px solid color(\"base-light\");\n  display: block;\n\n  @include at-media(\"mobile-lg\") {\n    @include u-padding-x(0);\n    border: none;\n  }\n\n  // Disclosure button functionality happens at mobile widths\n  &--button {\n    @include place-icon($-chevron-expand-more, \"before\", 0.5);\n    width: 100%;\n    cursor: pointer;\n\n    &:not([disabled]):focus {\n      // Apply negative focus offset to ensure that entire focus ring is visible\n      @include focus-outline(null, null, null, \"neg-05\");\n    }\n\n    // Arrow for collapsible content.\n    &::before {\n      @include u-square(2.5);\n      align-items: center;\n      background-size: contain;\n      content: \"\";\n      display: inline-flex;\n      justify-content: center;\n      margin-right: units(0.5);\n      margin-left: units(-0.5);\n\n      @media (forced-colors: active) {\n        background-color: buttonText !important;\n      }\n    }\n\n    & + .usa-list--unstyled {\n      margin-top: units(1);\n      margin-bottom: units(1);\n    }\n\n    &[aria-expanded=\"false\"] {\n      @include place-icon($-chevron-next, \"before\", 0.5);\n\n      // Hide submenu when button is not expanded\n      & + .usa-list--unstyled {\n        display: none;\n      }\n    }\n  }\n}\n\n.usa-footer__secondary-link {\n  line-height: line-height($theme-footer-font-family, 2);\n  margin-left: units(2);\n  padding: 0;\n\n  a {\n    @include typeset-link;\n  }\n\n  & + .usa-footer__secondary-link {\n    padding-top: units(2);\n  }\n\n  @include at-media(\"mobile-lg\") {\n    margin-left: 0;\n  }\n}\n\n.usa-footer__contact-info {\n  line-height: line-height($theme-footer-font-family, 2);\n\n  a {\n    @include u-text(\"ink\");\n  }\n\n  @include at-media(\"mobile-lg\") {\n    @include u-flex(\"justify-end\");\n    margin-top: units(1);\n  }\n}\n\n.usa-sign-up {\n  padding-bottom: units(4);\n  padding-top: units(3);\n\n  .usa-label,\n  .usa-button {\n    margin-top: units(1.5);\n  }\n}\n\n.usa-sign-up__heading {\n  @include h3;\n  margin: 0;\n}\n\n.usa-footer__secondary-section {\n  @include u-padding-y(2.5);\n  @include set-text-and-bg(\"base-lighter\");\n\n  > .grid-container {\n    @include grid-container($theme-footer-max-width);\n\n    > .grid-row {\n      justify-content: space-between;\n    }\n  }\n\n  a {\n    color: color(\"ink\");\n  }\n}\n\n.usa-footer__logo {\n  @include u-margin-y(1);\n\n  @include at-media(\"mobile-lg\") {\n    @include u-margin-y(0);\n    @include u-flex(\"align-center\");\n  }\n}\n\n.usa-footer__logo-img {\n  max-width: units(10);\n}\n\n.usa-footer__logo-heading {\n  @include typeset($theme-footer-font-family, $theme-h3-font-size, 1);\n  @include u-font-weight(\"bold\");\n  @include u-margin-y(1);\n}\n\n.usa-footer__contact-links {\n  margin-top: units(3);\n\n  @include at-media(\"mobile-lg\") {\n    margin-top: 0;\n    text-align: right;\n  }\n}\n\n.usa-footer__contact-heading {\n  @include typeset(\n    $theme-footer-font-family,\n    $theme-h3-font-size,\n    $theme-heading-line-height\n  );\n  @include u-font-weight(\"bold\");\n  margin-top: 0;\n\n  @include at-media(\"mobile-lg\") {\n    @include u-margin-y(0.5);\n  }\n}\n\n.usa-footer__social-links {\n  line-height: line-height($theme-footer-font-family, 1);\n  padding-bottom: units(1);\n\n  a {\n    text-decoration: none;\n  }\n\n  @include at-media(\"mobile-lg\") {\n    @include u-flex(\"justify-end\");\n  }\n}\n\n.usa-social-link {\n  @include u-square($size-touch-target);\n  background-color: color(\"black-transparent-10\");\n  display: inline-block;\n  padding: units(0.5);\n\n  &:hover {\n    background-color: color(\"white\");\n  }\n\n  @media (forced-colors: active) {\n    background-color: lightgrey;\n    forced-color-adjust: none;\n  }\n}\n\n.usa-social-link__icon {\n  display: block;\n  height: auto;\n  width: 100%;\n}\n\n.usa-footer__address {\n  @include at-media(\"mobile-lg\") {\n    @include u-flex(\"justify-end\");\n  }\n}\n\n// Slim footer styles\n\n.usa-footer--slim {\n  .usa-footer__nav {\n    @include at-media(\"desktop\") {\n      @include u-padding-x(0);\n    }\n  }\n\n  .usa-footer__address {\n    @include u-padding-x($theme-site-margins-mobile-width);\n    @include u-padding-y(2);\n\n    @include at-media(\"mobile-lg\") {\n      @include u-padding(0);\n    }\n  }\n\n  .usa-footer__logo {\n    @include u-flex(\"align-center\");\n  }\n\n  .usa-footer__logo-img {\n    max-width: units(6);\n  }\n\n  .usa-footer__contact-info {\n    display: inline-block;\n\n    @include at-media(\"mobile-lg\") {\n      @include u-padding-y(2);\n      margin-top: 0;\n    }\n  }\n}\n\n// Big footer styles\n\n.usa-footer--big {\n  .usa-footer__nav {\n    @include u-margin-x($theme-site-margins-mobile-width * -1);\n    @include at-media(\"mobile-lg\") {\n      border-bottom: 1px solid color(\"base-light\");\n      padding-top: units(4);\n    }\n    @include at-media(\"tablet\") {\n      @include u-margin-x(0);\n      @include u-padding-x(0);\n      border-bottom: none;\n    }\n  }\n\n  .usa-footer__primary-link {\n    @include h4;\n    line-height: line-height(\"heading\", 2);\n    margin: 0;\n\n    @include at-media(\"mobile-lg\") {\n      @include u-padding-y(0);\n      margin-bottom: units(1);\n\n      &:hover {\n        cursor: auto;\n        text-decoration: none;\n      }\n    }\n  }\n\n  .usa-footer__primary-content--collapsible {\n    .usa-footer__primary-link {\n      align-items: center;\n      display: flex;\n      justify-content: flex-start;\n    }\n\n    .usa-list--unstyled {\n      @include u-padding-x($theme-site-margins-mobile-width);\n      padding-bottom: units(2.5);\n\n      @include at-media(\"mobile-lg\") {\n        @include u-padding-x(0);\n        padding-bottom: units(4);\n        padding-top: units(1.5);\n      }\n    }\n  }\n}\n","@use \"sass:list\";\n@use \"../../functions\" as *;\n\n// Outputs line-height\n\n@mixin u-font-weight($value...) {\n  $value: unpack($value);\n  $important: null;\n  @if has-important($value) {\n    $value: remove($value, \"!important\");\n    @if list.length($value) == 1 {\n      $value: de-list($value);\n    }\n    $important: \" !important\";\n  }\n  font-weight: get-uswds-value(\"font-weight\", $value...) #{$important};\n}\n","@use \"uswds-core\" as *;\n\n.usa-form {\n  @include typeset(\n    $theme-form-font-family,\n    $theme-body-font-size,\n    $theme-input-line-height\n  );\n  @include border-box-sizing;\n\n  @include at-media(\"mobile-lg\") {\n    max-width: units(\"mobile\");\n  }\n\n  // Don't show dotted underline with \"required\" asterisk because it can cause legibility issues ad appear as an ellipsis...\n  abbr[title=\"required\"] {\n    text-decoration: none;\n  }\n\n  // Clear max-width in children since .usa-form has one of its own.\n  // Used :where() to reduce specificity and\n  // prevent usa-form styles from overriding `usa-input--[width] and `usa-input-group--[width]` classes.\n  :where(.usa-input, .usa-textarea, .usa-select, .usa-range) {\n    max-width: none;\n  }\n\n  .usa-button {\n    margin-top: units(1);\n\n    @include at-media(\"mobile-lg\") {\n      margin-top: units(3);\n    }\n  }\n\n  // Avoids links styled as buttons\n  a:where(:not(.usa-button)) {\n    @include typeset-link;\n  }\n}\n\n.usa-form--large {\n  @include at-media(\"mobile-lg\") {\n    max-width: units(\"mobile-lg\");\n  }\n}\n\n.usa-show-password {\n  @include button-unstyled;\n  cursor: pointer;\n}\n\n.usa-form__note,\n.usa-show-password {\n  @include typeset($theme-form-font-family, \"2xs\", 3);\n  float: right;\n  margin: units(0.5) 0 units(2);\n}\n","@use \"uswds-core\" as *;\n\n// A collection of media block objects\n\n.usa-graphic-list {\n  @include typeset;\n  @include border-box-sizing;\n\n  .usa-graphic-list__row {\n    .usa-media-block {\n      margin-bottom: units(4);\n\n      @include at-media(\"tablet\") {\n        margin-bottom: units(8);\n      }\n    }\n\n    &:last-child {\n      .usa-media-block {\n        @include at-media(\"tablet\") {\n          margin-bottom: 0;\n        }\n\n        &:last-child {\n          margin-bottom: 0;\n        }\n      }\n    }\n  }\n\n  .usa-media-block__img {\n    margin-right: units(3);\n  }\n\n  .usa-media-block__body {\n    > :first-child {\n      margin-top: 0;\n    }\n  }\n}\n\n.usa-graphic-list__heading {\n  @include typeset-h3;\n}\n","@use \"uswds-core\" as *;\n\n// Header helpers\n// ---------------------------------\n\n@mixin nav-border-extended {\n  @include add-bar(0.5, \"primary\", \"bottom\", 0, 2);\n}\n\n@mixin nav-border-basic {\n  @include add-bar(0.5, \"primary\", \"bottom\", 0, 2, -0.5);\n}\n\n$z-index-header: 300;\n$z-index-overlay: 400;\n\n// Header\n// ---------------------------------\n\n.usa-header {\n  @include clearfix;\n  @include typeset($theme-header-font-family);\n  @include border-box-sizing;\n\n  a {\n    border-bottom: none;\n  }\n\n  // The search <form>\n  .usa-search {\n    margin-top: units(1);\n    @include at-media($theme-header-min-width) {\n      float: right;\n    }\n  }\n\n  // Accessibility: The <div> with search role\n  [role=\"search\"] {\n    @include at-media($theme-header-min-width) {\n      float: right;\n      max-width: calc(\n        #{$theme-search-min-width} + #{units($theme-button-small-width)}\n      );\n      width: 100%;\n    }\n  }\n\n  // The search <input>\n  [type=\"search\"] {\n    min-width: 0; // Fix a Firefox display quirk\n  }\n\n  + .usa-hero {\n    @include at-media($theme-header-min-width) {\n      border-top: units(1px) solid color(\"white\");\n    }\n  }\n\n  + .usa-section,\n  + main {\n    @include at-media($theme-header-min-width) {\n      border-top: units(1px) solid color(\"base-lighter\");\n    }\n  }\n}\n\n.usa-logo {\n  @include at-media-max($theme-header-min-width) {\n    @include u-flex(\"fill\");\n    font-size: font-size($theme-header-font-family, \"2xs\");\n    line-height: line-height($theme-header-font-family, 1);\n    margin-left: units($theme-site-margins-mobile-width);\n  }\n\n  @include at-media($theme-header-min-width) {\n    margin-top: units(4);\n    margin-bottom: units(2);\n    font-size: font-size($theme-header-font-family, \"lg\");\n    line-height: line-height($theme-header-font-family, 2);\n  }\n\n  a {\n    color: color(\"ink\");\n    text-decoration: none;\n  }\n}\n\n.usa-logo__text {\n  display: block;\n  font-style: normal;\n  font-weight: font-weight(\"bold\");\n  margin: 0;\n}\n\n.usa-menu-btn {\n  @include button-unstyled;\n  @include u-flex(\"auto\");\n  @include u-padding-x(1.5);\n  background-color: color(\"primary\");\n  color: color(\"white\");\n  font-size: font-size($theme-header-font-family, \"3xs\");\n  height: units($size-touch-target);\n  text-align: center;\n  text-decoration: none;\n  text-transform: uppercase;\n\n  @include at-media($theme-header-min-width) {\n    display: none;\n  }\n\n  &:hover {\n    background-color: color(\"primary-dark\");\n    color: color(\"white\");\n    text-decoration: none;\n  }\n\n  &:active {\n    color: color(\"white\");\n  }\n\n  &:visited {\n    color: color(\"white\");\n  }\n}\n\n.usa-overlay {\n  @include u-pin(\"all\");\n  position: fixed;\n  background: color(\"black-transparent-70\");\n  opacity: opacity(0);\n  transition: opacity $project-easing;\n  visibility: hidden;\n  z-index: z-index($z-index-overlay);\n\n  &.is-visible {\n    opacity: opacity(100);\n    visibility: visible;\n  }\n}\n\n// usa-header--basic\n// ---------------------------------\n\n.usa-header--basic {\n  @include at-media($theme-header-min-width) {\n    .usa-navbar {\n      position: relative;\n      width: $theme-header-logo-text-width; // TODO: review this more\n    }\n\n    .usa-nav {\n      @include u-flex(\"row\", \"align-center\", \"justify-end\");\n      display: flex;\n      padding: 0 0 units(1) units(1);\n      width: 100%;\n    }\n\n    .usa-nav-container {\n      @include u-flex(\"align-end\", \"justify\");\n      display: flex;\n    }\n\n    .usa-nav__primary-item > .usa-current,\n    .usa-nav__link:hover {\n      @include nav-border-basic;\n    }\n\n    // Don't show extended border if dropdown is active.\n    .usa-nav__link[aria-expanded=\"true\"]::after,\n    .usa-nav__link[aria-expanded=\"true\"]:hover::after {\n      display: none;\n    }\n\n    .usa-nav__primary {\n      width: auto;\n    }\n\n    // Issue #3401: last dropdown gets cutoff.\n    .usa-nav__primary-item:last-of-type {\n      position: relative;\n\n      .usa-nav__submenu {\n        @include u-pin-right;\n      }\n    }\n\n    .usa-search {\n      top: 0;\n    }\n  }\n\n  &.usa-header--megamenu {\n    .usa-nav__inner {\n      display: flex;\n      flex-direction: column;\n\n      @include at-media($theme-header-min-width) {\n        display: block;\n        float: right;\n        margin-top: units(-5);\n      }\n    }\n\n    .usa-nav__primary-item:last-of-type {\n      @include at-media($theme-header-min-width) {\n        position: static;\n      }\n    }\n  }\n}\n\n// usa-header--extended\n// ---------------------------------\n\n.usa-header--extended {\n  @include at-media($theme-header-min-width) {\n    padding-top: 0;\n\n    .usa-nav__primary-item > .usa-current,\n    .usa-nav__primary-item > .usa-nav__link:hover {\n      @include nav-border-extended;\n    }\n\n    // Don't show extended border if dropdown is active.\n    .usa-nav__link[aria-expanded=\"true\"]::after,\n    .usa-nav__link[aria-expanded=\"true\"]:hover::after {\n      display: none;\n    }\n  }\n\n  .usa-logo {\n    @include at-media($theme-header-min-width) {\n      font-size: font-size($theme-header-font-family, \"xl\");\n      margin: units(4) 0 units(3);\n      max-width: $theme-header-logo-text-width;\n    }\n  }\n\n  .usa-navbar {\n    @include at-media($theme-header-min-width) {\n      @include grid-container($theme-header-max-width);\n      display: block;\n      height: auto;\n      overflow: auto;\n    }\n  }\n\n  .usa-nav {\n    @include at-media($theme-header-min-width) {\n      border-top: units(1px) solid color(\"base-lighter\");\n      padding: 0;\n      width: 100%;\n    }\n  }\n\n  .usa-nav__inner {\n    @include at-media($theme-header-min-width) {\n      @include grid-container($theme-header-max-width);\n      position: relative;\n    }\n  }\n\n  .usa-nav__primary {\n    @include at-media($theme-header-min-width) {\n      @include clearfix;\n      margin-left: units(-2);\n    }\n  }\n\n  .usa-nav__link {\n    @include at-media($theme-header-min-width) {\n      @include u-padding-y(2);\n    }\n  }\n\n  .usa-nav__submenu {\n    .usa-grid-full {\n      @include at-media($theme-header-min-width) {\n        padding-left: units(1.5);\n      }\n    }\n  }\n\n  .usa-nav__submenu.usa-megamenu {\n    @include at-media($theme-header-min-width) {\n      left: 0;\n      padding-left: units($theme-site-margins-width);\n      padding-right: units($theme-site-margins-width);\n    }\n  }\n}\n\n// [uswds-init.js] Offscreen content while js is loading\nhtml.usa-js-loading {\n  .usa-nav__submenu,\n  .usa-nav__submenu.usa-megamenu {\n    @include add-sr-only;\n  }\n}\n","@mixin clearfix {\n  &::after {\n    clear: both;\n    content: \"\";\n    display: block;\n  }\n}\n","@use \"../../functions\" as *;\n\n@mixin add-bar(\n  $weight: 1,\n  $color: \"ink\",\n  $side: \"left\",\n  $radius: 0,\n  $offset-x: 0,\n  $offset-y: 0\n) {\n  $weight: if($weight == null, 1, $weight);\n  $color: if($color == null, \"ink\", $color);\n  $side: if($side == null, \"left\", $side);\n  $radius: if($radius == null, 0, $radius);\n  $offset-x: if($offset-x == null, 0, $offset-x);\n  $offset-y: if($offset-y == null, 0, $offset-y);\n\n  position: relative;\n\n  &::after {\n    background-color: color($color);\n    border-radius: radius($radius);\n    content: \"\";\n    display: block;\n    position: absolute;\n\n    @if $side == (\"left\" or \"right\") {\n      bottom: units($offset-y);\n      top: units($offset-y);\n      width: units($weight);\n      #{unquote($side)}: units($offset-x);\n    } @else {\n      height: units($weight);\n      left: units($offset-x);\n      right: units($offset-x);\n      #{unquote($side)}: units($offset-y);\n\n      @media (forced-colors: active) {\n        background-color: ButtonText;\n      }\n    }\n  }\n}\n\n@mixin remove-bar {\n  &::after {\n    display: none;\n  }\n}\n","@use \"sass:math\";\n@use \"sass:meta\";\n@use \"uswds-core\" as *;\n\n// Calculate the width of the outer megamenu pseudo elements\n@mixin outer-megamenu($header-max-width: $theme-header-max-width, $type) {\n  @include u-pin(\"y\");\n  background-color: color(\"primary-darker\");\n  content: \"\";\n  display: block;\n  position: absolute;\n\n  // Set variable for submenu max width\n  $mw: smart-quote($header-max-width);\n  @if meta.type-of($header-max-width) == \"string\" {\n    // Retrieve the unit equivalent for submenu max width\n    $mw: units($header-max-width);\n  }\n\n  // Create the vw equivalent for max-width:none\n  @if $header-max-width == \"none\" {\n    $mw: 100vw;\n  }\n\n  // Calculate pseudo element width\n  // Subtract half the submenu width from half the viewport width\n  @if $type == \"standard\" {\n    // Add theme margin width to match padding in .usa-nav-container\n    width: calc(50vw - $mw / 2 + units($theme-site-margins-width));\n  } @else if $type == \"extended\" {\n    width: calc(50vw - $mw / 2);\n  }\n}\n\n.usa-megamenu {\n  .usa-col {\n    // Flex grow to take up available width.\n    // Flex shrink so long nav lines don't extend beyond viewport.\n    // Finally `flex-basis: auto` for IE11.\n    flex: 1 1 auto;\n\n    @include at-media($theme-header-min-width) {\n      // needs this round() to avoid a compile bug\n      @include u-flex(math.round(math.div(12, $theme-megamenu-columns)));\n\n      .usa-nav__submenu-item a {\n        @include u-padding-x(1);\n      }\n\n      // Remove padding from first and last columns on desktop view.\n      &:first-child .usa-nav__submenu-item a {\n        padding-left: 0;\n      }\n      &:last-child .usa-nav__submenu-item a {\n        padding-right: 0;\n      }\n    }\n  }\n}\n\n.usa-megamenu.usa-nav__submenu {\n  @include at-media($theme-header-min-width) {\n    @include u-padding-x(0);\n    @include u-padding-y(4);\n    left: -$theme-header-logo-text-width;\n    right: 0;\n    width: auto;\n  }\n\n  &::before {\n    @include at-media($theme-header-min-width) {\n      @include outer-megamenu($type: \"standard\");\n      right: 100%;\n    }\n  }\n\n  &::after {\n    @include at-media($theme-header-min-width) {\n      @include outer-megamenu($type: \"standard\");\n      left: 100%;\n    }\n  }\n}\n\n.usa-header--extended .usa-megamenu.usa-nav__submenu {\n  &::before {\n    @include at-media($theme-header-min-width) {\n      @include outer-megamenu($type: \"extended\");\n    }\n  }\n\n  &::after {\n    @include at-media($theme-header-min-width) {\n      @include outer-megamenu($type: \"extended\");\n    }\n  }\n}\n","@use \"uswds-core\" as *;\n\n.usa-nav-container {\n  @include at-media($theme-header-min-width) {\n    @include clearfix;\n    @include grid-container($theme-header-max-width);\n    @include u-padding-x($theme-site-margins-width);\n  }\n}\n","@use \"uswds-core\" as *;\n\n.usa-navbar {\n  @include border-box-sizing;\n  height: units($size-touch-target);\n\n  @include at-media-max($theme-header-min-width) {\n    @include u-flex(\"align-center\");\n    border-bottom: units(1px) solid color(\"base-lighter\");\n    display: flex;\n  }\n\n  @include at-media($theme-header-min-width) {\n    border-bottom: none;\n    display: inline-block;\n    height: auto;\n  }\n}\n","@use \"uswds-core\" as *;\n\n// Hero feature\n// ==========================\n\n.usa-hero {\n  @include border-box-sizing;\n  @include typeset;\n  background-image: url(\"#{$theme-hero-image}\");\n  background-position: center;\n  background-size: cover;\n  color: color(\"white\");\n\n  > .grid-container {\n    position: relative;\n    @include u-padding-y($theme-site-margins-width);\n  }\n}\n\n.usa-hero__callout {\n  background-color: color(\"primary-darker\");\n  padding: units(4);\n\n  @include at-media(\"tablet\") {\n    max-width: units(\"mobile\");\n  }\n}\n\n.usa-hero__heading {\n  @include typeset-h2;\n  color: color(\"accent-cool\");\n  line-height: line-height(\"heading\", 2);\n}\n\n.usa-hero__heading--alt {\n  color: color(\"white\");\n  display: block;\n}\n","@use \"sass:map\";\n\n@use \"uswds-core\" as *;\n\n// Variables\n\n// Size icons based on the theme-type-scale-[size] number and this factor\n$icon-list-icon-size-factor: 1.5;\n// Center the icon to the title text, works for all size variants\n$icon-list-icon-margin-top: -1.5%;\n// Fine tune the space between the icon and content with this factor\n$icon-list-icon-padding-left-factor: 0.4;\n// Fine tune the title top padding given a line height of lh-2\n$icon-list-title-padding-top: 0.425ex;\n\n$type-scale: font-size($theme-icon-list-font-family, $theme-body-font-size);\n\n// Get fixed size for icon, based on non-normalized size token\n$this-system-token: if(\n  map.has-key($all-type-scale, $theme-body-font-size),\n  map.get($all-type-scale, $theme-body-font-size),\n  $theme-body-font-size\n);\n\n$icon-size: px-to-rem($this-system-token);\n\n@include override-prose {\n  .usa-icon-list {\n    @include typeset($theme-icon-list-font-family, $theme-body-font-size);\n    @include unstyled-list;\n    @include u-measure(5);\n  }\n\n  .usa-icon-list__item {\n    display: flex;\n    position: relative;\n\n    & + .usa-icon-list__item {\n      padding-top: units(1.5);\n    }\n  }\n}\n\n// Allow setting icon color on the icon-list element\n.usa-icon-list {\n  @each $color, $grades in $all-project-colors {\n    @each $grade, $value in $grades {\n      @if $value {\n        $prefix: if($grade != \"default\", \"#{$color}-#{$grade}\", $color);\n        &--#{$prefix} {\n          .usa-icon-list__icon {\n            color: color($prefix);\n          }\n        }\n      }\n    }\n  }\n}\n\n.usa-icon-list__icon {\n  .usa-icon {\n    // Set the height and width of the icon based on the size variant and factor\n    // Doesn't use u-square() because of non-token size\n    display: block;\n    height: $icon-size * $icon-list-icon-size-factor;\n    // margin-top: $icon-list-icon-margin-top;\n    position: relative;\n    width: $icon-size * $icon-list-icon-size-factor;\n  }\n}\n\n// Don't resize any block-level element inside content\n.usa-icon-list__content {\n  > p,\n  > ul,\n  > ol {\n    @include u-font($theme-icon-list-font-family, $theme-body-font-size);\n    @include u-measure(5);\n  }\n}\n\n.usa-icon-list[class*=\"usa-icon-list--size-\"] {\n  @include u-measure(\"none\");\n}\n\n// Generate responsive variants\n// Create a map for looping that includes a default or no-breakpoint version\n$this-null: (\n  \"none\": null,\n);\n$icon-list-breakpoints: map-merge($this-null, $system-breakpoints);\n@each $mq-key, $mq-value in $icon-list-breakpoints {\n  // Set the prefix\n  // An empty string if \"none\"\n  $prefix: false;\n  @if $mq-key == \"none\" {\n    $prefix: \"\";\n  }\n  // Or the standard prefix if the breakpoint is output\n  @else if map.get($theme-utility-breakpoints-complete, $mq-key) {\n    $prefix: \"#{$mq-key}#{$separator}\";\n  }\n\n  @include at-media($mq-key) {\n    @each $token, $val in $all-type-scale {\n      @if $prefix {\n        $this-type-scale: font-size($theme-icon-list-font-family, $token);\n        .#{$prefix}usa-icon-list--size-#{$token} {\n          .usa-icon-list__icon {\n            .usa-icon {\n              // Set the height and width of the icon based on the size variant and factor\n              height: $this-type-scale * $icon-list-icon-size-factor;\n              width: $this-type-scale * $icon-list-icon-size-factor;\n            }\n          }\n\n          .usa-icon-list__content {\n            @include u-measure(5);\n            // Resize simple (un-marked up) content\n            font-size: size($theme-icon-list-font-family, $token);\n            // Calculate the space between the icon and content based on the size variant and factor\n            padding-left: $this-type-scale *\n              $icon-list-icon-padding-left-factor;\n\n            .usa-icon-list__title {\n              @include u-font($theme-icon-list-title-font-family, $token);\n            }\n          }\n        }\n      }\n    }\n  }\n}\n\n.usa-icon-list__title {\n  @include typeset(\n    $theme-icon-list-title-font-family,\n    $theme-body-font-size,\n    2\n  );\n  margin-bottom: units(0);\n  padding-top: $icon-list-title-padding-top;\n  & + * {\n    margin-top: units(1);\n  }\n}\n\n.usa-icon-list__content {\n  font-size: $type-scale;\n  padding-left: $type-scale * $icon-list-icon-padding-left-factor;\n  > *:first-child {\n    margin-top: 0;\n  }\n  > *:last-child {\n    margin-bottom: 0;\n  }\n\n  ul li {\n    list-style-type: disc;\n  }\n}\n","@use \"uswds-core\" as *;\n\n$identifier-context: \"Identifier\";\n$identifier-logo-height: 6;\n$identifier-section-margin-y: 2;\n$identifier-section-margin-y-small: 1;\n$identifier-link-gap: 1.5;\n$identifier-link-gap-desktop: 1;\n$identifier-links-gap: 4 !default;\n\n@mixin identifier-primary-link {\n  @include set-link-from-bg(\n    $theme-identifier-background-color,\n    $theme-identifier-primary-link-color,\n    $context: $identifier-context\n  );\n}\n\n@mixin identifier-secondary-link {\n  @include set-link-from-bg(\n    $theme-identifier-background-color,\n    $theme-identifier-secondary-link-color,\n    $context: $identifier-context\n  );\n}\n\n//\n// General Styles\n// =====================================\n.usa-identifier {\n  @include typeset($theme-identifier-font-family, \"sm\", 3);\n  @include set-text-and-bg(\n    $theme-identifier-background-color,\n    $context: $identifier-context\n  );\n  padding-bottom: units(2);\n}\n\n.usa-identifier__container {\n  @include grid-container;\n  @include u-maxw($theme-identifier-max-width);\n}\n\n.usa-identifier__section {\n  @include u-padding-y($identifier-section-margin-y);\n}\n\n.usa-identifier__section--masthead {\n  .usa-identifier__container {\n    @include at-media(\"tablet\") {\n      @include u-align-items(\"align-center\");\n      @include u-display(\"flex\");\n    }\n  }\n}\n\n.usa-identifier__logos {\n  display: flex;\n  margin-right: units(2);\n}\n\n.usa-identifier__logo {\n  @include u-text-decoration(\"no-underline\");\n  height: units($identifier-logo-height);\n  display: block;\n\n  & + .usa-identifier__logo {\n    margin-left: units(1);\n  }\n}\n\n.usa-identifier__logo-img {\n  height: 100%;\n  width: auto;\n}\n\n.usa-identifier__identity {\n  @include u-flex(\"fill\");\n  margin-top: units(2);\n\n  @include at-media(\"tablet\") {\n    margin-top: units(0);\n  }\n}\n\n.usa-identifier__identity-domain,\n.usa-identifier__identity-disclaimer {\n  margin: 0;\n  padding: 0;\n}\n\n.usa-identifier__identity-domain {\n  @include set-text-from-bg(\n    $theme-identifier-background-color,\n    $theme-identifier-identity-domain-color,\n    $context: $identifier-context\n  );\n}\n\n.usa-identifier__identity-disclaimer {\n  @include u-text(\"bold\");\n\n  a {\n    @include identifier-primary-link;\n  }\n}\n\n.usa-identifier__section--required-links {\n  @include at-media(\"tablet\") {\n    @include u-padding-y($identifier-section-margin-y-small);\n  }\n  @include at-media(\"desktop\") {\n    @include u-font-size($theme-identifier-font-family, \"xs\");\n  }\n}\n\n.usa-identifier__required-links-list {\n  @include add-list-reset;\n  @include u-margin-y(0);\n\n  @include at-media(\"tablet\") {\n    column-count: 2;\n    column-gap: units($identifier-links-gap);\n    column-fill: balance;\n  }\n\n  @include at-media(\"desktop\") {\n    column-count: 4;\n  }\n}\n\n.usa-identifier__required-links-item {\n  break-inside: avoid;\n  margin-bottom: units($identifier-link-gap);\n\n  &:last-child {\n    margin-bottom: units(0);\n  }\n\n  @include at-media(\"desktop\") {\n    margin-bottom: units($identifier-link-gap-desktop);\n  }\n}\n\n.usa-identifier__required-link,\n.usa-identifier__required-link.usa-link {\n  @include identifier-secondary-link;\n  display: inline-block;\n}\n\n.usa-identifier__section--usagov a {\n  @include identifier-primary-link;\n  @include u-text(\"bold\");\n  display: inline-block;\n  margin-top: units(1);\n\n  @include at-media(\"tablet\") {\n    margin-top: 0;\n  }\n}\n\n.usa-identifier__usagov-description {\n  @include at-media(\"tablet\") {\n    display: inline-flex;\n  }\n}\n","@use \"sass:list\";\n@use \"sass:map\";\n@use \"../../functions\" as *;\n@use \"../../tokens\" as *;\n\n// Outputs text-decoration and color properties\n\n@mixin u-text-decoration($value...) {\n  $value: unpack($value);\n  $important: null;\n  @if has-important($value) {\n    $value: remove($value, \"!important\");\n    @if list.length($value) == 1 {\n      $value: de-list($value);\n    }\n    $important: \" !important\";\n  }\n  @each $this-value in $value {\n    @if map.has-key($all-color-shortcodes, smart-quote($this-value)) {\n      text-decoration-color: color(smart-quote($this-value)) #{$important};\n    } @else {\n      text-decoration: get-uswds-value(\"text-decoration\", $value...)\n        #{$important};\n    }\n  }\n}\n","@use \"uswds-core\" as *;\n@use \"sass:color\";\n@use \"sass:list\";\n\n.usa-in-page-nav-container {\n  align-items: flex-start;\n  display: flex;\n\n  // Set main landmark max width to ensure in-page nav will fit\n  main {\n    max-width: units($theme-in-page-nav-main-content-max-width);\n    width: 100%;\n  }\n}\n\n.usa-in-page-nav {\n  @include set-text-from-bg(\n    $bg-color: $theme-in-page-nav-background-color,\n    $context: \"In-page navigation text color\"\n  );\n  display: none;\n  margin-left: units($theme-in-page-nav-margin-left);\n  margin-top: units($theme-in-page-nav-margin-top);\n  max-width: units(\"card-lg\");\n  order: 2;\n  position: sticky;\n  top: units($theme-in-page-nav-top);\n  width: 100%;\n\n  @include at-media(\"tablet\") {\n    display: block;\n  }\n}\n\n.usa-in-page-nav__nav {\n  @include set-text-and-bg(\n    $theme-in-page-nav-background-color,\n    $context: \"In-page navigation background\"\n  );\n  border-radius: radius($theme-in-page-nav-background-radius);\n  padding: units($theme-in-page-nav-background-padding);\n}\n\n.usa-in-page-nav__heading {\n  // TODO: This could be a setting?\n  @include typeset(\"ui\", \"2xs\", 3);\n  @include u-font-weight(\"bold\");\n  margin-bottom: units(2);\n  margin-top: 0;\n  padding: 0;\n}\n\n.usa-in-page-nav__list {\n  @include border-box-sizing;\n  @include nav-list(\"sidenav\");\n  border-left: units(1px) solid\n    color.adjust(\n      color(\n        get-color-token-from-bg(\n          $bg-color: $theme-in-page-nav-background-color,\n          $context: \"In-page navigation rail\"\n        )\n      ),\n      $alpha: -0.75\n    );\n  padding: 0;\n\n  // specificity to override sidenav styles\n  a:not(.usa-button) {\n    &:not(.usa-current) {\n      @include set-link-from-bg(\n        $bg-color: $theme-in-page-nav-background-color,\n        $preferred-link-color: $theme-in-page-nav-link-color,\n        $context: \"In-page-navigation link\"\n      );\n\n      &:visited {\n        color: color(\n          list.nth(\n            get-link-tokens-from-bg(\n              $bg-color: $theme-in-page-nav-background-color,\n              $preferred-link-token: $theme-in-page-nav-link-color,\n              $context: \"In-page-navigation link\"\n            ),\n            1\n          )\n        );\n      }\n    }\n\n    &.usa-current {\n      @include set-text-from-bg(\n        $bg-color: $theme-in-page-nav-background-color,\n        $context: \"In-page-navigation current color\"\n      );\n      font-weight: inherit;\n    }\n\n    &:hover {\n      text-decoration: underline;\n      background-color: none;\n    }\n\n    &.usa-current {\n      position: static;\n\n      &::after {\n        background-color: color(\n          get-color-token-from-bg(\n            $bg-color: $theme-in-page-nav-background-color,\n            $preferred-text-token: $theme-in-page-nav-bar-color,\n            $context: \"In-page navigation bar\"\n          )\n        );\n        border-radius: 0;\n        bottom: units(-1px);\n        left: 0;\n        top: 0;\n        width: units($theme-in-page-nav-bar-width);\n        z-index: z(100);\n      }\n    }\n  }\n}\n\n.usa-in-page-nav__item {\n  @include typeset($theme-in-page-nav-font-family, \"2xs\", 2);\n  border: none;\n  position: relative;\n\n  &--primary {\n    @include u-font-weight(\"bold\");\n  }\n}\n","@use \"./add-bar\" as *;\n@use \"../../functions\" as *;\n@use \"../../mixins/helpers\" as *;\n@use \"../../mixins/typography/unstyled-list\" as *;\n@use \"../../mixins/utilities\" as *;\n@use \"../../settings\" as *;\n\n$sidenav-level-1-inset: 2;\n$sidenav-level-2-inset: 4;\n$sidenav-level-3-inset: 6;\n$sidenav-level-4-inset: 8;\n\n@mixin nav-list($type) {\n  @include unstyled-list();\n\n  @if $type == \"sidenav\" {\n    &__item {\n      border-top: units(1px) solid color(\"base-lighter\");\n    }\n  }\n\n  @if $type == \"nav\" {\n    &-item {\n      border-top: units(1px) solid color(\"base-lighter\");\n    }\n  }\n\n  a:not(.usa-button) {\n    display: block;\n    padding: units(1) units($sidenav-level-1-inset);\n    text-decoration: none;\n\n    &:hover {\n      background-color: color(\"base-lightest\");\n      text-decoration: none;\n    }\n  }\n\n  a:not(.usa-button):not(.usa-current) {\n    color: color(\"base-dark\");\n\n    &:hover {\n      color: color($theme-link-color);\n    }\n\n    &:focus {\n      outline-offset: 0;\n    }\n  }\n\n  .usa-current {\n    @include add-bar(\n      $theme-sidenav-current-border-width,\n      \"primary\",\n      \"left\",\n      \"pill\",\n      0.5,\n      0.5\n    );\n    color: color($theme-link-color);\n    font-weight: font-weight(\"bold\");\n\n    @include at-media(\"tablet\") {\n      @include add-bar(\n        $theme-sidenav-current-border-width,\n        $theme-link-color,\n        \"left\",\n        \"pill\",\n        0,\n        0.5\n      );\n    }\n  }\n}\n\n@mixin nav-sublist {\n  @include unstyled-list();\n  margin: 0;\n\n  &-item {\n    border-top: units(1px) solid color(\"base-lighter\");\n    font-size: font-size($theme-sidenav-font-family, \"2xs\");\n  }\n\n  .usa-current {\n    @include remove-bar;\n\n    @include at-media(\"tablet\") {\n      @include remove-bar;\n    }\n  }\n\n  // level 2+\n  a:not(.usa-button) {\n    padding-left: units($sidenav-level-2-inset);\n  }\n\n  // level 3+\n  & & a:not(.usa-button) {\n    padding-left: units($sidenav-level-3-inset);\n  }\n\n  // level 4+\n  & & & a:not(.usa-button) {\n    padding-left: units($sidenav-level-4-inset);\n  }\n}\n","@use \"uswds-core\" as *;\n\n.usa-language {\n  @include u-flex(\"row\", \"align-center\", \"justify-end\");\n  display: flex;\n  padding: 0 0 units(0.5) units(1);\n  width: 100%;\n\n  &--small {\n    .usa-button {\n      @include u-padding-x(1.5);\n      @include u-padding-y(0);\n      font-size: font-size($theme-header-font-family, \"3xs\");\n      height: units(4);\n      margin-top: 0.3rem;\n      min-width: units($theme-button-small-width);\n    }\n  }\n}\n\n.usa-language-container {\n  @include u-flex(\"align-center\", \"justify-end\");\n  display: flex;\n}\n\n.usa-nav-container {\n  .usa-language-container {\n    align-self: center;\n    margin-left: units(0);\n    position: absolute;\n    right: units(10);\n    top: units(2);\n\n    @include at-media($theme-header-min-width) {\n      align-self: flex-end;\n      margin-left: units(1.5);\n      margin-bottom: units(1);\n      position: relative;\n      right: inherit;\n      top: units(-2px);\n    }\n  }\n}\n\n.usa-language__link {\n  margin-right: units(0);\n}\n\n.usa-language__primary {\n  width: auto;\n}\n\n.usa-language__primary-item:last-of-type {\n  position: relative;\n\n  .usa-language__submenu {\n    @include u-pin-right;\n  }\n}\n\n.usa-language__submenu {\n  @include add-list-reset;\n  @include nav-sublist;\n  background-color: color(\"primary-darker\");\n  position: absolute;\n  width: units(\"card-lg\");\n  z-index: z-index(400);\n\n  &[aria-hidden=\"true\"] {\n    display: none;\n  }\n\n  .usa-language__submenu-item {\n    a {\n      color: color(\"white\");\n      display: block;\n      line-height: line-height($theme-navigation-font-family, 3);\n      padding: 0;\n      padding: units(1);\n      text-decoration: none;\n\n      &:focus {\n        outline-offset: units(\"neg-05\");\n      }\n\n      &:hover {\n        color: color(\"white\");\n        text-decoration: underline;\n      }\n    }\n  }\n}\n\n.usa-language__submenu-list {\n  @include unstyled-list;\n\n  .usa-language__submenu-list-item {\n    margin: 0;\n    font-size: font-size($theme-navigation-font-family, \"2xs\");\n\n    a {\n      line-height: line-height($theme-navigation-font-family, 3);\n    }\n  }\n}\n","@use \"uswds-core\" as *;\n\n$sidenav-reorder-warning: \"$theme-sidenav-reorder is enabled and has accessibility concerns. This behavior has a negative impact on users of assistive technologies.\";\n\n.usa-layout-docs__sidenav {\n  padding-top: units(4);\n\n  @include at-media(\"desktop\") {\n    padding-top: 0;\n  }\n\n  // Revert to >3.8.0 behavior and give a warning.\n  @if $theme-sidenav-reorder {\n    @warn $sidenav-reorder-warning;\n\n    &:first-of-type {\n      @include grid-col(12);\n      order: 2;\n\n      @include at-media(\"desktop\") {\n        @include grid-col(3);\n        order: 0;\n      }\n    }\n  }\n}\n","@use \"sass:map\";\n\n@use \"uswds-core\" as *;\n\n/* stylelint-disable */\n\n$namespace-grid: ns(\"grid\");\n\n$custom-breakpoints: map-deep-get($system-properties, breakpoints, extended);\n$all-breakpoints: map-collect($system-breakpoints, $custom-breakpoints);\n\n// basic container\n.#{$namespace-grid}container {\n  $props: append-important($grid-global, $theme-grid-container-max-width);\n  @include grid-container($props);\n}\n\n// container with custom widths\n@each $width-key, $width-value in $all-breakpoints {\n  .#{$namespace-grid}container-#{$width-key} {\n    $props: append-important($grid-global, $width-key);\n    @include grid-container($props);\n  }\n}\n\n// responsive containers...\n@each $mq-key, $mq-value in $all-breakpoints {\n  @if map.get($theme-utility-breakpoints-complete, $mq-key) {\n    @include at-media($mq-key) {\n      .#{$mq-key}#{$separator}#{$namespace-grid}container {\n        $props: append-important($grid-global, desktop);\n        @include grid-container($props);\n      }\n\n      // ...with custom widths\n      @each $width-key, $width-value in $all-breakpoints {\n        .#{$mq-key}#{$separator}#{$namespace-grid}container-#{$width-key} {\n          $props: append-important($grid-global, $width-key);\n          @include grid-container($props);\n        }\n      }\n    }\n  }\n}\n\n// basic row...\n.#{$namespace-grid}row {\n  @include grid-row;\n\n  // ...that includes column gaps\n  &.#{$namespace-grid}gap {\n    @include grid-gap-responsive;\n  }\n  @each $gap-key, $gap-val in map-deep-get($system-properties, gap, standard) {\n    &.#{$namespace-grid}gap-#{$gap-key} {\n      $props: append-important($grid-global, $gap-key);\n      @include grid-gap($props);\n    }\n  }\n\n  // responsive column gaps\n  @each $mq-key, $mq-value in $all-breakpoints {\n    @if map.get($theme-utility-breakpoints-complete, $mq-key) {\n      @include at-media($mq-key) {\n        @each $gap-key,\n          $gap-val in map-deep-get($system-properties, gap, standard)\n        {\n          &.#{$mq-key}#{$separator}#{$namespace-grid}gap-#{$gap-key} {\n            $props: append-important($grid-global, $gap-key);\n            @include grid-gap($props);\n          }\n        }\n      }\n    }\n  }\n}\n\n// basic columns...\n[class*=\"#{$namespace-grid}col\"] {\n  @include u-position(relative);\n  @include u-width(full);\n  box-sizing: border-box;\n}\n\n.#{$namespace-grid}col {\n  $props: append-important($grid-global, fill);\n  @include grid-col($props);\n}\n\n.#{$namespace-grid}col-auto {\n  $props: append-important($grid-global, auto);\n  @include grid-col($props);\n}\n\n.#{$namespace-grid}col-fill {\n  $props: append-important($grid-global, fill);\n  @include grid-col($props);\n}\n\n// ...with widths\n@each $width-key, $width-value in $system-layout-grid-widths {\n  .#{$namespace-grid}col-#{$width-key} {\n    $props: append-important($grid-global, $width-key);\n    @include grid-col($props);\n  }\n}\n\n// responsive columns\n@each $mq-key, $mq-value in $all-breakpoints {\n  @if map.get($theme-utility-breakpoints-complete, $mq-key) {\n    @include at-media($mq-key) {\n      .#{$mq-key}#{$separator}#{$namespace-grid}col {\n        $props: append-important($grid-global, fill);\n        @include grid-col($props);\n      }\n      .#{$mq-key}#{$separator}#{$namespace-grid}col-fill {\n        $props: append-important($grid-global, fill);\n        @include grid-col($props);\n      }\n      .#{$mq-key}#{$separator}#{$namespace-grid}col-auto {\n        $props: append-important($grid-global, auto);\n        @include grid-col($props);\n      }\n\n      @each $width-key, $width-value in $system-layout-grid-widths {\n        .#{$mq-key}#{$separator}#{$namespace-grid}col-#{$width-key} {\n          $props: append-important($grid-global, $width-key);\n          @include grid-col($props);\n        }\n      }\n    }\n  }\n}\n\n// basic offsets\n@each $width-key, $width-value in $system-layout-grid-widths {\n  .#{$namespace-grid}offset-#{$width-key} {\n    $props: append-important($grid-global, $width-key);\n    @include grid-offset($props);\n  }\n}\n.#{$namespace-grid}offset-none {\n  $props: append-important($grid-global, none);\n  @include grid-offset($props);\n}\n\n// responsive offsets\n@each $mq-key, $mq-value in $all-breakpoints {\n  @if map.get($theme-utility-breakpoints-complete, $mq-key) {\n    @each $width-key, $width-value in $system-layout-grid-widths {\n      @include at-media($mq-key) {\n        .#{$mq-key}#{$separator}#{$namespace-grid}offset-#{$width-key} {\n          $props: append-important($grid-global, $width-key);\n          @include grid-offset($props);\n        }\n      }\n    }\n    @include at-media($mq-key) {\n      .#{$mq-key}#{$separator}#{$namespace-grid}offset-none {\n        $props: append-important($grid-global, none);\n        @include grid-offset($props);\n      }\n    }\n  }\n}\n/* stylelint-enable */\n","@use \"uswds-core\" as *;\n\n.usa-media-block {\n  @include u-align-items(\"align-start\");\n  @include u-display(\"flex\");\n}\n\n.usa-media-block__img {\n  @include media-block-img;\n}\n\n.usa-media-block__body {\n  @include u-flex(1);\n}\n","@use \"uswds-core\" as *;\n\n.usa-js-no-click {\n  pointer-events: none;\n  user-select: none;\n\n  .usa-modal,\n  .usa-modal * {\n    pointer-events: auto;\n    user-select: text;\n  }\n}\n\n// Prevents propagation issue in Safari an opener\n// has a child element, and when clicked, prevents\n// intended action\n[data-open-modal] * {\n  pointer-events: none;\n}\n\n.usa-modal-wrapper {\n  text-align: center;\n  transition: opacity $project-easing;\n\n  // Using visibility: hidden instead of display: none because\n  // of iOS VoiceOver issue:\n  // https://developer.paciellogroup.com/blog/2018/06/the-current-state-of-modal-dialog-accessibility/\n  &.is-hidden {\n    visibility: hidden;\n    opacity: opacity(0);\n    position: fixed;\n  }\n\n  &.is-visible {\n    visibility: visible;\n    opacity: opacity(100);\n    position: fixed;\n    z-index: z-index(\"top\");\n  }\n}\n\n.usa-modal-overlay {\n  background: color(\"black-transparent-70\");\n  bottom: 0;\n  height: 100%;\n  left: 0;\n  overflow: scroll;\n  overflow-x: hidden;\n  padding: units(3);\n  position: fixed;\n  scroll-behavior: smooth;\n  top: 0;\n  width: 100%;\n\n  &:before {\n    content: \"\";\n    display: inline-block;\n    height: 100%;\n    vertical-align: middle;\n  }\n\n  &[data-force-action=\"true\"] {\n    pointer-events: none;\n\n    * {\n      pointer-events: auto;\n    }\n  }\n}\n\n// Prevents modals from flickering\n// Still allows content to be accessed\n.usa-js-loading {\n  .usa-modal-wrapper {\n    @include add-sr-only;\n  }\n\n  .usa-modal-wrapper:target {\n    position: static;\n  }\n}\n\n.usa-modal {\n  @include typeset;\n  @include u-radius($theme-modal-border-radius);\n  background: white;\n  @include set-text-from-bg(\"white\");\n  display: inline-block;\n  margin: units(2.5) auto;\n  max-width: units($theme-modal-default-max-width);\n  position: relative;\n  text-align: left;\n  vertical-align: middle;\n  width: 100%;\n\n  &:focus {\n    outline: none;\n  }\n}\n\n.usa-modal__content {\n  display: flex;\n  flex-direction: column-reverse;\n  padding-top: units(4);\n  width: 100%;\n}\n\n.usa-modal__main {\n  margin: 0 auto;\n  padding: units(1) units(4) units(4);\n}\n\n// Prevents JS not recognizing as part of close button.\n.usa-modal-wrapper [data-close-modal] > .usa-icon,\n.usa-modal-wrapper [data-close-modal] > .usa-icon use {\n  pointer-events: none !important;\n}\n\n.usa-modal__close {\n  align-items: center;\n  align-self: flex-end;\n  background-color: transparent;\n  color: color(\"base\");\n  display: flex;\n  flex-shrink: 0;\n  font-size: size(\"ui\", \"2xs\");\n  margin: units(-4) 0 0 auto;\n  padding: units(0.5) units(0.5);\n  width: auto;\n\n  &:hover,\n  &:active {\n    background-color: transparent;\n    color: color(\"ink\");\n  }\n\n  &:focus {\n    outline-offset: 0;\n  }\n\n  .usa-icon {\n    height: units(4);\n    margin: units(2px) units(2px) 0 0;\n    width: units(4);\n  }\n}\n\n.usa-modal__heading {\n  @include u-font(\"heading\", \"lg\");\n  line-height: line-height(\"heading\", 3);\n  margin-top: 0;\n}\n\n.usa-modal__footer {\n  margin-top: units(3);\n}\n\n// Variants\n.usa-modal--lg {\n  max-width: units($theme-modal-lg-max-width);\n  width: 100%;\n\n  .usa-modal__main {\n    padding-bottom: units(8);\n    padding-top: units(2.5);\n    width: 100%;\n    max-width: units($theme-modal-lg-content-max-width);\n  }\n\n  .usa-modal__heading {\n    @include at-media(\"tablet\") {\n      @include u-font(\"heading\", \"xl\");\n    }\n  }\n}\n\n.usa-js-modal--active {\n  overflow: hidden;\n}\n","@use \"sass:math\";\n@use \"sass:list\";\n@use \"sass:color\";\n\n@use \"uswds-core\" as *;\n\n$pagination-context: \"Pagination\";\n$pagination-margin-x: 0.5 !default;\n$pagination-margin-y: 2 !default;\n$pagination-margin-padding: 1 !default;\n$pagination-target-size: 5 !default;\n\n$pagination-current-color: get-color-token-from-bg(\n  $theme-pagination-background-color\n);\n\n$pagination-link-tokens: get-link-tokens-from-bg(\n  $theme-pagination-background-color,\n  $theme-link-reverse-color,\n  $theme-link-color,\n  $context: $pagination-context\n);\n\n$pagination-link-token: list.nth($pagination-link-tokens, 1);\n$pagination-hover-token: list.nth($pagination-link-tokens, 2);\n\n// Pagination\n// ---------------------------------\n.usa-pagination {\n  @include u-margin-y($pagination-margin-y);\n  @include typeset($theme-pagination-font-family);\n  @include set-text-and-bg(\n    $theme-pagination-background-color,\n    $context: $pagination-context\n  );\n  display: flex;\n  justify-content: center;\n}\n\n// TODO: Pull out magic number into vars? Could this better?\n.usa-pagination .usa-icon {\n  height: px-to-rem(18px);\n  width: px-to-rem(18px);\n}\n\n// Shared styles\n// ---------------------------------\n\n// Pagination nav\n// ---------------------------------\n.usa-pagination__list {\n  @include add-list-reset;\n  align-items: center;\n  display: flex;\n  flex-flow: row nowrap;\n  justify-content: center;\n  width: auto;\n}\n\n// Pagination nav items\n// 1. Prevents chromium browsers from adding additional vertical whitespace\n.usa-pagination__item {\n  display: inline-flex; // 1\n  height: units($pagination-target-size);\n  justify-content: center;\n  line-height: 1;\n  margin-left: units($pagination-margin-x);\n  margin-right: units($pagination-margin-x);\n  min-width: units($pagination-target-size);\n\n  @include at-media($theme-pagination-breakpoint) {\n    flex: 1 0 auto; // flex: 1 won't work in IE11\n  }\n}\n\n// Don't show previous and next at mobile.\n// Functionality exists with page buttons.\n.usa-pagination__arrow {\n  display: none;\n  @include at-media($theme-pagination-breakpoint) {\n    display: inherit;\n  }\n}\n\n.usa-pagination__previous-page {\n  @include at-media($theme-pagination-breakpoint) {\n    margin-right: units(math.div($pagination-target-size, 2));\n  }\n}\n\n.usa-pagination__next-page {\n  @include at-media($theme-pagination-breakpoint) {\n    margin-left: units(math.div($pagination-target-size, 2));\n  }\n}\n\n.usa-pagination__link {\n  align-items: center;\n  color: color($pagination-link-token);\n  display: inline-flex;\n\n  &[disabled] {\n    opacity: 0.4 !important;\n    pointer-events: none;\n  }\n\n  &:hover,\n  &:focus,\n  &:active {\n    color: color($pagination-hover-token);\n  }\n\n  &:visited {\n    color: color($pagination-link-token);\n  }\n}\n\n.usa-pagination__button {\n  align-items: center;\n  border-color: color.adjust(color($pagination-current-color), $alpha: -0.8);\n  border-radius: radius($theme-pagination-button-border-radius);\n  border-style: solid;\n  border-width: units($theme-pagination-button-border-width);\n  color: color($pagination-link-token);\n  display: inline-flex;\n  justify-content: center;\n  padding: units($pagination-margin-padding);\n  width: 100%;\n\n  &:hover,\n  &:focus,\n  &:active {\n    color: color($pagination-hover-token);\n    border-color: color($pagination-hover-token);\n\n    @media (forced-colors: active) {\n      border: $border-high-contrast;\n    }\n  }\n}\n\n.usa-pagination .usa-current {\n  $text-color: if(\n    $theme-pagination-background-color == \"default\",\n    $theme-body-background-color,\n    $theme-pagination-background-color\n  );\n  background-color: color($pagination-current-color);\n  border-color: transparent;\n  color: color($text-color);\n\n  @media (forced-colors: active) {\n    border: $border-high-contrast;\n    color: buttonText;\n  }\n\n  &:hover,\n  &:focus,\n  &:active {\n    background-color: color($pagination-current-color);\n    color: color($text-color);\n\n    @media (forced-colors: active) {\n      color: buttontext;\n    }\n  }\n}\n\n.usa-pagination__overflow {\n  align-items: center;\n  align-self: stretch;\n  display: inherit;\n  user-select: none;\n  padding: units($pagination-margin-padding);\n}\n\n// ---------------------------------\n// Variants\n// ---------------------------------\n","@use \"uswds-core\" as *;\n\n// PROCESS LIST\n$theme-process-list-counter-content-padding: calc(\n  (#{units($theme-process-list-counter-size)} / 2) - #{units(0.5)}\n);\n$theme-process-list-counter-line-x-position: calc(\n  (\n    (#{units($theme-process-list-counter-size)} / 2) -\n      (#{units($theme-process-list-connector-width)} / 2)\n  )\n);\n\n@include override-prose {\n  .usa-process-list {\n    @include typeset($theme-process-list-font-family);\n    @include unstyled-list;\n    counter-reset: usa-numbered-list;\n    padding: 20px 0 0 $theme-process-list-counter-line-x-position;\n    position: relative;\n\n    // Use increased specificity to override unstyled-list()\n    & > .usa-process-list__item {\n      @include u-measure(5);\n    }\n  }\n\n  .usa-process-list__item {\n    border-left: units($theme-process-list-connector-width) solid\n      color($theme-process-list-connector-color);\n    font-size: size(\n      $theme-process-list-font-family,\n      $theme-process-list-font-size\n    );\n    margin-bottom: 0;\n    padding-bottom: units(4);\n    padding-left: calc(#{$theme-process-list-counter-content-padding} * 2);\n  }\n}\n\n.usa-process-list__item {\n  &:last-child {\n    border-left: units($theme-process-list-connector-width) solid transparent;\n  }\n\n  &::before {\n    @include u-flex(\"row\", \"align-center\", \"justify-center\");\n    $half-of-font-size: -0.4rem;\n    @include u-circle($theme-process-list-counter-size);\n    background-color: color($theme-process-list-counter-background-color);\n    border: units($theme-process-list-counter-border-width) solid\n      color($theme-process-list-counter-border-color);\n    box-shadow: 0 0 0 units($theme-process-list-counter-gap-width)\n      color($theme-process-list-counter-gap-color);\n    color: color($theme-process-list-counter-text-color);\n    content: counter(usa-numbered-list, decimal);\n    counter-increment: usa-numbered-list;\n    display: flex;\n    font-family: family($theme-process-list-counter-font-family);\n    font-size: size(\n      $theme-process-list-counter-font-family,\n      $theme-process-list-counter-font-size\n    );\n    font-weight: font-weight(\"bold\");\n    height: units($theme-process-list-counter-size);\n    left: 0;\n    line-height: lh($theme-process-list-counter-font-family, 1);\n    margin-top: $half-of-font-size;\n    position: absolute;\n    width: units($theme-process-list-counter-size);\n  }\n\n  ul {\n    list-style-type: disc;\n\n    li {\n      margin-bottom: units(0.5);\n\n      &:last-child {\n        margin-bottom: 0;\n      }\n    }\n  }\n\n  > *:first-child {\n    margin-top: 0;\n  }\n\n  > *:last-child {\n    margin-bottom: 0;\n  }\n}\n\n.usa-process-list__heading {\n  @include typeset(\n    $theme-process-list-heading-font-family,\n    $theme-process-list-heading-font-size,\n    2\n  );\n  color: color($theme-process-list-heading-color);\n  font-family: family($theme-process-list-heading-font-family);\n  font-weight: font-weight(\"bold\");\n  margin: 0;\n\n  & + * {\n    margin-top: units(0.5);\n  }\n}\n","@use \"uswds-core\" as *;\n\n// Map for high contrast search icon\n$search-icon: (\n  \"name\": \"search\",\n  \"color\": ButtonText,\n  \"svg-height\": 20,\n  \"svg-width\": 20,\n  \"height\": units(3),\n);\n\n.usa-search {\n  @include border-box-sizing;\n  @include clearfix;\n  @include typeset($theme-search-font-family);\n  position: relative;\n\n  // if role is in the <form> element (>=2.6.0)...\n  &[role=\"search\"],\n  // if there is a (=2.5.[0,1])...\n  &[role=\"search\"]>div,\n  // ...or if the component has a separate <div[role=\"search\"]> (<=2.4.0)\n  [role=\"search\"] {\n    display: flex;\n  }\n\n  [type=\"submit\"] {\n    border-bottom-left-radius: 0;\n    border-top-left-radius: 0;\n    height: units(4);\n    margin: 0;\n    padding: 0;\n    width: units($theme-button-small-width);\n\n    @include at-media(\"mobile-lg\") {\n      @include u-padding-x(2);\n      width: auto;\n    }\n\n    @media (forced-colors: active) {\n      @include place-icon($search-icon, \"before\");\n\n      &:focus {\n        outline-offset: 0;\n      }\n\n      &::before {\n        @include at-media(\"mobile-lg\") {\n          content: none;\n        }\n      }\n    }\n  }\n\n  &__submit-icon {\n    @include at-media(\"mobile-lg\") {\n      display: none;\n    }\n\n    @media (forced-colors: active) {\n      display: none;\n    }\n  }\n}\n\n.usa-search--big {\n  $height: units(6);\n\n  [type=\"search\"],\n  .usa-search__input {\n    @include at-media(\"mobile-lg\") {\n      font-size: font-size($theme-search-font-family, \"sm\");\n      height: $height;\n    }\n  }\n\n  [type=\"submit\"],\n  .usa-search__submit {\n    @include at-media(\"mobile-lg\") {\n      @include u-padding-x(4);\n      font-size: font-size($theme-search-font-family, \"lg\");\n      height: $height;\n      width: auto;\n    }\n  }\n}\n\n.usa-search--small {\n  [type=\"submit\"],\n  .usa-search__submit {\n    @include u-padding-x(1.5);\n    min-width: units($theme-button-small-width);\n  }\n\n  [type=\"submit\"] {\n    @media (forced-colors: active) {\n      &::before {\n        @include at-media(\"mobile-lg\") {\n          content: \"\";\n        }\n      }\n    }\n  }\n\n  .usa-search__submit-icon {\n    @include u-square(3);\n    display: block;\n\n    @media (forced-colors: active) {\n      display: none;\n    }\n  }\n}\n\n// Extra specificity to override rules set in normalize.css.\ninput[type=\"search\"] {\n  /* stylelint-disable-line selector-no-qualifying-type */\n  box-sizing: border-box;\n  appearance: none;\n}\n\n[type=\"search\"],\n.usa-search__input {\n  @include u-padding-y(0);\n  border-bottom-right-radius: 0;\n  border-right: none;\n  border-top-right-radius: 0;\n  box-sizing: border-box;\n  float: left;\n  font-size: font-size($theme-search-font-family, \"xs\");\n  height: units(4);\n  margin: 0;\n}\n\n.usa-search__submit-text {\n  display: none;\n\n  @include at-media(\"mobile-lg\") {\n    display: block;\n  }\n}\n","@use \"uswds-core\" as *;\n\n$section-context: \"Section\";\n\n.usa-section {\n  @include border-box-sizing;\n  @include u-padding-y($theme-site-margins-width);\n\n  @include at-media(\"tablet\") {\n    @include u-padding-y(8);\n  }\n}\n\n.usa-section--light {\n  background-color: color(\"base-lightest\");\n}\n\n.usa-section--dark {\n  background-color: color(\"primary-darker\");\n  color: color($theme-text-reverse-color);\n\n  h1,\n  h2,\n  h3,\n  h4,\n  h5,\n  h6 {\n    // TODO: This should use a theme-able color,\n    // and should probably default to white\n    color: color(\"accent-cool\");\n  }\n\n  p {\n    color: color($theme-text-reverse-color);\n  }\n\n  a {\n    @include set-link-from-bg(\n      \"primary-darker\",\n      $theme-link-reverse-color,\n      $context: $section-context\n    );\n  }\n}\n","@use \"uswds-core\" as *;\n\n.usa-sidenav {\n  @include border-box-sizing;\n  @include nav-list(\"sidenav\");\n  @include typeset($theme-sidenav-font-family, \"sm\", 3);\n  border-bottom: units(1px) solid color(\"base-lighter\");\n\n  .grid-container & {\n    @include u-margin-x(-$theme-site-margins-mobile-width);\n\n    @include at-media(\"tablet\") {\n      @include u-margin-x(0);\n    }\n  }\n}\n\n.usa-sidenav__sublist {\n  @include nav-sublist;\n  font-size: font-size($theme-sidenav-font-family, \"xs\");\n}\n","@use \"sass:math\";\n@use \"uswds-core\" as *;\n\n// Alert variables ---------- //\n$site-alert-icons: (\n  info: \"info\",\n  emergency: \"error\",\n);\n$site-alert-padding-x-mobile: 2.5;\n$site-alert-padding-x: calc(\n  units($theme-site-margins-width) - units($theme-alert-bar-width) / 2\n);\n\n.usa-site-alert {\n  .usa-alert {\n    @include alert-styles;\n\n    .usa-alert__body {\n      @include u-maxw($theme-site-alert-max-width);\n      @include u-padding-x($site-alert-padding-x-mobile);\n\n      &::before {\n        left: calc(\n          units($site-alert-padding-x-mobile) + $alert-icon-optical-adjust-left\n        );\n      }\n\n      // Align content with site margins at desktop\n      @include at-media($theme-site-margins-breakpoint) {\n        @include u-margin-x(\"auto\");\n        padding-left: $site-alert-padding-x;\n        padding-right: $site-alert-padding-x;\n\n        &::before {\n          left: calc($site-alert-padding-x + $alert-icon-optical-adjust-left);\n        }\n      }\n    }\n  }\n}\n\n@each $name, $icon in $site-alert-icons {\n  .usa-site-alert--#{$name} .usa-alert {\n    @include alert-status-wrapper-styles($name);\n\n    .usa-alert__body {\n      @include alert-status-body-styles($name, $icon);\n    }\n  }\n}\n\n.usa-site-alert--slim .usa-alert {\n  @include alert-styles-slim;\n\n  .usa-alert__body::before {\n    left: calc(\n      units($site-alert-padding-x-mobile) + $alert-slim-icon-optical-adjust-left\n    );\n\n    @include at-media($theme-site-margins-breakpoint) {\n      left: calc($site-alert-padding-x + $alert-slim-icon-optical-adjust-left);\n    }\n  }\n}\n\n.usa-site-alert--no-icon .usa-alert {\n  @include alert-styles-no-icon;\n}\n","@use \"uswds-core\" as *;\n\n.usa-skipnav {\n  @include border-box-sizing;\n  @include typeset;\n  @include typeset-link;\n  background: transparent;\n  left: 0;\n  padding: units(1) units(2);\n  position: absolute;\n  top: -3.8rem; // skipnav link height\n  transition: $project-easing;\n  z-index: z-index(100);\n\n  &:focus,\n  &.usa-focus {\n    background: color(\"white\");\n    left: 0;\n    position: absolute;\n    top: 0;\n    transition: $project-easing;\n  }\n}\n\n.usa-skipnav__container {\n  position: relative;\n}\n","/*\n----------------------------------------\nEasing\n----------------------------------------\n*/\n$project-easing: 0.15s ease-in-out;\n","@use \"sass:math\";\n\n@use \"uswds-core\" as *;\n\n$step-indicator-label-margin-top: 1;\n$step-indicator-margin-bottom: 4;\n$step-indicator-header-margin-top: 4;\n$step-indicator-header-margin-top-sm: 2;\n$step-indicator-segment-height-mobile: 1;\n$step-indicator-counter-size: 5;\n$step-indicator-counter-size-sm: 3;\n\n.usa-step-indicator {\n  @include typeset(\n    $theme-step-indicator-font-family,\n    $theme-step-indicator-label-font-size,\n    2\n  );\n  background-color: color($step-indicator-background-color);\n  margin-bottom: units($step-indicator-margin-bottom);\n  margin-left: math.div(units($theme-step-indicator-segment-gap), -2);\n  margin-right: math.div(units($theme-step-indicator-segment-gap), -2);\n\n  @include at-media($theme-step-indicator-min-width) {\n    @include u-margin-x(0);\n  }\n}\n\n.usa-step-indicator__segments {\n  counter-reset: usa-step-indicator;\n  display: flex;\n  list-style: none;\n  margin: 0;\n  padding: 0;\n}\n\n.usa-step-indicator__segment {\n  @include u-flex(\"fill\");\n  counter-increment: usa-step-indicator;\n  margin-left: math.div(units($theme-step-indicator-segment-gap), 2);\n  margin-right: math.div(units($theme-step-indicator-segment-gap), 2);\n  max-width: units(\"card-lg\");\n  min-height: units($theme-step-indicator-segment-height);\n  position: relative;\n\n  // Add segment\n  &:after {\n    background-color: color($theme-step-indicator-segment-color-pending);\n    content: \"\";\n    display: block;\n    // Use a fixed segment height for mobile regardless of settings\n    height: units($step-indicator-segment-height-mobile);\n    left: 0;\n    position: absolute;\n    right: 0;\n    top: 0;\n\n    @include at-media($theme-step-indicator-min-width) {\n      height: units($theme-step-indicator-segment-height);\n    }\n  }\n}\n\n.usa-step-indicator__segment--complete {\n  &::after {\n    background-color: color($theme-step-indicator-segment-color-complete);\n  }\n  .usa-step-indicator__segment-label {\n    color: color($theme-step-indicator-segment-color-complete);\n  }\n}\n\n.usa-step-indicator__segment--current {\n  &::after {\n    background-color: color($theme-step-indicator-segment-color-current);\n  }\n  .usa-step-indicator__segment-label {\n    color: color($theme-step-indicator-segment-color-current);\n    font-weight: fw(\"bold\");\n  }\n}\n\n.usa-step-indicator__segment-label {\n  display: none;\n  // Show labels only at the min-width\n  @include at-media($theme-step-indicator-min-width) {\n    color: color($theme-step-indicator-text-pending-color);\n    display: block;\n    font-size: size(\n      $theme-step-indicator-font-family,\n      $theme-step-indicator-label-font-size\n    );\n    // Add margin based on segment size\n    margin-top: calc(\n      #{units($theme-step-indicator-segment-height)} +\n        #{units($step-indicator-label-margin-top)}\n    );\n    padding-right: units(4);\n    text-align: left;\n  }\n}\n\n.usa-step-indicator__header {\n  align-items: baseline;\n  display: flex;\n}\n\n.usa-step-indicator__heading {\n  color: color($theme-step-indicator-heading-color);\n  font-family: family($theme-step-indicator-heading-font-family);\n  font-size: size(\n    $theme-step-indicator-heading-font-family,\n    $theme-step-indicator-heading-font-size-small\n  );\n  font-weight: font-weight(\"bold\");\n  margin: units($step-indicator-header-margin-top-sm) 0 0;\n\n  @include at-media($theme-step-indicator-min-width) {\n    font-size: size(\n      $theme-step-indicator-heading-font-family,\n      $theme-step-indicator-heading-font-size\n    );\n    margin-top: units($step-indicator-header-margin-top);\n  }\n}\n\n.usa-step-indicator__current-step {\n  $step-lh: lh($theme-step-indicator-heading-font-family, 2);\n  @include u-circle($step-indicator-counter-size);\n  @include u-text(\"normal\", \"tabular\");\n  background-color: color($theme-step-indicator-segment-color-current);\n  color: color($step-indicator-background-color);\n  display: inline-block;\n  // Magic number circle centering\n  padding: calc(\n    (#{units($step-indicator-counter-size)} - (2ex * #{$step-lh})) * 0.5\n  );\n  text-align: center;\n}\n\n.usa-step-indicator__total-steps {\n  @include u-text(\"normal\", \"tabular\");\n  color: color($theme-step-indicator-segment-color-current);\n  margin-right: units(1);\n}\n\n.usa-step-indicator--counters,\n.usa-step-indicator--counters-sm {\n  .usa-step-indicator__segment {\n    @include at-media($theme-step-indicator-min-width) {\n      $counter-lh: lh($theme-step-indicator-font-family, 1);\n      // Remove segment gaps\n      @include u-margin-x(0);\n\n      // Add extra margin for counter\n      @if $theme-step-indicator-counter-gap == 0 {\n        margin-top: calc(\n          (\n            (\n                #{units($step-indicator-counter-size)} -\n                  #{units($theme-step-indicator-segment-height)}\n              ) /\n              2\n          )\n        );\n      } @else {\n        margin-top: calc(\n          (\n              (\n                  #{units($step-indicator-counter-size)} -\n                    #{units($theme-step-indicator-segment-height)}\n                ) /\n                2\n            ) +\n            #{units($theme-step-indicator-counter-gap)}\n        );\n      }\n\n      // Add counter\n      &:before {\n        @include u-circle($step-indicator-counter-size);\n        @include u-text(\"tabular\");\n        background-color: color($step-indicator-background-color);\n        box-shadow:\n          inset 0 0 0 units($theme-step-indicator-counter-border-width)\n            color($theme-step-indicator-segment-color-pending),\n          0 0 0 units($theme-step-indicator-counter-gap)\n            color($step-indicator-background-color);\n        color: color($theme-step-indicator-text-pending-color);\n        content: counter(usa-step-indicator);\n        display: block;\n        font-weight: fw(\"bold\");\n        left: 0;\n        line-height: lh($theme-step-indicator-font-family, 1);\n        // Magic number circle centering\n        padding: calc(\n          (#{units($step-indicator-counter-size)} - (2ex * #{$counter-lh})) *\n            0.5\n        );\n        // padding: 1.5ex;\n        position: absolute;\n        text-align: center;\n        top: calc(\n          (\n              #{units($step-indicator-counter-size)} -\n                #{units($theme-step-indicator-segment-height)}\n            ) /\n            -2\n        );\n        z-index: z(100);\n      }\n\n      &:last-child {\n        // Don't show the last segment when counters appear\n        &:after {\n          display: none;\n        }\n      }\n    }\n  }\n\n  .usa-step-indicator__segment--complete {\n    &::before {\n      background-color: color($theme-step-indicator-segment-color-complete);\n      box-shadow: 0 0 0 units($theme-step-indicator-counter-gap)\n        color($step-indicator-background-color);\n      color: color($step-indicator-background-color);\n    }\n  }\n\n  .usa-step-indicator__segment--current {\n    &::before {\n      background-color: color($theme-step-indicator-segment-color-current);\n      box-shadow: 0 0 0 units($theme-step-indicator-counter-gap)\n        color($step-indicator-background-color);\n      color: color($step-indicator-background-color);\n    }\n  }\n\n  .usa-step-indicator__segment-label {\n    @include at-media($theme-step-indicator-min-width) {\n      // Add counter margin\n      margin-top: calc(\n        (\n            (\n                #{units($step-indicator-counter-size)} +\n                  #{units($theme-step-indicator-segment-height)}\n              ) /\n              2\n          ) +\n          #{units($step-indicator-label-margin-top)}\n      );\n    }\n  }\n\n  // Adjust segments with centered variant\n  &.usa-step-indicator--center {\n    @include at-media($theme-step-indicator-min-width) {\n      .usa-step-indicator__segment {\n        &:first-child {\n          &:after {\n            left: 50%;\n            right: 0;\n            width: auto;\n          }\n        }\n\n        &:last-child {\n          &:after {\n            display: block;\n            left: 0;\n            right: 50%;\n            width: auto;\n          }\n        }\n      }\n    }\n  }\n}\n\n.usa-step-indicator--counters-sm {\n  .usa-step-indicator__segment {\n    @include at-media($theme-step-indicator-min-width) {\n      $counter-lh: lh($theme-step-indicator-font-family, 1);\n      // Add extra margin for counter\n      @if $theme-step-indicator-counter-gap == 0 {\n        margin-top: calc(\n          (\n            (\n                #{units($step-indicator-counter-size-sm)} -\n                  #{units($theme-step-indicator-segment-height)}\n              ) /\n              2\n          )\n        );\n      } @else {\n        margin-top: calc(\n          (\n              (\n                  #{units($step-indicator-counter-size-sm)} -\n                    #{units($theme-step-indicator-segment-height)}\n                ) /\n                2\n            ) +\n            #{units($theme-step-indicator-counter-gap)}\n        );\n      }\n\n      // Add counter\n      &:before {\n        @include u-circle($step-indicator-counter-size-sm);\n        @include u-font-size($theme-step-indicator-font-family, 3);\n        padding: calc(#{units(0.5)} + 1px);\n        top: calc(\n          (\n              #{units($step-indicator-counter-size-sm)} -\n                #{units($theme-step-indicator-segment-height)}\n            ) /\n            -2\n        );\n      }\n\n      &:last-child {\n        // Don't show the last segment when counters appear\n        &:after {\n          display: none;\n        }\n      }\n    }\n  }\n\n  .usa-step-indicator__segment-label {\n    @include at-media($theme-step-indicator-min-width) {\n      // Add counter margin\n      margin-top: calc(\n        (\n            (\n                #{units($step-indicator-counter-size-sm)} +\n                  #{units($theme-step-indicator-segment-height)}\n              ) /\n              2\n          ) +\n          #{units($step-indicator-label-margin-top)}\n      );\n    }\n  }\n}\n\n.usa-step-indicator--no-labels {\n  margin-left: math.div(units($theme-step-indicator-segment-gap), -2);\n  margin-right: math.div(units($theme-step-indicator-segment-gap), -2);\n\n  .usa-step-indicator__segment {\n    // Remove extra counter margin\n    margin-top: 0;\n    // Add gap between segments\n    margin-left: math.div(units($theme-step-indicator-segment-gap), 2);\n    margin-right: math.div(units($theme-step-indicator-segment-gap), 2);\n\n    &:before {\n      // Don't show counters\n      display: none;\n    }\n\n    &:last-child {\n      // Show last segment\n      &:after {\n        display: block;\n      }\n    }\n  }\n\n  .usa-step-indicator__heading {\n    margin-top: units($step-indicator-header-margin-top-sm);\n  }\n}\n\n.usa-step-indicator--no-labels {\n  .usa-step-indicator__segment-label {\n    // Don't show labels, even if they exist\n    display: none;\n  }\n}\n\n.usa-step-indicator--center {\n  margin-left: math.div(units($theme-step-indicator-segment-gap), -2);\n  margin-right: math.div(units($theme-step-indicator-segment-gap), -2);\n\n  .usa-step-indicator__segment {\n    margin-left: math.div(units($theme-step-indicator-segment-gap), 2);\n    margin-right: math.div(units($theme-step-indicator-segment-gap), 2);\n\n    &:before {\n      @if $theme-step-indicator-counter-gap == 0 {\n        left: calc(50% - ((#{units($step-indicator-counter-size)}) / 2));\n      } @else {\n        left: calc(\n          50% -\n            (\n              (\n                  #{units($step-indicator-counter-size)} +\n                    #{units($theme-step-indicator-counter-gap)}\n                ) /\n                2\n            )\n        );\n      }\n    }\n  }\n\n  .usa-step-indicator__segment-label {\n    // Balance label padding\n    @include u-padding-x(1);\n    // Center labels\n    text-align: center;\n  }\n\n  &.usa-step-indicator--no-labels {\n    .usa-step-indicator__segment {\n      // Use full-width segments\n      &:first-child {\n        &:after {\n          left: 0;\n        }\n      }\n\n      &:last-child {\n        &:after {\n          right: 0;\n        }\n      }\n    }\n  }\n\n  &.usa-step-indicator--counters-sm {\n    .usa-step-indicator__segment {\n      &:before {\n        @if $theme-step-indicator-counter-gap == 0 {\n          left: calc(50% - ((#{units($step-indicator-counter-size-sm)}) / 2));\n        } @else {\n          left: calc(\n            50% -\n              (\n                (\n                    #{units($step-indicator-counter-size-sm)} +\n                      #{units($theme-step-indicator-counter-gap)}\n                  ) /\n                  2\n              )\n          );\n        }\n      }\n    }\n  }\n}\n","@use \"sass:list\";\n\n@use \"uswds-core\" as *;\n\n$summary-box-context: \"Summary Box\";\n\n.usa-summary-box {\n  @include typeset($theme-summary-box-font-family);\n  @include border-box-sizing;\n  @include set-text-and-bg(\n    $theme-summary-box-background-color,\n    $theme-summary-box-text-color,\n    $context: $summary-box-context\n  );\n  @include u-radius($theme-summary-box-border-radius);\n  border: $theme-summary-box-border-width color($theme-summary-box-border-color)\n    solid;\n  padding: units(3);\n  position: relative;\n\n  .usa-list {\n    &:last-child {\n      margin-bottom: 0;\n    }\n  }\n\n  * + & {\n    margin-top: units(2);\n  }\n}\n\n.usa-summary-box__heading {\n  @include typeset($theme-summary-box-font-family, \"lg\", 2);\n  margin-top: 0;\n  margin-bottom: units(1);\n}\n\n.usa-summary-box__text {\n  @include u-margin-y(0);\n}\n\n.usa-summary-box__text:only-child {\n  margin-bottom: $theme-summary-box-border-width;\n  padding-top: units(0.5);\n}\n\n.usa-summary-box__link {\n  @include set-link-from-bg(\n    $theme-summary-box-background-color,\n    $theme-summary-box-link-color,\n    $context: $summary-box-context\n  );\n  &[href^=\"#\"] {\n    $link-tokens: get-link-tokens-from-bg(\n      $theme-summary-box-background-color,\n      $theme-summary-box-link-color,\n      $context: $summary-box-context\n    );\n    &:visited {\n      color: color(list.nth($link-tokens, 1));\n    }\n    &:hover {\n      color: color(list.nth($link-tokens, 2));\n    }\n  }\n}\n","@use \"settings-general\" as general;\n\n/*\n* * * * * ==============================\n* * * * * ==============================\n* * * * * ==============================\n* * * * * ==============================\n========================================\n========================================\n========================================\n----------------------------------------\nCOMPONENT SETTINGS\n----------------------------------------\nRead more about settings and\nUSWDS style tokens in the documentation:\nhttps://designsystem.digital.gov/design-tokens\n----------------------------------------\n*/\n\n// Accordion\n$theme-accordion-background-color: \"default\" !default;\n$theme-accordion-border-color: \"base-lightest\" !default;\n$theme-accordion-border-width: 0.5 !default;\n$theme-accordion-button-background-color: \"base-lightest\" !default;\n$theme-accordion-font-family: \"body\" !default;\n\n// Alert\n$theme-alert-bar-width: 1 !default;\n$theme-alert-font-family: \"ui\" !default;\n$theme-alert-icon-size: 4 !default;\n$theme-alert-padding-x: 2.5 !default;\n$theme-alert-padding-y: 2 !default;\n$theme-alert-text-color: default !default;\n$theme-alert-text-reverse-color: default !default;\n$theme-alert-link-color: default !default;\n$theme-alert-link-reverse-color: default !default;\n\n// Banner\n$theme-banner-background-color: \"base-lightest\" !default;\n$theme-banner-font-family: \"ui\" !default;\n$theme-banner-link-color: default !default;\n$theme-banner-max-width: \"desktop\" !default;\n\n// Breadcrumb\n$theme-breadcrumb-background-color: \"default\" !default;\n$theme-breadcrumb-font-size: \"sm\" !default;\n$theme-breadcrumb-font-family: \"body\" !default;\n$theme-breadcrumb-link-color: default !default;\n$theme-breadcrumb-min-width: \"mobile-lg\" !default;\n$theme-breadcrumb-padding-bottom: 2 !default;\n$theme-breadcrumb-padding-top: 2 !default;\n$theme-breadcrumb-padding-x: 0 !default;\n$theme-breadcrumb-separator-color: \"base\" !default;\n\n// Button\n$theme-button-border-radius: \"md\" !default;\n$theme-button-font-family: \"ui\" !default;\n$theme-button-icon-gap: 1 !default;\n$theme-button-small-width: 6 !default;\n$theme-button-stroke-width: 2px !default;\n\n// Card\n$theme-card-border-color: \"base-lighter\" !default;\n$theme-card-border-radius: \"lg\" !default;\n$theme-card-border-width: 2px !default;\n$theme-card-gap: 2 !default;\n$theme-card-flag-min-width: \"tablet\" !default;\n$theme-card-flag-image-width: \"card-lg\" !default;\n$theme-card-font-family: \"body\" !default;\n$theme-card-header-typeset: \"heading\", \"lg\", 2 !default;\n$theme-card-margin-bottom: 4 !default;\n$theme-card-padding-perimeter: 3 !default;\n$theme-card-padding-y: 2 !default;\n\n// Collection\n$theme-collection-font-family: \"ui\" !default;\n$theme-collection-header-typeset: \"ui\", \"md\", 3 !default;\n\n// Footer\n$theme-footer-font-family: \"body\" !default;\n$theme-footer-max-width: \"desktop\" !default;\n\n// Form and input\n$theme-checkbox-border-radius: \"sm\" !default;\n$theme-form-font-family: \"ui\" !default;\n$theme-input-background-color: default !default;\n$theme-input-line-height: 3 !default;\n$theme-input-max-width: \"mobile-lg\" !default;\n$theme-input-select-border-width: 2px !default;\n$theme-input-select-size: 2.5 !default;\n$theme-input-state-border-width: 0.5 !default;\n$theme-input-tile-border-radius: \"md\" !default;\n$theme-input-tile-border-width: 2px !default;\n\n// Header\n$theme-header-font-family: \"ui\" !default;\n$theme-header-logo-text-width: 33% !default;\n$theme-header-max-width: \"desktop\" !default;\n$theme-header-min-width: \"desktop\" !default;\n\n// Hero\n$theme-hero-image: \"#{general.$theme-image-path}/hero.jpg\" !default;\n\n// Icon List\n$theme-icon-list-font-family: \"body\" !default;\n$theme-icon-list-title-font-family: \"heading\" !default;\n\n// Identifier\n$theme-identifier-background-color: \"base-darkest\" !default;\n$theme-identifier-font-family: \"ui\" !default;\n$theme-identifier-identity-domain-color: \"base-light\" !default;\n$theme-identifier-max-width: \"desktop\" !default;\n$theme-identifier-primary-link-color: default !default;\n$theme-identifier-secondary-link-color: \"base-light\" !default;\n\n// In-Page Navigation\n$theme-in-page-nav-background-color: \"default\" !default;\n$theme-in-page-nav-background-padding: 2 !default;\n$theme-in-page-nav-background-radius: \"lg\" !default;\n$theme-in-page-nav-bar-color: \"default\" !default;\n$theme-in-page-nav-bar-width: \"05\" !default;\n$theme-in-page-nav-font-family: \"ui\" !default;\n$theme-in-page-nav-link-color: \"default\" !default;\n$theme-in-page-nav-main-content-max-width: \"desktop\" !default;\n$theme-in-page-nav-margin-left: 4 !default;\n$theme-in-page-nav-margin-top: 2.5 !default;\n$theme-in-page-nav-top: 4 !default;\n\n// Link\n$theme-external-link-sr-label-tab-new: \"External, opens in a new tab.\" !default;\n$theme-external-link-sr-label-tab-same: \"External.\" !default;\n\n// Modal\n$theme-modal-border-radius: \"lg\" !default;\n$theme-modal-default-max-width: \"mobile-lg\" !default;\n$theme-modal-lg-content-max-width: \"tablet\" !default;\n$theme-modal-lg-max-width: \"tablet-lg\" !default;\n\n// Pagination\n$theme-pagination-background-color: \"default\" !default;\n$theme-pagination-breakpoint: \"tablet\" !default;\n$theme-pagination-button-border-radius: \"md\" !default;\n$theme-pagination-button-border-width: 1px !default;\n$theme-pagination-font-family: \"ui\" !default;\n\n// Process List\n$theme-process-list-counter-background-color: \"white\" !default;\n$theme-process-list-counter-border-color: \"ink\" !default;\n$theme-process-list-counter-border-width: 0.5 !default;\n$theme-process-list-counter-font-family: \"ui\" !default;\n$theme-process-list-counter-font-size: \"lg\" !default;\n$theme-process-list-counter-gap-color: \"white\" !default;\n$theme-process-list-counter-gap-width: 0.5 !default;\n$theme-process-list-counter-size: 5 !default;\n$theme-process-list-counter-text-color: \"ink\" !default;\n$theme-process-list-connector-color: \"primary-lighter\" !default;\n$theme-process-list-connector-width: 1 !default;\n$theme-process-list-font-family: \"ui\" !default;\n$theme-process-list-font-size: \"sm\" !default;\n$theme-process-list-heading-color: \"ink\" !default;\n$theme-process-list-heading-font-family: \"ui\" !default;\n$theme-process-list-heading-font-size: \"lg\" !default;\n\n// Navigation\n$theme-navigation-font-family: \"ui\" !default;\n$theme-megamenu-columns: 3 !default;\n\n// Search\n$theme-search-font-family: \"ui\" !default;\n$theme-search-min-width: 27ch !default;\n\n// Sidenav\n$theme-sidenav-current-border-width: 0.5 !default;\n$theme-sidenav-font-family: \"ui\" !default;\n$theme-sidenav-reorder: false !default;\n\n// Site Alert\n$theme-site-alert-max-width: \"desktop\" !default;\n\n// Step indicator\n$step-indicator-background-color: \"white\" !default;\n$theme-step-indicator-counter-gap: 0.5 !default;\n$theme-step-indicator-counter-border-width: 0.5 !default;\n$theme-step-indicator-font-family: \"ui\" !default;\n$theme-step-indicator-heading-color: \"ink\" !default;\n$theme-step-indicator-heading-font-family: \"ui\" !default;\n$theme-step-indicator-heading-font-size: \"lg\" !default;\n$theme-step-indicator-heading-font-size-small: \"md\" !default;\n$theme-step-indicator-label-font-size: \"sm\" !default;\n$theme-step-indicator-min-width: \"tablet\" !default;\n$theme-step-indicator-segment-color-pending: \"gray-40\" !default;\n$theme-step-indicator-segment-color-complete: \"primary-darker\" !default;\n$theme-step-indicator-segment-color-current: \"primary\" !default;\n$theme-step-indicator-segment-gap: 2px !default;\n$theme-step-indicator-segment-height: 1 !default;\n$theme-step-indicator-text-pending-color: \"base-dark\" !default;\n\n// Summary box\n$theme-summary-box-background-color: \"info-lighter\" !default;\n$theme-summary-box-border-color: \"info-light\" !default;\n$theme-summary-box-border-width: 1px !default;\n$theme-summary-box-border-radius: \"md\" !default;\n$theme-summary-box-font-family: \"ui\" !default;\n$theme-summary-box-link-color: default !default;\n$theme-summary-box-text-color: default !default;\n\n// Table\n$theme-table-background-color: default !default;\n$theme-table-border-color: \"ink\" !default;\n$theme-table-header-background-color: \"base-lighter\" !default;\n$theme-table-header-text-color: default !default;\n$theme-table-stripe-background-color: \"base-lightest\" !default;\n$theme-table-stripe-text-color: default !default;\n$theme-table-text-color: default !default;\n$theme-table-sorted-header-background-color: \"accent-cool-light\" !default;\n$theme-table-sorted-background-color: \"accent-cool-lighter\" !default;\n$theme-table-sorted-stripe-background-color: \"blue-cool-10v\" !default;\n$theme-table-sorted-icon-color: default !default;\n$theme-table-sticky-top-offset: -1px !default;\n$theme-table-unsorted-icon-color: \"base\" !default;\n\n// Tooltips\n$theme-tooltip-background-color: \"ink\" !default;\n$theme-tooltip-font-color: \"base-lightest\" !default;\n$theme-tooltip-font-size: \"xs\" !default;\n","@use \"uswds-core\" as *;\n\n.usa-table {\n  @include usa-table;\n}\n\n.usa-table--borderless {\n  @include usa-table--borderless;\n}\n\n.usa-table--compact {\n  @include usa-table--compact;\n}\n\n.usa-table--striped {\n  @include usa-table--striped;\n}\n\n.usa-table--stacked {\n  @include at-media-max(\"mobile-lg\") {\n    @include table-stacked-styles;\n  }\n}\n\n.usa-table--stacked-header {\n  @include at-media-max(\"mobile-lg\") {\n    @include table-stacked-styles;\n    @include table-stacked-header-styles;\n  }\n}\n\n.width-mobile {\n  .usa-table--stacked {\n    @include usa-table--stacked;\n  }\n\n  .usa-table--stacked-header {\n    @include usa-table--stacked-header;\n  }\n}\n\n.usa-table--sticky-header {\n  @include usa-table--sticky-header;\n}\n\n.usa-table-container--scrollable {\n  @include usa-table-container--scrollable;\n}\n","@use \"uswds-core\" as *;\n\n.usa-tag {\n  @include border-box-sizing;\n  @include u-font(\"ui\", \"2xs\");\n  @include u-text(\"white\", \"uppercase\");\n  background-color: color(\"base-dark\");\n  border-radius: radius(\"sm\");\n  margin-right: units(0.5);\n  padding: units(1px) units(1);\n\n  &:only-of-type {\n    margin-right: 0;\n  }\n}\n\n.usa-tag--big {\n  @include u-padding-x(1);\n  @include u-font(\"ui\", $theme-body-font-size);\n}\n","@use \"uswds-core\" as *;\n\n// Variables\n$triangle-size: 5px;\n\n/// Create a spacer to increase target area for tooltip triangle.\n///\n/// @param {String} $direction - The direction of the tooltip; can be top, bottom, left, right.\n///\n/// @example\n/// @include tooltip-spacer(\"top\");\n///\n/// @output\n/// .usa-tooltip__body--top::before {\n///    top: 100%;\n///    height: 5px;\n///    left: 0;\n///    right: 0;\n///  }\n@mixin tooltip-spacer($direction) {\n  &::before {\n    #{$direction}: 100%;\n\n    @if ($direction == \"left\") or ($direction == \"right\") {\n      bottom: 0;\n      top: 0;\n      width: $triangle-size;\n    } @else {\n      height: $triangle-size;\n      left: 0;\n      right: 0;\n    }\n  }\n}\n\n/* Tooltips */\n.usa-tooltip {\n  display: inline-block;\n  position: relative;\n}\n\n.usa-tooltip__trigger {\n  cursor: pointer;\n\n  > svg {\n    display: block;\n    pointer-events: none;\n  }\n}\n\n.usa-tooltip__body,\n.usa-tooltip__body--top {\n  transition: opacity 0.08s ease-in-out;\n  background-color: color($theme-tooltip-background-color);\n  border-radius: radius($theme-button-border-radius);\n  color: color($theme-tooltip-font-color);\n  display: none;\n  font-size: size(\"ui\", $theme-tooltip-font-size);\n  opacity: 0; // Required for recalculating position.\n  padding: units(1);\n  width: auto;\n  white-space: pre;\n  z-index: 100000;\n  position: absolute;\n  /* positioning is completed with JS */\n\n  &::after {\n    content: \"\";\n    display: block;\n    width: 0;\n    height: 0;\n    border-left: $triangle-size solid transparent;\n    border-right: $triangle-size solid transparent;\n    border-top: $triangle-size solid color($theme-tooltip-background-color);\n    position: absolute;\n    bottom: -$triangle-size;\n    left: 50%;\n    margin-left: -$triangle-size;\n  }\n\n  // This pseudo element fills the gap between the tooltip trigger and body.\n  // Filling this gap allows the tooltip to stay open when the pointer moves\n  // from the tooltip trigger to the body.\n  &::before {\n    content: \"\";\n    display: block;\n    position: absolute;\n  }\n}\n\n.usa-tooltip__body--wrap {\n  width: 100%;\n  white-space: normal;\n  text-align: center;\n  min-width: calc(100vw / 2);\n}\n\n.usa-tooltip__body.is-set {\n  display: block;\n}\n\n.usa-tooltip__body.is-visible {\n  opacity: 1;\n}\n\n.usa-tooltip__body--top {\n  @include tooltip-spacer(\"top\");\n}\n\n.usa-tooltip__body--bottom {\n  @include tooltip-spacer(\"bottom\");\n\n  &::after {\n    border-left: $triangle-size solid transparent;\n    border-right: $triangle-size solid transparent;\n    border-bottom: $triangle-size solid color($theme-tooltip-background-color);\n    border-top: 0;\n    bottom: auto;\n    top: -$triangle-size;\n  }\n}\n\n.usa-tooltip__body--right {\n  @include tooltip-spacer(\"right\");\n\n  &::after {\n    border-top: $triangle-size solid transparent;\n    border-bottom: $triangle-size solid transparent;\n    border-right: $triangle-size solid color($theme-tooltip-background-color);\n    border-left: 0;\n    right: auto;\n    top: 50%;\n    bottom: 0;\n    left: -$triangle-size;\n    margin: -$triangle-size 0 0 0;\n  }\n}\n\n.usa-tooltip__body--left {\n  @include tooltip-spacer(\"left\");\n\n  &::after {\n    border-top: $triangle-size solid transparent;\n    border-bottom: $triangle-size solid transparent;\n    border-left: $triangle-size solid color($theme-tooltip-background-color);\n    border-right: 0;\n    right: -$triangle-size;\n    top: 50%;\n    bottom: 0;\n    left: auto;\n    margin: -$triangle-size 0 0 0;\n  }\n}\n","@use \"uswds-core\" as *;\n\n.usa-character-count__status {\n  display: inline-block;\n  padding-top: units(0.5);\n\n  &.usa-character-count__status--invalid {\n    color: color(\"error-dark\");\n    font-weight: font-weight(\"bold\");\n  }\n}\n","@use \"uswds-core\" as *;\n\n.usa-input {\n  @extend %block-input-general;\n  @extend %block-input-styles;\n\n  &:disabled,\n  &[aria-disabled=\"true\"] {\n    @include u-disabled;\n    @include u-disabled-high-contrast-border;\n    // Fix for Safari\n    -webkit-text-fill-color: color(\"disabled-dark\");\n  }\n}\n\n// Create input max width utility classes\n@each $name, $width in $system-input-widths {\n  .usa-input--#{$name},\n  .usa-form .usa-input--#{$name} {\n    max-width: #{$width};\n  }\n}\n\n.usa-input--error {\n  @include u-border($theme-input-state-border-width, \"error-dark\");\n  padding-top: calc(#{units(1)} - #{units($theme-input-state-border-width)});\n  padding-bottom: calc(#{units(1)} - #{units($theme-input-state-border-width)});\n}\n\n.usa-input--success {\n  @include u-border($theme-input-state-border-width, \"success\");\n  padding-top: calc(#{units(1)} - #{units($theme-input-state-border-width)});\n  padding-bottom: calc(#{units(1)} - #{units($theme-input-state-border-width)});\n}\n","@use \"uswds-core\" as *;\n\n.usa-fieldset {\n  @extend %block-input-general;\n  border: none;\n  margin: 0;\n  padding: 0;\n}\n","@use \"uswds-core\" as *;\n\n.usa-legend {\n  @include add-label-styles;\n}\n\n.usa-legend--large {\n  font-size: font-size($theme-form-font-family, \"xl\");\n  font-weight: font-weight(\"bold\");\n  margin-top: units(2);\n}\n","@use \"../../settings\" as *;\n@use \"../../mixins/typography/typeset\" as *;\n@use \"../../functions/utilities/etc\" as *;\n@use \"../../functions/units/units\" as *;\n\n/// Applies consistent styles to form label and legend elements.\n@mixin add-label-styles() {\n  @include typeset(\n    $theme-form-font-family,\n    $theme-body-font-size,\n    $theme-input-line-height\n  );\n  display: block;\n  font-weight: font-weight(\"normal\");\n  margin-top: units(3);\n  max-width: units($theme-input-max-width);\n}\n","@use \"uswds-core\" as *;\n\n@include override-prose {\n  .usa-input-list {\n    @include add-list-reset;\n\n    li {\n      line-height: line-height(\n        $theme-form-font-family,\n        $theme-input-line-height\n      );\n    }\n  }\n}\n","@use \"sass:color\";\n@use \"sass:list\";\n\n@use \"../../functions\" as *;\n@use \"../../settings\" as *;\n@use \"../../variables/border-high-contrast\" as *;\n@use \"../general/add-background-svg\" as *;\n@use \"format-input\" as *;\n@use \"format-label\" as *;\n\n@mixin checkbox-colors($args...) {\n  @include -checkbox-and-radio-colors($input-type: \"checkbox\", $args...);\n}\n\n@mixin radio-colors($args...) {\n  @include -checkbox-and-radio-colors($input-type: \"radio\", $args...);\n}\n\n// Applies active state colors to tile variant backgrounds and borders.\n// Used by :checked checkbox and radio labels as well as :indeterminate checkboxes.\n//\n// @parameter $input-active-color - active input color determined by -checkbox-and-radio-colors mixin.\n@mixin active-tile-colors($input-active-color) {\n  background-color: color.adjust(color($input-active-color), $alpha: -0.9);\n  border-color: color($input-active-color);\n\n  @media (forced-colors: active) {\n    border: ButtonText solid units(\"05\");\n  }\n}\n\n// Applies active state colors to input backgrounds and borders.\n// Used by :checked checkbox and radio inputs as well as :indeterminate checkboxes.\n//\n// @parameter $input-active-color - active input color determined by -checkbox-and-radio-colors mixin.\n@mixin active-input-colors($input-active-color) {\n  background-color: color($input-active-color);\n  box-shadow: 0 0 0 units($theme-input-select-border-width)\n    color($input-active-color);\n}\n\n@mixin -checkbox-and-radio-colors(\n  $bg-color: $theme-input-background-color,\n  $selected-color: \"default\",\n  $input-type: null\n) {\n  $input-text-color: get-color-token-from-bg($bg-color);\n  $input-text-color-disabled: get-color-token-from-bg(\n    $bg-color,\n    \"disabled\",\n    \"gray-50\"\n  );\n  $input-bg-color: if(\n    $bg-color == \"default\",\n    $theme-body-background-color,\n    $bg-color\n  );\n  $input-active-color: list.nth(\n    get-link-tokens-from-bg($bg-color, $preferred-link-token: $selected-color),\n    1\n  );\n  $input-border-alpha: -0;\n  $tile-border-color: color(\"gray-20\");\n  $tile-border-color--disabled: color(\"gray-10\");\n  $tile-box-shadow--disabled: 0 0 0 units($theme-input-select-border-width)\n    color($input-text-color-disabled);\n  $input-darkmode: if(\n    color.lightness(color($input-bg-color)) < 50%,\n    true,\n    false\n  );\n  $input-checkmark: if($input-darkmode, \"correct8-alt\", \"correct8\");\n  $input-indeterminate: if(\n    $input-darkmode,\n    \"checkbox-indeterminate-alt\",\n    \"checkbox-indeterminate\"\n  );\n\n  .usa-#{$input-type} {\n    background: color($input-bg-color);\n  }\n\n  .usa-#{$input-type}__label {\n    color: color($input-text-color);\n\n    &::before {\n      background: color($input-bg-color);\n      box-shadow: 0 0 0 units($theme-input-select-border-width)\n        color.adjust(color($input-text-color), $alpha: $input-border-alpha);\n\n      @media (forced-colors: active) {\n        outline: $border-high-contrast;\n        outline-offset: 2px;\n      }\n    }\n  }\n  .usa-#{$input-type}__input {\n    &:checked {\n      @include format-input {\n        @include active-input-colors($input-active-color);\n      }\n    }\n    &:disabled,\n    &[aria-disabled=\"true\"] {\n      @include format-label {\n        color: color($input-text-color-disabled);\n        cursor: not-allowed;\n\n        @media (forced-colors: active) {\n          color: GrayText;\n        }\n      }\n      @include format-input {\n        background-color: color($input-bg-color);\n        box-shadow: $tile-box-shadow--disabled;\n      }\n    }\n    &--tile {\n      @include format-label {\n        background-color: color($input-bg-color);\n        border: units($theme-input-tile-border-width) solid $tile-border-color;\n        color: color($input-text-color);\n      }\n      &:checked {\n        @include format-label {\n          @include active-tile-colors($input-active-color);\n        }\n      }\n      &:disabled,\n      &[aria-disabled=\"true\"] {\n        @include format-label {\n          border-color: $tile-border-color--disabled;\n        }\n\n        &:checked,\n        &:indeterminate,\n        &[data-indeterminate] {\n          @include format-label {\n            background-color: color($input-bg-color);\n          }\n        }\n      }\n    }\n  }\n\n  @if $input-type == \"checkbox\" {\n    .usa-checkbox__input {\n      // Adding indeterminate styles here avoids style conflicts from setting in .usa-#{$input-type}__input due to\n      // radio buttons receiving :indeterminate state when none are selected.\n      &:indeterminate,\n      &[data-indeterminate] {\n        @include format-input {\n          @include add-background-svg($input-indeterminate);\n          @include active-input-colors($input-active-color);\n          background-position: center center;\n          background-size: units(1.5) auto;\n\n          @media (forced-colors: active) {\n            @include add-background-svg(\"checkbox-indeterminate-alt\");\n            background-color: color(SelectedItem);\n          }\n        }\n\n        &:disabled,\n        &[aria-disabled=\"true\"] {\n          @include format-input {\n            box-shadow: $tile-box-shadow--disabled;\n          }\n\n          @include format-label {\n            border-color: $tile-border-color--disabled;\n          }\n        }\n      }\n      &--tile {\n        &:indeterminate,\n        &[data-indeterminate] {\n          @include format-label {\n            @include active-tile-colors($input-active-color);\n          }\n        }\n      }\n      &:checked,\n      &:checked:disabled,\n      &:checked[aria-disabled=\"true\"] {\n        @include format-input {\n          @include add-background-svg($input-checkmark);\n        }\n\n        @media (forced-colors: active) {\n          @include format-input {\n            @include add-background-svg(\"correct8-alt\");\n          }\n        }\n      }\n      &:checked:disabled,\n      &:checked[aria-disabled=\"true\"],\n      &:indeterminate:disabled,\n      &:indeterminate[aria-disabled=\"true\"],\n      &[data-indeterminate]:disabled,\n      &[data-indeterminate][aria-disabled=\"true\"] {\n        @include format-input {\n          background-color: color($input-text-color-disabled);\n          @media (forced-colors: active) {\n            background-color: color(GrayText);\n          }\n        }\n      }\n    }\n  }\n\n  @if $input-type == \"radio\" {\n    .usa-radio__input {\n      &:checked {\n        @include format-input {\n          box-shadow:\n            0 0 0 units($theme-input-select-border-width)\n              color($input-active-color),\n            inset 0 0 0 units($theme-input-select-border-width)\n              color($input-bg-color);\n\n          @media (forced-colors: active) {\n            background-color: ButtonText;\n          }\n        }\n      }\n      &:checked:disabled,\n      &:checked[aria-disabled=\"true\"] {\n        @include format-input {\n          background-color: color($input-text-color-disabled);\n          box-shadow:\n            0 0 0 2px color($input-text-color-disabled),\n            inset 0 0 0 2px color($input-bg-color);\n\n          @media (forced-colors: active) {\n            background-color: color(GrayText);\n          }\n        }\n      }\n    }\n  }\n}\n","@mixin format-input {\n  & + [class*=\"__label\"]::before {\n    @content;\n  }\n}\n","@mixin format-label {\n  & + [class*=\"__label\"] {\n    @content;\n  }\n}\n","@use \"sass:math\";\n\n@use \"uswds-core\" as *;\n\n@include checkbox-colors;\n\n.usa-checkbox__input {\n  // The actual input element is only visible to screen readers, because\n  // all visual styling is done via the label.\n  @include sr-only();\n\n  &:focus {\n    @include format-input {\n      @include focus-outline(null, null, null, 0.5);\n    }\n  }\n\n  // Checkboxes and radios with tap-friendly targets\n  &--tile {\n    @include format-label {\n      border-radius: radius($theme-input-tile-border-radius);\n      margin-top: units(1);\n      padding: units(1.5) units(2) units(1.5) units(5);\n\n      &::before {\n        left: units(5) - units($input-select-margin-right) - units(\n            $theme-input-select-size\n          );\n      }\n    }\n  }\n}\n\n.usa-checkbox__input {\n  &:checked {\n    @include format-input {\n      background-position: center center;\n      background-size: units(1.5) auto;\n      @media print {\n        background-image: none;\n        background-color: color(\"white\");\n        content: \"\\2714\";\n        text-align: center;\n      }\n\n      @media (forced-colors: active) {\n        background-color: color(SelectedItem);\n      }\n    }\n  }\n}\n\n.usa-checkbox__label {\n  @extend %block-input-general;\n  cursor: pointer;\n  display: inherit;\n  font-weight: font-weight(\"normal\");\n  margin-top: units(1.5);\n  padding-left: units($input-select-margin-right) +\n    units($theme-input-select-size);\n  position: relative;\n\n  &::before {\n    content: \" \";\n    display: block;\n    left: 0;\n    margin-left: units($theme-input-select-border-width);\n    margin-top: math.div(\n      (\n        line-height($theme-form-font-family, $theme-input-line-height) *\n          font-size($theme-form-font-family, $theme-body-font-size) - units(\n            $theme-input-select-size\n          )\n      ),\n      2\n    );\n    position: absolute;\n  }\n}\n\n.usa-checkbox__label::before {\n  @include u-square($theme-input-select-size);\n  border-radius: radius($theme-checkbox-border-radius);\n}\n\n.usa-checkbox__label-description {\n  display: block;\n  font-size: size(\"ui\", \"2xs\");\n  margin-top: units(1);\n}\n\n// Test code for scoped custom colors\n/*\n.checkbox-tests {\n  @include set-text-and-bg(\"green-80\");\n  @include checkbox-colors(\"green-80\", \"green-warm-10v\");\n  padding: units(2);\n  border-radius: radius(\"md\");\n}\n*/\n","@use \"uswds-core\" as *;\n\n.usa-select {\n  @extend %block-input-general;\n  @extend %block-input-styles;\n  @include add-background-svg(\"usa-icons/unfold_more\");\n  appearance: none;\n  background-color: color(\"white\");\n  background-position: right units(1) center;\n  background-size: units(2.5);\n  padding-right: units(4);\n\n  &::-ms-expand {\n    display: none;\n  }\n\n  // Show default webkit style on select element when autofilled to show icon\n  &:-webkit-autofill {\n    appearance: menulist;\n  }\n\n  // Remove dotted outline from select element on focus in Firefox\n  &:-moz-focusring {\n    color: transparent;\n    text-shadow: 0 0 0 color(\"black\");\n  }\n\n  &[multiple] {\n    height: auto;\n    background-image: none;\n    padding-right: 0;\n  }\n\n  option {\n    overflow: hidden;\n    text-overflow: ellipsis;\n  }\n\n  &:disabled,\n  &[aria-disabled=\"true\"] {\n    @include u-disabled;\n    @include u-disabled-high-contrast-border;\n  }\n\n  // Necessary to show chevron in forced colors mode in modern browsers\n  @media (forced-colors: active) {\n    appearance: listbox; // Default <select> appearance value for modern browsers\n    background-image: none;\n    padding-right: 0;\n  }\n}\n","@use \"uswds-core\" as *;\n\n// Maps for High Contrast Mode\n\n$icon-map: (\n  color: ButtonText,\n  svg-height: 20,\n  svg-width: 20,\n  height: units(2),\n);\n\n$chevron-open: map-merge(\n  $icon-map,\n  (\n    \"name\": \"expand_more\",\n  )\n);\n\n$close: map-merge(\n  $icon-map,\n  (\n    \"name\": \"close\",\n  )\n);\n\n.usa-combo-box {\n  max-width: units($theme-input-max-width);\n  position: relative;\n}\n\n.usa-combo-box--pristine {\n  .usa-combo-box__input {\n    padding-right: calc(5em + 4px);\n\n    &::-ms-clear {\n      display: none;\n    }\n  }\n\n  .usa-combo-box__clear-input {\n    display: block;\n\n    @media (forced-colors: active) {\n      @include add-color-icon($close);\n      height: 1.5rem;\n      width: auto;\n      top: 0.5rem;\n    }\n  }\n}\n\n.usa-combo-box__input {\n  @extend %block-input-general;\n  @extend %block-input-styles;\n  appearance: none;\n  margin-bottom: 0;\n  max-width: none;\n  padding-right: calc(2.5em + 3px);\n\n  &:disabled,\n  &[aria-disabled=\"true\"] {\n    @include u-disabled;\n    @include u-disabled-high-contrast-border;\n\n    // Fix for Safari\n    -webkit-text-fill-color: color(\"disabled-dark\");\n\n    // Placeholder overrides to ensure color contrast compliance accross browsers\n    &::placeholder {\n      opacity: 1;\n    }\n\n    & ~ .usa-combo-box__input-button-separator {\n      background-color: color(\"disabled-dark\");\n      cursor: not-allowed;\n    }\n  }\n}\n\nbutton.usa-combo-box__toggle-list,\nbutton.usa-combo-box__clear-input {\n  &:focus {\n    outline-offset: -4px;\n  }\n\n  &:disabled,\n  &[aria-disabled=\"true\"] {\n    cursor: not-allowed;\n  }\n}\n\n/* stylelint-disable selector-class-pattern */\n.usa-combo-box__toggle-list__wrapper:focus,\n.usa-combo-box__clear-input__wrapper:focus {\n  outline: 0;\n}\n/* stylelint-enable selector-class-pattern */\n\n.usa-combo-box__toggle-list,\n.usa-combo-box__clear-input {\n  background-color: transparent;\n  background-position: center;\n  background-size: auto units(3);\n  border: 0;\n  bottom: 1px;\n  cursor: pointer;\n  margin-bottom: 0;\n  opacity: 0.6;\n  padding-right: units(4);\n  position: absolute;\n  top: 1px;\n  z-index: z-index(100);\n}\n\n.usa-combo-box__clear-input {\n  @include add-background-svg(\"usa-icons/close\");\n  display: none;\n  right: calc(2.5em + 3px);\n}\n\n.usa-combo-box__toggle-list {\n  @include add-background-svg(\"usa-icons/expand_more\");\n  background-size: auto units(4);\n  right: 1px;\n\n  @media (forced-colors: active) {\n    @include add-color-icon($chevron-open);\n    height: auto;\n    width: auto;\n\n    &:disabled,\n    &[aria-disabled=\"true\"] {\n      background-color: color(GrayText);\n    }\n  }\n}\n\n.usa-combo-box__input-button-separator {\n  background-color: color(\"gray-cool-20\");\n  position: absolute;\n  top: 1px;\n  height: calc(100% - #{units(2)});\n  margin-bottom: units(1);\n  margin-top: units(1);\n  width: 1px;\n  right: calc(2.5em + 2px);\n  box-sizing: border-box;\n  z-index: z-index(200);\n\n  @media (forced-colors: active) {\n    background-color: ButtonText;\n  }\n}\n\n.usa-combo-box__list {\n  @extend %block-input-general;\n  @include u-border(1px, \"base-dark\");\n  background-color: color(\"white\");\n  border-radius: 0;\n  border-top: 0;\n  margin: 0;\n  max-height: 12.1em;\n  overflow-x: hidden;\n  overflow-y: scroll;\n  padding: 0;\n  position: absolute;\n  width: 100%;\n  z-index: z-index(300);\n\n  &:focus {\n    outline: 0;\n  }\n}\n\n.usa-combo-box__list-option {\n  border-bottom: units(1px) solid color(\"base-lighter\");\n  cursor: pointer;\n  display: block;\n  padding: units(1);\n\n  &--focused {\n    @include focus-outline($width: 2px, $offset: -2px, $color: \"blue-warm-80v\");\n    position: relative;\n    z-index: z-index(100);\n\n    &:focus {\n      outline-offset: -4px;\n    }\n  }\n\n  &--selected {\n    background-color: color(\"primary\");\n    border-color: color(\"primary\");\n    color: color(\"white\");\n  }\n}\n\n.usa-combo-box__list-option--no-results {\n  cursor: not-allowed;\n  display: block;\n  padding: units(1);\n}\n","@use \"uswds-core\" as *;\n\n$date-picker-max-width: \"mobile\";\n\n// Maps for high contrast mode icons\n\n$calendar-icon-defaults: (\n  \"color\": \"ButtonText\",\n  \"svg-height\": 20,\n  \"svg-width\": 20,\n  \"height\": units(5),\n  \"container-width\": 6,\n);\n\n$calendar: map-merge(\n  $calendar-icon-defaults,\n  (\n    \"name\": \"calendar_today\",\n  )\n);\n\n$navigate_before: map-merge(\n  $calendar-icon-defaults,\n  (\n    \"name\": \"navigate_before\",\n  )\n);\n\n$navigate_far_before: map-merge(\n  $calendar-icon-defaults,\n  (\n    \"name\": \"navigate_far_before\",\n  )\n);\n\n$navigate_next: map-merge(\n  $calendar-icon-defaults,\n  (\n    \"name\": \"navigate_next\",\n  )\n);\n\n$navigate_far_next: map-merge(\n  $calendar-icon-defaults,\n  (\n    \"name\": \"navigate_far_next\",\n  )\n);\n\n// Date Picker\n.usa-date-picker__wrapper {\n  display: none;\n  position: relative;\n  max-width: units($theme-input-max-width);\n\n  &:focus {\n    outline: 0;\n  }\n}\n\n%usa-date-picker__button--disabled {\n  cursor: not-allowed;\n  opacity: opacity(60);\n\n  &:hover {\n    background-color: initial;\n  }\n\n  @media (forced-colors: active) {\n    background-color: color(GrayText);\n\n    &:hover {\n      background-color: color(GrayText);\n    }\n  }\n}\n\n// Date Picker -- initialized\n%usa-date-picker__button {\n  background-color: color(\"base-lightest\");\n  border: 0;\n  width: 100%;\n\n  &:not([disabled]) {\n    cursor: pointer;\n\n    &:focus {\n      outline-offset: -4px;\n    }\n\n    &:hover {\n      background-color: color(\"base-lighter\");\n\n      @media (forced-colors: active) {\n        background-color: buttontext;\n      }\n    }\n\n    &:active {\n      background-color: color(\"base-light\");\n\n      @media (forced-colors: active) {\n        background-color: buttontext;\n      }\n    }\n  }\n\n  &:disabled,\n  &[aria-disabled=\"true\"] {\n    @extend %usa-date-picker__button--disabled;\n  }\n}\n\n.usa-date-picker--active {\n  .usa-date-picker__button {\n    background-color: #f0f0f0;\n\n    @media (forced-colors: active) {\n      background-color: buttontext;\n    }\n  }\n\n  .usa-date-picker__calendar {\n    z-index: z-index(400);\n  }\n}\n\n.usa-date-picker__button {\n  @extend %usa-date-picker__button;\n  @include add-background-svg(\"usa-icons/calendar_today\");\n  align-self: stretch;\n  background-color: transparent;\n  background-position: center;\n  background-size: units(3);\n  margin-top: 0.5em;\n  width: 3em;\n\n  @media (forced-colors: active) {\n    @include add-color-icon($calendar);\n    mask-size: units(3) !important;\n    position: relative;\n\n    &:not([disabled]) {\n      &:focus,\n      &:hover {\n        background-color: Highlight;\n      }\n    }\n  }\n}\n\n.usa-date-picker__external-input[aria-disabled=\"true\"]\n  + .usa-date-picker__button {\n  @extend %usa-date-picker__button--disabled;\n}\n\n.usa-date-picker--initialized {\n  .usa-date-picker__wrapper {\n    display: flex;\n  }\n}\n\n// Date Picker - Calendar View\n.usa-date-picker__calendar {\n  background-color: color(\"base-lightest\");\n  left: auto;\n  max-width: units($date-picker-max-width);\n  position: absolute;\n  right: 0;\n  width: 100%;\n  z-index: z-index(100);\n}\n\n// Date Picker - Table\n/* stylelint-disable selector-class-pattern */\n.usa-date-picker__calendar__table {\n  border-spacing: 0;\n  border-collapse: collapse;\n  table-layout: fixed;\n  text-align: center;\n  width: 100%;\n\n  th {\n    font-weight: normal;\n  }\n\n  td {\n    padding: 0;\n  }\n}\n\n// Date Picker - Grid\n.usa-date-picker__calendar__row {\n  @include grid-row;\n  text-align: center;\n  width: 100%;\n}\n\n.usa-date-picker__calendar__cell {\n  background-color: color(\"base-lightest\");\n  flex: 1;\n}\n\n.usa-date-picker__calendar__cell--center-items {\n  display: flex;\n  justify-content: center;\n  align-items: center;\n\n  @media (forced-colors: active) {\n    &:not([disabled]):hover {\n      outline: $border-high-contrast;\n      outline-offset: -2px;\n    }\n  }\n}\n\n// Date Picker - Date Selection View\n.usa-date-picker__calendar__previous-year,\n.usa-date-picker__calendar__previous-month,\n.usa-date-picker__calendar__next-year,\n.usa-date-picker__calendar__next-month {\n  @extend %usa-date-picker__button;\n  background-position: center;\n  background-size: auto units(3);\n  height: units(3);\n  padding: 20px 10px;\n\n  @media (forced-colors: active) {\n    mask-size: units(3) !important;\n  }\n}\n\n.usa-date-picker__calendar__previous-year:not([disabled]) {\n  @include add-background-svg(\"usa-icons/navigate_far_before\");\n\n  @media (forced-colors: active) {\n    @include add-color-icon($navigate_far_before);\n    background-color: buttonText;\n  }\n}\n\n.usa-date-picker__calendar__previous-month:not([disabled]) {\n  @include add-background-svg(\"usa-icons/navigate_before\");\n\n  @media (forced-colors: active) {\n    @include add-color-icon($navigate_before);\n    background-color: buttonText;\n  }\n}\n\n.usa-date-picker__calendar__next-year:not([disabled]) {\n  @include add-background-svg(\"usa-icons/navigate_far_next\");\n\n  @media (forced-colors: active) {\n    @include add-color-icon($navigate_far_next);\n    background-color: buttonText;\n  }\n}\n\n.usa-date-picker__calendar__next-month:not([disabled]) {\n  @include add-background-svg(\"usa-icons/navigate_next\");\n\n  @media (forced-colors: active) {\n    @include add-color-icon($navigate_next);\n    background-color: buttonText;\n  }\n}\n\n.usa-date-picker__calendar__day-of-week {\n  padding: 6px 0px;\n}\n\n.usa-date-picker__calendar__date {\n  @extend %usa-date-picker__button;\n  padding: 10px 0px;\n\n  &--focused {\n    @include focus-outline($width: 2px, $offset: -2px, $color: \"blue-warm-80v\");\n    position: relative;\n    z-index: z-index(100);\n  }\n\n  &--next-month:not([disabled]),\n  &--previous-month:not([disabled]) {\n    color: color(\"gray-warm-60\");\n  }\n\n  &--selected,\n  &--range-date {\n    background-color: color(\"primary-vivid\");\n    color: color(\"gray-2\");\n\n    &:not([disabled]) {\n      background-color: color(\"primary-vivid\");\n      color: color(\"gray-2\");\n\n      @media (forced-colors: active) {\n        border: ActiveText 2px solid;\n      }\n\n      &:hover {\n        background-color: color(\"primary-vivid\");\n        color: color(\"gray-10\");\n      }\n\n      &:focus {\n        background-color: color(\"primary-vivid\");\n        color: color(\"gray-2\");\n\n        @media (forced-colors: active) {\n          border: ActiveText 2px solid;\n        }\n      }\n\n      &:active {\n        background-color: color(\"primary-dark\");\n\n        @media (forced-colors: active) {\n          background-color: Highlight;\n        }\n      }\n    }\n  }\n\n  &--range-date-start {\n    border-top-left-radius: 10%;\n    border-bottom-left-radius: 10%;\n  }\n\n  &--range-date-end {\n    border-top-right-radius: 10%;\n    border-bottom-right-radius: 10%;\n  }\n\n  &--within-range {\n    background-color: color(\"blue-10v\");\n\n    &:not([disabled]) {\n      background-color: color(\"blue-10v\");\n\n      @media (forced-colors: active) {\n        border: Highlight 2px solid;\n      }\n\n      &:hover {\n        background-color: color(\"blue-10v\");\n\n        @media (forced-colors: active) {\n          border: Highlight 2px solid;\n        }\n      }\n\n      &:focus {\n        background-color: color(\"blue-10v\");\n\n        @media (forced-colors: active) {\n          border: Highlight 2px solid;\n        }\n      }\n\n      &:active {\n        background-color: color(\"blue-10v\");\n\n        @media (forced-colors: active) {\n          background-color: Highlight;\n        }\n      }\n    }\n  }\n}\n\n.usa-date-picker__calendar__month-label {\n  @include at-media-max(\"mobile\") {\n    min-width: 100%;\n    order: -1;\n  }\n\n  @include at-media(\"mobile\") {\n    flex: 4;\n    text-align: center;\n  }\n}\n\n.usa-date-picker__calendar__year-selection,\n.usa-date-picker__calendar__month-selection {\n  @extend %usa-date-picker__button;\n  display: inline-block;\n  height: 100%;\n  padding: 8px 4px;\n  width: auto;\n\n  @include at-media-max(\"mobile\") {\n    padding-bottom: 0;\n    padding-top: 12px;\n  }\n}\n\n// Date Picker - Month Selection View\n.usa-date-picker__calendar__month-picker {\n  padding: 20px 5px;\n\n  @include at-media-max(\"mobile\") {\n    padding-bottom: 12px;\n    padding-top: 12px;\n\n    tr {\n      display: flex;\n      flex-direction: column;\n    }\n  }\n}\n\n.usa-date-picker__calendar__month {\n  @extend %usa-date-picker__button;\n  padding: 10px 0;\n\n  &--focused {\n    @include focus-outline($width: 2px, $offset: -2px, $color: \"blue-warm-80v\");\n    position: relative;\n    z-index: z-index(100);\n  }\n\n  &--selected {\n    background-color: color(\"primary-vivid\");\n    color: color(\"gray-2\");\n\n    &:not([disabled]) {\n      background-color: color(\"primary-vivid\");\n      color: color(\"gray-2\");\n\n      &:hover {\n        background-color: color(\"primary-vivid\");\n        color: color(\"gray-10\");\n      }\n\n      &:focus {\n        background-color: color(\"primary-vivid\");\n        color: color(\"gray-2\");\n      }\n\n      &:active {\n        background-color: color(\"primary-dark\");\n      }\n    }\n  }\n}\n\n// Date Picker - Year Selection View\n.usa-date-picker__calendar__year-picker {\n  padding: 20px 5px;\n}\n\n.usa-date-picker__calendar__previous-year-chunk,\n.usa-date-picker__calendar__next-year-chunk {\n  @extend %usa-date-picker__button;\n  background-position: center;\n  background-size: auto units(4);\n  margin: auto;\n  padding: 40px 0;\n\n  @media (forced-colors: active) {\n    mask-size: units(3) !important;\n  }\n}\n\n.usa-date-picker__calendar__previous-year-chunk:not([disabled]) {\n  @include add-background-svg(\"usa-icons/navigate_before\");\n\n  @media (forced-colors: active) {\n    @include place-icon($navigate-before, \"after\");\n    background-image: none;\n\n    &:hover {\n      border: $border-high-contrast;\n      background-color: transparent;\n    }\n  }\n}\n\n.usa-date-picker__calendar__next-year-chunk:not([disabled]) {\n  @include add-background-svg(\"usa-icons/navigate_next\");\n\n  @media (forced-colors: active) {\n    @include place-icon($navigate-next, \"after\");\n    background-image: none;\n\n    &:hover {\n      border: $border-high-contrast;\n      background-color: transparent;\n    }\n  }\n}\n\n.usa-date-picker__calendar__year {\n  @extend %usa-date-picker__button;\n  padding: 10px 0;\n\n  &--focused {\n    @include focus-outline($width: 2px, $offset: -2px, $color: \"blue-warm-80v\");\n    position: relative;\n    z-index: z-index(100);\n  }\n\n  &--selected {\n    background-color: color(\"primary-vivid\");\n    color: color(\"gray-2\");\n\n    &:not([disabled]) {\n      background-color: color(\"primary-vivid\");\n      color: color(\"gray-2\");\n\n      &:hover {\n        background-color: color(\"primary-vivid\");\n        color: color(\"gray-10\");\n      }\n\n      &:focus {\n        background-color: color(\"primary-vivid\");\n        color: color(\"gray-2\");\n      }\n\n      &:active {\n        background-color: color(\"primary-dark\");\n      }\n    }\n  }\n}\n\n/* stylelint-enable selector-class-pattern */\n","@use \"uswds-core\" as *;\n\n.usa-error-message {\n  @include u-padding-y(0.5);\n  color: color(\"error-dark\");\n  display: block;\n  font-weight: font-weight(\"bold\");\n}\n","@use \"uswds-core\" as *;\n\n[type=\"file\"] {\n  border: none;\n  margin-top: units(1);\n  padding-left: 0;\n  padding-top: 0.2rem; // keeps input vertically centered on error state\n}\n\n.usa-file-input {\n  display: block;\n  max-width: units($theme-input-max-width);\n  width: 100%;\n}\n\n.usa-file-input__target {\n  border: 1px dashed color(\"base-light\");\n  display: block;\n  font-size: size(\"body\", \"2xs\");\n  margin-top: units(1);\n  position: relative;\n  text-align: center;\n  width: 100%;\n\n  &:hover {\n    border-color: color(\"base\");\n  }\n}\n\n.usa-file-input__target.has-invalid-file {\n  border-color: color(\"accent-warm\");\n}\n\n.usa-file-input__accepted-files-message {\n  font-weight: bold;\n  margin: units(-3) 0 units(3);\n  pointer-events: none;\n  position: relative;\n  z-index: 3;\n}\n\n.has-invalid-file .usa-file-input__accepted-files-message {\n  color: color(\"secondary-dark\");\n}\n\n.usa-file-input__choose {\n  @include typeset-link;\n  font-weight: normal;\n}\n\n.usa-file-input__instructions {\n  padding: units(4) units(2);\n  pointer-events: none;\n  position: relative;\n  z-index: 3;\n}\n\n.usa-file-input__box {\n  background: white;\n  height: 100%;\n  left: 0;\n  pointer-events: none;\n  position: absolute;\n  top: 0;\n  width: 100%;\n  z-index: 2;\n}\n\n.usa-file-input .usa-file-input__input[type] {\n  cursor: pointer;\n  height: 100%;\n  left: 0;\n  margin: 0;\n  max-width: none;\n  position: absolute;\n  padding: units(1);\n  text-indent: -999em;\n  top: 0;\n  width: 100%;\n  z-index: 1;\n}\n\n.usa-file-input .usa-file-input__input[type]::-webkit-file-upload-button {\n  display: none;\n}\n\n.usa-file-input--drag .usa-file-input__target {\n  border-color: color(\"primary\");\n}\n\n.usa-file-input--drag .usa-file-input__box {\n  background-color: color(\"primary-lighter\");\n}\n\n.usa-file-input--drag .usa-file-input__preview {\n  opacity: 0.1;\n}\n\n.usa-file-input__preview-heading {\n  align-items: center;\n  background: color(\"primary-lighter\");\n  display: flex;\n  font-weight: bold;\n  justify-content: space-between;\n  padding: units(1);\n  pointer-events: none;\n  position: relative;\n  z-index: 3;\n}\n\n.usa-file-input__preview {\n  align-items: center;\n  background: color(\"primary-lighter\");\n  word-wrap: anywhere;\n  display: flex;\n  font-size: size(\"body\", \"3xs\");\n  margin-top: units(1px);\n  padding: units(0.5) units(1);\n  pointer-events: none;\n  position: relative;\n  text-align: left;\n  z-index: 3;\n\n  &:last-child {\n    margin-bottom: units(-3);\n  }\n}\n\n.usa-file-input__preview-image {\n  border: none;\n  display: block;\n  height: units(5);\n  margin-right: units(1);\n  object-fit: contain;\n  width: units(5);\n}\n\n.usa-file-input__preview-image.is-loading {\n  @include add-background-svg(\"loader\");\n  background-position: center center;\n  background-repeat: no-repeat;\n  background-size: units(4);\n}\n\n.usa-file-input__preview-image--generic,\n.usa-file-input__preview-image--pdf,\n.usa-file-input__preview-image--word,\n.usa-file-input__preview-image--excel,\n.usa-file-input__preview-image--video {\n  background-position: center center;\n  background-repeat: no-repeat;\n  background-size: units(3);\n}\n\n.usa-file-input__preview-image--pdf {\n  @include add-background-svg(\"file-pdf\");\n}\n\n.usa-file-input__preview-image--generic {\n  @include add-background-svg(\"file\");\n}\n\n.usa-file-input__preview-image--word {\n  @include add-background-svg(\"file-word\");\n}\n\n.usa-file-input__preview-image--excel {\n  @include add-background-svg(\"file-excel\");\n}\n\n.usa-file-input__preview-image--video {\n  @include add-background-svg(\"file-video\");\n}\n\n// Error states\n.usa-form-group--error .usa-file-input__target {\n  border-color: color(\"secondary-dark\");\n  border-width: 2px;\n}\n\n// Disabled state\n.usa-file-input--disabled {\n  .usa-file-input__instructions,\n  .usa-file-input__choose {\n    @include set-text-from-bg(\"disabled-lighter\", \"disabled-dark\");\n  }\n\n  .usa-file-input__box {\n    background-color: color(\"disabled-lighter\");\n  }\n\n  .usa-file-input__input[type] {\n    cursor: not-allowed;\n  }\n\n  .usa-file-input__target {\n    &:hover {\n      border-color: color(\"base-light\");\n    }\n  }\n\n  .usa-file-input--drag .usa-file-input__box {\n    background-color: color(\"disabled-lighter\");\n  }\n\n  @media (forced-colors: active) {\n    .usa-file-input__instructions,\n    .usa-file-input__choose {\n      color: color(GrayText);\n    }\n\n    .usa-file-input__target,\n    .usa-file-input__target:hover {\n      border-color: color(GrayText);\n    }\n  }\n}\n","@use \"uswds-core\" as *;\n\n.usa-form-group {\n  margin-top: units(3);\n\n  // Let form-group handle top margin\n  .usa-label:first-child {\n    margin-top: 0;\n  }\n}\n\n// Block input elements\n.usa-form-group--error {\n  @include u-border-left(0.5, \"error-dark\");\n  padding-left: units(2);\n  position: relative;\n\n  @include at-media(\"desktop\") {\n    margin-left: units(-2.5);\n  }\n}\n","@use \"uswds-core\" as *;\n\n.usa-hint {\n  @extend %block-input-general;\n  color: color(\"base\");\n}\n\n.usa-hint--required {\n  color: color(\"error-dark\");\n}\n","@use \"uswds-core\" as *;\n\n// Padding helpers\n$icon-width: 3;\n$input-padding: 1;\n$icon-offset: $icon-width + ($input-padding * 2);\n\n// Input prefixes / suffixes\n.usa-input-group {\n  @extend %block-input-general;\n  @extend %block-input-styles;\n  align-items: center;\n  display: flex;\n  padding: 0;\n  position: relative;\n\n  &--error,\n  &--success {\n    input:focus {\n      outline-offset: units($theme-input-state-border-width);\n    }\n  }\n\n  &--error {\n    @include u-border($theme-input-state-border-width, \"error-dark\");\n  }\n\n  &--success {\n    @include u-border($theme-input-state-border-width, \"success\");\n  }\n\n  // Input suffix padding\n  input {\n    @include u-padding-right($icon-offset);\n    border: 0;\n    height: 100%;\n    margin-top: 0;\n    min-width: 0;\n    width: 100%;\n\n    &:disabled,\n    &[aria-disabled=\"true\"] {\n      & + .usa-input-suffix {\n        @include u-disabled;\n      }\n\n      @media (forced-colors: active) {\n        // Override border from disabled input\n        border: 0;\n      }\n    }\n  }\n\n  // If input is disabled, set usa-input-group border\n  &:has(input:disabled),\n  &:has(input[aria-disabled=\"true\"]) {\n    @include u-disabled-high-contrast-border;\n  }\n}\n\n// Create input group max width utility classes\n@each $name, $width in $system-input-widths {\n  .usa-input-group--#{$name},\n  .usa-form .usa-input-group--#{$name} {\n    max-width: #{$width};\n  }\n}\n\n.usa-input-prefix:has(+ input:disabled),\n.usa-input-prefix:has(+ input[aria-disabled=\"true\"]) {\n  @include u-disabled;\n}\n\n.usa-input-prefix,\n.usa-input-suffix {\n  position: absolute;\n  color: color(\"base\");\n  line-height: 0;\n  padding: 0 units($input-padding);\n  user-select: none;\n  white-space: nowrap;\n\n  .usa-icon {\n    @include u-square($icon-width);\n  }\n}\n\n.usa-input-prefix + input {\n  @include u-padding-left($icon-offset);\n  @include u-padding-right($input-padding);\n}\n\n.usa-input-suffix {\n  right: 0;\n}\n","@use \"uswds-core\" as *;\n\n.usa-input-mask {\n  display: block;\n  position: relative;\n}\n\n.usa-input-mask--content {\n  border: 1px solid transparent;\n  color: color(\"gray-50\");\n  display: block;\n  left: 2px;\n  pointer-events: none;\n  position: absolute;\n  top: 0;\n\n  i {\n    visibility: hidden;\n\n    @media (forced-colors: active) {\n      color: color(ButtonText);\n      font-style: normal;\n      visibility: visible;\n    }\n  }\n\n  @media (forced-colors: active) {\n    border: none;\n  }\n}\n\n.usa-masked,\n.usa-input-mask--content {\n  @include border-box-sizing;\n  background-color: transparent;\n  padding: units(1);\n}\n","@use \"uswds-core\" as *;\n\n.usa-label {\n  @include add-label-styles;\n}\n\n.usa-label--error {\n  font-weight: font-weight(\"bold\");\n  margin-top: 0;\n}\n\n.usa-label--required {\n  color: color(\"error-dark\");\n}\n","@use \"uswds-core\" as *;\n\n.usa-memorable-date {\n  display: flex;\n  flex-wrap: wrap;\n\n  [type=\"number\"] {\n    -moz-appearance: textfield;\n\n    &::-webkit-inner-spin-button {\n      appearance: none;\n    }\n\n    &::-webkit-contacts-auto-fill-button {\n      visibility: hidden;\n      display: none !important;\n      /* stylelint-disable-line declaration-no-important */\n      pointer-events: none;\n      height: 0;\n      width: 0;\n      margin: 0;\n    }\n  }\n\n  .usa-form-group {\n    margin-top: units(2);\n  }\n}\n\n.usa-form-group--day,\n.usa-form-group--month,\n.usa-form-group--year {\n  @include u-flex(auto);\n  margin-right: units(2);\n  width: fit-content;\n}\n\n// Support months that include a text input...\n.usa-form-group--day input,\n.usa-form-group--month input {\n  width: units(6);\n}\n\n// ...and support months that include a select\n.usa-form-group--month select {\n  width: units(card-lg);\n}\n\n.usa-form-group--year input {\n  width: units(9);\n}\n","@use \"sass:math\";\n\n@use \"uswds-core\" as *;\n\n@include radio-colors;\n\n.usa-radio__input {\n  // The actual input element is only visible to screen readers, because\n  // all visual styling is done via the label.\n  @include sr-only();\n\n  &:focus {\n    @include format-input {\n      @include focus-outline(null, null, null, 0.5);\n    }\n  }\n\n  // Checkboxes and radios with tap-friendly targets\n  &--tile {\n    @include format-label {\n      border-radius: radius($theme-input-tile-border-radius);\n      margin-top: units(1);\n      padding: units(1.5) units(2) units(1.5) units(5);\n\n      &::before {\n        left: units(5) - units($input-select-margin-right) - units(\n            $theme-input-select-size\n          );\n      }\n    }\n  }\n}\n\n.usa-radio__input {\n  &:checked {\n    @include format-input {\n      @media print {\n        box-shadow:\n          inset 0 0 0 units($theme-input-select-border-width) color(\"white\"),\n          inset 0 0 0 units(2) color(\"primary\"),\n          0 0 0 units($theme-input-select-border-width) color(\"primary\");\n      }\n    }\n  }\n}\n\n.usa-radio__label {\n  @extend %block-input-general;\n  cursor: pointer;\n  display: inherit;\n  font-weight: font-weight(\"normal\");\n  margin-top: units(1.5);\n  padding-left: units($input-select-margin-right) +\n    units($theme-input-select-size);\n  position: relative;\n\n  &::before {\n    content: \" \";\n    display: block;\n    left: 0;\n    margin-left: units($theme-input-select-border-width);\n    margin-top: math.div(\n      line-height($theme-form-font-family, $theme-input-line-height) *\n        font-size($theme-form-font-family, $theme-body-font-size) - units(\n          $theme-input-select-size\n        ),\n      2\n    );\n    position: absolute;\n  }\n}\n\n.usa-radio__label::before {\n  @include u-circle($theme-input-select-size);\n}\n\n.usa-radio__label-description {\n  display: block;\n  font-size: size(\"ui\", \"2xs\");\n  margin-top: units(1);\n}\n\n// Test code for scoped custom colors\n/*\n.radio-tests {\n  @include set-text-and-bg(\"green-80\");\n  @include radio-colors(\"green-80\", \"green-warm-10v\");\n  padding: units(2);\n  border-radius: radius(\"md\");\n}\n*/\n","@use \"uswds-core\" as *;\n\n@mixin range-focus {\n  background-color: color(\"white\");\n  box-shadow: 0 0 0 units(2px) color($theme-focus-color);\n}\n\n@mixin range-track {\n  background-color: color(\"base-lightest\");\n  border-radius: radius(\"pill\");\n  border: units(1px) solid color(\"base\");\n  cursor: pointer;\n  height: units(2);\n  width: 100%;\n}\n\n@mixin range-thumb {\n  @include u-circle($theme-input-select-size);\n  background: color(\"base-lightest\");\n  border: none;\n  box-shadow: 0 0 0 units($theme-input-select-border-width) color(\"base\");\n  cursor: pointer;\n\n  @media (forced-colors: active) {\n    outline: $border-high-contrast;\n  }\n}\n\n@mixin range-ms-fill {\n  background-color: color(\"base-lightest\");\n  border-radius: radius(\"pill\");\n  border: units(1px) solid color(\"base\");\n}\n\n.usa-range {\n  @extend %block-input-general;\n  @extend %block-input-styles;\n  appearance: none;\n  border: none;\n  padding-left: 1px;\n  width: 100%;\n\n  &:focus {\n    outline: none;\n\n    &::-webkit-slider-thumb {\n      @include range-focus;\n    }\n\n    &::-moz-range-thumb {\n      @include range-focus;\n    }\n\n    &::-ms-thumb {\n      @include range-focus;\n    }\n  }\n\n  &::-webkit-slider-runnable-track {\n    @include range-track;\n  }\n\n  &::-moz-range-track {\n    @include range-track;\n  }\n\n  &::-ms-track {\n    @include range-track;\n  }\n\n  &::-webkit-slider-thumb {\n    @include range-thumb;\n    appearance: none;\n    margin-top: px-to-rem(-3px); // magic number\n  }\n\n  &::-moz-range-thumb {\n    @include range-thumb;\n  }\n\n  &::-ms-thumb {\n    @include range-thumb;\n  }\n\n  &::-ms-fill-lower {\n    @include range-ms-fill;\n  }\n\n  &::-ms-fill-upper {\n    @include range-ms-fill;\n  }\n\n  &:disabled,\n  &[aria-disabled=\"true\"] {\n    // Required for mobile styles\n    opacity: 1;\n\n    &::-webkit-slider-runnable-track {\n      @include u-disabled;\n      @include u-disabled-high-contrast-border;\n    }\n\n    &::-moz-range-track {\n      @include u-disabled;\n      @include u-disabled-high-contrast-border;\n    }\n\n    &::-ms-track {\n      @include u-disabled;\n    }\n\n    &::-webkit-slider-thumb {\n      @include u-disabled;\n    }\n\n    &::-moz-range-thumb {\n      @include u-disabled;\n    }\n\n    &::-ms-thumb {\n      @include u-disabled;\n    }\n\n    &::-ms-fill-lower {\n      @include u-disabled;\n    }\n\n    &::-ms-fill-upper {\n      @include u-disabled;\n    }\n  }\n}\n","@use \"uswds-core\" as *;\n\n.usa-textarea {\n  @extend %block-input-general;\n  @extend %block-input-styles;\n\n  &:disabled,\n  &[aria-disabled=\"true\"] {\n    @include u-disabled;\n    @include u-disabled-high-contrast-border;\n  }\n}\n\n.usa-textarea {\n  height: units(\"card\");\n}\n",".usa-time-picker {\n  width: 10em;\n}\n","/*\n----------------------------------------\nSet basic font rules for the font\nutilities to reference.\n----------------------------------------\n*/\n\n@use \"sass:map\";\n@use \"sass:list\";\n@use \"uswds-core\" as *;\n\n$if-important: \"\";\n\n@if $utilities-use-important {\n  $if-important: \" !important\";\n}\n\n// Generate font rules if the `font` utility is on the uselist\n// and its output is set to true\n@if (\n  (\n      $output-these-utilities ==\n        \"default\" or\n        list.index($output-these-utilities, \"font\")\n    ) and\n    map.get($font-settings-complete, \"output\") ==\n    true\n) {\n  @each $face, $stack in $project-font-stacks {\n    @if $stack {\n      [class*=\"#{ns('utility')}font-#{$face}-\"] {\n        font-family: #{$stack}#{$if-important};\n      }\n    }\n  }\n}\n","/*\n========================================\nASPECT\n----------------------------------------\nusage:\n  .add-aspect-[key]\n----------------------------------------\noutput:\n  aspect-ratio: [value];\n----------------------------------------\nexample:\n  .add-aspect-16x9 {\n    height: inherit;\n    padding: inherit;\n    aspect-ratio: 1.7777777778;\n    max-width: 100%;\n  }\n----------------------------------------\n*/\n@use \"sass:map\";\n@use \"uswds-core/src/styles/settings\" as *;\n@use \"uswds-core/src/styles/variables/aspect-ratios\" as *;\n@use \"uswds-core/src/styles/mixins/general/add-aspect\" as *;\n\n$add-aspect: (\n  add-aspect: (\n    base: \"add-aspect\",\n    modifiers: null,\n    values: (\n      9x16: (\n        slug: \"9x16\",\n        isReadable: true,\n      ),\n      1x1: (\n        slug: \"1x1\",\n        isReadable: true,\n      ),\n      4x3: (\n        slug: \"4x3\",\n        isReadable: true,\n      ),\n      16x9: (\n        slug: \"16x9\",\n        isReadable: true,\n      ),\n      2x1: (\n        slug: \"2x1\",\n        isReadable: true,\n      ),\n    ),\n    settings: $add-aspect-settings-complete,\n    property: \"position\",\n    type: \"object\",\n  ),\n);\n\n@each $aspect-key in map.keys($project-aspect-ratios) {\n  .add-aspect-#{$aspect-key} {\n    @include add-aspect($aspect-key, \"image\");\n  }\n}\n\n// Safari and firefox require a width attribute on img elements for aspect-ratio to work\n// using :where() to reduce specificity in case a width utility class is added\n@supports (aspect-ratio: 1) {\n  :where(img[class*=\"add-aspect-\"]) {\n    width: min-content;\n  }\n}\n","/* stylelint-disable max-nesting-depth */\n\n@use \"sass:map\";\n@use \"sass:meta\";\n@use \"sass:string\";\n@use \"sass:list\";\n\n@use \"../settings\" as *;\n@use \"../properties\" as *;\n@use \"../functions\" as *;\n@use \"../variables/separator\" as *;\n@use \"./helpers\" as *;\n\n/*\n----------------------------------------\n@render-pseudoclass\n----------------------------------------\nBuild a pseucoclass utiliy from values\ncalculated in the @render-utilities-in\nloop\n----------------------------------------\n*/\n\n@mixin render-pseudoclass(\n  $utility,\n  $pseudoclass,\n  $selector,\n  $property,\n  $value,\n  $media-prefix\n) {\n  $important: if($utilities-use-important, \" !important\", null);\n  $this-mq: null;\n\n  .#{$media-prefix}#{$pseudoclass}#{$separator}#{ns(\"utility\")}#{$selector}:#{$pseudoclass} {\n    @each $this-property in $property {\n      #{$this-property}: string.unquote(\"#{$value}#{$important}\");\n    }\n  }\n}\n\n// utility-feature? utility-property\n@mixin add-utility-declaration($declaration, $utility-type, $important) {\n  @each $ext-prop, $ext-value in map.get($declaration, $utility-type) {\n    #{$ext-prop}: string.unquote(\"#{$ext-value}#{$important}\");\n  }\n}\n\n/*\n----------------------------------------\n@render-utility\n----------------------------------------\nBuild a utility from values calculated\nin the @render-utilities-in loop\n----------------------------------------\nTODO: Determine the proper use of\nunquote() in the following. Changed to\naccount for a 'interpolation near\noperators will be simplified in a\nfuture version of Sass' warning.\n----------------------------------------\n*/\n\n@mixin render-utility(\n  $utility,\n  $selector,\n  $property,\n  $value,\n  $val-props,\n  $media-key\n) {\n  $important: if($utilities-use-important, \" !important\", null);\n  $media-prefix: null;\n  $value-is-map: if(meta.type-of($val-props) == \"map\", true, false);\n\n  @if $media-key {\n    $media-prefix: #{$media-key}#{$separator};\n  }\n\n  .#{$media-prefix}#{ns(\"utility\")}#{$selector} {\n    @if $value-is-map and map.has-key($val-props, extend) {\n      @include add-utility-declaration($val-props, extend, $important);\n    }\n\n    @if $value-is-map and map.has-key($val-props, extends) {\n      @extend %#{map.get($val-props, extends)};\n    }\n\n    @each $this-property in $property {\n      #{$this-property}: string.unquote(\"#{$value}#{$important}\");\n    }\n\n    @if map.has-key($utility, extend) {\n      @include add-utility-declaration($utility, extend, $important);\n    }\n  }\n\n  // Add the pseudoclass variants, if applicable\n\n  @if map-deep-get($utility, settings, hover) {\n    @include render-pseudoclass(\n      $utility,\n      hover,\n      $selector,\n      $property,\n      $value,\n      $media-prefix\n    );\n  }\n\n  @if map-deep-get($utility, settings, active) {\n    @include render-pseudoclass(\n      $utility,\n      active,\n      $selector,\n      $property,\n      $value,\n      $media-prefix\n    );\n  }\n\n  @if map-deep-get($utility, settings, visited) {\n    @include render-pseudoclass(\n      $utility,\n      visited,\n      $selector,\n      $property,\n      $value,\n      $media-prefix\n    );\n  }\n\n  @if map-deep-get($utility, settings, focus) {\n    @include render-pseudoclass(\n      $utility,\n      focus,\n      $selector,\n      $property,\n      $value,\n      $media-prefix\n    );\n  }\n}\n\n/*\n----------------------------------------\n@render-utilities-in\n----------------------------------------\nThe master loop that sets the building\nblocks of utilities from the values\nin individual rule settings and loops\nthrough all possible variants\n----------------------------------------\n*/\n\n@mixin these-utilities($utilities, $media-key: false) {\n  // loop through the $utilities\n  @each $utility-name, $utility in $utilities {\n    // Check to see if the utility is in the output uselist\n    @if ($output-these-utilities == \"default\") or\n      list.index($output-these-utilities, $utility-name)\n    {\n      // Only do this if the the utility is meant to output\n      @if not($media-key) or\n        ($media-key and map-deep-get($utility, settings, responsive))\n      {\n        @if map-deep-get($utility, settings, output) {\n          // set intital variants\n          // $property-default is a single value for all these utilities\n\n          $base-props: null;\n          $modifier: null;\n          $selector: null;\n          $property-default: map.get($utility, property);\n          $property: null;\n          $value: null;\n          $our-modifiers: ();\n          $b: null;\n          $v: null;\n          $mv: null;\n          $val-props: ();\n          $no-value: false;\n\n          $b: map.get($utility, base);\n\n          // Each utility rule takes a value, so let's start here\n          // and begin building.\n\n          // -------- For each value in utility.values ----------\n\n          @each $val-key, $val-value in map.get($utility, values) {\n            // If $val-value == null, or if $val-value is a map and\n            // the content key or the dependency key has a null value\n            // set $val-value to `false`...\n\n            @if meta.type-of($val-value) == \"map\" {\n              @if not map.get($val-value, content) {\n                $val-value: false;\n              } @else if\n                map.has-key($val-value, dependency) and not\n                map.get($val-value, dependency)\n              {\n                $val-value: false;\n              }\n            }\n\n            // ...so we can skip building this rule altogether.\n            // So, if $val-value is _not_ false...\n\n            @if $val-value {\n              // Set the value of our rule.\n              // If its a map, use val-value.content.\n\n              $val-slug: if(\n                meta.type-of($val-value) == \"map\",\n                map.get($val-value, \"slug\"),\n                $val-key\n              );\n\n              $value: if(\n                meta.type-of($val-value) == \"map\",\n                map.get($val-value, \"content\"),\n                $val-value\n              );\n\n              @if $val-slug == \"\" or smart-quote($val-slug) == \"noValue\" {\n                $no-value: true;\n              }\n\n              // Add any appended values...\n\n              @if map.get($utility, valueAppend) {\n                $value: $value + map.get($utility, valueAppend);\n              }\n\n              // ...or prepended values.\n\n              @if map.get($utility, valuePrepend) {\n                $value: map.get($utility, valuePrepend) + $value;\n              }\n\n              // And we'll set the $v as $val-slug for use in\n              // constructing the selector (.$b-$m-$v).\n\n              $v: $val-slug;\n\n              // -------- Start of Modifiers ----------\n\n              // Now we'll check for modifiers and loop through them\n              // to get the props we need to build our rule.\n\n              // Modifiers are held in a MAP,\n              // where each individual modifer has the keypair\n              // [slug]:[value]\n\n              // So, check for modifiers.\n\n              @if map.get($utility, modifiers) {\n                // If there are modifiers, capture them as $our-modifiers.\n\n                $our-modifiers: map.get($utility, modifiers);\n              } @else {\n                // If there aren't, build a dummy so we can keep\n                // all our build in the same loop.\n\n                $our-modifiers: (\n                  \"slug\": null,\n                );\n              }\n\n              // OK! C'mon, let's loop!\n              // https://www.youtube.com/watch?v=X9i2i07wPUw\n\n              // -------- For each modifier in $our-modifiers ----------\n\n              @each $mod-key, $mod-val in $our-modifiers {\n                $property: if(\n                  $mod-val == null or $mod-val == \"\",\n                  $property-default,\n                  multi-cat($property-default, $mod-val)\n                );\n\n                // Now we go through to set the $selector.\n\n                // If mod-props.slug is noModifier...\n\n                @if $mod-key ==\n                  \"\" or\n                  $mod-key ==\n                  slug or\n                  smart-quote($mod-key) ==\n                  \"noModifier\"\n                {\n                  // First, we can test to see if the base $b is null\n\n                  @if not $b {\n                    // If it _is_ null, the rule's selector is $v.\n\n                    $selector: $v;\n\n                    // if the value is noValue ('')\n                  } @else if $no-value {\n                    // selector is the base only\n\n                    $selector: $b;\n                  } @else {\n                    // otherwise, selctor is joined with a hyphen.\n\n                    $selector: $b + \"-\" + $v;\n\n                    // Nice! We just took care of the non-modifier cases!\n                  }\n                }\n\n                // If there _is_ a modifier...\n\n                @else {\n                  $mv: if($no-value, $mod-key, $mod-key + \"-\" + $v);\n\n                  // Once we have $mv, test for $b\n                  // and build the selector as before.\n\n                  $selector: if($b == null, $mv, $b + \"-\" + $mv);\n                }\n\n                // finished setting modifier vars\n\n                // Hey. Did we just finish $selector?\n                // And do we also have $property and $value?\n                // We do?!?!?! We do!\n\n                // FINALLY, 'BUILD THE RULE, MAX!'\n                // https://www.youtube.com/watch?v=R3Igz5SfBCE\n\n                @include render-utility(\n                  $utility,\n                  $selector,\n                  $property,\n                  $value,\n                  $val-value,\n                  $media-key\n                );\n              } // end the modifier loop\n            } // end the null value conditional\n          } // end the value loop\n        } // end the output conditional\n      }\n    } // end the uselist conditional\n  } // end the utility loop\n  // (ノ◕ヮ◕)ノ*:・゚✧\n}\n\n@mixin render-utilities-in($utilities) {\n  @include these-utilities($utilities);\n\n  $our-breakpoints: map-deep-get($system-properties, breakpoints, standard);\n  $custom-breakpoints: map-deep-get($system-properties, breakpoints, extended);\n  $all-breakpoints: map-collect($our-breakpoints, $custom-breakpoints);\n  @each $media-key, $media-value in $all-breakpoints {\n    @if (map.get($theme-utility-breakpoints-complete, $media-key)) {\n      @include at-media($media-key) {\n        @include these-utilities($utilities, $media-key);\n      }\n    }\n  }\n}\n\n/* stylelint-enable */\n"]}
\ No newline at end of file
diff --git a/html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-Black.ttf b/html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-Black.ttf
new file mode 100644
index 0000000..b9c28db
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-Black.ttf
Binary files differdiff --git a/html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-Black.woff b/html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-Black.woff
new file mode 100644
index 0000000..9029a90
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-Black.woff
Binary files differdiff --git a/html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-Black.woff2 b/html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-Black.woff2
new file mode 100644
index 0000000..216e131
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-Black.woff2
Binary files differdiff --git a/html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-BlackItalic.ttf b/html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-BlackItalic.ttf
new file mode 100644
index 0000000..f89f61e
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-BlackItalic.ttf
Binary files differdiff --git a/html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-BlackItalic.woff b/html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-BlackItalic.woff
new file mode 100644
index 0000000..de1f538
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-BlackItalic.woff
Binary files differdiff --git a/html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-BlackItalic.woff2 b/html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-BlackItalic.woff2
new file mode 100644
index 0000000..1bdcba3
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-BlackItalic.woff2
Binary files differdiff --git a/html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-Bold.ttf b/html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-Bold.ttf
new file mode 100644
index 0000000..13ff2c3
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-Bold.ttf
Binary files differdiff --git a/html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-Bold.woff b/html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-Bold.woff
new file mode 100644
index 0000000..23f696c
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-Bold.woff
Binary files differdiff --git a/html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-Bold.woff2 b/html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-Bold.woff2
new file mode 100644
index 0000000..b71dc5a
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-Bold.woff2
Binary files differdiff --git a/html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-BoldItalic.ttf b/html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-BoldItalic.ttf
new file mode 100644
index 0000000..e22a874
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-BoldItalic.ttf
Binary files differdiff --git a/html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-BoldItalic.woff b/html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-BoldItalic.woff
new file mode 100644
index 0000000..258eed4
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-BoldItalic.woff
Binary files differdiff --git a/html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-BoldItalic.woff2 b/html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-BoldItalic.woff2
new file mode 100644
index 0000000..36d3abf
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-BoldItalic.woff2
Binary files differdiff --git a/html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-Italic.ttf b/html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-Italic.ttf
new file mode 100644
index 0000000..a407f0a
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-Italic.ttf
Binary files differdiff --git a/html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-Italic.woff b/html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-Italic.woff
new file mode 100644
index 0000000..f75c674
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-Italic.woff
Binary files differdiff --git a/html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-Italic.woff2 b/html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-Italic.woff2
new file mode 100644
index 0000000..0991632
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-Italic.woff2
Binary files differdiff --git a/html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-Light.ttf b/html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-Light.ttf
new file mode 100644
index 0000000..27917b6
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-Light.ttf
Binary files differdiff --git a/html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-Light.woff b/html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-Light.woff
new file mode 100644
index 0000000..c8d43f2
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-Light.woff
Binary files differdiff --git a/html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-Light.woff2 b/html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-Light.woff2
new file mode 100644
index 0000000..a0eadc3
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-Light.woff2
Binary files differdiff --git a/html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-LightItalic.ttf b/html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-LightItalic.ttf
new file mode 100644
index 0000000..eb93446
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-LightItalic.ttf
Binary files differdiff --git a/html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-LightItalic.woff b/html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-LightItalic.woff
new file mode 100644
index 0000000..e8f755a
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-LightItalic.woff
Binary files differdiff --git a/html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-LightItalic.woff2 b/html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-LightItalic.woff2
new file mode 100644
index 0000000..5112dab
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-LightItalic.woff2
Binary files differdiff --git a/html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-Regular.ttf b/html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-Regular.ttf
new file mode 100644
index 0000000..d9462c8
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-Regular.ttf
Binary files differdiff --git a/html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-Regular.woff b/html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-Regular.woff
new file mode 100644
index 0000000..61e8983
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-Regular.woff
Binary files differdiff --git a/html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-Regular.woff2 b/html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-Regular.woff2
new file mode 100644
index 0000000..9a9bd64
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/merriweather/Latin-Merriweather-Regular.woff2
Binary files differdiff --git a/html/matt-chat/uswds/fonts/public-sans/PublicSans-Black.ttf b/html/matt-chat/uswds/fonts/public-sans/PublicSans-Black.ttf
new file mode 100644
index 0000000..edc8ab9
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/public-sans/PublicSans-Black.ttf
Binary files differdiff --git a/html/matt-chat/uswds/fonts/public-sans/PublicSans-Black.woff b/html/matt-chat/uswds/fonts/public-sans/PublicSans-Black.woff
new file mode 100644
index 0000000..97fad2b
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/public-sans/PublicSans-Black.woff
Binary files differdiff --git a/html/matt-chat/uswds/fonts/public-sans/PublicSans-Black.woff2 b/html/matt-chat/uswds/fonts/public-sans/PublicSans-Black.woff2
new file mode 100644
index 0000000..d735f34
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/public-sans/PublicSans-Black.woff2
Binary files differdiff --git a/html/matt-chat/uswds/fonts/public-sans/PublicSans-BlackItalic.ttf b/html/matt-chat/uswds/fonts/public-sans/PublicSans-BlackItalic.ttf
new file mode 100644
index 0000000..afece41
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/public-sans/PublicSans-BlackItalic.ttf
Binary files differdiff --git a/html/matt-chat/uswds/fonts/public-sans/PublicSans-BlackItalic.woff b/html/matt-chat/uswds/fonts/public-sans/PublicSans-BlackItalic.woff
new file mode 100644
index 0000000..18db0ee
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/public-sans/PublicSans-BlackItalic.woff
Binary files differdiff --git a/html/matt-chat/uswds/fonts/public-sans/PublicSans-BlackItalic.woff2 b/html/matt-chat/uswds/fonts/public-sans/PublicSans-BlackItalic.woff2
new file mode 100644
index 0000000..b5e3f60
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/public-sans/PublicSans-BlackItalic.woff2
Binary files differdiff --git a/html/matt-chat/uswds/fonts/public-sans/PublicSans-Bold.ttf b/html/matt-chat/uswds/fonts/public-sans/PublicSans-Bold.ttf
new file mode 100644
index 0000000..41ab785
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/public-sans/PublicSans-Bold.ttf
Binary files differdiff --git a/html/matt-chat/uswds/fonts/public-sans/PublicSans-Bold.woff b/html/matt-chat/uswds/fonts/public-sans/PublicSans-Bold.woff
new file mode 100644
index 0000000..a6ec97c
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/public-sans/PublicSans-Bold.woff
Binary files differdiff --git a/html/matt-chat/uswds/fonts/public-sans/PublicSans-Bold.woff2 b/html/matt-chat/uswds/fonts/public-sans/PublicSans-Bold.woff2
new file mode 100644
index 0000000..ca838bd
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/public-sans/PublicSans-Bold.woff2
Binary files differdiff --git a/html/matt-chat/uswds/fonts/public-sans/PublicSans-BoldItalic.ttf b/html/matt-chat/uswds/fonts/public-sans/PublicSans-BoldItalic.ttf
new file mode 100644
index 0000000..b2b9f10
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/public-sans/PublicSans-BoldItalic.ttf
Binary files differdiff --git a/html/matt-chat/uswds/fonts/public-sans/PublicSans-BoldItalic.woff b/html/matt-chat/uswds/fonts/public-sans/PublicSans-BoldItalic.woff
new file mode 100644
index 0000000..1cfc35b
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/public-sans/PublicSans-BoldItalic.woff
Binary files differdiff --git a/html/matt-chat/uswds/fonts/public-sans/PublicSans-BoldItalic.woff2 b/html/matt-chat/uswds/fonts/public-sans/PublicSans-BoldItalic.woff2
new file mode 100644
index 0000000..3afa99c
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/public-sans/PublicSans-BoldItalic.woff2
Binary files differdiff --git a/html/matt-chat/uswds/fonts/public-sans/PublicSans-ExtraBold.ttf b/html/matt-chat/uswds/fonts/public-sans/PublicSans-ExtraBold.ttf
new file mode 100644
index 0000000..aa4a1bd
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/public-sans/PublicSans-ExtraBold.ttf
Binary files differdiff --git a/html/matt-chat/uswds/fonts/public-sans/PublicSans-ExtraBold.woff b/html/matt-chat/uswds/fonts/public-sans/PublicSans-ExtraBold.woff
new file mode 100644
index 0000000..579209e
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/public-sans/PublicSans-ExtraBold.woff
Binary files differdiff --git a/html/matt-chat/uswds/fonts/public-sans/PublicSans-ExtraBold.woff2 b/html/matt-chat/uswds/fonts/public-sans/PublicSans-ExtraBold.woff2
new file mode 100644
index 0000000..0227e63
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/public-sans/PublicSans-ExtraBold.woff2
Binary files differdiff --git a/html/matt-chat/uswds/fonts/public-sans/PublicSans-ExtraBoldItalic.ttf b/html/matt-chat/uswds/fonts/public-sans/PublicSans-ExtraBoldItalic.ttf
new file mode 100644
index 0000000..c33c75a
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/public-sans/PublicSans-ExtraBoldItalic.ttf
Binary files differdiff --git a/html/matt-chat/uswds/fonts/public-sans/PublicSans-ExtraBoldItalic.woff b/html/matt-chat/uswds/fonts/public-sans/PublicSans-ExtraBoldItalic.woff
new file mode 100644
index 0000000..07d707d
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/public-sans/PublicSans-ExtraBoldItalic.woff
Binary files differdiff --git a/html/matt-chat/uswds/fonts/public-sans/PublicSans-ExtraBoldItalic.woff2 b/html/matt-chat/uswds/fonts/public-sans/PublicSans-ExtraBoldItalic.woff2
new file mode 100644
index 0000000..5342681
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/public-sans/PublicSans-ExtraBoldItalic.woff2
Binary files differdiff --git a/html/matt-chat/uswds/fonts/public-sans/PublicSans-ExtraLight.ttf b/html/matt-chat/uswds/fonts/public-sans/PublicSans-ExtraLight.ttf
new file mode 100644
index 0000000..de5e8e5
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/public-sans/PublicSans-ExtraLight.ttf
Binary files differdiff --git a/html/matt-chat/uswds/fonts/public-sans/PublicSans-ExtraLight.woff b/html/matt-chat/uswds/fonts/public-sans/PublicSans-ExtraLight.woff
new file mode 100644
index 0000000..ef98b70
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/public-sans/PublicSans-ExtraLight.woff
Binary files differdiff --git a/html/matt-chat/uswds/fonts/public-sans/PublicSans-ExtraLight.woff2 b/html/matt-chat/uswds/fonts/public-sans/PublicSans-ExtraLight.woff2
new file mode 100644
index 0000000..b383861
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/public-sans/PublicSans-ExtraLight.woff2
Binary files differdiff --git a/html/matt-chat/uswds/fonts/public-sans/PublicSans-ExtraLightItalic.ttf b/html/matt-chat/uswds/fonts/public-sans/PublicSans-ExtraLightItalic.ttf
new file mode 100644
index 0000000..5b20e08
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/public-sans/PublicSans-ExtraLightItalic.ttf
Binary files differdiff --git a/html/matt-chat/uswds/fonts/public-sans/PublicSans-ExtraLightItalic.woff b/html/matt-chat/uswds/fonts/public-sans/PublicSans-ExtraLightItalic.woff
new file mode 100644
index 0000000..010c3d2
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/public-sans/PublicSans-ExtraLightItalic.woff
Binary files differdiff --git a/html/matt-chat/uswds/fonts/public-sans/PublicSans-ExtraLightItalic.woff2 b/html/matt-chat/uswds/fonts/public-sans/PublicSans-ExtraLightItalic.woff2
new file mode 100644
index 0000000..c371c6e
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/public-sans/PublicSans-ExtraLightItalic.woff2
Binary files differdiff --git a/html/matt-chat/uswds/fonts/public-sans/PublicSans-Italic.ttf b/html/matt-chat/uswds/fonts/public-sans/PublicSans-Italic.ttf
new file mode 100644
index 0000000..b5f0d8b
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/public-sans/PublicSans-Italic.ttf
Binary files differdiff --git a/html/matt-chat/uswds/fonts/public-sans/PublicSans-Italic.woff b/html/matt-chat/uswds/fonts/public-sans/PublicSans-Italic.woff
new file mode 100644
index 0000000..5193fdc
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/public-sans/PublicSans-Italic.woff
Binary files differdiff --git a/html/matt-chat/uswds/fonts/public-sans/PublicSans-Italic.woff2 b/html/matt-chat/uswds/fonts/public-sans/PublicSans-Italic.woff2
new file mode 100644
index 0000000..6f507eb
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/public-sans/PublicSans-Italic.woff2
Binary files differdiff --git a/html/matt-chat/uswds/fonts/public-sans/PublicSans-Light.ttf b/html/matt-chat/uswds/fonts/public-sans/PublicSans-Light.ttf
new file mode 100644
index 0000000..6ed47d0
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/public-sans/PublicSans-Light.ttf
Binary files differdiff --git a/html/matt-chat/uswds/fonts/public-sans/PublicSans-Light.woff b/html/matt-chat/uswds/fonts/public-sans/PublicSans-Light.woff
new file mode 100644
index 0000000..079c8d9
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/public-sans/PublicSans-Light.woff
Binary files differdiff --git a/html/matt-chat/uswds/fonts/public-sans/PublicSans-Light.woff2 b/html/matt-chat/uswds/fonts/public-sans/PublicSans-Light.woff2
new file mode 100644
index 0000000..388d1a2
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/public-sans/PublicSans-Light.woff2
Binary files differdiff --git a/html/matt-chat/uswds/fonts/public-sans/PublicSans-LightItalic.ttf b/html/matt-chat/uswds/fonts/public-sans/PublicSans-LightItalic.ttf
new file mode 100644
index 0000000..dd2e4fb
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/public-sans/PublicSans-LightItalic.ttf
Binary files differdiff --git a/html/matt-chat/uswds/fonts/public-sans/PublicSans-LightItalic.woff b/html/matt-chat/uswds/fonts/public-sans/PublicSans-LightItalic.woff
new file mode 100644
index 0000000..6cca846
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/public-sans/PublicSans-LightItalic.woff
Binary files differdiff --git a/html/matt-chat/uswds/fonts/public-sans/PublicSans-LightItalic.woff2 b/html/matt-chat/uswds/fonts/public-sans/PublicSans-LightItalic.woff2
new file mode 100644
index 0000000..f1645fe
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/public-sans/PublicSans-LightItalic.woff2
Binary files differdiff --git a/html/matt-chat/uswds/fonts/public-sans/PublicSans-Medium.ttf b/html/matt-chat/uswds/fonts/public-sans/PublicSans-Medium.ttf
new file mode 100644
index 0000000..a4944a4
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/public-sans/PublicSans-Medium.ttf
Binary files differdiff --git a/html/matt-chat/uswds/fonts/public-sans/PublicSans-Medium.woff b/html/matt-chat/uswds/fonts/public-sans/PublicSans-Medium.woff
new file mode 100644
index 0000000..48355c0
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/public-sans/PublicSans-Medium.woff
Binary files differdiff --git a/html/matt-chat/uswds/fonts/public-sans/PublicSans-Medium.woff2 b/html/matt-chat/uswds/fonts/public-sans/PublicSans-Medium.woff2
new file mode 100644
index 0000000..6b1db4b
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/public-sans/PublicSans-Medium.woff2
Binary files differdiff --git a/html/matt-chat/uswds/fonts/public-sans/PublicSans-MediumItalic.ttf b/html/matt-chat/uswds/fonts/public-sans/PublicSans-MediumItalic.ttf
new file mode 100644
index 0000000..db842a6
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/public-sans/PublicSans-MediumItalic.ttf
Binary files differdiff --git a/html/matt-chat/uswds/fonts/public-sans/PublicSans-MediumItalic.woff b/html/matt-chat/uswds/fonts/public-sans/PublicSans-MediumItalic.woff
new file mode 100644
index 0000000..69e4022
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/public-sans/PublicSans-MediumItalic.woff
Binary files differdiff --git a/html/matt-chat/uswds/fonts/public-sans/PublicSans-MediumItalic.woff2 b/html/matt-chat/uswds/fonts/public-sans/PublicSans-MediumItalic.woff2
new file mode 100644
index 0000000..20f2224
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/public-sans/PublicSans-MediumItalic.woff2
Binary files differdiff --git a/html/matt-chat/uswds/fonts/public-sans/PublicSans-Regular.ttf b/html/matt-chat/uswds/fonts/public-sans/PublicSans-Regular.ttf
new file mode 100644
index 0000000..2a31b6d
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/public-sans/PublicSans-Regular.ttf
Binary files differdiff --git a/html/matt-chat/uswds/fonts/public-sans/PublicSans-Regular.woff b/html/matt-chat/uswds/fonts/public-sans/PublicSans-Regular.woff
new file mode 100644
index 0000000..fbe27e2
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/public-sans/PublicSans-Regular.woff
Binary files differdiff --git a/html/matt-chat/uswds/fonts/public-sans/PublicSans-Regular.woff2 b/html/matt-chat/uswds/fonts/public-sans/PublicSans-Regular.woff2
new file mode 100644
index 0000000..8895a8e
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/public-sans/PublicSans-Regular.woff2
Binary files differdiff --git a/html/matt-chat/uswds/fonts/public-sans/PublicSans-SemiBold.ttf b/html/matt-chat/uswds/fonts/public-sans/PublicSans-SemiBold.ttf
new file mode 100644
index 0000000..d502ecc
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/public-sans/PublicSans-SemiBold.ttf
Binary files differdiff --git a/html/matt-chat/uswds/fonts/public-sans/PublicSans-SemiBold.woff b/html/matt-chat/uswds/fonts/public-sans/PublicSans-SemiBold.woff
new file mode 100644
index 0000000..6aceff4
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/public-sans/PublicSans-SemiBold.woff
Binary files differdiff --git a/html/matt-chat/uswds/fonts/public-sans/PublicSans-SemiBold.woff2 b/html/matt-chat/uswds/fonts/public-sans/PublicSans-SemiBold.woff2
new file mode 100644
index 0000000..c5ed203
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/public-sans/PublicSans-SemiBold.woff2
Binary files differdiff --git a/html/matt-chat/uswds/fonts/public-sans/PublicSans-SemiBoldItalic.ttf b/html/matt-chat/uswds/fonts/public-sans/PublicSans-SemiBoldItalic.ttf
new file mode 100644
index 0000000..6014319
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/public-sans/PublicSans-SemiBoldItalic.ttf
Binary files differdiff --git a/html/matt-chat/uswds/fonts/public-sans/PublicSans-SemiBoldItalic.woff b/html/matt-chat/uswds/fonts/public-sans/PublicSans-SemiBoldItalic.woff
new file mode 100644
index 0000000..701bd82
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/public-sans/PublicSans-SemiBoldItalic.woff
Binary files differdiff --git a/html/matt-chat/uswds/fonts/public-sans/PublicSans-SemiBoldItalic.woff2 b/html/matt-chat/uswds/fonts/public-sans/PublicSans-SemiBoldItalic.woff2
new file mode 100644
index 0000000..1546981
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/public-sans/PublicSans-SemiBoldItalic.woff2
Binary files differdiff --git a/html/matt-chat/uswds/fonts/public-sans/PublicSans-Thin.ttf b/html/matt-chat/uswds/fonts/public-sans/PublicSans-Thin.ttf
new file mode 100644
index 0000000..4040547
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/public-sans/PublicSans-Thin.ttf
Binary files differdiff --git a/html/matt-chat/uswds/fonts/public-sans/PublicSans-Thin.woff b/html/matt-chat/uswds/fonts/public-sans/PublicSans-Thin.woff
new file mode 100644
index 0000000..2596805
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/public-sans/PublicSans-Thin.woff
Binary files differdiff --git a/html/matt-chat/uswds/fonts/public-sans/PublicSans-Thin.woff2 b/html/matt-chat/uswds/fonts/public-sans/PublicSans-Thin.woff2
new file mode 100644
index 0000000..bedcdee
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/public-sans/PublicSans-Thin.woff2
Binary files differdiff --git a/html/matt-chat/uswds/fonts/public-sans/PublicSans-ThinItalic.ttf b/html/matt-chat/uswds/fonts/public-sans/PublicSans-ThinItalic.ttf
new file mode 100644
index 0000000..1494ada
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/public-sans/PublicSans-ThinItalic.ttf
Binary files differdiff --git a/html/matt-chat/uswds/fonts/public-sans/PublicSans-ThinItalic.woff b/html/matt-chat/uswds/fonts/public-sans/PublicSans-ThinItalic.woff
new file mode 100644
index 0000000..77f5988
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/public-sans/PublicSans-ThinItalic.woff
Binary files differdiff --git a/html/matt-chat/uswds/fonts/public-sans/PublicSans-ThinItalic.woff2 b/html/matt-chat/uswds/fonts/public-sans/PublicSans-ThinItalic.woff2
new file mode 100644
index 0000000..da60962
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/public-sans/PublicSans-ThinItalic.woff2
Binary files differdiff --git a/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-100.ttf b/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-100.ttf
new file mode 100644
index 0000000..05a3db2
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-100.ttf
Binary files differdiff --git a/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-100.woff b/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-100.woff
new file mode 100644
index 0000000..28aa327
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-100.woff
Binary files differdiff --git a/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-100.woff2 b/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-100.woff2
new file mode 100644
index 0000000..ca86ab1
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-100.woff2
Binary files differdiff --git a/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-100italic.ttf b/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-100italic.ttf
new file mode 100644
index 0000000..83c6e92
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-100italic.ttf
Binary files differdiff --git a/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-100italic.woff b/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-100italic.woff
new file mode 100644
index 0000000..90e6886
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-100italic.woff
Binary files differdiff --git a/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-100italic.woff2 b/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-100italic.woff2
new file mode 100644
index 0000000..fe840a7
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-100italic.woff2
Binary files differdiff --git a/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-300.ttf b/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-300.ttf
new file mode 100644
index 0000000..6c101fe
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-300.ttf
Binary files differdiff --git a/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-300.woff b/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-300.woff
new file mode 100644
index 0000000..68d8403
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-300.woff
Binary files differdiff --git a/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-300.woff2 b/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-300.woff2
new file mode 100644
index 0000000..ab64df3
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-300.woff2
Binary files differdiff --git a/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-300italic.ttf b/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-300italic.ttf
new file mode 100644
index 0000000..5de9336
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-300italic.ttf
Binary files differdiff --git a/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-300italic.woff b/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-300italic.woff
new file mode 100644
index 0000000..1513915
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-300italic.woff
Binary files differdiff --git a/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-300italic.woff2 b/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-300italic.woff2
new file mode 100644
index 0000000..5a26303
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-300italic.woff2
Binary files differdiff --git a/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-500.ttf b/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-500.ttf
new file mode 100644
index 0000000..036a990
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-500.ttf
Binary files differdiff --git a/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-500.woff b/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-500.woff
new file mode 100644
index 0000000..b12f6a1
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-500.woff
Binary files differdiff --git a/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-500.woff2 b/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-500.woff2
new file mode 100644
index 0000000..125f098
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-500.woff2
Binary files differdiff --git a/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-500italic.ttf b/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-500italic.ttf
new file mode 100644
index 0000000..a9f33db
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-500italic.ttf
Binary files differdiff --git a/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-500italic.woff b/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-500italic.woff
new file mode 100644
index 0000000..34d9f92
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-500italic.woff
Binary files differdiff --git a/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-500italic.woff2 b/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-500italic.woff2
new file mode 100644
index 0000000..735e9c6
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-500italic.woff2
Binary files differdiff --git a/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-700.ttf b/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-700.ttf
new file mode 100644
index 0000000..f3e223f
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-700.ttf
Binary files differdiff --git a/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-700.woff b/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-700.woff
new file mode 100644
index 0000000..5c09bba
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-700.woff
Binary files differdiff --git a/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-700.woff2 b/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-700.woff2
new file mode 100644
index 0000000..d4c3305
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-700.woff2
Binary files differdiff --git a/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-700italic.ttf b/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-700italic.ttf
new file mode 100644
index 0000000..5a57b3c
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-700italic.ttf
Binary files differdiff --git a/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-700italic.woff b/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-700italic.woff
new file mode 100644
index 0000000..2529fa7
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-700italic.woff
Binary files differdiff --git a/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-700italic.woff2 b/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-700italic.woff2
new file mode 100644
index 0000000..9efd8eb
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-700italic.woff2
Binary files differdiff --git a/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-italic.ttf b/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-italic.ttf
new file mode 100644
index 0000000..2fceb2f
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-italic.ttf
Binary files differdiff --git a/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-italic.woff b/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-italic.woff
new file mode 100644
index 0000000..5476b4e
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-italic.woff
Binary files differdiff --git a/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-italic.woff2 b/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-italic.woff2
new file mode 100644
index 0000000..e03ab45
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-italic.woff2
Binary files differdiff --git a/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-regular.ttf b/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-regular.ttf
new file mode 100644
index 0000000..27363d1
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-regular.ttf
Binary files differdiff --git a/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-regular.woff b/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-regular.woff
new file mode 100644
index 0000000..0ea5db8
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-regular.woff
Binary files differdiff --git a/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-regular.woff2 b/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-regular.woff2
new file mode 100644
index 0000000..6163de7
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/roboto-mono/roboto-mono-v5-latin-regular.woff2
Binary files differdiff --git a/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-black-webfont.ttf b/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-black-webfont.ttf
new file mode 100644
index 0000000..1b79045
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-black-webfont.ttf
Binary files differdiff --git a/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-black-webfont.woff b/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-black-webfont.woff
new file mode 100644
index 0000000..5b50e63
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-black-webfont.woff
Binary files differdiff --git a/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-black-webfont.woff2 b/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-black-webfont.woff2
new file mode 100644
index 0000000..97bfa7a
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-black-webfont.woff2
Binary files differdiff --git a/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-blackitalic-webfont.ttf b/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-blackitalic-webfont.ttf
new file mode 100644
index 0000000..8fbf06d
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-blackitalic-webfont.ttf
Binary files differdiff --git a/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-blackitalic-webfont.woff b/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-blackitalic-webfont.woff
new file mode 100644
index 0000000..8982c49
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-blackitalic-webfont.woff
Binary files differdiff --git a/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-blackitalic-webfont.woff2 b/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-blackitalic-webfont.woff2
new file mode 100644
index 0000000..8078928
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-blackitalic-webfont.woff2
Binary files differdiff --git a/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-bold-webfont.ttf b/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-bold-webfont.ttf
new file mode 100644
index 0000000..a1147fe
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-bold-webfont.ttf
Binary files differdiff --git a/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-bold-webfont.woff b/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-bold-webfont.woff
new file mode 100644
index 0000000..67f86c2
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-bold-webfont.woff
Binary files differdiff --git a/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-bold-webfont.woff2 b/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-bold-webfont.woff2
new file mode 100644
index 0000000..24e4f50
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-bold-webfont.woff2
Binary files differdiff --git a/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-bolditalic-webfont.ttf b/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-bolditalic-webfont.ttf
new file mode 100644
index 0000000..14a9541
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-bolditalic-webfont.ttf
Binary files differdiff --git a/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-bolditalic-webfont.woff b/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-bolditalic-webfont.woff
new file mode 100644
index 0000000..f18e667
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-bolditalic-webfont.woff
Binary files differdiff --git a/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-bolditalic-webfont.woff2 b/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-bolditalic-webfont.woff2
new file mode 100644
index 0000000..f2c30fa
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-bolditalic-webfont.woff2
Binary files differdiff --git a/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-extralight-webfont.ttf b/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-extralight-webfont.ttf
new file mode 100644
index 0000000..6b9bd79
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-extralight-webfont.ttf
Binary files differdiff --git a/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-extralight-webfont.woff b/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-extralight-webfont.woff
new file mode 100644
index 0000000..fa66d49
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-extralight-webfont.woff
Binary files differdiff --git a/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-extralight-webfont.woff2 b/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-extralight-webfont.woff2
new file mode 100644
index 0000000..a18eefb
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-extralight-webfont.woff2
Binary files differdiff --git a/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-extralightitalic-webfont.ttf b/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-extralightitalic-webfont.ttf
new file mode 100644
index 0000000..1596882
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-extralightitalic-webfont.ttf
Binary files differdiff --git a/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-extralightitalic-webfont.woff b/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-extralightitalic-webfont.woff
new file mode 100644
index 0000000..815f93c
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-extralightitalic-webfont.woff
Binary files differdiff --git a/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-extralightitalic-webfont.woff2 b/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-extralightitalic-webfont.woff2
new file mode 100644
index 0000000..15f0dd6
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-extralightitalic-webfont.woff2
Binary files differdiff --git a/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-italic-webfont.ttf b/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-italic-webfont.ttf
new file mode 100644
index 0000000..65e63d3
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-italic-webfont.ttf
Binary files differdiff --git a/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-italic-webfont.woff b/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-italic-webfont.woff
new file mode 100644
index 0000000..3410cbc
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-italic-webfont.woff
Binary files differdiff --git a/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-italic-webfont.woff2 b/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-italic-webfont.woff2
new file mode 100644
index 0000000..9f3d584
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-italic-webfont.woff2
Binary files differdiff --git a/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-light-webfont.ttf b/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-light-webfont.ttf
new file mode 100644
index 0000000..df4ce28
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-light-webfont.ttf
Binary files differdiff --git a/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-light-webfont.woff b/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-light-webfont.woff
new file mode 100644
index 0000000..c26af98
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-light-webfont.woff
Binary files differdiff --git a/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-light-webfont.woff2 b/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-light-webfont.woff2
new file mode 100644
index 0000000..cab9b36
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-light-webfont.woff2
Binary files differdiff --git a/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-lightitalic-webfont.ttf b/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-lightitalic-webfont.ttf
new file mode 100644
index 0000000..9468da5
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-lightitalic-webfont.ttf
Binary files differdiff --git a/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-lightitalic-webfont.woff b/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-lightitalic-webfont.woff
new file mode 100644
index 0000000..1b7a5e8
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-lightitalic-webfont.woff
Binary files differdiff --git a/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-lightitalic-webfont.woff2 b/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-lightitalic-webfont.woff2
new file mode 100644
index 0000000..6d7df0e
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-lightitalic-webfont.woff2
Binary files differdiff --git a/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-regular-webfont.ttf b/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-regular-webfont.ttf
new file mode 100644
index 0000000..23b0fac
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-regular-webfont.ttf
Binary files differdiff --git a/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-regular-webfont.woff b/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-regular-webfont.woff
new file mode 100644
index 0000000..a5fff7d
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-regular-webfont.woff
Binary files differdiff --git a/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-regular-webfont.woff2 b/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-regular-webfont.woff2
new file mode 100644
index 0000000..802b8be
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-regular-webfont.woff2
Binary files differdiff --git a/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-semibold-webfont.ttf b/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-semibold-webfont.ttf
new file mode 100644
index 0000000..2e2d73b
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-semibold-webfont.ttf
Binary files differdiff --git a/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-semibold-webfont.woff b/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-semibold-webfont.woff
new file mode 100644
index 0000000..9cebbb6
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-semibold-webfont.woff
Binary files differdiff --git a/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-semibold-webfont.woff2 b/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-semibold-webfont.woff2
new file mode 100644
index 0000000..33a7543
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-semibold-webfont.woff2
Binary files differdiff --git a/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-semibolditalic-webfont.ttf b/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-semibolditalic-webfont.ttf
new file mode 100644
index 0000000..585e6b0
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-semibolditalic-webfont.ttf
Binary files differdiff --git a/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-semibolditalic-webfont.woff b/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-semibolditalic-webfont.woff
new file mode 100644
index 0000000..aa7d0a1
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-semibolditalic-webfont.woff
Binary files differdiff --git a/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-semibolditalic-webfont.woff2 b/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-semibolditalic-webfont.woff2
new file mode 100644
index 0000000..5bae4ec
--- /dev/null
+++ b/html/matt-chat/uswds/fonts/source-sans-pro/sourcesanspro-semibolditalic-webfont.woff2
Binary files differdiff --git a/html/matt-chat/uswds/img/checkbox-indeterminate-alt.svg b/html/matt-chat/uswds/img/checkbox-indeterminate-alt.svg
new file mode 100644
index 0000000..33b1084
--- /dev/null
+++ b/html/matt-chat/uswds/img/checkbox-indeterminate-alt.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" viewBox="0 0 64 64"><path fill-rule="evenodd" d="M2.9 35.9c0 1.1.4 2 1.2 2.8s1.7 1.2 2.8 1.2h50.2c1.1 0 2-.4 2.8-1.2s1.2-1.7 1.2-2.8V28c0-1.1-.4-2-1.2-2.8S58.2 24 57.1 24H6.9c-1.1 0-2 .4-2.8 1.2S2.9 26.9 2.9 28z" clip-rule="evenodd"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/checkbox-indeterminate.svg b/html/matt-chat/uswds/img/checkbox-indeterminate.svg
new file mode 100644
index 0000000..d0ed7fe
--- /dev/null
+++ b/html/matt-chat/uswds/img/checkbox-indeterminate.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" viewBox="0 0 64 64"><path fill="#FFF" fill-rule="evenodd" d="M2.9 35.9c0 1.1.4 2 1.2 2.8s1.7 1.2 2.8 1.2h50.2c1.1 0 2-.4 2.8-1.2s1.2-1.7 1.2-2.8V28c0-1.1-.4-2-1.2-2.8S58.2 24 57.1 24H6.9c-1.1 0-2 .4-2.8 1.2S2.9 26.9 2.9 28z" clip-rule="evenodd"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/circle-124.png b/html/matt-chat/uswds/img/circle-124.png
new file mode 100644
index 0000000..f954495
--- /dev/null
+++ b/html/matt-chat/uswds/img/circle-124.png
Binary files differdiff --git a/html/matt-chat/uswds/img/circle-gray-20.svg b/html/matt-chat/uswds/img/circle-gray-20.svg
new file mode 100644
index 0000000..6cb31f0
--- /dev/null
+++ b/html/matt-chat/uswds/img/circle-gray-20.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" width="120" height="120" viewBox="0 0 120 120"><title>Oval</title><circle cx="60" cy="60" r="60" fill="#C9C9C9" fill-rule="evenodd"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/correct8-alt.svg b/html/matt-chat/uswds/img/correct8-alt.svg
new file mode 100644
index 0000000..cba03c3
--- /dev/null
+++ b/html/matt-chat/uswds/img/correct8-alt.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" width="65" height="50" viewBox="0 0 65 50"><title>correct8-alt</title><path fill="#171717" fill-rule="evenodd" d="M63.268 7.063l-5.616-5.61C56.882.685 55.946.3 54.845.3s-2.038.385-2.808 1.155L24.951 28.552 12.81 16.385c-.77-.77-1.707-1.155-2.808-1.155-1.1 0-2.037.385-2.807 1.154l-5.616 5.61C.81 22.764.425 23.7.425 24.8s.385 2.035 1.155 2.805l14.947 14.93 5.616 5.61c.77.77 1.706 1.154 2.807 1.154s2.038-.384 2.808-1.154l5.616-5.61 29.894-29.86c.77-.77 1.157-1.707 1.157-2.805 0-1.101-.385-2.036-1.156-2.805l-.001-.002z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/correct8.svg b/html/matt-chat/uswds/img/correct8.svg
new file mode 100644
index 0000000..3270fdb
--- /dev/null
+++ b/html/matt-chat/uswds/img/correct8.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" width="65" height="50" viewBox="0 0 65 50"><title>correct8</title><path fill="#FFF" fill-rule="evenodd" d="M63.268 7.063l-5.616-5.61C56.882.685 55.946.3 54.845.3s-2.038.385-2.808 1.155L24.951 28.552 12.81 16.385c-.77-.77-1.707-1.155-2.808-1.155-1.1 0-2.037.385-2.807 1.154l-5.616 5.61C.81 22.764.425 23.7.425 24.8s.385 2.035 1.155 2.805l14.947 14.93 5.616 5.61c.77.77 1.706 1.154 2.807 1.154s2.038-.384 2.808-1.154l5.616-5.61 29.894-29.86c.77-.77 1.157-1.707 1.157-2.805 0-1.101-.385-2.036-1.156-2.805l-.001-.002z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/favicons/favicon-114.png b/html/matt-chat/uswds/img/favicons/favicon-114.png
new file mode 100644
index 0000000..0a37f66
--- /dev/null
+++ b/html/matt-chat/uswds/img/favicons/favicon-114.png
Binary files differdiff --git a/html/matt-chat/uswds/img/favicons/favicon-144.png b/html/matt-chat/uswds/img/favicons/favicon-144.png
new file mode 100644
index 0000000..3f3f63b
--- /dev/null
+++ b/html/matt-chat/uswds/img/favicons/favicon-144.png
Binary files differdiff --git a/html/matt-chat/uswds/img/favicons/favicon-16.png b/html/matt-chat/uswds/img/favicons/favicon-16.png
new file mode 100644
index 0000000..88c5044
--- /dev/null
+++ b/html/matt-chat/uswds/img/favicons/favicon-16.png
Binary files differdiff --git a/html/matt-chat/uswds/img/favicons/favicon-192.png b/html/matt-chat/uswds/img/favicons/favicon-192.png
new file mode 100644
index 0000000..1208322
--- /dev/null
+++ b/html/matt-chat/uswds/img/favicons/favicon-192.png
Binary files differdiff --git a/html/matt-chat/uswds/img/favicons/favicon-40.png b/html/matt-chat/uswds/img/favicons/favicon-40.png
new file mode 100644
index 0000000..e1c6b2e
--- /dev/null
+++ b/html/matt-chat/uswds/img/favicons/favicon-40.png
Binary files differdiff --git a/html/matt-chat/uswds/img/favicons/favicon-57.png b/html/matt-chat/uswds/img/favicons/favicon-57.png
new file mode 100644
index 0000000..80cb056
--- /dev/null
+++ b/html/matt-chat/uswds/img/favicons/favicon-57.png
Binary files differdiff --git a/html/matt-chat/uswds/img/favicons/favicon-72.png b/html/matt-chat/uswds/img/favicons/favicon-72.png
new file mode 100644
index 0000000..2f6c1f6
--- /dev/null
+++ b/html/matt-chat/uswds/img/favicons/favicon-72.png
Binary files differdiff --git a/html/matt-chat/uswds/img/favicons/favicon.ico b/html/matt-chat/uswds/img/favicons/favicon.ico
new file mode 100644
index 0000000..51502ba
--- /dev/null
+++ b/html/matt-chat/uswds/img/favicons/favicon.ico
Binary files differdiff --git a/html/matt-chat/uswds/img/favicons/favicon.png b/html/matt-chat/uswds/img/favicons/favicon.png
new file mode 100644
index 0000000..06a8a5e
--- /dev/null
+++ b/html/matt-chat/uswds/img/favicons/favicon.png
Binary files differdiff --git a/html/matt-chat/uswds/img/file-excel.svg b/html/matt-chat/uswds/img/file-excel.svg
new file mode 100644
index 0000000..9bf512a
--- /dev/null
+++ b/html/matt-chat/uswds/img/file-excel.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512" fill="#07648d"><path d="M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm60.1 106.5L224 336l60.1 93.5c5.1 8-.6 18.5-10.1 18.5h-34.9c-4.4 0-8.5-2.4-10.6-6.3C208.9 405.5 192 373 192 373c-6.4 14.8-10 20-36.6 68.8-2.1 3.9-6.1 6.3-10.5 6.3H110c-9.5 0-15.2-10.5-10.1-18.5l60.3-93.5-60.3-93.5c-5.2-8 .6-18.5 10.1-18.5h34.8c4.4 0 8.5 2.4 10.6 6.3 26.1 48.8 20 33.6 36.6 68.5 0 0 6.1-11.7 36.6-68.5 2.1-3.9 6.2-6.3 10.6-6.3H274c9.5-.1 15.2 10.4 10.1 18.4zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"/></svg>
diff --git a/html/matt-chat/uswds/img/file-pdf.svg b/html/matt-chat/uswds/img/file-pdf.svg
new file mode 100644
index 0000000..c40ec12
--- /dev/null
+++ b/html/matt-chat/uswds/img/file-pdf.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512" fill="#07648d"><path d="M181.9 256.1c-5-16-4.9-46.9-2-46.9 8.4 0 7.6 36.9 2 46.9zm-1.7 47.2c-7.7 20.2-17.3 43.3-28.4 62.7 18.3-7 39-17.2 62.9-21.9-12.7-9.6-24.9-23.4-34.5-40.8zM86.1 428.1c0 .8 13.2-5.4 34.9-40.2-6.7 6.3-29.1 24.5-34.9 40.2zM248 160h136v328c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V24C0 10.7 10.7 0 24 0h200v136c0 13.2 10.8 24 24 24zm-8 171.8c-20-12.2-33.3-29-42.7-53.8 4.5-18.5 11.6-46.6 6.2-64.2-4.7-29.4-42.4-26.5-47.8-6.8-5 18.3-.4 44.1 8.1 77-11.6 27.6-28.7 64.6-40.8 85.8-.1 0-.1.1-.2.1-27.1 13.9-73.6 44.5-54.5 68 5.6 6.9 16 10 21.5 10 17.9 0 35.7-18 61.1-61.8 25.8-8.5 54.1-19.1 79-23.2 21.7 11.8 47.1 19.5 64 19.5 29.2 0 31.2-32 19.7-43.4-13.9-13.6-54.3-9.7-73.6-7.2zM377 105L279 7c-4.5-4.5-10.6-7-17-7h-6v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-74.1 255.3c4.1-2.7-2.5-11.9-42.8-9 37.1 15.8 42.8 9 42.8 9z"/></svg>
diff --git a/html/matt-chat/uswds/img/file-video.svg b/html/matt-chat/uswds/img/file-video.svg
new file mode 100644
index 0000000..d3933c8
--- /dev/null
+++ b/html/matt-chat/uswds/img/file-video.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512" fill="#07648d"><path d="M384 121.941V128H256V0h6.059c6.365 0 12.47 2.529 16.971 7.029l97.941 97.941A24.005 24.005 0 0 1 384 121.941zM224 136V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248c-13.2 0-24-10.8-24-24zm96 144.016v111.963c0 21.445-25.943 31.998-40.971 16.971L224 353.941V392c0 13.255-10.745 24-24 24H88c-13.255 0-24-10.745-24-24V280c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v38.059l55.029-55.013c15.011-15.01 40.971-4.491 40.971 16.97z"/></svg>
diff --git a/html/matt-chat/uswds/img/file-word.svg b/html/matt-chat/uswds/img/file-word.svg
new file mode 100644
index 0000000..214b55a
--- /dev/null
+++ b/html/matt-chat/uswds/img/file-word.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512" fill="#07648d"><path d="M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm57.1 120H305c7.7 0 13.4 7.1 11.7 14.7l-38 168c-1.2 5.5-6.1 9.3-11.7 9.3h-38c-5.5 0-10.3-3.8-11.6-9.1-25.8-103.5-20.8-81.2-25.6-110.5h-.5c-1.1 14.3-2.4 17.4-25.6 110.5-1.3 5.3-6.1 9.1-11.6 9.1H117c-5.6 0-10.5-3.9-11.7-9.4l-37.8-168c-1.7-7.5 4-14.6 11.7-14.6h24.5c5.7 0 10.7 4 11.8 9.7 15.6 78 20.1 109.5 21 122.2 1.6-10.2 7.3-32.7 29.4-122.7 1.3-5.4 6.1-9.1 11.7-9.1h29.1c5.6 0 10.4 3.8 11.7 9.2 24 100.4 28.8 124 29.6 129.4-.2-11.2-2.6-17.8 21.6-129.2 1-5.6 5.9-9.5 11.5-9.5zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"/></svg>
diff --git a/html/matt-chat/uswds/img/file.svg b/html/matt-chat/uswds/img/file.svg
new file mode 100644
index 0000000..8469c7e
--- /dev/null
+++ b/html/matt-chat/uswds/img/file.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512" fill="#07648d"><path d="M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm160-14.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"/></svg>
diff --git a/html/matt-chat/uswds/img/hero.jpg b/html/matt-chat/uswds/img/hero.jpg
new file mode 100644
index 0000000..62320c4
--- /dev/null
+++ b/html/matt-chat/uswds/img/hero.jpg
Binary files differdiff --git a/html/matt-chat/uswds/img/hero.webp b/html/matt-chat/uswds/img/hero.webp
new file mode 100644
index 0000000..98535c2
--- /dev/null
+++ b/html/matt-chat/uswds/img/hero.webp
Binary files differdiff --git a/html/matt-chat/uswds/img/icon-dot-gov.svg b/html/matt-chat/uswds/img/icon-dot-gov.svg
new file mode 100644
index 0000000..3dac7cd
--- /dev/null
+++ b/html/matt-chat/uswds/img/icon-dot-gov.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64"><title>icon-dot-gov</title><path fill="#2378C3" fill-rule="evenodd" d="m32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm0 1.2c-17 0-30.8 13.8-30.8 30.8s13.8 30.8 30.8 30.8 30.8-13.8 30.8-30.8-13.8-30.8-30.8-30.8zm11.4 38.9c.5 0 .9.4.9.8v1.6h-24.6v-1.6c0-.5.4-.8.9-.8zm-17.1-12.3v9.8h1.6v-9.8h3.3v9.8h1.6v-9.8h3.3v9.8h1.6v-9.8h3.3v9.8h.8c.5 0 .9.4.9.8v.8h-21.4v-.8c0-.5.4-.8.9-.8h.8v-9.8zm5.7-8.2 12.3 4.9v1.6h-1.6c0 .5-.4.8-.9.8h-19.6c-.5 0-.9-.4-.9-.8h-1.6v-1.6s12.3-4.9 12.3-4.9z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/icon-https.svg b/html/matt-chat/uswds/img/icon-https.svg
new file mode 100644
index 0000000..19ad04f
--- /dev/null
+++ b/html/matt-chat/uswds/img/icon-https.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64"><title>icon-https</title><path fill="#719F2A" fill-rule="evenodd" d="M32 0c17.673 0 32 14.327 32 32 0 17.673-14.327 32-32 32C14.327 64 0 49.673 0 32 0 14.327 14.327 0 32 0zm0 1.208C14.994 1.208 1.208 14.994 1.208 32S14.994 62.792 32 62.792 62.792 49.006 62.792 32 49.006 1.208 32 1.208zm0 18.886a7.245 7.245 0 0 1 7.245 7.245v3.103h.52c.86 0 1.557.698 1.557 1.558v9.322c0 .86-.697 1.558-1.557 1.558h-15.53c-.86 0-1.557-.697-1.557-1.558V32c0-.86.697-1.558 1.557-1.558h.52V27.34A7.245 7.245 0 0 1 32 20.094zm0 3.103a4.142 4.142 0 0 0-4.142 4.142v3.103h8.284V27.34A4.142 4.142 0 0 0 32 23.197z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/loader.gif b/html/matt-chat/uswds/img/loader.gif
new file mode 100644
index 0000000..a0b26b5
--- /dev/null
+++ b/html/matt-chat/uswds/img/loader.gif
Binary files differdiff --git a/html/matt-chat/uswds/img/loader.svg b/html/matt-chat/uswds/img/loader.svg
new file mode 100644
index 0000000..ed68eb3
--- /dev/null
+++ b/html/matt-chat/uswds/img/loader.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" version="1.0" width="80px" height="80px" viewBox="0 0 128 128" xml:space="preserve"><g><path d="M38.52 33.37L21.36 16.2A63.6 63.6 0 0 1 59.5.16v24.3a39.5 39.5 0 0 0-20.98 8.92z" fill="#000000" fill-opacity="1"/><path d="M38.52 33.37L21.36 16.2A63.6 63.6 0 0 1 59.5.16v24.3a39.5 39.5 0 0 0-20.98 8.92z" fill="#c0c0c0" fill-opacity="0.25" transform="rotate(45 64 64)"/><path d="M38.52 33.37L21.36 16.2A63.6 63.6 0 0 1 59.5.16v24.3a39.5 39.5 0 0 0-20.98 8.92z" fill="#c0c0c0" fill-opacity="0.25" transform="rotate(90 64 64)"/><path d="M38.52 33.37L21.36 16.2A63.6 63.6 0 0 1 59.5.16v24.3a39.5 39.5 0 0 0-20.98 8.92z" fill="#c0c0c0" fill-opacity="0.25" transform="rotate(135 64 64)"/><path d="M38.52 33.37L21.36 16.2A63.6 63.6 0 0 1 59.5.16v24.3a39.5 39.5 0 0 0-20.98 8.92z" fill="#c0c0c0" fill-opacity="0.25" transform="rotate(180 64 64)"/><path d="M38.52 33.37L21.36 16.2A63.6 63.6 0 0 1 59.5.16v24.3a39.5 39.5 0 0 0-20.98 8.92z" fill="#c0c0c0" fill-opacity="0.25" transform="rotate(225 64 64)"/><path d="M38.52 33.37L21.36 16.2A63.6 63.6 0 0 1 59.5.16v24.3a39.5 39.5 0 0 0-20.98 8.92z" fill="#c0c0c0" fill-opacity="0.25" transform="rotate(270 64 64)"/><path d="M38.52 33.37L21.36 16.2A63.6 63.6 0 0 1 59.5.16v24.3a39.5 39.5 0 0 0-20.98 8.92z" fill="#c0c0c0" fill-opacity="0.25" transform="rotate(315 64 64)"/><animateTransform attributeName="transform" type="rotate" values="0 64 64;45 64 64;90 64 64;135 64 64;180 64 64;225 64 64;270 64 64;315 64 64" calcMode="discrete" dur="720ms" repeatCount="indefinite"></animateTransform></g></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/lock.svg b/html/matt-chat/uswds/img/lock.svg
new file mode 100644
index 0000000..6328172
--- /dev/null
+++ b/html/matt-chat/uswds/img/lock.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" width="52" height="64" viewBox="0 0 52 64"><title>lock</title><path fill="#1B1B1B" fill-rule="evenodd" d="M26 0c10.493 0 19 8.507 19 19v9h3a4 4 0 0 1 4 4v28a4 4 0 0 1-4 4H4a4 4 0 0 1-4-4V32a4 4 0 0 1 4-4h3v-9C7 8.507 15.507 0 26 0zm0 8c-5.979 0-10.843 4.77-10.996 10.712L15 19v9h22v-9c0-6.075-4.925-11-11-11z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/logo-img.png b/html/matt-chat/uswds/img/logo-img.png
new file mode 100644
index 0000000..82ab23e
--- /dev/null
+++ b/html/matt-chat/uswds/img/logo-img.png
Binary files differdiff --git a/html/matt-chat/uswds/img/material-icons-deprecated/eco.svg b/html/matt-chat/uswds/img/material-icons-deprecated/eco.svg
new file mode 100755
index 0000000..651b9ed
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons-deprecated/eco.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path fill="none" d="M0 0h24v24H0z"/><path d="M6.05 8.05a7.001 7.001 0 0 0-.02 9.88c1.47-3.4 4.09-6.24 7.36-7.93A15.952 15.952 0 0 0 8 19.32c2.6 1.23 5.8.78 7.95-1.37C19.43 14.47 20 4 20 4S9.53 4.57 6.05 8.05z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons-deprecated/facebook.svg b/html/matt-chat/uswds/img/material-icons-deprecated/facebook.svg
new file mode 100644
index 0000000..f4feccc
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons-deprecated/facebook.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path fill="none" d="M0 0h24v24H0z"/><path d="M22 12c0-5.52-4.48-10-10-10S2 6.48 2 12c0 4.84 3.44 8.87 8 9.8V15H8v-3h2V9.5C10 7.57 11.57 6 13.5 6H16v3h-2c-.55 0-1 .45-1 1v2h3v3h-3v6.95c5.05-.5 9-4.76 9-9.95z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons-deprecated/info_outline.svg b/html/matt-chat/uswds/img/material-icons-deprecated/info_outline.svg
new file mode 100644
index 0000000..783eebe
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons-deprecated/info_outline.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M11 7h2v2h-2V7zm0 4h2v6h-2v-6zm1-9C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons-deprecated/lightbulb_outline.svg b/html/matt-chat/uswds/img/material-icons-deprecated/lightbulb_outline.svg
new file mode 100644
index 0000000..83e46b0
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons-deprecated/lightbulb_outline.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path fill="none" d="M0 0h24v24H0z"/><path d="M9 21c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-1H9v1zm3-19C8.14 2 5 5.14 5 9c0 2.38 1.19 4.47 3 5.74V17c0 .55.45 1 1 1h6c.55 0 1-.45 1-1v-2.26c1.81-1.27 3-3.36 3-5.74 0-3.86-3.14-7-7-7zm2 11.7V16h-4v-2.3C8.48 12.63 7 11.53 7 9c0-2.76 2.24-5 5-5s5 2.24 5 5c0 2.49-1.51 3.65-3 4.7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons-deprecated/lock_outline.svg b/html/matt-chat/uswds/img/material-icons-deprecated/lock_outline.svg
new file mode 100644
index 0000000..d4a276b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons-deprecated/lock_outline.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path fill="none" d="M0 0h24v24H0z"/><path d="M12 17c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm6-9h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zM8.9 6c0-1.71 1.39-3.1 3.1-3.1s3.1 1.39 3.1 3.1v2H8.9V6zM18 20H6V10h12v10z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/10k.svg b/html/matt-chat/uswds/img/material-icons/10k.svg
new file mode 100644
index 0000000..090df90
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/10k.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10 10.5h1.5v3H10zM19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM7.5 15H6v-4.5H4.5V9h3v6zm5.5-1c0 .55-.45 1-1 1H9.5c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1H12c.55 0 1 .45 1 1v4zm6.5 1h-1.75L16 12.75V15h-1.5V9H16v2.25L17.75 9h1.75l-2.25 3 2.25 3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/10mp.svg b/html/matt-chat/uswds/img/material-icons/10mp.svg
new file mode 100644
index 0000000..90c8737
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/10mp.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13.5 7H15v3h-1.5zM19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 15.5h-1.5V14h-1v3H8v-3H7v4.5H5.5v-5c0-.55.45-1 1-1H11c.55 0 1 .45 1 1v5zm3.5 0H14v-6h3.5c.55 0 1 .45 1 1V16c0 .55-.45 1-1 1h-2v1.5zM10 5.5v6H8.5V7H7V5.5h3zm6.5 5c0 .55-.45 1-1 1H13c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1h2.5c.55 0 1 .45 1 1v4zm-1 3.5H17v1.5h-1.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/11mp.svg b/html/matt-chat/uswds/img/material-icons/11mp.svg
new file mode 100644
index 0000000..4b2e1c7
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/11mp.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 15.5h-1.5V14h-1v3H8v-3H7v4.5H5.5v-5c0-.55.45-1 1-1H11c.55 0 1 .45 1 1v5zm3.5 0H14v-6h3.5c.55 0 1 .45 1 1V16c0 .55-.45 1-1 1h-2v1.5zM11 5.5v6H9.5V7H8V5.5h3zm5 0v6h-1.5V7H13V5.5h3zm-.5 8.5H17v1.5h-1.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/123.svg b/html/matt-chat/uswds/img/material-icons/123.svg
new file mode 100644
index 0000000..897494c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/123.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M7 15H5.5v-4.5H4V9h3v6zm6.5-1.5h-3v-1h2c.55 0 1-.45 1-1V10c0-.55-.45-1-1-1H9v1.5h3v1h-2c-.55 0-1 .45-1 1V15h4.5v-1.5zm6 .5v-4c0-.55-.45-1-1-1H15v1.5h3v1h-2v1h2v1h-3V15h3.5c.55 0 1-.45 1-1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/12mp.svg b/html/matt-chat/uswds/img/material-icons/12mp.svg
new file mode 100644
index 0000000..d1917cc
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/12mp.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 15.5h-1.5V14h-1v3H8v-3H7v4.5H5.5v-5c0-.55.45-1 1-1H11c.55 0 1 .45 1 1v5zm3.5 0H14v-6h3.5c.55 0 1 .45 1 1V16c0 .55-.45 1-1 1h-2v1.5zM10 5.5v6H8.5V7H7V5.5h3zM15.5 9h-2v1h3v1.5H12V9c0-.55.45-1 1-1h2V7h-3V5.5h3.5c.55 0 1 .45 1 1V8c0 .55-.45 1-1 1zm0 5H17v1.5h-1.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/13mp.svg b/html/matt-chat/uswds/img/material-icons/13mp.svg
new file mode 100644
index 0000000..bc7836b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/13mp.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 15.5h-1.5V14h-1v3H8v-3H7v4.5H5.5v-5c0-.55.45-1 1-1H11c.55 0 1 .45 1 1v5zm3.5 0H14v-6h3.5c.55 0 1 .45 1 1V16c0 .55-.45 1-1 1h-2v1.5zM10 5.5v6H8.5V7H7V5.5h3zm6.5 5c0 .55-.45 1-1 1H12V10h3V9h-2V8h2V7h-3V5.5h3.5c.55 0 1 .45 1 1v4zm-1 3.5H17v1.5h-1.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/14mp.svg b/html/matt-chat/uswds/img/material-icons/14mp.svg
new file mode 100644
index 0000000..f959e36
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/14mp.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 15.5h-1.5V14h-1v3H8v-3H7v4.5H5.5v-5c0-.55.45-1 1-1H11c.55 0 1 .45 1 1v5zm3.5 0H14v-6h3.5c.55 0 1 .45 1 1V16c0 .55-.45 1-1 1h-2v1.5zM10 5.5v6H8.5V7H7V5.5h3zm7.5 4.5h-1v1.5H15V10h-3V5.5h1.5v3H15v-3h1.5v3h1V10zm-2 4H17v1.5h-1.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/15mp.svg b/html/matt-chat/uswds/img/material-icons/15mp.svg
new file mode 100644
index 0000000..e71e848
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/15mp.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 15.5h-1.5V14h-1v3H8v-3H7v4.5H5.5v-5c0-.55.45-1 1-1H11c.55 0 1 .45 1 1v5zm3.5 0H14v-6h3.5c.55 0 1 .45 1 1V16c0 .55-.45 1-1 1h-2v1.5zM10 5.5v6H8.5V7H7V5.5h3zM16.5 7h-3v1h2c.55 0 1 .45 1 1v1.5c0 .55-.45 1-1 1H12V10h3V9h-3V5.5h4.5V7zm-1 7H17v1.5h-1.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/16mp.svg b/html/matt-chat/uswds/img/material-icons/16mp.svg
new file mode 100644
index 0000000..f93e8ce
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/16mp.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13.5 9H15v1.5h-1.5zM19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 15.5h-1.5V14h-1v3H8v-3H7v4.5H5.5v-5c0-.55.45-1 1-1H11c.55 0 1 .45 1 1v5zm3.5 0H14v-6h3.5c.55 0 1 .45 1 1V16c0 .55-.45 1-1 1h-2v1.5zM10 5.5v6H8.5V7H7V5.5h3zm3 6c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1h3.5V7h-3v1h2c.55 0 1 .45 1 1v1.5c0 .55-.45 1-1 1H13zm2.5 2.5H17v1.5h-1.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/17mp.svg b/html/matt-chat/uswds/img/material-icons/17mp.svg
new file mode 100644
index 0000000..4af4959
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/17mp.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 15.5h-1.5V14h-1v3H8v-3H7v4.5H5.5v-5c0-.55.45-1 1-1H11c.55 0 1 .45 1 1v5zm3.5 0H14v-6h3.5c.55 0 1 .45 1 1V16c0 .55-.45 1-1 1h-2v1.5zM10 5.5v6H8.5V7H7V5.5h3zm5 6h-1.75L14.62 7H12V5.5h3.5c.67 0 1.15.65.96 1.29L15 11.5zm.5 2.5H17v1.5h-1.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/18_up_rating.svg b/html/matt-chat/uswds/img/material-icons/18_up_rating.svg
new file mode 100644
index 0000000..540c91b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/18_up_rating.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13 12.5h1.5V14H13zm0-2.5h1.5v1.5H13z"/><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-9 12H8.5v-4.5H7V9h3v6zm6-1c0 .55-.45 1-1 1h-2.5c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1H15c.55 0 1 .45 1 1v4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/18mp.svg b/html/matt-chat/uswds/img/material-icons/18mp.svg
new file mode 100644
index 0000000..35b3cbd
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/18mp.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 15.5h-1.5V14h-1v3H8v-3H7v4.5H5.5v-5c0-.55.45-1 1-1H11c.55 0 1 .45 1 1v5zm3.5 0H14v-6h3.5c.55 0 1 .45 1 1V16c0 .55-.45 1-1 1h-2v1.5zM10 5.5v6H8.5V7H7V5.5h3zm6.5 5c0 .55-.45 1-1 1H13c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1h2.5c.55 0 1 .45 1 1v4zm-3 0H15V9h-1.5v1.5zm0-2.5H15V6.5h-1.5V8zm2 6H17v1.5h-1.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/19mp.svg b/html/matt-chat/uswds/img/material-icons/19mp.svg
new file mode 100644
index 0000000..e9dad3a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/19mp.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 7h3V9h-2c-.55 0-1-.45-1-1V6.5c0-.55.45-1 1-1h2.5c.55 0 1 .45 1 1v4c0 .55-.45 1-1 1H12V10zm1.5-2H15V6.5h-1.5V8zM7 5.5h3v6H8.5V7H7V5.5zm5 13h-1.5V14h-1v3H8v-3H7v4.5H5.5v-5c0-.55.45-1 1-1H11c.55 0 1 .45 1 1v5zm6.5-2.5c0 .55-.45 1-1 1h-2v1.5H14v-6h3.5c.55 0 1 .45 1 1V16zm-3-2H17v1.5h-1.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/1k.svg b/html/matt-chat/uswds/img/material-icons/1k.svg
new file mode 100644
index 0000000..a29e292
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/1k.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-8.5 12H9v-4.5H7.5V9h3v6zm7 0h-1.75L14 12.75V15h-1.5V9H14v2.25L15.75 9h1.75l-2.25 3 2.25 3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/1k_plus.svg b/html/matt-chat/uswds/img/material-icons/1k_plus.svg
new file mode 100644
index 0000000..b89b530
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/1k_plus.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 15H7.5v-4.5H6V9h3v6zm4.75 0L12 12.75V15h-1.5V9H12v2.25L13.75 9h1.75l-2.25 3 2.25 3h-1.75zm5.75-2.5H18V14h-1v-1.5h-1.5v-1H17V10h1v1.5h1.5v1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/1x_mobiledata.svg b/html/matt-chat/uswds/img/material-icons/1x_mobiledata.svg
new file mode 100644
index 0000000..0d6a892
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/1x_mobiledata.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M4 7h4v10H6V9H4V7zm11.83 4.72L18.66 7h-2.33l-1.66 2.77L13 7h-2.33l2.83 4.72L10.33 17h2.33l2-3.34 2 3.34H19l-3.17-5.28z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/20mp.svg b/html/matt-chat/uswds/img/material-icons/20mp.svg
new file mode 100644
index 0000000..cab505e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/20mp.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M14.5 7H16v3h-1.5zM19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 15.5h-1.5V14h-1v3H8v-3H7v4.5H5.5v-5c0-.55.45-1 1-1H11c.55 0 1 .45 1 1v5zm3.5 0H14v-6h3.5c.55 0 1 .45 1 1V16c0 .55-.45 1-1 1h-2v1.5zm2-8c0 .55-.45 1-1 1H14c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1h2.5c.55 0 1 .45 1 1v4zM10 9H8v1h3v1.5H6.5V9c0-.55.45-1 1-1h2V7h-3V5.5H10c.55 0 1 .45 1 1V8c0 .55-.45 1-1 1zm5.5 5H17v1.5h-1.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/21mp.svg b/html/matt-chat/uswds/img/material-icons/21mp.svg
new file mode 100644
index 0000000..1ac2bdb
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/21mp.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 15.5h-1.5V14h-1v3H8v-3H7v4.5H5.5v-5c0-.55.45-1 1-1H11c.55 0 1 .45 1 1v5zm3.5 0H14v-6h3.5c.55 0 1 .45 1 1V16c0 .55-.45 1-1 1h-2v1.5zM11 9H9v1h3v1.5H7.5V9c0-.55.45-1 1-1h2V7h-3V5.5H11c.55 0 1 .45 1 1V8c0 .55-.45 1-1 1zm3-3.5h3v6h-1.5V7H14V5.5zm1.5 8.5H17v1.5h-1.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/22mp.svg b/html/matt-chat/uswds/img/material-icons/22mp.svg
new file mode 100644
index 0000000..a244288
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/22mp.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 15.5h-1.5V14h-1v3H8v-3H7v4.5H5.5v-5c0-.55.45-1 1-1H11c.55 0 1 .45 1 1v5zm3.5 0H14v-6h3.5c.55 0 1 .45 1 1V16c0 .55-.45 1-1 1h-2v1.5zM10 9H8v1h3v1.5H6.5V9c0-.55.45-1 1-1h2V7h-3V5.5H10c.55 0 1 .45 1 1V8c0 .55-.45 1-1 1zm6.5 0h-2v1h3v1.5H13V9c0-.55.45-1 1-1h2V7h-3V5.5h3.5c.55 0 1 .45 1 1V8c0 .55-.45 1-1 1zm-1 5H17v1.5h-1.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/23mp.svg b/html/matt-chat/uswds/img/material-icons/23mp.svg
new file mode 100644
index 0000000..a274d92
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/23mp.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 15.5h-1.5V14h-1v3H8v-3H7v4.5H5.5v-5c0-.55.45-1 1-1H11c.55 0 1 .45 1 1v5zm3.5 0H14v-6h3.5c.55 0 1 .45 1 1V16c0 .55-.45 1-1 1h-2v1.5zM10 9H8v1h3v1.5H6.5V9c0-.55.45-1 1-1h2V7h-3V5.5H10c.55 0 1 .45 1 1V8c0 .55-.45 1-1 1zm7.5 1.5c0 .55-.45 1-1 1H13V10h3V9h-2V8h2V7h-3V5.5h3.5c.55 0 1 .45 1 1v4zm-2 3.5H17v1.5h-1.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/24mp.svg b/html/matt-chat/uswds/img/material-icons/24mp.svg
new file mode 100644
index 0000000..6dd2ae8
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/24mp.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 15.5h-1.5V14h-1v3H8v-3H7v4.5H5.5v-5c0-.55.45-1 1-1H11c.55 0 1 .45 1 1v5zm3.5 0H14v-6h3.5c.55 0 1 .45 1 1V16c0 .55-.45 1-1 1h-2v1.5zM10 9H8v1h3v1.5H6.5V9c0-.55.45-1 1-1h2V7h-3V5.5H10c.55 0 1 .45 1 1V8c0 .55-.45 1-1 1zm8.5 1h-1v1.5H16V10h-3V5.5h1.5v3H16v-3h1.5v3h1V10zm-3 4H17v1.5h-1.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/2k.svg b/html/matt-chat/uswds/img/material-icons/2k.svg
new file mode 100644
index 0000000..a679054
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/2k.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-9 9.5H8v1h3V15H6.5v-2.5c0-.55.45-1 1-1h2v-1h-3V9H10c.55 0 1 .45 1 1v1.5c0 .55-.45 1-1 1zm8 2.5h-1.75l-1.75-2.25V15H13V9h1.5v2.25L16.25 9H18l-2.25 3L18 15z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/2k_plus.svg b/html/matt-chat/uswds/img/material-icons/2k_plus.svg
new file mode 100644
index 0000000..08d618f
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/2k_plus.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-9.5 8.5c0 .55-.45 1-1 1h-2v1h3V15H5v-2.5c0-.55.45-1 1-1h2v-1H5V9h3.5c.55 0 1 .45 1 1v1.5zm4.75 3.5-1.75-2.25V15H11V9h1.5v2.25L14.25 9H16l-2.25 3L16 15h-1.75zM20 12.5h-1.5V14h-1v-1.5H16v-1h1.5V10h1v1.5H20v1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/2mp.svg b/html/matt-chat/uswds/img/material-icons/2mp.svg
new file mode 100644
index 0000000..573d299
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/2mp.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 15.5h-1.5V14h-1v3H8v-3H7v4.5H5.5v-5c0-.55.45-1 1-1H11c.55 0 1 .45 1 1v5zm3.5 0H14v-6h3.5c.55 0 1 .45 1 1V16c0 .55-.45 1-1 1h-2v1.5zm-2-9.5h-2v1h3v1.5H10V9c0-.55.45-1 1-1h2V7h-3V5.5h3.5c.55 0 1 .45 1 1V8c0 .55-.45 1-1 1zm2 5H17v1.5h-1.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/30fps.svg b/html/matt-chat/uswds/img/material-icons/30fps.svg
new file mode 100644
index 0000000..d4917f9
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/30fps.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M2 5v3h6v2.5H3v3h5V16H2v3h6c1.66 0 3-1.34 3-3v-1.9A2.1 2.1 0 0 0 8.9 12 2.1 2.1 0 0 0 11 9.9V8c0-1.66-1.34-3-3-3H2zm17 3v8h-4V8h4m0-3h-4c-1.66 0-3 1.34-3 3v8c0 1.66 1.34 3 3 3h4c1.66 0 3-1.34 3-3V8c0-1.66-1.34-3-3-3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/30fps_select.svg b/html/matt-chat/uswds/img/material-icons/30fps_select.svg
new file mode 100644
index 0000000..bcbec9c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/30fps_select.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M4 4v2h5v2H5v2h4v2H4v2h5c1.1 0 2-.9 2-2v-1.5c0-.83-.17-1.5-1-1.5.83 0 1-.67 1-1.5V6c0-1.1-.9-2-2-2H4zm14 0c1.1 0 2 .9 2 2v6c0 1.1-.9 2-2 2h-3c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2h3zm0 2h-3v6h3V6zM5 22H3v-5h2v5zm4 0H7v-5h2v5zm4 0h-2v-5h2v5zm8 0h-6v-5h6v5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/360.svg b/html/matt-chat/uswds/img/material-icons/360.svg
new file mode 100644
index 0000000..2a47b0e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/360.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 7C6.48 7 2 9.24 2 12c0 2.24 2.94 4.13 7 4.77V20l4-4-4-4v2.73c-3.15-.56-5-1.9-5-2.73 0-1.06 3.04-3 8-3s8 1.94 8 3c0 .73-1.46 1.89-4 2.53v2.05c3.53-.77 6-2.53 6-4.58 0-2.76-4.48-5-10-5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/3d_rotation.svg b/html/matt-chat/uswds/img/material-icons/3d_rotation.svg
new file mode 100644
index 0000000..adc4079
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/3d_rotation.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M7.52 21.48A10.487 10.487 0 0 1 1.55 13H.05C.56 19.16 5.71 24 12 24l.66-.03-3.81-3.81-1.33 1.32zm.89-6.52c-.19 0-.37-.03-.52-.08a1.07 1.07 0 0 1-.4-.24c-.11-.1-.2-.22-.26-.37-.06-.14-.09-.3-.09-.47h-1.3c0 .36.07.68.21.95.14.27.33.5.56.69.24.18.51.32.82.41.3.1.62.15.96.15.37 0 .72-.05 1.03-.15.32-.1.6-.25.83-.44s.42-.43.55-.72c.13-.29.2-.61.2-.97 0-.19-.02-.38-.07-.56a1.67 1.67 0 0 0-.23-.51c-.1-.16-.24-.3-.4-.43-.17-.13-.37-.23-.61-.31a2.098 2.098 0 0 0 .89-.75c.1-.15.17-.3.22-.46.05-.16.07-.32.07-.48 0-.36-.06-.68-.18-.96a1.78 1.78 0 0 0-.51-.69c-.2-.19-.47-.33-.77-.43C9.1 8.05 8.76 8 8.39 8c-.36 0-.69.05-1 .16-.3.11-.57.26-.79.45-.21.19-.38.41-.51.67-.12.26-.18.54-.18.85h1.3c0-.17.03-.32.09-.45s.14-.25.25-.34c.11-.09.23-.17.38-.22.15-.05.3-.08.48-.08.4 0 .7.1.89.31.19.2.29.49.29.86 0 .18-.03.34-.08.49a.87.87 0 0 1-.25.37c-.11.1-.25.18-.41.24-.16.06-.36.09-.58.09H7.5v1.03h.77c.22 0 .42.02.6.07s.33.13.45.23c.12.11.22.24.29.4.07.16.1.35.1.57 0 .41-.12.72-.35.93-.23.23-.55.33-.95.33zm8.55-5.92c-.32-.33-.7-.59-1.14-.77-.43-.18-.92-.27-1.46-.27H12v8h2.3c.55 0 1.06-.09 1.51-.27.45-.18.84-.43 1.16-.76.32-.33.57-.73.74-1.19.17-.47.26-.99.26-1.57v-.4c0-.58-.09-1.1-.26-1.57-.18-.47-.43-.87-.75-1.2zm-.39 3.16c0 .42-.05.79-.14 1.13-.1.33-.24.62-.43.85-.19.23-.43.41-.71.53-.29.12-.62.18-.99.18h-.91V9.12h.97c.72 0 1.27.23 1.64.69.38.46.57 1.12.57 1.99v.4zM12 0l-.66.03 3.81 3.81 1.33-1.33c3.27 1.55 5.61 4.72 5.96 8.48h1.5C23.44 4.84 18.29 0 12 0z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/3g_mobiledata.svg b/html/matt-chat/uswds/img/material-icons/3g_mobiledata.svg
new file mode 100644
index 0000000..7e2f0d0
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/3g_mobiledata.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 7v2h5v2H4v2h4v2H3v2h5c1.1 0 2-.9 2-2v-1.5c0-.83-.67-1.5-1.5-1.5.83 0 1.5-.67 1.5-1.5V9c0-1.1-.9-2-2-2H3zm18 4v4c0 1.1-.9 2-2 2h-5c-1.1 0-2-.9-2-2V9c0-1.1.9-2 2-2h5c1.1 0 2 .9 2 2h-7v6h5v-2h-2.5v-2H21z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/3k.svg b/html/matt-chat/uswds/img/material-icons/3k.svg
new file mode 100644
index 0000000..f22be16
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/3k.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-8 11c0 .55-.45 1-1 1H6.5v-1.5h3v-1h-2v-1h2v-1h-3V9H10c.55 0 1 .45 1 1v4zm7 1h-1.75l-1.75-2.25V15H13V9h1.5v2.25L16.25 9H18l-2.25 3L18 15z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/3k_plus.svg b/html/matt-chat/uswds/img/material-icons/3k_plus.svg
new file mode 100644
index 0000000..fd43536
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/3k_plus.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9.5 14c0 .55-.45 1-1 1H5v-1.5h3v-1H6v-1h2v-1H5V9h3.5c.55 0 1 .45 1 1v4zm6.5 1h-1.75l-1.75-2.25V15H11V9h1.5v2.25L14.25 9H16l-2.25 3L16 15zm4-2.5h-1.5V14h-1v-1.5H16v-1h1.5V10h1v1.5H20v1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/3mp.svg b/html/matt-chat/uswds/img/material-icons/3mp.svg
new file mode 100644
index 0000000..10d95ed
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/3mp.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 15.5h-1.5V14h-1v3H8v-3H7v4.5H5.5v-5c0-.55.45-1 1-1H11c.55 0 1 .45 1 1v5zm3.5 0H14v-6h3.5c.55 0 1 .45 1 1V16c0 .55-.45 1-1 1h-2v1.5zm-1-8c0 .55-.45 1-1 1H10V10h3V9h-2V8h2V7h-3V5.5h3.5c.55 0 1 .45 1 1v4zm1 3.5H17v1.5h-1.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/3p.svg b/html/matt-chat/uswds/img/material-icons/3p.svg
new file mode 100644
index 0000000..9599ea4
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/3p.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 2H4.01c-1.1 0-2 .9-2 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-8 4c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2zm4 8H8v-.57c0-.81.48-1.53 1.22-1.85a6.95 6.95 0 0 1 5.56 0A2.01 2.01 0 0 1 16 13.43V14z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/4g_mobiledata.svg b/html/matt-chat/uswds/img/material-icons/4g_mobiledata.svg
new file mode 100644
index 0000000..b1632d5
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/4g_mobiledata.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M9 7H7v5H5V7H3v7h4v3h2v-3h2v-2H9V7zm8 4v2h2v2h-5V9h7c0-1.1-.9-2-2-2h-5c-1.1 0-2 .9-2 2v6c0 1.1.9 2 2 2h5c1.1 0 2-.9 2-2v-4h-4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/4g_plus_mobiledata.svg b/html/matt-chat/uswds/img/material-icons/4g_plus_mobiledata.svg
new file mode 100644
index 0000000..f7ffdcf
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/4g_plus_mobiledata.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13 11v2h2v2h-4V9h6c0-1.1-.9-2-2-2h-4c-1.1 0-2 .9-2 2v6c0 1.1.9 2 2 2h4c1.1 0 2-.9 2-2v-4h-4zm11 0h-2V9h-2v2h-2v2h2v2h2v-2h2v-2zM7 7H5v5H3V7H1v7h4v3h2v-3h1v-2H7V7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/4k.svg b/html/matt-chat/uswds/img/material-icons/4k.svg
new file mode 100644
index 0000000..589ec1b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/4k.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 10.5h-1V15H9.5v-1.5h-3V9H8v3h1.5V9H11v3h1v1.5zm6 1.5h-1.75l-1.75-2.25V15H13V9h1.5v2.25L16.25 9H18l-2.25 3L18 15z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/4k_plus.svg b/html/matt-chat/uswds/img/material-icons/4k_plus.svg
new file mode 100644
index 0000000..0e149aa
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/4k_plus.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-8.5 10.5h-1V15H8v-1.5H5V9h1.5v3H8V9h1.5v3h1v1.5zM16 15h-1.75l-1.75-2.25V15H11V9h1.5v2.25L14.25 9H16l-2.25 3L16 15zm4-2.5h-1.5V14h-1v-1.5H16v-1h1.5V10h1v1.5H20v1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/4mp.svg b/html/matt-chat/uswds/img/material-icons/4mp.svg
new file mode 100644
index 0000000..64cd61b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/4mp.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 15.5h-1.5V14h-1v3H8v-3H7v4.5H5.5v-5c0-.55.45-1 1-1H11c.55 0 1 .45 1 1v5zm3-8.5h-1v1.5h-1.5V10h-3V5.5H11v3h1.5v-3H14v3h1V10zm.5 8.5H14v-6h3.5c.55 0 1 .45 1 1V16c0 .55-.45 1-1 1h-2v1.5zm0-4.5H17v1.5h-1.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/5g.svg b/html/matt-chat/uswds/img/material-icons/5g.svg
new file mode 100644
index 0000000..9b7be3d
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/5g.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 13h2v2h-5V9h7c0-1.1-.9-2-2-2h-5c-1.1 0-2 .9-2 2v6c0 1.1.9 2 2 2h5c1.1 0 2-.9 2-2v-4h-4v2zM3 13h5v2H3v2h5c1.1 0 2-.9 2-2v-2c0-1.1-.9-2-2-2H5V9h5V7H3v6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/5k.svg b/html/matt-chat/uswds/img/material-icons/5k.svg
new file mode 100644
index 0000000..60956f6
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/5k.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-8 7.5H8v1h2c.55 0 1 .45 1 1V14c0 .55-.45 1-1 1H6.5v-1.5h3v-1h-3V9H11v1.5zm7 4.5h-1.75l-1.75-2.25V15H13V9h1.5v2.25L16.25 9H18l-2.25 3L18 15z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/5k_plus.svg b/html/matt-chat/uswds/img/material-icons/5k_plus.svg
new file mode 100644
index 0000000..352f257
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/5k_plus.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-9.5 7.5h-3v1h2c.55 0 1 .45 1 1V14c0 .55-.45 1-1 1H5v-1.5h3v-1H5V9h4.5v1.5zM16 15h-1.75l-1.75-2.25V15H11V9h1.5v2.25L14.25 9H16l-2.25 3L16 15zm4-2.5h-1.5V14h-1v-1.5H16v-1h1.5V10h1v1.5H20v1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/5mp.svg b/html/matt-chat/uswds/img/material-icons/5mp.svg
new file mode 100644
index 0000000..0159a83
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/5mp.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 15.5h-1.5V14h-1v3H8v-3H7v4.5H5.5v-5c0-.55.45-1 1-1H11c.55 0 1 .45 1 1v5zm3.5 0H14v-6h3.5c.55 0 1 .45 1 1V16c0 .55-.45 1-1 1h-2v1.5zM14.5 7h-3v1h2c.55 0 1 .45 1 1v1.5c0 .55-.45 1-1 1H10V10h3V9h-3V5.5h4.5V7zm1 7H17v1.5h-1.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/60fps.svg b/html/matt-chat/uswds/img/material-icons/60fps.svg
new file mode 100644
index 0000000..8246713
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/60fps.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 8v8h-4V8h4m0-3h-4c-1.66 0-3 1.34-3 3v8c0 1.66 1.34 3 3 3h4c1.66 0 3-1.34 3-3V8c0-1.66-1.34-3-3-3zm-9 3V5H5C3.34 5 2 6.34 2 8v8c0 1.66 1.34 3 3 3h3c1.66 0 3-1.34 3-3v-3c0-1.66-1.34-3-3-3H5V8h5zm-2 5v3H5v-3h3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/60fps_select.svg b/html/matt-chat/uswds/img/material-icons/60fps_select.svg
new file mode 100644
index 0000000..f0fb022
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/60fps_select.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 6v6h-3V6h3zm0-2h-3c-1.1 0-2 .9-2 2v6c0 1.1.9 2 2 2h3c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-7 2V4H6c-1.1 0-2 .9-2 2v6c0 1.1.9 2 2 2h3c1.1 0 2-.9 2-2v-2c0-1.1-.9-2-2-2H6V6h5zm-2 4v2H6v-2h3zM5 22H3v-5h2v5zm4 0H7v-5h2v5zm4 0h-2v-5h2v5zm8 0h-6v-5h6v5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/6_ft_apart.svg b/html/matt-chat/uswds/img/material-icons/6_ft_apart.svg
new file mode 100644
index 0000000..72de59e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/6_ft_apart.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M6 6c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm4 3.43c0-.81-.48-1.53-1.22-1.85a6.95 6.95 0 0 0-5.56 0A2.01 2.01 0 0 0 2 9.43V10h8v-.57zM18 6c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm4 3.43c0-.81-.48-1.53-1.22-1.85a6.95 6.95 0 0 0-5.56 0A2.01 2.01 0 0 0 14 9.43V10h8v-.57zM19 17v-2.01L5 15v2l-3-3 3-3v2.01L19 13v-2l3 3-3 3zm-9 2v-1H7.5c-.28 0-.5.22-.5.5v3c0 .28.22.5.5.5h2c.28 0 .5-.22.5-.5V20c0-.28-.22-.5-.5-.5H8V19h2zm-1 1.5v.5H8v-.5h1zm8.5-1.5h-1v3h-1v-3h-1v-1h3v1zm-5 0v.5h1v1h-1V22h-1v-4H14v1h-1.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/6k.svg b/html/matt-chat/uswds/img/material-icons/6k.svg
new file mode 100644
index 0000000..aed619f
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/6k.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M8 12.5h1.5V14H8zM19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-8 7.5H8v1h2c.55 0 1 .45 1 1V14c0 .55-.45 1-1 1H7.5c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1H11v1.5zm7 4.5h-1.75l-1.75-2.25V15H13V9h1.5v2.25L16.25 9H18l-2.25 3L18 15z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/6k_plus.svg b/html/matt-chat/uswds/img/material-icons/6k_plus.svg
new file mode 100644
index 0000000..4f75e08
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/6k_plus.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M6.5 12.5H8V14H6.5zM19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-9.5 7.5h-3v1h2c.55 0 1 .45 1 1V14c0 .55-.45 1-1 1H6c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1h3.5v1.5zM16 15h-1.75l-1.75-2.25V15H11V9h1.5v2.25L14.25 9H16l-2.25 3L16 15zm4-2.5h-1.5V14h-1v-1.5H16v-1h1.5V10h1v1.5H20v1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/6mp.svg b/html/matt-chat/uswds/img/material-icons/6mp.svg
new file mode 100644
index 0000000..6430309
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/6mp.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11.5 9H13v1.5h-1.5zM19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 15.5h-1.5V14h-1v3H8v-3H7v4.5H5.5v-5c0-.55.45-1 1-1H11c.55 0 1 .45 1 1v5zm-1-7c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1h3.5V7h-3v1h2c.55 0 1 .45 1 1v1.5c0 .55-.45 1-1 1H11zm4.5 7H14v-6h3.5c.55 0 1 .45 1 1V16c0 .55-.45 1-1 1h-2v1.5zm0-4.5H17v1.5h-1.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/7k.svg b/html/matt-chat/uswds/img/material-icons/7k.svg
new file mode 100644
index 0000000..c726615
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/7k.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9.5 15H7.75l1.38-4.5H6.5V9H10c.67 0 1.15.65.96 1.29L9.5 15zm8.5 0h-1.75l-1.75-2.25V15H13V9h1.5v2.25L16.25 9H18l-2.25 3L18 15z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/7k_plus.svg b/html/matt-chat/uswds/img/material-icons/7k_plus.svg
new file mode 100644
index 0000000..2a8da00
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/7k_plus.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM8 15H6.25l1.38-4.5H5V9h3.5c.67 0 1.15.65.96 1.29L8 15zm8 0h-1.75l-1.75-2.25V15H11V9h1.5v2.25L14.25 9H16l-2.25 3L16 15zm4-2.5h-1.5V14h-1v-1.5H16v-1h1.5V10h1v1.5H20v1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/7mp.svg b/html/matt-chat/uswds/img/material-icons/7mp.svg
new file mode 100644
index 0000000..a838f0f
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/7mp.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 15.5h-1.5V14h-1v3H8v-3H7v4.5H5.5v-5c0-.55.45-1 1-1H11c.55 0 1 .45 1 1v5zm3.5 0H14v-6h3.5c.55 0 1 .45 1 1V16c0 .55-.45 1-1 1h-2v1.5zm-2.5-7h-1.75L12.62 7H10V5.5h3.5c.67 0 1.15.65.96 1.29L13 11.5zm2.5 2.5H17v1.5h-1.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/8k.svg b/html/matt-chat/uswds/img/material-icons/8k.svg
new file mode 100644
index 0000000..5981ba4
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/8k.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M8 12.5h1.5V14H8zM8 10h1.5v1.5H8zm11-7H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-8 11c0 .55-.45 1-1 1H7.5c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1H10c.55 0 1 .45 1 1v4zm7 1h-1.75l-1.75-2.25V15H13V9h1.5v2.25L16.25 9H18l-2.25 3L18 15z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/8k_plus.svg b/html/matt-chat/uswds/img/material-icons/8k_plus.svg
new file mode 100644
index 0000000..d733ff2
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/8k_plus.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M6.5 12.5H8V14H6.5zm0-2.5H8v1.5H6.5zM19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9.5 14c0 .55-.45 1-1 1H6c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1h2.5c.55 0 1 .45 1 1v4zm6.5 1h-1.75l-1.75-2.25V15H11V9h1.5v2.25L14.25 9H16l-2.25 3L16 15zm4-2.5h-1.5V14h-1v-1.5H16v-1h1.5V10h1v1.5H20v1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/8mp.svg b/html/matt-chat/uswds/img/material-icons/8mp.svg
new file mode 100644
index 0000000..e29168a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/8mp.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11.5 9H13v1.5h-1.5zm0-2.5H13V8h-1.5zM19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 15.5h-1.5V14h-1v3H8v-3H7v4.5H5.5v-5c0-.55.45-1 1-1H11c.55 0 1 .45 1 1v5zm3.5 0H14v-6h3.5c.55 0 1 .45 1 1V16c0 .55-.45 1-1 1h-2v1.5zm-1-8c0 .55-.45 1-1 1H11c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1h2.5c.55 0 1 .45 1 1v4zm1 3.5H17v1.5h-1.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/9k.svg b/html/matt-chat/uswds/img/material-icons/9k.svg
new file mode 100644
index 0000000..0cd9370
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/9k.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M8 10h1.5v1.5H8zm11-7H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-8 11c0 .55-.45 1-1 1H6.5v-1.5h3v-1h-2c-.55 0-1-.45-1-1V10c0-.55.45-1 1-1H10c.55 0 1 .45 1 1v4zm7 1h-1.75l-1.75-2.25V15H13V9h1.5v2.25L16.25 9H18l-2.25 3L18 15z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/9k_plus.svg b/html/matt-chat/uswds/img/material-icons/9k_plus.svg
new file mode 100644
index 0000000..f1bcd98
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/9k_plus.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M6.5 10H8v1.5H6.5zM19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9.5 14c0 .55-.45 1-1 1H5v-1.5h3v-1H6c-.55 0-1-.45-1-1V10c0-.55.45-1 1-1h2.5c.55 0 1 .45 1 1v4zm6.5 1h-1.75l-1.75-2.25V15H11V9h1.5v2.25L14.25 9H16l-2.25 3L16 15zm4-2.5h-1.5V14h-1v-1.5H16v-1h1.5V10h1v1.5H20v1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/9mp.svg b/html/matt-chat/uswds/img/material-icons/9mp.svg
new file mode 100644
index 0000000..92b4184
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/9mp.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11.5 6.5H13V8h-1.5zM19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 15.5h-1.5V14h-1v3H8v-3H7v4.5H5.5v-5c0-.55.45-1 1-1H11c.55 0 1 .45 1 1v5zm3.5 0H14v-6h3.5c.55 0 1 .45 1 1V16c0 .55-.45 1-1 1h-2v1.5zm-1-8c0 .55-.45 1-1 1H10V10h3V9h-2c-.55 0-1-.45-1-1V6.5c0-.55.45-1 1-1h2.5c.55 0 1 .45 1 1v4zm1 3.5H17v1.5h-1.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/abc.svg b/html/matt-chat/uswds/img/material-icons/abc.svg
new file mode 100644
index 0000000..14434be
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/abc.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 11h-1.5v-.5h-2v3h2V13H21v1c0 .55-.45 1-1 1h-3c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1h3c.55 0 1 .45 1 1v1zM8 10v5H6.5v-1.5h-2V15H3v-5c0-.55.45-1 1-1h3c.55 0 1 .45 1 1zm-1.5.5h-2V12h2v-1.5zm7 1.5c.55 0 1 .45 1 1v1c0 .55-.45 1-1 1h-4V9h4c.55 0 1 .45 1 1v1c0 .55-.45 1-1 1zM11 10.5v.75h2v-.75h-2zm2 2.25h-2v.75h2v-.75z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/ac_unit.svg b/html/matt-chat/uswds/img/material-icons/ac_unit.svg
new file mode 100644
index 0000000..c4cc71f
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/ac_unit.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M22 11h-4.17l3.24-3.24-1.41-1.42L15 11h-2V9l4.66-4.66-1.42-1.41L13 6.17V2h-2v4.17L7.76 2.93 6.34 4.34 11 9v2H9L4.34 6.34 2.93 7.76 6.17 11H2v2h4.17l-3.24 3.24 1.41 1.42L9 13h2v2l-4.66 4.66 1.42 1.41L11 17.83V22h2v-4.17l3.24 3.24 1.42-1.41L13 15v-2h2l4.66 4.66 1.41-1.42L17.83 13H22z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/access_alarm.svg b/html/matt-chat/uswds/img/material-icons/access_alarm.svg
new file mode 100644
index 0000000..ec1cfbd
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/access_alarm.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m22 5.72-4.6-3.86-1.29 1.53 4.6 3.86L22 5.72zM7.88 3.39 6.6 1.86 2 5.71l1.29 1.53 4.59-3.85zM12.5 8H11v6l4.75 2.85.75-1.23-4-2.37V8zM12 4c-4.97 0-9 4.03-9 9s4.02 9 9 9a9 9 0 0 0 0-18zm0 16c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/access_alarms.svg b/html/matt-chat/uswds/img/material-icons/access_alarms.svg
new file mode 100644
index 0000000..6ba9559
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/access_alarms.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m22 5.7-4.6-3.9-1.3 1.5 4.6 3.9L22 5.7zM7.9 3.4 6.6 1.9 2 5.7l1.3 1.5 4.6-3.8zM12.5 8H11v6l4.7 2.9.8-1.2-4-2.4V8zM12 4c-5 0-9 4-9 9s4 9 9 9 9-4 9-9-4-9-9-9zm0 16c-3.9 0-7-3.1-7-7s3.1-7 7-7 7 3.1 7 7-3.1 7-7 7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/access_time.svg b/html/matt-chat/uswds/img/material-icons/access_time.svg
new file mode 100644
index 0000000..7d0fa77
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/access_time.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"/><path d="M12.5 7H11v6l5.25 3.15.75-1.23-4.5-2.67z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/access_time_filled.svg b/html/matt-chat/uswds/img/material-icons/access_time_filled.svg
new file mode 100644
index 0000000..e1f338b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/access_time_filled.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zm3.3 14.71L11 12.41V7h2v4.59l3.71 3.71-1.42 1.41z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/accessibility.svg b/html/matt-chat/uswds/img/material-icons/accessibility.svg
new file mode 100644
index 0000000..fda62ae
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/accessibility.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2zm9 7h-6v13h-2v-6h-2v6H9V9H3V7h18v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/accessibility_new.svg b/html/matt-chat/uswds/img/material-icons/accessibility_new.svg
new file mode 100644
index 0000000..1ced1d1
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/accessibility_new.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20.5 6c-2.61.7-5.67 1-8.5 1s-5.89-.3-8.5-1L3 8c1.86.5 4 .83 6 1v13h2v-6h2v6h2V9c2-.17 4.14-.5 6-1l-.5-2zM12 6c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/accessible.svg b/html/matt-chat/uswds/img/material-icons/accessible.svg
new file mode 100644
index 0000000..d09a569
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/accessible.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><circle cx="12" cy="4" r="2"/><path d="M19 13v-2c-1.54.02-3.09-.75-4.07-1.83l-1.29-1.43c-.17-.19-.38-.34-.61-.45-.01 0-.01-.01-.02-.01H13c-.35-.2-.75-.3-1.19-.26C10.76 7.11 10 8.04 10 9.09V15c0 1.1.9 2 2 2h5v5h2v-5.5c0-1.1-.9-2-2-2h-3v-3.45c1.29 1.07 3.25 1.94 5 1.95zm-6.17 5c-.41 1.16-1.52 2-2.83 2-1.66 0-3-1.34-3-3 0-1.31.84-2.41 2-2.83V12.1a5 5 0 1 0 5.9 5.9h-2.07z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/accessible_forward.svg b/html/matt-chat/uswds/img/material-icons/accessible_forward.svg
new file mode 100644
index 0000000..afb0690
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/accessible_forward.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><circle cx="17" cy="4.54" r="2"/><path d="M14 17h-2c0 1.65-1.35 3-3 3s-3-1.35-3-3 1.35-3 3-3v-2c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5zm3-3.5h-1.86l1.67-3.67C17.42 8.5 16.44 7 14.96 7h-5.2c-.81 0-1.54.47-1.87 1.2L7.22 10l1.92.53L9.79 9H12l-1.83 4.1c-.6 1.33.39 2.9 1.85 2.9H17v5h2v-5.5c0-1.1-.9-2-2-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/account_balance.svg b/html/matt-chat/uswds/img/material-icons/account_balance.svg
new file mode 100644
index 0000000..923f730
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/account_balance.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M4 10h3v7H4zm6.5 0h3v7h-3zM2 19h20v3H2zm15-9h3v7h-3zm-5-9L2 6v2h20V6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/account_balance_wallet.svg b/html/matt-chat/uswds/img/material-icons/account_balance_wallet.svg
new file mode 100644
index 0000000..c666d9f
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/account_balance_wallet.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 18v1c0 1.1-.9 2-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14c1.1 0 2 .9 2 2v1h-9a2 2 0 0 0-2 2v8a2 2 0 0 0 2 2h9zm-9-2h10V8H12v8zm4-2.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/account_box.svg b/html/matt-chat/uswds/img/material-icons/account_box.svg
new file mode 100644
index 0000000..e74d64c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/account_box.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 3c1.93 0 3.5 1.57 3.5 3.5S13.93 13 12 13s-3.5-1.57-3.5-3.5S10.07 6 12 6zm7 13H5v-.23c0-.62.28-1.2.76-1.58C7.47 15.82 9.64 15 12 15s4.53.82 6.24 2.19c.48.38.76.97.76 1.58V19z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/account_circle.svg b/html/matt-chat/uswds/img/material-icons/account_circle.svg
new file mode 100644
index 0000000..7ba7670
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/account_circle.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 4c1.93 0 3.5 1.57 3.5 3.5S13.93 13 12 13s-3.5-1.57-3.5-3.5S10.07 6 12 6zm0 14c-2.03 0-4.43-.82-6.14-2.88a9.947 9.947 0 0 1 12.28 0C16.43 19.18 14.03 20 12 20z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/account_tree.svg b/html/matt-chat/uswds/img/material-icons/account_tree.svg
new file mode 100644
index 0000000..2ff5a73
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/account_tree.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M22 11V3h-7v3H9V3H2v8h7V8h2v10h4v3h7v-8h-7v3h-2V8h2v3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/ad_units.svg b/html/matt-chat/uswds/img/material-icons/ad_units.svg
new file mode 100644
index 0000000..87708e0
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/ad_units.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 1H7c-1.1 0-2 .9-2 2v18c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 18H7V5h10v14zM8 6h8v2H8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/adb.svg b/html/matt-chat/uswds/img/material-icons/adb.svg
new file mode 100644
index 0000000..ca94af5
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/adb.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M5 16c0 3.87 3.13 7 7 7s7-3.13 7-7v-4H5v4zM16.12 4.37l2.1-2.1-.82-.83-2.3 2.31C14.16 3.28 13.12 3 12 3s-2.16.28-3.09.75L6.6 1.44l-.82.83 2.1 2.1C6.14 5.64 5 7.68 5 10v1h14v-1c0-2.32-1.14-4.36-2.88-5.63zM9 9c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm6 0c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/add.svg b/html/matt-chat/uswds/img/material-icons/add.svg
new file mode 100644
index 0000000..58f73e9
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/add.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/add_a_photo.svg b/html/matt-chat/uswds/img/material-icons/add_a_photo.svg
new file mode 100644
index 0000000..98c6d86
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/add_a_photo.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 4V1h2v3h3v2H5v3H3V6H0V4h3zm3 6V7h3V4h7l1.83 2H21c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H5c-1.1 0-2-.9-2-2V10h3zm7 9c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zm-3.2-5c0 1.77 1.43 3.2 3.2 3.2s3.2-1.43 3.2-3.2-1.43-3.2-3.2-3.2-3.2 1.43-3.2 3.2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/add_alarm.svg b/html/matt-chat/uswds/img/material-icons/add_alarm.svg
new file mode 100644
index 0000000..5f14e27
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/add_alarm.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M7.88 3.39 6.6 1.86 2 5.71l1.29 1.53 4.59-3.85zM22 5.72l-4.6-3.86-1.29 1.53 4.6 3.86L22 5.72zM12 4c-4.97 0-9 4.03-9 9s4.02 9 9 9a9 9 0 0 0 0-18zm0 16c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7zm1-11h-2v3H8v2h3v3h2v-3h3v-2h-3V9z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/add_alert.svg b/html/matt-chat/uswds/img/material-icons/add_alert.svg
new file mode 100644
index 0000000..ceb0f99
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/add_alert.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10.01 21.01c0 1.1.89 1.99 1.99 1.99s1.99-.89 1.99-1.99h-3.98zm8.87-4.19V11c0-3.25-2.25-5.97-5.29-6.69v-.72C13.59 2.71 12.88 2 12 2s-1.59.71-1.59 1.59v.72A6.873 6.873 0 0 0 5.12 11v5.82L3 18.94V20h18v-1.06l-2.12-2.12zM16 13.01h-3v3h-2v-3H8V11h3V8h2v3h3v2.01z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/add_box.svg b/html/matt-chat/uswds/img/material-icons/add_box.svg
new file mode 100644
index 0000000..0d6521c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/add_box.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10h-4v4h-2v-4H7v-2h4V7h2v4h4v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/add_business.svg b/html/matt-chat/uswds/img/material-icons/add_business.svg
new file mode 100644
index 0000000..423367b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/add_business.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15 17h2v-3h1v-2l-1-5H2l-1 5v2h1v6h9v-6h4v3zm-6 1H4v-4h5v4zM2 4h15v2H2z"/><path d="M20 18v-3h-2v3h-3v2h3v3h2v-3h3v-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/add_card.svg b/html/matt-chat/uswds/img/material-icons/add_card.svg
new file mode 100644
index 0000000..28533f3
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/add_card.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 4H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2h10v-2H4v-6h18V6c0-1.11-.89-2-2-2zm0 4H4V6h16v2zm4 9v2h-3v3h-2v-3h-3v-2h3v-3h2v3h3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/add_chart.svg b/html/matt-chat/uswds/img/material-icons/add_chart.svg
new file mode 100644
index 0000000..5ee61ad
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/add_chart.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M6 9.99h2v7H6zm8 3h2v4h-2zm-4-6h2v10h-2zM20 7V4h-2v3h-3v2h3v3h2V9h3V7zm-2 12H4V5h12V3H4c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-5h-2v5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/add_circle.svg b/html/matt-chat/uswds/img/material-icons/add_circle.svg
new file mode 100644
index 0000000..60aaa95
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/add_circle.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm5 11h-4v4h-2v-4H7v-2h4V7h2v4h4v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/add_circle_outline.svg b/html/matt-chat/uswds/img/material-icons/add_circle_outline.svg
new file mode 100644
index 0000000..55c6b1b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/add_circle_outline.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13 7h-2v4H7v2h4v4h2v-4h4v-2h-4V7zm-1-5C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/add_comment.svg b/html/matt-chat/uswds/img/material-icons/add_comment.svg
new file mode 100644
index 0000000..c958e24
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/add_comment.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21.99 4c0-1.1-.89-2-1.99-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h14l4 4-.01-18zM17 11h-4v4h-2v-4H7V9h4V5h2v4h4v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/add_home.svg b/html/matt-chat/uswds/img/material-icons/add_home.svg
new file mode 100644
index 0000000..4591f1a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/add_home.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 11c.7 0 1.37.1 2 .29V9l-8-6-8 6v12h7.68A6.995 6.995 0 0 1 18 11z"/><path d="M18 13c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5zm3 5.5h-2.5V21h-1v-2.5H15v-1h2.5V15h1v2.5H21v1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/add_home_work.svg b/html/matt-chat/uswds/img/material-icons/add_home_work.svg
new file mode 100644
index 0000000..82f4675
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/add_home_work.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15 11.68V11L8 6l-7 5v10h5v-6h4v6h1.68c-.43-.91-.68-1.92-.68-3 0-2.79 1.64-5.19 4-6.32zm8 1.43V3H10v1.97l7 5v1.11c.33-.05.66-.08 1-.08 1.96 0 3.73.81 5 2.11zM17 7h2v2h-2V7z"/><path d="M23 18c0-2.76-2.24-5-5-5s-5 2.24-5 5 2.24 5 5 5 5-2.24 5-5zm-5.5 3v-2.5H15v-1h2.5V15h1v2.5H21v1h-2.5V21h-1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/add_ic_call.svg b/html/matt-chat/uswds/img/material-icons/add_ic_call.svg
new file mode 100644
index 0000000..b87f776
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/add_ic_call.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 15.5c-1.25 0-2.45-.2-3.57-.57a1.02 1.02 0 0 0-1.02.24l-2.2 2.2a15.045 15.045 0 0 1-6.59-6.59l2.2-2.21a.96.96 0 0 0 .25-1A11.36 11.36 0 0 1 8.5 4c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.5c0-.55-.45-1-1-1zM21 6h-3V3h-2v3h-3v2h3v3h2V8h3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/add_link.svg b/html/matt-chat/uswds/img/material-icons/add_link.svg
new file mode 100644
index 0000000..b0cf540
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/add_link.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M8 11h8v2H8zm12.1 1H22c0-2.76-2.24-5-5-5h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1zM3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM19 12h-2v3h-3v2h3v3h2v-3h3v-2h-3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/add_location.svg b/html/matt-chat/uswds/img/material-icons/add_location.svg
new file mode 100644
index 0000000..6d2721b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/add_location.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C8.14 2 5 5.14 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.86-3.14-7-7-7zm4 8h-3v3h-2v-3H8V8h3V5h2v3h3v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/add_location_alt.svg b/html/matt-chat/uswds/img/material-icons/add_location_alt.svg
new file mode 100644
index 0000000..03c037a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/add_location_alt.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 1v3h3v2h-3v3h-2V6h-3V4h3V1h2zm-8 12c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm2-9.75V7h3v3h2.92c.05.39.08.79.08 1.2 0 3.32-2.67 7.25-8 11.8-5.33-4.55-8-8.48-8-11.8C4 6.22 7.8 3 12 3c.68 0 1.35.08 2 .25z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/add_moderator.svg b/html/matt-chat/uswds/img/material-icons/add_moderator.svg
new file mode 100644
index 0000000..81f3fde
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/add_moderator.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13.22 22.61c-.4.15-.8.29-1.22.39-5.16-1.26-9-6.45-9-12V5l9-4 9 4v6c0 .9-.11 1.78-.3 2.65-.81-.41-1.73-.65-2.7-.65-3.31 0-6 2.69-6 6 0 1.36.46 2.61 1.22 3.61zM19 20v2.99s-1.99.01-2 0V20h-3v-2h3v-3h2v3h3v2h-3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/add_photo_alternate.svg b/html/matt-chat/uswds/img/material-icons/add_photo_alternate.svg
new file mode 100644
index 0000000..23c2912
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/add_photo_alternate.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 7v2.99s-1.99.01-2 0V7h-3s.01-1.99 0-2h3V2h2v3h3v2h-3zm-3 4V8h-3V5H5c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2v-8h-3zM5 19l3-4 2 3 3-4 4 5H5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/add_reaction.svg b/html/matt-chat/uswds/img/material-icons/add_reaction.svg
new file mode 100644
index 0000000..f15e351
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/add_reaction.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 9V7h-2V2.84A9.929 9.929 0 0 0 11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12c0-1.05-.17-2.05-.47-3H18zm-2.5-1c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5-1.5-.67-1.5-1.5.67-1.5 1.5-1.5zm-7 0c.83 0 1.5.67 1.5 1.5S9.33 11 8.5 11 7 10.33 7 9.5 7.67 8 8.5 8zm3.5 9.5c-2.33 0-4.31-1.46-5.11-3.5h10.22c-.8 2.04-2.78 3.5-5.11 3.5zM22 3h2v2h-2v2h-2V5h-2V3h2V1h2v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/add_road.svg b/html/matt-chat/uswds/img/material-icons/add_road.svg
new file mode 100644
index 0000000..6ec8d64
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/add_road.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 18v-3h-2v3h-3v2h3v3h2v-3h3v-2zM18 4h2v9h-2zM4 4h2v16H4zm7 0h2v4h-2zm0 6h2v4h-2zm0 6h2v4h-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/add_shopping_cart.svg b/html/matt-chat/uswds/img/material-icons/add_shopping_cart.svg
new file mode 100644
index 0000000..dd6c9ad
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/add_shopping_cart.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11 9h2V6h3V4h-3V1h-2v3H8v2h3v3zm-4 9c-1.1 0-1.99.9-1.99 2S5.9 22 7 22s2-.9 2-2-.9-2-2-2zm10 0c-1.1 0-1.99.9-1.99 2s.89 2 1.99 2 2-.9 2-2-.9-2-2-2zm-9.83-3.25.03-.12.9-1.63h7.45c.75 0 1.41-.41 1.75-1.03l3.86-7.01L19.42 4h-.01l-1.1 2-2.76 5H8.53l-.13-.27L6.16 6l-.95-2-.94-2H1v2h2l3.6 7.59-1.35 2.45c-.16.28-.25.61-.25.96 0 1.1.9 2 2 2h12v-2H7.42c-.13 0-.25-.11-.25-.25z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/add_task.svg b/html/matt-chat/uswds/img/material-icons/add_task.svg
new file mode 100644
index 0000000..92a3ef2
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/add_task.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M22 5.18 10.59 16.6l-4.24-4.24 1.41-1.41 2.83 2.83 10-10L22 5.18zM12 20c-4.41 0-8-3.59-8-8s3.59-8 8-8c1.57 0 3.04.46 4.28 1.25l1.45-1.45A10.02 10.02 0 0 0 12 2C6.48 2 2 6.48 2 12s4.48 10 10 10c1.73 0 3.36-.44 4.78-1.22l-1.5-1.5c-1 .46-2.11.72-3.28.72zm7-5h-3v2h3v3h2v-3h3v-2h-3v-3h-2v3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/add_to_drive.svg b/html/matt-chat/uswds/img/material-icons/add_to_drive.svg
new file mode 100644
index 0000000..acdc711
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/add_to_drive.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 21v-3h3v-2h-3v-3h-2v3h-3v2h3v3h2zm-4.97.5H5.66c-.72 0-1.38-.38-1.73-1l-2.36-4.1c-.36-.62-.35-1.38.01-2L7.92 3.49c.36-.61 1.02-.99 1.73-.99h4.7c.71 0 1.37.38 1.73.99l4.48 7.71a6.176 6.176 0 0 0-2.4-.14L14.35 4.5h-4.7L3.31 15.41l2.35 4.09h7.89c.35.77.85 1.45 1.48 2zM13.34 15c-.22.63-.34 1.3-.34 2H7.25l-.73-1.27 4.58-7.98h1.8l2.53 4.42c-.56.42-1.05.93-1.44 1.51l-2-3.49L9.25 15h4.09z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/add_to_home_screen.svg b/html/matt-chat/uswds/img/material-icons/add_to_home_screen.svg
new file mode 100644
index 0000000..1f4bd73
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/add_to_home_screen.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 1.01 8 1c-1.1 0-2 .9-2 2v3h2V5h10v14H8v-1H6v3c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-1.99-2-1.99zM10 15h2V8H5v2h3.59L3 15.59 4.41 17 10 11.41z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/add_to_photos.svg b/html/matt-chat/uswds/img/material-icons/add_to_photos.svg
new file mode 100644
index 0000000..baea3e9
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/add_to_photos.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6zm16-4H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-1 9h-4v4h-2v-4H9V9h4V5h2v4h4v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/add_to_queue.svg b/html/matt-chat/uswds/img/material-icons/add_to_queue.svg
new file mode 100644
index 0000000..0320a5c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/add_to_queue.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 3H3c-1.11 0-2 .89-2 2v12a2 2 0 0 0 2 2h5v2h8v-2h5c1.1 0 1.99-.9 1.99-2L23 5a2 2 0 0 0-2-2zm0 14H3V5h18v12zm-5-7v2h-3v3h-2v-3H8v-2h3V7h2v3h3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/addchart.svg b/html/matt-chat/uswds/img/material-icons/addchart.svg
new file mode 100644
index 0000000..036aace
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/addchart.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M22 5v2h-3v3h-2V7h-3V5h3V2h2v3h3zm-3 14H5V5h6V3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-6h-2v6zm-4-6v4h2v-4h-2zm-4 4h2V9h-2v8zm-2 0v-6H7v6h2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/adf_scanner.svg b/html/matt-chat/uswds/img/material-icons/adf_scanner.svg
new file mode 100644
index 0000000..27921da
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/adf_scanner.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 12h-1V4H6v8H5c-1.66 0-3 1.34-3 3v5h20v-5c0-1.66-1.34-3-3-3zm-3 0H8V6h8v6zm2 5c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/adjust.svg b/html/matt-chat/uswds/img/material-icons/adjust.svg
new file mode 100644
index 0000000..a096236
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/adjust.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.49 2 2 6.49 2 12s4.49 10 10 10 10-4.49 10-10S17.51 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm3-8c0 1.66-1.34 3-3 3s-3-1.34-3-3 1.34-3 3-3 3 1.34 3 3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/admin_panel_settings.svg b/html/matt-chat/uswds/img/material-icons/admin_panel_settings.svg
new file mode 100644
index 0000000..645014c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/admin_panel_settings.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 11c.34 0 .67.04 1 .09V6.27L10.5 3 3 6.27v4.91c0 4.54 3.2 8.79 7.5 9.82.55-.13 1.08-.32 1.6-.55-.69-.98-1.1-2.17-1.1-3.45 0-3.31 2.69-6 6-6z"/><path d="M17 13c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 1.38c.62 0 1.12.51 1.12 1.12s-.51 1.12-1.12 1.12-1.12-.51-1.12-1.12.5-1.12 1.12-1.12zm0 5.37c-.93 0-1.74-.46-2.24-1.17.05-.72 1.51-1.08 2.24-1.08s2.19.36 2.24 1.08c-.5.71-1.31 1.17-2.24 1.17z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/ads_click.svg b/html/matt-chat/uswds/img/material-icons/ads_click.svg
new file mode 100644
index 0000000..dafcc44
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/ads_click.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11.71 17.99A5.993 5.993 0 0 1 6 12c0-3.31 2.69-6 6-6 3.22 0 5.84 2.53 5.99 5.71l-2.1-.63a3.999 3.999 0 1 0-4.81 4.81l.63 2.1zM22 12c0 .3-.01.6-.04.9l-1.97-.59c.01-.1.01-.21.01-.31 0-4.42-3.58-8-8-8s-8 3.58-8 8 3.58 8 8 8c.1 0 .21 0 .31-.01l.59 1.97c-.3.03-.6.04-.9.04-5.52 0-10-4.48-10-10S6.48 2 12 2s10 4.48 10 10zm-3.77 4.26L22 15l-10-3 3 10 1.26-3.77 4.27 4.27 1.98-1.98-4.28-4.26z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/agriculture.svg b/html/matt-chat/uswds/img/material-icons/agriculture.svg
new file mode 100644
index 0000000..779f4ef
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/agriculture.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19.5 12c.93 0 1.78.28 2.5.76V8c0-1.1-.9-2-2-2h-6.29l-1.06-1.06 1.41-1.41-.71-.71-3.53 3.53.71.71 1.41-1.41L13 6.71V9c0 1.1-.9 2-2 2h-.54A5.98 5.98 0 0 1 12 15c0 .34-.04.67-.09 1h3.14c.25-2.25 2.14-4 4.45-4z"/><path d="M19.5 13c-1.93 0-3.5 1.57-3.5 3.5s1.57 3.5 3.5 3.5 3.5-1.57 3.5-3.5-1.57-3.5-3.5-3.5zm0 5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zM4 9h5c0-1.1-.9-2-2-2H4c-.55 0-1 .45-1 1s.45 1 1 1zm5.83 4.82-.18-.47.93-.35a4.92 4.92 0 0 0-2.31-2.43l-.4.89-.46-.21.4-.9C7.26 10.13 6.64 10 6 10c-.53 0-1.04.11-1.52.26l.34.91-.47.18-.35-.93a4.92 4.92 0 0 0-2.43 2.31l.89.4-.21.46-.9-.4C1.13 13.74 1 14.36 1 15c0 .53.11 1.04.26 1.52l.91-.34.18.47-.93.35a4.92 4.92 0 0 0 2.31 2.43l.4-.89.46.21-.4.9c.55.22 1.17.35 1.81.35.53 0 1.04-.11 1.52-.26l-.34-.91.47-.18.35.93a4.92 4.92 0 0 0 2.43-2.31l-.89-.4.21-.46.9.4c.22-.55.35-1.17.35-1.81 0-.53-.11-1.04-.26-1.52l-.91.34zm-2.68 3.95c-1.53.63-3.29-.09-3.92-1.62-.63-1.53.09-3.29 1.62-3.92 1.53-.63 3.29.09 3.92 1.62.64 1.53-.09 3.29-1.62 3.92z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/air.svg b/html/matt-chat/uswds/img/material-icons/air.svg
new file mode 100644
index 0000000..a81cc41
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/air.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M14.5 17c0 1.65-1.35 3-3 3s-3-1.35-3-3h2c0 .55.45 1 1 1s1-.45 1-1-.45-1-1-1H2v-2h9.5c1.65 0 3 1.35 3 3zM19 6.5C19 4.57 17.43 3 15.5 3S12 4.57 12 6.5h2c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5S16.33 8 15.5 8H2v2h13.5c1.93 0 3.5-1.57 3.5-3.5zm-.5 4.5H2v2h16.5c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5v2c1.93 0 3.5-1.57 3.5-3.5S20.43 11 18.5 11z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/airline_seat_flat.svg b/html/matt-chat/uswds/img/material-icons/airline_seat_flat.svg
new file mode 100644
index 0000000..d7e5f47
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/airline_seat_flat.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M22 11v2H9V7h9c2.21 0 4 1.79 4 4zM2 14v2h6v2h8v-2h6v-2H2zm5.14-1.9a3 3 0 0 0-.04-4.24 3 3 0 0 0-4.24.04 3 3 0 0 0 .04 4.24 3 3 0 0 0 4.24-.04z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/airline_seat_flat_angled.svg b/html/matt-chat/uswds/img/material-icons/airline_seat_flat_angled.svg
new file mode 100644
index 0000000..ba5d011
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/airline_seat_flat_angled.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m22.25 14.29-.69 1.89L9.2 11.71l2.08-5.66 8.56 3.09a4 4 0 0 1 2.41 5.15zM1.5 12.14 8 14.48V19h8v-1.63L20.52 19l.69-1.89-19.02-6.86-.69 1.89zm5.8-1.94a3.01 3.01 0 0 0 1.41-4A3.005 3.005 0 0 0 4.7 4.8a2.99 2.99 0 0 0-1.4 4 2.99 2.99 0 0 0 4 1.4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/airline_seat_individual_suite.svg b/html/matt-chat/uswds/img/material-icons/airline_seat_individual_suite.svg
new file mode 100644
index 0000000..5539558
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/airline_seat_individual_suite.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M7 13c1.65 0 3-1.35 3-3S8.65 7 7 7s-3 1.35-3 3 1.35 3 3 3zm12-6h-8v7H3V7H1v10h22v-6c0-2.21-1.79-4-4-4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/airline_seat_legroom_extra.svg b/html/matt-chat/uswds/img/material-icons/airline_seat_legroom_extra.svg
new file mode 100644
index 0000000..f9f9ba5
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/airline_seat_legroom_extra.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M4 12V3H2v9c0 2.76 2.24 5 5 5h6v-2H7c-1.66 0-3-1.34-3-3zm18.83 5.24c-.38-.72-1.29-.97-2.03-.63l-1.09.5-3.41-6.98a2.01 2.01 0 0 0-1.79-1.12L11 9V3H5v8c0 1.66 1.34 3 3 3h7l3.41 7 3.72-1.7c.77-.36 1.1-1.3.7-2.06z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/airline_seat_legroom_normal.svg b/html/matt-chat/uswds/img/material-icons/airline_seat_legroom_normal.svg
new file mode 100644
index 0000000..6ecb22b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/airline_seat_legroom_normal.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M5 12V3H3v9c0 2.76 2.24 5 5 5h6v-2H8c-1.66 0-3-1.34-3-3zm15.5 6H19v-7c0-1.1-.9-2-2-2h-5V3H6v8c0 1.65 1.35 3 3 3h7v7h4.5c.83 0 1.5-.67 1.5-1.5s-.67-1.5-1.5-1.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/airline_seat_legroom_reduced.svg b/html/matt-chat/uswds/img/material-icons/airline_seat_legroom_reduced.svg
new file mode 100644
index 0000000..a640230
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/airline_seat_legroom_reduced.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19.97 19.2c.18.96-.55 1.8-1.47 1.8H14v-3l1-4H9c-1.65 0-3-1.35-3-3V3h6v6h5c1.1 0 2 .9 2 2l-2 7h1.44c.73 0 1.39.49 1.53 1.2zM5 12V3H3v9c0 2.76 2.24 5 5 5h4v-2H8c-1.66 0-3-1.34-3-3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/airline_seat_recline_extra.svg b/html/matt-chat/uswds/img/material-icons/airline_seat_recline_extra.svg
new file mode 100644
index 0000000..1700311
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/airline_seat_recline_extra.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M5.35 5.64c-.9-.64-1.12-1.88-.49-2.79.63-.9 1.88-1.12 2.79-.49.9.64 1.12 1.88.49 2.79-.64.9-1.88 1.12-2.79.49zM16 19H8.93c-1.48 0-2.74-1.08-2.96-2.54L4 7H2l1.99 9.76A5.01 5.01 0 0 0 8.94 21H16v-2zm.23-4h-4.88l-1.03-4.1c1.58.89 3.28 1.54 5.15 1.22V9.99c-1.63.31-3.44-.27-4.69-1.25L9.14 7.47c-.23-.18-.49-.3-.76-.38a2.21 2.21 0 0 0-.99-.06h-.02a2.268 2.268 0 0 0-1.84 2.61l1.35 5.92A3.008 3.008 0 0 0 9.83 18h6.85l3.82 3 1.5-1.5-5.77-4.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/airline_seat_recline_normal.svg b/html/matt-chat/uswds/img/material-icons/airline_seat_recline_normal.svg
new file mode 100644
index 0000000..46d6d9b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/airline_seat_recline_normal.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M7.59 5.41c-.78-.78-.78-2.05 0-2.83.78-.78 2.05-.78 2.83 0 .78.78.78 2.05 0 2.83-.79.79-2.05.79-2.83 0zM6 16V7H4v9c0 2.76 2.24 5 5 5h6v-2H9c-1.66 0-3-1.34-3-3zm14 4.07L14.93 15H11.5v-3.68c1.4 1.15 3.6 2.16 5.5 2.16v-2.16c-1.66.02-3.61-.87-4.67-2.04l-1.4-1.55c-.19-.21-.43-.38-.69-.5-.29-.14-.62-.23-.96-.23h-.03C8.01 7 7 8.01 7 9.25V15c0 1.66 1.34 3 3 3h5.07l3.5 3.5L20 20.07z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/airline_stops.svg b/html/matt-chat/uswds/img/material-icons/airline_stops.svg
new file mode 100644
index 0000000..6154d0d
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/airline_stops.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18.21 9.21C15.93 10.78 13.45 13.3 13 17h2v2H9v-2h2c-.5-4.5-4.37-8-9-8V7c4.39 0 8.22 2.55 10 6.3 1.13-2.43 2.99-4.25 4.78-5.52L14 5h7v7l-2.79-2.79z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/airlines.svg b/html/matt-chat/uswds/img/material-icons/airlines.svg
new file mode 100644
index 0000000..1b11b73
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/airlines.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13 4 2 20h17l3-16h-9zm1.5 10a2.5 2.5 0 0 1 0-5 2.5 2.5 0 0 1 0 5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/airplane_ticket.svg b/html/matt-chat/uswds/img/material-icons/airplane_ticket.svg
new file mode 100644
index 0000000..0473b84
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/airplane_ticket.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20.19 4H4c-1.1 0-1.99.9-1.99 2v4c1.1 0 1.99.9 1.99 2s-.89 2-2 2v4c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.81-2-1.81-2zm-2.46 9.3-8.86 2.36-1.66-2.88.93-.25 1.26.99 2.39-.64-2.4-4.16 1.4-.38 4.01 3.74 2.44-.65a.967.967 0 0 1 1.18.68.988.988 0 0 1-.69 1.19z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/airplanemode_active.svg b/html/matt-chat/uswds/img/material-icons/airplanemode_active.svg
new file mode 100644
index 0000000..83d3141
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/airplanemode_active.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M22 16v-2l-8.5-5V3.5c0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5V9L2 14v2l8.5-2.5V19L8 20.5V22l4-1 4 1v-1.5L13.5 19v-5.5L22 16z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/airplanemode_inactive.svg b/html/matt-chat/uswds/img/material-icons/airplanemode_inactive.svg
new file mode 100644
index 0000000..71bfa86
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/airplanemode_inactive.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10.5 7.67V3.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5V9l8.5 5v2l-4.49-1.32-7.01-7.01zm9.28 14.94 1.41-1.41-7.69-7.7-3.94-3.94-6.75-6.75-1.42 1.41 6.38 6.38L2 14v2l8.5-2.5V19L8 20.5V22l4-1 4 1v-1.5L13.5 19v-2.67l6.28 6.28z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/airplay.svg b/html/matt-chat/uswds/img/material-icons/airplay.svg
new file mode 100644
index 0000000..e7c60a4
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/airplay.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M6 22h12l-6-6z"/><path d="M21 3H3c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h4v-2H3V5h18v12h-4v2h4c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/airport_shuttle.svg b/html/matt-chat/uswds/img/material-icons/airport_shuttle.svg
new file mode 100644
index 0000000..e53dd29
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/airport_shuttle.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 5H3a2 2 0 0 0-2 2v9h2c0 1.65 1.34 3 3 3s3-1.35 3-3h5.5c0 1.65 1.34 3 3 3s3-1.35 3-3H23v-5l-6-6zM3 11V7h4v4H3zm3 6.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm7-6.5H9V7h4v4zm4.5 6.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zM15 11V7h1l4 4h-5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/alarm.svg b/html/matt-chat/uswds/img/material-icons/alarm.svg
new file mode 100644
index 0000000..ec1cfbd
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/alarm.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m22 5.72-4.6-3.86-1.29 1.53 4.6 3.86L22 5.72zM7.88 3.39 6.6 1.86 2 5.71l1.29 1.53 4.59-3.85zM12.5 8H11v6l4.75 2.85.75-1.23-4-2.37V8zM12 4c-4.97 0-9 4.03-9 9s4.02 9 9 9a9 9 0 0 0 0-18zm0 16c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/alarm_add.svg b/html/matt-chat/uswds/img/material-icons/alarm_add.svg
new file mode 100644
index 0000000..5f14e27
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/alarm_add.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M7.88 3.39 6.6 1.86 2 5.71l1.29 1.53 4.59-3.85zM22 5.72l-4.6-3.86-1.29 1.53 4.6 3.86L22 5.72zM12 4c-4.97 0-9 4.03-9 9s4.02 9 9 9a9 9 0 0 0 0-18zm0 16c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7zm1-11h-2v3H8v2h3v3h2v-3h3v-2h-3V9z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/alarm_off.svg b/html/matt-chat/uswds/img/material-icons/alarm_off.svg
new file mode 100644
index 0000000..9b9495d
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/alarm_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 6c3.87 0 7 3.13 7 7 0 .84-.16 1.65-.43 2.4l1.52 1.52c.58-1.19.91-2.51.91-3.92a9 9 0 0 0-9-9c-1.41 0-2.73.33-3.92.91L9.6 6.43C10.35 6.16 11.16 6 12 6zm10-.28-4.6-3.86-1.29 1.53 4.6 3.86L22 5.72zM2.92 2.29 1.65 3.57 2.98 4.9l-1.11.93 1.42 1.42 1.11-.94.8.8A8.964 8.964 0 0 0 3 13c0 4.97 4.02 9 9 9 2.25 0 4.31-.83 5.89-2.2l2.2 2.2 1.27-1.27L3.89 3.27l-.97-.98zm13.55 16.1C15.26 19.39 13.7 20 12 20c-3.87 0-7-3.13-7-7 0-1.7.61-3.26 1.61-4.47l9.86 9.86zM8.02 3.28 6.6 1.86l-.86.71 1.42 1.42.86-.71z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/alarm_on.svg b/html/matt-chat/uswds/img/material-icons/alarm_on.svg
new file mode 100644
index 0000000..148f484
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/alarm_on.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m22 5.72-4.6-3.86-1.29 1.53 4.6 3.86L22 5.72zM7.88 3.39 6.6 1.86 2 5.71l1.29 1.53 4.59-3.85zM12 4c-4.97 0-9 4.03-9 9s4.02 9 9 9a9 9 0 0 0 0-18zm0 16c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7zm-1.46-5.47L8.41 12.4l-1.06 1.06 3.18 3.18 6-6-1.06-1.06-4.93 4.95z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/album.svg b/html/matt-chat/uswds/img/material-icons/album.svg
new file mode 100644
index 0000000..e153be6
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/album.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 14.5c-2.49 0-4.5-2.01-4.5-4.5S9.51 7.5 12 7.5s4.5 2.01 4.5 4.5-2.01 4.5-4.5 4.5zm0-5.5c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/align_horizontal_center.svg b/html/matt-chat/uswds/img/material-icons/align_horizontal_center.svg
new file mode 100644
index 0000000..a9f7dd1
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/align_horizontal_center.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11 2h2v5h8v3h-8v4h5v3h-5v5h-2v-5H6v-3h5v-4H3V7h8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/align_horizontal_left.svg b/html/matt-chat/uswds/img/material-icons/align_horizontal_left.svg
new file mode 100644
index 0000000..c3cf943
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/align_horizontal_left.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M4 22H2V2h2v20zM22 7H6v3h16V7zm-6 7H6v3h10v-3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/align_horizontal_right.svg b/html/matt-chat/uswds/img/material-icons/align_horizontal_right.svg
new file mode 100644
index 0000000..d4cd5b3
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/align_horizontal_right.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 2h2v20h-2V2zM2 10h16V7H2v3zm6 7h10v-3H8v3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/align_vertical_bottom.svg b/html/matt-chat/uswds/img/material-icons/align_vertical_bottom.svg
new file mode 100644
index 0000000..2f9a4e4
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/align_vertical_bottom.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M22 22H2v-2h20v2zM10 2H7v16h3V2zm7 6h-3v10h3V8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/align_vertical_center.svg b/html/matt-chat/uswds/img/material-icons/align_vertical_center.svg
new file mode 100644
index 0000000..6282c1f
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/align_vertical_center.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M22 11h-5V6h-3v5h-4V3H7v8H1.84v2H7v8h3v-8h4v5h3v-5h5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/align_vertical_top.svg b/html/matt-chat/uswds/img/material-icons/align_vertical_top.svg
new file mode 100644
index 0000000..87d6fcc
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/align_vertical_top.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M22 2v2H2V2h20zM7 22h3V6H7v16zm7-6h3V6h-3v10z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/all_inbox.svg b/html/matt-chat/uswds/img/material-icons/all_inbox.svg
new file mode 100644
index 0000000..f9c3741
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/all_inbox.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H5c-1.1 0-2 .9-2 2v7c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 6h-4c0 1.62-1.38 3-3 3s-3-1.38-3-3H5V5h14v4zm-4 7h6v3c0 1.1-.9 2-2 2H5c-1.1 0-2-.9-2-2v-3h6c0 1.66 1.34 3 3 3s3-1.34 3-3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/all_inclusive.svg b/html/matt-chat/uswds/img/material-icons/all_inclusive.svg
new file mode 100644
index 0000000..ae0ac8e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/all_inclusive.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18.6 6.62c-1.44 0-2.8.56-3.77 1.53L12 10.66 10.48 12h.01L7.8 14.39c-.64.64-1.49.99-2.4.99-1.87 0-3.39-1.51-3.39-3.38S3.53 8.62 5.4 8.62c.91 0 1.76.35 2.44 1.03l1.13 1 1.51-1.34L9.22 8.2A5.37 5.37 0 0 0 5.4 6.62C2.42 6.62 0 9.04 0 12s2.42 5.38 5.4 5.38c1.44 0 2.8-.56 3.77-1.53l2.83-2.5.01.01L13.52 12h-.01l2.69-2.39c.64-.64 1.49-.99 2.4-.99 1.87 0 3.39 1.51 3.39 3.38s-1.52 3.38-3.39 3.38c-.9 0-1.76-.35-2.44-1.03l-1.14-1.01-1.51 1.34 1.27 1.12a5.386 5.386 0 0 0 3.82 1.57c2.98 0 5.4-2.41 5.4-5.38s-2.42-5.37-5.4-5.37z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/all_out.svg b/html/matt-chat/uswds/img/material-icons/all_out.svg
new file mode 100644
index 0000000..43b2882
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/all_out.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m16.21 4.16 4 4v-4zm4 12-4 4h4zm-12 4-4-4v4zm-4-12 4-4h-4zm12.95-.95c-2.73-2.73-7.17-2.73-9.9 0s-2.73 7.17 0 9.9 7.17 2.73 9.9 0 2.73-7.16 0-9.9zm-1.1 8.8c-2.13 2.13-5.57 2.13-7.7 0s-2.13-5.57 0-7.7 5.57-2.13 7.7 0 2.13 5.57 0 7.7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/alt_route.svg b/html/matt-chat/uswds/img/material-icons/alt_route.svg
new file mode 100644
index 0000000..2e55f08
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/alt_route.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m9.78 11.16-1.42 1.42a7.282 7.282 0 0 1-1.79-2.94l1.94-.49c.32.89.77 1.5 1.27 2.01zM11 6 7 2 3 6h3.02c.02.81.08 1.54.19 2.17l1.94-.49C8.08 7.2 8.03 6.63 8.02 6H11zm10 0-4-4-4 4h2.99c-.1 3.68-1.28 4.75-2.54 5.88-.5.44-1.01.92-1.45 1.55-.34-.49-.73-.88-1.13-1.24L9.46 13.6c.93.85 1.54 1.54 1.54 3.4v5h2v-5c0-2.02.71-2.66 1.79-3.63 1.38-1.24 3.08-2.78 3.2-7.37H21z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/alternate_email.svg b/html/matt-chat/uswds/img/material-icons/alternate_email.svg
new file mode 100644
index 0000000..d66771b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/alternate_email.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10h5v-2h-5c-4.34 0-8-3.66-8-8s3.66-8 8-8 8 3.66 8 8v1.43c0 .79-.71 1.57-1.5 1.57s-1.5-.78-1.5-1.57V12c0-2.76-2.24-5-5-5s-5 2.24-5 5 2.24 5 5 5c1.38 0 2.64-.56 3.54-1.47.65.89 1.77 1.47 2.96 1.47 1.97 0 3.5-1.6 3.5-3.57V12c0-5.52-4.48-10-10-10zm0 13c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/analytics.svg b/html/matt-chat/uswds/img/material-icons/analytics.svg
new file mode 100644
index 0000000..f0fc4cc
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/analytics.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-5h2v5zm4 0h-2v-3h2v3zm0-5h-2v-2h2v2zm4 5h-2V7h2v10z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/anchor.svg b/html/matt-chat/uswds/img/material-icons/anchor.svg
new file mode 100644
index 0000000..b6a1817
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/anchor.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m17 15 1.55 1.55c-.96 1.69-3.33 3.04-5.55 3.37V11h3V9h-3V7.82C14.16 7.4 15 6.3 15 5c0-1.65-1.35-3-3-3S9 3.35 9 5c0 1.3.84 2.4 2 2.82V9H8v2h3v8.92c-2.22-.33-4.59-1.68-5.55-3.37L7 15l-4-3v3c0 3.88 4.92 7 9 7s9-3.12 9-7v-3l-4 3zM12 4c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/android.svg b/html/matt-chat/uswds/img/material-icons/android.svg
new file mode 100644
index 0000000..4d49832
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/android.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m17.6 9.48 1.84-3.18c.16-.31.04-.69-.26-.85a.637.637 0 0 0-.83.22l-1.88 3.24a11.463 11.463 0 0 0-8.94 0L5.65 5.67a.643.643 0 0 0-.87-.2c-.28.18-.37.54-.22.83L6.4 9.48A10.78 10.78 0 0 0 1 18h22a10.78 10.78 0 0 0-5.4-8.52zM7 15.25a1.25 1.25 0 1 1 0-2.5 1.25 1.25 0 0 1 0 2.5zm10 0a1.25 1.25 0 1 1 0-2.5 1.25 1.25 0 0 1 0 2.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/animation.svg b/html/matt-chat/uswds/img/material-icons/animation.svg
new file mode 100644
index 0000000..d588f77
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/animation.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15 2c-2.71 0-5.05 1.54-6.22 3.78a7.062 7.062 0 0 0-3 3A7.014 7.014 0 0 0 2 15c0 3.87 3.13 7 7 7 2.71 0 5.05-1.54 6.22-3.78a7.062 7.062 0 0 0 3-3A7.014 7.014 0 0 0 22 9c0-3.87-3.13-7-7-7zM9 20a5.002 5.002 0 0 1-4-8c0 3.87 3.13 7 7 7-.84.63-1.88 1-3 1zm3-3a5.002 5.002 0 0 1-4-8c0 3.86 3.13 6.99 7 7-.84.63-1.88 1-3 1zm4.7-3.3c-.53.19-1.1.3-1.7.3-2.76 0-5-2.24-5-5 0-.6.11-1.17.3-1.7.53-.19 1.1-.3 1.7-.3 2.76 0 5 2.24 5 5 0 .6-.11 1.17-.3 1.7zM19 12c0-3.86-3.13-6.99-7-7a5.002 5.002 0 0 1 7 7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/announcement.svg b/html/matt-chat/uswds/img/material-icons/announcement.svg
new file mode 100644
index 0000000..fd7463c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/announcement.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-7 9h-2V5h2v6zm0 4h-2v-2h2v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/aod.svg b/html/matt-chat/uswds/img/material-icons/aod.svg
new file mode 100644
index 0000000..f76e3dc
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/aod.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 1.01 7 1c-1.1 0-2 .9-2 2v18c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-1.99-2-1.99zM17 18H7V6h10v12zm-9-8h8v1.5H8V10zm1 3h6v1.5H9V13z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/apartment.svg b/html/matt-chat/uswds/img/material-icons/apartment.svg
new file mode 100644
index 0000000..00f353d
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/apartment.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 11V3H7v4H3v14h8v-4h2v4h8V11h-4zM7 19H5v-2h2v2zm0-4H5v-2h2v2zm0-4H5V9h2v2zm4 4H9v-2h2v2zm0-4H9V9h2v2zm0-4H9V5h2v2zm4 8h-2v-2h2v2zm0-4h-2V9h2v2zm0-4h-2V5h2v2zm4 12h-2v-2h2v2zm0-4h-2v-2h2v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/api.svg b/html/matt-chat/uswds/img/material-icons/api.svg
new file mode 100644
index 0000000..7f64c43
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/api.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m14 12-2 2-2-2 2-2 2 2zm-2-6 2.12 2.12 2.5-2.5L12 1 7.38 5.62l2.5 2.5L12 6zm-6 6 2.12-2.12-2.5-2.5L1 12l4.62 4.62 2.5-2.5L6 12zm12 0-2.12 2.12 2.5 2.5L23 12l-4.62-4.62-2.5 2.5L18 12zm-6 6-2.12-2.12-2.5 2.5L12 23l4.62-4.62-2.5-2.5L12 18z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/app_blocking.svg b/html/matt-chat/uswds/img/material-icons/app_blocking.svg
new file mode 100644
index 0000000..903c93b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/app_blocking.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm-2.5 4A2.5 2.5 0 0 1 18 9.5c.42 0 .8.11 1.15.29l-3.36 3.36c-.18-.35-.29-.73-.29-1.15zm2.5 2.5c-.42 0-.8-.11-1.15-.29l3.36-3.36c.18.35.29.73.29 1.15a2.5 2.5 0 0 1-2.5 2.5zM17 18H7V6h10v1h2V3c0-1.1-.9-2-2-2H7c-1.1 0-2 .9-2 2v18c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2v-4h-2v1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/app_registration.svg b/html/matt-chat/uswds/img/material-icons/app_registration.svg
new file mode 100644
index 0000000..1915db5
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/app_registration.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10 4h4v4h-4zM4 16h4v4H4zm0-6h4v4H4zm0-6h4v4H4zm10 8.42V10h-4v4h2.42zm6.88-1.13-1.17-1.17a.41.41 0 0 0-.58 0l-.88.88L20 12.75l.88-.88a.41.41 0 0 0 0-.58zM11 18.25V20h1.75l6.67-6.67-1.75-1.75zM16 4h4v4h-4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/app_settings_alt.svg b/html/matt-chat/uswds/img/material-icons/app_settings_alt.svg
new file mode 100644
index 0000000..f2e020a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/app_settings_alt.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m21.81 12.74-.82-.63v-.22l.8-.63c.16-.12.2-.34.1-.51l-.85-1.48a.395.395 0 0 0-.35-.2c-.05 0-.1.01-.15.03l-.95.38c-.08-.05-.11-.07-.19-.11l-.15-1.01a.408.408 0 0 0-.4-.36h-1.71c-.2 0-.37.15-.4.34l-.14 1.01c-.03.02-.07.03-.1.05l-.09.06-.95-.38a.401.401 0 0 0-.5.17l-.85 1.48c-.1.17-.06.39.1.51l.8.63v.23l-.8.63a.39.39 0 0 0-.1.51l.85 1.48c.07.13.21.2.35.2.05 0 .1-.01.15-.03l.95-.37c.08.05.12.07.2.11l.15 1.01c.03.2.2.34.4.34h1.71c.2 0 .37-.15.4-.34l.15-1.01c.03-.02.07-.03.1-.05l.09-.06.95.38a.401.401 0 0 0 .5-.17l.85-1.48a.39.39 0 0 0-.1-.51zM18 13.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zM17 17h2v4c0 1.1-.9 2-2 2H7c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2v4h-2V6H7v12h10v-1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/app_shortcut.svg b/html/matt-chat/uswds/img/material-icons/app_shortcut.svg
new file mode 100644
index 0000000..f13d410
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/app_shortcut.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 18H7V6h10v1h2V3c0-1.1-.9-2-2-2H7c-1.1 0-2 .9-2 2v18c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2v-4h-2v1zm3.38-8.38L21 11l.62-1.38L23 9l-1.38-.62L21 7l-.62 1.38L19 9z"/><path d="m16 8-1.25 2.75L12 12l2.75 1.25L16 16l1.25-2.75L20 12l-2.75-1.25zm5 5-.62 1.38L19 15l1.38.62L21 17l.62-1.38L23 15l-1.38-.62z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/approval.svg b/html/matt-chat/uswds/img/material-icons/approval.svg
new file mode 100644
index 0000000..b92428c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/approval.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M4 16v6h16v-6c0-1.1-.9-2-2-2H6c-1.1 0-2 .9-2 2zm14 2H6v-2h12v2zM12 2C9.24 2 7 4.24 7 7l5 7 5-7c0-2.76-2.24-5-5-5zm0 9L9 7c0-1.66 1.34-3 3-3s3 1.34 3 3l-3 4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/apps.svg b/html/matt-chat/uswds/img/material-icons/apps.svg
new file mode 100644
index 0000000..b0ccb6c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/apps.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M4 8h4V4H4v4zm6 12h4v-4h-4v4zm-6 0h4v-4H4v4zm0-6h4v-4H4v4zm6 0h4v-4h-4v4zm6-10v4h4V4h-4zm-6 4h4V4h-4v4zm6 6h4v-4h-4v4zm0 6h4v-4h-4v4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/apps_outage.svg b/html/matt-chat/uswds/img/material-icons/apps_outage.svg
new file mode 100644
index 0000000..393e963
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/apps_outage.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M4 8h4V4H4v4zm6 12h4v-4h-4v4zm-6 0h4v-4H4v4zm0-6h4v-4H4v4zm6 0h4v-4h-4v4zm6 6h4v-4h-4v4zm3-20c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5zm.5 8h-1V7h1v1zm0-2h-1V2h1v4zM16 14h4v-2.07c-.33.05-.66.07-1 .07-1.07 0-2.09-.24-3-.68V14zM10 4v4h2.68c-.44-.91-.68-1.93-.68-3 0-.34.02-.67.07-1H10z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/architecture.svg b/html/matt-chat/uswds/img/material-icons/architecture.svg
new file mode 100644
index 0000000..07778b2
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/architecture.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M6.36 18.78 6.61 21l1.62-1.54 2.77-7.6c-.68-.17-1.28-.51-1.77-.98l-2.87 7.9zm8.41-7.9c-.49.47-1.1.81-1.77.98l2.77 7.6L17.39 21l.26-2.22-2.88-7.9zM15 8c0-1.3-.84-2.4-2-2.82V3h-2v2.18C9.84 5.6 9 6.7 9 8c0 1.66 1.34 3 3 3s3-1.34 3-3zm-3 1c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/archive.svg b/html/matt-chat/uswds/img/material-icons/archive.svg
new file mode 100644
index 0000000..024f790
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/archive.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m20.54 5.23-1.39-1.68C18.88 3.21 18.47 3 18 3H6c-.47 0-.88.21-1.16.55L3.46 5.23C3.17 5.57 3 6.02 3 6.5V19c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V6.5c0-.48-.17-.93-.46-1.27zM12 17.5 6.5 12H10v-2h4v2h3.5L12 17.5zM5.12 5l.81-1h12l.94 1H5.12z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/area_chart.svg b/html/matt-chat/uswds/img/material-icons/area_chart.svg
new file mode 100644
index 0000000..047210e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/area_chart.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 13v7h18v-1.5l-9-7L8 17l-5-4zm0-6 4 3 5-7 5 4h4v8.97l-9.4-7.31-3.98 5.48L3 10.44V7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/arrow_back.svg b/html/matt-chat/uswds/img/material-icons/arrow_back.svg
new file mode 100644
index 0000000..00d44bf
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/arrow_back.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/arrow_back_ios.svg b/html/matt-chat/uswds/img/material-icons/arrow_back_ios.svg
new file mode 100644
index 0000000..9ae89ce
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/arrow_back_ios.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11.67 3.87 9.9 2.1 0 12l9.9 9.9 1.77-1.77L3.54 12z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/arrow_back_ios_new.svg b/html/matt-chat/uswds/img/material-icons/arrow_back_ios_new.svg
new file mode 100644
index 0000000..52f87c8
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/arrow_back_ios_new.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17.77 3.77 16 2 6 12l10 10 1.77-1.77L9.54 12z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/arrow_circle_down.svg b/html/matt-chat/uswds/img/material-icons/arrow_circle_down.svg
new file mode 100644
index 0000000..b6b7524
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/arrow_circle_down.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 4c4.41 0 8 3.59 8 8s-3.59 8-8 8-8-3.59-8-8 3.59-8 8-8m0-2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 10V8h-2v4H8l4 4 4-4h-3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/arrow_circle_left.svg b/html/matt-chat/uswds/img/material-icons/arrow_circle_left.svg
new file mode 100644
index 0000000..f9365e4
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/arrow_circle_left.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M2 12c0 5.52 4.48 10 10 10s10-4.48 10-10S17.52 2 12 2 2 6.48 2 12zm10-1h4v2h-4v3l-4-4 4-4v3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/arrow_circle_right.svg b/html/matt-chat/uswds/img/material-icons/arrow_circle_right.svg
new file mode 100644
index 0000000..c5e0114
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/arrow_circle_right.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M22 12c0-5.52-4.48-10-10-10S2 6.48 2 12s4.48 10 10 10 10-4.48 10-10zm-10 1H8v-2h4V8l4 4-4 4v-3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/arrow_circle_up.svg b/html/matt-chat/uswds/img/material-icons/arrow_circle_up.svg
new file mode 100644
index 0000000..9f575ce
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/arrow_circle_up.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 20c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8m0 2c5.52 0 10-4.48 10-10S17.52 2 12 2 2 6.48 2 12s4.48 10 10 10zm-1-10v4h2v-4h3l-4-4-4 4h3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/arrow_downward.svg b/html/matt-chat/uswds/img/material-icons/arrow_downward.svg
new file mode 100644
index 0000000..b6f2de9
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/arrow_downward.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m20 12-1.41-1.41L13 16.17V4h-2v12.17l-5.58-5.59L4 12l8 8 8-8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/arrow_drop_down.svg b/html/matt-chat/uswds/img/material-icons/arrow_drop_down.svg
new file mode 100644
index 0000000..1c2f14e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/arrow_drop_down.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m7 10 5 5 5-5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/arrow_drop_down_circle.svg b/html/matt-chat/uswds/img/material-icons/arrow_drop_down_circle.svg
new file mode 100644
index 0000000..9754a85
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/arrow_drop_down_circle.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 12-4-4h8l-4 4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/arrow_drop_up.svg b/html/matt-chat/uswds/img/material-icons/arrow_drop_up.svg
new file mode 100644
index 0000000..32782e6
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/arrow_drop_up.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m7 14 5-5 5 5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/arrow_forward.svg b/html/matt-chat/uswds/img/material-icons/arrow_forward.svg
new file mode 100644
index 0000000..453d0c7
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/arrow_forward.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m12 4-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/arrow_forward_ios.svg b/html/matt-chat/uswds/img/material-icons/arrow_forward_ios.svg
new file mode 100644
index 0000000..27d6c42
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/arrow_forward_ios.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M6.23 20.23 8 22l10-10L8 2 6.23 3.77 14.46 12z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/arrow_left.svg b/html/matt-chat/uswds/img/material-icons/arrow_left.svg
new file mode 100644
index 0000000..2622f80
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/arrow_left.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m14 7-5 5 5 5V7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/arrow_outward.svg b/html/matt-chat/uswds/img/material-icons/arrow_outward.svg
new file mode 100644
index 0000000..3289398
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/arrow_outward.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M6 6v2h8.59L5 17.59 6.41 19 16 9.41V18h2V6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/arrow_right.svg b/html/matt-chat/uswds/img/material-icons/arrow_right.svg
new file mode 100644
index 0000000..3ffe242
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/arrow_right.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m10 17 5-5-5-5v10z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/arrow_right_alt.svg b/html/matt-chat/uswds/img/material-icons/arrow_right_alt.svg
new file mode 100644
index 0000000..bec78c2
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/arrow_right_alt.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16.01 11H4v2h12.01v3L20 12l-3.99-4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/arrow_upward.svg b/html/matt-chat/uswds/img/material-icons/arrow_upward.svg
new file mode 100644
index 0000000..b84aab8
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/arrow_upward.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m4 12 1.41 1.41L11 7.83V20h2V7.83l5.58 5.59L20 12l-8-8-8 8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/art_track.svg b/html/matt-chat/uswds/img/material-icons/art_track.svg
new file mode 100644
index 0000000..c68285d
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/art_track.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M22 13h-8v-2h8v2zm0-6h-8v2h8V7zm-8 10h8v-2h-8v2zm-2-8v6c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V9c0-1.1.9-2 2-2h6c1.1 0 2 .9 2 2zm-1.5 6-2.25-3-1.75 2.26-1.25-1.51L3.5 15h7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/article.svg b/html/matt-chat/uswds/img/material-icons/article.svg
new file mode 100644
index 0000000..55c1c07
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/article.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-5 14H7v-2h7v2zm3-4H7v-2h10v2zm0-4H7V7h10v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/aspect_ratio.svg b/html/matt-chat/uswds/img/material-icons/aspect_ratio.svg
new file mode 100644
index 0000000..d84112f
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/aspect_ratio.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 12h-2v3h-3v2h5v-5zM7 9h3V7H5v5h2V9zm14-6H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16.01H3V4.99h18v14.02z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/assessment.svg b/html/matt-chat/uswds/img/material-icons/assessment.svg
new file mode 100644
index 0000000..cc7768b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/assessment.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/assignment.svg b/html/matt-chat/uswds/img/material-icons/assignment.svg
new file mode 100644
index 0000000..cb7fd32
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/assignment.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3h-4.18C14.4 1.84 13.3 1 12 1c-1.3 0-2.4.84-2.82 2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm2 14H7v-2h7v2zm3-4H7v-2h10v2zm0-4H7V7h10v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/assignment_ind.svg b/html/matt-chat/uswds/img/material-icons/assignment_ind.svg
new file mode 100644
index 0000000..3c0a273
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/assignment_ind.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3h-4.18C14.4 1.84 13.3 1 12 1c-1.3 0-2.4.84-2.82 2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm0 4c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3 1.34-3 3-3zm6 12H6v-1.4c0-2 4-3.1 6-3.1s6 1.1 6 3.1V19z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/assignment_late.svg b/html/matt-chat/uswds/img/material-icons/assignment_late.svg
new file mode 100644
index 0000000..ad82055
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/assignment_late.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3h-4.18C14.4 1.84 13.3 1 12 1c-1.3 0-2.4.84-2.82 2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-6 15h-2v-2h2v2zm0-4h-2V8h2v6zm-1-9c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/assignment_return.svg b/html/matt-chat/uswds/img/material-icons/assignment_return.svg
new file mode 100644
index 0000000..4bfb1e5
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/assignment_return.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3h-4.18C14.4 1.84 13.3 1 12 1c-1.3 0-2.4.84-2.82 2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm4 12h-4v3l-5-5 5-5v3h4v4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/assignment_returned.svg b/html/matt-chat/uswds/img/material-icons/assignment_returned.svg
new file mode 100644
index 0000000..849fd26
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/assignment_returned.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3h-4.18C14.4 1.84 13.3 1 12 1c-1.3 0-2.4.84-2.82 2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm0 15-5-5h3V9h4v4h3l-5 5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/assignment_turned_in.svg b/html/matt-chat/uswds/img/material-icons/assignment_turned_in.svg
new file mode 100644
index 0000000..5b99599
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/assignment_turned_in.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3h-4.18C14.4 1.84 13.3 1 12 1c-1.3 0-2.4.84-2.82 2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm-2 14-4-4 1.41-1.41L10 14.17l6.59-6.59L18 9l-8 8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/assist_walker.svg b/html/matt-chat/uswds/img/material-icons/assist_walker.svg
new file mode 100644
index 0000000..00c95a4
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/assist_walker.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><circle cx="12.5" cy="4.5" r="2"/><path d="m19.77 17.72-.64-6.37A1.49 1.49 0 0 0 17.64 10H16c-1.5-.02-2.86-.54-3.76-1.44l-2-1.98A1.95 1.95 0 0 0 8.83 6c-.51 0-1.02.2-1.41.59L4.08 9.91c-.53.68-.51 1.57-.21 2.13l1.43 2.8-3.15 4.05 1.57 1.24L7.4 15.4l-.17-1.36.77.71V20h2v-6.12l-2.12-2.12 2.36-2.36c.94.94 1.72 1.82 3.59 2.32L13 20h1.5l.41-3.5h3.18l.14 1.22c-.44.26-.73.74-.73 1.28 0 .83.67 1.5 1.5 1.5s1.5-.67 1.5-1.5c0-.54-.29-1.02-.73-1.28zM15.09 15l.41-3.5h2l.41 3.5h-2.82z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/assistant.svg b/html/matt-chat/uswds/img/material-icons/assistant.svg
new file mode 100644
index 0000000..a183f73
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/assistant.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h4l3 3 3-3h4c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-5.12 10.88L12 17l-1.88-4.12L6 11l4.12-1.88L12 5l1.88 4.12L18 11l-4.12 1.88z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/assistant_direction.svg b/html/matt-chat/uswds/img/material-icons/assistant_direction.svg
new file mode 100644
index 0000000..92a70c3
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/assistant_direction.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M14 10H9c-.6 0-1 .4-1 1v4h2v-3h4v2.5l3.5-3.5L14 7.5V10zm-2-9C5.9 1 1 5.9 1 12s4.9 11 11 11 11-4.9 11-11S18.1 1 12 1zm7.73 11.58-7.19 7.22c-.35.27-.79.27-1.15 0L4.2 12.58a.932.932 0 0 1 0-1.16l7.19-7.22c.35-.27.79-.27 1.15 0l7.19 7.22c.36.27.36.8 0 1.16z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/assistant_photo.svg b/html/matt-chat/uswds/img/material-icons/assistant_photo.svg
new file mode 100644
index 0000000..6740057
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/assistant_photo.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M14.4 6 14 4H5v17h2v-7h5.6l.4 2h7V6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/assured_workload.svg b/html/matt-chat/uswds/img/material-icons/assured_workload.svg
new file mode 100644
index 0000000..54625f0
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/assured_workload.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M5 10h2v7H5zm6 0h2v7h-2zm11-4L12 1 2 6v2h20zM2 19v2h12.4c-.21-.64-.32-1.31-.36-2H2zm17-6.74V10h-2v3.26zM20 14l-4 2v2.55c0 2.52 1.71 4.88 4 5.45 2.29-.57 4-2.93 4-5.45V16l-4-2zm-.72 7-2.03-2.03 1.06-1.06.97.97 2.41-2.38 1.06 1.06L19.28 21z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/atm.svg b/html/matt-chat/uswds/img/material-icons/atm.svg
new file mode 100644
index 0000000..0d54cfe
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/atm.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M8 9v1.5h2.25V15h1.5v-4.5H14V9zM6 9H3c-.55 0-1 .45-1 1v5h1.5v-1.5h2V15H7v-5c0-.55-.45-1-1-1zm-.5 3h-2v-1.5h2V12zM21 9h-4.5c-.55 0-1 .45-1 1v5H17v-4.5h1V14h1.5v-3.51h1V15H22v-5c0-.55-.45-1-1-1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/attach_email.svg b/html/matt-chat/uswds/img/material-icons/attach_email.svg
new file mode 100644
index 0000000..0e48c8b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/attach_email.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 10V4c0-1.1-.9-2-2-2H3c-1.1 0-1.99.9-1.99 2L1 16c0 1.1.9 2 2 2h11v-5c0-1.66 1.34-3 3-3h4zm-10 1L3 6V4l8 5 8-5v2l-8 5z"/><path d="M21 14v4c0 1.1-.9 2-2 2s-2-.9-2-2v-4.5c0-.28.22-.5.5-.5s.5.22.5.5V18h2v-4.5a2.5 2.5 0 0 0-5 0V18c0 2.21 1.79 4 4 4s4-1.79 4-4v-4h-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/attach_file.svg b/html/matt-chat/uswds/img/material-icons/attach_file.svg
new file mode 100644
index 0000000..73eac8a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/attach_file.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16.5 6v11.5c0 2.21-1.79 4-4 4s-4-1.79-4-4V5a2.5 2.5 0 0 1 5 0v10.5c0 .55-.45 1-1 1s-1-.45-1-1V6H10v9.5a2.5 2.5 0 0 0 5 0V5c0-2.21-1.79-4-4-4S7 2.79 7 5v12.5c0 3.04 2.46 5.5 5.5 5.5s5.5-2.46 5.5-5.5V6h-1.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/attach_money.svg b/html/matt-chat/uswds/img/material-icons/attach_money.svg
new file mode 100644
index 0000000..76e3e17
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/attach_money.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11.8 10.9c-2.27-.59-3-1.2-3-2.15 0-1.09 1.01-1.85 2.7-1.85 1.78 0 2.44.85 2.5 2.1h2.21c-.07-1.72-1.12-3.3-3.21-3.81V3h-3v2.16c-1.94.42-3.5 1.68-3.5 3.61 0 2.31 1.91 3.46 4.7 4.13 2.5.6 3 1.48 3 2.41 0 .69-.49 1.79-2.7 1.79-2.06 0-2.87-.92-2.98-2.1h-2.2c.12 2.19 1.76 3.42 3.68 3.83V21h3v-2.15c1.95-.37 3.5-1.5 3.5-3.55 0-2.84-2.43-3.81-4.7-4.4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/attachment.svg b/html/matt-chat/uswds/img/material-icons/attachment.svg
new file mode 100644
index 0000000..5b82813
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/attachment.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M2 12.5C2 9.46 4.46 7 7.5 7H18c2.21 0 4 1.79 4 4s-1.79 4-4 4H9.5a2.5 2.5 0 0 1 0-5H17v2H9.41c-.55 0-.55 1 0 1H18c1.1 0 2-.9 2-2s-.9-2-2-2H7.5C5.57 9 4 10.57 4 12.5S5.57 16 7.5 16H17v2H7.5C4.46 18 2 15.54 2 12.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/attractions.svg b/html/matt-chat/uswds/img/material-icons/attractions.svg
new file mode 100644
index 0000000..0c0ed7a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/attractions.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10.43 18.75c.37-.46.94-.75 1.57-.75.63 0 1.19.29 1.56.75.39-.09.76-.21 1.12-.36l-1.42-3.18a3.522 3.522 0 0 1-2.56-.02l-1.43 3.19c.38.16.76.29 1.16.37zM5.15 10a7.06 7.06 0 0 0 .08 4c.63.05 1.22.4 1.56.99.33.57.35 1.23.11 1.79.27.27.56.53.87.76l1.52-3.39c-.47-.58-.75-1.32-.75-2.13 0-1.89 1.55-3.41 3.46-3.41s3.46 1.53 3.46 3.41c0 .82-.29 1.57-.78 2.16l1.5 3.35c.32-.24.62-.5.9-.79-.22-.55-.2-1.2.12-1.75.33-.57.9-.92 1.52-.99a7.025 7.025 0 0 0 .09-4.02c-.64-.04-1.26-.39-1.6-1-.36-.62-.35-1.36-.03-1.95-.91-.98-2.1-1.71-3.44-2.05C13.39 5.6 12.74 6 12 6s-1.39-.41-1.74-1.01a7.053 7.053 0 0 0-3.44 2.03c.33.6.35 1.35-.02 1.98-.35.62-.99.97-1.65 1zm-1.3-.42c-.78-.6-1.02-1.7-.51-2.58.51-.88 1.58-1.23 2.49-.85a8.53 8.53 0 0 1 4.18-2.42C10.15 2.75 10.99 2 12 2s1.85.75 1.98 1.73c1.63.39 3.07 1.24 4.18 2.42a1.99 1.99 0 0 1 2.49.85c.51.88.27 1.98-.51 2.58.23.77.35 1.58.35 2.42s-.12 1.65-.35 2.42c.78.6 1.02 1.7.51 2.58-.51.88-1.58 1.23-2.49.85-.4.43-.85.81-1.34 1.15l1.34 3H16.3l-.97-2.17c-.43.18-.88.33-1.34.44-.14.98-.98 1.73-1.99 1.73s-1.85-.75-1.98-1.73c-.48-.12-.94-.27-1.38-.46L7.66 22H5.78l1.36-3.03a8.72 8.72 0 0 1-1.3-1.12c-.92.38-1.99.03-2.5-.85s-.27-1.98.51-2.58c-.23-.77-.35-1.58-.35-2.42s.12-1.65.35-2.42z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/attribution.svg b/html/matt-chat/uswds/img/material-icons/attribution.svg
new file mode 100644
index 0000000..074f1c9
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/attribution.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 8.5c-.91 0-2.75.46-2.75 1.38v4.62h1.5V19h2.5v-4.5h1.5V9.88c0-.91-1.84-1.38-2.75-1.38z"/><path d="M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"/><circle cx="12" cy="6.5" r="1.5"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/audio_file.svg b/html/matt-chat/uswds/img/material-icons/audio_file.svg
new file mode 100644
index 0000000..08ad00d
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/audio_file.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm2 11h-3v3.75c0 1.24-1.01 2.25-2.25 2.25S8.5 17.99 8.5 16.75s1.01-2.25 2.25-2.25c.46 0 .89.14 1.25.38V11h4v2zm-3-4V3.5L18.5 9H13z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/audiotrack.svg b/html/matt-chat/uswds/img/material-icons/audiotrack.svg
new file mode 100644
index 0000000..154f4ce
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/audiotrack.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 3v9.28a4.39 4.39 0 0 0-1.5-.28C8.01 12 6 14.01 6 16.5S8.01 21 10.5 21c2.31 0 4.2-1.75 4.45-4H15V6h4V3h-7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/auto_awesome.svg b/html/matt-chat/uswds/img/material-icons/auto_awesome.svg
new file mode 100644
index 0000000..b7d5cd1
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/auto_awesome.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m19 9 1.25-2.75L23 5l-2.75-1.25L19 1l-1.25 2.75L15 5l2.75 1.25L19 9zm-7.5.5L9 4 6.5 9.5 1 12l5.5 2.5L9 20l2.5-5.5L17 12l-5.5-2.5zM19 15l-1.25 2.75L15 19l2.75 1.25L19 23l1.25-2.75L23 19l-2.75-1.25L19 15z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/auto_awesome_mosaic.svg b/html/matt-chat/uswds/img/material-icons/auto_awesome_mosaic.svg
new file mode 100644
index 0000000..50d11df
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/auto_awesome_mosaic.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 5v14a2 2 0 0 0 2 2h6V3H5a2 2 0 0 0-2 2zm16-2h-6v8h8V5c0-1.1-.9-2-2-2zm-6 18h6c1.1 0 2-.9 2-2v-6h-8v8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/auto_awesome_motion.svg b/html/matt-chat/uswds/img/material-icons/auto_awesome_motion.svg
new file mode 100644
index 0000000..5f388ae
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/auto_awesome_motion.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M14 2H4a2 2 0 0 0-2 2v10h2V4h10V2zm4 4H8a2 2 0 0 0-2 2v10h2V8h10V6zm2 4h-8a2 2 0 0 0-2 2v8a2 2 0 0 0 2 2h8c1.1 0 2-.9 2-2v-8c0-1.1-.9-2-2-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/auto_delete.svg b/html/matt-chat/uswds/img/material-icons/auto_delete.svg
new file mode 100644
index 0000000..6e94b07
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/auto_delete.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15 2h-3.5l-1-1h-5l-1 1H1v2h14zm1 7c-.7 0-1.37.1-2 .29V5H2v12c0 1.1.9 2 2 2h5.68A6.999 6.999 0 0 0 23 16c0-3.87-3.13-7-7-7zm0 12c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5z"/><path d="M16.5 12H15v5l3.6 2.1.8-1.2-2.9-1.7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/auto_fix_high.svg b/html/matt-chat/uswds/img/material-icons/auto_fix_high.svg
new file mode 100644
index 0000000..193d6d3
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/auto_fix_high.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M7.5 5.6 10 7 8.6 4.5 10 2 7.5 3.4 5 2l1.4 2.5L5 7zm12 9.8L17 14l1.4 2.5L17 19l2.5-1.4L22 19l-1.4-2.5L22 14zM22 2l-2.5 1.4L17 2l1.4 2.5L17 7l2.5-1.4L22 7l-1.4-2.5zm-7.63 5.29a.996.996 0 0 0-1.41 0L1.29 18.96a.996.996 0 0 0 0 1.41l2.34 2.34c.39.39 1.02.39 1.41 0L16.7 11.05a.996.996 0 0 0 0-1.41l-2.33-2.35zm-1.03 5.49-2.12-2.12 2.44-2.44 2.12 2.12-2.44 2.44z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/auto_fix_normal.svg b/html/matt-chat/uswds/img/material-icons/auto_fix_normal.svg
new file mode 100644
index 0000000..810657a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/auto_fix_normal.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m22 2-2.5 1.4L17 2l1.4 2.5L17 7l2.5-1.4L22 7l-1.4-2.5zm-7.63 5.29a.996.996 0 0 0-1.41 0L1.29 18.96a.996.996 0 0 0 0 1.41l2.34 2.34c.39.39 1.02.39 1.41 0L16.7 11.05a.996.996 0 0 0 0-1.41l-2.33-2.35zm-1.03 5.49-2.12-2.12 2.44-2.44 2.12 2.12-2.44 2.44z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/auto_fix_off.svg b/html/matt-chat/uswds/img/material-icons/auto_fix_off.svg
new file mode 100644
index 0000000..368e2ad
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/auto_fix_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m23 1-2.5 1.4L18 1l1.4 2.5L18 6l2.5-1.4L23 6l-1.4-2.5L23 1zm-8.34 6.22 2.12 2.12-2.44 2.44.81.81 2.55-2.55a.996.996 0 0 0 0-1.41l-2.34-2.34a.996.996 0 0 0-1.41 0L11.4 8.84l.81.81 2.45-2.43zm-.78 6.65-3.75-3.75-6.86-6.86L2 4.53l6.86 6.86-6.57 6.57a.996.996 0 0 0 0 1.41l2.34 2.34c.39.39 1.02.39 1.41 0l6.57-6.57L19.47 22l1.27-1.27-6.86-6.86z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/auto_graph.svg b/html/matt-chat/uswds/img/material-icons/auto_graph.svg
new file mode 100644
index 0000000..be7017a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/auto_graph.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M14.06 9.94 12 9l2.06-.94L15 6l.94 2.06L18 9l-2.06.94L15 12l-.94-2.06zM4 14l.94-2.06L7 11l-2.06-.94L4 8l-.94 2.06L1 11l2.06.94L4 14zm4.5-5 1.09-2.41L12 5.5 9.59 4.41 8.5 2 7.41 4.41 5 5.5l2.41 1.09L8.5 9zm-4 11.5 6-6.01 4 4L23 8.93l-1.41-1.41-7.09 7.97-4-4L3 19l1.5 1.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/auto_mode.svg b/html/matt-chat/uswds/img/material-icons/auto_mode.svg
new file mode 100644
index 0000000..f851001
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/auto_mode.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19.03 3.56c-1.67-1.39-3.74-2.3-6.03-2.51v2.01c1.73.19 3.31.88 4.61 1.92l1.42-1.42zM11 3.06V1.05c-2.29.2-4.36 1.12-6.03 2.51l1.42 1.42A8.928 8.928 0 0 1 11 3.06zM4.98 6.39 3.56 4.97C2.17 6.64 1.26 8.71 1.05 11h2.01c.19-1.73.88-3.31 1.92-4.61zM20.94 11h2.01c-.21-2.29-1.12-4.36-2.51-6.03l-1.42 1.42A8.928 8.928 0 0 1 20.94 11zM7 12l3.44 1.56L12 17l1.56-3.44L17 12l-3.44-1.56L12 7l-1.56 3.44z"/><path d="M12 21a8.96 8.96 0 0 1-7.46-4H7v-2H1v6h2v-2.7c1.99 2.84 5.27 4.7 9 4.7 4.87 0 9-3.17 10.44-7.56l-1.96-.45C19.25 18.48 15.92 21 12 21z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/auto_stories.svg b/html/matt-chat/uswds/img/material-icons/auto_stories.svg
new file mode 100644
index 0000000..b35d76e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/auto_stories.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m19 1-5 5v11l5-4.5V1zM1 6v14.65c0 .25.25.5.5.5.1 0 .15-.05.25-.05C3.1 20.45 5.05 20 6.5 20c1.95 0 4.05.4 5.5 1.5V6c-1.45-1.1-3.55-1.5-5.5-1.5S2.45 4.9 1 6zm22 13.5V6c-.6-.45-1.25-.75-2-1v13.5c-1.1-.35-2.3-.5-3.5-.5-1.7 0-4.15.65-5.5 1.5v2c1.35-.85 3.8-1.5 5.5-1.5 1.65 0 3.35.3 4.75 1.05.1.05.15.05.25.05.25 0 .5-.25.5-.5v-1.1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/autofps_select.svg b/html/matt-chat/uswds/img/material-icons/autofps_select.svg
new file mode 100644
index 0000000..eeab509
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/autofps_select.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12.03 6.3h-.06l-1.02 2.89h2.1zM3 17h2v5H3z"/><path d="M12 15c3.31 0 6-2.69 6-6s-2.69-6-6-6-6 2.69-6 6 2.69 6 6 6zm-.63-10h1.25l2.63 7h-1.21l-.63-1.79h-2.83L9.96 12H8.74l2.63-7zM7 17h2v5H7zm4 0h2v5h-2zm4 0h6v5h-6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/autorenew.svg b/html/matt-chat/uswds/img/material-icons/autorenew.svg
new file mode 100644
index 0000000..1494577
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/autorenew.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 6v3l4-4-4-4v3c-4.42 0-8 3.58-8 8 0 1.57.46 3.03 1.24 4.26L6.7 14.8A5.87 5.87 0 0 1 6 12c0-3.31 2.69-6 6-6zm6.76 1.74L17.3 9.2c.44.84.7 1.79.7 2.8 0 3.31-2.69 6-6 6v-3l-4 4 4 4v-3c4.42 0 8-3.58 8-8 0-1.57-.46-3.03-1.24-4.26z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/av_timer.svg b/html/matt-chat/uswds/img/material-icons/av_timer.svg
new file mode 100644
index 0000000..9cb2cd6
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/av_timer.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11 17c0 .55.45 1 1 1s1-.45 1-1-.45-1-1-1-1 .45-1 1zm0-14v4h2V5.08c3.39.49 6 3.39 6 6.92 0 3.87-3.13 7-7 7s-7-3.13-7-7c0-1.68.59-3.22 1.58-4.42L12 13l1.41-1.41-6.8-6.8v.02C4.42 6.45 3 9.05 3 12c0 4.97 4.02 9 9 9a9 9 0 0 0 0-18h-1zm7 9c0-.55-.45-1-1-1s-1 .45-1 1 .45 1 1 1 1-.45 1-1zM6 12c0 .55.45 1 1 1s1-.45 1-1-.45-1-1-1-1 .45-1 1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/baby_changing_station.svg b/html/matt-chat/uswds/img/material-icons/baby_changing_station.svg
new file mode 100644
index 0000000..450f40e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/baby_changing_station.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M14 8v2h-3L8.31 8.82 7 12.75V22H3V12l1.58-4.63A2.003 2.003 0 0 1 7.3 6.18l4.15 1.83L14 8zM8 1c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm1 18h12v-2H9v2zm10.5-3c.83 0 1.5-.67 1.5-1.5s-.67-1.5-1.5-1.5-1.5.67-1.5 1.5.67 1.5 1.5 1.5zM13 12c0-.55-.45-1-1-1H9v2h2v1c0 1.1.9 2 2 2h2c1.1 0 2-.9 2-2v-3h-2v2h-2v-1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/back_hand.svg b/html/matt-chat/uswds/img/material-icons/back_hand.svg
new file mode 100644
index 0000000..0555024
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/back_hand.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13 24c-3.26 0-6.19-1.99-7.4-5.02l-3.03-7.61a1 1 0 0 1 1.24-1.32l.79.26c.56.18 1.02.61 1.24 1.16L7.25 15H8V3.25a1.25 1.25 0 0 1 2.5 0V12h1V1.25a1.25 1.25 0 0 1 2.5 0V12h1V2.75a1.25 1.25 0 0 1 2.5 0V12h1V5.75a1.25 1.25 0 0 1 2.5 0V16c0 4.42-3.58 8-8 8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/backpack.svg b/html/matt-chat/uswds/img/material-icons/backpack.svg
new file mode 100644
index 0000000..1f7260c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/backpack.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 8v12c0 1.1-.9 2-2 2H6c-1.1 0-2-.9-2-2V8c0-1.86 1.28-3.41 3-3.86V2h3v2h4V2h3v2.14c1.72.45 3 2 3 3.86zM6 12v2h10v2h2v-4H6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/backspace.svg b/html/matt-chat/uswds/img/material-icons/backspace.svg
new file mode 100644
index 0000000..6ebbe51
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/backspace.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M22 3H7c-.69 0-1.23.35-1.59.88L0 12l5.41 8.11c.36.53.9.89 1.59.89h15c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-3 12.59L17.59 17 14 13.41 10.41 17 9 15.59 12.59 12 9 8.41 10.41 7 14 10.59 17.59 7 19 8.41 15.41 12 19 15.59z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/backup.svg b/html/matt-chat/uswds/img/material-icons/backup.svg
new file mode 100644
index 0000000..0b5b51e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/backup.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19.35 10.04A7.49 7.49 0 0 0 12 4C9.11 4 6.6 5.64 5.35 8.04A5.994 5.994 0 0 0 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM14 13v4h-4v-4H7l5-5 5 5h-3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/backup_table.svg b/html/matt-chat/uswds/img/material-icons/backup_table.svg
new file mode 100644
index 0000000..b98c939
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/backup_table.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 6v14H6v2h14c1.1 0 2-.9 2-2V6h-2z"/><path d="M16 2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM9 16H4v-5h5v5zm7 0h-5v-5h5v5zm0-7H4V4h12v5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/badge.svg b/html/matt-chat/uswds/img/material-icons/badge.svg
new file mode 100644
index 0000000..146c0bc
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/badge.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 7h-5V4c0-1.1-.9-2-2-2h-2c-1.1 0-2 .9-2 2v3H4c-1.1 0-2 .9-2 2v11c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V9c0-1.1-.9-2-2-2zM9 12c.83 0 1.5.67 1.5 1.5S9.83 15 9 15s-1.5-.67-1.5-1.5S8.17 12 9 12zm3 6H6v-.75c0-1 2-1.5 3-1.5s3 .5 3 1.5V18zm1-9h-2V4h2v5zm5 7.5h-4V15h4v1.5zm0-3h-4V12h4v1.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/bakery_dining.svg b/html/matt-chat/uswds/img/material-icons/bakery_dining.svg
new file mode 100644
index 0000000..0def9a4
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/bakery_dining.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill-rule="evenodd" d="M19.28 16.34 17.46 15s.32-.59.96-1.78a.944.944 0 0 1 1.6 0l.81 1.26c.19.3.21.68.06 1l-.22.47a.94.94 0 0 1-1.39.39zm-14.56 0a.946.946 0 0 1-1.39-.38l-.23-.47c-.15-.32-.13-.7.06-1l.81-1.26a.944.944 0 0 1 1.6 0c.65 1.18.97 1.77.97 1.77l-1.82 1.34zm10.64-6.97c.09-.68.73-1.06 1.27-.75l1.59.9c.46.26.63.91.36 1.41L16.5 15h-1.8l.66-5.63zm-6.73 0L9.3 15H7.5l-2.09-4.08c-.27-.5-.1-1.15.36-1.41l1.59-.9c.53-.3 1.18.08 1.27.76zM13.8 15h-3.6l-.74-6.88c-.07-.59.35-1.12.88-1.12h3.3c.53 0 .94.53.88 1.12L13.8 15z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/balance.svg b/html/matt-chat/uswds/img/material-icons/balance.svg
new file mode 100644
index 0000000..93dfa73
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/balance.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13 7.83c.85-.3 1.53-.98 1.83-1.83H18l-3 7c0 1.66 1.57 3 3.5 3s3.5-1.34 3.5-3l-3-7h2V4h-6.17c-.41-1.17-1.52-2-2.83-2s-2.42.83-2.83 2H3v2h2l-3 7c0 1.66 1.57 3 3.5 3S9 14.66 9 13L6 6h3.17c.3.85.98 1.53 1.83 1.83V19H2v2h20v-2h-9V7.83zM20.37 13h-3.74l1.87-4.36L20.37 13zm-13 0H3.63L5.5 8.64 7.37 13zM12 6c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/balcony.svg b/html/matt-chat/uswds/img/material-icons/balcony.svg
new file mode 100644
index 0000000..a98759e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/balcony.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10 10v2H8v-2h2zm6 2v-2h-2v2h2zm5 2v8H3v-8h1v-4c0-4.42 3.58-8 8-8s8 3.58 8 8v4h1zM7 16H5v4h2v-4zm4 0H9v4h2v-4zm0-11.92C8.16 4.56 6 7.03 6 10v4h5V4.08zM13 14h5v-4c0-2.97-2.16-5.44-5-5.92V14zm2 2h-2v4h2v-4zm4 0h-2v4h2v-4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/ballot.svg b/html/matt-chat/uswds/img/material-icons/ballot.svg
new file mode 100644
index 0000000..28ba3df
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/ballot.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill-rule="evenodd" d="M13 9.5h5v-2h-5v2zm0 7h5v-2h-5v2zm6 4.5H5c-1.1 0-2-.9-2-2V5c0-1.1.9-2 2-2h14c1.1 0 2 .9 2 2v14c0 1.1-.9 2-2 2zM6 11h5V6H6v5zm1-4h3v3H7V7zM6 18h5v-5H6v5zm1-4h3v3H7v-3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/bar_chart.svg b/html/matt-chat/uswds/img/material-icons/bar_chart.svg
new file mode 100644
index 0000000..fbf3b5e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/bar_chart.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M4 9h4v11H4zm12 4h4v7h-4zm-6-9h4v16h-4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/batch_prediction.svg b/html/matt-chat/uswds/img/material-icons/batch_prediction.svg
new file mode 100644
index 0000000..8912a1d
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/batch_prediction.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 8H7c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zm-4 12.5h-2V19h2v1.5zm0-2.5h-2c0-1.5-2.5-3-2.5-5 0-1.93 1.57-3.5 3.5-3.5s3.5 1.57 3.5 3.5c0 2-2.5 3.5-2.5 5zm5-11.5H6C6 5.67 6.67 5 7.5 5h9c.83 0 1.5.67 1.5 1.5zm-1-3H7C7 2.67 7.67 2 8.5 2h7c.83 0 1.5.67 1.5 1.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/bathroom.svg b/html/matt-chat/uswds/img/material-icons/bathroom.svg
new file mode 100644
index 0000000..b25de50
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/bathroom.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM9 18c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm0-3c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm3 3c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm0-3c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm3 3c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm0-3c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm2-3H7v-1c0-2.76 2.24-5 5-5s5 2.24 5 5v1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/bathtub.svg b/html/matt-chat/uswds/img/material-icons/bathtub.svg
new file mode 100644
index 0000000..4ca3908
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/bathtub.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><circle cx="7" cy="7" r="2"/><path d="M20 13V4.83C20 3.27 18.73 2 17.17 2c-.75 0-1.47.3-2 .83l-1.25 1.25c-.16-.05-.33-.08-.51-.08-.4 0-.77.12-1.08.32l2.76 2.76c.2-.31.32-.68.32-1.08 0-.18-.03-.34-.07-.51l1.25-1.25a.828.828 0 0 1 1.41.59V13h-6.85c-.3-.21-.57-.45-.82-.72l-1.4-1.55c-.19-.21-.43-.38-.69-.5A2.251 2.251 0 0 0 5 12.25V13H2v6c0 1.1.9 2 2 2 0 .55.45 1 1 1h14c.55 0 1-.45 1-1 1.1 0 2-.9 2-2v-6h-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/battery_0_bar.svg b/html/matt-chat/uswds/img/material-icons/battery_0_bar.svg
new file mode 100644
index 0000000..21f2c7b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/battery_0_bar.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 5v16c0 .55-.45 1-1 1H8c-.55 0-1-.45-1-1V5c0-.55.45-1 1-1h2V2h4v2h2c.55 0 1 .45 1 1zm-2 1H9v14h6V6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/battery_1_bar.svg b/html/matt-chat/uswds/img/material-icons/battery_1_bar.svg
new file mode 100644
index 0000000..1c8d595
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/battery_1_bar.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 5v16c0 .55-.45 1-1 1H8c-.55 0-1-.45-1-1V5c0-.55.45-1 1-1h2V2h4v2h2c.55 0 1 .45 1 1zm-2 1H9v12h6V6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/battery_2_bar.svg b/html/matt-chat/uswds/img/material-icons/battery_2_bar.svg
new file mode 100644
index 0000000..d537505
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/battery_2_bar.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 5v16c0 .55-.45 1-1 1H8c-.55 0-1-.45-1-1V5c0-.55.45-1 1-1h2V2h4v2h2c.55 0 1 .45 1 1zm-2 1H9v10h6V6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/battery_3_bar.svg b/html/matt-chat/uswds/img/material-icons/battery_3_bar.svg
new file mode 100644
index 0000000..fbe274c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/battery_3_bar.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 5v16c0 .55-.45 1-1 1H8c-.55 0-1-.45-1-1V5c0-.55.45-1 1-1h2V2h4v2h2c.55 0 1 .45 1 1zm-2 1H9v8h6V6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/battery_4_bar.svg b/html/matt-chat/uswds/img/material-icons/battery_4_bar.svg
new file mode 100644
index 0000000..a78cba7
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/battery_4_bar.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 5v16c0 .55-.45 1-1 1H8c-.55 0-1-.45-1-1V5c0-.55.45-1 1-1h2V2h4v2h2c.55 0 1 .45 1 1zm-2 1H9v6h6V6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/battery_5_bar.svg b/html/matt-chat/uswds/img/material-icons/battery_5_bar.svg
new file mode 100644
index 0000000..be00c0c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/battery_5_bar.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 5v16c0 .55-.45 1-1 1H8c-.55 0-1-.45-1-1V5c0-.55.45-1 1-1h2V2h4v2h2c.55 0 1 .45 1 1zm-2 1H9v4h6V6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/battery_6_bar.svg b/html/matt-chat/uswds/img/material-icons/battery_6_bar.svg
new file mode 100644
index 0000000..02a8db3
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/battery_6_bar.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 5v16c0 .55-.45 1-1 1H8c-.55 0-1-.45-1-1V5c0-.55.45-1 1-1h2V2h4v2h2c.55 0 1 .45 1 1zm-2 1H9v2h6V6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/battery_alert.svg b/html/matt-chat/uswds/img/material-icons/battery_alert.svg
new file mode 100644
index 0000000..08d3008
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/battery_alert.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33v15.33C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V5.33C17 4.6 16.4 4 15.67 4zM13 18h-2v-2h2v2zm0-4h-2V9h2v5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/battery_charging_full.svg b/html/matt-chat/uswds/img/material-icons/battery_charging_full.svg
new file mode 100644
index 0000000..1efa7d3
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/battery_charging_full.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33v15.33C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V5.33C17 4.6 16.4 4 15.67 4zM11 20v-5.5H9L13 7v5.5h2L11 20z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/battery_full.svg b/html/matt-chat/uswds/img/material-icons/battery_full.svg
new file mode 100644
index 0000000..122ea41
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/battery_full.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33v15.33C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V5.33C17 4.6 16.4 4 15.67 4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/battery_saver.svg b/html/matt-chat/uswds/img/material-icons/battery_saver.svg
new file mode 100644
index 0000000..afd99e2
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/battery_saver.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16 4h-2V2h-4v2H8c-.55 0-1 .45-1 1v16c0 .55.45 1 1 1h8c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zm-1 10h-2v2h-2v-2H9v-2h2v-2h2v2h2v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/battery_std.svg b/html/matt-chat/uswds/img/material-icons/battery_std.svg
new file mode 100644
index 0000000..122ea41
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/battery_std.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33v15.33C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V5.33C17 4.6 16.4 4 15.67 4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/battery_unknown.svg b/html/matt-chat/uswds/img/material-icons/battery_unknown.svg
new file mode 100644
index 0000000..38474c9
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/battery_unknown.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33v15.33C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V5.33C17 4.6 16.4 4 15.67 4zm-2.72 13.95h-1.9v-1.9h1.9v1.9zm1.35-5.26s-.38.42-.67.71c-.48.48-.83 1.15-.83 1.6h-1.6c0-.83.46-1.52.93-2l.93-.94A1.498 1.498 0 0 0 12 9.5c-.83 0-1.5.67-1.5 1.5H9c0-1.66 1.34-3 3-3s3 1.34 3 3c0 .66-.27 1.26-.7 1.69z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/beach_access.svg b/html/matt-chat/uswds/img/material-icons/beach_access.svg
new file mode 100644
index 0000000..a2ab094
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/beach_access.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m13.127 14.56 1.43-1.43 6.44 6.443L19.57 21zm4.293-5.73 2.86-2.86c-3.95-3.95-10.35-3.96-14.3-.02 3.93-1.3 8.31-.25 11.44 2.88zM5.95 5.98c-3.94 3.95-3.93 10.35.02 14.3l2.86-2.86C5.7 14.29 4.65 9.91 5.95 5.98zm.02-.02-.01.01c-.38 3.01 1.17 6.88 4.3 10.02l5.73-5.73c-3.13-3.13-7.01-4.68-10.02-4.3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/bed.svg b/html/matt-chat/uswds/img/material-icons/bed.svg
new file mode 100644
index 0000000..e13adfe
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/bed.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 10.78V8c0-1.65-1.35-3-3-3h-4c-.77 0-1.47.3-2 .78-.53-.48-1.23-.78-2-.78H6C4.35 5 3 6.35 3 8v2.78c-.61.55-1 1.34-1 2.22v6h2v-2h16v2h2v-6c0-.88-.39-1.67-1-2.22zM14 7h4c.55 0 1 .45 1 1v2h-6V8c0-.55.45-1 1-1zM5 8c0-.55.45-1 1-1h4c.55 0 1 .45 1 1v2H5V8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/bedroom_baby.svg b/html/matt-chat/uswds/img/material-icons/bedroom_baby.svg
new file mode 100644
index 0000000..19c01e7
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/bedroom_baby.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-8 16c-2.64 0-5.13-1.03-7-2.9l1.06-1.06c.34.34.71.65 1.1.92L8 13.5V9.51l-1.55.99-.95-1L7 7.76 6 7h3.65l1.73 3H17v1h-1v2.5l.84 1.46c.39-.28.76-.58 1.1-.92L19 15.1a9.842 9.842 0 0 1-7 2.9z"/><path d="M14.69 14.24a7.72 7.72 0 0 1-5.4 0l-.81 1.41-.03.06c1.1.52 2.28.79 3.53.79s2.45-.28 3.55-.79l-.03-.06-.81-1.41z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/bedroom_child.svg b/html/matt-chat/uswds/img/material-icons/bedroom_child.svg
new file mode 100644
index 0000000..48c0361
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/bedroom_child.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M9 8.5h6v2H9zm6.64 3.5H8.37a.87.87 0 0 0-.87.87h.01V14h9v-1.13a.87.87 0 0 0-.87-.87z"/><path d="M20 2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-2 15h-1.5v-1.5h-9V17H6v-4.13c0-1 .62-1.85 1.5-2.2V9c0-1.1.9-2 2-2h5c1.1 0 2 .9 2 2v1.67c.88.35 1.5 1.2 1.5 2.2V17z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/bedroom_parent.svg b/html/matt-chat/uswds/img/material-icons/bedroom_parent.svg
new file mode 100644
index 0000000..ba6fcd5
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/bedroom_parent.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16.5 12h-9c-.55 0-1 .45-1 1v1h11v-1c0-.55-.45-1-1-1zM7.25 8.5h4v2h-4zm5.5 0h4v2h-4z"/><path d="M20 2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-1 15h-1.5v-1.5h-11V17H5v-3.83c0-.66.25-1.26.65-1.72V9c0-1.1.9-2 2-2H11c.37 0 .72.12 1 .32.28-.2.63-.32 1-.32h3.35c1.1 0 2 .9 2 2v2.45c.4.46.65 1.06.65 1.72V17z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/bedtime.svg b/html/matt-chat/uswds/img/material-icons/bedtime.svg
new file mode 100644
index 0000000..2a10d74
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/bedtime.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12.34 2.02C6.59 1.82 2 6.42 2 12c0 5.52 4.48 10 10 10 3.71 0 6.93-2.02 8.66-5.02-7.51-.25-12.09-8.43-8.32-14.96z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/bedtime_off.svg b/html/matt-chat/uswds/img/material-icons/bedtime_off.svg
new file mode 100644
index 0000000..2ecc455
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/bedtime_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21.19 21.19 2.81 2.81 1.39 4.22l2.27 2.27A9.959 9.959 0 0 0 2 12c0 5.52 4.48 10 10 10 2.04 0 3.93-.62 5.51-1.66l2.27 2.27 1.41-1.42zM12.34 2.02c-2.18-.07-4.19.55-5.85 1.64l4.59 4.59c-.27-2.05.1-4.22 1.26-6.23z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/beenhere.svg b/html/matt-chat/uswds/img/material-icons/beenhere.svg
new file mode 100644
index 0000000..c5db797
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/beenhere.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 1H5c-1.1 0-1.99.9-1.99 2L3 15.93c0 .69.35 1.3.88 1.66L12 23l8.11-5.41c.53-.36.88-.97.88-1.66L21 3c0-1.1-.9-2-2-2zm-9 15-5-5 1.41-1.41L10 13.17l7.59-7.59L19 7l-9 9z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/bento.svg b/html/matt-chat/uswds/img/material-icons/bento.svg
new file mode 100644
index 0000000..063ecf2
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/bento.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16 11V5h4c1.1 0 2 .9 2 2v4h-6zm4 8c1.1 0 2-.9 2-2v-4h-6v6h4zM14 5v14H4c-1.1 0-2-.9-2-2V7c0-1.1.9-2 2-2h10zm-4.5 7c0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5.67 1.5 1.5 1.5 1.5-.67 1.5-1.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/bike_scooter.svg b/html/matt-chat/uswds/img/material-icons/bike_scooter.svg
new file mode 100644
index 0000000..dff626c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/bike_scooter.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10 14h.74L8.82 5.56A2.009 2.009 0 0 0 6.87 4H3v2h3.87l1.42 6.25h-.01A6.008 6.008 0 0 0 4.09 17H0v2h6v-1c0-2.21 1.79-4 4-4zm9-6h-.82l-1.35-3.69A1.976 1.976 0 0 0 14.96 3H11v2h3.96l1.1 3H10.4l.46 2H15c-.43.58-.75 1.25-.9 2h-2.79l.46 2h2.33c.44 2.23 2.31 3.88 4.65 3.99 2.8.13 5.25-2.19 5.25-5C24 10.2 21.8 8 19 8zm0 8c-1.68 0-3-1.32-3-3 0-.93.41-1.73 1.05-2.28l.96 2.64 1.88-.68-.97-2.67c.03 0 .06-.01.09-.01 1.68 0 3 1.32 3 3s-1.33 3-3.01 3z"/><path d="M10 15c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3zm0 4c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/biotech.svg b/html/matt-chat/uswds/img/material-icons/biotech.svg
new file mode 100644
index 0000000..4e4ba58
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/biotech.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M7 19c-1.1 0-2 .9-2 2h14c0-1.1-.9-2-2-2h-4v-2h3c1.1 0 2-.9 2-2h-8c-1.66 0-3-1.34-3-3 0-1.09.59-2.04 1.46-2.56C8.17 9.03 8 8.54 8 8c0-.21.04-.42.09-.62A5.01 5.01 0 0 0 5 12c0 2.76 2.24 5 5 5v2H7z"/><path d="M10.56 5.51C11.91 5.54 13 6.64 13 8c0 .75-.33 1.41-.85 1.87l.59 1.62.94-.34.34.94 1.88-.68-.34-.94.94-.34-2.74-7.53-.94.34-.34-.94-1.88.68.34.94-.94.35.56 1.54z"/><circle cx="10.5" cy="8" r="1.5"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/blender.svg b/html/matt-chat/uswds/img/material-icons/blender.svg
new file mode 100644
index 0000000..2362be7
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/blender.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16.13 15.13 18 3h-4V2h-4v1H5c-1.1 0-2 .9-2 2v4c0 1.1.9 2 2 2h2.23l.64 4.13C6.74 16.05 6 17.43 6 19v1c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2v-1c0-1.57-.74-2.95-1.87-3.87zM5 9V5h1.31l.62 4H5zm7 10c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm2.29-5H9.72L8.33 5h7.34l-1.38 9z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/blind.svg b/html/matt-chat/uswds/img/material-icons/blind.svg
new file mode 100644
index 0000000..5de57a9
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/blind.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><circle cx="11.5" cy="3.5" r="2"/><path d="M12.13 7.12c-.17-.35-.44-.65-.8-.85a1.98 1.98 0 0 0-1.93-.03v-.01L4 9.3V14h2v-3.54l1.5-.85C7.18 10.71 7 11.85 7 13v5.33L4.4 21.8 6 23l3-4 .22-3.54L11 18v5h2v-6.5l-1.97-2.81c-.04-.52-.14-1.76.45-3.4.75 1.14 1.88 1.98 3.2 2.41L20.63 23l.87-.5-5.48-9.5H17v-2c-.49 0-2.88.17-4.08-2.21"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/blinds.svg b/html/matt-chat/uswds/img/material-icons/blinds.svg
new file mode 100644
index 0000000..f58b73e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/blinds.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 19V3H4v16H2v2h20v-2h-2zM16 9h2v2h-2V9zm-2 2H6V9h8v2zm4-4h-2V5h2v2zm-4-2v2H6V5h8zM6 19v-6h8v1.82A1.746 1.746 0 0 0 15 18a1.746 1.746 0 0 0 1-3.18V13h2v6H6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/blinds_closed.svg b/html/matt-chat/uswds/img/material-icons/blinds_closed.svg
new file mode 100644
index 0000000..b322fa9
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/blinds_closed.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 19V3H4v16H2v2h11.25c0 .97.78 1.75 1.75 1.75s1.75-.78 1.75-1.75H22v-2h-2zm-2-8h-2V9h2v2zm-4 0H6V9h8v2zm0 2v2H6v-2h8zm2 0h2v2h-2v-2zm2-6h-2V5h2v2zm-4-2v2H6V5h8zM6 19v-2h8v2H6zm10 0v-2h2v2h-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/block.svg b/html/matt-chat/uswds/img/material-icons/block.svg
new file mode 100644
index 0000000..a968282
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/block.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zM4 12c0-4.42 3.58-8 8-8 1.85 0 3.55.63 4.9 1.69L5.69 16.9A7.902 7.902 0 0 1 4 12zm8 8c-1.85 0-3.55-.63-4.9-1.69L18.31 7.1A7.902 7.902 0 0 1 20 12c0 4.42-3.58 8-8 8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/bloodtype.svg b/html/matt-chat/uswds/img/material-icons/bloodtype.svg
new file mode 100644
index 0000000..64def59
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/bloodtype.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2c-5.33 4.55-8 8.48-8 11.8 0 4.98 3.8 8.2 8 8.2s8-3.22 8-8.2c0-3.32-2.67-7.25-8-11.8zm3 16H9v-2h6v2zm0-5h-2v2h-2v-2H9v-2h2V9h2v2h2v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/bluetooth.svg b/html/matt-chat/uswds/img/material-icons/bluetooth.svg
new file mode 100644
index 0000000..3a1f068
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/bluetooth.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17.71 7.71 12 2h-1v7.59L6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 11 14.41V22h1l5.71-5.71-4.3-4.29 4.3-4.29zM13 5.83l1.88 1.88L13 9.59V5.83zm1.88 10.46L13 18.17v-3.76l1.88 1.88z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/bluetooth_audio.svg b/html/matt-chat/uswds/img/material-icons/bluetooth_audio.svg
new file mode 100644
index 0000000..ead61ec
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/bluetooth_audio.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m14.24 12.01 2.32 2.32c.28-.72.44-1.51.44-2.33 0-.82-.16-1.59-.43-2.31l-2.33 2.32zm5.29-5.3-1.26 1.26c.63 1.21.98 2.57.98 4.02s-.36 2.82-.98 4.02l1.2 1.2a9.936 9.936 0 0 0 1.54-5.31c-.01-1.89-.55-3.67-1.48-5.19zm-3.82 1L10 2H9v7.59L4.41 5 3 6.41 8.59 12 3 17.59 4.41 19 9 14.41V22h1l5.71-5.71-4.3-4.29 4.3-4.29zM11 5.83l1.88 1.88L11 9.59V5.83zm1.88 10.46L11 18.17v-3.76l1.88 1.88z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/bluetooth_connected.svg b/html/matt-chat/uswds/img/material-icons/bluetooth_connected.svg
new file mode 100644
index 0000000..747afc4
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/bluetooth_connected.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m7 12-2-2-2 2 2 2 2-2zm10.71-4.29L12 2h-1v7.59L6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 11 14.41V22h1l5.71-5.71-4.3-4.29 4.3-4.29zM13 5.83l1.88 1.88L13 9.59V5.83zm1.88 10.46L13 18.17v-3.76l1.88 1.88zM19 10l-2 2 2 2 2-2-2-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/bluetooth_disabled.svg b/html/matt-chat/uswds/img/material-icons/bluetooth_disabled.svg
new file mode 100644
index 0000000..ea416d7
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/bluetooth_disabled.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m13 5.83 1.88 1.88-1.6 1.6 1.41 1.41 3.02-3.02L12 2h-1v5.03l2 2v-3.2zM5.41 4 4 5.41 10.59 12 5 17.59 6.41 19 11 14.41V22h1l4.29-4.29 2.3 2.29L20 18.59 5.41 4zM13 18.17v-3.76l1.88 1.88L13 18.17z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/bluetooth_drive.svg b/html/matt-chat/uswds/img/material-icons/bluetooth_drive.svg
new file mode 100644
index 0000000..bce08fc
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/bluetooth_drive.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15 10H4.81l1.04-3H15V5H5.5c-.66 0-1.21.42-1.42 1.01L2 12v8c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1h12v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-8h-3c-1.1 0-2-.9-2-2zm-8.5 6c-.83 0-1.5-.67-1.5-1.5S5.67 13 6.5 13s1.5.67 1.5 1.5S7.33 16 6.5 16zm9 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5z"/><path d="M22 3.85 19.15 1h-.5v3.79l-2.3-2.29-.7.7L18.44 6l-2.79 2.79.7.71 2.3-2.3V11h.5L22 8.14 19.85 6 22 3.85zm-2.35-.94.94.94-.94.94V2.91zm.94 5.23-.94.94V7.2l.94.94z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/bluetooth_searching.svg b/html/matt-chat/uswds/img/material-icons/bluetooth_searching.svg
new file mode 100644
index 0000000..ead61ec
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/bluetooth_searching.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m14.24 12.01 2.32 2.32c.28-.72.44-1.51.44-2.33 0-.82-.16-1.59-.43-2.31l-2.33 2.32zm5.29-5.3-1.26 1.26c.63 1.21.98 2.57.98 4.02s-.36 2.82-.98 4.02l1.2 1.2a9.936 9.936 0 0 0 1.54-5.31c-.01-1.89-.55-3.67-1.48-5.19zm-3.82 1L10 2H9v7.59L4.41 5 3 6.41 8.59 12 3 17.59 4.41 19 9 14.41V22h1l5.71-5.71-4.3-4.29 4.3-4.29zM11 5.83l1.88 1.88L11 9.59V5.83zm1.88 10.46L11 18.17v-3.76l1.88 1.88z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/blur_circular.svg b/html/matt-chat/uswds/img/material-icons/blur_circular.svg
new file mode 100644
index 0000000..3a91b1d
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/blur_circular.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10 9c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0 4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zM7 9.5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm3 7c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm-3-3c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm3-6c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zM14 9c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0-1.5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zm3 6c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm0-4c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm2-3.5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm0-3.5c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/blur_linear.svg b/html/matt-chat/uswds/img/material-icons/blur_linear.svg
new file mode 100644
index 0000000..1f2590f
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/blur_linear.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M5 17.5c.83 0 1.5-.67 1.5-1.5s-.67-1.5-1.5-1.5-1.5.67-1.5 1.5.67 1.5 1.5 1.5zM9 13c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm0-4c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zM3 21h18v-2H3v2zM5 9.5c.83 0 1.5-.67 1.5-1.5S5.83 6.5 5 6.5 3.5 7.17 3.5 8 4.17 9.5 5 9.5zm0 4c.83 0 1.5-.67 1.5-1.5s-.67-1.5-1.5-1.5-1.5.67-1.5 1.5.67 1.5 1.5 1.5zM9 17c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm8-.5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zM3 3v2h18V3H3zm14 5.5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zm0 4c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zM13 9c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm0 4c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm0 4c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/blur_off.svg b/html/matt-chat/uswds/img/material-icons/blur_off.svg
new file mode 100644
index 0000000..541ccd4
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/blur_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M14 7c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm-.2 4.48.2.02c.83 0 1.5-.67 1.5-1.5s-.67-1.5-1.5-1.5-1.5.67-1.5 1.5l.02.2c.09.67.61 1.19 1.28 1.28zM14 3.5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zm-4 0c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zm11 7c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zM10 7c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm8 8c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm0-4c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm0-4c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm-4 13.5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zM2.5 5.27l3.78 3.78L6 9c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1c0-.1-.03-.19-.06-.28l2.81 2.81c-.71.11-1.25.73-1.25 1.47 0 .83.67 1.5 1.5 1.5.74 0 1.36-.54 1.47-1.25l2.81 2.81A.875.875 0 0 0 14 17c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1c0-.1-.03-.19-.06-.28l3.78 3.78L20 20.23 3.77 4 2.5 5.27zM10 17c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm11-3.5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zM6 13c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zM3 9.5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm7 11c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zM6 17c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm-3-3.5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/blur_on.svg b/html/matt-chat/uswds/img/material-icons/blur_on.svg
new file mode 100644
index 0000000..0983b48
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/blur_on.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M6 13c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0 4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0-8c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm-3 .5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zM6 5c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm15 5.5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zM14 7c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm0-3.5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zm-11 10c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm7 7c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm0-17c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zM10 7c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm0 5.5c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm8 .5c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0 4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0-8c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0-4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm3 8.5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zM14 17c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0 3.5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm-4-12c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm0 8.5c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm4-4.5c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm0-4c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/bolt.svg b/html/matt-chat/uswds/img/material-icons/bolt.svg
new file mode 100644
index 0000000..d5fa368
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/bolt.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11 21h-1l1-7H7.5c-.58 0-.57-.32-.38-.66.19-.34.05-.08.07-.12C8.48 10.94 10.42 7.54 13 3h1l-1 7h3.5c.49 0 .56.33.47.51l-.07.15C12.96 17.55 11 21 11 21z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/book.svg b/html/matt-chat/uswds/img/material-icons/book.svg
new file mode 100644
index 0000000..f5dd104
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/book.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 2H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM6 4h5v8l-2.5-1.5L6 12V4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/book_online.svg b/html/matt-chat/uswds/img/material-icons/book_online.svg
new file mode 100644
index 0000000..3dc249c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/book_online.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 1H7c-1.1 0-2 .9-2 2v18c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zM7 18V6h10v12H7zm9-7V9.14C16 8.51 15.55 8 15 8H9c-.55 0-1 .51-1 1.14v1.96c.55 0 1 .45 1 1s-.45 1-1 1v1.76c0 .63.45 1.14 1 1.14h6c.55 0 1-.51 1-1.14V13c-.55 0-1-.45-1-1s.45-1 1-1zm-3.5 3.5h-1v-1h1v1zm0-2h-1v-1h1v1zm0-2h-1v-1h1v1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/bookmark.svg b/html/matt-chat/uswds/img/material-icons/bookmark.svg
new file mode 100644
index 0000000..1d507a6
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/bookmark.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 3H7c-1.1 0-1.99.9-1.99 2L5 21l7-3 7 3V5c0-1.1-.9-2-2-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/bookmark_add.svg b/html/matt-chat/uswds/img/material-icons/bookmark_add.svg
new file mode 100644
index 0000000..5ac8947
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/bookmark_add.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 7h-2v2h-2V7h-2V5h2V3h2v2h2v2zm-2 14-7-3-7 3V5c0-1.1.9-2 2-2h7a5.002 5.002 0 0 0 5 7.9V21z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/bookmark_added.svg b/html/matt-chat/uswds/img/material-icons/bookmark_added.svg
new file mode 100644
index 0000000..10a5d7d
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/bookmark_added.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m19 21-7-3-7 3V5c0-1.1.9-2 2-2h7a5.002 5.002 0 0 0 5 7.9V21zM17.83 9 15 6.17l1.41-1.41 1.41 1.41 3.54-3.54 1.41 1.41L17.83 9z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/bookmark_border.svg b/html/matt-chat/uswds/img/material-icons/bookmark_border.svg
new file mode 100644
index 0000000..edef694
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/bookmark_border.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 3H7c-1.1 0-1.99.9-1.99 2L5 21l7-3 7 3V5c0-1.1-.9-2-2-2zm0 15-5-2.18L7 18V5h10v13z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/bookmark_remove.svg b/html/matt-chat/uswds/img/material-icons/bookmark_remove.svg
new file mode 100644
index 0000000..679a1aa
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/bookmark_remove.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 7h-6V5h6v2zm-2 3.9A5.002 5.002 0 0 1 14 3H7c-1.1 0-2 .9-2 2v16l7-3 7 3V10.9z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/bookmarks.svg b/html/matt-chat/uswds/img/material-icons/bookmarks.svg
new file mode 100644
index 0000000..937fce2
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/bookmarks.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m19 18 2 1V3c0-1.1-.9-2-2-2H8.99C7.89 1 7 1.9 7 3h10c1.1 0 2 .9 2 2v13zM15 5H5c-1.1 0-2 .9-2 2v16l7-3 7 3V7c0-1.1-.9-2-2-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/border_all.svg b/html/matt-chat/uswds/img/material-icons/border_all.svg
new file mode 100644
index 0000000..4537456
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/border_all.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 3v18h18V3H3zm8 16H5v-6h6v6zm0-8H5V5h6v6zm8 8h-6v-6h6v6zm0-8h-6V5h6v6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/border_bottom.svg b/html/matt-chat/uswds/img/material-icons/border_bottom.svg
new file mode 100644
index 0000000..61be129
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/border_bottom.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M9 11H7v2h2v-2zm4 4h-2v2h2v-2zM9 3H7v2h2V3zm4 8h-2v2h2v-2zM5 3H3v2h2V3zm8 4h-2v2h2V7zm4 4h-2v2h2v-2zm-4-8h-2v2h2V3zm4 0h-2v2h2V3zm2 10h2v-2h-2v2zm0 4h2v-2h-2v2zM5 7H3v2h2V7zm14-4v2h2V3h-2zm0 6h2V7h-2v2zM5 11H3v2h2v-2zM3 21h18v-2H3v2zm2-6H3v2h2v-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/border_clear.svg b/html/matt-chat/uswds/img/material-icons/border_clear.svg
new file mode 100644
index 0000000..a585f80
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/border_clear.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M7 5h2V3H7v2zm0 8h2v-2H7v2zm0 8h2v-2H7v2zm4-4h2v-2h-2v2zm0 4h2v-2h-2v2zm-8 0h2v-2H3v2zm0-4h2v-2H3v2zm0-4h2v-2H3v2zm0-4h2V7H3v2zm0-4h2V3H3v2zm8 8h2v-2h-2v2zm8 4h2v-2h-2v2zm0-4h2v-2h-2v2zm0 8h2v-2h-2v2zm0-12h2V7h-2v2zm-8 0h2V7h-2v2zm8-6v2h2V3h-2zm-8 2h2V3h-2v2zm4 16h2v-2h-2v2zm0-8h2v-2h-2v2zm0-8h2V3h-2v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/border_color.svg b/html/matt-chat/uswds/img/material-icons/border_color.svg
new file mode 100644
index 0000000..d237cad
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/border_color.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M22 24H2v-4h20v4zM13.06 5.19l3.75 3.75L7.75 18H4v-3.75l9.06-9.06zm4.82 2.68-3.75-3.75 1.83-1.83a.996.996 0 0 1 1.41 0l2.34 2.34c.39.39.39 1.02 0 1.41l-1.83 1.83z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/border_horizontal.svg b/html/matt-chat/uswds/img/material-icons/border_horizontal.svg
new file mode 100644
index 0000000..f84b852
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/border_horizontal.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 21h2v-2H3v2zM5 7H3v2h2V7zM3 17h2v-2H3v2zm4 4h2v-2H7v2zM5 3H3v2h2V3zm4 0H7v2h2V3zm8 0h-2v2h2V3zm-4 4h-2v2h2V7zm0-4h-2v2h2V3zm6 14h2v-2h-2v2zm-8 4h2v-2h-2v2zm-8-8h18v-2H3v2zM19 3v2h2V3h-2zm0 6h2V7h-2v2zm-8 8h2v-2h-2v2zm4 4h2v-2h-2v2zm4 0h2v-2h-2v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/border_inner.svg b/html/matt-chat/uswds/img/material-icons/border_inner.svg
new file mode 100644
index 0000000..a5a4677
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/border_inner.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 21h2v-2H3v2zm4 0h2v-2H7v2zM5 7H3v2h2V7zM3 17h2v-2H3v2zM9 3H7v2h2V3zM5 3H3v2h2V3zm12 0h-2v2h2V3zm2 6h2V7h-2v2zm0-6v2h2V3h-2zm-4 18h2v-2h-2v2zM13 3h-2v8H3v2h8v8h2v-8h8v-2h-8V3zm6 18h2v-2h-2v2zm0-4h2v-2h-2v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/border_left.svg b/html/matt-chat/uswds/img/material-icons/border_left.svg
new file mode 100644
index 0000000..894c809
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/border_left.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11 21h2v-2h-2v2zm0-4h2v-2h-2v2zm0-12h2V3h-2v2zm0 4h2V7h-2v2zm0 4h2v-2h-2v2zm-4 8h2v-2H7v2zM7 5h2V3H7v2zm0 8h2v-2H7v2zm-4 8h2V3H3v18zM19 9h2V7h-2v2zm-4 12h2v-2h-2v2zm4-4h2v-2h-2v2zm0-14v2h2V3h-2zm0 10h2v-2h-2v2zm0 8h2v-2h-2v2zm-4-8h2v-2h-2v2zm0-8h2V3h-2v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/border_outer.svg b/html/matt-chat/uswds/img/material-icons/border_outer.svg
new file mode 100644
index 0000000..23fbba8
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/border_outer.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13 7h-2v2h2V7zm0 4h-2v2h2v-2zm4 0h-2v2h2v-2zM3 3v18h18V3H3zm16 16H5V5h14v14zm-6-4h-2v2h2v-2zm-4-4H7v2h2v-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/border_right.svg b/html/matt-chat/uswds/img/material-icons/border_right.svg
new file mode 100644
index 0000000..f8965e1
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/border_right.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M7 21h2v-2H7v2zM3 5h2V3H3v2zm4 0h2V3H7v2zm0 8h2v-2H7v2zm-4 8h2v-2H3v2zm8 0h2v-2h-2v2zm-8-8h2v-2H3v2zm0 4h2v-2H3v2zm0-8h2V7H3v2zm8 8h2v-2h-2v2zm4-4h2v-2h-2v2zm4-10v18h2V3h-2zm-4 18h2v-2h-2v2zm0-16h2V3h-2v2zm-4 8h2v-2h-2v2zm0-8h2V3h-2v2zm0 4h2V7h-2v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/border_style.svg b/html/matt-chat/uswds/img/material-icons/border_style.svg
new file mode 100644
index 0000000..179e8d6
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/border_style.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15 21h2v-2h-2v2zm4 0h2v-2h-2v2zM7 21h2v-2H7v2zm4 0h2v-2h-2v2zm8-4h2v-2h-2v2zm0-4h2v-2h-2v2zM3 3v18h2V5h16V3H3zm16 6h2V7h-2v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/border_top.svg b/html/matt-chat/uswds/img/material-icons/border_top.svg
new file mode 100644
index 0000000..7f6795f
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/border_top.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M7 21h2v-2H7v2zm0-8h2v-2H7v2zm4 0h2v-2h-2v2zm0 8h2v-2h-2v2zm-8-4h2v-2H3v2zm0 4h2v-2H3v2zm0-8h2v-2H3v2zm0-4h2V7H3v2zm8 8h2v-2h-2v2zm8-8h2V7h-2v2zm0 4h2v-2h-2v2zM3 3v2h18V3H3zm16 14h2v-2h-2v2zm-4 4h2v-2h-2v2zM11 9h2V7h-2v2zm8 12h2v-2h-2v2zm-4-8h2v-2h-2v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/border_vertical.svg b/html/matt-chat/uswds/img/material-icons/border_vertical.svg
new file mode 100644
index 0000000..719ddf6
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/border_vertical.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 9h2V7H3v2zm0-4h2V3H3v2zm4 16h2v-2H7v2zm0-8h2v-2H7v2zm-4 0h2v-2H3v2zm0 8h2v-2H3v2zm0-4h2v-2H3v2zM7 5h2V3H7v2zm12 12h2v-2h-2v2zm-8 4h2V3h-2v18zm8 0h2v-2h-2v2zm0-8h2v-2h-2v2zm0-10v2h2V3h-2zm0 6h2V7h-2v2zm-4-4h2V3h-2v2zm0 16h2v-2h-2v2zm0-8h2v-2h-2v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/boy.svg b/html/matt-chat/uswds/img/material-icons/boy.svg
new file mode 100644
index 0000000..53e3f78
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/boy.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 7.5c.97 0 1.75-.78 1.75-1.75S12.97 4 12 4s-1.75.78-1.75 1.75S11.03 7.5 12 7.5zM14 20v-5h1v-4.5c0-1.1-.9-2-2-2h-2c-1.1 0-2 .9-2 2V15h1v5h4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/branding_watermark.svg b/html/matt-chat/uswds/img/material-icons/branding_watermark.svg
new file mode 100644
index 0000000..1ea828b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/branding_watermark.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 3H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16h-9v-6h9v6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/breakfast_dining.svg b/html/matt-chat/uswds/img/material-icons/breakfast_dining.svg
new file mode 100644
index 0000000..afefd5a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/breakfast_dining.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill-rule="evenodd" d="M18 3H6C3.79 3 2 4.79 2 7c0 1.48.81 2.75 2 3.45V19c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2v-8.55c1.19-.69 2-1.97 2-3.45 0-2.21-1.79-4-4-4zm-4 12h-4v-4h4v4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/brightness_1.svg b/html/matt-chat/uswds/img/material-icons/brightness_1.svg
new file mode 100644
index 0000000..575b111
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/brightness_1.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><circle cx="12" cy="12" r="10"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/brightness_2.svg b/html/matt-chat/uswds/img/material-icons/brightness_2.svg
new file mode 100644
index 0000000..c963e0b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/brightness_2.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10 2c-1.82 0-3.53.5-5 1.35C7.99 5.08 10 8.3 10 12s-2.01 6.92-5 8.65C6.47 21.5 8.18 22 10 22c5.52 0 10-4.48 10-10S15.52 2 10 2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/brightness_3.svg b/html/matt-chat/uswds/img/material-icons/brightness_3.svg
new file mode 100644
index 0000000..3048e31
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/brightness_3.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M9 2c-1.05 0-2.05.16-3 .46 4.06 1.27 7 5.06 7 9.54 0 4.48-2.94 8.27-7 9.54.95.3 1.95.46 3 .46 5.52 0 10-4.48 10-10S14.52 2 9 2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/brightness_4.svg b/html/matt-chat/uswds/img/material-icons/brightness_4.svg
new file mode 100644
index 0000000..2566874
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/brightness_4.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69zM12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6c3.31 0 6 2.69 6 6s-2.69 6-6 6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/brightness_5.svg b/html/matt-chat/uswds/img/material-icons/brightness_5.svg
new file mode 100644
index 0000000..d39dcef
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/brightness_5.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 15.31 23.31 12 20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69zM12 18c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/brightness_6.svg b/html/matt-chat/uswds/img/material-icons/brightness_6.svg
new file mode 100644
index 0000000..a6f78af
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/brightness_6.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 15.31 23.31 12 20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69zM12 18V6c3.31 0 6 2.69 6 6s-2.69 6-6 6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/brightness_7.svg b/html/matt-chat/uswds/img/material-icons/brightness_7.svg
new file mode 100644
index 0000000..f4a2b29
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/brightness_7.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69zM12 18c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6zm0-10c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/brightness_auto.svg b/html/matt-chat/uswds/img/material-icons/brightness_auto.svg
new file mode 100644
index 0000000..074d7b1
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/brightness_auto.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10.85 12.65h2.3L12 9l-1.15 3.65zM20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69zM14.3 16l-.7-2h-3.2l-.7 2H7.8L11 7h2l3.2 9h-1.9z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/brightness_high.svg b/html/matt-chat/uswds/img/material-icons/brightness_high.svg
new file mode 100644
index 0000000..f4a2b29
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/brightness_high.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69zM12 18c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6zm0-10c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/brightness_low.svg b/html/matt-chat/uswds/img/material-icons/brightness_low.svg
new file mode 100644
index 0000000..d39dcef
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/brightness_low.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 15.31 23.31 12 20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69zM12 18c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/brightness_medium.svg b/html/matt-chat/uswds/img/material-icons/brightness_medium.svg
new file mode 100644
index 0000000..a6f78af
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/brightness_medium.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 15.31 23.31 12 20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69zM12 18V6c3.31 0 6 2.69 6 6s-2.69 6-6 6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/broadcast_on_home.svg b/html/matt-chat/uswds/img/material-icons/broadcast_on_home.svg
new file mode 100644
index 0000000..1cfc1e4
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/broadcast_on_home.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M22 6c0-1.1-.9-2-2-2H4v2h16v2.59c.73.29 1.4.69 2 1.17V6zM8 9H3c-.5 0-1 .5-1 1v9c0 .5.5 1 1 1h5c.5 0 1-.5 1-1v-9c0-.5-.5-1-1-1zm-1 9H4v-7h3v7zm10.75-1.03c.3-.23.5-.57.5-.97a1.25 1.25 0 0 0-2.5 0c0 .4.2.75.5.97V22h1.5v-5.03z"/><path d="M17 13.5a2.5 2.5 0 0 1 2.5 2.5c0 .69-.28 1.31-.73 1.76l1.06 1.06C20.55 18.1 21 17.1 21 16c0-2.21-1.79-4-4-4s-4 1.79-4 4c0 1.1.45 2.1 1.17 2.83l1.06-1.06A2.5 2.5 0 0 1 17 13.5z"/><path d="M17 9.5a6.5 6.5 0 0 0-6.5 6.5c0 1.79.73 3.42 1.9 4.6l1.06-1.06C12.56 18.63 12 17.38 12 16c0-2.76 2.24-5 5-5s5 2.24 5 5c0 1.37-.56 2.62-1.46 3.52l1.07 1.06A6.5 6.5 0 0 0 17 9.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/broadcast_on_personal.svg b/html/matt-chat/uswds/img/material-icons/broadcast_on_personal.svg
new file mode 100644
index 0000000..8151e88
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/broadcast_on_personal.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 8c.7 0 1.38.1 2.02.27L12 3 4 9v12h6.76A7.998 7.998 0 0 1 17 8zm0 6.75c-.69 0-1.25.56-1.25 1.25 0 .4.2.75.5.97V22h1.5v-5.03c.3-.23.5-.57.5-.97 0-.69-.56-1.25-1.25-1.25z"/><path d="M17 12c-2.21 0-4 1.79-4 4 0 1.1.45 2.1 1.17 2.83l1.06-1.06A2.5 2.5 0 1 1 19.5 16c0 .69-.28 1.31-.73 1.76l1.06 1.06C20.55 18.1 21 17.1 21 16c0-2.21-1.79-4-4-4z"/><path d="M17 9.5a6.5 6.5 0 0 0-6.5 6.5c0 1.79.73 3.42 1.9 4.6l1.06-1.06C12.56 18.63 12 17.38 12 16c0-2.76 2.24-5 5-5s5 2.24 5 5c0 1.37-.56 2.62-1.46 3.52l1.07 1.06A6.5 6.5 0 0 0 17 9.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/broken_image.svg b/html/matt-chat/uswds/img/material-icons/broken_image.svg
new file mode 100644
index 0000000..5bf7b88
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/broken_image.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 5v6.59l-3-3.01-4 4.01-4-4-4 4-3-3.01V5c0-1.1.9-2 2-2h14c1.1 0 2 .9 2 2zm-3 6.42 3 3.01V19c0 1.1-.9 2-2 2H5c-1.1 0-2-.9-2-2v-6.58l3 2.99 4-4 4 4 4-3.99z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/browse_gallery.svg b/html/matt-chat/uswds/img/material-icons/browse_gallery.svg
new file mode 100644
index 0000000..c9b9750
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/browse_gallery.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M9 3a9 9 0 1 0 .001 18.001A9 9 0 0 0 9 3zm2.79 13.21L8 12.41V7h2v4.59l3.21 3.21-1.42 1.41z"/><path d="M17.99 3.52v2.16A6.99 6.99 0 0 1 22 12c0 2.79-1.64 5.2-4.01 6.32v2.16C21.48 19.24 24 15.91 24 12s-2.52-7.24-6.01-8.48z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/browser_not_supported.svg b/html/matt-chat/uswds/img/material-icons/browser_not_supported.svg
new file mode 100644
index 0000000..3de8df4
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/browser_not_supported.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 6v10.5l1.95 1.95c.03-.15.05-.3.05-.45V6c0-1.1-.9-2-2-2H6.5l2 2H19zM3.22 3.32 1.95 4.59 3 5.64V18c0 1.1.9 2 2 2h12.36l2.06 2.06 1.27-1.27L3.22 3.32zM15 18H5V7.64L15.36 18H15z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/browser_updated.svg b/html/matt-chat/uswds/img/material-icons/browser_updated.svg
new file mode 100644
index 0000000..55bd09f
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/browser_updated.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M22 13v3c0 1.1-.9 2-2 2h-3l1 1v2H6v-2l1-1H4c-1.1 0-2-.9-2-2V5c0-1.1.9-2 2-2h8v2H4v11h16v-3h2zm-7 2-5-5h4V3h2v7h4l-5 5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/brunch_dining.svg b/html/matt-chat/uswds/img/material-icons/brunch_dining.svg
new file mode 100644
index 0000000..78df711
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/brunch_dining.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill-rule="evenodd" d="M18 8h2V4h-2v4zm-2.49 14H2.49c-.27 0-.49-.22-.49-.5V20h14v1.5c0 .28-.22.5-.49.5zM18 15.89l-.4-.42a5.852 5.852 0 0 1-1.6-4V2h6v9.51c0 1.46-.54 2.87-1.53 3.94l-.47.52V20h2v2h-4v-6.11zM7 16v-2h4v2h4.5c.28 0 .5.22.5.5v1c0 .28-.22.5-.5.5h-13c-.28 0-.5-.22-.5-.5v-1c0-.28.22-.5.5-.5H7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/brush.svg b/html/matt-chat/uswds/img/material-icons/brush.svg
new file mode 100644
index 0000000..1d95ea5
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/brush.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M7 14c-1.66 0-3 1.34-3 3 0 1.31-1.16 2-2 2 .92 1.22 2.49 2 4 2 2.21 0 4-1.79 4-4 0-1.66-1.34-3-3-3zm13.71-9.37-1.34-1.34a.996.996 0 0 0-1.41 0L9 12.25 11.75 15l8.96-8.96a.996.996 0 0 0 0-1.41z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/bubble_chart.svg b/html/matt-chat/uswds/img/material-icons/bubble_chart.svg
new file mode 100644
index 0000000..35d0fbb
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/bubble_chart.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><circle cx="7.2" cy="14.4" r="3.2"/><circle cx="14.8" cy="18" r="2"/><circle cx="15.2" cy="8.8" r="4.8"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/bug_report.svg b/html/matt-chat/uswds/img/material-icons/bug_report.svg
new file mode 100644
index 0000000..daa8b32
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/bug_report.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 8h-2.81a5.985 5.985 0 0 0-1.82-1.96L17 4.41 15.59 3l-2.17 2.17C12.96 5.06 12.49 5 12 5c-.49 0-.96.06-1.41.17L8.41 3 7 4.41l1.62 1.63C7.88 6.55 7.26 7.22 6.81 8H4v2h2.09c-.05.33-.09.66-.09 1v1H4v2h2v1c0 .34.04.67.09 1H4v2h2.81c1.04 1.79 2.97 3 5.19 3s4.15-1.21 5.19-3H20v-2h-2.09c.05-.33.09-.66.09-1v-1h2v-2h-2v-1c0-.34-.04-.67-.09-1H20V8zm-6 8h-4v-2h4v2zm0-4h-4v-2h4v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/build.svg b/html/matt-chat/uswds/img/material-icons/build.svg
new file mode 100644
index 0000000..26ead66
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/build.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m22.7 19-9.1-9.1c.9-2.3.4-5-1.5-6.9-2-2-5-2.4-7.4-1.3L9 6 6 9 1.6 4.7C.4 7.1.9 10.1 2.9 12.1c1.9 1.9 4.6 2.4 6.9 1.5l9.1 9.1c.4.4 1 .4 1.4 0l2.3-2.3c.5-.4.5-1.1.1-1.4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/build_circle.svg b/html/matt-chat/uswds/img/material-icons/build_circle.svg
new file mode 100644
index 0000000..181273c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/build_circle.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill-rule="evenodd" d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm4.9 13.49-1.4 1.4c-.2.2-.51.2-.71 0l-3.41-3.41c-1.22.43-2.64.17-3.62-.81a3.468 3.468 0 0 1-.59-4.1l2.35 2.35 1.41-1.41-2.35-2.34c1.32-.71 2.99-.52 4.1.59.98.98 1.24 2.4.81 3.62l3.41 3.41c.19.19.19.51 0 .7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/bungalow.svg b/html/matt-chat/uswds/img/material-icons/bungalow.svg
new file mode 100644
index 0000000..dc6aaa6
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/bungalow.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 3 4.2 15.5l1.7 1.06L7 14.8V21h4v-5h2v5h4v-6.21l1.1 1.77 1.7-1.06L12 3zm1 11h-2v-2h2v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/burst_mode.svg b/html/matt-chat/uswds/img/material-icons/burst_mode.svg
new file mode 100644
index 0000000..6923324
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/burst_mode.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M1 5h2v14H1zm4 0h2v14H5zm17 0H10c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1zM11 17l2.5-3.15L15.29 16l2.5-3.22L21 17H11z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/bus_alert.svg b/html/matt-chat/uswds/img/material-icons/bus_alert.svg
new file mode 100644
index 0000000..01a9ae7
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/bus_alert.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16 1a7 7 0 0 0-5.78 3.05l.02-.03C9.84 4 9.42 4 9 4c-4.42 0-8 .5-8 4v10c0 .88.39 1.67 1 2.22V22a1 1 0 0 0 1 1h1a1 1 0 0 0 1-1v-1h8v1a1 1 0 0 0 1 1h1a1 1 0 0 0 1-1v-1.78c.61-.55 1-1.34 1-2.22v-3.08A7 7 0 0 0 16 1zM4.5 19a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zM3 13V8h6c0 1.96.81 3.73 2.11 5H3zm10.5 6a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm2.5-6a5 5 0 1 1 0-10 5 5 0 0 1 0 10zm-1-9h2v5h-2zm0 6h2v2h-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/business.svg b/html/matt-chat/uswds/img/material-icons/business.svg
new file mode 100644
index 0000000..bfaefa1
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/business.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 7V3H2v18h20V7H12zM6 19H4v-2h2v2zm0-4H4v-2h2v2zm0-4H4V9h2v2zm0-4H4V5h2v2zm4 12H8v-2h2v2zm0-4H8v-2h2v2zm0-4H8V9h2v2zm0-4H8V5h2v2zm10 12h-8v-2h2v-2h-2v-2h2v-2h-2V9h8v10zm-2-8h-2v2h2v-2zm0 4h-2v2h2v-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/business_center.svg b/html/matt-chat/uswds/img/material-icons/business_center.svg
new file mode 100644
index 0000000..a979c93
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/business_center.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10 16v-1H3.01L3 19c0 1.11.89 2 2 2h14c1.11 0 2-.89 2-2v-4h-7v1h-4zm10-9h-4.01V5l-2-2h-4l-2 2v2H4c-1.1 0-2 .9-2 2v3c0 1.11.89 2 2 2h6v-2h4v2h6c1.1 0 2-.9 2-2V9c0-1.1-.9-2-2-2zm-6 0h-4V5h4v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/cabin.svg b/html/matt-chat/uswds/img/material-icons/cabin.svg
new file mode 100644
index 0000000..dec1164
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/cabin.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10 1c0 1.66-1.34 3-3 3-.55 0-1 .45-1 1H4c0-1.66 1.34-3 3-3 .55 0 1-.45 1-1h2zm2 2L6 7.58V6H4v3.11L1 11.4l1.21 1.59L4 11.62V21h16v-9.38l1.79 1.36L23 11.4 12 3zm1.94 4h-3.89L12 5.52 13.94 7zm-6.5 2h9.12L18 10.1v.9H6v-.9L7.44 9zM18 13v2H6v-2h12zM6 19v-2h12v2H6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/cable.svg b/html/matt-chat/uswds/img/material-icons/cable.svg
new file mode 100644
index 0000000..c2a4b4a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/cable.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 5V4c0-.55-.45-1-1-1h-2c-.55 0-1 .45-1 1v1h-1v4c0 .55.45 1 1 1h1v7c0 1.1-.9 2-2 2s-2-.9-2-2V7c0-2.21-1.79-4-4-4S5 4.79 5 7v7H4c-.55 0-1 .45-1 1v4h1v1c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-1h1v-4c0-.55-.45-1-1-1H7V7c0-1.1.9-2 2-2s2 .9 2 2v10c0 2.21 1.79 4 4 4s4-1.79 4-4v-7h1c.55 0 1-.45 1-1V5h-1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/cached.svg b/html/matt-chat/uswds/img/material-icons/cached.svg
new file mode 100644
index 0000000..58e139d
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/cached.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m19 8-4 4h3c0 3.31-2.69 6-6 6a5.87 5.87 0 0 1-2.8-.7l-1.46 1.46A7.93 7.93 0 0 0 12 20c4.42 0 8-3.58 8-8h3l-4-4zM6 12c0-3.31 2.69-6 6-6 1.01 0 1.97.25 2.8.7l1.46-1.46A7.93 7.93 0 0 0 12 4c-4.42 0-8 3.58-8 8H1l4 4 4-4H6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/cake.svg b/html/matt-chat/uswds/img/material-icons/cake.svg
new file mode 100644
index 0000000..a51a4e1
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/cake.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 6a2 2 0 0 0 2-2c0-.38-.1-.73-.29-1.03L12 0l-1.71 2.97c-.19.3-.29.65-.29 1.03 0 1.1.9 2 2 2zm4.6 9.99-1.07-1.07-1.08 1.07c-1.3 1.3-3.58 1.31-4.89 0l-1.07-1.07-1.09 1.07C6.75 16.64 5.88 17 4.96 17c-.73 0-1.4-.23-1.96-.61V21c0 .55.45 1 1 1h16c.55 0 1-.45 1-1v-4.61c-.56.38-1.23.61-1.96.61-.92 0-1.79-.36-2.44-1.01zM18 9h-5V7h-2v2H6c-1.66 0-3 1.34-3 3v1.54c0 1.08.88 1.96 1.96 1.96.52 0 1.02-.2 1.38-.57l2.14-2.13 2.13 2.13c.74.74 2.03.74 2.77 0l2.14-2.13 2.13 2.13c.37.37.86.57 1.38.57 1.08 0 1.96-.88 1.96-1.96V12C21 10.34 19.66 9 18 9z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/calculate.svg b/html/matt-chat/uswds/img/material-icons/calculate.svg
new file mode 100644
index 0000000..acd4ef3
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/calculate.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-5.97 4.06L14.09 6l1.41 1.41L16.91 6l1.06 1.06-1.41 1.41 1.41 1.41-1.06 1.06-1.41-1.4-1.41 1.41-1.06-1.06 1.41-1.41-1.41-1.42zm-6.78.66h5v1.5h-5v-1.5zM11.5 16h-2v2H8v-2H6v-1.5h2v-2h1.5v2h2V16zm6.5 1.25h-5v-1.5h5v1.5zm0-2.5h-5v-1.5h5v1.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/calendar_month.svg b/html/matt-chat/uswds/img/material-icons/calendar_month.svg
new file mode 100644
index 0000000..e8fa87b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/calendar_month.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 4h-1V2h-2v2H8V2H6v2H5c-1.11 0-1.99.9-1.99 2L3 20a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 16H5V10h14v10zM9 14H7v-2h2v2zm4 0h-2v-2h2v2zm4 0h-2v-2h2v2zm-8 4H7v-2h2v2zm4 0h-2v-2h2v2zm4 0h-2v-2h2v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/calendar_today.svg b/html/matt-chat/uswds/img/material-icons/calendar_today.svg
new file mode 100644
index 0000000..9c40555
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/calendar_today.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 3h-1V1h-2v2H7V1H5v2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 18H4V8h16v13z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/calendar_view_day.svg b/html/matt-chat/uswds/img/material-icons/calendar_view_day.svg
new file mode 100644
index 0000000..1aeae46
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/calendar_view_day.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 17h18v2H3zm0-7h18v5H3zm0-4h18v2H3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/calendar_view_month.svg b/html/matt-chat/uswds/img/material-icons/calendar_view_month.svg
new file mode 100644
index 0000000..4bc75df
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/calendar_view_month.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zM8 11H4V6h4v5zm6 0h-4V6h4v5zm6 0h-4V6h4v5zM8 18H4v-5h4v5zm6 0h-4v-5h4v5zm6 0h-4v-5h4v5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/calendar_view_week.svg b/html/matt-chat/uswds/img/material-icons/calendar_view_week.svg
new file mode 100644
index 0000000..2da4d2b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/calendar_view_week.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-7 2h2.5v12H13V6zm-2 12H8.5V6H11v12zM4 6h2.5v12H4V6zm16 12h-2.5V6H20v12z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/call.svg b/html/matt-chat/uswds/img/material-icons/call.svg
new file mode 100644
index 0000000..55f7017
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/call.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20.01 15.38c-1.23 0-2.42-.2-3.53-.56a.977.977 0 0 0-1.01.24l-1.57 1.97c-2.83-1.35-5.48-3.9-6.89-6.83l1.95-1.66c.27-.28.35-.67.24-1.02-.37-1.11-.56-2.3-.56-3.53 0-.54-.45-.99-.99-.99H4.19C3.65 3 3 3.24 3 3.99 3 13.28 10.73 21 20.01 21c.71 0 .99-.63.99-1.18v-3.45c0-.54-.45-.99-.99-.99z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/call_end.svg b/html/matt-chat/uswds/img/material-icons/call_end.svg
new file mode 100644
index 0000000..13d9f42
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/call_end.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 9c-1.6 0-3.15.25-4.6.72v3.1c0 .39-.23.74-.56.9-.98.49-1.87 1.12-2.66 1.85-.18.18-.43.28-.7.28-.28 0-.53-.11-.71-.29L.29 13.08a.956.956 0 0 1-.29-.7c0-.28.11-.53.29-.71C3.34 8.78 7.46 7 12 7s8.66 1.78 11.71 4.67c.18.18.29.43.29.71 0 .28-.11.53-.29.71l-2.48 2.48c-.18.18-.43.29-.71.29-.27 0-.52-.11-.7-.28a11.27 11.27 0 0 0-2.67-1.85.996.996 0 0 1-.56-.9v-3.1C15.15 9.25 13.6 9 12 9z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/call_made.svg b/html/matt-chat/uswds/img/material-icons/call_made.svg
new file mode 100644
index 0000000..6a58bdf
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/call_made.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M9 5v2h6.59L4 18.59 5.41 20 17 8.41V15h2V5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/call_merge.svg b/html/matt-chat/uswds/img/material-icons/call_merge.svg
new file mode 100644
index 0000000..a089062
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/call_merge.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 20.41 18.41 19 15 15.59 13.59 17 17 20.41zM7.5 8H11v5.59L5.59 19 7 20.41l6-6V8h3.5L12 3.5 7.5 8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/call_missed.svg b/html/matt-chat/uswds/img/material-icons/call_missed.svg
new file mode 100644
index 0000000..5f71d3b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/call_missed.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19.59 7 12 14.59 6.41 9H11V7H3v8h2v-4.59l7 7 9-9z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/call_missed_outgoing.svg b/html/matt-chat/uswds/img/material-icons/call_missed_outgoing.svg
new file mode 100644
index 0000000..50e2356
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/call_missed_outgoing.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m3 8.41 9 9 7-7V15h2V7h-8v2h4.59L12 14.59 4.41 7 3 8.41z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/call_received.svg b/html/matt-chat/uswds/img/material-icons/call_received.svg
new file mode 100644
index 0000000..9ed90a9
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/call_received.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 5.41 18.59 4 7 15.59V9H5v10h10v-2H8.41z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/call_split.svg b/html/matt-chat/uswds/img/material-icons/call_split.svg
new file mode 100644
index 0000000..b3e439d
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/call_split.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m14 4 2.29 2.29-2.88 2.88 1.42 1.42 2.88-2.88L20 10V4zm-4 0H4v6l2.29-2.29 4.71 4.7V20h2v-8.41l-5.29-5.3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/call_to_action.svg b/html/matt-chat/uswds/img/material-icons/call_to_action.svg
new file mode 100644
index 0000000..dcf91db
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/call_to_action.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 3H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H3v-3h18v3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/camera.svg b/html/matt-chat/uswds/img/material-icons/camera.svg
new file mode 100644
index 0000000..ba0a137
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/camera.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m9.4 10.5 4.77-8.26a9.984 9.984 0 0 0-8.49 2.01l3.66 6.35.06-.1zM21.54 9c-.92-2.92-3.15-5.26-6-6.34L11.88 9h9.66zm.26 1h-7.49l.29.5 4.76 8.25A9.91 9.91 0 0 0 22 12c0-.69-.07-1.35-.2-2zM8.54 12l-3.9-6.75A9.958 9.958 0 0 0 2.2 14h7.49l-1.15-2zm-6.08 3c.92 2.92 3.15 5.26 6 6.34L12.12 15H2.46zm11.27 0-3.9 6.76a9.984 9.984 0 0 0 8.49-2.01l-3.66-6.35-.93 1.6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/camera_alt.svg b/html/matt-chat/uswds/img/material-icons/camera_alt.svg
new file mode 100644
index 0000000..2024fbc
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/camera_alt.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><circle cx="12" cy="12" r="3.2"/><path d="M9 2 7.17 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2h-3.17L15 2H9zm3 15c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/camera_enhance.svg b/html/matt-chat/uswds/img/material-icons/camera_enhance.svg
new file mode 100644
index 0000000..8e3c7c7
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/camera_enhance.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M9 3 7.17 5H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2h-3.17L15 3H9zm3 15c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5z"/><path d="m12 17 1.25-2.75L16 13l-2.75-1.25L12 9l-1.25 2.75L8 13l2.75 1.25z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/camera_front.svg b/html/matt-chat/uswds/img/material-icons/camera_front.svg
new file mode 100644
index 0000000..43ea4d2
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/camera_front.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10 20H5v2h5v2l3-3-3-3v2zm4 0v2h5v-2h-5zM12 8c1.1 0 2-.9 2-2s-.9-2-2-2-1.99.9-1.99 2S10.9 8 12 8zm5-8H7C5.9 0 5 .9 5 2v14c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V2c0-1.1-.9-2-2-2zM7 2h10v10.5c0-1.67-3.33-2.5-5-2.5s-5 .83-5 2.5V2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/camera_indoor.svg b/html/matt-chat/uswds/img/material-icons/camera_indoor.svg
new file mode 100644
index 0000000..b7a11bb
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/camera_indoor.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 3 4 9v12h16V9l-8-6zm4 13.06L14 15v1c0 .55-.45 1-1 1H9c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1h4c.55 0 1 .45 1 1v1l2-1.06v4.12z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/camera_outdoor.svg b/html/matt-chat/uswds/img/material-icons/camera_outdoor.svg
new file mode 100644
index 0000000..1c22774
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/camera_outdoor.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 13c0-.55-.45-1-1-1h-4c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-1l2 1.06v-4.12L18 14v-1zM12 3 4 9v12h16v-2H6v-9l6-4.5 6 4.5v1h2V9l-8-6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/camera_rear.svg b/html/matt-chat/uswds/img/material-icons/camera_rear.svg
new file mode 100644
index 0000000..3c6fbb1
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/camera_rear.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10 20H5v2h5v2l3-3-3-3v2zm4 0v2h5v-2h-5zm3-20H7C5.9 0 5 .9 5 2v14c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V2c0-1.1-.9-2-2-2zm-5 6c-1.11 0-2-.9-2-2s.89-2 1.99-2 2 .9 2 2C14 5.1 13.1 6 12 6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/camera_roll.svg b/html/matt-chat/uswds/img/material-icons/camera_roll.svg
new file mode 100644
index 0000000..06c7023
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/camera_roll.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M14 5c0-1.1-.9-2-2-2h-1V2c0-.55-.45-1-1-1H6c-.55 0-1 .45-1 1v1H4c-1.1 0-2 .9-2 2v15c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2h8V5h-8zm-2 13h-2v-2h2v2zm0-9h-2V7h2v2zm4 9h-2v-2h2v2zm0-9h-2V7h2v2zm4 9h-2v-2h2v2zm0-9h-2V7h2v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/cameraswitch.svg b/html/matt-chat/uswds/img/material-icons/cameraswitch.svg
new file mode 100644
index 0000000..7c0d92c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/cameraswitch.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16 7h-1l-1-1h-4L9 7H8c-1.1 0-2 .9-2 2v6c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V9c0-1.1-.9-2-2-2zm-4 7c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z"/><path d="m8.57.51 4.48 4.48V2.04c4.72.47 8.48 4.23 8.95 8.95h2C23.34 3.02 15.49-1.59 8.57.51zm2.38 21.45c-4.72-.47-8.48-4.23-8.95-8.95H0c.66 7.97 8.51 12.58 15.43 10.48l-4.48-4.48v2.95z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/campaign.svg b/html/matt-chat/uswds/img/material-icons/campaign.svg
new file mode 100644
index 0000000..5543378
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/campaign.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 11v2h4v-2h-4zm-2 6.61c.96.71 2.21 1.65 3.2 2.39.4-.53.8-1.07 1.2-1.6-.99-.74-2.24-1.68-3.2-2.4-.4.54-.8 1.08-1.2 1.61zM20.4 5.6c-.4-.53-.8-1.07-1.2-1.6-.99.74-2.24 1.68-3.2 2.4.4.53.8 1.07 1.2 1.6.96-.72 2.21-1.65 3.2-2.4zM4 9c-1.1 0-2 .9-2 2v2c0 1.1.9 2 2 2h1v4h2v-4h1l5 3V6L8 9H4zm11.5 3c0-1.33-.58-2.53-1.5-3.35v6.69c.92-.81 1.5-2.01 1.5-3.34z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/cancel.svg b/html/matt-chat/uswds/img/material-icons/cancel.svg
new file mode 100644
index 0000000..d6e55da
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/cancel.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/cancel_presentation.svg b/html/matt-chat/uswds/img/material-icons/cancel_presentation.svg
new file mode 100644
index 0000000..b29455d
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/cancel_presentation.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 19.1H3V5h18v14.1zM21 3H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"/><path d="M14.59 8 12 10.59 9.41 8 8 9.41 10.59 12 8 14.59 9.41 16 12 13.41 14.59 16 16 14.59 13.41 12 16 9.41z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/cancel_schedule_send.svg b/html/matt-chat/uswds/img/material-icons/cancel_schedule_send.svg
new file mode 100644
index 0000000..e47fbc1
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/cancel_schedule_send.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16.5 9c-.42 0-.83.04-1.24.11L1.01 3 1 10l9 2-9 2 .01 7 8.07-3.46C9.59 21.19 12.71 24 16.5 24c4.14 0 7.5-3.36 7.5-7.5S20.64 9 16.5 9zm0 13c-3.03 0-5.5-2.47-5.5-5.5s2.47-5.5 5.5-5.5 5.5 2.47 5.5 5.5-2.47 5.5-5.5 5.5z"/><path d="m18.27 14.03-1.77 1.76-1.77-1.76-.7.7 1.76 1.77-1.76 1.77.7.7 1.77-1.76 1.77 1.76.7-.7-1.76-1.77 1.76-1.77z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/candlestick_chart.svg b/html/matt-chat/uswds/img/material-icons/candlestick_chart.svg
new file mode 100644
index 0000000..e990a76
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/candlestick_chart.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M9 4H7v2H5v12h2v2h2v-2h2V6H9zm10 4h-2V4h-2v4h-2v7h2v5h2v-5h2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/car_crash.svg b/html/matt-chat/uswds/img/material-icons/car_crash.svg
new file mode 100644
index 0000000..8300c2c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/car_crash.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 1c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5zm.5 6h-1V3h1v4zm0 1v1h-1V8h1zm-.59 5c.06.16.09.33.09.5 0 .83-.67 1.5-1.5 1.5s-1.5-.67-1.5-1.5c0-.39.15-.74.39-1.01A7.032 7.032 0 0 1 11.68 9H5.81l1.04-3H11c0-.69.1-1.37.29-2H6.5c-.66 0-1.21.42-1.42 1.01L3 11v8c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1h12v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-6.68c-1.05.51-2.16.69-3.09.68zM7.5 15c-.83 0-1.5-.67-1.5-1.5S6.67 12 7.5 12s1.5.67 1.5 1.5S8.33 15 7.5 15z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/car_rental.svg b/html/matt-chat/uswds/img/material-icons/car_rental.svg
new file mode 100644
index 0000000..454bbf2
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/car_rental.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16.39 9H7.61c-.43 0-.81.28-.95.68l-1.66 5v6.81c0 .29.23.51.5.51h1c.28 0 .5-.22.5-.5V20h10v1.5c0 .28.22.5.5.5h1c.28 0 .5-.22.5-.5v-6.81l-1.66-5a1.01 1.01 0 0 0-.95-.69zm-8.61 9c-.68 0-1.22-.54-1.22-1.22s.54-1.22 1.22-1.22S9 16.11 9 16.78 8.46 18 7.78 18zm8.44 0c-.67 0-1.22-.54-1.22-1.22s.54-1.22 1.22-1.22 1.22.54 1.22 1.22S16.9 18 16.22 18zm-9.93-4 1.33-4h8.78l1.33 4H6.29zm4.54-11A3.01 3.01 0 0 0 8 1C6.34 1 5 2.34 5 4c0 1.65 1.34 3 3 3 1.3 0 2.41-.84 2.83-2H16v2h2V5h1V3h-8.17zM8 5c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/car_repair.svg b/html/matt-chat/uswds/img/material-icons/car_repair.svg
new file mode 100644
index 0000000..4b26c70
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/car_repair.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16.22 12c.68 0 1.22-.54 1.22-1.22 0-.67-.54-1.22-1.22-1.22S15 10.11 15 10.78c0 .68.55 1.22 1.22 1.22zm-9.66-1.22c0 .67.54 1.22 1.22 1.22S9 11.46 9 10.78c0-.67-.54-1.22-1.22-1.22s-1.22.55-1.22 1.22zM7.61 4 6.28 8h11.43l-1.33-4H7.61zm8.67-1s.54.01.92.54c.02.02.03.04.05.07.07.11.14.24.19.4.22.65 1.56 4.68 1.56 4.68v6.5c0 .45-.35.81-.78.81h-.44c-.43 0-.78-.36-.78-.81V14H7v1.19c0 .45-.35.81-.78.81h-.44c-.43 0-.78-.36-.78-.81v-6.5S6.34 4.67 6.55 4c.05-.16.12-.28.19-.4.03-.02.04-.04.06-.06.38-.53.92-.54.92-.54h8.56zM4 17.01h16V19h-7v3h-2v-3H4v-1.99z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/card_giftcard.svg b/html/matt-chat/uswds/img/material-icons/card_giftcard.svg
new file mode 100644
index 0000000..3e55372
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/card_giftcard.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 6h-2.18c.11-.31.18-.65.18-1a2.996 2.996 0 0 0-5.5-1.65l-.5.67-.5-.68C10.96 2.54 10.05 2 9 2 7.34 2 6 3.34 6 5c0 .35.07.69.18 1H4c-1.11 0-1.99.89-1.99 2L2 19c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2zm-5-2c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zM9 4c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm11 15H4v-2h16v2zm0-5H4V8h5.08L7 10.83 8.62 12 11 8.76l1-1.36 1 1.36L15.38 12 17 10.83 14.92 8H20v6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/card_membership.svg b/html/matt-chat/uswds/img/material-icons/card_membership.svg
new file mode 100644
index 0000000..daadcd4
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/card_membership.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 2H4c-1.11 0-2 .89-2 2v11c0 1.11.89 2 2 2h4v5l4-2 4 2v-5h4c1.11 0 2-.89 2-2V4c0-1.11-.89-2-2-2zm0 13H4v-2h16v2zm0-5H4V4h16v6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/card_travel.svg b/html/matt-chat/uswds/img/material-icons/card_travel.svg
new file mode 100644
index 0000000..e4149b3
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/card_travel.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 6h-3V4c0-1.11-.89-2-2-2H9c-1.11 0-2 .89-2 2v2H4c-1.11 0-2 .89-2 2v11c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2zM9 4h6v2H9V4zm11 15H4v-2h16v2zm0-5H4V8h3v2h2V8h6v2h2V8h3v6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/carpenter.svg b/html/matt-chat/uswds/img/material-icons/carpenter.svg
new file mode 100644
index 0000000..4b6f252
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/carpenter.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19.73 14.23 7 1.5 3.11 5.39l8.13 11.67c-.78.78-.78 2.05 0 2.83l1.41 1.41c.78.78 2.05.78 2.83 0l4.24-4.24c.79-.78.79-2.05.01-2.83zm-5.66 5.65-1.41-1.41 4.24-4.24 1.41 1.41-4.24 4.24z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/cases.svg b/html/matt-chat/uswds/img/material-icons/cases.svg
new file mode 100644
index 0000000..d59480d
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/cases.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 6V4l-2-2h-5L9 4v2H5v11s1 2 2 2h13s2-.98 2-2V6h-4zM4 9H2v11c0 1.11.89 2 2 2h14c1.11 0 2-.89 2-2H4V9zm7-4c0-.55.53-1 1-1h3c.46 0 1 .54 1 1v1h-5V5zM5 6h17v11c0 1.1-.9 2-2 2H7c-1.1 0-2-.9-2-2V6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/casino.svg b/html/matt-chat/uswds/img/material-icons/casino.svg
new file mode 100644
index 0000000..ea9b900
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/casino.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM7.5 18c-.83 0-1.5-.67-1.5-1.5S6.67 15 7.5 15s1.5.67 1.5 1.5S8.33 18 7.5 18zm0-9C6.67 9 6 8.33 6 7.5S6.67 6 7.5 6 9 6.67 9 7.5 8.33 9 7.5 9zm4.5 4.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm4.5 4.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm0-9c-.83 0-1.5-.67-1.5-1.5S15.67 6 16.5 6s1.5.67 1.5 1.5S17.33 9 16.5 9z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/cast.svg b/html/matt-chat/uswds/img/material-icons/cast.svg
new file mode 100644
index 0000000..afc4b4f
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/cast.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 3H3c-1.1 0-2 .9-2 2v3h2V5h18v14h-7v2h7c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM1 18v3h3c0-1.66-1.34-3-3-3zm0-4v2c2.76 0 5 2.24 5 5h2c0-3.87-3.13-7-7-7zm0-4v2a9 9 0 0 1 9 9h2c0-6.08-4.93-11-11-11z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/cast_connected.svg b/html/matt-chat/uswds/img/material-icons/cast_connected.svg
new file mode 100644
index 0000000..9ba39d3
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/cast_connected.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M1 18v3h3c0-1.66-1.34-3-3-3zm0-4v2c2.76 0 5 2.24 5 5h2c0-3.87-3.13-7-7-7zm18-7H5v1.63c3.96 1.28 7.09 4.41 8.37 8.37H19V7zM1 10v2a9 9 0 0 1 9 9h2c0-6.08-4.93-11-11-11zm20-7H3c-1.1 0-2 .9-2 2v3h2V5h18v14h-7v2h7c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/cast_for_education.svg b/html/matt-chat/uswds/img/material-icons/cast_for_education.svg
new file mode 100644
index 0000000..86cf2b1
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/cast_for_education.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 3H3c-1.1 0-2 .9-2 2v3h2V5h18v14h-7v2h7c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM1 18v3h3c0-1.66-1.34-3-3-3zm0-4v2c2.76 0 5 2.24 5 5h2c0-3.87-3.13-7-7-7zm0-4v2a9 9 0 0 1 9 9h2c0-6.08-4.93-11-11-11zm10 1.09v2L14.5 15l3.5-1.91v-2L14.5 13 11 11.09zM14.5 6 9 9l5.5 3L20 9l-5.5-3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/castle.svg b/html/matt-chat/uswds/img/material-icons/castle.svg
new file mode 100644
index 0000000..1ac95aa
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/castle.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 9v2h-2V3h-2v2h-2V3h-2v2h-2V3H9v2H7V3H5v8H3V9H1v12h9v-3c0-1.1.9-2 2-2s2 .9 2 2v3h9V9h-2zm-10 3H9V9h2v3zm4 0h-2V9h2v3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/catching_pokemon.svg b/html/matt-chat/uswds/img/material-icons/catching_pokemon.svg
new file mode 100644
index 0000000..ee0cade
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/catching_pokemon.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M14.5 12a2.5 2.5 0 0 1-5 0 2.5 2.5 0 0 1 5 0zm7.5 0c0 5.52-4.48 10-10 10S2 17.52 2 12 6.48 2 12 2s10 4.48 10 10zm-2 0h-4c0-2.21-1.79-4-4-4s-4 1.79-4 4H4c0 4.41 3.59 8 8 8s8-3.59 8-8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/category.svg b/html/matt-chat/uswds/img/material-icons/category.svg
new file mode 100644
index 0000000..984b7c1
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/category.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m12 2-5.5 9h11z"/><circle cx="17.5" cy="17.5" r="4.5"/><path d="M3 13.5h8v8H3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/celebration.svg b/html/matt-chat/uswds/img/material-icons/celebration.svg
new file mode 100644
index 0000000..5a6d87c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/celebration.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m2 22 14-5-9-9zm12.53-9.47 5.59-5.59a1.25 1.25 0 0 1 1.77 0l.59.59 1.06-1.06-.59-.59a2.758 2.758 0 0 0-3.89 0l-5.59 5.59 1.06 1.06zm-4.47-5.65-.59.59 1.06 1.06.59-.59a2.758 2.758 0 0 0 0-3.89l-.59-.59-1.06 1.07.59.59c.48.48.48 1.28 0 1.76zm7 5-1.59 1.59 1.06 1.06 1.59-1.59a1.25 1.25 0 0 1 1.77 0l1.61 1.61 1.06-1.06-1.61-1.61a2.758 2.758 0 0 0-3.89 0zm-2-6-3.59 3.59 1.06 1.06 3.59-3.59a2.758 2.758 0 0 0 0-3.89l-1.59-1.59-1.06 1.06 1.59 1.59c.48.49.48 1.29 0 1.77z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/cell_tower.svg b/html/matt-chat/uswds/img/material-icons/cell_tower.svg
new file mode 100644
index 0000000..f4c8e26
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/cell_tower.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m7.3 14.7 1.2-1.2c-1-1-1.5-2.3-1.5-3.5 0-1.3.5-2.6 1.5-3.5L7.3 5.3c-1.3 1.3-2 3-2 4.7s.7 3.4 2 4.7zM19.1 2.9l-1.2 1.2c1.6 1.6 2.4 3.8 2.4 5.9 0 2.1-.8 4.3-2.4 5.9l1.2 1.2c2-2 2.9-4.5 2.9-7.1 0-2.6-1-5.1-2.9-7.1z"/><path d="M6.1 4.1 4.9 2.9C3 4.9 2 7.4 2 10c0 2.6 1 5.1 2.9 7.1l1.2-1.2c-1.6-1.6-2.4-3.8-2.4-5.9 0-2.1.8-4.3 2.4-5.9zm10.6 10.6c1.3-1.3 2-3 2-4.7-.1-1.7-.7-3.4-2-4.7l-1.2 1.2c1 1 1.5 2.3 1.5 3.5 0 1.3-.5 2.6-1.5 3.5l1.2 1.2zM14.5 10a2.5 2.5 0 0 0-5 0c0 .76.34 1.42.87 1.88L7 22h2l.67-2h4.67l.66 2h2l-3.37-10.12c.53-.46.87-1.12.87-1.88zm-4.17 8L12 13l1.67 5h-3.34z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/cell_wifi.svg b/html/matt-chat/uswds/img/material-icons/cell_wifi.svg
new file mode 100644
index 0000000..b5feef3
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/cell_wifi.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 9.98 6 22h16V5.97l-4 4.01zM20 20h-2v-7.22l2-2V20zM5.22 7.22 3.93 5.93c3.9-3.91 10.24-3.91 14.15 0l-1.29 1.29c-3.19-3.19-8.38-3.19-11.57 0zm7.71 3.85L11 13l-1.93-1.93a2.74 2.74 0 0 1 3.86 0zm1.29-1.28c-1.78-1.77-4.66-1.77-6.43 0L6.5 8.5a6.374 6.374 0 0 1 9 0l-1.28 1.29z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/center_focus_strong.svg b/html/matt-chat/uswds/img/material-icons/center_focus_strong.svg
new file mode 100644
index 0000000..85b0d4b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/center_focus_strong.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm-7 7H3v4c0 1.1.9 2 2 2h4v-2H5v-4zM5 5h4V3H5c-1.1 0-2 .9-2 2v4h2V5zm14-2h-4v2h4v4h2V5c0-1.1-.9-2-2-2zm0 16h-4v2h4c1.1 0 2-.9 2-2v-4h-2v4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/center_focus_weak.svg b/html/matt-chat/uswds/img/material-icons/center_focus_weak.svg
new file mode 100644
index 0000000..330a82f
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/center_focus_weak.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M5 15H3v4c0 1.1.9 2 2 2h4v-2H5v-4zM5 5h4V3H5c-1.1 0-2 .9-2 2v4h2V5zm14-2h-4v2h4v4h2V5c0-1.1-.9-2-2-2zm0 16h-4v2h4c1.1 0 2-.9 2-2v-4h-2v4zM12 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 6c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/chair.svg b/html/matt-chat/uswds/img/material-icons/chair.svg
new file mode 100644
index 0000000..d84d7b2
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/chair.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M7 11v2h10v-2c0-1.86 1.28-3.41 3-3.86V6c0-1.65-1.35-3-3-3H7C5.35 3 4 4.35 4 6v1.14c1.72.45 3 2 3 3.86z"/><path d="M21 9c-1.1 0-2 .9-2 2v4H5v-4c0-1.1-.9-2-2-2s-2 .9-2 2v5c0 1.65 1.35 3 3 3v1c0 .55.45 1 1 1s1-.45 1-1v-1h12v1c0 .55.45 1 1 1s1-.45 1-1v-1c1.65 0 3-1.35 3-3v-5c0-1.1-.9-2-2-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/chair_alt.svg b/html/matt-chat/uswds/img/material-icons/chair_alt.svg
new file mode 100644
index 0000000..698234b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/chair_alt.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 10c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2H7c-1.1 0-2 .9-2 2v3c0 1.1.9 2 2 2h1v2H7c-1.1 0-2 .9-2 2v7h2v-3h10v3h2v-7c0-1.1-.9-2-2-2h-1v-2h1zM7 8V5h10v3H7zm10 8H7v-2h10v2zm-3-4h-4v-2h4v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/chalet.svg b/html/matt-chat/uswds/img/material-icons/chalet.svg
new file mode 100644
index 0000000..2ba9f50
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/chalet.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m10 7.5 7.5 7.5-1.41 1.41L15 15.33V20h-4v-5H9v5H5v-4.67l-1.09 1.09L2.5 15 10 7.5zm12-1h-1.19l.75-.75-.71-.71-1.46 1.46h-.89v-.89l1.45-1.45-.71-.71-.74.74V3h-1v1.19l-.75-.75-.71.71 1.45 1.45v.9h-.89l-1.45-1.45-.71.71.75.75H14v1h1.19l-.75.75.71.71 1.45-1.45h.89v.89l-1.45 1.45.71.71.75-.75V11h1V9.81l.75.75.71-.71-1.46-1.46V7.5h.89l1.45 1.45.71-.71-.74-.74H22v-1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/change_circle.svg b/html/matt-chat/uswds/img/material-icons/change_circle.svg
new file mode 100644
index 0000000..8230049
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/change_circle.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm.06 17v-2.01H12c-1.28 0-2.56-.49-3.54-1.46a5.006 5.006 0 0 1-.64-6.29l1.1 1.1c-.71 1.33-.53 3.01.59 4.13.7.7 1.62 1.03 2.54 1.01v-2.14l2.83 2.83L12.06 19zm4.11-4.24-1.1-1.1c.71-1.33.53-3.01-.59-4.13A3.482 3.482 0 0 0 12 8.5h-.06v2.15L9.11 7.83 11.94 5v2.02c1.3-.02 2.61.45 3.6 1.45 1.7 1.7 1.91 4.35.63 6.29z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/change_history.svg b/html/matt-chat/uswds/img/material-icons/change_history.svg
new file mode 100644
index 0000000..d401cc2
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/change_history.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 7.77 18.39 18H5.61L12 7.77M12 4 2 20h20L12 4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/charging_station.svg b/html/matt-chat/uswds/img/material-icons/charging_station.svg
new file mode 100644
index 0000000..23d21d3
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/charging_station.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m14.5 11-3 6v-4h-2l3-6v4h2zM7 1h10c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H7c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2zm0 5v12h10V6H7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/chat.svg b/html/matt-chat/uswds/img/material-icons/chat.svg
new file mode 100644
index 0000000..1c68f72
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/chat.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM6 9h12v2H6V9zm8 5H6v-2h8v2zm4-6H6V6h12v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/chat_bubble.svg b/html/matt-chat/uswds/img/material-icons/chat_bubble.svg
new file mode 100644
index 0000000..d447be3
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/chat_bubble.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 2H4c-1.1 0-2 .9-2 2v18l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/chat_bubble_outline.svg b/html/matt-chat/uswds/img/material-icons/chat_bubble_outline.svg
new file mode 100644
index 0000000..e1a36ee
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/chat_bubble_outline.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 2H4c-1.1 0-2 .9-2 2v18l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 14H6l-2 2V4h16v12z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/check.svg b/html/matt-chat/uswds/img/material-icons/check.svg
new file mode 100644
index 0000000..8676ca3
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/check.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M9 16.17 4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/check_box.svg b/html/matt-chat/uswds/img/material-icons/check_box.svg
new file mode 100644
index 0000000..9f54f9e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/check_box.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2zm-9 14-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/check_box_outline_blank.svg b/html/matt-chat/uswds/img/material-icons/check_box_outline_blank.svg
new file mode 100644
index 0000000..03aea59
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/check_box_outline_blank.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/check_circle.svg b/html/matt-chat/uswds/img/material-icons/check_circle.svg
new file mode 100644
index 0000000..1775c86
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/check_circle.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/check_circle_outline.svg b/html/matt-chat/uswds/img/material-icons/check_circle_outline.svg
new file mode 100644
index 0000000..5621f73
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/check_circle_outline.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16.59 7.58 10 14.17l-3.59-3.58L5 12l5 5 8-8zM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/checklist.svg b/html/matt-chat/uswds/img/material-icons/checklist.svg
new file mode 100644
index 0000000..c0f7a9b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/checklist.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M22 7h-9v2h9V7zm0 8h-9v2h9v-2zM5.54 11 2 7.46l1.41-1.41 2.12 2.12 4.24-4.24 1.41 1.41L5.54 11zm0 8L2 15.46l1.41-1.41 2.12 2.12 4.24-4.24 1.41 1.41L5.54 19z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/checklist_rtl.svg b/html/matt-chat/uswds/img/material-icons/checklist_rtl.svg
new file mode 100644
index 0000000..bc39de4
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/checklist_rtl.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11 7H2v2h9V7zm0 8H2v2h9v-2zm5.34-4L12.8 7.46l1.41-1.41 2.12 2.12 4.24-4.24L22 5.34 16.34 11zm0 8-3.54-3.54 1.41-1.41 2.12 2.12 4.24-4.24L22 13.34 16.34 19z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/checkroom.svg b/html/matt-chat/uswds/img/material-icons/checkroom.svg
new file mode 100644
index 0000000..915d366
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/checkroom.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21.6 18.2 13 11.75v-.91a3.496 3.496 0 0 0-.18-6.75A3.51 3.51 0 0 0 8.5 7.5h2c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5c0 .84-.69 1.52-1.53 1.5-.54-.01-.97.45-.97.99v1.76L2.4 18.2c-.77.58-.36 1.8.6 1.8h18c.96 0 1.37-1.22.6-1.8zM6 18l6-4.5 6 4.5H6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/chevron_left.svg b/html/matt-chat/uswds/img/material-icons/chevron_left.svg
new file mode 100644
index 0000000..e119372
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/chevron_left.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15.41 7.41 14 6l-6 6 6 6 1.41-1.41L10.83 12z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/chevron_right.svg b/html/matt-chat/uswds/img/material-icons/chevron_right.svg
new file mode 100644
index 0000000..7d1129b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/chevron_right.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10 6 8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/child_care.svg b/html/matt-chat/uswds/img/material-icons/child_care.svg
new file mode 100644
index 0000000..160b051
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/child_care.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><circle cx="14.5" cy="10.5" r="1.25"/><circle cx="9.5" cy="10.5" r="1.25"/><path d="M22.94 12.66c.04-.21.06-.43.06-.66s-.02-.45-.06-.66a4.008 4.008 0 0 0-2.81-3.17 9.114 9.114 0 0 0-2.19-2.91C16.36 3.85 14.28 3 12 3s-4.36.85-5.94 2.26c-.92.81-1.67 1.8-2.19 2.91a3.994 3.994 0 0 0-2.81 3.17c-.04.21-.06.43-.06.66s.02.45.06.66a4.008 4.008 0 0 0 2.81 3.17 8.977 8.977 0 0 0 2.17 2.89C7.62 20.14 9.71 21 12 21s4.38-.86 5.97-2.28c.9-.8 1.65-1.79 2.17-2.89a3.998 3.998 0 0 0 2.8-3.17zM19 14c-.1 0-.19-.02-.29-.03-.2.67-.49 1.29-.86 1.86C16.6 17.74 14.45 19 12 19s-4.6-1.26-5.85-3.17c-.37-.57-.66-1.19-.86-1.86-.1.01-.19.03-.29.03-1.1 0-2-.9-2-2s.9-2 2-2c.1 0 .19.02.29.03.2-.67.49-1.29.86-1.86C7.4 6.26 9.55 5 12 5s4.6 1.26 5.85 3.17c.37.57.66 1.19.86 1.86.1-.01.19-.03.29-.03 1.1 0 2 .9 2 2s-.9 2-2 2zM7.5 14c.76 1.77 2.49 3 4.5 3s3.74-1.23 4.5-3h-9z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/child_friendly.svg b/html/matt-chat/uswds/img/material-icons/child_friendly.svg
new file mode 100644
index 0000000..167f6e0
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/child_friendly.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13 2v8h8c0-4.42-3.58-8-8-8zm6.32 13.89A7.948 7.948 0 0 0 21 11H6.44l-.95-2H2v2h2.22s1.89 4.07 2.12 4.42c-1.1.59-1.84 1.75-1.84 3.08C4.5 20.43 6.07 22 8 22c1.76 0 3.22-1.3 3.46-3h2.08c.24 1.7 1.7 3 3.46 3 1.93 0 3.5-1.57 3.5-3.5 0-1.04-.46-1.97-1.18-2.61zM8 20c-.83 0-1.5-.67-1.5-1.5S7.17 17 8 17s1.5.67 1.5 1.5S8.83 20 8 20zm9 0c-.83 0-1.5-.67-1.5-1.5S16.17 17 17 17s1.5.67 1.5 1.5S17.83 20 17 20z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/chrome_reader_mode.svg b/html/matt-chat/uswds/img/material-icons/chrome_reader_mode.svg
new file mode 100644
index 0000000..ba864e1
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/chrome_reader_mode.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13 12h7v1.5h-7zm0-2.5h7V11h-7zm0 5h7V16h-7zM21 4H3c-1.1 0-2 .9-2 2v13c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 15h-9V6h9v13z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/church.svg b/html/matt-chat/uswds/img/material-icons/church.svg
new file mode 100644
index 0000000..e30efbd
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/church.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 12.22V9l-5-2.5V5h2V3h-2V1h-2v2H9v2h2v1.5L6 9v3.22L2 14v8h8v-3c0-1.1.9-2 2-2s2 .9 2 2v3h8v-8l-4-1.78zm-6 1.28c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/circle.svg b/html/matt-chat/uswds/img/material-icons/circle.svg
new file mode 100644
index 0000000..e3d714d
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/circle.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/circle_notifications.svg b/html/matt-chat/uswds/img/material-icons/circle_notifications.svg
new file mode 100644
index 0000000..e495d21
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/circle_notifications.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 16.5c-.83 0-1.5-.67-1.5-1.5h3c0 .83-.67 1.5-1.5 1.5zm5-2.5H7v-1l1-1v-2.61C8 9.27 9.03 7.47 11 7v-.5c0-.57.43-1 1-1s1 .43 1 1V7c1.97.47 3 2.28 3 4.39V14l1 1v1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/class.svg b/html/matt-chat/uswds/img/material-icons/class.svg
new file mode 100644
index 0000000..f5dd104
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/class.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 2H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM6 4h5v8l-2.5-1.5L6 12V4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/clean_hands.svg b/html/matt-chat/uswds/img/material-icons/clean_hands.svg
new file mode 100644
index 0000000..5e03fa5
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/clean_hands.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m16.99 5 .63 1.37 1.37.63-1.37.63L16.99 9l-.63-1.37L14.99 7l1.37-.63.63-1.37M11 6.13V4h2c.57 0 1.1.17 1.55.45l1.43-1.43A4.899 4.899 0 0 0 13 2H7.5v2H9v2.14A5.007 5.007 0 0 0 5.26 9.5h3.98L15 11.65v-.62a5 5 0 0 0-4-4.9zM1 22h4V11H1v11zm19-5h-7l-2.09-.73.33-.94L13 16h2.82c.65 0 1.18-.53 1.18-1.18 0-.49-.31-.93-.77-1.11L8.97 11H7v9.02L14 22l8-3c-.01-1.1-.89-2-2-2zm0-3c1.1 0 2-.9 2-2s-2-4-2-4-2 2.9-2 4 .9 2 2 2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/cleaning_services.svg b/html/matt-chat/uswds/img/material-icons/cleaning_services.svg
new file mode 100644
index 0000000..ef516ad
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/cleaning_services.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16 11h-1V3c0-1.1-.9-2-2-2h-2c-1.1 0-2 .9-2 2v8H8c-2.76 0-5 2.24-5 5v7h18v-7c0-2.76-2.24-5-5-5zm3 10h-2v-3c0-.55-.45-1-1-1s-1 .45-1 1v3h-2v-3c0-.55-.45-1-1-1s-1 .45-1 1v3H9v-3c0-.55-.45-1-1-1s-1 .45-1 1v3H5v-5c0-1.65 1.35-3 3-3h8c1.65 0 3 1.35 3 3v5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/clear.svg b/html/matt-chat/uswds/img/material-icons/clear.svg
new file mode 100644
index 0000000..c3f7c2f
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/clear.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/clear_all.svg b/html/matt-chat/uswds/img/material-icons/clear_all.svg
new file mode 100644
index 0000000..82a7e3c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/clear_all.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M5 13h14v-2H5v2zm-2 4h14v-2H3v2zM7 7v2h14V7H7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/close.svg b/html/matt-chat/uswds/img/material-icons/close.svg
new file mode 100644
index 0000000..c3f7c2f
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/close.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/close_fullscreen.svg b/html/matt-chat/uswds/img/material-icons/close_fullscreen.svg
new file mode 100644
index 0000000..bfcac62
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/close_fullscreen.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M22 3.41 16.71 8.7 20 12h-8V4l3.29 3.29L20.59 2 22 3.41zM3.41 22l5.29-5.29L12 20v-8H4l3.29 3.29L2 20.59 3.41 22z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/closed_caption.svg b/html/matt-chat/uswds/img/material-icons/closed_caption.svg
new file mode 100644
index 0000000..1c59819
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/closed_caption.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 4H5a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-8 7H9.5v-.5h-2v3h2V13H11v1c0 .55-.45 1-1 1H7c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1h3c.55 0 1 .45 1 1v1zm7 0h-1.5v-.5h-2v3h2V13H18v1c0 .55-.45 1-1 1h-3c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1h3c.55 0 1 .45 1 1v1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/closed_caption_disabled.svg b/html/matt-chat/uswds/img/material-icons/closed_caption_disabled.svg
new file mode 100644
index 0000000..47d2e21
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/closed_caption_disabled.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M6.83 4H19c1.1 0 2 .9 2 2v12c0 .05-.01.1-.02.16l-3.38-3.38c.24-.19.4-.46.4-.78v-1h-1.5v.5h-.17l-1.83-1.83V10.5h2v.5H18v-1c0-.55-.45-1-1-1h-3c-.55 0-1 .45-1 1v.17L6.83 4zm12.95 18.61L17.17 20H5a2 2 0 0 1-2-2V6c0-.05.02-.1.02-.15L1.39 4.22 2.8 2.81l18.38 18.38-1.4 1.42zM11 13.83l-.83-.83H9.5v.5h-2v-3h.17L6.4 9.22c-.24.19-.4.46-.4.78v4c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-.17z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/closed_caption_off.svg b/html/matt-chat/uswds/img/material-icons/closed_caption_off.svg
new file mode 100644
index 0000000..acf0bbc
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/closed_caption_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19.5 5.5v13h-15v-13h15zM19 4H5a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-8 7H9.5v-.5h-2v3h2V13H11v1c0 .55-.45 1-1 1H7c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1h3c.55 0 1 .45 1 1v1zm7 0h-1.5v-.5h-2v3h2V13H18v1c0 .55-.45 1-1 1h-3c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1h3c.55 0 1 .45 1 1v1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/cloud.svg b/html/matt-chat/uswds/img/material-icons/cloud.svg
new file mode 100644
index 0000000..a055f2c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/cloud.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19.35 10.04A7.49 7.49 0 0 0 12 4C9.11 4 6.6 5.64 5.35 8.04A5.994 5.994 0 0 0 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/cloud_circle.svg b/html/matt-chat/uswds/img/material-icons/cloud_circle.svg
new file mode 100644
index 0000000..99b06dd
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/cloud_circle.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm4.5 14H8c-1.66 0-3-1.34-3-3s1.34-3 3-3l.14.01A3.98 3.98 0 0 1 12 7c2.21 0 4 1.79 4 4h.5a2.5 2.5 0 0 1 0 5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/cloud_done.svg b/html/matt-chat/uswds/img/material-icons/cloud_done.svg
new file mode 100644
index 0000000..7b9a5c0
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/cloud_done.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19.35 10.04A7.49 7.49 0 0 0 12 4C9.11 4 6.6 5.64 5.35 8.04A5.994 5.994 0 0 0 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM10 17l-3.5-3.5 1.41-1.41L10 14.17 15.18 9l1.41 1.41L10 17z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/cloud_download.svg b/html/matt-chat/uswds/img/material-icons/cloud_download.svg
new file mode 100644
index 0000000..3129b82
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/cloud_download.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19.35 10.04A7.49 7.49 0 0 0 12 4C9.11 4 6.6 5.64 5.35 8.04A5.994 5.994 0 0 0 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM17 13l-5 5-5-5h3V9h4v4h3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/cloud_off.svg b/html/matt-chat/uswds/img/material-icons/cloud_off.svg
new file mode 100644
index 0000000..04b2351
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/cloud_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19.35 10.04A7.49 7.49 0 0 0 12 4c-1.48 0-2.85.43-4.01 1.17l1.46 1.46a5.497 5.497 0 0 1 8.05 4.87v.5H19c1.66 0 3 1.34 3 3 0 1.13-.64 2.11-1.56 2.62l1.45 1.45C23.16 18.16 24 16.68 24 15c0-2.64-2.05-4.78-4.65-4.96zM3 5.27l2.75 2.74C2.56 8.15 0 10.77 0 14c0 3.31 2.69 6 6 6h11.73l2 2L21 20.73 4.27 4 3 5.27zM7.73 10l8 8H6c-2.21 0-4-1.79-4-4s1.79-4 4-4h1.73z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/cloud_queue.svg b/html/matt-chat/uswds/img/material-icons/cloud_queue.svg
new file mode 100644
index 0000000..3253a4f
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/cloud_queue.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19.35 10.04A7.49 7.49 0 0 0 12 4C9.11 4 6.6 5.64 5.35 8.04A5.994 5.994 0 0 0 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM19 18H6c-2.21 0-4-1.79-4-4s1.79-4 4-4h.71C7.37 7.69 9.48 6 12 6c3.04 0 5.5 2.46 5.5 5.5v.5H19c1.66 0 3 1.34 3 3s-1.34 3-3 3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/cloud_sync.svg b/html/matt-chat/uswds/img/material-icons/cloud_sync.svg
new file mode 100644
index 0000000..e335b0a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/cloud_sync.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21.5 14.98c-.02 0-.03 0-.05.01A3.49 3.49 0 0 0 18 12c-1.4 0-2.6.83-3.16 2.02A2.988 2.988 0 0 0 12 17c0 1.66 1.34 3 3 3l6.5-.02a2.5 2.5 0 0 0 0-5zM10 4.26v2.09C7.67 7.18 6 9.39 6 12c0 1.77.78 3.34 2 4.44V14h2v6H4v-2h2.73A7.942 7.942 0 0 1 4 12c0-3.73 2.55-6.85 6-7.74zM20 6h-2.73a7.98 7.98 0 0 1 2.66 5h-2.02c-.23-1.36-.93-2.55-1.91-3.44V10h-2V4h6v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/cloud_upload.svg b/html/matt-chat/uswds/img/material-icons/cloud_upload.svg
new file mode 100644
index 0000000..0b5b51e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/cloud_upload.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19.35 10.04A7.49 7.49 0 0 0 12 4C9.11 4 6.6 5.64 5.35 8.04A5.994 5.994 0 0 0 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM14 13v4h-4v-4H7l5-5 5 5h-3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/co2.svg b/html/matt-chat/uswds/img/material-icons/co2.svg
new file mode 100644
index 0000000..96c6b4c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/co2.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M14 9h-3c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-4c0-.55-.45-1-1-1zm-.5 4.5h-2v-3h2v3zM8 13v1c0 .55-.45 1-1 1H4c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1h3c.55 0 1 .45 1 1v1H6.5v-.5h-2v3h2V13H8zm12.5 2.5h-2v1h3V18H17v-2.5c0-.55.45-1 1-1h2v-1h-3V12h3.5c.55 0 1 .45 1 1v1.5c0 .55-.45 1-1 1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/co_present.svg b/html/matt-chat/uswds/img/material-icons/co_present.svg
new file mode 100644
index 0000000..27c21d7
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/co_present.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 3H3c-1.1 0-2 .9-2 2v8h2V5h18v16c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"/><circle cx="9" cy="10" r="4"/><path d="M15.39 16.56C13.71 15.7 11.53 15 9 15s-4.71.7-6.39 1.56A2.97 2.97 0 0 0 1 19.22V22h16v-2.78c0-1.12-.61-2.15-1.61-2.66z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/code.svg b/html/matt-chat/uswds/img/material-icons/code.svg
new file mode 100644
index 0000000..0145423
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/code.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M9.4 16.6 4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0 4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/code_off.svg b/html/matt-chat/uswds/img/material-icons/code_off.svg
new file mode 100644
index 0000000..787d38d
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/code_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m19.17 12-4.58-4.59L16 6l6 6-3.59 3.59L17 14.17 19.17 12zM1.39 4.22l4.19 4.19L2 12l6 6 1.41-1.41L4.83 12 7 9.83l12.78 12.78 1.41-1.41L2.81 2.81 1.39 4.22z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/coffee.svg b/html/matt-chat/uswds/img/material-icons/coffee.svg
new file mode 100644
index 0000000..f46921e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/coffee.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18.5 3H6c-1.1 0-2 .9-2 2v5.71c0 3.83 2.95 7.18 6.78 7.29 3.96.12 7.22-3.06 7.22-7v-1h.5c1.93 0 3.5-1.57 3.5-3.5S20.43 3 18.5 3zM16 5v3H6V5h10zm2.5 3H18V5h.5c.83 0 1.5.67 1.5 1.5S19.33 8 18.5 8zM4 19h16v2H4v-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/coffee_maker.svg b/html/matt-chat/uswds/img/material-icons/coffee_maker.svg
new file mode 100644
index 0000000..dd4dda1
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/coffee_maker.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 6V4h2V2H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h14v-2h-4.03A4.966 4.966 0 0 0 18 16v-5H8v5c0 1.64.81 3.09 2.03 4H6V4h2v2c0 .55.45 1 1 1h8c.55 0 1-.45 1-1z"/><circle cx="13" cy="9" r="1"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/collections.svg b/html/matt-chat/uswds/img/material-icons/collections.svg
new file mode 100644
index 0000000..28e0bea
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/collections.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M22 16V4c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2zm-11-4 2.03 2.71L16 11l4 5H8l3-4zM2 6v14c0 1.1.9 2 2 2h14v-2H4V6H2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/collections_bookmark.svg b/html/matt-chat/uswds/img/material-icons/collections_bookmark.svg
new file mode 100644
index 0000000..649a7e0
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/collections_bookmark.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6z"/><path d="M20 2H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 10-2.5-1.5L15 12V4h5v8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/color_lens.svg b/html/matt-chat/uswds/img/material-icons/color_lens.svg
new file mode 100644
index 0000000..2d9b6a1
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/color_lens.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 3a9 9 0 0 0 0 18c.83 0 1.5-.67 1.5-1.5 0-.39-.15-.74-.39-1.01-.23-.26-.38-.61-.38-.99 0-.83.67-1.5 1.5-1.5H16c2.76 0 5-2.24 5-5 0-4.42-4.03-8-9-8zm-5.5 9c-.83 0-1.5-.67-1.5-1.5S5.67 9 6.5 9 8 9.67 8 10.5 7.33 12 6.5 12zm3-4C8.67 8 8 7.33 8 6.5S8.67 5 9.5 5s1.5.67 1.5 1.5S10.33 8 9.5 8zm5 0c-.83 0-1.5-.67-1.5-1.5S13.67 5 14.5 5s1.5.67 1.5 1.5S15.33 8 14.5 8zm3 4c-.83 0-1.5-.67-1.5-1.5S16.67 9 17.5 9s1.5.67 1.5 1.5-.67 1.5-1.5 1.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/colorize.svg b/html/matt-chat/uswds/img/material-icons/colorize.svg
new file mode 100644
index 0000000..1755df5
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/colorize.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m20.71 5.63-2.34-2.34a.996.996 0 0 0-1.41 0l-3.12 3.12-1.93-1.91-1.41 1.41 1.42 1.42L3 16.25V21h4.75l8.92-8.92 1.42 1.42 1.41-1.41-1.92-1.92 3.12-3.12c.4-.4.4-1.03.01-1.42zM6.92 19 5 17.08l8.06-8.06 1.92 1.92L6.92 19z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/comment.svg b/html/matt-chat/uswds/img/material-icons/comment.svg
new file mode 100644
index 0000000..db645e8
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/comment.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21.99 4c0-1.1-.89-2-1.99-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h14l4 4-.01-18zM18 14H6v-2h12v2zm0-3H6V9h12v2zm0-3H6V6h12v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/comment_bank.svg b/html/matt-chat/uswds/img/material-icons/comment_bank.svg
new file mode 100644
index 0000000..8b7afe7
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/comment_bank.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 2H4c-1.1 0-2 .9-2 2v18l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-1 11-2.5-1.5L14 13V5h5v8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/comments_disabled.svg b/html/matt-chat/uswds/img/material-icons/comments_disabled.svg
new file mode 100644
index 0000000..c43aecd
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/comments_disabled.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16.83 14H18v-2h-3.17l-1-1H18V9h-6.17l-1-1H18V6H8.83l-4-4H20c1.1 0 2 .9 2 2v15.17L16.83 14zM2.1 2.1.69 3.51 2 4.83V16c0 1.1.9 2 2 2h11.17l5.31 5.31 1.41-1.41L2.1 2.1zM6 9h.17l2 2H6V9zm0 5v-2h3.17l2 2H6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/commit.svg b/html/matt-chat/uswds/img/material-icons/commit.svg
new file mode 100644
index 0000000..10da5fa
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/commit.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16.9 11a5 5 0 0 0-9.8 0H2v2h5.1a5 5 0 0 0 9.8 0H22v-2h-5.1zM12 15c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/commute.svg b/html/matt-chat/uswds/img/material-icons/commute.svg
new file mode 100644
index 0000000..9f5f856
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/commute.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 4H5C3.34 4 2 5.34 2 7v8c0 1.66 1.34 3 3 3l-1 1v1h1l2-2.03L9 18v-5H4V5.98L13 6v2h2V7c0-1.66-1.34-3-3-3zM5 14c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm15.57-4.34c-.14-.4-.52-.66-.97-.66h-7.19c-.46 0-.83.26-.98.66L10 13.77l.01 5.51c0 .38.31.72.69.72h.62c.38 0 .68-.38.68-.76V18h8v1.24c0 .38.31.76.69.76h.61c.38 0 .69-.34.69-.72l.01-1.37v-4.14l-1.43-4.11zm-8.16.34h7.19l1.03 3h-9.25l1.03-3zM12 16c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm8 0c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/compare.svg b/html/matt-chat/uswds/img/material-icons/compare.svg
new file mode 100644
index 0000000..131506b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/compare.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h5v2h2V1h-2v2zm0 15H5l5-6v6zm9-15h-5v2h5v13l-5-6v9h5c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/compare_arrows.svg b/html/matt-chat/uswds/img/material-icons/compare_arrows.svg
new file mode 100644
index 0000000..21a0239
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/compare_arrows.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M9.01 14H2v2h7.01v3L13 15l-3.99-4v3zm5.98-1v-3H22V8h-7.01V5L11 9l3.99 4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/compass_calibration.svg b/html/matt-chat/uswds/img/material-icons/compass_calibration.svg
new file mode 100644
index 0000000..354c317
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/compass_calibration.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><circle cx="12" cy="17" r="4"/><path d="M12 10.07c1.95 0 3.72.79 5 2.07l5-5C19.44 4.59 15.9 3 12 3S4.56 4.59 2 7.15l5 5a7.06 7.06 0 0 1 5-2.08z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/compost.svg b/html/matt-chat/uswds/img/material-icons/compost.svg
new file mode 100644
index 0000000..aa04017
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/compost.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12.87 11.81A2.5 2.5 0 0 1 15 8h1c1.51 0 2-1 2-1s.55 6-3 6c-.49 0-.94-.14-1.32-.38-.24.64-.59 1.76-.76 2.96 1.26.22 2.28.89 2.77 1.77A6.505 6.505 0 0 0 18.5 12h3c0 5.24-4.26 9.5-9.5 9.5S2.5 17.24 2.5 12 6.76 2.5 12 2.5V0l4 4-4 4V5.5c-3.58 0-6.5 2.92-6.5 6.5 0 2.21 1.11 4.17 2.81 5.35.51-.92 1.63-1.62 2.98-1.8-.09-.69-.26-1.42-.49-2.03-.35.3-.8.48-1.3.48-1.1 0-2-.9-2-2v-.99c0-.56-.19-1.09-.5-1.51 0 0 4.45-.23 4.5 2.5 0 .29-.06.56-.17.8-.42-.32-.86-.6-1.33-.8.58.43 1.37 1.37 2 2.6.67-1.62 1.68-3.27 3-4.6-.76.52-1.47 1.12-2.13 1.81z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/compress.svg b/html/matt-chat/uswds/img/material-icons/compress.svg
new file mode 100644
index 0000000..29548a1
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/compress.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M8 19h3v3h2v-3h3l-4-4-4 4zm8-15h-3V1h-2v3H8l4 4 4-4zM4 9v2h16V9H4zm0 3h16v2H4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/computer.svg b/html/matt-chat/uswds/img/material-icons/computer.svg
new file mode 100644
index 0000000..6a0af7e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/computer.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 18c1.1 0 1.99-.9 1.99-2L22 6c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2H0v2h24v-2h-4zM4 6h16v10H4V6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/confirmation_number.svg b/html/matt-chat/uswds/img/material-icons/confirmation_number.svg
new file mode 100644
index 0000000..cd5166a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/confirmation_number.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M22 10V6a2 2 0 0 0-2-2H4c-1.1 0-1.99.89-1.99 2v4c1.1 0 1.99.9 1.99 2s-.89 2-2 2v4c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2v-4c-1.1 0-2-.9-2-2s.9-2 2-2zm-9 7.5h-2v-2h2v2zm0-4.5h-2v-2h2v2zm0-4.5h-2v-2h2v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/connect_without_contact.svg b/html/matt-chat/uswds/img/material-icons/connect_without_contact.svg
new file mode 100644
index 0000000..a7a34dc
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/connect_without_contact.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11 14H9a9 9 0 0 1 9-9v2c-3.87 0-7 3.13-7 7zm7-3V9c-2.76 0-5 2.24-5 5h2c0-1.66 1.34-3 3-3zM7 4c0-1.11-.89-2-2-2s-2 .89-2 2 .89 2 2 2 2-.89 2-2zm4.45.5h-2A2.99 2.99 0 0 1 6.5 7h-3C2.67 7 2 7.67 2 8.5V11h6V8.74a4.97 4.97 0 0 0 3.45-4.24zM19 17c1.11 0 2-.89 2-2s-.89-2-2-2-2 .89-2 2 .89 2 2 2zm1.5 1h-3a2.99 2.99 0 0 1-2.95-2.5h-2A4.97 4.97 0 0 0 16 19.74V22h6v-2.5c0-.83-.67-1.5-1.5-1.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/connected_tv.svg b/html/matt-chat/uswds/img/material-icons/connected_tv.svg
new file mode 100644
index 0000000..f7627db
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/connected_tv.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 3H3c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h5v2h8v-2h5c1.1 0 1.99-.9 1.99-2L23 5c0-1.1-.9-2-2-2zm0 14H3V5h18v12zM4 14v2h2c0-1.11-.89-2-2-2zm0-3v1.43c1.97 0 3.57 1.6 3.57 3.57H9c0-2.76-2.24-5-5-5zm0-3v1.45c3.61 0 6.55 2.93 6.55 6.55H12c0-4.42-3.59-8-8-8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/connecting_airports.svg b/html/matt-chat/uswds/img/material-icons/connecting_airports.svg
new file mode 100644
index 0000000..891fbc8
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/connecting_airports.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m15.4 17 1.3 4.4h-1.1L13 17h-3c-.55 0-1-.45-1-1s.45-1 1-1h3l2.6-4.4h1.1L15.4 15h2.85l.75-1h1l-.6 2 .6 2h-1l-.75-1H15.4zM5.75 7 5 6H4l.6 2-.6 2h1l.75-1H8.6l-1.3 4.4h1.1L11 9h3c.55 0 1-.45 1-1s-.45-1-1-1h-3L8.4 2.6H7.3L8.6 7H5.75z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/construction.svg b/html/matt-chat/uswds/img/material-icons/construction.svg
new file mode 100644
index 0000000..d33beb0
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/construction.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m13.783 15.172 2.121-2.121 5.996 5.996-2.121 2.121zM17.5 10c1.93 0 3.5-1.57 3.5-3.5 0-.58-.16-1.12-.41-1.6l-2.7 2.7-1.49-1.49 2.7-2.7c-.48-.25-1.02-.41-1.6-.41C15.57 3 14 4.57 14 6.5c0 .41.08.8.21 1.16l-1.85 1.85-1.78-1.78.71-.71-1.41-1.41L12 3.49a3 3 0 0 0-4.24 0L4.22 7.03l1.41 1.41H2.81l-.71.71 3.54 3.54.71-.71V9.15l1.41 1.41.71-.71 1.78 1.78-7.41 7.41 2.12 2.12L16.34 9.79c.36.13.75.21 1.16.21z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/contact_emergency.svg b/html/matt-chat/uswds/img/material-icons/contact_emergency.svg
new file mode 100644
index 0000000..63ec53b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/contact_emergency.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M22 3H2C.9 3 0 3.9 0 5v14c0 1.1.9 2 2 2h20c1.1 0 1.99-.9 1.99-2L24 5c0-1.1-.9-2-2-2zM9 8c1.65 0 3 1.35 3 3s-1.35 3-3 3-3-1.35-3-3 1.35-3 3-3zM2.08 19c1.38-2.39 3.96-4 6.92-4s5.54 1.61 6.92 4H2.08zm18.89-9.15-.75 1.3-1.47-.85V12h-1.5v-1.7l-1.47.85-.75-1.3L16.5 9l-1.47-.85.75-1.3 1.47.85V6h1.5v1.7l1.47-.85.75 1.3L19.5 9l1.47.85z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/contact_mail.svg b/html/matt-chat/uswds/img/material-icons/contact_mail.svg
new file mode 100644
index 0000000..ad23103
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/contact_mail.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 8V7l-3 2-3-2v1l3 2 3-2zm1-5H2C.9 3 0 3.9 0 5v14c0 1.1.9 2 2 2h20c1.1 0 1.99-.9 1.99-2L24 5c0-1.1-.9-2-2-2zM8 6c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3 1.34-3 3-3zm6 12H2v-1c0-2 4-3.1 6-3.1s6 1.1 6 3.1v1zm8-6h-8V6h8v6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/contact_page.svg b/html/matt-chat/uswds/img/material-icons/contact_page.svg
new file mode 100644
index 0000000..2f2a807
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/contact_page.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M14 2H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V8l-6-6zm-2 8c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2zm4 8H8v-.57c0-.81.48-1.53 1.22-1.85a6.95 6.95 0 0 1 5.56 0A2.01 2.01 0 0 1 16 17.43V18z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/contact_phone.svg b/html/matt-chat/uswds/img/material-icons/contact_phone.svg
new file mode 100644
index 0000000..8fe0084
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/contact_phone.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M22 3H2C.9 3 0 3.9 0 5v14c0 1.1.9 2 2 2h20c1.1 0 1.99-.9 1.99-2L24 5c0-1.1-.9-2-2-2zM8 6c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3 1.34-3 3-3zm6 12H2v-1c0-2 4-3.1 6-3.1s6 1.1 6 3.1v1zm3.85-4h1.64L21 16l-1.99 1.99A7.512 7.512 0 0 1 16.28 14c-.18-.64-.28-1.31-.28-2s.1-1.36.28-2a7.474 7.474 0 0 1 2.73-3.99L21 8l-1.51 2h-1.64c-.22.63-.35 1.3-.35 2s.13 1.37.35 2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/contact_support.svg b/html/matt-chat/uswds/img/material-icons/contact_support.svg
new file mode 100644
index 0000000..4f0bb6e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/contact_support.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11.5 2C6.81 2 3 5.81 3 10.5S6.81 19 11.5 19h.5v3c4.86-2.34 8-7 8-11.5C20 5.81 16.19 2 11.5 2zm1 14.5h-2v-2h2v2zm0-3.5h-2c0-3.25 3-3 3-5 0-1.1-.9-2-2-2s-2 .9-2 2h-2c0-2.21 1.79-4 4-4s4 1.79 4 4c0 2.5-3 2.75-3 5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/contactless.svg b/html/matt-chat/uswds/img/material-icons/contactless.svg
new file mode 100644
index 0000000..8d09f84
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/contactless.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zM8.46 14.45l-1.36-.62c.28-.61.41-1.24.4-1.86a4.42 4.42 0 0 0-.4-1.8l1.36-.63c.35.75.53 1.56.54 2.4.01.86-.17 1.7-.54 2.51zm3.07 1.56-1.3-.74c.52-.92.78-1.98.78-3.15 0-1.19-.27-2.33-.8-3.4l1.34-.67c.64 1.28.96 2.65.96 4.07 0 1.43-.33 2.74-.98 3.89zm3.14 1.32-1.35-.66c.78-1.6 1.18-3.18 1.18-4.69 0-1.51-.4-3.07-1.18-4.64l1.34-.67c.9 1.78 1.34 3.56 1.34 5.31 0 1.74-.44 3.54-1.33 5.35z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/contacts.svg b/html/matt-chat/uswds/img/material-icons/contacts.svg
new file mode 100644
index 0000000..e9a0749
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/contacts.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 0H4v2h16V0zM4 24h16v-2H4v2zM20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-8 2.75c1.24 0 2.25 1.01 2.25 2.25s-1.01 2.25-2.25 2.25S9.75 10.24 9.75 9 10.76 6.75 12 6.75zM17 17H7v-1.5c0-1.67 3.33-2.5 5-2.5s5 .83 5 2.5V17z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/content_copy.svg b/html/matt-chat/uswds/img/material-icons/content_copy.svg
new file mode 100644
index 0000000..7c6b60a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/content_copy.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/content_cut.svg b/html/matt-chat/uswds/img/material-icons/content_cut.svg
new file mode 100644
index 0000000..b89a0d0
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/content_cut.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M9.64 7.64c.23-.5.36-1.05.36-1.64 0-2.21-1.79-4-4-4S2 3.79 2 6s1.79 4 4 4c.59 0 1.14-.13 1.64-.36L10 12l-2.36 2.36C7.14 14.13 6.59 14 6 14c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4c0-.59-.13-1.14-.36-1.64L12 14l7 7h3v-1L9.64 7.64zM6 8c-1.1 0-2-.89-2-2s.9-2 2-2 2 .89 2 2-.9 2-2 2zm0 12c-1.1 0-2-.89-2-2s.9-2 2-2 2 .89 2 2-.9 2-2 2zm6-7.5c-.28 0-.5-.22-.5-.5s.22-.5.5-.5.5.22.5.5-.22.5-.5.5zM19 3l-6 6 2 2 7-7V3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/content_paste.svg b/html/matt-chat/uswds/img/material-icons/content_paste.svg
new file mode 100644
index 0000000..af63a64
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/content_paste.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 2h-4.18C14.4.84 13.3 0 12 0c-1.3 0-2.4.84-2.82 2H5c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-7 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm7 18H5V4h2v3h10V4h2v16z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/content_paste_go.svg b/html/matt-chat/uswds/img/material-icons/content_paste_go.svg
new file mode 100644
index 0000000..cf84089
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/content_paste_go.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M5 5h2v3h10V5h2v6h2V5c0-1.1-.9-2-2-2h-4.18C14.4 1.84 13.3 1 12 1s-2.4.84-2.82 2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h5v-2H5V5zm7-2c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1z"/><path d="m18.01 13-1.42 1.41 1.58 1.58H12v2h6.17l-1.58 1.59 1.42 1.41 3.99-4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/content_paste_off.svg b/html/matt-chat/uswds/img/material-icons/content_paste_off.svg
new file mode 100644
index 0000000..2ec6e26
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/content_paste_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21.19 21.19 2.81 2.81 1.39 4.22 3 5.83V19c0 1.1.9 2 2 2h13.17l1.61 1.61 1.41-1.42zM5 19V7.83L16.17 19H5zM17 8V5h2v11.17l2 2V5c0-1.1-.9-2-2-2h-4.18C14.4 1.84 13.3 1 12 1s-2.4.84-2.82 2H5.83l5 5H17zm-5-5c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/content_paste_search.svg b/html/matt-chat/uswds/img/material-icons/content_paste_search.svg
new file mode 100644
index 0000000..568469b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/content_paste_search.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M5 5h2v3h10V5h2v5h2V5c0-1.1-.9-2-2-2h-4.18C14.4 1.84 13.3 1 12 1s-2.4.84-2.82 2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h5v-2H5V5zm7-2c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1z"/><path d="M20.3 18.9c.4-.7.7-1.5.7-2.4 0-2.5-2-4.5-4.5-4.5S12 14 12 16.5s2 4.5 4.5 4.5c.9 0 1.7-.3 2.4-.7l2.7 2.7 1.4-1.4-2.7-2.7zm-3.8.1c-1.4 0-2.5-1.1-2.5-2.5s1.1-2.5 2.5-2.5 2.5 1.1 2.5 2.5-1.1 2.5-2.5 2.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/contrast.svg b/html/matt-chat/uswds/img/material-icons/contrast.svg
new file mode 100644
index 0000000..e0a6094
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/contrast.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 22c5.52 0 10-4.48 10-10S17.52 2 12 2 2 6.48 2 12s4.48 10 10 10zm1-17.93c3.94.49 7 3.85 7 7.93s-3.05 7.44-7 7.93V4.07z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/control_camera.svg b/html/matt-chat/uswds/img/material-icons/control_camera.svg
new file mode 100644
index 0000000..d80df0f
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/control_camera.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15.54 5.54 13.77 7.3 12 5.54 10.23 7.3 8.46 5.54 12 2zm2.92 10-1.76-1.77L18.46 12l-1.76-1.77 1.76-1.77L22 12zm-10 2.92 1.77-1.76L12 18.46l1.77-1.76 1.77 1.76L12 22zm-2.92-10 1.76 1.77L5.54 12l1.76 1.77-1.76 1.77L2 12z"/><circle cx="12" cy="12" r="3"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/control_point.svg b/html/matt-chat/uswds/img/material-icons/control_point.svg
new file mode 100644
index 0000000..9275b0e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/control_point.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13 7h-2v4H7v2h4v4h2v-4h4v-2h-4V7zm-1-5C6.49 2 2 6.49 2 12s4.49 10 10 10 10-4.49 10-10S17.51 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/control_point_duplicate.svg b/html/matt-chat/uswds/img/material-icons/control_point_duplicate.svg
new file mode 100644
index 0000000..2b118e2
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/control_point_duplicate.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16 8h-2v3h-3v2h3v3h2v-3h3v-2h-3zM2 12c0-2.79 1.64-5.2 4.01-6.32V3.52C2.52 4.76 0 8.09 0 12s2.52 7.24 6.01 8.48v-2.16A6.99 6.99 0 0 1 2 12zm13-9c-4.96 0-9 4.04-9 9s4.04 9 9 9 9-4.04 9-9-4.04-9-9-9zm0 16c-3.86 0-7-3.14-7-7s3.14-7 7-7 7 3.14 7 7-3.14 7-7 7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/cookie.svg b/html/matt-chat/uswds/img/material-icons/cookie.svg
new file mode 100644
index 0000000..8d2ee03
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/cookie.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21.95 10.99c-1.79-.03-3.7-1.95-2.68-4.22-2.98 1-5.77-1.59-5.19-4.56C6.95.71 2 6.58 2 12c0 5.52 4.48 10 10 10 5.89 0 10.54-5.08 9.95-11.01zM8.5 15c-.83 0-1.5-.67-1.5-1.5S7.67 12 8.5 12s1.5.67 1.5 1.5S9.33 15 8.5 15zm2-5C9.67 10 9 9.33 9 8.5S9.67 7 10.5 7s1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm4.5 6c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/copy_all.svg b/html/matt-chat/uswds/img/material-icons/copy_all.svg
new file mode 100644
index 0000000..25f657c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/copy_all.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 2H9c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h9c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 14H9V4h9v12zM3 15v-2h2v2H3zm0-5.5h2v2H3v-2zM10 20h2v2h-2v-2zm-7-1.5v-2h2v2H3zM5 22c-1.1 0-2-.9-2-2h2v2zm3.5 0h-2v-2h2v2zm5 0v-2h2c0 1.1-.9 2-2 2zM5 6v2H3c0-1.1.9-2 2-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/copyright.svg b/html/matt-chat/uswds/img/material-icons/copyright.svg
new file mode 100644
index 0000000..fdb3712
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/copyright.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11.88 9.14c1.28.06 1.61 1.15 1.63 1.66h1.79c-.08-1.98-1.49-3.19-3.45-3.19C9.64 7.61 8 9 8 12.14c0 1.94.93 4.24 3.84 4.24 2.22 0 3.41-1.65 3.44-2.95h-1.79c-.03.59-.45 1.38-1.63 1.44-1.31-.04-1.86-1.06-1.86-2.73 0-2.89 1.28-2.98 1.88-3zM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/coronavirus.svg b/html/matt-chat/uswds/img/material-icons/coronavirus.svg
new file mode 100644
index 0000000..cbfb0d7
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/coronavirus.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21.25 10.5c-.41 0-.75.34-.75.75h-1.54a6.978 6.978 0 0 0-1.52-3.65l1.09-1.09.01.01c.29.29.77.29 1.06 0s.29-.77 0-1.06L18.54 4.4a.754.754 0 0 0-1.06 0c-.29.29-.29.76-.01 1.05l-1.09 1.09a7.015 7.015 0 0 0-3.64-1.51V3.5h.01c.41 0 .75-.34.75-.75S13.16 2 12.75 2h-1.5c-.41 0-.75.34-.75.75s.33.74.74.75v1.55c-1.37.14-2.62.69-3.64 1.51L6.51 5.47l.01-.01c.29-.29.29-.77 0-1.06a.754.754 0 0 0-1.06 0L4.4 5.46c-.29.29-.29.77 0 1.06.29.29.76.29 1.05.01l1.09 1.09a6.89 6.89 0 0 0-1.5 3.63H3.5c0-.41-.34-.75-.75-.75s-.75.34-.75.75v1.5c0 .41.34.75.75.75s.75-.34.75-.75h1.54c.15 1.37.69 2.61 1.5 3.63l-1.09 1.09a.742.742 0 0 0-1.05.01c-.29.29-.29.77 0 1.06l1.06 1.06c.29.29.77.29 1.06 0 .29-.29.29-.77 0-1.06l-.01-.01 1.09-1.09c1.02.82 2.26 1.36 3.63 1.51v1.55c-.41.01-.74.34-.74.75s.34.75.75.75h1.5c.41 0 .75-.34.75-.75s-.34-.75-.75-.75h-.01v-1.54c1.37-.14 2.62-.69 3.64-1.51l1.09 1.09c-.29.29-.28.76.01 1.05.29.29.77.29 1.06 0l1.06-1.06c.29-.29.29-.77 0-1.06a.754.754 0 0 0-1.06 0l-.01.01-1.09-1.09a7.025 7.025 0 0 0 1.52-3.65h1.54c0 .41.34.75.75.75s.75-.34.75-.75v-1.5c.01-.4-.33-.74-.74-.74zM13.75 8c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zM12 13c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm-1.75-5c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zM8.5 13c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm1.75 3c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm3.5 0c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm.75-4c0-.55.45-1 1-1s1 .45 1 1-.45 1-1 1-1-.45-1-1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/corporate_fare.svg b/html/matt-chat/uswds/img/material-icons/corporate_fare.svg
new file mode 100644
index 0000000..8267ec8
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/corporate_fare.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 7V3H2v18h20V7H12zm-2 12H4v-2h6v2zm0-4H4v-2h6v2zm0-4H4V9h6v2zm0-4H4V5h6v2zm10 12h-8V9h8v10zm-2-8h-4v2h4v-2zm0 4h-4v2h4v-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/cottage.svg b/html/matt-chat/uswds/img/material-icons/cottage.svg
new file mode 100644
index 0000000..c92b7a2
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/cottage.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 3 6 7.58V6H4v3.11L1 11.4l1.21 1.59L4 11.62V21h7v-6h2v6h7v-9.38l1.79 1.36L23 11.4 12 3zm-2-2c0 1.66-1.34 3-3 3-.55 0-1 .45-1 1H4c0-1.66 1.34-3 3-3 .55 0 1-.45 1-1h2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/countertops.svg b/html/matt-chat/uswds/img/material-icons/countertops.svg
new file mode 100644
index 0000000..fdd174c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/countertops.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 10V7c0-1.66-1.34-3-3-3s-3 1.34-3 3h2c0-.55.45-1 1-1s1 .45 1 1v3H8c1.1 0 2-.9 2-2V4H4v4c0 1.1.9 2 2 2H2v2h2v8h16v-8h2v-2h-4zm-5 8h-2v-6h2v6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/create.svg b/html/matt-chat/uswds/img/material-icons/create.svg
new file mode 100644
index 0000000..a2841f9
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/create.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04a.996.996 0 0 0 0-1.41l-2.34-2.34a.996.996 0 0 0-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/create_new_folder.svg b/html/matt-chat/uswds/img/material-icons/create_new_folder.svg
new file mode 100644
index 0000000..3c9da3d
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/create_new_folder.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 6h-8l-2-2H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2zm-1 8h-3v3h-2v-3h-3v-2h3V9h2v3h3v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/credit_card.svg b/html/matt-chat/uswds/img/material-icons/credit_card.svg
new file mode 100644
index 0000000..99afa68
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/credit_card.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 4H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V6c0-1.11-.89-2-2-2zm0 14H4v-6h16v6zm0-10H4V6h16v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/credit_card_off.svg b/html/matt-chat/uswds/img/material-icons/credit_card_off.svg
new file mode 100644
index 0000000..9b3e3de
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/credit_card_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21.9 21.9 2.1 2.1.69 3.51l1.55 1.55c-.15.28-.23.6-.23.94L2 18c0 1.11.89 2 2 2h13.17l3.31 3.31 1.42-1.41zM4 12V8h1.17l4 4H4zm2.83-8H20c1.11 0 2 .89 2 2v12c0 .34-.08.66-.23.94L14.83 12H20V8h-9.17l-4-4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/credit_score.svg b/html/matt-chat/uswds/img/material-icons/credit_score.svg
new file mode 100644
index 0000000..78d229e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/credit_score.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 4H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2h5v-2H4v-6h18V6c0-1.11-.89-2-2-2zm0 4H4V6h16v2zm-5.07 11.17-2.83-2.83-1.41 1.41L14.93 22 22 14.93l-1.41-1.41-5.66 5.65z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/crib.svg b/html/matt-chat/uswds/img/material-icons/crib.svg
new file mode 100644
index 0000000..ce11482
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/crib.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 9h-6V4H8C5.79 4 4 5.79 4 8v6c0 1.1.9 2 2 2h2v2.93c-.61-.35-1.16-.78-1.65-1.27l-1.42 1.42C6.74 20.88 9.24 22 12 22c2.76 0 5.26-1.12 7.07-2.93l-1.42-1.42c-.49.49-1.05.92-1.65 1.27V16h2c1.1 0 2-.9 2-2v-3c0-1.1-.9-2-2-2zm-4 10.75c-.64.16-1.31.25-2 .25s-1.36-.09-2-.25V16h4v3.75z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/crisis_alert.svg b/html/matt-chat/uswds/img/material-icons/crisis_alert.svg
new file mode 100644
index 0000000..649e755
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/crisis_alert.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M14.5 2.5c0 1.5-1.5 6-1.5 6h-2S9.5 4 9.5 2.5a2.5 2.5 0 0 1 5 0zM12 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm4.08-4.89c.18-.75.33-1.47.39-2.06A9.996 9.996 0 0 1 22 12c0 5.52-4.48 10-10 10S2 17.52 2 12c0-3.92 2.25-7.31 5.53-8.95.07.59.21 1.32.39 2.06A8.028 8.028 0 0 0 4 12c0 4.42 3.58 8 8 8s8-3.58 8-8c0-2.93-1.58-5.49-3.92-6.89zM18 12c0 3.31-2.69 6-6 6s-6-2.69-6-6c0-2 .98-3.77 2.48-4.86.23.81.65 2.07.65 2.07C8.43 9.93 8 10.92 8 12c0 2.21 1.79 4 4 4s4-1.79 4-4c0-1.08-.43-2.07-1.13-2.79 0 0 .41-1.22.65-2.07A5.998 5.998 0 0 1 18 12z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/crop.svg b/html/matt-chat/uswds/img/material-icons/crop.svg
new file mode 100644
index 0000000..f508de3
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/crop.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 15h2V7c0-1.1-.9-2-2-2H9v2h8v8zM7 17V1H5v4H1v2h4v10c0 1.1.9 2 2 2h10v4h2v-4h4v-2H7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/crop_16_9.svg b/html/matt-chat/uswds/img/material-icons/crop_16_9.svg
new file mode 100644
index 0000000..8a48573
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/crop_16_9.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 7H5c-1.1 0-2 .9-2 2v6c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V9c0-1.1-.9-2-2-2zm0 8H5V9h14v6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/crop_3_2.svg b/html/matt-chat/uswds/img/material-icons/crop_3_2.svg
new file mode 100644
index 0000000..7be7919
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/crop_3_2.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 6H5c-1.1 0-2 .9-2 2v8c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm0 10H5V8h14v8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/crop_5_4.svg b/html/matt-chat/uswds/img/material-icons/crop_5_4.svg
new file mode 100644
index 0000000..3dee425
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/crop_5_4.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 4H5c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 14H5V6h14v12z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/crop_7_5.svg b/html/matt-chat/uswds/img/material-icons/crop_7_5.svg
new file mode 100644
index 0000000..13c5050
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/crop_7_5.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 5H5c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 12H5V7h14v10z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/crop_din.svg b/html/matt-chat/uswds/img/material-icons/crop_din.svg
new file mode 100644
index 0000000..7a2362a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/crop_din.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/crop_free.svg b/html/matt-chat/uswds/img/material-icons/crop_free.svg
new file mode 100644
index 0000000..99f7183
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/crop_free.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 5v4h2V5h4V3H5c-1.1 0-2 .9-2 2zm2 10H3v4c0 1.1.9 2 2 2h4v-2H5v-4zm14 4h-4v2h4c1.1 0 2-.9 2-2v-4h-2v4zm0-16h-4v2h4v4h2V5c0-1.1-.9-2-2-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/crop_landscape.svg b/html/matt-chat/uswds/img/material-icons/crop_landscape.svg
new file mode 100644
index 0000000..13c5050
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/crop_landscape.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 5H5c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 12H5V7h14v10z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/crop_original.svg b/html/matt-chat/uswds/img/material-icons/crop_original.svg
new file mode 100644
index 0000000..7b3a4f6
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/crop_original.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zm-5.04-6.71-2.75 3.54-1.96-2.36L6.5 17h11l-3.54-4.71z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/crop_portrait.svg b/html/matt-chat/uswds/img/material-icons/crop_portrait.svg
new file mode 100644
index 0000000..78a7fe1
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/crop_portrait.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 3H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H7V5h10v14z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/crop_rotate.svg b/html/matt-chat/uswds/img/material-icons/crop_rotate.svg
new file mode 100644
index 0000000..0f468ef
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/crop_rotate.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M7.47 21.49C4.2 19.93 1.86 16.76 1.5 13H0c.51 6.16 5.66 11 11.95 11 .23 0 .44-.02.66-.03L8.8 20.15l-1.33 1.34zM12.05 0c-.23 0-.44.02-.66.04l3.81 3.81 1.33-1.33C19.8 4.07 22.14 7.24 22.5 11H24c-.51-6.16-5.66-11-11.95-11zM16 14h2V8a2 2 0 0 0-2-2h-6v2h6v6zm-8 2V4H6v2H4v2h2v8a2 2 0 0 0 2 2h8v2h2v-2h2v-2H8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/crop_square.svg b/html/matt-chat/uswds/img/material-icons/crop_square.svg
new file mode 100644
index 0000000..ac46175
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/crop_square.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 4H6c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 14H6V6h12v12z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/cruelty_free.svg b/html/matt-chat/uswds/img/material-icons/cruelty_free.svg
new file mode 100644
index 0000000..1cb5b1b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/cruelty_free.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16.84 14.52c-.26-.19-.62-.63-.79-.84C17.24 12.01 19 8.87 19 5c0-1.95-.74-3-2-3-1.54 0-3.96 2.06-5 5.97C10.96 4.06 8.54 2 7 2 5.74 2 5 3.05 5 5c0 3.87 1.76 7.01 2.95 8.68-.17.21-.53.65-.79.84-.5.41-1.66 1.37-1.66 2.98 0 2.21 1.79 4 4 4 1.55 0 2.5-.56 2.5-.56s.95.56 2.5.56c2.21 0 4-1.79 4-4 0-1.61-1.16-2.57-1.66-2.98zM9.35 12.2C8.34 10.7 7 8.12 7 5c0-.49.06-.8.12-.97.94.31 3.24 2.71 3.38 7.64-.47.12-.84.3-1.15.53zm1.15 4.55c-.28 0-.5-.34-.5-.75s.22-.75.5-.75.5.34.5.75-.22.75-.5.75zM12 19.5c-.55 0-1-.72-1-1s.45-.5 1-.5 1 .22 1 .5-.45 1-1 1zm1.5-2.75c-.28 0-.5-.34-.5-.75s.22-.75.5-.75.5.34.5.75-.22.75-.5.75zm0-5.08c.14-4.93 2.44-7.33 3.38-7.64.06.17.12.48.12.97 0 3.12-1.34 5.7-2.35 7.2-.31-.23-.68-.41-1.15-.53z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/css.svg b/html/matt-chat/uswds/img/material-icons/css.svg
new file mode 100644
index 0000000..034d43a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/css.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M9.5 14v-1H11v.5h2v-1h-2.5c-.55 0-1-.45-1-1V10c0-.55.45-1 1-1h3c.55 0 1 .45 1 1v1H13v-.5h-2v1h2.5c.55 0 1 .45 1 1V14c0 .55-.45 1-1 1h-3c-.55 0-1-.45-1-1zm7.5 1h3c.55 0 1-.45 1-1v-1.5c0-.55-.45-1-1-1h-2.5v-1h2v.5H21v-1c0-.55-.45-1-1-1h-3c-.55 0-1 .45-1 1v1.5c0 .55.45 1 1 1h2.5v1h-2V13H16v1c0 .55.45 1 1 1zm-9-5c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-1H6.5v.5h-2v-3h2v.5H8v-1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/currency_bitcoin.svg b/html/matt-chat/uswds/img/material-icons/currency_bitcoin.svg
new file mode 100644
index 0000000..1565c49
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/currency_bitcoin.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17.06 11.57c.59-.69.94-1.59.94-2.57 0-1.86-1.27-3.43-3-3.87V3h-2v2h-2V3H9v2H6v2h2v10H6v2h3v2h2v-2h2v2h2v-2c2.21 0 4-1.79 4-4 0-1.45-.78-2.73-1.94-3.43zM10 7h4c1.1 0 2 .9 2 2s-.9 2-2 2h-4V7zm5 10h-5v-4h5c1.1 0 2 .9 2 2s-.9 2-2 2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/currency_exchange.svg b/html/matt-chat/uswds/img/material-icons/currency_exchange.svg
new file mode 100644
index 0000000..e5b46e7
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/currency_exchange.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12.89 11.1c-1.78-.59-2.64-.96-2.64-1.9 0-1.02 1.11-1.39 1.81-1.39 1.31 0 1.79.99 1.9 1.34l1.58-.67c-.15-.45-.82-1.92-2.54-2.24V5h-2v1.26c-2.48.56-2.49 2.86-2.49 2.96 0 2.27 2.25 2.91 3.35 3.31 1.58.56 2.28 1.07 2.28 2.03 0 1.13-1.05 1.61-1.98 1.61-1.82 0-2.34-1.87-2.4-2.09l-1.66.67c.63 2.19 2.28 2.78 2.9 2.96V19h2v-1.24c.4-.09 2.9-.59 2.9-3.22 0-1.39-.61-2.61-3.01-3.44zM3 21H1v-6h6v2H4.52c1.61 2.41 4.36 4 7.48 4a9 9 0 0 0 9-9h2c0 6.08-4.92 11-11 11-3.72 0-7.01-1.85-9-4.67V21zm-2-9C1 5.92 5.92 1 12 1c3.72 0 7.01 1.85 9 4.67V3h2v6h-6V7h2.48C17.87 4.59 15.12 3 12 3a9 9 0 0 0-9 9H1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/currency_franc.svg b/html/matt-chat/uswds/img/material-icons/currency_franc.svg
new file mode 100644
index 0000000..9a7838c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/currency_franc.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 5V3H7v13H5v2h2v3h2v-3h4v-2H9v-3h8v-2H9V5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/currency_lira.svg b/html/matt-chat/uswds/img/material-icons/currency_lira.svg
new file mode 100644
index 0000000..898de75
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/currency_lira.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M9 8.76V3h2v4.51L15 5v2.36l-4 2.51.01 2.35L15 9.72v2.36l-4 2.51V19c2.76 0 5-2.24 5-5h2c0 3.87-3.13 7-7 7H9v-5.16l-3 1.88v-2.36l3-1.88v-2.36L6 13v-2.36l3-1.88z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/currency_pound.svg b/html/matt-chat/uswds/img/material-icons/currency_pound.svg
new file mode 100644
index 0000000..351488c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/currency_pound.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M14 21c1.93 0 3.62-1.17 4-3l-1.75-.88C16 18.21 15.33 19 14 19H9.1c.83-1 1.5-2.34 1.5-4 0-.35-.03-.69-.08-1H14v-2H9.82C9 10.42 8 9.6 8 8a3.5 3.5 0 0 1 6.78-1.22L16.63 6c-.8-2.05-2.79-3.5-5.13-3.5C8.46 2.5 6 4.96 6 8c0 1.78.79 2.9 1.49 4H6v2h2.47c.08.31.13.64.13 1 0 2.7-2.6 4-2.6 4v2h8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/currency_ruble.svg b/html/matt-chat/uswds/img/material-icons/currency_ruble.svg
new file mode 100644
index 0000000..66dbb43
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/currency_ruble.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13.5 3H7v9H5v2h2v2H5v2h2v3h2v-3h4v-2H9v-2h4.5c3.04 0 5.5-2.46 5.5-5.5S16.54 3 13.5 3zm0 9H9V5h4.5C15.43 5 17 6.57 17 8.5S15.43 12 13.5 12z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/currency_rupee.svg b/html/matt-chat/uswds/img/material-icons/currency_rupee.svg
new file mode 100644
index 0000000..b4406b1
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/currency_rupee.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13.66 7c-.56-1.18-1.76-2-3.16-2H6V3h12v2h-3.26c.48.58.84 1.26 1.05 2H18v2h-2.02c-.25 2.8-2.61 5-5.48 5h-.73l6.73 7h-2.77L7 14v-2h3.5c1.76 0 3.22-1.3 3.46-3H6V7h7.66z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/currency_yen.svg b/html/matt-chat/uswds/img/material-icons/currency_yen.svg
new file mode 100644
index 0000000..c1e08b0
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/currency_yen.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13.92 11H18v2h-5v2h5v2h-5v4h-2v-4H6v-2h5v-2H6v-2h4.08L5 3h2.37L12 10.29 16.63 3H19z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/currency_yuan.svg b/html/matt-chat/uswds/img/material-icons/currency_yuan.svg
new file mode 100644
index 0000000..d0d47a5
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/currency_yuan.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13.28 12H18v2h-5v7h-2v-7H6v-2h4.72L5 3h2.37L12 10.29 16.63 3H19z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/curtains.svg b/html/matt-chat/uswds/img/material-icons/curtains.svg
new file mode 100644
index 0000000..e8ef0dc
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/curtains.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 19V3H4v16H2v2h20v-2h-2zM8.19 12c2.04-1.35 3.5-3.94 3.76-7h.09c.26 3.06 1.72 5.65 3.76 7-2.04 1.35-3.5 3.94-3.76 7h-.09c-.26-3.06-1.72-5.65-3.76-7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/curtains_closed.svg b/html/matt-chat/uswds/img/material-icons/curtains_closed.svg
new file mode 100644
index 0000000..af9019e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/curtains_closed.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 19V3H4v16H2v2h20v-2h-2zM11 5h2v14h-2V5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/cyclone.svg b/html/matt-chat/uswds/img/material-icons/cyclone.svg
new file mode 100644
index 0000000..e6e2439
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/cyclone.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 6c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z"/><path d="M22 7.47V5.35C20.05 4.77 16.56 4 12 4c-2.15 0-4.11.86-5.54 2.24.13-.85.4-2.4 1.01-4.24H5.35C4.77 3.95 4 7.44 4 12c0 2.15.86 4.11 2.24 5.54-.85-.14-2.4-.4-4.24-1.01v2.12C3.95 19.23 7.44 20 12 20c2.15 0 4.11-.86 5.54-2.24-.14.85-.4 2.4-1.01 4.24h2.12c.58-1.95 1.35-5.44 1.35-10 0-2.15-.86-4.11-2.24-5.54.85.13 2.4.4 4.24 1.01zM12 18c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/dangerous.svg b/html/matt-chat/uswds/img/material-icons/dangerous.svg
new file mode 100644
index 0000000..bceb9e0
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/dangerous.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15.73 3H8.27L3 8.27v7.46L8.27 21h7.46L21 15.73V8.27L15.73 3zM17 15.74 15.74 17 12 13.26 8.26 17 7 15.74 10.74 12 7 8.26 8.26 7 12 10.74 15.74 7 17 8.26 13.26 12 17 15.74z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/dark_mode.svg b/html/matt-chat/uswds/img/material-icons/dark_mode.svg
new file mode 100644
index 0000000..3d141c4
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/dark_mode.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 3a9 9 0 1 0 9 9c0-.46-.04-.92-.1-1.36a5.389 5.389 0 0 1-4.4 2.26 5.403 5.403 0 0 1-3.14-9.8c-.44-.06-.9-.1-1.36-.1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/dashboard.svg b/html/matt-chat/uswds/img/material-icons/dashboard.svg
new file mode 100644
index 0000000..1682295
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/dashboard.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 13h8V3H3v10zm0 8h8v-6H3v6zm10 0h8V11h-8v10zm0-18v6h8V3h-8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/dashboard_customize.svg b/html/matt-chat/uswds/img/material-icons/dashboard_customize.svg
new file mode 100644
index 0000000..a80a86e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/dashboard_customize.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 3h8v8H3zm10 0h8v8h-8zM3 13h8v8H3zm15 0h-2v3h-3v2h3v3h2v-3h3v-2h-3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/data_array.svg b/html/matt-chat/uswds/img/material-icons/data_array.svg
new file mode 100644
index 0000000..4a86776
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/data_array.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15 4v2h3v12h-3v2h5V4zM4 20h5v-2H6V6h3V4H4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/data_exploration.svg b/html/matt-chat/uswds/img/material-icons/data_exploration.svg
new file mode 100644
index 0000000..bcd2dba
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/data_exploration.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12c0 1.33.26 2.61.74 3.77L8 10.5l3.3 2.78L14.58 10H13V8h5v5h-2v-1.58L11.41 16l-3.29-2.79-4.4 4.4A9.996 9.996 0 0 0 12 22h8c1.1 0 2-.9 2-2v-8c0-5.52-4.48-10-10-10zm7.5 18.5c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/data_object.svg b/html/matt-chat/uswds/img/material-icons/data_object.svg
new file mode 100644
index 0000000..8199c50
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/data_object.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M4 7v2c0 .55-.45 1-1 1H2v4h1c.55 0 1 .45 1 1v2c0 1.65 1.35 3 3 3h3v-2H7c-.55 0-1-.45-1-1v-2c0-1.3-.84-2.42-2-2.83v-.34C5.16 11.42 6 10.3 6 9V7c0-.55.45-1 1-1h3V4H7C5.35 4 4 5.35 4 7zm17 3c-.55 0-1-.45-1-1V7c0-1.65-1.35-3-3-3h-3v2h3c.55 0 1 .45 1 1v2c0 1.3.84 2.42 2 2.83v.34c-1.16.41-2 1.52-2 2.83v2c0 .55-.45 1-1 1h-3v2h3c1.65 0 3-1.35 3-3v-2c0-.55.45-1 1-1h1v-4h-1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/data_saver_off.svg b/html/matt-chat/uswds/img/material-icons/data_saver_off.svg
new file mode 100644
index 0000000..8b900e8
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/data_saver_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13 2.05v3.03c3.39.49 6 3.39 6 6.92 0 .9-.18 1.75-.48 2.54l2.6 1.53c.56-1.24.88-2.62.88-4.07 0-5.18-3.95-9.45-9-9.95zM12 19c-3.87 0-7-3.13-7-7 0-3.53 2.61-6.43 6-6.92V2.05c-5.06.5-9 4.76-9 9.95 0 5.52 4.47 10 9.99 10 3.31 0 6.24-1.61 8.06-4.09l-2.6-1.53A6.95 6.95 0 0 1 12 19z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/data_saver_on.svg b/html/matt-chat/uswds/img/material-icons/data_saver_on.svg
new file mode 100644
index 0000000..f9b9b91
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/data_saver_on.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11 8v3H8v2h3v3h2v-3h3v-2h-3V8h-2zm2-5.95v3.03c3.39.49 6 3.39 6 6.92 0 .9-.18 1.75-.48 2.54l2.6 1.53c.56-1.24.88-2.62.88-4.07 0-5.18-3.95-9.45-9-9.95zM12 19c-3.87 0-7-3.13-7-7 0-3.53 2.61-6.43 6-6.92V2.05c-5.06.5-9 4.76-9 9.95 0 5.52 4.47 10 9.99 10 3.31 0 6.24-1.61 8.06-4.09l-2.6-1.53A6.95 6.95 0 0 1 12 19z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/data_thresholding.svg b/html/matt-chat/uswds/img/material-icons/data_thresholding.svg
new file mode 100644
index 0000000..6932dca
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/data_thresholding.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-8.33 5.17 2 2 3.67-3.67 1.41 1.41L12.67 13l-2-2-3 3-1.41-1.41 4.41-4.42zM5 16h1.72L5 17.72V16zm.84 3 3-3h1.83l-3 3H5.84zm3.96 0 3-3h1.62l-3 3H9.8zm3.73 0 3-3h1.62l-3 3h-1.62zM19 19h-1.73L19 17.27V19z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/data_usage.svg b/html/matt-chat/uswds/img/material-icons/data_usage.svg
new file mode 100644
index 0000000..8b900e8
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/data_usage.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13 2.05v3.03c3.39.49 6 3.39 6 6.92 0 .9-.18 1.75-.48 2.54l2.6 1.53c.56-1.24.88-2.62.88-4.07 0-5.18-3.95-9.45-9-9.95zM12 19c-3.87 0-7-3.13-7-7 0-3.53 2.61-6.43 6-6.92V2.05c-5.06.5-9 4.76-9 9.95 0 5.52 4.47 10 9.99 10 3.31 0 6.24-1.61 8.06-4.09l-2.6-1.53A6.95 6.95 0 0 1 12 19z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/dataset.svg b/html/matt-chat/uswds/img/material-icons/dataset.svg
new file mode 100644
index 0000000..bb6b7d1
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/dataset.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-8 14H7v-4h4v4zm0-6H7V7h4v4zm6 6h-4v-4h4v4zm0-6h-4V7h4v4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/dataset_linked.svg b/html/matt-chat/uswds/img/material-icons/dataset_linked.svg
new file mode 100644
index 0000000..f3f922b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/dataset_linked.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M8.09 17H7v-4h3.69c.95-.63 2.09-1 3.31-1h6c.34 0 .67.04 1 .09V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h3.81C8.3 20.12 8 19.09 8 18c0-.34.04-.67.09-1zM13 7h4v4h-4V7zM7 7h4v4H7V7z"/><path d="M12 18c0-1.1.9-2 2-2h2v-2h-2c-2.21 0-4 1.79-4 4s1.79 4 4 4h2v-2h-2c-1.1 0-2-.9-2-2zm8-4h-2v2h2c1.1 0 2 .9 2 2s-.9 2-2 2h-2v2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"/><path d="M14 17h6v2h-6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/date_range.svg b/html/matt-chat/uswds/img/material-icons/date_range.svg
new file mode 100644
index 0000000..2c99783
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/date_range.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M9 11H7v2h2v-2zm4 0h-2v2h2v-2zm4 0h-2v2h2v-2zm2-7h-1V2h-2v2H8V2H6v2H5c-1.11 0-1.99.9-1.99 2L3 20a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 16H5V9h14v11z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/deblur.svg b/html/matt-chat/uswds/img/material-icons/deblur.svg
new file mode 100644
index 0000000..cff8f04
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/deblur.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 3v18a9 9 0 0 0 0-18z"/><circle cx="6" cy="14" r="1"/><circle cx="6" cy="18" r="1"/><circle cx="6" cy="10" r="1"/><circle cx="3" cy="10" r=".5"/><circle cx="6" cy="6" r="1"/><circle cx="3" cy="14" r=".5"/><circle cx="10" cy="21" r=".5"/><circle cx="10" cy="3" r=".5"/><circle cx="10" cy="6" r="1"/><circle cx="10" cy="14" r="1.5"/><circle cx="10" cy="10" r="1.5"/><circle cx="10" cy="18" r="1"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/deck.svg b/html/matt-chat/uswds/img/material-icons/deck.svg
new file mode 100644
index 0000000..7fe3137
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/deck.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M22 9 12 2 2 9h9v13h2V9z"/><path d="m4.14 12-1.96.37.82 4.37V22h2l.02-4H7v4h2v-6H4.9zm14.96 4H15v6h2v-4h1.98l.02 4h2v-5.26l.82-4.37-1.96-.37z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/dehaze.svg b/html/matt-chat/uswds/img/material-icons/dehaze.svg
new file mode 100644
index 0000000..bae2109
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/dehaze.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M2 15.5v2h20v-2H2zm0-5v2h20v-2H2zm0-5v2h20v-2H2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/delete.svg b/html/matt-chat/uswds/img/material-icons/delete.svg
new file mode 100644
index 0000000..0969a4d
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/delete.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/delete_forever.svg b/html/matt-chat/uswds/img/material-icons/delete_forever.svg
new file mode 100644
index 0000000..ac492fd
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/delete_forever.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zm2.46-7.12 1.41-1.41L12 12.59l2.12-2.12 1.41 1.41L13.41 14l2.12 2.12-1.41 1.41L12 15.41l-2.12 2.12-1.41-1.41L10.59 14l-2.13-2.12zM15.5 4l-1-1h-5l-1 1H5v2h14V4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/delete_outline.svg b/html/matt-chat/uswds/img/material-icons/delete_outline.svg
new file mode 100644
index 0000000..93d8345
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/delete_outline.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM8 9h8v10H8V9zm7.5-5-1-1h-5l-1 1H5v2h14V4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/delete_sweep.svg b/html/matt-chat/uswds/img/material-icons/delete_sweep.svg
new file mode 100644
index 0000000..8aab88a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/delete_sweep.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15 16h4v2h-4zm0-8h7v2h-7zm0 4h6v2h-6zM3 18c0 1.1.9 2 2 2h6c1.1 0 2-.9 2-2V8H3v10zM14 5h-3l-1-1H6L5 5H2v2h12z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/delivery_dining.svg b/html/matt-chat/uswds/img/material-icons/delivery_dining.svg
new file mode 100644
index 0000000..4b2048a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/delivery_dining.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 7c0-1.1-.9-2-2-2h-3v2h3v2.65L13.52 14H10V9H6c-2.21 0-4 1.79-4 4v3h2c0 1.66 1.34 3 3 3s3-1.34 3-3h4.48L19 10.35V7zM7 17c-.55 0-1-.45-1-1h2c0 .55-.45 1-1 1z"/><path d="M5 6h5v2H5zm14 7c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3zm0 4c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/density_large.svg b/html/matt-chat/uswds/img/material-icons/density_large.svg
new file mode 100644
index 0000000..3aed511
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/density_large.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 3h18v2H3zm0 16h18v2H3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/density_medium.svg b/html/matt-chat/uswds/img/material-icons/density_medium.svg
new file mode 100644
index 0000000..b80b080
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/density_medium.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 3h18v2H3zm0 16h18v2H3zm0-8h18v2H3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/density_small.svg b/html/matt-chat/uswds/img/material-icons/density_small.svg
new file mode 100644
index 0000000..1c6e378
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/density_small.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 2h18v2H3zm0 18h18v2H3zm0-6h18v2H3zm0-6h18v2H3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/departure_board.svg b/html/matt-chat/uswds/img/material-icons/departure_board.svg
new file mode 100644
index 0000000..3c6bc9c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/departure_board.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16 1c-2.4 0-4.52 1.21-5.78 3.05.01-.01.01-.02.02-.03C9.84 4 9.42 4 9 4c-4.42 0-8 .5-8 4v10c0 .88.39 1.67 1 2.22V22c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1h8v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1.78c.61-.55 1-1.34 1-2.22v-3.08c3.39-.49 6-3.39 6-6.92 0-3.87-3.13-7-7-7zM4.5 19c-.83 0-1.5-.67-1.5-1.5S3.67 16 4.5 16s1.5.67 1.5 1.5S5.33 19 4.5 19zM3 13V8h6c0 1.96.81 3.73 2.11 5H3zm10.5 6c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm2.5-6c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm.5-9H15v5l3.62 2.16.75-1.23-2.87-1.68z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/description.svg b/html/matt-chat/uswds/img/material-icons/description.svg
new file mode 100644
index 0000000..1585a6c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/description.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm2 16H8v-2h8v2zm0-4H8v-2h8v2zm-3-5V3.5L18.5 9H13z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/deselect.svg b/html/matt-chat/uswds/img/material-icons/deselect.svg
new file mode 100644
index 0000000..3e2be29
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/deselect.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 13h2v-2H3v2zm4 8h2v-2H7v2zm6-18h-2v2h2V3zm6 0v2h2c0-1.1-.9-2-2-2zM5 21v-2H3c0 1.1.9 2 2 2zm-2-4h2v-2H3v2zm8 4h2v-2h-2v2zm8-8h2v-2h-2v2zm0-4h2V7h-2v2zm-4-4h2V3h-2v2zM7.83 5 7 4.17V3h2v2H7.83zm12 12-.83-.83V15h2v2h-1.17zm1.36 4.19L2.81 2.81 1.39 4.22 4.17 7H3v2h2V7.83l2 2V17h7.17l2 2H15v2h2v-1.17l2.78 2.78 1.41-1.42zM9 15v-3.17L12.17 15H9zm6-2.83V9h-3.17l-2-2H17v7.17l-2-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/design_services.svg b/html/matt-chat/uswds/img/material-icons/design_services.svg
new file mode 100644
index 0000000..14a39cf
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/design_services.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m16.24 11.51 1.57-1.57-3.75-3.75-1.57 1.57-4.14-4.13c-.78-.78-2.05-.78-2.83 0l-1.9 1.9c-.78.78-.78 2.05 0 2.83l4.13 4.13L3 17.25V21h3.75l4.76-4.76 4.13 4.13c.95.95 2.23.6 2.83 0l1.9-1.9c.78-.78.78-2.05 0-2.83l-4.13-4.13zm-7.06-.44L5.04 6.94l1.89-1.9L8.2 6.31 7.02 7.5l1.41 1.41 1.19-1.19 1.45 1.45-1.89 1.9zm7.88 7.89-4.13-4.13 1.9-1.9 1.45 1.45-1.19 1.19 1.41 1.41 1.19-1.19 1.27 1.27-1.9 1.9zm3.65-11.92a.996.996 0 0 0 0-1.41l-2.34-2.34c-.47-.47-1.12-.29-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/desk.svg b/html/matt-chat/uswds/img/material-icons/desk.svg
new file mode 100644
index 0000000..03d3bcd
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/desk.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M2 6v12h2V8h10v10h2v-2h4v2h2V6H2zm18 2v2h-4V8h4zm-4 6v-2h4v2h-4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/desktop_access_disabled.svg b/html/matt-chat/uswds/img/material-icons/desktop_access_disabled.svg
new file mode 100644
index 0000000..fa57415
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/desktop_access_disabled.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M23 16c0 1.1-.9 2-2 2h-1l-2-2h3V4H6L4 2h17c1.1 0 2 .9 2 2v12zm-5.5 2-2-2zm-2.6 0 6 6 1.3-1.3-4.7-4.7-2-2L1.2 1.8 0 3.1l1 1V16c0 1.1.9 2 2 2h7v2H8v2h8v-2h-2v-2h.9zM3 16V6.1l9.9 9.9H3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/desktop_mac.svg b/html/matt-chat/uswds/img/material-icons/desktop_mac.svg
new file mode 100644
index 0000000..80a936f
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/desktop_mac.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 3H4c-1.1 0-2 .9-2 2v11c0 1.1.9 2 2 2h6l-2 2v1h8v-1l-2-2h6c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/desktop_windows.svg b/html/matt-chat/uswds/img/material-icons/desktop_windows.svg
new file mode 100644
index 0000000..1ffec6c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/desktop_windows.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 3H4c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h6v2H8v2h8v-2h-2v-2h6c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/details.svg b/html/matt-chat/uswds/img/material-icons/details.svg
new file mode 100644
index 0000000..7c69142
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/details.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 3 2 21h20L12 3zm1 5.92L18.6 19H13V8.92zm-2 0V19H5.4L11 8.92z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/developer_board.svg b/html/matt-chat/uswds/img/material-icons/developer_board.svg
new file mode 100644
index 0000000..4efcd93
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/developer_board.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M22 9V7h-2V5c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-2h2v-2h-2v-2h2v-2h-2V9h2zm-4 10H4V5h14v14zM6 13h5v4H6zm6-6h4v3h-4zM6 7h5v5H6zm6 4h4v6h-4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/developer_board_off.svg b/html/matt-chat/uswds/img/material-icons/developer_board_off.svg
new file mode 100644
index 0000000..6e09d4e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/developer_board_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M7.83 5H18v10.17L19.83 17H22v-2h-2v-2h2v-2h-2V9h2V7h-2V5c0-1.1-.9-2-2-2H5.83l2 2zM12 9.17V7h4v3h-3.17L12 9.17zM9.83 7H11v1.17L9.83 7zm4 4H16v2.17L13.83 11zM18 21c.06 0 .11 0 .16-.01l2.32 2.32 1.41-1.41L2.1 2.1.69 3.51l1.32 1.32C2 4.89 2 4.94 2 5v14c0 1.1.9 2 2 2h14zM4 19V6.83l2 2V12h3.17l1 1H6v4h5v-3.17l1 1V17h2.17l2 2H4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/developer_mode.svg b/html/matt-chat/uswds/img/material-icons/developer_mode.svg
new file mode 100644
index 0000000..b7c2dc2
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/developer_mode.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M7 5h10v2h2V3c0-1.1-.9-1.99-2-1.99L7 1c-1.1 0-2 .9-2 2v4h2V5zm8.41 11.59L20 12l-4.59-4.59L14 8.83 17.17 12 14 15.17l1.41 1.42zM10 15.17 6.83 12 10 8.83 8.59 7.41 4 12l4.59 4.59L10 15.17zM17 19H7v-2H5v4c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2v-4h-2v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/device_hub.svg b/html/matt-chat/uswds/img/material-icons/device_hub.svg
new file mode 100644
index 0000000..2f24979
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/device_hub.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m17 16-4-4V8.82C14.16 8.4 15 7.3 15 6c0-1.66-1.34-3-3-3S9 4.34 9 6c0 1.3.84 2.4 2 2.82V12l-4 4H3v5h5v-3.05l4-4.2 4 4.2V21h5v-5h-4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/device_thermostat.svg b/html/matt-chat/uswds/img/material-icons/device_thermostat.svg
new file mode 100644
index 0000000..f66abea
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/device_thermostat.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15 13V5c0-1.66-1.34-3-3-3S9 3.34 9 5v8c-1.21.91-2 2.37-2 4 0 2.76 2.24 5 5 5s5-2.24 5-5c0-1.63-.79-3.09-2-4zm-4-8c0-.55.45-1 1-1s1 .45 1 1h-1v1h1v2h-1v1h1v2h-2V5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/device_unknown.svg b/html/matt-chat/uswds/img/material-icons/device_unknown.svg
new file mode 100644
index 0000000..ae33f54
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/device_unknown.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 1H7c-1.1 0-2 .9-2 2v18c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 18H7V5h10v14zM12 6.72c-1.96 0-3.5 1.52-3.5 3.47h1.75c0-.93.82-1.75 1.75-1.75s1.75.82 1.75 1.75c0 1.75-2.63 1.57-2.63 4.45h1.76c0-1.96 2.62-2.19 2.62-4.45 0-1.96-1.54-3.47-3.5-3.47zm-.88 8.8h1.76v1.76h-1.76z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/devices.svg b/html/matt-chat/uswds/img/material-icons/devices.svg
new file mode 100644
index 0000000..266e993
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/devices.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M4 6h18V4H4c-1.1 0-2 .9-2 2v11H0v3h14v-3H4V6zm19 2h-6c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h6c.55 0 1-.45 1-1V9c0-.55-.45-1-1-1zm-1 9h-4v-7h4v7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/devices_fold.svg b/html/matt-chat/uswds/img/material-icons/devices_fold.svg
new file mode 100644
index 0000000..d8c84d2
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/devices_fold.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 3h-3c0-1.43-1.47-2.4-2.79-1.84l-3 1.29C10.48 2.76 10 3.49 10 4.29V19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16h-5.33l1.12-.48c.73-.32 1.21-1.04 1.21-1.84V5h3v14zM2 3h2v2H2zm0 16h2v2H2zm0-4h2v2H2zm0-4h2v2H2zm0-4h2v2H2zm4-4h2v2H6zm0 16h2v2H6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/devices_other.svg b/html/matt-chat/uswds/img/material-icons/devices_other.svg
new file mode 100644
index 0000000..7b77f6a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/devices_other.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 6h18V4H3c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h4v-2H3V6zm10 6H9v1.78c-.61.55-1 1.33-1 2.22s.39 1.67 1 2.22V20h4v-1.78c.61-.55 1-1.34 1-2.22s-.39-1.67-1-2.22V12zm-2 5.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zM22 8h-6c-.5 0-1 .5-1 1v10c0 .5.5 1 1 1h6c.5 0 1-.5 1-1V9c0-.5-.5-1-1-1zm-1 10h-4v-8h4v8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/dialer_sip.svg b/html/matt-chat/uswds/img/material-icons/dialer_sip.svg
new file mode 100644
index 0000000..e70ea74
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/dialer_sip.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 3h-1v5h1V3zm-2 2h-2V4h2V3h-3v3h2v1h-2v1h3V5zm3-2v5h1V6h2V3h-3zm2 2h-1V4h1v1zm0 10.5c-1.25 0-2.45-.2-3.57-.57a.998.998 0 0 0-1.01.24l-2.2 2.2a15.045 15.045 0 0 1-6.59-6.59l2.2-2.21c.27-.26.35-.65.24-1A11.36 11.36 0 0 1 8.5 4c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.5c0-.55-.45-1-1-1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/dialpad.svg b/html/matt-chat/uswds/img/material-icons/dialpad.svg
new file mode 100644
index 0000000..1d82c79
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/dialpad.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 19c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zM6 1c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12-8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm-6 8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm6 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0-6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-6 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0-6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/diamond.svg b/html/matt-chat/uswds/img/material-icons/diamond.svg
new file mode 100644
index 0000000..bbe4e93
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/diamond.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12.16 3h-.32L9.21 8.25h5.58zm4.3 5.25h5.16L19 3h-5.16zm4.92 1.5h-8.63V20.1zM11.25 20.1V9.75H2.62zM7.54 8.25 10.16 3H5L2.38 8.25z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/difference.svg b/html/matt-chat/uswds/img/material-icons/difference.svg
new file mode 100644
index 0000000..df518e5
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/difference.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 23H4c-1.1 0-2-.9-2-2V7h2v14h14v2zM15 1H8c-1.1 0-1.99.9-1.99 2L6 17c0 1.1.89 2 1.99 2H19c1.1 0 2-.9 2-2V7l-6-6zm1.5 14h-6v-2h6v2zm0-6h-2v2h-2V9h-2V7h2V5h2v2h2v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/dining.svg b/html/matt-chat/uswds/img/material-icons/dining.svg
new file mode 100644
index 0000000..d8ec272
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/dining.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-9 8.3c0 .93-.64 1.71-1.5 1.93V19H8v-6.77c-.86-.22-1.5-1-1.5-1.93V6.5c0-.28.22-.5.5-.5s.5.22.5.5V9h.75V6.5c0-.28.22-.5.5-.5s.5.22.5.5V9H10V6.5c0-.28.23-.5.5-.5.28 0 .5.22.5.5v3.8zm4.58 2.29-.08.03V19H14v-6.38l-.08-.04c-.97-.47-1.67-1.7-1.67-3.18 0-1.88 1.13-3.4 2.5-3.4 1.38 0 2.5 1.53 2.5 3.41 0 1.48-.7 2.71-1.67 3.18z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/dinner_dining.svg b/html/matt-chat/uswds/img/material-icons/dinner_dining.svg
new file mode 100644
index 0000000..2bcca3c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/dinner_dining.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M2 19h20l-2 2H4l-2-2zM5 6h1v1H5V6zm0-2h1v1H5V4zm4 0v1H7V4h2zm0 3H7V6h2v1zm-3 8.23c-.36.11-.69.28-1 .47V8h1v7.23zm-2 1.29c-.38.44-.68.93-.84 1.48h16.82c.01-.16.03-.33.03-.5a5.497 5.497 0 0 0-10.58-2.1c-.59-.25-1.24-.4-1.93-.4-.17 0-.33.02-.5.04V8h2c1.03.06 1.9-.96 2-2h10V5H11c-.1-1.05-.97-1.97-2-2H3v1h1v1H3v1h1v1H3v1h1v8.52z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/directions.svg b/html/matt-chat/uswds/img/material-icons/directions.svg
new file mode 100644
index 0000000..9ae0683
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/directions.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m21.41 10.59-7.99-8c-.78-.78-2.05-.78-2.83 0l-8.01 8c-.78.78-.78 2.05 0 2.83l8.01 8c.78.78 2.05.78 2.83 0l7.99-8c.79-.79.79-2.05 0-2.83zM13.5 14.5V12H10v3H8v-4c0-.55.45-1 1-1h4.5V7.5L17 11l-3.5 3.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/directions_bike.svg b/html/matt-chat/uswds/img/material-icons/directions_bike.svg
new file mode 100644
index 0000000..a1a04a5
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/directions_bike.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15.5 5.5c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zM5 12c-2.8 0-5 2.2-5 5s2.2 5 5 5 5-2.2 5-5-2.2-5-5-5zm0 8.5c-1.9 0-3.5-1.6-3.5-3.5s1.6-3.5 3.5-3.5 3.5 1.6 3.5 3.5-1.6 3.5-3.5 3.5zm5.8-10 2.4-2.4.8.8c1.3 1.3 3 2.1 5.1 2.1V9c-1.5 0-2.7-.6-3.6-1.5l-1.9-1.9c-.5-.4-1-.6-1.6-.6s-1.1.2-1.4.6L7.8 8.4c-.4.4-.6.9-.6 1.4 0 .6.2 1.1.6 1.4L11 14v5h2v-6.2l-2.2-2.3zM19 12c-2.8 0-5 2.2-5 5s2.2 5 5 5 5-2.2 5-5-2.2-5-5-5zm0 8.5c-1.9 0-3.5-1.6-3.5-3.5s1.6-3.5 3.5-3.5 3.5 1.6 3.5 3.5-1.6 3.5-3.5 3.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/directions_boat.svg b/html/matt-chat/uswds/img/material-icons/directions_boat.svg
new file mode 100644
index 0000000..5f0a74b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/directions_boat.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 21c-1.39 0-2.78-.47-4-1.32-2.44 1.71-5.56 1.71-8 0C6.78 20.53 5.39 21 4 21H2v2h2c1.38 0 2.74-.35 4-.99a8.752 8.752 0 0 0 8 0c1.26.65 2.62.99 4 .99h2v-2h-2zM3.95 19H4c1.6 0 3.02-.88 4-2 .98 1.12 2.4 2 4 2s3.02-.88 4-2c.98 1.12 2.4 2 4 2h.05l1.89-6.68c.08-.26.06-.54-.06-.78s-.34-.42-.6-.5L20 10.62V6c0-1.1-.9-2-2-2h-3V1H9v3H6c-1.1 0-2 .9-2 2v4.62l-1.29.42a1.007 1.007 0 0 0-.66 1.28L3.95 19zM6 6h12v3.97L12 8 6 9.97V6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/directions_boat_filled.svg b/html/matt-chat/uswds/img/material-icons/directions_boat_filled.svg
new file mode 100644
index 0000000..ae97308
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/directions_boat_filled.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 21c-1.39 0-2.78-.47-4-1.32-2.44 1.71-5.56 1.71-8 0C6.78 20.53 5.39 21 4 21H2v2h2c1.38 0 2.74-.35 4-.99a8.752 8.752 0 0 0 8 0c1.26.65 2.62.99 4 .99h2v-2h-2zM3.95 19H4c1.6 0 3.02-.88 4-2 .98 1.12 2.4 2 4 2s3.02-.88 4-2c.98 1.12 2.4 2 4 2h.05l1.9-6.68c.11-.37.04-1.06-.66-1.28L20 10.62V6c0-1.1-.9-2-2-2h-3V1H9v3H6c-1.1 0-2 .9-2 2v4.62l-1.29.42c-.63.19-.81.84-.66 1.28L3.95 19zM6 6h12v3.97L12 8 6 9.97V6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/directions_bus.svg b/html/matt-chat/uswds/img/material-icons/directions_bus.svg
new file mode 100644
index 0000000..ade3c4d
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/directions_bus.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M4 16c0 .88.39 1.67 1 2.22V20c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1h8v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1.78c.61-.55 1-1.34 1-2.22V6c0-3.5-3.58-4-8-4s-8 .5-8 4v10zm3.5 1c-.83 0-1.5-.67-1.5-1.5S6.67 14 7.5 14s1.5.67 1.5 1.5S8.33 17 7.5 17zm9 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm1.5-6H6V6h12v5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/directions_bus_filled.svg b/html/matt-chat/uswds/img/material-icons/directions_bus_filled.svg
new file mode 100644
index 0000000..2b905d5
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/directions_bus_filled.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2c-4 0-8 .5-8 4v9.5c0 .95.38 1.81 1 2.44V20c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1h8v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-2.06c.62-.63 1-1.49 1-2.44V6c0-3.5-3.58-4-8-4zM8.5 16c-.83 0-1.5-.67-1.5-1.5S7.67 13 8.5 13s1.5.67 1.5 1.5S9.33 16 8.5 16zm7 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm2.5-6H6V7h12v3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/directions_car.svg b/html/matt-chat/uswds/img/material-icons/directions_car.svg
new file mode 100644
index 0000000..7cd866c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/directions_car.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18.92 6.01C18.72 5.42 18.16 5 17.5 5h-11c-.66 0-1.21.42-1.42 1.01L3 12v8c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1h12v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-8l-2.08-5.99zM6.5 16c-.83 0-1.5-.67-1.5-1.5S5.67 13 6.5 13s1.5.67 1.5 1.5S7.33 16 6.5 16zm11 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zM5 11l1.5-4.5h11L19 11H5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/directions_car_filled.svg b/html/matt-chat/uswds/img/material-icons/directions_car_filled.svg
new file mode 100644
index 0000000..672c793
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/directions_car_filled.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18.92 6.01C18.72 5.42 18.16 5 17.5 5h-11c-.66 0-1.21.42-1.42 1.01L3 12v8c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1h12v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-8l-2.08-5.99zM7.5 16c-.83 0-1.5-.67-1.5-1.5S6.67 13 7.5 13s1.5.67 1.5 1.5S8.33 16 7.5 16zm9 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zM5.81 10l1.04-3h10.29l1.04 3H5.81z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/directions_off.svg b/html/matt-chat/uswds/img/material-icons/directions_off.svg
new file mode 100644
index 0000000..146f787
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/directions_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12.83 10h.67V7.5L17 11l-1.59 1.59L18.83 16l2.59-2.59c.78-.78.78-2.05 0-2.83l-7.99-8c-.78-.78-2.05-.78-2.83 0L8 5.17 12.83 10zM2.81 2.81 1.39 4.22 5.17 8l-2.59 2.59c-.78.78-.78 2.05 0 2.83l8.01 8c.78.78 2.05.78 2.83 0L16 18.83l3.78 3.78 1.41-1.41L2.81 2.81zM10 15H8v-4c0-.05.02-.09.03-.14L10 12.83V15z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/directions_railway.svg b/html/matt-chat/uswds/img/material-icons/directions_railway.svg
new file mode 100644
index 0000000..b7bdcba
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/directions_railway.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M4 15.5C4 17.43 5.57 19 7.5 19L6 20.5v.5h12v-.5L16.5 19c1.93 0 3.5-1.57 3.5-3.5V5c0-3.5-3.58-4-8-4s-8 .5-8 4v10.5zm8 1.5c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm6-7H6V5h12v5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/directions_railway_filled.svg b/html/matt-chat/uswds/img/material-icons/directions_railway_filled.svg
new file mode 100644
index 0000000..017a563
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/directions_railway_filled.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2c-4 0-8 .5-8 4v9.5C4 17.43 5.57 19 7.5 19L6 20v1h12v-1l-1.5-1c1.93 0 3.5-1.57 3.5-3.5V6c0-3.5-3.58-4-8-4zm0 14c-.83 0-1.5-.67-1.5-1.5S11.17 13 12 13s1.5.67 1.5 1.5S12.83 16 12 16zm6-6H6V7h12v3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/directions_run.svg b/html/matt-chat/uswds/img/material-icons/directions_run.svg
new file mode 100644
index 0000000..c70d523
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/directions_run.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13.49 5.48c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm-3.6 13.9 1-4.4 2.1 2v6h2v-7.5l-2.1-2 .6-3c1.3 1.5 3.3 2.5 5.5 2.5v-2c-1.9 0-3.5-1-4.3-2.4l-1-1.6c-.4-.6-1-1-1.7-1-.3 0-.5.1-.8.1l-5.2 2.2v4.7h2v-3.4l1.8-.7-1.6 8.1-4.9-1-.4 2 7 1.4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/directions_subway.svg b/html/matt-chat/uswds/img/material-icons/directions_subway.svg
new file mode 100644
index 0000000..22a47ce
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/directions_subway.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2c-4.42 0-8 .5-8 4v9.5C4 17.43 5.57 19 7.5 19L6 20.5v.5h12v-.5L16.5 19c1.93 0 3.5-1.57 3.5-3.5V6c0-3.5-3.58-4-8-4zM7.5 17c-.83 0-1.5-.67-1.5-1.5S6.67 14 7.5 14s1.5.67 1.5 1.5S8.33 17 7.5 17zm3.5-6H6V6h5v5zm5.5 6c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm1.5-6h-5V6h5v5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/directions_subway_filled.svg b/html/matt-chat/uswds/img/material-icons/directions_subway_filled.svg
new file mode 100644
index 0000000..14799ee
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/directions_subway_filled.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2c-4 0-8 .5-8 4v9.5C4 17.43 5.57 19 7.5 19L6 20v1h12v-1l-1.5-1c1.93 0 3.5-1.57 3.5-3.5V6c0-3.5-3.58-4-8-4zM8.5 16c-.83 0-1.5-.67-1.5-1.5S7.67 13 8.5 13s1.5.67 1.5 1.5S9.33 16 8.5 16zm2.5-6H6V7h5v3zm4.5 6c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm2.5-6h-5V7h5v3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/directions_transit.svg b/html/matt-chat/uswds/img/material-icons/directions_transit.svg
new file mode 100644
index 0000000..22a47ce
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/directions_transit.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2c-4.42 0-8 .5-8 4v9.5C4 17.43 5.57 19 7.5 19L6 20.5v.5h12v-.5L16.5 19c1.93 0 3.5-1.57 3.5-3.5V6c0-3.5-3.58-4-8-4zM7.5 17c-.83 0-1.5-.67-1.5-1.5S6.67 14 7.5 14s1.5.67 1.5 1.5S8.33 17 7.5 17zm3.5-6H6V6h5v5zm5.5 6c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm1.5-6h-5V6h5v5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/directions_transit_filled.svg b/html/matt-chat/uswds/img/material-icons/directions_transit_filled.svg
new file mode 100644
index 0000000..14799ee
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/directions_transit_filled.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2c-4 0-8 .5-8 4v9.5C4 17.43 5.57 19 7.5 19L6 20v1h12v-1l-1.5-1c1.93 0 3.5-1.57 3.5-3.5V6c0-3.5-3.58-4-8-4zM8.5 16c-.83 0-1.5-.67-1.5-1.5S7.67 13 8.5 13s1.5.67 1.5 1.5S9.33 16 8.5 16zm2.5-6H6V7h5v3zm4.5 6c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm2.5-6h-5V7h5v3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/directions_walk.svg b/html/matt-chat/uswds/img/material-icons/directions_walk.svg
new file mode 100644
index 0000000..aef2e9e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/directions_walk.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13.5 5.5c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zM9.8 8.9 7 23h2.1l1.8-8 2.1 2v6h2v-7.5l-2.1-2 .6-3C14.8 12 16.8 13 19 13v-2c-1.9 0-3.5-1-4.3-2.4l-1-1.6c-.4-.6-1-1-1.7-1-.3 0-.5.1-.8.1L6 8.3V13h2V9.6l1.8-.7"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/dirty_lens.svg b/html/matt-chat/uswds/img/material-icons/dirty_lens.svg
new file mode 100644
index 0000000..c23c535
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/dirty_lens.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12.95 19H20V7H4v12h7.24c.14-.98.42-2.05-.16-2.43-.89-.59-1.27 2.06-2.8 1.35-1.39-1.12 1.05-1.29.5-3.27-.22-.79-2.28.36-2.4-1.24-.08-1 1.49-.74 1.51-1.49.03-.75-1.03-1.05-.25-1.91.22-.24.71-.26.91-.19.79.27 1.55 1.82 2.51 1.19 1.03-.66-1.88-2.35 0-2.86 1.64-.44 1.31 2.08 2.65 2.44 1.94.52 2.65-4.55 4.41-2.33 1.85 2.33-3.43 2.27-2.85 4.01.34 1.01 2.15-1.2 2.76.53.64 1.83-3.09.82-3.04 1.66.06.83 2.41.55 1.64 2.12-1.14 1.86-3-1.03-3.81.09-.39.57-.09 1.49.13 2.33zM20 5c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V7c0-1.1.9-2 2-2h3.17L9 3h6l1.83 2H20zm-1.86 13.01c-.47 0-.86-.38-.86-.86s.38-.86.86-.86c.47 0 .86.38.86.86s-.38.86-.86.86z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/disabled_by_default.svg b/html/matt-chat/uswds/img/material-icons/disabled_by_default.svg
new file mode 100644
index 0000000..e13e482
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/disabled_by_default.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 3v18h18V3H3zm14 12.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/disabled_visible.svg b/html/matt-chat/uswds/img/material-icons/disabled_visible.svg
new file mode 100644
index 0000000..ecaad4a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/disabled_visible.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21.99 12.34c.01-.11.01-.23.01-.34 0-5.52-4.48-10-10-10S2 6.48 2 12c0 5.17 3.93 9.43 8.96 9.95a9.343 9.343 0 0 1-2.32-2.68A8.01 8.01 0 0 1 4 12c0-1.85.63-3.55 1.69-4.9l5.66 5.66c.56-.4 1.17-.73 1.82-1L7.1 5.69A7.902 7.902 0 0 1 12 4c4.24 0 7.7 3.29 7.98 7.45.71.22 1.39.52 2.01.89zM17 13c-3.18 0-5.9 1.87-7 4.5 1.1 2.63 3.82 4.5 7 4.5s5.9-1.87 7-4.5c-1.1-2.63-3.82-4.5-7-4.5zm0 7a2.5 2.5 0 0 1 0-5 2.5 2.5 0 0 1 0 5zm1.5-2.5c0 .83-.67 1.5-1.5 1.5s-1.5-.67-1.5-1.5.67-1.5 1.5-1.5 1.5.67 1.5 1.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/disc_full.svg b/html/matt-chat/uswds/img/material-icons/disc_full.svg
new file mode 100644
index 0000000..fd462d8
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/disc_full.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 16h2v-2h-2v2zm0-9v5h2V7h-2zM10 4c-4.42 0-8 3.58-8 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm0 10c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/discount.svg b/html/matt-chat/uswds/img/material-icons/discount.svg
new file mode 100644
index 0000000..35cf9b2
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/discount.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12.79 21 3 11.21v2c0 .53.21 1.04.59 1.41l7.79 7.79c.78.78 2.05.78 2.83 0l6.21-6.21c.78-.78.78-2.05 0-2.83L12.79 21z"/><path d="M11.38 17.41c.78.78 2.05.78 2.83 0l6.21-6.21c.78-.78.78-2.05 0-2.83L12.63.58A2.04 2.04 0 0 0 11.21 0H5C3.9 0 3 .9 3 2v6.21c0 .53.21 1.04.59 1.41l7.79 7.79zM7.25 3a1.25 1.25 0 1 1 0 2.5 1.25 1.25 0 0 1 0-2.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/display_settings.svg b/html/matt-chat/uswds/img/material-icons/display_settings.svg
new file mode 100644
index 0000000..4d7cbb9
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/display_settings.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 3H4c-1.11 0-2 .89-2 2v12a2 2 0 0 0 2 2h4v2h8v-2h4c1.1 0 2-.9 2-2V5a2 2 0 0 0-2-2zm0 14H4V5h16v12z"/><path d="M6 8.25h8v1.5H6zm10.5 1.5H18v-1.5h-1.5V7H15v4h1.5zm-6.5 2.5h8v1.5h-8zM7.5 15H9v-4H7.5v1.25H6v1.5h1.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/diversity_1.svg b/html/matt-chat/uswds/img/material-icons/diversity_1.svg
new file mode 100644
index 0000000..5b89ec2
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/diversity_1.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><circle cx="4" cy="14" r="2"/><path d="M1.22 17.58A2.01 2.01 0 0 0 0 19.43V21h4.5v-1.61c0-.83.23-1.61.63-2.29-.37-.06-.74-.1-1.13-.1-.99 0-1.93.21-2.78.58z"/><circle cx="20" cy="14" r="2"/><path d="M22.78 17.58A6.95 6.95 0 0 0 20 17c-.39 0-.76.04-1.13.1.4.68.63 1.46.63 2.29V21H24v-1.57c0-.81-.48-1.53-1.22-1.85zm-6.54-.93c-1.17-.52-2.61-.9-4.24-.9-1.63 0-3.07.39-4.24.9A2.988 2.988 0 0 0 6 19.39V21h12v-1.61c0-1.18-.68-2.26-1.76-2.74zM9 12c0 1.66 1.34 3 3 3s3-1.34 3-3-1.34-3-3-3-3 1.34-3 3z"/><path d="M2.48 10.86C2.17 10.1 2 9.36 2 8.6 2 6.02 4.02 4 6.6 4c2.68 0 3.82 1.74 5.4 3.59C13.57 5.76 14.7 4 17.4 4 19.98 4 22 6.02 22 8.6c0 .76-.17 1.5-.48 2.26.65.31 1.18.82 1.53 1.44.6-1.2.95-2.42.95-3.7C24 4.9 21.1 2 17.4 2c-2.09 0-4.09.97-5.4 2.51C10.69 2.97 8.69 2 6.6 2 2.9 2 0 4.9 0 8.6c0 1.28.35 2.5.96 3.7.35-.62.88-1.13 1.52-1.44z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/diversity_2.svg b/html/matt-chat/uswds/img/material-icons/diversity_2.svg
new file mode 100644
index 0000000..f70776f
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/diversity_2.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m10.1 15.9 1.42-1.42C8.79 12.05 7 10.41 7 8.85 7 7.8 7.8 7 8.85 7c1.11 0 1.54.65 2.68 2h.93c1.12-1.31 1.53-2 2.68-2 .87 0 1.55.54 1.77 1.32.35-.04.68-.06 1-.06.36 0 .7.03 1.03.08C18.7 6.43 17.13 5 15.15 5c-.12 0-.23.03-.35.04.12-.33.2-.67.2-1.04 0-1.66-1.34-3-3-3S9 2.34 9 4c0 .37.08.71.2 1.04-.12-.01-.23-.04-.35-.04C6.69 5 5 6.69 5 8.85c0 2.42 2.04 4.31 5.1 7.05z"/><path d="M22.5 16.24c-.32-.18-.66-.29-1-.35.07-.1.15-.18.21-.28 1.08-1.87.46-4.18-1.41-5.26-2.09-1.21-4.76-.39-8.65.9l.52 1.94c3.47-1.14 5.79-1.88 7.14-1.1.91.53 1.2 1.61.68 2.53-.56.96-1.33 1-3.07 1.32l-.47.81c.58 1.62.97 2.33.39 3.32-.53.91-1.61 1.2-2.53.68-.06-.03-.11-.09-.17-.13-.3.67-.64 1.24-1.03 1.73.07.04.13.09.2.14 1.87 1.08 4.18.46 5.26-1.41.06-.1.09-.21.14-.32.22.27.48.51.8.69 1.43.83 3.27.34 4.1-1.1s.32-3.29-1.11-4.11z"/><path d="M12.32 14.01c-.74 3.58-1.27 5.95-2.62 6.73-.91.53-2 .24-2.53-.68-.56-.96-.2-1.66.39-3.32l-.46-.81c-1.7-.31-2.5-.33-3.07-1.32-.53-.91-.24-2 .68-2.53.09-.05.19-.08.29-.11-.35-.56-.64-1.17-.82-1.85-.16.07-.32.14-.48.23-1.87 1.08-2.49 3.39-1.41 5.26.06.1.14.18.21.28-.34.06-.68.17-1 .35-1.43.83-1.93 2.66-1.1 4.1s2.66 1.93 4.1 1.1c.32-.18.58-.42.8-.69.05.11.08.22.14.32 1.08 1.87 3.39 2.49 5.26 1.41 2.09-1.21 2.71-3.93 3.55-7.94l-1.93-.53z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/diversity_3.svg b/html/matt-chat/uswds/img/material-icons/diversity_3.svg
new file mode 100644
index 0000000..29ecbbd
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/diversity_3.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M6.32 13.01c.96.02 1.85.5 2.45 1.34A3.961 3.961 0 0 0 12 16c1.29 0 2.5-.62 3.23-1.66.6-.84 1.49-1.32 2.45-1.34-.72-1.22-3.6-2-5.68-2-2.07 0-4.96.78-5.68 2.01zM4 13c1.66 0 3-1.34 3-3S5.66 7 4 7s-3 1.34-3 3 1.34 3 3 3zm16 0c1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3 1.34 3 3 3zm-8-3c1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3 1.34 3 3 3z"/><path d="M21 14h-3.27c-.77 0-1.35.45-1.68.92-.04.06-1.36 2.08-4.05 2.08-1.43 0-3.03-.64-4.05-2.08-.39-.55-1-.92-1.68-.92H3c-1.1 0-2 .9-2 2v4h7v-2.26c1.15.8 2.54 1.26 4 1.26s2.85-.46 4-1.26V20h7v-4c0-1.1-.9-2-2-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/dns.svg b/html/matt-chat/uswds/img/material-icons/dns.svg
new file mode 100644
index 0000000..4079ced
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/dns.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 13H4c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h16c.55 0 1-.45 1-1v-6c0-.55-.45-1-1-1zM7 19c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zM20 3H4c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h16c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1zM7 9c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/do_disturb.svg b/html/matt-chat/uswds/img/material-icons/do_disturb.svg
new file mode 100644
index 0000000..9f91150
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/do_disturb.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2zM4 12c0-4.4 3.6-8 8-8 1.8 0 3.5.6 4.9 1.7L5.7 16.9C4.6 15.5 4 13.8 4 12zm8 8c-1.8 0-3.5-.6-4.9-1.7L18.3 7.1C19.4 8.5 20 10.2 20 12c0 4.4-3.6 8-8 8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/do_disturb_alt.svg b/html/matt-chat/uswds/img/material-icons/do_disturb_alt.svg
new file mode 100644
index 0000000..a6dd08d
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/do_disturb_alt.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8 0-1.85.63-3.55 1.69-4.9L16.9 18.31A7.902 7.902 0 0 1 12 20zm6.31-3.1L7.1 5.69A7.902 7.902 0 0 1 12 4c4.42 0 8 3.58 8 8 0 1.85-.63 3.55-1.69 4.9z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/do_disturb_off.svg b/html/matt-chat/uswds/img/material-icons/do_disturb_off.svg
new file mode 100644
index 0000000..ec8c9db
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/do_disturb_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 11v2h-1.17l4.51 4.51A9.91 9.91 0 0 0 22 12c0-5.52-4.48-10-10-10-2.04 0-3.93.61-5.51 1.66L13.83 11H17zM1.39 4.22l2.27 2.27A9.91 9.91 0 0 0 2 12c0 5.52 4.48 10 10 10 2.04 0 3.93-.61 5.51-1.66l2.27 2.27 1.41-1.41L2.81 2.81 1.39 4.22zM7 11h1.17l2 2H7v-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/do_disturb_on.svg b/html/matt-chat/uswds/img/material-icons/do_disturb_on.svg
new file mode 100644
index 0000000..0f978ec
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/do_disturb_on.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm5 11H7v-2h10v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/do_not_disturb.svg b/html/matt-chat/uswds/img/material-icons/do_not_disturb.svg
new file mode 100644
index 0000000..a6dd08d
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/do_not_disturb.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8 0-1.85.63-3.55 1.69-4.9L16.9 18.31A7.902 7.902 0 0 1 12 20zm6.31-3.1L7.1 5.69A7.902 7.902 0 0 1 12 4c4.42 0 8 3.58 8 8 0 1.85-.63 3.55-1.69 4.9z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/do_not_disturb_alt.svg b/html/matt-chat/uswds/img/material-icons/do_not_disturb_alt.svg
new file mode 100644
index 0000000..9f91150
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/do_not_disturb_alt.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2zM4 12c0-4.4 3.6-8 8-8 1.8 0 3.5.6 4.9 1.7L5.7 16.9C4.6 15.5 4 13.8 4 12zm8 8c-1.8 0-3.5-.6-4.9-1.7L18.3 7.1C19.4 8.5 20 10.2 20 12c0 4.4-3.6 8-8 8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/do_not_disturb_off.svg b/html/matt-chat/uswds/img/material-icons/do_not_disturb_off.svg
new file mode 100644
index 0000000..0407f8d
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/do_not_disturb_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 11v2h-1.46l4.68 4.68A9.92 9.92 0 0 0 22 12c0-5.52-4.48-10-10-10-2.11 0-4.07.66-5.68 1.78L13.54 11H17zM2.27 2.27 1 3.54l2.78 2.78A9.92 9.92 0 0 0 2 12c0 5.52 4.48 10 10 10 2.11 0 4.07-.66 5.68-1.78L20.46 23l1.27-1.27L11 11 2.27 2.27zM7 13v-2h1.46l2 2H7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/do_not_disturb_on.svg b/html/matt-chat/uswds/img/material-icons/do_not_disturb_on.svg
new file mode 100644
index 0000000..0f978ec
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/do_not_disturb_on.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm5 11H7v-2h10v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/do_not_disturb_on_total_silence.svg b/html/matt-chat/uswds/img/material-icons/do_not_disturb_on_total_silence.svg
new file mode 100644
index 0000000..bf27fb4
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/do_not_disturb_on_total_silence.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm0-14c-3.3 0-6 2.7-6 6s2.7 6 6 6 6-2.7 6-6-2.6-6-6-6zm3 7H9v-2h6v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/do_not_step.svg b/html/matt-chat/uswds/img/material-icons/do_not_step.svg
new file mode 100644
index 0000000..421cc1e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/do_not_step.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m1.39 4.22 7.9 7.9c.18.2.18.5-.01.7a.485.485 0 0 1-.7 0L6.87 11.1c-.11.4-.26.78-.45 1.12l1.4 1.4c.2.2.2.51 0 .71a.485.485 0 0 1-.7 0l-1.27-1.27c-.24.29-.5.56-.77.8l1.28 1.28c.2.2.2.51 0 .71-.1.1-.23.15-.36.15s-.26-.05-.35-.15l-1.38-1.38c-.69.46-1.39.79-1.97 1.02-.78.31-1.3 1.04-1.3 1.88V20h9.5l3.33-3.33 5.94 5.94 1.41-1.41L2.81 2.81 1.39 4.22zm17.12 11.46-1.41-1.41 4.48-4.48L23 11.2l-4.49 4.48zm2.37-6.6-4.48 4.48-7.1-7.09L13.8 2l7.08 7.08z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/do_not_touch.svg b/html/matt-chat/uswds/img/material-icons/do_not_touch.svg
new file mode 100644
index 0000000..979964e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/do_not_touch.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m13 10.17-2.5-2.5V2.25a1.25 1.25 0 0 1 2.5 0v7.92zm7 2.58v-7.5a1.25 1.25 0 0 0-2.5 0V11h-1V3.25a1.25 1.25 0 0 0-2.5 0v7.92l6 6v-4.42zM9.5 4.25C9.5 3.56 8.94 3 8.25 3c-.67 0-1.2.53-1.24 1.18L9.5 6.67V4.25zm3.5 5.92-2.5-2.5V2.25a1.25 1.25 0 0 1 2.5 0v7.92zm7 2.58v-7.5a1.25 1.25 0 0 0-2.5 0V11h-1V3.25a1.25 1.25 0 0 0-2.5 0v7.92l6 6v-4.42zM9.5 4.25C9.5 3.56 8.94 3 8.25 3c-.67 0-1.2.53-1.24 1.18L9.5 6.67V4.25zm11.69 16.94L2.81 2.81 1.39 4.22l5.63 5.63L7 9.83v4.3c-1.11-.64-2.58-1.47-2.6-1.48-.17-.09-.34-.14-.54-.14-.26 0-.5.09-.7.26-.04.01-1.16 1.11-1.16 1.11l6.8 7.18c.57.6 1.35.94 2.18.94H17c.62 0 1.18-.19 1.65-.52l-.02-.02 1.15 1.15 1.41-1.42z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/dock.svg b/html/matt-chat/uswds/img/material-icons/dock.svg
new file mode 100644
index 0000000..ee94230
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/dock.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M8 23h8v-2H8v2zm8-21.99L8 1c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V3c0-1.1-.9-1.99-2-1.99zM16 15H8V5h8v10z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/document_scanner.svg b/html/matt-chat/uswds/img/material-icons/document_scanner.svg
new file mode 100644
index 0000000..a8e6940
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/document_scanner.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M7 3H4v3H2V1h5v2zm15 3V1h-5v2h3v3h2zM7 21H4v-3H2v5h5v-2zm13-3v3h-3v2h5v-5h-2zm-1 0c0 1.1-.9 2-2 2H7c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2v12zM15 8H9v2h6V8zm0 3H9v2h6v-2zm0 3H9v2h6v-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/domain.svg b/html/matt-chat/uswds/img/material-icons/domain.svg
new file mode 100644
index 0000000..bfaefa1
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/domain.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 7V3H2v18h20V7H12zM6 19H4v-2h2v2zm0-4H4v-2h2v2zm0-4H4V9h2v2zm0-4H4V5h2v2zm4 12H8v-2h2v2zm0-4H8v-2h2v2zm0-4H8V9h2v2zm0-4H8V5h2v2zm10 12h-8v-2h2v-2h-2v-2h2v-2h-2V9h8v10zm-2-8h-2v2h2v-2zm0 4h-2v2h2v-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/domain_add.svg b/html/matt-chat/uswds/img/material-icons/domain_add.svg
new file mode 100644
index 0000000..6cbe6b1
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/domain_add.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 7V3H2v18h14v-2h-4v-2h2v-2h-2v-2h2v-2h-2V9h8v6h2V7H12zM6 19H4v-2h2v2zm0-4H4v-2h2v2zm0-4H4V9h2v2zm0-4H4V5h2v2zm4 12H8v-2h2v2zm0-4H8v-2h2v2zm0-4H8V9h2v2zm0-4H8V5h2v2zm14 12v2h-2v2h-2v-2h-2v-2h2v-2h2v2h2zm-6-8h-2v2h2v-2zm0 4h-2v2h2v-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/domain_disabled.svg b/html/matt-chat/uswds/img/material-icons/domain_disabled.svg
new file mode 100644
index 0000000..73929a2
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/domain_disabled.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M8 5h2v2h-.9L12 9.9V9h8v8.9l2 2V7H12V3H5.1L8 5.9zm8 6h2v2h-2zM1.3 1.8.1 3.1 2 5v16h16l3 3 1.3-1.3-21-20.9zM6 19H4v-2h2v2zm0-4H4v-2h2v2zm0-4H4V9h2v2zm4 8H8v-2h2v2zm0-4H8v-2h2v2zm2 4v-2h2l2 2h-4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/domain_verification.svg b/html/matt-chat/uswds/img/material-icons/domain_verification.svg
new file mode 100644
index 0000000..d09b21a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/domain_verification.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m16.6 10.88-1.42-1.42-4.24 4.25-2.12-2.13L7.4 13l3.54 3.54z"/><path d="M19 4H5a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2V6a2 2 0 0 0-2-2zm0 14H5V8h14v10z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/done.svg b/html/matt-chat/uswds/img/material-icons/done.svg
new file mode 100644
index 0000000..ce9919b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/done.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4L9 16.2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/done_all.svg b/html/matt-chat/uswds/img/material-icons/done_all.svg
new file mode 100644
index 0000000..091847a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/done_all.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m18 7-1.41-1.41-6.34 6.34 1.41 1.41L18 7zm4.24-1.41L11.66 16.17 7.48 12l-1.41 1.41L11.66 19l12-12-1.42-1.41zM.41 13.41 6 19l1.41-1.41L1.83 12 .41 13.41z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/done_outline.svg b/html/matt-chat/uswds/img/material-icons/done_outline.svg
new file mode 100644
index 0000000..798e42c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/done_outline.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m19.77 5.03 1.4 1.4L8.43 19.17l-5.6-5.6 1.4-1.4 4.2 4.2L19.77 5.03m0-2.83L8.43 13.54l-4.2-4.2L0 13.57 8.43 22 24 6.43 19.77 2.2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/donut_large.svg b/html/matt-chat/uswds/img/material-icons/donut_large.svg
new file mode 100644
index 0000000..bbc39e6
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/donut_large.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11 5.08V2c-5 .5-9 4.81-9 10s4 9.5 9 10v-3.08c-3-.48-6-3.4-6-6.92s3-6.44 6-6.92zM18.97 11H22c-.47-5-4-8.53-9-9v3.08C16 5.51 18.54 8 18.97 11zM13 18.92V22c5-.47 8.53-4 9-9h-3.03c-.43 3-2.97 5.49-5.97 5.92z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/donut_small.svg b/html/matt-chat/uswds/img/material-icons/donut_small.svg
new file mode 100644
index 0000000..36987e6
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/donut_small.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11 9.16V2c-5 .5-9 4.79-9 10s4 9.5 9 10v-7.16c-1-.41-2-1.52-2-2.84s1-2.43 2-2.84zM14.86 11H22c-.48-4.75-4-8.53-9-9v7.16c1 .3 1.52.98 1.86 1.84zM13 14.84V22c5-.47 8.52-4.25 9-9h-7.14c-.34.86-.86 1.54-1.86 1.84z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/door_back.svg b/html/matt-chat/uswds/img/material-icons/door_back.svg
new file mode 100644
index 0000000..07d6f2d
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/door_back.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 19V5c0-1.1-.9-2-2-2H7c-1.1 0-2 .9-2 2v14H3v2h18v-2h-2zm-8-6H9v-2h2v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/door_front.svg b/html/matt-chat/uswds/img/material-icons/door_front.svg
new file mode 100644
index 0000000..48a1b2e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/door_front.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 19V5c0-1.1-.9-2-2-2H7c-1.1 0-2 .9-2 2v14H3v2h18v-2h-2zm-4-6h-2v-2h2v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/door_sliding.svg b/html/matt-chat/uswds/img/material-icons/door_sliding.svg
new file mode 100644
index 0000000..0cc082d
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/door_sliding.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 19V5c0-1.1-.9-2-2-2h-5.25v16h-1.5V3H6c-1.1 0-2 .9-2 2v14H3v2h18v-2h-1zm-10-6H8v-2h2v2zm6 0h-2v-2h2v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/doorbell.svg b/html/matt-chat/uswds/img/material-icons/doorbell.svg
new file mode 100644
index 0000000..eb02854
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/doorbell.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 3 4 9v12h16V9l-8-6zm0 14.5c-.55 0-1-.45-1-1h2c0 .55-.45 1-1 1zm4-1.5H8v-1h1v-2.34c0-1.54.82-2.82 2.25-3.16v-.25c0-.41.34-.75.75-.75s.75.34.75.75v.25c1.44.34 2.25 1.62 2.25 3.16V15h1v1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/double_arrow.svg b/html/matt-chat/uswds/img/material-icons/double_arrow.svg
new file mode 100644
index 0000000..6c85ec4
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/double_arrow.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15.5 5H11l5 7-5 7h4.5l5-7z"/><path d="M8.5 5H4l5 7-5 7h4.5l5-7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/downhill_skiing.svg b/html/matt-chat/uswds/img/material-icons/downhill_skiing.svg
new file mode 100644
index 0000000..26a8fd6
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/downhill_skiing.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18.5 4.5c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2 2 .9 2 2zm-2.72 16.4.76.27a5.933 5.933 0 0 0 4.34-.17L22 22.13c-1.05.55-2.24.87-3.5.87-.86 0-1.68-.14-2.45-.41L2 17.47l.5-1.41 6.9 2.51 1.72-4.44-3.57-3.73c-.89-.94-.67-2.47.45-3.12l3.48-2.01c1.1-.64 2.52-.1 2.91 1.11l.33 1.08a5.017 5.017 0 0 0 2.83 3.14l.52-1.6 1.43.46-1.12 3.45A7.029 7.029 0 0 1 13 8.59l-2.53 1.45 3.03 3.46-2.22 5.76 3.09 1.12 2.1-6.44c.46.18.94.31 1.44.41l-2.13 6.55z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/download.svg b/html/matt-chat/uswds/img/material-icons/download.svg
new file mode 100644
index 0000000..3b44aec
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/download.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M5 20h14v-2H5v2zM19 9h-4V3H9v6H5l7 7 7-7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/download_done.svg b/html/matt-chat/uswds/img/material-icons/download_done.svg
new file mode 100644
index 0000000..64c74e9
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/download_done.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20.13 5.41 18.72 4l-9.19 9.19-4.25-4.24-1.41 1.41 5.66 5.66zM5 18h14v2H5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/download_for_offline.svg b/html/matt-chat/uswds/img/material-icons/download_for_offline.svg
new file mode 100644
index 0000000..c2fb2fa
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/download_for_offline.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.49 2 2 6.49 2 12s4.49 10 10 10 10-4.49 10-10S17.51 2 12 2zm-1 8V6h2v4h3l-4 4-4-4h3zm6 7H7v-2h10v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/downloading.svg b/html/matt-chat/uswds/img/material-icons/downloading.svg
new file mode 100644
index 0000000..a6cc33a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/downloading.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18.32 4.26A9.949 9.949 0 0 0 13 2.05v2.02c1.46.18 2.79.76 3.9 1.62l1.42-1.43zM19.93 11h2.02c-.2-2.01-1-3.84-2.21-5.32L18.31 7.1a7.941 7.941 0 0 1 1.62 3.9zm-1.62 5.9 1.43 1.43a9.981 9.981 0 0 0 2.21-5.32h-2.02a7.945 7.945 0 0 1-1.62 3.89zM13 19.93v2.02c2.01-.2 3.84-1 5.32-2.21l-1.43-1.43c-1.1.86-2.43 1.44-3.89 1.62zM13 12V7h-2v5H7l5 5 5-5h-4zm-2 7.93v2.02c-5.05-.5-9-4.76-9-9.95s3.95-9.45 9-9.95v2.02C7.05 4.56 4 7.92 4 12s3.05 7.44 7 7.93z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/drafts.svg b/html/matt-chat/uswds/img/material-icons/drafts.svg
new file mode 100644
index 0000000..62c1981
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/drafts.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21.99 8c0-.72-.37-1.35-.94-1.7L12 1 2.95 6.3C2.38 6.65 2 7.28 2 8v10c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2l-.01-10zM12 13 3.74 7.84 12 3l8.26 4.84L12 13z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/drag_handle.svg b/html/matt-chat/uswds/img/material-icons/drag_handle.svg
new file mode 100644
index 0000000..a292338
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/drag_handle.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 9H4v2h16V9zM4 15h16v-2H4v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/drag_indicator.svg b/html/matt-chat/uswds/img/material-icons/drag_indicator.svg
new file mode 100644
index 0000000..4b5843e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/drag_indicator.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11 18c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2 2 .9 2 2zm-2-8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0-6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm6 4c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/draw.svg b/html/matt-chat/uswds/img/material-icons/draw.svg
new file mode 100644
index 0000000..9520f50
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/draw.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m18.85 10.39 1.06-1.06c.78-.78.78-2.05 0-2.83L18.5 5.09c-.78-.78-2.05-.78-2.83 0l-1.06 1.06 4.24 4.24zm-5.66-2.83L4 16.76V21h4.24l9.19-9.19-4.24-4.25zM19 17.5c0 2.19-2.54 3.5-5 3.5-.55 0-1-.45-1-1s.45-1 1-1c1.54 0 3-.73 3-1.5 0-.47-.48-.87-1.23-1.2l1.48-1.48c1.07.63 1.75 1.47 1.75 2.68zM4.58 13.35C3.61 12.79 3 12.06 3 11c0-1.8 1.89-2.63 3.56-3.36C7.59 7.18 9 6.56 9 6c0-.41-.78-1-2-1-1.26 0-1.8.61-1.83.64-.35.41-.98.46-1.4.12a.992.992 0 0 1-.15-1.38C3.73 4.24 4.76 3 7 3s4 1.32 4 3c0 1.87-1.93 2.72-3.64 3.47C6.42 9.88 5 10.5 5 11c0 .31.43.6 1.07.86l-1.49 1.49z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/drive_eta.svg b/html/matt-chat/uswds/img/material-icons/drive_eta.svg
new file mode 100644
index 0000000..85b07ca
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/drive_eta.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18.92 5.01C18.72 4.42 18.16 4 17.5 4h-11c-.66 0-1.21.42-1.42 1.01L3 11v8c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1h12v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-8l-2.08-5.99zM6.5 15c-.83 0-1.5-.67-1.5-1.5S5.67 12 6.5 12s1.5.67 1.5 1.5S7.33 15 6.5 15zm11 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zM5 10l1.5-4.5h11L19 10H5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/drive_file_move.svg b/html/matt-chat/uswds/img/material-icons/drive_file_move.svg
new file mode 100644
index 0000000..11bcc0e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/drive_file_move.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 6h-8l-2-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm-6 12v-3h-4v-4h4V8l5 5-5 5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/drive_file_move_rtl.svg b/html/matt-chat/uswds/img/material-icons/drive_file_move_rtl.svg
new file mode 100644
index 0000000..df96115
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/drive_file_move_rtl.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 6h-8l-2-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm-8 11-4-4 4-4v3h4v2h-4v3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/drive_file_rename_outline.svg b/html/matt-chat/uswds/img/material-icons/drive_file_rename_outline.svg
new file mode 100644
index 0000000..a4fa447
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/drive_file_rename_outline.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18.41 5.8 17.2 4.59c-.78-.78-2.05-.78-2.83 0l-2.68 2.68L3 15.96V20h4.04l8.74-8.74 2.63-2.63c.79-.78.79-2.05 0-2.83zM6.21 18H5v-1.21l8.66-8.66 1.21 1.21L6.21 18zM11 20l4-4h6v4H11z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/drive_folder_upload.svg b/html/matt-chat/uswds/img/material-icons/drive_folder_upload.svg
new file mode 100644
index 0000000..3b85ccb
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/drive_folder_upload.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 6h-8l-2-2H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm0 12H4V8h16v10zM8 13.01l1.41 1.41L11 12.84V17h2v-4.16l1.59 1.59L16 13.01 12.01 9 8 13.01z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/dry.svg b/html/matt-chat/uswds/img/material-icons/dry.svg
new file mode 100644
index 0000000..a818dbe
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/dry.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m15.65 4.86-.07-.07c-.57-.62-.82-1.41-.67-2.2L15 2h-1.89l-.06.43c-.2 1.36.27 2.71 1.3 3.72l.07.06c.57.62.82 1.41.67 2.2l-.11.59h1.91l.06-.43c.21-1.36-.27-2.71-1.3-3.71zm4 0-.07-.07c-.57-.62-.82-1.41-.67-2.2L19 2h-1.89l-.06.43c-.2 1.36.27 2.71 1.3 3.72l.07.06c.57.62.82 1.41.67 2.2l-.11.59h1.91l.06-.43c.21-1.36-.27-2.71-1.3-3.71zM9.12 5l-7.18 6.79c-.6.56-.94 1.35-.94 2.18V20c0 1.66 1.34 3 3 3h13.75a1.25 1.25 0 0 0 0-2.5H12v-1h7.75a1.25 1.25 0 0 0 0-2.5H12v-1h8.75a1.25 1.25 0 0 0 0-2.5H12v-1h6.75a1.25 1.25 0 0 0 0-2.5H8.86c.64-1.11 1.48-2.58 1.49-2.61a1.065 1.065 0 0 0-.12-1.23C10.22 6.12 9.12 5 9.12 5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/dry_cleaning.svg b/html/matt-chat/uswds/img/material-icons/dry_cleaning.svg
new file mode 100644
index 0000000..3b2dd34
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/dry_cleaning.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19.56 11.36 13 8.44V7c0-.55-.45-1-1-1s-1-.45-1-1 .45-1 1-1 1 .45 1 1h2c0-1.84-1.66-3.3-3.56-2.95-1.18.22-2.15 1.17-2.38 2.35-.3 1.56.6 2.94 1.94 3.42v.63l-6.56 2.92c-.88.38-1.44 1.25-1.44 2.2v.01C3 14.92 4.08 16 5.42 16H7v6h10v-6h1.58c1.34 0 2.42-1.08 2.42-2.42v-.01c0-.95-.56-1.82-1.44-2.21zM18.58 14H17v-1H7v1H5.42c-.23 0-.42-.19-.42-.43 0-.17.1-.32.25-.38l6.75-3 6.75 3a.423.423 0 0 1-.17.81z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/duo.svg b/html/matt-chat/uswds/img/material-icons/duo.svg
new file mode 100644
index 0000000..91aa26b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/duo.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 2h-8C6.38 2 2 6.66 2 12.28 2 17.5 6.49 22 11.72 22 17.39 22 22 17.62 22 12V4c0-1.1-.9-2-2-2zm-3 13-3-2v2H7V9h7v2l3-2v6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/dvr.svg b/html/matt-chat/uswds/img/material-icons/dvr.svg
new file mode 100644
index 0000000..fd28af7
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/dvr.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 3H3c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h5v2h8v-2h5c1.1 0 1.99-.9 1.99-2L23 5c0-1.1-.9-2-2-2zm0 14H3V5h18v12zm-2-9H8v2h11V8zm0 4H8v2h11v-2zM7 8H5v2h2V8zm0 4H5v2h2v-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/dynamic_feed.svg b/html/matt-chat/uswds/img/material-icons/dynamic_feed.svg
new file mode 100644
index 0000000..9da2988
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/dynamic_feed.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M8 8H6v7c0 1.1.9 2 2 2h9v-2H8V8z"/><path d="M20 3h-8c-1.1 0-2 .9-2 2v6c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 8h-8V7h8v4zM4 12H2v7c0 1.1.9 2 2 2h9v-2H4v-7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/dynamic_form.svg b/html/matt-chat/uswds/img/material-icons/dynamic_form.svg
new file mode 100644
index 0000000..03880a9
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/dynamic_form.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 20v-9h-2V4h7l-2 5h2l-5 11zm-2-7v7H4c-1.1 0-2-.9-2-2v-3c0-1.1.9-2 2-2h11zm-8.75 2.75h-1.5v1.5h1.5v-1.5zM13 4v7H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2h9zM6.25 6.75h-1.5v1.5h1.5v-1.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/e_mobiledata.svg b/html/matt-chat/uswds/img/material-icons/e_mobiledata.svg
new file mode 100644
index 0000000..98d5e0e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/e_mobiledata.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16 9V7H8v10h8v-2h-6v-2h6v-2h-6V9h6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/earbuds.svg b/html/matt-chat/uswds/img/material-icons/earbuds.svg
new file mode 100644
index 0000000..119b101
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/earbuds.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M6.2 3.01C4.44 2.89 3 4.42 3 6.19V16c0 2.76 2.24 5 5 5s5-2.24 5-5V8c0-1.66 1.34-3 3-3s3 1.34 3 3v7h-.83c-1.61 0-3.06 1.18-3.17 2.79A3 3 0 0 0 17.8 21c1.76.12 3.2-1.42 3.2-3.18V8c0-2.76-2.24-5-5-5s-5 2.24-5 5v8c0 1.66-1.34 3-3 3s-3-1.34-3-3V9h.83C7.44 9 8.89 7.82 9 6.21c.11-1.68-1.17-3.1-2.8-3.2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/earbuds_battery.svg b/html/matt-chat/uswds/img/material-icons/earbuds_battery.svg
new file mode 100644
index 0000000..aa5ea33
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/earbuds_battery.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 7h-1V6h-2v1h-1c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1h4c.55 0 1-.45 1-1V8c0-.55-.45-1-1-1zM10.62 6C8.76 6 7.25 7.51 7.25 9.38v5.25c0 1.04-.84 1.88-1.88 1.88s-1.87-.85-1.87-1.89v-4.7c.16.05.33.08.5.08 1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2v6.62C2 16.49 3.51 18 5.38 18s3.38-1.51 3.38-3.38V9.38c0-1.04.84-1.88 1.88-1.88s1.88.84 1.88 1.88v4.7c-.18-.05-.35-.08-.52-.08-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2V9.38C14 7.51 12.49 6 10.62 6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/east.svg b/html/matt-chat/uswds/img/material-icons/east.svg
new file mode 100644
index 0000000..0996600
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/east.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m15 5-1.41 1.41L18.17 11H2v2h16.17l-4.59 4.59L15 19l7-7-7-7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/edgesensor_high.svg b/html/matt-chat/uswds/img/material-icons/edgesensor_high.svg
new file mode 100644
index 0000000..3c5906a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/edgesensor_high.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 7h2v7H3V7zm-3 3h2v7H0v-7zm22-3h2v7h-2V7zm-3 3h2v7h-2v-7zm-3-7.99L8 2c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V4c0-1.1-.9-1.99-2-1.99zM16 17H8V7h8v10z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/edgesensor_low.svg b/html/matt-chat/uswds/img/material-icons/edgesensor_low.svg
new file mode 100644
index 0000000..514ea50
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/edgesensor_low.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M2 7h2v7H2V7zm18 3h2v7h-2v-7zm-4-7.99L8 2c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V4c0-1.1-.9-1.99-2-1.99zM16 17H8V7h8v10z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/edit.svg b/html/matt-chat/uswds/img/material-icons/edit.svg
new file mode 100644
index 0000000..a2841f9
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/edit.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04a.996.996 0 0 0 0-1.41l-2.34-2.34a.996.996 0 0 0-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/edit_attributes.svg b/html/matt-chat/uswds/img/material-icons/edit_attributes.svg
new file mode 100644
index 0000000..8672219
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/edit_attributes.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17.63 7H6.37C3.96 7 2 9.24 2 12s1.96 5 4.37 5h11.26c2.41 0 4.37-2.24 4.37-5s-1.96-5-4.37-5zM7.24 14.46l-2.57-2.57.7-.7 1.87 1.87 3.52-3.52.7.7-4.22 4.22z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/edit_calendar.svg b/html/matt-chat/uswds/img/material-icons/edit_calendar.svg
new file mode 100644
index 0000000..3a5ce07
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/edit_calendar.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 22H5a2 2 0 0 1-2-2l.01-14c0-1.1.88-2 1.99-2h1V2h2v2h8V2h2v2h1c1.1 0 2 .9 2 2v6h-2v-2H5v10h7v2zm10.13-5.01.71-.71a.996.996 0 0 0 0-1.41l-.71-.71a.996.996 0 0 0-1.41 0l-.71.71 2.12 2.12zm-.71.71-5.3 5.3H14v-2.12l5.3-5.3 2.12 2.12z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/edit_location.svg b/html/matt-chat/uswds/img/material-icons/edit_location.svg
new file mode 100644
index 0000000..5c9bf4e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/edit_location.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C8.14 2 5 5.14 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.86-3.14-7-7-7zm-1.56 10H9v-1.44l3.35-3.34 1.43 1.43L10.44 12zm4.45-4.45-.7.7-1.44-1.44.7-.7a.38.38 0 0 1 .54 0l.9.9c.15.15.15.39 0 .54z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/edit_location_alt.svg b/html/matt-chat/uswds/img/material-icons/edit_location_alt.svg
new file mode 100644
index 0000000..84d6788
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/edit_location_alt.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13.95 13H9V8.05l5.61-5.61A8.17 8.17 0 0 0 12 2c-4.2 0-8 3.22-8 8.2 0 3.32 2.67 7.25 8 11.8 5.33-4.55 8-8.48 8-11.8 0-1.01-.16-1.94-.45-2.8l-5.6 5.6z"/><path d="M11 11h2.12l6.16-6.16-2.12-2.12L11 8.88zm9.71-9L20 1.29c-.2-.19-.45-.29-.71-.29-.13 0-.48.07-.71.29l-.72.72 2.12 2.12.72-.72c.4-.39.4-1.02.01-1.41z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/edit_note.svg b/html/matt-chat/uswds/img/material-icons/edit_note.svg
new file mode 100644
index 0000000..543aab0
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/edit_note.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 10h11v2H3v-2zm0-2h11V6H3v2zm0 8h7v-2H3v2zm15.01-3.13.71-.71a.996.996 0 0 1 1.41 0l.71.71c.39.39.39 1.02 0 1.41l-.71.71-2.12-2.12zm-.71.71-5.3 5.3V21h2.12l5.3-5.3-2.12-2.12z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/edit_notifications.svg b/html/matt-chat/uswds/img/material-icons/edit_notifications.svg
new file mode 100644
index 0000000..92437a6
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/edit_notifications.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m17.58 6.25 1.77 1.77L14.37 13H12.6v-1.77l4.98-4.98zm3.27-.44-1.06-1.06c-.2-.2-.51-.2-.71 0l-.85.85L20 7.37l.85-.85c.2-.2.2-.52 0-.71zM18 12.2V17h2v2H4v-2h2v-7c0-2.79 1.91-5.14 4.5-5.8v-.7c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5v.7c.82.21 1.57.59 2.21 1.09L10.6 10.4V15h4.6l2.8-2.8zM10 20h4c0 1.1-.9 2-2 2s-2-.9-2-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/edit_off.svg b/html/matt-chat/uswds/img/material-icons/edit_off.svg
new file mode 100644
index 0000000..6a4815b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/edit_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m12.126 8.125 1.937-1.937 3.747 3.747-1.937 1.938zM20.71 5.63l-2.34-2.34a1 1 0 0 0-1.41 0l-1.83 1.83 3.75 3.75L20.71 7a1 1 0 0 0 0-1.37zM2 5l6.63 6.63L3 17.25V21h3.75l5.63-5.62L18 21l2-2L4 3 2 5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/edit_road.svg b/html/matt-chat/uswds/img/material-icons/edit_road.svg
new file mode 100644
index 0000000..5481778
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/edit_road.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 4h-2v7.9l2-2zM4 4h2v16H4zm6 0h2v4h-2zm0 6h2v4h-2zm0 6h2v4h-2zm12.56-3.41-1.15-1.15a1.49 1.49 0 0 0-2.12 0L14 16.73V20h3.27l5.29-5.29c.59-.59.59-1.54 0-2.12zm-5.98 5.86h-1.03v-1.03L19 13.97 20.03 15l-3.45 3.45z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/egg.svg b/html/matt-chat/uswds/img/material-icons/egg.svg
new file mode 100644
index 0000000..78ffa61
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/egg.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 3C8.5 3 5 9.33 5 14c0 3.87 3.13 7 7 7s7-3.13 7-7c0-4.67-3.5-11-7-11zm1 15c-3 0-5-1.99-5-5 0-.55.45-1 1-1s1 .45 1 1c0 2.92 2.42 3 3 3 .55 0 1 .45 1 1s-.45 1-1 1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/egg_alt.svg b/html/matt-chat/uswds/img/material-icons/egg_alt.svg
new file mode 100644
index 0000000..131be68
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/egg_alt.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 9c-2-2-3.01-7-9.03-7C4.95 2 1.94 6 2 11.52 2.06 17.04 6.96 19 9.97 19c2.01 0 2.01 3 6.02 3C19 22 22 19 22 15.02 22 12 21.01 11 19 9zm-7 6.5c-1.93 0-3.5-1.57-3.5-3.5s1.57-3.5 3.5-3.5 3.5 1.57 3.5 3.5-1.57 3.5-3.5 3.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/eject.svg b/html/matt-chat/uswds/img/material-icons/eject.svg
new file mode 100644
index 0000000..a8fc5a1
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/eject.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M5 17h14v2H5zm7-12L5.33 15h13.34z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/elderly.svg b/html/matt-chat/uswds/img/material-icons/elderly.svg
new file mode 100644
index 0000000..a4fa093
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/elderly.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13.5 5.5c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm6.5 7V23h-1V12.5c0-.28-.22-.5-.5-.5s-.5.22-.5.5v1h-1v-.69a6.02 6.02 0 0 1-3.51-2.52c-.31.87-.49 1.78-.49 2.71 0 .23.02.46.03.69L15 16.5V23h-2v-5l-1.78-2.54L11 19l-3 4-1.6-1.2L9 18.33V13c0-1.15.18-2.29.5-3.39l-1.5.85V14H6V9.3l5.4-3.07v.01a2 2 0 0 1 1.94.03c.36.21.63.51.8.85l.79 1.67A3.987 3.987 0 0 0 18.5 11c.83 0 1.5.67 1.5 1.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/elderly_woman.svg b/html/matt-chat/uswds/img/material-icons/elderly_woman.svg
new file mode 100644
index 0000000..afb7466
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/elderly_woman.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18.5 11c-1.56 0-2.92-.9-3.58-2.21l-.79-1.67C14.12 7.1 13.63 6 12.34 6 8.72 6 6 16.69 6 19h2.5l-2.1 2.8L8 23l3-4h2v4h2v-4.03L13 13l.49-2.71A6.02 6.02 0 0 0 17 12.81v.69h1v-1c0-.28.22-.5.5-.5s.5.22.5.5V23h1V12.5c0-.83-.67-1.5-1.5-1.5zm-6.9-8.09c-.06.19-.1.38-.1.59 0 1.1.9 2 2 2s2-.9 2-2-.9-2-2-2c-.21 0-.4.04-.59.1-.15-.35-.5-.6-.91-.6-.55 0-1 .45-1 1 0 .41.25.76.6.91z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/electric_bike.svg b/html/matt-chat/uswds/img/material-icons/electric_bike.svg
new file mode 100644
index 0000000..c280bfb
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/electric_bike.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 7h-.82l-1.7-4.68A2.008 2.008 0 0 0 14.6 1H12v2h2.6l1.46 4h-4.81l-.36-1H12V4H7v2h1.75l1.82 5H9.9c-.44-2.23-2.31-3.88-4.65-3.99C2.45 6.87 0 9.2 0 12c0 2.8 2.2 5 5 5 2.46 0 4.45-1.69 4.9-4h4.2c.44 2.23 2.31 3.88 4.65 3.99 2.8.13 5.25-2.19 5.25-5C24 9.2 21.8 7 19 7zM7.82 13c-.4 1.17-1.49 2-2.82 2-1.68 0-3-1.32-3-3s1.32-3 3-3c1.33 0 2.42.83 2.82 2H5v2h2.82zm6.28-2h-1.4l-.73-2H15c-.44.58-.76 1.25-.9 2zm4.9 4c-1.68 0-3-1.32-3-3 0-.93.41-1.73 1.05-2.28l.96 2.64 1.88-.68-.97-2.67c.02 0 .05-.01.08-.01 1.68 0 3 1.32 3 3s-1.32 3-3 3zm-8 5H7l6 3v-2h4l-6-3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/electric_bolt.svg b/html/matt-chat/uswds/img/material-icons/electric_bolt.svg
new file mode 100644
index 0000000..5433779
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/electric_bolt.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M14.69 2.21 4.33 11.49c-.64.58-.28 1.65.58 1.73L13 14l-4.85 6.76c-.22.31-.19.74.08 1.01.3.3.77.31 1.08.02l10.36-9.28c.64-.58.28-1.65-.58-1.73L11 10l4.85-6.76c.22-.31.19-.74-.08-1.01a.77.77 0 0 0-1.08-.02z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/electric_car.svg b/html/matt-chat/uswds/img/material-icons/electric_car.svg
new file mode 100644
index 0000000..ff148b8
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/electric_car.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18.92 2.01C18.72 1.42 18.16 1 17.5 1h-11c-.66 0-1.21.42-1.42 1.01L3 8v8c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1h12v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1V8l-2.08-5.99zM6.5 12c-.83 0-1.5-.67-1.5-1.5S5.67 9 6.5 9 8 9.67 8 10.5 7.33 12 6.5 12zm11 0c-.83 0-1.5-.67-1.5-1.5S16.67 9 17.5 9s1.5.67 1.5 1.5-.67 1.5-1.5 1.5zM5 7l1.5-4.5h11L19 7H5zm2 13h4v-2l6 3h-4v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/electric_meter.svg b/html/matt-chat/uswds/img/material-icons/electric_meter.svg
new file mode 100644
index 0000000..61cc13d
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/electric_meter.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2c-4.96 0-9 4.04-9 9 0 3.91 2.51 7.24 6 8.47V22h2v-2.06a8.262 8.262 0 0 0 2 0V22h2v-2.53c3.49-1.24 6-4.57 6-8.47 0-4.96-4.04-9-9-9zm2.25 12-3 3-1.5-1.5L11 14.25 9.75 13l3-3 1.5 1.5L13 12.75 14.25 14zM16 9H8V7h8v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/electric_moped.svg b/html/matt-chat/uswds/img/material-icons/electric_moped.svg
new file mode 100644
index 0000000..f0f2175
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/electric_moped.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 5c0-1.1-.9-2-2-2h-3v2h3v2.65L13.52 12H10V7H6c-2.21 0-4 1.79-4 4v3h2c0 1.66 1.34 3 3 3s3-1.34 3-3h4.48L19 8.35V5zM7 15c-.55 0-1-.45-1-1h2c0 .55-.45 1-1 1z"/><path d="M5 4h5v2H5zm14 7c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3zm0 4c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zM7 20h4v-2l6 3h-4v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/electric_rickshaw.svg b/html/matt-chat/uswds/img/material-icons/electric_rickshaw.svg
new file mode 100644
index 0000000..0a9b7fd
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/electric_rickshaw.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 11.18V9.72c0-.47-.16-.92-.46-1.28L16.6 3.72c-.38-.46-.94-.72-1.54-.72H3c-1.1 0-2 .9-2 2v8c0 1.1.9 2 2 2h.18C3.6 16.16 4.7 17 6 17s2.4-.84 2.82-2h8.37a2.996 2.996 0 0 0 5.82-1c-.01-1.3-.85-2.4-2.01-2.82zM18.4 9H16V6.12L18.4 9zM3 5h4v4H3V5zm3 10c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm3-2v-2h3V9H9V5h5v8H9zm11 2c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zM7 20h4v-2l6 3h-4v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/electric_scooter.svg b/html/matt-chat/uswds/img/material-icons/electric_scooter.svg
new file mode 100644
index 0000000..745607d
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/electric_scooter.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M7.82 16H15v-1c0-2.21 1.79-4 4-4h.74l-1.9-8.44A2.009 2.009 0 0 0 15.89 1H12v2h3.89l1.4 6.25h-.01A6.008 6.008 0 0 0 13.09 14H7.82a2.996 2.996 0 0 0-3.42-1.94c-1.18.23-2.13 1.2-2.35 2.38A3.002 3.002 0 0 0 5 18c1.3 0 2.4-.84 2.82-2zM5 16c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z"/><path d="M19 12c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3zm0 4c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm-8 4H7l6 3v-2h4l-6-3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/electrical_services.svg b/html/matt-chat/uswds/img/material-icons/electrical_services.svg
new file mode 100644
index 0000000..f57aefc
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/electrical_services.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 14c0-.55-.45-1-1-1h-2v2h2c.55 0 1-.45 1-1zm-1 3h-2v2h2c.55 0 1-.45 1-1s-.45-1-1-1zm-8-3h-2v4h2c0 1.1.9 2 2 2h3v-8h-3c-1.1 0-2 .9-2 2z"/><path d="M5 13c0-1.1.9-2 2-2h1.5c1.93 0 3.5-1.57 3.5-3.5S10.43 4 8.5 4H5c-.55 0-1 .45-1 1s.45 1 1 1h3.5c.83 0 1.5.67 1.5 1.5S9.33 9 8.5 9H7c-2.21 0-4 1.79-4 4s1.79 4 4 4h2v-2H7c-1.1 0-2-.9-2-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/elevator.svg b/html/matt-chat/uswds/img/material-icons/elevator.svg
new file mode 100644
index 0000000..cb4560b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/elevator.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM8.5 6a1.25 1.25 0 1 1 0 2.5 1.25 1.25 0 0 1 0-2.5zm2.5 8h-1v4H7v-4H6v-2.5c0-1.1.9-2 2-2h1c1.1 0 2 .9 2 2V14zm4.5 3L13 13h5l-2.5 4zM13 11l2.5-4 2.5 4h-5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/email.svg b/html/matt-chat/uswds/img/material-icons/email.svg
new file mode 100644
index 0000000..876dbcd
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/email.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4-8 5-8-5V6l8 5 8-5v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/emergency.svg b/html/matt-chat/uswds/img/material-icons/emergency.svg
new file mode 100644
index 0000000..11bb0c4
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/emergency.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m20.79 9.23-2-3.46L14 8.54V3h-4v5.54L5.21 5.77l-2 3.46L8 12l-4.79 2.77 2 3.46L10 15.46V21h4v-5.54l4.79 2.77 2-3.46L16 12z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/emergency_recording.svg b/html/matt-chat/uswds/img/material-icons/emergency_recording.svg
new file mode 100644
index 0000000..c661d0a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/emergency_recording.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 10.48V6c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2v-4.48l4 3.98v-11l-4 3.98zM12 12l3 1.73-1 1.73-3-1.73V17H9v-3.27l-3 1.73-1-1.73L8 12l-3-1.73 1-1.73 3 1.73V7h2v3.27l3-1.73 1 1.73L12 12z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/emergency_share.svg b/html/matt-chat/uswds/img/material-icons/emergency_share.svg
new file mode 100644
index 0000000..107f9e9
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/emergency_share.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 9c-3.15 0-6 2.41-6 6.15 0 2.49 2 5.44 6 8.85 4-3.41 6-6.36 6-8.85C18 11.41 15.15 9 12 9zm0 7.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zM12 4c1.93 0 3.68.78 4.95 2.05l-1.41 1.41a5.022 5.022 0 0 0-7.08 0L7.05 6.05A6.976 6.976 0 0 1 12 4zm7.78-.77-1.41 1.41C16.74 3.01 14.49 2 12.01 2S7.27 3.01 5.64 4.63L4.22 3.22C6.22 1.23 8.97 0 12.01 0s5.78 1.23 7.77 3.23z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/emoji_emotions.svg b/html/matt-chat/uswds/img/material-icons/emoji_emotions.svg
new file mode 100644
index 0000000..726942f
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/emoji_emotions.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM8.5 8c.83 0 1.5.67 1.5 1.5S9.33 11 8.5 11 7 10.33 7 9.5 7.67 8 8.5 8zM12 18c-2.28 0-4.22-1.66-5-4h10c-.78 2.34-2.72 4-5 4zm3.5-7c-.83 0-1.5-.67-1.5-1.5S14.67 8 15.5 8s1.5.67 1.5 1.5-.67 1.5-1.5 1.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/emoji_events.svg b/html/matt-chat/uswds/img/material-icons/emoji_events.svg
new file mode 100644
index 0000000..95af5b3
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/emoji_events.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 5h-2V3H7v2H5c-1.1 0-2 .9-2 2v1c0 2.55 1.92 4.63 4.39 4.94A5.01 5.01 0 0 0 11 15.9V19H7v2h10v-2h-4v-3.1a5.01 5.01 0 0 0 3.61-2.96C19.08 12.63 21 10.55 21 8V7c0-1.1-.9-2-2-2zM5 8V7h2v3.82C5.84 10.4 5 9.3 5 8zm14 0c0 1.3-.84 2.4-2 2.82V7h2v1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/emoji_food_beverage.svg b/html/matt-chat/uswds/img/material-icons/emoji_food_beverage.svg
new file mode 100644
index 0000000..0563df1
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/emoji_food_beverage.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 3H9v2.4l1.81 1.45c.12.09.19.24.19.39v4.26c0 .28-.22.5-.5.5h-4c-.28 0-.5-.22-.5-.5V7.24c0-.15.07-.3.19-.39L8 5.4V3H4v10c0 2.21 1.79 4 4 4h6c2.21 0 4-1.79 4-4v-3h2a2 2 0 0 0 2-2V5c0-1.11-.89-2-2-2zm0 5h-2V5h2v3zM4 19h16v2H4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/emoji_nature.svg b/html/matt-chat/uswds/img/material-icons/emoji_nature.svg
new file mode 100644
index 0000000..dc2d1b0
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/emoji_nature.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21.94 4.88A1.32 1.32 0 0 0 20.68 4H19.6l-.31-.97C19.15 2.43 18.61 2 18 2s-1.15.43-1.29 1.04L16.4 4h-1.07c-.57 0-1.08.35-1.26.88-.19.56.04 1.17.56 1.48l.87.52-.4 1.24c-.23.58-.04 1.25.45 1.62.23.17.51.26.78.26.31 0 .61-.11.86-.32l.81-.7.81.7c.25.21.55.32.86.32.27 0 .55-.09.78-.26.5-.37.68-1.04.45-1.62l-.39-1.24.87-.52c.51-.31.74-.92.56-1.48zM18 7c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm-4.51 3.51c-.43-.43-.94-.73-1.49-.93V8h-1v1.38c-.11-.01-.23-.03-.34-.03-1.02 0-2.05.39-2.83 1.17-.16.16-.3.34-.43.53L6 10.52a3.01 3.01 0 0 0-3.83 1.82c-.27.75-.23 1.57.12 2.29.23.48.58.87 1 1.16-.38 1.35-.06 2.85 1 3.91a3.981 3.981 0 0 0 3.91 1c.29.42.68.77 1.16 1 .42.2.85.3 1.29.3.34 0 .68-.06 1.01-.17a3.007 3.007 0 0 0 1.82-3.85l-.52-1.37c.18-.13.36-.27.53-.43.87-.87 1.24-2.04 1.14-3.17H16v-1h-1.59c-.19-.55-.49-1.06-.92-1.5zm-8.82 3.78c-.25-.09-.45-.27-.57-.51s-.13-.51-.04-.76c.19-.52.76-.79 1.26-.61l3.16 1.19c-1.15.6-2.63 1.11-3.81.69zm6.32 5.65c-.25.09-.52.08-.76-.04a.989.989 0 0 1-.51-.57c-.42-1.18.09-2.65.7-3.8l1.18 3.13c.18.52-.09 1.1-.61 1.28zm1.21-5.34-.61-1.61c0-.01-.01-.02-.02-.03l-.06-.12a.673.673 0 0 0-.07-.11l-.09-.09-.09-.09c-.03-.03-.07-.05-.11-.07-.04-.02-.07-.05-.12-.06-.01 0-.02-.01-.03-.02l-1.6-.6a1.966 1.966 0 0 1 2.67.13c.73.73.77 1.88.13 2.67z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/emoji_objects.svg b/html/matt-chat/uswds/img/material-icons/emoji_objects.svg
new file mode 100644
index 0000000..084216c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/emoji_objects.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 3c-.46 0-.93.04-1.4.14-2.76.53-4.96 2.76-5.48 5.52-.48 2.61.48 5.01 2.22 6.56.43.38.66.91.66 1.47V19c0 1.1.9 2 2 2h.28a1.98 1.98 0 0 0 3.44 0H14c1.1 0 2-.9 2-2v-2.31c0-.55.22-1.09.64-1.46A6.956 6.956 0 0 0 19 10c0-3.87-3.13-7-7-7zm2 16h-4v-1h4v1zm0-2h-4v-1h4v1zm-1.5-5.59V14h-1v-2.59L9.67 9.59l.71-.71L12 10.5l1.62-1.62.71.71-1.83 1.82z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/emoji_people.svg b/html/matt-chat/uswds/img/material-icons/emoji_people.svg
new file mode 100644
index 0000000..c023cb3
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/emoji_people.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><circle cx="12" cy="4" r="2"/><path d="M15.89 8.11C15.5 7.72 14.83 7 13.53 7h-2.54C8.24 6.99 6 4.75 6 2H4c0 3.16 2.11 5.84 5 6.71V22h2v-6h2v6h2V10.05L18.95 14l1.41-1.41-4.47-4.48z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/emoji_symbols.svg b/html/matt-chat/uswds/img/material-icons/emoji_symbols.svg
new file mode 100644
index 0000000..b7ea5a0
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/emoji_symbols.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 2h8v2H3zm3 9h2V7h3V5H3v2h3zm6.404 9.182 7.778-7.778 1.414 1.414-7.778 7.778z"/><circle cx="14.5" cy="14.5" r="1.5"/><circle cx="19.5" cy="19.5" r="1.5"/><path d="M15.5 11A2.5 2.5 0 0 0 18 8.5V4h3V2h-4v4.51c-.42-.32-.93-.51-1.5-.51a2.5 2.5 0 0 0 0 5zm-5.76 4.96-1.41 1.41-.71-.71.35-.35a2.499 2.499 0 0 0-1.77-4.27 2.499 2.499 0 0 0-1.77 4.27l.35.35-1.06 1.06c-.98.98-.98 2.56 0 3.54.5.5 1.14.74 1.78.74s1.28-.24 1.77-.73l1.06-1.06 1.41 1.41 1.41-1.41-1.41-1.41 1.41-1.41-1.41-1.43zM5.85 14.2c.12-.12.26-.15.35-.15s.23.03.35.15c.19.2.19.51 0 .71l-.35.35-.35-.36a.501.501 0 0 1 0-.7zm0 5.65c-.12.12-.26.15-.35.15s-.23-.03-.35-.15a.513.513 0 0 1 0-.71l1.06-1.06.71.71-1.07 1.06z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/emoji_transportation.svg b/html/matt-chat/uswds/img/material-icons/emoji_transportation.svg
new file mode 100644
index 0000000..af7add6
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/emoji_transportation.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20.57 10.66c-.14-.4-.52-.66-.97-.66h-7.19c-.46 0-.83.26-.98.66L10 14.77l.01 5.51c0 .38.31.72.69.72h.62c.38 0 .68-.38.68-.76V19h8v1.24c0 .38.31.76.69.76h.61c.38 0 .69-.34.69-.72l.01-1.37v-4.14l-1.43-4.11zm-8.16.34h7.19l1.03 3h-9.25l1.03-3zM12 17c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm8 0c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z"/><path d="M14 9h1V3H7v5H2v13h1V9h5V4h6z"/><path d="M5 11h2v2H5zm5-6h2v2h-2zM5 15h2v2H5zm0 4h2v2H5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/energy_savings_leaf.svg b/html/matt-chat/uswds/img/material-icons/energy_savings_leaf.svg
new file mode 100644
index 0000000..c100556
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/energy_savings_leaf.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 3c-4.8 0-9 3.86-9 9 0 2.12.74 4.07 1.97 5.61L3 19.59 4.41 21l1.97-1.97A9.012 9.012 0 0 0 12 21c2.3 0 4.61-.88 6.36-2.64A8.95 8.95 0 0 0 21 12V3h-9zm3.83 9.26-5.16 4.63c-.16.15-.41.14-.56-.01a.397.397 0 0 1-.04-.52l2.44-3.33-4.05-.4a.514.514 0 0 1-.3-.89l5.16-4.63c.16-.15.41-.14.56.01.14.14.16.36.04.52l-2.44 3.33 4.05.4c.45.04.63.59.3.89z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/engineering.svg b/html/matt-chat/uswds/img/material-icons/engineering.svg
new file mode 100644
index 0000000..5b97215
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/engineering.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M9 15c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4zm13.1-8.16c.01-.11.02-.22.02-.34 0-.12-.01-.23-.03-.34l.74-.58c.07-.05.08-.15.04-.22l-.7-1.21c-.04-.08-.14-.1-.21-.08l-.86.35c-.18-.14-.38-.25-.59-.34l-.13-.93A.182.182 0 0 0 20.2 3h-1.4c-.09 0-.16.06-.17.15l-.13.93c-.21.09-.41.21-.59.34l-.87-.35c-.08-.03-.17 0-.21.08l-.7 1.21c-.04.08-.03.17.04.22l.74.58a1.953 1.953 0 0 0 0 .68l-.74.58c-.07.05-.08.15-.04.22l.7 1.21c.04.08.14.1.21.08l.87-.35c.18.14.38.25.59.34l.13.93c.01.09.08.15.17.15h1.4c.09 0 .16-.06.17-.15l.13-.93c.21-.09.41-.21.59-.34l.87.35c.08.03.17 0 .21-.08l.7-1.21c.04-.08.03-.17-.04-.22l-.73-.58zm-2.6.91a1.25 1.25 0 1 1 0-2.5 1.25 1.25 0 0 1 0 2.5zm.42 3.93-.5-.87c-.03-.06-.1-.08-.15-.06l-.62.25c-.13-.1-.27-.18-.42-.24l-.09-.66A.15.15 0 0 0 18 10h-1c-.06 0-.11.04-.12.11l-.09.66c-.15.06-.29.15-.42.24l-.62-.25c-.06-.02-.12 0-.15.06l-.5.87c-.03.06-.02.12.03.16l.53.41c-.01.08-.02.16-.02.24 0 .08.01.17.02.24l-.53.41c-.05.04-.06.11-.03.16l.5.87c.03.06.1.08.15.06l.62-.25c.13.1.27.18.42.24l.09.66c.01.07.06.11.12.11h1c.06 0 .12-.04.12-.11l.09-.66c.15-.06.29-.15.42-.24l.62.25c.06.02.12 0 .15-.06l.5-.87c.03-.06.02-.12-.03-.16l-.52-.41c.01-.08.02-.16.02-.24 0-.08-.01-.17-.02-.24l.53-.41c.05-.04.06-.11.04-.17zm-2.42 1.65c-.46 0-.83-.38-.83-.83 0-.46.38-.83.83-.83s.83.38.83.83c0 .46-.37.83-.83.83zM4.74 9h8.53c.27 0 .49-.22.49-.49v-.02a.49.49 0 0 0-.49-.49H13c0-1.48-.81-2.75-2-3.45v.95c0 .28-.22.5-.5.5s-.5-.22-.5-.5V4.14C9.68 4.06 9.35 4 9 4s-.68.06-1 .14V5.5c0 .28-.22.5-.5.5S7 5.78 7 5.5v-.95C5.81 5.25 5 6.52 5 8h-.26a.49.49 0 0 0-.49.49v.03c0 .26.22.48.49.48zM9 13c1.86 0 3.41-1.28 3.86-3H5.14c.45 1.72 2 3 3.86 3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/enhanced_encryption.svg b/html/matt-chat/uswds/img/material-icons/enhanced_encryption.svg
new file mode 100644
index 0000000..2d0ddf8
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/enhanced_encryption.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zM8.9 6c0-1.71 1.39-3.1 3.1-3.1s3.1 1.39 3.1 3.1v2H8.9V6zM16 16h-3v3h-2v-3H8v-2h3v-3h2v3h3v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/equalizer.svg b/html/matt-chat/uswds/img/material-icons/equalizer.svg
new file mode 100644
index 0000000..d6031c3
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/equalizer.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10 20h4V4h-4v16zm-6 0h4v-8H4v8zM16 9v11h4V9h-4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/error.svg b/html/matt-chat/uswds/img/material-icons/error.svg
new file mode 100644
index 0000000..d30cc3a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/error.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/error_outline.svg b/html/matt-chat/uswds/img/material-icons/error_outline.svg
new file mode 100644
index 0000000..ad877f3
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/error_outline.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/escalator.svg b/html/matt-chat/uswds/img/material-icons/escalator.svg
new file mode 100644
index 0000000..0576278
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/escalator.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 6h-1.7l-5 9H7c-.83 0-1.5-.67-1.5-1.5S6.17 15 7 15h1.7l5-9H17c.83 0 1.5.67 1.5 1.5S17.83 9 17 9z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/escalator_warning.svg b/html/matt-chat/uswds/img/material-icons/escalator_warning.svg
new file mode 100644
index 0000000..34cc781
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/escalator_warning.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M6.5 2c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2zm9 7.5c0 .83.67 1.5 1.5 1.5s1.5-.67 1.5-1.5S17.83 8 17 8s-1.5.67-1.5 1.5zm3 2.5h-2.84c-.58.01-1.14.32-1.45.86l-.92 1.32L9.72 8a2.02 2.02 0 0 0-1.71-1H5c-1.1 0-2 .9-2 2v6h1.5v7h5V11.61L12.03 16h2.2l.77-1.1V22h4v-5h1v-3.5c0-.82-.67-1.5-1.5-1.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/euro.svg b/html/matt-chat/uswds/img/material-icons/euro.svg
new file mode 100644
index 0000000..2bb2f87
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/euro.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15 18.5A6.48 6.48 0 0 1 9.24 15H15l1-2H8.58c-.05-.33-.08-.66-.08-1s.03-.67.08-1H15l1-2H9.24A6.491 6.491 0 0 1 15 5.5c1.61 0 3.09.59 4.23 1.57L21 5.3A8.955 8.955 0 0 0 15 3c-3.92 0-7.24 2.51-8.48 6H3l-1 2h4.06a8.262 8.262 0 0 0 0 2H3l-1 2h4.52c1.24 3.49 4.56 6 8.48 6 2.31 0 4.41-.87 6-2.3l-1.78-1.77c-1.13.98-2.6 1.57-4.22 1.57z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/euro_symbol.svg b/html/matt-chat/uswds/img/material-icons/euro_symbol.svg
new file mode 100644
index 0000000..3f55204
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/euro_symbol.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15 18.5A6.48 6.48 0 0 1 9.24 15H15v-2H8.58c-.05-.33-.08-.66-.08-1s.03-.67.08-1H15V9H9.24A6.491 6.491 0 0 1 15 5.5c1.61 0 3.09.59 4.23 1.57L21 5.3A8.955 8.955 0 0 0 15 3c-3.92 0-7.24 2.51-8.48 6H3v2h3.06a8.262 8.262 0 0 0 0 2H3v2h3.52c1.24 3.49 4.56 6 8.48 6 2.31 0 4.41-.87 6-2.3l-1.78-1.77c-1.13.98-2.6 1.57-4.22 1.57z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/ev_station.svg b/html/matt-chat/uswds/img/material-icons/ev_station.svg
new file mode 100644
index 0000000..be2d5ac
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/ev_station.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m19.77 7.23.01-.01-3.72-3.72L15 4.56l2.11 2.11c-.94.36-1.61 1.26-1.61 2.33a2.5 2.5 0 0 0 2.5 2.5c.36 0 .69-.08 1-.21v7.21c0 .55-.45 1-1 1s-1-.45-1-1V14c0-1.1-.9-2-2-2h-1V5c0-1.1-.9-2-2-2H6c-1.1 0-2 .9-2 2v16h10v-7.5h1.5v5a2.5 2.5 0 0 0 5 0V9c0-.69-.28-1.32-.73-1.77zM18 10c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zM8 18v-4.5H6L10 6v5h2l-4 7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/event.svg b/html/matt-chat/uswds/img/material-icons/event.svg
new file mode 100644
index 0000000..ba09a17
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/event.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 12h-5v5h5v-5zM16 1v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2h-1V1h-2zm3 18H5V8h14v11z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/event_available.svg b/html/matt-chat/uswds/img/material-icons/event_available.svg
new file mode 100644
index 0000000..122cd39
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/event_available.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16.53 11.06 15.47 10l-4.88 4.88-2.12-2.12-1.06 1.06L10.59 17l5.94-5.94zM19 3h-1V1h-2v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V8h14v11z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/event_busy.svg b/html/matt-chat/uswds/img/material-icons/event_busy.svg
new file mode 100644
index 0000000..240582a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/event_busy.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m9.31 17 2.44-2.44L14.19 17l1.06-1.06-2.44-2.44 2.44-2.44L14.19 10l-2.44 2.44L9.31 10l-1.06 1.06 2.44 2.44-2.44 2.44L9.31 17zM19 3h-1V1h-2v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V8h14v11z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/event_note.svg b/html/matt-chat/uswds/img/material-icons/event_note.svg
new file mode 100644
index 0000000..9322727
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/event_note.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 10H7v2h10v-2zm2-7h-1V1h-2v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V8h14v11zm-5-5H7v2h7v-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/event_repeat.svg b/html/matt-chat/uswds/img/material-icons/event_repeat.svg
new file mode 100644
index 0000000..33b761e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/event_repeat.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 12V6c0-1.1-.9-2-2-2h-1V2h-2v2H8V2H6v2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h7v-2H5V10h14v2h2zm-5.36 8a3.504 3.504 0 0 0 6.86-1c0-1.93-1.57-3.5-3.5-3.5-.95 0-1.82.38-2.45 1H18V18h-4v-4h1.5v1.43c.9-.88 2.14-1.43 3.5-1.43 2.76 0 5 2.24 5 5a5.002 5.002 0 0 1-9.9 1h1.54z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/event_seat.svg b/html/matt-chat/uswds/img/material-icons/event_seat.svg
new file mode 100644
index 0000000..cb3c019
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/event_seat.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M4 18v3h3v-3h10v3h3v-6H4v3zm15-8h3v3h-3v-3zM2 10h3v3H2v-3zm15 3H7V5c0-1.1.9-2 2-2h6c1.1 0 2 .9 2 2v8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/exit_to_app.svg b/html/matt-chat/uswds/img/material-icons/exit_to_app.svg
new file mode 100644
index 0000000..e1d339a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/exit_to_app.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10.09 15.59 11.5 17l5-5-5-5-1.41 1.41L12.67 11H3v2h9.67l-2.58 2.59zM19 3H5a2 2 0 0 0-2 2v4h2V5h14v14H5v-4H3v4a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/expand.svg b/html/matt-chat/uswds/img/material-icons/expand.svg
new file mode 100644
index 0000000..4e3e0f2
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/expand.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M4 20h16v2H4zM4 2h16v2H4zm9 7h3l-4-4-4 4h3v6H8l4 4 4-4h-3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/expand_circle_down.svg b/html/matt-chat/uswds/img/material-icons/expand_circle_down.svg
new file mode 100644
index 0000000..cdb10cc
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/expand_circle_down.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 13.5L7.5 11l1.42-1.41L12 12.67l3.08-3.08L16.5 11 12 15.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/expand_less.svg b/html/matt-chat/uswds/img/material-icons/expand_less.svg
new file mode 100644
index 0000000..5398524
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/expand_less.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m12 8-6 6 1.41 1.41L12 10.83l4.59 4.58L18 14z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/expand_more.svg b/html/matt-chat/uswds/img/material-icons/expand_more.svg
new file mode 100644
index 0000000..4428af0
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/expand_more.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16.59 8.59 12 13.17 7.41 8.59 6 10l6 6 6-6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/explicit.svg b/html/matt-chat/uswds/img/material-icons/explicit.svg
new file mode 100644
index 0000000..0eb1bb1
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/explicit.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-4 6h-4v2h4v2h-4v2h4v2H9V7h6v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/explore.svg b/html/matt-chat/uswds/img/material-icons/explore.svg
new file mode 100644
index 0000000..4243343
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/explore.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 10.9c-.61 0-1.1.49-1.1 1.1s.49 1.1 1.1 1.1c.61 0 1.1-.49 1.1-1.1s-.49-1.1-1.1-1.1zM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm2.19 12.19L6 18l3.81-8.19L18 6l-3.81 8.19z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/explore_off.svg b/html/matt-chat/uswds/img/material-icons/explore_off.svg
new file mode 100644
index 0000000..3b9a9ee
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/explore_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m14.19 14.19-1.41-1.41-1.56-1.56L11 11 9.81 9.81 4.93 4.93 2.27 2.27 1 3.54l2.78 2.78c-.11.16-.21.32-.31.48-.04.07-.09.14-.13.21-.09.15-.17.31-.25.47-.05.1-.1.21-.16.32-.06.14-.13.28-.19.43-.1.24-.19.48-.27.73l-.09.3c-.05.2-.1.39-.14.59-.02.11-.04.22-.07.33-.04.2-.07.4-.09.61-.01.1-.03.2-.03.3-.03.29-.05.6-.05.91 0 5.52 4.48 10 10 10 .31 0 .62-.02.92-.05l.3-.03c.2-.02.41-.06.61-.09.11-.02.22-.04.33-.07.2-.04.39-.09.58-.15.1-.03.2-.05.3-.09.25-.08.49-.17.73-.27.15-.06.29-.13.43-.19.11-.05.22-.1.33-.16.16-.08.31-.16.46-.25.07-.04.14-.09.21-.13.16-.1.32-.2.48-.31L20.46 23l1.27-1.27-2.66-2.66-4.88-4.88zM6 18l3-6.46L12.46 15 6 18zm16-6c0 .31-.02.62-.05.92l-.03.3c-.02.2-.06.41-.09.61-.02.11-.04.22-.07.33-.04.2-.09.39-.15.58-.03.1-.05.21-.09.31-.08.25-.17.49-.27.73-.06.15-.13.29-.19.43-.05.11-.1.22-.16.33-.08.16-.16.31-.25.46-.04.07-.09.14-.13.21-.1.16-.2.32-.31.48L15 12.46 18 6l-6.46 3-5.22-5.22c.16-.11.32-.21.48-.31.07-.04.14-.09.21-.13.15-.09.31-.17.46-.25.11-.05.22-.1.33-.16.14-.06.28-.13.43-.19.24-.1.48-.19.73-.27l.31-.09c.19-.05.38-.11.58-.15.11-.02.22-.04.33-.07.2-.04.4-.07.61-.09.1-.01.2-.03.3-.03.29-.02.6-.04.91-.04 5.52 0 10 4.48 10 10z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/exposure.svg b/html/matt-chat/uswds/img/material-icons/exposure.svg
new file mode 100644
index 0000000..a99d359
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/exposure.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM6 7h5v1.5H6V7zm13 12H5L19 5v14zm-4.5-3v2H16v-2h2v-1.5h-2v-2h-1.5v2h-2V16z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/exposure_neg_1.svg b/html/matt-chat/uswds/img/material-icons/exposure_neg_1.svg
new file mode 100644
index 0000000..71be874
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/exposure_neg_1.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M4 11v2h8v-2H4zm15 7h-2V7.38L14 8.4V6.7L18.7 5h.3v13z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/exposure_neg_2.svg b/html/matt-chat/uswds/img/material-icons/exposure_neg_2.svg
new file mode 100644
index 0000000..b540339
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/exposure_neg_2.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m15.05 16.29 2.86-3.07c.38-.39.72-.79 1.04-1.18.32-.39.59-.78.82-1.17.23-.39.41-.78.54-1.17s.19-.79.19-1.18c0-.53-.09-1.02-.27-1.46-.18-.44-.44-.81-.78-1.11-.34-.31-.77-.54-1.26-.71A5.72 5.72 0 0 0 16.47 5c-.69 0-1.31.11-1.85.32-.54.21-1 .51-1.36.88-.37.37-.65.8-.84 1.3-.18.47-.27.97-.28 1.5h2.14c.01-.31.05-.6.13-.87.09-.29.23-.54.4-.75.18-.21.41-.37.68-.49.27-.12.6-.18.96-.18.31 0 .58.05.81.15.23.1.43.25.59.43.16.18.28.4.37.65.08.25.13.52.13.81 0 .22-.03.43-.08.65-.06.22-.15.45-.29.7-.14.25-.32.53-.56.83-.23.3-.52.65-.88 1.03l-4.17 4.55V18H21v-1.71h-5.95zM2 11v2h8v-2H2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/exposure_plus_1.svg b/html/matt-chat/uswds/img/material-icons/exposure_plus_1.svg
new file mode 100644
index 0000000..f5921c2
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/exposure_plus_1.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10 7H8v4H4v2h4v4h2v-4h4v-2h-4V7zm10 11h-2V7.38L15 8.4V6.7L19.7 5h.3v13z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/exposure_plus_2.svg b/html/matt-chat/uswds/img/material-icons/exposure_plus_2.svg
new file mode 100644
index 0000000..c59ff6c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/exposure_plus_2.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m16.05 16.29 2.86-3.07c.38-.39.72-.79 1.04-1.18.32-.39.59-.78.82-1.17.23-.39.41-.78.54-1.17.13-.39.19-.79.19-1.18 0-.53-.09-1.02-.27-1.46-.18-.44-.44-.81-.78-1.11-.34-.31-.77-.54-1.26-.71A5.72 5.72 0 0 0 17.47 5c-.69 0-1.31.11-1.85.32-.54.21-1 .51-1.36.88-.37.37-.65.8-.84 1.3-.18.47-.27.97-.28 1.5h2.14c.01-.31.05-.6.13-.87.09-.29.23-.54.4-.75.18-.21.41-.37.68-.49.27-.12.6-.18.96-.18.31 0 .58.05.81.15.23.1.43.25.59.43.16.18.28.4.37.65.08.25.13.52.13.81 0 .22-.03.43-.08.65-.06.22-.15.45-.29.7-.14.25-.32.53-.56.83-.23.3-.52.65-.88 1.03l-4.17 4.55V18H22v-1.71h-5.95zM8 7H6v4H2v2h4v4h2v-4h4v-2H8V7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/exposure_zero.svg b/html/matt-chat/uswds/img/material-icons/exposure_zero.svg
new file mode 100644
index 0000000..cf710bb
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/exposure_zero.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16.14 12.5c0 1-.1 1.85-.3 2.55-.2.7-.48 1.27-.83 1.7-.36.44-.79.75-1.3.95-.51.2-1.07.3-1.7.3-.62 0-1.18-.1-1.69-.3-.51-.2-.95-.51-1.31-.95-.36-.44-.65-1.01-.85-1.7-.2-.7-.3-1.55-.3-2.55v-2.04c0-1 .1-1.85.3-2.55.2-.7.48-1.26.84-1.69.36-.43.8-.74 1.31-.93C10.81 5.1 11.38 5 12 5c.63 0 1.19.1 1.7.29.51.19.95.5 1.31.93.36.43.64.99.84 1.69.2.7.3 1.54.3 2.55v2.04zm-2.11-2.36c0-.64-.05-1.18-.13-1.62-.09-.44-.22-.79-.4-1.06-.17-.27-.39-.46-.64-.58-.25-.13-.54-.19-.86-.19-.32 0-.61.06-.86.18s-.47.31-.64.58c-.17.27-.31.62-.4 1.06s-.13.98-.13 1.62v2.67c0 .64.05 1.18.14 1.62.09.45.23.81.4 1.09s.39.48.64.61.54.19.87.19c.33 0 .62-.06.87-.19s.46-.33.63-.61c.17-.28.3-.64.39-1.09.09-.45.13-.99.13-1.62v-2.66z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/extension.svg b/html/matt-chat/uswds/img/material-icons/extension.svg
new file mode 100644
index 0000000..eb4d6b6
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/extension.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20.5 11H19V7c0-1.1-.9-2-2-2h-4V3.5a2.5 2.5 0 0 0-5 0V5H4c-1.1 0-1.99.9-1.99 2v3.8H3.5c1.49 0 2.7 1.21 2.7 2.7s-1.21 2.7-2.7 2.7H2V20c0 1.1.9 2 2 2h3.8v-1.5c0-1.49 1.21-2.7 2.7-2.7 1.49 0 2.7 1.21 2.7 2.7V22H17c1.1 0 2-.9 2-2v-4h1.5a2.5 2.5 0 0 0 0-5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/extension_off.svg b/html/matt-chat/uswds/img/material-icons/extension_off.svg
new file mode 100644
index 0000000..5f8eb1c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/extension_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m19.78 22.61-1.63-1.63c-.05 0-.1.02-.15.02h-3.8c0-2.71-2.16-3-2.7-3s-2.7.29-2.7 3H5c-1.1 0-2-.9-2-2v-3.8c2.71 0 3-2.16 3-2.7s-.3-2.7-2.99-2.7V6c0-.05.02-.09.02-.14L1.39 4.22 2.8 2.81l18.38 18.38-1.4 1.42zm.22-5.44V15a2.5 2.5 0 0 0 0-5V6c0-1.1-.9-2-2-2h-4a2.5 2.5 0 0 0-5 0H6.83L20 17.17z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/face.svg b/html/matt-chat/uswds/img/material-icons/face.svg
new file mode 100644
index 0000000..60b519a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/face.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M9 11.75a1.25 1.25 0 1 0 0 2.5 1.25 1.25 0 0 0 0-2.5zm6 0a1.25 1.25 0 1 0 0 2.5 1.25 1.25 0 0 0 0-2.5zM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8 0-.29.02-.58.05-.86 2.36-1.05 4.23-2.98 5.21-5.37a9.974 9.974 0 0 0 10.41 3.97c.21.71.33 1.47.33 2.26 0 4.41-3.59 8-8 8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/face_2.svg b/html/matt-chat/uswds/img/material-icons/face_2.svg
new file mode 100644
index 0000000..27836fa
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/face_2.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21.97 13.52v-.04C23.21 12.38 24 10.78 24 9c0-3.31-2.69-6-6-6-.26 0-.52.02-.78.06a5.98 5.98 0 0 0-10.44 0C6.52 3.02 6.26 3 6 3 2.69 3 0 5.69 0 9c0 1.78.79 3.38 2.02 4.48v.04A6.008 6.008 0 0 0 0 18c0 3.31 2.69 6 6 6 1.39 0 2.67-.48 3.69-1.28.74.18 1.51.28 2.31.28s1.57-.1 2.31-.28c1.02.8 2.3 1.28 3.69 1.28 3.31 0 6-2.69 6-6 0-1.78-.79-3.38-2.03-4.48zM12 21c-4.41 0-8-3.59-8-8 0-3.72 2.56-6.85 6-7.74v.05c0 3.34 2.72 6.06 6.06 6.06 1.26 0 2.45-.39 3.45-1.09.31.86.49 1.77.49 2.72 0 4.41-3.59 8-8 8z"/><circle cx="9" cy="14" r="1.25"/><circle cx="15" cy="14" r="1.25"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/face_3.svg b/html/matt-chat/uswds/img/material-icons/face_3.svg
new file mode 100644
index 0000000..cccd3f0
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/face_3.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><circle cx="9" cy="13" r="1.25"/><circle cx="15" cy="13" r="1.25"/><path d="M22.91 11.96C22.39 6.32 17.66 2 12 2S1.61 6.32 1.09 11.96l-.9 9.86c-.1 1.17.82 2.18 2 2.18h19.62c1.18 0 2.1-1.01 1.99-2.18l-.89-9.86zM4.54 9.13c.87.55 1.89.87 2.96.87 1.86 0 3.5-.93 4.5-2.35C13 9.07 14.64 10 16.5 10c1.07 0 2.09-.32 2.96-.87.34.89.54 1.86.54 2.87 0 4.41-3.59 8-8 8s-8-3.59-8-8c0-1.01.2-1.98.54-2.87z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/face_4.svg b/html/matt-chat/uswds/img/material-icons/face_4.svg
new file mode 100644
index 0000000..df86d91
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/face_4.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2c-.96 0-1.88.14-2.75.39A4.986 4.986 0 0 0 5 0C2.24 0 0 2.24 0 5c0 1.8.96 3.37 2.39 4.25C2.14 10.12 2 11.04 2 12c0 5.52 4.48 10 10 10s10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8 0-.05.01-.1.01-.15 2.6-.98 4.68-2.99 5.74-5.55a9.942 9.942 0 0 0 9.92 3.46c.21.71.33 1.46.33 2.24 0 4.41-3.59 8-8 8z"/><circle cx="9" cy="13" r="1.25"/><circle cx="15" cy="13" r="1.25"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/face_5.svg b/html/matt-chat/uswds/img/material-icons/face_5.svg
new file mode 100644
index 0000000..15ed8a5
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/face_5.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8 0-1.12.23-2.18.65-3.15a.495.495 0 0 0 .85-.35c0-.25-.19-.45-.43-.49.15-.26.32-.51.49-.75-.03.08-.06.15-.06.24 0 .28.22.5.5.5s.5-.22.5-.5S6.28 7 6 7c-.13 0-.25.05-.34.13.52-.68 1.15-1.28 1.86-1.76A.495.495 0 0 0 8 6a.495.495 0 0 0 .1-.98c.16-.09.32-.17.49-.25.09.14.24.23.41.23.28 0 .5-.22.5-.5 0-.03-.01-.06-.02-.09.39-.13.79-.23 1.21-.3-.11.1-.19.23-.19.39 0 .28.22.5.5.5s.5-.22.5-.5a.51.51 0 0 0-.3-.46c.26-.03.53-.04.8-.04s.54.01.8.04c-.18.08-.3.25-.3.46 0 .28.22.5.5.5s.5-.22.5-.5c0-.16-.08-.29-.19-.38.41.07.82.17 1.21.3-.01.02-.02.05-.02.08 0 .28.22.5.5.5.17 0 .32-.09.41-.23.17.08.33.16.49.25A.495.495 0 0 0 16 6c.28 0 .5-.22.5-.5 0-.05-.01-.09-.03-.13.71.48 1.34 1.08 1.86 1.76a.495.495 0 0 0-.83.37c0 .28.22.5.5.5s.5-.22.5-.5c0-.09-.03-.16-.07-.23.18.24.34.49.49.75-.23.03-.42.23-.42.48a.495.495 0 0 0 .85.35c.42.97.65 2.03.65 3.15 0 4.41-3.59 8-8 8z"/><circle cx="9" cy="13" r="1.25"/><circle cx="12" cy="5.5" r=".5"/><circle cx="14" cy="5.5" r=".5"/><circle cx="10" cy="5.5" r=".5"/><circle cx="17" cy="6.5" r=".5"/><circle cx="9" cy="6.5" r=".5"/><circle cx="7" cy="6.5" r=".5"/><circle cx="11" cy="6.5" r=".5"/><circle cx="13" cy="6.5" r=".5"/><circle cx="15" cy="6.5" r=".5"/><circle cx="12" cy="7.5" r=".5"/><circle cx="14" cy="7.5" r=".5"/><circle cx="16" cy="7.5" r=".5"/><circle cx="10" cy="7.5" r=".5"/><circle cx="8" cy="7.5" r=".5"/><circle cx="9" cy="8.5" r=".5"/><circle cx="7" cy="8.5" r=".5"/><circle cx="11" cy="8.5" r=".5"/><circle cx="13" cy="8.5" r=".5"/><circle cx="15" cy="8.5" r=".5"/><circle cx="17" cy="8.5" r=".5"/><circle cx="15" cy="13" r="1.25"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/face_6.svg b/html/matt-chat/uswds/img/material-icons/face_6.svg
new file mode 100644
index 0000000..dcbdd9a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/face_6.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8v-.03c2.31-.22 3.43-1.59 4.34-3.41.17-.35.51-.56.9-.56h5.53c.38 0 .72.21.89.55.9 1.8 1.99 3.19 4.34 3.41v.03c0 4.42-3.59 8.01-8 8.01z"/><circle cx="9" cy="13" r="1.25"/><circle cx="15" cy="13" r="1.25"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/face_retouching_natural.svg b/html/matt-chat/uswds/img/material-icons/face_retouching_natural.svg
new file mode 100644
index 0000000..859dc64
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/face_retouching_natural.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><circle cx="9" cy="13" r="1.25"/><path d="m20.77 8.58-.92 2.01c.09.46.15.93.15 1.41 0 4.41-3.59 8-8 8s-8-3.59-8-8c0-.05.01-.1 0-.14 2.6-.98 4.69-2.99 5.74-5.55A10 10 0 0 0 17.5 10c.45 0 .89-.04 1.33-.1l-.6-1.32-.88-1.93-1.93-.88-2.79-1.27 2.79-1.27.71-.32A9.86 9.86 0 0 0 12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10c0-1.47-.33-2.87-.9-4.13l-.33.71z"/><circle cx="15" cy="13" r="1.25"/><path d="M20.6 5.6 19.5 8l-1.1-2.4L16 4.5l2.4-1.1L19.5 1l1.1 2.4L23 4.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/face_retouching_off.svg b/html/matt-chat/uswds/img/material-icons/face_retouching_off.svg
new file mode 100644
index 0000000..9bdbb4f
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/face_retouching_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><circle cx="9" cy="13" r="1.25"/><path d="M17.5 10c.75 0 1.47-.09 2.17-.24.21.71.33 1.46.33 2.24 0 1.22-.28 2.37-.77 3.4l1.49 1.49A9.981 9.981 0 0 0 22 12c0-5.52-4.48-10-10-10-1.78 0-3.44.47-4.89 1.28l5.33 5.33c1.49.88 3.21 1.39 5.06 1.39zM1.89 3.72l2.19 2.19A9.958 9.958 0 0 0 2 12c0 5.52 4.48 10 10 10 2.29 0 4.4-.78 6.09-2.08l2.19 2.19 1.41-1.41L3.31 2.31 1.89 3.72zm14.77 14.77A7.91 7.91 0 0 1 12 20c-4.41 0-8-3.59-8-8 0-.05.01-.1 0-.14a9.946 9.946 0 0 0 3.64-2.39l9.02 9.02z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/fact_check.svg b/html/matt-chat/uswds/img/material-icons/fact_check.svg
new file mode 100644
index 0000000..ccb4899
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/fact_check.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill-rule="evenodd" d="M20 3H4c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM10 17H5v-2h5v2zm0-4H5v-2h5v2zm0-4H5V7h5v2zm4.82 6L12 12.16l1.41-1.41 1.41 1.42L17.99 9l1.42 1.42L14.82 15z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/factory.svg b/html/matt-chat/uswds/img/material-icons/factory.svg
new file mode 100644
index 0000000..0723ffe
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/factory.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M22 10v12H2V10l7-3v2l5-2v3h8zm-4.8-1.5L18 2h3l.8 6.5h-4.6zM11 18h2v-4h-2v4zm-4 0h2v-4H7v4zm10-4h-2v4h2v-4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/family_restroom.svg b/html/matt-chat/uswds/img/material-icons/family_restroom.svg
new file mode 100644
index 0000000..eff00e4
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/family_restroom.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16 4c0-1.11.89-2 2-2s2 .89 2 2-.89 2-2 2-2-.89-2-2zm4 18v-6h2.5l-2.54-7.63A2.01 2.01 0 0 0 18.06 7h-.12a2 2 0 0 0-1.9 1.37l-.86 2.58c1.08.6 1.82 1.73 1.82 3.05v8h3zm-7.5-10.5c.83 0 1.5-.67 1.5-1.5s-.67-1.5-1.5-1.5S11 9.17 11 10s.67 1.5 1.5 1.5zM5.5 6c1.11 0 2-.89 2-2s-.89-2-2-2-2 .89-2 2 .89 2 2 2zm2 16v-7H9V9c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v6h1.5v7h4zm6.5 0v-4h1v-4c0-.82-.68-1.5-1.5-1.5h-2c-.82 0-1.5.68-1.5 1.5v4h1v4h3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/fast_forward.svg b/html/matt-chat/uswds/img/material-icons/fast_forward.svg
new file mode 100644
index 0000000..0b8eb5c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/fast_forward.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m4 18 8.5-6L4 6v12zm9-12v12l8.5-6L13 6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/fast_rewind.svg b/html/matt-chat/uswds/img/material-icons/fast_rewind.svg
new file mode 100644
index 0000000..18c2140
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/fast_rewind.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11 18V6l-8.5 6 8.5 6zm.5-6 8.5 6V6l-8.5 6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/fastfood.svg b/html/matt-chat/uswds/img/material-icons/fastfood.svg
new file mode 100644
index 0000000..3b4686b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/fastfood.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18.06 22.99h1.66c.84 0 1.53-.64 1.63-1.46L23 5.05h-5V1h-1.97v4.05h-4.97l.3 2.34c1.71.47 3.31 1.32 4.27 2.26 1.44 1.42 2.43 2.89 2.43 5.29v8.05zM1 21.99V21h15.03v.99c0 .55-.45 1-1.01 1H2.01c-.56 0-1.01-.45-1.01-1zm15.03-7c0-8-15.03-8-15.03 0h15.03zM1.02 17h15v2h-15z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/favorite.svg b/html/matt-chat/uswds/img/material-icons/favorite.svg
new file mode 100644
index 0000000..80f9a05
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/favorite.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m12 21.35-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/favorite_border.svg b/html/matt-chat/uswds/img/material-icons/favorite_border.svg
new file mode 100644
index 0000000..f4e03cd
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/favorite_border.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16.5 3c-1.74 0-3.41.81-4.5 2.09C10.91 3.81 9.24 3 7.5 3 4.42 3 2 5.42 2 8.5c0 3.78 3.4 6.86 8.55 11.54L12 21.35l1.45-1.32C18.6 15.36 22 12.28 22 8.5 22 5.42 19.58 3 16.5 3zm-4.4 15.55-.1.1-.1-.1C7.14 14.24 4 11.39 4 8.5 4 6.5 5.5 5 7.5 5c1.54 0 3.04.99 3.57 2.36h1.87C13.46 5.99 14.96 5 16.5 5c2 0 3.5 1.5 3.5 3.5 0 2.89-3.14 5.74-7.9 10.05z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/fax.svg b/html/matt-chat/uswds/img/material-icons/fax.svg
new file mode 100644
index 0000000..5b5e193
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/fax.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 9h-1V4H8v16h14v-8c0-1.66-1.34-3-3-3zm-9-3h6v3h-6V6zm4 11h-4v-5h4v5zm2 0c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm0-3c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm3 3c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm0-3c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zM4.5 8A2.5 2.5 0 0 0 2 10.5v8a2.5 2.5 0 0 0 5 0v-8A2.5 2.5 0 0 0 4.5 8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/featured_play_list.svg b/html/matt-chat/uswds/img/material-icons/featured_play_list.svg
new file mode 100644
index 0000000..1aa2c53
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/featured_play_list.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 3H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-9 8H3V9h9v2zm0-4H3V5h9v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/featured_video.svg b/html/matt-chat/uswds/img/material-icons/featured_video.svg
new file mode 100644
index 0000000..b118b55
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/featured_video.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 3H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-9 9H3V5h9v7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/feed.svg b/html/matt-chat/uswds/img/material-icons/feed.svg
new file mode 100644
index 0000000..3dbee75
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/feed.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V8l-5-5zM7 7h5v2H7V7zm10 10H7v-2h10v2zm0-4H7v-2h10v2zm-2-4V5l4 4h-4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/feedback.svg b/html/matt-chat/uswds/img/material-icons/feedback.svg
new file mode 100644
index 0000000..72b0945
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/feedback.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-7 12h-2v-2h2v2zm0-4h-2V6h2v4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/female.svg b/html/matt-chat/uswds/img/material-icons/female.svg
new file mode 100644
index 0000000..3ecb3bd
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/female.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17.5 9.5C17.5 6.46 15.04 4 12 4S6.5 6.46 6.5 9.5c0 2.7 1.94 4.93 4.5 5.4V17H9v2h2v2h2v-2h2v-2h-2v-2.1c2.56-.47 4.5-2.7 4.5-5.4zm-9 0C8.5 7.57 10.07 6 12 6s3.5 1.57 3.5 3.5S13.93 13 12 13s-3.5-1.57-3.5-3.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/fence.svg b/html/matt-chat/uswds/img/material-icons/fence.svg
new file mode 100644
index 0000000..79ca8e3
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/fence.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 12v-2h-2V7l-3-3-2 2-2-2-2 2-2-2-3 3v3H3v2h2v2H3v2h2v4h14v-4h2v-2h-2v-2h2zm-5-5.17 1 1V10h-2V7.83l.41-.41.59-.59zm-4 0 .59.59.41.41V10h-2V7.83l.41-.41.59-.59zM11 14v-2h2v2h-2zm2 2v2h-2v-2h2zM7 7.83l1-1 .59.59.41.41V10H7V7.83zM7 12h2v2H7v-2zm0 4h2v2H7v-2zm10 2h-2v-2h2v2zm0-4h-2v-2h2v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/festival.svg b/html/matt-chat/uswds/img/material-icons/festival.svg
new file mode 100644
index 0000000..bb6c9ba
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/festival.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13 5.7V4h3l-1-1.49L16 1h-5v4.7L2 12v10h7v-5l3.03-2L15 17v5h7V12z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/fiber_dvr.svg b/html/matt-chat/uswds/img/material-icons/fiber_dvr.svg
new file mode 100644
index 0000000..88419e5
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/fiber_dvr.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17.5 10.5h2v1h-2v-1zm-13 0h2v3h-2v-3zM21 3H3c-1.11 0-2 .89-2 2v14a2 2 0 0 0 2 2h18a2 2 0 0 0 2-2V5c0-1.11-.89-2-2-2zM8 13.5c0 .85-.65 1.5-1.5 1.5H3V9h3.5c.85 0 1.5.65 1.5 1.5v3zm4.62 1.5h-1.5L9.37 9h1.5l1 3.43 1-3.43h1.5l-1.75 6zM21 11.5c0 .6-.4 1.15-.9 1.4L21 15h-1.5l-.85-2H17.5v2H16V9h3.5c.85 0 1.5.65 1.5 1.5v1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/fiber_manual_record.svg b/html/matt-chat/uswds/img/material-icons/fiber_manual_record.svg
new file mode 100644
index 0000000..d91ccfd
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/fiber_manual_record.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><circle cx="12" cy="12" r="8"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/fiber_new.svg b/html/matt-chat/uswds/img/material-icons/fiber_new.svg
new file mode 100644
index 0000000..943be16
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/fiber_new.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 4H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V6c0-1.11-.89-2-2-2zM8.5 15H7.3l-2.55-3.5V15H3.5V9h1.25l2.5 3.5V9H8.5v6zm5-4.74H11v1.12h2.5v1.26H11v1.11h2.5V15h-4V9h4v1.26zm7 3.74c0 .55-.45 1-1 1h-4c-.55 0-1-.45-1-1V9h1.25v4.51h1.13V9.99h1.25v3.51h1.12V9h1.25v5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/fiber_pin.svg b/html/matt-chat/uswds/img/material-icons/fiber_pin.svg
new file mode 100644
index 0000000..e4a5e0c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/fiber_pin.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M5.5 10.5h2v1h-2zM20 4H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V6c0-1.11-.89-2-2-2zM9 11.5c0 .85-.65 1.5-1.5 1.5h-2v2H4V9h3.5c.85 0 1.5.65 1.5 1.5v1zm3.5 3.5H11V9h1.5v6zm7.5 0h-1.2l-2.55-3.5V15H15V9h1.25l2.5 3.5V9H20v6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/fiber_smart_record.svg b/html/matt-chat/uswds/img/material-icons/fiber_smart_record.svg
new file mode 100644
index 0000000..ea4b678
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/fiber_smart_record.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><circle cx="9" cy="12" r="8"/><path d="M17 4.26v2.09a5.99 5.99 0 0 1 0 11.3v2.09c3.45-.89 6-4.01 6-7.74s-2.55-6.85-6-7.74z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/file_copy.svg b/html/matt-chat/uswds/img/material-icons/file_copy.svg
new file mode 100644
index 0000000..c668cb4
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/file_copy.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm-1 4 6 6v10c0 1.1-.9 2-2 2H7.99C6.89 23 6 22.1 6 21l.01-14c0-1.1.89-2 1.99-2h7zm-1 7h5.5L14 6.5V12z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/file_download.svg b/html/matt-chat/uswds/img/material-icons/file_download.svg
new file mode 100644
index 0000000..ef421c3
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/file_download.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 9h-4V3H9v6H5l7 7 7-7zM5 18v2h14v-2H5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/file_download_done.svg b/html/matt-chat/uswds/img/material-icons/file_download_done.svg
new file mode 100644
index 0000000..441c370
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/file_download_done.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M5 18h14v2H5v-2zm4.6-2.7L5 10.7l2-1.9 2.6 2.6L17 4l2 2-9.4 9.3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/file_download_off.svg b/html/matt-chat/uswds/img/material-icons/file_download_off.svg
new file mode 100644
index 0000000..115abb3
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/file_download_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M9 6.17V3h6v6h4l-3.59 3.59L9 6.17zm12.19 15.02L2.81 2.81 1.39 4.22 6.17 9H5l7 7 .59-.59L15.17 18H5v2h12.17l2.61 2.61 1.41-1.42z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/file_open.svg b/html/matt-chat/uswds/img/material-icons/file_open.svg
new file mode 100644
index 0000000..ee849d3
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/file_open.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M14 2H6c-1.1 0-2 .9-2 2v16c0 1.1.89 2 1.99 2H15v-8h5V8l-6-6zm-1 7V3.5L18.5 9H13zm4 12.66V16h5.66v2h-2.24l2.95 2.95-1.41 1.41L19 19.41v2.24h-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/file_present.svg b/html/matt-chat/uswds/img/material-icons/file_present.svg
new file mode 100644
index 0000000..fc1ec9f
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/file_present.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15 2H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V7l-5-5zM6 20V4h8v4h4v12H6zm10-10v5c0 2.21-1.79 4-4 4s-4-1.79-4-4V8.5a2.5 2.5 0 0 1 2.76-2.49c1.3.13 2.24 1.32 2.24 2.63V15h-2V8.5c0-.28-.22-.5-.5-.5s-.5.22-.5.5V15c0 1.1.9 2 2 2s2-.9 2-2v-5h2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/file_upload.svg b/html/matt-chat/uswds/img/material-icons/file_upload.svg
new file mode 100644
index 0000000..0fe9aad
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/file_upload.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M9 16h6v-6h4l-7-7-7 7h4zm-4 2h14v2H5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/filter.svg b/html/matt-chat/uswds/img/material-icons/filter.svg
new file mode 100644
index 0000000..f1191f1
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/filter.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m15.96 10.29-2.75 3.54-1.96-2.36L8.5 15h11l-3.54-4.71zM3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm18-4H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/filter_1.svg b/html/matt-chat/uswds/img/material-icons/filter_1.svg
new file mode 100644
index 0000000..0e81a46
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/filter_1.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm11 10h2V5h-4v2h2v8zm7-14H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/filter_2.svg b/html/matt-chat/uswds/img/material-icons/filter_2.svg
new file mode 100644
index 0000000..5884f7f
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/filter_2.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm18-4H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14zm-4-4h-4v-2h2a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-4v2h4v2h-2a2 2 0 0 0-2 2v4h6v-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/filter_3.svg b/html/matt-chat/uswds/img/material-icons/filter_3.svg
new file mode 100644
index 0000000..7f51158
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/filter_3.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 1H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14zM3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm14 8v-1.5c0-.83-.67-1.5-1.5-1.5.83 0 1.5-.67 1.5-1.5V7a2 2 0 0 0-2-2h-4v2h4v2h-2v2h2v2h-4v2h4a2 2 0 0 0 2-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/filter_4.svg b/html/matt-chat/uswds/img/material-icons/filter_4.svg
new file mode 100644
index 0000000..2bb6ee7
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/filter_4.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm12 10h2V5h-2v4h-2V5h-2v6h4v4zm6-14H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/filter_5.svg b/html/matt-chat/uswds/img/material-icons/filter_5.svg
new file mode 100644
index 0000000..2f6fe21
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/filter_5.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 1H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14zM3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm14 8v-2a2 2 0 0 0-2-2h-2V7h4V5h-6v6h4v2h-4v2h4a2 2 0 0 0 2-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/filter_6.svg b/html/matt-chat/uswds/img/material-icons/filter_6.svg
new file mode 100644
index 0000000..17524f4
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/filter_6.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm18-4H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14zm-8-2h2a2 2 0 0 0 2-2v-2a2 2 0 0 0-2-2h-2V7h4V5h-4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2zm0-4h2v2h-2v-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/filter_7.svg b/html/matt-chat/uswds/img/material-icons/filter_7.svg
new file mode 100644
index 0000000..9805b0a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/filter_7.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm18-4H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14zm-8-2 4-8V5h-6v2h4l-4 8h2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/filter_8.svg b/html/matt-chat/uswds/img/material-icons/filter_8.svg
new file mode 100644
index 0000000..ee97a76
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/filter_8.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm18-4H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14zm-8-2h2a2 2 0 0 0 2-2v-1.5c0-.83-.67-1.5-1.5-1.5.83 0 1.5-.67 1.5-1.5V7a2 2 0 0 0-2-2h-2a2 2 0 0 0-2 2v1.5c0 .83.67 1.5 1.5 1.5-.83 0-1.5.67-1.5 1.5V13a2 2 0 0 0 2 2zm0-8h2v2h-2V7zm0 4h2v2h-2v-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/filter_9.svg b/html/matt-chat/uswds/img/material-icons/filter_9.svg
new file mode 100644
index 0000000..29783ea
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/filter_9.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm18-4H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14zM15 5h-2a2 2 0 0 0-2 2v2a2 2 0 0 0 2 2h2v2h-4v2h4a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2zm0 4h-2V7h2v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/filter_9_plus.svg b/html/matt-chat/uswds/img/material-icons/filter_9_plus.svg
new file mode 100644
index 0000000..6435ecc
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/filter_9_plus.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm11 7V8a2 2 0 0 0-2-2h-1a2 2 0 0 0-2 2v1a2 2 0 0 0 2 2h1v1H9v2h3a2 2 0 0 0 2-2zm-3-3V8h1v1h-1zm10-8H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 8h-2V7h-2v2h-2v2h2v2h2v-2h2v6H7V3h14v6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/filter_alt.svg b/html/matt-chat/uswds/img/material-icons/filter_alt.svg
new file mode 100644
index 0000000..6dab644
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/filter_alt.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M4.25 5.61C6.27 8.2 10 13 10 13v6c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-6s3.72-4.8 5.74-7.39A.998.998 0 0 0 18.95 4H5.04c-.83 0-1.3.95-.79 1.61z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/filter_alt_off.svg b/html/matt-chat/uswds/img/material-icons/filter_alt_off.svg
new file mode 100644
index 0000000..3003894
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/filter_alt_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19.79 5.61A.998.998 0 0 0 19 4H6.83l7.97 7.97 4.99-6.36zM2.81 2.81 1.39 4.22 10 13v6c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-2.17l5.78 5.78 1.41-1.41L2.81 2.81z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/filter_b_and_w.svg b/html/matt-chat/uswds/img/material-icons/filter_b_and_w.svg
new file mode 100644
index 0000000..3dac0d4
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/filter_b_and_w.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16-7-8v8H5l7-8V5h7v14z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/filter_center_focus.svg b/html/matt-chat/uswds/img/material-icons/filter_center_focus.svg
new file mode 100644
index 0000000..c501264
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/filter_center_focus.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M5 15H3v4c0 1.1.9 2 2 2h4v-2H5v-4zM5 5h4V3H5c-1.1 0-2 .9-2 2v4h2V5zm14-2h-4v2h4v4h2V5c0-1.1-.9-2-2-2zm0 16h-4v2h4c1.1 0 2-.9 2-2v-4h-2v4zM12 9c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/filter_drama.svg b/html/matt-chat/uswds/img/material-icons/filter_drama.svg
new file mode 100644
index 0000000..9ba60e9
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/filter_drama.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19.35 10.04A7.49 7.49 0 0 0 12 4a7.48 7.48 0 0 0-6.64 4.04A5.996 5.996 0 0 0 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM19 18H6c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4h2c0-2.76-1.86-5.08-4.4-5.78C8.61 6.88 10.2 6 12 6c3.03 0 5.5 2.47 5.5 5.5v.5H19c1.65 0 3 1.35 3 3s-1.35 3-3 3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/filter_frames.svg b/html/matt-chat/uswds/img/material-icons/filter_frames.svg
new file mode 100644
index 0000000..1332006
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/filter_frames.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 4h-4l-4-4-4 4H4c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 16H4V6h4.52l3.52-3.5L15.52 6H20v14zM18 8H6v10h12"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/filter_hdr.svg b/html/matt-chat/uswds/img/material-icons/filter_hdr.svg
new file mode 100644
index 0000000..a759b44
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/filter_hdr.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m14 6-3.75 5 2.85 3.8-1.6 1.2C9.81 13.75 7 10 7 10l-6 8h22L14 6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/filter_list.svg b/html/matt-chat/uswds/img/material-icons/filter_list.svg
new file mode 100644
index 0000000..972d401
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/filter_list.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10 18h4v-2h-4v2zM3 6v2h18V6H3zm3 7h12v-2H6v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/filter_list_off.svg b/html/matt-chat/uswds/img/material-icons/filter_list_off.svg
new file mode 100644
index 0000000..ee21fd6
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/filter_list_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10.83 8H21V6H8.83l2 2zm5 5H18v-2h-4.17l2 2zM14 16.83V18h-4v-2h3.17l-3-3H6v-2h2.17l-3-3H3V6h.17L1.39 4.22 2.8 2.81l18.38 18.38-1.41 1.41L14 16.83z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/filter_none.svg b/html/matt-chat/uswds/img/material-icons/filter_none.svg
new file mode 100644
index 0000000..36f86a3
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/filter_none.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm18-4H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/filter_tilt_shift.svg b/html/matt-chat/uswds/img/material-icons/filter_tilt_shift.svg
new file mode 100644
index 0000000..93e1d11
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/filter_tilt_shift.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11 4.07V2.05c-2.01.2-3.84 1-5.32 2.21L7.1 5.69A7.941 7.941 0 0 1 11 4.07zm7.32.19A9.949 9.949 0 0 0 13 2.05v2.02c1.46.18 2.79.76 3.9 1.62l1.42-1.43zM19.93 11h2.02c-.2-2.01-1-3.84-2.21-5.32L18.31 7.1a7.941 7.941 0 0 1 1.62 3.9zM5.69 7.1 4.26 5.68A9.949 9.949 0 0 0 2.05 11h2.02c.18-1.46.76-2.79 1.62-3.9zM4.07 13H2.05c.2 2.01 1 3.84 2.21 5.32l1.43-1.43A7.868 7.868 0 0 1 4.07 13zM15 12c0-1.66-1.34-3-3-3s-3 1.34-3 3 1.34 3 3 3 3-1.34 3-3zm3.31 4.9 1.43 1.43a9.981 9.981 0 0 0 2.21-5.32h-2.02a7.945 7.945 0 0 1-1.62 3.89zM13 19.93v2.02c2.01-.2 3.84-1 5.32-2.21l-1.43-1.43c-1.1.86-2.43 1.44-3.89 1.62zm-7.32-.19A9.981 9.981 0 0 0 11 21.95v-2.02a7.941 7.941 0 0 1-3.9-1.62l-1.42 1.43z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/filter_vintage.svg b/html/matt-chat/uswds/img/material-icons/filter_vintage.svg
new file mode 100644
index 0000000..afcd1ac
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/filter_vintage.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18.7 12.4a6.06 6.06 0 0 0-.86-.4c.29-.11.58-.24.86-.4a6.012 6.012 0 0 0 3-5.19 6.007 6.007 0 0 0-6 0c-.28.16-.54.35-.78.54.05-.31.08-.63.08-.95 0-2.22-1.21-4.15-3-5.19C10.21 1.85 9 3.78 9 6c0 .32.03.64.08.95-.24-.2-.5-.39-.78-.55a6.008 6.008 0 0 0-6 0 5.97 5.97 0 0 0 3 5.19c.28.16.57.29.86.4-.29.11-.58.24-.86.4a6.012 6.012 0 0 0-3 5.19 6.007 6.007 0 0 0 6 0c.28-.16.54-.35.78-.54-.05.32-.08.64-.08.96 0 2.22 1.21 4.15 3 5.19 1.79-1.04 3-2.97 3-5.19 0-.32-.03-.64-.08-.95.24.2.5.38.78.54a6.008 6.008 0 0 0 6 0 6.012 6.012 0 0 0-3-5.19zM12 16c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/find_in_page.svg b/html/matt-chat/uswds/img/material-icons/find_in_page.svg
new file mode 100644
index 0000000..eacc8e8
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/find_in_page.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 19.59V8l-6-6H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c.45 0 .85-.15 1.19-.4l-4.43-4.43c-.8.52-1.74.83-2.76.83-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5c0 1.02-.31 1.96-.83 2.75L20 19.59zM9 13c0 1.66 1.34 3 3 3s3-1.34 3-3-1.34-3-3-3-3 1.34-3 3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/find_replace.svg b/html/matt-chat/uswds/img/material-icons/find_replace.svg
new file mode 100644
index 0000000..29a7dbe
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/find_replace.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11 6c1.38 0 2.63.56 3.54 1.46L12 10h6V4l-2.05 2.05A6.976 6.976 0 0 0 11 4c-3.53 0-6.43 2.61-6.92 6H6.1A5 5 0 0 1 11 6zm5.64 9.14A6.89 6.89 0 0 0 17.92 12H15.9a5 5 0 0 1-4.9 4c-1.38 0-2.63-.56-3.54-1.46L10 12H4v6l2.05-2.05A6.976 6.976 0 0 0 11 18c1.55 0 2.98-.51 4.14-1.36L20 21.49 21.49 20l-4.85-4.86z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/fingerprint.svg b/html/matt-chat/uswds/img/material-icons/fingerprint.svg
new file mode 100644
index 0000000..31e2b19
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/fingerprint.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17.81 4.47c-.08 0-.16-.02-.23-.06C15.66 3.42 14 3 12.01 3c-1.98 0-3.86.47-5.57 1.41-.24.13-.54.04-.68-.2a.506.506 0 0 1 .2-.68C7.82 2.52 9.86 2 12.01 2c2.13 0 3.99.47 6.03 1.52.25.13.34.43.21.67a.49.49 0 0 1-.44.28zM3.5 9.72a.499.499 0 0 1-.41-.79c.99-1.4 2.25-2.5 3.75-3.27C9.98 4.04 14 4.03 17.15 5.65c1.5.77 2.76 1.86 3.75 3.25a.5.5 0 0 1-.12.7c-.23.16-.54.11-.7-.12a9.388 9.388 0 0 0-3.39-2.94c-2.87-1.47-6.54-1.47-9.4.01-1.36.7-2.5 1.7-3.4 2.96-.08.14-.23.21-.39.21zm6.25 12.07a.47.47 0 0 1-.35-.15c-.87-.87-1.34-1.43-2.01-2.64-.69-1.23-1.05-2.73-1.05-4.34 0-2.97 2.54-5.39 5.66-5.39s5.66 2.42 5.66 5.39c0 .28-.22.5-.5.5s-.5-.22-.5-.5c0-2.42-2.09-4.39-4.66-4.39-2.57 0-4.66 1.97-4.66 4.39 0 1.44.32 2.77.93 3.85.64 1.15 1.08 1.64 1.85 2.42.19.2.19.51 0 .71-.11.1-.24.15-.37.15zm7.17-1.85c-1.19 0-2.24-.3-3.1-.89-1.49-1.01-2.38-2.65-2.38-4.39 0-.28.22-.5.5-.5s.5.22.5.5c0 1.41.72 2.74 1.94 3.56.71.48 1.54.71 2.54.71.24 0 .64-.03 1.04-.1.27-.05.53.13.58.41.05.27-.13.53-.41.58-.57.11-1.07.12-1.21.12zM14.91 22c-.04 0-.09-.01-.13-.02-1.59-.44-2.63-1.03-3.72-2.1a7.297 7.297 0 0 1-2.17-5.22c0-1.62 1.38-2.94 3.08-2.94 1.7 0 3.08 1.32 3.08 2.94 0 1.07.93 1.94 2.08 1.94s2.08-.87 2.08-1.94c0-3.77-3.25-6.83-7.25-6.83-2.84 0-5.44 1.58-6.61 4.03-.39.81-.59 1.76-.59 2.8 0 .78.07 2.01.67 3.61.1.26-.03.55-.29.64-.26.1-.55-.04-.64-.29a11.14 11.14 0 0 1-.73-3.96c0-1.2.23-2.29.68-3.24 1.33-2.79 4.28-4.6 7.51-4.6 4.55 0 8.25 3.51 8.25 7.83 0 1.62-1.38 2.94-3.08 2.94s-3.08-1.32-3.08-2.94c0-1.07-.93-1.94-2.08-1.94s-2.08.87-2.08 1.94c0 1.71.66 3.31 1.87 4.51.95.94 1.86 1.46 3.27 1.85.27.07.42.35.35.61-.05.23-.26.38-.47.38z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/fire_extinguisher.svg b/html/matt-chat/uswds/img/material-icons/fire_extinguisher.svg
new file mode 100644
index 0000000..fcce915
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/fire_extinguisher.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M7 19h10v1c0 1.1-.9 2-2 2H9c-1.1 0-2-.9-2-2v-1zm0-1h10v-5H7v5zM17 3v6l-3.15-.66c-.01 0-.01.01-.02.02 1.55.62 2.72 1.98 3.07 3.64H7.1c.34-1.66 1.52-3.02 3.07-3.64-.33-.26-.6-.58-.8-.95L5 6.5v-1l4.37-.91C9.87 3.65 10.86 3 12 3c.7 0 1.34.25 1.85.66L17 3zm-4 3c-.03-.59-.45-1-1-1s-1 .45-1 1 .45 1 1 1 1-.45 1-1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/fire_hydrant_alt.svg b/html/matt-chat/uswds/img/material-icons/fire_hydrant_alt.svg
new file mode 100644
index 0000000..ddd0d51
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/fire_hydrant_alt.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 11h-1V8h2V6h-2.35a5.99 5.99 0 0 0-11.3 0H4v2h2v3H5c-1.1 0-2 .9-2 2v2c0 1.1.9 2 2 2h1v3H4v2h16v-2h-2v-3h1c1.1 0 2-.9 2-2v-2c0-1.1-.9-2-2-2zm-7 6.5c-1.93 0-3.5-1.57-3.5-3.5s1.57-3.5 3.5-3.5 3.5 1.57 3.5 3.5-1.57 3.5-3.5 3.5z"/><circle cx="12" cy="14" r="1.5"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/fire_truck.svg b/html/matt-chat/uswds/img/material-icons/fire_truck.svg
new file mode 100644
index 0000000..09353c3
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/fire_truck.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m22.9 10.69-1.44-4.32A2.01 2.01 0 0 0 19.56 5H19V4c0-.55-.45-1-1-1h-1c-.55 0-1 .45-1 1v1h-2c-1.1 0-2 .9-2 2v4H1v5c0 1.1.9 2 2 2h1c0 1.66 1.34 3 3 3s3-1.34 3-3h4c0 1.66 1.34 3 3 3s3-1.34 3-3h3v-6.68c0-.21-.03-.42-.1-.63zM7 19c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm10 0c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm-3-8V7h5.56l1.33 4H14z"/><path d="M11 8.5h-1v-2h1V5H1v1.5h1v2H1V10h10V8.5zm-5.75 0H3.5v-2h1.75v2zm3.25 0H6.75v-2H8.5v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/fireplace.svg b/html/matt-chat/uswds/img/material-icons/fireplace.svg
new file mode 100644
index 0000000..691ff98
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/fireplace.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M2 2v20h20V2H2zm9.86 14.96c.76-.24 1.4-1.04 1.53-1.63.13-.56-.1-1.05-.2-1.6-.08-.46-.07-.85.08-1.28.54 1.21 2.15 1.64 1.98 3.18-.19 1.7-2.11 2.38-3.39 1.33zM20 20h-2v-2h-2.02A4.98 4.98 0 0 0 17 15c0-1.89-1.09-2.85-1.85-3.37C12.2 9.61 13 7 13 7c-6.73 3.57-6.02 7.47-6 8 .03.96.49 2.07 1.23 3H6v2H4V4h16v16z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/first_page.svg b/html/matt-chat/uswds/img/material-icons/first_page.svg
new file mode 100644
index 0000000..81a0845
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/first_page.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18.41 16.59 13.82 12l4.59-4.59L17 6l-6 6 6 6zM6 6h2v12H6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/fit_screen.svg b/html/matt-chat/uswds/img/material-icons/fit_screen.svg
new file mode 100644
index 0000000..e8a07e7
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/fit_screen.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 4h3c1.1 0 2 .9 2 2v2h-2V6h-3V4zM4 8V6h3V4H4c-1.1 0-2 .9-2 2v2h2zm16 8v2h-3v2h3c1.1 0 2-.9 2-2v-2h-2zM7 18H4v-2H2v2c0 1.1.9 2 2 2h3v-2zM18 8H6v8h12V8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/fitbit.svg b/html/matt-chat/uswds/img/material-icons/fitbit.svg
new file mode 100644
index 0000000..6bafda0
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/fitbit.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19.89 13.89c1.04 0 1.89-.85 1.89-1.89s-.85-1.89-1.89-1.89S18 10.96 18 12s.85 1.89 1.89 1.89zm-4.24-.21c.93 0 1.68-.75 1.68-1.68s-.75-1.68-1.68-1.68c-.93 0-1.68.75-1.68 1.68s.75 1.68 1.68 1.68zm0-4.26c.93 0 1.68-.75 1.68-1.68 0-.93-.75-1.68-1.68-1.68-.93 0-1.68.75-1.68 1.68 0 .93.75 1.68 1.68 1.68zm0 8.51c.93 0 1.68-.75 1.68-1.68 0-.93-.75-1.68-1.68-1.68-.93 0-1.68.75-1.68 1.68 0 .92.75 1.68 1.68 1.68zm-4.24-4.46c.81 0 1.47-.66 1.47-1.47s-.66-1.47-1.47-1.47c-.81 0-1.47.66-1.47 1.47s.65 1.47 1.47 1.47zm0-4.26c.81 0 1.47-.66 1.47-1.47s-.66-1.47-1.47-1.47c-.81 0-1.47.66-1.47 1.47s.65 1.47 1.47 1.47zm0 8.52c.81 0 1.47-.66 1.47-1.47 0-.81-.66-1.47-1.47-1.47-.81 0-1.47.66-1.47 1.47-.01.81.65 1.47 1.47 1.47zm0 4.27c.81 0 1.47-.66 1.47-1.47 0-.81-.66-1.47-1.47-1.47-.81 0-1.47.66-1.47 1.47-.01.81.65 1.47 1.47 1.47zm0-17.06c.81 0 1.47-.66 1.47-1.47S12.22 2 11.41 2c-.81 0-1.47.66-1.47 1.47s.65 1.47 1.47 1.47zm-4.25 8.32c.7 0 1.26-.57 1.26-1.26s-.57-1.26-1.26-1.26a1.261 1.261 0 0 0 0 2.52zm0 4.25a1.261 1.261 0 0 0 0-2.52 1.261 1.261 0 0 0 0 2.52zm0-8.49a1.261 1.261 0 0 0 0-2.52 1.261 1.261 0 0 0 0 2.52zm-3.87 4.03a1.05 1.05 0 1 0 0-2.1 1.05 1.05 0 0 0 0 2.1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/fitness_center.svg b/html/matt-chat/uswds/img/material-icons/fitness_center.svg
new file mode 100644
index 0000000..33172ec
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/fitness_center.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20.57 14.86 22 13.43 20.57 12 17 15.57 8.43 7 12 3.43 10.57 2 9.14 3.43 7.71 2 5.57 4.14 4.14 2.71 2.71 4.14l1.43 1.43L2 7.71l1.43 1.43L2 10.57 3.43 12 7 8.43 15.57 17 12 20.57 13.43 22l1.43-1.43L16.29 22l2.14-2.14 1.43 1.43 1.43-1.43-1.43-1.43L22 16.29z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/flag.svg b/html/matt-chat/uswds/img/material-icons/flag.svg
new file mode 100644
index 0000000..6740057
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/flag.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M14.4 6 14 4H5v17h2v-7h5.6l.4 2h7V6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/flag_circle.svg b/html/matt-chat/uswds/img/material-icons/flag_circle.svg
new file mode 100644
index 0000000..796f2b5
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/flag_circle.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm6 13h-5l-1-2H9.5v5H8V7h6l1 2h3v6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/flaky.svg b/html/matt-chat/uswds/img/material-icons/flaky.svg
new file mode 100644
index 0000000..3db691b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/flaky.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill-rule="evenodd" d="m14.05 17.58-.01.01-2.4-2.4 1.06-1.06 1.35 1.35L16.54 13l1.06 1.06-3.54 3.54-.01-.02zM12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2zM7.34 6.28l1.41 1.41 1.41-1.41 1.06 1.06-1.41 1.41 1.41 1.41-1.06 1.06-1.41-1.41-1.41 1.41-1.06-1.06 1.41-1.41-1.41-1.41 1.06-1.06zM12 20c-2.2 0-4.2-.9-5.7-2.3L17.7 6.3C19.1 7.8 20 9.8 20 12c0 4.4-3.6 8-8 8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/flare.svg b/html/matt-chat/uswds/img/material-icons/flare.svg
new file mode 100644
index 0000000..7d6e177
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/flare.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M7 11H1v2h6v-2zm2.17-3.24L7.05 5.64 5.64 7.05l2.12 2.12 1.41-1.41zM13 1h-2v6h2V1zm5.36 6.05-1.41-1.41-2.12 2.12 1.41 1.41 2.12-2.12zM17 11v2h6v-2h-6zm-5-2c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3zm2.83 7.24 2.12 2.12 1.41-1.41-2.12-2.12-1.41 1.41zm-9.19.71 1.41 1.41 2.12-2.12-1.41-1.41-2.12 2.12zM11 23h2v-6h-2v6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/flash_auto.svg b/html/matt-chat/uswds/img/material-icons/flash_auto.svg
new file mode 100644
index 0000000..beeccfd
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/flash_auto.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 2v12h3v9l7-12H9l4-9H3zm16 0h-2l-3.2 9h1.9l.7-2h3.2l.7 2h1.9L19 2zm-2.15 5.65L18 4l1.15 3.65h-2.3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/flash_off.svg b/html/matt-chat/uswds/img/material-icons/flash_off.svg
new file mode 100644
index 0000000..1a72b0e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/flash_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3.27 3 2 4.27l5 5V13h3v9l3.58-6.14L17.73 20 19 18.73 3.27 3zM17 10h-4l4-8H7v2.18l8.46 8.46L17 10z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/flash_on.svg b/html/matt-chat/uswds/img/material-icons/flash_on.svg
new file mode 100644
index 0000000..e948043
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/flash_on.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M7 2v11h3v9l7-12h-4l4-8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/flashlight_off.svg b/html/matt-chat/uswds/img/material-icons/flashlight_off.svg
new file mode 100644
index 0000000..45707e7
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/flashlight_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 5V2H6v1.17L7.83 5zm-2 6 2-3V7H9.83L16 13.17zM2.81 2.81 1.39 4.22 8 10.83V22h8v-3.17l3.78 3.78 1.41-1.41L2.81 2.81z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/flashlight_on.svg b/html/matt-chat/uswds/img/material-icons/flashlight_on.svg
new file mode 100644
index 0000000..f57b884
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/flashlight_on.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M6 2h12v3H6zm0 5v1l2 3v11h8V11l2-3V7H6zm6 8.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/flatware.svg b/html/matt-chat/uswds/img/material-icons/flatware.svg
new file mode 100644
index 0000000..29749f8
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/flatware.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16 7.08c0 1.77-.84 3.25-2 3.82V21h-2V10.9c-1.16-.57-2-2.05-2-3.82C10.01 4.83 11.35 3 13 3c1.66 0 3 1.83 3 4.08zM17 3v18h2v-8h2V7c0-1.76-1.24-4-4-4zM8.28 3c-.4 0-.72.32-.72.72V7h-.84V3.72C6.72 3.32 6.4 3 6 3s-.72.32-.72.72V7h-.84V3.72c0-.4-.32-.72-.72-.72S3 3.32 3 3.72V9c0 1.1.9 2 2 2v10h2V11c1.1 0 2-.9 2-2V3.72c0-.4-.32-.72-.72-.72z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/flight.svg b/html/matt-chat/uswds/img/material-icons/flight.svg
new file mode 100644
index 0000000..2fe1dea
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/flight.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 16v-2l-8-5V3.5c0-.83-.67-1.5-1.5-1.5S10 2.67 10 3.5V9l-8 5v2l8-2.5V19l-2 1.5V22l3.5-1 3.5 1v-1.5L13 19v-5.5l8 2.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/flight_class.svg b/html/matt-chat/uswds/img/material-icons/flight_class.svg
new file mode 100644
index 0000000..b1c5b5c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/flight_class.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16 4h-2c-1.1 0-2 .9-2 2v5c0 1.1.9 2 2 2h2c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zM9.5 16H18v2H9.49c-.88 0-1.66-.58-1.92-1.43L5 8V4h2v4l2.5 8zM8 19h10v2H8v-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/flight_land.svg b/html/matt-chat/uswds/img/material-icons/flight_land.svg
new file mode 100644
index 0000000..0c0412a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/flight_land.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M2.5 19h19v2h-19v-2zm16.84-3.15c.8.21 1.62-.26 1.84-1.06.21-.8-.26-1.62-1.06-1.84l-5.31-1.42-2.76-9.02L10.12 2v8.28L5.15 8.95l-.93-2.32-1.45-.39v5.17l16.57 4.44z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/flight_takeoff.svg b/html/matt-chat/uswds/img/material-icons/flight_takeoff.svg
new file mode 100644
index 0000000..3ad506b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/flight_takeoff.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M2.5 19h19v2h-19v-2zm19.57-9.36c-.21-.8-1.04-1.28-1.84-1.06L14.92 10l-6.9-6.43-1.93.51 4.14 7.17-4.97 1.33-1.97-1.54-1.45.39 2.59 4.49s7.12-1.9 16.57-4.43c.81-.23 1.28-1.05 1.07-1.85z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/flip.svg b/html/matt-chat/uswds/img/material-icons/flip.svg
new file mode 100644
index 0000000..4131540
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/flip.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15 21h2v-2h-2v2zm4-12h2V7h-2v2zM3 5v14c0 1.1.9 2 2 2h4v-2H5V5h4V3H5c-1.1 0-2 .9-2 2zm16-2v2h2c0-1.1-.9-2-2-2zm-8 20h2V1h-2v22zm8-6h2v-2h-2v2zM15 5h2V3h-2v2zm4 8h2v-2h-2v2zm0 8c1.1 0 2-.9 2-2h-2v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/flip_camera_android.svg b/html/matt-chat/uswds/img/material-icons/flip_camera_android.svg
new file mode 100644
index 0000000..9031b5f
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/flip_camera_android.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M9 12c0 1.66 1.34 3 3 3s3-1.34 3-3-1.34-3-3-3-3 1.34-3 3z"/><path d="M8 10V8H5.09C6.47 5.61 9.05 4 12 4c3.72 0 6.85 2.56 7.74 6h2.06c-.93-4.56-4.96-8-9.8-8-3.27 0-6.18 1.58-8 4.01V4H2v6h6zm8 4v2h2.91c-1.38 2.39-3.96 4-6.91 4-3.72 0-6.85-2.56-7.74-6H2.2c.93 4.56 4.96 8 9.8 8 3.27 0 6.18-1.58 8-4.01V20h2v-6h-6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/flip_camera_ios.svg b/html/matt-chat/uswds/img/material-icons/flip_camera_ios.svg
new file mode 100644
index 0000000..d884743
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/flip_camera_ios.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 5h-3.17L15 3H9L7.17 5H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm-8 13c-2.76 0-5-2.24-5-5H5l2.5-2.5L10 13H8c0 2.21 1.79 4 4 4 .58 0 1.13-.13 1.62-.35l.74.74c-.71.37-1.5.61-2.36.61zm4.5-2.5L14 13h2c0-2.21-1.79-4-4-4-.58 0-1.13.13-1.62.35l-.74-.73C10.35 8.24 11.14 8 12 8c2.76 0 5 2.24 5 5h2l-2.5 2.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/flip_to_back.svg b/html/matt-chat/uswds/img/material-icons/flip_to_back.svg
new file mode 100644
index 0000000..9628721
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/flip_to_back.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M9 7H7v2h2V7zm0 4H7v2h2v-2zm0-8a2 2 0 0 0-2 2h2V3zm4 12h-2v2h2v-2zm6-12v2h2c0-1.1-.9-2-2-2zm-6 0h-2v2h2V3zM9 17v-2H7a2 2 0 0 0 2 2zm10-4h2v-2h-2v2zm0-4h2V7h-2v2zm0 8c1.1 0 2-.9 2-2h-2v2zM5 7H3v12a2 2 0 0 0 2 2h12v-2H5V7zm10-2h2V3h-2v2zm0 12h2v-2h-2v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/flip_to_front.svg b/html/matt-chat/uswds/img/material-icons/flip_to_front.svg
new file mode 100644
index 0000000..e61f38c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/flip_to_front.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 13h2v-2H3v2zm0 4h2v-2H3v2zm2 4v-2H3a2 2 0 0 0 2 2zM3 9h2V7H3v2zm12 12h2v-2h-2v2zm4-18H9a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h10c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 12H9V5h10v10zm-8 6h2v-2h-2v2zm-4 0h2v-2H7v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/flood.svg b/html/matt-chat/uswds/img/material-icons/flood.svg
new file mode 100644
index 0000000..f888e16
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/flood.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18.67 19c-1.95 0-2.09 1-3.33 1-1.19 0-1.42-1-3.33-1-1.95 0-2.1 1-3.34 1-1.24 0-1.38-1-3.33-1-1.95 0-2.1 1-3.34 1v2c1.95 0 2.11-1 3.34-1 1.24 0 1.38 1 3.33 1 1.95 0 2.1-1 3.34-1 1.22 0 1.4 1 3.33 1 1.93 0 2.1-1 3.33-1 1.22 0 1.4 1 3.33 1v-2c-1.24 0-1.38-1-3.33-1zm-9.99-1.5c1.95 0 2.09-1 3.33-1 1.19 0 1.42 1 3.33 1 1.95 0 2.09-1 3.33-1 1.19 0 1.4.98 3.31 1v-2c-.63 0-1-.28-1.48-.55l-2.02-7.53 2.09.85.74-1.86L9.78 2 2 11.61l1.57 1.23 1.39-1.78.93 3.48c-.18-.02-.35-.05-.56-.05-1.95 0-2.09 1-3.33 1v2c1.9 0 2.17-1 3.35-1 1.19.01 1.42 1.01 3.33 1.01zm5.36-7.32 1.42 5.31c-1.34.09-1.47-.99-3.47-.99-.36 0-.65.04-.91.1l-.91-3.39 3.87-1.03z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/fluorescent.svg b/html/matt-chat/uswds/img/material-icons/fluorescent.svg
new file mode 100644
index 0000000..129f2c5
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/fluorescent.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M5 9h14v6H5zm6-7h2v3h-2zm6.286 4.399 1.79-1.803 1.42 1.41-1.79 1.802zM11 19h2v3h-2zm6.29-1.29 1.79 1.8 1.42-1.42-1.8-1.79zM3.495 6.01l1.407-1.408L6.69 6.391 5.284 7.798zm-.003 12.066 1.803-1.79 1.409 1.42-1.803 1.79z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/flutter_dash.svg b/html/matt-chat/uswds/img/material-icons/flutter_dash.svg
new file mode 100644
index 0000000..5afefe0
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/flutter_dash.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11.07 11.7c.29-.39.81-.56 1.27-.37.17.07.32.18.43.33.22.28.25.59.22.85-.05.33-.25.63-.54.79 0 0-4.87 2.95-5.07 2.69s3.69-4.29 3.69-4.29zM22 10c0 2.5-1 3-1.5 3-.23 0-.44-.1-.62-.26-.48 3.32-2.36 5.31-5.33 5.99.11.44.48.77.95.77h.58c.22 0 .41.15.48.36.17.52.66 1.02 1.02 1.32.25.21.24.59-.03.78-.34.24-.9.49-1.79.53a.501.501 0 0 1-.45-.22c-.13-.2-.31-.56-.31-1.01 0-.3.04-.57.09-.8-.78-.16-1.39-.78-1.55-1.56-.49.06-1 .1-1.54.1-.88 0-1.7-.09-2.45-.25-.02.08-.05.16-.05.25 0 .55.45 1 1 1h.58c.22 0 .41.15.48.36.17.52.66 1.02 1.02 1.32.25.21.24.59-.03.78-.34.24-.9.49-1.79.53a.501.501 0 0 1-.45-.22c-.13-.2-.31-.56-.31-1.01 0-.3.04-.57.09-.8-.9-.19-1.59-1-1.59-1.96 0-.18.03-.36.08-.53-2.46-.86-4.03-2.78-4.46-5.74-.18.17-.38.27-.62.27C3 13 2 12.5 2 10c0-2.27 1.7-4.5 3-4.5.43 0 .49.49.5.85a7.989 7.989 0 0 1 5.55-3.29c.2-.96 1.08-1.56 1.95-1.56v1s.33-.5 1-.5c.67 0 1 .5 1 .5-.49 0-.85.35-.96.77 1.82.48 3.39 1.59 4.46 3.08.01-.36.07-.85.5-.85 1.3 0 3 2.23 3 4.5zM5 11c0 .81.1 1.53.25 2.21.18-.69.46-1.33.83-1.92a3.77 3.77 0 0 1-.34-1.54A3.766 3.766 0 0 1 9.5 6c.96 0 1.84.37 2.5.97.66-.6 1.54-.97 2.5-.97 2.07 0 3.75 1.68 3.75 3.75 0 .55-.12 1.07-.34 1.54.37.59.66 1.24.84 1.94.15-.68.25-1.41.25-2.23 0-3.86-3.14-7-7-7s-7 3.14-7 7zm12.98 4.29c0-.1.02-.19.02-.29 0-1.01-.26-1.95-.7-2.78-.69.78-1.68 1.28-2.8 1.28-.27 0-.54-.03-.79-.09.14-.23.23-.49.27-.77.01-.07.01-.13.02-.19.17.03.33.05.5.05 1.52 0 2.75-1.23 2.75-2.75S16.02 7 14.5 7c-.67 0-1.32.25-1.83.72l-.67.6-.67-.6C10.82 7.25 10.17 7 9.5 7 7.98 7 6.75 8.23 6.75 9.75c0 1.34.96 2.46 2.23 2.7l-.76.83c-.6-.22-1.12-.59-1.53-1.05A6.01 6.01 0 0 0 6 15c0 .08.01.15.01.24C7.13 17.06 9.14 18 12 18c2.88 0 4.88-.91 5.98-2.71zM16 9.75c0 .97-.67 1.75-1.5 1.75S13 10.72 13 9.75 13.67 8 14.5 8s1.5.78 1.5 1.75zm-.75-.87c0-.21-.17-.38-.38-.38s-.37.17-.37.38.17.38.38.38.37-.18.37-.38zM11 9.75c0 .97-.67 1.75-1.5 1.75S8 10.72 8 9.75 8.67 8 9.5 8s1.5.78 1.5 1.75zm-.75-.87c0-.21-.17-.38-.38-.38s-.37.17-.37.38.17.38.38.38.37-.18.37-.38z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/fmd_bad.svg b/html/matt-chat/uswds/img/material-icons/fmd_bad.svg
new file mode 100644
index 0000000..4ee4e9a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/fmd_bad.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2c-4.2 0-8 3.22-8 8.2 0 3.32 2.67 7.25 8 11.8 5.33-4.55 8-8.48 8-11.8C20 5.22 16.2 2 12 2zm1 13h-2v-2h2v2zm0-4h-2V6h2v5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/fmd_good.svg b/html/matt-chat/uswds/img/material-icons/fmd_good.svg
new file mode 100644
index 0000000..d7761d7
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/fmd_good.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2c-4.2 0-8 3.22-8 8.2 0 3.32 2.67 7.25 8 11.8 5.33-4.55 8-8.48 8-11.8C20 5.22 16.2 2 12 2zm0 10c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/folder.svg b/html/matt-chat/uswds/img/material-icons/folder.svg
new file mode 100644
index 0000000..e70b01c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/folder.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2h-8l-2-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/folder_copy.svg b/html/matt-chat/uswds/img/material-icons/folder_copy.svg
new file mode 100644
index 0000000..9313b4f
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/folder_copy.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 6H1v13c0 1.1.9 2 2 2h17v-2H3V6z"/><path d="M21 4h-7l-2-2H7c-1.1 0-1.99.9-1.99 2L5 15c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/folder_delete.svg b/html/matt-chat/uswds/img/material-icons/folder_delete.svg
new file mode 100644
index 0000000..b813aa4
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/folder_delete.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M22 8v10c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2l.01-12c0-1.1.89-2 1.99-2h6l2 2h8c1.1 0 2 .9 2 2zm-5.5 2V9h-2v1H12v1.5h1v4c0 .83.67 1.5 1.5 1.5h2c.83 0 1.5-.67 1.5-1.5v-4h1V10h-2.5zm0 5.5h-2v-4h2v4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/folder_off.svg b/html/matt-chat/uswds/img/material-icons/folder_off.svg
new file mode 100644
index 0000000..c5457cb
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/folder_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 6h-8l-2-2H6.83l14.93 14.93c.15-.28.24-.59.24-.93V8c0-1.1-.9-2-2-2zM2.1 2.1.69 3.51l1.56 1.56c-.15.28-.24.59-.24.93L2 18c0 1.1.9 2 2 2h13.17l3.31 3.31 1.41-1.41L2.1 2.1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/folder_open.svg b/html/matt-chat/uswds/img/material-icons/folder_open.svg
new file mode 100644
index 0000000..0f59689
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/folder_open.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 6h-8l-2-2H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm0 12H4V8h16v10z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/folder_shared.svg b/html/matt-chat/uswds/img/material-icons/folder_shared.svg
new file mode 100644
index 0000000..348100e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/folder_shared.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 6h-8l-2-2H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm-5 3c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2zm4 8h-8v-1c0-1.33 2.67-2 4-2s4 .67 4 2v1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/folder_special.svg b/html/matt-chat/uswds/img/material-icons/folder_special.svg
new file mode 100644
index 0000000..adccedd
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/folder_special.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 6h-8l-2-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm-2.06 11L15 15.28 12.06 17l.78-3.33-2.59-2.24 3.41-.29L15 8l1.34 3.14 3.41.29-2.59 2.24.78 3.33z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/folder_zip.svg b/html/matt-chat/uswds/img/material-icons/folder_zip.svg
new file mode 100644
index 0000000..1fa6401
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/folder_zip.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 6h-8l-2-2H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm-2 6h-2v2h2v2h-2v2h-2v-2h2v-2h-2v-2h2v-2h-2V8h2v2h2v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/follow_the_signs.svg b/html/matt-chat/uswds/img/material-icons/follow_the_signs.svg
new file mode 100644
index 0000000..65d5ef5
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/follow_the_signs.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M9.5 5.5c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zM5.75 8.9 3 23h2.1l1.75-8L9 17v6h2v-7.55L8.95 13.4l.6-3C10.85 12 12.8 13 15 13v-2c-1.85 0-3.45-1-4.35-2.45l-.95-1.6C9.35 6.35 8.7 6 8 6c-.25 0-.5.05-.75.15L2 8.3V13h2V9.65l1.75-.75M13 2v7h3.75v14h1.5V9H22V2h-9zm5.01 6V6.25H14.5v-1.5h3.51V3l2.49 2.5L18.01 8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/font_download.svg b/html/matt-chat/uswds/img/material-icons/font_download.svg
new file mode 100644
index 0000000..b9707e5
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/font_download.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" baseProfile="tiny" viewBox="0 0 24 24"><path d="M9.93 13.5h4.14L12 7.98zM20 2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-4.05 16.5-1.14-3H9.17l-1.12 3H5.96l5.11-13h1.86l5.11 13h-2.09z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/font_download_off.svg b/html/matt-chat/uswds/img/material-icons/font_download_off.svg
new file mode 100644
index 0000000..766725a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/font_download_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m12.58 9.75-.87-.87.23-.66h.1l.54 1.53zm-2.23-2.23L10.92 6h2.14l2.55 6.79L22 19.17V4c0-1.1-.9-2-2-2H4.83l5.52 5.52zm10.14 15.79L19.17 22H4c-1.1 0-2-.9-2-2V4.83L.69 3.51 2.1 2.1l19.8 19.8-1.41 1.41zm-8.39-8.38-3.3-3.3L6.41 18h2.08l1.09-3.07h2.52z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/food_bank.svg b/html/matt-chat/uswds/img/material-icons/food_bank.svg
new file mode 100644
index 0000000..cf57e0c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/food_bank.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 3 4 9v12h16V9l-8-6zm.5 9.5c0 .83-.67 1.5-1.5 1.5v4h-1v-4c-.83 0-1.5-.67-1.5-1.5v-3h1v3h.5v-3h1v3h.5v-3h1v3zM15 18h-1v-3.5h-1v-3c0-1.1.9-2 2-2V18z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/forest.svg b/html/matt-chat/uswds/img/material-icons/forest.svg
new file mode 100644
index 0000000..fc24931
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/forest.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16 12 9 2 2 12h1.86L0 18h7v4h4v-4h7l-3.86-6z"/><path d="M20.14 12H22L15 2l-2.39 3.41L17.92 13h-1.95l3.22 5H24zM13 19h4v3h-4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/fork_left.svg b/html/matt-chat/uswds/img/material-icons/fork_left.svg
new file mode 100644
index 0000000..700528e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/fork_left.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M9.41 15.59 8 17l-4-4 4-4 1.41 1.41L7.83 12c1.51-.33 3.73.08 5.17 1.36V6.83l-1.59 1.59L10 7l4-4 4 4-1.41 1.41L15 6.83V21h-2v-4c-.73-2.58-3.07-3.47-5.17-3l1.58 1.59z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/fork_right.svg b/html/matt-chat/uswds/img/material-icons/fork_right.svg
new file mode 100644
index 0000000..e870f3b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/fork_right.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M14.59 15.59 16 17l4-4-4-4-1.41 1.41L16.17 12c-1.51-.33-3.73.08-5.17 1.36V6.83l1.59 1.59L14 7l-4-4-4 4 1.41 1.41L9 6.83V21h2v-4c.73-2.58 3.07-3.47 5.17-3l-1.58 1.59z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/format_align_center.svg b/html/matt-chat/uswds/img/material-icons/format_align_center.svg
new file mode 100644
index 0000000..82214e6
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/format_align_center.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M7 15v2h10v-2H7zm-4 6h18v-2H3v2zm0-8h18v-2H3v2zm4-6v2h10V7H7zM3 3v2h18V3H3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/format_align_justify.svg b/html/matt-chat/uswds/img/material-icons/format_align_justify.svg
new file mode 100644
index 0000000..3dd6fed
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/format_align_justify.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 21h18v-2H3v2zm0-4h18v-2H3v2zm0-4h18v-2H3v2zm0-4h18V7H3v2zm0-6v2h18V3H3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/format_align_left.svg b/html/matt-chat/uswds/img/material-icons/format_align_left.svg
new file mode 100644
index 0000000..77d7810
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/format_align_left.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15 15H3v2h12v-2zm0-8H3v2h12V7zM3 13h18v-2H3v2zm0 8h18v-2H3v2zM3 3v2h18V3H3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/format_align_right.svg b/html/matt-chat/uswds/img/material-icons/format_align_right.svg
new file mode 100644
index 0000000..a786d99
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/format_align_right.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 21h18v-2H3v2zm6-4h12v-2H9v2zm-6-4h18v-2H3v2zm6-4h12V7H9v2zM3 3v2h18V3H3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/format_bold.svg b/html/matt-chat/uswds/img/material-icons/format_bold.svg
new file mode 100644
index 0000000..2b7d0f1
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/format_bold.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15.6 10.79c.97-.67 1.65-1.77 1.65-2.79 0-2.26-1.75-4-4-4H7v14h7.04c2.09 0 3.71-1.7 3.71-3.79 0-1.52-.86-2.82-2.15-3.42zM10 6.5h3c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5h-3v-3zm3.5 9H10v-3h3.5c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/format_clear.svg b/html/matt-chat/uswds/img/material-icons/format_clear.svg
new file mode 100644
index 0000000..b514117
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/format_clear.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3.27 5 2 6.27l6.97 6.97L6.5 19h3l1.57-3.66L16.73 21 18 19.73 3.55 5.27 3.27 5zM6 5v.18L8.82 8h2.4l-.72 1.68 2.1 2.1L14.21 8H20V5H6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/format_color_fill.svg b/html/matt-chat/uswds/img/material-icons/format_color_fill.svg
new file mode 100644
index 0000000..f5110a1
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/format_color_fill.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16.56 8.94 7.62 0 6.21 1.41l2.38 2.38-5.15 5.15a1.49 1.49 0 0 0 0 2.12l5.5 5.5c.29.29.68.44 1.06.44s.77-.15 1.06-.44l5.5-5.5c.59-.58.59-1.53 0-2.12zM5.21 10 10 5.21 14.79 10H5.21zM19 11.5s-2 2.17-2 3.5c0 1.1.9 2 2 2s2-.9 2-2c0-1.33-2-3.5-2-3.5zM2 20h20v4H2v-4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/format_color_reset.svg b/html/matt-chat/uswds/img/material-icons/format_color_reset.svg
new file mode 100644
index 0000000..4027103
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/format_color_reset.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 14c0-4-6-10.8-6-10.8s-1.33 1.51-2.73 3.52l8.59 8.59c.09-.42.14-.86.14-1.31zm-.88 3.12L12.5 12.5 5.27 5.27 4 6.55l3.32 3.32C6.55 11.32 6 12.79 6 14c0 3.31 2.69 6 6 6 1.52 0 2.9-.57 3.96-1.5l2.63 2.63 1.27-1.27-2.74-2.74z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/format_color_text.svg b/html/matt-chat/uswds/img/material-icons/format_color_text.svg
new file mode 100644
index 0000000..f273e07
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/format_color_text.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M2 20h20v4H2v-4zm3.49-3h2.42l1.27-3.58h5.65L16.09 17h2.42L13.25 3h-2.5L5.49 17zm4.42-5.61 2.03-5.79h.12l2.03 5.79H9.91z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/format_indent_decrease.svg b/html/matt-chat/uswds/img/material-icons/format_indent_decrease.svg
new file mode 100644
index 0000000..d91bee1
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/format_indent_decrease.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11 17h10v-2H11v2zm-8-5 4 4V8l-4 4zm0 9h18v-2H3v2zM3 3v2h18V3H3zm8 6h10V7H11v2zm0 4h10v-2H11v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/format_indent_increase.svg b/html/matt-chat/uswds/img/material-icons/format_indent_increase.svg
new file mode 100644
index 0000000..d46f676
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/format_indent_increase.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 21h18v-2H3v2zM3 8v8l4-4-4-4zm8 9h10v-2H11v2zM3 3v2h18V3H3zm8 6h10V7H11v2zm0 4h10v-2H11v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/format_italic.svg b/html/matt-chat/uswds/img/material-icons/format_italic.svg
new file mode 100644
index 0000000..c8acbb8
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/format_italic.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10 4v3h2.21l-3.42 8H6v3h8v-3h-2.21l3.42-8H18V4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/format_line_spacing.svg b/html/matt-chat/uswds/img/material-icons/format_line_spacing.svg
new file mode 100644
index 0000000..ff11d3a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/format_line_spacing.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M6 7h2.5L5 3.5 1.5 7H4v10H1.5L5 20.5 8.5 17H6V7zm4-2v2h12V5H10zm0 14h12v-2H10v2zm0-6h12v-2H10v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/format_list_bulleted.svg b/html/matt-chat/uswds/img/material-icons/format_list_bulleted.svg
new file mode 100644
index 0000000..4beb2cd
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/format_list_bulleted.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M4 10.5c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm0-6c-.83 0-1.5.67-1.5 1.5S3.17 7.5 4 7.5 5.5 6.83 5.5 6 4.83 4.5 4 4.5zm0 12c-.83 0-1.5.68-1.5 1.5s.68 1.5 1.5 1.5 1.5-.68 1.5-1.5-.67-1.5-1.5-1.5zM7 19h14v-2H7v2zm0-6h14v-2H7v2zm0-8v2h14V5H7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/format_list_numbered.svg b/html/matt-chat/uswds/img/material-icons/format_list_numbered.svg
new file mode 100644
index 0000000..82f85bb
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/format_list_numbered.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M2 17h2v.5H3v1h1v.5H2v1h3v-4H2v1zm1-9h1V4H2v1h1v3zm-1 3h1.8L2 13.1v.9h3v-1H3.2L5 10.9V10H2v1zm5-6v2h14V5H7zm0 14h14v-2H7v2zm0-6h14v-2H7v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/format_list_numbered_rtl.svg b/html/matt-chat/uswds/img/material-icons/format_list_numbered_rtl.svg
new file mode 100644
index 0000000..09acd26
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/format_list_numbered_rtl.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 17h2v.5h-1v1h1v.5h-2v1h3v-4h-3zm1-9h1V4h-2v1h1zm-1 3h1.8L18 13.1v.9h3v-1h-1.8l1.8-2.1V10h-3zM2 5h14v2H2zm0 12h14v2H2zm0-6h14v2H2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/format_overline.svg b/html/matt-chat/uswds/img/material-icons/format_overline.svg
new file mode 100644
index 0000000..2f01828
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/format_overline.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3v2H5V3h14zm-7 4c-3.87 0-7 3.13-7 7s3.13 7 7 7 7-3.13 7-7-3.13-7-7-7zm0 11.5c-2.49 0-4.5-2.01-4.5-4.5S9.51 9.5 12 9.5s4.5 2.01 4.5 4.5-2.01 4.5-4.5 4.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/format_paint.svg b/html/matt-chat/uswds/img/material-icons/format_paint.svg
new file mode 100644
index 0000000..6d988b3
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/format_paint.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 4V3c0-.55-.45-1-1-1H5c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V6h1v4H9v11c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-9h8V4h-3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/format_quote.svg b/html/matt-chat/uswds/img/material-icons/format_quote.svg
new file mode 100644
index 0000000..9d8fa8b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/format_quote.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M6 17h3l2-4V7H5v6h3zm8 0h3l2-4V7h-6v6h3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/format_shapes.svg b/html/matt-chat/uswds/img/material-icons/format_shapes.svg
new file mode 100644
index 0000000..a14bb86
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/format_shapes.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M23 7V1h-6v2H7V1H1v6h2v10H1v6h6v-2h10v2h6v-6h-2V7h2zM3 3h2v2H3V3zm2 18H3v-2h2v2zm12-2H7v-2H5V7h2V5h10v2h2v10h-2v2zm4 2h-2v-2h2v2zM19 5V3h2v2h-2zm-5.27 9h-3.49l-.73 2H7.89l3.4-9h1.4l3.41 9h-1.63l-.74-2zm-3.04-1.26h2.61L12 8.91l-1.31 3.83z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/format_size.svg b/html/matt-chat/uswds/img/material-icons/format_size.svg
new file mode 100644
index 0000000..51d9371
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/format_size.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M9 4v3h5v12h3V7h5V4H9zm-6 8h3v7h3v-7h3V9H3v3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/format_strikethrough.svg b/html/matt-chat/uswds/img/material-icons/format_strikethrough.svg
new file mode 100644
index 0000000..1ce6765
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/format_strikethrough.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10 19h4v-3h-4v3zM5 4v3h5v3h4V7h5V4H5zM3 14h18v-2H3v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/format_textdirection_l_to_r.svg b/html/matt-chat/uswds/img/material-icons/format_textdirection_l_to_r.svg
new file mode 100644
index 0000000..30c9355
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/format_textdirection_l_to_r.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M9 10v5h2V4h2v11h2V4h2V2H9C6.79 2 5 3.79 5 6s1.79 4 4 4zm12 8-4-4v3H5v2h12v3l4-4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/format_textdirection_r_to_l.svg b/html/matt-chat/uswds/img/material-icons/format_textdirection_r_to_l.svg
new file mode 100644
index 0000000..7259c4e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/format_textdirection_r_to_l.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10 10v5h2V4h2v11h2V4h2V2h-8C7.79 2 6 3.79 6 6s1.79 4 4 4zm-2 7v-3l-4 4 4 4v-3h12v-2H8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/format_underlined.svg b/html/matt-chat/uswds/img/material-icons/format_underlined.svg
new file mode 100644
index 0000000..24f0729
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/format_underlined.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 17c3.31 0 6-2.69 6-6V3h-2.5v8c0 1.93-1.57 3.5-3.5 3.5S8.5 12.93 8.5 11V3H6v8c0 3.31 2.69 6 6 6zm-7 2v2h14v-2H5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/fort.svg b/html/matt-chat/uswds/img/material-icons/fort.svg
new file mode 100644
index 0000000..9f793fe
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/fort.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 3v2h-2V3h-2v2h-2V3h-2v4l2 2v1H9V9l2-2V3H9v2H7V3H5v2H3V3H1v4l2 2v6l-2 2v4h9v-3c0-1.1.9-2 2-2s2 .9 2 2v3h9v-4l-2-2V9l2-2V3h-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/forum.svg b/html/matt-chat/uswds/img/material-icons/forum.svg
new file mode 100644
index 0000000..8c958d9
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/forum.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 6h-2v9H6v2c0 .55.45 1 1 1h11l4 4V7c0-.55-.45-1-1-1zm-4 6V3c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v14l4-4h10c.55 0 1-.45 1-1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/forward.svg b/html/matt-chat/uswds/img/material-icons/forward.svg
new file mode 100644
index 0000000..c9353ea
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/forward.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 8V4l8 8-8 8v-4H4V8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/forward_10.svg b/html/matt-chat/uswds/img/material-icons/forward_10.svg
new file mode 100644
index 0000000..24e1708
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/forward_10.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 13c0 3.31-2.69 6-6 6s-6-2.69-6-6 2.69-6 6-6v4l5-5-5-5v4c-4.42 0-8 3.58-8 8s3.58 8 8 8 8-3.58 8-8h-2z"/><path d="M10.86 15.94v-4.27h-.09L9 12.3v.69l1.01-.31v3.26zm1.39-2.5v.74c0 1.9 1.31 1.82 1.44 1.82.14 0 1.44.09 1.44-1.82v-.74c0-1.9-1.31-1.82-1.44-1.82-.14 0-1.44-.09-1.44 1.82zm2.04-.12v.97c0 .77-.21 1.03-.59 1.03s-.6-.26-.6-1.03v-.97c0-.75.22-1.01.59-1.01.38-.01.6.26.6 1.01z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/forward_30.svg b/html/matt-chat/uswds/img/material-icons/forward_30.svg
new file mode 100644
index 0000000..1eb9c39
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/forward_30.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 13c0 3.31-2.69 6-6 6s-6-2.69-6-6 2.69-6 6-6v4l5-5-5-5v4c-4.42 0-8 3.58-8 8s3.58 8 8 8 8-3.58 8-8h-2z"/><path d="M10.06 15.38c-.29 0-.62-.17-.62-.54h-.85c0 .97.9 1.23 1.45 1.23.87 0 1.51-.46 1.51-1.25 0-.66-.45-.9-.71-1 .11-.05.65-.32.65-.92 0-.21-.05-1.22-1.44-1.22-.62 0-1.4.35-1.4 1.16h.85c0-.34.31-.48.57-.48.59 0 .58.5.58.54 0 .52-.41.59-.63.59h-.46v.66h.45c.65 0 .7.42.7.64 0 .32-.21.59-.65.59zm3.79-3.7c-.14 0-1.44-.08-1.44 1.82v.74c0 1.9 1.31 1.82 1.44 1.82.14 0 1.44.09 1.44-1.82v-.74c.01-1.91-1.3-1.82-1.44-1.82zm.6 2.67c0 .77-.21 1.03-.59 1.03s-.6-.26-.6-1.03v-.97c0-.75.22-1.01.59-1.01.38 0 .6.26.6 1.01v.97z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/forward_5.svg b/html/matt-chat/uswds/img/material-icons/forward_5.svg
new file mode 100644
index 0000000..3dc27f8
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/forward_5.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 13c0 3.31-2.69 6-6 6s-6-2.69-6-6 2.69-6 6-6v4l5-5-5-5v4c-4.42 0-8 3.58-8 8s3.58 8 8 8 8-3.58 8-8h-2z"/><path d="M12.03 15.38c-.44 0-.58-.31-.6-.56h-.84c.03.85.79 1.25 1.44 1.25.93 0 1.44-.63 1.44-1.43 0-1.33-.97-1.44-1.3-1.44-.2 0-.43.05-.64.16l.11-.92h1.7v-.71h-2.39l-.25 2.17.67.17c.13-.13.28-.23.57-.23.4 0 .69.23.69.75-.01.05.02.79-.6.79z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/forward_to_inbox.svg b/html/matt-chat/uswds/img/material-icons/forward_to_inbox.svg
new file mode 100644
index 0000000..ee7ac8f
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/forward_to_inbox.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h9v-2H4V8l8 5 8-5v5h2V6c0-1.1-.9-2-2-2zm-8 7L4 6h16l-8 5zm7 4 4 4-4 4v-3h-4v-2h4v-3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/foundation.svg b/html/matt-chat/uswds/img/material-icons/foundation.svg
new file mode 100644
index 0000000..52cb46b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/foundation.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 12h3L12 3 2 12h3v3H3v2h2v3h2v-3h4v3h2v-3h4v3h2v-3h2v-2h-2v-3zM7 15v-4.81l4-3.6V15H7zm6 0V6.59l4 3.6V15h-4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/free_breakfast.svg b/html/matt-chat/uswds/img/material-icons/free_breakfast.svg
new file mode 100644
index 0000000..5994e0c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/free_breakfast.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 3H4v10c0 2.21 1.79 4 4 4h6c2.21 0 4-1.79 4-4v-3h2a2 2 0 0 0 2-2V5c0-1.11-.89-2-2-2zm0 5h-2V5h2v3zM4 19h16v2H4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/free_cancellation.svg b/html/matt-chat/uswds/img/material-icons/free_cancellation.svg
new file mode 100644
index 0000000..ee51412
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/free_cancellation.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11.21 20H5V10h14v4.38l2-2V6c0-1.1-.9-2-2-2h-1V2h-2v2H8V2H6v2H5c-1.11 0-1.99.9-1.99 2L3 20a2 2 0 0 0 2 2h8.21l-2-2zm5.33 2.5L13 18.96l1.41-1.41 2.12 2.12 4.24-4.24 1.41 1.41-5.64 5.66zM10.41 14 12 15.59 10.59 17 9 15.41 7.41 17 6 15.59 7.59 14 6 12.41 7.41 11 9 12.59 10.59 11 12 12.41 10.41 14z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/front_hand.svg b/html/matt-chat/uswds/img/material-icons/front_hand.svg
new file mode 100644
index 0000000..f1021b0
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/front_hand.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19.75 8c-.69 0-1.25.56-1.25 1.25V15H18c-1.65 0-3 1.35-3 3h-1c0-2.04 1.53-3.72 3.5-3.97V3.25a1.25 1.25 0 0 0-2.5 0V11h-1V1.25a1.25 1.25 0 0 0-2.5 0V11h-1V2.75a1.25 1.25 0 0 0-2.5 0V12H7V5.75a1.25 1.25 0 0 0-2.5 0v10c0 4.56 3.69 8.25 8.25 8.25S21 20.31 21 15.75v-6.5C21 8.56 20.44 8 19.75 8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/fullscreen.svg b/html/matt-chat/uswds/img/material-icons/fullscreen.svg
new file mode 100644
index 0000000..e5eb6a2
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/fullscreen.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M7 14H5v5h5v-2H7v-3zm-2-4h2V7h3V5H5v5zm12 7h-3v2h5v-5h-2v3zM14 5v2h3v3h2V5h-5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/fullscreen_exit.svg b/html/matt-chat/uswds/img/material-icons/fullscreen_exit.svg
new file mode 100644
index 0000000..9d3ff86
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/fullscreen_exit.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M5 16h3v3h2v-5H5v2zm3-8H5v2h5V5H8v3zm6 11h2v-3h3v-2h-5v5zm2-11V5h-2v5h5V8h-3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/functions.svg b/html/matt-chat/uswds/img/material-icons/functions.svg
new file mode 100644
index 0000000..003ef30
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/functions.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 4H6v2l6.5 6L6 18v2h12v-3h-7l5-5-5-5h7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/g_mobiledata.svg b/html/matt-chat/uswds/img/material-icons/g_mobiledata.svg
new file mode 100644
index 0000000..1515767
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/g_mobiledata.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 11v2h2v2H9V9h7c0-1.1-.9-2-2-2H9c-1.1 0-2 .9-2 2v6c0 1.1.9 2 2 2h5c1.1 0 2-.9 2-2v-4h-4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/g_translate.svg b/html/matt-chat/uswds/img/material-icons/g_translate.svg
new file mode 100644
index 0000000..506136e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/g_translate.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 4H11l-1-3H3c-1.1 0-2 .9-2 2v15c0 1.1.9 2 2 2h8l1 3h9c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zM7 16c-2.76 0-5-2.24-5-5s2.24-5 5-5c1.35 0 2.48.5 3.35 1.3L9.03 8.57c-.38-.36-1.04-.78-2.03-.78-1.74 0-3.15 1.44-3.15 3.21S5.26 14.21 7 14.21c2.01 0 2.84-1.44 2.92-2.41H7v-1.71h4.68c.07.31.12.61.12 1.02C11.8 13.97 9.89 16 7 16zm6.17-5.42h3.7c-.43 1.25-1.11 2.43-2.05 3.47-.31-.35-.6-.72-.86-1.1l-.79-2.37zm8.33 9.92c0 .55-.45 1-1 1H14l2-2.5-1.04-3.1 3.1 3.1.92-.92-3.3-3.25.02-.02c1.13-1.25 1.93-2.69 2.4-4.22H20v-1.3h-4.53V8h-1.29v1.29h-1.44L11.46 5.5h9.04c.55 0 1 .45 1 1v14z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/gamepad.svg b/html/matt-chat/uswds/img/material-icons/gamepad.svg
new file mode 100644
index 0000000..62a4c9b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/gamepad.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15 7.5V2H9v5.5l3 3 3-3zM7.5 9H2v6h5.5l3-3-3-3zM9 16.5V22h6v-5.5l-3-3-3 3zM16.5 9l-3 3 3 3H22V9h-5.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/games.svg b/html/matt-chat/uswds/img/material-icons/games.svg
new file mode 100644
index 0000000..62a4c9b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/games.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15 7.5V2H9v5.5l3 3 3-3zM7.5 9H2v6h5.5l3-3-3-3zM9 16.5V22h6v-5.5l-3-3-3 3zM16.5 9l-3 3 3 3H22V9h-5.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/garage.svg b/html/matt-chat/uswds/img/material-icons/garage.svg
new file mode 100644
index 0000000..dc28904
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/garage.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><circle cx="15" cy="13" r="1"/><circle cx="9" cy="13" r="1"/><path d="m8.33 7.5-.66 2h8.66l-.66-2z"/><path d="M20 2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-1 15.69c0 .45-.35.81-.78.81h-.44c-.44 0-.78-.36-.78-.81V16.5H7v1.19c0 .45-.35.81-.78.81h-.44c-.43 0-.78-.36-.78-.81v-6.5c.82-2.47 1.34-4.03 1.56-4.69.05-.16.12-.29.19-.4.02-.02.03-.04.05-.06.38-.53.92-.54.92-.54h8.56s.54.01.92.53c.02.03.03.05.05.07.07.11.14.24.19.4.22.66.74 2.23 1.56 4.69v6.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/gas_meter.svg b/html/matt-chat/uswds/img/material-icons/gas_meter.svg
new file mode 100644
index 0000000..bdbd5f1
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/gas_meter.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16 4h-1V2h-2v2h-2V2H9v2H8C5.79 4 4 5.79 4 8v10c0 2.21 1.79 4 4 4h8c2.21 0 4-1.79 4-4V8c0-2.21-1.79-4-4-4zm-4 14c-1.38 0-2.5-1.1-2.5-2.46 0-1.09.43-1.39 2.5-3.79 2.05 2.38 2.5 2.7 2.5 3.79C14.5 16.9 13.38 18 12 18zm4-8H8V8h8v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/gavel.svg b/html/matt-chat/uswds/img/material-icons/gavel.svg
new file mode 100644
index 0000000..c68255f
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/gavel.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m5.25 8.069 2.83-2.827 14.134 14.15-2.83 2.827zm4.236-4.242L12.314.998l5.657 5.656-2.828 2.83zM.999 12.315l2.828-2.829 5.657 5.657-2.828 2.828zM1 21h12v2H1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/generating_tokens.svg b/html/matt-chat/uswds/img/material-icons/generating_tokens.svg
new file mode 100644
index 0000000..311d28f
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/generating_tokens.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M9 4c-4.42 0-8 3.58-8 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm3 6.5h-2v5H8v-5H6V9h6v1.5zm8.25-6.75L23 5l-2.75 1.25L19 9l-1.25-2.75L15 5l2.75-1.25L19 1l1.25 2.75zm0 14L23 19l-2.75 1.25L19 23l-1.25-2.75L15 19l2.75-1.25L19 15l1.25 2.75z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/gesture.svg b/html/matt-chat/uswds/img/material-icons/gesture.svg
new file mode 100644
index 0000000..dac332c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/gesture.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M4.59 6.89c.7-.71 1.4-1.35 1.71-1.22.5.2 0 1.03-.3 1.52-.25.42-2.86 3.89-2.86 6.31 0 1.28.48 2.34 1.34 2.98.75.56 1.74.73 2.64.46 1.07-.31 1.95-1.4 3.06-2.77 1.21-1.49 2.83-3.44 4.08-3.44 1.63 0 1.65 1.01 1.76 1.79-3.78.64-5.38 3.67-5.38 5.37 0 1.7 1.44 3.09 3.21 3.09 1.63 0 4.29-1.33 4.69-6.1H21v-2.5h-2.47c-.15-1.65-1.09-4.2-4.03-4.2-2.25 0-4.18 1.91-4.94 2.84-.58.73-2.06 2.48-2.29 2.72-.25.3-.68.84-1.11.84-.45 0-.72-.83-.36-1.92.35-1.09 1.4-2.86 1.85-3.52.78-1.14 1.3-1.92 1.3-3.28C8.95 3.69 7.31 3 6.44 3 5.12 3 3.97 4 3.72 4.25c-.36.36-.66.66-.88.93l1.75 1.71zm9.29 11.66c-.31 0-.74-.26-.74-.72 0-.6.73-2.2 2.87-2.76-.3 2.69-1.43 3.48-2.13 3.48z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/get_app.svg b/html/matt-chat/uswds/img/material-icons/get_app.svg
new file mode 100644
index 0000000..ef421c3
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/get_app.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 9h-4V3H9v6H5l7 7 7-7zM5 18v2h14v-2H5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/gif.svg b/html/matt-chat/uswds/img/material-icons/gif.svg
new file mode 100644
index 0000000..d16cb7c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/gif.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11.5 9H13v6h-1.5zM9 9H6c-.6 0-1 .5-1 1v4c0 .5.4 1 1 1h3c.6 0 1-.5 1-1v-2H8.5v1.5h-2v-3H10V10c0-.5-.4-1-1-1zm10 1.5V9h-4.5v6H16v-2h2v-1.5h-2v-1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/gif_box.svg b/html/matt-chat/uswds/img/material-icons/gif_box.svg
new file mode 100644
index 0000000..19d94ed
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/gif_box.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9.5 13v-1h1v1c0 .55-.45 1-1 1h-1c-.55 0-1-.45-1-1v-2c0-.55.45-1 1-1h1c.55 0 1 .45 1 1h-2v2h1zm3 1h-1v-4h1v4zm4-3h-2v.5H16v1h-1.5V14h-1v-4h3v1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/girl.svg b/html/matt-chat/uswds/img/material-icons/girl.svg
new file mode 100644
index 0000000..db5b379
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/girl.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 7.5c.97 0 1.75-.78 1.75-1.75S12.97 4 12 4s-1.75.78-1.75 1.75S11.03 7.5 12 7.5zm2 8.5v4h-4v-4H8l2.38-6.38a1.733 1.733 0 0 1 3.24 0L16 16h-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/gite.svg b/html/matt-chat/uswds/img/material-icons/gite.svg
new file mode 100644
index 0000000..a654503
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/gite.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 6H9V4H7v2H6l-4 4v9h20v-9l-4-4zM4 12h10v5H4v-5zm16 5h-4v-6.17l2-2 2 2V17z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/golf_course.svg b/html/matt-chat/uswds/img/material-icons/golf_course.svg
new file mode 100644
index 0000000..d64673b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/golf_course.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><circle cx="19.5" cy="19.5" r="1.5"/><path d="M17 5.92 9 2v18H7v-1.73c-1.79.35-3 .99-3 1.73 0 1.1 2.69 2 6 2s6-.9 6-2c0-.99-2.16-1.81-5-1.97V8.98l6-3.06z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/gpp_bad.svg b/html/matt-chat/uswds/img/material-icons/gpp_bad.svg
new file mode 100644
index 0000000..f546e2c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/gpp_bad.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2 4 5v6.09c0 5.05 3.41 9.76 8 10.91 4.59-1.15 8-5.86 8-10.91V5l-8-3zm3.5 12.09-1.41 1.41L12 13.42 9.91 15.5 8.5 14.09 10.59 12 8.5 9.91 9.91 8.5 12 10.59l2.09-2.09 1.41 1.41L13.42 12l2.08 2.09z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/gpp_good.svg b/html/matt-chat/uswds/img/material-icons/gpp_good.svg
new file mode 100644
index 0000000..f21d99c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/gpp_good.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2 4 5v6.09c0 5.05 3.41 9.76 8 10.91 4.59-1.15 8-5.86 8-10.91V5l-8-3zm-1.06 13.54L7.4 12l1.41-1.41 2.12 2.12 4.24-4.24 1.41 1.41-5.64 5.66z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/gpp_maybe.svg b/html/matt-chat/uswds/img/material-icons/gpp_maybe.svg
new file mode 100644
index 0000000..47fa5a8
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/gpp_maybe.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2 4 5v6.09c0 5.05 3.41 9.76 8 10.91 4.59-1.15 8-5.86 8-10.91V5l-8-3zm1 14h-2v-2h2v2zm0-4h-2V7h2v5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/gps_fixed.svg b/html/matt-chat/uswds/img/material-icons/gps_fixed.svg
new file mode 100644
index 0000000..402454a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/gps_fixed.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm8.94 3A8.994 8.994 0 0 0 13 3.06V1h-2v2.06A8.994 8.994 0 0 0 3.06 11H1v2h2.06A8.994 8.994 0 0 0 11 20.94V23h2v-2.06A8.994 8.994 0 0 0 20.94 13H23v-2h-2.06zM12 19c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/gps_not_fixed.svg b/html/matt-chat/uswds/img/material-icons/gps_not_fixed.svg
new file mode 100644
index 0000000..e936f36
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/gps_not_fixed.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20.94 11A8.994 8.994 0 0 0 13 3.06V1h-2v2.06A8.994 8.994 0 0 0 3.06 11H1v2h2.06A8.994 8.994 0 0 0 11 20.94V23h2v-2.06A8.994 8.994 0 0 0 20.94 13H23v-2h-2.06zM12 19c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/gps_off.svg b/html/matt-chat/uswds/img/material-icons/gps_off.svg
new file mode 100644
index 0000000..e6db459
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/gps_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20.94 11A8.994 8.994 0 0 0 13 3.06V1h-2v2.06c-1.13.12-2.19.46-3.16.97l1.5 1.5A6.995 6.995 0 0 1 19 12c0 .94-.19 1.84-.52 2.65l1.5 1.5c.5-.96.84-2.02.97-3.15H23v-2h-2.06zM3 4.27l2.04 2.04A8.914 8.914 0 0 0 3.06 11H1v2h2.06A8.994 8.994 0 0 0 11 20.94V23h2v-2.06c1.77-.2 3.38-.91 4.69-1.98L19.73 21 21 19.73 4.27 3 3 4.27zm13.27 13.27a6.995 6.995 0 0 1-9.81-9.81l9.81 9.81z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/grade.svg b/html/matt-chat/uswds/img/material-icons/grade.svg
new file mode 100644
index 0000000..caf1ac5
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/grade.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 17.27 18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/gradient.svg b/html/matt-chat/uswds/img/material-icons/gradient.svg
new file mode 100644
index 0000000..8320b4a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/gradient.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11 9h2v2h-2zm-2 2h2v2H9zm4 0h2v2h-2zm2-2h2v2h-2zM7 9h2v2H7zm12-6H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 18H7v-2h2v2zm4 0h-2v-2h2v2zm4 0h-2v-2h2v2zm2-7h-2v2h2v2h-2v-2h-2v2h-2v-2h-2v2H9v-2H7v2H5v-2h2v-2H5V5h14v6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/grading.svg b/html/matt-chat/uswds/img/material-icons/grading.svg
new file mode 100644
index 0000000..9513065
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/grading.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M4 7h16v2H4V7zm0 6h16v-2H4v2zm0 4h7v-2H4v2zm0 4h7v-2H4v2zm11.41-2.83L14 16.75l-1.41 1.41L15.41 21 20 16.42 18.58 15l-3.17 3.17zM4 3v2h16V3H4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/grain.svg b/html/matt-chat/uswds/img/material-icons/grain.svg
new file mode 100644
index 0000000..66c0588
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/grain.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10 12c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zM6 8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12-8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm-4 8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm4-4c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-4-4c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-4-4c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/graphic_eq.svg b/html/matt-chat/uswds/img/material-icons/graphic_eq.svg
new file mode 100644
index 0000000..e980427
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/graphic_eq.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M7 18h2V6H7v12zm4 4h2V2h-2v20zm-8-8h2v-4H3v4zm12 4h2V6h-2v12zm4-8v4h2v-4h-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/grass.svg b/html/matt-chat/uswds/img/material-icons/grass.svg
new file mode 100644
index 0000000..15173e0
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/grass.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 20H2v-2h5.75A8.032 8.032 0 0 0 2 12.26c.64-.16 1.31-.26 2-.26 4.42 0 8 3.58 8 8zm10-7.74c-.64-.16-1.31-.26-2-.26-2.93 0-5.48 1.58-6.88 3.93a9.82 9.82 0 0 1 .87 4.07h8v-2h-5.75A8.061 8.061 0 0 1 22 12.26zm-6.36-1.24a10.03 10.03 0 0 1 4.09-5C15.44 6.16 12 9.67 12 14v.02c.95-1.27 2.2-2.3 3.64-3zm-4.22-2.17A8.527 8.527 0 0 0 6.7 4C8.14 5.86 9 8.18 9 10.71c0 .21-.03.41-.04.61.43.24.83.52 1.22.82a9.91 9.91 0 0 1 1.24-3.29z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/grid_3x3.svg b/html/matt-chat/uswds/img/material-icons/grid_3x3.svg
new file mode 100644
index 0000000..b15b9fc
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/grid_3x3.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 10V8h-4V4h-2v4h-4V4H8v4H4v2h4v4H4v2h4v4h2v-4h4v4h2v-4h4v-2h-4v-4h4zm-6 4h-4v-4h4v4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/grid_4x4.svg b/html/matt-chat/uswds/img/material-icons/grid_4x4.svg
new file mode 100644
index 0000000..eb2b212
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/grid_4x4.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M22 7V5h-3V2h-2v3h-4V2h-2v3H7V2H5v3H2v2h3v4H2v2h3v4H2v2h3v3h2v-3h4v3h2v-3h4v3h2v-3h3v-2h-3v-4h3v-2h-3V7h3zM7 7h4v4H7V7zm0 10v-4h4v4H7zm10 0h-4v-4h4v4zm0-6h-4V7h4v4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/grid_goldenratio.svg b/html/matt-chat/uswds/img/material-icons/grid_goldenratio.svg
new file mode 100644
index 0000000..e5c2617
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/grid_goldenratio.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M22 11V9h-7V2h-2v7h-2V2H9v7H2v2h7v2H2v2h7v7h2v-7h2v7h2v-7h7v-2h-7v-2h7zm-9 2h-2v-2h2v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/grid_off.svg b/html/matt-chat/uswds/img/material-icons/grid_off.svg
new file mode 100644
index 0000000..0d8d60d
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/grid_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M8 4v1.45l2 2V4h4v4h-3.45l2 2H14v1.45l2 2V10h4v4h-3.45l2 2H20v1.45l2 2V4c0-1.1-.9-2-2-2H4.55l2 2H8zm8 0h4v4h-4V4zM1.27 1.27 0 2.55l2 2V20c0 1.1.9 2 2 2h15.46l2 2 1.27-1.27L1.27 1.27zM10 12.55 11.45 14H10v-1.45zm-6-6L5.45 8H4V6.55zM8 20H4v-4h4v4zm0-6H4v-4h3.45l.55.55V14zm6 6h-4v-4h3.45l.55.54V20zm2 0v-1.46L17.46 20H16z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/grid_on.svg b/html/matt-chat/uswds/img/material-icons/grid_on.svg
new file mode 100644
index 0000000..3caf213
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/grid_on.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM8 20H4v-4h4v4zm0-6H4v-4h4v4zm0-6H4V4h4v4zm6 12h-4v-4h4v4zm0-6h-4v-4h4v4zm0-6h-4V4h4v4zm6 12h-4v-4h4v4zm0-6h-4v-4h4v4zm0-6h-4V4h4v4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/grid_view.svg b/html/matt-chat/uswds/img/material-icons/grid_view.svg
new file mode 100644
index 0000000..b732680
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/grid_view.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill-rule="evenodd" d="M3 3v8h8V3H3zm6 6H5V5h4v4zm-6 4v8h8v-8H3zm6 6H5v-4h4v4zm4-16v8h8V3h-8zm6 6h-4V5h4v4zm-6 4v8h8v-8h-8zm6 6h-4v-4h4v4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/group.svg b/html/matt-chat/uswds/img/material-icons/group.svg
new file mode 100644
index 0000000..bd9a133
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/group.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16 11c1.66 0 2.99-1.34 2.99-3S17.66 5 16 5c-1.66 0-3 1.34-3 3s1.34 3 3 3zm-8 0c1.66 0 2.99-1.34 2.99-3S9.66 5 8 5C6.34 5 5 6.34 5 8s1.34 3 3 3zm0 2c-2.33 0-7 1.17-7 3.5V19h14v-2.5c0-2.33-4.67-3.5-7-3.5zm8 0c-.29 0-.62.02-.97.05 1.16.84 1.97 1.97 1.97 3.45V19h6v-2.5c0-2.33-4.67-3.5-7-3.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/group_add.svg b/html/matt-chat/uswds/img/material-icons/group_add.svg
new file mode 100644
index 0000000..91c0c2a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/group_add.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M22 9V7h-2v2h-2v2h2v2h2v-2h2V9zM8 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 1c-2.67 0-8 1.34-8 4v3h16v-3c0-2.66-5.33-4-8-4zm4.51-8.95C13.43 5.11 14 6.49 14 8s-.57 2.89-1.49 3.95C14.47 11.7 16 10.04 16 8s-1.53-3.7-3.49-3.95zm4.02 9.78C17.42 14.66 18 15.7 18 17v3h2v-3c0-1.45-1.59-2.51-3.47-3.17z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/group_off.svg b/html/matt-chat/uswds/img/material-icons/group_off.svg
new file mode 100644
index 0000000..44d97cf
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/group_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15 8c0-1.42-.5-2.73-1.33-3.76.42-.14.86-.24 1.33-.24 2.21 0 4 1.79 4 4s-1.79 4-4 4h-.18l-.77-.77c.6-.94.95-2.05.95-3.23zm7.83 12H23v-3c0-2.18-3.58-3.47-6.34-3.87 1.1.75 1.95 1.71 2.23 2.94L22.83 20zM7.24 4.41a3.996 3.996 0 0 1 5.35 5.35L7.24 4.41zM9.17 12H9c-2.21 0-4-1.79-4-4v-.17L.69 3.51 2.1 2.1l19.8 19.8-1.41 1.41L17 19.83V20H1v-3c0-2.66 5.33-4 8-4 .37 0 .8.03 1.25.08L9.17 12z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/group_remove.svg b/html/matt-chat/uswds/img/material-icons/group_remove.svg
new file mode 100644
index 0000000..85b3f87
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/group_remove.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M24 9v2h-6V9h6zM8 4C5.79 4 4 5.79 4 8s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 9c-2.67 0-8 1.34-8 4v3h16v-3c0-2.66-5.33-4-8-4zm4.51-8.95C13.43 5.11 14 6.49 14 8s-.57 2.89-1.49 3.95C14.47 11.7 16 10.04 16 8s-1.53-3.7-3.49-3.95zm4.02 9.78C17.42 14.66 18 15.7 18 17v3h2v-3c0-1.45-1.59-2.51-3.47-3.17z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/group_work.svg b/html/matt-chat/uswds/img/material-icons/group_work.svg
new file mode 100644
index 0000000..3ad23a8
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/group_work.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zM8 17.5a2.5 2.5 0 0 1 0-5 2.5 2.5 0 0 1 0 5zM9.5 8a2.5 2.5 0 0 1 5 0 2.5 2.5 0 0 1-5 0zm6.5 9.5a2.5 2.5 0 0 1 0-5 2.5 2.5 0 0 1 0 5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/groups.svg b/html/matt-chat/uswds/img/material-icons/groups.svg
new file mode 100644
index 0000000..a899f54
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/groups.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 12.75c1.63 0 3.07.39 4.24.9 1.08.48 1.76 1.56 1.76 2.73V18H6v-1.61c0-1.18.68-2.26 1.76-2.73 1.17-.52 2.61-.91 4.24-.91zM4 13c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm1.13 1.1c-.37-.06-.74-.1-1.13-.1-.99 0-1.93.21-2.78.58A2.01 2.01 0 0 0 0 16.43V18h4.5v-1.61c0-.83.23-1.61.63-2.29zM20 13c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm4 3.43c0-.81-.48-1.53-1.22-1.85A6.95 6.95 0 0 0 20 14c-.39 0-.76.04-1.13.1.4.68.63 1.46.63 2.29V18H24v-1.57zM12 6c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3 1.34-3 3-3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/groups_2.svg b/html/matt-chat/uswds/img/material-icons/groups_2.svg
new file mode 100644
index 0000000..534d70c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/groups_2.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10.27 12h3.46a1.5 1.5 0 0 0 1.48-1.75l-.3-1.79a2.951 2.951 0 0 0-5.82.01l-.3 1.79c-.15.91.55 1.74 1.48 1.74zm-8.61-.89c-.13.26-.18.57-.1.88.16.69.76 1.03 1.53 1h1.95c.83 0 1.51-.58 1.51-1.29 0-.14-.03-.27-.07-.4-.01-.03-.01-.05.01-.08.09-.16.14-.34.14-.53 0-.31-.14-.6-.36-.82-.03-.03-.03-.06-.02-.1.07-.2.07-.43.01-.65a1.12 1.12 0 0 0-.99-.74.09.09 0 0 1-.07-.03C5.03 8.14 4.72 8 4.37 8c-.3 0-.57.1-.75.26-.03.03-.06.03-.09.02a1.24 1.24 0 0 0-1.7 1.03c0 .02-.01.04-.03.06-.29.26-.46.65-.41 1.05.03.22.12.43.25.6.03.02.03.06.02.09zm14.58 2.54c-1.17-.52-2.61-.9-4.24-.9-1.63 0-3.07.39-4.24.9A2.988 2.988 0 0 0 6 16.39V18h12v-1.61c0-1.18-.68-2.26-1.76-2.74zm-15.02.93A2.01 2.01 0 0 0 0 16.43V18h4.5v-1.61c0-.83.23-1.61.63-2.29-.37-.06-.74-.1-1.13-.1-.99 0-1.93.21-2.78.58zm21.56 0A6.95 6.95 0 0 0 20 14c-.39 0-.76.04-1.13.1.4.68.63 1.46.63 2.29V18H24v-1.57c0-.81-.48-1.53-1.22-1.85zM22 11v-.5c0-1.1-.9-2-2-2h-2c-.42 0-.65.48-.39.81l.7.63c-.19.31-.31.67-.31 1.06 0 1.1.9 2 2 2s2-.9 2-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/groups_3.svg b/html/matt-chat/uswds/img/material-icons/groups_3.svg
new file mode 100644
index 0000000..5fcd78d
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/groups_3.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16.24 13.65c-1.17-.52-2.61-.9-4.24-.9-1.63 0-3.07.39-4.24.9A2.988 2.988 0 0 0 6 16.39V18h12v-1.61c0-1.18-.68-2.26-1.76-2.74zm-15.02.93A2.01 2.01 0 0 0 0 16.43V18h4.5v-1.61c0-.83.23-1.61.63-2.29-.37-.06-.74-.1-1.13-.1-.99 0-1.93.21-2.78.58zm21.56 0A6.95 6.95 0 0 0 20 14c-.39 0-.76.04-1.13.1.4.68.63 1.46.63 2.29V18H24v-1.57c0-.81-.48-1.53-1.22-1.85zM12 12c1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3 1.34 3 3 3zM1.497 11 4 8.497 6.503 11 4 13.503zM20 9l-2.5 4h5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/h_mobiledata.svg b/html/matt-chat/uswds/img/material-icons/h_mobiledata.svg
new file mode 100644
index 0000000..8898792
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/h_mobiledata.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15 11H9V7H7v10h2v-4h6v4h2V7h-2v4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/h_plus_mobiledata.svg b/html/matt-chat/uswds/img/material-icons/h_plus_mobiledata.svg
new file mode 100644
index 0000000..1c3d166
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/h_plus_mobiledata.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 11H6V7H4v10h2v-4h6v4h2V7h-2v4zm10 0h-2V9h-2v2h-2v2h2v2h2v-2h2v-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/hail.svg b/html/matt-chat/uswds/img/material-icons/hail.svg
new file mode 100644
index 0000000..7d31cc9
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/hail.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 6c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm5-4h2v.4c-.1 2.2-.8 3.9-2.3 5.1-.5.4-1.1.7-1.7.9V22h-2v-6h-2v6H9V10.1c-.3.1-.5.2-.6.3-.9.7-1.39 1.6-1.4 3.1v.5H5v-.5c0-2 .71-3.59 2.11-4.79C8.21 7.81 10 7 12 7s2.68-.46 3.48-1.06C16.48 5.14 17 4 17 2.5V2zM4 16h3v6H4v-6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/handshake.svg b/html/matt-chat/uswds/img/material-icons/handshake.svg
new file mode 100644
index 0000000..89304f7
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/handshake.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16.48 10.41c-.39.39-1.04.39-1.43 0l-4.47-4.46-7.05 7.04-.66-.63a3 3 0 0 1 0-4.24l4.24-4.24a3 3 0 0 1 4.24 0L16.48 9c.39.39.39 1.02 0 1.41zm.7-2.12c.78.78.78 2.05 0 2.83-1.27 1.27-2.61.22-2.83 0l-3.76-3.76-5.57 5.57a.996.996 0 0 0 0 1.41c.39.39 1.02.39 1.42 0l4.62-4.62.71.71-4.62 4.62a.996.996 0 0 0 0 1.41c.39.39 1.02.39 1.42 0l4.62-4.62.71.71-4.62 4.62a.996.996 0 1 0 1.41 1.41l4.62-4.62.71.71-4.62 4.62a.996.996 0 1 0 1.41 1.41l8.32-8.34a3 3 0 0 0 0-4.24l-4.24-4.24a3.001 3.001 0 0 0-4.18-.06l4.47 4.47z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/handyman.svg b/html/matt-chat/uswds/img/material-icons/handyman.svg
new file mode 100644
index 0000000..1c63073
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/handyman.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m21.67 18.17-5.3-5.3h-.99l-2.54 2.54v.99l5.3 5.3c.39.39 1.02.39 1.41 0l2.12-2.12a.996.996 0 0 0 0-1.41z"/><path d="m17.34 10.19 1.41-1.41 2.12 2.12a3 3 0 0 0 0-4.24l-3.54-3.54-1.41 1.41V1.71l-.7-.71-3.54 3.54.71.71h2.83l-1.41 1.41 1.06 1.06-2.89 2.89-4.13-4.13V5.06L4.83 2.04 2 4.87 5.03 7.9h1.41l4.13 4.13-.85.85H7.6l-5.3 5.3a.996.996 0 0 0 0 1.41l2.12 2.12c.39.39 1.02.39 1.41 0l5.3-5.3v-2.12l5.15-5.15 1.06 1.05z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/hardware.svg b/html/matt-chat/uswds/img/material-icons/hardware.svg
new file mode 100644
index 0000000..b3564ce
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/hardware.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m18 3-3 3V3H9C6.24 3 4 5.24 4 8h5v3h6V8l3 3h2V3h-2zM9 13v7c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-7H9z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/hd.svg b/html/matt-chat/uswds/img/material-icons/hd.svg
new file mode 100644
index 0000000..bcf5898
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/hd.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-8 12H9.5v-2h-2v2H6V9h1.5v2.5h2V9H11v6zm2-6h4c.55 0 1 .45 1 1v4c0 .55-.45 1-1 1h-4V9zm1.5 4.5h2v-3h-2v3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/hdr_auto.svg b/html/matt-chat/uswds/img/material-icons/hdr_auto.svg
new file mode 100644
index 0000000..f3a6abc
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/hdr_auto.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12.04 8.04h-.09l-1.6 4.55h3.29z"/><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm3.21 15-.98-2.81H9.78l-1 2.81h-1.9l4.13-11h1.97l4.13 11h-1.9z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/hdr_auto_select.svg b/html/matt-chat/uswds/img/material-icons/hdr_auto_select.svg
new file mode 100644
index 0000000..a7430ff
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/hdr_auto_select.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10 16H6.5v6H10c.8 0 1.5-.7 1.5-1.5v-3c0-.8-.7-1.5-1.5-1.5zm0 4.5H8v-3h2v3zm6.5-4.5H13v6h1.5v-2h1.1l.9 2H18l-.9-2.1c.5-.3.9-.8.9-1.4v-1c0-.8-.7-1.5-1.5-1.5zm0 2.5h-2v-1h2v1zm-13-.5h-2v-2H0v6h1.5v-2.5h2V22H5v-6H3.5zm18.5.5v-2h-1.5v2h-2V20h2v2H22v-2h2v-1.5zM11.97 5.3l-1.02 2.89h2.1L12.03 5.3z"/><path d="M12 2C8.69 2 6 4.69 6 8s2.69 6 6 6 6-2.69 6-6-2.69-6-6-6zm2.04 9-.63-1.79h-2.83L9.96 11H8.74l2.63-7h1.25l2.63 7h-1.21z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/hdr_enhanced_select.svg b/html/matt-chat/uswds/img/material-icons/hdr_enhanced_select.svg
new file mode 100644
index 0000000..5895e43
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/hdr_enhanced_select.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2c3.31 0 6 2.69 6 6s-2.69 6-6 6-6-2.69-6-6 2.69-6 6-6zm0 2C9.79 4 8 5.79 8 8s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm1 7h-2V9H9V7h2V5h2v2h2v2h-2v2zm11 9h-2v2h-1.5v-2h-2v-1.5h2v-2H22v2h2V20zm-6-1.5c0 .6-.4 1.1-.9 1.4L18 22h-1.5l-.9-2h-1.1v2H13v-6h3.5c.8 0 1.5.7 1.5 1.5v1zm-1.5 0v-1h-2v1h2zm-13-.5v-2H5v6H3.5v-2.5h-2V22H0v-6h1.5v2h2zm6.5-2c.8 0 1.5.7 1.5 1.5v3c0 .8-.7 1.5-1.5 1.5H6.5v-6H10zm0 4.5v-3H8v3h2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/hdr_off.svg b/html/matt-chat/uswds/img/material-icons/hdr_off.svg
new file mode 100644
index 0000000..7667932
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/hdr_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17.5 15v-2h1.1l.9 2H21l-.9-2.1c.5-.2.9-.8.9-1.4v-1c0-.8-.7-1.5-1.5-1.5H16v4.9l1.1 1.1h.4zm0-4.5h2v1h-2v-1zm-4.5 0v.4l1.5 1.5v-1.9c0-.8-.7-1.5-1.5-1.5h-1.9l1.5 1.5h.4zm-3.5-1-7-7-1.1 1L6.9 9h-.4v2h-2V9H3v6h1.5v-2.5h2V15H8v-4.9l1.5 1.5V15h3.4l7.6 7.6 1.1-1.1-12.1-12z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/hdr_off_select.svg b/html/matt-chat/uswds/img/material-icons/hdr_off_select.svg
new file mode 100644
index 0000000..bc2437a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/hdr_off_select.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 18.5v-1c0-.8-.7-1.5-1.5-1.5H13v6h1.5v-2h1.1l.9 2H18l-.9-2.1c.5-.3.9-.8.9-1.4zm-1.5 0h-2v-1h2v1zm-13-.5h-2v-2H0v6h1.5v-2.5h2V22H5v-6H3.5v2zm6.5-2H6.5v6H10c.8 0 1.5-.7 1.5-1.5v-3c0-.8-.7-1.5-1.5-1.5zm0 4.5H8v-3h2v3zm14-.5h-2v2h-1.5v-2h-2v-1.5h2v-2H22v2h2V20zM10.98 4.15 9.42 2.59c5.1-2.42 10.41 2.89 7.99 7.99l-1.56-1.56c.81-2.96-1.91-5.68-4.87-4.87zM6.34 2.34 4.93 3.76l1.66 1.66c-2.42 5.1 2.89 10.41 7.99 7.99l1.66 1.66 1.41-1.41L6.34 2.34zm1.81 4.64 4.87 4.87c-2.96.81-5.68-1.91-4.87-4.87z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/hdr_on.svg b/html/matt-chat/uswds/img/material-icons/hdr_on.svg
new file mode 100644
index 0000000..9acaafa
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/hdr_on.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 11.5v-1c0-.8-.7-1.5-1.5-1.5H16v6h1.5v-2h1.1l.9 2H21l-.9-2.1c.5-.3.9-.8.9-1.4zm-1.5 0h-2v-1h2v1zm-13-.5h-2V9H3v6h1.5v-2.5h2V15H8V9H6.5v2zM13 9H9.5v6H13c.8 0 1.5-.7 1.5-1.5v-3c0-.8-.7-1.5-1.5-1.5zm0 4.5h-2v-3h2v3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/hdr_on_select.svg b/html/matt-chat/uswds/img/material-icons/hdr_on_select.svg
new file mode 100644
index 0000000..083eb8d
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/hdr_on_select.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 18.5v-1c0-.8-.7-1.5-1.5-1.5H13v6h1.5v-2h1.1l.9 2H18l-.9-2.1c.5-.3.9-.8.9-1.4zm-1.5 0h-2v-1h2v1zm-13-.5h-2v-2H0v6h1.5v-2.5h2V22H5v-6H3.5v2zm6.5-2H6.5v6H10c.8 0 1.5-.7 1.5-1.5v-3c0-.8-.7-1.5-1.5-1.5zm0 4.5H8v-3h2v3zm14-.5h-2v2h-1.5v-2h-2v-1.5h2v-2H22v2h2V20zM12 4c2.21 0 4 1.79 4 4s-1.79 4-4 4-4-1.79-4-4 1.79-4 4-4m0-2C8.69 2 6 4.69 6 8s2.69 6 6 6 6-2.69 6-6-2.69-6-6-6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/hdr_plus.svg b/html/matt-chat/uswds/img/material-icons/hdr_plus.svg
new file mode 100644
index 0000000..832faa0
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/hdr_plus.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M8.5 14.5h2v1h-2zm6-7H16v3h-1.5z"/><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 13.5c0 .6-.4 1.1-.9 1.4L12 19h-1.5l-.9-2H8.5v2H7v-6h3.5c.8 0 1.5.7 1.5 1.5v1zm0-3.5h-1.5V9.5h-2V12H7V6h1.5v2h2V6H12v6zm5.5 4H16v1.5h-1.5V16H13v-1.5h1.5V13H16v1.49h1.5V16zm0-5.5c0 .8-.7 1.5-1.5 1.5h-3V6h3c.8 0 1.5.7 1.5 1.5v3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/hdr_strong.svg b/html/matt-chat/uswds/img/material-icons/hdr_strong.svg
new file mode 100644
index 0000000..cf68b9e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/hdr_strong.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 6c-3.31 0-6 2.69-6 6s2.69 6 6 6 6-2.69 6-6-2.69-6-6-6zM5 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 6c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/hdr_weak.svg b/html/matt-chat/uswds/img/material-icons/hdr_weak.svg
new file mode 100644
index 0000000..1554922
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/hdr_weak.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M5 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm12-2c-3.31 0-6 2.69-6 6s2.69 6 6 6 6-2.69 6-6-2.69-6-6-6zm0 10c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/headphones.svg b/html/matt-chat/uswds/img/material-icons/headphones.svg
new file mode 100644
index 0000000..871ceea
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/headphones.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 3a9 9 0 0 0-9 9v7c0 1.1.9 2 2 2h4v-8H5v-1c0-3.87 3.13-7 7-7s7 3.13 7 7v1h-4v8h4c1.1 0 2-.9 2-2v-7a9 9 0 0 0-9-9z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/headphones_battery.svg b/html/matt-chat/uswds/img/material-icons/headphones_battery.svg
new file mode 100644
index 0000000..8815806
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/headphones_battery.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 7h-1V6h-2v1h-1c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1h4c.55 0 1-.45 1-1V8c0-.55-.45-1-1-1zM8 6c-3.31 0-6 2.69-6 6v4c0 1.1.9 2 2 2h2v-5H3.5v-1c0-2.48 2.02-4.5 4.5-4.5s4.5 2.02 4.5 4.5v1H10v5h2c1.1 0 2-.9 2-2v-4c0-3.31-2.69-6-6-6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/headset.svg b/html/matt-chat/uswds/img/material-icons/headset.svg
new file mode 100644
index 0000000..0a966ed
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/headset.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 1a9 9 0 0 0-9 9v7c0 1.66 1.34 3 3 3h3v-8H5v-2c0-3.87 3.13-7 7-7s7 3.13 7 7v2h-4v8h3c1.66 0 3-1.34 3-3v-7a9 9 0 0 0-9-9z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/headset_mic.svg b/html/matt-chat/uswds/img/material-icons/headset_mic.svg
new file mode 100644
index 0000000..6dcbf1e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/headset_mic.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 1a9 9 0 0 0-9 9v7c0 1.66 1.34 3 3 3h3v-8H5v-2c0-3.87 3.13-7 7-7s7 3.13 7 7v2h-4v8h4v1h-7v2h6c1.66 0 3-1.34 3-3V10a9 9 0 0 0-9-9z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/headset_off.svg b/html/matt-chat/uswds/img/material-icons/headset_off.svg
new file mode 100644
index 0000000..352e02d
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/headset_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 4c3.87 0 7 3.13 7 7v2h-2.92L21 17.92V11a9 9 0 0 0-9-9c-1.95 0-3.76.62-5.23 1.68l1.44 1.44A6.914 6.914 0 0 1 12 4zM2.27 1.72 1 3l3.33 3.32A8.899 8.899 0 0 0 3 11v7c0 1.66 1.34 3 3 3h3v-8H5v-2c0-1.17.29-2.26.79-3.22L15 17v4h3c.3 0 .59-.06.86-.14L21 23l1.27-1.27-20-20.01z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/healing.svg b/html/matt-chat/uswds/img/material-icons/healing.svg
new file mode 100644
index 0000000..c8c9702
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/healing.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m17.73 12.02 3.98-3.98a.996.996 0 0 0 0-1.41l-4.34-4.34a.996.996 0 0 0-1.41 0l-3.98 3.98L8 2.29a1.001 1.001 0 0 0-1.41 0L2.25 6.63a.996.996 0 0 0 0 1.41l3.98 3.98L2.25 16a.996.996 0 0 0 0 1.41l4.34 4.34c.39.39 1.02.39 1.41 0l3.98-3.98 3.98 3.98c.2.2.45.29.71.29.26 0 .51-.1.71-.29l4.34-4.34a.996.996 0 0 0 0-1.41l-3.99-3.98zM12 9c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm-4.71 1.96L3.66 7.34l3.63-3.63 3.62 3.62-3.62 3.63zM10 13c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm2 2c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm2-4c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm2.66 9.34-3.63-3.62 3.63-3.63 3.62 3.62-3.62 3.63z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/health_and_safety.svg b/html/matt-chat/uswds/img/material-icons/health_and_safety.svg
new file mode 100644
index 0000000..66cd3c7
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/health_and_safety.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10.5 13H8v-3h2.5V7.5h3V10H16v3h-2.5v2.5h-3V13zM12 2 4 5v6.09c0 5.05 3.41 9.76 8 10.91 4.59-1.15 8-5.86 8-10.91V5l-8-3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/hearing.svg b/html/matt-chat/uswds/img/material-icons/hearing.svg
new file mode 100644
index 0000000..dd0c644
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/hearing.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 20c-.29 0-.56-.06-.76-.15-.71-.37-1.21-.88-1.71-2.38-.51-1.56-1.47-2.29-2.39-3-.79-.61-1.61-1.24-2.32-2.53C9.29 10.98 9 9.93 9 9c0-2.8 2.2-5 5-5s5 2.2 5 5h2c0-3.93-3.07-7-7-7S7 5.07 7 9c0 1.26.38 2.65 1.07 3.9.91 1.65 1.98 2.48 2.85 3.15.81.62 1.39 1.07 1.71 2.05.6 1.82 1.37 2.84 2.73 3.55A3.999 3.999 0 0 0 21 18h-2c0 1.1-.9 2-2 2zM7.64 2.64 6.22 1.22C4.23 3.21 3 5.96 3 9s1.23 5.79 3.22 7.78l1.41-1.41C6.01 13.74 5 11.49 5 9s1.01-4.74 2.64-6.36zM11.5 9a2.5 2.5 0 0 0 5 0 2.5 2.5 0 0 0-5 0z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/hearing_disabled.svg b/html/matt-chat/uswds/img/material-icons/hearing_disabled.svg
new file mode 100644
index 0000000..7c9d715
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/hearing_disabled.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M6.03 3.2C7.15 2.44 8.51 2 10 2c3.93 0 7 3.07 7 7 0 1.26-.38 2.65-1.07 3.9-.02.04-.05.08-.08.13l-1.48-1.48c.4-.86.63-1.75.63-2.55 0-2.8-2.2-5-5-5-.92 0-1.76.26-2.5.67L6.03 3.2zm11.18 11.18 1.43 1.43C20.11 13.93 21 11.57 21 9c0-3.04-1.23-5.79-3.22-7.78l-1.42 1.42A8.937 8.937 0 0 1 19 9c0 2.02-.67 3.88-1.79 5.38zM10 6.5c-.21 0-.4.03-.59.08l3.01 3.01c.05-.19.08-.38.08-.59A2.5 2.5 0 0 0 10 6.5zm11.19 14.69L2.81 2.81 1.39 4.22l2.13 2.13C3.19 7.16 3 8.05 3 9h2c0-.36.05-.71.12-1.05l6.61 6.61c-.88.68-1.78 1.41-2.27 2.9-.5 1.5-1 2.01-1.71 2.38-.19.1-.46.16-.75.16-1.1 0-2-.9-2-2H3a3.999 3.999 0 0 0 5.64 3.65c1.36-.71 2.13-1.73 2.73-3.55.32-.98.9-1.43 1.71-2.05.03-.02.05-.04.08-.06l6.62 6.62 1.41-1.42z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/heart_broken.svg b/html/matt-chat/uswds/img/material-icons/heart_broken.svg
new file mode 100644
index 0000000..761cb26
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/heart_broken.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16.5 3c-.96 0-1.9.25-2.73.69L12 9h3l-3 10 1-9h-3l1.54-5.39C10.47 3.61 9.01 3 7.5 3 4.42 3 2 5.42 2 8.5c0 4.13 4.16 7.18 10 12.5 5.47-4.94 10-8.26 10-12.5C22 5.42 19.58 3 16.5 3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/heat_pump.svg b/html/matt-chat/uswds/img/material-icons/heat_pump.svg
new file mode 100644
index 0000000..74670b7
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/heat_pump.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-6.25 4.08c.82.12 1.57.44 2.2.91l-2.2 2.2V7.08zm-1.5 0v3.11l-2.2-2.2c.63-.47 1.38-.79 2.2-.91zM7.99 9.05l2.2 2.2H7.08c.12-.82.44-1.57.91-2.2zm-.91 3.7h3.11l-2.2 2.2c-.47-.63-.79-1.38-.91-2.2zm4.17 4.17c-.82-.12-1.57-.44-2.2-.91l2.2-2.2v3.11zM12 13c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm.75 3.92v-3.11l2.2 2.2c-.63.47-1.38.79-2.2.91zm3.26-1.97-2.2-2.2h3.11c-.12.82-.44 1.57-.91 2.2zm-2.2-3.7 2.2-2.2c.47.64.79 1.39.91 2.2h-3.11z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/height.svg b/html/matt-chat/uswds/img/material-icons/height.svg
new file mode 100644
index 0000000..ecd8abb
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/height.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13 6.99h3L12 3 8 6.99h3v10.02H8L12 21l4-3.99h-3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/help.svg b/html/matt-chat/uswds/img/material-icons/help.svg
new file mode 100644
index 0000000..a60aafe
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/help.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 17h-2v-2h2v2zm2.07-7.75-.9.92C13.45 12.9 13 13.5 13 15h-2v-.5c0-1.1.45-2.1 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41 0-1.1-.9-2-2-2s-2 .9-2 2H8c0-2.21 1.79-4 4-4s4 1.79 4 4c0 .88-.36 1.68-.93 2.25z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/help_center.svg b/html/matt-chat/uswds/img/material-icons/help_center.svg
new file mode 100644
index 0000000..a5c2b7b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/help_center.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-6.99 15c-.7 0-1.26-.56-1.26-1.26 0-.71.56-1.25 1.26-1.25.71 0 1.25.54 1.25 1.25-.01.69-.54 1.26-1.25 1.26zm3.01-7.4c-.76 1.11-1.48 1.46-1.87 2.17-.16.29-.22.48-.22 1.41h-1.82c0-.49-.08-1.29.31-1.98.49-.87 1.42-1.39 1.96-2.16.57-.81.25-2.33-1.37-2.33-1.06 0-1.58.8-1.8 1.48l-1.65-.7C9.01 7.15 10.22 6 11.99 6c1.48 0 2.49.67 3.01 1.52.44.72.7 2.07.02 3.08z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/help_outline.svg b/html/matt-chat/uswds/img/material-icons/help_outline.svg
new file mode 100644
index 0000000..3e980a4
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/help_outline.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11 18h2v-2h-2v2zm1-16C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm0-14c-2.21 0-4 1.79-4 4h2c0-1.1.9-2 2-2s2 .9 2 2c0 2-3 1.75-3 5h2c0-2.25 3-2.5 3-5 0-2.21-1.79-4-4-4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/hevc.svg b/html/matt-chat/uswds/img/material-icons/hevc.svg
new file mode 100644
index 0000000..b4df0e8
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/hevc.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M5.5 11h-1V9H3v6h1.5v-2.5h1V15H7V9H5.5zM21 11v-1c0-.55-.45-1-1-1h-2c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-1h-1.5v.5h-1v-3h1v.5H21zm-6.75 2.5L13.5 9H12l1 6h2.5l1-6H15zM8 9v6h3.5v-1.5h-2v-1h2V11h-2v-.5h2V9z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/hexagon.svg b/html/matt-chat/uswds/img/material-icons/hexagon.svg
new file mode 100644
index 0000000..1066ef1
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/hexagon.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17.2 3H6.8l-5.2 9 5.2 9h10.4l5.2-9z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/hide_image.svg b/html/matt-chat/uswds/img/material-icons/hide_image.svg
new file mode 100644
index 0000000..1bbe4aa
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/hide_image.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 5c0-1.1-.9-2-2-2H5.83L21 18.17V5zM2.81 2.81 1.39 4.22 3 5.83V19c0 1.1.9 2 2 2h13.17l1.61 1.61 1.41-1.41L2.81 2.81zM6 17l3-4 2.25 3 .82-1.1 2.1 2.1H6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/hide_source.svg b/html/matt-chat/uswds/img/material-icons/hide_source.svg
new file mode 100644
index 0000000..5d4094f
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/hide_source.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M2.81 2.81 1.39 4.22l2.27 2.27A9.91 9.91 0 0 0 2 12c0 5.52 4.48 10 10 10 2.04 0 3.93-.61 5.51-1.66l2.27 2.27 1.41-1.41L2.81 2.81zM12 20c-4.41 0-8-3.59-8-8 0-1.48.41-2.86 1.12-4.06l10.94 10.94C14.86 19.59 13.48 20 12 20zM7.94 5.12 6.49 3.66A9.91 9.91 0 0 1 12 2c5.52 0 10 4.48 10 10 0 2.04-.61 3.93-1.66 5.51l-1.46-1.46A7.869 7.869 0 0 0 20 12c0-4.41-3.59-8-8-8-1.48 0-2.86.41-4.06 1.12z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/high_quality.svg b/html/matt-chat/uswds/img/material-icons/high_quality.svg
new file mode 100644
index 0000000..1da3636
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/high_quality.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 4H5a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-8 11H9.5v-2h-2v2H6V9h1.5v2.5h2V9H11v6zm7-1c0 .55-.45 1-1 1h-.75v1.5h-1.5V15H14c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1h3c.55 0 1 .45 1 1v4zm-3.5-.5h2v-3h-2v3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/highlight.svg b/html/matt-chat/uswds/img/material-icons/highlight.svg
new file mode 100644
index 0000000..1b4b0fb
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/highlight.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m6 14 3 3v5h6v-5l3-3V9H6v5zm5-12h2v3h-2V2zM3.5 5.88l1.41-1.41 2.12 2.12L5.62 8 3.5 5.88zm13.46.71 2.12-2.12 1.41 1.41L18.38 8l-1.42-1.41z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/highlight_alt.svg b/html/matt-chat/uswds/img/material-icons/highlight_alt.svg
new file mode 100644
index 0000000..441de00
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/highlight_alt.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 5h-2V3h2v2zm-2 16h2v-2.59L19.59 21 21 19.59 18.41 17H21v-2h-6v6zm4-12h2V7h-2v2zm0 4h2v-2h-2v2zm-8 8h2v-2h-2v2zM7 5h2V3H7v2zM3 17h2v-2H3v2zm2 4v-2H3c0 1.1.9 2 2 2zM19 3v2h2c0-1.1-.9-2-2-2zm-8 2h2V3h-2v2zM3 9h2V7H3v2zm4 12h2v-2H7v2zm-4-8h2v-2H3v2zm0-8h2V3c-1.1 0-2 .9-2 2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/highlight_off.svg b/html/matt-chat/uswds/img/material-icons/highlight_off.svg
new file mode 100644
index 0000000..1562eb1
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/highlight_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M14.59 8 12 10.59 9.41 8 8 9.41 10.59 12 8 14.59 9.41 16 12 13.41 14.59 16 16 14.59 13.41 12 16 9.41 14.59 8zM12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/hiking.svg b/html/matt-chat/uswds/img/material-icons/hiking.svg
new file mode 100644
index 0000000..9bd2315
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/hiking.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13.5 5.5c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm4 5.28c-1.23-.37-2.22-1.17-2.8-2.18l-1-1.6c-.41-.65-1.11-1-1.84-1-.78 0-1.59.5-1.78 1.44S7 23 7 23h2.1l1.8-8 2.1 2v6h2v-7.5l-2.1-2 .6-3c1 1.15 2.41 2.01 4 2.34V23H19V9h-1.5v1.78zM7.43 13.13l-2.12-.41a.999.999 0 0 1-.79-1.17l.76-3.93a2 2 0 0 1 2.34-1.58l1.16.23-1.35 6.86z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/history.svg b/html/matt-chat/uswds/img/material-icons/history.svg
new file mode 100644
index 0000000..f8f018c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/history.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13 3a9 9 0 0 0-9 9H1l3.89 3.89.07.14L9 12H6c0-3.87 3.13-7 7-7s7 3.13 7 7-3.13 7-7 7c-1.93 0-3.68-.79-4.94-2.06l-1.42 1.42A8.954 8.954 0 0 0 13 21a9 9 0 0 0 0-18zm-1 5v5l4.28 2.54.72-1.21-3.5-2.08V8H12z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/history_edu.svg b/html/matt-chat/uswds/img/material-icons/history_edu.svg
new file mode 100644
index 0000000..0d535b6
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/history_edu.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M9 4v1.38c-.83-.33-1.72-.5-2.61-.5-1.79 0-3.58.68-4.95 2.05l3.33 3.33h1.11v1.11c.86.86 1.98 1.31 3.11 1.36V15H6v3c0 1.1.9 2 2 2h10c1.66 0 3-1.34 3-3V4H9zm-1.11 6.41V8.26H5.61L4.57 7.22a5.07 5.07 0 0 1 1.82-.34c1.34 0 2.59.52 3.54 1.46l1.41 1.41-.2.2a2.7 2.7 0 0 1-1.92.8c-.47 0-.93-.12-1.33-.34zM19 17c0 .55-.45 1-1 1s-1-.45-1-1v-2h-6v-2.59c.57-.23 1.1-.57 1.56-1.03l.2-.2L15.59 14H17v-1.41l-6-5.97V6h8v11z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/history_toggle_off.svg b/html/matt-chat/uswds/img/material-icons/history_toggle_off.svg
new file mode 100644
index 0000000..5a8a3dd
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/history_toggle_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m15.1 19.37 1 1.74c-.96.44-2.01.73-3.1.84v-2.02c.74-.09 1.44-.28 2.1-.56zM4.07 13H2.05c.11 1.1.4 2.14.84 3.1l1.74-1c-.28-.66-.47-1.36-.56-2.1zM15.1 4.63l1-1.74c-.96-.44-2-.73-3.1-.84v2.02c.74.09 1.44.28 2.1.56zM19.93 11h2.02c-.11-1.1-.4-2.14-.84-3.1l-1.74 1c.28.66.47 1.36.56 2.1zM8.9 19.37l-1 1.74c.96.44 2.01.73 3.1.84v-2.02c-.74-.09-1.44-.28-2.1-.56zM11 4.07V2.05c-1.1.11-2.14.4-3.1.84l1 1.74c.66-.28 1.36-.47 2.1-.56zm7.36 3.1 1.74-1.01c-.63-.87-1.4-1.64-2.27-2.27l-1.01 1.74c.59.45 1.1.96 1.54 1.54zM4.63 8.9l-1.74-1c-.44.96-.73 2-.84 3.1h2.02c.09-.74.28-1.44.56-2.1zm15.3 4.1c-.09.74-.28 1.44-.56 2.1l1.74 1c.44-.96.73-2.01.84-3.1h-2.02zm-3.1 5.36 1.01 1.74c.87-.63 1.64-1.4 2.27-2.27l-1.74-1.01c-.45.59-.96 1.1-1.54 1.54zM7.17 5.64l-1-1.75c-.88.64-1.64 1.4-2.27 2.28l1.74 1.01a7.7 7.7 0 0 1 1.53-1.54zM5.64 16.83l-1.74 1c.63.87 1.4 1.64 2.27 2.27l1.01-1.74a7.7 7.7 0 0 1-1.54-1.53zM13 7h-2v5.41l4.29 4.29 1.41-1.41-3.7-3.7V7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/hive.svg b/html/matt-chat/uswds/img/material-icons/hive.svg
new file mode 100644
index 0000000..f6f489f
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/hive.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m13.79 8 1.8-3-1.8-3h-3.58l-1.8 3 1.8 3zm-3.58 1-1.8 3 1.8 3h3.58l1.8-3-1.8-3zm6.24 2.51h3.59l1.79-3-1.79-3h-3.59l-1.8 3zm3.59 1h-3.59l-1.8 3 1.8 3h3.59l1.79-3zm-12.49-1 1.8-3-1.8-3H3.96l-1.79 3 1.79 3zm0 1H3.96l-1.79 3 1.79 3h3.59l1.8-3zM10.21 16l-1.8 3 1.8 3h3.58l1.8-3-1.8-3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/hls.svg b/html/matt-chat/uswds/img/material-icons/hls.svg
new file mode 100644
index 0000000..d4c755f
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/hls.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M6.5 9H8v6H6.5v-2.5h-2V15H3V9h1.5v2h2V9zm10 6h3c.55 0 1-.45 1-1v-1.5c0-.55-.45-1-1-1H17v-1h2v.5h1.5v-1c0-.55-.45-1-1-1h-3c-.55 0-1 .45-1 1v1.5c0 .55.45 1 1 1H19v1h-2V13h-1.5v1c0 .55.45 1 1 1zM14 15v-1.5h-2.5V9H10v6h4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/hls_off.svg b/html/matt-chat/uswds/img/material-icons/hls_off.svg
new file mode 100644
index 0000000..f70848a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/hls_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17.83 15h1.67c.55 0 1-.45 1-1v-1.5c0-.55-.45-1-1-1H17v-1h2v.5h1.5v-1c0-.55-.45-1-1-1h-3c-.55 0-1 .45-1 1v1.5c0 .55.45 1 1 1H19v1h-2V13h-1.17l2 2zM8 10.83V15H6.5v-2.5h-2V15H3V9h1.5v2h2V9.33L1.39 4.22 2.8 2.81l18.38 18.38-1.41 1.41-7.6-7.6H10v-2.17l-2-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/holiday_village.svg b/html/matt-chat/uswds/img/material-icons/holiday_village.svg
new file mode 100644
index 0000000..7bfcd86
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/holiday_village.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 20V8.35L13.65 4h-2.83L16 9.18V20h2zm4 0V6.69L19.31 4h-2.83L20 7.52V20h2zM8 4l-6 6v10h5v-5h2v5h5V10L8 4zm1 9H7v-2h2v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/home.svg b/html/matt-chat/uswds/img/material-icons/home.svg
new file mode 100644
index 0000000..6bd84cf
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/home.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/home_max.svg b/html/matt-chat/uswds/img/material-icons/home_max.svg
new file mode 100644
index 0000000..0843e88
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/home_max.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 5H5C2.79 5 1 6.79 1 9v5c0 2.21 1.79 4 4 4h2v1h10v-1h2c2.21 0 4-1.79 4-4V9c0-2.21-1.79-4-4-4zm2 9c0 1.1-.9 2-2 2H5c-1.1 0-2-.9-2-2V9c0-1.1.9-2 2-2h14c1.1 0 2 .9 2 2v5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/home_mini.svg b/html/matt-chat/uswds/img/material-icons/home_mini.svg
new file mode 100644
index 0000000..26dc3e5
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/home_mini.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 5C4.19 5 2 9.48 2 12c0 3.86 3.13 7 6.99 7h6.02C17.7 19 22 16.92 22 12c0 0 0-7-10-7zm0 2c7.64 0 7.99 4.51 8 5H4c0-.2.09-5 8-5zm2.86 10H9.14c-2.1 0-3.92-1.24-4.71-3h15.15c-.8 1.76-2.62 3-4.72 3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/home_repair_service.svg b/html/matt-chat/uswds/img/material-icons/home_repair_service.svg
new file mode 100644
index 0000000..8d25f0f
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/home_repair_service.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 16h-2v-1H8v1H6v-1H2v5h20v-5h-4zm2-8h-3V6c0-1.1-.9-2-2-2H9c-1.1 0-2 .9-2 2v2H4c-1.1 0-2 .9-2 2v4h4v-2h2v2h8v-2h2v2h4v-4c0-1.1-.9-2-2-2zm-5 0H9V6h6v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/home_work.svg b/html/matt-chat/uswds/img/material-icons/home_work.svg
new file mode 100644
index 0000000..7e15bca
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/home_work.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M1 11v10h5v-6h4v6h5V11L8 6z"/><path d="M10 3v1.97l7 5V11h2v2h-2v2h2v2h-2v4h6V3H10zm9 6h-2V7h2v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/horizontal_distribute.svg b/html/matt-chat/uswds/img/material-icons/horizontal_distribute.svg
new file mode 100644
index 0000000..336d07d
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/horizontal_distribute.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M4 22H2V2h2v20zM22 2h-2v20h2V2zm-8.5 5h-3v10h3V7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/horizontal_rule.svg b/html/matt-chat/uswds/img/material-icons/horizontal_rule.svg
new file mode 100644
index 0000000..0828efb
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/horizontal_rule.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill-rule="evenodd" d="M4 11h16v2H4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/horizontal_split.svg b/html/matt-chat/uswds/img/material-icons/horizontal_split.svg
new file mode 100644
index 0000000..4b7ef90
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/horizontal_split.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 19h18v-6H3v6zm0-8h18V9H3v2zm0-6v2h18V5H3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/hot_tub.svg b/html/matt-chat/uswds/img/material-icons/hot_tub.svg
new file mode 100644
index 0000000..ce8bf4e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/hot_tub.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><circle cx="7" cy="6" r="2"/><path d="M11.15 12c-.31-.22-.59-.46-.82-.72l-1.4-1.55c-.19-.21-.43-.38-.69-.5-.29-.14-.62-.23-.96-.23h-.03C6.01 9 5 10.01 5 11.25V12H2v8c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2v-8H11.15zM7 20H5v-6h2v6zm4 0H9v-6h2v6zm4 0h-2v-6h2v6zm4 0h-2v-6h2v6zm-.35-14.14-.07-.07c-.57-.62-.82-1.41-.67-2.2L18 3h-1.89l-.06.43c-.2 1.36.27 2.71 1.3 3.72l.07.06c.57.62.82 1.41.67 2.2l-.11.59h1.91l.06-.43c.21-1.36-.27-2.71-1.3-3.71zm-4 0-.07-.07c-.57-.62-.82-1.41-.67-2.2L14 3h-1.89l-.06.43c-.2 1.36.27 2.71 1.3 3.72l.07.06c.57.62.82 1.41.67 2.2l-.11.59h1.91l.06-.43c.21-1.36-.27-2.71-1.3-3.71z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/hotel.svg b/html/matt-chat/uswds/img/material-icons/hotel.svg
new file mode 100644
index 0000000..f1cca2c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/hotel.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M7 13c1.66 0 3-1.34 3-3S8.66 7 7 7s-3 1.34-3 3 1.34 3 3 3zm12-6h-8v7H3V5H1v15h2v-3h18v3h2v-9c0-2.21-1.79-4-4-4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/hotel_class.svg b/html/matt-chat/uswds/img/material-icons/hotel_class.svg
new file mode 100644
index 0000000..462d7bf
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/hotel_class.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M8.58 10H1l6.17 4.41L4.83 22 11 17.31 17.18 22l-2.35-7.59L21 10h-7.58L11 2l-2.42 8zm12.78 12-1.86-6.01L23.68 13h-3.44l-3.08 2.2 1.46 4.72L21.36 22zM17 8l-1.82-6-1.04 3.45.77 2.55H17z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/hourglass_bottom.svg b/html/matt-chat/uswds/img/material-icons/hourglass_bottom.svg
new file mode 100644
index 0000000..9f5bbed
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/hourglass_bottom.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m18 22-.01-6L14 12l3.99-4.01L18 2H6v6l4 4-4 3.99V22h12zM8 7.5V4h8v3.5l-4 4-4-4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/hourglass_disabled.svg b/html/matt-chat/uswds/img/material-icons/hourglass_disabled.svg
new file mode 100644
index 0000000..c58e1d7
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/hourglass_disabled.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M8 4h8v3.5l-2.84 2.84 1.25 1.25L18 8.01 17.99 8H18V2H6v1.17l2 2zM2.1 2.1.69 3.51l8.9 8.9L6 16l.01.01H6V22h12v-1.17l2.49 2.49 1.41-1.41L2.1 2.1zM16 20H8v-3.5l2.84-2.84L16 18.83V20z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/hourglass_empty.svg b/html/matt-chat/uswds/img/material-icons/hourglass_empty.svg
new file mode 100644
index 0000000..b4b3a5a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/hourglass_empty.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M6 2v6h.01L6 8.01 10 12l-4 4 .01.01H6V22h12v-5.99h-.01L18 16l-4-4 4-3.99-.01-.01H18V2H6zm10 14.5V20H8v-3.5l4-4 4 4zm-4-5-4-4V4h8v3.5l-4 4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/hourglass_full.svg b/html/matt-chat/uswds/img/material-icons/hourglass_full.svg
new file mode 100644
index 0000000..e33ac31
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/hourglass_full.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M6 2v6h.01L6 8.01 10 12l-4 4 .01.01H6V22h12v-5.99h-.01L18 16l-4-4 4-3.99-.01-.01H18V2H6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/hourglass_top.svg b/html/matt-chat/uswds/img/material-icons/hourglass_top.svg
new file mode 100644
index 0000000..063777c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/hourglass_top.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m6 2 .01 6L10 12l-3.99 4.01L6 22h12v-6l-4-4 4-3.99V2H6zm10 14.5V20H8v-3.5l4-4 4 4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/house.svg b/html/matt-chat/uswds/img/material-icons/house.svg
new file mode 100644
index 0000000..8d5ea1c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/house.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 9.3V4h-3v2.6L12 3 2 12h3v8h5v-6h4v6h5v-8h3l-3-2.7zm-9 .7c0-1.1.9-2 2-2s2 .9 2 2h-4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/house_siding.svg b/html/matt-chat/uswds/img/material-icons/house_siding.svg
new file mode 100644
index 0000000..6b6a491
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/house_siding.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 12h3L12 3 2 12h3v8h2v-2h10v2h2v-8zM7.21 10h9.58l.21.19V12H7v-1.81l.21-.19zm7.36-2H9.43L12 5.69 14.57 8zM7 16v-2h10v2H7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/houseboat.svg b/html/matt-chat/uswds/img/material-icons/houseboat.svg
new file mode 100644
index 0000000..c08f28a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/houseboat.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 16c-1.95 0-2.1 1-3.34 1-1.19 0-1.42-1-3.33-1-1.95 0-2.09 1-3.33 1v2c1.9 0 2.17-1 3.35-1 1.19 0 1.42 1 3.33 1 1.95 0 2.08-1 3.32-1s1.37 1 3.32 1c1.91 0 2.14-1 3.33-1 1.18 0 1.45 1 3.35 1v-2c-1.24 0-1.38-1-3.33-1-1.91 0-2.14 1-3.33 1-1.24 0-1.39-1-3.34-1zm8.34-4.66-1.37 1.37c-.19.18-.45.29-.71.29H17V9.65l1.32.97L19.5 9 12 3.5 4.5 9l1.18 1.61L7 9.65V13H5.74c-.27 0-.52-.11-.71-.29l-1.37-1.37-1.41 1.41 1.37 1.37c.56.56 1.33.88 2.12.88h12.51c.8 0 1.56-.32 2.12-.88l1.37-1.37-1.4-1.41zM13 13h-2v-2h2v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/how_to_reg.svg b/html/matt-chat/uswds/img/material-icons/how_to_reg.svg
new file mode 100644
index 0000000..c1bda81
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/how_to_reg.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill-rule="evenodd" d="m9 17 3-2.94a9.34 9.34 0 0 0-1-.06c-2.67 0-8 1.34-8 4v2h9l-3-3zm2-5c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4m4.47 8.5L12 17l1.4-1.41 2.07 2.08 5.13-5.17 1.4 1.41z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/how_to_vote.svg b/html/matt-chat/uswds/img/material-icons/how_to_vote.svg
new file mode 100644
index 0000000..0011132
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/how_to_vote.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 13h-.68l-2 2h1.91L19 17H5l1.78-2h2.05l-2-2H6l-3 3v4c0 1.1.89 2 1.99 2H19a2 2 0 0 0 2-2v-4l-3-3zm-1-5.05-4.95 4.95-3.54-3.54 4.95-4.95L17 7.95zm-4.24-5.66L6.39 8.66a.996.996 0 0 0 0 1.41l4.95 4.95c.39.39 1.02.39 1.41 0l6.36-6.36a.996.996 0 0 0 0-1.41L14.16 2.3a.975.975 0 0 0-1.4-.01z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/html.svg b/html/matt-chat/uswds/img/material-icons/html.svg
new file mode 100644
index 0000000..734be2b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/html.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3.5 9H5v6H3.5v-2.5h-2V15H0V9h1.5v2h2V9zm14 0H13c-.55 0-1 .45-1 1v5h1.5v-4.5h1V14H16v-3.51h1V15h1.5v-5c0-.55-.45-1-1-1zM11 9H6v1.5h1.75V15h1.5v-4.5H11V9zm13 6v-1.5h-2.5V9H20v6h4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/http.svg b/html/matt-chat/uswds/img/material-icons/http.svg
new file mode 100644
index 0000000..4a8c23a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/http.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M4.5 11h-2V9H1v6h1.5v-2.5h2V15H6V9H4.5v2zm2.5-.5h1.5V15H10v-4.5h1.5V9H7v1.5zm5.5 0H14V15h1.5v-4.5H17V9h-4.5v1.5zm9-1.5H18v6h1.5v-2h2c.8 0 1.5-.7 1.5-1.5v-1c0-.8-.7-1.5-1.5-1.5zm0 2.5h-2v-1h2v1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/https.svg b/html/matt-chat/uswds/img/material-icons/https.svg
new file mode 100644
index 0000000..2154a2c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/https.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zm-6 9c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm3.1-9H8.9V6c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3.1v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/hub.svg b/html/matt-chat/uswds/img/material-icons/hub.svg
new file mode 100644
index 0000000..88b07a8
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/hub.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M8.4 18.2c.38.5.6 1.12.6 1.8 0 1.66-1.34 3-3 3s-3-1.34-3-3 1.34-3 3-3c.44 0 .85.09 1.23.26l1.41-1.77a4.504 4.504 0 0 1-1.09-3.69l-2.03-.68A2.997 2.997 0 0 1 0 9.5c0-1.66 1.34-3 3-3s3 1.34 3 3c0 .07 0 .14-.01.21l2.03.68a4.468 4.468 0 0 1 3.22-2.32V5.91A3.018 3.018 0 0 1 9 3c0-1.66 1.34-3 3-3s3 1.34 3 3c0 1.4-.96 2.57-2.25 2.91v2.16c1.4.23 2.58 1.11 3.22 2.32L18 9.71V9.5c0-1.66 1.34-3 3-3s3 1.34 3 3-1.34 3-3 3c-1.06 0-1.98-.55-2.52-1.37l-2.03.68a4.49 4.49 0 0 1-1.09 3.69l1.41 1.77c.38-.18.79-.27 1.23-.27 1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3c0-.68.22-1.3.6-1.8l-1.41-1.77c-1.35.75-3.01.76-4.37 0L8.4 18.2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/hvac.svg b/html/matt-chat/uswds/img/material-icons/hvac.svg
new file mode 100644
index 0000000..9cba911
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/hvac.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 16c1.01 0 1.91-.39 2.62-1H9.38c.71.61 1.61 1 2.62 1zm-3.44-2h6.89c.26-.45.44-.96.51-1.5h-7.9c.06.54.23 1.05.5 1.5zM12 8c-1.01 0-1.91.39-2.62 1h5.24c-.71-.61-1.61-1-2.62-1zm-3.44 2c-.26.45-.44.96-.51 1.5h7.9c-.07-.54-.24-1.05-.51-1.5H8.56z"/><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 15c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/ice_skating.svg b/html/matt-chat/uswds/img/material-icons/ice_skating.svg
new file mode 100644
index 0000000..c81129d
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/ice_skating.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M8 8.5c0-.28.22-.5.5-.5h2.52L11 7H8.5c-.28 0-.5-.22-.5-.5s.22-.5.5-.5H11V3H3v15h3v2H2v2h16c2.76 0 5-2.24 5-5h-2c0 1.66-1.34 3-3 3h-2v-2h3v-2.88c0-2.1-1.55-3.53-3.03-3.88l-2.7-.67c-.87-.22-1.57-.81-1.95-1.57H8.5c-.28 0-.5-.22-.5-.5zM14 20H8v-2h6v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/icecream.svg b/html/matt-chat/uswds/img/material-icons/icecream.svg
new file mode 100644
index 0000000..8e92d8c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/icecream.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill-rule="evenodd" d="m8.79 12.4 3.26 6.22 3.17-6.21c-.11-.08-.21-.16-.3-.25-.84.53-1.85.84-2.92.84s-2.08-.31-2.92-.84c-.09.09-.19.17-.29.24zm-1.96.59A2.995 2.995 0 0 1 4 10a3 3 0 0 1 2.52-2.96C6.75 4.22 9.12 2 12 2s5.25 2.22 5.48 5.04A3 3 0 0 1 20 10c0 1.59-1.24 2.9-2.81 2.99L12.07 23 6.83 12.99z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/image.svg b/html/matt-chat/uswds/img/material-icons/image.svg
new file mode 100644
index 0000000..6ccc16a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/image.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/image_aspect_ratio.svg b/html/matt-chat/uswds/img/material-icons/image_aspect_ratio.svg
new file mode 100644
index 0000000..4a8b293
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/image_aspect_ratio.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16 10h-2v2h2v-2zm0 4h-2v2h2v-2zm-8-4H6v2h2v-2zm4 0h-2v2h2v-2zm8-6H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 14H4V6h16v12z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/image_not_supported.svg b/html/matt-chat/uswds/img/material-icons/image_not_supported.svg
new file mode 100644
index 0000000..f128658
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/image_not_supported.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m21.9 21.9-8.49-8.49-9.82-9.82L2.1 2.1.69 3.51 3 5.83V19c0 1.1.9 2 2 2h13.17l2.31 2.31 1.42-1.41zM5 18l3.5-4.5 2.5 3.01L12.17 15l3 3H5zm16 .17L5.83 3H19c1.1 0 2 .9 2 2v13.17z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/image_search.svg b/html/matt-chat/uswds/img/material-icons/image_search.svg
new file mode 100644
index 0000000..161143c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/image_search.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 13v7H4V6h5.02c.05-.71.22-1.38.48-2H4c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-5l-2-2zm-1.5 5h-11l2.75-3.53 1.96 2.36 2.75-3.54zm2.8-9.11c.44-.7.7-1.51.7-2.39C20 4.01 17.99 2 15.5 2S11 4.01 11 6.5s2.01 4.5 4.49 4.5c.88 0 1.7-.26 2.39-.7L21 13.42 22.42 12 19.3 8.89zM15.5 9a2.5 2.5 0 0 1 0-5 2.5 2.5 0 0 1 0 5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/imagesearch_roller.svg b/html/matt-chat/uswds/img/material-icons/imagesearch_roller.svg
new file mode 100644
index 0000000..0bbd8a3
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/imagesearch_roller.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 2v6H6V6H4v4h10v5h2v8h-6v-8h2v-3H2V4h4V2"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/import_contacts.svg b/html/matt-chat/uswds/img/material-icons/import_contacts.svg
new file mode 100644
index 0000000..c688cb4
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/import_contacts.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17.5 4.5c-1.95 0-4.05.4-5.5 1.5-1.45-1.1-3.55-1.5-5.5-1.5S2.45 4.9 1 6v14.65c0 .65.73.45.75.45C3.1 20.45 5.05 20 6.5 20c1.95 0 4.05.4 5.5 1.5 1.35-.85 3.8-1.5 5.5-1.5 1.65 0 3.35.3 4.75 1.05.41.21.75-.19.75-.45V6c-1.49-1.12-3.63-1.5-5.5-1.5zm3.5 14c-1.1-.35-2.3-.5-3.5-.5-1.7 0-4.15.65-5.5 1.5V8c1.35-.85 3.8-1.5 5.5-1.5 1.2 0 2.4.15 3.5.5v11.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/import_export.svg b/html/matt-chat/uswds/img/material-icons/import_export.svg
new file mode 100644
index 0000000..37a37bb
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/import_export.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M9 3 5 6.99h3V14h2V6.99h3L9 3zm7 14.01V10h-2v7.01h-3L15 21l4-3.99h-3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/important_devices.svg b/html/matt-chat/uswds/img/material-icons/important_devices.svg
new file mode 100644
index 0000000..cf5d527
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/important_devices.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M23 11.01 18 11c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1h5c.55 0 1-.45 1-1v-9c0-.55-.45-.99-1-.99zM23 20h-5v-7h5v7zM20 2H2C.89 2 0 2.89 0 4v12a2 2 0 0 0 2 2h7v2H7v2h8v-2h-2v-2h2v-2H2V4h18v5h2V4a2 2 0 0 0-2-2zm-8.03 7L11 6l-.97 3H7l2.47 1.76-.94 2.91 2.47-1.8 2.47 1.8-.94-2.91L15 9h-3.03z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/inbox.svg b/html/matt-chat/uswds/img/material-icons/inbox.svg
new file mode 100644
index 0000000..92dbdab
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/inbox.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H4.99c-1.11 0-1.98.89-1.98 2L3 19c0 1.1.88 2 1.99 2H19c1.1 0 2-.9 2-2V5a2 2 0 0 0-2-2zm0 12h-4c0 1.66-1.35 3-3 3s-3-1.34-3-3H4.99V5H19v10z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/incomplete_circle.svg b/html/matt-chat/uswds/img/material-icons/incomplete_circle.svg
new file mode 100644
index 0000000..2d002b6
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/incomplete_circle.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M22 12c0 5.52-4.48 10-10 10S2 17.52 2 12c0-2.76 1.12-5.26 2.93-7.07L12 12V2c5.52 0 10 4.48 10 10z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/indeterminate_check_box.svg b/html/matt-chat/uswds/img/material-icons/indeterminate_check_box.svg
new file mode 100644
index 0000000..96dfaf9
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/indeterminate_check_box.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/info.svg b/html/matt-chat/uswds/img/material-icons/info.svg
new file mode 100644
index 0000000..22ef137
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/info.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/input.svg b/html/matt-chat/uswds/img/material-icons/input.svg
new file mode 100644
index 0000000..bc567b6
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/input.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 3.01H3c-1.1 0-2 .9-2 2V9h2V4.99h18v14.03H3V15H1v4.01c0 1.1.9 1.98 2 1.98h18c1.1 0 2-.88 2-1.98v-14a2 2 0 0 0-2-2zM11 16l4-4-4-4v3H1v2h10v3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/insert_chart.svg b/html/matt-chat/uswds/img/material-icons/insert_chart.svg
new file mode 100644
index 0000000..cc7768b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/insert_chart.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/insert_chart_outlined.svg b/html/matt-chat/uswds/img/material-icons/insert_chart_outlined.svg
new file mode 100644
index 0000000..58a9822
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/insert_chart_outlined.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4zm2.5 2.1h-15V5h15v14.1zm0-16.1h-15c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h15c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/insert_comment.svg b/html/matt-chat/uswds/img/material-icons/insert_comment.svg
new file mode 100644
index 0000000..c82fbff
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/insert_comment.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h14l4 4V4c0-1.1-.9-2-2-2zm-2 12H6v-2h12v2zm0-3H6V9h12v2zm0-3H6V6h12v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/insert_drive_file.svg b/html/matt-chat/uswds/img/material-icons/insert_drive_file.svg
new file mode 100644
index 0000000..6aa287e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/insert_drive_file.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M6 2c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6H6zm7 7V3.5L18.5 9H13z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/insert_emoticon.svg b/html/matt-chat/uswds/img/material-icons/insert_emoticon.svg
new file mode 100644
index 0000000..57bea0f
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/insert_emoticon.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm3.5-9c.83 0 1.5-.67 1.5-1.5S16.33 8 15.5 8 14 8.67 14 9.5s.67 1.5 1.5 1.5zm-7 0c.83 0 1.5-.67 1.5-1.5S9.33 8 8.5 8 7 8.67 7 9.5 7.67 11 8.5 11zm3.5 6.5c2.33 0 4.31-1.46 5.11-3.5H6.89c.8 2.04 2.78 3.5 5.11 3.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/insert_invitation.svg b/html/matt-chat/uswds/img/material-icons/insert_invitation.svg
new file mode 100644
index 0000000..ba09a17
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/insert_invitation.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 12h-5v5h5v-5zM16 1v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2h-1V1h-2zm3 18H5V8h14v11z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/insert_link.svg b/html/matt-chat/uswds/img/material-icons/insert_link.svg
new file mode 100644
index 0000000..f39e2a7
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/insert_link.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/insert_page_break.svg b/html/matt-chat/uswds/img/material-icons/insert_page_break.svg
new file mode 100644
index 0000000..7c31173
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/insert_page_break.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2v-3H4v3zM20 8l-6-6H6c-1.1 0-1.99.9-1.99 2v7H20V8zm-7 1V3.5L18.5 9H13zm-4 4h6v2H9zm8 0h6v2h-6zM1 13h6v2H1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/insert_photo.svg b/html/matt-chat/uswds/img/material-icons/insert_photo.svg
new file mode 100644
index 0000000..6ccc16a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/insert_photo.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/insights.svg b/html/matt-chat/uswds/img/material-icons/insights.svg
new file mode 100644
index 0000000..5c8a937
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/insights.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 8c-1.45 0-2.26 1.44-1.93 2.51l-3.55 3.56c-.3-.09-.74-.09-1.04 0l-2.55-2.55C12.27 10.45 11.46 9 10 9c-1.45 0-2.27 1.44-1.93 2.52l-4.56 4.55C2.44 15.74 1 16.55 1 18c0 1.1.9 2 2 2 1.45 0 2.26-1.44 1.93-2.51l4.55-4.56c.3.09.74.09 1.04 0l2.55 2.55C12.73 16.55 13.54 18 15 18c1.45 0 2.27-1.44 1.93-2.52l3.56-3.55c1.07.33 2.51-.48 2.51-1.93 0-1.1-.9-2-2-2z"/><path d="m15 9 .94-2.07L18 6l-2.06-.93L15 3l-.92 2.07L12 6l2.08.93zM3.5 11 4 9l2-.5L4 8l-.5-2L3 8l-2 .5L3 9z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/install_desktop.svg b/html/matt-chat/uswds/img/material-icons/install_desktop.svg
new file mode 100644
index 0000000..3b19164
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/install_desktop.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 17H4V5h8V3H4c-1.11 0-2 .89-2 2v12a2 2 0 0 0 2 2h4v2h8v-2h4c1.1 0 2-.9 2-2v-3h-2v3z"/><path d="m17 14 5-5-1.41-1.41L18 10.17V3h-2v7.17l-2.59-2.58L12 9z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/install_mobile.svg b/html/matt-chat/uswds/img/material-icons/install_mobile.svg
new file mode 100644
index 0000000..fbdc20d
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/install_mobile.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 18H7V6h7V1H7c-1.1 0-2 .9-2 2v18c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2v-5h-2v2z"/><path d="m18 14 5-5-1.41-1.41L19 10.17V3h-2v7.17l-2.59-2.58L13 9z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/integration_instructions.svg b/html/matt-chat/uswds/img/material-icons/integration_instructions.svg
new file mode 100644
index 0000000..538df48
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/integration_instructions.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3h-4.18C14.4 1.84 13.3 1 12 1s-2.4.84-2.82 2H5c-.14 0-.27.01-.4.04a2.008 2.008 0 0 0-1.44 1.19c-.1.23-.16.49-.16.77v14c0 .27.06.54.16.78s.25.45.43.64c.27.27.62.47 1.01.55.13.02.26.03.4.03h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-8 11.17-1.41 1.42L6 12l3.59-3.59L11 9.83 8.83 12 11 14.17zm1-9.92c-.41 0-.75-.34-.75-.75s.34-.75.75-.75.75.34.75.75-.34.75-.75.75zm2.41 11.34L13 14.17 15.17 12 13 9.83l1.41-1.42L18 12l-3.59 3.59z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/interests.svg b/html/matt-chat/uswds/img/material-icons/interests.svg
new file mode 100644
index 0000000..d35c299
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/interests.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M7.02 13c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zM13 13v8h8v-8h-8zM7 2l-5 9h10L7 2zm12.25.5c-1.06 0-1.81.56-2.25 1.17-.44-.61-1.19-1.17-2.25-1.17C13.19 2.5 12 3.78 12 5.25c0 2 2.42 3.42 5 5.75 2.58-2.33 5-3.75 5-5.75 0-1.47-1.19-2.75-2.75-2.75z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/interpreter_mode.svg b/html/matt-chat/uswds/img/material-icons/interpreter_mode.svg
new file mode 100644
index 0000000..fdbe6d8
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/interpreter_mode.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20.5 16.5c-.83 0-1.5-.67-1.5-1.5v-2.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5V15c0 .83-.67 1.5-1.5 1.5zM20 20h1v-1.54c1.69-.24 3-1.7 3-3.46h-1a2.5 2.5 0 0 1-5 0h-1c0 1.76 1.31 3.22 3 3.46V20zM9 12c-2.21 0-4-1.79-4-4a3.999 3.999 0 0 1 5.34-3.77A5.938 5.938 0 0 0 9 8c0 1.43.5 2.74 1.34 3.77-.42.15-.87.23-1.34.23zm-1.89 1.13A4.965 4.965 0 0 0 5 17.22V20H1v-2.78c0-1.12.61-2.15 1.61-2.66 1.24-.64 2.76-1.19 4.5-1.43zM11 8c0-2.21 1.79-4 4-4s4 1.79 4 4-1.79 4-4 4-4-1.79-4-4zm7.32 12a4.997 4.997 0 0 1-2.82-4.5c0-.89.23-1.73.64-2.45-.37-.03-.75-.05-1.14-.05-2.53 0-4.71.7-6.39 1.56A2.97 2.97 0 0 0 7 17.22V20h11.32z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/inventory.svg b/html/matt-chat/uswds/img/material-icons/inventory.svg
new file mode 100644
index 0000000..d676f80
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/inventory.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 2H4c-1 0-2 .9-2 2v3.01c0 .72.43 1.34 1 1.69V20c0 1.1 1.1 2 2 2h14c.9 0 2-.9 2-2V8.7c.57-.35 1-.97 1-1.69V4c0-1.1-1-2-2-2zm-5 12H9v-2h6v2zm5-7H4V4l16-.02V7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/inventory_2.svg b/html/matt-chat/uswds/img/material-icons/inventory_2.svg
new file mode 100644
index 0000000..cbc3aa2
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/inventory_2.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 2H4c-1 0-2 .9-2 2v3.01c0 .72.43 1.34 1 1.69V20c0 1.1 1.1 2 2 2h14c.9 0 2-.9 2-2V8.7c.57-.35 1-.97 1-1.69V4c0-1.1-1-2-2-2zm-5 12H9v-2h6v2zm5-7H4V4h16v3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/invert_colors.svg b/html/matt-chat/uswds/img/material-icons/invert_colors.svg
new file mode 100644
index 0000000..bd3debf
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/invert_colors.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 4.81V19c-3.31 0-6-2.63-6-5.87 0-1.56.62-3.03 1.75-4.14L12 4.81M6.35 7.56C4.9 8.99 4 10.96 4 13.13 4 17.48 7.58 21 12 21s8-3.52 8-7.87c0-2.17-.9-4.14-2.35-5.57L12 2 6.35 7.56z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/invert_colors_off.svg b/html/matt-chat/uswds/img/material-icons/invert_colors_off.svg
new file mode 100644
index 0000000..0fd40c6
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/invert_colors_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21.19 21.19 2.81 2.81 1.39 4.22l4.2 4.2a7.73 7.73 0 0 0-1.6 4.7C4 17.48 7.58 21 12 21c1.75 0 3.36-.56 4.67-1.5l3.1 3.1 1.42-1.41zM12 19c-3.31 0-6-2.63-6-5.87 0-1.19.36-2.32 1.02-3.28L12 14.83V19zM8.38 5.56 12 2l5.65 5.56C19.1 8.99 20 10.96 20 13.13c0 1.18-.27 2.29-.74 3.3L12 9.17V4.81L9.8 6.97 8.38 5.56z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/ios_share.svg b/html/matt-chat/uswds/img/material-icons/ios_share.svg
new file mode 100644
index 0000000..ab3c5d1
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/ios_share.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m16 5-1.42 1.42-1.59-1.59V16h-1.98V4.83L9.42 6.42 8 5l4-4 4 4zm4 5v11c0 1.1-.9 2-2 2H6a2 2 0 0 1-2-2V10c0-1.11.89-2 2-2h3v2H6v11h12V10h-3V8h3a2 2 0 0 1 2 2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/iron.svg b/html/matt-chat/uswds/img/material-icons/iron.svg
new file mode 100644
index 0000000..fa65482
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/iron.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 6c-1.66 0-3 1.34-3 3v4c0 .55-.45 1-1 1v-4c0-1.66-1.34-3-3-3h-4c-1.66 0-3 1.34-3 3h2c0-.55.45-1 1-1h4c.55 0 1 .45 1 1v1H6c-2.21 0-4 1.79-4 4v3h15v-2c1.66 0 3-1.34 3-3V9c0-.55.45-1 1-1h1V6h-1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/iso.svg b/html/matt-chat/uswds/img/material-icons/iso.svg
new file mode 100644
index 0000000..873aaa2
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/iso.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM5.5 7.5h2v-2H9v2h2V9H9v2H7.5V9h-2V7.5zM19 19H5L19 5v14zm-2-2v-1.5h-5V17h5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/javascript.svg b/html/matt-chat/uswds/img/material-icons/javascript.svg
new file mode 100644
index 0000000..d157be1
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/javascript.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 14v-1h1.5v.5h2v-1H13c-.55 0-1-.45-1-1V10c0-.55.45-1 1-1h3c.55 0 1 .45 1 1v1h-1.5v-.5h-2v1H16c.55 0 1 .45 1 1V14c0 .55-.45 1-1 1h-3c-.55 0-1-.45-1-1zM9 9v4.5H7.5v-1H6v1c0 .83.67 1.5 1.5 1.5H9c.83 0 1.5-.67 1.5-1.5V9H9z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/join_full.svg b/html/matt-chat/uswds/img/material-icons/join_full.svg
new file mode 100644
index 0000000..e5dc2b1
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/join_full.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><ellipse cx="12" cy="12" rx="3" ry="5.74"/><path d="M7.5 12c0-.97.23-4.16 3.03-6.5C9.75 5.19 8.9 5 8 5c-3.86 0-7 3.14-7 7s3.14 7 7 7c.9 0 1.75-.19 2.53-.5-2.8-2.34-3.03-5.53-3.03-6.5zM16 5c-.9 0-1.75.19-2.53.5 2.8 2.34 3.03 5.53 3.03 6.5 0 .97-.23 4.16-3.03 6.5.78.31 1.63.5 2.53.5 3.86 0 7-3.14 7-7s-3.14-7-7-7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/join_inner.svg b/html/matt-chat/uswds/img/material-icons/join_inner.svg
new file mode 100644
index 0000000..3a3bec1
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/join_inner.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><ellipse cx="12" cy="12" rx="3" ry="5.74"/><path d="M9.04 16.87c-.33.08-.68.13-1.04.13-2.76 0-5-2.24-5-5s2.24-5 5-5c.36 0 .71.05 1.04.13.39-.56.88-1.12 1.49-1.63C9.75 5.19 8.9 5 8 5c-3.86 0-7 3.14-7 7s3.14 7 7 7c.9 0 1.75-.19 2.53-.5-.61-.51-1.1-1.07-1.49-1.63zM16 5c-.9 0-1.75.19-2.53.5.61.51 1.1 1.07 1.49 1.63.33-.08.68-.13 1.04-.13 2.76 0 5 2.24 5 5s-2.24 5-5 5c-.36 0-.71-.05-1.04-.13-.39.56-.88 1.12-1.49 1.63.78.31 1.63.5 2.53.5 3.86 0 7-3.14 7-7s-3.14-7-7-7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/join_left.svg b/html/matt-chat/uswds/img/material-icons/join_left.svg
new file mode 100644
index 0000000..245caad
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/join_left.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><ellipse cx="12" cy="12" rx="3" ry="5.74"/><path d="M7.5 12c0-.97.23-4.16 3.03-6.5C9.75 5.19 8.9 5 8 5c-3.86 0-7 3.14-7 7s3.14 7 7 7c.9 0 1.75-.19 2.53-.5-2.8-2.34-3.03-5.53-3.03-6.5zM16 5c-.9 0-1.75.19-2.53.5.61.51 1.1 1.07 1.49 1.63.33-.08.68-.13 1.04-.13 2.76 0 5 2.24 5 5s-2.24 5-5 5c-.36 0-.71-.05-1.04-.13-.39.56-.88 1.12-1.49 1.63.78.31 1.63.5 2.53.5 3.86 0 7-3.14 7-7s-3.14-7-7-7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/join_right.svg b/html/matt-chat/uswds/img/material-icons/join_right.svg
new file mode 100644
index 0000000..c5ddc12
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/join_right.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><ellipse cx="12" cy="12" rx="3" ry="5.74"/><path d="M16.5 12c0 .97-.23 4.16-3.03 6.5.78.31 1.63.5 2.53.5 3.86 0 7-3.14 7-7s-3.14-7-7-7c-.9 0-1.75.19-2.53.5 2.8 2.34 3.03 5.53 3.03 6.5zM8 19c.9 0 1.75-.19 2.53-.5-.61-.51-1.1-1.07-1.49-1.63-.33.08-.68.13-1.04.13-2.76 0-5-2.24-5-5s2.24-5 5-5c.36 0 .71.05 1.04.13.39-.56.88-1.12 1.49-1.63C9.75 5.19 8.9 5 8 5c-3.86 0-7 3.14-7 7s3.14 7 7 7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/kayaking.svg b/html/matt-chat/uswds/img/material-icons/kayaking.svg
new file mode 100644
index 0000000..01bfe69
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/kayaking.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 23c-1.03 0-2.06-.25-3-.75-1.89 1-4.11 1-6 0-1.89 1-4.11 1-6 0-.95.5-1.97.75-3 .75H2v-2h1c1.04 0 2.08-.35 3-1 1.83 1.3 4.17 1.3 6 0 1.83 1.3 4.17 1.3 6 0 .91.65 1.96 1 3 1h1v2h-1zM12 5.5c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12 12s-1.52.71-3.93 1.37c-.82-.23-1.53-.75-2.07-1.37-.73.84-1.8 1.5-3 1.5s-2.27-.66-3-1.5c-.73.84-1.8 1.5-3 1.5s-2.27-.66-3-1.5c-.54.61-1.25 1.13-2.07 1.37C1.52 18.21 0 17.5 0 17.5s2.93-1.36 7.13-2.08l1.35-4.17c.31-.95 1.32-1.47 2.27-1.16.09.03.19.07.27.11l2.47 1.3 2.84-1.5 1.65-3.71-.51-1.32L18.8 2 22 3.43 20.67 6.4l-1.31.5-3.72 8.34c4.85.63 8.36 2.26 8.36 2.26zm-8.98-4.54-1.52.8-1.75-.92-.71 2.17c.32 0 .64-.01.96-.01.71 0 1.4.03 2.07.08l.95-2.12z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/kebab_dining.svg b/html/matt-chat/uswds/img/material-icons/kebab_dining.svg
new file mode 100644
index 0000000..951802e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/kebab_dining.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M7.75 8H11v5H7.75v1h.75a2.5 2.5 0 0 1 0 5h-.75v4h-1.5v-4H5.5a2.5 2.5 0 0 1 0-5h.75v-1H3V8h3.25V7H5.5a2.5 2.5 0 0 1 0-5h.75V1h1.5v1h.75a2.5 2.5 0 0 1 0 5h-.75v1zm10-1h.75a2.5 2.5 0 0 0 0-5h-.75V1h-1.5v1h-.75a2.5 2.5 0 0 0 0 5h.75v1H13v5h3.25v1h-.75a2.5 2.5 0 0 0 0 5h.75v4h1.5v-4h.75a2.5 2.5 0 0 0 0-5h-.75v-1H21V8h-3.25V7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/key.svg b/html/matt-chat/uswds/img/material-icons/key.svg
new file mode 100644
index 0000000..9743b18
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/key.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 10h-8.35A5.99 5.99 0 0 0 7 6c-3.31 0-6 2.69-6 6s2.69 6 6 6a5.99 5.99 0 0 0 5.65-4H13l2 2 2-2 2 2 4-4.04L21 10zM7 15c-1.65 0-3-1.35-3-3s1.35-3 3-3 3 1.35 3 3-1.35 3-3 3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/key_off.svg b/html/matt-chat/uswds/img/material-icons/key_off.svg
new file mode 100644
index 0000000..55806b1
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/key_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16.91 14.09 17 14l2 2 4-4.04L21 10h-8.17l4.08 4.09zM3.98 6.81A6.012 6.012 0 0 0 1 12c0 3.31 2.69 6 6 6 2.21 0 4.15-1.2 5.18-2.99l7.59 7.59 1.41-1.41L2.81 2.81 1.39 4.22l2.59 2.59zm5.93 5.93A3.015 3.015 0 0 1 7 15c-1.65 0-3-1.35-3-3 0-1.4.97-2.58 2.26-2.91l3.65 3.65z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/keyboard.svg b/html/matt-chat/uswds/img/material-icons/keyboard.svg
new file mode 100644
index 0000000..acbf11c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/keyboard.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 5H4c-1.1 0-1.99.9-1.99 2L2 17c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm-9 3h2v2h-2V8zm0 3h2v2h-2v-2zM8 8h2v2H8V8zm0 3h2v2H8v-2zm-1 2H5v-2h2v2zm0-3H5V8h2v2zm9 7H8v-2h8v2zm0-4h-2v-2h2v2zm0-3h-2V8h2v2zm3 3h-2v-2h2v2zm0-3h-2V8h2v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/keyboard_alt.svg b/html/matt-chat/uswds/img/material-icons/keyboard_alt.svg
new file mode 100644
index 0000000..1356f6a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/keyboard_alt.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 4H3c-1.1 0-2 .9-2 2v13c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zM7 12v2H5v-2h2zm-2-2V8h2v2H5zm6 2v2H9v-2h2zm-2-2V8h2v2H9zm7 6v1H8v-1h8zm-1-4v2h-2v-2h2zm-2-2V8h2v2h-2zm4 4v-2h2v2h-2zm2-4h-2V8h2v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/keyboard_arrow_down.svg b/html/matt-chat/uswds/img/material-icons/keyboard_arrow_down.svg
new file mode 100644
index 0000000..76cf7a2
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/keyboard_arrow_down.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M7.41 8.59 12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/keyboard_arrow_left.svg b/html/matt-chat/uswds/img/material-icons/keyboard_arrow_left.svg
new file mode 100644
index 0000000..d44b245
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/keyboard_arrow_left.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15.41 16.59 10.83 12l4.58-4.59L14 6l-6 6 6 6 1.41-1.41z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/keyboard_arrow_right.svg b/html/matt-chat/uswds/img/material-icons/keyboard_arrow_right.svg
new file mode 100644
index 0000000..aae64cf
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/keyboard_arrow_right.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M8.59 16.59 13.17 12 8.59 7.41 10 6l6 6-6 6-1.41-1.41z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/keyboard_arrow_up.svg b/html/matt-chat/uswds/img/material-icons/keyboard_arrow_up.svg
new file mode 100644
index 0000000..19362f2
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/keyboard_arrow_up.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M7.41 15.41 12 10.83l4.59 4.58L18 14l-6-6-6 6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/keyboard_backspace.svg b/html/matt-chat/uswds/img/material-icons/keyboard_backspace.svg
new file mode 100644
index 0000000..26fc18e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/keyboard_backspace.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 11H6.83l3.58-3.59L9 6l-6 6 6 6 1.41-1.41L6.83 13H21z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/keyboard_capslock.svg b/html/matt-chat/uswds/img/material-icons/keyboard_capslock.svg
new file mode 100644
index 0000000..8ddb551
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/keyboard_capslock.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 8.41 16.59 13 18 11.59l-6-6-6 6L7.41 13 12 8.41zM6 18h12v-2H6v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/keyboard_command_key.svg b/html/matt-chat/uswds/img/material-icons/keyboard_command_key.svg
new file mode 100644
index 0000000..a0d793a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/keyboard_command_key.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17.5 3C15.57 3 14 4.57 14 6.5V8h-4V6.5C10 4.57 8.43 3 6.5 3S3 4.57 3 6.5 4.57 10 6.5 10H8v4H6.5C4.57 14 3 15.57 3 17.5S4.57 21 6.5 21s3.5-1.57 3.5-3.5V16h4v1.5c0 1.93 1.57 3.5 3.5 3.5s3.5-1.57 3.5-3.5-1.57-3.5-3.5-3.5H16v-4h1.5c1.93 0 3.5-1.57 3.5-3.5S19.43 3 17.5 3zM16 8V6.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5S18.33 8 17.5 8H16zM6.5 8C5.67 8 5 7.33 5 6.5S5.67 5 6.5 5 8 5.67 8 6.5V8H6.5zm3.5 6v-4h4v4h-4zm7.5 5c-.83 0-1.5-.67-1.5-1.5V16h1.5c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5zm-11 0c-.83 0-1.5-.67-1.5-1.5S5.67 16 6.5 16H8v1.5c0 .83-.67 1.5-1.5 1.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/keyboard_control_key.svg b/html/matt-chat/uswds/img/material-icons/keyboard_control_key.svg
new file mode 100644
index 0000000..ca3e3e1
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/keyboard_control_key.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m5 12 1.41 1.41L12 7.83l5.59 5.58L19 12l-7-7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/keyboard_double_arrow_down.svg b/html/matt-chat/uswds/img/material-icons/keyboard_double_arrow_down.svg
new file mode 100644
index 0000000..6123b8d
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/keyboard_double_arrow_down.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 6.41 16.59 5 12 9.58 7.41 5 6 6.41l6 6z"/><path d="m18 13-1.41-1.41L12 16.17l-4.59-4.58L6 13l6 6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/keyboard_double_arrow_left.svg b/html/matt-chat/uswds/img/material-icons/keyboard_double_arrow_left.svg
new file mode 100644
index 0000000..5d9a2d2
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/keyboard_double_arrow_left.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17.59 18 19 16.59 14.42 12 19 7.41 17.59 6l-6 6z"/><path d="m11 18 1.41-1.41L7.83 12l4.58-4.59L11 6l-6 6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/keyboard_double_arrow_right.svg b/html/matt-chat/uswds/img/material-icons/keyboard_double_arrow_right.svg
new file mode 100644
index 0000000..3d22b1a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/keyboard_double_arrow_right.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M6.41 6 5 7.41 9.58 12 5 16.59 6.41 18l6-6z"/><path d="m13 6-1.41 1.41L16.17 12l-4.58 4.59L13 18l6-6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/keyboard_double_arrow_up.svg b/html/matt-chat/uswds/img/material-icons/keyboard_double_arrow_up.svg
new file mode 100644
index 0000000..1e15a14
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/keyboard_double_arrow_up.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M6 17.59 7.41 19 12 14.42 16.59 19 18 17.59l-6-6z"/><path d="m6 11 1.41 1.41L12 7.83l4.59 4.58L18 11l-6-6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/keyboard_hide.svg b/html/matt-chat/uswds/img/material-icons/keyboard_hide.svg
new file mode 100644
index 0000000..8a3e731
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/keyboard_hide.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 3H4c-1.1 0-1.99.9-1.99 2L2 15c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-9 3h2v2h-2V6zm0 3h2v2h-2V9zM8 6h2v2H8V6zm0 3h2v2H8V9zm-1 2H5V9h2v2zm0-3H5V6h2v2zm9 7H8v-2h8v2zm0-4h-2V9h2v2zm0-3h-2V6h2v2zm3 3h-2V9h2v2zm0-3h-2V6h2v2zm-7 15 4-4H8l4 4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/keyboard_option_key.svg b/html/matt-chat/uswds/img/material-icons/keyboard_option_key.svg
new file mode 100644
index 0000000..06e415f
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/keyboard_option_key.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15 5h6v2h-6zM9 5H3v2h4.85l6.92 12H21v-2h-5.07z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/keyboard_return.svg b/html/matt-chat/uswds/img/material-icons/keyboard_return.svg
new file mode 100644
index 0000000..48b52b6
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/keyboard_return.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 7v4H5.83l3.58-3.59L8 6l-6 6 6 6 1.41-1.41L5.83 13H21V7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/keyboard_tab.svg b/html/matt-chat/uswds/img/material-icons/keyboard_tab.svg
new file mode 100644
index 0000000..c2b3468
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/keyboard_tab.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11.59 7.41 15.17 11H1v2h14.17l-3.59 3.59L13 18l6-6-6-6-1.41 1.41zM20 6v12h2V6h-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/keyboard_voice.svg b/html/matt-chat/uswds/img/material-icons/keyboard_voice.svg
new file mode 100644
index 0000000..513e0fd
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/keyboard_voice.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 15c1.66 0 2.99-1.34 2.99-3L15 6c0-1.66-1.34-3-3-3S9 4.34 9 6v6c0 1.66 1.34 3 3 3zm5.3-3c0 3-2.54 5.1-5.3 5.1S6.7 15 6.7 12H5c0 3.42 2.72 6.23 6 6.72V22h2v-3.28c3.28-.48 6-3.3 6-6.72h-1.7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/king_bed.svg b/html/matt-chat/uswds/img/material-icons/king_bed.svg
new file mode 100644
index 0000000..dbfc6b0
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/king_bed.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 10V7c0-1.1-.9-2-2-2H6c-1.1 0-2 .9-2 2v3c-1.1 0-2 .9-2 2v5h1.33L4 19h1l.67-2h12.67l.66 2h1l.67-2H22v-5c0-1.1-.9-2-2-2zm-9 0H6V7h5v3zm7 0h-5V7h5v3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/kitchen.svg b/html/matt-chat/uswds/img/material-icons/kitchen.svg
new file mode 100644
index 0000000..7203823
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/kitchen.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 9V4c0-1.1-.9-2-2-2H6c-1.1 0-2 .9-2 2v5h16zM8 5h2v3H8V5zm-4 6v9c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2v-9H4zm6 6H8v-5h2v5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/kitesurfing.svg b/html/matt-chat/uswds/img/material-icons/kitesurfing.svg
new file mode 100644
index 0000000..ff3af2d
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/kitesurfing.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M6 3c0-1.1.9-2 2-2s2 .9 2 2-.9 2-2 2-2-.9-2-2zm14.06-2h-2.12L15.5 3.44l1.06 1.06 3.5-3.5zM22 23v-2h-1c-1.04 0-2.08-.35-3-1-1.83 1.3-4.17 1.3-6 0-1.83 1.3-4.17 1.3-6 0-.91.65-1.96 1-3 1H2v2h1c1.03 0 2.05-.25 3-.75 1.89 1 4.11 1 6 0 1.89 1 4.11 1 6 0 .95.5 1.97.75 3 .75h1zm-1-9.72c0 1.44-2.19 3.62-5.04 5.58-.31.09-.63.14-.96.14-1.2 0-2.27-.66-3-1.5-.73.84-1.8 1.5-3 1.5-.94 0-1.81-.41-2.49-.99.46-.39.96-.78 1.49-1.17l-1.55-2.97A4.06 4.06 0 0 1 6 12V8c0-1.1.9-2 2-2h3c1.38 0 2.63-.56 3.54-1.46l1.41 1.41A7.018 7.018 0 0 1 11 8H9.6v3.5h2.8l1.69 1.88c1.95-.84 3.77-1.38 5.06-1.38.84 0 1.85.25 1.85 1.28zm-8.8.99-.7-.77-2.5.1.83 2.01c.59-.38 1.81-1.06 2.37-1.34z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/label.svg b/html/matt-chat/uswds/img/material-icons/label.svg
new file mode 100644
index 0000000..e0f42a3
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/label.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17.63 5.84C17.27 5.33 16.67 5 16 5L5 5.01C3.9 5.01 3 5.9 3 7v10c0 1.1.9 1.99 2 1.99L16 19c.67 0 1.27-.33 1.63-.84L22 12l-4.37-6.16z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/label_important.svg b/html/matt-chat/uswds/img/material-icons/label_important.svg
new file mode 100644
index 0000000..64564ee
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/label_important.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m3.5 18.99 11 .01c.67 0 1.27-.33 1.63-.84L20.5 12l-4.37-6.16c-.36-.51-.96-.84-1.63-.84l-11 .01L8.34 12 3.5 18.99z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/label_off.svg b/html/matt-chat/uswds/img/material-icons/label_off.svg
new file mode 100644
index 0000000..abb13e0
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/label_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m3.25 2.75 17 17L19 21l-2-2H5c-1.1 0-2-.9-2-2V7c0-.55.23-1.05.59-1.41L2 4l1.25-1.25zM22 12l-4.37-6.16C17.27 5.33 16.67 5 16 5H8l11 11 3-4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/lan.svg b/html/matt-chat/uswds/img/material-icons/lan.svg
new file mode 100644
index 0000000..55c6883
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/lan.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13 22h8v-7h-3v-4h-5V9h3V2H8v7h3v2H6v4H3v7h8v-7H8v-2h8v2h-3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/landscape.svg b/html/matt-chat/uswds/img/material-icons/landscape.svg
new file mode 100644
index 0000000..a759b44
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/landscape.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m14 6-3.75 5 2.85 3.8-1.6 1.2C9.81 13.75 7 10 7 10l-6 8h22L14 6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/landslide.svg b/html/matt-chat/uswds/img/material-icons/landslide.svg
new file mode 100644
index 0000000..5acc486
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/landslide.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m15.47 13.79-2.58-1.03L6 15.05l-4-1.54v2.1l4 1.34zm-4.9-2.37L8 8H2v3.61l4 1.34zM6 19.05l-4-1.33V22h20l-4.97-6.62zM17 6V1l-5-1-3 2v4l3 2zm1.5 1L16 9v3l2.5 2 4.5-2V8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/language.svg b/html/matt-chat/uswds/img/material-icons/language.svg
new file mode 100644
index 0000000..d696664
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/language.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zm6.93 6h-2.95a15.65 15.65 0 0 0-1.38-3.56A8.03 8.03 0 0 1 18.92 8zM12 4.04c.83 1.2 1.48 2.53 1.91 3.96h-3.82c.43-1.43 1.08-2.76 1.91-3.96zM4.26 14C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2 0 .68.06 1.34.14 2H4.26zm.82 2h2.95c.32 1.25.78 2.45 1.38 3.56A7.987 7.987 0 0 1 5.08 16zm2.95-8H5.08a7.987 7.987 0 0 1 4.33-3.56A15.65 15.65 0 0 0 8.03 8zM12 19.96c-.83-1.2-1.48-2.53-1.91-3.96h3.82c-.43 1.43-1.08 2.76-1.91 3.96zM14.34 14H9.66c-.09-.66-.16-1.32-.16-2 0-.68.07-1.35.16-2h4.68c.09.65.16 1.32.16 2 0 .68-.07 1.34-.16 2zm.25 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95a8.03 8.03 0 0 1-4.33 3.56zM16.36 14c.08-.66.14-1.32.14-2 0-.68-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2h-3.38z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/laptop.svg b/html/matt-chat/uswds/img/material-icons/laptop.svg
new file mode 100644
index 0000000..405ef0a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/laptop.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 18c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2H0v2h24v-2h-4zM4 6h16v10H4V6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/laptop_chromebook.svg b/html/matt-chat/uswds/img/material-icons/laptop_chromebook.svg
new file mode 100644
index 0000000..0918cf8
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/laptop_chromebook.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M22 18V3H2v15H0v2h24v-2h-2zm-8 0h-4v-1h4v1zm6-3H4V5h16v10z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/laptop_mac.svg b/html/matt-chat/uswds/img/material-icons/laptop_mac.svg
new file mode 100644
index 0000000..e630d7e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/laptop_mac.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 18c1.1 0 1.99-.9 1.99-2L22 5c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v11c0 1.1.9 2 2 2H0c0 1.1.9 2 2 2h20c1.1 0 2-.9 2-2h-4zM4 5h16v11H4V5zm8 14c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/laptop_windows.svg b/html/matt-chat/uswds/img/material-icons/laptop_windows.svg
new file mode 100644
index 0000000..0522324
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/laptop_windows.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 18v-1c1.1 0 1.99-.9 1.99-2L22 5c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2v1H0v2h24v-2h-4zM4 5h16v10H4V5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/last_page.svg b/html/matt-chat/uswds/img/material-icons/last_page.svg
new file mode 100644
index 0000000..49fd298
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/last_page.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M5.59 7.41 10.18 12l-4.59 4.59L7 18l6-6-6-6zM16 6h2v12h-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/launch.svg b/html/matt-chat/uswds/img/material-icons/launch.svg
new file mode 100644
index 0000000..6a2f70b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/launch.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 19H5V5h7V3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/layers.svg b/html/matt-chat/uswds/img/material-icons/layers.svg
new file mode 100644
index 0000000..a8274c9
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/layers.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m11.99 18.54-7.37-5.73L3 14.07l9 7 9-7-1.63-1.27-7.38 5.74zM12 16l7.36-5.73L21 9l-9-7-9 7 1.63 1.27L12 16z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/layers_clear.svg b/html/matt-chat/uswds/img/material-icons/layers_clear.svg
new file mode 100644
index 0000000..b1a31ba
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/layers_clear.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m19.81 14.99 1.19-.92-1.43-1.43-1.19.92 1.43 1.43zm-.45-4.72L21 9l-9-7-2.91 2.27 7.87 7.88 2.4-1.88zM3.27 1 2 2.27l4.22 4.22L3 9l1.63 1.27L12 16l2.1-1.63 1.43 1.43L12 18.54l-7.37-5.73L3 14.07l9 7 4.95-3.85L20.73 21 22 19.73 3.27 1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/leaderboard.svg b/html/matt-chat/uswds/img/material-icons/leaderboard.svg
new file mode 100644
index 0000000..8d951bb
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/leaderboard.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M7.5 21H2V9h5.5v12zm7.25-18h-5.5v18h5.5V3zM22 11h-5.5v10H22V11z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/leak_add.svg b/html/matt-chat/uswds/img/material-icons/leak_add.svg
new file mode 100644
index 0000000..95697d2
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/leak_add.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M6 3H3v3c1.66 0 3-1.34 3-3zm8 0h-2a9 9 0 0 1-9 9v2c6.08 0 11-4.93 11-11zm-4 0H8c0 2.76-2.24 5-5 5v2c3.87 0 7-3.13 7-7zm0 18h2a9 9 0 0 1 9-9v-2c-6.07 0-11 4.93-11 11zm8 0h3v-3c-1.66 0-3 1.34-3 3zm-4 0h2c0-2.76 2.24-5 5-5v-2c-3.87 0-7 3.13-7 7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/leak_remove.svg b/html/matt-chat/uswds/img/material-icons/leak_remove.svg
new file mode 100644
index 0000000..6c3a643
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/leak_remove.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10 3H8c0 .37-.04.72-.12 1.06l1.59 1.59C9.81 4.84 10 3.94 10 3zM3 4.27l2.84 2.84C5.03 7.67 4.06 8 3 8v2c1.61 0 3.09-.55 4.27-1.46L8.7 9.97A8.99 8.99 0 0 1 3 12v2c2.71 0 5.19-.99 7.11-2.62l2.5 2.5A11.044 11.044 0 0 0 10 21h2c0-2.16.76-4.14 2.03-5.69l1.43 1.43A6.922 6.922 0 0 0 14 21h2c0-1.06.33-2.03.89-2.84L19.73 21 21 19.73 4.27 3 3 4.27zM14 3h-2c0 1.5-.37 2.91-1.02 4.16l1.46 1.46C13.42 6.98 14 5.06 14 3zm5.94 13.12c.34-.08.69-.12 1.06-.12v-2c-.94 0-1.84.19-2.66.52l1.6 1.6zm-4.56-4.56 1.46 1.46A8.98 8.98 0 0 1 21 12v-2c-2.06 0-3.98.58-5.62 1.56z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/legend_toggle.svg b/html/matt-chat/uswds/img/material-icons/legend_toggle.svg
new file mode 100644
index 0000000..fc7c3e3
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/legend_toggle.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 15H4v-2h16v2zm0 2H4v2h16v-2zm-5-6 5-3.55V5l-5 3.55L10 5 4 8.66V11l5.92-3.61L15 11z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/lens.svg b/html/matt-chat/uswds/img/material-icons/lens.svg
new file mode 100644
index 0000000..ced343a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/lens.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/lens_blur.svg b/html/matt-chat/uswds/img/material-icons/lens_blur.svg
new file mode 100644
index 0000000..0983b48
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/lens_blur.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M6 13c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0 4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0-8c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm-3 .5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zM6 5c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm15 5.5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zM14 7c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm0-3.5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zm-11 10c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm7 7c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm0-17c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zM10 7c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm0 5.5c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm8 .5c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0 4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0-8c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0-4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm3 8.5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zM14 17c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0 3.5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm-4-12c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm0 8.5c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm4-4.5c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm0-4c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/library_add.svg b/html/matt-chat/uswds/img/material-icons/library_add.svg
new file mode 100644
index 0000000..baea3e9
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/library_add.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6zm16-4H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-1 9h-4v4h-2v-4H9V9h4V5h2v4h4v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/library_add_check.svg b/html/matt-chat/uswds/img/material-icons/library_add_check.svg
new file mode 100644
index 0000000..7e3e0cf
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/library_add_check.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 2H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-7.53 12L9 10.5l1.4-1.41 2.07 2.08L17.6 6 19 7.41 12.47 14zM4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/library_books.svg b/html/matt-chat/uswds/img/material-icons/library_books.svg
new file mode 100644
index 0000000..614c7bf
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/library_books.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6zm16-4H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-1 9H9V9h10v2zm-4 4H9v-2h6v2zm4-8H9V5h10v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/library_music.svg b/html/matt-chat/uswds/img/material-icons/library_music.svg
new file mode 100644
index 0000000..7e6462b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/library_music.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 2H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-2 5h-3v5.5a2.5 2.5 0 0 1-5 0 2.5 2.5 0 0 1 2.5-2.5c.57 0 1.08.19 1.5.51V5h4v2zM4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/light.svg b/html/matt-chat/uswds/img/material-icons/light.svg
new file mode 100644
index 0000000..81757e0
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/light.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13 6.06V3h-2v3.06c-4.5.5-8 4.31-8 8.93C3 16.1 3.9 17 5.01 17H8c0 2.21 1.79 4 4 4s4-1.79 4-4h2.99c1.11 0 2.01-.9 2.01-2.01 0-4.62-3.5-8.43-8-8.93zM12 15H5c0-3.86 3.14-7 7-7s7 3.14 7 7h-7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/light_mode.svg b/html/matt-chat/uswds/img/material-icons/light_mode.svg
new file mode 100644
index 0000000..4a29693
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/light_mode.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 7c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5zM2 13h2c.55 0 1-.45 1-1s-.45-1-1-1H2c-.55 0-1 .45-1 1s.45 1 1 1zm18 0h2c.55 0 1-.45 1-1s-.45-1-1-1h-2c-.55 0-1 .45-1 1s.45 1 1 1zM11 2v2c0 .55.45 1 1 1s1-.45 1-1V2c0-.55-.45-1-1-1s-1 .45-1 1zm0 18v2c0 .55.45 1 1 1s1-.45 1-1v-2c0-.55-.45-1-1-1s-1 .45-1 1zM5.99 4.58a.996.996 0 0 0-1.41 0 .996.996 0 0 0 0 1.41l1.06 1.06c.39.39 1.03.39 1.41 0s.39-1.03 0-1.41L5.99 4.58zm12.37 12.37a.996.996 0 0 0-1.41 0 .996.996 0 0 0 0 1.41l1.06 1.06c.39.39 1.03.39 1.41 0a.996.996 0 0 0 0-1.41l-1.06-1.06zm1.06-10.96a.996.996 0 0 0 0-1.41.996.996 0 0 0-1.41 0l-1.06 1.06c-.39.39-.39 1.03 0 1.41s1.03.39 1.41 0l1.06-1.06zM7.05 18.36a.996.996 0 0 0 0-1.41.996.996 0 0 0-1.41 0l-1.06 1.06c-.39.39-.39 1.03 0 1.41s1.03.39 1.41 0l1.06-1.06z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/lightbulb.svg b/html/matt-chat/uswds/img/material-icons/lightbulb.svg
new file mode 100644
index 0000000..5f0ad4e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/lightbulb.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M9 21c0 .5.4 1 1 1h4c.6 0 1-.5 1-1v-1H9v1zm3-19C8.1 2 5 5.1 5 9c0 2.4 1.2 4.5 3 5.7V17c0 .5.4 1 1 1h6c.6 0 1-.5 1-1v-2.3c1.8-1.3 3-3.4 3-5.7 0-3.9-3.1-7-7-7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/lightbulb_circle.svg b/html/matt-chat/uswds/img/material-icons/lightbulb_circle.svg
new file mode 100644
index 0000000..35e714d
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/lightbulb_circle.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 17c-.83 0-1.5-.67-1.5-1.5h3c0 .83-.67 1.5-1.5 1.5zm3-2.5H9V15h6v1.5zm-.03-2.5H9.03A4.966 4.966 0 0 1 7 10c0-2.76 2.24-5 5-5s5 2.24 5 5c0 1.64-.8 3.09-2.03 4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/line_axis.svg b/html/matt-chat/uswds/img/material-icons/line_axis.svg
new file mode 100644
index 0000000..5b9a236
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/line_axis.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m22 7.43-1.41-1.41-4.03 4.53L9.5 4 2 11.51l1.5 1.5 6.14-6.15 5.59 5.18-1.73 1.95-4-4L2 17.5 3.5 19l6-6.01 4 4 3.19-3.59 3.9 3.61L22 15.6l-3.98-3.7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/line_style.svg b/html/matt-chat/uswds/img/material-icons/line_style.svg
new file mode 100644
index 0000000..7fc27b1
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/line_style.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 16h5v-2H3v2zm6.5 0h5v-2h-5v2zm6.5 0h5v-2h-5v2zM3 20h2v-2H3v2zm4 0h2v-2H7v2zm4 0h2v-2h-2v2zm4 0h2v-2h-2v2zm4 0h2v-2h-2v2zM3 12h8v-2H3v2zm10 0h8v-2h-8v2zM3 4v4h18V4H3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/line_weight.svg b/html/matt-chat/uswds/img/material-icons/line_weight.svg
new file mode 100644
index 0000000..e1321a7
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/line_weight.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 17h18v-2H3v2zm0 3h18v-1H3v1zm0-7h18v-3H3v3zm0-9v4h18V4H3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/linear_scale.svg b/html/matt-chat/uswds/img/material-icons/linear_scale.svg
new file mode 100644
index 0000000..7b7af58
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/linear_scale.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19.5 9.5c-1.03 0-1.9.62-2.29 1.5h-2.92c-.39-.88-1.26-1.5-2.29-1.5s-1.9.62-2.29 1.5H6.79c-.39-.88-1.26-1.5-2.29-1.5a2.5 2.5 0 0 0 0 5c1.03 0 1.9-.62 2.29-1.5h2.92c.39.88 1.26 1.5 2.29 1.5s1.9-.62 2.29-1.5h2.92c.39.88 1.26 1.5 2.29 1.5a2.5 2.5 0 0 0 0-5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/link.svg b/html/matt-chat/uswds/img/material-icons/link.svg
new file mode 100644
index 0000000..f39e2a7
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/link.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/link_off.svg b/html/matt-chat/uswds/img/material-icons/link_off.svg
new file mode 100644
index 0000000..0ea3587
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/link_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 7h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1 0 1.43-.98 2.63-2.31 2.98l1.46 1.46C20.88 15.61 22 13.95 22 12c0-2.76-2.24-5-5-5zm-1 4h-2.19l2 2H16zM2 4.27l3.11 3.11A4.991 4.991 0 0 0 2 12c0 2.76 2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1 0-1.59 1.21-2.9 2.76-3.07L8.73 11H8v2h2.73L13 15.27V17h1.73l4.01 4L20 19.74 3.27 3 2 4.27z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/linked_camera.svg b/html/matt-chat/uswds/img/material-icons/linked_camera.svg
new file mode 100644
index 0000000..ec78871
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/linked_camera.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><circle cx="12" cy="14" r="3.2"/><path d="M16 3.33c2.58 0 4.67 2.09 4.67 4.67H22c0-3.31-2.69-6-6-6v1.33M16 6c1.11 0 2 .89 2 2h1.33c0-1.84-1.49-3.33-3.33-3.33V6"/><path d="M17 9c0-1.11-.89-2-2-2V4H9L7.17 6H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V9h-5zm-5 10c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/liquor.svg b/html/matt-chat/uswds/img/material-icons/liquor.svg
new file mode 100644
index 0000000..d261641
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/liquor.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 14c0 1.3.84 2.4 2 2.82V20H3v2h6v-2H7v-3.18C8.16 16.4 9 15.3 9 14V6H3v8zm2-6h2v3H5V8zm15.63.54-.95-.32a.991.991 0 0 1-.68-.94V3c0-.55-.45-1-1-1h-3c-.55 0-1 .45-1 1v4.28c0 .43-.28.81-.68.95l-.95.32c-.82.27-1.37 1.03-1.37 1.89V20c0 1.1.9 2 2 2h7c1.1 0 2-.9 2-2v-9.56c0-.86-.55-1.62-1.37-1.9zM16 4h1v1h-1V4zm-3 6.44.95-.32C15.18 9.72 16 8.57 16 7.28V7h1v.28a3 3 0 0 0 2.05 2.85l.95.31V12h-7v-1.56zM20 20h-7v-2h7v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/list.svg b/html/matt-chat/uswds/img/material-icons/list.svg
new file mode 100644
index 0000000..f280e6a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/list.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 13h2v-2H3v2zm0 4h2v-2H3v2zm0-8h2V7H3v2zm4 4h14v-2H7v2zm0 4h14v-2H7v2zM7 7v2h14V7H7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/list_alt.svg b/html/matt-chat/uswds/img/material-icons/list_alt.svg
new file mode 100644
index 0000000..86d6ff6
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/list_alt.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 5v14H5V5h14m1.1-2H3.9c-.5 0-.9.4-.9.9v16.2c0 .4.4.9.9.9h16.2c.4 0 .9-.5.9-.9V3.9c0-.5-.5-.9-.9-.9zM11 7h6v2h-6V7zm0 4h6v2h-6v-2zm0 4h6v2h-6zM7 7h2v2H7zm0 4h2v2H7zm0 4h2v2H7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/live_help.svg b/html/matt-chat/uswds/img/material-icons/live_help.svg
new file mode 100644
index 0000000..61a361a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/live_help.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h4l3 3 3-3h4c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-6 16h-2v-2h2v2zm2.07-7.75-.9.92C13.45 11.9 13 12.5 13 14h-2v-.5c0-1.1.45-2.1 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41 0-1.1-.9-2-2-2s-2 .9-2 2H8c0-2.21 1.79-4 4-4s4 1.79 4 4c0 .88-.36 1.68-.93 2.25z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/live_tv.svg b/html/matt-chat/uswds/img/material-icons/live_tv.svg
new file mode 100644
index 0000000..fa41bd8
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/live_tv.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 6h-7.59l3.29-3.29L16 2l-4 4-4-4-.71.71L10.59 6H3a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V8a2 2 0 0 0-2-2zm0 14H3V8h18v12zM9 10v8l7-4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/living.svg b/html/matt-chat/uswds/img/material-icons/living.svg
new file mode 100644
index 0000000..c7190ce
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/living.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16.5 11.5c-.55 0-1 .45-1 1v2h-7v-2c0-.55-.45-1-1-1s-1 .45-1 1V16c0 .28.22.5.5.5h10c.28 0 .5-.22.5-.5v-3.5c0-.55-.45-1-1-1z"/><path d="M10 12.5v.5h4v-.5c0-1.3.99-2.35 2.25-2.47V9c0-.83-.67-1.5-1.5-1.5h-5.5c-.83 0-1.5.67-1.5 1.5v1.03A2.48 2.48 0 0 1 10 12.5z"/><path d="M20 2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-1 14c0 1.1-.9 2-2 2H7c-1.1 0-2-.9-2-2v-3.5c0-.92.51-1.72 1.25-2.15V9c0-1.66 1.34-3 3-3h5.5c1.66 0 3 1.34 3 3v1.35c.74.43 1.25 1.23 1.25 2.15V16z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/local_activity.svg b/html/matt-chat/uswds/img/material-icons/local_activity.svg
new file mode 100644
index 0000000..cb28463
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/local_activity.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 12c0-1.1.9-2 2-2V6c0-1.1-.9-2-2-2H4c-1.1 0-1.99.9-1.99 2v4c1.1 0 1.99.9 1.99 2s-.89 2-2 2v4c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2v-4c-1.1 0-2-.9-2-2zm-4.42 4.8L12 14.5l-3.58 2.3 1.08-4.12-3.29-2.69 4.24-.25L12 5.8l1.54 3.95 4.24.25-3.29 2.69 1.09 4.11z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/local_airport.svg b/html/matt-chat/uswds/img/material-icons/local_airport.svg
new file mode 100644
index 0000000..83d3141
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/local_airport.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M22 16v-2l-8.5-5V3.5c0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5V9L2 14v2l8.5-2.5V19L8 20.5V22l4-1 4 1v-1.5L13.5 19v-5.5L22 16z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/local_atm.svg b/html/matt-chat/uswds/img/material-icons/local_atm.svg
new file mode 100644
index 0000000..a893448
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/local_atm.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11 17h2v-1h1c.55 0 1-.45 1-1v-3c0-.55-.45-1-1-1h-3v-1h4V8h-2V7h-2v1h-1c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1h3v1H9v2h2v1zm9-13H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V6c0-1.11-.89-2-2-2zm0 14H4V6h16v12z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/local_bar.svg b/html/matt-chat/uswds/img/material-icons/local_bar.svg
new file mode 100644
index 0000000..565fb4b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/local_bar.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 5V3H3v2l8 9v5H6v2h12v-2h-5v-5l8-9zM7.43 7 5.66 5h12.69l-1.78 2H7.43z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/local_cafe.svg b/html/matt-chat/uswds/img/material-icons/local_cafe.svg
new file mode 100644
index 0000000..5994e0c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/local_cafe.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 3H4v10c0 2.21 1.79 4 4 4h6c2.21 0 4-1.79 4-4v-3h2a2 2 0 0 0 2-2V5c0-1.11-.89-2-2-2zm0 5h-2V5h2v3zM4 19h16v2H4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/local_car_wash.svg b/html/matt-chat/uswds/img/material-icons/local_car_wash.svg
new file mode 100644
index 0000000..611f73d
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/local_car_wash.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 5c.83 0 1.5-.67 1.5-1.5 0-1-1.5-2.7-1.5-2.7s-1.5 1.7-1.5 2.7c0 .83.67 1.5 1.5 1.5zm-5 0c.83 0 1.5-.67 1.5-1.5 0-1-1.5-2.7-1.5-2.7s-1.5 1.7-1.5 2.7c0 .83.67 1.5 1.5 1.5zM7 5c.83 0 1.5-.67 1.5-1.5C8.5 2.5 7 .8 7 .8S5.5 2.5 5.5 3.5C5.5 4.33 6.17 5 7 5zm11.92 3.01C18.72 7.42 18.16 7 17.5 7h-11c-.66 0-1.21.42-1.42 1.01L3 14v8c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1h12v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-8l-2.08-5.99zM6.5 18c-.83 0-1.5-.67-1.5-1.5S5.67 15 6.5 15s1.5.67 1.5 1.5S7.33 18 6.5 18zm11 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zM5 13l1.5-4.5h11L19 13H5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/local_convenience_store.svg b/html/matt-chat/uswds/img/material-icons/local_convenience_store.svg
new file mode 100644
index 0000000..8070a89
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/local_convenience_store.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 7V4H5v3H2v13h8v-4h4v4h8V7h-3zm-8 3H9v1h2v1H8V9h2V8H8V7h3v3zm5 2h-1v-2h-2V7h1v2h1V7h1v5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/local_dining.svg b/html/matt-chat/uswds/img/material-icons/local_dining.svg
new file mode 100644
index 0000000..bcf0100
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/local_dining.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m8.1 13.34 2.83-2.83L3.91 3.5a4.008 4.008 0 0 0 0 5.66l4.19 4.18zm6.78-1.81c1.53.71 3.68.21 5.27-1.38 1.91-1.91 2.28-4.65.81-6.12-1.46-1.46-4.2-1.1-6.12.81-1.59 1.59-2.09 3.74-1.38 5.27L3.7 19.87l1.41 1.41L12 14.41l6.88 6.88 1.41-1.41L13.41 13l1.47-1.47z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/local_drink.svg b/html/matt-chat/uswds/img/material-icons/local_drink.svg
new file mode 100644
index 0000000..595aeaf
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/local_drink.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m3 2 2.01 18.23C5.13 21.23 5.97 22 7 22h10c1.03 0 1.87-.77 1.99-1.77L21 2H3zm9 17c-1.66 0-3-1.34-3-3 0-2 3-5.4 3-5.4s3 3.4 3 5.4c0 1.66-1.34 3-3 3zm6.33-11H5.67l-.44-4h13.53l-.43 4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/local_fire_department.svg b/html/matt-chat/uswds/img/material-icons/local_fire_department.svg
new file mode 100644
index 0000000..cfac515
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/local_fire_department.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m12 12.9-2.13 2.09c-.56.56-.87 1.29-.87 2.07C9 18.68 10.35 20 12 20s3-1.32 3-2.94c0-.78-.31-1.52-.87-2.07L12 12.9z"/><path d="m16 6-.44.55C14.38 8.02 12 7.19 12 5.3V2S4 6 4 13c0 2.92 1.56 5.47 3.89 6.86-.56-.79-.89-1.76-.89-2.8 0-1.32.52-2.56 1.47-3.5L12 10.1l3.53 3.47c.95.93 1.47 2.17 1.47 3.5 0 1.02-.31 1.96-.85 2.75 1.89-1.15 3.29-3.06 3.71-5.3.66-3.55-1.07-6.9-3.86-8.52z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/local_florist.svg b/html/matt-chat/uswds/img/material-icons/local_florist.svg
new file mode 100644
index 0000000..e8b56c7
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/local_florist.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 22a9 9 0 0 0 9-9 9 9 0 0 0-9 9zM5.6 10.25a2.5 2.5 0 0 0 3.92 2.06l-.02.19a2.5 2.5 0 0 0 5 0l-.02-.19c.4.28.89.44 1.42.44a2.5 2.5 0 0 0 2.5-2.5c0-1-.59-1.85-1.43-2.25.84-.4 1.43-1.25 1.43-2.25a2.5 2.5 0 0 0-3.92-2.06l.02-.19a2.5 2.5 0 0 0-5 0l.02.19c-.4-.28-.89-.44-1.42-.44a2.5 2.5 0 0 0-2.5 2.5c0 1 .59 1.85 1.43 2.25-.84.4-1.43 1.25-1.43 2.25zM12 5.5a2.5 2.5 0 0 1 0 5 2.5 2.5 0 0 1 0-5zM3 13a9 9 0 0 0 9 9 9 9 0 0 0-9-9z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/local_gas_station.svg b/html/matt-chat/uswds/img/material-icons/local_gas_station.svg
new file mode 100644
index 0000000..237219f
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/local_gas_station.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m19.77 7.23.01-.01-3.72-3.72L15 4.56l2.11 2.11c-.94.36-1.61 1.26-1.61 2.33a2.5 2.5 0 0 0 2.5 2.5c.36 0 .69-.08 1-.21v7.21c0 .55-.45 1-1 1s-1-.45-1-1V14c0-1.1-.9-2-2-2h-1V5c0-1.1-.9-2-2-2H6c-1.1 0-2 .9-2 2v16h10v-7.5h1.5v5a2.5 2.5 0 0 0 5 0V9c0-.69-.28-1.32-.73-1.77zM12 10H6V5h6v5zm6 0c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/local_grocery_store.svg b/html/matt-chat/uswds/img/material-icons/local_grocery_store.svg
new file mode 100644
index 0000000..52e5ea8
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/local_grocery_store.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M7 18c-1.1 0-1.99.9-1.99 2S5.9 22 7 22s2-.9 2-2-.9-2-2-2zM1 2v2h2l3.6 7.59-1.35 2.45c-.16.28-.25.61-.25.96 0 1.1.9 2 2 2h12v-2H7.42c-.14 0-.25-.11-.25-.25l.03-.12.9-1.63h7.45c.75 0 1.41-.41 1.75-1.03l3.58-6.49A1.003 1.003 0 0 0 20 4H5.21l-.94-2H1zm16 16c-1.1 0-1.99.9-1.99 2s.89 2 1.99 2 2-.9 2-2-.9-2-2-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/local_hospital.svg b/html/matt-chat/uswds/img/material-icons/local_hospital.svg
new file mode 100644
index 0000000..85da4ff
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/local_hospital.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H5c-1.1 0-1.99.9-1.99 2L3 19c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-1 11h-4v4h-4v-4H6v-4h4V6h4v4h4v4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/local_hotel.svg b/html/matt-chat/uswds/img/material-icons/local_hotel.svg
new file mode 100644
index 0000000..f1cca2c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/local_hotel.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M7 13c1.66 0 3-1.34 3-3S8.66 7 7 7s-3 1.34-3 3 1.34 3 3 3zm12-6h-8v7H3V5H1v15h2v-3h18v3h2v-9c0-2.21-1.79-4-4-4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/local_laundry_service.svg b/html/matt-chat/uswds/img/material-icons/local_laundry_service.svg
new file mode 100644
index 0000000..6511137
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/local_laundry_service.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M9.17 16.83a4.008 4.008 0 0 0 5.66 0 4.008 4.008 0 0 0 0-5.66l-5.66 5.66zM18 2.01 6 2c-1.11 0-2 .89-2 2v16c0 1.11.89 2 2 2h12c1.11 0 2-.89 2-2V4c0-1.11-.89-1.99-2-1.99zM10 4c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zM7 4c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm5 16c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/local_library.svg b/html/matt-chat/uswds/img/material-icons/local_library.svg
new file mode 100644
index 0000000..5fa5109
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/local_library.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 11.55C9.64 9.35 6.48 8 3 8v11c3.48 0 6.64 1.35 9 3.55 2.36-2.19 5.52-3.55 9-3.55V8c-3.48 0-6.64 1.35-9 3.55zM12 8c1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3 1.34 3 3 3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/local_mall.svg b/html/matt-chat/uswds/img/material-icons/local_mall.svg
new file mode 100644
index 0000000..35683c7
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/local_mall.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 6h-2c0-2.76-2.24-5-5-5S7 3.24 7 6H5c-1.1 0-1.99.9-1.99 2L3 20c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm-7-3c1.66 0 3 1.34 3 3H9c0-1.66 1.34-3 3-3zm0 10c-2.76 0-5-2.24-5-5h2c0 1.66 1.34 3 3 3s3-1.34 3-3h2c0 2.76-2.24 5-5 5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/local_movies.svg b/html/matt-chat/uswds/img/material-icons/local_movies.svg
new file mode 100644
index 0000000..74652a6
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/local_movies.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 3v2h-2V3H8v2H6V3H4v18h2v-2h2v2h8v-2h2v2h2V3h-2zM8 17H6v-2h2v2zm0-4H6v-2h2v2zm0-4H6V7h2v2zm10 8h-2v-2h2v2zm0-4h-2v-2h2v2zm0-4h-2V7h2v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/local_offer.svg b/html/matt-chat/uswds/img/material-icons/local_offer.svg
new file mode 100644
index 0000000..5a897a7
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/local_offer.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m21.41 11.58-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/local_parking.svg b/html/matt-chat/uswds/img/material-icons/local_parking.svg
new file mode 100644
index 0000000..0cc3198
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/local_parking.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13 3H6v18h4v-6h3c3.31 0 6-2.69 6-6s-2.69-6-6-6zm.2 8H10V7h3.2c1.1 0 2 .9 2 2s-.9 2-2 2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/local_pharmacy.svg b/html/matt-chat/uswds/img/material-icons/local_pharmacy.svg
new file mode 100644
index 0000000..7272010
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/local_pharmacy.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 5h-2.64l1.14-3.14L17.15 1l-1.46 4H3v2l2 6-2 6v2h18v-2l-2-6 2-6V5zm-5 9h-3v3h-2v-3H8v-2h3V9h2v3h3v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/local_phone.svg b/html/matt-chat/uswds/img/material-icons/local_phone.svg
new file mode 100644
index 0000000..5908b6a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/local_phone.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1-9.39 0-17-7.61-17-17 0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57.11.35.03.74-.25 1.02l-2.2 2.2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/local_pizza.svg b/html/matt-chat/uswds/img/material-icons/local_pizza.svg
new file mode 100644
index 0000000..d67936e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/local_pizza.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C8.43 2 5.23 3.54 3.01 6L12 22l8.99-16C18.78 3.55 15.57 2 12 2zM7 7c0-1.1.9-2 2-2s2 .9 2 2-.9 2-2 2-2-.9-2-2zm5 8c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/local_play.svg b/html/matt-chat/uswds/img/material-icons/local_play.svg
new file mode 100644
index 0000000..cb28463
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/local_play.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 12c0-1.1.9-2 2-2V6c0-1.1-.9-2-2-2H4c-1.1 0-1.99.9-1.99 2v4c1.1 0 1.99.9 1.99 2s-.89 2-2 2v4c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2v-4c-1.1 0-2-.9-2-2zm-4.42 4.8L12 14.5l-3.58 2.3 1.08-4.12-3.29-2.69 4.24-.25L12 5.8l1.54 3.95 4.24.25-3.29 2.69 1.09 4.11z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/local_police.svg b/html/matt-chat/uswds/img/material-icons/local_police.svg
new file mode 100644
index 0000000..5e6f8dd
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/local_police.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 1 3 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V5l-9-4zm2.5 11.59.9 3.88-3.4-2.05-3.4 2.05.9-3.87-3-2.59 3.96-.34L12 6.02l1.54 3.64 3.96.34-3 2.59z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/local_post_office.svg b/html/matt-chat/uswds/img/material-icons/local_post_office.svg
new file mode 100644
index 0000000..876dbcd
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/local_post_office.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4-8 5-8-5V6l8 5 8-5v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/local_printshop.svg b/html/matt-chat/uswds/img/material-icons/local_printshop.svg
new file mode 100644
index 0000000..6128bd8
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/local_printshop.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 8H5c-1.66 0-3 1.34-3 3v6h4v4h12v-4h4v-6c0-1.66-1.34-3-3-3zm-3 11H8v-5h8v5zm3-7c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm-1-9H6v4h12V3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/local_see.svg b/html/matt-chat/uswds/img/material-icons/local_see.svg
new file mode 100644
index 0000000..2024fbc
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/local_see.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><circle cx="12" cy="12" r="3.2"/><path d="M9 2 7.17 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2h-3.17L15 2H9zm3 15c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/local_shipping.svg b/html/matt-chat/uswds/img/material-icons/local_shipping.svg
new file mode 100644
index 0000000..a512c1f
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/local_shipping.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 8h-3V4H3c-1.1 0-2 .9-2 2v11h2c0 1.66 1.34 3 3 3s3-1.34 3-3h6c0 1.66 1.34 3 3 3s3-1.34 3-3h2v-5l-3-4zM6 18.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm13.5-9 1.96 2.5H17V9.5h2.5zm-1.5 9c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/local_taxi.svg b/html/matt-chat/uswds/img/material-icons/local_taxi.svg
new file mode 100644
index 0000000..e3559e9
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/local_taxi.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18.92 6.01C18.72 5.42 18.16 5 17.5 5H15V3H9v2H6.5c-.66 0-1.21.42-1.42 1.01L3 12v8c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1h12v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-8l-2.08-5.99zM6.5 16c-.83 0-1.5-.67-1.5-1.5S5.67 13 6.5 13s1.5.67 1.5 1.5S7.33 16 6.5 16zm11 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zM5 11l1.5-4.5h11L19 11H5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/location_city.svg b/html/matt-chat/uswds/img/material-icons/location_city.svg
new file mode 100644
index 0000000..357849b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/location_city.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15 11V5l-3-3-3 3v2H3v14h18V11h-6zm-8 8H5v-2h2v2zm0-4H5v-2h2v2zm0-4H5V9h2v2zm6 8h-2v-2h2v2zm0-4h-2v-2h2v2zm0-4h-2V9h2v2zm0-4h-2V5h2v2zm6 12h-2v-2h2v2zm0-4h-2v-2h2v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/location_disabled.svg b/html/matt-chat/uswds/img/material-icons/location_disabled.svg
new file mode 100644
index 0000000..e6db459
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/location_disabled.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20.94 11A8.994 8.994 0 0 0 13 3.06V1h-2v2.06c-1.13.12-2.19.46-3.16.97l1.5 1.5A6.995 6.995 0 0 1 19 12c0 .94-.19 1.84-.52 2.65l1.5 1.5c.5-.96.84-2.02.97-3.15H23v-2h-2.06zM3 4.27l2.04 2.04A8.914 8.914 0 0 0 3.06 11H1v2h2.06A8.994 8.994 0 0 0 11 20.94V23h2v-2.06c1.77-.2 3.38-.91 4.69-1.98L19.73 21 21 19.73 4.27 3 3 4.27zm13.27 13.27a6.995 6.995 0 0 1-9.81-9.81l9.81 9.81z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/location_off.svg b/html/matt-chat/uswds/img/material-icons/location_off.svg
new file mode 100644
index 0000000..2fe89b7
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/location_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 6.5A2.5 2.5 0 0 1 14.5 9c0 .74-.33 1.39-.83 1.85l3.63 3.63c.98-1.86 1.7-3.8 1.7-5.48 0-3.87-3.13-7-7-7a7 7 0 0 0-5.04 2.15l3.19 3.19c.46-.52 1.11-.84 1.85-.84zm4.37 9.6-4.63-4.63-.11-.11L3.27 3 2 4.27l3.18 3.18C5.07 7.95 5 8.47 5 9c0 5.25 7 13 7 13s1.67-1.85 3.38-4.35L18.73 21 20 19.73l-3.63-3.63z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/location_on.svg b/html/matt-chat/uswds/img/material-icons/location_on.svg
new file mode 100644
index 0000000..35655db
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/location_on.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5a2.5 2.5 0 0 1 0-5 2.5 2.5 0 0 1 0 5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/location_searching.svg b/html/matt-chat/uswds/img/material-icons/location_searching.svg
new file mode 100644
index 0000000..e936f36
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/location_searching.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20.94 11A8.994 8.994 0 0 0 13 3.06V1h-2v2.06A8.994 8.994 0 0 0 3.06 11H1v2h2.06A8.994 8.994 0 0 0 11 20.94V23h2v-2.06A8.994 8.994 0 0 0 20.94 13H23v-2h-2.06zM12 19c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/lock.svg b/html/matt-chat/uswds/img/material-icons/lock.svg
new file mode 100644
index 0000000..2154a2c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/lock.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zm-6 9c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm3.1-9H8.9V6c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3.1v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/lock_clock.svg b/html/matt-chat/uswds/img/material-icons/lock_clock.svg
new file mode 100644
index 0000000..1016641
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/lock_clock.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m14.5 14.2 2.9 1.7-.8 1.3L13 15v-5h1.5v4.2zM22 14c0 4.41-3.59 8-8 8-2.02 0-3.86-.76-5.27-2H4c-1.15 0-2-.85-2-2V9c0-1.12.89-1.96 2-2v-.5C4 4.01 6.01 2 8.5 2c2.34 0 4.24 1.79 4.46 4.08.34-.05.69-.08 1.04-.08 4.41 0 8 3.59 8 8zM6 7h5v-.74A2.509 2.509 0 0 0 8.5 4 2.5 2.5 0 0 0 6 6.5V7zm14 7c0-3.31-2.69-6-6-6s-6 2.69-6 6 2.69 6 6 6 6-2.69 6-6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/lock_open.svg b/html/matt-chat/uswds/img/material-icons/lock_open.svg
new file mode 100644
index 0000000..4481b0e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/lock_open.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 17c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm6-9h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6h1.9c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3.1v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zm0 12H6V10h12v10z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/lock_person.svg b/html/matt-chat/uswds/img/material-icons/lock_person.svg
new file mode 100644
index 0000000..1661bc3
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/lock_person.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 11c.7 0 1.37.1 2 .29V10c0-1.1-.9-2-2-2h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h6.26A6.995 6.995 0 0 1 18 11zM8.9 6c0-1.71 1.39-3.1 3.1-3.1s3.1 1.39 3.1 3.1v2H8.9V6z"/><path d="M18 13c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5zm0 2c.83 0 1.5.67 1.5 1.5S18.83 18 18 18s-1.5-.67-1.5-1.5.67-1.5 1.5-1.5zm0 6c-1.03 0-1.94-.52-2.48-1.32.73-.42 1.57-.68 2.48-.68s1.75.26 2.48.68c-.54.8-1.45 1.32-2.48 1.32z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/lock_reset.svg b/html/matt-chat/uswds/img/material-icons/lock_reset.svg
new file mode 100644
index 0000000..a872ca6
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/lock_reset.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13 3a9 9 0 0 0-9 9H1l4 4 4-4H6c0-3.86 3.14-7 7-7s7 3.14 7 7-3.14 7-7 7c-1.9 0-3.62-.76-4.88-1.99L6.7 18.42A8.982 8.982 0 0 0 13 21a9 9 0 0 0 0-18zm2 8v-1c0-1.1-.9-2-2-2s-2 .9-2 2v1c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-3c0-.55-.45-1-1-1zm-1 0h-2v-1c0-.55.45-1 1-1s1 .45 1 1v1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/login.svg b/html/matt-chat/uswds/img/material-icons/login.svg
new file mode 100644
index 0000000..d58a611
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/login.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11 7 9.6 8.4l2.6 2.6H2v2h10.2l-2.6 2.6L11 17l5-5-5-5zm9 12h-8v2h8c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2h-8v2h8v14z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/logo_dev.svg b/html/matt-chat/uswds/img/material-icons/logo_dev.svg
new file mode 100644
index 0000000..21922fc
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/logo_dev.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM7.68 14.98H6V9h1.71c1.28 0 1.71 1.03 1.71 1.71v2.56c0 .68-.42 1.71-1.74 1.71zm4.7-3.52v1.07H11.2v1.39h1.93v1.07h-2.25c-.4.01-.74-.31-.75-.71V9.75c-.01-.4.31-.74.71-.75h2.28v1.07H11.2v1.39h1.18zm4.5 2.77c-.48 1.11-1.33.89-1.71 0L13.77 9h1.18l1.07 4.11L17.09 9h1.18l-1.39 5.23z"/><path d="M7.77 10.12h-.63v3.77h.63c.14 0 .28-.05.42-.16.14-.1.21-.26.21-.47v-2.52c0-.21-.07-.37-.21-.47a.72.72 0 0 0-.42-.15z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/logout.svg b/html/matt-chat/uswds/img/material-icons/logout.svg
new file mode 100644
index 0000000..d4e7414
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/logout.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m17 7-1.41 1.41L18.17 11H8v2h10.17l-2.58 2.58L17 17l5-5zM4 5h8V3H4c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h8v-2H4V5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/looks.svg b/html/matt-chat/uswds/img/material-icons/looks.svg
new file mode 100644
index 0000000..b4ca971
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/looks.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 10c-3.86 0-7 3.14-7 7h2c0-2.76 2.24-5 5-5s5 2.24 5 5h2c0-3.86-3.14-7-7-7zm0-4C5.93 6 1 10.93 1 17h2c0-4.96 4.04-9 9-9s9 4.04 9 9h2c0-6.07-4.93-11-11-11z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/looks_3.svg b/html/matt-chat/uswds/img/material-icons/looks_3.svg
new file mode 100644
index 0000000..b6a0fac
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/looks_3.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19.01 3h-14c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-4 7.5c0 .83-.67 1.5-1.5 1.5.83 0 1.5.67 1.5 1.5V15a2 2 0 0 1-2 2h-4v-2h4v-2h-2v-2h2V9h-4V7h4a2 2 0 0 1 2 2v1.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/looks_4.svg b/html/matt-chat/uswds/img/material-icons/looks_4.svg
new file mode 100644
index 0000000..393b327
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/looks_4.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-4 14h-2v-4H9V7h2v4h2V7h2v10z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/looks_5.svg b/html/matt-chat/uswds/img/material-icons/looks_5.svg
new file mode 100644
index 0000000..da0e94a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/looks_5.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-4 6h-4v2h2a2 2 0 0 1 2 2v2a2 2 0 0 1-2 2H9v-2h4v-2H9V7h6v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/looks_6.svg b/html/matt-chat/uswds/img/material-icons/looks_6.svg
new file mode 100644
index 0000000..3f96032
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/looks_6.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11 15h2v-2h-2v2zm8-12H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-4 6h-4v2h2a2 2 0 0 1 2 2v2a2 2 0 0 1-2 2h-2a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2h4v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/looks_one.svg b/html/matt-chat/uswds/img/material-icons/looks_one.svg
new file mode 100644
index 0000000..b399d47
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/looks_one.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-5 14h-2V9h-2V7h4v10z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/looks_two.svg b/html/matt-chat/uswds/img/material-icons/looks_two.svg
new file mode 100644
index 0000000..620ec39
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/looks_two.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-4 8a2 2 0 0 1-2 2h-2v2h4v2H9v-4a2 2 0 0 1 2-2h2V9H9V7h4a2 2 0 0 1 2 2v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/loop.svg b/html/matt-chat/uswds/img/material-icons/loop.svg
new file mode 100644
index 0000000..4731328
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/loop.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 4V1L8 5l4 4V6c3.31 0 6 2.69 6 6 0 1.01-.25 1.97-.7 2.8l1.46 1.46A7.93 7.93 0 0 0 20 12c0-4.42-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6 0-1.01.25-1.97.7-2.8L5.24 7.74A7.93 7.93 0 0 0 4 12c0 4.42 3.58 8 8 8v3l4-4-4-4v3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/loupe.svg b/html/matt-chat/uswds/img/material-icons/loupe.svg
new file mode 100644
index 0000000..dcd1a4b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/loupe.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13 7h-2v4H7v2h4v4h2v-4h4v-2h-4V7zm-1-5C6.49 2 2 6.49 2 12s4.49 10 10 10h8c1.1 0 2-.9 2-2v-8c0-5.51-4.49-10-10-10zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/low_priority.svg b/html/matt-chat/uswds/img/material-icons/low_priority.svg
new file mode 100644
index 0000000..b1ab04c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/low_priority.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M14 5h8v2h-8zm0 5.5h8v2h-8zm0 5.5h8v2h-8zM2 11.5C2 15.08 4.92 18 8.5 18H9v2l3-3-3-3v2h-.5C6.02 16 4 13.98 4 11.5S6.02 7 8.5 7H12V5H8.5C4.92 5 2 7.92 2 11.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/loyalty.svg b/html/matt-chat/uswds/img/material-icons/loyalty.svg
new file mode 100644
index 0000000..94b4837
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/loyalty.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m21.41 11.58-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7zm11.77 8.27L13 19.54l-4.27-4.27A2.5 2.5 0 0 1 10.5 11c.69 0 1.32.28 1.77.74l.73.72.73-.73a2.5 2.5 0 0 1 3.54 3.54z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/lte_mobiledata.svg b/html/matt-chat/uswds/img/material-icons/lte_mobiledata.svg
new file mode 100644
index 0000000..4e02536
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/lte_mobiledata.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M6 14h3v2H4V8h2v6zm3-4h2v6h2v-6h2V8H9v2zm12 0V8h-5v8h5v-2h-3v-1h3v-2h-3v-1h3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/lte_plus_mobiledata.svg b/html/matt-chat/uswds/img/material-icons/lte_plus_mobiledata.svg
new file mode 100644
index 0000000..c21fbbe
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/lte_plus_mobiledata.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 14h3v2H1V8h2v6zm2-4h2v6h2v-6h2V8H5v2zm7 6h5v-2h-3v-1h3v-2h-3v-1h3V8h-5v8zm12-5h-2V9h-2v2h-2v2h2v2h2v-2h2v-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/luggage.svg b/html/matt-chat/uswds/img/material-icons/luggage.svg
new file mode 100644
index 0000000..e2f2638
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/luggage.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 6h-2V3c0-.55-.45-1-1-1h-4c-.55 0-1 .45-1 1v3H7c-1.1 0-2 .9-2 2v11c0 1.1.9 2 2 2 0 .55.45 1 1 1s1-.45 1-1h6c0 .55.45 1 1 1s1-.45 1-1c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zM9.5 18H8V9h1.5v9zm3.25 0h-1.5V9h1.5v9zm.75-12h-3V3.5h3V6zM16 18h-1.5V9H16v9z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/lunch_dining.svg b/html/matt-chat/uswds/img/material-icons/lunch_dining.svg
new file mode 100644
index 0000000..149bfac
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/lunch_dining.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill-rule="evenodd" d="M22 10c.32-3.28-4.28-6-9.99-6S1.7 6.72 2.02 10H22zM5.35 13.5c.55 0 .78.14 1.15.36.45.27 1.07.64 2.18.64s1.73-.37 2.18-.64c.37-.23.59-.36 1.15-.36.55 0 .78.14 1.15.36.45.27 1.07.64 2.18.64s1.73-.37 2.18-.64c.37-.23.59-.36 1.15-.36.55 0 .78.14 1.15.36.45.27 1.07.63 2.17.64v-1.98s-.79-.16-1.16-.38c-.45-.27-1.07-.64-2.18-.64s-1.73.37-2.18.64c-.37.23-.6.36-1.15.36s-.78-.14-1.15-.36c-.45-.27-1.07-.64-2.18-.64s-1.73.37-2.18.64c-.37.23-.59.36-1.15.36-.55 0-.78-.14-1.15-.36-.45-.27-1.07-.64-2.18-.64s-1.73.37-2.18.64c-.37.23-.59.36-1.15.36v2c1.11 0 1.73-.37 2.21-.64.37-.23.59-.36 1.14-.36zM2 16v2c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2v-2H2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/lyrics.svg b/html/matt-chat/uswds/img/material-icons/lyrics.svg
new file mode 100644
index 0000000..78ced1a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/lyrics.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M14 9c0-2.04 1.24-3.79 3-4.57V4c0-1.1-.9-2-2-2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h9c1.1 0 2-.9 2-2v-2.42c-1.76-.78-3-2.53-3-4.58zm-4 5H6v-2h4v2zm3-3H6V9h7v2zm0-3H6V6h7v2z"/><path d="M20 6.18c-.31-.11-.65-.18-1-.18-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3V3h2V1h-4v5.18z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/macro_off.svg b/html/matt-chat/uswds/img/material-icons/macro_off.svg
new file mode 100644
index 0000000..bae3c17
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/macro_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19.98 17.15A8.909 8.909 0 0 0 21 13c-1.5 0-2.91.37-4.15 1.02l3.13 3.13zM3 13a9 9 0 0 0 9 9 9 9 0 0 0-9-9zm9-7.5A2.5 2.5 0 0 1 14.5 8c0 .99-.58 1.84-1.42 2.25l2.48 2.48c.11.02.23.03.35.03a2.5 2.5 0 0 0 2.5-2.5c0-1-.59-1.85-1.43-2.25.84-.4 1.43-1.25 1.43-2.25a2.5 2.5 0 0 0-3.92-2.06l.01-.2a2.5 2.5 0 0 0-5 0l.02.19a2.485 2.485 0 0 0-2.93.08l3.16 3.16c.41-.85 1.26-1.43 2.25-1.43z"/><path d="M2.81 2.81 1.39 4.22l4.64 4.64c-.27.4-.43.87-.43 1.39a2.5 2.5 0 0 0 2.5 2.5c.52 0 .99-.16 1.4-.43l.02.02-.02.16A2.5 2.5 0 0 0 12 15c.05 0 .1-.01.16-.02l1.64 1.64A8.905 8.905 0 0 0 12 22c2.02 0 3.88-.67 5.38-1.8l2.4 2.4 1.41-1.41L2.81 2.81z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/mail.svg b/html/matt-chat/uswds/img/material-icons/mail.svg
new file mode 100644
index 0000000..876dbcd
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/mail.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4-8 5-8-5V6l8 5 8-5v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/mail_lock.svg b/html/matt-chat/uswds/img/material-icons/mail_lock.svg
new file mode 100644
index 0000000..450c28e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/mail_lock.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M22 9.97V6c0-1.1-.9-2-2-2H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h12v-5.03c0-2.76 2.24-5 5-5h1zM20 8l-8 5-8-5V6l8 5 8-5v2z"/><path d="M23 15v-1c0-1.1-.9-2-2-2s-2 .9-2 2v1c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-3c0-.55-.45-1-1-1zm-1 0h-2v-1c0-.55.45-1 1-1s1 .45 1 1v1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/mail_outline.svg b/html/matt-chat/uswds/img/material-icons/mail_outline.svg
new file mode 100644
index 0000000..d1b8c87
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/mail_outline.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 14H4V8l8 5 8-5v10zm-8-7L4 6h16l-8 5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/male.svg b/html/matt-chat/uswds/img/material-icons/male.svg
new file mode 100644
index 0000000..b52446f
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/male.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M9.5 11c1.93 0 3.5 1.57 3.5 3.5S11.43 18 9.5 18 6 16.43 6 14.5 7.57 11 9.5 11zm0-2C6.46 9 4 11.46 4 14.5S6.46 20 9.5 20s5.5-2.46 5.5-5.5c0-1.16-.36-2.23-.97-3.12L18 7.42V10h2V4h-6v2h2.58l-3.97 3.97C11.73 9.36 10.66 9 9.5 9z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/man.svg b/html/matt-chat/uswds/img/material-icons/man.svg
new file mode 100644
index 0000000..7780c76
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/man.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M14 7h-4c-1.1 0-2 .9-2 2v6h2v7h4v-7h2V9c0-1.1-.9-2-2-2z"/><circle cx="12" cy="4" r="2"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/man_2.svg b/html/matt-chat/uswds/img/material-icons/man_2.svg
new file mode 100644
index 0000000..422ee70
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/man_2.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M14 7h-4c-1.1 0-2 .9-2 2v6h2.5v7h3v-7H16V9c0-1.1-.9-2-2-2z"/><circle cx="12" cy="4" r="2"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/man_3.svg b/html/matt-chat/uswds/img/material-icons/man_3.svg
new file mode 100644
index 0000000..5fcca47
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/man_3.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M14 7h-4c-1.1 0-2 .9-2 2v6h2v7h4v-7h2V9c0-1.1-.9-2-2-2zm-2-5.249L14.248 4 12 6.248 9.75 4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/man_4.svg b/html/matt-chat/uswds/img/material-icons/man_4.svg
new file mode 100644
index 0000000..01509e5
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/man_4.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13.75 7h-3.5C9.04 7 8.11 8.07 8.27 9.26L10 22h4l1.73-12.74C15.89 8.07 14.96 7 13.75 7z"/><circle cx="12" cy="4" r="2"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/manage_accounts.svg b/html/matt-chat/uswds/img/material-icons/manage_accounts.svg
new file mode 100644
index 0000000..b1e80fa
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/manage_accounts.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><circle cx="10" cy="8" r="4"/><path d="M10.67 13.02c-.22-.01-.44-.02-.67-.02-2.42 0-4.68.67-6.61 1.82-.88.52-1.39 1.5-1.39 2.53V20h9.26a6.963 6.963 0 0 1-.59-6.98zM20.75 16c0-.22-.03-.42-.06-.63l1.14-1.01-1-1.73-1.45.49c-.32-.27-.68-.48-1.08-.63L18 11h-2l-.3 1.49c-.4.15-.76.36-1.08.63l-1.45-.49-1 1.73 1.14 1.01c-.03.21-.06.41-.06.63s.03.42.06.63l-1.14 1.01 1 1.73 1.45-.49c.32.27.68.48 1.08.63L16 21h2l.3-1.49c.4-.15.76-.36 1.08-.63l1.45.49 1-1.73-1.14-1.01c.03-.21.06-.41.06-.63zM17 18c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/manage_history.svg b/html/matt-chat/uswds/img/material-icons/manage_history.svg
new file mode 100644
index 0000000..d4378a7
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/manage_history.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m22.69 18.37 1.14-1-1-1.73-1.45.49c-.32-.27-.68-.48-1.08-.63L20 14h-2l-.3 1.49c-.4.15-.76.36-1.08.63l-1.45-.49-1 1.73 1.14 1c-.08.5-.08.76 0 1.26l-1.14 1 1 1.73 1.45-.49c.32.27.68.48 1.08.63L18 24h2l.3-1.49c.4-.15.76-.36 1.08-.63l1.45.49 1-1.73-1.14-1c.08-.51.08-.77 0-1.27zM19 21c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zM11 7v5.41l2.36 2.36 1.04-1.79-1.4-1.39V7h-2zm10 5a9 9 0 0 0-9-9C9.17 3 6.65 4.32 5 6.36V4H3v6h6V8H6.26A7.01 7.01 0 0 1 12 5c3.86 0 7 3.14 7 7h2zm-10.14 6.91c-2.99-.49-5.35-2.9-5.78-5.91H3.06c.5 4.5 4.31 8 8.94 8h.07l-1.21-2.09z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/manage_search.svg b/html/matt-chat/uswds/img/material-icons/manage_search.svg
new file mode 100644
index 0000000..0e58698
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/manage_search.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M7 9H2V7h5v2zm0 3H2v2h5v-2zm13.59 7-3.83-3.83c-.8.52-1.74.83-2.76.83-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5c0 1.02-.31 1.96-.83 2.75L22 17.59 20.59 19zM17 11c0-1.65-1.35-3-3-3s-3 1.35-3 3 1.35 3 3 3 3-1.35 3-3zM2 19h10v-2H2v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/map.svg b/html/matt-chat/uswds/img/material-icons/map.svg
new file mode 100644
index 0000000..93a3e16
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/map.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m20.5 3-.16.03L15 5.1 9 3 3.36 4.9c-.21.07-.36.25-.36.48V20.5c0 .28.22.5.5.5l.16-.03L9 18.9l6 2.1 5.64-1.9c.21-.07.36-.25.36-.48V3.5c0-.28-.22-.5-.5-.5zM15 19l-6-2.11V5l6 2.11V19z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/maps_home_work.svg b/html/matt-chat/uswds/img/material-icons/maps_home_work.svg
new file mode 100644
index 0000000..7e15bca
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/maps_home_work.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M1 11v10h5v-6h4v6h5V11L8 6z"/><path d="M10 3v1.97l7 5V11h2v2h-2v2h2v2h-2v4h6V3H10zm9 6h-2V7h2v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/maps_ugc.svg b/html/matt-chat/uswds/img/material-icons/maps_ugc.svg
new file mode 100644
index 0000000..66d688a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/maps_ugc.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill-rule="evenodd" d="M12 2C6.48 2 2 6.48 2 12c0 1.54.36 2.98.97 4.29L1 23l6.71-1.97c1.31.61 2.75.97 4.29.97 5.52 0 10-4.48 10-10S17.52 2 12 2zm4 11h-3v3h-2v-3H8v-2h3V8h2v3h3v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/margin.svg b/html/matt-chat/uswds/img/material-icons/margin.svg
new file mode 100644
index 0000000..477491e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/margin.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 3v18h18V3H3zm16 16H5V5h14v14zM11 7h2v2h-2zM7 7h2v2H7zm8 0h2v2h-2zm-8 4h2v2H7zm4 0h2v2h-2zm4 0h2v2h-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/mark_as_unread.svg b/html/matt-chat/uswds/img/material-icons/mark_as_unread.svg
new file mode 100644
index 0000000..a4c3330
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/mark_as_unread.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18.83 7h-2.6L10.5 4 4 7.4V17c-1.1 0-2-.9-2-2V7.17c0-.53.32-1.09.8-1.34L10.5 2l7.54 3.83c.43.23.73.7.79 1.17zM20 8H7c-1.1 0-2 .9-2 2v9c0 1.1.9 2 2 2h13c1.1 0 2-.9 2-2v-9c0-1.1-.9-2-2-2zm0 3.67L13.5 15 7 11.67V10l6.5 3.33L20 10v1.67z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/mark_chat_read.svg b/html/matt-chat/uswds/img/material-icons/mark_chat_read.svg
new file mode 100644
index 0000000..5b89345
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/mark_chat_read.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m17.34 20-3.54-3.54 1.41-1.41 2.12 2.12 4.24-4.24L23 14.34 17.34 20zM12 17a6.995 6.995 0 0 1 10-6.32V4c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v18l4-4h6c0-.17.01-.33.03-.5A4.07 4.07 0 0 1 12 17z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/mark_chat_unread.svg b/html/matt-chat/uswds/img/material-icons/mark_chat_unread.svg
new file mode 100644
index 0000000..6fcbb0a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/mark_chat_unread.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M22 6.98V16c0 1.1-.9 2-2 2H6l-4 4V4c0-1.1.9-2 2-2h10.1A5.002 5.002 0 0 0 19 8c1.13 0 2.16-.39 3-1.02zM16 3c0 1.66 1.34 3 3 3s3-1.34 3-3-1.34-3-3-3-3 1.34-3 3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/mark_email_read.svg b/html/matt-chat/uswds/img/material-icons/mark_email_read.svg
new file mode 100644
index 0000000..b746d3e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/mark_email_read.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 19a6.995 6.995 0 0 1 10-6.32V6c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h8.08c-.05-.33-.08-.66-.08-1zM4 6l8 5 8-5v2l-8 5-8-5V6zm13.34 16-3.54-3.54 1.41-1.41 2.12 2.12 4.24-4.24L23 16.34 17.34 22z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/mark_email_unread.svg b/html/matt-chat/uswds/img/material-icons/mark_email_unread.svg
new file mode 100644
index 0000000..8165be1
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/mark_email_unread.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M22 8.98V18c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2h10.1c-.06.32-.1.66-.1 1 0 1.48.65 2.79 1.67 3.71L12 11 4 6v2l8 5 5.3-3.32c.54.2 1.1.32 1.7.32 1.13 0 2.16-.39 3-1.02zM16 5c0 1.66 1.34 3 3 3s3-1.34 3-3-1.34-3-3-3-3 1.34-3 3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/mark_unread_chat_alt.svg b/html/matt-chat/uswds/img/material-icons/mark_unread_chat_alt.svg
new file mode 100644
index 0000000..2d6b8b4
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/mark_unread_chat_alt.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><circle cx="19" cy="3" r="3"/><path d="M6 8V6h9.03a4.906 4.906 0 0 1-.92-4H4.01a2 2 0 0 0-2 2L2 22l4-4h14c1.1 0 2-.9 2-2V6.97C21.16 7.61 20.13 8 19 8H6zm8 6H6v-2h8v2zm4-3H6V9h12v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/markunread.svg b/html/matt-chat/uswds/img/material-icons/markunread.svg
new file mode 100644
index 0000000..876dbcd
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/markunread.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4-8 5-8-5V6l8 5 8-5v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/markunread_mailbox.svg b/html/matt-chat/uswds/img/material-icons/markunread_mailbox.svg
new file mode 100644
index 0000000..7237f6b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/markunread_mailbox.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 6H10v6H8V4h6V0H6v6H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/masks.svg b/html/matt-chat/uswds/img/material-icons/masks.svg
new file mode 100644
index 0000000..f64f2a4
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/masks.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19.5 6c-1.31 0-2.37 1.01-2.48 2.3-1.88-.5-2.84-1.8-5.02-1.8-2.19 0-3.14 1.3-5.02 1.8C6.87 7.02 5.81 6 4.5 6A2.5 2.5 0 0 0 2 8.5V9c0 6 3.6 7.81 6.52 7.98C9.53 17.62 10.72 18 12 18s2.47-.38 3.48-1.02C18.4 16.81 22 15 22 9v-.5A2.5 2.5 0 0 0 19.5 6zm-16 3v-.5c0-.55.45-1 1-1s1 .45 1 1v3c0 1.28.38 2.47 1.01 3.48C4.99 14.27 3.5 12.65 3.5 9zm17 0c0 3.65-1.49 5.27-3.01 5.98.64-1.01 1.01-2.2 1.01-3.48v-3c0-.55.45-1 1-1s1 .45 1 1V9zm-9.81 1.48c-.44.26-.96.56-1.69.76V10.2c.48-.17.84-.38 1.18-.58C10.72 9.3 11.23 9 12 9s1.27.3 1.8.62c.34.2.71.42 1.2.59v1.04c-.75-.21-1.26-.51-1.71-.78-.46-.27-.8-.47-1.29-.47s-.84.2-1.31.48z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/maximize.svg b/html/matt-chat/uswds/img/material-icons/maximize.svg
new file mode 100644
index 0000000..04cf7a4
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/maximize.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 3h18v2H3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/media_bluetooth_off.svg b/html/matt-chat/uswds/img/material-icons/media_bluetooth_off.svg
new file mode 100644
index 0000000..ff69a6c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/media_bluetooth_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M9 6.17V3h6v4h-4v1.17l-2-2zM19.42 15 22 17.57l-.8.8-6.78-6.78.8-.8 2.75 2.75V9h.6L22 12.43 19.42 15zm-.25-1.45 1.13-1.13-1.13-1.13v2.26zm2.02 7.64-1.41 1.41-3.98-3.98-.58.58-.85-.85.58-.58L11 13.83V17c0 2.21-1.78 4-3.99 4S3 19.21 3 17s1.79-4 4.01-4c.73 0 1.41.21 2 .55v-1.72L1.39 4.22 2.8 2.81l18.39 18.38z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/media_bluetooth_on.svg b/html/matt-chat/uswds/img/material-icons/media_bluetooth_on.svg
new file mode 100644
index 0000000..9b3dc39
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/media_bluetooth_on.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m9 3 .01 10.55c-.6-.34-1.28-.55-2-.55a4.001 4.001 0 1 0 0 8C9.23 21 11 19.21 11 17V7h4V3H9zm12 9.43L17.57 9h-.6v4.55l-2.75-2.75-.85.85L16.73 15l-3.35 3.35.85.85 2.75-2.75V21h.6L21 17.57 18.42 15 21 12.43zm-2.83-1.13 1.13 1.13-1.13 1.13V11.3zm1.13 6.27-1.13 1.13v-2.26l1.13 1.13z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/mediation.svg b/html/matt-chat/uswds/img/material-icons/mediation.svg
new file mode 100644
index 0000000..5f509b2
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/mediation.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m22 12-4 4-1.41-1.41L18.17 13h-5.23A8.974 8.974 0 0 1 8 20.05 3.005 3.005 0 0 1 5 23c-1.66 0-3-1.34-3-3s1.34-3 3-3c.95 0 1.78.45 2.33 1.14A6.969 6.969 0 0 0 10.91 13h-3.1C7.4 14.16 6.3 15 5 15c-1.66 0-3-1.34-3-3s1.34-3 3-3c1.3 0 2.4.84 2.82 2h3.1c-.32-2.23-1.69-4.1-3.59-5.14C6.78 6.55 5.95 7 5 7 3.34 7 2 5.66 2 4s1.34-3 3-3a2.99 2.99 0 0 1 2.99 2.95A8.974 8.974 0 0 1 12.93 11h5.23l-1.58-1.59L18 8l4 4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/medical_information.svg b/html/matt-chat/uswds/img/material-icons/medical_information.svg
new file mode 100644
index 0000000..cf4f099
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/medical_information.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 7h-5V4c0-1.1-.9-2-2-2h-2c-1.1 0-2 .9-2 2v3H4c-1.1 0-2 .9-2 2v11c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V9c0-1.1-.9-2-2-2zm-9-3h2v5h-2V4zm0 12H9v2H7v-2H5v-2h2v-2h2v2h2v2zm2-1.5V13h6v1.5h-6zm0 3V16h4v1.5h-4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/medical_services.svg b/html/matt-chat/uswds/img/material-icons/medical_services.svg
new file mode 100644
index 0000000..6c17315
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/medical_services.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 6h-4V4c0-1.1-.9-2-2-2h-4c-1.1 0-2 .9-2 2v2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zM10 4h4v2h-4V4zm6 11h-3v3h-2v-3H8v-2h3v-3h2v3h3v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/medication.svg b/html/matt-chat/uswds/img/material-icons/medication.svg
new file mode 100644
index 0000000..4b18ea5
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/medication.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M6 3h12v2H6zm11 3H7c-1.1 0-2 .9-2 2v11c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm-1 9h-2.5v2.5h-3V15H8v-3h2.5V9.5h3V12H16v3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/medication_liquid.svg b/html/matt-chat/uswds/img/material-icons/medication_liquid.svg
new file mode 100644
index 0000000..55a7b13
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/medication_liquid.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 3h12v2H3zm11 3H4c-1.1 0-2 .9-2 2v11c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm-1 9h-2.5v2.5h-3V15H5v-3h2.5V9.5h3V12H13v3zm7-9c-1.68 0-3 1.76-3 4 0 1.77.83 3.22 2 3.76V20c0 .55.45 1 1 1s1-.45 1-1v-6.24c1.17-.54 2-1.99 2-3.76 0-2.24-1.32-4-3-4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/meeting_room.svg b/html/matt-chat/uswds/img/material-icons/meeting_room.svg
new file mode 100644
index 0000000..1a4e279
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/meeting_room.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M14 6v15H3v-2h2V3h9v1h5v15h2v2h-4V6h-3zm-4 5v2h2v-2h-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/memory.svg b/html/matt-chat/uswds/img/material-icons/memory.svg
new file mode 100644
index 0000000..b7fe44f
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/memory.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15 9H9v6h6V9zm-2 4h-2v-2h2v2zm8-2V9h-2V7c0-1.1-.9-2-2-2h-2V3h-2v2h-2V3H9v2H7c-1.1 0-2 .9-2 2v2H3v2h2v2H3v2h2v2c0 1.1.9 2 2 2h2v2h2v-2h2v2h2v-2h2c1.1 0 2-.9 2-2v-2h2v-2h-2v-2h2zm-4 6H7V7h10v10z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/menu.svg b/html/matt-chat/uswds/img/material-icons/menu.svg
new file mode 100644
index 0000000..ae7c36c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/menu.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/menu_book.svg b/html/matt-chat/uswds/img/material-icons/menu_book.svg
new file mode 100644
index 0000000..d238211
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/menu_book.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 5c-1.11-.35-2.33-.5-3.5-.5-1.95 0-4.05.4-5.5 1.5-1.45-1.1-3.55-1.5-5.5-1.5S2.45 4.9 1 6v14.65c0 .25.25.5.5.5.1 0 .15-.05.25-.05C3.1 20.45 5.05 20 6.5 20c1.95 0 4.05.4 5.5 1.5 1.35-.85 3.8-1.5 5.5-1.5 1.65 0 3.35.3 4.75 1.05.1.05.15.05.25.05.25 0 .5-.25.5-.5V6c-.6-.45-1.25-.75-2-1zm0 13.5c-1.1-.35-2.3-.5-3.5-.5-1.7 0-4.15.65-5.5 1.5V8c1.35-.85 3.8-1.5 5.5-1.5 1.2 0 2.4.15 3.5.5v11.5z"/><path d="M17.5 10.5c.88 0 1.73.09 2.5.26V9.24c-.79-.15-1.64-.24-2.5-.24-1.7 0-3.24.29-4.5.83v1.66c1.13-.64 2.7-.99 4.5-.99zM13 12.49v1.66c1.13-.64 2.7-.99 4.5-.99.88 0 1.73.09 2.5.26V11.9c-.79-.15-1.64-.24-2.5-.24-1.7 0-3.24.3-4.5.83zm4.5 1.84c-1.7 0-3.24.29-4.5.83v1.66c1.13-.64 2.7-.99 4.5-.99.88 0 1.73.09 2.5.26v-1.52c-.79-.16-1.64-.24-2.5-.24z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/menu_open.svg b/html/matt-chat/uswds/img/material-icons/menu_open.svg
new file mode 100644
index 0000000..5a3d543
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/menu_open.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 18h13v-2H3v2zm0-5h10v-2H3v2zm0-7v2h13V6H3zm18 9.59L17.42 12 21 8.41 19.59 7l-5 5 5 5L21 15.59z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/merge.svg b/html/matt-chat/uswds/img/material-icons/merge.svg
new file mode 100644
index 0000000..59b6c7f
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/merge.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M6.41 21 5 19.59l4.83-4.83c.75-.75 1.17-1.77 1.17-2.83v-5.1L9.41 8.41 8 7l4-4 4 4-1.41 1.41L13 6.83v5.1c0 1.06.42 2.08 1.17 2.83L19 19.59 17.59 21 12 15.41 6.41 21z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/merge_type.svg b/html/matt-chat/uswds/img/material-icons/merge_type.svg
new file mode 100644
index 0000000..a089062
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/merge_type.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 20.41 18.41 19 15 15.59 13.59 17 17 20.41zM7.5 8H11v5.59L5.59 19 7 20.41l6-6V8h3.5L12 3.5 7.5 8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/message.svg b/html/matt-chat/uswds/img/material-icons/message.svg
new file mode 100644
index 0000000..0dfd671
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/message.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-2 12H6v-2h12v2zm0-3H6V9h12v2zm0-3H6V6h12v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/mic.svg b/html/matt-chat/uswds/img/material-icons/mic.svg
new file mode 100644
index 0000000..e5691ca
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/mic.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 14c1.66 0 2.99-1.34 2.99-3L15 5c0-1.66-1.34-3-3-3S9 3.34 9 5v6c0 1.66 1.34 3 3 3zm5.3-3c0 3-2.54 5.1-5.3 5.1S6.7 14 6.7 11H5c0 3.41 2.72 6.23 6 6.72V21h2v-3.28c3.28-.48 6-3.3 6-6.72h-1.7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/mic_external_off.svg b/html/matt-chat/uswds/img/material-icons/mic_external_off.svg
new file mode 100644
index 0000000..20ba277
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/mic_external_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21.19 21.19 2.81 2.81 1.39 4.22 5.17 8H4l1 10h1c0 2.21 1.79 4 4 4s4-1.79 4-4v-1.17l5.78 5.78 1.41-1.42zM12 18c0 1.1-.9 2-2 2s-2-.9-2-2h1l.56-5.61L12 14.83V18zm2-12v5.17l-2-2V6c0-2.21 1.79-4 4-4s4 1.79 4 4v11.17l-2-2V6c0-1.1-.9-2-2-2s-2 .9-2 2zm-4-1c0 .62-.2 1.18-.52 1.66L5.33 2.51A2.996 2.996 0 0 1 10 5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/mic_external_on.svg b/html/matt-chat/uswds/img/material-icons/mic_external_on.svg
new file mode 100644
index 0000000..b8de447
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/mic_external_on.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M9.22 7H4.78C4.3 6.47 4 5.77 4 5c0-1.66 1.34-3 3-3s3 1.34 3 3c0 .77-.3 1.47-.78 2zM16 2c2.21 0 4 1.79 4 4v16h-2V6c0-1.1-.9-2-2-2s-2 .9-2 2v12c0 2.21-1.79 4-4 4s-4-1.79-4-4H5L4 8h6L9 18H8c0 1.1.9 2 2 2s2-.9 2-2V6c0-2.21 1.79-4 4-4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/mic_none.svg b/html/matt-chat/uswds/img/material-icons/mic_none.svg
new file mode 100644
index 0000000..d82849a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/mic_none.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 14c1.66 0 2.99-1.34 2.99-3L15 5c0-1.66-1.34-3-3-3S9 3.34 9 5v6c0 1.66 1.34 3 3 3zm-1.2-9.1c0-.66.54-1.2 1.2-1.2.66 0 1.2.54 1.2 1.2l-.01 6.2c0 .66-.53 1.2-1.19 1.2-.66 0-1.2-.54-1.2-1.2V4.9zm6.5 6.1c0 3-2.54 5.1-5.3 5.1S6.7 14 6.7 11H5c0 3.41 2.72 6.23 6 6.72V21h2v-3.28c3.28-.48 6-3.3 6-6.72h-1.7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/mic_off.svg b/html/matt-chat/uswds/img/material-icons/mic_off.svg
new file mode 100644
index 0000000..29240fa
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/mic_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 11h-1.7c0 .74-.16 1.43-.43 2.05l1.23 1.23c.56-.98.9-2.09.9-3.28zm-4.02.17c0-.06.02-.11.02-.17V5c0-1.66-1.34-3-3-3S9 3.34 9 5v.18l5.98 5.99zM4.27 3 3 4.27l6.01 6.01V11c0 1.66 1.33 3 2.99 3 .22 0 .44-.03.65-.08l1.66 1.66c-.71.33-1.5.52-2.31.52-2.76 0-5.3-2.1-5.3-5.1H5c0 3.41 2.72 6.23 6 6.72V21h2v-3.28c.91-.13 1.77-.45 2.54-.9L19.73 21 21 19.73 4.27 3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/microwave.svg b/html/matt-chat/uswds/img/material-icons/microwave.svg
new file mode 100644
index 0000000..dc1f6de
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/microwave.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M6.8 10.61 5.37 9.19C5.73 8.79 6.59 8 7.75 8c.8 0 1.39.39 1.81.67.31.21.51.33.69.33.37 0 .8-.41.95-.61l1.42 1.42c-.36.4-1.22 1.19-2.37 1.19-.79 0-1.37-.38-1.79-.66-.33-.22-.52-.34-.71-.34-.37 0-.8.41-.95.61zM7.75 15c.19 0 .38.12.71.34.42.28 1 .66 1.79.66 1.16 0 2.01-.79 2.37-1.19l-1.42-1.42c-.15.2-.59.61-.95.61-.18 0-.38-.12-.69-.33-.42-.28-1.01-.67-1.81-.67-1.16 0-2.02.79-2.38 1.19l1.42 1.42c.16-.2.59-.61.96-.61zM22 6v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2h16c1.1 0 2 .9 2 2zm-8 0H4v12h10V6zm5 10c0-.55-.45-1-1-1s-1 .45-1 1 .45 1 1 1 1-.45 1-1zm0-4c0-.55-.45-1-1-1s-1 .45-1 1 .45 1 1 1 1-.45 1-1zm0-5h-2v2h2V7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/military_tech.svg b/html/matt-chat/uswds/img/material-icons/military_tech.svg
new file mode 100644
index 0000000..9b8989c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/military_tech.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 10.43V2H7v8.43c0 .35.18.68.49.86l4.18 2.51-.99 2.34-3.41.29 2.59 2.24L9.07 22 12 20.23 14.93 22l-.78-3.33 2.59-2.24-3.41-.29-.99-2.34 4.18-2.51c.3-.18.48-.5.48-.86zm-4 1.8-1 .6-1-.6V3h2v9.23z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/minimize.svg b/html/matt-chat/uswds/img/material-icons/minimize.svg
new file mode 100644
index 0000000..54d6633
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/minimize.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M6 19h12v2H6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/minor_crash.svg b/html/matt-chat/uswds/img/material-icons/minor_crash.svg
new file mode 100644
index 0000000..3879da7
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/minor_crash.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18.92 9.01C18.72 8.42 18.16 8 17.5 8h-11c-.66 0-1.21.42-1.42 1.01L3 15v8c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1h12v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-8l-2.08-5.99zM6.85 10h10.29l1.04 3H5.81l1.04-3zM6 17.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5S8.33 19 7.5 19 6 18.33 6 17.5zm9 0c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5-.67 1.5-1.5 1.5-1.5-.67-1.5-1.5zM9.41 5 8 6.41l-3-3L6.41 2l3 3zM16 6.41 14.59 5l3-3L19 3.41l-3 3zM13 5h-2V0h2v5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/miscellaneous_services.svg b/html/matt-chat/uswds/img/material-icons/miscellaneous_services.svg
new file mode 100644
index 0000000..6739ee8
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/miscellaneous_services.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m14.17 13.71 1.4-2.42c.09-.15.05-.34-.08-.45l-1.48-1.16c.03-.22.05-.45.05-.68s-.02-.46-.05-.69l1.48-1.16c.13-.11.17-.3.08-.45l-1.4-2.42c-.09-.15-.27-.21-.43-.15l-1.74.7c-.36-.28-.75-.51-1.18-.69l-.26-1.85a.364.364 0 0 0-.35-.29h-2.8c-.17 0-.32.13-.35.3L6.8 4.15c-.42.18-.82.41-1.18.69l-1.74-.7c-.16-.06-.34 0-.43.15l-1.4 2.42c-.09.15-.05.34.08.45l1.48 1.16c-.03.22-.05.45-.05.68s.02.46.05.69l-1.48 1.16c-.13.11-.17.3-.08.45l1.4 2.42c.09.15.27.21.43.15l1.74-.7c.36.28.75.51 1.18.69l.26 1.85c.03.16.18.29.35.29h2.8c.17 0 .32-.13.35-.3l.26-1.85c.42-.18.82-.41 1.18-.69l1.74.7c.16.06.34 0 .43-.15zM8.81 11c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm13.11 7.67-.96-.74c.02-.14.04-.29.04-.44 0-.15-.01-.3-.04-.44l.95-.74c.08-.07.11-.19.05-.29l-.9-1.55c-.05-.1-.17-.13-.28-.1l-1.11.45c-.23-.18-.48-.33-.76-.44l-.17-1.18a.216.216 0 0 0-.21-.2h-1.79c-.11 0-.21.08-.22.19l-.17 1.18c-.27.12-.53.26-.76.44l-1.11-.45a.23.23 0 0 0-.28.1l-.9 1.55c-.05.1-.04.22.05.29l.95.74a3.145 3.145 0 0 0 0 .88l-.95.74c-.08.07-.11.19-.05.29l.9 1.55c.05.1.17.13.28.1l1.11-.45c.23.18.48.33.76.44l.17 1.18c.02.11.11.19.22.19h1.79c.11 0 .21-.08.22-.19l.17-1.18c.27-.12.53-.26.75-.44l1.12.45c.1.04.22 0 .28-.1l.9-1.55c.06-.09.03-.21-.05-.28zm-4.29.16a1.35 1.35 0 1 1 .001-2.701 1.35 1.35 0 0 1-.001 2.701z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/missed_video_call.svg b/html/matt-chat/uswds/img/material-icons/missed_video_call.svg
new file mode 100644
index 0000000..c8fcba2
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/missed_video_call.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 10.5V7c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1v-3.5l4 4v-11l-4 4zM10 15l-3.89-3.89v2.55H5V9.22h4.44v1.11H6.89l3.11 3.1 4.22-4.22.78.79-5 5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/mms.svg b/html/matt-chat/uswds/img/material-icons/mms.svg
new file mode 100644
index 0000000..f15436c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/mms.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM5 14l3.5-4.5 2.5 3.01L14.5 8l4.5 6H5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/mobile_friendly.svg b/html/matt-chat/uswds/img/material-icons/mobile_friendly.svg
new file mode 100644
index 0000000..d378b9c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/mobile_friendly.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 1H9c-1.1 0-2 .9-2 2v3h2V4h10v16H9v-2H7v3c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zM7.01 13.47l-2.55-2.55-1.27 1.27L7 16l7.19-7.19-1.27-1.27z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/mobile_off.svg b/html/matt-chat/uswds/img/material-icons/mobile_off.svg
new file mode 100644
index 0000000..bedbc87
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/mobile_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M2.76 2.49 1.49 3.76 5 7.27V21c0 1.1.9 2 2 2h10c1.02 0 1.85-.77 1.98-1.75l1.72 1.72 1.27-1.27L2.76 2.49zM7 19V9.27L16.73 19H7zM17 5v9.17l2 2V3c0-1.1-.9-2-2-2H7c-.85 0-1.58.54-1.87 1.3L7.83 5H17z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/mobile_screen_share.svg b/html/matt-chat/uswds/img/material-icons/mobile_screen_share.svg
new file mode 100644
index 0000000..89a01e4
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/mobile_screen_share.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 1.01 7 1c-1.1 0-1.99.9-1.99 2v18c0 1.1.89 2 1.99 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-1.99-2-1.99zM17 19H7V5h10v14zm-4.2-5.78v1.75l3.2-2.99L12.8 9v1.7c-3.11.43-4.35 2.56-4.8 4.7 1.11-1.5 2.58-2.18 4.8-2.18z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/mobiledata_off.svg b/html/matt-chat/uswds/img/material-icons/mobiledata_off.svg
new file mode 100644
index 0000000..60c1479
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/mobiledata_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16 7h3l-4-4-4 4h3v4.17l2 2zM2.81 2.81 1.39 4.22 8 10.83v6.18l-3 .01L9 21l4-4-3 .01v-4.18l9.78 9.78 1.41-1.42z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/mode.svg b/html/matt-chat/uswds/img/material-icons/mode.svg
new file mode 100644
index 0000000..871d47d
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/mode.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 17.25V21h3.75L17.81 9.94l-3.75-3.75zM20.71 5.63l-2.34-2.34a.996.996 0 0 0-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83a.996.996 0 0 0 0-1.41z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/mode_comment.svg b/html/matt-chat/uswds/img/material-icons/mode_comment.svg
new file mode 100644
index 0000000..912954d
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/mode_comment.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21.99 4c0-1.1-.89-2-1.99-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h14l4 4-.01-18z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/mode_edit.svg b/html/matt-chat/uswds/img/material-icons/mode_edit.svg
new file mode 100644
index 0000000..a2841f9
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/mode_edit.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04a.996.996 0 0 0 0-1.41l-2.34-2.34a.996.996 0 0 0-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/mode_edit_outline.svg b/html/matt-chat/uswds/img/material-icons/mode_edit_outline.svg
new file mode 100644
index 0000000..871d47d
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/mode_edit_outline.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 17.25V21h3.75L17.81 9.94l-3.75-3.75zM20.71 5.63l-2.34-2.34a.996.996 0 0 0-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83a.996.996 0 0 0 0-1.41z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/mode_fan_off.svg b/html/matt-chat/uswds/img/material-icons/mode_fan_off.svg
new file mode 100644
index 0000000..d2933ca
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/mode_fan_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m16.34 8.36-2.29.82c-.18-.13-.38-.25-.58-.34.17-.83.63-1.58 1.36-2.06C16.85 5.44 16.18 2 13.39 2c-3.08 0-4.9 1.47-5.3 3.26L18.73 15.9c1.5.39 3.27-.51 3.27-2.51 0-4.39-3.01-6.23-5.66-5.03zM2.81 2.81 1.39 4.22 5.27 8.1C3.77 7.7 2 8.61 2 10.61c0 4.4 3.01 6.24 5.66 5.03l2.29-.82c.18.13.38.25.58.34-.17.83-.63 1.58-1.36 2.06C7.15 18.56 7.82 22 10.61 22c3.08 0 4.9-1.47 5.3-3.26l3.87 3.87 1.41-1.41L2.81 2.81z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/mode_night.svg b/html/matt-chat/uswds/img/material-icons/mode_night.svg
new file mode 100644
index 0000000..3ed1f91
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/mode_night.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M9.5 2c-1.82 0-3.53.5-5 1.35 2.99 1.73 5 4.95 5 8.65s-2.01 6.92-5 8.65c1.47.85 3.18 1.35 5 1.35 5.52 0 10-4.48 10-10S15.02 2 9.5 2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/mode_of_travel.svg b/html/matt-chat/uswds/img/material-icons/mode_of_travel.svg
new file mode 100644
index 0000000..3fc1ea5
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/mode_of_travel.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15.31 18.9c-.96 1-2.06 2.03-3.31 3.1-5.33-4.55-8-8.48-8-11.8C4 5.22 7.8 2 12 2c4 0 7.64 2.92 7.97 7.5h3.53L19 14l-4.5-4.5h3.47C17.65 6.24 15.13 4 12 4c-3.35 0-6 2.57-6 6.2 0 2.34 1.95 5.44 6 9.14.64-.59 1.23-1.16 1.77-1.71a2.5 2.5 0 0 1-.27-1.12 2.5 2.5 0 0 1 5 0 2.492 2.492 0 0 1-3.19 2.39z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/mode_standby.svg b/html/matt-chat/uswds/img/material-icons/mode_standby.svg
new file mode 100644
index 0000000..a096236
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/mode_standby.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.49 2 2 6.49 2 12s4.49 10 10 10 10-4.49 10-10S17.51 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm3-8c0 1.66-1.34 3-3 3s-3-1.34-3-3 1.34-3 3-3 3 1.34 3 3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/model_training.svg b/html/matt-chat/uswds/img/material-icons/model_training.svg
new file mode 100644
index 0000000..ed772db
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/model_training.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15.5 13.5c0 2-2.5 3.5-2.5 5h-2c0-1.5-2.5-3-2.5-5 0-1.93 1.57-3.5 3.5-3.5s3.5 1.57 3.5 3.5zm-2.5 6h-2V21h2v-1.5zm6-6.5c0 1.68-.59 3.21-1.58 4.42l1.42 1.42a8.978 8.978 0 0 0-1-12.68l-1.42 1.42A6.993 6.993 0 0 1 19 13zm-3-8-4-4v3a9 9 0 0 0-9 9c0 2.23.82 4.27 2.16 5.84l1.42-1.42A6.938 6.938 0 0 1 5 13c0-3.86 3.14-7 7-7v3l4-4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/monetization_on.svg b/html/matt-chat/uswds/img/material-icons/monetization_on.svg
new file mode 100644
index 0000000..fbd8735
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/monetization_on.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1.41 16.09V20h-2.67v-1.93c-1.71-.36-3.16-1.46-3.27-3.4h1.96c.1 1.05.82 1.87 2.65 1.87 1.96 0 2.4-.98 2.4-1.59 0-.83-.44-1.61-2.67-2.14-2.48-.6-4.18-1.62-4.18-3.67 0-1.72 1.39-2.84 3.11-3.21V4h2.67v1.95c1.86.45 2.79 1.86 2.85 3.39H14.3c-.05-1.11-.64-1.87-2.22-1.87-1.5 0-2.4.68-2.4 1.64 0 .84.65 1.39 2.67 1.91s4.18 1.39 4.18 3.91c-.01 1.83-1.38 2.83-3.12 3.16z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/money.svg b/html/matt-chat/uswds/img/material-icons/money.svg
new file mode 100644
index 0000000..7eaa1b1
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/money.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M5 8h2v8H5zm7 0H9c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h3c.55 0 1-.45 1-1V9c0-.55-.45-1-1-1zm-1 6h-1v-4h1v4zm7-6h-3c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h3c.55 0 1-.45 1-1V9c0-.55-.45-1-1-1zm-1 6h-1v-4h1v4z"/><path d="M2 4v16h20V4H2zm2 14V6h16v12H4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/money_off.svg b/html/matt-chat/uswds/img/material-icons/money_off.svg
new file mode 100644
index 0000000..8601efd
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/money_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12.5 6.9c1.78 0 2.44.85 2.5 2.1h2.21c-.07-1.72-1.12-3.3-3.21-3.81V3h-3v2.16c-.53.12-1.03.3-1.48.54l1.47 1.47c.41-.17.91-.27 1.51-.27zM5.33 4.06 4.06 5.33 7.5 8.77c0 2.08 1.56 3.21 3.91 3.91l3.51 3.51c-.34.48-1.05.91-2.42.91-2.06 0-2.87-.92-2.98-2.1h-2.2c.12 2.19 1.76 3.42 3.68 3.83V21h3v-2.15c.96-.18 1.82-.55 2.45-1.12l2.22 2.22 1.27-1.27L5.33 4.06z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/money_off_csred.svg b/html/matt-chat/uswds/img/material-icons/money_off_csred.svg
new file mode 100644
index 0000000..4f7858a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/money_off_csred.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10.53 7.43c.42-.31.93-.47 1.54-.47s1.11.16 1.5.49c.39.32.65.7.79 1.12l1.89-.8c-.24-.71-.71-1.35-1.4-1.92-.5-.4-1.12-.65-1.85-.77V3h-2v2.11c-.41.08-.79.21-1.14.39-.35.18-.64.39-.9.63l1.43 1.43c.04-.04.09-.09.14-.13zM2.81 2.81 1.39 4.22l12.35 12.35c-.43.28-.95.43-1.55.43-.71 0-1.32-.23-1.83-.7-.5-.47-.86-1.07-1.06-1.81l-1.98.8c.34 1.17.95 2.08 1.83 2.73.57.42 1.19.68 1.85.83V21h2v-2.08c.44-.07.87-.17 1.29-.35.34-.14.64-.32.92-.53l4.57 4.57 1.41-1.41L2.81 2.81z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/monitor.svg b/html/matt-chat/uswds/img/material-icons/monitor.svg
new file mode 100644
index 0000000..5947466
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/monitor.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 3H4c-1.1 0-2 .9-2 2v11c0 1.1.9 2 2 2h3l-1 1v2h12v-2l-1-1h3c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 13H4V5h16v11z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/monitor_heart.svg b/html/matt-chat/uswds/img/material-icons/monitor_heart.svg
new file mode 100644
index 0000000..b0f028a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/monitor_heart.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15.11 12.45 14 10.24l-3.11 6.21c-.16.34-.51.55-.89.55s-.73-.21-.89-.55L7.38 13H2v5c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2v-5h-6c-.38 0-.73-.21-.89-.55z"/><path d="M20 4H4c-1.1 0-2 .9-2 2v5h6c.38 0 .73.21.89.55L10 13.76l3.11-6.21c.34-.68 1.45-.68 1.79 0L16.62 11H22V6c0-1.1-.9-2-2-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/monitor_weight.svg b/html/matt-chat/uswds/img/material-icons/monitor_weight.svg
new file mode 100644
index 0000000..3cd7d1d
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/monitor_weight.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 9c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3z"/><path d="M10 8.5h1v1h-1zm1.5 0h1v1h-1zm1.5 0h1v1h-1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/monochrome_photos.svg b/html/matt-chat/uswds/img/material-icons/monochrome_photos.svg
new file mode 100644
index 0000000..2b72560
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/monochrome_photos.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 5h-3.2L15 3H9L7.2 5H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 14h-8v-1c-2.8 0-5-2.2-5-5s2.2-5 5-5V7h8v12zm-3-6c0-2.8-2.2-5-5-5v1.8c1.8 0 3.2 1.4 3.2 3.2s-1.4 3.2-3.2 3.2V18c2.8 0 5-2.2 5-5zm-8.2 0c0 1.8 1.4 3.2 3.2 3.2V9.8c-1.8 0-3.2 1.4-3.2 3.2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/mood.svg b/html/matt-chat/uswds/img/material-icons/mood.svg
new file mode 100644
index 0000000..57bea0f
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/mood.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm3.5-9c.83 0 1.5-.67 1.5-1.5S16.33 8 15.5 8 14 8.67 14 9.5s.67 1.5 1.5 1.5zm-7 0c.83 0 1.5-.67 1.5-1.5S9.33 8 8.5 8 7 8.67 7 9.5 7.67 11 8.5 11zm3.5 6.5c2.33 0 4.31-1.46 5.11-3.5H6.89c.8 2.04 2.78 3.5 5.11 3.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/mood_bad.svg b/html/matt-chat/uswds/img/material-icons/mood_bad.svg
new file mode 100644
index 0000000..400f4da
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/mood_bad.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm3.5-9c.83 0 1.5-.67 1.5-1.5S16.33 8 15.5 8 14 8.67 14 9.5s.67 1.5 1.5 1.5zm-7 0c.83 0 1.5-.67 1.5-1.5S9.33 8 8.5 8 7 8.67 7 9.5 7.67 11 8.5 11zm3.5 3c-2.33 0-4.31 1.46-5.11 3.5h10.22c-.8-2.04-2.78-3.5-5.11-3.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/moped.svg b/html/matt-chat/uswds/img/material-icons/moped.svg
new file mode 100644
index 0000000..4b2048a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/moped.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 7c0-1.1-.9-2-2-2h-3v2h3v2.65L13.52 14H10V9H6c-2.21 0-4 1.79-4 4v3h2c0 1.66 1.34 3 3 3s3-1.34 3-3h4.48L19 10.35V7zM7 17c-.55 0-1-.45-1-1h2c0 .55-.45 1-1 1z"/><path d="M5 6h5v2H5zm14 7c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3zm0 4c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/more.svg b/html/matt-chat/uswds/img/material-icons/more.svg
new file mode 100644
index 0000000..ad5567a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/more.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M22 3H7c-.69 0-1.23.35-1.59.88L0 12l5.41 8.11c.36.53.97.89 1.66.89H22c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 13.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm5 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm5 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/more_horiz.svg b/html/matt-chat/uswds/img/material-icons/more_horiz.svg
new file mode 100644
index 0000000..afb392c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/more_horiz.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M6 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-6 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/more_time.svg b/html/matt-chat/uswds/img/material-icons/more_time.svg
new file mode 100644
index 0000000..365843a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/more_time.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10 8v6l4.7 2.9.8-1.2-4-2.4V8z"/><path d="M17.92 12A6.957 6.957 0 0 1 11 20c-3.9 0-7-3.1-7-7s3.1-7 7-7c.7 0 1.37.1 2 .29V4.23c-.64-.15-1.31-.23-2-.23-5 0-9 4-9 9s4 9 9 9a8.963 8.963 0 0 0 8.94-10h-2.02z"/><path d="M20 5V2h-2v3h-3v2h3v3h2V7h3V5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/more_vert.svg b/html/matt-chat/uswds/img/material-icons/more_vert.svg
new file mode 100644
index 0000000..f2427f8
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/more_vert.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/mosque.svg b/html/matt-chat/uswds/img/material-icons/mosque.svg
new file mode 100644
index 0000000..e5f8ecf
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/mosque.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M7 8h10c.29 0 .57.06.84.13.09-.33.16-.67.16-1.04 0-1.31-.65-2.53-1.74-3.25L12 1 7.74 3.84A3.887 3.887 0 0 0 6 7.09c0 .37.07.71.16 1.04.27-.07.55-.13.84-.13z"/><path d="M24 7c0-1.1-2-3-2-3s-2 1.9-2 3c0 .74.4 1.38 1 1.72V13h-2v-2c0-1.1-.9-2-2-2H7c-1.1 0-2 .9-2 2v2H3V8.72c.6-.34 1-.98 1-1.72 0-1.1-2-3-2-3S0 5.9 0 7c0 .74.4 1.38 1 1.72V21h9v-4c0-1.1.9-2 2-2s2 .9 2 2v4h9V8.72c.6-.34 1-.98 1-1.72z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/motion_photos_auto.svg b/html/matt-chat/uswds/img/material-icons/motion_photos_auto.svg
new file mode 100644
index 0000000..c42d708
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/motion_photos_auto.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m2.88 7.88 1.54 1.54C4.15 10.23 4 11.1 4 12c0 4.41 3.59 8 8 8s8-3.59 8-8-3.59-8-8-8c-.9 0-1.77.15-2.58.42L7.89 2.89C9.15 2.32 10.54 2 12 2c5.52 0 10 4.48 10 10s-4.48 10-10 10S2 17.52 2 12c0-1.47.32-2.86.88-4.12zM7 5.5C7 6.33 6.33 7 5.5 7S4 6.33 4 5.5 4.67 4 5.5 4 7 4.67 7 5.5zm5.03 3.49h-.07L10.8 12.3h2.39l-1.16-3.31zM12 18c3.31 0 6-2.69 6-6s-2.69-6-6-6-6 2.69-6 6 2.69 6 6 6zm-.71-10.5h1.43l3.01 8h-1.39l-.72-2.04h-3.23l-.73 2.04H8.28l3.01-8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/motion_photos_off.svg b/html/matt-chat/uswds/img/material-icons/motion_photos_off.svg
new file mode 100644
index 0000000..adf8544
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/motion_photos_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20.84 20.84 3.16 3.16 1.89 4.43l1.89 1.89A9.92 9.92 0 0 0 2 12c0 5.52 4.48 10 10 10 2.11 0 4.07-.66 5.68-1.77l1.89 1.89 1.27-1.28zM12 20c-4.41 0-8-3.59-8-8 0-1.55.45-3 1.22-4.23l1.46 1.46C6.25 10.06 6 11 6 12c0 3.31 2.69 6 6 6 1 0 1.94-.25 2.77-.68l1.46 1.46A7.951 7.951 0 0 1 12 20zM6.32 3.77A9.986 9.986 0 0 1 12 2c5.52 0 10 4.48 10 10 0 2.11-.66 4.07-1.77 5.68l-1.45-1.45A7.951 7.951 0 0 0 20 12c0-4.41-3.59-8-8-8-1.55 0-3 .45-4.23 1.22L6.32 3.77zM18 12c0 1-.25 1.94-.68 2.77L9.23 6.68C10.06 6.25 11 6 12 6c3.31 0 6 2.69 6 6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/motion_photos_on.svg b/html/matt-chat/uswds/img/material-icons/motion_photos_on.svg
new file mode 100644
index 0000000..6e56c04
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/motion_photos_on.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m2.88 7.88 1.54 1.54C4.15 10.23 4 11.1 4 12c0 4.41 3.59 8 8 8s8-3.59 8-8-3.59-8-8-8c-.9 0-1.77.15-2.58.42L7.89 2.89C9.15 2.32 10.54 2 12 2c5.52 0 10 4.48 10 10s-4.48 10-10 10S2 17.52 2 12c0-1.47.32-2.86.88-4.12zM6 12c0-3.31 2.69-6 6-6s6 2.69 6 6-2.69 6-6 6-6-2.69-6-6zm1-6.5C7 6.33 6.33 7 5.5 7S4 6.33 4 5.5 4.67 4 5.5 4 7 4.67 7 5.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/motion_photos_pause.svg b/html/matt-chat/uswds/img/material-icons/motion_photos_pause.svg
new file mode 100644
index 0000000..dabf9d8
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/motion_photos_pause.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m2.88 7.88 1.54 1.54C4.15 10.23 4 11.1 4 12c0 4.41 3.59 8 8 8s8-3.59 8-8-3.59-8-8-8c-.9 0-1.77.15-2.58.42L7.89 2.89C9.15 2.32 10.54 2 12 2c5.52 0 10 4.48 10 10s-4.48 10-10 10S2 17.52 2 12c0-1.47.32-2.86.88-4.12zM7 5.5C7 6.33 6.33 7 5.5 7S4 6.33 4 5.5 4.67 4 5.5 4 7 4.67 7 5.5zm5 .5c-3.31 0-6 2.69-6 6s2.69 6 6 6 6-2.69 6-6-2.69-6-6-6zm-1 9H9V9h2v6zm4 0h-2V9h2v6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/motion_photos_paused.svg b/html/matt-chat/uswds/img/material-icons/motion_photos_paused.svg
new file mode 100644
index 0000000..097e1e0
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/motion_photos_paused.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M22 12c0 5.52-4.48 10-10 10S2 17.52 2 12c0-1.19.22-2.32.6-3.38l1.88.68C4.17 10.14 4 11.05 4 12c0 4.41 3.59 8 8 8s8-3.59 8-8-3.59-8-8-8c-.95 0-1.85.17-2.69.48l-.68-1.89C9.69 2.22 10.82 2 12 2c5.52 0 10 4.48 10 10zM5.5 4C4.67 4 4 4.67 4 5.5S4.67 7 5.5 7 7 6.33 7 5.5 6.33 4 5.5 4zM11 16V8H9v8h2zm4 0V8h-2v8h2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/mouse.svg b/html/matt-chat/uswds/img/material-icons/mouse.svg
new file mode 100644
index 0000000..ff5184c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/mouse.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13 1.07V9h7c0-4.08-3.05-7.44-7-7.93zM4 15c0 4.42 3.58 8 8 8s8-3.58 8-8v-4H4v4zm7-13.93C7.05 1.56 4 4.92 4 9h7V1.07z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/move_down.svg b/html/matt-chat/uswds/img/material-icons/move_down.svg
new file mode 100644
index 0000000..1bd5f51
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/move_down.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 11c0 2.45 1.76 4.47 4.08 4.91l-1.49-1.49L7 13l4 4.01L7 21l-1.41-1.41 1.58-1.58v-.06A7.007 7.007 0 0 1 1 11c0-3.87 3.13-7 7-7h3v2H8c-2.76 0-5 2.24-5 5zm19 0V4h-9v7h9zm-2-2h-5V6h5v3zm-7 4h9v7h-9z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/move_to_inbox.svg b/html/matt-chat/uswds/img/material-icons/move_to_inbox.svg
new file mode 100644
index 0000000..cbc97ad
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/move_to_inbox.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H4.99c-1.11 0-1.98.9-1.98 2L3 19c0 1.1.88 2 1.99 2H19c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 12h-4c0 1.66-1.35 3-3 3s-3-1.34-3-3H4.99V5H19v10zm-3-5h-2V7h-4v3H8l4 4 4-4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/move_up.svg b/html/matt-chat/uswds/img/material-icons/move_up.svg
new file mode 100644
index 0000000..75333ca
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/move_up.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 13c0-2.45 1.76-4.47 4.08-4.91l-1.49 1.5L7 11l4-4.01L7 3 5.59 4.41l1.58 1.58v.06A7.007 7.007 0 0 0 1 13c0 3.87 3.13 7 7 7h3v-2H8c-2.76 0-5-2.24-5-5zm10 0v7h9v-7h-9zm7 5h-5v-3h5v3zM13 4h9v7h-9z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/movie.svg b/html/matt-chat/uswds/img/material-icons/movie.svg
new file mode 100644
index 0000000..632ecd4
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/movie.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m18 4 2 4h-3l-2-4h-2l2 4h-3l-2-4H8l2 4H7L5 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4h-4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/movie_creation.svg b/html/matt-chat/uswds/img/material-icons/movie_creation.svg
new file mode 100644
index 0000000..632ecd4
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/movie_creation.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m18 4 2 4h-3l-2-4h-2l2 4h-3l-2-4H8l2 4H7L5 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4h-4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/movie_filter.svg b/html/matt-chat/uswds/img/material-icons/movie_filter.svg
new file mode 100644
index 0000000..6da7b91
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/movie_filter.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m18 4 2 3h-3l-2-3h-2l2 3h-3l-2-3H8l2 3H7L5 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4h-4zm-6.75 11.25L10 18l-1.25-2.75L6 14l2.75-1.25L10 10l1.25 2.75L14 14l-2.75 1.25zm5.69-3.31L16 14l-.94-2.06L13 11l2.06-.94L16 8l.94 2.06L19 11l-2.06.94z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/moving.svg b/html/matt-chat/uswds/img/material-icons/moving.svg
new file mode 100644
index 0000000..08922ce
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/moving.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19.71 9.71 22 12V6h-6l2.29 2.29-4.17 4.17a.996.996 0 0 1-1.41 0l-1.17-1.17a3 3 0 0 0-4.24 0L2 16.59 3.41 18l5.29-5.29a.996.996 0 0 1 1.41 0l1.17 1.17a3 3 0 0 0 4.24 0l4.19-4.17z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/mp.svg b/html/matt-chat/uswds/img/material-icons/mp.svg
new file mode 100644
index 0000000..97314bc
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/mp.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM6.5 9H11c.55 0 1 .45 1 1v5h-1.5v-4.5h-1v3H8v-3H7V15H5.5v-5c0-.55.45-1 1-1zm9 6H14V9h3.5c.55 0 1 .45 1 1v2.5c0 .55-.45 1-1 1h-2V15zm0-3H17v-1.5h-1.5V12z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/multiline_chart.svg b/html/matt-chat/uswds/img/material-icons/multiline_chart.svg
new file mode 100644
index 0000000..5930697
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/multiline_chart.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m22 6.92-1.41-1.41-2.85 3.21C15.68 6.4 12.83 5 9.61 5 6.72 5 4.07 6.16 2 8l1.42 1.42C5.12 7.93 7.27 7 9.61 7c2.74 0 5.09 1.26 6.77 3.24l-2.88 3.24-4-4L2 16.99l1.5 1.5 6-6.01 4 4 4.05-4.55c.75 1.35 1.25 2.9 1.44 4.55H21c-.22-2.3-.95-4.39-2.04-6.14L22 6.92z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/multiple_stop.svg b/html/matt-chat/uswds/img/material-icons/multiple_stop.svg
new file mode 100644
index 0000000..1d18a00
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/multiple_stop.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m17 4 4 4-4 4V9h-4V7h4V4zm-7 3c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zM6 7c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm1 10h4v-2H7v-3l-4 4 4 4v-3zm7 0c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm4 0c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/museum.svg b/html/matt-chat/uswds/img/material-icons/museum.svg
new file mode 100644
index 0000000..8b10aa0
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/museum.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M22 11V9L12 2 2 9v2h2v9H2v2h20v-2h-2v-9h2zm-6 7h-2v-4l-2 3-2-3v4H8v-7h2l2 3 2-3h2v7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/music_note.svg b/html/matt-chat/uswds/img/material-icons/music_note.svg
new file mode 100644
index 0000000..cdc42fc
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/music_note.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 3v10.55c-.59-.34-1.27-.55-2-.55-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4V7h4V3h-6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/music_off.svg b/html/matt-chat/uswds/img/material-icons/music_off.svg
new file mode 100644
index 0000000..9a48c6c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/music_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M4.27 3 3 4.27l9 9v.28c-.59-.34-1.27-.55-2-.55-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4v-1.73L19.73 21 21 19.73 4.27 3zM14 7h4V3h-6v5.18l2 2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/music_video.svg b/html/matt-chat/uswds/img/material-icons/music_video.svg
new file mode 100644
index 0000000..79f6e9f
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/music_video.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 3H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H3V5h18v14zM8 15c0-1.66 1.34-3 3-3 .35 0 .69.07 1 .18V6h5v2h-3v7.03A3.003 3.003 0 0 1 11 18c-1.66 0-3-1.34-3-3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/my_location.svg b/html/matt-chat/uswds/img/material-icons/my_location.svg
new file mode 100644
index 0000000..402454a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/my_location.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm8.94 3A8.994 8.994 0 0 0 13 3.06V1h-2v2.06A8.994 8.994 0 0 0 3.06 11H1v2h2.06A8.994 8.994 0 0 0 11 20.94V23h2v-2.06A8.994 8.994 0 0 0 20.94 13H23v-2h-2.06zM12 19c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/nat.svg b/html/matt-chat/uswds/img/material-icons/nat.svg
new file mode 100644
index 0000000..30394c0
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/nat.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M6.82 13H11v-2H6.82C6.4 9.84 5.3 9 4 9c-1.66 0-3 1.34-3 3s1.34 3 3 3c1.3 0 2.4-.84 2.82-2zM4 13c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z"/><path d="m23 12-4-3v2h-4.05c-.5-5.05-4.76-9-9.95-9v2c4.42 0 8 3.58 8 8s-3.58 8-8 8v2c5.19 0 9.45-3.95 9.95-9H19v2l4-3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/nature.svg b/html/matt-chat/uswds/img/material-icons/nature.svg
new file mode 100644
index 0000000..fd0fe02
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/nature.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13 16.12a7 7 0 0 0 6.17-6.95c0-3.87-3.13-7-7-7s-7 3.13-7 7A6.98 6.98 0 0 0 11 16.06V20H5v2h14v-2h-6v-3.88z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/nature_people.svg b/html/matt-chat/uswds/img/material-icons/nature_people.svg
new file mode 100644
index 0000000..03d3f0e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/nature_people.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M22.17 9.17c0-3.87-3.13-7-7-7s-7 3.13-7 7A6.98 6.98 0 0 0 14 16.06V20H6v-3h1v-4c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v4h1v5h16v-2h-3v-3.88a7 7 0 0 0 6.17-6.95zM4.5 11c.83 0 1.5-.67 1.5-1.5S5.33 8 4.5 8 3 8.67 3 9.5 3.67 11 4.5 11z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/navigate_before.svg b/html/matt-chat/uswds/img/material-icons/navigate_before.svg
new file mode 100644
index 0000000..e119372
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/navigate_before.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15.41 7.41 14 6l-6 6 6 6 1.41-1.41L10.83 12z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/navigate_next.svg b/html/matt-chat/uswds/img/material-icons/navigate_next.svg
new file mode 100644
index 0000000..7d1129b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/navigate_next.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10 6 8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/navigation.svg b/html/matt-chat/uswds/img/material-icons/navigation.svg
new file mode 100644
index 0000000..5646b08
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/navigation.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2 4.5 20.29l.71.71L12 18l6.79 3 .71-.71z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/near_me.svg b/html/matt-chat/uswds/img/material-icons/near_me.svg
new file mode 100644
index 0000000..e9ebc79
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/near_me.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 3 3 10.53v.98l6.84 2.65L12.48 21h.98L21 3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/near_me_disabled.svg b/html/matt-chat/uswds/img/material-icons/near_me_disabled.svg
new file mode 100644
index 0000000..29640dc
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/near_me_disabled.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 6.34 21 3l-3.34 9L12 6.34zm10.61 13.44L4.22 1.39 2.81 2.81l5.07 5.07L3 9.69v1.41l7.07 2.83L12.9 21h1.41l1.81-4.88 5.07 5.07 1.42-1.41z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/nearby_error.svg b/html/matt-chat/uswds/img/material-icons/nearby_error.svg
new file mode 100644
index 0000000..54cecc5
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/nearby_error.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m12 7.57 4.42 4.42L12 16.41l-4.42-4.42L12 7.57zm0 11.62-7.2-7.2 7.2-7.2 6 6V7.16l-4.58-4.58c-.78-.78-2.05-.78-2.83 0l-8.01 8c-.78.78-.78 2.05 0 2.83l8.01 8c.78.78 2.05.78 2.83 0L18 16.82v-3.63l-6 6zm8 .81h2v2h-2v-2zm2-10h-2v8h2v-8"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/nearby_off.svg b/html/matt-chat/uswds/img/material-icons/nearby_off.svg
new file mode 100644
index 0000000..96de6da
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/nearby_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21.41 13.42 18.83 16l-1.81-1.81L19.2 12 12 4.8 9.81 6.99 8 5.17l2.58-2.58c.78-.78 2.05-.78 2.83 0l8 8c.79.78.79 2.04 0 2.83zm-.22 7.77-1.41 1.41L16 18.83l-2.58 2.58c-.78.78-2.05.78-2.83 0l-8-8c-.78-.78-.78-2.05 0-2.83L5.17 8 1.39 4.22 2.8 2.81l18.39 18.38zm-7-4.17-1.39-1.39-.8.8L7.58 12l.8-.8-1.4-1.39L4.8 12l7.2 7.2 2.19-2.18zM16.42 12 12 7.58l-.8.8 4.42 4.42.8-.8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/nest_cam_wired_stand.svg b/html/matt-chat/uswds/img/material-icons/nest_cam_wired_stand.svg
new file mode 100644
index 0000000..770cb40
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/nest_cam_wired_stand.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m15.83 1.01-4.11.42C8.47 1.75 6 4.48 6 7.75s2.47 6 5.72 6.33l1.9.19-.56.85c-.35-.08-.7-.12-1.06-.12-2.76 0-5 2.24-5 5v2c0 .55.45 1 1 1h8c.55 0 1-.45 1-1v-2c0-1.67-.83-3.15-2.09-4.06l.97-1.45c1.14.07 2.12-.83 2.12-1.99V3c0-1.17-1-2.09-2.17-1.99z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/network_cell.svg b/html/matt-chat/uswds/img/material-icons/network_cell.svg
new file mode 100644
index 0000000..c8d09a9
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/network_cell.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M2 22h20V2L2 22zm18-2h-3V9.83l3-3V20z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/network_check.svg b/html/matt-chat/uswds/img/material-icons/network_check.svg
new file mode 100644
index 0000000..72448f0
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/network_check.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15.9 5c-.17 0-.32.09-.41.23l-.07.15-5.18 11.65c-.16.29-.26.61-.26.96 0 1.11.9 2.01 2.01 2.01.96 0 1.77-.68 1.96-1.59l.01-.03L16.4 5.5c0-.28-.22-.5-.5-.5zM1 9l2 2c2.88-2.88 6.79-4.08 10.53-3.62l1.19-2.68C9.89 3.84 4.74 5.27 1 9zm20 2 2-2a15.367 15.367 0 0 0-5.59-3.57l-.53 2.82c1.5.62 2.9 1.53 4.12 2.75zm-4 4 2-2c-.8-.8-1.7-1.42-2.66-1.89l-.55 2.92c.42.27.83.59 1.21.97zM5 13l2 2a7.1 7.1 0 0 1 4.03-2l1.28-2.88c-2.63-.08-5.3.87-7.31 2.88z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/network_locked.svg b/html/matt-chat/uswds/img/material-icons/network_locked.svg
new file mode 100644
index 0000000..41eb0b1
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/network_locked.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19.5 10c.17 0 .33.03.5.05V1L1 20h13v-3c0-.89.39-1.68 1-2.23v-.27c0-2.48 2.02-4.5 4.5-4.5zm2.5 6v-1.5a2.5 2.5 0 0 0-5 0V16c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h5c.55 0 1-.45 1-1v-4c0-.55-.45-1-1-1zm-1 0h-3v-1.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5V16z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/network_ping.svg b/html/matt-chat/uswds/img/material-icons/network_ping.svg
new file mode 100644
index 0000000..980c4ef
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/network_ping.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 14.67 3.41 6.09 2 7.5l8.5 8.5H4v2h16v-2h-6.5l5.15-5.15A2.5 2.5 0 1 0 19.5 6 2.5 2.5 0 0 0 17 8.5c0 .35.07.67.2.97l-5.2 5.2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/network_wifi.svg b/html/matt-chat/uswds/img/material-icons/network_wifi.svg
new file mode 100644
index 0000000..e476d98
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/network_wifi.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M24 8.98A16.88 16.88 0 0 0 12 4C7.31 4 3.07 5.9 0 8.98L12 21 24 8.98zm-21.08.09C5.51 7.08 8.67 6 12 6s6.49 1.08 9.08 3.07l-1.43 1.43C17.5 8.94 14.86 8 12 8s-5.5.94-7.65 2.51L2.92 9.07z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/network_wifi_1_bar.svg b/html/matt-chat/uswds/img/material-icons/network_wifi_1_bar.svg
new file mode 100644
index 0000000..2eb0fd0
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/network_wifi_1_bar.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 4C7.31 4 3.07 5.9 0 8.98L12 21 24 8.98A16.88 16.88 0 0 0 12 4zm3.32 10.84C14.34 14.3 13.2 14 12 14c-1.2 0-2.34.3-3.32.84L2.92 9.07C5.51 7.08 8.67 6 12 6s6.49 1.08 9.08 3.07l-5.76 5.77z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/network_wifi_2_bar.svg b/html/matt-chat/uswds/img/material-icons/network_wifi_2_bar.svg
new file mode 100644
index 0000000..519ab0e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/network_wifi_2_bar.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 4C7.31 4 3.07 5.9 0 8.98L12 21 24 8.98A16.88 16.88 0 0 0 12 4zm4.78 9.38A8.853 8.853 0 0 0 12 12c-1.76 0-3.4.5-4.78 1.38l-4.3-4.3C5.51 7.08 8.67 6 12 6s6.49 1.08 9.08 3.07l-4.3 4.31z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/network_wifi_3_bar.svg b/html/matt-chat/uswds/img/material-icons/network_wifi_3_bar.svg
new file mode 100644
index 0000000..7795cb6
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/network_wifi_3_bar.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 4C7.31 4 3.07 5.9 0 8.98L12 21 24 8.98A16.88 16.88 0 0 0 12 4zM2.92 9.07C5.51 7.08 8.67 6 12 6s6.49 1.08 9.08 3.07l-2.85 2.86A10.945 10.945 0 0 0 12 10c-2.31 0-4.46.71-6.23 1.93L2.92 9.07z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/new_label.svg b/html/matt-chat/uswds/img/material-icons/new_label.svg
new file mode 100644
index 0000000..5932d57
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/new_label.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m21 12-4.37 6.16c-.37.52-.98.84-1.63.84h-3v-6H9v-3H3V7c0-1.1.9-2 2-2h10c.65 0 1.26.31 1.63.84L21 12zm-11 3H7v-3H5v3H2v2h3v3h2v-3h3v-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/new_releases.svg b/html/matt-chat/uswds/img/material-icons/new_releases.svg
new file mode 100644
index 0000000..7a04c5d
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/new_releases.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m23 12-2.44-2.78.34-3.68-3.61-.82-1.89-3.18L12 3 8.6 1.54 6.71 4.72l-3.61.81.34 3.68L1 12l2.44 2.78-.34 3.69 3.61.82 1.89 3.18L12 21l3.4 1.46 1.89-3.18 3.61-.82-.34-3.68L23 12zm-10 5h-2v-2h2v2zm0-4h-2V7h2v6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/newspaper.svg b/html/matt-chat/uswds/img/material-icons/newspaper.svg
new file mode 100644
index 0000000..84cd0b3
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/newspaper.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m22 3-1.67 1.67L18.67 3 17 4.67 15.33 3l-1.66 1.67L12 3l-1.67 1.67L8.67 3 7 4.67 5.33 3 3.67 4.67 2 3v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V3zM11 19H4v-6h7v6zm9 0h-7v-2h7v2zm0-4h-7v-2h7v2zm0-4H4V8h16v3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/next_plan.svg b/html/matt-chat/uswds/img/material-icons/next_plan.svg
new file mode 100644
index 0000000..96e06ef
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/next_plan.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm6 11.97h-5l2.26-2.26a4.94 4.94 0 0 0-3.76-1.74c-2.37 0-4.35 1.66-4.86 3.88l-.96-.32c.64-2.62 3-4.56 5.82-4.56 1.78 0 3.37.79 4.47 2.03L18 8.97v5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/next_week.svg b/html/matt-chat/uswds/img/material-icons/next_week.svg
new file mode 100644
index 0000000..509de5e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/next_week.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 7h-4V5c0-.55-.22-1.05-.59-1.41C15.05 3.22 14.55 3 14 3h-4c-1.1 0-2 .9-2 2v2H4c-1.1 0-2 .9-2 2v11c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V9c0-1.1-.9-2-2-2zM10 5h4v2h-4V5zm1 13.5-1-1 3-3-3-3 1-1 4 4-4 4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/nfc.svg b/html/matt-chat/uswds/img/material-icons/nfc.svg
new file mode 100644
index 0000000..49cffc9
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/nfc.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 18H4V4h16v16zM18 6h-5c-1.1 0-2 .9-2 2v2.28c-.6.35-1 .98-1 1.72 0 1.1.9 2 2 2s2-.9 2-2c0-.74-.4-1.38-1-1.72V8h3v8H8V8h2V6H6v12h12V6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/night_shelter.svg b/html/matt-chat/uswds/img/material-icons/night_shelter.svg
new file mode 100644
index 0000000..0a9fa99
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/night_shelter.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 3 4 9v12h16V9l-8-6zm-2.25 9.5a1.25 1.25 0 1 1 0 2.5 1.25 1.25 0 0 1 0-2.5zM17 18h-1v-1.5H8V18H7v-7h1v4.5h3.5V12H15c1.1 0 2 .9 2 2v4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/nightlife.svg b/html/matt-chat/uswds/img/material-icons/nightlife.svg
new file mode 100644
index 0000000..8b029f5
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/nightlife.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M1 5h14l-6 9v4h2v2H5v-2h2v-4L1 5zm9.1 4 1.4-2H4.49l1.4 2h4.21zM17 5h5v3h-3v9c0 1.66-1.34 3-3 3s-3-1.34-3-3 1.34-3 3-3a3 3 0 0 1 1 .17V5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/nightlight.svg b/html/matt-chat/uswds/img/material-icons/nightlight.svg
new file mode 100644
index 0000000..2f5a948
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/nightlight.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M14 2c1.82 0 3.53.5 5 1.35-2.99 1.73-5 4.95-5 8.65s2.01 6.92 5 8.65A9.973 9.973 0 0 1 14 22C8.48 22 4 17.52 4 12S8.48 2 14 2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/nightlight_round.svg b/html/matt-chat/uswds/img/material-icons/nightlight_round.svg
new file mode 100644
index 0000000..83f58ec
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/nightlight_round.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12.01 12c0-3.57 2.2-6.62 5.31-7.87.89-.36.75-1.69-.19-1.9-1.1-.24-2.27-.3-3.48-.14-4.51.6-8.12 4.31-8.59 8.83C4.44 16.93 9.13 22 15.01 22c.73 0 1.43-.08 2.12-.23.95-.21 1.1-1.53.2-1.9A8.46 8.46 0 0 1 12.01 12z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/nights_stay.svg b/html/matt-chat/uswds/img/material-icons/nights_stay.svg
new file mode 100644
index 0000000..ced69ee
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/nights_stay.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11.1 12.08c-2.33-4.51-.5-8.48.53-10.07C6.27 2.2 1.98 6.59 1.98 12c0 .14.02.28.02.42.62-.27 1.29-.42 2-.42 1.66 0 3.18.83 4.1 2.15A4.01 4.01 0 0 1 11 18c0 1.52-.87 2.83-2.12 3.51.98.32 2.03.5 3.11.5 3.5 0 6.58-1.8 8.37-4.52-2.36.23-6.98-.97-9.26-5.41z"/><path d="M7 16h-.18C6.4 14.84 5.3 14 4 14c-1.66 0-3 1.34-3 3s1.34 3 3 3h3c1.1 0 2-.9 2-2s-.9-2-2-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/no_accounts.svg b/html/matt-chat/uswds/img/material-icons/no_accounts.svg
new file mode 100644
index 0000000..82f60cf
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/no_accounts.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15.18 10.94c.2-.44.32-.92.32-1.44C15.5 7.57 13.93 6 12 6c-.52 0-1 .12-1.44.32l4.62 4.62z"/><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 13c-2.32 0-4.45.8-6.14 2.12A7.957 7.957 0 0 1 4 12c0-1.85.63-3.55 1.69-4.9l2.86 2.86a3.47 3.47 0 0 0 2.99 2.99l2.2 2.2c-.57-.1-1.15-.15-1.74-.15zm6.31 1.9L7.1 5.69A7.902 7.902 0 0 1 12 4c4.42 0 8 3.58 8 8 0 1.85-.63 3.54-1.69 4.9z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/no_adult_content.svg b/html/matt-chat/uswds/img/material-icons/no_adult_content.svg
new file mode 100644
index 0000000..821ae5f
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/no_adult_content.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zM4 12c0-1.85.63-3.54 1.69-4.9L7.59 9h2.83L7.1 5.69A7.924 7.924 0 0 1 12 4c4.41 0 8 3.59 8 8 0 1.85-.63 3.54-1.69 4.9l-1.9-1.9h-2.83l3.31 3.31A7.874 7.874 0 0 1 12 20c-4.41 0-8-3.59-8-8z"/><path d="m14.25 14-1.5-2 1.5-2h-1.5L12 11l-.75-1h-1.5l1.5 2-1.5 2h1.5l.75-1 .75 1zM8 10l-.75 1-.75-1H5l1.5 2L5 14h1.5l.75-1L8 14h1.5L8 12l1.5-2zm8 4 .75-1 .75 1H19l-1.5-2 1.5-2h-1.5l-.75 1-.75-1h-1.5l1.5 2-1.5 2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/no_backpack.svg b/html/matt-chat/uswds/img/material-icons/no_backpack.svg
new file mode 100644
index 0000000..5e1c618
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/no_backpack.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21.19 21.19 2.81 2.81 1.39 4.22l2.76 2.76C4.06 7.31 4 7.64 4 8v12c0 1.1.9 2 2 2h12c.34 0 .65-.09.93-.24l.85.85 1.41-1.42zM6 14v-2h3.17l2 2H6zm8.83-2L6.98 4.15c.01 0 .01-.01.02-.01V2h3v2h4V2h3v2.14c1.72.45 3 2 3 3.86v9.17l-2-2V12h-3.17z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/no_cell.svg b/html/matt-chat/uswds/img/material-icons/no_cell.svg
new file mode 100644
index 0000000..2319fec
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/no_cell.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m8.83 6-3.7-3.7C5.42 1.55 6.15 1 7 1l10 .01c1.1 0 2 .89 2 1.99v13.17l-2-2V6H8.83zm10.95 16.61-.91-.91c-.29.75-1.02 1.3-1.87 1.3H7c-1.1 0-2-.9-2-2V7.83L1.39 4.22 2.8 2.81l18.38 18.38-1.4 1.42zM15.17 18 7 9.83V18h8.17z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/no_crash.svg b/html/matt-chat/uswds/img/material-icons/no_crash.svg
new file mode 100644
index 0000000..af44ddb
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/no_crash.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18.92 9.01C18.72 8.42 18.16 8 17.5 8h-11c-.66 0-1.21.42-1.42 1.01L3 15v8c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1h12v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-8l-2.08-5.99zM6.85 10h10.29l1.04 3H5.81l1.04-3zM6 17.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5S8.33 19 7.5 19 6 18.33 6 17.5zm9 0c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5-.67 1.5-1.5 1.5-1.5-.67-1.5-1.5zM12 6.36 9.17 3.54l1.41-1.41L12 3.54 15.54 0l1.41 1.41L12 6.36z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/no_drinks.svg b/html/matt-chat/uswds/img/material-icons/no_drinks.svg
new file mode 100644
index 0000000..0c5b3d6
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/no_drinks.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M5.83 3H21v2l-6.2 6.97L9.83 7h6.74l1.78-2H7.83l-2-2zm13.95 19.61L18 20.83V21H6v-2h5v-5l-1.37-1.54-8.24-8.24L2.8 2.81 3 3l18.19 18.19-1.41 1.42zM16.17 19 13 15.83V19h3.17z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/no_encryption.svg b/html/matt-chat/uswds/img/material-icons/no_encryption.svg
new file mode 100644
index 0000000..64ff4d1
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/no_encryption.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 21.78 4.22 5 3 6.22l2.04 2.04C4.42 8.6 4 9.25 4 10v10c0 1.1.9 2 2 2h12c.23 0 .45-.05.66-.12L19.78 23 21 21.78zM8.9 6c0-1.71 1.39-3.1 3.1-3.1s3.1 1.39 3.1 3.1v2H9.66L20 18.34V10c0-1.1-.9-2-2-2h-1V6c0-2.76-2.24-5-5-5-2.56 0-4.64 1.93-4.94 4.4L8.9 7.24V6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/no_encryption_gmailerrorred.svg b/html/matt-chat/uswds/img/material-icons/no_encryption_gmailerrorred.svg
new file mode 100644
index 0000000..5929ae9
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/no_encryption_gmailerrorred.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M8.9 6c0-1.71 1.39-3.1 3.1-3.1s3.1 1.39 3.1 3.1v2h-4.27L20 17.17V10c0-1.1-.9-2-2-2h-1V6c0-2.76-2.24-5-5-5-2.21 0-4.07 1.45-4.73 3.44L8.9 6.07V6zM2.1 2.1.69 3.51 5.3 8.13C4.55 8.42 4 9.15 4 10v10c0 1.1.9 2 2 2h12c.34 0 .65-.09.93-.24l1.56 1.56 1.41-1.41L2.1 2.1zM12 17c-1.1 0-2-.9-2-2 0-.59.27-1.12.68-1.49l2.81 2.81c-.37.41-.9.68-1.49.68z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/no_flash.svg b/html/matt-chat/uswds/img/material-icons/no_flash.svg
new file mode 100644
index 0000000..bf4d4cf
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/no_flash.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13.93 13.93 2.45 2.45 1.04 3.87l5.3 5.3-.2.23H3.6c-.88 0-1.6.72-1.6 1.6v9.4c0 .88.72 1.6 1.6 1.6h12.8c.75 0 1.38-.52 1.55-1.22l2.18 2.18 1.41-1.41L18 18l-4.07-4.07zM10 20c-2.21 0-4-1.79-4-4 0-1.95 1.4-3.57 3.25-3.92l1.57 1.57c-.26-.09-.53-.15-.82-.15a2.5 2.5 0 0 0 0 5 2.5 2.5 0 0 0 2.5-2.5c0-.29-.06-.56-.15-.82l1.57 1.57A3.993 3.993 0 0 1 10 20zm8-4.83L10.83 8h1.75l1.28 1.4h2.54c.88 0 1.6.72 1.6 1.6v4.17zm2.4-9.57H22L19 11V7h-1V2h4l-1.6 3.6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/no_food.svg b/html/matt-chat/uswds/img/material-icons/no_food.svg
new file mode 100644
index 0000000..787e4b4
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/no_food.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11.35 8.52 11 5h5V1h2v4h5l-1.38 13.79L11.35 8.52zM1 21v1c0 .55.45 1 1 1h13c.55 0 1-.45 1-1v-1H1zm20.9.9L2.1 2.1.69 3.51l5.7 5.7C3.28 9.87 1 11.99 1 15h11.17l2 2H1v2h15v-.17l4.49 4.49 1.41-1.42z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/no_luggage.svg b/html/matt-chat/uswds/img/material-icons/no_luggage.svg
new file mode 100644
index 0000000..b1590ab
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/no_luggage.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12.75 9v.92l1.75 1.75V9H16v4.17l3 3V8c0-1.1-.9-2-2-2h-2V3c0-.55-.45-1-1-1h-4c-.55 0-1 .45-1 1v3h-.17l3 3h.92zM10.5 3.5h3V6h-3V3.5zm10.69 17.69L2.81 2.81 1.39 4.22l3.63 3.63c0 .05-.02.1-.02.15v11c0 1.1.9 2 2 2 0 .55.45 1 1 1s1-.45 1-1h6c0 .55.45 1 1 1s1-.45 1-1c.34 0 .65-.09.93-.24l1.85 1.85 1.41-1.42zM8 18v-7.17l1.5 1.5V18H8zm4.75 0h-1.5v-3.92l1.5 1.5V18z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/no_meals.svg b/html/matt-chat/uswds/img/material-icons/no_meals.svg
new file mode 100644
index 0000000..78541a0
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/no_meals.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16 14V6c0-1.76 2.24-4 5-4v16.17l-2-2V14h-3zm4.49 9.31L10.02 12.85c-.33.09-.66.15-1.02.15v9H7v-9c-2.21 0-4-1.79-4-4V5.83L.69 3.51 2.1 2.1l19.8 19.8-1.41 1.41zM6.17 9 5 7.83V9h1.17zM9 2H7v2.17l2 2V2zm4 7V2h-2v6.17l1.85 1.85c.09-.33.15-.66.15-1.02z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/no_meeting_room.svg b/html/matt-chat/uswds/img/material-icons/no_meeting_room.svg
new file mode 100644
index 0000000..c310db5
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/no_meeting_room.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11 11h-1v2h2v-1l9.73 9.73L20.46 23 14 16.54V21H3v-2h2V7.54l-4-4 1.27-1.27L11 11zm3 .49L5.51 3H14v1h5v12.49l-2-2V6h-3v5.49z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/no_photography.svg b/html/matt-chat/uswds/img/material-icons/no_photography.svg
new file mode 100644
index 0000000..83fe82e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/no_photography.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10.94 8.12 7.48 4.66 9 3h6l1.83 2H20c1.1 0 2 .9 2 2v12c0 .05-.01.1-.02.16l-5.1-5.1c.08-.35.12-.7.12-1.06 0-2.76-2.24-5-5-5-.36 0-.71.04-1.06.12zm9.55 15.19L18.17 21H4c-1.1 0-2-.9-2-2V7c0-.59.27-1.12.68-1.49l-2-2L2.1 2.1l19.8 19.8-1.41 1.41zm-6-5.99-1.5-1.5c-.32.1-.64.18-.99.18-1.66 0-3-1.34-3-3 0-.35.08-.67.19-.98l-1.5-1.5A4.74 4.74 0 0 0 7 13c0 2.76 2.24 5 5 5 .91 0 1.76-.25 2.49-.68z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/no_sim.svg b/html/matt-chat/uswds/img/material-icons/no_sim.svg
new file mode 100644
index 0000000..ae7f8fc
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/no_sim.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18.99 5c0-1.1-.89-2-1.99-2h-7L7.66 5.34 19 16.68 18.99 5zM3.65 3.88 2.38 5.15 5 7.77V19c0 1.1.9 2 2 2h10.01c.35 0 .67-.1.96-.26l1.88 1.88 1.27-1.27L3.65 3.88z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/no_stroller.svg b/html/matt-chat/uswds/img/material-icons/no_stroller.svg
new file mode 100644
index 0000000..98379da
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/no_stroller.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M6 18c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2zM18.65 3c-1.66 0-2.54 1.27-3.18 2.03l-3.5 4.11L17 14.17v-7.9c.58-.68.97-1.27 1.65-1.27.77 0 1.35.66 1.35 1.48V7h2v-.52C22 4.56 20.52 3 18.65 3zm-7.98 7.67L2.81 2.81 1.39 4.22l7.97 7.97-2.66 3.12c-.55.65-.09 1.65.76 1.65h6.66l1.17 1.17C14.54 18.42 14 19.14 14 20c0 1.1.9 2 2 2 .86 0 1.58-.54 1.87-1.3l1.91 1.91 1.41-1.41-4.8-4.8-5.72-5.73zm2.8-5.64c.27-.32.58-.72.98-1.09a9.347 9.347 0 0 0-7.81-.13l4.25 4.25 2.58-3.03z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/no_transfer.svg b/html/matt-chat/uswds/img/material-icons/no_transfer.svg
new file mode 100644
index 0000000..b9c7e21
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/no_transfer.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21.19 21.19 2.81 2.81 1.39 4.22 4 6.83V16c0 .88.39 1.67 1 2.22V20c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1h8v1c0 .55.45 1 1 1h1c.05 0 .09-.02.14-.03l1.64 1.64 1.41-1.42zM7.5 17c-.83 0-1.5-.67-1.5-1.5S6.67 14 7.5 14s1.5.67 1.5 1.5S8.33 17 7.5 17zM6 11V8.83L8.17 11H6zm2.83-5L5.78 2.95C7.24 2.16 9.48 2 12 2c4.42 0 8 .5 8 4v10c0 .35-.08.67-.19.98L13.83 11H18V6H8.83z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/noise_aware.svg b/html/matt-chat/uswds/img/material-icons/noise_aware.svg
new file mode 100644
index 0000000..5ebf1d7
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/noise_aware.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16 15h-2a1.003 1.003 0 0 1-1.95.32c-.15-.44-.4-1.08-.93-1.61l-1.36-1.36C9.28 11.87 9 11.19 9 10.5a2.5 2.5 0 0 1 4.95-.5h2.02c-.25-2.25-2.16-4-4.47-4C9.02 6 7 8.02 7 10.5c0 1.22.49 2.41 1.35 3.27l1.36 1.36c.17.17.31.44.44.82A3.013 3.013 0 0 0 13 18c1.65 0 3-1.35 3-3z"/><circle cx="13.5" cy="12.5" r="1.5"/><path d="m3.6 6.58 1.58 1.26c.35-.57.77-1.1 1.24-1.57L4.85 5.02c-.47.47-.88 1-1.25 1.56zm5.86-2.16-.87-1.81c-.63.23-1.24.52-1.8.87l.87 1.81c.56-.36 1.16-.65 1.8-.87zM4.49 9.26l-1.96-.45c-.21.63-.36 1.28-.44 1.95l1.96.45a7.9 7.9 0 0 1 .44-1.95zM20.4 6.58a9.4 9.4 0 0 0-1.25-1.56l-1.58 1.26c.48.47.89.99 1.24 1.57l1.59-1.27zM4.04 12.79l-1.96.45c.08.67.23 1.33.44 1.95l1.97-.45c-.22-.62-.38-1.27-.45-1.95zm13.17-9.31c-.57-.35-1.17-.64-1.8-.87l-.87 1.81c.64.22 1.24.51 1.8.87l.87-1.81zM13 4.07V2.05c-.33-.03-.66-.05-1-.05s-.67.02-1 .05v2.02c.33-.04.66-.07 1-.07s.67.03 1 .07zm-2 15.86v2.02c.33.03.66.05 1 .05s.67-.02 1-.05v-2.02c-.33.04-.66.07-1 .07s-.67-.03-1-.07zm8.51-5.19 1.97.45c.21-.63.36-1.28.44-1.95l-1.96-.45c-.07.68-.23 1.33-.45 1.95zm.45-3.53 1.96-.45a9.69 9.69 0 0 0-.44-1.95l-1.97.45c.22.62.38 1.27.45 1.95zm-2.38 6.52 1.58 1.26c.47-.48.88-1 1.25-1.56l-1.58-1.26a9.4 9.4 0 0 1-1.25 1.56zM6.79 20.52c.57.35 1.17.64 1.8.87l.87-1.81c-.64-.22-1.24-.51-1.8-.87l-.87 1.81zm7.75-.94.87 1.81c.63-.23 1.24-.52 1.8-.87l-.87-1.81c-.56.36-1.16.65-1.8.87zM3.6 17.42a9.4 9.4 0 0 0 1.25 1.56l1.58-1.26a7.87 7.87 0 0 1-1.24-1.57L3.6 17.42z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/noise_control_off.svg b/html/matt-chat/uswds/img/material-icons/noise_control_off.svg
new file mode 100644
index 0000000..49cfbf9
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/noise_control_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 4c1.44 0 2.79.38 3.95 1.05L17.4 3.6C15.85 2.59 13.99 2 12 2s-3.85.59-5.41 1.59l1.45 1.45A8.034 8.034 0 0 1 12 4zm8 8c0 1.44-.38 2.79-1.05 3.95l1.45 1.45c1.01-1.55 1.6-3.41 1.6-5.4s-.59-3.85-1.59-5.41l-1.45 1.45A8.034 8.034 0 0 1 20 12zm-8 8c-1.44 0-2.79-.38-3.95-1.05L6.6 20.4C8.15 21.41 10.01 22 12 22s3.85-.59 5.41-1.59l-1.45-1.45A8.034 8.034 0 0 1 12 20zm-8-8c0-1.44.38-2.79 1.05-3.95L3.59 6.59C2.59 8.15 2 10.01 2 12s.59 3.85 1.59 5.41l1.45-1.45A8.034 8.034 0 0 1 4 12zm7.5-6C9.02 6 7 8.02 7 10.5c0 1.22.49 2.41 1.35 3.27l1.36 1.36c.17.17.31.44.44.82A3.013 3.013 0 0 0 13 18c1.65 0 3-1.35 3-3h-2a1.003 1.003 0 0 1-1.95.32c-.15-.44-.4-1.08-.93-1.61l-1.36-1.36C9.28 11.87 9 11.19 9 10.5a2.5 2.5 0 0 1 4.95-.5h2.02c-.25-2.25-2.16-4-4.47-4z"/><circle cx="13.5" cy="12.5" r="1.5"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/nordic_walking.svg b/html/matt-chat/uswds/img/material-icons/nordic_walking.svg
new file mode 100644
index 0000000..f46dd17
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/nordic_walking.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 23h-1.5v-9H19v9zM7.53 14H6l-2 9h1.53l2-9zm5.97-8.5c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zM9.8 8.9 7 23h2.1l1.8-8 2.1 2v6h2v-7.5l-2.1-2 .6-3C14.8 12 16.8 13 19 13v-2c-1.9 0-3.5-1-4.3-2.4l-1-1.6a2.145 2.145 0 0 0-2.65-.84L6 8.3V13h2V9.6l1.8-.7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/north.svg b/html/matt-chat/uswds/img/material-icons/north.svg
new file mode 100644
index 0000000..62ee0b1
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/north.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m5 9 1.41 1.41L11 5.83V22h2V5.83l4.59 4.59L19 9l-7-7-7 7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/north_east.svg b/html/matt-chat/uswds/img/material-icons/north_east.svg
new file mode 100644
index 0000000..8d32d3b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/north_east.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M9 5v2h6.59L4 18.59 5.41 20 17 8.41V15h2V5H9z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/north_west.svg b/html/matt-chat/uswds/img/material-icons/north_west.svg
new file mode 100644
index 0000000..9962881
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/north_west.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M5 15h2V8.41L18.59 20 20 18.59 8.41 7H15V5H5v10z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/not_accessible.svg b/html/matt-chat/uswds/img/material-icons/not_accessible.svg
new file mode 100644
index 0000000..88e4485
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/not_accessible.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m14 11.05-3.42-3.42c.32-.34.74-.57 1.23-.61.48-.04.84.07 1.2.26.19.1.39.22.63.46l1.29 1.43c.98 1.08 2.53 1.85 4.07 1.83v2c-1.75-.01-3.71-.88-5-1.95zM12 6c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zM2.81 2.81 1.39 4.22 10 12.83V15c0 1.1.9 2 2 2h2.17l5.61 5.61 1.41-1.41L2.81 2.81zM10 20c-1.66 0-3-1.34-3-3 0-1.31.84-2.41 2-2.83V12.1a5 5 0 1 0 5.9 5.9h-2.07c-.41 1.16-1.52 2-2.83 2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/not_interested.svg b/html/matt-chat/uswds/img/material-icons/not_interested.svg
new file mode 100644
index 0000000..a6dd08d
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/not_interested.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8 0-1.85.63-3.55 1.69-4.9L16.9 18.31A7.902 7.902 0 0 1 12 20zm6.31-3.1L7.1 5.69A7.902 7.902 0 0 1 12 4c4.42 0 8 3.58 8 8 0 1.85-.63 3.55-1.69 4.9z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/not_listed_location.svg b/html/matt-chat/uswds/img/material-icons/not_listed_location.svg
new file mode 100644
index 0000000..e3390a0
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/not_listed_location.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C8.14 2 5 5.14 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.86-3.14-7-7-7zm.88 13.75h-1.75V14h1.75v1.75zm0-2.87h-1.75c0-2.84 2.62-2.62 2.62-4.38 0-.96-.79-1.75-1.75-1.75s-1.75.79-1.75 1.75H8.5C8.5 6.57 10.07 5 12 5s3.5 1.57 3.5 3.5c0 2.19-2.62 2.41-2.62 4.38z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/not_started.svg b/html/matt-chat/uswds/img/material-icons/not_started.svg
new file mode 100644
index 0000000..3dbd2b0
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/not_started.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 14H9V8h2v8zm1 0V8l5 4-5 4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/note.svg b/html/matt-chat/uswds/img/material-icons/note.svg
new file mode 100644
index 0000000..8533666
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/note.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m22 10-6-6H4c-1.1 0-2 .9-2 2v12.01c0 1.1.9 1.99 2 1.99l16-.01c1.1 0 2-.89 2-1.99v-8zm-7-4.5 5.5 5.5H15V5.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/note_add.svg b/html/matt-chat/uswds/img/material-icons/note_add.svg
new file mode 100644
index 0000000..36c9d08
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/note_add.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm2 14h-3v3h-2v-3H8v-2h3v-3h2v3h3v2zm-3-7V3.5L18.5 9H13z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/note_alt.svg b/html/matt-chat/uswds/img/material-icons/note_alt.svg
new file mode 100644
index 0000000..ccdf14e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/note_alt.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3h-4.18C14.4 1.84 13.3 1 12 1s-2.4.84-2.82 2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7-.25c.41 0 .75.34.75.75s-.34.75-.75.75-.75-.34-.75-.75.34-.75.75-.75zM9.1 17H7v-2.14l5.96-5.96 2.12 2.12L9.1 17zm7.75-7.73-1.06 1.06-2.12-2.12 1.06-1.06c.2-.2.51-.2.71 0l1.41 1.41c.2.2.2.51 0 .71z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/notes.svg b/html/matt-chat/uswds/img/material-icons/notes.svg
new file mode 100644
index 0000000..82effba
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/notes.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 18h12v-2H3v2zM3 6v2h18V6H3zm0 7h18v-2H3v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/notification_add.svg b/html/matt-chat/uswds/img/material-icons/notification_add.svg
new file mode 100644
index 0000000..4818a58
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/notification_add.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10 20h4c0 1.1-.9 2-2 2s-2-.9-2-2zm4-11c0 2.61 1.67 4.83 4 5.66V17h2v2H4v-2h2v-7c0-2.79 1.91-5.14 4.5-5.8v-.7c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5v.7c.71.18 1.36.49 1.95.9A5.902 5.902 0 0 0 14 9zm10-1h-3V5h-2v3h-3v2h3v3h2v-3h3V8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/notification_important.svg b/html/matt-chat/uswds/img/material-icons/notification_important.svg
new file mode 100644
index 0000000..559f89f
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/notification_important.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 16v-5c0-3.07-1.64-5.64-4.5-6.32V4c0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5v.68C7.63 5.36 6 7.92 6 11v5l-2 2v1h16v-1l-2-2zm-5 0h-2v-2h2v2zm0-4h-2V8h2v4zm-1 10c1.1 0 2-.9 2-2h-4a2 2 0 0 0 2 2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/notifications.svg b/html/matt-chat/uswds/img/material-icons/notifications.svg
new file mode 100644
index 0000000..3f3e328
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/notifications.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 22c1.1 0 2-.9 2-2h-4a2 2 0 0 0 2 2zm6-6v-5c0-3.07-1.64-5.64-4.5-6.32V4c0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5v.68C7.63 5.36 6 7.92 6 11v5l-2 2v1h16v-1l-2-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/notifications_active.svg b/html/matt-chat/uswds/img/material-icons/notifications_active.svg
new file mode 100644
index 0000000..7418d67
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/notifications_active.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M7.58 4.08 6.15 2.65C3.75 4.48 2.17 7.3 2.03 10.5h2a8.445 8.445 0 0 1 3.55-6.42zm12.39 6.42h2c-.15-3.2-1.73-6.02-4.12-7.85l-1.42 1.43a8.495 8.495 0 0 1 3.54 6.42zM18 11c0-3.07-1.64-5.64-4.5-6.32V4c0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5v.68C7.63 5.36 6 7.92 6 11v5l-2 2v1h16v-1l-2-2v-5zm-6 11c.14 0 .27-.01.4-.04.65-.14 1.18-.58 1.44-1.18.1-.24.15-.5.15-.78h-4c.01 1.1.9 2 2.01 2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/notifications_none.svg b/html/matt-chat/uswds/img/material-icons/notifications_none.svg
new file mode 100644
index 0000000..f7c6893
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/notifications_none.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 22c1.1 0 2-.9 2-2h-4c0 1.1.9 2 2 2zm6-6v-5c0-3.07-1.63-5.64-4.5-6.32V4c0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5v.68C7.64 5.36 6 7.92 6 11v5l-2 2v1h16v-1l-2-2zm-2 1H8v-6c0-2.48 1.51-4.5 4-4.5s4 2.02 4 4.5v6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/notifications_off.svg b/html/matt-chat/uswds/img/material-icons/notifications_off.svg
new file mode 100644
index 0000000..39a5900
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/notifications_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 18.69 7.84 6.14 5.27 3.49 4 4.76l2.8 2.8v.01c-.52.99-.8 2.16-.8 3.42v5l-2 2v1h13.73l2 2L21 19.72l-1-1.03zM12 22c1.11 0 2-.89 2-2h-4c0 1.11.89 2 2 2zm6-7.32V11c0-3.08-1.64-5.64-4.5-6.32V4c0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5v.68c-.15.03-.29.08-.42.12-.1.03-.2.07-.3.11h-.01c-.01 0-.01 0-.02.01-.23.09-.46.2-.68.31 0 0-.01 0-.01.01L18 14.68z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/notifications_paused.svg b/html/matt-chat/uswds/img/material-icons/notifications_paused.svg
new file mode 100644
index 0000000..290b727
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/notifications_paused.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 22c1.1 0 2-.9 2-2h-4a2 2 0 0 0 2 2zm6-6v-5c0-3.07-1.64-5.64-4.5-6.32V4c0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5v.68C7.63 5.36 6 7.93 6 11v5l-2 2v1h16v-1l-2-2zm-3.5-6.2-2.8 3.4h2.8V15h-5v-1.8l2.8-3.4H9.5V8h5v1.8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/numbers.svg b/html/matt-chat/uswds/img/material-icons/numbers.svg
new file mode 100644
index 0000000..8462e61
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/numbers.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m20.5 10 .5-2h-4l1-4h-2l-1 4h-4l1-4h-2L9 8H5l-.5 2h4l-1 4h-4L3 16h4l-1 4h2l1-4h4l-1 4h2l1-4h4l.5-2h-4l1-4h4zm-7 4h-4l1-4h4l-1 4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/offline_bolt.svg b/html/matt-chat/uswds/img/material-icons/offline_bolt.svg
new file mode 100644
index 0000000..9ceb6fb
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/offline_bolt.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2.02c-5.51 0-9.98 4.47-9.98 9.98s4.47 9.98 9.98 9.98 9.98-4.47 9.98-9.98S17.51 2.02 12 2.02zM11.48 20v-6.26H8L13 4v6.26h3.35L11.48 20z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/offline_pin.svg b/html/matt-chat/uswds/img/material-icons/offline_pin.svg
new file mode 100644
index 0000000..0f12fb4
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/offline_pin.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2zm5 16H7v-2h10v2zm-6.7-4L7 10.7l1.4-1.4 1.9 1.9 5.3-5.3L17 7.3 10.3 14z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/offline_share.svg b/html/matt-chat/uswds/img/material-icons/offline_share.svg
new file mode 100644
index 0000000..9f226b8
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/offline_share.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M14.6 10.26v1.31L17 9.33 14.6 7.1v1.28c-2.33.32-3.26 1.92-3.6 3.52.83-1.13 1.93-1.64 3.6-1.64zM16 23H6c-1.1 0-2-.9-2-2V5h2v16h10v2zm2-22h-8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 15h-8V4h8v12z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/oil_barrel.svg b/html/matt-chat/uswds/img/material-icons/oil_barrel.svg
new file mode 100644
index 0000000..43bea6e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/oil_barrel.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 13c.55 0 1-.45 1-1s-.45-1-1-1h-1V5h1c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1s.45 1 1 1h1v6H4c-.55 0-1 .45-1 1s.45 1 1 1h1v6H4c-.55 0-1 .45-1 1s.45 1 1 1h16c.55 0 1-.45 1-1s-.45-1-1-1h-1v-6h1zm-8 3c-1.66 0-3-1.32-3-2.95 0-1.3.52-1.67 3-4.55 2.47 2.86 3 3.24 3 4.55 0 1.63-1.34 2.95-3 2.95z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/on_device_training.svg b/html/matt-chat/uswds/img/material-icons/on_device_training.svg
new file mode 100644
index 0000000..1c0749f
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/on_device_training.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11 16h2v1h-2zm1-5c-1.1 0-2 .9-2 2 0 .74.4 1.38 1 1.72v.78h2v-.78c.6-.35 1-.98 1-1.72 0-1.1-.9-2-2-2z"/><path d="M18 1.01 6 1c-1.1 0-2 .9-2 2v18c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V3c0-1.1-.9-1.99-2-1.99zM18 18H6V6h12v12z"/><path d="M16.01 15.95c.62-.83.99-1.84.99-2.95s-.37-2.12-.99-2.95l-1.07 1.07c.35.54.56 1.19.56 1.88s-.21 1.34-.56 1.88l1.07 1.07zm-6.95-1.07c-.35-.54-.56-1.19-.56-1.88 0-1.93 1.57-3.5 3.5-3.5v1.25l2.25-2-2.25-2V8c-2.76 0-5 2.24-5 5 0 1.11.37 2.12.99 2.95l1.07-1.07z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/ondemand_video.svg b/html/matt-chat/uswds/img/material-icons/ondemand_video.svg
new file mode 100644
index 0000000..b83d9c2
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/ondemand_video.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 3H3c-1.11 0-2 .89-2 2v12a2 2 0 0 0 2 2h5v2h8v-2h5c1.1 0 1.99-.9 1.99-2L23 5a2 2 0 0 0-2-2zm0 14H3V5h18v12zm-5-6-7 4V7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/online_prediction.svg b/html/matt-chat/uswds/img/material-icons/online_prediction.svg
new file mode 100644
index 0000000..36d4d9c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/online_prediction.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15.5 11.5c0 2-2.5 3.5-2.5 5h-2c0-1.5-2.5-3-2.5-5C8.5 9.57 10.07 8 12 8s3.5 1.57 3.5 3.5zm-2.5 6h-2V19h2v-1.5zm9-5.5c0-2.76-1.12-5.26-2.93-7.07l-1.06 1.06A8.481 8.481 0 0 1 20.5 12c0 2.34-.95 4.47-2.49 6.01l1.06 1.06A9.969 9.969 0 0 0 22 12zM3.5 12c0-2.34.95-4.47 2.49-6.01L4.93 4.93A9.969 9.969 0 0 0 2 12c0 2.76 1.12 5.26 2.93 7.07l1.06-1.06A8.481 8.481 0 0 1 3.5 12zm14 0c0 1.52-.62 2.89-1.61 3.89l1.06 1.06A6.976 6.976 0 0 0 19 12c0-1.93-.78-3.68-2.05-4.95l-1.06 1.06c.99 1 1.61 2.37 1.61 3.89zM7.05 16.95l1.06-1.06c-1-1-1.61-2.37-1.61-3.89s.62-2.89 1.61-3.89L7.05 7.05A6.976 6.976 0 0 0 5 12c0 1.93.78 3.68 2.05 4.95z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/opacity.svg b/html/matt-chat/uswds/img/material-icons/opacity.svg
new file mode 100644
index 0000000..b975547
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/opacity.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17.66 8 12 2.35 6.34 8A8.02 8.02 0 0 0 4 13.64c0 2 .78 4.11 2.34 5.67a7.99 7.99 0 0 0 11.32 0c1.56-1.56 2.34-3.67 2.34-5.67S19.22 9.56 17.66 8zM6 14c.01-2 .62-3.27 1.76-4.4L12 5.27l4.24 4.38C17.38 10.77 17.99 12 18 14H6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/open_in_browser.svg b/html/matt-chat/uswds/img/material-icons/open_in_browser.svg
new file mode 100644
index 0000000..fd11fa9
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/open_in_browser.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 4H5a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h4v-2H5V8h14v10h-4v2h4c1.1 0 2-.9 2-2V6a2 2 0 0 0-2-2zm-7 6-4 4h3v6h2v-6h3l-4-4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/open_in_full.svg b/html/matt-chat/uswds/img/material-icons/open_in_full.svg
new file mode 100644
index 0000000..6de9ddc
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/open_in_full.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 11V3h-8l3.29 3.29-10 10L3 13v8h8l-3.29-3.29 10-10z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/open_in_new.svg b/html/matt-chat/uswds/img/material-icons/open_in_new.svg
new file mode 100644
index 0000000..6a2f70b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/open_in_new.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 19H5V5h7V3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/open_in_new_off.svg b/html/matt-chat/uswds/img/material-icons/open_in_new_off.svg
new file mode 100644
index 0000000..3c52247
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/open_in_new_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16.79 5.8 14 3h7v7l-2.79-2.8-4.09 4.09-1.41-1.41 4.08-4.08zM19 12v4.17l2 2V12h-2zm.78 10.61L18.17 21H5a2 2 0 0 1-2-2V5.83L1.39 4.22 2.8 2.81l18.38 18.38-1.4 1.42zM16.17 19l-4.88-4.88-1.59 1.59-1.41-1.41 1.59-1.59L5 7.83V19h11.17zM7.83 5H12V3H5.83l2 2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/open_with.svg b/html/matt-chat/uswds/img/material-icons/open_with.svg
new file mode 100644
index 0000000..647efc9
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/open_with.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10 9h4V6h3l-5-5-5 5h3v3zm-1 1H6V7l-5 5 5 5v-3h3v-4zm14 2-5-5v3h-3v4h3v3l5-5zm-9 3h-4v3H7l5 5 5-5h-3v-3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/other_houses.svg b/html/matt-chat/uswds/img/material-icons/other_houses.svg
new file mode 100644
index 0000000..2347363
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/other_houses.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 3 1 11.4l1.21 1.59L4 11.62V21h16v-9.38l1.79 1.36L23 11.4 12 3zM8 15c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm4 0c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm4 0c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/outbound.svg b/html/matt-chat/uswds/img/material-icons/outbound.svg
new file mode 100644
index 0000000..9ec846f
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/outbound.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1.88 9.54L8.92 16.5l-1.41-1.41 4.96-4.96L10.34 8l5.65.01.01 5.65-2.12-2.12z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/outbox.svg b/html/matt-chat/uswds/img/material-icons/outbox.svg
new file mode 100644
index 0000000..351e92d
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/outbox.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H4.99c-1.11 0-1.98.9-1.98 2L3 19c0 1.1.88 2 1.99 2H19c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 12h-4c0 1.66-1.35 3-3 3s-3-1.34-3-3H4.99V5H19v10zM8 11h2v3h4v-3h2l-4-4-4 4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/outdoor_grill.svg b/html/matt-chat/uswds/img/material-icons/outdoor_grill.svg
new file mode 100644
index 0000000..3100984
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/outdoor_grill.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 22c1.66 0 3-1.34 3-3s-1.34-3-3-3c-1.3 0-2.4.84-2.82 2H9.14l1.99-3.06a6.36 6.36 0 0 0 1.74 0l1.02 1.57c.42-.53.96-.95 1.6-1.21l-.6-.93A6.992 6.992 0 0 0 19 8H5c0 2.84 1.69 5.27 4.12 6.37l-3.95 6.08a1 1 0 0 0 .29 1.38 1 1 0 0 0 1.38-.29l1-1.55h6.34C14.6 21.16 15.7 22 17 22zm0-4c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zM9.41 7h1c.15-1.15.23-1.64-.89-2.96-.42-.5-.68-.77-.46-2.04h-.99c-.21 1.11.03 2.05.89 2.96.22.24.79.67.45 2.04zm2.48 0h1c.15-1.15.23-1.64-.89-2.96-.42-.5-.68-.78-.46-2.04h-.99c-.21 1.11.03 2.05.89 2.96.23.24.8.67.45 2.04zm2.52 0h1c.15-1.15.23-1.64-.89-2.96-.42-.5-.68-.77-.46-2.04h-.99c-.21 1.11.03 2.05.89 2.96.22.24.79.67.45 2.04z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/outlet.svg b/html/matt-chat/uswds/img/material-icons/outlet.svg
new file mode 100644
index 0000000..a6626e6
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/outlet.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zM9 12c-.55 0-1-.45-1-1V8c0-.55.45-1 1-1s1 .45 1 1v3c0 .55-.45 1-1 1zm5 6h-4v-2c0-1.1.9-2 2-2s2 .9 2 2v2zm2-7c0 .55-.45 1-1 1s-1-.45-1-1V8c0-.55.45-1 1-1s1 .45 1 1v3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/outlined_flag.svg b/html/matt-chat/uswds/img/material-icons/outlined_flag.svg
new file mode 100644
index 0000000..8c32664
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/outlined_flag.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m14 6-1-2H5v17h2v-7h5l1 2h7V6h-6zm4 8h-4l-1-2H7V6h5l1 2h5v6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/output.svg b/html/matt-chat/uswds/img/material-icons/output.svg
new file mode 100644
index 0000000..b8252e3
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/output.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m17 17 5-5-5-5-1.41 1.41L18.17 11H9v2h9.17l-2.58 2.59z"/><path d="M19 19H5V5h14v2h2V5a2 2 0 0 0-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14a2 2 0 0 0 2-2v-2h-2v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/padding.svg b/html/matt-chat/uswds/img/material-icons/padding.svg
new file mode 100644
index 0000000..cd9a5ac
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/padding.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 3v18h18V3H3zm16 16H5V5h14v14zM11 7h2v2h-2zM7 7h2v2H7zm8 0h2v2h-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/pages.svg b/html/matt-chat/uswds/img/material-icons/pages.svg
new file mode 100644
index 0000000..0b45b39
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/pages.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 5v6h5L7 7l4 1V3H5c-1.1 0-2 .9-2 2zm5 8H3v6c0 1.1.9 2 2 2h6v-5l-4 1 1-4zm9 4-4-1v5h6c1.1 0 2-.9 2-2v-6h-5l1 4zm2-14h-6v5l4-1-1 4h5V5c0-1.1-.9-2-2-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/pageview.svg b/html/matt-chat/uswds/img/material-icons/pageview.svg
new file mode 100644
index 0000000..cad7619
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/pageview.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11.5 9a2.5 2.5 0 0 0 0 5 2.5 2.5 0 0 0 0-5zM20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-3.21 14.21-2.91-2.91c-.69.44-1.51.7-2.39.7C9.01 16 7 13.99 7 11.5S9.01 7 11.5 7 16 9.01 16 11.5c0 .88-.26 1.69-.7 2.39l2.91 2.9-1.42 1.42z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/paid.svg b/html/matt-chat/uswds/img/material-icons/paid.svg
new file mode 100644
index 0000000..1a474dc
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/paid.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm.88 15.76V19h-1.75v-1.29c-.74-.18-2.39-.77-3.02-2.96l1.65-.67c.06.22.58 2.09 2.4 2.09.93 0 1.98-.48 1.98-1.61 0-.96-.7-1.46-2.28-2.03-1.1-.39-3.35-1.03-3.35-3.31 0-.1.01-2.4 2.62-2.96V5h1.75v1.24c1.84.32 2.51 1.79 2.66 2.23l-1.58.67c-.11-.35-.59-1.34-1.9-1.34-.7 0-1.81.37-1.81 1.39 0 .95.86 1.31 2.64 1.9 2.4.83 3.01 2.05 3.01 3.45 0 2.63-2.5 3.13-3.02 3.22z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/palette.svg b/html/matt-chat/uswds/img/material-icons/palette.svg
new file mode 100644
index 0000000..a4be942
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/palette.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.49 2 2 6.49 2 12s4.49 10 10 10a2.5 2.5 0 0 0 2.5-2.5c0-.61-.23-1.2-.64-1.67a.528.528 0 0 1-.13-.33c0-.28.22-.5.5-.5H16c3.31 0 6-2.69 6-6 0-4.96-4.49-9-10-9zm5.5 11c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm-3-4c-.83 0-1.5-.67-1.5-1.5S13.67 6 14.5 6s1.5.67 1.5 1.5S15.33 9 14.5 9zM5 11.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5S7.33 13 6.5 13 5 12.33 5 11.5zm6-4c0 .83-.67 1.5-1.5 1.5S8 8.33 8 7.5 8.67 6 9.5 6s1.5.67 1.5 1.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/pan_tool.svg b/html/matt-chat/uswds/img/material-icons/pan_tool.svg
new file mode 100644
index 0000000..a89a41c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/pan_tool.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M23 5.5V20c0 2.2-1.8 4-4 4h-7.3c-1.08 0-2.1-.43-2.85-1.19L1 14.83s1.26-1.23 1.3-1.25c.22-.19.49-.29.79-.29.22 0 .42.06.6.16.04.01 4.31 2.46 4.31 2.46V4c0-.83.67-1.5 1.5-1.5S11 3.17 11 4v7h1V1.5c0-.83.67-1.5 1.5-1.5S15 .67 15 1.5V11h1V2.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5V11h1V5.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/pan_tool_alt.svg b/html/matt-chat/uswds/img/material-icons/pan_tool_alt.svg
new file mode 100644
index 0000000..ea4afa4
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/pan_tool_alt.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m19.98 14.82-.63 4.46c-.14.99-.99 1.72-1.98 1.72h-6.16c-.53 0-1.29-.21-1.66-.59L5 15.62l.83-.84c.24-.24.58-.35.92-.28l3.25.74V4.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5v6h.91c.31 0 .62.07.89.21l4.09 2.04c.77.39 1.21 1.22 1.09 2.07z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/panorama.svg b/html/matt-chat/uswds/img/material-icons/panorama.svg
new file mode 100644
index 0000000..312bb52
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/panorama.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M23 18V6c0-1.1-.9-2-2-2H3c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2zM8.5 12.5l2.5 3.01L14.5 11l4.5 6H5l3.5-4.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/panorama_fish_eye.svg b/html/matt-chat/uswds/img/material-icons/panorama_fish_eye.svg
new file mode 100644
index 0000000..81123c6
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/panorama_fish_eye.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/panorama_horizontal.svg b/html/matt-chat/uswds/img/material-icons/panorama_horizontal.svg
new file mode 100644
index 0000000..d737401
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/panorama_horizontal.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 6.54v10.91c-2.6-.77-5.28-1.16-8-1.16-2.72 0-5.4.39-8 1.16V6.54c2.6.77 5.28 1.16 8 1.16 2.72.01 5.4-.38 8-1.16M21.43 4c-.1 0-.2.02-.31.06C18.18 5.16 15.09 5.7 12 5.7c-3.09 0-6.18-.55-9.12-1.64A.94.94 0 0 0 2.57 4c-.34 0-.57.23-.57.63v14.75c0 .39.23.62.57.62.1 0 .2-.02.31-.06 2.94-1.1 6.03-1.64 9.12-1.64 3.09 0 6.18.55 9.12 1.64.11.04.21.06.31.06.33 0 .57-.23.57-.63V4.63c0-.4-.24-.63-.57-.63z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/panorama_horizontal_select.svg b/html/matt-chat/uswds/img/material-icons/panorama_horizontal_select.svg
new file mode 100644
index 0000000..d764d76
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/panorama_horizontal_select.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21.43 4c-.1 0-.2.02-.31.06C18.18 5.16 15.09 5.7 12 5.7s-6.18-.55-9.12-1.64A.94.94 0 0 0 2.57 4c-.34 0-.57.23-.57.63v14.75c0 .39.23.62.57.62.1 0 .2-.02.31-.06 2.94-1.1 6.03-1.64 9.12-1.64s6.18.55 9.12 1.64c.11.04.21.06.31.06.33 0 .57-.23.57-.63V4.63c0-.4-.24-.63-.57-.63z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/panorama_photosphere.svg b/html/matt-chat/uswds/img/material-icons/panorama_photosphere.svg
new file mode 100644
index 0000000..84777a8
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/panorama_photosphere.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21.4 11.32v2.93c-.1.05-2.17.85-3.33 1.17-.94.26-3.84.73-6.07.73-3.7 0-7-.7-9.16-1.8-.08-.04-.16-.06-.24-.1V9.76c6.02-2.84 12.6-2.92 18.8 0v1.56zm-9.39 8.88c-2.5 0-4.87-1.15-6.41-3.12 4.19 1.22 8.57 1.23 12.82-.01a8.136 8.136 0 0 1-6.41 3.13zM12 3.8c2.6 0 4.91 1.23 6.41 3.12-4.1-1.19-8.48-1.26-12.83.01C7.08 5.03 9.4 3.8 12 3.8zm10.49 4.71c-.47-.23-.93-.44-1.4-.64C19.52 4.41 16.05 2 12 2S4.47 4.41 2.9 7.88c-.47.2-.93.41-1.4.63-.31.15-.5.48-.5.83v5.32c0 .35.19.68.51.83.47.23.93.44 1.39.64 3.55 7.83 14.65 7.82 18.2 0 .47-.2.93-.41 1.39-.63.31-.17.51-.49.51-.84V9.34a.91.91 0 0 0-.51-.83z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/panorama_photosphere_select.svg b/html/matt-chat/uswds/img/material-icons/panorama_photosphere_select.svg
new file mode 100644
index 0000000..600ddf6
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/panorama_photosphere_select.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M22.49 8.51c-.47-.23-.93-.44-1.4-.64C19.52 4.41 16.05 2 12 2S4.47 4.41 2.9 7.88c-.47.2-.93.41-1.4.63-.31.15-.5.48-.5.83v5.32c0 .35.19.68.51.83.47.23.93.44 1.39.64 3.55 7.83 14.65 7.82 18.2 0 .47-.2.93-.41 1.39-.63.31-.17.51-.49.51-.84V9.34a.91.91 0 0 0-.51-.83zM12 3.8c2.6 0 4.91 1.23 6.41 3.12-4.1-1.19-8.48-1.26-12.83.01C7.08 5.03 9.4 3.8 12 3.8zM5.6 17.08c4.19 1.22 8.57 1.23 12.82-.01a8.136 8.136 0 0 1-12.82.01z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/panorama_vertical.svg b/html/matt-chat/uswds/img/material-icons/panorama_vertical.svg
new file mode 100644
index 0000000..b421060
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/panorama_vertical.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19.94 21.12c-1.1-2.94-1.64-6.03-1.64-9.12 0-3.09.55-6.18 1.64-9.12a.94.94 0 0 0 .06-.31c0-.34-.23-.57-.63-.57H4.63c-.4 0-.63.23-.63.57 0 .1.02.2.06.31C5.16 5.82 5.71 8.91 5.71 12c0 3.09-.55 6.18-1.64 9.12-.05.11-.07.22-.07.31 0 .33.23.57.63.57h14.75c.39 0 .63-.24.63-.57-.01-.1-.03-.2-.07-.31zM6.54 20c.77-2.6 1.16-5.28 1.16-8 0-2.72-.39-5.4-1.16-8h10.91c-.77 2.6-1.16 5.28-1.16 8 0 2.72.39 5.4 1.16 8H6.54z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/panorama_vertical_select.svg b/html/matt-chat/uswds/img/material-icons/panorama_vertical_select.svg
new file mode 100644
index 0000000..dec4d30
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/panorama_vertical_select.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19.93 21.12c-1.1-2.94-1.64-6.03-1.64-9.12s.55-6.18 1.64-9.12c.05-.11.07-.22.07-.31 0-.34-.24-.57-.64-.57H4.62c-.4 0-.63.23-.63.57 0 .1.02.2.06.31C5.16 5.82 5.7 8.91 5.7 12s-.55 6.18-1.64 9.12c-.05.11-.07.22-.07.31 0 .33.23.57.63.57h14.75c.39 0 .63-.24.63-.57 0-.1-.02-.2-.07-.31z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/panorama_wide_angle.svg b/html/matt-chat/uswds/img/material-icons/panorama_wide_angle.svg
new file mode 100644
index 0000000..8db45f2
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/panorama_wide_angle.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 6c2.45 0 4.71.2 7.29.64A21 21 0 0 1 20 12a21 21 0 0 1-.71 5.36c-2.58.44-4.84.64-7.29.64s-4.71-.2-7.29-.64A21 21 0 0 1 4 12a21 21 0 0 1 .71-5.36C7.29 6.2 9.55 6 12 6m0-2c-2.73 0-5.22.24-7.95.72l-.93.16-.25.9C2.29 7.85 2 9.93 2 12s.29 4.15.87 6.22l.25.89.93.16c2.73.49 5.22.73 7.95.73s5.22-.24 7.95-.72l.93-.16.25-.89c.58-2.08.87-4.16.87-6.23s-.29-4.15-.87-6.22l-.25-.89-.93-.16C17.22 4.24 14.73 4 12 4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/panorama_wide_angle_select.svg b/html/matt-chat/uswds/img/material-icons/panorama_wide_angle_select.svg
new file mode 100644
index 0000000..6f6ffb0
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/panorama_wide_angle_select.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 4c-2.73 0-5.22.24-7.95.72l-.93.16-.25.9C2.29 7.85 2 9.93 2 12s.29 4.15.87 6.22l.25.89.93.16c2.73.49 5.22.73 7.95.73s5.22-.24 7.95-.72l.93-.16.25-.89c.58-2.08.87-4.16.87-6.23s-.29-4.15-.87-6.22l-.25-.89-.93-.16C17.22 4.24 14.73 4 12 4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/paragliding.svg b/html/matt-chat/uswds/img/material-icons/paragliding.svg
new file mode 100644
index 0000000..dd852b0
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/paragliding.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 17c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm-3.48.94C8.04 17.55 7 16.76 7 14H5c0 2.7.93 4.41 2.3 5.5.5.4 1.1.7 1.7.9V24h6v-3.6c.6-.2 1.2-.5 1.7-.9 1.37-1.09 2.3-2.8 2.3-5.5h-2c0 2.76-1.04 3.55-1.52 3.94C14.68 18.54 14 19 12 19s-2.68-.46-3.48-1.06zM12 0C5.92 0 1 1.9 1 4.25v3.49c0 .81.88 1.26 1.56.83.14-.09.28-.18.44-.26L5 13h2l1.5-6.28a27.852 27.852 0 0 1 7 0L17 13h2l2-4.69c.16.09.3.17.44.26.68.43 1.56-.02 1.56-.83V4.25C23 1.9 18.08 0 12 0zM5.88 11.24 4.37 7.69c.75-.28 1.6-.52 2.53-.71l-1.02 4.26zm12.24 0L17.1 6.98c.93.19 1.78.43 2.53.71l-1.51 3.55z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/park.svg b/html/matt-chat/uswds/img/material-icons/park.svg
new file mode 100644
index 0000000..fb6e898
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/park.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 12h2L12 2 5.05 12H7l-3.9 6h6.92v4h3.96v-4H21z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/party_mode.svg b/html/matt-chat/uswds/img/material-icons/party_mode.svg
new file mode 100644
index 0000000..40dc90d
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/party_mode.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 4h-3.17L15 2H9L7.17 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-8 3c1.63 0 3.06.79 3.98 2H12c-1.66 0-3 1.34-3 3 0 .35.07.69.18 1H7.1A5.002 5.002 0 0 1 12 7zm0 10c-1.63 0-3.06-.79-3.98-2H12c1.66 0 3-1.34 3-3 0-.35-.07-.69-.18-1h2.08a5.002 5.002 0 0 1-4.9 6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/password.svg b/html/matt-chat/uswds/img/material-icons/password.svg
new file mode 100644
index 0000000..14eb001
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/password.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M2 17h20v2H2v-2zm1.15-4.05L4 11.47l.85 1.48 1.3-.75-.85-1.48H7v-1.5H5.3l.85-1.47L4.85 7 4 8.47 3.15 7l-1.3.75.85 1.47H1v1.5h1.7l-.85 1.48 1.3.75zm6.7-.75 1.3.75.85-1.48.85 1.48 1.3-.75-.85-1.48H15v-1.5h-1.7l.85-1.47-1.3-.75L12 8.47 11.15 7l-1.3.75.85 1.47H9v1.5h1.7l-.85 1.48zM23 9.22h-1.7l.85-1.47-1.3-.75L20 8.47 19.15 7l-1.3.75.85 1.47H17v1.5h1.7l-.85 1.48 1.3.75.85-1.48.85 1.48 1.3-.75-.85-1.48H23v-1.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/pattern.svg b/html/matt-chat/uswds/img/material-icons/pattern.svg
new file mode 100644
index 0000000..bbed2f1
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/pattern.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M4 6c0-1.1.9-2 2-2s2 .9 2 2-.9 2-2 2-2-.9-2-2zm2 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm6-6c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm6 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-.02 6c-.74 0-1.37.4-1.72 1h-2.54a1.98 1.98 0 0 0-3.44 0H8.41l3.07-3.07c.17.04.34.07.52.07 1.1 0 2-.9 2-2 0-.18-.03-.35-.07-.51l3.56-3.56c.16.04.33.07.51.07 1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2c0 .18.03.35.07.51l-3.56 3.56c-.16-.04-.33-.07-.51-.07-1.1 0-2 .9-2 2 0 .18.03.35.07.51l-3.56 3.56C6.35 16.03 6.18 16 6 16c-1.1 0-2 .9-2 2s.9 2 2 2c.74 0 1.37-.4 1.72-1h2.57a1.98 1.98 0 0 0 3.44 0h2.55c.34.6.98 1 1.72 1 1.1 0 2-.9 2-2-.02-1.1-.92-2-2.02-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/pause.svg b/html/matt-chat/uswds/img/material-icons/pause.svg
new file mode 100644
index 0000000..c20e156
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/pause.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M6 19h4V5H6v14zm8-14v14h4V5h-4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/pause_circle.svg b/html/matt-chat/uswds/img/material-icons/pause_circle.svg
new file mode 100644
index 0000000..e4763b2
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/pause_circle.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 14H9V8h2v8zm4 0h-2V8h2v8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/pause_circle_filled.svg b/html/matt-chat/uswds/img/material-icons/pause_circle_filled.svg
new file mode 100644
index 0000000..e4763b2
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/pause_circle_filled.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 14H9V8h2v8zm4 0h-2V8h2v8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/pause_circle_outline.svg b/html/matt-chat/uswds/img/material-icons/pause_circle_outline.svg
new file mode 100644
index 0000000..b1ea4fe
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/pause_circle_outline.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M9 16h2V8H9v8zm3-14C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm1-4h2V8h-2v8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/pause_presentation.svg b/html/matt-chat/uswds/img/material-icons/pause_presentation.svg
new file mode 100644
index 0000000..7de937c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/pause_presentation.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 19.1H3V5h18v14.1zM21 3H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"/><path d="M9 8h2v8H9zm4 0h2v8h-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/payment.svg b/html/matt-chat/uswds/img/material-icons/payment.svg
new file mode 100644
index 0000000..99afa68
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/payment.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 4H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V6c0-1.11-.89-2-2-2zm0 14H4v-6h16v6zm0-10H4V6h16v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/payments.svg b/html/matt-chat/uswds/img/material-icons/payments.svg
new file mode 100644
index 0000000..254b1a0
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/payments.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 14V6c0-1.1-.9-2-2-2H3c-1.1 0-2 .9-2 2v8c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2zm-9-1c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3zm13-6v11c0 1.1-.9 2-2 2H4v-2h17V7h2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/pedal_bike.svg b/html/matt-chat/uswds/img/material-icons/pedal_bike.svg
new file mode 100644
index 0000000..58a2ec3
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/pedal_bike.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m18.18 10-1.7-4.68A2.008 2.008 0 0 0 14.6 4H12v2h2.6l1.46 4h-4.81l-.36-1H12V7H7v2h1.75l1.82 5H9.9c-.44-2.23-2.31-3.88-4.65-3.99C2.45 9.87 0 12.2 0 15c0 2.8 2.2 5 5 5 2.46 0 4.45-1.69 4.9-4h4.2c.44 2.23 2.31 3.88 4.65 3.99 2.8.13 5.25-2.19 5.25-5 0-2.8-2.2-5-5-5h-.82zM7.82 16c-.4 1.17-1.49 2-2.82 2-1.68 0-3-1.32-3-3s1.32-3 3-3c1.33 0 2.42.83 2.82 2H5v2h2.82zm6.28-2h-1.4l-.73-2H15c-.44.58-.76 1.25-.9 2zm4.9 4c-1.68 0-3-1.32-3-3 0-.93.41-1.73 1.05-2.28l.96 2.64 1.88-.68-.97-2.67c.03 0 .06-.01.09-.01 1.68 0 3 1.32 3 3s-1.33 3-3.01 3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/pending.svg b/html/matt-chat/uswds/img/material-icons/pending.svg
new file mode 100644
index 0000000..f4b92d0
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/pending.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zM7 13.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm5 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm5 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/pending_actions.svg b/html/matt-chat/uswds/img/material-icons/pending_actions.svg
new file mode 100644
index 0000000..cc21144
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/pending_actions.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 12c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5zm1.65 7.35L16.5 17.2V14h1v2.79l1.85 1.85-.7.71zM18 3h-3.18C14.4 1.84 13.3 1 12 1s-2.4.84-2.82 2H6c-1.1 0-2 .9-2 2v15c0 1.1.9 2 2 2h6.11a6.743 6.743 0 0 1-1.42-2H6V5h2v3h8V5h2v5.08c.71.1 1.38.31 2 .6V5c0-1.1-.9-2-2-2zm-6 2c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/pentagon.svg b/html/matt-chat/uswds/img/material-icons/pentagon.svg
new file mode 100644
index 0000000..d8721ed
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/pentagon.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m2 9 4 12h12l4-12-10-7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/people.svg b/html/matt-chat/uswds/img/material-icons/people.svg
new file mode 100644
index 0000000..bd9a133
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/people.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16 11c1.66 0 2.99-1.34 2.99-3S17.66 5 16 5c-1.66 0-3 1.34-3 3s1.34 3 3 3zm-8 0c1.66 0 2.99-1.34 2.99-3S9.66 5 8 5C6.34 5 5 6.34 5 8s1.34 3 3 3zm0 2c-2.33 0-7 1.17-7 3.5V19h14v-2.5c0-2.33-4.67-3.5-7-3.5zm8 0c-.29 0-.62.02-.97.05 1.16.84 1.97 1.97 1.97 3.45V19h6v-2.5c0-2.33-4.67-3.5-7-3.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/people_alt.svg b/html/matt-chat/uswds/img/material-icons/people_alt.svg
new file mode 100644
index 0000000..4dc8358
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/people_alt.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill-rule="evenodd" d="M16.67 13.13C18.04 14.06 19 15.32 19 17v3h4v-3c0-2.18-3.57-3.47-6.33-3.87z"/><circle cx="9" cy="8" r="4" fill-rule="evenodd"/><path fill-rule="evenodd" d="M15 12c2.21 0 4-1.79 4-4s-1.79-4-4-4c-.47 0-.91.1-1.33.24a5.98 5.98 0 0 1 0 7.52c.42.14.86.24 1.33.24zm-6 1c-2.67 0-8 1.34-8 4v3h16v-3c0-2.66-5.33-4-8-4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/people_outline.svg b/html/matt-chat/uswds/img/material-icons/people_outline.svg
new file mode 100644
index 0000000..901e72c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/people_outline.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16.5 13c-1.2 0-3.07.34-4.5 1-1.43-.67-3.3-1-4.5-1C5.33 13 1 14.08 1 16.25V19h22v-2.75c0-2.17-4.33-3.25-6.5-3.25zm-4 4.5h-10v-1.25c0-.54 2.56-1.75 5-1.75s5 1.21 5 1.75v1.25zm9 0H14v-1.25c0-.46-.2-.86-.52-1.22.88-.3 1.96-.53 3.02-.53 2.44 0 5 1.21 5 1.75v1.25zM7.5 12c1.93 0 3.5-1.57 3.5-3.5S9.43 5 7.5 5 4 6.57 4 8.5 5.57 12 7.5 12zm0-5.5c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2zm9 5.5c1.93 0 3.5-1.57 3.5-3.5S18.43 5 16.5 5 13 6.57 13 8.5s1.57 3.5 3.5 3.5zm0-5.5c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/percent.svg b/html/matt-chat/uswds/img/material-icons/percent.svg
new file mode 100644
index 0000000..c4ac0dd
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/percent.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M7.5 11C9.43 11 11 9.43 11 7.5S9.43 4 7.5 4 4 5.57 4 7.5 5.57 11 7.5 11zm0-5C8.33 6 9 6.67 9 7.5S8.33 9 7.5 9 6 8.33 6 7.5 6.67 6 7.5 6zM4.002 18.583 18.59 3.996l1.414 1.414L5.417 19.997zM16.5 13c-1.93 0-3.5 1.57-3.5 3.5s1.57 3.5 3.5 3.5 3.5-1.57 3.5-3.5-1.57-3.5-3.5-3.5zm0 5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/perm_camera_mic.svg b/html/matt-chat/uswds/img/material-icons/perm_camera_mic.svg
new file mode 100644
index 0000000..e5ef14b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/perm_camera_mic.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 5h-3.17L15 3H9L7.17 5H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h7v-2.09c-2.83-.48-5-2.94-5-5.91h2c0 2.21 1.79 4 4 4s4-1.79 4-4h2c0 2.97-2.17 5.43-5 5.91V21h7c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm-6 8c0 1.1-.9 2-2 2s-2-.9-2-2V9c0-1.1.9-2 2-2s2 .9 2 2v4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/perm_contact_calendar.svg b/html/matt-chat/uswds/img/material-icons/perm_contact_calendar.svg
new file mode 100644
index 0000000..d6e0d24
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/perm_contact_calendar.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3h-1V1h-2v2H8V1H6v2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 3c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3 1.34-3 3-3zm6 12H6v-1c0-2 4-3.1 6-3.1s6 1.1 6 3.1v1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/perm_data_setting.svg b/html/matt-chat/uswds/img/material-icons/perm_data_setting.svg
new file mode 100644
index 0000000..040f2b7
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/perm_data_setting.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18.99 11.5c.34 0 .67.03 1 .07L20 0 0 20h11.56c-.04-.33-.07-.66-.07-1 0-4.14 3.36-7.5 7.5-7.5zm3.71 7.99c.02-.16.04-.32.04-.49 0-.17-.01-.33-.04-.49l1.06-.83a.26.26 0 0 0 .06-.32l-1-1.73c-.06-.11-.19-.15-.31-.11l-1.24.5c-.26-.2-.54-.37-.85-.49l-.19-1.32c-.01-.12-.12-.21-.24-.21h-2c-.12 0-.23.09-.25.21l-.19 1.32c-.3.13-.59.29-.85.49l-1.24-.5c-.11-.04-.24 0-.31.11l-1 1.73c-.06.11-.04.24.06.32l1.06.83a3.908 3.908 0 0 0 0 .98l-1.06.83a.26.26 0 0 0-.06.32l1 1.73c.06.11.19.15.31.11l1.24-.5c.26.2.54.37.85.49l.19 1.32c.02.12.12.21.25.21h2c.12 0 .23-.09.25-.21l.19-1.32c.3-.13.59-.29.84-.49l1.25.5c.11.04.24 0 .31-.11l1-1.73a.26.26 0 0 0-.06-.32l-1.07-.83zm-3.71 1.01c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/perm_device_information.svg b/html/matt-chat/uswds/img/material-icons/perm_device_information.svg
new file mode 100644
index 0000000..89a3a8a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/perm_device_information.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13 7h-2v2h2V7zm0 4h-2v6h2v-6zm4-9.99L7 1c-1.1 0-2 .9-2 2v18c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-1.99-2-1.99zM17 19H7V5h10v14z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/perm_identity.svg b/html/matt-chat/uswds/img/material-icons/perm_identity.svg
new file mode 100644
index 0000000..1705729
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/perm_identity.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 5.9a2.1 2.1 0 1 1 0 4.2 2.1 2.1 0 0 1 0-4.2m0 9c2.97 0 6.1 1.46 6.1 2.1v1.1H5.9V17c0-.64 3.13-2.1 6.1-2.1M12 4C9.79 4 8 5.79 8 8s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 9c-2.67 0-8 1.34-8 4v3h16v-3c0-2.66-5.33-4-8-4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/perm_media.svg b/html/matt-chat/uswds/img/material-icons/perm_media.svg
new file mode 100644
index 0000000..7420f7b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/perm_media.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M2 6H0v5h.01L0 20c0 1.1.9 2 2 2h18v-2H2V6zm20-2h-8l-2-2H6c-1.1 0-1.99.9-1.99 2L4 16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zM7 15l4.5-6 3.5 4.51 2.5-3.01L21 15H7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/perm_phone_msg.svg b/html/matt-chat/uswds/img/material-icons/perm_phone_msg.svg
new file mode 100644
index 0000000..66374b8
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/perm_phone_msg.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 15.5c-1.25 0-2.45-.2-3.57-.57a1.02 1.02 0 0 0-1.02.24l-2.2 2.2a15.074 15.074 0 0 1-6.59-6.58l2.2-2.21c.28-.27.36-.66.25-1.01A11.36 11.36 0 0 1 8.5 4c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.5c0-.55-.45-1-1-1zM12 3v10l3-3h6V3h-9z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/perm_scan_wifi.svg b/html/matt-chat/uswds/img/material-icons/perm_scan_wifi.svg
new file mode 100644
index 0000000..97dff31
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/perm_scan_wifi.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 3C6.95 3 3.15 4.85 0 7.23L12 22 24 7.25C20.85 4.87 17.05 3 12 3zm1 13h-2v-6h2v6zm-2-8V6h2v2h-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/person.svg b/html/matt-chat/uswds/img/material-icons/person.svg
new file mode 100644
index 0000000..e22d151
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/person.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/person_2.svg b/html/matt-chat/uswds/img/material-icons/person_2.svg
new file mode 100644
index 0000000..aeabd81
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/person_2.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18.39 14.56C16.71 13.7 14.53 13 12 13s-4.71.7-6.39 1.56A2.97 2.97 0 0 0 4 17.22V20h16v-2.78c0-1.12-.61-2.15-1.61-2.66zM9.78 12h4.44c1.21 0 2.14-1.06 1.98-2.26l-.32-2.45C15.57 5.39 13.92 4 12 4S8.43 5.39 8.12 7.29L7.8 9.74c-.16 1.2.77 2.26 1.98 2.26z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/person_3.svg b/html/matt-chat/uswds/img/material-icons/person_3.svg
new file mode 100644
index 0000000..b99561e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/person_3.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18.39 14.56C16.71 13.7 14.53 13 12 13s-4.71.7-6.39 1.56A2.97 2.97 0 0 0 4 17.22V20h16v-2.78c0-1.12-.61-2.15-1.61-2.66zM10 12h4c1.66 0 3-1.34 3-3 0-.73-.27-1.4-.71-1.92.13-.33.21-.7.21-1.08a3 3 0 0 0-1.86-2.77C14 2.48 13.06 2 12 2s-2 .48-2.64 1.23A3 3 0 0 0 7.5 6c0 .38.08.75.21 1.08C7.27 7.6 7 8.27 7 9c0 1.66 1.34 3 3 3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/person_4.svg b/html/matt-chat/uswds/img/material-icons/person_4.svg
new file mode 100644
index 0000000..3351e45
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/person_4.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18.39 14.56C16.71 13.7 14.53 13 12 13s-4.71.7-6.39 1.56A2.97 2.97 0 0 0 4 17.22V20h16v-2.78c0-1.12-.61-2.15-1.61-2.66zM12 12c2.21 0 4-1.79 4-4V4.5c0-.83-.67-1.5-1.5-1.5-.52 0-.98.27-1.25.67-.27-.4-.73-.67-1.25-.67s-.98.27-1.25.67c-.27-.4-.73-.67-1.25-.67C8.67 3 8 3.67 8 4.5V8c0 2.21 1.79 4 4 4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/person_add.svg b/html/matt-chat/uswds/img/material-icons/person_add.svg
new file mode 100644
index 0000000..97e4d3a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/person_add.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm-9-2V7H4v3H1v2h3v3h2v-3h3v-2H6zm9 4c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/person_add_alt.svg b/html/matt-chat/uswds/img/material-icons/person_add_alt.svg
new file mode 100644
index 0000000..fc6ea2d
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/person_add_alt.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13 8c0-2.21-1.79-4-4-4S5 5.79 5 8s1.79 4 4 4 4-1.79 4-4zm-2 0c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2 2 .9 2 2zM1 18v2h16v-2c0-2.66-5.33-4-8-4s-8 1.34-8 4zm2 0c.2-.71 3.3-2 6-2 2.69 0 5.78 1.28 6 2H3zm17-3v-3h3v-2h-3V7h-2v3h-3v2h3v3h2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/person_add_alt_1.svg b/html/matt-chat/uswds/img/material-icons/person_add_alt_1.svg
new file mode 100644
index 0000000..15919d4
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/person_add_alt_1.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13 8c0-2.21-1.79-4-4-4S5 5.79 5 8s1.79 4 4 4 4-1.79 4-4zm2 2v2h3v3h2v-3h3v-2h-3V7h-2v3h-3zM1 18v2h16v-2c0-2.66-5.33-4-8-4s-8 1.34-8 4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/person_add_disabled.svg b/html/matt-chat/uswds/img/material-icons/person_add_disabled.svg
new file mode 100644
index 0000000..895063c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/person_add_disabled.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><circle cx="15" cy="8" r="4"/><path d="M23 20v-2c0-2.3-4.1-3.7-6.9-3.9l6 5.9h.9zm-11.6-5.5C9.2 15.1 7 16.3 7 18v2h9.9l4 4 1.3-1.3-21-20.9L0 3.1l4 4V10H1v2h3v3h2v-3h2.9l2.5 2.5zM6 10v-.9l.9.9H6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/person_off.svg b/html/matt-chat/uswds/img/material-icons/person_off.svg
new file mode 100644
index 0000000..e3b2b20
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/person_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M8.65 5.82a3.999 3.999 0 1 1 5.53 5.53L8.65 5.82zM20 17.17c-.02-1.1-.63-2.11-1.61-2.62-.54-.28-1.13-.54-1.77-.76L20 17.17zm1.19 4.02L2.81 2.81 1.39 4.22l8.89 8.89c-1.81.23-3.39.79-4.67 1.45A2.97 2.97 0 0 0 4 17.22V20h13.17l2.61 2.61 1.41-1.42z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/person_outline.svg b/html/matt-chat/uswds/img/material-icons/person_outline.svg
new file mode 100644
index 0000000..1705729
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/person_outline.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 5.9a2.1 2.1 0 1 1 0 4.2 2.1 2.1 0 0 1 0-4.2m0 9c2.97 0 6.1 1.46 6.1 2.1v1.1H5.9V17c0-.64 3.13-2.1 6.1-2.1M12 4C9.79 4 8 5.79 8 8s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 9c-2.67 0-8 1.34-8 4v3h16v-3c0-2.66-5.33-4-8-4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/person_pin.svg b/html/matt-chat/uswds/img/material-icons/person_pin.svg
new file mode 100644
index 0000000..2636136
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/person_pin.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2a9 9 0 0 0-9 9c0 4.17 2.84 7.67 6.69 8.69L12 22l2.31-2.31C18.16 18.67 21 15.17 21 11a9 9 0 0 0-9-9zm0 2c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3 1.34-3 3-3zm0 14.3a7.2 7.2 0 0 1-6-3.22c.03-1.99 4-3.08 6-3.08 1.99 0 5.97 1.09 6 3.08a7.2 7.2 0 0 1-6 3.22z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/person_pin_circle.svg b/html/matt-chat/uswds/img/material-icons/person_pin_circle.svg
new file mode 100644
index 0000000..00be108
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/person_pin_circle.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C8.14 2 5 5.14 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.86-3.14-7-7-7zm0 2a2 2 0 1 1 .001 4.001A2 2 0 0 1 12 4zm0 10c-1.67 0-3.14-.85-4-2.15.02-1.32 2.67-2.05 4-2.05s3.98.73 4 2.05A4.783 4.783 0 0 1 12 14z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/person_remove.svg b/html/matt-chat/uswds/img/material-icons/person_remove.svg
new file mode 100644
index 0000000..0ec73f4
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/person_remove.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M14 8c0-2.21-1.79-4-4-4S6 5.79 6 8s1.79 4 4 4 4-1.79 4-4zm3 2v2h6v-2h-6zM2 18v2h16v-2c0-2.66-5.33-4-8-4s-8 1.34-8 4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/person_remove_alt_1.svg b/html/matt-chat/uswds/img/material-icons/person_remove_alt_1.svg
new file mode 100644
index 0000000..0ec73f4
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/person_remove_alt_1.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M14 8c0-2.21-1.79-4-4-4S6 5.79 6 8s1.79 4 4 4 4-1.79 4-4zm3 2v2h6v-2h-6zM2 18v2h16v-2c0-2.66-5.33-4-8-4s-8 1.34-8 4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/person_search.svg b/html/matt-chat/uswds/img/material-icons/person_search.svg
new file mode 100644
index 0000000..696caca
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/person_search.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><circle cx="10" cy="8" r="4"/><path d="M10.35 14.01C7.62 13.91 2 15.27 2 18v2h9.54c-2.47-2.76-1.23-5.89-1.19-5.99zm9.08 4.01c.36-.59.57-1.28.57-2.02 0-2.21-1.79-4-4-4s-4 1.79-4 4 1.79 4 4 4c.74 0 1.43-.22 2.02-.57L20.59 22 22 20.59l-2.57-2.57zM16 18c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/personal_injury.svg b/html/matt-chat/uswds/img/material-icons/personal_injury.svg
new file mode 100644
index 0000000..1027140
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/personal_injury.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M8 6c0-2.21 1.79-4 4-4s4 1.79 4 4-1.79 4-4 4-4-1.79-4-4zm9 16h1c1.1 0 2-.9 2-2v-4.78c0-1.12-.61-2.15-1.61-2.66-.43-.22-.9-.43-1.39-.62V22zm-4.66-5L15 11.33c-.93-.21-1.93-.33-3-.33-2.53 0-4.71.7-6.39 1.56A2.97 2.97 0 0 0 4 15.22V22h2.34c-.22-.45-.34-.96-.34-1.5C6 18.57 7.57 17 9.5 17h2.84zM10 22l1.41-3H9.5c-.83 0-1.5.67-1.5 1.5S8.67 22 9.5 22h.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/personal_video.svg b/html/matt-chat/uswds/img/material-icons/personal_video.svg
new file mode 100644
index 0000000..7629788
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/personal_video.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 3H3c-1.11 0-2 .89-2 2v12a2 2 0 0 0 2 2h5v2h8v-2h5c1.1 0 1.99-.9 1.99-2L23 5a2 2 0 0 0-2-2zm0 14H3V5h18v12z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/pest_control.svg b/html/matt-chat/uswds/img/material-icons/pest_control.svg
new file mode 100644
index 0000000..21464b1
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/pest_control.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 15v-2h-3.07c-.05-.39-.12-.77-.22-1.14l2.58-1.49-1-1.73L16.92 10c-.28-.48-.62-.91-.99-1.29.04-.23.07-.46.07-.71 0-.8-.24-1.55-.65-2.18L17 4.17l-1.41-1.41-1.72 1.72c-1.68-.89-3.1-.33-3.73 0L8.41 2.76 7 4.17l1.65 1.65A3.99 3.99 0 0 0 8 8c0 .25.03.48.07.72-.37.38-.71.81-.99 1.28L4.71 8.63l-1 1.73 2.58 1.49c-.1.37-.17.75-.22 1.14H3v2h3.07c.05.39.12.77.22 1.14l-2.58 1.49 1 1.73L7.08 18c1.08 1.81 2.88 3 4.92 3s3.84-1.19 4.92-3l2.37 1.37 1-1.73-2.58-1.49c.1-.37.17-.75.22-1.14H21zm-8 2h-2v-6h2v6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/pest_control_rodent.svg b/html/matt-chat/uswds/img/material-icons/pest_control_rodent.svg
new file mode 100644
index 0000000..622ceb7
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/pest_control_rodent.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m21.31 17.38-2.39-2.13c.52-2.36-1.36-4.25-3.42-4.25-1.16 0-3.5.9-3.5 3.5 0 .97.39 1.84 1.03 2.47l-.71.71A4.457 4.457 0 0 1 11 14.5c0-1.7.96-3.17 2.35-3.93a5 5 0 0 0-2.28-.57c-2.38 0-4.37 1.65-4.91 3.87A2.997 2.997 0 0 1 4 11c0-1.66 1.34-3 3-3h2.5a2.5 2.5 0 0 0 0-5H8c-.55 0-1 .45-1 1s.45 1 1 1h1.5c.28 0 .5.22.5.5s-.22.5-.5.5H7a5.002 5.002 0 0 0-1 9.9v.03C6 18.73 8.27 21 11.07 21h8.86c1.87 0 2.81-2.34 1.38-3.62zM18 19c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/pets.svg b/html/matt-chat/uswds/img/material-icons/pets.svg
new file mode 100644
index 0000000..e4d7d48
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/pets.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><circle cx="4.5" cy="9.5" r="2.5"/><circle cx="9" cy="5.5" r="2.5"/><circle cx="15" cy="5.5" r="2.5"/><circle cx="19.5" cy="9.5" r="2.5"/><path d="M17.34 14.86c-.87-1.02-1.6-1.89-2.48-2.91-.46-.54-1.05-1.08-1.75-1.32-.11-.04-.22-.07-.33-.09-.25-.04-.52-.04-.78-.04s-.53 0-.79.05c-.11.02-.22.05-.33.09-.7.24-1.28.78-1.75 1.32-.87 1.02-1.6 1.89-2.48 2.91-1.31 1.31-2.92 2.76-2.62 4.79.29 1.02 1.02 2.03 2.33 2.32.73.15 3.06-.44 5.54-.44h.18c2.48 0 4.81.58 5.54.44 1.31-.29 2.04-1.31 2.33-2.32.31-2.04-1.3-3.49-2.61-4.8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/phishing.svg b/html/matt-chat/uswds/img/material-icons/phishing.svg
new file mode 100644
index 0000000..82e63fd
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/phishing.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 9c0-1.3-.84-2.4-2-2.82V2h-2v4.18C13.84 6.6 13 7.7 13 9s.84 2.4 2 2.82V15c0 2.21-1.79 4-4 4s-4-1.79-4-4v-1h3L5 9v6c0 3.31 2.69 6 6 6s6-2.69 6-6v-3.18c1.16-.42 2-1.52 2-2.82zm-3 1c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/phone.svg b/html/matt-chat/uswds/img/material-icons/phone.svg
new file mode 100644
index 0000000..5908b6a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/phone.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1-9.39 0-17-7.61-17-17 0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57.11.35.03.74-.25 1.02l-2.2 2.2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/phone_android.svg b/html/matt-chat/uswds/img/material-icons/phone_android.svg
new file mode 100644
index 0000000..b7a256b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/phone_android.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16 1H8C6.34 1 5 2.34 5 4v16c0 1.66 1.34 3 3 3h8c1.66 0 3-1.34 3-3V4c0-1.66-1.34-3-3-3zm-2 20h-4v-1h4v1zm3.25-3H6.75V4h10.5v14z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/phone_bluetooth_speaker.svg b/html/matt-chat/uswds/img/material-icons/phone_bluetooth_speaker.svg
new file mode 100644
index 0000000..43c1111
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/phone_bluetooth_speaker.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M14.71 9.5 17 7.21V11h.5l2.85-2.85L18.21 6l2.15-2.15L17.5 1H17v3.79L14.71 2.5l-.71.71L16.79 6 14 8.79l.71.71zM18 2.91l.94.94-.94.94V2.91zm0 4.3.94.94-.94.94V7.21zm2 8.29c-1.25 0-2.45-.2-3.57-.57a1.02 1.02 0 0 0-1.02.24l-2.2 2.2a15.045 15.045 0 0 1-6.59-6.59l2.2-2.21a.96.96 0 0 0 .25-1A11.36 11.36 0 0 1 8.5 4c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.5c0-.55-.45-1-1-1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/phone_callback.svg b/html/matt-chat/uswds/img/material-icons/phone_callback.svg
new file mode 100644
index 0000000..6bb29b0
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/phone_callback.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1-9.39 0-17-7.61-17-17 0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57.11.35.03.74-.25 1.02l-2.2 2.2zm13.54-7.1-.71-.7L13 9.29V5h-1v6h6v-1h-4.15z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/phone_disabled.svg b/html/matt-chat/uswds/img/material-icons/phone_disabled.svg
new file mode 100644
index 0000000..cb9d810
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/phone_disabled.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m17.34 14.54-1.43-1.43c.56-.73 1.05-1.5 1.47-2.32l-2.2-2.2c-.28-.28-.36-.67-.25-1.02.37-1.12.57-2.32.57-3.57 0-.55.45-1 1-1H20c.55 0 1 .45 1 1 0 3.98-1.37 7.64-3.66 10.54zm-2.82 2.81A16.884 16.884 0 0 1 4 21c-.55 0-1-.45-1-1v-3.49c0-.55.45-1 1-1 1.24 0 2.45-.2 3.57-.57.35-.12.75-.03 1.02.24l2.2 2.2c.81-.42 1.58-.9 2.3-1.46L1.39 4.22l1.42-1.41L21.19 21.2l-1.41 1.41-5.26-5.26z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/phone_enabled.svg b/html/matt-chat/uswds/img/material-icons/phone_enabled.svg
new file mode 100644
index 0000000..78ec1cf
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/phone_enabled.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m17.38 10.79-2.2-2.2c-.28-.28-.36-.67-.25-1.02.37-1.12.57-2.32.57-3.57 0-.55.45-1 1-1H20c.55 0 1 .45 1 1 0 9.39-7.61 17-17 17-.55 0-1-.45-1-1v-3.49c0-.55.45-1 1-1 1.24 0 2.45-.2 3.57-.57.35-.12.75-.03 1.02.24l2.2 2.2c2.83-1.45 5.15-3.76 6.59-6.59z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/phone_forwarded.svg b/html/matt-chat/uswds/img/material-icons/phone_forwarded.svg
new file mode 100644
index 0000000..a17e677
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/phone_forwarded.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m18 11 5-5-5-5v3h-4v4h4v3zm2 4.5c-1.25 0-2.45-.2-3.57-.57a1.02 1.02 0 0 0-1.02.24l-2.2 2.2a15.045 15.045 0 0 1-6.59-6.59l2.2-2.21a.96.96 0 0 0 .25-1A11.36 11.36 0 0 1 8.5 4c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.5c0-.55-.45-1-1-1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/phone_iphone.svg b/html/matt-chat/uswds/img/material-icons/phone_iphone.svg
new file mode 100644
index 0000000..963c36c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/phone_iphone.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15.5 1h-8A2.5 2.5 0 0 0 5 3.5v17A2.5 2.5 0 0 0 7.5 23h8a2.5 2.5 0 0 0 2.5-2.5v-17A2.5 2.5 0 0 0 15.5 1zm-4 21c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm4.5-4H7V4h9v14z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/phone_locked.svg b/html/matt-chat/uswds/img/material-icons/phone_locked.svg
new file mode 100644
index 0000000..cef3404
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/phone_locked.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 5V4c0-1.1-.9-2-2-2s-2 .9-2 2v1h-1v5h6V5h-1zm-1 0h-2V4c0-.55.45-1 1-1s1 .45 1 1v1z"/><path d="m15.63 14.4-2.52 2.5c-2.5-1.43-4.57-3.5-6-6l2.5-2.52c.23-.24.33-.57.27-.9L9.13 3.8c-.09-.46-.5-.8-.98-.8H4c-.56 0-1.03.47-1 1.03.17 2.89 1.05 5.6 2.43 7.97 1.58 2.73 3.85 4.99 6.57 6.57 2.37 1.37 5.08 2.26 7.97 2.43.56.03 1.03-.44 1.03-1v-4.15c0-.48-.34-.89-.8-.98l-3.67-.73a.985.985 0 0 0-.9.26z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/phone_missed.svg b/html/matt-chat/uswds/img/material-icons/phone_missed.svg
new file mode 100644
index 0000000..6025bf0
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/phone_missed.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M6.5 5.5 12 11l7-7-1-1-6 6-4.5-4.5H11V3H5v6h1.5V5.5zm17.21 11.17A16.971 16.971 0 0 0 12 12C7.46 12 3.34 13.78.29 16.67c-.18.18-.29.43-.29.71s.11.53.29.71l2.48 2.48c.18.18.43.29.71.29.27 0 .52-.11.7-.28.79-.74 1.69-1.36 2.66-1.85.33-.16.56-.5.56-.9v-3.1c1.45-.48 3-.73 4.6-.73 1.6 0 3.15.25 4.6.72v3.1c0 .39.23.74.56.9.98.49 1.87 1.12 2.67 1.85.18.18.43.28.7.28.28 0 .53-.11.71-.29l2.48-2.48c.18-.18.29-.43.29-.71s-.12-.52-.3-.7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/phone_paused.svg b/html/matt-chat/uswds/img/material-icons/phone_paused.svg
new file mode 100644
index 0000000..0a5c758
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/phone_paused.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 3h-2v7h2V3zm3 12.5c-1.25 0-2.45-.2-3.57-.57a1.02 1.02 0 0 0-1.02.24l-2.2 2.2a15.045 15.045 0 0 1-6.59-6.59l2.2-2.21a.96.96 0 0 0 .25-1A11.36 11.36 0 0 1 8.5 4c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.5c0-.55-.45-1-1-1zM19 3v7h2V3h-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/phonelink.svg b/html/matt-chat/uswds/img/material-icons/phonelink.svg
new file mode 100644
index 0000000..266e993
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/phonelink.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M4 6h18V4H4c-1.1 0-2 .9-2 2v11H0v3h14v-3H4V6zm19 2h-6c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h6c.55 0 1-.45 1-1V9c0-.55-.45-1-1-1zm-1 9h-4v-7h4v7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/phonelink_erase.svg b/html/matt-chat/uswds/img/material-icons/phonelink_erase.svg
new file mode 100644
index 0000000..dae1079
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/phonelink_erase.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m13 8.2-1-1-4 4-4-4-1 1 4 4-4 4 1 1 4-4 4 4 1-1-4-4 4-4zM19 1H9c-1.1 0-2 .9-2 2v3h2V4h10v16H9v-2H7v3c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/phonelink_lock.svg b/html/matt-chat/uswds/img/material-icons/phonelink_lock.svg
new file mode 100644
index 0000000..cbf3606
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/phonelink_lock.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 1H9c-1.1 0-2 .9-2 2v3h2V4h10v16H9v-2H7v3c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm-8.2 10V9.5C10.8 8.1 9.4 7 8 7S5.2 8.1 5.2 9.5V11c-.6 0-1.2.6-1.2 1.2v3.5c0 .7.6 1.3 1.2 1.3h5.5c.7 0 1.3-.6 1.3-1.2v-3.5c0-.7-.6-1.3-1.2-1.3zm-1.3 0h-3V9.5c0-.8.7-1.3 1.5-1.3s1.5.5 1.5 1.3V11z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/phonelink_off.svg b/html/matt-chat/uswds/img/material-icons/phonelink_off.svg
new file mode 100644
index 0000000..7022918
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/phonelink_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M22 6V4H6.82l2 2H22zM1.92 1.65.65 2.92l1.82 1.82C2.18 5.08 2 5.52 2 6v11H0v3h17.73l2.35 2.35 1.27-1.27L3.89 3.62 1.92 1.65zM4 6.27 14.73 17H4V6.27zM23 8h-6c-.55 0-1 .45-1 1v4.18l2 2V10h4v7h-2.18l3 3H23c.55 0 1-.45 1-1V9c0-.55-.45-1-1-1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/phonelink_ring.svg b/html/matt-chat/uswds/img/material-icons/phonelink_ring.svg
new file mode 100644
index 0000000..a5a66ea
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/phonelink_ring.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m20.1 7.7-1 1c1.8 1.8 1.8 4.6 0 6.5l1 1c2.5-2.3 2.5-6.1 0-8.5zM18 9.8l-1 1c.5.7.5 1.6 0 2.3l1 1c1.2-1.2 1.2-3 0-4.3zM14 1H4c-1.1 0-2 .9-2 2v18c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 19H4V4h10v16z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/phonelink_setup.svg b/html/matt-chat/uswds/img/material-icons/phonelink_setup.svg
new file mode 100644
index 0000000..fd363df
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/phonelink_setup.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10.82 12.49c.02-.16.04-.32.04-.49 0-.17-.02-.33-.04-.49l1.08-.82c.1-.07.12-.21.06-.32l-1.03-1.73c-.06-.11-.2-.15-.31-.11l-1.28.5c-.27-.2-.56-.36-.87-.49l-.2-1.33c0-.12-.11-.21-.24-.21H5.98a.26.26 0 0 0-.26.21l-.2 1.32c-.31.12-.6.3-.87.49l-1.28-.5c-.12-.05-.25 0-.31.11l-1.03 1.73c-.06.12-.03.25.07.33l1.08.82c-.02.16-.03.33-.03.49 0 .17.02.33.04.49l-1.09.83c-.1.07-.12.21-.06.32l1.03 1.73c.06.11.2.15.31.11l1.28-.5c.27.2.56.36.87.49l.2 1.32c.01.12.12.21.25.21h2.06c.13 0 .24-.09.25-.21l.2-1.32c.31-.12.6-.3.87-.49l1.28.5c.12.05.25 0 .31-.11l1.03-1.73c.06-.11.04-.24-.06-.32l-1.1-.83zM7 13.75c-.99 0-1.8-.78-1.8-1.75s.81-1.75 1.8-1.75 1.8.78 1.8 1.75S8 13.75 7 13.75zM18 1.01 8 1c-1.1 0-2 .9-2 2v3h2V5h10v14H8v-1H6v3c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-1.99-2-1.99z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/photo.svg b/html/matt-chat/uswds/img/material-icons/photo.svg
new file mode 100644
index 0000000..6ccc16a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/photo.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/photo_album.svg b/html/matt-chat/uswds/img/material-icons/photo_album.svg
new file mode 100644
index 0000000..46afc9d
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/photo_album.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 2H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-7 2h5v7l-2.5-1.5L11 11V4zM7 18l2.38-3.17L11 17l2.62-3.5L17 18H7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/photo_camera.svg b/html/matt-chat/uswds/img/material-icons/photo_camera.svg
new file mode 100644
index 0000000..2024fbc
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/photo_camera.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><circle cx="12" cy="12" r="3.2"/><path d="M9 2 7.17 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2h-3.17L15 2H9zm3 15c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/photo_camera_back.svg b/html/matt-chat/uswds/img/material-icons/photo_camera_back.svg
new file mode 100644
index 0000000..de22584
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/photo_camera_back.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 5c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V7c0-1.1.9-2 2-2h3.17L9 3h6l1.83 2H20zm0 14V7H4v12h16zm-6-7-3 3.72L9 13l-3 4h12l-4-5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/photo_camera_front.svg b/html/matt-chat/uswds/img/material-icons/photo_camera_front.svg
new file mode 100644
index 0000000..2ce2856
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/photo_camera_front.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m18 10.48 4-3.98v11l-4-3.98V18c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2h12c1.1 0 2 .9 2 2v4.48zm-2-.79V6H4v12h12V9.69zM10 12c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm0 1c1.34 0 4 .67 4 2v1H6v-1c0-1.33 2.66-2 4-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/photo_filter.svg b/html/matt-chat/uswds/img/material-icons/photo_filter.svg
new file mode 100644
index 0000000..e627995
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/photo_filter.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19.02 10v9H5V5h9V3H5.02c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-9h-2zM17 10l.94-2.06L20 7l-2.06-.94L17 4l-.94 2.06L14 7l2.06.94zm-3.75.75L12 8l-1.25 2.75L8 12l2.75 1.25L12 16l1.25-2.75L16 12z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/photo_library.svg b/html/matt-chat/uswds/img/material-icons/photo_library.svg
new file mode 100644
index 0000000..28e0bea
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/photo_library.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M22 16V4c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2zm-11-4 2.03 2.71L16 11l4 5H8l3-4zM2 6v14c0 1.1.9 2 2 2h14v-2H4V6H2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/photo_size_select_actual.svg b/html/matt-chat/uswds/img/material-icons/photo_size_select_actual.svg
new file mode 100644
index 0000000..1102b34
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/photo_size_select_actual.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 3H3C2 3 1 4 1 5v14c0 1.1.9 2 2 2h18c1 0 2-1 2-2V5c0-1-1-2-2-2zM5 17l3.5-4.5 2.5 3.01L14.5 11l4.5 6H5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/photo_size_select_large.svg b/html/matt-chat/uswds/img/material-icons/photo_size_select_large.svg
new file mode 100644
index 0000000..55da54e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/photo_size_select_large.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 15h2v2h-2v-2zm0-4h2v2h-2v-2zm2 8h-2v2c1 0 2-1 2-2zM13 3h2v2h-2V3zm8 4h2v2h-2V7zm0-4v2h2c0-1-1-2-2-2zM1 7h2v2H1V7zm16-4h2v2h-2V3zm0 16h2v2h-2v-2zM3 3C2 3 1 4 1 5h2V3zm6 0h2v2H9V3zM5 3h2v2H5V3zm-4 8v8c0 1.1.9 2 2 2h12V11H1zm2 8 2.5-3.21 1.79 2.15 2.5-3.22L13 19H3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/photo_size_select_small.svg b/html/matt-chat/uswds/img/material-icons/photo_size_select_small.svg
new file mode 100644
index 0000000..7dbd961
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/photo_size_select_small.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M23 15h-2v2h2v-2zm0-4h-2v2h2v-2zm0 8h-2v2c1 0 2-1 2-2zM15 3h-2v2h2V3zm8 4h-2v2h2V7zm-2-4v2h2c0-1-1-2-2-2zM3 21h8v-6H1v4c0 1.1.9 2 2 2zM3 7H1v2h2V7zm12 12h-2v2h2v-2zm4-16h-2v2h2V3zm0 16h-2v2h2v-2zM3 3C2 3 1 4 1 5h2V3zm0 8H1v2h2v-2zm8-8H9v2h2V3zM7 3H5v2h2V3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/php.svg b/html/matt-chat/uswds/img/material-icons/php.svg
new file mode 100644
index 0000000..b173fcc
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/php.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13 9h1.5v6H13v-2.5h-2V15H9.5V9H11v2h2V9zm-5 1.5v1c0 .8-.7 1.5-1.5 1.5h-2v2H3V9h3.5c.8 0 1.5.7 1.5 1.5zm-1.5 0h-2v1h2v-1zm15 0v1c0 .8-.7 1.5-1.5 1.5h-2v2h-1.5V9H20c.8 0 1.5.7 1.5 1.5zm-1.5 0h-2v1h2v-1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/piano.svg b/html/matt-chat/uswds/img/material-icons/piano.svg
new file mode 100644
index 0000000..0dbde62
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/piano.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-5 11.5h.25V19h-4.5v-4.5H10c.55 0 1-.45 1-1V5h2v8.5c0 .55.45 1 1 1zM5 5h2v8.5c0 .55.45 1 1 1h.25V19H5V5zm14 14h-3.25v-4.5H16c.55 0 1-.45 1-1V5h2v14z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/piano_off.svg b/html/matt-chat/uswds/img/material-icons/piano_off.svg
new file mode 100644
index 0000000..eaebe4a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/piano_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21.19 21.19 2.81 2.81 1.39 4.22 3 5.83V19c0 1.1.9 2 2 2h13.17l1.61 1.61 1.41-1.42zM8.25 19H5V7.83l2 2v3.67c0 .55.45 1 1 1h.25V19zm1.5 0v-4.5H10c.46 0 .82-.31.94-.73l3.31 3.31V19h-4.5zM11 8.17 5.83 3H19c1.1 0 2 .9 2 2v13.17l-2-2V5h-2v8.5c0 .19-.07.36-.16.51L13 10.17V5h-2v3.17z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/picture_as_pdf.svg b/html/matt-chat/uswds/img/material-icons/picture_as_pdf.svg
new file mode 100644
index 0000000..e50f55f
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/picture_as_pdf.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 2H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-8.5 7.5c0 .83-.67 1.5-1.5 1.5H9v2H7.5V7H10c.83 0 1.5.67 1.5 1.5v1zm5 2c0 .83-.67 1.5-1.5 1.5h-2.5V7H15c.83 0 1.5.67 1.5 1.5v3zm4-3H19v1h1.5V11H19v2h-1.5V7h3v1.5zM9 9.5h1v-1H9v1zM4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6zm10 5.5h1v-3h-1v3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/picture_in_picture.svg b/html/matt-chat/uswds/img/material-icons/picture_in_picture.svg
new file mode 100644
index 0000000..b74607d
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/picture_in_picture.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 7h-8v6h8V7zm2-4H3c-1.1 0-2 .9-2 2v14c0 1.1.9 1.98 2 1.98h18c1.1 0 2-.88 2-1.98V5c0-1.1-.9-2-2-2zm0 16.01H3V4.98h18v14.03z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/picture_in_picture_alt.svg b/html/matt-chat/uswds/img/material-icons/picture_in_picture_alt.svg
new file mode 100644
index 0000000..7f7e861
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/picture_in_picture_alt.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 11h-8v6h8v-6zm4 8V4.98C23 3.88 22.1 3 21 3H3c-1.1 0-2 .88-2 1.98V19c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2zm-2 .02H3V4.97h18v14.05z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/pie_chart.svg b/html/matt-chat/uswds/img/material-icons/pie_chart.svg
new file mode 100644
index 0000000..d6d96a4
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/pie_chart.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11 2v20c-5.07-.5-9-4.79-9-10s3.93-9.5 9-10zm2.03 0v8.99H22c-.47-4.74-4.24-8.52-8.97-8.99zm0 11.01V22c4.74-.47 8.5-4.25 8.97-8.99h-8.97z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/pie_chart_outline.svg b/html/matt-chat/uswds/img/material-icons/pie_chart_outline.svg
new file mode 100644
index 0000000..c4f37fd
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/pie_chart_outline.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2zm1 2.07c3.61.45 6.48 3.33 6.93 6.93H13V4.07zM4 12c0-4.06 3.07-7.44 7-7.93v15.87c-3.93-.5-7-3.88-7-7.94zm9 7.93V13h6.93A8.002 8.002 0 0 1 13 19.93z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/pin.svg b/html/matt-chat/uswds/img/material-icons/pin.svg
new file mode 100644
index 0000000..097d3be
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/pin.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zM7.64 15H6.49v-4.5l-.9.66-.58-.89L6.77 9h.87v6zm5.86 0H9.61v-1.02c1.07-1.07 1.77-1.77 2.13-2.15.4-.42.54-.69.54-1.06 0-.4-.31-.72-.81-.72-.52 0-.8.39-.9.72l-1.01-.42c.01-.02.18-.76 1-1.15.69-.33 1.48-.2 1.95.03.86.44.91 1.24.91 1.48 0 .64-.31 1.26-.92 1.86-.25.25-.72.71-1.4 1.39l.03.05h2.37V15zm5.25-.85c-.08.13-.56.85-1.76.85-.04 0-1.6.08-2.05-1.51l1.03-.41c.03.1.19.86 1.02.86.41 0 .89-.28.89-.77 0-.55-.48-.79-1.04-.79h-.5v-1h.46c.33 0 .88-.14.88-.72 0-.39-.31-.65-.75-.65-.5 0-.74.32-.85.64l-.99-.41C15.2 9.9 15.68 9 16.94 9c1.09 0 1.54.64 1.62.75.33.5.28 1.16.02 1.57-.15.22-.32.38-.52.48v.07c.28.11.51.28.68.52.37.52.33 1.27.01 1.76z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/pin_drop.svg b/html/matt-chat/uswds/img/material-icons/pin_drop.svg
new file mode 100644
index 0000000..c7e6e50
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/pin_drop.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 8c0-3.31-2.69-6-6-6S6 4.69 6 8c0 4.5 6 11 6 11s6-6.5 6-11zm-8 0c0-1.1.9-2 2-2s2 .9 2 2a2 2 0 1 1-4 0zM5 20v2h14v-2H5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/pin_end.svg b/html/matt-chat/uswds/img/material-icons/pin_end.svg
new file mode 100644
index 0000000..7bcb407
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/pin_end.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 12V6H4v12h10v2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2h16c1.1 0 2 .9 2 2v6h-2zm-1 2c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3zm-4.34-6H9v5.66l2.12-2.12 2.83 2.83 1.41-1.41-2.83-2.83L14.66 8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/pin_invoke.svg b/html/matt-chat/uswds/img/material-icons/pin_invoke.svg
new file mode 100644
index 0000000..f980c87
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/pin_invoke.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M22 12v6c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2h10v2H4v12h16v-6h2zm0-5c0-1.66-1.34-3-3-3s-3 1.34-3 3 1.34 3 3 3 3-1.34 3-3zm-10.53 5.12-2.83 2.83 1.41 1.41 2.83-2.83L15 15.66V10H9.34l2.13 2.12z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/pinch.svg b/html/matt-chat/uswds/img/material-icons/pinch.svg
new file mode 100644
index 0000000..b6e0513
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/pinch.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M6 2.5V1h5v5H9.5V3.56L3.56 9.5H6V11H1V6h1.5v2.44L8.44 2.5H6zm16.98 14.32-.63 4.46c-.14.99-.99 1.72-1.98 1.72h-6.16c-.53 0-1.29-.21-1.66-.59L8 17.62l.83-.84c.24-.24.58-.35.92-.28l3.25.74V6.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5v6h.91c.31 0 .62.07.89.21l4.09 2.04c.77.39 1.21 1.22 1.09 2.07z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/pivot_table_chart.svg b/html/matt-chat/uswds/img/material-icons/pivot_table_chart.svg
new file mode 100644
index 0000000..d69ce24
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/pivot_table_chart.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10 8h11V5c0-1.1-.9-2-2-2h-9v5zM3 8h5V3H5c-1.1 0-2 .9-2 2v3zm2 13h3V10H3v9c0 1.1.9 2 2 2zm8 1-4-4 4-4zm1-9 4-4 4 4zm.58 6H13v-2h1.58c1.33 0 2.42-1.08 2.42-2.42V13h2v1.58c0 2.44-1.98 4.42-4.42 4.42z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/pix.svg b/html/matt-chat/uswds/img/material-icons/pix.svg
new file mode 100644
index 0000000..70c15e6
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/pix.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m15.45 16.52-3.01-3.01c-.11-.11-.24-.13-.31-.13s-.2.02-.31.13L8.8 16.53c-.34.34-.87.89-2.64.89l3.71 3.7a3 3 0 0 0 4.24 0l3.72-3.71c-.91 0-1.67-.18-2.38-.89zM8.8 7.47l3.02 3.02c.08.08.2.13.31.13s.23-.05.31-.13l2.99-2.99c.71-.74 1.52-.91 2.43-.91l-3.72-3.71a3 3 0 0 0-4.24 0l-3.71 3.7c1.76 0 2.3.58 2.61.89z"/><path d="m21.11 9.85-2.25-2.26H17.6c-.54 0-1.08.22-1.45.61l-3 3c-.28.28-.65.42-1.02.42a1.5 1.5 0 0 1-1.02-.42L8.09 8.17c-.38-.38-.9-.6-1.45-.6H5.17l-2.29 2.3a3 3 0 0 0 0 4.24l2.29 2.3h1.48c.54 0 1.06-.22 1.45-.6l3.02-3.02c.28-.28.65-.42 1.02-.42s.74.14 1.02.42l3.01 3.01c.38.38.9.6 1.45.6h1.26l2.25-2.26a3.042 3.042 0 0 0-.02-4.29z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/place.svg b/html/matt-chat/uswds/img/material-icons/place.svg
new file mode 100644
index 0000000..35655db
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/place.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5a2.5 2.5 0 0 1 0-5 2.5 2.5 0 0 1 0 5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/plagiarism.svg b/html/matt-chat/uswds/img/material-icons/plagiarism.svg
new file mode 100644
index 0000000..712892c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/plagiarism.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M14 2H6c-1.1 0-2 .9-2 2v16c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm1.04 17.45-1.88-1.88c-1.33.71-3.01.53-4.13-.59a3.495 3.495 0 0 1 0-4.95 3.495 3.495 0 0 1 4.95 0 3.48 3.48 0 0 1 .59 4.13l1.88 1.88-1.41 1.41zM13 9V3.5L18.5 9H13z"/><circle cx="11.5" cy="14.5" r="1.5"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/play_arrow.svg b/html/matt-chat/uswds/img/material-icons/play_arrow.svg
new file mode 100644
index 0000000..c5e1a4c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/play_arrow.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M8 5v14l11-7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/play_circle.svg b/html/matt-chat/uswds/img/material-icons/play_circle.svg
new file mode 100644
index 0000000..e16893e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/play_circle.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zM9.5 16.5v-9l7 4.5-7 4.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/play_circle_filled.svg b/html/matt-chat/uswds/img/material-icons/play_circle_filled.svg
new file mode 100644
index 0000000..dd022c5
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/play_circle_filled.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 14.5v-9l6 4.5-6 4.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/play_circle_outline.svg b/html/matt-chat/uswds/img/material-icons/play_circle_outline.svg
new file mode 100644
index 0000000..5c28328
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/play_circle_outline.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m10 16.5 6-4.5-6-4.5v9zM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/play_disabled.svg b/html/matt-chat/uswds/img/material-icons/play_disabled.svg
new file mode 100644
index 0000000..18aee05
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/play_disabled.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M8 5.19V5l11 7-2.55 1.63L8 5.19zm12 14.54-5.11-5.11L8 7.73 4.27 4 3 5.27l5 5V19l5.33-3.4 5.4 5.4L20 19.73z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/play_for_work.svg b/html/matt-chat/uswds/img/material-icons/play_for_work.svg
new file mode 100644
index 0000000..3568dd9
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/play_for_work.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11 5v5.59H7.5l4.5 4.5 4.5-4.5H13V5h-2zm-5 9c0 3.31 2.69 6 6 6s6-2.69 6-6h-2c0 2.21-1.79 4-4 4s-4-1.79-4-4H6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/play_lesson.svg b/html/matt-chat/uswds/img/material-icons/play_lesson.svg
new file mode 100644
index 0000000..cb07d77
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/play_lesson.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 11c.34 0 .67.03 1 .08V4c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h7.26A6.995 6.995 0 0 1 18 11zM7 11V4h5v7L9.5 9.5 7 11z"/><path d="M18 13c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5zm-1.25 7.5v-5l4 2.5-4 2.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/playlist_add.svg b/html/matt-chat/uswds/img/material-icons/playlist_add.svg
new file mode 100644
index 0000000..a8c9eba
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/playlist_add.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M14 10H3v2h11v-2zm0-4H3v2h11V6zm4 8v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zM3 16h7v-2H3v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/playlist_add_check.svg b/html/matt-chat/uswds/img/material-icons/playlist_add_check.svg
new file mode 100644
index 0000000..b629e74
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/playlist_add_check.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 10h11v2H3zm0-4h11v2H3zm0 8h7v2H3zm17.59-2.07-4.25 4.24-2.12-2.12-1.41 1.41L16.34 19 22 13.34z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/playlist_add_check_circle.svg b/html/matt-chat/uswds/img/material-icons/playlist_add_check_circle.svg
new file mode 100644
index 0000000..2618854
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/playlist_add_check_circle.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zM7 7h7v2H7V7zm0 3h7v2H7v-2zm3 5H7v-2h3v2zm4.05 3.36-2.83-2.83 1.41-1.41 1.41 1.41L17.59 12 19 13.41l-4.95 4.95z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/playlist_add_circle.svg b/html/matt-chat/uswds/img/material-icons/playlist_add_circle.svg
new file mode 100644
index 0000000..6470202
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/playlist_add_circle.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zM7 7h7v2H7V7zm3 8H7v-2h3v2zm-3-3v-2h7v2H7zm12 3h-2v2h-2v-2h-2v-2h2v-2h2v2h2v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/playlist_play.svg b/html/matt-chat/uswds/img/material-icons/playlist_play.svg
new file mode 100644
index 0000000..5d2953c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/playlist_play.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 10h11v2H3zm0-4h11v2H3zm0 8h7v2H3zm13-1v8l6-4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/playlist_remove.svg b/html/matt-chat/uswds/img/material-icons/playlist_remove.svg
new file mode 100644
index 0000000..9945443
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/playlist_remove.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M14 10H3v2h11v-2zm0-4H3v2h11V6zM3 16h7v-2H3v2zm11.41 6L17 19.41 19.59 22 21 20.59 18.41 18 21 15.41 19.59 14 17 16.59 14.41 14 13 15.41 15.59 18 13 20.59 14.41 22z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/plumbing.svg b/html/matt-chat/uswds/img/material-icons/plumbing.svg
new file mode 100644
index 0000000..effe9be
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/plumbing.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m19.28 4.93-2.12-2.12c-.78-.78-2.05-.78-2.83 0L11.5 5.64l2.12 2.12 2.12-2.12 3.54 3.54a3.012 3.012 0 0 0 0-4.25zM5.49 13.77c.59.59 1.54.59 2.12 0l2.47-2.47-2.12-2.13-2.47 2.47c-.59.59-.59 1.54 0 2.13z"/><path d="m15.04 7.76-.71.71-.71.71L10.44 6c-.59-.6-1.54-.6-2.12-.01a1.49 1.49 0 0 0 0 2.12l3.18 3.18-.71.71-6.36 6.36c-.78.78-.78 2.05 0 2.83.78.78 2.05.78 2.83 0L16.45 12a.996.996 0 1 0 1.41-1.41l-2.82-2.83z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/plus_one.svg b/html/matt-chat/uswds/img/material-icons/plus_one.svg
new file mode 100644
index 0000000..09b83d6
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/plus_one.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10 8H8v4H4v2h4v4h2v-4h4v-2h-4zm4.5-1.92V7.9l2.5-.5V18h2V5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/podcasts.svg b/html/matt-chat/uswds/img/material-icons/podcasts.svg
new file mode 100644
index 0000000..efd5679
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/podcasts.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M14 12c0 .74-.4 1.38-1 1.72V22h-2v-8.28c-.6-.35-1-.98-1-1.72 0-1.1.9-2 2-2s2 .9 2 2zm-2-6c-3.31 0-6 2.69-6 6 0 1.74.75 3.31 1.94 4.4l1.42-1.42A3.957 3.957 0 0 1 8 12c0-2.21 1.79-4 4-4s4 1.79 4 4c0 1.19-.53 2.25-1.36 2.98l1.42 1.42A5.957 5.957 0 0 0 18 12c0-3.31-2.69-6-6-6zm0-4C6.48 2 2 6.48 2 12c0 2.85 1.2 5.41 3.11 7.24l1.42-1.42A7.987 7.987 0 0 1 4 12c0-4.41 3.59-8 8-8s8 3.59 8 8c0 2.29-.98 4.36-2.53 5.82l1.42 1.42C20.8 17.41 22 14.85 22 12c0-5.52-4.48-10-10-10z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/point_of_sale.svg b/html/matt-chat/uswds/img/material-icons/point_of_sale.svg
new file mode 100644
index 0000000..bb99578
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/point_of_sale.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 2H7c-1.1 0-2 .9-2 2v2c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 4H7V4h10v2zm3 16H4c-1.1 0-2-.9-2-2v-1h20v1c0 1.1-.9 2-2 2zm-1.47-11.81A2.008 2.008 0 0 0 16.7 9H7.3c-.79 0-1.51.47-1.83 1.19L2 18h20l-3.47-7.81zM9.5 16h-1c-.28 0-.5-.22-.5-.5s.22-.5.5-.5h1c.28 0 .5.22.5.5s-.22.5-.5.5zm0-2h-1c-.28 0-.5-.22-.5-.5s.22-.5.5-.5h1c.28 0 .5.22.5.5s-.22.5-.5.5zm0-2h-1c-.28 0-.5-.22-.5-.5s.22-.5.5-.5h1c.28 0 .5.22.5.5s-.22.5-.5.5zm3 4h-1c-.28 0-.5-.22-.5-.5s.22-.5.5-.5h1c.28 0 .5.22.5.5s-.22.5-.5.5zm0-2h-1c-.28 0-.5-.22-.5-.5s.22-.5.5-.5h1c.28 0 .5.22.5.5s-.22.5-.5.5zm0-2h-1c-.28 0-.5-.22-.5-.5s.22-.5.5-.5h1c.28 0 .5.22.5.5s-.22.5-.5.5zm3 4h-1c-.28 0-.5-.22-.5-.5s.22-.5.5-.5h1c.28 0 .5.22.5.5s-.22.5-.5.5zm0-2h-1c-.28 0-.5-.22-.5-.5s.22-.5.5-.5h1c.28 0 .5.22.5.5s-.22.5-.5.5zm0-2h-1c-.28 0-.5-.22-.5-.5s.22-.5.5-.5h1c.28 0 .5.22.5.5s-.22.5-.5.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/policy.svg b/html/matt-chat/uswds/img/material-icons/policy.svg
new file mode 100644
index 0000000..ab385dd
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/policy.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m21 5-9-4-9 4v6c0 5.55 3.84 10.74 9 12 2.3-.56 4.33-1.9 5.88-3.71l-3.12-3.12a4.994 4.994 0 0 1-6.29-.64 5.003 5.003 0 0 1 0-7.07 5.003 5.003 0 0 1 7.07 0 5.006 5.006 0 0 1 .64 6.29l2.9 2.9C20.29 15.69 21 13.38 21 11V5z"/><circle cx="12" cy="12" r="3"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/poll.svg b/html/matt-chat/uswds/img/material-icons/poll.svg
new file mode 100644
index 0000000..cc7768b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/poll.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/polyline.svg b/html/matt-chat/uswds/img/material-icons/polyline.svg
new file mode 100644
index 0000000..3be0970
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/polyline.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15 16v1.26l-6-3v-3.17L11.7 8H16V2h-6v4.9L7.3 10H3v6h5l7 3.5V22h6v-6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/polymer.svg b/html/matt-chat/uswds/img/material-icons/polymer.svg
new file mode 100644
index 0000000..11dfede
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/polymer.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 4h-4L7.11 16.63 4.5 12 9 4H5L.5 12 5 20h4l7.89-12.63L19.5 12 15 20h4l4.5-8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/pool.svg b/html/matt-chat/uswds/img/material-icons/pool.svg
new file mode 100644
index 0000000..b08944e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/pool.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M22 21c-1.11 0-1.73-.37-2.18-.64-.37-.22-.6-.36-1.15-.36-.56 0-.78.13-1.15.36-.46.27-1.07.64-2.18.64s-1.73-.37-2.18-.64c-.37-.22-.6-.36-1.15-.36-.56 0-.78.13-1.15.36-.46.27-1.08.64-2.19.64-1.11 0-1.73-.37-2.18-.64-.37-.23-.6-.36-1.15-.36s-.78.13-1.15.36c-.46.27-1.08.64-2.19.64v-2c.56 0 .78-.13 1.15-.36.46-.27 1.08-.64 2.19-.64s1.73.37 2.18.64c.37.23.59.36 1.15.36.56 0 .78-.13 1.15-.36.46-.27 1.08-.64 2.19-.64 1.11 0 1.73.37 2.18.64.37.22.6.36 1.15.36s.78-.13 1.15-.36c.45-.27 1.07-.64 2.18-.64s1.73.37 2.18.64c.37.23.59.36 1.15.36v2zm0-4.5c-1.11 0-1.73-.37-2.18-.64-.37-.22-.6-.36-1.15-.36-.56 0-.78.13-1.15.36-.45.27-1.07.64-2.18.64s-1.73-.37-2.18-.64c-.37-.22-.6-.36-1.15-.36-.56 0-.78.13-1.15.36-.45.27-1.07.64-2.18.64s-1.73-.37-2.18-.64c-.37-.22-.6-.36-1.15-.36s-.78.13-1.15.36c-.47.27-1.09.64-2.2.64v-2c.56 0 .78-.13 1.15-.36.45-.27 1.07-.64 2.18-.64s1.73.37 2.18.64c.37.22.6.36 1.15.36.56 0 .78-.13 1.15-.36.45-.27 1.07-.64 2.18-.64s1.73.37 2.18.64c.37.22.6.36 1.15.36s.78-.13 1.15-.36c.45-.27 1.07-.64 2.18-.64s1.73.37 2.18.64c.37.22.6.36 1.15.36v2zM8.67 12c.56 0 .78-.13 1.15-.36.46-.27 1.08-.64 2.19-.64 1.11 0 1.73.37 2.18.64.37.22.6.36 1.15.36s.78-.13 1.15-.36c.12-.07.26-.15.41-.23L10.48 5C8.93 3.45 7.5 2.99 5 3v2.5c1.82-.01 2.89.39 4 1.5l1 1-3.25 3.25c.31.12.56.27.77.39.37.23.59.36 1.15.36z"/><circle cx="16.5" cy="5.5" r="2.5"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/portable_wifi_off.svg b/html/matt-chat/uswds/img/material-icons/portable_wifi_off.svg
new file mode 100644
index 0000000..255a05a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/portable_wifi_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17.56 14.24c.28-.69.44-1.45.44-2.24 0-3.31-2.69-6-6-6-.79 0-1.55.16-2.24.44l1.62 1.62c.2-.03.41-.06.62-.06a3.999 3.999 0 0 1 3.95 4.63l1.61 1.61zM12 4c4.42 0 8 3.58 8 8 0 1.35-.35 2.62-.95 3.74l1.47 1.47A9.86 9.86 0 0 0 22 12c0-5.52-4.48-10-10-10-1.91 0-3.69.55-5.21 1.47l1.46 1.46C9.37 4.34 10.65 4 12 4zM3.27 2.5 2 3.77l2.1 2.1C2.79 7.57 2 9.69 2 12c0 3.7 2.01 6.92 4.99 8.65l1-1.73C5.61 17.53 4 14.96 4 12c0-1.76.57-3.38 1.53-4.69l1.43 1.44C6.36 9.68 6 10.8 6 12c0 2.22 1.21 4.15 3 5.19l1-1.74c-1.19-.7-2-1.97-2-3.45 0-.65.17-1.25.44-1.79l1.58 1.58L10 12c0 1.1.9 2 2 2l.21-.02.01.01 7.51 7.51L21 20.23 4.27 3.5l-1-1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/portrait.svg b/html/matt-chat/uswds/img/material-icons/portrait.svg
new file mode 100644
index 0000000..685a339
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/portrait.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 12.25c1.24 0 2.25-1.01 2.25-2.25S13.24 7.75 12 7.75 9.75 8.76 9.75 10s1.01 2.25 2.25 2.25zm4.5 4c0-1.5-3-2.25-4.5-2.25s-4.5.75-4.5 2.25V17h9v-.75zM19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/post_add.svg b/html/matt-chat/uswds/img/material-icons/post_add.svg
new file mode 100644
index 0000000..a98e0b6
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/post_add.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 19.22H5V7h7V5H5c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2v-7h-2v7.22z"/><path d="M19 2h-2v3h-3c.01.01 0 2 0 2h3v2.99c.01.01 2 0 2 0V7h3V5h-3V2zM7 9h8v2H7zm0 3v2h8v-2h-3zm0 3h8v2H7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/power.svg b/html/matt-chat/uswds/img/material-icons/power.svg
new file mode 100644
index 0000000..a4fe854
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/power.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16.01 7 16 3h-2v4h-4V3H8v4h-.01C7 6.99 6 7.99 6 8.99v5.49L9.5 18v3h5v-3l3.5-3.51v-5.5c0-1-1-2-1.99-1.99z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/power_input.svg b/html/matt-chat/uswds/img/material-icons/power_input.svg
new file mode 100644
index 0000000..353d4ce
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/power_input.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M2 9v2h19V9H2zm0 6h5v-2H2v2zm7 0h5v-2H9v2zm7 0h5v-2h-5v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/power_off.svg b/html/matt-chat/uswds/img/material-icons/power_off.svg
new file mode 100644
index 0000000..79da0a0
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/power_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 14.49V9c0-1-1.01-2.01-2-2V3h-2v4h-4V3H8v2.48l9.51 9.5.49-.49zm-1.76 1.77L7.2 7.2l-.01.01L3.98 4 2.71 5.25l3.36 3.36C6.04 8.74 6 8.87 6 9v5.48L9.5 18v3h5v-3l.48-.48L19.45 22l1.26-1.28-4.47-4.46z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/power_settings_new.svg b/html/matt-chat/uswds/img/material-icons/power_settings_new.svg
new file mode 100644
index 0000000..ff34390
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/power_settings_new.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13 3h-2v10h2V3zm4.83 2.17-1.42 1.42A6.92 6.92 0 0 1 19 12c0 3.87-3.13 7-7 7A6.995 6.995 0 0 1 7.58 6.58L6.17 5.17A8.932 8.932 0 0 0 3 12a9 9 0 0 0 18 0c0-2.74-1.23-5.18-3.17-6.83z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/precision_manufacturing.svg b/html/matt-chat/uswds/img/material-icons/precision_manufacturing.svg
new file mode 100644
index 0000000..34408a5
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/precision_manufacturing.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m19.93 8.21-3.6 1.68L14 7.7V6.3l2.33-2.19 3.6 1.68c.38.18.82.01 1-.36.18-.38.01-.82-.36-1L16.65 2.6a.993.993 0 0 0-1.13.2l-1.74 1.6A.975.975 0 0 0 13 4c-.55 0-1 .45-1 1v1H8.82C8.34 4.65 6.98 3.73 5.4 4.07c-1.16.25-2.15 1.25-2.36 2.43-.22 1.32.46 2.47 1.48 3.08L7.08 18H4v3h13v-3h-3.62L8.41 8.77c.17-.24.31-.49.41-.77H12v1c0 .55.45 1 1 1 .32 0 .6-.16.78-.4l1.74 1.6c.3.3.75.38 1.13.2l3.92-1.83c.38-.18.54-.62.36-1a.753.753 0 0 0-1-.36zM6 8c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/pregnant_woman.svg b/html/matt-chat/uswds/img/material-icons/pregnant_woman.svg
new file mode 100644
index 0000000..dd3a98d
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/pregnant_woman.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M9 4c0-1.11.89-2 2-2s2 .89 2 2-.89 2-2 2-2-.89-2-2zm7 9a3.285 3.285 0 0 0-2-3c0-1.66-1.34-3-3-3s-3 1.34-3 3v7h2v5h3v-5h3v-4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/present_to_all.svg b/html/matt-chat/uswds/img/material-icons/present_to_all.svg
new file mode 100644
index 0000000..d63f7b9
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/present_to_all.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 3H3c-1.11 0-2 .89-2 2v14c0 1.11.89 2 2 2h18c1.11 0 2-.89 2-2V5c0-1.11-.89-2-2-2zm0 16.02H3V4.98h18v14.04zM10 12H8l4-4 4 4h-2v4h-4v-4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/preview.svg b/html/matt-chat/uswds/img/material-icons/preview.svg
new file mode 100644
index 0000000..41b7ad5
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/preview.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2V5a2 2 0 0 0-2-2zm0 16H5V7h14v12zm-5.5-6c0 .83-.67 1.5-1.5 1.5s-1.5-.67-1.5-1.5.67-1.5 1.5-1.5 1.5.67 1.5 1.5zM12 9c-2.73 0-5.06 1.66-6 4 .94 2.34 3.27 4 6 4s5.06-1.66 6-4c-.94-2.34-3.27-4-6-4zm0 6.5a2.5 2.5 0 0 1 0-5 2.5 2.5 0 0 1 0 5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/price_change.svg b/html/matt-chat/uswds/img/material-icons/price_change.svg
new file mode 100644
index 0000000..60e5ab8
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/price_change.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 4H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V6c0-1.11-.89-2-2-2zm-8 6H8v1h3c.55 0 1 .45 1 1v3c0 .55-.45 1-1 1h-1v1H8v-1H6v-2h4v-1H7c-.55 0-1-.45-1-1V9c0-.55.45-1 1-1h1V7h2v1h2v2zm4 6.25-2-2h4l-2 2zM14 10l2-2 2 2h-4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/price_check.svg b/html/matt-chat/uswds/img/material-icons/price_check.svg
new file mode 100644
index 0000000..05c4d8a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/price_check.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 13V9c0-.55-.45-1-1-1H7V6h5V4H9.5V3h-2v1H6c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h4v2H5v2h2.5v1h2v-1H11c.55 0 1-.45 1-1zm7.59-.48-5.66 5.65-2.83-2.83-1.41 1.42L13.93 21 21 13.93z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/print.svg b/html/matt-chat/uswds/img/material-icons/print.svg
new file mode 100644
index 0000000..6128bd8
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/print.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 8H5c-1.66 0-3 1.34-3 3v6h4v4h12v-4h4v-6c0-1.66-1.34-3-3-3zm-3 11H8v-5h8v5zm3-7c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm-1-9H6v4h12V3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/print_disabled.svg b/html/matt-chat/uswds/img/material-icons/print_disabled.svg
new file mode 100644
index 0000000..d49abac
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/print_disabled.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19.1 17H22v-6c0-1.7-1.3-3-3-3h-9l9.1 9zm-.1-7c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm-1-3V3H6v1.1L9 7zM1.2 1.8 0 3l4.9 5C3.3 8.1 2 9.4 2 11v6h4v4h11.9l3 3 1.3-1.3-21-20.9zM8 19v-5h2.9l5 5H8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/priority_high.svg b/html/matt-chat/uswds/img/material-icons/priority_high.svg
new file mode 100644
index 0000000..326d004
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/priority_high.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><circle cx="12" cy="19" r="2"/><path d="M10 3h4v12h-4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/privacy_tip.svg b/html/matt-chat/uswds/img/material-icons/privacy_tip.svg
new file mode 100644
index 0000000..6d367d7
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/privacy_tip.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 1 3 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V5l-9-4zm-1 6h2v2h-2V7zm0 4h2v6h-2v-6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/private_connectivity.svg b/html/matt-chat/uswds/img/material-icons/private_connectivity.svg
new file mode 100644
index 0000000..bff22bb
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/private_connectivity.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18.93 11c-.49-3.39-3.4-6-6.93-6s-6.44 2.61-6.93 6H2v2h3.07c.49 3.39 3.4 6 6.93 6s6.44-2.61 6.93-6H22v-2h-3.07zM15 14.5c0 .55-.45 1-1 1h-4c-.55 0-1-.45-1-1v-3c0-.55.45-1 1-1v-1a2 2 0 0 1 2.34-1.97c.98.16 1.66 1.08 1.66 2.08v.89c.55 0 1 .45 1 1v3zM12.75 13c0 .41-.34.75-.75.75s-.75-.34-.75-.75.34-.75.75-.75.75.34.75.75zM13 9.5v1h-2v-1c0-.55.45-1 1-1s1 .45 1 1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/production_quantity_limits.svg b/html/matt-chat/uswds/img/material-icons/production_quantity_limits.svg
new file mode 100644
index 0000000..22c0e82
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/production_quantity_limits.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13 10h-2V8h2v2zm0-4h-2V1h2v5zM7 18c-1.1 0-1.99.9-1.99 2S5.9 22 7 22s2-.9 2-2-.9-2-2-2zm10 0c-1.1 0-1.99.9-1.99 2s.89 2 1.99 2 2-.9 2-2-.9-2-2-2zm-8.9-5h7.45c.75 0 1.41-.41 1.75-1.03L21 4.96 19.25 4l-3.7 7H8.53L4.27 2H1v2h2l3.6 7.59-1.35 2.44C4.52 15.37 5.48 17 7 17h12v-2H7l1.1-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/propane.svg b/html/matt-chat/uswds/img/material-icons/propane.svg
new file mode 100644
index 0000000..33f0644
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/propane.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 6h-1V5c0-1.1-.9-2-2-2h-4c-1.1 0-2 .9-2 2v1H7c-3.31 0-6 2.69-6 6s2.69 6 6 6v3h2v-3h6v3h2v-3c3.31 0 6-2.69 6-6s-2.69-6-6-6zm-7-1h4v1h-4V5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/propane_tank.svg b/html/matt-chat/uswds/img/material-icons/propane_tank.svg
new file mode 100644
index 0000000..5566881
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/propane_tank.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M4 15v3c0 2.21 1.79 4 4 4h8c2.21 0 4-1.79 4-4v-3H4zm16-2v-3c0-1.86-1.28-3.41-3-3.86V4c0-1.1-.9-2-2-2H9c-1.1 0-2 .9-2 2v2.14c-1.72.45-3 2-3 3.86v3h16zM9 4h6v2h-2c0-.55-.45-1-1-1s-1 .45-1 1H9V4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/psychology.svg b/html/matt-chat/uswds/img/material-icons/psychology.svg
new file mode 100644
index 0000000..449ecf4
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/psychology.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13 8.57a1.43 1.43 0 1 0 0 2.86 1.43 1.43 0 0 0 0-2.86z"/><path d="M13 3C9.25 3 6.2 5.94 6.02 9.64L4.1 12.2a.5.5 0 0 0 .4.8H6v3c0 1.1.9 2 2 2h1v3h7v-4.68A6.999 6.999 0 0 0 13 3zm3 7c0 .13-.01.26-.02.39l.83.66c.08.06.1.16.05.25l-.8 1.39c-.05.09-.16.12-.24.09l-.99-.4c-.21.16-.43.29-.67.39L14 13.83c-.01.1-.1.17-.2.17h-1.6c-.1 0-.18-.07-.2-.17l-.15-1.06c-.25-.1-.47-.23-.68-.39l-.99.4c-.09.03-.2 0-.25-.09l-.8-1.39a.19.19 0 0 1 .05-.25l.84-.66c-.01-.13-.02-.26-.02-.39s.02-.27.04-.39l-.85-.66c-.08-.06-.1-.16-.05-.26l.8-1.38c.05-.09.15-.12.24-.09l1 .4c.2-.15.43-.29.67-.39L12 6.17c.02-.1.1-.17.2-.17h1.6c.1 0 .18.07.2.17l.15 1.06c.24.1.46.23.67.39l1-.4c.09-.03.2 0 .24.09l.8 1.38a.2.2 0 0 1-.05.26l-.85.66c.03.12.04.25.04.39z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/psychology_alt.svg b/html/matt-chat/uswds/img/material-icons/psychology_alt.svg
new file mode 100644
index 0000000..1a05231
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/psychology_alt.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19.94 9.06C19.5 5.73 16.57 3 13 3 9.47 3 6.57 5.61 6.08 9l-1.93 3.48c-.41.66.07 1.52.85 1.52h1v2c0 1.1.9 2 2 2h1v3h7v-4.68a7.016 7.016 0 0 0 3.94-7.26zM12.5 14c-.41 0-.74-.33-.74-.74s.33-.73.74-.73.73.32.73.73-.31.74-.73.74zm1.76-4.32c-.44.65-.86.85-1.09 1.27-.09.17-.13.28-.13.82h-1.06c0-.29-.04-.75.18-1.16.28-.51.83-.81 1.14-1.26.33-.47.15-1.36-.8-1.36-.62 0-.92.47-1.05.86l-.96-.4c.27-.78.97-1.45 2.01-1.45.86 0 1.45.39 1.75.88.26.43.41 1.22.01 1.8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/public.svg b/html/matt-chat/uswds/img/material-icons/public.svg
new file mode 100644
index 0000000..6356e73
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/public.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 17.93c-3.95-.49-7-3.85-7-7.93 0-.62.08-1.21.21-1.79L9 15v1c0 1.1.9 2 2 2v1.93zm6.9-2.54c-.26-.81-1-1.39-1.9-1.39h-1v-3c0-.55-.45-1-1-1H8v-2h2c.55 0 1-.45 1-1V7h2c1.1 0 2-.9 2-2v-.41c2.93 1.19 5 4.06 5 7.41 0 2.08-.8 3.97-2.1 5.39z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/public_off.svg b/html/matt-chat/uswds/img/material-icons/public_off.svg
new file mode 100644
index 0000000..cfd30de
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/public_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11 8.17 6.49 3.66A9.91 9.91 0 0 1 12 2c5.52 0 10 4.48 10 10 0 2.04-.61 3.93-1.66 5.51l-1.46-1.46A7.842 7.842 0 0 0 20 12c0-3.35-2.07-6.22-5-7.41V5c0 1.1-.9 2-2 2h-2v1.17zm10.19 13.02-1.41 1.41-2.27-2.27A9.839 9.839 0 0 1 12 22C6.48 22 2 17.52 2 12c0-2.04.61-3.93 1.66-5.51L1.39 4.22 2.8 2.81l18.39 18.38zM11 18c-1.1 0-2-.9-2-2v-1l-4.79-4.79C4.08 10.79 4 11.38 4 12c0 4.08 3.05 7.44 7 7.93V18z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/publish.svg b/html/matt-chat/uswds/img/material-icons/publish.svg
new file mode 100644
index 0000000..88faf16
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/publish.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M5 4v2h14V4H5zm0 10h4v6h6v-6h4l-7-7-7 7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/published_with_changes.svg b/html/matt-chat/uswds/img/material-icons/published_with_changes.svg
new file mode 100644
index 0000000..33567fe
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/published_with_changes.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m17.66 9.53-7.07 7.07-4.24-4.24 1.41-1.41 2.83 2.83 5.66-5.66 1.41 1.41zM4 12c0-2.33 1.02-4.42 2.62-5.88L9 8.5v-6H3l2.2 2.2C3.24 6.52 2 9.11 2 12c0 5.19 3.95 9.45 9 9.95v-2.02c-3.94-.49-7-3.86-7-7.93zm18 0c0-5.19-3.95-9.45-9-9.95v2.02c3.94.49 7 3.86 7 7.93 0 2.33-1.02 4.42-2.62 5.88L15 15.5v6h6l-2.2-2.2c1.96-1.82 3.2-4.41 3.2-7.3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/punch_clock.svg b/html/matt-chat/uswds/img/material-icons/punch_clock.svg
new file mode 100644
index 0000000..1e3cbf5
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/punch_clock.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 6h-1V1H6v5H5c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zM8 3h8v3H8V3zm4 16c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5z"/><path d="M12.5 11.5h-1v2.71l1.64 1.64.71-.71-1.35-1.35z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/push_pin.svg b/html/matt-chat/uswds/img/material-icons/push_pin.svg
new file mode 100644
index 0000000..568580e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/push_pin.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill-rule="evenodd" d="M16 9V4h1c.55 0 1-.45 1-1s-.45-1-1-1H7c-.55 0-1 .45-1 1s.45 1 1 1h1v5c0 1.66-1.34 3-3 3v2h5.97v7l1 1 1-1v-7H19v-2c-1.66 0-3-1.34-3-3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/qr_code.svg b/html/matt-chat/uswds/img/material-icons/qr_code.svg
new file mode 100644
index 0000000..bc72049
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/qr_code.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 11h8V3H3v8zm2-6h4v4H5V5zM3 21h8v-8H3v8zm2-6h4v4H5v-4zm8-12v8h8V3h-8zm6 6h-4V5h4v4zm0 10h2v2h-2zm-6-6h2v2h-2zm2 2h2v2h-2zm-2 2h2v2h-2zm2 2h2v2h-2zm2-2h2v2h-2zm0-4h2v2h-2zm2 2h2v2h-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/qr_code_2.svg b/html/matt-chat/uswds/img/material-icons/qr_code_2.svg
new file mode 100644
index 0000000..4a50cb6
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/qr_code_2.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15 21h-2v-2h2v2zm-2-7h-2v5h2v-5zm8-2h-2v4h2v-4zm-2-2h-2v2h2v-2zM7 12H5v2h2v-2zm-2-2H3v2h2v-2zm7-5h2V3h-2v2zm-7.5-.5v3h3v-3h-3zM9 9H3V3h6v6zm-4.5 7.5v3h3v-3h-3zM9 21H3v-6h6v6zm7.5-16.5v3h3v-3h-3zM21 9h-6V3h6v6zm-2 10v-3h-4v2h2v3h4v-2h-2zm-2-7h-4v2h4v-2zm-4-2H7v2h2v2h2v-2h2v-2zm1-1V7h-2V5h-2v4h4zM6.75 5.25h-1.5v1.5h1.5v-1.5zm0 12h-1.5v1.5h1.5v-1.5zm12-12h-1.5v1.5h1.5v-1.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/qr_code_scanner.svg b/html/matt-chat/uswds/img/material-icons/qr_code_scanner.svg
new file mode 100644
index 0000000..c3e70ea
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/qr_code_scanner.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M9.5 6.5v3h-3v-3h3M11 5H5v6h6V5zm-1.5 9.5v3h-3v-3h3M11 13H5v6h6v-6zm6.5-6.5v3h-3v-3h3M19 5h-6v6h6V5zm-6 8h1.5v1.5H13V13zm1.5 1.5H16V16h-1.5v-1.5zM16 13h1.5v1.5H16V13zm-3 3h1.5v1.5H13V16zm1.5 1.5H16V19h-1.5v-1.5zM16 16h1.5v1.5H16V16zm1.5-1.5H19V16h-1.5v-1.5zm0 3H19V19h-1.5v-1.5zM22 7h-2V4h-3V2h5v5zm0 15v-5h-2v3h-3v2h5zM2 22h5v-2H4v-3H2v5zM2 2v5h2V4h3V2H2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/query_builder.svg b/html/matt-chat/uswds/img/material-icons/query_builder.svg
new file mode 100644
index 0000000..7d0fa77
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/query_builder.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"/><path d="M12.5 7H11v6l5.25 3.15.75-1.23-4.5-2.67z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/query_stats.svg b/html/matt-chat/uswds/img/material-icons/query_stats.svg
new file mode 100644
index 0000000..7b29439
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/query_stats.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19.88 18.47c.44-.7.7-1.51.7-2.39 0-2.49-2.01-4.5-4.5-4.5s-4.5 2.01-4.5 4.5 2.01 4.5 4.49 4.5c.88 0 1.7-.26 2.39-.7L21.58 23 23 21.58l-3.12-3.11zm-3.8.11a2.5 2.5 0 0 1 0-5 2.5 2.5 0 0 1 0 5zm-.36-8.5c-.74.02-1.45.18-2.1.45l-.55-.83-3.8 6.18-3.01-3.52-3.63 5.81L1 17l5-8 3 3.5L13 6l2.72 4.08zm2.59.5c-.64-.28-1.33-.45-2.05-.49L21.38 2 23 3.18l-4.69 7.4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/question_answer.svg b/html/matt-chat/uswds/img/material-icons/question_answer.svg
new file mode 100644
index 0000000..8c958d9
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/question_answer.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 6h-2v9H6v2c0 .55.45 1 1 1h11l4 4V7c0-.55-.45-1-1-1zm-4 6V3c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v14l4-4h10c.55 0 1-.45 1-1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/question_mark.svg b/html/matt-chat/uswds/img/material-icons/question_mark.svg
new file mode 100644
index 0000000..e2993e7
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/question_mark.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11.07 12.85c.77-1.39 2.25-2.21 3.11-3.44.91-1.29.4-3.7-2.18-3.7-1.69 0-2.52 1.28-2.87 2.34L6.54 6.96C7.25 4.83 9.18 3 11.99 3c2.35 0 3.96 1.07 4.78 2.41.7 1.15 1.11 3.3.03 4.9-1.2 1.77-2.35 2.31-2.97 3.45-.25.46-.35.76-.35 2.24h-2.89c-.01-.78-.13-2.05.48-3.15zM14 20c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2 2 .9 2 2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/queue.svg b/html/matt-chat/uswds/img/material-icons/queue.svg
new file mode 100644
index 0000000..baea3e9
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/queue.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6zm16-4H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-1 9h-4v4h-2v-4H9V9h4V5h2v4h4v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/queue_music.svg b/html/matt-chat/uswds/img/material-icons/queue_music.svg
new file mode 100644
index 0000000..5fed92b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/queue_music.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15 6H3v2h12V6zm0 4H3v2h12v-2zM3 16h8v-2H3v2zM17 6v8.18c-.31-.11-.65-.18-1-.18-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3V8h3V6h-5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/queue_play_next.svg b/html/matt-chat/uswds/img/material-icons/queue_play_next.svg
new file mode 100644
index 0000000..9ebf8fe
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/queue_play_next.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 3H3c-1.11 0-2 .89-2 2v12a2 2 0 0 0 2 2h5v2h8v-2h2v-2H3V5h18v8h2V5a2 2 0 0 0-2-2zm-8 7V7h-2v3H8v2h3v3h2v-3h3v-2h-3zm11 8-4.5 4.5L18 21l3-3-3-3 1.5-1.5L24 18z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/quickreply.svg b/html/matt-chat/uswds/img/material-icons/quickreply.svg
new file mode 100644
index 0000000..657fa71
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/quickreply.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M22 4c0-1.1-.9-2-2-2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h9v-8h7V4z"/><path d="M22.5 16h-2.2l1.7-4h-5v6h2v5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/quiz.svg b/html/matt-chat/uswds/img/material-icons/quiz.svg
new file mode 100644
index 0000000..3ec4688
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/quiz.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6z"/><path d="M20 2H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-5.99 13c-.59 0-1.05-.47-1.05-1.05 0-.59.47-1.04 1.05-1.04.59 0 1.04.45 1.04 1.04-.01.58-.45 1.05-1.04 1.05zm2.5-6.17c-.63.93-1.23 1.21-1.56 1.81-.13.24-.18.4-.18 1.18h-1.52c0-.41-.06-1.08.26-1.65.41-.73 1.18-1.16 1.63-1.8.48-.68.21-1.94-1.14-1.94-.88 0-1.32.67-1.5 1.23l-1.37-.57C11.51 5.96 12.52 5 13.99 5c1.23 0 2.08.56 2.51 1.26.37.61.58 1.73.01 2.57z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/r_mobiledata.svg b/html/matt-chat/uswds/img/material-icons/r_mobiledata.svg
new file mode 100644
index 0000000..743d975
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/r_mobiledata.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M7.8 7.2 9 10H7L5.87 7.33H4V10H2V2h5c1.13 0 2 .87 2 2v1.33c0 .8-.53 1.54-1.2 1.87zM7 4H4v1.33h3V4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/radar.svg b/html/matt-chat/uswds/img/material-icons/radar.svg
new file mode 100644
index 0000000..2d6b994
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/radar.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19.74 18.33A9.984 9.984 0 0 0 22 12c0-5.52-4.48-10-10-10S2 6.48 2 12s4.48 10 10 10a9.984 9.984 0 0 0 7.11-2.97c.03-.03.05-.06.07-.08.2-.2.39-.41.56-.62zM12 20c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8c0 1.85-.63 3.54-1.69 4.9l-1.43-1.43c.69-.98 1.1-2.17 1.1-3.46 0-3.31-2.69-6-6-6s-6 2.69-6 6 2.69 6 6 6c1.3 0 2.51-.42 3.49-1.13l1.42 1.42A7.822 7.822 0 0 1 12 20zm1.92-7.49c.17-.66.02-1.38-.49-1.9l-.02-.02c-.77-.77-2-.78-2.78-.04-.01.01-.03.02-.05.04-.78.78-.78 2.05 0 2.83l.02.02c.52.51 1.25.67 1.91.49l1.51 1.51c-.6.36-1.29.58-2.04.58-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4c0 .73-.21 1.41-.56 2l-1.5-1.51z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/radio.svg b/html/matt-chat/uswds/img/material-icons/radio.svg
new file mode 100644
index 0000000..e9ad32e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/radio.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3.24 6.15C2.51 6.43 2 7.17 2 8v12a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V8c0-1.11-.89-2-2-2H8.3l8.26-3.34L15.88 1 3.24 6.15zM7 20c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3zm13-8h-2v-2h-2v2H4V8h16v4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/radio_button_checked.svg b/html/matt-chat/uswds/img/material-icons/radio_button_checked.svg
new file mode 100644
index 0000000..2cb138b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/radio_button_checked.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 7c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5zm0-5C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/radio_button_unchecked.svg b/html/matt-chat/uswds/img/material-icons/radio_button_unchecked.svg
new file mode 100644
index 0000000..acce6d1
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/radio_button_unchecked.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/railway_alert.svg b/html/matt-chat/uswds/img/material-icons/railway_alert.svg
new file mode 100644
index 0000000..ce7c2c3
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/railway_alert.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M23 8a7 7 0 0 0-11.95-4.95A33.8 33.8 0 0 0 9 3c-4.42 0-8 .5-8 4v10.5A3.5 3.5 0 0 0 4.5 21L3 22.5v.5h12v-.5L13.5 21a3.5 3.5 0 0 0 3.5-3.5v-2.58A7 7 0 0 0 23 8zM3 12V7h6.08a6.96 6.96 0 0 0 1.18 5H3zm6 7c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm7.71-6.06-.2.03L16 13l-.47-.02-.16-.02-.29-.04-.2-.04-.22-.06a1.55 1.55 0 0 1-.23-.07l-.13-.05A4.99 4.99 0 0 1 11.1 7c.04-.19.09-.37.15-.54l.05-.14.15-.38.07-.15.2-.36.07-.12.3-.42.02-.02c.24-.3.52-.57.82-.81l.01-.01.46-.32.03-.02A5.25 5.25 0 0 1 16 3a5 5 0 0 1 .71 9.94zM15 4h2v5h-2zm0 6h2v2h-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/ramen_dining.svg b/html/matt-chat/uswds/img/material-icons/ramen_dining.svg
new file mode 100644
index 0000000..a7687d5
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/ramen_dining.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M9 6H8V4.65l1-.12V6zm0 6H8V7h1v5zM6 7h1v5H6V7zm0-2.12 1-.12V6H6V4.88zM22 3V2L5 4v8H2c0 3.69 2.47 6.86 6 8.25V22h8v-1.75c3.53-1.39 6-4.56 6-8.25H10V7h12V6H10V4.41L22 3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/ramp_left.svg b/html/matt-chat/uswds/img/material-icons/ramp_left.svg
new file mode 100644
index 0000000..3576066
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/ramp_left.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13 21h-2V6.83L9.41 8.41 8 7l4-4 4 4-1.41 1.41L13 6.83V9c0 4.27 4.03 7.13 6 8.27l-1.46 1.46c-1.91-1.16-3.44-2.53-4.54-4.02V21z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/ramp_right.svg b/html/matt-chat/uswds/img/material-icons/ramp_right.svg
new file mode 100644
index 0000000..745d315
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/ramp_right.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11 21h2V6.83l1.59 1.59L16 7l-4-4-4 4 1.41 1.41L11 6.83V9c0 4.27-4.03 7.13-6 8.27l1.46 1.46C8.37 17.56 9.9 16.19 11 14.7V21z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/rate_review.svg b/html/matt-chat/uswds/img/material-icons/rate_review.svg
new file mode 100644
index 0000000..ce447b6
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/rate_review.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM6 14v-2.47l6.88-6.88c.2-.2.51-.2.71 0l1.77 1.77c.2.2.2.51 0 .71L8.47 14H6zm12 0h-7.5l2-2H18v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/raw_off.svg b/html/matt-chat/uswds/img/material-icons/raw_off.svg
new file mode 100644
index 0000000..8e4354c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/raw_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m17.15 14.32.59-2.36.76 3.04h1.48l1.5-6h-1.5l-.74 3-.74-3h-1.52l-.74 3-.74-3H14l.72 2.9zM1.39 4.22 6.17 9H3v6h1.5v-2h1.1l.9 2H8l-.9-2.1c.5-.3.9-.8.9-1.4v-.67l1.43 1.43L8.75 15h1.5l.38-1.5h.04l9.11 9.11 1.41-1.41L2.81 2.81 1.39 4.22zM6.5 11.5h-2v-1h2v1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/raw_on.svg b/html/matt-chat/uswds/img/material-icons/raw_on.svg
new file mode 100644
index 0000000..b3c0ce6
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/raw_on.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M6.5 9H3v6h1.5v-2h1.1l.9 2H8l-.9-2.1c.5-.3.9-.8.9-1.4v-1C8 9.7 7.3 9 6.5 9zm0 2.5h-2v-1h2v1zM10.25 9l-1.5 6h1.5l.38-1.5h1.75l.37 1.5h1.5l-1.5-6h-2.5zm.75 3 .25-1h.5l.25 1h-1zm8.98-3-.74 3-.74-3h-1.52l-.74 3-.74-3H14l1.5 6h1.48l.76-3.04.76 3.04h1.48l1.5-6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/read_more.svg b/html/matt-chat/uswds/img/material-icons/read_more.svg
new file mode 100644
index 0000000..b42d4cc
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/read_more.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13 7h9v2h-9zm0 8h9v2h-9zm3-4h6v2h-6zm-3 1L8 7v4H2v2h6v4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/real_estate_agent.svg b/html/matt-chat/uswds/img/material-icons/real_estate_agent.svg
new file mode 100644
index 0000000..1a32ffd
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/real_estate_agent.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M1 22h4V11H1v11zm19-5h-7l-2.09-.73.33-.94L13 16h2.82c.65 0 1.18-.53 1.18-1.18 0-.49-.31-.93-.77-1.11L8.97 11H7v9.02L14 22l8-3c-.01-1.1-.89-2-2-2zM14 1.5l-7 5V9h2l8.14 3.26C18.26 12.71 19 13.79 19 15h2V6.5l-7-5zm-.5 8.5h-1V9h1v1zm0-2h-1V7h1v1zm2 2h-1V9h1v1zm0-2h-1V7h1v1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/receipt.svg b/html/matt-chat/uswds/img/material-icons/receipt.svg
new file mode 100644
index 0000000..1357bbd
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/receipt.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 17H6v-2h12v2zm0-4H6v-2h12v2zm0-4H6V7h12v2zM3 22l1.5-1.5L6 22l1.5-1.5L9 22l1.5-1.5L12 22l1.5-1.5L15 22l1.5-1.5L18 22l1.5-1.5L21 22V2l-1.5 1.5L18 2l-1.5 1.5L15 2l-1.5 1.5L12 2l-1.5 1.5L9 2 7.5 3.5 6 2 4.5 3.5 3 2v20z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/receipt_long.svg b/html/matt-chat/uswds/img/material-icons/receipt_long.svg
new file mode 100644
index 0000000..0c5bdc0
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/receipt_long.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19.5 3.5 18 2l-1.5 1.5L15 2l-1.5 1.5L12 2l-1.5 1.5L9 2 7.5 3.5 6 2v14H3v3c0 1.66 1.34 3 3 3h12c1.66 0 3-1.34 3-3V2l-1.5 1.5zM19 19c0 .55-.45 1-1 1s-1-.45-1-1v-3H8V5h11v14z"/><path d="M9 7h6v2H9zm7 0h2v2h-2zm-7 3h6v2H9zm7 0h2v2h-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/recent_actors.svg b/html/matt-chat/uswds/img/material-icons/recent_actors.svg
new file mode 100644
index 0000000..f1d8deb
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/recent_actors.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 5v14h2V5h-2zm-4 14h2V5h-2v14zM14 5H2c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1zM8 7.75c1.24 0 2.25 1.01 2.25 2.25S9.24 12.25 8 12.25 5.75 11.24 5.75 10 6.76 7.75 8 7.75zM12.5 17h-9v-.75c0-1.5 3-2.25 4.5-2.25s4.5.75 4.5 2.25V17z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/recommend.svg b/html/matt-chat/uswds/img/material-icons/recommend.svg
new file mode 100644
index 0000000..a4192bf
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/recommend.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2a10 10 0 1 0 10 10A10 10 0 0 0 12 2zm6 9.8a.9.9 0 0 1-.1.5l-2.1 4.9a1.34 1.34 0 0 1-1.3.8H9a2 2 0 0 1-2-2v-5a1.28 1.28 0 0 1 .4-1L12 5l.69.69a1.08 1.08 0 0 1 .3.7v.2L12.41 10H17a1 1 0 0 1 1 1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/record_voice_over.svg b/html/matt-chat/uswds/img/material-icons/record_voice_over.svg
new file mode 100644
index 0000000..8699d83
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/record_voice_over.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><circle cx="9" cy="9" r="4"/><path d="M9 15c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4zm7.76-9.64-1.68 1.69c.84 1.18.84 2.71 0 3.89l1.68 1.69c2.02-2.02 2.02-5.07 0-7.27zM20.07 2l-1.63 1.63c2.77 3.02 2.77 7.56 0 10.74L20.07 16c3.9-3.89 3.91-9.95 0-14z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/rectangle.svg b/html/matt-chat/uswds/img/material-icons/rectangle.svg
new file mode 100644
index 0000000..afb1efc
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/rectangle.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M2 4h20v16H2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/recycling.svg b/html/matt-chat/uswds/img/material-icons/recycling.svg
new file mode 100644
index 0000000..8aa9a1f
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/recycling.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M5.77 7.15 7.2 4.78l1.03-1.71c.39-.65 1.33-.65 1.72 0l1.48 2.46-1.23 2.06-1 1.62-3.43-2.06zm15.95 5.82-1.6-2.66-3.46 2L18.87 16H20a2 2 0 0 0 2-2c0-.36-.1-.71-.28-1.03zM16 21h1.5a2 2 0 0 0 1.79-1.11L20.74 17H16v-2l-4 4 4 4v-2zm-6-4H5.7l-.84 1.41c-.3.5-.32 1.12-.06 1.65.28.57.87.94 1.52.94H10v-4zm-3.88-2.65 1.73 1.04L6.48 9.9 1 11.27l1.7 1.02-.41.69c-.35.59-.38 1.31-.07 1.92l1.63 3.26 2.27-3.81zm10.9-9.21-1.3-2.17C15.35 2.37 14.7 2 14 2h-3.53l3.12 5.2-1.72 1.03 5.49 1.37 1.37-5.49-1.71 1.03z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/redeem.svg b/html/matt-chat/uswds/img/material-icons/redeem.svg
new file mode 100644
index 0000000..3e55372
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/redeem.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 6h-2.18c.11-.31.18-.65.18-1a2.996 2.996 0 0 0-5.5-1.65l-.5.67-.5-.68C10.96 2.54 10.05 2 9 2 7.34 2 6 3.34 6 5c0 .35.07.69.18 1H4c-1.11 0-1.99.89-1.99 2L2 19c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2zm-5-2c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zM9 4c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm11 15H4v-2h16v2zm0-5H4V8h5.08L7 10.83 8.62 12 11 8.76l1-1.36 1 1.36L15.38 12 17 10.83 14.92 8H20v6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/redo.svg b/html/matt-chat/uswds/img/material-icons/redo.svg
new file mode 100644
index 0000000..abc46f7
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/redo.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18.4 10.6C16.55 8.99 14.15 8 11.5 8c-4.65 0-8.58 3.03-9.96 7.22L3.9 16a8.002 8.002 0 0 1 7.6-5.5c1.95 0 3.73.72 5.12 1.88L13 16h9V7l-3.6 3.6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/reduce_capacity.svg b/html/matt-chat/uswds/img/material-icons/reduce_capacity.svg
new file mode 100644
index 0000000..377cc47
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/reduce_capacity.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16 4c0-1.1.9-2 2-2s2 .9 2 2-.9 2-2 2-2-.9-2-2zm4.78 3.58A6.95 6.95 0 0 0 18 7c-.67 0-1.31.1-1.92.28.58.55.92 1.32.92 2.15V10h5v-.57c0-.81-.48-1.53-1.22-1.85zM6 6c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm1.92 1.28C7.31 7.1 6.67 7 6 7c-.99 0-1.93.21-2.78.58A2.01 2.01 0 0 0 2 9.43V10h5v-.57c0-.83.34-1.6.92-2.15zM10 4c0-1.1.9-2 2-2s2 .9 2 2-.9 2-2 2-2-.9-2-2zm6 6H8v-.57c0-.81.48-1.53 1.22-1.85a6.95 6.95 0 0 1 5.56 0A2.01 2.01 0 0 1 16 9.43V10zm-1 6c0-1.1.9-2 2-2s2 .9 2 2-.9 2-2 2-2-.9-2-2zm6 6h-8v-.57c0-.81.48-1.53 1.22-1.85a6.95 6.95 0 0 1 5.56 0A2.01 2.01 0 0 1 21 21.43V22zM5 16c0-1.1.9-2 2-2s2 .9 2 2-.9 2-2 2-2-.9-2-2zm6 6H3v-.57c0-.81.48-1.53 1.22-1.85a6.95 6.95 0 0 1 5.56 0A2.01 2.01 0 0 1 11 21.43V22zm1.75-9v-2h-1.5v2H9l3 3 3-3h-2.25z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/refresh.svg b/html/matt-chat/uswds/img/material-icons/refresh.svg
new file mode 100644
index 0000000..217df88
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/refresh.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17.65 6.35A7.958 7.958 0 0 0 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08A5.99 5.99 0 0 1 12 18c-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4l-2.35 2.35z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/remember_me.svg b/html/matt-chat/uswds/img/material-icons/remember_me.svg
new file mode 100644
index 0000000..91ce95e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/remember_me.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 1H7c-1.1 0-2 .9-2 2v18c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 14.21c-1.5-.77-3.2-1.21-5-1.21s-3.5.44-5 1.21V6h10v9.21z"/><circle cx="12" cy="10" r="3"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/remove.svg b/html/matt-chat/uswds/img/material-icons/remove.svg
new file mode 100644
index 0000000..9128833
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/remove.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 13H5v-2h14v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/remove_circle.svg b/html/matt-chat/uswds/img/material-icons/remove_circle.svg
new file mode 100644
index 0000000..0f978ec
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/remove_circle.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm5 11H7v-2h10v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/remove_circle_outline.svg b/html/matt-chat/uswds/img/material-icons/remove_circle_outline.svg
new file mode 100644
index 0000000..d35e183
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/remove_circle_outline.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M7 11v2h10v-2H7zm5-9C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/remove_done.svg b/html/matt-chat/uswds/img/material-icons/remove_done.svg
new file mode 100644
index 0000000..49d026e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/remove_done.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m1.79 12 5.58 5.59L5.96 19 .37 13.41 1.79 12zm.45-7.78L12.9 14.89l-1.28 1.28L7.44 12l-1.41 1.41L11.62 19l2.69-2.69 4.89 4.89 1.41-1.41L3.65 2.81 2.24 4.22zm14.9 9.27L23.62 7 22.2 5.59l-6.48 6.48 1.42 1.42zM17.96 7l-1.41-1.41-3.65 3.66 1.41 1.41L17.96 7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/remove_from_queue.svg b/html/matt-chat/uswds/img/material-icons/remove_from_queue.svg
new file mode 100644
index 0000000..b5641ed
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/remove_from_queue.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 3H3c-1.11 0-2 .89-2 2v12a2 2 0 0 0 2 2h5v2h8v-2h5c1.1 0 1.99-.9 1.99-2L23 5a2 2 0 0 0-2-2zm0 14H3V5h18v12zm-5-7v2H8v-2h8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/remove_moderator.svg b/html/matt-chat/uswds/img/material-icons/remove_moderator.svg
new file mode 100644
index 0000000..199ae92
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/remove_moderator.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m22.27 21.73-3.54-3.55L5.78 5.23 2.27 1.72 1 2.99 3.01 5H3v6c0 5.55 3.84 10.74 9 12 2.16-.53 4.08-1.76 5.6-3.41L21 23l1.27-1.27zM13 9.92l6.67 6.67C20.51 14.87 21 12.96 21 11V5l-9-4-5.48 2.44L11 7.92l2 2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/remove_red_eye.svg b/html/matt-chat/uswds/img/material-icons/remove_red_eye.svg
new file mode 100644
index 0000000..5c700e3
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/remove_red_eye.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/remove_road.svg b/html/matt-chat/uswds/img/material-icons/remove_road.svg
new file mode 100644
index 0000000..68c98ef
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/remove_road.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 4h2v9h-2zM4 4h2v16H4zm7 0h2v4h-2zm0 6h2v4h-2zm0 6h2v4h-2zm11.5.41L21.09 15 19 17.09 16.91 15l-1.41 1.41 2.09 2.09-2.09 2.09L16.91 22 19 19.91 21.09 22l1.41-1.41-2.09-2.09z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/remove_shopping_cart.svg b/html/matt-chat/uswds/img/material-icons/remove_shopping_cart.svg
new file mode 100644
index 0000000..531f0c5
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/remove_shopping_cart.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M22.73 22.73 2.77 2.77 2 2l-.73-.73L0 2.54l4.39 4.39 2.21 4.66-1.35 2.45c-.16.28-.25.61-.25.96 0 1.1.9 2 2 2h7.46l1.38 1.38A1.997 1.997 0 0 0 17 22c.67 0 1.26-.33 1.62-.84L21.46 24l1.27-1.27zM7.42 15c-.14 0-.25-.11-.25-.25l.03-.12.9-1.63h2.36l2 2H7.42zm8.13-2c.75 0 1.41-.41 1.75-1.03l3.58-6.49A1.003 1.003 0 0 0 20 4H6.54l9.01 9zM7 18c-1.1 0-1.99.9-1.99 2S5.9 22 7 22s2-.9 2-2-.9-2-2-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/reorder.svg b/html/matt-chat/uswds/img/material-icons/reorder.svg
new file mode 100644
index 0000000..7f277b8
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/reorder.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 15h18v-2H3v2zm0 4h18v-2H3v2zm0-8h18V9H3v2zm0-6v2h18V5H3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/repartition.svg b/html/matt-chat/uswds/img/material-icons/repartition.svg
new file mode 100644
index 0000000..9178a93
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/repartition.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 21h18v-6H3v6zm7.33-2v-2h3.33v2h-3.33zM19 19h-3.33v-2H19v2zM5 17h3.33v2H5v-2zm1-7 1.42-1.42L5.83 7H17c1.1 0 2 .9 2 2s-.9 2-2 2H3v2h14c2.21 0 4-1.79 4-4s-1.79-4-4-4H5.83l1.59-1.59L6 2 2 6l4 4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/repeat.svg b/html/matt-chat/uswds/img/material-icons/repeat.svg
new file mode 100644
index 0000000..6c58d4e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/repeat.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M7 7h10v3l4-4-4-4v3H5v6h2V7zm10 10H7v-3l-4 4 4 4v-3h12v-6h-2v4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/repeat_on.svg b/html/matt-chat/uswds/img/material-icons/repeat_on.svg
new file mode 100644
index 0000000..0ae4c6e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/repeat_on.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill-rule="evenodd" d="M21 1H3c-1.1 0-2 .9-2 2v18c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zM7 7h10v3l4-4-4-4v3H5v6h2V7zm10 10H7v-3l-4 4 4 4v-3h12v-6h-2v4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/repeat_one.svg b/html/matt-chat/uswds/img/material-icons/repeat_one.svg
new file mode 100644
index 0000000..fcc3d14
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/repeat_one.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M7 7h10v3l4-4-4-4v3H5v6h2V7zm10 10H7v-3l-4 4 4 4v-3h12v-6h-2v4zm-4-2V9h-1l-2 1v1h1.5v4H13z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/repeat_one_on.svg b/html/matt-chat/uswds/img/material-icons/repeat_one_on.svg
new file mode 100644
index 0000000..017cad9
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/repeat_one_on.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill-rule="evenodd" d="M21 1H3c-1.1 0-2 .9-2 2v18c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zM7 7h10v3l4-4-4-4v3H5v6h2V7zm10 10H7v-3l-4 4 4 4v-3h12v-6h-2v4zm-4-2V9h-1l-2 1v1h1.5v4H13z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/replay.svg b/html/matt-chat/uswds/img/material-icons/replay.svg
new file mode 100644
index 0000000..c3c75e7
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/replay.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 5V1L7 6l5 5V7c3.31 0 6 2.69 6 6s-2.69 6-6 6-6-2.69-6-6H4c0 4.42 3.58 8 8 8s8-3.58 8-8-3.58-8-8-8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/replay_10.svg b/html/matt-chat/uswds/img/material-icons/replay_10.svg
new file mode 100644
index 0000000..db36103
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/replay_10.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11.99 5V1l-5 5 5 5V7c3.31 0 6 2.69 6 6s-2.69 6-6 6-6-2.69-6-6h-2c0 4.42 3.58 8 8 8s8-3.58 8-8-3.58-8-8-8z"/><path d="M10.89 16h-.85v-3.26l-1.01.31v-.69l1.77-.63h.09V16zm4.28-1.76c0 .32-.03.6-.1.82s-.17.42-.29.57-.28.26-.45.33-.37.1-.59.1-.41-.03-.59-.1-.33-.18-.46-.33-.23-.34-.3-.57-.11-.5-.11-.82v-.74c0-.32.03-.6.1-.82s.17-.42.29-.57.28-.26.45-.33.37-.1.59-.1.41.03.59.1.33.18.46.33.23.34.3.57.11.5.11.82v.74zm-.85-.86c0-.19-.01-.35-.04-.48s-.07-.23-.12-.31-.11-.14-.19-.17-.16-.05-.25-.05-.18.02-.25.05-.14.09-.19.17-.09.18-.12.31-.04.29-.04.48v.97c0 .19.01.35.04.48s.07.24.12.32.11.14.19.17.16.05.25.05.18-.02.25-.05.14-.09.19-.17.09-.19.11-.32.04-.29.04-.48v-.97z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/replay_30.svg b/html/matt-chat/uswds/img/material-icons/replay_30.svg
new file mode 100644
index 0000000..ace33f1
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/replay_30.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 5V1L7 6l5 5V7c3.31 0 6 2.69 6 6s-2.69 6-6 6-6-2.69-6-6H4c0 4.42 3.58 8 8 8s8-3.58 8-8-3.58-8-8-8z"/><path d="M9.56 13.49h.45c.21 0 .37-.05.48-.16s.16-.25.16-.43a.538.538 0 0 0-.15-.39c-.05-.05-.11-.09-.18-.11s-.16-.04-.25-.04c-.08 0-.15.01-.22.03s-.13.05-.18.1-.09.09-.12.15-.05.13-.05.2h-.85a1.06 1.06 0 0 1 .41-.85c.13-.1.27-.18.44-.23s.35-.08.54-.08c.21 0 .41.03.59.08s.33.13.46.23.23.23.3.38.11.33.11.53a.842.842 0 0 1-.17.52 1.1 1.1 0 0 1-.48.39c.24.09.42.21.54.39s.18.38.18.61c0 .2-.04.38-.12.53s-.18.29-.32.39-.29.19-.48.24-.38.08-.6.08c-.18 0-.36-.02-.53-.07s-.33-.12-.46-.23-.25-.23-.33-.38-.12-.34-.12-.55h.85c0 .08.02.15.05.22s.07.12.13.17.12.09.2.11.16.04.25.04c.1 0 .19-.01.27-.04s.15-.07.2-.12.1-.11.13-.18.04-.15.04-.24c0-.11-.02-.21-.05-.29s-.08-.15-.14-.2-.13-.09-.22-.11-.18-.04-.29-.04h-.47v-.65zm5.74.75c0 .32-.03.6-.1.82s-.17.42-.29.57-.28.26-.45.33-.37.1-.59.1-.41-.03-.59-.1-.33-.18-.46-.33-.23-.34-.3-.57-.11-.5-.11-.82v-.74c0-.32.03-.6.1-.82s.17-.42.29-.57.28-.26.45-.33.37-.1.59-.1.41.03.59.1.33.18.46.33.23.34.3.57.11.5.11.82v.74zm-.85-.86c0-.19-.01-.35-.04-.48s-.07-.23-.12-.31-.11-.14-.19-.17-.16-.05-.25-.05-.18.02-.25.05-.14.09-.19.17-.09.18-.12.31-.04.29-.04.48v.97c0 .19.01.35.04.48s.07.24.12.32.11.14.19.17.16.05.25.05.18-.02.25-.05.14-.09.19-.17.09-.19.11-.32c.03-.13.04-.29.04-.48v-.97z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/replay_5.svg b/html/matt-chat/uswds/img/material-icons/replay_5.svg
new file mode 100644
index 0000000..45a0407
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/replay_5.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 5V1L7 6l5 5V7c3.31 0 6 2.69 6 6s-2.69 6-6 6-6-2.69-6-6H4c0 4.42 3.58 8 8 8s8-3.58 8-8-3.58-8-8-8z"/><path d="m10.69 13.9.25-2.17h2.39v.71h-1.7l-.11.92c.03-.02.07-.03.11-.05s.09-.04.15-.05.12-.03.18-.04.13-.02.2-.02c.21 0 .39.03.55.1s.3.16.41.28.2.27.25.45.09.38.09.6c0 .19-.03.37-.09.54s-.15.32-.27.45-.27.24-.45.31-.39.12-.64.12c-.18 0-.36-.03-.53-.08s-.32-.14-.46-.24-.24-.24-.32-.39-.13-.33-.13-.53h.84c.02.18.08.32.19.41s.25.15.42.15a.49.49 0 0 0 .45-.23c.04-.07.08-.15.11-.25s.03-.2.03-.31-.01-.21-.04-.31-.07-.17-.13-.24-.13-.12-.21-.15-.19-.05-.3-.05c-.08 0-.15.01-.2.02s-.11.03-.15.05-.08.05-.12.07-.07.06-.1.09l-.67-.16z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/replay_circle_filled.svg b/html/matt-chat/uswds/img/material-icons/replay_circle_filled.svg
new file mode 100644
index 0000000..209f40c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/replay_circle_filled.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill-rule="evenodd" d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm6 10c0 3.31-2.69 6-6 6s-6-2.69-6-6h2c0 2.21 1.79 4 4 4s4-1.79 4-4-1.79-4-4-4v3L8 7l4-4v3c3.31 0 6 2.69 6 6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/reply.svg b/html/matt-chat/uswds/img/material-icons/reply.svg
new file mode 100644
index 0000000..65c02ca
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/reply.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10 9V5l-7 7 7 7v-4.1c5 0 8.5 1.6 11 5.1-1-5-4-10-11-11z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/reply_all.svg b/html/matt-chat/uswds/img/material-icons/reply_all.svg
new file mode 100644
index 0000000..5c90b4b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/reply_all.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M7 8V5l-7 7 7 7v-3l-4-4 4-4zm6 1V5l-7 7 7 7v-4.1c5 0 8.5 1.6 11 5.1-1-5-4-10-11-11z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/report.svg b/html/matt-chat/uswds/img/material-icons/report.svg
new file mode 100644
index 0000000..d09adbb
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/report.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15.73 3H8.27L3 8.27v7.46L8.27 21h7.46L21 15.73V8.27L15.73 3zM12 17.3c-.72 0-1.3-.58-1.3-1.3 0-.72.58-1.3 1.3-1.3.72 0 1.3.58 1.3 1.3 0 .72-.58 1.3-1.3 1.3zm1-4.3h-2V7h2v6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/report_gmailerrorred.svg b/html/matt-chat/uswds/img/material-icons/report_gmailerrorred.svg
new file mode 100644
index 0000000..da98d27
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/report_gmailerrorred.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15.73 3H8.27L3 8.27v7.46L8.27 21h7.46L21 15.73V8.27L15.73 3zM19 14.9 14.9 19H9.1L5 14.9V9.1L9.1 5h5.8L19 9.1v5.8z"/><path d="M11 7h2v6h-2zm0 8h2v2h-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/report_off.svg b/html/matt-chat/uswds/img/material-icons/report_off.svg
new file mode 100644
index 0000000..663ee4e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/report_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11 7h2v2.92l6.91 6.91 1.09-1.1V8.27L15.73 3H8.27L7.18 4.1 11 7.92zm11.27 14.73-20-20.01L1 2.99l3.64 3.64L3 8.27v7.46L8.27 21h7.46l1.64-1.63L21 23l1.27-1.27zM12 17.3c-.72 0-1.3-.58-1.3-1.3s.58-1.3 1.3-1.3 1.3.58 1.3 1.3-.58 1.3-1.3 1.3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/report_problem.svg b/html/matt-chat/uswds/img/material-icons/report_problem.svg
new file mode 100644
index 0000000..dfcf997
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/report_problem.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/request_page.svg b/html/matt-chat/uswds/img/material-icons/request_page.svg
new file mode 100644
index 0000000..b447aaf
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/request_page.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M14 2H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V8l-6-6zm1 9h-4v1h3c.55 0 1 .45 1 1v3c0 .55-.45 1-1 1h-1v1h-2v-1H9v-2h4v-1h-3c-.55 0-1-.45-1-1v-3c0-.55.45-1 1-1h1V8h2v1h2v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/request_quote.svg b/html/matt-chat/uswds/img/material-icons/request_quote.svg
new file mode 100644
index 0000000..2156ec2
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/request_quote.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm1 10h-4v1h3c.55 0 1 .45 1 1v3c0 .55-.45 1-1 1h-1v1h-2v-1H9v-2h4v-1h-3c-.55 0-1-.45-1-1v-3c0-.55.45-1 1-1h1V9h2v1h2v2zm-2-4V3.5L17.5 8H13z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/reset_tv.svg b/html/matt-chat/uswds/img/material-icons/reset_tv.svg
new file mode 100644
index 0000000..4c0cdcb
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/reset_tv.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 10h-8.01V7L9 11l3.99 4v-3H21v5H3V5h18v3h2V5c0-1.1-.9-2-2-2H3c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h5v2h8v-2h5c1.1 0 1.99-.9 1.99-2v-5H23c0-1.1-.9-2-2-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/restart_alt.svg b/html/matt-chat/uswds/img/material-icons/restart_alt.svg
new file mode 100644
index 0000000..6c59c4d
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/restart_alt.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 5V2L8 6l4 4V7c3.31 0 6 2.69 6 6 0 2.97-2.17 5.43-5 5.91v2.02c3.95-.49 7-3.85 7-7.93 0-4.42-3.58-8-8-8zm-6 8c0-1.65.67-3.15 1.76-4.24L6.34 7.34A8.014 8.014 0 0 0 4 13c0 4.08 3.05 7.44 7 7.93v-2.02c-2.83-.48-5-2.94-5-5.91z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/restaurant.svg b/html/matt-chat/uswds/img/material-icons/restaurant.svg
new file mode 100644
index 0000000..70830b0
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/restaurant.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11 9H9V2H7v7H5V2H3v7c0 2.12 1.66 3.84 3.75 3.97V22h2.5v-9.03C11.34 12.84 13 11.12 13 9V2h-2v7zm5-3v8h2.5v8H21V2c-2.76 0-5 2.24-5 4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/restaurant_menu.svg b/html/matt-chat/uswds/img/material-icons/restaurant_menu.svg
new file mode 100644
index 0000000..bcf0100
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/restaurant_menu.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m8.1 13.34 2.83-2.83L3.91 3.5a4.008 4.008 0 0 0 0 5.66l4.19 4.18zm6.78-1.81c1.53.71 3.68.21 5.27-1.38 1.91-1.91 2.28-4.65.81-6.12-1.46-1.46-4.2-1.1-6.12.81-1.59 1.59-2.09 3.74-1.38 5.27L3.7 19.87l1.41 1.41L12 14.41l6.88 6.88 1.41-1.41L13.41 13l1.47-1.47z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/restore.svg b/html/matt-chat/uswds/img/material-icons/restore.svg
new file mode 100644
index 0000000..f8f018c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/restore.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13 3a9 9 0 0 0-9 9H1l3.89 3.89.07.14L9 12H6c0-3.87 3.13-7 7-7s7 3.13 7 7-3.13 7-7 7c-1.93 0-3.68-.79-4.94-2.06l-1.42 1.42A8.954 8.954 0 0 0 13 21a9 9 0 0 0 0-18zm-1 5v5l4.28 2.54.72-1.21-3.5-2.08V8H12z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/restore_from_trash.svg b/html/matt-chat/uswds/img/material-icons/restore_from_trash.svg
new file mode 100644
index 0000000..a4ed0e9
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/restore_from_trash.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 4h-3.5l-1-1h-5l-1 1H5v2h14zM6 7v12c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6zm8 7v4h-4v-4H8l4-4 4 4h-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/restore_page.svg b/html/matt-chat/uswds/img/material-icons/restore_page.svg
new file mode 100644
index 0000000..f0f5ca3
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/restore_page.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm-2 16c-2.05 0-3.81-1.24-4.58-3h1.71c.63.9 1.68 1.5 2.87 1.5 1.93 0 3.5-1.57 3.5-3.5S13.93 9.5 12 9.5a3.5 3.5 0 0 0-3.1 1.9l1.6 1.6h-4V9l1.3 1.3C8.69 8.92 10.23 8 12 8c2.76 0 5 2.24 5 5s-2.24 5-5 5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/reviews.svg b/html/matt-chat/uswds/img/material-icons/reviews.svg
new file mode 100644
index 0000000..1d5892c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/reviews.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 2H4c-1.1 0-2 .9-2 2v18l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-6.43 9.57L12 15l-1.57-3.43L7 10l3.43-1.57L12 5l1.57 3.43L17 10l-3.43 1.57z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/rice_bowl.svg b/html/matt-chat/uswds/img/material-icons/rice_bowl.svg
new file mode 100644
index 0000000..2262838
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/rice_bowl.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M22 12c0-5.52-4.48-10-10-10S2 6.48 2 12c0 3.69 2.47 6.86 6 8.25V22h8v-1.75c3.53-1.39 6-4.56 6-8.25zm-2 0h-4V5.08c2.39 1.39 4 3.97 4 6.92zm-6-7.74V12h-4V4.26c.64-.16 1.31-.26 2-.26s1.36.1 2 .26zM4 12c0-2.95 1.61-5.53 4-6.92V12H4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/ring_volume.svg b/html/matt-chat/uswds/img/material-icons/ring_volume.svg
new file mode 100644
index 0000000..f0bea44
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/ring_volume.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M23.71 16.67A16.971 16.971 0 0 0 12 12C7.46 12 3.34 13.78.29 16.67c-.18.18-.29.43-.29.71 0 .28.11.53.29.71l2.48 2.48c.18.18.43.29.71.29.27 0 .52-.11.7-.28.79-.74 1.69-1.36 2.66-1.85.33-.16.56-.5.56-.9v-3.1c1.45-.48 3-.73 4.6-.73s3.15.25 4.6.72v3.1c0 .39.23.74.56.9.98.49 1.87 1.12 2.66 1.85.18.18.43.28.7.28.28 0 .53-.11.71-.29l2.48-2.48c.18-.18.29-.43.29-.71a.99.99 0 0 0-.29-.7zM21.16 6.26l-1.41-1.41-3.56 3.55 1.41 1.41s3.45-3.52 3.56-3.55zM13 2h-2v5h2V2zM6.4 9.81 7.81 8.4 4.26 4.84 2.84 6.26c.11.03 3.56 3.55 3.56 3.55z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/rocket.svg b/html/matt-chat/uswds/img/material-icons/rocket.svg
new file mode 100644
index 0000000..4e3f7e3
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/rocket.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2.5s4.5 2.04 4.5 10.5c0 2.49-1.04 5.57-1.6 7H9.1c-.56-1.43-1.6-4.51-1.6-7C7.5 4.54 12 2.5 12 2.5zm2 8.5c0-1.1-.9-2-2-2s-2 .9-2 2 .9 2 2 2 2-.9 2-2zm-6.31 9.52c-.48-1.23-1.52-4.17-1.67-6.87l-1.13.75c-.56.38-.89 1-.89 1.67V22l3.69-1.48zM20 22v-5.93c0-.67-.33-1.29-.89-1.66l-1.13-.75c-.15 2.69-1.2 5.64-1.67 6.87L20 22z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/rocket_launch.svg b/html/matt-chat/uswds/img/material-icons/rocket_launch.svg
new file mode 100644
index 0000000..915b033
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/rocket_launch.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M9.19 6.35c-2.04 2.29-3.44 5.58-3.57 5.89L2 10.69l4.05-4.05c.47-.47 1.15-.68 1.81-.55l1.33.26zM11.17 17s3.74-1.55 5.89-3.7c5.4-5.4 4.5-9.62 4.21-10.57-.95-.3-5.17-1.19-10.57 4.21C8.55 9.09 7 12.83 7 12.83L11.17 17zm6.48-2.19c-2.29 2.04-5.58 3.44-5.89 3.57L13.31 22l4.05-4.05c.47-.47.68-1.15.55-1.81l-.26-1.33zM9 18c0 .83-.34 1.58-.88 2.12C6.94 21.3 2 22 2 22s.7-4.94 1.88-6.12A2.996 2.996 0 0 1 9 18zm4-9c0-1.1.9-2 2-2s2 .9 2 2-.9 2-2 2-2-.9-2-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/roller_shades.svg b/html/matt-chat/uswds/img/material-icons/roller_shades.svg
new file mode 100644
index 0000000..cfb6101
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/roller_shades.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 19V3H4v16H2v2h20v-2h-2zM6 19v-6h5v1.8c-.4.3-.8.8-.8 1.4 0 1 .8 1.8 1.8 1.8s1.8-.8 1.8-1.8c0-.6-.3-1.1-.8-1.4V13h5v6H6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/roller_shades_closed.svg b/html/matt-chat/uswds/img/material-icons/roller_shades_closed.svg
new file mode 100644
index 0000000..b7b26ba
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/roller_shades_closed.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 19V3H4v16H2v2h8.25c0 .97.78 1.75 1.75 1.75s1.75-.78 1.75-1.75H22v-2h-2zM6 19v-2h5v2H6zm7 0v-2h5v2h-5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/roller_skating.svg b/html/matt-chat/uswds/img/material-icons/roller_skating.svg
new file mode 100644
index 0000000..9f39acb
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/roller_skating.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M9 6.5c0-.28.22-.5.5-.5h2.52L12 5H9.5c-.28 0-.5-.22-.5-.5s.22-.5.5-.5H12V1H4v15h16v-2.88c0-2.1-1.55-3.53-3.03-3.88l-2.7-.67c-.87-.22-1.57-.81-1.95-1.57H9.5c-.28 0-.5-.22-.5-.5zM5 23c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3zm14 0c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3zm-7 0c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/roofing.svg b/html/matt-chat/uswds/img/material-icons/roofing.svg
new file mode 100644
index 0000000..50be3f8
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/roofing.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13 18h-2v-2h2v2zm2-4H9v6h6v-6zm4-4.7V4h-3v2.6L12 3 2 12h3l7-6.31L19 12h3l-3-2.7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/room.svg b/html/matt-chat/uswds/img/material-icons/room.svg
new file mode 100644
index 0000000..35655db
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/room.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5a2.5 2.5 0 0 1 0-5 2.5 2.5 0 0 1 0 5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/room_preferences.svg b/html/matt-chat/uswds/img/material-icons/room_preferences.svg
new file mode 100644
index 0000000..9c79441
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/room_preferences.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M14 11.26V6h3v4h2V4h-5V3H5v16H3v2h9.26A6.963 6.963 0 0 1 11 17c0-2.38 1.19-4.47 3-5.74zM10 11h2v2h-2v-2zm11.69 5.37 1.14-1-1-1.73-1.45.49c-.32-.27-.68-.48-1.08-.63L19 12h-2l-.3 1.49c-.4.15-.76.36-1.08.63l-1.45-.49-1 1.73 1.14 1c-.08.5-.08.76 0 1.26l-1.14 1 1 1.73 1.45-.49c.32.27.68.48 1.08.63L17 22h2l.3-1.49c.4-.15.76-.36 1.08-.63l1.45.49 1-1.73-1.14-1c.08-.51.08-.77 0-1.27zM18 19c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/room_service.svg b/html/matt-chat/uswds/img/material-icons/room_service.svg
new file mode 100644
index 0000000..8640069
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/room_service.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M2 17h20v2H2zm11.84-9.21A2.006 2.006 0 0 0 12 5a2.006 2.006 0 0 0-1.84 2.79C6.25 8.6 3.27 11.93 3 16h18c-.27-4.07-3.25-7.4-7.16-8.21z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/rotate_90_degrees_ccw.svg b/html/matt-chat/uswds/img/material-icons/rotate_90_degrees_ccw.svg
new file mode 100644
index 0000000..cce2ebe
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/rotate_90_degrees_ccw.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M7.34 6.41.86 12.9l6.49 6.48 6.49-6.48-6.5-6.49zM3.69 12.9l3.66-3.66L11 12.9l-3.66 3.66-3.65-3.66zm15.67-6.26A8.95 8.95 0 0 0 13 4V.76L8.76 5 13 9.24V6c1.79 0 3.58.68 4.95 2.05a7.007 7.007 0 0 1 0 9.9 6.973 6.973 0 0 1-7.79 1.44l-1.49 1.49C10.02 21.62 11.51 22 13 22c2.3 0 4.61-.88 6.36-2.64a8.98 8.98 0 0 0 0-12.72z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/rotate_90_degrees_cw.svg b/html/matt-chat/uswds/img/material-icons/rotate_90_degrees_cw.svg
new file mode 100644
index 0000000..e4ea6d4
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/rotate_90_degrees_cw.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M4.64 19.37c3.03 3.03 7.67 3.44 11.15 1.25l-1.46-1.46c-2.66 1.43-6.04 1.03-8.28-1.21a7.007 7.007 0 0 1 0-9.9C7.42 6.69 9.21 6.03 11 6.03V9l4-4-4-4v3.01c-2.3 0-4.61.87-6.36 2.63-3.52 3.51-3.52 9.21 0 12.73zM11 13l6 6 6-6-6-6-6 6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/rotate_left.svg b/html/matt-chat/uswds/img/material-icons/rotate_left.svg
new file mode 100644
index 0000000..effdafd
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/rotate_left.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M7.11 8.53 5.7 7.11C4.8 8.27 4.24 9.61 4.07 11h2.02c.14-.87.49-1.72 1.02-2.47zM6.09 13H4.07c.17 1.39.72 2.73 1.62 3.89l1.41-1.42c-.52-.75-.87-1.59-1.01-2.47zm1.01 5.32c1.16.9 2.51 1.44 3.9 1.61V17.9c-.87-.15-1.71-.49-2.46-1.03L7.1 18.32zM13 4.07V1L8.45 5.55 13 10V6.09c2.84.48 5 2.94 5 5.91s-2.16 5.43-5 5.91v2.02c3.95-.49 7-3.85 7-7.93s-3.05-7.44-7-7.93z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/rotate_right.svg b/html/matt-chat/uswds/img/material-icons/rotate_right.svg
new file mode 100644
index 0000000..382e7cf
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/rotate_right.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15.55 5.55 11 1v3.07C7.06 4.56 4 7.92 4 12s3.05 7.44 7 7.93v-2.02c-2.84-.48-5-2.94-5-5.91s2.16-5.43 5-5.91V10l4.55-4.45zM19.93 11a7.906 7.906 0 0 0-1.62-3.89l-1.42 1.42c.54.75.88 1.6 1.02 2.47h2.02zM13 17.9v2.02c1.39-.17 2.74-.71 3.9-1.61l-1.44-1.44c-.75.54-1.59.89-2.46 1.03zm3.89-2.42 1.42 1.41c.9-1.16 1.45-2.5 1.62-3.89h-2.02c-.14.87-.48 1.72-1.02 2.48z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/roundabout_left.svg b/html/matt-chat/uswds/img/material-icons/roundabout_left.svg
new file mode 100644
index 0000000..ee2a495
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/roundabout_left.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10.08 8A6 6 0 0 1 16 3c3.31 0 6 2.69 6 6 0 2.97-2.16 5.44-5 5.92V21h-2v-6.09c0-.98.71-1.8 1.67-1.97a3.999 3.999 0 1 0-4.61-4.61c-.17.96-.99 1.67-1.97 1.67H5.83l1.59 1.59L6 13 2 9l4-4 1.41 1.41L5.83 8h4.25z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/roundabout_right.svg b/html/matt-chat/uswds/img/material-icons/roundabout_right.svg
new file mode 100644
index 0000000..bb564ea
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/roundabout_right.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13.92 8C13.44 5.16 10.97 3 8 3 4.69 3 2 5.69 2 9c0 2.97 2.16 5.44 5 5.92V21h2v-6.09c0-.98-.71-1.8-1.67-1.97a3.999 3.999 0 1 1 4.61-4.61c.17.96.99 1.67 1.97 1.67h4.26l-1.59 1.59L18 13l4-4-4-4-1.41 1.41L18.17 8h-4.25z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/rounded_corner.svg b/html/matt-chat/uswds/img/material-icons/rounded_corner.svg
new file mode 100644
index 0000000..8dc2bf4
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/rounded_corner.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 19h2v2h-2v-2zm0-2h2v-2h-2v2zM3 13h2v-2H3v2zm0 4h2v-2H3v2zm0-8h2V7H3v2zm0-4h2V3H3v2zm4 0h2V3H7v2zm8 16h2v-2h-2v2zm-4 0h2v-2h-2v2zm4 0h2v-2h-2v2zm-8 0h2v-2H7v2zm-4 0h2v-2H3v2zM21 8c0-2.76-2.24-5-5-5h-5v2h5c1.65 0 3 1.35 3 3v5h2V8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/route.svg b/html/matt-chat/uswds/img/material-icons/route.svg
new file mode 100644
index 0000000..e20658a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/route.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 15.18V7c0-2.21-1.79-4-4-4s-4 1.79-4 4v10c0 1.1-.9 2-2 2s-2-.9-2-2V8.82C8.16 8.4 9 7.3 9 6c0-1.66-1.34-3-3-3S3 4.34 3 6c0 1.3.84 2.4 2 2.82V17c0 2.21 1.79 4 4 4s4-1.79 4-4V7c0-1.1.9-2 2-2s2 .9 2 2v8.18A2.996 2.996 0 0 0 18 21c1.66 0 3-1.34 3-3 0-1.3-.84-2.4-2-2.82z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/router.svg b/html/matt-chat/uswds/img/material-icons/router.svg
new file mode 100644
index 0000000..963f83e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/router.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m20.2 5.9.8-.8C19.6 3.7 17.8 3 16 3s-3.6.7-5 2.1l.8.8C13 4.8 14.5 4.2 16 4.2s3 .6 4.2 1.7zm-.9.8c-.9-.9-2.1-1.4-3.3-1.4s-2.4.5-3.3 1.4l.8.8c.7-.7 1.6-1 2.5-1 .9 0 1.8.3 2.5 1l.8-.8zM19 13h-2V9h-2v4H5c-1.1 0-2 .9-2 2v4c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-4c0-1.1-.9-2-2-2zM8 18H6v-2h2v2zm3.5 0h-2v-2h2v2zm3.5 0h-2v-2h2v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/rowing.svg b/html/matt-chat/uswds/img/material-icons/rowing.svg
new file mode 100644
index 0000000..ab7b673
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/rowing.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M8.5 14.5 4 19l1.5 1.5L9 17h2l-2.5-2.5zM15 1c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm6 20.01L18 24l-2.99-3.01V19.5l-7.1-7.09c-.31.05-.61.07-.91.07v-2.16c1.66.03 3.61-.87 4.67-2.04l1.4-1.55c.35-.39.99-.73 1.65-.73h.03C15.99 6.01 17 7.02 17 8.26v5.75c0 .84-.35 1.61-.92 2.16l-3.58-3.58v-2.27c-.63.52-1.43 1.02-2.29 1.39L16.5 18H18l3 3.01z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/rss_feed.svg b/html/matt-chat/uswds/img/material-icons/rss_feed.svg
new file mode 100644
index 0000000..721872d
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/rss_feed.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><circle cx="6.18" cy="17.82" r="2.18"/><path d="M4 4.44v2.83c7.03 0 12.73 5.7 12.73 12.73h2.83c0-8.59-6.97-15.56-15.56-15.56zm0 5.66v2.83c3.9 0 7.07 3.17 7.07 7.07h2.83c0-5.47-4.43-9.9-9.9-9.9z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/rsvp.svg b/html/matt-chat/uswds/img/material-icons/rsvp.svg
new file mode 100644
index 0000000..4043330
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/rsvp.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16 9h1.5l-1.75 6h-1.5L12.5 9H14l1 3.43L16 9zM5.1 12.9 6 15H4.5l-.85-2H2.5v2H1V9h3.5c.85 0 1.5.65 1.5 1.5v1c0 .6-.4 1.15-.9 1.4zm-.6-2.4h-2v1h2v-1zm17 2.5h-2v2H18V9h3.5c.83 0 1.5.67 1.5 1.5v1c0 .83-.67 1.5-1.5 1.5zm0-2.5h-2v1h2v-1zM11.5 9v1.5h-3v.75h2c.55 0 1 .45 1 1V14c0 .55-.45 1-1 1H7v-1.5h3v-.75H7.75c-.41 0-.75-.34-.75-.75v-2c0-.55.45-1 1-1h3.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/rtt.svg b/html/matt-chat/uswds/img/material-icons/rtt.svg
new file mode 100644
index 0000000..ca0dfe7
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/rtt.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m9.03 3-1.11 7.07h2.62l.7-4.5h2.58L11.8 18.43H9.47L9.06 21h7.27l.4-2.57h-2.35l2-12.86h2.58l-.71 4.5h2.65L22 3H9.03zM8 5H4l-.31 2h4L8 5zm-.61 4h-4l-.31 2h4l.31-2zm.92 8h-6L2 19h6l.31-2zm.62-4h-6l-.31 2h6.01l.3-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/rule.svg b/html/matt-chat/uswds/img/material-icons/rule.svg
new file mode 100644
index 0000000..8a87c75
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/rule.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16.54 11 13 7.46l1.41-1.41 2.12 2.12 4.24-4.24 1.41 1.41L16.54 11zM11 7H2v2h9V7zm10 6.41L19.59 12 17 14.59 14.41 12 13 13.41 15.59 16 13 18.59 14.41 20 17 17.41 19.59 20 21 18.59 18.41 16 21 13.41zM11 15H2v2h9v-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/rule_folder.svg b/html/matt-chat/uswds/img/material-icons/rule_folder.svg
new file mode 100644
index 0000000..d3b06d2
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/rule_folder.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 6h-8l-2-2H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zM7.83 16 5 13.17l1.41-1.41 1.41 1.41 3.54-3.54 1.41 1.41L7.83 16zm9.58-3L19 14.59 17.59 16 16 14.41 14.41 16 13 14.59 14.59 13 13 11.41 14.41 10 16 11.59 17.59 10 19 11.41 17.41 13z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/run_circle.svg b/html/matt-chat/uswds/img/material-icons/run_circle.svg
new file mode 100644
index 0000000..61f0913
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/run_circle.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1.5 4c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm2.5 6c-.7 0-2.01-.54-2.91-1.76l-.41 2.35L14 14.03V18h-1v-3.58l-1.11-1.21-.52 2.64-3.77-.77.2-.98 2.78.57.96-4.89-1.54.57V12H9V9.65l3.28-1.21c.49-.18 1.03.06 1.26.53.83 1.7 2.05 2.03 2.46 2.03v1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/running_with_errors.svg b/html/matt-chat/uswds/img/material-icons/running_with_errors.svg
new file mode 100644
index 0000000..3769335
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/running_with_errors.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M22 10v8h-2v-8h2zm-2 10v2h2v-2h-2zm-2-2.71A7.99 7.99 0 0 1 12 20c-4.41 0-8-3.59-8-8s3.59-8 8-8v9l7.55-7.55A9.965 9.965 0 0 0 12 2C6.48 2 2 6.48 2 12s4.48 10 10 10c2.25 0 4.33-.74 6-2v-2.71z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/rv_hookup.svg b/html/matt-chat/uswds/img/material-icons/rv_hookup.svg
new file mode 100644
index 0000000..c261516
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/rv_hookup.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 17v-6c0-1.1-.9-2-2-2H7V7l-3 3 3 3v-2h4v3H4v3c0 1.1.9 2 2 2h2c0 1.66 1.34 3 3 3s3-1.34 3-3h8v-2h-2zm-9 3c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm7-6h-4v-3h4v3zM17 2v2H9v2h8v2l3-3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/safety_check.svg b/html/matt-chat/uswds/img/material-icons/safety_check.svg
new file mode 100644
index 0000000..9f7e10d
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/safety_check.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2 4 5v6.09c0 5.05 3.41 9.76 8 10.91 4.59-1.15 8-5.86 8-10.91V5l-8-3zm0 15c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm1.65-2.65L11.5 12.2V9h1v2.79l1.85 1.85-.7.71z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/safety_divider.svg b/html/matt-chat/uswds/img/material-icons/safety_divider.svg
new file mode 100644
index 0000000..caddc45
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/safety_divider.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11 5h2v14h-2V5zm-6 7c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm2.78 1.58a6.95 6.95 0 0 0-5.56 0A2.01 2.01 0 0 0 1 15.43V16h8v-.57c0-.81-.48-1.53-1.22-1.85zM19 12c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm2.78 1.58a6.95 6.95 0 0 0-5.56 0A2.01 2.01 0 0 0 15 15.43V16h8v-.57c0-.81-.48-1.53-1.22-1.85z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/sailing.svg b/html/matt-chat/uswds/img/material-icons/sailing.svg
new file mode 100644
index 0000000..82d2048
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/sailing.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11 13.5V2L3 13.5h8zm10 0C21 6.5 14.5 1 12.5 1c0 0 1 3 1 6.5s-1 6-1 6H21zm1 1.5H2a6.233 6.233 0 0 0 2.33 3.73c.65-.27 1.22-.72 1.67-1.23.73.84 1.8 1.5 3 1.5s2.27-.66 3-1.5c.73.84 1.8 1.5 3 1.5s2.26-.66 3-1.5c.45.51 1.02.96 1.67 1.23 1.17-.89 2.02-2.2 2.33-3.73zm0 8v-2h-1c-1.04 0-2.08-.35-3-1-1.83 1.3-4.17 1.3-6 0-1.83 1.3-4.17 1.3-6 0-.91.65-1.96 1-3 1H2v2h1c1.03 0 2.05-.25 3-.75 1.89 1 4.11 1 6 0 1.89 1 4.11 1 6 0 .95.5 1.97.75 3 .75h1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/sanitizer.svg b/html/matt-chat/uswds/img/material-icons/sanitizer.svg
new file mode 100644
index 0000000..dda2fda
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/sanitizer.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15.5 6.5C15.5 5.66 17 4 17 4s1.5 1.66 1.5 2.5c0 .83-.67 1.5-1.5 1.5s-1.5-.67-1.5-1.5zm4 8.5a2.5 2.5 0 0 0 2.5-2.5c0-1.67-2.5-4.5-2.5-4.5S17 10.83 17 12.5a2.5 2.5 0 0 0 2.5 2.5zM13 14h-2v-2H9v2H7v2h2v2h2v-2h2v-2zm3-2v10H4V12c0-2.97 2.16-5.43 5-5.91V4H7V2h6c1.13 0 2.15.39 2.99 1.01l-1.43 1.43C14.1 4.17 13.57 4 13 4h-2v2.09c2.84.48 5 2.94 5 5.91z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/satellite.svg b/html/matt-chat/uswds/img/material-icons/satellite.svg
new file mode 100644
index 0000000..a878d91
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/satellite.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM5 4.99h3C8 6.65 6.66 8 5 8V4.99zM5 12v-2c2.76 0 5-2.25 5-5.01h2C12 8.86 8.87 12 5 12zm0 6 3.5-4.5 2.5 3.01L14.5 12l4.5 6H5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/satellite_alt.svg b/html/matt-chat/uswds/img/material-icons/satellite_alt.svg
new file mode 100644
index 0000000..091289f
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/satellite_alt.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m15.44.59-3.18 3.18c-.78.78-.78 2.05 0 2.83l1.24 1.24-.71.71-1.24-1.25c-.78-.78-2.05-.78-2.83 0L7.3 8.72c-.78.78-.78 2.05 0 2.83l1.24 1.24-.71.71-1.23-1.25c-.78-.78-2.05-.78-2.83 0L.59 15.43c-.78.78-.78 2.05 0 2.83l3.54 3.54c.78.78 2.05.78 2.83 0l3.18-3.18c.78-.78.78-2.05 0-2.83L8.9 14.55l.71-.71 1.24 1.24c.78.78 2.05.78 2.83 0l1.41-1.41c.78-.78.78-2.05 0-2.83L13.84 9.6l.71-.71 1.24 1.24c.78.78 2.05.78 2.83 0l3.18-3.18c.78-.78.78-2.05 0-2.83L18.26.58c-.78-.78-2.04-.78-2.82.01zM6.6 19.32l-1.06 1.06L2 16.85l1.06-1.06 3.54 3.53zm2.12-2.12-1.06 1.06-3.54-3.54 1.06-1.06 3.54 3.54zm9.54-9.54L17.2 8.72l-3.54-3.54 1.06-1.06 3.54 3.54zm2.12-2.12L19.32 6.6l-3.54-3.54L16.85 2l3.53 3.54zM14 21v2a9 9 0 0 0 9-9h-2c0 3.87-3.13 7-7 7zm0-4v2c2.76 0 5-2.24 5-5h-2c0 1.66-1.34 3-3 3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/save.svg b/html/matt-chat/uswds/img/material-icons/save.svg
new file mode 100644
index 0000000..b672e6b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/save.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2V7l-4-4zm-5 16c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3zm3-10H5V5h10v4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/save_alt.svg b/html/matt-chat/uswds/img/material-icons/save_alt.svg
new file mode 100644
index 0000000..81abe3c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/save_alt.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 12v7H5v-7H3v7c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-7h-2zm-6 .67 2.59-2.58L17 11.5l-5 5-5-5 1.41-1.41L11 12.67V3h2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/save_as.svg b/html/matt-chat/uswds/img/material-icons/save_as.svg
new file mode 100644
index 0000000..5624b42
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/save_as.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 12.4V7l-4-4H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h7.4l8.6-8.6zM15 15c0 1.66-1.34 3-3 3s-3-1.34-3-3 1.34-3 3-3 3 1.34 3 3zM6 6h9v4H6V6zm13.99 10.25 1.77 1.77L16.77 23H15v-1.77l4.99-4.98zm3.26.26-.85.85-1.77-1.77.85-.85c.2-.2.51-.2.71 0l1.06 1.06c.2.2.2.52 0 .71z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/saved_search.svg b/html/matt-chat/uswds/img/material-icons/saved_search.svg
new file mode 100644
index 0000000..0275fc6
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/saved_search.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15.5 14h-.79l-.28-.27A6.471 6.471 0 0 0 16 9.5 6.5 6.5 0 1 0 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14zm-2.17-1.5 2.14-1.53 2.14 1.53-.83-2.46 2.15-1.5h-2.62L9.47 6l-.84 2.54H6l2.14 1.49z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/savings.svg b/html/matt-chat/uswds/img/material-icons/savings.svg
new file mode 100644
index 0000000..2392beb
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/savings.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m19.83 7.5-2.27-2.27c.07-.42.18-.81.32-1.15A1.498 1.498 0 0 0 16.5 2c-1.64 0-3.09.79-4 2h-5C4.46 4 2 6.46 2 9.5S4.5 21 4.5 21H10v-2h2v2h5.5l1.68-5.59 2.82-.94V7.5h-2.17zM13 9H8V7h5v2zm3 2c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/scale.svg b/html/matt-chat/uswds/img/material-icons/scale.svg
new file mode 100644
index 0000000..ea32044
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/scale.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M14 11V8c4.56-.58 8-3.1 8-6H2c0 2.9 3.44 5.42 8 6v3c-3.68.73-8 3.61-8 11h6v-2H4.13c.93-6.83 6.65-7.2 7.87-7.2s6.94.37 7.87 7.2H16v2h6c0-7.39-4.32-10.27-8-11zm-2 11c-1.1 0-2-.9-2-2 0-.55.22-1.05.59-1.41C11.39 17.79 16 16 16 16s-1.79 4.61-2.59 5.41c-.36.37-.86.59-1.41.59z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/scanner.svg b/html/matt-chat/uswds/img/material-icons/scanner.svg
new file mode 100644
index 0000000..81135a5
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/scanner.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19.8 10.7 4.2 5l-.7 1.9L17.6 12H5c-1.1 0-2 .9-2 2v4c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-5.5c0-.8-.5-1.6-1.2-1.8zM7 17H5v-2h2v2zm12 0H9v-2h10v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/scatter_plot.svg b/html/matt-chat/uswds/img/material-icons/scatter_plot.svg
new file mode 100644
index 0000000..f6a0c0d
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/scatter_plot.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><circle cx="7" cy="14" r="3"/><circle cx="11" cy="6" r="3"/><circle cx="16.6" cy="17.6" r="3"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/schedule.svg b/html/matt-chat/uswds/img/material-icons/schedule.svg
new file mode 100644
index 0000000..7d0fa77
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/schedule.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"/><path d="M12.5 7H11v6l5.25 3.15.75-1.23-4.5-2.67z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/schedule_send.svg b/html/matt-chat/uswds/img/material-icons/schedule_send.svg
new file mode 100644
index 0000000..accc095
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/schedule_send.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16.5 12.5H15v4l3 2 .75-1.23-2.25-1.52V12.5zM16 9 2 3v7l9 2-9 2v7l7.27-3.11C10.09 20.83 12.79 23 16 23c3.86 0 7-3.14 7-7s-3.14-7-7-7zm0 12c-2.75 0-4.98-2.22-5-4.97v-.07a5.008 5.008 0 0 1 5-4.97c2.76 0 5 2.24 5 5S18.76 21 16 21z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/schema.svg b/html/matt-chat/uswds/img/material-icons/schema.svg
new file mode 100644
index 0000000..7fa4504
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/schema.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M14 9v2h-3V9H8.5V7H11V1H4v6h2.5v2H4v6h2.5v2H4v6h7v-6H8.5v-2H11v-2h3v2h7V9h-7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/school.svg b/html/matt-chat/uswds/img/material-icons/school.svg
new file mode 100644
index 0000000..e43f801
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/school.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M5 13.18v4L12 21l7-3.82v-4L12 17l-7-3.82zM12 3 1 9l11 6 9-4.91V17h2V9L12 3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/science.svg b/html/matt-chat/uswds/img/material-icons/science.svg
new file mode 100644
index 0000000..5fc5854
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/science.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19.8 18.4 14 10.67V6.5l1.35-1.69c.26-.33.03-.81-.39-.81H9.04c-.42 0-.65.48-.39.81L10 6.5v4.17L4.2 18.4c-.49.66-.02 1.6.8 1.6h14c.82 0 1.29-.94.8-1.6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/score.svg b/html/matt-chat/uswds/img/material-icons/score.svg
new file mode 100644
index 0000000..1b7d8fa
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/score.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 2h1.5v3l2-3h1.7l-2 3 2 3h-1.7l-2-3v3H12V5zM7 7.25h2.5V6.5H7V5h4v3.75H8.5v.75H11V11H7V7.25zM19 13l-6 6-4-4-4 4v-2.5l4-4 4 4 6-6V13z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/scoreboard.svg b/html/matt-chat/uswds/img/material-icons/scoreboard.svg
new file mode 100644
index 0000000..4f1a008
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/scoreboard.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17.5 13.5H16v-3h1.5v3zM20 4h-3V2h-2v2H9V2H7v2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zM9.5 11.5c0 .55-.45 1-1 1h-2v1h3V15H5v-2.5c0-.55.45-1 1-1h2v-1H5V9h3.5c.55 0 1 .45 1 1v1.5zm3.25 6.5h-1.5v-1.5h1.5V18zm0-3.5h-1.5V13h1.5v1.5zm0-3.5h-1.5V9.5h1.5V11zm0-3.5h-1.5V6h1.5v1.5zM19 14c0 .55-.45 1-1 1h-2.5c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1H18c.55 0 1 .45 1 1v4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/screen_lock_landscape.svg b/html/matt-chat/uswds/img/material-icons/screen_lock_landscape.svg
new file mode 100644
index 0000000..5a37acc
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/screen_lock_landscape.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 5H3c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm-2 12H5V7h14v10zm-9-1h4c.55 0 1-.45 1-1v-3c0-.55-.45-1-1-1v-1a2 2 0 1 0-4 0v1c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1zm.8-6c0-.66.54-1.2 1.2-1.2.66 0 1.2.54 1.2 1.2v1h-2.4v-1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/screen_lock_portrait.svg b/html/matt-chat/uswds/img/material-icons/screen_lock_portrait.svg
new file mode 100644
index 0000000..31ccf24
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/screen_lock_portrait.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10 16h4c.55 0 1-.45 1-1v-3c0-.55-.45-1-1-1v-1a2 2 0 1 0-4 0v1c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1zm.8-6c0-.66.54-1.2 1.2-1.2.66 0 1.2.54 1.2 1.2v1h-2.4v-1zM17 1H7c-1.1 0-2 .9-2 2v18c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 18H7V5h10v14z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/screen_lock_rotation.svg b/html/matt-chat/uswds/img/material-icons/screen_lock_rotation.svg
new file mode 100644
index 0000000..f208c37
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/screen_lock_rotation.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m23.25 12.77-2.57-2.57-1.41 1.41 2.22 2.22-5.66 5.66L4.51 8.17l5.66-5.66 2.1 2.1 1.41-1.41L11.23.75a1.49 1.49 0 0 0-2.12 0L2.75 7.11a1.49 1.49 0 0 0 0 2.12l12.02 12.02c.59.59 1.54.59 2.12 0l6.36-6.36c.59-.59.59-1.54 0-2.12zM8.47 20.48A10.487 10.487 0 0 1 2.5 12H1c.51 6.16 5.66 11 11.95 11l.66-.03-3.81-3.82-1.33 1.33zM16 9h5c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1v-.5a2.5 2.5 0 0 0-5 0V3c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1zm.8-6.5c0-.94.76-1.7 1.7-1.7s1.7.76 1.7 1.7V3h-3.4v-.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/screen_rotation.svg b/html/matt-chat/uswds/img/material-icons/screen_rotation.svg
new file mode 100644
index 0000000..ba02767
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/screen_rotation.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16.48 2.52c3.27 1.55 5.61 4.72 5.97 8.48h1.5C23.44 4.84 18.29 0 12 0l-.66.03 3.81 3.81 1.33-1.32zm-6.25-.77a1.49 1.49 0 0 0-2.12 0L1.75 8.11a1.49 1.49 0 0 0 0 2.12l12.02 12.02c.59.59 1.54.59 2.12 0l6.36-6.36c.59-.59.59-1.54 0-2.12L10.23 1.75zm4.6 19.44L2.81 9.17l6.36-6.36 12.02 12.02-6.36 6.36zm-7.31.29A10.487 10.487 0 0 1 1.55 13H.05C.56 19.16 5.71 24 12 24l.66-.03-3.81-3.81-1.33 1.32z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/screen_rotation_alt.svg b/html/matt-chat/uswds/img/material-icons/screen_rotation_alt.svg
new file mode 100644
index 0000000..5df8491
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/screen_rotation_alt.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m4 7.59 5-5c.78-.78 2.05-.78 2.83 0L20.24 11h-2.83L10.4 4 5.41 9H8v2H2V5h2v2.59zM20 19h2v-6h-6v2h2.59l-4.99 5-7.01-7H3.76l8.41 8.41c.78.78 2.05.78 2.83 0l5-5V19z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/screen_search_desktop.svg b/html/matt-chat/uswds/img/material-icons/screen_search_desktop.svg
new file mode 100644
index 0000000..9db7346
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/screen_search_desktop.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 18c1.1 0 1.99-.9 1.99-2L22 6a2 2 0 0 0-2-2H4c-1.11 0-2 .89-2 2v10a2 2 0 0 0 2 2H0v2h24v-2h-4ZM4 16V6h16v10.01L4 16Zm5.097-6.047c0-1.027.836-1.864 1.864-1.864 1.027 0 1.864.837 1.864 1.864a1.867 1.867 0 0 1-1.864 1.864 1.867 1.867 0 0 1-1.864-1.864Zm7.032 4.236-2.482-2.482a3.19 3.19 0 0 0 .527-1.754A3.216 3.216 0 0 0 10.96 6.74a3.217 3.217 0 0 0-3.214 3.213 3.218 3.218 0 0 0 3.214 3.214 3.19 3.19 0 0 0 1.724-.51l2.489 2.487.955-.955Z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/screen_share.svg b/html/matt-chat/uswds/img/material-icons/screen_share.svg
new file mode 100644
index 0000000..4a717b9
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/screen_share.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 18c1.1 0 1.99-.9 1.99-2L22 6a2 2 0 0 0-2-2H4c-1.11 0-2 .89-2 2v10a2 2 0 0 0 2 2H0v2h24v-2h-4zm-7-3.53v-2.19c-2.78 0-4.61.85-6 2.72.56-2.67 2.11-5.33 6-5.87V7l4 3.73-4 3.74z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/screenshot.svg b/html/matt-chat/uswds/img/material-icons/screenshot.svg
new file mode 100644
index 0000000..3472917
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/screenshot.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 1.01 7 1c-1.1 0-2 .9-2 2v18c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-1.99-2-1.99zM17 18H7V6h10v12zM9.5 8.5H12V7H8v4h1.5V8.5zM12 17h4v-4h-1.5v2.5H12V17z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/screenshot_monitor.svg b/html/matt-chat/uswds/img/material-icons/screenshot_monitor.svg
new file mode 100644
index 0000000..9aa3a72
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/screenshot_monitor.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 3H4c-1.11 0-2 .89-2 2v12a2 2 0 0 0 2 2h4v2h8v-2h4c1.1 0 2-.9 2-2V5a2 2 0 0 0-2-2zm0 14H4V5h16v12z"/><path d="M6.5 7.5H9V6H5v4h1.5zM19 12h-1.5v2.5H15V16h4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/scuba_diving.svg b/html/matt-chat/uswds/img/material-icons/scuba_diving.svg
new file mode 100644
index 0000000..779938f
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/scuba_diving.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M1 13c0-1.1.9-2 2-2s2 .9 2 2-.9 2-2 2-2-.9-2-2zm7.89-2.89 4.53-1.21-.78-2.9-4.53 1.21c-.8.21-1.28 1.04-1.06 1.84.22.8 1.04 1.28 1.84 1.06zM20.5 5.9 23 3l-1-1-3 3-2 4-9.48 2.87c-.82.2-1.39.89-1.5 1.68L5.24 18 2.4 21.8 4 23l3-4 1.14-3.14L14 14l5-3.5 1.5-4.6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/sd.svg b/html/matt-chat/uswds/img/material-icons/sd.svg
new file mode 100644
index 0000000..c92ab3a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/sd.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-6 6h4c.55 0 1 .45 1 1v4c0 .55-.45 1-1 1h-4V9zm-3.5 4.5v-1H7c-.55 0-1-.45-1-1V10c0-.55.45-1 1-1h3c.55 0 1 .45 1 1v1H9.5v-.5h-2v1H10c.55 0 1 .45 1 1V14c0 .55-.45 1-1 1H7c-.55 0-1-.45-1-1v-1h1.5v.5h2zm5 0h2v-3h-2v3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/sd_card.svg b/html/matt-chat/uswds/img/material-icons/sd_card.svg
new file mode 100644
index 0000000..15ab481
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/sd_card.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 2h-8L4.02 8 4 20c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-6 6h-2V4h2v4zm3 0h-2V4h2v4zm3 0h-2V4h2v4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/sd_card_alert.svg b/html/matt-chat/uswds/img/material-icons/sd_card_alert.svg
new file mode 100644
index 0000000..f471892
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/sd_card_alert.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 2h-8L4.02 8 4 20c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-5 15h-2v-2h2v2zm0-4h-2V8h2v5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/sd_storage.svg b/html/matt-chat/uswds/img/material-icons/sd_storage.svg
new file mode 100644
index 0000000..15ab481
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/sd_storage.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 2h-8L4.02 8 4 20c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-6 6h-2V4h2v4zm3 0h-2V4h2v4zm3 0h-2V4h2v4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/search.svg b/html/matt-chat/uswds/img/material-icons/search.svg
new file mode 100644
index 0000000..cd9fd53
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/search.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15.5 14h-.79l-.28-.27A6.471 6.471 0 0 0 16 9.5 6.5 6.5 0 1 0 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/search_off.svg b/html/matt-chat/uswds/img/material-icons/search_off.svg
new file mode 100644
index 0000000..7151f52
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/search_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15.5 14h-.79l-.28-.27A6.471 6.471 0 0 0 16 9.5 6.5 6.5 0 0 0 9.5 3C6.08 3 3.28 5.64 3.03 9h2.02C5.3 6.75 7.18 5 9.5 5 11.99 5 14 7.01 14 9.5S11.99 14 9.5 14c-.17 0-.33-.03-.5-.05v2.02c.17.02.33.03.5.03 1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5z"/><path d="M6.47 10.82 4 13.29l-2.47-2.47-.71.71L3.29 14 .82 16.47l.71.71L4 14.71l2.47 2.47.71-.71L4.71 14l2.47-2.47z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/security.svg b/html/matt-chat/uswds/img/material-icons/security.svg
new file mode 100644
index 0000000..ccdc487
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/security.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 1 3 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V5l-9-4zm0 10.99h7c-.53 4.12-3.28 7.79-7 8.94V12H5V6.3l7-3.11v8.8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/security_update.svg b/html/matt-chat/uswds/img/material-icons/security_update.svg
new file mode 100644
index 0000000..1404ede
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/security_update.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M5 3v18c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2H7c-1.1 0-2 .9-2 2zm12 15H7V6h10v12zm-1-6h-3V8h-2v4H8l4 4 4-4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/security_update_good.svg b/html/matt-chat/uswds/img/material-icons/security_update_good.svg
new file mode 100644
index 0000000..b1fa1d2
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/security_update_good.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 1H7c-1.1 0-2 .9-2 2v18c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 17H7V6h10v12zm-1-7.95-1.41-1.41-3.54 3.54-1.41-1.41-1.41 1.41L11.05 15 16 10.05z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/security_update_warning.svg b/html/matt-chat/uswds/img/material-icons/security_update_warning.svg
new file mode 100644
index 0000000..fc46b92
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/security_update_warning.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11 15h2v2h-2zm0-8h2v6h-2z"/><path d="M17 1H7c-1.1 0-1.99.9-1.99 2v18c0 1.1.89 2 1.99 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 17H7V6h10v12z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/segment.svg b/html/matt-chat/uswds/img/material-icons/segment.svg
new file mode 100644
index 0000000..a351466
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/segment.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M9 18h12v-2H9v2zM3 6v2h18V6H3zm6 7h12v-2H9v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/select_all.svg b/html/matt-chat/uswds/img/material-icons/select_all.svg
new file mode 100644
index 0000000..4614449
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/select_all.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 5h2V3c-1.1 0-2 .9-2 2zm0 8h2v-2H3v2zm4 8h2v-2H7v2zM3 9h2V7H3v2zm10-6h-2v2h2V3zm6 0v2h2c0-1.1-.9-2-2-2zM5 21v-2H3c0 1.1.9 2 2 2zm-2-4h2v-2H3v2zM9 3H7v2h2V3zm2 18h2v-2h-2v2zm8-8h2v-2h-2v2zm0 8c1.1 0 2-.9 2-2h-2v2zm0-12h2V7h-2v2zm0 8h2v-2h-2v2zm-4 4h2v-2h-2v2zm0-16h2V3h-2v2zM7 17h10V7H7v10zm2-8h6v6H9V9z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/self_improvement.svg b/html/matt-chat/uswds/img/material-icons/self_improvement.svg
new file mode 100644
index 0000000..0ac7ceb
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/self_improvement.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><circle cx="12" cy="6" r="2"/><path d="M21 16v-2c-2.24 0-4.16-.96-5.6-2.68l-1.34-1.6A1.98 1.98 0 0 0 12.53 9h-1.05c-.59 0-1.15.26-1.53.72l-1.34 1.6C7.16 13.04 5.24 14 3 14v2c2.77 0 5.19-1.17 7-3.25V15l-3.88 1.55c-.67.27-1.12.93-1.12 1.66C5 19.2 5.8 20 6.79 20H9v-.5a2.5 2.5 0 0 1 2.5-2.5h3c.28 0 .5.22.5.5s-.22.5-.5.5h-3c-.83 0-1.5.67-1.5 1.5v.5h7.21c.99 0 1.79-.8 1.79-1.79 0-.73-.45-1.39-1.12-1.66L14 15v-2.25c1.81 2.08 4.23 3.25 7 3.25z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/sell.svg b/html/matt-chat/uswds/img/material-icons/sell.svg
new file mode 100644
index 0000000..24d6c5c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/sell.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m21.41 11.41-8.83-8.83c-.37-.37-.88-.58-1.41-.58H4c-1.1 0-2 .9-2 2v7.17c0 .53.21 1.04.59 1.41l8.83 8.83c.78.78 2.05.78 2.83 0l7.17-7.17c.78-.78.78-2.04-.01-2.83zM6.5 8C5.67 8 5 7.33 5 6.5S5.67 5 6.5 5 8 5.67 8 6.5 7.33 8 6.5 8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/send.svg b/html/matt-chat/uswds/img/material-icons/send.svg
new file mode 100644
index 0000000..b678678
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/send.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M2.01 21 23 12 2.01 3 2 10l15 2-15 2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/send_and_archive.svg b/html/matt-chat/uswds/img/material-icons/send_and_archive.svg
new file mode 100644
index 0000000..7a6a2eb
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/send_and_archive.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 10h-3L2 3v7l9 2-9 2v7l8-3.5V21c0 1.1.9 2 2 2h9c1.1 0 2-.9 2-2v-9c0-1.1-.9-2-2-2zm0 11h-9v-9h9v9zm-4.5-1L13 16h2v-3h3v3h2l-3.5 4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/send_time_extension.svg b/html/matt-chat/uswds/img/material-icons/send_time_extension.svg
new file mode 100644
index 0000000..4e9bab7
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/send_time_extension.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 6c0-1.1-.9-2-2-2h-4a2.5 2.5 0 0 0-5 0H5.01c-1.1 0-2 .9-2 2v3.8C5.7 9.8 6 11.96 6 12.5s-.29 2.7-3 2.7V19c0 1.1.9 2 2 2h3.8c0-2.16 1.37-2.78 2.2-2.94v-9.3l9 4.5V6z"/><path d="M13 12v4l4 1-4 1v4l10-5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/send_to_mobile.svg b/html/matt-chat/uswds/img/material-icons/send_to_mobile.svg
new file mode 100644
index 0000000..d6429a5
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/send_to_mobile.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 17h2v4c0 1.1-.9 2-2 2H7c-1.1 0-2-.9-2-2V3c0-1.1.9-1.99 2-1.99L17 1c1.1 0 2 .9 2 2v4h-2V6H7v12h10v-1zm5-5-4-4v3h-5v2h5v3l4-4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/sensor_door.svg b/html/matt-chat/uswds/img/material-icons/sensor_door.svg
new file mode 100644
index 0000000..9337d83
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/sensor_door.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 2H6c-1.1 0-2 .9-2 2v18h16V4c0-1.1-.9-2-2-2zm-2.5 11.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/sensor_occupied.svg b/html/matt-chat/uswds/img/material-icons/sensor_occupied.svg
new file mode 100644
index 0000000..7f850ec
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/sensor_occupied.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 11c1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3 1.34 3 3 3zm0 1c-1.84 0-3.56.5-5.03 1.37-.61.35-.97 1.02-.97 1.72V17h12v-1.91c0-.7-.36-1.36-.97-1.72A9.844 9.844 0 0 0 12 12zm9.23-3.85 1.85-.77A12.056 12.056 0 0 0 16.62.92l-.77 1.85c2.42 1.02 4.36 2.96 5.38 5.38zM8.15 2.77 7.38.92A12.089 12.089 0 0 0 .92 7.38l1.85.77c1.02-2.42 2.96-4.36 5.38-5.38zM2.77 15.85l-1.85.77c1.22 2.91 3.55 5.25 6.46 6.46l.77-1.85a10.117 10.117 0 0 1-5.38-5.38zm13.08 5.38.77 1.85c2.91-1.22 5.25-3.55 6.46-6.46l-1.85-.77a10.117 10.117 0 0 1-5.38 5.38z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/sensor_window.svg b/html/matt-chat/uswds/img/material-icons/sensor_window.svg
new file mode 100644
index 0000000..42bc899
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/sensor_window.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 4v16H6V4h12m0-2H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM7 19h10v-6H7v6zm3-9h4v1h3V5H7v6h3v-1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/sensors.svg b/html/matt-chat/uswds/img/material-icons/sensors.svg
new file mode 100644
index 0000000..1a5fd60
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/sensors.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M7.76 16.24C6.67 15.16 6 13.66 6 12s.67-3.16 1.76-4.24l1.42 1.42C8.45 9.9 8 10.9 8 12c0 1.1.45 2.1 1.17 2.83l-1.41 1.41zm8.48 0C17.33 15.16 18 13.66 18 12s-.67-3.16-1.76-4.24l-1.42 1.42C15.55 9.9 16 10.9 16 12c0 1.1-.45 2.1-1.17 2.83l1.41 1.41zM12 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm8 2c0 2.21-.9 4.21-2.35 5.65l1.42 1.42C20.88 17.26 22 14.76 22 12s-1.12-5.26-2.93-7.07l-1.42 1.42A7.94 7.94 0 0 1 20 12zM6.35 6.35 4.93 4.93C3.12 6.74 2 9.24 2 12s1.12 5.26 2.93 7.07l1.42-1.42C4.9 16.21 4 14.21 4 12s.9-4.21 2.35-5.65z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/sensors_off.svg b/html/matt-chat/uswds/img/material-icons/sensors_off.svg
new file mode 100644
index 0000000..fb44de5
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/sensors_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M8.14 10.96c-.09.33-.14.68-.14 1.04 0 1.1.45 2.1 1.17 2.83l-1.42 1.42A6.018 6.018 0 0 1 6 12c0-.93.21-1.8.58-2.59L5.11 7.94A7.897 7.897 0 0 0 4 12c0 2.21.9 4.21 2.35 5.65l-1.42 1.42A9.969 9.969 0 0 1 2 12c0-2.04.61-3.93 1.66-5.51L1.39 4.22 2.8 2.81l18.38 18.38-1.41 1.41L8.14 10.96zm9.28 3.63c.37-.79.58-1.66.58-2.59 0-1.66-.67-3.16-1.76-4.24l-1.42 1.42a3.951 3.951 0 0 1 1.04 3.86l1.56 1.55zM20 12c0 1.48-.4 2.87-1.11 4.06l1.45 1.45A9.91 9.91 0 0 0 22 12c0-2.76-1.12-5.26-2.93-7.07l-1.42 1.42A7.94 7.94 0 0 1 20 12z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/sentiment_dissatisfied.svg b/html/matt-chat/uswds/img/material-icons/sentiment_dissatisfied.svg
new file mode 100644
index 0000000..4f09ab1
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/sentiment_dissatisfied.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><circle cx="15.5" cy="9.5" r="1.5"/><circle cx="8.5" cy="9.5" r="1.5"/><path d="M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm0-3.5c.73 0 1.39.19 1.97.53.12-.14.86-.98 1.01-1.14A5.39 5.39 0 0 0 12 15c-1.11 0-2.13.33-2.99.88.97 1.09.01.02 1.01 1.14.59-.33 1.25-.52 1.98-.52z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/sentiment_neutral.svg b/html/matt-chat/uswds/img/material-icons/sentiment_neutral.svg
new file mode 100644
index 0000000..73690cc
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/sentiment_neutral.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M9 15.5h6v1H9v-1z"/><circle cx="15.5" cy="9.5" r="1.5"/><circle cx="8.5" cy="9.5" r="1.5"/><path d="M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/sentiment_satisfied.svg b/html/matt-chat/uswds/img/material-icons/sentiment_satisfied.svg
new file mode 100644
index 0000000..56f0ded
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/sentiment_satisfied.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><circle cx="15.5" cy="9.5" r="1.5"/><circle cx="8.5" cy="9.5" r="1.5"/><path d="M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm0-4c-.73 0-1.38-.18-1.96-.52-.12.14-.86.98-1.01 1.15a5.49 5.49 0 0 0 5.95-.01c-.97-1.09-.01-.02-1.01-1.15-.59.35-1.24.53-1.97.53z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/sentiment_satisfied_alt.svg b/html/matt-chat/uswds/img/material-icons/sentiment_satisfied_alt.svg
new file mode 100644
index 0000000..4ab7ba9
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/sentiment_satisfied_alt.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><circle cx="15.5" cy="9.5" r="1.5"/><circle cx="8.5" cy="9.5" r="1.5"/><circle cx="15.5" cy="9.5" r="1.5"/><circle cx="8.5" cy="9.5" r="1.5"/><path d="M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm0-2.5c2.33 0 4.32-1.45 5.12-3.5h-1.67c-.69 1.19-1.97 2-3.45 2s-2.75-.81-3.45-2H6.88c.8 2.05 2.79 3.5 5.12 3.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/sentiment_very_dissatisfied.svg b/html/matt-chat/uswds/img/material-icons/sentiment_very_dissatisfied.svg
new file mode 100644
index 0000000..7d4f065
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/sentiment_very_dissatisfied.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><circle cx="15.5" cy="9.5" r="1.5"/><circle cx="8.5" cy="9.5" r="1.5"/><path d="M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm0-6c-2.33 0-4.32 1.45-5.12 3.5h1.67c.69-1.19 1.97-2 3.45-2s2.75.81 3.45 2h1.67c-.8-2.05-2.79-3.5-5.12-3.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/sentiment_very_satisfied.svg b/html/matt-chat/uswds/img/material-icons/sentiment_very_satisfied.svg
new file mode 100644
index 0000000..0a53946
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/sentiment_very_satisfied.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><circle cx="15.5" cy="9.5" r="1.5"/><circle cx="8.5" cy="9.5" r="1.5"/><path d="M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm-5-6c.78 2.34 2.72 4 5 4s4.22-1.66 5-4H7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/set_meal.svg b/html/matt-chat/uswds/img/material-icons/set_meal.svg
new file mode 100644
index 0000000..4b55951
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/set_meal.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m21.05 17.56-17.97.94L3 17l17.98-.94.07 1.5zM21 19.48H3v1.5h18v-1.5zM22 5v7c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V5c0-1.1.9-2 2-2h16c1.1 0 2 .9 2 2zm-2 1c-1.68 0-3.04.98-3.21 2.23-.64-.73-2.73-2.73-6.54-2.73-4.67 0-6.75 3-6.75 3s2.08 3 6.75 3c3.81 0 5.9-2 6.54-2.73C16.96 10.02 18.32 11 20 11V6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/settings.svg b/html/matt-chat/uswds/img/material-icons/settings.svg
new file mode 100644
index 0000000..f255a58
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/settings.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.07-.94l2.03-1.58a.49.49 0 0 0 .12-.61l-1.92-3.32a.488.488 0 0 0-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54a.484.484 0 0 0-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.74 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.07.94l-2.03 1.58a.49.49 0 0 0-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .44-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.47-.12-.61l-2.01-1.58zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/settings_accessibility.svg b/html/matt-chat/uswds/img/material-icons/settings_accessibility.svg
new file mode 100644
index 0000000..8df3015
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/settings_accessibility.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20.5 4c-2.61.7-5.67 1-8.5 1s-5.89-.3-8.5-1L3 6c1.86.5 4 .83 6 1v12h2v-6h2v6h2V7c2-.17 4.14-.5 6-1l-.5-2zM12 4c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zM7 24h2v-2H7v2zm4 0h2v-2h-2v2zm4 0h2v-2h-2v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/settings_applications.svg b/html/matt-chat/uswds/img/material-icons/settings_applications.svg
new file mode 100644
index 0000000..0ab932c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/settings_applications.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm7-7H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2zm-1.75 9c0 .23-.02.46-.05.68l1.48 1.16c.13.11.17.3.08.45l-1.4 2.42c-.09.15-.27.21-.43.15l-1.74-.7c-.36.28-.76.51-1.18.69l-.26 1.85c-.03.17-.18.3-.35.3h-2.8c-.17 0-.32-.13-.35-.29l-.26-1.85c-.43-.18-.82-.41-1.18-.69l-1.74.7c-.16.06-.34 0-.43-.15l-1.4-2.42a.353.353 0 0 1 .08-.45l1.48-1.16c-.03-.23-.05-.46-.05-.69 0-.23.02-.46.05-.68l-1.48-1.16a.353.353 0 0 1-.08-.45l1.4-2.42c.09-.15.27-.21.43-.15l1.74.7c.36-.28.76-.51 1.18-.69l.26-1.85c.03-.17.18-.3.35-.3h2.8c.17 0 .32.13.35.29l.26 1.85c.43.18.82.41 1.18.69l1.74-.7c.16-.06.34 0 .43.15l1.4 2.42c.09.15.05.34-.08.45l-1.48 1.16c.03.23.05.46.05.69z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/settings_backup_restore.svg b/html/matt-chat/uswds/img/material-icons/settings_backup_restore.svg
new file mode 100644
index 0000000..1bfb207
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/settings_backup_restore.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M14 12c0-1.1-.9-2-2-2s-2 .9-2 2 .9 2 2 2 2-.9 2-2zm-2-9a9 9 0 0 0-9 9H0l4 4 4-4H5c0-3.87 3.13-7 7-7s7 3.13 7 7a6.995 6.995 0 0 1-11.06 5.7l-1.42 1.44A9 9 0 1 0 12 3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/settings_bluetooth.svg b/html/matt-chat/uswds/img/material-icons/settings_bluetooth.svg
new file mode 100644
index 0000000..e4b2766
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/settings_bluetooth.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11 24h2v-2h-2v2zm-4 0h2v-2H7v2zm8 0h2v-2h-2v2zm2.71-18.29L12 0h-1v7.59L6.41 3 5 4.41 10.59 10 5 15.59 6.41 17 11 12.41V20h1l5.71-5.71-4.3-4.29 4.3-4.29zM13 3.83l1.88 1.88L13 7.59V3.83zm1.88 10.46L13 16.17v-3.76l1.88 1.88z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/settings_brightness.svg b/html/matt-chat/uswds/img/material-icons/settings_brightness.svg
new file mode 100644
index 0000000..d372055
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/settings_brightness.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 3H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16.01H3V4.99h18v14.02zM8 16h2.5l1.5 1.5 1.5-1.5H16v-2.5l1.5-1.5-1.5-1.5V8h-2.5L12 6.5 10.5 8H8v2.5L6.5 12 8 13.5V16zm4-7c1.66 0 3 1.34 3 3s-1.34 3-3 3V9z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/settings_cell.svg b/html/matt-chat/uswds/img/material-icons/settings_cell.svg
new file mode 100644
index 0000000..9ecb7ff
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/settings_cell.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M7 24h2v-2H7v2zm4 0h2v-2h-2v2zm4 0h2v-2h-2v2zM16 .01 8 0C6.9 0 6 .9 6 2v16c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V2c0-1.1-.9-1.99-2-1.99zM16 16H8V4h8v12z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/settings_ethernet.svg b/html/matt-chat/uswds/img/material-icons/settings_ethernet.svg
new file mode 100644
index 0000000..c79dbc8
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/settings_ethernet.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M7.77 6.76 6.23 5.48.82 12l5.41 6.52 1.54-1.28L3.42 12l4.35-5.24zM7 13h2v-2H7v2zm10-2h-2v2h2v-2zm-6 2h2v-2h-2v2zm6.77-7.52-1.54 1.28L20.58 12l-4.35 5.24 1.54 1.28L23.18 12l-5.41-6.52z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/settings_input_antenna.svg b/html/matt-chat/uswds/img/material-icons/settings_input_antenna.svg
new file mode 100644
index 0000000..d3fa977
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/settings_input_antenna.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 5c-3.87 0-7 3.13-7 7h2c0-2.76 2.24-5 5-5s5 2.24 5 5h2c0-3.87-3.13-7-7-7zm1 9.29c.88-.39 1.5-1.26 1.5-2.29a2.5 2.5 0 0 0-5 0c0 1.02.62 1.9 1.5 2.29v3.3L7.59 21 9 22.41l3-3 3 3L16.41 21 13 17.59v-3.3zM12 1C5.93 1 1 5.93 1 12h2a9 9 0 0 1 18 0h2c0-6.07-4.93-11-11-11z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/settings_input_component.svg b/html/matt-chat/uswds/img/material-icons/settings_input_component.svg
new file mode 100644
index 0000000..df14aab
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/settings_input_component.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M5 2c0-.55-.45-1-1-1s-1 .45-1 1v4H1v6h6V6H5V2zm4 14c0 1.3.84 2.4 2 2.82V23h2v-4.18c1.16-.41 2-1.51 2-2.82v-2H9v2zm-8 0c0 1.3.84 2.4 2 2.82V23h2v-4.18C6.16 18.4 7 17.3 7 16v-2H1v2zM21 6V2c0-.55-.45-1-1-1s-1 .45-1 1v4h-2v6h6V6h-2zm-8-4c0-.55-.45-1-1-1s-1 .45-1 1v4H9v6h6V6h-2V2zm4 14c0 1.3.84 2.4 2 2.82V23h2v-4.18c1.16-.41 2-1.51 2-2.82v-2h-6v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/settings_input_composite.svg b/html/matt-chat/uswds/img/material-icons/settings_input_composite.svg
new file mode 100644
index 0000000..df14aab
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/settings_input_composite.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M5 2c0-.55-.45-1-1-1s-1 .45-1 1v4H1v6h6V6H5V2zm4 14c0 1.3.84 2.4 2 2.82V23h2v-4.18c1.16-.41 2-1.51 2-2.82v-2H9v2zm-8 0c0 1.3.84 2.4 2 2.82V23h2v-4.18C6.16 18.4 7 17.3 7 16v-2H1v2zM21 6V2c0-.55-.45-1-1-1s-1 .45-1 1v4h-2v6h6V6h-2zm-8-4c0-.55-.45-1-1-1s-1 .45-1 1v4H9v6h6V6h-2V2zm4 14c0 1.3.84 2.4 2 2.82V23h2v-4.18c1.16-.41 2-1.51 2-2.82v-2h-6v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/settings_input_hdmi.svg b/html/matt-chat/uswds/img/material-icons/settings_input_hdmi.svg
new file mode 100644
index 0000000..38b19d2
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/settings_input_hdmi.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 7V4c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v3H5v6l3 6v3h8v-3l3-6V7h-1zM8 4h8v3h-2V5h-1v2h-2V5h-1v2H8V4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/settings_input_svideo.svg b/html/matt-chat/uswds/img/material-icons/settings_input_svideo.svg
new file mode 100644
index 0000000..94d1cc3
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/settings_input_svideo.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M8 11.5c0-.83-.67-1.5-1.5-1.5S5 10.67 5 11.5 5.67 13 6.5 13 8 12.33 8 11.5zm7-5c0-.83-.67-1.5-1.5-1.5h-3C9.67 5 9 5.67 9 6.5S9.67 8 10.5 8h3c.83 0 1.5-.67 1.5-1.5zM8.5 15c-.83 0-1.5.67-1.5 1.5S7.67 18 8.5 18s1.5-.67 1.5-1.5S9.33 15 8.5 15zM12 1C5.93 1 1 5.93 1 12s4.93 11 11 11 11-4.93 11-11S18.07 1 12 1zm0 20c-4.96 0-9-4.04-9-9s4.04-9 9-9 9 4.04 9 9-4.04 9-9 9zm5.5-11c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm-2 5c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/settings_overscan.svg b/html/matt-chat/uswds/img/material-icons/settings_overscan.svg
new file mode 100644
index 0000000..4209c9e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/settings_overscan.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12.01 5.5 10 8h4l-1.99-2.5zM18 10v4l2.5-1.99L18 10zM6 10l-2.5 2.01L6 14v-4zm8 6h-4l2.01 2.5L14 16zm7-13H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16.01H3V4.99h18v14.02z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/settings_phone.svg b/html/matt-chat/uswds/img/material-icons/settings_phone.svg
new file mode 100644
index 0000000..3af0519
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/settings_phone.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13 9h-2v2h2V9zm4 0h-2v2h2V9zm3 6.5c-1.25 0-2.45-.2-3.57-.57a1.02 1.02 0 0 0-1.02.24l-2.2 2.2a15.074 15.074 0 0 1-6.59-6.58l2.2-2.21c.28-.27.36-.66.25-1.01A11.36 11.36 0 0 1 8.5 4c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.5c0-.55-.45-1-1-1zM19 9v2h2V9h-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/settings_power.svg b/html/matt-chat/uswds/img/material-icons/settings_power.svg
new file mode 100644
index 0000000..49c77d2
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/settings_power.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M7 24h2v-2H7v2zm4 0h2v-2h-2v2zm2-22h-2v10h2V2zm3.56 2.44-1.45 1.45A5.969 5.969 0 0 1 18 11c0 3.31-2.69 6-6 6s-6-2.69-6-6c0-2.17 1.16-4.06 2.88-5.12L7.44 4.44A7.961 7.961 0 0 0 4 11c0 4.42 3.58 8 8 8s8-3.58 8-8c0-2.72-1.36-5.12-3.44-6.56zM15 24h2v-2h-2v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/settings_remote.svg b/html/matt-chat/uswds/img/material-icons/settings_remote.svg
new file mode 100644
index 0000000..3315d37
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/settings_remote.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15 9H9c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h6c.55 0 1-.45 1-1V10c0-.55-.45-1-1-1zm-3 6c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zM7.05 6.05l1.41 1.41a5.022 5.022 0 0 1 7.08 0l1.41-1.41C15.68 4.78 13.93 4 12 4s-3.68.78-4.95 2.05zM12 0C8.96 0 6.21 1.23 4.22 3.22l1.41 1.41C7.26 3.01 9.51 2 12 2s4.74 1.01 6.36 2.64l1.41-1.41C17.79 1.23 15.04 0 12 0z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/settings_suggest.svg b/html/matt-chat/uswds/img/material-icons/settings_suggest.svg
new file mode 100644
index 0000000..d774415
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/settings_suggest.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17.41 6.59 15 5.5l2.41-1.09L18.5 2l1.09 2.41L22 5.5l-2.41 1.09L18.5 9l-1.09-2.41zm3.87 6.13L20.5 11l-.78 1.72-1.72.78 1.72.78.78 1.72.78-1.72L23 13.5l-1.72-.78zm-5.04 1.65 1.94 1.47-2.5 4.33-2.24-.94c-.2.13-.42.26-.64.37l-.3 2.4h-5l-.3-2.41c-.22-.11-.43-.23-.64-.37l-2.24.94-2.5-4.33 1.94-1.47c-.01-.11-.01-.24-.01-.36s0-.25.01-.37l-1.94-1.47 2.5-4.33 2.24.94c.2-.13.42-.26.64-.37L7.5 6h5l.3 2.41c.22.11.43.23.64.37l2.24-.94 2.5 4.33-1.94 1.47c.01.12.01.24.01.37s0 .24-.01.36zM13 14c0-1.66-1.34-3-3-3s-3 1.34-3 3 1.34 3 3 3 3-1.34 3-3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/settings_system_daydream.svg b/html/matt-chat/uswds/img/material-icons/settings_system_daydream.svg
new file mode 100644
index 0000000..3c8b072
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/settings_system_daydream.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M9 16h6.5a2.5 2.5 0 0 0 0-5h-.05c-.24-1.69-1.69-3-3.45-3-1.4 0-2.6.83-3.16 2.02h-.16A2.994 2.994 0 0 0 6 13c0 1.66 1.34 3 3 3zM21 3H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16.01H3V4.99h18v14.02z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/settings_voice.svg b/html/matt-chat/uswds/img/material-icons/settings_voice.svg
new file mode 100644
index 0000000..c55b677
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/settings_voice.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M7 24h2v-2H7v2zm5-11c1.66 0 2.99-1.34 2.99-3L15 4c0-1.66-1.34-3-3-3S9 2.34 9 4v6c0 1.66 1.34 3 3 3zm-1 11h2v-2h-2v2zm4 0h2v-2h-2v2zm4-14h-1.7c0 3-2.54 5.1-5.3 5.1S6.7 13 6.7 10H5c0 3.41 2.72 6.23 6 6.72V20h2v-3.28c3.28-.49 6-3.31 6-6.72z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/severe_cold.svg b/html/matt-chat/uswds/img/material-icons/severe_cold.svg
new file mode 100644
index 0000000..efd0ada
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/severe_cold.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m12 10.41 4-4L14.59 5 12 7.59V4h-2v3.59L7.41 5 6 6.41l4 4V12H8.41l-4-4L3 9.41 5.59 12H2v2h3.59L3 16.59 4.41 18l4-4H10v1.59l-4 4L7.41 21 10 18.41V22h2v-3.59L14.59 21 16 19.59l-4-4V14h1.59l4 4L19 16.59 16.41 14H20v-2h-8zM19 2h2v5h-2zm0 6h2v2h-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/shape_line.svg b/html/matt-chat/uswds/img/material-icons/shape_line.svg
new file mode 100644
index 0000000..4122234
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/shape_line.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M6 11c2.76 0 5-2.24 5-5S8.76 1 6 1 1 3.24 1 6s2.24 5 5 5zm15 3h-5c-1.1 0-2 .9-2 2v5c0 1.1.9 2 2 2h5c1.1 0 2-.9 2-2v-5c0-1.1-.9-2-2-2z"/><path d="M17.71 7.7c.4.19.83.3 1.29.3 1.65 0 3-1.35 3-3s-1.35-3-3-3-3 1.35-3 3c0 .46.11.89.3 1.29L6.29 16.3c-.4-.19-.83-.3-1.29-.3-1.65 0-3 1.35-3 3s1.35 3 3 3 3-1.35 3-3c0-.46-.11-.89-.3-1.29L17.71 7.7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/share.svg b/html/matt-chat/uswds/img/material-icons/share.svg
new file mode 100644
index 0000000..ed3e530
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/share.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81 1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9c-1.66 0-3 1.34-3 3s1.34 3 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.16c-.05.21-.08.43-.08.65 0 1.61 1.31 2.92 2.92 2.92 1.61 0 2.92-1.31 2.92-2.92s-1.31-2.92-2.92-2.92z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/share_location.svg b/html/matt-chat/uswds/img/material-icons/share_location.svg
new file mode 100644
index 0000000..9601176
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/share_location.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13.02 19.93v2.02c2.01-.2 3.84-1 5.32-2.21l-1.42-1.43a7.941 7.941 0 0 1-3.9 1.62zM4.03 12c0-4.05 3.03-7.41 6.95-7.93V2.05C5.95 2.58 2.03 6.84 2.03 12c0 5.16 3.92 9.42 8.95 9.95v-2.02c-3.92-.52-6.95-3.88-6.95-7.93zm15.92-1h2.02c-.2-2.01-1-3.84-2.21-5.32l-1.43 1.43c.86 1.1 1.44 2.43 1.62 3.89zm-1.61-6.74a9.981 9.981 0 0 0-5.32-2.21v2.02c1.46.18 2.79.76 3.9 1.62l1.42-1.43zm-.01 12.64 1.43 1.42A9.949 9.949 0 0 0 21.97 13h-2.02a7.941 7.941 0 0 1-1.62 3.9z"/><path d="M16 11.1C16 8.61 14.1 7 12 7s-4 1.61-4 4.1c0 1.66 1.33 3.63 4 5.9 2.67-2.27 4-4.24 4-5.9zm-4 .9a1.071 1.071 0 0 1 0-2.14A1.071 1.071 0 0 1 12 12z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/shield.svg b/html/matt-chat/uswds/img/material-icons/shield.svg
new file mode 100644
index 0000000..b842df3
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/shield.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 1 3 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V5l-9-4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/shield_moon.svg b/html/matt-chat/uswds/img/material-icons/shield_moon.svg
new file mode 100644
index 0000000..6a77dda
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/shield_moon.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2 4 5v6.09c0 5.05 3.41 9.76 8 10.91 4.59-1.15 8-5.86 8-10.91V5l-8-3zm3.97 12.41c-1.84 2.17-5.21 2.1-6.96-.07-2.19-2.72-.65-6.72 2.69-7.33.34-.06.63.27.51.6-.46 1.23-.39 2.64.32 3.86a4.51 4.51 0 0 0 3.18 2.2c.34.05.49.47.26.74z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/shop.svg b/html/matt-chat/uswds/img/material-icons/shop.svg
new file mode 100644
index 0000000..0b4e499
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/shop.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16 6V4c0-1.11-.89-2-2-2h-4c-1.11 0-2 .89-2 2v2H2v13c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V6h-6zm-6-2h4v2h-4V4zM9 18V9l7.5 4L9 18z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/shop_2.svg b/html/matt-chat/uswds/img/material-icons/shop_2.svg
new file mode 100644
index 0000000..19db249
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/shop_2.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 9H1v11c0 1.11.89 2 2 2h16v-2H3V9z"/><path d="M18 5V3c0-1.11-.89-2-2-2h-4c-1.11 0-2 .89-2 2v2H5v11c0 1.11.89 2 2 2h14c1.11 0 2-.89 2-2V5h-5zm-6-2h4v2h-4V3zm0 12V8l5.5 3.5L12 15z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/shop_two.svg b/html/matt-chat/uswds/img/material-icons/shop_two.svg
new file mode 100644
index 0000000..534daf6
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/shop_two.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 9H1v11c0 1.11.89 2 2 2h14c1.11 0 2-.89 2-2H3V9zm15-4V3c0-1.11-.89-2-2-2h-4c-1.11 0-2 .89-2 2v2H5v11c0 1.11.89 2 2 2h14c1.11 0 2-.89 2-2V5h-5zm-6-2h4v2h-4V3zm0 12V8l5.5 3-5.5 4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/shopping_bag.svg b/html/matt-chat/uswds/img/material-icons/shopping_bag.svg
new file mode 100644
index 0000000..c46b253
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/shopping_bag.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 6h-2c0-2.21-1.79-4-4-4S8 3.79 8 6H6c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm-8 4c0 .55-.45 1-1 1s-1-.45-1-1V8h2v2zm2-6c1.1 0 2 .9 2 2h-4c0-1.1.9-2 2-2zm4 6c0 .55-.45 1-1 1s-1-.45-1-1V8h2v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/shopping_basket.svg b/html/matt-chat/uswds/img/material-icons/shopping_basket.svg
new file mode 100644
index 0000000..bc41fa0
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/shopping_basket.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m17.21 9-4.38-6.56a.993.993 0 0 0-.83-.42c-.32 0-.64.14-.83.43L6.79 9H2c-.55 0-1 .45-1 1 0 .09.01.18.04.27l2.54 9.27c.23.84 1 1.46 1.92 1.46h13c.92 0 1.69-.62 1.93-1.46l2.54-9.27L23 10c0-.55-.45-1-1-1h-4.79zM9 9l3-4.4L15 9H9zm3 8c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/shopping_cart.svg b/html/matt-chat/uswds/img/material-icons/shopping_cart.svg
new file mode 100644
index 0000000..52e5ea8
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/shopping_cart.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M7 18c-1.1 0-1.99.9-1.99 2S5.9 22 7 22s2-.9 2-2-.9-2-2-2zM1 2v2h2l3.6 7.59-1.35 2.45c-.16.28-.25.61-.25.96 0 1.1.9 2 2 2h12v-2H7.42c-.14 0-.25-.11-.25-.25l.03-.12.9-1.63h7.45c.75 0 1.41-.41 1.75-1.03l3.58-6.49A1.003 1.003 0 0 0 20 4H5.21l-.94-2H1zm16 16c-1.1 0-1.99.9-1.99 2s.89 2 1.99 2 2-.9 2-2-.9-2-2-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/shopping_cart_checkout.svg b/html/matt-chat/uswds/img/material-icons/shopping_cart_checkout.svg
new file mode 100644
index 0000000..cf4d39d
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/shopping_cart_checkout.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M7 18c-1.1 0-1.99.9-1.99 2S5.9 22 7 22s2-.9 2-2-.9-2-2-2zm10 0c-1.1 0-1.99.9-1.99 2s.89 2 1.99 2 2-.9 2-2-.9-2-2-2zm-8.9-5h7.45c.75 0 1.41-.41 1.75-1.03L21 4.96 19.25 4l-3.7 7H8.53L4.27 2H1v2h2l3.6 7.59-1.35 2.44C4.52 15.37 5.48 17 7 17h12v-2H7l1.1-2zM12 2l4 4-4 4-1.41-1.41L12.17 7H8V5h4.17l-1.59-1.59L12 2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/short_text.svg b/html/matt-chat/uswds/img/material-icons/short_text.svg
new file mode 100644
index 0000000..480e381
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/short_text.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M4 9h16v2H4V9zm0 4h10v2H4v-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/shortcut.svg b/html/matt-chat/uswds/img/material-icons/shortcut.svg
new file mode 100644
index 0000000..b8f71e8
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/shortcut.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m21 11-6-6v5H8c-2.76 0-5 2.24-5 5v4h2v-4c0-1.65 1.35-3 3-3h7v5l6-6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/show_chart.svg b/html/matt-chat/uswds/img/material-icons/show_chart.svg
new file mode 100644
index 0000000..cd98f82
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/show_chart.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m3.5 18.49 6-6.01 4 4L22 6.92l-1.41-1.41-7.09 7.97-4-4L2 16.99z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/shower.svg b/html/matt-chat/uswds/img/material-icons/shower.svg
new file mode 100644
index 0000000..40a8c1e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/shower.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><circle cx="8" cy="17" r="1"/><circle cx="12" cy="17" r="1"/><circle cx="16" cy="17" r="1"/><path d="M13 5.08V3h-2v2.08C7.61 5.57 5 8.47 5 12v2h14v-2c0-3.53-2.61-6.43-6-6.92z"/><circle cx="8" cy="20" r="1"/><circle cx="12" cy="20" r="1"/><circle cx="16" cy="20" r="1"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/shuffle.svg b/html/matt-chat/uswds/img/material-icons/shuffle.svg
new file mode 100644
index 0000000..be6f381
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/shuffle.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10.59 9.17 5.41 4 4 5.41l5.17 5.17 1.42-1.41zM14.5 4l2.04 2.04L4 18.59 5.41 20 17.96 7.46 20 9.5V4h-5.5zm.33 9.41-1.41 1.41 3.13 3.13L14.5 20H20v-5.5l-2.04 2.04-3.13-3.13z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/shuffle_on.svg b/html/matt-chat/uswds/img/material-icons/shuffle_on.svg
new file mode 100644
index 0000000..85572eb
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/shuffle_on.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill-rule="evenodd" d="M21 1H3c-1.1 0-2 .9-2 2v18c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zM10.59 9.17 5.41 4 4 5.41l5.17 5.17 1.42-1.41zM14.5 4l2.04 2.04L4 18.59 5.41 20 17.96 7.46 20 9.5V4h-5.5zm.33 9.41-1.41 1.41 3.13 3.13L14.5 20H20v-5.5l-2.04 2.04-3.13-3.13z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/shutter_speed.svg b/html/matt-chat/uswds/img/material-icons/shutter_speed.svg
new file mode 100644
index 0000000..ab8e7a5
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/shutter_speed.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15 1H9v2h6V1zm4.03 6.39 1.42-1.42c-.43-.51-.9-.99-1.41-1.41l-1.42 1.42A8.962 8.962 0 0 0 12 4c-4.97 0-9 4.03-9 9s4.02 9 9 9a8.994 8.994 0 0 0 7.03-14.61zM12 20c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7zm-.32-5H6.35a5.992 5.992 0 0 0 3.41 3.56l-.11-.06 2.03-3.5zm5.97-4a6.012 6.012 0 0 0-3.34-3.54L12.26 11h5.39zm-7.04 7.83c.45.11.91.17 1.39.17 1.34 0 2.57-.45 3.57-1.19l-2.11-3.9-2.85 4.92zM7.55 8.99A5.965 5.965 0 0 0 6 13c0 .34.04.67.09 1h4.72L7.55 8.99zm8.79 8.14A5.94 5.94 0 0 0 18 13c0-.34-.04-.67-.09-1h-4.34l2.77 5.13zm-3.01-9.98C12.9 7.06 12.46 7 12 7c-1.4 0-2.69.49-3.71 1.29l2.32 3.56 2.72-4.7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/sick.svg b/html/matt-chat/uswds/img/material-icons/sick.svg
new file mode 100644
index 0000000..29db98d
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/sick.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 9c-1.1 0-2-.9-2-2s2-4 2-4 2 2.9 2 4-.9 2-2 2zm-3.5-2c0-.73.41-1.71.92-2.66A9.965 9.965 0 0 0 11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12c0-.55-.06-1.09-.14-1.62a3.5 3.5 0 0 1-.86.12c-1.93 0-3.5-1.57-3.5-3.5zm-1.88.38 1.06 1.06-1.06 1.06 1.06 1.06-1.06 1.06L13.5 9.5l2.12-2.12zm-8.3 1.06 1.06-1.06L10.5 9.5l-2.12 2.12-1.06-1.06L8.38 9.5 7.32 8.44zM15.44 17c-.69-1.19-1.97-2-3.44-2s-2.75.81-3.44 2H6.88c.3-.76.76-1.43 1.34-1.99L5.24 13.3c-.45.26-1.01.28-1.49 0a1.501 1.501 0 0 1 1.5-2.6c.48.28.74.78.74 1.29l3.58 2.07c.73-.36 1.55-.56 2.43-.56 2.33 0 4.32 1.45 5.12 3.5h-1.68z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/sign_language.svg b/html/matt-chat/uswds/img/material-icons/sign_language.svg
new file mode 100644
index 0000000..1339c98
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/sign_language.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m12.49 13-.93-1.86c-.37-.74-.07-1.64.67-2.01l.26-.13 5.73 5.46c.5.47.78 1.13.78 1.81v5.23a2.5 2.5 0 0 1-2.5 2.5h-11c-.55 0-1-.45-1-1s.45-1 1-1H10v-1H4c-.55 0-1-.45-1-1s.45-1 1-1h6v-1H3c-.55 0-1-.45-1-1s.45-1 1-1h7v-1H4.5c-.55 0-1-.45-1-1s.45-1 1-1h7.99zm-.71-5.88c-.84.4-1.17.62-1.63 1.19l-2.7-2.85A.996.996 0 1 1 8.9 4.09l2.88 3.03zM9.64 9.21a3.46 3.46 0 0 0-.2 1.79h-.86L6.31 8.61a.987.987 0 0 1 .04-1.41.996.996 0 0 1 1.41.04l1.88 1.97zm10.69 4.7.88-.83c.5-.47.79-1.13.79-1.82V3.35l-.27-.1c-.78-.28-1.64.12-1.92.9l-.71 1.96-5.5-5.8a.996.996 0 1 0-1.45 1.37l3.79 3.99-.73.69-4.82-5.08a.996.996 0 1 0-1.45 1.37l3.78 3.98L15.38 9l3.61 3.43.61.58c.29.27.53.57.73.9z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/signal_cellular_0_bar.svg b/html/matt-chat/uswds/img/material-icons/signal_cellular_0_bar.svg
new file mode 100644
index 0000000..588ace5
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/signal_cellular_0_bar.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 6.83V20H6.83L20 6.83M22 2 2 22h20V2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/signal_cellular_4_bar.svg b/html/matt-chat/uswds/img/material-icons/signal_cellular_4_bar.svg
new file mode 100644
index 0000000..dc28eb7
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/signal_cellular_4_bar.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M2 22h20V2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/signal_cellular_alt.svg b/html/matt-chat/uswds/img/material-icons/signal_cellular_alt.svg
new file mode 100644
index 0000000..fcfdbf0
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/signal_cellular_alt.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 4h3v16h-3zM5 14h3v6H5zm6-5h3v11h-3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/signal_cellular_alt_1_bar.svg b/html/matt-chat/uswds/img/material-icons/signal_cellular_alt_1_bar.svg
new file mode 100644
index 0000000..88fe2e0
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/signal_cellular_alt_1_bar.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M5 14h3v6H5v-6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/signal_cellular_alt_2_bar.svg b/html/matt-chat/uswds/img/material-icons/signal_cellular_alt_2_bar.svg
new file mode 100644
index 0000000..4a79792
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/signal_cellular_alt_2_bar.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M5 14h3v6H5v-6zm6-5h3v11h-3V9z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/signal_cellular_connected_no_internet_0_bar.svg b/html/matt-chat/uswds/img/material-icons/signal_cellular_connected_no_internet_0_bar.svg
new file mode 100644
index 0000000..07bc729
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/signal_cellular_connected_no_internet_0_bar.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 18h2v-8h-2v8zm0 4h2v-2h-2v2zm-2-2v2H2L22 2v6h-2V6.83L6.83 20H18z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/signal_cellular_connected_no_internet_4_bar.svg b/html/matt-chat/uswds/img/material-icons/signal_cellular_connected_no_internet_4_bar.svg
new file mode 100644
index 0000000..0faee96
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/signal_cellular_connected_no_internet_4_bar.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 18h2v-8h-2v8zm0 4h2v-2h-2v2zM2 22h16V8h4V2L2 22z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/signal_cellular_no_sim.svg b/html/matt-chat/uswds/img/material-icons/signal_cellular_no_sim.svg
new file mode 100644
index 0000000..ae7f8fc
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/signal_cellular_no_sim.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18.99 5c0-1.1-.89-2-1.99-2h-7L7.66 5.34 19 16.68 18.99 5zM3.65 3.88 2.38 5.15 5 7.77V19c0 1.1.9 2 2 2h10.01c.35 0 .67-.1.96-.26l1.88 1.88 1.27-1.27L3.65 3.88z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/signal_cellular_nodata.svg b/html/matt-chat/uswds/img/material-icons/signal_cellular_nodata.svg
new file mode 100644
index 0000000..b722a9c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/signal_cellular_nodata.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M22 13h-9v9H2L22 2v11zm-1 2.41L19.59 14l-2.09 2.09L15.41 14 14 15.41l2.09 2.09L14 19.59 15.41 21l2.09-2.08L19.59 21 21 19.59l-2.08-2.09L21 15.41z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/signal_cellular_null.svg b/html/matt-chat/uswds/img/material-icons/signal_cellular_null.svg
new file mode 100644
index 0000000..588ace5
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/signal_cellular_null.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 6.83V20H6.83L20 6.83M22 2 2 22h20V2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/signal_cellular_off.svg b/html/matt-chat/uswds/img/material-icons/signal_cellular_off.svg
new file mode 100644
index 0000000..61d44c9
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/signal_cellular_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m21 1-8.59 8.59L21 18.18V1zM4.77 4.5 3.5 5.77l6.36 6.36L1 21h17.73l2 2L22 21.73 4.77 4.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/signal_wifi_0_bar.svg b/html/matt-chat/uswds/img/material-icons/signal_wifi_0_bar.svg
new file mode 100644
index 0000000..19c900b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/signal_wifi_0_bar.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 6c3.33 0 6.49 1.08 9.08 3.07L12 18.17l-9.08-9.1C5.51 7.08 8.67 6 12 6m0-2C7.31 4 3.07 5.9 0 8.98L12 21 24 8.98A16.88 16.88 0 0 0 12 4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/signal_wifi_4_bar.svg b/html/matt-chat/uswds/img/material-icons/signal_wifi_4_bar.svg
new file mode 100644
index 0000000..d38f1e8
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/signal_wifi_4_bar.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12.01 21.49 23.64 7c-.45-.34-4.93-4-11.64-4C5.28 3 .81 6.66.36 7l11.63 14.49.01.01.01-.01z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/signal_wifi_4_bar_lock.svg b/html/matt-chat/uswds/img/material-icons/signal_wifi_4_bar_lock.svg
new file mode 100644
index 0000000..539d298
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/signal_wifi_4_bar_lock.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21.98 11 24 8.98A16.88 16.88 0 0 0 12 4C7.31 4 3.07 5.9 0 8.98l6.35 6.36L12 21l3.05-3.05V15c0-.45.09-.88.23-1.29.54-1.57 2.01-2.71 3.77-2.71h2.93z"/><path d="M22 16v-1c0-1.1-.9-2-2-2s-2 .9-2 2v1c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-3c0-.55-.45-1-1-1zm-1 0h-2v-1c0-.55.45-1 1-1s1 .45 1 1v1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/signal_wifi_bad.svg b/html/matt-chat/uswds/img/material-icons/signal_wifi_bad.svg
new file mode 100644
index 0000000..be69184
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/signal_wifi_bad.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M24 8.98A16.88 16.88 0 0 0 12 4C7.31 4 3.07 5.9 0 8.98L12 21v-9h8.99L24 8.98zM19.59 14l-2.09 2.09L15.41 14 14 15.41l2.09 2.09L14 19.59 15.41 21l2.09-2.08L19.59 21 21 19.59l-2.08-2.09L21 15.41 19.59 14z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/signal_wifi_connected_no_internet_4.svg b/html/matt-chat/uswds/img/material-icons/signal_wifi_connected_no_internet_4.svg
new file mode 100644
index 0000000..be69184
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/signal_wifi_connected_no_internet_4.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M24 8.98A16.88 16.88 0 0 0 12 4C7.31 4 3.07 5.9 0 8.98L12 21v-9h8.99L24 8.98zM19.59 14l-2.09 2.09L15.41 14 14 15.41l2.09 2.09L14 19.59 15.41 21l2.09-2.08L19.59 21 21 19.59l-2.08-2.09L21 15.41 19.59 14z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/signal_wifi_off.svg b/html/matt-chat/uswds/img/material-icons/signal_wifi_off.svg
new file mode 100644
index 0000000..fcf92d0
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/signal_wifi_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M23.64 7c-.45-.34-4.93-4-11.64-4-1.5 0-2.89.19-4.15.48L18.18 13.8 23.64 7zm-6.6 8.22L3.27 1.44 2 2.72l2.05 2.06C1.91 5.76.59 6.82.36 7l11.63 14.49.01.01.01-.01 3.9-4.86 3.32 3.32 1.27-1.27-3.46-3.46z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/signal_wifi_statusbar_4_bar.svg b/html/matt-chat/uswds/img/material-icons/signal_wifi_statusbar_4_bar.svg
new file mode 100644
index 0000000..29da057
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/signal_wifi_statusbar_4_bar.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 4C7.31 4 3.07 5.9 0 8.98L12 21 24 8.98A16.88 16.88 0 0 0 12 4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/signal_wifi_statusbar_connected_no_internet_4.svg b/html/matt-chat/uswds/img/material-icons/signal_wifi_statusbar_connected_no_internet_4.svg
new file mode 100644
index 0000000..a048e8a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/signal_wifi_statusbar_connected_no_internet_4.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 4C7.31 4 3.07 5.9 0 8.98L12 21l5-5.01V8h5.92C19.97 5.51 16.16 4 12 4zm7 14h2v2h-2z"/><path d="M19 10h2v6h-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/signal_wifi_statusbar_null.svg b/html/matt-chat/uswds/img/material-icons/signal_wifi_statusbar_null.svg
new file mode 100644
index 0000000..775fbe3
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/signal_wifi_statusbar_null.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 4C7.31 4 3.07 5.9 0 8.98L12 21 24 8.98A16.88 16.88 0 0 0 12 4zM2.92 9.07C5.51 7.08 8.67 6 12 6s6.49 1.08 9.08 3.07L12 18.17l-9.08-9.1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/signpost.svg b/html/matt-chat/uswds/img/material-icons/signpost.svg
new file mode 100644
index 0000000..b66544d
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/signpost.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13 10h5l3-3-3-3h-5V2h-2v2H4v6h7v2H6l-3 3 3 3h5v4h2v-4h7v-6h-7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/sim_card.svg b/html/matt-chat/uswds/img/material-icons/sim_card.svg
new file mode 100644
index 0000000..b717193
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/sim_card.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19.99 4c0-1.1-.89-2-1.99-2h-8L4 8v12c0 1.1.9 2 2 2h12.01c1.1 0 1.99-.9 1.99-2l-.01-16zM9 19H7v-2h2v2zm8 0h-2v-2h2v2zm-8-4H7v-4h2v4zm4 4h-2v-4h2v4zm0-6h-2v-2h2v2zm4 2h-2v-4h2v4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/sim_card_alert.svg b/html/matt-chat/uswds/img/material-icons/sim_card_alert.svg
new file mode 100644
index 0000000..f471892
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/sim_card_alert.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 2h-8L4.02 8 4 20c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-5 15h-2v-2h2v2zm0-4h-2V8h2v5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/sim_card_download.svg b/html/matt-chat/uswds/img/material-icons/sim_card_download.svg
new file mode 100644
index 0000000..cc6e0c2
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/sim_card_download.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 2h-8L4 8v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-6 15-4-4h3V9.02L13 9v4h3l-4 4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/single_bed.svg b/html/matt-chat/uswds/img/material-icons/single_bed.svg
new file mode 100644
index 0000000..bd4337a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/single_bed.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 12c0-1.1-.9-2-2-2V7c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v3c-1.1 0-2 .9-2 2v5h1.33L6 19h1l.67-2h8.67l.66 2h1l.67-2H20v-5zm-4-2h-3V7h3v3zM8 7h3v3H8V7zm-2 5h12v3H6v-3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/sip.svg b/html/matt-chat/uswds/img/material-icons/sip.svg
new file mode 100644
index 0000000..ff91f3c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/sip.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15.5 10.5h2v1h-2z"/><path d="M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-10 6.5H6.5v.75H9c.55 0 1 .45 1 1V14c0 .55-.45 1-1 1H5v-1.5h3.5v-.75H6c-.55 0-1-.45-1-1V10c0-.55.45-1 1-1h4v1.5zm3 4.5h-2V9h2v6zm6-3c0 .55-.45 1-1 1h-2.5v2H14V9h4c.55 0 1 .45 1 1v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/skateboarding.svg b/html/matt-chat/uswds/img/material-icons/skateboarding.svg
new file mode 100644
index 0000000..5e287e9
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/skateboarding.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13 3c0-1.1.9-2 2-2s2 .9 2 2-.9 2-2 2-2-.9-2-2zM7.25 22.5c-.41 0-.75.34-.75.75s.34.75.75.75.75-.34.75-.75-.34-.75-.75-.75zm8.5 0c-.41 0-.75.34-.75.75s.34.75.75.75.75-.34.75-.75-.34-.75-.75-.75zm3.49-3.5a.72.72 0 0 0-.59.3c-.55.73-1.42 1.2-2.4 1.2H16v-6l-4.32-2.67 1.8-2.89A6.507 6.507 0 0 0 19 12v-2c-1.85 0-3.44-1.12-4.13-2.72l-.52-1.21C14.16 5.64 13.61 5 12.7 5H7L4.5 9l1.7 1.06L8.1 7h2.35l-2.4 3.84c-.31.5-.39 1.11-.21 1.67l1.34 4.15-3.12 3.76c-.7-.16-1.3-.57-1.71-1.12a.749.749 0 1 0-1.2.9c.82 1.1 2.13 1.8 3.6 1.8h9.5c1.47 0 2.78-.7 3.6-1.8.1-.14.15-.3.15-.45 0-.39-.32-.75-.76-.75zM14 20.5H8.6l2.9-3.5-1-3.3 3.5 2.2v4.6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/skip_next.svg b/html/matt-chat/uswds/img/material-icons/skip_next.svg
new file mode 100644
index 0000000..150159d
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/skip_next.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m6 18 8.5-6L6 6v12zM16 6v12h2V6h-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/skip_previous.svg b/html/matt-chat/uswds/img/material-icons/skip_previous.svg
new file mode 100644
index 0000000..0d2ec25
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/skip_previous.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M6 6h2v12H6zm3.5 6 8.5 6V6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/sledding.svg b/html/matt-chat/uswds/img/material-icons/sledding.svg
new file mode 100644
index 0000000..ff178c2
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/sledding.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M14 4.5c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2 2 .9 2 2zm8.8 15.74a4.003 4.003 0 0 1-5.04 2.57L1 17.36l.46-1.43 3.93 1.28.46-1.43-3.92-1.28.46-1.43L4 13.6V9.5l5.47-2.35c.39-.17.84-.21 1.28-.07.95.31 1.46 1.32 1.16 2.27l-1.05 3.24 2.14-.34c.89-.15 1.76.32 2.14 1.14l2.08 4.51 1.93.63-.46 1.43-3.32-1.08-.47 1.42 3.32 1.08c1.31.43 2.72-.29 3.15-1.61.43-1.31-.29-2.72-1.61-3.15l.46-1.43c2.11.69 3.27 2.95 2.58 5.05zM6 14.25l1.01.33c-.22-.42-.28-.92-.12-1.4L7.92 10 6 10.82v3.43zm7.94 4.16-6.66-2.16-.46 1.43 6.66 2.16.46-1.43zm.69-1.36-1.18-2.56-3.97.89 5.15 1.67z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/slideshow.svg b/html/matt-chat/uswds/img/material-icons/slideshow.svg
new file mode 100644
index 0000000..079a6be
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/slideshow.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10 8v8l5-4-5-4zm9-5H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/slow_motion_video.svg b/html/matt-chat/uswds/img/material-icons/slow_motion_video.svg
new file mode 100644
index 0000000..64ea773
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/slow_motion_video.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13.05 9.79 10 7.5v9l3.05-2.29L16 12zm0 0L10 7.5v9l3.05-2.29L16 12zm0 0L10 7.5v9l3.05-2.29L16 12zM11 4.07V2.05c-2.01.2-3.84 1-5.32 2.21L7.1 5.69A7.941 7.941 0 0 1 11 4.07zM5.69 7.1 4.26 5.68A9.949 9.949 0 0 0 2.05 11h2.02c.18-1.46.76-2.79 1.62-3.9zM4.07 13H2.05c.2 2.01 1 3.84 2.21 5.32l1.43-1.43A7.868 7.868 0 0 1 4.07 13zm1.61 6.74A9.981 9.981 0 0 0 11 21.95v-2.02a7.941 7.941 0 0 1-3.9-1.62l-1.42 1.43zM22 12c0 5.16-3.92 9.42-8.95 9.95v-2.02C16.97 19.41 20 16.05 20 12s-3.03-7.41-6.95-7.93V2.05C18.08 2.58 22 6.84 22 12z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/smart_button.svg b/html/matt-chat/uswds/img/material-icons/smart_button.svg
new file mode 100644
index 0000000..c0b9c57
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/smart_button.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M22 9v6c0 1.1-.9 2-2 2h-1v-2h1V9H4v6h6v2H4c-1.1 0-2-.9-2-2V9c0-1.1.9-2 2-2h16c1.1 0 2 .9 2 2zm-7.5 10 1.09-2.41L18 15.5l-2.41-1.09L14.5 12l-1.09 2.41L11 15.5l2.41 1.09L14.5 19zm2.5-5 .62-1.38L19 12l-1.38-.62L17 10l-.62 1.38L15 12l1.38.62L17 14zm-2.5 5 1.09-2.41L18 15.5l-2.41-1.09L14.5 12l-1.09 2.41L11 15.5l2.41 1.09L14.5 19zm2.5-5 .62-1.38L19 12l-1.38-.62L17 10l-.62 1.38L15 12l1.38.62L17 14z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/smart_display.svg b/html/matt-chat/uswds/img/material-icons/smart_display.svg
new file mode 100644
index 0000000..2b2e347
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/smart_display.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zM9.5 16.5v-9l7 4.5-7 4.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/smart_screen.svg b/html/matt-chat/uswds/img/material-icons/smart_screen.svg
new file mode 100644
index 0000000..64b225e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/smart_screen.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 5H3c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm-3 12H6V7h12v10z"/><path d="M15 11.25h1.5v1.5H15zm-2.5 0H14v1.5h-1.5zm-2.5 0h1.5v1.5H10zm-2.5 0H9v1.5H7.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/smart_toy.svg b/html/matt-chat/uswds/img/material-icons/smart_toy.svg
new file mode 100644
index 0000000..d673d5d
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/smart_toy.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 9V7c0-1.1-.9-2-2-2h-3c0-1.66-1.34-3-3-3S9 3.34 9 5H6c-1.1 0-2 .9-2 2v2c-1.66 0-3 1.34-3 3s1.34 3 3 3v4c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2v-4c1.66 0 3-1.34 3-3s-1.34-3-3-3zM7.5 11.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5S9.83 13 9 13s-1.5-.67-1.5-1.5zM16 17H8v-2h8v2zm-1-4c-.83 0-1.5-.67-1.5-1.5S14.17 10 15 10s1.5.67 1.5 1.5S15.83 13 15 13z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/smartphone.svg b/html/matt-chat/uswds/img/material-icons/smartphone.svg
new file mode 100644
index 0000000..63416de
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/smartphone.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 1.01 7 1c-1.1 0-2 .9-2 2v18c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-1.99-2-1.99zM17 19H7V5h10v14z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/smoke_free.svg b/html/matt-chat/uswds/img/material-icons/smoke_free.svg
new file mode 100644
index 0000000..3b94a5d
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/smoke_free.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m2 6 6.99 7H2v3h9.99l7 7 1.26-1.25-17-17zm18.5 7H22v3h-1.5zM18 13h1.5v3H18zm.85-8.12c.62-.61 1-1.45 1-2.38h-1.5c0 1.02-.83 1.85-1.85 1.85v1.5c2.24 0 4 1.83 4 4.07V12H22V9.92c0-2.23-1.28-4.15-3.15-5.04zM14.5 8.7h1.53c1.05 0 1.97.74 1.97 2.05V12h1.5v-1.59c0-1.8-1.6-3.16-3.47-3.16H14.5c-1.02 0-1.85-.98-1.85-2s.83-1.75 1.85-1.75V2a3.35 3.35 0 0 0 0 6.7zm2.5 7.23V13h-2.93z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/smoking_rooms.svg b/html/matt-chat/uswds/img/material-icons/smoking_rooms.svg
new file mode 100644
index 0000000..7964800
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/smoking_rooms.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M2 16h15v3H2zm18.5 0H22v3h-1.5zM18 16h1.5v3H18zm.85-8.27c.62-.61 1-1.45 1-2.38C19.85 3.5 18.35 2 16.5 2v1.5c1.02 0 1.85.83 1.85 1.85S17.52 7.2 16.5 7.2v1.5c2.24 0 4 1.83 4 4.07V15H22v-2.24c0-2.22-1.28-4.14-3.15-5.03zm-2.82 2.47H14.5c-1.02 0-1.85-.98-1.85-2s.83-1.75 1.85-1.75v-1.5a3.35 3.35 0 0 0 0 6.7h1.53c1.05 0 1.97.74 1.97 2.05V15h1.5v-1.64c0-1.81-1.6-3.16-3.47-3.16z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/sms.svg b/html/matt-chat/uswds/img/material-icons/sms.svg
new file mode 100644
index 0000000..b427d45
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/sms.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM9 11H7V9h2v2zm4 0h-2V9h2v2zm4 0h-2V9h2v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/sms_failed.svg b/html/matt-chat/uswds/img/material-icons/sms_failed.svg
new file mode 100644
index 0000000..72b0945
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/sms_failed.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-7 12h-2v-2h2v2zm0-4h-2V6h2v4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/snippet_folder.svg b/html/matt-chat/uswds/img/material-icons/snippet_folder.svg
new file mode 100644
index 0000000..29cddc8
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/snippet_folder.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m15.88 10.5 1.62 1.62v3.38h-3v-5h1.38zM22 8v10c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2l.01-12c0-1.1.89-2 1.99-2h6l2 2h8c1.1 0 2 .9 2 2zm-3 3.5L16.5 9H13v8h6v-5.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/snooze.svg b/html/matt-chat/uswds/img/material-icons/snooze.svg
new file mode 100644
index 0000000..f1de891
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/snooze.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M7.88 3.39 6.6 1.86 2 5.71l1.29 1.53 4.59-3.85zM22 5.72l-4.6-3.86-1.29 1.53 4.6 3.86L22 5.72zM12 4c-4.97 0-9 4.03-9 9s4.02 9 9 9a9 9 0 0 0 0-18zm0 16c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7zm-3-9h3.63L9 15.2V17h6v-2h-3.63L15 10.8V9H9v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/snowboarding.svg b/html/matt-chat/uswds/img/material-icons/snowboarding.svg
new file mode 100644
index 0000000..adaa27e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/snowboarding.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M14 3c0-1.1.9-2 2-2s2 .9 2 2-.9 2-2 2-2-.9-2-2zm7.4 17.09a.748.748 0 0 0-.64.17c-.69.6-1.64.88-2.6.67L17 20.69l-1-6.19-3.32-2.67 1.8-2.89A6.507 6.507 0 0 0 20 12v-2c-1.85 0-3.44-1.12-4.13-2.72l-.52-1.21C15.16 5.64 14.61 5 13.7 5H8L5.5 9l1.7 1.06L9.1 7h2.35l-2.51 3.99c-.28.45-.37 1-.25 1.52L9.5 16 6 18.35l-.47-.1c-.96-.2-1.71-.85-2.1-1.67a.744.744 0 0 0-.51-.42c-.43-.09-.82.2-.9.58-.04.14-.02.31.05.46.58 1.24 1.71 2.2 3.15 2.51l12.63 2.69c1.44.31 2.86-.11 3.9-1.01.13-.11.21-.26.24-.41.07-.38-.16-.8-.59-.89zM8.73 18.93l3.02-2.03-.44-3.32 2.84 2.02.75 4.64-6.17-1.31z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/snowmobile.svg b/html/matt-chat/uswds/img/material-icons/snowmobile.svg
new file mode 100644
index 0000000..b75d127
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/snowmobile.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M22 17c0 .55-.45 1-1 1h-.17l-2.2-2.2C20.58 15.37 22 14.4 22 13c0-1-8-8-8-8h-3v2h2.25l1.45 1.3L11 11l-9.5-1L0 13l4.54 1.36-3.49 1.88C-.77 17.22-.07 20 2 20h6c2.21 0 4-1.79 4-4h4l2 2h-3v2h6c1.66 0 3-1.34 3-3h-2zM8 18H2l5.25-2.83L10 16a2 2 0 0 1-2 2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/snowshoeing.svg b/html/matt-chat/uswds/img/material-icons/snowshoeing.svg
new file mode 100644
index 0000000..31de68f
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/snowshoeing.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12.5 3.5c0-1.1.9-2 2-2s2 .9 2 2-.9 2-2 2-2-.9-2-2zM6.32 19.03l-1.14-1.47L4 18.5l2.38 3.04c.51.65 1.16 1.15 1.88 1.41.28.1.53.04.72-.11.3-.23.42-.7.12-1.07a.84.84 0 0 0-.31-.22 2.97 2.97 0 0 1-1.14-.83l-.08-.1L11 18.2l.89-3.22 2.11 2v4.52h-2V23h3.87c.82 0 1.61-.21 2.26-.61.26-.16.37-.39.37-.64 0-.38-.3-.75-.77-.75-.13 0-.26.04-.37.1-.4.23-.87.37-1.36.4v-6.02l-2.11-2 .6-3C15.79 11.98 17.8 13 20 13v-2c-1.9 0-3.51-1.02-4.31-2.42l-1-1.58c-.4-.6-1-1-1.7-1-.75 0-1.41.34-5.99 2.28V13h2V9.58l1.79-.7L9.2 17l-2.88 2.03z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/soap.svg b/html/matt-chat/uswds/img/material-icons/soap.svg
new file mode 100644
index 0000000..285ade8
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/soap.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m9.12 5-7.18 6.79c-.6.56-.94 1.35-.94 2.18V20c0 1.66 1.34 3 3 3h13.75a1.25 1.25 0 0 0 0-2.5H12v-1h7.75a1.25 1.25 0 0 0 0-2.5H12v-1h8.75a1.25 1.25 0 0 0 0-2.5H12v-1h6.75a1.25 1.25 0 0 0 0-2.5H8.86c.64-1.11 1.48-2.58 1.49-2.61a1.065 1.065 0 0 0-.12-1.23C10.22 6.12 9.12 5 9.12 5zM14 6.25c.41 0 .75.34.75.75s-.34.75-.75.75-.75-.34-.75-.75.34-.75.75-.75m0-1.5c-1.24 0-2.25 1.01-2.25 2.25S12.76 9.25 14 9.25 16.25 8.24 16.25 7 15.24 4.75 14 4.75zm5.75.75c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5m0-1.5c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zM16.5 1c-.83 0-1.5.67-1.5 1.5S15.67 4 16.5 4 18 3.33 18 2.5 17.33 1 16.5 1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/social_distance.svg b/html/matt-chat/uswds/img/material-icons/social_distance.svg
new file mode 100644
index 0000000..612dc84
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/social_distance.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M4 5c0-1.1.9-2 2-2s2 .9 2 2-.9 2-2 2-2-.9-2-2zm4.78 3.58a6.95 6.95 0 0 0-5.56 0A2.01 2.01 0 0 0 2 10.43V11h8v-.57c0-.81-.48-1.53-1.22-1.85zM18 7c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm2.78 1.58a6.95 6.95 0 0 0-5.56 0A2.01 2.01 0 0 0 14 10.43V11h8v-.57c0-.81-.48-1.53-1.22-1.85zM22 17l-4-4v3H6v-3l-4 4 4 4v-3h12v3l4-4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/solar_power.svg b/html/matt-chat/uswds/img/material-icons/solar_power.svg
new file mode 100644
index 0000000..92e0daa
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/solar_power.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3.33 16H11v-3H4zM13 16h7.67L20 13h-7zm8.11 2H13v4h9zM2 22h9v-4H2.89zm9-14h2v3h-2zm4.764-.795 1.415-1.414L19.3 7.912l-1.414 1.414zm-11.059.708L6.826 5.79 8.24 7.206 6.12 9.327zM3 2h3v2H3zm15 0h3v2h-3zm-6 5c2.76 0 5-2.24 5-5H7c0 2.76 2.24 5 5 5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/sort.svg b/html/matt-chat/uswds/img/material-icons/sort.svg
new file mode 100644
index 0000000..84efa53
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/sort.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 18h6v-2H3v2zM3 6v2h18V6H3zm0 7h12v-2H3v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/sort_by_alpha.svg b/html/matt-chat/uswds/img/material-icons/sort_by_alpha.svg
new file mode 100644
index 0000000..946aa71
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/sort_by_alpha.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M14.94 4.66h-4.72l2.36-2.36zm-4.69 14.71h4.66l-2.33 2.33zM6.1 6.27 1.6 17.73h1.84l.92-2.45h5.11l.92 2.45h1.84L7.74 6.27H6.1zm-1.13 7.37 1.94-5.18 1.94 5.18H4.97zm10.76 2.5h6.12v1.59h-8.53v-1.29l5.92-8.56h-5.88v-1.6h8.3v1.26l-5.93 8.6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/sos.svg b/html/matt-chat/uswds/img/material-icons/sos.svg
new file mode 100644
index 0000000..274af94
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/sos.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13.5 7h-3c-1.1 0-2 .9-2 2v6c0 1.1.9 2 2 2h3c1.1 0 2-.9 2-2V9c0-1.1-.9-2-2-2zm0 8h-3V9h3v6zM1 15h4v-2H3c-1.1 0-2-.9-2-2V9c0-1.1.9-2 2-2h4v2H3v2h2c1.1 0 2 .9 2 2v2c0 1.1-.9 2-2 2H1v-2zm16 0h4v-2h-2c-1.1 0-2-.9-2-2V9c0-1.1.9-2 2-2h4v2h-4v2h2c1.1 0 2 .9 2 2v2c0 1.1-.9 2-2 2h-4v-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/soup_kitchen.svg b/html/matt-chat/uswds/img/material-icons/soup_kitchen.svg
new file mode 100644
index 0000000..cae109b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/soup_kitchen.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M6.4 7c-.34.55-.4.97-.4 1.38C6 9.15 7 11 7 12c0 .95-.4 1.5-.4 1.5H5.1s.4-.55.4-1.5c0-1-1-2.85-1-3.62 0-.41.06-.83.4-1.38h1.5zm5 0c-.34.55-.4.97-.4 1.38 0 .77 1 2.62 1 3.62 0 .95-.4 1.5-.4 1.5h1.5s.4-.55.4-1.5c0-1-1-2.85-1-3.62 0-.41.06-.83.4-1.38h-1.5zM8.15 7c-.34.55-.4.97-.4 1.38 0 .77 1 2.63 1 3.62 0 .95-.4 1.5-.4 1.5h1.5s.4-.55.4-1.5c0-1-1-2.85-1-3.62 0-.41.06-.83.4-1.38h-1.5zm13.32-.5s.13-1.06.13-1.5c0-1.65-1.35-3-3-3-1.54 0-2.81 1.16-2.98 2.65L14.53 15H4.01c-.6 0-1.09.53-1 1.13C3.53 19.46 6.39 22 9.75 22c3.48 0 6.34-2.73 6.71-6.23L17.61 4.9c.05-.51.47-.9.99-.9.55 0 1 .45 1 1 0 .3-.1 1.25-.1 1.25l1.97.25z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/source.svg b/html/matt-chat/uswds/img/material-icons/source.svg
new file mode 100644
index 0000000..caf4e78
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/source.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 6h-8l-2-2H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm-6 10H6v-2h8v2zm4-4H6v-2h12v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/south.svg b/html/matt-chat/uswds/img/material-icons/south.svg
new file mode 100644
index 0000000..0f61b4a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/south.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m19 15-1.41-1.41L13 18.17V2h-2v16.17l-4.59-4.59L5 15l7 7 7-7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/south_america.svg b/html/matt-chat/uswds/img/material-icons/south_america.svg
new file mode 100644
index 0000000..01a0441
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/south_america.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zM4 12c0-1.95.7-3.74 1.87-5.13L9 10v1c0 1.1.9 2 2 2v5.59c0 .27.11.52.29.71l.71.7c-4.42 0-8-3.58-8-8zm9 7.94V18l3.75-5.62c.16-.25.25-.54.25-.83V10.5c0-.55-.45-1-1-1h-1.5l-1.4-1.75c-.38-.47-.95-.75-1.56-.75H8V5.07A7.971 7.971 0 0 1 12 4c4.41 0 8 3.59 8 8 0 4.07-3.06 7.44-7 7.94z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/south_east.svg b/html/matt-chat/uswds/img/material-icons/south_east.svg
new file mode 100644
index 0000000..3f1d04c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/south_east.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 9h-2v6.59L5.41 4 4 5.41 15.59 17H9v2h10V9z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/south_west.svg b/html/matt-chat/uswds/img/material-icons/south_west.svg
new file mode 100644
index 0000000..0eb4b46
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/south_west.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15 19v-2H8.41L20 5.41 18.59 4 7 15.59V9H5v10h10z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/spa.svg b/html/matt-chat/uswds/img/material-icons/spa.svg
new file mode 100644
index 0000000..1e3c89b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/spa.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M8.55 12zm10.43-1.61zm-3.49-.76c-.18-2.79-1.31-5.51-3.43-7.63a12.188 12.188 0 0 0-3.55 7.63c1.28.68 2.46 1.56 3.49 2.63 1.03-1.06 2.21-1.94 3.49-2.63zm-6.5 2.65c-.14-.1-.3-.19-.45-.29.15.11.31.19.45.29zm6.42-.25c-.13.09-.27.16-.4.26.13-.1.27-.17.4-.26zM12 15.45C9.85 12.17 6.18 10 2 10c0 5.32 3.36 9.82 8.03 11.49.63.23 1.29.4 1.97.51.68-.12 1.33-.29 1.97-.51C18.64 19.82 22 15.32 22 10c-4.18 0-7.85 2.17-10 5.45z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/space_bar.svg b/html/matt-chat/uswds/img/material-icons/space_bar.svg
new file mode 100644
index 0000000..0f1e7c5
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/space_bar.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 9v4H6V9H4v6h16V9z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/space_dashboard.svg b/html/matt-chat/uswds/img/material-icons/space_dashboard.svg
new file mode 100644
index 0000000..e2cadc3
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/space_dashboard.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11 21H5c-1.1 0-2-.9-2-2V5c0-1.1.9-2 2-2h6v18zm2 0h6c1.1 0 2-.9 2-2v-7h-8v9zm8-11V5c0-1.1-.9-2-2-2h-6v7h8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/spatial_audio.svg b/html/matt-chat/uswds/img/material-icons/spatial_audio.svg
new file mode 100644
index 0000000..377d6dc
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/spatial_audio.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><circle cx="10" cy="9" r="4"/><path d="M16.39 15.56C14.71 14.7 12.53 14 10 14s-4.71.7-6.39 1.56A2.97 2.97 0 0 0 2 18.22V21h16v-2.78c0-1.12-.61-2.15-1.61-2.66zM16 1h-2a9 9 0 0 0 9 9V8c-3.86 0-7-3.14-7-7z"/><path d="M20 1h-2c0 2.76 2.24 5 5 5V4c-1.65 0-3-1.35-3-3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/spatial_audio_off.svg b/html/matt-chat/uswds/img/material-icons/spatial_audio_off.svg
new file mode 100644
index 0000000..07c3965
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/spatial_audio_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><circle cx="10" cy="9" r="4"/><path d="M16.39 15.56C14.71 14.7 12.53 14 10 14s-4.71.7-6.39 1.56A2.97 2.97 0 0 0 2 18.22V21h16v-2.78c0-1.12-.61-2.15-1.61-2.66zM20.36 1l-1.41 1.41a7.007 7.007 0 0 1 0 9.9l1.41 1.41a8.98 8.98 0 0 0 0-12.72z"/><path d="M17.54 10.9a5.003 5.003 0 0 0 0-7.07l-1.41 1.41a3 3 0 0 1 0 4.24l1.41 1.42z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/spatial_tracking.svg b/html/matt-chat/uswds/img/material-icons/spatial_tracking.svg
new file mode 100644
index 0000000..1c2b0ec
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/spatial_tracking.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><circle cx="10" cy="9" r="4"/><path d="M16.39 15.56C14.71 14.7 12.53 14 10 14s-4.71.7-6.39 1.56A2.97 2.97 0 0 0 2 18.22V21h16v-2.78c0-1.12-.61-2.15-1.61-2.66zm3.66-13.15L18.64 1c-3.51 3.51-3.51 9.21 0 12.73l1.41-1.41c-2.73-2.74-2.73-7.18 0-9.91z"/><path d="m22.88 5.24-1.41-1.41a5.003 5.003 0 0 0 0 7.07l1.41-1.41a3.012 3.012 0 0 1 0-4.25z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/speaker.svg b/html/matt-chat/uswds/img/material-icons/speaker.svg
new file mode 100644
index 0000000..3ba30dd
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/speaker.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 2H7c-1.1 0-2 .9-2 2v16c0 1.1.9 1.99 2 1.99L17 22c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-5 2c1.1 0 2 .9 2 2s-.9 2-2 2a2 2 0 1 1 0-4zm0 16c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/speaker_group.svg b/html/matt-chat/uswds/img/material-icons/speaker_group.svg
new file mode 100644
index 0000000..e97eb05
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/speaker_group.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18.2 1H9.8C8.81 1 8 1.81 8 2.8v14.4c0 .99.81 1.79 1.8 1.79l8.4.01c.99 0 1.8-.81 1.8-1.8V2.8c0-.99-.81-1.8-1.8-1.8zM14 3c1.1 0 2 .89 2 2s-.9 2-2 2-2-.89-2-2 .9-2 2-2zm0 13.5c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4z"/><circle cx="14" cy="12.5" r="2.5"/><path d="M6 5H4v16a2 2 0 0 0 2 2h10v-2H6V5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/speaker_notes.svg b/html/matt-chat/uswds/img/material-icons/speaker_notes.svg
new file mode 100644
index 0000000..d21630c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/speaker_notes.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM8 14H6v-2h2v2zm0-3H6V9h2v2zm0-3H6V6h2v2zm7 6h-5v-2h5v2zm3-3h-8V9h8v2zm0-3h-8V6h8v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/speaker_notes_off.svg b/html/matt-chat/uswds/img/material-icons/speaker_notes_off.svg
new file mode 100644
index 0000000..9d3fb7d
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/speaker_notes_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m10.54 11-.54-.54L7.54 8 6 6.46 2.38 2.84 1.27 1.73 0 3l2.01 2.01L2 22l4-4h9l5.73 5.73L22 22.46 17.54 18l-7-7zM8 14H6v-2h2v2zm-2-3V9l2 2H6zm14-9H4.08L10 7.92V6h8v2h-7.92l1 1H18v2h-4.92l6.99 6.99C21.14 17.95 22 17.08 22 16V4c0-1.1-.9-2-2-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/speaker_phone.svg b/html/matt-chat/uswds/img/material-icons/speaker_phone.svg
new file mode 100644
index 0000000..3693fed
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/speaker_phone.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M7 7.07 8.43 8.5c.91-.91 2.18-1.48 3.57-1.48s2.66.57 3.57 1.48L17 7.07C15.72 5.79 13.95 5 12 5s-3.72.79-5 2.07zM12 1C8.98 1 6.24 2.23 4.25 4.21l1.41 1.41C7.28 4 9.53 3 12 3s4.72 1 6.34 2.62l1.41-1.41A10.963 10.963 0 0 0 12 1zm2.86 9.01L9.14 10C8.51 10 8 10.51 8 11.14v9.71c0 .63.51 1.14 1.14 1.14h5.71c.63 0 1.14-.51 1.14-1.14v-9.71c.01-.63-.5-1.13-1.13-1.13zM15 20H9v-8h6v8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/speed.svg b/html/matt-chat/uswds/img/material-icons/speed.svg
new file mode 100644
index 0000000..519b3c3
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/speed.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m20.38 8.57-1.23 1.85a8 8 0 0 1-.22 7.58H5.07A8 8 0 0 1 15.58 6.85l1.85-1.23A10 10 0 0 0 3.35 19a2 2 0 0 0 1.72 1h13.85a2 2 0 0 0 1.74-1 10 10 0 0 0-.27-10.44zm-9.79 6.84a2 2 0 0 0 2.83 0l5.66-8.49-8.49 5.66a2 2 0 0 0 0 2.83z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/spellcheck.svg b/html/matt-chat/uswds/img/material-icons/spellcheck.svg
new file mode 100644
index 0000000..5233130
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/spellcheck.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12.45 16h2.09L9.43 3H7.57L2.46 16h2.09l1.12-3h5.64l1.14 3zm-6.02-5L8.5 5.48 10.57 11H6.43zm15.16.59-8.09 8.09L9.83 16l-1.41 1.41 5.09 5.09L23 13l-1.41-1.41z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/splitscreen.svg b/html/matt-chat/uswds/img/material-icons/splitscreen.svg
new file mode 100644
index 0000000..60d15a0
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/splitscreen.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 4v5H6V4h12m0-2H6c-1.1 0-2 .9-2 2v5c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 13v5H6v-5h12m0-2H6c-1.1 0-2 .9-2 2v5c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2v-5c0-1.1-.9-2-2-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/spoke.svg b/html/matt-chat/uswds/img/material-icons/spoke.svg
new file mode 100644
index 0000000..170e913
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/spoke.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16 7c0 2.21-1.79 4-4 4S8 9.21 8 7s1.79-4 4-4 4 1.79 4 4zm-9 6c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm10 0c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/sports.svg b/html/matt-chat/uswds/img/material-icons/sports.svg
new file mode 100644
index 0000000..28b6c3e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/sports.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11.23 6c-1.66 0-3.22.66-4.36 1.73C6.54 6.73 5.61 6 4.5 6a2.5 2.5 0 0 0 0 5c.21 0 .41-.03.61-.08-.05.25-.09.51-.1.78a6.006 6.006 0 0 0 6.68 6.27c2.55-.28 4.68-2.26 5.19-4.77.15-.71.15-1.4.06-2.06-.09-.6.38-1.13.99-1.13H22V6H11.23zM4.5 9c-.28 0-.5-.22-.5-.5s.22-.5.5-.5.5.22.5.5-.22.5-.5.5zm6.5 6c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3z"/><circle cx="11" cy="12" r="2"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/sports_bar.svg b/html/matt-chat/uswds/img/material-icons/sports_bar.svg
new file mode 100644
index 0000000..ad354b7
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/sports_bar.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 9h-1.56c.35-.59.56-1.27.56-2 0-2.21-1.79-4-4-4-.34 0-.66.05-.98.13A4.707 4.707 0 0 0 10 2.02c-1.89 0-3.51 1.11-4.27 2.71C4.15 5.26 3 6.74 3 8.5c0 1.86 1.28 3.41 3 3.86V21h11v-2h2c1.1 0 2-.9 2-2v-6c0-1.1-.9-2-2-2zM7 10.5c-1.1 0-2-.9-2-2 0-.85.55-1.6 1.37-1.88l.8-.27.36-.76C8 4.62 8.94 4.02 10 4.02c.79 0 1.39.35 1.74.65l.78.65S13.16 5 13.99 5c1.1 0 2 .9 2 2h-3C9.67 7 9.15 10.5 7 10.5zM19 17h-2v-6h2v6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/sports_baseball.svg b/html/matt-chat/uswds/img/material-icons/sports_baseball.svg
new file mode 100644
index 0000000..2676745
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/sports_baseball.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3.81 6.28C2.67 7.9 2 9.87 2 12s.67 4.1 1.81 5.72C6.23 16.95 8 14.68 8 12S6.23 7.05 3.81 6.28zm16.38 0C17.77 7.05 16 9.32 16 12s1.77 4.95 4.19 5.72C21.33 16.1 22 14.13 22 12s-.67-4.1-1.81-5.72z"/><path d="M14 12c0-3.28 1.97-6.09 4.79-7.33C17.01 3.02 14.63 2 12 2S6.99 3.02 5.21 4.67C8.03 5.91 10 8.72 10 12s-1.97 6.09-4.79 7.33C6.99 20.98 9.37 22 12 22s5.01-1.02 6.79-2.67A8.002 8.002 0 0 1 14 12z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/sports_basketball.svg b/html/matt-chat/uswds/img/material-icons/sports_basketball.svg
new file mode 100644
index 0000000..03feac8
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/sports_basketball.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17.09 11h4.86a9.951 9.951 0 0 0-1.54-4.4 5.987 5.987 0 0 0-3.32 4.4zM6.91 11a5.987 5.987 0 0 0-3.32-4.4A9.951 9.951 0 0 0 2.05 11h4.86zm8.16 0a7.994 7.994 0 0 1 4.06-6A9.969 9.969 0 0 0 13 2.05V11h2.07zm-6.14 0H11V2.05A9.943 9.943 0 0 0 4.87 5a7.994 7.994 0 0 1 4.06 6zm6.14 2H13v8.95A9.943 9.943 0 0 0 19.13 19a7.994 7.994 0 0 1-4.06-6zM3.59 17.4A6.029 6.029 0 0 0 6.91 13H2.05c.16 1.61.71 3.11 1.54 4.4zm13.5-4.4a5.987 5.987 0 0 0 3.32 4.4 9.951 9.951 0 0 0 1.54-4.4h-4.86zm-8.16 0a7.994 7.994 0 0 1-4.06 6A9.969 9.969 0 0 0 11 21.95V13H8.93z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/sports_cricket.svg b/html/matt-chat/uswds/img/material-icons/sports_cricket.svg
new file mode 100644
index 0000000..6146200
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/sports_cricket.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15.05 12.81 6.56 4.32a.996.996 0 0 0-1.41 0L2.32 7.15a.996.996 0 0 0 0 1.41l8.49 8.49c.39.39 1.02.39 1.41 0l2.83-2.83a.996.996 0 0 0 0-1.41zm-.709 4.946 1.414-1.414 4.243 4.243-1.414 1.414z"/><circle cx="18.5" cy="5.5" r="3.5"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/sports_esports.svg b/html/matt-chat/uswds/img/material-icons/sports_esports.svg
new file mode 100644
index 0000000..bc831b9
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/sports_esports.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m21.58 16.09-1.09-7.66A3.996 3.996 0 0 0 16.53 5H7.47C5.48 5 3.79 6.46 3.51 8.43l-1.09 7.66a2.545 2.545 0 0 0 4.32 2.16L9 16h6l2.25 2.25c.48.48 1.13.75 1.8.75 1.56 0 2.75-1.37 2.53-2.91zM11 11H9v2H8v-2H6v-1h2V8h1v2h2v1zm4-1c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm2 3c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/sports_football.svg b/html/matt-chat/uswds/img/material-icons/sports_football.svg
new file mode 100644
index 0000000..ebc9aa8
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/sports_football.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3.02 15.62c-.08 2.42.32 4.34.67 4.69s2.28.76 4.69.67l-5.36-5.36zM13.08 3.28c-2.33.42-4.79 1.34-6.62 3.18s-2.76 4.29-3.18 6.62l7.63 7.63c2.34-.41 4.79-1.34 6.62-3.18s2.76-4.29 3.18-6.62l-7.63-7.63zM9.9 15.5l-1.4-1.4 5.6-5.6 1.4 1.4-5.6 5.6zm11.08-7.12c.08-2.42-.32-4.34-.67-4.69s-2.28-.76-4.69-.67l5.36 5.36z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/sports_golf.svg b/html/matt-chat/uswds/img/material-icons/sports_golf.svg
new file mode 100644
index 0000000..d072e06
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/sports_golf.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 16c3.87 0 7-3.13 7-7s-3.13-7-7-7-7 3.13-7 7 3.13 7 7 7zm0-12c2.76 0 5 2.24 5 5s-2.24 5-5 5-5-2.24-5-5 2.24-5 5-5z"/><circle cx="10" cy="8" r="1"/><circle cx="14" cy="8" r="1"/><circle cx="12" cy="6" r="1"/><path d="M7 19h2c1.1 0 2 .9 2 2v1h2v-1c0-1.1.9-2 2-2h2v-2H7v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/sports_gymnastics.svg b/html/matt-chat/uswds/img/material-icons/sports_gymnastics.svg
new file mode 100644
index 0000000..fd56a23
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/sports_gymnastics.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M4 6c0-1.1.9-2 2-2s2 .9 2 2-.9 2-2 2-2-.9-2-2zM1 9h6l7-5 1.31 1.52-4.17 2.98H14L21.8 4 23 5.4 14.5 12 14 22h-2l-.5-10L8 11H1V9z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/sports_handball.svg b/html/matt-chat/uswds/img/material-icons/sports_handball.svg
new file mode 100644
index 0000000..4e1ce78
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/sports_handball.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M14.27 6c-.55.95-.22 2.18.73 2.73.95.55 2.18.22 2.73-.73.55-.95.22-2.18-.73-2.73-.95-.55-2.18-.22-2.73.73z"/><path d="m15.84 10.41-2.6-1.5c-2.38-1.38-3.2-4.44-1.82-6.82l-1.73-1C8.1 3.83 8.6 7.21 10.66 9.4l-5.15 8.92 1.73 1 1.5-2.6 1.73 1-3 5.2 1.73 1 6.29-10.89a5.002 5.002 0 0 1 .31 5.46l1.73 1c1.6-2.75 1.28-6.58-1.69-9.08zM12.75 3.8c.72.41 1.63.17 2.05-.55.41-.72.17-1.63-.55-2.05a1.501 1.501 0 0 0-1.5 2.6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/sports_hockey.svg b/html/matt-chat/uswds/img/material-icons/sports_hockey.svg
new file mode 100644
index 0000000..90213bf
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/sports_hockey.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M2 17v3h2v-4H3c-.55 0-1 .45-1 1zm7-1H5v4l4.69-.01c.38 0 .72-.21.89-.55l.87-1.9-1.59-3.48L9 16zm12.71.29A.997.997 0 0 0 21 16h-1v4h2v-3c0-.28-.11-.53-.29-.71zm-8.11-3.45L17.65 4H14.3l-1.76 3.97-.49 1.1-.05.14L9.7 4H6.35l4.05 8.84 1.52 3.32.08.18 1.42 3.1c.17.34.51.55.89.55L19 20v-4h-4l-1.4-3.16z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/sports_kabaddi.svg b/html/matt-chat/uswds/img/material-icons/sports_kabaddi.svg
new file mode 100644
index 0000000..d3aac46
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/sports_kabaddi.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><circle cx="16.5" cy="2.38" r="2"/><path d="M24 11.88v-4.7l-5.05-2.14c-.97-.41-2.09-.06-2.65.84l-1 1.6c-.67 1.18-1.91 2.06-3.41 2.32l.06.06c.69.69 1.52 1.07 2.46 1.17.8-.42 1.52-.98 2.09-1.64l.6 3-1.16 1.1-.94.89v7.5h2v-6l2.1-2 1.8 8H23l-2.18-11-.62-3.1 1.8.7v3.4h2zM10.29 8.09c.22.15.47.24.72.29.13.02.25.04.38.04s.26-.01.38-.04c.13-.02.25-.06.37-.11.24-.1.47-.24.66-.44.49-.49.67-1.17.55-1.8-.07-.37-.25-.74-.55-1.03-.19-.19-.42-.34-.66-.44-.12-.05-.24-.09-.37-.11s-.25-.04-.38-.04c-.12 0-.23.01-.35.03-.14.02-.28.06-.41.11-.23.11-.46.26-.65.45-.3.29-.48.66-.55 1.03-.12.63.06 1.31.55 1.8.09.1.2.18.31.26z"/><path d="m11.24 10.56-2-2c-.1-.1-.2-.18-.31-.26a1.93 1.93 0 0 0-.72-.28c-.13-.03-.25-.04-.38-.04-.51 0-1.02.2-1.41.59l-3.34 3.34c-.41.41-.62.98-.58 1.54 0 .18.04.37.11.55l1.07 2.95-3.63 3.63L1.46 22l4.24-4.24v-2.22L7 16.75v5.13h2v-6l-2.12-2.12 2.36-2.36.71.71c1.29 1.26 2.97 2.04 5.03 2.04l-.14-2.07c-1.5-.02-2.7-.62-3.6-1.52z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/sports_martial_arts.svg b/html/matt-chat/uswds/img/material-icons/sports_martial_arts.svg
new file mode 100644
index 0000000..4a9ac18
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/sports_martial_arts.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m19.8 2-8.2 6.7-1.21-1.04 3.6-2.08L9.41 1 8 2.41l2.74 2.74L5 8.46l-1.19 4.29L6.27 17 8 16l-2.03-3.52.35-1.3L9.5 13l.5 9h2l.5-10L21 3.4z"/><circle cx="5" cy="5" r="2"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/sports_mma.svg b/html/matt-chat/uswds/img/material-icons/sports_mma.svg
new file mode 100644
index 0000000..87b5f48
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/sports_mma.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M7 20c0 .55.45 1 1 1h8c.55 0 1-.45 1-1v-3H7v3zM18 7c-.55 0-1 .45-1 1V5c0-1.1-.9-2-2-2H7c-1.1 0-2 .9-2 2v5.8c0 .13.01.26.04.39l.8 4c.09.47.5.8.98.8h10.36c.45 0 .89-.36.98-.8l.8-4c.03-.13.04-.26.04-.39V8c0-.55-.45-1-1-1zm-3 3H7V7h8v3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/sports_motorsports.svg b/html/matt-chat/uswds/img/material-icons/sports_motorsports.svg
new file mode 100644
index 0000000..2dcf7ca
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/sports_motorsports.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 11.39c0-.65-.39-1.23-.98-1.48L5.44 7.55c-1.48 1.68-2.32 3.7-2.8 5.45h7.75c.89 0 1.61-.72 1.61-1.61z"/><path d="M21.96 11.22c-.41-4.41-4.56-7.49-8.98-7.2-2.51.16-4.44.94-5.93 2.04l4.74 2.01c1.33.57 2.2 1.87 2.2 3.32 0 1.99-1.62 3.61-3.61 3.61H2.21C2 16.31 2 17.2 2 17.2v.8c0 1.1.9 2 2 2h10c4.67 0 8.41-4.01 7.96-8.78z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/sports_rugby.svg b/html/matt-chat/uswds/img/material-icons/sports_rugby.svg
new file mode 100644
index 0000000..1409641
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/sports_rugby.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20.49 3.51c-.56-.56-2.15-.97-4.16-.97-3.08 0-7.15.96-9.98 3.79-4.69 4.7-4.25 12.74-2.84 14.16.56.56 2.15.97 4.16.97 3.08 0 7.15-.96 9.98-3.79 4.69-4.7 4.25-12.74 2.84-14.16zM7.76 7.76c2.64-2.64 6.35-3.12 8.03-3.19-2.05.94-4.46 2.45-6.61 4.61a23.462 23.462 0 0 0-4.62 6.63c.1-2.48.88-5.74 3.2-8.05zm8.48 8.48c-2.64 2.64-6.35 3.12-8.03 3.19 2.05-.94 4.46-2.45 6.61-4.61 2.16-2.16 3.67-4.58 4.62-6.63-.1 2.48-.88 5.74-3.2 8.05z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/sports_score.svg b/html/matt-chat/uswds/img/material-icons/sports_score.svg
new file mode 100644
index 0000000..9521d13
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/sports_score.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11 6H9V4h2v2zm4-2h-2v2h2V4zM9 14h2v-2H9v2zm10-4V8h-2v2h2zm0 4v-2h-2v2h2zm-6 0h2v-2h-2v2zm6-10h-2v2h2V4zm-6 4V6h-2v2h2zm-6 2V8h2V6H7V4H5v16h2v-8h2v-2H7zm8 2h2v-2h-2v2zm-4-2v2h2v-2h-2zM9 8v2h2V8H9zm4 2h2V8h-2v2zm2-4v2h2V6h-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/sports_soccer.svg b/html/matt-chat/uswds/img/material-icons/sports_soccer.svg
new file mode 100644
index 0000000..dbbaa6f
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/sports_soccer.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 3.3 1.35-.95a8.01 8.01 0 0 1 4.38 3.34l-.39 1.34-1.35.46L13 6.7V5.3zm-3.35-.95L11 5.3v1.4L7.01 9.49l-1.35-.46-.39-1.34a8.103 8.103 0 0 1 4.38-3.34zM7.08 17.11l-1.14.1A7.938 7.938 0 0 1 4 12c0-.12.01-.23.02-.35l1-.73 1.38.48 1.46 4.34-.78 1.37zm7.42 2.48c-.79.26-1.63.41-2.5.41s-1.71-.15-2.5-.41l-.69-1.49.64-1.1h5.11l.64 1.11-.7 1.48zM14.27 15H9.73l-1.35-4.02L12 8.44l3.63 2.54L14.27 15zm3.79 2.21-1.14-.1-.79-1.37 1.46-4.34 1.39-.47 1 .73c.01.11.02.22.02.34 0 1.99-.73 3.81-1.94 5.21z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/sports_tennis.svg b/html/matt-chat/uswds/img/material-icons/sports_tennis.svg
new file mode 100644
index 0000000..21c2b32
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/sports_tennis.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19.52 2.49C17.18.15 12.9.62 9.97 3.55c-1.6 1.6-2.52 3.87-2.54 5.46-.02 1.58.26 3.89-1.35 5.5l-4.24 4.24 1.42 1.42 4.24-4.24c1.61-1.61 3.92-1.33 5.5-1.35s3.86-.94 5.46-2.54c2.92-2.93 3.4-7.21 1.06-9.55zm-9.2 9.19c-1.53-1.53-1.05-4.61 1.06-6.72s5.18-2.59 6.72-1.06c1.53 1.53 1.05 4.61-1.06 6.72s-5.18 2.59-6.72 1.06zM18 17c.53 0 1.04.21 1.41.59.78.78.78 2.05 0 2.83-.37.37-.88.58-1.41.58s-1.04-.21-1.41-.59c-.78-.78-.78-2.05 0-2.83.37-.37.88-.58 1.41-.58m0-2a3.998 3.998 0 0 0-2.83 6.83c.78.78 1.81 1.17 2.83 1.17a3.998 3.998 0 0 0 2.83-6.83A3.998 3.998 0 0 0 18 15z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/sports_volleyball.svg b/html/matt-chat/uswds/img/material-icons/sports_volleyball.svg
new file mode 100644
index 0000000..f6f4db0
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/sports_volleyball.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M6 4.01C3.58 5.84 2 8.73 2 12c0 1.46.32 2.85.89 4.11L6 14.31V4.01zm5 7.41V2.05c-1.06.11-2.07.38-3 .79v10.32l3-1.74zm1 1.73-8.11 4.68c.61.84 1.34 1.59 2.18 2.2L15 14.89l-3-1.74zm1-5.19v3.46l8.11 4.68c.42-.93.7-1.93.82-2.98L13 7.96zM8.07 21.2c1.21.51 2.53.8 3.93.8 3.34 0 6.29-1.65 8.11-4.16L17 16.04 8.07 21.2zm13.85-10.39c-.55-4.63-4.26-8.3-8.92-8.76v3.6l8.92 5.16z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/square.svg b/html/matt-chat/uswds/img/material-icons/square.svg
new file mode 100644
index 0000000..f09f9ae
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/square.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 3h18v18H3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/square_foot.svg b/html/matt-chat/uswds/img/material-icons/square_foot.svg
new file mode 100644
index 0000000..fd33c63
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/square_foot.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m17.66 17.66-1.06 1.06-.71-.71 1.06-1.06-1.94-1.94-1.06 1.06-.71-.71 1.06-1.06-1.94-1.94-1.06 1.06-.71-.71 1.06-1.06L9.7 9.7l-1.06 1.06-.71-.71 1.06-1.06-1.94-1.94-1.06 1.06-.71-.71 1.06-1.06L4 4v14c0 1.1.9 2 2 2h14l-2.34-2.34zM7 17v-5.76L12.76 17H7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/ssid_chart.svg b/html/matt-chat/uswds/img/material-icons/ssid_chart.svg
new file mode 100644
index 0000000..38957c5
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/ssid_chart.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 5.47 12 12 7.62 7.62 3 11V8.52L7.83 5l4.38 4.38L21 3v2.47zM21 15h-4.7l-4.17 3.34L6 12.41l-3 2.13V17l2.8-2 6.2 6 5-4h4v-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/stacked_bar_chart.svg b/html/matt-chat/uswds/img/material-icons/stacked_bar_chart.svg
new file mode 100644
index 0000000..da060b8
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/stacked_bar_chart.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M4 9h4v11H4zm0-5h4v4H4zm6 3h4v4h-4zm6 3h4v4h-4zm0 5h4v5h-4zm-6-3h4v8h-4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/stacked_line_chart.svg b/html/matt-chat/uswds/img/material-icons/stacked_line_chart.svg
new file mode 100644
index 0000000..d7ebf1a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/stacked_line_chart.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m2 19.99 7.5-7.51 4 4 7.09-7.97L22 9.92l-8.5 9.56-4-4-6 6.01-1.5-1.5zm1.5-4.5 6-6.01 4 4L22 3.92l-1.41-1.41-7.09 7.97-4-4L2 13.99l1.5 1.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/stadium.svg b/html/matt-chat/uswds/img/material-icons/stadium.svg
new file mode 100644
index 0000000..7853cf3
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/stadium.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M7 5 3 7V3l4 2zm11-2v4l4-2-4-2zm-7-1v4l4-2-4-2zm-6 8.04c1.38.49 3.77.96 7 .96s5.62-.47 7-.96C19 9.86 16.22 9 12 9s-7 .86-7 1.04zM15 17H9v4.88c-4.06-.39-7-1.54-7-2.88v-9c0-1.66 4.48-3 10-3s10 1.34 10 3v9c0 1.34-2.94 2.48-7 2.87V17z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/stairs.svg b/html/matt-chat/uswds/img/material-icons/stairs.svg
new file mode 100644
index 0000000..a74eac5
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/stairs.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-1 5h-2.42v3.33H13v3.33h-2.58V18H6v-2h2.42v-3.33H11V9.33h2.58V6H18v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/star.svg b/html/matt-chat/uswds/img/material-icons/star.svg
new file mode 100644
index 0000000..caf1ac5
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/star.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 17.27 18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/star_border.svg b/html/matt-chat/uswds/img/material-icons/star_border.svg
new file mode 100644
index 0000000..3d8a342
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/star_border.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m22 9.24-7.19-.62L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21 12 17.27 18.18 21l-1.63-7.03L22 9.24zM12 15.4l-3.76 2.27 1-4.28-3.32-2.88 4.38-.38L12 6.1l1.71 4.04 4.38.38-3.32 2.88 1 4.28L12 15.4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/star_border_purple500.svg b/html/matt-chat/uswds/img/material-icons/star_border_purple500.svg
new file mode 100644
index 0000000..20bebf6
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/star_border_purple500.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m12 8.89.94 3.11h2.82l-2.27 1.62.93 3.01L12 14.79l-2.42 1.84.93-3.01L8.24 12h2.82L12 8.89M12 2l-2.42 8H2l6.17 4.41L5.83 22 12 17.31 18.18 22l-2.35-7.59L22 10h-7.58L12 2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/star_half.svg b/html/matt-chat/uswds/img/material-icons/star_half.svg
new file mode 100644
index 0000000..b93632a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/star_half.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m22 9.24-7.19-.62L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21 12 17.27 18.18 21l-1.63-7.03L22 9.24zM12 15.4V6.1l1.71 4.04 4.38.38-3.32 2.88 1 4.28L12 15.4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/star_outline.svg b/html/matt-chat/uswds/img/material-icons/star_outline.svg
new file mode 100644
index 0000000..3d8a342
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/star_outline.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m22 9.24-7.19-.62L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21 12 17.27 18.18 21l-1.63-7.03L22 9.24zM12 15.4l-3.76 2.27 1-4.28-3.32-2.88 4.38-.38L12 6.1l1.71 4.04 4.38.38-3.32 2.88 1 4.28L12 15.4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/star_purple500.svg b/html/matt-chat/uswds/img/material-icons/star_purple500.svg
new file mode 100644
index 0000000..20bebf6
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/star_purple500.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m12 8.89.94 3.11h2.82l-2.27 1.62.93 3.01L12 14.79l-2.42 1.84.93-3.01L8.24 12h2.82L12 8.89M12 2l-2.42 8H2l6.17 4.41L5.83 22 12 17.31 18.18 22l-2.35-7.59L22 10h-7.58L12 2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/star_rate.svg b/html/matt-chat/uswds/img/material-icons/star_rate.svg
new file mode 100644
index 0000000..6e61a55
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/star_rate.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M14.43 10 12 2l-2.43 8H2l6.18 4.41L5.83 22 12 17.31 18.18 22l-2.35-7.59L22 10z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/stars.svg b/html/matt-chat/uswds/img/material-icons/stars.svg
new file mode 100644
index 0000000..ff48df4
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/stars.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zm4.24 16L12 15.45 7.77 18l1.12-4.81-3.73-3.23 4.92-.42L12 5l1.92 4.53 4.92.42-3.73 3.23L16.23 18z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/start.svg b/html/matt-chat/uswds/img/material-icons/start.svg
new file mode 100644
index 0000000..0a08c57
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/start.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M14.59 7.41 18.17 11H6v2h12.17l-3.59 3.59L16 18l6-6-6-6-1.41 1.41zM2 6v12h2V6H2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/stay_current_landscape.svg b/html/matt-chat/uswds/img/material-icons/stay_current_landscape.svg
new file mode 100644
index 0000000..1744656
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/stay_current_landscape.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M1.01 7 1 17c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2H3c-1.1 0-1.99.9-1.99 2zM19 7v10H5V7h14z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/stay_current_portrait.svg b/html/matt-chat/uswds/img/material-icons/stay_current_portrait.svg
new file mode 100644
index 0000000..df52903
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/stay_current_portrait.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 1.01 7 1c-1.1 0-1.99.9-1.99 2v18c0 1.1.89 2 1.99 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-1.99-2-1.99zM17 19H7V5h10v14z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/stay_primary_landscape.svg b/html/matt-chat/uswds/img/material-icons/stay_primary_landscape.svg
new file mode 100644
index 0000000..1744656
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/stay_primary_landscape.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M1.01 7 1 17c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2H3c-1.1 0-1.99.9-1.99 2zM19 7v10H5V7h14z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/stay_primary_portrait.svg b/html/matt-chat/uswds/img/material-icons/stay_primary_portrait.svg
new file mode 100644
index 0000000..df52903
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/stay_primary_portrait.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 1.01 7 1c-1.1 0-1.99.9-1.99 2v18c0 1.1.89 2 1.99 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-1.99-2-1.99zM17 19H7V5h10v14z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/sticky_note_2.svg b/html/matt-chat/uswds/img/material-icons/sticky_note_2.svg
new file mode 100644
index 0000000..ecc925f
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/sticky_note_2.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H4.99C3.89 3 3 3.9 3 5l.01 14c0 1.1.89 2 1.99 2h10l6-6V5c0-1.1-.9-2-2-2zM7 8h10v2H7V8zm5 6H7v-2h5v2zm2 5.5V14h5.5L14 19.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/stop.svg b/html/matt-chat/uswds/img/material-icons/stop.svg
new file mode 100644
index 0000000..48d3f2d
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/stop.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M6 6h12v12H6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/stop_circle.svg b/html/matt-chat/uswds/img/material-icons/stop_circle.svg
new file mode 100644
index 0000000..4183668
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/stop_circle.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm4 14H8V8h8v8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/stop_screen_share.svg b/html/matt-chat/uswds/img/material-icons/stop_screen_share.svg
new file mode 100644
index 0000000..7fff471
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/stop_screen_share.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m21.22 18.02 2 2H24v-2h-2.78zm.77-2 .01-10a2 2 0 0 0-2-2H7.22l5.23 5.23c.18-.04.36-.07.55-.1V7.02l4 3.73-1.58 1.47 5.54 5.54c.61-.33 1.03-.99 1.03-1.74zM2.39 1.73 1.11 3l1.54 1.54c-.4.36-.65.89-.65 1.48v10a2 2 0 0 0 2 2H0v2h18.13l2.71 2.71 1.27-1.27L2.39 1.73zM7 15.02c.31-1.48.92-2.95 2.07-4.06l1.59 1.59c-1.54.38-2.7 1.18-3.66 2.47z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/storage.svg b/html/matt-chat/uswds/img/material-icons/storage.svg
new file mode 100644
index 0000000..8cae0c1
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/storage.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M2 20h20v-4H2v4zm2-3h2v2H4v-2zM2 4v4h20V4H2zm4 3H4V5h2v2zm-4 7h20v-4H2v4zm2-3h2v2H4v-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/store.svg b/html/matt-chat/uswds/img/material-icons/store.svg
new file mode 100644
index 0000000..2b06cc5
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/store.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 4H4v2h16V4zm1 10v-2l-1-5H4l-1 5v2h1v6h10v-6h4v6h2v-6h1zm-9 4H6v-4h6v4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/store_mall_directory.svg b/html/matt-chat/uswds/img/material-icons/store_mall_directory.svg
new file mode 100644
index 0000000..2b06cc5
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/store_mall_directory.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 4H4v2h16V4zm1 10v-2l-1-5H4l-1 5v2h1v6h10v-6h4v6h2v-6h1zm-9 4H6v-4h6v4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/storefront.svg b/html/matt-chat/uswds/img/material-icons/storefront.svg
new file mode 100644
index 0000000..db5c299
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/storefront.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m21.9 8.89-1.05-4.37c-.22-.9-1-1.52-1.91-1.52H5.05c-.9 0-1.69.63-1.9 1.52L2.1 8.89c-.24 1.02-.02 2.06.62 2.88.08.11.19.19.28.29V19c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-6.94c.09-.09.2-.18.28-.28.64-.82.87-1.87.62-2.89zm-2.99-3.9 1.05 4.37c.1.42.01.84-.25 1.17-.14.18-.44.47-.94.47-.61 0-1.14-.49-1.21-1.14L16.98 5l1.93-.01zM13 5h1.96l.54 4.52c.05.39-.07.78-.33 1.07-.22.26-.54.41-.95.41-.67 0-1.22-.59-1.22-1.31V5zM8.49 9.52 9.04 5H11v4.69c0 .72-.55 1.31-1.29 1.31-.34 0-.65-.15-.89-.41a1.42 1.42 0 0 1-.33-1.07zm-4.45-.16L5.05 5h1.97l-.58 4.86c-.08.65-.6 1.14-1.21 1.14-.49 0-.8-.29-.93-.47-.27-.32-.36-.75-.26-1.17zM5 19v-6.03c.08.01.15.03.23.03.87 0 1.66-.36 2.24-.95.6.6 1.4.95 2.31.95.87 0 1.65-.36 2.23-.93.59.57 1.39.93 2.29.93.84 0 1.64-.35 2.24-.95.58.59 1.37.95 2.24.95.08 0 .15-.02.23-.03V19H5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/storm.svg b/html/matt-chat/uswds/img/material-icons/storm.svg
new file mode 100644
index 0000000..f9d26e6
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/storm.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18.93 8C16.72 4.18 11.82 2.87 8 5.07c-1.41.82-2.48 2-3.16 3.37-.13-2.2.22-4.4 1.02-6.44H3.74C2.2 6.49 2.52 11.58 5.07 16a7.96 7.96 0 0 0 4.86 3.72c1.98.53 4.16.31 6.07-.79 1.41-.82 2.48-2 3.16-3.37.13 2.2-.21 4.4-1.01 6.44h2.11c1.53-4.49 1.22-9.58-1.33-14zM15 17.2A6.012 6.012 0 0 1 6.8 15c-.11-.2-.21-.4-.3-.6-1.2-2.76-.17-6.06 2.5-7.6 2.86-1.65 6.54-.67 8.2 2.2.11.2.21.4.3.6 1.2 2.76.17 6.06-2.5 7.6zM12 10c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2m0-2c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/straight.svg b/html/matt-chat/uswds/img/material-icons/straight.svg
new file mode 100644
index 0000000..838b013
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/straight.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11 6.83 9.41 8.41 8 7l4-4 4 4-1.41 1.41L13 6.83V21h-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/straighten.svg b/html/matt-chat/uswds/img/material-icons/straighten.svg
new file mode 100644
index 0000000..d161c5e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/straighten.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 6H3c-1.1 0-2 .9-2 2v8c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm0 10H3V8h2v4h2V8h2v4h2V8h2v4h2V8h2v4h2V8h2v8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/stream.svg b/html/matt-chat/uswds/img/material-icons/stream.svg
new file mode 100644
index 0000000..4a43405
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/stream.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><circle cx="20" cy="12" r="2"/><circle cx="4" cy="12" r="2"/><circle cx="12" cy="20" r="2"/><path d="M10.05 8.59 6.03 4.55h-.01l-.31-.32-1.42 1.41 4.02 4.05.01-.01.31.32zm3.893.027 4.405-4.392L19.76 5.64l-4.405 4.393zM10.01 15.36l-1.42-1.41-4.03 4.01-.32.33 1.41 1.41 4.03-4.02zm9.75 2.94-3.99-4.01-.36-.35L14 15.35l3.99 4.01.35.35z"/><circle cx="12" cy="4" r="2"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/streetview.svg b/html/matt-chat/uswds/img/material-icons/streetview.svg
new file mode 100644
index 0000000..afda032
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/streetview.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12.56 14.33c-.34.27-.56.7-.56 1.17V21h7c1.1 0 2-.9 2-2v-5.98c-.94-.33-1.95-.52-3-.52-2.03 0-3.93.7-5.44 1.83z"/><circle cx="18" cy="6" r="5"/><path d="M11.5 6c0-1.08.27-2.1.74-3H5c-1.1 0-2 .9-2 2v14c0 .55.23 1.05.59 1.41l9.82-9.82A6.435 6.435 0 0 1 11.5 6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/strikethrough_s.svg b/html/matt-chat/uswds/img/material-icons/strikethrough_s.svg
new file mode 100644
index 0000000..9b8b317
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/strikethrough_s.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M6.85 7.08C6.85 4.37 9.45 3 12.24 3c1.64 0 3 .49 3.9 1.28.77.65 1.46 1.73 1.46 3.24h-3.01c0-.31-.05-.59-.15-.85-.29-.86-1.2-1.28-2.25-1.28-1.86 0-2.34 1.02-2.34 1.7 0 .48.25.88.74 1.21.38.25.77.48 1.41.7H7.39c-.21-.34-.54-.89-.54-1.92zM21 12v-2H3v2h9.62c1.15.45 1.96.75 1.96 1.97 0 1-.81 1.67-2.28 1.67-1.54 0-2.93-.54-2.93-2.51H6.4c0 .55.08 1.13.24 1.58.81 2.29 3.29 3.3 5.67 3.3 2.27 0 5.3-.89 5.3-4.05 0-.3-.01-1.16-.48-1.94H21V12z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/stroller.svg b/html/matt-chat/uswds/img/material-icons/stroller.svg
new file mode 100644
index 0000000..69197fe
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/stroller.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><circle cx="16" cy="20" r="2"/><circle cx="6" cy="20" r="2"/><path d="M22 7v-.52C22 4.56 20.52 3 18.65 3c-1.66 0-2.54 1.27-3.18 2.03l-8.8 10.32C6.12 16 6.58 17 7.43 17H15c1.1 0 2-.9 2-2V6.27c.58-.68.97-1.27 1.65-1.27.77 0 1.35.66 1.35 1.48V7h2zm-7.7-2.9a8.962 8.962 0 0 0-9.58.62l4.89 4.89L14.3 4.1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/style.svg b/html/matt-chat/uswds/img/material-icons/style.svg
new file mode 100644
index 0000000..684eabe
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/style.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m2.53 19.65 1.34.56v-9.03l-2.43 5.86c-.41 1.02.08 2.19 1.09 2.61zm19.5-3.7L17.07 3.98a2.013 2.013 0 0 0-1.81-1.23c-.26 0-.53.04-.79.15L7.1 5.95a1.999 1.999 0 0 0-1.08 2.6l4.96 11.97a1.998 1.998 0 0 0 2.6 1.08l7.36-3.05a1.994 1.994 0 0 0 1.09-2.6zM7.88 8.75c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm-2 11c0 1.1.9 2 2 2h1.45l-3.45-8.34v6.34z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/subdirectory_arrow_left.svg b/html/matt-chat/uswds/img/material-icons/subdirectory_arrow_left.svg
new file mode 100644
index 0000000..11b79d7
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/subdirectory_arrow_left.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m11 9 1.42 1.42L8.83 14H18V4h2v12H8.83l3.59 3.58L11 21l-6-6 6-6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/subdirectory_arrow_right.svg b/html/matt-chat/uswds/img/material-icons/subdirectory_arrow_right.svg
new file mode 100644
index 0000000..df07060
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/subdirectory_arrow_right.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m19 15-6 6-1.42-1.42L15.17 16H4V4h2v10h9.17l-3.59-3.58L13 9l6 6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/subject.svg b/html/matt-chat/uswds/img/material-icons/subject.svg
new file mode 100644
index 0000000..3772a0b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/subject.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M14 17H4v2h10v-2zm6-8H4v2h16V9zM4 15h16v-2H4v2zM4 5v2h16V5H4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/subscript.svg b/html/matt-chat/uswds/img/material-icons/subscript.svg
new file mode 100644
index 0000000..7d6350a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/subscript.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M22 18h-2v1h3v1h-4v-2c0-.55.45-1 1-1h2v-1h-3v-1h3c.55 0 1 .45 1 1v1c0 .55-.45 1-1 1zM5.88 18h2.66l3.4-5.42h.12l3.4 5.42h2.66l-4.65-7.27L17.81 4h-2.68l-3.07 4.99h-.12L8.85 4H6.19l4.32 6.73L5.88 18z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/subscriptions.svg b/html/matt-chat/uswds/img/material-icons/subscriptions.svg
new file mode 100644
index 0000000..0328b14
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/subscriptions.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 8H4V6h16v2zm-2-6H6v2h12V2zm4 10v8c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2v-8c0-1.1.9-2 2-2h16c1.1 0 2 .9 2 2zm-6 4-6-3.27v6.53L16 16z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/subtitles.svg b/html/matt-chat/uswds/img/material-icons/subtitles.svg
new file mode 100644
index 0000000..ea10bfd
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/subtitles.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zM4 12h4v2H4v-2zm10 6H4v-2h10v2zm6 0h-4v-2h4v2zm0-4H10v-2h10v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/subtitles_off.svg b/html/matt-chat/uswds/img/material-icons/subtitles_off.svg
new file mode 100644
index 0000000..b7c84f6
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/subtitles_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 4H6.83l8 8H20v2h-3.17l4.93 4.93c.15-.28.24-.59.24-.93V6c0-1.1-.9-2-2-2zM1.04 3.87l1.2 1.2C2.09 5.35 2 5.66 2 6v12c0 1.1.9 2 2 2h13.17l2.96 2.96 1.41-1.41L2.45 2.45 1.04 3.87zM8 12v2H4v-2h4zm6 4.83V18H4v-2h9.17l.83.83z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/subway.svg b/html/matt-chat/uswds/img/material-icons/subway.svg
new file mode 100644
index 0000000..0d0f350
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/subway.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><circle cx="15.5" cy="16" r="1"/><circle cx="8.5" cy="16" r="1"/><path d="M7.01 9h10v5h-10zM17.8 2.8C16 2.09 13.86 2 12 2c-1.86 0-4 .09-5.8.8C3.53 3.84 2 6.05 2 8.86V22h20V8.86c0-2.81-1.53-5.02-4.2-6.06zm.2 13.08c0 1.45-1.18 2.62-2.63 2.62l1.13 1.12V20H15l-1.5-1.5h-2.83L9.17 20H7.5v-.38l1.12-1.12C7.18 18.5 6 17.32 6 15.88V9c0-2.63 3-3 6-3 3.32 0 6 .38 6 3v6.88z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/summarize.svg b/html/matt-chat/uswds/img/material-icons/summarize.svg
new file mode 100644
index 0000000..cab15a9
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/summarize.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15 3H5c-1.1 0-1.99.9-1.99 2L3 19c0 1.1.89 2 1.99 2H19c1.1 0 2-.9 2-2V9l-6-6zM8 17c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm0-4c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm0-4c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm6 1V4.5l5.5 5.5H14z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/superscript.svg b/html/matt-chat/uswds/img/material-icons/superscript.svg
new file mode 100644
index 0000000..8bcce90
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/superscript.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M22 7h-2v1h3v1h-4V7c0-.55.45-1 1-1h2V5h-3V4h3c.55 0 1 .45 1 1v1c0 .55-.45 1-1 1zM5.88 20h2.66l3.4-5.42h.12l3.4 5.42h2.66l-4.65-7.27L17.81 6h-2.68l-3.07 4.99h-.12L8.85 6H6.19l4.32 6.73L5.88 20z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/supervised_user_circle.svg b/html/matt-chat/uswds/img/material-icons/supervised_user_circle.svg
new file mode 100644
index 0000000..2aba79c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/supervised_user_circle.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11.99 2c-5.52 0-10 4.48-10 10s4.48 10 10 10 10-4.48 10-10-4.48-10-10-10zm3.61 6.34c1.07 0 1.93.86 1.93 1.93 0 1.07-.86 1.93-1.93 1.93-1.07 0-1.93-.86-1.93-1.93-.01-1.07.86-1.93 1.93-1.93zm-6-1.58c1.3 0 2.36 1.06 2.36 2.36 0 1.3-1.06 2.36-2.36 2.36s-2.36-1.06-2.36-2.36c0-1.31 1.05-2.36 2.36-2.36zm0 9.13v3.75c-2.4-.75-4.3-2.6-5.14-4.96 1.05-1.12 3.67-1.69 5.14-1.69.53 0 1.2.08 1.9.22-1.64.87-1.9 2.02-1.9 2.68zM11.99 20c-.27 0-.53-.01-.79-.04v-4.07c0-1.42 2.94-2.13 4.4-2.13 1.07 0 2.92.39 3.84 1.15-1.17 2.97-4.06 5.09-7.45 5.09z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/supervisor_account.svg b/html/matt-chat/uswds/img/material-icons/supervisor_account.svg
new file mode 100644
index 0000000..e366a6a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/supervisor_account.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16.5 12c1.38 0 2.49-1.12 2.49-2.5S17.88 7 16.5 7a2.5 2.5 0 0 0 0 5zM9 11c1.66 0 2.99-1.34 2.99-3S10.66 5 9 5C7.34 5 6 6.34 6 8s1.34 3 3 3zm7.5 3c-1.83 0-5.5.92-5.5 2.75V19h11v-2.25c0-1.83-3.67-2.75-5.5-2.75zM9 13c-2.33 0-7 1.17-7 3.5V19h7v-2.25c0-.85.33-2.34 2.37-3.47C10.5 13.1 9.66 13 9 13z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/support.svg b/html/matt-chat/uswds/img/material-icons/support.svg
new file mode 100644
index 0000000..23c6817
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/support.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm7.46 7.12-2.78 1.15a4.982 4.982 0 0 0-2.95-2.94l1.15-2.78c2.1.8 3.77 2.47 4.58 4.57zM12 15c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3zM9.13 4.54l1.17 2.78a5 5 0 0 0-2.98 2.97L4.54 9.13a7.984 7.984 0 0 1 4.59-4.59zM4.54 14.87l2.78-1.15a4.968 4.968 0 0 0 2.97 2.96l-1.17 2.78a7.996 7.996 0 0 1-4.58-4.59zm10.34 4.59-1.15-2.78a4.978 4.978 0 0 0 2.95-2.97l2.78 1.17a8.007 8.007 0 0 1-4.58 4.58z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/support_agent.svg b/html/matt-chat/uswds/img/material-icons/support_agent.svg
new file mode 100644
index 0000000..62f96a3
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/support_agent.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 12.22C21 6.73 16.74 3 12 3c-4.69 0-9 3.65-9 9.28-.6.34-1 .98-1 1.72v2c0 1.1.9 2 2 2h1v-6.1c0-3.87 3.13-7 7-7s7 3.13 7 7V19h-8v2h8c1.1 0 2-.9 2-2v-1.22c.59-.31 1-.92 1-1.64v-2.3c0-.7-.41-1.31-1-1.62z"/><circle cx="9" cy="13" r="1"/><circle cx="15" cy="13" r="1"/><path d="M18 11.03A6.04 6.04 0 0 0 12.05 6c-3.03 0-6.29 2.51-6.03 6.45a8.075 8.075 0 0 0 4.86-5.89c1.31 2.63 4 4.44 7.12 4.47z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/surfing.svg b/html/matt-chat/uswds/img/material-icons/surfing.svg
new file mode 100644
index 0000000..f073772
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/surfing.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 23c-1.03 0-2.06-.25-3-.75-1.89 1-4.11 1-6 0-1.89 1-4.11 1-6 0-.95.5-1.97.75-3 .75H2v-2h1c1.04 0 2.08-.35 3-1 1.83 1.3 4.17 1.3 6 0 1.83 1.3 4.17 1.3 6 0 .91.65 1.96 1 3 1h1v2h-1zM17 1.5c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-2.57 6.98L12.18 10 16 13v3.84c.53.38 1.03.78 1.49 1.17-.68.58-1.55.99-2.49.99-1.2 0-2.27-.66-3-1.5-.73.84-1.8 1.5-3 1.5-.33 0-.65-.05-.96-.14C5.19 16.9 3 14.72 3 13.28 3 12.25 4.01 12 4.85 12c.98 0 2.28.31 3.7.83l-.53-3.1c-.11-.67.18-1.38.78-1.79l2.15-1.45-2-.37-2.82 1.93L5 6.4 8.5 4l5.55 1.03c.45.09.93.37 1.22.89l.88 1.55A5.007 5.007 0 0 0 20.5 10v2a7.01 7.01 0 0 1-6.07-3.52zM10.3 11.1l.44 2.65c.92.42 2.48 1.27 3.26 1.75V14l-3.7-2.9z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/surround_sound.svg b/html/matt-chat/uswds/img/material-icons/surround_sound.svg
new file mode 100644
index 0000000..80410e7
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/surround_sound.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zM7.76 16.24l-1.41 1.41A7.909 7.909 0 0 1 4 12c0-2.05.78-4.1 2.34-5.66l1.41 1.41C6.59 8.93 6 10.46 6 12s.59 3.07 1.76 4.24zM12 16c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4zm5.66 1.66-1.41-1.41C17.41 15.07 18 13.54 18 12s-.59-3.07-1.76-4.24l1.41-1.41A7.909 7.909 0 0 1 20 12c0 2.05-.78 4.1-2.34 5.66zM12 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/swap_calls.svg b/html/matt-chat/uswds/img/material-icons/swap_calls.svg
new file mode 100644
index 0000000..1ed9e1e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/swap_calls.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m18 4-4 4h3v7c0 1.1-.9 2-2 2s-2-.9-2-2V8c0-2.21-1.79-4-4-4S5 5.79 5 8v7H2l4 4 4-4H7V8c0-1.1.9-2 2-2s2 .9 2 2v7c0 2.21 1.79 4 4 4s4-1.79 4-4V8h3l-4-4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/swap_horiz.svg b/html/matt-chat/uswds/img/material-icons/swap_horiz.svg
new file mode 100644
index 0000000..be75dc7
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/swap_horiz.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M6.99 11 3 15l3.99 4v-3H14v-2H6.99v-3zM21 9l-3.99-4v3H10v2h7.01v3L21 9z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/swap_horizontal_circle.svg b/html/matt-chat/uswds/img/material-icons/swap_horizontal_circle.svg
new file mode 100644
index 0000000..e9291a3
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/swap_horizontal_circle.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M22 12c0-5.52-4.48-10-10-10S2 6.48 2 12s4.48 10 10 10 10-4.48 10-10zm-7-5.5 3.5 3.5-3.5 3.5V11h-4V9h4V6.5zm-6 11L5.5 14 9 10.5V13h4v2H9v2.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/swap_vert.svg b/html/matt-chat/uswds/img/material-icons/swap_vert.svg
new file mode 100644
index 0000000..b7e69ce
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/swap_vert.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16 17.01V10h-2v7.01h-3L15 21l4-3.99h-3zM9 3 5 6.99h3V14h2V6.99h3L9 3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/swap_vertical_circle.svg b/html/matt-chat/uswds/img/material-icons/swap_vertical_circle.svg
new file mode 100644
index 0000000..387c956
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/swap_vertical_circle.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zM6.5 9 10 5.5 13.5 9H11v4H9V9H6.5zm11 6L14 18.5 10.5 15H13v-4h2v4h2.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/swipe.svg b/html/matt-chat/uswds/img/material-icons/swipe.svg
new file mode 100644
index 0000000..55620fb
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/swipe.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m18.89 14.75-4.09-2.04c-.28-.14-.58-.21-.89-.21H13v-6c0-.83-.67-1.5-1.5-1.5S10 5.67 10 6.5v10.74l-3.25-.74a.99.99 0 0 0-.92.28l-.83.84 4.54 4.79c.38.38 1.14.59 1.67.59h6.16c1 0 1.84-.73 1.98-1.72l.63-4.46c.12-.85-.32-1.68-1.09-2.07z"/><path d="M20.13 3.87C18.69 2.17 15.6 1 12 1S5.31 2.17 3.87 3.87L2 2v5h5L4.93 4.93c1-1.29 3.7-2.43 7.07-2.43s6.07 1.14 7.07 2.43L17 7h5V2l-1.87 1.87z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/swipe_down.svg b/html/matt-chat/uswds/img/material-icons/swipe_down.svg
new file mode 100644
index 0000000..578f678
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/swipe_down.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3.8 12.18c-.2-.86-.3-1.76-.3-2.68 0-2.84.99-5.45 2.63-7.5L7.2 3.07a10.457 10.457 0 0 0-1.88 8.99l1.62-1.62L8 11.5 4.5 15 1 11.5l1.06-1.06 1.74 1.74zm10.05-.56-2.68-5.37a1.498 1.498 0 0 0-2.01-.67c-.75.38-1.05 1.28-.68 2.02l4.81 9.6-3.24.8c-.33.09-.59.33-.7.66L9 19.78l6.19 2.25c.5.17 1.28.02 1.75-.22l5.51-2.75c.89-.45 1.32-1.48 1-2.42l-1.43-4.27a2 2 0 0 0-1.9-1.37h-4.56c-.31 0-.62.07-.89.21l-.82.41"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/swipe_down_alt.svg b/html/matt-chat/uswds/img/material-icons/swipe_down_alt.svg
new file mode 100644
index 0000000..fa6956b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/swipe_down_alt.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13 13.9a5 5 0 1 0-2 0v4.27l-1.59-1.59L8 18l4 4 4-4-1.41-1.41L13 18.17V13.9z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/swipe_left.svg b/html/matt-chat/uswds/img/material-icons/swipe_left.svg
new file mode 100644
index 0000000..356ecbc
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/swipe_left.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m19.98 16.82-.63 4.46c-.14.99-.99 1.72-1.98 1.72h-6.16c-.53 0-1.29-.21-1.66-.59L5 17.62l.83-.84c.24-.24.58-.35.92-.28l3.25.74V6.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5v6h.91c.31 0 .62.07.89.21l4.09 2.04c.77.39 1.21 1.22 1.09 2.07zM12 2.5c4.74 0 7.67 2.52 8.43 4.5H22c-.73-2.88-4.51-6-10-6-3.22 0-6.18 1.13-8.5 3.02V2H2v5h5V5.5H4.09c2.12-1.86 4.88-3 7.91-3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/swipe_left_alt.svg b/html/matt-chat/uswds/img/material-icons/swipe_left_alt.svg
new file mode 100644
index 0000000..968f9f3
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/swipe_left_alt.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10.1 13a5 5 0 1 0 0-2H5.83l1.59-1.59L6 8l-4 4 4 4 1.41-1.41L5.83 13h4.27z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/swipe_right.svg b/html/matt-chat/uswds/img/material-icons/swipe_right.svg
new file mode 100644
index 0000000..3d3e472
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/swipe_right.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m19.98 16.82-.63 4.46c-.14.99-.99 1.72-1.98 1.72h-6.16c-.53 0-1.29-.21-1.66-.59L5 17.62l.83-.84c.24-.24.58-.35.92-.28l3.25.74V6.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5v6h.91c.31 0 .62.07.89.21l4.09 2.04c.77.39 1.21 1.22 1.09 2.07zM19.91 5.5H17V7h5V2h-1.5v2.02A13.413 13.413 0 0 0 12 1C6.51 1 2.73 4.12 2 7h1.57C4.33 5.02 7.26 2.5 12 2.5c3.03 0 5.79 1.14 7.91 3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/swipe_right_alt.svg b/html/matt-chat/uswds/img/material-icons/swipe_right_alt.svg
new file mode 100644
index 0000000..a1f8df0
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/swipe_right_alt.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13.9 11a5 5 0 1 0 0 2h4.27l-1.59 1.59L18 16l4-4-4-4-1.41 1.41L18.17 11H13.9z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/swipe_up.svg b/html/matt-chat/uswds/img/material-icons/swipe_up.svg
new file mode 100644
index 0000000..98686b4
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/swipe_up.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M2.06 5.56 1 4.5 4.5 1 8 4.5 6.94 5.56 5.32 3.94a10.457 10.457 0 0 0 1.88 8.99L6.13 14A11.974 11.974 0 0 1 3.5 6.5c0-.92.1-1.82.3-2.68L2.06 5.56zm11.79 6.06-2.68-5.37a1.498 1.498 0 0 0-2.01-.67c-.75.38-1.05 1.28-.68 2.02l4.81 9.6-3.24.8c-.33.09-.59.33-.7.66L9 19.78l6.19 2.25c.5.17 1.28.02 1.75-.22l5.51-2.75c.89-.45 1.32-1.48 1-2.42l-1.43-4.27a2 2 0 0 0-1.9-1.37h-4.56c-.31 0-.62.07-.89.21l-.82.41"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/swipe_up_alt.svg b/html/matt-chat/uswds/img/material-icons/swipe_up_alt.svg
new file mode 100644
index 0000000..8b50657
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/swipe_up_alt.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m13 5.83 1.59 1.59L16 6l-4-4-4 4 1.41 1.41L11 5.83v4.27a5 5 0 1 0 2 0V5.83z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/swipe_vertical.svg b/html/matt-chat/uswds/img/material-icons/swipe_vertical.svg
new file mode 100644
index 0000000..cc2fbc2
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/swipe_vertical.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M1 3.5h2.02C1.13 5.82 0 8.78 0 12s1.13 6.18 3.02 8.5H1V22h5v-5H4.5v2.91c-1.86-2.11-3-4.88-3-7.91s1.14-5.79 3-7.91V7H6V2H1v1.5zm12.85 8.12-2.68-5.37a1.498 1.498 0 0 0-2.01-.67c-.75.38-1.05 1.28-.68 2.02l4.81 9.6-3.24.8c-.33.09-.59.33-.7.66L9 19.78l6.19 2.25c.5.17 1.28.02 1.75-.22l5.51-2.75c.89-.45 1.32-1.48 1-2.42l-1.43-4.27a2 2 0 0 0-1.9-1.37h-4.56c-.31 0-.62.07-.89.21l-.82.41"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/switch_access_shortcut.svg b/html/matt-chat/uswds/img/material-icons/switch_access_shortcut.svg
new file mode 100644
index 0000000..03a2d9c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/switch_access_shortcut.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M7.06 8.94 5 8l2.06-.94L8 5l.94 2.06L11 8l-2.06.94L8 11l-.94-2.06zM8 21l.94-2.06L11 18l-2.06-.94L8 15l-.94 2.06L5 18l2.06.94L8 21zm-3.63-8.63L3 13l1.37.63L5 15l.63-1.37L7 13l-1.37-.63L5 11l-.63 1.37zM12 12c0-2.73 1.08-5.27 2.75-7.25L12 2h7v7l-2.82-2.82C14.84 7.82 14 9.88 14 12c0 3.32 2.1 6.36 5 7.82V22c-4.09-1.59-7-5.65-7-10z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/switch_access_shortcut_add.svg b/html/matt-chat/uswds/img/material-icons/switch_access_shortcut_add.svg
new file mode 100644
index 0000000..b306242
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/switch_access_shortcut_add.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M24 14h-2v-2h-2v2h-2v2h2v2h2v-2h2v-2zM7.06 8.94 5 8l2.06-.94L8 5l.94 2.06L11 8l-2.06.94L8 11l-.94-2.06zM8 21l.94-2.06L11 18l-2.06-.94L8 15l-.94 2.06L5 18l2.06.94L8 21zm-3.63-8.63L3 13l1.37.63L5 15l.63-1.37L7 13l-1.37-.63L5 11l-.63 1.37zM12 12c0-2.73 1.08-5.27 2.75-7.25L12 2h7v7l-2.82-2.82C14.84 7.82 14 9.88 14 12c0 3.32 2.1 6.36 5 7.82V22c-4.09-1.59-7-5.65-7-10z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/switch_account.svg b/html/matt-chat/uswds/img/material-icons/switch_account.svg
new file mode 100644
index 0000000..73c398b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/switch_account.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6zm16-4H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-6 2c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3 1.34-3 3-3zm6 12H8v-1.5c0-1.99 4-3 6-3s6 1.01 6 3V16z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/switch_camera.svg b/html/matt-chat/uswds/img/material-icons/switch_camera.svg
new file mode 100644
index 0000000..979b015
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/switch_camera.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 4h-3.17L15 2H9L7.17 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-5 11.5V13H9v2.5L5.5 12 9 8.5V11h6V8.5l3.5 3.5-3.5 3.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/switch_left.svg b/html/matt-chat/uswds/img/material-icons/switch_left.svg
new file mode 100644
index 0000000..685fa12
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/switch_left.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M8.5 8.62v6.76L5.12 12 8.5 8.62M10 5l-7 7 7 7V5zm4 0v14l7-7-7-7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/switch_right.svg b/html/matt-chat/uswds/img/material-icons/switch_right.svg
new file mode 100644
index 0000000..d015ced
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/switch_right.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15.5 15.38V8.62L18.88 12l-3.38 3.38M14 19l7-7-7-7v14zm-4 0V5l-7 7 7 7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/switch_video.svg b/html/matt-chat/uswds/img/material-icons/switch_video.svg
new file mode 100644
index 0000000..821e50d
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/switch_video.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 9.5V6c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h14c.55 0 1-.45 1-1v-3.5l4 4v-13l-4 4zm-5 6V13H7v2.5L3.5 12 7 8.5V11h6V8.5l3.5 3.5-3.5 3.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/synagogue.svg b/html/matt-chat/uswds/img/material-icons/synagogue.svg
new file mode 100644
index 0000000..6768391
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/synagogue.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M6 8v13h4v-5c0-1.1.9-2 2-2s2 .9 2 2v5h4V8l-6-5-6 5zm7.5 2c0 .83-.67 1.5-1.5 1.5s-1.5-.67-1.5-1.5.67-1.5 1.5-1.5 1.5.67 1.5 1.5zM3 5c-1.1 0-2 .9-2 2v1h4V7c0-1.1-.9-2-2-2zM1 9h4v12H1zm20-4c-1.1 0-2 .9-2 2v1h4V7c0-1.1-.9-2-2-2zm-2 4h4v12h-4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/sync.svg b/html/matt-chat/uswds/img/material-icons/sync.svg
new file mode 100644
index 0000000..4731328
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/sync.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 4V1L8 5l4 4V6c3.31 0 6 2.69 6 6 0 1.01-.25 1.97-.7 2.8l1.46 1.46A7.93 7.93 0 0 0 20 12c0-4.42-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6 0-1.01.25-1.97.7-2.8L5.24 7.74A7.93 7.93 0 0 0 4 12c0 4.42 3.58 8 8 8v3l4-4-4-4v3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/sync_alt.svg b/html/matt-chat/uswds/img/material-icons/sync_alt.svg
new file mode 100644
index 0000000..4cd63cb
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/sync_alt.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m18 12 4-4-4-4v3H3v2h15zM6 12l-4 4 4 4v-3h15v-2H6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/sync_disabled.svg b/html/matt-chat/uswds/img/material-icons/sync_disabled.svg
new file mode 100644
index 0000000..a4566d3
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/sync_disabled.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10 6.35V4.26c-.8.21-1.55.54-2.23.96l1.46 1.46c.25-.12.5-.24.77-.33zm-7.14-.94 2.36 2.36a7.925 7.925 0 0 0 1.14 9.87L4 20h6v-6l-2.24 2.24A6.003 6.003 0 0 1 6 12c0-1 .25-1.94.68-2.77l8.08 8.08c-.25.13-.5.25-.77.34v2.09c.8-.21 1.55-.54 2.23-.96l2.36 2.36 1.27-1.27L4.14 4.14 2.86 5.41zM20 4h-6v6l2.24-2.24A6.003 6.003 0 0 1 18 12c0 1-.25 1.94-.68 2.77l1.46 1.46a7.925 7.925 0 0 0-1.14-9.87L20 4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/sync_lock.svg b/html/matt-chat/uswds/img/material-icons/sync_lock.svg
new file mode 100644
index 0000000..6500493
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/sync_lock.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10 4.26v2.09C7.67 7.18 6 9.39 6 12c0 1.77.78 3.34 2 4.44V14h2v6H4v-2h2.73A7.942 7.942 0 0 1 4 12c0-3.73 2.55-6.85 6-7.74zM20 4h-6v6h2V7.56c1.22 1.1 2 2.67 2 4.44h2c0-2.4-1.06-4.54-2.73-6H20V4zm0 13v-1c0-1.1-.9-2-2-2s-2 .9-2 2v1c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-3c0-.55-.45-1-1-1zm-1 0h-2v-1c0-.55.45-1 1-1s1 .45 1 1v1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/sync_problem.svg b/html/matt-chat/uswds/img/material-icons/sync_problem.svg
new file mode 100644
index 0000000..36c484b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/sync_problem.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 12c0 2.21.91 4.2 2.36 5.64L3 20h6v-6l-2.24 2.24A6.003 6.003 0 0 1 5 12a5.99 5.99 0 0 1 4-5.65V4.26C5.55 5.15 3 8.27 3 12zm8 5h2v-2h-2v2zM21 4h-6v6l2.24-2.24A6.003 6.003 0 0 1 19 12a5.99 5.99 0 0 1-4 5.65v2.09c3.45-.89 6-4.01 6-7.74 0-2.21-.91-4.2-2.36-5.64L21 4zm-10 9h2V7h-2v6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/system_security_update.svg b/html/matt-chat/uswds/img/material-icons/system_security_update.svg
new file mode 100644
index 0000000..1404ede
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/system_security_update.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M5 3v18c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2H7c-1.1 0-2 .9-2 2zm12 15H7V6h10v12zm-1-6h-3V8h-2v4H8l4 4 4-4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/system_security_update_good.svg b/html/matt-chat/uswds/img/material-icons/system_security_update_good.svg
new file mode 100644
index 0000000..b1fa1d2
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/system_security_update_good.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 1H7c-1.1 0-2 .9-2 2v18c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 17H7V6h10v12zm-1-7.95-1.41-1.41-3.54 3.54-1.41-1.41-1.41 1.41L11.05 15 16 10.05z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/system_security_update_warning.svg b/html/matt-chat/uswds/img/material-icons/system_security_update_warning.svg
new file mode 100644
index 0000000..fc46b92
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/system_security_update_warning.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11 15h2v2h-2zm0-8h2v6h-2z"/><path d="M17 1H7c-1.1 0-1.99.9-1.99 2v18c0 1.1.89 2 1.99 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 17H7V6h10v12z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/system_update.svg b/html/matt-chat/uswds/img/material-icons/system_update.svg
new file mode 100644
index 0000000..bdbee48
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/system_update.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 1.01 7 1c-1.1 0-2 .9-2 2v18c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-1.99-2-1.99zM17 19H7V5h10v14zm-1-6h-3V8h-2v5H8l4 4 4-4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/system_update_alt.svg b/html/matt-chat/uswds/img/material-icons/system_update_alt.svg
new file mode 100644
index 0000000..a295732
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/system_update_alt.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m12 16.5 4-4h-3v-9h-2v9H8l4 4zm9-13h-6v1.99h6v14.03H3V5.49h6V3.5H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2v-14c0-1.1-.9-2-2-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/tab.svg b/html/matt-chat/uswds/img/material-icons/tab.svg
new file mode 100644
index 0000000..f7e96a8
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/tab.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 3H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H3V5h10v4h8v10z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/tab_unselected.svg b/html/matt-chat/uswds/img/material-icons/tab_unselected.svg
new file mode 100644
index 0000000..f5d8a3d
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/tab_unselected.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M1 9h2V7H1v2zm0 4h2v-2H1v2zm0-8h2V3c-1.1 0-2 .9-2 2zm8 16h2v-2H9v2zm-8-4h2v-2H1v2zm2 4v-2H1c0 1.1.9 2 2 2zM21 3h-8v6h10V5c0-1.1-.9-2-2-2zm0 14h2v-2h-2v2zM9 5h2V3H9v2zM5 21h2v-2H5v2zM5 5h2V3H5v2zm16 16c1.1 0 2-.9 2-2h-2v2zm0-8h2v-2h-2v2zm-8 8h2v-2h-2v2zm4 0h2v-2h-2v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/table_bar.svg b/html/matt-chat/uswds/img/material-icons/table_bar.svg
new file mode 100644
index 0000000..61dc5a8
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/table_bar.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M22 7.5C22 5.57 17.52 4 12 4S2 5.57 2 7.5c0 1.81 3.95 3.31 9 3.48V15H9.35c-.82 0-1.55.5-1.86 1.26L6 20h2l1.2-3h5.6l1.2 3h2l-1.5-3.74c-.3-.76-1.04-1.26-1.85-1.26H13v-4.02c5.05-.17 9-1.67 9-3.48z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/table_chart.svg b/html/matt-chat/uswds/img/material-icons/table_chart.svg
new file mode 100644
index 0000000..c6491c7
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/table_chart.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10 10.02h5V21h-5zM17 21h3c1.1 0 2-.9 2-2v-9h-5v11zm3-18H5c-1.1 0-2 .9-2 2v3h19V5c0-1.1-.9-2-2-2zM3 19c0 1.1.9 2 2 2h3V10H3v9z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/table_restaurant.svg b/html/matt-chat/uswds/img/material-icons/table_restaurant.svg
new file mode 100644
index 0000000..eba79b7
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/table_restaurant.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m21.96 9.73-1.43-5a.996.996 0 0 0-.96-.73H4.43c-.45 0-.84.3-.96.73l-1.43 5c-.18.63.3 1.27.96 1.27h2.2L4 20h2l.67-5h10.67l.66 5h2l-1.2-9H21c.66 0 1.14-.64.96-1.27zM6.93 13l.27-2h9.6l.27 2H6.93z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/table_rows.svg b/html/matt-chat/uswds/img/material-icons/table_rows.svg
new file mode 100644
index 0000000..7307656
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/table_rows.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 8H3V4h18v4zm0 2H3v4h18v-4zm0 6H3v4h18v-4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/table_view.svg b/html/matt-chat/uswds/img/material-icons/table_view.svg
new file mode 100644
index 0000000..04da99c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/table_view.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 7H9c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V9c0-1.1-.9-2-2-2zm0 2v2H9V9h10zm-6 6v-2h2v2h-2zm2 2v2h-2v-2h2zm-4-2H9v-2h2v2zm6-2h2v2h-2v-2zm-8 4h2v2H9v-2zm8 2v-2h2v2h-2zM6 17H5c-1.1 0-2-.9-2-2V5c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2v1h-2V5H5v10h1v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/tablet.svg b/html/matt-chat/uswds/img/material-icons/tablet.svg
new file mode 100644
index 0000000..f5390cc
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/tablet.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 4H3c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h18c1.1 0 1.99-.9 1.99-2L23 6c0-1.1-.9-2-2-2zm-2 14H5V6h14v12z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/tablet_android.svg b/html/matt-chat/uswds/img/material-icons/tablet_android.svg
new file mode 100644
index 0000000..9e4301b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/tablet_android.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 0H6C4.34 0 3 1.34 3 3v18c0 1.66 1.34 3 3 3h12c1.66 0 3-1.34 3-3V3c0-1.66-1.34-3-3-3zm-4 22h-4v-1h4v1zm5.25-3H4.75V3h14.5v16z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/tablet_mac.svg b/html/matt-chat/uswds/img/material-icons/tablet_mac.svg
new file mode 100644
index 0000000..f99b281
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/tablet_mac.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18.5 0h-14A2.5 2.5 0 0 0 2 2.5v19A2.5 2.5 0 0 0 4.5 24h14a2.5 2.5 0 0 0 2.5-2.5v-19A2.5 2.5 0 0 0 18.5 0zm-7 23c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm7.5-4H4V3h15v16z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/tag.svg b/html/matt-chat/uswds/img/material-icons/tag.svg
new file mode 100644
index 0000000..b15b9fc
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/tag.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 10V8h-4V4h-2v4h-4V4H8v4H4v2h4v4H4v2h4v4h2v-4h4v4h2v-4h4v-2h-4v-4h4zm-6 4h-4v-4h4v4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/tag_faces.svg b/html/matt-chat/uswds/img/material-icons/tag_faces.svg
new file mode 100644
index 0000000..57bea0f
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/tag_faces.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm3.5-9c.83 0 1.5-.67 1.5-1.5S16.33 8 15.5 8 14 8.67 14 9.5s.67 1.5 1.5 1.5zm-7 0c.83 0 1.5-.67 1.5-1.5S9.33 8 8.5 8 7 8.67 7 9.5 7.67 11 8.5 11zm3.5 6.5c2.33 0 4.31-1.46 5.11-3.5H6.89c.8 2.04 2.78 3.5 5.11 3.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/takeout_dining.svg b/html/matt-chat/uswds/img/material-icons/takeout_dining.svg
new file mode 100644
index 0000000..81156be
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/takeout_dining.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill-rule="evenodd" d="M5.26 11h13.48l-.67 9H5.93l-.67-9zm3.76-7h5.95L19 7.38l1.59-1.59L22 7.21 19.21 10H4.79L2 7.21 3.41 5.8 5 7.38 9.02 4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/tap_and_play.svg b/html/matt-chat/uswds/img/material-icons/tap_and_play.svg
new file mode 100644
index 0000000..a152682
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/tap_and_play.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M2 16v2c2.76 0 5 2.24 5 5h2c0-3.87-3.13-7-7-7zm0 4v3h3c0-1.66-1.34-3-3-3zm0-8v2a9 9 0 0 1 9 9h2c0-6.08-4.92-11-11-11zM17 1.01 7 1c-1.1 0-2 .9-2 2v7.37c.69.16 1.36.37 2 .64V5h10v13h-3.03c.52 1.25.84 2.59.95 4H17c1.1 0 2-.9 2-2V3c0-1.1-.9-1.99-2-1.99z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/tapas.svg b/html/matt-chat/uswds/img/material-icons/tapas.svg
new file mode 100644
index 0000000..5fa5e1b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/tapas.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M22 10V1h-8v9c0 1.86 1.28 3.41 3 3.86V21h-2v2h6v-2h-2v-7.14c1.72-.45 3-2 3-3.86zm-2-7v3h-4V3h4zm-7.5 8.5A2.5 2.5 0 0 1 10 14H8v9H6v-9H4a2.5 2.5 0 0 1 0-5h2V8H4a2.5 2.5 0 0 1 0-5h2V1h2v2h2a2.5 2.5 0 0 1 0 5H8v1h2a2.5 2.5 0 0 1 2.5 2.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/task.svg b/html/matt-chat/uswds/img/material-icons/task.svg
new file mode 100644
index 0000000..4082845
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/task.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm-3.06 16L7.4 14.46l1.41-1.41 2.12 2.12 4.24-4.24 1.41 1.41L10.94 18zM13 9V3.5L18.5 9H13z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/task_alt.svg b/html/matt-chat/uswds/img/material-icons/task_alt.svg
new file mode 100644
index 0000000..888c4cd
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/task_alt.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M22 5.18 10.59 16.6l-4.24-4.24 1.41-1.41 2.83 2.83 10-10L22 5.18zm-2.21 5.04c.13.57.21 1.17.21 1.78 0 4.42-3.58 8-8 8s-8-3.58-8-8 3.58-8 8-8c1.58 0 3.04.46 4.28 1.25l1.44-1.44A9.9 9.9 0 0 0 12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10c0-1.19-.22-2.33-.6-3.39l-1.61 1.61z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/taxi_alert.svg b/html/matt-chat/uswds/img/material-icons/taxi_alert.svg
new file mode 100644
index 0000000..3ccba9b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/taxi_alert.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M23 8A7 7 0 0 0 9.68 5H7v2H4.5a1.5 1.5 0 0 0-1.42 1.01L1 14v8a1 1 0 0 0 1 1h1a1 1 0 0 0 1-1v-1h12v1a1 1 0 0 0 1 1h1a1 1 0 0 0 1-1v-7.68A7.01 7.01 0 0 0 23 8zm-18.5.5h4.53a6.93 6.93 0 0 0 2.08 4.5H3l1.5-4.5zm0 9.5a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm11 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm2.93-5.63-.21.11-.18.09a4.97 4.97 0 0 1-.42.16l-.22.07-.23.06-.2.05a5 5 0 0 1-5.94-4.41A4.07 4.07 0 0 1 11 8l.02-.47.02-.17.04-.28.04-.21.05-.21.07-.24.05-.13a4.99 4.99 0 0 1 9.69 1.7 4.96 4.96 0 0 1-2.55 4.38zM15 4h2v5h-2zm0 6h2v2h-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/temple_buddhist.svg b/html/matt-chat/uswds/img/material-icons/temple_buddhist.svg
new file mode 100644
index 0000000..d257038
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/temple_buddhist.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 9.02c0 1.09-.89 1.98-1.98 1.98H4.98C3.89 11 3 10.11 3 9.02H1c0 1.86 1.28 3.4 3 3.84V22h6v-3c0-1.1.9-2 2-2s2 .9 2 2v3h6v-9.14c.55-.14 3-1.04 3-3.86l-2 .02z"/><path d="M6 8.86V10h12V8.86c.55-.14 3-1.04 3-3.86l-2 .02C19 6.11 18.11 7 17.02 7H6.98C5.89 7 5 6.11 5 5.02H3c0 1.85 1.28 3.4 3 3.84z"/><path d="M12 1 8.25 6h7.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/temple_hindu.svg b/html/matt-chat/uswds/img/material-icons/temple_hindu.svg
new file mode 100644
index 0000000..937630e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/temple_hindu.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M6.6 11h10.8l-.9-3h-9zM20 11v2H4v-2H2v11h8v-5h4v5h8V11zm-4.1-5L15 3V1h-2v2h-2.03V1h-2v2.12L8.1 6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/terminal.svg b/html/matt-chat/uswds/img/material-icons/terminal.svg
new file mode 100644
index 0000000..b1a4d63
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/terminal.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 4H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h16c1.1 0 2-.9 2-2V6a2 2 0 0 0-2-2zm0 14H4V8h16v10zm-2-1h-6v-2h6v2zM7.5 17l-1.41-1.41L8.67 13l-2.59-2.59L7.5 9l4 4-4 4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/terrain.svg b/html/matt-chat/uswds/img/material-icons/terrain.svg
new file mode 100644
index 0000000..a759b44
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/terrain.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m14 6-3.75 5 2.85 3.8-1.6 1.2C9.81 13.75 7 10 7 10l-6 8h22L14 6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/text_decrease.svg b/html/matt-chat/uswds/img/material-icons/text_decrease.svg
new file mode 100644
index 0000000..73ad6d7
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/text_decrease.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M.99 19h2.42l1.27-3.58h5.65L11.59 19h2.42L8.75 5h-2.5L.99 19zm4.42-5.61L7.44 7.6h.12l2.03 5.79H5.41zM23 11v2h-8v-2h8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/text_fields.svg b/html/matt-chat/uswds/img/material-icons/text_fields.svg
new file mode 100644
index 0000000..705cd75
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/text_fields.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M2.5 4v3h5v12h3V7h5V4h-13zm19 5h-9v3h3v7h3v-7h3V9z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/text_format.svg b/html/matt-chat/uswds/img/material-icons/text_format.svg
new file mode 100644
index 0000000..f7c3a4c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/text_format.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M5 17v2h14v-2H5zm4.5-4.2h5l.9 2.2h2.1L12.75 4h-1.5L6.5 15h2.1l.9-2.2zM12 5.98 13.87 11h-3.74L12 5.98z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/text_increase.svg b/html/matt-chat/uswds/img/material-icons/text_increase.svg
new file mode 100644
index 0000000..5a6e30c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/text_increase.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M.99 19h2.42l1.27-3.58h5.65L11.59 19h2.42L8.75 5h-2.5L.99 19zm4.42-5.61L7.44 7.6h.12l2.03 5.79H5.41zM20 11h3v2h-3v3h-2v-3h-3v-2h3V8h2v3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/text_rotate_up.svg b/html/matt-chat/uswds/img/material-icons/text_rotate_up.svg
new file mode 100644
index 0000000..024cbea
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/text_rotate_up.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 12v1.5l11 4.75v-2.1l-2.2-.9v-5l2.2-.9v-2.1L3 12zm7 2.62-5.02-1.87L10 10.88v3.74zm8-10.37-3 3h2v12.5h2V7.25h2l-3-3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/text_rotate_vertical.svg b/html/matt-chat/uswds/img/material-icons/text_rotate_vertical.svg
new file mode 100644
index 0000000..de84956
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/text_rotate_vertical.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15.75 5h-1.5L9.5 16h2.1l.9-2.2h5l.9 2.2h2.1L15.75 5zm-2.62 7L15 6.98 16.87 12h-3.74zM6 19.75l3-3H7V4.25H5v12.5H3l3 3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/text_rotation_angledown.svg b/html/matt-chat/uswds/img/material-icons/text_rotation_angledown.svg
new file mode 100644
index 0000000..b8a416f
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/text_rotation_angledown.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m19.4 4.91-1.06-1.06L7.2 8.27l1.48 1.48 2.19-.92 3.54 3.54-.92 2.19 1.48 1.48L19.4 4.91zm-6.81 3.1 4.87-2.23-2.23 4.87-2.64-2.64zM14.27 21v-4.24l-1.41 1.41-8.84-8.84-1.42 1.42 8.84 8.84L10.03 21h4.24z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/text_rotation_angleup.svg b/html/matt-chat/uswds/img/material-icons/text_rotation_angleup.svg
new file mode 100644
index 0000000..3a8ad43
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/text_rotation_angleup.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M4.49 4.21 3.43 5.27 7.85 16.4l1.48-1.48-.92-2.19 3.54-3.54 2.19.92 1.48-1.48L4.49 4.21zm3.09 6.8L5.36 6.14l4.87 2.23-2.65 2.64zm12.99-1.68h-4.24l1.41 1.41-8.84 8.84L10.32 21l8.84-8.84 1.41 1.41V9.33z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/text_rotation_down.svg b/html/matt-chat/uswds/img/material-icons/text_rotation_down.svg
new file mode 100644
index 0000000..333be20
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/text_rotation_down.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 12v-1.5L10 5.75v2.1l2.2.9v5l-2.2.9v2.1L21 12zm-7-2.62 5.02 1.87L14 13.12V9.38zM6 19.75l3-3H7V4.25H5v12.5H3l3 3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/text_rotation_none.svg b/html/matt-chat/uswds/img/material-icons/text_rotation_none.svg
new file mode 100644
index 0000000..32d0817
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/text_rotation_none.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12.75 3h-1.5L6.5 14h2.1l.9-2.2h5l.9 2.2h2.1L12.75 3zm-2.62 7L12 4.98 13.87 10h-3.74zm10.37 8-3-3v2H5v2h12.5v2l3-3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/text_snippet.svg b/html/matt-chat/uswds/img/material-icons/text_snippet.svg
new file mode 100644
index 0000000..22df9b0
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/text_snippet.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m20.41 8.41-4.83-4.83c-.37-.37-.88-.58-1.41-.58H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V9.83c0-.53-.21-1.04-.59-1.42zM7 7h7v2H7V7zm10 10H7v-2h10v2zm0-4H7v-2h10v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/textsms.svg b/html/matt-chat/uswds/img/material-icons/textsms.svg
new file mode 100644
index 0000000..b427d45
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/textsms.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM9 11H7V9h2v2zm4 0h-2V9h2v2zm4 0h-2V9h2v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/texture.svg b/html/matt-chat/uswds/img/material-icons/texture.svg
new file mode 100644
index 0000000..a3f89d5
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/texture.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19.51 3.08 3.08 19.51c.09.34.27.65.51.9.25.24.56.42.9.51L20.93 4.49c-.19-.69-.73-1.23-1.42-1.41zM11.88 3 3 11.88v2.83L14.71 3h-2.83zM5 3c-1.1 0-2 .9-2 2v2l4-4H5zm14 18c.55 0 1.05-.22 1.41-.59.37-.36.59-.86.59-1.41v-2l-4 4h2zm-9.71 0h2.83L21 12.12V9.29L9.29 21z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/theater_comedy.svg b/html/matt-chat/uswds/img/material-icons/theater_comedy.svg
new file mode 100644
index 0000000..15a848c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/theater_comedy.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M2 16.5C2 19.54 4.46 22 7.5 22s5.5-2.46 5.5-5.5V10H2v6.5zm5.5 2C6.12 18.5 5 17.83 5 17h5c0 .83-1.12 1.5-2.5 1.5zM10 13c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm-5 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1z"/><path d="M11 3v6h3v2.5c0-.83 1.12-1.5 2.5-1.5s2.5.67 2.5 1.5h-5v2.89c.75.38 1.6.61 2.5.61 3.04 0 5.5-2.46 5.5-5.5V3H11zm3 5.08c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1c0 .56-.45 1-1 1zm5 0c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1c0 .56-.45 1-1 1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/theaters.svg b/html/matt-chat/uswds/img/material-icons/theaters.svg
new file mode 100644
index 0000000..74652a6
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/theaters.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 3v2h-2V3H8v2H6V3H4v18h2v-2h2v2h8v-2h2v2h2V3h-2zM8 17H6v-2h2v2zm0-4H6v-2h2v2zm0-4H6V7h2v2zm10 8h-2v-2h2v2zm0-4h-2v-2h2v2zm0-4h-2V7h2v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/thermostat.svg b/html/matt-chat/uswds/img/material-icons/thermostat.svg
new file mode 100644
index 0000000..4611d9f
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/thermostat.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15 13V5c0-1.66-1.34-3-3-3S9 3.34 9 5v8c-1.21.91-2 2.37-2 4 0 2.76 2.24 5 5 5s5-2.24 5-5c0-1.63-.79-3.09-2-4zm-4-2V5c0-.55.45-1 1-1s1 .45 1 1v1h-1v1h1v2h-1v1h1v1h-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/thermostat_auto.svg b/html/matt-chat/uswds/img/material-icons/thermostat_auto.svg
new file mode 100644
index 0000000..e036019
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/thermostat_auto.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11 12V6c0-1.66-1.34-3-3-3S5 4.34 5 6v6c-1.21.91-2 2.37-2 4 0 1.12.38 2.14 1 2.97V19h.02c.91 1.21 2.35 2 3.98 2s3.06-.79 3.98-2H12v-.03c.62-.83 1-1.85 1-2.97 0-1.63-.79-3.09-2-4zm-6 4c0-.94.45-1.84 1.2-2.4L7 13V6c0-.55.45-1 1-1s1 .45 1 1v7l.8.6c.75.57 1.2 1.46 1.2 2.4H5zM18.62 4h-1.61l-3.38 9h1.56l.81-2.3h3.63l.8 2.3H22l-3.38-9zm-2.15 5.39 1.31-3.72h.08l1.31 3.72h-2.7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/thumb_down.svg b/html/matt-chat/uswds/img/material-icons/thumb_down.svg
new file mode 100644
index 0000000..32c9885
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/thumb_down.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15 3H6c-.83 0-1.54.5-1.84 1.22l-3.02 7.05c-.09.23-.14.47-.14.73v2c0 1.1.9 2 2 2h6.31l-.95 4.57-.03.32c0 .41.17.79.44 1.06L9.83 23l6.59-6.59c.36-.36.58-.86.58-1.41V5c0-1.1-.9-2-2-2zm4 0v12h4V3h-4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/thumb_down_alt.svg b/html/matt-chat/uswds/img/material-icons/thumb_down_alt.svg
new file mode 100644
index 0000000..2f3b84c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/thumb_down_alt.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M22 4h-2c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1h2V4zM2.17 11.12c-.11.25-.17.52-.17.8V13c0 1.1.9 2 2 2h5.5l-.92 4.65c-.05.22-.02.46.08.66.23.45.52.86.88 1.22L10 22l6.41-6.41c.38-.38.59-.89.59-1.42V6.34C17 5.05 15.95 4 14.66 4h-8.1c-.71 0-1.36.37-1.72.97l-2.67 6.15z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/thumb_down_off_alt.svg b/html/matt-chat/uswds/img/material-icons/thumb_down_off_alt.svg
new file mode 100644
index 0000000..a0941e8
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/thumb_down_off_alt.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m10.89 18.28.57-2.89c.12-.59-.04-1.2-.42-1.66-.38-.46-.94-.73-1.54-.73H4v-1.08L6.57 6h8.09c.18 0 .34.16.34.34v7.84l-4.11 4.1M10 22l6.41-6.41c.38-.38.59-.89.59-1.42V6.34C17 5.05 15.95 4 14.66 4h-8.1c-.71 0-1.36.37-1.72.97l-2.67 6.15c-.11.25-.17.52-.17.8V13c0 1.1.9 2 2 2h5.5l-.92 4.65c-.05.22-.02.46.08.66.23.45.52.86.88 1.22L10 22zm10-7h2V4h-2c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/thumb_up.svg b/html/matt-chat/uswds/img/material-icons/thumb_up.svg
new file mode 100644
index 0000000..dabfd72
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/thumb_up.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M1 21h4V9H1v12zm22-11c0-1.1-.9-2-2-2h-6.31l.95-4.57.03-.32c0-.41-.17-.79-.44-1.06L14.17 1 7.59 7.59C7.22 7.95 7 8.45 7 9v10c0 1.1.9 2 2 2h9c.83 0 1.54-.5 1.84-1.22l3.02-7.05c.09-.23.14-.47.14-.73v-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/thumb_up_alt.svg b/html/matt-chat/uswds/img/material-icons/thumb_up_alt.svg
new file mode 100644
index 0000000..82d1a63
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/thumb_up_alt.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M2 20h2c.55 0 1-.45 1-1v-9c0-.55-.45-1-1-1H2v11zm19.83-7.12c.11-.25.17-.52.17-.8V11c0-1.1-.9-2-2-2h-5.5l.92-4.65c.05-.22.02-.46-.08-.66a4.8 4.8 0 0 0-.88-1.22L14 2 7.59 8.41C7.21 8.79 7 9.3 7 9.83v7.84A2.34 2.34 0 0 0 9.34 20h8.11c.7 0 1.36-.37 1.72-.97l2.66-6.15z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/thumb_up_off_alt.svg b/html/matt-chat/uswds/img/material-icons/thumb_up_off_alt.svg
new file mode 100644
index 0000000..148e094
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/thumb_up_off_alt.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m13.11 5.72-.57 2.89c-.12.59.04 1.2.42 1.66.38.46.94.73 1.54.73H20v1.08L17.43 18H9.34a.35.35 0 0 1-.34-.34V9.82l4.11-4.1M14 2 7.59 8.41C7.21 8.79 7 9.3 7 9.83v7.83C7 18.95 8.05 20 9.34 20h8.1c.71 0 1.36-.37 1.72-.97l2.67-6.15c.11-.25.17-.52.17-.8V11c0-1.1-.9-2-2-2h-5.5l.92-4.65c.05-.22.02-.46-.08-.66a4.8 4.8 0 0 0-.88-1.22L14 2zM4 9H2v11h2c.55 0 1-.45 1-1v-9c0-.55-.45-1-1-1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/thumbs_up_down.svg b/html/matt-chat/uswds/img/material-icons/thumbs_up_down.svg
new file mode 100644
index 0000000..39e9a0e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/thumbs_up_down.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 6c0-.55-.45-1-1-1H5.82l.66-3.18.02-.23c0-.31-.13-.59-.33-.8L5.38 0 .44 4.94C.17 5.21 0 5.59 0 6v6.5c0 .83.67 1.5 1.5 1.5h6.75c.62 0 1.15-.38 1.38-.91l2.26-5.29c.07-.17.11-.36.11-.55V6zm10.5 4h-6.75c-.62 0-1.15.38-1.38.91l-2.26 5.29c-.07.17-.11.36-.11.55V18c0 .55.45 1 1 1h5.18l-.66 3.18-.02.24c0 .31.13.59.33.8l.79.78 4.94-4.94c.27-.27.44-.65.44-1.06v-6.5c0-.83-.67-1.5-1.5-1.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/thunderstorm.svg b/html/matt-chat/uswds/img/material-icons/thunderstorm.svg
new file mode 100644
index 0000000..ba60ed0
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/thunderstorm.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17.92 7.02C17.45 4.18 14.97 2 12 2 9.82 2 7.83 3.18 6.78 5.06 4.09 5.41 2 7.74 2 10.5 2 13.53 4.47 16 7.5 16h10c2.48 0 4.5-2.02 4.5-4.5a4.5 4.5 0 0 0-4.08-4.48zM14.8 17l-2.9 3.32 2 1L11.55 24h2.65l2.9-3.32-2-1L17.45 17zm-6 0-2.9 3.32 2 1L5.55 24H8.2l2.9-3.32-2-1L11.45 17z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/time_to_leave.svg b/html/matt-chat/uswds/img/material-icons/time_to_leave.svg
new file mode 100644
index 0000000..85b07ca
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/time_to_leave.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18.92 5.01C18.72 4.42 18.16 4 17.5 4h-11c-.66 0-1.21.42-1.42 1.01L3 11v8c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1h12v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-8l-2.08-5.99zM6.5 15c-.83 0-1.5-.67-1.5-1.5S5.67 12 6.5 12s1.5.67 1.5 1.5S7.33 15 6.5 15zm11 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zM5 10l1.5-4.5h11L19 10H5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/timelapse.svg b/html/matt-chat/uswds/img/material-icons/timelapse.svg
new file mode 100644
index 0000000..4b93ae4
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/timelapse.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16.24 7.76A5.974 5.974 0 0 0 12 6v6l-4.24 4.24c2.34 2.34 6.14 2.34 8.49 0a5.99 5.99 0 0 0-.01-8.48zM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/timeline.svg b/html/matt-chat/uswds/img/material-icons/timeline.svg
new file mode 100644
index 0000000..0c5b3e1
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/timeline.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M23 8c0 1.1-.9 2-2 2a1.7 1.7 0 0 1-.51-.07l-3.56 3.55c.05.16.07.34.07.52 0 1.1-.9 2-2 2s-2-.9-2-2c0-.18.02-.36.07-.52l-2.55-2.55c-.16.05-.34.07-.52.07s-.36-.02-.52-.07l-4.55 4.56c.05.16.07.33.07.51 0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2c.18 0 .35.02.51.07l4.56-4.55C8.02 9.36 8 9.18 8 9c0-1.1.9-2 2-2s2 .9 2 2c0 .18-.02.36-.07.52l2.55 2.55c.16-.05.34-.07.52-.07s.36.02.52.07l3.55-3.56A1.7 1.7 0 0 1 19 8c0-1.1.9-2 2-2s2 .9 2 2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/timer.svg b/html/matt-chat/uswds/img/material-icons/timer.svg
new file mode 100644
index 0000000..ae67cc8
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/timer.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M9 1h6v2H9zm10.03 6.39 1.42-1.42c-.43-.51-.9-.99-1.41-1.41l-1.42 1.42A8.962 8.962 0 0 0 12 4a9 9 0 0 0-9 9c0 4.97 4.02 9 9 9a8.994 8.994 0 0 0 7.03-14.61zM13 14h-2V8h2v6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/timer_10.svg b/html/matt-chat/uswds/img/material-icons/timer_10.svg
new file mode 100644
index 0000000..e22cc38
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/timer_10.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M0 7.72V9.4l3-1V18h2V6h-.25L0 7.72zm23.78 6.65c-.14-.28-.35-.53-.63-.74-.28-.21-.61-.39-1.01-.53s-.85-.27-1.35-.38a6.64 6.64 0 0 1-.87-.23 2.61 2.61 0 0 1-.55-.25.717.717 0 0 1-.28-.3.978.978 0 0 1 .01-.8c.06-.13.15-.25.27-.34.12-.1.27-.18.45-.24s.4-.09.64-.09c.25 0 .47.04.66.11.19.07.35.17.48.29.13.12.22.26.29.42.06.16.1.32.1.49h1.95a2.517 2.517 0 0 0-.93-1.97c-.3-.25-.66-.44-1.09-.59C21.49 9.07 21 9 20.46 9c-.51 0-.98.07-1.39.21-.41.14-.77.33-1.06.57-.29.24-.51.52-.67.84-.16.32-.23.65-.23 1.01s.08.69.23.96c.15.28.36.52.64.73.27.21.6.38.98.53.38.14.81.26 1.27.36.39.08.71.17.95.26s.43.19.57.29c.13.1.22.22.27.34.05.12.07.25.07.39 0 .32-.13.57-.4.77-.27.2-.66.29-1.17.29-.22 0-.43-.02-.64-.08-.21-.05-.4-.13-.56-.24a1.333 1.333 0 0 1-.59-1.11h-1.89c0 .36.08.71.24 1.05.16.34.39.65.7.93.31.27.69.49 1.15.66.46.17.98.25 1.58.25.53 0 1.01-.06 1.44-.19.43-.13.8-.31 1.11-.54.31-.23.54-.51.71-.83.17-.32.25-.67.25-1.06-.02-.4-.09-.74-.24-1.02zm-9.96-7.32c-.34-.4-.75-.7-1.23-.88-.47-.18-1.01-.27-1.59-.27-.58 0-1.11.09-1.59.27-.48.18-.89.47-1.23.88-.34.41-.6.93-.79 1.59-.18.65-.28 1.45-.28 2.39v1.92c0 .94.09 1.74.28 2.39.19.66.45 1.19.8 1.6.34.41.75.71 1.23.89.48.18 1.01.28 1.59.28.59 0 1.12-.09 1.59-.28.48-.18.88-.48 1.22-.89.34-.41.6-.94.78-1.6.18-.65.28-1.45.28-2.39v-1.92c0-.94-.09-1.74-.28-2.39-.18-.66-.44-1.19-.78-1.59zm-.92 6.17c0 .6-.04 1.11-.12 1.53-.08.42-.2.76-.36 1.02-.16.26-.36.45-.59.57-.23.12-.51.18-.82.18-.3 0-.58-.06-.82-.18s-.44-.31-.6-.57c-.16-.26-.29-.6-.38-1.02-.09-.42-.13-.93-.13-1.53v-2.5c0-.6.04-1.11.13-1.52.09-.41.21-.74.38-1 .16-.25.36-.43.6-.55.24-.11.51-.17.81-.17.31 0 .58.06.81.17.24.11.44.29.6.55.16.25.29.58.37.99.08.41.13.92.13 1.52v2.51z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/timer_10_select.svg b/html/matt-chat/uswds/img/material-icons/timer_10_select.svg
new file mode 100644
index 0000000..090d854
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/timer_10_select.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13 8v8h-3V8h3m0-3h-3C8.34 5 7 6.34 7 8v8c0 1.66 1.34 3 3 3h3c1.66 0 3-1.34 3-3V8c0-1.66-1.34-3-3-3zM1 8h2v11h3V5H1v3zm17.5 3c-.83 0-1.5.68-1.5 1.5v2c0 .82.67 1.5 1.5 1.5H21v1h-4v2h4.5c.83 0 1.5-.67 1.5-1.5v-2c0-.83-.67-1.5-1.5-1.5H19v-1h4v-2h-4.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/timer_3.svg b/html/matt-chat/uswds/img/material-icons/timer_3.svg
new file mode 100644
index 0000000..512a57b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/timer_3.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11.61 12.97c-.16-.24-.36-.46-.62-.65a3.38 3.38 0 0 0-.93-.48c.3-.14.57-.3.8-.5.23-.2.42-.41.57-.64.15-.23.27-.46.34-.71.08-.24.11-.49.11-.73 0-.55-.09-1.04-.28-1.46-.18-.42-.44-.77-.78-1.06-.33-.28-.73-.5-1.2-.64-.45-.13-.97-.2-1.53-.2-.55 0-1.06.08-1.52.24-.47.17-.87.4-1.2.69-.33.29-.6.63-.78 1.03-.2.39-.29.83-.29 1.29h1.98c0-.26.05-.49.14-.69.09-.2.22-.38.38-.52.17-.14.36-.25.58-.33.22-.08.46-.12.73-.12.61 0 1.06.16 1.36.47.3.31.44.75.44 1.32 0 .27-.04.52-.12.74-.08.22-.21.41-.38.57-.17.16-.38.28-.63.37-.25.09-.55.13-.89.13H6.72v1.57H7.9c.34 0 .64.04.91.11.27.08.5.19.69.35.19.16.34.36.44.61.1.24.16.54.16.87 0 .62-.18 1.09-.53 1.42-.35.33-.84.49-1.45.49-.29 0-.56-.04-.8-.13-.24-.08-.44-.2-.61-.36-.17-.16-.3-.34-.39-.56-.09-.22-.14-.46-.14-.72H4.19c0 .55.11 1.03.32 1.45.21.42.5.77.86 1.05s.77.49 1.24.63.96.21 1.48.21c.57 0 1.09-.08 1.58-.23.49-.15.91-.38 1.26-.68.36-.3.64-.66.84-1.1.2-.43.3-.93.3-1.48 0-.29-.04-.58-.11-.86-.08-.25-.19-.51-.35-.76zm9.26 1.4c-.14-.28-.35-.53-.63-.74-.28-.21-.61-.39-1.01-.53s-.85-.27-1.35-.38a6.64 6.64 0 0 1-.87-.23 2.61 2.61 0 0 1-.55-.25.717.717 0 0 1-.28-.3.935.935 0 0 1-.08-.39.946.946 0 0 1 .36-.75c.12-.1.27-.18.45-.24s.4-.09.64-.09c.25 0 .47.04.66.11.19.07.35.17.48.29.13.12.22.26.29.42.06.16.1.32.1.49h1.95a2.517 2.517 0 0 0-.93-1.97c-.3-.25-.66-.44-1.09-.59-.43-.15-.92-.22-1.46-.22-.51 0-.98.07-1.39.21-.41.14-.77.33-1.06.57-.29.24-.51.52-.67.84-.16.32-.23.65-.23 1.01s.08.68.23.96c.15.28.37.52.64.73.27.21.6.38.98.53.38.14.81.26 1.27.36.39.08.71.17.95.26s.43.19.57.29c.13.1.22.22.27.34.05.12.07.25.07.39 0 .32-.13.57-.4.77-.27.2-.66.29-1.17.29-.22 0-.43-.02-.64-.08-.21-.05-.4-.13-.56-.24a1.333 1.333 0 0 1-.59-1.11h-1.89c0 .36.08.71.24 1.05.16.34.39.65.7.93.31.27.69.49 1.15.66.46.17.98.25 1.58.25.53 0 1.01-.06 1.44-.19.43-.13.8-.31 1.11-.54.31-.23.54-.51.71-.83.17-.32.25-.67.25-1.06-.02-.4-.09-.74-.24-1.02z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/timer_3_select.svg b/html/matt-chat/uswds/img/material-icons/timer_3_select.svg
new file mode 100644
index 0000000..76776c5
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/timer_3_select.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 11v2h-4v1h2.5c.83 0 1.5.68 1.5 1.5v2c0 .83-.67 1.5-1.5 1.5H15v-2h4v-1h-2.5c-.82 0-1.5-.68-1.5-1.5v-2c0-.82.68-1.5 1.5-1.5H21zM4 5v3h6v2.5H4v3h6V16H4v3h6c1.66 0 3-1.34 3-3v-1.9a2.1 2.1 0 0 0-2.1-2.1A2.1 2.1 0 0 0 13 9.9V8c0-1.66-1.34-3-3-3H4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/timer_off.svg b/html/matt-chat/uswds/img/material-icons/timer_off.svg
new file mode 100644
index 0000000..b60256c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/timer_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M9 1h6v2H9zm4 7v2.17l6.98 6.98a8.963 8.963 0 0 0-.95-9.76l1.42-1.42c-.43-.51-.9-.99-1.41-1.41l-1.42 1.42a8.962 8.962 0 0 0-9.77-.96L10.83 8H13zM2.81 2.81 1.39 4.22l3.4 3.4a8.994 8.994 0 0 0 12.59 12.59l2.4 2.4 1.41-1.41L2.81 2.81z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/tips_and_updates.svg b/html/matt-chat/uswds/img/material-icons/tips_and_updates.svg
new file mode 100644
index 0000000..2b5864b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/tips_and_updates.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M7 20h4c0 1.1-.9 2-2 2s-2-.9-2-2zm-2-1h8v-2H5v2zm11.5-9.5c0 3.82-2.66 5.86-3.77 6.5H5.27c-1.11-.64-3.77-2.68-3.77-6.5C1.5 5.36 4.86 2 9 2s7.5 3.36 7.5 7.5zm4.87-2.13L20 8l1.37.63L22 10l.63-1.37L24 8l-1.37-.63L22 6l-.63 1.37zM19 6l.94-2.06L22 3l-2.06-.94L19 0l-.94 2.06L16 3l2.06.94L19 6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/tire_repair.svg b/html/matt-chat/uswds/img/material-icons/tire_repair.svg
new file mode 100644
index 0000000..0bd1ab8
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/tire_repair.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 7a1.003 1.003 0 0 0 1.71.71c.4-.4 1.04-2.46 1.04-2.46s-2.06.64-2.46 1.04c-.18.18-.29.43-.29.71z"/><path d="M19 2c-2.76 0-5 2.24-5 5 0 2.05 1.23 3.81 3 4.58V13h1v5c0 .55-.45 1-1 1s-1-.45-1-1v-2a3.009 3.009 0 0 0-4-2.83V5c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h6c1.1 0 2-.9 2-2v-3c0-.55.45-1 1-1s1 .45 1 1v2c0 1.65 1.35 3 3 3s3-1.35 3-3v-5h1v-1.42c1.77-.77 3-2.53 3-4.58 0-2.76-2.24-5-5-5zM6 19.5l-2-2v-2.83l2 2v2.83zm0-5-2-2V9.67l2 2v2.83zm0-5-2-2V4.67l2 2V9.5zm4 8-2 2v-2.83l2-2v2.83zm0-5-2 2v-2.83l2-2v2.83zm0-5-2 2V6.67l2-2V7.5zm9 2.5c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/title.svg b/html/matt-chat/uswds/img/material-icons/title.svg
new file mode 100644
index 0000000..c09ac43
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/title.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M5 4v3h5.5v12h3V7H19V4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/toc.svg b/html/matt-chat/uswds/img/material-icons/toc.svg
new file mode 100644
index 0000000..238110f
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/toc.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 9h14V7H3v2zm0 4h14v-2H3v2zm0 4h14v-2H3v2zm16 0h2v-2h-2v2zm0-10v2h2V7h-2zm0 6h2v-2h-2v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/today.svg b/html/matt-chat/uswds/img/material-icons/today.svg
new file mode 100644
index 0000000..43abd72
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/today.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3h-1V1h-2v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V8h14v11zM7 10h5v5H7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/toggle_off.svg b/html/matt-chat/uswds/img/material-icons/toggle_off.svg
new file mode 100644
index 0000000..35cb604
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/toggle_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h10c2.76 0 5-2.24 5-5s-2.24-5-5-5zM7 15c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/toggle_on.svg b/html/matt-chat/uswds/img/material-icons/toggle_on.svg
new file mode 100644
index 0000000..2ec91bb
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/toggle_on.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h10c2.76 0 5-2.24 5-5s-2.24-5-5-5zm0 8c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/token.svg b/html/matt-chat/uswds/img/material-icons/token.svg
new file mode 100644
index 0000000..c9cf5ea
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/token.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19.97 6.43 12 2 4.03 6.43 9.1 9.24C9.83 8.48 10.86 8 12 8s2.17.48 2.9 1.24l5.07-2.81zM10 12c0-1.1.9-2 2-2s2 .9 2 2-.9 2-2 2-2-.9-2-2zm1 9.44L3 17V8.14l5.13 2.85c-.09.32-.13.66-.13 1.01 0 1.86 1.27 3.43 3 3.87v5.57zm2 0v-5.57c1.73-.44 3-2.01 3-3.87 0-.35-.04-.69-.13-1.01L21 8.14V17l-8 4.44z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/toll.svg b/html/matt-chat/uswds/img/material-icons/toll.svg
new file mode 100644
index 0000000..c2fd4e8
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/toll.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15 4c-4.42 0-8 3.58-8 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6zM3 12a5.99 5.99 0 0 1 4-5.65V4.26C3.55 5.15 1 8.27 1 12s2.55 6.85 6 7.74v-2.09A5.99 5.99 0 0 1 3 12z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/tonality.svg b/html/matt-chat/uswds/img/material-icons/tonality.svg
new file mode 100644
index 0000000..5a34a05
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/tonality.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 17.93c-3.94-.49-7-3.85-7-7.93s3.05-7.44 7-7.93v15.86zm2-15.86c1.03.13 2 .45 2.87.93H13v-.93zM13 7h5.24c.25.31.48.65.68 1H13V7zm0 3h6.74c.08.33.15.66.19 1H13v-1zm0 9.93V19h2.87c-.87.48-1.84.8-2.87.93zM18.24 17H13v-1h5.92c-.2.35-.43.69-.68 1zm1.5-3H13v-1h6.93c-.04.34-.11.67-.19 1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/topic.svg b/html/matt-chat/uswds/img/material-icons/topic.svg
new file mode 100644
index 0000000..caf4e78
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/topic.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 6h-8l-2-2H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm-6 10H6v-2h8v2zm4-4H6v-2h12v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/tornado.svg b/html/matt-chat/uswds/img/material-icons/tornado.svg
new file mode 100644
index 0000000..467222c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/tornado.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20.11 8 23 3H1l2.89 5zM7.95 15 12 22l4.05-7zm11-5H5.05l1.74 3h10.42z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/touch_app.svg b/html/matt-chat/uswds/img/material-icons/touch_app.svg
new file mode 100644
index 0000000..c993997
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/touch_app.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M9 11.24V7.5a2.5 2.5 0 0 1 5 0v3.74c1.21-.81 2-2.18 2-3.74C16 5.01 13.99 3 11.5 3S7 5.01 7 7.5c0 1.56.79 2.93 2 3.74zm9.84 4.63-4.54-2.26c-.17-.07-.35-.11-.54-.11H13v-6c0-.83-.67-1.5-1.5-1.5S10 6.67 10 7.5v10.74c-3.6-.76-3.54-.75-3.67-.75-.31 0-.59.13-.79.33l-.79.8 4.94 4.94c.27.27.65.44 1.06.44h6.79c.75 0 1.33-.55 1.44-1.28l.75-5.27c.01-.07.02-.14.02-.2 0-.62-.38-1.16-.91-1.38z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/tour.svg b/html/matt-chat/uswds/img/material-icons/tour.svg
new file mode 100644
index 0000000..7ba5823
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/tour.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 4H7V2H5v20h2v-8h14l-2-5 2-5zm-6 5c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2 2 .9 2 2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/toys.svg b/html/matt-chat/uswds/img/material-icons/toys.svg
new file mode 100644
index 0000000..c2a2fc0
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/toys.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M22 14c0-1.95-1.4-3.57-3.25-3.92L17.4 6.05A2.978 2.978 0 0 0 14.56 4H9.44C8.15 4 7 4.82 6.6 6.05L5.81 8.4 4.41 7l.29-.29A.996.996 0 1 0 3.29 5.3l-2 2A.996.996 0 1 0 2.7 8.71l.3-.3 1.79 1.79C3.18 10.72 2 12.22 2 14c0 1.5.83 2.79 2.05 3.48A3 3 0 0 0 7 20c1.3 0 2.4-.84 2.82-2h4.37c.41 1.16 1.51 2 2.82 2a3 3 0 0 0 2.95-2.52C21.17 16.79 22 15.5 22 14zM7 18c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm4-8H7.41l-.02-.02 1.1-3.3A1 1 0 0 1 9.44 6H11v4zm2-4h1.56a1 1 0 0 1 .95.68l1.1 3.32H13V6zm4 12c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/track_changes.svg b/html/matt-chat/uswds/img/material-icons/track_changes.svg
new file mode 100644
index 0000000..35aef98
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/track_changes.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m19.07 4.93-1.41 1.41A8.014 8.014 0 0 1 20 12c0 4.42-3.58 8-8 8s-8-3.58-8-8c0-4.08 3.05-7.44 7-7.93v2.02C8.16 6.57 6 9.03 6 12c0 3.31 2.69 6 6 6s6-2.69 6-6c0-1.66-.67-3.16-1.76-4.24l-1.41 1.41C15.55 9.9 16 10.9 16 12c0 2.21-1.79 4-4 4s-4-1.79-4-4c0-1.86 1.28-3.41 3-3.86v2.14c-.6.35-1 .98-1 1.72 0 1.1.9 2 2 2s2-.9 2-2c0-.74-.4-1.38-1-1.72V2h-1C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10c0-2.76-1.12-5.26-2.93-7.07z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/traffic.svg b/html/matt-chat/uswds/img/material-icons/traffic.svg
new file mode 100644
index 0000000..1a21d7e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/traffic.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 10h-3V8.86c1.72-.45 3-2 3-3.86h-3V4c0-.55-.45-1-1-1H8c-.55 0-1 .45-1 1v1H4c0 1.86 1.28 3.41 3 3.86V10H4c0 1.86 1.28 3.41 3 3.86V15H4c0 1.86 1.28 3.41 3 3.86V20c0 .55.45 1 1 1h8c.55 0 1-.45 1-1v-1.14c1.72-.45 3-2 3-3.86h-3v-1.14c1.72-.45 3-2 3-3.86zm-8 9a2 2 0 1 1-.001-3.999A2 2 0 0 1 12 19zm0-5a2 2 0 1 1-.001-3.999A2 2 0 0 1 12 14zm0-5a2 2 0 0 1-2-2c0-1.11.89-2 2-2a2 2 0 1 1 0 4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/train.svg b/html/matt-chat/uswds/img/material-icons/train.svg
new file mode 100644
index 0000000..e18c9ae
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/train.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2c-4 0-8 .5-8 4v9.5C4 17.43 5.57 19 7.5 19L6 20.5v.5h2.23l2-2H14l2 2h2v-.5L16.5 19c1.93 0 3.5-1.57 3.5-3.5V6c0-3.5-3.58-4-8-4zM7.5 17c-.83 0-1.5-.67-1.5-1.5S6.67 14 7.5 14s1.5.67 1.5 1.5S8.33 17 7.5 17zm3.5-7H6V6h5v4zm2 0V6h5v4h-5zm3.5 7c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/tram.svg b/html/matt-chat/uswds/img/material-icons/tram.svg
new file mode 100644
index 0000000..69fe39c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/tram.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 16.94V8.5c0-2.79-2.61-3.4-6.01-3.49l.76-1.51H17V2H7v1.5h4.75l-.76 1.52C7.86 5.11 5 5.73 5 8.5v8.44c0 1.45 1.19 2.66 2.59 2.97L6 21.5v.5h2.23l2-2H14l2 2h2v-.5L16.5 20h-.08c1.69 0 2.58-1.37 2.58-3.06zm-7 1.56c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm5-4.5H7V9h10v5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/transcribe.svg b/html/matt-chat/uswds/img/material-icons/transcribe.svg
new file mode 100644
index 0000000..ca06add
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/transcribe.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m17.93 16 1.63-1.63c-2.77-3.02-2.77-7.56 0-10.74L17.93 2c-3.9 3.89-3.91 9.95 0 14zm4.99-5.05a3.317 3.317 0 0 1 0-3.89l-1.68-1.69c-2.02 2.02-2.02 5.07 0 7.27l1.68-1.69zM9 13c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm6.39 2.56C13.71 14.7 11.53 14 9 14s-4.71.7-6.39 1.56A2.97 2.97 0 0 0 1 18.22V21h16v-2.78c0-1.12-.61-2.15-1.61-2.66z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/transfer_within_a_station.svg b/html/matt-chat/uswds/img/material-icons/transfer_within_a_station.svg
new file mode 100644
index 0000000..c196312
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/transfer_within_a_station.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16.49 15.5v-1.75L14 16.25l2.49 2.5V17H22v-1.5zm3.02 4.25H14v1.5h5.51V23L22 20.5 19.51 18zM9.5 5.5c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zM5.75 8.9 3 23h2.1l1.75-8L9 17v6h2v-7.55L8.95 13.4l.6-3C10.85 12 12.8 13 15 13v-2c-1.85 0-3.45-1-4.35-2.45l-.95-1.6C9.35 6.35 8.7 6 8 6c-.25 0-.5.05-.75.15L2 8.3V13h2V9.65l1.75-.75"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/transform.svg b/html/matt-chat/uswds/img/material-icons/transform.svg
new file mode 100644
index 0000000..b11ce4a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/transform.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M22 18v-2H8V4h2L7 1 4 4h2v2H2v2h4v8c0 1.1.9 2 2 2h8v2h-2l3 3 3-3h-2v-2h4zM10 8h6v6h2V8c0-1.1-.9-2-2-2h-6v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/transgender.svg b/html/matt-chat/uswds/img/material-icons/transgender.svg
new file mode 100644
index 0000000..d077ea6
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/transgender.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 8c1.93 0 3.5 1.57 3.5 3.5S13.93 15 12 15s-3.5-1.57-3.5-3.5S10.07 8 12 8zm4.53.38 3.97-3.96V7h2V1h-6v2h2.58l-3.97 3.97C14.23 6.36 13.16 6 12 6s-2.23.36-3.11.97l-.65-.65 1.41-1.41-1.41-1.42L6.82 4.9 4.92 3H7.5V1h-6v6h2V4.42l1.91 1.9-1.42 1.42L5.4 9.15l1.41-1.41.65.65c-.6.88-.96 1.95-.96 3.11a5.5 5.5 0 0 0 4.5 5.41V19H9v2h2v2h2v-2h2v-2h-2v-2.09a5.5 5.5 0 0 0 3.53-8.53z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/transit_enterexit.svg b/html/matt-chat/uswds/img/material-icons/transit_enterexit.svg
new file mode 100644
index 0000000..1ec9e61
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/transit_enterexit.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16 18H6V8h3v4.77L15.98 6 18 8.03 11.15 15H16v3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/translate.svg b/html/matt-chat/uswds/img/material-icons/translate.svg
new file mode 100644
index 0000000..9b80604
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/translate.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m12.87 15.07-2.54-2.51.03-.03A17.52 17.52 0 0 0 14.07 6H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7 1.62-4.33L19.12 17h-3.24z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/travel_explore.svg b/html/matt-chat/uswds/img/material-icons/travel_explore.svg
new file mode 100644
index 0000000..a136664
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/travel_explore.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19.3 16.9c.4-.7.7-1.5.7-2.4 0-2.5-2-4.5-4.5-4.5S11 12 11 14.5s2 4.5 4.5 4.5c.9 0 1.7-.3 2.4-.7l3.2 3.2 1.4-1.4-3.2-3.2zm-3.8.1c-1.4 0-2.5-1.1-2.5-2.5s1.1-2.5 2.5-2.5 2.5 1.1 2.5 2.5-1.1 2.5-2.5 2.5zM12 20v2C6.48 22 2 17.52 2 12S6.48 2 12 2c4.84 0 8.87 3.44 9.8 8h-2.07A8 8 0 0 0 15 4.59V5c0 1.1-.9 2-2 2h-2v2c0 .55-.45 1-1 1H8v2h2v3H9l-4.79-4.79C4.08 10.79 4 11.38 4 12c0 4.41 3.59 8 8 8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/trending_down.svg b/html/matt-chat/uswds/img/material-icons/trending_down.svg
new file mode 100644
index 0000000..8ba84ae
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/trending_down.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m16 18 2.29-2.29-4.88-4.88-4 4L2 7.41 3.41 6l6 6 4-4 6.3 6.29L22 12v6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/trending_flat.svg b/html/matt-chat/uswds/img/material-icons/trending_flat.svg
new file mode 100644
index 0000000..a025d47
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/trending_flat.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m22 12-4-4v3H3v2h15v3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/trending_up.svg b/html/matt-chat/uswds/img/material-icons/trending_up.svg
new file mode 100644
index 0000000..d49f43c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/trending_up.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m16 6 2.29 2.29-4.88 4.88-4-4L2 16.59 3.41 18l6-6 4 4 6.3-6.29L22 12V6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/trip_origin.svg b/html/matt-chat/uswds/img/material-icons/trip_origin.svg
new file mode 100644
index 0000000..89f7ddf
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/trip_origin.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M2 12C2 6.48 6.48 2 12 2s10 4.48 10 10-4.48 10-10 10S2 17.52 2 12zm10 6c3.31 0 6-2.69 6-6s-2.69-6-6-6-6 2.69-6 6 2.69 6 6 6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/troubleshoot.svg b/html/matt-chat/uswds/img/material-icons/troubleshoot.svg
new file mode 100644
index 0000000..d26b315
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/troubleshoot.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m22 20.59-4.69-4.69A7.902 7.902 0 0 0 19 11c0-4.42-3.58-8-8-8-4.08 0-7.44 3.05-7.93 7h2.02C5.57 7.17 8.03 5 11 5c3.31 0 6 2.69 6 6s-2.69 6-6 6c-2.42 0-4.5-1.44-5.45-3.5H3.4C4.45 16.69 7.46 19 11 19c1.85 0 3.55-.63 4.9-1.69L20.59 22 22 20.59z"/><path d="M8.43 9.69 9.65 15h1.64l1.26-3.78.95 2.28h2V12h-1l-1.25-3h-1.54l-1.12 3.37L9.35 7H7.7l-1.25 4H1v1.5h6.55z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/try.svg b/html/matt-chat/uswds/img/material-icons/try.svg
new file mode 100644
index 0000000..1d5892c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/try.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 2H4c-1.1 0-2 .9-2 2v18l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-6.43 9.57L12 15l-1.57-3.43L7 10l3.43-1.57L12 5l1.57 3.43L17 10l-3.43 1.57z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/tsunami.svg b/html/matt-chat/uswds/img/material-icons/tsunami.svg
new file mode 100644
index 0000000..de3538a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/tsunami.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18.67 17.63c-3.8 2.8-6.12.4-6.67 0-.66.49-2.92 2.76-6.67 0C3.43 19.03 2.65 19 2 19v2c1.16 0 2.3-.32 3.33-.93a6.535 6.535 0 0 0 6.67 0 6.535 6.535 0 0 0 6.67 0c1.03.61 2.17.93 3.33.93v-2c-.66 0-1.5-.02-3.33-1.37zm.66-5.63H22v-2h-2.67C17.5 10 16 8.5 16 6.67c0-1.02.38-1.74 1.09-3.34-1.37-.21-2-.33-3.09-.33C7.36 3 2.15 8.03 2.01 14.5l-.01 2c1.16 0 2.3-.32 3.33-.93a6.535 6.535 0 0 0 6.67 0 6.535 6.535 0 0 0 6.67 0c1.03.61 2.17.93 3.33.93v-2c-.66 0-1.5-.02-3.33-1.37-3.8 2.8-6.12.4-6.67 0-.9.67-.54.41-.91.63-.7-.94-1.09-2.06-1.09-3.26 0-2.58 1.77-4.74 4.21-5.33-.13.51-.21 1.02-.21 1.5C14 9.61 16.39 12 19.33 12z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/tty.svg b/html/matt-chat/uswds/img/material-icons/tty.svg
new file mode 100644
index 0000000..2fd54b4
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/tty.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M14 4h2v2h-2V4zm-1 3h2v2h-2V7zm-2-3h2v2h-2V4zm7 5h-2V7h2v2zm1-3h-2V4h2v2zm2 3h-2V7h2v2zm1-3h-2V4h2v2zm-7.38 8.38L12.1 16.9c-2.5-1.43-4.57-3.5-6-6l2.52-2.52c.24-.24.34-.58.28-.9L8.16 3.8c-.09-.46-.5-.8-.98-.8H3.03c-.56 0-1.03.47-1 1.03.17 2.89 1.02 5.6 2.4 7.97 1.58 2.73 3.85 4.99 6.57 6.57 2.37 1.37 5.08 2.23 7.97 2.4.56.03 1.03-.44 1.03-1v-4.15c0-.48-.34-.89-.8-.98l-3.67-.73a.99.99 0 0 0-.91.27zM14 10h2v2h-2v-2zm-3 0h2v2h-2v-2zm8 2h-2v-2h2v2zm3 0h-2v-2h2v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/tune.svg b/html/matt-chat/uswds/img/material-icons/tune.svg
new file mode 100644
index 0000000..24dbcd6
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/tune.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 17v2h6v-2H3zM3 5v2h10V5H3zm10 16v-2h8v-2h-8v-2h-2v6h2zM7 9v2H3v2h4v2h2V9H7zm14 4v-2H11v2h10zm-6-4h2V7h4V5h-4V3h-2v6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/tungsten.svg b/html/matt-chat/uswds/img/material-icons/tungsten.svg
new file mode 100644
index 0000000..026f826
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/tungsten.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11 19h2v3h-2zm-9-8h3v2H2zm17 0h3v2h-3zm-3.106 6.801 1.407-1.407 2.122 2.122-1.408 1.407zm-11.31.708 2.121-2.122 1.408 1.407-2.122 2.122zM15 8.02V3H9v5.02c-1.21.92-2 2.35-2 3.98 0 2.76 2.24 5 5 5s5-2.24 5-5c0-1.63-.79-3.06-2-3.98zM11 5h2v2.1c-.32-.06-.66-.1-1-.1s-.68.04-1 .1V5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/turn_left.svg b/html/matt-chat/uswds/img/material-icons/turn_left.svg
new file mode 100644
index 0000000..672be65
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/turn_left.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m6.83 11 1.59 1.59L7 14l-4-4 4-4 1.41 1.41L6.83 9H15c1.1 0 2 .9 2 2v9h-2v-9H6.83z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/turn_right.svg b/html/matt-chat/uswds/img/material-icons/turn_right.svg
new file mode 100644
index 0000000..92f0d1d
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/turn_right.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m17.17 11-1.59 1.59L17 14l4-4-4-4-1.41 1.41L17.17 9H9c-1.1 0-2 .9-2 2v9h2v-9h8.17z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/turn_sharp_left.svg b/html/matt-chat/uswds/img/material-icons/turn_sharp_left.svg
new file mode 100644
index 0000000..cde523b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/turn_sharp_left.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M6 6.83 4.41 8.41 3 7l4-4 4 4-1.41 1.41L8 6.83V13h8c1.1 0 2 .9 2 2v6h-2v-6H8c-1.1 0-2-.9-2-2V6.83z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/turn_sharp_right.svg b/html/matt-chat/uswds/img/material-icons/turn_sharp_right.svg
new file mode 100644
index 0000000..5e17941
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/turn_sharp_right.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m18 6.83 1.59 1.59L21 7l-4-4-4 4 1.41 1.41L16 6.83V13H8c-1.1 0-2 .9-2 2v6h2v-6h8c1.1 0 2-.9 2-2V6.83z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/turn_slight_left.svg b/html/matt-chat/uswds/img/material-icons/turn_slight_left.svg
new file mode 100644
index 0000000..c8feebf
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/turn_slight_left.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11.66 6V4H6v5.66h2V7.41l5 5V20h2v-7.58c0-.53-.21-1.04-.59-1.41l-5-5h2.25z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/turn_slight_right.svg b/html/matt-chat/uswds/img/material-icons/turn_slight_right.svg
new file mode 100644
index 0000000..2954f1a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/turn_slight_right.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12.34 6V4H18v5.66h-2V7.41l-5 5V20H9v-7.58c0-.53.21-1.04.59-1.41l5-5h-2.25z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/turned_in.svg b/html/matt-chat/uswds/img/material-icons/turned_in.svg
new file mode 100644
index 0000000..1d507a6
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/turned_in.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 3H7c-1.1 0-1.99.9-1.99 2L5 21l7-3 7 3V5c0-1.1-.9-2-2-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/turned_in_not.svg b/html/matt-chat/uswds/img/material-icons/turned_in_not.svg
new file mode 100644
index 0000000..edef694
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/turned_in_not.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 3H7c-1.1 0-1.99.9-1.99 2L5 21l7-3 7 3V5c0-1.1-.9-2-2-2zm0 15-5-2.18L7 18V5h10v13z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/tv.svg b/html/matt-chat/uswds/img/material-icons/tv.svg
new file mode 100644
index 0000000..6954135
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/tv.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 3H3c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h5v2h8v-2h5c1.1 0 1.99-.9 1.99-2L23 5c0-1.1-.9-2-2-2zm0 14H3V5h18v12z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/tv_off.svg b/html/matt-chat/uswds/img/material-icons/tv_off.svg
new file mode 100644
index 0000000..3df53c2
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/tv_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m1 3.54 1.53 1.53C1.65 5.28 1 6.06 1 7v12c0 1.1.9 2 2 2h15.46l2 2 1.26-1.27L2.27 2.27 1 3.54zM3 19V7h1.46l12 12H3zM21 5h-7.58l3.29-3.3L16 1l-4 4-4-4-.7.7L10.58 5H7.52l2 2H21v11.48l1.65 1.65c.22-.32.35-.71.35-1.13V7c0-1.11-.89-2-2-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/two_wheeler.svg b/html/matt-chat/uswds/img/material-icons/two_wheeler.svg
new file mode 100644
index 0000000..658a375
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/two_wheeler.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 11c-.18 0-.36.03-.53.05L17.41 9H20V6l-3.72 1.86L13.41 5H9v2h3.59l2 2H11l-4 2-2-2H0v2h4c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4l2 2h3l3.49-6.1 1.01 1.01c-.91.73-1.5 1.84-1.5 3.09 0 2.21 1.79 4 4 4s4-1.79 4-4-1.79-4-4-4zM4 17c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm16 0c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/type_specimen.svg b/html/matt-chat/uswds/img/material-icons/type_specimen.svg
new file mode 100644
index 0000000..7567433
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/type_specimen.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6z"/><path d="M20 2H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-3.37 12.5-.8-2.3H12.2l-.82 2.3H9.81l3.38-9h1.61l3.38 9h-1.55z"/><path d="m13.96 7.17-1.31 3.72h2.69l-1.3-3.72z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/u_turn_left.svg b/html/matt-chat/uswds/img/material-icons/u_turn_left.svg
new file mode 100644
index 0000000..dbd9b92
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/u_turn_left.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 9v12h-2V9c0-2.21-1.79-4-4-4S8 6.79 8 9v4.17l1.59-1.59L11 13l-4 4-4-4 1.41-1.41L6 13.17V9c0-3.31 2.69-6 6-6s6 2.69 6 6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/u_turn_right.svg b/html/matt-chat/uswds/img/material-icons/u_turn_right.svg
new file mode 100644
index 0000000..0ccee86
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/u_turn_right.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M6 9v12h2V9c0-2.21 1.79-4 4-4s4 1.79 4 4v4.17l-1.59-1.59L13 13l4 4 4-4-1.41-1.41L18 13.17V9c0-3.31-2.69-6-6-6S6 5.69 6 9z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/umbrella.svg b/html/matt-chat/uswds/img/material-icons/umbrella.svg
new file mode 100644
index 0000000..f1a8fb4
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/umbrella.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M14.5 6.92 13 5.77V3.4c0-.26.22-.48.5-.48s.5.21.5.48V4h2v-.6C16 2.07 14.88 1 13.5 1S11 2.07 11 3.4v2.37L9.5 6.92 6 6.07l5.05 15.25c.15.45.55.68.95.68s.8-.23.95-.69L18 6.07l-3.5.85zM13.28 8.5l.76.58.92-.23L13 14.8V8.29l.28.21zm-3.32.59.76-.58.28-.22v6.51L9.03 8.86l.93.23z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/unarchive.svg b/html/matt-chat/uswds/img/material-icons/unarchive.svg
new file mode 100644
index 0000000..c2aeeee
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/unarchive.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m20.55 5.22-1.39-1.68A1.51 1.51 0 0 0 18 3H6c-.47 0-.88.21-1.15.55L3.46 5.22C3.17 5.57 3 6.01 3 6.5V19a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2V6.5c0-.49-.17-.93-.45-1.28zM12 9.5l5.5 5.5H14v2h-4v-2H6.5L12 9.5zM5.12 5l.82-1h12l.93 1H5.12z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/undo.svg b/html/matt-chat/uswds/img/material-icons/undo.svg
new file mode 100644
index 0000000..c37cf40
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/undo.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12.5 8c-2.65 0-5.05.99-6.9 2.6L2 7v9h9l-3.62-3.62c1.39-1.16 3.16-1.88 5.12-1.88 3.54 0 6.55 2.31 7.6 5.5l2.37-.78C21.08 11.03 17.15 8 12.5 8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/unfold_less.svg b/html/matt-chat/uswds/img/material-icons/unfold_less.svg
new file mode 100644
index 0000000..5515e46
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/unfold_less.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M7.41 18.59 8.83 20 12 16.83 15.17 20l1.41-1.41L12 14l-4.59 4.59zm9.18-13.18L15.17 4 12 7.17 8.83 4 7.41 5.41 12 10l4.59-4.59z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/unfold_less_double.svg b/html/matt-chat/uswds/img/material-icons/unfold_less_double.svg
new file mode 100644
index 0000000..dc0b2e0
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/unfold_less_double.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16.58 1.41 15.16 0l-3.17 3.17L8.82 0 7.41 1.41 11.99 6z"/><path d="M16.58 6.41 15.16 5l-3.17 3.17L8.82 5 7.41 6.41 11.99 11zM7.42 17.59 8.84 19l3.17-3.17L15.18 19l1.41-1.41L12.01 13z"/><path d="M7.42 22.59 8.84 24l3.17-3.17L15.18 24l1.41-1.41L12.01 18z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/unfold_more.svg b/html/matt-chat/uswds/img/material-icons/unfold_more.svg
new file mode 100644
index 0000000..e6b3d61
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/unfold_more.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 5.83 15.17 9l1.41-1.41L12 3 7.41 7.59 8.83 9 12 5.83zm0 12.34L8.83 15l-1.41 1.41L12 21l4.59-4.59L15.17 15 12 18.17z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/unfold_more_double.svg b/html/matt-chat/uswds/img/material-icons/unfold_more_double.svg
new file mode 100644
index 0000000..2d0f7d9
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/unfold_more_double.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 7.83 15.17 11l1.41-1.41L12 5 7.41 9.59 8.83 11 12 7.83zm0-5L15.17 6l1.41-1.41L12 0 7.41 4.59 8.83 6 12 2.83zm0 18.34L8.83 18l-1.41 1.41L12 24l4.59-4.59L15.17 18 12 21.17zm0-5L8.83 13l-1.41 1.41L12 19l4.59-4.59L15.17 13 12 16.17z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/unpublished.svg b/html/matt-chat/uswds/img/material-icons/unpublished.svg
new file mode 100644
index 0000000..c4b9cfd
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/unpublished.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21.19 21.19 2.81 2.81 1.39 4.22l2.27 2.27A9.91 9.91 0 0 0 2 12c0 5.52 4.48 10 10 10 2.04 0 3.93-.61 5.51-1.66l2.27 2.27 1.41-1.42zm-10.6-4.59-4.24-4.24 1.41-1.41 2.83 2.83.18-.18 1.41 1.41-1.59 1.59zm3-5.84-7.1-7.1A9.91 9.91 0 0 1 12 2c5.52 0 10 4.48 10 10 0 2.04-.61 3.93-1.66 5.51L15 12.17l2.65-2.65-1.41-1.41-2.65 2.65z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/unsubscribe.svg b/html/matt-chat/uswds/img/material-icons/unsubscribe.svg
new file mode 100644
index 0000000..ca52730
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/unsubscribe.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18.5 13c-1.93 0-3.5 1.57-3.5 3.5s1.57 3.5 3.5 3.5 3.5-1.57 3.5-3.5-1.57-3.5-3.5-3.5zm2 4h-4v-1h4v1zm-6.95 0c-.02-.17-.05-.33-.05-.5 0-2.76 2.24-5 5-5 .92 0 1.76.26 2.5.69V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h8.55zM12 10.5 5 7V5l7 3.5L19 5v2l-7 3.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/upcoming.svg b/html/matt-chat/uswds/img/material-icons/upcoming.svg
new file mode 100644
index 0000000..cd61e58
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/upcoming.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m21.16 7.26-1.41-1.41-3.56 3.55 1.41 1.41s3.45-3.52 3.56-3.55zM11 3h2v5h-2zm-4.6 7.81L7.81 9.4 4.26 5.84 2.84 7.26c.11.03 3.56 3.55 3.56 3.55zM20 12h-5c0 1.66-1.34 3-3 3s-3-1.34-3-3H4c-1.1 0-2 .9-2 2v5c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2v-5c0-1.1-.9-2-2-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/update.svg b/html/matt-chat/uswds/img/material-icons/update.svg
new file mode 100644
index 0000000..2e02f70
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/update.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 10.12h-6.78l2.74-2.82c-2.73-2.7-7.15-2.8-9.88-.1-2.73 2.71-2.73 7.08 0 9.79s7.15 2.71 9.88 0C18.32 15.65 19 14.08 19 12.1h2c0 1.98-.88 4.55-2.64 6.29-3.51 3.48-9.21 3.48-12.72 0-3.5-3.47-3.53-9.11-.02-12.58s9.14-3.47 12.65 0L21 3v7.12zM12.5 8v4.25l3.5 2.08-.72 1.21L11 13V8h1.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/update_disabled.svg b/html/matt-chat/uswds/img/material-icons/update_disabled.svg
new file mode 100644
index 0000000..93bd397
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/update_disabled.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M8.67 5.84 7.22 4.39A8.86 8.86 0 0 1 12 3c2.74 0 5.19 1.23 6.84 3.16L21 4v6h-6l2.41-2.41C16.12 6.02 14.18 5 12 5c-1.2 0-2.34.31-3.33.84zM13 7h-2v1.17l2 2V7zm6.78 15.61-3-3A8.973 8.973 0 0 1 12 21a9 9 0 0 1-9-9c0-1.76.51-3.4 1.39-4.78l-3-3L2.8 2.81l18.38 18.38-1.4 1.42zm-4.46-4.46L5.84 8.67A7.06 7.06 0 0 0 5 12c0 3.86 3.14 7 7 7 1.2 0 2.34-.31 3.32-.85zM20.94 13h-2.02c-.12.83-.39 1.61-.77 2.32l1.47 1.47c.7-1.12 1.17-2.41 1.32-3.79z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/upgrade.svg b/html/matt-chat/uswds/img/material-icons/upgrade.svg
new file mode 100644
index 0000000..630a0d9
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/upgrade.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16 18v2H8v-2h8zM11 7.99V16h2V7.99h3L12 4 8 7.99h3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/upload.svg b/html/matt-chat/uswds/img/material-icons/upload.svg
new file mode 100644
index 0000000..76168ac
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/upload.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M5 20h14v-2H5v2zm0-10h4v6h6v-6h4l-7-7-7 7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/upload_file.svg b/html/matt-chat/uswds/img/material-icons/upload_file.svg
new file mode 100644
index 0000000..cd4b6e6
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/upload_file.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm4 18H6V4h7v5h5v11zM8 15.01l1.41 1.41L11 14.84V19h2v-4.16l1.59 1.59L16 15.01 12.01 11z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/usb.svg b/html/matt-chat/uswds/img/material-icons/usb.svg
new file mode 100644
index 0000000..c5dc6b3
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/usb.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15 7v4h1v2h-3V5h2l-3-4-3 4h2v8H8v-2.07c.7-.37 1.2-1.08 1.2-1.93 0-1.21-.99-2.2-2.2-2.2-1.21 0-2.2.99-2.2 2.2 0 .85.5 1.56 1.2 1.93V13c0 1.11.89 2 2 2h3v3.05c-.71.37-1.2 1.1-1.2 1.95a2.2 2.2 0 0 0 4.4 0c0-.85-.49-1.58-1.2-1.95V15h3c1.11 0 2-.89 2-2v-2h1V7h-4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/usb_off.svg b/html/matt-chat/uswds/img/material-icons/usb_off.svg
new file mode 100644
index 0000000..e6ba7ab
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/usb_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15 8h4v4h-1v2c0 .34-.08.66-.23.94L16 13.17V12h-1V8zm-4 .17 2 2V6h2l-3-4-3 4h2v2.17zM13 16v2.28c.6.34 1 .98 1 1.72 0 1.1-.9 2-2 2s-2-.9-2-2c0-.74.4-1.37 1-1.72V16H8c-1.11 0-2-.89-2-2v-2.28c-.6-.34-1-.98-1-1.72 0-.59.26-1.13.68-1.49L1.39 4.22 2.8 2.81l18.38 18.38-1.41 1.41-6.6-6.6H13zm-2-2v-.17l-2.51-2.51c-.14.16-.31.29-.49.4V14h3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/vaccines.svg b/html/matt-chat/uswds/img/material-icons/vaccines.svg
new file mode 100644
index 0000000..804f0c1
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/vaccines.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11 5.5H8V4h.5c.55 0 1-.45 1-1s-.45-1-1-1h-3c-.55 0-1 .45-1 1s.45 1 1 1H6v1.5H3c-.55 0-1 .45-1 1s.45 1 1 1V15c0 1.1.9 2 2 2h1v4l2 1.5V17h1c1.1 0 2-.9 2-2V7.5c.55 0 1-.45 1-1s-.45-1-1-1zM9 9H7.25c-.41 0-.75.34-.75.75s.34.75.75.75H9V12H7.25c-.41 0-.75.34-.75.75s.34.75.75.75H9V15H5V7.5h4V9zm10.5 1.5V10c.55 0 1-.45 1-1s-.45-1-1-1h-5c-.55 0-1 .45-1 1s.45 1 1 1v.5c0 .5-1.5 1.16-1.5 3V20c0 1.1.9 2 2 2h4c1.1 0 2-.9 2-2v-6.5c0-1.84-1.5-2.5-1.5-3zm-3 0V10h1v.5c0 1.6 1.5 2 1.5 3v.5h-4v-.5c0-1 1.5-1.4 1.5-3zM15 20v-1.5h4V20h-4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/vape_free.svg b/html/matt-chat/uswds/img/material-icons/vape_free.svg
new file mode 100644
index 0000000..79592ad
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/vape_free.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M2 16.5h1c1.33 0 2.71-.18 4-.5v3c-1.29-.32-2.67-.5-4-.5H2v-2zM16.17 19H8v-3h5.17L1.39 4.22 2.8 2.81l18.38 18.38-1.41 1.41-3.6-3.6zm2.66-3H22v3h-.17l-3-3zM11 17.5c0-.28-.22-.5-.5-.5s-.5.22-.5.5.22.5.5.5.5-.22.5-.5zm11-4.74V15h-1.5v-2.23c0-2.24-1.76-4.07-4-4.07V7.2c1.02 0 1.85-.83 1.85-1.85S17.52 3.5 16.5 3.5V2c1.85 0 3.35 1.5 3.35 3.35 0 .93-.38 1.77-1 2.38 1.87.89 3.15 2.81 3.15 5.03zM11.15 8.32V8.3c0-1.85 1.5-3.35 3.35-3.35v1.5c-1.02 0-1.85.73-1.85 1.75s.83 2 1.85 2h1.53c1.87 0 3.47 1.35 3.47 3.16V15H18v-1.3c0-1.31-.92-2.05-1.97-2.05h-1.55l-3.33-3.33z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/vaping_rooms.svg b/html/matt-chat/uswds/img/material-icons/vaping_rooms.svg
new file mode 100644
index 0000000..28cc496
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/vaping_rooms.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M2 16.5h1c1.33 0 2.71-.18 4-.5v3c-1.29-.32-2.67-.5-4-.5H2v-2zm20-.5v3H8v-3h14zm-11 1.5c0-.28-.22-.5-.5-.5s-.5.22-.5.5.22.5.5.5.5-.22.5-.5zm11-4.74V15h-1.5v-2.23c0-2.24-1.76-4.07-4-4.07V7.2c1.02 0 1.85-.83 1.85-1.85S17.52 3.5 16.5 3.5V2c1.85 0 3.35 1.5 3.35 3.35 0 .93-.38 1.77-1 2.38 1.87.89 3.15 2.81 3.15 5.03zm-2.5.6V15H18v-1.3c0-1.31-.92-2.05-1.97-2.05H14.5a3.35 3.35 0 0 1 0-6.7v1.5c-1.02 0-1.85.73-1.85 1.75s.83 2 1.85 2h1.53c1.87 0 3.47 1.35 3.47 3.16z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/verified.svg b/html/matt-chat/uswds/img/material-icons/verified.svg
new file mode 100644
index 0000000..d26a7b2
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/verified.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m23 12-2.44-2.79.34-3.69-3.61-.82-1.89-3.2L12 2.96 8.6 1.5 6.71 4.69 3.1 5.5l.34 3.7L1 12l2.44 2.79-.34 3.7 3.61.82L8.6 22.5l3.4-1.47 3.4 1.46 1.89-3.19 3.61-.82-.34-3.69L23 12zm-12.91 4.72-3.8-3.81 1.48-1.48 2.32 2.33 5.85-5.87 1.48 1.48-7.33 7.35z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/verified_user.svg b/html/matt-chat/uswds/img/material-icons/verified_user.svg
new file mode 100644
index 0000000..451df89
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/verified_user.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 1 3 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V5l-9-4zm-2 16-4-4 1.41-1.41L10 14.17l6.59-6.59L18 9l-8 8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/vertical_align_bottom.svg b/html/matt-chat/uswds/img/material-icons/vertical_align_bottom.svg
new file mode 100644
index 0000000..070f193
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/vertical_align_bottom.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16 13h-3V3h-2v10H8l4 4 4-4zM4 19v2h16v-2H4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/vertical_align_center.svg b/html/matt-chat/uswds/img/material-icons/vertical_align_center.svg
new file mode 100644
index 0000000..b0272c7
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/vertical_align_center.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M8 19h3v4h2v-4h3l-4-4-4 4zm8-14h-3V1h-2v4H8l4 4 4-4zM4 11v2h16v-2H4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/vertical_align_top.svg b/html/matt-chat/uswds/img/material-icons/vertical_align_top.svg
new file mode 100644
index 0000000..7a1cadd
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/vertical_align_top.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M8 11h3v10h2V11h3l-4-4-4 4zM4 3v2h16V3H4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/vertical_distribute.svg b/html/matt-chat/uswds/img/material-icons/vertical_distribute.svg
new file mode 100644
index 0000000..a64633e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/vertical_distribute.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M22 2v2H2V2h20zM7 10.5v3h10v-3H7zM2 20v2h20v-2H2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/vertical_shades.svg b/html/matt-chat/uswds/img/material-icons/vertical_shades.svg
new file mode 100644
index 0000000..5034c8e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/vertical_shades.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 19V3H4v16H2v2h20v-2h-2zm-10 0V5h4v14h-4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/vertical_shades_closed.svg b/html/matt-chat/uswds/img/material-icons/vertical_shades_closed.svg
new file mode 100644
index 0000000..4bfea73
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/vertical_shades_closed.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 19V3H4v16H2v2h20v-2h-2zM13 5h1.5v14H13V5zm-2 14H9.5V5H11v14zM6 5h1.5v14H6V5zm10.5 14V5H18v14h-1.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/vertical_split.svg b/html/matt-chat/uswds/img/material-icons/vertical_split.svg
new file mode 100644
index 0000000..2e63c3c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/vertical_split.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 15h8v-2H3v2zm0 4h8v-2H3v2zm0-8h8V9H3v2zm0-6v2h8V5H3zm10 0h8v14h-8V5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/vibration.svg b/html/matt-chat/uswds/img/material-icons/vibration.svg
new file mode 100644
index 0000000..789d044
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/vibration.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M0 15h2V9H0v6zm3 2h2V7H3v10zm19-8v6h2V9h-2zm-3 8h2V7h-2v10zM16.5 3h-9C6.67 3 6 3.67 6 4.5v15c0 .83.67 1.5 1.5 1.5h9c.83 0 1.5-.67 1.5-1.5v-15c0-.83-.67-1.5-1.5-1.5zM16 19H8V5h8v14z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/video_call.svg b/html/matt-chat/uswds/img/material-icons/video_call.svg
new file mode 100644
index 0000000..e1a21e1
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/video_call.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 10.5V7c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1v-3.5l4 4v-11l-4 4zM14 13h-3v3H9v-3H6v-2h3V8h2v3h3v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/video_camera_back.svg b/html/matt-chat/uswds/img/material-icons/video_camera_back.svg
new file mode 100644
index 0000000..d421145
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/video_camera_back.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 10.48V6c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2v-4.48l4 3.98v-11l-4 3.98zM5 16l2.38-3.17L9 15l2.62-3.5L15 16H5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/video_camera_front.svg b/html/matt-chat/uswds/img/material-icons/video_camera_front.svg
new file mode 100644
index 0000000..634797a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/video_camera_front.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 10.48V6c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2v-4.48l4 3.98v-11l-4 3.98zM10 8c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2zm4 8H6v-.57c0-.81.48-1.53 1.22-1.85a6.95 6.95 0 0 1 5.56 0A2.01 2.01 0 0 1 14 15.43V16z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/video_chat.svg b/html/matt-chat/uswds/img/material-icons/video_chat.svg
new file mode 100644
index 0000000..f72c775
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/video_chat.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-3 11-2-1.99V13c0 .55-.45 1-1 1H8c-.55 0-1-.45-1-1V7c0-.55.45-1 1-1h6c.55 0 1 .45 1 1v1.99L17 7v6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/video_file.svg b/html/matt-chat/uswds/img/material-icons/video_file.svg
new file mode 100644
index 0000000..47b6599
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/video_file.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M14 2H6.01a2 2 0 0 0-2 2L4 20c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V8l-6-6zm-1 7V3.5L18.5 9H13zm1 5 2-1.06v4.12L14 16v1c0 .55-.45 1-1 1H9c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1h4c.55 0 1 .45 1 1v1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/video_label.svg b/html/matt-chat/uswds/img/material-icons/video_label.svg
new file mode 100644
index 0000000..cb90129
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/video_label.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 3H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 13H3V5h18v11z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/video_library.svg b/html/matt-chat/uswds/img/material-icons/video_library.svg
new file mode 100644
index 0000000..f69f3cb
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/video_library.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6zm16-4H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-8 12.5v-9l6 4.5-6 4.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/video_settings.svg b/html/matt-chat/uswds/img/material-icons/video_settings.svg
new file mode 100644
index 0000000..d9acdd9
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/video_settings.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 6h18v5h2V6c0-1.1-.9-2-2-2H3c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h9v-2H3V6z"/><path d="M15 12 9 8v8zm7.71 6.43c.03-.29.04-.58.01-.86l1.07-.85c.1-.08.12-.21.06-.32l-1.03-1.79c-.06-.11-.19-.15-.31-.11l-1.28.5a3.44 3.44 0 0 0-.75-.42l-.2-1.36a.249.249 0 0 0-.25-.22h-2.07c-.12 0-.23.09-.25.21l-.2 1.36c-.26.11-.51.26-.74.42l-1.28-.5c-.12-.05-.25 0-.31.11l-1.03 1.79c-.06.11-.04.24.06.32l1.07.86c-.03.29-.04.58-.01.86l-1.07.85c-.1.08-.12.21-.06.32l1.03 1.79c.06.11.19.15.31.11l1.27-.5c.23.17.48.31.75.42l.2 1.36c.02.12.12.21.25.21h2.07c.12 0 .23-.09.25-.21l.2-1.36c.26-.11.51-.26.74-.42l1.28.5c.12.05.25 0 .31-.11l1.03-1.79c.06-.11.04-.24-.06-.32l-1.06-.85zM19 19.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/video_stable.svg b/html/matt-chat/uswds/img/material-icons/video_stable.svg
new file mode 100644
index 0000000..ed13a90
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/video_stable.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zM4 18V6h2.95l-2.33 8.73L16.82 18H4zm16 0h-2.95l2.34-8.73L7.18 6H20v12z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/videocam.svg b/html/matt-chat/uswds/img/material-icons/videocam.svg
new file mode 100644
index 0000000..a2606b1
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/videocam.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 10.5V7c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1v-3.5l4 4v-11l-4 4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/videocam_off.svg b/html/matt-chat/uswds/img/material-icons/videocam_off.svg
new file mode 100644
index 0000000..7962490
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/videocam_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m21 6.5-4 4V7c0-.55-.45-1-1-1H9.82L21 17.18V6.5zM3.27 2 2 3.27 4.73 6H4c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.21 0 .39-.08.54-.18L19.73 21 21 19.73 3.27 2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/videogame_asset.svg b/html/matt-chat/uswds/img/material-icons/videogame_asset.svg
new file mode 100644
index 0000000..af4c4b0
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/videogame_asset.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 6H3c-1.1 0-2 .9-2 2v8c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm-10 7H8v3H6v-3H3v-2h3V8h2v3h3v2zm4.5 2c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm4-3c-.83 0-1.5-.67-1.5-1.5S18.67 9 19.5 9s1.5.67 1.5 1.5-.67 1.5-1.5 1.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/videogame_asset_off.svg b/html/matt-chat/uswds/img/material-icons/videogame_asset_off.svg
new file mode 100644
index 0000000..3bc2e3e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/videogame_asset_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21.19 21.19 2.81 2.81 1.39 4.22 3.3 6.13C2.54 6.41 2 7.15 2 8v8c0 1.1.9 2 2 2h11.17l4.61 4.61 1.41-1.42zM9 13v2H7v-2H5v-2h2V9.83L10.17 13H9zm11.7 4.87c.76-.28 1.3-1.02 1.3-1.87V8c0-1.1-.9-2-2-2H8.83L20.7 17.87zM17.5 9c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5-1.5-.67-1.5-1.5.67-1.5 1.5-1.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/view_agenda.svg b/html/matt-chat/uswds/img/material-icons/view_agenda.svg
new file mode 100644
index 0000000..8eae152
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/view_agenda.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 13H5c-1.1 0-2 .9-2 2v4c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-4c0-1.1-.9-2-2-2zm0-10H5c-1.1 0-2 .9-2 2v4c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/view_array.svg b/html/matt-chat/uswds/img/material-icons/view_array.svg
new file mode 100644
index 0000000..5e65cef
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/view_array.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 5h-3v14h3V5zm-4 0H7v14h10V5zM6 5H3v14h3V5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/view_carousel.svg b/html/matt-chat/uswds/img/material-icons/view_carousel.svg
new file mode 100644
index 0000000..22b7eca
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/view_carousel.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M2 7h4v10H2V7zm5 12h10V5H7v14zM18 7h4v10h-4V7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/view_column.svg b/html/matt-chat/uswds/img/material-icons/view_column.svg
new file mode 100644
index 0000000..01711bb
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/view_column.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M14.67 5v14H9.33V5h5.34zm1 14H21V5h-5.33v14zm-7.34 0V5H3v14h5.33z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/view_comfy.svg b/html/matt-chat/uswds/img/material-icons/view_comfy.svg
new file mode 100644
index 0000000..f56c57f
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/view_comfy.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M2 4v7h20V4H2zm8 16h12v-7H10v7zm-8 0h6v-7H2v7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/view_comfy_alt.svg b/html/matt-chat/uswds/img/material-icons/view_comfy_alt.svg
new file mode 100644
index 0000000..4360f66
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/view_comfy_alt.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-9 13H7v-4h4v4zm0-6H7V7h4v4zm6 6h-4v-4h4v4zm0-6h-4V7h4v4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/view_compact.svg b/html/matt-chat/uswds/img/material-icons/view_compact.svg
new file mode 100644
index 0000000..6d68287
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/view_compact.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M4 18h2.5v-2.5H4V18zm0-4.75h2.5v-2.5H4v2.5zM4 8.5h2.5V6H4v2.5zM17.5 6v2.5H20V6h-2.5zM13 8.5h2.5V6H13v2.5zm4.5 9.5H20v-2.5h-2.5V18zm0-4.75H20v-2.5h-2.5v2.5zM8.5 18H11v-2.5H8.5V18zm4.5 0h2.5v-2.5H13V18zM8.5 8.5H11V6H8.5v2.5zm4.5 4.75h2.5v-2.5H13v2.5zm-4.5 0H11v-2.5H8.5v2.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/view_compact_alt.svg b/html/matt-chat/uswds/img/material-icons/view_compact_alt.svg
new file mode 100644
index 0000000..8ca8c09
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/view_compact_alt.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-8.5 12.5h-4v-4h4v4zm0-5h-4v-4h4v4zm5 5h-4v-4h4v4zm0-5h-4v-4h4v4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/view_cozy.svg b/html/matt-chat/uswds/img/material-icons/view_cozy.svg
new file mode 100644
index 0000000..7f3a79f
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/view_cozy.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-8.75 12.75h-4v-4h4v4zm0-5.5h-4v-4h4v4zm5.5 5.5h-4v-4h4v4zm0-5.5h-4v-4h4v4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/view_day.svg b/html/matt-chat/uswds/img/material-icons/view_day.svg
new file mode 100644
index 0000000..34972e0
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/view_day.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M2 21h19v-3H2v3zM20 8H3c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h17c.55 0 1-.45 1-1V9c0-.55-.45-1-1-1zM2 3v3h19V3H2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/view_headline.svg b/html/matt-chat/uswds/img/material-icons/view_headline.svg
new file mode 100644
index 0000000..1ee5f9a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/view_headline.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M4 15h16v-2H4v2zm0 4h16v-2H4v2zm0-8h16V9H4v2zm0-6v2h16V5H4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/view_in_ar.svg b/html/matt-chat/uswds/img/material-icons/view_in_ar.svg
new file mode 100644
index 0000000..18ea582
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/view_in_ar.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m18.25 7.6-5.5-3.18a1.49 1.49 0 0 0-1.5 0L5.75 7.6c-.46.27-.75.76-.75 1.3v6.35c0 .54.29 1.03.75 1.3l5.5 3.18c.46.27 1.04.27 1.5 0l5.5-3.18c.46-.27.75-.76.75-1.3V8.9c0-.54-.29-1.03-.75-1.3zM7 14.96v-4.62l4 2.32v4.61l-4-2.31zm5-4.03L8 8.61l4-2.31 4 2.31-4 2.32zm1 6.34v-4.61l4-2.32v4.62l-4 2.31zM7 2H3.5C2.67 2 2 2.67 2 3.5V7h2V4h3V2zm10 0h3.5c.83 0 1.5.67 1.5 1.5V7h-2V4h-3V2zM7 22H3.5c-.83 0-1.5-.67-1.5-1.5V17h2v3h3v2zm10 0h3.5c.83 0 1.5-.67 1.5-1.5V17h-2v3h-3v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/view_kanban.svg b/html/matt-chat/uswds/img/material-icons/view_kanban.svg
new file mode 100644
index 0000000..1c9b7f9
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/view_kanban.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7V7h2v10zm4-5h-2V7h2v5zm4 3h-2V7h2v8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/view_list.svg b/html/matt-chat/uswds/img/material-icons/view_list.svg
new file mode 100644
index 0000000..0144a90
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/view_list.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 14h4v-4H3v4zm0 5h4v-4H3v4zM3 9h4V5H3v4zm5 5h13v-4H8v4zm0 5h13v-4H8v4zM8 5v4h13V5H8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/view_module.svg b/html/matt-chat/uswds/img/material-icons/view_module.svg
new file mode 100644
index 0000000..5e646ba
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/view_module.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M14.67 5v6.5H9.33V5h5.34zm1 6.5H21V5h-5.33v6.5zm-1 7.5v-6.5H9.33V19h5.34zm1-6.5V19H21v-6.5h-5.33zm-7.34 0H3V19h5.33v-6.5zm0-1V5H3v6.5h5.33z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/view_quilt.svg b/html/matt-chat/uswds/img/material-icons/view_quilt.svg
new file mode 100644
index 0000000..5858c19
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/view_quilt.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 5v6.5H9.33V5H21zm-6.33 14v-6.5H9.33V19h5.34zm1-6.5V19H21v-6.5h-5.33zM8.33 19V5H3v14h5.33z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/view_sidebar.svg b/html/matt-chat/uswds/img/material-icons/view_sidebar.svg
new file mode 100644
index 0000000..f11e08a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/view_sidebar.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16 20H2V4h14v16zm2-12h4V4h-4v4zm0 12h4v-4h-4v4zm0-6h4v-4h-4v4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/view_stream.svg b/html/matt-chat/uswds/img/material-icons/view_stream.svg
new file mode 100644
index 0000000..740e5b8
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/view_stream.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 17v-2c0-1.1.9-2 2-2h14c1.1 0 2 .9 2 2v2c0 1.1-.9 2-2 2H5c-1.1 0-2-.9-2-2zM3 7v2c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/view_timeline.svg b/html/matt-chat/uswds/img/material-icons/view_timeline.svg
new file mode 100644
index 0000000..c6114d8
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/view_timeline.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 14H6v-2h6v2zm3-4H9v-2h6v2zm3-4h-6V7h6v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/view_week.svg b/html/matt-chat/uswds/img/material-icons/view_week.svg
new file mode 100644
index 0000000..d26bb06
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/view_week.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M5.33 20H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2h1.33c1.1 0 2 .9 2 2v12a2 2 0 0 1-2 2zM22 18V6c0-1.1-.9-2-2-2h-1.33c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2H20a2 2 0 0 0 2-2zm-7.33 0V6c0-1.1-.9-2-2-2h-1.33c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h1.33c1.1 0 2-.9 2-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/vignette.svg b/html/matt-chat/uswds/img/material-icons/vignette.svg
new file mode 100644
index 0000000..c54a045
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/vignette.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 3H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-9 15c-4.42 0-8-2.69-8-6s3.58-6 8-6 8 2.69 8 6-3.58 6-8 6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/villa.svg b/html/matt-chat/uswds/img/material-icons/villa.svg
new file mode 100644
index 0000000..8fe6ce2
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/villa.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M7 21H3V8l13-5v7H7v11zm12-11c-1.1 0-2 .9-2 2H9v9h5v-5h2v5h5v-9c0-1.1-.9-2-2-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/visibility.svg b/html/matt-chat/uswds/img/material-icons/visibility.svg
new file mode 100644
index 0000000..5c700e3
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/visibility.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/visibility_off.svg b/html/matt-chat/uswds/img/material-icons/visibility_off.svg
new file mode 100644
index 0000000..9f804ec
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/visibility_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75-1.73-4.39-6-7.5-11-7.5-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 7.13 11.35 7 12 7zM2 4.27l2.28 2.28.46.46A11.804 11.804 0 0 0 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3 2 4.27zM7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2zm4.31-.78 3.15 3.15.02-.16c0-1.66-1.34-3-3-3l-.17.01z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/voice_chat.svg b/html/matt-chat/uswds/img/material-icons/voice_chat.svg
new file mode 100644
index 0000000..0efceee
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/voice_chat.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 2H4c-1.1 0-2 .9-2 2v18l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 14H6l-2 2V4h16v12z"/><path d="M11.25 5h1.5v10h-1.5zM8.5 7H10v6H8.5zM6 9h1.5v2H6zm8-2h1.5v6H14zm2.5 2H18v2h-1.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/voice_over_off.svg b/html/matt-chat/uswds/img/material-icons/voice_over_off.svg
new file mode 100644
index 0000000..6192cc3
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/voice_over_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12.99 9.18c0-.06.01-.12.01-.18 0-2.21-1.79-4-4-4-.06 0-.12.01-.18.01l4.17 4.17zm-6.1-3.56L4.27 3 3 4.27l2.62 2.62C5.23 7.5 5 8.22 5 9c0 2.21 1.79 4 4 4 .78 0 1.5-.23 2.11-.62L19.73 21 21 19.73l-8.62-8.62-5.49-5.49zM9 15c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4zm7.76-9.64-1.68 1.69c.84 1.18.84 2.71 0 3.89l1.68 1.69c2.02-2.02 2.02-5.07 0-7.27zM20.07 2l-1.63 1.63c2.77 3.02 2.77 7.56 0 10.74L20.07 16c3.9-3.89 3.91-9.95 0-14z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/voicemail.svg b/html/matt-chat/uswds/img/material-icons/voicemail.svg
new file mode 100644
index 0000000..2b24059
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/voicemail.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18.5 6C15.46 6 13 8.46 13 11.5c0 1.33.47 2.55 1.26 3.5H9.74c.79-.95 1.26-2.17 1.26-3.5C11 8.46 8.54 6 5.5 6S0 8.46 0 11.5 2.46 17 5.5 17h13c3.04 0 5.5-2.46 5.5-5.5S21.54 6 18.5 6zm-13 9C3.57 15 2 13.43 2 11.5S3.57 8 5.5 8 9 9.57 9 11.5 7.43 15 5.5 15zm13 0c-1.93 0-3.5-1.57-3.5-3.5S16.57 8 18.5 8 22 9.57 22 11.5 20.43 15 18.5 15z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/volcano.svg b/html/matt-chat/uswds/img/material-icons/volcano.svg
new file mode 100644
index 0000000..ad58899
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/volcano.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 8h-7l-2 5H6l-4 9h20zm-5-7h2v4h-2zm3.121 4.468L18.95 2.64l1.414 1.414-2.829 2.828zM7.64 4.05l1.414-1.414 2.828 2.829-1.414 1.414z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/volume_down.svg b/html/matt-chat/uswds/img/material-icons/volume_down.svg
new file mode 100644
index 0000000..002fe4f
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/volume_down.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18.5 12A4.5 4.5 0 0 0 16 7.97v8.05c1.48-.73 2.5-2.25 2.5-4.02zM5 9v6h4l5 5V4L9 9H5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/volume_mute.svg b/html/matt-chat/uswds/img/material-icons/volume_mute.svg
new file mode 100644
index 0000000..66b7daf
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/volume_mute.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M7 9v6h4l5 5V4l-5 5H7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/volume_off.svg b/html/matt-chat/uswds/img/material-icons/volume_off.svg
new file mode 100644
index 0000000..dc8b1bd
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/volume_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16.5 12A4.5 4.5 0 0 0 14 7.97v2.21l2.45 2.45c.03-.2.05-.41.05-.63zm2.5 0c0 .94-.2 1.82-.54 2.64l1.51 1.51A8.796 8.796 0 0 0 21 12c0-4.28-2.99-7.86-7-8.77v2.06c2.89.86 5 3.54 5 6.71zM4.27 3 3 4.27 7.73 9H3v6h4l5 5v-6.73l4.25 4.25c-.67.52-1.42.93-2.25 1.18v2.06a8.99 8.99 0 0 0 3.69-1.81L19.73 21 21 19.73l-9-9L4.27 3zM12 4 9.91 6.09 12 8.18V4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/volume_up.svg b/html/matt-chat/uswds/img/material-icons/volume_up.svg
new file mode 100644
index 0000000..958838a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/volume_up.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 9v6h4l5 5V4L7 9H3zm13.5 3A4.5 4.5 0 0 0 14 7.97v8.05c1.48-.73 2.5-2.25 2.5-4.02zM14 3.23v2.06c2.89.86 5 3.54 5 6.71s-2.11 5.85-5 6.71v2.06c4.01-.91 7-4.49 7-8.77s-2.99-7.86-7-8.77z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/volunteer_activism.svg b/html/matt-chat/uswds/img/material-icons/volunteer_activism.svg
new file mode 100644
index 0000000..53c7cdb
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/volunteer_activism.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M1 11h4v11H1zm15-7.75C16.65 2.49 17.66 2 18.7 2 20.55 2 22 3.45 22 5.3c0 2.27-2.91 4.9-6 7.7-3.09-2.81-6-5.44-6-7.7C10 3.45 11.45 2 13.3 2c1.04 0 2.05.49 2.7 1.25zM20 17h-7l-2.09-.73.33-.94L13 16h2.82c.65 0 1.18-.53 1.18-1.18 0-.49-.31-.93-.77-1.11L8.97 11H7v9.02L14 22l8.01-3c-.01-1.1-.9-2-2.01-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/vpn_key.svg b/html/matt-chat/uswds/img/material-icons/vpn_key.svg
new file mode 100644
index 0000000..f186802
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/vpn_key.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12.65 10A5.99 5.99 0 0 0 7 6c-3.31 0-6 2.69-6 6s2.69 6 6 6a5.99 5.99 0 0 0 5.65-4H17v4h4v-4h2v-4H12.65zM7 14c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/vpn_key_off.svg b/html/matt-chat/uswds/img/material-icons/vpn_key_off.svg
new file mode 100644
index 0000000..58842db
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/vpn_key_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20.83 18H21v-4h2v-4H12.83l8 8zm-1.05 4.61 1.41-1.41L2.81 2.81 1.39 4.22l2.59 2.59A6.012 6.012 0 0 0 1 12c0 3.31 2.69 6 6 6 2.21 0 4.15-1.2 5.18-2.99l7.6 7.6zM8.99 11.82c.01.06.01.12.01.18 0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2c.06 0 .12 0 .18.01l1.81 1.81z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/vpn_lock.svg b/html/matt-chat/uswds/img/material-icons/vpn_lock.svg
new file mode 100644
index 0000000..17f1a9e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/vpn_lock.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M22 4v-.5a2.5 2.5 0 0 0-5 0V4c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h5c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zm-.8 0h-3.4v-.5c0-.94.76-1.7 1.7-1.7s1.7.76 1.7 1.7V4zm-2.28 8c.04.33.08.66.08 1 0 2.08-.8 3.97-2.1 5.39-.26-.81-1-1.39-1.9-1.39h-1v-3c0-.55-.45-1-1-1H7v-2h2c.55 0 1-.45 1-1V8h2c1.1 0 2-.9 2-2V3.46c-.95-.3-1.95-.46-3-.46C5.48 3 1 7.48 1 13s4.48 10 10 10 10-4.48 10-10c0-.34-.02-.67-.05-1h-2.03zM10 20.93c-3.95-.49-7-3.85-7-7.93 0-.62.08-1.21.21-1.79L8 16v1c0 1.1.9 2 2 2v1.93z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/vrpano.svg b/html/matt-chat/uswds/img/material-icons/vrpano.svg
new file mode 100644
index 0000000..cc22521
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/vrpano.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20.69 4.05C18.66 4.73 15.86 5.5 12 5.5c-3.89 0-6.95-.84-8.69-1.43A.993.993 0 0 0 2 5.02V19c0 .68.66 1.17 1.31.95C5.36 19.26 8.1 18.5 12 18.5c3.87 0 6.66.76 8.69 1.45A.999.999 0 0 0 22 19V5c0-.68-.66-1.16-1.31-.95zM12 15c-2.34 0-4.52.15-6.52.41l3.69-4.42 2 2.4L14 10l4.51 5.4c-1.99-.25-4.21-.4-6.51-.4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/wallet.svg b/html/matt-chat/uswds/img/material-icons/wallet.svg
new file mode 100644
index 0000000..a54f2e6
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/wallet.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 4H6C3.79 4 2 5.79 2 8v8c0 2.21 1.79 4 4 4h12c2.21 0 4-1.79 4-4V8c0-2.21-1.79-4-4-4zm-1.86 9.77c-.24.2-.57.28-.88.2L4.15 11.25C4.45 10.52 5.16 10 6 10h12c.67 0 1.26.34 1.63.84l-3.49 2.93zM6 6h12c1.1 0 2 .9 2 2v.55c-.59-.34-1.27-.55-2-.55H6c-.73 0-1.41.21-2 .55V8c0-1.1.9-2 2-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/wallpaper.svg b/html/matt-chat/uswds/img/material-icons/wallpaper.svg
new file mode 100644
index 0000000..46574dc
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/wallpaper.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M4 4h7V2H4c-1.1 0-2 .9-2 2v7h2V4zm6 9-4 5h12l-3-4-2.03 2.71L10 13zm7-4.5c0-.83-.67-1.5-1.5-1.5S14 7.67 14 8.5s.67 1.5 1.5 1.5S17 9.33 17 8.5zM20 2h-7v2h7v7h2V4c0-1.1-.9-2-2-2zm0 18h-7v2h7c1.1 0 2-.9 2-2v-7h-2v7zM4 13H2v7c0 1.1.9 2 2 2h7v-2H4v-7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/warehouse.svg b/html/matt-chat/uswds/img/material-icons/warehouse.svg
new file mode 100644
index 0000000..d28087f
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/warehouse.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M22 21V7L12 3 2 7v14h5v-9h10v9h5zm-11-2H9v2h2v-2zm2-3h-2v2h2v-2zm2 3h-2v2h2v-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/warning.svg b/html/matt-chat/uswds/img/material-icons/warning.svg
new file mode 100644
index 0000000..dfcf997
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/warning.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/warning_amber.svg b/html/matt-chat/uswds/img/material-icons/warning_amber.svg
new file mode 100644
index 0000000..05fbc02
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/warning_amber.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 5.99 19.53 19H4.47L12 5.99M12 2 1 21h22L12 2z"/><path d="M13 16h-2v2h2zm0-6h-2v5h2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/wash.svg b/html/matt-chat/uswds/img/material-icons/wash.svg
new file mode 100644
index 0000000..848078e
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/wash.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18.5 8A2.5 2.5 0 0 0 21 5.5C21 3.83 18.5 1 18.5 1S16 3.83 16 5.5A2.5 2.5 0 0 0 18.5 8zm-5 1c.83 0 1.5-.67 1.5-1.5 0-.84-1.5-2.5-1.5-2.5S12 6.66 12 7.5c0 .83.67 1.5 1.5 1.5zM9.12 5l-7.18 6.79c-.6.56-.94 1.35-.94 2.18V20c0 1.66 1.34 3 3 3h13.75a1.25 1.25 0 0 0 0-2.5H12v-1h7.75a1.25 1.25 0 0 0 0-2.5H12v-1h8.75a1.25 1.25 0 0 0 0-2.5H12v-1h6.75a1.25 1.25 0 0 0 0-2.5H8.86c.64-1.11 1.48-2.58 1.49-2.61a1.065 1.065 0 0 0-.12-1.23C10.22 6.12 9.12 5 9.12 5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/watch.svg b/html/matt-chat/uswds/img/material-icons/watch.svg
new file mode 100644
index 0000000..3237dcc
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/watch.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 12c0-2.54-1.19-4.81-3.04-6.27L16 0H8l-.95 5.73C5.19 7.19 4 9.45 4 12s1.19 4.81 3.05 6.27L8 24h8l.96-5.73A7.976 7.976 0 0 0 20 12zM6 12c0-3.31 2.69-6 6-6s6 2.69 6 6-2.69 6-6 6-6-2.69-6-6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/watch_later.svg b/html/matt-chat/uswds/img/material-icons/watch_later.svg
new file mode 100644
index 0000000..aad70b2
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/watch_later.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2zm4.2 14.2L11 13V7h1.5v5.2l4.5 2.7-.8 1.3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/watch_off.svg b/html/matt-chat/uswds/img/material-icons/watch_off.svg
new file mode 100644
index 0000000..0c48697
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/watch_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 7c2.76 0 5 2.24 5 5 0 .64-.13 1.25-.35 1.82l1.5 1.5a6.963 6.963 0 0 0-1.79-8.79L15 2H9l-.96 3.21 2.14 2.14C10.75 7.13 11.36 7 12 7zM2.81 2.81 1.39 4.22l4.46 4.46a6.963 6.963 0 0 0 1.79 8.79L9 22h6l.96-3.21 3.82 3.82 1.41-1.41L2.81 2.81zM12 17c-2.76 0-5-2.24-5-5 0-.64.13-1.25.35-1.82l6.47 6.47c-.57.22-1.18.35-1.82.35z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/water.svg b/html/matt-chat/uswds/img/material-icons/water.svg
new file mode 100644
index 0000000..b591255
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/water.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21.98 14H22h-.02zM5.35 13c1.19 0 1.42 1 3.33 1 1.95 0 2.09-1 3.33-1 1.19 0 1.42 1 3.33 1 1.95 0 2.09-1 3.33-1 1.19 0 1.4.98 3.31 1v-2c-1.19 0-1.42-1-3.33-1-1.95 0-2.09 1-3.33 1-1.19 0-1.42-1-3.33-1-1.95 0-2.09 1-3.33 1-1.19 0-1.42-1-3.33-1-1.95 0-2.09 1-3.33 1v2c1.9 0 2.17-1 3.35-1zm13.32 2c-1.95 0-2.09 1-3.33 1-1.19 0-1.42-1-3.33-1-1.95 0-2.1 1-3.34 1-1.24 0-1.38-1-3.33-1-1.95 0-2.1 1-3.34 1v2c1.95 0 2.11-1 3.34-1 1.24 0 1.38 1 3.33 1 1.95 0 2.1-1 3.34-1 1.19 0 1.42 1 3.33 1 1.94 0 2.09-1 3.33-1 1.19 0 1.42 1 3.33 1v-2c-1.24 0-1.38-1-3.33-1zM5.35 9c1.19 0 1.42 1 3.33 1 1.95 0 2.09-1 3.33-1 1.19 0 1.42 1 3.33 1 1.95 0 2.09-1 3.33-1 1.19 0 1.4.98 3.31 1V8c-1.19 0-1.42-1-3.33-1-1.95 0-2.09 1-3.33 1-1.19 0-1.42-1-3.33-1-1.95 0-2.09 1-3.33 1-1.19 0-1.42-1-3.33-1C3.38 7 3.24 8 2 8v2c1.9 0 2.17-1 3.35-1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/water_damage.svg b/html/matt-chat/uswds/img/material-icons/water_damage.svg
new file mode 100644
index 0000000..c887fe9
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/water_damage.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 3 2 12h3v8h14v-8h3L12 3zm0 13c-1.1 0-2-.9-2-2s2-4 2-4 2 2.9 2 4-.9 2-2 2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/water_drop.svg b/html/matt-chat/uswds/img/material-icons/water_drop.svg
new file mode 100644
index 0000000..2469b18
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/water_drop.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2c-5.33 4.55-8 8.48-8 11.8 0 4.98 3.8 8.2 8 8.2s8-3.22 8-8.2c0-3.32-2.67-7.25-8-11.8zM7.83 14c.37 0 .67.26.74.62.41 2.22 2.28 2.98 3.64 2.87.43-.02.79.32.79.75 0 .4-.32.73-.72.75-2.13.13-4.62-1.09-5.19-4.12a.75.75 0 0 1 .74-.87z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/waterfall_chart.svg b/html/matt-chat/uswds/img/material-icons/waterfall_chart.svg
new file mode 100644
index 0000000..fbf6caf
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/waterfall_chart.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 4h3v16h-3zM3 13h3v7H3zm11-9h3v3h-3zm-4 1h3v4h-3zm-3 5h3v4H7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/waves.svg b/html/matt-chat/uswds/img/material-icons/waves.svg
new file mode 100644
index 0000000..42d1cb6
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/waves.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 16.99c-1.35 0-2.2.42-2.95.8-.65.33-1.18.6-2.05.6-.9 0-1.4-.25-2.05-.6-.75-.38-1.57-.8-2.95-.8s-2.2.42-2.95.8c-.65.33-1.17.6-2.05.6v1.95c1.35 0 2.2-.42 2.95-.8.65-.33 1.17-.6 2.05-.6s1.4.25 2.05.6c.75.38 1.57.8 2.95.8s2.2-.42 2.95-.8c.65-.33 1.18-.6 2.05-.6.9 0 1.4.25 2.05.6.75.38 1.58.8 2.95.8v-1.95c-.9 0-1.4-.25-2.05-.6-.75-.38-1.6-.8-2.95-.8zm0-4.45c-1.35 0-2.2.43-2.95.8-.65.32-1.18.6-2.05.6-.9 0-1.4-.25-2.05-.6-.75-.38-1.57-.8-2.95-.8s-2.2.43-2.95.8c-.65.32-1.17.6-2.05.6v1.95c1.35 0 2.2-.43 2.95-.8.65-.35 1.15-.6 2.05-.6s1.4.25 2.05.6c.75.38 1.57.8 2.95.8s2.2-.43 2.95-.8c.65-.35 1.15-.6 2.05-.6s1.4.25 2.05.6c.75.38 1.58.8 2.95.8v-1.95c-.9 0-1.4-.25-2.05-.6-.75-.38-1.6-.8-2.95-.8zm2.95-8.08c-.75-.38-1.58-.8-2.95-.8s-2.2.42-2.95.8c-.65.32-1.18.6-2.05.6-.9 0-1.4-.25-2.05-.6-.75-.37-1.57-.8-2.95-.8s-2.2.42-2.95.8c-.65.33-1.17.6-2.05.6v1.93c1.35 0 2.2-.43 2.95-.8.65-.33 1.17-.6 2.05-.6s1.4.25 2.05.6c.75.38 1.57.8 2.95.8s2.2-.43 2.95-.8c.65-.32 1.18-.6 2.05-.6.9 0 1.4.25 2.05.6.75.38 1.58.8 2.95.8V5.04c-.9 0-1.4-.25-2.05-.58zM17 8.09c-1.35 0-2.2.43-2.95.8-.65.35-1.15.6-2.05.6s-1.4-.25-2.05-.6c-.75-.38-1.57-.8-2.95-.8s-2.2.43-2.95.8c-.65.35-1.15.6-2.05.6v1.95c1.35 0 2.2-.43 2.95-.8.65-.32 1.18-.6 2.05-.6s1.4.25 2.05.6c.75.38 1.57.8 2.95.8s2.2-.43 2.95-.8c.65-.32 1.18-.6 2.05-.6.9 0 1.4.25 2.05.6.75.38 1.58.8 2.95.8V9.49c-.9 0-1.4-.25-2.05-.6-.75-.38-1.6-.8-2.95-.8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/waving_hand.svg b/html/matt-chat/uswds/img/material-icons/waving_hand.svg
new file mode 100644
index 0000000..f2f7c61
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/waving_hand.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M23 17c0 3.31-2.69 6-6 6v-1.5c2.48 0 4.5-2.02 4.5-4.5H23zM1 7c0-3.31 2.69-6 6-6v1.5C4.52 2.5 2.5 4.52 2.5 7H1zm7.01-2.68-4.6 4.6c-3.22 3.22-3.22 8.45 0 11.67s8.45 3.22 11.67 0l7.07-7.07c.49-.49.49-1.28 0-1.77a1.25 1.25 0 0 0-1.77 0l-4.42 4.42-.71-.71 6.54-6.54c.49-.49.49-1.28 0-1.77s-1.28-.49-1.77 0l-5.83 5.83-.71-.71 6.89-6.89c.49-.49.49-1.28 0-1.77s-1.28-.49-1.77 0l-6.89 6.89-.69-.7 5.48-5.48c.49-.49.49-1.28 0-1.77s-1.28-.49-1.77 0l-7.62 7.62a4.003 4.003 0 0 1-.33 5.28l-.71-.71a3 3 0 0 0 0-4.24l-.35-.35 4.07-4.07c.49-.49.49-1.28 0-1.77a1.27 1.27 0 0 0-1.78.01z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/wb_auto.svg b/html/matt-chat/uswds/img/material-icons/wb_auto.svg
new file mode 100644
index 0000000..1793c64
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/wb_auto.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M6.85 12.65h2.3L8 9l-1.15 3.65zM22 7l-1.2 6.29L19.3 7h-1.6l-1.49 6.29L15 7h-.76C12.77 5.17 10.53 4 8 4c-4.42 0-8 3.58-8 8s3.58 8 8 8c3.13 0 5.84-1.81 7.15-4.43l.1.43H17l1.5-6.1L20 16h1.75l2.05-9H22zm-11.7 9-.7-2H6.4l-.7 2H3.8L7 7h2l3.2 9h-1.9z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/wb_cloudy.svg b/html/matt-chat/uswds/img/material-icons/wb_cloudy.svg
new file mode 100644
index 0000000..a7c9ca3
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/wb_cloudy.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19.36 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04A5.994 5.994 0 0 0 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.64-4.96z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/wb_incandescent.svg b/html/matt-chat/uswds/img/material-icons/wb_incandescent.svg
new file mode 100644
index 0000000..594f90c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/wb_incandescent.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m3.55 18.54 1.41 1.41 1.79-1.8-1.41-1.41-1.79 1.8zM11 22.45h2V19.5h-2v2.95zM4 10.5H1v2h3v-2zm11-4.19V1.5H9v4.81C7.21 7.35 6 9.28 6 11.5c0 3.31 2.69 6 6 6s6-2.69 6-6c0-2.22-1.21-4.15-3-5.19zm5 4.19v2h3v-2h-3zm-2.76 7.66 1.79 1.8 1.41-1.41-1.8-1.79-1.4 1.4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/wb_iridescent.svg b/html/matt-chat/uswds/img/material-icons/wb_iridescent.svg
new file mode 100644
index 0000000..7a73666
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/wb_iridescent.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M5 14.5h14v-6H5v6zM11 .55V3.5h2V.55h-2zm8.04 2.5-1.79 1.79 1.41 1.41 1.8-1.79-1.42-1.41zM13 22.45V19.5h-2v2.95h2zm7.45-3.91-1.8-1.79-1.41 1.41 1.79 1.8 1.42-1.42zM3.55 4.46l1.79 1.79 1.41-1.41-1.79-1.79-1.41 1.41zm1.41 15.49 1.79-1.8-1.41-1.41-1.79 1.79 1.41 1.42z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/wb_shade.svg b/html/matt-chat/uswds/img/material-icons/wb_shade.svg
new file mode 100644
index 0000000..431dd8d
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/wb_shade.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M14 12v2.5l5.5 5.5H22zm0 8h3l-3-3zM8 4l-6 6h2v10h8V10h2L8 4zm1 10H7v-4h2v4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/wb_sunny.svg b/html/matt-chat/uswds/img/material-icons/wb_sunny.svg
new file mode 100644
index 0000000..6c562f8
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/wb_sunny.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m6.76 4.84-1.8-1.79-1.41 1.41 1.79 1.79 1.42-1.41zM4 10.5H1v2h3v-2zm9-9.95h-2V3.5h2V.55zm7.45 3.91-1.41-1.41-1.79 1.79 1.41 1.41 1.79-1.79zm-3.21 13.7 1.79 1.8 1.41-1.41-1.8-1.79-1.4 1.4zM20 10.5v2h3v-2h-3zm-8-5c-3.31 0-6 2.69-6 6s2.69 6 6 6 6-2.69 6-6-2.69-6-6-6zm-1 16.95h2V19.5h-2v2.95zm-7.45-3.91 1.41 1.41 1.79-1.8-1.41-1.41-1.79 1.8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/wb_twilight.svg b/html/matt-chat/uswds/img/material-icons/wb_twilight.svg
new file mode 100644
index 0000000..6342714
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/wb_twilight.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m16.955 8.662 2.12-2.122 1.416 1.414-2.121 2.122zM2 18h20v2H2zm9-14h2v3h-2zM3.543 7.925 4.957 6.51l2.121 2.12-1.414 1.415zM5 16h14c0-3.87-3.13-7-7-7s-7 3.13-7 7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/wc.svg b/html/matt-chat/uswds/img/material-icons/wc.svg
new file mode 100644
index 0000000..ad13453
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/wc.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M5.5 22v-7.5H4V9c0-1.1.9-2 2-2h3c1.1 0 2 .9 2 2v5.5H9.5V22h-4zM18 22v-6h3l-2.54-7.63A2.01 2.01 0 0 0 16.56 7h-.12a2 2 0 0 0-1.9 1.37L12 16h3v6h3zM7.5 6c1.11 0 2-.89 2-2s-.89-2-2-2-2 .89-2 2 .89 2 2 2zm9 0c1.11 0 2-.89 2-2s-.89-2-2-2-2 .89-2 2 .89 2 2 2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/web.svg b/html/matt-chat/uswds/img/material-icons/web.svg
new file mode 100644
index 0000000..2f2150c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/web.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-5 14H4v-4h11v4zm0-5H4V9h11v4zm5 5h-4V9h4v9z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/web_asset.svg b/html/matt-chat/uswds/img/material-icons/web_asset.svg
new file mode 100644
index 0000000..15de87c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/web_asset.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 4H5a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2V6a2 2 0 0 0-2-2zm0 14H5V8h14v10z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/web_asset_off.svg b/html/matt-chat/uswds/img/material-icons/web_asset_off.svg
new file mode 100644
index 0000000..347567b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/web_asset_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M6.83 4H20a2 2 0 0 1 2 2v12c0 .34-.09.66-.23.94L20 17.17V8h-9.17l-4-4zm13.66 19.31L17.17 20H4a2 2 0 0 1-2-2V6c0-.34.08-.66.23-.94L.69 3.51 2.1 2.1l19.8 19.8-1.41 1.41zM15.17 18l-10-10H4v10h11.17z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/web_stories.svg b/html/matt-chat/uswds/img/material-icons/web_stories.svg
new file mode 100644
index 0000000..bf14108
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/web_stories.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 4c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2V4zM2 20c0 1.1.9 2 2 2h9c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v16zm19-2c.83 0 1.5-.67 1.5-1.5v-9c0-.83-.67-1.5-1.5-1.5v12z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/webhook.svg b/html/matt-chat/uswds/img/material-icons/webhook.svg
new file mode 100644
index 0000000..aeb31c7
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/webhook.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10 15h5.88c.27-.31.67-.5 1.12-.5.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5c-.44 0-.84-.19-1.12-.5H11.9A5 5 0 1 1 6 11.1v2.07c-1.16.41-2 1.53-2 2.83 0 1.65 1.35 3 3 3s3-1.35 3-3v-1zm2.5-11c1.65 0 3 1.35 3 3h2c0-2.76-2.24-5-5-5a5.002 5.002 0 0 0-3.45 8.62l-2.35 3.9c-.68.14-1.2.75-1.2 1.48 0 .83.67 1.5 1.5 1.5a1.498 1.498 0 0 0 1.43-1.95l3.38-5.63A3.003 3.003 0 0 1 9.5 7c0-1.65 1.35-3 3-3zm4.5 9c-.64 0-1.23.2-1.72.54l-3.05-5.07C11.53 8.35 11 7.74 11 7c0-.83.67-1.5 1.5-1.5S14 6.17 14 7c0 .15-.02.29-.06.43l2.19 3.65c.28-.05.57-.08.87-.08 2.76 0 5 2.24 5 5s-2.24 5-5 5a5 5 0 0 1-4.33-2.5h2.67c.48.32 1.05.5 1.66.5 1.65 0 3-1.35 3-3s-1.35-3-3-3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/weekend.svg b/html/matt-chat/uswds/img/material-icons/weekend.svg
new file mode 100644
index 0000000..749536b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/weekend.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 10c-1.1 0-2 .9-2 2v3H5v-3a2 2 0 1 0-4 0v5c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2v-5c0-1.1-.9-2-2-2zm-3-5H6c-1.1 0-2 .9-2 2v2.15c1.16.41 2 1.52 2 2.81V14h12v-2.03c0-1.3.84-2.4 2-2.81V7c0-1.1-.9-2-2-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/west.svg b/html/matt-chat/uswds/img/material-icons/west.svg
new file mode 100644
index 0000000..ae174fd
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/west.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m9 19 1.41-1.41L5.83 13H22v-2H5.83l4.59-4.59L9 5l-7 7 7 7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/whatshot.svg b/html/matt-chat/uswds/img/material-icons/whatshot.svg
new file mode 100644
index 0000000..d064899
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/whatshot.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13.5.67s.74 2.65.74 4.8c0 2.06-1.35 3.73-3.41 3.73-2.07 0-3.63-1.67-3.63-3.73l.03-.36C5.21 7.51 4 10.62 4 14c0 4.42 3.58 8 8 8s8-3.58 8-8C20 8.61 17.41 3.8 13.5.67zM11.71 19c-1.78 0-3.22-1.4-3.22-3.14 0-1.62 1.05-2.76 2.81-3.12 1.77-.36 3.6-1.21 4.62-2.58.39 1.29.59 2.65.59 4.04 0 2.65-2.15 4.8-4.8 4.8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/wheelchair_pickup.svg b/html/matt-chat/uswds/img/material-icons/wheelchair_pickup.svg
new file mode 100644
index 0000000..372e7d3
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/wheelchair_pickup.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M4.5 4c0-1.11.89-2 2-2s2 .89 2 2-.89 2-2 2-2-.89-2-2zm5.5 6.95V9c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v6h2v7h3.5v-.11c-1.24-1.26-2-2.99-2-4.89 0-2.58 1.41-4.84 3.5-6.05zM16.5 17c0 1.65-1.35 3-3 3s-3-1.35-3-3c0-1.11.61-2.06 1.5-2.58v-2.16c-2.02.64-3.5 2.51-3.5 4.74 0 2.76 2.24 5 5 5s5-2.24 5-5h-2zm3.04-3H15V8h-2v8h5.46l2.47 3.71 1.66-1.11-3.05-4.6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/where_to_vote.svg b/html/matt-chat/uswds/img/material-icons/where_to_vote.svg
new file mode 100644
index 0000000..37152ae
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/where_to_vote.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2c3.86 0 7 3.14 7 7 0 5.25-7 13-7 13S5 14.25 5 9c0-3.86 3.14-7 7-7zm-1.53 12L17 7.41 15.6 6l-5.13 5.18L8.4 9.09 7 10.5l3.47 3.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/widgets.svg b/html/matt-chat/uswds/img/material-icons/widgets.svg
new file mode 100644
index 0000000..fcc2293
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/widgets.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13 13v8h8v-8h-8zM3 21h8v-8H3v8zM3 3v8h8V3H3zm13.66-1.31L11 7.34 16.66 13l5.66-5.66-5.66-5.65z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/width_full.svg b/html/matt-chat/uswds/img/material-icons/width_full.svg
new file mode 100644
index 0000000..46d783a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/width_full.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zM4 6h1v12H4V6zm16 12h-1V6h1v12z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/width_normal.svg b/html/matt-chat/uswds/img/material-icons/width_normal.svg
new file mode 100644
index 0000000..ec951da
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/width_normal.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zM4 6h4v12H4V6zm16 12h-4V6h4v12z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/width_wide.svg b/html/matt-chat/uswds/img/material-icons/width_wide.svg
new file mode 100644
index 0000000..da3cd54
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/width_wide.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zM4 6h2v12H4V6zm16 12h-2V6h2v12z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/wifi.svg b/html/matt-chat/uswds/img/material-icons/wifi.svg
new file mode 100644
index 0000000..5883714
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/wifi.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m1 9 2 2c4.97-4.97 13.03-4.97 18 0l2-2C16.93 2.93 7.08 2.93 1 9zm8 8 3 3 3-3a4.237 4.237 0 0 0-6 0zm-4-4 2 2a7.074 7.074 0 0 1 10 0l2-2C15.14 9.14 8.87 9.14 5 13z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/wifi_1_bar.svg b/html/matt-chat/uswds/img/material-icons/wifi_1_bar.svg
new file mode 100644
index 0000000..9fd30fd
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/wifi_1_bar.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15.53 17.46 12 21l-3.53-3.54c.9-.9 2.15-1.46 3.53-1.46s2.63.56 3.53 1.46z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/wifi_2_bar.svg b/html/matt-chat/uswds/img/material-icons/wifi_2_bar.svg
new file mode 100644
index 0000000..a81d444
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/wifi_2_bar.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 10c3.03 0 5.78 1.23 7.76 3.22l-2.12 2.12A7.967 7.967 0 0 0 12 13c-2.2 0-4.2.9-5.64 2.35l-2.12-2.12C6.22 11.23 8.97 10 12 10zm0 6c-1.38 0-2.63.56-3.53 1.46L12 21l3.53-3.54A4.98 4.98 0 0 0 12 16z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/wifi_calling.svg b/html/matt-chat/uswds/img/material-icons/wifi_calling.svg
new file mode 100644
index 0000000..461f00c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/wifi_calling.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M22 4.95C21.79 4.78 19.67 3 16.5 3c-3.18 0-5.29 1.78-5.5 1.95L16.5 12 22 4.95z"/><path d="M20 15.51c-1.24 0-2.45-.2-3.57-.57a.994.994 0 0 0-1.02.24l-2.2 2.2a15.149 15.149 0 0 1-6.59-6.59l2.2-2.2c.28-.28.36-.67.25-1.02A11.36 11.36 0 0 1 8.5 4c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.49c0-.55-.45-1-1-1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/wifi_calling_3.svg b/html/matt-chat/uswds/img/material-icons/wifi_calling_3.svg
new file mode 100644
index 0000000..981871b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/wifi_calling_3.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16.49 3c-2.21 0-4.21.9-5.66 2.34l1.06 1.06a6.47 6.47 0 0 1 9.18 0l1.06-1.06A7.932 7.932 0 0 0 16.49 3z"/><path d="M20.03 7.46a5.022 5.022 0 0 0-7.08 0l1.06 1.06c.63-.63 1.51-1.03 2.47-1.03s1.84.39 2.47 1.03l1.08-1.06zm-4.95 2.13L16.49 11l1.41-1.41c-.36-.37-.86-.59-1.41-.59s-1.05.22-1.41.59z"/><path d="m15.63 14.4-2.52 2.5c-2.5-1.43-4.57-3.5-6-6l2.5-2.52c.23-.24.33-.57.27-.9L9.13 3.8c-.09-.46-.5-.8-.98-.8H4c-.56 0-1.03.47-1 1.03.17 2.89 1.05 5.6 2.43 7.97 1.58 2.73 3.85 4.99 6.57 6.57 2.37 1.37 5.08 2.26 7.97 2.43.56.03 1.03-.44 1.03-1v-4.15c0-.48-.34-.89-.8-.98l-3.67-.73a.985.985 0 0 0-.9.26z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/wifi_channel.svg b/html/matt-chat/uswds/img/material-icons/wifi_channel.svg
new file mode 100644
index 0000000..99a859d
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/wifi_channel.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16 3c-2.51 0-3.77 5.61-4.4 10.57C10.79 10.66 9.61 8 8 8 4.43 8 3 21 3 21h2.01c.61-5.27 2-9.82 2.99-10.87.98 1.05 2.38 5.61 2.99 10.87H13c.5-2.53 2-6 3-6s2.5 3.53 3 6h2s-.5-18-5-18zm0 10c-.99 0-1.82.62-2.5 1.5.57-4.77 1.54-8.62 2.5-9.44.97.81 1.91 4.67 2.49 9.43C17.81 13.62 16.98 13 16 13z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/wifi_find.svg b/html/matt-chat/uswds/img/material-icons/wifi_find.svg
new file mode 100644
index 0000000..f16ff98
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/wifi_find.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11 14c0-3.36 2.64-6 6-6 2.2 0 4.08 1.13 5.13 2.86L24 8.98A16.88 16.88 0 0 0 12 4C7.31 4 3.07 5.9 0 8.98L12 21l1.86-1.87C12.14 18.09 11 16.2 11 14z"/><path d="M21 14c0-2.24-1.76-4-4-4s-4 1.76-4 4 1.76 4 4 4c.75 0 1.44-.21 2.03-.56L21.59 20 23 18.59l-2.56-2.56c.35-.59.56-1.28.56-2.03zm-6 0c0-1.12.88-2 2-2s2 .88 2 2-.88 2-2 2-2-.88-2-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/wifi_lock.svg b/html/matt-chat/uswds/img/material-icons/wifi_lock.svg
new file mode 100644
index 0000000..539d298
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/wifi_lock.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21.98 11 24 8.98A16.88 16.88 0 0 0 12 4C7.31 4 3.07 5.9 0 8.98l6.35 6.36L12 21l3.05-3.05V15c0-.45.09-.88.23-1.29.54-1.57 2.01-2.71 3.77-2.71h2.93z"/><path d="M22 16v-1c0-1.1-.9-2-2-2s-2 .9-2 2v1c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-3c0-.55-.45-1-1-1zm-1 0h-2v-1c0-.55.45-1 1-1s1 .45 1 1v1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/wifi_off.svg b/html/matt-chat/uswds/img/material-icons/wifi_off.svg
new file mode 100644
index 0000000..fe7529a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/wifi_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M22.99 9C19.15 5.16 13.8 3.76 8.84 4.78l2.52 2.52c3.47-.17 6.99 1.05 9.63 3.7l2-2zm-4 4a9.793 9.793 0 0 0-4.49-2.56l3.53 3.53.96-.97zM2 3.05 5.07 6.1C3.6 6.82 2.22 7.78 1 9l1.99 2c1.24-1.24 2.67-2.16 4.2-2.77l2.24 2.24A9.684 9.684 0 0 0 5 13v.01L6.99 15a7.042 7.042 0 0 1 4.92-2.06L18.98 20l1.27-1.26L3.29 1.79 2 3.05zM9 17l3 3 3-3a4.237 4.237 0 0 0-6 0z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/wifi_password.svg b/html/matt-chat/uswds/img/material-icons/wifi_password.svg
new file mode 100644
index 0000000..cb5d908
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/wifi_password.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M23 19v-1c0-1.1-.9-2-2-2s-2 .9-2 2v1c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-3c0-.55-.45-1-1-1zm-1 0h-2v-1c0-.55.45-1 1-1s1 .45 1 1v1zm2-10.02-2.12 2.13C19.35 8.57 15.85 7 12 7s-7.35 1.57-9.88 4.11L0 8.98C3.07 5.9 7.31 4 12 4s8.93 1.9 12 4.98zM12 10c3.03 0 5.78 1.23 7.76 3.22l-2.12 2.12A7.967 7.967 0 0 0 12 13c-2.2 0-4.2.9-5.64 2.35l-2.12-2.12C6.22 11.23 8.97 10 12 10zm3.53 7.46L12 21l-3.53-3.54c.9-.9 2.15-1.46 3.53-1.46s2.63.56 3.53 1.46z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/wifi_protected_setup.svg b/html/matt-chat/uswds/img/material-icons/wifi_protected_setup.svg
new file mode 100644
index 0000000..8c6a5f8
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/wifi_protected_setup.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16.71 5.29 19 3h-8v8l2.3-2.3c1.97 1.46 3.25 3.78 3.25 6.42 0 1.31-.32 2.54-.88 3.63 2.33-1.52 3.88-4.14 3.88-7.13 0-2.52-1.11-4.77-2.84-6.33z"/><path d="M7.46 8.88c0-1.31.32-2.54.88-3.63a8.479 8.479 0 0 0-3.88 7.13c0 2.52 1.1 4.77 2.84 6.33L5 21h8v-8l-2.3 2.3c-1.96-1.46-3.24-3.78-3.24-6.42z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/wifi_tethering.svg b/html/matt-chat/uswds/img/material-icons/wifi_tethering.svg
new file mode 100644
index 0000000..f16f282
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/wifi_tethering.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 11c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm6 2c0-3.31-2.69-6-6-6s-6 2.69-6 6c0 2.22 1.21 4.15 3 5.19l1-1.74c-1.19-.7-2-1.97-2-3.45 0-2.21 1.79-4 4-4s4 1.79 4 4c0 1.48-.81 2.75-2 3.45l1 1.74c1.79-1.04 3-2.97 3-5.19zM12 3C6.48 3 2 7.48 2 13c0 3.7 2.01 6.92 4.99 8.65l1-1.73C5.61 18.53 4 15.96 4 13c0-4.42 3.58-8 8-8s8 3.58 8 8c0 2.96-1.61 5.53-4 6.92l1 1.73c2.99-1.73 5-4.95 5-8.65 0-5.52-4.48-10-10-10z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/wifi_tethering_error.svg b/html/matt-chat/uswds/img/material-icons/wifi_tethering_error.svg
new file mode 100644
index 0000000..1b2b51a
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/wifi_tethering_error.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 7c-3.31 0-6 2.69-6 6 0 1.66.68 3.15 1.76 4.24l1.42-1.42A3.934 3.934 0 0 1 8 13c0-2.21 1.79-4 4-4s4 1.79 4 4c0 1.11-.45 2.1-1.18 2.82l1.42 1.42A6.003 6.003 0 0 0 18 13c0-3.31-2.69-6-6-6zm0-4C6.48 3 2 7.48 2 13c0 2.76 1.12 5.26 2.93 7.07l1.42-1.42A7.94 7.94 0 0 1 4 13c0-4.42 3.58-8 8-8 2.53 0 4.78 1.17 6.24 3h2.42C18.93 5.01 15.7 3 12 3zm0 8c-1.1 0-2 .9-2 2 0 .55.23 1.05.59 1.41.36.36.86.59 1.41.59s1.05-.23 1.41-.59c.36-.36.59-.86.59-1.41 0-1.1-.9-2-2-2zm8-1h2v6h-2v-6zm0 8h2v2h-2v-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/wifi_tethering_off.svg b/html/matt-chat/uswds/img/material-icons/wifi_tethering_off.svg
new file mode 100644
index 0000000..e1893e4
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/wifi_tethering_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M2.81 2.81 1.39 4.22l2.69 2.69A9.958 9.958 0 0 0 2 13c0 2.76 1.12 5.26 2.93 7.07l1.42-1.42a7.957 7.957 0 0 1-.84-10.31l1.43 1.43a6.003 6.003 0 0 0 .82 7.47l1.42-1.42A3.934 3.934 0 0 1 8 13c0-.63.15-1.23.41-1.76l1.61 1.61c0 .05-.02.1-.02.15 0 .55.23 1.05.59 1.41.36.36.86.59 1.41.59.05 0 .1-.01.16-.02l7.62 7.62 1.41-1.41L2.81 2.81zM17.7 14.87c.19-.59.3-1.22.3-1.87 0-3.31-2.69-6-6-6-.65 0-1.28.1-1.87.3l1.71 1.71C11.89 9 11.95 9 12 9c2.21 0 4 1.79 4 4 0 .05 0 .11-.01.16l1.71 1.71zM12 5c4.42 0 8 3.58 8 8 0 1.22-.27 2.37-.77 3.4l1.49 1.49A9.953 9.953 0 0 0 22 13c0-5.52-4.48-10-10-10-1.78 0-3.44.46-4.89 1.28l1.48 1.48C9.63 5.27 10.78 5 12 5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/wind_power.svg b/html/matt-chat/uswds/img/material-icons/wind_power.svg
new file mode 100644
index 0000000..7f470f6
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/wind_power.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M4 3h6v2H4zM1 7h5v2H1zm2 12h5v2H3zm10.73-8.39c.75.23 1.3.78 1.57 1.46l4.27-7.11a2.28 2.28 0 0 0-3.51-2.84l-3.43 3.21c-.4.37-.63.9-.63 1.45v3.93c.36-.15.98-.33 1.73-.1zm-3.12 1.66c.16-.52.48-.96.89-1.27H3.28a2.279 2.279 0 0 0-.63 4.47l4.51 1.29c.53.15 1.1.08 1.58-.21l2.69-1.61a2.487 2.487 0 0 1-.82-2.67zm11.6 6.34-2.28-4.1a2.05 2.05 0 0 0-1.26-.97l-3.18-.8c.03.32 0 .66-.1.99A2.478 2.478 0 0 1 13 15.5c-.61 0-.99-.22-1-.22V21c-1.1 0-2 .9-2 2h6c0-1.1-.9-2-2-2v-4.28l4.61 4.61c.89.89 2.33.89 3.22 0 .72-.72.88-1.83.38-2.72z"/><path d="M12.56 14.43c.79.24 1.63-.2 1.87-1 .24-.79-.2-1.63-1-1.87-.79-.24-1.63.2-1.87 1-.24.79.21 1.63 1 1.87z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/window.svg b/html/matt-chat/uswds/img/material-icons/window.svg
new file mode 100644
index 0000000..cc4aeb5
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/window.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11 11V3H5c-1.1 0-2 .9-2 2v6h8zm2 0h8V5c0-1.1-.9-2-2-2h-6v8zm-2 2H3v6c0 1.1.9 2 2 2h6v-8zm2 0v8h6c1.1 0 2-.9 2-2v-6h-8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/wine_bar.svg b/html/matt-chat/uswds/img/material-icons/wine_bar.svg
new file mode 100644
index 0000000..6fa52dd
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/wine_bar.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M6 3v6c0 2.97 2.16 5.43 5 5.91V19H8v2h8v-2h-3v-4.09c2.84-.48 5-2.94 5-5.91V3H6zm10 5H8V5h8v3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/woman.svg b/html/matt-chat/uswds/img/material-icons/woman.svg
new file mode 100644
index 0000000..461850d
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/woman.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13.94 8.31C13.62 7.52 12.85 7 12 7s-1.62.52-1.94 1.31L7 16h3v6h4v-6h3l-3.06-7.69z"/><circle cx="12" cy="4" r="2"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/woman_2.svg b/html/matt-chat/uswds/img/material-icons/woman_2.svg
new file mode 100644
index 0000000..55e19dd
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/woman_2.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13.94 8.31C13.62 7.52 12.85 7 12 7s-1.62.52-1.94 1.31L7 16h3.5v6h3v-6H17l-3.06-7.69z"/><circle cx="12" cy="4" r="2"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/work.svg b/html/matt-chat/uswds/img/material-icons/work.svg
new file mode 100644
index 0000000..ac4f81c
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/work.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 6h-4V4c0-1.11-.89-2-2-2h-4c-1.11 0-2 .89-2 2v2H4c-1.11 0-1.99.89-1.99 2L2 19c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2zm-6 0h-4V4h4v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/work_history.svg b/html/matt-chat/uswds/img/material-icons/work_history.svg
new file mode 100644
index 0000000..31ca62b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/work_history.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 11c1.49 0 2.87.47 4 1.26V8c0-1.11-.89-2-2-2h-4V4c0-1.11-.89-2-2-2h-4c-1.11 0-2 .89-2 2v2H4c-1.11 0-1.99.89-1.99 2L2 19c0 1.11.89 2 2 2h7.68A6.995 6.995 0 0 1 18 11zm-8-7h4v2h-4V4z"/><path d="M18 13c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5zm1.65 7.35L17.5 18.2V15h1v2.79l1.85 1.85-.7.71z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/work_off.svg b/html/matt-chat/uswds/img/material-icons/work_off.svg
new file mode 100644
index 0000000..5684b44
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/work_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m23 21.74-1.46-1.46L7.21 5.95 3.25 1.99 1.99 3.25l2.7 2.7h-.64c-1.11 0-1.99.89-1.99 2l-.01 11c0 1.11.89 2 2 2h15.64L21.74 23 23 21.74zM22 7.95c.05-1.11-.84-2-1.95-1.95h-4V3.95c0-1.11-.89-2-2-1.95h-4c-1.11-.05-2 .84-2 1.95v.32l13.95 14V7.95zM14.05 6H10V3.95h4.05V6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/work_outline.svg b/html/matt-chat/uswds/img/material-icons/work_outline.svg
new file mode 100644
index 0000000..34debf7
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/work_outline.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill-rule="evenodd" d="M14 6V4h-4v2h4zM4 8v11h16V8H4zm16-2c1.11 0 2 .89 2 2v11c0 1.11-.89 2-2 2H4c-1.11 0-2-.89-2-2l.01-11c0-1.11.88-2 1.99-2h4V4c0-1.11.89-2 2-2h4c1.11 0 2 .89 2 2v2h4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/workspace_premium.svg b/html/matt-chat/uswds/img/material-icons/workspace_premium.svg
new file mode 100644
index 0000000..cdcbc31
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/workspace_premium.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M9.68 13.69 12 11.93l2.31 1.76-.88-2.85L15.75 9h-2.84L12 6.19 11.09 9H8.25l2.31 1.84-.88 2.85zM20 10c0-4.42-3.58-8-8-8s-8 3.58-8 8c0 2.03.76 3.87 2 5.28V23l6-2 6 2v-7.72A7.96 7.96 0 0 0 20 10zm-8-6c3.31 0 6 2.69 6 6s-2.69 6-6 6-6-2.69-6-6 2.69-6 6-6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/workspaces.svg b/html/matt-chat/uswds/img/material-icons/workspaces.svg
new file mode 100644
index 0000000..b315c9f
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/workspaces.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M6 13c-2.2 0-4 1.8-4 4s1.8 4 4 4 4-1.8 4-4-1.8-4-4-4zm6-10C9.8 3 8 4.8 8 7s1.8 4 4 4 4-1.8 4-4-1.8-4-4-4zm6 10c-2.2 0-4 1.8-4 4s1.8 4 4 4 4-1.8 4-4-1.8-4-4-4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/wrap_text.svg b/html/matt-chat/uswds/img/material-icons/wrap_text.svg
new file mode 100644
index 0000000..3e11084
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/wrap_text.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3 3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/wrong_location.svg b/html/matt-chat/uswds/img/material-icons/wrong_location.svg
new file mode 100644
index 0000000..debf427
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/wrong_location.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M14 10V3.26c-.65-.17-1.32-.26-2-.26-4.2 0-8 3.22-8 8.2 0 3.32 2.67 7.25 8 11.8 5.33-4.55 8-8.48 8-11.8 0-.41-.04-.81-.09-1.2H14zm-2 3c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z"/><path d="m22.54 2.88-1.42-1.42L19 3.59l-2.12-2.13-1.42 1.42L17.59 5l-2.13 2.12 1.42 1.42L19 6.41l2.12 2.13 1.42-1.42L20.41 5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/wysiwyg.svg b/html/matt-chat/uswds/img/material-icons/wysiwyg.svg
new file mode 100644
index 0000000..7a6ae94
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/wysiwyg.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2V5a2 2 0 0 0-2-2zm0 16H5V7h14v12zm-2-7H7v-2h10v2zm-4 4H7v-2h6v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/yard.svg b/html/matt-chat/uswds/img/material-icons/yard.svg
new file mode 100644
index 0000000..a7f292b
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/yard.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM8 8.22a1.562 1.562 0 0 1 2.45-1.28l-.01-.12c0-.86.7-1.56 1.56-1.56s1.56.7 1.56 1.56l-.01.12A1.562 1.562 0 0 1 16 8.22c0 .62-.37 1.16-.89 1.4.52.25.89.79.89 1.41 0 .86-.7 1.56-1.56 1.56-.33 0-.64-.11-.89-.28l.01.12c0 .86-.7 1.56-1.56 1.56s-1.56-.7-1.56-1.56l.01-.12A1.562 1.562 0 0 1 8 11.03c0-.62.37-1.16.89-1.4C8.37 9.38 8 8.84 8 8.22zM12 19c-3.31 0-6-2.69-6-6 3.31 0 6 2.69 6 6 0-3.31 2.69-6 6-6 0 3.31-2.69 6-6 6z"/><circle cx="12" cy="9.62" r="1.56"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/youtube_searched_for.svg b/html/matt-chat/uswds/img/material-icons/youtube_searched_for.svg
new file mode 100644
index 0000000..4734a38
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/youtube_searched_for.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17.01 14h-.8l-.27-.27a6.451 6.451 0 0 0 1.57-4.23c0-3.59-2.91-6.5-6.5-6.5s-6.5 3-6.5 6.5H2l3.84 4 4.16-4H6.51a4.5 4.5 0 0 1 9 0 4.507 4.507 0 0 1-6.32 4.12L7.71 15.1a6.474 6.474 0 0 0 7.52-.67l.27.27v.79l5.01 4.99L22 19l-4.99-5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/zoom_in.svg b/html/matt-chat/uswds/img/material-icons/zoom_in.svg
new file mode 100644
index 0000000..0c257ee
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/zoom_in.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15.5 14h-.79l-.28-.27A6.471 6.471 0 0 0 16 9.5 6.5 6.5 0 1 0 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"/><path d="M12 10h-2v2H9v-2H7V9h2V7h1v2h2v1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/zoom_in_map.svg b/html/matt-chat/uswds/img/material-icons/zoom_in_map.svg
new file mode 100644
index 0000000..b71314f
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/zoom_in_map.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M9 9V3H7v2.59L3.91 2.5 2.5 3.91 5.59 7H3v2h6zm12 0V7h-2.59l3.09-3.09-1.41-1.41L17 5.59V3h-2v6h6zM3 15v2h2.59L2.5 20.09l1.41 1.41L7 18.41V21h2v-6H3zm12 0v6h2v-2.59l3.09 3.09 1.41-1.41L18.41 17H21v-2h-6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/zoom_out.svg b/html/matt-chat/uswds/img/material-icons/zoom_out.svg
new file mode 100644
index 0000000..b511470
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/zoom_out.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15.5 14h-.79l-.28-.27A6.471 6.471 0 0 0 16 9.5 6.5 6.5 0 1 0 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14zM7 9h5v1H7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/material-icons/zoom_out_map.svg b/html/matt-chat/uswds/img/material-icons/zoom_out_map.svg
new file mode 100644
index 0000000..c8c76b2
--- /dev/null
+++ b/html/matt-chat/uswds/img/material-icons/zoom_out_map.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m15 3 2.3 2.3-2.89 2.87 1.42 1.42L18.7 6.7 21 9V3h-6zM3 9l2.3-2.3 2.87 2.89 1.42-1.42L6.7 5.3 9 3H3v6zm6 12-2.3-2.3 2.89-2.87-1.42-1.42L5.3 17.3 3 15v6h6zm12-6-2.3 2.3-2.87-2.89-1.42 1.42 2.89 2.87L15 21h6v-6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/sprite.svg b/html/matt-chat/uswds/img/sprite.svg
new file mode 100644
index 0000000..4670218
--- /dev/null
+++ b/html/matt-chat/uswds/img/sprite.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><symbol id="accessibility_new" viewBox="0 0 24 24"><path d="M20.5 6c-2.61.7-5.67 1-8.5 1s-5.89-.3-8.5-1L3 8c1.86.5 4 .83 6 1v13h2v-6h2v6h2V9c2-.17 4.14-.5 6-1l-.5-2zM12 6c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2z"/></symbol><symbol id="accessible_forward" viewBox="0 0 24 24"><circle cx="17" cy="4.54" r="2"/><path d="M14 17h-2c0 1.65-1.35 3-3 3s-3-1.35-3-3 1.35-3 3-3v-2c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5zm3-3.5h-1.86l1.67-3.67C17.42 8.5 16.44 7 14.96 7h-5.2c-.81 0-1.54.47-1.87 1.2L7.22 10l1.92.53L9.79 9H12l-1.83 4.1c-.6 1.33.39 2.9 1.85 2.9H17v5h2v-5.5c0-1.1-.9-2-2-2z"/></symbol><symbol id="account_balance" viewBox="0 0 24 24"><path d="M4 10h3v7H4zm6.5 0h3v7h-3zM2 19h20v3H2zm15-9h3v7h-3zm-5-9L2 6v2h20V6z"/></symbol><symbol id="account_box" viewBox="0 0 24 24"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 3c1.93 0 3.5 1.57 3.5 3.5S13.93 13 12 13s-3.5-1.57-3.5-3.5S10.07 6 12 6zm7 13H5v-.23c0-.62.28-1.2.76-1.58C7.47 15.82 9.64 15 12 15s4.53.82 6.24 2.19c.48.38.76.97.76 1.58V19z"/></symbol><symbol id="account_circle" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 4c1.93 0 3.5 1.57 3.5 3.5S13.93 13 12 13s-3.5-1.57-3.5-3.5S10.07 6 12 6zm0 14c-2.03 0-4.43-.82-6.14-2.88a9.947 9.947 0 0 1 12.28 0C16.43 19.18 14.03 20 12 20z"/></symbol><symbol id="add" viewBox="0 0 24 24"><path d="M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"/></symbol><symbol id="add_circle" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm5 11h-4v4h-2v-4H7v-2h4V7h2v4h4v2z"/></symbol><symbol id="add_circle_outline" viewBox="0 0 24 24"><path d="M13 7h-2v4H7v2h4v4h2v-4h4v-2h-4V7zm-1-5C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"/></symbol><symbol id="alarm" viewBox="0 0 24 24"><path d="m22 5.72-4.6-3.86-1.29 1.53 4.6 3.86L22 5.72zM7.88 3.39 6.6 1.86 2 5.71l1.29 1.53 4.59-3.85zM12.5 8H11v6l4.75 2.85.75-1.23-4-2.37V8zM12 4c-4.97 0-9 4.03-9 9s4.02 9 9 9a9 9 0 0 0 0-18zm0 16c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z"/></symbol><symbol id="alternate_email" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10h5v-2h-5c-4.34 0-8-3.66-8-8s3.66-8 8-8 8 3.66 8 8v1.43c0 .79-.71 1.57-1.5 1.57s-1.5-.78-1.5-1.57V12c0-2.76-2.24-5-5-5s-5 2.24-5 5 2.24 5 5 5c1.38 0 2.64-.56 3.54-1.47.65.89 1.77 1.47 2.96 1.47 1.97 0 3.5-1.6 3.5-3.57V12c0-5.52-4.48-10-10-10zm0 13c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3z"/></symbol><symbol id="announcement" viewBox="0 0 24 24"><path d="M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-7 9h-2V5h2v6zm0 4h-2v-2h2v2z"/></symbol><symbol id="api" viewBox="0 0 24 24"><path d="m14 12-2 2-2-2 2-2 2 2zm-2-6 2.12 2.12 2.5-2.5L12 1 7.38 5.62l2.5 2.5L12 6zm-6 6 2.12-2.12-2.5-2.5L1 12l4.62 4.62 2.5-2.5L6 12zm12 0-2.12 2.12 2.5 2.5L23 12l-4.62-4.62-2.5 2.5L18 12zm-6 6-2.12-2.12-2.5 2.5L12 23l4.62-4.62-2.5-2.5L12 18z"/></symbol><symbol id="arrow_back" viewBox="0 0 24 24"><path d="M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z"/></symbol><symbol id="arrow_downward" viewBox="0 0 24 24"><path d="m20 12-1.41-1.41L13 16.17V4h-2v12.17l-5.58-5.59L4 12l8 8 8-8z"/></symbol><symbol id="arrow_drop_down" viewBox="0 0 24 24"><path d="m7 10 5 5 5-5z"/></symbol><symbol id="arrow_drop_up" viewBox="0 0 24 24"><path d="m7 14 5-5 5 5z"/></symbol><symbol id="arrow_forward" viewBox="0 0 24 24"><path d="m12 4-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8z"/></symbol><symbol id="arrow_upward" viewBox="0 0 24 24"><path d="m4 12 1.41 1.41L11 7.83V20h2V7.83l5.58 5.59L20 12l-8-8-8 8z"/></symbol><symbol id="assessment" viewBox="0 0 24 24"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z"/></symbol><symbol id="attach_file" viewBox="0 0 24 24"><path d="M16.5 6v11.5c0 2.21-1.79 4-4 4s-4-1.79-4-4V5a2.5 2.5 0 0 1 5 0v10.5c0 .55-.45 1-1 1s-1-.45-1-1V6H10v9.5a2.5 2.5 0 0 0 5 0V5c0-2.21-1.79-4-4-4S7 2.79 7 5v12.5c0 3.04 2.46 5.5 5.5 5.5s5.5-2.46 5.5-5.5V6h-1.5z"/></symbol><symbol id="attach_money" viewBox="0 0 24 24"><path d="M11.8 10.9c-2.27-.59-3-1.2-3-2.15 0-1.09 1.01-1.85 2.7-1.85 1.78 0 2.44.85 2.5 2.1h2.21c-.07-1.72-1.12-3.3-3.21-3.81V3h-3v2.16c-1.94.42-3.5 1.68-3.5 3.61 0 2.31 1.91 3.46 4.7 4.13 2.5.6 3 1.48 3 2.41 0 .69-.49 1.79-2.7 1.79-2.06 0-2.87-.92-2.98-2.1h-2.2c.12 2.19 1.76 3.42 3.68 3.83V21h3v-2.15c1.95-.37 3.5-1.5 3.5-3.55 0-2.84-2.43-3.81-4.7-4.4z"/></symbol><symbol id="autorenew" viewBox="0 0 24 24"><path d="M12 6v3l4-4-4-4v3c-4.42 0-8 3.58-8 8 0 1.57.46 3.03 1.24 4.26L6.7 14.8A5.87 5.87 0 0 1 6 12c0-3.31 2.69-6 6-6zm6.76 1.74L17.3 9.2c.44.84.7 1.79.7 2.8 0 3.31-2.69 6-6 6v-3l-4 4 4 4v-3c4.42 0 8-3.58 8-8 0-1.57-.46-3.03-1.24-4.26z"/></symbol><symbol id="backpack" viewBox="0 0 24 24"><path d="M20 8v12c0 1.1-.9 2-2 2H6c-1.1 0-2-.9-2-2V8c0-1.86 1.28-3.41 3-3.86V2h3v2h4V2h3v2.14c1.72.45 3 2 3 3.86zM6 12v2h10v2h2v-4H6z"/></symbol><symbol id="bathtub" viewBox="0 0 24 24"><circle cx="7" cy="7" r="2"/><path d="M20 13V4.83C20 3.27 18.73 2 17.17 2c-.75 0-1.47.3-2 .83l-1.25 1.25c-.16-.05-.33-.08-.51-.08-.4 0-.77.12-1.08.32l2.76 2.76c.2-.31.32-.68.32-1.08 0-.18-.03-.34-.07-.51l1.25-1.25a.828.828 0 0 1 1.41.59V13h-6.85c-.3-.21-.57-.45-.82-.72l-1.4-1.55c-.19-.21-.43-.38-.69-.5A2.251 2.251 0 0 0 5 12.25V13H2v6c0 1.1.9 2 2 2 0 .55.45 1 1 1h14c.55 0 1-.45 1-1 1.1 0 2-.9 2-2v-6h-2z"/></symbol><symbol id="bedding" viewBox="0 0 24 24"><path d="M17 10.13a33.86 33.86 0 0 1-10 0 1.92 1.92 0 0 1-1.51-1.46 10.42 10.42 0 0 1 0-4.84 1.92 1.92 0 0 1 1.57-1.46 33.86 33.86 0 0 1 10 0 1.9 1.9 0 0 1 1.56 1.46 10.16 10.16 0 0 1 0 4.84A1.9 1.9 0 0 1 17 10.13Zm4 12.12H7a5.25 5.25 0 0 1 0-10.5h10a3.25 3.25 0 0 1 0 6.5H7a1.25 1.25 0 0 1 0-2.5h10a.75.75 0 0 0 0-1.5H7a2.75 2.75 0 0 0 0 5.5h14a1.25 1.25 0 0 1 0 2.5Z"/></symbol><symbol id="bookmark" viewBox="0 0 24 24"><path d="M17 3H7c-1.1 0-1.99.9-1.99 2L5 21l7-3 7 3V5c0-1.1-.9-2-2-2z"/></symbol><symbol id="bug_report" viewBox="0 0 24 24"><path d="M20 8h-2.81a5.985 5.985 0 0 0-1.82-1.96L17 4.41 15.59 3l-2.17 2.17C12.96 5.06 12.49 5 12 5c-.49 0-.96.06-1.41.17L8.41 3 7 4.41l1.62 1.63C7.88 6.55 7.26 7.22 6.81 8H4v2h2.09c-.05.33-.09.66-.09 1v1H4v2h2v1c0 .34.04.67.09 1H4v2h2.81c1.04 1.79 2.97 3 5.19 3s4.15-1.21 5.19-3H20v-2h-2.09c.05-.33.09-.66.09-1v-1h2v-2h-2v-1c0-.34-.04-.67-.09-1H20V8zm-6 8h-4v-2h4v2zm0-4h-4v-2h4v2z"/></symbol><symbol id="build" viewBox="0 0 24 24"><path d="m22.7 19-9.1-9.1c.9-2.3.4-5-1.5-6.9-2-2-5-2.4-7.4-1.3L9 6 6 9 1.6 4.7C.4 7.1.9 10.1 2.9 12.1c1.9 1.9 4.6 2.4 6.9 1.5l9.1 9.1c.4.4 1 .4 1.4 0l2.3-2.3c.5-.4.5-1.1.1-1.4z"/></symbol><symbol id="calendar_today" viewBox="0 0 24 24"><path d="M20 3h-1V1h-2v2H7V1H5v2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 18H4V8h16v13z"/></symbol><symbol id="campaign" viewBox="0 0 24 24"><path d="M18 11v2h4v-2h-4zm-2 6.61c.96.71 2.21 1.65 3.2 2.39.4-.53.8-1.07 1.2-1.6-.99-.74-2.24-1.68-3.2-2.4-.4.54-.8 1.08-1.2 1.61zM20.4 5.6c-.4-.53-.8-1.07-1.2-1.6-.99.74-2.24 1.68-3.2 2.4.4.53.8 1.07 1.2 1.6.96-.72 2.21-1.65 3.2-2.4zM4 9c-1.1 0-2 .9-2 2v2c0 1.1.9 2 2 2h1v4h2v-4h1l5 3V6L8 9H4zm11.5 3c0-1.33-.58-2.53-1.5-3.35v6.69c.92-.81 1.5-2.01 1.5-3.34z"/></symbol><symbol id="camping" viewBox="0 0 24 24"><path fill-rule="evenodd" d="m12 5 8 13h2v2H2v-2h2l8-13zm.05 8-2.69 5h5.38l-2.69-5zM5.5 3l-.018.024A2.5 2.5 0 0 0 7.498 7 2.5 2.5 0 1 1 5.5 3z"/></symbol><symbol id="cancel" viewBox="0 0 24 24"><path d="M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z"/></symbol><symbol id="chat" viewBox="0 0 24 24"><path d="M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM6 9h12v2H6V9zm8 5H6v-2h8v2zm4-6H6V6h12v2z"/></symbol><symbol id="check" viewBox="0 0 24 24"><path d="M9 16.17 4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"/></symbol><symbol id="check_box_outline_blank" viewBox="0 0 24 24"><path d="M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"/></symbol><symbol id="check_circle" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"/></symbol><symbol id="check_circle_outline" viewBox="0 0 24 24"><path d="M16.59 7.58 10 14.17l-3.59-3.58L5 12l5 5 8-8zM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"/></symbol><symbol id="checkroom" viewBox="0 0 24 24"><path d="M21.6 18.2 13 11.75v-.91a3.496 3.496 0 0 0-.18-6.75A3.51 3.51 0 0 0 8.5 7.5h2c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5c0 .84-.69 1.52-1.53 1.5-.54-.01-.97.45-.97.99v1.76L2.4 18.2c-.77.58-.36 1.8.6 1.8h18c.96 0 1.37-1.22.6-1.8zM6 18l6-4.5 6 4.5H6z"/></symbol><symbol id="chevron_left" viewBox="0 0 24 24"><path d="M0 0h24v24H0z" fill="none"/><path d="M15.41 7.41 14 6l-6 6 6 6 1.41-1.41L10.83 12z"/></symbol><symbol id="chevron_right" viewBox="0 0 24 24"><path d="M0 0h24v24H0z" fill="none"/><path d="M10 6 8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/></symbol><symbol id="clean_hands" viewBox="0 0 24 24"><path d="m16.99 5 .63 1.37 1.37.63-1.37.63L16.99 9l-.63-1.37L14.99 7l1.37-.63.63-1.37M11 6.13V4h2c.57 0 1.1.17 1.55.45l1.43-1.43A4.899 4.899 0 0 0 13 2H7.5v2H9v2.14A5.007 5.007 0 0 0 5.26 9.5h3.98L15 11.65v-.62a5 5 0 0 0-4-4.9zM1 22h4V11H1v11zm19-5h-7l-2.09-.73.33-.94L13 16h2.82c.65 0 1.18-.53 1.18-1.18 0-.49-.31-.93-.77-1.11L8.97 11H7v9.02L14 22l8-3c-.01-1.1-.89-2-2-2zm0-3c1.1 0 2-.9 2-2s-2-4-2-4-2 2.9-2 4 .9 2 2 2z"/></symbol><symbol id="close" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></symbol><symbol id="closed_caption" viewBox="0 0 24 24"><path d="M19 4H5a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-8 7H9.5v-.5h-2v3h2V13H11v1c0 .55-.45 1-1 1H7c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1h3c.55 0 1 .45 1 1v1zm7 0h-1.5v-.5h-2v3h2V13H18v1c0 .55-.45 1-1 1h-3c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1h3c.55 0 1 .45 1 1v1z"/></symbol><symbol id="clothes" viewBox="0 0 24 24"><path d="M15.7 2.37 15 2.3V4a3 3 0 0 1-6 0V2.3l-.7.07a7 7 0 0 0-6.3 7V20h3V10h1.5v12h11V10H19v10h3V9.33a7 7 0 0 0-6.3-6.96Z"/></symbol><symbol id="cloud" viewBox="0 0 24 24"><path d="M19.35 10.04A7.49 7.49 0 0 0 12 4C9.11 4 6.6 5.64 5.35 8.04A5.994 5.994 0 0 0 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96z"/></symbol><symbol id="code" viewBox="0 0 24 24"><path d="M9.4 16.6 4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0 4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z"/></symbol><symbol id="comment" viewBox="0 0 24 24"><path d="M21.99 4c0-1.1-.89-2-1.99-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h14l4 4-.01-18zM18 14H6v-2h12v2zm0-3H6V9h12v2zm0-3H6V6h12v2z"/></symbol><symbol id="connect_without_contact" viewBox="0 0 24 24"><path d="M11 14H9a9 9 0 0 1 9-9v2c-3.87 0-7 3.13-7 7zm7-3V9c-2.76 0-5 2.24-5 5h2c0-1.66 1.34-3 3-3zM7 4c0-1.11-.89-2-2-2s-2 .89-2 2 .89 2 2 2 2-.89 2-2zm4.45.5h-2A2.99 2.99 0 0 1 6.5 7h-3C2.67 7 2 7.67 2 8.5V11h6V8.74a4.97 4.97 0 0 0 3.45-4.24zM19 17c1.11 0 2-.89 2-2s-.89-2-2-2-2 .89-2 2 .89 2 2 2zm1.5 1h-3a2.99 2.99 0 0 1-2.95-2.5h-2A4.97 4.97 0 0 0 16 19.74V22h6v-2.5c0-.83-.67-1.5-1.5-1.5z"/></symbol><symbol id="construction" viewBox="0 0 24 24"><path d="m13.783 15.172 2.121-2.121 5.996 5.996-2.121 2.121zM17.5 10c1.93 0 3.5-1.57 3.5-3.5 0-.58-.16-1.12-.41-1.6l-2.7 2.7-1.49-1.49 2.7-2.7c-.48-.25-1.02-.41-1.6-.41C15.57 3 14 4.57 14 6.5c0 .41.08.8.21 1.16l-1.85 1.85-1.78-1.78.71-.71-1.41-1.41L12 3.49a3 3 0 0 0-4.24 0L4.22 7.03l1.41 1.41H2.81l-.71.71 3.54 3.54.71-.71V9.15l1.41 1.41.71-.71 1.78 1.78-7.41 7.41 2.12 2.12L16.34 9.79c.36.13.75.21 1.16.21z"/></symbol><symbol id="construction_worker" viewBox="0 0 24 24"><circle cx="10.5" cy="4.5" r="1.5"/><path d="M19.59 16h-1.27l-.64.71h-1.27L15.14 21h1.27l.64-.71h1.9l.64.71h1.27l-1.27-5zm-5.21-3.28L14 14.19l-3.8-1.26-.1-.16.52-3.13c.93 1.37 2.15 2.11 4.6 2.11v-1.5c-2.44 0-3.09-.77-3.9-2.39a2.65 2.65 0 0 0-3-1.59L3.75 7.41v3.38l-1.51-.5-.48 1.42 4.35 1.45L5 20.86l2 .28 1-7.34.38.13L10 16.3V21h2v-5.3l-.49-.7 2 .67-.37 1.27 1.91.57 1.24-4.19Zm-9.13-1.43v-2.7l1.57-.4-.49 3.46Z"/></symbol><symbol id="contact_page" viewBox="0 0 24 24"><path d="M14 2H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V8l-6-6zm-2 8c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2zm4 8H8v-.57c0-.81.48-1.53 1.22-1.85a6.95 6.95 0 0 1 5.56 0A2.01 2.01 0 0 1 16 17.43V18z"/></symbol><symbol id="content_copy" viewBox="0 0 24 24"><path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/></symbol><symbol id="coronavirus" viewBox="0 0 24 24"><path d="M21.25 10.5c-.41 0-.75.34-.75.75h-1.54a6.978 6.978 0 0 0-1.52-3.65l1.09-1.09.01.01c.29.29.77.29 1.06 0s.29-.77 0-1.06L18.54 4.4a.754.754 0 0 0-1.06 0c-.29.29-.29.76-.01 1.05l-1.09 1.09a7.015 7.015 0 0 0-3.64-1.51V3.5h.01c.41 0 .75-.34.75-.75S13.16 2 12.75 2h-1.5c-.41 0-.75.34-.75.75s.33.74.74.75v1.55c-1.37.14-2.62.69-3.64 1.51L6.51 5.47l.01-.01c.29-.29.29-.77 0-1.06a.754.754 0 0 0-1.06 0L4.4 5.46c-.29.29-.29.77 0 1.06.29.29.76.29 1.05.01l1.09 1.09a6.89 6.89 0 0 0-1.5 3.63H3.5c0-.41-.34-.75-.75-.75s-.75.34-.75.75v1.5c0 .41.34.75.75.75s.75-.34.75-.75h1.54c.15 1.37.69 2.61 1.5 3.63l-1.09 1.09a.742.742 0 0 0-1.05.01c-.29.29-.29.77 0 1.06l1.06 1.06c.29.29.77.29 1.06 0 .29-.29.29-.77 0-1.06l-.01-.01 1.09-1.09c1.02.82 2.26 1.36 3.63 1.51v1.55c-.41.01-.74.34-.74.75s.34.75.75.75h1.5c.41 0 .75-.34.75-.75s-.34-.75-.75-.75h-.01v-1.54c1.37-.14 2.62-.69 3.64-1.51l1.09 1.09c-.29.29-.28.76.01 1.05.29.29.77.29 1.06 0l1.06-1.06c.29-.29.29-.77 0-1.06a.754.754 0 0 0-1.06 0l-.01.01-1.09-1.09a7.025 7.025 0 0 0 1.52-3.65h1.54c0 .41.34.75.75.75s.75-.34.75-.75v-1.5c.01-.4-.33-.74-.74-.74zM13.75 8c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zM12 13c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm-1.75-5c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zM8.5 13c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm1.75 3c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm3.5 0c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm.75-4c0-.55.45-1 1-1s1 .45 1 1-.45 1-1 1-1-.45-1-1z"/></symbol><symbol id="credit_card" viewBox="0 0 24 24"><path d="M20 4H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V6c0-1.11-.89-2-2-2zm0 14H4v-6h16v6zm0-10H4V6h16v2z"/></symbol><symbol id="deck" viewBox="0 0 24 24"><path d="M22 9 12 2 2 9h9v13h2V9z"/><path d="m4.14 12-1.96.37.82 4.37V22h2l.02-4H7v4h2v-6H4.9zm14.96 4H15v6h2v-4h1.98l.02 4h2v-5.26l.82-4.37-1.96-.37z"/></symbol><symbol id="delete" viewBox="0 0 24 24"><path d="M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z"/></symbol><symbol id="device_thermostat" viewBox="0 0 24 24"><path d="M15 13V5c0-1.66-1.34-3-3-3S9 3.34 9 5v8c-1.21.91-2 2.37-2 4 0 2.76 2.24 5 5 5s5-2.24 5-5c0-1.63-.79-3.09-2-4zm-4-8c0-.55.45-1 1-1s1 .45 1 1h-1v1h1v2h-1v1h1v2h-2V5z"/></symbol><symbol id="directions" viewBox="0 0 24 24"><path d="m21.41 10.59-7.99-8c-.78-.78-2.05-.78-2.83 0l-8.01 8c-.78.78-.78 2.05 0 2.83l8.01 8c.78.78 2.05.78 2.83 0l7.99-8c.79-.79.79-2.05 0-2.83zM13.5 14.5V12H10v3H8v-4c0-.55.45-1 1-1h4.5V7.5L17 11l-3.5 3.5z"/></symbol><symbol id="directions_bike" viewBox="0 0 24 24"><path d="M15.5 5.5c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zM5 12c-2.8 0-5 2.2-5 5s2.2 5 5 5 5-2.2 5-5-2.2-5-5-5zm0 8.5c-1.9 0-3.5-1.6-3.5-3.5s1.6-3.5 3.5-3.5 3.5 1.6 3.5 3.5-1.6 3.5-3.5 3.5zm5.8-10 2.4-2.4.8.8c1.3 1.3 3 2.1 5.1 2.1V9c-1.5 0-2.7-.6-3.6-1.5l-1.9-1.9c-.5-.4-1-.6-1.6-.6s-1.1.2-1.4.6L7.8 8.4c-.4.4-.6.9-.6 1.4 0 .6.2 1.1.6 1.4L11 14v5h2v-6.2l-2.2-2.3zM19 12c-2.8 0-5 2.2-5 5s2.2 5 5 5 5-2.2 5-5-2.2-5-5-5zm0 8.5c-1.9 0-3.5-1.6-3.5-3.5s1.6-3.5 3.5-3.5 3.5 1.6 3.5 3.5-1.6 3.5-3.5 3.5z"/></symbol><symbol id="directions_bus" viewBox="0 0 24 24"><path d="M4 16c0 .88.39 1.67 1 2.22V20c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1h8v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1.78c.61-.55 1-1.34 1-2.22V6c0-3.5-3.58-4-8-4s-8 .5-8 4v10zm3.5 1c-.83 0-1.5-.67-1.5-1.5S6.67 14 7.5 14s1.5.67 1.5 1.5S8.33 17 7.5 17zm9 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm1.5-6H6V6h12v5z"/></symbol><symbol id="directions_car" viewBox="0 0 24 24"><path d="M18.92 6.01C18.72 5.42 18.16 5 17.5 5h-11c-.66 0-1.21.42-1.42 1.01L3 12v8c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1h12v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-8l-2.08-5.99zM6.5 16c-.83 0-1.5-.67-1.5-1.5S5.67 13 6.5 13s1.5.67 1.5 1.5S7.33 16 6.5 16zm11 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zM5 11l1.5-4.5h11L19 11H5z"/></symbol><symbol id="directions_walk" viewBox="0 0 24 24"><path d="M13.5 5.5c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zM9.8 8.9 7 23h2.1l1.8-8 2.1 2v6h2v-7.5l-2.1-2 .6-3C14.8 12 16.8 13 19 13v-2c-1.9 0-3.5-1-4.3-2.4l-1-1.6c-.4-.6-1-1-1.7-1-.3 0-.5.1-.8.1L6 8.3V13h2V9.6l1.8-.7"/></symbol><symbol id="do_not_disturb" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8 0-1.85.63-3.55 1.69-4.9L16.9 18.31A7.902 7.902 0 0 1 12 20zm6.31-3.1L7.1 5.69A7.902 7.902 0 0 1 12 4c4.42 0 8 3.58 8 8 0 1.85-.63 3.55-1.69 4.9z"/></symbol><symbol id="do_not_touch" viewBox="0 0 24 24"><path d="m13 10.17-2.5-2.5V2.25a1.25 1.25 0 0 1 2.5 0v7.92zm7 2.58v-7.5a1.25 1.25 0 0 0-2.5 0V11h-1V3.25a1.25 1.25 0 0 0-2.5 0v7.92l6 6v-4.42zM9.5 4.25C9.5 3.56 8.94 3 8.25 3c-.67 0-1.2.53-1.24 1.18L9.5 6.67V4.25zm3.5 5.92-2.5-2.5V2.25a1.25 1.25 0 0 1 2.5 0v7.92zm7 2.58v-7.5a1.25 1.25 0 0 0-2.5 0V11h-1V3.25a1.25 1.25 0 0 0-2.5 0v7.92l6 6v-4.42zM9.5 4.25C9.5 3.56 8.94 3 8.25 3c-.67 0-1.2.53-1.24 1.18L9.5 6.67V4.25zm11.69 16.94L2.81 2.81 1.39 4.22l5.63 5.63L7 9.83v4.3c-1.11-.64-2.58-1.47-2.6-1.48-.17-.09-.34-.14-.54-.14-.26 0-.5.09-.7.26-.04.01-1.16 1.11-1.16 1.11l6.8 7.18c.57.6 1.35.94 2.18.94H17c.62 0 1.18-.19 1.65-.52l-.02-.02 1.15 1.15 1.41-1.42z"/></symbol><symbol id="drag_handle" viewBox="0 0 24 24"><path d="M20 9H4v2h16V9zM4 15h16v-2H4v2z"/></symbol><symbol id="eco" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M6.05 8.05a7.001 7.001 0 0 0-.02 9.88c1.47-3.4 4.09-6.24 7.36-7.93A15.952 15.952 0 0 0 8 19.32c2.6 1.23 5.8.78 7.95-1.37C19.43 14.47 20 4 20 4S9.53 4.57 6.05 8.05z"/></symbol><symbol id="edit" viewBox="0 0 24 24"><path d="M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04a.996.996 0 0 0 0-1.41l-2.34-2.34a.996.996 0 0 0-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z"/></symbol><symbol id="electrical_services" viewBox="0 0 24 24"><path d="M21 14c0-.55-.45-1-1-1h-2v2h2c.55 0 1-.45 1-1zm-1 3h-2v2h2c.55 0 1-.45 1-1s-.45-1-1-1zm-8-3h-2v4h2c0 1.1.9 2 2 2h3v-8h-3c-1.1 0-2 .9-2 2z"/><path d="M5 13c0-1.1.9-2 2-2h1.5c1.93 0 3.5-1.57 3.5-3.5S10.43 4 8.5 4H5c-.55 0-1 .45-1 1s.45 1 1 1h3.5c.83 0 1.5.67 1.5 1.5S9.33 9 8.5 9H7c-2.21 0-4 1.79-4 4s1.79 4 4 4h2v-2H7c-1.1 0-2-.9-2-2z"/></symbol><symbol id="emoji_events" viewBox="0 0 24 24"><path d="M19 5h-2V3H7v2H5c-1.1 0-2 .9-2 2v1c0 2.55 1.92 4.63 4.39 4.94A5.01 5.01 0 0 0 11 15.9V19H7v2h10v-2h-4v-3.1a5.01 5.01 0 0 0 3.61-2.96C19.08 12.63 21 10.55 21 8V7c0-1.1-.9-2-2-2zM5 8V7h2v3.82C5.84 10.4 5 9.3 5 8zm14 0c0 1.3-.84 2.4-2 2.82V7h2v1z"/></symbol><symbol id="error" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z"/></symbol><symbol id="error_outline" viewBox="0 0 24 24"><path d="M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"/></symbol><symbol id="event" viewBox="0 0 24 24"><path d="M17 12h-5v5h5v-5zM16 1v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2h-1V1h-2zm3 18H5V8h14v11z"/></symbol><symbol id="expand_less" viewBox="0 0 24 24"><path d="m12 8-6 6 1.41 1.41L12 10.83l4.59 4.58L18 14z"/></symbol><symbol id="expand_more" viewBox="0 0 24 24"><path d="M16.59 8.59 12 13.17 7.41 8.59 6 10l6 6 6-6z"/></symbol><symbol id="facebook" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M22 12c0-5.52-4.48-10-10-10S2 6.48 2 12c0 4.84 3.44 8.87 8 9.8V15H8v-3h2V9.5C10 7.57 11.57 6 13.5 6H16v3h-2c-.55 0-1 .45-1 1v2h3v3h-3v6.95c5.05-.5 9-4.76 9-9.95z"/></symbol><symbol id="fast_forward" viewBox="0 0 24 24"><path d="m4 18 8.5-6L4 6v12zm9-12v12l8.5-6L13 6z"/></symbol><symbol id="fast_rewind" viewBox="0 0 24 24"><path d="M11 18V6l-8.5 6 8.5 6zm.5-6 8.5 6V6l-8.5 6z"/></symbol><symbol id="favorite" viewBox="0 0 24 24"><path d="m12 21.35-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z"/></symbol><symbol id="favorite_border" viewBox="0 0 24 24"><path d="M16.5 3c-1.74 0-3.41.81-4.5 2.09C10.91 3.81 9.24 3 7.5 3 4.42 3 2 5.42 2 8.5c0 3.78 3.4 6.86 8.55 11.54L12 21.35l1.45-1.32C18.6 15.36 22 12.28 22 8.5 22 5.42 19.58 3 16.5 3zm-4.4 15.55-.1.1-.1-.1C7.14 14.24 4 11.39 4 8.5 4 6.5 5.5 5 7.5 5c1.54 0 3.04.99 3.57 2.36h1.87C13.46 5.99 14.96 5 16.5 5c2 0 3.5 1.5 3.5 3.5 0 2.89-3.14 5.74-7.9 10.05z"/></symbol><symbol id="fax" viewBox="0 0 24 24"><path d="M19 9h-1V4H8v16h14v-8c0-1.66-1.34-3-3-3zm-9-3h6v3h-6V6zm4 11h-4v-5h4v5zm2 0c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm0-3c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm3 3c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm0-3c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zM4.5 8A2.5 2.5 0 0 0 2 10.5v8a2.5 2.5 0 0 0 5 0v-8A2.5 2.5 0 0 0 4.5 8z"/></symbol><symbol id="file_download" viewBox="0 0 24 24"><path d="M19 9h-4V3H9v6H5l7 7 7-7zM5 18v2h14v-2H5z"/></symbol><symbol id="file_present" viewBox="0 0 24 24"><path d="M15 2H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V7l-5-5zM6 20V4h8v4h4v12H6zm10-10v5c0 2.21-1.79 4-4 4s-4-1.79-4-4V8.5a2.5 2.5 0 0 1 2.76-2.49c1.3.13 2.24 1.32 2.24 2.63V15h-2V8.5c0-.28-.22-.5-.5-.5s-.5.22-.5.5V15c0 1.1.9 2 2 2s2-.9 2-2v-5h2z"/></symbol><symbol id="file_upload" viewBox="0 0 24 24"><path d="M9 16h6v-6h4l-7-7-7 7h4zm-4 2h14v2H5z"/></symbol><symbol id="filter_alt" viewBox="0 0 24 24"><path d="M4.25 5.61C6.27 8.2 10 13 10 13v6c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-6s3.72-4.8 5.74-7.39A.998.998 0 0 0 18.95 4H5.04c-.83 0-1.3.95-.79 1.61z"/></symbol><symbol id="filter_list" viewBox="0 0 24 24"><path d="M10 18h4v-2h-4v2zM3 6v2h18V6H3zm3 7h12v-2H6v2z"/></symbol><symbol id="fingerprint" viewBox="0 0 24 24"><path d="M17.81 4.47c-.08 0-.16-.02-.23-.06C15.66 3.42 14 3 12.01 3c-1.98 0-3.86.47-5.57 1.41-.24.13-.54.04-.68-.2a.506.506 0 0 1 .2-.68C7.82 2.52 9.86 2 12.01 2c2.13 0 3.99.47 6.03 1.52.25.13.34.43.21.67a.49.49 0 0 1-.44.28zM3.5 9.72a.499.499 0 0 1-.41-.79c.99-1.4 2.25-2.5 3.75-3.27C9.98 4.04 14 4.03 17.15 5.65c1.5.77 2.76 1.86 3.75 3.25a.5.5 0 0 1-.12.7c-.23.16-.54.11-.7-.12a9.388 9.388 0 0 0-3.39-2.94c-2.87-1.47-6.54-1.47-9.4.01-1.36.7-2.5 1.7-3.4 2.96-.08.14-.23.21-.39.21zm6.25 12.07a.47.47 0 0 1-.35-.15c-.87-.87-1.34-1.43-2.01-2.64-.69-1.23-1.05-2.73-1.05-4.34 0-2.97 2.54-5.39 5.66-5.39s5.66 2.42 5.66 5.39c0 .28-.22.5-.5.5s-.5-.22-.5-.5c0-2.42-2.09-4.39-4.66-4.39-2.57 0-4.66 1.97-4.66 4.39 0 1.44.32 2.77.93 3.85.64 1.15 1.08 1.64 1.85 2.42.19.2.19.51 0 .71-.11.1-.24.15-.37.15zm7.17-1.85c-1.19 0-2.24-.3-3.1-.89-1.49-1.01-2.38-2.65-2.38-4.39 0-.28.22-.5.5-.5s.5.22.5.5c0 1.41.72 2.74 1.94 3.56.71.48 1.54.71 2.54.71.24 0 .64-.03 1.04-.1.27-.05.53.13.58.41.05.27-.13.53-.41.58-.57.11-1.07.12-1.21.12zM14.91 22c-.04 0-.09-.01-.13-.02-1.59-.44-2.63-1.03-3.72-2.1a7.297 7.297 0 0 1-2.17-5.22c0-1.62 1.38-2.94 3.08-2.94 1.7 0 3.08 1.32 3.08 2.94 0 1.07.93 1.94 2.08 1.94s2.08-.87 2.08-1.94c0-3.77-3.25-6.83-7.25-6.83-2.84 0-5.44 1.58-6.61 4.03-.39.81-.59 1.76-.59 2.8 0 .78.07 2.01.67 3.61.1.26-.03.55-.29.64-.26.1-.55-.04-.64-.29a11.14 11.14 0 0 1-.73-3.96c0-1.2.23-2.29.68-3.24 1.33-2.79 4.28-4.6 7.51-4.6 4.55 0 8.25 3.51 8.25 7.83 0 1.62-1.38 2.94-3.08 2.94s-3.08-1.32-3.08-2.94c0-1.07-.93-1.94-2.08-1.94s-2.08.87-2.08 1.94c0 1.71.66 3.31 1.87 4.51.95.94 1.86 1.46 3.27 1.85.27.07.42.35.35.61-.05.23-.26.38-.47.38z"/></symbol><symbol id="first_page" viewBox="0 0 24 24"><path d="M18.41 16.59 13.82 12l4.59-4.59L17 6l-6 6 6 6zM6 6h2v12H6z"/></symbol><symbol id="flag" viewBox="0 0 24 24"><path d="M14.4 6 14 4H5v17h2v-7h5.6l.4 2h7V6z"/></symbol><symbol id="flickr" viewBox="0 0 24 24"><path d="M6.459 17a4.444 4.444 0 0 1-4.116-2.768 4.541 4.541 0 0 1 .954-4.909 4.405 4.405 0 0 1 4.845-.982 4.5 4.5 0 0 1 2.747 4.159 4.514 4.514 0 0 1-1.292 3.181A4.403 4.403 0 0 1 6.459 17Zm11.111 0a4.444 4.444 0 0 1-4.116-2.768 4.541 4.541 0 0 1 .954-4.909 4.405 4.405 0 0 1 4.845-.982A4.5 4.5 0 0 1 22 12.5a4.514 4.514 0 0 1-1.292 3.181A4.403 4.403 0 0 1 17.57 17Z"/></symbol><symbol id="flight" viewBox="0 0 24 24"><path d="M21 16v-2l-8-5V3.5c0-.83-.67-1.5-1.5-1.5S10 2.67 10 3.5V9l-8 5v2l8-2.5V19l-2 1.5V22l3.5-1 3.5 1v-1.5L13 19v-5.5l8 2.5z"/></symbol><symbol id="flooding" viewBox="0 0 24 24"><path d="M17 18.16a6 6 0 0 0-2.95.8 4.08 4.08 0 0 1-2.05.6 3.81 3.81 0 0 1-2-.56 5.84 5.84 0 0 0-5.9 0 4.05 4.05 0 0 1-2 .6v2a6 6 0 0 0 3-.8 4.05 4.05 0 0 1 1.9-.69 3.87 3.87 0 0 1 2.05.6 5.84 5.84 0 0 0 5.9 0 4.08 4.08 0 0 1 2.05-.6 3.81 3.81 0 0 1 2.05.6 5.9 5.9 0 0 0 2.95.8v-2a3.81 3.81 0 0 1-2-.51 6 6 0 0 0-3-.84Zm3-3.65a6.8 6.8 0 0 0-2-.71V10h3l-9-7-9 7h3v3.8a6.8 6.8 0 0 0-1.95.71 4.15 4.15 0 0 1-2 .6v1.95a6.07 6.07 0 0 0 3-.8 3.8 3.8 0 0 1 4.1 0 5.87 5.87 0 0 0 2.95.8 6 6 0 0 0 2.95-.8 3.8 3.8 0 0 1 4.1 0 5.9 5.9 0 0 0 2.95.8v-1.95a3.81 3.81 0 0 1-2.1-.6Zm-9.95 0V11h4v3.54a4.19 4.19 0 0 1-2 .57 3.8 3.8 0 0 1-2.05-.57Z"/></symbol><symbol id="folder" viewBox="0 0 24 24"><path d="M10 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2h-8l-2-2z"/></symbol><symbol id="folder_open" viewBox="0 0 24 24"><path d="M20 6h-8l-2-2H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm0 12H4V8h16v10z"/></symbol><symbol id="format_quote" viewBox="0 0 24 24"><path d="M6 17h3l2-4V7H5v6h3zm8 0h3l2-4V7h-6v6h3z"/></symbol><symbol id="format_size" viewBox="0 0 24 24"><path d="M9 4v3h5v12h3V7h5V4H9zm-6 8h3v7h3v-7h3V9H3v3z"/></symbol><symbol id="forum" viewBox="0 0 24 24"><path d="M21 6h-2v9H6v2c0 .55.45 1 1 1h11l4 4V7c0-.55-.45-1-1-1zm-4 6V3c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v14l4-4h10c.55 0 1-.45 1-1z"/></symbol><symbol id="github" viewBox="0 0 24 24"><path d="M12 2a10 10 0 0 0-3.16 19.49c.5.09.68-.22.68-.48v-1.7C6.73 19.91 6.14 18 6.14 18A2.69 2.69 0 0 0 5 16.5c-.91-.62.07-.61.07-.61a2.13 2.13 0 0 1 1.53 1 2.14 2.14 0 0 0 2.91.83 2.16 2.16 0 0 1 .63-1.34c-2.14-.21-4.52-1.07-4.52-4.9a3.89 3.89 0 0 1 1-2.69 3.57 3.57 0 0 1 .1-2.64s.84-.27 2.75 1a9.63 9.63 0 0 1 5 0c1.91-1.29 2.75-1 2.75-1a3.57 3.57 0 0 1 .1 2.64 3.89 3.89 0 0 1 1 2.69c0 3.84-2.34 4.68-4.57 4.93a2.39 2.39 0 0 1 .68 1.85v2.75c0 .33.18.58.69.48A10 10 0 0 0 12 2Z" fill-rule="evenodd"/></symbol><symbol id="grid_view" viewBox="0 0 24 24"><path fill-rule="evenodd" d="M3 3v8h8V3H3zm6 6H5V5h4v4zm-6 4v8h8v-8H3zm6 6H5v-4h4v4zm4-16v8h8V3h-8zm6 6h-4V5h4v4zm-6 4v8h8v-8h-8zm6 6h-4v-4h4v4z"/></symbol><symbol id="group_add" viewBox="0 0 24 24"><path d="M22 9V7h-2v2h-2v2h2v2h2v-2h2V9zM8 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 1c-2.67 0-8 1.34-8 4v3h16v-3c0-2.66-5.33-4-8-4zm4.51-8.95C13.43 5.11 14 6.49 14 8s-.57 2.89-1.49 3.95C14.47 11.7 16 10.04 16 8s-1.53-3.7-3.49-3.95zm4.02 9.78C17.42 14.66 18 15.7 18 17v3h2v-3c0-1.45-1.59-2.51-3.47-3.17z"/></symbol><symbol id="groups" viewBox="0 0 24 24"><path d="M12 12.75c1.63 0 3.07.39 4.24.9 1.08.48 1.76 1.56 1.76 2.73V18H6v-1.61c0-1.18.68-2.26 1.76-2.73 1.17-.52 2.61-.91 4.24-.91zM4 13c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm1.13 1.1c-.37-.06-.74-.1-1.13-.1-.99 0-1.93.21-2.78.58A2.01 2.01 0 0 0 0 16.43V18h4.5v-1.61c0-.83.23-1.61.63-2.29zM20 13c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm4 3.43c0-.81-.48-1.53-1.22-1.85A6.95 6.95 0 0 0 20 14c-.39 0-.76.04-1.13.1.4.68.63 1.46.63 2.29V18H24v-1.57zM12 6c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3 1.34-3 3-3z"/></symbol><symbol id="hearing" viewBox="0 0 24 24"><path d="M17 20c-.29 0-.56-.06-.76-.15-.71-.37-1.21-.88-1.71-2.38-.51-1.56-1.47-2.29-2.39-3-.79-.61-1.61-1.24-2.32-2.53C9.29 10.98 9 9.93 9 9c0-2.8 2.2-5 5-5s5 2.2 5 5h2c0-3.93-3.07-7-7-7S7 5.07 7 9c0 1.26.38 2.65 1.07 3.9.91 1.65 1.98 2.48 2.85 3.15.81.62 1.39 1.07 1.71 2.05.6 1.82 1.37 2.84 2.73 3.55A3.999 3.999 0 0 0 21 18h-2c0 1.1-.9 2-2 2zM7.64 2.64 6.22 1.22C4.23 3.21 3 5.96 3 9s1.23 5.79 3.22 7.78l1.41-1.41C6.01 13.74 5 11.49 5 9s1.01-4.74 2.64-6.36zM11.5 9a2.5 2.5 0 0 0 5 0 2.5 2.5 0 0 0-5 0z"/></symbol><symbol id="help" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 17h-2v-2h2v2zm2.07-7.75-.9.92C13.45 12.9 13 13.5 13 15h-2v-.5c0-1.1.45-2.1 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41 0-1.1-.9-2-2-2s-2 .9-2 2H8c0-2.21 1.79-4 4-4s4 1.79 4 4c0 .88-.36 1.68-.93 2.25z"/></symbol><symbol id="help_outline" viewBox="0 0 24 24"><path d="M11 18h2v-2h-2v2zm1-16C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm0-14c-2.21 0-4 1.79-4 4h2c0-1.1.9-2 2-2s2 .9 2 2c0 2-3 1.75-3 5h2c0-2.25 3-2.5 3-5 0-2.21-1.79-4-4-4z"/></symbol><symbol id="highlight_off" viewBox="0 0 24 24"><path d="M14.59 8 12 10.59 9.41 8 8 9.41 10.59 12 8 14.59 9.41 16 12 13.41 14.59 16 16 14.59 13.41 12 16 9.41 14.59 8zM12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"/></symbol><symbol id="history" viewBox="0 0 24 24"><path d="M13 3a9 9 0 0 0-9 9H1l3.89 3.89.07.14L9 12H6c0-3.87 3.13-7 7-7s7 3.13 7 7-3.13 7-7 7c-1.93 0-3.68-.79-4.94-2.06l-1.42 1.42A8.954 8.954 0 0 0 13 21a9 9 0 0 0 0-18zm-1 5v5l4.28 2.54.72-1.21-3.5-2.08V8H12z"/></symbol><symbol id="home" viewBox="0 0 24 24"><path d="M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z"/></symbol><symbol id="hospital" viewBox="0 0 24 24"><path d="M19 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2Zm-3 14h-2v-4h-4v4H8V7h2v4h4V7h2Z"/></symbol><symbol id="hotel" viewBox="0 0 24 24"><path d="M7 13c1.66 0 3-1.34 3-3S8.66 7 7 7s-3 1.34-3 3 1.34 3 3 3zm12-6h-8v7H3V5H1v15h2v-3h18v3h2v-9c0-2.21-1.79-4-4-4z"/></symbol><symbol id="hourglass_empty" viewBox="0 0 24 24"><path d="M6 2v6h.01L6 8.01 10 12l-4 4 .01.01H6V22h12v-5.99h-.01L18 16l-4-4 4-3.99-.01-.01H18V2H6zm10 14.5V20H8v-3.5l4-4 4 4zm-4-5-4-4V4h8v3.5l-4 4z"/></symbol><symbol id="hurricane" viewBox="0 0 24 24"><path d="M19 12a7 7 0 0 0-6.34-7 27.32 27.32 0 0 1 2.21-2.09.44.44 0 0 0-.29-.78 10.62 10.62 0 0 0-9.17 7.5 4.26 4.26 0 0 0-.15.47v.06A7.18 7.18 0 0 0 5 12a7 7 0 0 0 6.35 7 27.71 27.71 0 0 1-2.21 2.1.44.44 0 0 0 .29.78 10.65 10.65 0 0 0 9.23-7.69v-.14c0-.05.05-.13.07-.2A6.76 6.76 0 0 0 19 12Zm-7 3.5a3.5 3.5 0 1 1 3.5-3.5 3.5 3.5 0 0 1-3.5 3.5Z"/></symbol><symbol id="identification" viewBox="0 0 24 24"><path d="M11 14.14C11 13.38 9.33 13 8.5 13S6 13.38 6 14.14V15h5Z"/><circle cx="8.5" cy="10.5" r="1.5"/><path d="M20 4H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2Zm-7 13H4V7h9Zm7 0h-5v-2h5Zm0-4h-5v-2h5Zm0-4h-5V7h5Z"/></symbol><symbol id="image" viewBox="0 0 24 24"><path d="M21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z"/></symbol><symbol id="info" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z"/></symbol><symbol id="info_outline" viewBox="0 0 24 24"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M11 7h2v2h-2V7zm0 4h2v6h-2v-6zm1-9C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"/></symbol><symbol id="insights" viewBox="0 0 24 24"><path d="M21 8c-1.45 0-2.26 1.44-1.93 2.51l-3.55 3.56c-.3-.09-.74-.09-1.04 0l-2.55-2.55C12.27 10.45 11.46 9 10 9c-1.45 0-2.27 1.44-1.93 2.52l-4.56 4.55C2.44 15.74 1 16.55 1 18c0 1.1.9 2 2 2 1.45 0 2.26-1.44 1.93-2.51l4.55-4.56c.3.09.74.09 1.04 0l2.55 2.55C12.73 16.55 13.54 18 15 18c1.45 0 2.27-1.44 1.93-2.52l3.56-3.55c1.07.33 2.51-.48 2.51-1.93 0-1.1-.9-2-2-2z"/><path d="m15 9 .94-2.07L18 6l-2.06-.93L15 3l-.92 2.07L12 6l2.08.93zM3.5 11 4 9l2-.5L4 8l-.5-2L3 8l-2 .5L3 9z"/></symbol><symbol id="instagram" viewBox="0 0 24 24"><path d="M8.273 3.063c-.958.045-1.612.198-2.184.423a4.41 4.41 0 0 0-1.592 1.04 4.409 4.409 0 0 0-1.035 1.596c-.222.572-.372 1.227-.414 2.185-.042.958-.052 1.266-.047 3.71.005 2.444.016 2.75.062 3.71.046.958.198 1.612.423 2.184a4.41 4.41 0 0 0 1.04 1.592 4.4 4.4 0 0 0 1.597 1.035c.572.221 1.227.372 2.185.414.958.042 1.266.052 3.71.047 2.443-.005 2.75-.016 3.71-.061.96-.046 1.611-.199 2.183-.423a4.411 4.411 0 0 0 1.592-1.04 4.41 4.41 0 0 0 1.035-1.597c.222-.572.372-1.227.414-2.184.042-.96.052-1.268.047-3.711-.005-2.444-.016-2.75-.061-3.71-.046-.96-.198-1.612-.423-2.184a4.418 4.418 0 0 0-1.04-1.592 4.4 4.4 0 0 0-1.597-1.035c-.572-.221-1.227-.372-2.185-.414-.958-.041-1.266-.052-3.71-.047-2.444.005-2.75.015-3.71.062m.105 16.27c-.878-.038-1.354-.184-1.672-.306a2.802 2.802 0 0 1-1.036-.671 2.772 2.772 0 0 1-.675-1.034c-.124-.317-.272-.793-.313-1.67-.045-.95-.054-1.234-.06-3.637-.004-2.403.005-2.687.046-3.636.038-.877.184-1.354.306-1.671.162-.421.357-.72.672-1.036a2.778 2.778 0 0 1 1.033-.675c.317-.124.793-.272 1.67-.313.95-.045 1.234-.054 3.637-.06 2.402-.005 2.687.004 3.637.046.876.038 1.354.183 1.67.306.421.162.72.357 1.037.671.316.315.511.613.675 1.034.124.317.271.792.313 1.67.045.95.055 1.234.06 3.636.004 2.402-.004 2.688-.046 3.636-.038.878-.184 1.354-.306 1.672a2.79 2.79 0 0 1-.672 1.036 2.78 2.78 0 0 1-1.033.675c-.317.124-.794.271-1.67.313-.95.045-1.234.054-3.637.06-2.403.005-2.687-.005-3.636-.046M15.715 7.19a1.08 1.08 0 1 0 2.16-.004 1.08 1.08 0 0 0-2.16.004m-8.336 4.819a4.62 4.62 0 1 0 9.242-.018 4.62 4.62 0 0 0-9.242.018M9 12.006a3 3 0 1 1 6-.012 3 3 0 0 1-6 .012"/></symbol><symbol id="keyboard" viewBox="0 0 24 24"><path d="M20 5H4c-1.1 0-1.99.9-1.99 2L2 17c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm-9 3h2v2h-2V8zm0 3h2v2h-2v-2zM8 8h2v2H8V8zm0 3h2v2H8v-2zm-1 2H5v-2h2v2zm0-3H5V8h2v2zm9 7H8v-2h8v2zm0-4h-2v-2h2v2zm0-3h-2V8h2v2zm3 3h-2v-2h2v2zm0-3h-2V8h2v2z"/></symbol><symbol id="label" viewBox="0 0 24 24"><path d="M17.63 5.84C17.27 5.33 16.67 5 16 5L5 5.01C3.9 5.01 3 5.9 3 7v10c0 1.1.9 1.99 2 1.99L16 19c.67 0 1.27-.33 1.63-.84L22 12l-4.37-6.16z"/></symbol><symbol id="language" viewBox="0 0 24 24"><path d="M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zm6.93 6h-2.95a15.65 15.65 0 0 0-1.38-3.56A8.03 8.03 0 0 1 18.92 8zM12 4.04c.83 1.2 1.48 2.53 1.91 3.96h-3.82c.43-1.43 1.08-2.76 1.91-3.96zM4.26 14C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2 0 .68.06 1.34.14 2H4.26zm.82 2h2.95c.32 1.25.78 2.45 1.38 3.56A7.987 7.987 0 0 1 5.08 16zm2.95-8H5.08a7.987 7.987 0 0 1 4.33-3.56A15.65 15.65 0 0 0 8.03 8zM12 19.96c-.83-1.2-1.48-2.53-1.91-3.96h3.82c-.43 1.43-1.08 2.76-1.91 3.96zM14.34 14H9.66c-.09-.66-.16-1.32-.16-2 0-.68.07-1.35.16-2h4.68c.09.65.16 1.32.16 2 0 .68-.07 1.34-.16 2zm.25 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95a8.03 8.03 0 0 1-4.33 3.56zM16.36 14c.08-.66.14-1.32.14-2 0-.68-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2h-3.38z"/></symbol><symbol id="last_page" viewBox="0 0 24 24"><path d="M5.59 7.41 10.18 12l-4.59 4.59L7 18l6-6-6-6zM16 6h2v12h-2z"/></symbol><symbol id="launch" viewBox="0 0 24 24"><path d="M19 19H5V5h7V3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"/></symbol><symbol id="lightbulb" viewBox="0 0 24 24"><path d="M9 21c0 .5.4 1 1 1h4c.6 0 1-.5 1-1v-1H9v1zm3-19C8.1 2 5 5.1 5 9c0 2.4 1.2 4.5 3 5.7V17c0 .5.4 1 1 1h6c.6 0 1-.5 1-1v-2.3c1.8-1.3 3-3.4 3-5.7 0-3.9-3.1-7-7-7z"/></symbol><symbol id="lightbulb_outline" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M9 21c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-1H9v1zm3-19C8.14 2 5 5.14 5 9c0 2.38 1.19 4.47 3 5.74V17c0 .55.45 1 1 1h6c.55 0 1-.45 1-1v-2.26c1.81-1.27 3-3.36 3-5.74 0-3.86-3.14-7-7-7zm2 11.7V16h-4v-2.3C8.48 12.63 7 11.53 7 9c0-2.76 2.24-5 5-5s5 2.24 5 5c0 2.49-1.51 3.65-3 4.7z"/></symbol><symbol id="link" viewBox="0 0 24 24"><path d="M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z"/></symbol><symbol id="link_off" viewBox="0 0 24 24"><path d="M17 7h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1 0 1.43-.98 2.63-2.31 2.98l1.46 1.46C20.88 15.61 22 13.95 22 12c0-2.76-2.24-5-5-5zm-1 4h-2.19l2 2H16zM2 4.27l3.11 3.11A4.991 4.991 0 0 0 2 12c0 2.76 2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1 0-1.59 1.21-2.9 2.76-3.07L8.73 11H8v2h2.73L13 15.27V17h1.73l4.01 4L20 19.74 3.27 3 2 4.27z"/></symbol><symbol id="linkedin" viewBox="0 0 24 24"><path d="M19.667 3A1.322 1.322 0 0 1 21 4.298V19.7a1.323 1.323 0 0 1-1.333 1.3H4.328A1.32 1.32 0 0 1 3 19.701V4.3A1.32 1.32 0 0 1 4.328 3h15.339Zm-4.898 6.1a2.834 2.834 0 0 0-2.55 1.403h-.036V9.316H9.6V18h2.692v-4.296c0-1.133.214-2.23 1.616-2.23 1.382 0 1.4 1.296 1.4 2.303V18H18v-4.764c0-2.338-.503-4.136-3.231-4.136Zm-6.86.216H5.213V18h2.694V9.316ZM6.561 5A1.57 1.57 0 0 0 5 6.565a1.57 1.57 0 0 0 1.562 1.564l.142-.006a1.572 1.572 0 0 0 1.42-1.558l-.006-.142A1.572 1.572 0 0 0 6.562 5Z"/></symbol><symbol id="list" viewBox="0 0 24 24"><path d="M3 13h2v-2H3v2zm0 4h2v-2H3v2zm0-8h2V7H3v2zm4 4h14v-2H7v2zm0 4h14v-2H7v2zM7 7v2h14V7H7z"/></symbol><symbol id="local_cafe" viewBox="0 0 24 24"><path d="M20 3H4v10c0 2.21 1.79 4 4 4h6c2.21 0 4-1.79 4-4v-3h2a2 2 0 0 0 2-2V5c0-1.11-.89-2-2-2zm0 5h-2V5h2v3zM4 19h16v2H4z"/></symbol><symbol id="local_fire_department" viewBox="0 0 24 24"><path d="m12 12.9-2.13 2.09c-.56.56-.87 1.29-.87 2.07C9 18.68 10.35 20 12 20s3-1.32 3-2.94c0-.78-.31-1.52-.87-2.07L12 12.9z"/><path d="m16 6-.44.55C14.38 8.02 12 7.19 12 5.3V2S4 6 4 13c0 2.92 1.56 5.47 3.89 6.86-.56-.79-.89-1.76-.89-2.8 0-1.32.52-2.56 1.47-3.5L12 10.1l3.53 3.47c.95.93 1.47 2.17 1.47 3.5 0 1.02-.31 1.96-.85 2.75 1.89-1.15 3.29-3.06 3.71-5.3.66-3.55-1.07-6.9-3.86-8.52z"/></symbol><symbol id="local_gas_station" viewBox="0 0 24 24"><path d="m19.77 7.23.01-.01-3.72-3.72L15 4.56l2.11 2.11c-.94.36-1.61 1.26-1.61 2.33a2.5 2.5 0 0 0 2.5 2.5c.36 0 .69-.08 1-.21v7.21c0 .55-.45 1-1 1s-1-.45-1-1V14c0-1.1-.9-2-2-2h-1V5c0-1.1-.9-2-2-2H6c-1.1 0-2 .9-2 2v16h10v-7.5h1.5v5a2.5 2.5 0 0 0 5 0V9c0-.69-.28-1.32-.73-1.77zM12 10H6V5h6v5zm6 0c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z"/></symbol><symbol id="local_grocery_store" viewBox="0 0 24 24"><path d="M7 18c-1.1 0-1.99.9-1.99 2S5.9 22 7 22s2-.9 2-2-.9-2-2-2zM1 2v2h2l3.6 7.59-1.35 2.45c-.16.28-.25.61-.25.96 0 1.1.9 2 2 2h12v-2H7.42c-.14 0-.25-.11-.25-.25l.03-.12.9-1.63h7.45c.75 0 1.41-.41 1.75-1.03l3.58-6.49A1.003 1.003 0 0 0 20 4H5.21l-.94-2H1zm16 16c-1.1 0-1.99.9-1.99 2s.89 2 1.99 2 2-.9 2-2-.9-2-2-2z"/></symbol><symbol id="local_hospital" viewBox="0 0 24 24"><path d="M19 3H5c-1.1 0-1.99.9-1.99 2L3 19c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-1 11h-4v4h-4v-4H6v-4h4V6h4v4h4v4z"/></symbol><symbol id="local_laundry_service" viewBox="0 0 24 24"><path d="M9.17 16.83a4.008 4.008 0 0 0 5.66 0 4.008 4.008 0 0 0 0-5.66l-5.66 5.66zM18 2.01 6 2c-1.11 0-2 .89-2 2v16c0 1.11.89 2 2 2h12c1.11 0 2-.89 2-2V4c0-1.11-.89-1.99-2-1.99zM10 4c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zM7 4c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm5 16c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6z"/></symbol><symbol id="local_library" viewBox="0 0 24 24"><path d="M12 11.55C9.64 9.35 6.48 8 3 8v11c3.48 0 6.64 1.35 9 3.55 2.36-2.19 5.52-3.55 9-3.55V8c-3.48 0-6.64 1.35-9 3.55zM12 8c1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3 1.34 3 3 3z"/></symbol><symbol id="local_offer" viewBox="0 0 24 24"><path d="m21.41 11.58-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z"/></symbol><symbol id="local_parking" viewBox="0 0 24 24"><path d="M13 3H6v18h4v-6h3c3.31 0 6-2.69 6-6s-2.69-6-6-6zm.2 8H10V7h3.2c1.1 0 2 .9 2 2s-.9 2-2 2z"/></symbol><symbol id="local_pharmacy" viewBox="0 0 24 24"><path d="M21 5h-2.64l1.14-3.14L17.15 1l-1.46 4H3v2l2 6-2 6v2h18v-2l-2-6 2-6V5zm-5 9h-3v3h-2v-3H8v-2h3V9h2v3h3v2z"/></symbol><symbol id="local_police" viewBox="0 0 24 24"><path d="M12 1 3 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V5l-9-4zm2.5 11.59.9 3.88-3.4-2.05-3.4 2.05.9-3.87-3-2.59 3.96-.34L12 6.02l1.54 3.64 3.96.34-3 2.59z"/></symbol><symbol id="local_taxi" viewBox="0 0 24 24"><path d="M18.92 6.01C18.72 5.42 18.16 5 17.5 5H15V3H9v2H6.5c-.66 0-1.21.42-1.42 1.01L3 12v8c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1h12v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-8l-2.08-5.99zM6.5 16c-.83 0-1.5-.67-1.5-1.5S5.67 13 6.5 13s1.5.67 1.5 1.5S7.33 16 6.5 16zm11 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zM5 11l1.5-4.5h11L19 11H5z"/></symbol><symbol id="location_city" viewBox="0 0 24 24"><path d="M15 11V5l-3-3-3 3v2H3v14h18V11h-6zm-8 8H5v-2h2v2zm0-4H5v-2h2v2zm0-4H5V9h2v2zm6 8h-2v-2h2v2zm0-4h-2v-2h2v2zm0-4h-2V9h2v2zm0-4h-2V5h2v2zm6 12h-2v-2h2v2zm0-4h-2v-2h2v2z"/></symbol><symbol id="location_on" viewBox="0 0 24 24"><path d="M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5a2.5 2.5 0 0 1 0-5 2.5 2.5 0 0 1 0 5z"/></symbol><symbol id="lock" viewBox="0 0 24 24"><path d="M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zm-6 9c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm3.1-9H8.9V6c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3.1v2z"/></symbol><symbol id="lock_open" viewBox="0 0 24 24"><path d="M12 17c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm6-9h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6h1.9c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3.1v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zm0 12H6V10h12v10z"/></symbol><symbol id="lock_outline" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M12 17c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm6-9h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zM8.9 6c0-1.71 1.39-3.1 3.1-3.1s3.1 1.39 3.1 3.1v2H8.9V6zM18 20H6V10h12v10z"/></symbol><symbol id="login" viewBox="0 0 24 24"><path d="M11 7 9.6 8.4l2.6 2.6H2v2h10.2l-2.6 2.6L11 17l5-5-5-5zm9 12h-8v2h8c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2h-8v2h8v14z"/></symbol><symbol id="logout" viewBox="0 0 24 24"><path d="m17 7-1.41 1.41L18.17 11H8v2h10.17l-2.58 2.58L17 17l5-5zM4 5h8V3H4c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h8v-2H4V5z"/></symbol><symbol id="loop" viewBox="0 0 24 24"><path d="M12 4V1L8 5l4 4V6c3.31 0 6 2.69 6 6 0 1.01-.25 1.97-.7 2.8l1.46 1.46A7.93 7.93 0 0 0 20 12c0-4.42-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6 0-1.01.25-1.97.7-2.8L5.24 7.74A7.93 7.93 0 0 0 4 12c0 4.42 3.58 8 8 8v3l4-4-4-4v3z"/></symbol><symbol id="mail" viewBox="0 0 24 24"><path d="M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4-8 5-8-5V6l8 5 8-5v2z"/></symbol><symbol id="mail_outline" viewBox="0 0 24 24"><path d="M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 14H4V8l8 5 8-5v10zm-8-7L4 6h16l-8 5z"/></symbol><symbol id="map" viewBox="0 0 24 24"><path d="m20.5 3-.16.03L15 5.1 9 3 3.36 4.9c-.21.07-.36.25-.36.48V20.5c0 .28.22.5.5.5l.16-.03L9 18.9l6 2.1 5.64-1.9c.21-.07.36-.25.36-.48V3.5c0-.28-.22-.5-.5-.5zM15 19l-6-2.11V5l6 2.11V19z"/></symbol><symbol id="masks" viewBox="0 0 24 24"><path d="M19.5 6c-1.31 0-2.37 1.01-2.48 2.3-1.88-.5-2.84-1.8-5.02-1.8-2.19 0-3.14 1.3-5.02 1.8C6.87 7.02 5.81 6 4.5 6A2.5 2.5 0 0 0 2 8.5V9c0 6 3.6 7.81 6.52 7.98C9.53 17.62 10.72 18 12 18s2.47-.38 3.48-1.02C18.4 16.81 22 15 22 9v-.5A2.5 2.5 0 0 0 19.5 6zm-16 3v-.5c0-.55.45-1 1-1s1 .45 1 1v3c0 1.28.38 2.47 1.01 3.48C4.99 14.27 3.5 12.65 3.5 9zm17 0c0 3.65-1.49 5.27-3.01 5.98.64-1.01 1.01-2.2 1.01-3.48v-3c0-.55.45-1 1-1s1 .45 1 1V9zm-9.81 1.48c-.44.26-.96.56-1.69.76V10.2c.48-.17.84-.38 1.18-.58C10.72 9.3 11.23 9 12 9s1.27.3 1.8.62c.34.2.71.42 1.2.59v1.04c-.75-.21-1.26-.51-1.71-.78-.46-.27-.8-.47-1.29-.47s-.84.2-1.31.48z"/></symbol><symbol id="medical_services" viewBox="0 0 24 24"><path d="M20 6h-4V4c0-1.1-.9-2-2-2h-4c-1.1 0-2 .9-2 2v2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zM10 4h4v2h-4V4zm6 11h-3v3h-2v-3H8v-2h3v-3h2v3h3v2z"/></symbol><symbol id="menu" viewBox="0 0 24 24"><path d="M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z"/></symbol><symbol id="military_tech" viewBox="0 0 24 24"><path d="M17 10.43V2H7v8.43c0 .35.18.68.49.86l4.18 2.51-.99 2.34-3.41.29 2.59 2.24L9.07 22 12 20.23 14.93 22l-.78-3.33 2.59-2.24-3.41-.29-.99-2.34 4.18-2.51c.3-.18.48-.5.48-.86zm-4 1.8-1 .6-1-.6V3h2v9.23z"/></symbol><symbol id="more_horiz" viewBox="0 0 24 24"><path d="M6 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-6 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"/></symbol><symbol id="more_vert" viewBox="0 0 24 24"><path d="M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"/></symbol><symbol id="my_location" viewBox="0 0 24 24"><path d="M12 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm8.94 3A8.994 8.994 0 0 0 13 3.06V1h-2v2.06A8.994 8.994 0 0 0 3.06 11H1v2h2.06A8.994 8.994 0 0 0 11 20.94V23h2v-2.06A8.994 8.994 0 0 0 20.94 13H23v-2h-2.06zM12 19c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z"/></symbol><symbol id="navigate_before" viewBox="0 0 24 24"><path d="M15.41 7.41 14 6l-6 6 6 6 1.41-1.41L10.83 12z"/></symbol><symbol id="navigate_far_before" viewBox="0 0 24 24"><path d="M11.41 7.41 10 6l-6 6 6 6 1.41-1.41L6.83 12zm8 0L18 6l-6 6 6 6 1.41-1.41L14.83 12z"/></symbol><symbol id="navigate_far_next" viewBox="0 0 24 24"><path d="m14 6-1.41 1.41L17.17 12l-4.58 4.59L14 18l6-6zM6 6 4.59 7.41 9.17 12l-4.58 4.59L6 18l6-6z"/></symbol><symbol id="navigate_next" viewBox="0 0 24 24"><path d="M10 6 8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/></symbol><symbol id="near_me" viewBox="0 0 24 24"><path d="M21 3 3 10.53v.98l6.84 2.65L12.48 21h.98L21 3z"/></symbol><symbol id="notifications" viewBox="0 0 24 24"><path d="M12 22c1.1 0 2-.9 2-2h-4a2 2 0 0 0 2 2zm6-6v-5c0-3.07-1.64-5.64-4.5-6.32V4c0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5v.68C7.63 5.36 6 7.92 6 11v5l-2 2v1h16v-1l-2-2z"/></symbol><symbol id="notifications_active" viewBox="0 0 24 24"><path d="M7.58 4.08 6.15 2.65C3.75 4.48 2.17 7.3 2.03 10.5h2a8.445 8.445 0 0 1 3.55-6.42zm12.39 6.42h2c-.15-3.2-1.73-6.02-4.12-7.85l-1.42 1.43a8.495 8.495 0 0 1 3.54 6.42zM18 11c0-3.07-1.64-5.64-4.5-6.32V4c0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5v.68C7.63 5.36 6 7.92 6 11v5l-2 2v1h16v-1l-2-2v-5zm-6 11c.14 0 .27-.01.4-.04.65-.14 1.18-.58 1.44-1.18.1-.24.15-.5.15-.78h-4c.01 1.1.9 2 2.01 2z"/></symbol><symbol id="notifications_none" viewBox="0 0 24 24"><path d="M12 22c1.1 0 2-.9 2-2h-4c0 1.1.9 2 2 2zm6-6v-5c0-3.07-1.63-5.64-4.5-6.32V4c0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5v.68C7.64 5.36 6 7.92 6 11v5l-2 2v1h16v-1l-2-2zm-2 1H8v-6c0-2.48 1.51-4.5 4-4.5s4 2.02 4 4.5v6z"/></symbol><symbol id="notifications_off" viewBox="0 0 24 24"><path d="M20 18.69 7.84 6.14 5.27 3.49 4 4.76l2.8 2.8v.01c-.52.99-.8 2.16-.8 3.42v5l-2 2v1h13.73l2 2L21 19.72l-1-1.03zM12 22c1.11 0 2-.89 2-2h-4c0 1.11.89 2 2 2zm6-7.32V11c0-3.08-1.64-5.64-4.5-6.32V4c0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5v.68c-.15.03-.29.08-.42.12-.1.03-.2.07-.3.11h-.01c-.01 0-.01 0-.02.01-.23.09-.46.2-.68.31 0 0-.01 0-.01.01L18 14.68z"/></symbol><symbol id="park" viewBox="0 0 24 24"><path d="M17 12h2L12 2 5.05 12H7l-3.9 6h6.92v4h3.96v-4H21z"/></symbol><symbol id="people" viewBox="0 0 24 24"><path d="M16 11c1.66 0 2.99-1.34 2.99-3S17.66 5 16 5c-1.66 0-3 1.34-3 3s1.34 3 3 3zm-8 0c1.66 0 2.99-1.34 2.99-3S9.66 5 8 5C6.34 5 5 6.34 5 8s1.34 3 3 3zm0 2c-2.33 0-7 1.17-7 3.5V19h14v-2.5c0-2.33-4.67-3.5-7-3.5zm8 0c-.29 0-.62.02-.97.05 1.16.84 1.97 1.97 1.97 3.45V19h6v-2.5c0-2.33-4.67-3.5-7-3.5z"/></symbol><symbol id="person" viewBox="0 0 24 24"><path d="M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z"/></symbol><symbol id="pets" viewBox="0 0 24 24"><circle cx="4.5" cy="9.5" r="2.5"/><circle cx="9" cy="5.5" r="2.5"/><circle cx="15" cy="5.5" r="2.5"/><circle cx="19.5" cy="9.5" r="2.5"/><path d="M17.34 14.86c-.87-1.02-1.6-1.89-2.48-2.91-.46-.54-1.05-1.08-1.75-1.32-.11-.04-.22-.07-.33-.09-.25-.04-.52-.04-.78-.04s-.53 0-.79.05c-.11.02-.22.05-.33.09-.7.24-1.28.78-1.75 1.32-.87 1.02-1.6 1.89-2.48 2.91-1.31 1.31-2.92 2.76-2.62 4.79.29 1.02 1.02 2.03 2.33 2.32.73.15 3.06-.44 5.54-.44h.18c2.48 0 4.81.58 5.54.44 1.31-.29 2.04-1.31 2.33-2.32.31-2.04-1.3-3.49-2.61-4.8z"/></symbol><symbol id="phone" viewBox="0 0 24 24"><path d="M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1-9.39 0-17-7.61-17-17 0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57.11.35.03.74-.25 1.02l-2.2 2.2z"/></symbol><symbol id="photo_camera" viewBox="0 0 24 24"><circle cx="12" cy="12" r="3.2"/><path d="M9 2 7.17 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2h-3.17L15 2H9zm3 15c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5z"/></symbol><symbol id="print" viewBox="0 0 24 24"><path d="M19 8H5c-1.66 0-3 1.34-3 3v6h4v4h12v-4h4v-6c0-1.66-1.34-3-3-3zm-3 11H8v-5h8v5zm3-7c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm-1-9H6v4h12V3z"/></symbol><symbol id="priority_high" viewBox="0 0 24 24"><circle cx="12" cy="19" r="2"/><path d="M10 3h4v12h-4z"/></symbol><symbol id="public" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 17.93c-3.95-.49-7-3.85-7-7.93 0-.62.08-1.21.21-1.79L9 15v1c0 1.1.9 2 2 2v1.93zm6.9-2.54c-.26-.81-1-1.39-1.9-1.39h-1v-3c0-.55-.45-1-1-1H8v-2h2c.55 0 1-.45 1-1V7h2c1.1 0 2-.9 2-2v-.41c2.93 1.19 5 4.06 5 7.41 0 2.08-.8 3.97-2.1 5.39z"/></symbol><symbol id="push_pin" viewBox="0 0 24 24"><path fill-rule="evenodd" d="M16 9V4h1c.55 0 1-.45 1-1s-.45-1-1-1H7c-.55 0-1 .45-1 1s.45 1 1 1h1v5c0 1.66-1.34 3-3 3v2h5.97v7l1 1 1-1v-7H19v-2c-1.66 0-3-1.34-3-3z"/></symbol><symbol id="radio_button_unchecked" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"/></symbol><symbol id="rain" viewBox="0 0 24 24"><path d="M17.51 7A5.62 5.62 0 0 0 7 5.51a4.5 4.5 0 0 0 .49 9h9.75A3.74 3.74 0 0 0 17.51 7ZM4.076 20.774 6.08 15.77l1.857.743-2.003 5.004zm4.998-.002 2.003-5.004 1.856.743-2.002 5.004zm4.998.008 2.002-5.004 1.857.743-2.002 5.004z"/></symbol><symbol id="reduce_capacity" viewBox="0 0 24 24"><path d="M16 4c0-1.1.9-2 2-2s2 .9 2 2-.9 2-2 2-2-.9-2-2zm4.78 3.58A6.95 6.95 0 0 0 18 7c-.67 0-1.31.1-1.92.28.58.55.92 1.32.92 2.15V10h5v-.57c0-.81-.48-1.53-1.22-1.85zM6 6c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm1.92 1.28C7.31 7.1 6.67 7 6 7c-.99 0-1.93.21-2.78.58A2.01 2.01 0 0 0 2 9.43V10h5v-.57c0-.83.34-1.6.92-2.15zM10 4c0-1.1.9-2 2-2s2 .9 2 2-.9 2-2 2-2-.9-2-2zm6 6H8v-.57c0-.81.48-1.53 1.22-1.85a6.95 6.95 0 0 1 5.56 0A2.01 2.01 0 0 1 16 9.43V10zm-1 6c0-1.1.9-2 2-2s2 .9 2 2-.9 2-2 2-2-.9-2-2zm6 6h-8v-.57c0-.81.48-1.53 1.22-1.85a6.95 6.95 0 0 1 5.56 0A2.01 2.01 0 0 1 21 21.43V22zM5 16c0-1.1.9-2 2-2s2 .9 2 2-.9 2-2 2-2-.9-2-2zm6 6H3v-.57c0-.81.48-1.53 1.22-1.85a6.95 6.95 0 0 1 5.56 0A2.01 2.01 0 0 1 11 21.43V22zm1.75-9v-2h-1.5v2H9l3 3 3-3h-2.25z"/></symbol><symbol id="remove" viewBox="0 0 24 24"><path d="M19 13H5v-2h14v2z"/></symbol><symbol id="remove_circle" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm5 11H7v-2h10v2z"/></symbol><symbol id="report" viewBox="0 0 24 24"><path d="M15.73 3H8.27L3 8.27v7.46L8.27 21h7.46L21 15.73V8.27L15.73 3zM12 17.3c-.72 0-1.3-.58-1.3-1.3 0-.72.58-1.3 1.3-1.3.72 0 1.3.58 1.3 1.3 0 .72-.58 1.3-1.3 1.3zm1-4.3h-2V7h2v6z"/></symbol><symbol id="restaurant" viewBox="0 0 24 24"><path d="M11 9H9V2H7v7H5V2H3v7c0 2.12 1.66 3.84 3.75 3.97V22h2.5v-9.03C11.34 12.84 13 11.12 13 9V2h-2v7zm5-3v8h2.5v8H21V2c-2.76 0-5 2.24-5 4z"/></symbol><symbol id="rss_feed" viewBox="0 0 24 24"><circle cx="6.18" cy="17.82" r="2.18"/><path d="M4 4.44v2.83c7.03 0 12.73 5.7 12.73 12.73h2.83c0-8.59-6.97-15.56-15.56-15.56zm0 5.66v2.83c3.9 0 7.07 3.17 7.07 7.07h2.83c0-5.47-4.43-9.9-9.9-9.9z"/></symbol><symbol id="safety_divider" viewBox="0 0 24 24"><path d="M11 5h2v14h-2V5zm-6 7c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm2.78 1.58a6.95 6.95 0 0 0-5.56 0A2.01 2.01 0 0 0 1 15.43V16h8v-.57c0-.81-.48-1.53-1.22-1.85zM19 12c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm2.78 1.58a6.95 6.95 0 0 0-5.56 0A2.01 2.01 0 0 0 15 15.43V16h8v-.57c0-.81-.48-1.53-1.22-1.85z"/></symbol><symbol id="sanitizer" viewBox="0 0 24 24"><path d="M15.5 6.5C15.5 5.66 17 4 17 4s1.5 1.66 1.5 2.5c0 .83-.67 1.5-1.5 1.5s-1.5-.67-1.5-1.5zm4 8.5a2.5 2.5 0 0 0 2.5-2.5c0-1.67-2.5-4.5-2.5-4.5S17 10.83 17 12.5a2.5 2.5 0 0 0 2.5 2.5zM13 14h-2v-2H9v2H7v2h2v2h2v-2h2v-2zm3-2v10H4V12c0-2.97 2.16-5.43 5-5.91V4H7V2h6c1.13 0 2.15.39 2.99 1.01l-1.43 1.43C14.1 4.17 13.57 4 13 4h-2v2.09c2.84.48 5 2.94 5 5.91z"/></symbol><symbol id="save_alt" viewBox="0 0 24 24"><path d="M19 12v7H5v-7H3v7c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-7h-2zm-6 .67 2.59-2.58L17 11.5l-5 5-5-5 1.41-1.41L11 12.67V3h2z"/></symbol><symbol id="schedule" viewBox="0 0 24 24"><path d="M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"/><path d="M12.5 7H11v6l5.25 3.15.75-1.23-4.5-2.67z"/></symbol><symbol id="school" viewBox="0 0 24 24"><path d="M5 13.18v4L12 21l7-3.82v-4L12 17l-7-3.82zM12 3 1 9l11 6 9-4.91V17h2V9L12 3z"/></symbol><symbol id="science" viewBox="0 0 24 24"><path d="M19.8 18.4 14 10.67V6.5l1.35-1.69c.26-.33.03-.81-.39-.81H9.04c-.42 0-.65.48-.39.81L10 6.5v4.17L4.2 18.4c-.49.66-.02 1.6.8 1.6h14c.82 0 1.29-.94.8-1.6z"/></symbol><symbol id="search" viewBox="0 0 24 24"><path d="M15.5 14h-.79l-.28-.27A6.471 6.471 0 0 0 16 9.5 6.5 6.5 0 1 0 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"/></symbol><symbol id="security" viewBox="0 0 24 24"><path d="M12 1 3 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V5l-9-4zm0 10.99h7c-.53 4.12-3.28 7.79-7 8.94V12H5V6.3l7-3.11v8.8z"/></symbol><symbol id="send" viewBox="0 0 24 24"><path d="M2.01 21 23 12 2.01 3 2 10l15 2-15 2z"/></symbol><symbol id="sentiment_dissatisfied" viewBox="0 0 24 24"><circle cx="15.5" cy="9.5" r="1.5"/><circle cx="8.5" cy="9.5" r="1.5"/><path d="M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm0-3.5c.73 0 1.39.19 1.97.53.12-.14.86-.98 1.01-1.14A5.39 5.39 0 0 0 12 15c-1.11 0-2.13.33-2.99.88.97 1.09.01.02 1.01 1.14.59-.33 1.25-.52 1.98-.52z"/></symbol><symbol id="sentiment_neutral" viewBox="0 0 24 24"><path d="M9 15.5h6v1H9v-1z"/><circle cx="15.5" cy="9.5" r="1.5"/><circle cx="8.5" cy="9.5" r="1.5"/><path d="M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"/></symbol><symbol id="sentiment_satisfied" viewBox="0 0 24 24"><circle cx="15.5" cy="9.5" r="1.5"/><circle cx="8.5" cy="9.5" r="1.5"/><path d="M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm0-4c-.73 0-1.38-.18-1.96-.52-.12.14-.86.98-1.01 1.15a5.49 5.49 0 0 0 5.95-.01c-.97-1.09-.01-.02-1.01-1.15-.59.35-1.24.53-1.97.53z"/></symbol><symbol id="sentiment_satisfied_alt" viewBox="0 0 24 24"><circle cx="15.5" cy="9.5" r="1.5"/><circle cx="8.5" cy="9.5" r="1.5"/><circle cx="15.5" cy="9.5" r="1.5"/><circle cx="8.5" cy="9.5" r="1.5"/><path d="M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm0-2.5c2.33 0 4.32-1.45 5.12-3.5h-1.67c-.69 1.19-1.97 2-3.45 2s-2.75-.81-3.45-2H6.88c.8 2.05 2.79 3.5 5.12 3.5z"/></symbol><symbol id="sentiment_very_dissatisfied" viewBox="0 0 24 24"><circle cx="15.5" cy="9.5" r="1.5"/><circle cx="8.5" cy="9.5" r="1.5"/><path d="M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm0-6c-2.33 0-4.32 1.45-5.12 3.5h1.67c.69-1.19 1.97-2 3.45-2s2.75.81 3.45 2h1.67c-.8-2.05-2.79-3.5-5.12-3.5z"/></symbol><symbol id="settings" viewBox="0 0 24 24"><path d="M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.07-.94l2.03-1.58a.49.49 0 0 0 .12-.61l-1.92-3.32a.488.488 0 0 0-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54a.484.484 0 0 0-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.74 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.07.94l-2.03 1.58a.49.49 0 0 0-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .44-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.47-.12-.61l-2.01-1.58zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6z"/></symbol><symbol id="severe_weather" viewBox="0 0 24 24"><g data-name="Severe Weather"><path d="M4.05 17.73 12 4l8 13.85A5 5 0 0 0 19.2 8a7.49 7.49 0 0 0-14-2 6 6 0 0 0-1.15 11.73Z"/><path d="M12 7 3.34 22h17.32Zm0 13.4a1 1 0 1 1 1-1 1 1 0 0 1-1 1ZM11 17v-4.6h2V17Z"/></g></symbol><symbol id="share" viewBox="0 0 24 24"><path d="M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81 1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9c-1.66 0-3 1.34-3 3s1.34 3 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.16c-.05.21-.08.43-.08.65 0 1.61 1.31 2.92 2.92 2.92 1.61 0 2.92-1.31 2.92-2.92s-1.31-2.92-2.92-2.92z"/></symbol><symbol id="shield" viewBox="0 0 24 24"><path d="M12 1 3 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V5l-9-4z"/></symbol><symbol id="shopping_basket" viewBox="0 0 24 24"><path d="m17.21 9-4.38-6.56a.993.993 0 0 0-.83-.42c-.32 0-.64.14-.83.43L6.79 9H2c-.55 0-1 .45-1 1 0 .09.01.18.04.27l2.54 9.27c.23.84 1 1.46 1.92 1.46h13c.92 0 1.69-.62 1.93-1.46l2.54-9.27L23 10c0-.55-.45-1-1-1h-4.79zM9 9l3-4.4L15 9H9zm3 8c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z"/></symbol><symbol id="snow" viewBox="0 0 24 24"><path d="m20.76 14.07-.66-1.34-2.88 1.42L13.5 12l3.72-2.15 2.88 1.42.66-1.34-1.97-.98 2.25-1.3-.75-1.3-2.25 1.3.14-2.2-1.5-.1-.21 3.2-3.72 2.15V6.4l2.67-1.78-.84-1.24-1.83 1.22V2h-1.5v2.6L9.42 3.38l-.84 1.24 2.67 1.78v4.3L7.53 8.55l-.21-3.2-1.5.1.14 2.2-2.25-1.3-.75 1.3 2.25 1.3-1.97.98.66 1.34 2.88-1.42L10.5 12l-3.72 2.15-2.88-1.42-.66 1.34 1.97.98-2.25 1.3.75 1.3 2.25-1.3-.14 2.2 1.5.1.21-3.2 3.72-2.15v4.3l-2.67 1.78.84 1.24 1.83-1.22V22h1.5v-2.6l1.83 1.22.84-1.24-2.67-1.78v-4.3l3.72 2.15.21 3.2 1.5-.1-.14-2.2 2.25 1.3.75-1.3-2.25-1.3 1.97-.98z"/></symbol><symbol id="soap" viewBox="0 0 24 24"><path d="m9.12 5-7.18 6.79c-.6.56-.94 1.35-.94 2.18V20c0 1.66 1.34 3 3 3h13.75a1.25 1.25 0 0 0 0-2.5H12v-1h7.75a1.25 1.25 0 0 0 0-2.5H12v-1h8.75a1.25 1.25 0 0 0 0-2.5H12v-1h6.75a1.25 1.25 0 0 0 0-2.5H8.86c.64-1.11 1.48-2.58 1.49-2.61a1.065 1.065 0 0 0-.12-1.23C10.22 6.12 9.12 5 9.12 5zM14 6.25c.41 0 .75.34.75.75s-.34.75-.75.75-.75-.34-.75-.75.34-.75.75-.75m0-1.5c-1.24 0-2.25 1.01-2.25 2.25S12.76 9.25 14 9.25 16.25 8.24 16.25 7 15.24 4.75 14 4.75zm5.75.75c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5m0-1.5c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zM16.5 1c-.83 0-1.5.67-1.5 1.5S15.67 4 16.5 4 18 3.33 18 2.5 17.33 1 16.5 1z"/></symbol><symbol id="social_distance" viewBox="0 0 24 24"><path d="M4 5c0-1.1.9-2 2-2s2 .9 2 2-.9 2-2 2-2-.9-2-2zm4.78 3.58a6.95 6.95 0 0 0-5.56 0A2.01 2.01 0 0 0 2 10.43V11h8v-.57c0-.81-.48-1.53-1.22-1.85zM18 7c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm2.78 1.58a6.95 6.95 0 0 0-5.56 0A2.01 2.01 0 0 0 14 10.43V11h8v-.57c0-.81-.48-1.53-1.22-1.85zM22 17l-4-4v3H6v-3l-4 4 4 4v-3h12v3l4-4z"/></symbol><symbol id="sort_arrow" viewBox="0 0 24 24"><path d="M15.17 15 13 17.17V6.83L15.17 9l1.41-1.41L12 3 7.41 7.59 8.83 9 11 6.83v10.34L8.83 15l-1.41 1.41L12 21l4.59-4.59L15.17 15z"/></symbol><symbol id="spellcheck" viewBox="0 0 24 24"><path d="M12.45 16h2.09L9.43 3H7.57L2.46 16h2.09l1.12-3h5.64l1.14 3zm-6.02-5L8.5 5.48 10.57 11H6.43zm15.16.59-8.09 8.09L9.83 16l-1.41 1.41 5.09 5.09L23 13l-1.41-1.41z"/></symbol><symbol id="star" viewBox="0 0 24 24"><path d="M12 17.27 18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z"/></symbol><symbol id="star_half" viewBox="0 0 24 24"><path d="m22 9.24-7.19-.62L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21 12 17.27 18.18 21l-1.63-7.03L22 9.24zM12 15.4V6.1l1.71 4.04 4.38.38-3.32 2.88 1 4.28L12 15.4z"/></symbol><symbol id="star_outline" viewBox="0 0 24 24"><path d="m22 9.24-7.19-.62L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21 12 17.27 18.18 21l-1.63-7.03L22 9.24zM12 15.4l-3.76 2.27 1-4.28-3.32-2.88 4.38-.38L12 6.1l1.71 4.04 4.38.38-3.32 2.88 1 4.28L12 15.4z"/></symbol><symbol id="store" viewBox="0 0 24 24"><path d="M20 4H4v2h16V4zm1 10v-2l-1-5H4l-1 5v2h1v6h10v-6h4v6h2v-6h1zm-9 4H6v-4h6v4z"/></symbol><symbol id="support" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm7.46 7.12-2.78 1.15a4.982 4.982 0 0 0-2.95-2.94l1.15-2.78c2.1.8 3.77 2.47 4.58 4.57zM12 15c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3zM9.13 4.54l1.17 2.78a5 5 0 0 0-2.98 2.97L4.54 9.13a7.984 7.984 0 0 1 4.59-4.59zM4.54 14.87l2.78-1.15a4.968 4.968 0 0 0 2.97 2.96l-1.17 2.78a7.996 7.996 0 0 1-4.58-4.59zm10.34 4.59-1.15-2.78a4.978 4.978 0 0 0 2.95-2.97l2.78 1.17a8.007 8.007 0 0 1-4.58 4.58z"/></symbol><symbol id="support_agent" viewBox="0 0 24 24"><path d="M21 12.22C21 6.73 16.74 3 12 3c-4.69 0-9 3.65-9 9.28-.6.34-1 .98-1 1.72v2c0 1.1.9 2 2 2h1v-6.1c0-3.87 3.13-7 7-7s7 3.13 7 7V19h-8v2h8c1.1 0 2-.9 2-2v-1.22c.59-.31 1-.92 1-1.64v-2.3c0-.7-.41-1.31-1-1.62z"/><circle cx="9" cy="13" r="1"/><circle cx="15" cy="13" r="1"/><path d="M18 11.03A6.04 6.04 0 0 0 12.05 6c-3.03 0-6.29 2.51-6.03 6.45a8.075 8.075 0 0 0 4.86-5.89c1.31 2.63 4 4.44 7.12 4.47z"/></symbol><symbol id="text_fields" viewBox="0 0 24 24"><path d="M2.5 4v3h5v12h3V7h5V4h-13zm19 5h-9v3h3v7h3v-7h3V9z"/></symbol><symbol id="thumb_down_alt" viewBox="0 0 24 24"><path d="M22 4h-2c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1h2V4zM2.17 11.12c-.11.25-.17.52-.17.8V13c0 1.1.9 2 2 2h5.5l-.92 4.65c-.05.22-.02.46.08.66.23.45.52.86.88 1.22L10 22l6.41-6.41c.38-.38.59-.89.59-1.42V6.34C17 5.05 15.95 4 14.66 4h-8.1c-.71 0-1.36.37-1.72.97l-2.67 6.15z"/></symbol><symbol id="thumb_up_alt" viewBox="0 0 24 24"><path d="M2 20h2c.55 0 1-.45 1-1v-9c0-.55-.45-1-1-1H2v11zm19.83-7.12c.11-.25.17-.52.17-.8V11c0-1.1-.9-2-2-2h-5.5l.92-4.65c.05-.22.02-.46-.08-.66a4.8 4.8 0 0 0-.88-1.22L14 2 7.59 8.41C7.21 8.79 7 9.3 7 9.83v7.84A2.34 2.34 0 0 0 9.34 20h8.11c.7 0 1.36-.37 1.72-.97l2.66-6.15z"/></symbol><symbol id="timer" viewBox="0 0 24 24"><path d="M9 1h6v2H9zm10.03 6.39 1.42-1.42c-.43-.51-.9-.99-1.41-1.41l-1.42 1.42A8.962 8.962 0 0 0 12 4a9 9 0 0 0-9 9c0 4.97 4.02 9 9 9a8.994 8.994 0 0 0 7.03-14.61zM13 14h-2V8h2v6z"/></symbol><symbol id="toggle_off" viewBox="0 0 24 24"><path d="M17 7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h10c2.76 0 5-2.24 5-5s-2.24-5-5-5zM7 15c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3z"/></symbol><symbol id="toggle_on" viewBox="0 0 24 24"><path d="M17 7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h10c2.76 0 5-2.24 5-5s-2.24-5-5-5zm0 8c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3z"/></symbol><symbol id="topic" viewBox="0 0 24 24"><path d="M20 6h-8l-2-2H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm-6 10H6v-2h8v2zm4-4H6v-2h12v2z"/></symbol><symbol id="tornado" viewBox="0 0 24 24"><path d="M13 16v-2h2.77c.08-.32.16-.65.23-1 1.19-5.95 4-6 4-10H4a10.35 10.35 0 0 0 .48 3H8v2H5.26c.32.69.68 1.36 1 2H10v2H7.51A13.86 13.86 0 0 1 9 15a6.24 6.24 0 0 1-1 6l1 1c2.82-1.54 4.85-3.09 6.1-6Z"/></symbol><symbol id="translate" viewBox="0 0 24 24"><path d="m12.87 15.07-2.54-2.51.03-.03A17.52 17.52 0 0 0 14.07 6H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7 1.62-4.33L19.12 17h-3.24z"/></symbol><symbol id="trending_down" viewBox="0 0 24 24"><path d="m16 18 2.29-2.29-4.88-4.88-4 4L2 7.41 3.41 6l6 6 4-4 6.3 6.29L22 12v6z"/></symbol><symbol id="trending_up" viewBox="0 0 24 24"><path d="m16 6 2.29 2.29-4.88 4.88-4-4L2 16.59 3.41 18l6-6 4 4 6.3-6.29L22 12V6z"/></symbol><symbol id="twitter" viewBox="0 0 24 24"><path d="M19.912 7.925v.527A11.562 11.562 0 0 1 8.265 20.098 11.443 11.443 0 0 1 2 18.265c.328.017.657.017.985 0a8.132 8.132 0 0 0 5.093-1.698 4.092 4.092 0 0 1-3.786-2.852c.255.062.518.091.781.085.36-.002.72-.047 1.07-.136a4.109 4.109 0 0 1-3.21-4.024c.566.32 1.202.494 1.851.51a4.126 4.126 0 0 1-1.34-5.518 11.613 11.613 0 0 0 8.488 4.295 4.397 4.397 0 0 1-.119-.934 4.092 4.092 0 0 1 4.092-4.092 4.04 4.04 0 0 1 3.005 1.29 7.929 7.929 0 0 0 2.53-1c-.3.953-.94 1.763-1.8 2.274A7.725 7.725 0 0 0 22 5.803a8.489 8.489 0 0 1-2.088 2.122Z" fill-rule="evenodd"/></symbol><symbol id="undo" viewBox="0 0 24 24"><path d="M12.5 8c-2.65 0-5.05.99-6.9 2.6L2 7v9h9l-3.62-3.62c1.39-1.16 3.16-1.88 5.12-1.88 3.54 0 6.55 2.31 7.6 5.5l2.37-.78C21.08 11.03 17.15 8 12.5 8z"/></symbol><symbol id="unfold_less" viewBox="0 0 24 24"><path d="M7.41 18.59 8.83 20 12 16.83 15.17 20l1.41-1.41L12 14l-4.59 4.59zm9.18-13.18L15.17 4 12 7.17 8.83 4 7.41 5.41 12 10l4.59-4.59z"/></symbol><symbol id="unfold_more" viewBox="0 0 24 24"><path d="M12 5.83 15.17 9l1.41-1.41L12 3 7.41 7.59 8.83 9 12 5.83zm0 12.34L8.83 15l-1.41 1.41L12 21l4.59-4.59L15.17 15 12 18.17z"/></symbol><symbol id="update" viewBox="0 0 24 24"><path d="M21 10.12h-6.78l2.74-2.82c-2.73-2.7-7.15-2.8-9.88-.1-2.73 2.71-2.73 7.08 0 9.79s7.15 2.71 9.88 0C18.32 15.65 19 14.08 19 12.1h2c0 1.98-.88 4.55-2.64 6.29-3.51 3.48-9.21 3.48-12.72 0-3.5-3.47-3.53-9.11-.02-12.58s9.14-3.47 12.65 0L21 3v7.12zM12.5 8v4.25l3.5 2.08-.72 1.21L11 13V8h1.5z"/></symbol><symbol id="upload_file" viewBox="0 0 24 24"><path d="M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm4 18H6V4h7v5h5v11zM8 15.01l1.41 1.41L11 14.84V19h2v-4.16l1.59 1.59L16 15.01 12.01 11z"/></symbol><symbol id="verified" viewBox="0 0 24 24"><path d="m23 12-2.44-2.79.34-3.69-3.61-.82-1.89-3.2L12 2.96 8.6 1.5 6.71 4.69 3.1 5.5l.34 3.7L1 12l2.44 2.79-.34 3.7 3.61.82L8.6 22.5l3.4-1.47 3.4 1.46 1.89-3.19 3.61-.82-.34-3.69L23 12zm-12.91 4.72-3.8-3.81 1.48-1.48 2.32 2.33 5.85-5.87 1.48 1.48-7.33 7.35z"/></symbol><symbol id="verified_user" viewBox="0 0 24 24"><path d="M12 1 3 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V5l-9-4zm-2 16-4-4 1.41-1.41L10 14.17l6.59-6.59L18 9l-8 8z"/></symbol><symbol id="visibility" viewBox="0 0 24 24"><path d="M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z"/></symbol><symbol id="visibility_off" viewBox="0 0 24 24"><path d="M12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75-1.73-4.39-6-7.5-11-7.5-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 7.13 11.35 7 12 7zM2 4.27l2.28 2.28.46.46A11.804 11.804 0 0 0 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3 2 4.27zM7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2zm4.31-.78 3.15 3.15.02-.16c0-1.66-1.34-3-3-3l-.17.01z"/></symbol><symbol id="volume_off" viewBox="0 0 24 24"><path d="M16.5 12A4.5 4.5 0 0 0 14 7.97v2.21l2.45 2.45c.03-.2.05-.41.05-.63zm2.5 0c0 .94-.2 1.82-.54 2.64l1.51 1.51A8.796 8.796 0 0 0 21 12c0-4.28-2.99-7.86-7-8.77v2.06c2.89.86 5 3.54 5 6.71zM4.27 3 3 4.27 7.73 9H3v6h4l5 5v-6.73l4.25 4.25c-.67.52-1.42.93-2.25 1.18v2.06a8.99 8.99 0 0 0 3.69-1.81L19.73 21 21 19.73l-9-9L4.27 3zM12 4 9.91 6.09 12 8.18V4z"/></symbol><symbol id="warning" viewBox="0 0 24 24"><path d="M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z"/></symbol><symbol id="wash" viewBox="0 0 24 24"><path d="M18.5 8A2.5 2.5 0 0 0 21 5.5C21 3.83 18.5 1 18.5 1S16 3.83 16 5.5A2.5 2.5 0 0 0 18.5 8zm-5 1c.83 0 1.5-.67 1.5-1.5 0-.84-1.5-2.5-1.5-2.5S12 6.66 12 7.5c0 .83.67 1.5 1.5 1.5zM9.12 5l-7.18 6.79c-.6.56-.94 1.35-.94 2.18V20c0 1.66 1.34 3 3 3h13.75a1.25 1.25 0 0 0 0-2.5H12v-1h7.75a1.25 1.25 0 0 0 0-2.5H12v-1h8.75a1.25 1.25 0 0 0 0-2.5H12v-1h6.75a1.25 1.25 0 0 0 0-2.5H8.86c.64-1.11 1.48-2.58 1.49-2.61a1.065 1.065 0 0 0-.12-1.23C10.22 6.12 9.12 5 9.12 5z"/></symbol><symbol id="wifi" viewBox="0 0 24 24"><path d="m1 9 2 2c4.97-4.97 13.03-4.97 18 0l2-2C16.93 2.93 7.08 2.93 1 9zm8 8 3 3 3-3a4.237 4.237 0 0 0-6 0zm-4-4 2 2a7.074 7.074 0 0 1 10 0l2-2C15.14 9.14 8.87 9.14 5 13z"/></symbol><symbol id="work" viewBox="0 0 24 24"><path d="M20 6h-4V4c0-1.11-.89-2-2-2h-4c-1.11 0-2 .89-2 2v2H4c-1.11 0-1.99.89-1.99 2L2 19c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2zm-6 0h-4V4h4v2z"/></symbol><symbol id="x" viewBox="0 0 24 24"><path d="M13.522 10.775 19.48 4h-1.412l-5.172 5.883L8.765 4H4l6.247 8.895L4 20h1.412l5.461-6.212L15.236 20H20l-6.478-9.225Zm-1.933 2.199-.633-.886L5.92 5.04h2.168l4.064 5.688.633.886 5.283 7.394H15.9l-4.311-6.034Z"/></symbol><symbol id="youtube" viewBox="0 0 24 24"><path d="M19.816 5.389a2.469 2.469 0 0 1 1.766 1.746c.291 1.598.43 3.22.417 4.843a25.867 25.867 0 0 1-.417 4.794 2.468 2.468 0 0 1-1.766 1.795c-2.593.318-5.204.46-7.816.429a58.411 58.411 0 0 1-7.816-.429 2.469 2.469 0 0 1-1.766-1.746 25.879 25.879 0 0 1-.417-4.843 25.85 25.85 0 0 1 .417-4.793 2.468 2.468 0 0 1 1.766-1.796c2.594-.3 5.205-.427 7.816-.379a58.413 58.413 0 0 1 7.816.379ZM9.95 9.046v5.864l5.233-2.932L9.95 9.046Z"/></symbol><symbol id="zoom_in" viewBox="0 0 24 24"><path d="M15.5 14h-.79l-.28-.27A6.471 6.471 0 0 0 16 9.5 6.5 6.5 0 1 0 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"/><path d="M12 10h-2v2H9v-2H7V9h2V7h1v2h2v1z"/></symbol><symbol id="zoom_out" viewBox="0 0 24 24"><path d="M15.5 14h-.79l-.28-.27A6.471 6.471 0 0 0 16 9.5 6.5 6.5 0 1 0 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14zM7 9h5v1H7z"/></symbol><symbol id="zoom_out_map" viewBox="0 0 24 24"><path d="m15 3 2.3 2.3-2.89 2.87 1.42 1.42L18.7 6.7 21 9V3h-6zM3 9l2.3-2.3 2.87 2.89 1.42-1.42L6.7 5.3 9 3H3v6zm6 12-2.3-2.3 2.89-2.87-1.42-1.42L5.3 17.3 3 15v6h6zm12-6-2.3 2.3-2.87-2.89-1.42 1.42 2.89 2.87L15 21h6v-6z"/></symbol></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/us_flag.svg b/html/matt-chat/uswds/img/us_flag.svg
new file mode 100644
index 0000000..b07f490
--- /dev/null
+++ b/html/matt-chat/uswds/img/us_flag.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 44"><path fill="#fff" d="M0 0h64v44H0z"/><path fill="#da3e1f" d="M0 0h64v4H0zm0 40h64v4H0zm0-8h64v4H0zm0-8h64v4H0zm0-8h64v4H0zm0-8h64v4H0z"/><path fill="#1e33b1" d="M0 0h32v28H0z"/><path fill="#fff" d="M8 12h4v4H8zm16 0h4v4h-4zm-8 0h4v4h-4zm4-8h4v4h-4zm-8 0h4v4h-4zM4 20h4v4H4zm16 0h4v4h-4zm-8 0h4v4h-4zM4 4h4v4H4z"/></svg>
diff --git a/html/matt-chat/uswds/img/us_flag_small.png b/html/matt-chat/uswds/img/us_flag_small.png
new file mode 100644
index 0000000..75350ba
--- /dev/null
+++ b/html/matt-chat/uswds/img/us_flag_small.png
Binary files differdiff --git a/html/matt-chat/uswds/img/usa-icons-bg/add--white.svg b/html/matt-chat/uswds/img/usa-icons-bg/add--white.svg
new file mode 100644
index 0000000..bbcce6d
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons-bg/add--white.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M0 0h24v24H0z" fill="none"/><path fill="#fff" d="M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons-bg/arrow_back--white.svg b/html/matt-chat/uswds/img/usa-icons-bg/arrow_back--white.svg
new file mode 100644
index 0000000..0f6b3ca
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons-bg/arrow_back--white.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M0 0h24v24H0z" fill="none"/><path fill="#fff" d="M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons-bg/calendar_today--white.svg b/html/matt-chat/uswds/img/usa-icons-bg/calendar_today--white.svg
new file mode 100644
index 0000000..46f14b8
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons-bg/calendar_today--white.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M0 0h24v24H0z" fill="none"/><path fill="#fff" d="M20 3h-1V1h-2v2H7V1H5v2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 18H4V8h16v13z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons-bg/check--blue-60v.svg b/html/matt-chat/uswds/img/usa-icons-bg/check--blue-60v.svg
new file mode 100644
index 0000000..ed101a9
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons-bg/check--blue-60v.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M0 0h24v24H0z" fill="none"/><path fill="#005ea2" d="M9 16.17 4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons-bg/check_circle--white.svg b/html/matt-chat/uswds/img/usa-icons-bg/check_circle--white.svg
new file mode 100644
index 0000000..f958133
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons-bg/check_circle--white.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M0 0h24v24H0z" fill="none"/><path fill="#fff" d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons-bg/close--white.svg b/html/matt-chat/uswds/img/usa-icons-bg/close--white.svg
new file mode 100644
index 0000000..3bd7a08
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons-bg/close--white.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M0 0h24v24H0z" fill="none"/><path fill="#fff" d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons-bg/error--white.svg b/html/matt-chat/uswds/img/usa-icons-bg/error--white.svg
new file mode 100644
index 0000000..442cca5
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons-bg/error--white.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M0 0h24v24H0z" fill="none"/><path fill="#fff" d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons-bg/expand_less--white.svg b/html/matt-chat/uswds/img/usa-icons-bg/expand_less--white.svg
new file mode 100644
index 0000000..5841fc4
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons-bg/expand_less--white.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M0 0h24v24H0z" fill="none"/><path fill="#fff" d="m12 8-6 6 1.41 1.41L12 10.83l4.59 4.58L18 14z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons-bg/expand_more--blue-warm-70v.svg b/html/matt-chat/uswds/img/usa-icons-bg/expand_more--blue-warm-70v.svg
new file mode 100644
index 0000000..8582dcb
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons-bg/expand_more--blue-warm-70v.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M0 0h24v24H0z" fill="none"/><path fill="#1a4480" d="M16.59 8.59 12 13.17 7.41 8.59 6 10l6 6 6-6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons-bg/expand_more--white.svg b/html/matt-chat/uswds/img/usa-icons-bg/expand_more--white.svg
new file mode 100644
index 0000000..1d49891
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons-bg/expand_more--white.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M0 0h24v24H0z" fill="none"/><path fill="#fff" d="M16.59 8.59 12 13.17 7.41 8.59 6 10l6 6 6-6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons-bg/info--white.svg b/html/matt-chat/uswds/img/usa-icons-bg/info--white.svg
new file mode 100644
index 0000000..c74f56e
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons-bg/info--white.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M0 0h24v24H0z" fill="none"/><path fill="#fff" d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons-bg/launch--white.svg b/html/matt-chat/uswds/img/usa-icons-bg/launch--white.svg
new file mode 100644
index 0000000..7bbfa7e
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons-bg/launch--white.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M0 0h24v24H0z" fill="none"/><path fill="#fff" d="M19 19H5V5h7V3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons-bg/navigate_before--white.svg b/html/matt-chat/uswds/img/usa-icons-bg/navigate_before--white.svg
new file mode 100644
index 0000000..1f879f5
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons-bg/navigate_before--white.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M0 0h24v24H0z" fill="none"/><path fill="#fff" d="M15.41 7.41 14 6l-6 6 6 6 1.41-1.41L10.83 12z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons-bg/navigate_far_before--white.svg b/html/matt-chat/uswds/img/usa-icons-bg/navigate_far_before--white.svg
new file mode 100644
index 0000000..72308c5
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons-bg/navigate_far_before--white.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><g fill="none" fill-rule="evenodd"><path d="M0 0h24v24H0z"/><path fill="#fff" fill-rule="nonzero" d="M11.41 7.41 10 6l-6 6 6 6 1.41-1.41L6.83 12zM19.41 7.41 18 6l-6 6 6 6 1.41-1.41L14.83 12z"/></g></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons-bg/navigate_far_next--white.svg b/html/matt-chat/uswds/img/usa-icons-bg/navigate_far_next--white.svg
new file mode 100644
index 0000000..ee0cc75
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons-bg/navigate_far_next--white.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><g fill="none" fill-rule="evenodd"><path d="M0 0h24v24H0z"/><g fill="#fff" fill-rule="nonzero"><path d="m14 6-1.41 1.41L17.17 12l-4.58 4.59L14 18l6-6zM6 6 4.59 7.41 9.17 12l-4.58 4.59L6 18l6-6z"/></g></g></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons-bg/navigate_next--white.svg b/html/matt-chat/uswds/img/usa-icons-bg/navigate_next--white.svg
new file mode 100644
index 0000000..e41f914
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons-bg/navigate_next--white.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M0 0h24v24H0z" fill="none"/><path fill="#fff" d="M10 6 8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons-bg/remove--white.svg b/html/matt-chat/uswds/img/usa-icons-bg/remove--white.svg
new file mode 100644
index 0000000..4426934
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons-bg/remove--white.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M0 0h24v24H0z" fill="none"/><path d="M19 13H5v-2h14v2z" fill="#FFF"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons-bg/search--white.svg b/html/matt-chat/uswds/img/usa-icons-bg/search--white.svg
new file mode 100644
index 0000000..e6ff62c
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons-bg/search--white.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M0 0h24v24H0z" fill="none"/><path fill="#fff" d="M15.5 14h-.79l-.28-.27A6.471 6.471 0 0 0 16 9.5 6.5 6.5 0 1 0 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons-bg/warning--white.svg b/html/matt-chat/uswds/img/usa-icons-bg/warning--white.svg
new file mode 100644
index 0000000..d88c648
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons-bg/warning--white.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M0 0h24v24H0z" fill="none"/><path fill="#fff" d="M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/accessibility_new.svg b/html/matt-chat/uswds/img/usa-icons/accessibility_new.svg
new file mode 100644
index 0000000..1ced1d1
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/accessibility_new.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20.5 6c-2.61.7-5.67 1-8.5 1s-5.89-.3-8.5-1L3 8c1.86.5 4 .83 6 1v13h2v-6h2v6h2V9c2-.17 4.14-.5 6-1l-.5-2zM12 6c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/accessible_forward.svg b/html/matt-chat/uswds/img/usa-icons/accessible_forward.svg
new file mode 100644
index 0000000..afb0690
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/accessible_forward.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><circle cx="17" cy="4.54" r="2"/><path d="M14 17h-2c0 1.65-1.35 3-3 3s-3-1.35-3-3 1.35-3 3-3v-2c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5zm3-3.5h-1.86l1.67-3.67C17.42 8.5 16.44 7 14.96 7h-5.2c-.81 0-1.54.47-1.87 1.2L7.22 10l1.92.53L9.79 9H12l-1.83 4.1c-.6 1.33.39 2.9 1.85 2.9H17v5h2v-5.5c0-1.1-.9-2-2-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/account_balance.svg b/html/matt-chat/uswds/img/usa-icons/account_balance.svg
new file mode 100644
index 0000000..923f730
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/account_balance.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M4 10h3v7H4zm6.5 0h3v7h-3zM2 19h20v3H2zm15-9h3v7h-3zm-5-9L2 6v2h20V6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/account_box.svg b/html/matt-chat/uswds/img/usa-icons/account_box.svg
new file mode 100644
index 0000000..e74d64c
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/account_box.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 3c1.93 0 3.5 1.57 3.5 3.5S13.93 13 12 13s-3.5-1.57-3.5-3.5S10.07 6 12 6zm7 13H5v-.23c0-.62.28-1.2.76-1.58C7.47 15.82 9.64 15 12 15s4.53.82 6.24 2.19c.48.38.76.97.76 1.58V19z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/account_circle.svg b/html/matt-chat/uswds/img/usa-icons/account_circle.svg
new file mode 100644
index 0000000..7ba7670
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/account_circle.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 4c1.93 0 3.5 1.57 3.5 3.5S13.93 13 12 13s-3.5-1.57-3.5-3.5S10.07 6 12 6zm0 14c-2.03 0-4.43-.82-6.14-2.88a9.947 9.947 0 0 1 12.28 0C16.43 19.18 14.03 20 12 20z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/add.svg b/html/matt-chat/uswds/img/usa-icons/add.svg
new file mode 100644
index 0000000..58f73e9
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/add.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/add_circle.svg b/html/matt-chat/uswds/img/usa-icons/add_circle.svg
new file mode 100644
index 0000000..60aaa95
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/add_circle.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm5 11h-4v4h-2v-4H7v-2h4V7h2v4h4v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/add_circle_outline.svg b/html/matt-chat/uswds/img/usa-icons/add_circle_outline.svg
new file mode 100644
index 0000000..55c6b1b
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/add_circle_outline.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13 7h-2v4H7v2h4v4h2v-4h4v-2h-4V7zm-1-5C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/alarm.svg b/html/matt-chat/uswds/img/usa-icons/alarm.svg
new file mode 100644
index 0000000..ec1cfbd
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/alarm.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m22 5.72-4.6-3.86-1.29 1.53 4.6 3.86L22 5.72zM7.88 3.39 6.6 1.86 2 5.71l1.29 1.53 4.59-3.85zM12.5 8H11v6l4.75 2.85.75-1.23-4-2.37V8zM12 4c-4.97 0-9 4.03-9 9s4.02 9 9 9a9 9 0 0 0 0-18zm0 16c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/alternate_email.svg b/html/matt-chat/uswds/img/usa-icons/alternate_email.svg
new file mode 100644
index 0000000..d66771b
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/alternate_email.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10h5v-2h-5c-4.34 0-8-3.66-8-8s3.66-8 8-8 8 3.66 8 8v1.43c0 .79-.71 1.57-1.5 1.57s-1.5-.78-1.5-1.57V12c0-2.76-2.24-5-5-5s-5 2.24-5 5 2.24 5 5 5c1.38 0 2.64-.56 3.54-1.47.65.89 1.77 1.47 2.96 1.47 1.97 0 3.5-1.6 3.5-3.57V12c0-5.52-4.48-10-10-10zm0 13c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/announcement.svg b/html/matt-chat/uswds/img/usa-icons/announcement.svg
new file mode 100644
index 0000000..fd7463c
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/announcement.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-7 9h-2V5h2v6zm0 4h-2v-2h2v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/api.svg b/html/matt-chat/uswds/img/usa-icons/api.svg
new file mode 100644
index 0000000..7f64c43
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/api.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m14 12-2 2-2-2 2-2 2 2zm-2-6 2.12 2.12 2.5-2.5L12 1 7.38 5.62l2.5 2.5L12 6zm-6 6 2.12-2.12-2.5-2.5L1 12l4.62 4.62 2.5-2.5L6 12zm12 0-2.12 2.12 2.5 2.5L23 12l-4.62-4.62-2.5 2.5L18 12zm-6 6-2.12-2.12-2.5 2.5L12 23l4.62-4.62-2.5-2.5L12 18z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/arrow_back.svg b/html/matt-chat/uswds/img/usa-icons/arrow_back.svg
new file mode 100644
index 0000000..00d44bf
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/arrow_back.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/arrow_downward.svg b/html/matt-chat/uswds/img/usa-icons/arrow_downward.svg
new file mode 100644
index 0000000..b6f2de9
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/arrow_downward.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m20 12-1.41-1.41L13 16.17V4h-2v12.17l-5.58-5.59L4 12l8 8 8-8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/arrow_drop_down.svg b/html/matt-chat/uswds/img/usa-icons/arrow_drop_down.svg
new file mode 100644
index 0000000..1c2f14e
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/arrow_drop_down.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m7 10 5 5 5-5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/arrow_drop_up.svg b/html/matt-chat/uswds/img/usa-icons/arrow_drop_up.svg
new file mode 100644
index 0000000..32782e6
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/arrow_drop_up.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m7 14 5-5 5 5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/arrow_forward.svg b/html/matt-chat/uswds/img/usa-icons/arrow_forward.svg
new file mode 100644
index 0000000..453d0c7
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/arrow_forward.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m12 4-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/arrow_upward.svg b/html/matt-chat/uswds/img/usa-icons/arrow_upward.svg
new file mode 100644
index 0000000..b84aab8
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/arrow_upward.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m4 12 1.41 1.41L11 7.83V20h2V7.83l5.58 5.59L20 12l-8-8-8 8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/assessment.svg b/html/matt-chat/uswds/img/usa-icons/assessment.svg
new file mode 100644
index 0000000..cc7768b
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/assessment.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/attach_file.svg b/html/matt-chat/uswds/img/usa-icons/attach_file.svg
new file mode 100644
index 0000000..73eac8a
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/attach_file.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16.5 6v11.5c0 2.21-1.79 4-4 4s-4-1.79-4-4V5a2.5 2.5 0 0 1 5 0v10.5c0 .55-.45 1-1 1s-1-.45-1-1V6H10v9.5a2.5 2.5 0 0 0 5 0V5c0-2.21-1.79-4-4-4S7 2.79 7 5v12.5c0 3.04 2.46 5.5 5.5 5.5s5.5-2.46 5.5-5.5V6h-1.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/attach_money.svg b/html/matt-chat/uswds/img/usa-icons/attach_money.svg
new file mode 100644
index 0000000..76e3e17
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/attach_money.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11.8 10.9c-2.27-.59-3-1.2-3-2.15 0-1.09 1.01-1.85 2.7-1.85 1.78 0 2.44.85 2.5 2.1h2.21c-.07-1.72-1.12-3.3-3.21-3.81V3h-3v2.16c-1.94.42-3.5 1.68-3.5 3.61 0 2.31 1.91 3.46 4.7 4.13 2.5.6 3 1.48 3 2.41 0 .69-.49 1.79-2.7 1.79-2.06 0-2.87-.92-2.98-2.1h-2.2c.12 2.19 1.76 3.42 3.68 3.83V21h3v-2.15c1.95-.37 3.5-1.5 3.5-3.55 0-2.84-2.43-3.81-4.7-4.4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/autorenew.svg b/html/matt-chat/uswds/img/usa-icons/autorenew.svg
new file mode 100644
index 0000000..1494577
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/autorenew.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 6v3l4-4-4-4v3c-4.42 0-8 3.58-8 8 0 1.57.46 3.03 1.24 4.26L6.7 14.8A5.87 5.87 0 0 1 6 12c0-3.31 2.69-6 6-6zm6.76 1.74L17.3 9.2c.44.84.7 1.79.7 2.8 0 3.31-2.69 6-6 6v-3l-4 4 4 4v-3c4.42 0 8-3.58 8-8 0-1.57-.46-3.03-1.24-4.26z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/backpack.svg b/html/matt-chat/uswds/img/usa-icons/backpack.svg
new file mode 100644
index 0000000..1f7260c
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/backpack.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 8v12c0 1.1-.9 2-2 2H6c-1.1 0-2-.9-2-2V8c0-1.86 1.28-3.41 3-3.86V2h3v2h4V2h3v2.14c1.72.45 3 2 3 3.86zM6 12v2h10v2h2v-4H6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/bathtub.svg b/html/matt-chat/uswds/img/usa-icons/bathtub.svg
new file mode 100644
index 0000000..4ca3908
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/bathtub.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><circle cx="7" cy="7" r="2"/><path d="M20 13V4.83C20 3.27 18.73 2 17.17 2c-.75 0-1.47.3-2 .83l-1.25 1.25c-.16-.05-.33-.08-.51-.08-.4 0-.77.12-1.08.32l2.76 2.76c.2-.31.32-.68.32-1.08 0-.18-.03-.34-.07-.51l1.25-1.25a.828.828 0 0 1 1.41.59V13h-6.85c-.3-.21-.57-.45-.82-.72l-1.4-1.55c-.19-.21-.43-.38-.69-.5A2.251 2.251 0 0 0 5 12.25V13H2v6c0 1.1.9 2 2 2 0 .55.45 1 1 1h14c.55 0 1-.45 1-1 1.1 0 2-.9 2-2v-6h-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/bedding.svg b/html/matt-chat/uswds/img/usa-icons/bedding.svg
new file mode 100644
index 0000000..fdf4afd
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/bedding.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M17 10.13a33.86 33.86 0 0 1-10 0 1.92 1.92 0 0 1-1.51-1.46 10.42 10.42 0 0 1 0-4.84 1.92 1.92 0 0 1 1.57-1.46 33.86 33.86 0 0 1 10 0 1.9 1.9 0 0 1 1.56 1.46 10.16 10.16 0 0 1 0 4.84A1.9 1.9 0 0 1 17 10.13Zm4 12.12H7a5.25 5.25 0 0 1 0-10.5h10a3.25 3.25 0 0 1 0 6.5H7a1.25 1.25 0 0 1 0-2.5h10a.75.75 0 0 0 0-1.5H7a2.75 2.75 0 0 0 0 5.5h14a1.25 1.25 0 0 1 0 2.5Z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/bookmark.svg b/html/matt-chat/uswds/img/usa-icons/bookmark.svg
new file mode 100644
index 0000000..1d507a6
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/bookmark.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 3H7c-1.1 0-1.99.9-1.99 2L5 21l7-3 7 3V5c0-1.1-.9-2-2-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/bug_report.svg b/html/matt-chat/uswds/img/usa-icons/bug_report.svg
new file mode 100644
index 0000000..daa8b32
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/bug_report.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 8h-2.81a5.985 5.985 0 0 0-1.82-1.96L17 4.41 15.59 3l-2.17 2.17C12.96 5.06 12.49 5 12 5c-.49 0-.96.06-1.41.17L8.41 3 7 4.41l1.62 1.63C7.88 6.55 7.26 7.22 6.81 8H4v2h2.09c-.05.33-.09.66-.09 1v1H4v2h2v1c0 .34.04.67.09 1H4v2h2.81c1.04 1.79 2.97 3 5.19 3s4.15-1.21 5.19-3H20v-2h-2.09c.05-.33.09-.66.09-1v-1h2v-2h-2v-1c0-.34-.04-.67-.09-1H20V8zm-6 8h-4v-2h4v2zm0-4h-4v-2h4v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/build.svg b/html/matt-chat/uswds/img/usa-icons/build.svg
new file mode 100644
index 0000000..26ead66
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/build.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m22.7 19-9.1-9.1c.9-2.3.4-5-1.5-6.9-2-2-5-2.4-7.4-1.3L9 6 6 9 1.6 4.7C.4 7.1.9 10.1 2.9 12.1c1.9 1.9 4.6 2.4 6.9 1.5l9.1 9.1c.4.4 1 .4 1.4 0l2.3-2.3c.5-.4.5-1.1.1-1.4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/calendar_today.svg b/html/matt-chat/uswds/img/usa-icons/calendar_today.svg
new file mode 100644
index 0000000..9c40555
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/calendar_today.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 3h-1V1h-2v2H7V1H5v2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 18H4V8h16v13z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/campaign.svg b/html/matt-chat/uswds/img/usa-icons/campaign.svg
new file mode 100644
index 0000000..5543378
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/campaign.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 11v2h4v-2h-4zm-2 6.61c.96.71 2.21 1.65 3.2 2.39.4-.53.8-1.07 1.2-1.6-.99-.74-2.24-1.68-3.2-2.4-.4.54-.8 1.08-1.2 1.61zM20.4 5.6c-.4-.53-.8-1.07-1.2-1.6-.99.74-2.24 1.68-3.2 2.4.4.53.8 1.07 1.2 1.6.96-.72 2.21-1.65 3.2-2.4zM4 9c-1.1 0-2 .9-2 2v2c0 1.1.9 2 2 2h1v4h2v-4h1l5 3V6L8 9H4zm11.5 3c0-1.33-.58-2.53-1.5-3.35v6.69c.92-.81 1.5-2.01 1.5-3.34z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/camping.svg b/html/matt-chat/uswds/img/usa-icons/camping.svg
new file mode 100644
index 0000000..045864c
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/camping.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill-rule="evenodd" d="m12 5 8 13h2v2H2v-2h2l8-13zm.05 8-2.69 5h5.38l-2.69-5zM5.5 3l-.018.024A2.5 2.5 0 0 0 7.498 7 2.5 2.5 0 1 1 5.5 3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/cancel.svg b/html/matt-chat/uswds/img/usa-icons/cancel.svg
new file mode 100644
index 0000000..d6e55da
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/cancel.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/chat.svg b/html/matt-chat/uswds/img/usa-icons/chat.svg
new file mode 100644
index 0000000..1c68f72
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/chat.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM6 9h12v2H6V9zm8 5H6v-2h8v2zm4-6H6V6h12v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/check.svg b/html/matt-chat/uswds/img/usa-icons/check.svg
new file mode 100644
index 0000000..8676ca3
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/check.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M9 16.17 4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/check_box_outline_blank.svg b/html/matt-chat/uswds/img/usa-icons/check_box_outline_blank.svg
new file mode 100644
index 0000000..03aea59
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/check_box_outline_blank.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/check_circle.svg b/html/matt-chat/uswds/img/usa-icons/check_circle.svg
new file mode 100644
index 0000000..1775c86
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/check_circle.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/check_circle_outline.svg b/html/matt-chat/uswds/img/usa-icons/check_circle_outline.svg
new file mode 100644
index 0000000..5621f73
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/check_circle_outline.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16.59 7.58 10 14.17l-3.59-3.58L5 12l5 5 8-8zM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/checkroom.svg b/html/matt-chat/uswds/img/usa-icons/checkroom.svg
new file mode 100644
index 0000000..915d366
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/checkroom.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21.6 18.2 13 11.75v-.91a3.496 3.496 0 0 0-.18-6.75A3.51 3.51 0 0 0 8.5 7.5h2c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5c0 .84-.69 1.52-1.53 1.5-.54-.01-.97.45-.97.99v1.76L2.4 18.2c-.77.58-.36 1.8.6 1.8h18c.96 0 1.37-1.22.6-1.8zM6 18l6-4.5 6 4.5H6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/chevron_left.svg b/html/matt-chat/uswds/img/usa-icons/chevron_left.svg
new file mode 100644
index 0000000..44007bd
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/chevron_left.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M0 0h24v24H0z" fill="none"/><path d="M15.41 7.41 14 6l-6 6 6 6 1.41-1.41L10.83 12z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/chevron_right.svg b/html/matt-chat/uswds/img/usa-icons/chevron_right.svg
new file mode 100644
index 0000000..e5228d3
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/chevron_right.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M0 0h24v24H0z" fill="none"/><path d="M10 6 8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/clean_hands.svg b/html/matt-chat/uswds/img/usa-icons/clean_hands.svg
new file mode 100644
index 0000000..5e03fa5
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/clean_hands.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m16.99 5 .63 1.37 1.37.63-1.37.63L16.99 9l-.63-1.37L14.99 7l1.37-.63.63-1.37M11 6.13V4h2c.57 0 1.1.17 1.55.45l1.43-1.43A4.899 4.899 0 0 0 13 2H7.5v2H9v2.14A5.007 5.007 0 0 0 5.26 9.5h3.98L15 11.65v-.62a5 5 0 0 0-4-4.9zM1 22h4V11H1v11zm19-5h-7l-2.09-.73.33-.94L13 16h2.82c.65 0 1.18-.53 1.18-1.18 0-.49-.31-.93-.77-1.11L8.97 11H7v9.02L14 22l8-3c-.01-1.1-.89-2-2-2zm0-3c1.1 0 2-.9 2-2s-2-4-2-4-2 2.9-2 4 .9 2 2 2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/close.svg b/html/matt-chat/uswds/img/usa-icons/close.svg
new file mode 100644
index 0000000..c3f7c2f
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/close.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/closed_caption.svg b/html/matt-chat/uswds/img/usa-icons/closed_caption.svg
new file mode 100644
index 0000000..1c59819
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/closed_caption.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 4H5a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-8 7H9.5v-.5h-2v3h2V13H11v1c0 .55-.45 1-1 1H7c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1h3c.55 0 1 .45 1 1v1zm7 0h-1.5v-.5h-2v3h2V13H18v1c0 .55-.45 1-1 1h-3c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1h3c.55 0 1 .45 1 1v1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/clothes.svg b/html/matt-chat/uswds/img/usa-icons/clothes.svg
new file mode 100644
index 0000000..949304f
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/clothes.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M15.7 2.37 15 2.3V4a3 3 0 0 1-6 0V2.3l-.7.07a7 7 0 0 0-6.3 7V20h3V10h1.5v12h11V10H19v10h3V9.33a7 7 0 0 0-6.3-6.96Z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/cloud.svg b/html/matt-chat/uswds/img/usa-icons/cloud.svg
new file mode 100644
index 0000000..a055f2c
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/cloud.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19.35 10.04A7.49 7.49 0 0 0 12 4C9.11 4 6.6 5.64 5.35 8.04A5.994 5.994 0 0 0 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/code.svg b/html/matt-chat/uswds/img/usa-icons/code.svg
new file mode 100644
index 0000000..0145423
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/code.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M9.4 16.6 4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0 4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/comment.svg b/html/matt-chat/uswds/img/usa-icons/comment.svg
new file mode 100644
index 0000000..db645e8
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/comment.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21.99 4c0-1.1-.89-2-1.99-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h14l4 4-.01-18zM18 14H6v-2h12v2zm0-3H6V9h12v2zm0-3H6V6h12v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/connect_without_contact.svg b/html/matt-chat/uswds/img/usa-icons/connect_without_contact.svg
new file mode 100644
index 0000000..a7a34dc
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/connect_without_contact.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11 14H9a9 9 0 0 1 9-9v2c-3.87 0-7 3.13-7 7zm7-3V9c-2.76 0-5 2.24-5 5h2c0-1.66 1.34-3 3-3zM7 4c0-1.11-.89-2-2-2s-2 .89-2 2 .89 2 2 2 2-.89 2-2zm4.45.5h-2A2.99 2.99 0 0 1 6.5 7h-3C2.67 7 2 7.67 2 8.5V11h6V8.74a4.97 4.97 0 0 0 3.45-4.24zM19 17c1.11 0 2-.89 2-2s-.89-2-2-2-2 .89-2 2 .89 2 2 2zm1.5 1h-3a2.99 2.99 0 0 1-2.95-2.5h-2A4.97 4.97 0 0 0 16 19.74V22h6v-2.5c0-.83-.67-1.5-1.5-1.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/construction.svg b/html/matt-chat/uswds/img/usa-icons/construction.svg
new file mode 100644
index 0000000..d33beb0
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/construction.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m13.783 15.172 2.121-2.121 5.996 5.996-2.121 2.121zM17.5 10c1.93 0 3.5-1.57 3.5-3.5 0-.58-.16-1.12-.41-1.6l-2.7 2.7-1.49-1.49 2.7-2.7c-.48-.25-1.02-.41-1.6-.41C15.57 3 14 4.57 14 6.5c0 .41.08.8.21 1.16l-1.85 1.85-1.78-1.78.71-.71-1.41-1.41L12 3.49a3 3 0 0 0-4.24 0L4.22 7.03l1.41 1.41H2.81l-.71.71 3.54 3.54.71-.71V9.15l1.41 1.41.71-.71 1.78 1.78-7.41 7.41 2.12 2.12L16.34 9.79c.36.13.75.21 1.16.21z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/construction_worker.svg b/html/matt-chat/uswds/img/usa-icons/construction_worker.svg
new file mode 100644
index 0000000..0946228
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/construction_worker.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><circle cx="10.5" cy="4.5" r="1.5"/><path d="M19.59 16h-1.27l-.64.71h-1.27L15.14 21h1.27l.64-.71h1.9l.64.71h1.27l-1.27-5zm-5.21-3.28L14 14.19l-3.8-1.26-.1-.16.52-3.13c.93 1.37 2.15 2.11 4.6 2.11v-1.5c-2.44 0-3.09-.77-3.9-2.39a2.65 2.65 0 0 0-3-1.59L3.75 7.41v3.38l-1.51-.5-.48 1.42 4.35 1.45L5 20.86l2 .28 1-7.34.38.13L10 16.3V21h2v-5.3l-.49-.7 2 .67-.37 1.27 1.91.57 1.24-4.19Zm-9.13-1.43v-2.7l1.57-.4-.49 3.46Z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/contact_page.svg b/html/matt-chat/uswds/img/usa-icons/contact_page.svg
new file mode 100644
index 0000000..2f2a807
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/contact_page.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M14 2H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V8l-6-6zm-2 8c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2zm4 8H8v-.57c0-.81.48-1.53 1.22-1.85a6.95 6.95 0 0 1 5.56 0A2.01 2.01 0 0 1 16 17.43V18z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/content_copy.svg b/html/matt-chat/uswds/img/usa-icons/content_copy.svg
new file mode 100644
index 0000000..7c6b60a
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/content_copy.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/coronavirus.svg b/html/matt-chat/uswds/img/usa-icons/coronavirus.svg
new file mode 100644
index 0000000..cbfb0d7
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/coronavirus.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21.25 10.5c-.41 0-.75.34-.75.75h-1.54a6.978 6.978 0 0 0-1.52-3.65l1.09-1.09.01.01c.29.29.77.29 1.06 0s.29-.77 0-1.06L18.54 4.4a.754.754 0 0 0-1.06 0c-.29.29-.29.76-.01 1.05l-1.09 1.09a7.015 7.015 0 0 0-3.64-1.51V3.5h.01c.41 0 .75-.34.75-.75S13.16 2 12.75 2h-1.5c-.41 0-.75.34-.75.75s.33.74.74.75v1.55c-1.37.14-2.62.69-3.64 1.51L6.51 5.47l.01-.01c.29-.29.29-.77 0-1.06a.754.754 0 0 0-1.06 0L4.4 5.46c-.29.29-.29.77 0 1.06.29.29.76.29 1.05.01l1.09 1.09a6.89 6.89 0 0 0-1.5 3.63H3.5c0-.41-.34-.75-.75-.75s-.75.34-.75.75v1.5c0 .41.34.75.75.75s.75-.34.75-.75h1.54c.15 1.37.69 2.61 1.5 3.63l-1.09 1.09a.742.742 0 0 0-1.05.01c-.29.29-.29.77 0 1.06l1.06 1.06c.29.29.77.29 1.06 0 .29-.29.29-.77 0-1.06l-.01-.01 1.09-1.09c1.02.82 2.26 1.36 3.63 1.51v1.55c-.41.01-.74.34-.74.75s.34.75.75.75h1.5c.41 0 .75-.34.75-.75s-.34-.75-.75-.75h-.01v-1.54c1.37-.14 2.62-.69 3.64-1.51l1.09 1.09c-.29.29-.28.76.01 1.05.29.29.77.29 1.06 0l1.06-1.06c.29-.29.29-.77 0-1.06a.754.754 0 0 0-1.06 0l-.01.01-1.09-1.09a7.025 7.025 0 0 0 1.52-3.65h1.54c0 .41.34.75.75.75s.75-.34.75-.75v-1.5c.01-.4-.33-.74-.74-.74zM13.75 8c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zM12 13c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm-1.75-5c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zM8.5 13c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm1.75 3c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm3.5 0c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm.75-4c0-.55.45-1 1-1s1 .45 1 1-.45 1-1 1-1-.45-1-1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/credit_card.svg b/html/matt-chat/uswds/img/usa-icons/credit_card.svg
new file mode 100644
index 0000000..99afa68
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/credit_card.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 4H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V6c0-1.11-.89-2-2-2zm0 14H4v-6h16v6zm0-10H4V6h16v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/deck.svg b/html/matt-chat/uswds/img/usa-icons/deck.svg
new file mode 100644
index 0000000..7fe3137
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/deck.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M22 9 12 2 2 9h9v13h2V9z"/><path d="m4.14 12-1.96.37.82 4.37V22h2l.02-4H7v4h2v-6H4.9zm14.96 4H15v6h2v-4h1.98l.02 4h2v-5.26l.82-4.37-1.96-.37z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/delete.svg b/html/matt-chat/uswds/img/usa-icons/delete.svg
new file mode 100644
index 0000000..0969a4d
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/delete.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/device_thermostat.svg b/html/matt-chat/uswds/img/usa-icons/device_thermostat.svg
new file mode 100644
index 0000000..f66abea
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/device_thermostat.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15 13V5c0-1.66-1.34-3-3-3S9 3.34 9 5v8c-1.21.91-2 2.37-2 4 0 2.76 2.24 5 5 5s5-2.24 5-5c0-1.63-.79-3.09-2-4zm-4-8c0-.55.45-1 1-1s1 .45 1 1h-1v1h1v2h-1v1h1v2h-2V5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/directions.svg b/html/matt-chat/uswds/img/usa-icons/directions.svg
new file mode 100644
index 0000000..9ae0683
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/directions.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m21.41 10.59-7.99-8c-.78-.78-2.05-.78-2.83 0l-8.01 8c-.78.78-.78 2.05 0 2.83l8.01 8c.78.78 2.05.78 2.83 0l7.99-8c.79-.79.79-2.05 0-2.83zM13.5 14.5V12H10v3H8v-4c0-.55.45-1 1-1h4.5V7.5L17 11l-3.5 3.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/directions_bike.svg b/html/matt-chat/uswds/img/usa-icons/directions_bike.svg
new file mode 100644
index 0000000..a1a04a5
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/directions_bike.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15.5 5.5c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zM5 12c-2.8 0-5 2.2-5 5s2.2 5 5 5 5-2.2 5-5-2.2-5-5-5zm0 8.5c-1.9 0-3.5-1.6-3.5-3.5s1.6-3.5 3.5-3.5 3.5 1.6 3.5 3.5-1.6 3.5-3.5 3.5zm5.8-10 2.4-2.4.8.8c1.3 1.3 3 2.1 5.1 2.1V9c-1.5 0-2.7-.6-3.6-1.5l-1.9-1.9c-.5-.4-1-.6-1.6-.6s-1.1.2-1.4.6L7.8 8.4c-.4.4-.6.9-.6 1.4 0 .6.2 1.1.6 1.4L11 14v5h2v-6.2l-2.2-2.3zM19 12c-2.8 0-5 2.2-5 5s2.2 5 5 5 5-2.2 5-5-2.2-5-5-5zm0 8.5c-1.9 0-3.5-1.6-3.5-3.5s1.6-3.5 3.5-3.5 3.5 1.6 3.5 3.5-1.6 3.5-3.5 3.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/directions_bus.svg b/html/matt-chat/uswds/img/usa-icons/directions_bus.svg
new file mode 100644
index 0000000..ade3c4d
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/directions_bus.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M4 16c0 .88.39 1.67 1 2.22V20c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1h8v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1.78c.61-.55 1-1.34 1-2.22V6c0-3.5-3.58-4-8-4s-8 .5-8 4v10zm3.5 1c-.83 0-1.5-.67-1.5-1.5S6.67 14 7.5 14s1.5.67 1.5 1.5S8.33 17 7.5 17zm9 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm1.5-6H6V6h12v5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/directions_car.svg b/html/matt-chat/uswds/img/usa-icons/directions_car.svg
new file mode 100644
index 0000000..7cd866c
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/directions_car.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18.92 6.01C18.72 5.42 18.16 5 17.5 5h-11c-.66 0-1.21.42-1.42 1.01L3 12v8c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1h12v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-8l-2.08-5.99zM6.5 16c-.83 0-1.5-.67-1.5-1.5S5.67 13 6.5 13s1.5.67 1.5 1.5S7.33 16 6.5 16zm11 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zM5 11l1.5-4.5h11L19 11H5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/directions_walk.svg b/html/matt-chat/uswds/img/usa-icons/directions_walk.svg
new file mode 100644
index 0000000..aef2e9e
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/directions_walk.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13.5 5.5c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zM9.8 8.9 7 23h2.1l1.8-8 2.1 2v6h2v-7.5l-2.1-2 .6-3C14.8 12 16.8 13 19 13v-2c-1.9 0-3.5-1-4.3-2.4l-1-1.6c-.4-.6-1-1-1.7-1-.3 0-.5.1-.8.1L6 8.3V13h2V9.6l1.8-.7"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/do_not_disturb.svg b/html/matt-chat/uswds/img/usa-icons/do_not_disturb.svg
new file mode 100644
index 0000000..a6dd08d
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/do_not_disturb.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8 0-1.85.63-3.55 1.69-4.9L16.9 18.31A7.902 7.902 0 0 1 12 20zm6.31-3.1L7.1 5.69A7.902 7.902 0 0 1 12 4c4.42 0 8 3.58 8 8 0 1.85-.63 3.55-1.69 4.9z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/do_not_touch.svg b/html/matt-chat/uswds/img/usa-icons/do_not_touch.svg
new file mode 100644
index 0000000..979964e
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/do_not_touch.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m13 10.17-2.5-2.5V2.25a1.25 1.25 0 0 1 2.5 0v7.92zm7 2.58v-7.5a1.25 1.25 0 0 0-2.5 0V11h-1V3.25a1.25 1.25 0 0 0-2.5 0v7.92l6 6v-4.42zM9.5 4.25C9.5 3.56 8.94 3 8.25 3c-.67 0-1.2.53-1.24 1.18L9.5 6.67V4.25zm3.5 5.92-2.5-2.5V2.25a1.25 1.25 0 0 1 2.5 0v7.92zm7 2.58v-7.5a1.25 1.25 0 0 0-2.5 0V11h-1V3.25a1.25 1.25 0 0 0-2.5 0v7.92l6 6v-4.42zM9.5 4.25C9.5 3.56 8.94 3 8.25 3c-.67 0-1.2.53-1.24 1.18L9.5 6.67V4.25zm11.69 16.94L2.81 2.81 1.39 4.22l5.63 5.63L7 9.83v4.3c-1.11-.64-2.58-1.47-2.6-1.48-.17-.09-.34-.14-.54-.14-.26 0-.5.09-.7.26-.04.01-1.16 1.11-1.16 1.11l6.8 7.18c.57.6 1.35.94 2.18.94H17c.62 0 1.18-.19 1.65-.52l-.02-.02 1.15 1.15 1.41-1.42z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/drag_handle.svg b/html/matt-chat/uswds/img/usa-icons/drag_handle.svg
new file mode 100644
index 0000000..a292338
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/drag_handle.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 9H4v2h16V9zM4 15h16v-2H4v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/eco.svg b/html/matt-chat/uswds/img/usa-icons/eco.svg
new file mode 100755
index 0000000..651b9ed
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/eco.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path fill="none" d="M0 0h24v24H0z"/><path d="M6.05 8.05a7.001 7.001 0 0 0-.02 9.88c1.47-3.4 4.09-6.24 7.36-7.93A15.952 15.952 0 0 0 8 19.32c2.6 1.23 5.8.78 7.95-1.37C19.43 14.47 20 4 20 4S9.53 4.57 6.05 8.05z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/edit.svg b/html/matt-chat/uswds/img/usa-icons/edit.svg
new file mode 100644
index 0000000..a2841f9
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/edit.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04a.996.996 0 0 0 0-1.41l-2.34-2.34a.996.996 0 0 0-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/electrical_services.svg b/html/matt-chat/uswds/img/usa-icons/electrical_services.svg
new file mode 100644
index 0000000..f57aefc
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/electrical_services.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 14c0-.55-.45-1-1-1h-2v2h2c.55 0 1-.45 1-1zm-1 3h-2v2h2c.55 0 1-.45 1-1s-.45-1-1-1zm-8-3h-2v4h2c0 1.1.9 2 2 2h3v-8h-3c-1.1 0-2 .9-2 2z"/><path d="M5 13c0-1.1.9-2 2-2h1.5c1.93 0 3.5-1.57 3.5-3.5S10.43 4 8.5 4H5c-.55 0-1 .45-1 1s.45 1 1 1h3.5c.83 0 1.5.67 1.5 1.5S9.33 9 8.5 9H7c-2.21 0-4 1.79-4 4s1.79 4 4 4h2v-2H7c-1.1 0-2-.9-2-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/emoji_events.svg b/html/matt-chat/uswds/img/usa-icons/emoji_events.svg
new file mode 100644
index 0000000..95af5b3
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/emoji_events.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 5h-2V3H7v2H5c-1.1 0-2 .9-2 2v1c0 2.55 1.92 4.63 4.39 4.94A5.01 5.01 0 0 0 11 15.9V19H7v2h10v-2h-4v-3.1a5.01 5.01 0 0 0 3.61-2.96C19.08 12.63 21 10.55 21 8V7c0-1.1-.9-2-2-2zM5 8V7h2v3.82C5.84 10.4 5 9.3 5 8zm14 0c0 1.3-.84 2.4-2 2.82V7h2v1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/error.svg b/html/matt-chat/uswds/img/usa-icons/error.svg
new file mode 100644
index 0000000..d30cc3a
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/error.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/error_outline.svg b/html/matt-chat/uswds/img/usa-icons/error_outline.svg
new file mode 100644
index 0000000..ad877f3
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/error_outline.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/event.svg b/html/matt-chat/uswds/img/usa-icons/event.svg
new file mode 100644
index 0000000..ba09a17
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/event.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 12h-5v5h5v-5zM16 1v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2h-1V1h-2zm3 18H5V8h14v11z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/expand_less.svg b/html/matt-chat/uswds/img/usa-icons/expand_less.svg
new file mode 100644
index 0000000..5398524
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/expand_less.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m12 8-6 6 1.41 1.41L12 10.83l4.59 4.58L18 14z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/expand_more.svg b/html/matt-chat/uswds/img/usa-icons/expand_more.svg
new file mode 100644
index 0000000..4428af0
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/expand_more.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16.59 8.59 12 13.17 7.41 8.59 6 10l6 6 6-6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/facebook.svg b/html/matt-chat/uswds/img/usa-icons/facebook.svg
new file mode 100644
index 0000000..f4feccc
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/facebook.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path fill="none" d="M0 0h24v24H0z"/><path d="M22 12c0-5.52-4.48-10-10-10S2 6.48 2 12c0 4.84 3.44 8.87 8 9.8V15H8v-3h2V9.5C10 7.57 11.57 6 13.5 6H16v3h-2c-.55 0-1 .45-1 1v2h3v3h-3v6.95c5.05-.5 9-4.76 9-9.95z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/fast_forward.svg b/html/matt-chat/uswds/img/usa-icons/fast_forward.svg
new file mode 100644
index 0000000..0b8eb5c
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/fast_forward.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m4 18 8.5-6L4 6v12zm9-12v12l8.5-6L13 6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/fast_rewind.svg b/html/matt-chat/uswds/img/usa-icons/fast_rewind.svg
new file mode 100644
index 0000000..18c2140
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/fast_rewind.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11 18V6l-8.5 6 8.5 6zm.5-6 8.5 6V6l-8.5 6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/favorite.svg b/html/matt-chat/uswds/img/usa-icons/favorite.svg
new file mode 100644
index 0000000..80f9a05
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/favorite.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m12 21.35-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/favorite_border.svg b/html/matt-chat/uswds/img/usa-icons/favorite_border.svg
new file mode 100644
index 0000000..f4e03cd
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/favorite_border.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16.5 3c-1.74 0-3.41.81-4.5 2.09C10.91 3.81 9.24 3 7.5 3 4.42 3 2 5.42 2 8.5c0 3.78 3.4 6.86 8.55 11.54L12 21.35l1.45-1.32C18.6 15.36 22 12.28 22 8.5 22 5.42 19.58 3 16.5 3zm-4.4 15.55-.1.1-.1-.1C7.14 14.24 4 11.39 4 8.5 4 6.5 5.5 5 7.5 5c1.54 0 3.04.99 3.57 2.36h1.87C13.46 5.99 14.96 5 16.5 5c2 0 3.5 1.5 3.5 3.5 0 2.89-3.14 5.74-7.9 10.05z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/fax.svg b/html/matt-chat/uswds/img/usa-icons/fax.svg
new file mode 100644
index 0000000..5b5e193
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/fax.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 9h-1V4H8v16h14v-8c0-1.66-1.34-3-3-3zm-9-3h6v3h-6V6zm4 11h-4v-5h4v5zm2 0c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm0-3c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm3 3c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm0-3c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zM4.5 8A2.5 2.5 0 0 0 2 10.5v8a2.5 2.5 0 0 0 5 0v-8A2.5 2.5 0 0 0 4.5 8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/file_download.svg b/html/matt-chat/uswds/img/usa-icons/file_download.svg
new file mode 100644
index 0000000..ef421c3
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/file_download.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 9h-4V3H9v6H5l7 7 7-7zM5 18v2h14v-2H5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/file_present.svg b/html/matt-chat/uswds/img/usa-icons/file_present.svg
new file mode 100644
index 0000000..fc1ec9f
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/file_present.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15 2H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V7l-5-5zM6 20V4h8v4h4v12H6zm10-10v5c0 2.21-1.79 4-4 4s-4-1.79-4-4V8.5a2.5 2.5 0 0 1 2.76-2.49c1.3.13 2.24 1.32 2.24 2.63V15h-2V8.5c0-.28-.22-.5-.5-.5s-.5.22-.5.5V15c0 1.1.9 2 2 2s2-.9 2-2v-5h2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/file_upload.svg b/html/matt-chat/uswds/img/usa-icons/file_upload.svg
new file mode 100644
index 0000000..0fe9aad
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/file_upload.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M9 16h6v-6h4l-7-7-7 7h4zm-4 2h14v2H5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/filter_alt.svg b/html/matt-chat/uswds/img/usa-icons/filter_alt.svg
new file mode 100644
index 0000000..6dab644
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/filter_alt.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M4.25 5.61C6.27 8.2 10 13 10 13v6c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-6s3.72-4.8 5.74-7.39A.998.998 0 0 0 18.95 4H5.04c-.83 0-1.3.95-.79 1.61z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/filter_list.svg b/html/matt-chat/uswds/img/usa-icons/filter_list.svg
new file mode 100644
index 0000000..972d401
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/filter_list.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10 18h4v-2h-4v2zM3 6v2h18V6H3zm3 7h12v-2H6v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/fingerprint.svg b/html/matt-chat/uswds/img/usa-icons/fingerprint.svg
new file mode 100644
index 0000000..31e2b19
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/fingerprint.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17.81 4.47c-.08 0-.16-.02-.23-.06C15.66 3.42 14 3 12.01 3c-1.98 0-3.86.47-5.57 1.41-.24.13-.54.04-.68-.2a.506.506 0 0 1 .2-.68C7.82 2.52 9.86 2 12.01 2c2.13 0 3.99.47 6.03 1.52.25.13.34.43.21.67a.49.49 0 0 1-.44.28zM3.5 9.72a.499.499 0 0 1-.41-.79c.99-1.4 2.25-2.5 3.75-3.27C9.98 4.04 14 4.03 17.15 5.65c1.5.77 2.76 1.86 3.75 3.25a.5.5 0 0 1-.12.7c-.23.16-.54.11-.7-.12a9.388 9.388 0 0 0-3.39-2.94c-2.87-1.47-6.54-1.47-9.4.01-1.36.7-2.5 1.7-3.4 2.96-.08.14-.23.21-.39.21zm6.25 12.07a.47.47 0 0 1-.35-.15c-.87-.87-1.34-1.43-2.01-2.64-.69-1.23-1.05-2.73-1.05-4.34 0-2.97 2.54-5.39 5.66-5.39s5.66 2.42 5.66 5.39c0 .28-.22.5-.5.5s-.5-.22-.5-.5c0-2.42-2.09-4.39-4.66-4.39-2.57 0-4.66 1.97-4.66 4.39 0 1.44.32 2.77.93 3.85.64 1.15 1.08 1.64 1.85 2.42.19.2.19.51 0 .71-.11.1-.24.15-.37.15zm7.17-1.85c-1.19 0-2.24-.3-3.1-.89-1.49-1.01-2.38-2.65-2.38-4.39 0-.28.22-.5.5-.5s.5.22.5.5c0 1.41.72 2.74 1.94 3.56.71.48 1.54.71 2.54.71.24 0 .64-.03 1.04-.1.27-.05.53.13.58.41.05.27-.13.53-.41.58-.57.11-1.07.12-1.21.12zM14.91 22c-.04 0-.09-.01-.13-.02-1.59-.44-2.63-1.03-3.72-2.1a7.297 7.297 0 0 1-2.17-5.22c0-1.62 1.38-2.94 3.08-2.94 1.7 0 3.08 1.32 3.08 2.94 0 1.07.93 1.94 2.08 1.94s2.08-.87 2.08-1.94c0-3.77-3.25-6.83-7.25-6.83-2.84 0-5.44 1.58-6.61 4.03-.39.81-.59 1.76-.59 2.8 0 .78.07 2.01.67 3.61.1.26-.03.55-.29.64-.26.1-.55-.04-.64-.29a11.14 11.14 0 0 1-.73-3.96c0-1.2.23-2.29.68-3.24 1.33-2.79 4.28-4.6 7.51-4.6 4.55 0 8.25 3.51 8.25 7.83 0 1.62-1.38 2.94-3.08 2.94s-3.08-1.32-3.08-2.94c0-1.07-.93-1.94-2.08-1.94s-2.08.87-2.08 1.94c0 1.71.66 3.31 1.87 4.51.95.94 1.86 1.46 3.27 1.85.27.07.42.35.35.61-.05.23-.26.38-.47.38z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/first_page.svg b/html/matt-chat/uswds/img/usa-icons/first_page.svg
new file mode 100644
index 0000000..81a0845
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/first_page.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18.41 16.59 13.82 12l4.59-4.59L17 6l-6 6 6 6zM6 6h2v12H6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/flag.svg b/html/matt-chat/uswds/img/usa-icons/flag.svg
new file mode 100644
index 0000000..6740057
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/flag.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M14.4 6 14 4H5v17h2v-7h5.6l.4 2h7V6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/flickr.svg b/html/matt-chat/uswds/img/usa-icons/flickr.svg
new file mode 100644
index 0000000..0a43db6
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/flickr.svg
@@ -0,0 +1 @@
+<svg width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M6.459 17a4.444 4.444 0 0 1-4.116-2.768 4.541 4.541 0 0 1 .954-4.909 4.405 4.405 0 0 1 4.845-.982 4.5 4.5 0 0 1 2.747 4.159 4.514 4.514 0 0 1-1.292 3.181A4.403 4.403 0 0 1 6.459 17Zm11.111 0a4.444 4.444 0 0 1-4.116-2.768 4.541 4.541 0 0 1 .954-4.909 4.405 4.405 0 0 1 4.845-.982A4.5 4.5 0 0 1 22 12.5a4.514 4.514 0 0 1-1.292 3.181A4.403 4.403 0 0 1 17.57 17Z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/flight.svg b/html/matt-chat/uswds/img/usa-icons/flight.svg
new file mode 100644
index 0000000..2fe1dea
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/flight.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 16v-2l-8-5V3.5c0-.83-.67-1.5-1.5-1.5S10 2.67 10 3.5V9l-8 5v2l8-2.5V19l-2 1.5V22l3.5-1 3.5 1v-1.5L13 19v-5.5l8 2.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/flooding.svg b/html/matt-chat/uswds/img/usa-icons/flooding.svg
new file mode 100644
index 0000000..fbada82
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/flooding.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M17 18.16a6 6 0 0 0-2.95.8 4.08 4.08 0 0 1-2.05.6 3.81 3.81 0 0 1-2-.56 5.84 5.84 0 0 0-5.9 0 4.05 4.05 0 0 1-2 .6v2a6 6 0 0 0 3-.8 4.05 4.05 0 0 1 1.9-.69 3.87 3.87 0 0 1 2.05.6 5.84 5.84 0 0 0 5.9 0 4.08 4.08 0 0 1 2.05-.6 3.81 3.81 0 0 1 2.05.6 5.9 5.9 0 0 0 2.95.8v-2a3.81 3.81 0 0 1-2-.51 6 6 0 0 0-3-.84Zm3-3.65a6.8 6.8 0 0 0-2-.71V10h3l-9-7-9 7h3v3.8a6.8 6.8 0 0 0-1.95.71 4.15 4.15 0 0 1-2 .6v1.95a6.07 6.07 0 0 0 3-.8 3.8 3.8 0 0 1 4.1 0 5.87 5.87 0 0 0 2.95.8 6 6 0 0 0 2.95-.8 3.8 3.8 0 0 1 4.1 0 5.9 5.9 0 0 0 2.95.8v-1.95a3.81 3.81 0 0 1-2.1-.6Zm-9.95 0V11h4v3.54a4.19 4.19 0 0 1-2 .57 3.8 3.8 0 0 1-2.05-.57Z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/folder.svg b/html/matt-chat/uswds/img/usa-icons/folder.svg
new file mode 100644
index 0000000..e70b01c
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/folder.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2h-8l-2-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/folder_open.svg b/html/matt-chat/uswds/img/usa-icons/folder_open.svg
new file mode 100644
index 0000000..0f59689
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/folder_open.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 6h-8l-2-2H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm0 12H4V8h16v10z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/format_quote.svg b/html/matt-chat/uswds/img/usa-icons/format_quote.svg
new file mode 100644
index 0000000..9d8fa8b
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/format_quote.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M6 17h3l2-4V7H5v6h3zm8 0h3l2-4V7h-6v6h3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/format_size.svg b/html/matt-chat/uswds/img/usa-icons/format_size.svg
new file mode 100644
index 0000000..51d9371
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/format_size.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M9 4v3h5v12h3V7h5V4H9zm-6 8h3v7h3v-7h3V9H3v3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/forum.svg b/html/matt-chat/uswds/img/usa-icons/forum.svg
new file mode 100644
index 0000000..8c958d9
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/forum.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 6h-2v9H6v2c0 .55.45 1 1 1h11l4 4V7c0-.55-.45-1-1-1zm-4 6V3c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v14l4-4h10c.55 0 1-.45 1-1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/github.svg b/html/matt-chat/uswds/img/usa-icons/github.svg
new file mode 100644
index 0000000..09f6740
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/github.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M12 2a10 10 0 0 0-3.16 19.49c.5.09.68-.22.68-.48v-1.7C6.73 19.91 6.14 18 6.14 18A2.69 2.69 0 0 0 5 16.5c-.91-.62.07-.61.07-.61a2.13 2.13 0 0 1 1.53 1 2.14 2.14 0 0 0 2.91.83 2.16 2.16 0 0 1 .63-1.34c-2.14-.21-4.52-1.07-4.52-4.9a3.89 3.89 0 0 1 1-2.69 3.57 3.57 0 0 1 .1-2.64s.84-.27 2.75 1a9.63 9.63 0 0 1 5 0c1.91-1.29 2.75-1 2.75-1a3.57 3.57 0 0 1 .1 2.64 3.89 3.89 0 0 1 1 2.69c0 3.84-2.34 4.68-4.57 4.93a2.39 2.39 0 0 1 .68 1.85v2.75c0 .33.18.58.69.48A10 10 0 0 0 12 2Z" fill-rule="evenodd"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/grid_view.svg b/html/matt-chat/uswds/img/usa-icons/grid_view.svg
new file mode 100644
index 0000000..b732680
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/grid_view.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill-rule="evenodd" d="M3 3v8h8V3H3zm6 6H5V5h4v4zm-6 4v8h8v-8H3zm6 6H5v-4h4v4zm4-16v8h8V3h-8zm6 6h-4V5h4v4zm-6 4v8h8v-8h-8zm6 6h-4v-4h4v4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/group_add.svg b/html/matt-chat/uswds/img/usa-icons/group_add.svg
new file mode 100644
index 0000000..91c0c2a
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/group_add.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M22 9V7h-2v2h-2v2h2v2h2v-2h2V9zM8 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 1c-2.67 0-8 1.34-8 4v3h16v-3c0-2.66-5.33-4-8-4zm4.51-8.95C13.43 5.11 14 6.49 14 8s-.57 2.89-1.49 3.95C14.47 11.7 16 10.04 16 8s-1.53-3.7-3.49-3.95zm4.02 9.78C17.42 14.66 18 15.7 18 17v3h2v-3c0-1.45-1.59-2.51-3.47-3.17z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/groups.svg b/html/matt-chat/uswds/img/usa-icons/groups.svg
new file mode 100644
index 0000000..a899f54
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/groups.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 12.75c1.63 0 3.07.39 4.24.9 1.08.48 1.76 1.56 1.76 2.73V18H6v-1.61c0-1.18.68-2.26 1.76-2.73 1.17-.52 2.61-.91 4.24-.91zM4 13c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm1.13 1.1c-.37-.06-.74-.1-1.13-.1-.99 0-1.93.21-2.78.58A2.01 2.01 0 0 0 0 16.43V18h4.5v-1.61c0-.83.23-1.61.63-2.29zM20 13c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm4 3.43c0-.81-.48-1.53-1.22-1.85A6.95 6.95 0 0 0 20 14c-.39 0-.76.04-1.13.1.4.68.63 1.46.63 2.29V18H24v-1.57zM12 6c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3 1.34-3 3-3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/hearing.svg b/html/matt-chat/uswds/img/usa-icons/hearing.svg
new file mode 100644
index 0000000..dd0c644
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/hearing.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 20c-.29 0-.56-.06-.76-.15-.71-.37-1.21-.88-1.71-2.38-.51-1.56-1.47-2.29-2.39-3-.79-.61-1.61-1.24-2.32-2.53C9.29 10.98 9 9.93 9 9c0-2.8 2.2-5 5-5s5 2.2 5 5h2c0-3.93-3.07-7-7-7S7 5.07 7 9c0 1.26.38 2.65 1.07 3.9.91 1.65 1.98 2.48 2.85 3.15.81.62 1.39 1.07 1.71 2.05.6 1.82 1.37 2.84 2.73 3.55A3.999 3.999 0 0 0 21 18h-2c0 1.1-.9 2-2 2zM7.64 2.64 6.22 1.22C4.23 3.21 3 5.96 3 9s1.23 5.79 3.22 7.78l1.41-1.41C6.01 13.74 5 11.49 5 9s1.01-4.74 2.64-6.36zM11.5 9a2.5 2.5 0 0 0 5 0 2.5 2.5 0 0 0-5 0z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/help.svg b/html/matt-chat/uswds/img/usa-icons/help.svg
new file mode 100644
index 0000000..a60aafe
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/help.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 17h-2v-2h2v2zm2.07-7.75-.9.92C13.45 12.9 13 13.5 13 15h-2v-.5c0-1.1.45-2.1 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41 0-1.1-.9-2-2-2s-2 .9-2 2H8c0-2.21 1.79-4 4-4s4 1.79 4 4c0 .88-.36 1.68-.93 2.25z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/help_outline.svg b/html/matt-chat/uswds/img/usa-icons/help_outline.svg
new file mode 100644
index 0000000..3e980a4
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/help_outline.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11 18h2v-2h-2v2zm1-16C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm0-14c-2.21 0-4 1.79-4 4h2c0-1.1.9-2 2-2s2 .9 2 2c0 2-3 1.75-3 5h2c0-2.25 3-2.5 3-5 0-2.21-1.79-4-4-4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/highlight_off.svg b/html/matt-chat/uswds/img/usa-icons/highlight_off.svg
new file mode 100644
index 0000000..1562eb1
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/highlight_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M14.59 8 12 10.59 9.41 8 8 9.41 10.59 12 8 14.59 9.41 16 12 13.41 14.59 16 16 14.59 13.41 12 16 9.41 14.59 8zM12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/history.svg b/html/matt-chat/uswds/img/usa-icons/history.svg
new file mode 100644
index 0000000..f8f018c
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/history.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13 3a9 9 0 0 0-9 9H1l3.89 3.89.07.14L9 12H6c0-3.87 3.13-7 7-7s7 3.13 7 7-3.13 7-7 7c-1.93 0-3.68-.79-4.94-2.06l-1.42 1.42A8.954 8.954 0 0 0 13 21a9 9 0 0 0 0-18zm-1 5v5l4.28 2.54.72-1.21-3.5-2.08V8H12z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/home.svg b/html/matt-chat/uswds/img/usa-icons/home.svg
new file mode 100644
index 0000000..6bd84cf
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/home.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/hospital.svg b/html/matt-chat/uswds/img/usa-icons/hospital.svg
new file mode 100644
index 0000000..ce5f9ac
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/hospital.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M19 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2Zm-3 14h-2v-4h-4v4H8V7h2v4h4V7h2Z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/hotel.svg b/html/matt-chat/uswds/img/usa-icons/hotel.svg
new file mode 100644
index 0000000..f1cca2c
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/hotel.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M7 13c1.66 0 3-1.34 3-3S8.66 7 7 7s-3 1.34-3 3 1.34 3 3 3zm12-6h-8v7H3V5H1v15h2v-3h18v3h2v-9c0-2.21-1.79-4-4-4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/hourglass_empty.svg b/html/matt-chat/uswds/img/usa-icons/hourglass_empty.svg
new file mode 100644
index 0000000..b4b3a5a
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/hourglass_empty.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M6 2v6h.01L6 8.01 10 12l-4 4 .01.01H6V22h12v-5.99h-.01L18 16l-4-4 4-3.99-.01-.01H18V2H6zm10 14.5V20H8v-3.5l4-4 4 4zm-4-5-4-4V4h8v3.5l-4 4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/hurricane.svg b/html/matt-chat/uswds/img/usa-icons/hurricane.svg
new file mode 100644
index 0000000..d4f19d7
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/hurricane.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M19 12a7 7 0 0 0-6.34-7 27.32 27.32 0 0 1 2.21-2.09.44.44 0 0 0-.29-.78 10.62 10.62 0 0 0-9.17 7.5 4.26 4.26 0 0 0-.15.47v.06A7.18 7.18 0 0 0 5 12a7 7 0 0 0 6.35 7 27.71 27.71 0 0 1-2.21 2.1.44.44 0 0 0 .29.78 10.65 10.65 0 0 0 9.23-7.69v-.14c0-.05.05-.13.07-.2A6.76 6.76 0 0 0 19 12Zm-7 3.5a3.5 3.5 0 1 1 3.5-3.5 3.5 3.5 0 0 1-3.5 3.5Z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/identification.svg b/html/matt-chat/uswds/img/usa-icons/identification.svg
new file mode 100644
index 0000000..bbd409a
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/identification.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M11 14.14C11 13.38 9.33 13 8.5 13S6 13.38 6 14.14V15h5Z"/><circle cx="8.5" cy="10.5" r="1.5"/><path d="M20 4H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2Zm-7 13H4V7h9Zm7 0h-5v-2h5Zm0-4h-5v-2h5Zm0-4h-5V7h5Z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/image.svg b/html/matt-chat/uswds/img/usa-icons/image.svg
new file mode 100644
index 0000000..6ccc16a
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/image.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/info.svg b/html/matt-chat/uswds/img/usa-icons/info.svg
new file mode 100644
index 0000000..22ef137
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/info.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/info_outline.svg b/html/matt-chat/uswds/img/usa-icons/info_outline.svg
new file mode 100644
index 0000000..783eebe
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/info_outline.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M11 7h2v2h-2V7zm0 4h2v6h-2v-6zm1-9C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/insights.svg b/html/matt-chat/uswds/img/usa-icons/insights.svg
new file mode 100644
index 0000000..5c8a937
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/insights.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 8c-1.45 0-2.26 1.44-1.93 2.51l-3.55 3.56c-.3-.09-.74-.09-1.04 0l-2.55-2.55C12.27 10.45 11.46 9 10 9c-1.45 0-2.27 1.44-1.93 2.52l-4.56 4.55C2.44 15.74 1 16.55 1 18c0 1.1.9 2 2 2 1.45 0 2.26-1.44 1.93-2.51l4.55-4.56c.3.09.74.09 1.04 0l2.55 2.55C12.73 16.55 13.54 18 15 18c1.45 0 2.27-1.44 1.93-2.52l3.56-3.55c1.07.33 2.51-.48 2.51-1.93 0-1.1-.9-2-2-2z"/><path d="m15 9 .94-2.07L18 6l-2.06-.93L15 3l-.92 2.07L12 6l2.08.93zM3.5 11 4 9l2-.5L4 8l-.5-2L3 8l-2 .5L3 9z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/instagram.svg b/html/matt-chat/uswds/img/usa-icons/instagram.svg
new file mode 100644
index 0000000..578e517
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/instagram.svg
@@ -0,0 +1 @@
+<svg width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M8.273 3.063c-.958.045-1.612.198-2.184.423a4.41 4.41 0 0 0-1.592 1.04 4.409 4.409 0 0 0-1.035 1.596c-.222.572-.372 1.227-.414 2.185-.042.958-.052 1.266-.047 3.71.005 2.444.016 2.75.062 3.71.046.958.198 1.612.423 2.184a4.41 4.41 0 0 0 1.04 1.592 4.4 4.4 0 0 0 1.597 1.035c.572.221 1.227.372 2.185.414.958.042 1.266.052 3.71.047 2.443-.005 2.75-.016 3.71-.061.96-.046 1.611-.199 2.183-.423a4.411 4.411 0 0 0 1.592-1.04 4.41 4.41 0 0 0 1.035-1.597c.222-.572.372-1.227.414-2.184.042-.96.052-1.268.047-3.711-.005-2.444-.016-2.75-.061-3.71-.046-.96-.198-1.612-.423-2.184a4.418 4.418 0 0 0-1.04-1.592 4.4 4.4 0 0 0-1.597-1.035c-.572-.221-1.227-.372-2.185-.414-.958-.041-1.266-.052-3.71-.047-2.444.005-2.75.015-3.71.062m.105 16.27c-.878-.038-1.354-.184-1.672-.306a2.802 2.802 0 0 1-1.036-.671 2.772 2.772 0 0 1-.675-1.034c-.124-.317-.272-.793-.313-1.67-.045-.95-.054-1.234-.06-3.637-.004-2.403.005-2.687.046-3.636.038-.877.184-1.354.306-1.671.162-.421.357-.72.672-1.036a2.778 2.778 0 0 1 1.033-.675c.317-.124.793-.272 1.67-.313.95-.045 1.234-.054 3.637-.06 2.402-.005 2.687.004 3.637.046.876.038 1.354.183 1.67.306.421.162.72.357 1.037.671.316.315.511.613.675 1.034.124.317.271.792.313 1.67.045.95.055 1.234.06 3.636.004 2.402-.004 2.688-.046 3.636-.038.878-.184 1.354-.306 1.672a2.79 2.79 0 0 1-.672 1.036 2.78 2.78 0 0 1-1.033.675c-.317.124-.794.271-1.67.313-.95.045-1.234.054-3.637.06-2.403.005-2.687-.005-3.636-.046M15.715 7.19a1.08 1.08 0 1 0 2.16-.004 1.08 1.08 0 0 0-2.16.004m-8.336 4.819a4.62 4.62 0 1 0 9.242-.018 4.62 4.62 0 0 0-9.242.018M9 12.006a3 3 0 1 1 6-.012 3 3 0 0 1-6 .012"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/keyboard.svg b/html/matt-chat/uswds/img/usa-icons/keyboard.svg
new file mode 100644
index 0000000..acbf11c
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/keyboard.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 5H4c-1.1 0-1.99.9-1.99 2L2 17c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm-9 3h2v2h-2V8zm0 3h2v2h-2v-2zM8 8h2v2H8V8zm0 3h2v2H8v-2zm-1 2H5v-2h2v2zm0-3H5V8h2v2zm9 7H8v-2h8v2zm0-4h-2v-2h2v2zm0-3h-2V8h2v2zm3 3h-2v-2h2v2zm0-3h-2V8h2v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/label.svg b/html/matt-chat/uswds/img/usa-icons/label.svg
new file mode 100644
index 0000000..e0f42a3
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/label.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17.63 5.84C17.27 5.33 16.67 5 16 5L5 5.01C3.9 5.01 3 5.9 3 7v10c0 1.1.9 1.99 2 1.99L16 19c.67 0 1.27-.33 1.63-.84L22 12l-4.37-6.16z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/language.svg b/html/matt-chat/uswds/img/usa-icons/language.svg
new file mode 100644
index 0000000..d696664
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/language.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zm6.93 6h-2.95a15.65 15.65 0 0 0-1.38-3.56A8.03 8.03 0 0 1 18.92 8zM12 4.04c.83 1.2 1.48 2.53 1.91 3.96h-3.82c.43-1.43 1.08-2.76 1.91-3.96zM4.26 14C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2 0 .68.06 1.34.14 2H4.26zm.82 2h2.95c.32 1.25.78 2.45 1.38 3.56A7.987 7.987 0 0 1 5.08 16zm2.95-8H5.08a7.987 7.987 0 0 1 4.33-3.56A15.65 15.65 0 0 0 8.03 8zM12 19.96c-.83-1.2-1.48-2.53-1.91-3.96h3.82c-.43 1.43-1.08 2.76-1.91 3.96zM14.34 14H9.66c-.09-.66-.16-1.32-.16-2 0-.68.07-1.35.16-2h4.68c.09.65.16 1.32.16 2 0 .68-.07 1.34-.16 2zm.25 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95a8.03 8.03 0 0 1-4.33 3.56zM16.36 14c.08-.66.14-1.32.14-2 0-.68-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2h-3.38z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/last_page.svg b/html/matt-chat/uswds/img/usa-icons/last_page.svg
new file mode 100644
index 0000000..49fd298
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/last_page.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M5.59 7.41 10.18 12l-4.59 4.59L7 18l6-6-6-6zM16 6h2v12h-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/launch.svg b/html/matt-chat/uswds/img/usa-icons/launch.svg
new file mode 100644
index 0000000..6a2f70b
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/launch.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 19H5V5h7V3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/lightbulb.svg b/html/matt-chat/uswds/img/usa-icons/lightbulb.svg
new file mode 100644
index 0000000..5f0ad4e
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/lightbulb.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M9 21c0 .5.4 1 1 1h4c.6 0 1-.5 1-1v-1H9v1zm3-19C8.1 2 5 5.1 5 9c0 2.4 1.2 4.5 3 5.7V17c0 .5.4 1 1 1h6c.6 0 1-.5 1-1v-2.3c1.8-1.3 3-3.4 3-5.7 0-3.9-3.1-7-7-7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/lightbulb_outline.svg b/html/matt-chat/uswds/img/usa-icons/lightbulb_outline.svg
new file mode 100644
index 0000000..83e46b0
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/lightbulb_outline.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path fill="none" d="M0 0h24v24H0z"/><path d="M9 21c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-1H9v1zm3-19C8.14 2 5 5.14 5 9c0 2.38 1.19 4.47 3 5.74V17c0 .55.45 1 1 1h6c.55 0 1-.45 1-1v-2.26c1.81-1.27 3-3.36 3-5.74 0-3.86-3.14-7-7-7zm2 11.7V16h-4v-2.3C8.48 12.63 7 11.53 7 9c0-2.76 2.24-5 5-5s5 2.24 5 5c0 2.49-1.51 3.65-3 4.7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/link.svg b/html/matt-chat/uswds/img/usa-icons/link.svg
new file mode 100644
index 0000000..f39e2a7
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/link.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/link_off.svg b/html/matt-chat/uswds/img/usa-icons/link_off.svg
new file mode 100644
index 0000000..0ea3587
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/link_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 7h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1 0 1.43-.98 2.63-2.31 2.98l1.46 1.46C20.88 15.61 22 13.95 22 12c0-2.76-2.24-5-5-5zm-1 4h-2.19l2 2H16zM2 4.27l3.11 3.11A4.991 4.991 0 0 0 2 12c0 2.76 2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1 0-1.59 1.21-2.9 2.76-3.07L8.73 11H8v2h2.73L13 15.27V17h1.73l4.01 4L20 19.74 3.27 3 2 4.27z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/linkedin.svg b/html/matt-chat/uswds/img/usa-icons/linkedin.svg
new file mode 100644
index 0000000..a22fd82
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/linkedin.svg
@@ -0,0 +1 @@
+<svg width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M19.667 3A1.322 1.322 0 0 1 21 4.298V19.7a1.323 1.323 0 0 1-1.333 1.3H4.328A1.32 1.32 0 0 1 3 19.701V4.3A1.32 1.32 0 0 1 4.328 3h15.339Zm-4.898 6.1a2.834 2.834 0 0 0-2.55 1.403h-.036V9.316H9.6V18h2.692v-4.296c0-1.133.214-2.23 1.616-2.23 1.382 0 1.4 1.296 1.4 2.303V18H18v-4.764c0-2.338-.503-4.136-3.231-4.136Zm-6.86.216H5.213V18h2.694V9.316ZM6.561 5A1.57 1.57 0 0 0 5 6.565a1.57 1.57 0 0 0 1.562 1.564l.142-.006a1.572 1.572 0 0 0 1.42-1.558l-.006-.142A1.572 1.572 0 0 0 6.562 5Z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/list.svg b/html/matt-chat/uswds/img/usa-icons/list.svg
new file mode 100644
index 0000000..f280e6a
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/list.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 13h2v-2H3v2zm0 4h2v-2H3v2zm0-8h2V7H3v2zm4 4h14v-2H7v2zm0 4h14v-2H7v2zM7 7v2h14V7H7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/local_cafe.svg b/html/matt-chat/uswds/img/usa-icons/local_cafe.svg
new file mode 100644
index 0000000..5994e0c
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/local_cafe.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 3H4v10c0 2.21 1.79 4 4 4h6c2.21 0 4-1.79 4-4v-3h2a2 2 0 0 0 2-2V5c0-1.11-.89-2-2-2zm0 5h-2V5h2v3zM4 19h16v2H4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/local_fire_department.svg b/html/matt-chat/uswds/img/usa-icons/local_fire_department.svg
new file mode 100644
index 0000000..cfac515
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/local_fire_department.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m12 12.9-2.13 2.09c-.56.56-.87 1.29-.87 2.07C9 18.68 10.35 20 12 20s3-1.32 3-2.94c0-.78-.31-1.52-.87-2.07L12 12.9z"/><path d="m16 6-.44.55C14.38 8.02 12 7.19 12 5.3V2S4 6 4 13c0 2.92 1.56 5.47 3.89 6.86-.56-.79-.89-1.76-.89-2.8 0-1.32.52-2.56 1.47-3.5L12 10.1l3.53 3.47c.95.93 1.47 2.17 1.47 3.5 0 1.02-.31 1.96-.85 2.75 1.89-1.15 3.29-3.06 3.71-5.3.66-3.55-1.07-6.9-3.86-8.52z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/local_gas_station.svg b/html/matt-chat/uswds/img/usa-icons/local_gas_station.svg
new file mode 100644
index 0000000..237219f
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/local_gas_station.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m19.77 7.23.01-.01-3.72-3.72L15 4.56l2.11 2.11c-.94.36-1.61 1.26-1.61 2.33a2.5 2.5 0 0 0 2.5 2.5c.36 0 .69-.08 1-.21v7.21c0 .55-.45 1-1 1s-1-.45-1-1V14c0-1.1-.9-2-2-2h-1V5c0-1.1-.9-2-2-2H6c-1.1 0-2 .9-2 2v16h10v-7.5h1.5v5a2.5 2.5 0 0 0 5 0V9c0-.69-.28-1.32-.73-1.77zM12 10H6V5h6v5zm6 0c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/local_grocery_store.svg b/html/matt-chat/uswds/img/usa-icons/local_grocery_store.svg
new file mode 100644
index 0000000..52e5ea8
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/local_grocery_store.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M7 18c-1.1 0-1.99.9-1.99 2S5.9 22 7 22s2-.9 2-2-.9-2-2-2zM1 2v2h2l3.6 7.59-1.35 2.45c-.16.28-.25.61-.25.96 0 1.1.9 2 2 2h12v-2H7.42c-.14 0-.25-.11-.25-.25l.03-.12.9-1.63h7.45c.75 0 1.41-.41 1.75-1.03l3.58-6.49A1.003 1.003 0 0 0 20 4H5.21l-.94-2H1zm16 16c-1.1 0-1.99.9-1.99 2s.89 2 1.99 2 2-.9 2-2-.9-2-2-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/local_hospital.svg b/html/matt-chat/uswds/img/usa-icons/local_hospital.svg
new file mode 100644
index 0000000..85da4ff
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/local_hospital.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H5c-1.1 0-1.99.9-1.99 2L3 19c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-1 11h-4v4h-4v-4H6v-4h4V6h4v4h4v4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/local_laundry_service.svg b/html/matt-chat/uswds/img/usa-icons/local_laundry_service.svg
new file mode 100644
index 0000000..6511137
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/local_laundry_service.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M9.17 16.83a4.008 4.008 0 0 0 5.66 0 4.008 4.008 0 0 0 0-5.66l-5.66 5.66zM18 2.01 6 2c-1.11 0-2 .89-2 2v16c0 1.11.89 2 2 2h12c1.11 0 2-.89 2-2V4c0-1.11-.89-1.99-2-1.99zM10 4c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zM7 4c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm5 16c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/local_library.svg b/html/matt-chat/uswds/img/usa-icons/local_library.svg
new file mode 100644
index 0000000..5fa5109
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/local_library.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 11.55C9.64 9.35 6.48 8 3 8v11c3.48 0 6.64 1.35 9 3.55 2.36-2.19 5.52-3.55 9-3.55V8c-3.48 0-6.64 1.35-9 3.55zM12 8c1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3 1.34 3 3 3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/local_offer.svg b/html/matt-chat/uswds/img/usa-icons/local_offer.svg
new file mode 100644
index 0000000..5a897a7
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/local_offer.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m21.41 11.58-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/local_parking.svg b/html/matt-chat/uswds/img/usa-icons/local_parking.svg
new file mode 100644
index 0000000..0cc3198
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/local_parking.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13 3H6v18h4v-6h3c3.31 0 6-2.69 6-6s-2.69-6-6-6zm.2 8H10V7h3.2c1.1 0 2 .9 2 2s-.9 2-2 2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/local_pharmacy.svg b/html/matt-chat/uswds/img/usa-icons/local_pharmacy.svg
new file mode 100644
index 0000000..7272010
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/local_pharmacy.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 5h-2.64l1.14-3.14L17.15 1l-1.46 4H3v2l2 6-2 6v2h18v-2l-2-6 2-6V5zm-5 9h-3v3h-2v-3H8v-2h3V9h2v3h3v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/local_police.svg b/html/matt-chat/uswds/img/usa-icons/local_police.svg
new file mode 100644
index 0000000..5e6f8dd
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/local_police.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 1 3 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V5l-9-4zm2.5 11.59.9 3.88-3.4-2.05-3.4 2.05.9-3.87-3-2.59 3.96-.34L12 6.02l1.54 3.64 3.96.34-3 2.59z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/local_taxi.svg b/html/matt-chat/uswds/img/usa-icons/local_taxi.svg
new file mode 100644
index 0000000..e3559e9
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/local_taxi.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18.92 6.01C18.72 5.42 18.16 5 17.5 5H15V3H9v2H6.5c-.66 0-1.21.42-1.42 1.01L3 12v8c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1h12v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-8l-2.08-5.99zM6.5 16c-.83 0-1.5-.67-1.5-1.5S5.67 13 6.5 13s1.5.67 1.5 1.5S7.33 16 6.5 16zm11 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zM5 11l1.5-4.5h11L19 11H5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/location_city.svg b/html/matt-chat/uswds/img/usa-icons/location_city.svg
new file mode 100644
index 0000000..357849b
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/location_city.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15 11V5l-3-3-3 3v2H3v14h18V11h-6zm-8 8H5v-2h2v2zm0-4H5v-2h2v2zm0-4H5V9h2v2zm6 8h-2v-2h2v2zm0-4h-2v-2h2v2zm0-4h-2V9h2v2zm0-4h-2V5h2v2zm6 12h-2v-2h2v2zm0-4h-2v-2h2v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/location_on.svg b/html/matt-chat/uswds/img/usa-icons/location_on.svg
new file mode 100644
index 0000000..35655db
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/location_on.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5a2.5 2.5 0 0 1 0-5 2.5 2.5 0 0 1 0 5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/lock.svg b/html/matt-chat/uswds/img/usa-icons/lock.svg
new file mode 100644
index 0000000..2154a2c
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/lock.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zm-6 9c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm3.1-9H8.9V6c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3.1v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/lock_open.svg b/html/matt-chat/uswds/img/usa-icons/lock_open.svg
new file mode 100644
index 0000000..4481b0e
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/lock_open.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 17c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm6-9h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6h1.9c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3.1v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zm0 12H6V10h12v10z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/lock_outline.svg b/html/matt-chat/uswds/img/usa-icons/lock_outline.svg
new file mode 100644
index 0000000..d4a276b
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/lock_outline.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path fill="none" d="M0 0h24v24H0z"/><path d="M12 17c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm6-9h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zM8.9 6c0-1.71 1.39-3.1 3.1-3.1s3.1 1.39 3.1 3.1v2H8.9V6zM18 20H6V10h12v10z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/login.svg b/html/matt-chat/uswds/img/usa-icons/login.svg
new file mode 100644
index 0000000..d58a611
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/login.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11 7 9.6 8.4l2.6 2.6H2v2h10.2l-2.6 2.6L11 17l5-5-5-5zm9 12h-8v2h8c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2h-8v2h8v14z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/logout.svg b/html/matt-chat/uswds/img/usa-icons/logout.svg
new file mode 100644
index 0000000..d4e7414
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/logout.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m17 7-1.41 1.41L18.17 11H8v2h10.17l-2.58 2.58L17 17l5-5zM4 5h8V3H4c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h8v-2H4V5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/loop.svg b/html/matt-chat/uswds/img/usa-icons/loop.svg
new file mode 100644
index 0000000..4731328
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/loop.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 4V1L8 5l4 4V6c3.31 0 6 2.69 6 6 0 1.01-.25 1.97-.7 2.8l1.46 1.46A7.93 7.93 0 0 0 20 12c0-4.42-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6 0-1.01.25-1.97.7-2.8L5.24 7.74A7.93 7.93 0 0 0 4 12c0 4.42 3.58 8 8 8v3l4-4-4-4v3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/mail.svg b/html/matt-chat/uswds/img/usa-icons/mail.svg
new file mode 100644
index 0000000..876dbcd
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/mail.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4-8 5-8-5V6l8 5 8-5v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/mail_outline.svg b/html/matt-chat/uswds/img/usa-icons/mail_outline.svg
new file mode 100644
index 0000000..d1b8c87
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/mail_outline.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 14H4V8l8 5 8-5v10zm-8-7L4 6h16l-8 5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/map.svg b/html/matt-chat/uswds/img/usa-icons/map.svg
new file mode 100644
index 0000000..93a3e16
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/map.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m20.5 3-.16.03L15 5.1 9 3 3.36 4.9c-.21.07-.36.25-.36.48V20.5c0 .28.22.5.5.5l.16-.03L9 18.9l6 2.1 5.64-1.9c.21-.07.36-.25.36-.48V3.5c0-.28-.22-.5-.5-.5zM15 19l-6-2.11V5l6 2.11V19z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/masks.svg b/html/matt-chat/uswds/img/usa-icons/masks.svg
new file mode 100644
index 0000000..f64f2a4
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/masks.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19.5 6c-1.31 0-2.37 1.01-2.48 2.3-1.88-.5-2.84-1.8-5.02-1.8-2.19 0-3.14 1.3-5.02 1.8C6.87 7.02 5.81 6 4.5 6A2.5 2.5 0 0 0 2 8.5V9c0 6 3.6 7.81 6.52 7.98C9.53 17.62 10.72 18 12 18s2.47-.38 3.48-1.02C18.4 16.81 22 15 22 9v-.5A2.5 2.5 0 0 0 19.5 6zm-16 3v-.5c0-.55.45-1 1-1s1 .45 1 1v3c0 1.28.38 2.47 1.01 3.48C4.99 14.27 3.5 12.65 3.5 9zm17 0c0 3.65-1.49 5.27-3.01 5.98.64-1.01 1.01-2.2 1.01-3.48v-3c0-.55.45-1 1-1s1 .45 1 1V9zm-9.81 1.48c-.44.26-.96.56-1.69.76V10.2c.48-.17.84-.38 1.18-.58C10.72 9.3 11.23 9 12 9s1.27.3 1.8.62c.34.2.71.42 1.2.59v1.04c-.75-.21-1.26-.51-1.71-.78-.46-.27-.8-.47-1.29-.47s-.84.2-1.31.48z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/medical_services.svg b/html/matt-chat/uswds/img/usa-icons/medical_services.svg
new file mode 100644
index 0000000..6c17315
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/medical_services.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 6h-4V4c0-1.1-.9-2-2-2h-4c-1.1 0-2 .9-2 2v2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zM10 4h4v2h-4V4zm6 11h-3v3h-2v-3H8v-2h3v-3h2v3h3v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/menu.svg b/html/matt-chat/uswds/img/usa-icons/menu.svg
new file mode 100644
index 0000000..ae7c36c
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/menu.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/military_tech.svg b/html/matt-chat/uswds/img/usa-icons/military_tech.svg
new file mode 100644
index 0000000..9b8989c
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/military_tech.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 10.43V2H7v8.43c0 .35.18.68.49.86l4.18 2.51-.99 2.34-3.41.29 2.59 2.24L9.07 22 12 20.23 14.93 22l-.78-3.33 2.59-2.24-3.41-.29-.99-2.34 4.18-2.51c.3-.18.48-.5.48-.86zm-4 1.8-1 .6-1-.6V3h2v9.23z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/more_horiz.svg b/html/matt-chat/uswds/img/usa-icons/more_horiz.svg
new file mode 100644
index 0000000..afb392c
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/more_horiz.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M6 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-6 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/more_vert.svg b/html/matt-chat/uswds/img/usa-icons/more_vert.svg
new file mode 100644
index 0000000..f2427f8
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/more_vert.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/my_location.svg b/html/matt-chat/uswds/img/usa-icons/my_location.svg
new file mode 100644
index 0000000..402454a
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/my_location.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm8.94 3A8.994 8.994 0 0 0 13 3.06V1h-2v2.06A8.994 8.994 0 0 0 3.06 11H1v2h2.06A8.994 8.994 0 0 0 11 20.94V23h2v-2.06A8.994 8.994 0 0 0 20.94 13H23v-2h-2.06zM12 19c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/navigate_before.svg b/html/matt-chat/uswds/img/usa-icons/navigate_before.svg
new file mode 100644
index 0000000..e119372
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/navigate_before.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15.41 7.41 14 6l-6 6 6 6 1.41-1.41L10.83 12z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/navigate_far_before.svg b/html/matt-chat/uswds/img/usa-icons/navigate_far_before.svg
new file mode 100644
index 0000000..6d5f4b1
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/navigate_far_before.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M11.41 7.41 10 6l-6 6 6 6 1.41-1.41L6.83 12zm8 0L18 6l-6 6 6 6 1.41-1.41L14.83 12z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/navigate_far_next.svg b/html/matt-chat/uswds/img/usa-icons/navigate_far_next.svg
new file mode 100644
index 0000000..8ce9c30
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/navigate_far_next.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="m14 6-1.41 1.41L17.17 12l-4.58 4.59L14 18l6-6zM6 6 4.59 7.41 9.17 12l-4.58 4.59L6 18l6-6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/navigate_next.svg b/html/matt-chat/uswds/img/usa-icons/navigate_next.svg
new file mode 100644
index 0000000..7d1129b
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/navigate_next.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10 6 8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/near_me.svg b/html/matt-chat/uswds/img/usa-icons/near_me.svg
new file mode 100644
index 0000000..e9ebc79
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/near_me.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 3 3 10.53v.98l6.84 2.65L12.48 21h.98L21 3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/notifications.svg b/html/matt-chat/uswds/img/usa-icons/notifications.svg
new file mode 100644
index 0000000..3f3e328
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/notifications.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 22c1.1 0 2-.9 2-2h-4a2 2 0 0 0 2 2zm6-6v-5c0-3.07-1.64-5.64-4.5-6.32V4c0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5v.68C7.63 5.36 6 7.92 6 11v5l-2 2v1h16v-1l-2-2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/notifications_active.svg b/html/matt-chat/uswds/img/usa-icons/notifications_active.svg
new file mode 100644
index 0000000..7418d67
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/notifications_active.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M7.58 4.08 6.15 2.65C3.75 4.48 2.17 7.3 2.03 10.5h2a8.445 8.445 0 0 1 3.55-6.42zm12.39 6.42h2c-.15-3.2-1.73-6.02-4.12-7.85l-1.42 1.43a8.495 8.495 0 0 1 3.54 6.42zM18 11c0-3.07-1.64-5.64-4.5-6.32V4c0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5v.68C7.63 5.36 6 7.92 6 11v5l-2 2v1h16v-1l-2-2v-5zm-6 11c.14 0 .27-.01.4-.04.65-.14 1.18-.58 1.44-1.18.1-.24.15-.5.15-.78h-4c.01 1.1.9 2 2.01 2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/notifications_none.svg b/html/matt-chat/uswds/img/usa-icons/notifications_none.svg
new file mode 100644
index 0000000..f7c6893
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/notifications_none.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 22c1.1 0 2-.9 2-2h-4c0 1.1.9 2 2 2zm6-6v-5c0-3.07-1.63-5.64-4.5-6.32V4c0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5v.68C7.64 5.36 6 7.92 6 11v5l-2 2v1h16v-1l-2-2zm-2 1H8v-6c0-2.48 1.51-4.5 4-4.5s4 2.02 4 4.5v6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/notifications_off.svg b/html/matt-chat/uswds/img/usa-icons/notifications_off.svg
new file mode 100644
index 0000000..39a5900
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/notifications_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 18.69 7.84 6.14 5.27 3.49 4 4.76l2.8 2.8v.01c-.52.99-.8 2.16-.8 3.42v5l-2 2v1h13.73l2 2L21 19.72l-1-1.03zM12 22c1.11 0 2-.89 2-2h-4c0 1.11.89 2 2 2zm6-7.32V11c0-3.08-1.64-5.64-4.5-6.32V4c0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5v.68c-.15.03-.29.08-.42.12-.1.03-.2.07-.3.11h-.01c-.01 0-.01 0-.02.01-.23.09-.46.2-.68.31 0 0-.01 0-.01.01L18 14.68z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/park.svg b/html/matt-chat/uswds/img/usa-icons/park.svg
new file mode 100644
index 0000000..fb6e898
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/park.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 12h2L12 2 5.05 12H7l-3.9 6h6.92v4h3.96v-4H21z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/people.svg b/html/matt-chat/uswds/img/usa-icons/people.svg
new file mode 100644
index 0000000..bd9a133
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/people.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16 11c1.66 0 2.99-1.34 2.99-3S17.66 5 16 5c-1.66 0-3 1.34-3 3s1.34 3 3 3zm-8 0c1.66 0 2.99-1.34 2.99-3S9.66 5 8 5C6.34 5 5 6.34 5 8s1.34 3 3 3zm0 2c-2.33 0-7 1.17-7 3.5V19h14v-2.5c0-2.33-4.67-3.5-7-3.5zm8 0c-.29 0-.62.02-.97.05 1.16.84 1.97 1.97 1.97 3.45V19h6v-2.5c0-2.33-4.67-3.5-7-3.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/person.svg b/html/matt-chat/uswds/img/usa-icons/person.svg
new file mode 100644
index 0000000..e22d151
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/person.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/pets.svg b/html/matt-chat/uswds/img/usa-icons/pets.svg
new file mode 100644
index 0000000..e4d7d48
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/pets.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><circle cx="4.5" cy="9.5" r="2.5"/><circle cx="9" cy="5.5" r="2.5"/><circle cx="15" cy="5.5" r="2.5"/><circle cx="19.5" cy="9.5" r="2.5"/><path d="M17.34 14.86c-.87-1.02-1.6-1.89-2.48-2.91-.46-.54-1.05-1.08-1.75-1.32-.11-.04-.22-.07-.33-.09-.25-.04-.52-.04-.78-.04s-.53 0-.79.05c-.11.02-.22.05-.33.09-.7.24-1.28.78-1.75 1.32-.87 1.02-1.6 1.89-2.48 2.91-1.31 1.31-2.92 2.76-2.62 4.79.29 1.02 1.02 2.03 2.33 2.32.73.15 3.06-.44 5.54-.44h.18c2.48 0 4.81.58 5.54.44 1.31-.29 2.04-1.31 2.33-2.32.31-2.04-1.3-3.49-2.61-4.8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/phone.svg b/html/matt-chat/uswds/img/usa-icons/phone.svg
new file mode 100644
index 0000000..5908b6a
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/phone.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1-9.39 0-17-7.61-17-17 0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57.11.35.03.74-.25 1.02l-2.2 2.2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/photo_camera.svg b/html/matt-chat/uswds/img/usa-icons/photo_camera.svg
new file mode 100644
index 0000000..2024fbc
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/photo_camera.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><circle cx="12" cy="12" r="3.2"/><path d="M9 2 7.17 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2h-3.17L15 2H9zm3 15c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/print.svg b/html/matt-chat/uswds/img/usa-icons/print.svg
new file mode 100644
index 0000000..6128bd8
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/print.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 8H5c-1.66 0-3 1.34-3 3v6h4v4h12v-4h4v-6c0-1.66-1.34-3-3-3zm-3 11H8v-5h8v5zm3-7c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm-1-9H6v4h12V3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/priority_high.svg b/html/matt-chat/uswds/img/usa-icons/priority_high.svg
new file mode 100644
index 0000000..326d004
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/priority_high.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><circle cx="12" cy="19" r="2"/><path d="M10 3h4v12h-4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/public.svg b/html/matt-chat/uswds/img/usa-icons/public.svg
new file mode 100644
index 0000000..6356e73
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/public.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 17.93c-3.95-.49-7-3.85-7-7.93 0-.62.08-1.21.21-1.79L9 15v1c0 1.1.9 2 2 2v1.93zm6.9-2.54c-.26-.81-1-1.39-1.9-1.39h-1v-3c0-.55-.45-1-1-1H8v-2h2c.55 0 1-.45 1-1V7h2c1.1 0 2-.9 2-2v-.41c2.93 1.19 5 4.06 5 7.41 0 2.08-.8 3.97-2.1 5.39z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/push_pin.svg b/html/matt-chat/uswds/img/usa-icons/push_pin.svg
new file mode 100644
index 0000000..568580e
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/push_pin.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill-rule="evenodd" d="M16 9V4h1c.55 0 1-.45 1-1s-.45-1-1-1H7c-.55 0-1 .45-1 1s.45 1 1 1h1v5c0 1.66-1.34 3-3 3v2h5.97v7l1 1 1-1v-7H19v-2c-1.66 0-3-1.34-3-3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/radio_button_unchecked.svg b/html/matt-chat/uswds/img/usa-icons/radio_button_unchecked.svg
new file mode 100644
index 0000000..acce6d1
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/radio_button_unchecked.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/rain.svg b/html/matt-chat/uswds/img/usa-icons/rain.svg
new file mode 100644
index 0000000..e4d9267
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/rain.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M17.51 7A5.62 5.62 0 0 0 7 5.51a4.5 4.5 0 0 0 .49 9h9.75A3.74 3.74 0 0 0 17.51 7ZM4.076 20.774 6.08 15.77l1.857.743-2.003 5.004zm4.998-.002 2.003-5.004 1.856.743-2.002 5.004zm4.998.008 2.002-5.004 1.857.743-2.002 5.004z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/reduce_capacity.svg b/html/matt-chat/uswds/img/usa-icons/reduce_capacity.svg
new file mode 100644
index 0000000..377cc47
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/reduce_capacity.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16 4c0-1.1.9-2 2-2s2 .9 2 2-.9 2-2 2-2-.9-2-2zm4.78 3.58A6.95 6.95 0 0 0 18 7c-.67 0-1.31.1-1.92.28.58.55.92 1.32.92 2.15V10h5v-.57c0-.81-.48-1.53-1.22-1.85zM6 6c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm1.92 1.28C7.31 7.1 6.67 7 6 7c-.99 0-1.93.21-2.78.58A2.01 2.01 0 0 0 2 9.43V10h5v-.57c0-.83.34-1.6.92-2.15zM10 4c0-1.1.9-2 2-2s2 .9 2 2-.9 2-2 2-2-.9-2-2zm6 6H8v-.57c0-.81.48-1.53 1.22-1.85a6.95 6.95 0 0 1 5.56 0A2.01 2.01 0 0 1 16 9.43V10zm-1 6c0-1.1.9-2 2-2s2 .9 2 2-.9 2-2 2-2-.9-2-2zm6 6h-8v-.57c0-.81.48-1.53 1.22-1.85a6.95 6.95 0 0 1 5.56 0A2.01 2.01 0 0 1 21 21.43V22zM5 16c0-1.1.9-2 2-2s2 .9 2 2-.9 2-2 2-2-.9-2-2zm6 6H3v-.57c0-.81.48-1.53 1.22-1.85a6.95 6.95 0 0 1 5.56 0A2.01 2.01 0 0 1 11 21.43V22zm1.75-9v-2h-1.5v2H9l3 3 3-3h-2.25z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/remove.svg b/html/matt-chat/uswds/img/usa-icons/remove.svg
new file mode 100644
index 0000000..9128833
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/remove.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 13H5v-2h14v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/remove_circle.svg b/html/matt-chat/uswds/img/usa-icons/remove_circle.svg
new file mode 100644
index 0000000..0f978ec
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/remove_circle.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm5 11H7v-2h10v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/report.svg b/html/matt-chat/uswds/img/usa-icons/report.svg
new file mode 100644
index 0000000..d09adbb
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/report.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15.73 3H8.27L3 8.27v7.46L8.27 21h7.46L21 15.73V8.27L15.73 3zM12 17.3c-.72 0-1.3-.58-1.3-1.3 0-.72.58-1.3 1.3-1.3.72 0 1.3.58 1.3 1.3 0 .72-.58 1.3-1.3 1.3zm1-4.3h-2V7h2v6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/restaurant.svg b/html/matt-chat/uswds/img/usa-icons/restaurant.svg
new file mode 100644
index 0000000..70830b0
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/restaurant.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11 9H9V2H7v7H5V2H3v7c0 2.12 1.66 3.84 3.75 3.97V22h2.5v-9.03C11.34 12.84 13 11.12 13 9V2h-2v7zm5-3v8h2.5v8H21V2c-2.76 0-5 2.24-5 4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/rss_feed.svg b/html/matt-chat/uswds/img/usa-icons/rss_feed.svg
new file mode 100644
index 0000000..721872d
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/rss_feed.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><circle cx="6.18" cy="17.82" r="2.18"/><path d="M4 4.44v2.83c7.03 0 12.73 5.7 12.73 12.73h2.83c0-8.59-6.97-15.56-15.56-15.56zm0 5.66v2.83c3.9 0 7.07 3.17 7.07 7.07h2.83c0-5.47-4.43-9.9-9.9-9.9z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/safety_divider.svg b/html/matt-chat/uswds/img/usa-icons/safety_divider.svg
new file mode 100644
index 0000000..caddc45
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/safety_divider.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11 5h2v14h-2V5zm-6 7c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm2.78 1.58a6.95 6.95 0 0 0-5.56 0A2.01 2.01 0 0 0 1 15.43V16h8v-.57c0-.81-.48-1.53-1.22-1.85zM19 12c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm2.78 1.58a6.95 6.95 0 0 0-5.56 0A2.01 2.01 0 0 0 15 15.43V16h8v-.57c0-.81-.48-1.53-1.22-1.85z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/sanitizer.svg b/html/matt-chat/uswds/img/usa-icons/sanitizer.svg
new file mode 100644
index 0000000..dda2fda
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/sanitizer.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15.5 6.5C15.5 5.66 17 4 17 4s1.5 1.66 1.5 2.5c0 .83-.67 1.5-1.5 1.5s-1.5-.67-1.5-1.5zm4 8.5a2.5 2.5 0 0 0 2.5-2.5c0-1.67-2.5-4.5-2.5-4.5S17 10.83 17 12.5a2.5 2.5 0 0 0 2.5 2.5zM13 14h-2v-2H9v2H7v2h2v2h2v-2h2v-2zm3-2v10H4V12c0-2.97 2.16-5.43 5-5.91V4H7V2h6c1.13 0 2.15.39 2.99 1.01l-1.43 1.43C14.1 4.17 13.57 4 13 4h-2v2.09c2.84.48 5 2.94 5 5.91z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/save_alt.svg b/html/matt-chat/uswds/img/usa-icons/save_alt.svg
new file mode 100644
index 0000000..81abe3c
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/save_alt.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 12v7H5v-7H3v7c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-7h-2zm-6 .67 2.59-2.58L17 11.5l-5 5-5-5 1.41-1.41L11 12.67V3h2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/schedule.svg b/html/matt-chat/uswds/img/usa-icons/schedule.svg
new file mode 100644
index 0000000..7d0fa77
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/schedule.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"/><path d="M12.5 7H11v6l5.25 3.15.75-1.23-4.5-2.67z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/school.svg b/html/matt-chat/uswds/img/usa-icons/school.svg
new file mode 100644
index 0000000..e43f801
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/school.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M5 13.18v4L12 21l7-3.82v-4L12 17l-7-3.82zM12 3 1 9l11 6 9-4.91V17h2V9L12 3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/science.svg b/html/matt-chat/uswds/img/usa-icons/science.svg
new file mode 100644
index 0000000..5fc5854
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/science.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19.8 18.4 14 10.67V6.5l1.35-1.69c.26-.33.03-.81-.39-.81H9.04c-.42 0-.65.48-.39.81L10 6.5v4.17L4.2 18.4c-.49.66-.02 1.6.8 1.6h14c.82 0 1.29-.94.8-1.6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/search.svg b/html/matt-chat/uswds/img/usa-icons/search.svg
new file mode 100644
index 0000000..cd9fd53
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/search.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15.5 14h-.79l-.28-.27A6.471 6.471 0 0 0 16 9.5 6.5 6.5 0 1 0 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/security.svg b/html/matt-chat/uswds/img/usa-icons/security.svg
new file mode 100644
index 0000000..ccdc487
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/security.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 1 3 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V5l-9-4zm0 10.99h7c-.53 4.12-3.28 7.79-7 8.94V12H5V6.3l7-3.11v8.8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/send.svg b/html/matt-chat/uswds/img/usa-icons/send.svg
new file mode 100644
index 0000000..b678678
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/send.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M2.01 21 23 12 2.01 3 2 10l15 2-15 2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/sentiment_dissatisfied.svg b/html/matt-chat/uswds/img/usa-icons/sentiment_dissatisfied.svg
new file mode 100644
index 0000000..4f09ab1
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/sentiment_dissatisfied.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><circle cx="15.5" cy="9.5" r="1.5"/><circle cx="8.5" cy="9.5" r="1.5"/><path d="M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm0-3.5c.73 0 1.39.19 1.97.53.12-.14.86-.98 1.01-1.14A5.39 5.39 0 0 0 12 15c-1.11 0-2.13.33-2.99.88.97 1.09.01.02 1.01 1.14.59-.33 1.25-.52 1.98-.52z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/sentiment_neutral.svg b/html/matt-chat/uswds/img/usa-icons/sentiment_neutral.svg
new file mode 100644
index 0000000..73690cc
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/sentiment_neutral.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M9 15.5h6v1H9v-1z"/><circle cx="15.5" cy="9.5" r="1.5"/><circle cx="8.5" cy="9.5" r="1.5"/><path d="M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/sentiment_satisfied.svg b/html/matt-chat/uswds/img/usa-icons/sentiment_satisfied.svg
new file mode 100644
index 0000000..56f0ded
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/sentiment_satisfied.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><circle cx="15.5" cy="9.5" r="1.5"/><circle cx="8.5" cy="9.5" r="1.5"/><path d="M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm0-4c-.73 0-1.38-.18-1.96-.52-.12.14-.86.98-1.01 1.15a5.49 5.49 0 0 0 5.95-.01c-.97-1.09-.01-.02-1.01-1.15-.59.35-1.24.53-1.97.53z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/sentiment_satisfied_alt.svg b/html/matt-chat/uswds/img/usa-icons/sentiment_satisfied_alt.svg
new file mode 100644
index 0000000..4ab7ba9
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/sentiment_satisfied_alt.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><circle cx="15.5" cy="9.5" r="1.5"/><circle cx="8.5" cy="9.5" r="1.5"/><circle cx="15.5" cy="9.5" r="1.5"/><circle cx="8.5" cy="9.5" r="1.5"/><path d="M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm0-2.5c2.33 0 4.32-1.45 5.12-3.5h-1.67c-.69 1.19-1.97 2-3.45 2s-2.75-.81-3.45-2H6.88c.8 2.05 2.79 3.5 5.12 3.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/sentiment_very_dissatisfied.svg b/html/matt-chat/uswds/img/usa-icons/sentiment_very_dissatisfied.svg
new file mode 100644
index 0000000..7d4f065
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/sentiment_very_dissatisfied.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><circle cx="15.5" cy="9.5" r="1.5"/><circle cx="8.5" cy="9.5" r="1.5"/><path d="M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm0-6c-2.33 0-4.32 1.45-5.12 3.5h1.67c.69-1.19 1.97-2 3.45-2s2.75.81 3.45 2h1.67c-.8-2.05-2.79-3.5-5.12-3.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/settings.svg b/html/matt-chat/uswds/img/usa-icons/settings.svg
new file mode 100644
index 0000000..f255a58
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/settings.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.07-.94l2.03-1.58a.49.49 0 0 0 .12-.61l-1.92-3.32a.488.488 0 0 0-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54a.484.484 0 0 0-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.74 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.07.94l-2.03 1.58a.49.49 0 0 0-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .44-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.47-.12-.61l-2.01-1.58zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/severe_weather.svg b/html/matt-chat/uswds/img/usa-icons/severe_weather.svg
new file mode 100644
index 0000000..36f3c8a
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/severe_weather.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><g data-name="Severe Weather"><path d="M4.05 17.73 12 4l8 13.85A5 5 0 0 0 19.2 8a7.49 7.49 0 0 0-14-2 6 6 0 0 0-1.15 11.73Z"/><path d="M12 7 3.34 22h17.32Zm0 13.4a1 1 0 1 1 1-1 1 1 0 0 1-1 1ZM11 17v-4.6h2V17Z"/></g></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/share.svg b/html/matt-chat/uswds/img/usa-icons/share.svg
new file mode 100644
index 0000000..ed3e530
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/share.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81 1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9c-1.66 0-3 1.34-3 3s1.34 3 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.16c-.05.21-.08.43-.08.65 0 1.61 1.31 2.92 2.92 2.92 1.61 0 2.92-1.31 2.92-2.92s-1.31-2.92-2.92-2.92z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/shield.svg b/html/matt-chat/uswds/img/usa-icons/shield.svg
new file mode 100644
index 0000000..b842df3
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/shield.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 1 3 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V5l-9-4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/shopping_basket.svg b/html/matt-chat/uswds/img/usa-icons/shopping_basket.svg
new file mode 100644
index 0000000..bc41fa0
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/shopping_basket.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m17.21 9-4.38-6.56a.993.993 0 0 0-.83-.42c-.32 0-.64.14-.83.43L6.79 9H2c-.55 0-1 .45-1 1 0 .09.01.18.04.27l2.54 9.27c.23.84 1 1.46 1.92 1.46h13c.92 0 1.69-.62 1.93-1.46l2.54-9.27L23 10c0-.55-.45-1-1-1h-4.79zM9 9l3-4.4L15 9H9zm3 8c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/snow.svg b/html/matt-chat/uswds/img/usa-icons/snow.svg
new file mode 100644
index 0000000..d6c08e2
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/snow.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="m20.76 14.07-.66-1.34-2.88 1.42L13.5 12l3.72-2.15 2.88 1.42.66-1.34-1.97-.98 2.25-1.3-.75-1.3-2.25 1.3.14-2.2-1.5-.1-.21 3.2-3.72 2.15V6.4l2.67-1.78-.84-1.24-1.83 1.22V2h-1.5v2.6L9.42 3.38l-.84 1.24 2.67 1.78v4.3L7.53 8.55l-.21-3.2-1.5.1.14 2.2-2.25-1.3-.75 1.3 2.25 1.3-1.97.98.66 1.34 2.88-1.42L10.5 12l-3.72 2.15-2.88-1.42-.66 1.34 1.97.98-2.25 1.3.75 1.3 2.25-1.3-.14 2.2 1.5.1.21-3.2 3.72-2.15v4.3l-2.67 1.78.84 1.24 1.83-1.22V22h1.5v-2.6l1.83 1.22.84-1.24-2.67-1.78v-4.3l3.72 2.15.21 3.2 1.5-.1-.14-2.2 2.25 1.3.75-1.3-2.25-1.3 1.97-.98z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/soap.svg b/html/matt-chat/uswds/img/usa-icons/soap.svg
new file mode 100644
index 0000000..285ade8
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/soap.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m9.12 5-7.18 6.79c-.6.56-.94 1.35-.94 2.18V20c0 1.66 1.34 3 3 3h13.75a1.25 1.25 0 0 0 0-2.5H12v-1h7.75a1.25 1.25 0 0 0 0-2.5H12v-1h8.75a1.25 1.25 0 0 0 0-2.5H12v-1h6.75a1.25 1.25 0 0 0 0-2.5H8.86c.64-1.11 1.48-2.58 1.49-2.61a1.065 1.065 0 0 0-.12-1.23C10.22 6.12 9.12 5 9.12 5zM14 6.25c.41 0 .75.34.75.75s-.34.75-.75.75-.75-.34-.75-.75.34-.75.75-.75m0-1.5c-1.24 0-2.25 1.01-2.25 2.25S12.76 9.25 14 9.25 16.25 8.24 16.25 7 15.24 4.75 14 4.75zm5.75.75c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5m0-1.5c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zM16.5 1c-.83 0-1.5.67-1.5 1.5S15.67 4 16.5 4 18 3.33 18 2.5 17.33 1 16.5 1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/social_distance.svg b/html/matt-chat/uswds/img/usa-icons/social_distance.svg
new file mode 100644
index 0000000..612dc84
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/social_distance.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M4 5c0-1.1.9-2 2-2s2 .9 2 2-.9 2-2 2-2-.9-2-2zm4.78 3.58a6.95 6.95 0 0 0-5.56 0A2.01 2.01 0 0 0 2 10.43V11h8v-.57c0-.81-.48-1.53-1.22-1.85zM18 7c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm2.78 1.58a6.95 6.95 0 0 0-5.56 0A2.01 2.01 0 0 0 14 10.43V11h8v-.57c0-.81-.48-1.53-1.22-1.85zM22 17l-4-4v3H6v-3l-4 4 4 4v-3h12v3l4-4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/sort_arrow.svg b/html/matt-chat/uswds/img/usa-icons/sort_arrow.svg
new file mode 100644
index 0000000..8e84111
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/sort_arrow.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M15.17 15 13 17.17V6.83L15.17 9l1.41-1.41L12 3 7.41 7.59 8.83 9 11 6.83v10.34L8.83 15l-1.41 1.41L12 21l4.59-4.59L15.17 15z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/spellcheck.svg b/html/matt-chat/uswds/img/usa-icons/spellcheck.svg
new file mode 100644
index 0000000..5233130
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/spellcheck.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12.45 16h2.09L9.43 3H7.57L2.46 16h2.09l1.12-3h5.64l1.14 3zm-6.02-5L8.5 5.48 10.57 11H6.43zm15.16.59-8.09 8.09L9.83 16l-1.41 1.41 5.09 5.09L23 13l-1.41-1.41z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/star.svg b/html/matt-chat/uswds/img/usa-icons/star.svg
new file mode 100644
index 0000000..caf1ac5
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/star.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 17.27 18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/star_half.svg b/html/matt-chat/uswds/img/usa-icons/star_half.svg
new file mode 100644
index 0000000..b93632a
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/star_half.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m22 9.24-7.19-.62L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21 12 17.27 18.18 21l-1.63-7.03L22 9.24zM12 15.4V6.1l1.71 4.04 4.38.38-3.32 2.88 1 4.28L12 15.4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/star_outline.svg b/html/matt-chat/uswds/img/usa-icons/star_outline.svg
new file mode 100644
index 0000000..3d8a342
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/star_outline.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m22 9.24-7.19-.62L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21 12 17.27 18.18 21l-1.63-7.03L22 9.24zM12 15.4l-3.76 2.27 1-4.28-3.32-2.88 4.38-.38L12 6.1l1.71 4.04 4.38.38-3.32 2.88 1 4.28L12 15.4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/store.svg b/html/matt-chat/uswds/img/usa-icons/store.svg
new file mode 100644
index 0000000..2b06cc5
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/store.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 4H4v2h16V4zm1 10v-2l-1-5H4l-1 5v2h1v6h10v-6h4v6h2v-6h1zm-9 4H6v-4h6v4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/support.svg b/html/matt-chat/uswds/img/usa-icons/support.svg
new file mode 100644
index 0000000..23c6817
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/support.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm7.46 7.12-2.78 1.15a4.982 4.982 0 0 0-2.95-2.94l1.15-2.78c2.1.8 3.77 2.47 4.58 4.57zM12 15c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3zM9.13 4.54l1.17 2.78a5 5 0 0 0-2.98 2.97L4.54 9.13a7.984 7.984 0 0 1 4.59-4.59zM4.54 14.87l2.78-1.15a4.968 4.968 0 0 0 2.97 2.96l-1.17 2.78a7.996 7.996 0 0 1-4.58-4.59zm10.34 4.59-1.15-2.78a4.978 4.978 0 0 0 2.95-2.97l2.78 1.17a8.007 8.007 0 0 1-4.58 4.58z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/support_agent.svg b/html/matt-chat/uswds/img/usa-icons/support_agent.svg
new file mode 100644
index 0000000..62f96a3
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/support_agent.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 12.22C21 6.73 16.74 3 12 3c-4.69 0-9 3.65-9 9.28-.6.34-1 .98-1 1.72v2c0 1.1.9 2 2 2h1v-6.1c0-3.87 3.13-7 7-7s7 3.13 7 7V19h-8v2h8c1.1 0 2-.9 2-2v-1.22c.59-.31 1-.92 1-1.64v-2.3c0-.7-.41-1.31-1-1.62z"/><circle cx="9" cy="13" r="1"/><circle cx="15" cy="13" r="1"/><path d="M18 11.03A6.04 6.04 0 0 0 12.05 6c-3.03 0-6.29 2.51-6.03 6.45a8.075 8.075 0 0 0 4.86-5.89c1.31 2.63 4 4.44 7.12 4.47z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/text_fields.svg b/html/matt-chat/uswds/img/usa-icons/text_fields.svg
new file mode 100644
index 0000000..705cd75
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/text_fields.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M2.5 4v3h5v12h3V7h5V4h-13zm19 5h-9v3h3v7h3v-7h3V9z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/thumb_down_alt.svg b/html/matt-chat/uswds/img/usa-icons/thumb_down_alt.svg
new file mode 100644
index 0000000..2f3b84c
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/thumb_down_alt.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M22 4h-2c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1h2V4zM2.17 11.12c-.11.25-.17.52-.17.8V13c0 1.1.9 2 2 2h5.5l-.92 4.65c-.05.22-.02.46.08.66.23.45.52.86.88 1.22L10 22l6.41-6.41c.38-.38.59-.89.59-1.42V6.34C17 5.05 15.95 4 14.66 4h-8.1c-.71 0-1.36.37-1.72.97l-2.67 6.15z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/thumb_up_alt.svg b/html/matt-chat/uswds/img/usa-icons/thumb_up_alt.svg
new file mode 100644
index 0000000..82d1a63
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/thumb_up_alt.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M2 20h2c.55 0 1-.45 1-1v-9c0-.55-.45-1-1-1H2v11zm19.83-7.12c.11-.25.17-.52.17-.8V11c0-1.1-.9-2-2-2h-5.5l.92-4.65c.05-.22.02-.46-.08-.66a4.8 4.8 0 0 0-.88-1.22L14 2 7.59 8.41C7.21 8.79 7 9.3 7 9.83v7.84A2.34 2.34 0 0 0 9.34 20h8.11c.7 0 1.36-.37 1.72-.97l2.66-6.15z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/timer.svg b/html/matt-chat/uswds/img/usa-icons/timer.svg
new file mode 100644
index 0000000..ae67cc8
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/timer.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M9 1h6v2H9zm10.03 6.39 1.42-1.42c-.43-.51-.9-.99-1.41-1.41l-1.42 1.42A8.962 8.962 0 0 0 12 4a9 9 0 0 0-9 9c0 4.97 4.02 9 9 9a8.994 8.994 0 0 0 7.03-14.61zM13 14h-2V8h2v6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/toggle_off.svg b/html/matt-chat/uswds/img/usa-icons/toggle_off.svg
new file mode 100644
index 0000000..35cb604
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/toggle_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h10c2.76 0 5-2.24 5-5s-2.24-5-5-5zM7 15c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/toggle_on.svg b/html/matt-chat/uswds/img/usa-icons/toggle_on.svg
new file mode 100644
index 0000000..2ec91bb
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/toggle_on.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h10c2.76 0 5-2.24 5-5s-2.24-5-5-5zm0 8c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/topic.svg b/html/matt-chat/uswds/img/usa-icons/topic.svg
new file mode 100644
index 0000000..caf4e78
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/topic.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 6h-8l-2-2H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm-6 10H6v-2h8v2zm4-4H6v-2h12v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/tornado.svg b/html/matt-chat/uswds/img/usa-icons/tornado.svg
new file mode 100644
index 0000000..79e5dae
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/tornado.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M13 16v-2h2.77c.08-.32.16-.65.23-1 1.19-5.95 4-6 4-10H4a10.35 10.35 0 0 0 .48 3H8v2H5.26c.32.69.68 1.36 1 2H10v2H7.51A13.86 13.86 0 0 1 9 15a6.24 6.24 0 0 1-1 6l1 1c2.82-1.54 4.85-3.09 6.1-6Z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/translate.svg b/html/matt-chat/uswds/img/usa-icons/translate.svg
new file mode 100644
index 0000000..9b80604
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/translate.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m12.87 15.07-2.54-2.51.03-.03A17.52 17.52 0 0 0 14.07 6H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7 1.62-4.33L19.12 17h-3.24z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/trending_down.svg b/html/matt-chat/uswds/img/usa-icons/trending_down.svg
new file mode 100644
index 0000000..8ba84ae
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/trending_down.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m16 18 2.29-2.29-4.88-4.88-4 4L2 7.41 3.41 6l6 6 4-4 6.3 6.29L22 12v6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/trending_up.svg b/html/matt-chat/uswds/img/usa-icons/trending_up.svg
new file mode 100644
index 0000000..d49f43c
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/trending_up.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m16 6 2.29 2.29-4.88 4.88-4-4L2 16.59 3.41 18l6-6 4 4 6.3-6.29L22 12V6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/twitter.svg b/html/matt-chat/uswds/img/usa-icons/twitter.svg
new file mode 100644
index 0000000..a51804d
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/twitter.svg
@@ -0,0 +1 @@
+<svg width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M19.912 7.925v.527A11.562 11.562 0 0 1 8.265 20.098 11.443 11.443 0 0 1 2 18.265c.328.017.657.017.985 0a8.132 8.132 0 0 0 5.093-1.698 4.092 4.092 0 0 1-3.786-2.852c.255.062.518.091.781.085.36-.002.72-.047 1.07-.136a4.109 4.109 0 0 1-3.21-4.024c.566.32 1.202.494 1.851.51a4.126 4.126 0 0 1-1.34-5.518 11.613 11.613 0 0 0 8.488 4.295 4.397 4.397 0 0 1-.119-.934 4.092 4.092 0 0 1 4.092-4.092 4.04 4.04 0 0 1 3.005 1.29 7.929 7.929 0 0 0 2.53-1c-.3.953-.94 1.763-1.8 2.274A7.725 7.725 0 0 0 22 5.803a8.489 8.489 0 0 1-2.088 2.122Z" fill-rule="evenodd"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/undo.svg b/html/matt-chat/uswds/img/usa-icons/undo.svg
new file mode 100644
index 0000000..c37cf40
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/undo.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12.5 8c-2.65 0-5.05.99-6.9 2.6L2 7v9h9l-3.62-3.62c1.39-1.16 3.16-1.88 5.12-1.88 3.54 0 6.55 2.31 7.6 5.5l2.37-.78C21.08 11.03 17.15 8 12.5 8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/unfold_less.svg b/html/matt-chat/uswds/img/usa-icons/unfold_less.svg
new file mode 100644
index 0000000..5515e46
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/unfold_less.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M7.41 18.59 8.83 20 12 16.83 15.17 20l1.41-1.41L12 14l-4.59 4.59zm9.18-13.18L15.17 4 12 7.17 8.83 4 7.41 5.41 12 10l4.59-4.59z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/unfold_more.svg b/html/matt-chat/uswds/img/usa-icons/unfold_more.svg
new file mode 100644
index 0000000..e6b3d61
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/unfold_more.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 5.83 15.17 9l1.41-1.41L12 3 7.41 7.59 8.83 9 12 5.83zm0 12.34L8.83 15l-1.41 1.41L12 21l4.59-4.59L15.17 15 12 18.17z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/update.svg b/html/matt-chat/uswds/img/usa-icons/update.svg
new file mode 100644
index 0000000..2e02f70
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/update.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 10.12h-6.78l2.74-2.82c-2.73-2.7-7.15-2.8-9.88-.1-2.73 2.71-2.73 7.08 0 9.79s7.15 2.71 9.88 0C18.32 15.65 19 14.08 19 12.1h2c0 1.98-.88 4.55-2.64 6.29-3.51 3.48-9.21 3.48-12.72 0-3.5-3.47-3.53-9.11-.02-12.58s9.14-3.47 12.65 0L21 3v7.12zM12.5 8v4.25l3.5 2.08-.72 1.21L11 13V8h1.5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/upload_file.svg b/html/matt-chat/uswds/img/usa-icons/upload_file.svg
new file mode 100644
index 0000000..cd4b6e6
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/upload_file.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm4 18H6V4h7v5h5v11zM8 15.01l1.41 1.41L11 14.84V19h2v-4.16l1.59 1.59L16 15.01 12.01 11z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/verified.svg b/html/matt-chat/uswds/img/usa-icons/verified.svg
new file mode 100644
index 0000000..d26a7b2
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/verified.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m23 12-2.44-2.79.34-3.69-3.61-.82-1.89-3.2L12 2.96 8.6 1.5 6.71 4.69 3.1 5.5l.34 3.7L1 12l2.44 2.79-.34 3.7 3.61.82L8.6 22.5l3.4-1.47 3.4 1.46 1.89-3.19 3.61-.82-.34-3.69L23 12zm-12.91 4.72-3.8-3.81 1.48-1.48 2.32 2.33 5.85-5.87 1.48 1.48-7.33 7.35z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/verified_user.svg b/html/matt-chat/uswds/img/usa-icons/verified_user.svg
new file mode 100644
index 0000000..451df89
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/verified_user.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 1 3 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V5l-9-4zm-2 16-4-4 1.41-1.41L10 14.17l6.59-6.59L18 9l-8 8z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/visibility.svg b/html/matt-chat/uswds/img/usa-icons/visibility.svg
new file mode 100644
index 0000000..5c700e3
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/visibility.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/visibility_off.svg b/html/matt-chat/uswds/img/usa-icons/visibility_off.svg
new file mode 100644
index 0000000..9f804ec
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/visibility_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75-1.73-4.39-6-7.5-11-7.5-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 7.13 11.35 7 12 7zM2 4.27l2.28 2.28.46.46A11.804 11.804 0 0 0 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3 2 4.27zM7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2zm4.31-.78 3.15 3.15.02-.16c0-1.66-1.34-3-3-3l-.17.01z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/volume_off.svg b/html/matt-chat/uswds/img/usa-icons/volume_off.svg
new file mode 100644
index 0000000..dc8b1bd
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/volume_off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16.5 12A4.5 4.5 0 0 0 14 7.97v2.21l2.45 2.45c.03-.2.05-.41.05-.63zm2.5 0c0 .94-.2 1.82-.54 2.64l1.51 1.51A8.796 8.796 0 0 0 21 12c0-4.28-2.99-7.86-7-8.77v2.06c2.89.86 5 3.54 5 6.71zM4.27 3 3 4.27 7.73 9H3v6h4l5 5v-6.73l4.25 4.25c-.67.52-1.42.93-2.25 1.18v2.06a8.99 8.99 0 0 0 3.69-1.81L19.73 21 21 19.73l-9-9L4.27 3zM12 4 9.91 6.09 12 8.18V4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/warning.svg b/html/matt-chat/uswds/img/usa-icons/warning.svg
new file mode 100644
index 0000000..dfcf997
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/warning.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/wash.svg b/html/matt-chat/uswds/img/usa-icons/wash.svg
new file mode 100644
index 0000000..848078e
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/wash.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18.5 8A2.5 2.5 0 0 0 21 5.5C21 3.83 18.5 1 18.5 1S16 3.83 16 5.5A2.5 2.5 0 0 0 18.5 8zm-5 1c.83 0 1.5-.67 1.5-1.5 0-.84-1.5-2.5-1.5-2.5S12 6.66 12 7.5c0 .83.67 1.5 1.5 1.5zM9.12 5l-7.18 6.79c-.6.56-.94 1.35-.94 2.18V20c0 1.66 1.34 3 3 3h13.75a1.25 1.25 0 0 0 0-2.5H12v-1h7.75a1.25 1.25 0 0 0 0-2.5H12v-1h8.75a1.25 1.25 0 0 0 0-2.5H12v-1h6.75a1.25 1.25 0 0 0 0-2.5H8.86c.64-1.11 1.48-2.58 1.49-2.61a1.065 1.065 0 0 0-.12-1.23C10.22 6.12 9.12 5 9.12 5z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/wifi.svg b/html/matt-chat/uswds/img/usa-icons/wifi.svg
new file mode 100644
index 0000000..5883714
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/wifi.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m1 9 2 2c4.97-4.97 13.03-4.97 18 0l2-2C16.93 2.93 7.08 2.93 1 9zm8 8 3 3 3-3a4.237 4.237 0 0 0-6 0zm-4-4 2 2a7.074 7.074 0 0 1 10 0l2-2C15.14 9.14 8.87 9.14 5 13z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/work.svg b/html/matt-chat/uswds/img/usa-icons/work.svg
new file mode 100644
index 0000000..ac4f81c
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/work.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 6h-4V4c0-1.11-.89-2-2-2h-4c-1.11 0-2 .89-2 2v2H4c-1.11 0-1.99.89-1.99 2L2 19c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2zm-6 0h-4V4h4v2z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/x.svg b/html/matt-chat/uswds/img/usa-icons/x.svg
new file mode 100644
index 0000000..65be2b6
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/x.svg
@@ -0,0 +1 @@
+<svg width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M13.522 10.775 19.48 4h-1.412l-5.172 5.883L8.765 4H4l6.247 8.895L4 20h1.412l5.461-6.212L15.236 20H20l-6.478-9.225Zm-1.933 2.199-.633-.886L5.92 5.04h2.168l4.064 5.688.633.886 5.283 7.394H15.9l-4.311-6.034Z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/youtube.svg b/html/matt-chat/uswds/img/usa-icons/youtube.svg
new file mode 100644
index 0000000..f9905bd
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/youtube.svg
@@ -0,0 +1 @@
+<svg width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M19.816 5.389a2.469 2.469 0 0 1 1.766 1.746c.291 1.598.43 3.22.417 4.843a25.867 25.867 0 0 1-.417 4.794 2.468 2.468 0 0 1-1.766 1.795c-2.593.318-5.204.46-7.816.429a58.411 58.411 0 0 1-7.816-.429 2.469 2.469 0 0 1-1.766-1.746 25.879 25.879 0 0 1-.417-4.843 25.85 25.85 0 0 1 .417-4.793 2.468 2.468 0 0 1 1.766-1.796c2.594-.3 5.205-.427 7.816-.379a58.413 58.413 0 0 1 7.816.379ZM9.95 9.046v5.864l5.233-2.932L9.95 9.046Z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/zoom_in.svg b/html/matt-chat/uswds/img/usa-icons/zoom_in.svg
new file mode 100644
index 0000000..0c257ee
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/zoom_in.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15.5 14h-.79l-.28-.27A6.471 6.471 0 0 0 16 9.5 6.5 6.5 0 1 0 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"/><path d="M12 10h-2v2H9v-2H7V9h2V7h1v2h2v1z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/zoom_out.svg b/html/matt-chat/uswds/img/usa-icons/zoom_out.svg
new file mode 100644
index 0000000..b511470
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/zoom_out.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15.5 14h-.79l-.28-.27A6.471 6.471 0 0 0 16 9.5 6.5 6.5 0 1 0 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14zM7 9h5v1H7z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/usa-icons/zoom_out_map.svg b/html/matt-chat/uswds/img/usa-icons/zoom_out_map.svg
new file mode 100644
index 0000000..c8c76b2
--- /dev/null
+++ b/html/matt-chat/uswds/img/usa-icons/zoom_out_map.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="m15 3 2.3 2.3-2.89 2.87 1.42 1.42L18.7 6.7 21 9V3h-6zM3 9l2.3-2.3 2.87 2.89 1.42-1.42L6.7 5.3 9 3H3v6zm6 12-2.3-2.3 2.89-2.87-1.42-1.42L5.3 17.3 3 15v6h6zm12-6-2.3 2.3-2.87-2.89-1.42 1.42 2.89 2.87L15 21h6v-6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/uswds-icons/bedding.svg b/html/matt-chat/uswds/img/uswds-icons/bedding.svg
new file mode 100644
index 0000000..fdf4afd
--- /dev/null
+++ b/html/matt-chat/uswds/img/uswds-icons/bedding.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M17 10.13a33.86 33.86 0 0 1-10 0 1.92 1.92 0 0 1-1.51-1.46 10.42 10.42 0 0 1 0-4.84 1.92 1.92 0 0 1 1.57-1.46 33.86 33.86 0 0 1 10 0 1.9 1.9 0 0 1 1.56 1.46 10.16 10.16 0 0 1 0 4.84A1.9 1.9 0 0 1 17 10.13Zm4 12.12H7a5.25 5.25 0 0 1 0-10.5h10a3.25 3.25 0 0 1 0 6.5H7a1.25 1.25 0 0 1 0-2.5h10a.75.75 0 0 0 0-1.5H7a2.75 2.75 0 0 0 0 5.5h14a1.25 1.25 0 0 1 0 2.5Z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/uswds-icons/camping.svg b/html/matt-chat/uswds/img/uswds-icons/camping.svg
new file mode 100644
index 0000000..045864c
--- /dev/null
+++ b/html/matt-chat/uswds/img/uswds-icons/camping.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill-rule="evenodd" d="m12 5 8 13h2v2H2v-2h2l8-13zm.05 8-2.69 5h5.38l-2.69-5zM5.5 3l-.018.024A2.5 2.5 0 0 0 7.498 7 2.5 2.5 0 1 1 5.5 3z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/uswds-icons/chevron_left.svg b/html/matt-chat/uswds/img/uswds-icons/chevron_left.svg
new file mode 100644
index 0000000..44007bd
--- /dev/null
+++ b/html/matt-chat/uswds/img/uswds-icons/chevron_left.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M0 0h24v24H0z" fill="none"/><path d="M15.41 7.41 14 6l-6 6 6 6 1.41-1.41L10.83 12z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/uswds-icons/chevron_right.svg b/html/matt-chat/uswds/img/uswds-icons/chevron_right.svg
new file mode 100644
index 0000000..e5228d3
--- /dev/null
+++ b/html/matt-chat/uswds/img/uswds-icons/chevron_right.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M0 0h24v24H0z" fill="none"/><path d="M10 6 8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/uswds-icons/clothes.svg b/html/matt-chat/uswds/img/uswds-icons/clothes.svg
new file mode 100644
index 0000000..949304f
--- /dev/null
+++ b/html/matt-chat/uswds/img/uswds-icons/clothes.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M15.7 2.37 15 2.3V4a3 3 0 0 1-6 0V2.3l-.7.07a7 7 0 0 0-6.3 7V20h3V10h1.5v12h11V10H19v10h3V9.33a7 7 0 0 0-6.3-6.96Z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/uswds-icons/construction_worker.svg b/html/matt-chat/uswds/img/uswds-icons/construction_worker.svg
new file mode 100644
index 0000000..0946228
--- /dev/null
+++ b/html/matt-chat/uswds/img/uswds-icons/construction_worker.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><circle cx="10.5" cy="4.5" r="1.5"/><path d="M19.59 16h-1.27l-.64.71h-1.27L15.14 21h1.27l.64-.71h1.9l.64.71h1.27l-1.27-5zm-5.21-3.28L14 14.19l-3.8-1.26-.1-.16.52-3.13c.93 1.37 2.15 2.11 4.6 2.11v-1.5c-2.44 0-3.09-.77-3.9-2.39a2.65 2.65 0 0 0-3-1.59L3.75 7.41v3.38l-1.51-.5-.48 1.42 4.35 1.45L5 20.86l2 .28 1-7.34.38.13L10 16.3V21h2v-5.3l-.49-.7 2 .67-.37 1.27 1.91.57 1.24-4.19Zm-9.13-1.43v-2.7l1.57-.4-.49 3.46Z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/uswds-icons/flickr.svg b/html/matt-chat/uswds/img/uswds-icons/flickr.svg
new file mode 100644
index 0000000..0a43db6
--- /dev/null
+++ b/html/matt-chat/uswds/img/uswds-icons/flickr.svg
@@ -0,0 +1 @@
+<svg width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M6.459 17a4.444 4.444 0 0 1-4.116-2.768 4.541 4.541 0 0 1 .954-4.909 4.405 4.405 0 0 1 4.845-.982 4.5 4.5 0 0 1 2.747 4.159 4.514 4.514 0 0 1-1.292 3.181A4.403 4.403 0 0 1 6.459 17Zm11.111 0a4.444 4.444 0 0 1-4.116-2.768 4.541 4.541 0 0 1 .954-4.909 4.405 4.405 0 0 1 4.845-.982A4.5 4.5 0 0 1 22 12.5a4.514 4.514 0 0 1-1.292 3.181A4.403 4.403 0 0 1 17.57 17Z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/uswds-icons/flooding.svg b/html/matt-chat/uswds/img/uswds-icons/flooding.svg
new file mode 100644
index 0000000..fbada82
--- /dev/null
+++ b/html/matt-chat/uswds/img/uswds-icons/flooding.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M17 18.16a6 6 0 0 0-2.95.8 4.08 4.08 0 0 1-2.05.6 3.81 3.81 0 0 1-2-.56 5.84 5.84 0 0 0-5.9 0 4.05 4.05 0 0 1-2 .6v2a6 6 0 0 0 3-.8 4.05 4.05 0 0 1 1.9-.69 3.87 3.87 0 0 1 2.05.6 5.84 5.84 0 0 0 5.9 0 4.08 4.08 0 0 1 2.05-.6 3.81 3.81 0 0 1 2.05.6 5.9 5.9 0 0 0 2.95.8v-2a3.81 3.81 0 0 1-2-.51 6 6 0 0 0-3-.84Zm3-3.65a6.8 6.8 0 0 0-2-.71V10h3l-9-7-9 7h3v3.8a6.8 6.8 0 0 0-1.95.71 4.15 4.15 0 0 1-2 .6v1.95a6.07 6.07 0 0 0 3-.8 3.8 3.8 0 0 1 4.1 0 5.87 5.87 0 0 0 2.95.8 6 6 0 0 0 2.95-.8 3.8 3.8 0 0 1 4.1 0 5.9 5.9 0 0 0 2.95.8v-1.95a3.81 3.81 0 0 1-2.1-.6Zm-9.95 0V11h4v3.54a4.19 4.19 0 0 1-2 .57 3.8 3.8 0 0 1-2.05-.57Z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/uswds-icons/github.svg b/html/matt-chat/uswds/img/uswds-icons/github.svg
new file mode 100644
index 0000000..09f6740
--- /dev/null
+++ b/html/matt-chat/uswds/img/uswds-icons/github.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M12 2a10 10 0 0 0-3.16 19.49c.5.09.68-.22.68-.48v-1.7C6.73 19.91 6.14 18 6.14 18A2.69 2.69 0 0 0 5 16.5c-.91-.62.07-.61.07-.61a2.13 2.13 0 0 1 1.53 1 2.14 2.14 0 0 0 2.91.83 2.16 2.16 0 0 1 .63-1.34c-2.14-.21-4.52-1.07-4.52-4.9a3.89 3.89 0 0 1 1-2.69 3.57 3.57 0 0 1 .1-2.64s.84-.27 2.75 1a9.63 9.63 0 0 1 5 0c1.91-1.29 2.75-1 2.75-1a3.57 3.57 0 0 1 .1 2.64 3.89 3.89 0 0 1 1 2.69c0 3.84-2.34 4.68-4.57 4.93a2.39 2.39 0 0 1 .68 1.85v2.75c0 .33.18.58.69.48A10 10 0 0 0 12 2Z" fill-rule="evenodd"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/uswds-icons/hospital.svg b/html/matt-chat/uswds/img/uswds-icons/hospital.svg
new file mode 100644
index 0000000..ce5f9ac
--- /dev/null
+++ b/html/matt-chat/uswds/img/uswds-icons/hospital.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M19 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2Zm-3 14h-2v-4h-4v4H8V7h2v4h4V7h2Z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/uswds-icons/hurricane.svg b/html/matt-chat/uswds/img/uswds-icons/hurricane.svg
new file mode 100644
index 0000000..d4f19d7
--- /dev/null
+++ b/html/matt-chat/uswds/img/uswds-icons/hurricane.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M19 12a7 7 0 0 0-6.34-7 27.32 27.32 0 0 1 2.21-2.09.44.44 0 0 0-.29-.78 10.62 10.62 0 0 0-9.17 7.5 4.26 4.26 0 0 0-.15.47v.06A7.18 7.18 0 0 0 5 12a7 7 0 0 0 6.35 7 27.71 27.71 0 0 1-2.21 2.1.44.44 0 0 0 .29.78 10.65 10.65 0 0 0 9.23-7.69v-.14c0-.05.05-.13.07-.2A6.76 6.76 0 0 0 19 12Zm-7 3.5a3.5 3.5 0 1 1 3.5-3.5 3.5 3.5 0 0 1-3.5 3.5Z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/uswds-icons/identification.svg b/html/matt-chat/uswds/img/uswds-icons/identification.svg
new file mode 100644
index 0000000..bbd409a
--- /dev/null
+++ b/html/matt-chat/uswds/img/uswds-icons/identification.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M11 14.14C11 13.38 9.33 13 8.5 13S6 13.38 6 14.14V15h5Z"/><circle cx="8.5" cy="10.5" r="1.5"/><path d="M20 4H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2Zm-7 13H4V7h9Zm7 0h-5v-2h5Zm0-4h-5v-2h5Zm0-4h-5V7h5Z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/uswds-icons/instagram.svg b/html/matt-chat/uswds/img/uswds-icons/instagram.svg
new file mode 100644
index 0000000..578e517
--- /dev/null
+++ b/html/matt-chat/uswds/img/uswds-icons/instagram.svg
@@ -0,0 +1 @@
+<svg width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M8.273 3.063c-.958.045-1.612.198-2.184.423a4.41 4.41 0 0 0-1.592 1.04 4.409 4.409 0 0 0-1.035 1.596c-.222.572-.372 1.227-.414 2.185-.042.958-.052 1.266-.047 3.71.005 2.444.016 2.75.062 3.71.046.958.198 1.612.423 2.184a4.41 4.41 0 0 0 1.04 1.592 4.4 4.4 0 0 0 1.597 1.035c.572.221 1.227.372 2.185.414.958.042 1.266.052 3.71.047 2.443-.005 2.75-.016 3.71-.061.96-.046 1.611-.199 2.183-.423a4.411 4.411 0 0 0 1.592-1.04 4.41 4.41 0 0 0 1.035-1.597c.222-.572.372-1.227.414-2.184.042-.96.052-1.268.047-3.711-.005-2.444-.016-2.75-.061-3.71-.046-.96-.198-1.612-.423-2.184a4.418 4.418 0 0 0-1.04-1.592 4.4 4.4 0 0 0-1.597-1.035c-.572-.221-1.227-.372-2.185-.414-.958-.041-1.266-.052-3.71-.047-2.444.005-2.75.015-3.71.062m.105 16.27c-.878-.038-1.354-.184-1.672-.306a2.802 2.802 0 0 1-1.036-.671 2.772 2.772 0 0 1-.675-1.034c-.124-.317-.272-.793-.313-1.67-.045-.95-.054-1.234-.06-3.637-.004-2.403.005-2.687.046-3.636.038-.877.184-1.354.306-1.671.162-.421.357-.72.672-1.036a2.778 2.778 0 0 1 1.033-.675c.317-.124.793-.272 1.67-.313.95-.045 1.234-.054 3.637-.06 2.402-.005 2.687.004 3.637.046.876.038 1.354.183 1.67.306.421.162.72.357 1.037.671.316.315.511.613.675 1.034.124.317.271.792.313 1.67.045.95.055 1.234.06 3.636.004 2.402-.004 2.688-.046 3.636-.038.878-.184 1.354-.306 1.672a2.79 2.79 0 0 1-.672 1.036 2.78 2.78 0 0 1-1.033.675c-.317.124-.794.271-1.67.313-.95.045-1.234.054-3.637.06-2.403.005-2.687-.005-3.636-.046M15.715 7.19a1.08 1.08 0 1 0 2.16-.004 1.08 1.08 0 0 0-2.16.004m-8.336 4.819a4.62 4.62 0 1 0 9.242-.018 4.62 4.62 0 0 0-9.242.018M9 12.006a3 3 0 1 1 6-.012 3 3 0 0 1-6 .012"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/uswds-icons/linkedin.svg b/html/matt-chat/uswds/img/uswds-icons/linkedin.svg
new file mode 100644
index 0000000..a22fd82
--- /dev/null
+++ b/html/matt-chat/uswds/img/uswds-icons/linkedin.svg
@@ -0,0 +1 @@
+<svg width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M19.667 3A1.322 1.322 0 0 1 21 4.298V19.7a1.323 1.323 0 0 1-1.333 1.3H4.328A1.32 1.32 0 0 1 3 19.701V4.3A1.32 1.32 0 0 1 4.328 3h15.339Zm-4.898 6.1a2.834 2.834 0 0 0-2.55 1.403h-.036V9.316H9.6V18h2.692v-4.296c0-1.133.214-2.23 1.616-2.23 1.382 0 1.4 1.296 1.4 2.303V18H18v-4.764c0-2.338-.503-4.136-3.231-4.136Zm-6.86.216H5.213V18h2.694V9.316ZM6.561 5A1.57 1.57 0 0 0 5 6.565a1.57 1.57 0 0 0 1.562 1.564l.142-.006a1.572 1.572 0 0 0 1.42-1.558l-.006-.142A1.572 1.572 0 0 0 6.562 5Z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/uswds-icons/navigate_far_before.svg b/html/matt-chat/uswds/img/uswds-icons/navigate_far_before.svg
new file mode 100644
index 0000000..6d5f4b1
--- /dev/null
+++ b/html/matt-chat/uswds/img/uswds-icons/navigate_far_before.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M11.41 7.41 10 6l-6 6 6 6 1.41-1.41L6.83 12zm8 0L18 6l-6 6 6 6 1.41-1.41L14.83 12z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/uswds-icons/navigate_far_next.svg b/html/matt-chat/uswds/img/uswds-icons/navigate_far_next.svg
new file mode 100644
index 0000000..8ce9c30
--- /dev/null
+++ b/html/matt-chat/uswds/img/uswds-icons/navigate_far_next.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="m14 6-1.41 1.41L17.17 12l-4.58 4.59L14 18l6-6zM6 6 4.59 7.41 9.17 12l-4.58 4.59L6 18l6-6z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/uswds-icons/rain.svg b/html/matt-chat/uswds/img/uswds-icons/rain.svg
new file mode 100644
index 0000000..e4d9267
--- /dev/null
+++ b/html/matt-chat/uswds/img/uswds-icons/rain.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M17.51 7A5.62 5.62 0 0 0 7 5.51a4.5 4.5 0 0 0 .49 9h9.75A3.74 3.74 0 0 0 17.51 7ZM4.076 20.774 6.08 15.77l1.857.743-2.003 5.004zm4.998-.002 2.003-5.004 1.856.743-2.002 5.004zm4.998.008 2.002-5.004 1.857.743-2.002 5.004z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/uswds-icons/severe_weather.svg b/html/matt-chat/uswds/img/uswds-icons/severe_weather.svg
new file mode 100644
index 0000000..36f3c8a
--- /dev/null
+++ b/html/matt-chat/uswds/img/uswds-icons/severe_weather.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><g data-name="Severe Weather"><path d="M4.05 17.73 12 4l8 13.85A5 5 0 0 0 19.2 8a7.49 7.49 0 0 0-14-2 6 6 0 0 0-1.15 11.73Z"/><path d="M12 7 3.34 22h17.32Zm0 13.4a1 1 0 1 1 1-1 1 1 0 0 1-1 1ZM11 17v-4.6h2V17Z"/></g></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/uswds-icons/snow.svg b/html/matt-chat/uswds/img/uswds-icons/snow.svg
new file mode 100644
index 0000000..d6c08e2
--- /dev/null
+++ b/html/matt-chat/uswds/img/uswds-icons/snow.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="m20.76 14.07-.66-1.34-2.88 1.42L13.5 12l3.72-2.15 2.88 1.42.66-1.34-1.97-.98 2.25-1.3-.75-1.3-2.25 1.3.14-2.2-1.5-.1-.21 3.2-3.72 2.15V6.4l2.67-1.78-.84-1.24-1.83 1.22V2h-1.5v2.6L9.42 3.38l-.84 1.24 2.67 1.78v4.3L7.53 8.55l-.21-3.2-1.5.1.14 2.2-2.25-1.3-.75 1.3 2.25 1.3-1.97.98.66 1.34 2.88-1.42L10.5 12l-3.72 2.15-2.88-1.42-.66 1.34 1.97.98-2.25 1.3.75 1.3 2.25-1.3-.14 2.2 1.5.1.21-3.2 3.72-2.15v4.3l-2.67 1.78.84 1.24 1.83-1.22V22h1.5v-2.6l1.83 1.22.84-1.24-2.67-1.78v-4.3l3.72 2.15.21 3.2 1.5-.1-.14-2.2 2.25 1.3.75-1.3-2.25-1.3 1.97-.98z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/uswds-icons/sort_arrow.svg b/html/matt-chat/uswds/img/uswds-icons/sort_arrow.svg
new file mode 100644
index 0000000..8e84111
--- /dev/null
+++ b/html/matt-chat/uswds/img/uswds-icons/sort_arrow.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M15.17 15 13 17.17V6.83L15.17 9l1.41-1.41L12 3 7.41 7.59 8.83 9 11 6.83v10.34L8.83 15l-1.41 1.41L12 21l4.59-4.59L15.17 15z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/uswds-icons/tornado.svg b/html/matt-chat/uswds/img/uswds-icons/tornado.svg
new file mode 100644
index 0000000..79e5dae
--- /dev/null
+++ b/html/matt-chat/uswds/img/uswds-icons/tornado.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M13 16v-2h2.77c.08-.32.16-.65.23-1 1.19-5.95 4-6 4-10H4a10.35 10.35 0 0 0 .48 3H8v2H5.26c.32.69.68 1.36 1 2H10v2H7.51A13.86 13.86 0 0 1 9 15a6.24 6.24 0 0 1-1 6l1 1c2.82-1.54 4.85-3.09 6.1-6Z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/uswds-icons/twitter.svg b/html/matt-chat/uswds/img/uswds-icons/twitter.svg
new file mode 100644
index 0000000..a51804d
--- /dev/null
+++ b/html/matt-chat/uswds/img/uswds-icons/twitter.svg
@@ -0,0 +1 @@
+<svg width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M19.912 7.925v.527A11.562 11.562 0 0 1 8.265 20.098 11.443 11.443 0 0 1 2 18.265c.328.017.657.017.985 0a8.132 8.132 0 0 0 5.093-1.698 4.092 4.092 0 0 1-3.786-2.852c.255.062.518.091.781.085.36-.002.72-.047 1.07-.136a4.109 4.109 0 0 1-3.21-4.024c.566.32 1.202.494 1.851.51a4.126 4.126 0 0 1-1.34-5.518 11.613 11.613 0 0 0 8.488 4.295 4.397 4.397 0 0 1-.119-.934 4.092 4.092 0 0 1 4.092-4.092 4.04 4.04 0 0 1 3.005 1.29 7.929 7.929 0 0 0 2.53-1c-.3.953-.94 1.763-1.8 2.274A7.725 7.725 0 0 0 22 5.803a8.489 8.489 0 0 1-2.088 2.122Z" fill-rule="evenodd"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/uswds-icons/x.svg b/html/matt-chat/uswds/img/uswds-icons/x.svg
new file mode 100644
index 0000000..65be2b6
--- /dev/null
+++ b/html/matt-chat/uswds/img/uswds-icons/x.svg
@@ -0,0 +1 @@
+<svg width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M13.522 10.775 19.48 4h-1.412l-5.172 5.883L8.765 4H4l6.247 8.895L4 20h1.412l5.461-6.212L15.236 20H20l-6.478-9.225Zm-1.933 2.199-.633-.886L5.92 5.04h2.168l4.064 5.688.633.886 5.283 7.394H15.9l-4.311-6.034Z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/img/uswds-icons/youtube.svg b/html/matt-chat/uswds/img/uswds-icons/youtube.svg
new file mode 100644
index 0000000..f9905bd
--- /dev/null
+++ b/html/matt-chat/uswds/img/uswds-icons/youtube.svg
@@ -0,0 +1 @@
+<svg width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M19.816 5.389a2.469 2.469 0 0 1 1.766 1.746c.291 1.598.43 3.22.417 4.843a25.867 25.867 0 0 1-.417 4.794 2.468 2.468 0 0 1-1.766 1.795c-2.593.318-5.204.46-7.816.429a58.411 58.411 0 0 1-7.816-.429 2.469 2.469 0 0 1-1.766-1.746 25.879 25.879 0 0 1-.417-4.843 25.85 25.85 0 0 1 .417-4.793 2.468 2.468 0 0 1 1.766-1.796c2.594-.3 5.205-.427 7.816-.379a58.413 58.413 0 0 1 7.816.379ZM9.95 9.046v5.864l5.233-2.932L9.95 9.046Z"/></svg>
\ No newline at end of file
diff --git a/html/matt-chat/uswds/js/uswds-init.js b/html/matt-chat/uswds/js/uswds-init.js
new file mode 100644
index 0000000..014c68d
--- /dev/null
+++ b/html/matt-chat/uswds/js/uswds-init.js
@@ -0,0 +1,24 @@
+/* eslint-disable no-var */
+(function uswdsInit() {
+  "use strict";
+
+  var loadingClass = "usa-js-loading";
+  var fallback;
+
+  document.documentElement.classList.add(loadingClass);
+  function revertClass() {
+    document.documentElement.classList.remove(loadingClass);
+  }
+
+  fallback = setTimeout(revertClass, 8000);
+
+  function verifyLoaded() {
+    if (window.uswdsPresent) {
+      clearTimeout(fallback);
+      revertClass();
+      window.removeEventListener("load", verifyLoaded, true);
+    }
+  }
+
+  window.addEventListener("load", verifyLoaded, true);
+})();
diff --git a/html/matt-chat/uswds/js/uswds-init.min.js b/html/matt-chat/uswds/js/uswds-init.min.js
new file mode 100644
index 0000000..4ec10dd
--- /dev/null
+++ b/html/matt-chat/uswds/js/uswds-init.min.js
@@ -0,0 +1,2 @@
+(()=>{var n,e="usa-js-loading";function t(){document.documentElement.classList.remove(e)}document.documentElement.classList.add(e),n=setTimeout(t,8e3),window.addEventListener("load",function e(){window.uswdsPresent&&(clearTimeout(n),t(),window.removeEventListener("load",e,!0))},!0)})();
+//# sourceMappingURL=uswds-init.min.js.map
diff --git a/html/matt-chat/uswds/js/uswds-init.min.js.map b/html/matt-chat/uswds/js/uswds-init.min.js.map
new file mode 100644
index 0000000..d41540e
--- /dev/null
+++ b/html/matt-chat/uswds/js/uswds-init.min.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"uswds-init.min.js","sources":["uswds-init.js"],"sourcesContent":["/* eslint-disable no-var */\n(function uswdsInit() {\n  \"use strict\";\n\n  var loadingClass = \"usa-js-loading\";\n  var fallback;\n\n  document.documentElement.classList.add(loadingClass);\n  function revertClass() {\n    document.documentElement.classList.remove(loadingClass);\n  }\n\n  fallback = setTimeout(revertClass, 8000);\n\n  function verifyLoaded() {\n    if (window.uswdsPresent) {\n      clearTimeout(fallback);\n      revertClass();\n      window.removeEventListener(\"load\", verifyLoaded, true);\n    }\n  }\n\n  window.addEventListener(\"load\", verifyLoaded, true);\n})();\n"],"names":["fallback","loadingClass","revertClass","document","documentElement","classList","remove","add","setTimeout","window","addEventListener","verifyLoaded","uswdsPresent","clearTimeout","removeEventListener"],"mappings":"CACA,KAGE,IACIA,EADAC,EAAe,iBAInB,SAASC,IACPC,SAASC,gBAAgBC,UAAUC,OAAOL,CAAY,CACxD,CAHAE,SAASC,gBAAgBC,UAAUE,IAAIN,CAAY,EAKnDD,EAAWQ,WAAWN,EAAa,GAAI,EAUvCO,OAAOC,iBAAiB,OARxB,SAASC,IACHF,OAAOG,eACTC,aAAab,CAAQ,EACrBE,EAAY,EACZO,OAAOK,oBAAoB,OAAQH,EAAc,CAAA,CAAI,EAEzD,EAE8C,CAAA,CAAI,CACnD,GAAE"}
\ No newline at end of file
diff --git a/html/matt-chat/uswds/js/uswds.js b/html/matt-chat/uswds/js/uswds.js
new file mode 100644
index 0000000..bbd8309
--- /dev/null
+++ b/html/matt-chat/uswds/js/uswds.js
@@ -0,0 +1,7137 @@
+(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){
+"use strict";
+
+// element-closest | CC0-1.0 | github.com/jonathantneal/closest
+
+(function (ElementProto) {
+  if (typeof ElementProto.matches !== 'function') {
+    ElementProto.matches = ElementProto.msMatchesSelector || ElementProto.mozMatchesSelector || ElementProto.webkitMatchesSelector || function matches(selector) {
+      var element = this;
+      var elements = (element.document || element.ownerDocument).querySelectorAll(selector);
+      var index = 0;
+      while (elements[index] && elements[index] !== element) {
+        ++index;
+      }
+      return Boolean(elements[index]);
+    };
+  }
+  if (typeof ElementProto.closest !== 'function') {
+    ElementProto.closest = function closest(selector) {
+      var element = this;
+      while (element && element.nodeType === 1) {
+        if (element.matches(selector)) {
+          return element;
+        }
+        element = element.parentNode;
+      }
+      return null;
+    };
+  }
+})(window.Element.prototype);
+
+},{}],2:[function(require,module,exports){
+"use strict";
+
+/* global define, KeyboardEvent, module */
+
+(function () {
+  var keyboardeventKeyPolyfill = {
+    polyfill: polyfill,
+    keys: {
+      3: 'Cancel',
+      6: 'Help',
+      8: 'Backspace',
+      9: 'Tab',
+      12: 'Clear',
+      13: 'Enter',
+      16: 'Shift',
+      17: 'Control',
+      18: 'Alt',
+      19: 'Pause',
+      20: 'CapsLock',
+      27: 'Escape',
+      28: 'Convert',
+      29: 'NonConvert',
+      30: 'Accept',
+      31: 'ModeChange',
+      32: ' ',
+      33: 'PageUp',
+      34: 'PageDown',
+      35: 'End',
+      36: 'Home',
+      37: 'ArrowLeft',
+      38: 'ArrowUp',
+      39: 'ArrowRight',
+      40: 'ArrowDown',
+      41: 'Select',
+      42: 'Print',
+      43: 'Execute',
+      44: 'PrintScreen',
+      45: 'Insert',
+      46: 'Delete',
+      48: ['0', ')'],
+      49: ['1', '!'],
+      50: ['2', '@'],
+      51: ['3', '#'],
+      52: ['4', '$'],
+      53: ['5', '%'],
+      54: ['6', '^'],
+      55: ['7', '&'],
+      56: ['8', '*'],
+      57: ['9', '('],
+      91: 'OS',
+      93: 'ContextMenu',
+      144: 'NumLock',
+      145: 'ScrollLock',
+      181: 'VolumeMute',
+      182: 'VolumeDown',
+      183: 'VolumeUp',
+      186: [';', ':'],
+      187: ['=', '+'],
+      188: [',', '<'],
+      189: ['-', '_'],
+      190: ['.', '>'],
+      191: ['/', '?'],
+      192: ['`', '~'],
+      219: ['[', '{'],
+      220: ['\\', '|'],
+      221: [']', '}'],
+      222: ["'", '"'],
+      224: 'Meta',
+      225: 'AltGraph',
+      246: 'Attn',
+      247: 'CrSel',
+      248: 'ExSel',
+      249: 'EraseEof',
+      250: 'Play',
+      251: 'ZoomOut'
+    }
+  };
+
+  // Function keys (F1-24).
+  var i;
+  for (i = 1; i < 25; i++) {
+    keyboardeventKeyPolyfill.keys[111 + i] = 'F' + i;
+  }
+
+  // Printable ASCII characters.
+  var letter = '';
+  for (i = 65; i < 91; i++) {
+    letter = String.fromCharCode(i);
+    keyboardeventKeyPolyfill.keys[i] = [letter.toLowerCase(), letter.toUpperCase()];
+  }
+  function polyfill() {
+    if (!('KeyboardEvent' in window) || 'key' in KeyboardEvent.prototype) {
+      return false;
+    }
+
+    // Polyfill `key` on `KeyboardEvent`.
+    var proto = {
+      get: function (x) {
+        var key = keyboardeventKeyPolyfill.keys[this.which || this.keyCode];
+        if (Array.isArray(key)) {
+          key = key[+this.shiftKey];
+        }
+        return key;
+      }
+    };
+    Object.defineProperty(KeyboardEvent.prototype, 'key', proto);
+    return proto;
+  }
+  if (typeof define === 'function' && define.amd) {
+    define('keyboardevent-key-polyfill', keyboardeventKeyPolyfill);
+  } else if (typeof exports !== 'undefined' && typeof module !== 'undefined') {
+    module.exports = keyboardeventKeyPolyfill;
+  } else if (window) {
+    window.keyboardeventKeyPolyfill = keyboardeventKeyPolyfill;
+  }
+})();
+
+},{}],3:[function(require,module,exports){
+/*
+object-assign
+(c) Sindre Sorhus
+@license MIT
+*/
+
+'use strict';
+
+/* eslint-disable no-unused-vars */
+var getOwnPropertySymbols = Object.getOwnPropertySymbols;
+var hasOwnProperty = Object.prototype.hasOwnProperty;
+var propIsEnumerable = Object.prototype.propertyIsEnumerable;
+function toObject(val) {
+  if (val === null || val === undefined) {
+    throw new TypeError('Object.assign cannot be called with null or undefined');
+  }
+  return Object(val);
+}
+function shouldUseNative() {
+  try {
+    if (!Object.assign) {
+      return false;
+    }
+
+    // Detect buggy property enumeration order in older V8 versions.
+
+    // https://bugs.chromium.org/p/v8/issues/detail?id=4118
+    var test1 = new String('abc'); // eslint-disable-line no-new-wrappers
+    test1[5] = 'de';
+    if (Object.getOwnPropertyNames(test1)[0] === '5') {
+      return false;
+    }
+
+    // https://bugs.chromium.org/p/v8/issues/detail?id=3056
+    var test2 = {};
+    for (var i = 0; i < 10; i++) {
+      test2['_' + String.fromCharCode(i)] = i;
+    }
+    var order2 = Object.getOwnPropertyNames(test2).map(function (n) {
+      return test2[n];
+    });
+    if (order2.join('') !== '0123456789') {
+      return false;
+    }
+
+    // https://bugs.chromium.org/p/v8/issues/detail?id=3056
+    var test3 = {};
+    'abcdefghijklmnopqrst'.split('').forEach(function (letter) {
+      test3[letter] = letter;
+    });
+    if (Object.keys(Object.assign({}, test3)).join('') !== 'abcdefghijklmnopqrst') {
+      return false;
+    }
+    return true;
+  } catch (err) {
+    // We don't expect any of the above to throw, but better to be safe.
+    return false;
+  }
+}
+module.exports = shouldUseNative() ? Object.assign : function (target, source) {
+  var from;
+  var to = toObject(target);
+  var symbols;
+  for (var s = 1; s < arguments.length; s++) {
+    from = Object(arguments[s]);
+    for (var key in from) {
+      if (hasOwnProperty.call(from, key)) {
+        to[key] = from[key];
+      }
+    }
+    if (getOwnPropertySymbols) {
+      symbols = getOwnPropertySymbols(from);
+      for (var i = 0; i < symbols.length; i++) {
+        if (propIsEnumerable.call(from, symbols[i])) {
+          to[symbols[i]] = from[symbols[i]];
+        }
+      }
+    }
+  }
+  return to;
+};
+
+},{}],4:[function(require,module,exports){
+"use strict";
+
+const assign = require('object-assign');
+const delegate = require('../delegate');
+const delegateAll = require('../delegateAll');
+const DELEGATE_PATTERN = /^(.+):delegate\((.+)\)$/;
+const SPACE = ' ';
+const getListeners = function (type, handler) {
+  var match = type.match(DELEGATE_PATTERN);
+  var selector;
+  if (match) {
+    type = match[1];
+    selector = match[2];
+  }
+  var options;
+  if (typeof handler === 'object') {
+    options = {
+      capture: popKey(handler, 'capture'),
+      passive: popKey(handler, 'passive')
+    };
+  }
+  var listener = {
+    selector: selector,
+    delegate: typeof handler === 'object' ? delegateAll(handler) : selector ? delegate(selector, handler) : handler,
+    options: options
+  };
+  if (type.indexOf(SPACE) > -1) {
+    return type.split(SPACE).map(function (_type) {
+      return assign({
+        type: _type
+      }, listener);
+    });
+  } else {
+    listener.type = type;
+    return [listener];
+  }
+};
+var popKey = function (obj, key) {
+  var value = obj[key];
+  delete obj[key];
+  return value;
+};
+module.exports = function behavior(events, props) {
+  const listeners = Object.keys(events).reduce(function (memo, type) {
+    var listeners = getListeners(type, events[type]);
+    return memo.concat(listeners);
+  }, []);
+  return assign({
+    add: function addBehavior(element) {
+      listeners.forEach(function (listener) {
+        element.addEventListener(listener.type, listener.delegate, listener.options);
+      });
+    },
+    remove: function removeBehavior(element) {
+      listeners.forEach(function (listener) {
+        element.removeEventListener(listener.type, listener.delegate, listener.options);
+      });
+    }
+  }, props);
+};
+
+},{"../delegate":6,"../delegateAll":7,"object-assign":3}],5:[function(require,module,exports){
+"use strict";
+
+module.exports = function compose(functions) {
+  return function (e) {
+    return functions.some(function (fn) {
+      return fn.call(this, e) === false;
+    }, this);
+  };
+};
+
+},{}],6:[function(require,module,exports){
+"use strict";
+
+// polyfill Element.prototype.closest
+require('element-closest');
+module.exports = function delegate(selector, fn) {
+  return function delegation(event) {
+    var target = event.target.closest(selector);
+    if (target) {
+      return fn.call(target, event);
+    }
+  };
+};
+
+},{"element-closest":1}],7:[function(require,module,exports){
+"use strict";
+
+const delegate = require('../delegate');
+const compose = require('../compose');
+const SPLAT = '*';
+module.exports = function delegateAll(selectors) {
+  const keys = Object.keys(selectors);
+
+  // XXX optimization: if there is only one handler and it applies to
+  // all elements (the "*" CSS selector), then just return that
+  // handler
+  if (keys.length === 1 && keys[0] === SPLAT) {
+    return selectors[SPLAT];
+  }
+  const delegates = keys.reduce(function (memo, selector) {
+    memo.push(delegate(selector, selectors[selector]));
+    return memo;
+  }, []);
+  return compose(delegates);
+};
+
+},{"../compose":5,"../delegate":6}],8:[function(require,module,exports){
+"use strict";
+
+module.exports = function ignore(element, fn) {
+  return function ignorance(e) {
+    if (element !== e.target && !element.contains(e.target)) {
+      return fn.call(this, e);
+    }
+  };
+};
+
+},{}],9:[function(require,module,exports){
+"use strict";
+
+module.exports = {
+  behavior: require('./behavior'),
+  delegate: require('./delegate'),
+  delegateAll: require('./delegateAll'),
+  ignore: require('./ignore'),
+  keymap: require('./keymap')
+};
+
+},{"./behavior":4,"./delegate":6,"./delegateAll":7,"./ignore":8,"./keymap":10}],10:[function(require,module,exports){
+"use strict";
+
+require('keyboardevent-key-polyfill');
+
+// these are the only relevant modifiers supported on all platforms,
+// according to MDN:
+// <https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/getModifierState>
+const MODIFIERS = {
+  'Alt': 'altKey',
+  'Control': 'ctrlKey',
+  'Ctrl': 'ctrlKey',
+  'Shift': 'shiftKey'
+};
+const MODIFIER_SEPARATOR = '+';
+const getEventKey = function (event, hasModifiers) {
+  var key = event.key;
+  if (hasModifiers) {
+    for (var modifier in MODIFIERS) {
+      if (event[MODIFIERS[modifier]] === true) {
+        key = [modifier, key].join(MODIFIER_SEPARATOR);
+      }
+    }
+  }
+  return key;
+};
+module.exports = function keymap(keys) {
+  const hasModifiers = Object.keys(keys).some(function (key) {
+    return key.indexOf(MODIFIER_SEPARATOR) > -1;
+  });
+  return function (event) {
+    var key = getEventKey(event, hasModifiers);
+    return [key, key.toLowerCase()].reduce(function (result, _key) {
+      if (_key in keys) {
+        result = keys[key].call(this, event);
+      }
+      return result;
+    }, undefined);
+  };
+};
+module.exports.MODIFIERS = MODIFIERS;
+
+},{"keyboardevent-key-polyfill":2}],11:[function(require,module,exports){
+"use strict";
+
+module.exports = function once(listener, options) {
+  var wrapped = function wrappedOnce(e) {
+    e.currentTarget.removeEventListener(e.type, wrapped, options);
+    return listener.call(this, e);
+  };
+  return wrapped;
+};
+
+},{}],12:[function(require,module,exports){
+'use strict';
+
+var RE_TRIM = /(^\s+)|(\s+$)/g;
+var RE_SPLIT = /\s+/;
+var trim = String.prototype.trim ? function (str) {
+  return str.trim();
+} : function (str) {
+  return str.replace(RE_TRIM, '');
+};
+var queryById = function (id) {
+  return this.querySelector('[id="' + id.replace(/"/g, '\\"') + '"]');
+};
+module.exports = function resolveIds(ids, doc) {
+  if (typeof ids !== 'string') {
+    throw new Error('Expected a string but got ' + typeof ids);
+  }
+  if (!doc) {
+    doc = window.document;
+  }
+  var getElementById = doc.getElementById ? doc.getElementById.bind(doc) : queryById.bind(doc);
+  ids = trim(ids).split(RE_SPLIT);
+
+  // XXX we can short-circuit here because trimming and splitting a
+  // string of just whitespace produces an array containing a single,
+  // empty string
+  if (ids.length === 1 && ids[0] === '') {
+    return [];
+  }
+  return ids.map(function (id) {
+    var el = getElementById(id);
+    if (!el) {
+      throw new Error('no element with id: "' + id + '"');
+    }
+    return el;
+  });
+};
+
+},{}],13:[function(require,module,exports){
+"use strict";
+
+const behavior = require("../../uswds-core/src/js/utils/behavior");
+const toggleFormInput = require("../../uswds-core/src/js/utils/toggle-form-input");
+const {
+  CLICK
+} = require("../../uswds-core/src/js/events");
+const {
+  prefix: PREFIX
+} = require("../../uswds-core/src/js/config");
+const LINK = `.${PREFIX}-show-password`;
+function toggle(event) {
+  event.preventDefault();
+  toggleFormInput(this);
+}
+module.exports = behavior({
+  [CLICK]: {
+    [LINK]: toggle
+  }
+});
+
+},{"../../uswds-core/src/js/config":35,"../../uswds-core/src/js/events":36,"../../uswds-core/src/js/utils/behavior":40,"../../uswds-core/src/js/utils/toggle-form-input":50}],14:[function(require,module,exports){
+"use strict";
+
+const select = require("../../uswds-core/src/js/utils/select");
+const behavior = require("../../uswds-core/src/js/utils/behavior");
+const toggle = require("../../uswds-core/src/js/utils/toggle");
+const isElementInViewport = require("../../uswds-core/src/js/utils/is-in-viewport");
+const {
+  CLICK
+} = require("../../uswds-core/src/js/events");
+const {
+  prefix: PREFIX
+} = require("../../uswds-core/src/js/config");
+const ACCORDION = `.${PREFIX}-accordion, .${PREFIX}-accordion--bordered`;
+const BANNER_BUTTON = `.${PREFIX}-banner__button`;
+const BUTTON = `.${PREFIX}-accordion__button[aria-controls]:not(${BANNER_BUTTON})`;
+const EXPANDED = "aria-expanded";
+const MULTISELECTABLE = "data-allow-multiple";
+
+/**
+ * Get an Array of button elements belonging directly to the given
+ * accordion element.
+ * @param {HTMLElement} accordion
+ * @return {array<HTMLButtonElement>}
+ */
+const getAccordionButtons = accordion => {
+  const buttons = select(BUTTON, accordion);
+  return buttons.filter(button => button.closest(ACCORDION) === accordion);
+};
+
+/**
+ * Toggle a button's "pressed" state, optionally providing a target
+ * state.
+ *
+ * @param {HTMLButtonElement} button
+ * @param {boolean?} expanded If no state is provided, the current
+ * state will be toggled (from false to true, and vice-versa).
+ * @return {boolean} the resulting state
+ */
+const toggleButton = (button, expanded) => {
+  const accordion = button.closest(ACCORDION);
+  let safeExpanded = expanded;
+  if (!accordion) {
+    throw new Error(`${BUTTON} is missing outer ${ACCORDION}`);
+  }
+  safeExpanded = toggle(button, expanded);
+
+  // XXX multiselectable is opt-in, to preserve legacy behavior
+  const multiselectable = accordion.hasAttribute(MULTISELECTABLE);
+  if (safeExpanded && !multiselectable) {
+    getAccordionButtons(accordion).forEach(other => {
+      if (other !== button) {
+        toggle(other, false);
+      }
+    });
+  }
+};
+
+/**
+ * @param {HTMLButtonElement} button
+ * @return {boolean} true
+ */
+const showButton = button => toggleButton(button, true);
+
+/**
+ * @param {HTMLButtonElement} button
+ * @return {boolean} false
+ */
+const hideButton = button => toggleButton(button, false);
+const accordion = behavior({
+  [CLICK]: {
+    [BUTTON]() {
+      toggleButton(this);
+      if (this.getAttribute(EXPANDED) === "true") {
+        // We were just expanded, but if another accordion was also just
+        // collapsed, we may no longer be in the viewport. This ensures
+        // that we are still visible, so the user isn't confused.
+        if (!isElementInViewport(this)) this.scrollIntoView();
+      }
+    }
+  }
+}, {
+  init(root) {
+    select(BUTTON, root).forEach(button => {
+      const expanded = button.getAttribute(EXPANDED) === "true";
+      toggleButton(button, expanded);
+    });
+  },
+  ACCORDION,
+  BUTTON,
+  show: showButton,
+  hide: hideButton,
+  toggle: toggleButton,
+  getButtons: getAccordionButtons
+});
+module.exports = accordion;
+
+},{"../../uswds-core/src/js/config":35,"../../uswds-core/src/js/events":36,"../../uswds-core/src/js/utils/behavior":40,"../../uswds-core/src/js/utils/is-in-viewport":43,"../../uswds-core/src/js/utils/select":48,"../../uswds-core/src/js/utils/toggle":51}],15:[function(require,module,exports){
+"use strict";
+
+const behavior = require("../../uswds-core/src/js/utils/behavior");
+const select = require("../../uswds-core/src/js/utils/select");
+const {
+  CLICK
+} = require("../../uswds-core/src/js/events");
+const {
+  prefix: PREFIX
+} = require("../../uswds-core/src/js/config");
+const toggle = require("../../uswds-core/src/js/utils/toggle");
+const HEADER = `.${PREFIX}-banner__header`;
+const EXPANDED_CLASS = `${PREFIX}-banner__header--expanded`;
+const BANNER_BUTTON = `${HEADER} [aria-controls]`;
+
+/**
+ * Toggle Banner display and class.
+ * @param {Event} event
+ */
+const toggleBanner = function toggleEl(event) {
+  event.preventDefault();
+  const trigger = event.target.closest(BANNER_BUTTON);
+  toggle(trigger);
+  this.closest(HEADER).classList.toggle(EXPANDED_CLASS);
+};
+module.exports = behavior({
+  [CLICK]: {
+    [BANNER_BUTTON]: toggleBanner
+  }
+}, {
+  init(root) {
+    select(BANNER_BUTTON, root).forEach(button => {
+      const expanded = button.getAttribute(EXPANDED_CLASS) === "true";
+      toggle(button, expanded);
+    });
+  }
+});
+
+},{"../../uswds-core/src/js/config":35,"../../uswds-core/src/js/events":36,"../../uswds-core/src/js/utils/behavior":40,"../../uswds-core/src/js/utils/select":48,"../../uswds-core/src/js/utils/toggle":51}],16:[function(require,module,exports){
+"use strict";
+
+const keymap = require("receptor/keymap");
+const behavior = require("../../uswds-core/src/js/utils/behavior");
+const ANCHOR_BUTTON = `a[class*="usa-button"]`;
+const toggleButton = event => {
+  event.preventDefault();
+  event.target.click();
+};
+const anchorButton = behavior({
+  keydown: {
+    [ANCHOR_BUTTON]: keymap({
+      " ": toggleButton
+    })
+  }
+});
+module.exports = anchorButton;
+
+},{"../../uswds-core/src/js/utils/behavior":40,"receptor/keymap":10}],17:[function(require,module,exports){
+"use strict";
+
+const select = require("../../uswds-core/src/js/utils/select");
+const behavior = require("../../uswds-core/src/js/utils/behavior");
+const debounce = require("../../uswds-core/src/js/utils/debounce");
+const {
+  prefix: PREFIX
+} = require("../../uswds-core/src/js/config");
+const CHARACTER_COUNT_CLASS = `${PREFIX}-character-count`;
+const CHARACTER_COUNT = `.${CHARACTER_COUNT_CLASS}`;
+const FORM_GROUP_CLASS = `${PREFIX}-form-group`;
+const FORM_GROUP_ERROR_CLASS = `${FORM_GROUP_CLASS}--error`;
+const FORM_GROUP = `.${FORM_GROUP_CLASS}`;
+const LABEL_CLASS = `${PREFIX}-label`;
+const LABEL_ERROR_CLASS = `${LABEL_CLASS}--error`;
+const INPUT = `.${PREFIX}-character-count__field`;
+const INPUT_ERROR_CLASS = `${PREFIX}-input--error`;
+const MESSAGE = `.${PREFIX}-character-count__message`;
+const VALIDATION_MESSAGE = "The content is too long.";
+const MESSAGE_INVALID_CLASS = `${PREFIX}-character-count__status--invalid`;
+const STATUS_MESSAGE_CLASS = `${CHARACTER_COUNT_CLASS}__status`;
+const STATUS_MESSAGE_SR_ONLY_CLASS = `${CHARACTER_COUNT_CLASS}__sr-status`;
+const STATUS_MESSAGE = `.${STATUS_MESSAGE_CLASS}`;
+const STATUS_MESSAGE_SR_ONLY = `.${STATUS_MESSAGE_SR_ONLY_CLASS}`;
+const DEFAULT_STATUS_LABEL = `characters allowed`;
+
+/**
+ * Returns the root, form group, label, and message elements for an character count input
+ *
+ * @param {HTMLInputElement|HTMLTextAreaElement} inputEl The character count input element
+ * @returns {CharacterCountElements} elements The root form group, input ID, label, and message element.
+ */
+const getCharacterCountElements = inputEl => {
+  const characterCountEl = inputEl.closest(CHARACTER_COUNT);
+  if (!characterCountEl) {
+    throw new Error(`${INPUT} is missing outer ${CHARACTER_COUNT}`);
+  }
+  const formGroupEl = characterCountEl.querySelector(FORM_GROUP);
+  const inputID = inputEl.getAttribute("id");
+  const labelEl = document.querySelector(`label[for=${inputID}]`);
+  const messageEl = characterCountEl.querySelector(MESSAGE);
+  if (!messageEl) {
+    throw new Error(`${CHARACTER_COUNT} is missing inner ${MESSAGE}`);
+  }
+  return {
+    characterCountEl,
+    formGroupEl,
+    inputID,
+    labelEl,
+    messageEl
+  };
+};
+
+/**
+ * Move maxlength attribute to a data attribute on usa-character-count
+ *
+ * @param {HTMLInputElement|HTMLTextAreaElement} inputEl The character count input element
+ */
+const setDataLength = inputEl => {
+  const {
+    characterCountEl
+  } = getCharacterCountElements(inputEl);
+  const maxlength = inputEl.getAttribute("maxlength");
+  if (!maxlength) return;
+  inputEl.removeAttribute("maxlength");
+  characterCountEl.setAttribute("data-maxlength", maxlength);
+};
+
+/**
+ * Create and append status messages for visual and screen readers
+ *
+ * @param {HTMLDivElement} characterCountEl - Div with `.usa-character-count` class
+ * @description  Create two status messages for number of characters left;
+ * one visual status and another for screen readers
+ */
+const createStatusMessages = characterCountEl => {
+  const statusMessage = document.createElement("div");
+  const srStatusMessage = document.createElement("div");
+  const maxLength = characterCountEl.dataset.maxlength;
+  const defaultMessage = `${maxLength} ${DEFAULT_STATUS_LABEL}`;
+  statusMessage.classList.add(`${STATUS_MESSAGE_CLASS}`, "usa-hint");
+  srStatusMessage.classList.add(`${STATUS_MESSAGE_SR_ONLY_CLASS}`, "usa-sr-only");
+  statusMessage.setAttribute("aria-hidden", true);
+  srStatusMessage.setAttribute("aria-live", "polite");
+  statusMessage.textContent = defaultMessage;
+  srStatusMessage.textContent = defaultMessage;
+  characterCountEl.append(statusMessage, srStatusMessage);
+};
+
+/**
+ * Returns message with how many characters are left
+ *
+ * @param {number} currentLength - The number of characters used
+ * @param {number} maxLength - The total number of characters allowed
+ * @returns {string} A string description of how many characters are left
+ */
+const getCountMessage = (currentLength, maxLength) => {
+  let newMessage = "";
+  if (currentLength === 0) {
+    newMessage = `${maxLength} ${DEFAULT_STATUS_LABEL}`;
+  } else {
+    const difference = Math.abs(maxLength - currentLength);
+    const characters = `character${difference === 1 ? "" : "s"}`;
+    const guidance = currentLength > maxLength ? "over limit" : "left";
+    newMessage = `${difference} ${characters} ${guidance}`;
+  }
+  return newMessage;
+};
+
+/**
+ * Updates the character count status for screen readers after a 1000ms delay.
+ *
+ * @param {HTMLElement} msgEl - The screen reader status message element
+ * @param {string} statusMessage - A string of the current character status
+ */
+const srUpdateStatus = debounce((msgEl, statusMessage) => {
+  const srStatusMessage = msgEl;
+  srStatusMessage.textContent = statusMessage;
+}, 1000);
+
+/**
+ * Update the character count component
+ *
+ * @description On input, it will update visual status, screenreader
+ * status and update input validation (if over character length)
+ * @param {HTMLInputElement|HTMLTextAreaElement} inputEl The character count input element
+ */
+const updateCountMessage = inputEl => {
+  const {
+    characterCountEl,
+    labelEl,
+    formGroupEl
+  } = getCharacterCountElements(inputEl);
+  const currentLength = inputEl.value.length;
+  const maxLength = parseInt(characterCountEl.getAttribute("data-maxlength"), 10);
+  const statusMessage = characterCountEl.querySelector(STATUS_MESSAGE);
+  const srStatusMessage = characterCountEl.querySelector(STATUS_MESSAGE_SR_ONLY);
+  const currentStatusMessage = getCountMessage(currentLength, maxLength);
+  if (!maxLength) return;
+  const isOverLimit = currentLength && currentLength > maxLength;
+  statusMessage.textContent = currentStatusMessage;
+  srUpdateStatus(srStatusMessage, currentStatusMessage);
+  if (isOverLimit && !inputEl.validationMessage) {
+    inputEl.setCustomValidity(VALIDATION_MESSAGE);
+  }
+  if (!isOverLimit && inputEl.validationMessage === VALIDATION_MESSAGE) {
+    inputEl.setCustomValidity("");
+  }
+  if (formGroupEl) {
+    formGroupEl.classList.toggle(FORM_GROUP_ERROR_CLASS, isOverLimit);
+  }
+  if (labelEl) {
+    labelEl.classList.toggle(LABEL_ERROR_CLASS, isOverLimit);
+  }
+  inputEl.classList.toggle(INPUT_ERROR_CLASS, isOverLimit);
+  statusMessage.classList.toggle(MESSAGE_INVALID_CLASS, isOverLimit);
+};
+
+/**
+ * Initialize component
+ *
+ * @description On init this function will create elements and update any
+ * attributes so it can tell the user how many characters are left.
+ * @param  {HTMLInputElement|HTMLTextAreaElement} inputEl the components input
+ */
+const enhanceCharacterCount = inputEl => {
+  const {
+    characterCountEl,
+    messageEl
+  } = getCharacterCountElements(inputEl);
+
+  // Hide hint and remove aria-live for backwards compatibility
+  messageEl.classList.add("usa-sr-only");
+  messageEl.removeAttribute("aria-live");
+  setDataLength(inputEl);
+  createStatusMessages(characterCountEl);
+};
+const characterCount = behavior({
+  input: {
+    [INPUT]() {
+      updateCountMessage(this);
+    }
+  }
+}, {
+  init(root) {
+    select(INPUT, root).forEach(input => enhanceCharacterCount(input));
+  },
+  FORM_GROUP_ERROR_CLASS,
+  LABEL_ERROR_CLASS,
+  INPUT_ERROR_CLASS,
+  MESSAGE_INVALID_CLASS,
+  VALIDATION_MESSAGE,
+  STATUS_MESSAGE_CLASS,
+  STATUS_MESSAGE_SR_ONLY_CLASS,
+  DEFAULT_STATUS_LABEL,
+  createStatusMessages,
+  getCountMessage,
+  updateCountMessage
+});
+module.exports = characterCount;
+
+},{"../../uswds-core/src/js/config":35,"../../uswds-core/src/js/utils/behavior":40,"../../uswds-core/src/js/utils/debounce":41,"../../uswds-core/src/js/utils/select":48}],18:[function(require,module,exports){
+"use strict";
+
+const keymap = require("receptor/keymap");
+const selectOrMatches = require("../../uswds-core/src/js/utils/select-or-matches");
+const behavior = require("../../uswds-core/src/js/utils/behavior");
+const Sanitizer = require("../../uswds-core/src/js/utils/sanitizer");
+const {
+  prefix: PREFIX
+} = require("../../uswds-core/src/js/config");
+const {
+  CLICK
+} = require("../../uswds-core/src/js/events");
+const COMBO_BOX_CLASS = `${PREFIX}-combo-box`;
+const COMBO_BOX_PRISTINE_CLASS = `${COMBO_BOX_CLASS}--pristine`;
+const SELECT_CLASS = `${COMBO_BOX_CLASS}__select`;
+const INPUT_CLASS = `${COMBO_BOX_CLASS}__input`;
+const CLEAR_INPUT_BUTTON_CLASS = `${COMBO_BOX_CLASS}__clear-input`;
+const CLEAR_INPUT_BUTTON_WRAPPER_CLASS = `${CLEAR_INPUT_BUTTON_CLASS}__wrapper`;
+const INPUT_BUTTON_SEPARATOR_CLASS = `${COMBO_BOX_CLASS}__input-button-separator`;
+const TOGGLE_LIST_BUTTON_CLASS = `${COMBO_BOX_CLASS}__toggle-list`;
+const TOGGLE_LIST_BUTTON_WRAPPER_CLASS = `${TOGGLE_LIST_BUTTON_CLASS}__wrapper`;
+const LIST_CLASS = `${COMBO_BOX_CLASS}__list`;
+const LIST_OPTION_CLASS = `${COMBO_BOX_CLASS}__list-option`;
+const LIST_OPTION_FOCUSED_CLASS = `${LIST_OPTION_CLASS}--focused`;
+const LIST_OPTION_SELECTED_CLASS = `${LIST_OPTION_CLASS}--selected`;
+const STATUS_CLASS = `${COMBO_BOX_CLASS}__status`;
+const COMBO_BOX = `.${COMBO_BOX_CLASS}`;
+const SELECT = `.${SELECT_CLASS}`;
+const INPUT = `.${INPUT_CLASS}`;
+const CLEAR_INPUT_BUTTON = `.${CLEAR_INPUT_BUTTON_CLASS}`;
+const TOGGLE_LIST_BUTTON = `.${TOGGLE_LIST_BUTTON_CLASS}`;
+const LIST = `.${LIST_CLASS}`;
+const LIST_OPTION = `.${LIST_OPTION_CLASS}`;
+const LIST_OPTION_FOCUSED = `.${LIST_OPTION_FOCUSED_CLASS}`;
+const LIST_OPTION_SELECTED = `.${LIST_OPTION_SELECTED_CLASS}`;
+const STATUS = `.${STATUS_CLASS}`;
+const DEFAULT_FILTER = ".*{{query}}.*";
+const noop = () => {};
+
+/**
+ * set the value of the element and dispatch a change event
+ *
+ * @param {HTMLInputElement|HTMLSelectElement} el The element to update
+ * @param {string} value The new value of the element
+ */
+const changeElementValue = (el, value = "") => {
+  const elementToChange = el;
+  elementToChange.value = value;
+  const event = new CustomEvent("change", {
+    bubbles: true,
+    cancelable: true,
+    detail: {
+      value
+    }
+  });
+  elementToChange.dispatchEvent(event);
+};
+
+/**
+ * The elements within the combo box.
+ * @typedef {Object} ComboBoxContext
+ * @property {HTMLElement} comboBoxEl
+ * @property {HTMLSelectElement} selectEl
+ * @property {HTMLInputElement} inputEl
+ * @property {HTMLUListElement} listEl
+ * @property {HTMLDivElement} statusEl
+ * @property {HTMLLIElement} focusedOptionEl
+ * @property {HTMLLIElement} selectedOptionEl
+ * @property {HTMLButtonElement} toggleListBtnEl
+ * @property {HTMLButtonElement} clearInputBtnEl
+ * @property {boolean} isPristine
+ * @property {boolean} disableFiltering
+ */
+
+/**
+ * Get an object of elements belonging directly to the given
+ * combo box component.
+ *
+ * @param {HTMLElement} el the element within the combo box
+ * @returns {ComboBoxContext} elements
+ */
+const getComboBoxContext = el => {
+  const comboBoxEl = el.closest(COMBO_BOX);
+  if (!comboBoxEl) {
+    throw new Error(`Element is missing outer ${COMBO_BOX}`);
+  }
+  const selectEl = comboBoxEl.querySelector(SELECT);
+  const inputEl = comboBoxEl.querySelector(INPUT);
+  const listEl = comboBoxEl.querySelector(LIST);
+  const statusEl = comboBoxEl.querySelector(STATUS);
+  const focusedOptionEl = comboBoxEl.querySelector(LIST_OPTION_FOCUSED);
+  const selectedOptionEl = comboBoxEl.querySelector(LIST_OPTION_SELECTED);
+  const toggleListBtnEl = comboBoxEl.querySelector(TOGGLE_LIST_BUTTON);
+  const clearInputBtnEl = comboBoxEl.querySelector(CLEAR_INPUT_BUTTON);
+  const isPristine = comboBoxEl.classList.contains(COMBO_BOX_PRISTINE_CLASS);
+  const disableFiltering = comboBoxEl.dataset.disableFiltering === "true";
+  return {
+    comboBoxEl,
+    selectEl,
+    inputEl,
+    listEl,
+    statusEl,
+    focusedOptionEl,
+    selectedOptionEl,
+    toggleListBtnEl,
+    clearInputBtnEl,
+    isPristine,
+    disableFiltering
+  };
+};
+
+/**
+ * Disable the combo-box component
+ *
+ * @param {HTMLInputElement} el An element within the combo box component
+ */
+const disable = el => {
+  const {
+    inputEl,
+    toggleListBtnEl,
+    clearInputBtnEl
+  } = getComboBoxContext(el);
+  clearInputBtnEl.hidden = true;
+  clearInputBtnEl.disabled = true;
+  toggleListBtnEl.disabled = true;
+  inputEl.disabled = true;
+};
+
+/**
+ * Check for aria-disabled on initialization
+ *
+ * @param {HTMLInputElement} el An element within the combo box component
+ */
+const ariaDisable = el => {
+  const {
+    inputEl,
+    toggleListBtnEl,
+    clearInputBtnEl
+  } = getComboBoxContext(el);
+  clearInputBtnEl.hidden = true;
+  clearInputBtnEl.setAttribute("aria-disabled", true);
+  toggleListBtnEl.setAttribute("aria-disabled", true);
+  inputEl.setAttribute("aria-disabled", true);
+};
+
+/**
+ * Enable the combo-box component
+ *
+ * @param {HTMLInputElement} el An element within the combo box component
+ */
+const enable = el => {
+  const {
+    inputEl,
+    toggleListBtnEl,
+    clearInputBtnEl
+  } = getComboBoxContext(el);
+  clearInputBtnEl.hidden = false;
+  clearInputBtnEl.disabled = false;
+  toggleListBtnEl.disabled = false;
+  inputEl.disabled = false;
+};
+
+/**
+ * Enhance a select element into a combo box component.
+ *
+ * @param {HTMLElement} _comboBoxEl The initial element of the combo box component
+ */
+const enhanceComboBox = _comboBoxEl => {
+  const comboBoxEl = _comboBoxEl.closest(COMBO_BOX);
+  if (comboBoxEl.dataset.enhanced) return;
+  const selectEl = comboBoxEl.querySelector("select");
+  if (!selectEl) {
+    throw new Error(`${COMBO_BOX} is missing inner select`);
+  }
+  const selectId = selectEl.id;
+  const selectLabel = document.querySelector(`label[for="${selectId}"]`);
+  const listId = `${selectId}--list`;
+  const listIdLabel = `${selectId}-label`;
+  const additionalAttributes = [];
+  const {
+    defaultValue
+  } = comboBoxEl.dataset;
+  const {
+    placeholder
+  } = comboBoxEl.dataset;
+  let selectedOption;
+  if (placeholder) {
+    additionalAttributes.push({
+      placeholder
+    });
+  }
+  if (defaultValue) {
+    for (let i = 0, len = selectEl.options.length; i < len; i += 1) {
+      const optionEl = selectEl.options[i];
+      if (optionEl.value === defaultValue) {
+        selectedOption = optionEl;
+        break;
+      }
+    }
+  }
+
+  /**
+   * Throw error if combobox is missing a label or label is missing
+   * `for` attribute. Otherwise, set the ID to match the <ul> aria-labelledby
+   */
+  if (!selectLabel || !selectLabel.matches(`label[for="${selectId}"]`)) {
+    throw new Error(`${COMBO_BOX} for ${selectId} is either missing a label or a "for" attribute`);
+  } else {
+    selectLabel.setAttribute("id", listIdLabel);
+  }
+  selectLabel.setAttribute("id", listIdLabel);
+  selectEl.setAttribute("aria-hidden", "true");
+  selectEl.setAttribute("tabindex", "-1");
+  selectEl.classList.add("usa-sr-only", SELECT_CLASS);
+  selectEl.id = "";
+  selectEl.value = "";
+  ["required", "aria-label", "aria-labelledby"].forEach(name => {
+    if (selectEl.hasAttribute(name)) {
+      const value = selectEl.getAttribute(name);
+      additionalAttributes.push({
+        [name]: value
+      });
+      selectEl.removeAttribute(name);
+    }
+  });
+
+  // sanitize doesn't like functions in template literals
+  const input = document.createElement("input");
+  input.setAttribute("id", selectId);
+  input.setAttribute("aria-owns", listId);
+  input.setAttribute("aria-controls", listId);
+  input.setAttribute("aria-autocomplete", "list");
+  input.setAttribute("aria-expanded", "false");
+  input.setAttribute("autocapitalize", "off");
+  input.setAttribute("autocomplete", "off");
+  input.setAttribute("class", INPUT_CLASS);
+  input.setAttribute("type", "text");
+  input.setAttribute("role", "combobox");
+  additionalAttributes.forEach(attr => Object.keys(attr).forEach(key => {
+    const value = Sanitizer.escapeHTML`${attr[key]}`;
+    input.setAttribute(key, value);
+  }));
+  comboBoxEl.insertAdjacentElement("beforeend", input);
+  comboBoxEl.insertAdjacentHTML("beforeend", Sanitizer.escapeHTML`
+    <span class="${CLEAR_INPUT_BUTTON_WRAPPER_CLASS}" tabindex="-1">
+        <button type="button" class="${CLEAR_INPUT_BUTTON_CLASS}" aria-label="Clear the select contents">&nbsp;</button>
+      </span>
+      <span class="${INPUT_BUTTON_SEPARATOR_CLASS}">&nbsp;</span>
+      <span class="${TOGGLE_LIST_BUTTON_WRAPPER_CLASS}" tabindex="-1">
+        <button type="button" tabindex="-1" class="${TOGGLE_LIST_BUTTON_CLASS}" aria-label="Toggle the dropdown list">&nbsp;</button>
+      </span>
+      <ul
+        tabindex="-1"
+        id="${listId}"
+        class="${LIST_CLASS}"
+        role="listbox"
+        aria-labelledby="${listIdLabel}"
+        hidden>
+      </ul>
+      <div class="${STATUS_CLASS} usa-sr-only" role="status"></div>`);
+  if (selectedOption) {
+    const {
+      inputEl
+    } = getComboBoxContext(comboBoxEl);
+    changeElementValue(selectEl, selectedOption.value);
+    changeElementValue(inputEl, selectedOption.text);
+    comboBoxEl.classList.add(COMBO_BOX_PRISTINE_CLASS);
+  }
+  if (selectEl.disabled) {
+    disable(comboBoxEl);
+    selectEl.disabled = false;
+  }
+  if (selectEl.hasAttribute("aria-disabled")) {
+    ariaDisable(comboBoxEl);
+    selectEl.removeAttribute("aria-disabled");
+  }
+  comboBoxEl.dataset.enhanced = "true";
+};
+
+/**
+ * Manage the focused element within the list options when
+ * navigating via keyboard.
+ *
+ * @param {HTMLElement} el An anchor element within the combo box component
+ * @param {HTMLElement} nextEl An element within the combo box component
+ * @param {Object} options options
+ * @param {boolean} options.skipFocus skip focus of highlighted item
+ * @param {boolean} options.preventScroll should skip procedure to scroll to element
+ */
+const highlightOption = (el, nextEl, {
+  skipFocus,
+  preventScroll
+} = {}) => {
+  const {
+    inputEl,
+    listEl,
+    focusedOptionEl
+  } = getComboBoxContext(el);
+  if (focusedOptionEl) {
+    focusedOptionEl.classList.remove(LIST_OPTION_FOCUSED_CLASS);
+    focusedOptionEl.setAttribute("tabIndex", "-1");
+  }
+  if (nextEl) {
+    inputEl.setAttribute("aria-activedescendant", nextEl.id);
+    nextEl.setAttribute("tabIndex", "0");
+    nextEl.classList.add(LIST_OPTION_FOCUSED_CLASS);
+    if (!preventScroll) {
+      const optionBottom = nextEl.offsetTop + nextEl.offsetHeight;
+      const currentBottom = listEl.scrollTop + listEl.offsetHeight;
+      if (optionBottom > currentBottom) {
+        listEl.scrollTop = optionBottom - listEl.offsetHeight;
+      }
+      if (nextEl.offsetTop < listEl.scrollTop) {
+        listEl.scrollTop = nextEl.offsetTop;
+      }
+    }
+    if (!skipFocus) {
+      nextEl.focus({
+        preventScroll
+      });
+    }
+  } else {
+    inputEl.setAttribute("aria-activedescendant", "");
+    inputEl.focus();
+  }
+};
+
+/**
+ * Generate a dynamic regular expression based off of a replaceable and possibly filtered value.
+ *
+ * @param {string} el An element within the combo box component
+ * @param {string} query The value to use in the regular expression
+ * @param {object} extras An object of regular expressions to replace and filter the query
+ */
+const generateDynamicRegExp = (filter, query = "", extras = {}) => {
+  const escapeRegExp = text => text.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
+  let find = filter.replace(/{{(.*?)}}/g, (m, $1) => {
+    const key = $1.trim();
+    const queryFilter = extras[key];
+    if (key !== "query" && queryFilter) {
+      const matcher = new RegExp(queryFilter, "i");
+      const matches = query.match(matcher);
+      if (matches) {
+        return escapeRegExp(matches[1]);
+      }
+      return "";
+    }
+    return escapeRegExp(query);
+  });
+  find = `^(?:${find})$`;
+  return new RegExp(find, "i");
+};
+
+/**
+ * Display the option list of a combo box component.
+ *
+ * @param {HTMLElement} el An element within the combo box component
+ */
+const displayList = el => {
+  const {
+    comboBoxEl,
+    selectEl,
+    inputEl,
+    listEl,
+    statusEl,
+    isPristine,
+    disableFiltering
+  } = getComboBoxContext(el);
+  let selectedItemId;
+  let firstFoundId;
+  const listOptionBaseId = `${listEl.id}--option-`;
+  const inputValue = (inputEl.value || "").toLowerCase();
+  const filter = comboBoxEl.dataset.filter || DEFAULT_FILTER;
+  const regex = generateDynamicRegExp(filter, inputValue, comboBoxEl.dataset);
+  let options = [];
+  const optionsStartsWith = [];
+  const optionsContains = [];
+  const optionList = [...selectEl.options];
+
+  /**
+   * Builds and sorts options array.
+   *
+   * Option param is passed through regex test before passing into this function.
+   * When filtering is enabled, the array will be sorted by options that start with the query, followed by
+   * options that contain the query.
+   * When filtering is disabled, all options will be included in the array unsorted.
+   *
+   * These array items will populate the list that is displayed to the user after a search query is entered.
+   * Array attributes are also used to set option IDs and aria-setsize attributes.
+   *
+   * @param {HTMLOptionElement} option - Option element from select array
+   */
+  const buildOptionsArray = option => {
+    if (disableFiltering || isPristine) {
+      options.push(option);
+      return;
+    }
+    const matchStartsWith = option.text.toLowerCase().startsWith(inputValue);
+    if (matchStartsWith) {
+      optionsStartsWith.push(option);
+    } else {
+      optionsContains.push(option);
+    }
+    options = [...optionsStartsWith, ...optionsContains];
+  };
+
+  /**
+   * Compares option text to query using generated regex filter.
+   *
+   * @param {HTMLOptionElement} option
+   * @returns {boolean} - True when option text matches user input query.
+   */
+  const optionMatchesQuery = option => regex.test(option.text);
+
+  /**
+   * Logic check to determine if options array needs to be updated.
+   *
+   * @param {HTMLOptionElement} option
+   * @returns {boolean} - True when option has value && if filtering is disabled, combo box has an active selection,
+   * there is no inputValue, or if option matches user query
+   */
+  const arrayNeedsUpdate = option => option.value && (disableFiltering || isPristine || !inputValue || optionMatchesQuery(option));
+
+  /**
+   * Checks if firstFoundId should be assigned, which is then used to set itemToFocus.
+   *
+   * @param {HTMLOptionElement} option
+   * @return {boolean} - Returns true if filtering is disabled, no firstFoundId is assigned, and the option matches the query.
+   */
+  const isFirstMatch = option => disableFiltering && !firstFoundId && optionMatchesQuery(option);
+
+  /**
+   * Checks if isCurrentSelection should be assigned, which is then used to set itemToFocus.
+   *
+   * @param {HTMLOptionElement} option
+   * @returns {boolean} - Returns true if option.value matches selectEl.value.
+   */
+  const isCurrentSelection = option => selectEl.value && option.value === selectEl.value;
+
+  /**
+   * Update the array of options that should be displayed on the page.
+   * Assign an ID to each displayed option.
+   * Identify and assign the option that should receive focus.
+   */
+  optionList.forEach(option => {
+    if (arrayNeedsUpdate(option)) {
+      buildOptionsArray(option);
+      const optionId = `${listOptionBaseId}${options.indexOf(option)}`;
+      if (isFirstMatch(option)) {
+        firstFoundId = optionId;
+      }
+      if (isCurrentSelection(option)) {
+        selectedItemId = optionId;
+      }
+    }
+  });
+  const numOptions = options.length;
+  const optionHtml = options.map((option, index) => {
+    const optionId = `${listOptionBaseId}${index}`;
+    const classes = [LIST_OPTION_CLASS];
+    let tabindex = "-1";
+    let ariaSelected = "false";
+    if (optionId === selectedItemId) {
+      classes.push(LIST_OPTION_SELECTED_CLASS, LIST_OPTION_FOCUSED_CLASS);
+      tabindex = "0";
+      ariaSelected = "true";
+    }
+    if (!selectedItemId && index === 0) {
+      classes.push(LIST_OPTION_FOCUSED_CLASS);
+      tabindex = "0";
+    }
+    const li = document.createElement("li");
+    li.setAttribute("aria-setsize", options.length);
+    li.setAttribute("aria-posinset", index + 1);
+    li.setAttribute("aria-selected", ariaSelected);
+    li.setAttribute("id", optionId);
+    li.setAttribute("class", classes.join(" "));
+    li.setAttribute("tabindex", tabindex);
+    li.setAttribute("role", "option");
+    li.setAttribute("data-value", option.value);
+    li.textContent = option.text;
+    return li;
+  });
+  const noResults = document.createElement("li");
+  noResults.setAttribute("class", `${LIST_OPTION_CLASS}--no-results`);
+  noResults.textContent = "No results found";
+  listEl.hidden = false;
+  if (numOptions) {
+    listEl.innerHTML = "";
+    optionHtml.forEach(item => listEl.insertAdjacentElement("beforeend", item));
+  } else {
+    listEl.innerHTML = "";
+    listEl.insertAdjacentElement("beforeend", noResults);
+  }
+  inputEl.setAttribute("aria-expanded", "true");
+  statusEl.textContent = numOptions ? `${numOptions} result${numOptions > 1 ? "s" : ""} available.` : "No results.";
+  let itemToFocus;
+  if (isPristine && selectedItemId) {
+    itemToFocus = listEl.querySelector(`#${selectedItemId}`);
+  } else if (disableFiltering && firstFoundId) {
+    itemToFocus = listEl.querySelector(`#${firstFoundId}`);
+  }
+  if (itemToFocus) {
+    highlightOption(listEl, itemToFocus, {
+      skipFocus: true
+    });
+  }
+};
+
+/**
+ * Hide the option list of a combo box component.
+ *
+ * @param {HTMLElement} el An element within the combo box component
+ */
+const hideList = el => {
+  const {
+    inputEl,
+    listEl,
+    statusEl,
+    focusedOptionEl
+  } = getComboBoxContext(el);
+  statusEl.innerHTML = "";
+  inputEl.setAttribute("aria-expanded", "false");
+  inputEl.setAttribute("aria-activedescendant", "");
+  if (focusedOptionEl) {
+    focusedOptionEl.classList.remove(LIST_OPTION_FOCUSED_CLASS);
+  }
+  listEl.scrollTop = 0;
+  listEl.hidden = true;
+};
+
+/**
+ * Select an option list of the combo box component.
+ *
+ * @param {HTMLElement} listOptionEl The list option being selected
+ */
+const selectItem = listOptionEl => {
+  const {
+    comboBoxEl,
+    selectEl,
+    inputEl
+  } = getComboBoxContext(listOptionEl);
+  changeElementValue(selectEl, listOptionEl.dataset.value);
+  changeElementValue(inputEl, listOptionEl.textContent);
+  comboBoxEl.classList.add(COMBO_BOX_PRISTINE_CLASS);
+  hideList(comboBoxEl);
+  inputEl.focus();
+};
+
+/**
+ * Clear the input of the combo box
+ *
+ * @param {HTMLButtonElement} clearButtonEl The clear input button
+ */
+const clearInput = clearButtonEl => {
+  const {
+    comboBoxEl,
+    listEl,
+    selectEl,
+    inputEl
+  } = getComboBoxContext(clearButtonEl);
+  const listShown = !listEl.hidden;
+  if (selectEl.value) changeElementValue(selectEl);
+  if (inputEl.value) changeElementValue(inputEl);
+  comboBoxEl.classList.remove(COMBO_BOX_PRISTINE_CLASS);
+  if (listShown) displayList(comboBoxEl);
+  inputEl.focus();
+};
+
+/**
+ * Reset the select based off of currently set select value
+ *
+ * @param {HTMLElement} el An element within the combo box component
+ */
+const resetSelection = el => {
+  const {
+    comboBoxEl,
+    selectEl,
+    inputEl
+  } = getComboBoxContext(el);
+  const selectValue = selectEl.value;
+  const inputValue = (inputEl.value || "").toLowerCase();
+  if (selectValue) {
+    for (let i = 0, len = selectEl.options.length; i < len; i += 1) {
+      const optionEl = selectEl.options[i];
+      if (optionEl.value === selectValue) {
+        if (inputValue !== optionEl.text) {
+          changeElementValue(inputEl, optionEl.text);
+        }
+        comboBoxEl.classList.add(COMBO_BOX_PRISTINE_CLASS);
+        return;
+      }
+    }
+  }
+  if (inputValue) {
+    changeElementValue(inputEl);
+  }
+};
+
+/**
+ * Select an option list of the combo box component based off of
+ * having a current focused list option or
+ * having test that completely matches a list option.
+ * Otherwise it clears the input and select.
+ *
+ * @param {HTMLElement} el An element within the combo box component
+ */
+const completeSelection = el => {
+  const {
+    comboBoxEl,
+    selectEl,
+    inputEl,
+    statusEl
+  } = getComboBoxContext(el);
+  statusEl.textContent = "";
+  const inputValue = (inputEl.value || "").toLowerCase();
+  if (inputValue) {
+    for (let i = 0, len = selectEl.options.length; i < len; i += 1) {
+      const optionEl = selectEl.options[i];
+      if (optionEl.text.toLowerCase() === inputValue) {
+        changeElementValue(selectEl, optionEl.value);
+        changeElementValue(inputEl, optionEl.text);
+        comboBoxEl.classList.add(COMBO_BOX_PRISTINE_CLASS);
+        return;
+      }
+    }
+  }
+  resetSelection(comboBoxEl);
+};
+
+/**
+ * Handle the escape event within the combo box component.
+ *
+ * @param {KeyboardEvent} event An event within the combo box component
+ */
+const handleEscape = event => {
+  const {
+    comboBoxEl,
+    inputEl
+  } = getComboBoxContext(event.target);
+  hideList(comboBoxEl);
+  resetSelection(comboBoxEl);
+  inputEl.focus();
+};
+
+/**
+ * Handle the down event within the combo box component.
+ *
+ * @param {KeyboardEvent} event An event within the combo box component
+ */
+const handleDownFromInput = event => {
+  const {
+    comboBoxEl,
+    listEl
+  } = getComboBoxContext(event.target);
+  if (listEl.hidden) {
+    displayList(comboBoxEl);
+  }
+  const nextOptionEl = listEl.querySelector(LIST_OPTION_FOCUSED) || listEl.querySelector(LIST_OPTION);
+  if (nextOptionEl) {
+    highlightOption(comboBoxEl, nextOptionEl);
+  }
+  event.preventDefault();
+};
+
+/**
+ * Handle the enter event from an input element within the combo box component.
+ *
+ * @param {KeyboardEvent} event An event within the combo box component
+ */
+const handleEnterFromInput = event => {
+  const {
+    comboBoxEl,
+    listEl
+  } = getComboBoxContext(event.target);
+  const listShown = !listEl.hidden;
+  completeSelection(comboBoxEl);
+  if (listShown) {
+    hideList(comboBoxEl);
+  }
+  event.preventDefault();
+};
+
+/**
+ * Handle the down event within the combo box component.
+ *
+ * @param {KeyboardEvent} event An event within the combo box component
+ */
+const handleDownFromListOption = event => {
+  const focusedOptionEl = event.target;
+  const nextOptionEl = focusedOptionEl.nextSibling;
+  if (nextOptionEl) {
+    highlightOption(focusedOptionEl, nextOptionEl);
+  }
+  event.preventDefault();
+};
+
+/**
+ * Handle the space event from an list option element within the combo box component.
+ *
+ * @param {KeyboardEvent} event An event within the combo box component
+ */
+const handleSpaceFromListOption = event => {
+  selectItem(event.target);
+  event.preventDefault();
+};
+
+/**
+ * Handle the enter event from list option within the combo box component.
+ *
+ * @param {KeyboardEvent} event An event within the combo box component
+ */
+const handleEnterFromListOption = event => {
+  selectItem(event.target);
+  event.preventDefault();
+};
+
+/**
+ * Handle the up event from list option within the combo box component.
+ *
+ * @param {KeyboardEvent} event An event within the combo box component
+ */
+const handleUpFromListOption = event => {
+  const {
+    comboBoxEl,
+    listEl,
+    focusedOptionEl
+  } = getComboBoxContext(event.target);
+  const nextOptionEl = focusedOptionEl && focusedOptionEl.previousSibling;
+  const listShown = !listEl.hidden;
+  highlightOption(comboBoxEl, nextOptionEl);
+  if (listShown) {
+    event.preventDefault();
+  }
+  if (!nextOptionEl) {
+    hideList(comboBoxEl);
+  }
+};
+
+/**
+ * Select list option on the mouseover event.
+ *
+ * @param {MouseEvent} event The mouseover event
+ * @param {HTMLLIElement} listOptionEl An element within the combo box component
+ */
+const handleMouseover = listOptionEl => {
+  const isCurrentlyFocused = listOptionEl.classList.contains(LIST_OPTION_FOCUSED_CLASS);
+  if (isCurrentlyFocused) return;
+  highlightOption(listOptionEl, listOptionEl, {
+    preventScroll: true
+  });
+};
+
+/**
+ * Toggle the list when the button is clicked
+ *
+ * @param {HTMLElement} el An element within the combo box component
+ */
+const toggleList = el => {
+  const {
+    comboBoxEl,
+    listEl,
+    inputEl
+  } = getComboBoxContext(el);
+  if (listEl.hidden) {
+    displayList(comboBoxEl);
+  } else {
+    hideList(comboBoxEl);
+  }
+  inputEl.focus();
+};
+
+/**
+ * Handle click from input
+ *
+ * @param {HTMLInputElement} el An element within the combo box component
+ */
+const handleClickFromInput = el => {
+  const {
+    comboBoxEl,
+    listEl
+  } = getComboBoxContext(el);
+  if (listEl.hidden) {
+    displayList(comboBoxEl);
+  }
+};
+const comboBox = behavior({
+  [CLICK]: {
+    [INPUT]() {
+      if (this.disabled) return;
+      handleClickFromInput(this);
+    },
+    [TOGGLE_LIST_BUTTON]() {
+      if (this.disabled) return;
+      toggleList(this);
+    },
+    [LIST_OPTION]() {
+      if (this.disabled) return;
+      selectItem(this);
+    },
+    [CLEAR_INPUT_BUTTON]() {
+      if (this.disabled) return;
+      clearInput(this);
+    }
+  },
+  focusout: {
+    [COMBO_BOX](event) {
+      if (!this.contains(event.relatedTarget)) {
+        resetSelection(this);
+        hideList(this);
+      }
+    }
+  },
+  keydown: {
+    [COMBO_BOX]: keymap({
+      Escape: handleEscape
+    }),
+    [INPUT]: keymap({
+      Enter: handleEnterFromInput,
+      ArrowDown: handleDownFromInput,
+      Down: handleDownFromInput
+    }),
+    [LIST_OPTION]: keymap({
+      ArrowUp: handleUpFromListOption,
+      Up: handleUpFromListOption,
+      ArrowDown: handleDownFromListOption,
+      Down: handleDownFromListOption,
+      Enter: handleEnterFromListOption,
+      " ": handleSpaceFromListOption,
+      "Shift+Tab": noop
+    })
+  },
+  input: {
+    [INPUT]() {
+      const comboBoxEl = this.closest(COMBO_BOX);
+      comboBoxEl.classList.remove(COMBO_BOX_PRISTINE_CLASS);
+      displayList(this);
+    }
+  },
+  mouseover: {
+    [LIST_OPTION]() {
+      handleMouseover(this);
+    }
+  }
+}, {
+  init(root) {
+    selectOrMatches(COMBO_BOX, root).forEach(comboBoxEl => {
+      enhanceComboBox(comboBoxEl);
+    });
+  },
+  getComboBoxContext,
+  enhanceComboBox,
+  generateDynamicRegExp,
+  disable,
+  enable,
+  displayList,
+  hideList,
+  COMBO_BOX_CLASS
+});
+module.exports = comboBox;
+
+},{"../../uswds-core/src/js/config":35,"../../uswds-core/src/js/events":36,"../../uswds-core/src/js/utils/behavior":40,"../../uswds-core/src/js/utils/sanitizer":45,"../../uswds-core/src/js/utils/select-or-matches":47,"receptor/keymap":10}],19:[function(require,module,exports){
+"use strict";
+
+const keymap = require("receptor/keymap");
+const behavior = require("../../uswds-core/src/js/utils/behavior");
+const select = require("../../uswds-core/src/js/utils/select");
+const selectOrMatches = require("../../uswds-core/src/js/utils/select-or-matches");
+const {
+  prefix: PREFIX
+} = require("../../uswds-core/src/js/config");
+const {
+  CLICK
+} = require("../../uswds-core/src/js/events");
+const activeElement = require("../../uswds-core/src/js/utils/active-element");
+const isIosDevice = require("../../uswds-core/src/js/utils/is-ios-device");
+const Sanitizer = require("../../uswds-core/src/js/utils/sanitizer");
+const DATE_PICKER_CLASS = `${PREFIX}-date-picker`;
+const DATE_PICKER_WRAPPER_CLASS = `${DATE_PICKER_CLASS}__wrapper`;
+const DATE_PICKER_INITIALIZED_CLASS = `${DATE_PICKER_CLASS}--initialized`;
+const DATE_PICKER_ACTIVE_CLASS = `${DATE_PICKER_CLASS}--active`;
+const DATE_PICKER_INTERNAL_INPUT_CLASS = `${DATE_PICKER_CLASS}__internal-input`;
+const DATE_PICKER_EXTERNAL_INPUT_CLASS = `${DATE_PICKER_CLASS}__external-input`;
+const DATE_PICKER_BUTTON_CLASS = `${DATE_PICKER_CLASS}__button`;
+const DATE_PICKER_CALENDAR_CLASS = `${DATE_PICKER_CLASS}__calendar`;
+const DATE_PICKER_STATUS_CLASS = `${DATE_PICKER_CLASS}__status`;
+const CALENDAR_DATE_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__date`;
+const CALENDAR_DATE_FOCUSED_CLASS = `${CALENDAR_DATE_CLASS}--focused`;
+const CALENDAR_DATE_SELECTED_CLASS = `${CALENDAR_DATE_CLASS}--selected`;
+const CALENDAR_DATE_PREVIOUS_MONTH_CLASS = `${CALENDAR_DATE_CLASS}--previous-month`;
+const CALENDAR_DATE_CURRENT_MONTH_CLASS = `${CALENDAR_DATE_CLASS}--current-month`;
+const CALENDAR_DATE_NEXT_MONTH_CLASS = `${CALENDAR_DATE_CLASS}--next-month`;
+const CALENDAR_DATE_RANGE_DATE_CLASS = `${CALENDAR_DATE_CLASS}--range-date`;
+const CALENDAR_DATE_TODAY_CLASS = `${CALENDAR_DATE_CLASS}--today`;
+const CALENDAR_DATE_RANGE_DATE_START_CLASS = `${CALENDAR_DATE_CLASS}--range-date-start`;
+const CALENDAR_DATE_RANGE_DATE_END_CLASS = `${CALENDAR_DATE_CLASS}--range-date-end`;
+const CALENDAR_DATE_WITHIN_RANGE_CLASS = `${CALENDAR_DATE_CLASS}--within-range`;
+const CALENDAR_PREVIOUS_YEAR_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__previous-year`;
+const CALENDAR_PREVIOUS_MONTH_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__previous-month`;
+const CALENDAR_NEXT_YEAR_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__next-year`;
+const CALENDAR_NEXT_MONTH_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__next-month`;
+const CALENDAR_MONTH_SELECTION_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__month-selection`;
+const CALENDAR_YEAR_SELECTION_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__year-selection`;
+const CALENDAR_MONTH_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__month`;
+const CALENDAR_MONTH_FOCUSED_CLASS = `${CALENDAR_MONTH_CLASS}--focused`;
+const CALENDAR_MONTH_SELECTED_CLASS = `${CALENDAR_MONTH_CLASS}--selected`;
+const CALENDAR_YEAR_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__year`;
+const CALENDAR_YEAR_FOCUSED_CLASS = `${CALENDAR_YEAR_CLASS}--focused`;
+const CALENDAR_YEAR_SELECTED_CLASS = `${CALENDAR_YEAR_CLASS}--selected`;
+const CALENDAR_PREVIOUS_YEAR_CHUNK_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__previous-year-chunk`;
+const CALENDAR_NEXT_YEAR_CHUNK_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__next-year-chunk`;
+const CALENDAR_DATE_PICKER_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__date-picker`;
+const CALENDAR_MONTH_PICKER_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__month-picker`;
+const CALENDAR_YEAR_PICKER_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__year-picker`;
+const CALENDAR_TABLE_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__table`;
+const CALENDAR_ROW_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__row`;
+const CALENDAR_CELL_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__cell`;
+const CALENDAR_CELL_CENTER_ITEMS_CLASS = `${CALENDAR_CELL_CLASS}--center-items`;
+const CALENDAR_MONTH_LABEL_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__month-label`;
+const CALENDAR_DAY_OF_WEEK_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__day-of-week`;
+const DATE_PICKER = `.${DATE_PICKER_CLASS}`;
+const DATE_PICKER_BUTTON = `.${DATE_PICKER_BUTTON_CLASS}`;
+const DATE_PICKER_INTERNAL_INPUT = `.${DATE_PICKER_INTERNAL_INPUT_CLASS}`;
+const DATE_PICKER_EXTERNAL_INPUT = `.${DATE_PICKER_EXTERNAL_INPUT_CLASS}`;
+const DATE_PICKER_CALENDAR = `.${DATE_PICKER_CALENDAR_CLASS}`;
+const DATE_PICKER_STATUS = `.${DATE_PICKER_STATUS_CLASS}`;
+const CALENDAR_DATE = `.${CALENDAR_DATE_CLASS}`;
+const CALENDAR_DATE_FOCUSED = `.${CALENDAR_DATE_FOCUSED_CLASS}`;
+const CALENDAR_DATE_CURRENT_MONTH = `.${CALENDAR_DATE_CURRENT_MONTH_CLASS}`;
+const CALENDAR_PREVIOUS_YEAR = `.${CALENDAR_PREVIOUS_YEAR_CLASS}`;
+const CALENDAR_PREVIOUS_MONTH = `.${CALENDAR_PREVIOUS_MONTH_CLASS}`;
+const CALENDAR_NEXT_YEAR = `.${CALENDAR_NEXT_YEAR_CLASS}`;
+const CALENDAR_NEXT_MONTH = `.${CALENDAR_NEXT_MONTH_CLASS}`;
+const CALENDAR_YEAR_SELECTION = `.${CALENDAR_YEAR_SELECTION_CLASS}`;
+const CALENDAR_MONTH_SELECTION = `.${CALENDAR_MONTH_SELECTION_CLASS}`;
+const CALENDAR_MONTH = `.${CALENDAR_MONTH_CLASS}`;
+const CALENDAR_YEAR = `.${CALENDAR_YEAR_CLASS}`;
+const CALENDAR_PREVIOUS_YEAR_CHUNK = `.${CALENDAR_PREVIOUS_YEAR_CHUNK_CLASS}`;
+const CALENDAR_NEXT_YEAR_CHUNK = `.${CALENDAR_NEXT_YEAR_CHUNK_CLASS}`;
+const CALENDAR_DATE_PICKER = `.${CALENDAR_DATE_PICKER_CLASS}`;
+const CALENDAR_MONTH_PICKER = `.${CALENDAR_MONTH_PICKER_CLASS}`;
+const CALENDAR_YEAR_PICKER = `.${CALENDAR_YEAR_PICKER_CLASS}`;
+const CALENDAR_MONTH_FOCUSED = `.${CALENDAR_MONTH_FOCUSED_CLASS}`;
+const CALENDAR_YEAR_FOCUSED = `.${CALENDAR_YEAR_FOCUSED_CLASS}`;
+const VALIDATION_MESSAGE = "Please enter a valid date";
+const MONTH_LABELS = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
+const DAY_OF_WEEK_LABELS = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
+const ENTER_KEYCODE = 13;
+const YEAR_CHUNK = 12;
+const DEFAULT_MIN_DATE = "0000-01-01";
+const DEFAULT_EXTERNAL_DATE_FORMAT = "MM/DD/YYYY";
+const INTERNAL_DATE_FORMAT = "YYYY-MM-DD";
+const NOT_DISABLED_SELECTOR = ":not([disabled])";
+const processFocusableSelectors = (...selectors) => selectors.map(query => query + NOT_DISABLED_SELECTOR).join(", ");
+const DATE_PICKER_FOCUSABLE = processFocusableSelectors(CALENDAR_PREVIOUS_YEAR, CALENDAR_PREVIOUS_MONTH, CALENDAR_YEAR_SELECTION, CALENDAR_MONTH_SELECTION, CALENDAR_NEXT_YEAR, CALENDAR_NEXT_MONTH, CALENDAR_DATE_FOCUSED);
+const MONTH_PICKER_FOCUSABLE = processFocusableSelectors(CALENDAR_MONTH_FOCUSED);
+const YEAR_PICKER_FOCUSABLE = processFocusableSelectors(CALENDAR_PREVIOUS_YEAR_CHUNK, CALENDAR_NEXT_YEAR_CHUNK, CALENDAR_YEAR_FOCUSED);
+
+// #region Date Manipulation Functions
+
+/**
+ * Keep date within month. Month would only be over by 1 to 3 days
+ *
+ * @param {Date} dateToCheck the date object to check
+ * @param {number} month the correct month
+ * @returns {Date} the date, corrected if needed
+ */
+const keepDateWithinMonth = (dateToCheck, month) => {
+  if (month !== dateToCheck.getMonth()) {
+    dateToCheck.setDate(0);
+  }
+  return dateToCheck;
+};
+
+/**
+ * Set date from month day year
+ *
+ * @param {number} year the year to set
+ * @param {number} month the month to set (zero-indexed)
+ * @param {number} date the date to set
+ * @returns {Date} the set date
+ */
+const setDate = (year, month, date) => {
+  const newDate = new Date(0);
+  newDate.setFullYear(year, month, date);
+  return newDate;
+};
+
+/**
+ * todays date
+ *
+ * @returns {Date} todays date
+ */
+const today = () => {
+  const newDate = new Date();
+  const day = newDate.getDate();
+  const month = newDate.getMonth();
+  const year = newDate.getFullYear();
+  return setDate(year, month, day);
+};
+
+/**
+ * Set date to first day of the month
+ *
+ * @param {number} date the date to adjust
+ * @returns {Date} the adjusted date
+ */
+const startOfMonth = date => {
+  const newDate = new Date(0);
+  newDate.setFullYear(date.getFullYear(), date.getMonth(), 1);
+  return newDate;
+};
+
+/**
+ * Set date to last day of the month
+ *
+ * @param {number} date the date to adjust
+ * @returns {Date} the adjusted date
+ */
+const lastDayOfMonth = date => {
+  const newDate = new Date(0);
+  newDate.setFullYear(date.getFullYear(), date.getMonth() + 1, 0);
+  return newDate;
+};
+
+/**
+ * Add days to date
+ *
+ * @param {Date} _date the date to adjust
+ * @param {number} numDays the difference in days
+ * @returns {Date} the adjusted date
+ */
+const addDays = (_date, numDays) => {
+  const newDate = new Date(_date.getTime());
+  newDate.setDate(newDate.getDate() + numDays);
+  return newDate;
+};
+
+/**
+ * Subtract days from date
+ *
+ * @param {Date} _date the date to adjust
+ * @param {number} numDays the difference in days
+ * @returns {Date} the adjusted date
+ */
+const subDays = (_date, numDays) => addDays(_date, -numDays);
+
+/**
+ * Add weeks to date
+ *
+ * @param {Date} _date the date to adjust
+ * @param {number} numWeeks the difference in weeks
+ * @returns {Date} the adjusted date
+ */
+const addWeeks = (_date, numWeeks) => addDays(_date, numWeeks * 7);
+
+/**
+ * Subtract weeks from date
+ *
+ * @param {Date} _date the date to adjust
+ * @param {number} numWeeks the difference in weeks
+ * @returns {Date} the adjusted date
+ */
+const subWeeks = (_date, numWeeks) => addWeeks(_date, -numWeeks);
+
+/**
+ * Set date to the start of the week (Sunday)
+ *
+ * @param {Date} _date the date to adjust
+ * @returns {Date} the adjusted date
+ */
+const startOfWeek = _date => {
+  const dayOfWeek = _date.getDay();
+  return subDays(_date, dayOfWeek);
+};
+
+/**
+ * Set date to the end of the week (Saturday)
+ *
+ * @param {Date} _date the date to adjust
+ * @param {number} numWeeks the difference in weeks
+ * @returns {Date} the adjusted date
+ */
+const endOfWeek = _date => {
+  const dayOfWeek = _date.getDay();
+  return addDays(_date, 6 - dayOfWeek);
+};
+
+/**
+ * Add months to date and keep date within month
+ *
+ * @param {Date} _date the date to adjust
+ * @param {number} numMonths the difference in months
+ * @returns {Date} the adjusted date
+ */
+const addMonths = (_date, numMonths) => {
+  const newDate = new Date(_date.getTime());
+  const dateMonth = (newDate.getMonth() + 12 + numMonths) % 12;
+  newDate.setMonth(newDate.getMonth() + numMonths);
+  keepDateWithinMonth(newDate, dateMonth);
+  return newDate;
+};
+
+/**
+ * Subtract months from date
+ *
+ * @param {Date} _date the date to adjust
+ * @param {number} numMonths the difference in months
+ * @returns {Date} the adjusted date
+ */
+const subMonths = (_date, numMonths) => addMonths(_date, -numMonths);
+
+/**
+ * Add years to date and keep date within month
+ *
+ * @param {Date} _date the date to adjust
+ * @param {number} numYears the difference in years
+ * @returns {Date} the adjusted date
+ */
+const addYears = (_date, numYears) => addMonths(_date, numYears * 12);
+
+/**
+ * Subtract years from date
+ *
+ * @param {Date} _date the date to adjust
+ * @param {number} numYears the difference in years
+ * @returns {Date} the adjusted date
+ */
+const subYears = (_date, numYears) => addYears(_date, -numYears);
+
+/**
+ * Set months of date
+ *
+ * @param {Date} _date the date to adjust
+ * @param {number} month zero-indexed month to set
+ * @returns {Date} the adjusted date
+ */
+const setMonth = (_date, month) => {
+  const newDate = new Date(_date.getTime());
+  newDate.setMonth(month);
+  keepDateWithinMonth(newDate, month);
+  return newDate;
+};
+
+/**
+ * Set year of date
+ *
+ * @param {Date} _date the date to adjust
+ * @param {number} year the year to set
+ * @returns {Date} the adjusted date
+ */
+const setYear = (_date, year) => {
+  const newDate = new Date(_date.getTime());
+  const month = newDate.getMonth();
+  newDate.setFullYear(year);
+  keepDateWithinMonth(newDate, month);
+  return newDate;
+};
+
+/**
+ * Return the earliest date
+ *
+ * @param {Date} dateA date to compare
+ * @param {Date} dateB date to compare
+ * @returns {Date} the earliest date
+ */
+const min = (dateA, dateB) => {
+  let newDate = dateA;
+  if (dateB < dateA) {
+    newDate = dateB;
+  }
+  return new Date(newDate.getTime());
+};
+
+/**
+ * Return the latest date
+ *
+ * @param {Date} dateA date to compare
+ * @param {Date} dateB date to compare
+ * @returns {Date} the latest date
+ */
+const max = (dateA, dateB) => {
+  let newDate = dateA;
+  if (dateB > dateA) {
+    newDate = dateB;
+  }
+  return new Date(newDate.getTime());
+};
+
+/**
+ * Check if dates are the in the same year
+ *
+ * @param {Date} dateA date to compare
+ * @param {Date} dateB date to compare
+ * @returns {boolean} are dates in the same year
+ */
+const isSameYear = (dateA, dateB) => dateA && dateB && dateA.getFullYear() === dateB.getFullYear();
+
+/**
+ * Check if dates are the in the same month
+ *
+ * @param {Date} dateA date to compare
+ * @param {Date} dateB date to compare
+ * @returns {boolean} are dates in the same month
+ */
+const isSameMonth = (dateA, dateB) => isSameYear(dateA, dateB) && dateA.getMonth() === dateB.getMonth();
+
+/**
+ * Check if dates are the same date
+ *
+ * @param {Date} dateA the date to compare
+ * @param {Date} dateA the date to compare
+ * @returns {boolean} are dates the same date
+ */
+const isSameDay = (dateA, dateB) => isSameMonth(dateA, dateB) && dateA.getDate() === dateB.getDate();
+
+/**
+ * return a new date within minimum and maximum date
+ *
+ * @param {Date} date date to check
+ * @param {Date} minDate minimum date to allow
+ * @param {Date} maxDate maximum date to allow
+ * @returns {Date} the date between min and max
+ */
+const keepDateBetweenMinAndMax = (date, minDate, maxDate) => {
+  let newDate = date;
+  if (date < minDate) {
+    newDate = minDate;
+  } else if (maxDate && date > maxDate) {
+    newDate = maxDate;
+  }
+  return new Date(newDate.getTime());
+};
+
+/**
+ * Check if dates is valid.
+ *
+ * @param {Date} date date to check
+ * @param {Date} minDate minimum date to allow
+ * @param {Date} maxDate maximum date to allow
+ * @return {boolean} is there a day within the month within min and max dates
+ */
+const isDateWithinMinAndMax = (date, minDate, maxDate) => date >= minDate && (!maxDate || date <= maxDate);
+
+/**
+ * Check if dates month is invalid.
+ *
+ * @param {Date} date date to check
+ * @param {Date} minDate minimum date to allow
+ * @param {Date} maxDate maximum date to allow
+ * @return {boolean} is the month outside min or max dates
+ */
+const isDatesMonthOutsideMinOrMax = (date, minDate, maxDate) => lastDayOfMonth(date) < minDate || maxDate && startOfMonth(date) > maxDate;
+
+/**
+ * Check if dates year is invalid.
+ *
+ * @param {Date} date date to check
+ * @param {Date} minDate minimum date to allow
+ * @param {Date} maxDate maximum date to allow
+ * @return {boolean} is the month outside min or max dates
+ */
+const isDatesYearOutsideMinOrMax = (date, minDate, maxDate) => lastDayOfMonth(setMonth(date, 11)) < minDate || maxDate && startOfMonth(setMonth(date, 0)) > maxDate;
+
+/**
+ * @typedef {Object} DateRangeContext
+ * @property {Date} rangeStartDate
+ * @property {Date} rangeEndDate
+ * @property {Date} withinRangeStartDate
+ * @property {Date} withinRangeEndDate
+ */
+
+/**
+ * Set the start, end, and within range values for date range variants.
+
+ * @param {Date} date - Date that concludes the date range.
+ * @param {Date} rangeDate - Range date data attribute value of the date picker component.
+ * @returns {DateRangeContext} - Dates for range selection.
+ */
+const setRangeDates = (date, rangeDate) => {
+  const rangeConclusionDate = date;
+  const rangeStartDate = rangeDate && min(rangeConclusionDate, rangeDate);
+  const rangeEndDate = rangeDate && max(rangeConclusionDate, rangeDate);
+  const withinRangeStartDate = rangeDate && addDays(rangeStartDate, 1);
+  const withinRangeEndDate = rangeDate && subDays(rangeEndDate, 1);
+  return {
+    rangeStartDate,
+    rangeEndDate,
+    withinRangeStartDate,
+    withinRangeEndDate
+  };
+};
+
+/**
+ * Parse a date with format M-D-YY
+ *
+ * @param {string} dateString the date string to parse
+ * @param {string} dateFormat the format of the date string
+ * @param {boolean} adjustDate should the date be adjusted
+ * @returns {Date} the parsed date
+ */
+const parseDateString = (dateString, dateFormat = INTERNAL_DATE_FORMAT, adjustDate = false) => {
+  let date;
+  let month;
+  let day;
+  let year;
+  let parsed;
+  if (dateString) {
+    let monthStr;
+    let dayStr;
+    let yearStr;
+    if (dateFormat === DEFAULT_EXTERNAL_DATE_FORMAT) {
+      [monthStr, dayStr, yearStr] = dateString.split("/");
+    } else {
+      [yearStr, monthStr, dayStr] = dateString.split("-");
+    }
+    if (yearStr) {
+      parsed = parseInt(yearStr, 10);
+      if (!Number.isNaN(parsed)) {
+        year = parsed;
+        if (adjustDate) {
+          year = Math.max(0, year);
+          if (yearStr.length < 3) {
+            const currentYear = today().getFullYear();
+            const currentYearStub = currentYear - currentYear % 10 ** yearStr.length;
+            year = currentYearStub + parsed;
+          }
+        }
+      }
+    }
+    if (monthStr) {
+      parsed = parseInt(monthStr, 10);
+      if (!Number.isNaN(parsed)) {
+        month = parsed;
+        if (adjustDate) {
+          month = Math.max(1, month);
+          month = Math.min(12, month);
+        }
+      }
+    }
+    if (month && dayStr && year != null) {
+      parsed = parseInt(dayStr, 10);
+      if (!Number.isNaN(parsed)) {
+        day = parsed;
+        if (adjustDate) {
+          const lastDayOfTheMonth = setDate(year, month, 0).getDate();
+          day = Math.max(1, day);
+          day = Math.min(lastDayOfTheMonth, day);
+        }
+      }
+    }
+    if (month && day && year != null) {
+      date = setDate(year, month - 1, day);
+    }
+  }
+  return date;
+};
+
+/**
+ * Format a date to format MM-DD-YYYY
+ *
+ * @param {Date} date the date to format
+ * @param {string} dateFormat the format of the date string
+ * @returns {string} the formatted date string
+ */
+const formatDate = (date, dateFormat = INTERNAL_DATE_FORMAT) => {
+  const padZeros = (value, length) => `0000${value}`.slice(-length);
+  const month = date.getMonth() + 1;
+  const day = date.getDate();
+  const year = date.getFullYear();
+  if (dateFormat === DEFAULT_EXTERNAL_DATE_FORMAT) {
+    return [padZeros(month, 2), padZeros(day, 2), padZeros(year, 4)].join("/");
+  }
+  return [padZeros(year, 4), padZeros(month, 2), padZeros(day, 2)].join("-");
+};
+
+// #endregion Date Manipulation Functions
+
+/**
+ * Create a grid string from an array of html strings
+ *
+ * @param {string[]} htmlArray the array of html items
+ * @param {number} rowSize the length of a row
+ * @returns {string} the grid string
+ */
+const listToGridHtml = (htmlArray, rowSize) => {
+  const grid = [];
+  let row = [];
+  let i = 0;
+  while (i < htmlArray.length) {
+    row = [];
+    const tr = document.createElement("tr");
+    while (i < htmlArray.length && row.length < rowSize) {
+      const td = document.createElement("td");
+      td.insertAdjacentElement("beforeend", htmlArray[i]);
+      row.push(td);
+      i += 1;
+    }
+    row.forEach(element => {
+      tr.insertAdjacentElement("beforeend", element);
+    });
+    grid.push(tr);
+  }
+  return grid;
+};
+const createTableBody = grid => {
+  const tableBody = document.createElement("tbody");
+  grid.forEach(element => {
+    tableBody.insertAdjacentElement("beforeend", element);
+  });
+  return tableBody;
+};
+
+/**
+ * set the value of the element and dispatch a change event
+ *
+ * @param {HTMLInputElement} el The element to update
+ * @param {string} value The new value of the element
+ */
+const changeElementValue = (el, value = "") => {
+  const elementToChange = el;
+  elementToChange.value = value;
+  const event = new CustomEvent("change", {
+    bubbles: true,
+    cancelable: true,
+    detail: {
+      value
+    }
+  });
+  elementToChange.dispatchEvent(event);
+};
+
+/**
+ * The properties and elements within the date picker.
+ * @typedef {Object} DatePickerContext
+ * @property {HTMLDivElement} calendarEl
+ * @property {HTMLElement} datePickerEl
+ * @property {HTMLInputElement} internalInputEl
+ * @property {HTMLInputElement} externalInputEl
+ * @property {HTMLDivElement} statusEl
+ * @property {HTMLDivElement} firstYearChunkEl
+ * @property {Date} calendarDate
+ * @property {Date} minDate
+ * @property {Date} maxDate
+ * @property {Date} selectedDate
+ * @property {Date} rangeDate
+ * @property {Date} defaultDate
+ */
+
+/**
+ * Get an object of the properties and elements belonging directly to the given
+ * date picker component.
+ *
+ * @param {HTMLElement} el the element within the date picker
+ * @returns {DatePickerContext} elements
+ */
+const getDatePickerContext = el => {
+  const datePickerEl = el.closest(DATE_PICKER);
+  if (!datePickerEl) {
+    throw new Error(`Element is missing outer ${DATE_PICKER}`);
+  }
+  const internalInputEl = datePickerEl.querySelector(DATE_PICKER_INTERNAL_INPUT);
+  const externalInputEl = datePickerEl.querySelector(DATE_PICKER_EXTERNAL_INPUT);
+  const calendarEl = datePickerEl.querySelector(DATE_PICKER_CALENDAR);
+  const toggleBtnEl = datePickerEl.querySelector(DATE_PICKER_BUTTON);
+  const statusEl = datePickerEl.querySelector(DATE_PICKER_STATUS);
+  const firstYearChunkEl = datePickerEl.querySelector(CALENDAR_YEAR);
+  const inputDate = parseDateString(externalInputEl.value, DEFAULT_EXTERNAL_DATE_FORMAT, true);
+  const selectedDate = parseDateString(internalInputEl.value);
+  const calendarDate = parseDateString(calendarEl.dataset.value);
+  const minDate = parseDateString(datePickerEl.dataset.minDate);
+  const maxDate = parseDateString(datePickerEl.dataset.maxDate);
+  const rangeDate = parseDateString(datePickerEl.dataset.rangeDate);
+  const defaultDate = parseDateString(datePickerEl.dataset.defaultDate);
+  if (minDate && maxDate && minDate > maxDate) {
+    throw new Error("Minimum date cannot be after maximum date");
+  }
+  return {
+    calendarDate,
+    minDate,
+    toggleBtnEl,
+    selectedDate,
+    maxDate,
+    firstYearChunkEl,
+    datePickerEl,
+    inputDate,
+    internalInputEl,
+    externalInputEl,
+    calendarEl,
+    rangeDate,
+    defaultDate,
+    statusEl
+  };
+};
+
+/**
+ * Disable the date picker component
+ *
+ * @param {HTMLElement} el An element within the date picker component
+ */
+const disable = el => {
+  const {
+    externalInputEl,
+    toggleBtnEl
+  } = getDatePickerContext(el);
+  toggleBtnEl.disabled = true;
+  externalInputEl.disabled = true;
+};
+
+/**
+ * Add the readonly attribute to input element and the aria-disabled attribute to the toggle calendar button and external input elements.
+ *
+ * @param {HTMLElement} el - The date picker element
+ */
+const ariaDisable = el => {
+  const {
+    externalInputEl,
+    toggleBtnEl
+  } = getDatePickerContext(el);
+  toggleBtnEl.setAttribute("aria-disabled", true);
+  externalInputEl.setAttribute("aria-disabled", true);
+  externalInputEl.setAttribute("readonly", "");
+};
+
+/**
+ * Enable the date picker component
+ *
+ * @param {HTMLElement} el An element within the date picker component
+ */
+const enable = el => {
+  const {
+    externalInputEl,
+    toggleBtnEl
+  } = getDatePickerContext(el);
+  toggleBtnEl.disabled = false;
+  toggleBtnEl.removeAttribute("aria-disabled");
+  externalInputEl.disabled = false;
+  externalInputEl.removeAttribute("aria-disabled");
+  externalInputEl.removeAttribute("readonly");
+};
+
+// #region Validation
+
+/**
+ * Validate the value in the input as a valid date of format M/D/YYYY
+ *
+ * @param {HTMLElement} el An element within the date picker component
+ */
+const isDateInputInvalid = el => {
+  const {
+    externalInputEl,
+    minDate,
+    maxDate
+  } = getDatePickerContext(el);
+  const dateString = externalInputEl.value;
+  let isInvalid = false;
+  if (dateString) {
+    isInvalid = true;
+    const dateStringParts = dateString.split("/");
+    const [month, day, year] = dateStringParts.map(str => {
+      let value;
+      const parsed = parseInt(str, 10);
+      if (!Number.isNaN(parsed)) value = parsed;
+      return value;
+    });
+    if (month && day && year != null) {
+      const checkDate = setDate(year, month - 1, day);
+      if (checkDate.getMonth() === month - 1 && checkDate.getDate() === day && checkDate.getFullYear() === year && dateStringParts[2].length === 4 && isDateWithinMinAndMax(checkDate, minDate, maxDate)) {
+        isInvalid = false;
+      }
+    }
+  }
+  return isInvalid;
+};
+
+/**
+ * Validate the value in the input as a valid date of format M/D/YYYY
+ *
+ * @param {HTMLElement} el An element within the date picker component
+ */
+const validateDateInput = el => {
+  const {
+    externalInputEl
+  } = getDatePickerContext(el);
+  const isInvalid = isDateInputInvalid(externalInputEl);
+  if (isInvalid && !externalInputEl.validationMessage) {
+    externalInputEl.setCustomValidity(VALIDATION_MESSAGE);
+  }
+  if (!isInvalid && externalInputEl.validationMessage === VALIDATION_MESSAGE) {
+    externalInputEl.setCustomValidity("");
+  }
+};
+
+// #endregion Validation
+
+/**
+ * Enable the date picker component
+ *
+ * @param {HTMLElement} el An element within the date picker component
+ */
+const reconcileInputValues = el => {
+  const {
+    internalInputEl,
+    inputDate
+  } = getDatePickerContext(el);
+  let newValue = "";
+  if (inputDate && !isDateInputInvalid(el)) {
+    newValue = formatDate(inputDate);
+  }
+  if (internalInputEl.value !== newValue) {
+    changeElementValue(internalInputEl, newValue);
+  }
+};
+
+/**
+ * Select the value of the date picker inputs.
+ *
+ * @param {HTMLButtonElement} el An element within the date picker component
+ * @param {string} dateString The date string to update in YYYY-MM-DD format
+ */
+const setCalendarValue = (el, dateString) => {
+  const parsedDate = parseDateString(dateString);
+  if (parsedDate) {
+    const formattedDate = formatDate(parsedDate, DEFAULT_EXTERNAL_DATE_FORMAT);
+    const {
+      datePickerEl,
+      internalInputEl,
+      externalInputEl
+    } = getDatePickerContext(el);
+    changeElementValue(internalInputEl, dateString);
+    changeElementValue(externalInputEl, formattedDate);
+    validateDateInput(datePickerEl);
+  }
+};
+
+/**
+ * Enhance an input with the date picker elements
+ *
+ * @param {HTMLElement} el The initial wrapping element of the date picker component
+ */
+const enhanceDatePicker = el => {
+  const datePickerEl = el.closest(DATE_PICKER);
+  const {
+    defaultValue
+  } = datePickerEl.dataset;
+  const internalInputEl = datePickerEl.querySelector(`input`);
+  if (!internalInputEl) {
+    throw new Error(`${DATE_PICKER} is missing inner input`);
+  }
+  if (internalInputEl.value) {
+    internalInputEl.value = "";
+  }
+  const minDate = parseDateString(datePickerEl.dataset.minDate || internalInputEl.getAttribute("min"));
+  datePickerEl.dataset.minDate = minDate ? formatDate(minDate) : DEFAULT_MIN_DATE;
+  const maxDate = parseDateString(datePickerEl.dataset.maxDate || internalInputEl.getAttribute("max"));
+  if (maxDate) {
+    datePickerEl.dataset.maxDate = formatDate(maxDate);
+  }
+  const calendarWrapper = document.createElement("div");
+  calendarWrapper.classList.add(DATE_PICKER_WRAPPER_CLASS);
+  const externalInputEl = internalInputEl.cloneNode();
+  externalInputEl.classList.add(DATE_PICKER_EXTERNAL_INPUT_CLASS);
+  externalInputEl.type = "text";
+  calendarWrapper.appendChild(externalInputEl);
+  calendarWrapper.insertAdjacentHTML("beforeend", Sanitizer.escapeHTML`
+    <button type="button" class="${DATE_PICKER_BUTTON_CLASS}" aria-haspopup="true" aria-label="Toggle calendar"></button>
+    <div class="${DATE_PICKER_CALENDAR_CLASS}" role="application" hidden></div>
+    <div class="usa-sr-only ${DATE_PICKER_STATUS_CLASS}" role="status" aria-live="polite"></div>`);
+  internalInputEl.setAttribute("aria-hidden", "true");
+  internalInputEl.setAttribute("tabindex", "-1");
+  internalInputEl.style.display = "none";
+  internalInputEl.classList.add(DATE_PICKER_INTERNAL_INPUT_CLASS);
+  internalInputEl.removeAttribute("id");
+  internalInputEl.removeAttribute("name");
+  internalInputEl.required = false;
+  datePickerEl.appendChild(calendarWrapper);
+  datePickerEl.classList.add(DATE_PICKER_INITIALIZED_CLASS);
+  if (defaultValue) {
+    setCalendarValue(datePickerEl, defaultValue);
+  }
+  if (internalInputEl.disabled) {
+    disable(datePickerEl);
+    internalInputEl.disabled = false;
+  }
+  if (internalInputEl.hasAttribute("aria-disabled")) {
+    ariaDisable(datePickerEl);
+    internalInputEl.removeAttribute("aria-disabled");
+  }
+};
+
+// #region Calendar - Date Selection View
+
+/**
+ * render the calendar.
+ *
+ * @param {HTMLElement} el An element within the date picker component
+ * @param {Date} _dateToDisplay a date to render on the calendar
+ * @returns {HTMLElement} a reference to the new calendar element
+ */
+const renderCalendar = (el, _dateToDisplay) => {
+  const {
+    datePickerEl,
+    calendarEl,
+    statusEl,
+    selectedDate,
+    maxDate,
+    minDate,
+    rangeDate
+  } = getDatePickerContext(el);
+  const todaysDate = today();
+  let dateToDisplay = _dateToDisplay || todaysDate;
+  const calendarWasHidden = calendarEl.hidden;
+  const focusedDate = addDays(dateToDisplay, 0);
+  const focusedMonth = dateToDisplay.getMonth();
+  const focusedYear = dateToDisplay.getFullYear();
+  const prevMonth = subMonths(dateToDisplay, 1);
+  const nextMonth = addMonths(dateToDisplay, 1);
+  const currentFormattedDate = formatDate(dateToDisplay);
+  const firstOfMonth = startOfMonth(dateToDisplay);
+  const prevButtonsDisabled = isSameMonth(dateToDisplay, minDate);
+  const nextButtonsDisabled = isSameMonth(dateToDisplay, maxDate);
+  const {
+    rangeStartDate,
+    rangeEndDate,
+    withinRangeStartDate,
+    withinRangeEndDate
+  } = setRangeDates(selectedDate || dateToDisplay, rangeDate);
+  const monthLabel = MONTH_LABELS[focusedMonth];
+  const generateDateHtml = dateToRender => {
+    const classes = [CALENDAR_DATE_CLASS];
+    const day = dateToRender.getDate();
+    const month = dateToRender.getMonth();
+    const year = dateToRender.getFullYear();
+    const dayOfWeek = dateToRender.getDay();
+    const formattedDate = formatDate(dateToRender);
+    let tabindex = "-1";
+    const isDisabled = !isDateWithinMinAndMax(dateToRender, minDate, maxDate);
+    const isSelected = isSameDay(dateToRender, selectedDate);
+    if (isSameMonth(dateToRender, prevMonth)) {
+      classes.push(CALENDAR_DATE_PREVIOUS_MONTH_CLASS);
+    }
+    if (isSameMonth(dateToRender, focusedDate)) {
+      classes.push(CALENDAR_DATE_CURRENT_MONTH_CLASS);
+    }
+    if (isSameMonth(dateToRender, nextMonth)) {
+      classes.push(CALENDAR_DATE_NEXT_MONTH_CLASS);
+    }
+    if (isSelected) {
+      classes.push(CALENDAR_DATE_SELECTED_CLASS);
+    }
+    if (isSameDay(dateToRender, todaysDate)) {
+      classes.push(CALENDAR_DATE_TODAY_CLASS);
+    }
+    if (rangeDate) {
+      if (isSameDay(dateToRender, rangeDate)) {
+        classes.push(CALENDAR_DATE_RANGE_DATE_CLASS);
+      }
+      if (isSameDay(dateToRender, rangeStartDate)) {
+        classes.push(CALENDAR_DATE_RANGE_DATE_START_CLASS);
+      }
+      if (isSameDay(dateToRender, rangeEndDate)) {
+        classes.push(CALENDAR_DATE_RANGE_DATE_END_CLASS);
+      }
+      if (isDateWithinMinAndMax(dateToRender, withinRangeStartDate, withinRangeEndDate)) {
+        classes.push(CALENDAR_DATE_WITHIN_RANGE_CLASS);
+      }
+    }
+    if (isSameDay(dateToRender, focusedDate)) {
+      tabindex = "0";
+      classes.push(CALENDAR_DATE_FOCUSED_CLASS);
+    }
+    const monthStr = MONTH_LABELS[month];
+    const dayStr = DAY_OF_WEEK_LABELS[dayOfWeek];
+    const btn = document.createElement("button");
+    btn.setAttribute("type", "button");
+    btn.setAttribute("tabindex", tabindex);
+    btn.setAttribute("class", classes.join(" "));
+    btn.setAttribute("data-day", day);
+    btn.setAttribute("data-month", month + 1);
+    btn.setAttribute("data-year", year);
+    btn.setAttribute("data-value", formattedDate);
+    btn.setAttribute("aria-label", Sanitizer.escapeHTML`${day} ${monthStr} ${year} ${dayStr}`);
+    btn.setAttribute("aria-selected", isSelected ? "true" : "false");
+    if (isDisabled === true) {
+      btn.disabled = true;
+    }
+    btn.textContent = day;
+    return btn;
+  };
+
+  // set date to first rendered day
+  dateToDisplay = startOfWeek(firstOfMonth);
+  const days = [];
+  while (days.length < 28 || dateToDisplay.getMonth() === focusedMonth || days.length % 7 !== 0) {
+    days.push(generateDateHtml(dateToDisplay));
+    dateToDisplay = addDays(dateToDisplay, 1);
+  }
+  const datesGrid = listToGridHtml(days, 7);
+  const newCalendar = calendarEl.cloneNode();
+  newCalendar.dataset.value = currentFormattedDate;
+  newCalendar.style.top = `${datePickerEl.offsetHeight}px`;
+  newCalendar.hidden = false;
+  newCalendar.innerHTML = Sanitizer.escapeHTML`
+    <div tabindex="-1" class="${CALENDAR_DATE_PICKER_CLASS}">
+      <div class="${CALENDAR_ROW_CLASS}">
+        <div class="${CALENDAR_CELL_CLASS} ${CALENDAR_CELL_CENTER_ITEMS_CLASS}">
+          <button
+            type="button"
+            class="${CALENDAR_PREVIOUS_YEAR_CLASS}"
+            aria-label="Navigate back one year"
+            ${prevButtonsDisabled ? `disabled="disabled"` : ""}
+          ></button>
+        </div>
+        <div class="${CALENDAR_CELL_CLASS} ${CALENDAR_CELL_CENTER_ITEMS_CLASS}">
+          <button
+            type="button"
+            class="${CALENDAR_PREVIOUS_MONTH_CLASS}"
+            aria-label="Navigate back one month"
+            ${prevButtonsDisabled ? `disabled="disabled"` : ""}
+          ></button>
+        </div>
+        <div class="${CALENDAR_CELL_CLASS} ${CALENDAR_MONTH_LABEL_CLASS}">
+          <button
+            type="button"
+            class="${CALENDAR_MONTH_SELECTION_CLASS}" aria-label="${monthLabel}. Select month"
+          >${monthLabel}</button>
+          <button
+            type="button"
+            class="${CALENDAR_YEAR_SELECTION_CLASS}" aria-label="${focusedYear}. Select year"
+          >${focusedYear}</button>
+        </div>
+        <div class="${CALENDAR_CELL_CLASS} ${CALENDAR_CELL_CENTER_ITEMS_CLASS}">
+          <button
+            type="button"
+            class="${CALENDAR_NEXT_MONTH_CLASS}"
+            aria-label="Navigate forward one month"
+            ${nextButtonsDisabled ? `disabled="disabled"` : ""}
+          ></button>
+        </div>
+        <div class="${CALENDAR_CELL_CLASS} ${CALENDAR_CELL_CENTER_ITEMS_CLASS}">
+          <button
+            type="button"
+            class="${CALENDAR_NEXT_YEAR_CLASS}"
+            aria-label="Navigate forward one year"
+            ${nextButtonsDisabled ? `disabled="disabled"` : ""}
+          ></button>
+        </div>
+      </div>
+    </div>
+    `;
+  const table = document.createElement("table");
+  table.setAttribute("class", CALENDAR_TABLE_CLASS);
+  const tableHead = document.createElement("thead");
+  table.insertAdjacentElement("beforeend", tableHead);
+  const tableHeadRow = document.createElement("tr");
+  tableHead.insertAdjacentElement("beforeend", tableHeadRow);
+  const daysOfWeek = {
+    Sunday: "S",
+    Monday: "M",
+    Tuesday: "T",
+    Wednesday: "W",
+    Thursday: "Th",
+    Friday: "Fr",
+    Saturday: "S"
+  };
+  Object.keys(daysOfWeek).forEach(key => {
+    const th = document.createElement("th");
+    th.setAttribute("class", CALENDAR_DAY_OF_WEEK_CLASS);
+    th.setAttribute("scope", "col");
+    th.setAttribute("aria-label", key);
+    th.textContent = daysOfWeek[key];
+    tableHeadRow.insertAdjacentElement("beforeend", th);
+  });
+  const tableBody = createTableBody(datesGrid);
+  table.insertAdjacentElement("beforeend", tableBody);
+
+  // Container for Years, Months, and Days
+  const datePickerCalendarContainer = newCalendar.querySelector(CALENDAR_DATE_PICKER);
+  datePickerCalendarContainer.insertAdjacentElement("beforeend", table);
+  calendarEl.parentNode.replaceChild(newCalendar, calendarEl);
+  datePickerEl.classList.add(DATE_PICKER_ACTIVE_CLASS);
+  const statuses = [];
+  if (isSameDay(selectedDate, focusedDate)) {
+    statuses.push("Selected date");
+  }
+  if (calendarWasHidden) {
+    statuses.push("You can navigate by day using left and right arrows", "Weeks by using up and down arrows", "Months by using page up and page down keys", "Years by using shift plus page up and shift plus page down", "Home and end keys navigate to the beginning and end of a week");
+    statusEl.textContent = "";
+  } else {
+    statuses.push(`${monthLabel} ${focusedYear}`);
+  }
+  statusEl.textContent = statuses.join(". ");
+  return newCalendar;
+};
+
+/**
+ * Navigate back one year and display the calendar.
+ *
+ * @param {HTMLButtonElement} _buttonEl An element within the date picker component
+ */
+const displayPreviousYear = _buttonEl => {
+  if (_buttonEl.disabled) return;
+  const {
+    calendarEl,
+    calendarDate,
+    minDate,
+    maxDate
+  } = getDatePickerContext(_buttonEl);
+  let date = subYears(calendarDate, 1);
+  date = keepDateBetweenMinAndMax(date, minDate, maxDate);
+  const newCalendar = renderCalendar(calendarEl, date);
+  let nextToFocus = newCalendar.querySelector(CALENDAR_PREVIOUS_YEAR);
+  if (nextToFocus.disabled) {
+    nextToFocus = newCalendar.querySelector(CALENDAR_DATE_PICKER);
+  }
+  nextToFocus.focus();
+};
+
+/**
+ * Navigate back one month and display the calendar.
+ *
+ * @param {HTMLButtonElement} _buttonEl An element within the date picker component
+ */
+const displayPreviousMonth = _buttonEl => {
+  if (_buttonEl.disabled) return;
+  const {
+    calendarEl,
+    calendarDate,
+    minDate,
+    maxDate
+  } = getDatePickerContext(_buttonEl);
+  let date = subMonths(calendarDate, 1);
+  date = keepDateBetweenMinAndMax(date, minDate, maxDate);
+  const newCalendar = renderCalendar(calendarEl, date);
+  let nextToFocus = newCalendar.querySelector(CALENDAR_PREVIOUS_MONTH);
+  if (nextToFocus.disabled) {
+    nextToFocus = newCalendar.querySelector(CALENDAR_DATE_PICKER);
+  }
+  nextToFocus.focus();
+};
+
+/**
+ * Navigate forward one month and display the calendar.
+ *
+ * @param {HTMLButtonElement} _buttonEl An element within the date picker component
+ */
+const displayNextMonth = _buttonEl => {
+  if (_buttonEl.disabled) return;
+  const {
+    calendarEl,
+    calendarDate,
+    minDate,
+    maxDate
+  } = getDatePickerContext(_buttonEl);
+  let date = addMonths(calendarDate, 1);
+  date = keepDateBetweenMinAndMax(date, minDate, maxDate);
+  const newCalendar = renderCalendar(calendarEl, date);
+  let nextToFocus = newCalendar.querySelector(CALENDAR_NEXT_MONTH);
+  if (nextToFocus.disabled) {
+    nextToFocus = newCalendar.querySelector(CALENDAR_DATE_PICKER);
+  }
+  nextToFocus.focus();
+};
+
+/**
+ * Navigate forward one year and display the calendar.
+ *
+ * @param {HTMLButtonElement} _buttonEl An element within the date picker component
+ */
+const displayNextYear = _buttonEl => {
+  if (_buttonEl.disabled) return;
+  const {
+    calendarEl,
+    calendarDate,
+    minDate,
+    maxDate
+  } = getDatePickerContext(_buttonEl);
+  let date = addYears(calendarDate, 1);
+  date = keepDateBetweenMinAndMax(date, minDate, maxDate);
+  const newCalendar = renderCalendar(calendarEl, date);
+  let nextToFocus = newCalendar.querySelector(CALENDAR_NEXT_YEAR);
+  if (nextToFocus.disabled) {
+    nextToFocus = newCalendar.querySelector(CALENDAR_DATE_PICKER);
+  }
+  nextToFocus.focus();
+};
+
+/**
+ * Hide the calendar of a date picker component.
+ *
+ * @param {HTMLElement} el An element within the date picker component
+ */
+const hideCalendar = el => {
+  const {
+    datePickerEl,
+    calendarEl,
+    statusEl
+  } = getDatePickerContext(el);
+  datePickerEl.classList.remove(DATE_PICKER_ACTIVE_CLASS);
+  calendarEl.hidden = true;
+  statusEl.textContent = "";
+};
+
+/**
+ * Select a date within the date picker component.
+ *
+ * @param {HTMLButtonElement} calendarDateEl A date element within the date picker component
+ */
+const selectDate = calendarDateEl => {
+  if (calendarDateEl.disabled) return;
+  const {
+    datePickerEl,
+    externalInputEl
+  } = getDatePickerContext(calendarDateEl);
+  setCalendarValue(calendarDateEl, calendarDateEl.dataset.value);
+  hideCalendar(datePickerEl);
+  externalInputEl.focus();
+};
+
+/**
+ * Toggle the calendar.
+ *
+ * @param {HTMLButtonElement} el An element within the date picker component
+ */
+const toggleCalendar = el => {
+  if (el.disabled || el.hasAttribute("aria-disabled")) return;
+  const {
+    calendarEl,
+    inputDate,
+    minDate,
+    maxDate,
+    defaultDate
+  } = getDatePickerContext(el);
+  if (calendarEl.hidden) {
+    const dateToDisplay = keepDateBetweenMinAndMax(inputDate || defaultDate || today(), minDate, maxDate);
+    const newCalendar = renderCalendar(calendarEl, dateToDisplay);
+    newCalendar.querySelector(CALENDAR_DATE_FOCUSED).focus();
+  } else {
+    hideCalendar(el);
+  }
+};
+
+/**
+ * Update the calendar when visible.
+ *
+ * @param {HTMLElement} el an element within the date picker
+ */
+const updateCalendarIfVisible = el => {
+  const {
+    calendarEl,
+    inputDate,
+    minDate,
+    maxDate
+  } = getDatePickerContext(el);
+  const calendarShown = !calendarEl.hidden;
+  if (calendarShown && inputDate) {
+    const dateToDisplay = keepDateBetweenMinAndMax(inputDate, minDate, maxDate);
+    renderCalendar(calendarEl, dateToDisplay);
+  }
+};
+
+// #endregion Calendar - Date Selection View
+
+// #region Calendar - Month Selection View
+/**
+ * Display the month selection screen in the date picker.
+ *
+ * @param {HTMLButtonElement} el An element within the date picker component
+ * @returns {HTMLElement} a reference to the new calendar element
+ */
+const displayMonthSelection = (el, monthToDisplay) => {
+  const {
+    calendarEl,
+    statusEl,
+    calendarDate,
+    minDate,
+    maxDate
+  } = getDatePickerContext(el);
+  const selectedMonth = calendarDate.getMonth();
+  const focusedMonth = monthToDisplay == null ? selectedMonth : monthToDisplay;
+  const months = MONTH_LABELS.map((month, index) => {
+    const monthToCheck = setMonth(calendarDate, index);
+    const isDisabled = isDatesMonthOutsideMinOrMax(monthToCheck, minDate, maxDate);
+    let tabindex = "-1";
+    const classes = [CALENDAR_MONTH_CLASS];
+    const isSelected = index === selectedMonth;
+    if (index === focusedMonth) {
+      tabindex = "0";
+      classes.push(CALENDAR_MONTH_FOCUSED_CLASS);
+    }
+    if (isSelected) {
+      classes.push(CALENDAR_MONTH_SELECTED_CLASS);
+    }
+    const btn = document.createElement("button");
+    btn.setAttribute("type", "button");
+    btn.setAttribute("tabindex", tabindex);
+    btn.setAttribute("class", classes.join(" "));
+    btn.setAttribute("data-value", index);
+    btn.setAttribute("data-label", month);
+    btn.setAttribute("aria-selected", isSelected ? "true" : "false");
+    if (isDisabled === true) {
+      btn.disabled = true;
+    }
+    btn.textContent = month;
+    return btn;
+  });
+  const monthsHtml = document.createElement("div");
+  monthsHtml.setAttribute("tabindex", "-1");
+  monthsHtml.setAttribute("class", CALENDAR_MONTH_PICKER_CLASS);
+  const table = document.createElement("table");
+  table.setAttribute("class", CALENDAR_TABLE_CLASS);
+  table.setAttribute("role", "presentation");
+  const monthsGrid = listToGridHtml(months, 3);
+  const tableBody = createTableBody(monthsGrid);
+  table.insertAdjacentElement("beforeend", tableBody);
+  monthsHtml.insertAdjacentElement("beforeend", table);
+  const newCalendar = calendarEl.cloneNode();
+  newCalendar.insertAdjacentElement("beforeend", monthsHtml);
+  calendarEl.parentNode.replaceChild(newCalendar, calendarEl);
+  statusEl.textContent = "Select a month.";
+  return newCalendar;
+};
+
+/**
+ * Select a month in the date picker component.
+ *
+ * @param {HTMLButtonElement} monthEl An month element within the date picker component
+ */
+const selectMonth = monthEl => {
+  if (monthEl.disabled) return;
+  const {
+    calendarEl,
+    calendarDate,
+    minDate,
+    maxDate
+  } = getDatePickerContext(monthEl);
+  const selectedMonth = parseInt(monthEl.dataset.value, 10);
+  let date = setMonth(calendarDate, selectedMonth);
+  date = keepDateBetweenMinAndMax(date, minDate, maxDate);
+  const newCalendar = renderCalendar(calendarEl, date);
+  newCalendar.querySelector(CALENDAR_DATE_FOCUSED).focus();
+};
+
+// #endregion Calendar - Month Selection View
+
+// #region Calendar - Year Selection View
+
+/**
+ * Display the year selection screen in the date picker.
+ *
+ * @param {HTMLButtonElement} el An element within the date picker component
+ * @param {number} yearToDisplay year to display in year selection
+ * @returns {HTMLElement} a reference to the new calendar element
+ */
+const displayYearSelection = (el, yearToDisplay) => {
+  const {
+    calendarEl,
+    statusEl,
+    calendarDate,
+    minDate,
+    maxDate
+  } = getDatePickerContext(el);
+  const selectedYear = calendarDate.getFullYear();
+  const focusedYear = yearToDisplay == null ? selectedYear : yearToDisplay;
+  let yearToChunk = focusedYear;
+  yearToChunk -= yearToChunk % YEAR_CHUNK;
+  yearToChunk = Math.max(0, yearToChunk);
+  const prevYearChunkDisabled = isDatesYearOutsideMinOrMax(setYear(calendarDate, yearToChunk - 1), minDate, maxDate);
+  const nextYearChunkDisabled = isDatesYearOutsideMinOrMax(setYear(calendarDate, yearToChunk + YEAR_CHUNK), minDate, maxDate);
+  const years = [];
+  let yearIndex = yearToChunk;
+  while (years.length < YEAR_CHUNK) {
+    const isDisabled = isDatesYearOutsideMinOrMax(setYear(calendarDate, yearIndex), minDate, maxDate);
+    let tabindex = "-1";
+    const classes = [CALENDAR_YEAR_CLASS];
+    const isSelected = yearIndex === selectedYear;
+    if (yearIndex === focusedYear) {
+      tabindex = "0";
+      classes.push(CALENDAR_YEAR_FOCUSED_CLASS);
+    }
+    if (isSelected) {
+      classes.push(CALENDAR_YEAR_SELECTED_CLASS);
+    }
+    const btn = document.createElement("button");
+    btn.setAttribute("type", "button");
+    btn.setAttribute("tabindex", tabindex);
+    btn.setAttribute("class", classes.join(" "));
+    btn.setAttribute("data-value", yearIndex);
+    btn.setAttribute("aria-selected", isSelected ? "true" : "false");
+    if (isDisabled === true) {
+      btn.disabled = true;
+    }
+    btn.textContent = yearIndex;
+    years.push(btn);
+    yearIndex += 1;
+  }
+  const newCalendar = calendarEl.cloneNode();
+
+  // create the years calendar wrapper
+  const yearsCalendarWrapper = document.createElement("div");
+  yearsCalendarWrapper.setAttribute("tabindex", "-1");
+  yearsCalendarWrapper.setAttribute("class", CALENDAR_YEAR_PICKER_CLASS);
+
+  // create table parent
+  const yearsTableParent = document.createElement("table");
+  yearsTableParent.setAttribute("class", CALENDAR_TABLE_CLASS);
+
+  // create table body and table row
+  const yearsHTMLTableBody = document.createElement("tbody");
+  const yearsHTMLTableBodyRow = document.createElement("tr");
+
+  // create previous button
+  const previousYearsBtn = document.createElement("button");
+  previousYearsBtn.setAttribute("type", "button");
+  previousYearsBtn.setAttribute("class", CALENDAR_PREVIOUS_YEAR_CHUNK_CLASS);
+  previousYearsBtn.setAttribute("aria-label", `Navigate back ${YEAR_CHUNK} years`);
+  if (prevYearChunkDisabled === true) {
+    previousYearsBtn.disabled = true;
+  }
+  previousYearsBtn.innerHTML = Sanitizer.escapeHTML`&nbsp`;
+
+  // create next button
+  const nextYearsBtn = document.createElement("button");
+  nextYearsBtn.setAttribute("type", "button");
+  nextYearsBtn.setAttribute("class", CALENDAR_NEXT_YEAR_CHUNK_CLASS);
+  nextYearsBtn.setAttribute("aria-label", `Navigate forward ${YEAR_CHUNK} years`);
+  if (nextYearChunkDisabled === true) {
+    nextYearsBtn.disabled = true;
+  }
+  nextYearsBtn.innerHTML = Sanitizer.escapeHTML`&nbsp`;
+
+  // create the actual years table
+  const yearsTable = document.createElement("table");
+  yearsTable.setAttribute("class", CALENDAR_TABLE_CLASS);
+  yearsTable.setAttribute("role", "presentation");
+
+  // create the years child table
+  const yearsGrid = listToGridHtml(years, 3);
+  const yearsTableBody = createTableBody(yearsGrid);
+
+  // append the grid to the years child table
+  yearsTable.insertAdjacentElement("beforeend", yearsTableBody);
+
+  // create the prev button td and append the prev button
+  const yearsHTMLTableBodyDetailPrev = document.createElement("td");
+  yearsHTMLTableBodyDetailPrev.insertAdjacentElement("beforeend", previousYearsBtn);
+
+  // create the years td and append the years child table
+  const yearsHTMLTableBodyYearsDetail = document.createElement("td");
+  yearsHTMLTableBodyYearsDetail.setAttribute("colspan", "3");
+  yearsHTMLTableBodyYearsDetail.insertAdjacentElement("beforeend", yearsTable);
+
+  // create the next button td and append the next button
+  const yearsHTMLTableBodyDetailNext = document.createElement("td");
+  yearsHTMLTableBodyDetailNext.insertAdjacentElement("beforeend", nextYearsBtn);
+
+  // append the three td to the years child table row
+  yearsHTMLTableBodyRow.insertAdjacentElement("beforeend", yearsHTMLTableBodyDetailPrev);
+  yearsHTMLTableBodyRow.insertAdjacentElement("beforeend", yearsHTMLTableBodyYearsDetail);
+  yearsHTMLTableBodyRow.insertAdjacentElement("beforeend", yearsHTMLTableBodyDetailNext);
+
+  // append the table row to the years child table body
+  yearsHTMLTableBody.insertAdjacentElement("beforeend", yearsHTMLTableBodyRow);
+
+  // append the years table body to the years parent table
+  yearsTableParent.insertAdjacentElement("beforeend", yearsHTMLTableBody);
+
+  // append the parent table to the calendar wrapper
+  yearsCalendarWrapper.insertAdjacentElement("beforeend", yearsTableParent);
+
+  // append the years calender to the new calendar
+  newCalendar.insertAdjacentElement("beforeend", yearsCalendarWrapper);
+
+  // replace calendar
+  calendarEl.parentNode.replaceChild(newCalendar, calendarEl);
+  statusEl.textContent = Sanitizer.escapeHTML`Showing years ${yearToChunk} to ${yearToChunk + YEAR_CHUNK - 1}. Select a year.`;
+  return newCalendar;
+};
+
+/**
+ * Navigate back by years and display the year selection screen.
+ *
+ * @param {HTMLButtonElement} el An element within the date picker component
+ */
+const displayPreviousYearChunk = el => {
+  if (el.disabled) return;
+  const {
+    calendarEl,
+    calendarDate,
+    minDate,
+    maxDate
+  } = getDatePickerContext(el);
+  const yearEl = calendarEl.querySelector(CALENDAR_YEAR_FOCUSED);
+  const selectedYear = parseInt(yearEl.textContent, 10);
+  let adjustedYear = selectedYear - YEAR_CHUNK;
+  adjustedYear = Math.max(0, adjustedYear);
+  const date = setYear(calendarDate, adjustedYear);
+  const cappedDate = keepDateBetweenMinAndMax(date, minDate, maxDate);
+  const newCalendar = displayYearSelection(calendarEl, cappedDate.getFullYear());
+  let nextToFocus = newCalendar.querySelector(CALENDAR_PREVIOUS_YEAR_CHUNK);
+  if (nextToFocus.disabled) {
+    nextToFocus = newCalendar.querySelector(CALENDAR_YEAR_PICKER);
+  }
+  nextToFocus.focus();
+};
+
+/**
+ * Navigate forward by years and display the year selection screen.
+ *
+ * @param {HTMLButtonElement} el An element within the date picker component
+ */
+const displayNextYearChunk = el => {
+  if (el.disabled) return;
+  const {
+    calendarEl,
+    calendarDate,
+    minDate,
+    maxDate
+  } = getDatePickerContext(el);
+  const yearEl = calendarEl.querySelector(CALENDAR_YEAR_FOCUSED);
+  const selectedYear = parseInt(yearEl.textContent, 10);
+  let adjustedYear = selectedYear + YEAR_CHUNK;
+  adjustedYear = Math.max(0, adjustedYear);
+  const date = setYear(calendarDate, adjustedYear);
+  const cappedDate = keepDateBetweenMinAndMax(date, minDate, maxDate);
+  const newCalendar = displayYearSelection(calendarEl, cappedDate.getFullYear());
+  let nextToFocus = newCalendar.querySelector(CALENDAR_NEXT_YEAR_CHUNK);
+  if (nextToFocus.disabled) {
+    nextToFocus = newCalendar.querySelector(CALENDAR_YEAR_PICKER);
+  }
+  nextToFocus.focus();
+};
+
+/**
+ * Select a year in the date picker component.
+ *
+ * @param {HTMLButtonElement} yearEl A year element within the date picker component
+ */
+const selectYear = yearEl => {
+  if (yearEl.disabled) return;
+  const {
+    calendarEl,
+    calendarDate,
+    minDate,
+    maxDate
+  } = getDatePickerContext(yearEl);
+  const selectedYear = parseInt(yearEl.innerHTML, 10);
+  let date = setYear(calendarDate, selectedYear);
+  date = keepDateBetweenMinAndMax(date, minDate, maxDate);
+  const newCalendar = renderCalendar(calendarEl, date);
+  newCalendar.querySelector(CALENDAR_DATE_FOCUSED).focus();
+};
+
+// #endregion Calendar - Year Selection View
+
+// #region Calendar Event Handling
+
+/**
+ * Hide the calendar.
+ *
+ * @param {KeyboardEvent} event the keydown event
+ */
+const handleEscapeFromCalendar = event => {
+  const {
+    datePickerEl,
+    externalInputEl
+  } = getDatePickerContext(event.target);
+  hideCalendar(datePickerEl);
+  externalInputEl.focus();
+  event.preventDefault();
+};
+
+// #endregion Calendar Event Handling
+
+// #region Calendar Date Event Handling
+
+/**
+ * Adjust the date and display the calendar if needed.
+ *
+ * @param {function} adjustDateFn function that returns the adjusted date
+ */
+const adjustCalendar = adjustDateFn => event => {
+  const {
+    calendarEl,
+    calendarDate,
+    minDate,
+    maxDate
+  } = getDatePickerContext(event.target);
+  const date = adjustDateFn(calendarDate);
+  const cappedDate = keepDateBetweenMinAndMax(date, minDate, maxDate);
+  if (!isSameDay(calendarDate, cappedDate)) {
+    const newCalendar = renderCalendar(calendarEl, cappedDate);
+    newCalendar.querySelector(CALENDAR_DATE_FOCUSED).focus();
+  }
+  event.preventDefault();
+};
+
+/**
+ * Navigate back one week and display the calendar.
+ *
+ * @param {KeyboardEvent} event the keydown event
+ */
+const handleUpFromDate = adjustCalendar(date => subWeeks(date, 1));
+
+/**
+ * Navigate forward one week and display the calendar.
+ *
+ * @param {KeyboardEvent} event the keydown event
+ */
+const handleDownFromDate = adjustCalendar(date => addWeeks(date, 1));
+
+/**
+ * Navigate back one day and display the calendar.
+ *
+ * @param {KeyboardEvent} event the keydown event
+ */
+const handleLeftFromDate = adjustCalendar(date => subDays(date, 1));
+
+/**
+ * Navigate forward one day and display the calendar.
+ *
+ * @param {KeyboardEvent} event the keydown event
+ */
+const handleRightFromDate = adjustCalendar(date => addDays(date, 1));
+
+/**
+ * Navigate to the start of the week and display the calendar.
+ *
+ * @param {KeyboardEvent} event the keydown event
+ */
+const handleHomeFromDate = adjustCalendar(date => startOfWeek(date));
+
+/**
+ * Navigate to the end of the week and display the calendar.
+ *
+ * @param {KeyboardEvent} event the keydown event
+ */
+const handleEndFromDate = adjustCalendar(date => endOfWeek(date));
+
+/**
+ * Navigate forward one month and display the calendar.
+ *
+ * @param {KeyboardEvent} event the keydown event
+ */
+const handlePageDownFromDate = adjustCalendar(date => addMonths(date, 1));
+
+/**
+ * Navigate back one month and display the calendar.
+ *
+ * @param {KeyboardEvent} event the keydown event
+ */
+const handlePageUpFromDate = adjustCalendar(date => subMonths(date, 1));
+
+/**
+ * Navigate forward one year and display the calendar.
+ *
+ * @param {KeyboardEvent} event the keydown event
+ */
+const handleShiftPageDownFromDate = adjustCalendar(date => addYears(date, 1));
+
+/**
+ * Navigate back one year and display the calendar.
+ *
+ * @param {KeyboardEvent} event the keydown event
+ */
+const handleShiftPageUpFromDate = adjustCalendar(date => subYears(date, 1));
+
+/**
+ * Set range date classes without re-rendering the calendar. Called when date button is hovered.
+ * Returns early if the date hovered is disabled or if there is already a selected date.
+ *
+ * @param {HTMLElement} dateEl - Calendar date button within the date picker component.
+ */
+
+const handleMouseoverFromDate = dateEl => {
+  if (dateEl.disabled) return;
+  const hoverDate = parseDateString(dateEl.dataset.value);
+  const {
+    calendarEl,
+    selectedDate,
+    rangeDate
+  } = getDatePickerContext(dateEl);
+  if (selectedDate) return;
+  const {
+    withinRangeStartDate,
+    withinRangeEndDate
+  } = setRangeDates(hoverDate, rangeDate);
+  const dateButtons = calendarEl.querySelectorAll(`.${CALENDAR_DATE_CURRENT_MONTH_CLASS}`);
+  dateButtons.forEach(button => {
+    const buttonDate = parseDateString(button.dataset.value);
+    if (isDateWithinMinAndMax(buttonDate, withinRangeStartDate, withinRangeEndDate)) {
+      button.classList.add(CALENDAR_DATE_WITHIN_RANGE_CLASS);
+    } else {
+      button.classList.remove(CALENDAR_DATE_WITHIN_RANGE_CLASS);
+    }
+  });
+};
+
+// #endregion Calendar Date Event Handling
+
+// #region Calendar Month Event Handling
+
+/**
+ * Adjust the month and display the month selection screen if needed.
+ *
+ * @param {function} adjustMonthFn function that returns the adjusted month
+ */
+const adjustMonthSelectionScreen = adjustMonthFn => event => {
+  const monthEl = event.target;
+  const selectedMonth = parseInt(monthEl.dataset.value, 10);
+  const {
+    calendarEl,
+    calendarDate,
+    minDate,
+    maxDate
+  } = getDatePickerContext(monthEl);
+  const currentDate = setMonth(calendarDate, selectedMonth);
+  let adjustedMonth = adjustMonthFn(selectedMonth);
+  adjustedMonth = Math.max(0, Math.min(11, adjustedMonth));
+  const date = setMonth(calendarDate, adjustedMonth);
+  const cappedDate = keepDateBetweenMinAndMax(date, minDate, maxDate);
+  if (!isSameMonth(currentDate, cappedDate)) {
+    const newCalendar = displayMonthSelection(calendarEl, cappedDate.getMonth());
+    newCalendar.querySelector(CALENDAR_MONTH_FOCUSED).focus();
+  }
+  event.preventDefault();
+};
+
+/**
+ * Navigate back three months and display the month selection screen.
+ *
+ * @param {KeyboardEvent} event the keydown event
+ */
+const handleUpFromMonth = adjustMonthSelectionScreen(month => month - 3);
+
+/**
+ * Navigate forward three months and display the month selection screen.
+ *
+ * @param {KeyboardEvent} event the keydown event
+ */
+const handleDownFromMonth = adjustMonthSelectionScreen(month => month + 3);
+
+/**
+ * Navigate back one month and display the month selection screen.
+ *
+ * @param {KeyboardEvent} event the keydown event
+ */
+const handleLeftFromMonth = adjustMonthSelectionScreen(month => month - 1);
+
+/**
+ * Navigate forward one month and display the month selection screen.
+ *
+ * @param {KeyboardEvent} event the keydown event
+ */
+const handleRightFromMonth = adjustMonthSelectionScreen(month => month + 1);
+
+/**
+ * Navigate to the start of the row of months and display the month selection screen.
+ *
+ * @param {KeyboardEvent} event the keydown event
+ */
+const handleHomeFromMonth = adjustMonthSelectionScreen(month => month - month % 3);
+
+/**
+ * Navigate to the end of the row of months and display the month selection screen.
+ *
+ * @param {KeyboardEvent} event the keydown event
+ */
+const handleEndFromMonth = adjustMonthSelectionScreen(month => month + 2 - month % 3);
+
+/**
+ * Navigate to the last month (December) and display the month selection screen.
+ *
+ * @param {KeyboardEvent} event the keydown event
+ */
+const handlePageDownFromMonth = adjustMonthSelectionScreen(() => 11);
+
+/**
+ * Navigate to the first month (January) and display the month selection screen.
+ *
+ * @param {KeyboardEvent} event the keydown event
+ */
+const handlePageUpFromMonth = adjustMonthSelectionScreen(() => 0);
+
+// #endregion Calendar Month Event Handling
+
+// #region Calendar Year Event Handling
+
+/**
+ * Adjust the year and display the year selection screen if needed.
+ *
+ * @param {function} adjustYearFn function that returns the adjusted year
+ */
+const adjustYearSelectionScreen = adjustYearFn => event => {
+  const yearEl = event.target;
+  const selectedYear = parseInt(yearEl.dataset.value, 10);
+  const {
+    calendarEl,
+    calendarDate,
+    minDate,
+    maxDate
+  } = getDatePickerContext(yearEl);
+  const currentDate = setYear(calendarDate, selectedYear);
+  let adjustedYear = adjustYearFn(selectedYear);
+  adjustedYear = Math.max(0, adjustedYear);
+  const date = setYear(calendarDate, adjustedYear);
+  const cappedDate = keepDateBetweenMinAndMax(date, minDate, maxDate);
+  if (!isSameYear(currentDate, cappedDate)) {
+    const newCalendar = displayYearSelection(calendarEl, cappedDate.getFullYear());
+    newCalendar.querySelector(CALENDAR_YEAR_FOCUSED).focus();
+  }
+  event.preventDefault();
+};
+
+/**
+ * Navigate back three years and display the year selection screen.
+ *
+ * @param {KeyboardEvent} event the keydown event
+ */
+const handleUpFromYear = adjustYearSelectionScreen(year => year - 3);
+
+/**
+ * Navigate forward three years and display the year selection screen.
+ *
+ * @param {KeyboardEvent} event the keydown event
+ */
+const handleDownFromYear = adjustYearSelectionScreen(year => year + 3);
+
+/**
+ * Navigate back one year and display the year selection screen.
+ *
+ * @param {KeyboardEvent} event the keydown event
+ */
+const handleLeftFromYear = adjustYearSelectionScreen(year => year - 1);
+
+/**
+ * Navigate forward one year and display the year selection screen.
+ *
+ * @param {KeyboardEvent} event the keydown event
+ */
+const handleRightFromYear = adjustYearSelectionScreen(year => year + 1);
+
+/**
+ * Navigate to the start of the row of years and display the year selection screen.
+ *
+ * @param {KeyboardEvent} event the keydown event
+ */
+const handleHomeFromYear = adjustYearSelectionScreen(year => year - year % 3);
+
+/**
+ * Navigate to the end of the row of years and display the year selection screen.
+ *
+ * @param {KeyboardEvent} event the keydown event
+ */
+const handleEndFromYear = adjustYearSelectionScreen(year => year + 2 - year % 3);
+
+/**
+ * Navigate to back 12 years and display the year selection screen.
+ *
+ * @param {KeyboardEvent} event the keydown event
+ */
+const handlePageUpFromYear = adjustYearSelectionScreen(year => year - YEAR_CHUNK);
+
+/**
+ * Navigate forward 12 years and display the year selection screen.
+ *
+ * @param {KeyboardEvent} event the keydown event
+ */
+const handlePageDownFromYear = adjustYearSelectionScreen(year => year + YEAR_CHUNK);
+
+// #endregion Calendar Year Event Handling
+
+// #region Focus Handling Event Handling
+
+const tabHandler = focusable => {
+  const getFocusableContext = el => {
+    const {
+      calendarEl
+    } = getDatePickerContext(el);
+    const focusableElements = select(focusable, calendarEl);
+    const firstTabIndex = 0;
+    const lastTabIndex = focusableElements.length - 1;
+    const firstTabStop = focusableElements[firstTabIndex];
+    const lastTabStop = focusableElements[lastTabIndex];
+    const focusIndex = focusableElements.indexOf(activeElement());
+    const isLastTab = focusIndex === lastTabIndex;
+    const isFirstTab = focusIndex === firstTabIndex;
+    const isNotFound = focusIndex === -1;
+    return {
+      focusableElements,
+      isNotFound,
+      firstTabStop,
+      isFirstTab,
+      lastTabStop,
+      isLastTab
+    };
+  };
+  return {
+    tabAhead(event) {
+      const {
+        firstTabStop,
+        isLastTab,
+        isNotFound
+      } = getFocusableContext(event.target);
+      if (isLastTab || isNotFound) {
+        event.preventDefault();
+        firstTabStop.focus();
+      }
+    },
+    tabBack(event) {
+      const {
+        lastTabStop,
+        isFirstTab,
+        isNotFound
+      } = getFocusableContext(event.target);
+      if (isFirstTab || isNotFound) {
+        event.preventDefault();
+        lastTabStop.focus();
+      }
+    }
+  };
+};
+const datePickerTabEventHandler = tabHandler(DATE_PICKER_FOCUSABLE);
+const monthPickerTabEventHandler = tabHandler(MONTH_PICKER_FOCUSABLE);
+const yearPickerTabEventHandler = tabHandler(YEAR_PICKER_FOCUSABLE);
+
+// #endregion Focus Handling Event Handling
+
+// #region Date Picker Event Delegation Registration / Component
+
+const datePickerEvents = {
+  [CLICK]: {
+    [DATE_PICKER_BUTTON]() {
+      toggleCalendar(this);
+    },
+    [CALENDAR_DATE]() {
+      selectDate(this);
+    },
+    [CALENDAR_MONTH]() {
+      selectMonth(this);
+    },
+    [CALENDAR_YEAR]() {
+      selectYear(this);
+    },
+    [CALENDAR_PREVIOUS_MONTH]() {
+      displayPreviousMonth(this);
+    },
+    [CALENDAR_NEXT_MONTH]() {
+      displayNextMonth(this);
+    },
+    [CALENDAR_PREVIOUS_YEAR]() {
+      displayPreviousYear(this);
+    },
+    [CALENDAR_NEXT_YEAR]() {
+      displayNextYear(this);
+    },
+    [CALENDAR_PREVIOUS_YEAR_CHUNK]() {
+      displayPreviousYearChunk(this);
+    },
+    [CALENDAR_NEXT_YEAR_CHUNK]() {
+      displayNextYearChunk(this);
+    },
+    [CALENDAR_MONTH_SELECTION]() {
+      const newCalendar = displayMonthSelection(this);
+      newCalendar.querySelector(CALENDAR_MONTH_FOCUSED).focus();
+    },
+    [CALENDAR_YEAR_SELECTION]() {
+      const newCalendar = displayYearSelection(this);
+      newCalendar.querySelector(CALENDAR_YEAR_FOCUSED).focus();
+    }
+  },
+  keyup: {
+    [DATE_PICKER_CALENDAR](event) {
+      const keydown = this.dataset.keydownKeyCode;
+      if (`${event.keyCode}` !== keydown) {
+        event.preventDefault();
+      }
+    }
+  },
+  keydown: {
+    [DATE_PICKER_EXTERNAL_INPUT](event) {
+      if (event.keyCode === ENTER_KEYCODE) {
+        validateDateInput(this);
+      }
+    },
+    [CALENDAR_DATE]: keymap({
+      Up: handleUpFromDate,
+      ArrowUp: handleUpFromDate,
+      Down: handleDownFromDate,
+      ArrowDown: handleDownFromDate,
+      Left: handleLeftFromDate,
+      ArrowLeft: handleLeftFromDate,
+      Right: handleRightFromDate,
+      ArrowRight: handleRightFromDate,
+      Home: handleHomeFromDate,
+      End: handleEndFromDate,
+      PageDown: handlePageDownFromDate,
+      PageUp: handlePageUpFromDate,
+      "Shift+PageDown": handleShiftPageDownFromDate,
+      "Shift+PageUp": handleShiftPageUpFromDate,
+      Tab: datePickerTabEventHandler.tabAhead
+    }),
+    [CALENDAR_DATE_PICKER]: keymap({
+      Tab: datePickerTabEventHandler.tabAhead,
+      "Shift+Tab": datePickerTabEventHandler.tabBack
+    }),
+    [CALENDAR_MONTH]: keymap({
+      Up: handleUpFromMonth,
+      ArrowUp: handleUpFromMonth,
+      Down: handleDownFromMonth,
+      ArrowDown: handleDownFromMonth,
+      Left: handleLeftFromMonth,
+      ArrowLeft: handleLeftFromMonth,
+      Right: handleRightFromMonth,
+      ArrowRight: handleRightFromMonth,
+      Home: handleHomeFromMonth,
+      End: handleEndFromMonth,
+      PageDown: handlePageDownFromMonth,
+      PageUp: handlePageUpFromMonth
+    }),
+    [CALENDAR_MONTH_PICKER]: keymap({
+      Tab: monthPickerTabEventHandler.tabAhead,
+      "Shift+Tab": monthPickerTabEventHandler.tabBack
+    }),
+    [CALENDAR_YEAR]: keymap({
+      Up: handleUpFromYear,
+      ArrowUp: handleUpFromYear,
+      Down: handleDownFromYear,
+      ArrowDown: handleDownFromYear,
+      Left: handleLeftFromYear,
+      ArrowLeft: handleLeftFromYear,
+      Right: handleRightFromYear,
+      ArrowRight: handleRightFromYear,
+      Home: handleHomeFromYear,
+      End: handleEndFromYear,
+      PageDown: handlePageDownFromYear,
+      PageUp: handlePageUpFromYear
+    }),
+    [CALENDAR_YEAR_PICKER]: keymap({
+      Tab: yearPickerTabEventHandler.tabAhead,
+      "Shift+Tab": yearPickerTabEventHandler.tabBack
+    }),
+    [DATE_PICKER_CALENDAR](event) {
+      this.dataset.keydownKeyCode = event.keyCode;
+    },
+    [DATE_PICKER](event) {
+      const keyMap = keymap({
+        Escape: handleEscapeFromCalendar
+      });
+      keyMap(event);
+    }
+  },
+  focusout: {
+    [DATE_PICKER_EXTERNAL_INPUT]() {
+      validateDateInput(this);
+    },
+    [DATE_PICKER](event) {
+      if (!this.contains(event.relatedTarget)) {
+        hideCalendar(this);
+      }
+    }
+  },
+  input: {
+    [DATE_PICKER_EXTERNAL_INPUT]() {
+      reconcileInputValues(this);
+      updateCalendarIfVisible(this);
+    }
+  }
+};
+if (!isIosDevice()) {
+  datePickerEvents.mouseover = {
+    [CALENDAR_DATE_CURRENT_MONTH]() {
+      handleMouseoverFromDate(this);
+    }
+  };
+}
+const datePicker = behavior(datePickerEvents, {
+  init(root) {
+    selectOrMatches(DATE_PICKER, root).forEach(datePickerEl => {
+      enhanceDatePicker(datePickerEl);
+    });
+  },
+  getDatePickerContext,
+  disable,
+  ariaDisable,
+  enable,
+  isDateInputInvalid,
+  setCalendarValue,
+  validateDateInput,
+  renderCalendar,
+  updateCalendarIfVisible
+});
+
+// #endregion Date Picker Event Delegation Registration / Component
+
+module.exports = datePicker;
+
+},{"../../uswds-core/src/js/config":35,"../../uswds-core/src/js/events":36,"../../uswds-core/src/js/utils/active-element":39,"../../uswds-core/src/js/utils/behavior":40,"../../uswds-core/src/js/utils/is-ios-device":44,"../../uswds-core/src/js/utils/sanitizer":45,"../../uswds-core/src/js/utils/select":48,"../../uswds-core/src/js/utils/select-or-matches":47,"receptor/keymap":10}],20:[function(require,module,exports){
+"use strict";
+
+const behavior = require("../../uswds-core/src/js/utils/behavior");
+const select = require("../../uswds-core/src/js/utils/select");
+const selectOrMatches = require("../../uswds-core/src/js/utils/select-or-matches");
+const {
+  prefix: PREFIX
+} = require("../../uswds-core/src/js/config");
+const {
+  getDatePickerContext,
+  isDateInputInvalid,
+  updateCalendarIfVisible
+} = require("../../usa-date-picker/src/index");
+const DATE_PICKER_CLASS = `${PREFIX}-date-picker`;
+const DATE_RANGE_PICKER_CLASS = `${PREFIX}-date-range-picker`;
+const DATE_RANGE_PICKER_RANGE_START_CLASS = `${DATE_RANGE_PICKER_CLASS}__range-start`;
+const DATE_RANGE_PICKER_RANGE_END_CLASS = `${DATE_RANGE_PICKER_CLASS}__range-end`;
+const DATE_PICKER = `.${DATE_PICKER_CLASS}`;
+const DATE_RANGE_PICKER = `.${DATE_RANGE_PICKER_CLASS}`;
+const DATE_RANGE_PICKER_RANGE_START = `.${DATE_RANGE_PICKER_RANGE_START_CLASS}`;
+const DATE_RANGE_PICKER_RANGE_END = `.${DATE_RANGE_PICKER_RANGE_END_CLASS}`;
+const DEFAULT_MIN_DATE = "0000-01-01";
+
+/**
+ * The properties and elements within the date range picker.
+ * @typedef {Object} DateRangePickerContext
+ * @property {HTMLElement} dateRangePickerEl
+ * @property {HTMLElement} rangeStartEl
+ * @property {HTMLElement} rangeEndEl
+ */
+
+/**
+ * Get an object of the properties and elements belonging directly to the given
+ * date picker component.
+ *
+ * @param {HTMLElement} el the element within the date picker
+ * @returns {DateRangePickerContext} elements
+ */
+const getDateRangePickerContext = el => {
+  const dateRangePickerEl = el.closest(DATE_RANGE_PICKER);
+  if (!dateRangePickerEl) {
+    throw new Error(`Element is missing outer ${DATE_RANGE_PICKER}`);
+  }
+  const rangeStartEl = dateRangePickerEl.querySelector(DATE_RANGE_PICKER_RANGE_START);
+  const rangeEndEl = dateRangePickerEl.querySelector(DATE_RANGE_PICKER_RANGE_END);
+  return {
+    dateRangePickerEl,
+    rangeStartEl,
+    rangeEndEl
+  };
+};
+
+/**
+ * handle update from range start date picker
+ *
+ * @param {HTMLElement} el an element within the date range picker
+ */
+const handleRangeStartUpdate = el => {
+  const {
+    dateRangePickerEl,
+    rangeStartEl,
+    rangeEndEl
+  } = getDateRangePickerContext(el);
+  const {
+    internalInputEl
+  } = getDatePickerContext(rangeStartEl);
+  const updatedDate = internalInputEl.value;
+  if (updatedDate && !isDateInputInvalid(internalInputEl)) {
+    rangeEndEl.dataset.minDate = updatedDate;
+    rangeEndEl.dataset.rangeDate = updatedDate;
+    rangeEndEl.dataset.defaultDate = updatedDate;
+  } else {
+    rangeEndEl.dataset.minDate = dateRangePickerEl.dataset.minDate || "";
+    rangeEndEl.dataset.rangeDate = "";
+    rangeEndEl.dataset.defaultDate = "";
+  }
+  updateCalendarIfVisible(rangeEndEl);
+};
+
+/**
+ * handle update from range start date picker
+ *
+ * @param {HTMLElement} el an element within the date range picker
+ */
+const handleRangeEndUpdate = el => {
+  const {
+    dateRangePickerEl,
+    rangeStartEl,
+    rangeEndEl
+  } = getDateRangePickerContext(el);
+  const {
+    internalInputEl
+  } = getDatePickerContext(rangeEndEl);
+  const updatedDate = internalInputEl.value;
+  if (updatedDate && !isDateInputInvalid(internalInputEl)) {
+    rangeStartEl.dataset.maxDate = updatedDate;
+    rangeStartEl.dataset.rangeDate = updatedDate;
+    rangeStartEl.dataset.defaultDate = updatedDate;
+  } else {
+    rangeStartEl.dataset.maxDate = dateRangePickerEl.dataset.maxDate || "";
+    rangeStartEl.dataset.rangeDate = "";
+    rangeStartEl.dataset.defaultDate = "";
+  }
+  updateCalendarIfVisible(rangeStartEl);
+};
+
+/**
+ * Enhance an input with the date picker elements
+ *
+ * @param {HTMLElement} el The initial wrapping element of the date range picker component
+ */
+const enhanceDateRangePicker = el => {
+  const dateRangePickerEl = el.closest(DATE_RANGE_PICKER);
+  const [rangeStart, rangeEnd] = select(DATE_PICKER, dateRangePickerEl);
+  if (!rangeStart) {
+    throw new Error(`${DATE_RANGE_PICKER} is missing inner two '${DATE_PICKER}' elements`);
+  }
+  if (!rangeEnd) {
+    throw new Error(`${DATE_RANGE_PICKER} is missing second '${DATE_PICKER}' element`);
+  }
+  rangeStart.classList.add(DATE_RANGE_PICKER_RANGE_START_CLASS);
+  rangeEnd.classList.add(DATE_RANGE_PICKER_RANGE_END_CLASS);
+  if (!dateRangePickerEl.dataset.minDate) {
+    dateRangePickerEl.dataset.minDate = DEFAULT_MIN_DATE;
+  }
+  const {
+    minDate
+  } = dateRangePickerEl.dataset;
+  rangeStart.dataset.minDate = minDate;
+  rangeEnd.dataset.minDate = minDate;
+  const {
+    maxDate
+  } = dateRangePickerEl.dataset;
+  if (maxDate) {
+    rangeStart.dataset.maxDate = maxDate;
+    rangeEnd.dataset.maxDate = maxDate;
+  }
+  handleRangeStartUpdate(dateRangePickerEl);
+  handleRangeEndUpdate(dateRangePickerEl);
+};
+const dateRangePicker = behavior({
+  "input change": {
+    [DATE_RANGE_PICKER_RANGE_START]() {
+      handleRangeStartUpdate(this);
+    },
+    [DATE_RANGE_PICKER_RANGE_END]() {
+      handleRangeEndUpdate(this);
+    }
+  }
+}, {
+  init(root) {
+    selectOrMatches(DATE_RANGE_PICKER, root).forEach(dateRangePickerEl => {
+      enhanceDateRangePicker(dateRangePickerEl);
+    });
+  }
+});
+module.exports = dateRangePicker;
+
+},{"../../usa-date-picker/src/index":19,"../../uswds-core/src/js/config":35,"../../uswds-core/src/js/utils/behavior":40,"../../uswds-core/src/js/utils/select":48,"../../uswds-core/src/js/utils/select-or-matches":47}],21:[function(require,module,exports){
+"use strict";
+
+const selectOrMatches = require("../../uswds-core/src/js/utils/select-or-matches");
+const behavior = require("../../uswds-core/src/js/utils/behavior");
+const Sanitizer = require("../../uswds-core/src/js/utils/sanitizer");
+const {
+  prefix: PREFIX
+} = require("../../uswds-core/src/js/config");
+const DROPZONE_CLASS = `${PREFIX}-file-input`;
+const DROPZONE = `.${DROPZONE_CLASS}`;
+const INPUT_CLASS = `${PREFIX}-file-input__input`;
+const TARGET_CLASS = `${PREFIX}-file-input__target`;
+const INPUT = `.${INPUT_CLASS}`;
+const BOX_CLASS = `${PREFIX}-file-input__box`;
+const INSTRUCTIONS_CLASS = `${PREFIX}-file-input__instructions`;
+const PREVIEW_CLASS = `${PREFIX}-file-input__preview`;
+const PREVIEW_HEADING_CLASS = `${PREFIX}-file-input__preview-heading`;
+const DISABLED_CLASS = `${PREFIX}-file-input--disabled`;
+const CHOOSE_CLASS = `${PREFIX}-file-input__choose`;
+const ACCEPTED_FILE_MESSAGE_CLASS = `${PREFIX}-file-input__accepted-files-message`;
+const DRAG_TEXT_CLASS = `${PREFIX}-file-input__drag-text`;
+const DRAG_CLASS = `${PREFIX}-file-input--drag`;
+const LOADING_CLASS = "is-loading";
+const INVALID_FILE_CLASS = "has-invalid-file";
+const GENERIC_PREVIEW_CLASS_NAME = `${PREFIX}-file-input__preview-image`;
+const GENERIC_PREVIEW_CLASS = `${GENERIC_PREVIEW_CLASS_NAME}--generic`;
+const PDF_PREVIEW_CLASS = `${GENERIC_PREVIEW_CLASS_NAME}--pdf`;
+const WORD_PREVIEW_CLASS = `${GENERIC_PREVIEW_CLASS_NAME}--word`;
+const VIDEO_PREVIEW_CLASS = `${GENERIC_PREVIEW_CLASS_NAME}--video`;
+const EXCEL_PREVIEW_CLASS = `${GENERIC_PREVIEW_CLASS_NAME}--excel`;
+const SR_ONLY_CLASS = `${PREFIX}-sr-only`;
+const SPACER_GIF = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7";
+const DEFAULT_ERROR_LABEL_TEXT = "Error: This is not a valid file type.";
+let TYPE_IS_VALID = Boolean(true); // logic gate for change listener
+let DEFAULT_ARIA_LABEL_TEXT = "";
+let DEFAULT_FILE_STATUS_TEXT = "";
+
+/**
+ * The properties and elements within the file input.
+ * @typedef {Object} FileInputContext
+ * @property {HTMLDivElement} dropZoneEl
+ * @property {HTMLInputElement} inputEl
+ */
+
+/**
+ * Get an object of the properties and elements belonging directly to the given
+ * file input component.
+ *
+ * @param {HTMLElement} el the element within the file input
+ * @returns {FileInputContext} elements
+ */
+const getFileInputContext = el => {
+  const dropZoneEl = el.closest(DROPZONE);
+  if (!dropZoneEl) {
+    throw new Error(`Element is missing outer ${DROPZONE}`);
+  }
+  const inputEl = dropZoneEl.querySelector(INPUT);
+  return {
+    dropZoneEl,
+    inputEl
+  };
+};
+
+/**
+ * Disable the file input component
+ *
+ * @param {HTMLElement} el An element within the file input component
+ */
+const disable = el => {
+  const {
+    dropZoneEl,
+    inputEl
+  } = getFileInputContext(el);
+  inputEl.disabled = true;
+  dropZoneEl.classList.add(DISABLED_CLASS);
+};
+
+/**
+ * Set aria-disabled attribute to file input component
+ *
+ * @param {HTMLElement} el An element within the file input component
+ */
+const ariaDisable = el => {
+  const {
+    dropZoneEl
+  } = getFileInputContext(el);
+  dropZoneEl.classList.add(DISABLED_CLASS);
+};
+
+/**
+ * Enable the file input component
+ *
+ * @param {HTMLElement} el An element within the file input component
+ */
+const enable = el => {
+  const {
+    dropZoneEl,
+    inputEl
+  } = getFileInputContext(el);
+  inputEl.disabled = false;
+  dropZoneEl.classList.remove(DISABLED_CLASS);
+  dropZoneEl.removeAttribute("aria-disabled");
+};
+
+/**
+ *
+ * @param {String} s special characters
+ * @returns {String} replaces specified values
+ */
+const replaceName = s => {
+  const c = s.charCodeAt(0);
+  if (c === 32) return "-";
+  if (c >= 65 && c <= 90) return `img_${s.toLowerCase()}`;
+  return `__${("000", c.toString(16)).slice(-4)}`;
+};
+
+/**
+ * Creates an ID name for each file that strips all invalid characters.
+ * @param {String} name - name of the file added to file input (searchvalue)
+ * @returns {String} same characters as the name with invalid chars removed (newvalue)
+ */
+const makeSafeForID = name => name.replace(/[^a-z0-9]/g, replaceName);
+
+// Takes a generated safe ID and creates a unique ID.
+const createUniqueID = name => `${name}-${Math.floor(Date.now().toString() / 1000)}`;
+
+/**
+ * Determines if the singular or plural item label should be used
+ * Determination is based on the presence of the `multiple` attribute
+ *
+ * @param {HTMLInputElement} fileInputEl - The input element.
+ * @returns {HTMLDivElement} The singular or plural version of "item"
+ */
+const getItemsLabel = fileInputEl => {
+  const acceptsMultiple = fileInputEl.hasAttribute("multiple");
+  const itemsLabel = acceptsMultiple ? "files" : "file";
+  return itemsLabel;
+};
+
+/**
+ * Scaffold the file input component with a parent wrapper and
+ * Create a target area overlay for drag and drop functionality
+ *
+ * @param {HTMLInputElement} fileInputEl - The input element.
+ * @returns {HTMLDivElement} The drag and drop target area.
+ */
+const createTargetArea = fileInputEl => {
+  const fileInputParent = document.createElement("div");
+  const dropTarget = document.createElement("div");
+  const box = document.createElement("div");
+
+  // Adds class names and other attributes
+  fileInputEl.classList.remove(DROPZONE_CLASS);
+  fileInputEl.classList.add(INPUT_CLASS);
+  fileInputParent.classList.add(DROPZONE_CLASS);
+  box.classList.add(BOX_CLASS);
+  dropTarget.classList.add(TARGET_CLASS);
+
+  // Adds child elements to the DOM
+  dropTarget.prepend(box);
+  fileInputEl.parentNode.insertBefore(dropTarget, fileInputEl);
+  fileInputEl.parentNode.insertBefore(fileInputParent, dropTarget);
+  dropTarget.appendChild(fileInputEl);
+  fileInputParent.appendChild(dropTarget);
+  return dropTarget;
+};
+
+/**
+ * Build the visible element with default interaction instructions.
+ *
+ * @param {HTMLInputElement} fileInputEl - The input element.
+ * @returns {HTMLDivElement} The container for visible interaction instructions.
+ */
+const createVisibleInstructions = fileInputEl => {
+  const fileInputParent = fileInputEl.closest(DROPZONE);
+  const itemsLabel = getItemsLabel(fileInputEl);
+  const instructions = document.createElement("div");
+  const dragText = `Drag ${itemsLabel} here or`;
+  const chooseText = "choose from folder";
+
+  // Create instructions text for aria-label
+  DEFAULT_ARIA_LABEL_TEXT = `${dragText} ${chooseText}`;
+
+  // Adds class names and other attributes
+  instructions.classList.add(INSTRUCTIONS_CLASS);
+  instructions.setAttribute("aria-hidden", "true");
+
+  // Add initial instructions for input usage
+  fileInputEl.setAttribute("aria-label", DEFAULT_ARIA_LABEL_TEXT);
+  instructions.innerHTML = Sanitizer.escapeHTML`<span class="${DRAG_TEXT_CLASS}">${dragText}</span> <span class="${CHOOSE_CLASS}">${chooseText}</span>`;
+
+  // Add the instructions element to the DOM
+  fileInputEl.parentNode.insertBefore(instructions, fileInputEl);
+
+  // IE11 and Edge do not support drop files on file inputs, so we've removed text that indicates that
+  if (/rv:11.0/i.test(navigator.userAgent) || /Edge\/\d./i.test(navigator.userAgent)) {
+    fileInputParent.querySelector(`.${DRAG_TEXT_CLASS}`).outerHTML = "";
+  }
+  return instructions;
+};
+
+/**
+ * Build a screen reader-only message element that contains file status updates and
+ * Create and set the default file status message
+ *
+ * @param {HTMLInputElement} fileInputEl - The input element.
+ */
+const createSROnlyStatus = fileInputEl => {
+  const statusEl = document.createElement("div");
+  const itemsLabel = getItemsLabel(fileInputEl);
+  const fileInputParent = fileInputEl.closest(DROPZONE);
+  const fileInputTarget = fileInputEl.closest(`.${TARGET_CLASS}`);
+  DEFAULT_FILE_STATUS_TEXT = `No ${itemsLabel} selected.`;
+
+  // Adds class names and other attributes
+  statusEl.classList.add(SR_ONLY_CLASS);
+  statusEl.setAttribute("aria-live", "polite");
+
+  // Add initial file status message
+  statusEl.textContent = DEFAULT_FILE_STATUS_TEXT;
+
+  // Add the status element to the DOM
+  fileInputParent.insertBefore(statusEl, fileInputTarget);
+};
+
+/**
+ * Scaffold the component with all required elements
+ *
+ * @param {HTMLInputElement} fileInputEl - The original input element.
+ */
+const enhanceFileInput = fileInputEl => {
+  const isInputDisabled = fileInputEl.hasAttribute("aria-disabled") || fileInputEl.hasAttribute("disabled");
+  const dropTarget = createTargetArea(fileInputEl);
+  const instructions = createVisibleInstructions(fileInputEl);
+  const {
+    dropZoneEl
+  } = getFileInputContext(fileInputEl);
+  if (isInputDisabled) {
+    dropZoneEl.classList.add(DISABLED_CLASS);
+  } else {
+    createSROnlyStatus(fileInputEl);
+  }
+  return {
+    instructions,
+    dropTarget
+  };
+};
+
+/**
+ * Removes image previews
+ * We want to start with a clean list every time files are added to the file input
+ *
+ * @param {HTMLDivElement} dropTarget - The drag and drop target area.
+ * @param {HTMLDivElement} instructions - The container for visible interaction instructions.
+ */
+const removeOldPreviews = (dropTarget, instructions) => {
+  const filePreviews = dropTarget.querySelectorAll(`.${PREVIEW_CLASS}`);
+  const currentPreviewHeading = dropTarget.querySelector(`.${PREVIEW_HEADING_CLASS}`);
+  const currentErrorMessage = dropTarget.querySelector(`.${ACCEPTED_FILE_MESSAGE_CLASS}`);
+
+  /**
+   * finds the parent of the passed node and removes the child
+   * @param {HTMLElement} node
+   */
+  const removeImages = node => {
+    node.parentNode.removeChild(node);
+  };
+
+  // Remove the heading above the previews
+  if (currentPreviewHeading) {
+    currentPreviewHeading.outerHTML = "";
+  }
+
+  // Remove existing error messages
+  if (currentErrorMessage) {
+    currentErrorMessage.outerHTML = "";
+    dropTarget.classList.remove(INVALID_FILE_CLASS);
+  }
+
+  // Get rid of existing previews if they exist, show instructions
+  if (filePreviews !== null) {
+    if (instructions) {
+      instructions.removeAttribute("hidden");
+    }
+    Array.prototype.forEach.call(filePreviews, removeImages);
+  }
+};
+
+/**
+ * Update the screen reader-only status message after interaction
+ *
+ * @param {HTMLDivElement} statusElement - The screen reader-only container for file status updates.
+ * @param {Object} fileNames - The selected files found in the fileList object.
+ * @param {Array} fileStore - The array of uploaded file names created from the fileNames object.
+ */
+const updateStatusMessage = (statusElement, fileNames, fileStore) => {
+  const statusEl = statusElement;
+  let statusMessage = DEFAULT_FILE_STATUS_TEXT;
+
+  // If files added, update the status message with file name(s)
+  if (fileNames.length === 1) {
+    statusMessage = `You have selected the file: ${fileStore}`;
+  } else if (fileNames.length > 1) {
+    statusMessage = `You have selected ${fileNames.length} files: ${fileStore.join(", ")}`;
+  }
+
+  // Add delay to encourage screen reader readout
+  setTimeout(() => {
+    statusEl.textContent = statusMessage;
+  }, 1000);
+};
+
+/**
+ * Show the preview heading, hide the initial instructions and
+ * Update the aria-label with new instructions text
+ *
+ * @param {HTMLInputElement} fileInputEl - The input element.
+ * @param {Object} fileNames - The selected files found in the fileList object.
+ */
+const addPreviewHeading = (fileInputEl, fileNames) => {
+  const filePreviewsHeading = document.createElement("div");
+  const dropTarget = fileInputEl.closest(`.${TARGET_CLASS}`);
+  const instructions = dropTarget.querySelector(`.${INSTRUCTIONS_CLASS}`);
+  let changeItemText = "Change file";
+  let previewHeadingText = "";
+  if (fileNames.length === 1) {
+    previewHeadingText = Sanitizer.escapeHTML`Selected file <span class="usa-file-input__choose">${changeItemText}</span>`;
+  } else if (fileNames.length > 1) {
+    changeItemText = "Change files";
+    previewHeadingText = Sanitizer.escapeHTML`${fileNames.length} files selected <span class="usa-file-input__choose">${changeItemText}</span>`;
+  }
+
+  // Hides null state content and sets preview heading
+  instructions.setAttribute("hidden", "true");
+  filePreviewsHeading.classList.add(PREVIEW_HEADING_CLASS);
+  filePreviewsHeading.innerHTML = previewHeadingText;
+  dropTarget.insertBefore(filePreviewsHeading, instructions);
+
+  // Update aria label to match the visible action text
+  fileInputEl.setAttribute("aria-label", changeItemText);
+};
+
+/** Add an error listener to the image preview to set a fallback image
+ * @param {HTMLImageElement} previewImage - The image element
+ * @param {String} fallbackClass - The CSS class of the fallback image
+ */
+const setPreviewFallback = (previewImage, fallbackClass) => {
+  previewImage.addEventListener("error", () => {
+    const localPreviewImage = previewImage; // to avoid no-param-reassign from ESLint
+    localPreviewImage.src = SPACER_GIF;
+    localPreviewImage.classList.add(fallbackClass);
+  }, {
+    once: true
+  });
+};
+
+/**
+ * When new files are applied to file input, this function generates previews
+ * and removes old ones.
+ *
+ * @param {event} e
+ * @param {HTMLInputElement} fileInputEl - The input element.
+ * @param {HTMLDivElement} instructions - The container for visible interaction instructions.
+ * @param {HTMLDivElement} dropTarget - The drag and drop target area.
+ */
+
+const handleChange = (e, fileInputEl, instructions, dropTarget) => {
+  const fileNames = e.target.files;
+  const inputParent = dropTarget.closest(`.${DROPZONE_CLASS}`);
+  const statusElement = inputParent.querySelector(`.${SR_ONLY_CLASS}`);
+  const fileStore = [];
+
+  // First, get rid of existing previews
+  removeOldPreviews(dropTarget, instructions);
+
+  // Then, iterate through files list and create previews
+  for (let i = 0; i < fileNames.length; i += 1) {
+    const reader = new FileReader();
+    const fileName = fileNames[i].name;
+    let imageId;
+
+    // Push updated file names into the store array
+    fileStore.push(fileName);
+
+    // Starts with a loading image while preview is created
+    reader.onloadstart = function createLoadingImage() {
+      imageId = createUniqueID(makeSafeForID(fileName));
+      instructions.insertAdjacentHTML("afterend", Sanitizer.escapeHTML`<div class="${PREVIEW_CLASS}" aria-hidden="true">
+          <img id="${imageId}" src="${SPACER_GIF}" alt="" class="${GENERIC_PREVIEW_CLASS_NAME} ${LOADING_CLASS}"/>${fileName}
+        <div>`);
+    };
+
+    // Not all files will be able to generate previews. In case this happens, we provide several types "generic previews" based on the file extension.
+    reader.onloadend = function createFilePreview() {
+      const previewImage = document.getElementById(imageId);
+      const fileExtension = fileName.split(".").pop();
+      if (fileExtension === "pdf") {
+        setPreviewFallback(previewImage, PDF_PREVIEW_CLASS);
+      } else if (fileExtension === "doc" || fileExtension === "docx" || fileExtension === "pages") {
+        setPreviewFallback(previewImage, WORD_PREVIEW_CLASS);
+      } else if (fileExtension === "xls" || fileExtension === "xlsx" || fileExtension === "numbers") {
+        setPreviewFallback(previewImage, EXCEL_PREVIEW_CLASS);
+      } else if (fileExtension === "mov" || fileExtension === "mp4") {
+        setPreviewFallback(previewImage, VIDEO_PREVIEW_CLASS);
+      } else {
+        setPreviewFallback(previewImage, GENERIC_PREVIEW_CLASS);
+      }
+
+      // Removes loader and displays preview
+      previewImage.classList.remove(LOADING_CLASS);
+      previewImage.src = reader.result;
+    };
+    if (fileNames[i]) {
+      reader.readAsDataURL(fileNames[i]);
+    }
+  }
+  if (fileNames.length === 0) {
+    // Reset input aria-label with default message
+    fileInputEl.setAttribute("aria-label", DEFAULT_ARIA_LABEL_TEXT);
+  } else {
+    addPreviewHeading(fileInputEl, fileNames);
+  }
+  updateStatusMessage(statusElement, fileNames, fileStore);
+};
+
+/**
+ * When using an Accept attribute, invalid files will be hidden from
+ * file browser, but they can still be dragged to the input. This
+ * function prevents them from being dragged and removes error states
+ * when correct files are added.
+ *
+ * @param {event} e
+ * @param {HTMLInputElement} fileInputEl - The input element.
+ * @param {HTMLDivElement} instructions - The container for visible interaction instructions.
+ * @param {HTMLDivElement} dropTarget - The drag and drop target area.
+ */
+const preventInvalidFiles = (e, fileInputEl, instructions, dropTarget) => {
+  const acceptedFilesAttr = fileInputEl.getAttribute("accept");
+  dropTarget.classList.remove(INVALID_FILE_CLASS);
+
+  /**
+   * We can probably move away from this once IE11 support stops, and replace
+   * with a simple es `.includes`
+   * check if element is in array
+   * check if 1 or more alphabets are in string
+   * if element is present return the position value and -1 otherwise
+   * @param {Object} file
+   * @param {String} value
+   * @returns {Boolean}
+   */
+  const isIncluded = (file, value) => {
+    let returnValue = false;
+    const pos = file.indexOf(value);
+    if (pos >= 0) {
+      returnValue = true;
+    }
+    return returnValue;
+  };
+
+  // Runs if only specific files are accepted
+  if (acceptedFilesAttr) {
+    const acceptedFiles = acceptedFilesAttr.split(",");
+    const errorMessage = document.createElement("div");
+    const userErrorText = fileInputEl.dataset.errormessage;
+    const errorMessageText = userErrorText || DEFAULT_ERROR_LABEL_TEXT;
+    errorMessage.setAttribute("aria-hidden", true);
+
+    // If multiple files are dragged, this iterates through them and look for any files that are not accepted.
+    let allFilesAllowed = true;
+    const scannedFiles = e.target.files || e.dataTransfer.files;
+    for (let i = 0; i < scannedFiles.length; i += 1) {
+      const file = scannedFiles[i];
+      if (allFilesAllowed) {
+        for (let j = 0; j < acceptedFiles.length; j += 1) {
+          const fileType = acceptedFiles[j];
+          allFilesAllowed = file.name.indexOf(fileType) > 0 || isIncluded(file.type, fileType.replace(/\*/g, ""));
+          if (allFilesAllowed) {
+            TYPE_IS_VALID = true;
+            break;
+          }
+        }
+      } else break;
+    }
+
+    // If dragged files are not accepted, this removes them from the value of the input and creates and error state
+    if (!allFilesAllowed) {
+      removeOldPreviews(dropTarget, instructions);
+      fileInputEl.value = ""; // eslint-disable-line no-param-reassign
+      errorMessage.textContent = errorMessageText;
+      dropTarget.insertBefore(errorMessage, fileInputEl);
+      const ariaLabelText = `${errorMessageText} ${DEFAULT_ARIA_LABEL_TEXT}`;
+      fileInputEl.setAttribute("aria-label", ariaLabelText);
+      errorMessage.classList.add(ACCEPTED_FILE_MESSAGE_CLASS);
+      dropTarget.classList.add(INVALID_FILE_CLASS);
+      TYPE_IS_VALID = false;
+      e.preventDefault();
+      e.stopPropagation();
+    }
+  }
+};
+
+/**
+ * 1. passes through gate for preventing invalid files
+ * 2. handles updates if file is valid
+ *
+ * @param {event} event
+ * @param {HTMLInputElement} fileInputEl - The input element.
+ * @param {HTMLDivElement} instructions - The container for visible interaction instructions.
+ * @param {HTMLDivElement} dropTarget - The drag and drop target area.
+ */
+const handleUpload = (event, fileInputEl, instructions, dropTarget) => {
+  preventInvalidFiles(event, fileInputEl, instructions, dropTarget);
+  if (TYPE_IS_VALID === true) {
+    handleChange(event, fileInputEl, instructions, dropTarget);
+  }
+};
+const fileInput = behavior({}, {
+  init(root) {
+    selectOrMatches(DROPZONE, root).forEach(fileInputEl => {
+      const {
+        instructions,
+        dropTarget
+      } = enhanceFileInput(fileInputEl);
+      dropTarget.addEventListener("dragover", function handleDragOver() {
+        this.classList.add(DRAG_CLASS);
+      }, false);
+      dropTarget.addEventListener("dragleave", function handleDragLeave() {
+        this.classList.remove(DRAG_CLASS);
+      }, false);
+      dropTarget.addEventListener("drop", function handleDrop() {
+        this.classList.remove(DRAG_CLASS);
+      }, false);
+      fileInputEl.addEventListener("change", e => handleUpload(e, fileInputEl, instructions, dropTarget), false);
+    });
+  },
+  teardown(root) {
+    selectOrMatches(INPUT, root).forEach(fileInputEl => {
+      const fileInputTopElement = fileInputEl.parentElement.parentElement;
+      fileInputTopElement.parentElement.replaceChild(fileInputEl, fileInputTopElement);
+      // eslint-disable-next-line no-param-reassign
+      fileInputEl.className = DROPZONE_CLASS;
+    });
+  },
+  getFileInputContext,
+  disable,
+  ariaDisable,
+  enable
+});
+module.exports = fileInput;
+
+},{"../../uswds-core/src/js/config":35,"../../uswds-core/src/js/utils/behavior":40,"../../uswds-core/src/js/utils/sanitizer":45,"../../uswds-core/src/js/utils/select-or-matches":47}],22:[function(require,module,exports){
+"use strict";
+
+const behavior = require("../../uswds-core/src/js/utils/behavior");
+const {
+  CLICK
+} = require("../../uswds-core/src/js/events");
+const {
+  prefix: PREFIX
+} = require("../../uswds-core/src/js/config");
+const SCOPE = `.${PREFIX}-footer--big`;
+const NAV = `${SCOPE} nav`;
+const BUTTON = `${NAV} .${PREFIX}-footer__primary-link`;
+const HIDE_MAX_WIDTH = 480;
+
+/**
+ * Expands selected footer menu panel, while collapsing others
+ */
+function showPanel() {
+  if (window.innerWidth < HIDE_MAX_WIDTH) {
+    const isOpen = this.getAttribute("aria-expanded") === "true";
+    const thisFooter = this.closest(SCOPE);
+
+    // Close all other menus
+    thisFooter.querySelectorAll(BUTTON).forEach(button => {
+      button.setAttribute("aria-expanded", false);
+    });
+    this.setAttribute("aria-expanded", !isOpen);
+  }
+}
+
+/**
+ * Swaps the <h4> element for a <button> element (and vice-versa) and sets id
+ * of menu list
+ *
+ * @param {Boolean} isMobile - If the footer is in mobile configuration
+ */
+function toggleHtmlTag(isMobile) {
+  const bigFooter = document.querySelector(SCOPE);
+  if (!bigFooter) {
+    return;
+  }
+  const primaryLinks = bigFooter.querySelectorAll(BUTTON);
+  primaryLinks.forEach(currentElement => {
+    const currentElementClasses = currentElement.getAttribute("class");
+    const preservedHtmlTag = currentElement.getAttribute("data-tag") || currentElement.tagName;
+    const newElementType = isMobile ? "button" : preservedHtmlTag;
+
+    // Create the new element
+    const newElement = document.createElement(newElementType);
+    newElement.setAttribute("class", currentElementClasses);
+    newElement.classList.toggle(`${PREFIX}-footer__primary-link--button`, isMobile);
+    newElement.textContent = currentElement.textContent;
+    if (isMobile) {
+      newElement.setAttribute("data-tag", currentElement.tagName);
+      const menuId = `${PREFIX}-footer-menu-list-${Math.floor(Math.random() * 100000)}`;
+      newElement.setAttribute("aria-controls", menuId);
+      newElement.setAttribute("aria-expanded", "false");
+      currentElement.nextElementSibling.setAttribute("id", menuId);
+      newElement.setAttribute("type", "button");
+    }
+
+    // Insert the new element and delete the old
+    currentElement.after(newElement);
+    currentElement.remove();
+  });
+}
+const resize = event => {
+  toggleHtmlTag(event.matches);
+};
+module.exports = behavior({
+  [CLICK]: {
+    [BUTTON]: showPanel
+  }
+}, {
+  // export for use elsewhere
+  HIDE_MAX_WIDTH,
+  init() {
+    toggleHtmlTag(window.innerWidth < HIDE_MAX_WIDTH);
+    this.mediaQueryList = window.matchMedia(`(max-width: ${HIDE_MAX_WIDTH - 0.1}px)`);
+    this.mediaQueryList.addListener(resize);
+  },
+  teardown() {
+    this.mediaQueryList.removeListener(resize);
+  }
+});
+
+},{"../../uswds-core/src/js/config":35,"../../uswds-core/src/js/events":36,"../../uswds-core/src/js/utils/behavior":40}],23:[function(require,module,exports){
+"use strict";
+
+const keymap = require("receptor/keymap");
+const behavior = require("../../uswds-core/src/js/utils/behavior");
+const select = require("../../uswds-core/src/js/utils/select");
+const toggle = require("../../uswds-core/src/js/utils/toggle");
+const FocusTrap = require("../../uswds-core/src/js/utils/focus-trap");
+const accordion = require("../../usa-accordion/src/index");
+const ScrollBarWidth = require("../../uswds-core/src/js/utils/scrollbar-width");
+const {
+  CLICK
+} = require("../../uswds-core/src/js/events");
+const {
+  prefix: PREFIX
+} = require("../../uswds-core/src/js/config");
+const BODY = "body";
+const HEADER = `.${PREFIX}-header`;
+const NAV = `.${PREFIX}-nav`;
+const NAV_CONTAINER = `.${PREFIX}-nav-container`;
+const NAV_PRIMARY = `.${PREFIX}-nav__primary`;
+const NAV_PRIMARY_ITEM = `.${PREFIX}-nav__primary-item`;
+const NAV_CONTROL = `button.${PREFIX}-nav__link`;
+const NAV_LINKS = `${NAV} a`;
+const NON_NAV_HIDDEN_ATTRIBUTE = `data-nav-hidden`;
+const OPENERS = `.${PREFIX}-menu-btn`;
+const CLOSE_BUTTON = `.${PREFIX}-nav__close`;
+const OVERLAY = `.${PREFIX}-overlay`;
+const CLOSERS = `${CLOSE_BUTTON}, .${PREFIX}-overlay`;
+const TOGGLES = [NAV, OVERLAY].join(", ");
+const NON_NAV_ELEMENTS = `body *:not(${HEADER}, ${NAV_CONTAINER}, ${NAV}, ${NAV} *):not([aria-hidden])`;
+const NON_NAV_HIDDEN = `[${NON_NAV_HIDDEN_ATTRIBUTE}]`;
+const ACTIVE_CLASS = "usa-js-mobile-nav--active";
+const VISIBLE_CLASS = "is-visible";
+let navigation;
+let navActive;
+let nonNavElements;
+const isActive = () => document.body.classList.contains(ACTIVE_CLASS);
+// Detect Safari
+// Note: Chrome also reports the Safari userAgent so this specifically excludes Chrome.
+const isSafari = navigator.userAgent.includes("Safari") && !navigator.userAgent.includes("Chrome");
+const SCROLLBAR_WIDTH = ScrollBarWidth();
+const INITIAL_PADDING = window.getComputedStyle(document.body).getPropertyValue("padding-right");
+const TEMPORARY_PADDING = `${parseInt(INITIAL_PADDING.replace(/px/, ""), 10) + parseInt(SCROLLBAR_WIDTH.replace(/px/, ""), 10)}px`;
+const hideNonNavItems = () => {
+  const headerParent = document.querySelector(`${HEADER}`).parentNode;
+  nonNavElements = document.querySelectorAll(NON_NAV_ELEMENTS);
+  nonNavElements.forEach(nonNavElement => {
+    if (nonNavElement !== headerParent) {
+      nonNavElement.setAttribute("aria-hidden", true);
+      nonNavElement.setAttribute(NON_NAV_HIDDEN_ATTRIBUTE, "");
+    }
+  });
+};
+const showNonNavItems = () => {
+  nonNavElements = document.querySelectorAll(NON_NAV_HIDDEN);
+  if (!nonNavElements) {
+    return;
+  }
+
+  // Remove aria-hidden from non-header elements
+  nonNavElements.forEach(nonNavElement => {
+    nonNavElement.removeAttribute("aria-hidden");
+    nonNavElement.removeAttribute(NON_NAV_HIDDEN_ATTRIBUTE);
+  });
+};
+
+// Toggle all non-header elements #3527.
+const toggleNonNavItems = active => {
+  if (active) {
+    hideNonNavItems();
+  } else {
+    showNonNavItems();
+  }
+};
+
+/**
+ * Detect Safari and add body class for a Safari-only CSS bug fix.
+ * More details in https://github.com/uswds/uswds/pull/5443
+ */
+const addSafariClass = () => {
+  if (isSafari) {
+    document.body.classList.add("is-safari");
+  }
+};
+
+/**
+ * Set the value for the --scrolltop CSS var when the mobile menu is open.
+ * This allows the CSS to lock the current scroll position in Safari
+ * when overflow-y is set to scroll.
+ * More details in https://github.com/uswds/uswds/pull/5443
+ */
+const setSafariScrollPosition = body => {
+  const currentScrollPosition = `-${window.scrollY}px`;
+  if (isSafari) {
+    body.style.setProperty("--scrolltop", currentScrollPosition);
+  }
+};
+const toggleNav = active => {
+  const {
+    body
+  } = document;
+  const safeActive = typeof active === "boolean" ? active : !isActive();
+  setSafariScrollPosition(body);
+  body.classList.toggle(ACTIVE_CLASS, safeActive);
+  select(TOGGLES).forEach(el => el.classList.toggle(VISIBLE_CLASS, safeActive));
+  navigation.focusTrap.update(safeActive);
+  const closeButton = body.querySelector(CLOSE_BUTTON);
+  const menuButton = document.querySelector(OPENERS);
+  body.style.paddingRight = body.style.paddingRight === TEMPORARY_PADDING ? INITIAL_PADDING : TEMPORARY_PADDING;
+  toggleNonNavItems(safeActive);
+  if (safeActive && closeButton) {
+    // The mobile nav was just activated. Focus on the close button, which is
+    // just before all the nav elements in the tab order.
+    closeButton.focus();
+  } else if (!safeActive && menuButton && getComputedStyle(menuButton).display !== "none") {
+    // The mobile nav was just deactivated. We don't want the focus to
+    // disappear into the void, so focus on the menu button if it's
+    // visible (this may have been what the user was just focused on,
+    // if they triggered the mobile nav by mistake).
+    menuButton.focus();
+  }
+  return safeActive;
+};
+const resize = () => {
+  const closer = document.body.querySelector(CLOSE_BUTTON);
+  if (isActive() && closer && closer.getBoundingClientRect().width === 0) {
+    // When the mobile nav is active, and the close box isn't visible,
+    // we know the user's viewport has been resized to be larger.
+    // Let's make the page state consistent by deactivating the mobile nav.
+    navigation.toggleNav.call(closer, false);
+  }
+};
+const onMenuClose = () => navigation.toggleNav.call(navigation, false);
+const hideActiveNavDropdown = () => {
+  if (!navActive) {
+    return;
+  }
+  toggle(navActive, false);
+  navActive = null;
+};
+const focusNavButton = event => {
+  const parentNavItem = event.target.closest(NAV_PRIMARY_ITEM);
+
+  // Only shift focus if within dropdown
+  if (!event.target.matches(NAV_CONTROL)) {
+    const navControl = parentNavItem.querySelector(NAV_CONTROL);
+    if (navControl) {
+      navControl.focus();
+    }
+  }
+};
+const handleEscape = event => {
+  hideActiveNavDropdown();
+  focusNavButton(event);
+};
+navigation = behavior({
+  [CLICK]: {
+    [NAV_CONTROL]() {
+      // If another nav is open, close it
+      if (navActive !== this) {
+        hideActiveNavDropdown();
+      }
+      // store a reference to the last clicked nav link element, so we
+      // can hide the dropdown if another element on the page is clicked
+      if (!navActive) {
+        navActive = this;
+        toggle(navActive, true);
+      }
+
+      // Do this so the event handler on the body doesn't fire
+      return false;
+    },
+    [BODY]: hideActiveNavDropdown,
+    [OPENERS]: toggleNav,
+    [CLOSERS]: toggleNav,
+    [NAV_LINKS]() {
+      // A navigation link has been clicked! We want to collapse any
+      // hierarchical navigation UI it's a part of, so that the user
+      // can focus on whatever they've just selected.
+
+      // Some navigation links are inside accordions; when they're
+      // clicked, we want to collapse those accordions.
+      const acc = this.closest(accordion.ACCORDION);
+      if (acc) {
+        accordion.getButtons(acc).forEach(btn => accordion.hide(btn));
+      }
+
+      // If the mobile navigation menu is active, we want to hide it.
+      if (isActive()) {
+        navigation.toggleNav.call(navigation, false);
+      }
+    }
+  },
+  keydown: {
+    [NAV_PRIMARY]: keymap({
+      Escape: handleEscape
+    })
+  },
+  focusout: {
+    [NAV_PRIMARY](event) {
+      const nav = event.target.closest(NAV_PRIMARY);
+      if (!nav.contains(event.relatedTarget)) {
+        hideActiveNavDropdown();
+      }
+    }
+  }
+}, {
+  init(root) {
+    const trapContainer = root.matches(NAV) ? root : root.querySelector(NAV);
+    if (trapContainer) {
+      navigation.focusTrap = FocusTrap(trapContainer, {
+        Escape: onMenuClose
+      });
+    }
+    addSafariClass();
+    resize();
+    window.addEventListener("resize", resize, false);
+  },
+  teardown() {
+    window.removeEventListener("resize", resize, false);
+    navActive = false;
+  },
+  focusTrap: null,
+  toggleNav
+});
+module.exports = navigation;
+
+},{"../../usa-accordion/src/index":14,"../../uswds-core/src/js/config":35,"../../uswds-core/src/js/events":36,"../../uswds-core/src/js/utils/behavior":40,"../../uswds-core/src/js/utils/focus-trap":42,"../../uswds-core/src/js/utils/scrollbar-width":46,"../../uswds-core/src/js/utils/select":48,"../../uswds-core/src/js/utils/toggle":51,"receptor/keymap":10}],24:[function(require,module,exports){
+"use strict";
+
+const once = require("receptor/once");
+const keymap = require("receptor/keymap");
+const selectOrMatches = require("../../uswds-core/src/js/utils/select-or-matches");
+const behavior = require("../../uswds-core/src/js/utils/behavior");
+const {
+  prefix: PREFIX
+} = require("../../uswds-core/src/js/config");
+const {
+  CLICK
+} = require("../../uswds-core/src/js/events");
+const Sanitizer = require("../../uswds-core/src/js/utils/sanitizer");
+const CURRENT_CLASS = `${PREFIX}-current`;
+const IN_PAGE_NAV_HEADINGS = "h2 h3";
+const IN_PAGE_NAV_VALID_HEADINGS = ["h1", "h2", "h3", "h4", "h5", "h6"];
+const IN_PAGE_NAV_TITLE_TEXT = "On this page";
+const IN_PAGE_NAV_TITLE_HEADING_LEVEL = "h4";
+const IN_PAGE_NAV_SCROLL_OFFSET = 0;
+const IN_PAGE_NAV_ROOT_MARGIN = "0px 0px 0px 0px";
+const IN_PAGE_NAV_THRESHOLD = "1";
+const IN_PAGE_NAV_CLASS = `${PREFIX}-in-page-nav`;
+const IN_PAGE_NAV_ANCHOR_CLASS = `${PREFIX}-anchor`;
+const IN_PAGE_NAV_NAV_CLASS = `${IN_PAGE_NAV_CLASS}__nav`;
+const IN_PAGE_NAV_LIST_CLASS = `${IN_PAGE_NAV_CLASS}__list`;
+const IN_PAGE_NAV_ITEM_CLASS = `${IN_PAGE_NAV_CLASS}__item`;
+const IN_PAGE_NAV_PRIMARY_ITEM_CLASS = `${IN_PAGE_NAV_ITEM_CLASS}--primary`;
+const IN_PAGE_NAV_LINK_CLASS = `${IN_PAGE_NAV_CLASS}__link`;
+const IN_PAGE_NAV_TITLE_CLASS = `${IN_PAGE_NAV_CLASS}__heading`;
+const MAIN_ELEMENT = "main";
+
+/**
+ * Set the active link state for the currently observed section
+ *
+ * @param {HTMLElement} el An element within the in-page nav component
+ */
+const setActive = el => {
+  const allLinks = document.querySelectorAll(`.${IN_PAGE_NAV_LINK_CLASS}`);
+  el.map(i => {
+    if (i.isIntersecting === true && i.intersectionRatio >= 1) {
+      allLinks.forEach(link => link.classList.remove(CURRENT_CLASS));
+      document.querySelector(`a[href="#${i.target.id}"]`).classList.add(CURRENT_CLASS);
+      return true;
+    }
+    return false;
+  });
+};
+
+/**
+ * Return an array of the designated heading types found in the designated content region.
+ * Throw an error if an invalid header element is designated.
+ *
+ * @param {HTMLElement} selectedContentRegion The content region the component should pull headers from
+ * @param {String} selectedHeadingTypes The list of heading types that should be included in the nav list
+ *
+ * @return {Array} - An array of designated heading types from the designated content region
+ */
+const createSectionHeadingsArray = (selectedContentRegion, selectedHeadingTypes) => {
+  // Convert designated headings list to an array
+  const selectedHeadingTypesArray = selectedHeadingTypes.indexOf(" ") ? selectedHeadingTypes.split(" ") : selectedHeadingTypes;
+  const contentRegion = document.querySelector(selectedContentRegion);
+  selectedHeadingTypesArray.forEach(headingType => {
+    if (!IN_PAGE_NAV_VALID_HEADINGS.includes(headingType)) {
+      throw new Error(`In-page navigation: data-heading-elements attribute defined with an invalid heading type: "${headingType}".
+        Define the attribute with one or more of the following: "${IN_PAGE_NAV_VALID_HEADINGS}".
+        Do not use commas or other punctuation in the attribute definition.`);
+    }
+  });
+  const sectionHeadingsArray = Array.from(contentRegion.querySelectorAll(selectedHeadingTypesArray));
+  return sectionHeadingsArray;
+};
+
+/**
+ * Return an array of the visible headings from sectionHeadingsArray.
+ * This function removes headings that are hidden with display:none or visibility:none style rules.
+ * These items will be added to the component nav list.
+ *
+ * @param {HTMLElement} selectedContentRegion The content region the component should pull headers from
+ * @param {String} selectedHeadingTypes The list of heading types that should be included in the nav list
+ *
+ * @return {Array} - An array of visible headings from the designated content region
+ */
+const getVisibleSectionHeadings = (selectedContentRegion, selectedHeadingTypes) => {
+  const sectionHeadings = createSectionHeadingsArray(selectedContentRegion, selectedHeadingTypes);
+
+  // Find all headings with hidden styling and remove them from the array
+  const visibleSectionHeadings = sectionHeadings.filter(heading => {
+    const headingStyle = window.getComputedStyle(heading);
+    const visibleHeading = headingStyle.getPropertyValue("display") !== "none" && headingStyle.getPropertyValue("visibility") !== "hidden";
+    return visibleHeading;
+  });
+  return visibleSectionHeadings;
+};
+
+/**
+ * Return the highest-level header tag included in the link list
+ *
+ * @param {HTMLElement} sectionHeadings The array of headings selected for inclusion in the link list
+ *
+ * @return {tagName} - The tag name for the highest level of header in the link list
+ */
+
+const getTopLevelHeading = sectionHeadings => {
+  const topHeading = sectionHeadings[0].tagName.toLowerCase();
+  return topHeading;
+};
+
+/**
+ * Return a node list of section anchor tags
+ *
+ * @return {HTMLElement[]} - An array of DOM nodes
+ */
+const getSectionAnchors = () => {
+  const sectionAnchors = document.querySelectorAll(`.${IN_PAGE_NAV_ANCHOR_CLASS}`);
+  return sectionAnchors;
+};
+
+/**
+ * Generates a unique ID for the given heading element.
+ *
+ * @param {HTMLHeadingElement} heading
+ *
+ * @return {string} - Unique ID
+ */
+const getHeadingId = heading => {
+  const baseId = heading.textContent.toLowerCase()
+  // Replace non-alphanumeric characters with dashes
+  .replace(/[^a-z\d]/g, "-")
+  // Replace a sequence of two or more dashes with a single dash
+  .replace(/-{2,}/g, "-")
+  // Trim leading or trailing dash (there should only ever be one)
+  .replace(/^-|-$/g, "");
+  let id;
+  let suffix = 0;
+  do {
+    id = baseId;
+
+    // To avoid conflicts with existing IDs on the page, loop and append an
+    // incremented suffix until a unique ID is found.
+    suffix += 1;
+    if (suffix > 1) {
+      id += `-${suffix}`;
+    }
+  } while (document.getElementById(id));
+  return id;
+};
+
+/**
+ * Return a section id/anchor hash without the number sign
+ *
+ * @return {String} - Id value with the number sign removed
+ */
+const getSectionId = value => {
+  let id;
+
+  // Check if value is an event or element and get the cleaned up id
+  if (value && value.nodeType === 1) {
+    id = value.getAttribute("href").replace("#", "");
+  } else {
+    id = value.target.hash.replace("#", "");
+  }
+  return id;
+};
+
+/**
+ * Scroll smoothly to a section based on the passed in element
+ *
+ * @param {HTMLElement} - Id value with the number sign removed
+ */
+const handleScrollToSection = el => {
+  const inPageNavEl = document.querySelector(`.${IN_PAGE_NAV_CLASS}`);
+  const inPageNavScrollOffset = inPageNavEl.dataset.scrollOffset || IN_PAGE_NAV_SCROLL_OFFSET;
+  window.scroll({
+    behavior: "smooth",
+    top: el.offsetTop - inPageNavScrollOffset,
+    block: "start"
+  });
+  if (window.location.hash.slice(1) !== el.id) {
+    window.history.pushState(null, "", `#${el.id}`);
+  }
+};
+
+/**
+ * Scrolls the page to the section corresponding to the current hash fragment, if one exists.
+ */
+const scrollToCurrentSection = () => {
+  const hashFragment = window.location.hash.slice(1);
+  if (hashFragment) {
+    const anchorTag = document.getElementById(hashFragment);
+    if (anchorTag) {
+      handleScrollToSection(anchorTag);
+    }
+  }
+};
+
+/**
+ * Create the in-page navigation component
+ *
+ * @param {HTMLElement} inPageNavEl The in-page nav element
+ */
+const createInPageNav = inPageNavEl => {
+  const inPageNavTitleText = Sanitizer.escapeHTML`${inPageNavEl.dataset.titleText || IN_PAGE_NAV_TITLE_TEXT}`;
+  const inPageNavTitleHeadingLevel = Sanitizer.escapeHTML`${inPageNavEl.dataset.titleHeadingLevel || IN_PAGE_NAV_TITLE_HEADING_LEVEL}`;
+  const inPageNavRootMargin = Sanitizer.escapeHTML`${inPageNavEl.dataset.rootMargin || IN_PAGE_NAV_ROOT_MARGIN}`;
+  const inPageNavThreshold = Sanitizer.escapeHTML`${inPageNavEl.dataset.threshold || IN_PAGE_NAV_THRESHOLD}`;
+  const inPageNavContentSelector = Sanitizer.escapeHTML`${inPageNavEl.dataset.mainContentSelector || MAIN_ELEMENT}`;
+  const inPageNavHeadingSelector = Sanitizer.escapeHTML`${inPageNavEl.dataset.headingElements || IN_PAGE_NAV_HEADINGS}`;
+  const options = {
+    root: null,
+    rootMargin: inPageNavRootMargin,
+    threshold: [inPageNavThreshold]
+  };
+  const sectionHeadings = getVisibleSectionHeadings(inPageNavContentSelector, inPageNavHeadingSelector);
+  const inPageNav = document.createElement("nav");
+  inPageNav.setAttribute("aria-label", inPageNavTitleText);
+  inPageNav.classList.add(IN_PAGE_NAV_NAV_CLASS);
+  const inPageNavTitle = document.createElement(inPageNavTitleHeadingLevel);
+  inPageNavTitle.classList.add(IN_PAGE_NAV_TITLE_CLASS);
+  inPageNavTitle.setAttribute("tabindex", "0");
+  inPageNavTitle.textContent = inPageNavTitleText;
+  inPageNav.appendChild(inPageNavTitle);
+  const inPageNavList = document.createElement("ul");
+  inPageNavList.classList.add(IN_PAGE_NAV_LIST_CLASS);
+  inPageNav.appendChild(inPageNavList);
+  sectionHeadings.forEach(el => {
+    const listItem = document.createElement("li");
+    const navLinks = document.createElement("a");
+    const anchorTag = document.createElement("a");
+    const textContentOfLink = el.textContent;
+    const tag = el.tagName.toLowerCase();
+    const topHeadingLevel = getTopLevelHeading(sectionHeadings);
+    const headingId = getHeadingId(el);
+    listItem.classList.add(IN_PAGE_NAV_ITEM_CLASS);
+    if (tag === topHeadingLevel) {
+      listItem.classList.add(IN_PAGE_NAV_PRIMARY_ITEM_CLASS);
+    }
+    navLinks.setAttribute("href", `#${headingId}`);
+    navLinks.setAttribute("class", IN_PAGE_NAV_LINK_CLASS);
+    navLinks.textContent = textContentOfLink;
+    anchorTag.setAttribute("id", headingId);
+    anchorTag.setAttribute("class", IN_PAGE_NAV_ANCHOR_CLASS);
+    el.insertAdjacentElement("afterbegin", anchorTag);
+    inPageNavList.appendChild(listItem);
+    listItem.appendChild(navLinks);
+  });
+  inPageNavEl.appendChild(inPageNav);
+  const anchorTags = getSectionAnchors();
+  const observeSections = new window.IntersectionObserver(setActive, options);
+  anchorTags.forEach(tag => {
+    observeSections.observe(tag);
+  });
+};
+
+/**
+ * Handle click from link
+ *
+ * @param {HTMLElement} el An element within the in-page nav component
+ */
+const handleClickFromLink = el => {
+  const elementToScrollTo = document.getElementById(el.hash.slice(1));
+  handleScrollToSection(elementToScrollTo);
+};
+
+/**
+ * Handle the enter event from a link within the in-page nav component
+ *
+ * @param {KeyboardEvent} event An event within the in-page nav component
+ */
+const handleEnterFromLink = event => {
+  const id = getSectionId(event);
+  const targetAnchor = document.getElementById(id);
+  const target = targetAnchor.parentElement;
+  if (target) {
+    target.setAttribute("tabindex", 0);
+    target.focus();
+    target.addEventListener("blur", once(() => {
+      target.setAttribute("tabindex", -1);
+    }));
+  } else {
+    // throw an error?
+  }
+  handleScrollToSection(targetAnchor);
+};
+const inPageNavigation = behavior({
+  [CLICK]: {
+    [`.${IN_PAGE_NAV_LINK_CLASS}`](event) {
+      event.preventDefault();
+      if (this.disabled) return;
+      handleClickFromLink(this);
+    }
+  },
+  keydown: {
+    [`.${IN_PAGE_NAV_LINK_CLASS}`]: keymap({
+      Enter: handleEnterFromLink
+    })
+  }
+}, {
+  init(root) {
+    selectOrMatches(`.${IN_PAGE_NAV_CLASS}`, root).forEach(inPageNavEl => {
+      createInPageNav(inPageNavEl);
+      scrollToCurrentSection();
+    });
+  }
+});
+module.exports = inPageNavigation;
+
+},{"../../uswds-core/src/js/config":35,"../../uswds-core/src/js/events":36,"../../uswds-core/src/js/utils/behavior":40,"../../uswds-core/src/js/utils/sanitizer":45,"../../uswds-core/src/js/utils/select-or-matches":47,"receptor/keymap":10,"receptor/once":11}],25:[function(require,module,exports){
+"use strict";
+
+const selectOrMatches = require("../../uswds-core/src/js/utils/select-or-matches");
+const behavior = require("../../uswds-core/src/js/utils/behavior");
+const {
+  prefix: PREFIX
+} = require("../../uswds-core/src/js/config");
+const MASKED_CLASS = `${PREFIX}-masked`;
+const MASKED = `.${MASKED_CLASS}`;
+const MASK = `${PREFIX}-input-mask`;
+const MASK_CONTENT = `${MASK}--content`;
+const PLACEHOLDER = "placeholder";
+
+// User defined Values
+const maskedNumber = "_#dDmMyY9";
+const maskedLetter = "A";
+
+// replaces each masked input with a shell containing the input and it's mask.
+const createMaskedInputShell = input => {
+  const placeholder = input.getAttribute(`${PLACEHOLDER}`);
+  if (placeholder) {
+    input.setAttribute("maxlength", placeholder.length);
+    input.setAttribute("data-placeholder", placeholder);
+    input.removeAttribute(`${PLACEHOLDER}`);
+  } else {
+    return;
+  }
+  const shell = document.createElement("span");
+  shell.classList.add(MASK);
+  shell.setAttribute("data-mask", placeholder);
+  const content = document.createElement("span");
+  content.classList.add(MASK_CONTENT);
+  content.setAttribute("aria-hidden", "true");
+  content.id = `${input.id}Mask`;
+  content.textContent = placeholder;
+  shell.appendChild(content);
+  input.parentNode.insertBefore(shell, input);
+  shell.appendChild(input);
+};
+const setValueOfMask = el => {
+  const {
+    value
+  } = el;
+  const placeholderVal = `${el.dataset.placeholder.substr(value.length)}`;
+  const theIEl = document.createElement("i");
+  theIEl.textContent = value;
+  return [theIEl, placeholderVal];
+};
+const strippedValue = (isCharsetPresent, value) => isCharsetPresent ? value.replace(/\W/g, "") : value.replace(/\D/g, "");
+const isInteger = value => !Number.isNaN(parseInt(value, 10));
+const isLetter = value => value ? value.match(/[A-Z]/i) : false;
+const handleCurrentValue = el => {
+  const isCharsetPresent = el.dataset.charset;
+  const placeholder = isCharsetPresent || el.dataset.placeholder;
+  const {
+    value
+  } = el;
+  const len = placeholder.length;
+  let newValue = "";
+  let i;
+  let charIndex;
+  const strippedVal = strippedValue(isCharsetPresent, value);
+  for (i = 0, charIndex = 0; i < len; i += 1) {
+    const isInt = isInteger(strippedVal[charIndex]);
+    const isLet = isLetter(strippedVal[charIndex]);
+    const matchesNumber = maskedNumber.indexOf(placeholder[i]) >= 0;
+    const matchesLetter = maskedLetter.indexOf(placeholder[i]) >= 0;
+    if (matchesNumber && isInt || isCharsetPresent && matchesLetter && isLet) {
+      newValue += strippedVal[charIndex];
+      charIndex += 1;
+    } else if (!isCharsetPresent && !isInt && matchesNumber || isCharsetPresent && (matchesLetter && !isLet || matchesNumber && !isInt)) {
+      return newValue;
+    } else {
+      newValue += placeholder[i];
+    }
+    // break if no characters left and the pattern is non-special character
+    if (strippedVal[charIndex] === undefined) {
+      break;
+    }
+  }
+  return newValue;
+};
+const handleValueChange = el => {
+  const inputEl = el;
+  const id = inputEl.getAttribute("id");
+  inputEl.value = handleCurrentValue(inputEl);
+  const maskVal = setValueOfMask(el);
+  const maskEl = document.getElementById(`${id}Mask`);
+  maskEl.textContent = "";
+  maskEl.replaceChildren(maskVal[0], maskVal[1]);
+};
+const inputMaskEvents = {
+  keyup: {
+    [MASKED]() {
+      handleValueChange(this);
+    }
+  }
+};
+const inputMask = behavior(inputMaskEvents, {
+  init(root) {
+    selectOrMatches(MASKED, root).forEach(maskedInput => {
+      createMaskedInputShell(maskedInput);
+    });
+  }
+});
+module.exports = inputMask;
+
+},{"../../uswds-core/src/js/config":35,"../../uswds-core/src/js/utils/behavior":40,"../../uswds-core/src/js/utils/select-or-matches":47}],26:[function(require,module,exports){
+"use strict";
+
+const keymap = require("receptor/keymap");
+const behavior = require("../../uswds-core/src/js/utils/behavior");
+const toggle = require("../../uswds-core/src/js/utils/toggle");
+const FocusTrap = require("../../uswds-core/src/js/utils/focus-trap");
+const accordion = require("../../usa-accordion/src/index");
+const {
+  CLICK
+} = require("../../uswds-core/src/js/events");
+const {
+  prefix: PREFIX
+} = require("../../uswds-core/src/js/config");
+const BODY = "body";
+const LANGUAGE = `.${PREFIX}-language`;
+const LANGUAGE_SUB = `.${PREFIX}-language__submenu`;
+const LANGUAGE_PRIMARY = `.${PREFIX}-language__primary`;
+const LANGUAGE_PRIMARY_ITEM = `.${PREFIX}-language__primary-item`;
+const LANGUAGE_CONTROL = `button.${PREFIX}-language__link`;
+const LANGUAGE_LINKS = `${LANGUAGE} a`;
+let languageSelector;
+let languageActive;
+const onLanguageClose = () => languageSelector.toggleLanguage.call(languageSelector, false);
+const hideActiveLanguageDropdown = () => {
+  if (!languageActive) {
+    return;
+  }
+  toggle(languageActive, false);
+  languageActive = null;
+};
+const focusLanguageButton = event => {
+  const parentLanguageItem = event.target.closest(LANGUAGE_PRIMARY_ITEM);
+  if (!event.target.matches(LANGUAGE_CONTROL)) {
+    parentLanguageItem.querySelector(LANGUAGE_CONTROL).focus();
+  }
+};
+const handleEscape = event => {
+  hideActiveLanguageDropdown();
+  focusLanguageButton(event);
+};
+languageSelector = behavior({
+  [CLICK]: {
+    [LANGUAGE_CONTROL]() {
+      if (languageActive !== this) {
+        hideActiveLanguageDropdown();
+      }
+      if (languageActive === this) {
+        hideActiveLanguageDropdown();
+        return false;
+      }
+      if (!languageActive) {
+        languageActive = this;
+        toggle(languageActive, true);
+      }
+      return false;
+    },
+    [BODY]: hideActiveLanguageDropdown,
+    [LANGUAGE_LINKS]() {
+      const acc = this.closest(accordion.ACCORDION);
+      if (acc) {
+        accordion.getButtons(acc).forEach(btn => accordion.hide(btn));
+      }
+    }
+  },
+  keydown: {
+    [LANGUAGE_PRIMARY]: keymap({
+      Escape: handleEscape
+    })
+  },
+  focusout: {
+    [LANGUAGE_PRIMARY](event) {
+      const language = event.target.closest(LANGUAGE_PRIMARY);
+      if (!language.contains(event.relatedTarget)) {
+        hideActiveLanguageDropdown();
+      }
+    }
+  }
+}, {
+  init(root) {
+    const trapContainer = root.matches(LANGUAGE_SUB) ? root : root.querySelector(LANGUAGE_SUB);
+    if (trapContainer) {
+      languageSelector.focusTrap = FocusTrap(trapContainer, {
+        Escape: onLanguageClose
+      });
+    }
+  },
+  teardown() {
+    languageActive = false;
+  },
+  focusTrap: null
+});
+module.exports = languageSelector;
+
+},{"../../usa-accordion/src/index":14,"../../uswds-core/src/js/config":35,"../../uswds-core/src/js/events":36,"../../uswds-core/src/js/utils/behavior":40,"../../uswds-core/src/js/utils/focus-trap":42,"../../uswds-core/src/js/utils/toggle":51,"receptor/keymap":10}],27:[function(require,module,exports){
+"use strict";
+
+const selectOrMatches = require("../../uswds-core/src/js/utils/select-or-matches");
+const FocusTrap = require("../../uswds-core/src/js/utils/focus-trap");
+const ScrollBarWidth = require("../../uswds-core/src/js/utils/scrollbar-width");
+const behavior = require("../../uswds-core/src/js/utils/behavior");
+const {
+  prefix: PREFIX
+} = require("../../uswds-core/src/js/config");
+const MODAL_CLASSNAME = `${PREFIX}-modal`;
+const OVERLAY_CLASSNAME = `${MODAL_CLASSNAME}-overlay`;
+const WRAPPER_CLASSNAME = `${MODAL_CLASSNAME}-wrapper`;
+const OPENER_ATTRIBUTE = "data-open-modal";
+const CLOSER_ATTRIBUTE = "data-close-modal";
+const FORCE_ACTION_ATTRIBUTE = "data-force-action";
+const NON_MODAL_HIDDEN_ATTRIBUTE = `data-modal-hidden`;
+const MODAL = `.${MODAL_CLASSNAME}`;
+const INITIAL_FOCUS = `.${WRAPPER_CLASSNAME} *[data-focus]`;
+const CLOSE_BUTTON = `${WRAPPER_CLASSNAME} *[${CLOSER_ATTRIBUTE}]`;
+const OPENERS = `*[${OPENER_ATTRIBUTE}][aria-controls]`;
+const CLOSERS = `${CLOSE_BUTTON}, .${OVERLAY_CLASSNAME}:not([${FORCE_ACTION_ATTRIBUTE}])`;
+const NON_MODALS = `body > *:not(.${WRAPPER_CLASSNAME}):not([aria-hidden])`;
+const NON_MODALS_HIDDEN = `[${NON_MODAL_HIDDEN_ATTRIBUTE}]`;
+const ACTIVE_CLASS = "usa-js-modal--active";
+const PREVENT_CLICK_CLASS = "usa-js-no-click";
+const VISIBLE_CLASS = "is-visible";
+const HIDDEN_CLASS = "is-hidden";
+let modal;
+let INITIAL_BODY_PADDING;
+let TEMPORARY_BODY_PADDING;
+const isActive = () => document.body.classList.contains(ACTIVE_CLASS);
+const SCROLLBAR_WIDTH = ScrollBarWidth();
+
+/**
+ *  Closes modal when bound to a button and pressed.
+ */
+const onMenuClose = () => {
+  modal.toggleModal.call(modal, false);
+};
+
+/**
+ * Set the value for temporary body padding that will be applied when the modal is open.
+ * Value is created by checking for initial body padding and adding the width of the scrollbar.
+ */
+const setTemporaryBodyPadding = () => {
+  INITIAL_BODY_PADDING = window.getComputedStyle(document.body).getPropertyValue("padding-right");
+  TEMPORARY_BODY_PADDING = `${parseInt(INITIAL_BODY_PADDING.replace(/px/, ""), 10) + parseInt(SCROLLBAR_WIDTH.replace(/px/, ""), 10)}px`;
+};
+
+/**
+ *  Toggle the visibility of a modal window
+ *
+ * @param {KeyboardEvent} event the keydown event.
+ * @returns {boolean} safeActive if mobile is open.
+ */
+function toggleModal(event) {
+  let originalOpener;
+  let clickedElement = event.target;
+  const {
+    body
+  } = document;
+  const safeActive = !isActive();
+  const modalId = clickedElement ? clickedElement.getAttribute("aria-controls") : document.querySelector(`.${WRAPPER_CLASSNAME}.${VISIBLE_CLASS}`);
+  const targetModal = safeActive ? document.getElementById(modalId) : document.querySelector(`.${WRAPPER_CLASSNAME}.${VISIBLE_CLASS}`);
+
+  // if there is no modal we return early
+  if (!targetModal) {
+    return false;
+  }
+  const openFocusEl = targetModal.querySelector(INITIAL_FOCUS) ? targetModal.querySelector(INITIAL_FOCUS) : targetModal.querySelector(`.${MODAL_CLASSNAME}`);
+  const returnFocus = document.getElementById(targetModal.getAttribute("data-opener"));
+  const menuButton = body.querySelector(OPENERS);
+  const forceUserAction = targetModal.getAttribute(FORCE_ACTION_ATTRIBUTE);
+
+  // Sets the clicked element to the close button
+  // so esc key always closes modal
+  if (event.type === "keydown" && targetModal !== null) {
+    clickedElement = targetModal.querySelector(CLOSE_BUTTON);
+  }
+
+  // When we're not hitting the escape key…
+  if (clickedElement) {
+    // Make sure we click the opener
+    // If it doesn't have an ID, make one
+    // Store id as data attribute on modal
+    if (clickedElement.hasAttribute(OPENER_ATTRIBUTE)) {
+      if (this.getAttribute("id") === null) {
+        originalOpener = `modal-${Math.floor(Math.random() * 900000) + 100000}`;
+        this.setAttribute("id", originalOpener);
+      } else {
+        originalOpener = this.getAttribute("id");
+      }
+      targetModal.setAttribute("data-opener", originalOpener);
+    }
+
+    // This basically stops the propagation if the element
+    // is inside the modal and not a close button or
+    // element inside a close button
+    if (clickedElement.closest(`.${MODAL_CLASSNAME}`)) {
+      if (clickedElement.hasAttribute(CLOSER_ATTRIBUTE) || clickedElement.closest(`[${CLOSER_ATTRIBUTE}]`)) {
+        // do nothing. move on.
+      } else {
+        return false;
+      }
+    }
+  }
+  body.classList.toggle(ACTIVE_CLASS, safeActive);
+  targetModal.classList.toggle(VISIBLE_CLASS, safeActive);
+  targetModal.classList.toggle(HIDDEN_CLASS, !safeActive);
+
+  // If user is forced to take an action, adding
+  // a class to the body that prevents clicking underneath
+  // overlay
+  if (forceUserAction) {
+    body.classList.toggle(PREVENT_CLICK_CLASS, safeActive);
+  }
+
+  // Temporarily increase body padding to include the width of the scrollbar.
+  // This accounts for the content shift when the scrollbar is removed on modal open.
+  if (body.style.paddingRight === TEMPORARY_BODY_PADDING) {
+    body.style.removeProperty("padding-right");
+  } else {
+    body.style.paddingRight = TEMPORARY_BODY_PADDING;
+  }
+
+  // Handle the focus actions
+  if (safeActive && openFocusEl) {
+    // The modal window is opened. Focus is set to close button.
+
+    // Binds escape key if we're not forcing
+    // the user to take an action
+    if (forceUserAction) {
+      modal.focusTrap = FocusTrap(targetModal);
+    } else {
+      modal.focusTrap = FocusTrap(targetModal, {
+        Escape: onMenuClose
+      });
+    }
+
+    // Handles focus setting and interactions
+    modal.focusTrap.update(safeActive);
+    openFocusEl.focus();
+
+    // Hides everything that is not the modal from screen readers
+    document.querySelectorAll(NON_MODALS).forEach(nonModal => {
+      nonModal.setAttribute("aria-hidden", "true");
+      nonModal.setAttribute(NON_MODAL_HIDDEN_ATTRIBUTE, "");
+    });
+  } else if (!safeActive && menuButton && returnFocus) {
+    // The modal window is closed.
+    // Non-modals now accesible to screen reader
+    document.querySelectorAll(NON_MODALS_HIDDEN).forEach(nonModal => {
+      nonModal.removeAttribute("aria-hidden");
+      nonModal.removeAttribute(NON_MODAL_HIDDEN_ATTRIBUTE);
+    });
+
+    // Focus is returned to the opener
+    returnFocus.focus();
+    modal.focusTrap.update(safeActive);
+  }
+  return safeActive;
+}
+
+/**
+ * Creates a placeholder with data attributes for cleanup function.
+ * The cleanup function uses this placeholder to easily restore the original Modal HTML on teardown.
+ *
+ * @param {HTMLDivElement} baseComponent - Modal HTML from the DOM.
+ * @returns {HTMLDivElement} Placeholder used for cleanup function.
+ */
+const createPlaceHolder = baseComponent => {
+  const modalID = baseComponent.getAttribute("id");
+  const originalLocationPlaceHolder = document.createElement("div");
+  const modalAttributes = Array.from(baseComponent.attributes);
+  setTemporaryBodyPadding();
+  originalLocationPlaceHolder.setAttribute(`data-placeholder-for`, modalID);
+  originalLocationPlaceHolder.style.display = "none";
+  originalLocationPlaceHolder.setAttribute("aria-hidden", "true");
+  modalAttributes.forEach(attribute => {
+    originalLocationPlaceHolder.setAttribute(`data-original-${attribute.name}`, attribute.value);
+  });
+  return originalLocationPlaceHolder;
+};
+
+/**
+ * Moves necessary attributes from Modal HTML to wrapper element.
+ *
+ * @param {HTMLDivElement} baseComponent - Modal HTML in the DOM.
+ * @param {HTMLDivElement} modalContentWrapper - Modal component wrapper element.
+ * @returns Modal wrapper with correct attributes.
+ */
+const setModalAttributes = (baseComponent, modalContentWrapper) => {
+  const modalID = baseComponent.getAttribute("id");
+  const ariaLabelledBy = baseComponent.getAttribute("aria-labelledby");
+  const ariaDescribedBy = baseComponent.getAttribute("aria-describedby");
+  const forceUserAction = baseComponent.hasAttribute(FORCE_ACTION_ATTRIBUTE);
+  if (!ariaLabelledBy) throw new Error(`${modalID} is missing aria-labelledby attribute`);
+  if (!ariaDescribedBy) throw new Error(`${modalID} is missing aria-desribedby attribute`);
+
+  // Set attributes
+  modalContentWrapper.setAttribute("role", "dialog");
+  modalContentWrapper.setAttribute("id", modalID);
+  modalContentWrapper.setAttribute("aria-labelledby", ariaLabelledBy);
+  modalContentWrapper.setAttribute("aria-describedby", ariaDescribedBy);
+  if (forceUserAction) {
+    modalContentWrapper.setAttribute(FORCE_ACTION_ATTRIBUTE, forceUserAction);
+  }
+
+  // Add aria-controls
+  const modalClosers = modalContentWrapper.querySelectorAll(CLOSERS);
+  modalClosers.forEach(el => {
+    el.setAttribute("aria-controls", modalID);
+  });
+
+  // Update the base element HTML
+  baseComponent.removeAttribute("id");
+  baseComponent.removeAttribute("aria-labelledby");
+  baseComponent.removeAttribute("aria-describedby");
+  baseComponent.setAttribute("tabindex", "-1");
+  return modalContentWrapper;
+};
+
+/**
+ * Creates a hidden modal content wrapper.
+ * Rebuilds the original Modal HTML in the new wrapper and adds a page overlay.
+ * Then moves original Modal HTML attributes to the new wrapper.
+ *
+ * @param {HTMLDivElement} baseComponent - Original Modal HTML in the DOM.
+ * @returns Modal component - Modal wrapper w/ nested Overlay and Modal Content.
+ */
+const rebuildModal = baseComponent => {
+  const modalContent = baseComponent;
+  const modalContentWrapper = document.createElement("div");
+  const overlayDiv = document.createElement("div");
+
+  // Add classes
+  modalContentWrapper.classList.add(HIDDEN_CLASS, WRAPPER_CLASSNAME);
+  overlayDiv.classList.add(OVERLAY_CLASSNAME);
+
+  // Rebuild the modal element
+  modalContentWrapper.append(overlayDiv);
+  overlayDiv.append(modalContent);
+
+  // Add attributes
+  setModalAttributes(modalContent, modalContentWrapper);
+  return modalContentWrapper;
+};
+
+/**
+ *  Builds modal window from base HTML and appends to the end of the DOM.
+ *
+ * @param {HTMLDivElement} baseComponent - The modal div element in the DOM.
+ */
+const setUpModal = baseComponent => {
+  const modalID = baseComponent.getAttribute("id");
+  if (!modalID) {
+    throw new Error(`Modal markup is missing ID`);
+  }
+
+  // Create placeholder where modal is for cleanup
+  const originalLocationPlaceHolder = createPlaceHolder(baseComponent);
+  baseComponent.after(originalLocationPlaceHolder);
+
+  // Build modal component
+  const modalComponent = rebuildModal(baseComponent);
+
+  // Move all modals to the end of the DOM. Doing this allows us to
+  // more easily find the elements to hide from screen readers
+  // when the modal is open.
+  document.body.appendChild(modalComponent);
+};
+
+/**
+ * Removes dynamically created Modal and Wrapper elements and restores original Modal HTML.
+ *
+ * @param {HTMLDivElement} baseComponent - The modal div element in the DOM.
+ */
+const cleanUpModal = baseComponent => {
+  const modalContent = baseComponent;
+  const modalContentWrapper = modalContent.parentElement.parentElement;
+  const modalID = modalContentWrapper.getAttribute("id");
+
+  // if there is no modalID, return early
+  if (!modalID) {
+    return;
+  }
+  const originalLocationPlaceHolder = document.querySelector(`[data-placeholder-for="${modalID}"]`);
+  if (originalLocationPlaceHolder) {
+    const modalAttributes = Array.from(originalLocationPlaceHolder.attributes);
+    modalAttributes.forEach(attribute => {
+      if (attribute.name.startsWith("data-original-")) {
+        // data-original- is 14 long
+        modalContent.setAttribute(attribute.name.substr(14), attribute.value);
+      }
+    });
+    originalLocationPlaceHolder.after(modalContent);
+    originalLocationPlaceHolder.parentElement.removeChild(originalLocationPlaceHolder);
+  }
+  modalContentWrapper.parentElement.removeChild(modalContentWrapper);
+};
+modal = behavior({}, {
+  init(root) {
+    selectOrMatches(MODAL, root).forEach(modalWindow => {
+      const modalId = modalWindow.id;
+      setUpModal(modalWindow);
+
+      // Query all openers and closers including the overlay
+      selectOrMatches(`[aria-controls="${modalId}"]`, document).forEach(modalTrigger => {
+        // If modalTrigger is an anchor...
+        if (modalTrigger.nodeName === "A") {
+          // Turn anchor links into buttons for screen readers
+          modalTrigger.setAttribute("role", "button");
+
+          // Prevent modal triggers from acting like links
+          modalTrigger.addEventListener("click", e => e.preventDefault());
+        }
+
+        // Can uncomment when aria-haspopup="dialog" is supported
+        // https://a11ysupport.io/tech/aria/aria-haspopup_attribute
+        // Most screen readers support aria-haspopup, but might announce
+        // as opening a menu if "dialog" is not supported.
+        // modalTrigger.setAttribute("aria-haspopup", "dialog");
+
+        modalTrigger.addEventListener("click", toggleModal);
+      });
+    });
+  },
+  teardown(root) {
+    selectOrMatches(MODAL, root).forEach(modalWindow => {
+      const modalId = modalWindow.id;
+      cleanUpModal(modalWindow);
+      selectOrMatches(`[aria-controls="${modalId}"]`, document).forEach(modalTrigger => modalTrigger.removeEventListener("click", toggleModal));
+    });
+  },
+  focusTrap: null,
+  toggleModal
+});
+module.exports = modal;
+
+},{"../../uswds-core/src/js/config":35,"../../uswds-core/src/js/utils/behavior":40,"../../uswds-core/src/js/utils/focus-trap":42,"../../uswds-core/src/js/utils/scrollbar-width":46,"../../uswds-core/src/js/utils/select-or-matches":47}],28:[function(require,module,exports){
+"use strict";
+
+const selectOrMatches = require("../../uswds-core/src/js/utils/select-or-matches");
+const behavior = require("../../uswds-core/src/js/utils/behavior");
+const {
+  prefix: PREFIX
+} = require("../../uswds-core/src/js/config");
+const RANGE_CLASSNAME = `${PREFIX}-range`;
+const RANGE = `.${RANGE_CLASSNAME}`;
+
+/**
+ * Update range callout for screen readers using the optional data attributes.
+ *
+ * Get optional data attributes, construct and appends aria-valuetext attribute.
+ *
+ * @example
+ *
+ * <input id="usa-range" class="usa-range" type="range" min="0" max="100" step="10" value="20" data-text-unit="degrees">
+ *
+ * Callout returns "20 degrees of 100."
+ *
+ * <input id="usa-range" class="usa-range" type="range" min="0" max="100" step="10" value="20" data-text-preposition="de">
+ *
+ * Callout returns "20 de 100."
+ *
+ * @param {HTMLInputElement} targetRange - The range slider input element
+ */
+const updateCallout = targetRange => {
+  const rangeSlider = targetRange;
+  const defaultPrep = "of";
+  const optionalPrep = rangeSlider.dataset.textPreposition;
+  const prep = optionalPrep || defaultPrep;
+  const unit = rangeSlider.dataset.textUnit;
+  const val = rangeSlider.value;
+  // Note: 100 is the max attribute's native default value on range inputs
+  // Reference: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/range#validation
+  const max = rangeSlider.getAttribute("max") || 100;
+  let callout;
+  if (unit) {
+    callout = `${val} ${unit} ${prep} ${max}`;
+  } else {
+    callout = `${val} ${prep} ${max}`;
+  }
+  rangeSlider.setAttribute("aria-valuetext", callout);
+};
+const rangeEvents = {
+  change: {
+    [RANGE]() {
+      updateCallout(this);
+    }
+  }
+};
+const range = behavior(rangeEvents, {
+  init(root) {
+    selectOrMatches(RANGE, root).forEach(rangeSlider => {
+      updateCallout(rangeSlider);
+    });
+  },
+  updateCallout
+});
+module.exports = range;
+
+},{"../../uswds-core/src/js/config":35,"../../uswds-core/src/js/utils/behavior":40,"../../uswds-core/src/js/utils/select-or-matches":47}],29:[function(require,module,exports){
+"use strict";
+
+const ignore = require("receptor/ignore");
+const behavior = require("../../uswds-core/src/js/utils/behavior");
+const select = require("../../uswds-core/src/js/utils/select");
+const {
+  CLICK
+} = require("../../uswds-core/src/js/events");
+const BUTTON = ".js-search-button";
+const FORM = ".js-search-form";
+const INPUT = "[type=search]";
+const CONTEXT = "header"; // XXX
+
+let lastButton;
+const getForm = button => {
+  const context = button.closest(CONTEXT);
+  return context ? context.querySelector(FORM) : document.querySelector(FORM);
+};
+const toggleSearch = (button, active) => {
+  const form = getForm(button);
+  if (!form) {
+    throw new Error(`No ${FORM} found for search toggle in ${CONTEXT}!`);
+  }
+
+  /* eslint-disable no-param-reassign */
+  button.hidden = active;
+  form.hidden = !active;
+  /* eslint-enable */
+
+  if (!active) {
+    return;
+  }
+  const input = form.querySelector(INPUT);
+  if (input) {
+    input.focus();
+  }
+  // when the user clicks _outside_ of the form w/ignore(): hide the
+  // search, then remove the listener
+  const listener = ignore(form, () => {
+    if (lastButton) {
+      hideSearch.call(lastButton); // eslint-disable-line no-use-before-define
+    }
+    document.body.removeEventListener(CLICK, listener);
+  });
+
+  // Normally we would just run this code without a timeout, but
+  // IE11 and Edge will actually call the listener *immediately* because
+  // they are currently handling this exact type of event, so we'll
+  // make sure the browser is done handling the current click event,
+  // if any, before we attach the listener.
+  setTimeout(() => {
+    document.body.addEventListener(CLICK, listener);
+  }, 0);
+};
+function showSearch() {
+  toggleSearch(this, true);
+  lastButton = this;
+}
+function hideSearch() {
+  toggleSearch(this, false);
+  lastButton = undefined;
+}
+const search = behavior({
+  [CLICK]: {
+    [BUTTON]: showSearch
+  }
+}, {
+  init(target) {
+    select(BUTTON, target).forEach(button => {
+      toggleSearch(button, false);
+    });
+  },
+  teardown() {
+    // forget the last button clicked
+    lastButton = undefined;
+  }
+});
+module.exports = search;
+
+},{"../../uswds-core/src/js/events":36,"../../uswds-core/src/js/utils/behavior":40,"../../uswds-core/src/js/utils/select":48,"receptor/ignore":8}],30:[function(require,module,exports){
+"use strict";
+
+const once = require("receptor/once");
+const behavior = require("../../uswds-core/src/js/utils/behavior");
+const {
+  CLICK
+} = require("../../uswds-core/src/js/events");
+const {
+  prefix: PREFIX
+} = require("../../uswds-core/src/js/config");
+const LINK = `.${PREFIX}-skipnav[href^="#"], .${PREFIX}-footer__return-to-top [href^="#"]`;
+const MAINCONTENT = "main-content";
+function setTabindex() {
+  // NB: we know because of the selector we're delegating to below that the
+  // href already begins with '#'
+  const id = encodeURI(this.getAttribute("href"));
+  const target = document.getElementById(id === "#" ? MAINCONTENT : id.slice(1));
+  if (target) {
+    target.style.outline = "0";
+    target.setAttribute("tabindex", 0);
+    target.focus();
+    target.addEventListener("blur", once(() => {
+      target.setAttribute("tabindex", -1);
+    }));
+  } else {
+    // throw an error?
+  }
+}
+module.exports = behavior({
+  [CLICK]: {
+    [LINK]: setTabindex
+  }
+});
+
+},{"../../uswds-core/src/js/config":35,"../../uswds-core/src/js/events":36,"../../uswds-core/src/js/utils/behavior":40,"receptor/once":11}],31:[function(require,module,exports){
+"use strict";
+
+const select = require("../../uswds-core/src/js/utils/select");
+const behavior = require("../../uswds-core/src/js/utils/behavior");
+const {
+  CLICK
+} = require("../../uswds-core/src/js/events");
+const {
+  prefix: PREFIX
+} = require("../../uswds-core/src/js/config");
+const Sanitizer = require("../../uswds-core/src/js/utils/sanitizer");
+const TABLE = `.${PREFIX}-table`;
+const SORTED = "aria-sort";
+const ASCENDING = "ascending";
+const DESCENDING = "descending";
+const SORT_OVERRIDE = "data-sort-value";
+const SORT_BUTTON_CLASS = `${PREFIX}-table__header__button`;
+const SORT_BUTTON = `.${SORT_BUTTON_CLASS}`;
+const SORTABLE_HEADER = `th[data-sortable]`;
+const ANNOUNCEMENT_REGION = `.${PREFIX}-table__announcement-region[aria-live="polite"]`;
+
+/** Gets the data-sort-value attribute value, if provided — otherwise, gets
+ * the innerText or textContent — of the child element (HTMLTableCellElement)
+ * at the specified index of the given table row
+ *
+ * @param {number} index
+ * @param {array<HTMLTableRowElement>} tr
+ * @return {boolean}
+ */
+const getCellValue = (tr, index) => tr.children[index].getAttribute(SORT_OVERRIDE) || tr.children[index].innerText || tr.children[index].textContent;
+
+/**
+ * Compares the values of two row array items at the given index, then sorts by the given direction
+ * @param {number} index
+ * @param {string} direction
+ * @return {boolean}
+ */
+const compareFunction = (index, isAscending) => (thisRow, nextRow) => {
+  // get values to compare from data attribute or cell content
+  const value1 = getCellValue(isAscending ? thisRow : nextRow, index);
+  const value2 = getCellValue(isAscending ? nextRow : thisRow, index);
+
+  // if neither value is empty, and if both values are already numbers, compare numerically
+  if (value1 && value2 && !Number.isNaN(Number(value1)) && !Number.isNaN(Number(value2))) {
+    return value1 - value2;
+  }
+  // Otherwise, compare alphabetically based on current user locale
+  return value1.toString().localeCompare(value2, navigator.language, {
+    numeric: true,
+    ignorePunctuation: true
+  });
+};
+
+/**
+ * Get an Array of column headers elements belonging directly to the given
+ * table element.
+ * @param {HTMLTableElement} table
+ * @return {array<HTMLTableHeaderCellElement>}
+ */
+const getColumnHeaders = table => {
+  const headers = select(SORTABLE_HEADER, table);
+  return headers.filter(header => header.closest(TABLE) === table);
+};
+
+/**
+ * Update the button label within the given header element, resetting it
+ * to the default state (ready to sort ascending) if it's no longer sorted
+ * @param {HTMLTableHeaderCellElement} header
+ */
+const updateSortLabel = header => {
+  const headerName = header.innerText;
+  const sortedAscending = header.getAttribute(SORTED) === ASCENDING;
+  const isSorted = header.getAttribute(SORTED) === ASCENDING || header.getAttribute(SORTED) === DESCENDING || false;
+  const headerLabel = `${headerName}, sortable column, currently ${isSorted ? `${sortedAscending ? `sorted ${ASCENDING}` : `sorted ${DESCENDING}`}` : "unsorted"}`;
+  const headerButtonLabel = `Click to sort by ${headerName} in ${sortedAscending ? DESCENDING : ASCENDING} order.`;
+  header.setAttribute("aria-label", headerLabel);
+  header.querySelector(SORT_BUTTON).setAttribute("title", headerButtonLabel);
+};
+
+/**
+ * Remove the aria-sort attribute on the given header element, and reset the label and button icon
+ * @param {HTMLTableHeaderCellElement} header
+ */
+const unsetSort = header => {
+  header.removeAttribute(SORTED);
+  updateSortLabel(header);
+};
+
+/**
+ * Sort rows either ascending or descending, based on a given header's aria-sort attribute
+ * @param {HTMLTableHeaderCellElement} header
+ * @param {boolean} isAscending
+ * @return {boolean} true
+ */
+const sortRows = (header, isAscending) => {
+  header.setAttribute(SORTED, isAscending === true ? DESCENDING : ASCENDING);
+  updateSortLabel(header);
+  const tbody = header.closest(TABLE).querySelector("tbody");
+
+  // We can use Array.from() and Array.sort() instead once we drop IE11 support, likely in the summer of 2021
+  //
+  // Array.from(tbody.querySelectorAll('tr').sort(
+  //   compareFunction(
+  //     Array.from(header.parentNode.children).indexOf(header),
+  //     !isAscending)
+  //   )
+  // .forEach(tr => tbody.appendChild(tr) );
+
+  // [].slice.call() turns array-like sets into true arrays so that we can sort them
+  const allRows = [].slice.call(tbody.querySelectorAll("tr"));
+  const allHeaders = [].slice.call(header.parentNode.children);
+  const thisHeaderIndex = allHeaders.indexOf(header);
+  allRows.sort(compareFunction(thisHeaderIndex, !isAscending)).forEach(tr => {
+    [].slice.call(tr.children).forEach(td => td.removeAttribute("data-sort-active"));
+    tr.children[thisHeaderIndex].setAttribute("data-sort-active", true);
+    tbody.appendChild(tr);
+  });
+  return true;
+};
+
+/**
+ * Update the live region immediately following the table whenever sort changes.
+ * @param {HTMLTableElement} table
+ * @param {HTMLTableHeaderCellElement} sortedHeader
+ */
+
+const updateLiveRegion = (table, sortedHeader) => {
+  const caption = table.querySelector("caption").innerText;
+  const sortedAscending = sortedHeader.getAttribute(SORTED) === ASCENDING;
+  const headerLabel = sortedHeader.innerText;
+  const liveRegion = table.nextElementSibling;
+  if (liveRegion && liveRegion.matches(ANNOUNCEMENT_REGION)) {
+    const sortAnnouncement = `The table named "${caption}" is now sorted by ${headerLabel} in ${sortedAscending ? ASCENDING : DESCENDING} order.`;
+    liveRegion.innerText = sortAnnouncement;
+  } else {
+    throw new Error(`Table containing a sortable column header is not followed by an aria-live region.`);
+  }
+};
+
+/**
+ * Toggle a header's sort state, optionally providing a target
+ * state.
+ *
+ * @param {HTMLTableHeaderCellElement} header
+ * @param {boolean?} isAscending If no state is provided, the current
+ * state will be toggled (from false to true, and vice-versa).
+ */
+const toggleSort = (header, isAscending) => {
+  const table = header.closest(TABLE);
+  let safeAscending = isAscending;
+  if (typeof safeAscending !== "boolean") {
+    safeAscending = header.getAttribute(SORTED) === ASCENDING;
+  }
+  if (!table) {
+    throw new Error(`${SORTABLE_HEADER} is missing outer ${TABLE}`);
+  }
+  safeAscending = sortRows(header, isAscending);
+  if (safeAscending) {
+    getColumnHeaders(table).forEach(otherHeader => {
+      if (otherHeader !== header) {
+        unsetSort(otherHeader);
+      }
+    });
+    updateLiveRegion(table, header);
+  }
+};
+
+/**
+ ** Inserts a button with icon inside a sortable header
+ * @param {HTMLTableHeaderCellElement} header
+ */
+
+const createHeaderButton = header => {
+  const buttonEl = document.createElement("button");
+  buttonEl.setAttribute("tabindex", "0");
+  buttonEl.classList.add(SORT_BUTTON_CLASS);
+  // ICON_SOURCE
+  buttonEl.innerHTML = Sanitizer.escapeHTML`
+  <svg class="${PREFIX}-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+    <g class="descending" fill="transparent">
+      <path d="M17 17L15.59 15.59L12.9999 18.17V2H10.9999V18.17L8.41 15.58L7 17L11.9999 22L17 17Z" />
+    </g>
+    <g class="ascending" fill="transparent">
+      <path transform="rotate(180, 12, 12)" d="M17 17L15.59 15.59L12.9999 18.17V2H10.9999V18.17L8.41 15.58L7 17L11.9999 22L17 17Z" />
+    </g>
+    <g class="unsorted" fill="transparent">
+      <polygon points="15.17 15 13 17.17 13 6.83 15.17 9 16.58 7.59 12 3 7.41 7.59 8.83 9 11 6.83 11 17.17 8.83 15 7.42 16.41 12 21 16.59 16.41 15.17 15"/>
+    </g>
+  </svg>
+  `;
+  header.appendChild(buttonEl);
+  updateSortLabel(header);
+};
+const table = behavior({
+  [CLICK]: {
+    [SORT_BUTTON](event) {
+      event.preventDefault();
+      toggleSort(event.target.closest(SORTABLE_HEADER), event.target.closest(SORTABLE_HEADER).getAttribute(SORTED) === ASCENDING);
+    }
+  }
+}, {
+  init(root) {
+    const sortableHeaders = select(SORTABLE_HEADER, root);
+    sortableHeaders.forEach(header => createHeaderButton(header));
+    const firstSorted = sortableHeaders.filter(header => header.getAttribute(SORTED) === ASCENDING || header.getAttribute(SORTED) === DESCENDING)[0];
+    if (typeof firstSorted === "undefined") {
+      // no sortable headers found
+      return;
+    }
+    const sortDir = firstSorted.getAttribute(SORTED);
+    if (sortDir === ASCENDING) {
+      toggleSort(firstSorted, true);
+    } else if (sortDir === DESCENDING) {
+      toggleSort(firstSorted, false);
+    }
+  },
+  TABLE,
+  SORTABLE_HEADER,
+  SORT_BUTTON
+});
+module.exports = table;
+
+},{"../../uswds-core/src/js/config":35,"../../uswds-core/src/js/events":36,"../../uswds-core/src/js/utils/behavior":40,"../../uswds-core/src/js/utils/sanitizer":45,"../../uswds-core/src/js/utils/select":48}],32:[function(require,module,exports){
+"use strict";
+
+const behavior = require("../../uswds-core/src/js/utils/behavior");
+const selectOrMatches = require("../../uswds-core/src/js/utils/select-or-matches");
+const {
+  prefix: PREFIX
+} = require("../../uswds-core/src/js/config");
+const {
+  COMBO_BOX_CLASS,
+  enhanceComboBox
+} = require("../../usa-combo-box/src/index");
+const TIME_PICKER_CLASS = `${PREFIX}-time-picker`;
+const TIME_PICKER = `.${TIME_PICKER_CLASS}`;
+const MAX_TIME = 60 * 24 - 1;
+const MIN_TIME = 0;
+const DEFAULT_STEP = 30;
+const MIN_STEP = 1;
+const FILTER_DATASET = {
+  filter: "0?{{ hourQueryFilter }}:{{minuteQueryFilter}}.*{{ apQueryFilter }}m?",
+  apQueryFilter: "([ap])",
+  hourQueryFilter: "([1-9][0-2]?)",
+  minuteQueryFilter: "[\\d]+:([0-9]{0,2})"
+};
+
+/**
+ * Parse a string of hh:mm into minutes
+ *
+ * @param {string} timeStr the time string to parse
+ * @returns {number} the number of minutes
+ */
+const parseTimeString = timeStr => {
+  let minutes;
+  if (timeStr) {
+    const [hours, mins] = timeStr.split(":").map(str => {
+      let value;
+      const parsed = parseInt(str, 10);
+      if (!Number.isNaN(parsed)) value = parsed;
+      return value;
+    });
+    if (hours != null && mins != null) {
+      minutes = hours * 60 + mins;
+    }
+  }
+  return minutes;
+};
+
+/**
+ * Enhance an input with the date picker elements
+ *
+ * @param {HTMLElement} el The initial wrapping element of the date picker component
+ */
+const transformTimePicker = el => {
+  const timePickerEl = el.closest(TIME_PICKER);
+  const initialInputEl = timePickerEl.querySelector(`input`);
+  if (!initialInputEl) {
+    throw new Error(`${TIME_PICKER} is missing inner input`);
+  }
+  const selectEl = document.createElement("select");
+  ["id", "name", "required", "aria-label", "aria-labelledby", "disabled", "aria-disabled"].forEach(name => {
+    if (initialInputEl.hasAttribute(name)) {
+      const value = initialInputEl.getAttribute(name);
+      selectEl.setAttribute(name, value);
+      initialInputEl.removeAttribute(name);
+    }
+  });
+  const padZeros = (value, length) => `0000${value}`.slice(-length);
+  const getTimeContext = minutes => {
+    const minute = minutes % 60;
+    const hour24 = Math.floor(minutes / 60);
+    const hour12 = hour24 % 12 || 12;
+    const ampm = hour24 < 12 ? "am" : "pm";
+    return {
+      minute,
+      hour24,
+      hour12,
+      ampm
+    };
+  };
+  const minTime = Math.max(MIN_TIME, parseTimeString(timePickerEl.dataset.minTime) || MIN_TIME);
+  const maxTime = Math.min(MAX_TIME, parseTimeString(timePickerEl.dataset.maxTime) || MAX_TIME);
+  const step = Math.floor(Math.max(MIN_STEP, timePickerEl.dataset.step || DEFAULT_STEP));
+  let defaultValue;
+  for (let time = minTime; time <= maxTime; time += step) {
+    const {
+      minute,
+      hour24,
+      hour12,
+      ampm
+    } = getTimeContext(time);
+    const option = document.createElement("option");
+    option.value = `${padZeros(hour24, 2)}:${padZeros(minute, 2)}`;
+    option.text = `${hour12}:${padZeros(minute, 2)}${ampm}`;
+    if (option.text === initialInputEl.value) {
+      defaultValue = option.value;
+    }
+    selectEl.appendChild(option);
+  }
+  timePickerEl.classList.add(COMBO_BOX_CLASS);
+
+  // combo box properties
+  Object.keys(FILTER_DATASET).forEach(key => {
+    timePickerEl.dataset[key] = FILTER_DATASET[key];
+  });
+  timePickerEl.dataset.disableFiltering = "true";
+  timePickerEl.dataset.defaultValue = defaultValue;
+  timePickerEl.appendChild(selectEl);
+  initialInputEl.remove();
+};
+const timePicker = behavior({}, {
+  init(root) {
+    selectOrMatches(TIME_PICKER, root).forEach(timePickerEl => {
+      transformTimePicker(timePickerEl);
+      enhanceComboBox(timePickerEl);
+    });
+  },
+  FILTER_DATASET
+});
+module.exports = timePicker;
+
+},{"../../usa-combo-box/src/index":18,"../../uswds-core/src/js/config":35,"../../uswds-core/src/js/utils/behavior":40,"../../uswds-core/src/js/utils/select-or-matches":47}],33:[function(require,module,exports){
+"use strict";
+
+// Tooltips
+const keymap = require("receptor/keymap");
+const selectOrMatches = require("../../uswds-core/src/js/utils/select-or-matches");
+const behavior = require("../../uswds-core/src/js/utils/behavior");
+const {
+  prefix: PREFIX
+} = require("../../uswds-core/src/js/config");
+const isElementInViewport = require("../../uswds-core/src/js/utils/is-in-viewport");
+const BODY = "body";
+const TOOLTIP = `.${PREFIX}-tooltip`;
+const TOOLTIP_TRIGGER = `.${PREFIX}-tooltip__trigger`;
+const TOOLTIP_TRIGGER_CLASS = `${PREFIX}-tooltip__trigger`;
+const TOOLTIP_CLASS = `${PREFIX}-tooltip`;
+const TOOLTIP_BODY_CLASS = `${PREFIX}-tooltip__body`;
+const SET_CLASS = "is-set";
+const VISIBLE_CLASS = "is-visible";
+const TRIANGLE_SIZE = 5;
+const ADJUST_WIDTH_CLASS = `${PREFIX}-tooltip__body--wrap`;
+
+/**
+ *
+ * @param {DOMElement} trigger - The tooltip trigger
+ * @returns {object} Elements for initialized tooltip; includes trigger, wrapper, and body
+ */
+const getTooltipElements = trigger => {
+  const wrapper = trigger.parentNode;
+  const body = wrapper.querySelector(`.${TOOLTIP_BODY_CLASS}`);
+  return {
+    trigger,
+    wrapper,
+    body
+  };
+};
+
+/**
+ * Shows the tooltip
+ * @param {HTMLElement} tooltipTrigger - the element that initializes the tooltip
+ */
+const showToolTip = (tooltipBody, tooltipTrigger, position) => {
+  tooltipBody.setAttribute("aria-hidden", "false");
+
+  // This sets up the tooltip body. The opacity is 0, but
+  // we can begin running the calculations below.
+  tooltipBody.classList.add(SET_CLASS);
+
+  /**
+   * Position the tooltip body when the trigger is hovered
+   * Removes old positioning classnames and reapplies. This allows
+   * positioning to change in case the user resizes browser or DOM manipulation
+   * causes tooltip to get clipped from viewport
+   *
+   * @param {string} setPos - can be "top", "bottom", "right", "left"
+   */
+  const setPositionClass = setPos => {
+    tooltipBody.classList.remove(`${TOOLTIP_BODY_CLASS}--top`);
+    tooltipBody.classList.remove(`${TOOLTIP_BODY_CLASS}--bottom`);
+    tooltipBody.classList.remove(`${TOOLTIP_BODY_CLASS}--right`);
+    tooltipBody.classList.remove(`${TOOLTIP_BODY_CLASS}--left`);
+    tooltipBody.classList.add(`${TOOLTIP_BODY_CLASS}--${setPos}`);
+  };
+
+  /**
+   * Removes old positioning styles. This allows
+   * re-positioning to change without inheriting other
+   * dynamic styles
+   *
+   * @param {HTMLElement} e - this is the tooltip body
+   */
+  const resetPositionStyles = e => {
+    // we don't override anything in the stylesheet when finding alt positions
+    e.style.top = null;
+    e.style.bottom = null;
+    e.style.right = null;
+    e.style.left = null;
+    e.style.margin = null;
+  };
+
+  /**
+   * get margin offset calculations
+   *
+   * @param {HTMLElement} target - this is the tooltip body
+   * @param {String} propertyValue - this is the tooltip body
+   */
+
+  const offsetMargin = (target, propertyValue) => parseInt(window.getComputedStyle(target).getPropertyValue(propertyValue), 10);
+
+  // offsetLeft = the left position, and margin of the element, the left
+  // padding, scrollbar and border of the offsetParent element
+  // offsetWidth = The offsetWidth property returns the viewable width of an
+  // element in pixels, including padding, border and scrollbar, but not
+  // the margin.
+
+  /**
+   * Calculate margin offset
+   * tooltip trigger margin(position) offset + tooltipBody offsetWidth
+   * @param {String} marginPosition
+   * @param {Number} tooltipBodyOffset
+   * @param {HTMLElement} trigger
+   */
+  const calculateMarginOffset = (marginPosition, tooltipBodyOffset, trigger) => {
+    const offset = offsetMargin(trigger, `margin-${marginPosition}`) > 0 ? tooltipBodyOffset - offsetMargin(trigger, `margin-${marginPosition}`) : tooltipBodyOffset;
+    return offset;
+  };
+
+  /**
+   * Positions tooltip at the top
+   * @param {HTMLElement} e - this is the tooltip body
+   */
+  const positionTop = e => {
+    resetPositionStyles(e); // ensures we start from the same point
+    // get details on the elements object with
+
+    const topMargin = calculateMarginOffset("top", e.offsetHeight, tooltipTrigger);
+    const leftMargin = calculateMarginOffset("left", e.offsetWidth, tooltipTrigger);
+    setPositionClass("top");
+    e.style.left = `50%`; // center the element
+    e.style.top = `-${TRIANGLE_SIZE}px`; // consider the pseudo element
+    // apply our margins based on the offset
+    e.style.margin = `-${topMargin}px 0 0 -${leftMargin / 2}px`;
+  };
+
+  /**
+   * Positions tooltip at the bottom
+   * @param {HTMLElement} e - this is the tooltip body
+   */
+  const positionBottom = e => {
+    resetPositionStyles(e);
+    const leftMargin = calculateMarginOffset("left", e.offsetWidth, tooltipTrigger);
+    setPositionClass("bottom");
+    e.style.left = `50%`;
+    e.style.margin = `${TRIANGLE_SIZE}px 0 0 -${leftMargin / 2}px`;
+  };
+
+  /**
+   * Positions tooltip at the right
+   * @param {HTMLElement} e - this is the tooltip body
+   */
+  const positionRight = e => {
+    resetPositionStyles(e);
+    const topMargin = calculateMarginOffset("top", e.offsetHeight, tooltipTrigger);
+    setPositionClass("right");
+    e.style.top = `50%`;
+    e.style.left = `${tooltipTrigger.offsetLeft + tooltipTrigger.offsetWidth + TRIANGLE_SIZE}px`;
+    e.style.margin = `-${topMargin / 2}px 0 0 0`;
+  };
+
+  /**
+   * Positions tooltip at the right
+   * @param {HTMLElement} e - this is the tooltip body
+   */
+  const positionLeft = e => {
+    resetPositionStyles(e);
+    const topMargin = calculateMarginOffset("top", e.offsetHeight, tooltipTrigger);
+
+    // we have to check for some utility margins
+    const leftMargin = calculateMarginOffset("left", tooltipTrigger.offsetLeft > e.offsetWidth ? tooltipTrigger.offsetLeft - e.offsetWidth : e.offsetWidth, tooltipTrigger);
+    setPositionClass("left");
+    e.style.top = `50%`;
+    e.style.left = `-${TRIANGLE_SIZE}px`;
+    e.style.margin = `-${topMargin / 2}px 0 0 ${tooltipTrigger.offsetLeft > e.offsetWidth ? leftMargin : -leftMargin}px`; // adjust the margin
+  };
+
+  /**
+   * We try to set the position based on the
+   * original intention, but make adjustments
+   * if the element is clipped out of the viewport
+   * we constrain the width only as a last resort
+   * @param {HTMLElement} element(alias tooltipBody)
+   * @param {Number} attempt (--flag)
+   */
+
+  const maxAttempts = 2;
+  function findBestPosition(element, attempt = 1) {
+    // create array of optional positions
+    const positions = [positionTop, positionBottom, positionRight, positionLeft];
+    let hasVisiblePosition = false;
+
+    // we take a recursive approach
+    function tryPositions(i) {
+      if (i < positions.length) {
+        const pos = positions[i];
+        pos(element);
+        if (!isElementInViewport(element)) {
+          // eslint-disable-next-line no-param-reassign
+          tryPositions(i += 1);
+        } else {
+          hasVisiblePosition = true;
+        }
+      }
+    }
+    tryPositions(0);
+    // if we can't find a position we compress it and try again
+    if (!hasVisiblePosition) {
+      element.classList.add(ADJUST_WIDTH_CLASS);
+      if (attempt <= maxAttempts) {
+        // eslint-disable-next-line no-param-reassign
+        findBestPosition(element, attempt += 1);
+      }
+    }
+  }
+  switch (position) {
+    case "top":
+      positionTop(tooltipBody);
+      if (!isElementInViewport(tooltipBody)) {
+        findBestPosition(tooltipBody);
+      }
+      break;
+    case "bottom":
+      positionBottom(tooltipBody);
+      if (!isElementInViewport(tooltipBody)) {
+        findBestPosition(tooltipBody);
+      }
+      break;
+    case "right":
+      positionRight(tooltipBody);
+      if (!isElementInViewport(tooltipBody)) {
+        findBestPosition(tooltipBody);
+      }
+      break;
+    case "left":
+      positionLeft(tooltipBody);
+      if (!isElementInViewport(tooltipBody)) {
+        findBestPosition(tooltipBody);
+      }
+      break;
+    default:
+      // skip default case
+      break;
+  }
+
+  /**
+   * Actually show the tooltip. The VISIBLE_CLASS
+   * will change the opacity to 1
+   */
+  setTimeout(() => {
+    tooltipBody.classList.add(VISIBLE_CLASS);
+  }, 20);
+};
+
+/**
+ * Removes all the properties to show and position the tooltip,
+ * and resets the tooltip position to the original intention
+ * in case the window is resized or the element is moved through
+ * DOM manipulation.
+ * @param {HTMLElement} tooltipBody - The body of the tooltip
+ */
+const hideToolTip = tooltipBody => {
+  tooltipBody.classList.remove(VISIBLE_CLASS);
+  tooltipBody.classList.remove(SET_CLASS);
+  tooltipBody.classList.remove(ADJUST_WIDTH_CLASS);
+  tooltipBody.setAttribute("aria-hidden", "true");
+};
+
+/**
+ * Setup the tooltip component
+ * @param {HTMLElement} tooltipTrigger The element that creates the tooltip
+ */
+const setUpAttributes = tooltipTrigger => {
+  const tooltipID = `tooltip-${Math.floor(Math.random() * 900000) + 100000}`;
+  const tooltipContent = tooltipTrigger.getAttribute("title");
+  const wrapper = document.createElement("span");
+  const tooltipBody = document.createElement("span");
+  const additionalClasses = tooltipTrigger.getAttribute("data-classes");
+  let position = tooltipTrigger.getAttribute("data-position");
+
+  // Apply default position if not set as attribute
+  if (!position) {
+    position = "top";
+    tooltipTrigger.setAttribute("data-position", position);
+  }
+
+  // Set up tooltip attributes
+  tooltipTrigger.setAttribute("aria-describedby", tooltipID);
+  tooltipTrigger.setAttribute("tabindex", "0");
+  tooltipTrigger.removeAttribute("title");
+  tooltipTrigger.classList.remove(TOOLTIP_CLASS);
+  tooltipTrigger.classList.add(TOOLTIP_TRIGGER_CLASS);
+
+  // insert wrapper before el in the DOM tree
+  tooltipTrigger.parentNode.insertBefore(wrapper, tooltipTrigger);
+
+  // set up the wrapper
+  wrapper.appendChild(tooltipTrigger);
+  wrapper.classList.add(TOOLTIP_CLASS);
+  wrapper.appendChild(tooltipBody);
+
+  // Apply additional class names to wrapper element
+  if (additionalClasses) {
+    const classesArray = additionalClasses.split(" ");
+    classesArray.forEach(classname => wrapper.classList.add(classname));
+  }
+
+  // set up the tooltip body
+  tooltipBody.classList.add(TOOLTIP_BODY_CLASS);
+  tooltipBody.setAttribute("id", tooltipID);
+  tooltipBody.setAttribute("role", "tooltip");
+  tooltipBody.setAttribute("aria-hidden", "true");
+
+  // place the text in the tooltip
+  tooltipBody.textContent = tooltipContent;
+  return {
+    tooltipBody,
+    position,
+    tooltipContent,
+    wrapper
+  };
+};
+
+/**
+ * Hide all active tooltips when escape key is pressed.
+ */
+
+const handleEscape = () => {
+  const activeTooltips = selectOrMatches(`.${TOOLTIP_BODY_CLASS}.${SET_CLASS}`);
+  if (!activeTooltips) {
+    return;
+  }
+  activeTooltips.forEach(activeTooltip => hideToolTip(activeTooltip));
+};
+
+// Setup our function to run on various events
+const tooltip = behavior({
+  "mouseover focusin": {
+    [TOOLTIP](e) {
+      const trigger = e.target;
+      const elementType = trigger.nodeName;
+
+      // Initialize tooltip if it hasn't already
+      if (elementType === "BUTTON" && trigger.hasAttribute("title")) {
+        setUpAttributes(trigger);
+      }
+    },
+    [TOOLTIP_TRIGGER](e) {
+      const {
+        trigger,
+        body
+      } = getTooltipElements(e.target);
+      showToolTip(body, trigger, trigger.dataset.position);
+    }
+  },
+  focusout: {
+    [TOOLTIP_TRIGGER](e) {
+      const {
+        body
+      } = getTooltipElements(e.target);
+      hideToolTip(body);
+    }
+  },
+  keydown: {
+    [BODY]: keymap({
+      Escape: handleEscape
+    })
+  }
+}, {
+  init(root) {
+    selectOrMatches(TOOLTIP, root).forEach(tooltipTrigger => {
+      setUpAttributes(tooltipTrigger);
+      const {
+        body,
+        wrapper
+      } = getTooltipElements(tooltipTrigger);
+      wrapper.addEventListener("mouseleave", () => hideToolTip(body));
+    });
+  },
+  teardown(root) {
+    selectOrMatches(TOOLTIP, root).forEach(tooltipWrapper => {
+      tooltipWrapper.removeEventListener("mouseleave", hideToolTip);
+    });
+  },
+  setup: setUpAttributes,
+  getTooltipElements,
+  show: showToolTip,
+  hide: hideToolTip
+});
+module.exports = tooltip;
+
+},{"../../uswds-core/src/js/config":35,"../../uswds-core/src/js/utils/behavior":40,"../../uswds-core/src/js/utils/is-in-viewport":43,"../../uswds-core/src/js/utils/select-or-matches":47,"receptor/keymap":10}],34:[function(require,module,exports){
+"use strict";
+
+const behavior = require("../../uswds-core/src/js/utils/behavior");
+const validate = require("../../uswds-core/src/js/utils/validate-input");
+const {
+  prefix: PREFIX
+} = require("../../uswds-core/src/js/config");
+const selectOrMatches = require("../../uswds-core/src/js/utils/select-or-matches");
+const VALIDATE_INPUT = "input[data-validation-element],textarea[data-validation-element]";
+const CHECKLIST_ITEM = `.${PREFIX}-checklist__item`;
+
+// Trigger validation on input change
+const handleChange = el => validate(el);
+
+// Create container to hold aria readout
+const createStatusElement = input => {
+  const validationContainer = input.parentNode;
+  const inputID = input.getAttribute("id");
+  const statusSummaryID = `${inputID}-sr-summary`;
+  input.setAttribute("aria-describedby", statusSummaryID);
+  const statusSummaryContainer = document.createElement("span");
+  statusSummaryContainer.setAttribute("data-validation-status", "");
+  statusSummaryContainer.classList.add("usa-sr-only");
+  statusSummaryContainer.setAttribute("aria-live", "polite");
+  statusSummaryContainer.setAttribute("aria-atomic", true);
+  statusSummaryContainer.setAttribute("id", statusSummaryID);
+  validationContainer.append(statusSummaryContainer);
+};
+
+// Set up checklist items with initial aria-label (incomplete) values
+const createInitialStatus = input => {
+  const validationContainer = input.parentNode;
+  const checklistItems = validationContainer.querySelectorAll(CHECKLIST_ITEM);
+  const validationElement = input.getAttribute("data-validation-element");
+  input.setAttribute("aria-controls", validationElement);
+  checklistItems.forEach(listItem => {
+    let currentStatus = "status incomplete";
+    if (input.hasAttribute("data-validation-incomplete")) {
+      currentStatus = input.getAttribute("data-validation-incomplete");
+    }
+    const itemStatus = `${listItem.textContent} ${currentStatus} `;
+    listItem.setAttribute("aria-label", itemStatus);
+  });
+};
+const enhanceValidation = input => {
+  createStatusElement(input);
+  createInitialStatus(input);
+};
+const validator = behavior({
+  "input change": {
+    [VALIDATE_INPUT](event) {
+      handleChange(event.target);
+    }
+  }
+}, {
+  init(root) {
+    selectOrMatches(VALIDATE_INPUT, root).forEach(input => enhanceValidation(input));
+  }
+});
+module.exports = validator;
+
+},{"../../uswds-core/src/js/config":35,"../../uswds-core/src/js/utils/behavior":40,"../../uswds-core/src/js/utils/select-or-matches":47,"../../uswds-core/src/js/utils/validate-input":52}],35:[function(require,module,exports){
+"use strict";
+
+module.exports = {
+  prefix: "usa"
+};
+
+},{}],36:[function(require,module,exports){
+"use strict";
+
+module.exports = {
+  // This used to be conditionally dependent on whether the
+  // browser supported touch events; if it did, `CLICK` was set to
+  // `touchstart`.  However, this had downsides:
+  //
+  // * It pre-empted mobile browsers' default behavior of detecting
+  //   whether a touch turned into a scroll, thereby preventing
+  //   users from using some of our components as scroll surfaces.
+  //
+  // * Some devices, such as the Microsoft Surface Pro, support *both*
+  //   touch and clicks. This meant the conditional effectively dropped
+  //   support for the user's mouse, frustrating users who preferred
+  //   it on those systems.
+  CLICK: "click"
+};
+
+},{}],37:[function(require,module,exports){
+"use strict";
+
+const accordion = require("../../../usa-accordion/src/index");
+const banner = require("../../../usa-banner/src/index");
+const button = require("../../../usa-button/src/index");
+const characterCount = require("../../../usa-character-count/src/index");
+const comboBox = require("../../../usa-combo-box/src/index");
+const datePicker = require("../../../usa-date-picker/src/index");
+const dateRangePicker = require("../../../usa-date-range-picker/src/index");
+const fileInput = require("../../../usa-file-input/src/index");
+const footer = require("../../../usa-footer/src/index");
+const inPageNavigation = require("../../../usa-in-page-navigation/src/index");
+const inputMask = require("../../../usa-input-mask/src/index");
+const languageSelector = require("../../../usa-language-selector/src/index");
+const modal = require("../../../usa-modal/src/index");
+const navigation = require("../../../usa-header/src/index");
+const password = require("../../../_usa-password/src/index");
+const range = require("../../../usa-range/src/index");
+const search = require("../../../usa-search/src/index");
+const skipnav = require("../../../usa-skipnav/src/index");
+const table = require("../../../usa-table/src/index");
+const timePicker = require("../../../usa-time-picker/src/index");
+const tooltip = require("../../../usa-tooltip/src/index");
+const validator = require("../../../usa-validation/src/index");
+module.exports = {
+  accordion,
+  banner,
+  button,
+  characterCount,
+  comboBox,
+  datePicker,
+  dateRangePicker,
+  fileInput,
+  footer,
+  inPageNavigation,
+  inputMask,
+  languageSelector,
+  modal,
+  navigation,
+  password,
+  range,
+  search,
+  skipnav,
+  table,
+  timePicker,
+  tooltip,
+  validator
+};
+
+},{"../../../_usa-password/src/index":13,"../../../usa-accordion/src/index":14,"../../../usa-banner/src/index":15,"../../../usa-button/src/index":16,"../../../usa-character-count/src/index":17,"../../../usa-combo-box/src/index":18,"../../../usa-date-picker/src/index":19,"../../../usa-date-range-picker/src/index":20,"../../../usa-file-input/src/index":21,"../../../usa-footer/src/index":22,"../../../usa-header/src/index":23,"../../../usa-in-page-navigation/src/index":24,"../../../usa-input-mask/src/index":25,"../../../usa-language-selector/src/index":26,"../../../usa-modal/src/index":27,"../../../usa-range/src/index":28,"../../../usa-search/src/index":29,"../../../usa-skipnav/src/index":30,"../../../usa-table/src/index":31,"../../../usa-time-picker/src/index":32,"../../../usa-tooltip/src/index":33,"../../../usa-validation/src/index":34}],38:[function(require,module,exports){
+"use strict";
+
+window.uswdsPresent = true; // GLOBAL variable to indicate that the uswds.js has loaded in the DOM.
+
+const uswds = require("./config");
+const components = require("./index");
+uswds.components = components;
+const initComponents = () => {
+  const target = document.body;
+  Object.keys(components).forEach(key => {
+    const behavior = components[key];
+    behavior.on(target);
+  });
+};
+if (document.readyState === "loading") {
+  document.addEventListener("DOMContentLoaded", initComponents, {
+    once: true
+  });
+} else {
+  initComponents();
+}
+exports.default = uswds;
+exports.initComponents = initComponents;
+
+},{"./config":35,"./index":37}],39:[function(require,module,exports){
+"use strict";
+
+module.exports = (htmlDocument = document) => htmlDocument.activeElement;
+
+},{}],40:[function(require,module,exports){
+"use strict";
+
+const Behavior = require("receptor/behavior");
+
+/**
+ * @name sequence
+ * @param {...Function} seq an array of functions
+ * @return { closure } callHooks
+ */
+// We use a named function here because we want it to inherit its lexical scope
+// from the behavior props object, not from the module
+const sequence = (...seq) => function callHooks(target = document.body) {
+  seq.forEach(method => {
+    if (typeof this[method] === "function") {
+      this[method].call(this, target);
+    }
+  });
+};
+
+/**
+ * @name behavior
+ * @param {object} events
+ * @param {object?} props
+ * @return {receptor.behavior}
+ */
+module.exports = (events, props) => Behavior(events, {
+  on: sequence("init", "add"),
+  off: sequence("teardown", "remove"),
+  ...props
+});
+
+},{"receptor/behavior":4}],41:[function(require,module,exports){
+"use strict";
+
+/**
+ * Call a function every X amount of milliseconds.
+ *
+ * @param  {Function} callback - A callback function to be debounced
+ * @param  {number} delay - Milliseconds to wait before calling function
+ * @returns {Function} A debounced function
+ * @example const updateStatus = debounce((string) => console.log(string), 2000)
+ */
+
+module.exports = function debounce(callback, delay = 500) {
+  let timer = null;
+  return (...args) => {
+    window.clearTimeout(timer);
+    timer = window.setTimeout(() => {
+      callback.apply(this, args);
+    }, delay);
+  };
+};
+
+},{}],42:[function(require,module,exports){
+"use strict";
+
+const {
+  keymap
+} = require("receptor");
+const behavior = require("./behavior");
+const select = require("./select");
+const activeElement = require("./active-element");
+const FOCUSABLE = 'a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, [tabindex="0"], [contenteditable]';
+const tabHandler = context => {
+  const focusableElements = select(FOCUSABLE, context);
+  const firstTabStop = focusableElements[0];
+  const lastTabStop = focusableElements[focusableElements.length - 1];
+
+  // Special rules for when the user is tabbing forward from the last focusable element,
+  // or when tabbing backwards from the first focusable element
+  function tabAhead(event) {
+    if (activeElement() === lastTabStop) {
+      event.preventDefault();
+      firstTabStop.focus();
+    }
+  }
+  function tabBack(event) {
+    if (activeElement() === firstTabStop) {
+      event.preventDefault();
+      lastTabStop.focus();
+    }
+    // This checks if you want to set the initial focus to a container
+    // instead of an element within, and the user tabs back.
+    // Then we set the focus to the first
+    else if (!focusableElements.includes(activeElement())) {
+      event.preventDefault();
+      firstTabStop.focus();
+    }
+  }
+  return {
+    firstTabStop,
+    lastTabStop,
+    tabAhead,
+    tabBack
+  };
+};
+module.exports = (context, additionalKeyBindings = {}) => {
+  const tabEventHandler = tabHandler(context);
+  const bindings = additionalKeyBindings;
+  const {
+    Esc,
+    Escape
+  } = bindings;
+  if (Escape && !Esc) bindings.Esc = Escape;
+
+  //  TODO: In the future, loop over additional keybindings and pass an array
+  // of functions, if necessary, to the map keys. Then people implementing
+  // the focus trap could pass callbacks to fire when tabbing
+  const keyMappings = keymap({
+    Tab: tabEventHandler.tabAhead,
+    "Shift+Tab": tabEventHandler.tabBack,
+    ...additionalKeyBindings
+  });
+  const focusTrap = behavior({
+    keydown: keyMappings
+  }, {
+    init() {
+      // TODO: is this desireable behavior? Should the trap always do this by default or should
+      // the component getting decorated handle this?
+      if (tabEventHandler.firstTabStop) {
+        tabEventHandler.firstTabStop.focus();
+      }
+    },
+    update(isActive) {
+      if (isActive) {
+        this.on();
+      } else {
+        this.off();
+      }
+    }
+  });
+  return focusTrap;
+};
+
+},{"./active-element":39,"./behavior":40,"./select":48,"receptor":9}],43:[function(require,module,exports){
+"use strict";
+
+// https://stackoverflow.com/a/7557433
+function isElementInViewport(el, win = window, docEl = document.documentElement) {
+  const rect = el.getBoundingClientRect();
+  return rect.top >= 0 && rect.left >= 0 && rect.bottom <= (win.innerHeight || docEl.clientHeight) && rect.right <= (win.innerWidth || docEl.clientWidth);
+}
+module.exports = isElementInViewport;
+
+},{}],44:[function(require,module,exports){
+"use strict";
+
+// iOS detection from: http://stackoverflow.com/a/9039885/177710
+function isIosDevice() {
+  return typeof navigator !== "undefined" && (navigator.userAgent.match(/(iPod|iPhone|iPad)/g) || navigator.platform === "MacIntel" && navigator.maxTouchPoints > 1) && !window.MSStream;
+}
+module.exports = isIosDevice;
+
+},{}],45:[function(require,module,exports){
+"use strict";
+
+/* eslint-disable */
+/* globals define, module */
+
+/**
+ * A simple library to help you escape HTML using template strings.
+ *
+ * It's the counterpart to our eslint "no-unsafe-innerhtml" plugin that helps us
+ * avoid unsafe coding practices.
+ * A full write-up of the Hows and Whys are documented
+ * for developers at
+ *  https://developer.mozilla.org/en-US/Firefox_OS/Security/Security_Automation
+ * with additional background information and design docs at
+ *  https://wiki.mozilla.org/User:Fbraun/Gaia/SafeinnerHTMLRoadmap
+ *
+ */
+
+!function (factory) {
+  module.exports = factory();
+}(function () {
+  "use strict";
+
+  var Sanitizer = {
+    _entity: /[&<>"'/]/g,
+    _entities: {
+      "&": "&amp;",
+      "<": "&lt;",
+      ">": "&gt;",
+      '"': "&quot;",
+      "'": "&apos;",
+      "/": "&#x2F;"
+    },
+    getEntity: function (s) {
+      return Sanitizer._entities[s];
+    },
+    /**
+     * Escapes HTML for all values in a tagged template string.
+     */
+    escapeHTML: function (strings) {
+      var result = "";
+      for (var i = 0; i < strings.length; i++) {
+        result += strings[i];
+        if (i + 1 < arguments.length) {
+          var value = arguments[i + 1] || "";
+          result += String(value).replace(Sanitizer._entity, Sanitizer.getEntity);
+        }
+      }
+      return result;
+    },
+    /**
+     * Escapes HTML and returns a wrapped object to be used during DOM insertion
+     */
+    createSafeHTML: function (strings) {
+      var _len = arguments.length;
+      var values = new Array(_len > 1 ? _len - 1 : 0);
+      for (var _key = 1; _key < _len; _key++) {
+        values[_key - 1] = arguments[_key];
+      }
+      var escaped = Sanitizer.escapeHTML.apply(Sanitizer, [strings].concat(values));
+      return {
+        __html: escaped,
+        toString: function () {
+          return "[object WrappedHTMLObject]";
+        },
+        info: "This is a wrapped HTML object. See https://developer.mozilla.or" + "g/en-US/Firefox_OS/Security/Security_Automation for more."
+      };
+    },
+    /**
+     * Unwrap safe HTML created by createSafeHTML or a custom replacement that
+     * underwent security review.
+     */
+    unwrapSafeHTML: function () {
+      var _len = arguments.length;
+      var htmlObjects = new Array(_len);
+      for (var _key = 0; _key < _len; _key++) {
+        htmlObjects[_key] = arguments[_key];
+      }
+      var markupList = htmlObjects.map(function (obj) {
+        return obj.__html;
+      });
+      return markupList.join("");
+    }
+  };
+  return Sanitizer;
+});
+
+},{}],46:[function(require,module,exports){
+"use strict";
+
+module.exports = function getScrollbarWidth() {
+  // Creating invisible container
+  const outer = document.createElement("div");
+  outer.style.visibility = "hidden";
+  outer.style.overflow = "scroll"; // forcing scrollbar to appear
+  outer.style.msOverflowStyle = "scrollbar"; // needed for WinJS apps
+  document.body.appendChild(outer);
+
+  // Creating inner element and placing it in the container
+  const inner = document.createElement("div");
+  outer.appendChild(inner);
+
+  // Calculating difference between container's full width and the child width
+  const scrollbarWidth = `${outer.offsetWidth - inner.offsetWidth}px`;
+
+  // Removing temporary elements from the DOM
+  outer.parentNode.removeChild(outer);
+  return scrollbarWidth;
+};
+
+},{}],47:[function(require,module,exports){
+"use strict";
+
+const select = require("./select");
+/**
+ * @name isElement
+ * @desc returns whether or not the given argument is a DOM element.
+ * @param {any} value
+ * @return {boolean}
+ */
+const isElement = value => value && typeof value === "object" && value.nodeType === 1;
+
+/**
+ * @name selectOrMatches
+ * @desc selects elements from the DOM by class selector or ID selector.
+ * @param {string} selector - The selector to traverse the DOM with.
+ * @param {Document|HTMLElement?} context - The context to traverse the DOM
+ *   in. If not provided, it defaults to the document.
+ * @return {HTMLElement[]} - An array of DOM nodes or an empty array.
+ */
+module.exports = (selector, context) => {
+  const selection = select(selector, context);
+  if (typeof selector !== "string") {
+    return selection;
+  }
+  if (isElement(context) && context.matches(selector)) {
+    selection.push(context);
+  }
+  return selection;
+};
+
+},{"./select":48}],48:[function(require,module,exports){
+"use strict";
+
+/**
+ * @name isElement
+ * @desc returns whether or not the given argument is a DOM element.
+ * @param {any} value
+ * @return {boolean}
+ */
+const isElement = value => value && typeof value === "object" && value.nodeType === 1;
+
+/**
+ * @name select
+ * @desc selects elements from the DOM by class selector or ID selector.
+ * @param {string} selector - The selector to traverse the DOM with.
+ * @param {Document|HTMLElement?} context - The context to traverse the DOM
+ *   in. If not provided, it defaults to the document.
+ * @return {HTMLElement[]} - An array of DOM nodes or an empty array.
+ */
+module.exports = (selector, context) => {
+  if (typeof selector !== "string") {
+    return [];
+  }
+  if (!context || !isElement(context)) {
+    context = window.document; // eslint-disable-line no-param-reassign
+  }
+  const selection = context.querySelectorAll(selector);
+  return Array.prototype.slice.call(selection);
+};
+
+},{}],49:[function(require,module,exports){
+"use strict";
+
+/**
+ * Flips given INPUT elements between masked (hiding the field value) and unmasked
+ * @param {Array.HTMLElement} fields - An array of INPUT elements
+ * @param {Boolean} mask - Whether the mask should be applied, hiding the field value
+ */
+module.exports = (field, mask) => {
+  field.setAttribute("autocapitalize", "off");
+  field.setAttribute("autocorrect", "off");
+  field.setAttribute("type", mask ? "password" : "text");
+};
+
+},{}],50:[function(require,module,exports){
+"use strict";
+
+const resolveIdRefs = require("resolve-id-refs");
+const toggleFieldMask = require("./toggle-field-mask");
+const CONTROLS = "aria-controls";
+const PRESSED = "aria-pressed";
+const SHOW_ATTR = "data-show-text";
+const HIDE_ATTR = "data-hide-text";
+
+/**
+ * Replace the word "Show" (or "show") with "Hide" (or "hide") in a string.
+ * @param {string} showText
+ * @return {strong} hideText
+ */
+const getHideText = showText => showText.replace(/\bShow\b/i, show => `${show[0] === "S" ? "H" : "h"}ide`);
+
+/**
+ * Component that decorates an HTML element with the ability to toggle the
+ * masked state of an input field (like a password) when clicked.
+ * The ids of the fields to be masked will be pulled directly from the button's
+ * `aria-controls` attribute.
+ *
+ * @param  {HTMLElement} el    Parent element containing the fields to be masked
+ * @return {boolean}
+ */
+module.exports = el => {
+  // this is the *target* state:
+  // * if the element has the attr and it's !== "true", pressed is true
+  // * otherwise, pressed is false
+  const pressed = el.hasAttribute(PRESSED) && el.getAttribute(PRESSED) !== "true";
+  const fields = resolveIdRefs(el.getAttribute(CONTROLS));
+  fields.forEach(field => toggleFieldMask(field, pressed));
+  if (!el.hasAttribute(SHOW_ATTR)) {
+    el.setAttribute(SHOW_ATTR, el.textContent);
+  }
+  const showText = el.getAttribute(SHOW_ATTR);
+  const hideText = el.getAttribute(HIDE_ATTR) || getHideText(showText);
+  el.textContent = pressed ? showText : hideText; // eslint-disable-line no-param-reassign
+  el.setAttribute(PRESSED, pressed);
+  return pressed;
+};
+
+},{"./toggle-field-mask":49,"resolve-id-refs":12}],51:[function(require,module,exports){
+"use strict";
+
+const EXPANDED = "aria-expanded";
+const CONTROLS = "aria-controls";
+const HIDDEN = "hidden";
+module.exports = (button, expanded) => {
+  let safeExpanded = expanded;
+  if (typeof safeExpanded !== "boolean") {
+    safeExpanded = button.getAttribute(EXPANDED) === "false";
+  }
+  button.setAttribute(EXPANDED, safeExpanded);
+  const id = button.getAttribute(CONTROLS);
+  const controls = document.getElementById(id);
+  if (!controls) {
+    throw new Error(`No toggle target found with id: "${id}"`);
+  }
+  if (safeExpanded) {
+    controls.removeAttribute(HIDDEN);
+  } else {
+    controls.setAttribute(HIDDEN, "");
+  }
+  return safeExpanded;
+};
+
+},{}],52:[function(require,module,exports){
+"use strict";
+
+const debounce = require("./debounce");
+const {
+  prefix: PREFIX
+} = require("../config");
+const CHECKED_CLASS = `${PREFIX}-checklist__item--checked`;
+module.exports = function validate(el) {
+  const id = el.dataset.validationElement;
+  const checkList = id.charAt(0) === "#" ? document.querySelector(id) : document.getElementById(id);
+  if (!checkList) {
+    throw new Error(`No validation element found with id: "${id}"`);
+  }
+  let statusSummary = "";
+  Object.entries(el.dataset).forEach(([key, value]) => {
+    if (key.startsWith("validate")) {
+      const validatorName = key.substr("validate".length).toLowerCase();
+      const validatorPattern = new RegExp(value);
+      const validatorSelector = `[data-validator="${validatorName}"]`;
+      const validatorCheckbox = checkList.querySelector(validatorSelector);
+      const validatorParent = el.parentNode;
+      const statusSummaryContainer = validatorParent.querySelector(`[data-validation-status]`);
+      const checked = validatorPattern.test(el.value);
+      validatorCheckbox.classList.toggle(CHECKED_CLASS, checked);
+      if (!validatorCheckbox) {
+        throw new Error(`No validator checkbox found for: "${validatorName}"`);
+      }
+
+      // Create status reports for checklist items
+      const statusComplete = el.dataset.validationComplete || "status complete";
+      const statusIncomplete = el.dataset.validationIncomplete || "status incomplete";
+      let checkboxContent = `${validatorCheckbox.textContent} `;
+      if (validatorCheckbox.classList.contains(CHECKED_CLASS)) {
+        checkboxContent += statusComplete;
+      } else {
+        checkboxContent += statusIncomplete;
+      }
+
+      // move status updates to aria-label on checklist item
+      validatorCheckbox.setAttribute("aria-label", checkboxContent);
+
+      // Create a summary of status for all checklist items
+      statusSummary += `${checkboxContent}. `;
+
+      // Add summary to screen reader summary container, after a delay
+      const srUpdateStatus = debounce(() => {
+        statusSummaryContainer.textContent = statusSummary;
+      }, 1000);
+      srUpdateStatus();
+    }
+  });
+};
+
+},{"../config":35,"./debounce":41}]},{},[38])
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJub2RlX21vZHVsZXMvZWxlbWVudC1jbG9zZXN0L2VsZW1lbnQtY2xvc2VzdC5qcyIsIm5vZGVfbW9kdWxlcy9rZXlib2FyZGV2ZW50LWtleS1wb2x5ZmlsbC9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9vYmplY3QtYXNzaWduL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL3JlY2VwdG9yL2JlaGF2aW9yL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL3JlY2VwdG9yL2NvbXBvc2UvaW5kZXguanMiLCJub2RlX21vZHVsZXMvcmVjZXB0b3IvZGVsZWdhdGUvaW5kZXguanMiLCJub2RlX21vZHVsZXMvcmVjZXB0b3IvZGVsZWdhdGVBbGwvaW5kZXguanMiLCJub2RlX21vZHVsZXMvcmVjZXB0b3IvaWdub3JlL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL3JlY2VwdG9yL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL3JlY2VwdG9yL2tleW1hcC9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9yZWNlcHRvci9vbmNlL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL3Jlc29sdmUtaWQtcmVmcy9pbmRleC5qcyIsInBhY2thZ2VzL191c2EtcGFzc3dvcmQvc3JjL2luZGV4LmpzIiwicGFja2FnZXMvdXNhLWFjY29yZGlvbi9zcmMvaW5kZXguanMiLCJwYWNrYWdlcy91c2EtYmFubmVyL3NyYy9pbmRleC5qcyIsInBhY2thZ2VzL3VzYS1idXR0b24vc3JjL2luZGV4LmpzIiwicGFja2FnZXMvdXNhLWNoYXJhY3Rlci1jb3VudC9zcmMvaW5kZXguanMiLCJwYWNrYWdlcy91c2EtY29tYm8tYm94L3NyYy9pbmRleC5qcyIsInBhY2thZ2VzL3VzYS1kYXRlLXBpY2tlci9zcmMvaW5kZXguanMiLCJwYWNrYWdlcy91c2EtZGF0ZS1yYW5nZS1waWNrZXIvc3JjL2luZGV4LmpzIiwicGFja2FnZXMvdXNhLWZpbGUtaW5wdXQvc3JjL2luZGV4LmpzIiwicGFja2FnZXMvdXNhLWZvb3Rlci9zcmMvaW5kZXguanMiLCJwYWNrYWdlcy91c2EtaGVhZGVyL3NyYy9pbmRleC5qcyIsInBhY2thZ2VzL3VzYS1pbi1wYWdlLW5hdmlnYXRpb24vc3JjL2luZGV4LmpzIiwicGFja2FnZXMvdXNhLWlucHV0LW1hc2svc3JjL2luZGV4LmpzIiwicGFja2FnZXMvdXNhLWxhbmd1YWdlLXNlbGVjdG9yL3NyYy9pbmRleC5qcyIsInBhY2thZ2VzL3VzYS1tb2RhbC9zcmMvaW5kZXguanMiLCJwYWNrYWdlcy91c2EtcmFuZ2Uvc3JjL2luZGV4LmpzIiwicGFja2FnZXMvdXNhLXNlYXJjaC9zcmMvaW5kZXguanMiLCJwYWNrYWdlcy91c2Etc2tpcG5hdi9zcmMvaW5kZXguanMiLCJwYWNrYWdlcy91c2EtdGFibGUvc3JjL2luZGV4LmpzIiwicGFja2FnZXMvdXNhLXRpbWUtcGlja2VyL3NyYy9pbmRleC5qcyIsInBhY2thZ2VzL3VzYS10b29sdGlwL3NyYy9pbmRleC5qcyIsInBhY2thZ2VzL3VzYS12YWxpZGF0aW9uL3NyYy9pbmRleC5qcyIsInBhY2thZ2VzL3Vzd2RzLWNvcmUvc3JjL2pzL2NvbmZpZy5qcyIsInBhY2thZ2VzL3Vzd2RzLWNvcmUvc3JjL2pzL2V2ZW50cy5qcyIsInBhY2thZ2VzL3Vzd2RzLWNvcmUvc3JjL2pzL2luZGV4LmpzIiwicGFja2FnZXMvdXN3ZHMtY29yZS9zcmMvanMvc3RhcnQuanMiLCJwYWNrYWdlcy91c3dkcy1jb3JlL3NyYy9qcy91dGlscy9hY3RpdmUtZWxlbWVudC5qcyIsInBhY2thZ2VzL3Vzd2RzLWNvcmUvc3JjL2pzL3V0aWxzL2JlaGF2aW9yLmpzIiwicGFja2FnZXMvdXN3ZHMtY29yZS9zcmMvanMvdXRpbHMvZGVib3VuY2UuanMiLCJwYWNrYWdlcy91c3dkcy1jb3JlL3NyYy9qcy91dGlscy9mb2N1cy10cmFwLmpzIiwicGFja2FnZXMvdXN3ZHMtY29yZS9zcmMvanMvdXRpbHMvaXMtaW4tdmlld3BvcnQuanMiLCJwYWNrYWdlcy91c3dkcy1jb3JlL3NyYy9qcy91dGlscy9pcy1pb3MtZGV2aWNlLmpzIiwicGFja2FnZXMvdXN3ZHMtY29yZS9zcmMvanMvdXRpbHMvc2FuaXRpemVyLmpzIiwicGFja2FnZXMvdXN3ZHMtY29yZS9zcmMvanMvdXRpbHMvc2Nyb2xsYmFyLXdpZHRoLmpzIiwicGFja2FnZXMvdXN3ZHMtY29yZS9zcmMvanMvdXRpbHMvc2VsZWN0LW9yLW1hdGNoZXMuanMiLCJwYWNrYWdlcy91c3dkcy1jb3JlL3NyYy9qcy91dGlscy9zZWxlY3QuanMiLCJwYWNrYWdlcy91c3dkcy1jb3JlL3NyYy9qcy91dGlscy90b2dnbGUtZmllbGQtbWFzay5qcyIsInBhY2thZ2VzL3Vzd2RzLWNvcmUvc3JjL2pzL3V0aWxzL3RvZ2dsZS1mb3JtLWlucHV0LmpzIiwicGFja2FnZXMvdXN3ZHMtY29yZS9zcmMvanMvdXRpbHMvdG9nZ2xlLmpzIiwicGFja2FnZXMvdXN3ZHMtY29yZS9zcmMvanMvdXRpbHMvdmFsaWRhdGUtaW5wdXQuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztBQ0FBOztBQUVBLENBQUMsVUFBVSxZQUFZLEVBQUU7RUFDeEIsSUFBSSxPQUFPLFlBQVksQ0FBQyxPQUFPLEtBQUssVUFBVSxFQUFFO0lBQy9DLFlBQVksQ0FBQyxPQUFPLEdBQUcsWUFBWSxDQUFDLGlCQUFpQixJQUFJLFlBQVksQ0FBQyxrQkFBa0IsSUFBSSxZQUFZLENBQUMscUJBQXFCLElBQUksU0FBUyxPQUFPLENBQUMsUUFBUSxFQUFFO01BQzVKLElBQUksT0FBTyxHQUFHLElBQUk7TUFDbEIsSUFBSSxRQUFRLEdBQUcsQ0FBQyxPQUFPLENBQUMsUUFBUSxJQUFJLE9BQU8sQ0FBQyxhQUFhLEVBQUUsZ0JBQWdCLENBQUMsUUFBUSxDQUFDO01BQ3JGLElBQUksS0FBSyxHQUFHLENBQUM7TUFFYixPQUFPLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssT0FBTyxFQUFFO1FBQ3RELEVBQUUsS0FBSztNQUNSO01BRUEsT0FBTyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hDLENBQUM7RUFDRjtFQUVBLElBQUksT0FBTyxZQUFZLENBQUMsT0FBTyxLQUFLLFVBQVUsRUFBRTtJQUMvQyxZQUFZLENBQUMsT0FBTyxHQUFHLFNBQVMsT0FBTyxDQUFDLFFBQVEsRUFBRTtNQUNqRCxJQUFJLE9BQU8sR0FBRyxJQUFJO01BRWxCLE9BQU8sT0FBTyxJQUFJLE9BQU8sQ0FBQyxRQUFRLEtBQUssQ0FBQyxFQUFFO1FBQ3pDLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtVQUM5QixPQUFPLE9BQU87UUFDZjtRQUVBLE9BQU8sR0FBRyxPQUFPLENBQUMsVUFBVTtNQUM3QjtNQUVBLE9BQU8sSUFBSTtJQUNaLENBQUM7RUFDRjtBQUNELENBQUMsRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQzs7Ozs7QUNoQzVCOztBQUVBLENBQUMsWUFBWTtFQUVYLElBQUksd0JBQXdCLEdBQUc7SUFDN0IsUUFBUSxFQUFFLFFBQVE7SUFDbEIsSUFBSSxFQUFFO01BQ0osQ0FBQyxFQUFFLFFBQVE7TUFDWCxDQUFDLEVBQUUsTUFBTTtNQUNULENBQUMsRUFBRSxXQUFXO01BQ2QsQ0FBQyxFQUFFLEtBQUs7TUFDUixFQUFFLEVBQUUsT0FBTztNQUNYLEVBQUUsRUFBRSxPQUFPO01BQ1gsRUFBRSxFQUFFLE9BQU87TUFDWCxFQUFFLEVBQUUsU0FBUztNQUNiLEVBQUUsRUFBRSxLQUFLO01BQ1QsRUFBRSxFQUFFLE9BQU87TUFDWCxFQUFFLEVBQUUsVUFBVTtNQUNkLEVBQUUsRUFBRSxRQUFRO01BQ1osRUFBRSxFQUFFLFNBQVM7TUFDYixFQUFFLEVBQUUsWUFBWTtNQUNoQixFQUFFLEVBQUUsUUFBUTtNQUNaLEVBQUUsRUFBRSxZQUFZO01BQ2hCLEVBQUUsRUFBRSxHQUFHO01BQ1AsRUFBRSxFQUFFLFFBQVE7TUFDWixFQUFFLEVBQUUsVUFBVTtNQUNkLEVBQUUsRUFBRSxLQUFLO01BQ1QsRUFBRSxFQUFFLE1BQU07TUFDVixFQUFFLEVBQUUsV0FBVztNQUNmLEVBQUUsRUFBRSxTQUFTO01BQ2IsRUFBRSxFQUFFLFlBQVk7TUFDaEIsRUFBRSxFQUFFLFdBQVc7TUFDZixFQUFFLEVBQUUsUUFBUTtNQUNaLEVBQUUsRUFBRSxPQUFPO01BQ1gsRUFBRSxFQUFFLFNBQVM7TUFDYixFQUFFLEVBQUUsYUFBYTtNQUNqQixFQUFFLEVBQUUsUUFBUTtNQUNaLEVBQUUsRUFBRSxRQUFRO01BQ1osRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQztNQUNkLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUM7TUFDZCxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDO01BQ2QsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQztNQUNkLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUM7TUFDZCxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDO01BQ2QsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQztNQUNkLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUM7TUFDZCxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDO01BQ2QsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQztNQUNkLEVBQUUsRUFBRSxJQUFJO01BQ1IsRUFBRSxFQUFFLGFBQWE7TUFDakIsR0FBRyxFQUFFLFNBQVM7TUFDZCxHQUFHLEVBQUUsWUFBWTtNQUNqQixHQUFHLEVBQUUsWUFBWTtNQUNqQixHQUFHLEVBQUUsWUFBWTtNQUNqQixHQUFHLEVBQUUsVUFBVTtNQUNmLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUM7TUFDZixHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDO01BQ2YsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQztNQUNmLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUM7TUFDZixHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDO01BQ2YsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQztNQUNmLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUM7TUFDZixHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDO01BQ2YsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQztNQUNoQixHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDO01BQ2YsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQztNQUNmLEdBQUcsRUFBRSxNQUFNO01BQ1gsR0FBRyxFQUFFLFVBQVU7TUFDZixHQUFHLEVBQUUsTUFBTTtNQUNYLEdBQUcsRUFBRSxPQUFPO01BQ1osR0FBRyxFQUFFLE9BQU87TUFDWixHQUFHLEVBQUUsVUFBVTtNQUNmLEdBQUcsRUFBRSxNQUFNO01BQ1gsR0FBRyxFQUFFO0lBQ1A7RUFDRixDQUFDOztFQUVEO0VBQ0EsSUFBSSxDQUFDO0VBQ0wsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUU7SUFDdkIsd0JBQXdCLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztFQUNsRDs7RUFFQTtFQUNBLElBQUksTUFBTSxHQUFHLEVBQUU7RUFDZixLQUFLLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRTtJQUN4QixNQUFNLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7SUFDL0Isd0JBQXdCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7RUFDakY7RUFFQSxTQUFTLFFBQVEsQ0FBQSxFQUFJO0lBQ25CLElBQUksRUFBRSxlQUFlLElBQUksTUFBTSxDQUFDLElBQzVCLEtBQUssSUFBSSxhQUFhLENBQUMsU0FBUyxFQUFFO01BQ3BDLE9BQU8sS0FBSztJQUNkOztJQUVBO0lBQ0EsSUFBSSxLQUFLLEdBQUc7TUFDVixHQUFHLEVBQUUsU0FBQSxDQUFVLENBQUMsRUFBRTtRQUNoQixJQUFJLEdBQUcsR0FBRyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDO1FBRW5FLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtVQUN0QixHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUMzQjtRQUVBLE9BQU8sR0FBRztNQUNaO0lBQ0YsQ0FBQztJQUNELE1BQU0sQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDO0lBQzVELE9BQU8sS0FBSztFQUNkO0VBRUEsSUFBSSxPQUFPLE1BQU0sS0FBSyxVQUFVLElBQUksTUFBTSxDQUFDLEdBQUcsRUFBRTtJQUM5QyxNQUFNLENBQUMsNEJBQTRCLEVBQUUsd0JBQXdCLENBQUM7RUFDaEUsQ0FBQyxNQUFNLElBQUksT0FBTyxPQUFPLEtBQUssV0FBVyxJQUFJLE9BQU8sTUFBTSxLQUFLLFdBQVcsRUFBRTtJQUMxRSxNQUFNLENBQUMsT0FBTyxHQUFHLHdCQUF3QjtFQUMzQyxDQUFDLE1BQU0sSUFBSSxNQUFNLEVBQUU7SUFDakIsTUFBTSxDQUFDLHdCQUF3QixHQUFHLHdCQUF3QjtFQUM1RDtBQUVGLENBQUMsRUFBRSxDQUFDOzs7QUN4SEo7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxZQUFZOztBQUNaO0FBQ0EsSUFBSSxxQkFBcUIsR0FBRyxNQUFNLENBQUMscUJBQXFCO0FBQ3hELElBQUksY0FBYyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYztBQUNwRCxJQUFJLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsb0JBQW9CO0FBRTVELFNBQVMsUUFBUSxDQUFDLEdBQUcsRUFBRTtFQUN0QixJQUFJLEdBQUcsS0FBSyxJQUFJLElBQUksR0FBRyxLQUFLLFNBQVMsRUFBRTtJQUN0QyxNQUFNLElBQUksU0FBUyxDQUFDLHVEQUF1RCxDQUFDO0VBQzdFO0VBRUEsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDO0FBQ25CO0FBRUEsU0FBUyxlQUFlLENBQUEsRUFBRztFQUMxQixJQUFJO0lBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7TUFDbkIsT0FBTyxLQUFLO0lBQ2I7O0lBRUE7O0lBRUE7SUFDQSxJQUFJLEtBQUssR0FBRyxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFFO0lBQ2hDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJO0lBQ2YsSUFBSSxNQUFNLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxFQUFFO01BQ2pELE9BQU8sS0FBSztJQUNiOztJQUVBO0lBQ0EsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDO0lBQ2QsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRTtNQUM1QixLQUFLLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO0lBQ3hDO0lBQ0EsSUFBSSxNQUFNLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRTtNQUMvRCxPQUFPLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDaEIsQ0FBQyxDQUFDO0lBQ0YsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLFlBQVksRUFBRTtNQUNyQyxPQUFPLEtBQUs7SUFDYjs7SUFFQTtJQUNBLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztJQUNkLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxNQUFNLEVBQUU7TUFDMUQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLE1BQU07SUFDdkIsQ0FBQyxDQUFDO0lBQ0YsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQ2hELHNCQUFzQixFQUFFO01BQ3pCLE9BQU8sS0FBSztJQUNiO0lBRUEsT0FBTyxJQUFJO0VBQ1osQ0FBQyxDQUFDLE9BQU8sR0FBRyxFQUFFO0lBQ2I7SUFDQSxPQUFPLEtBQUs7RUFDYjtBQUNEO0FBRUEsTUFBTSxDQUFDLE9BQU8sR0FBRyxlQUFlLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEdBQUcsVUFBVSxNQUFNLEVBQUUsTUFBTSxFQUFFO0VBQzlFLElBQUksSUFBSTtFQUNSLElBQUksRUFBRSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUM7RUFDekIsSUFBSSxPQUFPO0VBRVgsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7SUFDMUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFM0IsS0FBSyxJQUFJLEdBQUcsSUFBSSxJQUFJLEVBQUU7TUFDckIsSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRTtRQUNuQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQztNQUNwQjtJQUNEO0lBRUEsSUFBSSxxQkFBcUIsRUFBRTtNQUMxQixPQUFPLEdBQUcscUJBQXFCLENBQUMsSUFBSSxDQUFDO01BQ3JDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQ3hDLElBQUksZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtVQUM1QyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNsQztNQUNEO0lBQ0Q7RUFDRDtFQUVBLE9BQU8sRUFBRTtBQUNWLENBQUM7Ozs7O0FDekZELE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxlQUFlLENBQUM7QUFDdkMsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQztBQUN2QyxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsZ0JBQWdCLENBQUM7QUFFN0MsTUFBTSxnQkFBZ0IsR0FBRyx5QkFBeUI7QUFDbEQsTUFBTSxLQUFLLEdBQUcsR0FBRztBQUVqQixNQUFNLFlBQVksR0FBRyxTQUFBLENBQVMsSUFBSSxFQUFFLE9BQU8sRUFBRTtFQUMzQyxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDO0VBQ3hDLElBQUksUUFBUTtFQUNaLElBQUksS0FBSyxFQUFFO0lBQ1QsSUFBSSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDZixRQUFRLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztFQUNyQjtFQUVBLElBQUksT0FBTztFQUNYLElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxFQUFFO0lBQy9CLE9BQU8sR0FBRztNQUNSLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQztNQUNuQyxPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU8sRUFBRSxTQUFTO0lBQ3BDLENBQUM7RUFDSDtFQUVBLElBQUksUUFBUSxHQUFHO0lBQ2IsUUFBUSxFQUFFLFFBQVE7SUFDbEIsUUFBUSxFQUFHLE9BQU8sT0FBTyxLQUFLLFFBQVEsR0FDbEMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxHQUNwQixRQUFRLEdBQ04sUUFBUSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsR0FDM0IsT0FBTztJQUNiLE9BQU8sRUFBRTtFQUNYLENBQUM7RUFFRCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7SUFDNUIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFTLEtBQUssRUFBRTtNQUMzQyxPQUFPLE1BQU0sQ0FBQztRQUFDLElBQUksRUFBRTtNQUFLLENBQUMsRUFBRSxRQUFRLENBQUM7SUFDeEMsQ0FBQyxDQUFDO0VBQ0osQ0FBQyxNQUFNO0lBQ0wsUUFBUSxDQUFDLElBQUksR0FBRyxJQUFJO0lBQ3BCLE9BQU8sQ0FBQyxRQUFRLENBQUM7RUFDbkI7QUFDRixDQUFDO0FBRUQsSUFBSSxNQUFNLEdBQUcsU0FBQSxDQUFTLEdBQUcsRUFBRSxHQUFHLEVBQUU7RUFDOUIsSUFBSSxLQUFLLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQztFQUNwQixPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUM7RUFDZixPQUFPLEtBQUs7QUFDZCxDQUFDO0FBRUQsTUFBTSxDQUFDLE9BQU8sR0FBRyxTQUFTLFFBQVEsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFO0VBQ2hELE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQ2xDLE1BQU0sQ0FBQyxVQUFTLElBQUksRUFBRSxJQUFJLEVBQUU7SUFDM0IsSUFBSSxTQUFTLEdBQUcsWUFBWSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQztFQUMvQixDQUFDLEVBQUUsRUFBRSxDQUFDO0VBRVIsT0FBTyxNQUFNLENBQUM7SUFDWixHQUFHLEVBQUUsU0FBUyxXQUFXLENBQUMsT0FBTyxFQUFFO01BQ2pDLFNBQVMsQ0FBQyxPQUFPLENBQUMsVUFBUyxRQUFRLEVBQUU7UUFDbkMsT0FBTyxDQUFDLGdCQUFnQixDQUN0QixRQUFRLENBQUMsSUFBSSxFQUNiLFFBQVEsQ0FBQyxRQUFRLEVBQ2pCLFFBQVEsQ0FBQyxPQUNYLENBQUM7TUFDSCxDQUFDLENBQUM7SUFDSixDQUFDO0lBQ0QsTUFBTSxFQUFFLFNBQVMsY0FBYyxDQUFDLE9BQU8sRUFBRTtNQUN2QyxTQUFTLENBQUMsT0FBTyxDQUFDLFVBQVMsUUFBUSxFQUFFO1FBQ25DLE9BQU8sQ0FBQyxtQkFBbUIsQ0FDekIsUUFBUSxDQUFDLElBQUksRUFDYixRQUFRLENBQUMsUUFBUSxFQUNqQixRQUFRLENBQUMsT0FDWCxDQUFDO01BQ0gsQ0FBQyxDQUFDO0lBQ0o7RUFDRixDQUFDLEVBQUUsS0FBSyxDQUFDO0FBQ1gsQ0FBQzs7Ozs7QUM1RUQsTUFBTSxDQUFDLE9BQU8sR0FBRyxTQUFTLE9BQU8sQ0FBQyxTQUFTLEVBQUU7RUFDM0MsT0FBTyxVQUFTLENBQUMsRUFBRTtJQUNqQixPQUFPLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBUyxFQUFFLEVBQUU7TUFDakMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsS0FBSyxLQUFLO0lBQ25DLENBQUMsRUFBRSxJQUFJLENBQUM7RUFDVixDQUFDO0FBQ0gsQ0FBQzs7Ozs7QUNORDtBQUNBLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQztBQUUxQixNQUFNLENBQUMsT0FBTyxHQUFHLFNBQVMsUUFBUSxDQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUU7RUFDL0MsT0FBTyxTQUFTLFVBQVUsQ0FBQyxLQUFLLEVBQUU7SUFDaEMsSUFBSSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO0lBQzNDLElBQUksTUFBTSxFQUFFO01BQ1YsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUM7SUFDL0I7RUFDRixDQUFDO0FBQ0gsQ0FBQzs7Ozs7QUNWRCxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDO0FBQ3ZDLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUM7QUFFckMsTUFBTSxLQUFLLEdBQUcsR0FBRztBQUVqQixNQUFNLENBQUMsT0FBTyxHQUFHLFNBQVMsV0FBVyxDQUFDLFNBQVMsRUFBRTtFQUMvQyxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQzs7RUFFbkM7RUFDQTtFQUNBO0VBQ0EsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxFQUFFO0lBQzFDLE9BQU8sU0FBUyxDQUFDLEtBQUssQ0FBQztFQUN6QjtFQUVBLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBUyxJQUFJLEVBQUUsUUFBUSxFQUFFO0lBQ3JELElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUNsRCxPQUFPLElBQUk7RUFDYixDQUFDLEVBQUUsRUFBRSxDQUFDO0VBQ04sT0FBTyxPQUFPLENBQUMsU0FBUyxDQUFDO0FBQzNCLENBQUM7Ozs7O0FDcEJELE1BQU0sQ0FBQyxPQUFPLEdBQUcsU0FBUyxNQUFNLENBQUMsT0FBTyxFQUFFLEVBQUUsRUFBRTtFQUM1QyxPQUFPLFNBQVMsU0FBUyxDQUFDLENBQUMsRUFBRTtJQUMzQixJQUFJLE9BQU8sS0FBSyxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUU7TUFDdkQsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDekI7RUFDRixDQUFDO0FBQ0gsQ0FBQzs7Ozs7QUNORCxNQUFNLENBQUMsT0FBTyxHQUFHO0VBQ2YsUUFBUSxFQUFNLE9BQU8sQ0FBQyxZQUFZLENBQUM7RUFDbkMsUUFBUSxFQUFNLE9BQU8sQ0FBQyxZQUFZLENBQUM7RUFDbkMsV0FBVyxFQUFHLE9BQU8sQ0FBQyxlQUFlLENBQUM7RUFDdEMsTUFBTSxFQUFRLE9BQU8sQ0FBQyxVQUFVLENBQUM7RUFDakMsTUFBTSxFQUFRLE9BQU8sQ0FBQyxVQUFVO0FBQ2xDLENBQUM7Ozs7O0FDTkQsT0FBTyxDQUFDLDRCQUE0QixDQUFDOztBQUVyQztBQUNBO0FBQ0E7QUFDQSxNQUFNLFNBQVMsR0FBRztFQUNoQixLQUFLLEVBQU8sUUFBUTtFQUNwQixTQUFTLEVBQUcsU0FBUztFQUNyQixNQUFNLEVBQU0sU0FBUztFQUNyQixPQUFPLEVBQUs7QUFDZCxDQUFDO0FBRUQsTUFBTSxrQkFBa0IsR0FBRyxHQUFHO0FBRTlCLE1BQU0sV0FBVyxHQUFHLFNBQUEsQ0FBUyxLQUFLLEVBQUUsWUFBWSxFQUFFO0VBQ2hELElBQUksR0FBRyxHQUFHLEtBQUssQ0FBQyxHQUFHO0VBQ25CLElBQUksWUFBWSxFQUFFO0lBQ2hCLEtBQUssSUFBSSxRQUFRLElBQUksU0FBUyxFQUFFO01BQzlCLElBQUksS0FBSyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxLQUFLLElBQUksRUFBRTtRQUN2QyxHQUFHLEdBQUcsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDO01BQ2hEO0lBQ0Y7RUFDRjtFQUNBLE9BQU8sR0FBRztBQUNaLENBQUM7QUFFRCxNQUFNLENBQUMsT0FBTyxHQUFHLFNBQVMsTUFBTSxDQUFDLElBQUksRUFBRTtFQUNyQyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFTLEdBQUcsRUFBRTtJQUN4RCxPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUM7RUFDN0MsQ0FBQyxDQUFDO0VBQ0YsT0FBTyxVQUFTLEtBQUssRUFBRTtJQUNyQixJQUFJLEdBQUcsR0FBRyxXQUFXLENBQUMsS0FBSyxFQUFFLFlBQVksQ0FBQztJQUMxQyxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQzVCLE1BQU0sQ0FBQyxVQUFTLE1BQU0sRUFBRSxJQUFJLEVBQUU7TUFDN0IsSUFBSSxJQUFJLElBQUksSUFBSSxFQUFFO1FBQ2hCLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUM7TUFDdEM7TUFDQSxPQUFPLE1BQU07SUFDZixDQUFDLEVBQUUsU0FBUyxDQUFDO0VBQ2pCLENBQUM7QUFDSCxDQUFDO0FBRUQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEdBQUcsU0FBUzs7Ozs7QUMxQ3BDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsU0FBUyxJQUFJLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRTtFQUNoRCxJQUFJLE9BQU8sR0FBRyxTQUFTLFdBQVcsQ0FBQyxDQUFDLEVBQUU7SUFDcEMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUM7SUFDN0QsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7RUFDL0IsQ0FBQztFQUNELE9BQU8sT0FBTztBQUNoQixDQUFDOzs7QUNORCxZQUFZOztBQUVaLElBQUksT0FBTyxHQUFHLGdCQUFnQjtBQUM5QixJQUFJLFFBQVEsR0FBRyxLQUFLO0FBRXBCLElBQUksSUFBSSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxHQUM1QixVQUFTLEdBQUcsRUFBRTtFQUFFLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQUUsQ0FBQyxHQUNwQyxVQUFTLEdBQUcsRUFBRTtFQUFFLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO0FBQUUsQ0FBQztBQUV0RCxJQUFJLFNBQVMsR0FBRyxTQUFBLENBQVMsRUFBRSxFQUFFO0VBQzNCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDO0FBQ3JFLENBQUM7QUFFRCxNQUFNLENBQUMsT0FBTyxHQUFHLFNBQVMsVUFBVSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUU7RUFDN0MsSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLEVBQUU7SUFDM0IsTUFBTSxJQUFJLEtBQUssQ0FBQyw0QkFBNEIsR0FBSSxPQUFPLEdBQUksQ0FBQztFQUM5RDtFQUVBLElBQUksQ0FBQyxHQUFHLEVBQUU7SUFDUixHQUFHLEdBQUcsTUFBTSxDQUFDLFFBQVE7RUFDdkI7RUFFQSxJQUFJLGNBQWMsR0FBRyxHQUFHLENBQUMsY0FBYyxHQUNuQyxHQUFHLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FDNUIsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7RUFFdkIsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDOztFQUUvQjtFQUNBO0VBQ0E7RUFDQSxJQUFJLEdBQUcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7SUFDckMsT0FBTyxFQUFFO0VBQ1g7RUFFQSxPQUFPLEdBQUcsQ0FDUCxHQUFHLENBQUMsVUFBUyxFQUFFLEVBQUU7SUFDaEIsSUFBSSxFQUFFLEdBQUcsY0FBYyxDQUFDLEVBQUUsQ0FBQztJQUMzQixJQUFJLENBQUMsRUFBRSxFQUFFO01BQ1AsTUFBTSxJQUFJLEtBQUssQ0FBQyx1QkFBdUIsR0FBRyxFQUFFLEdBQUcsR0FBRyxDQUFDO0lBQ3JEO0lBQ0EsT0FBTyxFQUFFO0VBQ1gsQ0FBQyxDQUFDO0FBQ04sQ0FBQzs7Ozs7QUMzQ0QsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLHdDQUF3QyxDQUFDO0FBQ2xFLE1BQU0sZUFBZSxHQUFHLE9BQU8sQ0FBQyxpREFBaUQsQ0FBQztBQUVsRixNQUFNO0VBQUU7QUFBTSxDQUFDLEdBQUcsT0FBTyxDQUFDLGdDQUFnQyxDQUFDO0FBQzNELE1BQU07RUFBRSxNQUFNLEVBQUU7QUFBTyxDQUFDLEdBQUcsT0FBTyxDQUFDLGdDQUFnQyxDQUFDO0FBRXBFLE1BQU0sSUFBSSxHQUFHLElBQUksTUFBTSxnQkFBZ0I7QUFFdkMsU0FBUyxNQUFNLENBQUMsS0FBSyxFQUFFO0VBQ3JCLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQztFQUN0QixlQUFlLENBQUMsSUFBSSxDQUFDO0FBQ3ZCO0FBRUEsTUFBTSxDQUFDLE9BQU8sR0FBRyxRQUFRLENBQUM7RUFDeEIsQ0FBQyxLQUFLLEdBQUc7SUFDUCxDQUFDLElBQUksR0FBRztFQUNWO0FBQ0YsQ0FBQyxDQUFDOzs7OztBQ2pCRixNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsc0NBQXNDLENBQUM7QUFDOUQsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLHdDQUF3QyxDQUFDO0FBQ2xFLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxzQ0FBc0MsQ0FBQztBQUM5RCxNQUFNLG1CQUFtQixHQUFHLE9BQU8sQ0FBQyw4Q0FBOEMsQ0FBQztBQUNuRixNQUFNO0VBQUU7QUFBTSxDQUFDLEdBQUcsT0FBTyxDQUFDLGdDQUFnQyxDQUFDO0FBQzNELE1BQU07RUFBRSxNQUFNLEVBQUU7QUFBTyxDQUFDLEdBQUcsT0FBTyxDQUFDLGdDQUFnQyxDQUFDO0FBRXBFLE1BQU0sU0FBUyxHQUFHLElBQUksTUFBTSxnQkFBZ0IsTUFBTSxzQkFBc0I7QUFDeEUsTUFBTSxhQUFhLEdBQUcsSUFBSSxNQUFNLGlCQUFpQjtBQUNqRCxNQUFNLE1BQU0sR0FBRyxJQUFJLE1BQU0seUNBQXlDLGFBQWEsR0FBRztBQUNsRixNQUFNLFFBQVEsR0FBRyxlQUFlO0FBQ2hDLE1BQU0sZUFBZSxHQUFHLHFCQUFxQjs7QUFFN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxtQkFBbUIsR0FBSSxTQUFTLElBQUs7RUFDekMsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUM7RUFFekMsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFFLE1BQU0sSUFBSyxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLFNBQVMsQ0FBQztBQUM1RSxDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sWUFBWSxHQUFHLENBQUMsTUFBTSxFQUFFLFFBQVEsS0FBSztFQUN6QyxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQztFQUMzQyxJQUFJLFlBQVksR0FBRyxRQUFRO0VBRTNCLElBQUksQ0FBQyxTQUFTLEVBQUU7SUFDZCxNQUFNLElBQUksS0FBSyxDQUFDLEdBQUcsTUFBTSxxQkFBcUIsU0FBUyxFQUFFLENBQUM7RUFDNUQ7RUFFQSxZQUFZLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUM7O0VBRXZDO0VBQ0EsTUFBTSxlQUFlLEdBQUcsU0FBUyxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUM7RUFFL0QsSUFBSSxZQUFZLElBQUksQ0FBQyxlQUFlLEVBQUU7SUFDcEMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBTyxDQUFFLEtBQUssSUFBSztNQUNoRCxJQUFJLEtBQUssS0FBSyxNQUFNLEVBQUU7UUFDcEIsTUFBTSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUM7TUFDdEI7SUFDRixDQUFDLENBQUM7RUFDSjtBQUNGLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLFVBQVUsR0FBSSxNQUFNLElBQUssWUFBWSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUM7O0FBRXpEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxVQUFVLEdBQUksTUFBTSxJQUFLLFlBQVksQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDO0FBRTFELE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FDeEI7RUFDRSxDQUFDLEtBQUssR0FBRztJQUNQLENBQUMsTUFBTSxJQUFJO01BQ1QsWUFBWSxDQUFDLElBQUksQ0FBQztNQUVsQixJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEtBQUssTUFBTSxFQUFFO1FBQzFDO1FBQ0E7UUFDQTtRQUNBLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7TUFDdkQ7SUFDRjtFQUNGO0FBQ0YsQ0FBQyxFQUNEO0VBQ0UsSUFBSSxDQUFDLElBQUksRUFBRTtJQUNULE1BQU0sQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFFLE1BQU0sSUFBSztNQUN2QyxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxLQUFLLE1BQU07TUFDekQsWUFBWSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUM7SUFDaEMsQ0FBQyxDQUFDO0VBQ0osQ0FBQztFQUNELFNBQVM7RUFDVCxNQUFNO0VBQ04sSUFBSSxFQUFFLFVBQVU7RUFDaEIsSUFBSSxFQUFFLFVBQVU7RUFDaEIsTUFBTSxFQUFFLFlBQVk7RUFDcEIsVUFBVSxFQUFFO0FBQ2QsQ0FDRixDQUFDO0FBRUQsTUFBTSxDQUFDLE9BQU8sR0FBRyxTQUFTOzs7OztBQ25HMUIsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLHdDQUF3QyxDQUFDO0FBQ2xFLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxzQ0FBc0MsQ0FBQztBQUM5RCxNQUFNO0VBQUU7QUFBTSxDQUFDLEdBQUcsT0FBTyxDQUFDLGdDQUFnQyxDQUFDO0FBQzNELE1BQU07RUFBRSxNQUFNLEVBQUU7QUFBTyxDQUFDLEdBQUcsT0FBTyxDQUFDLGdDQUFnQyxDQUFDO0FBQ3BFLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxzQ0FBc0MsQ0FBQztBQUU5RCxNQUFNLE1BQU0sR0FBRyxJQUFJLE1BQU0saUJBQWlCO0FBQzFDLE1BQU0sY0FBYyxHQUFHLEdBQUcsTUFBTSwyQkFBMkI7QUFDM0QsTUFBTSxhQUFhLEdBQUcsR0FBRyxNQUFNLGtCQUFrQjs7QUFFakQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLFlBQVksR0FBRyxTQUFTLFFBQVEsQ0FBQyxLQUFLLEVBQUU7RUFDNUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0VBQ3RCLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQztFQUVuRCxNQUFNLENBQUMsT0FBTyxDQUFDO0VBQ2YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQztBQUN2RCxDQUFDO0FBRUQsTUFBTSxDQUFDLE9BQU8sR0FBRyxRQUFRLENBQ3ZCO0VBQ0UsQ0FBQyxLQUFLLEdBQUc7SUFDUCxDQUFDLGFBQWEsR0FBRztFQUNuQjtBQUNGLENBQUMsRUFDRDtFQUNFLElBQUksQ0FBQyxJQUFJLEVBQUU7SUFDVCxNQUFNLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBRSxNQUFNLElBQUs7TUFDOUMsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsS0FBSyxNQUFNO01BQy9ELE1BQU0sQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDO0lBQzFCLENBQUMsQ0FBQztFQUNKO0FBQ0YsQ0FDRixDQUFDOzs7OztBQ3BDRCxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUM7QUFDekMsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLHdDQUF3QyxDQUFDO0FBRWxFLE1BQU0sYUFBYSxHQUFHLHdCQUF3QjtBQUU5QyxNQUFNLFlBQVksR0FBSSxLQUFLLElBQUs7RUFDOUIsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0VBQ3RCLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDdEIsQ0FBQztBQUVELE1BQU0sWUFBWSxHQUFHLFFBQVEsQ0FBQztFQUM1QixPQUFPLEVBQUU7SUFDUCxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUM7TUFDdEIsR0FBRyxFQUFFO0lBQ1AsQ0FBQztFQUNIO0FBQ0YsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE9BQU8sR0FBRyxZQUFZOzs7OztBQ2xCN0IsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLHNDQUFzQyxDQUFDO0FBQzlELE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyx3Q0FBd0MsQ0FBQztBQUNsRSxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsd0NBQXdDLENBQUM7QUFDbEUsTUFBTTtFQUFFLE1BQU0sRUFBRTtBQUFPLENBQUMsR0FBRyxPQUFPLENBQUMsZ0NBQWdDLENBQUM7QUFFcEUsTUFBTSxxQkFBcUIsR0FBRyxHQUFHLE1BQU0sa0JBQWtCO0FBQ3pELE1BQU0sZUFBZSxHQUFHLElBQUkscUJBQXFCLEVBQUU7QUFDbkQsTUFBTSxnQkFBZ0IsR0FBRyxHQUFHLE1BQU0sYUFBYTtBQUMvQyxNQUFNLHNCQUFzQixHQUFHLEdBQUcsZ0JBQWdCLFNBQVM7QUFDM0QsTUFBTSxVQUFVLEdBQUcsSUFBSSxnQkFBZ0IsRUFBRTtBQUN6QyxNQUFNLFdBQVcsR0FBRyxHQUFHLE1BQU0sUUFBUTtBQUNyQyxNQUFNLGlCQUFpQixHQUFHLEdBQUcsV0FBVyxTQUFTO0FBQ2pELE1BQU0sS0FBSyxHQUFHLElBQUksTUFBTSx5QkFBeUI7QUFDakQsTUFBTSxpQkFBaUIsR0FBRyxHQUFHLE1BQU0sZUFBZTtBQUNsRCxNQUFNLE9BQU8sR0FBRyxJQUFJLE1BQU0sMkJBQTJCO0FBQ3JELE1BQU0sa0JBQWtCLEdBQUcsMEJBQTBCO0FBQ3JELE1BQU0scUJBQXFCLEdBQUcsR0FBRyxNQUFNLG1DQUFtQztBQUMxRSxNQUFNLG9CQUFvQixHQUFHLEdBQUcscUJBQXFCLFVBQVU7QUFDL0QsTUFBTSw0QkFBNEIsR0FBRyxHQUFHLHFCQUFxQixhQUFhO0FBQzFFLE1BQU0sY0FBYyxHQUFHLElBQUksb0JBQW9CLEVBQUU7QUFDakQsTUFBTSxzQkFBc0IsR0FBRyxJQUFJLDRCQUE0QixFQUFFO0FBQ2pFLE1BQU0sb0JBQW9CLEdBQUcsb0JBQW9COztBQUVqRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLHlCQUF5QixHQUFJLE9BQU8sSUFBSztFQUM3QyxNQUFNLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDO0VBRXpELElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtJQUNyQixNQUFNLElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxxQkFBcUIsZUFBZSxFQUFFLENBQUM7RUFDakU7RUFFQSxNQUFNLFdBQVcsR0FBRyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDO0VBRTlELE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDO0VBQzFDLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsYUFBYSxPQUFPLEdBQUcsQ0FBQztFQUUvRCxNQUFNLFNBQVMsR0FBRyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDO0VBRXpELElBQUksQ0FBQyxTQUFTLEVBQUU7SUFDZCxNQUFNLElBQUksS0FBSyxDQUFDLEdBQUcsZUFBZSxxQkFBcUIsT0FBTyxFQUFFLENBQUM7RUFDbkU7RUFFQSxPQUFPO0lBQUUsZ0JBQWdCO0lBQUUsV0FBVztJQUFFLE9BQU87SUFBRSxPQUFPO0lBQUU7RUFBVSxDQUFDO0FBQ3ZFLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sYUFBYSxHQUFJLE9BQU8sSUFBSztFQUNqQyxNQUFNO0lBQUU7RUFBaUIsQ0FBQyxHQUFHLHlCQUF5QixDQUFDLE9BQU8sQ0FBQztFQUUvRCxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQztFQUVuRCxJQUFJLENBQUMsU0FBUyxFQUFFO0VBRWhCLE9BQU8sQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDO0VBQ3BDLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsRUFBRSxTQUFTLENBQUM7QUFDNUQsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sb0JBQW9CLEdBQUksZ0JBQWdCLElBQUs7RUFDakQsTUFBTSxhQUFhLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUM7RUFDbkQsTUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUM7RUFDckQsTUFBTSxTQUFTLEdBQUcsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLFNBQVM7RUFDcEQsTUFBTSxjQUFjLEdBQUcsR0FBRyxTQUFTLElBQUksb0JBQW9CLEVBQUU7RUFFN0QsYUFBYSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxvQkFBb0IsRUFBRSxFQUFFLFVBQVUsQ0FBQztFQUNsRSxlQUFlLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FDM0IsR0FBRyw0QkFBNEIsRUFBRSxFQUNqQyxhQUNGLENBQUM7RUFFRCxhQUFhLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUM7RUFDL0MsZUFBZSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsUUFBUSxDQUFDO0VBRW5ELGFBQWEsQ0FBQyxXQUFXLEdBQUcsY0FBYztFQUMxQyxlQUFlLENBQUMsV0FBVyxHQUFHLGNBQWM7RUFFNUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxlQUFlLENBQUM7QUFDekQsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sZUFBZSxHQUFHLENBQUMsYUFBYSxFQUFFLFNBQVMsS0FBSztFQUNwRCxJQUFJLFVBQVUsR0FBRyxFQUFFO0VBRW5CLElBQUksYUFBYSxLQUFLLENBQUMsRUFBRTtJQUN2QixVQUFVLEdBQUcsR0FBRyxTQUFTLElBQUksb0JBQW9CLEVBQUU7RUFDckQsQ0FBQyxNQUFNO0lBQ0wsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEdBQUcsYUFBYSxDQUFDO0lBQ3RELE1BQU0sVUFBVSxHQUFHLFlBQVksVUFBVSxLQUFLLENBQUMsR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFO0lBQzVELE1BQU0sUUFBUSxHQUFHLGFBQWEsR0FBRyxTQUFTLEdBQUcsWUFBWSxHQUFHLE1BQU07SUFFbEUsVUFBVSxHQUFHLEdBQUcsVUFBVSxJQUFJLFVBQVUsSUFBSSxRQUFRLEVBQUU7RUFDeEQ7RUFFQSxPQUFPLFVBQVU7QUFDbkIsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLGNBQWMsR0FBRyxRQUFRLENBQUMsQ0FBQyxLQUFLLEVBQUUsYUFBYSxLQUFLO0VBQ3hELE1BQU0sZUFBZSxHQUFHLEtBQUs7RUFDN0IsZUFBZSxDQUFDLFdBQVcsR0FBRyxhQUFhO0FBQzdDLENBQUMsRUFBRSxJQUFJLENBQUM7O0FBRVI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLGtCQUFrQixHQUFJLE9BQU8sSUFBSztFQUN0QyxNQUFNO0lBQUUsZ0JBQWdCO0lBQUUsT0FBTztJQUFFO0VBQVksQ0FBQyxHQUM5Qyx5QkFBeUIsQ0FBQyxPQUFPLENBQUM7RUFDcEMsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNO0VBQzFDLE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FDeEIsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUFDLEVBQy9DLEVBQ0YsQ0FBQztFQUNELE1BQU0sYUFBYSxHQUFHLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUM7RUFDcEUsTUFBTSxlQUFlLEdBQUcsZ0JBQWdCLENBQUMsYUFBYSxDQUNwRCxzQkFDRixDQUFDO0VBQ0QsTUFBTSxvQkFBb0IsR0FBRyxlQUFlLENBQUMsYUFBYSxFQUFFLFNBQVMsQ0FBQztFQUV0RSxJQUFJLENBQUMsU0FBUyxFQUFFO0VBRWhCLE1BQU0sV0FBVyxHQUFHLGFBQWEsSUFBSSxhQUFhLEdBQUcsU0FBUztFQUU5RCxhQUFhLENBQUMsV0FBVyxHQUFHLG9CQUFvQjtFQUNoRCxjQUFjLENBQUMsZUFBZSxFQUFFLG9CQUFvQixDQUFDO0VBRXJELElBQUksV0FBVyxJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixFQUFFO0lBQzdDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxrQkFBa0IsQ0FBQztFQUMvQztFQUVBLElBQUksQ0FBQyxXQUFXLElBQUksT0FBTyxDQUFDLGlCQUFpQixLQUFLLGtCQUFrQixFQUFFO0lBQ3BFLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUM7RUFDL0I7RUFFQSxJQUFJLFdBQVcsRUFBRTtJQUNmLFdBQVcsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLHNCQUFzQixFQUFFLFdBQVcsQ0FBQztFQUNuRTtFQUVBLElBQUksT0FBTyxFQUFFO0lBQ1gsT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsaUJBQWlCLEVBQUUsV0FBVyxDQUFDO0VBQzFEO0VBRUEsT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsaUJBQWlCLEVBQUUsV0FBVyxDQUFDO0VBQ3hELGFBQWEsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLHFCQUFxQixFQUFFLFdBQVcsQ0FBQztBQUNwRSxDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxxQkFBcUIsR0FBSSxPQUFPLElBQUs7RUFDekMsTUFBTTtJQUFFLGdCQUFnQjtJQUFFO0VBQVUsQ0FBQyxHQUFHLHlCQUF5QixDQUFDLE9BQU8sQ0FBQzs7RUFFMUU7RUFDQSxTQUFTLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUM7RUFDdEMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUM7RUFFdEMsYUFBYSxDQUFDLE9BQU8sQ0FBQztFQUN0QixvQkFBb0IsQ0FBQyxnQkFBZ0IsQ0FBQztBQUN4QyxDQUFDO0FBRUQsTUFBTSxjQUFjLEdBQUcsUUFBUSxDQUM3QjtFQUNFLEtBQUssRUFBRTtJQUNMLENBQUMsS0FBSyxJQUFJO01BQ1Isa0JBQWtCLENBQUMsSUFBSSxDQUFDO0lBQzFCO0VBQ0Y7QUFDRixDQUFDLEVBQ0Q7RUFDRSxJQUFJLENBQUMsSUFBSSxFQUFFO0lBQ1QsTUFBTSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUUsS0FBSyxJQUFLLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO0VBQ3RFLENBQUM7RUFDRCxzQkFBc0I7RUFDdEIsaUJBQWlCO0VBQ2pCLGlCQUFpQjtFQUNqQixxQkFBcUI7RUFDckIsa0JBQWtCO0VBQ2xCLG9CQUFvQjtFQUNwQiw0QkFBNEI7RUFDNUIsb0JBQW9CO0VBQ3BCLG9CQUFvQjtFQUNwQixlQUFlO0VBQ2Y7QUFDRixDQUNGLENBQUM7QUFFRCxNQUFNLENBQUMsT0FBTyxHQUFHLGNBQWM7Ozs7O0FDNU4vQixNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUM7QUFDekMsTUFBTSxlQUFlLEdBQUcsT0FBTyxDQUFDLGlEQUFpRCxDQUFDO0FBQ2xGLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyx3Q0FBd0MsQ0FBQztBQUNsRSxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMseUNBQXlDLENBQUM7QUFDcEUsTUFBTTtFQUFFLE1BQU0sRUFBRTtBQUFPLENBQUMsR0FBRyxPQUFPLENBQUMsZ0NBQWdDLENBQUM7QUFDcEUsTUFBTTtFQUFFO0FBQU0sQ0FBQyxHQUFHLE9BQU8sQ0FBQyxnQ0FBZ0MsQ0FBQztBQUUzRCxNQUFNLGVBQWUsR0FBRyxHQUFHLE1BQU0sWUFBWTtBQUM3QyxNQUFNLHdCQUF3QixHQUFHLEdBQUcsZUFBZSxZQUFZO0FBQy9ELE1BQU0sWUFBWSxHQUFHLEdBQUcsZUFBZSxVQUFVO0FBQ2pELE1BQU0sV0FBVyxHQUFHLEdBQUcsZUFBZSxTQUFTO0FBQy9DLE1BQU0sd0JBQXdCLEdBQUcsR0FBRyxlQUFlLGVBQWU7QUFDbEUsTUFBTSxnQ0FBZ0MsR0FBRyxHQUFHLHdCQUF3QixXQUFXO0FBQy9FLE1BQU0sNEJBQTRCLEdBQUcsR0FBRyxlQUFlLDBCQUEwQjtBQUNqRixNQUFNLHdCQUF3QixHQUFHLEdBQUcsZUFBZSxlQUFlO0FBQ2xFLE1BQU0sZ0NBQWdDLEdBQUcsR0FBRyx3QkFBd0IsV0FBVztBQUMvRSxNQUFNLFVBQVUsR0FBRyxHQUFHLGVBQWUsUUFBUTtBQUM3QyxNQUFNLGlCQUFpQixHQUFHLEdBQUcsZUFBZSxlQUFlO0FBQzNELE1BQU0seUJBQXlCLEdBQUcsR0FBRyxpQkFBaUIsV0FBVztBQUNqRSxNQUFNLDBCQUEwQixHQUFHLEdBQUcsaUJBQWlCLFlBQVk7QUFDbkUsTUFBTSxZQUFZLEdBQUcsR0FBRyxlQUFlLFVBQVU7QUFFakQsTUFBTSxTQUFTLEdBQUcsSUFBSSxlQUFlLEVBQUU7QUFDdkMsTUFBTSxNQUFNLEdBQUcsSUFBSSxZQUFZLEVBQUU7QUFDakMsTUFBTSxLQUFLLEdBQUcsSUFBSSxXQUFXLEVBQUU7QUFDL0IsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLHdCQUF3QixFQUFFO0FBQ3pELE1BQU0sa0JBQWtCLEdBQUcsSUFBSSx3QkFBd0IsRUFBRTtBQUN6RCxNQUFNLElBQUksR0FBRyxJQUFJLFVBQVUsRUFBRTtBQUM3QixNQUFNLFdBQVcsR0FBRyxJQUFJLGlCQUFpQixFQUFFO0FBQzNDLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSx5QkFBeUIsRUFBRTtBQUMzRCxNQUFNLG9CQUFvQixHQUFHLElBQUksMEJBQTBCLEVBQUU7QUFDN0QsTUFBTSxNQUFNLEdBQUcsSUFBSSxZQUFZLEVBQUU7QUFFakMsTUFBTSxjQUFjLEdBQUcsZUFBZTtBQUV0QyxNQUFNLElBQUksR0FBRyxDQUFBLEtBQU0sQ0FBQyxDQUFDOztBQUVyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLGtCQUFrQixHQUFHLENBQUMsRUFBRSxFQUFFLEtBQUssR0FBRyxFQUFFLEtBQUs7RUFDN0MsTUFBTSxlQUFlLEdBQUcsRUFBRTtFQUMxQixlQUFlLENBQUMsS0FBSyxHQUFHLEtBQUs7RUFFN0IsTUFBTSxLQUFLLEdBQUcsSUFBSSxXQUFXLENBQUMsUUFBUSxFQUFFO0lBQ3RDLE9BQU8sRUFBRSxJQUFJO0lBQ2IsVUFBVSxFQUFFLElBQUk7SUFDaEIsTUFBTSxFQUFFO01BQUU7SUFBTTtFQUNsQixDQUFDLENBQUM7RUFDRixlQUFlLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQztBQUN0QyxDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sa0JBQWtCLEdBQUksRUFBRSxJQUFLO0VBQ2pDLE1BQU0sVUFBVSxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDO0VBRXhDLElBQUksQ0FBQyxVQUFVLEVBQUU7SUFDZixNQUFNLElBQUksS0FBSyxDQUFDLDRCQUE0QixTQUFTLEVBQUUsQ0FBQztFQUMxRDtFQUVBLE1BQU0sUUFBUSxHQUFHLFVBQVUsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDO0VBQ2pELE1BQU0sT0FBTyxHQUFHLFVBQVUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDO0VBQy9DLE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDO0VBQzdDLE1BQU0sUUFBUSxHQUFHLFVBQVUsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDO0VBQ2pELE1BQU0sZUFBZSxHQUFHLFVBQVUsQ0FBQyxhQUFhLENBQUMsbUJBQW1CLENBQUM7RUFDckUsTUFBTSxnQkFBZ0IsR0FBRyxVQUFVLENBQUMsYUFBYSxDQUFDLG9CQUFvQixDQUFDO0VBQ3ZFLE1BQU0sZUFBZSxHQUFHLFVBQVUsQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQUM7RUFDcEUsTUFBTSxlQUFlLEdBQUcsVUFBVSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQztFQUVwRSxNQUFNLFVBQVUsR0FBRyxVQUFVLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyx3QkFBd0IsQ0FBQztFQUMxRSxNQUFNLGdCQUFnQixHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEtBQUssTUFBTTtFQUV2RSxPQUFPO0lBQ0wsVUFBVTtJQUNWLFFBQVE7SUFDUixPQUFPO0lBQ1AsTUFBTTtJQUNOLFFBQVE7SUFDUixlQUFlO0lBQ2YsZ0JBQWdCO0lBQ2hCLGVBQWU7SUFDZixlQUFlO0lBQ2YsVUFBVTtJQUNWO0VBQ0YsQ0FBQztBQUNILENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sT0FBTyxHQUFJLEVBQUUsSUFBSztFQUN0QixNQUFNO0lBQUUsT0FBTztJQUFFLGVBQWU7SUFBRTtFQUFnQixDQUFDLEdBQUcsa0JBQWtCLENBQUMsRUFBRSxDQUFDO0VBRTVFLGVBQWUsQ0FBQyxNQUFNLEdBQUcsSUFBSTtFQUM3QixlQUFlLENBQUMsUUFBUSxHQUFHLElBQUk7RUFDL0IsZUFBZSxDQUFDLFFBQVEsR0FBRyxJQUFJO0VBQy9CLE9BQU8sQ0FBQyxRQUFRLEdBQUcsSUFBSTtBQUN6QixDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLFdBQVcsR0FBSSxFQUFFLElBQUs7RUFDMUIsTUFBTTtJQUFFLE9BQU87SUFBRSxlQUFlO0lBQUU7RUFBZ0IsQ0FBQyxHQUFHLGtCQUFrQixDQUFDLEVBQUUsQ0FBQztFQUU1RSxlQUFlLENBQUMsTUFBTSxHQUFHLElBQUk7RUFDN0IsZUFBZSxDQUFDLFlBQVksQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDO0VBQ25ELGVBQWUsQ0FBQyxZQUFZLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQztFQUNuRCxPQUFPLENBQUMsWUFBWSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUM7QUFDN0MsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxNQUFNLEdBQUksRUFBRSxJQUFLO0VBQ3JCLE1BQU07SUFBRSxPQUFPO0lBQUUsZUFBZTtJQUFFO0VBQWdCLENBQUMsR0FBRyxrQkFBa0IsQ0FBQyxFQUFFLENBQUM7RUFFNUUsZUFBZSxDQUFDLE1BQU0sR0FBRyxLQUFLO0VBQzlCLGVBQWUsQ0FBQyxRQUFRLEdBQUcsS0FBSztFQUNoQyxlQUFlLENBQUMsUUFBUSxHQUFHLEtBQUs7RUFDaEMsT0FBTyxDQUFDLFFBQVEsR0FBRyxLQUFLO0FBQzFCLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sZUFBZSxHQUFJLFdBQVcsSUFBSztFQUN2QyxNQUFNLFVBQVUsR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQztFQUVqRCxJQUFJLFVBQVUsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFO0VBRWpDLE1BQU0sUUFBUSxHQUFHLFVBQVUsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDO0VBRW5ELElBQUksQ0FBQyxRQUFRLEVBQUU7SUFDYixNQUFNLElBQUksS0FBSyxDQUFDLEdBQUcsU0FBUywwQkFBMEIsQ0FBQztFQUN6RDtFQUVBLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxFQUFFO0VBQzVCLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsY0FBYyxRQUFRLElBQUksQ0FBQztFQUN0RSxNQUFNLE1BQU0sR0FBRyxHQUFHLFFBQVEsUUFBUTtFQUNsQyxNQUFNLFdBQVcsR0FBRyxHQUFHLFFBQVEsUUFBUTtFQUN2QyxNQUFNLG9CQUFvQixHQUFHLEVBQUU7RUFDL0IsTUFBTTtJQUFFO0VBQWEsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxPQUFPO0VBQzNDLE1BQU07SUFBRTtFQUFZLENBQUMsR0FBRyxVQUFVLENBQUMsT0FBTztFQUMxQyxJQUFJLGNBQWM7RUFFbEIsSUFBSSxXQUFXLEVBQUU7SUFDZixvQkFBb0IsQ0FBQyxJQUFJLENBQUM7TUFBRTtJQUFZLENBQUMsQ0FBQztFQUM1QztFQUVBLElBQUksWUFBWSxFQUFFO0lBQ2hCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUU7TUFDOUQsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7TUFFcEMsSUFBSSxRQUFRLENBQUMsS0FBSyxLQUFLLFlBQVksRUFBRTtRQUNuQyxjQUFjLEdBQUcsUUFBUTtRQUN6QjtNQUNGO0lBQ0Y7RUFDRjs7RUFFQTtBQUNGO0FBQ0E7QUFDQTtFQUNFLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLGNBQWMsUUFBUSxJQUFJLENBQUMsRUFBRTtJQUNwRSxNQUFNLElBQUksS0FBSyxDQUNiLEdBQUcsU0FBUyxRQUFRLFFBQVEsaURBQzlCLENBQUM7RUFDSCxDQUFDLE1BQU07SUFDTCxXQUFXLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxXQUFXLENBQUM7RUFDN0M7RUFFQSxXQUFXLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxXQUFXLENBQUM7RUFDM0MsUUFBUSxDQUFDLFlBQVksQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDO0VBQzVDLFFBQVEsQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQztFQUN2QyxRQUFRLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsWUFBWSxDQUFDO0VBQ25ELFFBQVEsQ0FBQyxFQUFFLEdBQUcsRUFBRTtFQUNoQixRQUFRLENBQUMsS0FBSyxHQUFHLEVBQUU7RUFFbkIsQ0FBQyxVQUFVLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixDQUFDLENBQUMsT0FBTyxDQUFFLElBQUksSUFBSztJQUM5RCxJQUFJLFFBQVEsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUU7TUFDL0IsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUM7TUFDekMsb0JBQW9CLENBQUMsSUFBSSxDQUFDO1FBQUUsQ0FBQyxJQUFJLEdBQUc7TUFBTSxDQUFDLENBQUM7TUFDNUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUM7SUFDaEM7RUFDRixDQUFDLENBQUM7O0VBRUY7RUFDQSxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQztFQUM3QyxLQUFLLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUM7RUFDbEMsS0FBSyxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsTUFBTSxDQUFDO0VBQ3ZDLEtBQUssQ0FBQyxZQUFZLENBQUMsZUFBZSxFQUFFLE1BQU0sQ0FBQztFQUMzQyxLQUFLLENBQUMsWUFBWSxDQUFDLG1CQUFtQixFQUFFLE1BQU0sQ0FBQztFQUMvQyxLQUFLLENBQUMsWUFBWSxDQUFDLGVBQWUsRUFBRSxPQUFPLENBQUM7RUFDNUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsRUFBRSxLQUFLLENBQUM7RUFDM0MsS0FBSyxDQUFDLFlBQVksQ0FBQyxjQUFjLEVBQUUsS0FBSyxDQUFDO0VBQ3pDLEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQztFQUN4QyxLQUFLLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUM7RUFDbEMsS0FBSyxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDO0VBQ3RDLG9CQUFvQixDQUFDLE9BQU8sQ0FBRSxJQUFJLElBQ2hDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFFLEdBQUcsSUFBSztJQUNqQyxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTtJQUNoRCxLQUFLLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUM7RUFDaEMsQ0FBQyxDQUNILENBQUM7RUFFRCxVQUFVLENBQUMscUJBQXFCLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQztFQUVwRCxVQUFVLENBQUMsa0JBQWtCLENBQzNCLFdBQVcsRUFDWCxTQUFTLENBQUMsVUFBVTtBQUN4QixtQkFBbUIsZ0NBQWdDO0FBQ25ELHVDQUF1Qyx3QkFBd0I7QUFDL0Q7QUFDQSxxQkFBcUIsNEJBQTRCO0FBQ2pELHFCQUFxQixnQ0FBZ0M7QUFDckQscURBQXFELHdCQUF3QjtBQUM3RTtBQUNBO0FBQ0E7QUFDQSxjQUFjLE1BQU07QUFDcEIsaUJBQWlCLFVBQVU7QUFDM0I7QUFDQSwyQkFBMkIsV0FBVztBQUN0QztBQUNBO0FBQ0Esb0JBQW9CLFlBQVksb0NBQzlCLENBQUM7RUFFRCxJQUFJLGNBQWMsRUFBRTtJQUNsQixNQUFNO01BQUU7SUFBUSxDQUFDLEdBQUcsa0JBQWtCLENBQUMsVUFBVSxDQUFDO0lBQ2xELGtCQUFrQixDQUFDLFFBQVEsRUFBRSxjQUFjLENBQUMsS0FBSyxDQUFDO0lBQ2xELGtCQUFrQixDQUFDLE9BQU8sRUFBRSxjQUFjLENBQUMsSUFBSSxDQUFDO0lBQ2hELFVBQVUsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLHdCQUF3QixDQUFDO0VBQ3BEO0VBRUEsSUFBSSxRQUFRLENBQUMsUUFBUSxFQUFFO0lBQ3JCLE9BQU8sQ0FBQyxVQUFVLENBQUM7SUFDbkIsUUFBUSxDQUFDLFFBQVEsR0FBRyxLQUFLO0VBQzNCO0VBRUEsSUFBSSxRQUFRLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxFQUFFO0lBQzFDLFdBQVcsQ0FBQyxVQUFVLENBQUM7SUFDdkIsUUFBUSxDQUFDLGVBQWUsQ0FBQyxlQUFlLENBQUM7RUFDM0M7RUFFQSxVQUFVLENBQUMsT0FBTyxDQUFDLFFBQVEsR0FBRyxNQUFNO0FBQ3RDLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLGVBQWUsR0FBRyxDQUFDLEVBQUUsRUFBRSxNQUFNLEVBQUU7RUFBRSxTQUFTO0VBQUU7QUFBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUs7RUFDekUsTUFBTTtJQUFFLE9BQU87SUFBRSxNQUFNO0lBQUU7RUFBZ0IsQ0FBQyxHQUFHLGtCQUFrQixDQUFDLEVBQUUsQ0FBQztFQUVuRSxJQUFJLGVBQWUsRUFBRTtJQUNuQixlQUFlLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQztJQUMzRCxlQUFlLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUM7RUFDaEQ7RUFFQSxJQUFJLE1BQU0sRUFBRTtJQUNWLE9BQU8sQ0FBQyxZQUFZLENBQUMsdUJBQXVCLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQztJQUN4RCxNQUFNLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUM7SUFDcEMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMseUJBQXlCLENBQUM7SUFFL0MsSUFBSSxDQUFDLGFBQWEsRUFBRTtNQUNsQixNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxZQUFZO01BQzNELE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDLFlBQVk7TUFFNUQsSUFBSSxZQUFZLEdBQUcsYUFBYSxFQUFFO1FBQ2hDLE1BQU0sQ0FBQyxTQUFTLEdBQUcsWUFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZO01BQ3ZEO01BRUEsSUFBSSxNQUFNLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTLEVBQUU7UUFDdkMsTUFBTSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUztNQUNyQztJQUNGO0lBRUEsSUFBSSxDQUFDLFNBQVMsRUFBRTtNQUNkLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFBRTtNQUFjLENBQUMsQ0FBQztJQUNqQztFQUNGLENBQUMsTUFBTTtJQUNMLE9BQU8sQ0FBQyxZQUFZLENBQUMsdUJBQXVCLEVBQUUsRUFBRSxDQUFDO0lBQ2pELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztFQUNqQjtBQUNGLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLHFCQUFxQixHQUFHLENBQUMsTUFBTSxFQUFFLEtBQUssR0FBRyxFQUFFLEVBQUUsTUFBTSxHQUFHLENBQUMsQ0FBQyxLQUFLO0VBQ2pFLE1BQU0sWUFBWSxHQUFJLElBQUksSUFDeEIsSUFBSSxDQUFDLE9BQU8sQ0FBQywwQkFBMEIsRUFBRSxNQUFNLENBQUM7RUFFbEQsSUFBSSxJQUFJLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxLQUFLO0lBQ2pELE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNyQixNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDO0lBQy9CLElBQUksR0FBRyxLQUFLLE9BQU8sSUFBSSxXQUFXLEVBQUU7TUFDbEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxNQUFNLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQztNQUM1QyxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQztNQUVwQyxJQUFJLE9BQU8sRUFBRTtRQUNYLE9BQU8sWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztNQUNqQztNQUVBLE9BQU8sRUFBRTtJQUNYO0lBQ0EsT0FBTyxZQUFZLENBQUMsS0FBSyxDQUFDO0VBQzVCLENBQUMsQ0FBQztFQUVGLElBQUksR0FBRyxPQUFPLElBQUksSUFBSTtFQUV0QixPQUFPLElBQUksTUFBTSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUM7QUFDOUIsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxXQUFXLEdBQUksRUFBRSxJQUFLO0VBQzFCLE1BQU07SUFDSixVQUFVO0lBQ1YsUUFBUTtJQUNSLE9BQU87SUFDUCxNQUFNO0lBQ04sUUFBUTtJQUNSLFVBQVU7SUFDVjtFQUNGLENBQUMsR0FBRyxrQkFBa0IsQ0FBQyxFQUFFLENBQUM7RUFDMUIsSUFBSSxjQUFjO0VBQ2xCLElBQUksWUFBWTtFQUVoQixNQUFNLGdCQUFnQixHQUFHLEdBQUcsTUFBTSxDQUFDLEVBQUUsV0FBVztFQUVoRCxNQUFNLFVBQVUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUksRUFBRSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0VBQ3RELE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLGNBQWM7RUFDMUQsTUFBTSxLQUFLLEdBQUcscUJBQXFCLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUMsT0FBTyxDQUFDO0VBRTNFLElBQUksT0FBTyxHQUFHLEVBQUU7RUFDaEIsTUFBTSxpQkFBaUIsR0FBRyxFQUFFO0VBQzVCLE1BQU0sZUFBZSxHQUFHLEVBQUU7RUFDMUIsTUFBTSxVQUFVLEdBQUcsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUM7O0VBRXhDO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBQ0UsTUFBTSxpQkFBaUIsR0FBSSxNQUFNLElBQUs7SUFDcEMsSUFBSSxnQkFBZ0IsSUFBSSxVQUFVLEVBQUU7TUFDbEMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7TUFDcEI7SUFDRjtJQUVBLE1BQU0sZUFBZSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDO0lBRXhFLElBQUksZUFBZSxFQUFFO01BQ25CLGlCQUFpQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDaEMsQ0FBQyxNQUFNO01BQ0wsZUFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDOUI7SUFFQSxPQUFPLEdBQUcsQ0FBQyxHQUFHLGlCQUFpQixFQUFFLEdBQUcsZUFBZSxDQUFDO0VBQ3RELENBQUM7O0VBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBQ0UsTUFBTSxrQkFBa0IsR0FBSSxNQUFNLElBQUssS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDOztFQUU5RDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUNFLE1BQU0sZ0JBQWdCLEdBQUksTUFBTSxJQUM5QixNQUFNLENBQUMsS0FBSyxLQUNYLGdCQUFnQixJQUNmLFVBQVUsSUFDVixDQUFDLFVBQVUsSUFDWCxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQzs7RUFFL0I7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBQ0UsTUFBTSxZQUFZLEdBQUksTUFBTSxJQUMxQixnQkFBZ0IsSUFBSSxDQUFDLFlBQVksSUFBSSxrQkFBa0IsQ0FBQyxNQUFNLENBQUM7O0VBRWpFO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUNFLE1BQU0sa0JBQWtCLEdBQUksTUFBTSxJQUNoQyxRQUFRLENBQUMsS0FBSyxJQUFJLE1BQU0sQ0FBQyxLQUFLLEtBQUssUUFBUSxDQUFDLEtBQUs7O0VBRW5EO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7RUFDRSxVQUFVLENBQUMsT0FBTyxDQUFFLE1BQU0sSUFBSztJQUM3QixJQUFJLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxFQUFFO01BQzVCLGlCQUFpQixDQUFDLE1BQU0sQ0FBQztNQUV6QixNQUFNLFFBQVEsR0FBRyxHQUFHLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7TUFFaEUsSUFBSSxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUU7UUFDeEIsWUFBWSxHQUFHLFFBQVE7TUFDekI7TUFFQSxJQUFJLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxFQUFFO1FBQzlCLGNBQWMsR0FBRyxRQUFRO01BQzNCO0lBQ0Y7RUFDRixDQUFDLENBQUM7RUFFRixNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsTUFBTTtFQUNqQyxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEtBQUssS0FBSztJQUNoRCxNQUFNLFFBQVEsR0FBRyxHQUFHLGdCQUFnQixHQUFHLEtBQUssRUFBRTtJQUM5QyxNQUFNLE9BQU8sR0FBRyxDQUFDLGlCQUFpQixDQUFDO0lBQ25DLElBQUksUUFBUSxHQUFHLElBQUk7SUFDbkIsSUFBSSxZQUFZLEdBQUcsT0FBTztJQUUxQixJQUFJLFFBQVEsS0FBSyxjQUFjLEVBQUU7TUFDL0IsT0FBTyxDQUFDLElBQUksQ0FBQywwQkFBMEIsRUFBRSx5QkFBeUIsQ0FBQztNQUNuRSxRQUFRLEdBQUcsR0FBRztNQUNkLFlBQVksR0FBRyxNQUFNO0lBQ3ZCO0lBRUEsSUFBSSxDQUFDLGNBQWMsSUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFFO01BQ2xDLE9BQU8sQ0FBQyxJQUFJLENBQUMseUJBQXlCLENBQUM7TUFDdkMsUUFBUSxHQUFHLEdBQUc7SUFDaEI7SUFFQSxNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQztJQUV2QyxFQUFFLENBQUMsWUFBWSxDQUFDLGNBQWMsRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDO0lBQy9DLEVBQUUsQ0FBQyxZQUFZLENBQUMsZUFBZSxFQUFFLEtBQUssR0FBRyxDQUFDLENBQUM7SUFDM0MsRUFBRSxDQUFDLFlBQVksQ0FBQyxlQUFlLEVBQUUsWUFBWSxDQUFDO0lBQzlDLEVBQUUsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQztJQUMvQixFQUFFLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzNDLEVBQUUsQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQztJQUNyQyxFQUFFLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUM7SUFDakMsRUFBRSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQztJQUMzQyxFQUFFLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxJQUFJO0lBRTVCLE9BQU8sRUFBRTtFQUNYLENBQUMsQ0FBQztFQUVGLE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDO0VBQzlDLFNBQVMsQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLEdBQUcsaUJBQWlCLGNBQWMsQ0FBQztFQUNuRSxTQUFTLENBQUMsV0FBVyxHQUFHLGtCQUFrQjtFQUUxQyxNQUFNLENBQUMsTUFBTSxHQUFHLEtBQUs7RUFFckIsSUFBSSxVQUFVLEVBQUU7SUFDZCxNQUFNLENBQUMsU0FBUyxHQUFHLEVBQUU7SUFDckIsVUFBVSxDQUFDLE9BQU8sQ0FBRSxJQUFJLElBQ3RCLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUNoRCxDQUFDO0VBQ0gsQ0FBQyxNQUFNO0lBQ0wsTUFBTSxDQUFDLFNBQVMsR0FBRyxFQUFFO0lBQ3JCLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxXQUFXLEVBQUUsU0FBUyxDQUFDO0VBQ3REO0VBRUEsT0FBTyxDQUFDLFlBQVksQ0FBQyxlQUFlLEVBQUUsTUFBTSxDQUFDO0VBRTdDLFFBQVEsQ0FBQyxXQUFXLEdBQUcsVUFBVSxHQUM3QixHQUFHLFVBQVUsVUFBVSxVQUFVLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxFQUFFLGFBQWEsR0FDN0QsYUFBYTtFQUVqQixJQUFJLFdBQVc7RUFFZixJQUFJLFVBQVUsSUFBSSxjQUFjLEVBQUU7SUFDaEMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxjQUFjLEVBQUUsQ0FBQztFQUMxRCxDQUFDLE1BQU0sSUFBSSxnQkFBZ0IsSUFBSSxZQUFZLEVBQUU7SUFDM0MsV0FBVyxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxZQUFZLEVBQUUsQ0FBQztFQUN4RDtFQUVBLElBQUksV0FBVyxFQUFFO0lBQ2YsZUFBZSxDQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUU7TUFDbkMsU0FBUyxFQUFFO0lBQ2IsQ0FBQyxDQUFDO0VBQ0o7QUFDRixDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLFFBQVEsR0FBSSxFQUFFLElBQUs7RUFDdkIsTUFBTTtJQUFFLE9BQU87SUFBRSxNQUFNO0lBQUUsUUFBUTtJQUFFO0VBQWdCLENBQUMsR0FBRyxrQkFBa0IsQ0FBQyxFQUFFLENBQUM7RUFFN0UsUUFBUSxDQUFDLFNBQVMsR0FBRyxFQUFFO0VBRXZCLE9BQU8sQ0FBQyxZQUFZLENBQUMsZUFBZSxFQUFFLE9BQU8sQ0FBQztFQUM5QyxPQUFPLENBQUMsWUFBWSxDQUFDLHVCQUF1QixFQUFFLEVBQUUsQ0FBQztFQUVqRCxJQUFJLGVBQWUsRUFBRTtJQUNuQixlQUFlLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQztFQUM3RDtFQUVBLE1BQU0sQ0FBQyxTQUFTLEdBQUcsQ0FBQztFQUNwQixNQUFNLENBQUMsTUFBTSxHQUFHLElBQUk7QUFDdEIsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxVQUFVLEdBQUksWUFBWSxJQUFLO0VBQ25DLE1BQU07SUFBRSxVQUFVO0lBQUUsUUFBUTtJQUFFO0VBQVEsQ0FBQyxHQUFHLGtCQUFrQixDQUFDLFlBQVksQ0FBQztFQUUxRSxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsWUFBWSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7RUFDeEQsa0JBQWtCLENBQUMsT0FBTyxFQUFFLFlBQVksQ0FBQyxXQUFXLENBQUM7RUFDckQsVUFBVSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsd0JBQXdCLENBQUM7RUFDbEQsUUFBUSxDQUFDLFVBQVUsQ0FBQztFQUNwQixPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDakIsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxVQUFVLEdBQUksYUFBYSxJQUFLO0VBQ3BDLE1BQU07SUFBRSxVQUFVO0lBQUUsTUFBTTtJQUFFLFFBQVE7SUFBRTtFQUFRLENBQUMsR0FDN0Msa0JBQWtCLENBQUMsYUFBYSxDQUFDO0VBQ25DLE1BQU0sU0FBUyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU07RUFFaEMsSUFBSSxRQUFRLENBQUMsS0FBSyxFQUFFLGtCQUFrQixDQUFDLFFBQVEsQ0FBQztFQUNoRCxJQUFJLE9BQU8sQ0FBQyxLQUFLLEVBQUUsa0JBQWtCLENBQUMsT0FBTyxDQUFDO0VBQzlDLFVBQVUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLHdCQUF3QixDQUFDO0VBRXJELElBQUksU0FBUyxFQUFFLFdBQVcsQ0FBQyxVQUFVLENBQUM7RUFDdEMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2pCLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sY0FBYyxHQUFJLEVBQUUsSUFBSztFQUM3QixNQUFNO0lBQUUsVUFBVTtJQUFFLFFBQVE7SUFBRTtFQUFRLENBQUMsR0FBRyxrQkFBa0IsQ0FBQyxFQUFFLENBQUM7RUFFaEUsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLEtBQUs7RUFDbEMsTUFBTSxVQUFVLEdBQUcsQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLEVBQUUsRUFBRSxXQUFXLENBQUMsQ0FBQztFQUV0RCxJQUFJLFdBQVcsRUFBRTtJQUNmLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUU7TUFDOUQsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7TUFDcEMsSUFBSSxRQUFRLENBQUMsS0FBSyxLQUFLLFdBQVcsRUFBRTtRQUNsQyxJQUFJLFVBQVUsS0FBSyxRQUFRLENBQUMsSUFBSSxFQUFFO1VBQ2hDLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDO1FBQzVDO1FBQ0EsVUFBVSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsd0JBQXdCLENBQUM7UUFDbEQ7TUFDRjtJQUNGO0VBQ0Y7RUFFQSxJQUFJLFVBQVUsRUFBRTtJQUNkLGtCQUFrQixDQUFDLE9BQU8sQ0FBQztFQUM3QjtBQUNGLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0saUJBQWlCLEdBQUksRUFBRSxJQUFLO0VBQ2hDLE1BQU07SUFBRSxVQUFVO0lBQUUsUUFBUTtJQUFFLE9BQU87SUFBRTtFQUFTLENBQUMsR0FBRyxrQkFBa0IsQ0FBQyxFQUFFLENBQUM7RUFFMUUsUUFBUSxDQUFDLFdBQVcsR0FBRyxFQUFFO0VBRXpCLE1BQU0sVUFBVSxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssSUFBSSxFQUFFLEVBQUUsV0FBVyxDQUFDLENBQUM7RUFFdEQsSUFBSSxVQUFVLEVBQUU7SUFDZCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFO01BQzlELE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO01BQ3BDLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxLQUFLLFVBQVUsRUFBRTtRQUM5QyxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLEtBQUssQ0FBQztRQUM1QyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQztRQUMxQyxVQUFVLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsQ0FBQztRQUNsRDtNQUNGO0lBQ0Y7RUFDRjtFQUVBLGNBQWMsQ0FBQyxVQUFVLENBQUM7QUFDNUIsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxZQUFZLEdBQUksS0FBSyxJQUFLO0VBQzlCLE1BQU07SUFBRSxVQUFVO0lBQUU7RUFBUSxDQUFDLEdBQUcsa0JBQWtCLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztFQUVoRSxRQUFRLENBQUMsVUFBVSxDQUFDO0VBQ3BCLGNBQWMsQ0FBQyxVQUFVLENBQUM7RUFDMUIsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2pCLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sbUJBQW1CLEdBQUksS0FBSyxJQUFLO0VBQ3JDLE1BQU07SUFBRSxVQUFVO0lBQUU7RUFBTyxDQUFDLEdBQUcsa0JBQWtCLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztFQUUvRCxJQUFJLE1BQU0sQ0FBQyxNQUFNLEVBQUU7SUFDakIsV0FBVyxDQUFDLFVBQVUsQ0FBQztFQUN6QjtFQUVBLE1BQU0sWUFBWSxHQUNoQixNQUFNLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUFDLElBQ3pDLE1BQU0sQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDO0VBRW5DLElBQUksWUFBWSxFQUFFO0lBQ2hCLGVBQWUsQ0FBQyxVQUFVLEVBQUUsWUFBWSxDQUFDO0VBQzNDO0VBRUEsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0FBQ3hCLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sb0JBQW9CLEdBQUksS0FBSyxJQUFLO0VBQ3RDLE1BQU07SUFBRSxVQUFVO0lBQUU7RUFBTyxDQUFDLEdBQUcsa0JBQWtCLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztFQUMvRCxNQUFNLFNBQVMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNO0VBRWhDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQztFQUU3QixJQUFJLFNBQVMsRUFBRTtJQUNiLFFBQVEsQ0FBQyxVQUFVLENBQUM7RUFDdEI7RUFFQSxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7QUFDeEIsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSx3QkFBd0IsR0FBSSxLQUFLLElBQUs7RUFDMUMsTUFBTSxlQUFlLEdBQUcsS0FBSyxDQUFDLE1BQU07RUFDcEMsTUFBTSxZQUFZLEdBQUcsZUFBZSxDQUFDLFdBQVc7RUFFaEQsSUFBSSxZQUFZLEVBQUU7SUFDaEIsZUFBZSxDQUFDLGVBQWUsRUFBRSxZQUFZLENBQUM7RUFDaEQ7RUFFQSxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7QUFDeEIsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSx5QkFBeUIsR0FBSSxLQUFLLElBQUs7RUFDM0MsVUFBVSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7RUFDeEIsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0FBQ3hCLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0seUJBQXlCLEdBQUksS0FBSyxJQUFLO0VBQzNDLFVBQVUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO0VBQ3hCLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQztBQUN4QixDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLHNCQUFzQixHQUFJLEtBQUssSUFBSztFQUN4QyxNQUFNO0lBQUUsVUFBVTtJQUFFLE1BQU07SUFBRTtFQUFnQixDQUFDLEdBQUcsa0JBQWtCLENBQ2hFLEtBQUssQ0FBQyxNQUNSLENBQUM7RUFDRCxNQUFNLFlBQVksR0FBRyxlQUFlLElBQUksZUFBZSxDQUFDLGVBQWU7RUFDdkUsTUFBTSxTQUFTLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTTtFQUVoQyxlQUFlLENBQUMsVUFBVSxFQUFFLFlBQVksQ0FBQztFQUV6QyxJQUFJLFNBQVMsRUFBRTtJQUNiLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQztFQUN4QjtFQUVBLElBQUksQ0FBQyxZQUFZLEVBQUU7SUFDakIsUUFBUSxDQUFDLFVBQVUsQ0FBQztFQUN0QjtBQUNGLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxlQUFlLEdBQUksWUFBWSxJQUFLO0VBQ3hDLE1BQU0sa0JBQWtCLEdBQUcsWUFBWSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQ3hELHlCQUNGLENBQUM7RUFFRCxJQUFJLGtCQUFrQixFQUFFO0VBRXhCLGVBQWUsQ0FBQyxZQUFZLEVBQUUsWUFBWSxFQUFFO0lBQzFDLGFBQWEsRUFBRTtFQUNqQixDQUFDLENBQUM7QUFDSixDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLFVBQVUsR0FBSSxFQUFFLElBQUs7RUFDekIsTUFBTTtJQUFFLFVBQVU7SUFBRSxNQUFNO0lBQUU7RUFBUSxDQUFDLEdBQUcsa0JBQWtCLENBQUMsRUFBRSxDQUFDO0VBRTlELElBQUksTUFBTSxDQUFDLE1BQU0sRUFBRTtJQUNqQixXQUFXLENBQUMsVUFBVSxDQUFDO0VBQ3pCLENBQUMsTUFBTTtJQUNMLFFBQVEsQ0FBQyxVQUFVLENBQUM7RUFDdEI7RUFFQSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDakIsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxvQkFBb0IsR0FBSSxFQUFFLElBQUs7RUFDbkMsTUFBTTtJQUFFLFVBQVU7SUFBRTtFQUFPLENBQUMsR0FBRyxrQkFBa0IsQ0FBQyxFQUFFLENBQUM7RUFFckQsSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFO0lBQ2pCLFdBQVcsQ0FBQyxVQUFVLENBQUM7RUFDekI7QUFDRixDQUFDO0FBRUQsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUN2QjtFQUNFLENBQUMsS0FBSyxHQUFHO0lBQ1AsQ0FBQyxLQUFLLElBQUk7TUFDUixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7TUFDbkIsb0JBQW9CLENBQUMsSUFBSSxDQUFDO0lBQzVCLENBQUM7SUFDRCxDQUFDLGtCQUFrQixJQUFJO01BQ3JCLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtNQUNuQixVQUFVLENBQUMsSUFBSSxDQUFDO0lBQ2xCLENBQUM7SUFDRCxDQUFDLFdBQVcsSUFBSTtNQUNkLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtNQUNuQixVQUFVLENBQUMsSUFBSSxDQUFDO0lBQ2xCLENBQUM7SUFDRCxDQUFDLGtCQUFrQixJQUFJO01BQ3JCLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtNQUNuQixVQUFVLENBQUMsSUFBSSxDQUFDO0lBQ2xCO0VBQ0YsQ0FBQztFQUNELFFBQVEsRUFBRTtJQUNSLENBQUMsU0FBUyxFQUFFLEtBQUssRUFBRTtNQUNqQixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEVBQUU7UUFDdkMsY0FBYyxDQUFDLElBQUksQ0FBQztRQUNwQixRQUFRLENBQUMsSUFBSSxDQUFDO01BQ2hCO0lBQ0Y7RUFDRixDQUFDO0VBQ0QsT0FBTyxFQUFFO0lBQ1AsQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDO01BQ2xCLE1BQU0sRUFBRTtJQUNWLENBQUMsQ0FBQztJQUNGLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQztNQUNkLEtBQUssRUFBRSxvQkFBb0I7TUFDM0IsU0FBUyxFQUFFLG1CQUFtQjtNQUM5QixJQUFJLEVBQUU7SUFDUixDQUFDLENBQUM7SUFDRixDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUM7TUFDcEIsT0FBTyxFQUFFLHNCQUFzQjtNQUMvQixFQUFFLEVBQUUsc0JBQXNCO01BQzFCLFNBQVMsRUFBRSx3QkFBd0I7TUFDbkMsSUFBSSxFQUFFLHdCQUF3QjtNQUM5QixLQUFLLEVBQUUseUJBQXlCO01BQ2hDLEdBQUcsRUFBRSx5QkFBeUI7TUFDOUIsV0FBVyxFQUFFO0lBQ2YsQ0FBQztFQUNILENBQUM7RUFDRCxLQUFLLEVBQUU7SUFDTCxDQUFDLEtBQUssSUFBSTtNQUNSLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDO01BQzFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLHdCQUF3QixDQUFDO01BQ3JELFdBQVcsQ0FBQyxJQUFJLENBQUM7SUFDbkI7RUFDRixDQUFDO0VBQ0QsU0FBUyxFQUFFO0lBQ1QsQ0FBQyxXQUFXLElBQUk7TUFDZCxlQUFlLENBQUMsSUFBSSxDQUFDO0lBQ3ZCO0VBQ0Y7QUFDRixDQUFDLEVBQ0Q7RUFDRSxJQUFJLENBQUMsSUFBSSxFQUFFO0lBQ1QsZUFBZSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUUsVUFBVSxJQUFLO01BQ3ZELGVBQWUsQ0FBQyxVQUFVLENBQUM7SUFDN0IsQ0FBQyxDQUFDO0VBQ0osQ0FBQztFQUNELGtCQUFrQjtFQUNsQixlQUFlO0VBQ2YscUJBQXFCO0VBQ3JCLE9BQU87RUFDUCxNQUFNO0VBQ04sV0FBVztFQUNYLFFBQVE7RUFDUjtBQUNGLENBQ0YsQ0FBQztBQUVELE1BQU0sQ0FBQyxPQUFPLEdBQUcsUUFBUTs7Ozs7QUNyNEJ6QixNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUM7QUFDekMsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLHdDQUF3QyxDQUFDO0FBQ2xFLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxzQ0FBc0MsQ0FBQztBQUM5RCxNQUFNLGVBQWUsR0FBRyxPQUFPLENBQUMsaURBQWlELENBQUM7QUFDbEYsTUFBTTtFQUFFLE1BQU0sRUFBRTtBQUFPLENBQUMsR0FBRyxPQUFPLENBQUMsZ0NBQWdDLENBQUM7QUFDcEUsTUFBTTtFQUFFO0FBQU0sQ0FBQyxHQUFHLE9BQU8sQ0FBQyxnQ0FBZ0MsQ0FBQztBQUMzRCxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsOENBQThDLENBQUM7QUFDN0UsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLDZDQUE2QyxDQUFDO0FBQzFFLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyx5Q0FBeUMsQ0FBQztBQUVwRSxNQUFNLGlCQUFpQixHQUFHLEdBQUcsTUFBTSxjQUFjO0FBQ2pELE1BQU0seUJBQXlCLEdBQUcsR0FBRyxpQkFBaUIsV0FBVztBQUNqRSxNQUFNLDZCQUE2QixHQUFHLEdBQUcsaUJBQWlCLGVBQWU7QUFDekUsTUFBTSx3QkFBd0IsR0FBRyxHQUFHLGlCQUFpQixVQUFVO0FBQy9ELE1BQU0sZ0NBQWdDLEdBQUcsR0FBRyxpQkFBaUIsa0JBQWtCO0FBQy9FLE1BQU0sZ0NBQWdDLEdBQUcsR0FBRyxpQkFBaUIsa0JBQWtCO0FBQy9FLE1BQU0sd0JBQXdCLEdBQUcsR0FBRyxpQkFBaUIsVUFBVTtBQUMvRCxNQUFNLDBCQUEwQixHQUFHLEdBQUcsaUJBQWlCLFlBQVk7QUFDbkUsTUFBTSx3QkFBd0IsR0FBRyxHQUFHLGlCQUFpQixVQUFVO0FBQy9ELE1BQU0sbUJBQW1CLEdBQUcsR0FBRywwQkFBMEIsUUFBUTtBQUVqRSxNQUFNLDJCQUEyQixHQUFHLEdBQUcsbUJBQW1CLFdBQVc7QUFDckUsTUFBTSw0QkFBNEIsR0FBRyxHQUFHLG1CQUFtQixZQUFZO0FBQ3ZFLE1BQU0sa0NBQWtDLEdBQUcsR0FBRyxtQkFBbUIsa0JBQWtCO0FBQ25GLE1BQU0saUNBQWlDLEdBQUcsR0FBRyxtQkFBbUIsaUJBQWlCO0FBQ2pGLE1BQU0sOEJBQThCLEdBQUcsR0FBRyxtQkFBbUIsY0FBYztBQUMzRSxNQUFNLDhCQUE4QixHQUFHLEdBQUcsbUJBQW1CLGNBQWM7QUFDM0UsTUFBTSx5QkFBeUIsR0FBRyxHQUFHLG1CQUFtQixTQUFTO0FBQ2pFLE1BQU0sb0NBQW9DLEdBQUcsR0FBRyxtQkFBbUIsb0JBQW9CO0FBQ3ZGLE1BQU0sa0NBQWtDLEdBQUcsR0FBRyxtQkFBbUIsa0JBQWtCO0FBQ25GLE1BQU0sZ0NBQWdDLEdBQUcsR0FBRyxtQkFBbUIsZ0JBQWdCO0FBQy9FLE1BQU0sNEJBQTRCLEdBQUcsR0FBRywwQkFBMEIsaUJBQWlCO0FBQ25GLE1BQU0sNkJBQTZCLEdBQUcsR0FBRywwQkFBMEIsa0JBQWtCO0FBQ3JGLE1BQU0sd0JBQXdCLEdBQUcsR0FBRywwQkFBMEIsYUFBYTtBQUMzRSxNQUFNLHlCQUF5QixHQUFHLEdBQUcsMEJBQTBCLGNBQWM7QUFDN0UsTUFBTSw4QkFBOEIsR0FBRyxHQUFHLDBCQUEwQixtQkFBbUI7QUFDdkYsTUFBTSw2QkFBNkIsR0FBRyxHQUFHLDBCQUEwQixrQkFBa0I7QUFDckYsTUFBTSxvQkFBb0IsR0FBRyxHQUFHLDBCQUEwQixTQUFTO0FBQ25FLE1BQU0sNEJBQTRCLEdBQUcsR0FBRyxvQkFBb0IsV0FBVztBQUN2RSxNQUFNLDZCQUE2QixHQUFHLEdBQUcsb0JBQW9CLFlBQVk7QUFDekUsTUFBTSxtQkFBbUIsR0FBRyxHQUFHLDBCQUEwQixRQUFRO0FBQ2pFLE1BQU0sMkJBQTJCLEdBQUcsR0FBRyxtQkFBbUIsV0FBVztBQUNyRSxNQUFNLDRCQUE0QixHQUFHLEdBQUcsbUJBQW1CLFlBQVk7QUFDdkUsTUFBTSxrQ0FBa0MsR0FBRyxHQUFHLDBCQUEwQix1QkFBdUI7QUFDL0YsTUFBTSw4QkFBOEIsR0FBRyxHQUFHLDBCQUEwQixtQkFBbUI7QUFDdkYsTUFBTSwwQkFBMEIsR0FBRyxHQUFHLDBCQUEwQixlQUFlO0FBQy9FLE1BQU0sMkJBQTJCLEdBQUcsR0FBRywwQkFBMEIsZ0JBQWdCO0FBQ2pGLE1BQU0sMEJBQTBCLEdBQUcsR0FBRywwQkFBMEIsZUFBZTtBQUMvRSxNQUFNLG9CQUFvQixHQUFHLEdBQUcsMEJBQTBCLFNBQVM7QUFDbkUsTUFBTSxrQkFBa0IsR0FBRyxHQUFHLDBCQUEwQixPQUFPO0FBQy9ELE1BQU0sbUJBQW1CLEdBQUcsR0FBRywwQkFBMEIsUUFBUTtBQUNqRSxNQUFNLGdDQUFnQyxHQUFHLEdBQUcsbUJBQW1CLGdCQUFnQjtBQUMvRSxNQUFNLDBCQUEwQixHQUFHLEdBQUcsMEJBQTBCLGVBQWU7QUFDL0UsTUFBTSwwQkFBMEIsR0FBRyxHQUFHLDBCQUEwQixlQUFlO0FBRS9FLE1BQU0sV0FBVyxHQUFHLElBQUksaUJBQWlCLEVBQUU7QUFDM0MsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLHdCQUF3QixFQUFFO0FBQ3pELE1BQU0sMEJBQTBCLEdBQUcsSUFBSSxnQ0FBZ0MsRUFBRTtBQUN6RSxNQUFNLDBCQUEwQixHQUFHLElBQUksZ0NBQWdDLEVBQUU7QUFDekUsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLDBCQUEwQixFQUFFO0FBQzdELE1BQU0sa0JBQWtCLEdBQUcsSUFBSSx3QkFBd0IsRUFBRTtBQUN6RCxNQUFNLGFBQWEsR0FBRyxJQUFJLG1CQUFtQixFQUFFO0FBQy9DLE1BQU0scUJBQXFCLEdBQUcsSUFBSSwyQkFBMkIsRUFBRTtBQUMvRCxNQUFNLDJCQUEyQixHQUFHLElBQUksaUNBQWlDLEVBQUU7QUFDM0UsTUFBTSxzQkFBc0IsR0FBRyxJQUFJLDRCQUE0QixFQUFFO0FBQ2pFLE1BQU0sdUJBQXVCLEdBQUcsSUFBSSw2QkFBNkIsRUFBRTtBQUNuRSxNQUFNLGtCQUFrQixHQUFHLElBQUksd0JBQXdCLEVBQUU7QUFDekQsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLHlCQUF5QixFQUFFO0FBQzNELE1BQU0sdUJBQXVCLEdBQUcsSUFBSSw2QkFBNkIsRUFBRTtBQUNuRSxNQUFNLHdCQUF3QixHQUFHLElBQUksOEJBQThCLEVBQUU7QUFDckUsTUFBTSxjQUFjLEdBQUcsSUFBSSxvQkFBb0IsRUFBRTtBQUNqRCxNQUFNLGFBQWEsR0FBRyxJQUFJLG1CQUFtQixFQUFFO0FBQy9DLE1BQU0sNEJBQTRCLEdBQUcsSUFBSSxrQ0FBa0MsRUFBRTtBQUM3RSxNQUFNLHdCQUF3QixHQUFHLElBQUksOEJBQThCLEVBQUU7QUFDckUsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLDBCQUEwQixFQUFFO0FBQzdELE1BQU0scUJBQXFCLEdBQUcsSUFBSSwyQkFBMkIsRUFBRTtBQUMvRCxNQUFNLG9CQUFvQixHQUFHLElBQUksMEJBQTBCLEVBQUU7QUFDN0QsTUFBTSxzQkFBc0IsR0FBRyxJQUFJLDRCQUE0QixFQUFFO0FBQ2pFLE1BQU0scUJBQXFCLEdBQUcsSUFBSSwyQkFBMkIsRUFBRTtBQUUvRCxNQUFNLGtCQUFrQixHQUFHLDJCQUEyQjtBQUV0RCxNQUFNLFlBQVksR0FBRyxDQUNuQixTQUFTLEVBQ1QsVUFBVSxFQUNWLE9BQU8sRUFDUCxPQUFPLEVBQ1AsS0FBSyxFQUNMLE1BQU0sRUFDTixNQUFNLEVBQ04sUUFBUSxFQUNSLFdBQVcsRUFDWCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFVBQVUsQ0FDWDtBQUVELE1BQU0sa0JBQWtCLEdBQUcsQ0FDekIsUUFBUSxFQUNSLFFBQVEsRUFDUixTQUFTLEVBQ1QsV0FBVyxFQUNYLFVBQVUsRUFDVixRQUFRLEVBQ1IsVUFBVSxDQUNYO0FBRUQsTUFBTSxhQUFhLEdBQUcsRUFBRTtBQUV4QixNQUFNLFVBQVUsR0FBRyxFQUFFO0FBRXJCLE1BQU0sZ0JBQWdCLEdBQUcsWUFBWTtBQUNyQyxNQUFNLDRCQUE0QixHQUFHLFlBQVk7QUFDakQsTUFBTSxvQkFBb0IsR0FBRyxZQUFZO0FBRXpDLE1BQU0scUJBQXFCLEdBQUcsa0JBQWtCO0FBRWhELE1BQU0seUJBQXlCLEdBQUcsQ0FBQyxHQUFHLFNBQVMsS0FDN0MsU0FBUyxDQUFDLEdBQUcsQ0FBRSxLQUFLLElBQUssS0FBSyxHQUFHLHFCQUFxQixDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztBQUVwRSxNQUFNLHFCQUFxQixHQUFHLHlCQUF5QixDQUNyRCxzQkFBc0IsRUFDdEIsdUJBQXVCLEVBQ3ZCLHVCQUF1QixFQUN2Qix3QkFBd0IsRUFDeEIsa0JBQWtCLEVBQ2xCLG1CQUFtQixFQUNuQixxQkFDRixDQUFDO0FBRUQsTUFBTSxzQkFBc0IsR0FBRyx5QkFBeUIsQ0FDdEQsc0JBQ0YsQ0FBQztBQUVELE1BQU0scUJBQXFCLEdBQUcseUJBQXlCLENBQ3JELDRCQUE0QixFQUM1Qix3QkFBd0IsRUFDeEIscUJBQ0YsQ0FBQzs7QUFFRDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxXQUFXLEVBQUUsS0FBSyxLQUFLO0VBQ2xELElBQUksS0FBSyxLQUFLLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFO0lBQ3BDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0VBQ3hCO0VBRUEsT0FBTyxXQUFXO0FBQ3BCLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sT0FBTyxHQUFHLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEtBQUs7RUFDckMsTUFBTSxPQUFPLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDO0VBQzNCLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUM7RUFDdEMsT0FBTyxPQUFPO0FBQ2hCLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sS0FBSyxHQUFHLENBQUEsS0FBTTtFQUNsQixNQUFNLE9BQU8sR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDO0VBQzFCLE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztFQUM3QixNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7RUFDaEMsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0VBQ2xDLE9BQU8sT0FBTyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDO0FBQ2xDLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxZQUFZLEdBQUksSUFBSSxJQUFLO0VBQzdCLE1BQU0sT0FBTyxHQUFHLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQztFQUMzQixPQUFPLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztFQUMzRCxPQUFPLE9BQU87QUFDaEIsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLGNBQWMsR0FBSSxJQUFJLElBQUs7RUFDL0IsTUFBTSxPQUFPLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDO0VBQzNCLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztFQUMvRCxPQUFPLE9BQU87QUFDaEIsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sT0FBTyxHQUFHLENBQUMsS0FBSyxFQUFFLE9BQU8sS0FBSztFQUNsQyxNQUFNLE9BQU8sR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztFQUN6QyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQztFQUM1QyxPQUFPLE9BQU87QUFDaEIsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sT0FBTyxHQUFHLENBQUMsS0FBSyxFQUFFLE9BQU8sS0FBSyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUMsT0FBTyxDQUFDOztBQUU1RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sUUFBUSxHQUFHLENBQUMsS0FBSyxFQUFFLFFBQVEsS0FBSyxPQUFPLENBQUMsS0FBSyxFQUFFLFFBQVEsR0FBRyxDQUFDLENBQUM7O0FBRWxFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxRQUFRLEdBQUcsQ0FBQyxLQUFLLEVBQUUsUUFBUSxLQUFLLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxRQUFRLENBQUM7O0FBRWhFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sV0FBVyxHQUFJLEtBQUssSUFBSztFQUM3QixNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7RUFDaEMsT0FBTyxPQUFPLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQztBQUNsQyxDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxTQUFTLEdBQUksS0FBSyxJQUFLO0VBQzNCLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztFQUNoQyxPQUFPLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQztBQUN0QyxDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxTQUFTLEdBQUcsQ0FBQyxLQUFLLEVBQUUsU0FBUyxLQUFLO0VBQ3RDLE1BQU0sT0FBTyxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0VBRXpDLE1BQU0sU0FBUyxHQUFHLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLFNBQVMsSUFBSSxFQUFFO0VBQzVELE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDO0VBQ2hELG1CQUFtQixDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUM7RUFFdkMsT0FBTyxPQUFPO0FBQ2hCLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLFNBQVMsR0FBRyxDQUFDLEtBQUssRUFBRSxTQUFTLEtBQUssU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDLFNBQVMsQ0FBQzs7QUFFcEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLFFBQVEsR0FBRyxDQUFDLEtBQUssRUFBRSxRQUFRLEtBQUssU0FBUyxDQUFDLEtBQUssRUFBRSxRQUFRLEdBQUcsRUFBRSxDQUFDOztBQUVyRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sUUFBUSxHQUFHLENBQUMsS0FBSyxFQUFFLFFBQVEsS0FBSyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUMsUUFBUSxDQUFDOztBQUVoRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sUUFBUSxHQUFHLENBQUMsS0FBSyxFQUFFLEtBQUssS0FBSztFQUNqQyxNQUFNLE9BQU8sR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztFQUV6QyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztFQUN2QixtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDO0VBRW5DLE9BQU8sT0FBTztBQUNoQixDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxPQUFPLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxLQUFLO0VBQy9CLE1BQU0sT0FBTyxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0VBRXpDLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztFQUNoQyxPQUFPLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztFQUN6QixtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDO0VBRW5DLE9BQU8sT0FBTztBQUNoQixDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxHQUFHLEdBQUcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxLQUFLO0VBQzVCLElBQUksT0FBTyxHQUFHLEtBQUs7RUFFbkIsSUFBSSxLQUFLLEdBQUcsS0FBSyxFQUFFO0lBQ2pCLE9BQU8sR0FBRyxLQUFLO0VBQ2pCO0VBRUEsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztBQUNwQyxDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxHQUFHLEdBQUcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxLQUFLO0VBQzVCLElBQUksT0FBTyxHQUFHLEtBQUs7RUFFbkIsSUFBSSxLQUFLLEdBQUcsS0FBSyxFQUFFO0lBQ2pCLE9BQU8sR0FBRyxLQUFLO0VBQ2pCO0VBRUEsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztBQUNwQyxDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxVQUFVLEdBQUcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxLQUM5QixLQUFLLElBQUksS0FBSyxJQUFJLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxLQUFLLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQzs7QUFFL0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLFdBQVcsR0FBRyxDQUFDLEtBQUssRUFBRSxLQUFLLEtBQy9CLFVBQVUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEtBQUssS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDOztBQUVuRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sU0FBUyxHQUFHLENBQUMsS0FBSyxFQUFFLEtBQUssS0FDN0IsV0FBVyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7O0FBRWxFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLHdCQUF3QixHQUFHLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxPQUFPLEtBQUs7RUFDM0QsSUFBSSxPQUFPLEdBQUcsSUFBSTtFQUVsQixJQUFJLElBQUksR0FBRyxPQUFPLEVBQUU7SUFDbEIsT0FBTyxHQUFHLE9BQU87RUFDbkIsQ0FBQyxNQUFNLElBQUksT0FBTyxJQUFJLElBQUksR0FBRyxPQUFPLEVBQUU7SUFDcEMsT0FBTyxHQUFHLE9BQU87RUFDbkI7RUFFQSxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0FBQ3BDLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sS0FDbkQsSUFBSSxJQUFJLE9BQU8sS0FBSyxDQUFDLE9BQU8sSUFBSSxJQUFJLElBQUksT0FBTyxDQUFDOztBQUVsRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSwyQkFBMkIsR0FBRyxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBTyxLQUN6RCxjQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsT0FBTyxJQUFLLE9BQU8sSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsT0FBUTs7QUFFN0U7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sMEJBQTBCLEdBQUcsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sS0FDeEQsY0FBYyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxPQUFPLElBQzNDLE9BQU8sSUFBSSxZQUFZLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQVE7O0FBRXhEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxhQUFhLEdBQUcsQ0FBQyxJQUFJLEVBQUUsU0FBUyxLQUFLO0VBQ3pDLE1BQU0sbUJBQW1CLEdBQUcsSUFBSTtFQUNoQyxNQUFNLGNBQWMsR0FBRyxTQUFTLElBQUksR0FBRyxDQUFDLG1CQUFtQixFQUFFLFNBQVMsQ0FBQztFQUN2RSxNQUFNLFlBQVksR0FBRyxTQUFTLElBQUksR0FBRyxDQUFDLG1CQUFtQixFQUFFLFNBQVMsQ0FBQztFQUVyRSxNQUFNLG9CQUFvQixHQUFHLFNBQVMsSUFBSSxPQUFPLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQztFQUNwRSxNQUFNLGtCQUFrQixHQUFHLFNBQVMsSUFBSSxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztFQUVoRSxPQUFPO0lBQ0wsY0FBYztJQUNkLFlBQVk7SUFDWixvQkFBb0I7SUFDcEI7RUFDRixDQUFDO0FBQ0gsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxlQUFlLEdBQUcsQ0FDdEIsVUFBVSxFQUNWLFVBQVUsR0FBRyxvQkFBb0IsRUFDakMsVUFBVSxHQUFHLEtBQUssS0FDZjtFQUNILElBQUksSUFBSTtFQUNSLElBQUksS0FBSztFQUNULElBQUksR0FBRztFQUNQLElBQUksSUFBSTtFQUNSLElBQUksTUFBTTtFQUVWLElBQUksVUFBVSxFQUFFO0lBQ2QsSUFBSSxRQUFRO0lBQ1osSUFBSSxNQUFNO0lBQ1YsSUFBSSxPQUFPO0lBRVgsSUFBSSxVQUFVLEtBQUssNEJBQTRCLEVBQUU7TUFDL0MsQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDO0lBQ3JELENBQUMsTUFBTTtNQUNMLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQztJQUNyRDtJQUVBLElBQUksT0FBTyxFQUFFO01BQ1gsTUFBTSxHQUFHLFFBQVEsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO01BQzlCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1FBQ3pCLElBQUksR0FBRyxNQUFNO1FBQ2IsSUFBSSxVQUFVLEVBQUU7VUFDZCxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDO1VBQ3hCLElBQUksT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDdEIsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUN6QyxNQUFNLGVBQWUsR0FDbkIsV0FBVyxHQUFJLFdBQVcsR0FBRyxFQUFFLElBQUksT0FBTyxDQUFDLE1BQU87WUFDcEQsSUFBSSxHQUFHLGVBQWUsR0FBRyxNQUFNO1VBQ2pDO1FBQ0Y7TUFDRjtJQUNGO0lBRUEsSUFBSSxRQUFRLEVBQUU7TUFDWixNQUFNLEdBQUcsUUFBUSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7TUFDL0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUU7UUFDekIsS0FBSyxHQUFHLE1BQU07UUFDZCxJQUFJLFVBQVUsRUFBRTtVQUNkLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUM7VUFDMUIsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQztRQUM3QjtNQUNGO0lBQ0Y7SUFFQSxJQUFJLEtBQUssSUFBSSxNQUFNLElBQUksSUFBSSxJQUFJLElBQUksRUFBRTtNQUNuQyxNQUFNLEdBQUcsUUFBUSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7TUFDN0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUU7UUFDekIsR0FBRyxHQUFHLE1BQU07UUFDWixJQUFJLFVBQVUsRUFBRTtVQUNkLE1BQU0saUJBQWlCLEdBQUcsT0FBTyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7VUFDM0QsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQztVQUN0QixHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRSxHQUFHLENBQUM7UUFDeEM7TUFDRjtJQUNGO0lBRUEsSUFBSSxLQUFLLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLEVBQUU7TUFDaEMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLEVBQUUsS0FBSyxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUM7SUFDdEM7RUFDRjtFQUVBLE9BQU8sSUFBSTtBQUNiLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLFVBQVUsR0FBRyxDQUFDLElBQUksRUFBRSxVQUFVLEdBQUcsb0JBQW9CLEtBQUs7RUFDOUQsTUFBTSxRQUFRLEdBQUcsQ0FBQyxLQUFLLEVBQUUsTUFBTSxLQUFLLE9BQU8sS0FBSyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDO0VBRWpFLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUM7RUFDakMsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0VBQzFCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztFQUUvQixJQUFJLFVBQVUsS0FBSyw0QkFBNEIsRUFBRTtJQUMvQyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO0VBQzVFO0VBRUEsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztBQUM1RSxDQUFDOztBQUVEOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxjQUFjLEdBQUcsQ0FBQyxTQUFTLEVBQUUsT0FBTyxLQUFLO0VBQzdDLE1BQU0sSUFBSSxHQUFHLEVBQUU7RUFDZixJQUFJLEdBQUcsR0FBRyxFQUFFO0VBRVosSUFBSSxDQUFDLEdBQUcsQ0FBQztFQUNULE9BQU8sQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUU7SUFDM0IsR0FBRyxHQUFHLEVBQUU7SUFFUixNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQztJQUN2QyxPQUFPLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxJQUFJLEdBQUcsQ0FBQyxNQUFNLEdBQUcsT0FBTyxFQUFFO01BQ25ELE1BQU0sRUFBRSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDO01BQ3ZDLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxXQUFXLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO01BQ25ELEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO01BQ1osQ0FBQyxJQUFJLENBQUM7SUFDUjtJQUVBLEdBQUcsQ0FBQyxPQUFPLENBQUUsT0FBTyxJQUFLO01BQ3ZCLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDO0lBQ2hELENBQUMsQ0FBQztJQUVGLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO0VBQ2Y7RUFFQSxPQUFPLElBQUk7QUFDYixDQUFDO0FBRUQsTUFBTSxlQUFlLEdBQUksSUFBSSxJQUFLO0VBQ2hDLE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDO0VBQ2pELElBQUksQ0FBQyxPQUFPLENBQUUsT0FBTyxJQUFLO0lBQ3hCLFNBQVMsQ0FBQyxxQkFBcUIsQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDO0VBQ3ZELENBQUMsQ0FBQztFQUVGLE9BQU8sU0FBUztBQUNsQixDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxFQUFFLEVBQUUsS0FBSyxHQUFHLEVBQUUsS0FBSztFQUM3QyxNQUFNLGVBQWUsR0FBRyxFQUFFO0VBQzFCLGVBQWUsQ0FBQyxLQUFLLEdBQUcsS0FBSztFQUU3QixNQUFNLEtBQUssR0FBRyxJQUFJLFdBQVcsQ0FBQyxRQUFRLEVBQUU7SUFDdEMsT0FBTyxFQUFFLElBQUk7SUFDYixVQUFVLEVBQUUsSUFBSTtJQUNoQixNQUFNLEVBQUU7TUFBRTtJQUFNO0VBQ2xCLENBQUMsQ0FBQztFQUNGLGVBQWUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDO0FBQ3RDLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLG9CQUFvQixHQUFJLEVBQUUsSUFBSztFQUNuQyxNQUFNLFlBQVksR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztFQUU1QyxJQUFJLENBQUMsWUFBWSxFQUFFO0lBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQUMsNEJBQTRCLFdBQVcsRUFBRSxDQUFDO0VBQzVEO0VBRUEsTUFBTSxlQUFlLEdBQUcsWUFBWSxDQUFDLGFBQWEsQ0FDaEQsMEJBQ0YsQ0FBQztFQUNELE1BQU0sZUFBZSxHQUFHLFlBQVksQ0FBQyxhQUFhLENBQ2hELDBCQUNGLENBQUM7RUFDRCxNQUFNLFVBQVUsR0FBRyxZQUFZLENBQUMsYUFBYSxDQUFDLG9CQUFvQixDQUFDO0VBQ25FLE1BQU0sV0FBVyxHQUFHLFlBQVksQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQUM7RUFDbEUsTUFBTSxRQUFRLEdBQUcsWUFBWSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQztFQUMvRCxNQUFNLGdCQUFnQixHQUFHLFlBQVksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDO0VBRWxFLE1BQU0sU0FBUyxHQUFHLGVBQWUsQ0FDL0IsZUFBZSxDQUFDLEtBQUssRUFDckIsNEJBQTRCLEVBQzVCLElBQ0YsQ0FBQztFQUNELE1BQU0sWUFBWSxHQUFHLGVBQWUsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDO0VBRTNELE1BQU0sWUFBWSxHQUFHLGVBQWUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztFQUM5RCxNQUFNLE9BQU8sR0FBRyxlQUFlLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7RUFDN0QsTUFBTSxPQUFPLEdBQUcsZUFBZSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO0VBQzdELE1BQU0sU0FBUyxHQUFHLGVBQWUsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQztFQUNqRSxNQUFNLFdBQVcsR0FBRyxlQUFlLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUM7RUFFckUsSUFBSSxPQUFPLElBQUksT0FBTyxJQUFJLE9BQU8sR0FBRyxPQUFPLEVBQUU7SUFDM0MsTUFBTSxJQUFJLEtBQUssQ0FBQywyQ0FBMkMsQ0FBQztFQUM5RDtFQUVBLE9BQU87SUFDTCxZQUFZO0lBQ1osT0FBTztJQUNQLFdBQVc7SUFDWCxZQUFZO0lBQ1osT0FBTztJQUNQLGdCQUFnQjtJQUNoQixZQUFZO0lBQ1osU0FBUztJQUNULGVBQWU7SUFDZixlQUFlO0lBQ2YsVUFBVTtJQUNWLFNBQVM7SUFDVCxXQUFXO0lBQ1g7RUFDRixDQUFDO0FBQ0gsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxPQUFPLEdBQUksRUFBRSxJQUFLO0VBQ3RCLE1BQU07SUFBRSxlQUFlO0lBQUU7RUFBWSxDQUFDLEdBQUcsb0JBQW9CLENBQUMsRUFBRSxDQUFDO0VBRWpFLFdBQVcsQ0FBQyxRQUFRLEdBQUcsSUFBSTtFQUMzQixlQUFlLENBQUMsUUFBUSxHQUFHLElBQUk7QUFDakMsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxXQUFXLEdBQUksRUFBRSxJQUFLO0VBQzFCLE1BQU07SUFBRSxlQUFlO0lBQUU7RUFBWSxDQUFDLEdBQUcsb0JBQW9CLENBQUMsRUFBRSxDQUFDO0VBRWpFLFdBQVcsQ0FBQyxZQUFZLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQztFQUMvQyxlQUFlLENBQUMsWUFBWSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUM7RUFDbkQsZUFBZSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDO0FBQzlDLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sTUFBTSxHQUFJLEVBQUUsSUFBSztFQUNyQixNQUFNO0lBQUUsZUFBZTtJQUFFO0VBQVksQ0FBQyxHQUFHLG9CQUFvQixDQUFDLEVBQUUsQ0FBQztFQUVqRSxXQUFXLENBQUMsUUFBUSxHQUFHLEtBQUs7RUFDNUIsV0FBVyxDQUFDLGVBQWUsQ0FBQyxlQUFlLENBQUM7RUFFNUMsZUFBZSxDQUFDLFFBQVEsR0FBRyxLQUFLO0VBQ2hDLGVBQWUsQ0FBQyxlQUFlLENBQUMsZUFBZSxDQUFDO0VBQ2hELGVBQWUsQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDO0FBQzdDLENBQUM7O0FBRUQ7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sa0JBQWtCLEdBQUksRUFBRSxJQUFLO0VBQ2pDLE1BQU07SUFBRSxlQUFlO0lBQUUsT0FBTztJQUFFO0VBQVEsQ0FBQyxHQUFHLG9CQUFvQixDQUFDLEVBQUUsQ0FBQztFQUV0RSxNQUFNLFVBQVUsR0FBRyxlQUFlLENBQUMsS0FBSztFQUN4QyxJQUFJLFNBQVMsR0FBRyxLQUFLO0VBRXJCLElBQUksVUFBVSxFQUFFO0lBQ2QsU0FBUyxHQUFHLElBQUk7SUFFaEIsTUFBTSxlQUFlLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUM7SUFDN0MsTUFBTSxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUcsZUFBZSxDQUFDLEdBQUcsQ0FBRSxHQUFHLElBQUs7TUFDdEQsSUFBSSxLQUFLO01BQ1QsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUM7TUFDaEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsS0FBSyxHQUFHLE1BQU07TUFDekMsT0FBTyxLQUFLO0lBQ2QsQ0FBQyxDQUFDO0lBRUYsSUFBSSxLQUFLLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLEVBQUU7TUFDaEMsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLElBQUksRUFBRSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQztNQUUvQyxJQUNFLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxLQUFLLEtBQUssR0FBRyxDQUFDLElBQ2xDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEdBQUcsSUFDM0IsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDLEtBQUssSUFBSSxJQUNoQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsSUFDL0IscUJBQXFCLENBQUMsU0FBUyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsRUFDbEQ7UUFDQSxTQUFTLEdBQUcsS0FBSztNQUNuQjtJQUNGO0VBQ0Y7RUFFQSxPQUFPLFNBQVM7QUFDbEIsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxpQkFBaUIsR0FBSSxFQUFFLElBQUs7RUFDaEMsTUFBTTtJQUFFO0VBQWdCLENBQUMsR0FBRyxvQkFBb0IsQ0FBQyxFQUFFLENBQUM7RUFDcEQsTUFBTSxTQUFTLEdBQUcsa0JBQWtCLENBQUMsZUFBZSxDQUFDO0VBRXJELElBQUksU0FBUyxJQUFJLENBQUMsZUFBZSxDQUFDLGlCQUFpQixFQUFFO0lBQ25ELGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQyxrQkFBa0IsQ0FBQztFQUN2RDtFQUVBLElBQUksQ0FBQyxTQUFTLElBQUksZUFBZSxDQUFDLGlCQUFpQixLQUFLLGtCQUFrQixFQUFFO0lBQzFFLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUM7RUFDdkM7QUFDRixDQUFDOztBQUVEOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLG9CQUFvQixHQUFJLEVBQUUsSUFBSztFQUNuQyxNQUFNO0lBQUUsZUFBZTtJQUFFO0VBQVUsQ0FBQyxHQUFHLG9CQUFvQixDQUFDLEVBQUUsQ0FBQztFQUMvRCxJQUFJLFFBQVEsR0FBRyxFQUFFO0VBRWpCLElBQUksU0FBUyxJQUFJLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDLEVBQUU7SUFDeEMsUUFBUSxHQUFHLFVBQVUsQ0FBQyxTQUFTLENBQUM7RUFDbEM7RUFFQSxJQUFJLGVBQWUsQ0FBQyxLQUFLLEtBQUssUUFBUSxFQUFFO0lBQ3RDLGtCQUFrQixDQUFDLGVBQWUsRUFBRSxRQUFRLENBQUM7RUFDL0M7QUFDRixDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxFQUFFLEVBQUUsVUFBVSxLQUFLO0VBQzNDLE1BQU0sVUFBVSxHQUFHLGVBQWUsQ0FBQyxVQUFVLENBQUM7RUFFOUMsSUFBSSxVQUFVLEVBQUU7SUFDZCxNQUFNLGFBQWEsR0FBRyxVQUFVLENBQUMsVUFBVSxFQUFFLDRCQUE0QixDQUFDO0lBRTFFLE1BQU07TUFBRSxZQUFZO01BQUUsZUFBZTtNQUFFO0lBQWdCLENBQUMsR0FDdEQsb0JBQW9CLENBQUMsRUFBRSxDQUFDO0lBRTFCLGtCQUFrQixDQUFDLGVBQWUsRUFBRSxVQUFVLENBQUM7SUFDL0Msa0JBQWtCLENBQUMsZUFBZSxFQUFFLGFBQWEsQ0FBQztJQUVsRCxpQkFBaUIsQ0FBQyxZQUFZLENBQUM7RUFDakM7QUFDRixDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLGlCQUFpQixHQUFJLEVBQUUsSUFBSztFQUNoQyxNQUFNLFlBQVksR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztFQUM1QyxNQUFNO0lBQUU7RUFBYSxDQUFDLEdBQUcsWUFBWSxDQUFDLE9BQU87RUFFN0MsTUFBTSxlQUFlLEdBQUcsWUFBWSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUM7RUFFM0QsSUFBSSxDQUFDLGVBQWUsRUFBRTtJQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLEdBQUcsV0FBVyx5QkFBeUIsQ0FBQztFQUMxRDtFQUVBLElBQUksZUFBZSxDQUFDLEtBQUssRUFBRTtJQUN6QixlQUFlLENBQUMsS0FBSyxHQUFHLEVBQUU7RUFDNUI7RUFFQSxNQUFNLE9BQU8sR0FBRyxlQUFlLENBQzdCLFlBQVksQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLGVBQWUsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUNwRSxDQUFDO0VBQ0QsWUFBWSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEdBQUcsT0FBTyxHQUNsQyxVQUFVLENBQUMsT0FBTyxDQUFDLEdBQ25CLGdCQUFnQjtFQUVwQixNQUFNLE9BQU8sR0FBRyxlQUFlLENBQzdCLFlBQVksQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLGVBQWUsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUNwRSxDQUFDO0VBQ0QsSUFBSSxPQUFPLEVBQUU7SUFDWCxZQUFZLENBQUMsT0FBTyxDQUFDLE9BQU8sR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDO0VBQ3BEO0VBRUEsTUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUM7RUFDckQsZUFBZSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMseUJBQXlCLENBQUM7RUFFeEQsTUFBTSxlQUFlLEdBQUcsZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0VBQ25ELGVBQWUsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGdDQUFnQyxDQUFDO0VBQy9ELGVBQWUsQ0FBQyxJQUFJLEdBQUcsTUFBTTtFQUU3QixlQUFlLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQztFQUM1QyxlQUFlLENBQUMsa0JBQWtCLENBQ2hDLFdBQVcsRUFDWCxTQUFTLENBQUMsVUFBVTtBQUN4QixtQ0FBbUMsd0JBQXdCO0FBQzNELGtCQUFrQiwwQkFBMEI7QUFDNUMsOEJBQThCLHdCQUF3QiwyQ0FDcEQsQ0FBQztFQUVELGVBQWUsQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQztFQUNuRCxlQUFlLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUM7RUFDOUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsTUFBTTtFQUN0QyxlQUFlLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxnQ0FBZ0MsQ0FBQztFQUMvRCxlQUFlLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQztFQUNyQyxlQUFlLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQztFQUN2QyxlQUFlLENBQUMsUUFBUSxHQUFHLEtBQUs7RUFFaEMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUM7RUFDekMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsNkJBQTZCLENBQUM7RUFFekQsSUFBSSxZQUFZLEVBQUU7SUFDaEIsZ0JBQWdCLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQztFQUM5QztFQUVBLElBQUksZUFBZSxDQUFDLFFBQVEsRUFBRTtJQUM1QixPQUFPLENBQUMsWUFBWSxDQUFDO0lBQ3JCLGVBQWUsQ0FBQyxRQUFRLEdBQUcsS0FBSztFQUNsQztFQUVBLElBQUksZUFBZSxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsRUFBRTtJQUNqRCxXQUFXLENBQUMsWUFBWSxDQUFDO0lBQ3pCLGVBQWUsQ0FBQyxlQUFlLENBQUMsZUFBZSxDQUFDO0VBQ2xEO0FBQ0YsQ0FBQzs7QUFFRDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sY0FBYyxHQUFHLENBQUMsRUFBRSxFQUFFLGNBQWMsS0FBSztFQUM3QyxNQUFNO0lBQ0osWUFBWTtJQUNaLFVBQVU7SUFDVixRQUFRO0lBQ1IsWUFBWTtJQUNaLE9BQU87SUFDUCxPQUFPO0lBQ1A7RUFDRixDQUFDLEdBQUcsb0JBQW9CLENBQUMsRUFBRSxDQUFDO0VBQzVCLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxDQUFDO0VBQzFCLElBQUksYUFBYSxHQUFHLGNBQWMsSUFBSSxVQUFVO0VBRWhELE1BQU0saUJBQWlCLEdBQUcsVUFBVSxDQUFDLE1BQU07RUFFM0MsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7RUFDN0MsTUFBTSxZQUFZLEdBQUcsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0VBQzdDLE1BQU0sV0FBVyxHQUFHLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQztFQUUvQyxNQUFNLFNBQVMsR0FBRyxTQUFTLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztFQUM3QyxNQUFNLFNBQVMsR0FBRyxTQUFTLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztFQUU3QyxNQUFNLG9CQUFvQixHQUFHLFVBQVUsQ0FBQyxhQUFhLENBQUM7RUFFdEQsTUFBTSxZQUFZLEdBQUcsWUFBWSxDQUFDLGFBQWEsQ0FBQztFQUNoRCxNQUFNLG1CQUFtQixHQUFHLFdBQVcsQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDO0VBQy9ELE1BQU0sbUJBQW1CLEdBQUcsV0FBVyxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUM7RUFFL0QsTUFBTTtJQUNKLGNBQWM7SUFDZCxZQUFZO0lBQ1osb0JBQW9CO0lBQ3BCO0VBQ0YsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxZQUFZLElBQUksYUFBYSxFQUFFLFNBQVMsQ0FBQztFQUUzRCxNQUFNLFVBQVUsR0FBRyxZQUFZLENBQUMsWUFBWSxDQUFDO0VBRTdDLE1BQU0sZ0JBQWdCLEdBQUksWUFBWSxJQUFLO0lBQ3pDLE1BQU0sT0FBTyxHQUFHLENBQUMsbUJBQW1CLENBQUM7SUFDckMsTUFBTSxHQUFHLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2xDLE1BQU0sS0FBSyxHQUFHLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNyQyxNQUFNLElBQUksR0FBRyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdkMsTUFBTSxTQUFTLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRXZDLE1BQU0sYUFBYSxHQUFHLFVBQVUsQ0FBQyxZQUFZLENBQUM7SUFFOUMsSUFBSSxRQUFRLEdBQUcsSUFBSTtJQUVuQixNQUFNLFVBQVUsR0FBRyxDQUFDLHFCQUFxQixDQUFDLFlBQVksRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDO0lBQ3pFLE1BQU0sVUFBVSxHQUFHLFNBQVMsQ0FBQyxZQUFZLEVBQUUsWUFBWSxDQUFDO0lBRXhELElBQUksV0FBVyxDQUFDLFlBQVksRUFBRSxTQUFTLENBQUMsRUFBRTtNQUN4QyxPQUFPLENBQUMsSUFBSSxDQUFDLGtDQUFrQyxDQUFDO0lBQ2xEO0lBRUEsSUFBSSxXQUFXLENBQUMsWUFBWSxFQUFFLFdBQVcsQ0FBQyxFQUFFO01BQzFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsaUNBQWlDLENBQUM7SUFDakQ7SUFFQSxJQUFJLFdBQVcsQ0FBQyxZQUFZLEVBQUUsU0FBUyxDQUFDLEVBQUU7TUFDeEMsT0FBTyxDQUFDLElBQUksQ0FBQyw4QkFBOEIsQ0FBQztJQUM5QztJQUVBLElBQUksVUFBVSxFQUFFO01BQ2QsT0FBTyxDQUFDLElBQUksQ0FBQyw0QkFBNEIsQ0FBQztJQUM1QztJQUVBLElBQUksU0FBUyxDQUFDLFlBQVksRUFBRSxVQUFVLENBQUMsRUFBRTtNQUN2QyxPQUFPLENBQUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDO0lBQ3pDO0lBRUEsSUFBSSxTQUFTLEVBQUU7TUFDYixJQUFJLFNBQVMsQ0FBQyxZQUFZLEVBQUUsU0FBUyxDQUFDLEVBQUU7UUFDdEMsT0FBTyxDQUFDLElBQUksQ0FBQyw4QkFBOEIsQ0FBQztNQUM5QztNQUVBLElBQUksU0FBUyxDQUFDLFlBQVksRUFBRSxjQUFjLENBQUMsRUFBRTtRQUMzQyxPQUFPLENBQUMsSUFBSSxDQUFDLG9DQUFvQyxDQUFDO01BQ3BEO01BRUEsSUFBSSxTQUFTLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQyxFQUFFO1FBQ3pDLE9BQU8sQ0FBQyxJQUFJLENBQUMsa0NBQWtDLENBQUM7TUFDbEQ7TUFFQSxJQUNFLHFCQUFxQixDQUNuQixZQUFZLEVBQ1osb0JBQW9CLEVBQ3BCLGtCQUNGLENBQUMsRUFDRDtRQUNBLE9BQU8sQ0FBQyxJQUFJLENBQUMsZ0NBQWdDLENBQUM7TUFDaEQ7SUFDRjtJQUVBLElBQUksU0FBUyxDQUFDLFlBQVksRUFBRSxXQUFXLENBQUMsRUFBRTtNQUN4QyxRQUFRLEdBQUcsR0FBRztNQUNkLE9BQU8sQ0FBQyxJQUFJLENBQUMsMkJBQTJCLENBQUM7SUFDM0M7SUFFQSxNQUFNLFFBQVEsR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDO0lBQ3BDLE1BQU0sTUFBTSxHQUFHLGtCQUFrQixDQUFDLFNBQVMsQ0FBQztJQUU1QyxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQztJQUM1QyxHQUFHLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUM7SUFDbEMsR0FBRyxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDO0lBQ3RDLEdBQUcsQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDNUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDO0lBQ2pDLEdBQUcsQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLEtBQUssR0FBRyxDQUFDLENBQUM7SUFDekMsR0FBRyxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDO0lBQ25DLEdBQUcsQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLGFBQWEsQ0FBQztJQUM3QyxHQUFHLENBQUMsWUFBWSxDQUNkLFlBQVksRUFDWixTQUFTLENBQUMsVUFBVSxHQUFHLEdBQUcsSUFBSSxRQUFRLElBQUksSUFBSSxJQUFJLE1BQU0sRUFDMUQsQ0FBQztJQUNELEdBQUcsQ0FBQyxZQUFZLENBQUMsZUFBZSxFQUFFLFVBQVUsR0FBRyxNQUFNLEdBQUcsT0FBTyxDQUFDO0lBQ2hFLElBQUksVUFBVSxLQUFLLElBQUksRUFBRTtNQUN2QixHQUFHLENBQUMsUUFBUSxHQUFHLElBQUk7SUFDckI7SUFDQSxHQUFHLENBQUMsV0FBVyxHQUFHLEdBQUc7SUFFckIsT0FBTyxHQUFHO0VBQ1osQ0FBQzs7RUFFRDtFQUNBLGFBQWEsR0FBRyxXQUFXLENBQUMsWUFBWSxDQUFDO0VBRXpDLE1BQU0sSUFBSSxHQUFHLEVBQUU7RUFFZixPQUNFLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxJQUNoQixhQUFhLENBQUMsUUFBUSxDQUFDLENBQUMsS0FBSyxZQUFZLElBQ3pDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFDckI7SUFDQSxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzFDLGFBQWEsR0FBRyxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztFQUMzQztFQUVBLE1BQU0sU0FBUyxHQUFHLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0VBRXpDLE1BQU0sV0FBVyxHQUFHLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQztFQUMxQyxXQUFXLENBQUMsT0FBTyxDQUFDLEtBQUssR0FBRyxvQkFBb0I7RUFDaEQsV0FBVyxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsR0FBRyxZQUFZLENBQUMsWUFBWSxJQUFJO0VBQ3hELFdBQVcsQ0FBQyxNQUFNLEdBQUcsS0FBSztFQUMxQixXQUFXLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQyxVQUFVO0FBQzlDLGdDQUFnQywwQkFBMEI7QUFDMUQsb0JBQW9CLGtCQUFrQjtBQUN0QyxzQkFBc0IsbUJBQW1CLElBQUksZ0NBQWdDO0FBQzdFO0FBQ0E7QUFDQSxxQkFBcUIsNEJBQTRCO0FBQ2pEO0FBQ0EsY0FBYyxtQkFBbUIsR0FBRyxxQkFBcUIsR0FBRyxFQUFFO0FBQzlEO0FBQ0E7QUFDQSxzQkFBc0IsbUJBQW1CLElBQUksZ0NBQWdDO0FBQzdFO0FBQ0E7QUFDQSxxQkFBcUIsNkJBQTZCO0FBQ2xEO0FBQ0EsY0FBYyxtQkFBbUIsR0FBRyxxQkFBcUIsR0FBRyxFQUFFO0FBQzlEO0FBQ0E7QUFDQSxzQkFBc0IsbUJBQW1CLElBQUksMEJBQTBCO0FBQ3ZFO0FBQ0E7QUFDQSxxQkFBcUIsOEJBQThCLGlCQUFpQixVQUFVO0FBQzlFLGFBQWEsVUFBVTtBQUN2QjtBQUNBO0FBQ0EscUJBQXFCLDZCQUE2QixpQkFBaUIsV0FBVztBQUM5RSxhQUFhLFdBQVc7QUFDeEI7QUFDQSxzQkFBc0IsbUJBQW1CLElBQUksZ0NBQWdDO0FBQzdFO0FBQ0E7QUFDQSxxQkFBcUIseUJBQXlCO0FBQzlDO0FBQ0EsY0FBYyxtQkFBbUIsR0FBRyxxQkFBcUIsR0FBRyxFQUFFO0FBQzlEO0FBQ0E7QUFDQSxzQkFBc0IsbUJBQW1CLElBQUksZ0NBQWdDO0FBQzdFO0FBQ0E7QUFDQSxxQkFBcUIsd0JBQXdCO0FBQzdDO0FBQ0EsY0FBYyxtQkFBbUIsR0FBRyxxQkFBcUIsR0FBRyxFQUFFO0FBQzlEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztFQUVILE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDO0VBQzdDLEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLG9CQUFvQixDQUFDO0VBRWpELE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDO0VBQ2pELEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxXQUFXLEVBQUUsU0FBUyxDQUFDO0VBQ25ELE1BQU0sWUFBWSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDO0VBQ2pELFNBQVMsQ0FBQyxxQkFBcUIsQ0FBQyxXQUFXLEVBQUUsWUFBWSxDQUFDO0VBRTFELE1BQU0sVUFBVSxHQUFHO0lBQ2pCLE1BQU0sRUFBRSxHQUFHO0lBQ1gsTUFBTSxFQUFFLEdBQUc7SUFDWCxPQUFPLEVBQUUsR0FBRztJQUNaLFNBQVMsRUFBRSxHQUFHO0lBQ2QsUUFBUSxFQUFFLElBQUk7SUFDZCxNQUFNLEVBQUUsSUFBSTtJQUNaLFFBQVEsRUFBRTtFQUNaLENBQUM7RUFFRCxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLE9BQU8sQ0FBRSxHQUFHLElBQUs7SUFDdkMsTUFBTSxFQUFFLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUM7SUFDdkMsRUFBRSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsMEJBQTBCLENBQUM7SUFDcEQsRUFBRSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDO0lBQy9CLEVBQUUsQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLEdBQUcsQ0FBQztJQUNsQyxFQUFFLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUM7SUFDaEMsWUFBWSxDQUFDLHFCQUFxQixDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7RUFDckQsQ0FBQyxDQUFDO0VBRUYsTUFBTSxTQUFTLEdBQUcsZUFBZSxDQUFDLFNBQVMsQ0FBQztFQUM1QyxLQUFLLENBQUMscUJBQXFCLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQzs7RUFFbkQ7RUFDQSxNQUFNLDJCQUEyQixHQUMvQixXQUFXLENBQUMsYUFBYSxDQUFDLG9CQUFvQixDQUFDO0VBRWpELDJCQUEyQixDQUFDLHFCQUFxQixDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUM7RUFFckUsVUFBVSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLFVBQVUsQ0FBQztFQUUzRCxZQUFZLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsQ0FBQztFQUVwRCxNQUFNLFFBQVEsR0FBRyxFQUFFO0VBRW5CLElBQUksU0FBUyxDQUFDLFlBQVksRUFBRSxXQUFXLENBQUMsRUFBRTtJQUN4QyxRQUFRLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQztFQUNoQztFQUVBLElBQUksaUJBQWlCLEVBQUU7SUFDckIsUUFBUSxDQUFDLElBQUksQ0FDWCxxREFBcUQsRUFDckQsbUNBQW1DLEVBQ25DLDRDQUE0QyxFQUM1Qyw0REFBNEQsRUFDNUQsK0RBQ0YsQ0FBQztJQUNELFFBQVEsQ0FBQyxXQUFXLEdBQUcsRUFBRTtFQUMzQixDQUFDLE1BQU07SUFDTCxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsVUFBVSxJQUFJLFdBQVcsRUFBRSxDQUFDO0VBQy9DO0VBQ0EsUUFBUSxDQUFDLFdBQVcsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztFQUUxQyxPQUFPLFdBQVc7QUFDcEIsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxtQkFBbUIsR0FBSSxTQUFTLElBQUs7RUFDekMsSUFBSSxTQUFTLENBQUMsUUFBUSxFQUFFO0VBQ3hCLE1BQU07SUFBRSxVQUFVO0lBQUUsWUFBWTtJQUFFLE9BQU87SUFBRTtFQUFRLENBQUMsR0FDbEQsb0JBQW9CLENBQUMsU0FBUyxDQUFDO0VBQ2pDLElBQUksSUFBSSxHQUFHLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO0VBQ3BDLElBQUksR0FBRyx3QkFBd0IsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQztFQUN2RCxNQUFNLFdBQVcsR0FBRyxjQUFjLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQztFQUVwRCxJQUFJLFdBQVcsR0FBRyxXQUFXLENBQUMsYUFBYSxDQUFDLHNCQUFzQixDQUFDO0VBQ25FLElBQUksV0FBVyxDQUFDLFFBQVEsRUFBRTtJQUN4QixXQUFXLEdBQUcsV0FBVyxDQUFDLGFBQWEsQ0FBQyxvQkFBb0IsQ0FBQztFQUMvRDtFQUNBLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNyQixDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLG9CQUFvQixHQUFJLFNBQVMsSUFBSztFQUMxQyxJQUFJLFNBQVMsQ0FBQyxRQUFRLEVBQUU7RUFDeEIsTUFBTTtJQUFFLFVBQVU7SUFBRSxZQUFZO0lBQUUsT0FBTztJQUFFO0VBQVEsQ0FBQyxHQUNsRCxvQkFBb0IsQ0FBQyxTQUFTLENBQUM7RUFDakMsSUFBSSxJQUFJLEdBQUcsU0FBUyxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7RUFDckMsSUFBSSxHQUFHLHdCQUF3QixDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDO0VBQ3ZELE1BQU0sV0FBVyxHQUFHLGNBQWMsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDO0VBRXBELElBQUksV0FBVyxHQUFHLFdBQVcsQ0FBQyxhQUFhLENBQUMsdUJBQXVCLENBQUM7RUFDcEUsSUFBSSxXQUFXLENBQUMsUUFBUSxFQUFFO0lBQ3hCLFdBQVcsR0FBRyxXQUFXLENBQUMsYUFBYSxDQUFDLG9CQUFvQixDQUFDO0VBQy9EO0VBQ0EsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3JCLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sZ0JBQWdCLEdBQUksU0FBUyxJQUFLO0VBQ3RDLElBQUksU0FBUyxDQUFDLFFBQVEsRUFBRTtFQUN4QixNQUFNO0lBQUUsVUFBVTtJQUFFLFlBQVk7SUFBRSxPQUFPO0lBQUU7RUFBUSxDQUFDLEdBQ2xELG9CQUFvQixDQUFDLFNBQVMsQ0FBQztFQUNqQyxJQUFJLElBQUksR0FBRyxTQUFTLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztFQUNyQyxJQUFJLEdBQUcsd0JBQXdCLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUM7RUFDdkQsTUFBTSxXQUFXLEdBQUcsY0FBYyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUM7RUFFcEQsSUFBSSxXQUFXLEdBQUcsV0FBVyxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQztFQUNoRSxJQUFJLFdBQVcsQ0FBQyxRQUFRLEVBQUU7SUFDeEIsV0FBVyxHQUFHLFdBQVcsQ0FBQyxhQUFhLENBQUMsb0JBQW9CLENBQUM7RUFDL0Q7RUFDQSxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDckIsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxlQUFlLEdBQUksU0FBUyxJQUFLO0VBQ3JDLElBQUksU0FBUyxDQUFDLFFBQVEsRUFBRTtFQUN4QixNQUFNO0lBQUUsVUFBVTtJQUFFLFlBQVk7SUFBRSxPQUFPO0lBQUU7RUFBUSxDQUFDLEdBQ2xELG9CQUFvQixDQUFDLFNBQVMsQ0FBQztFQUNqQyxJQUFJLElBQUksR0FBRyxRQUFRLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztFQUNwQyxJQUFJLEdBQUcsd0JBQXdCLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUM7RUFDdkQsTUFBTSxXQUFXLEdBQUcsY0FBYyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUM7RUFFcEQsSUFBSSxXQUFXLEdBQUcsV0FBVyxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQztFQUMvRCxJQUFJLFdBQVcsQ0FBQyxRQUFRLEVBQUU7SUFDeEIsV0FBVyxHQUFHLFdBQVcsQ0FBQyxhQUFhLENBQUMsb0JBQW9CLENBQUM7RUFDL0Q7RUFDQSxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDckIsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxZQUFZLEdBQUksRUFBRSxJQUFLO0VBQzNCLE1BQU07SUFBRSxZQUFZO0lBQUUsVUFBVTtJQUFFO0VBQVMsQ0FBQyxHQUFHLG9CQUFvQixDQUFDLEVBQUUsQ0FBQztFQUV2RSxZQUFZLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQztFQUN2RCxVQUFVLENBQUMsTUFBTSxHQUFHLElBQUk7RUFDeEIsUUFBUSxDQUFDLFdBQVcsR0FBRyxFQUFFO0FBQzNCLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sVUFBVSxHQUFJLGNBQWMsSUFBSztFQUNyQyxJQUFJLGNBQWMsQ0FBQyxRQUFRLEVBQUU7RUFFN0IsTUFBTTtJQUFFLFlBQVk7SUFBRTtFQUFnQixDQUFDLEdBQ3JDLG9CQUFvQixDQUFDLGNBQWMsQ0FBQztFQUV0QyxnQkFBZ0IsQ0FBQyxjQUFjLEVBQUUsY0FBYyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7RUFDOUQsWUFBWSxDQUFDLFlBQVksQ0FBQztFQUUxQixlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDekIsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxjQUFjLEdBQUksRUFBRSxJQUFLO0VBQzdCLElBQUksRUFBRSxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxFQUFFO0VBQ3JELE1BQU07SUFBRSxVQUFVO0lBQUUsU0FBUztJQUFFLE9BQU87SUFBRSxPQUFPO0lBQUU7RUFBWSxDQUFDLEdBQzVELG9CQUFvQixDQUFDLEVBQUUsQ0FBQztFQUUxQixJQUFJLFVBQVUsQ0FBQyxNQUFNLEVBQUU7SUFDckIsTUFBTSxhQUFhLEdBQUcsd0JBQXdCLENBQzVDLFNBQVMsSUFBSSxXQUFXLElBQUksS0FBSyxDQUFDLENBQUMsRUFDbkMsT0FBTyxFQUNQLE9BQ0YsQ0FBQztJQUNELE1BQU0sV0FBVyxHQUFHLGNBQWMsQ0FBQyxVQUFVLEVBQUUsYUFBYSxDQUFDO0lBQzdELFdBQVcsQ0FBQyxhQUFhLENBQUMscUJBQXFCLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztFQUMxRCxDQUFDLE1BQU07SUFDTCxZQUFZLENBQUMsRUFBRSxDQUFDO0VBQ2xCO0FBQ0YsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSx1QkFBdUIsR0FBSSxFQUFFLElBQUs7RUFDdEMsTUFBTTtJQUFFLFVBQVU7SUFBRSxTQUFTO0lBQUUsT0FBTztJQUFFO0VBQVEsQ0FBQyxHQUFHLG9CQUFvQixDQUFDLEVBQUUsQ0FBQztFQUM1RSxNQUFNLGFBQWEsR0FBRyxDQUFDLFVBQVUsQ0FBQyxNQUFNO0VBRXhDLElBQUksYUFBYSxJQUFJLFNBQVMsRUFBRTtJQUM5QixNQUFNLGFBQWEsR0FBRyx3QkFBd0IsQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQztJQUMzRSxjQUFjLENBQUMsVUFBVSxFQUFFLGFBQWEsQ0FBQztFQUMzQztBQUNGLENBQUM7O0FBRUQ7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLHFCQUFxQixHQUFHLENBQUMsRUFBRSxFQUFFLGNBQWMsS0FBSztFQUNwRCxNQUFNO0lBQUUsVUFBVTtJQUFFLFFBQVE7SUFBRSxZQUFZO0lBQUUsT0FBTztJQUFFO0VBQVEsQ0FBQyxHQUM1RCxvQkFBb0IsQ0FBQyxFQUFFLENBQUM7RUFFMUIsTUFBTSxhQUFhLEdBQUcsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0VBQzdDLE1BQU0sWUFBWSxHQUFHLGNBQWMsSUFBSSxJQUFJLEdBQUcsYUFBYSxHQUFHLGNBQWM7RUFFNUUsTUFBTSxNQUFNLEdBQUcsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLEtBQUs7SUFDaEQsTUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDLFlBQVksRUFBRSxLQUFLLENBQUM7SUFFbEQsTUFBTSxVQUFVLEdBQUcsMkJBQTJCLENBQzVDLFlBQVksRUFDWixPQUFPLEVBQ1AsT0FDRixDQUFDO0lBRUQsSUFBSSxRQUFRLEdBQUcsSUFBSTtJQUVuQixNQUFNLE9BQU8sR0FBRyxDQUFDLG9CQUFvQixDQUFDO0lBQ3RDLE1BQU0sVUFBVSxHQUFHLEtBQUssS0FBSyxhQUFhO0lBRTFDLElBQUksS0FBSyxLQUFLLFlBQVksRUFBRTtNQUMxQixRQUFRLEdBQUcsR0FBRztNQUNkLE9BQU8sQ0FBQyxJQUFJLENBQUMsNEJBQTRCLENBQUM7SUFDNUM7SUFFQSxJQUFJLFVBQVUsRUFBRTtNQUNkLE9BQU8sQ0FBQyxJQUFJLENBQUMsNkJBQTZCLENBQUM7SUFDN0M7SUFFQSxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQztJQUM1QyxHQUFHLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUM7SUFDbEMsR0FBRyxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDO0lBQ3RDLEdBQUcsQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDNUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDO0lBQ3JDLEdBQUcsQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQztJQUNyQyxHQUFHLENBQUMsWUFBWSxDQUFDLGVBQWUsRUFBRSxVQUFVLEdBQUcsTUFBTSxHQUFHLE9BQU8sQ0FBQztJQUNoRSxJQUFJLFVBQVUsS0FBSyxJQUFJLEVBQUU7TUFDdkIsR0FBRyxDQUFDLFFBQVEsR0FBRyxJQUFJO0lBQ3JCO0lBQ0EsR0FBRyxDQUFDLFdBQVcsR0FBRyxLQUFLO0lBRXZCLE9BQU8sR0FBRztFQUNaLENBQUMsQ0FBQztFQUVGLE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDO0VBQ2hELFVBQVUsQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQztFQUN6QyxVQUFVLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSwyQkFBMkIsQ0FBQztFQUU3RCxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQztFQUM3QyxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxvQkFBb0IsQ0FBQztFQUNqRCxLQUFLLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxjQUFjLENBQUM7RUFFMUMsTUFBTSxVQUFVLEdBQUcsY0FBYyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7RUFDNUMsTUFBTSxTQUFTLEdBQUcsZUFBZSxDQUFDLFVBQVUsQ0FBQztFQUM3QyxLQUFLLENBQUMscUJBQXFCLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQztFQUNuRCxVQUFVLENBQUMscUJBQXFCLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQztFQUVwRCxNQUFNLFdBQVcsR0FBRyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7RUFDMUMsV0FBVyxDQUFDLHFCQUFxQixDQUFDLFdBQVcsRUFBRSxVQUFVLENBQUM7RUFDMUQsVUFBVSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLFVBQVUsQ0FBQztFQUUzRCxRQUFRLENBQUMsV0FBVyxHQUFHLGlCQUFpQjtFQUV4QyxPQUFPLFdBQVc7QUFDcEIsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxXQUFXLEdBQUksT0FBTyxJQUFLO0VBQy9CLElBQUksT0FBTyxDQUFDLFFBQVEsRUFBRTtFQUN0QixNQUFNO0lBQUUsVUFBVTtJQUFFLFlBQVk7SUFBRSxPQUFPO0lBQUU7RUFBUSxDQUFDLEdBQ2xELG9CQUFvQixDQUFDLE9BQU8sQ0FBQztFQUMvQixNQUFNLGFBQWEsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDO0VBQ3pELElBQUksSUFBSSxHQUFHLFFBQVEsQ0FBQyxZQUFZLEVBQUUsYUFBYSxDQUFDO0VBQ2hELElBQUksR0FBRyx3QkFBd0IsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQztFQUN2RCxNQUFNLFdBQVcsR0FBRyxjQUFjLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQztFQUNwRCxXQUFXLENBQUMsYUFBYSxDQUFDLHFCQUFxQixDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDMUQsQ0FBQzs7QUFFRDs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxFQUFFLEVBQUUsYUFBYSxLQUFLO0VBQ2xELE1BQU07SUFBRSxVQUFVO0lBQUUsUUFBUTtJQUFFLFlBQVk7SUFBRSxPQUFPO0lBQUU7RUFBUSxDQUFDLEdBQzVELG9CQUFvQixDQUFDLEVBQUUsQ0FBQztFQUUxQixNQUFNLFlBQVksR0FBRyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUM7RUFDL0MsTUFBTSxXQUFXLEdBQUcsYUFBYSxJQUFJLElBQUksR0FBRyxZQUFZLEdBQUcsYUFBYTtFQUV4RSxJQUFJLFdBQVcsR0FBRyxXQUFXO0VBQzdCLFdBQVcsSUFBSSxXQUFXLEdBQUcsVUFBVTtFQUN2QyxXQUFXLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsV0FBVyxDQUFDO0VBRXRDLE1BQU0scUJBQXFCLEdBQUcsMEJBQTBCLENBQ3RELE9BQU8sQ0FBQyxZQUFZLEVBQUUsV0FBVyxHQUFHLENBQUMsQ0FBQyxFQUN0QyxPQUFPLEVBQ1AsT0FDRixDQUFDO0VBRUQsTUFBTSxxQkFBcUIsR0FBRywwQkFBMEIsQ0FDdEQsT0FBTyxDQUFDLFlBQVksRUFBRSxXQUFXLEdBQUcsVUFBVSxDQUFDLEVBQy9DLE9BQU8sRUFDUCxPQUNGLENBQUM7RUFFRCxNQUFNLEtBQUssR0FBRyxFQUFFO0VBQ2hCLElBQUksU0FBUyxHQUFHLFdBQVc7RUFDM0IsT0FBTyxLQUFLLENBQUMsTUFBTSxHQUFHLFVBQVUsRUFBRTtJQUNoQyxNQUFNLFVBQVUsR0FBRywwQkFBMEIsQ0FDM0MsT0FBTyxDQUFDLFlBQVksRUFBRSxTQUFTLENBQUMsRUFDaEMsT0FBTyxFQUNQLE9BQ0YsQ0FBQztJQUVELElBQUksUUFBUSxHQUFHLElBQUk7SUFFbkIsTUFBTSxPQUFPLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQztJQUNyQyxNQUFNLFVBQVUsR0FBRyxTQUFTLEtBQUssWUFBWTtJQUU3QyxJQUFJLFNBQVMsS0FBSyxXQUFXLEVBQUU7TUFDN0IsUUFBUSxHQUFHLEdBQUc7TUFDZCxPQUFPLENBQUMsSUFBSSxDQUFDLDJCQUEyQixDQUFDO0lBQzNDO0lBRUEsSUFBSSxVQUFVLEVBQUU7TUFDZCxPQUFPLENBQUMsSUFBSSxDQUFDLDRCQUE0QixDQUFDO0lBQzVDO0lBRUEsTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUM7SUFDNUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDO0lBQ2xDLEdBQUcsQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQztJQUN0QyxHQUFHLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzVDLEdBQUcsQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLFNBQVMsQ0FBQztJQUN6QyxHQUFHLENBQUMsWUFBWSxDQUFDLGVBQWUsRUFBRSxVQUFVLEdBQUcsTUFBTSxHQUFHLE9BQU8sQ0FBQztJQUNoRSxJQUFJLFVBQVUsS0FBSyxJQUFJLEVBQUU7TUFDdkIsR0FBRyxDQUFDLFFBQVEsR0FBRyxJQUFJO0lBQ3JCO0lBQ0EsR0FBRyxDQUFDLFdBQVcsR0FBRyxTQUFTO0lBRTNCLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ2YsU0FBUyxJQUFJLENBQUM7RUFDaEI7RUFFQSxNQUFNLFdBQVcsR0FBRyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7O0VBRTFDO0VBQ0EsTUFBTSxvQkFBb0IsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQztFQUMxRCxvQkFBb0IsQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQztFQUNuRCxvQkFBb0IsQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLDBCQUEwQixDQUFDOztFQUV0RTtFQUNBLE1BQU0sZ0JBQWdCLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUM7RUFDeEQsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxvQkFBb0IsQ0FBQzs7RUFFNUQ7RUFDQSxNQUFNLGtCQUFrQixHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDO0VBQzFELE1BQU0scUJBQXFCLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUM7O0VBRTFEO0VBQ0EsTUFBTSxnQkFBZ0IsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQztFQUN6RCxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQztFQUMvQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLGtDQUFrQyxDQUFDO0VBQzFFLGdCQUFnQixDQUFDLFlBQVksQ0FDM0IsWUFBWSxFQUNaLGlCQUFpQixVQUFVLFFBQzdCLENBQUM7RUFDRCxJQUFJLHFCQUFxQixLQUFLLElBQUksRUFBRTtJQUNsQyxnQkFBZ0IsQ0FBQyxRQUFRLEdBQUcsSUFBSTtFQUNsQztFQUNBLGdCQUFnQixDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUMsVUFBVSxPQUFPOztFQUV4RDtFQUNBLE1BQU0sWUFBWSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDO0VBQ3JELFlBQVksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQztFQUMzQyxZQUFZLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSw4QkFBOEIsQ0FBQztFQUNsRSxZQUFZLENBQUMsWUFBWSxDQUN2QixZQUFZLEVBQ1osb0JBQW9CLFVBQVUsUUFDaEMsQ0FBQztFQUNELElBQUkscUJBQXFCLEtBQUssSUFBSSxFQUFFO0lBQ2xDLFlBQVksQ0FBQyxRQUFRLEdBQUcsSUFBSTtFQUM5QjtFQUNBLFlBQVksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDLFVBQVUsT0FBTzs7RUFFcEQ7RUFDQSxNQUFNLFVBQVUsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQztFQUNsRCxVQUFVLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxvQkFBb0IsQ0FBQztFQUN0RCxVQUFVLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxjQUFjLENBQUM7O0VBRS9DO0VBQ0EsTUFBTSxTQUFTLEdBQUcsY0FBYyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7RUFDMUMsTUFBTSxjQUFjLEdBQUcsZUFBZSxDQUFDLFNBQVMsQ0FBQzs7RUFFakQ7RUFDQSxVQUFVLENBQUMscUJBQXFCLENBQUMsV0FBVyxFQUFFLGNBQWMsQ0FBQzs7RUFFN0Q7RUFDQSxNQUFNLDRCQUE0QixHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDO0VBQ2pFLDRCQUE0QixDQUFDLHFCQUFxQixDQUNoRCxXQUFXLEVBQ1gsZ0JBQ0YsQ0FBQzs7RUFFRDtFQUNBLE1BQU0sNkJBQTZCLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUM7RUFDbEUsNkJBQTZCLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUM7RUFDMUQsNkJBQTZCLENBQUMscUJBQXFCLENBQUMsV0FBVyxFQUFFLFVBQVUsQ0FBQzs7RUFFNUU7RUFDQSxNQUFNLDRCQUE0QixHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDO0VBQ2pFLDRCQUE0QixDQUFDLHFCQUFxQixDQUFDLFdBQVcsRUFBRSxZQUFZLENBQUM7O0VBRTdFO0VBQ0EscUJBQXFCLENBQUMscUJBQXFCLENBQ3pDLFdBQVcsRUFDWCw0QkFDRixDQUFDO0VBQ0QscUJBQXFCLENBQUMscUJBQXFCLENBQ3pDLFdBQVcsRUFDWCw2QkFDRixDQUFDO0VBQ0QscUJBQXFCLENBQUMscUJBQXFCLENBQ3pDLFdBQVcsRUFDWCw0QkFDRixDQUFDOztFQUVEO0VBQ0Esa0JBQWtCLENBQUMscUJBQXFCLENBQUMsV0FBVyxFQUFFLHFCQUFxQixDQUFDOztFQUU1RTtFQUNBLGdCQUFnQixDQUFDLHFCQUFxQixDQUFDLFdBQVcsRUFBRSxrQkFBa0IsQ0FBQzs7RUFFdkU7RUFDQSxvQkFBb0IsQ0FBQyxxQkFBcUIsQ0FBQyxXQUFXLEVBQUUsZ0JBQWdCLENBQUM7O0VBRXpFO0VBQ0EsV0FBVyxDQUFDLHFCQUFxQixDQUFDLFdBQVcsRUFBRSxvQkFBb0IsQ0FBQzs7RUFFcEU7RUFDQSxVQUFVLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsVUFBVSxDQUFDO0VBRTNELFFBQVEsQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFDLFVBQVUsaUJBQWlCLFdBQVcsT0FDckUsV0FBVyxHQUFHLFVBQVUsR0FBRyxDQUFDLGtCQUNaO0VBRWxCLE9BQU8sV0FBVztBQUNwQixDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLHdCQUF3QixHQUFJLEVBQUUsSUFBSztFQUN2QyxJQUFJLEVBQUUsQ0FBQyxRQUFRLEVBQUU7RUFFakIsTUFBTTtJQUFFLFVBQVU7SUFBRSxZQUFZO0lBQUUsT0FBTztJQUFFO0VBQVEsQ0FBQyxHQUNsRCxvQkFBb0IsQ0FBQyxFQUFFLENBQUM7RUFDMUIsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsQ0FBQztFQUM5RCxNQUFNLFlBQVksR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7RUFFckQsSUFBSSxZQUFZLEdBQUcsWUFBWSxHQUFHLFVBQVU7RUFDNUMsWUFBWSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLFlBQVksQ0FBQztFQUV4QyxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQztFQUNoRCxNQUFNLFVBQVUsR0FBRyx3QkFBd0IsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQztFQUNuRSxNQUFNLFdBQVcsR0FBRyxvQkFBb0IsQ0FDdEMsVUFBVSxFQUNWLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FDekIsQ0FBQztFQUVELElBQUksV0FBVyxHQUFHLFdBQVcsQ0FBQyxhQUFhLENBQUMsNEJBQTRCLENBQUM7RUFDekUsSUFBSSxXQUFXLENBQUMsUUFBUSxFQUFFO0lBQ3hCLFdBQVcsR0FBRyxXQUFXLENBQUMsYUFBYSxDQUFDLG9CQUFvQixDQUFDO0VBQy9EO0VBQ0EsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3JCLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sb0JBQW9CLEdBQUksRUFBRSxJQUFLO0VBQ25DLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRTtFQUVqQixNQUFNO0lBQUUsVUFBVTtJQUFFLFlBQVk7SUFBRSxPQUFPO0lBQUU7RUFBUSxDQUFDLEdBQ2xELG9CQUFvQixDQUFDLEVBQUUsQ0FBQztFQUMxQixNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsYUFBYSxDQUFDLHFCQUFxQixDQUFDO0VBQzlELE1BQU0sWUFBWSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQztFQUVyRCxJQUFJLFlBQVksR0FBRyxZQUFZLEdBQUcsVUFBVTtFQUM1QyxZQUFZLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsWUFBWSxDQUFDO0VBRXhDLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxZQUFZLEVBQUUsWUFBWSxDQUFDO0VBQ2hELE1BQU0sVUFBVSxHQUFHLHdCQUF3QixDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDO0VBQ25FLE1BQU0sV0FBVyxHQUFHLG9CQUFvQixDQUN0QyxVQUFVLEVBQ1YsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUN6QixDQUFDO0VBRUQsSUFBSSxXQUFXLEdBQUcsV0FBVyxDQUFDLGFBQWEsQ0FBQyx3QkFBd0IsQ0FBQztFQUNyRSxJQUFJLFdBQVcsQ0FBQyxRQUFRLEVBQUU7SUFDeEIsV0FBVyxHQUFHLFdBQVcsQ0FBQyxhQUFhLENBQUMsb0JBQW9CLENBQUM7RUFDL0Q7RUFDQSxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDckIsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxVQUFVLEdBQUksTUFBTSxJQUFLO0VBQzdCLElBQUksTUFBTSxDQUFDLFFBQVEsRUFBRTtFQUNyQixNQUFNO0lBQUUsVUFBVTtJQUFFLFlBQVk7SUFBRSxPQUFPO0lBQUU7RUFBUSxDQUFDLEdBQ2xELG9CQUFvQixDQUFDLE1BQU0sQ0FBQztFQUM5QixNQUFNLFlBQVksR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUM7RUFDbkQsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUM7RUFDOUMsSUFBSSxHQUFHLHdCQUF3QixDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDO0VBQ3ZELE1BQU0sV0FBVyxHQUFHLGNBQWMsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDO0VBQ3BELFdBQVcsQ0FBQyxhQUFhLENBQUMscUJBQXFCLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUMxRCxDQUFDOztBQUVEOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLHdCQUF3QixHQUFJLEtBQUssSUFBSztFQUMxQyxNQUFNO0lBQUUsWUFBWTtJQUFFO0VBQWdCLENBQUMsR0FBRyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO0VBRTVFLFlBQVksQ0FBQyxZQUFZLENBQUM7RUFDMUIsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO0VBRXZCLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQztBQUN4QixDQUFDOztBQUVEOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLGNBQWMsR0FBSSxZQUFZLElBQU0sS0FBSyxJQUFLO0VBQ2xELE1BQU07SUFBRSxVQUFVO0lBQUUsWUFBWTtJQUFFLE9BQU87SUFBRTtFQUFRLENBQUMsR0FBRyxvQkFBb0IsQ0FDekUsS0FBSyxDQUFDLE1BQ1IsQ0FBQztFQUVELE1BQU0sSUFBSSxHQUFHLFlBQVksQ0FBQyxZQUFZLENBQUM7RUFFdkMsTUFBTSxVQUFVLEdBQUcsd0JBQXdCLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUM7RUFDbkUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEVBQUUsVUFBVSxDQUFDLEVBQUU7SUFDeEMsTUFBTSxXQUFXLEdBQUcsY0FBYyxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUM7SUFDMUQsV0FBVyxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0VBQzFEO0VBQ0EsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0FBQ3hCLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sZ0JBQWdCLEdBQUcsY0FBYyxDQUFFLElBQUksSUFBSyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDOztBQUVwRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxrQkFBa0IsR0FBRyxjQUFjLENBQUUsSUFBSSxJQUFLLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7O0FBRXRFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLGtCQUFrQixHQUFHLGNBQWMsQ0FBRSxJQUFJLElBQUssT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQzs7QUFFckU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sbUJBQW1CLEdBQUcsY0FBYyxDQUFFLElBQUksSUFBSyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDOztBQUV0RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxrQkFBa0IsR0FBRyxjQUFjLENBQUUsSUFBSSxJQUFLLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQzs7QUFFdEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0saUJBQWlCLEdBQUcsY0FBYyxDQUFFLElBQUksSUFBSyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7O0FBRW5FO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLHNCQUFzQixHQUFHLGNBQWMsQ0FBRSxJQUFJLElBQUssU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQzs7QUFFM0U7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sb0JBQW9CLEdBQUcsY0FBYyxDQUFFLElBQUksSUFBSyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDOztBQUV6RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSwyQkFBMkIsR0FBRyxjQUFjLENBQUUsSUFBSSxJQUFLLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7O0FBRS9FO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLHlCQUF5QixHQUFHLGNBQWMsQ0FBRSxJQUFJLElBQUssUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQzs7QUFFN0U7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLE1BQU0sdUJBQXVCLEdBQUksTUFBTSxJQUFLO0VBQzFDLElBQUksTUFBTSxDQUFDLFFBQVEsRUFBRTtFQUVyQixNQUFNLFNBQVMsR0FBRyxlQUFlLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7RUFDdkQsTUFBTTtJQUFFLFVBQVU7SUFBRSxZQUFZO0lBQUU7RUFBVSxDQUFDLEdBQUcsb0JBQW9CLENBQUMsTUFBTSxDQUFDO0VBRTVFLElBQUksWUFBWSxFQUFFO0VBRWxCLE1BQU07SUFBRSxvQkFBb0I7SUFBRTtFQUFtQixDQUFDLEdBQUcsYUFBYSxDQUNoRSxTQUFTLEVBQ1QsU0FDRixDQUFDO0VBRUQsTUFBTSxXQUFXLEdBQUcsVUFBVSxDQUFDLGdCQUFnQixDQUM3QyxJQUFJLGlDQUFpQyxFQUN2QyxDQUFDO0VBRUQsV0FBVyxDQUFDLE9BQU8sQ0FBRSxNQUFNLElBQUs7SUFDOUIsTUFBTSxVQUFVLEdBQUcsZUFBZSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO0lBQ3hELElBQ0UscUJBQXFCLENBQ25CLFVBQVUsRUFDVixvQkFBb0IsRUFDcEIsa0JBQ0YsQ0FBQyxFQUNEO01BQ0EsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsZ0NBQWdDLENBQUM7SUFDeEQsQ0FBQyxNQUFNO01BQ0wsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsZ0NBQWdDLENBQUM7SUFDM0Q7RUFDRixDQUFDLENBQUM7QUFDSixDQUFDOztBQUVEOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLDBCQUEwQixHQUFJLGFBQWEsSUFBTSxLQUFLLElBQUs7RUFDL0QsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLE1BQU07RUFDNUIsTUFBTSxhQUFhLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQztFQUN6RCxNQUFNO0lBQUUsVUFBVTtJQUFFLFlBQVk7SUFBRSxPQUFPO0lBQUU7RUFBUSxDQUFDLEdBQ2xELG9CQUFvQixDQUFDLE9BQU8sQ0FBQztFQUMvQixNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsWUFBWSxFQUFFLGFBQWEsQ0FBQztFQUV6RCxJQUFJLGFBQWEsR0FBRyxhQUFhLENBQUMsYUFBYSxDQUFDO0VBQ2hELGFBQWEsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxhQUFhLENBQUMsQ0FBQztFQUV4RCxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsWUFBWSxFQUFFLGFBQWEsQ0FBQztFQUNsRCxNQUFNLFVBQVUsR0FBRyx3QkFBd0IsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQztFQUNuRSxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxVQUFVLENBQUMsRUFBRTtJQUN6QyxNQUFNLFdBQVcsR0FBRyxxQkFBcUIsQ0FDdkMsVUFBVSxFQUNWLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FDdEIsQ0FBQztJQUNELFdBQVcsQ0FBQyxhQUFhLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztFQUMzRDtFQUNBLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQztBQUN4QixDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLGlCQUFpQixHQUFHLDBCQUEwQixDQUFFLEtBQUssSUFBSyxLQUFLLEdBQUcsQ0FBQyxDQUFDOztBQUUxRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxtQkFBbUIsR0FBRywwQkFBMEIsQ0FBRSxLQUFLLElBQUssS0FBSyxHQUFHLENBQUMsQ0FBQzs7QUFFNUU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sbUJBQW1CLEdBQUcsMEJBQTBCLENBQUUsS0FBSyxJQUFLLEtBQUssR0FBRyxDQUFDLENBQUM7O0FBRTVFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLG9CQUFvQixHQUFHLDBCQUEwQixDQUFFLEtBQUssSUFBSyxLQUFLLEdBQUcsQ0FBQyxDQUFDOztBQUU3RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxtQkFBbUIsR0FBRywwQkFBMEIsQ0FDbkQsS0FBSyxJQUFLLEtBQUssR0FBSSxLQUFLLEdBQUcsQ0FDOUIsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxrQkFBa0IsR0FBRywwQkFBMEIsQ0FDbEQsS0FBSyxJQUFLLEtBQUssR0FBRyxDQUFDLEdBQUksS0FBSyxHQUFHLENBQ2xDLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sdUJBQXVCLEdBQUcsMEJBQTBCLENBQUMsTUFBTSxFQUFFLENBQUM7O0FBRXBFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLHFCQUFxQixHQUFHLDBCQUEwQixDQUFDLE1BQU0sQ0FBQyxDQUFDOztBQUVqRTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSx5QkFBeUIsR0FBSSxZQUFZLElBQU0sS0FBSyxJQUFLO0VBQzdELE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNO0VBQzNCLE1BQU0sWUFBWSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUM7RUFDdkQsTUFBTTtJQUFFLFVBQVU7SUFBRSxZQUFZO0lBQUUsT0FBTztJQUFFO0VBQVEsQ0FBQyxHQUNsRCxvQkFBb0IsQ0FBQyxNQUFNLENBQUM7RUFDOUIsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUM7RUFFdkQsSUFBSSxZQUFZLEdBQUcsWUFBWSxDQUFDLFlBQVksQ0FBQztFQUM3QyxZQUFZLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsWUFBWSxDQUFDO0VBRXhDLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxZQUFZLEVBQUUsWUFBWSxDQUFDO0VBQ2hELE1BQU0sVUFBVSxHQUFHLHdCQUF3QixDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDO0VBQ25FLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxFQUFFO0lBQ3hDLE1BQU0sV0FBVyxHQUFHLG9CQUFvQixDQUN0QyxVQUFVLEVBQ1YsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUN6QixDQUFDO0lBQ0QsV0FBVyxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0VBQzFEO0VBQ0EsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0FBQ3hCLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sZ0JBQWdCLEdBQUcseUJBQXlCLENBQUUsSUFBSSxJQUFLLElBQUksR0FBRyxDQUFDLENBQUM7O0FBRXRFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLGtCQUFrQixHQUFHLHlCQUF5QixDQUFFLElBQUksSUFBSyxJQUFJLEdBQUcsQ0FBQyxDQUFDOztBQUV4RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxrQkFBa0IsR0FBRyx5QkFBeUIsQ0FBRSxJQUFJLElBQUssSUFBSSxHQUFHLENBQUMsQ0FBQzs7QUFFeEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sbUJBQW1CLEdBQUcseUJBQXlCLENBQUUsSUFBSSxJQUFLLElBQUksR0FBRyxDQUFDLENBQUM7O0FBRXpFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLGtCQUFrQixHQUFHLHlCQUF5QixDQUNqRCxJQUFJLElBQUssSUFBSSxHQUFJLElBQUksR0FBRyxDQUMzQixDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLGlCQUFpQixHQUFHLHlCQUF5QixDQUNoRCxJQUFJLElBQUssSUFBSSxHQUFHLENBQUMsR0FBSSxJQUFJLEdBQUcsQ0FDL0IsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxvQkFBb0IsR0FBRyx5QkFBeUIsQ0FDbkQsSUFBSSxJQUFLLElBQUksR0FBRyxVQUNuQixDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLHNCQUFzQixHQUFHLHlCQUF5QixDQUNyRCxJQUFJLElBQUssSUFBSSxHQUFHLFVBQ25CLENBQUM7O0FBRUQ7O0FBRUE7O0FBRUEsTUFBTSxVQUFVLEdBQUksU0FBUyxJQUFLO0VBQ2hDLE1BQU0sbUJBQW1CLEdBQUksRUFBRSxJQUFLO0lBQ2xDLE1BQU07TUFBRTtJQUFXLENBQUMsR0FBRyxvQkFBb0IsQ0FBQyxFQUFFLENBQUM7SUFDL0MsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQztJQUV2RCxNQUFNLGFBQWEsR0FBRyxDQUFDO0lBQ3ZCLE1BQU0sWUFBWSxHQUFHLGlCQUFpQixDQUFDLE1BQU0sR0FBRyxDQUFDO0lBQ2pELE1BQU0sWUFBWSxHQUFHLGlCQUFpQixDQUFDLGFBQWEsQ0FBQztJQUNyRCxNQUFNLFdBQVcsR0FBRyxpQkFBaUIsQ0FBQyxZQUFZLENBQUM7SUFDbkQsTUFBTSxVQUFVLEdBQUcsaUJBQWlCLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7SUFFN0QsTUFBTSxTQUFTLEdBQUcsVUFBVSxLQUFLLFlBQVk7SUFDN0MsTUFBTSxVQUFVLEdBQUcsVUFBVSxLQUFLLGFBQWE7SUFDL0MsTUFBTSxVQUFVLEdBQUcsVUFBVSxLQUFLLENBQUMsQ0FBQztJQUVwQyxPQUFPO01BQ0wsaUJBQWlCO01BQ2pCLFVBQVU7TUFDVixZQUFZO01BQ1osVUFBVTtNQUNWLFdBQVc7TUFDWDtJQUNGLENBQUM7RUFDSCxDQUFDO0VBRUQsT0FBTztJQUNMLFFBQVEsQ0FBQyxLQUFLLEVBQUU7TUFDZCxNQUFNO1FBQUUsWUFBWTtRQUFFLFNBQVM7UUFBRTtNQUFXLENBQUMsR0FBRyxtQkFBbUIsQ0FDakUsS0FBSyxDQUFDLE1BQ1IsQ0FBQztNQUVELElBQUksU0FBUyxJQUFJLFVBQVUsRUFBRTtRQUMzQixLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDdEIsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO01BQ3RCO0lBQ0YsQ0FBQztJQUNELE9BQU8sQ0FBQyxLQUFLLEVBQUU7TUFDYixNQUFNO1FBQUUsV0FBVztRQUFFLFVBQVU7UUFBRTtNQUFXLENBQUMsR0FBRyxtQkFBbUIsQ0FDakUsS0FBSyxDQUFDLE1BQ1IsQ0FBQztNQUVELElBQUksVUFBVSxJQUFJLFVBQVUsRUFBRTtRQUM1QixLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDdEIsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO01BQ3JCO0lBQ0Y7RUFDRixDQUFDO0FBQ0gsQ0FBQztBQUVELE1BQU0seUJBQXlCLEdBQUcsVUFBVSxDQUFDLHFCQUFxQixDQUFDO0FBQ25FLE1BQU0sMEJBQTBCLEdBQUcsVUFBVSxDQUFDLHNCQUFzQixDQUFDO0FBQ3JFLE1BQU0seUJBQXlCLEdBQUcsVUFBVSxDQUFDLHFCQUFxQixDQUFDOztBQUVuRTs7QUFFQTs7QUFFQSxNQUFNLGdCQUFnQixHQUFHO0VBQ3ZCLENBQUMsS0FBSyxHQUFHO0lBQ1AsQ0FBQyxrQkFBa0IsSUFBSTtNQUNyQixjQUFjLENBQUMsSUFBSSxDQUFDO0lBQ3RCLENBQUM7SUFDRCxDQUFDLGFBQWEsSUFBSTtNQUNoQixVQUFVLENBQUMsSUFBSSxDQUFDO0lBQ2xCLENBQUM7SUFDRCxDQUFDLGNBQWMsSUFBSTtNQUNqQixXQUFXLENBQUMsSUFBSSxDQUFDO0lBQ25CLENBQUM7SUFDRCxDQUFDLGFBQWEsSUFBSTtNQUNoQixVQUFVLENBQUMsSUFBSSxDQUFDO0lBQ2xCLENBQUM7SUFDRCxDQUFDLHVCQUF1QixJQUFJO01BQzFCLG9CQUFvQixDQUFDLElBQUksQ0FBQztJQUM1QixDQUFDO0lBQ0QsQ0FBQyxtQkFBbUIsSUFBSTtNQUN0QixnQkFBZ0IsQ0FBQyxJQUFJLENBQUM7SUFDeEIsQ0FBQztJQUNELENBQUMsc0JBQXNCLElBQUk7TUFDekIsbUJBQW1CLENBQUMsSUFBSSxDQUFDO0lBQzNCLENBQUM7SUFDRCxDQUFDLGtCQUFrQixJQUFJO01BQ3JCLGVBQWUsQ0FBQyxJQUFJLENBQUM7SUFDdkIsQ0FBQztJQUNELENBQUMsNEJBQTRCLElBQUk7TUFDL0Isd0JBQXdCLENBQUMsSUFBSSxDQUFDO0lBQ2hDLENBQUM7SUFDRCxDQUFDLHdCQUF3QixJQUFJO01BQzNCLG9CQUFvQixDQUFDLElBQUksQ0FBQztJQUM1QixDQUFDO0lBQ0QsQ0FBQyx3QkFBd0IsSUFBSTtNQUMzQixNQUFNLFdBQVcsR0FBRyxxQkFBcUIsQ0FBQyxJQUFJLENBQUM7TUFDL0MsV0FBVyxDQUFDLGFBQWEsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFDRCxDQUFDLHVCQUF1QixJQUFJO01BQzFCLE1BQU0sV0FBVyxHQUFHLG9CQUFvQixDQUFDLElBQUksQ0FBQztNQUM5QyxXQUFXLENBQUMsYUFBYSxDQUFDLHFCQUFxQixDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUQ7RUFDRixDQUFDO0VBQ0QsS0FBSyxFQUFFO0lBQ0wsQ0FBQyxvQkFBb0IsRUFBRSxLQUFLLEVBQUU7TUFDNUIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjO01BQzNDLElBQUksR0FBRyxLQUFLLENBQUMsT0FBTyxFQUFFLEtBQUssT0FBTyxFQUFFO1FBQ2xDLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQztNQUN4QjtJQUNGO0VBQ0YsQ0FBQztFQUNELE9BQU8sRUFBRTtJQUNQLENBQUMsMEJBQTBCLEVBQUUsS0FBSyxFQUFFO01BQ2xDLElBQUksS0FBSyxDQUFDLE9BQU8sS0FBSyxhQUFhLEVBQUU7UUFDbkMsaUJBQWlCLENBQUMsSUFBSSxDQUFDO01BQ3pCO0lBQ0YsQ0FBQztJQUNELENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQztNQUN0QixFQUFFLEVBQUUsZ0JBQWdCO01BQ3BCLE9BQU8sRUFBRSxnQkFBZ0I7TUFDekIsSUFBSSxFQUFFLGtCQUFrQjtNQUN4QixTQUFTLEVBQUUsa0JBQWtCO01BQzdCLElBQUksRUFBRSxrQkFBa0I7TUFDeEIsU0FBUyxFQUFFLGtCQUFrQjtNQUM3QixLQUFLLEVBQUUsbUJBQW1CO01BQzFCLFVBQVUsRUFBRSxtQkFBbUI7TUFDL0IsSUFBSSxFQUFFLGtCQUFrQjtNQUN4QixHQUFHLEVBQUUsaUJBQWlCO01BQ3RCLFFBQVEsRUFBRSxzQkFBc0I7TUFDaEMsTUFBTSxFQUFFLG9CQUFvQjtNQUM1QixnQkFBZ0IsRUFBRSwyQkFBMkI7TUFDN0MsY0FBYyxFQUFFLHlCQUF5QjtNQUN6QyxHQUFHLEVBQUUseUJBQXlCLENBQUM7SUFDakMsQ0FBQyxDQUFDO0lBQ0YsQ0FBQyxvQkFBb0IsR0FBRyxNQUFNLENBQUM7TUFDN0IsR0FBRyxFQUFFLHlCQUF5QixDQUFDLFFBQVE7TUFDdkMsV0FBVyxFQUFFLHlCQUF5QixDQUFDO0lBQ3pDLENBQUMsQ0FBQztJQUNGLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQztNQUN2QixFQUFFLEVBQUUsaUJBQWlCO01BQ3JCLE9BQU8sRUFBRSxpQkFBaUI7TUFDMUIsSUFBSSxFQUFFLG1CQUFtQjtNQUN6QixTQUFTLEVBQUUsbUJBQW1CO01BQzlCLElBQUksRUFBRSxtQkFBbUI7TUFDekIsU0FBUyxFQUFFLG1CQUFtQjtNQUM5QixLQUFLLEVBQUUsb0JBQW9CO01BQzNCLFVBQVUsRUFBRSxvQkFBb0I7TUFDaEMsSUFBSSxFQUFFLG1CQUFtQjtNQUN6QixHQUFHLEVBQUUsa0JBQWtCO01BQ3ZCLFFBQVEsRUFBRSx1QkFBdUI7TUFDakMsTUFBTSxFQUFFO0lBQ1YsQ0FBQyxDQUFDO0lBQ0YsQ0FBQyxxQkFBcUIsR0FBRyxNQUFNLENBQUM7TUFDOUIsR0FBRyxFQUFFLDBCQUEwQixDQUFDLFFBQVE7TUFDeEMsV0FBVyxFQUFFLDBCQUEwQixDQUFDO0lBQzFDLENBQUMsQ0FBQztJQUNGLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQztNQUN0QixFQUFFLEVBQUUsZ0JBQWdCO01BQ3BCLE9BQU8sRUFBRSxnQkFBZ0I7TUFDekIsSUFBSSxFQUFFLGtCQUFrQjtNQUN4QixTQUFTLEVBQUUsa0JBQWtCO01BQzdCLElBQUksRUFBRSxrQkFBa0I7TUFDeEIsU0FBUyxFQUFFLGtCQUFrQjtNQUM3QixLQUFLLEVBQUUsbUJBQW1CO01BQzFCLFVBQVUsRUFBRSxtQkFBbUI7TUFDL0IsSUFBSSxFQUFFLGtCQUFrQjtNQUN4QixHQUFHLEVBQUUsaUJBQWlCO01BQ3RCLFFBQVEsRUFBRSxzQkFBc0I7TUFDaEMsTUFBTSxFQUFFO0lBQ1YsQ0FBQyxDQUFDO0lBQ0YsQ0FBQyxvQkFBb0IsR0FBRyxNQUFNLENBQUM7TUFDN0IsR0FBRyxFQUFFLHlCQUF5QixDQUFDLFFBQVE7TUFDdkMsV0FBVyxFQUFFLHlCQUF5QixDQUFDO0lBQ3pDLENBQUMsQ0FBQztJQUNGLENBQUMsb0JBQW9CLEVBQUUsS0FBSyxFQUFFO01BQzVCLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQyxPQUFPO0lBQzdDLENBQUM7SUFDRCxDQUFDLFdBQVcsRUFBRSxLQUFLLEVBQUU7TUFDbkIsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3BCLE1BQU0sRUFBRTtNQUNWLENBQUMsQ0FBQztNQUVGLE1BQU0sQ0FBQyxLQUFLLENBQUM7SUFDZjtFQUNGLENBQUM7RUFDRCxRQUFRLEVBQUU7SUFDUixDQUFDLDBCQUEwQixJQUFJO01BQzdCLGlCQUFpQixDQUFDLElBQUksQ0FBQztJQUN6QixDQUFDO0lBQ0QsQ0FBQyxXQUFXLEVBQUUsS0FBSyxFQUFFO01BQ25CLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsRUFBRTtRQUN2QyxZQUFZLENBQUMsSUFBSSxDQUFDO01BQ3BCO0lBQ0Y7RUFDRixDQUFDO0VBQ0QsS0FBSyxFQUFFO0lBQ0wsQ0FBQywwQkFBMEIsSUFBSTtNQUM3QixvQkFBb0IsQ0FBQyxJQUFJLENBQUM7TUFDMUIsdUJBQXVCLENBQUMsSUFBSSxDQUFDO0lBQy9CO0VBQ0Y7QUFDRixDQUFDO0FBRUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUU7RUFDbEIsZ0JBQWdCLENBQUMsU0FBUyxHQUFHO0lBQzNCLENBQUMsMkJBQTJCLElBQUk7TUFDOUIsdUJBQXVCLENBQUMsSUFBSSxDQUFDO0lBQy9CO0VBQ0YsQ0FBQztBQUNIO0FBRUEsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLGdCQUFnQixFQUFFO0VBQzVDLElBQUksQ0FBQyxJQUFJLEVBQUU7SUFDVCxlQUFlLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBRSxZQUFZLElBQUs7TUFDM0QsaUJBQWlCLENBQUMsWUFBWSxDQUFDO0lBQ2pDLENBQUMsQ0FBQztFQUNKLENBQUM7RUFDRCxvQkFBb0I7RUFDcEIsT0FBTztFQUNQLFdBQVc7RUFDWCxNQUFNO0VBQ04sa0JBQWtCO0VBQ2xCLGdCQUFnQjtFQUNoQixpQkFBaUI7RUFDakIsY0FBYztFQUNkO0FBQ0YsQ0FBQyxDQUFDOztBQUVGOztBQUVBLE1BQU0sQ0FBQyxPQUFPLEdBQUcsVUFBVTs7Ozs7QUNydUUzQixNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsd0NBQXdDLENBQUM7QUFDbEUsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLHNDQUFzQyxDQUFDO0FBQzlELE1BQU0sZUFBZSxHQUFHLE9BQU8sQ0FBQyxpREFBaUQsQ0FBQztBQUNsRixNQUFNO0VBQUUsTUFBTSxFQUFFO0FBQU8sQ0FBQyxHQUFHLE9BQU8sQ0FBQyxnQ0FBZ0MsQ0FBQztBQUNwRSxNQUFNO0VBQ0osb0JBQW9CO0VBQ3BCLGtCQUFrQjtFQUNsQjtBQUNGLENBQUMsR0FBRyxPQUFPLENBQUMsaUNBQWlDLENBQUM7QUFFOUMsTUFBTSxpQkFBaUIsR0FBRyxHQUFHLE1BQU0sY0FBYztBQUNqRCxNQUFNLHVCQUF1QixHQUFHLEdBQUcsTUFBTSxvQkFBb0I7QUFDN0QsTUFBTSxtQ0FBbUMsR0FBRyxHQUFHLHVCQUF1QixlQUFlO0FBQ3JGLE1BQU0saUNBQWlDLEdBQUcsR0FBRyx1QkFBdUIsYUFBYTtBQUVqRixNQUFNLFdBQVcsR0FBRyxJQUFJLGlCQUFpQixFQUFFO0FBQzNDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSx1QkFBdUIsRUFBRTtBQUN2RCxNQUFNLDZCQUE2QixHQUFHLElBQUksbUNBQW1DLEVBQUU7QUFDL0UsTUFBTSwyQkFBMkIsR0FBRyxJQUFJLGlDQUFpQyxFQUFFO0FBRTNFLE1BQU0sZ0JBQWdCLEdBQUcsWUFBWTs7QUFFckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLHlCQUF5QixHQUFJLEVBQUUsSUFBSztFQUN4QyxNQUFNLGlCQUFpQixHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUM7RUFFdkQsSUFBSSxDQUFDLGlCQUFpQixFQUFFO0lBQ3RCLE1BQU0sSUFBSSxLQUFLLENBQUMsNEJBQTRCLGlCQUFpQixFQUFFLENBQUM7RUFDbEU7RUFFQSxNQUFNLFlBQVksR0FBRyxpQkFBaUIsQ0FBQyxhQUFhLENBQ2xELDZCQUNGLENBQUM7RUFDRCxNQUFNLFVBQVUsR0FBRyxpQkFBaUIsQ0FBQyxhQUFhLENBQ2hELDJCQUNGLENBQUM7RUFFRCxPQUFPO0lBQ0wsaUJBQWlCO0lBQ2pCLFlBQVk7SUFDWjtFQUNGLENBQUM7QUFDSCxDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLHNCQUFzQixHQUFJLEVBQUUsSUFBSztFQUNyQyxNQUFNO0lBQUUsaUJBQWlCO0lBQUUsWUFBWTtJQUFFO0VBQVcsQ0FBQyxHQUNuRCx5QkFBeUIsQ0FBQyxFQUFFLENBQUM7RUFDL0IsTUFBTTtJQUFFO0VBQWdCLENBQUMsR0FBRyxvQkFBb0IsQ0FBQyxZQUFZLENBQUM7RUFDOUQsTUFBTSxXQUFXLEdBQUcsZUFBZSxDQUFDLEtBQUs7RUFFekMsSUFBSSxXQUFXLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxlQUFlLENBQUMsRUFBRTtJQUN2RCxVQUFVLENBQUMsT0FBTyxDQUFDLE9BQU8sR0FBRyxXQUFXO0lBQ3hDLFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxHQUFHLFdBQVc7SUFDMUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEdBQUcsV0FBVztFQUM5QyxDQUFDLE1BQU07SUFDTCxVQUFVLENBQUMsT0FBTyxDQUFDLE9BQU8sR0FBRyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLEVBQUU7SUFDcEUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEdBQUcsRUFBRTtJQUNqQyxVQUFVLENBQUMsT0FBTyxDQUFDLFdBQVcsR0FBRyxFQUFFO0VBQ3JDO0VBRUEsdUJBQXVCLENBQUMsVUFBVSxDQUFDO0FBQ3JDLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sb0JBQW9CLEdBQUksRUFBRSxJQUFLO0VBQ25DLE1BQU07SUFBRSxpQkFBaUI7SUFBRSxZQUFZO0lBQUU7RUFBVyxDQUFDLEdBQ25ELHlCQUF5QixDQUFDLEVBQUUsQ0FBQztFQUMvQixNQUFNO0lBQUU7RUFBZ0IsQ0FBQyxHQUFHLG9CQUFvQixDQUFDLFVBQVUsQ0FBQztFQUM1RCxNQUFNLFdBQVcsR0FBRyxlQUFlLENBQUMsS0FBSztFQUV6QyxJQUFJLFdBQVcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGVBQWUsQ0FBQyxFQUFFO0lBQ3ZELFlBQVksQ0FBQyxPQUFPLENBQUMsT0FBTyxHQUFHLFdBQVc7SUFDMUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEdBQUcsV0FBVztJQUM1QyxZQUFZLENBQUMsT0FBTyxDQUFDLFdBQVcsR0FBRyxXQUFXO0VBQ2hELENBQUMsTUFBTTtJQUNMLFlBQVksQ0FBQyxPQUFPLENBQUMsT0FBTyxHQUFHLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxPQUFPLElBQUksRUFBRTtJQUN0RSxZQUFZLENBQUMsT0FBTyxDQUFDLFNBQVMsR0FBRyxFQUFFO0lBQ25DLFlBQVksQ0FBQyxPQUFPLENBQUMsV0FBVyxHQUFHLEVBQUU7RUFDdkM7RUFFQSx1QkFBdUIsQ0FBQyxZQUFZLENBQUM7QUFDdkMsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxzQkFBc0IsR0FBSSxFQUFFLElBQUs7RUFDckMsTUFBTSxpQkFBaUIsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDO0VBRXZELE1BQU0sQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLEdBQUcsTUFBTSxDQUFDLFdBQVcsRUFBRSxpQkFBaUIsQ0FBQztFQUVyRSxJQUFJLENBQUMsVUFBVSxFQUFFO0lBQ2YsTUFBTSxJQUFJLEtBQUssQ0FDYixHQUFHLGlCQUFpQiwwQkFBMEIsV0FBVyxZQUMzRCxDQUFDO0VBQ0g7RUFFQSxJQUFJLENBQUMsUUFBUSxFQUFFO0lBQ2IsTUFBTSxJQUFJLEtBQUssQ0FDYixHQUFHLGlCQUFpQix1QkFBdUIsV0FBVyxXQUN4RCxDQUFDO0VBQ0g7RUFFQSxVQUFVLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxtQ0FBbUMsQ0FBQztFQUM3RCxRQUFRLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxpQ0FBaUMsQ0FBQztFQUV6RCxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRTtJQUN0QyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsT0FBTyxHQUFHLGdCQUFnQjtFQUN0RDtFQUVBLE1BQU07SUFBRTtFQUFRLENBQUMsR0FBRyxpQkFBaUIsQ0FBQyxPQUFPO0VBQzdDLFVBQVUsQ0FBQyxPQUFPLENBQUMsT0FBTyxHQUFHLE9BQU87RUFDcEMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEdBQUcsT0FBTztFQUVsQyxNQUFNO0lBQUU7RUFBUSxDQUFDLEdBQUcsaUJBQWlCLENBQUMsT0FBTztFQUM3QyxJQUFJLE9BQU8sRUFBRTtJQUNYLFVBQVUsQ0FBQyxPQUFPLENBQUMsT0FBTyxHQUFHLE9BQU87SUFDcEMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEdBQUcsT0FBTztFQUNwQztFQUVBLHNCQUFzQixDQUFDLGlCQUFpQixDQUFDO0VBQ3pDLG9CQUFvQixDQUFDLGlCQUFpQixDQUFDO0FBQ3pDLENBQUM7QUFFRCxNQUFNLGVBQWUsR0FBRyxRQUFRLENBQzlCO0VBQ0UsY0FBYyxFQUFFO0lBQ2QsQ0FBQyw2QkFBNkIsSUFBSTtNQUNoQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUM7SUFDOUIsQ0FBQztJQUNELENBQUMsMkJBQTJCLElBQUk7TUFDOUIsb0JBQW9CLENBQUMsSUFBSSxDQUFDO0lBQzVCO0VBQ0Y7QUFDRixDQUFDLEVBQ0Q7RUFDRSxJQUFJLENBQUMsSUFBSSxFQUFFO0lBQ1QsZUFBZSxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBRSxpQkFBaUIsSUFBSztNQUN0RSxzQkFBc0IsQ0FBQyxpQkFBaUIsQ0FBQztJQUMzQyxDQUFDLENBQUM7RUFDSjtBQUNGLENBQ0YsQ0FBQztBQUVELE1BQU0sQ0FBQyxPQUFPLEdBQUcsZUFBZTs7Ozs7QUN6S2hDLE1BQU0sZUFBZSxHQUFHLE9BQU8sQ0FBQyxpREFBaUQsQ0FBQztBQUNsRixNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsd0NBQXdDLENBQUM7QUFDbEUsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLHlDQUF5QyxDQUFDO0FBQ3BFLE1BQU07RUFBRSxNQUFNLEVBQUU7QUFBTyxDQUFDLEdBQUcsT0FBTyxDQUFDLGdDQUFnQyxDQUFDO0FBRXBFLE1BQU0sY0FBYyxHQUFHLEdBQUcsTUFBTSxhQUFhO0FBQzdDLE1BQU0sUUFBUSxHQUFHLElBQUksY0FBYyxFQUFFO0FBQ3JDLE1BQU0sV0FBVyxHQUFHLEdBQUcsTUFBTSxvQkFBb0I7QUFDakQsTUFBTSxZQUFZLEdBQUcsR0FBRyxNQUFNLHFCQUFxQjtBQUNuRCxNQUFNLEtBQUssR0FBRyxJQUFJLFdBQVcsRUFBRTtBQUMvQixNQUFNLFNBQVMsR0FBRyxHQUFHLE1BQU0sa0JBQWtCO0FBQzdDLE1BQU0sa0JBQWtCLEdBQUcsR0FBRyxNQUFNLDJCQUEyQjtBQUMvRCxNQUFNLGFBQWEsR0FBRyxHQUFHLE1BQU0sc0JBQXNCO0FBQ3JELE1BQU0scUJBQXFCLEdBQUcsR0FBRyxNQUFNLDhCQUE4QjtBQUNyRSxNQUFNLGNBQWMsR0FBRyxHQUFHLE1BQU0sdUJBQXVCO0FBQ3ZELE1BQU0sWUFBWSxHQUFHLEdBQUcsTUFBTSxxQkFBcUI7QUFDbkQsTUFBTSwyQkFBMkIsR0FBRyxHQUFHLE1BQU0scUNBQXFDO0FBQ2xGLE1BQU0sZUFBZSxHQUFHLEdBQUcsTUFBTSx3QkFBd0I7QUFDekQsTUFBTSxVQUFVLEdBQUcsR0FBRyxNQUFNLG1CQUFtQjtBQUMvQyxNQUFNLGFBQWEsR0FBRyxZQUFZO0FBQ2xDLE1BQU0sa0JBQWtCLEdBQUcsa0JBQWtCO0FBQzdDLE1BQU0sMEJBQTBCLEdBQUcsR0FBRyxNQUFNLDRCQUE0QjtBQUN4RSxNQUFNLHFCQUFxQixHQUFHLEdBQUcsMEJBQTBCLFdBQVc7QUFDdEUsTUFBTSxpQkFBaUIsR0FBRyxHQUFHLDBCQUEwQixPQUFPO0FBQzlELE1BQU0sa0JBQWtCLEdBQUcsR0FBRywwQkFBMEIsUUFBUTtBQUNoRSxNQUFNLG1CQUFtQixHQUFHLEdBQUcsMEJBQTBCLFNBQVM7QUFDbEUsTUFBTSxtQkFBbUIsR0FBRyxHQUFHLDBCQUEwQixTQUFTO0FBQ2xFLE1BQU0sYUFBYSxHQUFHLEdBQUcsTUFBTSxVQUFVO0FBQ3pDLE1BQU0sVUFBVSxHQUNkLGdGQUFnRjtBQUNsRixNQUFNLHdCQUF3QixHQUFHLHVDQUF1QztBQUV4RSxJQUFJLGFBQWEsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUNuQyxJQUFJLHVCQUF1QixHQUFHLEVBQUU7QUFDaEMsSUFBSSx3QkFBd0IsR0FBRyxFQUFFOztBQUVqQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLG1CQUFtQixHQUFJLEVBQUUsSUFBSztFQUNsQyxNQUFNLFVBQVUsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztFQUV2QyxJQUFJLENBQUMsVUFBVSxFQUFFO0lBQ2YsTUFBTSxJQUFJLEtBQUssQ0FBQyw0QkFBNEIsUUFBUSxFQUFFLENBQUM7RUFDekQ7RUFFQSxNQUFNLE9BQU8sR0FBRyxVQUFVLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQztFQUUvQyxPQUFPO0lBQ0wsVUFBVTtJQUNWO0VBQ0YsQ0FBQztBQUNILENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sT0FBTyxHQUFJLEVBQUUsSUFBSztFQUN0QixNQUFNO0lBQUUsVUFBVTtJQUFFO0VBQVEsQ0FBQyxHQUFHLG1CQUFtQixDQUFDLEVBQUUsQ0FBQztFQUV2RCxPQUFPLENBQUMsUUFBUSxHQUFHLElBQUk7RUFDdkIsVUFBVSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDO0FBQzFDLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sV0FBVyxHQUFJLEVBQUUsSUFBSztFQUMxQixNQUFNO0lBQUU7RUFBVyxDQUFDLEdBQUcsbUJBQW1CLENBQUMsRUFBRSxDQUFDO0VBRTlDLFVBQVUsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQztBQUMxQyxDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLE1BQU0sR0FBSSxFQUFFLElBQUs7RUFDckIsTUFBTTtJQUFFLFVBQVU7SUFBRTtFQUFRLENBQUMsR0FBRyxtQkFBbUIsQ0FBQyxFQUFFLENBQUM7RUFFdkQsT0FBTyxDQUFDLFFBQVEsR0FBRyxLQUFLO0VBQ3hCLFVBQVUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQztFQUMzQyxVQUFVLENBQUMsZUFBZSxDQUFDLGVBQWUsQ0FBQztBQUM3QyxDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLFdBQVcsR0FBSSxDQUFDLElBQUs7RUFDekIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7RUFDekIsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLE9BQU8sR0FBRztFQUN4QixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxPQUFPLE9BQU8sQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUU7RUFDdkQsT0FBTyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7QUFDakQsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxhQUFhLEdBQUksSUFBSSxJQUFLLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLFdBQVcsQ0FBQzs7QUFFdkU7QUFDQSxNQUFNLGNBQWMsR0FBSSxJQUFJLElBQzFCLEdBQUcsSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsRUFBRTs7QUFFdkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLGFBQWEsR0FBSSxXQUFXLElBQUs7RUFDckMsTUFBTSxlQUFlLEdBQUcsV0FBVyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUM7RUFDNUQsTUFBTSxVQUFVLEdBQUcsZUFBZSxHQUFHLE9BQU8sR0FBRyxNQUFNO0VBRXJELE9BQU8sVUFBVTtBQUNuQixDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxnQkFBZ0IsR0FBSSxXQUFXLElBQUs7RUFDeEMsTUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUM7RUFDckQsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUM7RUFDaEQsTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUM7O0VBRXpDO0VBQ0EsV0FBVyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDO0VBQzVDLFdBQVcsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQztFQUN0QyxlQUFlLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUM7RUFDN0MsR0FBRyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDO0VBQzVCLFVBQVUsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQzs7RUFFdEM7RUFDQSxVQUFVLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztFQUN2QixXQUFXLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsV0FBVyxDQUFDO0VBQzVELFdBQVcsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLGVBQWUsRUFBRSxVQUFVLENBQUM7RUFDaEUsVUFBVSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUM7RUFDbkMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUM7RUFFdkMsT0FBTyxVQUFVO0FBQ25CLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSx5QkFBeUIsR0FBSSxXQUFXLElBQUs7RUFDakQsTUFBTSxlQUFlLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUM7RUFDckQsTUFBTSxVQUFVLEdBQUcsYUFBYSxDQUFDLFdBQVcsQ0FBQztFQUM3QyxNQUFNLFlBQVksR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQztFQUNsRCxNQUFNLFFBQVEsR0FBRyxRQUFRLFVBQVUsVUFBVTtFQUM3QyxNQUFNLFVBQVUsR0FBRyxvQkFBb0I7O0VBRXZDO0VBQ0EsdUJBQXVCLEdBQUcsR0FBRyxRQUFRLElBQUksVUFBVSxFQUFFOztFQUVyRDtFQUNBLFlBQVksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDO0VBQzlDLFlBQVksQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQzs7RUFFaEQ7RUFDQSxXQUFXLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSx1QkFBdUIsQ0FBQztFQUMvRCxZQUFZLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQyxVQUFVLGdCQUFnQixlQUFlLEtBQUssUUFBUSx3QkFBd0IsWUFBWSxLQUFLLFVBQVUsU0FBUzs7RUFFcko7RUFDQSxXQUFXLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsV0FBVyxDQUFDOztFQUU5RDtFQUNBLElBQ0UsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLElBQ3BDLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxFQUN0QztJQUNBLGVBQWUsQ0FBQyxhQUFhLENBQUMsSUFBSSxlQUFlLEVBQUUsQ0FBQyxDQUFDLFNBQVMsR0FBRyxFQUFFO0VBQ3JFO0VBRUEsT0FBTyxZQUFZO0FBQ3JCLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxrQkFBa0IsR0FBSSxXQUFXLElBQUs7RUFDMUMsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUM7RUFDOUMsTUFBTSxVQUFVLEdBQUcsYUFBYSxDQUFDLFdBQVcsQ0FBQztFQUM3QyxNQUFNLGVBQWUsR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztFQUNyRCxNQUFNLGVBQWUsR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksWUFBWSxFQUFFLENBQUM7RUFFL0Qsd0JBQXdCLEdBQUcsTUFBTSxVQUFVLFlBQVk7O0VBRXZEO0VBQ0EsUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDO0VBQ3JDLFFBQVEsQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQzs7RUFFNUM7RUFDQSxRQUFRLENBQUMsV0FBVyxHQUFHLHdCQUF3Qjs7RUFFL0M7RUFDQSxlQUFlLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxlQUFlLENBQUM7QUFDekQsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxnQkFBZ0IsR0FBSSxXQUFXLElBQUs7RUFDeEMsTUFBTSxlQUFlLEdBQ25CLFdBQVcsQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLElBQ3pDLFdBQVcsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDO0VBQ3RDLE1BQU0sVUFBVSxHQUFHLGdCQUFnQixDQUFDLFdBQVcsQ0FBQztFQUNoRCxNQUFNLFlBQVksR0FBRyx5QkFBeUIsQ0FBQyxXQUFXLENBQUM7RUFDM0QsTUFBTTtJQUFFO0VBQVcsQ0FBQyxHQUFHLG1CQUFtQixDQUFDLFdBQVcsQ0FBQztFQUV2RCxJQUFJLGVBQWUsRUFBRTtJQUNuQixVQUFVLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUM7RUFDMUMsQ0FBQyxNQUFNO0lBQ0wsa0JBQWtCLENBQUMsV0FBVyxDQUFDO0VBQ2pDO0VBRUEsT0FBTztJQUFFLFlBQVk7SUFBRTtFQUFXLENBQUM7QUFDckMsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxVQUFVLEVBQUUsWUFBWSxLQUFLO0VBQ3RELE1BQU0sWUFBWSxHQUFHLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLGFBQWEsRUFBRSxDQUFDO0VBQ3JFLE1BQU0scUJBQXFCLEdBQUcsVUFBVSxDQUFDLGFBQWEsQ0FDcEQsSUFBSSxxQkFBcUIsRUFDM0IsQ0FBQztFQUNELE1BQU0sbUJBQW1CLEdBQUcsVUFBVSxDQUFDLGFBQWEsQ0FDbEQsSUFBSSwyQkFBMkIsRUFDakMsQ0FBQzs7RUFFRDtBQUNGO0FBQ0E7QUFDQTtFQUNFLE1BQU0sWUFBWSxHQUFJLElBQUksSUFBSztJQUM3QixJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7RUFDbkMsQ0FBQzs7RUFFRDtFQUNBLElBQUkscUJBQXFCLEVBQUU7SUFDekIscUJBQXFCLENBQUMsU0FBUyxHQUFHLEVBQUU7RUFDdEM7O0VBRUE7RUFDQSxJQUFJLG1CQUFtQixFQUFFO0lBQ3ZCLG1CQUFtQixDQUFDLFNBQVMsR0FBRyxFQUFFO0lBQ2xDLFVBQVUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDO0VBQ2pEOztFQUVBO0VBQ0EsSUFBSSxZQUFZLEtBQUssSUFBSSxFQUFFO0lBQ3pCLElBQUksWUFBWSxFQUFFO01BQ2hCLFlBQVksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDO0lBQ3hDO0lBQ0EsS0FBSyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUM7RUFDMUQ7QUFDRixDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLGFBQWEsRUFBRSxTQUFTLEVBQUUsU0FBUyxLQUFLO0VBQ25FLE1BQU0sUUFBUSxHQUFHLGFBQWE7RUFDOUIsSUFBSSxhQUFhLEdBQUcsd0JBQXdCOztFQUU1QztFQUNBLElBQUksU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7SUFDMUIsYUFBYSxHQUFHLCtCQUErQixTQUFTLEVBQUU7RUFDNUQsQ0FBQyxNQUFNLElBQUksU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7SUFDL0IsYUFBYSxHQUFHLHFCQUNkLFNBQVMsQ0FBQyxNQUFNLFdBQ1AsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtFQUNuQzs7RUFFQTtFQUNBLFVBQVUsQ0FBQyxNQUFNO0lBQ2YsUUFBUSxDQUFDLFdBQVcsR0FBRyxhQUFhO0VBQ3RDLENBQUMsRUFBRSxJQUFJLENBQUM7QUFDVixDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLFdBQVcsRUFBRSxTQUFTLEtBQUs7RUFDcEQsTUFBTSxtQkFBbUIsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQztFQUN6RCxNQUFNLFVBQVUsR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksWUFBWSxFQUFFLENBQUM7RUFDMUQsTUFBTSxZQUFZLEdBQUcsVUFBVSxDQUFDLGFBQWEsQ0FBQyxJQUFJLGtCQUFrQixFQUFFLENBQUM7RUFDdkUsSUFBSSxjQUFjLEdBQUcsYUFBYTtFQUNsQyxJQUFJLGtCQUFrQixHQUFHLEVBQUU7RUFFM0IsSUFBSSxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtJQUMxQixrQkFBa0IsR0FBRyxTQUFTLENBQUMsVUFBVSxzREFBc0QsY0FBYyxTQUFTO0VBQ3hILENBQUMsTUFBTSxJQUFJLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO0lBQy9CLGNBQWMsR0FBRyxjQUFjO0lBQy9CLGtCQUFrQixHQUFHLFNBQVMsQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDLE1BQU0sd0RBQXdELGNBQWMsU0FBUztFQUM3STs7RUFFQTtFQUNBLFlBQVksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQztFQUMzQyxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFDO0VBQ3hELG1CQUFtQixDQUFDLFNBQVMsR0FBRyxrQkFBa0I7RUFDbEQsVUFBVSxDQUFDLFlBQVksQ0FBQyxtQkFBbUIsRUFBRSxZQUFZLENBQUM7O0VBRTFEO0VBQ0EsV0FBVyxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsY0FBYyxDQUFDO0FBQ3hELENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLGtCQUFrQixHQUFHLENBQUMsWUFBWSxFQUFFLGFBQWEsS0FBSztFQUMxRCxZQUFZLENBQUMsZ0JBQWdCLENBQzNCLE9BQU8sRUFDUCxNQUFNO0lBQ0osTUFBTSxpQkFBaUIsR0FBRyxZQUFZLENBQUMsQ0FBQztJQUN4QyxpQkFBaUIsQ0FBQyxHQUFHLEdBQUcsVUFBVTtJQUNsQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQztFQUNoRCxDQUFDLEVBQ0Q7SUFBRSxJQUFJLEVBQUU7RUFBSyxDQUNmLENBQUM7QUFDSCxDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxNQUFNLFlBQVksR0FBRyxDQUFDLENBQUMsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLFVBQVUsS0FBSztFQUNqRSxNQUFNLFNBQVMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUs7RUFDaEMsTUFBTSxXQUFXLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLGNBQWMsRUFBRSxDQUFDO0VBQzVELE1BQU0sYUFBYSxHQUFHLFdBQVcsQ0FBQyxhQUFhLENBQUMsSUFBSSxhQUFhLEVBQUUsQ0FBQztFQUNwRSxNQUFNLFNBQVMsR0FBRyxFQUFFOztFQUVwQjtFQUNBLGlCQUFpQixDQUFDLFVBQVUsRUFBRSxZQUFZLENBQUM7O0VBRTNDO0VBQ0EsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRTtJQUM1QyxNQUFNLE1BQU0sR0FBRyxJQUFJLFVBQVUsQ0FBQyxDQUFDO0lBQy9CLE1BQU0sUUFBUSxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO0lBQ2xDLElBQUksT0FBTzs7SUFFWDtJQUNBLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDOztJQUV4QjtJQUNBLE1BQU0sQ0FBQyxXQUFXLEdBQUcsU0FBUyxrQkFBa0IsQ0FBQSxFQUFHO01BQ2pELE9BQU8sR0FBRyxjQUFjLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO01BRWpELFlBQVksQ0FBQyxrQkFBa0IsQ0FDN0IsVUFBVSxFQUNWLFNBQVMsQ0FBQyxVQUFVLGVBQWUsYUFBYTtBQUN4RCxxQkFBcUIsT0FBTyxVQUFVLFVBQVUsbUJBQW1CLDBCQUEwQixJQUFJLGFBQWEsTUFBTSxRQUFRO0FBQzVILGNBQ00sQ0FBQztJQUNILENBQUM7O0lBRUQ7SUFDQSxNQUFNLENBQUMsU0FBUyxHQUFHLFNBQVMsaUJBQWlCLENBQUEsRUFBRztNQUM5QyxNQUFNLFlBQVksR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQztNQUNyRCxNQUFNLGFBQWEsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO01BQy9DLElBQUksYUFBYSxLQUFLLEtBQUssRUFBRTtRQUMzQixrQkFBa0IsQ0FBQyxZQUFZLEVBQUUsaUJBQWlCLENBQUM7TUFDckQsQ0FBQyxNQUFNLElBQ0wsYUFBYSxLQUFLLEtBQUssSUFDdkIsYUFBYSxLQUFLLE1BQU0sSUFDeEIsYUFBYSxLQUFLLE9BQU8sRUFDekI7UUFDQSxrQkFBa0IsQ0FBQyxZQUFZLEVBQUUsa0JBQWtCLENBQUM7TUFDdEQsQ0FBQyxNQUFNLElBQ0wsYUFBYSxLQUFLLEtBQUssSUFDdkIsYUFBYSxLQUFLLE1BQU0sSUFDeEIsYUFBYSxLQUFLLFNBQVMsRUFDM0I7UUFDQSxrQkFBa0IsQ0FBQyxZQUFZLEVBQUUsbUJBQW1CLENBQUM7TUFDdkQsQ0FBQyxNQUFNLElBQUksYUFBYSxLQUFLLEtBQUssSUFBSSxhQUFhLEtBQUssS0FBSyxFQUFFO1FBQzdELGtCQUFrQixDQUFDLFlBQVksRUFBRSxtQkFBbUIsQ0FBQztNQUN2RCxDQUFDLE1BQU07UUFDTCxrQkFBa0IsQ0FBQyxZQUFZLEVBQUUscUJBQXFCLENBQUM7TUFDekQ7O01BRUE7TUFDQSxZQUFZLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUM7TUFDNUMsWUFBWSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTTtJQUNsQyxDQUFDO0lBRUQsSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7TUFDaEIsTUFBTSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEM7RUFDRjtFQUVBLElBQUksU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7SUFDMUI7SUFDQSxXQUFXLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSx1QkFBdUIsQ0FBQztFQUNqRSxDQUFDLE1BQU07SUFDTCxpQkFBaUIsQ0FBQyxXQUFXLEVBQUUsU0FBUyxDQUFDO0VBQzNDO0VBRUEsbUJBQW1CLENBQUMsYUFBYSxFQUFFLFNBQVMsRUFBRSxTQUFTLENBQUM7QUFDMUQsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLENBQUMsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLFVBQVUsS0FBSztFQUN4RSxNQUFNLGlCQUFpQixHQUFHLFdBQVcsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDO0VBQzVELFVBQVUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDOztFQUUvQztBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUNFLE1BQU0sVUFBVSxHQUFHLENBQUMsSUFBSSxFQUFFLEtBQUssS0FBSztJQUNsQyxJQUFJLFdBQVcsR0FBRyxLQUFLO0lBQ3ZCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO0lBQy9CLElBQUksR0FBRyxJQUFJLENBQUMsRUFBRTtNQUNaLFdBQVcsR0FBRyxJQUFJO0lBQ3BCO0lBQ0EsT0FBTyxXQUFXO0VBQ3BCLENBQUM7O0VBRUQ7RUFDQSxJQUFJLGlCQUFpQixFQUFFO0lBQ3JCLE1BQU0sYUFBYSxHQUFHLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUM7SUFDbEQsTUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUM7SUFDbEQsTUFBTSxhQUFhLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQyxZQUFZO0lBQ3RELE1BQU0sZ0JBQWdCLEdBQUcsYUFBYSxJQUFJLHdCQUF3QjtJQUVsRSxZQUFZLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUM7O0lBRTlDO0lBQ0EsSUFBSSxlQUFlLEdBQUcsSUFBSTtJQUMxQixNQUFNLFlBQVksR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsWUFBWSxDQUFDLEtBQUs7SUFDM0QsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFlBQVksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRTtNQUMvQyxNQUFNLElBQUksR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDO01BQzVCLElBQUksZUFBZSxFQUFFO1FBQ25CLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUU7VUFDaEQsTUFBTSxRQUFRLEdBQUcsYUFBYSxDQUFDLENBQUMsQ0FBQztVQUNqQyxlQUFlLEdBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUMvQixVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztVQUNwRCxJQUFJLGVBQWUsRUFBRTtZQUNuQixhQUFhLEdBQUcsSUFBSTtZQUNwQjtVQUNGO1FBQ0Y7TUFDRixDQUFDLE1BQU07SUFDVDs7SUFFQTtJQUNBLElBQUksQ0FBQyxlQUFlLEVBQUU7TUFDcEIsaUJBQWlCLENBQUMsVUFBVSxFQUFFLFlBQVksQ0FBQztNQUMzQyxXQUFXLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxDQUFDO01BQ3hCLFlBQVksQ0FBQyxXQUFXLEdBQUcsZ0JBQWdCO01BQzNDLFVBQVUsQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLFdBQVcsQ0FBQztNQUVsRCxNQUFNLGFBQWEsR0FBRyxHQUFHLGdCQUFnQixJQUFJLHVCQUF1QixFQUFFO01BRXRFLFdBQVcsQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLGFBQWEsQ0FBQztNQUNyRCxZQUFZLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQywyQkFBMkIsQ0FBQztNQUN2RCxVQUFVLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQztNQUM1QyxhQUFhLEdBQUcsS0FBSztNQUNyQixDQUFDLENBQUMsY0FBYyxDQUFDLENBQUM7TUFDbEIsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ3JCO0VBQ0Y7QUFDRixDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sWUFBWSxHQUFHLENBQUMsS0FBSyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsVUFBVSxLQUFLO0VBQ3JFLG1CQUFtQixDQUFDLEtBQUssRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLFVBQVUsQ0FBQztFQUNqRSxJQUFJLGFBQWEsS0FBSyxJQUFJLEVBQUU7SUFDMUIsWUFBWSxDQUFDLEtBQUssRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLFVBQVUsQ0FBQztFQUM1RDtBQUNGLENBQUM7QUFFRCxNQUFNLFNBQVMsR0FBRyxRQUFRLENBQ3hCLENBQUMsQ0FBQyxFQUNGO0VBQ0UsSUFBSSxDQUFDLElBQUksRUFBRTtJQUNULGVBQWUsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFFLFdBQVcsSUFBSztNQUN2RCxNQUFNO1FBQUUsWUFBWTtRQUFFO01BQVcsQ0FBQyxHQUFHLGdCQUFnQixDQUFDLFdBQVcsQ0FBQztNQUVsRSxVQUFVLENBQUMsZ0JBQWdCLENBQ3pCLFVBQVUsRUFDVixTQUFTLGNBQWMsQ0FBQSxFQUFHO1FBQ3hCLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQztNQUNoQyxDQUFDLEVBQ0QsS0FDRixDQUFDO01BRUQsVUFBVSxDQUFDLGdCQUFnQixDQUN6QixXQUFXLEVBQ1gsU0FBUyxlQUFlLENBQUEsRUFBRztRQUN6QixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUM7TUFDbkMsQ0FBQyxFQUNELEtBQ0YsQ0FBQztNQUVELFVBQVUsQ0FBQyxnQkFBZ0IsQ0FDekIsTUFBTSxFQUNOLFNBQVMsVUFBVSxDQUFBLEVBQUc7UUFDcEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDO01BQ25DLENBQUMsRUFDRCxLQUNGLENBQUM7TUFFRCxXQUFXLENBQUMsZ0JBQWdCLENBQzFCLFFBQVEsRUFDUCxDQUFDLElBQUssWUFBWSxDQUFDLENBQUMsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLFVBQVUsQ0FBQyxFQUM3RCxLQUNGLENBQUM7SUFDSCxDQUFDLENBQUM7RUFDSixDQUFDO0VBQ0QsUUFBUSxDQUFDLElBQUksRUFBRTtJQUNiLGVBQWUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFFLFdBQVcsSUFBSztNQUNwRCxNQUFNLG1CQUFtQixHQUFHLFdBQVcsQ0FBQyxhQUFhLENBQUMsYUFBYTtNQUNuRSxtQkFBbUIsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUM1QyxXQUFXLEVBQ1gsbUJBQ0YsQ0FBQztNQUNEO01BQ0EsV0FBVyxDQUFDLFNBQVMsR0FBRyxjQUFjO0lBQ3hDLENBQUMsQ0FBQztFQUNKLENBQUM7RUFDRCxtQkFBbUI7RUFDbkIsT0FBTztFQUNQLFdBQVc7RUFDWDtBQUNGLENBQ0YsQ0FBQztBQUVELE1BQU0sQ0FBQyxPQUFPLEdBQUcsU0FBUzs7Ozs7QUM5bEIxQixNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsd0NBQXdDLENBQUM7QUFDbEUsTUFBTTtFQUFFO0FBQU0sQ0FBQyxHQUFHLE9BQU8sQ0FBQyxnQ0FBZ0MsQ0FBQztBQUMzRCxNQUFNO0VBQUUsTUFBTSxFQUFFO0FBQU8sQ0FBQyxHQUFHLE9BQU8sQ0FBQyxnQ0FBZ0MsQ0FBQztBQUVwRSxNQUFNLEtBQUssR0FBRyxJQUFJLE1BQU0sY0FBYztBQUN0QyxNQUFNLEdBQUcsR0FBRyxHQUFHLEtBQUssTUFBTTtBQUMxQixNQUFNLE1BQU0sR0FBRyxHQUFHLEdBQUcsS0FBSyxNQUFNLHVCQUF1QjtBQUN2RCxNQUFNLGNBQWMsR0FBRyxHQUFHOztBQUUxQjtBQUNBO0FBQ0E7QUFDQSxTQUFTLFNBQVMsQ0FBQSxFQUFHO0VBQ25CLElBQUksTUFBTSxDQUFDLFVBQVUsR0FBRyxjQUFjLEVBQUU7SUFDdEMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsS0FBSyxNQUFNO0lBQzVELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDOztJQUV0QztJQUNBLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUUsTUFBTSxJQUFLO01BQ3RELE1BQU0sQ0FBQyxZQUFZLENBQUMsZUFBZSxFQUFFLEtBQUssQ0FBQztJQUM3QyxDQUFDLENBQUM7SUFFRixJQUFJLENBQUMsWUFBWSxDQUFDLGVBQWUsRUFBRSxDQUFDLE1BQU0sQ0FBQztFQUM3QztBQUNGOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVMsYUFBYSxDQUFDLFFBQVEsRUFBRTtFQUMvQixNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQztFQUUvQyxJQUFJLENBQUMsU0FBUyxFQUFFO0lBQ2Q7RUFDRjtFQUVBLE1BQU0sWUFBWSxHQUFHLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUM7RUFFdkQsWUFBWSxDQUFDLE9BQU8sQ0FBRSxjQUFjLElBQUs7SUFDdkMsTUFBTSxxQkFBcUIsR0FBRyxjQUFjLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQztJQUNsRSxNQUFNLGdCQUFnQixHQUNwQixjQUFjLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxJQUFJLGNBQWMsQ0FBQyxPQUFPO0lBRW5FLE1BQU0sY0FBYyxHQUFHLFFBQVEsR0FBRyxRQUFRLEdBQUcsZ0JBQWdCOztJQUU3RDtJQUNBLE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDO0lBQ3pELFVBQVUsQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLHFCQUFxQixDQUFDO0lBQ3ZELFVBQVUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUN6QixHQUFHLE1BQU0sK0JBQStCLEVBQ3hDLFFBQ0YsQ0FBQztJQUNELFVBQVUsQ0FBQyxXQUFXLEdBQUcsY0FBYyxDQUFDLFdBQVc7SUFFbkQsSUFBSSxRQUFRLEVBQUU7TUFDWixVQUFVLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxjQUFjLENBQUMsT0FBTyxDQUFDO01BQzNELE1BQU0sTUFBTSxHQUFHLEdBQUcsTUFBTSxxQkFBcUIsSUFBSSxDQUFDLEtBQUssQ0FDckQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsTUFDbEIsQ0FBQyxFQUFFO01BRUgsVUFBVSxDQUFDLFlBQVksQ0FBQyxlQUFlLEVBQUUsTUFBTSxDQUFDO01BQ2hELFVBQVUsQ0FBQyxZQUFZLENBQUMsZUFBZSxFQUFFLE9BQU8sQ0FBQztNQUNqRCxjQUFjLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUM7TUFDNUQsVUFBVSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDO0lBQzNDOztJQUVBO0lBQ0EsY0FBYyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUM7SUFDaEMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0VBQ3pCLENBQUMsQ0FBQztBQUNKO0FBRUEsTUFBTSxNQUFNLEdBQUksS0FBSyxJQUFLO0VBQ3hCLGFBQWEsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDO0FBQzlCLENBQUM7QUFFRCxNQUFNLENBQUMsT0FBTyxHQUFHLFFBQVEsQ0FDdkI7RUFDRSxDQUFDLEtBQUssR0FBRztJQUNQLENBQUMsTUFBTSxHQUFHO0VBQ1o7QUFDRixDQUFDLEVBQ0Q7RUFDRTtFQUNBLGNBQWM7RUFFZCxJQUFJLENBQUEsRUFBRztJQUNMLGFBQWEsQ0FBQyxNQUFNLENBQUMsVUFBVSxHQUFHLGNBQWMsQ0FBQztJQUNqRCxJQUFJLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQ3JDLGVBQWUsY0FBYyxHQUFHLEdBQUcsS0FDckMsQ0FBQztJQUNELElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQztFQUN6QyxDQUFDO0VBRUQsUUFBUSxDQUFBLEVBQUc7SUFDVCxJQUFJLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUM7RUFDNUM7QUFDRixDQUNGLENBQUM7Ozs7O0FDckdELE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQztBQUN6QyxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsd0NBQXdDLENBQUM7QUFDbEUsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLHNDQUFzQyxDQUFDO0FBQzlELE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxzQ0FBc0MsQ0FBQztBQUM5RCxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsMENBQTBDLENBQUM7QUFDckUsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLCtCQUErQixDQUFDO0FBQzFELE1BQU0sY0FBYyxHQUFHLE9BQU8sQ0FBQywrQ0FBK0MsQ0FBQztBQUUvRSxNQUFNO0VBQUU7QUFBTSxDQUFDLEdBQUcsT0FBTyxDQUFDLGdDQUFnQyxDQUFDO0FBQzNELE1BQU07RUFBRSxNQUFNLEVBQUU7QUFBTyxDQUFDLEdBQUcsT0FBTyxDQUFDLGdDQUFnQyxDQUFDO0FBRXBFLE1BQU0sSUFBSSxHQUFHLE1BQU07QUFDbkIsTUFBTSxNQUFNLEdBQUcsSUFBSSxNQUFNLFNBQVM7QUFDbEMsTUFBTSxHQUFHLEdBQUcsSUFBSSxNQUFNLE1BQU07QUFDNUIsTUFBTSxhQUFhLEdBQUcsSUFBSSxNQUFNLGdCQUFnQjtBQUNoRCxNQUFNLFdBQVcsR0FBRyxJQUFJLE1BQU0sZUFBZTtBQUM3QyxNQUFNLGdCQUFnQixHQUFHLElBQUksTUFBTSxvQkFBb0I7QUFDdkQsTUFBTSxXQUFXLEdBQUcsVUFBVSxNQUFNLFlBQVk7QUFDaEQsTUFBTSxTQUFTLEdBQUcsR0FBRyxHQUFHLElBQUk7QUFDNUIsTUFBTSx3QkFBd0IsR0FBRyxpQkFBaUI7QUFDbEQsTUFBTSxPQUFPLEdBQUcsSUFBSSxNQUFNLFdBQVc7QUFDckMsTUFBTSxZQUFZLEdBQUcsSUFBSSxNQUFNLGFBQWE7QUFDNUMsTUFBTSxPQUFPLEdBQUcsSUFBSSxNQUFNLFVBQVU7QUFDcEMsTUFBTSxPQUFPLEdBQUcsR0FBRyxZQUFZLE1BQU0sTUFBTSxVQUFVO0FBQ3JELE1BQU0sT0FBTyxHQUFHLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7QUFDekMsTUFBTSxnQkFBZ0IsR0FBRyxjQUFjLE1BQU0sS0FBSyxhQUFhLEtBQUssR0FBRyxLQUFLLEdBQUcsd0JBQXdCO0FBQ3ZHLE1BQU0sY0FBYyxHQUFHLElBQUksd0JBQXdCLEdBQUc7QUFFdEQsTUFBTSxZQUFZLEdBQUcsMkJBQTJCO0FBQ2hELE1BQU0sYUFBYSxHQUFHLFlBQVk7QUFFbEMsSUFBSSxVQUFVO0FBQ2QsSUFBSSxTQUFTO0FBQ2IsSUFBSSxjQUFjO0FBRWxCLE1BQU0sUUFBUSxHQUFHLENBQUEsS0FBTSxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDO0FBQ3JFO0FBQ0E7QUFDQSxNQUFNLFFBQVEsR0FDWixTQUFTLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFDdEMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUM7QUFDekMsTUFBTSxlQUFlLEdBQUcsY0FBYyxDQUFDLENBQUM7QUFDeEMsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUMzQixnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQy9CLGdCQUFnQixDQUFDLGVBQWUsQ0FBQztBQUNwQyxNQUFNLGlCQUFpQixHQUFHLEdBQ3hCLFFBQVEsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsR0FDL0MsUUFBUSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUM3QztBQUVKLE1BQU0sZUFBZSxHQUFHLENBQUEsS0FBTTtFQUM1QixNQUFNLFlBQVksR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEdBQUcsTUFBTSxFQUFFLENBQUMsQ0FBQyxVQUFVO0VBQ25FLGNBQWMsR0FBRyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUM7RUFFNUQsY0FBYyxDQUFDLE9BQU8sQ0FBRSxhQUFhLElBQUs7SUFDeEMsSUFBSSxhQUFhLEtBQUssWUFBWSxFQUFFO01BQ2xDLGFBQWEsQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQztNQUMvQyxhQUFhLENBQUMsWUFBWSxDQUFDLHdCQUF3QixFQUFFLEVBQUUsQ0FBQztJQUMxRDtFQUNGLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLGVBQWUsR0FBRyxDQUFBLEtBQU07RUFDNUIsY0FBYyxHQUFHLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUM7RUFFMUQsSUFBSSxDQUFDLGNBQWMsRUFBRTtJQUNuQjtFQUNGOztFQUVBO0VBQ0EsY0FBYyxDQUFDLE9BQU8sQ0FBRSxhQUFhLElBQUs7SUFDeEMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUM7SUFDNUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyx3QkFBd0IsQ0FBQztFQUN6RCxDQUFDLENBQUM7QUFDSixDQUFDOztBQUVEO0FBQ0EsTUFBTSxpQkFBaUIsR0FBSSxNQUFNLElBQUs7RUFDcEMsSUFBSSxNQUFNLEVBQUU7SUFDVixlQUFlLENBQUMsQ0FBQztFQUNuQixDQUFDLE1BQU07SUFDTCxlQUFlLENBQUMsQ0FBQztFQUNuQjtBQUNGLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLGNBQWMsR0FBRyxDQUFBLEtBQU07RUFDM0IsSUFBSSxRQUFRLEVBQUU7SUFDWixRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDO0VBQzFDO0FBQ0YsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLHVCQUF1QixHQUFJLElBQUksSUFBSztFQUN4QyxNQUFNLHFCQUFxQixHQUFHLElBQUksTUFBTSxDQUFDLE9BQU8sSUFBSTtFQUNwRCxJQUFJLFFBQVEsRUFBRTtJQUNaLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxxQkFBcUIsQ0FBQztFQUM5RDtBQUNGLENBQUM7QUFFRCxNQUFNLFNBQVMsR0FBSSxNQUFNLElBQUs7RUFDNUIsTUFBTTtJQUFFO0VBQUssQ0FBQyxHQUFHLFFBQVE7RUFDekIsTUFBTSxVQUFVLEdBQUcsT0FBTyxNQUFNLEtBQUssU0FBUyxHQUFHLE1BQU0sR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0VBRXJFLHVCQUF1QixDQUFDLElBQUksQ0FBQztFQUU3QixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsVUFBVSxDQUFDO0VBRS9DLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUUsRUFBRSxJQUN6QixFQUFFLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsVUFBVSxDQUMvQyxDQUFDO0VBRUQsVUFBVSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDO0VBRXZDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDO0VBQ3BELE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDO0VBRWxELElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxHQUNyQixJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksS0FBSyxpQkFBaUIsR0FDekMsZUFBZSxHQUNmLGlCQUFpQjtFQUV2QixpQkFBaUIsQ0FBQyxVQUFVLENBQUM7RUFFN0IsSUFBSSxVQUFVLElBQUksV0FBVyxFQUFFO0lBQzdCO0lBQ0E7SUFDQSxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7RUFDckIsQ0FBQyxNQUFNLElBQ0wsQ0FBQyxVQUFVLElBQ1gsVUFBVSxJQUNWLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxDQUFDLE9BQU8sS0FBSyxNQUFNLEVBQy9DO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQSxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7RUFDcEI7RUFFQSxPQUFPLFVBQVU7QUFDbkIsQ0FBQztBQUVELE1BQU0sTUFBTSxHQUFHLENBQUEsS0FBTTtFQUNuQixNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUM7RUFFeEQsSUFBSSxRQUFRLENBQUMsQ0FBQyxJQUFJLE1BQU0sSUFBSSxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxDQUFDLEVBQUU7SUFDdEU7SUFDQTtJQUNBO0lBQ0EsVUFBVSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQztFQUMxQztBQUNGLENBQUM7QUFFRCxNQUFNLFdBQVcsR0FBRyxDQUFBLEtBQU0sVUFBVSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQztBQUV0RSxNQUFNLHFCQUFxQixHQUFHLENBQUEsS0FBTTtFQUNsQyxJQUFJLENBQUMsU0FBUyxFQUFFO0lBQ2Q7RUFDRjtFQUVBLE1BQU0sQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDO0VBQ3hCLFNBQVMsR0FBRyxJQUFJO0FBQ2xCLENBQUM7QUFFRCxNQUFNLGNBQWMsR0FBSSxLQUFLLElBQUs7RUFDaEMsTUFBTSxhQUFhLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUM7O0VBRTVEO0VBQ0EsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUFFO0lBQ3RDLE1BQU0sVUFBVSxHQUFHLGFBQWEsQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDO0lBQzNELElBQUksVUFBVSxFQUFFO01BQ2QsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BCO0VBQ0Y7QUFDRixDQUFDO0FBRUQsTUFBTSxZQUFZLEdBQUksS0FBSyxJQUFLO0VBQzlCLHFCQUFxQixDQUFDLENBQUM7RUFDdkIsY0FBYyxDQUFDLEtBQUssQ0FBQztBQUN2QixDQUFDO0FBRUQsVUFBVSxHQUFHLFFBQVEsQ0FDbkI7RUFDRSxDQUFDLEtBQUssR0FBRztJQUNQLENBQUMsV0FBVyxJQUFJO01BQ2Q7TUFDQSxJQUFJLFNBQVMsS0FBSyxJQUFJLEVBQUU7UUFDdEIscUJBQXFCLENBQUMsQ0FBQztNQUN6QjtNQUNBO01BQ0E7TUFDQSxJQUFJLENBQUMsU0FBUyxFQUFFO1FBQ2QsU0FBUyxHQUFHLElBQUk7UUFDaEIsTUFBTSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUM7TUFDekI7O01BRUE7TUFDQSxPQUFPLEtBQUs7SUFDZCxDQUFDO0lBQ0QsQ0FBQyxJQUFJLEdBQUcscUJBQXFCO0lBQzdCLENBQUMsT0FBTyxHQUFHLFNBQVM7SUFDcEIsQ0FBQyxPQUFPLEdBQUcsU0FBUztJQUNwQixDQUFDLFNBQVMsSUFBSTtNQUNaO01BQ0E7TUFDQTs7TUFFQTtNQUNBO01BQ0EsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDO01BRTdDLElBQUksR0FBRyxFQUFFO1FBQ1AsU0FBUyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUUsR0FBRyxJQUFLLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7TUFDakU7O01BRUE7TUFDQSxJQUFJLFFBQVEsQ0FBQyxDQUFDLEVBQUU7UUFDZCxVQUFVLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDO01BQzlDO0lBQ0Y7RUFDRixDQUFDO0VBQ0QsT0FBTyxFQUFFO0lBQ1AsQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDO01BQUUsTUFBTSxFQUFFO0lBQWEsQ0FBQztFQUNoRCxDQUFDO0VBQ0QsUUFBUSxFQUFFO0lBQ1IsQ0FBQyxXQUFXLEVBQUUsS0FBSyxFQUFFO01BQ25CLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztNQUU3QyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEVBQUU7UUFDdEMscUJBQXFCLENBQUMsQ0FBQztNQUN6QjtJQUNGO0VBQ0Y7QUFDRixDQUFDLEVBQ0Q7RUFDRSxJQUFJLENBQUMsSUFBSSxFQUFFO0lBQ1QsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUM7SUFFeEUsSUFBSSxhQUFhLEVBQUU7TUFDakIsVUFBVSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUMsYUFBYSxFQUFFO1FBQzlDLE1BQU0sRUFBRTtNQUNWLENBQUMsQ0FBQztJQUNKO0lBRUEsY0FBYyxDQUFDLENBQUM7SUFDaEIsTUFBTSxDQUFDLENBQUM7SUFDUixNQUFNLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUM7RUFDbEQsQ0FBQztFQUNELFFBQVEsQ0FBQSxFQUFHO0lBQ1QsTUFBTSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDO0lBQ25ELFNBQVMsR0FBRyxLQUFLO0VBQ25CLENBQUM7RUFDRCxTQUFTLEVBQUUsSUFBSTtFQUNmO0FBQ0YsQ0FDRixDQUFDO0FBRUQsTUFBTSxDQUFDLE9BQU8sR0FBRyxVQUFVOzs7OztBQzFRM0IsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLGVBQWUsQ0FBQztBQUNyQyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUM7QUFDekMsTUFBTSxlQUFlLEdBQUcsT0FBTyxDQUFDLGlEQUFpRCxDQUFDO0FBQ2xGLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyx3Q0FBd0MsQ0FBQztBQUNsRSxNQUFNO0VBQUUsTUFBTSxFQUFFO0FBQU8sQ0FBQyxHQUFHLE9BQU8sQ0FBQyxnQ0FBZ0MsQ0FBQztBQUNwRSxNQUFNO0VBQUU7QUFBTSxDQUFDLEdBQUcsT0FBTyxDQUFDLGdDQUFnQyxDQUFDO0FBQzNELE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyx5Q0FBeUMsQ0FBQztBQUVwRSxNQUFNLGFBQWEsR0FBRyxHQUFHLE1BQU0sVUFBVTtBQUN6QyxNQUFNLG9CQUFvQixHQUFHLE9BQU87QUFDcEMsTUFBTSwwQkFBMEIsR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO0FBQ3ZFLE1BQU0sc0JBQXNCLEdBQUcsY0FBYztBQUM3QyxNQUFNLCtCQUErQixHQUFHLElBQUk7QUFDNUMsTUFBTSx5QkFBeUIsR0FBRyxDQUFDO0FBQ25DLE1BQU0sdUJBQXVCLEdBQUcsaUJBQWlCO0FBQ2pELE1BQU0scUJBQXFCLEdBQUcsR0FBRztBQUNqQyxNQUFNLGlCQUFpQixHQUFHLEdBQUcsTUFBTSxjQUFjO0FBQ2pELE1BQU0sd0JBQXdCLEdBQUcsR0FBRyxNQUFNLFNBQVM7QUFDbkQsTUFBTSxxQkFBcUIsR0FBRyxHQUFHLGlCQUFpQixPQUFPO0FBQ3pELE1BQU0sc0JBQXNCLEdBQUcsR0FBRyxpQkFBaUIsUUFBUTtBQUMzRCxNQUFNLHNCQUFzQixHQUFHLEdBQUcsaUJBQWlCLFFBQVE7QUFDM0QsTUFBTSw4QkFBOEIsR0FBRyxHQUFHLHNCQUFzQixXQUFXO0FBQzNFLE1BQU0sc0JBQXNCLEdBQUcsR0FBRyxpQkFBaUIsUUFBUTtBQUMzRCxNQUFNLHVCQUF1QixHQUFHLEdBQUcsaUJBQWlCLFdBQVc7QUFDL0QsTUFBTSxZQUFZLEdBQUcsTUFBTTs7QUFFM0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sU0FBUyxHQUFJLEVBQUUsSUFBSztFQUN4QixNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxzQkFBc0IsRUFBRSxDQUFDO0VBQ3hFLEVBQUUsQ0FBQyxHQUFHLENBQUUsQ0FBQyxJQUFLO0lBQ1osSUFBSSxDQUFDLENBQUMsY0FBYyxLQUFLLElBQUksSUFBSSxDQUFDLENBQUMsaUJBQWlCLElBQUksQ0FBQyxFQUFFO01BQ3pELFFBQVEsQ0FBQyxPQUFPLENBQUUsSUFBSSxJQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO01BQ2hFLFFBQVEsQ0FDTCxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQzFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDO01BQy9CLE9BQU8sSUFBSTtJQUNiO0lBQ0EsT0FBTyxLQUFLO0VBQ2QsQ0FBQyxDQUFDO0FBQ0osQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLDBCQUEwQixHQUFHLENBQ2pDLHFCQUFxQixFQUNyQixvQkFBb0IsS0FDakI7RUFDSDtFQUNBLE1BQU0seUJBQXlCLEdBQUcsb0JBQW9CLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUMvRCxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQy9CLG9CQUFvQjtFQUN4QixNQUFNLGFBQWEsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLHFCQUFxQixDQUFDO0VBRW5FLHlCQUF5QixDQUFDLE9BQU8sQ0FBRSxXQUFXLElBQUs7SUFDakQsSUFBSSxDQUFDLDBCQUEwQixDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsRUFBRTtNQUNyRCxNQUFNLElBQUksS0FBSyxDQUNiLDhGQUE4RixXQUFXO0FBQ2pILG1FQUFtRSwwQkFBMEI7QUFDN0YsNEVBQ00sQ0FBQztJQUNIO0VBQ0YsQ0FBQyxDQUFDO0VBRUYsTUFBTSxvQkFBb0IsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUNyQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMseUJBQXlCLENBQzFELENBQUM7RUFFRCxPQUFPLG9CQUFvQjtBQUM3QixDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSx5QkFBeUIsR0FBRyxDQUNoQyxxQkFBcUIsRUFDckIsb0JBQW9CLEtBQ2pCO0VBQ0gsTUFBTSxlQUFlLEdBQUcsMEJBQTBCLENBQ2hELHFCQUFxQixFQUNyQixvQkFDRixDQUFDOztFQUVEO0VBQ0EsTUFBTSxzQkFBc0IsR0FBRyxlQUFlLENBQUMsTUFBTSxDQUFFLE9BQU8sSUFBSztJQUNqRSxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDO0lBQ3JELE1BQU0sY0FBYyxHQUNsQixZQUFZLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLEtBQUssTUFBTSxJQUNuRCxZQUFZLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLEtBQUssUUFBUTtJQUUxRCxPQUFPLGNBQWM7RUFDdkIsQ0FBQyxDQUFDO0VBRUYsT0FBTyxzQkFBc0I7QUFDL0IsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxNQUFNLGtCQUFrQixHQUFJLGVBQWUsSUFBSztFQUM5QyxNQUFNLFVBQVUsR0FBRyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0VBQzNELE9BQU8sVUFBVTtBQUNuQixDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLGlCQUFpQixHQUFHLENBQUEsS0FBTTtFQUM5QixNQUFNLGNBQWMsR0FBRyxRQUFRLENBQUMsZ0JBQWdCLENBQzlDLElBQUksd0JBQXdCLEVBQzlCLENBQUM7RUFDRCxPQUFPLGNBQWM7QUFDdkIsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sWUFBWSxHQUFJLE9BQU8sSUFBSztFQUNoQyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsV0FBVyxDQUMvQixXQUFXLENBQUM7RUFDYjtFQUFBLENBQ0MsT0FBTyxDQUFDLFdBQVcsRUFBRSxHQUFHO0VBQ3pCO0VBQUEsQ0FDQyxPQUFPLENBQUMsUUFBUSxFQUFFLEdBQUc7RUFDdEI7RUFBQSxDQUNDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO0VBRXhCLElBQUksRUFBRTtFQUNOLElBQUksTUFBTSxHQUFHLENBQUM7RUFDZCxHQUFHO0lBQ0QsRUFBRSxHQUFHLE1BQU07O0lBRVg7SUFDQTtJQUNBLE1BQU0sSUFBSSxDQUFDO0lBQ1gsSUFBSSxNQUFNLEdBQUcsQ0FBQyxFQUFFO01BQ2QsRUFBRSxJQUFJLElBQUksTUFBTSxFQUFFO0lBQ3BCO0VBQ0YsQ0FBQyxRQUFRLFFBQVEsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDO0VBRXBDLE9BQU8sRUFBRTtBQUNYLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sWUFBWSxHQUFJLEtBQUssSUFBSztFQUM5QixJQUFJLEVBQUU7O0VBRU47RUFDQSxJQUFJLEtBQUssSUFBSSxLQUFLLENBQUMsUUFBUSxLQUFLLENBQUMsRUFBRTtJQUNqQyxFQUFFLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQztFQUNsRCxDQUFDLE1BQU07SUFDTCxFQUFFLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUM7RUFDekM7RUFFQSxPQUFPLEVBQUU7QUFDWCxDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLHFCQUFxQixHQUFJLEVBQUUsSUFBSztFQUNwQyxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLElBQUksaUJBQWlCLEVBQUUsQ0FBQztFQUNuRSxNQUFNLHFCQUFxQixHQUN6QixXQUFXLENBQUMsT0FBTyxDQUFDLFlBQVksSUFBSSx5QkFBeUI7RUFFL0QsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUNaLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLEdBQUcsRUFBRSxFQUFFLENBQUMsU0FBUyxHQUFHLHFCQUFxQjtJQUN6QyxLQUFLLEVBQUU7RUFDVCxDQUFDLENBQUM7RUFFRixJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFO0lBQzNDLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7RUFDakQ7QUFDRixDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBLE1BQU0sc0JBQXNCLEdBQUcsQ0FBQSxLQUFNO0VBQ25DLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7RUFDbEQsSUFBSSxZQUFZLEVBQUU7SUFDaEIsTUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUM7SUFDdkQsSUFBSSxTQUFTLEVBQUU7TUFDYixxQkFBcUIsQ0FBQyxTQUFTLENBQUM7SUFDbEM7RUFDRjtBQUNGLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sZUFBZSxHQUFJLFdBQVcsSUFBSztFQUN2QyxNQUFNLGtCQUFrQixHQUFHLFNBQVMsQ0FBQyxVQUFVLEdBQzdDLFdBQVcsQ0FBQyxPQUFPLENBQUMsU0FBUyxJQUFJLHNCQUFzQixFQUN2RDtFQUNGLE1BQU0sMEJBQTBCLEdBQUcsU0FBUyxDQUFDLFVBQVUsR0FDckQsV0FBVyxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsSUFBSSwrQkFBK0IsRUFDeEU7RUFDRixNQUFNLG1CQUFtQixHQUFHLFNBQVMsQ0FBQyxVQUFVLEdBQzlDLFdBQVcsQ0FBQyxPQUFPLENBQUMsVUFBVSxJQUFJLHVCQUF1QixFQUN6RDtFQUNGLE1BQU0sa0JBQWtCLEdBQUcsU0FBUyxDQUFDLFVBQVUsR0FDN0MsV0FBVyxDQUFDLE9BQU8sQ0FBQyxTQUFTLElBQUkscUJBQXFCLEVBQ3REO0VBQ0YsTUFBTSx3QkFBd0IsR0FBRyxTQUFTLENBQUMsVUFBVSxHQUNuRCxXQUFXLENBQUMsT0FBTyxDQUFDLG1CQUFtQixJQUFJLFlBQVksRUFDdkQ7RUFDRixNQUFNLHdCQUF3QixHQUFHLFNBQVMsQ0FBQyxVQUFVLEdBQ25ELFdBQVcsQ0FBQyxPQUFPLENBQUMsZUFBZSxJQUFJLG9CQUFvQixFQUMzRDtFQUVGLE1BQU0sT0FBTyxHQUFHO0lBQ2QsSUFBSSxFQUFFLElBQUk7SUFDVixVQUFVLEVBQUUsbUJBQW1CO0lBQy9CLFNBQVMsRUFBRSxDQUFDLGtCQUFrQjtFQUNoQyxDQUFDO0VBRUQsTUFBTSxlQUFlLEdBQUcseUJBQXlCLENBQy9DLHdCQUF3QixFQUN4Qix3QkFDRixDQUFDO0VBQ0QsTUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUM7RUFDL0MsU0FBUyxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsa0JBQWtCLENBQUM7RUFDeEQsU0FBUyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMscUJBQXFCLENBQUM7RUFFOUMsTUFBTSxjQUFjLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQywwQkFBMEIsQ0FBQztFQUN6RSxjQUFjLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQztFQUNyRCxjQUFjLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUM7RUFDNUMsY0FBYyxDQUFDLFdBQVcsR0FBRyxrQkFBa0I7RUFDL0MsU0FBUyxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUM7RUFFckMsTUFBTSxhQUFhLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUM7RUFDbEQsYUFBYSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsc0JBQXNCLENBQUM7RUFDbkQsU0FBUyxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUM7RUFFcEMsZUFBZSxDQUFDLE9BQU8sQ0FBRSxFQUFFLElBQUs7SUFDOUIsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUM7SUFDN0MsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUM7SUFDNUMsTUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUM7SUFDN0MsTUFBTSxpQkFBaUIsR0FBRyxFQUFFLENBQUMsV0FBVztJQUN4QyxNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3BDLE1BQU0sZUFBZSxHQUFHLGtCQUFrQixDQUFDLGVBQWUsQ0FBQztJQUMzRCxNQUFNLFNBQVMsR0FBRyxZQUFZLENBQUMsRUFBRSxDQUFDO0lBRWxDLFFBQVEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLHNCQUFzQixDQUFDO0lBRTlDLElBQUksR0FBRyxLQUFLLGVBQWUsRUFBRTtNQUMzQixRQUFRLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyw4QkFBOEIsQ0FBQztJQUN4RDtJQUVBLFFBQVEsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLElBQUksU0FBUyxFQUFFLENBQUM7SUFDOUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsc0JBQXNCLENBQUM7SUFDdEQsUUFBUSxDQUFDLFdBQVcsR0FBRyxpQkFBaUI7SUFFeEMsU0FBUyxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDO0lBQ3ZDLFNBQVMsQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLHdCQUF3QixDQUFDO0lBQ3pELEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxZQUFZLEVBQUUsU0FBUyxDQUFDO0lBRWpELGFBQWEsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDO0lBQ25DLFFBQVEsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDO0VBQ2hDLENBQUMsQ0FBQztFQUVGLFdBQVcsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDO0VBRWxDLE1BQU0sVUFBVSxHQUFHLGlCQUFpQixDQUFDLENBQUM7RUFDdEMsTUFBTSxlQUFlLEdBQUcsSUFBSSxNQUFNLENBQUMsb0JBQW9CLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQztFQUUzRSxVQUFVLENBQUMsT0FBTyxDQUFFLEdBQUcsSUFBSztJQUMxQixlQUFlLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztFQUM5QixDQUFDLENBQUM7QUFDSixDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLG1CQUFtQixHQUFJLEVBQUUsSUFBSztFQUNsQyxNQUFNLGlCQUFpQixHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7RUFDbkUscUJBQXFCLENBQUMsaUJBQWlCLENBQUM7QUFDMUMsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxtQkFBbUIsR0FBSSxLQUFLLElBQUs7RUFDckMsTUFBTSxFQUFFLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQztFQUM5QixNQUFNLFlBQVksR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQztFQUNoRCxNQUFNLE1BQU0sR0FBRyxZQUFZLENBQUMsYUFBYTtFQUV6QyxJQUFJLE1BQU0sRUFBRTtJQUNWLE1BQU0sQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUNsQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDZCxNQUFNLENBQUMsZ0JBQWdCLENBQ3JCLE1BQU0sRUFDTixJQUFJLENBQUMsTUFBTTtNQUNULE1BQU0sQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3JDLENBQUMsQ0FDSCxDQUFDO0VBQ0gsQ0FBQyxNQUFNO0lBQ0w7RUFBQTtFQUVGLHFCQUFxQixDQUFDLFlBQVksQ0FBQztBQUNyQyxDQUFDO0FBRUQsTUFBTSxnQkFBZ0IsR0FBRyxRQUFRLENBQy9CO0VBQ0UsQ0FBQyxLQUFLLEdBQUc7SUFDUCxDQUFDLElBQUksc0JBQXNCLEVBQUUsRUFBRSxLQUFLLEVBQUU7TUFDcEMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO01BQ3RCLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtNQUNuQixtQkFBbUIsQ0FBQyxJQUFJLENBQUM7SUFDM0I7RUFDRixDQUFDO0VBQ0QsT0FBTyxFQUFFO0lBQ1AsQ0FBQyxJQUFJLHNCQUFzQixFQUFFLEdBQUcsTUFBTSxDQUFDO01BQ3JDLEtBQUssRUFBRTtJQUNULENBQUM7RUFDSDtBQUNGLENBQUMsRUFDRDtFQUNFLElBQUksQ0FBQyxJQUFJLEVBQUU7SUFDVCxlQUFlLENBQUMsSUFBSSxpQkFBaUIsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBRSxXQUFXLElBQUs7TUFDdEUsZUFBZSxDQUFDLFdBQVcsQ0FBQztNQUM1QixzQkFBc0IsQ0FBQyxDQUFDO0lBQzFCLENBQUMsQ0FBQztFQUNKO0FBQ0YsQ0FDRixDQUFDO0FBRUQsTUFBTSxDQUFDLE9BQU8sR0FBRyxnQkFBZ0I7Ozs7O0FDalhqQyxNQUFNLGVBQWUsR0FBRyxPQUFPLENBQUMsaURBQWlELENBQUM7QUFDbEYsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLHdDQUF3QyxDQUFDO0FBQ2xFLE1BQU07RUFBRSxNQUFNLEVBQUU7QUFBTyxDQUFDLEdBQUcsT0FBTyxDQUFDLGdDQUFnQyxDQUFDO0FBRXBFLE1BQU0sWUFBWSxHQUFHLEdBQUcsTUFBTSxTQUFTO0FBQ3ZDLE1BQU0sTUFBTSxHQUFHLElBQUksWUFBWSxFQUFFO0FBQ2pDLE1BQU0sSUFBSSxHQUFHLEdBQUcsTUFBTSxhQUFhO0FBQ25DLE1BQU0sWUFBWSxHQUFHLEdBQUcsSUFBSSxXQUFXO0FBQ3ZDLE1BQU0sV0FBVyxHQUFHLGFBQWE7O0FBRWpDO0FBQ0EsTUFBTSxZQUFZLEdBQUcsV0FBVztBQUNoQyxNQUFNLFlBQVksR0FBRyxHQUFHOztBQUV4QjtBQUNBLE1BQU0sc0JBQXNCLEdBQUksS0FBSyxJQUFLO0VBQ3hDLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUMsR0FBRyxXQUFXLEVBQUUsQ0FBQztFQUN4RCxJQUFJLFdBQVcsRUFBRTtJQUNmLEtBQUssQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQyxNQUFNLENBQUM7SUFDbkQsS0FBSyxDQUFDLFlBQVksQ0FBQyxrQkFBa0IsRUFBRSxXQUFXLENBQUM7SUFDbkQsS0FBSyxDQUFDLGVBQWUsQ0FBQyxHQUFHLFdBQVcsRUFBRSxDQUFDO0VBQ3pDLENBQUMsTUFBTTtJQUNMO0VBQ0Y7RUFFQSxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQztFQUM1QyxLQUFLLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUM7RUFDekIsS0FBSyxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDO0VBRTVDLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDO0VBQzlDLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQztFQUNuQyxPQUFPLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUM7RUFDM0MsT0FBTyxDQUFDLEVBQUUsR0FBRyxHQUFHLEtBQUssQ0FBQyxFQUFFLE1BQU07RUFDOUIsT0FBTyxDQUFDLFdBQVcsR0FBRyxXQUFXO0VBRWpDLEtBQUssQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDO0VBQzFCLEtBQUssQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUM7RUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUM7QUFDMUIsQ0FBQztBQUVELE1BQU0sY0FBYyxHQUFJLEVBQUUsSUFBSztFQUM3QixNQUFNO0lBQUU7RUFBTSxDQUFDLEdBQUcsRUFBRTtFQUNwQixNQUFNLGNBQWMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUU7RUFFdkUsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUM7RUFDMUMsTUFBTSxDQUFDLFdBQVcsR0FBRyxLQUFLO0VBQzFCLE9BQU8sQ0FBQyxNQUFNLEVBQUUsY0FBYyxDQUFDO0FBQ2pDLENBQUM7QUFFRCxNQUFNLGFBQWEsR0FBRyxDQUFDLGdCQUFnQixFQUFFLEtBQUssS0FDNUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDO0FBRXhFLE1BQU0sU0FBUyxHQUFJLEtBQUssSUFBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztBQUUvRCxNQUFNLFFBQVEsR0FBSSxLQUFLLElBQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsS0FBTTtBQUVuRSxNQUFNLGtCQUFrQixHQUFJLEVBQUUsSUFBSztFQUNqQyxNQUFNLGdCQUFnQixHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTztFQUMzQyxNQUFNLFdBQVcsR0FBRyxnQkFBZ0IsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLFdBQVc7RUFDOUQsTUFBTTtJQUFFO0VBQU0sQ0FBQyxHQUFHLEVBQUU7RUFDcEIsTUFBTSxHQUFHLEdBQUcsV0FBVyxDQUFDLE1BQU07RUFDOUIsSUFBSSxRQUFRLEdBQUcsRUFBRTtFQUNqQixJQUFJLENBQUM7RUFDTCxJQUFJLFNBQVM7RUFFYixNQUFNLFdBQVcsR0FBRyxhQUFhLENBQUMsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDO0VBRTFELEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRTtJQUMxQyxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQy9DLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDOUMsTUFBTSxhQUFhLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQy9ELE1BQU0sYUFBYSxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUUvRCxJQUNHLGFBQWEsSUFBSSxLQUFLLElBQ3RCLGdCQUFnQixJQUFJLGFBQWEsSUFBSSxLQUFNLEVBQzVDO01BQ0EsUUFBUSxJQUFJLFdBQVcsQ0FBQyxTQUFTLENBQUM7TUFDbEMsU0FBUyxJQUFJLENBQUM7SUFDaEIsQ0FBQyxNQUFNLElBQ0osQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLEtBQUssSUFBSSxhQUFhLElBQzVDLGdCQUFnQixLQUNiLGFBQWEsSUFBSSxDQUFDLEtBQUssSUFBTSxhQUFhLElBQUksQ0FBQyxLQUFNLENBQUUsRUFDM0Q7TUFDQSxPQUFPLFFBQVE7SUFDakIsQ0FBQyxNQUFNO01BQ0wsUUFBUSxJQUFJLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFDNUI7SUFDQTtJQUNBLElBQUksV0FBVyxDQUFDLFNBQVMsQ0FBQyxLQUFLLFNBQVMsRUFBRTtNQUN4QztJQUNGO0VBQ0Y7RUFFQSxPQUFPLFFBQVE7QUFDakIsQ0FBQztBQUVELE1BQU0saUJBQWlCLEdBQUksRUFBRSxJQUFLO0VBQ2hDLE1BQU0sT0FBTyxHQUFHLEVBQUU7RUFDbEIsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUM7RUFDckMsT0FBTyxDQUFDLEtBQUssR0FBRyxrQkFBa0IsQ0FBQyxPQUFPLENBQUM7RUFFM0MsTUFBTSxPQUFPLEdBQUcsY0FBYyxDQUFDLEVBQUUsQ0FBQztFQUNsQyxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUM7RUFDbkQsTUFBTSxDQUFDLFdBQVcsR0FBRyxFQUFFO0VBQ3ZCLE1BQU0sQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNoRCxDQUFDO0FBRUQsTUFBTSxlQUFlLEdBQUc7RUFDdEIsS0FBSyxFQUFFO0lBQ0wsQ0FBQyxNQUFNLElBQUk7TUFDVCxpQkFBaUIsQ0FBQyxJQUFJLENBQUM7SUFDekI7RUFDRjtBQUNGLENBQUM7QUFFRCxNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsZUFBZSxFQUFFO0VBQzFDLElBQUksQ0FBQyxJQUFJLEVBQUU7SUFDVCxlQUFlLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBRSxXQUFXLElBQUs7TUFDckQsc0JBQXNCLENBQUMsV0FBVyxDQUFDO0lBQ3JDLENBQUMsQ0FBQztFQUNKO0FBQ0YsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE9BQU8sR0FBRyxTQUFTOzs7OztBQzVIMUIsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFDO0FBQ3pDLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyx3Q0FBd0MsQ0FBQztBQUNsRSxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsc0NBQXNDLENBQUM7QUFDOUQsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLDBDQUEwQyxDQUFDO0FBQ3JFLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQywrQkFBK0IsQ0FBQztBQUUxRCxNQUFNO0VBQUU7QUFBTSxDQUFDLEdBQUcsT0FBTyxDQUFDLGdDQUFnQyxDQUFDO0FBQzNELE1BQU07RUFBRSxNQUFNLEVBQUU7QUFBTyxDQUFDLEdBQUcsT0FBTyxDQUFDLGdDQUFnQyxDQUFDO0FBRXBFLE1BQU0sSUFBSSxHQUFHLE1BQU07QUFDbkIsTUFBTSxRQUFRLEdBQUcsSUFBSSxNQUFNLFdBQVc7QUFDdEMsTUFBTSxZQUFZLEdBQUcsSUFBSSxNQUFNLG9CQUFvQjtBQUNuRCxNQUFNLGdCQUFnQixHQUFHLElBQUksTUFBTSxvQkFBb0I7QUFDdkQsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLE1BQU0seUJBQXlCO0FBQ2pFLE1BQU0sZ0JBQWdCLEdBQUcsVUFBVSxNQUFNLGlCQUFpQjtBQUMxRCxNQUFNLGNBQWMsR0FBRyxHQUFHLFFBQVEsSUFBSTtBQUV0QyxJQUFJLGdCQUFnQjtBQUNwQixJQUFJLGNBQWM7QUFFbEIsTUFBTSxlQUFlLEdBQUcsQ0FBQSxLQUN0QixnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLEtBQUssQ0FBQztBQUUvRCxNQUFNLDBCQUEwQixHQUFHLENBQUEsS0FBTTtFQUN2QyxJQUFJLENBQUMsY0FBYyxFQUFFO0lBQ25CO0VBQ0Y7RUFFQSxNQUFNLENBQUMsY0FBYyxFQUFFLEtBQUssQ0FBQztFQUM3QixjQUFjLEdBQUcsSUFBSTtBQUN2QixDQUFDO0FBRUQsTUFBTSxtQkFBbUIsR0FBSSxLQUFLLElBQUs7RUFDckMsTUFBTSxrQkFBa0IsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQztFQUV0RSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsRUFBRTtJQUMzQyxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztFQUM1RDtBQUNGLENBQUM7QUFFRCxNQUFNLFlBQVksR0FBSSxLQUFLLElBQUs7RUFDOUIsMEJBQTBCLENBQUMsQ0FBQztFQUM1QixtQkFBbUIsQ0FBQyxLQUFLLENBQUM7QUFDNUIsQ0FBQztBQUVELGdCQUFnQixHQUFHLFFBQVEsQ0FDekI7RUFDRSxDQUFDLEtBQUssR0FBRztJQUNQLENBQUMsZ0JBQWdCLElBQUk7TUFDbkIsSUFBSSxjQUFjLEtBQUssSUFBSSxFQUFFO1FBQzNCLDBCQUEwQixDQUFDLENBQUM7TUFDOUI7TUFDQSxJQUFJLGNBQWMsS0FBSyxJQUFJLEVBQUU7UUFDM0IsMEJBQTBCLENBQUMsQ0FBQztRQUM1QixPQUFPLEtBQUs7TUFDZDtNQUNBLElBQUksQ0FBQyxjQUFjLEVBQUU7UUFDbkIsY0FBYyxHQUFHLElBQUk7UUFDckIsTUFBTSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUM7TUFDOUI7TUFFQSxPQUFPLEtBQUs7SUFDZCxDQUFDO0lBQ0QsQ0FBQyxJQUFJLEdBQUcsMEJBQTBCO0lBQ2xDLENBQUMsY0FBYyxJQUFJO01BQ2pCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQztNQUU3QyxJQUFJLEdBQUcsRUFBRTtRQUNQLFNBQVMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFFLEdBQUcsSUFBSyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO01BQ2pFO0lBQ0Y7RUFDRixDQUFDO0VBQ0QsT0FBTyxFQUFFO0lBQ1AsQ0FBQyxnQkFBZ0IsR0FBRyxNQUFNLENBQUM7TUFBRSxNQUFNLEVBQUU7SUFBYSxDQUFDO0VBQ3JELENBQUM7RUFDRCxRQUFRLEVBQUU7SUFDUixDQUFDLGdCQUFnQixFQUFFLEtBQUssRUFBRTtNQUN4QixNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQztNQUV2RCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEVBQUU7UUFDM0MsMEJBQTBCLENBQUMsQ0FBQztNQUM5QjtJQUNGO0VBQ0Y7QUFDRixDQUFDLEVBQ0Q7RUFDRSxJQUFJLENBQUMsSUFBSSxFQUFFO0lBQ1QsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsR0FDNUMsSUFBSSxHQUNKLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDO0lBRXBDLElBQUksYUFBYSxFQUFFO01BQ2pCLGdCQUFnQixDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUMsYUFBYSxFQUFFO1FBQ3BELE1BQU0sRUFBRTtNQUNWLENBQUMsQ0FBQztJQUNKO0VBQ0YsQ0FBQztFQUNELFFBQVEsQ0FBQSxFQUFHO0lBQ1QsY0FBYyxHQUFHLEtBQUs7RUFDeEIsQ0FBQztFQUNELFNBQVMsRUFBRTtBQUNiLENBQ0YsQ0FBQztBQUVELE1BQU0sQ0FBQyxPQUFPLEdBQUcsZ0JBQWdCOzs7OztBQ3hHakMsTUFBTSxlQUFlLEdBQUcsT0FBTyxDQUFDLGlEQUFpRCxDQUFDO0FBQ2xGLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQywwQ0FBMEMsQ0FBQztBQUNyRSxNQUFNLGNBQWMsR0FBRyxPQUFPLENBQUMsK0NBQStDLENBQUM7QUFDL0UsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLHdDQUF3QyxDQUFDO0FBRWxFLE1BQU07RUFBRSxNQUFNLEVBQUU7QUFBTyxDQUFDLEdBQUcsT0FBTyxDQUFDLGdDQUFnQyxDQUFDO0FBRXBFLE1BQU0sZUFBZSxHQUFHLEdBQUcsTUFBTSxRQUFRO0FBQ3pDLE1BQU0saUJBQWlCLEdBQUcsR0FBRyxlQUFlLFVBQVU7QUFDdEQsTUFBTSxpQkFBaUIsR0FBRyxHQUFHLGVBQWUsVUFBVTtBQUN0RCxNQUFNLGdCQUFnQixHQUFHLGlCQUFpQjtBQUMxQyxNQUFNLGdCQUFnQixHQUFHLGtCQUFrQjtBQUMzQyxNQUFNLHNCQUFzQixHQUFHLG1CQUFtQjtBQUNsRCxNQUFNLDBCQUEwQixHQUFHLG1CQUFtQjtBQUN0RCxNQUFNLEtBQUssR0FBRyxJQUFJLGVBQWUsRUFBRTtBQUNuQyxNQUFNLGFBQWEsR0FBRyxJQUFJLGlCQUFpQixnQkFBZ0I7QUFDM0QsTUFBTSxZQUFZLEdBQUcsR0FBRyxpQkFBaUIsTUFBTSxnQkFBZ0IsR0FBRztBQUNsRSxNQUFNLE9BQU8sR0FBRyxLQUFLLGdCQUFnQixrQkFBa0I7QUFDdkQsTUFBTSxPQUFPLEdBQUcsR0FBRyxZQUFZLE1BQU0saUJBQWlCLFNBQVMsc0JBQXNCLElBQUk7QUFDekYsTUFBTSxVQUFVLEdBQUcsaUJBQWlCLGlCQUFpQixzQkFBc0I7QUFDM0UsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLDBCQUEwQixHQUFHO0FBRTNELE1BQU0sWUFBWSxHQUFHLHNCQUFzQjtBQUMzQyxNQUFNLG1CQUFtQixHQUFHLGlCQUFpQjtBQUM3QyxNQUFNLGFBQWEsR0FBRyxZQUFZO0FBQ2xDLE1BQU0sWUFBWSxHQUFHLFdBQVc7QUFFaEMsSUFBSSxLQUFLO0FBQ1QsSUFBSSxvQkFBb0I7QUFDeEIsSUFBSSxzQkFBc0I7QUFFMUIsTUFBTSxRQUFRLEdBQUcsQ0FBQSxLQUFNLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUM7QUFDckUsTUFBTSxlQUFlLEdBQUcsY0FBYyxDQUFDLENBQUM7O0FBRXhDO0FBQ0E7QUFDQTtBQUNBLE1BQU0sV0FBVyxHQUFHLENBQUEsS0FBTTtFQUN4QixLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDO0FBQ3RDLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLHVCQUF1QixHQUFHLENBQUEsS0FBTTtFQUNwQyxvQkFBb0IsR0FBRyxNQUFNLENBQzFCLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FDL0IsZ0JBQWdCLENBQUMsZUFBZSxDQUFDO0VBQ3BDLHNCQUFzQixHQUFHLEdBQ3ZCLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUNwRCxRQUFRLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQzdDO0FBQ04sQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTLFdBQVcsQ0FBQyxLQUFLLEVBQUU7RUFDMUIsSUFBSSxjQUFjO0VBQ2xCLElBQUksY0FBYyxHQUFHLEtBQUssQ0FBQyxNQUFNO0VBQ2pDLE1BQU07SUFBRTtFQUFLLENBQUMsR0FBRyxRQUFRO0VBQ3pCLE1BQU0sVUFBVSxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7RUFDOUIsTUFBTSxPQUFPLEdBQUcsY0FBYyxHQUMxQixjQUFjLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxHQUM1QyxRQUFRLENBQUMsYUFBYSxDQUFDLElBQUksaUJBQWlCLElBQUksYUFBYSxFQUFFLENBQUM7RUFDcEUsTUFBTSxXQUFXLEdBQUcsVUFBVSxHQUMxQixRQUFRLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxHQUNoQyxRQUFRLENBQUMsYUFBYSxDQUFDLElBQUksaUJBQWlCLElBQUksYUFBYSxFQUFFLENBQUM7O0VBRXBFO0VBQ0EsSUFBSSxDQUFDLFdBQVcsRUFBRTtJQUNoQixPQUFPLEtBQUs7RUFDZDtFQUVBLE1BQU0sV0FBVyxHQUFHLFdBQVcsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLEdBQ3hELFdBQVcsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLEdBQ3hDLFdBQVcsQ0FBQyxhQUFhLENBQUMsSUFBSSxlQUFlLEVBQUUsQ0FBQztFQUNwRCxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUN6QyxXQUFXLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FDeEMsQ0FBQztFQUNELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDO0VBQzlDLE1BQU0sZUFBZSxHQUFHLFdBQVcsQ0FBQyxZQUFZLENBQUMsc0JBQXNCLENBQUM7O0VBRXhFO0VBQ0E7RUFDQSxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssU0FBUyxJQUFJLFdBQVcsS0FBSyxJQUFJLEVBQUU7SUFDcEQsY0FBYyxHQUFHLFdBQVcsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDO0VBQzFEOztFQUVBO0VBQ0EsSUFBSSxjQUFjLEVBQUU7SUFDbEI7SUFDQTtJQUNBO0lBQ0EsSUFBSSxjQUFjLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUFDLEVBQUU7TUFDakQsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRTtRQUNwQyxjQUFjLEdBQUcsU0FBUyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxHQUFHLE1BQU0sRUFBRTtRQUN2RSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxjQUFjLENBQUM7TUFDekMsQ0FBQyxNQUFNO1FBQ0wsY0FBYyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDO01BQzFDO01BQ0EsV0FBVyxDQUFDLFlBQVksQ0FBQyxhQUFhLEVBQUUsY0FBYyxDQUFDO0lBQ3pEOztJQUVBO0lBQ0E7SUFDQTtJQUNBLElBQUksY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLGVBQWUsRUFBRSxDQUFDLEVBQUU7TUFDakQsSUFDRSxjQUFjLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUFDLElBQzdDLGNBQWMsQ0FBQyxPQUFPLENBQUMsSUFBSSxnQkFBZ0IsR0FBRyxDQUFDLEVBQy9DO1FBQ0E7TUFBQSxDQUNELE1BQU07UUFDTCxPQUFPLEtBQUs7TUFDZDtJQUNGO0VBQ0Y7RUFFQSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsVUFBVSxDQUFDO0VBQy9DLFdBQVcsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxVQUFVLENBQUM7RUFDdkQsV0FBVyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUMsVUFBVSxDQUFDOztFQUV2RDtFQUNBO0VBQ0E7RUFDQSxJQUFJLGVBQWUsRUFBRTtJQUNuQixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsRUFBRSxVQUFVLENBQUM7RUFDeEQ7O0VBRUE7RUFDQTtFQUNBLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLEtBQUssc0JBQXNCLEVBQUU7SUFDdEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDO0VBQzVDLENBQUMsTUFBTTtJQUNMLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxHQUFHLHNCQUFzQjtFQUNsRDs7RUFFQTtFQUNBLElBQUksVUFBVSxJQUFJLFdBQVcsRUFBRTtJQUM3Qjs7SUFFQTtJQUNBO0lBQ0EsSUFBSSxlQUFlLEVBQUU7TUFDbkIsS0FBSyxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUMsV0FBVyxDQUFDO0lBQzFDLENBQUMsTUFBTTtNQUNMLEtBQUssQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDLFdBQVcsRUFBRTtRQUN2QyxNQUFNLEVBQUU7TUFDVixDQUFDLENBQUM7SUFDSjs7SUFFQTtJQUNBLEtBQUssQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQztJQUNsQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7O0lBRW5CO0lBQ0EsUUFBUSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxDQUFDLE9BQU8sQ0FBRSxRQUFRLElBQUs7TUFDMUQsUUFBUSxDQUFDLFlBQVksQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDO01BQzVDLFFBQVEsQ0FBQyxZQUFZLENBQUMsMEJBQTBCLEVBQUUsRUFBRSxDQUFDO0lBQ3ZELENBQUMsQ0FBQztFQUNKLENBQUMsTUFBTSxJQUFJLENBQUMsVUFBVSxJQUFJLFVBQVUsSUFBSSxXQUFXLEVBQUU7SUFDbkQ7SUFDQTtJQUNBLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLE9BQU8sQ0FBRSxRQUFRLElBQUs7TUFDakUsUUFBUSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUM7TUFDdkMsUUFBUSxDQUFDLGVBQWUsQ0FBQywwQkFBMEIsQ0FBQztJQUN0RCxDQUFDLENBQUM7O0lBRUY7SUFDQSxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkIsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDO0VBQ3BDO0VBRUEsT0FBTyxVQUFVO0FBQ25COztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxpQkFBaUIsR0FBSSxhQUFhLElBQUs7RUFDM0MsTUFBTSxPQUFPLEdBQUcsYUFBYSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUM7RUFDaEQsTUFBTSwyQkFBMkIsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQztFQUNqRSxNQUFNLGVBQWUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUM7RUFFNUQsdUJBQXVCLENBQUMsQ0FBQztFQUV6QiwyQkFBMkIsQ0FBQyxZQUFZLENBQUMsc0JBQXNCLEVBQUUsT0FBTyxDQUFDO0VBQ3pFLDJCQUEyQixDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsTUFBTTtFQUNsRCwyQkFBMkIsQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQztFQUUvRCxlQUFlLENBQUMsT0FBTyxDQUFFLFNBQVMsSUFBSztJQUNyQywyQkFBMkIsQ0FBQyxZQUFZLENBQ3RDLGlCQUFpQixTQUFTLENBQUMsSUFBSSxFQUFFLEVBQ2pDLFNBQVMsQ0FBQyxLQUNaLENBQUM7RUFDSCxDQUFDLENBQUM7RUFFRixPQUFPLDJCQUEyQjtBQUNwQyxDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLGFBQWEsRUFBRSxtQkFBbUIsS0FBSztFQUNqRSxNQUFNLE9BQU8sR0FBRyxhQUFhLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQztFQUNoRCxNQUFNLGNBQWMsR0FBRyxhQUFhLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDO0VBQ3BFLE1BQU0sZUFBZSxHQUFHLGFBQWEsQ0FBQyxZQUFZLENBQUMsa0JBQWtCLENBQUM7RUFDdEUsTUFBTSxlQUFlLEdBQUcsYUFBYSxDQUFDLFlBQVksQ0FBQyxzQkFBc0IsQ0FBQztFQUUxRSxJQUFJLENBQUMsY0FBYyxFQUNqQixNQUFNLElBQUksS0FBSyxDQUFDLEdBQUcsT0FBTyx1Q0FBdUMsQ0FBQztFQUVwRSxJQUFJLENBQUMsZUFBZSxFQUNsQixNQUFNLElBQUksS0FBSyxDQUFDLEdBQUcsT0FBTyx1Q0FBdUMsQ0FBQzs7RUFFcEU7RUFDQSxtQkFBbUIsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQztFQUNsRCxtQkFBbUIsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQztFQUMvQyxtQkFBbUIsQ0FBQyxZQUFZLENBQUMsaUJBQWlCLEVBQUUsY0FBYyxDQUFDO0VBQ25FLG1CQUFtQixDQUFDLFlBQVksQ0FBQyxrQkFBa0IsRUFBRSxlQUFlLENBQUM7RUFFckUsSUFBSSxlQUFlLEVBQUU7SUFDbkIsbUJBQW1CLENBQUMsWUFBWSxDQUFDLHNCQUFzQixFQUFFLGVBQWUsQ0FBQztFQUMzRTs7RUFFQTtFQUNBLE1BQU0sWUFBWSxHQUFHLG1CQUFtQixDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQztFQUNsRSxZQUFZLENBQUMsT0FBTyxDQUFFLEVBQUUsSUFBSztJQUMzQixFQUFFLENBQUMsWUFBWSxDQUFDLGVBQWUsRUFBRSxPQUFPLENBQUM7RUFDM0MsQ0FBQyxDQUFDOztFQUVGO0VBQ0EsYUFBYSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUM7RUFDbkMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQztFQUNoRCxhQUFhLENBQUMsZUFBZSxDQUFDLGtCQUFrQixDQUFDO0VBQ2pELGFBQWEsQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQztFQUU1QyxPQUFPLG1CQUFtQjtBQUM1QixDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLFlBQVksR0FBSSxhQUFhLElBQUs7RUFDdEMsTUFBTSxZQUFZLEdBQUcsYUFBYTtFQUNsQyxNQUFNLG1CQUFtQixHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDO0VBQ3pELE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDOztFQUVoRDtFQUNBLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLGlCQUFpQixDQUFDO0VBQ2xFLFVBQVUsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDOztFQUUzQztFQUNBLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUM7RUFDdEMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUM7O0VBRS9CO0VBQ0Esa0JBQWtCLENBQUMsWUFBWSxFQUFFLG1CQUFtQixDQUFDO0VBRXJELE9BQU8sbUJBQW1CO0FBQzVCLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sVUFBVSxHQUFJLGFBQWEsSUFBSztFQUNwQyxNQUFNLE9BQU8sR0FBRyxhQUFhLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQztFQUVoRCxJQUFJLENBQUMsT0FBTyxFQUFFO0lBQ1osTUFBTSxJQUFJLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQztFQUMvQzs7RUFFQTtFQUNBLE1BQU0sMkJBQTJCLEdBQUcsaUJBQWlCLENBQUMsYUFBYSxDQUFDO0VBQ3BFLGFBQWEsQ0FBQyxLQUFLLENBQUMsMkJBQTJCLENBQUM7O0VBRWhEO0VBQ0EsTUFBTSxjQUFjLEdBQUcsWUFBWSxDQUFDLGFBQWEsQ0FBQzs7RUFFbEQ7RUFDQTtFQUNBO0VBQ0EsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDO0FBQzNDLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sWUFBWSxHQUFJLGFBQWEsSUFBSztFQUN0QyxNQUFNLFlBQVksR0FBRyxhQUFhO0VBQ2xDLE1BQU0sbUJBQW1CLEdBQUcsWUFBWSxDQUFDLGFBQWEsQ0FBQyxhQUFhO0VBQ3BFLE1BQU0sT0FBTyxHQUFHLG1CQUFtQixDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUM7O0VBRXREO0VBQ0EsSUFBSSxDQUFDLE9BQU8sRUFBRTtJQUNaO0VBQ0Y7RUFFQSxNQUFNLDJCQUEyQixHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQ3hELDBCQUEwQixPQUFPLElBQ25DLENBQUM7RUFFRCxJQUFJLDJCQUEyQixFQUFFO0lBQy9CLE1BQU0sZUFBZSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsMkJBQTJCLENBQUMsVUFBVSxDQUFDO0lBQzFFLGVBQWUsQ0FBQyxPQUFPLENBQUUsU0FBUyxJQUFLO01BQ3JDLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsRUFBRTtRQUMvQztRQUNBLFlBQVksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUUsU0FBUyxDQUFDLEtBQUssQ0FBQztNQUN2RTtJQUNGLENBQUMsQ0FBQztJQUVGLDJCQUEyQixDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUM7SUFDL0MsMkJBQTJCLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FDbkQsMkJBQ0YsQ0FBQztFQUNIO0VBRUEsbUJBQW1CLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQztBQUNwRSxDQUFDO0FBRUQsS0FBSyxHQUFHLFFBQVEsQ0FDZCxDQUFDLENBQUMsRUFDRjtFQUNFLElBQUksQ0FBQyxJQUFJLEVBQUU7SUFDVCxlQUFlLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBRSxXQUFXLElBQUs7TUFDcEQsTUFBTSxPQUFPLEdBQUcsV0FBVyxDQUFDLEVBQUU7TUFFOUIsVUFBVSxDQUFDLFdBQVcsQ0FBQzs7TUFFdkI7TUFDQSxlQUFlLENBQUMsbUJBQW1CLE9BQU8sSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FDOUQsWUFBWSxJQUFLO1FBQ2hCO1FBQ0EsSUFBSSxZQUFZLENBQUMsUUFBUSxLQUFLLEdBQUcsRUFBRTtVQUNqQztVQUNBLFlBQVksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQzs7VUFFM0M7VUFDQSxZQUFZLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFHLENBQUMsSUFBSyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztRQUNuRTs7UUFFQTtRQUNBO1FBQ0E7UUFDQTtRQUNBOztRQUVBLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDO01BQ3JELENBQ0YsQ0FBQztJQUNILENBQUMsQ0FBQztFQUNKLENBQUM7RUFDRCxRQUFRLENBQUMsSUFBSSxFQUFFO0lBQ2IsZUFBZSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUUsV0FBVyxJQUFLO01BQ3BELE1BQU0sT0FBTyxHQUFHLFdBQVcsQ0FBQyxFQUFFO01BQzlCLFlBQVksQ0FBQyxXQUFXLENBQUM7TUFFekIsZUFBZSxDQUFDLG1CQUFtQixPQUFPLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQzlELFlBQVksSUFDWCxZQUFZLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FDekQsQ0FBQztJQUNILENBQUMsQ0FBQztFQUNKLENBQUM7RUFDRCxTQUFTLEVBQUUsSUFBSTtFQUNmO0FBQ0YsQ0FDRixDQUFDO0FBRUQsTUFBTSxDQUFDLE9BQU8sR0FBRyxLQUFLOzs7OztBQ3RZdEIsTUFBTSxlQUFlLEdBQUcsT0FBTyxDQUFDLGlEQUFpRCxDQUFDO0FBQ2xGLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyx3Q0FBd0MsQ0FBQztBQUVsRSxNQUFNO0VBQUUsTUFBTSxFQUFFO0FBQU8sQ0FBQyxHQUFHLE9BQU8sQ0FBQyxnQ0FBZ0MsQ0FBQztBQUVwRSxNQUFNLGVBQWUsR0FBRyxHQUFHLE1BQU0sUUFBUTtBQUN6QyxNQUFNLEtBQUssR0FBRyxJQUFJLGVBQWUsRUFBRTs7QUFFbkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sYUFBYSxHQUFJLFdBQVcsSUFBSztFQUNyQyxNQUFNLFdBQVcsR0FBRyxXQUFXO0VBQy9CLE1BQU0sV0FBVyxHQUFHLElBQUk7RUFDeEIsTUFBTSxZQUFZLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQyxlQUFlO0VBQ3hELE1BQU0sSUFBSSxHQUFHLFlBQVksSUFBSSxXQUFXO0VBQ3hDLE1BQU0sSUFBSSxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsUUFBUTtFQUN6QyxNQUFNLEdBQUcsR0FBRyxXQUFXLENBQUMsS0FBSztFQUM3QjtFQUNBO0VBQ0EsTUFBTSxHQUFHLEdBQUcsV0FBVyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHO0VBRWxELElBQUksT0FBTztFQUVYLElBQUksSUFBSSxFQUFFO0lBQ1IsT0FBTyxHQUFHLEdBQUcsR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFO0VBQzNDLENBQUMsTUFBTTtJQUNMLE9BQU8sR0FBRyxHQUFHLEdBQUcsSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFO0VBQ25DO0VBRUEsV0FBVyxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsRUFBRSxPQUFPLENBQUM7QUFDckQsQ0FBQztBQUVELE1BQU0sV0FBVyxHQUFHO0VBQ2xCLE1BQU0sRUFBRTtJQUNOLENBQUMsS0FBSyxJQUFJO01BQ1IsYUFBYSxDQUFDLElBQUksQ0FBQztJQUNyQjtFQUNGO0FBQ0YsQ0FBQztBQUVELE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxXQUFXLEVBQUU7RUFDbEMsSUFBSSxDQUFDLElBQUksRUFBRTtJQUNULGVBQWUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFFLFdBQVcsSUFBSztNQUNwRCxhQUFhLENBQUMsV0FBVyxDQUFDO0lBQzVCLENBQUMsQ0FBQztFQUNKLENBQUM7RUFDRDtBQUNGLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxPQUFPLEdBQUcsS0FBSzs7Ozs7QUNoRXRCLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQztBQUN6QyxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsd0NBQXdDLENBQUM7QUFDbEUsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLHNDQUFzQyxDQUFDO0FBRTlELE1BQU07RUFBRTtBQUFNLENBQUMsR0FBRyxPQUFPLENBQUMsZ0NBQWdDLENBQUM7QUFFM0QsTUFBTSxNQUFNLEdBQUcsbUJBQW1CO0FBQ2xDLE1BQU0sSUFBSSxHQUFHLGlCQUFpQjtBQUM5QixNQUFNLEtBQUssR0FBRyxlQUFlO0FBQzdCLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxDQUFDOztBQUUxQixJQUFJLFVBQVU7QUFFZCxNQUFNLE9BQU8sR0FBSSxNQUFNLElBQUs7RUFDMUIsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7RUFDdkMsT0FBTyxPQUFPLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQztBQUM3RSxDQUFDO0FBRUQsTUFBTSxZQUFZLEdBQUcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxLQUFLO0VBQ3ZDLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUM7RUFFNUIsSUFBSSxDQUFDLElBQUksRUFBRTtJQUNULE1BQU0sSUFBSSxLQUFLLENBQUMsTUFBTSxJQUFJLCtCQUErQixPQUFPLEdBQUcsQ0FBQztFQUN0RTs7RUFFQTtFQUNBLE1BQU0sQ0FBQyxNQUFNLEdBQUcsTUFBTTtFQUN0QixJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsTUFBTTtFQUNyQjs7RUFFQSxJQUFJLENBQUMsTUFBTSxFQUFFO0lBQ1g7RUFDRjtFQUVBLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDO0VBRXZDLElBQUksS0FBSyxFQUFFO0lBQ1QsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0VBQ2Y7RUFDQTtFQUNBO0VBQ0EsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNO0lBQ2xDLElBQUksVUFBVSxFQUFFO01BQ2QsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBQy9CO0lBRUEsUUFBUSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDO0VBQ3BELENBQUMsQ0FBQzs7RUFFRjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsVUFBVSxDQUFDLE1BQU07SUFDZixRQUFRLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxRQUFRLENBQUM7RUFDakQsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUNQLENBQUM7QUFFRCxTQUFTLFVBQVUsQ0FBQSxFQUFHO0VBQ3BCLFlBQVksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDO0VBQ3hCLFVBQVUsR0FBRyxJQUFJO0FBQ25CO0FBRUEsU0FBUyxVQUFVLENBQUEsRUFBRztFQUNwQixZQUFZLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQztFQUN6QixVQUFVLEdBQUcsU0FBUztBQUN4QjtBQUVBLE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FDckI7RUFDRSxDQUFDLEtBQUssR0FBRztJQUNQLENBQUMsTUFBTSxHQUFHO0VBQ1o7QUFDRixDQUFDLEVBQ0Q7RUFDRSxJQUFJLENBQUMsTUFBTSxFQUFFO0lBQ1gsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUUsTUFBTSxJQUFLO01BQ3pDLFlBQVksQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDO0lBQzdCLENBQUMsQ0FBQztFQUNKLENBQUM7RUFDRCxRQUFRLENBQUEsRUFBRztJQUNUO0lBQ0EsVUFBVSxHQUFHLFNBQVM7RUFDeEI7QUFDRixDQUNGLENBQUM7QUFFRCxNQUFNLENBQUMsT0FBTyxHQUFHLE1BQU07Ozs7O0FDeEZ2QixNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsZUFBZSxDQUFDO0FBQ3JDLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyx3Q0FBd0MsQ0FBQztBQUNsRSxNQUFNO0VBQUU7QUFBTSxDQUFDLEdBQUcsT0FBTyxDQUFDLGdDQUFnQyxDQUFDO0FBQzNELE1BQU07RUFBRSxNQUFNLEVBQUU7QUFBTyxDQUFDLEdBQUcsT0FBTyxDQUFDLGdDQUFnQyxDQUFDO0FBRXBFLE1BQU0sSUFBSSxHQUFHLElBQUksTUFBTSx5QkFBeUIsTUFBTSxvQ0FBb0M7QUFDMUYsTUFBTSxXQUFXLEdBQUcsY0FBYztBQUVsQyxTQUFTLFdBQVcsQ0FBQSxFQUFHO0VBQ3JCO0VBQ0E7RUFDQSxNQUFNLEVBQUUsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztFQUMvQyxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsY0FBYyxDQUNwQyxFQUFFLEtBQUssR0FBRyxHQUFHLFdBQVcsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FDdkMsQ0FBQztFQUVELElBQUksTUFBTSxFQUFFO0lBQ1YsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsR0FBRztJQUMxQixNQUFNLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDbEMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2QsTUFBTSxDQUFDLGdCQUFnQixDQUNyQixNQUFNLEVBQ04sSUFBSSxDQUFDLE1BQU07TUFDVCxNQUFNLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNyQyxDQUFDLENBQ0gsQ0FBQztFQUNILENBQUMsTUFBTTtJQUNMO0VBQUE7QUFFSjtBQUVBLE1BQU0sQ0FBQyxPQUFPLEdBQUcsUUFBUSxDQUFDO0VBQ3hCLENBQUMsS0FBSyxHQUFHO0lBQ1AsQ0FBQyxJQUFJLEdBQUc7RUFDVjtBQUNGLENBQUMsQ0FBQzs7Ozs7QUNuQ0YsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLHNDQUFzQyxDQUFDO0FBQzlELE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyx3Q0FBd0MsQ0FBQztBQUNsRSxNQUFNO0VBQUU7QUFBTSxDQUFDLEdBQUcsT0FBTyxDQUFDLGdDQUFnQyxDQUFDO0FBQzNELE1BQU07RUFBRSxNQUFNLEVBQUU7QUFBTyxDQUFDLEdBQUcsT0FBTyxDQUFDLGdDQUFnQyxDQUFDO0FBQ3BFLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyx5Q0FBeUMsQ0FBQztBQUVwRSxNQUFNLEtBQUssR0FBRyxJQUFJLE1BQU0sUUFBUTtBQUNoQyxNQUFNLE1BQU0sR0FBRyxXQUFXO0FBQzFCLE1BQU0sU0FBUyxHQUFHLFdBQVc7QUFDN0IsTUFBTSxVQUFVLEdBQUcsWUFBWTtBQUMvQixNQUFNLGFBQWEsR0FBRyxpQkFBaUI7QUFDdkMsTUFBTSxpQkFBaUIsR0FBRyxHQUFHLE1BQU0sd0JBQXdCO0FBQzNELE1BQU0sV0FBVyxHQUFHLElBQUksaUJBQWlCLEVBQUU7QUFDM0MsTUFBTSxlQUFlLEdBQUcsbUJBQW1CO0FBQzNDLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxNQUFNLGlEQUFpRDs7QUFFdkY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sWUFBWSxHQUFHLENBQUMsRUFBRSxFQUFFLEtBQUssS0FDN0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLElBQzlDLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsU0FBUyxJQUM1QixFQUFFLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLFdBQVc7O0FBRWhDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sZUFBZSxHQUFHLENBQUMsS0FBSyxFQUFFLFdBQVcsS0FBSyxDQUFDLE9BQU8sRUFBRSxPQUFPLEtBQUs7RUFDcEU7RUFDQSxNQUFNLE1BQU0sR0FBRyxZQUFZLENBQUMsV0FBVyxHQUFHLE9BQU8sR0FBRyxPQUFPLEVBQUUsS0FBSyxDQUFDO0VBQ25FLE1BQU0sTUFBTSxHQUFHLFlBQVksQ0FBQyxXQUFXLEdBQUcsT0FBTyxHQUFHLE9BQU8sRUFBRSxLQUFLLENBQUM7O0VBRW5FO0VBQ0EsSUFDRSxNQUFNLElBQ04sTUFBTSxJQUNOLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsSUFDN0IsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUM3QjtJQUNBLE9BQU8sTUFBTSxHQUFHLE1BQU07RUFDeEI7RUFDQTtFQUNBLE9BQU8sTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsUUFBUSxFQUFFO0lBQ2pFLE9BQU8sRUFBRSxJQUFJO0lBQ2IsaUJBQWlCLEVBQUU7RUFDckIsQ0FBQyxDQUFDO0FBQ0osQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLGdCQUFnQixHQUFJLEtBQUssSUFBSztFQUNsQyxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsZUFBZSxFQUFFLEtBQUssQ0FBQztFQUM5QyxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUUsTUFBTSxJQUFLLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssS0FBSyxDQUFDO0FBQ3BFLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sZUFBZSxHQUFJLE1BQU0sSUFBSztFQUNsQyxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsU0FBUztFQUNuQyxNQUFNLGVBQWUsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxLQUFLLFNBQVM7RUFDakUsTUFBTSxRQUFRLEdBQ1osTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsS0FBSyxTQUFTLElBQ3pDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEtBQUssVUFBVSxJQUMxQyxLQUFLO0VBQ1AsTUFBTSxXQUFXLEdBQUcsR0FBRyxVQUFVLGdDQUMvQixRQUFRLEdBQ0osR0FBRyxlQUFlLEdBQUcsVUFBVSxTQUFTLEVBQUUsR0FBRyxVQUFVLFVBQVUsRUFBRSxFQUFFLEdBQ3JFLFVBQVUsRUFDZDtFQUNGLE1BQU0saUJBQWlCLEdBQUcsb0JBQW9CLFVBQVUsT0FDdEQsZUFBZSxHQUFHLFVBQVUsR0FBRyxTQUFTLFNBQ2pDO0VBQ1QsTUFBTSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsV0FBVyxDQUFDO0VBQzlDLE1BQU0sQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxpQkFBaUIsQ0FBQztBQUM1RSxDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxTQUFTLEdBQUksTUFBTSxJQUFLO0VBQzVCLE1BQU0sQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDO0VBQzlCLGVBQWUsQ0FBQyxNQUFNLENBQUM7QUFDekIsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLFFBQVEsR0FBRyxDQUFDLE1BQU0sRUFBRSxXQUFXLEtBQUs7RUFDeEMsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsV0FBVyxLQUFLLElBQUksR0FBRyxVQUFVLEdBQUcsU0FBUyxDQUFDO0VBQzFFLGVBQWUsQ0FBQyxNQUFNLENBQUM7RUFFdkIsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDOztFQUUxRDtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztFQUVBO0VBQ0EsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO0VBQzNELE1BQU0sVUFBVSxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDO0VBQzVELE1BQU0sZUFBZSxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO0VBQ2xELE9BQU8sQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLGVBQWUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFFLEVBQUUsSUFBSztJQUMzRSxFQUFFLENBQUMsS0FBSyxDQUNMLElBQUksQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQ2pCLE9BQU8sQ0FBRSxFQUFFLElBQUssRUFBRSxDQUFDLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQzFELEVBQUUsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUMsWUFBWSxDQUFDLGtCQUFrQixFQUFFLElBQUksQ0FBQztJQUNuRSxLQUFLLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztFQUN2QixDQUFDLENBQUM7RUFFRixPQUFPLElBQUk7QUFDYixDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLEtBQUssRUFBRSxZQUFZLEtBQUs7RUFDaEQsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxTQUFTO0VBQ3hELE1BQU0sZUFBZSxHQUFHLFlBQVksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEtBQUssU0FBUztFQUN2RSxNQUFNLFdBQVcsR0FBRyxZQUFZLENBQUMsU0FBUztFQUMxQyxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsa0JBQWtCO0VBQzNDLElBQUksVUFBVSxJQUFJLFVBQVUsQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsRUFBRTtJQUN6RCxNQUFNLGdCQUFnQixHQUFHLG9CQUFvQixPQUFPLHNCQUFzQixXQUFXLE9BQ25GLGVBQWUsR0FBRyxTQUFTLEdBQUcsVUFBVSxTQUNqQztJQUNULFVBQVUsQ0FBQyxTQUFTLEdBQUcsZ0JBQWdCO0VBQ3pDLENBQUMsTUFBTTtJQUNMLE1BQU0sSUFBSSxLQUFLLENBQ2IsbUZBQ0YsQ0FBQztFQUNIO0FBQ0YsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxVQUFVLEdBQUcsQ0FBQyxNQUFNLEVBQUUsV0FBVyxLQUFLO0VBQzFDLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO0VBQ25DLElBQUksYUFBYSxHQUFHLFdBQVc7RUFDL0IsSUFBSSxPQUFPLGFBQWEsS0FBSyxTQUFTLEVBQUU7SUFDdEMsYUFBYSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEtBQUssU0FBUztFQUMzRDtFQUVBLElBQUksQ0FBQyxLQUFLLEVBQUU7SUFDVixNQUFNLElBQUksS0FBSyxDQUFDLEdBQUcsZUFBZSxxQkFBcUIsS0FBSyxFQUFFLENBQUM7RUFDakU7RUFFQSxhQUFhLEdBQUcsUUFBUSxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUM7RUFFN0MsSUFBSSxhQUFhLEVBQUU7SUFDakIsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFFLFdBQVcsSUFBSztNQUMvQyxJQUFJLFdBQVcsS0FBSyxNQUFNLEVBQUU7UUFDMUIsU0FBUyxDQUFDLFdBQVcsQ0FBQztNQUN4QjtJQUNGLENBQUMsQ0FBQztJQUNGLGdCQUFnQixDQUFDLEtBQUssRUFBRSxNQUFNLENBQUM7RUFDakM7QUFDRixDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBOztBQUVBLE1BQU0sa0JBQWtCLEdBQUksTUFBTSxJQUFLO0VBQ3JDLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDO0VBQ2pELFFBQVEsQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQztFQUN0QyxRQUFRLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQztFQUN6QztFQUNBLFFBQVEsQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDLFVBQVU7QUFDM0MsZ0JBQWdCLE1BQU07QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0VBQ0QsTUFBTSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUM7RUFDNUIsZUFBZSxDQUFDLE1BQU0sQ0FBQztBQUN6QixDQUFDO0FBRUQsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUNwQjtFQUNFLENBQUMsS0FBSyxHQUFHO0lBQ1AsQ0FBQyxXQUFXLEVBQUUsS0FBSyxFQUFFO01BQ25CLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQztNQUN0QixVQUFVLENBQ1IsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLEVBQ3JDLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsS0FDeEQsU0FDSixDQUFDO0lBQ0g7RUFDRjtBQUNGLENBQUMsRUFDRDtFQUNFLElBQUksQ0FBQyxJQUFJLEVBQUU7SUFDVCxNQUFNLGVBQWUsR0FBRyxNQUFNLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQztJQUNyRCxlQUFlLENBQUMsT0FBTyxDQUFFLE1BQU0sSUFBSyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUUvRCxNQUFNLFdBQVcsR0FBRyxlQUFlLENBQUMsTUFBTSxDQUN2QyxNQUFNLElBQ0wsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsS0FBSyxTQUFTLElBQ3pDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEtBQUssVUFDcEMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNKLElBQUksT0FBTyxXQUFXLEtBQUssV0FBVyxFQUFFO01BQ3RDO01BQ0E7SUFDRjtJQUNBLE1BQU0sT0FBTyxHQUFHLFdBQVcsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDO0lBQ2hELElBQUksT0FBTyxLQUFLLFNBQVMsRUFBRTtNQUN6QixVQUFVLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQztJQUMvQixDQUFDLE1BQU0sSUFBSSxPQUFPLEtBQUssVUFBVSxFQUFFO01BQ2pDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDO0lBQ2hDO0VBQ0YsQ0FBQztFQUNELEtBQUs7RUFDTCxlQUFlO0VBQ2Y7QUFDRixDQUNGLENBQUM7QUFFRCxNQUFNLENBQUMsT0FBTyxHQUFHLEtBQUs7Ozs7O0FDalF0QixNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsd0NBQXdDLENBQUM7QUFDbEUsTUFBTSxlQUFlLEdBQUcsT0FBTyxDQUFDLGlEQUFpRCxDQUFDO0FBQ2xGLE1BQU07RUFBRSxNQUFNLEVBQUU7QUFBTyxDQUFDLEdBQUcsT0FBTyxDQUFDLGdDQUFnQyxDQUFDO0FBQ3BFLE1BQU07RUFDSixlQUFlO0VBQ2Y7QUFDRixDQUFDLEdBQUcsT0FBTyxDQUFDLCtCQUErQixDQUFDO0FBRTVDLE1BQU0saUJBQWlCLEdBQUcsR0FBRyxNQUFNLGNBQWM7QUFDakQsTUFBTSxXQUFXLEdBQUcsSUFBSSxpQkFBaUIsRUFBRTtBQUMzQyxNQUFNLFFBQVEsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7QUFDNUIsTUFBTSxRQUFRLEdBQUcsQ0FBQztBQUNsQixNQUFNLFlBQVksR0FBRyxFQUFFO0FBQ3ZCLE1BQU0sUUFBUSxHQUFHLENBQUM7QUFFbEIsTUFBTSxjQUFjLEdBQUc7RUFDckIsTUFBTSxFQUNKLHNFQUFzRTtFQUN4RSxhQUFhLEVBQUUsUUFBUTtFQUN2QixlQUFlLEVBQUUsZUFBZTtFQUNoQyxpQkFBaUIsRUFBRTtBQUNyQixDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sZUFBZSxHQUFJLE9BQU8sSUFBSztFQUNuQyxJQUFJLE9BQU87RUFFWCxJQUFJLE9BQU8sRUFBRTtJQUNYLE1BQU0sQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUUsR0FBRyxJQUFLO01BQ3BELElBQUksS0FBSztNQUNULE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDO01BQ2hDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEtBQUssR0FBRyxNQUFNO01BQ3pDLE9BQU8sS0FBSztJQUNkLENBQUMsQ0FBQztJQUVGLElBQUksS0FBSyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxFQUFFO01BQ2pDLE9BQU8sR0FBRyxLQUFLLEdBQUcsRUFBRSxHQUFHLElBQUk7SUFDN0I7RUFDRjtFQUVBLE9BQU8sT0FBTztBQUNoQixDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLG1CQUFtQixHQUFJLEVBQUUsSUFBSztFQUNsQyxNQUFNLFlBQVksR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztFQUU1QyxNQUFNLGNBQWMsR0FBRyxZQUFZLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQztFQUUxRCxJQUFJLENBQUMsY0FBYyxFQUFFO0lBQ25CLE1BQU0sSUFBSSxLQUFLLENBQUMsR0FBRyxXQUFXLHlCQUF5QixDQUFDO0VBQzFEO0VBRUEsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUM7RUFFakQsQ0FDRSxJQUFJLEVBQ0osTUFBTSxFQUNOLFVBQVUsRUFDVixZQUFZLEVBQ1osaUJBQWlCLEVBQ2pCLFVBQVUsRUFDVixlQUFlLENBQ2hCLENBQUMsT0FBTyxDQUFFLElBQUksSUFBSztJQUNsQixJQUFJLGNBQWMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUU7TUFDckMsTUFBTSxLQUFLLEdBQUcsY0FBYyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUM7TUFDL0MsUUFBUSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDO01BQ2xDLGNBQWMsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDO0lBQ3RDO0VBQ0YsQ0FBQyxDQUFDO0VBRUYsTUFBTSxRQUFRLEdBQUcsQ0FBQyxLQUFLLEVBQUUsTUFBTSxLQUFLLE9BQU8sS0FBSyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDO0VBRWpFLE1BQU0sY0FBYyxHQUFJLE9BQU8sSUFBSztJQUNsQyxNQUFNLE1BQU0sR0FBRyxPQUFPLEdBQUcsRUFBRTtJQUMzQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7SUFDdkMsTUFBTSxNQUFNLEdBQUcsTUFBTSxHQUFHLEVBQUUsSUFBSSxFQUFFO0lBQ2hDLE1BQU0sSUFBSSxHQUFHLE1BQU0sR0FBRyxFQUFFLEdBQUcsSUFBSSxHQUFHLElBQUk7SUFFdEMsT0FBTztNQUNMLE1BQU07TUFDTixNQUFNO01BQ04sTUFBTTtNQUNOO0lBQ0YsQ0FBQztFQUNILENBQUM7RUFFRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUN0QixRQUFRLEVBQ1IsZUFBZSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksUUFDbkQsQ0FBQztFQUNELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQ3RCLFFBQVEsRUFDUixlQUFlLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxRQUNuRCxDQUFDO0VBQ0QsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FDckIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksWUFBWSxDQUM5RCxDQUFDO0VBRUQsSUFBSSxZQUFZO0VBQ2hCLEtBQUssSUFBSSxJQUFJLEdBQUcsT0FBTyxFQUFFLElBQUksSUFBSSxPQUFPLEVBQUUsSUFBSSxJQUFJLElBQUksRUFBRTtJQUN0RCxNQUFNO01BQUUsTUFBTTtNQUFFLE1BQU07TUFBRSxNQUFNO01BQUU7SUFBSyxDQUFDLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQztJQUU3RCxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQztJQUMvQyxNQUFNLENBQUMsS0FBSyxHQUFHLEdBQUcsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsSUFBSSxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUFFO0lBQzlELE1BQU0sQ0FBQyxJQUFJLEdBQUcsR0FBRyxNQUFNLElBQUksUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsR0FBRyxJQUFJLEVBQUU7SUFDdkQsSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLGNBQWMsQ0FBQyxLQUFLLEVBQUU7TUFDeEMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxLQUFLO0lBQzdCO0lBQ0EsUUFBUSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUM7RUFDOUI7RUFFQSxZQUFZLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUM7O0VBRTNDO0VBQ0EsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxPQUFPLENBQUUsR0FBRyxJQUFLO0lBQzNDLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsY0FBYyxDQUFDLEdBQUcsQ0FBQztFQUNqRCxDQUFDLENBQUM7RUFDRixZQUFZLENBQUMsT0FBTyxDQUFDLGdCQUFnQixHQUFHLE1BQU07RUFDOUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEdBQUcsWUFBWTtFQUVoRCxZQUFZLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQztFQUNsQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDekIsQ0FBQztBQUVELE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FDekIsQ0FBQyxDQUFDLEVBQ0Y7RUFDRSxJQUFJLENBQUMsSUFBSSxFQUFFO0lBQ1QsZUFBZSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUUsWUFBWSxJQUFLO01BQzNELG1CQUFtQixDQUFDLFlBQVksQ0FBQztNQUNqQyxlQUFlLENBQUMsWUFBWSxDQUFDO0lBQy9CLENBQUMsQ0FBQztFQUNKLENBQUM7RUFDRDtBQUNGLENBQ0YsQ0FBQztBQUVELE1BQU0sQ0FBQyxPQUFPLEdBQUcsVUFBVTs7Ozs7QUNuSjNCO0FBQ0EsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFDO0FBQ3pDLE1BQU0sZUFBZSxHQUFHLE9BQU8sQ0FBQyxpREFBaUQsQ0FBQztBQUNsRixNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsd0NBQXdDLENBQUM7QUFDbEUsTUFBTTtFQUFFLE1BQU0sRUFBRTtBQUFPLENBQUMsR0FBRyxPQUFPLENBQUMsZ0NBQWdDLENBQUM7QUFDcEUsTUFBTSxtQkFBbUIsR0FBRyxPQUFPLENBQUMsOENBQThDLENBQUM7QUFFbkYsTUFBTSxJQUFJLEdBQUcsTUFBTTtBQUNuQixNQUFNLE9BQU8sR0FBRyxJQUFJLE1BQU0sVUFBVTtBQUNwQyxNQUFNLGVBQWUsR0FBRyxJQUFJLE1BQU0sbUJBQW1CO0FBQ3JELE1BQU0scUJBQXFCLEdBQUcsR0FBRyxNQUFNLG1CQUFtQjtBQUMxRCxNQUFNLGFBQWEsR0FBRyxHQUFHLE1BQU0sVUFBVTtBQUN6QyxNQUFNLGtCQUFrQixHQUFHLEdBQUcsTUFBTSxnQkFBZ0I7QUFDcEQsTUFBTSxTQUFTLEdBQUcsUUFBUTtBQUMxQixNQUFNLGFBQWEsR0FBRyxZQUFZO0FBQ2xDLE1BQU0sYUFBYSxHQUFHLENBQUM7QUFDdkIsTUFBTSxrQkFBa0IsR0FBRyxHQUFHLE1BQU0sc0JBQXNCOztBQUUxRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxrQkFBa0IsR0FBSSxPQUFPLElBQUs7RUFDdEMsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLFVBQVU7RUFDbEMsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQyxJQUFJLGtCQUFrQixFQUFFLENBQUM7RUFFNUQsT0FBTztJQUFFLE9BQU87SUFBRSxPQUFPO0lBQUU7RUFBSyxDQUFDO0FBQ25DLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLFdBQVcsR0FBRyxDQUFDLFdBQVcsRUFBRSxjQUFjLEVBQUUsUUFBUSxLQUFLO0VBQzdELFdBQVcsQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQzs7RUFFaEQ7RUFDQTtFQUNBLFdBQVcsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQzs7RUFFcEM7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUNFLE1BQU0sZ0JBQWdCLEdBQUksTUFBTSxJQUFLO0lBQ25DLFdBQVcsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEdBQUcsa0JBQWtCLE9BQU8sQ0FBQztJQUMxRCxXQUFXLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLGtCQUFrQixVQUFVLENBQUM7SUFDN0QsV0FBVyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsR0FBRyxrQkFBa0IsU0FBUyxDQUFDO0lBQzVELFdBQVcsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEdBQUcsa0JBQWtCLFFBQVEsQ0FBQztJQUMzRCxXQUFXLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFHLGtCQUFrQixLQUFLLE1BQU0sRUFBRSxDQUFDO0VBQy9ELENBQUM7O0VBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDRSxNQUFNLG1CQUFtQixHQUFJLENBQUMsSUFBSztJQUNqQztJQUNBLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLElBQUk7SUFDbEIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsSUFBSTtJQUNyQixDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxJQUFJO0lBQ3BCLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLElBQUk7SUFDbkIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsSUFBSTtFQUN2QixDQUFDOztFQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7RUFFRSxNQUFNLFlBQVksR0FBRyxDQUFDLE1BQU0sRUFBRSxhQUFhLEtBQ3pDLFFBQVEsQ0FDTixNQUFNLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLEVBQy9ELEVBQ0YsQ0FBQzs7RUFFSDtFQUNBO0VBQ0E7RUFDQTtFQUNBOztFQUVBO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBQ0UsTUFBTSxxQkFBcUIsR0FBRyxDQUM1QixjQUFjLEVBQ2QsaUJBQWlCLEVBQ2pCLE9BQU8sS0FDSjtJQUNILE1BQU0sTUFBTSxHQUNWLFlBQVksQ0FBQyxPQUFPLEVBQUUsVUFBVSxjQUFjLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FDakQsaUJBQWlCLEdBQUcsWUFBWSxDQUFDLE9BQU8sRUFBRSxVQUFVLGNBQWMsRUFBRSxDQUFDLEdBQ3JFLGlCQUFpQjtJQUV2QixPQUFPLE1BQU07RUFDZixDQUFDOztFQUVEO0FBQ0Y7QUFDQTtBQUNBO0VBQ0UsTUFBTSxXQUFXLEdBQUksQ0FBQyxJQUFLO0lBQ3pCLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEI7O0lBRUEsTUFBTSxTQUFTLEdBQUcscUJBQXFCLENBQ3JDLEtBQUssRUFDTCxDQUFDLENBQUMsWUFBWSxFQUNkLGNBQ0YsQ0FBQztJQUVELE1BQU0sVUFBVSxHQUFHLHFCQUFxQixDQUN0QyxNQUFNLEVBQ04sQ0FBQyxDQUFDLFdBQVcsRUFDYixjQUNGLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7SUFDdkIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLENBQUM7SUFDdEIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsSUFBSSxhQUFhLElBQUksQ0FBQyxDQUFDO0lBQ3JDO0lBQ0EsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsSUFBSSxTQUFTLFdBQVcsVUFBVSxHQUFHLENBQUMsSUFBSTtFQUM3RCxDQUFDOztFQUVEO0FBQ0Y7QUFDQTtBQUNBO0VBQ0UsTUFBTSxjQUFjLEdBQUksQ0FBQyxJQUFLO0lBQzVCLG1CQUFtQixDQUFDLENBQUMsQ0FBQztJQUV0QixNQUFNLFVBQVUsR0FBRyxxQkFBcUIsQ0FDdEMsTUFBTSxFQUNOLENBQUMsQ0FBQyxXQUFXLEVBQ2IsY0FDRixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsUUFBUSxDQUFDO0lBQzFCLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLEtBQUs7SUFDcEIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsR0FBRyxhQUFhLFdBQVcsVUFBVSxHQUFHLENBQUMsSUFBSTtFQUNoRSxDQUFDOztFQUVEO0FBQ0Y7QUFDQTtBQUNBO0VBQ0UsTUFBTSxhQUFhLEdBQUksQ0FBQyxJQUFLO0lBQzNCLG1CQUFtQixDQUFDLENBQUMsQ0FBQztJQUV0QixNQUFNLFNBQVMsR0FBRyxxQkFBcUIsQ0FDckMsS0FBSyxFQUNMLENBQUMsQ0FBQyxZQUFZLEVBQ2QsY0FDRixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsT0FBTyxDQUFDO0lBQ3pCLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLEtBQUs7SUFDbkIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsR0FDYixjQUFjLENBQUMsVUFBVSxHQUFHLGNBQWMsQ0FBQyxXQUFXLEdBQUcsYUFBYSxJQUNwRTtJQUNKLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLElBQUksU0FBUyxHQUFHLENBQUMsVUFBVTtFQUM5QyxDQUFDOztFQUVEO0FBQ0Y7QUFDQTtBQUNBO0VBQ0UsTUFBTSxZQUFZLEdBQUksQ0FBQyxJQUFLO0lBQzFCLG1CQUFtQixDQUFDLENBQUMsQ0FBQztJQUV0QixNQUFNLFNBQVMsR0FBRyxxQkFBcUIsQ0FDckMsS0FBSyxFQUNMLENBQUMsQ0FBQyxZQUFZLEVBQ2QsY0FDRixDQUFDOztJQUVEO0lBQ0EsTUFBTSxVQUFVLEdBQUcscUJBQXFCLENBQ3RDLE1BQU0sRUFDTixjQUFjLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxXQUFXLEdBQ3JDLGNBQWMsQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLFdBQVcsR0FDekMsQ0FBQyxDQUFDLFdBQVcsRUFDakIsY0FDRixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsTUFBTSxDQUFDO0lBQ3hCLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLEtBQUs7SUFDbkIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsSUFBSSxhQUFhLElBQUk7SUFDcEMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsSUFBSSxTQUFTLEdBQUcsQ0FBQyxVQUNoQyxjQUFjLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxXQUFXLEdBQUcsVUFBVSxHQUFHLENBQUMsVUFBVSxJQUNsRSxDQUFDLENBQUM7RUFDUixDQUFDOztFQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0VBRUUsTUFBTSxXQUFXLEdBQUcsQ0FBQztFQUVyQixTQUFTLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxPQUFPLEdBQUcsQ0FBQyxFQUFFO0lBQzlDO0lBQ0EsTUFBTSxTQUFTLEdBQUcsQ0FDaEIsV0FBVyxFQUNYLGNBQWMsRUFDZCxhQUFhLEVBQ2IsWUFBWSxDQUNiO0lBRUQsSUFBSSxrQkFBa0IsR0FBRyxLQUFLOztJQUU5QjtJQUNBLFNBQVMsWUFBWSxDQUFDLENBQUMsRUFBRTtNQUN2QixJQUFJLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFO1FBQ3hCLE1BQU0sR0FBRyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDeEIsR0FBRyxDQUFDLE9BQU8sQ0FBQztRQUVaLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsRUFBRTtVQUNqQztVQUNBLFlBQVksQ0FBRSxDQUFDLElBQUksQ0FBRSxDQUFDO1FBQ3hCLENBQUMsTUFBTTtVQUNMLGtCQUFrQixHQUFHLElBQUk7UUFDM0I7TUFDRjtJQUNGO0lBRUEsWUFBWSxDQUFDLENBQUMsQ0FBQztJQUNmO0lBQ0EsSUFBSSxDQUFDLGtCQUFrQixFQUFFO01BQ3ZCLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDO01BQ3pDLElBQUksT0FBTyxJQUFJLFdBQVcsRUFBRTtRQUMxQjtRQUNBLGdCQUFnQixDQUFDLE9BQU8sRUFBRyxPQUFPLElBQUksQ0FBRSxDQUFDO01BQzNDO0lBQ0Y7RUFDRjtFQUVBLFFBQVEsUUFBUTtJQUNkLEtBQUssS0FBSztNQUNSLFdBQVcsQ0FBQyxXQUFXLENBQUM7TUFDeEIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsQ0FBQyxFQUFFO1FBQ3JDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQztNQUMvQjtNQUNBO0lBQ0YsS0FBSyxRQUFRO01BQ1gsY0FBYyxDQUFDLFdBQVcsQ0FBQztNQUMzQixJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxDQUFDLEVBQUU7UUFDckMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDO01BQy9CO01BQ0E7SUFDRixLQUFLLE9BQU87TUFDVixhQUFhLENBQUMsV0FBVyxDQUFDO01BQzFCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsRUFBRTtRQUNyQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUM7TUFDL0I7TUFDQTtJQUNGLEtBQUssTUFBTTtNQUNULFlBQVksQ0FBQyxXQUFXLENBQUM7TUFDekIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsQ0FBQyxFQUFFO1FBQ3JDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQztNQUMvQjtNQUNBO0lBRUY7TUFDRTtNQUNBO0VBQ0o7O0VBRUE7QUFDRjtBQUNBO0FBQ0E7RUFDRSxVQUFVLENBQUMsTUFBTTtJQUNmLFdBQVcsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQztFQUMxQyxDQUFDLEVBQUUsRUFBRSxDQUFDO0FBQ1IsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sV0FBVyxHQUFJLFdBQVcsSUFBSztFQUNuQyxXQUFXLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUM7RUFDM0MsV0FBVyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDO0VBQ3ZDLFdBQVcsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDO0VBQ2hELFdBQVcsQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQztBQUNqRCxDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxlQUFlLEdBQUksY0FBYyxJQUFLO0VBQzFDLE1BQU0sU0FBUyxHQUFHLFdBQVcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsR0FBRyxNQUFNLEVBQUU7RUFDMUUsTUFBTSxjQUFjLEdBQUcsY0FBYyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUM7RUFDM0QsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUM7RUFDOUMsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUM7RUFDbEQsTUFBTSxpQkFBaUIsR0FBRyxjQUFjLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQztFQUNyRSxJQUFJLFFBQVEsR0FBRyxjQUFjLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQzs7RUFFM0Q7RUFDQSxJQUFJLENBQUMsUUFBUSxFQUFFO0lBQ2IsUUFBUSxHQUFHLEtBQUs7SUFDaEIsY0FBYyxDQUFDLFlBQVksQ0FBQyxlQUFlLEVBQUUsUUFBUSxDQUFDO0VBQ3hEOztFQUVBO0VBQ0EsY0FBYyxDQUFDLFlBQVksQ0FBQyxrQkFBa0IsRUFBRSxTQUFTLENBQUM7RUFDMUQsY0FBYyxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDO0VBQzVDLGNBQWMsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDO0VBQ3ZDLGNBQWMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQztFQUM5QyxjQUFjLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQzs7RUFFbkQ7RUFDQSxjQUFjLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsY0FBYyxDQUFDOztFQUUvRDtFQUNBLE9BQU8sQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDO0VBQ25DLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQztFQUNwQyxPQUFPLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQzs7RUFFaEM7RUFDQSxJQUFJLGlCQUFpQixFQUFFO0lBQ3JCLE1BQU0sWUFBWSxHQUFHLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUM7SUFDakQsWUFBWSxDQUFDLE9BQU8sQ0FBRSxTQUFTLElBQUssT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7RUFDdkU7O0VBRUE7RUFDQSxXQUFXLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQztFQUM3QyxXQUFXLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxTQUFTLENBQUM7RUFDekMsV0FBVyxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDO0VBQzNDLFdBQVcsQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQzs7RUFFL0M7RUFDQSxXQUFXLENBQUMsV0FBVyxHQUFHLGNBQWM7RUFFeEMsT0FBTztJQUFFLFdBQVc7SUFBRSxRQUFRO0lBQUUsY0FBYztJQUFFO0VBQVEsQ0FBQztBQUMzRCxDQUFDOztBQUVEO0FBQ0E7QUFDQTs7QUFFQSxNQUFNLFlBQVksR0FBRyxDQUFBLEtBQU07RUFDekIsTUFBTSxjQUFjLEdBQUcsZUFBZSxDQUFDLElBQUksa0JBQWtCLElBQUksU0FBUyxFQUFFLENBQUM7RUFFN0UsSUFBSSxDQUFDLGNBQWMsRUFBRTtJQUNuQjtFQUNGO0VBRUEsY0FBYyxDQUFDLE9BQU8sQ0FBRSxhQUFhLElBQUssV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBQ3ZFLENBQUM7O0FBRUQ7QUFDQSxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQ3RCO0VBQ0UsbUJBQW1CLEVBQUU7SUFDbkIsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxFQUFFO01BQ1gsTUFBTSxPQUFPLEdBQUcsQ0FBQyxDQUFDLE1BQU07TUFDeEIsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLFFBQVE7O01BRXBDO01BQ0EsSUFBSSxXQUFXLEtBQUssUUFBUSxJQUFJLE9BQU8sQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEVBQUU7UUFDN0QsZUFBZSxDQUFDLE9BQU8sQ0FBQztNQUMxQjtJQUNGLENBQUM7SUFDRCxDQUFDLGVBQWUsRUFBRSxDQUFDLEVBQUU7TUFDbkIsTUFBTTtRQUFFLE9BQU87UUFBRTtNQUFLLENBQUMsR0FBRyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO01BRXRELFdBQVcsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO0lBQ3REO0VBQ0YsQ0FBQztFQUNELFFBQVEsRUFBRTtJQUNSLENBQUMsZUFBZSxFQUFFLENBQUMsRUFBRTtNQUNuQixNQUFNO1FBQUU7TUFBSyxDQUFDLEdBQUcsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztNQUU3QyxXQUFXLENBQUMsSUFBSSxDQUFDO0lBQ25CO0VBQ0YsQ0FBQztFQUNELE9BQU8sRUFBRTtJQUNQLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQztNQUFFLE1BQU0sRUFBRTtJQUFhLENBQUM7RUFDekM7QUFDRixDQUFDLEVBQ0Q7RUFDRSxJQUFJLENBQUMsSUFBSSxFQUFFO0lBQ1QsZUFBZSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUUsY0FBYyxJQUFLO01BQ3pELGVBQWUsQ0FBQyxjQUFjLENBQUM7TUFFL0IsTUFBTTtRQUFFLElBQUk7UUFBRTtNQUFRLENBQUMsR0FBRyxrQkFBa0IsQ0FBQyxjQUFjLENBQUM7TUFDNUQsT0FBTyxDQUFDLGdCQUFnQixDQUFDLFlBQVksRUFBRSxNQUFNLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqRSxDQUFDLENBQUM7RUFDSixDQUFDO0VBQ0QsUUFBUSxDQUFDLElBQUksRUFBRTtJQUNiLGVBQWUsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFFLGNBQWMsSUFBSztNQUN6RCxjQUFjLENBQUMsbUJBQW1CLENBQUMsWUFBWSxFQUFFLFdBQVcsQ0FBQztJQUMvRCxDQUFDLENBQUM7RUFDSixDQUFDO0VBQ0QsS0FBSyxFQUFFLGVBQWU7RUFDdEIsa0JBQWtCO0VBQ2xCLElBQUksRUFBRSxXQUFXO0VBQ2pCLElBQUksRUFBRTtBQUNSLENBQ0YsQ0FBQztBQUVELE1BQU0sQ0FBQyxPQUFPLEdBQUcsT0FBTzs7Ozs7QUMxYXhCLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyx3Q0FBd0MsQ0FBQztBQUNsRSxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsOENBQThDLENBQUM7QUFDeEUsTUFBTTtFQUFFLE1BQU0sRUFBRTtBQUFPLENBQUMsR0FBRyxPQUFPLENBQUMsZ0NBQWdDLENBQUM7QUFDcEUsTUFBTSxlQUFlLEdBQUcsT0FBTyxDQUFDLGlEQUFpRCxDQUFDO0FBRWxGLE1BQU0sY0FBYyxHQUNsQixrRUFBa0U7QUFDcEUsTUFBTSxjQUFjLEdBQUcsSUFBSSxNQUFNLGtCQUFrQjs7QUFFbkQ7QUFDQSxNQUFNLFlBQVksR0FBSSxFQUFFLElBQUssUUFBUSxDQUFDLEVBQUUsQ0FBQzs7QUFFekM7QUFDQSxNQUFNLG1CQUFtQixHQUFJLEtBQUssSUFBSztFQUNyQyxNQUFNLG1CQUFtQixHQUFHLEtBQUssQ0FBQyxVQUFVO0VBQzVDLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDO0VBQ3hDLE1BQU0sZUFBZSxHQUFHLEdBQUcsT0FBTyxhQUFhO0VBQy9DLEtBQUssQ0FBQyxZQUFZLENBQUMsa0JBQWtCLEVBQUUsZUFBZSxDQUFDO0VBRXZELE1BQU0sc0JBQXNCLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUM7RUFFN0Qsc0JBQXNCLENBQUMsWUFBWSxDQUFDLHdCQUF3QixFQUFFLEVBQUUsQ0FBQztFQUNqRSxzQkFBc0IsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQztFQUNuRCxzQkFBc0IsQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQztFQUMxRCxzQkFBc0IsQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQztFQUN4RCxzQkFBc0IsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLGVBQWUsQ0FBQztFQUMxRCxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsc0JBQXNCLENBQUM7QUFDcEQsQ0FBQzs7QUFFRDtBQUNBLE1BQU0sbUJBQW1CLEdBQUksS0FBSyxJQUFLO0VBQ3JDLE1BQU0sbUJBQW1CLEdBQUcsS0FBSyxDQUFDLFVBQVU7RUFDNUMsTUFBTSxjQUFjLEdBQUcsbUJBQW1CLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDO0VBQzNFLE1BQU0saUJBQWlCLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQyx5QkFBeUIsQ0FBQztFQUV2RSxLQUFLLENBQUMsWUFBWSxDQUFDLGVBQWUsRUFBRSxpQkFBaUIsQ0FBQztFQUV0RCxjQUFjLENBQUMsT0FBTyxDQUFFLFFBQVEsSUFBSztJQUNuQyxJQUFJLGFBQWEsR0FBRyxtQkFBbUI7SUFDdkMsSUFBSSxLQUFLLENBQUMsWUFBWSxDQUFDLDRCQUE0QixDQUFDLEVBQUU7TUFDcEQsYUFBYSxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUMsNEJBQTRCLENBQUM7SUFDbEU7SUFDQSxNQUFNLFVBQVUsR0FBRyxHQUFHLFFBQVEsQ0FBQyxXQUFXLElBQUksYUFBYSxHQUFHO0lBQzlELFFBQVEsQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBQztFQUNqRCxDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxpQkFBaUIsR0FBSSxLQUFLLElBQUs7RUFDbkMsbUJBQW1CLENBQUMsS0FBSyxDQUFDO0VBQzFCLG1CQUFtQixDQUFDLEtBQUssQ0FBQztBQUM1QixDQUFDO0FBRUQsTUFBTSxTQUFTLEdBQUcsUUFBUSxDQUN4QjtFQUNFLGNBQWMsRUFBRTtJQUNkLENBQUMsY0FBYyxFQUFFLEtBQUssRUFBRTtNQUN0QixZQUFZLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztJQUM1QjtFQUNGO0FBQ0YsQ0FBQyxFQUNEO0VBQ0UsSUFBSSxDQUFDLElBQUksRUFBRTtJQUNULGVBQWUsQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFFLEtBQUssSUFDbEQsaUJBQWlCLENBQUMsS0FBSyxDQUN6QixDQUFDO0VBQ0g7QUFDRixDQUNGLENBQUM7QUFFRCxNQUFNLENBQUMsT0FBTyxHQUFHLFNBQVM7Ozs7O0FDckUxQixNQUFNLENBQUMsT0FBTyxHQUFHO0VBQ2YsTUFBTSxFQUFFO0FBQ1YsQ0FBQzs7Ozs7QUNGRCxNQUFNLENBQUMsT0FBTyxHQUFHO0VBQ2Y7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsS0FBSyxFQUFFO0FBQ1QsQ0FBQzs7Ozs7QUNkRCxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsa0NBQWtDLENBQUM7QUFDN0QsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLCtCQUErQixDQUFDO0FBQ3ZELE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQywrQkFBK0IsQ0FBQztBQUN2RCxNQUFNLGNBQWMsR0FBRyxPQUFPLENBQUMsd0NBQXdDLENBQUM7QUFDeEUsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLGtDQUFrQyxDQUFDO0FBQzVELE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxvQ0FBb0MsQ0FBQztBQUNoRSxNQUFNLGVBQWUsR0FBRyxPQUFPLENBQUMsMENBQTBDLENBQUM7QUFDM0UsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLG1DQUFtQyxDQUFDO0FBQzlELE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQywrQkFBK0IsQ0FBQztBQUN2RCxNQUFNLGdCQUFnQixHQUFHLE9BQU8sQ0FBQywyQ0FBMkMsQ0FBQztBQUM3RSxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsbUNBQW1DLENBQUM7QUFDOUQsTUFBTSxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsMENBQTBDLENBQUM7QUFDNUUsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLDhCQUE4QixDQUFDO0FBQ3JELE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQywrQkFBK0IsQ0FBQztBQUMzRCxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsa0NBQWtDLENBQUM7QUFDNUQsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLDhCQUE4QixDQUFDO0FBQ3JELE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQywrQkFBK0IsQ0FBQztBQUN2RCxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsZ0NBQWdDLENBQUM7QUFDekQsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLDhCQUE4QixDQUFDO0FBQ3JELE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxvQ0FBb0MsQ0FBQztBQUNoRSxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsZ0NBQWdDLENBQUM7QUFDekQsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLG1DQUFtQyxDQUFDO0FBRTlELE1BQU0sQ0FBQyxPQUFPLEdBQUc7RUFDZixTQUFTO0VBQ1QsTUFBTTtFQUNOLE1BQU07RUFDTixjQUFjO0VBQ2QsUUFBUTtFQUNSLFVBQVU7RUFDVixlQUFlO0VBQ2YsU0FBUztFQUNULE1BQU07RUFDTixnQkFBZ0I7RUFDaEIsU0FBUztFQUNULGdCQUFnQjtFQUNoQixLQUFLO0VBQ0wsVUFBVTtFQUNWLFFBQVE7RUFDUixLQUFLO0VBQ0wsTUFBTTtFQUNOLE9BQU87RUFDUCxLQUFLO0VBQ0wsVUFBVTtFQUNWLE9BQU87RUFDUDtBQUNGLENBQUM7Ozs7O0FDOUNELE1BQU0sQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLENBQUM7O0FBRTVCLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUM7QUFFakMsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQztBQUVyQyxLQUFLLENBQUMsVUFBVSxHQUFHLFVBQVU7QUFFN0IsTUFBTSxjQUFjLEdBQUcsQ0FBQSxLQUFNO0VBQzNCLE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxJQUFJO0VBQzVCLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsT0FBTyxDQUFFLEdBQUcsSUFBSztJQUN2QyxNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDO0lBQ2hDLFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDO0VBQ3JCLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxJQUFJLFFBQVEsQ0FBQyxVQUFVLEtBQUssU0FBUyxFQUFFO0VBQ3JDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxrQkFBa0IsRUFBRSxjQUFjLEVBQUU7SUFBRSxJQUFJLEVBQUU7RUFBSyxDQUFDLENBQUM7QUFDL0UsQ0FBQyxNQUFNO0VBQ0wsY0FBYyxDQUFDLENBQUM7QUFDbEI7QUFFQSxPQUFPLENBQUMsT0FBTyxHQUFHLEtBQUs7QUFDdkIsT0FBTyxDQUFDLGNBQWMsR0FBRyxjQUFjOzs7OztBQ3ZCdkMsTUFBTSxDQUFDLE9BQU8sR0FBRyxDQUFDLFlBQVksR0FBRyxRQUFRLEtBQUssWUFBWSxDQUFDLGFBQWE7Ozs7O0FDQXhFLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQzs7QUFFN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLFFBQVEsR0FBRyxDQUFDLEdBQUcsR0FBRyxLQUN0QixTQUFTLFNBQVMsQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDLElBQUksRUFBRTtFQUN6QyxHQUFHLENBQUMsT0FBTyxDQUFFLE1BQU0sSUFBSztJQUN0QixJQUFJLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLFVBQVUsRUFBRTtNQUN0QyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUM7SUFDakM7RUFDRixDQUFDLENBQUM7QUFDSixDQUFDOztBQUVIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sQ0FBQyxPQUFPLEdBQUcsQ0FBQyxNQUFNLEVBQUUsS0FBSyxLQUM3QixRQUFRLENBQUMsTUFBTSxFQUFFO0VBQ2YsRUFBRSxFQUFFLFFBQVEsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDO0VBQzNCLEdBQUcsRUFBRSxRQUFRLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQztFQUNuQyxHQUFHO0FBQ0wsQ0FBQyxDQUFDOzs7OztBQzdCSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLE1BQU0sQ0FBQyxPQUFPLEdBQUcsU0FBUyxRQUFRLENBQUMsUUFBUSxFQUFFLEtBQUssR0FBRyxHQUFHLEVBQUU7RUFDeEQsSUFBSSxLQUFLLEdBQUcsSUFBSTtFQUNoQixPQUFPLENBQUMsR0FBRyxJQUFJLEtBQUs7SUFDbEIsTUFBTSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUM7SUFDMUIsS0FBSyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTTtNQUM5QixRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUM7SUFDNUIsQ0FBQyxFQUFFLEtBQUssQ0FBQztFQUNYLENBQUM7QUFDSCxDQUFDOzs7OztBQ2pCRCxNQUFNO0VBQUU7QUFBTyxDQUFDLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQztBQUN0QyxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDO0FBQ3RDLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUM7QUFDbEMsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLGtCQUFrQixDQUFDO0FBRWpELE1BQU0sU0FBUyxHQUNiLGdMQUFnTDtBQUVsTCxNQUFNLFVBQVUsR0FBSSxPQUFPLElBQUs7RUFDOUIsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQztFQUNwRCxNQUFNLFlBQVksR0FBRyxpQkFBaUIsQ0FBQyxDQUFDLENBQUM7RUFDekMsTUFBTSxXQUFXLEdBQUcsaUJBQWlCLENBQUMsaUJBQWlCLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQzs7RUFFbkU7RUFDQTtFQUNBLFNBQVMsUUFBUSxDQUFDLEtBQUssRUFBRTtJQUN2QixJQUFJLGFBQWEsQ0FBQyxDQUFDLEtBQUssV0FBVyxFQUFFO01BQ25DLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQztNQUN0QixZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEI7RUFDRjtFQUVBLFNBQVMsT0FBTyxDQUFDLEtBQUssRUFBRTtJQUN0QixJQUFJLGFBQWEsQ0FBQyxDQUFDLEtBQUssWUFBWSxFQUFFO01BQ3BDLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQztNQUN0QixXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckI7SUFDQTtJQUNBO0lBQ0E7SUFBQSxLQUNLLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFFO01BQ3JELEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQztNQUN0QixZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEI7RUFDRjtFQUVBLE9BQU87SUFDTCxZQUFZO0lBQ1osV0FBVztJQUNYLFFBQVE7SUFDUjtFQUNGLENBQUM7QUFDSCxDQUFDO0FBRUQsTUFBTSxDQUFDLE9BQU8sR0FBRyxDQUFDLE9BQU8sRUFBRSxxQkFBcUIsR0FBRyxDQUFDLENBQUMsS0FBSztFQUN4RCxNQUFNLGVBQWUsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDO0VBQzNDLE1BQU0sUUFBUSxHQUFHLHFCQUFxQjtFQUN0QyxNQUFNO0lBQUUsR0FBRztJQUFFO0VBQU8sQ0FBQyxHQUFHLFFBQVE7RUFFaEMsSUFBSSxNQUFNLElBQUksQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLEdBQUcsR0FBRyxNQUFNOztFQUV6QztFQUNBO0VBQ0E7RUFDQSxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUM7SUFDekIsR0FBRyxFQUFFLGVBQWUsQ0FBQyxRQUFRO0lBQzdCLFdBQVcsRUFBRSxlQUFlLENBQUMsT0FBTztJQUNwQyxHQUFHO0VBQ0wsQ0FBQyxDQUFDO0VBRUYsTUFBTSxTQUFTLEdBQUcsUUFBUSxDQUN4QjtJQUNFLE9BQU8sRUFBRTtFQUNYLENBQUMsRUFDRDtJQUNFLElBQUksQ0FBQSxFQUFHO01BQ0w7TUFDQTtNQUNBLElBQUksZUFBZSxDQUFDLFlBQVksRUFBRTtRQUNoQyxlQUFlLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO01BQ3RDO0lBQ0YsQ0FBQztJQUNELE1BQU0sQ0FBQyxRQUFRLEVBQUU7TUFDZixJQUFJLFFBQVEsRUFBRTtRQUNaLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztNQUNYLENBQUMsTUFBTTtRQUNMLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztNQUNaO0lBQ0Y7RUFDRixDQUNGLENBQUM7RUFFRCxPQUFPLFNBQVM7QUFDbEIsQ0FBQzs7Ozs7QUNuRkQ7QUFDQSxTQUFTLG1CQUFtQixDQUMxQixFQUFFLEVBQ0YsR0FBRyxHQUFHLE1BQU0sRUFDWixLQUFLLEdBQUcsUUFBUSxDQUFDLGVBQWUsRUFDaEM7RUFDQSxNQUFNLElBQUksR0FBRyxFQUFFLENBQUMscUJBQXFCLENBQUMsQ0FBQztFQUV2QyxPQUNFLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUNiLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUNkLElBQUksQ0FBQyxNQUFNLEtBQUssR0FBRyxDQUFDLFdBQVcsSUFBSSxLQUFLLENBQUMsWUFBWSxDQUFDLElBQ3RELElBQUksQ0FBQyxLQUFLLEtBQUssR0FBRyxDQUFDLFVBQVUsSUFBSSxLQUFLLENBQUMsV0FBVyxDQUFDO0FBRXZEO0FBRUEsTUFBTSxDQUFDLE9BQU8sR0FBRyxtQkFBbUI7Ozs7O0FDaEJwQztBQUNBLFNBQVMsV0FBVyxDQUFBLEVBQUc7RUFDckIsT0FDRSxPQUFPLFNBQVMsS0FBSyxXQUFXLEtBQy9CLFNBQVMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLHFCQUFxQixDQUFDLElBQzlDLFNBQVMsQ0FBQyxRQUFRLEtBQUssVUFBVSxJQUFJLFNBQVMsQ0FBQyxjQUFjLEdBQUcsQ0FBRSxDQUFDLElBQ3RFLENBQUMsTUFBTSxDQUFDLFFBQVE7QUFFcEI7QUFFQSxNQUFNLENBQUMsT0FBTyxHQUFHLFdBQVc7Ozs7O0FDVjVCO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLENBQUUsVUFBVSxPQUFPLEVBQUU7RUFDbkIsTUFBTSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsQ0FBQztBQUM1QixDQUFDLENBQUUsWUFBWTtFQUNiLFlBQVk7O0VBRVosSUFBSSxTQUFTLEdBQUc7SUFDZCxPQUFPLEVBQUUsV0FBVztJQUVwQixTQUFTLEVBQUU7TUFDVCxHQUFHLEVBQUUsT0FBTztNQUNaLEdBQUcsRUFBRSxNQUFNO01BQ1gsR0FBRyxFQUFFLE1BQU07TUFDWCxHQUFHLEVBQUUsUUFBUTtNQUNiLEdBQUcsRUFBRSxRQUFRO01BQ2IsR0FBRyxFQUFFO0lBQ1AsQ0FBQztJQUVELFNBQVMsRUFBRSxTQUFBLENBQVUsQ0FBQyxFQUFFO01BQ3RCLE9BQU8sU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVEO0FBQ0o7QUFDQTtJQUNJLFVBQVUsRUFBRSxTQUFBLENBQVUsT0FBTyxFQUFFO01BQzdCLElBQUksTUFBTSxHQUFHLEVBQUU7TUFFZixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUN2QyxNQUFNLElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRTtVQUM1QixJQUFJLEtBQUssR0FBRyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUU7VUFDbEMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQzdCLFNBQVMsQ0FBQyxPQUFPLEVBQ2pCLFNBQVMsQ0FBQyxTQUNaLENBQUM7UUFDSDtNQUNGO01BRUEsT0FBTyxNQUFNO0lBQ2YsQ0FBQztJQUNEO0FBQ0o7QUFDQTtJQUNJLGNBQWMsRUFBRSxTQUFBLENBQVUsT0FBTyxFQUFFO01BQ2pDLElBQUksSUFBSSxHQUFHLFNBQVMsQ0FBQyxNQUFNO01BQzNCLElBQUksTUFBTSxHQUFHLElBQUksS0FBSyxDQUFDLElBQUksR0FBRyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7TUFDL0MsS0FBSyxJQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsSUFBSSxHQUFHLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRTtRQUN0QyxNQUFNLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUM7TUFDcEM7TUFFQSxJQUFJLE9BQU8sR0FBRyxTQUFTLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FDdEMsU0FBUyxFQUNULENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FDekIsQ0FBQztNQUNELE9BQU87UUFDTCxNQUFNLEVBQUUsT0FBTztRQUNmLFFBQVEsRUFBRSxTQUFBLENBQUEsRUFBWTtVQUNwQixPQUFPLDRCQUE0QjtRQUNyQyxDQUFDO1FBQ0QsSUFBSSxFQUNGLGlFQUFpRSxHQUNqRTtNQUNKLENBQUM7SUFDSCxDQUFDO0lBQ0Q7QUFDSjtBQUNBO0FBQ0E7SUFDSSxjQUFjLEVBQUUsU0FBQSxDQUFBLEVBQVk7TUFDMUIsSUFBSSxJQUFJLEdBQUcsU0FBUyxDQUFDLE1BQU07TUFDM0IsSUFBSSxXQUFXLEdBQUcsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDO01BQ2pDLEtBQUssSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLElBQUksR0FBRyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUU7UUFDdEMsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUM7TUFDckM7TUFFQSxJQUFJLFVBQVUsR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDLFVBQVUsR0FBRyxFQUFFO1FBQzlDLE9BQU8sR0FBRyxDQUFDLE1BQU07TUFDbkIsQ0FBQyxDQUFDO01BQ0YsT0FBTyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztJQUM1QjtFQUNGLENBQUM7RUFFRCxPQUFPLFNBQVM7QUFDbEIsQ0FBQyxDQUFDOzs7OztBQ25HRixNQUFNLENBQUMsT0FBTyxHQUFHLFNBQVMsaUJBQWlCLENBQUEsRUFBRztFQUM1QztFQUNBLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDO0VBQzNDLEtBQUssQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLFFBQVE7RUFDakMsS0FBSyxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDLENBQUM7RUFDakMsS0FBSyxDQUFDLEtBQUssQ0FBQyxlQUFlLEdBQUcsV0FBVyxDQUFDLENBQUM7RUFDM0MsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDOztFQUVoQztFQUNBLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDO0VBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDOztFQUV4QjtFQUNBLE1BQU0sY0FBYyxHQUFHLEdBQUcsS0FBSyxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsV0FBVyxJQUFJOztFQUVuRTtFQUNBLEtBQUssQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQztFQUVuQyxPQUFPLGNBQWM7QUFDdkIsQ0FBQzs7Ozs7QUNuQkQsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQztBQUNsQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLFNBQVMsR0FBSSxLQUFLLElBQ3RCLEtBQUssSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSyxDQUFDLFFBQVEsS0FBSyxDQUFDOztBQUU1RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxDQUFDLE9BQU8sR0FBRyxDQUFDLFFBQVEsRUFBRSxPQUFPLEtBQUs7RUFDdEMsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUM7RUFDM0MsSUFBSSxPQUFPLFFBQVEsS0FBSyxRQUFRLEVBQUU7SUFDaEMsT0FBTyxTQUFTO0VBQ2xCO0VBRUEsSUFBSSxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtJQUNuRCxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztFQUN6QjtFQUVBLE9BQU8sU0FBUztBQUNsQixDQUFDOzs7OztBQzdCRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLFNBQVMsR0FBSSxLQUFLLElBQ3RCLEtBQUssSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSyxDQUFDLFFBQVEsS0FBSyxDQUFDOztBQUU1RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxDQUFDLE9BQU8sR0FBRyxDQUFDLFFBQVEsRUFBRSxPQUFPLEtBQUs7RUFDdEMsSUFBSSxPQUFPLFFBQVEsS0FBSyxRQUFRLEVBQUU7SUFDaEMsT0FBTyxFQUFFO0VBQ1g7RUFFQSxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFO0lBQ25DLE9BQU8sR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7RUFDN0I7RUFFQSxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDO0VBQ3BELE9BQU8sS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztBQUM5QyxDQUFDOzs7OztBQzVCRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxDQUFDLE9BQU8sR0FBRyxDQUFDLEtBQUssRUFBRSxJQUFJLEtBQUs7RUFDaEMsS0FBSyxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsRUFBRSxLQUFLLENBQUM7RUFDM0MsS0FBSyxDQUFDLFlBQVksQ0FBQyxhQUFhLEVBQUUsS0FBSyxDQUFDO0VBQ3hDLEtBQUssQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLElBQUksR0FBRyxVQUFVLEdBQUcsTUFBTSxDQUFDO0FBQ3hELENBQUM7Ozs7O0FDVEQsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFDO0FBQ2hELE1BQU0sZUFBZSxHQUFHLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQztBQUV0RCxNQUFNLFFBQVEsR0FBRyxlQUFlO0FBQ2hDLE1BQU0sT0FBTyxHQUFHLGNBQWM7QUFDOUIsTUFBTSxTQUFTLEdBQUcsZ0JBQWdCO0FBQ2xDLE1BQU0sU0FBUyxHQUFHLGdCQUFnQjs7QUFFbEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sV0FBVyxHQUFJLFFBQVEsSUFDM0IsUUFBUSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUcsSUFBSSxJQUFLLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxLQUFLLENBQUM7O0FBRTlFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sQ0FBQyxPQUFPLEdBQUksRUFBRSxJQUFLO0VBQ3ZCO0VBQ0E7RUFDQTtFQUNBLE1BQU0sT0FBTyxHQUNYLEVBQUUsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsS0FBSyxNQUFNO0VBRWpFLE1BQU0sTUFBTSxHQUFHLGFBQWEsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0VBQ3ZELE1BQU0sQ0FBQyxPQUFPLENBQUUsS0FBSyxJQUFLLGVBQWUsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7RUFFMUQsSUFBSSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLEVBQUU7SUFDL0IsRUFBRSxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQztFQUM1QztFQUVBLE1BQU0sUUFBUSxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDO0VBQzNDLE1BQU0sUUFBUSxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLElBQUksV0FBVyxDQUFDLFFBQVEsQ0FBQztFQUVwRSxFQUFFLENBQUMsV0FBVyxHQUFHLE9BQU8sR0FBRyxRQUFRLEdBQUcsUUFBUSxDQUFDLENBQUM7RUFDaEQsRUFBRSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDO0VBQ2pDLE9BQU8sT0FBTztBQUNoQixDQUFDOzs7OztBQzdDRCxNQUFNLFFBQVEsR0FBRyxlQUFlO0FBQ2hDLE1BQU0sUUFBUSxHQUFHLGVBQWU7QUFDaEMsTUFBTSxNQUFNLEdBQUcsUUFBUTtBQUV2QixNQUFNLENBQUMsT0FBTyxHQUFHLENBQUMsTUFBTSxFQUFFLFFBQVEsS0FBSztFQUNyQyxJQUFJLFlBQVksR0FBRyxRQUFRO0VBRTNCLElBQUksT0FBTyxZQUFZLEtBQUssU0FBUyxFQUFFO0lBQ3JDLFlBQVksR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxLQUFLLE9BQU87RUFDMUQ7RUFFQSxNQUFNLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxZQUFZLENBQUM7RUFFM0MsTUFBTSxFQUFFLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUM7RUFDeEMsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7RUFDNUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtJQUNiLE1BQU0sSUFBSSxLQUFLLENBQUMsb0NBQW9DLEVBQUUsR0FBRyxDQUFDO0VBQzVEO0VBRUEsSUFBSSxZQUFZLEVBQUU7SUFDaEIsUUFBUSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUM7RUFDbEMsQ0FBQyxNQUFNO0lBQ0wsUUFBUSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDO0VBQ25DO0VBRUEsT0FBTyxZQUFZO0FBQ3JCLENBQUM7Ozs7O0FDMUJELE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUM7QUFDdEMsTUFBTTtFQUFFLE1BQU0sRUFBRTtBQUFPLENBQUMsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDO0FBRS9DLE1BQU0sYUFBYSxHQUFHLEdBQUcsTUFBTSwyQkFBMkI7QUFFMUQsTUFBTSxDQUFDLE9BQU8sR0FBRyxTQUFTLFFBQVEsQ0FBQyxFQUFFLEVBQUU7RUFDckMsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUI7RUFDdkMsTUFBTSxTQUFTLEdBQ2IsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLEdBQ2hCLFFBQVEsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLEdBQzFCLFFBQVEsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDO0VBRWpDLElBQUksQ0FBQyxTQUFTLEVBQUU7SUFDZCxNQUFNLElBQUksS0FBSyxDQUFDLHlDQUF5QyxFQUFFLEdBQUcsQ0FBQztFQUNqRTtFQUVBLElBQUksYUFBYSxHQUFHLEVBQUU7RUFDdEIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEtBQUs7SUFDbkQsSUFBSSxHQUFHLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxFQUFFO01BQzlCLE1BQU0sYUFBYSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDO01BQ2pFLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDO01BQzFDLE1BQU0saUJBQWlCLEdBQUcsb0JBQW9CLGFBQWEsSUFBSTtNQUMvRCxNQUFNLGlCQUFpQixHQUFHLFNBQVMsQ0FBQyxhQUFhLENBQUMsaUJBQWlCLENBQUM7TUFDcEUsTUFBTSxlQUFlLEdBQUcsRUFBRSxDQUFDLFVBQVU7TUFDckMsTUFBTSxzQkFBc0IsR0FBRyxlQUFlLENBQUMsYUFBYSxDQUMxRCwwQkFDRixDQUFDO01BRUQsTUFBTSxPQUFPLEdBQUcsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUM7TUFDL0MsaUJBQWlCLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDO01BRTFELElBQUksQ0FBQyxpQkFBaUIsRUFBRTtRQUN0QixNQUFNLElBQUksS0FBSyxDQUFDLHFDQUFxQyxhQUFhLEdBQUcsQ0FBQztNQUN4RTs7TUFFQTtNQUNBLE1BQU0sY0FBYyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsa0JBQWtCLElBQUksaUJBQWlCO01BQ3pFLE1BQU0sZ0JBQWdCLEdBQ3BCLEVBQUUsQ0FBQyxPQUFPLENBQUMsb0JBQW9CLElBQUksbUJBQW1CO01BQ3hELElBQUksZUFBZSxHQUFHLEdBQUcsaUJBQWlCLENBQUMsV0FBVyxHQUFHO01BRXpELElBQUksaUJBQWlCLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsRUFBRTtRQUN2RCxlQUFlLElBQUksY0FBYztNQUNuQyxDQUFDLE1BQU07UUFDTCxlQUFlLElBQUksZ0JBQWdCO01BQ3JDOztNQUVBO01BQ0EsaUJBQWlCLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxlQUFlLENBQUM7O01BRTdEO01BQ0EsYUFBYSxJQUFJLEdBQUcsZUFBZSxJQUFJOztNQUV2QztNQUNBLE1BQU0sY0FBYyxHQUFHLFFBQVEsQ0FBQyxNQUFNO1FBQ3BDLHNCQUFzQixDQUFDLFdBQVcsR0FBRyxhQUFhO01BQ3BELENBQUMsRUFBRSxJQUFJLENBQUM7TUFFUixjQUFjLENBQUMsQ0FBQztJQUNsQjtFQUNGLENBQUMsQ0FBQztBQUNKLENBQUMiLCJmaWxlIjoiZ2VuZXJhdGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbigpe2Z1bmN0aW9uIHIoZSxuLHQpe2Z1bmN0aW9uIG8oaSxmKXtpZighbltpXSl7aWYoIWVbaV0pe3ZhciBjPVwiZnVuY3Rpb25cIj09dHlwZW9mIHJlcXVpcmUmJnJlcXVpcmU7aWYoIWYmJmMpcmV0dXJuIGMoaSwhMCk7aWYodSlyZXR1cm4gdShpLCEwKTt2YXIgYT1uZXcgRXJyb3IoXCJDYW5ub3QgZmluZCBtb2R1bGUgJ1wiK2krXCInXCIpO3Rocm93IGEuY29kZT1cIk1PRFVMRV9OT1RfRk9VTkRcIixhfXZhciBwPW5baV09e2V4cG9ydHM6e319O2VbaV1bMF0uY2FsbChwLmV4cG9ydHMsZnVuY3Rpb24ocil7dmFyIG49ZVtpXVsxXVtyXTtyZXR1cm4gbyhufHxyKX0scCxwLmV4cG9ydHMscixlLG4sdCl9cmV0dXJuIG5baV0uZXhwb3J0c31mb3IodmFyIHU9XCJmdW5jdGlvblwiPT10eXBlb2YgcmVxdWlyZSYmcmVxdWlyZSxpPTA7aTx0Lmxlbmd0aDtpKyspbyh0W2ldKTtyZXR1cm4gb31yZXR1cm4gcn0pKCkiLCIvLyBlbGVtZW50LWNsb3Nlc3QgfCBDQzAtMS4wIHwgZ2l0aHViLmNvbS9qb25hdGhhbnRuZWFsL2Nsb3Nlc3RcblxuKGZ1bmN0aW9uIChFbGVtZW50UHJvdG8pIHtcblx0aWYgKHR5cGVvZiBFbGVtZW50UHJvdG8ubWF0Y2hlcyAhPT0gJ2Z1bmN0aW9uJykge1xuXHRcdEVsZW1lbnRQcm90by5tYXRjaGVzID0gRWxlbWVudFByb3RvLm1zTWF0Y2hlc1NlbGVjdG9yIHx8IEVsZW1lbnRQcm90by5tb3pNYXRjaGVzU2VsZWN0b3IgfHwgRWxlbWVudFByb3RvLndlYmtpdE1hdGNoZXNTZWxlY3RvciB8fCBmdW5jdGlvbiBtYXRjaGVzKHNlbGVjdG9yKSB7XG5cdFx0XHR2YXIgZWxlbWVudCA9IHRoaXM7XG5cdFx0XHR2YXIgZWxlbWVudHMgPSAoZWxlbWVudC5kb2N1bWVudCB8fCBlbGVtZW50Lm93bmVyRG9jdW1lbnQpLnF1ZXJ5U2VsZWN0b3JBbGwoc2VsZWN0b3IpO1xuXHRcdFx0dmFyIGluZGV4ID0gMDtcblxuXHRcdFx0d2hpbGUgKGVsZW1lbnRzW2luZGV4XSAmJiBlbGVtZW50c1tpbmRleF0gIT09IGVsZW1lbnQpIHtcblx0XHRcdFx0KytpbmRleDtcblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIEJvb2xlYW4oZWxlbWVudHNbaW5kZXhdKTtcblx0XHR9O1xuXHR9XG5cblx0aWYgKHR5cGVvZiBFbGVtZW50UHJvdG8uY2xvc2VzdCAhPT0gJ2Z1bmN0aW9uJykge1xuXHRcdEVsZW1lbnRQcm90by5jbG9zZXN0ID0gZnVuY3Rpb24gY2xvc2VzdChzZWxlY3Rvcikge1xuXHRcdFx0dmFyIGVsZW1lbnQgPSB0aGlzO1xuXG5cdFx0XHR3aGlsZSAoZWxlbWVudCAmJiBlbGVtZW50Lm5vZGVUeXBlID09PSAxKSB7XG5cdFx0XHRcdGlmIChlbGVtZW50Lm1hdGNoZXMoc2VsZWN0b3IpKSB7XG5cdFx0XHRcdFx0cmV0dXJuIGVsZW1lbnQ7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRlbGVtZW50ID0gZWxlbWVudC5wYXJlbnROb2RlO1xuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gbnVsbDtcblx0XHR9O1xuXHR9XG59KSh3aW5kb3cuRWxlbWVudC5wcm90b3R5cGUpO1xuIiwiLyogZ2xvYmFsIGRlZmluZSwgS2V5Ym9hcmRFdmVudCwgbW9kdWxlICovXG5cbihmdW5jdGlvbiAoKSB7XG5cbiAgdmFyIGtleWJvYXJkZXZlbnRLZXlQb2x5ZmlsbCA9IHtcbiAgICBwb2x5ZmlsbDogcG9seWZpbGwsXG4gICAga2V5czoge1xuICAgICAgMzogJ0NhbmNlbCcsXG4gICAgICA2OiAnSGVscCcsXG4gICAgICA4OiAnQmFja3NwYWNlJyxcbiAgICAgIDk6ICdUYWInLFxuICAgICAgMTI6ICdDbGVhcicsXG4gICAgICAxMzogJ0VudGVyJyxcbiAgICAgIDE2OiAnU2hpZnQnLFxuICAgICAgMTc6ICdDb250cm9sJyxcbiAgICAgIDE4OiAnQWx0JyxcbiAgICAgIDE5OiAnUGF1c2UnLFxuICAgICAgMjA6ICdDYXBzTG9jaycsXG4gICAgICAyNzogJ0VzY2FwZScsXG4gICAgICAyODogJ0NvbnZlcnQnLFxuICAgICAgMjk6ICdOb25Db252ZXJ0JyxcbiAgICAgIDMwOiAnQWNjZXB0JyxcbiAgICAgIDMxOiAnTW9kZUNoYW5nZScsXG4gICAgICAzMjogJyAnLFxuICAgICAgMzM6ICdQYWdlVXAnLFxuICAgICAgMzQ6ICdQYWdlRG93bicsXG4gICAgICAzNTogJ0VuZCcsXG4gICAgICAzNjogJ0hvbWUnLFxuICAgICAgMzc6ICdBcnJvd0xlZnQnLFxuICAgICAgMzg6ICdBcnJvd1VwJyxcbiAgICAgIDM5OiAnQXJyb3dSaWdodCcsXG4gICAgICA0MDogJ0Fycm93RG93bicsXG4gICAgICA0MTogJ1NlbGVjdCcsXG4gICAgICA0MjogJ1ByaW50JyxcbiAgICAgIDQzOiAnRXhlY3V0ZScsXG4gICAgICA0NDogJ1ByaW50U2NyZWVuJyxcbiAgICAgIDQ1OiAnSW5zZXJ0JyxcbiAgICAgIDQ2OiAnRGVsZXRlJyxcbiAgICAgIDQ4OiBbJzAnLCAnKSddLFxuICAgICAgNDk6IFsnMScsICchJ10sXG4gICAgICA1MDogWycyJywgJ0AnXSxcbiAgICAgIDUxOiBbJzMnLCAnIyddLFxuICAgICAgNTI6IFsnNCcsICckJ10sXG4gICAgICA1MzogWyc1JywgJyUnXSxcbiAgICAgIDU0OiBbJzYnLCAnXiddLFxuICAgICAgNTU6IFsnNycsICcmJ10sXG4gICAgICA1NjogWyc4JywgJyonXSxcbiAgICAgIDU3OiBbJzknLCAnKCddLFxuICAgICAgOTE6ICdPUycsXG4gICAgICA5MzogJ0NvbnRleHRNZW51JyxcbiAgICAgIDE0NDogJ051bUxvY2snLFxuICAgICAgMTQ1OiAnU2Nyb2xsTG9jaycsXG4gICAgICAxODE6ICdWb2x1bWVNdXRlJyxcbiAgICAgIDE4MjogJ1ZvbHVtZURvd24nLFxuICAgICAgMTgzOiAnVm9sdW1lVXAnLFxuICAgICAgMTg2OiBbJzsnLCAnOiddLFxuICAgICAgMTg3OiBbJz0nLCAnKyddLFxuICAgICAgMTg4OiBbJywnLCAnPCddLFxuICAgICAgMTg5OiBbJy0nLCAnXyddLFxuICAgICAgMTkwOiBbJy4nLCAnPiddLFxuICAgICAgMTkxOiBbJy8nLCAnPyddLFxuICAgICAgMTkyOiBbJ2AnLCAnfiddLFxuICAgICAgMjE5OiBbJ1snLCAneyddLFxuICAgICAgMjIwOiBbJ1xcXFwnLCAnfCddLFxuICAgICAgMjIxOiBbJ10nLCAnfSddLFxuICAgICAgMjIyOiBbXCInXCIsICdcIiddLFxuICAgICAgMjI0OiAnTWV0YScsXG4gICAgICAyMjU6ICdBbHRHcmFwaCcsXG4gICAgICAyNDY6ICdBdHRuJyxcbiAgICAgIDI0NzogJ0NyU2VsJyxcbiAgICAgIDI0ODogJ0V4U2VsJyxcbiAgICAgIDI0OTogJ0VyYXNlRW9mJyxcbiAgICAgIDI1MDogJ1BsYXknLFxuICAgICAgMjUxOiAnWm9vbU91dCdcbiAgICB9XG4gIH07XG5cbiAgLy8gRnVuY3Rpb24ga2V5cyAoRjEtMjQpLlxuICB2YXIgaTtcbiAgZm9yIChpID0gMTsgaSA8IDI1OyBpKyspIHtcbiAgICBrZXlib2FyZGV2ZW50S2V5UG9seWZpbGwua2V5c1sxMTEgKyBpXSA9ICdGJyArIGk7XG4gIH1cblxuICAvLyBQcmludGFibGUgQVNDSUkgY2hhcmFjdGVycy5cbiAgdmFyIGxldHRlciA9ICcnO1xuICBmb3IgKGkgPSA2NTsgaSA8IDkxOyBpKyspIHtcbiAgICBsZXR0ZXIgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGkpO1xuICAgIGtleWJvYXJkZXZlbnRLZXlQb2x5ZmlsbC5rZXlzW2ldID0gW2xldHRlci50b0xvd2VyQ2FzZSgpLCBsZXR0ZXIudG9VcHBlckNhc2UoKV07XG4gIH1cblxuICBmdW5jdGlvbiBwb2x5ZmlsbCAoKSB7XG4gICAgaWYgKCEoJ0tleWJvYXJkRXZlbnQnIGluIHdpbmRvdykgfHxcbiAgICAgICAgJ2tleScgaW4gS2V5Ym9hcmRFdmVudC5wcm90b3R5cGUpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBQb2x5ZmlsbCBga2V5YCBvbiBgS2V5Ym9hcmRFdmVudGAuXG4gICAgdmFyIHByb3RvID0ge1xuICAgICAgZ2V0OiBmdW5jdGlvbiAoeCkge1xuICAgICAgICB2YXIga2V5ID0ga2V5Ym9hcmRldmVudEtleVBvbHlmaWxsLmtleXNbdGhpcy53aGljaCB8fCB0aGlzLmtleUNvZGVdO1xuXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGtleSkpIHtcbiAgICAgICAgICBrZXkgPSBrZXlbK3RoaXMuc2hpZnRLZXldO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGtleTtcbiAgICAgIH1cbiAgICB9O1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShLZXlib2FyZEV2ZW50LnByb3RvdHlwZSwgJ2tleScsIHByb3RvKTtcbiAgICByZXR1cm4gcHJvdG87XG4gIH1cblxuICBpZiAodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kKSB7XG4gICAgZGVmaW5lKCdrZXlib2FyZGV2ZW50LWtleS1wb2x5ZmlsbCcsIGtleWJvYXJkZXZlbnRLZXlQb2x5ZmlsbCk7XG4gIH0gZWxzZSBpZiAodHlwZW9mIGV4cG9ydHMgIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgbW9kdWxlLmV4cG9ydHMgPSBrZXlib2FyZGV2ZW50S2V5UG9seWZpbGw7XG4gIH0gZWxzZSBpZiAod2luZG93KSB7XG4gICAgd2luZG93LmtleWJvYXJkZXZlbnRLZXlQb2x5ZmlsbCA9IGtleWJvYXJkZXZlbnRLZXlQb2x5ZmlsbDtcbiAgfVxuXG59KSgpO1xuIiwiLypcbm9iamVjdC1hc3NpZ25cbihjKSBTaW5kcmUgU29yaHVzXG5AbGljZW5zZSBNSVRcbiovXG5cbid1c2Ugc3RyaWN0Jztcbi8qIGVzbGludC1kaXNhYmxlIG5vLXVudXNlZC12YXJzICovXG52YXIgZ2V0T3duUHJvcGVydHlTeW1ib2xzID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scztcbnZhciBoYXNPd25Qcm9wZXJ0eSA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG52YXIgcHJvcElzRW51bWVyYWJsZSA9IE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGU7XG5cbmZ1bmN0aW9uIHRvT2JqZWN0KHZhbCkge1xuXHRpZiAodmFsID09PSBudWxsIHx8IHZhbCA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0dGhyb3cgbmV3IFR5cGVFcnJvcignT2JqZWN0LmFzc2lnbiBjYW5ub3QgYmUgY2FsbGVkIHdpdGggbnVsbCBvciB1bmRlZmluZWQnKTtcblx0fVxuXG5cdHJldHVybiBPYmplY3QodmFsKTtcbn1cblxuZnVuY3Rpb24gc2hvdWxkVXNlTmF0aXZlKCkge1xuXHR0cnkge1xuXHRcdGlmICghT2JqZWN0LmFzc2lnbikge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdC8vIERldGVjdCBidWdneSBwcm9wZXJ0eSBlbnVtZXJhdGlvbiBvcmRlciBpbiBvbGRlciBWOCB2ZXJzaW9ucy5cblxuXHRcdC8vIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC92OC9pc3N1ZXMvZGV0YWlsP2lkPTQxMThcblx0XHR2YXIgdGVzdDEgPSBuZXcgU3RyaW5nKCdhYmMnKTsgIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tbmV3LXdyYXBwZXJzXG5cdFx0dGVzdDFbNV0gPSAnZGUnO1xuXHRcdGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0ZXN0MSlbMF0gPT09ICc1Jykge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdC8vIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC92OC9pc3N1ZXMvZGV0YWlsP2lkPTMwNTZcblx0XHR2YXIgdGVzdDIgPSB7fTtcblx0XHRmb3IgKHZhciBpID0gMDsgaSA8IDEwOyBpKyspIHtcblx0XHRcdHRlc3QyWydfJyArIFN0cmluZy5mcm9tQ2hhckNvZGUoaSldID0gaTtcblx0XHR9XG5cdFx0dmFyIG9yZGVyMiA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRlc3QyKS5tYXAoZnVuY3Rpb24gKG4pIHtcblx0XHRcdHJldHVybiB0ZXN0MltuXTtcblx0XHR9KTtcblx0XHRpZiAob3JkZXIyLmpvaW4oJycpICE9PSAnMDEyMzQ1Njc4OScpIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHQvLyBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvdjgvaXNzdWVzL2RldGFpbD9pZD0zMDU2XG5cdFx0dmFyIHRlc3QzID0ge307XG5cdFx0J2FiY2RlZmdoaWprbG1ub3BxcnN0Jy5zcGxpdCgnJykuZm9yRWFjaChmdW5jdGlvbiAobGV0dGVyKSB7XG5cdFx0XHR0ZXN0M1tsZXR0ZXJdID0gbGV0dGVyO1xuXHRcdH0pO1xuXHRcdGlmIChPYmplY3Qua2V5cyhPYmplY3QuYXNzaWduKHt9LCB0ZXN0MykpLmpvaW4oJycpICE9PVxuXHRcdFx0XHQnYWJjZGVmZ2hpamtsbW5vcHFyc3QnKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRydWU7XG5cdH0gY2F0Y2ggKGVycikge1xuXHRcdC8vIFdlIGRvbid0IGV4cGVjdCBhbnkgb2YgdGhlIGFib3ZlIHRvIHRocm93LCBidXQgYmV0dGVyIHRvIGJlIHNhZmUuXG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gc2hvdWxkVXNlTmF0aXZlKCkgPyBPYmplY3QuYXNzaWduIDogZnVuY3Rpb24gKHRhcmdldCwgc291cmNlKSB7XG5cdHZhciBmcm9tO1xuXHR2YXIgdG8gPSB0b09iamVjdCh0YXJnZXQpO1xuXHR2YXIgc3ltYm9scztcblxuXHRmb3IgKHZhciBzID0gMTsgcyA8IGFyZ3VtZW50cy5sZW5ndGg7IHMrKykge1xuXHRcdGZyb20gPSBPYmplY3QoYXJndW1lbnRzW3NdKTtcblxuXHRcdGZvciAodmFyIGtleSBpbiBmcm9tKSB7XG5cdFx0XHRpZiAoaGFzT3duUHJvcGVydHkuY2FsbChmcm9tLCBrZXkpKSB7XG5cdFx0XHRcdHRvW2tleV0gPSBmcm9tW2tleV07XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0aWYgKGdldE93blByb3BlcnR5U3ltYm9scykge1xuXHRcdFx0c3ltYm9scyA9IGdldE93blByb3BlcnR5U3ltYm9scyhmcm9tKTtcblx0XHRcdGZvciAodmFyIGkgPSAwOyBpIDwgc3ltYm9scy5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRpZiAocHJvcElzRW51bWVyYWJsZS5jYWxsKGZyb20sIHN5bWJvbHNbaV0pKSB7XG5cdFx0XHRcdFx0dG9bc3ltYm9sc1tpXV0gPSBmcm9tW3N5bWJvbHNbaV1dO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIHRvO1xufTtcbiIsImNvbnN0IGFzc2lnbiA9IHJlcXVpcmUoJ29iamVjdC1hc3NpZ24nKTtcbmNvbnN0IGRlbGVnYXRlID0gcmVxdWlyZSgnLi4vZGVsZWdhdGUnKTtcbmNvbnN0IGRlbGVnYXRlQWxsID0gcmVxdWlyZSgnLi4vZGVsZWdhdGVBbGwnKTtcblxuY29uc3QgREVMRUdBVEVfUEFUVEVSTiA9IC9eKC4rKTpkZWxlZ2F0ZVxcKCguKylcXCkkLztcbmNvbnN0IFNQQUNFID0gJyAnO1xuXG5jb25zdCBnZXRMaXN0ZW5lcnMgPSBmdW5jdGlvbih0eXBlLCBoYW5kbGVyKSB7XG4gIHZhciBtYXRjaCA9IHR5cGUubWF0Y2goREVMRUdBVEVfUEFUVEVSTik7XG4gIHZhciBzZWxlY3RvcjtcbiAgaWYgKG1hdGNoKSB7XG4gICAgdHlwZSA9IG1hdGNoWzFdO1xuICAgIHNlbGVjdG9yID0gbWF0Y2hbMl07XG4gIH1cblxuICB2YXIgb3B0aW9ucztcbiAgaWYgKHR5cGVvZiBoYW5kbGVyID09PSAnb2JqZWN0Jykge1xuICAgIG9wdGlvbnMgPSB7XG4gICAgICBjYXB0dXJlOiBwb3BLZXkoaGFuZGxlciwgJ2NhcHR1cmUnKSxcbiAgICAgIHBhc3NpdmU6IHBvcEtleShoYW5kbGVyLCAncGFzc2l2ZScpXG4gICAgfTtcbiAgfVxuXG4gIHZhciBsaXN0ZW5lciA9IHtcbiAgICBzZWxlY3Rvcjogc2VsZWN0b3IsXG4gICAgZGVsZWdhdGU6ICh0eXBlb2YgaGFuZGxlciA9PT0gJ29iamVjdCcpXG4gICAgICA/IGRlbGVnYXRlQWxsKGhhbmRsZXIpXG4gICAgICA6IHNlbGVjdG9yXG4gICAgICAgID8gZGVsZWdhdGUoc2VsZWN0b3IsIGhhbmRsZXIpXG4gICAgICAgIDogaGFuZGxlcixcbiAgICBvcHRpb25zOiBvcHRpb25zXG4gIH07XG5cbiAgaWYgKHR5cGUuaW5kZXhPZihTUEFDRSkgPiAtMSkge1xuICAgIHJldHVybiB0eXBlLnNwbGl0KFNQQUNFKS5tYXAoZnVuY3Rpb24oX3R5cGUpIHtcbiAgICAgIHJldHVybiBhc3NpZ24oe3R5cGU6IF90eXBlfSwgbGlzdGVuZXIpO1xuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIGxpc3RlbmVyLnR5cGUgPSB0eXBlO1xuICAgIHJldHVybiBbbGlzdGVuZXJdO1xuICB9XG59O1xuXG52YXIgcG9wS2V5ID0gZnVuY3Rpb24ob2JqLCBrZXkpIHtcbiAgdmFyIHZhbHVlID0gb2JqW2tleV07XG4gIGRlbGV0ZSBvYmpba2V5XTtcbiAgcmV0dXJuIHZhbHVlO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBiZWhhdmlvcihldmVudHMsIHByb3BzKSB7XG4gIGNvbnN0IGxpc3RlbmVycyA9IE9iamVjdC5rZXlzKGV2ZW50cylcbiAgICAucmVkdWNlKGZ1bmN0aW9uKG1lbW8sIHR5cGUpIHtcbiAgICAgIHZhciBsaXN0ZW5lcnMgPSBnZXRMaXN0ZW5lcnModHlwZSwgZXZlbnRzW3R5cGVdKTtcbiAgICAgIHJldHVybiBtZW1vLmNvbmNhdChsaXN0ZW5lcnMpO1xuICAgIH0sIFtdKTtcblxuICByZXR1cm4gYXNzaWduKHtcbiAgICBhZGQ6IGZ1bmN0aW9uIGFkZEJlaGF2aW9yKGVsZW1lbnQpIHtcbiAgICAgIGxpc3RlbmVycy5mb3JFYWNoKGZ1bmN0aW9uKGxpc3RlbmVyKSB7XG4gICAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICAgICBsaXN0ZW5lci50eXBlLFxuICAgICAgICAgIGxpc3RlbmVyLmRlbGVnYXRlLFxuICAgICAgICAgIGxpc3RlbmVyLm9wdGlvbnNcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgcmVtb3ZlOiBmdW5jdGlvbiByZW1vdmVCZWhhdmlvcihlbGVtZW50KSB7XG4gICAgICBsaXN0ZW5lcnMuZm9yRWFjaChmdW5jdGlvbihsaXN0ZW5lcikge1xuICAgICAgICBlbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXG4gICAgICAgICAgbGlzdGVuZXIudHlwZSxcbiAgICAgICAgICBsaXN0ZW5lci5kZWxlZ2F0ZSxcbiAgICAgICAgICBsaXN0ZW5lci5vcHRpb25zXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICB9XG4gIH0sIHByb3BzKTtcbn07XG4iLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGNvbXBvc2UoZnVuY3Rpb25zKSB7XG4gIHJldHVybiBmdW5jdGlvbihlKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9ucy5zb21lKGZ1bmN0aW9uKGZuKSB7XG4gICAgICByZXR1cm4gZm4uY2FsbCh0aGlzLCBlKSA9PT0gZmFsc2U7XG4gICAgfSwgdGhpcyk7XG4gIH07XG59O1xuIiwiLy8gcG9seWZpbGwgRWxlbWVudC5wcm90b3R5cGUuY2xvc2VzdFxucmVxdWlyZSgnZWxlbWVudC1jbG9zZXN0Jyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gZGVsZWdhdGUoc2VsZWN0b3IsIGZuKSB7XG4gIHJldHVybiBmdW5jdGlvbiBkZWxlZ2F0aW9uKGV2ZW50KSB7XG4gICAgdmFyIHRhcmdldCA9IGV2ZW50LnRhcmdldC5jbG9zZXN0KHNlbGVjdG9yKTtcbiAgICBpZiAodGFyZ2V0KSB7XG4gICAgICByZXR1cm4gZm4uY2FsbCh0YXJnZXQsIGV2ZW50KTtcbiAgICB9XG4gIH1cbn07XG4iLCJjb25zdCBkZWxlZ2F0ZSA9IHJlcXVpcmUoJy4uL2RlbGVnYXRlJyk7XG5jb25zdCBjb21wb3NlID0gcmVxdWlyZSgnLi4vY29tcG9zZScpO1xuXG5jb25zdCBTUExBVCA9ICcqJztcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBkZWxlZ2F0ZUFsbChzZWxlY3RvcnMpIHtcbiAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKHNlbGVjdG9ycylcblxuICAvLyBYWFggb3B0aW1pemF0aW9uOiBpZiB0aGVyZSBpcyBvbmx5IG9uZSBoYW5kbGVyIGFuZCBpdCBhcHBsaWVzIHRvXG4gIC8vIGFsbCBlbGVtZW50cyAodGhlIFwiKlwiIENTUyBzZWxlY3RvciksIHRoZW4ganVzdCByZXR1cm4gdGhhdFxuICAvLyBoYW5kbGVyXG4gIGlmIChrZXlzLmxlbmd0aCA9PT0gMSAmJiBrZXlzWzBdID09PSBTUExBVCkge1xuICAgIHJldHVybiBzZWxlY3RvcnNbU1BMQVRdO1xuICB9XG5cbiAgY29uc3QgZGVsZWdhdGVzID0ga2V5cy5yZWR1Y2UoZnVuY3Rpb24obWVtbywgc2VsZWN0b3IpIHtcbiAgICBtZW1vLnB1c2goZGVsZWdhdGUoc2VsZWN0b3IsIHNlbGVjdG9yc1tzZWxlY3Rvcl0pKTtcbiAgICByZXR1cm4gbWVtbztcbiAgfSwgW10pO1xuICByZXR1cm4gY29tcG9zZShkZWxlZ2F0ZXMpO1xufTtcbiIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gaWdub3JlKGVsZW1lbnQsIGZuKSB7XG4gIHJldHVybiBmdW5jdGlvbiBpZ25vcmFuY2UoZSkge1xuICAgIGlmIChlbGVtZW50ICE9PSBlLnRhcmdldCAmJiAhZWxlbWVudC5jb250YWlucyhlLnRhcmdldCkpIHtcbiAgICAgIHJldHVybiBmbi5jYWxsKHRoaXMsIGUpO1xuICAgIH1cbiAgfTtcbn07XG4iLCJtb2R1bGUuZXhwb3J0cyA9IHtcbiAgYmVoYXZpb3I6ICAgICByZXF1aXJlKCcuL2JlaGF2aW9yJyksXG4gIGRlbGVnYXRlOiAgICAgcmVxdWlyZSgnLi9kZWxlZ2F0ZScpLFxuICBkZWxlZ2F0ZUFsbDogIHJlcXVpcmUoJy4vZGVsZWdhdGVBbGwnKSxcbiAgaWdub3JlOiAgICAgICByZXF1aXJlKCcuL2lnbm9yZScpLFxuICBrZXltYXA6ICAgICAgIHJlcXVpcmUoJy4va2V5bWFwJyksXG59O1xuIiwicmVxdWlyZSgna2V5Ym9hcmRldmVudC1rZXktcG9seWZpbGwnKTtcblxuLy8gdGhlc2UgYXJlIHRoZSBvbmx5IHJlbGV2YW50IG1vZGlmaWVycyBzdXBwb3J0ZWQgb24gYWxsIHBsYXRmb3Jtcyxcbi8vIGFjY29yZGluZyB0byBNRE46XG4vLyA8aHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0tleWJvYXJkRXZlbnQvZ2V0TW9kaWZpZXJTdGF0ZT5cbmNvbnN0IE1PRElGSUVSUyA9IHtcbiAgJ0FsdCc6ICAgICAgJ2FsdEtleScsXG4gICdDb250cm9sJzogICdjdHJsS2V5JyxcbiAgJ0N0cmwnOiAgICAgJ2N0cmxLZXknLFxuICAnU2hpZnQnOiAgICAnc2hpZnRLZXknXG59O1xuXG5jb25zdCBNT0RJRklFUl9TRVBBUkFUT1IgPSAnKyc7XG5cbmNvbnN0IGdldEV2ZW50S2V5ID0gZnVuY3Rpb24oZXZlbnQsIGhhc01vZGlmaWVycykge1xuICB2YXIga2V5ID0gZXZlbnQua2V5O1xuICBpZiAoaGFzTW9kaWZpZXJzKSB7XG4gICAgZm9yICh2YXIgbW9kaWZpZXIgaW4gTU9ESUZJRVJTKSB7XG4gICAgICBpZiAoZXZlbnRbTU9ESUZJRVJTW21vZGlmaWVyXV0gPT09IHRydWUpIHtcbiAgICAgICAga2V5ID0gW21vZGlmaWVyLCBrZXldLmpvaW4oTU9ESUZJRVJfU0VQQVJBVE9SKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIGtleTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24ga2V5bWFwKGtleXMpIHtcbiAgY29uc3QgaGFzTW9kaWZpZXJzID0gT2JqZWN0LmtleXMoa2V5cykuc29tZShmdW5jdGlvbihrZXkpIHtcbiAgICByZXR1cm4ga2V5LmluZGV4T2YoTU9ESUZJRVJfU0VQQVJBVE9SKSA+IC0xO1xuICB9KTtcbiAgcmV0dXJuIGZ1bmN0aW9uKGV2ZW50KSB7XG4gICAgdmFyIGtleSA9IGdldEV2ZW50S2V5KGV2ZW50LCBoYXNNb2RpZmllcnMpO1xuICAgIHJldHVybiBba2V5LCBrZXkudG9Mb3dlckNhc2UoKV1cbiAgICAgIC5yZWR1Y2UoZnVuY3Rpb24ocmVzdWx0LCBfa2V5KSB7XG4gICAgICAgIGlmIChfa2V5IGluIGtleXMpIHtcbiAgICAgICAgICByZXN1bHQgPSBrZXlzW2tleV0uY2FsbCh0aGlzLCBldmVudCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH0sIHVuZGVmaW5lZCk7XG4gIH07XG59O1xuXG5tb2R1bGUuZXhwb3J0cy5NT0RJRklFUlMgPSBNT0RJRklFUlM7XG4iLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIG9uY2UobGlzdGVuZXIsIG9wdGlvbnMpIHtcbiAgdmFyIHdyYXBwZWQgPSBmdW5jdGlvbiB3cmFwcGVkT25jZShlKSB7XG4gICAgZS5jdXJyZW50VGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoZS50eXBlLCB3cmFwcGVkLCBvcHRpb25zKTtcbiAgICByZXR1cm4gbGlzdGVuZXIuY2FsbCh0aGlzLCBlKTtcbiAgfTtcbiAgcmV0dXJuIHdyYXBwZWQ7XG59O1xuXG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBSRV9UUklNID0gLyheXFxzKyl8KFxccyskKS9nO1xudmFyIFJFX1NQTElUID0gL1xccysvO1xuXG52YXIgdHJpbSA9IFN0cmluZy5wcm90b3R5cGUudHJpbVxuICA/IGZ1bmN0aW9uKHN0cikgeyByZXR1cm4gc3RyLnRyaW0oKTsgfVxuICA6IGZ1bmN0aW9uKHN0cikgeyByZXR1cm4gc3RyLnJlcGxhY2UoUkVfVFJJTSwgJycpOyB9O1xuXG52YXIgcXVlcnlCeUlkID0gZnVuY3Rpb24oaWQpIHtcbiAgcmV0dXJuIHRoaXMucXVlcnlTZWxlY3RvcignW2lkPVwiJyArIGlkLnJlcGxhY2UoL1wiL2csICdcXFxcXCInKSArICdcIl0nKTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gcmVzb2x2ZUlkcyhpZHMsIGRvYykge1xuICBpZiAodHlwZW9mIGlkcyAhPT0gJ3N0cmluZycpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIGEgc3RyaW5nIGJ1dCBnb3QgJyArICh0eXBlb2YgaWRzKSk7XG4gIH1cblxuICBpZiAoIWRvYykge1xuICAgIGRvYyA9IHdpbmRvdy5kb2N1bWVudDtcbiAgfVxuXG4gIHZhciBnZXRFbGVtZW50QnlJZCA9IGRvYy5nZXRFbGVtZW50QnlJZFxuICAgID8gZG9jLmdldEVsZW1lbnRCeUlkLmJpbmQoZG9jKVxuICAgIDogcXVlcnlCeUlkLmJpbmQoZG9jKTtcblxuICBpZHMgPSB0cmltKGlkcykuc3BsaXQoUkVfU1BMSVQpO1xuXG4gIC8vIFhYWCB3ZSBjYW4gc2hvcnQtY2lyY3VpdCBoZXJlIGJlY2F1c2UgdHJpbW1pbmcgYW5kIHNwbGl0dGluZyBhXG4gIC8vIHN0cmluZyBvZiBqdXN0IHdoaXRlc3BhY2UgcHJvZHVjZXMgYW4gYXJyYXkgY29udGFpbmluZyBhIHNpbmdsZSxcbiAgLy8gZW1wdHkgc3RyaW5nXG4gIGlmIChpZHMubGVuZ3RoID09PSAxICYmIGlkc1swXSA9PT0gJycpIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICByZXR1cm4gaWRzXG4gICAgLm1hcChmdW5jdGlvbihpZCkge1xuICAgICAgdmFyIGVsID0gZ2V0RWxlbWVudEJ5SWQoaWQpO1xuICAgICAgaWYgKCFlbCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ25vIGVsZW1lbnQgd2l0aCBpZDogXCInICsgaWQgKyAnXCInKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBlbDtcbiAgICB9KTtcbn07XG4iLCJjb25zdCBiZWhhdmlvciA9IHJlcXVpcmUoXCIuLi8uLi91c3dkcy1jb3JlL3NyYy9qcy91dGlscy9iZWhhdmlvclwiKTtcbmNvbnN0IHRvZ2dsZUZvcm1JbnB1dCA9IHJlcXVpcmUoXCIuLi8uLi91c3dkcy1jb3JlL3NyYy9qcy91dGlscy90b2dnbGUtZm9ybS1pbnB1dFwiKTtcblxuY29uc3QgeyBDTElDSyB9ID0gcmVxdWlyZShcIi4uLy4uL3Vzd2RzLWNvcmUvc3JjL2pzL2V2ZW50c1wiKTtcbmNvbnN0IHsgcHJlZml4OiBQUkVGSVggfSA9IHJlcXVpcmUoXCIuLi8uLi91c3dkcy1jb3JlL3NyYy9qcy9jb25maWdcIik7XG5cbmNvbnN0IExJTksgPSBgLiR7UFJFRklYfS1zaG93LXBhc3N3b3JkYDtcblxuZnVuY3Rpb24gdG9nZ2xlKGV2ZW50KSB7XG4gIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gIHRvZ2dsZUZvcm1JbnB1dCh0aGlzKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiZWhhdmlvcih7XG4gIFtDTElDS106IHtcbiAgICBbTElOS106IHRvZ2dsZSxcbiAgfSxcbn0pO1xuIiwiY29uc3Qgc2VsZWN0ID0gcmVxdWlyZShcIi4uLy4uL3Vzd2RzLWNvcmUvc3JjL2pzL3V0aWxzL3NlbGVjdFwiKTtcbmNvbnN0IGJlaGF2aW9yID0gcmVxdWlyZShcIi4uLy4uL3Vzd2RzLWNvcmUvc3JjL2pzL3V0aWxzL2JlaGF2aW9yXCIpO1xuY29uc3QgdG9nZ2xlID0gcmVxdWlyZShcIi4uLy4uL3Vzd2RzLWNvcmUvc3JjL2pzL3V0aWxzL3RvZ2dsZVwiKTtcbmNvbnN0IGlzRWxlbWVudEluVmlld3BvcnQgPSByZXF1aXJlKFwiLi4vLi4vdXN3ZHMtY29yZS9zcmMvanMvdXRpbHMvaXMtaW4tdmlld3BvcnRcIik7XG5jb25zdCB7IENMSUNLIH0gPSByZXF1aXJlKFwiLi4vLi4vdXN3ZHMtY29yZS9zcmMvanMvZXZlbnRzXCIpO1xuY29uc3QgeyBwcmVmaXg6IFBSRUZJWCB9ID0gcmVxdWlyZShcIi4uLy4uL3Vzd2RzLWNvcmUvc3JjL2pzL2NvbmZpZ1wiKTtcblxuY29uc3QgQUNDT1JESU9OID0gYC4ke1BSRUZJWH0tYWNjb3JkaW9uLCAuJHtQUkVGSVh9LWFjY29yZGlvbi0tYm9yZGVyZWRgO1xuY29uc3QgQkFOTkVSX0JVVFRPTiA9IGAuJHtQUkVGSVh9LWJhbm5lcl9fYnV0dG9uYDtcbmNvbnN0IEJVVFRPTiA9IGAuJHtQUkVGSVh9LWFjY29yZGlvbl9fYnV0dG9uW2FyaWEtY29udHJvbHNdOm5vdCgke0JBTk5FUl9CVVRUT059KWA7XG5jb25zdCBFWFBBTkRFRCA9IFwiYXJpYS1leHBhbmRlZFwiO1xuY29uc3QgTVVMVElTRUxFQ1RBQkxFID0gXCJkYXRhLWFsbG93LW11bHRpcGxlXCI7XG5cbi8qKlxuICogR2V0IGFuIEFycmF5IG9mIGJ1dHRvbiBlbGVtZW50cyBiZWxvbmdpbmcgZGlyZWN0bHkgdG8gdGhlIGdpdmVuXG4gKiBhY2NvcmRpb24gZWxlbWVudC5cbiAqIEBwYXJhbSB7SFRNTEVsZW1lbnR9IGFjY29yZGlvblxuICogQHJldHVybiB7YXJyYXk8SFRNTEJ1dHRvbkVsZW1lbnQ+fVxuICovXG5jb25zdCBnZXRBY2NvcmRpb25CdXR0b25zID0gKGFjY29yZGlvbikgPT4ge1xuICBjb25zdCBidXR0b25zID0gc2VsZWN0KEJVVFRPTiwgYWNjb3JkaW9uKTtcblxuICByZXR1cm4gYnV0dG9ucy5maWx0ZXIoKGJ1dHRvbikgPT4gYnV0dG9uLmNsb3Nlc3QoQUNDT1JESU9OKSA9PT0gYWNjb3JkaW9uKTtcbn07XG5cbi8qKlxuICogVG9nZ2xlIGEgYnV0dG9uJ3MgXCJwcmVzc2VkXCIgc3RhdGUsIG9wdGlvbmFsbHkgcHJvdmlkaW5nIGEgdGFyZ2V0XG4gKiBzdGF0ZS5cbiAqXG4gKiBAcGFyYW0ge0hUTUxCdXR0b25FbGVtZW50fSBidXR0b25cbiAqIEBwYXJhbSB7Ym9vbGVhbj99IGV4cGFuZGVkIElmIG5vIHN0YXRlIGlzIHByb3ZpZGVkLCB0aGUgY3VycmVudFxuICogc3RhdGUgd2lsbCBiZSB0b2dnbGVkIChmcm9tIGZhbHNlIHRvIHRydWUsIGFuZCB2aWNlLXZlcnNhKS5cbiAqIEByZXR1cm4ge2Jvb2xlYW59IHRoZSByZXN1bHRpbmcgc3RhdGVcbiAqL1xuY29uc3QgdG9nZ2xlQnV0dG9uID0gKGJ1dHRvbiwgZXhwYW5kZWQpID0+IHtcbiAgY29uc3QgYWNjb3JkaW9uID0gYnV0dG9uLmNsb3Nlc3QoQUNDT1JESU9OKTtcbiAgbGV0IHNhZmVFeHBhbmRlZCA9IGV4cGFuZGVkO1xuXG4gIGlmICghYWNjb3JkaW9uKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGAke0JVVFRPTn0gaXMgbWlzc2luZyBvdXRlciAke0FDQ09SRElPTn1gKTtcbiAgfVxuXG4gIHNhZmVFeHBhbmRlZCA9IHRvZ2dsZShidXR0b24sIGV4cGFuZGVkKTtcblxuICAvLyBYWFggbXVsdGlzZWxlY3RhYmxlIGlzIG9wdC1pbiwgdG8gcHJlc2VydmUgbGVnYWN5IGJlaGF2aW9yXG4gIGNvbnN0IG11bHRpc2VsZWN0YWJsZSA9IGFjY29yZGlvbi5oYXNBdHRyaWJ1dGUoTVVMVElTRUxFQ1RBQkxFKTtcblxuICBpZiAoc2FmZUV4cGFuZGVkICYmICFtdWx0aXNlbGVjdGFibGUpIHtcbiAgICBnZXRBY2NvcmRpb25CdXR0b25zKGFjY29yZGlvbikuZm9yRWFjaCgob3RoZXIpID0+IHtcbiAgICAgIGlmIChvdGhlciAhPT0gYnV0dG9uKSB7XG4gICAgICAgIHRvZ2dsZShvdGhlciwgZmFsc2UpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59O1xuXG4vKipcbiAqIEBwYXJhbSB7SFRNTEJ1dHRvbkVsZW1lbnR9IGJ1dHRvblxuICogQHJldHVybiB7Ym9vbGVhbn0gdHJ1ZVxuICovXG5jb25zdCBzaG93QnV0dG9uID0gKGJ1dHRvbikgPT4gdG9nZ2xlQnV0dG9uKGJ1dHRvbiwgdHJ1ZSk7XG5cbi8qKlxuICogQHBhcmFtIHtIVE1MQnV0dG9uRWxlbWVudH0gYnV0dG9uXG4gKiBAcmV0dXJuIHtib29sZWFufSBmYWxzZVxuICovXG5jb25zdCBoaWRlQnV0dG9uID0gKGJ1dHRvbikgPT4gdG9nZ2xlQnV0dG9uKGJ1dHRvbiwgZmFsc2UpO1xuXG5jb25zdCBhY2NvcmRpb24gPSBiZWhhdmlvcihcbiAge1xuICAgIFtDTElDS106IHtcbiAgICAgIFtCVVRUT05dKCkge1xuICAgICAgICB0b2dnbGVCdXR0b24odGhpcyk7XG5cbiAgICAgICAgaWYgKHRoaXMuZ2V0QXR0cmlidXRlKEVYUEFOREVEKSA9PT0gXCJ0cnVlXCIpIHtcbiAgICAgICAgICAvLyBXZSB3ZXJlIGp1c3QgZXhwYW5kZWQsIGJ1dCBpZiBhbm90aGVyIGFjY29yZGlvbiB3YXMgYWxzbyBqdXN0XG4gICAgICAgICAgLy8gY29sbGFwc2VkLCB3ZSBtYXkgbm8gbG9uZ2VyIGJlIGluIHRoZSB2aWV3cG9ydC4gVGhpcyBlbnN1cmVzXG4gICAgICAgICAgLy8gdGhhdCB3ZSBhcmUgc3RpbGwgdmlzaWJsZSwgc28gdGhlIHVzZXIgaXNuJ3QgY29uZnVzZWQuXG4gICAgICAgICAgaWYgKCFpc0VsZW1lbnRJblZpZXdwb3J0KHRoaXMpKSB0aGlzLnNjcm9sbEludG9WaWV3KCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfSxcbiAgfSxcbiAge1xuICAgIGluaXQocm9vdCkge1xuICAgICAgc2VsZWN0KEJVVFRPTiwgcm9vdCkuZm9yRWFjaCgoYnV0dG9uKSA9PiB7XG4gICAgICAgIGNvbnN0IGV4cGFuZGVkID0gYnV0dG9uLmdldEF0dHJpYnV0ZShFWFBBTkRFRCkgPT09IFwidHJ1ZVwiO1xuICAgICAgICB0b2dnbGVCdXR0b24oYnV0dG9uLCBleHBhbmRlZCk7XG4gICAgICB9KTtcbiAgICB9LFxuICAgIEFDQ09SRElPTixcbiAgICBCVVRUT04sXG4gICAgc2hvdzogc2hvd0J1dHRvbixcbiAgICBoaWRlOiBoaWRlQnV0dG9uLFxuICAgIHRvZ2dsZTogdG9nZ2xlQnV0dG9uLFxuICAgIGdldEJ1dHRvbnM6IGdldEFjY29yZGlvbkJ1dHRvbnMsXG4gIH0sXG4pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGFjY29yZGlvbjtcbiIsImNvbnN0IGJlaGF2aW9yID0gcmVxdWlyZShcIi4uLy4uL3Vzd2RzLWNvcmUvc3JjL2pzL3V0aWxzL2JlaGF2aW9yXCIpO1xuY29uc3Qgc2VsZWN0ID0gcmVxdWlyZShcIi4uLy4uL3Vzd2RzLWNvcmUvc3JjL2pzL3V0aWxzL3NlbGVjdFwiKTtcbmNvbnN0IHsgQ0xJQ0sgfSA9IHJlcXVpcmUoXCIuLi8uLi91c3dkcy1jb3JlL3NyYy9qcy9ldmVudHNcIik7XG5jb25zdCB7IHByZWZpeDogUFJFRklYIH0gPSByZXF1aXJlKFwiLi4vLi4vdXN3ZHMtY29yZS9zcmMvanMvY29uZmlnXCIpO1xuY29uc3QgdG9nZ2xlID0gcmVxdWlyZShcIi4uLy4uL3Vzd2RzLWNvcmUvc3JjL2pzL3V0aWxzL3RvZ2dsZVwiKTtcblxuY29uc3QgSEVBREVSID0gYC4ke1BSRUZJWH0tYmFubmVyX19oZWFkZXJgO1xuY29uc3QgRVhQQU5ERURfQ0xBU1MgPSBgJHtQUkVGSVh9LWJhbm5lcl9faGVhZGVyLS1leHBhbmRlZGA7XG5jb25zdCBCQU5ORVJfQlVUVE9OID0gYCR7SEVBREVSfSBbYXJpYS1jb250cm9sc11gO1xuXG4vKipcbiAqIFRvZ2dsZSBCYW5uZXIgZGlzcGxheSBhbmQgY2xhc3MuXG4gKiBAcGFyYW0ge0V2ZW50fSBldmVudFxuICovXG5jb25zdCB0b2dnbGVCYW5uZXIgPSBmdW5jdGlvbiB0b2dnbGVFbChldmVudCkge1xuICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICBjb25zdCB0cmlnZ2VyID0gZXZlbnQudGFyZ2V0LmNsb3Nlc3QoQkFOTkVSX0JVVFRPTik7XG5cbiAgdG9nZ2xlKHRyaWdnZXIpO1xuICB0aGlzLmNsb3Nlc3QoSEVBREVSKS5jbGFzc0xpc3QudG9nZ2xlKEVYUEFOREVEX0NMQVNTKTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gYmVoYXZpb3IoXG4gIHtcbiAgICBbQ0xJQ0tdOiB7XG4gICAgICBbQkFOTkVSX0JVVFRPTl06IHRvZ2dsZUJhbm5lcixcbiAgICB9LFxuICB9LFxuICB7XG4gICAgaW5pdChyb290KSB7XG4gICAgICBzZWxlY3QoQkFOTkVSX0JVVFRPTiwgcm9vdCkuZm9yRWFjaCgoYnV0dG9uKSA9PiB7XG4gICAgICAgIGNvbnN0IGV4cGFuZGVkID0gYnV0dG9uLmdldEF0dHJpYnV0ZShFWFBBTkRFRF9DTEFTUykgPT09IFwidHJ1ZVwiO1xuICAgICAgICB0b2dnbGUoYnV0dG9uLCBleHBhbmRlZCk7XG4gICAgICB9KTtcbiAgICB9LFxuICB9LFxuKTtcbiIsImNvbnN0IGtleW1hcCA9IHJlcXVpcmUoXCJyZWNlcHRvci9rZXltYXBcIik7XG5jb25zdCBiZWhhdmlvciA9IHJlcXVpcmUoXCIuLi8uLi91c3dkcy1jb3JlL3NyYy9qcy91dGlscy9iZWhhdmlvclwiKTtcblxuY29uc3QgQU5DSE9SX0JVVFRPTiA9IGBhW2NsYXNzKj1cInVzYS1idXR0b25cIl1gO1xuXG5jb25zdCB0b2dnbGVCdXR0b24gPSAoZXZlbnQpID0+IHtcbiAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgZXZlbnQudGFyZ2V0LmNsaWNrKCk7XG59O1xuXG5jb25zdCBhbmNob3JCdXR0b24gPSBiZWhhdmlvcih7XG4gIGtleWRvd246IHtcbiAgICBbQU5DSE9SX0JVVFRPTl06IGtleW1hcCh7XG4gICAgICBcIiBcIjogdG9nZ2xlQnV0dG9uLFxuICAgIH0pLFxuICB9LFxufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gYW5jaG9yQnV0dG9uO1xuIiwiY29uc3Qgc2VsZWN0ID0gcmVxdWlyZShcIi4uLy4uL3Vzd2RzLWNvcmUvc3JjL2pzL3V0aWxzL3NlbGVjdFwiKTtcbmNvbnN0IGJlaGF2aW9yID0gcmVxdWlyZShcIi4uLy4uL3Vzd2RzLWNvcmUvc3JjL2pzL3V0aWxzL2JlaGF2aW9yXCIpO1xuY29uc3QgZGVib3VuY2UgPSByZXF1aXJlKFwiLi4vLi4vdXN3ZHMtY29yZS9zcmMvanMvdXRpbHMvZGVib3VuY2VcIik7XG5jb25zdCB7IHByZWZpeDogUFJFRklYIH0gPSByZXF1aXJlKFwiLi4vLi4vdXN3ZHMtY29yZS9zcmMvanMvY29uZmlnXCIpO1xuXG5jb25zdCBDSEFSQUNURVJfQ09VTlRfQ0xBU1MgPSBgJHtQUkVGSVh9LWNoYXJhY3Rlci1jb3VudGA7XG5jb25zdCBDSEFSQUNURVJfQ09VTlQgPSBgLiR7Q0hBUkFDVEVSX0NPVU5UX0NMQVNTfWA7XG5jb25zdCBGT1JNX0dST1VQX0NMQVNTID0gYCR7UFJFRklYfS1mb3JtLWdyb3VwYDtcbmNvbnN0IEZPUk1fR1JPVVBfRVJST1JfQ0xBU1MgPSBgJHtGT1JNX0dST1VQX0NMQVNTfS0tZXJyb3JgO1xuY29uc3QgRk9STV9HUk9VUCA9IGAuJHtGT1JNX0dST1VQX0NMQVNTfWA7XG5jb25zdCBMQUJFTF9DTEFTUyA9IGAke1BSRUZJWH0tbGFiZWxgO1xuY29uc3QgTEFCRUxfRVJST1JfQ0xBU1MgPSBgJHtMQUJFTF9DTEFTU30tLWVycm9yYDtcbmNvbnN0IElOUFVUID0gYC4ke1BSRUZJWH0tY2hhcmFjdGVyLWNvdW50X19maWVsZGA7XG5jb25zdCBJTlBVVF9FUlJPUl9DTEFTUyA9IGAke1BSRUZJWH0taW5wdXQtLWVycm9yYDtcbmNvbnN0IE1FU1NBR0UgPSBgLiR7UFJFRklYfS1jaGFyYWN0ZXItY291bnRfX21lc3NhZ2VgO1xuY29uc3QgVkFMSURBVElPTl9NRVNTQUdFID0gXCJUaGUgY29udGVudCBpcyB0b28gbG9uZy5cIjtcbmNvbnN0IE1FU1NBR0VfSU5WQUxJRF9DTEFTUyA9IGAke1BSRUZJWH0tY2hhcmFjdGVyLWNvdW50X19zdGF0dXMtLWludmFsaWRgO1xuY29uc3QgU1RBVFVTX01FU1NBR0VfQ0xBU1MgPSBgJHtDSEFSQUNURVJfQ09VTlRfQ0xBU1N9X19zdGF0dXNgO1xuY29uc3QgU1RBVFVTX01FU1NBR0VfU1JfT05MWV9DTEFTUyA9IGAke0NIQVJBQ1RFUl9DT1VOVF9DTEFTU31fX3NyLXN0YXR1c2A7XG5jb25zdCBTVEFUVVNfTUVTU0FHRSA9IGAuJHtTVEFUVVNfTUVTU0FHRV9DTEFTU31gO1xuY29uc3QgU1RBVFVTX01FU1NBR0VfU1JfT05MWSA9IGAuJHtTVEFUVVNfTUVTU0FHRV9TUl9PTkxZX0NMQVNTfWA7XG5jb25zdCBERUZBVUxUX1NUQVRVU19MQUJFTCA9IGBjaGFyYWN0ZXJzIGFsbG93ZWRgO1xuXG4vKipcbiAqIFJldHVybnMgdGhlIHJvb3QsIGZvcm0gZ3JvdXAsIGxhYmVsLCBhbmQgbWVzc2FnZSBlbGVtZW50cyBmb3IgYW4gY2hhcmFjdGVyIGNvdW50IGlucHV0XG4gKlxuICogQHBhcmFtIHtIVE1MSW5wdXRFbGVtZW50fEhUTUxUZXh0QXJlYUVsZW1lbnR9IGlucHV0RWwgVGhlIGNoYXJhY3RlciBjb3VudCBpbnB1dCBlbGVtZW50XG4gKiBAcmV0dXJucyB7Q2hhcmFjdGVyQ291bnRFbGVtZW50c30gZWxlbWVudHMgVGhlIHJvb3QgZm9ybSBncm91cCwgaW5wdXQgSUQsIGxhYmVsLCBhbmQgbWVzc2FnZSBlbGVtZW50LlxuICovXG5jb25zdCBnZXRDaGFyYWN0ZXJDb3VudEVsZW1lbnRzID0gKGlucHV0RWwpID0+IHtcbiAgY29uc3QgY2hhcmFjdGVyQ291bnRFbCA9IGlucHV0RWwuY2xvc2VzdChDSEFSQUNURVJfQ09VTlQpO1xuXG4gIGlmICghY2hhcmFjdGVyQ291bnRFbCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgJHtJTlBVVH0gaXMgbWlzc2luZyBvdXRlciAke0NIQVJBQ1RFUl9DT1VOVH1gKTtcbiAgfVxuXG4gIGNvbnN0IGZvcm1Hcm91cEVsID0gY2hhcmFjdGVyQ291bnRFbC5xdWVyeVNlbGVjdG9yKEZPUk1fR1JPVVApO1xuXG4gIGNvbnN0IGlucHV0SUQgPSBpbnB1dEVsLmdldEF0dHJpYnV0ZShcImlkXCIpO1xuICBjb25zdCBsYWJlbEVsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgbGFiZWxbZm9yPSR7aW5wdXRJRH1dYCk7XG5cbiAgY29uc3QgbWVzc2FnZUVsID0gY2hhcmFjdGVyQ291bnRFbC5xdWVyeVNlbGVjdG9yKE1FU1NBR0UpO1xuXG4gIGlmICghbWVzc2FnZUVsKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGAke0NIQVJBQ1RFUl9DT1VOVH0gaXMgbWlzc2luZyBpbm5lciAke01FU1NBR0V9YCk7XG4gIH1cblxuICByZXR1cm4geyBjaGFyYWN0ZXJDb3VudEVsLCBmb3JtR3JvdXBFbCwgaW5wdXRJRCwgbGFiZWxFbCwgbWVzc2FnZUVsIH07XG59O1xuXG4vKipcbiAqIE1vdmUgbWF4bGVuZ3RoIGF0dHJpYnV0ZSB0byBhIGRhdGEgYXR0cmlidXRlIG9uIHVzYS1jaGFyYWN0ZXItY291bnRcbiAqXG4gKiBAcGFyYW0ge0hUTUxJbnB1dEVsZW1lbnR8SFRNTFRleHRBcmVhRWxlbWVudH0gaW5wdXRFbCBUaGUgY2hhcmFjdGVyIGNvdW50IGlucHV0IGVsZW1lbnRcbiAqL1xuY29uc3Qgc2V0RGF0YUxlbmd0aCA9IChpbnB1dEVsKSA9PiB7XG4gIGNvbnN0IHsgY2hhcmFjdGVyQ291bnRFbCB9ID0gZ2V0Q2hhcmFjdGVyQ291bnRFbGVtZW50cyhpbnB1dEVsKTtcblxuICBjb25zdCBtYXhsZW5ndGggPSBpbnB1dEVsLmdldEF0dHJpYnV0ZShcIm1heGxlbmd0aFwiKTtcblxuICBpZiAoIW1heGxlbmd0aCkgcmV0dXJuO1xuXG4gIGlucHV0RWwucmVtb3ZlQXR0cmlidXRlKFwibWF4bGVuZ3RoXCIpO1xuICBjaGFyYWN0ZXJDb3VudEVsLnNldEF0dHJpYnV0ZShcImRhdGEtbWF4bGVuZ3RoXCIsIG1heGxlbmd0aCk7XG59O1xuXG4vKipcbiAqIENyZWF0ZSBhbmQgYXBwZW5kIHN0YXR1cyBtZXNzYWdlcyBmb3IgdmlzdWFsIGFuZCBzY3JlZW4gcmVhZGVyc1xuICpcbiAqIEBwYXJhbSB7SFRNTERpdkVsZW1lbnR9IGNoYXJhY3RlckNvdW50RWwgLSBEaXYgd2l0aCBgLnVzYS1jaGFyYWN0ZXItY291bnRgIGNsYXNzXG4gKiBAZGVzY3JpcHRpb24gIENyZWF0ZSB0d28gc3RhdHVzIG1lc3NhZ2VzIGZvciBudW1iZXIgb2YgY2hhcmFjdGVycyBsZWZ0O1xuICogb25lIHZpc3VhbCBzdGF0dXMgYW5kIGFub3RoZXIgZm9yIHNjcmVlbiByZWFkZXJzXG4gKi9cbmNvbnN0IGNyZWF0ZVN0YXR1c01lc3NhZ2VzID0gKGNoYXJhY3RlckNvdW50RWwpID0+IHtcbiAgY29uc3Qgc3RhdHVzTWVzc2FnZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7XG4gIGNvbnN0IHNyU3RhdHVzTWVzc2FnZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7XG4gIGNvbnN0IG1heExlbmd0aCA9IGNoYXJhY3RlckNvdW50RWwuZGF0YXNldC5tYXhsZW5ndGg7XG4gIGNvbnN0IGRlZmF1bHRNZXNzYWdlID0gYCR7bWF4TGVuZ3RofSAke0RFRkFVTFRfU1RBVFVTX0xBQkVMfWA7XG5cbiAgc3RhdHVzTWVzc2FnZS5jbGFzc0xpc3QuYWRkKGAke1NUQVRVU19NRVNTQUdFX0NMQVNTfWAsIFwidXNhLWhpbnRcIik7XG4gIHNyU3RhdHVzTWVzc2FnZS5jbGFzc0xpc3QuYWRkKFxuICAgIGAke1NUQVRVU19NRVNTQUdFX1NSX09OTFlfQ0xBU1N9YCxcbiAgICBcInVzYS1zci1vbmx5XCIsXG4gICk7XG5cbiAgc3RhdHVzTWVzc2FnZS5zZXRBdHRyaWJ1dGUoXCJhcmlhLWhpZGRlblwiLCB0cnVlKTtcbiAgc3JTdGF0dXNNZXNzYWdlLnNldEF0dHJpYnV0ZShcImFyaWEtbGl2ZVwiLCBcInBvbGl0ZVwiKTtcblxuICBzdGF0dXNNZXNzYWdlLnRleHRDb250ZW50ID0gZGVmYXVsdE1lc3NhZ2U7XG4gIHNyU3RhdHVzTWVzc2FnZS50ZXh0Q29udGVudCA9IGRlZmF1bHRNZXNzYWdlO1xuXG4gIGNoYXJhY3RlckNvdW50RWwuYXBwZW5kKHN0YXR1c01lc3NhZ2UsIHNyU3RhdHVzTWVzc2FnZSk7XG59O1xuXG4vKipcbiAqIFJldHVybnMgbWVzc2FnZSB3aXRoIGhvdyBtYW55IGNoYXJhY3RlcnMgYXJlIGxlZnRcbiAqXG4gKiBAcGFyYW0ge251bWJlcn0gY3VycmVudExlbmd0aCAtIFRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyB1c2VkXG4gKiBAcGFyYW0ge251bWJlcn0gbWF4TGVuZ3RoIC0gVGhlIHRvdGFsIG51bWJlciBvZiBjaGFyYWN0ZXJzIGFsbG93ZWRcbiAqIEByZXR1cm5zIHtzdHJpbmd9IEEgc3RyaW5nIGRlc2NyaXB0aW9uIG9mIGhvdyBtYW55IGNoYXJhY3RlcnMgYXJlIGxlZnRcbiAqL1xuY29uc3QgZ2V0Q291bnRNZXNzYWdlID0gKGN1cnJlbnRMZW5ndGgsIG1heExlbmd0aCkgPT4ge1xuICBsZXQgbmV3TWVzc2FnZSA9IFwiXCI7XG5cbiAgaWYgKGN1cnJlbnRMZW5ndGggPT09IDApIHtcbiAgICBuZXdNZXNzYWdlID0gYCR7bWF4TGVuZ3RofSAke0RFRkFVTFRfU1RBVFVTX0xBQkVMfWA7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgZGlmZmVyZW5jZSA9IE1hdGguYWJzKG1heExlbmd0aCAtIGN1cnJlbnRMZW5ndGgpO1xuICAgIGNvbnN0IGNoYXJhY3RlcnMgPSBgY2hhcmFjdGVyJHtkaWZmZXJlbmNlID09PSAxID8gXCJcIiA6IFwic1wifWA7XG4gICAgY29uc3QgZ3VpZGFuY2UgPSBjdXJyZW50TGVuZ3RoID4gbWF4TGVuZ3RoID8gXCJvdmVyIGxpbWl0XCIgOiBcImxlZnRcIjtcblxuICAgIG5ld01lc3NhZ2UgPSBgJHtkaWZmZXJlbmNlfSAke2NoYXJhY3RlcnN9ICR7Z3VpZGFuY2V9YDtcbiAgfVxuXG4gIHJldHVybiBuZXdNZXNzYWdlO1xufTtcblxuLyoqXG4gKiBVcGRhdGVzIHRoZSBjaGFyYWN0ZXIgY291bnQgc3RhdHVzIGZvciBzY3JlZW4gcmVhZGVycyBhZnRlciBhIDEwMDBtcyBkZWxheS5cbiAqXG4gKiBAcGFyYW0ge0hUTUxFbGVtZW50fSBtc2dFbCAtIFRoZSBzY3JlZW4gcmVhZGVyIHN0YXR1cyBtZXNzYWdlIGVsZW1lbnRcbiAqIEBwYXJhbSB7c3RyaW5nfSBzdGF0dXNNZXNzYWdlIC0gQSBzdHJpbmcgb2YgdGhlIGN1cnJlbnQgY2hhcmFjdGVyIHN0YXR1c1xuICovXG5jb25zdCBzclVwZGF0ZVN0YXR1cyA9IGRlYm91bmNlKChtc2dFbCwgc3RhdHVzTWVzc2FnZSkgPT4ge1xuICBjb25zdCBzclN0YXR1c01lc3NhZ2UgPSBtc2dFbDtcbiAgc3JTdGF0dXNNZXNzYWdlLnRleHRDb250ZW50ID0gc3RhdHVzTWVzc2FnZTtcbn0sIDEwMDApO1xuXG4vKipcbiAqIFVwZGF0ZSB0aGUgY2hhcmFjdGVyIGNvdW50IGNvbXBvbmVudFxuICpcbiAqIEBkZXNjcmlwdGlvbiBPbiBpbnB1dCwgaXQgd2lsbCB1cGRhdGUgdmlzdWFsIHN0YXR1cywgc2NyZWVucmVhZGVyXG4gKiBzdGF0dXMgYW5kIHVwZGF0ZSBpbnB1dCB2YWxpZGF0aW9uIChpZiBvdmVyIGNoYXJhY3RlciBsZW5ndGgpXG4gKiBAcGFyYW0ge0hUTUxJbnB1dEVsZW1lbnR8SFRNTFRleHRBcmVhRWxlbWVudH0gaW5wdXRFbCBUaGUgY2hhcmFjdGVyIGNvdW50IGlucHV0IGVsZW1lbnRcbiAqL1xuY29uc3QgdXBkYXRlQ291bnRNZXNzYWdlID0gKGlucHV0RWwpID0+IHtcbiAgY29uc3QgeyBjaGFyYWN0ZXJDb3VudEVsLCBsYWJlbEVsLCBmb3JtR3JvdXBFbCB9ID1cbiAgICBnZXRDaGFyYWN0ZXJDb3VudEVsZW1lbnRzKGlucHV0RWwpO1xuICBjb25zdCBjdXJyZW50TGVuZ3RoID0gaW5wdXRFbC52YWx1ZS5sZW5ndGg7XG4gIGNvbnN0IG1heExlbmd0aCA9IHBhcnNlSW50KFxuICAgIGNoYXJhY3RlckNvdW50RWwuZ2V0QXR0cmlidXRlKFwiZGF0YS1tYXhsZW5ndGhcIiksXG4gICAgMTAsXG4gICk7XG4gIGNvbnN0IHN0YXR1c01lc3NhZ2UgPSBjaGFyYWN0ZXJDb3VudEVsLnF1ZXJ5U2VsZWN0b3IoU1RBVFVTX01FU1NBR0UpO1xuICBjb25zdCBzclN0YXR1c01lc3NhZ2UgPSBjaGFyYWN0ZXJDb3VudEVsLnF1ZXJ5U2VsZWN0b3IoXG4gICAgU1RBVFVTX01FU1NBR0VfU1JfT05MWSxcbiAgKTtcbiAgY29uc3QgY3VycmVudFN0YXR1c01lc3NhZ2UgPSBnZXRDb3VudE1lc3NhZ2UoY3VycmVudExlbmd0aCwgbWF4TGVuZ3RoKTtcblxuICBpZiAoIW1heExlbmd0aCkgcmV0dXJuO1xuXG4gIGNvbnN0IGlzT3ZlckxpbWl0ID0gY3VycmVudExlbmd0aCAmJiBjdXJyZW50TGVuZ3RoID4gbWF4TGVuZ3RoO1xuXG4gIHN0YXR1c01lc3NhZ2UudGV4dENvbnRlbnQgPSBjdXJyZW50U3RhdHVzTWVzc2FnZTtcbiAgc3JVcGRhdGVTdGF0dXMoc3JTdGF0dXNNZXNzYWdlLCBjdXJyZW50U3RhdHVzTWVzc2FnZSk7XG5cbiAgaWYgKGlzT3ZlckxpbWl0ICYmICFpbnB1dEVsLnZhbGlkYXRpb25NZXNzYWdlKSB7XG4gICAgaW5wdXRFbC5zZXRDdXN0b21WYWxpZGl0eShWQUxJREFUSU9OX01FU1NBR0UpO1xuICB9XG5cbiAgaWYgKCFpc092ZXJMaW1pdCAmJiBpbnB1dEVsLnZhbGlkYXRpb25NZXNzYWdlID09PSBWQUxJREFUSU9OX01FU1NBR0UpIHtcbiAgICBpbnB1dEVsLnNldEN1c3RvbVZhbGlkaXR5KFwiXCIpO1xuICB9XG5cbiAgaWYgKGZvcm1Hcm91cEVsKSB7XG4gICAgZm9ybUdyb3VwRWwuY2xhc3NMaXN0LnRvZ2dsZShGT1JNX0dST1VQX0VSUk9SX0NMQVNTLCBpc092ZXJMaW1pdCk7XG4gIH1cblxuICBpZiAobGFiZWxFbCkge1xuICAgIGxhYmVsRWwuY2xhc3NMaXN0LnRvZ2dsZShMQUJFTF9FUlJPUl9DTEFTUywgaXNPdmVyTGltaXQpO1xuICB9XG5cbiAgaW5wdXRFbC5jbGFzc0xpc3QudG9nZ2xlKElOUFVUX0VSUk9SX0NMQVNTLCBpc092ZXJMaW1pdCk7XG4gIHN0YXR1c01lc3NhZ2UuY2xhc3NMaXN0LnRvZ2dsZShNRVNTQUdFX0lOVkFMSURfQ0xBU1MsIGlzT3ZlckxpbWl0KTtcbn07XG5cbi8qKlxuICogSW5pdGlhbGl6ZSBjb21wb25lbnRcbiAqXG4gKiBAZGVzY3JpcHRpb24gT24gaW5pdCB0aGlzIGZ1bmN0aW9uIHdpbGwgY3JlYXRlIGVsZW1lbnRzIGFuZCB1cGRhdGUgYW55XG4gKiBhdHRyaWJ1dGVzIHNvIGl0IGNhbiB0ZWxsIHRoZSB1c2VyIGhvdyBtYW55IGNoYXJhY3RlcnMgYXJlIGxlZnQuXG4gKiBAcGFyYW0gIHtIVE1MSW5wdXRFbGVtZW50fEhUTUxUZXh0QXJlYUVsZW1lbnR9IGlucHV0RWwgdGhlIGNvbXBvbmVudHMgaW5wdXRcbiAqL1xuY29uc3QgZW5oYW5jZUNoYXJhY3RlckNvdW50ID0gKGlucHV0RWwpID0+IHtcbiAgY29uc3QgeyBjaGFyYWN0ZXJDb3VudEVsLCBtZXNzYWdlRWwgfSA9IGdldENoYXJhY3RlckNvdW50RWxlbWVudHMoaW5wdXRFbCk7XG5cbiAgLy8gSGlkZSBoaW50IGFuZCByZW1vdmUgYXJpYS1saXZlIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eVxuICBtZXNzYWdlRWwuY2xhc3NMaXN0LmFkZChcInVzYS1zci1vbmx5XCIpO1xuICBtZXNzYWdlRWwucmVtb3ZlQXR0cmlidXRlKFwiYXJpYS1saXZlXCIpO1xuXG4gIHNldERhdGFMZW5ndGgoaW5wdXRFbCk7XG4gIGNyZWF0ZVN0YXR1c01lc3NhZ2VzKGNoYXJhY3RlckNvdW50RWwpO1xufTtcblxuY29uc3QgY2hhcmFjdGVyQ291bnQgPSBiZWhhdmlvcihcbiAge1xuICAgIGlucHV0OiB7XG4gICAgICBbSU5QVVRdKCkge1xuICAgICAgICB1cGRhdGVDb3VudE1lc3NhZ2UodGhpcyk7XG4gICAgICB9LFxuICAgIH0sXG4gIH0sXG4gIHtcbiAgICBpbml0KHJvb3QpIHtcbiAgICAgIHNlbGVjdChJTlBVVCwgcm9vdCkuZm9yRWFjaCgoaW5wdXQpID0+IGVuaGFuY2VDaGFyYWN0ZXJDb3VudChpbnB1dCkpO1xuICAgIH0sXG4gICAgRk9STV9HUk9VUF9FUlJPUl9DTEFTUyxcbiAgICBMQUJFTF9FUlJPUl9DTEFTUyxcbiAgICBJTlBVVF9FUlJPUl9DTEFTUyxcbiAgICBNRVNTQUdFX0lOVkFMSURfQ0xBU1MsXG4gICAgVkFMSURBVElPTl9NRVNTQUdFLFxuICAgIFNUQVRVU19NRVNTQUdFX0NMQVNTLFxuICAgIFNUQVRVU19NRVNTQUdFX1NSX09OTFlfQ0xBU1MsXG4gICAgREVGQVVMVF9TVEFUVVNfTEFCRUwsXG4gICAgY3JlYXRlU3RhdHVzTWVzc2FnZXMsXG4gICAgZ2V0Q291bnRNZXNzYWdlLFxuICAgIHVwZGF0ZUNvdW50TWVzc2FnZSxcbiAgfSxcbik7XG5cbm1vZHVsZS5leHBvcnRzID0gY2hhcmFjdGVyQ291bnQ7XG4iLCJjb25zdCBrZXltYXAgPSByZXF1aXJlKFwicmVjZXB0b3Iva2V5bWFwXCIpO1xuY29uc3Qgc2VsZWN0T3JNYXRjaGVzID0gcmVxdWlyZShcIi4uLy4uL3Vzd2RzLWNvcmUvc3JjL2pzL3V0aWxzL3NlbGVjdC1vci1tYXRjaGVzXCIpO1xuY29uc3QgYmVoYXZpb3IgPSByZXF1aXJlKFwiLi4vLi4vdXN3ZHMtY29yZS9zcmMvanMvdXRpbHMvYmVoYXZpb3JcIik7XG5jb25zdCBTYW5pdGl6ZXIgPSByZXF1aXJlKFwiLi4vLi4vdXN3ZHMtY29yZS9zcmMvanMvdXRpbHMvc2FuaXRpemVyXCIpO1xuY29uc3QgeyBwcmVmaXg6IFBSRUZJWCB9ID0gcmVxdWlyZShcIi4uLy4uL3Vzd2RzLWNvcmUvc3JjL2pzL2NvbmZpZ1wiKTtcbmNvbnN0IHsgQ0xJQ0sgfSA9IHJlcXVpcmUoXCIuLi8uLi91c3dkcy1jb3JlL3NyYy9qcy9ldmVudHNcIik7XG5cbmNvbnN0IENPTUJPX0JPWF9DTEFTUyA9IGAke1BSRUZJWH0tY29tYm8tYm94YDtcbmNvbnN0IENPTUJPX0JPWF9QUklTVElORV9DTEFTUyA9IGAke0NPTUJPX0JPWF9DTEFTU30tLXByaXN0aW5lYDtcbmNvbnN0IFNFTEVDVF9DTEFTUyA9IGAke0NPTUJPX0JPWF9DTEFTU31fX3NlbGVjdGA7XG5jb25zdCBJTlBVVF9DTEFTUyA9IGAke0NPTUJPX0JPWF9DTEFTU31fX2lucHV0YDtcbmNvbnN0IENMRUFSX0lOUFVUX0JVVFRPTl9DTEFTUyA9IGAke0NPTUJPX0JPWF9DTEFTU31fX2NsZWFyLWlucHV0YDtcbmNvbnN0IENMRUFSX0lOUFVUX0JVVFRPTl9XUkFQUEVSX0NMQVNTID0gYCR7Q0xFQVJfSU5QVVRfQlVUVE9OX0NMQVNTfV9fd3JhcHBlcmA7XG5jb25zdCBJTlBVVF9CVVRUT05fU0VQQVJBVE9SX0NMQVNTID0gYCR7Q09NQk9fQk9YX0NMQVNTfV9faW5wdXQtYnV0dG9uLXNlcGFyYXRvcmA7XG5jb25zdCBUT0dHTEVfTElTVF9CVVRUT05fQ0xBU1MgPSBgJHtDT01CT19CT1hfQ0xBU1N9X190b2dnbGUtbGlzdGA7XG5jb25zdCBUT0dHTEVfTElTVF9CVVRUT05fV1JBUFBFUl9DTEFTUyA9IGAke1RPR0dMRV9MSVNUX0JVVFRPTl9DTEFTU31fX3dyYXBwZXJgO1xuY29uc3QgTElTVF9DTEFTUyA9IGAke0NPTUJPX0JPWF9DTEFTU31fX2xpc3RgO1xuY29uc3QgTElTVF9PUFRJT05fQ0xBU1MgPSBgJHtDT01CT19CT1hfQ0xBU1N9X19saXN0LW9wdGlvbmA7XG5jb25zdCBMSVNUX09QVElPTl9GT0NVU0VEX0NMQVNTID0gYCR7TElTVF9PUFRJT05fQ0xBU1N9LS1mb2N1c2VkYDtcbmNvbnN0IExJU1RfT1BUSU9OX1NFTEVDVEVEX0NMQVNTID0gYCR7TElTVF9PUFRJT05fQ0xBU1N9LS1zZWxlY3RlZGA7XG5jb25zdCBTVEFUVVNfQ0xBU1MgPSBgJHtDT01CT19CT1hfQ0xBU1N9X19zdGF0dXNgO1xuXG5jb25zdCBDT01CT19CT1ggPSBgLiR7Q09NQk9fQk9YX0NMQVNTfWA7XG5jb25zdCBTRUxFQ1QgPSBgLiR7U0VMRUNUX0NMQVNTfWA7XG5jb25zdCBJTlBVVCA9IGAuJHtJTlBVVF9DTEFTU31gO1xuY29uc3QgQ0xFQVJfSU5QVVRfQlVUVE9OID0gYC4ke0NMRUFSX0lOUFVUX0JVVFRPTl9DTEFTU31gO1xuY29uc3QgVE9HR0xFX0xJU1RfQlVUVE9OID0gYC4ke1RPR0dMRV9MSVNUX0JVVFRPTl9DTEFTU31gO1xuY29uc3QgTElTVCA9IGAuJHtMSVNUX0NMQVNTfWA7XG5jb25zdCBMSVNUX09QVElPTiA9IGAuJHtMSVNUX09QVElPTl9DTEFTU31gO1xuY29uc3QgTElTVF9PUFRJT05fRk9DVVNFRCA9IGAuJHtMSVNUX09QVElPTl9GT0NVU0VEX0NMQVNTfWA7XG5jb25zdCBMSVNUX09QVElPTl9TRUxFQ1RFRCA9IGAuJHtMSVNUX09QVElPTl9TRUxFQ1RFRF9DTEFTU31gO1xuY29uc3QgU1RBVFVTID0gYC4ke1NUQVRVU19DTEFTU31gO1xuXG5jb25zdCBERUZBVUxUX0ZJTFRFUiA9IFwiLip7e3F1ZXJ5fX0uKlwiO1xuXG5jb25zdCBub29wID0gKCkgPT4ge307XG5cbi8qKlxuICogc2V0IHRoZSB2YWx1ZSBvZiB0aGUgZWxlbWVudCBhbmQgZGlzcGF0Y2ggYSBjaGFuZ2UgZXZlbnRcbiAqXG4gKiBAcGFyYW0ge0hUTUxJbnB1dEVsZW1lbnR8SFRNTFNlbGVjdEVsZW1lbnR9IGVsIFRoZSBlbGVtZW50IHRvIHVwZGF0ZVxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlIFRoZSBuZXcgdmFsdWUgb2YgdGhlIGVsZW1lbnRcbiAqL1xuY29uc3QgY2hhbmdlRWxlbWVudFZhbHVlID0gKGVsLCB2YWx1ZSA9IFwiXCIpID0+IHtcbiAgY29uc3QgZWxlbWVudFRvQ2hhbmdlID0gZWw7XG4gIGVsZW1lbnRUb0NoYW5nZS52YWx1ZSA9IHZhbHVlO1xuXG4gIGNvbnN0IGV2ZW50ID0gbmV3IEN1c3RvbUV2ZW50KFwiY2hhbmdlXCIsIHtcbiAgICBidWJibGVzOiB0cnVlLFxuICAgIGNhbmNlbGFibGU6IHRydWUsXG4gICAgZGV0YWlsOiB7IHZhbHVlIH0sXG4gIH0pO1xuICBlbGVtZW50VG9DaGFuZ2UuZGlzcGF0Y2hFdmVudChldmVudCk7XG59O1xuXG4vKipcbiAqIFRoZSBlbGVtZW50cyB3aXRoaW4gdGhlIGNvbWJvIGJveC5cbiAqIEB0eXBlZGVmIHtPYmplY3R9IENvbWJvQm94Q29udGV4dFxuICogQHByb3BlcnR5IHtIVE1MRWxlbWVudH0gY29tYm9Cb3hFbFxuICogQHByb3BlcnR5IHtIVE1MU2VsZWN0RWxlbWVudH0gc2VsZWN0RWxcbiAqIEBwcm9wZXJ0eSB7SFRNTElucHV0RWxlbWVudH0gaW5wdXRFbFxuICogQHByb3BlcnR5IHtIVE1MVUxpc3RFbGVtZW50fSBsaXN0RWxcbiAqIEBwcm9wZXJ0eSB7SFRNTERpdkVsZW1lbnR9IHN0YXR1c0VsXG4gKiBAcHJvcGVydHkge0hUTUxMSUVsZW1lbnR9IGZvY3VzZWRPcHRpb25FbFxuICogQHByb3BlcnR5IHtIVE1MTElFbGVtZW50fSBzZWxlY3RlZE9wdGlvbkVsXG4gKiBAcHJvcGVydHkge0hUTUxCdXR0b25FbGVtZW50fSB0b2dnbGVMaXN0QnRuRWxcbiAqIEBwcm9wZXJ0eSB7SFRNTEJ1dHRvbkVsZW1lbnR9IGNsZWFySW5wdXRCdG5FbFxuICogQHByb3BlcnR5IHtib29sZWFufSBpc1ByaXN0aW5lXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IGRpc2FibGVGaWx0ZXJpbmdcbiAqL1xuXG4vKipcbiAqIEdldCBhbiBvYmplY3Qgb2YgZWxlbWVudHMgYmVsb25naW5nIGRpcmVjdGx5IHRvIHRoZSBnaXZlblxuICogY29tYm8gYm94IGNvbXBvbmVudC5cbiAqXG4gKiBAcGFyYW0ge0hUTUxFbGVtZW50fSBlbCB0aGUgZWxlbWVudCB3aXRoaW4gdGhlIGNvbWJvIGJveFxuICogQHJldHVybnMge0NvbWJvQm94Q29udGV4dH0gZWxlbWVudHNcbiAqL1xuY29uc3QgZ2V0Q29tYm9Cb3hDb250ZXh0ID0gKGVsKSA9PiB7XG4gIGNvbnN0IGNvbWJvQm94RWwgPSBlbC5jbG9zZXN0KENPTUJPX0JPWCk7XG5cbiAgaWYgKCFjb21ib0JveEVsKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBFbGVtZW50IGlzIG1pc3Npbmcgb3V0ZXIgJHtDT01CT19CT1h9YCk7XG4gIH1cblxuICBjb25zdCBzZWxlY3RFbCA9IGNvbWJvQm94RWwucXVlcnlTZWxlY3RvcihTRUxFQ1QpO1xuICBjb25zdCBpbnB1dEVsID0gY29tYm9Cb3hFbC5xdWVyeVNlbGVjdG9yKElOUFVUKTtcbiAgY29uc3QgbGlzdEVsID0gY29tYm9Cb3hFbC5xdWVyeVNlbGVjdG9yKExJU1QpO1xuICBjb25zdCBzdGF0dXNFbCA9IGNvbWJvQm94RWwucXVlcnlTZWxlY3RvcihTVEFUVVMpO1xuICBjb25zdCBmb2N1c2VkT3B0aW9uRWwgPSBjb21ib0JveEVsLnF1ZXJ5U2VsZWN0b3IoTElTVF9PUFRJT05fRk9DVVNFRCk7XG4gIGNvbnN0IHNlbGVjdGVkT3B0aW9uRWwgPSBjb21ib0JveEVsLnF1ZXJ5U2VsZWN0b3IoTElTVF9PUFRJT05fU0VMRUNURUQpO1xuICBjb25zdCB0b2dnbGVMaXN0QnRuRWwgPSBjb21ib0JveEVsLnF1ZXJ5U2VsZWN0b3IoVE9HR0xFX0xJU1RfQlVUVE9OKTtcbiAgY29uc3QgY2xlYXJJbnB1dEJ0bkVsID0gY29tYm9Cb3hFbC5xdWVyeVNlbGVjdG9yKENMRUFSX0lOUFVUX0JVVFRPTik7XG5cbiAgY29uc3QgaXNQcmlzdGluZSA9IGNvbWJvQm94RWwuY2xhc3NMaXN0LmNvbnRhaW5zKENPTUJPX0JPWF9QUklTVElORV9DTEFTUyk7XG4gIGNvbnN0IGRpc2FibGVGaWx0ZXJpbmcgPSBjb21ib0JveEVsLmRhdGFzZXQuZGlzYWJsZUZpbHRlcmluZyA9PT0gXCJ0cnVlXCI7XG5cbiAgcmV0dXJuIHtcbiAgICBjb21ib0JveEVsLFxuICAgIHNlbGVjdEVsLFxuICAgIGlucHV0RWwsXG4gICAgbGlzdEVsLFxuICAgIHN0YXR1c0VsLFxuICAgIGZvY3VzZWRPcHRpb25FbCxcbiAgICBzZWxlY3RlZE9wdGlvbkVsLFxuICAgIHRvZ2dsZUxpc3RCdG5FbCxcbiAgICBjbGVhcklucHV0QnRuRWwsXG4gICAgaXNQcmlzdGluZSxcbiAgICBkaXNhYmxlRmlsdGVyaW5nLFxuICB9O1xufTtcblxuLyoqXG4gKiBEaXNhYmxlIHRoZSBjb21iby1ib3ggY29tcG9uZW50XG4gKlxuICogQHBhcmFtIHtIVE1MSW5wdXRFbGVtZW50fSBlbCBBbiBlbGVtZW50IHdpdGhpbiB0aGUgY29tYm8gYm94IGNvbXBvbmVudFxuICovXG5jb25zdCBkaXNhYmxlID0gKGVsKSA9PiB7XG4gIGNvbnN0IHsgaW5wdXRFbCwgdG9nZ2xlTGlzdEJ0bkVsLCBjbGVhcklucHV0QnRuRWwgfSA9IGdldENvbWJvQm94Q29udGV4dChlbCk7XG5cbiAgY2xlYXJJbnB1dEJ0bkVsLmhpZGRlbiA9IHRydWU7XG4gIGNsZWFySW5wdXRCdG5FbC5kaXNhYmxlZCA9IHRydWU7XG4gIHRvZ2dsZUxpc3RCdG5FbC5kaXNhYmxlZCA9IHRydWU7XG4gIGlucHV0RWwuZGlzYWJsZWQgPSB0cnVlO1xufTtcblxuLyoqXG4gKiBDaGVjayBmb3IgYXJpYS1kaXNhYmxlZCBvbiBpbml0aWFsaXphdGlvblxuICpcbiAqIEBwYXJhbSB7SFRNTElucHV0RWxlbWVudH0gZWwgQW4gZWxlbWVudCB3aXRoaW4gdGhlIGNvbWJvIGJveCBjb21wb25lbnRcbiAqL1xuY29uc3QgYXJpYURpc2FibGUgPSAoZWwpID0+IHtcbiAgY29uc3QgeyBpbnB1dEVsLCB0b2dnbGVMaXN0QnRuRWwsIGNsZWFySW5wdXRCdG5FbCB9ID0gZ2V0Q29tYm9Cb3hDb250ZXh0KGVsKTtcblxuICBjbGVhcklucHV0QnRuRWwuaGlkZGVuID0gdHJ1ZTtcbiAgY2xlYXJJbnB1dEJ0bkVsLnNldEF0dHJpYnV0ZShcImFyaWEtZGlzYWJsZWRcIiwgdHJ1ZSk7XG4gIHRvZ2dsZUxpc3RCdG5FbC5zZXRBdHRyaWJ1dGUoXCJhcmlhLWRpc2FibGVkXCIsIHRydWUpO1xuICBpbnB1dEVsLnNldEF0dHJpYnV0ZShcImFyaWEtZGlzYWJsZWRcIiwgdHJ1ZSk7XG59O1xuXG4vKipcbiAqIEVuYWJsZSB0aGUgY29tYm8tYm94IGNvbXBvbmVudFxuICpcbiAqIEBwYXJhbSB7SFRNTElucHV0RWxlbWVudH0gZWwgQW4gZWxlbWVudCB3aXRoaW4gdGhlIGNvbWJvIGJveCBjb21wb25lbnRcbiAqL1xuY29uc3QgZW5hYmxlID0gKGVsKSA9PiB7XG4gIGNvbnN0IHsgaW5wdXRFbCwgdG9nZ2xlTGlzdEJ0bkVsLCBjbGVhcklucHV0QnRuRWwgfSA9IGdldENvbWJvQm94Q29udGV4dChlbCk7XG5cbiAgY2xlYXJJbnB1dEJ0bkVsLmhpZGRlbiA9IGZhbHNlO1xuICBjbGVhcklucHV0QnRuRWwuZGlzYWJsZWQgPSBmYWxzZTtcbiAgdG9nZ2xlTGlzdEJ0bkVsLmRpc2FibGVkID0gZmFsc2U7XG4gIGlucHV0RWwuZGlzYWJsZWQgPSBmYWxzZTtcbn07XG5cbi8qKlxuICogRW5oYW5jZSBhIHNlbGVjdCBlbGVtZW50IGludG8gYSBjb21ibyBib3ggY29tcG9uZW50LlxuICpcbiAqIEBwYXJhbSB7SFRNTEVsZW1lbnR9IF9jb21ib0JveEVsIFRoZSBpbml0aWFsIGVsZW1lbnQgb2YgdGhlIGNvbWJvIGJveCBjb21wb25lbnRcbiAqL1xuY29uc3QgZW5oYW5jZUNvbWJvQm94ID0gKF9jb21ib0JveEVsKSA9PiB7XG4gIGNvbnN0IGNvbWJvQm94RWwgPSBfY29tYm9Cb3hFbC5jbG9zZXN0KENPTUJPX0JPWCk7XG5cbiAgaWYgKGNvbWJvQm94RWwuZGF0YXNldC5lbmhhbmNlZCkgcmV0dXJuO1xuXG4gIGNvbnN0IHNlbGVjdEVsID0gY29tYm9Cb3hFbC5xdWVyeVNlbGVjdG9yKFwic2VsZWN0XCIpO1xuXG4gIGlmICghc2VsZWN0RWwpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYCR7Q09NQk9fQk9YfSBpcyBtaXNzaW5nIGlubmVyIHNlbGVjdGApO1xuICB9XG5cbiAgY29uc3Qgc2VsZWN0SWQgPSBzZWxlY3RFbC5pZDtcbiAgY29uc3Qgc2VsZWN0TGFiZWwgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGBsYWJlbFtmb3I9XCIke3NlbGVjdElkfVwiXWApO1xuICBjb25zdCBsaXN0SWQgPSBgJHtzZWxlY3RJZH0tLWxpc3RgO1xuICBjb25zdCBsaXN0SWRMYWJlbCA9IGAke3NlbGVjdElkfS1sYWJlbGA7XG4gIGNvbnN0IGFkZGl0aW9uYWxBdHRyaWJ1dGVzID0gW107XG4gIGNvbnN0IHsgZGVmYXVsdFZhbHVlIH0gPSBjb21ib0JveEVsLmRhdGFzZXQ7XG4gIGNvbnN0IHsgcGxhY2Vob2xkZXIgfSA9IGNvbWJvQm94RWwuZGF0YXNldDtcbiAgbGV0IHNlbGVjdGVkT3B0aW9uO1xuXG4gIGlmIChwbGFjZWhvbGRlcikge1xuICAgIGFkZGl0aW9uYWxBdHRyaWJ1dGVzLnB1c2goeyBwbGFjZWhvbGRlciB9KTtcbiAgfVxuXG4gIGlmIChkZWZhdWx0VmFsdWUpIHtcbiAgICBmb3IgKGxldCBpID0gMCwgbGVuID0gc2VsZWN0RWwub3B0aW9ucy5sZW5ndGg7IGkgPCBsZW47IGkgKz0gMSkge1xuICAgICAgY29uc3Qgb3B0aW9uRWwgPSBzZWxlY3RFbC5vcHRpb25zW2ldO1xuXG4gICAgICBpZiAob3B0aW9uRWwudmFsdWUgPT09IGRlZmF1bHRWYWx1ZSkge1xuICAgICAgICBzZWxlY3RlZE9wdGlvbiA9IG9wdGlvbkVsO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVGhyb3cgZXJyb3IgaWYgY29tYm9ib3ggaXMgbWlzc2luZyBhIGxhYmVsIG9yIGxhYmVsIGlzIG1pc3NpbmdcbiAgICogYGZvcmAgYXR0cmlidXRlLiBPdGhlcndpc2UsIHNldCB0aGUgSUQgdG8gbWF0Y2ggdGhlIDx1bD4gYXJpYS1sYWJlbGxlZGJ5XG4gICAqL1xuICBpZiAoIXNlbGVjdExhYmVsIHx8ICFzZWxlY3RMYWJlbC5tYXRjaGVzKGBsYWJlbFtmb3I9XCIke3NlbGVjdElkfVwiXWApKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYCR7Q09NQk9fQk9YfSBmb3IgJHtzZWxlY3RJZH0gaXMgZWl0aGVyIG1pc3NpbmcgYSBsYWJlbCBvciBhIFwiZm9yXCIgYXR0cmlidXRlYCxcbiAgICApO1xuICB9IGVsc2Uge1xuICAgIHNlbGVjdExhYmVsLnNldEF0dHJpYnV0ZShcImlkXCIsIGxpc3RJZExhYmVsKTtcbiAgfVxuXG4gIHNlbGVjdExhYmVsLnNldEF0dHJpYnV0ZShcImlkXCIsIGxpc3RJZExhYmVsKTtcbiAgc2VsZWN0RWwuc2V0QXR0cmlidXRlKFwiYXJpYS1oaWRkZW5cIiwgXCJ0cnVlXCIpO1xuICBzZWxlY3RFbC5zZXRBdHRyaWJ1dGUoXCJ0YWJpbmRleFwiLCBcIi0xXCIpO1xuICBzZWxlY3RFbC5jbGFzc0xpc3QuYWRkKFwidXNhLXNyLW9ubHlcIiwgU0VMRUNUX0NMQVNTKTtcbiAgc2VsZWN0RWwuaWQgPSBcIlwiO1xuICBzZWxlY3RFbC52YWx1ZSA9IFwiXCI7XG5cbiAgW1wicmVxdWlyZWRcIiwgXCJhcmlhLWxhYmVsXCIsIFwiYXJpYS1sYWJlbGxlZGJ5XCJdLmZvckVhY2goKG5hbWUpID0+IHtcbiAgICBpZiAoc2VsZWN0RWwuaGFzQXR0cmlidXRlKG5hbWUpKSB7XG4gICAgICBjb25zdCB2YWx1ZSA9IHNlbGVjdEVsLmdldEF0dHJpYnV0ZShuYW1lKTtcbiAgICAgIGFkZGl0aW9uYWxBdHRyaWJ1dGVzLnB1c2goeyBbbmFtZV06IHZhbHVlIH0pO1xuICAgICAgc2VsZWN0RWwucmVtb3ZlQXR0cmlidXRlKG5hbWUpO1xuICAgIH1cbiAgfSk7XG5cbiAgLy8gc2FuaXRpemUgZG9lc24ndCBsaWtlIGZ1bmN0aW9ucyBpbiB0ZW1wbGF0ZSBsaXRlcmFsc1xuICBjb25zdCBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJpbnB1dFwiKTtcbiAgaW5wdXQuc2V0QXR0cmlidXRlKFwiaWRcIiwgc2VsZWN0SWQpO1xuICBpbnB1dC5zZXRBdHRyaWJ1dGUoXCJhcmlhLW93bnNcIiwgbGlzdElkKTtcbiAgaW5wdXQuc2V0QXR0cmlidXRlKFwiYXJpYS1jb250cm9sc1wiLCBsaXN0SWQpO1xuICBpbnB1dC5zZXRBdHRyaWJ1dGUoXCJhcmlhLWF1dG9jb21wbGV0ZVwiLCBcImxpc3RcIik7XG4gIGlucHV0LnNldEF0dHJpYnV0ZShcImFyaWEtZXhwYW5kZWRcIiwgXCJmYWxzZVwiKTtcbiAgaW5wdXQuc2V0QXR0cmlidXRlKFwiYXV0b2NhcGl0YWxpemVcIiwgXCJvZmZcIik7XG4gIGlucHV0LnNldEF0dHJpYnV0ZShcImF1dG9jb21wbGV0ZVwiLCBcIm9mZlwiKTtcbiAgaW5wdXQuc2V0QXR0cmlidXRlKFwiY2xhc3NcIiwgSU5QVVRfQ0xBU1MpO1xuICBpbnB1dC5zZXRBdHRyaWJ1dGUoXCJ0eXBlXCIsIFwidGV4dFwiKTtcbiAgaW5wdXQuc2V0QXR0cmlidXRlKFwicm9sZVwiLCBcImNvbWJvYm94XCIpO1xuICBhZGRpdGlvbmFsQXR0cmlidXRlcy5mb3JFYWNoKChhdHRyKSA9PlxuICAgIE9iamVjdC5rZXlzKGF0dHIpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgY29uc3QgdmFsdWUgPSBTYW5pdGl6ZXIuZXNjYXBlSFRNTGAke2F0dHJba2V5XX1gO1xuICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKGtleSwgdmFsdWUpO1xuICAgIH0pLFxuICApO1xuXG4gIGNvbWJvQm94RWwuaW5zZXJ0QWRqYWNlbnRFbGVtZW50KFwiYmVmb3JlZW5kXCIsIGlucHV0KTtcblxuICBjb21ib0JveEVsLmluc2VydEFkamFjZW50SFRNTChcbiAgICBcImJlZm9yZWVuZFwiLFxuICAgIFNhbml0aXplci5lc2NhcGVIVE1MYFxuICAgIDxzcGFuIGNsYXNzPVwiJHtDTEVBUl9JTlBVVF9CVVRUT05fV1JBUFBFUl9DTEFTU31cIiB0YWJpbmRleD1cIi0xXCI+XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiJHtDTEVBUl9JTlBVVF9CVVRUT05fQ0xBU1N9XCIgYXJpYS1sYWJlbD1cIkNsZWFyIHRoZSBzZWxlY3QgY29udGVudHNcIj4mbmJzcDs8L2J1dHRvbj5cbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiJHtJTlBVVF9CVVRUT05fU0VQQVJBVE9SX0NMQVNTfVwiPiZuYnNwOzwvc3Bhbj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiJHtUT0dHTEVfTElTVF9CVVRUT05fV1JBUFBFUl9DTEFTU31cIiB0YWJpbmRleD1cIi0xXCI+XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIHRhYmluZGV4PVwiLTFcIiBjbGFzcz1cIiR7VE9HR0xFX0xJU1RfQlVUVE9OX0NMQVNTfVwiIGFyaWEtbGFiZWw9XCJUb2dnbGUgdGhlIGRyb3Bkb3duIGxpc3RcIj4mbmJzcDs8L2J1dHRvbj5cbiAgICAgIDwvc3Bhbj5cbiAgICAgIDx1bFxuICAgICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgICAgaWQ9XCIke2xpc3RJZH1cIlxuICAgICAgICBjbGFzcz1cIiR7TElTVF9DTEFTU31cIlxuICAgICAgICByb2xlPVwibGlzdGJveFwiXG4gICAgICAgIGFyaWEtbGFiZWxsZWRieT1cIiR7bGlzdElkTGFiZWx9XCJcbiAgICAgICAgaGlkZGVuPlxuICAgICAgPC91bD5cbiAgICAgIDxkaXYgY2xhc3M9XCIke1NUQVRVU19DTEFTU30gdXNhLXNyLW9ubHlcIiByb2xlPVwic3RhdHVzXCI+PC9kaXY+YCxcbiAgKTtcblxuICBpZiAoc2VsZWN0ZWRPcHRpb24pIHtcbiAgICBjb25zdCB7IGlucHV0RWwgfSA9IGdldENvbWJvQm94Q29udGV4dChjb21ib0JveEVsKTtcbiAgICBjaGFuZ2VFbGVtZW50VmFsdWUoc2VsZWN0RWwsIHNlbGVjdGVkT3B0aW9uLnZhbHVlKTtcbiAgICBjaGFuZ2VFbGVtZW50VmFsdWUoaW5wdXRFbCwgc2VsZWN0ZWRPcHRpb24udGV4dCk7XG4gICAgY29tYm9Cb3hFbC5jbGFzc0xpc3QuYWRkKENPTUJPX0JPWF9QUklTVElORV9DTEFTUyk7XG4gIH1cblxuICBpZiAoc2VsZWN0RWwuZGlzYWJsZWQpIHtcbiAgICBkaXNhYmxlKGNvbWJvQm94RWwpO1xuICAgIHNlbGVjdEVsLmRpc2FibGVkID0gZmFsc2U7XG4gIH1cblxuICBpZiAoc2VsZWN0RWwuaGFzQXR0cmlidXRlKFwiYXJpYS1kaXNhYmxlZFwiKSkge1xuICAgIGFyaWFEaXNhYmxlKGNvbWJvQm94RWwpO1xuICAgIHNlbGVjdEVsLnJlbW92ZUF0dHJpYnV0ZShcImFyaWEtZGlzYWJsZWRcIik7XG4gIH1cblxuICBjb21ib0JveEVsLmRhdGFzZXQuZW5oYW5jZWQgPSBcInRydWVcIjtcbn07XG5cbi8qKlxuICogTWFuYWdlIHRoZSBmb2N1c2VkIGVsZW1lbnQgd2l0aGluIHRoZSBsaXN0IG9wdGlvbnMgd2hlblxuICogbmF2aWdhdGluZyB2aWEga2V5Ym9hcmQuXG4gKlxuICogQHBhcmFtIHtIVE1MRWxlbWVudH0gZWwgQW4gYW5jaG9yIGVsZW1lbnQgd2l0aGluIHRoZSBjb21ibyBib3ggY29tcG9uZW50XG4gKiBAcGFyYW0ge0hUTUxFbGVtZW50fSBuZXh0RWwgQW4gZWxlbWVudCB3aXRoaW4gdGhlIGNvbWJvIGJveCBjb21wb25lbnRcbiAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIG9wdGlvbnNcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gb3B0aW9ucy5za2lwRm9jdXMgc2tpcCBmb2N1cyBvZiBoaWdobGlnaHRlZCBpdGVtXG4gKiBAcGFyYW0ge2Jvb2xlYW59IG9wdGlvbnMucHJldmVudFNjcm9sbCBzaG91bGQgc2tpcCBwcm9jZWR1cmUgdG8gc2Nyb2xsIHRvIGVsZW1lbnRcbiAqL1xuY29uc3QgaGlnaGxpZ2h0T3B0aW9uID0gKGVsLCBuZXh0RWwsIHsgc2tpcEZvY3VzLCBwcmV2ZW50U2Nyb2xsIH0gPSB7fSkgPT4ge1xuICBjb25zdCB7IGlucHV0RWwsIGxpc3RFbCwgZm9jdXNlZE9wdGlvbkVsIH0gPSBnZXRDb21ib0JveENvbnRleHQoZWwpO1xuXG4gIGlmIChmb2N1c2VkT3B0aW9uRWwpIHtcbiAgICBmb2N1c2VkT3B0aW9uRWwuY2xhc3NMaXN0LnJlbW92ZShMSVNUX09QVElPTl9GT0NVU0VEX0NMQVNTKTtcbiAgICBmb2N1c2VkT3B0aW9uRWwuc2V0QXR0cmlidXRlKFwidGFiSW5kZXhcIiwgXCItMVwiKTtcbiAgfVxuXG4gIGlmIChuZXh0RWwpIHtcbiAgICBpbnB1dEVsLnNldEF0dHJpYnV0ZShcImFyaWEtYWN0aXZlZGVzY2VuZGFudFwiLCBuZXh0RWwuaWQpO1xuICAgIG5leHRFbC5zZXRBdHRyaWJ1dGUoXCJ0YWJJbmRleFwiLCBcIjBcIik7XG4gICAgbmV4dEVsLmNsYXNzTGlzdC5hZGQoTElTVF9PUFRJT05fRk9DVVNFRF9DTEFTUyk7XG5cbiAgICBpZiAoIXByZXZlbnRTY3JvbGwpIHtcbiAgICAgIGNvbnN0IG9wdGlvbkJvdHRvbSA9IG5leHRFbC5vZmZzZXRUb3AgKyBuZXh0RWwub2Zmc2V0SGVpZ2h0O1xuICAgICAgY29uc3QgY3VycmVudEJvdHRvbSA9IGxpc3RFbC5zY3JvbGxUb3AgKyBsaXN0RWwub2Zmc2V0SGVpZ2h0O1xuXG4gICAgICBpZiAob3B0aW9uQm90dG9tID4gY3VycmVudEJvdHRvbSkge1xuICAgICAgICBsaXN0RWwuc2Nyb2xsVG9wID0gb3B0aW9uQm90dG9tIC0gbGlzdEVsLm9mZnNldEhlaWdodDtcbiAgICAgIH1cblxuICAgICAgaWYgKG5leHRFbC5vZmZzZXRUb3AgPCBsaXN0RWwuc2Nyb2xsVG9wKSB7XG4gICAgICAgIGxpc3RFbC5zY3JvbGxUb3AgPSBuZXh0RWwub2Zmc2V0VG9wO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghc2tpcEZvY3VzKSB7XG4gICAgICBuZXh0RWwuZm9jdXMoeyBwcmV2ZW50U2Nyb2xsIH0pO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBpbnB1dEVsLnNldEF0dHJpYnV0ZShcImFyaWEtYWN0aXZlZGVzY2VuZGFudFwiLCBcIlwiKTtcbiAgICBpbnB1dEVsLmZvY3VzKCk7XG4gIH1cbn07XG5cbi8qKlxuICogR2VuZXJhdGUgYSBkeW5hbWljIHJlZ3VsYXIgZXhwcmVzc2lvbiBiYXNlZCBvZmYgb2YgYSByZXBsYWNlYWJsZSBhbmQgcG9zc2libHkgZmlsdGVyZWQgdmFsdWUuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGVsIEFuIGVsZW1lbnQgd2l0aGluIHRoZSBjb21ibyBib3ggY29tcG9uZW50XG4gKiBAcGFyYW0ge3N0cmluZ30gcXVlcnkgVGhlIHZhbHVlIHRvIHVzZSBpbiB0aGUgcmVndWxhciBleHByZXNzaW9uXG4gKiBAcGFyYW0ge29iamVjdH0gZXh0cmFzIEFuIG9iamVjdCBvZiByZWd1bGFyIGV4cHJlc3Npb25zIHRvIHJlcGxhY2UgYW5kIGZpbHRlciB0aGUgcXVlcnlcbiAqL1xuY29uc3QgZ2VuZXJhdGVEeW5hbWljUmVnRXhwID0gKGZpbHRlciwgcXVlcnkgPSBcIlwiLCBleHRyYXMgPSB7fSkgPT4ge1xuICBjb25zdCBlc2NhcGVSZWdFeHAgPSAodGV4dCkgPT5cbiAgICB0ZXh0LnJlcGxhY2UoL1stW1xcXXt9KCkqKz8uLFxcXFxeJHwjXFxzXS9nLCBcIlxcXFwkJlwiKTtcblxuICBsZXQgZmluZCA9IGZpbHRlci5yZXBsYWNlKC97eyguKj8pfX0vZywgKG0sICQxKSA9PiB7XG4gICAgY29uc3Qga2V5ID0gJDEudHJpbSgpO1xuICAgIGNvbnN0IHF1ZXJ5RmlsdGVyID0gZXh0cmFzW2tleV07XG4gICAgaWYgKGtleSAhPT0gXCJxdWVyeVwiICYmIHF1ZXJ5RmlsdGVyKSB7XG4gICAgICBjb25zdCBtYXRjaGVyID0gbmV3IFJlZ0V4cChxdWVyeUZpbHRlciwgXCJpXCIpO1xuICAgICAgY29uc3QgbWF0Y2hlcyA9IHF1ZXJ5Lm1hdGNoKG1hdGNoZXIpO1xuXG4gICAgICBpZiAobWF0Y2hlcykge1xuICAgICAgICByZXR1cm4gZXNjYXBlUmVnRXhwKG1hdGNoZXNbMV0pO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gXCJcIjtcbiAgICB9XG4gICAgcmV0dXJuIGVzY2FwZVJlZ0V4cChxdWVyeSk7XG4gIH0pO1xuXG4gIGZpbmQgPSBgXig/OiR7ZmluZH0pJGA7XG5cbiAgcmV0dXJuIG5ldyBSZWdFeHAoZmluZCwgXCJpXCIpO1xufTtcblxuLyoqXG4gKiBEaXNwbGF5IHRoZSBvcHRpb24gbGlzdCBvZiBhIGNvbWJvIGJveCBjb21wb25lbnQuXG4gKlxuICogQHBhcmFtIHtIVE1MRWxlbWVudH0gZWwgQW4gZWxlbWVudCB3aXRoaW4gdGhlIGNvbWJvIGJveCBjb21wb25lbnRcbiAqL1xuY29uc3QgZGlzcGxheUxpc3QgPSAoZWwpID0+IHtcbiAgY29uc3Qge1xuICAgIGNvbWJvQm94RWwsXG4gICAgc2VsZWN0RWwsXG4gICAgaW5wdXRFbCxcbiAgICBsaXN0RWwsXG4gICAgc3RhdHVzRWwsXG4gICAgaXNQcmlzdGluZSxcbiAgICBkaXNhYmxlRmlsdGVyaW5nLFxuICB9ID0gZ2V0Q29tYm9Cb3hDb250ZXh0KGVsKTtcbiAgbGV0IHNlbGVjdGVkSXRlbUlkO1xuICBsZXQgZmlyc3RGb3VuZElkO1xuXG4gIGNvbnN0IGxpc3RPcHRpb25CYXNlSWQgPSBgJHtsaXN0RWwuaWR9LS1vcHRpb24tYDtcblxuICBjb25zdCBpbnB1dFZhbHVlID0gKGlucHV0RWwudmFsdWUgfHwgXCJcIikudG9Mb3dlckNhc2UoKTtcbiAgY29uc3QgZmlsdGVyID0gY29tYm9Cb3hFbC5kYXRhc2V0LmZpbHRlciB8fCBERUZBVUxUX0ZJTFRFUjtcbiAgY29uc3QgcmVnZXggPSBnZW5lcmF0ZUR5bmFtaWNSZWdFeHAoZmlsdGVyLCBpbnB1dFZhbHVlLCBjb21ib0JveEVsLmRhdGFzZXQpO1xuXG4gIGxldCBvcHRpb25zID0gW107XG4gIGNvbnN0IG9wdGlvbnNTdGFydHNXaXRoID0gW107XG4gIGNvbnN0IG9wdGlvbnNDb250YWlucyA9IFtdO1xuICBjb25zdCBvcHRpb25MaXN0ID0gWy4uLnNlbGVjdEVsLm9wdGlvbnNdO1xuXG4gIC8qKlxuICAgKiBCdWlsZHMgYW5kIHNvcnRzIG9wdGlvbnMgYXJyYXkuXG4gICAqXG4gICAqIE9wdGlvbiBwYXJhbSBpcyBwYXNzZWQgdGhyb3VnaCByZWdleCB0ZXN0IGJlZm9yZSBwYXNzaW5nIGludG8gdGhpcyBmdW5jdGlvbi5cbiAgICogV2hlbiBmaWx0ZXJpbmcgaXMgZW5hYmxlZCwgdGhlIGFycmF5IHdpbGwgYmUgc29ydGVkIGJ5IG9wdGlvbnMgdGhhdCBzdGFydCB3aXRoIHRoZSBxdWVyeSwgZm9sbG93ZWQgYnlcbiAgICogb3B0aW9ucyB0aGF0IGNvbnRhaW4gdGhlIHF1ZXJ5LlxuICAgKiBXaGVuIGZpbHRlcmluZyBpcyBkaXNhYmxlZCwgYWxsIG9wdGlvbnMgd2lsbCBiZSBpbmNsdWRlZCBpbiB0aGUgYXJyYXkgdW5zb3J0ZWQuXG4gICAqXG4gICAqIFRoZXNlIGFycmF5IGl0ZW1zIHdpbGwgcG9wdWxhdGUgdGhlIGxpc3QgdGhhdCBpcyBkaXNwbGF5ZWQgdG8gdGhlIHVzZXIgYWZ0ZXIgYSBzZWFyY2ggcXVlcnkgaXMgZW50ZXJlZC5cbiAgICogQXJyYXkgYXR0cmlidXRlcyBhcmUgYWxzbyB1c2VkIHRvIHNldCBvcHRpb24gSURzIGFuZCBhcmlhLXNldHNpemUgYXR0cmlidXRlcy5cbiAgICpcbiAgICogQHBhcmFtIHtIVE1MT3B0aW9uRWxlbWVudH0gb3B0aW9uIC0gT3B0aW9uIGVsZW1lbnQgZnJvbSBzZWxlY3QgYXJyYXlcbiAgICovXG4gIGNvbnN0IGJ1aWxkT3B0aW9uc0FycmF5ID0gKG9wdGlvbikgPT4ge1xuICAgIGlmIChkaXNhYmxlRmlsdGVyaW5nIHx8IGlzUHJpc3RpbmUpIHtcbiAgICAgIG9wdGlvbnMucHVzaChvcHRpb24pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG1hdGNoU3RhcnRzV2l0aCA9IG9wdGlvbi50ZXh0LnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aChpbnB1dFZhbHVlKTtcblxuICAgIGlmIChtYXRjaFN0YXJ0c1dpdGgpIHtcbiAgICAgIG9wdGlvbnNTdGFydHNXaXRoLnB1c2gob3B0aW9uKTtcbiAgICB9IGVsc2Uge1xuICAgICAgb3B0aW9uc0NvbnRhaW5zLnB1c2gob3B0aW9uKTtcbiAgICB9XG5cbiAgICBvcHRpb25zID0gWy4uLm9wdGlvbnNTdGFydHNXaXRoLCAuLi5vcHRpb25zQ29udGFpbnNdO1xuICB9O1xuXG4gIC8qKlxuICAgKiBDb21wYXJlcyBvcHRpb24gdGV4dCB0byBxdWVyeSB1c2luZyBnZW5lcmF0ZWQgcmVnZXggZmlsdGVyLlxuICAgKlxuICAgKiBAcGFyYW0ge0hUTUxPcHRpb25FbGVtZW50fSBvcHRpb25cbiAgICogQHJldHVybnMge2Jvb2xlYW59IC0gVHJ1ZSB3aGVuIG9wdGlvbiB0ZXh0IG1hdGNoZXMgdXNlciBpbnB1dCBxdWVyeS5cbiAgICovXG4gIGNvbnN0IG9wdGlvbk1hdGNoZXNRdWVyeSA9IChvcHRpb24pID0+IHJlZ2V4LnRlc3Qob3B0aW9uLnRleHQpO1xuXG4gIC8qKlxuICAgKiBMb2dpYyBjaGVjayB0byBkZXRlcm1pbmUgaWYgb3B0aW9ucyBhcnJheSBuZWVkcyB0byBiZSB1cGRhdGVkLlxuICAgKlxuICAgKiBAcGFyYW0ge0hUTUxPcHRpb25FbGVtZW50fSBvcHRpb25cbiAgICogQHJldHVybnMge2Jvb2xlYW59IC0gVHJ1ZSB3aGVuIG9wdGlvbiBoYXMgdmFsdWUgJiYgaWYgZmlsdGVyaW5nIGlzIGRpc2FibGVkLCBjb21ibyBib3ggaGFzIGFuIGFjdGl2ZSBzZWxlY3Rpb24sXG4gICAqIHRoZXJlIGlzIG5vIGlucHV0VmFsdWUsIG9yIGlmIG9wdGlvbiBtYXRjaGVzIHVzZXIgcXVlcnlcbiAgICovXG4gIGNvbnN0IGFycmF5TmVlZHNVcGRhdGUgPSAob3B0aW9uKSA9PlxuICAgIG9wdGlvbi52YWx1ZSAmJlxuICAgIChkaXNhYmxlRmlsdGVyaW5nIHx8XG4gICAgICBpc1ByaXN0aW5lIHx8XG4gICAgICAhaW5wdXRWYWx1ZSB8fFxuICAgICAgb3B0aW9uTWF0Y2hlc1F1ZXJ5KG9wdGlvbikpO1xuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgZmlyc3RGb3VuZElkIHNob3VsZCBiZSBhc3NpZ25lZCwgd2hpY2ggaXMgdGhlbiB1c2VkIHRvIHNldCBpdGVtVG9Gb2N1cy5cbiAgICpcbiAgICogQHBhcmFtIHtIVE1MT3B0aW9uRWxlbWVudH0gb3B0aW9uXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59IC0gUmV0dXJucyB0cnVlIGlmIGZpbHRlcmluZyBpcyBkaXNhYmxlZCwgbm8gZmlyc3RGb3VuZElkIGlzIGFzc2lnbmVkLCBhbmQgdGhlIG9wdGlvbiBtYXRjaGVzIHRoZSBxdWVyeS5cbiAgICovXG4gIGNvbnN0IGlzRmlyc3RNYXRjaCA9IChvcHRpb24pID0+XG4gICAgZGlzYWJsZUZpbHRlcmluZyAmJiAhZmlyc3RGb3VuZElkICYmIG9wdGlvbk1hdGNoZXNRdWVyeShvcHRpb24pO1xuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgaXNDdXJyZW50U2VsZWN0aW9uIHNob3VsZCBiZSBhc3NpZ25lZCwgd2hpY2ggaXMgdGhlbiB1c2VkIHRvIHNldCBpdGVtVG9Gb2N1cy5cbiAgICpcbiAgICogQHBhcmFtIHtIVE1MT3B0aW9uRWxlbWVudH0gb3B0aW9uXG4gICAqIEByZXR1cm5zIHtib29sZWFufSAtIFJldHVybnMgdHJ1ZSBpZiBvcHRpb24udmFsdWUgbWF0Y2hlcyBzZWxlY3RFbC52YWx1ZS5cbiAgICovXG4gIGNvbnN0IGlzQ3VycmVudFNlbGVjdGlvbiA9IChvcHRpb24pID0+XG4gICAgc2VsZWN0RWwudmFsdWUgJiYgb3B0aW9uLnZhbHVlID09PSBzZWxlY3RFbC52YWx1ZTtcblxuICAvKipcbiAgICogVXBkYXRlIHRoZSBhcnJheSBvZiBvcHRpb25zIHRoYXQgc2hvdWxkIGJlIGRpc3BsYXllZCBvbiB0aGUgcGFnZS5cbiAgICogQXNzaWduIGFuIElEIHRvIGVhY2ggZGlzcGxheWVkIG9wdGlvbi5cbiAgICogSWRlbnRpZnkgYW5kIGFzc2lnbiB0aGUgb3B0aW9uIHRoYXQgc2hvdWxkIHJlY2VpdmUgZm9jdXMuXG4gICAqL1xuICBvcHRpb25MaXN0LmZvckVhY2goKG9wdGlvbikgPT4ge1xuICAgIGlmIChhcnJheU5lZWRzVXBkYXRlKG9wdGlvbikpIHtcbiAgICAgIGJ1aWxkT3B0aW9uc0FycmF5KG9wdGlvbik7XG5cbiAgICAgIGNvbnN0IG9wdGlvbklkID0gYCR7bGlzdE9wdGlvbkJhc2VJZH0ke29wdGlvbnMuaW5kZXhPZihvcHRpb24pfWA7XG5cbiAgICAgIGlmIChpc0ZpcnN0TWF0Y2gob3B0aW9uKSkge1xuICAgICAgICBmaXJzdEZvdW5kSWQgPSBvcHRpb25JZDtcbiAgICAgIH1cblxuICAgICAgaWYgKGlzQ3VycmVudFNlbGVjdGlvbihvcHRpb24pKSB7XG4gICAgICAgIHNlbGVjdGVkSXRlbUlkID0gb3B0aW9uSWQ7XG4gICAgICB9XG4gICAgfVxuICB9KTtcblxuICBjb25zdCBudW1PcHRpb25zID0gb3B0aW9ucy5sZW5ndGg7XG4gIGNvbnN0IG9wdGlvbkh0bWwgPSBvcHRpb25zLm1hcCgob3B0aW9uLCBpbmRleCkgPT4ge1xuICAgIGNvbnN0IG9wdGlvbklkID0gYCR7bGlzdE9wdGlvbkJhc2VJZH0ke2luZGV4fWA7XG4gICAgY29uc3QgY2xhc3NlcyA9IFtMSVNUX09QVElPTl9DTEFTU107XG4gICAgbGV0IHRhYmluZGV4ID0gXCItMVwiO1xuICAgIGxldCBhcmlhU2VsZWN0ZWQgPSBcImZhbHNlXCI7XG5cbiAgICBpZiAob3B0aW9uSWQgPT09IHNlbGVjdGVkSXRlbUlkKSB7XG4gICAgICBjbGFzc2VzLnB1c2goTElTVF9PUFRJT05fU0VMRUNURURfQ0xBU1MsIExJU1RfT1BUSU9OX0ZPQ1VTRURfQ0xBU1MpO1xuICAgICAgdGFiaW5kZXggPSBcIjBcIjtcbiAgICAgIGFyaWFTZWxlY3RlZCA9IFwidHJ1ZVwiO1xuICAgIH1cblxuICAgIGlmICghc2VsZWN0ZWRJdGVtSWQgJiYgaW5kZXggPT09IDApIHtcbiAgICAgIGNsYXNzZXMucHVzaChMSVNUX09QVElPTl9GT0NVU0VEX0NMQVNTKTtcbiAgICAgIHRhYmluZGV4ID0gXCIwXCI7XG4gICAgfVxuXG4gICAgY29uc3QgbGkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwibGlcIik7XG5cbiAgICBsaS5zZXRBdHRyaWJ1dGUoXCJhcmlhLXNldHNpemVcIiwgb3B0aW9ucy5sZW5ndGgpO1xuICAgIGxpLnNldEF0dHJpYnV0ZShcImFyaWEtcG9zaW5zZXRcIiwgaW5kZXggKyAxKTtcbiAgICBsaS5zZXRBdHRyaWJ1dGUoXCJhcmlhLXNlbGVjdGVkXCIsIGFyaWFTZWxlY3RlZCk7XG4gICAgbGkuc2V0QXR0cmlidXRlKFwiaWRcIiwgb3B0aW9uSWQpO1xuICAgIGxpLnNldEF0dHJpYnV0ZShcImNsYXNzXCIsIGNsYXNzZXMuam9pbihcIiBcIikpO1xuICAgIGxpLnNldEF0dHJpYnV0ZShcInRhYmluZGV4XCIsIHRhYmluZGV4KTtcbiAgICBsaS5zZXRBdHRyaWJ1dGUoXCJyb2xlXCIsIFwib3B0aW9uXCIpO1xuICAgIGxpLnNldEF0dHJpYnV0ZShcImRhdGEtdmFsdWVcIiwgb3B0aW9uLnZhbHVlKTtcbiAgICBsaS50ZXh0Q29udGVudCA9IG9wdGlvbi50ZXh0O1xuXG4gICAgcmV0dXJuIGxpO1xuICB9KTtcblxuICBjb25zdCBub1Jlc3VsdHMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwibGlcIik7XG4gIG5vUmVzdWx0cy5zZXRBdHRyaWJ1dGUoXCJjbGFzc1wiLCBgJHtMSVNUX09QVElPTl9DTEFTU30tLW5vLXJlc3VsdHNgKTtcbiAgbm9SZXN1bHRzLnRleHRDb250ZW50ID0gXCJObyByZXN1bHRzIGZvdW5kXCI7XG5cbiAgbGlzdEVsLmhpZGRlbiA9IGZhbHNlO1xuXG4gIGlmIChudW1PcHRpb25zKSB7XG4gICAgbGlzdEVsLmlubmVySFRNTCA9IFwiXCI7XG4gICAgb3B0aW9uSHRtbC5mb3JFYWNoKChpdGVtKSA9PlxuICAgICAgbGlzdEVsLmluc2VydEFkamFjZW50RWxlbWVudChcImJlZm9yZWVuZFwiLCBpdGVtKSxcbiAgICApO1xuICB9IGVsc2Uge1xuICAgIGxpc3RFbC5pbm5lckhUTUwgPSBcIlwiO1xuICAgIGxpc3RFbC5pbnNlcnRBZGphY2VudEVsZW1lbnQoXCJiZWZvcmVlbmRcIiwgbm9SZXN1bHRzKTtcbiAgfVxuXG4gIGlucHV0RWwuc2V0QXR0cmlidXRlKFwiYXJpYS1leHBhbmRlZFwiLCBcInRydWVcIik7XG5cbiAgc3RhdHVzRWwudGV4dENvbnRlbnQgPSBudW1PcHRpb25zXG4gICAgPyBgJHtudW1PcHRpb25zfSByZXN1bHQke251bU9wdGlvbnMgPiAxID8gXCJzXCIgOiBcIlwifSBhdmFpbGFibGUuYFxuICAgIDogXCJObyByZXN1bHRzLlwiO1xuXG4gIGxldCBpdGVtVG9Gb2N1cztcblxuICBpZiAoaXNQcmlzdGluZSAmJiBzZWxlY3RlZEl0ZW1JZCkge1xuICAgIGl0ZW1Ub0ZvY3VzID0gbGlzdEVsLnF1ZXJ5U2VsZWN0b3IoYCMke3NlbGVjdGVkSXRlbUlkfWApO1xuICB9IGVsc2UgaWYgKGRpc2FibGVGaWx0ZXJpbmcgJiYgZmlyc3RGb3VuZElkKSB7XG4gICAgaXRlbVRvRm9jdXMgPSBsaXN0RWwucXVlcnlTZWxlY3RvcihgIyR7Zmlyc3RGb3VuZElkfWApO1xuICB9XG5cbiAgaWYgKGl0ZW1Ub0ZvY3VzKSB7XG4gICAgaGlnaGxpZ2h0T3B0aW9uKGxpc3RFbCwgaXRlbVRvRm9jdXMsIHtcbiAgICAgIHNraXBGb2N1czogdHJ1ZSxcbiAgICB9KTtcbiAgfVxufTtcblxuLyoqXG4gKiBIaWRlIHRoZSBvcHRpb24gbGlzdCBvZiBhIGNvbWJvIGJveCBjb21wb25lbnQuXG4gKlxuICogQHBhcmFtIHtIVE1MRWxlbWVudH0gZWwgQW4gZWxlbWVudCB3aXRoaW4gdGhlIGNvbWJvIGJveCBjb21wb25lbnRcbiAqL1xuY29uc3QgaGlkZUxpc3QgPSAoZWwpID0+IHtcbiAgY29uc3QgeyBpbnB1dEVsLCBsaXN0RWwsIHN0YXR1c0VsLCBmb2N1c2VkT3B0aW9uRWwgfSA9IGdldENvbWJvQm94Q29udGV4dChlbCk7XG5cbiAgc3RhdHVzRWwuaW5uZXJIVE1MID0gXCJcIjtcblxuICBpbnB1dEVsLnNldEF0dHJpYnV0ZShcImFyaWEtZXhwYW5kZWRcIiwgXCJmYWxzZVwiKTtcbiAgaW5wdXRFbC5zZXRBdHRyaWJ1dGUoXCJhcmlhLWFjdGl2ZWRlc2NlbmRhbnRcIiwgXCJcIik7XG5cbiAgaWYgKGZvY3VzZWRPcHRpb25FbCkge1xuICAgIGZvY3VzZWRPcHRpb25FbC5jbGFzc0xpc3QucmVtb3ZlKExJU1RfT1BUSU9OX0ZPQ1VTRURfQ0xBU1MpO1xuICB9XG5cbiAgbGlzdEVsLnNjcm9sbFRvcCA9IDA7XG4gIGxpc3RFbC5oaWRkZW4gPSB0cnVlO1xufTtcblxuLyoqXG4gKiBTZWxlY3QgYW4gb3B0aW9uIGxpc3Qgb2YgdGhlIGNvbWJvIGJveCBjb21wb25lbnQuXG4gKlxuICogQHBhcmFtIHtIVE1MRWxlbWVudH0gbGlzdE9wdGlvbkVsIFRoZSBsaXN0IG9wdGlvbiBiZWluZyBzZWxlY3RlZFxuICovXG5jb25zdCBzZWxlY3RJdGVtID0gKGxpc3RPcHRpb25FbCkgPT4ge1xuICBjb25zdCB7IGNvbWJvQm94RWwsIHNlbGVjdEVsLCBpbnB1dEVsIH0gPSBnZXRDb21ib0JveENvbnRleHQobGlzdE9wdGlvbkVsKTtcblxuICBjaGFuZ2VFbGVtZW50VmFsdWUoc2VsZWN0RWwsIGxpc3RPcHRpb25FbC5kYXRhc2V0LnZhbHVlKTtcbiAgY2hhbmdlRWxlbWVudFZhbHVlKGlucHV0RWwsIGxpc3RPcHRpb25FbC50ZXh0Q29udGVudCk7XG4gIGNvbWJvQm94RWwuY2xhc3NMaXN0LmFkZChDT01CT19CT1hfUFJJU1RJTkVfQ0xBU1MpO1xuICBoaWRlTGlzdChjb21ib0JveEVsKTtcbiAgaW5wdXRFbC5mb2N1cygpO1xufTtcblxuLyoqXG4gKiBDbGVhciB0aGUgaW5wdXQgb2YgdGhlIGNvbWJvIGJveFxuICpcbiAqIEBwYXJhbSB7SFRNTEJ1dHRvbkVsZW1lbnR9IGNsZWFyQnV0dG9uRWwgVGhlIGNsZWFyIGlucHV0IGJ1dHRvblxuICovXG5jb25zdCBjbGVhcklucHV0ID0gKGNsZWFyQnV0dG9uRWwpID0+IHtcbiAgY29uc3QgeyBjb21ib0JveEVsLCBsaXN0RWwsIHNlbGVjdEVsLCBpbnB1dEVsIH0gPVxuICAgIGdldENvbWJvQm94Q29udGV4dChjbGVhckJ1dHRvbkVsKTtcbiAgY29uc3QgbGlzdFNob3duID0gIWxpc3RFbC5oaWRkZW47XG5cbiAgaWYgKHNlbGVjdEVsLnZhbHVlKSBjaGFuZ2VFbGVtZW50VmFsdWUoc2VsZWN0RWwpO1xuICBpZiAoaW5wdXRFbC52YWx1ZSkgY2hhbmdlRWxlbWVudFZhbHVlKGlucHV0RWwpO1xuICBjb21ib0JveEVsLmNsYXNzTGlzdC5yZW1vdmUoQ09NQk9fQk9YX1BSSVNUSU5FX0NMQVNTKTtcblxuICBpZiAobGlzdFNob3duKSBkaXNwbGF5TGlzdChjb21ib0JveEVsKTtcbiAgaW5wdXRFbC5mb2N1cygpO1xufTtcblxuLyoqXG4gKiBSZXNldCB0aGUgc2VsZWN0IGJhc2VkIG9mZiBvZiBjdXJyZW50bHkgc2V0IHNlbGVjdCB2YWx1ZVxuICpcbiAqIEBwYXJhbSB7SFRNTEVsZW1lbnR9IGVsIEFuIGVsZW1lbnQgd2l0aGluIHRoZSBjb21ibyBib3ggY29tcG9uZW50XG4gKi9cbmNvbnN0IHJlc2V0U2VsZWN0aW9uID0gKGVsKSA9PiB7XG4gIGNvbnN0IHsgY29tYm9Cb3hFbCwgc2VsZWN0RWwsIGlucHV0RWwgfSA9IGdldENvbWJvQm94Q29udGV4dChlbCk7XG5cbiAgY29uc3Qgc2VsZWN0VmFsdWUgPSBzZWxlY3RFbC52YWx1ZTtcbiAgY29uc3QgaW5wdXRWYWx1ZSA9IChpbnB1dEVsLnZhbHVlIHx8IFwiXCIpLnRvTG93ZXJDYXNlKCk7XG5cbiAgaWYgKHNlbGVjdFZhbHVlKSB7XG4gICAgZm9yIChsZXQgaSA9IDAsIGxlbiA9IHNlbGVjdEVsLm9wdGlvbnMubGVuZ3RoOyBpIDwgbGVuOyBpICs9IDEpIHtcbiAgICAgIGNvbnN0IG9wdGlvbkVsID0gc2VsZWN0RWwub3B0aW9uc1tpXTtcbiAgICAgIGlmIChvcHRpb25FbC52YWx1ZSA9PT0gc2VsZWN0VmFsdWUpIHtcbiAgICAgICAgaWYgKGlucHV0VmFsdWUgIT09IG9wdGlvbkVsLnRleHQpIHtcbiAgICAgICAgICBjaGFuZ2VFbGVtZW50VmFsdWUoaW5wdXRFbCwgb3B0aW9uRWwudGV4dCk7XG4gICAgICAgIH1cbiAgICAgICAgY29tYm9Cb3hFbC5jbGFzc0xpc3QuYWRkKENPTUJPX0JPWF9QUklTVElORV9DTEFTUyk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAoaW5wdXRWYWx1ZSkge1xuICAgIGNoYW5nZUVsZW1lbnRWYWx1ZShpbnB1dEVsKTtcbiAgfVxufTtcblxuLyoqXG4gKiBTZWxlY3QgYW4gb3B0aW9uIGxpc3Qgb2YgdGhlIGNvbWJvIGJveCBjb21wb25lbnQgYmFzZWQgb2ZmIG9mXG4gKiBoYXZpbmcgYSBjdXJyZW50IGZvY3VzZWQgbGlzdCBvcHRpb24gb3JcbiAqIGhhdmluZyB0ZXN0IHRoYXQgY29tcGxldGVseSBtYXRjaGVzIGEgbGlzdCBvcHRpb24uXG4gKiBPdGhlcndpc2UgaXQgY2xlYXJzIHRoZSBpbnB1dCBhbmQgc2VsZWN0LlxuICpcbiAqIEBwYXJhbSB7SFRNTEVsZW1lbnR9IGVsIEFuIGVsZW1lbnQgd2l0aGluIHRoZSBjb21ibyBib3ggY29tcG9uZW50XG4gKi9cbmNvbnN0IGNvbXBsZXRlU2VsZWN0aW9uID0gKGVsKSA9PiB7XG4gIGNvbnN0IHsgY29tYm9Cb3hFbCwgc2VsZWN0RWwsIGlucHV0RWwsIHN0YXR1c0VsIH0gPSBnZXRDb21ib0JveENvbnRleHQoZWwpO1xuXG4gIHN0YXR1c0VsLnRleHRDb250ZW50ID0gXCJcIjtcblxuICBjb25zdCBpbnB1dFZhbHVlID0gKGlucHV0RWwudmFsdWUgfHwgXCJcIikudG9Mb3dlckNhc2UoKTtcblxuICBpZiAoaW5wdXRWYWx1ZSkge1xuICAgIGZvciAobGV0IGkgPSAwLCBsZW4gPSBzZWxlY3RFbC5vcHRpb25zLmxlbmd0aDsgaSA8IGxlbjsgaSArPSAxKSB7XG4gICAgICBjb25zdCBvcHRpb25FbCA9IHNlbGVjdEVsLm9wdGlvbnNbaV07XG4gICAgICBpZiAob3B0aW9uRWwudGV4dC50b0xvd2VyQ2FzZSgpID09PSBpbnB1dFZhbHVlKSB7XG4gICAgICAgIGNoYW5nZUVsZW1lbnRWYWx1ZShzZWxlY3RFbCwgb3B0aW9uRWwudmFsdWUpO1xuICAgICAgICBjaGFuZ2VFbGVtZW50VmFsdWUoaW5wdXRFbCwgb3B0aW9uRWwudGV4dCk7XG4gICAgICAgIGNvbWJvQm94RWwuY2xhc3NMaXN0LmFkZChDT01CT19CT1hfUFJJU1RJTkVfQ0xBU1MpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmVzZXRTZWxlY3Rpb24oY29tYm9Cb3hFbCk7XG59O1xuXG4vKipcbiAqIEhhbmRsZSB0aGUgZXNjYXBlIGV2ZW50IHdpdGhpbiB0aGUgY29tYm8gYm94IGNvbXBvbmVudC5cbiAqXG4gKiBAcGFyYW0ge0tleWJvYXJkRXZlbnR9IGV2ZW50IEFuIGV2ZW50IHdpdGhpbiB0aGUgY29tYm8gYm94IGNvbXBvbmVudFxuICovXG5jb25zdCBoYW5kbGVFc2NhcGUgPSAoZXZlbnQpID0+IHtcbiAgY29uc3QgeyBjb21ib0JveEVsLCBpbnB1dEVsIH0gPSBnZXRDb21ib0JveENvbnRleHQoZXZlbnQudGFyZ2V0KTtcblxuICBoaWRlTGlzdChjb21ib0JveEVsKTtcbiAgcmVzZXRTZWxlY3Rpb24oY29tYm9Cb3hFbCk7XG4gIGlucHV0RWwuZm9jdXMoKTtcbn07XG5cbi8qKlxuICogSGFuZGxlIHRoZSBkb3duIGV2ZW50IHdpdGhpbiB0aGUgY29tYm8gYm94IGNvbXBvbmVudC5cbiAqXG4gKiBAcGFyYW0ge0tleWJvYXJkRXZlbnR9IGV2ZW50IEFuIGV2ZW50IHdpdGhpbiB0aGUgY29tYm8gYm94IGNvbXBvbmVudFxuICovXG5jb25zdCBoYW5kbGVEb3duRnJvbUlucHV0ID0gKGV2ZW50KSA9PiB7XG4gIGNvbnN0IHsgY29tYm9Cb3hFbCwgbGlzdEVsIH0gPSBnZXRDb21ib0JveENvbnRleHQoZXZlbnQudGFyZ2V0KTtcblxuICBpZiAobGlzdEVsLmhpZGRlbikge1xuICAgIGRpc3BsYXlMaXN0KGNvbWJvQm94RWwpO1xuICB9XG5cbiAgY29uc3QgbmV4dE9wdGlvbkVsID1cbiAgICBsaXN0RWwucXVlcnlTZWxlY3RvcihMSVNUX09QVElPTl9GT0NVU0VEKSB8fFxuICAgIGxpc3RFbC5xdWVyeVNlbGVjdG9yKExJU1RfT1BUSU9OKTtcblxuICBpZiAobmV4dE9wdGlvbkVsKSB7XG4gICAgaGlnaGxpZ2h0T3B0aW9uKGNvbWJvQm94RWwsIG5leHRPcHRpb25FbCk7XG4gIH1cblxuICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xufTtcblxuLyoqXG4gKiBIYW5kbGUgdGhlIGVudGVyIGV2ZW50IGZyb20gYW4gaW5wdXQgZWxlbWVudCB3aXRoaW4gdGhlIGNvbWJvIGJveCBjb21wb25lbnQuXG4gKlxuICogQHBhcmFtIHtLZXlib2FyZEV2ZW50fSBldmVudCBBbiBldmVudCB3aXRoaW4gdGhlIGNvbWJvIGJveCBjb21wb25lbnRcbiAqL1xuY29uc3QgaGFuZGxlRW50ZXJGcm9tSW5wdXQgPSAoZXZlbnQpID0+IHtcbiAgY29uc3QgeyBjb21ib0JveEVsLCBsaXN0RWwgfSA9IGdldENvbWJvQm94Q29udGV4dChldmVudC50YXJnZXQpO1xuICBjb25zdCBsaXN0U2hvd24gPSAhbGlzdEVsLmhpZGRlbjtcblxuICBjb21wbGV0ZVNlbGVjdGlvbihjb21ib0JveEVsKTtcblxuICBpZiAobGlzdFNob3duKSB7XG4gICAgaGlkZUxpc3QoY29tYm9Cb3hFbCk7XG4gIH1cblxuICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xufTtcblxuLyoqXG4gKiBIYW5kbGUgdGhlIGRvd24gZXZlbnQgd2l0aGluIHRoZSBjb21ibyBib3ggY29tcG9uZW50LlxuICpcbiAqIEBwYXJhbSB7S2V5Ym9hcmRFdmVudH0gZXZlbnQgQW4gZXZlbnQgd2l0aGluIHRoZSBjb21ibyBib3ggY29tcG9uZW50XG4gKi9cbmNvbnN0IGhhbmRsZURvd25Gcm9tTGlzdE9wdGlvbiA9IChldmVudCkgPT4ge1xuICBjb25zdCBmb2N1c2VkT3B0aW9uRWwgPSBldmVudC50YXJnZXQ7XG4gIGNvbnN0IG5leHRPcHRpb25FbCA9IGZvY3VzZWRPcHRpb25FbC5uZXh0U2libGluZztcblxuICBpZiAobmV4dE9wdGlvbkVsKSB7XG4gICAgaGlnaGxpZ2h0T3B0aW9uKGZvY3VzZWRPcHRpb25FbCwgbmV4dE9wdGlvbkVsKTtcbiAgfVxuXG4gIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG59O1xuXG4vKipcbiAqIEhhbmRsZSB0aGUgc3BhY2UgZXZlbnQgZnJvbSBhbiBsaXN0IG9wdGlvbiBlbGVtZW50IHdpdGhpbiB0aGUgY29tYm8gYm94IGNvbXBvbmVudC5cbiAqXG4gKiBAcGFyYW0ge0tleWJvYXJkRXZlbnR9IGV2ZW50IEFuIGV2ZW50IHdpdGhpbiB0aGUgY29tYm8gYm94IGNvbXBvbmVudFxuICovXG5jb25zdCBoYW5kbGVTcGFjZUZyb21MaXN0T3B0aW9uID0gKGV2ZW50KSA9PiB7XG4gIHNlbGVjdEl0ZW0oZXZlbnQudGFyZ2V0KTtcbiAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbn07XG5cbi8qKlxuICogSGFuZGxlIHRoZSBlbnRlciBldmVudCBmcm9tIGxpc3Qgb3B0aW9uIHdpdGhpbiB0aGUgY29tYm8gYm94IGNvbXBvbmVudC5cbiAqXG4gKiBAcGFyYW0ge0tleWJvYXJkRXZlbnR9IGV2ZW50IEFuIGV2ZW50IHdpdGhpbiB0aGUgY29tYm8gYm94IGNvbXBvbmVudFxuICovXG5jb25zdCBoYW5kbGVFbnRlckZyb21MaXN0T3B0aW9uID0gKGV2ZW50KSA9PiB7XG4gIHNlbGVjdEl0ZW0oZXZlbnQudGFyZ2V0KTtcbiAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbn07XG5cbi8qKlxuICogSGFuZGxlIHRoZSB1cCBldmVudCBmcm9tIGxpc3Qgb3B0aW9uIHdpdGhpbiB0aGUgY29tYm8gYm94IGNvbXBvbmVudC5cbiAqXG4gKiBAcGFyYW0ge0tleWJvYXJkRXZlbnR9IGV2ZW50IEFuIGV2ZW50IHdpdGhpbiB0aGUgY29tYm8gYm94IGNvbXBvbmVudFxuICovXG5jb25zdCBoYW5kbGVVcEZyb21MaXN0T3B0aW9uID0gKGV2ZW50KSA9PiB7XG4gIGNvbnN0IHsgY29tYm9Cb3hFbCwgbGlzdEVsLCBmb2N1c2VkT3B0aW9uRWwgfSA9IGdldENvbWJvQm94Q29udGV4dChcbiAgICBldmVudC50YXJnZXQsXG4gICk7XG4gIGNvbnN0IG5leHRPcHRpb25FbCA9IGZvY3VzZWRPcHRpb25FbCAmJiBmb2N1c2VkT3B0aW9uRWwucHJldmlvdXNTaWJsaW5nO1xuICBjb25zdCBsaXN0U2hvd24gPSAhbGlzdEVsLmhpZGRlbjtcblxuICBoaWdobGlnaHRPcHRpb24oY29tYm9Cb3hFbCwgbmV4dE9wdGlvbkVsKTtcblxuICBpZiAobGlzdFNob3duKSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgfVxuXG4gIGlmICghbmV4dE9wdGlvbkVsKSB7XG4gICAgaGlkZUxpc3QoY29tYm9Cb3hFbCk7XG4gIH1cbn07XG5cbi8qKlxuICogU2VsZWN0IGxpc3Qgb3B0aW9uIG9uIHRoZSBtb3VzZW92ZXIgZXZlbnQuXG4gKlxuICogQHBhcmFtIHtNb3VzZUV2ZW50fSBldmVudCBUaGUgbW91c2VvdmVyIGV2ZW50XG4gKiBAcGFyYW0ge0hUTUxMSUVsZW1lbnR9IGxpc3RPcHRpb25FbCBBbiBlbGVtZW50IHdpdGhpbiB0aGUgY29tYm8gYm94IGNvbXBvbmVudFxuICovXG5jb25zdCBoYW5kbGVNb3VzZW92ZXIgPSAobGlzdE9wdGlvbkVsKSA9PiB7XG4gIGNvbnN0IGlzQ3VycmVudGx5Rm9jdXNlZCA9IGxpc3RPcHRpb25FbC5jbGFzc0xpc3QuY29udGFpbnMoXG4gICAgTElTVF9PUFRJT05fRk9DVVNFRF9DTEFTUyxcbiAgKTtcblxuICBpZiAoaXNDdXJyZW50bHlGb2N1c2VkKSByZXR1cm47XG5cbiAgaGlnaGxpZ2h0T3B0aW9uKGxpc3RPcHRpb25FbCwgbGlzdE9wdGlvbkVsLCB7XG4gICAgcHJldmVudFNjcm9sbDogdHJ1ZSxcbiAgfSk7XG59O1xuXG4vKipcbiAqIFRvZ2dsZSB0aGUgbGlzdCB3aGVuIHRoZSBidXR0b24gaXMgY2xpY2tlZFxuICpcbiAqIEBwYXJhbSB7SFRNTEVsZW1lbnR9IGVsIEFuIGVsZW1lbnQgd2l0aGluIHRoZSBjb21ibyBib3ggY29tcG9uZW50XG4gKi9cbmNvbnN0IHRvZ2dsZUxpc3QgPSAoZWwpID0+IHtcbiAgY29uc3QgeyBjb21ib0JveEVsLCBsaXN0RWwsIGlucHV0RWwgfSA9IGdldENvbWJvQm94Q29udGV4dChlbCk7XG5cbiAgaWYgKGxpc3RFbC5oaWRkZW4pIHtcbiAgICBkaXNwbGF5TGlzdChjb21ib0JveEVsKTtcbiAgfSBlbHNlIHtcbiAgICBoaWRlTGlzdChjb21ib0JveEVsKTtcbiAgfVxuXG4gIGlucHV0RWwuZm9jdXMoKTtcbn07XG5cbi8qKlxuICogSGFuZGxlIGNsaWNrIGZyb20gaW5wdXRcbiAqXG4gKiBAcGFyYW0ge0hUTUxJbnB1dEVsZW1lbnR9IGVsIEFuIGVsZW1lbnQgd2l0aGluIHRoZSBjb21ibyBib3ggY29tcG9uZW50XG4gKi9cbmNvbnN0IGhhbmRsZUNsaWNrRnJvbUlucHV0ID0gKGVsKSA9PiB7XG4gIGNvbnN0IHsgY29tYm9Cb3hFbCwgbGlzdEVsIH0gPSBnZXRDb21ib0JveENvbnRleHQoZWwpO1xuXG4gIGlmIChsaXN0RWwuaGlkZGVuKSB7XG4gICAgZGlzcGxheUxpc3QoY29tYm9Cb3hFbCk7XG4gIH1cbn07XG5cbmNvbnN0IGNvbWJvQm94ID0gYmVoYXZpb3IoXG4gIHtcbiAgICBbQ0xJQ0tdOiB7XG4gICAgICBbSU5QVVRdKCkge1xuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCkgcmV0dXJuO1xuICAgICAgICBoYW5kbGVDbGlja0Zyb21JbnB1dCh0aGlzKTtcbiAgICAgIH0sXG4gICAgICBbVE9HR0xFX0xJU1RfQlVUVE9OXSgpIHtcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQpIHJldHVybjtcbiAgICAgICAgdG9nZ2xlTGlzdCh0aGlzKTtcbiAgICAgIH0sXG4gICAgICBbTElTVF9PUFRJT05dKCkge1xuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCkgcmV0dXJuO1xuICAgICAgICBzZWxlY3RJdGVtKHRoaXMpO1xuICAgICAgfSxcbiAgICAgIFtDTEVBUl9JTlBVVF9CVVRUT05dKCkge1xuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCkgcmV0dXJuO1xuICAgICAgICBjbGVhcklucHV0KHRoaXMpO1xuICAgICAgfSxcbiAgICB9LFxuICAgIGZvY3Vzb3V0OiB7XG4gICAgICBbQ09NQk9fQk9YXShldmVudCkge1xuICAgICAgICBpZiAoIXRoaXMuY29udGFpbnMoZXZlbnQucmVsYXRlZFRhcmdldCkpIHtcbiAgICAgICAgICByZXNldFNlbGVjdGlvbih0aGlzKTtcbiAgICAgICAgICBoaWRlTGlzdCh0aGlzKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9LFxuICAgIGtleWRvd246IHtcbiAgICAgIFtDT01CT19CT1hdOiBrZXltYXAoe1xuICAgICAgICBFc2NhcGU6IGhhbmRsZUVzY2FwZSxcbiAgICAgIH0pLFxuICAgICAgW0lOUFVUXToga2V5bWFwKHtcbiAgICAgICAgRW50ZXI6IGhhbmRsZUVudGVyRnJvbUlucHV0LFxuICAgICAgICBBcnJvd0Rvd246IGhhbmRsZURvd25Gcm9tSW5wdXQsXG4gICAgICAgIERvd246IGhhbmRsZURvd25Gcm9tSW5wdXQsXG4gICAgICB9KSxcbiAgICAgIFtMSVNUX09QVElPTl06IGtleW1hcCh7XG4gICAgICAgIEFycm93VXA6IGhhbmRsZVVwRnJvbUxpc3RPcHRpb24sXG4gICAgICAgIFVwOiBoYW5kbGVVcEZyb21MaXN0T3B0aW9uLFxuICAgICAgICBBcnJvd0Rvd246IGhhbmRsZURvd25Gcm9tTGlzdE9wdGlvbixcbiAgICAgICAgRG93bjogaGFuZGxlRG93bkZyb21MaXN0T3B0aW9uLFxuICAgICAgICBFbnRlcjogaGFuZGxlRW50ZXJGcm9tTGlzdE9wdGlvbixcbiAgICAgICAgXCIgXCI6IGhhbmRsZVNwYWNlRnJvbUxpc3RPcHRpb24sXG4gICAgICAgIFwiU2hpZnQrVGFiXCI6IG5vb3AsXG4gICAgICB9KSxcbiAgICB9LFxuICAgIGlucHV0OiB7XG4gICAgICBbSU5QVVRdKCkge1xuICAgICAgICBjb25zdCBjb21ib0JveEVsID0gdGhpcy5jbG9zZXN0KENPTUJPX0JPWCk7XG4gICAgICAgIGNvbWJvQm94RWwuY2xhc3NMaXN0LnJlbW92ZShDT01CT19CT1hfUFJJU1RJTkVfQ0xBU1MpO1xuICAgICAgICBkaXNwbGF5TGlzdCh0aGlzKTtcbiAgICAgIH0sXG4gICAgfSxcbiAgICBtb3VzZW92ZXI6IHtcbiAgICAgIFtMSVNUX09QVElPTl0oKSB7XG4gICAgICAgIGhhbmRsZU1vdXNlb3Zlcih0aGlzKTtcbiAgICAgIH0sXG4gICAgfSxcbiAgfSxcbiAge1xuICAgIGluaXQocm9vdCkge1xuICAgICAgc2VsZWN0T3JNYXRjaGVzKENPTUJPX0JPWCwgcm9vdCkuZm9yRWFjaCgoY29tYm9Cb3hFbCkgPT4ge1xuICAgICAgICBlbmhhbmNlQ29tYm9Cb3goY29tYm9Cb3hFbCk7XG4gICAgICB9KTtcbiAgICB9LFxuICAgIGdldENvbWJvQm94Q29udGV4dCxcbiAgICBlbmhhbmNlQ29tYm9Cb3gsXG4gICAgZ2VuZXJhdGVEeW5hbWljUmVnRXhwLFxuICAgIGRpc2FibGUsXG4gICAgZW5hYmxlLFxuICAgIGRpc3BsYXlMaXN0LFxuICAgIGhpZGVMaXN0LFxuICAgIENPTUJPX0JPWF9DTEFTUyxcbiAgfSxcbik7XG5cbm1vZHVsZS5leHBvcnRzID0gY29tYm9Cb3g7XG4iLCJjb25zdCBrZXltYXAgPSByZXF1aXJlKFwicmVjZXB0b3Iva2V5bWFwXCIpO1xuY29uc3QgYmVoYXZpb3IgPSByZXF1aXJlKFwiLi4vLi4vdXN3ZHMtY29yZS9zcmMvanMvdXRpbHMvYmVoYXZpb3JcIik7XG5jb25zdCBzZWxlY3QgPSByZXF1aXJlKFwiLi4vLi4vdXN3ZHMtY29yZS9zcmMvanMvdXRpbHMvc2VsZWN0XCIpO1xuY29uc3Qgc2VsZWN0T3JNYXRjaGVzID0gcmVxdWlyZShcIi4uLy4uL3Vzd2RzLWNvcmUvc3JjL2pzL3V0aWxzL3NlbGVjdC1vci1tYXRjaGVzXCIpO1xuY29uc3QgeyBwcmVmaXg6IFBSRUZJWCB9ID0gcmVxdWlyZShcIi4uLy4uL3Vzd2RzLWNvcmUvc3JjL2pzL2NvbmZpZ1wiKTtcbmNvbnN0IHsgQ0xJQ0sgfSA9IHJlcXVpcmUoXCIuLi8uLi91c3dkcy1jb3JlL3NyYy9qcy9ldmVudHNcIik7XG5jb25zdCBhY3RpdmVFbGVtZW50ID0gcmVxdWlyZShcIi4uLy4uL3Vzd2RzLWNvcmUvc3JjL2pzL3V0aWxzL2FjdGl2ZS1lbGVtZW50XCIpO1xuY29uc3QgaXNJb3NEZXZpY2UgPSByZXF1aXJlKFwiLi4vLi4vdXN3ZHMtY29yZS9zcmMvanMvdXRpbHMvaXMtaW9zLWRldmljZVwiKTtcbmNvbnN0IFNhbml0aXplciA9IHJlcXVpcmUoXCIuLi8uLi91c3dkcy1jb3JlL3NyYy9qcy91dGlscy9zYW5pdGl6ZXJcIik7XG5cbmNvbnN0IERBVEVfUElDS0VSX0NMQVNTID0gYCR7UFJFRklYfS1kYXRlLXBpY2tlcmA7XG5jb25zdCBEQVRFX1BJQ0tFUl9XUkFQUEVSX0NMQVNTID0gYCR7REFURV9QSUNLRVJfQ0xBU1N9X193cmFwcGVyYDtcbmNvbnN0IERBVEVfUElDS0VSX0lOSVRJQUxJWkVEX0NMQVNTID0gYCR7REFURV9QSUNLRVJfQ0xBU1N9LS1pbml0aWFsaXplZGA7XG5jb25zdCBEQVRFX1BJQ0tFUl9BQ1RJVkVfQ0xBU1MgPSBgJHtEQVRFX1BJQ0tFUl9DTEFTU30tLWFjdGl2ZWA7XG5jb25zdCBEQVRFX1BJQ0tFUl9JTlRFUk5BTF9JTlBVVF9DTEFTUyA9IGAke0RBVEVfUElDS0VSX0NMQVNTfV9faW50ZXJuYWwtaW5wdXRgO1xuY29uc3QgREFURV9QSUNLRVJfRVhURVJOQUxfSU5QVVRfQ0xBU1MgPSBgJHtEQVRFX1BJQ0tFUl9DTEFTU31fX2V4dGVybmFsLWlucHV0YDtcbmNvbnN0IERBVEVfUElDS0VSX0JVVFRPTl9DTEFTUyA9IGAke0RBVEVfUElDS0VSX0NMQVNTfV9fYnV0dG9uYDtcbmNvbnN0IERBVEVfUElDS0VSX0NBTEVOREFSX0NMQVNTID0gYCR7REFURV9QSUNLRVJfQ0xBU1N9X19jYWxlbmRhcmA7XG5jb25zdCBEQVRFX1BJQ0tFUl9TVEFUVVNfQ0xBU1MgPSBgJHtEQVRFX1BJQ0tFUl9DTEFTU31fX3N0YXR1c2A7XG5jb25zdCBDQUxFTkRBUl9EQVRFX0NMQVNTID0gYCR7REFURV9QSUNLRVJfQ0FMRU5EQVJfQ0xBU1N9X19kYXRlYDtcblxuY29uc3QgQ0FMRU5EQVJfREFURV9GT0NVU0VEX0NMQVNTID0gYCR7Q0FMRU5EQVJfREFURV9DTEFTU30tLWZvY3VzZWRgO1xuY29uc3QgQ0FMRU5EQVJfREFURV9TRUxFQ1RFRF9DTEFTUyA9IGAke0NBTEVOREFSX0RBVEVfQ0xBU1N9LS1zZWxlY3RlZGA7XG5jb25zdCBDQUxFTkRBUl9EQVRFX1BSRVZJT1VTX01PTlRIX0NMQVNTID0gYCR7Q0FMRU5EQVJfREFURV9DTEFTU30tLXByZXZpb3VzLW1vbnRoYDtcbmNvbnN0IENBTEVOREFSX0RBVEVfQ1VSUkVOVF9NT05USF9DTEFTUyA9IGAke0NBTEVOREFSX0RBVEVfQ0xBU1N9LS1jdXJyZW50LW1vbnRoYDtcbmNvbnN0IENBTEVOREFSX0RBVEVfTkVYVF9NT05USF9DTEFTUyA9IGAke0NBTEVOREFSX0RBVEVfQ0xBU1N9LS1uZXh0LW1vbnRoYDtcbmNvbnN0IENBTEVOREFSX0RBVEVfUkFOR0VfREFURV9DTEFTUyA9IGAke0NBTEVOREFSX0RBVEVfQ0xBU1N9LS1yYW5nZS1kYXRlYDtcbmNvbnN0IENBTEVOREFSX0RBVEVfVE9EQVlfQ0xBU1MgPSBgJHtDQUxFTkRBUl9EQVRFX0NMQVNTfS0tdG9kYXlgO1xuY29uc3QgQ0FMRU5EQVJfREFURV9SQU5HRV9EQVRFX1NUQVJUX0NMQVNTID0gYCR7Q0FMRU5EQVJfREFURV9DTEFTU30tLXJhbmdlLWRhdGUtc3RhcnRgO1xuY29uc3QgQ0FMRU5EQVJfREFURV9SQU5HRV9EQVRFX0VORF9DTEFTUyA9IGAke0NBTEVOREFSX0RBVEVfQ0xBU1N9LS1yYW5nZS1kYXRlLWVuZGA7XG5jb25zdCBDQUxFTkRBUl9EQVRFX1dJVEhJTl9SQU5HRV9DTEFTUyA9IGAke0NBTEVOREFSX0RBVEVfQ0xBU1N9LS13aXRoaW4tcmFuZ2VgO1xuY29uc3QgQ0FMRU5EQVJfUFJFVklPVVNfWUVBUl9DTEFTUyA9IGAke0RBVEVfUElDS0VSX0NBTEVOREFSX0NMQVNTfV9fcHJldmlvdXMteWVhcmA7XG5jb25zdCBDQUxFTkRBUl9QUkVWSU9VU19NT05USF9DTEFTUyA9IGAke0RBVEVfUElDS0VSX0NBTEVOREFSX0NMQVNTfV9fcHJldmlvdXMtbW9udGhgO1xuY29uc3QgQ0FMRU5EQVJfTkVYVF9ZRUFSX0NMQVNTID0gYCR7REFURV9QSUNLRVJfQ0FMRU5EQVJfQ0xBU1N9X19uZXh0LXllYXJgO1xuY29uc3QgQ0FMRU5EQVJfTkVYVF9NT05USF9DTEFTUyA9IGAke0RBVEVfUElDS0VSX0NBTEVOREFSX0NMQVNTfV9fbmV4dC1tb250aGA7XG5jb25zdCBDQUxFTkRBUl9NT05USF9TRUxFQ1RJT05fQ0xBU1MgPSBgJHtEQVRFX1BJQ0tFUl9DQUxFTkRBUl9DTEFTU31fX21vbnRoLXNlbGVjdGlvbmA7XG5jb25zdCBDQUxFTkRBUl9ZRUFSX1NFTEVDVElPTl9DTEFTUyA9IGAke0RBVEVfUElDS0VSX0NBTEVOREFSX0NMQVNTfV9feWVhci1zZWxlY3Rpb25gO1xuY29uc3QgQ0FMRU5EQVJfTU9OVEhfQ0xBU1MgPSBgJHtEQVRFX1BJQ0tFUl9DQUxFTkRBUl9DTEFTU31fX21vbnRoYDtcbmNvbnN0IENBTEVOREFSX01PTlRIX0ZPQ1VTRURfQ0xBU1MgPSBgJHtDQUxFTkRBUl9NT05USF9DTEFTU30tLWZvY3VzZWRgO1xuY29uc3QgQ0FMRU5EQVJfTU9OVEhfU0VMRUNURURfQ0xBU1MgPSBgJHtDQUxFTkRBUl9NT05USF9DTEFTU30tLXNlbGVjdGVkYDtcbmNvbnN0IENBTEVOREFSX1lFQVJfQ0xBU1MgPSBgJHtEQVRFX1BJQ0tFUl9DQUxFTkRBUl9DTEFTU31fX3llYXJgO1xuY29uc3QgQ0FMRU5EQVJfWUVBUl9GT0NVU0VEX0NMQVNTID0gYCR7Q0FMRU5EQVJfWUVBUl9DTEFTU30tLWZvY3VzZWRgO1xuY29uc3QgQ0FMRU5EQVJfWUVBUl9TRUxFQ1RFRF9DTEFTUyA9IGAke0NBTEVOREFSX1lFQVJfQ0xBU1N9LS1zZWxlY3RlZGA7XG5jb25zdCBDQUxFTkRBUl9QUkVWSU9VU19ZRUFSX0NIVU5LX0NMQVNTID0gYCR7REFURV9QSUNLRVJfQ0FMRU5EQVJfQ0xBU1N9X19wcmV2aW91cy15ZWFyLWNodW5rYDtcbmNvbnN0IENBTEVOREFSX05FWFRfWUVBUl9DSFVOS19DTEFTUyA9IGAke0RBVEVfUElDS0VSX0NBTEVOREFSX0NMQVNTfV9fbmV4dC15ZWFyLWNodW5rYDtcbmNvbnN0IENBTEVOREFSX0RBVEVfUElDS0VSX0NMQVNTID0gYCR7REFURV9QSUNLRVJfQ0FMRU5EQVJfQ0xBU1N9X19kYXRlLXBpY2tlcmA7XG5jb25zdCBDQUxFTkRBUl9NT05USF9QSUNLRVJfQ0xBU1MgPSBgJHtEQVRFX1BJQ0tFUl9DQUxFTkRBUl9DTEFTU31fX21vbnRoLXBpY2tlcmA7XG5jb25zdCBDQUxFTkRBUl9ZRUFSX1BJQ0tFUl9DTEFTUyA9IGAke0RBVEVfUElDS0VSX0NBTEVOREFSX0NMQVNTfV9feWVhci1waWNrZXJgO1xuY29uc3QgQ0FMRU5EQVJfVEFCTEVfQ0xBU1MgPSBgJHtEQVRFX1BJQ0tFUl9DQUxFTkRBUl9DTEFTU31fX3RhYmxlYDtcbmNvbnN0IENBTEVOREFSX1JPV19DTEFTUyA9IGAke0RBVEVfUElDS0VSX0NBTEVOREFSX0NMQVNTfV9fcm93YDtcbmNvbnN0IENBTEVOREFSX0NFTExfQ0xBU1MgPSBgJHtEQVRFX1BJQ0tFUl9DQUxFTkRBUl9DTEFTU31fX2NlbGxgO1xuY29uc3QgQ0FMRU5EQVJfQ0VMTF9DRU5URVJfSVRFTVNfQ0xBU1MgPSBgJHtDQUxFTkRBUl9DRUxMX0NMQVNTfS0tY2VudGVyLWl0ZW1zYDtcbmNvbnN0IENBTEVOREFSX01PTlRIX0xBQkVMX0NMQVNTID0gYCR7REFURV9QSUNLRVJfQ0FMRU5EQVJfQ0xBU1N9X19tb250aC1sYWJlbGA7XG5jb25zdCBDQUxFTkRBUl9EQVlfT0ZfV0VFS19DTEFTUyA9IGAke0RBVEVfUElDS0VSX0NBTEVOREFSX0NMQVNTfV9fZGF5LW9mLXdlZWtgO1xuXG5jb25zdCBEQVRFX1BJQ0tFUiA9IGAuJHtEQVRFX1BJQ0tFUl9DTEFTU31gO1xuY29uc3QgREFURV9QSUNLRVJfQlVUVE9OID0gYC4ke0RBVEVfUElDS0VSX0JVVFRPTl9DTEFTU31gO1xuY29uc3QgREFURV9QSUNLRVJfSU5URVJOQUxfSU5QVVQgPSBgLiR7REFURV9QSUNLRVJfSU5URVJOQUxfSU5QVVRfQ0xBU1N9YDtcbmNvbnN0IERBVEVfUElDS0VSX0VYVEVSTkFMX0lOUFVUID0gYC4ke0RBVEVfUElDS0VSX0VYVEVSTkFMX0lOUFVUX0NMQVNTfWA7XG5jb25zdCBEQVRFX1BJQ0tFUl9DQUxFTkRBUiA9IGAuJHtEQVRFX1BJQ0tFUl9DQUxFTkRBUl9DTEFTU31gO1xuY29uc3QgREFURV9QSUNLRVJfU1RBVFVTID0gYC4ke0RBVEVfUElDS0VSX1NUQVRVU19DTEFTU31gO1xuY29uc3QgQ0FMRU5EQVJfREFURSA9IGAuJHtDQUxFTkRBUl9EQVRFX0NMQVNTfWA7XG5jb25zdCBDQUxFTkRBUl9EQVRFX0ZPQ1VTRUQgPSBgLiR7Q0FMRU5EQVJfREFURV9GT0NVU0VEX0NMQVNTfWA7XG5jb25zdCBDQUxFTkRBUl9EQVRFX0NVUlJFTlRfTU9OVEggPSBgLiR7Q0FMRU5EQVJfREFURV9DVVJSRU5UX01PTlRIX0NMQVNTfWA7XG5jb25zdCBDQUxFTkRBUl9QUkVWSU9VU19ZRUFSID0gYC4ke0NBTEVOREFSX1BSRVZJT1VTX1lFQVJfQ0xBU1N9YDtcbmNvbnN0IENBTEVOREFSX1BSRVZJT1VTX01PTlRIID0gYC4ke0NBTEVOREFSX1BSRVZJT1VTX01PTlRIX0NMQVNTfWA7XG5jb25zdCBDQUxFTkRBUl9ORVhUX1lFQVIgPSBgLiR7Q0FMRU5EQVJfTkVYVF9ZRUFSX0NMQVNTfWA7XG5jb25zdCBDQUxFTkRBUl9ORVhUX01PTlRIID0gYC4ke0NBTEVOREFSX05FWFRfTU9OVEhfQ0xBU1N9YDtcbmNvbnN0IENBTEVOREFSX1lFQVJfU0VMRUNUSU9OID0gYC4ke0NBTEVOREFSX1lFQVJfU0VMRUNUSU9OX0NMQVNTfWA7XG5jb25zdCBDQUxFTkRBUl9NT05USF9TRUxFQ1RJT04gPSBgLiR7Q0FMRU5EQVJfTU9OVEhfU0VMRUNUSU9OX0NMQVNTfWA7XG5jb25zdCBDQUxFTkRBUl9NT05USCA9IGAuJHtDQUxFTkRBUl9NT05USF9DTEFTU31gO1xuY29uc3QgQ0FMRU5EQVJfWUVBUiA9IGAuJHtDQUxFTkRBUl9ZRUFSX0NMQVNTfWA7XG5jb25zdCBDQUxFTkRBUl9QUkVWSU9VU19ZRUFSX0NIVU5LID0gYC4ke0NBTEVOREFSX1BSRVZJT1VTX1lFQVJfQ0hVTktfQ0xBU1N9YDtcbmNvbnN0IENBTEVOREFSX05FWFRfWUVBUl9DSFVOSyA9IGAuJHtDQUxFTkRBUl9ORVhUX1lFQVJfQ0hVTktfQ0xBU1N9YDtcbmNvbnN0IENBTEVOREFSX0RBVEVfUElDS0VSID0gYC4ke0NBTEVOREFSX0RBVEVfUElDS0VSX0NMQVNTfWA7XG5jb25zdCBDQUxFTkRBUl9NT05USF9QSUNLRVIgPSBgLiR7Q0FMRU5EQVJfTU9OVEhfUElDS0VSX0NMQVNTfWA7XG5jb25zdCBDQUxFTkRBUl9ZRUFSX1BJQ0tFUiA9IGAuJHtDQUxFTkRBUl9ZRUFSX1BJQ0tFUl9DTEFTU31gO1xuY29uc3QgQ0FMRU5EQVJfTU9OVEhfRk9DVVNFRCA9IGAuJHtDQUxFTkRBUl9NT05USF9GT0NVU0VEX0NMQVNTfWA7XG5jb25zdCBDQUxFTkRBUl9ZRUFSX0ZPQ1VTRUQgPSBgLiR7Q0FMRU5EQVJfWUVBUl9GT0NVU0VEX0NMQVNTfWA7XG5cbmNvbnN0IFZBTElEQVRJT05fTUVTU0FHRSA9IFwiUGxlYXNlIGVudGVyIGEgdmFsaWQgZGF0ZVwiO1xuXG5jb25zdCBNT05USF9MQUJFTFMgPSBbXG4gIFwiSmFudWFyeVwiLFxuICBcIkZlYnJ1YXJ5XCIsXG4gIFwiTWFyY2hcIixcbiAgXCJBcHJpbFwiLFxuICBcIk1heVwiLFxuICBcIkp1bmVcIixcbiAgXCJKdWx5XCIsXG4gIFwiQXVndXN0XCIsXG4gIFwiU2VwdGVtYmVyXCIsXG4gIFwiT2N0b2JlclwiLFxuICBcIk5vdmVtYmVyXCIsXG4gIFwiRGVjZW1iZXJcIixcbl07XG5cbmNvbnN0IERBWV9PRl9XRUVLX0xBQkVMUyA9IFtcbiAgXCJTdW5kYXlcIixcbiAgXCJNb25kYXlcIixcbiAgXCJUdWVzZGF5XCIsXG4gIFwiV2VkbmVzZGF5XCIsXG4gIFwiVGh1cnNkYXlcIixcbiAgXCJGcmlkYXlcIixcbiAgXCJTYXR1cmRheVwiLFxuXTtcblxuY29uc3QgRU5URVJfS0VZQ09ERSA9IDEzO1xuXG5jb25zdCBZRUFSX0NIVU5LID0gMTI7XG5cbmNvbnN0IERFRkFVTFRfTUlOX0RBVEUgPSBcIjAwMDAtMDEtMDFcIjtcbmNvbnN0IERFRkFVTFRfRVhURVJOQUxfREFURV9GT1JNQVQgPSBcIk1NL0REL1lZWVlcIjtcbmNvbnN0IElOVEVSTkFMX0RBVEVfRk9STUFUID0gXCJZWVlZLU1NLUREXCI7XG5cbmNvbnN0IE5PVF9ESVNBQkxFRF9TRUxFQ1RPUiA9IFwiOm5vdChbZGlzYWJsZWRdKVwiO1xuXG5jb25zdCBwcm9jZXNzRm9jdXNhYmxlU2VsZWN0b3JzID0gKC4uLnNlbGVjdG9ycykgPT5cbiAgc2VsZWN0b3JzLm1hcCgocXVlcnkpID0+IHF1ZXJ5ICsgTk9UX0RJU0FCTEVEX1NFTEVDVE9SKS5qb2luKFwiLCBcIik7XG5cbmNvbnN0IERBVEVfUElDS0VSX0ZPQ1VTQUJMRSA9IHByb2Nlc3NGb2N1c2FibGVTZWxlY3RvcnMoXG4gIENBTEVOREFSX1BSRVZJT1VTX1lFQVIsXG4gIENBTEVOREFSX1BSRVZJT1VTX01PTlRILFxuICBDQUxFTkRBUl9ZRUFSX1NFTEVDVElPTixcbiAgQ0FMRU5EQVJfTU9OVEhfU0VMRUNUSU9OLFxuICBDQUxFTkRBUl9ORVhUX1lFQVIsXG4gIENBTEVOREFSX05FWFRfTU9OVEgsXG4gIENBTEVOREFSX0RBVEVfRk9DVVNFRCxcbik7XG5cbmNvbnN0IE1PTlRIX1BJQ0tFUl9GT0NVU0FCTEUgPSBwcm9jZXNzRm9jdXNhYmxlU2VsZWN0b3JzKFxuICBDQUxFTkRBUl9NT05USF9GT0NVU0VELFxuKTtcblxuY29uc3QgWUVBUl9QSUNLRVJfRk9DVVNBQkxFID0gcHJvY2Vzc0ZvY3VzYWJsZVNlbGVjdG9ycyhcbiAgQ0FMRU5EQVJfUFJFVklPVVNfWUVBUl9DSFVOSyxcbiAgQ0FMRU5EQVJfTkVYVF9ZRUFSX0NIVU5LLFxuICBDQUxFTkRBUl9ZRUFSX0ZPQ1VTRUQsXG4pO1xuXG4vLyAjcmVnaW9uIERhdGUgTWFuaXB1bGF0aW9uIEZ1bmN0aW9uc1xuXG4vKipcbiAqIEtlZXAgZGF0ZSB3aXRoaW4gbW9udGguIE1vbnRoIHdvdWxkIG9ubHkgYmUgb3ZlciBieSAxIHRvIDMgZGF5c1xuICpcbiAqIEBwYXJhbSB7RGF0ZX0gZGF0ZVRvQ2hlY2sgdGhlIGRhdGUgb2JqZWN0IHRvIGNoZWNrXG4gKiBAcGFyYW0ge251bWJlcn0gbW9udGggdGhlIGNvcnJlY3QgbW9udGhcbiAqIEByZXR1cm5zIHtEYXRlfSB0aGUgZGF0ZSwgY29ycmVjdGVkIGlmIG5lZWRlZFxuICovXG5jb25zdCBrZWVwRGF0ZVdpdGhpbk1vbnRoID0gKGRhdGVUb0NoZWNrLCBtb250aCkgPT4ge1xuICBpZiAobW9udGggIT09IGRhdGVUb0NoZWNrLmdldE1vbnRoKCkpIHtcbiAgICBkYXRlVG9DaGVjay5zZXREYXRlKDApO1xuICB9XG5cbiAgcmV0dXJuIGRhdGVUb0NoZWNrO1xufTtcblxuLyoqXG4gKiBTZXQgZGF0ZSBmcm9tIG1vbnRoIGRheSB5ZWFyXG4gKlxuICogQHBhcmFtIHtudW1iZXJ9IHllYXIgdGhlIHllYXIgdG8gc2V0XG4gKiBAcGFyYW0ge251bWJlcn0gbW9udGggdGhlIG1vbnRoIHRvIHNldCAoemVyby1pbmRleGVkKVxuICogQHBhcmFtIHtudW1iZXJ9IGRhdGUgdGhlIGRhdGUgdG8gc2V0XG4gKiBAcmV0dXJucyB7RGF0ZX0gdGhlIHNldCBkYXRlXG4gKi9cbmNvbnN0IHNldERhdGUgPSAoeWVhciwgbW9udGgsIGRhdGUpID0+IHtcbiAgY29uc3QgbmV3RGF0ZSA9IG5ldyBEYXRlKDApO1xuICBuZXdEYXRlLnNldEZ1bGxZZWFyKHllYXIsIG1vbnRoLCBkYXRlKTtcbiAgcmV0dXJuIG5ld0RhdGU7XG59O1xuXG4vKipcbiAqIHRvZGF5cyBkYXRlXG4gKlxuICogQHJldHVybnMge0RhdGV9IHRvZGF5cyBkYXRlXG4gKi9cbmNvbnN0IHRvZGF5ID0gKCkgPT4ge1xuICBjb25zdCBuZXdEYXRlID0gbmV3IERhdGUoKTtcbiAgY29uc3QgZGF5ID0gbmV3RGF0ZS5nZXREYXRlKCk7XG4gIGNvbnN0IG1vbnRoID0gbmV3RGF0ZS5nZXRNb250aCgpO1xuICBjb25zdCB5ZWFyID0gbmV3RGF0ZS5nZXRGdWxsWWVhcigpO1xuICByZXR1cm4gc2V0RGF0ZSh5ZWFyLCBtb250aCwgZGF5KTtcbn07XG5cbi8qKlxuICogU2V0IGRhdGUgdG8gZmlyc3QgZGF5IG9mIHRoZSBtb250aFxuICpcbiAqIEBwYXJhbSB7bnVtYmVyfSBkYXRlIHRoZSBkYXRlIHRvIGFkanVzdFxuICogQHJldHVybnMge0RhdGV9IHRoZSBhZGp1c3RlZCBkYXRlXG4gKi9cbmNvbnN0IHN0YXJ0T2ZNb250aCA9IChkYXRlKSA9PiB7XG4gIGNvbnN0IG5ld0RhdGUgPSBuZXcgRGF0ZSgwKTtcbiAgbmV3RGF0ZS5zZXRGdWxsWWVhcihkYXRlLmdldEZ1bGxZZWFyKCksIGRhdGUuZ2V0TW9udGgoKSwgMSk7XG4gIHJldHVybiBuZXdEYXRlO1xufTtcblxuLyoqXG4gKiBTZXQgZGF0ZSB0byBsYXN0IGRheSBvZiB0aGUgbW9udGhcbiAqXG4gKiBAcGFyYW0ge251bWJlcn0gZGF0ZSB0aGUgZGF0ZSB0byBhZGp1c3RcbiAqIEByZXR1cm5zIHtEYXRlfSB0aGUgYWRqdXN0ZWQgZGF0ZVxuICovXG5jb25zdCBsYXN0RGF5T2ZNb250aCA9IChkYXRlKSA9PiB7XG4gIGNvbnN0IG5ld0RhdGUgPSBuZXcgRGF0ZSgwKTtcbiAgbmV3RGF0ZS5zZXRGdWxsWWVhcihkYXRlLmdldEZ1bGxZZWFyKCksIGRhdGUuZ2V0TW9udGgoKSArIDEsIDApO1xuICByZXR1cm4gbmV3RGF0ZTtcbn07XG5cbi8qKlxuICogQWRkIGRheXMgdG8gZGF0ZVxuICpcbiAqIEBwYXJhbSB7RGF0ZX0gX2RhdGUgdGhlIGRhdGUgdG8gYWRqdXN0XG4gKiBAcGFyYW0ge251bWJlcn0gbnVtRGF5cyB0aGUgZGlmZmVyZW5jZSBpbiBkYXlzXG4gKiBAcmV0dXJucyB7RGF0ZX0gdGhlIGFkanVzdGVkIGRhdGVcbiAqL1xuY29uc3QgYWRkRGF5cyA9IChfZGF0ZSwgbnVtRGF5cykgPT4ge1xuICBjb25zdCBuZXdEYXRlID0gbmV3IERhdGUoX2RhdGUuZ2V0VGltZSgpKTtcbiAgbmV3RGF0ZS5zZXREYXRlKG5ld0RhdGUuZ2V0RGF0ZSgpICsgbnVtRGF5cyk7XG4gIHJldHVybiBuZXdEYXRlO1xufTtcblxuLyoqXG4gKiBTdWJ0cmFjdCBkYXlzIGZyb20gZGF0ZVxuICpcbiAqIEBwYXJhbSB7RGF0ZX0gX2RhdGUgdGhlIGRhdGUgdG8gYWRqdXN0XG4gKiBAcGFyYW0ge251bWJlcn0gbnVtRGF5cyB0aGUgZGlmZmVyZW5jZSBpbiBkYXlzXG4gKiBAcmV0dXJucyB7RGF0ZX0gdGhlIGFkanVzdGVkIGRhdGVcbiAqL1xuY29uc3Qgc3ViRGF5cyA9IChfZGF0ZSwgbnVtRGF5cykgPT4gYWRkRGF5cyhfZGF0ZSwgLW51bURheXMpO1xuXG4vKipcbiAqIEFkZCB3ZWVrcyB0byBkYXRlXG4gKlxuICogQHBhcmFtIHtEYXRlfSBfZGF0ZSB0aGUgZGF0ZSB0byBhZGp1c3RcbiAqIEBwYXJhbSB7bnVtYmVyfSBudW1XZWVrcyB0aGUgZGlmZmVyZW5jZSBpbiB3ZWVrc1xuICogQHJldHVybnMge0RhdGV9IHRoZSBhZGp1c3RlZCBkYXRlXG4gKi9cbmNvbnN0IGFkZFdlZWtzID0gKF9kYXRlLCBudW1XZWVrcykgPT4gYWRkRGF5cyhfZGF0ZSwgbnVtV2Vla3MgKiA3KTtcblxuLyoqXG4gKiBTdWJ0cmFjdCB3ZWVrcyBmcm9tIGRhdGVcbiAqXG4gKiBAcGFyYW0ge0RhdGV9IF9kYXRlIHRoZSBkYXRlIHRvIGFkanVzdFxuICogQHBhcmFtIHtudW1iZXJ9IG51bVdlZWtzIHRoZSBkaWZmZXJlbmNlIGluIHdlZWtzXG4gKiBAcmV0dXJucyB7RGF0ZX0gdGhlIGFkanVzdGVkIGRhdGVcbiAqL1xuY29uc3Qgc3ViV2Vla3MgPSAoX2RhdGUsIG51bVdlZWtzKSA9PiBhZGRXZWVrcyhfZGF0ZSwgLW51bVdlZWtzKTtcblxuLyoqXG4gKiBTZXQgZGF0ZSB0byB0aGUgc3RhcnQgb2YgdGhlIHdlZWsgKFN1bmRheSlcbiAqXG4gKiBAcGFyYW0ge0RhdGV9IF9kYXRlIHRoZSBkYXRlIHRvIGFkanVzdFxuICogQHJldHVybnMge0RhdGV9IHRoZSBhZGp1c3RlZCBkYXRlXG4gKi9cbmNvbnN0IHN0YXJ0T2ZXZWVrID0gKF9kYXRlKSA9PiB7XG4gIGNvbnN0IGRheU9mV2VlayA9IF9kYXRlLmdldERheSgpO1xuICByZXR1cm4gc3ViRGF5cyhfZGF0ZSwgZGF5T2ZXZWVrKTtcbn07XG5cbi8qKlxuICogU2V0IGRhdGUgdG8gdGhlIGVuZCBvZiB0aGUgd2VlayAoU2F0dXJkYXkpXG4gKlxuICogQHBhcmFtIHtEYXRlfSBfZGF0ZSB0aGUgZGF0ZSB0byBhZGp1c3RcbiAqIEBwYXJhbSB7bnVtYmVyfSBudW1XZWVrcyB0aGUgZGlmZmVyZW5jZSBpbiB3ZWVrc1xuICogQHJldHVybnMge0RhdGV9IHRoZSBhZGp1c3RlZCBkYXRlXG4gKi9cbmNvbnN0IGVuZE9mV2VlayA9IChfZGF0ZSkgPT4ge1xuICBjb25zdCBkYXlPZldlZWsgPSBfZGF0ZS5nZXREYXkoKTtcbiAgcmV0dXJuIGFkZERheXMoX2RhdGUsIDYgLSBkYXlPZldlZWspO1xufTtcblxuLyoqXG4gKiBBZGQgbW9udGhzIHRvIGRhdGUgYW5kIGtlZXAgZGF0ZSB3aXRoaW4gbW9udGhcbiAqXG4gKiBAcGFyYW0ge0RhdGV9IF9kYXRlIHRoZSBkYXRlIHRvIGFkanVzdFxuICogQHBhcmFtIHtudW1iZXJ9IG51bU1vbnRocyB0aGUgZGlmZmVyZW5jZSBpbiBtb250aHNcbiAqIEByZXR1cm5zIHtEYXRlfSB0aGUgYWRqdXN0ZWQgZGF0ZVxuICovXG5jb25zdCBhZGRNb250aHMgPSAoX2RhdGUsIG51bU1vbnRocykgPT4ge1xuICBjb25zdCBuZXdEYXRlID0gbmV3IERhdGUoX2RhdGUuZ2V0VGltZSgpKTtcblxuICBjb25zdCBkYXRlTW9udGggPSAobmV3RGF0ZS5nZXRNb250aCgpICsgMTIgKyBudW1Nb250aHMpICUgMTI7XG4gIG5ld0RhdGUuc2V0TW9udGgobmV3RGF0ZS5nZXRNb250aCgpICsgbnVtTW9udGhzKTtcbiAga2VlcERhdGVXaXRoaW5Nb250aChuZXdEYXRlLCBkYXRlTW9udGgpO1xuXG4gIHJldHVybiBuZXdEYXRlO1xufTtcblxuLyoqXG4gKiBTdWJ0cmFjdCBtb250aHMgZnJvbSBkYXRlXG4gKlxuICogQHBhcmFtIHtEYXRlfSBfZGF0ZSB0aGUgZGF0ZSB0byBhZGp1c3RcbiAqIEBwYXJhbSB7bnVtYmVyfSBudW1Nb250aHMgdGhlIGRpZmZlcmVuY2UgaW4gbW9udGhzXG4gKiBAcmV0dXJucyB7RGF0ZX0gdGhlIGFkanVzdGVkIGRhdGVcbiAqL1xuY29uc3Qgc3ViTW9udGhzID0gKF9kYXRlLCBudW1Nb250aHMpID0+IGFkZE1vbnRocyhfZGF0ZSwgLW51bU1vbnRocyk7XG5cbi8qKlxuICogQWRkIHllYXJzIHRvIGRhdGUgYW5kIGtlZXAgZGF0ZSB3aXRoaW4gbW9udGhcbiAqXG4gKiBAcGFyYW0ge0RhdGV9IF9kYXRlIHRoZSBkYXRlIHRvIGFkanVzdFxuICogQHBhcmFtIHtudW1iZXJ9IG51bVllYXJzIHRoZSBkaWZmZXJlbmNlIGluIHllYXJzXG4gKiBAcmV0dXJucyB7RGF0ZX0gdGhlIGFkanVzdGVkIGRhdGVcbiAqL1xuY29uc3QgYWRkWWVhcnMgPSAoX2RhdGUsIG51bVllYXJzKSA9PiBhZGRNb250aHMoX2RhdGUsIG51bVllYXJzICogMTIpO1xuXG4vKipcbiAqIFN1YnRyYWN0IHllYXJzIGZyb20gZGF0ZVxuICpcbiAqIEBwYXJhbSB7RGF0ZX0gX2RhdGUgdGhlIGRhdGUgdG8gYWRqdXN0XG4gKiBAcGFyYW0ge251bWJlcn0gbnVtWWVhcnMgdGhlIGRpZmZlcmVuY2UgaW4geWVhcnNcbiAqIEByZXR1cm5zIHtEYXRlfSB0aGUgYWRqdXN0ZWQgZGF0ZVxuICovXG5jb25zdCBzdWJZZWFycyA9IChfZGF0ZSwgbnVtWWVhcnMpID0+IGFkZFllYXJzKF9kYXRlLCAtbnVtWWVhcnMpO1xuXG4vKipcbiAqIFNldCBtb250aHMgb2YgZGF0ZVxuICpcbiAqIEBwYXJhbSB7RGF0ZX0gX2RhdGUgdGhlIGRhdGUgdG8gYWRqdXN0XG4gKiBAcGFyYW0ge251bWJlcn0gbW9udGggemVyby1pbmRleGVkIG1vbnRoIHRvIHNldFxuICogQHJldHVybnMge0RhdGV9IHRoZSBhZGp1c3RlZCBkYXRlXG4gKi9cbmNvbnN0IHNldE1vbnRoID0gKF9kYXRlLCBtb250aCkgPT4ge1xuICBjb25zdCBuZXdEYXRlID0gbmV3IERhdGUoX2RhdGUuZ2V0VGltZSgpKTtcblxuICBuZXdEYXRlLnNldE1vbnRoKG1vbnRoKTtcbiAga2VlcERhdGVXaXRoaW5Nb250aChuZXdEYXRlLCBtb250aCk7XG5cbiAgcmV0dXJuIG5ld0RhdGU7XG59O1xuXG4vKipcbiAqIFNldCB5ZWFyIG9mIGRhdGVcbiAqXG4gKiBAcGFyYW0ge0RhdGV9IF9kYXRlIHRoZSBkYXRlIHRvIGFkanVzdFxuICogQHBhcmFtIHtudW1iZXJ9IHllYXIgdGhlIHllYXIgdG8gc2V0XG4gKiBAcmV0dXJucyB7RGF0ZX0gdGhlIGFkanVzdGVkIGRhdGVcbiAqL1xuY29uc3Qgc2V0WWVhciA9IChfZGF0ZSwgeWVhcikgPT4ge1xuICBjb25zdCBuZXdEYXRlID0gbmV3IERhdGUoX2RhdGUuZ2V0VGltZSgpKTtcblxuICBjb25zdCBtb250aCA9IG5ld0RhdGUuZ2V0TW9udGgoKTtcbiAgbmV3RGF0ZS5zZXRGdWxsWWVhcih5ZWFyKTtcbiAga2VlcERhdGVXaXRoaW5Nb250aChuZXdEYXRlLCBtb250aCk7XG5cbiAgcmV0dXJuIG5ld0RhdGU7XG59O1xuXG4vKipcbiAqIFJldHVybiB0aGUgZWFybGllc3QgZGF0ZVxuICpcbiAqIEBwYXJhbSB7RGF0ZX0gZGF0ZUEgZGF0ZSB0byBjb21wYXJlXG4gKiBAcGFyYW0ge0RhdGV9IGRhdGVCIGRhdGUgdG8gY29tcGFyZVxuICogQHJldHVybnMge0RhdGV9IHRoZSBlYXJsaWVzdCBkYXRlXG4gKi9cbmNvbnN0IG1pbiA9IChkYXRlQSwgZGF0ZUIpID0+IHtcbiAgbGV0IG5ld0RhdGUgPSBkYXRlQTtcblxuICBpZiAoZGF0ZUIgPCBkYXRlQSkge1xuICAgIG5ld0RhdGUgPSBkYXRlQjtcbiAgfVxuXG4gIHJldHVybiBuZXcgRGF0ZShuZXdEYXRlLmdldFRpbWUoKSk7XG59O1xuXG4vKipcbiAqIFJldHVybiB0aGUgbGF0ZXN0IGRhdGVcbiAqXG4gKiBAcGFyYW0ge0RhdGV9IGRhdGVBIGRhdGUgdG8gY29tcGFyZVxuICogQHBhcmFtIHtEYXRlfSBkYXRlQiBkYXRlIHRvIGNvbXBhcmVcbiAqIEByZXR1cm5zIHtEYXRlfSB0aGUgbGF0ZXN0IGRhdGVcbiAqL1xuY29uc3QgbWF4ID0gKGRhdGVBLCBkYXRlQikgPT4ge1xuICBsZXQgbmV3RGF0ZSA9IGRhdGVBO1xuXG4gIGlmIChkYXRlQiA+IGRhdGVBKSB7XG4gICAgbmV3RGF0ZSA9IGRhdGVCO1xuICB9XG5cbiAgcmV0dXJuIG5ldyBEYXRlKG5ld0RhdGUuZ2V0VGltZSgpKTtcbn07XG5cbi8qKlxuICogQ2hlY2sgaWYgZGF0ZXMgYXJlIHRoZSBpbiB0aGUgc2FtZSB5ZWFyXG4gKlxuICogQHBhcmFtIHtEYXRlfSBkYXRlQSBkYXRlIHRvIGNvbXBhcmVcbiAqIEBwYXJhbSB7RGF0ZX0gZGF0ZUIgZGF0ZSB0byBjb21wYXJlXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gYXJlIGRhdGVzIGluIHRoZSBzYW1lIHllYXJcbiAqL1xuY29uc3QgaXNTYW1lWWVhciA9IChkYXRlQSwgZGF0ZUIpID0+XG4gIGRhdGVBICYmIGRhdGVCICYmIGRhdGVBLmdldEZ1bGxZZWFyKCkgPT09IGRhdGVCLmdldEZ1bGxZZWFyKCk7XG5cbi8qKlxuICogQ2hlY2sgaWYgZGF0ZXMgYXJlIHRoZSBpbiB0aGUgc2FtZSBtb250aFxuICpcbiAqIEBwYXJhbSB7RGF0ZX0gZGF0ZUEgZGF0ZSB0byBjb21wYXJlXG4gKiBAcGFyYW0ge0RhdGV9IGRhdGVCIGRhdGUgdG8gY29tcGFyZVxuICogQHJldHVybnMge2Jvb2xlYW59IGFyZSBkYXRlcyBpbiB0aGUgc2FtZSBtb250aFxuICovXG5jb25zdCBpc1NhbWVNb250aCA9IChkYXRlQSwgZGF0ZUIpID0+XG4gIGlzU2FtZVllYXIoZGF0ZUEsIGRhdGVCKSAmJiBkYXRlQS5nZXRNb250aCgpID09PSBkYXRlQi5nZXRNb250aCgpO1xuXG4vKipcbiAqIENoZWNrIGlmIGRhdGVzIGFyZSB0aGUgc2FtZSBkYXRlXG4gKlxuICogQHBhcmFtIHtEYXRlfSBkYXRlQSB0aGUgZGF0ZSB0byBjb21wYXJlXG4gKiBAcGFyYW0ge0RhdGV9IGRhdGVBIHRoZSBkYXRlIHRvIGNvbXBhcmVcbiAqIEByZXR1cm5zIHtib29sZWFufSBhcmUgZGF0ZXMgdGhlIHNhbWUgZGF0ZVxuICovXG5jb25zdCBpc1NhbWVEYXkgPSAoZGF0ZUEsIGRhdGVCKSA9PlxuICBpc1NhbWVNb250aChkYXRlQSwgZGF0ZUIpICYmIGRhdGVBLmdldERhdGUoKSA9PT0gZGF0ZUIuZ2V0RGF0ZSgpO1xuXG4vKipcbiAqIHJldHVybiBhIG5ldyBkYXRlIHdpdGhpbiBtaW5pbXVtIGFuZCBtYXhpbXVtIGRhdGVcbiAqXG4gKiBAcGFyYW0ge0RhdGV9IGRhdGUgZGF0ZSB0byBjaGVja1xuICogQHBhcmFtIHtEYXRlfSBtaW5EYXRlIG1pbmltdW0gZGF0ZSB0byBhbGxvd1xuICogQHBhcmFtIHtEYXRlfSBtYXhEYXRlIG1heGltdW0gZGF0ZSB0byBhbGxvd1xuICogQHJldHVybnMge0RhdGV9IHRoZSBkYXRlIGJldHdlZW4gbWluIGFuZCBtYXhcbiAqL1xuY29uc3Qga2VlcERhdGVCZXR3ZWVuTWluQW5kTWF4ID0gKGRhdGUsIG1pbkRhdGUsIG1heERhdGUpID0+IHtcbiAgbGV0IG5ld0RhdGUgPSBkYXRlO1xuXG4gIGlmIChkYXRlIDwgbWluRGF0ZSkge1xuICAgIG5ld0RhdGUgPSBtaW5EYXRlO1xuICB9IGVsc2UgaWYgKG1heERhdGUgJiYgZGF0ZSA+IG1heERhdGUpIHtcbiAgICBuZXdEYXRlID0gbWF4RGF0ZTtcbiAgfVxuXG4gIHJldHVybiBuZXcgRGF0ZShuZXdEYXRlLmdldFRpbWUoKSk7XG59O1xuXG4vKipcbiAqIENoZWNrIGlmIGRhdGVzIGlzIHZhbGlkLlxuICpcbiAqIEBwYXJhbSB7RGF0ZX0gZGF0ZSBkYXRlIHRvIGNoZWNrXG4gKiBAcGFyYW0ge0RhdGV9IG1pbkRhdGUgbWluaW11bSBkYXRlIHRvIGFsbG93XG4gKiBAcGFyYW0ge0RhdGV9IG1heERhdGUgbWF4aW11bSBkYXRlIHRvIGFsbG93XG4gKiBAcmV0dXJuIHtib29sZWFufSBpcyB0aGVyZSBhIGRheSB3aXRoaW4gdGhlIG1vbnRoIHdpdGhpbiBtaW4gYW5kIG1heCBkYXRlc1xuICovXG5jb25zdCBpc0RhdGVXaXRoaW5NaW5BbmRNYXggPSAoZGF0ZSwgbWluRGF0ZSwgbWF4RGF0ZSkgPT5cbiAgZGF0ZSA+PSBtaW5EYXRlICYmICghbWF4RGF0ZSB8fCBkYXRlIDw9IG1heERhdGUpO1xuXG4vKipcbiAqIENoZWNrIGlmIGRhdGVzIG1vbnRoIGlzIGludmFsaWQuXG4gKlxuICogQHBhcmFtIHtEYXRlfSBkYXRlIGRhdGUgdG8gY2hlY2tcbiAqIEBwYXJhbSB7RGF0ZX0gbWluRGF0ZSBtaW5pbXVtIGRhdGUgdG8gYWxsb3dcbiAqIEBwYXJhbSB7RGF0ZX0gbWF4RGF0ZSBtYXhpbXVtIGRhdGUgdG8gYWxsb3dcbiAqIEByZXR1cm4ge2Jvb2xlYW59IGlzIHRoZSBtb250aCBvdXRzaWRlIG1pbiBvciBtYXggZGF0ZXNcbiAqL1xuY29uc3QgaXNEYXRlc01vbnRoT3V0c2lkZU1pbk9yTWF4ID0gKGRhdGUsIG1pbkRhdGUsIG1heERhdGUpID0+XG4gIGxhc3REYXlPZk1vbnRoKGRhdGUpIDwgbWluRGF0ZSB8fCAobWF4RGF0ZSAmJiBzdGFydE9mTW9udGgoZGF0ZSkgPiBtYXhEYXRlKTtcblxuLyoqXG4gKiBDaGVjayBpZiBkYXRlcyB5ZWFyIGlzIGludmFsaWQuXG4gKlxuICogQHBhcmFtIHtEYXRlfSBkYXRlIGRhdGUgdG8gY2hlY2tcbiAqIEBwYXJhbSB7RGF0ZX0gbWluRGF0ZSBtaW5pbXVtIGRhdGUgdG8gYWxsb3dcbiAqIEBwYXJhbSB7RGF0ZX0gbWF4RGF0ZSBtYXhpbXVtIGRhdGUgdG8gYWxsb3dcbiAqIEByZXR1cm4ge2Jvb2xlYW59IGlzIHRoZSBtb250aCBvdXRzaWRlIG1pbiBvciBtYXggZGF0ZXNcbiAqL1xuY29uc3QgaXNEYXRlc1llYXJPdXRzaWRlTWluT3JNYXggPSAoZGF0ZSwgbWluRGF0ZSwgbWF4RGF0ZSkgPT5cbiAgbGFzdERheU9mTW9udGgoc2V0TW9udGgoZGF0ZSwgMTEpKSA8IG1pbkRhdGUgfHxcbiAgKG1heERhdGUgJiYgc3RhcnRPZk1vbnRoKHNldE1vbnRoKGRhdGUsIDApKSA+IG1heERhdGUpO1xuXG4vKipcbiAqIEB0eXBlZGVmIHtPYmplY3R9IERhdGVSYW5nZUNvbnRleHRcbiAqIEBwcm9wZXJ0eSB7RGF0ZX0gcmFuZ2VTdGFydERhdGVcbiAqIEBwcm9wZXJ0eSB7RGF0ZX0gcmFuZ2VFbmREYXRlXG4gKiBAcHJvcGVydHkge0RhdGV9IHdpdGhpblJhbmdlU3RhcnREYXRlXG4gKiBAcHJvcGVydHkge0RhdGV9IHdpdGhpblJhbmdlRW5kRGF0ZVxuICovXG5cbi8qKlxuICogU2V0IHRoZSBzdGFydCwgZW5kLCBhbmQgd2l0aGluIHJhbmdlIHZhbHVlcyBmb3IgZGF0ZSByYW5nZSB2YXJpYW50cy5cblxuICogQHBhcmFtIHtEYXRlfSBkYXRlIC0gRGF0ZSB0aGF0IGNvbmNsdWRlcyB0aGUgZGF0ZSByYW5nZS5cbiAqIEBwYXJhbSB7RGF0ZX0gcmFuZ2VEYXRlIC0gUmFuZ2UgZGF0ZSBkYXRhIGF0dHJpYnV0ZSB2YWx1ZSBvZiB0aGUgZGF0ZSBwaWNrZXIgY29tcG9uZW50LlxuICogQHJldHVybnMge0RhdGVSYW5nZUNvbnRleHR9IC0gRGF0ZXMgZm9yIHJhbmdlIHNlbGVjdGlvbi5cbiAqL1xuY29uc3Qgc2V0UmFuZ2VEYXRlcyA9IChkYXRlLCByYW5nZURhdGUpID0+IHtcbiAgY29uc3QgcmFuZ2VDb25jbHVzaW9uRGF0ZSA9IGRhdGU7XG4gIGNvbnN0IHJhbmdlU3RhcnREYXRlID0gcmFuZ2VEYXRlICYmIG1pbihyYW5nZUNvbmNsdXNpb25EYXRlLCByYW5nZURhdGUpO1xuICBjb25zdCByYW5nZUVuZERhdGUgPSByYW5nZURhdGUgJiYgbWF4KHJhbmdlQ29uY2x1c2lvbkRhdGUsIHJhbmdlRGF0ZSk7XG5cbiAgY29uc3Qgd2l0aGluUmFuZ2VTdGFydERhdGUgPSByYW5nZURhdGUgJiYgYWRkRGF5cyhyYW5nZVN0YXJ0RGF0ZSwgMSk7XG4gIGNvbnN0IHdpdGhpblJhbmdlRW5kRGF0ZSA9IHJhbmdlRGF0ZSAmJiBzdWJEYXlzKHJhbmdlRW5kRGF0ZSwgMSk7XG5cbiAgcmV0dXJuIHtcbiAgICByYW5nZVN0YXJ0RGF0ZSxcbiAgICByYW5nZUVuZERhdGUsXG4gICAgd2l0aGluUmFuZ2VTdGFydERhdGUsXG4gICAgd2l0aGluUmFuZ2VFbmREYXRlLFxuICB9O1xufTtcblxuLyoqXG4gKiBQYXJzZSBhIGRhdGUgd2l0aCBmb3JtYXQgTS1ELVlZXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGRhdGVTdHJpbmcgdGhlIGRhdGUgc3RyaW5nIHRvIHBhcnNlXG4gKiBAcGFyYW0ge3N0cmluZ30gZGF0ZUZvcm1hdCB0aGUgZm9ybWF0IG9mIHRoZSBkYXRlIHN0cmluZ1xuICogQHBhcmFtIHtib29sZWFufSBhZGp1c3REYXRlIHNob3VsZCB0aGUgZGF0ZSBiZSBhZGp1c3RlZFxuICogQHJldHVybnMge0RhdGV9IHRoZSBwYXJzZWQgZGF0ZVxuICovXG5jb25zdCBwYXJzZURhdGVTdHJpbmcgPSAoXG4gIGRhdGVTdHJpbmcsXG4gIGRhdGVGb3JtYXQgPSBJTlRFUk5BTF9EQVRFX0ZPUk1BVCxcbiAgYWRqdXN0RGF0ZSA9IGZhbHNlLFxuKSA9PiB7XG4gIGxldCBkYXRlO1xuICBsZXQgbW9udGg7XG4gIGxldCBkYXk7XG4gIGxldCB5ZWFyO1xuICBsZXQgcGFyc2VkO1xuXG4gIGlmIChkYXRlU3RyaW5nKSB7XG4gICAgbGV0IG1vbnRoU3RyO1xuICAgIGxldCBkYXlTdHI7XG4gICAgbGV0IHllYXJTdHI7XG5cbiAgICBpZiAoZGF0ZUZvcm1hdCA9PT0gREVGQVVMVF9FWFRFUk5BTF9EQVRFX0ZPUk1BVCkge1xuICAgICAgW21vbnRoU3RyLCBkYXlTdHIsIHllYXJTdHJdID0gZGF0ZVN0cmluZy5zcGxpdChcIi9cIik7XG4gICAgfSBlbHNlIHtcbiAgICAgIFt5ZWFyU3RyLCBtb250aFN0ciwgZGF5U3RyXSA9IGRhdGVTdHJpbmcuc3BsaXQoXCItXCIpO1xuICAgIH1cblxuICAgIGlmICh5ZWFyU3RyKSB7XG4gICAgICBwYXJzZWQgPSBwYXJzZUludCh5ZWFyU3RyLCAxMCk7XG4gICAgICBpZiAoIU51bWJlci5pc05hTihwYXJzZWQpKSB7XG4gICAgICAgIHllYXIgPSBwYXJzZWQ7XG4gICAgICAgIGlmIChhZGp1c3REYXRlKSB7XG4gICAgICAgICAgeWVhciA9IE1hdGgubWF4KDAsIHllYXIpO1xuICAgICAgICAgIGlmICh5ZWFyU3RyLmxlbmd0aCA8IDMpIHtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRZZWFyID0gdG9kYXkoKS5nZXRGdWxsWWVhcigpO1xuICAgICAgICAgICAgY29uc3QgY3VycmVudFllYXJTdHViID1cbiAgICAgICAgICAgICAgY3VycmVudFllYXIgLSAoY3VycmVudFllYXIgJSAxMCAqKiB5ZWFyU3RyLmxlbmd0aCk7XG4gICAgICAgICAgICB5ZWFyID0gY3VycmVudFllYXJTdHViICsgcGFyc2VkO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChtb250aFN0cikge1xuICAgICAgcGFyc2VkID0gcGFyc2VJbnQobW9udGhTdHIsIDEwKTtcbiAgICAgIGlmICghTnVtYmVyLmlzTmFOKHBhcnNlZCkpIHtcbiAgICAgICAgbW9udGggPSBwYXJzZWQ7XG4gICAgICAgIGlmIChhZGp1c3REYXRlKSB7XG4gICAgICAgICAgbW9udGggPSBNYXRoLm1heCgxLCBtb250aCk7XG4gICAgICAgICAgbW9udGggPSBNYXRoLm1pbigxMiwgbW9udGgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKG1vbnRoICYmIGRheVN0ciAmJiB5ZWFyICE9IG51bGwpIHtcbiAgICAgIHBhcnNlZCA9IHBhcnNlSW50KGRheVN0ciwgMTApO1xuICAgICAgaWYgKCFOdW1iZXIuaXNOYU4ocGFyc2VkKSkge1xuICAgICAgICBkYXkgPSBwYXJzZWQ7XG4gICAgICAgIGlmIChhZGp1c3REYXRlKSB7XG4gICAgICAgICAgY29uc3QgbGFzdERheU9mVGhlTW9udGggPSBzZXREYXRlKHllYXIsIG1vbnRoLCAwKS5nZXREYXRlKCk7XG4gICAgICAgICAgZGF5ID0gTWF0aC5tYXgoMSwgZGF5KTtcbiAgICAgICAgICBkYXkgPSBNYXRoLm1pbihsYXN0RGF5T2ZUaGVNb250aCwgZGF5KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChtb250aCAmJiBkYXkgJiYgeWVhciAhPSBudWxsKSB7XG4gICAgICBkYXRlID0gc2V0RGF0ZSh5ZWFyLCBtb250aCAtIDEsIGRheSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGRhdGU7XG59O1xuXG4vKipcbiAqIEZvcm1hdCBhIGRhdGUgdG8gZm9ybWF0IE1NLURELVlZWVlcbiAqXG4gKiBAcGFyYW0ge0RhdGV9IGRhdGUgdGhlIGRhdGUgdG8gZm9ybWF0XG4gKiBAcGFyYW0ge3N0cmluZ30gZGF0ZUZvcm1hdCB0aGUgZm9ybWF0IG9mIHRoZSBkYXRlIHN0cmluZ1xuICogQHJldHVybnMge3N0cmluZ30gdGhlIGZvcm1hdHRlZCBkYXRlIHN0cmluZ1xuICovXG5jb25zdCBmb3JtYXREYXRlID0gKGRhdGUsIGRhdGVGb3JtYXQgPSBJTlRFUk5BTF9EQVRFX0ZPUk1BVCkgPT4ge1xuICBjb25zdCBwYWRaZXJvcyA9ICh2YWx1ZSwgbGVuZ3RoKSA9PiBgMDAwMCR7dmFsdWV9YC5zbGljZSgtbGVuZ3RoKTtcblxuICBjb25zdCBtb250aCA9IGRhdGUuZ2V0TW9udGgoKSArIDE7XG4gIGNvbnN0IGRheSA9IGRhdGUuZ2V0RGF0ZSgpO1xuICBjb25zdCB5ZWFyID0gZGF0ZS5nZXRGdWxsWWVhcigpO1xuXG4gIGlmIChkYXRlRm9ybWF0ID09PSBERUZBVUxUX0VYVEVSTkFMX0RBVEVfRk9STUFUKSB7XG4gICAgcmV0dXJuIFtwYWRaZXJvcyhtb250aCwgMiksIHBhZFplcm9zKGRheSwgMiksIHBhZFplcm9zKHllYXIsIDQpXS5qb2luKFwiL1wiKTtcbiAgfVxuXG4gIHJldHVybiBbcGFkWmVyb3MoeWVhciwgNCksIHBhZFplcm9zKG1vbnRoLCAyKSwgcGFkWmVyb3MoZGF5LCAyKV0uam9pbihcIi1cIik7XG59O1xuXG4vLyAjZW5kcmVnaW9uIERhdGUgTWFuaXB1bGF0aW9uIEZ1bmN0aW9uc1xuXG4vKipcbiAqIENyZWF0ZSBhIGdyaWQgc3RyaW5nIGZyb20gYW4gYXJyYXkgb2YgaHRtbCBzdHJpbmdzXG4gKlxuICogQHBhcmFtIHtzdHJpbmdbXX0gaHRtbEFycmF5IHRoZSBhcnJheSBvZiBodG1sIGl0ZW1zXG4gKiBAcGFyYW0ge251bWJlcn0gcm93U2l6ZSB0aGUgbGVuZ3RoIG9mIGEgcm93XG4gKiBAcmV0dXJucyB7c3RyaW5nfSB0aGUgZ3JpZCBzdHJpbmdcbiAqL1xuY29uc3QgbGlzdFRvR3JpZEh0bWwgPSAoaHRtbEFycmF5LCByb3dTaXplKSA9PiB7XG4gIGNvbnN0IGdyaWQgPSBbXTtcbiAgbGV0IHJvdyA9IFtdO1xuXG4gIGxldCBpID0gMDtcbiAgd2hpbGUgKGkgPCBodG1sQXJyYXkubGVuZ3RoKSB7XG4gICAgcm93ID0gW107XG5cbiAgICBjb25zdCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJ0clwiKTtcbiAgICB3aGlsZSAoaSA8IGh0bWxBcnJheS5sZW5ndGggJiYgcm93Lmxlbmd0aCA8IHJvd1NpemUpIHtcbiAgICAgIGNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInRkXCIpO1xuICAgICAgdGQuaW5zZXJ0QWRqYWNlbnRFbGVtZW50KFwiYmVmb3JlZW5kXCIsIGh0bWxBcnJheVtpXSk7XG4gICAgICByb3cucHVzaCh0ZCk7XG4gICAgICBpICs9IDE7XG4gICAgfVxuXG4gICAgcm93LmZvckVhY2goKGVsZW1lbnQpID0+IHtcbiAgICAgIHRyLmluc2VydEFkamFjZW50RWxlbWVudChcImJlZm9yZWVuZFwiLCBlbGVtZW50KTtcbiAgICB9KTtcblxuICAgIGdyaWQucHVzaCh0cik7XG4gIH1cblxuICByZXR1cm4gZ3JpZDtcbn07XG5cbmNvbnN0IGNyZWF0ZVRhYmxlQm9keSA9IChncmlkKSA9PiB7XG4gIGNvbnN0IHRhYmxlQm9keSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJ0Ym9keVwiKTtcbiAgZ3JpZC5mb3JFYWNoKChlbGVtZW50KSA9PiB7XG4gICAgdGFibGVCb2R5Lmluc2VydEFkamFjZW50RWxlbWVudChcImJlZm9yZWVuZFwiLCBlbGVtZW50KTtcbiAgfSk7XG5cbiAgcmV0dXJuIHRhYmxlQm9keTtcbn07XG5cbi8qKlxuICogc2V0IHRoZSB2YWx1ZSBvZiB0aGUgZWxlbWVudCBhbmQgZGlzcGF0Y2ggYSBjaGFuZ2UgZXZlbnRcbiAqXG4gKiBAcGFyYW0ge0hUTUxJbnB1dEVsZW1lbnR9IGVsIFRoZSBlbGVtZW50IHRvIHVwZGF0ZVxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlIFRoZSBuZXcgdmFsdWUgb2YgdGhlIGVsZW1lbnRcbiAqL1xuY29uc3QgY2hhbmdlRWxlbWVudFZhbHVlID0gKGVsLCB2YWx1ZSA9IFwiXCIpID0+IHtcbiAgY29uc3QgZWxlbWVudFRvQ2hhbmdlID0gZWw7XG4gIGVsZW1lbnRUb0NoYW5nZS52YWx1ZSA9IHZhbHVlO1xuXG4gIGNvbnN0IGV2ZW50ID0gbmV3IEN1c3RvbUV2ZW50KFwiY2hhbmdlXCIsIHtcbiAgICBidWJibGVzOiB0cnVlLFxuICAgIGNhbmNlbGFibGU6IHRydWUsXG4gICAgZGV0YWlsOiB7IHZhbHVlIH0sXG4gIH0pO1xuICBlbGVtZW50VG9DaGFuZ2UuZGlzcGF0Y2hFdmVudChldmVudCk7XG59O1xuXG4vKipcbiAqIFRoZSBwcm9wZXJ0aWVzIGFuZCBlbGVtZW50cyB3aXRoaW4gdGhlIGRhdGUgcGlja2VyLlxuICogQHR5cGVkZWYge09iamVjdH0gRGF0ZVBpY2tlckNvbnRleHRcbiAqIEBwcm9wZXJ0eSB7SFRNTERpdkVsZW1lbnR9IGNhbGVuZGFyRWxcbiAqIEBwcm9wZXJ0eSB7SFRNTEVsZW1lbnR9IGRhdGVQaWNrZXJFbFxuICogQHByb3BlcnR5IHtIVE1MSW5wdXRFbGVtZW50fSBpbnRlcm5hbElucHV0RWxcbiAqIEBwcm9wZXJ0eSB7SFRNTElucHV0RWxlbWVudH0gZXh0ZXJuYWxJbnB1dEVsXG4gKiBAcHJvcGVydHkge0hUTUxEaXZFbGVtZW50fSBzdGF0dXNFbFxuICogQHByb3BlcnR5IHtIVE1MRGl2RWxlbWVudH0gZmlyc3RZZWFyQ2h1bmtFbFxuICogQHByb3BlcnR5IHtEYXRlfSBjYWxlbmRhckRhdGVcbiAqIEBwcm9wZXJ0eSB7RGF0ZX0gbWluRGF0ZVxuICogQHByb3BlcnR5IHtEYXRlfSBtYXhEYXRlXG4gKiBAcHJvcGVydHkge0RhdGV9IHNlbGVjdGVkRGF0ZVxuICogQHByb3BlcnR5IHtEYXRlfSByYW5nZURhdGVcbiAqIEBwcm9wZXJ0eSB7RGF0ZX0gZGVmYXVsdERhdGVcbiAqL1xuXG4vKipcbiAqIEdldCBhbiBvYmplY3Qgb2YgdGhlIHByb3BlcnRpZXMgYW5kIGVsZW1lbnRzIGJlbG9uZ2luZyBkaXJlY3RseSB0byB0aGUgZ2l2ZW5cbiAqIGRhdGUgcGlja2VyIGNvbXBvbmVudC5cbiAqXG4gKiBAcGFyYW0ge0hUTUxFbGVtZW50fSBlbCB0aGUgZWxlbWVudCB3aXRoaW4gdGhlIGRhdGUgcGlja2VyXG4gKiBAcmV0dXJucyB7RGF0ZVBpY2tlckNvbnRleHR9IGVsZW1lbnRzXG4gKi9cbmNvbnN0IGdldERhdGVQaWNrZXJDb250ZXh0ID0gKGVsKSA9PiB7XG4gIGNvbnN0IGRhdGVQaWNrZXJFbCA9IGVsLmNsb3Nlc3QoREFURV9QSUNLRVIpO1xuXG4gIGlmICghZGF0ZVBpY2tlckVsKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBFbGVtZW50IGlzIG1pc3Npbmcgb3V0ZXIgJHtEQVRFX1BJQ0tFUn1gKTtcbiAgfVxuXG4gIGNvbnN0IGludGVybmFsSW5wdXRFbCA9IGRhdGVQaWNrZXJFbC5xdWVyeVNlbGVjdG9yKFxuICAgIERBVEVfUElDS0VSX0lOVEVSTkFMX0lOUFVULFxuICApO1xuICBjb25zdCBleHRlcm5hbElucHV0RWwgPSBkYXRlUGlja2VyRWwucXVlcnlTZWxlY3RvcihcbiAgICBEQVRFX1BJQ0tFUl9FWFRFUk5BTF9JTlBVVCxcbiAgKTtcbiAgY29uc3QgY2FsZW5kYXJFbCA9IGRhdGVQaWNrZXJFbC5xdWVyeVNlbGVjdG9yKERBVEVfUElDS0VSX0NBTEVOREFSKTtcbiAgY29uc3QgdG9nZ2xlQnRuRWwgPSBkYXRlUGlja2VyRWwucXVlcnlTZWxlY3RvcihEQVRFX1BJQ0tFUl9CVVRUT04pO1xuICBjb25zdCBzdGF0dXNFbCA9IGRhdGVQaWNrZXJFbC5xdWVyeVNlbGVjdG9yKERBVEVfUElDS0VSX1NUQVRVUyk7XG4gIGNvbnN0IGZpcnN0WWVhckNodW5rRWwgPSBkYXRlUGlja2VyRWwucXVlcnlTZWxlY3RvcihDQUxFTkRBUl9ZRUFSKTtcblxuICBjb25zdCBpbnB1dERhdGUgPSBwYXJzZURhdGVTdHJpbmcoXG4gICAgZXh0ZXJuYWxJbnB1dEVsLnZhbHVlLFxuICAgIERFRkFVTFRfRVhURVJOQUxfREFURV9GT1JNQVQsXG4gICAgdHJ1ZSxcbiAgKTtcbiAgY29uc3Qgc2VsZWN0ZWREYXRlID0gcGFyc2VEYXRlU3RyaW5nKGludGVybmFsSW5wdXRFbC52YWx1ZSk7XG5cbiAgY29uc3QgY2FsZW5kYXJEYXRlID0gcGFyc2VEYXRlU3RyaW5nKGNhbGVuZGFyRWwuZGF0YXNldC52YWx1ZSk7XG4gIGNvbnN0IG1pbkRhdGUgPSBwYXJzZURhdGVTdHJpbmcoZGF0ZVBpY2tlckVsLmRhdGFzZXQubWluRGF0ZSk7XG4gIGNvbnN0IG1heERhdGUgPSBwYXJzZURhdGVTdHJpbmcoZGF0ZVBpY2tlckVsLmRhdGFzZXQubWF4RGF0ZSk7XG4gIGNvbnN0IHJhbmdlRGF0ZSA9IHBhcnNlRGF0ZVN0cmluZyhkYXRlUGlja2VyRWwuZGF0YXNldC5yYW5nZURhdGUpO1xuICBjb25zdCBkZWZhdWx0RGF0ZSA9IHBhcnNlRGF0ZVN0cmluZyhkYXRlUGlja2VyRWwuZGF0YXNldC5kZWZhdWx0RGF0ZSk7XG5cbiAgaWYgKG1pbkRhdGUgJiYgbWF4RGF0ZSAmJiBtaW5EYXRlID4gbWF4RGF0ZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIk1pbmltdW0gZGF0ZSBjYW5ub3QgYmUgYWZ0ZXIgbWF4aW11bSBkYXRlXCIpO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBjYWxlbmRhckRhdGUsXG4gICAgbWluRGF0ZSxcbiAgICB0b2dnbGVCdG5FbCxcbiAgICBzZWxlY3RlZERhdGUsXG4gICAgbWF4RGF0ZSxcbiAgICBmaXJzdFllYXJDaHVua0VsLFxuICAgIGRhdGVQaWNrZXJFbCxcbiAgICBpbnB1dERhdGUsXG4gICAgaW50ZXJuYWxJbnB1dEVsLFxuICAgIGV4dGVybmFsSW5wdXRFbCxcbiAgICBjYWxlbmRhckVsLFxuICAgIHJhbmdlRGF0ZSxcbiAgICBkZWZhdWx0RGF0ZSxcbiAgICBzdGF0dXNFbCxcbiAgfTtcbn07XG5cbi8qKlxuICogRGlzYWJsZSB0aGUgZGF0ZSBwaWNrZXIgY29tcG9uZW50XG4gKlxuICogQHBhcmFtIHtIVE1MRWxlbWVudH0gZWwgQW4gZWxlbWVudCB3aXRoaW4gdGhlIGRhdGUgcGlja2VyIGNvbXBvbmVudFxuICovXG5jb25zdCBkaXNhYmxlID0gKGVsKSA9PiB7XG4gIGNvbnN0IHsgZXh0ZXJuYWxJbnB1dEVsLCB0b2dnbGVCdG5FbCB9ID0gZ2V0RGF0ZVBpY2tlckNvbnRleHQoZWwpO1xuXG4gIHRvZ2dsZUJ0bkVsLmRpc2FibGVkID0gdHJ1ZTtcbiAgZXh0ZXJuYWxJbnB1dEVsLmRpc2FibGVkID0gdHJ1ZTtcbn07XG5cbi8qKlxuICogQWRkIHRoZSByZWFkb25seSBhdHRyaWJ1dGUgdG8gaW5wdXQgZWxlbWVudCBhbmQgdGhlIGFyaWEtZGlzYWJsZWQgYXR0cmlidXRlIHRvIHRoZSB0b2dnbGUgY2FsZW5kYXIgYnV0dG9uIGFuZCBleHRlcm5hbCBpbnB1dCBlbGVtZW50cy5cbiAqXG4gKiBAcGFyYW0ge0hUTUxFbGVtZW50fSBlbCAtIFRoZSBkYXRlIHBpY2tlciBlbGVtZW50XG4gKi9cbmNvbnN0IGFyaWFEaXNhYmxlID0gKGVsKSA9PiB7XG4gIGNvbnN0IHsgZXh0ZXJuYWxJbnB1dEVsLCB0b2dnbGVCdG5FbCB9ID0gZ2V0RGF0ZVBpY2tlckNvbnRleHQoZWwpO1xuXG4gIHRvZ2dsZUJ0bkVsLnNldEF0dHJpYnV0ZShcImFyaWEtZGlzYWJsZWRcIiwgdHJ1ZSk7XG4gIGV4dGVybmFsSW5wdXRFbC5zZXRBdHRyaWJ1dGUoXCJhcmlhLWRpc2FibGVkXCIsIHRydWUpO1xuICBleHRlcm5hbElucHV0RWwuc2V0QXR0cmlidXRlKFwicmVhZG9ubHlcIiwgXCJcIik7XG59O1xuXG4vKipcbiAqIEVuYWJsZSB0aGUgZGF0ZSBwaWNrZXIgY29tcG9uZW50XG4gKlxuICogQHBhcmFtIHtIVE1MRWxlbWVudH0gZWwgQW4gZWxlbWVudCB3aXRoaW4gdGhlIGRhdGUgcGlja2VyIGNvbXBvbmVudFxuICovXG5jb25zdCBlbmFibGUgPSAoZWwpID0+IHtcbiAgY29uc3QgeyBleHRlcm5hbElucHV0RWwsIHRvZ2dsZUJ0bkVsIH0gPSBnZXREYXRlUGlja2VyQ29udGV4dChlbCk7XG5cbiAgdG9nZ2xlQnRuRWwuZGlzYWJsZWQgPSBmYWxzZTtcbiAgdG9nZ2xlQnRuRWwucmVtb3ZlQXR0cmlidXRlKFwiYXJpYS1kaXNhYmxlZFwiKTtcblxuICBleHRlcm5hbElucHV0RWwuZGlzYWJsZWQgPSBmYWxzZTtcbiAgZXh0ZXJuYWxJbnB1dEVsLnJlbW92ZUF0dHJpYnV0ZShcImFyaWEtZGlzYWJsZWRcIik7XG4gIGV4dGVybmFsSW5wdXRFbC5yZW1vdmVBdHRyaWJ1dGUoXCJyZWFkb25seVwiKTtcbn07XG5cbi8vICNyZWdpb24gVmFsaWRhdGlvblxuXG4vKipcbiAqIFZhbGlkYXRlIHRoZSB2YWx1ZSBpbiB0aGUgaW5wdXQgYXMgYSB2YWxpZCBkYXRlIG9mIGZvcm1hdCBNL0QvWVlZWVxuICpcbiAqIEBwYXJhbSB7SFRNTEVsZW1lbnR9IGVsIEFuIGVsZW1lbnQgd2l0aGluIHRoZSBkYXRlIHBpY2tlciBjb21wb25lbnRcbiAqL1xuY29uc3QgaXNEYXRlSW5wdXRJbnZhbGlkID0gKGVsKSA9PiB7XG4gIGNvbnN0IHsgZXh0ZXJuYWxJbnB1dEVsLCBtaW5EYXRlLCBtYXhEYXRlIH0gPSBnZXREYXRlUGlja2VyQ29udGV4dChlbCk7XG5cbiAgY29uc3QgZGF0ZVN0cmluZyA9IGV4dGVybmFsSW5wdXRFbC52YWx1ZTtcbiAgbGV0IGlzSW52YWxpZCA9IGZhbHNlO1xuXG4gIGlmIChkYXRlU3RyaW5nKSB7XG4gICAgaXNJbnZhbGlkID0gdHJ1ZTtcblxuICAgIGNvbnN0IGRhdGVTdHJpbmdQYXJ0cyA9IGRhdGVTdHJpbmcuc3BsaXQoXCIvXCIpO1xuICAgIGNvbnN0IFttb250aCwgZGF5LCB5ZWFyXSA9IGRhdGVTdHJpbmdQYXJ0cy5tYXAoKHN0cikgPT4ge1xuICAgICAgbGV0IHZhbHVlO1xuICAgICAgY29uc3QgcGFyc2VkID0gcGFyc2VJbnQoc3RyLCAxMCk7XG4gICAgICBpZiAoIU51bWJlci5pc05hTihwYXJzZWQpKSB2YWx1ZSA9IHBhcnNlZDtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9KTtcblxuICAgIGlmIChtb250aCAmJiBkYXkgJiYgeWVhciAhPSBudWxsKSB7XG4gICAgICBjb25zdCBjaGVja0RhdGUgPSBzZXREYXRlKHllYXIsIG1vbnRoIC0gMSwgZGF5KTtcblxuICAgICAgaWYgKFxuICAgICAgICBjaGVja0RhdGUuZ2V0TW9udGgoKSA9PT0gbW9udGggLSAxICYmXG4gICAgICAgIGNoZWNrRGF0ZS5nZXREYXRlKCkgPT09IGRheSAmJlxuICAgICAgICBjaGVja0RhdGUuZ2V0RnVsbFllYXIoKSA9PT0geWVhciAmJlxuICAgICAgICBkYXRlU3RyaW5nUGFydHNbMl0ubGVuZ3RoID09PSA0ICYmXG4gICAgICAgIGlzRGF0ZVdpdGhpbk1pbkFuZE1heChjaGVja0RhdGUsIG1pbkRhdGUsIG1heERhdGUpXG4gICAgICApIHtcbiAgICAgICAgaXNJbnZhbGlkID0gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGlzSW52YWxpZDtcbn07XG5cbi8qKlxuICogVmFsaWRhdGUgdGhlIHZhbHVlIGluIHRoZSBpbnB1dCBhcyBhIHZhbGlkIGRhdGUgb2YgZm9ybWF0IE0vRC9ZWVlZXG4gKlxuICogQHBhcmFtIHtIVE1MRWxlbWVudH0gZWwgQW4gZWxlbWVudCB3aXRoaW4gdGhlIGRhdGUgcGlja2VyIGNvbXBvbmVudFxuICovXG5jb25zdCB2YWxpZGF0ZURhdGVJbnB1dCA9IChlbCkgPT4ge1xuICBjb25zdCB7IGV4dGVybmFsSW5wdXRFbCB9ID0gZ2V0RGF0ZVBpY2tlckNvbnRleHQoZWwpO1xuICBjb25zdCBpc0ludmFsaWQgPSBpc0RhdGVJbnB1dEludmFsaWQoZXh0ZXJuYWxJbnB1dEVsKTtcblxuICBpZiAoaXNJbnZhbGlkICYmICFleHRlcm5hbElucHV0RWwudmFsaWRhdGlvbk1lc3NhZ2UpIHtcbiAgICBleHRlcm5hbElucHV0RWwuc2V0Q3VzdG9tVmFsaWRpdHkoVkFMSURBVElPTl9NRVNTQUdFKTtcbiAgfVxuXG4gIGlmICghaXNJbnZhbGlkICYmIGV4dGVybmFsSW5wdXRFbC52YWxpZGF0aW9uTWVzc2FnZSA9PT0gVkFMSURBVElPTl9NRVNTQUdFKSB7XG4gICAgZXh0ZXJuYWxJbnB1dEVsLnNldEN1c3RvbVZhbGlkaXR5KFwiXCIpO1xuICB9XG59O1xuXG4vLyAjZW5kcmVnaW9uIFZhbGlkYXRpb25cblxuLyoqXG4gKiBFbmFibGUgdGhlIGRhdGUgcGlja2VyIGNvbXBvbmVudFxuICpcbiAqIEBwYXJhbSB7SFRNTEVsZW1lbnR9IGVsIEFuIGVsZW1lbnQgd2l0aGluIHRoZSBkYXRlIHBpY2tlciBjb21wb25lbnRcbiAqL1xuY29uc3QgcmVjb25jaWxlSW5wdXRWYWx1ZXMgPSAoZWwpID0+IHtcbiAgY29uc3QgeyBpbnRlcm5hbElucHV0RWwsIGlucHV0RGF0ZSB9ID0gZ2V0RGF0ZVBpY2tlckNvbnRleHQoZWwpO1xuICBsZXQgbmV3VmFsdWUgPSBcIlwiO1xuXG4gIGlmIChpbnB1dERhdGUgJiYgIWlzRGF0ZUlucHV0SW52YWxpZChlbCkpIHtcbiAgICBuZXdWYWx1ZSA9IGZvcm1hdERhdGUoaW5wdXREYXRlKTtcbiAgfVxuXG4gIGlmIChpbnRlcm5hbElucHV0RWwudmFsdWUgIT09IG5ld1ZhbHVlKSB7XG4gICAgY2hhbmdlRWxlbWVudFZhbHVlKGludGVybmFsSW5wdXRFbCwgbmV3VmFsdWUpO1xuICB9XG59O1xuXG4vKipcbiAqIFNlbGVjdCB0aGUgdmFsdWUgb2YgdGhlIGRhdGUgcGlja2VyIGlucHV0cy5cbiAqXG4gKiBAcGFyYW0ge0hUTUxCdXR0b25FbGVtZW50fSBlbCBBbiBlbGVtZW50IHdpdGhpbiB0aGUgZGF0ZSBwaWNrZXIgY29tcG9uZW50XG4gKiBAcGFyYW0ge3N0cmluZ30gZGF0ZVN0cmluZyBUaGUgZGF0ZSBzdHJpbmcgdG8gdXBkYXRlIGluIFlZWVktTU0tREQgZm9ybWF0XG4gKi9cbmNvbnN0IHNldENhbGVuZGFyVmFsdWUgPSAoZWwsIGRhdGVTdHJpbmcpID0+IHtcbiAgY29uc3QgcGFyc2VkRGF0ZSA9IHBhcnNlRGF0ZVN0cmluZyhkYXRlU3RyaW5nKTtcblxuICBpZiAocGFyc2VkRGF0ZSkge1xuICAgIGNvbnN0IGZvcm1hdHRlZERhdGUgPSBmb3JtYXREYXRlKHBhcnNlZERhdGUsIERFRkFVTFRfRVhURVJOQUxfREFURV9GT1JNQVQpO1xuXG4gICAgY29uc3QgeyBkYXRlUGlja2VyRWwsIGludGVybmFsSW5wdXRFbCwgZXh0ZXJuYWxJbnB1dEVsIH0gPVxuICAgICAgZ2V0RGF0ZVBpY2tlckNvbnRleHQoZWwpO1xuXG4gICAgY2hhbmdlRWxlbWVudFZhbHVlKGludGVybmFsSW5wdXRFbCwgZGF0ZVN0cmluZyk7XG4gICAgY2hhbmdlRWxlbWVudFZhbHVlKGV4dGVybmFsSW5wdXRFbCwgZm9ybWF0dGVkRGF0ZSk7XG5cbiAgICB2YWxpZGF0ZURhdGVJbnB1dChkYXRlUGlja2VyRWwpO1xuICB9XG59O1xuXG4vKipcbiAqIEVuaGFuY2UgYW4gaW5wdXQgd2l0aCB0aGUgZGF0ZSBwaWNrZXIgZWxlbWVudHNcbiAqXG4gKiBAcGFyYW0ge0hUTUxFbGVtZW50fSBlbCBUaGUgaW5pdGlhbCB3cmFwcGluZyBlbGVtZW50IG9mIHRoZSBkYXRlIHBpY2tlciBjb21wb25lbnRcbiAqL1xuY29uc3QgZW5oYW5jZURhdGVQaWNrZXIgPSAoZWwpID0+IHtcbiAgY29uc3QgZGF0ZVBpY2tlckVsID0gZWwuY2xvc2VzdChEQVRFX1BJQ0tFUik7XG4gIGNvbnN0IHsgZGVmYXVsdFZhbHVlIH0gPSBkYXRlUGlja2VyRWwuZGF0YXNldDtcblxuICBjb25zdCBpbnRlcm5hbElucHV0RWwgPSBkYXRlUGlja2VyRWwucXVlcnlTZWxlY3RvcihgaW5wdXRgKTtcblxuICBpZiAoIWludGVybmFsSW5wdXRFbCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgJHtEQVRFX1BJQ0tFUn0gaXMgbWlzc2luZyBpbm5lciBpbnB1dGApO1xuICB9XG5cbiAgaWYgKGludGVybmFsSW5wdXRFbC52YWx1ZSkge1xuICAgIGludGVybmFsSW5wdXRFbC52YWx1ZSA9IFwiXCI7XG4gIH1cblxuICBjb25zdCBtaW5EYXRlID0gcGFyc2VEYXRlU3RyaW5nKFxuICAgIGRhdGVQaWNrZXJFbC5kYXRhc2V0Lm1pbkRhdGUgfHwgaW50ZXJuYWxJbnB1dEVsLmdldEF0dHJpYnV0ZShcIm1pblwiKSxcbiAgKTtcbiAgZGF0ZVBpY2tlckVsLmRhdGFzZXQubWluRGF0ZSA9IG1pbkRhdGVcbiAgICA/IGZvcm1hdERhdGUobWluRGF0ZSlcbiAgICA6IERFRkFVTFRfTUlOX0RBVEU7XG5cbiAgY29uc3QgbWF4RGF0ZSA9IHBhcnNlRGF0ZVN0cmluZyhcbiAgICBkYXRlUGlja2VyRWwuZGF0YXNldC5tYXhEYXRlIHx8IGludGVybmFsSW5wdXRFbC5nZXRBdHRyaWJ1dGUoXCJtYXhcIiksXG4gICk7XG4gIGlmIChtYXhEYXRlKSB7XG4gICAgZGF0ZVBpY2tlckVsLmRhdGFzZXQubWF4RGF0ZSA9IGZvcm1hdERhdGUobWF4RGF0ZSk7XG4gIH1cblxuICBjb25zdCBjYWxlbmRhcldyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xuICBjYWxlbmRhcldyYXBwZXIuY2xhc3NMaXN0LmFkZChEQVRFX1BJQ0tFUl9XUkFQUEVSX0NMQVNTKTtcblxuICBjb25zdCBleHRlcm5hbElucHV0RWwgPSBpbnRlcm5hbElucHV0RWwuY2xvbmVOb2RlKCk7XG4gIGV4dGVybmFsSW5wdXRFbC5jbGFzc0xpc3QuYWRkKERBVEVfUElDS0VSX0VYVEVSTkFMX0lOUFVUX0NMQVNTKTtcbiAgZXh0ZXJuYWxJbnB1dEVsLnR5cGUgPSBcInRleHRcIjtcblxuICBjYWxlbmRhcldyYXBwZXIuYXBwZW5kQ2hpbGQoZXh0ZXJuYWxJbnB1dEVsKTtcbiAgY2FsZW5kYXJXcmFwcGVyLmluc2VydEFkamFjZW50SFRNTChcbiAgICBcImJlZm9yZWVuZFwiLFxuICAgIFNhbml0aXplci5lc2NhcGVIVE1MYFxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiJHtEQVRFX1BJQ0tFUl9CVVRUT05fQ0xBU1N9XCIgYXJpYS1oYXNwb3B1cD1cInRydWVcIiBhcmlhLWxhYmVsPVwiVG9nZ2xlIGNhbGVuZGFyXCI+PC9idXR0b24+XG4gICAgPGRpdiBjbGFzcz1cIiR7REFURV9QSUNLRVJfQ0FMRU5EQVJfQ0xBU1N9XCIgcm9sZT1cImFwcGxpY2F0aW9uXCIgaGlkZGVuPjwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJ1c2Etc3Itb25seSAke0RBVEVfUElDS0VSX1NUQVRVU19DTEFTU31cIiByb2xlPVwic3RhdHVzXCIgYXJpYS1saXZlPVwicG9saXRlXCI+PC9kaXY+YCxcbiAgKTtcblxuICBpbnRlcm5hbElucHV0RWwuc2V0QXR0cmlidXRlKFwiYXJpYS1oaWRkZW5cIiwgXCJ0cnVlXCIpO1xuICBpbnRlcm5hbElucHV0RWwuc2V0QXR0cmlidXRlKFwidGFiaW5kZXhcIiwgXCItMVwiKTtcbiAgaW50ZXJuYWxJbnB1dEVsLnN0eWxlLmRpc3BsYXkgPSBcIm5vbmVcIjtcbiAgaW50ZXJuYWxJbnB1dEVsLmNsYXNzTGlzdC5hZGQoREFURV9QSUNLRVJfSU5URVJOQUxfSU5QVVRfQ0xBU1MpO1xuICBpbnRlcm5hbElucHV0RWwucmVtb3ZlQXR0cmlidXRlKFwiaWRcIik7XG4gIGludGVybmFsSW5wdXRFbC5yZW1vdmVBdHRyaWJ1dGUoXCJuYW1lXCIpO1xuICBpbnRlcm5hbElucHV0RWwucmVxdWlyZWQgPSBmYWxzZTtcblxuICBkYXRlUGlja2VyRWwuYXBwZW5kQ2hpbGQoY2FsZW5kYXJXcmFwcGVyKTtcbiAgZGF0ZVBpY2tlckVsLmNsYXNzTGlzdC5hZGQoREFURV9QSUNLRVJfSU5JVElBTElaRURfQ0xBU1MpO1xuXG4gIGlmIChkZWZhdWx0VmFsdWUpIHtcbiAgICBzZXRDYWxlbmRhclZhbHVlKGRhdGVQaWNrZXJFbCwgZGVmYXVsdFZhbHVlKTtcbiAgfVxuXG4gIGlmIChpbnRlcm5hbElucHV0RWwuZGlzYWJsZWQpIHtcbiAgICBkaXNhYmxlKGRhdGVQaWNrZXJFbCk7XG4gICAgaW50ZXJuYWxJbnB1dEVsLmRpc2FibGVkID0gZmFsc2U7XG4gIH1cblxuICBpZiAoaW50ZXJuYWxJbnB1dEVsLmhhc0F0dHJpYnV0ZShcImFyaWEtZGlzYWJsZWRcIikpIHtcbiAgICBhcmlhRGlzYWJsZShkYXRlUGlja2VyRWwpO1xuICAgIGludGVybmFsSW5wdXRFbC5yZW1vdmVBdHRyaWJ1dGUoXCJhcmlhLWRpc2FibGVkXCIpO1xuICB9XG59O1xuXG4vLyAjcmVnaW9uIENhbGVuZGFyIC0gRGF0ZSBTZWxlY3Rpb24gVmlld1xuXG4vKipcbiAqIHJlbmRlciB0aGUgY2FsZW5kYXIuXG4gKlxuICogQHBhcmFtIHtIVE1MRWxlbWVudH0gZWwgQW4gZWxlbWVudCB3aXRoaW4gdGhlIGRhdGUgcGlja2VyIGNvbXBvbmVudFxuICogQHBhcmFtIHtEYXRlfSBfZGF0ZVRvRGlzcGxheSBhIGRhdGUgdG8gcmVuZGVyIG9uIHRoZSBjYWxlbmRhclxuICogQHJldHVybnMge0hUTUxFbGVtZW50fSBhIHJlZmVyZW5jZSB0byB0aGUgbmV3IGNhbGVuZGFyIGVsZW1lbnRcbiAqL1xuY29uc3QgcmVuZGVyQ2FsZW5kYXIgPSAoZWwsIF9kYXRlVG9EaXNwbGF5KSA9PiB7XG4gIGNvbnN0IHtcbiAgICBkYXRlUGlja2VyRWwsXG4gICAgY2FsZW5kYXJFbCxcbiAgICBzdGF0dXNFbCxcbiAgICBzZWxlY3RlZERhdGUsXG4gICAgbWF4RGF0ZSxcbiAgICBtaW5EYXRlLFxuICAgIHJhbmdlRGF0ZSxcbiAgfSA9IGdldERhdGVQaWNrZXJDb250ZXh0KGVsKTtcbiAgY29uc3QgdG9kYXlzRGF0ZSA9IHRvZGF5KCk7XG4gIGxldCBkYXRlVG9EaXNwbGF5ID0gX2RhdGVUb0Rpc3BsYXkgfHwgdG9kYXlzRGF0ZTtcblxuICBjb25zdCBjYWxlbmRhcldhc0hpZGRlbiA9IGNhbGVuZGFyRWwuaGlkZGVuO1xuXG4gIGNvbnN0IGZvY3VzZWREYXRlID0gYWRkRGF5cyhkYXRlVG9EaXNwbGF5LCAwKTtcbiAgY29uc3QgZm9jdXNlZE1vbnRoID0gZGF0ZVRvRGlzcGxheS5nZXRNb250aCgpO1xuICBjb25zdCBmb2N1c2VkWWVhciA9IGRhdGVUb0Rpc3BsYXkuZ2V0RnVsbFllYXIoKTtcblxuICBjb25zdCBwcmV2TW9udGggPSBzdWJNb250aHMoZGF0ZVRvRGlzcGxheSwgMSk7XG4gIGNvbnN0IG5leHRNb250aCA9IGFkZE1vbnRocyhkYXRlVG9EaXNwbGF5LCAxKTtcblxuICBjb25zdCBjdXJyZW50Rm9ybWF0dGVkRGF0ZSA9IGZvcm1hdERhdGUoZGF0ZVRvRGlzcGxheSk7XG5cbiAgY29uc3QgZmlyc3RPZk1vbnRoID0gc3RhcnRPZk1vbnRoKGRhdGVUb0Rpc3BsYXkpO1xuICBjb25zdCBwcmV2QnV0dG9uc0Rpc2FibGVkID0gaXNTYW1lTW9udGgoZGF0ZVRvRGlzcGxheSwgbWluRGF0ZSk7XG4gIGNvbnN0IG5leHRCdXR0b25zRGlzYWJsZWQgPSBpc1NhbWVNb250aChkYXRlVG9EaXNwbGF5LCBtYXhEYXRlKTtcblxuICBjb25zdCB7XG4gICAgcmFuZ2VTdGFydERhdGUsXG4gICAgcmFuZ2VFbmREYXRlLFxuICAgIHdpdGhpblJhbmdlU3RhcnREYXRlLFxuICAgIHdpdGhpblJhbmdlRW5kRGF0ZSxcbiAgfSA9IHNldFJhbmdlRGF0ZXMoc2VsZWN0ZWREYXRlIHx8IGRhdGVUb0Rpc3BsYXksIHJhbmdlRGF0ZSk7XG5cbiAgY29uc3QgbW9udGhMYWJlbCA9IE1PTlRIX0xBQkVMU1tmb2N1c2VkTW9udGhdO1xuXG4gIGNvbnN0IGdlbmVyYXRlRGF0ZUh0bWwgPSAoZGF0ZVRvUmVuZGVyKSA9PiB7XG4gICAgY29uc3QgY2xhc3NlcyA9IFtDQUxFTkRBUl9EQVRFX0NMQVNTXTtcbiAgICBjb25zdCBkYXkgPSBkYXRlVG9SZW5kZXIuZ2V0RGF0ZSgpO1xuICAgIGNvbnN0IG1vbnRoID0gZGF0ZVRvUmVuZGVyLmdldE1vbnRoKCk7XG4gICAgY29uc3QgeWVhciA9IGRhdGVUb1JlbmRlci5nZXRGdWxsWWVhcigpO1xuICAgIGNvbnN0IGRheU9mV2VlayA9IGRhdGVUb1JlbmRlci5nZXREYXkoKTtcblxuICAgIGNvbnN0IGZvcm1hdHRlZERhdGUgPSBmb3JtYXREYXRlKGRhdGVUb1JlbmRlcik7XG5cbiAgICBsZXQgdGFiaW5kZXggPSBcIi0xXCI7XG5cbiAgICBjb25zdCBpc0Rpc2FibGVkID0gIWlzRGF0ZVdpdGhpbk1pbkFuZE1heChkYXRlVG9SZW5kZXIsIG1pbkRhdGUsIG1heERhdGUpO1xuICAgIGNvbnN0IGlzU2VsZWN0ZWQgPSBpc1NhbWVEYXkoZGF0ZVRvUmVuZGVyLCBzZWxlY3RlZERhdGUpO1xuXG4gICAgaWYgKGlzU2FtZU1vbnRoKGRhdGVUb1JlbmRlciwgcHJldk1vbnRoKSkge1xuICAgICAgY2xhc3Nlcy5wdXNoKENBTEVOREFSX0RBVEVfUFJFVklPVVNfTU9OVEhfQ0xBU1MpO1xuICAgIH1cblxuICAgIGlmIChpc1NhbWVNb250aChkYXRlVG9SZW5kZXIsIGZvY3VzZWREYXRlKSkge1xuICAgICAgY2xhc3Nlcy5wdXNoKENBTEVOREFSX0RBVEVfQ1VSUkVOVF9NT05USF9DTEFTUyk7XG4gICAgfVxuXG4gICAgaWYgKGlzU2FtZU1vbnRoKGRhdGVUb1JlbmRlciwgbmV4dE1vbnRoKSkge1xuICAgICAgY2xhc3Nlcy5wdXNoKENBTEVOREFSX0RBVEVfTkVYVF9NT05USF9DTEFTUyk7XG4gICAgfVxuXG4gICAgaWYgKGlzU2VsZWN0ZWQpIHtcbiAgICAgIGNsYXNzZXMucHVzaChDQUxFTkRBUl9EQVRFX1NFTEVDVEVEX0NMQVNTKTtcbiAgICB9XG5cbiAgICBpZiAoaXNTYW1lRGF5KGRhdGVUb1JlbmRlciwgdG9kYXlzRGF0ZSkpIHtcbiAgICAgIGNsYXNzZXMucHVzaChDQUxFTkRBUl9EQVRFX1RPREFZX0NMQVNTKTtcbiAgICB9XG5cbiAgICBpZiAocmFuZ2VEYXRlKSB7XG4gICAgICBpZiAoaXNTYW1lRGF5KGRhdGVUb1JlbmRlciwgcmFuZ2VEYXRlKSkge1xuICAgICAgICBjbGFzc2VzLnB1c2goQ0FMRU5EQVJfREFURV9SQU5HRV9EQVRFX0NMQVNTKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGlzU2FtZURheShkYXRlVG9SZW5kZXIsIHJhbmdlU3RhcnREYXRlKSkge1xuICAgICAgICBjbGFzc2VzLnB1c2goQ0FMRU5EQVJfREFURV9SQU5HRV9EQVRFX1NUQVJUX0NMQVNTKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGlzU2FtZURheShkYXRlVG9SZW5kZXIsIHJhbmdlRW5kRGF0ZSkpIHtcbiAgICAgICAgY2xhc3Nlcy5wdXNoKENBTEVOREFSX0RBVEVfUkFOR0VfREFURV9FTkRfQ0xBU1MpO1xuICAgICAgfVxuXG4gICAgICBpZiAoXG4gICAgICAgIGlzRGF0ZVdpdGhpbk1pbkFuZE1heChcbiAgICAgICAgICBkYXRlVG9SZW5kZXIsXG4gICAgICAgICAgd2l0aGluUmFuZ2VTdGFydERhdGUsXG4gICAgICAgICAgd2l0aGluUmFuZ2VFbmREYXRlLFxuICAgICAgICApXG4gICAgICApIHtcbiAgICAgICAgY2xhc3Nlcy5wdXNoKENBTEVOREFSX0RBVEVfV0lUSElOX1JBTkdFX0NMQVNTKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoaXNTYW1lRGF5KGRhdGVUb1JlbmRlciwgZm9jdXNlZERhdGUpKSB7XG4gICAgICB0YWJpbmRleCA9IFwiMFwiO1xuICAgICAgY2xhc3Nlcy5wdXNoKENBTEVOREFSX0RBVEVfRk9DVVNFRF9DTEFTUyk7XG4gICAgfVxuXG4gICAgY29uc3QgbW9udGhTdHIgPSBNT05USF9MQUJFTFNbbW9udGhdO1xuICAgIGNvbnN0IGRheVN0ciA9IERBWV9PRl9XRUVLX0xBQkVMU1tkYXlPZldlZWtdO1xuXG4gICAgY29uc3QgYnRuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImJ1dHRvblwiKTtcbiAgICBidG4uc2V0QXR0cmlidXRlKFwidHlwZVwiLCBcImJ1dHRvblwiKTtcbiAgICBidG4uc2V0QXR0cmlidXRlKFwidGFiaW5kZXhcIiwgdGFiaW5kZXgpO1xuICAgIGJ0bi5zZXRBdHRyaWJ1dGUoXCJjbGFzc1wiLCBjbGFzc2VzLmpvaW4oXCIgXCIpKTtcbiAgICBidG4uc2V0QXR0cmlidXRlKFwiZGF0YS1kYXlcIiwgZGF5KTtcbiAgICBidG4uc2V0QXR0cmlidXRlKFwiZGF0YS1tb250aFwiLCBtb250aCArIDEpO1xuICAgIGJ0bi5zZXRBdHRyaWJ1dGUoXCJkYXRhLXllYXJcIiwgeWVhcik7XG4gICAgYnRuLnNldEF0dHJpYnV0ZShcImRhdGEtdmFsdWVcIiwgZm9ybWF0dGVkRGF0ZSk7XG4gICAgYnRuLnNldEF0dHJpYnV0ZShcbiAgICAgIFwiYXJpYS1sYWJlbFwiLFxuICAgICAgU2FuaXRpemVyLmVzY2FwZUhUTUxgJHtkYXl9ICR7bW9udGhTdHJ9ICR7eWVhcn0gJHtkYXlTdHJ9YCxcbiAgICApO1xuICAgIGJ0bi5zZXRBdHRyaWJ1dGUoXCJhcmlhLXNlbGVjdGVkXCIsIGlzU2VsZWN0ZWQgPyBcInRydWVcIiA6IFwiZmFsc2VcIik7XG4gICAgaWYgKGlzRGlzYWJsZWQgPT09IHRydWUpIHtcbiAgICAgIGJ0bi5kaXNhYmxlZCA9IHRydWU7XG4gICAgfVxuICAgIGJ0bi50ZXh0Q29udGVudCA9IGRheTtcblxuICAgIHJldHVybiBidG47XG4gIH07XG5cbiAgLy8gc2V0IGRhdGUgdG8gZmlyc3QgcmVuZGVyZWQgZGF5XG4gIGRhdGVUb0Rpc3BsYXkgPSBzdGFydE9mV2VlayhmaXJzdE9mTW9udGgpO1xuXG4gIGNvbnN0IGRheXMgPSBbXTtcblxuICB3aGlsZSAoXG4gICAgZGF5cy5sZW5ndGggPCAyOCB8fFxuICAgIGRhdGVUb0Rpc3BsYXkuZ2V0TW9udGgoKSA9PT0gZm9jdXNlZE1vbnRoIHx8XG4gICAgZGF5cy5sZW5ndGggJSA3ICE9PSAwXG4gICkge1xuICAgIGRheXMucHVzaChnZW5lcmF0ZURhdGVIdG1sKGRhdGVUb0Rpc3BsYXkpKTtcbiAgICBkYXRlVG9EaXNwbGF5ID0gYWRkRGF5cyhkYXRlVG9EaXNwbGF5LCAxKTtcbiAgfVxuXG4gIGNvbnN0IGRhdGVzR3JpZCA9IGxpc3RUb0dyaWRIdG1sKGRheXMsIDcpO1xuXG4gIGNvbnN0IG5ld0NhbGVuZGFyID0gY2FsZW5kYXJFbC5jbG9uZU5vZGUoKTtcbiAgbmV3Q2FsZW5kYXIuZGF0YXNldC52YWx1ZSA9IGN1cnJlbnRGb3JtYXR0ZWREYXRlO1xuICBuZXdDYWxlbmRhci5zdHlsZS50b3AgPSBgJHtkYXRlUGlja2VyRWwub2Zmc2V0SGVpZ2h0fXB4YDtcbiAgbmV3Q2FsZW5kYXIuaGlkZGVuID0gZmFsc2U7XG4gIG5ld0NhbGVuZGFyLmlubmVySFRNTCA9IFNhbml0aXplci5lc2NhcGVIVE1MYFxuICAgIDxkaXYgdGFiaW5kZXg9XCItMVwiIGNsYXNzPVwiJHtDQUxFTkRBUl9EQVRFX1BJQ0tFUl9DTEFTU31cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCIke0NBTEVOREFSX1JPV19DTEFTU31cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIiR7Q0FMRU5EQVJfQ0VMTF9DTEFTU30gJHtDQUxFTkRBUl9DRUxMX0NFTlRFUl9JVEVNU19DTEFTU31cIj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGNsYXNzPVwiJHtDQUxFTkRBUl9QUkVWSU9VU19ZRUFSX0NMQVNTfVwiXG4gICAgICAgICAgICBhcmlhLWxhYmVsPVwiTmF2aWdhdGUgYmFjayBvbmUgeWVhclwiXG4gICAgICAgICAgICAke3ByZXZCdXR0b25zRGlzYWJsZWQgPyBgZGlzYWJsZWQ9XCJkaXNhYmxlZFwiYCA6IFwiXCJ9XG4gICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIiR7Q0FMRU5EQVJfQ0VMTF9DTEFTU30gJHtDQUxFTkRBUl9DRUxMX0NFTlRFUl9JVEVNU19DTEFTU31cIj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGNsYXNzPVwiJHtDQUxFTkRBUl9QUkVWSU9VU19NT05USF9DTEFTU31cIlxuICAgICAgICAgICAgYXJpYS1sYWJlbD1cIk5hdmlnYXRlIGJhY2sgb25lIG1vbnRoXCJcbiAgICAgICAgICAgICR7cHJldkJ1dHRvbnNEaXNhYmxlZCA/IGBkaXNhYmxlZD1cImRpc2FibGVkXCJgIDogXCJcIn1cbiAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiJHtDQUxFTkRBUl9DRUxMX0NMQVNTfSAke0NBTEVOREFSX01PTlRIX0xBQkVMX0NMQVNTfVwiPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgY2xhc3M9XCIke0NBTEVOREFSX01PTlRIX1NFTEVDVElPTl9DTEFTU31cIiBhcmlhLWxhYmVsPVwiJHttb250aExhYmVsfS4gU2VsZWN0IG1vbnRoXCJcbiAgICAgICAgICA+JHttb250aExhYmVsfTwvYnV0dG9uPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgY2xhc3M9XCIke0NBTEVOREFSX1lFQVJfU0VMRUNUSU9OX0NMQVNTfVwiIGFyaWEtbGFiZWw9XCIke2ZvY3VzZWRZZWFyfS4gU2VsZWN0IHllYXJcIlxuICAgICAgICAgID4ke2ZvY3VzZWRZZWFyfTwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIiR7Q0FMRU5EQVJfQ0VMTF9DTEFTU30gJHtDQUxFTkRBUl9DRUxMX0NFTlRFUl9JVEVNU19DTEFTU31cIj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGNsYXNzPVwiJHtDQUxFTkRBUl9ORVhUX01PTlRIX0NMQVNTfVwiXG4gICAgICAgICAgICBhcmlhLWxhYmVsPVwiTmF2aWdhdGUgZm9yd2FyZCBvbmUgbW9udGhcIlxuICAgICAgICAgICAgJHtuZXh0QnV0dG9uc0Rpc2FibGVkID8gYGRpc2FibGVkPVwiZGlzYWJsZWRcImAgOiBcIlwifVxuICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCIke0NBTEVOREFSX0NFTExfQ0xBU1N9ICR7Q0FMRU5EQVJfQ0VMTF9DRU5URVJfSVRFTVNfQ0xBU1N9XCI+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBjbGFzcz1cIiR7Q0FMRU5EQVJfTkVYVF9ZRUFSX0NMQVNTfVwiXG4gICAgICAgICAgICBhcmlhLWxhYmVsPVwiTmF2aWdhdGUgZm9yd2FyZCBvbmUgeWVhclwiXG4gICAgICAgICAgICAke25leHRCdXR0b25zRGlzYWJsZWQgPyBgZGlzYWJsZWQ9XCJkaXNhYmxlZFwiYCA6IFwiXCJ9XG4gICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIGA7XG5cbiAgY29uc3QgdGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwidGFibGVcIik7XG4gIHRhYmxlLnNldEF0dHJpYnV0ZShcImNsYXNzXCIsIENBTEVOREFSX1RBQkxFX0NMQVNTKTtcblxuICBjb25zdCB0YWJsZUhlYWQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwidGhlYWRcIik7XG4gIHRhYmxlLmluc2VydEFkamFjZW50RWxlbWVudChcImJlZm9yZWVuZFwiLCB0YWJsZUhlYWQpO1xuICBjb25zdCB0YWJsZUhlYWRSb3cgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwidHJcIik7XG4gIHRhYmxlSGVhZC5pbnNlcnRBZGphY2VudEVsZW1lbnQoXCJiZWZvcmVlbmRcIiwgdGFibGVIZWFkUm93KTtcblxuICBjb25zdCBkYXlzT2ZXZWVrID0ge1xuICAgIFN1bmRheTogXCJTXCIsXG4gICAgTW9uZGF5OiBcIk1cIixcbiAgICBUdWVzZGF5OiBcIlRcIixcbiAgICBXZWRuZXNkYXk6IFwiV1wiLFxuICAgIFRodXJzZGF5OiBcIlRoXCIsXG4gICAgRnJpZGF5OiBcIkZyXCIsXG4gICAgU2F0dXJkYXk6IFwiU1wiLFxuICB9O1xuXG4gIE9iamVjdC5rZXlzKGRheXNPZldlZWspLmZvckVhY2goKGtleSkgPT4ge1xuICAgIGNvbnN0IHRoID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInRoXCIpO1xuICAgIHRoLnNldEF0dHJpYnV0ZShcImNsYXNzXCIsIENBTEVOREFSX0RBWV9PRl9XRUVLX0NMQVNTKTtcbiAgICB0aC5zZXRBdHRyaWJ1dGUoXCJzY29wZVwiLCBcImNvbFwiKTtcbiAgICB0aC5zZXRBdHRyaWJ1dGUoXCJhcmlhLWxhYmVsXCIsIGtleSk7XG4gICAgdGgudGV4dENvbnRlbnQgPSBkYXlzT2ZXZWVrW2tleV07XG4gICAgdGFibGVIZWFkUm93Lmluc2VydEFkamFjZW50RWxlbWVudChcImJlZm9yZWVuZFwiLCB0aCk7XG4gIH0pO1xuXG4gIGNvbnN0IHRhYmxlQm9keSA9IGNyZWF0ZVRhYmxlQm9keShkYXRlc0dyaWQpO1xuICB0YWJsZS5pbnNlcnRBZGphY2VudEVsZW1lbnQoXCJiZWZvcmVlbmRcIiwgdGFibGVCb2R5KTtcblxuICAvLyBDb250YWluZXIgZm9yIFllYXJzLCBNb250aHMsIGFuZCBEYXlzXG4gIGNvbnN0IGRhdGVQaWNrZXJDYWxlbmRhckNvbnRhaW5lciA9XG4gICAgbmV3Q2FsZW5kYXIucXVlcnlTZWxlY3RvcihDQUxFTkRBUl9EQVRFX1BJQ0tFUik7XG5cbiAgZGF0ZVBpY2tlckNhbGVuZGFyQ29udGFpbmVyLmluc2VydEFkamFjZW50RWxlbWVudChcImJlZm9yZWVuZFwiLCB0YWJsZSk7XG5cbiAgY2FsZW5kYXJFbC5wYXJlbnROb2RlLnJlcGxhY2VDaGlsZChuZXdDYWxlbmRhciwgY2FsZW5kYXJFbCk7XG5cbiAgZGF0ZVBpY2tlckVsLmNsYXNzTGlzdC5hZGQoREFURV9QSUNLRVJfQUNUSVZFX0NMQVNTKTtcblxuICBjb25zdCBzdGF0dXNlcyA9IFtdO1xuXG4gIGlmIChpc1NhbWVEYXkoc2VsZWN0ZWREYXRlLCBmb2N1c2VkRGF0ZSkpIHtcbiAgICBzdGF0dXNlcy5wdXNoKFwiU2VsZWN0ZWQgZGF0ZVwiKTtcbiAgfVxuXG4gIGlmIChjYWxlbmRhcldhc0hpZGRlbikge1xuICAgIHN0YXR1c2VzLnB1c2goXG4gICAgICBcIllvdSBjYW4gbmF2aWdhdGUgYnkgZGF5IHVzaW5nIGxlZnQgYW5kIHJpZ2h0IGFycm93c1wiLFxuICAgICAgXCJXZWVrcyBieSB1c2luZyB1cCBhbmQgZG93biBhcnJvd3NcIixcbiAgICAgIFwiTW9udGhzIGJ5IHVzaW5nIHBhZ2UgdXAgYW5kIHBhZ2UgZG93biBrZXlzXCIsXG4gICAgICBcIlllYXJzIGJ5IHVzaW5nIHNoaWZ0IHBsdXMgcGFnZSB1cCBhbmQgc2hpZnQgcGx1cyBwYWdlIGRvd25cIixcbiAgICAgIFwiSG9tZSBhbmQgZW5kIGtleXMgbmF2aWdhdGUgdG8gdGhlIGJlZ2lubmluZyBhbmQgZW5kIG9mIGEgd2Vla1wiLFxuICAgICk7XG4gICAgc3RhdHVzRWwudGV4dENvbnRlbnQgPSBcIlwiO1xuICB9IGVsc2Uge1xuICAgIHN0YXR1c2VzLnB1c2goYCR7bW9udGhMYWJlbH0gJHtmb2N1c2VkWWVhcn1gKTtcbiAgfVxuICBzdGF0dXNFbC50ZXh0Q29udGVudCA9IHN0YXR1c2VzLmpvaW4oXCIuIFwiKTtcblxuICByZXR1cm4gbmV3Q2FsZW5kYXI7XG59O1xuXG4vKipcbiAqIE5hdmlnYXRlIGJhY2sgb25lIHllYXIgYW5kIGRpc3BsYXkgdGhlIGNhbGVuZGFyLlxuICpcbiAqIEBwYXJhbSB7SFRNTEJ1dHRvbkVsZW1lbnR9IF9idXR0b25FbCBBbiBlbGVtZW50IHdpdGhpbiB0aGUgZGF0ZSBwaWNrZXIgY29tcG9uZW50XG4gKi9cbmNvbnN0IGRpc3BsYXlQcmV2aW91c1llYXIgPSAoX2J1dHRvbkVsKSA9PiB7XG4gIGlmIChfYnV0dG9uRWwuZGlzYWJsZWQpIHJldHVybjtcbiAgY29uc3QgeyBjYWxlbmRhckVsLCBjYWxlbmRhckRhdGUsIG1pbkRhdGUsIG1heERhdGUgfSA9XG4gICAgZ2V0RGF0ZVBpY2tlckNvbnRleHQoX2J1dHRvbkVsKTtcbiAgbGV0IGRhdGUgPSBzdWJZZWFycyhjYWxlbmRhckRhdGUsIDEpO1xuICBkYXRlID0ga2VlcERhdGVCZXR3ZWVuTWluQW5kTWF4KGRhdGUsIG1pbkRhdGUsIG1heERhdGUpO1xuICBjb25zdCBuZXdDYWxlbmRhciA9IHJlbmRlckNhbGVuZGFyKGNhbGVuZGFyRWwsIGRhdGUpO1xuXG4gIGxldCBuZXh0VG9Gb2N1cyA9IG5ld0NhbGVuZGFyLnF1ZXJ5U2VsZWN0b3IoQ0FMRU5EQVJfUFJFVklPVVNfWUVBUik7XG4gIGlmIChuZXh0VG9Gb2N1cy5kaXNhYmxlZCkge1xuICAgIG5leHRUb0ZvY3VzID0gbmV3Q2FsZW5kYXIucXVlcnlTZWxlY3RvcihDQUxFTkRBUl9EQVRFX1BJQ0tFUik7XG4gIH1cbiAgbmV4dFRvRm9jdXMuZm9jdXMoKTtcbn07XG5cbi8qKlxuICogTmF2aWdhdGUgYmFjayBvbmUgbW9udGggYW5kIGRpc3BsYXkgdGhlIGNhbGVuZGFyLlxuICpcbiAqIEBwYXJhbSB7SFRNTEJ1dHRvbkVsZW1lbnR9IF9idXR0b25FbCBBbiBlbGVtZW50IHdpdGhpbiB0aGUgZGF0ZSBwaWNrZXIgY29tcG9uZW50XG4gKi9cbmNvbnN0IGRpc3BsYXlQcmV2aW91c01vbnRoID0gKF9idXR0b25FbCkgPT4ge1xuICBpZiAoX2J1dHRvbkVsLmRpc2FibGVkKSByZXR1cm47XG4gIGNvbnN0IHsgY2FsZW5kYXJFbCwgY2FsZW5kYXJEYXRlLCBtaW5EYXRlLCBtYXhEYXRlIH0gPVxuICAgIGdldERhdGVQaWNrZXJDb250ZXh0KF9idXR0b25FbCk7XG4gIGxldCBkYXRlID0gc3ViTW9udGhzKGNhbGVuZGFyRGF0ZSwgMSk7XG4gIGRhdGUgPSBrZWVwRGF0ZUJldHdlZW5NaW5BbmRNYXgoZGF0ZSwgbWluRGF0ZSwgbWF4RGF0ZSk7XG4gIGNvbnN0IG5ld0NhbGVuZGFyID0gcmVuZGVyQ2FsZW5kYXIoY2FsZW5kYXJFbCwgZGF0ZSk7XG5cbiAgbGV0IG5leHRUb0ZvY3VzID0gbmV3Q2FsZW5kYXIucXVlcnlTZWxlY3RvcihDQUxFTkRBUl9QUkVWSU9VU19NT05USCk7XG4gIGlmIChuZXh0VG9Gb2N1cy5kaXNhYmxlZCkge1xuICAgIG5leHRUb0ZvY3VzID0gbmV3Q2FsZW5kYXIucXVlcnlTZWxlY3RvcihDQUxFTkRBUl9EQVRFX1BJQ0tFUik7XG4gIH1cbiAgbmV4dFRvRm9jdXMuZm9jdXMoKTtcbn07XG5cbi8qKlxuICogTmF2aWdhdGUgZm9yd2FyZCBvbmUgbW9udGggYW5kIGRpc3BsYXkgdGhlIGNhbGVuZGFyLlxuICpcbiAqIEBwYXJhbSB7SFRNTEJ1dHRvbkVsZW1lbnR9IF9idXR0b25FbCBBbiBlbGVtZW50IHdpdGhpbiB0aGUgZGF0ZSBwaWNrZXIgY29tcG9uZW50XG4gKi9cbmNvbnN0IGRpc3BsYXlOZXh0TW9udGggPSAoX2J1dHRvbkVsKSA9PiB7XG4gIGlmIChfYnV0dG9uRWwuZGlzYWJsZWQpIHJldHVybjtcbiAgY29uc3QgeyBjYWxlbmRhckVsLCBjYWxlbmRhckRhdGUsIG1pbkRhdGUsIG1heERhdGUgfSA9XG4gICAgZ2V0RGF0ZVBpY2tlckNvbnRleHQoX2J1dHRvbkVsKTtcbiAgbGV0IGRhdGUgPSBhZGRNb250aHMoY2FsZW5kYXJEYXRlLCAxKTtcbiAgZGF0ZSA9IGtlZXBEYXRlQmV0d2Vlbk1pbkFuZE1heChkYXRlLCBtaW5EYXRlLCBtYXhEYXRlKTtcbiAgY29uc3QgbmV3Q2FsZW5kYXIgPSByZW5kZXJDYWxlbmRhcihjYWxlbmRhckVsLCBkYXRlKTtcblxuICBsZXQgbmV4dFRvRm9jdXMgPSBuZXdDYWxlbmRhci5xdWVyeVNlbGVjdG9yKENBTEVOREFSX05FWFRfTU9OVEgpO1xuICBpZiAobmV4dFRvRm9jdXMuZGlzYWJsZWQpIHtcbiAgICBuZXh0VG9Gb2N1cyA9IG5ld0NhbGVuZGFyLnF1ZXJ5U2VsZWN0b3IoQ0FMRU5EQVJfREFURV9QSUNLRVIpO1xuICB9XG4gIG5leHRUb0ZvY3VzLmZvY3VzKCk7XG59O1xuXG4vKipcbiAqIE5hdmlnYXRlIGZvcndhcmQgb25lIHllYXIgYW5kIGRpc3BsYXkgdGhlIGNhbGVuZGFyLlxuICpcbiAqIEBwYXJhbSB7SFRNTEJ1dHRvbkVsZW1lbnR9IF9idXR0b25FbCBBbiBlbGVtZW50IHdpdGhpbiB0aGUgZGF0ZSBwaWNrZXIgY29tcG9uZW50XG4gKi9cbmNvbnN0IGRpc3BsYXlOZXh0WWVhciA9IChfYnV0dG9uRWwpID0+IHtcbiAgaWYgKF9idXR0b25FbC5kaXNhYmxlZCkgcmV0dXJuO1xuICBjb25zdCB7IGNhbGVuZGFyRWwsIGNhbGVuZGFyRGF0ZSwgbWluRGF0ZSwgbWF4RGF0ZSB9ID1cbiAgICBnZXREYXRlUGlja2VyQ29udGV4dChfYnV0dG9uRWwpO1xuICBsZXQgZGF0ZSA9IGFkZFllYXJzKGNhbGVuZGFyRGF0ZSwgMSk7XG4gIGRhdGUgPSBrZWVwRGF0ZUJldHdlZW5NaW5BbmRNYXgoZGF0ZSwgbWluRGF0ZSwgbWF4RGF0ZSk7XG4gIGNvbnN0IG5ld0NhbGVuZGFyID0gcmVuZGVyQ2FsZW5kYXIoY2FsZW5kYXJFbCwgZGF0ZSk7XG5cbiAgbGV0IG5leHRUb0ZvY3VzID0gbmV3Q2FsZW5kYXIucXVlcnlTZWxlY3RvcihDQUxFTkRBUl9ORVhUX1lFQVIpO1xuICBpZiAobmV4dFRvRm9jdXMuZGlzYWJsZWQpIHtcbiAgICBuZXh0VG9Gb2N1cyA9IG5ld0NhbGVuZGFyLnF1ZXJ5U2VsZWN0b3IoQ0FMRU5EQVJfREFURV9QSUNLRVIpO1xuICB9XG4gIG5leHRUb0ZvY3VzLmZvY3VzKCk7XG59O1xuXG4vKipcbiAqIEhpZGUgdGhlIGNhbGVuZGFyIG9mIGEgZGF0ZSBwaWNrZXIgY29tcG9uZW50LlxuICpcbiAqIEBwYXJhbSB7SFRNTEVsZW1lbnR9IGVsIEFuIGVsZW1lbnQgd2l0aGluIHRoZSBkYXRlIHBpY2tlciBjb21wb25lbnRcbiAqL1xuY29uc3QgaGlkZUNhbGVuZGFyID0gKGVsKSA9PiB7XG4gIGNvbnN0IHsgZGF0ZVBpY2tlckVsLCBjYWxlbmRhckVsLCBzdGF0dXNFbCB9ID0gZ2V0RGF0ZVBpY2tlckNvbnRleHQoZWwpO1xuXG4gIGRhdGVQaWNrZXJFbC5jbGFzc0xpc3QucmVtb3ZlKERBVEVfUElDS0VSX0FDVElWRV9DTEFTUyk7XG4gIGNhbGVuZGFyRWwuaGlkZGVuID0gdHJ1ZTtcbiAgc3RhdHVzRWwudGV4dENvbnRlbnQgPSBcIlwiO1xufTtcblxuLyoqXG4gKiBTZWxlY3QgYSBkYXRlIHdpdGhpbiB0aGUgZGF0ZSBwaWNrZXIgY29tcG9uZW50LlxuICpcbiAqIEBwYXJhbSB7SFRNTEJ1dHRvbkVsZW1lbnR9IGNhbGVuZGFyRGF0ZUVsIEEgZGF0ZSBlbGVtZW50IHdpdGhpbiB0aGUgZGF0ZSBwaWNrZXIgY29tcG9uZW50XG4gKi9cbmNvbnN0IHNlbGVjdERhdGUgPSAoY2FsZW5kYXJEYXRlRWwpID0+IHtcbiAgaWYgKGNhbGVuZGFyRGF0ZUVsLmRpc2FibGVkKSByZXR1cm47XG5cbiAgY29uc3QgeyBkYXRlUGlja2VyRWwsIGV4dGVybmFsSW5wdXRFbCB9ID1cbiAgICBnZXREYXRlUGlja2VyQ29udGV4dChjYWxlbmRhckRhdGVFbCk7XG5cbiAgc2V0Q2FsZW5kYXJWYWx1ZShjYWxlbmRhckRhdGVFbCwgY2FsZW5kYXJEYXRlRWwuZGF0YXNldC52YWx1ZSk7XG4gIGhpZGVDYWxlbmRhcihkYXRlUGlja2VyRWwpO1xuXG4gIGV4dGVybmFsSW5wdXRFbC5mb2N1cygpO1xufTtcblxuLyoqXG4gKiBUb2dnbGUgdGhlIGNhbGVuZGFyLlxuICpcbiAqIEBwYXJhbSB7SFRNTEJ1dHRvbkVsZW1lbnR9IGVsIEFuIGVsZW1lbnQgd2l0aGluIHRoZSBkYXRlIHBpY2tlciBjb21wb25lbnRcbiAqL1xuY29uc3QgdG9nZ2xlQ2FsZW5kYXIgPSAoZWwpID0+IHtcbiAgaWYgKGVsLmRpc2FibGVkIHx8IGVsLmhhc0F0dHJpYnV0ZShcImFyaWEtZGlzYWJsZWRcIikpIHJldHVybjtcbiAgY29uc3QgeyBjYWxlbmRhckVsLCBpbnB1dERhdGUsIG1pbkRhdGUsIG1heERhdGUsIGRlZmF1bHREYXRlIH0gPVxuICAgIGdldERhdGVQaWNrZXJDb250ZXh0KGVsKTtcblxuICBpZiAoY2FsZW5kYXJFbC5oaWRkZW4pIHtcbiAgICBjb25zdCBkYXRlVG9EaXNwbGF5ID0ga2VlcERhdGVCZXR3ZWVuTWluQW5kTWF4KFxuICAgICAgaW5wdXREYXRlIHx8IGRlZmF1bHREYXRlIHx8IHRvZGF5KCksXG4gICAgICBtaW5EYXRlLFxuICAgICAgbWF4RGF0ZSxcbiAgICApO1xuICAgIGNvbnN0IG5ld0NhbGVuZGFyID0gcmVuZGVyQ2FsZW5kYXIoY2FsZW5kYXJFbCwgZGF0ZVRvRGlzcGxheSk7XG4gICAgbmV3Q2FsZW5kYXIucXVlcnlTZWxlY3RvcihDQUxFTkRBUl9EQVRFX0ZPQ1VTRUQpLmZvY3VzKCk7XG4gIH0gZWxzZSB7XG4gICAgaGlkZUNhbGVuZGFyKGVsKTtcbiAgfVxufTtcblxuLyoqXG4gKiBVcGRhdGUgdGhlIGNhbGVuZGFyIHdoZW4gdmlzaWJsZS5cbiAqXG4gKiBAcGFyYW0ge0hUTUxFbGVtZW50fSBlbCBhbiBlbGVtZW50IHdpdGhpbiB0aGUgZGF0ZSBwaWNrZXJcbiAqL1xuY29uc3QgdXBkYXRlQ2FsZW5kYXJJZlZpc2libGUgPSAoZWwpID0+IHtcbiAgY29uc3QgeyBjYWxlbmRhckVsLCBpbnB1dERhdGUsIG1pbkRhdGUsIG1heERhdGUgfSA9IGdldERhdGVQaWNrZXJDb250ZXh0KGVsKTtcbiAgY29uc3QgY2FsZW5kYXJTaG93biA9ICFjYWxlbmRhckVsLmhpZGRlbjtcblxuICBpZiAoY2FsZW5kYXJTaG93biAmJiBpbnB1dERhdGUpIHtcbiAgICBjb25zdCBkYXRlVG9EaXNwbGF5ID0ga2VlcERhdGVCZXR3ZWVuTWluQW5kTWF4KGlucHV0RGF0ZSwgbWluRGF0ZSwgbWF4RGF0ZSk7XG4gICAgcmVuZGVyQ2FsZW5kYXIoY2FsZW5kYXJFbCwgZGF0ZVRvRGlzcGxheSk7XG4gIH1cbn07XG5cbi8vICNlbmRyZWdpb24gQ2FsZW5kYXIgLSBEYXRlIFNlbGVjdGlvbiBWaWV3XG5cbi8vICNyZWdpb24gQ2FsZW5kYXIgLSBNb250aCBTZWxlY3Rpb24gVmlld1xuLyoqXG4gKiBEaXNwbGF5IHRoZSBtb250aCBzZWxlY3Rpb24gc2NyZWVuIGluIHRoZSBkYXRlIHBpY2tlci5cbiAqXG4gKiBAcGFyYW0ge0hUTUxCdXR0b25FbGVtZW50fSBlbCBBbiBlbGVtZW50IHdpdGhpbiB0aGUgZGF0ZSBwaWNrZXIgY29tcG9uZW50XG4gKiBAcmV0dXJucyB7SFRNTEVsZW1lbnR9IGEgcmVmZXJlbmNlIHRvIHRoZSBuZXcgY2FsZW5kYXIgZWxlbWVudFxuICovXG5jb25zdCBkaXNwbGF5TW9udGhTZWxlY3Rpb24gPSAoZWwsIG1vbnRoVG9EaXNwbGF5KSA9PiB7XG4gIGNvbnN0IHsgY2FsZW5kYXJFbCwgc3RhdHVzRWwsIGNhbGVuZGFyRGF0ZSwgbWluRGF0ZSwgbWF4RGF0ZSB9ID1cbiAgICBnZXREYXRlUGlja2VyQ29udGV4dChlbCk7XG5cbiAgY29uc3Qgc2VsZWN0ZWRNb250aCA9IGNhbGVuZGFyRGF0ZS5nZXRNb250aCgpO1xuICBjb25zdCBmb2N1c2VkTW9udGggPSBtb250aFRvRGlzcGxheSA9PSBudWxsID8gc2VsZWN0ZWRNb250aCA6IG1vbnRoVG9EaXNwbGF5O1xuXG4gIGNvbnN0IG1vbnRocyA9IE1PTlRIX0xBQkVMUy5tYXAoKG1vbnRoLCBpbmRleCkgPT4ge1xuICAgIGNvbnN0IG1vbnRoVG9DaGVjayA9IHNldE1vbnRoKGNhbGVuZGFyRGF0ZSwgaW5kZXgpO1xuXG4gICAgY29uc3QgaXNEaXNhYmxlZCA9IGlzRGF0ZXNNb250aE91dHNpZGVNaW5Pck1heChcbiAgICAgIG1vbnRoVG9DaGVjayxcbiAgICAgIG1pbkRhdGUsXG4gICAgICBtYXhEYXRlLFxuICAgICk7XG5cbiAgICBsZXQgdGFiaW5kZXggPSBcIi0xXCI7XG5cbiAgICBjb25zdCBjbGFzc2VzID0gW0NBTEVOREFSX01PTlRIX0NMQVNTXTtcbiAgICBjb25zdCBpc1NlbGVjdGVkID0gaW5kZXggPT09IHNlbGVjdGVkTW9udGg7XG5cbiAgICBpZiAoaW5kZXggPT09IGZvY3VzZWRNb250aCkge1xuICAgICAgdGFiaW5kZXggPSBcIjBcIjtcbiAgICAgIGNsYXNzZXMucHVzaChDQUxFTkRBUl9NT05USF9GT0NVU0VEX0NMQVNTKTtcbiAgICB9XG5cbiAgICBpZiAoaXNTZWxlY3RlZCkge1xuICAgICAgY2xhc3Nlcy5wdXNoKENBTEVOREFSX01PTlRIX1NFTEVDVEVEX0NMQVNTKTtcbiAgICB9XG5cbiAgICBjb25zdCBidG4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiYnV0dG9uXCIpO1xuICAgIGJ0bi5zZXRBdHRyaWJ1dGUoXCJ0eXBlXCIsIFwiYnV0dG9uXCIpO1xuICAgIGJ0bi5zZXRBdHRyaWJ1dGUoXCJ0YWJpbmRleFwiLCB0YWJpbmRleCk7XG4gICAgYnRuLnNldEF0dHJpYnV0ZShcImNsYXNzXCIsIGNsYXNzZXMuam9pbihcIiBcIikpO1xuICAgIGJ0bi5zZXRBdHRyaWJ1dGUoXCJkYXRhLXZhbHVlXCIsIGluZGV4KTtcbiAgICBidG4uc2V0QXR0cmlidXRlKFwiZGF0YS1sYWJlbFwiLCBtb250aCk7XG4gICAgYnRuLnNldEF0dHJpYnV0ZShcImFyaWEtc2VsZWN0ZWRcIiwgaXNTZWxlY3RlZCA/IFwidHJ1ZVwiIDogXCJmYWxzZVwiKTtcbiAgICBpZiAoaXNEaXNhYmxlZCA9PT0gdHJ1ZSkge1xuICAgICAgYnRuLmRpc2FibGVkID0gdHJ1ZTtcbiAgICB9XG4gICAgYnRuLnRleHRDb250ZW50ID0gbW9udGg7XG5cbiAgICByZXR1cm4gYnRuO1xuICB9KTtcblxuICBjb25zdCBtb250aHNIdG1sID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcbiAgbW9udGhzSHRtbC5zZXRBdHRyaWJ1dGUoXCJ0YWJpbmRleFwiLCBcIi0xXCIpO1xuICBtb250aHNIdG1sLnNldEF0dHJpYnV0ZShcImNsYXNzXCIsIENBTEVOREFSX01PTlRIX1BJQ0tFUl9DTEFTUyk7XG5cbiAgY29uc3QgdGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwidGFibGVcIik7XG4gIHRhYmxlLnNldEF0dHJpYnV0ZShcImNsYXNzXCIsIENBTEVOREFSX1RBQkxFX0NMQVNTKTtcbiAgdGFibGUuc2V0QXR0cmlidXRlKFwicm9sZVwiLCBcInByZXNlbnRhdGlvblwiKTtcblxuICBjb25zdCBtb250aHNHcmlkID0gbGlzdFRvR3JpZEh0bWwobW9udGhzLCAzKTtcbiAgY29uc3QgdGFibGVCb2R5ID0gY3JlYXRlVGFibGVCb2R5KG1vbnRoc0dyaWQpO1xuICB0YWJsZS5pbnNlcnRBZGphY2VudEVsZW1lbnQoXCJiZWZvcmVlbmRcIiwgdGFibGVCb2R5KTtcbiAgbW9udGhzSHRtbC5pbnNlcnRBZGphY2VudEVsZW1lbnQoXCJiZWZvcmVlbmRcIiwgdGFibGUpO1xuXG4gIGNvbnN0IG5ld0NhbGVuZGFyID0gY2FsZW5kYXJFbC5jbG9uZU5vZGUoKTtcbiAgbmV3Q2FsZW5kYXIuaW5zZXJ0QWRqYWNlbnRFbGVtZW50KFwiYmVmb3JlZW5kXCIsIG1vbnRoc0h0bWwpO1xuICBjYWxlbmRhckVsLnBhcmVudE5vZGUucmVwbGFjZUNoaWxkKG5ld0NhbGVuZGFyLCBjYWxlbmRhckVsKTtcblxuICBzdGF0dXNFbC50ZXh0Q29udGVudCA9IFwiU2VsZWN0IGEgbW9udGguXCI7XG5cbiAgcmV0dXJuIG5ld0NhbGVuZGFyO1xufTtcblxuLyoqXG4gKiBTZWxlY3QgYSBtb250aCBpbiB0aGUgZGF0ZSBwaWNrZXIgY29tcG9uZW50LlxuICpcbiAqIEBwYXJhbSB7SFRNTEJ1dHRvbkVsZW1lbnR9IG1vbnRoRWwgQW4gbW9udGggZWxlbWVudCB3aXRoaW4gdGhlIGRhdGUgcGlja2VyIGNvbXBvbmVudFxuICovXG5jb25zdCBzZWxlY3RNb250aCA9IChtb250aEVsKSA9PiB7XG4gIGlmIChtb250aEVsLmRpc2FibGVkKSByZXR1cm47XG4gIGNvbnN0IHsgY2FsZW5kYXJFbCwgY2FsZW5kYXJEYXRlLCBtaW5EYXRlLCBtYXhEYXRlIH0gPVxuICAgIGdldERhdGVQaWNrZXJDb250ZXh0KG1vbnRoRWwpO1xuICBjb25zdCBzZWxlY3RlZE1vbnRoID0gcGFyc2VJbnQobW9udGhFbC5kYXRhc2V0LnZhbHVlLCAxMCk7XG4gIGxldCBkYXRlID0gc2V0TW9udGgoY2FsZW5kYXJEYXRlLCBzZWxlY3RlZE1vbnRoKTtcbiAgZGF0ZSA9IGtlZXBEYXRlQmV0d2Vlbk1pbkFuZE1heChkYXRlLCBtaW5EYXRlLCBtYXhEYXRlKTtcbiAgY29uc3QgbmV3Q2FsZW5kYXIgPSByZW5kZXJDYWxlbmRhcihjYWxlbmRhckVsLCBkYXRlKTtcbiAgbmV3Q2FsZW5kYXIucXVlcnlTZWxlY3RvcihDQUxFTkRBUl9EQVRFX0ZPQ1VTRUQpLmZvY3VzKCk7XG59O1xuXG4vLyAjZW5kcmVnaW9uIENhbGVuZGFyIC0gTW9udGggU2VsZWN0aW9uIFZpZXdcblxuLy8gI3JlZ2lvbiBDYWxlbmRhciAtIFllYXIgU2VsZWN0aW9uIFZpZXdcblxuLyoqXG4gKiBEaXNwbGF5IHRoZSB5ZWFyIHNlbGVjdGlvbiBzY3JlZW4gaW4gdGhlIGRhdGUgcGlja2VyLlxuICpcbiAqIEBwYXJhbSB7SFRNTEJ1dHRvbkVsZW1lbnR9IGVsIEFuIGVsZW1lbnQgd2l0aGluIHRoZSBkYXRlIHBpY2tlciBjb21wb25lbnRcbiAqIEBwYXJhbSB7bnVtYmVyfSB5ZWFyVG9EaXNwbGF5IHllYXIgdG8gZGlzcGxheSBpbiB5ZWFyIHNlbGVjdGlvblxuICogQHJldHVybnMge0hUTUxFbGVtZW50fSBhIHJlZmVyZW5jZSB0byB0aGUgbmV3IGNhbGVuZGFyIGVsZW1lbnRcbiAqL1xuY29uc3QgZGlzcGxheVllYXJTZWxlY3Rpb24gPSAoZWwsIHllYXJUb0Rpc3BsYXkpID0+IHtcbiAgY29uc3QgeyBjYWxlbmRhckVsLCBzdGF0dXNFbCwgY2FsZW5kYXJEYXRlLCBtaW5EYXRlLCBtYXhEYXRlIH0gPVxuICAgIGdldERhdGVQaWNrZXJDb250ZXh0KGVsKTtcblxuICBjb25zdCBzZWxlY3RlZFllYXIgPSBjYWxlbmRhckRhdGUuZ2V0RnVsbFllYXIoKTtcbiAgY29uc3QgZm9jdXNlZFllYXIgPSB5ZWFyVG9EaXNwbGF5ID09IG51bGwgPyBzZWxlY3RlZFllYXIgOiB5ZWFyVG9EaXNwbGF5O1xuXG4gIGxldCB5ZWFyVG9DaHVuayA9IGZvY3VzZWRZZWFyO1xuICB5ZWFyVG9DaHVuayAtPSB5ZWFyVG9DaHVuayAlIFlFQVJfQ0hVTks7XG4gIHllYXJUb0NodW5rID0gTWF0aC5tYXgoMCwgeWVhclRvQ2h1bmspO1xuXG4gIGNvbnN0IHByZXZZZWFyQ2h1bmtEaXNhYmxlZCA9IGlzRGF0ZXNZZWFyT3V0c2lkZU1pbk9yTWF4KFxuICAgIHNldFllYXIoY2FsZW5kYXJEYXRlLCB5ZWFyVG9DaHVuayAtIDEpLFxuICAgIG1pbkRhdGUsXG4gICAgbWF4RGF0ZSxcbiAgKTtcblxuICBjb25zdCBuZXh0WWVhckNodW5rRGlzYWJsZWQgPSBpc0RhdGVzWWVhck91dHNpZGVNaW5Pck1heChcbiAgICBzZXRZZWFyKGNhbGVuZGFyRGF0ZSwgeWVhclRvQ2h1bmsgKyBZRUFSX0NIVU5LKSxcbiAgICBtaW5EYXRlLFxuICAgIG1heERhdGUsXG4gICk7XG5cbiAgY29uc3QgeWVhcnMgPSBbXTtcbiAgbGV0IHllYXJJbmRleCA9IHllYXJUb0NodW5rO1xuICB3aGlsZSAoeWVhcnMubGVuZ3RoIDwgWUVBUl9DSFVOSykge1xuICAgIGNvbnN0IGlzRGlzYWJsZWQgPSBpc0RhdGVzWWVhck91dHNpZGVNaW5Pck1heChcbiAgICAgIHNldFllYXIoY2FsZW5kYXJEYXRlLCB5ZWFySW5kZXgpLFxuICAgICAgbWluRGF0ZSxcbiAgICAgIG1heERhdGUsXG4gICAgKTtcblxuICAgIGxldCB0YWJpbmRleCA9IFwiLTFcIjtcblxuICAgIGNvbnN0IGNsYXNzZXMgPSBbQ0FMRU5EQVJfWUVBUl9DTEFTU107XG4gICAgY29uc3QgaXNTZWxlY3RlZCA9IHllYXJJbmRleCA9PT0gc2VsZWN0ZWRZZWFyO1xuXG4gICAgaWYgKHllYXJJbmRleCA9PT0gZm9jdXNlZFllYXIpIHtcbiAgICAgIHRhYmluZGV4ID0gXCIwXCI7XG4gICAgICBjbGFzc2VzLnB1c2goQ0FMRU5EQVJfWUVBUl9GT0NVU0VEX0NMQVNTKTtcbiAgICB9XG5cbiAgICBpZiAoaXNTZWxlY3RlZCkge1xuICAgICAgY2xhc3Nlcy5wdXNoKENBTEVOREFSX1lFQVJfU0VMRUNURURfQ0xBU1MpO1xuICAgIH1cblxuICAgIGNvbnN0IGJ0biA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJidXR0b25cIik7XG4gICAgYnRuLnNldEF0dHJpYnV0ZShcInR5cGVcIiwgXCJidXR0b25cIik7XG4gICAgYnRuLnNldEF0dHJpYnV0ZShcInRhYmluZGV4XCIsIHRhYmluZGV4KTtcbiAgICBidG4uc2V0QXR0cmlidXRlKFwiY2xhc3NcIiwgY2xhc3Nlcy5qb2luKFwiIFwiKSk7XG4gICAgYnRuLnNldEF0dHJpYnV0ZShcImRhdGEtdmFsdWVcIiwgeWVhckluZGV4KTtcbiAgICBidG4uc2V0QXR0cmlidXRlKFwiYXJpYS1zZWxlY3RlZFwiLCBpc1NlbGVjdGVkID8gXCJ0cnVlXCIgOiBcImZhbHNlXCIpO1xuICAgIGlmIChpc0Rpc2FibGVkID09PSB0cnVlKSB7XG4gICAgICBidG4uZGlzYWJsZWQgPSB0cnVlO1xuICAgIH1cbiAgICBidG4udGV4dENvbnRlbnQgPSB5ZWFySW5kZXg7XG5cbiAgICB5ZWFycy5wdXNoKGJ0bik7XG4gICAgeWVhckluZGV4ICs9IDE7XG4gIH1cblxuICBjb25zdCBuZXdDYWxlbmRhciA9IGNhbGVuZGFyRWwuY2xvbmVOb2RlKCk7XG5cbiAgLy8gY3JlYXRlIHRoZSB5ZWFycyBjYWxlbmRhciB3cmFwcGVyXG4gIGNvbnN0IHllYXJzQ2FsZW5kYXJXcmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcbiAgeWVhcnNDYWxlbmRhcldyYXBwZXIuc2V0QXR0cmlidXRlKFwidGFiaW5kZXhcIiwgXCItMVwiKTtcbiAgeWVhcnNDYWxlbmRhcldyYXBwZXIuc2V0QXR0cmlidXRlKFwiY2xhc3NcIiwgQ0FMRU5EQVJfWUVBUl9QSUNLRVJfQ0xBU1MpO1xuXG4gIC8vIGNyZWF0ZSB0YWJsZSBwYXJlbnRcbiAgY29uc3QgeWVhcnNUYWJsZVBhcmVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJ0YWJsZVwiKTtcbiAgeWVhcnNUYWJsZVBhcmVudC5zZXRBdHRyaWJ1dGUoXCJjbGFzc1wiLCBDQUxFTkRBUl9UQUJMRV9DTEFTUyk7XG5cbiAgLy8gY3JlYXRlIHRhYmxlIGJvZHkgYW5kIHRhYmxlIHJvd1xuICBjb25zdCB5ZWFyc0hUTUxUYWJsZUJvZHkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwidGJvZHlcIik7XG4gIGNvbnN0IHllYXJzSFRNTFRhYmxlQm9keVJvdyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJ0clwiKTtcblxuICAvLyBjcmVhdGUgcHJldmlvdXMgYnV0dG9uXG4gIGNvbnN0IHByZXZpb3VzWWVhcnNCdG4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiYnV0dG9uXCIpO1xuICBwcmV2aW91c1llYXJzQnRuLnNldEF0dHJpYnV0ZShcInR5cGVcIiwgXCJidXR0b25cIik7XG4gIHByZXZpb3VzWWVhcnNCdG4uc2V0QXR0cmlidXRlKFwiY2xhc3NcIiwgQ0FMRU5EQVJfUFJFVklPVVNfWUVBUl9DSFVOS19DTEFTUyk7XG4gIHByZXZpb3VzWWVhcnNCdG4uc2V0QXR0cmlidXRlKFxuICAgIFwiYXJpYS1sYWJlbFwiLFxuICAgIGBOYXZpZ2F0ZSBiYWNrICR7WUVBUl9DSFVOS30geWVhcnNgLFxuICApO1xuICBpZiAocHJldlllYXJDaHVua0Rpc2FibGVkID09PSB0cnVlKSB7XG4gICAgcHJldmlvdXNZZWFyc0J0bi5kaXNhYmxlZCA9IHRydWU7XG4gIH1cbiAgcHJldmlvdXNZZWFyc0J0bi5pbm5lckhUTUwgPSBTYW5pdGl6ZXIuZXNjYXBlSFRNTGAmbmJzcGA7XG5cbiAgLy8gY3JlYXRlIG5leHQgYnV0dG9uXG4gIGNvbnN0IG5leHRZZWFyc0J0biA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJidXR0b25cIik7XG4gIG5leHRZZWFyc0J0bi5zZXRBdHRyaWJ1dGUoXCJ0eXBlXCIsIFwiYnV0dG9uXCIpO1xuICBuZXh0WWVhcnNCdG4uc2V0QXR0cmlidXRlKFwiY2xhc3NcIiwgQ0FMRU5EQVJfTkVYVF9ZRUFSX0NIVU5LX0NMQVNTKTtcbiAgbmV4dFllYXJzQnRuLnNldEF0dHJpYnV0ZShcbiAgICBcImFyaWEtbGFiZWxcIixcbiAgICBgTmF2aWdhdGUgZm9yd2FyZCAke1lFQVJfQ0hVTkt9IHllYXJzYCxcbiAgKTtcbiAgaWYgKG5leHRZZWFyQ2h1bmtEaXNhYmxlZCA9PT0gdHJ1ZSkge1xuICAgIG5leHRZZWFyc0J0bi5kaXNhYmxlZCA9IHRydWU7XG4gIH1cbiAgbmV4dFllYXJzQnRuLmlubmVySFRNTCA9IFNhbml0aXplci5lc2NhcGVIVE1MYCZuYnNwYDtcblxuICAvLyBjcmVhdGUgdGhlIGFjdHVhbCB5ZWFycyB0YWJsZVxuICBjb25zdCB5ZWFyc1RhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInRhYmxlXCIpO1xuICB5ZWFyc1RhYmxlLnNldEF0dHJpYnV0ZShcImNsYXNzXCIsIENBTEVOREFSX1RBQkxFX0NMQVNTKTtcbiAgeWVhcnNUYWJsZS5zZXRBdHRyaWJ1dGUoXCJyb2xlXCIsIFwicHJlc2VudGF0aW9uXCIpO1xuXG4gIC8vIGNyZWF0ZSB0aGUgeWVhcnMgY2hpbGQgdGFibGVcbiAgY29uc3QgeWVhcnNHcmlkID0gbGlzdFRvR3JpZEh0bWwoeWVhcnMsIDMpO1xuICBjb25zdCB5ZWFyc1RhYmxlQm9keSA9IGNyZWF0ZVRhYmxlQm9keSh5ZWFyc0dyaWQpO1xuXG4gIC8vIGFwcGVuZCB0aGUgZ3JpZCB0byB0aGUgeWVhcnMgY2hpbGQgdGFibGVcbiAgeWVhcnNUYWJsZS5pbnNlcnRBZGphY2VudEVsZW1lbnQoXCJiZWZvcmVlbmRcIiwgeWVhcnNUYWJsZUJvZHkpO1xuXG4gIC8vIGNyZWF0ZSB0aGUgcHJldiBidXR0b24gdGQgYW5kIGFwcGVuZCB0aGUgcHJldiBidXR0b25cbiAgY29uc3QgeWVhcnNIVE1MVGFibGVCb2R5RGV0YWlsUHJldiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJ0ZFwiKTtcbiAgeWVhcnNIVE1MVGFibGVCb2R5RGV0YWlsUHJldi5pbnNlcnRBZGphY2VudEVsZW1lbnQoXG4gICAgXCJiZWZvcmVlbmRcIixcbiAgICBwcmV2aW91c1llYXJzQnRuLFxuICApO1xuXG4gIC8vIGNyZWF0ZSB0aGUgeWVhcnMgdGQgYW5kIGFwcGVuZCB0aGUgeWVhcnMgY2hpbGQgdGFibGVcbiAgY29uc3QgeWVhcnNIVE1MVGFibGVCb2R5WWVhcnNEZXRhaWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwidGRcIik7XG4gIHllYXJzSFRNTFRhYmxlQm9keVllYXJzRGV0YWlsLnNldEF0dHJpYnV0ZShcImNvbHNwYW5cIiwgXCIzXCIpO1xuICB5ZWFyc0hUTUxUYWJsZUJvZHlZZWFyc0RldGFpbC5pbnNlcnRBZGphY2VudEVsZW1lbnQoXCJiZWZvcmVlbmRcIiwgeWVhcnNUYWJsZSk7XG5cbiAgLy8gY3JlYXRlIHRoZSBuZXh0IGJ1dHRvbiB0ZCBhbmQgYXBwZW5kIHRoZSBuZXh0IGJ1dHRvblxuICBjb25zdCB5ZWFyc0hUTUxUYWJsZUJvZHlEZXRhaWxOZXh0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInRkXCIpO1xuICB5ZWFyc0hUTUxUYWJsZUJvZHlEZXRhaWxOZXh0Lmluc2VydEFkamFjZW50RWxlbWVudChcImJlZm9yZWVuZFwiLCBuZXh0WWVhcnNCdG4pO1xuXG4gIC8vIGFwcGVuZCB0aGUgdGhyZWUgdGQgdG8gdGhlIHllYXJzIGNoaWxkIHRhYmxlIHJvd1xuICB5ZWFyc0hUTUxUYWJsZUJvZHlSb3cuaW5zZXJ0QWRqYWNlbnRFbGVtZW50KFxuICAgIFwiYmVmb3JlZW5kXCIsXG4gICAgeWVhcnNIVE1MVGFibGVCb2R5RGV0YWlsUHJldixcbiAgKTtcbiAgeWVhcnNIVE1MVGFibGVCb2R5Um93Lmluc2VydEFkamFjZW50RWxlbWVudChcbiAgICBcImJlZm9yZWVuZFwiLFxuICAgIHllYXJzSFRNTFRhYmxlQm9keVllYXJzRGV0YWlsLFxuICApO1xuICB5ZWFyc0hUTUxUYWJsZUJvZHlSb3cuaW5zZXJ0QWRqYWNlbnRFbGVtZW50KFxuICAgIFwiYmVmb3JlZW5kXCIsXG4gICAgeWVhcnNIVE1MVGFibGVCb2R5RGV0YWlsTmV4dCxcbiAgKTtcblxuICAvLyBhcHBlbmQgdGhlIHRhYmxlIHJvdyB0byB0aGUgeWVhcnMgY2hpbGQgdGFibGUgYm9keVxuICB5ZWFyc0hUTUxUYWJsZUJvZHkuaW5zZXJ0QWRqYWNlbnRFbGVtZW50KFwiYmVmb3JlZW5kXCIsIHllYXJzSFRNTFRhYmxlQm9keVJvdyk7XG5cbiAgLy8gYXBwZW5kIHRoZSB5ZWFycyB0YWJsZSBib2R5IHRvIHRoZSB5ZWFycyBwYXJlbnQgdGFibGVcbiAgeWVhcnNUYWJsZVBhcmVudC5pbnNlcnRBZGphY2VudEVsZW1lbnQoXCJiZWZvcmVlbmRcIiwgeWVhcnNIVE1MVGFibGVCb2R5KTtcblxuICAvLyBhcHBlbmQgdGhlIHBhcmVudCB0YWJsZSB0byB0aGUgY2FsZW5kYXIgd3JhcHBlclxuICB5ZWFyc0NhbGVuZGFyV3JhcHBlci5pbnNlcnRBZGphY2VudEVsZW1lbnQoXCJiZWZvcmVlbmRcIiwgeWVhcnNUYWJsZVBhcmVudCk7XG5cbiAgLy8gYXBwZW5kIHRoZSB5ZWFycyBjYWxlbmRlciB0byB0aGUgbmV3IGNhbGVuZGFyXG4gIG5ld0NhbGVuZGFyLmluc2VydEFkamFjZW50RWxlbWVudChcImJlZm9yZWVuZFwiLCB5ZWFyc0NhbGVuZGFyV3JhcHBlcik7XG5cbiAgLy8gcmVwbGFjZSBjYWxlbmRhclxuICBjYWxlbmRhckVsLnBhcmVudE5vZGUucmVwbGFjZUNoaWxkKG5ld0NhbGVuZGFyLCBjYWxlbmRhckVsKTtcblxuICBzdGF0dXNFbC50ZXh0Q29udGVudCA9IFNhbml0aXplci5lc2NhcGVIVE1MYFNob3dpbmcgeWVhcnMgJHt5ZWFyVG9DaHVua30gdG8gJHtcbiAgICB5ZWFyVG9DaHVuayArIFlFQVJfQ0hVTksgLSAxXG4gIH0uIFNlbGVjdCBhIHllYXIuYDtcblxuICByZXR1cm4gbmV3Q2FsZW5kYXI7XG59O1xuXG4vKipcbiAqIE5hdmlnYXRlIGJhY2sgYnkgeWVhcnMgYW5kIGRpc3BsYXkgdGhlIHllYXIgc2VsZWN0aW9uIHNjcmVlbi5cbiAqXG4gKiBAcGFyYW0ge0hUTUxCdXR0b25FbGVtZW50fSBlbCBBbiBlbGVtZW50IHdpdGhpbiB0aGUgZGF0ZSBwaWNrZXIgY29tcG9uZW50XG4gKi9cbmNvbnN0IGRpc3BsYXlQcmV2aW91c1llYXJDaHVuayA9IChlbCkgPT4ge1xuICBpZiAoZWwuZGlzYWJsZWQpIHJldHVybjtcblxuICBjb25zdCB7IGNhbGVuZGFyRWwsIGNhbGVuZGFyRGF0ZSwgbWluRGF0ZSwgbWF4RGF0ZSB9ID1cbiAgICBnZXREYXRlUGlja2VyQ29udGV4dChlbCk7XG4gIGNvbnN0IHllYXJFbCA9IGNhbGVuZGFyRWwucXVlcnlTZWxlY3RvcihDQUxFTkRBUl9ZRUFSX0ZPQ1VTRUQpO1xuICBjb25zdCBzZWxlY3RlZFllYXIgPSBwYXJzZUludCh5ZWFyRWwudGV4dENvbnRlbnQsIDEwKTtcblxuICBsZXQgYWRqdXN0ZWRZZWFyID0gc2VsZWN0ZWRZZWFyIC0gWUVBUl9DSFVOSztcbiAgYWRqdXN0ZWRZZWFyID0gTWF0aC5tYXgoMCwgYWRqdXN0ZWRZZWFyKTtcblxuICBjb25zdCBkYXRlID0gc2V0WWVhcihjYWxlbmRhckRhdGUsIGFkanVzdGVkWWVhcik7XG4gIGNvbnN0IGNhcHBlZERhdGUgPSBrZWVwRGF0ZUJldHdlZW5NaW5BbmRNYXgoZGF0ZSwgbWluRGF0ZSwgbWF4RGF0ZSk7XG4gIGNvbnN0IG5ld0NhbGVuZGFyID0gZGlzcGxheVllYXJTZWxlY3Rpb24oXG4gICAgY2FsZW5kYXJFbCxcbiAgICBjYXBwZWREYXRlLmdldEZ1bGxZZWFyKCksXG4gICk7XG5cbiAgbGV0IG5leHRUb0ZvY3VzID0gbmV3Q2FsZW5kYXIucXVlcnlTZWxlY3RvcihDQUxFTkRBUl9QUkVWSU9VU19ZRUFSX0NIVU5LKTtcbiAgaWYgKG5leHRUb0ZvY3VzLmRpc2FibGVkKSB7XG4gICAgbmV4dFRvRm9jdXMgPSBuZXdDYWxlbmRhci5xdWVyeVNlbGVjdG9yKENBTEVOREFSX1lFQVJfUElDS0VSKTtcbiAgfVxuICBuZXh0VG9Gb2N1cy5mb2N1cygpO1xufTtcblxuLyoqXG4gKiBOYXZpZ2F0ZSBmb3J3YXJkIGJ5IHllYXJzIGFuZCBkaXNwbGF5IHRoZSB5ZWFyIHNlbGVjdGlvbiBzY3JlZW4uXG4gKlxuICogQHBhcmFtIHtIVE1MQnV0dG9uRWxlbWVudH0gZWwgQW4gZWxlbWVudCB3aXRoaW4gdGhlIGRhdGUgcGlja2VyIGNvbXBvbmVudFxuICovXG5jb25zdCBkaXNwbGF5TmV4dFllYXJDaHVuayA9IChlbCkgPT4ge1xuICBpZiAoZWwuZGlzYWJsZWQpIHJldHVybjtcblxuICBjb25zdCB7IGNhbGVuZGFyRWwsIGNhbGVuZGFyRGF0ZSwgbWluRGF0ZSwgbWF4RGF0ZSB9ID1cbiAgICBnZXREYXRlUGlja2VyQ29udGV4dChlbCk7XG4gIGNvbnN0IHllYXJFbCA9IGNhbGVuZGFyRWwucXVlcnlTZWxlY3RvcihDQUxFTkRBUl9ZRUFSX0ZPQ1VTRUQpO1xuICBjb25zdCBzZWxlY3RlZFllYXIgPSBwYXJzZUludCh5ZWFyRWwudGV4dENvbnRlbnQsIDEwKTtcblxuICBsZXQgYWRqdXN0ZWRZZWFyID0gc2VsZWN0ZWRZZWFyICsgWUVBUl9DSFVOSztcbiAgYWRqdXN0ZWRZZWFyID0gTWF0aC5tYXgoMCwgYWRqdXN0ZWRZZWFyKTtcblxuICBjb25zdCBkYXRlID0gc2V0WWVhcihjYWxlbmRhckRhdGUsIGFkanVzdGVkWWVhcik7XG4gIGNvbnN0IGNhcHBlZERhdGUgPSBrZWVwRGF0ZUJldHdlZW5NaW5BbmRNYXgoZGF0ZSwgbWluRGF0ZSwgbWF4RGF0ZSk7XG4gIGNvbnN0IG5ld0NhbGVuZGFyID0gZGlzcGxheVllYXJTZWxlY3Rpb24oXG4gICAgY2FsZW5kYXJFbCxcbiAgICBjYXBwZWREYXRlLmdldEZ1bGxZZWFyKCksXG4gICk7XG5cbiAgbGV0IG5leHRUb0ZvY3VzID0gbmV3Q2FsZW5kYXIucXVlcnlTZWxlY3RvcihDQUxFTkRBUl9ORVhUX1lFQVJfQ0hVTkspO1xuICBpZiAobmV4dFRvRm9jdXMuZGlzYWJsZWQpIHtcbiAgICBuZXh0VG9Gb2N1cyA9IG5ld0NhbGVuZGFyLnF1ZXJ5U2VsZWN0b3IoQ0FMRU5EQVJfWUVBUl9QSUNLRVIpO1xuICB9XG4gIG5leHRUb0ZvY3VzLmZvY3VzKCk7XG59O1xuXG4vKipcbiAqIFNlbGVjdCBhIHllYXIgaW4gdGhlIGRhdGUgcGlja2VyIGNvbXBvbmVudC5cbiAqXG4gKiBAcGFyYW0ge0hUTUxCdXR0b25FbGVtZW50fSB5ZWFyRWwgQSB5ZWFyIGVsZW1lbnQgd2l0aGluIHRoZSBkYXRlIHBpY2tlciBjb21wb25lbnRcbiAqL1xuY29uc3Qgc2VsZWN0WWVhciA9ICh5ZWFyRWwpID0+IHtcbiAgaWYgKHllYXJFbC5kaXNhYmxlZCkgcmV0dXJuO1xuICBjb25zdCB7IGNhbGVuZGFyRWwsIGNhbGVuZGFyRGF0ZSwgbWluRGF0ZSwgbWF4RGF0ZSB9ID1cbiAgICBnZXREYXRlUGlja2VyQ29udGV4dCh5ZWFyRWwpO1xuICBjb25zdCBzZWxlY3RlZFllYXIgPSBwYXJzZUludCh5ZWFyRWwuaW5uZXJIVE1MLCAxMCk7XG4gIGxldCBkYXRlID0gc2V0WWVhcihjYWxlbmRhckRhdGUsIHNlbGVjdGVkWWVhcik7XG4gIGRhdGUgPSBrZWVwRGF0ZUJldHdlZW5NaW5BbmRNYXgoZGF0ZSwgbWluRGF0ZSwgbWF4RGF0ZSk7XG4gIGNvbnN0IG5ld0NhbGVuZGFyID0gcmVuZGVyQ2FsZW5kYXIoY2FsZW5kYXJFbCwgZGF0ZSk7XG4gIG5ld0NhbGVuZGFyLnF1ZXJ5U2VsZWN0b3IoQ0FMRU5EQVJfREFURV9GT0NVU0VEKS5mb2N1cygpO1xufTtcblxuLy8gI2VuZHJlZ2lvbiBDYWxlbmRhciAtIFllYXIgU2VsZWN0aW9uIFZpZXdcblxuLy8gI3JlZ2lvbiBDYWxlbmRhciBFdmVudCBIYW5kbGluZ1xuXG4vKipcbiAqIEhpZGUgdGhlIGNhbGVuZGFyLlxuICpcbiAqIEBwYXJhbSB7S2V5Ym9hcmRFdmVudH0gZXZlbnQgdGhlIGtleWRvd24gZXZlbnRcbiAqL1xuY29uc3QgaGFuZGxlRXNjYXBlRnJvbUNhbGVuZGFyID0gKGV2ZW50KSA9PiB7XG4gIGNvbnN0IHsgZGF0ZVBpY2tlckVsLCBleHRlcm5hbElucHV0RWwgfSA9IGdldERhdGVQaWNrZXJDb250ZXh0KGV2ZW50LnRhcmdldCk7XG5cbiAgaGlkZUNhbGVuZGFyKGRhdGVQaWNrZXJFbCk7XG4gIGV4dGVybmFsSW5wdXRFbC5mb2N1cygpO1xuXG4gIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG59O1xuXG4vLyAjZW5kcmVnaW9uIENhbGVuZGFyIEV2ZW50IEhhbmRsaW5nXG5cbi8vICNyZWdpb24gQ2FsZW5kYXIgRGF0ZSBFdmVudCBIYW5kbGluZ1xuXG4vKipcbiAqIEFkanVzdCB0aGUgZGF0ZSBhbmQgZGlzcGxheSB0aGUgY2FsZW5kYXIgaWYgbmVlZGVkLlxuICpcbiAqIEBwYXJhbSB7ZnVuY3Rpb259IGFkanVzdERhdGVGbiBmdW5jdGlvbiB0aGF0IHJldHVybnMgdGhlIGFkanVzdGVkIGRhdGVcbiAqL1xuY29uc3QgYWRqdXN0Q2FsZW5kYXIgPSAoYWRqdXN0RGF0ZUZuKSA9PiAoZXZlbnQpID0+IHtcbiAgY29uc3QgeyBjYWxlbmRhckVsLCBjYWxlbmRhckRhdGUsIG1pbkRhdGUsIG1heERhdGUgfSA9IGdldERhdGVQaWNrZXJDb250ZXh0KFxuICAgIGV2ZW50LnRhcmdldCxcbiAgKTtcblxuICBjb25zdCBkYXRlID0gYWRqdXN0RGF0ZUZuKGNhbGVuZGFyRGF0ZSk7XG5cbiAgY29uc3QgY2FwcGVkRGF0ZSA9IGtlZXBEYXRlQmV0d2Vlbk1pbkFuZE1heChkYXRlLCBtaW5EYXRlLCBtYXhEYXRlKTtcbiAgaWYgKCFpc1NhbWVEYXkoY2FsZW5kYXJEYXRlLCBjYXBwZWREYXRlKSkge1xuICAgIGNvbnN0IG5ld0NhbGVuZGFyID0gcmVuZGVyQ2FsZW5kYXIoY2FsZW5kYXJFbCwgY2FwcGVkRGF0ZSk7XG4gICAgbmV3Q2FsZW5kYXIucXVlcnlTZWxlY3RvcihDQUxFTkRBUl9EQVRFX0ZPQ1VTRUQpLmZvY3VzKCk7XG4gIH1cbiAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbn07XG5cbi8qKlxuICogTmF2aWdhdGUgYmFjayBvbmUgd2VlayBhbmQgZGlzcGxheSB0aGUgY2FsZW5kYXIuXG4gKlxuICogQHBhcmFtIHtLZXlib2FyZEV2ZW50fSBldmVudCB0aGUga2V5ZG93biBldmVudFxuICovXG5jb25zdCBoYW5kbGVVcEZyb21EYXRlID0gYWRqdXN0Q2FsZW5kYXIoKGRhdGUpID0+IHN1YldlZWtzKGRhdGUsIDEpKTtcblxuLyoqXG4gKiBOYXZpZ2F0ZSBmb3J3YXJkIG9uZSB3ZWVrIGFuZCBkaXNwbGF5IHRoZSBjYWxlbmRhci5cbiAqXG4gKiBAcGFyYW0ge0tleWJvYXJkRXZlbnR9IGV2ZW50IHRoZSBrZXlkb3duIGV2ZW50XG4gKi9cbmNvbnN0IGhhbmRsZURvd25Gcm9tRGF0ZSA9IGFkanVzdENhbGVuZGFyKChkYXRlKSA9PiBhZGRXZWVrcyhkYXRlLCAxKSk7XG5cbi8qKlxuICogTmF2aWdhdGUgYmFjayBvbmUgZGF5IGFuZCBkaXNwbGF5IHRoZSBjYWxlbmRhci5cbiAqXG4gKiBAcGFyYW0ge0tleWJvYXJkRXZlbnR9IGV2ZW50IHRoZSBrZXlkb3duIGV2ZW50XG4gKi9cbmNvbnN0IGhhbmRsZUxlZnRGcm9tRGF0ZSA9IGFkanVzdENhbGVuZGFyKChkYXRlKSA9PiBzdWJEYXlzKGRhdGUsIDEpKTtcblxuLyoqXG4gKiBOYXZpZ2F0ZSBmb3J3YXJkIG9uZSBkYXkgYW5kIGRpc3BsYXkgdGhlIGNhbGVuZGFyLlxuICpcbiAqIEBwYXJhbSB7S2V5Ym9hcmRFdmVudH0gZXZlbnQgdGhlIGtleWRvd24gZXZlbnRcbiAqL1xuY29uc3QgaGFuZGxlUmlnaHRGcm9tRGF0ZSA9IGFkanVzdENhbGVuZGFyKChkYXRlKSA9PiBhZGREYXlzKGRhdGUsIDEpKTtcblxuLyoqXG4gKiBOYXZpZ2F0ZSB0byB0aGUgc3RhcnQgb2YgdGhlIHdlZWsgYW5kIGRpc3BsYXkgdGhlIGNhbGVuZGFyLlxuICpcbiAqIEBwYXJhbSB7S2V5Ym9hcmRFdmVudH0gZXZlbnQgdGhlIGtleWRvd24gZXZlbnRcbiAqL1xuY29uc3QgaGFuZGxlSG9tZUZyb21EYXRlID0gYWRqdXN0Q2FsZW5kYXIoKGRhdGUpID0+IHN0YXJ0T2ZXZWVrKGRhdGUpKTtcblxuLyoqXG4gKiBOYXZpZ2F0ZSB0byB0aGUgZW5kIG9mIHRoZSB3ZWVrIGFuZCBkaXNwbGF5IHRoZSBjYWxlbmRhci5cbiAqXG4gKiBAcGFyYW0ge0tleWJvYXJkRXZlbnR9IGV2ZW50IHRoZSBrZXlkb3duIGV2ZW50XG4gKi9cbmNvbnN0IGhhbmRsZUVuZEZyb21EYXRlID0gYWRqdXN0Q2FsZW5kYXIoKGRhdGUpID0+IGVuZE9mV2VlayhkYXRlKSk7XG5cbi8qKlxuICogTmF2aWdhdGUgZm9yd2FyZCBvbmUgbW9udGggYW5kIGRpc3BsYXkgdGhlIGNhbGVuZGFyLlxuICpcbiAqIEBwYXJhbSB7S2V5Ym9hcmRFdmVudH0gZXZlbnQgdGhlIGtleWRvd24gZXZlbnRcbiAqL1xuY29uc3QgaGFuZGxlUGFnZURvd25Gcm9tRGF0ZSA9IGFkanVzdENhbGVuZGFyKChkYXRlKSA9PiBhZGRNb250aHMoZGF0ZSwgMSkpO1xuXG4vKipcbiAqIE5hdmlnYXRlIGJhY2sgb25lIG1vbnRoIGFuZCBkaXNwbGF5IHRoZSBjYWxlbmRhci5cbiAqXG4gKiBAcGFyYW0ge0tleWJvYXJkRXZlbnR9IGV2ZW50IHRoZSBrZXlkb3duIGV2ZW50XG4gKi9cbmNvbnN0IGhhbmRsZVBhZ2VVcEZyb21EYXRlID0gYWRqdXN0Q2FsZW5kYXIoKGRhdGUpID0+IHN1Yk1vbnRocyhkYXRlLCAxKSk7XG5cbi8qKlxuICogTmF2aWdhdGUgZm9yd2FyZCBvbmUgeWVhciBhbmQgZGlzcGxheSB0aGUgY2FsZW5kYXIuXG4gKlxuICogQHBhcmFtIHtLZXlib2FyZEV2ZW50fSBldmVudCB0aGUga2V5ZG93biBldmVudFxuICovXG5jb25zdCBoYW5kbGVTaGlmdFBhZ2VEb3duRnJvbURhdGUgPSBhZGp1c3RDYWxlbmRhcigoZGF0ZSkgPT4gYWRkWWVhcnMoZGF0ZSwgMSkpO1xuXG4vKipcbiAqIE5hdmlnYXRlIGJhY2sgb25lIHllYXIgYW5kIGRpc3BsYXkgdGhlIGNhbGVuZGFyLlxuICpcbiAqIEBwYXJhbSB7S2V5Ym9hcmRFdmVudH0gZXZlbnQgdGhlIGtleWRvd24gZXZlbnRcbiAqL1xuY29uc3QgaGFuZGxlU2hpZnRQYWdlVXBGcm9tRGF0ZSA9IGFkanVzdENhbGVuZGFyKChkYXRlKSA9PiBzdWJZZWFycyhkYXRlLCAxKSk7XG5cbi8qKlxuICogU2V0IHJhbmdlIGRhdGUgY2xhc3NlcyB3aXRob3V0IHJlLXJlbmRlcmluZyB0aGUgY2FsZW5kYXIuIENhbGxlZCB3aGVuIGRhdGUgYnV0dG9uIGlzIGhvdmVyZWQuXG4gKiBSZXR1cm5zIGVhcmx5IGlmIHRoZSBkYXRlIGhvdmVyZWQgaXMgZGlzYWJsZWQgb3IgaWYgdGhlcmUgaXMgYWxyZWFkeSBhIHNlbGVjdGVkIGRhdGUuXG4gKlxuICogQHBhcmFtIHtIVE1MRWxlbWVudH0gZGF0ZUVsIC0gQ2FsZW5kYXIgZGF0ZSBidXR0b24gd2l0aGluIHRoZSBkYXRlIHBpY2tlciBjb21wb25lbnQuXG4gKi9cblxuY29uc3QgaGFuZGxlTW91c2VvdmVyRnJvbURhdGUgPSAoZGF0ZUVsKSA9PiB7XG4gIGlmIChkYXRlRWwuZGlzYWJsZWQpIHJldHVybjtcblxuICBjb25zdCBob3ZlckRhdGUgPSBwYXJzZURhdGVTdHJpbmcoZGF0ZUVsLmRhdGFzZXQudmFsdWUpO1xuICBjb25zdCB7IGNhbGVuZGFyRWwsIHNlbGVjdGVkRGF0ZSwgcmFuZ2VEYXRlIH0gPSBnZXREYXRlUGlja2VyQ29udGV4dChkYXRlRWwpO1xuXG4gIGlmIChzZWxlY3RlZERhdGUpIHJldHVybjtcblxuICBjb25zdCB7IHdpdGhpblJhbmdlU3RhcnREYXRlLCB3aXRoaW5SYW5nZUVuZERhdGUgfSA9IHNldFJhbmdlRGF0ZXMoXG4gICAgaG92ZXJEYXRlLFxuICAgIHJhbmdlRGF0ZSxcbiAgKTtcblxuICBjb25zdCBkYXRlQnV0dG9ucyA9IGNhbGVuZGFyRWwucXVlcnlTZWxlY3RvckFsbChcbiAgICBgLiR7Q0FMRU5EQVJfREFURV9DVVJSRU5UX01PTlRIX0NMQVNTfWAsXG4gICk7XG5cbiAgZGF0ZUJ1dHRvbnMuZm9yRWFjaCgoYnV0dG9uKSA9PiB7XG4gICAgY29uc3QgYnV0dG9uRGF0ZSA9IHBhcnNlRGF0ZVN0cmluZyhidXR0b24uZGF0YXNldC52YWx1ZSk7XG4gICAgaWYgKFxuICAgICAgaXNEYXRlV2l0aGluTWluQW5kTWF4KFxuICAgICAgICBidXR0b25EYXRlLFxuICAgICAgICB3aXRoaW5SYW5nZVN0YXJ0RGF0ZSxcbiAgICAgICAgd2l0aGluUmFuZ2VFbmREYXRlLFxuICAgICAgKVxuICAgICkge1xuICAgICAgYnV0dG9uLmNsYXNzTGlzdC5hZGQoQ0FMRU5EQVJfREFURV9XSVRISU5fUkFOR0VfQ0xBU1MpO1xuICAgIH0gZWxzZSB7XG4gICAgICBidXR0b24uY2xhc3NMaXN0LnJlbW92ZShDQUxFTkRBUl9EQVRFX1dJVEhJTl9SQU5HRV9DTEFTUyk7XG4gICAgfVxuICB9KTtcbn07XG5cbi8vICNlbmRyZWdpb24gQ2FsZW5kYXIgRGF0ZSBFdmVudCBIYW5kbGluZ1xuXG4vLyAjcmVnaW9uIENhbGVuZGFyIE1vbnRoIEV2ZW50IEhhbmRsaW5nXG5cbi8qKlxuICogQWRqdXN0IHRoZSBtb250aCBhbmQgZGlzcGxheSB0aGUgbW9udGggc2VsZWN0aW9uIHNjcmVlbiBpZiBuZWVkZWQuXG4gKlxuICogQHBhcmFtIHtmdW5jdGlvbn0gYWRqdXN0TW9udGhGbiBmdW5jdGlvbiB0aGF0IHJldHVybnMgdGhlIGFkanVzdGVkIG1vbnRoXG4gKi9cbmNvbnN0IGFkanVzdE1vbnRoU2VsZWN0aW9uU2NyZWVuID0gKGFkanVzdE1vbnRoRm4pID0+IChldmVudCkgPT4ge1xuICBjb25zdCBtb250aEVsID0gZXZlbnQudGFyZ2V0O1xuICBjb25zdCBzZWxlY3RlZE1vbnRoID0gcGFyc2VJbnQobW9udGhFbC5kYXRhc2V0LnZhbHVlLCAxMCk7XG4gIGNvbnN0IHsgY2FsZW5kYXJFbCwgY2FsZW5kYXJEYXRlLCBtaW5EYXRlLCBtYXhEYXRlIH0gPVxuICAgIGdldERhdGVQaWNrZXJDb250ZXh0KG1vbnRoRWwpO1xuICBjb25zdCBjdXJyZW50RGF0ZSA9IHNldE1vbnRoKGNhbGVuZGFyRGF0ZSwgc2VsZWN0ZWRNb250aCk7XG5cbiAgbGV0IGFkanVzdGVkTW9udGggPSBhZGp1c3RNb250aEZuKHNlbGVjdGVkTW9udGgpO1xuICBhZGp1c3RlZE1vbnRoID0gTWF0aC5tYXgoMCwgTWF0aC5taW4oMTEsIGFkanVzdGVkTW9udGgpKTtcblxuICBjb25zdCBkYXRlID0gc2V0TW9udGgoY2FsZW5kYXJEYXRlLCBhZGp1c3RlZE1vbnRoKTtcbiAgY29uc3QgY2FwcGVkRGF0ZSA9IGtlZXBEYXRlQmV0d2Vlbk1pbkFuZE1heChkYXRlLCBtaW5EYXRlLCBtYXhEYXRlKTtcbiAgaWYgKCFpc1NhbWVNb250aChjdXJyZW50RGF0ZSwgY2FwcGVkRGF0ZSkpIHtcbiAgICBjb25zdCBuZXdDYWxlbmRhciA9IGRpc3BsYXlNb250aFNlbGVjdGlvbihcbiAgICAgIGNhbGVuZGFyRWwsXG4gICAgICBjYXBwZWREYXRlLmdldE1vbnRoKCksXG4gICAgKTtcbiAgICBuZXdDYWxlbmRhci5xdWVyeVNlbGVjdG9yKENBTEVOREFSX01PTlRIX0ZPQ1VTRUQpLmZvY3VzKCk7XG4gIH1cbiAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbn07XG5cbi8qKlxuICogTmF2aWdhdGUgYmFjayB0aHJlZSBtb250aHMgYW5kIGRpc3BsYXkgdGhlIG1vbnRoIHNlbGVjdGlvbiBzY3JlZW4uXG4gKlxuICogQHBhcmFtIHtLZXlib2FyZEV2ZW50fSBldmVudCB0aGUga2V5ZG93biBldmVudFxuICovXG5jb25zdCBoYW5kbGVVcEZyb21Nb250aCA9IGFkanVzdE1vbnRoU2VsZWN0aW9uU2NyZWVuKChtb250aCkgPT4gbW9udGggLSAzKTtcblxuLyoqXG4gKiBOYXZpZ2F0ZSBmb3J3YXJkIHRocmVlIG1vbnRocyBhbmQgZGlzcGxheSB0aGUgbW9udGggc2VsZWN0aW9uIHNjcmVlbi5cbiAqXG4gKiBAcGFyYW0ge0tleWJvYXJkRXZlbnR9IGV2ZW50IHRoZSBrZXlkb3duIGV2ZW50XG4gKi9cbmNvbnN0IGhhbmRsZURvd25Gcm9tTW9udGggPSBhZGp1c3RNb250aFNlbGVjdGlvblNjcmVlbigobW9udGgpID0+IG1vbnRoICsgMyk7XG5cbi8qKlxuICogTmF2aWdhdGUgYmFjayBvbmUgbW9udGggYW5kIGRpc3BsYXkgdGhlIG1vbnRoIHNlbGVjdGlvbiBzY3JlZW4uXG4gKlxuICogQHBhcmFtIHtLZXlib2FyZEV2ZW50fSBldmVudCB0aGUga2V5ZG93biBldmVudFxuICovXG5jb25zdCBoYW5kbGVMZWZ0RnJvbU1vbnRoID0gYWRqdXN0TW9udGhTZWxlY3Rpb25TY3JlZW4oKG1vbnRoKSA9PiBtb250aCAtIDEpO1xuXG4vKipcbiAqIE5hdmlnYXRlIGZvcndhcmQgb25lIG1vbnRoIGFuZCBkaXNwbGF5IHRoZSBtb250aCBzZWxlY3Rpb24gc2NyZWVuLlxuICpcbiAqIEBwYXJhbSB7S2V5Ym9hcmRFdmVudH0gZXZlbnQgdGhlIGtleWRvd24gZXZlbnRcbiAqL1xuY29uc3QgaGFuZGxlUmlnaHRGcm9tTW9udGggPSBhZGp1c3RNb250aFNlbGVjdGlvblNjcmVlbigobW9udGgpID0+IG1vbnRoICsgMSk7XG5cbi8qKlxuICogTmF2aWdhdGUgdG8gdGhlIHN0YXJ0IG9mIHRoZSByb3cgb2YgbW9udGhzIGFuZCBkaXNwbGF5IHRoZSBtb250aCBzZWxlY3Rpb24gc2NyZWVuLlxuICpcbiAqIEBwYXJhbSB7S2V5Ym9hcmRFdmVudH0gZXZlbnQgdGhlIGtleWRvd24gZXZlbnRcbiAqL1xuY29uc3QgaGFuZGxlSG9tZUZyb21Nb250aCA9IGFkanVzdE1vbnRoU2VsZWN0aW9uU2NyZWVuKFxuICAobW9udGgpID0+IG1vbnRoIC0gKG1vbnRoICUgMyksXG4pO1xuXG4vKipcbiAqIE5hdmlnYXRlIHRvIHRoZSBlbmQgb2YgdGhlIHJvdyBvZiBtb250aHMgYW5kIGRpc3BsYXkgdGhlIG1vbnRoIHNlbGVjdGlvbiBzY3JlZW4uXG4gKlxuICogQHBhcmFtIHtLZXlib2FyZEV2ZW50fSBldmVudCB0aGUga2V5ZG93biBldmVudFxuICovXG5jb25zdCBoYW5kbGVFbmRGcm9tTW9udGggPSBhZGp1c3RNb250aFNlbGVjdGlvblNjcmVlbihcbiAgKG1vbnRoKSA9PiBtb250aCArIDIgLSAobW9udGggJSAzKSxcbik7XG5cbi8qKlxuICogTmF2aWdhdGUgdG8gdGhlIGxhc3QgbW9udGggKERlY2VtYmVyKSBhbmQgZGlzcGxheSB0aGUgbW9udGggc2VsZWN0aW9uIHNjcmVlbi5cbiAqXG4gKiBAcGFyYW0ge0tleWJvYXJkRXZlbnR9IGV2ZW50IHRoZSBrZXlkb3duIGV2ZW50XG4gKi9cbmNvbnN0IGhhbmRsZVBhZ2VEb3duRnJvbU1vbnRoID0gYWRqdXN0TW9udGhTZWxlY3Rpb25TY3JlZW4oKCkgPT4gMTEpO1xuXG4vKipcbiAqIE5hdmlnYXRlIHRvIHRoZSBmaXJzdCBtb250aCAoSmFudWFyeSkgYW5kIGRpc3BsYXkgdGhlIG1vbnRoIHNlbGVjdGlvbiBzY3JlZW4uXG4gKlxuICogQHBhcmFtIHtLZXlib2FyZEV2ZW50fSBldmVudCB0aGUga2V5ZG93biBldmVudFxuICovXG5jb25zdCBoYW5kbGVQYWdlVXBGcm9tTW9udGggPSBhZGp1c3RNb250aFNlbGVjdGlvblNjcmVlbigoKSA9PiAwKTtcblxuLy8gI2VuZHJlZ2lvbiBDYWxlbmRhciBNb250aCBFdmVudCBIYW5kbGluZ1xuXG4vLyAjcmVnaW9uIENhbGVuZGFyIFllYXIgRXZlbnQgSGFuZGxpbmdcblxuLyoqXG4gKiBBZGp1c3QgdGhlIHllYXIgYW5kIGRpc3BsYXkgdGhlIHllYXIgc2VsZWN0aW9uIHNjcmVlbiBpZiBuZWVkZWQuXG4gKlxuICogQHBhcmFtIHtmdW5jdGlvbn0gYWRqdXN0WWVhckZuIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyB0aGUgYWRqdXN0ZWQgeWVhclxuICovXG5jb25zdCBhZGp1c3RZZWFyU2VsZWN0aW9uU2NyZWVuID0gKGFkanVzdFllYXJGbikgPT4gKGV2ZW50KSA9PiB7XG4gIGNvbnN0IHllYXJFbCA9IGV2ZW50LnRhcmdldDtcbiAgY29uc3Qgc2VsZWN0ZWRZZWFyID0gcGFyc2VJbnQoeWVhckVsLmRhdGFzZXQudmFsdWUsIDEwKTtcbiAgY29uc3QgeyBjYWxlbmRhckVsLCBjYWxlbmRhckRhdGUsIG1pbkRhdGUsIG1heERhdGUgfSA9XG4gICAgZ2V0RGF0ZVBpY2tlckNvbnRleHQoeWVhckVsKTtcbiAgY29uc3QgY3VycmVudERhdGUgPSBzZXRZZWFyKGNhbGVuZGFyRGF0ZSwgc2VsZWN0ZWRZZWFyKTtcblxuICBsZXQgYWRqdXN0ZWRZZWFyID0gYWRqdXN0WWVhckZuKHNlbGVjdGVkWWVhcik7XG4gIGFkanVzdGVkWWVhciA9IE1hdGgubWF4KDAsIGFkanVzdGVkWWVhcik7XG5cbiAgY29uc3QgZGF0ZSA9IHNldFllYXIoY2FsZW5kYXJEYXRlLCBhZGp1c3RlZFllYXIpO1xuICBjb25zdCBjYXBwZWREYXRlID0ga2VlcERhdGVCZXR3ZWVuTWluQW5kTWF4KGRhdGUsIG1pbkRhdGUsIG1heERhdGUpO1xuICBpZiAoIWlzU2FtZVllYXIoY3VycmVudERhdGUsIGNhcHBlZERhdGUpKSB7XG4gICAgY29uc3QgbmV3Q2FsZW5kYXIgPSBkaXNwbGF5WWVhclNlbGVjdGlvbihcbiAgICAgIGNhbGVuZGFyRWwsXG4gICAgICBjYXBwZWREYXRlLmdldEZ1bGxZZWFyKCksXG4gICAgKTtcbiAgICBuZXdDYWxlbmRhci5xdWVyeVNlbGVjdG9yKENBTEVOREFSX1lFQVJfRk9DVVNFRCkuZm9jdXMoKTtcbiAgfVxuICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xufTtcblxuLyoqXG4gKiBOYXZpZ2F0ZSBiYWNrIHRocmVlIHllYXJzIGFuZCBkaXNwbGF5IHRoZSB5ZWFyIHNlbGVjdGlvbiBzY3JlZW4uXG4gKlxuICogQHBhcmFtIHtLZXlib2FyZEV2ZW50fSBldmVudCB0aGUga2V5ZG93biBldmVudFxuICovXG5jb25zdCBoYW5kbGVVcEZyb21ZZWFyID0gYWRqdXN0WWVhclNlbGVjdGlvblNjcmVlbigoeWVhcikgPT4geWVhciAtIDMpO1xuXG4vKipcbiAqIE5hdmlnYXRlIGZvcndhcmQgdGhyZWUgeWVhcnMgYW5kIGRpc3BsYXkgdGhlIHllYXIgc2VsZWN0aW9uIHNjcmVlbi5cbiAqXG4gKiBAcGFyYW0ge0tleWJvYXJkRXZlbnR9IGV2ZW50IHRoZSBrZXlkb3duIGV2ZW50XG4gKi9cbmNvbnN0IGhhbmRsZURvd25Gcm9tWWVhciA9IGFkanVzdFllYXJTZWxlY3Rpb25TY3JlZW4oKHllYXIpID0+IHllYXIgKyAzKTtcblxuLyoqXG4gKiBOYXZpZ2F0ZSBiYWNrIG9uZSB5ZWFyIGFuZCBkaXNwbGF5IHRoZSB5ZWFyIHNlbGVjdGlvbiBzY3JlZW4uXG4gKlxuICogQHBhcmFtIHtLZXlib2FyZEV2ZW50fSBldmVudCB0aGUga2V5ZG93biBldmVudFxuICovXG5jb25zdCBoYW5kbGVMZWZ0RnJvbVllYXIgPSBhZGp1c3RZZWFyU2VsZWN0aW9uU2NyZWVuKCh5ZWFyKSA9PiB5ZWFyIC0gMSk7XG5cbi8qKlxuICogTmF2aWdhdGUgZm9yd2FyZCBvbmUgeWVhciBhbmQgZGlzcGxheSB0aGUgeWVhciBzZWxlY3Rpb24gc2NyZWVuLlxuICpcbiAqIEBwYXJhbSB7S2V5Ym9hcmRFdmVudH0gZXZlbnQgdGhlIGtleWRvd24gZXZlbnRcbiAqL1xuY29uc3QgaGFuZGxlUmlnaHRGcm9tWWVhciA9IGFkanVzdFllYXJTZWxlY3Rpb25TY3JlZW4oKHllYXIpID0+IHllYXIgKyAxKTtcblxuLyoqXG4gKiBOYXZpZ2F0ZSB0byB0aGUgc3RhcnQgb2YgdGhlIHJvdyBvZiB5ZWFycyBhbmQgZGlzcGxheSB0aGUgeWVhciBzZWxlY3Rpb24gc2NyZWVuLlxuICpcbiAqIEBwYXJhbSB7S2V5Ym9hcmRFdmVudH0gZXZlbnQgdGhlIGtleWRvd24gZXZlbnRcbiAqL1xuY29uc3QgaGFuZGxlSG9tZUZyb21ZZWFyID0gYWRqdXN0WWVhclNlbGVjdGlvblNjcmVlbihcbiAgKHllYXIpID0+IHllYXIgLSAoeWVhciAlIDMpLFxuKTtcblxuLyoqXG4gKiBOYXZpZ2F0ZSB0byB0aGUgZW5kIG9mIHRoZSByb3cgb2YgeWVhcnMgYW5kIGRpc3BsYXkgdGhlIHllYXIgc2VsZWN0aW9uIHNjcmVlbi5cbiAqXG4gKiBAcGFyYW0ge0tleWJvYXJkRXZlbnR9IGV2ZW50IHRoZSBrZXlkb3duIGV2ZW50XG4gKi9cbmNvbnN0IGhhbmRsZUVuZEZyb21ZZWFyID0gYWRqdXN0WWVhclNlbGVjdGlvblNjcmVlbihcbiAgKHllYXIpID0+IHllYXIgKyAyIC0gKHllYXIgJSAzKSxcbik7XG5cbi8qKlxuICogTmF2aWdhdGUgdG8gYmFjayAxMiB5ZWFycyBhbmQgZGlzcGxheSB0aGUgeWVhciBzZWxlY3Rpb24gc2NyZWVuLlxuICpcbiAqIEBwYXJhbSB7S2V5Ym9hcmRFdmVudH0gZXZlbnQgdGhlIGtleWRvd24gZXZlbnRcbiAqL1xuY29uc3QgaGFuZGxlUGFnZVVwRnJvbVllYXIgPSBhZGp1c3RZZWFyU2VsZWN0aW9uU2NyZWVuKFxuICAoeWVhcikgPT4geWVhciAtIFlFQVJfQ0hVTkssXG4pO1xuXG4vKipcbiAqIE5hdmlnYXRlIGZvcndhcmQgMTIgeWVhcnMgYW5kIGRpc3BsYXkgdGhlIHllYXIgc2VsZWN0aW9uIHNjcmVlbi5cbiAqXG4gKiBAcGFyYW0ge0tleWJvYXJkRXZlbnR9IGV2ZW50IHRoZSBrZXlkb3duIGV2ZW50XG4gKi9cbmNvbnN0IGhhbmRsZVBhZ2VEb3duRnJvbVllYXIgPSBhZGp1c3RZZWFyU2VsZWN0aW9uU2NyZWVuKFxuICAoeWVhcikgPT4geWVhciArIFlFQVJfQ0hVTkssXG4pO1xuXG4vLyAjZW5kcmVnaW9uIENhbGVuZGFyIFllYXIgRXZlbnQgSGFuZGxpbmdcblxuLy8gI3JlZ2lvbiBGb2N1cyBIYW5kbGluZyBFdmVudCBIYW5kbGluZ1xuXG5jb25zdCB0YWJIYW5kbGVyID0gKGZvY3VzYWJsZSkgPT4ge1xuICBjb25zdCBnZXRGb2N1c2FibGVDb250ZXh0ID0gKGVsKSA9PiB7XG4gICAgY29uc3QgeyBjYWxlbmRhckVsIH0gPSBnZXREYXRlUGlja2VyQ29udGV4dChlbCk7XG4gICAgY29uc3QgZm9jdXNhYmxlRWxlbWVudHMgPSBzZWxlY3QoZm9jdXNhYmxlLCBjYWxlbmRhckVsKTtcblxuICAgIGNvbnN0IGZpcnN0VGFiSW5kZXggPSAwO1xuICAgIGNvbnN0IGxhc3RUYWJJbmRleCA9IGZvY3VzYWJsZUVsZW1lbnRzLmxlbmd0aCAtIDE7XG4gICAgY29uc3QgZmlyc3RUYWJTdG9wID0gZm9jdXNhYmxlRWxlbWVudHNbZmlyc3RUYWJJbmRleF07XG4gICAgY29uc3QgbGFzdFRhYlN0b3AgPSBmb2N1c2FibGVFbGVtZW50c1tsYXN0VGFiSW5kZXhdO1xuICAgIGNvbnN0IGZvY3VzSW5kZXggPSBmb2N1c2FibGVFbGVtZW50cy5pbmRleE9mKGFjdGl2ZUVsZW1lbnQoKSk7XG5cbiAgICBjb25zdCBpc0xhc3RUYWIgPSBmb2N1c0luZGV4ID09PSBsYXN0VGFiSW5kZXg7XG4gICAgY29uc3QgaXNGaXJzdFRhYiA9IGZvY3VzSW5kZXggPT09IGZpcnN0VGFiSW5kZXg7XG4gICAgY29uc3QgaXNOb3RGb3VuZCA9IGZvY3VzSW5kZXggPT09IC0xO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGZvY3VzYWJsZUVsZW1lbnRzLFxuICAgICAgaXNOb3RGb3VuZCxcbiAgICAgIGZpcnN0VGFiU3RvcCxcbiAgICAgIGlzRmlyc3RUYWIsXG4gICAgICBsYXN0VGFiU3RvcCxcbiAgICAgIGlzTGFzdFRhYixcbiAgICB9O1xuICB9O1xuXG4gIHJldHVybiB7XG4gICAgdGFiQWhlYWQoZXZlbnQpIHtcbiAgICAgIGNvbnN0IHsgZmlyc3RUYWJTdG9wLCBpc0xhc3RUYWIsIGlzTm90Rm91bmQgfSA9IGdldEZvY3VzYWJsZUNvbnRleHQoXG4gICAgICAgIGV2ZW50LnRhcmdldCxcbiAgICAgICk7XG5cbiAgICAgIGlmIChpc0xhc3RUYWIgfHwgaXNOb3RGb3VuZCkge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBmaXJzdFRhYlN0b3AuZm9jdXMoKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIHRhYkJhY2soZXZlbnQpIHtcbiAgICAgIGNvbnN0IHsgbGFzdFRhYlN0b3AsIGlzRmlyc3RUYWIsIGlzTm90Rm91bmQgfSA9IGdldEZvY3VzYWJsZUNvbnRleHQoXG4gICAgICAgIGV2ZW50LnRhcmdldCxcbiAgICAgICk7XG5cbiAgICAgIGlmIChpc0ZpcnN0VGFiIHx8IGlzTm90Rm91bmQpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgbGFzdFRhYlN0b3AuZm9jdXMoKTtcbiAgICAgIH1cbiAgICB9LFxuICB9O1xufTtcblxuY29uc3QgZGF0ZVBpY2tlclRhYkV2ZW50SGFuZGxlciA9IHRhYkhhbmRsZXIoREFURV9QSUNLRVJfRk9DVVNBQkxFKTtcbmNvbnN0IG1vbnRoUGlja2VyVGFiRXZlbnRIYW5kbGVyID0gdGFiSGFuZGxlcihNT05USF9QSUNLRVJfRk9DVVNBQkxFKTtcbmNvbnN0IHllYXJQaWNrZXJUYWJFdmVudEhhbmRsZXIgPSB0YWJIYW5kbGVyKFlFQVJfUElDS0VSX0ZPQ1VTQUJMRSk7XG5cbi8vICNlbmRyZWdpb24gRm9jdXMgSGFuZGxpbmcgRXZlbnQgSGFuZGxpbmdcblxuLy8gI3JlZ2lvbiBEYXRlIFBpY2tlciBFdmVudCBEZWxlZ2F0aW9uIFJlZ2lzdHJhdGlvbiAvIENvbXBvbmVudFxuXG5jb25zdCBkYXRlUGlja2VyRXZlbnRzID0ge1xuICBbQ0xJQ0tdOiB7XG4gICAgW0RBVEVfUElDS0VSX0JVVFRPTl0oKSB7XG4gICAgICB0b2dnbGVDYWxlbmRhcih0aGlzKTtcbiAgICB9LFxuICAgIFtDQUxFTkRBUl9EQVRFXSgpIHtcbiAgICAgIHNlbGVjdERhdGUodGhpcyk7XG4gICAgfSxcbiAgICBbQ0FMRU5EQVJfTU9OVEhdKCkge1xuICAgICAgc2VsZWN0TW9udGgodGhpcyk7XG4gICAgfSxcbiAgICBbQ0FMRU5EQVJfWUVBUl0oKSB7XG4gICAgICBzZWxlY3RZZWFyKHRoaXMpO1xuICAgIH0sXG4gICAgW0NBTEVOREFSX1BSRVZJT1VTX01PTlRIXSgpIHtcbiAgICAgIGRpc3BsYXlQcmV2aW91c01vbnRoKHRoaXMpO1xuICAgIH0sXG4gICAgW0NBTEVOREFSX05FWFRfTU9OVEhdKCkge1xuICAgICAgZGlzcGxheU5leHRNb250aCh0aGlzKTtcbiAgICB9LFxuICAgIFtDQUxFTkRBUl9QUkVWSU9VU19ZRUFSXSgpIHtcbiAgICAgIGRpc3BsYXlQcmV2aW91c1llYXIodGhpcyk7XG4gICAgfSxcbiAgICBbQ0FMRU5EQVJfTkVYVF9ZRUFSXSgpIHtcbiAgICAgIGRpc3BsYXlOZXh0WWVhcih0aGlzKTtcbiAgICB9LFxuICAgIFtDQUxFTkRBUl9QUkVWSU9VU19ZRUFSX0NIVU5LXSgpIHtcbiAgICAgIGRpc3BsYXlQcmV2aW91c1llYXJDaHVuayh0aGlzKTtcbiAgICB9LFxuICAgIFtDQUxFTkRBUl9ORVhUX1lFQVJfQ0hVTktdKCkge1xuICAgICAgZGlzcGxheU5leHRZZWFyQ2h1bmsodGhpcyk7XG4gICAgfSxcbiAgICBbQ0FMRU5EQVJfTU9OVEhfU0VMRUNUSU9OXSgpIHtcbiAgICAgIGNvbnN0IG5ld0NhbGVuZGFyID0gZGlzcGxheU1vbnRoU2VsZWN0aW9uKHRoaXMpO1xuICAgICAgbmV3Q2FsZW5kYXIucXVlcnlTZWxlY3RvcihDQUxFTkRBUl9NT05USF9GT0NVU0VEKS5mb2N1cygpO1xuICAgIH0sXG4gICAgW0NBTEVOREFSX1lFQVJfU0VMRUNUSU9OXSgpIHtcbiAgICAgIGNvbnN0IG5ld0NhbGVuZGFyID0gZGlzcGxheVllYXJTZWxlY3Rpb24odGhpcyk7XG4gICAgICBuZXdDYWxlbmRhci5xdWVyeVNlbGVjdG9yKENBTEVOREFSX1lFQVJfRk9DVVNFRCkuZm9jdXMoKTtcbiAgICB9LFxuICB9LFxuICBrZXl1cDoge1xuICAgIFtEQVRFX1BJQ0tFUl9DQUxFTkRBUl0oZXZlbnQpIHtcbiAgICAgIGNvbnN0IGtleWRvd24gPSB0aGlzLmRhdGFzZXQua2V5ZG93bktleUNvZGU7XG4gICAgICBpZiAoYCR7ZXZlbnQua2V5Q29kZX1gICE9PSBrZXlkb3duKSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB9XG4gICAgfSxcbiAgfSxcbiAga2V5ZG93bjoge1xuICAgIFtEQVRFX1BJQ0tFUl9FWFRFUk5BTF9JTlBVVF0oZXZlbnQpIHtcbiAgICAgIGlmIChldmVudC5rZXlDb2RlID09PSBFTlRFUl9LRVlDT0RFKSB7XG4gICAgICAgIHZhbGlkYXRlRGF0ZUlucHV0KHRoaXMpO1xuICAgICAgfVxuICAgIH0sXG4gICAgW0NBTEVOREFSX0RBVEVdOiBrZXltYXAoe1xuICAgICAgVXA6IGhhbmRsZVVwRnJvbURhdGUsXG4gICAgICBBcnJvd1VwOiBoYW5kbGVVcEZyb21EYXRlLFxuICAgICAgRG93bjogaGFuZGxlRG93bkZyb21EYXRlLFxuICAgICAgQXJyb3dEb3duOiBoYW5kbGVEb3duRnJvbURhdGUsXG4gICAgICBMZWZ0OiBoYW5kbGVMZWZ0RnJvbURhdGUsXG4gICAgICBBcnJvd0xlZnQ6IGhhbmRsZUxlZnRGcm9tRGF0ZSxcbiAgICAgIFJpZ2h0OiBoYW5kbGVSaWdodEZyb21EYXRlLFxuICAgICAgQXJyb3dSaWdodDogaGFuZGxlUmlnaHRGcm9tRGF0ZSxcbiAgICAgIEhvbWU6IGhhbmRsZUhvbWVGcm9tRGF0ZSxcbiAgICAgIEVuZDogaGFuZGxlRW5kRnJvbURhdGUsXG4gICAgICBQYWdlRG93bjogaGFuZGxlUGFnZURvd25Gcm9tRGF0ZSxcbiAgICAgIFBhZ2VVcDogaGFuZGxlUGFnZVVwRnJvbURhdGUsXG4gICAgICBcIlNoaWZ0K1BhZ2VEb3duXCI6IGhhbmRsZVNoaWZ0UGFnZURvd25Gcm9tRGF0ZSxcbiAgICAgIFwiU2hpZnQrUGFnZVVwXCI6IGhhbmRsZVNoaWZ0UGFnZVVwRnJvbURhdGUsXG4gICAgICBUYWI6IGRhdGVQaWNrZXJUYWJFdmVudEhhbmRsZXIudGFiQWhlYWQsXG4gICAgfSksXG4gICAgW0NBTEVOREFSX0RBVEVfUElDS0VSXToga2V5bWFwKHtcbiAgICAgIFRhYjogZGF0ZVBpY2tlclRhYkV2ZW50SGFuZGxlci50YWJBaGVhZCxcbiAgICAgIFwiU2hpZnQrVGFiXCI6IGRhdGVQaWNrZXJUYWJFdmVudEhhbmRsZXIudGFiQmFjayxcbiAgICB9KSxcbiAgICBbQ0FMRU5EQVJfTU9OVEhdOiBrZXltYXAoe1xuICAgICAgVXA6IGhhbmRsZVVwRnJvbU1vbnRoLFxuICAgICAgQXJyb3dVcDogaGFuZGxlVXBGcm9tTW9udGgsXG4gICAgICBEb3duOiBoYW5kbGVEb3duRnJvbU1vbnRoLFxuICAgICAgQXJyb3dEb3duOiBoYW5kbGVEb3duRnJvbU1vbnRoLFxuICAgICAgTGVmdDogaGFuZGxlTGVmdEZyb21Nb250aCxcbiAgICAgIEFycm93TGVmdDogaGFuZGxlTGVmdEZyb21Nb250aCxcbiAgICAgIFJpZ2h0OiBoYW5kbGVSaWdodEZyb21Nb250aCxcbiAgICAgIEFycm93UmlnaHQ6IGhhbmRsZVJpZ2h0RnJvbU1vbnRoLFxuICAgICAgSG9tZTogaGFuZGxlSG9tZUZyb21Nb250aCxcbiAgICAgIEVuZDogaGFuZGxlRW5kRnJvbU1vbnRoLFxuICAgICAgUGFnZURvd246IGhhbmRsZVBhZ2VEb3duRnJvbU1vbnRoLFxuICAgICAgUGFnZVVwOiBoYW5kbGVQYWdlVXBGcm9tTW9udGgsXG4gICAgfSksXG4gICAgW0NBTEVOREFSX01PTlRIX1BJQ0tFUl06IGtleW1hcCh7XG4gICAgICBUYWI6IG1vbnRoUGlja2VyVGFiRXZlbnRIYW5kbGVyLnRhYkFoZWFkLFxuICAgICAgXCJTaGlmdCtUYWJcIjogbW9udGhQaWNrZXJUYWJFdmVudEhhbmRsZXIudGFiQmFjayxcbiAgICB9KSxcbiAgICBbQ0FMRU5EQVJfWUVBUl06IGtleW1hcCh7XG4gICAgICBVcDogaGFuZGxlVXBGcm9tWWVhcixcbiAgICAgIEFycm93VXA6IGhhbmRsZVVwRnJvbVllYXIsXG4gICAgICBEb3duOiBoYW5kbGVEb3duRnJvbVllYXIsXG4gICAgICBBcnJvd0Rvd246IGhhbmRsZURvd25Gcm9tWWVhcixcbiAgICAgIExlZnQ6IGhhbmRsZUxlZnRGcm9tWWVhcixcbiAgICAgIEFycm93TGVmdDogaGFuZGxlTGVmdEZyb21ZZWFyLFxuICAgICAgUmlnaHQ6IGhhbmRsZVJpZ2h0RnJvbVllYXIsXG4gICAgICBBcnJvd1JpZ2h0OiBoYW5kbGVSaWdodEZyb21ZZWFyLFxuICAgICAgSG9tZTogaGFuZGxlSG9tZUZyb21ZZWFyLFxuICAgICAgRW5kOiBoYW5kbGVFbmRGcm9tWWVhcixcbiAgICAgIFBhZ2VEb3duOiBoYW5kbGVQYWdlRG93bkZyb21ZZWFyLFxuICAgICAgUGFnZVVwOiBoYW5kbGVQYWdlVXBGcm9tWWVhcixcbiAgICB9KSxcbiAgICBbQ0FMRU5EQVJfWUVBUl9QSUNLRVJdOiBrZXltYXAoe1xuICAgICAgVGFiOiB5ZWFyUGlja2VyVGFiRXZlbnRIYW5kbGVyLnRhYkFoZWFkLFxuICAgICAgXCJTaGlmdCtUYWJcIjogeWVhclBpY2tlclRhYkV2ZW50SGFuZGxlci50YWJCYWNrLFxuICAgIH0pLFxuICAgIFtEQVRFX1BJQ0tFUl9DQUxFTkRBUl0oZXZlbnQpIHtcbiAgICAgIHRoaXMuZGF0YXNldC5rZXlkb3duS2V5Q29kZSA9IGV2ZW50LmtleUNvZGU7XG4gICAgfSxcbiAgICBbREFURV9QSUNLRVJdKGV2ZW50KSB7XG4gICAgICBjb25zdCBrZXlNYXAgPSBrZXltYXAoe1xuICAgICAgICBFc2NhcGU6IGhhbmRsZUVzY2FwZUZyb21DYWxlbmRhcixcbiAgICAgIH0pO1xuXG4gICAgICBrZXlNYXAoZXZlbnQpO1xuICAgIH0sXG4gIH0sXG4gIGZvY3Vzb3V0OiB7XG4gICAgW0RBVEVfUElDS0VSX0VYVEVSTkFMX0lOUFVUXSgpIHtcbiAgICAgIHZhbGlkYXRlRGF0ZUlucHV0KHRoaXMpO1xuICAgIH0sXG4gICAgW0RBVEVfUElDS0VSXShldmVudCkge1xuICAgICAgaWYgKCF0aGlzLmNvbnRhaW5zKGV2ZW50LnJlbGF0ZWRUYXJnZXQpKSB7XG4gICAgICAgIGhpZGVDYWxlbmRhcih0aGlzKTtcbiAgICAgIH1cbiAgICB9LFxuICB9LFxuICBpbnB1dDoge1xuICAgIFtEQVRFX1BJQ0tFUl9FWFRFUk5BTF9JTlBVVF0oKSB7XG4gICAgICByZWNvbmNpbGVJbnB1dFZhbHVlcyh0aGlzKTtcbiAgICAgIHVwZGF0ZUNhbGVuZGFySWZWaXNpYmxlKHRoaXMpO1xuICAgIH0sXG4gIH0sXG59O1xuXG5pZiAoIWlzSW9zRGV2aWNlKCkpIHtcbiAgZGF0ZVBpY2tlckV2ZW50cy5tb3VzZW92ZXIgPSB7XG4gICAgW0NBTEVOREFSX0RBVEVfQ1VSUkVOVF9NT05USF0oKSB7XG4gICAgICBoYW5kbGVNb3VzZW92ZXJGcm9tRGF0ZSh0aGlzKTtcbiAgICB9LFxuICB9O1xufVxuXG5jb25zdCBkYXRlUGlja2VyID0gYmVoYXZpb3IoZGF0ZVBpY2tlckV2ZW50cywge1xuICBpbml0KHJvb3QpIHtcbiAgICBzZWxlY3RPck1hdGNoZXMoREFURV9QSUNLRVIsIHJvb3QpLmZvckVhY2goKGRhdGVQaWNrZXJFbCkgPT4ge1xuICAgICAgZW5oYW5jZURhdGVQaWNrZXIoZGF0ZVBpY2tlckVsKTtcbiAgICB9KTtcbiAgfSxcbiAgZ2V0RGF0ZVBpY2tlckNvbnRleHQsXG4gIGRpc2FibGUsXG4gIGFyaWFEaXNhYmxlLFxuICBlbmFibGUsXG4gIGlzRGF0ZUlucHV0SW52YWxpZCxcbiAgc2V0Q2FsZW5kYXJWYWx1ZSxcbiAgdmFsaWRhdGVEYXRlSW5wdXQsXG4gIHJlbmRlckNhbGVuZGFyLFxuICB1cGRhdGVDYWxlbmRhcklmVmlzaWJsZSxcbn0pO1xuXG4vLyAjZW5kcmVnaW9uIERhdGUgUGlja2VyIEV2ZW50IERlbGVnYXRpb24gUmVnaXN0cmF0aW9uIC8gQ29tcG9uZW50XG5cbm1vZHVsZS5leHBvcnRzID0gZGF0ZVBpY2tlcjtcbiIsImNvbnN0IGJlaGF2aW9yID0gcmVxdWlyZShcIi4uLy4uL3Vzd2RzLWNvcmUvc3JjL2pzL3V0aWxzL2JlaGF2aW9yXCIpO1xuY29uc3Qgc2VsZWN0ID0gcmVxdWlyZShcIi4uLy4uL3Vzd2RzLWNvcmUvc3JjL2pzL3V0aWxzL3NlbGVjdFwiKTtcbmNvbnN0IHNlbGVjdE9yTWF0Y2hlcyA9IHJlcXVpcmUoXCIuLi8uLi91c3dkcy1jb3JlL3NyYy9qcy91dGlscy9zZWxlY3Qtb3ItbWF0Y2hlc1wiKTtcbmNvbnN0IHsgcHJlZml4OiBQUkVGSVggfSA9IHJlcXVpcmUoXCIuLi8uLi91c3dkcy1jb3JlL3NyYy9qcy9jb25maWdcIik7XG5jb25zdCB7XG4gIGdldERhdGVQaWNrZXJDb250ZXh0LFxuICBpc0RhdGVJbnB1dEludmFsaWQsXG4gIHVwZGF0ZUNhbGVuZGFySWZWaXNpYmxlLFxufSA9IHJlcXVpcmUoXCIuLi8uLi91c2EtZGF0ZS1waWNrZXIvc3JjL2luZGV4XCIpO1xuXG5jb25zdCBEQVRFX1BJQ0tFUl9DTEFTUyA9IGAke1BSRUZJWH0tZGF0ZS1waWNrZXJgO1xuY29uc3QgREFURV9SQU5HRV9QSUNLRVJfQ0xBU1MgPSBgJHtQUkVGSVh9LWRhdGUtcmFuZ2UtcGlja2VyYDtcbmNvbnN0IERBVEVfUkFOR0VfUElDS0VSX1JBTkdFX1NUQVJUX0NMQVNTID0gYCR7REFURV9SQU5HRV9QSUNLRVJfQ0xBU1N9X19yYW5nZS1zdGFydGA7XG5jb25zdCBEQVRFX1JBTkdFX1BJQ0tFUl9SQU5HRV9FTkRfQ0xBU1MgPSBgJHtEQVRFX1JBTkdFX1BJQ0tFUl9DTEFTU31fX3JhbmdlLWVuZGA7XG5cbmNvbnN0IERBVEVfUElDS0VSID0gYC4ke0RBVEVfUElDS0VSX0NMQVNTfWA7XG5jb25zdCBEQVRFX1JBTkdFX1BJQ0tFUiA9IGAuJHtEQVRFX1JBTkdFX1BJQ0tFUl9DTEFTU31gO1xuY29uc3QgREFURV9SQU5HRV9QSUNLRVJfUkFOR0VfU1RBUlQgPSBgLiR7REFURV9SQU5HRV9QSUNLRVJfUkFOR0VfU1RBUlRfQ0xBU1N9YDtcbmNvbnN0IERBVEVfUkFOR0VfUElDS0VSX1JBTkdFX0VORCA9IGAuJHtEQVRFX1JBTkdFX1BJQ0tFUl9SQU5HRV9FTkRfQ0xBU1N9YDtcblxuY29uc3QgREVGQVVMVF9NSU5fREFURSA9IFwiMDAwMC0wMS0wMVwiO1xuXG4vKipcbiAqIFRoZSBwcm9wZXJ0aWVzIGFuZCBlbGVtZW50cyB3aXRoaW4gdGhlIGRhdGUgcmFuZ2UgcGlja2VyLlxuICogQHR5cGVkZWYge09iamVjdH0gRGF0ZVJhbmdlUGlja2VyQ29udGV4dFxuICogQHByb3BlcnR5IHtIVE1MRWxlbWVudH0gZGF0ZVJhbmdlUGlja2VyRWxcbiAqIEBwcm9wZXJ0eSB7SFRNTEVsZW1lbnR9IHJhbmdlU3RhcnRFbFxuICogQHByb3BlcnR5IHtIVE1MRWxlbWVudH0gcmFuZ2VFbmRFbFxuICovXG5cbi8qKlxuICogR2V0IGFuIG9iamVjdCBvZiB0aGUgcHJvcGVydGllcyBhbmQgZWxlbWVudHMgYmVsb25naW5nIGRpcmVjdGx5IHRvIHRoZSBnaXZlblxuICogZGF0ZSBwaWNrZXIgY29tcG9uZW50LlxuICpcbiAqIEBwYXJhbSB7SFRNTEVsZW1lbnR9IGVsIHRoZSBlbGVtZW50IHdpdGhpbiB0aGUgZGF0ZSBwaWNrZXJcbiAqIEByZXR1cm5zIHtEYXRlUmFuZ2VQaWNrZXJDb250ZXh0fSBlbGVtZW50c1xuICovXG5jb25zdCBnZXREYXRlUmFuZ2VQaWNrZXJDb250ZXh0ID0gKGVsKSA9PiB7XG4gIGNvbnN0IGRhdGVSYW5nZVBpY2tlckVsID0gZWwuY2xvc2VzdChEQVRFX1JBTkdFX1BJQ0tFUik7XG5cbiAgaWYgKCFkYXRlUmFuZ2VQaWNrZXJFbCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgRWxlbWVudCBpcyBtaXNzaW5nIG91dGVyICR7REFURV9SQU5HRV9QSUNLRVJ9YCk7XG4gIH1cblxuICBjb25zdCByYW5nZVN0YXJ0RWwgPSBkYXRlUmFuZ2VQaWNrZXJFbC5xdWVyeVNlbGVjdG9yKFxuICAgIERBVEVfUkFOR0VfUElDS0VSX1JBTkdFX1NUQVJULFxuICApO1xuICBjb25zdCByYW5nZUVuZEVsID0gZGF0ZVJhbmdlUGlja2VyRWwucXVlcnlTZWxlY3RvcihcbiAgICBEQVRFX1JBTkdFX1BJQ0tFUl9SQU5HRV9FTkQsXG4gICk7XG5cbiAgcmV0dXJuIHtcbiAgICBkYXRlUmFuZ2VQaWNrZXJFbCxcbiAgICByYW5nZVN0YXJ0RWwsXG4gICAgcmFuZ2VFbmRFbCxcbiAgfTtcbn07XG5cbi8qKlxuICogaGFuZGxlIHVwZGF0ZSBmcm9tIHJhbmdlIHN0YXJ0IGRhdGUgcGlja2VyXG4gKlxuICogQHBhcmFtIHtIVE1MRWxlbWVudH0gZWwgYW4gZWxlbWVudCB3aXRoaW4gdGhlIGRhdGUgcmFuZ2UgcGlja2VyXG4gKi9cbmNvbnN0IGhhbmRsZVJhbmdlU3RhcnRVcGRhdGUgPSAoZWwpID0+IHtcbiAgY29uc3QgeyBkYXRlUmFuZ2VQaWNrZXJFbCwgcmFuZ2VTdGFydEVsLCByYW5nZUVuZEVsIH0gPVxuICAgIGdldERhdGVSYW5nZVBpY2tlckNvbnRleHQoZWwpO1xuICBjb25zdCB7IGludGVybmFsSW5wdXRFbCB9ID0gZ2V0RGF0ZVBpY2tlckNvbnRleHQocmFuZ2VTdGFydEVsKTtcbiAgY29uc3QgdXBkYXRlZERhdGUgPSBpbnRlcm5hbElucHV0RWwudmFsdWU7XG5cbiAgaWYgKHVwZGF0ZWREYXRlICYmICFpc0RhdGVJbnB1dEludmFsaWQoaW50ZXJuYWxJbnB1dEVsKSkge1xuICAgIHJhbmdlRW5kRWwuZGF0YXNldC5taW5EYXRlID0gdXBkYXRlZERhdGU7XG4gICAgcmFuZ2VFbmRFbC5kYXRhc2V0LnJhbmdlRGF0ZSA9IHVwZGF0ZWREYXRlO1xuICAgIHJhbmdlRW5kRWwuZGF0YXNldC5kZWZhdWx0RGF0ZSA9IHVwZGF0ZWREYXRlO1xuICB9IGVsc2Uge1xuICAgIHJhbmdlRW5kRWwuZGF0YXNldC5taW5EYXRlID0gZGF0ZVJhbmdlUGlja2VyRWwuZGF0YXNldC5taW5EYXRlIHx8IFwiXCI7XG4gICAgcmFuZ2VFbmRFbC5kYXRhc2V0LnJhbmdlRGF0ZSA9IFwiXCI7XG4gICAgcmFuZ2VFbmRFbC5kYXRhc2V0LmRlZmF1bHREYXRlID0gXCJcIjtcbiAgfVxuXG4gIHVwZGF0ZUNhbGVuZGFySWZWaXNpYmxlKHJhbmdlRW5kRWwpO1xufTtcblxuLyoqXG4gKiBoYW5kbGUgdXBkYXRlIGZyb20gcmFuZ2Ugc3RhcnQgZGF0ZSBwaWNrZXJcbiAqXG4gKiBAcGFyYW0ge0hUTUxFbGVtZW50fSBlbCBhbiBlbGVtZW50IHdpdGhpbiB0aGUgZGF0ZSByYW5nZSBwaWNrZXJcbiAqL1xuY29uc3QgaGFuZGxlUmFuZ2VFbmRVcGRhdGUgPSAoZWwpID0+IHtcbiAgY29uc3QgeyBkYXRlUmFuZ2VQaWNrZXJFbCwgcmFuZ2VTdGFydEVsLCByYW5nZUVuZEVsIH0gPVxuICAgIGdldERhdGVSYW5nZVBpY2tlckNvbnRleHQoZWwpO1xuICBjb25zdCB7IGludGVybmFsSW5wdXRFbCB9ID0gZ2V0RGF0ZVBpY2tlckNvbnRleHQocmFuZ2VFbmRFbCk7XG4gIGNvbnN0IHVwZGF0ZWREYXRlID0gaW50ZXJuYWxJbnB1dEVsLnZhbHVlO1xuXG4gIGlmICh1cGRhdGVkRGF0ZSAmJiAhaXNEYXRlSW5wdXRJbnZhbGlkKGludGVybmFsSW5wdXRFbCkpIHtcbiAgICByYW5nZVN0YXJ0RWwuZGF0YXNldC5tYXhEYXRlID0gdXBkYXRlZERhdGU7XG4gICAgcmFuZ2VTdGFydEVsLmRhdGFzZXQucmFuZ2VEYXRlID0gdXBkYXRlZERhdGU7XG4gICAgcmFuZ2VTdGFydEVsLmRhdGFzZXQuZGVmYXVsdERhdGUgPSB1cGRhdGVkRGF0ZTtcbiAgfSBlbHNlIHtcbiAgICByYW5nZVN0YXJ0RWwuZGF0YXNldC5tYXhEYXRlID0gZGF0ZVJhbmdlUGlja2VyRWwuZGF0YXNldC5tYXhEYXRlIHx8IFwiXCI7XG4gICAgcmFuZ2VTdGFydEVsLmRhdGFzZXQucmFuZ2VEYXRlID0gXCJcIjtcbiAgICByYW5nZVN0YXJ0RWwuZGF0YXNldC5kZWZhdWx0RGF0ZSA9IFwiXCI7XG4gIH1cblxuICB1cGRhdGVDYWxlbmRhcklmVmlzaWJsZShyYW5nZVN0YXJ0RWwpO1xufTtcblxuLyoqXG4gKiBFbmhhbmNlIGFuIGlucHV0IHdpdGggdGhlIGRhdGUgcGlja2VyIGVsZW1lbnRzXG4gKlxuICogQHBhcmFtIHtIVE1MRWxlbWVudH0gZWwgVGhlIGluaXRpYWwgd3JhcHBpbmcgZWxlbWVudCBvZiB0aGUgZGF0ZSByYW5nZSBwaWNrZXIgY29tcG9uZW50XG4gKi9cbmNvbnN0IGVuaGFuY2VEYXRlUmFuZ2VQaWNrZXIgPSAoZWwpID0+IHtcbiAgY29uc3QgZGF0ZVJhbmdlUGlja2VyRWwgPSBlbC5jbG9zZXN0KERBVEVfUkFOR0VfUElDS0VSKTtcblxuICBjb25zdCBbcmFuZ2VTdGFydCwgcmFuZ2VFbmRdID0gc2VsZWN0KERBVEVfUElDS0VSLCBkYXRlUmFuZ2VQaWNrZXJFbCk7XG5cbiAgaWYgKCFyYW5nZVN0YXJ0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYCR7REFURV9SQU5HRV9QSUNLRVJ9IGlzIG1pc3NpbmcgaW5uZXIgdHdvICcke0RBVEVfUElDS0VSfScgZWxlbWVudHNgLFxuICAgICk7XG4gIH1cblxuICBpZiAoIXJhbmdlRW5kKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYCR7REFURV9SQU5HRV9QSUNLRVJ9IGlzIG1pc3Npbmcgc2Vjb25kICcke0RBVEVfUElDS0VSfScgZWxlbWVudGAsXG4gICAgKTtcbiAgfVxuXG4gIHJhbmdlU3RhcnQuY2xhc3NMaXN0LmFkZChEQVRFX1JBTkdFX1BJQ0tFUl9SQU5HRV9TVEFSVF9DTEFTUyk7XG4gIHJhbmdlRW5kLmNsYXNzTGlzdC5hZGQoREFURV9SQU5HRV9QSUNLRVJfUkFOR0VfRU5EX0NMQVNTKTtcblxuICBpZiAoIWRhdGVSYW5nZVBpY2tlckVsLmRhdGFzZXQubWluRGF0ZSkge1xuICAgIGRhdGVSYW5nZVBpY2tlckVsLmRhdGFzZXQubWluRGF0ZSA9IERFRkFVTFRfTUlOX0RBVEU7XG4gIH1cblxuICBjb25zdCB7IG1pbkRhdGUgfSA9IGRhdGVSYW5nZVBpY2tlckVsLmRhdGFzZXQ7XG4gIHJhbmdlU3RhcnQuZGF0YXNldC5taW5EYXRlID0gbWluRGF0ZTtcbiAgcmFuZ2VFbmQuZGF0YXNldC5taW5EYXRlID0gbWluRGF0ZTtcblxuICBjb25zdCB7IG1heERhdGUgfSA9IGRhdGVSYW5nZVBpY2tlckVsLmRhdGFzZXQ7XG4gIGlmIChtYXhEYXRlKSB7XG4gICAgcmFuZ2VTdGFydC5kYXRhc2V0Lm1heERhdGUgPSBtYXhEYXRlO1xuICAgIHJhbmdlRW5kLmRhdGFzZXQubWF4RGF0ZSA9IG1heERhdGU7XG4gIH1cblxuICBoYW5kbGVSYW5nZVN0YXJ0VXBkYXRlKGRhdGVSYW5nZVBpY2tlckVsKTtcbiAgaGFuZGxlUmFuZ2VFbmRVcGRhdGUoZGF0ZVJhbmdlUGlja2VyRWwpO1xufTtcblxuY29uc3QgZGF0ZVJhbmdlUGlja2VyID0gYmVoYXZpb3IoXG4gIHtcbiAgICBcImlucHV0IGNoYW5nZVwiOiB7XG4gICAgICBbREFURV9SQU5HRV9QSUNLRVJfUkFOR0VfU1RBUlRdKCkge1xuICAgICAgICBoYW5kbGVSYW5nZVN0YXJ0VXBkYXRlKHRoaXMpO1xuICAgICAgfSxcbiAgICAgIFtEQVRFX1JBTkdFX1BJQ0tFUl9SQU5HRV9FTkRdKCkge1xuICAgICAgICBoYW5kbGVSYW5nZUVuZFVwZGF0ZSh0aGlzKTtcbiAgICAgIH0sXG4gICAgfSxcbiAgfSxcbiAge1xuICAgIGluaXQocm9vdCkge1xuICAgICAgc2VsZWN0T3JNYXRjaGVzKERBVEVfUkFOR0VfUElDS0VSLCByb290KS5mb3JFYWNoKChkYXRlUmFuZ2VQaWNrZXJFbCkgPT4ge1xuICAgICAgICBlbmhhbmNlRGF0ZVJhbmdlUGlja2VyKGRhdGVSYW5nZVBpY2tlckVsKTtcbiAgICAgIH0pO1xuICAgIH0sXG4gIH0sXG4pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGRhdGVSYW5nZVBpY2tlcjtcbiIsImNvbnN0IHNlbGVjdE9yTWF0Y2hlcyA9IHJlcXVpcmUoXCIuLi8uLi91c3dkcy1jb3JlL3NyYy9qcy91dGlscy9zZWxlY3Qtb3ItbWF0Y2hlc1wiKTtcbmNvbnN0IGJlaGF2aW9yID0gcmVxdWlyZShcIi4uLy4uL3Vzd2RzLWNvcmUvc3JjL2pzL3V0aWxzL2JlaGF2aW9yXCIpO1xuY29uc3QgU2FuaXRpemVyID0gcmVxdWlyZShcIi4uLy4uL3Vzd2RzLWNvcmUvc3JjL2pzL3V0aWxzL3Nhbml0aXplclwiKTtcbmNvbnN0IHsgcHJlZml4OiBQUkVGSVggfSA9IHJlcXVpcmUoXCIuLi8uLi91c3dkcy1jb3JlL3NyYy9qcy9jb25maWdcIik7XG5cbmNvbnN0IERST1BaT05FX0NMQVNTID0gYCR7UFJFRklYfS1maWxlLWlucHV0YDtcbmNvbnN0IERST1BaT05FID0gYC4ke0RST1BaT05FX0NMQVNTfWA7XG5jb25zdCBJTlBVVF9DTEFTUyA9IGAke1BSRUZJWH0tZmlsZS1pbnB1dF9faW5wdXRgO1xuY29uc3QgVEFSR0VUX0NMQVNTID0gYCR7UFJFRklYfS1maWxlLWlucHV0X190YXJnZXRgO1xuY29uc3QgSU5QVVQgPSBgLiR7SU5QVVRfQ0xBU1N9YDtcbmNvbnN0IEJPWF9DTEFTUyA9IGAke1BSRUZJWH0tZmlsZS1pbnB1dF9fYm94YDtcbmNvbnN0IElOU1RSVUNUSU9OU19DTEFTUyA9IGAke1BSRUZJWH0tZmlsZS1pbnB1dF9faW5zdHJ1Y3Rpb25zYDtcbmNvbnN0IFBSRVZJRVdfQ0xBU1MgPSBgJHtQUkVGSVh9LWZpbGUtaW5wdXRfX3ByZXZpZXdgO1xuY29uc3QgUFJFVklFV19IRUFESU5HX0NMQVNTID0gYCR7UFJFRklYfS1maWxlLWlucHV0X19wcmV2aWV3LWhlYWRpbmdgO1xuY29uc3QgRElTQUJMRURfQ0xBU1MgPSBgJHtQUkVGSVh9LWZpbGUtaW5wdXQtLWRpc2FibGVkYDtcbmNvbnN0IENIT09TRV9DTEFTUyA9IGAke1BSRUZJWH0tZmlsZS1pbnB1dF9fY2hvb3NlYDtcbmNvbnN0IEFDQ0VQVEVEX0ZJTEVfTUVTU0FHRV9DTEFTUyA9IGAke1BSRUZJWH0tZmlsZS1pbnB1dF9fYWNjZXB0ZWQtZmlsZXMtbWVzc2FnZWA7XG5jb25zdCBEUkFHX1RFWFRfQ0xBU1MgPSBgJHtQUkVGSVh9LWZpbGUtaW5wdXRfX2RyYWctdGV4dGA7XG5jb25zdCBEUkFHX0NMQVNTID0gYCR7UFJFRklYfS1maWxlLWlucHV0LS1kcmFnYDtcbmNvbnN0IExPQURJTkdfQ0xBU1MgPSBcImlzLWxvYWRpbmdcIjtcbmNvbnN0IElOVkFMSURfRklMRV9DTEFTUyA9IFwiaGFzLWludmFsaWQtZmlsZVwiO1xuY29uc3QgR0VORVJJQ19QUkVWSUVXX0NMQVNTX05BTUUgPSBgJHtQUkVGSVh9LWZpbGUtaW5wdXRfX3ByZXZpZXctaW1hZ2VgO1xuY29uc3QgR0VORVJJQ19QUkVWSUVXX0NMQVNTID0gYCR7R0VORVJJQ19QUkVWSUVXX0NMQVNTX05BTUV9LS1nZW5lcmljYDtcbmNvbnN0IFBERl9QUkVWSUVXX0NMQVNTID0gYCR7R0VORVJJQ19QUkVWSUVXX0NMQVNTX05BTUV9LS1wZGZgO1xuY29uc3QgV09SRF9QUkVWSUVXX0NMQVNTID0gYCR7R0VORVJJQ19QUkVWSUVXX0NMQVNTX05BTUV9LS13b3JkYDtcbmNvbnN0IFZJREVPX1BSRVZJRVdfQ0xBU1MgPSBgJHtHRU5FUklDX1BSRVZJRVdfQ0xBU1NfTkFNRX0tLXZpZGVvYDtcbmNvbnN0IEVYQ0VMX1BSRVZJRVdfQ0xBU1MgPSBgJHtHRU5FUklDX1BSRVZJRVdfQ0xBU1NfTkFNRX0tLWV4Y2VsYDtcbmNvbnN0IFNSX09OTFlfQ0xBU1MgPSBgJHtQUkVGSVh9LXNyLW9ubHlgO1xuY29uc3QgU1BBQ0VSX0dJRiA9XG4gIFwiZGF0YTppbWFnZS9naWY7YmFzZTY0LFIwbEdPRGxoQVFBQkFJQUFBQUFBQVAvLy95SDVCQUVBQUFBQUxBQUFBQUFCQUFFQUFBSUJSQUE3XCI7XG5jb25zdCBERUZBVUxUX0VSUk9SX0xBQkVMX1RFWFQgPSBcIkVycm9yOiBUaGlzIGlzIG5vdCBhIHZhbGlkIGZpbGUgdHlwZS5cIjtcblxubGV0IFRZUEVfSVNfVkFMSUQgPSBCb29sZWFuKHRydWUpOyAvLyBsb2dpYyBnYXRlIGZvciBjaGFuZ2UgbGlzdGVuZXJcbmxldCBERUZBVUxUX0FSSUFfTEFCRUxfVEVYVCA9IFwiXCI7XG5sZXQgREVGQVVMVF9GSUxFX1NUQVRVU19URVhUID0gXCJcIjtcblxuLyoqXG4gKiBUaGUgcHJvcGVydGllcyBhbmQgZWxlbWVudHMgd2l0aGluIHRoZSBmaWxlIGlucHV0LlxuICogQHR5cGVkZWYge09iamVjdH0gRmlsZUlucHV0Q29udGV4dFxuICogQHByb3BlcnR5IHtIVE1MRGl2RWxlbWVudH0gZHJvcFpvbmVFbFxuICogQHByb3BlcnR5IHtIVE1MSW5wdXRFbGVtZW50fSBpbnB1dEVsXG4gKi9cblxuLyoqXG4gKiBHZXQgYW4gb2JqZWN0IG9mIHRoZSBwcm9wZXJ0aWVzIGFuZCBlbGVtZW50cyBiZWxvbmdpbmcgZGlyZWN0bHkgdG8gdGhlIGdpdmVuXG4gKiBmaWxlIGlucHV0IGNvbXBvbmVudC5cbiAqXG4gKiBAcGFyYW0ge0hUTUxFbGVtZW50fSBlbCB0aGUgZWxlbWVudCB3aXRoaW4gdGhlIGZpbGUgaW5wdXRcbiAqIEByZXR1cm5zIHtGaWxlSW5wdXRDb250ZXh0fSBlbGVtZW50c1xuICovXG5jb25zdCBnZXRGaWxlSW5wdXRDb250ZXh0ID0gKGVsKSA9PiB7XG4gIGNvbnN0IGRyb3Bab25lRWwgPSBlbC5jbG9zZXN0KERST1BaT05FKTtcblxuICBpZiAoIWRyb3Bab25lRWwpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEVsZW1lbnQgaXMgbWlzc2luZyBvdXRlciAke0RST1BaT05FfWApO1xuICB9XG5cbiAgY29uc3QgaW5wdXRFbCA9IGRyb3Bab25lRWwucXVlcnlTZWxlY3RvcihJTlBVVCk7XG5cbiAgcmV0dXJuIHtcbiAgICBkcm9wWm9uZUVsLFxuICAgIGlucHV0RWwsXG4gIH07XG59O1xuXG4vKipcbiAqIERpc2FibGUgdGhlIGZpbGUgaW5wdXQgY29tcG9uZW50XG4gKlxuICogQHBhcmFtIHtIVE1MRWxlbWVudH0gZWwgQW4gZWxlbWVudCB3aXRoaW4gdGhlIGZpbGUgaW5wdXQgY29tcG9uZW50XG4gKi9cbmNvbnN0IGRpc2FibGUgPSAoZWwpID0+IHtcbiAgY29uc3QgeyBkcm9wWm9uZUVsLCBpbnB1dEVsIH0gPSBnZXRGaWxlSW5wdXRDb250ZXh0KGVsKTtcblxuICBpbnB1dEVsLmRpc2FibGVkID0gdHJ1ZTtcbiAgZHJvcFpvbmVFbC5jbGFzc0xpc3QuYWRkKERJU0FCTEVEX0NMQVNTKTtcbn07XG5cbi8qKlxuICogU2V0IGFyaWEtZGlzYWJsZWQgYXR0cmlidXRlIHRvIGZpbGUgaW5wdXQgY29tcG9uZW50XG4gKlxuICogQHBhcmFtIHtIVE1MRWxlbWVudH0gZWwgQW4gZWxlbWVudCB3aXRoaW4gdGhlIGZpbGUgaW5wdXQgY29tcG9uZW50XG4gKi9cbmNvbnN0IGFyaWFEaXNhYmxlID0gKGVsKSA9PiB7XG4gIGNvbnN0IHsgZHJvcFpvbmVFbCB9ID0gZ2V0RmlsZUlucHV0Q29udGV4dChlbCk7XG5cbiAgZHJvcFpvbmVFbC5jbGFzc0xpc3QuYWRkKERJU0FCTEVEX0NMQVNTKTtcbn07XG5cbi8qKlxuICogRW5hYmxlIHRoZSBmaWxlIGlucHV0IGNvbXBvbmVudFxuICpcbiAqIEBwYXJhbSB7SFRNTEVsZW1lbnR9IGVsIEFuIGVsZW1lbnQgd2l0aGluIHRoZSBmaWxlIGlucHV0IGNvbXBvbmVudFxuICovXG5jb25zdCBlbmFibGUgPSAoZWwpID0+IHtcbiAgY29uc3QgeyBkcm9wWm9uZUVsLCBpbnB1dEVsIH0gPSBnZXRGaWxlSW5wdXRDb250ZXh0KGVsKTtcblxuICBpbnB1dEVsLmRpc2FibGVkID0gZmFsc2U7XG4gIGRyb3Bab25lRWwuY2xhc3NMaXN0LnJlbW92ZShESVNBQkxFRF9DTEFTUyk7XG4gIGRyb3Bab25lRWwucmVtb3ZlQXR0cmlidXRlKFwiYXJpYS1kaXNhYmxlZFwiKTtcbn07XG5cbi8qKlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBzIHNwZWNpYWwgY2hhcmFjdGVyc1xuICogQHJldHVybnMge1N0cmluZ30gcmVwbGFjZXMgc3BlY2lmaWVkIHZhbHVlc1xuICovXG5jb25zdCByZXBsYWNlTmFtZSA9IChzKSA9PiB7XG4gIGNvbnN0IGMgPSBzLmNoYXJDb2RlQXQoMCk7XG4gIGlmIChjID09PSAzMikgcmV0dXJuIFwiLVwiO1xuICBpZiAoYyA+PSA2NSAmJiBjIDw9IDkwKSByZXR1cm4gYGltZ18ke3MudG9Mb3dlckNhc2UoKX1gO1xuICByZXR1cm4gYF9fJHsoXCIwMDBcIiwgYy50b1N0cmluZygxNikpLnNsaWNlKC00KX1gO1xufTtcblxuLyoqXG4gKiBDcmVhdGVzIGFuIElEIG5hbWUgZm9yIGVhY2ggZmlsZSB0aGF0IHN0cmlwcyBhbGwgaW52YWxpZCBjaGFyYWN0ZXJzLlxuICogQHBhcmFtIHtTdHJpbmd9IG5hbWUgLSBuYW1lIG9mIHRoZSBmaWxlIGFkZGVkIHRvIGZpbGUgaW5wdXQgKHNlYXJjaHZhbHVlKVxuICogQHJldHVybnMge1N0cmluZ30gc2FtZSBjaGFyYWN0ZXJzIGFzIHRoZSBuYW1lIHdpdGggaW52YWxpZCBjaGFycyByZW1vdmVkIChuZXd2YWx1ZSlcbiAqL1xuY29uc3QgbWFrZVNhZmVGb3JJRCA9IChuYW1lKSA9PiBuYW1lLnJlcGxhY2UoL1teYS16MC05XS9nLCByZXBsYWNlTmFtZSk7XG5cbi8vIFRha2VzIGEgZ2VuZXJhdGVkIHNhZmUgSUQgYW5kIGNyZWF0ZXMgYSB1bmlxdWUgSUQuXG5jb25zdCBjcmVhdGVVbmlxdWVJRCA9IChuYW1lKSA9PlxuICBgJHtuYW1lfS0ke01hdGguZmxvb3IoRGF0ZS5ub3coKS50b1N0cmluZygpIC8gMTAwMCl9YDtcblxuLyoqXG4gKiBEZXRlcm1pbmVzIGlmIHRoZSBzaW5ndWxhciBvciBwbHVyYWwgaXRlbSBsYWJlbCBzaG91bGQgYmUgdXNlZFxuICogRGV0ZXJtaW5hdGlvbiBpcyBiYXNlZCBvbiB0aGUgcHJlc2VuY2Ugb2YgdGhlIGBtdWx0aXBsZWAgYXR0cmlidXRlXG4gKlxuICogQHBhcmFtIHtIVE1MSW5wdXRFbGVtZW50fSBmaWxlSW5wdXRFbCAtIFRoZSBpbnB1dCBlbGVtZW50LlxuICogQHJldHVybnMge0hUTUxEaXZFbGVtZW50fSBUaGUgc2luZ3VsYXIgb3IgcGx1cmFsIHZlcnNpb24gb2YgXCJpdGVtXCJcbiAqL1xuY29uc3QgZ2V0SXRlbXNMYWJlbCA9IChmaWxlSW5wdXRFbCkgPT4ge1xuICBjb25zdCBhY2NlcHRzTXVsdGlwbGUgPSBmaWxlSW5wdXRFbC5oYXNBdHRyaWJ1dGUoXCJtdWx0aXBsZVwiKTtcbiAgY29uc3QgaXRlbXNMYWJlbCA9IGFjY2VwdHNNdWx0aXBsZSA/IFwiZmlsZXNcIiA6IFwiZmlsZVwiO1xuXG4gIHJldHVybiBpdGVtc0xhYmVsO1xufTtcblxuLyoqXG4gKiBTY2FmZm9sZCB0aGUgZmlsZSBpbnB1dCBjb21wb25lbnQgd2l0aCBhIHBhcmVudCB3cmFwcGVyIGFuZFxuICogQ3JlYXRlIGEgdGFyZ2V0IGFyZWEgb3ZlcmxheSBmb3IgZHJhZyBhbmQgZHJvcCBmdW5jdGlvbmFsaXR5XG4gKlxuICogQHBhcmFtIHtIVE1MSW5wdXRFbGVtZW50fSBmaWxlSW5wdXRFbCAtIFRoZSBpbnB1dCBlbGVtZW50LlxuICogQHJldHVybnMge0hUTUxEaXZFbGVtZW50fSBUaGUgZHJhZyBhbmQgZHJvcCB0YXJnZXQgYXJlYS5cbiAqL1xuY29uc3QgY3JlYXRlVGFyZ2V0QXJlYSA9IChmaWxlSW5wdXRFbCkgPT4ge1xuICBjb25zdCBmaWxlSW5wdXRQYXJlbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xuICBjb25zdCBkcm9wVGFyZ2V0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcbiAgY29uc3QgYm94ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcblxuICAvLyBBZGRzIGNsYXNzIG5hbWVzIGFuZCBvdGhlciBhdHRyaWJ1dGVzXG4gIGZpbGVJbnB1dEVsLmNsYXNzTGlzdC5yZW1vdmUoRFJPUFpPTkVfQ0xBU1MpO1xuICBmaWxlSW5wdXRFbC5jbGFzc0xpc3QuYWRkKElOUFVUX0NMQVNTKTtcbiAgZmlsZUlucHV0UGFyZW50LmNsYXNzTGlzdC5hZGQoRFJPUFpPTkVfQ0xBU1MpO1xuICBib3guY2xhc3NMaXN0LmFkZChCT1hfQ0xBU1MpO1xuICBkcm9wVGFyZ2V0LmNsYXNzTGlzdC5hZGQoVEFSR0VUX0NMQVNTKTtcblxuICAvLyBBZGRzIGNoaWxkIGVsZW1lbnRzIHRvIHRoZSBET01cbiAgZHJvcFRhcmdldC5wcmVwZW5kKGJveCk7XG4gIGZpbGVJbnB1dEVsLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGRyb3BUYXJnZXQsIGZpbGVJbnB1dEVsKTtcbiAgZmlsZUlucHV0RWwucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZmlsZUlucHV0UGFyZW50LCBkcm9wVGFyZ2V0KTtcbiAgZHJvcFRhcmdldC5hcHBlbmRDaGlsZChmaWxlSW5wdXRFbCk7XG4gIGZpbGVJbnB1dFBhcmVudC5hcHBlbmRDaGlsZChkcm9wVGFyZ2V0KTtcblxuICByZXR1cm4gZHJvcFRhcmdldDtcbn07XG5cbi8qKlxuICogQnVpbGQgdGhlIHZpc2libGUgZWxlbWVudCB3aXRoIGRlZmF1bHQgaW50ZXJhY3Rpb24gaW5zdHJ1Y3Rpb25zLlxuICpcbiAqIEBwYXJhbSB7SFRNTElucHV0RWxlbWVudH0gZmlsZUlucHV0RWwgLSBUaGUgaW5wdXQgZWxlbWVudC5cbiAqIEByZXR1cm5zIHtIVE1MRGl2RWxlbWVudH0gVGhlIGNvbnRhaW5lciBmb3IgdmlzaWJsZSBpbnRlcmFjdGlvbiBpbnN0cnVjdGlvbnMuXG4gKi9cbmNvbnN0IGNyZWF0ZVZpc2libGVJbnN0cnVjdGlvbnMgPSAoZmlsZUlucHV0RWwpID0+IHtcbiAgY29uc3QgZmlsZUlucHV0UGFyZW50ID0gZmlsZUlucHV0RWwuY2xvc2VzdChEUk9QWk9ORSk7XG4gIGNvbnN0IGl0ZW1zTGFiZWwgPSBnZXRJdGVtc0xhYmVsKGZpbGVJbnB1dEVsKTtcbiAgY29uc3QgaW5zdHJ1Y3Rpb25zID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcbiAgY29uc3QgZHJhZ1RleHQgPSBgRHJhZyAke2l0ZW1zTGFiZWx9IGhlcmUgb3JgO1xuICBjb25zdCBjaG9vc2VUZXh0ID0gXCJjaG9vc2UgZnJvbSBmb2xkZXJcIjtcblxuICAvLyBDcmVhdGUgaW5zdHJ1Y3Rpb25zIHRleHQgZm9yIGFyaWEtbGFiZWxcbiAgREVGQVVMVF9BUklBX0xBQkVMX1RFWFQgPSBgJHtkcmFnVGV4dH0gJHtjaG9vc2VUZXh0fWA7XG5cbiAgLy8gQWRkcyBjbGFzcyBuYW1lcyBhbmQgb3RoZXIgYXR0cmlidXRlc1xuICBpbnN0cnVjdGlvbnMuY2xhc3NMaXN0LmFkZChJTlNUUlVDVElPTlNfQ0xBU1MpO1xuICBpbnN0cnVjdGlvbnMuc2V0QXR0cmlidXRlKFwiYXJpYS1oaWRkZW5cIiwgXCJ0cnVlXCIpO1xuXG4gIC8vIEFkZCBpbml0aWFsIGluc3RydWN0aW9ucyBmb3IgaW5wdXQgdXNhZ2VcbiAgZmlsZUlucHV0RWwuc2V0QXR0cmlidXRlKFwiYXJpYS1sYWJlbFwiLCBERUZBVUxUX0FSSUFfTEFCRUxfVEVYVCk7XG4gIGluc3RydWN0aW9ucy5pbm5lckhUTUwgPSBTYW5pdGl6ZXIuZXNjYXBlSFRNTGA8c3BhbiBjbGFzcz1cIiR7RFJBR19URVhUX0NMQVNTfVwiPiR7ZHJhZ1RleHR9PC9zcGFuPiA8c3BhbiBjbGFzcz1cIiR7Q0hPT1NFX0NMQVNTfVwiPiR7Y2hvb3NlVGV4dH08L3NwYW4+YDtcblxuICAvLyBBZGQgdGhlIGluc3RydWN0aW9ucyBlbGVtZW50IHRvIHRoZSBET01cbiAgZmlsZUlucHV0RWwucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoaW5zdHJ1Y3Rpb25zLCBmaWxlSW5wdXRFbCk7XG5cbiAgLy8gSUUxMSBhbmQgRWRnZSBkbyBub3Qgc3VwcG9ydCBkcm9wIGZpbGVzIG9uIGZpbGUgaW5wdXRzLCBzbyB3ZSd2ZSByZW1vdmVkIHRleHQgdGhhdCBpbmRpY2F0ZXMgdGhhdFxuICBpZiAoXG4gICAgL3J2OjExLjAvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpIHx8XG4gICAgL0VkZ2VcXC9cXGQuL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KVxuICApIHtcbiAgICBmaWxlSW5wdXRQYXJlbnQucXVlcnlTZWxlY3RvcihgLiR7RFJBR19URVhUX0NMQVNTfWApLm91dGVySFRNTCA9IFwiXCI7XG4gIH1cblxuICByZXR1cm4gaW5zdHJ1Y3Rpb25zO1xufTtcblxuLyoqXG4gKiBCdWlsZCBhIHNjcmVlbiByZWFkZXItb25seSBtZXNzYWdlIGVsZW1lbnQgdGhhdCBjb250YWlucyBmaWxlIHN0YXR1cyB1cGRhdGVzIGFuZFxuICogQ3JlYXRlIGFuZCBzZXQgdGhlIGRlZmF1bHQgZmlsZSBzdGF0dXMgbWVzc2FnZVxuICpcbiAqIEBwYXJhbSB7SFRNTElucHV0RWxlbWVudH0gZmlsZUlucHV0RWwgLSBUaGUgaW5wdXQgZWxlbWVudC5cbiAqL1xuY29uc3QgY3JlYXRlU1JPbmx5U3RhdHVzID0gKGZpbGVJbnB1dEVsKSA9PiB7XG4gIGNvbnN0IHN0YXR1c0VsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcbiAgY29uc3QgaXRlbXNMYWJlbCA9IGdldEl0ZW1zTGFiZWwoZmlsZUlucHV0RWwpO1xuICBjb25zdCBmaWxlSW5wdXRQYXJlbnQgPSBmaWxlSW5wdXRFbC5jbG9zZXN0KERST1BaT05FKTtcbiAgY29uc3QgZmlsZUlucHV0VGFyZ2V0ID0gZmlsZUlucHV0RWwuY2xvc2VzdChgLiR7VEFSR0VUX0NMQVNTfWApO1xuXG4gIERFRkFVTFRfRklMRV9TVEFUVVNfVEVYVCA9IGBObyAke2l0ZW1zTGFiZWx9IHNlbGVjdGVkLmA7XG5cbiAgLy8gQWRkcyBjbGFzcyBuYW1lcyBhbmQgb3RoZXIgYXR0cmlidXRlc1xuICBzdGF0dXNFbC5jbGFzc0xpc3QuYWRkKFNSX09OTFlfQ0xBU1MpO1xuICBzdGF0dXNFbC5zZXRBdHRyaWJ1dGUoXCJhcmlhLWxpdmVcIiwgXCJwb2xpdGVcIik7XG5cbiAgLy8gQWRkIGluaXRpYWwgZmlsZSBzdGF0dXMgbWVzc2FnZVxuICBzdGF0dXNFbC50ZXh0Q29udGVudCA9IERFRkFVTFRfRklMRV9TVEFUVVNfVEVYVDtcblxuICAvLyBBZGQgdGhlIHN0YXR1cyBlbGVtZW50IHRvIHRoZSBET01cbiAgZmlsZUlucHV0UGFyZW50Lmluc2VydEJlZm9yZShzdGF0dXNFbCwgZmlsZUlucHV0VGFyZ2V0KTtcbn07XG5cbi8qKlxuICogU2NhZmZvbGQgdGhlIGNvbXBvbmVudCB3aXRoIGFsbCByZXF1aXJlZCBlbGVtZW50c1xuICpcbiAqIEBwYXJhbSB7SFRNTElucHV0RWxlbWVudH0gZmlsZUlucHV0RWwgLSBUaGUgb3JpZ2luYWwgaW5wdXQgZWxlbWVudC5cbiAqL1xuY29uc3QgZW5oYW5jZUZpbGVJbnB1dCA9IChmaWxlSW5wdXRFbCkgPT4ge1xuICBjb25zdCBpc0lucHV0RGlzYWJsZWQgPVxuICAgIGZpbGVJbnB1dEVsLmhhc0F0dHJpYnV0ZShcImFyaWEtZGlzYWJsZWRcIikgfHxcbiAgICBmaWxlSW5wdXRFbC5oYXNBdHRyaWJ1dGUoXCJkaXNhYmxlZFwiKTtcbiAgY29uc3QgZHJvcFRhcmdldCA9IGNyZWF0ZVRhcmdldEFyZWEoZmlsZUlucHV0RWwpO1xuICBjb25zdCBpbnN0cnVjdGlvbnMgPSBjcmVhdGVWaXNpYmxlSW5zdHJ1Y3Rpb25zKGZpbGVJbnB1dEVsKTtcbiAgY29uc3QgeyBkcm9wWm9uZUVsIH0gPSBnZXRGaWxlSW5wdXRDb250ZXh0KGZpbGVJbnB1dEVsKTtcblxuICBpZiAoaXNJbnB1dERpc2FibGVkKSB7XG4gICAgZHJvcFpvbmVFbC5jbGFzc0xpc3QuYWRkKERJU0FCTEVEX0NMQVNTKTtcbiAgfSBlbHNlIHtcbiAgICBjcmVhdGVTUk9ubHlTdGF0dXMoZmlsZUlucHV0RWwpO1xuICB9XG5cbiAgcmV0dXJuIHsgaW5zdHJ1Y3Rpb25zLCBkcm9wVGFyZ2V0IH07XG59O1xuXG4vKipcbiAqIFJlbW92ZXMgaW1hZ2UgcHJldmlld3NcbiAqIFdlIHdhbnQgdG8gc3RhcnQgd2l0aCBhIGNsZWFuIGxpc3QgZXZlcnkgdGltZSBmaWxlcyBhcmUgYWRkZWQgdG8gdGhlIGZpbGUgaW5wdXRcbiAqXG4gKiBAcGFyYW0ge0hUTUxEaXZFbGVtZW50fSBkcm9wVGFyZ2V0IC0gVGhlIGRyYWcgYW5kIGRyb3AgdGFyZ2V0IGFyZWEuXG4gKiBAcGFyYW0ge0hUTUxEaXZFbGVtZW50fSBpbnN0cnVjdGlvbnMgLSBUaGUgY29udGFpbmVyIGZvciB2aXNpYmxlIGludGVyYWN0aW9uIGluc3RydWN0aW9ucy5cbiAqL1xuY29uc3QgcmVtb3ZlT2xkUHJldmlld3MgPSAoZHJvcFRhcmdldCwgaW5zdHJ1Y3Rpb25zKSA9PiB7XG4gIGNvbnN0IGZpbGVQcmV2aWV3cyA9IGRyb3BUYXJnZXQucXVlcnlTZWxlY3RvckFsbChgLiR7UFJFVklFV19DTEFTU31gKTtcbiAgY29uc3QgY3VycmVudFByZXZpZXdIZWFkaW5nID0gZHJvcFRhcmdldC5xdWVyeVNlbGVjdG9yKFxuICAgIGAuJHtQUkVWSUVXX0hFQURJTkdfQ0xBU1N9YCxcbiAgKTtcbiAgY29uc3QgY3VycmVudEVycm9yTWVzc2FnZSA9IGRyb3BUYXJnZXQucXVlcnlTZWxlY3RvcihcbiAgICBgLiR7QUNDRVBURURfRklMRV9NRVNTQUdFX0NMQVNTfWAsXG4gICk7XG5cbiAgLyoqXG4gICAqIGZpbmRzIHRoZSBwYXJlbnQgb2YgdGhlIHBhc3NlZCBub2RlIGFuZCByZW1vdmVzIHRoZSBjaGlsZFxuICAgKiBAcGFyYW0ge0hUTUxFbGVtZW50fSBub2RlXG4gICAqL1xuICBjb25zdCByZW1vdmVJbWFnZXMgPSAobm9kZSkgPT4ge1xuICAgIG5vZGUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChub2RlKTtcbiAgfTtcblxuICAvLyBSZW1vdmUgdGhlIGhlYWRpbmcgYWJvdmUgdGhlIHByZXZpZXdzXG4gIGlmIChjdXJyZW50UHJldmlld0hlYWRpbmcpIHtcbiAgICBjdXJyZW50UHJldmlld0hlYWRpbmcub3V0ZXJIVE1MID0gXCJcIjtcbiAgfVxuXG4gIC8vIFJlbW92ZSBleGlzdGluZyBlcnJvciBtZXNzYWdlc1xuICBpZiAoY3VycmVudEVycm9yTWVzc2FnZSkge1xuICAgIGN1cnJlbnRFcnJvck1lc3NhZ2Uub3V0ZXJIVE1MID0gXCJcIjtcbiAgICBkcm9wVGFyZ2V0LmNsYXNzTGlzdC5yZW1vdmUoSU5WQUxJRF9GSUxFX0NMQVNTKTtcbiAgfVxuXG4gIC8vIEdldCByaWQgb2YgZXhpc3RpbmcgcHJldmlld3MgaWYgdGhleSBleGlzdCwgc2hvdyBpbnN0cnVjdGlvbnNcbiAgaWYgKGZpbGVQcmV2aWV3cyAhPT0gbnVsbCkge1xuICAgIGlmIChpbnN0cnVjdGlvbnMpIHtcbiAgICAgIGluc3RydWN0aW9ucy5yZW1vdmVBdHRyaWJ1dGUoXCJoaWRkZW5cIik7XG4gICAgfVxuICAgIEFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoZmlsZVByZXZpZXdzLCByZW1vdmVJbWFnZXMpO1xuICB9XG59O1xuXG4vKipcbiAqIFVwZGF0ZSB0aGUgc2NyZWVuIHJlYWRlci1vbmx5IHN0YXR1cyBtZXNzYWdlIGFmdGVyIGludGVyYWN0aW9uXG4gKlxuICogQHBhcmFtIHtIVE1MRGl2RWxlbWVudH0gc3RhdHVzRWxlbWVudCAtIFRoZSBzY3JlZW4gcmVhZGVyLW9ubHkgY29udGFpbmVyIGZvciBmaWxlIHN0YXR1cyB1cGRhdGVzLlxuICogQHBhcmFtIHtPYmplY3R9IGZpbGVOYW1lcyAtIFRoZSBzZWxlY3RlZCBmaWxlcyBmb3VuZCBpbiB0aGUgZmlsZUxpc3Qgb2JqZWN0LlxuICogQHBhcmFtIHtBcnJheX0gZmlsZVN0b3JlIC0gVGhlIGFycmF5IG9mIHVwbG9hZGVkIGZpbGUgbmFtZXMgY3JlYXRlZCBmcm9tIHRoZSBmaWxlTmFtZXMgb2JqZWN0LlxuICovXG5jb25zdCB1cGRhdGVTdGF0dXNNZXNzYWdlID0gKHN0YXR1c0VsZW1lbnQsIGZpbGVOYW1lcywgZmlsZVN0b3JlKSA9PiB7XG4gIGNvbnN0IHN0YXR1c0VsID0gc3RhdHVzRWxlbWVudDtcbiAgbGV0IHN0YXR1c01lc3NhZ2UgPSBERUZBVUxUX0ZJTEVfU1RBVFVTX1RFWFQ7XG5cbiAgLy8gSWYgZmlsZXMgYWRkZWQsIHVwZGF0ZSB0aGUgc3RhdHVzIG1lc3NhZ2Ugd2l0aCBmaWxlIG5hbWUocylcbiAgaWYgKGZpbGVOYW1lcy5sZW5ndGggPT09IDEpIHtcbiAgICBzdGF0dXNNZXNzYWdlID0gYFlvdSBoYXZlIHNlbGVjdGVkIHRoZSBmaWxlOiAke2ZpbGVTdG9yZX1gO1xuICB9IGVsc2UgaWYgKGZpbGVOYW1lcy5sZW5ndGggPiAxKSB7XG4gICAgc3RhdHVzTWVzc2FnZSA9IGBZb3UgaGF2ZSBzZWxlY3RlZCAke1xuICAgICAgZmlsZU5hbWVzLmxlbmd0aFxuICAgIH0gZmlsZXM6ICR7ZmlsZVN0b3JlLmpvaW4oXCIsIFwiKX1gO1xuICB9XG5cbiAgLy8gQWRkIGRlbGF5IHRvIGVuY291cmFnZSBzY3JlZW4gcmVhZGVyIHJlYWRvdXRcbiAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgc3RhdHVzRWwudGV4dENvbnRlbnQgPSBzdGF0dXNNZXNzYWdlO1xuICB9LCAxMDAwKTtcbn07XG5cbi8qKlxuICogU2hvdyB0aGUgcHJldmlldyBoZWFkaW5nLCBoaWRlIHRoZSBpbml0aWFsIGluc3RydWN0aW9ucyBhbmRcbiAqIFVwZGF0ZSB0aGUgYXJpYS1sYWJlbCB3aXRoIG5ldyBpbnN0cnVjdGlvbnMgdGV4dFxuICpcbiAqIEBwYXJhbSB7SFRNTElucHV0RWxlbWVudH0gZmlsZUlucHV0RWwgLSBUaGUgaW5wdXQgZWxlbWVudC5cbiAqIEBwYXJhbSB7T2JqZWN0fSBmaWxlTmFtZXMgLSBUaGUgc2VsZWN0ZWQgZmlsZXMgZm91bmQgaW4gdGhlIGZpbGVMaXN0IG9iamVjdC5cbiAqL1xuY29uc3QgYWRkUHJldmlld0hlYWRpbmcgPSAoZmlsZUlucHV0RWwsIGZpbGVOYW1lcykgPT4ge1xuICBjb25zdCBmaWxlUHJldmlld3NIZWFkaW5nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcbiAgY29uc3QgZHJvcFRhcmdldCA9IGZpbGVJbnB1dEVsLmNsb3Nlc3QoYC4ke1RBUkdFVF9DTEFTU31gKTtcbiAgY29uc3QgaW5zdHJ1Y3Rpb25zID0gZHJvcFRhcmdldC5xdWVyeVNlbGVjdG9yKGAuJHtJTlNUUlVDVElPTlNfQ0xBU1N9YCk7XG4gIGxldCBjaGFuZ2VJdGVtVGV4dCA9IFwiQ2hhbmdlIGZpbGVcIjtcbiAgbGV0IHByZXZpZXdIZWFkaW5nVGV4dCA9IFwiXCI7XG5cbiAgaWYgKGZpbGVOYW1lcy5sZW5ndGggPT09IDEpIHtcbiAgICBwcmV2aWV3SGVhZGluZ1RleHQgPSBTYW5pdGl6ZXIuZXNjYXBlSFRNTGBTZWxlY3RlZCBmaWxlIDxzcGFuIGNsYXNzPVwidXNhLWZpbGUtaW5wdXRfX2Nob29zZVwiPiR7Y2hhbmdlSXRlbVRleHR9PC9zcGFuPmA7XG4gIH0gZWxzZSBpZiAoZmlsZU5hbWVzLmxlbmd0aCA+IDEpIHtcbiAgICBjaGFuZ2VJdGVtVGV4dCA9IFwiQ2hhbmdlIGZpbGVzXCI7XG4gICAgcHJldmlld0hlYWRpbmdUZXh0ID0gU2FuaXRpemVyLmVzY2FwZUhUTUxgJHtmaWxlTmFtZXMubGVuZ3RofSBmaWxlcyBzZWxlY3RlZCA8c3BhbiBjbGFzcz1cInVzYS1maWxlLWlucHV0X19jaG9vc2VcIj4ke2NoYW5nZUl0ZW1UZXh0fTwvc3Bhbj5gO1xuICB9XG5cbiAgLy8gSGlkZXMgbnVsbCBzdGF0ZSBjb250ZW50IGFuZCBzZXRzIHByZXZpZXcgaGVhZGluZ1xuICBpbnN0cnVjdGlvbnMuc2V0QXR0cmlidXRlKFwiaGlkZGVuXCIsIFwidHJ1ZVwiKTtcbiAgZmlsZVByZXZpZXdzSGVhZGluZy5jbGFzc0xpc3QuYWRkKFBSRVZJRVdfSEVBRElOR19DTEFTUyk7XG4gIGZpbGVQcmV2aWV3c0hlYWRpbmcuaW5uZXJIVE1MID0gcHJldmlld0hlYWRpbmdUZXh0O1xuICBkcm9wVGFyZ2V0Lmluc2VydEJlZm9yZShmaWxlUHJldmlld3NIZWFkaW5nLCBpbnN0cnVjdGlvbnMpO1xuXG4gIC8vIFVwZGF0ZSBhcmlhIGxhYmVsIHRvIG1hdGNoIHRoZSB2aXNpYmxlIGFjdGlvbiB0ZXh0XG4gIGZpbGVJbnB1dEVsLnNldEF0dHJpYnV0ZShcImFyaWEtbGFiZWxcIiwgY2hhbmdlSXRlbVRleHQpO1xufTtcblxuLyoqIEFkZCBhbiBlcnJvciBsaXN0ZW5lciB0byB0aGUgaW1hZ2UgcHJldmlldyB0byBzZXQgYSBmYWxsYmFjayBpbWFnZVxuICogQHBhcmFtIHtIVE1MSW1hZ2VFbGVtZW50fSBwcmV2aWV3SW1hZ2UgLSBUaGUgaW1hZ2UgZWxlbWVudFxuICogQHBhcmFtIHtTdHJpbmd9IGZhbGxiYWNrQ2xhc3MgLSBUaGUgQ1NTIGNsYXNzIG9mIHRoZSBmYWxsYmFjayBpbWFnZVxuICovXG5jb25zdCBzZXRQcmV2aWV3RmFsbGJhY2sgPSAocHJldmlld0ltYWdlLCBmYWxsYmFja0NsYXNzKSA9PiB7XG4gIHByZXZpZXdJbWFnZS5hZGRFdmVudExpc3RlbmVyKFxuICAgIFwiZXJyb3JcIixcbiAgICAoKSA9PiB7XG4gICAgICBjb25zdCBsb2NhbFByZXZpZXdJbWFnZSA9IHByZXZpZXdJbWFnZTsgLy8gdG8gYXZvaWQgbm8tcGFyYW0tcmVhc3NpZ24gZnJvbSBFU0xpbnRcbiAgICAgIGxvY2FsUHJldmlld0ltYWdlLnNyYyA9IFNQQUNFUl9HSUY7XG4gICAgICBsb2NhbFByZXZpZXdJbWFnZS5jbGFzc0xpc3QuYWRkKGZhbGxiYWNrQ2xhc3MpO1xuICAgIH0sXG4gICAgeyBvbmNlOiB0cnVlIH0sXG4gICk7XG59O1xuXG4vKipcbiAqIFdoZW4gbmV3IGZpbGVzIGFyZSBhcHBsaWVkIHRvIGZpbGUgaW5wdXQsIHRoaXMgZnVuY3Rpb24gZ2VuZXJhdGVzIHByZXZpZXdzXG4gKiBhbmQgcmVtb3ZlcyBvbGQgb25lcy5cbiAqXG4gKiBAcGFyYW0ge2V2ZW50fSBlXG4gKiBAcGFyYW0ge0hUTUxJbnB1dEVsZW1lbnR9IGZpbGVJbnB1dEVsIC0gVGhlIGlucHV0IGVsZW1lbnQuXG4gKiBAcGFyYW0ge0hUTUxEaXZFbGVtZW50fSBpbnN0cnVjdGlvbnMgLSBUaGUgY29udGFpbmVyIGZvciB2aXNpYmxlIGludGVyYWN0aW9uIGluc3RydWN0aW9ucy5cbiAqIEBwYXJhbSB7SFRNTERpdkVsZW1lbnR9IGRyb3BUYXJnZXQgLSBUaGUgZHJhZyBhbmQgZHJvcCB0YXJnZXQgYXJlYS5cbiAqL1xuXG5jb25zdCBoYW5kbGVDaGFuZ2UgPSAoZSwgZmlsZUlucHV0RWwsIGluc3RydWN0aW9ucywgZHJvcFRhcmdldCkgPT4ge1xuICBjb25zdCBmaWxlTmFtZXMgPSBlLnRhcmdldC5maWxlcztcbiAgY29uc3QgaW5wdXRQYXJlbnQgPSBkcm9wVGFyZ2V0LmNsb3Nlc3QoYC4ke0RST1BaT05FX0NMQVNTfWApO1xuICBjb25zdCBzdGF0dXNFbGVtZW50ID0gaW5wdXRQYXJlbnQucXVlcnlTZWxlY3RvcihgLiR7U1JfT05MWV9DTEFTU31gKTtcbiAgY29uc3QgZmlsZVN0b3JlID0gW107XG5cbiAgLy8gRmlyc3QsIGdldCByaWQgb2YgZXhpc3RpbmcgcHJldmlld3NcbiAgcmVtb3ZlT2xkUHJldmlld3MoZHJvcFRhcmdldCwgaW5zdHJ1Y3Rpb25zKTtcblxuICAvLyBUaGVuLCBpdGVyYXRlIHRocm91Z2ggZmlsZXMgbGlzdCBhbmQgY3JlYXRlIHByZXZpZXdzXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgZmlsZU5hbWVzLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgICBjb25zdCBmaWxlTmFtZSA9IGZpbGVOYW1lc1tpXS5uYW1lO1xuICAgIGxldCBpbWFnZUlkO1xuXG4gICAgLy8gUHVzaCB1cGRhdGVkIGZpbGUgbmFtZXMgaW50byB0aGUgc3RvcmUgYXJyYXlcbiAgICBmaWxlU3RvcmUucHVzaChmaWxlTmFtZSk7XG5cbiAgICAvLyBTdGFydHMgd2l0aCBhIGxvYWRpbmcgaW1hZ2Ugd2hpbGUgcHJldmlldyBpcyBjcmVhdGVkXG4gICAgcmVhZGVyLm9ubG9hZHN0YXJ0ID0gZnVuY3Rpb24gY3JlYXRlTG9hZGluZ0ltYWdlKCkge1xuICAgICAgaW1hZ2VJZCA9IGNyZWF0ZVVuaXF1ZUlEKG1ha2VTYWZlRm9ySUQoZmlsZU5hbWUpKTtcblxuICAgICAgaW5zdHJ1Y3Rpb25zLmluc2VydEFkamFjZW50SFRNTChcbiAgICAgICAgXCJhZnRlcmVuZFwiLFxuICAgICAgICBTYW5pdGl6ZXIuZXNjYXBlSFRNTGA8ZGl2IGNsYXNzPVwiJHtQUkVWSUVXX0NMQVNTfVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAgIDxpbWcgaWQ9XCIke2ltYWdlSWR9XCIgc3JjPVwiJHtTUEFDRVJfR0lGfVwiIGFsdD1cIlwiIGNsYXNzPVwiJHtHRU5FUklDX1BSRVZJRVdfQ0xBU1NfTkFNRX0gJHtMT0FESU5HX0NMQVNTfVwiLz4ke2ZpbGVOYW1lfVxuICAgICAgICA8ZGl2PmAsXG4gICAgICApO1xuICAgIH07XG5cbiAgICAvLyBOb3QgYWxsIGZpbGVzIHdpbGwgYmUgYWJsZSB0byBnZW5lcmF0ZSBwcmV2aWV3cy4gSW4gY2FzZSB0aGlzIGhhcHBlbnMsIHdlIHByb3ZpZGUgc2V2ZXJhbCB0eXBlcyBcImdlbmVyaWMgcHJldmlld3NcIiBiYXNlZCBvbiB0aGUgZmlsZSBleHRlbnNpb24uXG4gICAgcmVhZGVyLm9ubG9hZGVuZCA9IGZ1bmN0aW9uIGNyZWF0ZUZpbGVQcmV2aWV3KCkge1xuICAgICAgY29uc3QgcHJldmlld0ltYWdlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaW1hZ2VJZCk7XG4gICAgICBjb25zdCBmaWxlRXh0ZW5zaW9uID0gZmlsZU5hbWUuc3BsaXQoXCIuXCIpLnBvcCgpO1xuICAgICAgaWYgKGZpbGVFeHRlbnNpb24gPT09IFwicGRmXCIpIHtcbiAgICAgICAgc2V0UHJldmlld0ZhbGxiYWNrKHByZXZpZXdJbWFnZSwgUERGX1BSRVZJRVdfQ0xBU1MpO1xuICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgZmlsZUV4dGVuc2lvbiA9PT0gXCJkb2NcIiB8fFxuICAgICAgICBmaWxlRXh0ZW5zaW9uID09PSBcImRvY3hcIiB8fFxuICAgICAgICBmaWxlRXh0ZW5zaW9uID09PSBcInBhZ2VzXCJcbiAgICAgICkge1xuICAgICAgICBzZXRQcmV2aWV3RmFsbGJhY2socHJldmlld0ltYWdlLCBXT1JEX1BSRVZJRVdfQ0xBU1MpO1xuICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgZmlsZUV4dGVuc2lvbiA9PT0gXCJ4bHNcIiB8fFxuICAgICAgICBmaWxlRXh0ZW5zaW9uID09PSBcInhsc3hcIiB8fFxuICAgICAgICBmaWxlRXh0ZW5zaW9uID09PSBcIm51bWJlcnNcIlxuICAgICAgKSB7XG4gICAgICAgIHNldFByZXZpZXdGYWxsYmFjayhwcmV2aWV3SW1hZ2UsIEVYQ0VMX1BSRVZJRVdfQ0xBU1MpO1xuICAgICAgfSBlbHNlIGlmIChmaWxlRXh0ZW5zaW9uID09PSBcIm1vdlwiIHx8IGZpbGVFeHRlbnNpb24gPT09IFwibXA0XCIpIHtcbiAgICAgICAgc2V0UHJldmlld0ZhbGxiYWNrKHByZXZpZXdJbWFnZSwgVklERU9fUFJFVklFV19DTEFTUyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZXRQcmV2aWV3RmFsbGJhY2socHJldmlld0ltYWdlLCBHRU5FUklDX1BSRVZJRVdfQ0xBU1MpO1xuICAgICAgfVxuXG4gICAgICAvLyBSZW1vdmVzIGxvYWRlciBhbmQgZGlzcGxheXMgcHJldmlld1xuICAgICAgcHJldmlld0ltYWdlLmNsYXNzTGlzdC5yZW1vdmUoTE9BRElOR19DTEFTUyk7XG4gICAgICBwcmV2aWV3SW1hZ2Uuc3JjID0gcmVhZGVyLnJlc3VsdDtcbiAgICB9O1xuXG4gICAgaWYgKGZpbGVOYW1lc1tpXSkge1xuICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZU5hbWVzW2ldKTtcbiAgICB9XG4gIH1cblxuICBpZiAoZmlsZU5hbWVzLmxlbmd0aCA9PT0gMCkge1xuICAgIC8vIFJlc2V0IGlucHV0IGFyaWEtbGFiZWwgd2l0aCBkZWZhdWx0IG1lc3NhZ2VcbiAgICBmaWxlSW5wdXRFbC5zZXRBdHRyaWJ1dGUoXCJhcmlhLWxhYmVsXCIsIERFRkFVTFRfQVJJQV9MQUJFTF9URVhUKTtcbiAgfSBlbHNlIHtcbiAgICBhZGRQcmV2aWV3SGVhZGluZyhmaWxlSW5wdXRFbCwgZmlsZU5hbWVzKTtcbiAgfVxuXG4gIHVwZGF0ZVN0YXR1c01lc3NhZ2Uoc3RhdHVzRWxlbWVudCwgZmlsZU5hbWVzLCBmaWxlU3RvcmUpO1xufTtcblxuLyoqXG4gKiBXaGVuIHVzaW5nIGFuIEFjY2VwdCBhdHRyaWJ1dGUsIGludmFsaWQgZmlsZXMgd2lsbCBiZSBoaWRkZW4gZnJvbVxuICogZmlsZSBicm93c2VyLCBidXQgdGhleSBjYW4gc3RpbGwgYmUgZHJhZ2dlZCB0byB0aGUgaW5wdXQuIFRoaXNcbiAqIGZ1bmN0aW9uIHByZXZlbnRzIHRoZW0gZnJvbSBiZWluZyBkcmFnZ2VkIGFuZCByZW1vdmVzIGVycm9yIHN0YXRlc1xuICogd2hlbiBjb3JyZWN0IGZpbGVzIGFyZSBhZGRlZC5cbiAqXG4gKiBAcGFyYW0ge2V2ZW50fSBlXG4gKiBAcGFyYW0ge0hUTUxJbnB1dEVsZW1lbnR9IGZpbGVJbnB1dEVsIC0gVGhlIGlucHV0IGVsZW1lbnQuXG4gKiBAcGFyYW0ge0hUTUxEaXZFbGVtZW50fSBpbnN0cnVjdGlvbnMgLSBUaGUgY29udGFpbmVyIGZvciB2aXNpYmxlIGludGVyYWN0aW9uIGluc3RydWN0aW9ucy5cbiAqIEBwYXJhbSB7SFRNTERpdkVsZW1lbnR9IGRyb3BUYXJnZXQgLSBUaGUgZHJhZyBhbmQgZHJvcCB0YXJnZXQgYXJlYS5cbiAqL1xuY29uc3QgcHJldmVudEludmFsaWRGaWxlcyA9IChlLCBmaWxlSW5wdXRFbCwgaW5zdHJ1Y3Rpb25zLCBkcm9wVGFyZ2V0KSA9PiB7XG4gIGNvbnN0IGFjY2VwdGVkRmlsZXNBdHRyID0gZmlsZUlucHV0RWwuZ2V0QXR0cmlidXRlKFwiYWNjZXB0XCIpO1xuICBkcm9wVGFyZ2V0LmNsYXNzTGlzdC5yZW1vdmUoSU5WQUxJRF9GSUxFX0NMQVNTKTtcblxuICAvKipcbiAgICogV2UgY2FuIHByb2JhYmx5IG1vdmUgYXdheSBmcm9tIHRoaXMgb25jZSBJRTExIHN1cHBvcnQgc3RvcHMsIGFuZCByZXBsYWNlXG4gICAqIHdpdGggYSBzaW1wbGUgZXMgYC5pbmNsdWRlc2BcbiAgICogY2hlY2sgaWYgZWxlbWVudCBpcyBpbiBhcnJheVxuICAgKiBjaGVjayBpZiAxIG9yIG1vcmUgYWxwaGFiZXRzIGFyZSBpbiBzdHJpbmdcbiAgICogaWYgZWxlbWVudCBpcyBwcmVzZW50IHJldHVybiB0aGUgcG9zaXRpb24gdmFsdWUgYW5kIC0xIG90aGVyd2lzZVxuICAgKiBAcGFyYW0ge09iamVjdH0gZmlsZVxuICAgKiBAcGFyYW0ge1N0cmluZ30gdmFsdWVcbiAgICogQHJldHVybnMge0Jvb2xlYW59XG4gICAqL1xuICBjb25zdCBpc0luY2x1ZGVkID0gKGZpbGUsIHZhbHVlKSA9PiB7XG4gICAgbGV0IHJldHVyblZhbHVlID0gZmFsc2U7XG4gICAgY29uc3QgcG9zID0gZmlsZS5pbmRleE9mKHZhbHVlKTtcbiAgICBpZiAocG9zID49IDApIHtcbiAgICAgIHJldHVyblZhbHVlID0gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIHJldHVyblZhbHVlO1xuICB9O1xuXG4gIC8vIFJ1bnMgaWYgb25seSBzcGVjaWZpYyBmaWxlcyBhcmUgYWNjZXB0ZWRcbiAgaWYgKGFjY2VwdGVkRmlsZXNBdHRyKSB7XG4gICAgY29uc3QgYWNjZXB0ZWRGaWxlcyA9IGFjY2VwdGVkRmlsZXNBdHRyLnNwbGl0KFwiLFwiKTtcbiAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xuICAgIGNvbnN0IHVzZXJFcnJvclRleHQgPSBmaWxlSW5wdXRFbC5kYXRhc2V0LmVycm9ybWVzc2FnZTtcbiAgICBjb25zdCBlcnJvck1lc3NhZ2VUZXh0ID0gdXNlckVycm9yVGV4dCB8fCBERUZBVUxUX0VSUk9SX0xBQkVMX1RFWFQ7XG5cbiAgICBlcnJvck1lc3NhZ2Uuc2V0QXR0cmlidXRlKFwiYXJpYS1oaWRkZW5cIiwgdHJ1ZSk7XG5cbiAgICAvLyBJZiBtdWx0aXBsZSBmaWxlcyBhcmUgZHJhZ2dlZCwgdGhpcyBpdGVyYXRlcyB0aHJvdWdoIHRoZW0gYW5kIGxvb2sgZm9yIGFueSBmaWxlcyB0aGF0IGFyZSBub3QgYWNjZXB0ZWQuXG4gICAgbGV0IGFsbEZpbGVzQWxsb3dlZCA9IHRydWU7XG4gICAgY29uc3Qgc2Nhbm5lZEZpbGVzID0gZS50YXJnZXQuZmlsZXMgfHwgZS5kYXRhVHJhbnNmZXIuZmlsZXM7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzY2FubmVkRmlsZXMubGVuZ3RoOyBpICs9IDEpIHtcbiAgICAgIGNvbnN0IGZpbGUgPSBzY2FubmVkRmlsZXNbaV07XG4gICAgICBpZiAoYWxsRmlsZXNBbGxvd2VkKSB7XG4gICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgYWNjZXB0ZWRGaWxlcy5sZW5ndGg7IGogKz0gMSkge1xuICAgICAgICAgIGNvbnN0IGZpbGVUeXBlID0gYWNjZXB0ZWRGaWxlc1tqXTtcbiAgICAgICAgICBhbGxGaWxlc0FsbG93ZWQgPVxuICAgICAgICAgICAgZmlsZS5uYW1lLmluZGV4T2YoZmlsZVR5cGUpID4gMCB8fFxuICAgICAgICAgICAgaXNJbmNsdWRlZChmaWxlLnR5cGUsIGZpbGVUeXBlLnJlcGxhY2UoL1xcKi9nLCBcIlwiKSk7XG4gICAgICAgICAgaWYgKGFsbEZpbGVzQWxsb3dlZCkge1xuICAgICAgICAgICAgVFlQRV9JU19WQUxJRCA9IHRydWU7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBicmVhaztcbiAgICB9XG5cbiAgICAvLyBJZiBkcmFnZ2VkIGZpbGVzIGFyZSBub3QgYWNjZXB0ZWQsIHRoaXMgcmVtb3ZlcyB0aGVtIGZyb20gdGhlIHZhbHVlIG9mIHRoZSBpbnB1dCBhbmQgY3JlYXRlcyBhbmQgZXJyb3Igc3RhdGVcbiAgICBpZiAoIWFsbEZpbGVzQWxsb3dlZCkge1xuICAgICAgcmVtb3ZlT2xkUHJldmlld3MoZHJvcFRhcmdldCwgaW5zdHJ1Y3Rpb25zKTtcbiAgICAgIGZpbGVJbnB1dEVsLnZhbHVlID0gXCJcIjsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgICAgZXJyb3JNZXNzYWdlLnRleHRDb250ZW50ID0gZXJyb3JNZXNzYWdlVGV4dDtcbiAgICAgIGRyb3BUYXJnZXQuaW5zZXJ0QmVmb3JlKGVycm9yTWVzc2FnZSwgZmlsZUlucHV0RWwpO1xuXG4gICAgICBjb25zdCBhcmlhTGFiZWxUZXh0ID0gYCR7ZXJyb3JNZXNzYWdlVGV4dH0gJHtERUZBVUxUX0FSSUFfTEFCRUxfVEVYVH1gO1xuXG4gICAgICBmaWxlSW5wdXRFbC5zZXRBdHRyaWJ1dGUoXCJhcmlhLWxhYmVsXCIsIGFyaWFMYWJlbFRleHQpO1xuICAgICAgZXJyb3JNZXNzYWdlLmNsYXNzTGlzdC5hZGQoQUNDRVBURURfRklMRV9NRVNTQUdFX0NMQVNTKTtcbiAgICAgIGRyb3BUYXJnZXQuY2xhc3NMaXN0LmFkZChJTlZBTElEX0ZJTEVfQ0xBU1MpO1xuICAgICAgVFlQRV9JU19WQUxJRCA9IGZhbHNlO1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG4gIH1cbn07XG5cbi8qKlxuICogMS4gcGFzc2VzIHRocm91Z2ggZ2F0ZSBmb3IgcHJldmVudGluZyBpbnZhbGlkIGZpbGVzXG4gKiAyLiBoYW5kbGVzIHVwZGF0ZXMgaWYgZmlsZSBpcyB2YWxpZFxuICpcbiAqIEBwYXJhbSB7ZXZlbnR9IGV2ZW50XG4gKiBAcGFyYW0ge0hUTUxJbnB1dEVsZW1lbnR9IGZpbGVJbnB1dEVsIC0gVGhlIGlucHV0IGVsZW1lbnQuXG4gKiBAcGFyYW0ge0hUTUxEaXZFbGVtZW50fSBpbnN0cnVjdGlvbnMgLSBUaGUgY29udGFpbmVyIGZvciB2aXNpYmxlIGludGVyYWN0aW9uIGluc3RydWN0aW9ucy5cbiAqIEBwYXJhbSB7SFRNTERpdkVsZW1lbnR9IGRyb3BUYXJnZXQgLSBUaGUgZHJhZyBhbmQgZHJvcCB0YXJnZXQgYXJlYS5cbiAqL1xuY29uc3QgaGFuZGxlVXBsb2FkID0gKGV2ZW50LCBmaWxlSW5wdXRFbCwgaW5zdHJ1Y3Rpb25zLCBkcm9wVGFyZ2V0KSA9PiB7XG4gIHByZXZlbnRJbnZhbGlkRmlsZXMoZXZlbnQsIGZpbGVJbnB1dEVsLCBpbnN0cnVjdGlvbnMsIGRyb3BUYXJnZXQpO1xuICBpZiAoVFlQRV9JU19WQUxJRCA9PT0gdHJ1ZSkge1xuICAgIGhhbmRsZUNoYW5nZShldmVudCwgZmlsZUlucHV0RWwsIGluc3RydWN0aW9ucywgZHJvcFRhcmdldCk7XG4gIH1cbn07XG5cbmNvbnN0IGZpbGVJbnB1dCA9IGJlaGF2aW9yKFxuICB7fSxcbiAge1xuICAgIGluaXQocm9vdCkge1xuICAgICAgc2VsZWN0T3JNYXRjaGVzKERST1BaT05FLCByb290KS5mb3JFYWNoKChmaWxlSW5wdXRFbCkgPT4ge1xuICAgICAgICBjb25zdCB7IGluc3RydWN0aW9ucywgZHJvcFRhcmdldCB9ID0gZW5oYW5jZUZpbGVJbnB1dChmaWxlSW5wdXRFbCk7XG5cbiAgICAgICAgZHJvcFRhcmdldC5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgICAgIFwiZHJhZ292ZXJcIixcbiAgICAgICAgICBmdW5jdGlvbiBoYW5kbGVEcmFnT3ZlcigpIHtcbiAgICAgICAgICAgIHRoaXMuY2xhc3NMaXN0LmFkZChEUkFHX0NMQVNTKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGZhbHNlLFxuICAgICAgICApO1xuXG4gICAgICAgIGRyb3BUYXJnZXQuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICAgICBcImRyYWdsZWF2ZVwiLFxuICAgICAgICAgIGZ1bmN0aW9uIGhhbmRsZURyYWdMZWF2ZSgpIHtcbiAgICAgICAgICAgIHRoaXMuY2xhc3NMaXN0LnJlbW92ZShEUkFHX0NMQVNTKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGZhbHNlLFxuICAgICAgICApO1xuXG4gICAgICAgIGRyb3BUYXJnZXQuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICAgICBcImRyb3BcIixcbiAgICAgICAgICBmdW5jdGlvbiBoYW5kbGVEcm9wKCkge1xuICAgICAgICAgICAgdGhpcy5jbGFzc0xpc3QucmVtb3ZlKERSQUdfQ0xBU1MpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZmFsc2UsXG4gICAgICAgICk7XG5cbiAgICAgICAgZmlsZUlucHV0RWwuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICAgICBcImNoYW5nZVwiLFxuICAgICAgICAgIChlKSA9PiBoYW5kbGVVcGxvYWQoZSwgZmlsZUlucHV0RWwsIGluc3RydWN0aW9ucywgZHJvcFRhcmdldCksXG4gICAgICAgICAgZmFsc2UsXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICB9LFxuICAgIHRlYXJkb3duKHJvb3QpIHtcbiAgICAgIHNlbGVjdE9yTWF0Y2hlcyhJTlBVVCwgcm9vdCkuZm9yRWFjaCgoZmlsZUlucHV0RWwpID0+IHtcbiAgICAgICAgY29uc3QgZmlsZUlucHV0VG9wRWxlbWVudCA9IGZpbGVJbnB1dEVsLnBhcmVudEVsZW1lbnQucGFyZW50RWxlbWVudDtcbiAgICAgICAgZmlsZUlucHV0VG9wRWxlbWVudC5wYXJlbnRFbGVtZW50LnJlcGxhY2VDaGlsZChcbiAgICAgICAgICBmaWxlSW5wdXRFbCxcbiAgICAgICAgICBmaWxlSW5wdXRUb3BFbGVtZW50LFxuICAgICAgICApO1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICAgICAgZmlsZUlucHV0RWwuY2xhc3NOYW1lID0gRFJPUFpPTkVfQ0xBU1M7XG4gICAgICB9KTtcbiAgICB9LFxuICAgIGdldEZpbGVJbnB1dENvbnRleHQsXG4gICAgZGlzYWJsZSxcbiAgICBhcmlhRGlzYWJsZSxcbiAgICBlbmFibGUsXG4gIH0sXG4pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZpbGVJbnB1dDtcbiIsImNvbnN0IGJlaGF2aW9yID0gcmVxdWlyZShcIi4uLy4uL3Vzd2RzLWNvcmUvc3JjL2pzL3V0aWxzL2JlaGF2aW9yXCIpO1xuY29uc3QgeyBDTElDSyB9ID0gcmVxdWlyZShcIi4uLy4uL3Vzd2RzLWNvcmUvc3JjL2pzL2V2ZW50c1wiKTtcbmNvbnN0IHsgcHJlZml4OiBQUkVGSVggfSA9IHJlcXVpcmUoXCIuLi8uLi91c3dkcy1jb3JlL3NyYy9qcy9jb25maWdcIik7XG5cbmNvbnN0IFNDT1BFID0gYC4ke1BSRUZJWH0tZm9vdGVyLS1iaWdgO1xuY29uc3QgTkFWID0gYCR7U0NPUEV9IG5hdmA7XG5jb25zdCBCVVRUT04gPSBgJHtOQVZ9IC4ke1BSRUZJWH0tZm9vdGVyX19wcmltYXJ5LWxpbmtgO1xuY29uc3QgSElERV9NQVhfV0lEVEggPSA0ODA7XG5cbi8qKlxuICogRXhwYW5kcyBzZWxlY3RlZCBmb290ZXIgbWVudSBwYW5lbCwgd2hpbGUgY29sbGFwc2luZyBvdGhlcnNcbiAqL1xuZnVuY3Rpb24gc2hvd1BhbmVsKCkge1xuICBpZiAod2luZG93LmlubmVyV2lkdGggPCBISURFX01BWF9XSURUSCkge1xuICAgIGNvbnN0IGlzT3BlbiA9IHRoaXMuZ2V0QXR0cmlidXRlKFwiYXJpYS1leHBhbmRlZFwiKSA9PT0gXCJ0cnVlXCI7XG4gICAgY29uc3QgdGhpc0Zvb3RlciA9IHRoaXMuY2xvc2VzdChTQ09QRSk7XG5cbiAgICAvLyBDbG9zZSBhbGwgb3RoZXIgbWVudXNcbiAgICB0aGlzRm9vdGVyLnF1ZXJ5U2VsZWN0b3JBbGwoQlVUVE9OKS5mb3JFYWNoKChidXR0b24pID0+IHtcbiAgICAgIGJ1dHRvbi5zZXRBdHRyaWJ1dGUoXCJhcmlhLWV4cGFuZGVkXCIsIGZhbHNlKTtcbiAgICB9KTtcblxuICAgIHRoaXMuc2V0QXR0cmlidXRlKFwiYXJpYS1leHBhbmRlZFwiLCAhaXNPcGVuKTtcbiAgfVxufVxuXG4vKipcbiAqIFN3YXBzIHRoZSA8aDQ+IGVsZW1lbnQgZm9yIGEgPGJ1dHRvbj4gZWxlbWVudCAoYW5kIHZpY2UtdmVyc2EpIGFuZCBzZXRzIGlkXG4gKiBvZiBtZW51IGxpc3RcbiAqXG4gKiBAcGFyYW0ge0Jvb2xlYW59IGlzTW9iaWxlIC0gSWYgdGhlIGZvb3RlciBpcyBpbiBtb2JpbGUgY29uZmlndXJhdGlvblxuICovXG5mdW5jdGlvbiB0b2dnbGVIdG1sVGFnKGlzTW9iaWxlKSB7XG4gIGNvbnN0IGJpZ0Zvb3RlciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoU0NPUEUpO1xuXG4gIGlmICghYmlnRm9vdGVyKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgcHJpbWFyeUxpbmtzID0gYmlnRm9vdGVyLnF1ZXJ5U2VsZWN0b3JBbGwoQlVUVE9OKTtcblxuICBwcmltYXJ5TGlua3MuZm9yRWFjaCgoY3VycmVudEVsZW1lbnQpID0+IHtcbiAgICBjb25zdCBjdXJyZW50RWxlbWVudENsYXNzZXMgPSBjdXJyZW50RWxlbWVudC5nZXRBdHRyaWJ1dGUoXCJjbGFzc1wiKTtcbiAgICBjb25zdCBwcmVzZXJ2ZWRIdG1sVGFnID1cbiAgICAgIGN1cnJlbnRFbGVtZW50LmdldEF0dHJpYnV0ZShcImRhdGEtdGFnXCIpIHx8IGN1cnJlbnRFbGVtZW50LnRhZ05hbWU7XG5cbiAgICBjb25zdCBuZXdFbGVtZW50VHlwZSA9IGlzTW9iaWxlID8gXCJidXR0b25cIiA6IHByZXNlcnZlZEh0bWxUYWc7XG5cbiAgICAvLyBDcmVhdGUgdGhlIG5ldyBlbGVtZW50XG4gICAgY29uc3QgbmV3RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQobmV3RWxlbWVudFR5cGUpO1xuICAgIG5ld0VsZW1lbnQuc2V0QXR0cmlidXRlKFwiY2xhc3NcIiwgY3VycmVudEVsZW1lbnRDbGFzc2VzKTtcbiAgICBuZXdFbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoXG4gICAgICBgJHtQUkVGSVh9LWZvb3Rlcl9fcHJpbWFyeS1saW5rLS1idXR0b25gLFxuICAgICAgaXNNb2JpbGUsXG4gICAgKTtcbiAgICBuZXdFbGVtZW50LnRleHRDb250ZW50ID0gY3VycmVudEVsZW1lbnQudGV4dENvbnRlbnQ7XG5cbiAgICBpZiAoaXNNb2JpbGUpIHtcbiAgICAgIG5ld0VsZW1lbnQuc2V0QXR0cmlidXRlKFwiZGF0YS10YWdcIiwgY3VycmVudEVsZW1lbnQudGFnTmFtZSk7XG4gICAgICBjb25zdCBtZW51SWQgPSBgJHtQUkVGSVh9LWZvb3Rlci1tZW51LWxpc3QtJHtNYXRoLmZsb29yKFxuICAgICAgICBNYXRoLnJhbmRvbSgpICogMTAwMDAwLFxuICAgICAgKX1gO1xuXG4gICAgICBuZXdFbGVtZW50LnNldEF0dHJpYnV0ZShcImFyaWEtY29udHJvbHNcIiwgbWVudUlkKTtcbiAgICAgIG5ld0VsZW1lbnQuc2V0QXR0cmlidXRlKFwiYXJpYS1leHBhbmRlZFwiLCBcImZhbHNlXCIpO1xuICAgICAgY3VycmVudEVsZW1lbnQubmV4dEVsZW1lbnRTaWJsaW5nLnNldEF0dHJpYnV0ZShcImlkXCIsIG1lbnVJZCk7XG4gICAgICBuZXdFbGVtZW50LnNldEF0dHJpYnV0ZShcInR5cGVcIiwgXCJidXR0b25cIik7XG4gICAgfVxuXG4gICAgLy8gSW5zZXJ0IHRoZSBuZXcgZWxlbWVudCBhbmQgZGVsZXRlIHRoZSBvbGRcbiAgICBjdXJyZW50RWxlbWVudC5hZnRlcihuZXdFbGVtZW50KTtcbiAgICBjdXJyZW50RWxlbWVudC5yZW1vdmUoKTtcbiAgfSk7XG59XG5cbmNvbnN0IHJlc2l6ZSA9IChldmVudCkgPT4ge1xuICB0b2dnbGVIdG1sVGFnKGV2ZW50Lm1hdGNoZXMpO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSBiZWhhdmlvcihcbiAge1xuICAgIFtDTElDS106IHtcbiAgICAgIFtCVVRUT05dOiBzaG93UGFuZWwsXG4gICAgfSxcbiAgfSxcbiAge1xuICAgIC8vIGV4cG9ydCBmb3IgdXNlIGVsc2V3aGVyZVxuICAgIEhJREVfTUFYX1dJRFRILFxuXG4gICAgaW5pdCgpIHtcbiAgICAgIHRvZ2dsZUh0bWxUYWcod2luZG93LmlubmVyV2lkdGggPCBISURFX01BWF9XSURUSCk7XG4gICAgICB0aGlzLm1lZGlhUXVlcnlMaXN0ID0gd2luZG93Lm1hdGNoTWVkaWEoXG4gICAgICAgIGAobWF4LXdpZHRoOiAke0hJREVfTUFYX1dJRFRIIC0gMC4xfXB4KWAsXG4gICAgICApO1xuICAgICAgdGhpcy5tZWRpYVF1ZXJ5TGlzdC5hZGRMaXN0ZW5lcihyZXNpemUpO1xuICAgIH0sXG5cbiAgICB0ZWFyZG93bigpIHtcbiAgICAgIHRoaXMubWVkaWFRdWVyeUxpc3QucmVtb3ZlTGlzdGVuZXIocmVzaXplKTtcbiAgICB9LFxuICB9LFxuKTtcbiIsImNvbnN0IGtleW1hcCA9IHJlcXVpcmUoXCJyZWNlcHRvci9rZXltYXBcIik7XG5jb25zdCBiZWhhdmlvciA9IHJlcXVpcmUoXCIuLi8uLi91c3dkcy1jb3JlL3NyYy9qcy91dGlscy9iZWhhdmlvclwiKTtcbmNvbnN0IHNlbGVjdCA9IHJlcXVpcmUoXCIuLi8uLi91c3dkcy1jb3JlL3NyYy9qcy91dGlscy9zZWxlY3RcIik7XG5jb25zdCB0b2dnbGUgPSByZXF1aXJlKFwiLi4vLi4vdXN3ZHMtY29yZS9zcmMvanMvdXRpbHMvdG9nZ2xlXCIpO1xuY29uc3QgRm9jdXNUcmFwID0gcmVxdWlyZShcIi4uLy4uL3Vzd2RzLWNvcmUvc3JjL2pzL3V0aWxzL2ZvY3VzLXRyYXBcIik7XG5jb25zdCBhY2NvcmRpb24gPSByZXF1aXJlKFwiLi4vLi4vdXNhLWFjY29yZGlvbi9zcmMvaW5kZXhcIik7XG5jb25zdCBTY3JvbGxCYXJXaWR0aCA9IHJlcXVpcmUoXCIuLi8uLi91c3dkcy1jb3JlL3NyYy9qcy91dGlscy9zY3JvbGxiYXItd2lkdGhcIik7XG5cbmNvbnN0IHsgQ0xJQ0sgfSA9IHJlcXVpcmUoXCIuLi8uLi91c3dkcy1jb3JlL3NyYy9qcy9ldmVudHNcIik7XG5jb25zdCB7IHByZWZpeDogUFJFRklYIH0gPSByZXF1aXJlKFwiLi4vLi4vdXN3ZHMtY29yZS9zcmMvanMvY29uZmlnXCIpO1xuXG5jb25zdCBCT0RZID0gXCJib2R5XCI7XG5jb25zdCBIRUFERVIgPSBgLiR7UFJFRklYfS1oZWFkZXJgO1xuY29uc3QgTkFWID0gYC4ke1BSRUZJWH0tbmF2YDtcbmNvbnN0IE5BVl9DT05UQUlORVIgPSBgLiR7UFJFRklYfS1uYXYtY29udGFpbmVyYDtcbmNvbnN0IE5BVl9QUklNQVJZID0gYC4ke1BSRUZJWH0tbmF2X19wcmltYXJ5YDtcbmNvbnN0IE5BVl9QUklNQVJZX0lURU0gPSBgLiR7UFJFRklYfS1uYXZfX3ByaW1hcnktaXRlbWA7XG5jb25zdCBOQVZfQ09OVFJPTCA9IGBidXR0b24uJHtQUkVGSVh9LW5hdl9fbGlua2A7XG5jb25zdCBOQVZfTElOS1MgPSBgJHtOQVZ9IGFgO1xuY29uc3QgTk9OX05BVl9ISURERU5fQVRUUklCVVRFID0gYGRhdGEtbmF2LWhpZGRlbmA7XG5jb25zdCBPUEVORVJTID0gYC4ke1BSRUZJWH0tbWVudS1idG5gO1xuY29uc3QgQ0xPU0VfQlVUVE9OID0gYC4ke1BSRUZJWH0tbmF2X19jbG9zZWA7XG5jb25zdCBPVkVSTEFZID0gYC4ke1BSRUZJWH0tb3ZlcmxheWA7XG5jb25zdCBDTE9TRVJTID0gYCR7Q0xPU0VfQlVUVE9OfSwgLiR7UFJFRklYfS1vdmVybGF5YDtcbmNvbnN0IFRPR0dMRVMgPSBbTkFWLCBPVkVSTEFZXS5qb2luKFwiLCBcIik7XG5jb25zdCBOT05fTkFWX0VMRU1FTlRTID0gYGJvZHkgKjpub3QoJHtIRUFERVJ9LCAke05BVl9DT05UQUlORVJ9LCAke05BVn0sICR7TkFWfSAqKTpub3QoW2FyaWEtaGlkZGVuXSlgO1xuY29uc3QgTk9OX05BVl9ISURERU4gPSBgWyR7Tk9OX05BVl9ISURERU5fQVRUUklCVVRFfV1gO1xuXG5jb25zdCBBQ1RJVkVfQ0xBU1MgPSBcInVzYS1qcy1tb2JpbGUtbmF2LS1hY3RpdmVcIjtcbmNvbnN0IFZJU0lCTEVfQ0xBU1MgPSBcImlzLXZpc2libGVcIjtcblxubGV0IG5hdmlnYXRpb247XG5sZXQgbmF2QWN0aXZlO1xubGV0IG5vbk5hdkVsZW1lbnRzO1xuXG5jb25zdCBpc0FjdGl2ZSA9ICgpID0+IGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmNvbnRhaW5zKEFDVElWRV9DTEFTUyk7XG4vLyBEZXRlY3QgU2FmYXJpXG4vLyBOb3RlOiBDaHJvbWUgYWxzbyByZXBvcnRzIHRoZSBTYWZhcmkgdXNlckFnZW50IHNvIHRoaXMgc3BlY2lmaWNhbGx5IGV4Y2x1ZGVzIENocm9tZS5cbmNvbnN0IGlzU2FmYXJpID1cbiAgbmF2aWdhdG9yLnVzZXJBZ2VudC5pbmNsdWRlcyhcIlNhZmFyaVwiKSAmJlxuICAhbmF2aWdhdG9yLnVzZXJBZ2VudC5pbmNsdWRlcyhcIkNocm9tZVwiKTtcbmNvbnN0IFNDUk9MTEJBUl9XSURUSCA9IFNjcm9sbEJhcldpZHRoKCk7XG5jb25zdCBJTklUSUFMX1BBRERJTkcgPSB3aW5kb3dcbiAgLmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuYm9keSlcbiAgLmdldFByb3BlcnR5VmFsdWUoXCJwYWRkaW5nLXJpZ2h0XCIpO1xuY29uc3QgVEVNUE9SQVJZX1BBRERJTkcgPSBgJHtcbiAgcGFyc2VJbnQoSU5JVElBTF9QQURESU5HLnJlcGxhY2UoL3B4LywgXCJcIiksIDEwKSArXG4gIHBhcnNlSW50KFNDUk9MTEJBUl9XSURUSC5yZXBsYWNlKC9weC8sIFwiXCIpLCAxMClcbn1weGA7XG5cbmNvbnN0IGhpZGVOb25OYXZJdGVtcyA9ICgpID0+IHtcbiAgY29uc3QgaGVhZGVyUGFyZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgJHtIRUFERVJ9YCkucGFyZW50Tm9kZTtcbiAgbm9uTmF2RWxlbWVudHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKE5PTl9OQVZfRUxFTUVOVFMpO1xuXG4gIG5vbk5hdkVsZW1lbnRzLmZvckVhY2goKG5vbk5hdkVsZW1lbnQpID0+IHtcbiAgICBpZiAobm9uTmF2RWxlbWVudCAhPT0gaGVhZGVyUGFyZW50KSB7XG4gICAgICBub25OYXZFbGVtZW50LnNldEF0dHJpYnV0ZShcImFyaWEtaGlkZGVuXCIsIHRydWUpO1xuICAgICAgbm9uTmF2RWxlbWVudC5zZXRBdHRyaWJ1dGUoTk9OX05BVl9ISURERU5fQVRUUklCVVRFLCBcIlwiKTtcbiAgICB9XG4gIH0pO1xufTtcblxuY29uc3Qgc2hvd05vbk5hdkl0ZW1zID0gKCkgPT4ge1xuICBub25OYXZFbGVtZW50cyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoTk9OX05BVl9ISURERU4pO1xuXG4gIGlmICghbm9uTmF2RWxlbWVudHMpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICAvLyBSZW1vdmUgYXJpYS1oaWRkZW4gZnJvbSBub24taGVhZGVyIGVsZW1lbnRzXG4gIG5vbk5hdkVsZW1lbnRzLmZvckVhY2goKG5vbk5hdkVsZW1lbnQpID0+IHtcbiAgICBub25OYXZFbGVtZW50LnJlbW92ZUF0dHJpYnV0ZShcImFyaWEtaGlkZGVuXCIpO1xuICAgIG5vbk5hdkVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKE5PTl9OQVZfSElEREVOX0FUVFJJQlVURSk7XG4gIH0pO1xufTtcblxuLy8gVG9nZ2xlIGFsbCBub24taGVhZGVyIGVsZW1lbnRzICMzNTI3LlxuY29uc3QgdG9nZ2xlTm9uTmF2SXRlbXMgPSAoYWN0aXZlKSA9PiB7XG4gIGlmIChhY3RpdmUpIHtcbiAgICBoaWRlTm9uTmF2SXRlbXMoKTtcbiAgfSBlbHNlIHtcbiAgICBzaG93Tm9uTmF2SXRlbXMoKTtcbiAgfVxufTtcblxuLyoqXG4gKiBEZXRlY3QgU2FmYXJpIGFuZCBhZGQgYm9keSBjbGFzcyBmb3IgYSBTYWZhcmktb25seSBDU1MgYnVnIGZpeC5cbiAqIE1vcmUgZGV0YWlscyBpbiBodHRwczovL2dpdGh1Yi5jb20vdXN3ZHMvdXN3ZHMvcHVsbC81NDQzXG4gKi9cbmNvbnN0IGFkZFNhZmFyaUNsYXNzID0gKCkgPT4ge1xuICBpZiAoaXNTYWZhcmkpIHtcbiAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoXCJpcy1zYWZhcmlcIik7XG4gIH1cbn07XG5cbi8qKlxuICogU2V0IHRoZSB2YWx1ZSBmb3IgdGhlIC0tc2Nyb2xsdG9wIENTUyB2YXIgd2hlbiB0aGUgbW9iaWxlIG1lbnUgaXMgb3Blbi5cbiAqIFRoaXMgYWxsb3dzIHRoZSBDU1MgdG8gbG9jayB0aGUgY3VycmVudCBzY3JvbGwgcG9zaXRpb24gaW4gU2FmYXJpXG4gKiB3aGVuIG92ZXJmbG93LXkgaXMgc2V0IHRvIHNjcm9sbC5cbiAqIE1vcmUgZGV0YWlscyBpbiBodHRwczovL2dpdGh1Yi5jb20vdXN3ZHMvdXN3ZHMvcHVsbC81NDQzXG4gKi9cbmNvbnN0IHNldFNhZmFyaVNjcm9sbFBvc2l0aW9uID0gKGJvZHkpID0+IHtcbiAgY29uc3QgY3VycmVudFNjcm9sbFBvc2l0aW9uID0gYC0ke3dpbmRvdy5zY3JvbGxZfXB4YDtcbiAgaWYgKGlzU2FmYXJpKSB7XG4gICAgYm9keS5zdHlsZS5zZXRQcm9wZXJ0eShcIi0tc2Nyb2xsdG9wXCIsIGN1cnJlbnRTY3JvbGxQb3NpdGlvbik7XG4gIH1cbn07XG5cbmNvbnN0IHRvZ2dsZU5hdiA9IChhY3RpdmUpID0+IHtcbiAgY29uc3QgeyBib2R5IH0gPSBkb2N1bWVudDtcbiAgY29uc3Qgc2FmZUFjdGl2ZSA9IHR5cGVvZiBhY3RpdmUgPT09IFwiYm9vbGVhblwiID8gYWN0aXZlIDogIWlzQWN0aXZlKCk7XG5cbiAgc2V0U2FmYXJpU2Nyb2xsUG9zaXRpb24oYm9keSk7XG5cbiAgYm9keS5jbGFzc0xpc3QudG9nZ2xlKEFDVElWRV9DTEFTUywgc2FmZUFjdGl2ZSk7XG5cbiAgc2VsZWN0KFRPR0dMRVMpLmZvckVhY2goKGVsKSA9PlxuICAgIGVsLmNsYXNzTGlzdC50b2dnbGUoVklTSUJMRV9DTEFTUywgc2FmZUFjdGl2ZSksXG4gICk7XG5cbiAgbmF2aWdhdGlvbi5mb2N1c1RyYXAudXBkYXRlKHNhZmVBY3RpdmUpO1xuXG4gIGNvbnN0IGNsb3NlQnV0dG9uID0gYm9keS5xdWVyeVNlbGVjdG9yKENMT1NFX0JVVFRPTik7XG4gIGNvbnN0IG1lbnVCdXR0b24gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKE9QRU5FUlMpO1xuXG4gIGJvZHkuc3R5bGUucGFkZGluZ1JpZ2h0ID1cbiAgICBib2R5LnN0eWxlLnBhZGRpbmdSaWdodCA9PT0gVEVNUE9SQVJZX1BBRERJTkdcbiAgICAgID8gSU5JVElBTF9QQURESU5HXG4gICAgICA6IFRFTVBPUkFSWV9QQURESU5HO1xuXG4gIHRvZ2dsZU5vbk5hdkl0ZW1zKHNhZmVBY3RpdmUpO1xuXG4gIGlmIChzYWZlQWN0aXZlICYmIGNsb3NlQnV0dG9uKSB7XG4gICAgLy8gVGhlIG1vYmlsZSBuYXYgd2FzIGp1c3QgYWN0aXZhdGVkLiBGb2N1cyBvbiB0aGUgY2xvc2UgYnV0dG9uLCB3aGljaCBpc1xuICAgIC8vIGp1c3QgYmVmb3JlIGFsbCB0aGUgbmF2IGVsZW1lbnRzIGluIHRoZSB0YWIgb3JkZXIuXG4gICAgY2xvc2VCdXR0b24uZm9jdXMoKTtcbiAgfSBlbHNlIGlmIChcbiAgICAhc2FmZUFjdGl2ZSAmJlxuICAgIG1lbnVCdXR0b24gJiZcbiAgICBnZXRDb21wdXRlZFN0eWxlKG1lbnVCdXR0b24pLmRpc3BsYXkgIT09IFwibm9uZVwiXG4gICkge1xuICAgIC8vIFRoZSBtb2JpbGUgbmF2IHdhcyBqdXN0IGRlYWN0aXZhdGVkLiBXZSBkb24ndCB3YW50IHRoZSBmb2N1cyB0b1xuICAgIC8vIGRpc2FwcGVhciBpbnRvIHRoZSB2b2lkLCBzbyBmb2N1cyBvbiB0aGUgbWVudSBidXR0b24gaWYgaXQnc1xuICAgIC8vIHZpc2libGUgKHRoaXMgbWF5IGhhdmUgYmVlbiB3aGF0IHRoZSB1c2VyIHdhcyBqdXN0IGZvY3VzZWQgb24sXG4gICAgLy8gaWYgdGhleSB0cmlnZ2VyZWQgdGhlIG1vYmlsZSBuYXYgYnkgbWlzdGFrZSkuXG4gICAgbWVudUJ1dHRvbi5mb2N1cygpO1xuICB9XG5cbiAgcmV0dXJuIHNhZmVBY3RpdmU7XG59O1xuXG5jb25zdCByZXNpemUgPSAoKSA9PiB7XG4gIGNvbnN0IGNsb3NlciA9IGRvY3VtZW50LmJvZHkucXVlcnlTZWxlY3RvcihDTE9TRV9CVVRUT04pO1xuXG4gIGlmIChpc0FjdGl2ZSgpICYmIGNsb3NlciAmJiBjbG9zZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGggPT09IDApIHtcbiAgICAvLyBXaGVuIHRoZSBtb2JpbGUgbmF2IGlzIGFjdGl2ZSwgYW5kIHRoZSBjbG9zZSBib3ggaXNuJ3QgdmlzaWJsZSxcbiAgICAvLyB3ZSBrbm93IHRoZSB1c2VyJ3Mgdmlld3BvcnQgaGFzIGJlZW4gcmVzaXplZCB0byBiZSBsYXJnZXIuXG4gICAgLy8gTGV0J3MgbWFrZSB0aGUgcGFnZSBzdGF0ZSBjb25zaXN0ZW50IGJ5IGRlYWN0aXZhdGluZyB0aGUgbW9iaWxlIG5hdi5cbiAgICBuYXZpZ2F0aW9uLnRvZ2dsZU5hdi5jYWxsKGNsb3NlciwgZmFsc2UpO1xuICB9XG59O1xuXG5jb25zdCBvbk1lbnVDbG9zZSA9ICgpID0+IG5hdmlnYXRpb24udG9nZ2xlTmF2LmNhbGwobmF2aWdhdGlvbiwgZmFsc2UpO1xuXG5jb25zdCBoaWRlQWN0aXZlTmF2RHJvcGRvd24gPSAoKSA9PiB7XG4gIGlmICghbmF2QWN0aXZlKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgdG9nZ2xlKG5hdkFjdGl2ZSwgZmFsc2UpO1xuICBuYXZBY3RpdmUgPSBudWxsO1xufTtcblxuY29uc3QgZm9jdXNOYXZCdXR0b24gPSAoZXZlbnQpID0+IHtcbiAgY29uc3QgcGFyZW50TmF2SXRlbSA9IGV2ZW50LnRhcmdldC5jbG9zZXN0KE5BVl9QUklNQVJZX0lURU0pO1xuXG4gIC8vIE9ubHkgc2hpZnQgZm9jdXMgaWYgd2l0aGluIGRyb3Bkb3duXG4gIGlmICghZXZlbnQudGFyZ2V0Lm1hdGNoZXMoTkFWX0NPTlRST0wpKSB7XG4gICAgY29uc3QgbmF2Q29udHJvbCA9IHBhcmVudE5hdkl0ZW0ucXVlcnlTZWxlY3RvcihOQVZfQ09OVFJPTCk7XG4gICAgaWYgKG5hdkNvbnRyb2wpIHtcbiAgICAgIG5hdkNvbnRyb2wuZm9jdXMoKTtcbiAgICB9XG4gIH1cbn07XG5cbmNvbnN0IGhhbmRsZUVzY2FwZSA9IChldmVudCkgPT4ge1xuICBoaWRlQWN0aXZlTmF2RHJvcGRvd24oKTtcbiAgZm9jdXNOYXZCdXR0b24oZXZlbnQpO1xufTtcblxubmF2aWdhdGlvbiA9IGJlaGF2aW9yKFxuICB7XG4gICAgW0NMSUNLXToge1xuICAgICAgW05BVl9DT05UUk9MXSgpIHtcbiAgICAgICAgLy8gSWYgYW5vdGhlciBuYXYgaXMgb3BlbiwgY2xvc2UgaXRcbiAgICAgICAgaWYgKG5hdkFjdGl2ZSAhPT0gdGhpcykge1xuICAgICAgICAgIGhpZGVBY3RpdmVOYXZEcm9wZG93bigpO1xuICAgICAgICB9XG4gICAgICAgIC8vIHN0b3JlIGEgcmVmZXJlbmNlIHRvIHRoZSBsYXN0IGNsaWNrZWQgbmF2IGxpbmsgZWxlbWVudCwgc28gd2VcbiAgICAgICAgLy8gY2FuIGhpZGUgdGhlIGRyb3Bkb3duIGlmIGFub3RoZXIgZWxlbWVudCBvbiB0aGUgcGFnZSBpcyBjbGlja2VkXG4gICAgICAgIGlmICghbmF2QWN0aXZlKSB7XG4gICAgICAgICAgbmF2QWN0aXZlID0gdGhpcztcbiAgICAgICAgICB0b2dnbGUobmF2QWN0aXZlLCB0cnVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIERvIHRoaXMgc28gdGhlIGV2ZW50IGhhbmRsZXIgb24gdGhlIGJvZHkgZG9lc24ndCBmaXJlXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH0sXG4gICAgICBbQk9EWV06IGhpZGVBY3RpdmVOYXZEcm9wZG93bixcbiAgICAgIFtPUEVORVJTXTogdG9nZ2xlTmF2LFxuICAgICAgW0NMT1NFUlNdOiB0b2dnbGVOYXYsXG4gICAgICBbTkFWX0xJTktTXSgpIHtcbiAgICAgICAgLy8gQSBuYXZpZ2F0aW9uIGxpbmsgaGFzIGJlZW4gY2xpY2tlZCEgV2Ugd2FudCB0byBjb2xsYXBzZSBhbnlcbiAgICAgICAgLy8gaGllcmFyY2hpY2FsIG5hdmlnYXRpb24gVUkgaXQncyBhIHBhcnQgb2YsIHNvIHRoYXQgdGhlIHVzZXJcbiAgICAgICAgLy8gY2FuIGZvY3VzIG9uIHdoYXRldmVyIHRoZXkndmUganVzdCBzZWxlY3RlZC5cblxuICAgICAgICAvLyBTb21lIG5hdmlnYXRpb24gbGlua3MgYXJlIGluc2lkZSBhY2NvcmRpb25zOyB3aGVuIHRoZXkncmVcbiAgICAgICAgLy8gY2xpY2tlZCwgd2Ugd2FudCB0byBjb2xsYXBzZSB0aG9zZSBhY2NvcmRpb25zLlxuICAgICAgICBjb25zdCBhY2MgPSB0aGlzLmNsb3Nlc3QoYWNjb3JkaW9uLkFDQ09SRElPTik7XG5cbiAgICAgICAgaWYgKGFjYykge1xuICAgICAgICAgIGFjY29yZGlvbi5nZXRCdXR0b25zKGFjYykuZm9yRWFjaCgoYnRuKSA9PiBhY2NvcmRpb24uaGlkZShidG4pKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIElmIHRoZSBtb2JpbGUgbmF2aWdhdGlvbiBtZW51IGlzIGFjdGl2ZSwgd2Ugd2FudCB0byBoaWRlIGl0LlxuICAgICAgICBpZiAoaXNBY3RpdmUoKSkge1xuICAgICAgICAgIG5hdmlnYXRpb24udG9nZ2xlTmF2LmNhbGwobmF2aWdhdGlvbiwgZmFsc2UpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgIH0sXG4gICAga2V5ZG93bjoge1xuICAgICAgW05BVl9QUklNQVJZXToga2V5bWFwKHsgRXNjYXBlOiBoYW5kbGVFc2NhcGUgfSksXG4gICAgfSxcbiAgICBmb2N1c291dDoge1xuICAgICAgW05BVl9QUklNQVJZXShldmVudCkge1xuICAgICAgICBjb25zdCBuYXYgPSBldmVudC50YXJnZXQuY2xvc2VzdChOQVZfUFJJTUFSWSk7XG5cbiAgICAgICAgaWYgKCFuYXYuY29udGFpbnMoZXZlbnQucmVsYXRlZFRhcmdldCkpIHtcbiAgICAgICAgICBoaWRlQWN0aXZlTmF2RHJvcGRvd24oKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9LFxuICB9LFxuICB7XG4gICAgaW5pdChyb290KSB7XG4gICAgICBjb25zdCB0cmFwQ29udGFpbmVyID0gcm9vdC5tYXRjaGVzKE5BVikgPyByb290IDogcm9vdC5xdWVyeVNlbGVjdG9yKE5BVik7XG5cbiAgICAgIGlmICh0cmFwQ29udGFpbmVyKSB7XG4gICAgICAgIG5hdmlnYXRpb24uZm9jdXNUcmFwID0gRm9jdXNUcmFwKHRyYXBDb250YWluZXIsIHtcbiAgICAgICAgICBFc2NhcGU6IG9uTWVudUNsb3NlLFxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgYWRkU2FmYXJpQ2xhc3MoKTtcbiAgICAgIHJlc2l6ZSgpO1xuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIiwgcmVzaXplLCBmYWxzZSk7XG4gICAgfSxcbiAgICB0ZWFyZG93bigpIHtcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwicmVzaXplXCIsIHJlc2l6ZSwgZmFsc2UpO1xuICAgICAgbmF2QWN0aXZlID0gZmFsc2U7XG4gICAgfSxcbiAgICBmb2N1c1RyYXA6IG51bGwsXG4gICAgdG9nZ2xlTmF2LFxuICB9LFxuKTtcblxubW9kdWxlLmV4cG9ydHMgPSBuYXZpZ2F0aW9uO1xuIiwiY29uc3Qgb25jZSA9IHJlcXVpcmUoXCJyZWNlcHRvci9vbmNlXCIpO1xuY29uc3Qga2V5bWFwID0gcmVxdWlyZShcInJlY2VwdG9yL2tleW1hcFwiKTtcbmNvbnN0IHNlbGVjdE9yTWF0Y2hlcyA9IHJlcXVpcmUoXCIuLi8uLi91c3dkcy1jb3JlL3NyYy9qcy91dGlscy9zZWxlY3Qtb3ItbWF0Y2hlc1wiKTtcbmNvbnN0IGJlaGF2aW9yID0gcmVxdWlyZShcIi4uLy4uL3Vzd2RzLWNvcmUvc3JjL2pzL3V0aWxzL2JlaGF2aW9yXCIpO1xuY29uc3QgeyBwcmVmaXg6IFBSRUZJWCB9ID0gcmVxdWlyZShcIi4uLy4uL3Vzd2RzLWNvcmUvc3JjL2pzL2NvbmZpZ1wiKTtcbmNvbnN0IHsgQ0xJQ0sgfSA9IHJlcXVpcmUoXCIuLi8uLi91c3dkcy1jb3JlL3NyYy9qcy9ldmVudHNcIik7XG5jb25zdCBTYW5pdGl6ZXIgPSByZXF1aXJlKFwiLi4vLi4vdXN3ZHMtY29yZS9zcmMvanMvdXRpbHMvc2FuaXRpemVyXCIpO1xuXG5jb25zdCBDVVJSRU5UX0NMQVNTID0gYCR7UFJFRklYfS1jdXJyZW50YDtcbmNvbnN0IElOX1BBR0VfTkFWX0hFQURJTkdTID0gXCJoMiBoM1wiO1xuY29uc3QgSU5fUEFHRV9OQVZfVkFMSURfSEVBRElOR1MgPSBbXCJoMVwiLCBcImgyXCIsIFwiaDNcIiwgXCJoNFwiLCBcImg1XCIsIFwiaDZcIl07XG5jb25zdCBJTl9QQUdFX05BVl9USVRMRV9URVhUID0gXCJPbiB0aGlzIHBhZ2VcIjtcbmNvbnN0IElOX1BBR0VfTkFWX1RJVExFX0hFQURJTkdfTEVWRUwgPSBcImg0XCI7XG5jb25zdCBJTl9QQUdFX05BVl9TQ1JPTExfT0ZGU0VUID0gMDtcbmNvbnN0IElOX1BBR0VfTkFWX1JPT1RfTUFSR0lOID0gXCIwcHggMHB4IDBweCAwcHhcIjtcbmNvbnN0IElOX1BBR0VfTkFWX1RIUkVTSE9MRCA9IFwiMVwiO1xuY29uc3QgSU5fUEFHRV9OQVZfQ0xBU1MgPSBgJHtQUkVGSVh9LWluLXBhZ2UtbmF2YDtcbmNvbnN0IElOX1BBR0VfTkFWX0FOQ0hPUl9DTEFTUyA9IGAke1BSRUZJWH0tYW5jaG9yYDtcbmNvbnN0IElOX1BBR0VfTkFWX05BVl9DTEFTUyA9IGAke0lOX1BBR0VfTkFWX0NMQVNTfV9fbmF2YDtcbmNvbnN0IElOX1BBR0VfTkFWX0xJU1RfQ0xBU1MgPSBgJHtJTl9QQUdFX05BVl9DTEFTU31fX2xpc3RgO1xuY29uc3QgSU5fUEFHRV9OQVZfSVRFTV9DTEFTUyA9IGAke0lOX1BBR0VfTkFWX0NMQVNTfV9faXRlbWA7XG5jb25zdCBJTl9QQUdFX05BVl9QUklNQVJZX0lURU1fQ0xBU1MgPSBgJHtJTl9QQUdFX05BVl9JVEVNX0NMQVNTfS0tcHJpbWFyeWA7XG5jb25zdCBJTl9QQUdFX05BVl9MSU5LX0NMQVNTID0gYCR7SU5fUEFHRV9OQVZfQ0xBU1N9X19saW5rYDtcbmNvbnN0IElOX1BBR0VfTkFWX1RJVExFX0NMQVNTID0gYCR7SU5fUEFHRV9OQVZfQ0xBU1N9X19oZWFkaW5nYDtcbmNvbnN0IE1BSU5fRUxFTUVOVCA9IFwibWFpblwiO1xuXG4vKipcbiAqIFNldCB0aGUgYWN0aXZlIGxpbmsgc3RhdGUgZm9yIHRoZSBjdXJyZW50bHkgb2JzZXJ2ZWQgc2VjdGlvblxuICpcbiAqIEBwYXJhbSB7SFRNTEVsZW1lbnR9IGVsIEFuIGVsZW1lbnQgd2l0aGluIHRoZSBpbi1wYWdlIG5hdiBjb21wb25lbnRcbiAqL1xuY29uc3Qgc2V0QWN0aXZlID0gKGVsKSA9PiB7XG4gIGNvbnN0IGFsbExpbmtzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChgLiR7SU5fUEFHRV9OQVZfTElOS19DTEFTU31gKTtcbiAgZWwubWFwKChpKSA9PiB7XG4gICAgaWYgKGkuaXNJbnRlcnNlY3RpbmcgPT09IHRydWUgJiYgaS5pbnRlcnNlY3Rpb25SYXRpbyA+PSAxKSB7XG4gICAgICBhbGxMaW5rcy5mb3JFYWNoKChsaW5rKSA9PiBsaW5rLmNsYXNzTGlzdC5yZW1vdmUoQ1VSUkVOVF9DTEFTUykpO1xuICAgICAgZG9jdW1lbnRcbiAgICAgICAgLnF1ZXJ5U2VsZWN0b3IoYGFbaHJlZj1cIiMke2kudGFyZ2V0LmlkfVwiXWApXG4gICAgICAgIC5jbGFzc0xpc3QuYWRkKENVUlJFTlRfQ0xBU1MpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfSk7XG59O1xuXG4vKipcbiAqIFJldHVybiBhbiBhcnJheSBvZiB0aGUgZGVzaWduYXRlZCBoZWFkaW5nIHR5cGVzIGZvdW5kIGluIHRoZSBkZXNpZ25hdGVkIGNvbnRlbnQgcmVnaW9uLlxuICogVGhyb3cgYW4gZXJyb3IgaWYgYW4gaW52YWxpZCBoZWFkZXIgZWxlbWVudCBpcyBkZXNpZ25hdGVkLlxuICpcbiAqIEBwYXJhbSB7SFRNTEVsZW1lbnR9IHNlbGVjdGVkQ29udGVudFJlZ2lvbiBUaGUgY29udGVudCByZWdpb24gdGhlIGNvbXBvbmVudCBzaG91bGQgcHVsbCBoZWFkZXJzIGZyb21cbiAqIEBwYXJhbSB7U3RyaW5nfSBzZWxlY3RlZEhlYWRpbmdUeXBlcyBUaGUgbGlzdCBvZiBoZWFkaW5nIHR5cGVzIHRoYXQgc2hvdWxkIGJlIGluY2x1ZGVkIGluIHRoZSBuYXYgbGlzdFxuICpcbiAqIEByZXR1cm4ge0FycmF5fSAtIEFuIGFycmF5IG9mIGRlc2lnbmF0ZWQgaGVhZGluZyB0eXBlcyBmcm9tIHRoZSBkZXNpZ25hdGVkIGNvbnRlbnQgcmVnaW9uXG4gKi9cbmNvbnN0IGNyZWF0ZVNlY3Rpb25IZWFkaW5nc0FycmF5ID0gKFxuICBzZWxlY3RlZENvbnRlbnRSZWdpb24sXG4gIHNlbGVjdGVkSGVhZGluZ1R5cGVzLFxuKSA9PiB7XG4gIC8vIENvbnZlcnQgZGVzaWduYXRlZCBoZWFkaW5ncyBsaXN0IHRvIGFuIGFycmF5XG4gIGNvbnN0IHNlbGVjdGVkSGVhZGluZ1R5cGVzQXJyYXkgPSBzZWxlY3RlZEhlYWRpbmdUeXBlcy5pbmRleE9mKFwiIFwiKVxuICAgID8gc2VsZWN0ZWRIZWFkaW5nVHlwZXMuc3BsaXQoXCIgXCIpXG4gICAgOiBzZWxlY3RlZEhlYWRpbmdUeXBlcztcbiAgY29uc3QgY29udGVudFJlZ2lvbiA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Ioc2VsZWN0ZWRDb250ZW50UmVnaW9uKTtcblxuICBzZWxlY3RlZEhlYWRpbmdUeXBlc0FycmF5LmZvckVhY2goKGhlYWRpbmdUeXBlKSA9PiB7XG4gICAgaWYgKCFJTl9QQUdFX05BVl9WQUxJRF9IRUFESU5HUy5pbmNsdWRlcyhoZWFkaW5nVHlwZSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEluLXBhZ2UgbmF2aWdhdGlvbjogZGF0YS1oZWFkaW5nLWVsZW1lbnRzIGF0dHJpYnV0ZSBkZWZpbmVkIHdpdGggYW4gaW52YWxpZCBoZWFkaW5nIHR5cGU6IFwiJHtoZWFkaW5nVHlwZX1cIi5cbiAgICAgICAgRGVmaW5lIHRoZSBhdHRyaWJ1dGUgd2l0aCBvbmUgb3IgbW9yZSBvZiB0aGUgZm9sbG93aW5nOiBcIiR7SU5fUEFHRV9OQVZfVkFMSURfSEVBRElOR1N9XCIuXG4gICAgICAgIERvIG5vdCB1c2UgY29tbWFzIG9yIG90aGVyIHB1bmN0dWF0aW9uIGluIHRoZSBhdHRyaWJ1dGUgZGVmaW5pdGlvbi5gLFxuICAgICAgKTtcbiAgICB9XG4gIH0pO1xuXG4gIGNvbnN0IHNlY3Rpb25IZWFkaW5nc0FycmF5ID0gQXJyYXkuZnJvbShcbiAgICBjb250ZW50UmVnaW9uLnF1ZXJ5U2VsZWN0b3JBbGwoc2VsZWN0ZWRIZWFkaW5nVHlwZXNBcnJheSksXG4gICk7XG5cbiAgcmV0dXJuIHNlY3Rpb25IZWFkaW5nc0FycmF5O1xufTtcblxuLyoqXG4gKiBSZXR1cm4gYW4gYXJyYXkgb2YgdGhlIHZpc2libGUgaGVhZGluZ3MgZnJvbSBzZWN0aW9uSGVhZGluZ3NBcnJheS5cbiAqIFRoaXMgZnVuY3Rpb24gcmVtb3ZlcyBoZWFkaW5ncyB0aGF0IGFyZSBoaWRkZW4gd2l0aCBkaXNwbGF5Om5vbmUgb3IgdmlzaWJpbGl0eTpub25lIHN0eWxlIHJ1bGVzLlxuICogVGhlc2UgaXRlbXMgd2lsbCBiZSBhZGRlZCB0byB0aGUgY29tcG9uZW50IG5hdiBsaXN0LlxuICpcbiAqIEBwYXJhbSB7SFRNTEVsZW1lbnR9IHNlbGVjdGVkQ29udGVudFJlZ2lvbiBUaGUgY29udGVudCByZWdpb24gdGhlIGNvbXBvbmVudCBzaG91bGQgcHVsbCBoZWFkZXJzIGZyb21cbiAqIEBwYXJhbSB7U3RyaW5nfSBzZWxlY3RlZEhlYWRpbmdUeXBlcyBUaGUgbGlzdCBvZiBoZWFkaW5nIHR5cGVzIHRoYXQgc2hvdWxkIGJlIGluY2x1ZGVkIGluIHRoZSBuYXYgbGlzdFxuICpcbiAqIEByZXR1cm4ge0FycmF5fSAtIEFuIGFycmF5IG9mIHZpc2libGUgaGVhZGluZ3MgZnJvbSB0aGUgZGVzaWduYXRlZCBjb250ZW50IHJlZ2lvblxuICovXG5jb25zdCBnZXRWaXNpYmxlU2VjdGlvbkhlYWRpbmdzID0gKFxuICBzZWxlY3RlZENvbnRlbnRSZWdpb24sXG4gIHNlbGVjdGVkSGVhZGluZ1R5cGVzLFxuKSA9PiB7XG4gIGNvbnN0IHNlY3Rpb25IZWFkaW5ncyA9IGNyZWF0ZVNlY3Rpb25IZWFkaW5nc0FycmF5KFxuICAgIHNlbGVjdGVkQ29udGVudFJlZ2lvbixcbiAgICBzZWxlY3RlZEhlYWRpbmdUeXBlcyxcbiAgKTtcblxuICAvLyBGaW5kIGFsbCBoZWFkaW5ncyB3aXRoIGhpZGRlbiBzdHlsaW5nIGFuZCByZW1vdmUgdGhlbSBmcm9tIHRoZSBhcnJheVxuICBjb25zdCB2aXNpYmxlU2VjdGlvbkhlYWRpbmdzID0gc2VjdGlvbkhlYWRpbmdzLmZpbHRlcigoaGVhZGluZykgPT4ge1xuICAgIGNvbnN0IGhlYWRpbmdTdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGhlYWRpbmcpO1xuICAgIGNvbnN0IHZpc2libGVIZWFkaW5nID1cbiAgICAgIGhlYWRpbmdTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKFwiZGlzcGxheVwiKSAhPT0gXCJub25lXCIgJiZcbiAgICAgIGhlYWRpbmdTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKFwidmlzaWJpbGl0eVwiKSAhPT0gXCJoaWRkZW5cIjtcblxuICAgIHJldHVybiB2aXNpYmxlSGVhZGluZztcbiAgfSk7XG5cbiAgcmV0dXJuIHZpc2libGVTZWN0aW9uSGVhZGluZ3M7XG59O1xuXG4vKipcbiAqIFJldHVybiB0aGUgaGlnaGVzdC1sZXZlbCBoZWFkZXIgdGFnIGluY2x1ZGVkIGluIHRoZSBsaW5rIGxpc3RcbiAqXG4gKiBAcGFyYW0ge0hUTUxFbGVtZW50fSBzZWN0aW9uSGVhZGluZ3MgVGhlIGFycmF5IG9mIGhlYWRpbmdzIHNlbGVjdGVkIGZvciBpbmNsdXNpb24gaW4gdGhlIGxpbmsgbGlzdFxuICpcbiAqIEByZXR1cm4ge3RhZ05hbWV9IC0gVGhlIHRhZyBuYW1lIGZvciB0aGUgaGlnaGVzdCBsZXZlbCBvZiBoZWFkZXIgaW4gdGhlIGxpbmsgbGlzdFxuICovXG5cbmNvbnN0IGdldFRvcExldmVsSGVhZGluZyA9IChzZWN0aW9uSGVhZGluZ3MpID0+IHtcbiAgY29uc3QgdG9wSGVhZGluZyA9IHNlY3Rpb25IZWFkaW5nc1swXS50YWdOYW1lLnRvTG93ZXJDYXNlKCk7XG4gIHJldHVybiB0b3BIZWFkaW5nO1xufTtcblxuLyoqXG4gKiBSZXR1cm4gYSBub2RlIGxpc3Qgb2Ygc2VjdGlvbiBhbmNob3IgdGFnc1xuICpcbiAqIEByZXR1cm4ge0hUTUxFbGVtZW50W119IC0gQW4gYXJyYXkgb2YgRE9NIG5vZGVzXG4gKi9cbmNvbnN0IGdldFNlY3Rpb25BbmNob3JzID0gKCkgPT4ge1xuICBjb25zdCBzZWN0aW9uQW5jaG9ycyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXG4gICAgYC4ke0lOX1BBR0VfTkFWX0FOQ0hPUl9DTEFTU31gLFxuICApO1xuICByZXR1cm4gc2VjdGlvbkFuY2hvcnM7XG59O1xuXG4vKipcbiAqIEdlbmVyYXRlcyBhIHVuaXF1ZSBJRCBmb3IgdGhlIGdpdmVuIGhlYWRpbmcgZWxlbWVudC5cbiAqXG4gKiBAcGFyYW0ge0hUTUxIZWFkaW5nRWxlbWVudH0gaGVhZGluZ1xuICpcbiAqIEByZXR1cm4ge3N0cmluZ30gLSBVbmlxdWUgSURcbiAqL1xuY29uc3QgZ2V0SGVhZGluZ0lkID0gKGhlYWRpbmcpID0+IHtcbiAgY29uc3QgYmFzZUlkID0gaGVhZGluZy50ZXh0Q29udGVudFxuICAgIC50b0xvd2VyQ2FzZSgpXG4gICAgLy8gUmVwbGFjZSBub24tYWxwaGFudW1lcmljIGNoYXJhY3RlcnMgd2l0aCBkYXNoZXNcbiAgICAucmVwbGFjZSgvW15hLXpcXGRdL2csIFwiLVwiKVxuICAgIC8vIFJlcGxhY2UgYSBzZXF1ZW5jZSBvZiB0d28gb3IgbW9yZSBkYXNoZXMgd2l0aCBhIHNpbmdsZSBkYXNoXG4gICAgLnJlcGxhY2UoLy17Mix9L2csIFwiLVwiKVxuICAgIC8vIFRyaW0gbGVhZGluZyBvciB0cmFpbGluZyBkYXNoICh0aGVyZSBzaG91bGQgb25seSBldmVyIGJlIG9uZSlcbiAgICAucmVwbGFjZSgvXi18LSQvZywgXCJcIik7XG5cbiAgbGV0IGlkO1xuICBsZXQgc3VmZml4ID0gMDtcbiAgZG8ge1xuICAgIGlkID0gYmFzZUlkO1xuXG4gICAgLy8gVG8gYXZvaWQgY29uZmxpY3RzIHdpdGggZXhpc3RpbmcgSURzIG9uIHRoZSBwYWdlLCBsb29wIGFuZCBhcHBlbmQgYW5cbiAgICAvLyBpbmNyZW1lbnRlZCBzdWZmaXggdW50aWwgYSB1bmlxdWUgSUQgaXMgZm91bmQuXG4gICAgc3VmZml4ICs9IDE7XG4gICAgaWYgKHN1ZmZpeCA+IDEpIHtcbiAgICAgIGlkICs9IGAtJHtzdWZmaXh9YDtcbiAgICB9XG4gIH0gd2hpbGUgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKSk7XG5cbiAgcmV0dXJuIGlkO1xufTtcblxuLyoqXG4gKiBSZXR1cm4gYSBzZWN0aW9uIGlkL2FuY2hvciBoYXNoIHdpdGhvdXQgdGhlIG51bWJlciBzaWduXG4gKlxuICogQHJldHVybiB7U3RyaW5nfSAtIElkIHZhbHVlIHdpdGggdGhlIG51bWJlciBzaWduIHJlbW92ZWRcbiAqL1xuY29uc3QgZ2V0U2VjdGlvbklkID0gKHZhbHVlKSA9PiB7XG4gIGxldCBpZDtcblxuICAvLyBDaGVjayBpZiB2YWx1ZSBpcyBhbiBldmVudCBvciBlbGVtZW50IGFuZCBnZXQgdGhlIGNsZWFuZWQgdXAgaWRcbiAgaWYgKHZhbHVlICYmIHZhbHVlLm5vZGVUeXBlID09PSAxKSB7XG4gICAgaWQgPSB2YWx1ZS5nZXRBdHRyaWJ1dGUoXCJocmVmXCIpLnJlcGxhY2UoXCIjXCIsIFwiXCIpO1xuICB9IGVsc2Uge1xuICAgIGlkID0gdmFsdWUudGFyZ2V0Lmhhc2gucmVwbGFjZShcIiNcIiwgXCJcIik7XG4gIH1cblxuICByZXR1cm4gaWQ7XG59O1xuXG4vKipcbiAqIFNjcm9sbCBzbW9vdGhseSB0byBhIHNlY3Rpb24gYmFzZWQgb24gdGhlIHBhc3NlZCBpbiBlbGVtZW50XG4gKlxuICogQHBhcmFtIHtIVE1MRWxlbWVudH0gLSBJZCB2YWx1ZSB3aXRoIHRoZSBudW1iZXIgc2lnbiByZW1vdmVkXG4gKi9cbmNvbnN0IGhhbmRsZVNjcm9sbFRvU2VjdGlvbiA9IChlbCkgPT4ge1xuICBjb25zdCBpblBhZ2VOYXZFbCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYC4ke0lOX1BBR0VfTkFWX0NMQVNTfWApO1xuICBjb25zdCBpblBhZ2VOYXZTY3JvbGxPZmZzZXQgPVxuICAgIGluUGFnZU5hdkVsLmRhdGFzZXQuc2Nyb2xsT2Zmc2V0IHx8IElOX1BBR0VfTkFWX1NDUk9MTF9PRkZTRVQ7XG5cbiAgd2luZG93LnNjcm9sbCh7XG4gICAgYmVoYXZpb3I6IFwic21vb3RoXCIsXG4gICAgdG9wOiBlbC5vZmZzZXRUb3AgLSBpblBhZ2VOYXZTY3JvbGxPZmZzZXQsXG4gICAgYmxvY2s6IFwic3RhcnRcIixcbiAgfSk7XG5cbiAgaWYgKHdpbmRvdy5sb2NhdGlvbi5oYXNoLnNsaWNlKDEpICE9PSBlbC5pZCkge1xuICAgIHdpbmRvdy5oaXN0b3J5LnB1c2hTdGF0ZShudWxsLCBcIlwiLCBgIyR7ZWwuaWR9YCk7XG4gIH1cbn07XG5cbi8qKlxuICogU2Nyb2xscyB0aGUgcGFnZSB0byB0aGUgc2VjdGlvbiBjb3JyZXNwb25kaW5nIHRvIHRoZSBjdXJyZW50IGhhc2ggZnJhZ21lbnQsIGlmIG9uZSBleGlzdHMuXG4gKi9cbmNvbnN0IHNjcm9sbFRvQ3VycmVudFNlY3Rpb24gPSAoKSA9PiB7XG4gIGNvbnN0IGhhc2hGcmFnbWVudCA9IHdpbmRvdy5sb2NhdGlvbi5oYXNoLnNsaWNlKDEpO1xuICBpZiAoaGFzaEZyYWdtZW50KSB7XG4gICAgY29uc3QgYW5jaG9yVGFnID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaGFzaEZyYWdtZW50KTtcbiAgICBpZiAoYW5jaG9yVGFnKSB7XG4gICAgICBoYW5kbGVTY3JvbGxUb1NlY3Rpb24oYW5jaG9yVGFnKTtcbiAgICB9XG4gIH1cbn07XG5cbi8qKlxuICogQ3JlYXRlIHRoZSBpbi1wYWdlIG5hdmlnYXRpb24gY29tcG9uZW50XG4gKlxuICogQHBhcmFtIHtIVE1MRWxlbWVudH0gaW5QYWdlTmF2RWwgVGhlIGluLXBhZ2UgbmF2IGVsZW1lbnRcbiAqL1xuY29uc3QgY3JlYXRlSW5QYWdlTmF2ID0gKGluUGFnZU5hdkVsKSA9PiB7XG4gIGNvbnN0IGluUGFnZU5hdlRpdGxlVGV4dCA9IFNhbml0aXplci5lc2NhcGVIVE1MYCR7XG4gICAgaW5QYWdlTmF2RWwuZGF0YXNldC50aXRsZVRleHQgfHwgSU5fUEFHRV9OQVZfVElUTEVfVEVYVFxuICB9YDtcbiAgY29uc3QgaW5QYWdlTmF2VGl0bGVIZWFkaW5nTGV2ZWwgPSBTYW5pdGl6ZXIuZXNjYXBlSFRNTGAke1xuICAgIGluUGFnZU5hdkVsLmRhdGFzZXQudGl0bGVIZWFkaW5nTGV2ZWwgfHwgSU5fUEFHRV9OQVZfVElUTEVfSEVBRElOR19MRVZFTFxuICB9YDtcbiAgY29uc3QgaW5QYWdlTmF2Um9vdE1hcmdpbiA9IFNhbml0aXplci5lc2NhcGVIVE1MYCR7XG4gICAgaW5QYWdlTmF2RWwuZGF0YXNldC5yb290TWFyZ2luIHx8IElOX1BBR0VfTkFWX1JPT1RfTUFSR0lOXG4gIH1gO1xuICBjb25zdCBpblBhZ2VOYXZUaHJlc2hvbGQgPSBTYW5pdGl6ZXIuZXNjYXBlSFRNTGAke1xuICAgIGluUGFnZU5hdkVsLmRhdGFzZXQudGhyZXNob2xkIHx8IElOX1BBR0VfTkFWX1RIUkVTSE9MRFxuICB9YDtcbiAgY29uc3QgaW5QYWdlTmF2Q29udGVudFNlbGVjdG9yID0gU2FuaXRpemVyLmVzY2FwZUhUTUxgJHtcbiAgICBpblBhZ2VOYXZFbC5kYXRhc2V0Lm1haW5Db250ZW50U2VsZWN0b3IgfHwgTUFJTl9FTEVNRU5UXG4gIH1gO1xuICBjb25zdCBpblBhZ2VOYXZIZWFkaW5nU2VsZWN0b3IgPSBTYW5pdGl6ZXIuZXNjYXBlSFRNTGAke1xuICAgIGluUGFnZU5hdkVsLmRhdGFzZXQuaGVhZGluZ0VsZW1lbnRzIHx8IElOX1BBR0VfTkFWX0hFQURJTkdTXG4gIH1gO1xuXG4gIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgcm9vdDogbnVsbCxcbiAgICByb290TWFyZ2luOiBpblBhZ2VOYXZSb290TWFyZ2luLFxuICAgIHRocmVzaG9sZDogW2luUGFnZU5hdlRocmVzaG9sZF0sXG4gIH07XG5cbiAgY29uc3Qgc2VjdGlvbkhlYWRpbmdzID0gZ2V0VmlzaWJsZVNlY3Rpb25IZWFkaW5ncyhcbiAgICBpblBhZ2VOYXZDb250ZW50U2VsZWN0b3IsXG4gICAgaW5QYWdlTmF2SGVhZGluZ1NlbGVjdG9yLFxuICApO1xuICBjb25zdCBpblBhZ2VOYXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwibmF2XCIpO1xuICBpblBhZ2VOYXYuc2V0QXR0cmlidXRlKFwiYXJpYS1sYWJlbFwiLCBpblBhZ2VOYXZUaXRsZVRleHQpO1xuICBpblBhZ2VOYXYuY2xhc3NMaXN0LmFkZChJTl9QQUdFX05BVl9OQVZfQ0xBU1MpO1xuXG4gIGNvbnN0IGluUGFnZU5hdlRpdGxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChpblBhZ2VOYXZUaXRsZUhlYWRpbmdMZXZlbCk7XG4gIGluUGFnZU5hdlRpdGxlLmNsYXNzTGlzdC5hZGQoSU5fUEFHRV9OQVZfVElUTEVfQ0xBU1MpO1xuICBpblBhZ2VOYXZUaXRsZS5zZXRBdHRyaWJ1dGUoXCJ0YWJpbmRleFwiLCBcIjBcIik7XG4gIGluUGFnZU5hdlRpdGxlLnRleHRDb250ZW50ID0gaW5QYWdlTmF2VGl0bGVUZXh0O1xuICBpblBhZ2VOYXYuYXBwZW5kQ2hpbGQoaW5QYWdlTmF2VGl0bGUpO1xuXG4gIGNvbnN0IGluUGFnZU5hdkxpc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwidWxcIik7XG4gIGluUGFnZU5hdkxpc3QuY2xhc3NMaXN0LmFkZChJTl9QQUdFX05BVl9MSVNUX0NMQVNTKTtcbiAgaW5QYWdlTmF2LmFwcGVuZENoaWxkKGluUGFnZU5hdkxpc3QpO1xuXG4gIHNlY3Rpb25IZWFkaW5ncy5mb3JFYWNoKChlbCkgPT4ge1xuICAgIGNvbnN0IGxpc3RJdGVtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImxpXCIpO1xuICAgIGNvbnN0IG5hdkxpbmtzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImFcIik7XG4gICAgY29uc3QgYW5jaG9yVGFnID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImFcIik7XG4gICAgY29uc3QgdGV4dENvbnRlbnRPZkxpbmsgPSBlbC50ZXh0Q29udGVudDtcbiAgICBjb25zdCB0YWcgPSBlbC50YWdOYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgY29uc3QgdG9wSGVhZGluZ0xldmVsID0gZ2V0VG9wTGV2ZWxIZWFkaW5nKHNlY3Rpb25IZWFkaW5ncyk7XG4gICAgY29uc3QgaGVhZGluZ0lkID0gZ2V0SGVhZGluZ0lkKGVsKTtcblxuICAgIGxpc3RJdGVtLmNsYXNzTGlzdC5hZGQoSU5fUEFHRV9OQVZfSVRFTV9DTEFTUyk7XG5cbiAgICBpZiAodGFnID09PSB0b3BIZWFkaW5nTGV2ZWwpIHtcbiAgICAgIGxpc3RJdGVtLmNsYXNzTGlzdC5hZGQoSU5fUEFHRV9OQVZfUFJJTUFSWV9JVEVNX0NMQVNTKTtcbiAgICB9XG5cbiAgICBuYXZMaW5rcy5zZXRBdHRyaWJ1dGUoXCJocmVmXCIsIGAjJHtoZWFkaW5nSWR9YCk7XG4gICAgbmF2TGlua3Muc2V0QXR0cmlidXRlKFwiY2xhc3NcIiwgSU5fUEFHRV9OQVZfTElOS19DTEFTUyk7XG4gICAgbmF2TGlua3MudGV4dENvbnRlbnQgPSB0ZXh0Q29udGVudE9mTGluaztcblxuICAgIGFuY2hvclRhZy5zZXRBdHRyaWJ1dGUoXCJpZFwiLCBoZWFkaW5nSWQpO1xuICAgIGFuY2hvclRhZy5zZXRBdHRyaWJ1dGUoXCJjbGFzc1wiLCBJTl9QQUdFX05BVl9BTkNIT1JfQ0xBU1MpO1xuICAgIGVsLmluc2VydEFkamFjZW50RWxlbWVudChcImFmdGVyYmVnaW5cIiwgYW5jaG9yVGFnKTtcblxuICAgIGluUGFnZU5hdkxpc3QuYXBwZW5kQ2hpbGQobGlzdEl0ZW0pO1xuICAgIGxpc3RJdGVtLmFwcGVuZENoaWxkKG5hdkxpbmtzKTtcbiAgfSk7XG5cbiAgaW5QYWdlTmF2RWwuYXBwZW5kQ2hpbGQoaW5QYWdlTmF2KTtcblxuICBjb25zdCBhbmNob3JUYWdzID0gZ2V0U2VjdGlvbkFuY2hvcnMoKTtcbiAgY29uc3Qgb2JzZXJ2ZVNlY3Rpb25zID0gbmV3IHdpbmRvdy5JbnRlcnNlY3Rpb25PYnNlcnZlcihzZXRBY3RpdmUsIG9wdGlvbnMpO1xuXG4gIGFuY2hvclRhZ3MuZm9yRWFjaCgodGFnKSA9PiB7XG4gICAgb2JzZXJ2ZVNlY3Rpb25zLm9ic2VydmUodGFnKTtcbiAgfSk7XG59O1xuXG4vKipcbiAqIEhhbmRsZSBjbGljayBmcm9tIGxpbmtcbiAqXG4gKiBAcGFyYW0ge0hUTUxFbGVtZW50fSBlbCBBbiBlbGVtZW50IHdpdGhpbiB0aGUgaW4tcGFnZSBuYXYgY29tcG9uZW50XG4gKi9cbmNvbnN0IGhhbmRsZUNsaWNrRnJvbUxpbmsgPSAoZWwpID0+IHtcbiAgY29uc3QgZWxlbWVudFRvU2Nyb2xsVG8gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbC5oYXNoLnNsaWNlKDEpKTtcbiAgaGFuZGxlU2Nyb2xsVG9TZWN0aW9uKGVsZW1lbnRUb1Njcm9sbFRvKTtcbn07XG5cbi8qKlxuICogSGFuZGxlIHRoZSBlbnRlciBldmVudCBmcm9tIGEgbGluayB3aXRoaW4gdGhlIGluLXBhZ2UgbmF2IGNvbXBvbmVudFxuICpcbiAqIEBwYXJhbSB7S2V5Ym9hcmRFdmVudH0gZXZlbnQgQW4gZXZlbnQgd2l0aGluIHRoZSBpbi1wYWdlIG5hdiBjb21wb25lbnRcbiAqL1xuY29uc3QgaGFuZGxlRW50ZXJGcm9tTGluayA9IChldmVudCkgPT4ge1xuICBjb25zdCBpZCA9IGdldFNlY3Rpb25JZChldmVudCk7XG4gIGNvbnN0IHRhcmdldEFuY2hvciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTtcbiAgY29uc3QgdGFyZ2V0ID0gdGFyZ2V0QW5jaG9yLnBhcmVudEVsZW1lbnQ7XG5cbiAgaWYgKHRhcmdldCkge1xuICAgIHRhcmdldC5zZXRBdHRyaWJ1dGUoXCJ0YWJpbmRleFwiLCAwKTtcbiAgICB0YXJnZXQuZm9jdXMoKTtcbiAgICB0YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgIFwiYmx1clwiLFxuICAgICAgb25jZSgoKSA9PiB7XG4gICAgICAgIHRhcmdldC5zZXRBdHRyaWJ1dGUoXCJ0YWJpbmRleFwiLCAtMSk7XG4gICAgICB9KSxcbiAgICApO1xuICB9IGVsc2Uge1xuICAgIC8vIHRocm93IGFuIGVycm9yP1xuICB9XG4gIGhhbmRsZVNjcm9sbFRvU2VjdGlvbih0YXJnZXRBbmNob3IpO1xufTtcblxuY29uc3QgaW5QYWdlTmF2aWdhdGlvbiA9IGJlaGF2aW9yKFxuICB7XG4gICAgW0NMSUNLXToge1xuICAgICAgW2AuJHtJTl9QQUdFX05BVl9MSU5LX0NMQVNTfWBdKGV2ZW50KSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkKSByZXR1cm47XG4gICAgICAgIGhhbmRsZUNsaWNrRnJvbUxpbmsodGhpcyk7XG4gICAgICB9LFxuICAgIH0sXG4gICAga2V5ZG93bjoge1xuICAgICAgW2AuJHtJTl9QQUdFX05BVl9MSU5LX0NMQVNTfWBdOiBrZXltYXAoe1xuICAgICAgICBFbnRlcjogaGFuZGxlRW50ZXJGcm9tTGluayxcbiAgICAgIH0pLFxuICAgIH0sXG4gIH0sXG4gIHtcbiAgICBpbml0KHJvb3QpIHtcbiAgICAgIHNlbGVjdE9yTWF0Y2hlcyhgLiR7SU5fUEFHRV9OQVZfQ0xBU1N9YCwgcm9vdCkuZm9yRWFjaCgoaW5QYWdlTmF2RWwpID0+IHtcbiAgICAgICAgY3JlYXRlSW5QYWdlTmF2KGluUGFnZU5hdkVsKTtcbiAgICAgICAgc2Nyb2xsVG9DdXJyZW50U2VjdGlvbigpO1xuICAgICAgfSk7XG4gICAgfSxcbiAgfSxcbik7XG5cbm1vZHVsZS5leHBvcnRzID0gaW5QYWdlTmF2aWdhdGlvbjtcbiIsImNvbnN0IHNlbGVjdE9yTWF0Y2hlcyA9IHJlcXVpcmUoXCIuLi8uLi91c3dkcy1jb3JlL3NyYy9qcy91dGlscy9zZWxlY3Qtb3ItbWF0Y2hlc1wiKTtcbmNvbnN0IGJlaGF2aW9yID0gcmVxdWlyZShcIi4uLy4uL3Vzd2RzLWNvcmUvc3JjL2pzL3V0aWxzL2JlaGF2aW9yXCIpO1xuY29uc3QgeyBwcmVmaXg6IFBSRUZJWCB9ID0gcmVxdWlyZShcIi4uLy4uL3Vzd2RzLWNvcmUvc3JjL2pzL2NvbmZpZ1wiKTtcblxuY29uc3QgTUFTS0VEX0NMQVNTID0gYCR7UFJFRklYfS1tYXNrZWRgO1xuY29uc3QgTUFTS0VEID0gYC4ke01BU0tFRF9DTEFTU31gO1xuY29uc3QgTUFTSyA9IGAke1BSRUZJWH0taW5wdXQtbWFza2A7XG5jb25zdCBNQVNLX0NPTlRFTlQgPSBgJHtNQVNLfS0tY29udGVudGA7XG5jb25zdCBQTEFDRUhPTERFUiA9IFwicGxhY2Vob2xkZXJcIjtcblxuLy8gVXNlciBkZWZpbmVkIFZhbHVlc1xuY29uc3QgbWFza2VkTnVtYmVyID0gXCJfI2REbU15WTlcIjtcbmNvbnN0IG1hc2tlZExldHRlciA9IFwiQVwiO1xuXG4vLyByZXBsYWNlcyBlYWNoIG1hc2tlZCBpbnB1dCB3aXRoIGEgc2hlbGwgY29udGFpbmluZyB0aGUgaW5wdXQgYW5kIGl0J3MgbWFzay5cbmNvbnN0IGNyZWF0ZU1hc2tlZElucHV0U2hlbGwgPSAoaW5wdXQpID0+IHtcbiAgY29uc3QgcGxhY2Vob2xkZXIgPSBpbnB1dC5nZXRBdHRyaWJ1dGUoYCR7UExBQ0VIT0xERVJ9YCk7XG4gIGlmIChwbGFjZWhvbGRlcikge1xuICAgIGlucHV0LnNldEF0dHJpYnV0ZShcIm1heGxlbmd0aFwiLCBwbGFjZWhvbGRlci5sZW5ndGgpO1xuICAgIGlucHV0LnNldEF0dHJpYnV0ZShcImRhdGEtcGxhY2Vob2xkZXJcIiwgcGxhY2Vob2xkZXIpO1xuICAgIGlucHV0LnJlbW92ZUF0dHJpYnV0ZShgJHtQTEFDRUhPTERFUn1gKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBzaGVsbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIpO1xuICBzaGVsbC5jbGFzc0xpc3QuYWRkKE1BU0spO1xuICBzaGVsbC5zZXRBdHRyaWJ1dGUoXCJkYXRhLW1hc2tcIiwgcGxhY2Vob2xkZXIpO1xuXG4gIGNvbnN0IGNvbnRlbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwic3BhblwiKTtcbiAgY29udGVudC5jbGFzc0xpc3QuYWRkKE1BU0tfQ09OVEVOVCk7XG4gIGNvbnRlbnQuc2V0QXR0cmlidXRlKFwiYXJpYS1oaWRkZW5cIiwgXCJ0cnVlXCIpO1xuICBjb250ZW50LmlkID0gYCR7aW5wdXQuaWR9TWFza2A7XG4gIGNvbnRlbnQudGV4dENvbnRlbnQgPSBwbGFjZWhvbGRlcjtcblxuICBzaGVsbC5hcHBlbmRDaGlsZChjb250ZW50KTtcbiAgaW5wdXQucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoc2hlbGwsIGlucHV0KTtcbiAgc2hlbGwuYXBwZW5kQ2hpbGQoaW5wdXQpO1xufTtcblxuY29uc3Qgc2V0VmFsdWVPZk1hc2sgPSAoZWwpID0+IHtcbiAgY29uc3QgeyB2YWx1ZSB9ID0gZWw7XG4gIGNvbnN0IHBsYWNlaG9sZGVyVmFsID0gYCR7ZWwuZGF0YXNldC5wbGFjZWhvbGRlci5zdWJzdHIodmFsdWUubGVuZ3RoKX1gO1xuXG4gIGNvbnN0IHRoZUlFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJpXCIpO1xuICB0aGVJRWwudGV4dENvbnRlbnQgPSB2YWx1ZTtcbiAgcmV0dXJuIFt0aGVJRWwsIHBsYWNlaG9sZGVyVmFsXTtcbn07XG5cbmNvbnN0IHN0cmlwcGVkVmFsdWUgPSAoaXNDaGFyc2V0UHJlc2VudCwgdmFsdWUpID0+XG4gIGlzQ2hhcnNldFByZXNlbnQgPyB2YWx1ZS5yZXBsYWNlKC9cXFcvZywgXCJcIikgOiB2YWx1ZS5yZXBsYWNlKC9cXEQvZywgXCJcIik7XG5cbmNvbnN0IGlzSW50ZWdlciA9ICh2YWx1ZSkgPT4gIU51bWJlci5pc05hTihwYXJzZUludCh2YWx1ZSwgMTApKTtcblxuY29uc3QgaXNMZXR0ZXIgPSAodmFsdWUpID0+ICh2YWx1ZSA/IHZhbHVlLm1hdGNoKC9bQS1aXS9pKSA6IGZhbHNlKTtcblxuY29uc3QgaGFuZGxlQ3VycmVudFZhbHVlID0gKGVsKSA9PiB7XG4gIGNvbnN0IGlzQ2hhcnNldFByZXNlbnQgPSBlbC5kYXRhc2V0LmNoYXJzZXQ7XG4gIGNvbnN0IHBsYWNlaG9sZGVyID0gaXNDaGFyc2V0UHJlc2VudCB8fCBlbC5kYXRhc2V0LnBsYWNlaG9sZGVyO1xuICBjb25zdCB7IHZhbHVlIH0gPSBlbDtcbiAgY29uc3QgbGVuID0gcGxhY2Vob2xkZXIubGVuZ3RoO1xuICBsZXQgbmV3VmFsdWUgPSBcIlwiO1xuICBsZXQgaTtcbiAgbGV0IGNoYXJJbmRleDtcblxuICBjb25zdCBzdHJpcHBlZFZhbCA9IHN0cmlwcGVkVmFsdWUoaXNDaGFyc2V0UHJlc2VudCwgdmFsdWUpO1xuXG4gIGZvciAoaSA9IDAsIGNoYXJJbmRleCA9IDA7IGkgPCBsZW47IGkgKz0gMSkge1xuICAgIGNvbnN0IGlzSW50ID0gaXNJbnRlZ2VyKHN0cmlwcGVkVmFsW2NoYXJJbmRleF0pO1xuICAgIGNvbnN0IGlzTGV0ID0gaXNMZXR0ZXIoc3RyaXBwZWRWYWxbY2hhckluZGV4XSk7XG4gICAgY29uc3QgbWF0Y2hlc051bWJlciA9IG1hc2tlZE51bWJlci5pbmRleE9mKHBsYWNlaG9sZGVyW2ldKSA+PSAwO1xuICAgIGNvbnN0IG1hdGNoZXNMZXR0ZXIgPSBtYXNrZWRMZXR0ZXIuaW5kZXhPZihwbGFjZWhvbGRlcltpXSkgPj0gMDtcblxuICAgIGlmIChcbiAgICAgIChtYXRjaGVzTnVtYmVyICYmIGlzSW50KSB8fFxuICAgICAgKGlzQ2hhcnNldFByZXNlbnQgJiYgbWF0Y2hlc0xldHRlciAmJiBpc0xldClcbiAgICApIHtcbiAgICAgIG5ld1ZhbHVlICs9IHN0cmlwcGVkVmFsW2NoYXJJbmRleF07XG4gICAgICBjaGFySW5kZXggKz0gMTtcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgKCFpc0NoYXJzZXRQcmVzZW50ICYmICFpc0ludCAmJiBtYXRjaGVzTnVtYmVyKSB8fFxuICAgICAgKGlzQ2hhcnNldFByZXNlbnQgJiZcbiAgICAgICAgKChtYXRjaGVzTGV0dGVyICYmICFpc0xldCkgfHwgKG1hdGNoZXNOdW1iZXIgJiYgIWlzSW50KSkpXG4gICAgKSB7XG4gICAgICByZXR1cm4gbmV3VmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5ld1ZhbHVlICs9IHBsYWNlaG9sZGVyW2ldO1xuICAgIH1cbiAgICAvLyBicmVhayBpZiBubyBjaGFyYWN0ZXJzIGxlZnQgYW5kIHRoZSBwYXR0ZXJuIGlzIG5vbi1zcGVjaWFsIGNoYXJhY3RlclxuICAgIGlmIChzdHJpcHBlZFZhbFtjaGFySW5kZXhdID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBuZXdWYWx1ZTtcbn07XG5cbmNvbnN0IGhhbmRsZVZhbHVlQ2hhbmdlID0gKGVsKSA9PiB7XG4gIGNvbnN0IGlucHV0RWwgPSBlbDtcbiAgY29uc3QgaWQgPSBpbnB1dEVsLmdldEF0dHJpYnV0ZShcImlkXCIpO1xuICBpbnB1dEVsLnZhbHVlID0gaGFuZGxlQ3VycmVudFZhbHVlKGlucHV0RWwpO1xuXG4gIGNvbnN0IG1hc2tWYWwgPSBzZXRWYWx1ZU9mTWFzayhlbCk7XG4gIGNvbnN0IG1hc2tFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGAke2lkfU1hc2tgKTtcbiAgbWFza0VsLnRleHRDb250ZW50ID0gXCJcIjtcbiAgbWFza0VsLnJlcGxhY2VDaGlsZHJlbihtYXNrVmFsWzBdLCBtYXNrVmFsWzFdKTtcbn07XG5cbmNvbnN0IGlucHV0TWFza0V2ZW50cyA9IHtcbiAga2V5dXA6IHtcbiAgICBbTUFTS0VEXSgpIHtcbiAgICAgIGhhbmRsZVZhbHVlQ2hhbmdlKHRoaXMpO1xuICAgIH0sXG4gIH0sXG59O1xuXG5jb25zdCBpbnB1dE1hc2sgPSBiZWhhdmlvcihpbnB1dE1hc2tFdmVudHMsIHtcbiAgaW5pdChyb290KSB7XG4gICAgc2VsZWN0T3JNYXRjaGVzKE1BU0tFRCwgcm9vdCkuZm9yRWFjaCgobWFza2VkSW5wdXQpID0+IHtcbiAgICAgIGNyZWF0ZU1hc2tlZElucHV0U2hlbGwobWFza2VkSW5wdXQpO1xuICAgIH0pO1xuICB9LFxufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gaW5wdXRNYXNrO1xuIiwiY29uc3Qga2V5bWFwID0gcmVxdWlyZShcInJlY2VwdG9yL2tleW1hcFwiKTtcbmNvbnN0IGJlaGF2aW9yID0gcmVxdWlyZShcIi4uLy4uL3Vzd2RzLWNvcmUvc3JjL2pzL3V0aWxzL2JlaGF2aW9yXCIpO1xuY29uc3QgdG9nZ2xlID0gcmVxdWlyZShcIi4uLy4uL3Vzd2RzLWNvcmUvc3JjL2pzL3V0aWxzL3RvZ2dsZVwiKTtcbmNvbnN0IEZvY3VzVHJhcCA9IHJlcXVpcmUoXCIuLi8uLi91c3dkcy1jb3JlL3NyYy9qcy91dGlscy9mb2N1cy10cmFwXCIpO1xuY29uc3QgYWNjb3JkaW9uID0gcmVxdWlyZShcIi4uLy4uL3VzYS1hY2NvcmRpb24vc3JjL2luZGV4XCIpO1xuXG5jb25zdCB7IENMSUNLIH0gPSByZXF1aXJlKFwiLi4vLi4vdXN3ZHMtY29yZS9zcmMvanMvZXZlbnRzXCIpO1xuY29uc3QgeyBwcmVmaXg6IFBSRUZJWCB9ID0gcmVxdWlyZShcIi4uLy4uL3Vzd2RzLWNvcmUvc3JjL2pzL2NvbmZpZ1wiKTtcblxuY29uc3QgQk9EWSA9IFwiYm9keVwiO1xuY29uc3QgTEFOR1VBR0UgPSBgLiR7UFJFRklYfS1sYW5ndWFnZWA7XG5jb25zdCBMQU5HVUFHRV9TVUIgPSBgLiR7UFJFRklYfS1sYW5ndWFnZV9fc3VibWVudWA7XG5jb25zdCBMQU5HVUFHRV9QUklNQVJZID0gYC4ke1BSRUZJWH0tbGFuZ3VhZ2VfX3ByaW1hcnlgO1xuY29uc3QgTEFOR1VBR0VfUFJJTUFSWV9JVEVNID0gYC4ke1BSRUZJWH0tbGFuZ3VhZ2VfX3ByaW1hcnktaXRlbWA7XG5jb25zdCBMQU5HVUFHRV9DT05UUk9MID0gYGJ1dHRvbi4ke1BSRUZJWH0tbGFuZ3VhZ2VfX2xpbmtgO1xuY29uc3QgTEFOR1VBR0VfTElOS1MgPSBgJHtMQU5HVUFHRX0gYWA7XG5cbmxldCBsYW5ndWFnZVNlbGVjdG9yO1xubGV0IGxhbmd1YWdlQWN0aXZlO1xuXG5jb25zdCBvbkxhbmd1YWdlQ2xvc2UgPSAoKSA9PlxuICBsYW5ndWFnZVNlbGVjdG9yLnRvZ2dsZUxhbmd1YWdlLmNhbGwobGFuZ3VhZ2VTZWxlY3RvciwgZmFsc2UpO1xuXG5jb25zdCBoaWRlQWN0aXZlTGFuZ3VhZ2VEcm9wZG93biA9ICgpID0+IHtcbiAgaWYgKCFsYW5ndWFnZUFjdGl2ZSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHRvZ2dsZShsYW5ndWFnZUFjdGl2ZSwgZmFsc2UpO1xuICBsYW5ndWFnZUFjdGl2ZSA9IG51bGw7XG59O1xuXG5jb25zdCBmb2N1c0xhbmd1YWdlQnV0dG9uID0gKGV2ZW50KSA9PiB7XG4gIGNvbnN0IHBhcmVudExhbmd1YWdlSXRlbSA9IGV2ZW50LnRhcmdldC5jbG9zZXN0KExBTkdVQUdFX1BSSU1BUllfSVRFTSk7XG5cbiAgaWYgKCFldmVudC50YXJnZXQubWF0Y2hlcyhMQU5HVUFHRV9DT05UUk9MKSkge1xuICAgIHBhcmVudExhbmd1YWdlSXRlbS5xdWVyeVNlbGVjdG9yKExBTkdVQUdFX0NPTlRST0wpLmZvY3VzKCk7XG4gIH1cbn07XG5cbmNvbnN0IGhhbmRsZUVzY2FwZSA9IChldmVudCkgPT4ge1xuICBoaWRlQWN0aXZlTGFuZ3VhZ2VEcm9wZG93bigpO1xuICBmb2N1c0xhbmd1YWdlQnV0dG9uKGV2ZW50KTtcbn07XG5cbmxhbmd1YWdlU2VsZWN0b3IgPSBiZWhhdmlvcihcbiAge1xuICAgIFtDTElDS106IHtcbiAgICAgIFtMQU5HVUFHRV9DT05UUk9MXSgpIHtcbiAgICAgICAgaWYgKGxhbmd1YWdlQWN0aXZlICE9PSB0aGlzKSB7XG4gICAgICAgICAgaGlkZUFjdGl2ZUxhbmd1YWdlRHJvcGRvd24oKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobGFuZ3VhZ2VBY3RpdmUgPT09IHRoaXMpIHtcbiAgICAgICAgICBoaWRlQWN0aXZlTGFuZ3VhZ2VEcm9wZG93bigpO1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWxhbmd1YWdlQWN0aXZlKSB7XG4gICAgICAgICAgbGFuZ3VhZ2VBY3RpdmUgPSB0aGlzO1xuICAgICAgICAgIHRvZ2dsZShsYW5ndWFnZUFjdGl2ZSwgdHJ1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9LFxuICAgICAgW0JPRFldOiBoaWRlQWN0aXZlTGFuZ3VhZ2VEcm9wZG93bixcbiAgICAgIFtMQU5HVUFHRV9MSU5LU10oKSB7XG4gICAgICAgIGNvbnN0IGFjYyA9IHRoaXMuY2xvc2VzdChhY2NvcmRpb24uQUNDT1JESU9OKTtcblxuICAgICAgICBpZiAoYWNjKSB7XG4gICAgICAgICAgYWNjb3JkaW9uLmdldEJ1dHRvbnMoYWNjKS5mb3JFYWNoKChidG4pID0+IGFjY29yZGlvbi5oaWRlKGJ0bikpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgIH0sXG4gICAga2V5ZG93bjoge1xuICAgICAgW0xBTkdVQUdFX1BSSU1BUlldOiBrZXltYXAoeyBFc2NhcGU6IGhhbmRsZUVzY2FwZSB9KSxcbiAgICB9LFxuICAgIGZvY3Vzb3V0OiB7XG4gICAgICBbTEFOR1VBR0VfUFJJTUFSWV0oZXZlbnQpIHtcbiAgICAgICAgY29uc3QgbGFuZ3VhZ2UgPSBldmVudC50YXJnZXQuY2xvc2VzdChMQU5HVUFHRV9QUklNQVJZKTtcblxuICAgICAgICBpZiAoIWxhbmd1YWdlLmNvbnRhaW5zKGV2ZW50LnJlbGF0ZWRUYXJnZXQpKSB7XG4gICAgICAgICAgaGlkZUFjdGl2ZUxhbmd1YWdlRHJvcGRvd24oKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9LFxuICB9LFxuICB7XG4gICAgaW5pdChyb290KSB7XG4gICAgICBjb25zdCB0cmFwQ29udGFpbmVyID0gcm9vdC5tYXRjaGVzKExBTkdVQUdFX1NVQilcbiAgICAgICAgPyByb290XG4gICAgICAgIDogcm9vdC5xdWVyeVNlbGVjdG9yKExBTkdVQUdFX1NVQik7XG5cbiAgICAgIGlmICh0cmFwQ29udGFpbmVyKSB7XG4gICAgICAgIGxhbmd1YWdlU2VsZWN0b3IuZm9jdXNUcmFwID0gRm9jdXNUcmFwKHRyYXBDb250YWluZXIsIHtcbiAgICAgICAgICBFc2NhcGU6IG9uTGFuZ3VhZ2VDbG9zZSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSxcbiAgICB0ZWFyZG93bigpIHtcbiAgICAgIGxhbmd1YWdlQWN0aXZlID0gZmFsc2U7XG4gICAgfSxcbiAgICBmb2N1c1RyYXA6IG51bGwsXG4gIH0sXG4pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGxhbmd1YWdlU2VsZWN0b3I7XG4iLCJjb25zdCBzZWxlY3RPck1hdGNoZXMgPSByZXF1aXJlKFwiLi4vLi4vdXN3ZHMtY29yZS9zcmMvanMvdXRpbHMvc2VsZWN0LW9yLW1hdGNoZXNcIik7XG5jb25zdCBGb2N1c1RyYXAgPSByZXF1aXJlKFwiLi4vLi4vdXN3ZHMtY29yZS9zcmMvanMvdXRpbHMvZm9jdXMtdHJhcFwiKTtcbmNvbnN0IFNjcm9sbEJhcldpZHRoID0gcmVxdWlyZShcIi4uLy4uL3Vzd2RzLWNvcmUvc3JjL2pzL3V0aWxzL3Njcm9sbGJhci13aWR0aFwiKTtcbmNvbnN0IGJlaGF2aW9yID0gcmVxdWlyZShcIi4uLy4uL3Vzd2RzLWNvcmUvc3JjL2pzL3V0aWxzL2JlaGF2aW9yXCIpO1xuXG5jb25zdCB7IHByZWZpeDogUFJFRklYIH0gPSByZXF1aXJlKFwiLi4vLi4vdXN3ZHMtY29yZS9zcmMvanMvY29uZmlnXCIpO1xuXG5jb25zdCBNT0RBTF9DTEFTU05BTUUgPSBgJHtQUkVGSVh9LW1vZGFsYDtcbmNvbnN0IE9WRVJMQVlfQ0xBU1NOQU1FID0gYCR7TU9EQUxfQ0xBU1NOQU1FfS1vdmVybGF5YDtcbmNvbnN0IFdSQVBQRVJfQ0xBU1NOQU1FID0gYCR7TU9EQUxfQ0xBU1NOQU1FfS13cmFwcGVyYDtcbmNvbnN0IE9QRU5FUl9BVFRSSUJVVEUgPSBcImRhdGEtb3Blbi1tb2RhbFwiO1xuY29uc3QgQ0xPU0VSX0FUVFJJQlVURSA9IFwiZGF0YS1jbG9zZS1tb2RhbFwiO1xuY29uc3QgRk9SQ0VfQUNUSU9OX0FUVFJJQlVURSA9IFwiZGF0YS1mb3JjZS1hY3Rpb25cIjtcbmNvbnN0IE5PTl9NT0RBTF9ISURERU5fQVRUUklCVVRFID0gYGRhdGEtbW9kYWwtaGlkZGVuYDtcbmNvbnN0IE1PREFMID0gYC4ke01PREFMX0NMQVNTTkFNRX1gO1xuY29uc3QgSU5JVElBTF9GT0NVUyA9IGAuJHtXUkFQUEVSX0NMQVNTTkFNRX0gKltkYXRhLWZvY3VzXWA7XG5jb25zdCBDTE9TRV9CVVRUT04gPSBgJHtXUkFQUEVSX0NMQVNTTkFNRX0gKlske0NMT1NFUl9BVFRSSUJVVEV9XWA7XG5jb25zdCBPUEVORVJTID0gYCpbJHtPUEVORVJfQVRUUklCVVRFfV1bYXJpYS1jb250cm9sc11gO1xuY29uc3QgQ0xPU0VSUyA9IGAke0NMT1NFX0JVVFRPTn0sIC4ke09WRVJMQVlfQ0xBU1NOQU1FfTpub3QoWyR7Rk9SQ0VfQUNUSU9OX0FUVFJJQlVURX1dKWA7XG5jb25zdCBOT05fTU9EQUxTID0gYGJvZHkgPiAqOm5vdCguJHtXUkFQUEVSX0NMQVNTTkFNRX0pOm5vdChbYXJpYS1oaWRkZW5dKWA7XG5jb25zdCBOT05fTU9EQUxTX0hJRERFTiA9IGBbJHtOT05fTU9EQUxfSElEREVOX0FUVFJJQlVURX1dYDtcblxuY29uc3QgQUNUSVZFX0NMQVNTID0gXCJ1c2EtanMtbW9kYWwtLWFjdGl2ZVwiO1xuY29uc3QgUFJFVkVOVF9DTElDS19DTEFTUyA9IFwidXNhLWpzLW5vLWNsaWNrXCI7XG5jb25zdCBWSVNJQkxFX0NMQVNTID0gXCJpcy12aXNpYmxlXCI7XG5jb25zdCBISURERU5fQ0xBU1MgPSBcImlzLWhpZGRlblwiO1xuXG5sZXQgbW9kYWw7XG5sZXQgSU5JVElBTF9CT0RZX1BBRERJTkc7XG5sZXQgVEVNUE9SQVJZX0JPRFlfUEFERElORztcblxuY29uc3QgaXNBY3RpdmUgPSAoKSA9PiBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5jb250YWlucyhBQ1RJVkVfQ0xBU1MpO1xuY29uc3QgU0NST0xMQkFSX1dJRFRIID0gU2Nyb2xsQmFyV2lkdGgoKTtcblxuLyoqXG4gKiAgQ2xvc2VzIG1vZGFsIHdoZW4gYm91bmQgdG8gYSBidXR0b24gYW5kIHByZXNzZWQuXG4gKi9cbmNvbnN0IG9uTWVudUNsb3NlID0gKCkgPT4ge1xuICBtb2RhbC50b2dnbGVNb2RhbC5jYWxsKG1vZGFsLCBmYWxzZSk7XG59O1xuXG4vKipcbiAqIFNldCB0aGUgdmFsdWUgZm9yIHRlbXBvcmFyeSBib2R5IHBhZGRpbmcgdGhhdCB3aWxsIGJlIGFwcGxpZWQgd2hlbiB0aGUgbW9kYWwgaXMgb3Blbi5cbiAqIFZhbHVlIGlzIGNyZWF0ZWQgYnkgY2hlY2tpbmcgZm9yIGluaXRpYWwgYm9keSBwYWRkaW5nIGFuZCBhZGRpbmcgdGhlIHdpZHRoIG9mIHRoZSBzY3JvbGxiYXIuXG4gKi9cbmNvbnN0IHNldFRlbXBvcmFyeUJvZHlQYWRkaW5nID0gKCkgPT4ge1xuICBJTklUSUFMX0JPRFlfUEFERElORyA9IHdpbmRvd1xuICAgIC5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmJvZHkpXG4gICAgLmdldFByb3BlcnR5VmFsdWUoXCJwYWRkaW5nLXJpZ2h0XCIpO1xuICBURU1QT1JBUllfQk9EWV9QQURESU5HID0gYCR7XG4gICAgcGFyc2VJbnQoSU5JVElBTF9CT0RZX1BBRERJTkcucmVwbGFjZSgvcHgvLCBcIlwiKSwgMTApICtcbiAgICBwYXJzZUludChTQ1JPTExCQVJfV0lEVEgucmVwbGFjZSgvcHgvLCBcIlwiKSwgMTApXG4gIH1weGA7XG59O1xuXG4vKipcbiAqICBUb2dnbGUgdGhlIHZpc2liaWxpdHkgb2YgYSBtb2RhbCB3aW5kb3dcbiAqXG4gKiBAcGFyYW0ge0tleWJvYXJkRXZlbnR9IGV2ZW50IHRoZSBrZXlkb3duIGV2ZW50LlxuICogQHJldHVybnMge2Jvb2xlYW59IHNhZmVBY3RpdmUgaWYgbW9iaWxlIGlzIG9wZW4uXG4gKi9cbmZ1bmN0aW9uIHRvZ2dsZU1vZGFsKGV2ZW50KSB7XG4gIGxldCBvcmlnaW5hbE9wZW5lcjtcbiAgbGV0IGNsaWNrZWRFbGVtZW50ID0gZXZlbnQudGFyZ2V0O1xuICBjb25zdCB7IGJvZHkgfSA9IGRvY3VtZW50O1xuICBjb25zdCBzYWZlQWN0aXZlID0gIWlzQWN0aXZlKCk7XG4gIGNvbnN0IG1vZGFsSWQgPSBjbGlja2VkRWxlbWVudFxuICAgID8gY2xpY2tlZEVsZW1lbnQuZ2V0QXR0cmlidXRlKFwiYXJpYS1jb250cm9sc1wiKVxuICAgIDogZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgLiR7V1JBUFBFUl9DTEFTU05BTUV9LiR7VklTSUJMRV9DTEFTU31gKTtcbiAgY29uc3QgdGFyZ2V0TW9kYWwgPSBzYWZlQWN0aXZlXG4gICAgPyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChtb2RhbElkKVxuICAgIDogZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgLiR7V1JBUFBFUl9DTEFTU05BTUV9LiR7VklTSUJMRV9DTEFTU31gKTtcblxuICAvLyBpZiB0aGVyZSBpcyBubyBtb2RhbCB3ZSByZXR1cm4gZWFybHlcbiAgaWYgKCF0YXJnZXRNb2RhbCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IG9wZW5Gb2N1c0VsID0gdGFyZ2V0TW9kYWwucXVlcnlTZWxlY3RvcihJTklUSUFMX0ZPQ1VTKVxuICAgID8gdGFyZ2V0TW9kYWwucXVlcnlTZWxlY3RvcihJTklUSUFMX0ZPQ1VTKVxuICAgIDogdGFyZ2V0TW9kYWwucXVlcnlTZWxlY3RvcihgLiR7TU9EQUxfQ0xBU1NOQU1FfWApO1xuICBjb25zdCByZXR1cm5Gb2N1cyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFxuICAgIHRhcmdldE1vZGFsLmdldEF0dHJpYnV0ZShcImRhdGEtb3BlbmVyXCIpLFxuICApO1xuICBjb25zdCBtZW51QnV0dG9uID0gYm9keS5xdWVyeVNlbGVjdG9yKE9QRU5FUlMpO1xuICBjb25zdCBmb3JjZVVzZXJBY3Rpb24gPSB0YXJnZXRNb2RhbC5nZXRBdHRyaWJ1dGUoRk9SQ0VfQUNUSU9OX0FUVFJJQlVURSk7XG5cbiAgLy8gU2V0cyB0aGUgY2xpY2tlZCBlbGVtZW50IHRvIHRoZSBjbG9zZSBidXR0b25cbiAgLy8gc28gZXNjIGtleSBhbHdheXMgY2xvc2VzIG1vZGFsXG4gIGlmIChldmVudC50eXBlID09PSBcImtleWRvd25cIiAmJiB0YXJnZXRNb2RhbCAhPT0gbnVsbCkge1xuICAgIGNsaWNrZWRFbGVtZW50ID0gdGFyZ2V0TW9kYWwucXVlcnlTZWxlY3RvcihDTE9TRV9CVVRUT04pO1xuICB9XG5cbiAgLy8gV2hlbiB3ZSdyZSBub3QgaGl0dGluZyB0aGUgZXNjYXBlIGtleeKAplxuICBpZiAoY2xpY2tlZEVsZW1lbnQpIHtcbiAgICAvLyBNYWtlIHN1cmUgd2UgY2xpY2sgdGhlIG9wZW5lclxuICAgIC8vIElmIGl0IGRvZXNuJ3QgaGF2ZSBhbiBJRCwgbWFrZSBvbmVcbiAgICAvLyBTdG9yZSBpZCBhcyBkYXRhIGF0dHJpYnV0ZSBvbiBtb2RhbFxuICAgIGlmIChjbGlja2VkRWxlbWVudC5oYXNBdHRyaWJ1dGUoT1BFTkVSX0FUVFJJQlVURSkpIHtcbiAgICAgIGlmICh0aGlzLmdldEF0dHJpYnV0ZShcImlkXCIpID09PSBudWxsKSB7XG4gICAgICAgIG9yaWdpbmFsT3BlbmVyID0gYG1vZGFsLSR7TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogOTAwMDAwKSArIDEwMDAwMH1gO1xuICAgICAgICB0aGlzLnNldEF0dHJpYnV0ZShcImlkXCIsIG9yaWdpbmFsT3BlbmVyKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG9yaWdpbmFsT3BlbmVyID0gdGhpcy5nZXRBdHRyaWJ1dGUoXCJpZFwiKTtcbiAgICAgIH1cbiAgICAgIHRhcmdldE1vZGFsLnNldEF0dHJpYnV0ZShcImRhdGEtb3BlbmVyXCIsIG9yaWdpbmFsT3BlbmVyKTtcbiAgICB9XG5cbiAgICAvLyBUaGlzIGJhc2ljYWxseSBzdG9wcyB0aGUgcHJvcGFnYXRpb24gaWYgdGhlIGVsZW1lbnRcbiAgICAvLyBpcyBpbnNpZGUgdGhlIG1vZGFsIGFuZCBub3QgYSBjbG9zZSBidXR0b24gb3JcbiAgICAvLyBlbGVtZW50IGluc2lkZSBhIGNsb3NlIGJ1dHRvblxuICAgIGlmIChjbGlja2VkRWxlbWVudC5jbG9zZXN0KGAuJHtNT0RBTF9DTEFTU05BTUV9YCkpIHtcbiAgICAgIGlmIChcbiAgICAgICAgY2xpY2tlZEVsZW1lbnQuaGFzQXR0cmlidXRlKENMT1NFUl9BVFRSSUJVVEUpIHx8XG4gICAgICAgIGNsaWNrZWRFbGVtZW50LmNsb3Nlc3QoYFske0NMT1NFUl9BVFRSSUJVVEV9XWApXG4gICAgICApIHtcbiAgICAgICAgLy8gZG8gbm90aGluZy4gbW92ZSBvbi5cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBib2R5LmNsYXNzTGlzdC50b2dnbGUoQUNUSVZFX0NMQVNTLCBzYWZlQWN0aXZlKTtcbiAgdGFyZ2V0TW9kYWwuY2xhc3NMaXN0LnRvZ2dsZShWSVNJQkxFX0NMQVNTLCBzYWZlQWN0aXZlKTtcbiAgdGFyZ2V0TW9kYWwuY2xhc3NMaXN0LnRvZ2dsZShISURERU5fQ0xBU1MsICFzYWZlQWN0aXZlKTtcblxuICAvLyBJZiB1c2VyIGlzIGZvcmNlZCB0byB0YWtlIGFuIGFjdGlvbiwgYWRkaW5nXG4gIC8vIGEgY2xhc3MgdG8gdGhlIGJvZHkgdGhhdCBwcmV2ZW50cyBjbGlja2luZyB1bmRlcm5lYXRoXG4gIC8vIG92ZXJsYXlcbiAgaWYgKGZvcmNlVXNlckFjdGlvbikge1xuICAgIGJvZHkuY2xhc3NMaXN0LnRvZ2dsZShQUkVWRU5UX0NMSUNLX0NMQVNTLCBzYWZlQWN0aXZlKTtcbiAgfVxuXG4gIC8vIFRlbXBvcmFyaWx5IGluY3JlYXNlIGJvZHkgcGFkZGluZyB0byBpbmNsdWRlIHRoZSB3aWR0aCBvZiB0aGUgc2Nyb2xsYmFyLlxuICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgY29udGVudCBzaGlmdCB3aGVuIHRoZSBzY3JvbGxiYXIgaXMgcmVtb3ZlZCBvbiBtb2RhbCBvcGVuLlxuICBpZiAoYm9keS5zdHlsZS5wYWRkaW5nUmlnaHQgPT09IFRFTVBPUkFSWV9CT0RZX1BBRERJTkcpIHtcbiAgICBib2R5LnN0eWxlLnJlbW92ZVByb3BlcnR5KFwicGFkZGluZy1yaWdodFwiKTtcbiAgfSBlbHNlIHtcbiAgICBib2R5LnN0eWxlLnBhZGRpbmdSaWdodCA9IFRFTVBPUkFSWV9CT0RZX1BBRERJTkc7XG4gIH1cblxuICAvLyBIYW5kbGUgdGhlIGZvY3VzIGFjdGlvbnNcbiAgaWYgKHNhZmVBY3RpdmUgJiYgb3BlbkZvY3VzRWwpIHtcbiAgICAvLyBUaGUgbW9kYWwgd2luZG93IGlzIG9wZW5lZC4gRm9jdXMgaXMgc2V0IHRvIGNsb3NlIGJ1dHRvbi5cblxuICAgIC8vIEJpbmRzIGVzY2FwZSBrZXkgaWYgd2UncmUgbm90IGZvcmNpbmdcbiAgICAvLyB0aGUgdXNlciB0byB0YWtlIGFuIGFjdGlvblxuICAgIGlmIChmb3JjZVVzZXJBY3Rpb24pIHtcbiAgICAgIG1vZGFsLmZvY3VzVHJhcCA9IEZvY3VzVHJhcCh0YXJnZXRNb2RhbCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG1vZGFsLmZvY3VzVHJhcCA9IEZvY3VzVHJhcCh0YXJnZXRNb2RhbCwge1xuICAgICAgICBFc2NhcGU6IG9uTWVudUNsb3NlLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gSGFuZGxlcyBmb2N1cyBzZXR0aW5nIGFuZCBpbnRlcmFjdGlvbnNcbiAgICBtb2RhbC5mb2N1c1RyYXAudXBkYXRlKHNhZmVBY3RpdmUpO1xuICAgIG9wZW5Gb2N1c0VsLmZvY3VzKCk7XG5cbiAgICAvLyBIaWRlcyBldmVyeXRoaW5nIHRoYXQgaXMgbm90IHRoZSBtb2RhbCBmcm9tIHNjcmVlbiByZWFkZXJzXG4gICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChOT05fTU9EQUxTKS5mb3JFYWNoKChub25Nb2RhbCkgPT4ge1xuICAgICAgbm9uTW9kYWwuc2V0QXR0cmlidXRlKFwiYXJpYS1oaWRkZW5cIiwgXCJ0cnVlXCIpO1xuICAgICAgbm9uTW9kYWwuc2V0QXR0cmlidXRlKE5PTl9NT0RBTF9ISURERU5fQVRUUklCVVRFLCBcIlwiKTtcbiAgICB9KTtcbiAgfSBlbHNlIGlmICghc2FmZUFjdGl2ZSAmJiBtZW51QnV0dG9uICYmIHJldHVybkZvY3VzKSB7XG4gICAgLy8gVGhlIG1vZGFsIHdpbmRvdyBpcyBjbG9zZWQuXG4gICAgLy8gTm9uLW1vZGFscyBub3cgYWNjZXNpYmxlIHRvIHNjcmVlbiByZWFkZXJcbiAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKE5PTl9NT0RBTFNfSElEREVOKS5mb3JFYWNoKChub25Nb2RhbCkgPT4ge1xuICAgICAgbm9uTW9kYWwucmVtb3ZlQXR0cmlidXRlKFwiYXJpYS1oaWRkZW5cIik7XG4gICAgICBub25Nb2RhbC5yZW1vdmVBdHRyaWJ1dGUoTk9OX01PREFMX0hJRERFTl9BVFRSSUJVVEUpO1xuICAgIH0pO1xuXG4gICAgLy8gRm9jdXMgaXMgcmV0dXJuZWQgdG8gdGhlIG9wZW5lclxuICAgIHJldHVybkZvY3VzLmZvY3VzKCk7XG4gICAgbW9kYWwuZm9jdXNUcmFwLnVwZGF0ZShzYWZlQWN0aXZlKTtcbiAgfVxuXG4gIHJldHVybiBzYWZlQWN0aXZlO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBwbGFjZWhvbGRlciB3aXRoIGRhdGEgYXR0cmlidXRlcyBmb3IgY2xlYW51cCBmdW5jdGlvbi5cbiAqIFRoZSBjbGVhbnVwIGZ1bmN0aW9uIHVzZXMgdGhpcyBwbGFjZWhvbGRlciB0byBlYXNpbHkgcmVzdG9yZSB0aGUgb3JpZ2luYWwgTW9kYWwgSFRNTCBvbiB0ZWFyZG93bi5cbiAqXG4gKiBAcGFyYW0ge0hUTUxEaXZFbGVtZW50fSBiYXNlQ29tcG9uZW50IC0gTW9kYWwgSFRNTCBmcm9tIHRoZSBET00uXG4gKiBAcmV0dXJucyB7SFRNTERpdkVsZW1lbnR9IFBsYWNlaG9sZGVyIHVzZWQgZm9yIGNsZWFudXAgZnVuY3Rpb24uXG4gKi9cbmNvbnN0IGNyZWF0ZVBsYWNlSG9sZGVyID0gKGJhc2VDb21wb25lbnQpID0+IHtcbiAgY29uc3QgbW9kYWxJRCA9IGJhc2VDb21wb25lbnQuZ2V0QXR0cmlidXRlKFwiaWRcIik7XG4gIGNvbnN0IG9yaWdpbmFsTG9jYXRpb25QbGFjZUhvbGRlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7XG4gIGNvbnN0IG1vZGFsQXR0cmlidXRlcyA9IEFycmF5LmZyb20oYmFzZUNvbXBvbmVudC5hdHRyaWJ1dGVzKTtcblxuICBzZXRUZW1wb3JhcnlCb2R5UGFkZGluZygpO1xuXG4gIG9yaWdpbmFsTG9jYXRpb25QbGFjZUhvbGRlci5zZXRBdHRyaWJ1dGUoYGRhdGEtcGxhY2Vob2xkZXItZm9yYCwgbW9kYWxJRCk7XG4gIG9yaWdpbmFsTG9jYXRpb25QbGFjZUhvbGRlci5zdHlsZS5kaXNwbGF5ID0gXCJub25lXCI7XG4gIG9yaWdpbmFsTG9jYXRpb25QbGFjZUhvbGRlci5zZXRBdHRyaWJ1dGUoXCJhcmlhLWhpZGRlblwiLCBcInRydWVcIik7XG5cbiAgbW9kYWxBdHRyaWJ1dGVzLmZvckVhY2goKGF0dHJpYnV0ZSkgPT4ge1xuICAgIG9yaWdpbmFsTG9jYXRpb25QbGFjZUhvbGRlci5zZXRBdHRyaWJ1dGUoXG4gICAgICBgZGF0YS1vcmlnaW5hbC0ke2F0dHJpYnV0ZS5uYW1lfWAsXG4gICAgICBhdHRyaWJ1dGUudmFsdWUsXG4gICAgKTtcbiAgfSk7XG5cbiAgcmV0dXJuIG9yaWdpbmFsTG9jYXRpb25QbGFjZUhvbGRlcjtcbn07XG5cbi8qKlxuICogTW92ZXMgbmVjZXNzYXJ5IGF0dHJpYnV0ZXMgZnJvbSBNb2RhbCBIVE1MIHRvIHdyYXBwZXIgZWxlbWVudC5cbiAqXG4gKiBAcGFyYW0ge0hUTUxEaXZFbGVtZW50fSBiYXNlQ29tcG9uZW50IC0gTW9kYWwgSFRNTCBpbiB0aGUgRE9NLlxuICogQHBhcmFtIHtIVE1MRGl2RWxlbWVudH0gbW9kYWxDb250ZW50V3JhcHBlciAtIE1vZGFsIGNvbXBvbmVudCB3cmFwcGVyIGVsZW1lbnQuXG4gKiBAcmV0dXJucyBNb2RhbCB3cmFwcGVyIHdpdGggY29ycmVjdCBhdHRyaWJ1dGVzLlxuICovXG5jb25zdCBzZXRNb2RhbEF0dHJpYnV0ZXMgPSAoYmFzZUNvbXBvbmVudCwgbW9kYWxDb250ZW50V3JhcHBlcikgPT4ge1xuICBjb25zdCBtb2RhbElEID0gYmFzZUNvbXBvbmVudC5nZXRBdHRyaWJ1dGUoXCJpZFwiKTtcbiAgY29uc3QgYXJpYUxhYmVsbGVkQnkgPSBiYXNlQ29tcG9uZW50LmdldEF0dHJpYnV0ZShcImFyaWEtbGFiZWxsZWRieVwiKTtcbiAgY29uc3QgYXJpYURlc2NyaWJlZEJ5ID0gYmFzZUNvbXBvbmVudC5nZXRBdHRyaWJ1dGUoXCJhcmlhLWRlc2NyaWJlZGJ5XCIpO1xuICBjb25zdCBmb3JjZVVzZXJBY3Rpb24gPSBiYXNlQ29tcG9uZW50Lmhhc0F0dHJpYnV0ZShGT1JDRV9BQ1RJT05fQVRUUklCVVRFKTtcblxuICBpZiAoIWFyaWFMYWJlbGxlZEJ5KVxuICAgIHRocm93IG5ldyBFcnJvcihgJHttb2RhbElEfSBpcyBtaXNzaW5nIGFyaWEtbGFiZWxsZWRieSBhdHRyaWJ1dGVgKTtcblxuICBpZiAoIWFyaWFEZXNjcmliZWRCeSlcbiAgICB0aHJvdyBuZXcgRXJyb3IoYCR7bW9kYWxJRH0gaXMgbWlzc2luZyBhcmlhLWRlc3JpYmVkYnkgYXR0cmlidXRlYCk7XG5cbiAgLy8gU2V0IGF0dHJpYnV0ZXNcbiAgbW9kYWxDb250ZW50V3JhcHBlci5zZXRBdHRyaWJ1dGUoXCJyb2xlXCIsIFwiZGlhbG9nXCIpO1xuICBtb2RhbENvbnRlbnRXcmFwcGVyLnNldEF0dHJpYnV0ZShcImlkXCIsIG1vZGFsSUQpO1xuICBtb2RhbENvbnRlbnRXcmFwcGVyLnNldEF0dHJpYnV0ZShcImFyaWEtbGFiZWxsZWRieVwiLCBhcmlhTGFiZWxsZWRCeSk7XG4gIG1vZGFsQ29udGVudFdyYXBwZXIuc2V0QXR0cmlidXRlKFwiYXJpYS1kZXNjcmliZWRieVwiLCBhcmlhRGVzY3JpYmVkQnkpO1xuXG4gIGlmIChmb3JjZVVzZXJBY3Rpb24pIHtcbiAgICBtb2RhbENvbnRlbnRXcmFwcGVyLnNldEF0dHJpYnV0ZShGT1JDRV9BQ1RJT05fQVRUUklCVVRFLCBmb3JjZVVzZXJBY3Rpb24pO1xuICB9XG5cbiAgLy8gQWRkIGFyaWEtY29udHJvbHNcbiAgY29uc3QgbW9kYWxDbG9zZXJzID0gbW9kYWxDb250ZW50V3JhcHBlci5xdWVyeVNlbGVjdG9yQWxsKENMT1NFUlMpO1xuICBtb2RhbENsb3NlcnMuZm9yRWFjaCgoZWwpID0+IHtcbiAgICBlbC5zZXRBdHRyaWJ1dGUoXCJhcmlhLWNvbnRyb2xzXCIsIG1vZGFsSUQpO1xuICB9KTtcblxuICAvLyBVcGRhdGUgdGhlIGJhc2UgZWxlbWVudCBIVE1MXG4gIGJhc2VDb21wb25lbnQucmVtb3ZlQXR0cmlidXRlKFwiaWRcIik7XG4gIGJhc2VDb21wb25lbnQucmVtb3ZlQXR0cmlidXRlKFwiYXJpYS1sYWJlbGxlZGJ5XCIpO1xuICBiYXNlQ29tcG9uZW50LnJlbW92ZUF0dHJpYnV0ZShcImFyaWEtZGVzY3JpYmVkYnlcIik7XG4gIGJhc2VDb21wb25lbnQuc2V0QXR0cmlidXRlKFwidGFiaW5kZXhcIiwgXCItMVwiKTtcblxuICByZXR1cm4gbW9kYWxDb250ZW50V3JhcHBlcjtcbn07XG5cbi8qKlxuICogQ3JlYXRlcyBhIGhpZGRlbiBtb2RhbCBjb250ZW50IHdyYXBwZXIuXG4gKiBSZWJ1aWxkcyB0aGUgb3JpZ2luYWwgTW9kYWwgSFRNTCBpbiB0aGUgbmV3IHdyYXBwZXIgYW5kIGFkZHMgYSBwYWdlIG92ZXJsYXkuXG4gKiBUaGVuIG1vdmVzIG9yaWdpbmFsIE1vZGFsIEhUTUwgYXR0cmlidXRlcyB0byB0aGUgbmV3IHdyYXBwZXIuXG4gKlxuICogQHBhcmFtIHtIVE1MRGl2RWxlbWVudH0gYmFzZUNvbXBvbmVudCAtIE9yaWdpbmFsIE1vZGFsIEhUTUwgaW4gdGhlIERPTS5cbiAqIEByZXR1cm5zIE1vZGFsIGNvbXBvbmVudCAtIE1vZGFsIHdyYXBwZXIgdy8gbmVzdGVkIE92ZXJsYXkgYW5kIE1vZGFsIENvbnRlbnQuXG4gKi9cbmNvbnN0IHJlYnVpbGRNb2RhbCA9IChiYXNlQ29tcG9uZW50KSA9PiB7XG4gIGNvbnN0IG1vZGFsQ29udGVudCA9IGJhc2VDb21wb25lbnQ7XG4gIGNvbnN0IG1vZGFsQ29udGVudFdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xuICBjb25zdCBvdmVybGF5RGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcblxuICAvLyBBZGQgY2xhc3Nlc1xuICBtb2RhbENvbnRlbnRXcmFwcGVyLmNsYXNzTGlzdC5hZGQoSElEREVOX0NMQVNTLCBXUkFQUEVSX0NMQVNTTkFNRSk7XG4gIG92ZXJsYXlEaXYuY2xhc3NMaXN0LmFkZChPVkVSTEFZX0NMQVNTTkFNRSk7XG5cbiAgLy8gUmVidWlsZCB0aGUgbW9kYWwgZWxlbWVudFxuICBtb2RhbENvbnRlbnRXcmFwcGVyLmFwcGVuZChvdmVybGF5RGl2KTtcbiAgb3ZlcmxheURpdi5hcHBlbmQobW9kYWxDb250ZW50KTtcblxuICAvLyBBZGQgYXR0cmlidXRlc1xuICBzZXRNb2RhbEF0dHJpYnV0ZXMobW9kYWxDb250ZW50LCBtb2RhbENvbnRlbnRXcmFwcGVyKTtcblxuICByZXR1cm4gbW9kYWxDb250ZW50V3JhcHBlcjtcbn07XG5cbi8qKlxuICogIEJ1aWxkcyBtb2RhbCB3aW5kb3cgZnJvbSBiYXNlIEhUTUwgYW5kIGFwcGVuZHMgdG8gdGhlIGVuZCBvZiB0aGUgRE9NLlxuICpcbiAqIEBwYXJhbSB7SFRNTERpdkVsZW1lbnR9IGJhc2VDb21wb25lbnQgLSBUaGUgbW9kYWwgZGl2IGVsZW1lbnQgaW4gdGhlIERPTS5cbiAqL1xuY29uc3Qgc2V0VXBNb2RhbCA9IChiYXNlQ29tcG9uZW50KSA9PiB7XG4gIGNvbnN0IG1vZGFsSUQgPSBiYXNlQ29tcG9uZW50LmdldEF0dHJpYnV0ZShcImlkXCIpO1xuXG4gIGlmICghbW9kYWxJRCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgTW9kYWwgbWFya3VwIGlzIG1pc3NpbmcgSURgKTtcbiAgfVxuXG4gIC8vIENyZWF0ZSBwbGFjZWhvbGRlciB3aGVyZSBtb2RhbCBpcyBmb3IgY2xlYW51cFxuICBjb25zdCBvcmlnaW5hbExvY2F0aW9uUGxhY2VIb2xkZXIgPSBjcmVhdGVQbGFjZUhvbGRlcihiYXNlQ29tcG9uZW50KTtcbiAgYmFzZUNvbXBvbmVudC5hZnRlcihvcmlnaW5hbExvY2F0aW9uUGxhY2VIb2xkZXIpO1xuXG4gIC8vIEJ1aWxkIG1vZGFsIGNvbXBvbmVudFxuICBjb25zdCBtb2RhbENvbXBvbmVudCA9IHJlYnVpbGRNb2RhbChiYXNlQ29tcG9uZW50KTtcblxuICAvLyBNb3ZlIGFsbCBtb2RhbHMgdG8gdGhlIGVuZCBvZiB0aGUgRE9NLiBEb2luZyB0aGlzIGFsbG93cyB1cyB0b1xuICAvLyBtb3JlIGVhc2lseSBmaW5kIHRoZSBlbGVtZW50cyB0byBoaWRlIGZyb20gc2NyZWVuIHJlYWRlcnNcbiAgLy8gd2hlbiB0aGUgbW9kYWwgaXMgb3Blbi5cbiAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChtb2RhbENvbXBvbmVudCk7XG59O1xuXG4vKipcbiAqIFJlbW92ZXMgZHluYW1pY2FsbHkgY3JlYXRlZCBNb2RhbCBhbmQgV3JhcHBlciBlbGVtZW50cyBhbmQgcmVzdG9yZXMgb3JpZ2luYWwgTW9kYWwgSFRNTC5cbiAqXG4gKiBAcGFyYW0ge0hUTUxEaXZFbGVtZW50fSBiYXNlQ29tcG9uZW50IC0gVGhlIG1vZGFsIGRpdiBlbGVtZW50IGluIHRoZSBET00uXG4gKi9cbmNvbnN0IGNsZWFuVXBNb2RhbCA9IChiYXNlQ29tcG9uZW50KSA9PiB7XG4gIGNvbnN0IG1vZGFsQ29udGVudCA9IGJhc2VDb21wb25lbnQ7XG4gIGNvbnN0IG1vZGFsQ29udGVudFdyYXBwZXIgPSBtb2RhbENvbnRlbnQucGFyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50O1xuICBjb25zdCBtb2RhbElEID0gbW9kYWxDb250ZW50V3JhcHBlci5nZXRBdHRyaWJ1dGUoXCJpZFwiKTtcblxuICAvLyBpZiB0aGVyZSBpcyBubyBtb2RhbElELCByZXR1cm4gZWFybHlcbiAgaWYgKCFtb2RhbElEKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3Qgb3JpZ2luYWxMb2NhdGlvblBsYWNlSG9sZGVyID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcbiAgICBgW2RhdGEtcGxhY2Vob2xkZXItZm9yPVwiJHttb2RhbElEfVwiXWAsXG4gICk7XG5cbiAgaWYgKG9yaWdpbmFsTG9jYXRpb25QbGFjZUhvbGRlcikge1xuICAgIGNvbnN0IG1vZGFsQXR0cmlidXRlcyA9IEFycmF5LmZyb20ob3JpZ2luYWxMb2NhdGlvblBsYWNlSG9sZGVyLmF0dHJpYnV0ZXMpO1xuICAgIG1vZGFsQXR0cmlidXRlcy5mb3JFYWNoKChhdHRyaWJ1dGUpID0+IHtcbiAgICAgIGlmIChhdHRyaWJ1dGUubmFtZS5zdGFydHNXaXRoKFwiZGF0YS1vcmlnaW5hbC1cIikpIHtcbiAgICAgICAgLy8gZGF0YS1vcmlnaW5hbC0gaXMgMTQgbG9uZ1xuICAgICAgICBtb2RhbENvbnRlbnQuc2V0QXR0cmlidXRlKGF0dHJpYnV0ZS5uYW1lLnN1YnN0cigxNCksIGF0dHJpYnV0ZS52YWx1ZSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBvcmlnaW5hbExvY2F0aW9uUGxhY2VIb2xkZXIuYWZ0ZXIobW9kYWxDb250ZW50KTtcbiAgICBvcmlnaW5hbExvY2F0aW9uUGxhY2VIb2xkZXIucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZChcbiAgICAgIG9yaWdpbmFsTG9jYXRpb25QbGFjZUhvbGRlcixcbiAgICApO1xuICB9XG5cbiAgbW9kYWxDb250ZW50V3JhcHBlci5wYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxkKG1vZGFsQ29udGVudFdyYXBwZXIpO1xufTtcblxubW9kYWwgPSBiZWhhdmlvcihcbiAge30sXG4gIHtcbiAgICBpbml0KHJvb3QpIHtcbiAgICAgIHNlbGVjdE9yTWF0Y2hlcyhNT0RBTCwgcm9vdCkuZm9yRWFjaCgobW9kYWxXaW5kb3cpID0+IHtcbiAgICAgICAgY29uc3QgbW9kYWxJZCA9IG1vZGFsV2luZG93LmlkO1xuXG4gICAgICAgIHNldFVwTW9kYWwobW9kYWxXaW5kb3cpO1xuXG4gICAgICAgIC8vIFF1ZXJ5IGFsbCBvcGVuZXJzIGFuZCBjbG9zZXJzIGluY2x1ZGluZyB0aGUgb3ZlcmxheVxuICAgICAgICBzZWxlY3RPck1hdGNoZXMoYFthcmlhLWNvbnRyb2xzPVwiJHttb2RhbElkfVwiXWAsIGRvY3VtZW50KS5mb3JFYWNoKFxuICAgICAgICAgIChtb2RhbFRyaWdnZXIpID0+IHtcbiAgICAgICAgICAgIC8vIElmIG1vZGFsVHJpZ2dlciBpcyBhbiBhbmNob3IuLi5cbiAgICAgICAgICAgIGlmIChtb2RhbFRyaWdnZXIubm9kZU5hbWUgPT09IFwiQVwiKSB7XG4gICAgICAgICAgICAgIC8vIFR1cm4gYW5jaG9yIGxpbmtzIGludG8gYnV0dG9ucyBmb3Igc2NyZWVuIHJlYWRlcnNcbiAgICAgICAgICAgICAgbW9kYWxUcmlnZ2VyLnNldEF0dHJpYnV0ZShcInJvbGVcIiwgXCJidXR0b25cIik7XG5cbiAgICAgICAgICAgICAgLy8gUHJldmVudCBtb2RhbCB0cmlnZ2VycyBmcm9tIGFjdGluZyBsaWtlIGxpbmtzXG4gICAgICAgICAgICAgIG1vZGFsVHJpZ2dlci5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgKGUpID0+IGUucHJldmVudERlZmF1bHQoKSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIENhbiB1bmNvbW1lbnQgd2hlbiBhcmlhLWhhc3BvcHVwPVwiZGlhbG9nXCIgaXMgc3VwcG9ydGVkXG4gICAgICAgICAgICAvLyBodHRwczovL2ExMXlzdXBwb3J0LmlvL3RlY2gvYXJpYS9hcmlhLWhhc3BvcHVwX2F0dHJpYnV0ZVxuICAgICAgICAgICAgLy8gTW9zdCBzY3JlZW4gcmVhZGVycyBzdXBwb3J0IGFyaWEtaGFzcG9wdXAsIGJ1dCBtaWdodCBhbm5vdW5jZVxuICAgICAgICAgICAgLy8gYXMgb3BlbmluZyBhIG1lbnUgaWYgXCJkaWFsb2dcIiBpcyBub3Qgc3VwcG9ydGVkLlxuICAgICAgICAgICAgLy8gbW9kYWxUcmlnZ2VyLnNldEF0dHJpYnV0ZShcImFyaWEtaGFzcG9wdXBcIiwgXCJkaWFsb2dcIik7XG5cbiAgICAgICAgICAgIG1vZGFsVHJpZ2dlci5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgdG9nZ2xlTW9kYWwpO1xuICAgICAgICAgIH0sXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICB9LFxuICAgIHRlYXJkb3duKHJvb3QpIHtcbiAgICAgIHNlbGVjdE9yTWF0Y2hlcyhNT0RBTCwgcm9vdCkuZm9yRWFjaCgobW9kYWxXaW5kb3cpID0+IHtcbiAgICAgICAgY29uc3QgbW9kYWxJZCA9IG1vZGFsV2luZG93LmlkO1xuICAgICAgICBjbGVhblVwTW9kYWwobW9kYWxXaW5kb3cpO1xuXG4gICAgICAgIHNlbGVjdE9yTWF0Y2hlcyhgW2FyaWEtY29udHJvbHM9XCIke21vZGFsSWR9XCJdYCwgZG9jdW1lbnQpLmZvckVhY2goXG4gICAgICAgICAgKG1vZGFsVHJpZ2dlcikgPT5cbiAgICAgICAgICAgIG1vZGFsVHJpZ2dlci5yZW1vdmVFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgdG9nZ2xlTW9kYWwpLFxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgfSxcbiAgICBmb2N1c1RyYXA6IG51bGwsXG4gICAgdG9nZ2xlTW9kYWwsXG4gIH0sXG4pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IG1vZGFsO1xuIiwiY29uc3Qgc2VsZWN0T3JNYXRjaGVzID0gcmVxdWlyZShcIi4uLy4uL3Vzd2RzLWNvcmUvc3JjL2pzL3V0aWxzL3NlbGVjdC1vci1tYXRjaGVzXCIpO1xuY29uc3QgYmVoYXZpb3IgPSByZXF1aXJlKFwiLi4vLi4vdXN3ZHMtY29yZS9zcmMvanMvdXRpbHMvYmVoYXZpb3JcIik7XG5cbmNvbnN0IHsgcHJlZml4OiBQUkVGSVggfSA9IHJlcXVpcmUoXCIuLi8uLi91c3dkcy1jb3JlL3NyYy9qcy9jb25maWdcIik7XG5cbmNvbnN0IFJBTkdFX0NMQVNTTkFNRSA9IGAke1BSRUZJWH0tcmFuZ2VgO1xuY29uc3QgUkFOR0UgPSBgLiR7UkFOR0VfQ0xBU1NOQU1FfWA7XG5cbi8qKlxuICogVXBkYXRlIHJhbmdlIGNhbGxvdXQgZm9yIHNjcmVlbiByZWFkZXJzIHVzaW5nIHRoZSBvcHRpb25hbCBkYXRhIGF0dHJpYnV0ZXMuXG4gKlxuICogR2V0IG9wdGlvbmFsIGRhdGEgYXR0cmlidXRlcywgY29uc3RydWN0IGFuZCBhcHBlbmRzIGFyaWEtdmFsdWV0ZXh0IGF0dHJpYnV0ZS5cbiAqXG4gKiBAZXhhbXBsZVxuICpcbiAqIDxpbnB1dCBpZD1cInVzYS1yYW5nZVwiIGNsYXNzPVwidXNhLXJhbmdlXCIgdHlwZT1cInJhbmdlXCIgbWluPVwiMFwiIG1heD1cIjEwMFwiIHN0ZXA9XCIxMFwiIHZhbHVlPVwiMjBcIiBkYXRhLXRleHQtdW5pdD1cImRlZ3JlZXNcIj5cbiAqXG4gKiBDYWxsb3V0IHJldHVybnMgXCIyMCBkZWdyZWVzIG9mIDEwMC5cIlxuICpcbiAqIDxpbnB1dCBpZD1cInVzYS1yYW5nZVwiIGNsYXNzPVwidXNhLXJhbmdlXCIgdHlwZT1cInJhbmdlXCIgbWluPVwiMFwiIG1heD1cIjEwMFwiIHN0ZXA9XCIxMFwiIHZhbHVlPVwiMjBcIiBkYXRhLXRleHQtcHJlcG9zaXRpb249XCJkZVwiPlxuICpcbiAqIENhbGxvdXQgcmV0dXJucyBcIjIwIGRlIDEwMC5cIlxuICpcbiAqIEBwYXJhbSB7SFRNTElucHV0RWxlbWVudH0gdGFyZ2V0UmFuZ2UgLSBUaGUgcmFuZ2Ugc2xpZGVyIGlucHV0IGVsZW1lbnRcbiAqL1xuY29uc3QgdXBkYXRlQ2FsbG91dCA9ICh0YXJnZXRSYW5nZSkgPT4ge1xuICBjb25zdCByYW5nZVNsaWRlciA9IHRhcmdldFJhbmdlO1xuICBjb25zdCBkZWZhdWx0UHJlcCA9IFwib2ZcIjtcbiAgY29uc3Qgb3B0aW9uYWxQcmVwID0gcmFuZ2VTbGlkZXIuZGF0YXNldC50ZXh0UHJlcG9zaXRpb247XG4gIGNvbnN0IHByZXAgPSBvcHRpb25hbFByZXAgfHwgZGVmYXVsdFByZXA7XG4gIGNvbnN0IHVuaXQgPSByYW5nZVNsaWRlci5kYXRhc2V0LnRleHRVbml0O1xuICBjb25zdCB2YWwgPSByYW5nZVNsaWRlci52YWx1ZTtcbiAgLy8gTm90ZTogMTAwIGlzIHRoZSBtYXggYXR0cmlidXRlJ3MgbmF0aXZlIGRlZmF1bHQgdmFsdWUgb24gcmFuZ2UgaW5wdXRzXG4gIC8vIFJlZmVyZW5jZTogaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSFRNTC9FbGVtZW50L2lucHV0L3JhbmdlI3ZhbGlkYXRpb25cbiAgY29uc3QgbWF4ID0gcmFuZ2VTbGlkZXIuZ2V0QXR0cmlidXRlKFwibWF4XCIpIHx8IDEwMDtcblxuICBsZXQgY2FsbG91dDtcblxuICBpZiAodW5pdCkge1xuICAgIGNhbGxvdXQgPSBgJHt2YWx9ICR7dW5pdH0gJHtwcmVwfSAke21heH1gO1xuICB9IGVsc2Uge1xuICAgIGNhbGxvdXQgPSBgJHt2YWx9ICR7cHJlcH0gJHttYXh9YDtcbiAgfVxuXG4gIHJhbmdlU2xpZGVyLnNldEF0dHJpYnV0ZShcImFyaWEtdmFsdWV0ZXh0XCIsIGNhbGxvdXQpO1xufTtcblxuY29uc3QgcmFuZ2VFdmVudHMgPSB7XG4gIGNoYW5nZToge1xuICAgIFtSQU5HRV0oKSB7XG4gICAgICB1cGRhdGVDYWxsb3V0KHRoaXMpO1xuICAgIH0sXG4gIH0sXG59O1xuXG5jb25zdCByYW5nZSA9IGJlaGF2aW9yKHJhbmdlRXZlbnRzLCB7XG4gIGluaXQocm9vdCkge1xuICAgIHNlbGVjdE9yTWF0Y2hlcyhSQU5HRSwgcm9vdCkuZm9yRWFjaCgocmFuZ2VTbGlkZXIpID0+IHtcbiAgICAgIHVwZGF0ZUNhbGxvdXQocmFuZ2VTbGlkZXIpO1xuICAgIH0pO1xuICB9LFxuICB1cGRhdGVDYWxsb3V0LFxufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gcmFuZ2U7XG4iLCJjb25zdCBpZ25vcmUgPSByZXF1aXJlKFwicmVjZXB0b3IvaWdub3JlXCIpO1xuY29uc3QgYmVoYXZpb3IgPSByZXF1aXJlKFwiLi4vLi4vdXN3ZHMtY29yZS9zcmMvanMvdXRpbHMvYmVoYXZpb3JcIik7XG5jb25zdCBzZWxlY3QgPSByZXF1aXJlKFwiLi4vLi4vdXN3ZHMtY29yZS9zcmMvanMvdXRpbHMvc2VsZWN0XCIpO1xuXG5jb25zdCB7IENMSUNLIH0gPSByZXF1aXJlKFwiLi4vLi4vdXN3ZHMtY29yZS9zcmMvanMvZXZlbnRzXCIpO1xuXG5jb25zdCBCVVRUT04gPSBcIi5qcy1zZWFyY2gtYnV0dG9uXCI7XG5jb25zdCBGT1JNID0gXCIuanMtc2VhcmNoLWZvcm1cIjtcbmNvbnN0IElOUFVUID0gXCJbdHlwZT1zZWFyY2hdXCI7XG5jb25zdCBDT05URVhUID0gXCJoZWFkZXJcIjsgLy8gWFhYXG5cbmxldCBsYXN0QnV0dG9uO1xuXG5jb25zdCBnZXRGb3JtID0gKGJ1dHRvbikgPT4ge1xuICBjb25zdCBjb250ZXh0ID0gYnV0dG9uLmNsb3Nlc3QoQ09OVEVYVCk7XG4gIHJldHVybiBjb250ZXh0ID8gY29udGV4dC5xdWVyeVNlbGVjdG9yKEZPUk0pIDogZG9jdW1lbnQucXVlcnlTZWxlY3RvcihGT1JNKTtcbn07XG5cbmNvbnN0IHRvZ2dsZVNlYXJjaCA9IChidXR0b24sIGFjdGl2ZSkgPT4ge1xuICBjb25zdCBmb3JtID0gZ2V0Rm9ybShidXR0b24pO1xuXG4gIGlmICghZm9ybSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgTm8gJHtGT1JNfSBmb3VuZCBmb3Igc2VhcmNoIHRvZ2dsZSBpbiAke0NPTlRFWFR9IWApO1xuICB9XG5cbiAgLyogZXNsaW50LWRpc2FibGUgbm8tcGFyYW0tcmVhc3NpZ24gKi9cbiAgYnV0dG9uLmhpZGRlbiA9IGFjdGl2ZTtcbiAgZm9ybS5oaWRkZW4gPSAhYWN0aXZlO1xuICAvKiBlc2xpbnQtZW5hYmxlICovXG5cbiAgaWYgKCFhY3RpdmUpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBpbnB1dCA9IGZvcm0ucXVlcnlTZWxlY3RvcihJTlBVVCk7XG5cbiAgaWYgKGlucHV0KSB7XG4gICAgaW5wdXQuZm9jdXMoKTtcbiAgfVxuICAvLyB3aGVuIHRoZSB1c2VyIGNsaWNrcyBfb3V0c2lkZV8gb2YgdGhlIGZvcm0gdy9pZ25vcmUoKTogaGlkZSB0aGVcbiAgLy8gc2VhcmNoLCB0aGVuIHJlbW92ZSB0aGUgbGlzdGVuZXJcbiAgY29uc3QgbGlzdGVuZXIgPSBpZ25vcmUoZm9ybSwgKCkgPT4ge1xuICAgIGlmIChsYXN0QnV0dG9uKSB7XG4gICAgICBoaWRlU2VhcmNoLmNhbGwobGFzdEJ1dHRvbik7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tdXNlLWJlZm9yZS1kZWZpbmVcbiAgICB9XG5cbiAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUV2ZW50TGlzdGVuZXIoQ0xJQ0ssIGxpc3RlbmVyKTtcbiAgfSk7XG5cbiAgLy8gTm9ybWFsbHkgd2Ugd291bGQganVzdCBydW4gdGhpcyBjb2RlIHdpdGhvdXQgYSB0aW1lb3V0LCBidXRcbiAgLy8gSUUxMSBhbmQgRWRnZSB3aWxsIGFjdHVhbGx5IGNhbGwgdGhlIGxpc3RlbmVyICppbW1lZGlhdGVseSogYmVjYXVzZVxuICAvLyB0aGV5IGFyZSBjdXJyZW50bHkgaGFuZGxpbmcgdGhpcyBleGFjdCB0eXBlIG9mIGV2ZW50LCBzbyB3ZSdsbFxuICAvLyBtYWtlIHN1cmUgdGhlIGJyb3dzZXIgaXMgZG9uZSBoYW5kbGluZyB0aGUgY3VycmVudCBjbGljayBldmVudCxcbiAgLy8gaWYgYW55LCBiZWZvcmUgd2UgYXR0YWNoIHRoZSBsaXN0ZW5lci5cbiAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVyKENMSUNLLCBsaXN0ZW5lcik7XG4gIH0sIDApO1xufTtcblxuZnVuY3Rpb24gc2hvd1NlYXJjaCgpIHtcbiAgdG9nZ2xlU2VhcmNoKHRoaXMsIHRydWUpO1xuICBsYXN0QnV0dG9uID0gdGhpcztcbn1cblxuZnVuY3Rpb24gaGlkZVNlYXJjaCgpIHtcbiAgdG9nZ2xlU2VhcmNoKHRoaXMsIGZhbHNlKTtcbiAgbGFzdEJ1dHRvbiA9IHVuZGVmaW5lZDtcbn1cblxuY29uc3Qgc2VhcmNoID0gYmVoYXZpb3IoXG4gIHtcbiAgICBbQ0xJQ0tdOiB7XG4gICAgICBbQlVUVE9OXTogc2hvd1NlYXJjaCxcbiAgICB9LFxuICB9LFxuICB7XG4gICAgaW5pdCh0YXJnZXQpIHtcbiAgICAgIHNlbGVjdChCVVRUT04sIHRhcmdldCkuZm9yRWFjaCgoYnV0dG9uKSA9PiB7XG4gICAgICAgIHRvZ2dsZVNlYXJjaChidXR0b24sIGZhbHNlKTtcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgdGVhcmRvd24oKSB7XG4gICAgICAvLyBmb3JnZXQgdGhlIGxhc3QgYnV0dG9uIGNsaWNrZWRcbiAgICAgIGxhc3RCdXR0b24gPSB1bmRlZmluZWQ7XG4gICAgfSxcbiAgfSxcbik7XG5cbm1vZHVsZS5leHBvcnRzID0gc2VhcmNoO1xuIiwiY29uc3Qgb25jZSA9IHJlcXVpcmUoXCJyZWNlcHRvci9vbmNlXCIpO1xuY29uc3QgYmVoYXZpb3IgPSByZXF1aXJlKFwiLi4vLi4vdXN3ZHMtY29yZS9zcmMvanMvdXRpbHMvYmVoYXZpb3JcIik7XG5jb25zdCB7IENMSUNLIH0gPSByZXF1aXJlKFwiLi4vLi4vdXN3ZHMtY29yZS9zcmMvanMvZXZlbnRzXCIpO1xuY29uc3QgeyBwcmVmaXg6IFBSRUZJWCB9ID0gcmVxdWlyZShcIi4uLy4uL3Vzd2RzLWNvcmUvc3JjL2pzL2NvbmZpZ1wiKTtcblxuY29uc3QgTElOSyA9IGAuJHtQUkVGSVh9LXNraXBuYXZbaHJlZl49XCIjXCJdLCAuJHtQUkVGSVh9LWZvb3Rlcl9fcmV0dXJuLXRvLXRvcCBbaHJlZl49XCIjXCJdYDtcbmNvbnN0IE1BSU5DT05URU5UID0gXCJtYWluLWNvbnRlbnRcIjtcblxuZnVuY3Rpb24gc2V0VGFiaW5kZXgoKSB7XG4gIC8vIE5COiB3ZSBrbm93IGJlY2F1c2Ugb2YgdGhlIHNlbGVjdG9yIHdlJ3JlIGRlbGVnYXRpbmcgdG8gYmVsb3cgdGhhdCB0aGVcbiAgLy8gaHJlZiBhbHJlYWR5IGJlZ2lucyB3aXRoICcjJ1xuICBjb25zdCBpZCA9IGVuY29kZVVSSSh0aGlzLmdldEF0dHJpYnV0ZShcImhyZWZcIikpO1xuICBjb25zdCB0YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcbiAgICBpZCA9PT0gXCIjXCIgPyBNQUlOQ09OVEVOVCA6IGlkLnNsaWNlKDEpLFxuICApO1xuXG4gIGlmICh0YXJnZXQpIHtcbiAgICB0YXJnZXQuc3R5bGUub3V0bGluZSA9IFwiMFwiO1xuICAgIHRhcmdldC5zZXRBdHRyaWJ1dGUoXCJ0YWJpbmRleFwiLCAwKTtcbiAgICB0YXJnZXQuZm9jdXMoKTtcbiAgICB0YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgIFwiYmx1clwiLFxuICAgICAgb25jZSgoKSA9PiB7XG4gICAgICAgIHRhcmdldC5zZXRBdHRyaWJ1dGUoXCJ0YWJpbmRleFwiLCAtMSk7XG4gICAgICB9KSxcbiAgICApO1xuICB9IGVsc2Uge1xuICAgIC8vIHRocm93IGFuIGVycm9yP1xuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmVoYXZpb3Ioe1xuICBbQ0xJQ0tdOiB7XG4gICAgW0xJTktdOiBzZXRUYWJpbmRleCxcbiAgfSxcbn0pO1xuIiwiY29uc3Qgc2VsZWN0ID0gcmVxdWlyZShcIi4uLy4uL3Vzd2RzLWNvcmUvc3JjL2pzL3V0aWxzL3NlbGVjdFwiKTtcbmNvbnN0IGJlaGF2aW9yID0gcmVxdWlyZShcIi4uLy4uL3Vzd2RzLWNvcmUvc3JjL2pzL3V0aWxzL2JlaGF2aW9yXCIpO1xuY29uc3QgeyBDTElDSyB9ID0gcmVxdWlyZShcIi4uLy4uL3Vzd2RzLWNvcmUvc3JjL2pzL2V2ZW50c1wiKTtcbmNvbnN0IHsgcHJlZml4OiBQUkVGSVggfSA9IHJlcXVpcmUoXCIuLi8uLi91c3dkcy1jb3JlL3NyYy9qcy9jb25maWdcIik7XG5jb25zdCBTYW5pdGl6ZXIgPSByZXF1aXJlKFwiLi4vLi4vdXN3ZHMtY29yZS9zcmMvanMvdXRpbHMvc2FuaXRpemVyXCIpO1xuXG5jb25zdCBUQUJMRSA9IGAuJHtQUkVGSVh9LXRhYmxlYDtcbmNvbnN0IFNPUlRFRCA9IFwiYXJpYS1zb3J0XCI7XG5jb25zdCBBU0NFTkRJTkcgPSBcImFzY2VuZGluZ1wiO1xuY29uc3QgREVTQ0VORElORyA9IFwiZGVzY2VuZGluZ1wiO1xuY29uc3QgU09SVF9PVkVSUklERSA9IFwiZGF0YS1zb3J0LXZhbHVlXCI7XG5jb25zdCBTT1JUX0JVVFRPTl9DTEFTUyA9IGAke1BSRUZJWH0tdGFibGVfX2hlYWRlcl9fYnV0dG9uYDtcbmNvbnN0IFNPUlRfQlVUVE9OID0gYC4ke1NPUlRfQlVUVE9OX0NMQVNTfWA7XG5jb25zdCBTT1JUQUJMRV9IRUFERVIgPSBgdGhbZGF0YS1zb3J0YWJsZV1gO1xuY29uc3QgQU5OT1VOQ0VNRU5UX1JFR0lPTiA9IGAuJHtQUkVGSVh9LXRhYmxlX19hbm5vdW5jZW1lbnQtcmVnaW9uW2FyaWEtbGl2ZT1cInBvbGl0ZVwiXWA7XG5cbi8qKiBHZXRzIHRoZSBkYXRhLXNvcnQtdmFsdWUgYXR0cmlidXRlIHZhbHVlLCBpZiBwcm92aWRlZCDigJQgb3RoZXJ3aXNlLCBnZXRzXG4gKiB0aGUgaW5uZXJUZXh0IG9yIHRleHRDb250ZW50IOKAlCBvZiB0aGUgY2hpbGQgZWxlbWVudCAoSFRNTFRhYmxlQ2VsbEVsZW1lbnQpXG4gKiBhdCB0aGUgc3BlY2lmaWVkIGluZGV4IG9mIHRoZSBnaXZlbiB0YWJsZSByb3dcbiAqXG4gKiBAcGFyYW0ge251bWJlcn0gaW5kZXhcbiAqIEBwYXJhbSB7YXJyYXk8SFRNTFRhYmxlUm93RWxlbWVudD59IHRyXG4gKiBAcmV0dXJuIHtib29sZWFufVxuICovXG5jb25zdCBnZXRDZWxsVmFsdWUgPSAodHIsIGluZGV4KSA9PlxuICB0ci5jaGlsZHJlbltpbmRleF0uZ2V0QXR0cmlidXRlKFNPUlRfT1ZFUlJJREUpIHx8XG4gIHRyLmNoaWxkcmVuW2luZGV4XS5pbm5lclRleHQgfHxcbiAgdHIuY2hpbGRyZW5baW5kZXhdLnRleHRDb250ZW50O1xuXG4vKipcbiAqIENvbXBhcmVzIHRoZSB2YWx1ZXMgb2YgdHdvIHJvdyBhcnJheSBpdGVtcyBhdCB0aGUgZ2l2ZW4gaW5kZXgsIHRoZW4gc29ydHMgYnkgdGhlIGdpdmVuIGRpcmVjdGlvblxuICogQHBhcmFtIHtudW1iZXJ9IGluZGV4XG4gKiBAcGFyYW0ge3N0cmluZ30gZGlyZWN0aW9uXG4gKiBAcmV0dXJuIHtib29sZWFufVxuICovXG5jb25zdCBjb21wYXJlRnVuY3Rpb24gPSAoaW5kZXgsIGlzQXNjZW5kaW5nKSA9PiAodGhpc1JvdywgbmV4dFJvdykgPT4ge1xuICAvLyBnZXQgdmFsdWVzIHRvIGNvbXBhcmUgZnJvbSBkYXRhIGF0dHJpYnV0ZSBvciBjZWxsIGNvbnRlbnRcbiAgY29uc3QgdmFsdWUxID0gZ2V0Q2VsbFZhbHVlKGlzQXNjZW5kaW5nID8gdGhpc1JvdyA6IG5leHRSb3csIGluZGV4KTtcbiAgY29uc3QgdmFsdWUyID0gZ2V0Q2VsbFZhbHVlKGlzQXNjZW5kaW5nID8gbmV4dFJvdyA6IHRoaXNSb3csIGluZGV4KTtcblxuICAvLyBpZiBuZWl0aGVyIHZhbHVlIGlzIGVtcHR5LCBhbmQgaWYgYm90aCB2YWx1ZXMgYXJlIGFscmVhZHkgbnVtYmVycywgY29tcGFyZSBudW1lcmljYWxseVxuICBpZiAoXG4gICAgdmFsdWUxICYmXG4gICAgdmFsdWUyICYmXG4gICAgIU51bWJlci5pc05hTihOdW1iZXIodmFsdWUxKSkgJiZcbiAgICAhTnVtYmVyLmlzTmFOKE51bWJlcih2YWx1ZTIpKVxuICApIHtcbiAgICByZXR1cm4gdmFsdWUxIC0gdmFsdWUyO1xuICB9XG4gIC8vIE90aGVyd2lzZSwgY29tcGFyZSBhbHBoYWJldGljYWxseSBiYXNlZCBvbiBjdXJyZW50IHVzZXIgbG9jYWxlXG4gIHJldHVybiB2YWx1ZTEudG9TdHJpbmcoKS5sb2NhbGVDb21wYXJlKHZhbHVlMiwgbmF2aWdhdG9yLmxhbmd1YWdlLCB7XG4gICAgbnVtZXJpYzogdHJ1ZSxcbiAgICBpZ25vcmVQdW5jdHVhdGlvbjogdHJ1ZSxcbiAgfSk7XG59O1xuXG4vKipcbiAqIEdldCBhbiBBcnJheSBvZiBjb2x1bW4gaGVhZGVycyBlbGVtZW50cyBiZWxvbmdpbmcgZGlyZWN0bHkgdG8gdGhlIGdpdmVuXG4gKiB0YWJsZSBlbGVtZW50LlxuICogQHBhcmFtIHtIVE1MVGFibGVFbGVtZW50fSB0YWJsZVxuICogQHJldHVybiB7YXJyYXk8SFRNTFRhYmxlSGVhZGVyQ2VsbEVsZW1lbnQ+fVxuICovXG5jb25zdCBnZXRDb2x1bW5IZWFkZXJzID0gKHRhYmxlKSA9PiB7XG4gIGNvbnN0IGhlYWRlcnMgPSBzZWxlY3QoU09SVEFCTEVfSEVBREVSLCB0YWJsZSk7XG4gIHJldHVybiBoZWFkZXJzLmZpbHRlcigoaGVhZGVyKSA9PiBoZWFkZXIuY2xvc2VzdChUQUJMRSkgPT09IHRhYmxlKTtcbn07XG5cbi8qKlxuICogVXBkYXRlIHRoZSBidXR0b24gbGFiZWwgd2l0aGluIHRoZSBnaXZlbiBoZWFkZXIgZWxlbWVudCwgcmVzZXR0aW5nIGl0XG4gKiB0byB0aGUgZGVmYXVsdCBzdGF0ZSAocmVhZHkgdG8gc29ydCBhc2NlbmRpbmcpIGlmIGl0J3Mgbm8gbG9uZ2VyIHNvcnRlZFxuICogQHBhcmFtIHtIVE1MVGFibGVIZWFkZXJDZWxsRWxlbWVudH0gaGVhZGVyXG4gKi9cbmNvbnN0IHVwZGF0ZVNvcnRMYWJlbCA9IChoZWFkZXIpID0+IHtcbiAgY29uc3QgaGVhZGVyTmFtZSA9IGhlYWRlci5pbm5lclRleHQ7XG4gIGNvbnN0IHNvcnRlZEFzY2VuZGluZyA9IGhlYWRlci5nZXRBdHRyaWJ1dGUoU09SVEVEKSA9PT0gQVNDRU5ESU5HO1xuICBjb25zdCBpc1NvcnRlZCA9XG4gICAgaGVhZGVyLmdldEF0dHJpYnV0ZShTT1JURUQpID09PSBBU0NFTkRJTkcgfHxcbiAgICBoZWFkZXIuZ2V0QXR0cmlidXRlKFNPUlRFRCkgPT09IERFU0NFTkRJTkcgfHxcbiAgICBmYWxzZTtcbiAgY29uc3QgaGVhZGVyTGFiZWwgPSBgJHtoZWFkZXJOYW1lfSwgc29ydGFibGUgY29sdW1uLCBjdXJyZW50bHkgJHtcbiAgICBpc1NvcnRlZFxuICAgICAgPyBgJHtzb3J0ZWRBc2NlbmRpbmcgPyBgc29ydGVkICR7QVNDRU5ESU5HfWAgOiBgc29ydGVkICR7REVTQ0VORElOR31gfWBcbiAgICAgIDogXCJ1bnNvcnRlZFwiXG4gIH1gO1xuICBjb25zdCBoZWFkZXJCdXR0b25MYWJlbCA9IGBDbGljayB0byBzb3J0IGJ5ICR7aGVhZGVyTmFtZX0gaW4gJHtcbiAgICBzb3J0ZWRBc2NlbmRpbmcgPyBERVNDRU5ESU5HIDogQVNDRU5ESU5HXG4gIH0gb3JkZXIuYDtcbiAgaGVhZGVyLnNldEF0dHJpYnV0ZShcImFyaWEtbGFiZWxcIiwgaGVhZGVyTGFiZWwpO1xuICBoZWFkZXIucXVlcnlTZWxlY3RvcihTT1JUX0JVVFRPTikuc2V0QXR0cmlidXRlKFwidGl0bGVcIiwgaGVhZGVyQnV0dG9uTGFiZWwpO1xufTtcblxuLyoqXG4gKiBSZW1vdmUgdGhlIGFyaWEtc29ydCBhdHRyaWJ1dGUgb24gdGhlIGdpdmVuIGhlYWRlciBlbGVtZW50LCBhbmQgcmVzZXQgdGhlIGxhYmVsIGFuZCBidXR0b24gaWNvblxuICogQHBhcmFtIHtIVE1MVGFibGVIZWFkZXJDZWxsRWxlbWVudH0gaGVhZGVyXG4gKi9cbmNvbnN0IHVuc2V0U29ydCA9IChoZWFkZXIpID0+IHtcbiAgaGVhZGVyLnJlbW92ZUF0dHJpYnV0ZShTT1JURUQpO1xuICB1cGRhdGVTb3J0TGFiZWwoaGVhZGVyKTtcbn07XG5cbi8qKlxuICogU29ydCByb3dzIGVpdGhlciBhc2NlbmRpbmcgb3IgZGVzY2VuZGluZywgYmFzZWQgb24gYSBnaXZlbiBoZWFkZXIncyBhcmlhLXNvcnQgYXR0cmlidXRlXG4gKiBAcGFyYW0ge0hUTUxUYWJsZUhlYWRlckNlbGxFbGVtZW50fSBoZWFkZXJcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gaXNBc2NlbmRpbmdcbiAqIEByZXR1cm4ge2Jvb2xlYW59IHRydWVcbiAqL1xuY29uc3Qgc29ydFJvd3MgPSAoaGVhZGVyLCBpc0FzY2VuZGluZykgPT4ge1xuICBoZWFkZXIuc2V0QXR0cmlidXRlKFNPUlRFRCwgaXNBc2NlbmRpbmcgPT09IHRydWUgPyBERVNDRU5ESU5HIDogQVNDRU5ESU5HKTtcbiAgdXBkYXRlU29ydExhYmVsKGhlYWRlcik7XG5cbiAgY29uc3QgdGJvZHkgPSBoZWFkZXIuY2xvc2VzdChUQUJMRSkucXVlcnlTZWxlY3RvcihcInRib2R5XCIpO1xuXG4gIC8vIFdlIGNhbiB1c2UgQXJyYXkuZnJvbSgpIGFuZCBBcnJheS5zb3J0KCkgaW5zdGVhZCBvbmNlIHdlIGRyb3AgSUUxMSBzdXBwb3J0LCBsaWtlbHkgaW4gdGhlIHN1bW1lciBvZiAyMDIxXG4gIC8vXG4gIC8vIEFycmF5LmZyb20odGJvZHkucXVlcnlTZWxlY3RvckFsbCgndHInKS5zb3J0KFxuICAvLyAgIGNvbXBhcmVGdW5jdGlvbihcbiAgLy8gICAgIEFycmF5LmZyb20oaGVhZGVyLnBhcmVudE5vZGUuY2hpbGRyZW4pLmluZGV4T2YoaGVhZGVyKSxcbiAgLy8gICAgICFpc0FzY2VuZGluZylcbiAgLy8gICApXG4gIC8vIC5mb3JFYWNoKHRyID0+IHRib2R5LmFwcGVuZENoaWxkKHRyKSApO1xuXG4gIC8vIFtdLnNsaWNlLmNhbGwoKSB0dXJucyBhcnJheS1saWtlIHNldHMgaW50byB0cnVlIGFycmF5cyBzbyB0aGF0IHdlIGNhbiBzb3J0IHRoZW1cbiAgY29uc3QgYWxsUm93cyA9IFtdLnNsaWNlLmNhbGwodGJvZHkucXVlcnlTZWxlY3RvckFsbChcInRyXCIpKTtcbiAgY29uc3QgYWxsSGVhZGVycyA9IFtdLnNsaWNlLmNhbGwoaGVhZGVyLnBhcmVudE5vZGUuY2hpbGRyZW4pO1xuICBjb25zdCB0aGlzSGVhZGVySW5kZXggPSBhbGxIZWFkZXJzLmluZGV4T2YoaGVhZGVyKTtcbiAgYWxsUm93cy5zb3J0KGNvbXBhcmVGdW5jdGlvbih0aGlzSGVhZGVySW5kZXgsICFpc0FzY2VuZGluZykpLmZvckVhY2goKHRyKSA9PiB7XG4gICAgW10uc2xpY2VcbiAgICAgIC5jYWxsKHRyLmNoaWxkcmVuKVxuICAgICAgLmZvckVhY2goKHRkKSA9PiB0ZC5yZW1vdmVBdHRyaWJ1dGUoXCJkYXRhLXNvcnQtYWN0aXZlXCIpKTtcbiAgICB0ci5jaGlsZHJlblt0aGlzSGVhZGVySW5kZXhdLnNldEF0dHJpYnV0ZShcImRhdGEtc29ydC1hY3RpdmVcIiwgdHJ1ZSk7XG4gICAgdGJvZHkuYXBwZW5kQ2hpbGQodHIpO1xuICB9KTtcblxuICByZXR1cm4gdHJ1ZTtcbn07XG5cbi8qKlxuICogVXBkYXRlIHRoZSBsaXZlIHJlZ2lvbiBpbW1lZGlhdGVseSBmb2xsb3dpbmcgdGhlIHRhYmxlIHdoZW5ldmVyIHNvcnQgY2hhbmdlcy5cbiAqIEBwYXJhbSB7SFRNTFRhYmxlRWxlbWVudH0gdGFibGVcbiAqIEBwYXJhbSB7SFRNTFRhYmxlSGVhZGVyQ2VsbEVsZW1lbnR9IHNvcnRlZEhlYWRlclxuICovXG5cbmNvbnN0IHVwZGF0ZUxpdmVSZWdpb24gPSAodGFibGUsIHNvcnRlZEhlYWRlcikgPT4ge1xuICBjb25zdCBjYXB0aW9uID0gdGFibGUucXVlcnlTZWxlY3RvcihcImNhcHRpb25cIikuaW5uZXJUZXh0O1xuICBjb25zdCBzb3J0ZWRBc2NlbmRpbmcgPSBzb3J0ZWRIZWFkZXIuZ2V0QXR0cmlidXRlKFNPUlRFRCkgPT09IEFTQ0VORElORztcbiAgY29uc3QgaGVhZGVyTGFiZWwgPSBzb3J0ZWRIZWFkZXIuaW5uZXJUZXh0O1xuICBjb25zdCBsaXZlUmVnaW9uID0gdGFibGUubmV4dEVsZW1lbnRTaWJsaW5nO1xuICBpZiAobGl2ZVJlZ2lvbiAmJiBsaXZlUmVnaW9uLm1hdGNoZXMoQU5OT1VOQ0VNRU5UX1JFR0lPTikpIHtcbiAgICBjb25zdCBzb3J0QW5ub3VuY2VtZW50ID0gYFRoZSB0YWJsZSBuYW1lZCBcIiR7Y2FwdGlvbn1cIiBpcyBub3cgc29ydGVkIGJ5ICR7aGVhZGVyTGFiZWx9IGluICR7XG4gICAgICBzb3J0ZWRBc2NlbmRpbmcgPyBBU0NFTkRJTkcgOiBERVNDRU5ESU5HXG4gICAgfSBvcmRlci5gO1xuICAgIGxpdmVSZWdpb24uaW5uZXJUZXh0ID0gc29ydEFubm91bmNlbWVudDtcbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgVGFibGUgY29udGFpbmluZyBhIHNvcnRhYmxlIGNvbHVtbiBoZWFkZXIgaXMgbm90IGZvbGxvd2VkIGJ5IGFuIGFyaWEtbGl2ZSByZWdpb24uYCxcbiAgICApO1xuICB9XG59O1xuXG4vKipcbiAqIFRvZ2dsZSBhIGhlYWRlcidzIHNvcnQgc3RhdGUsIG9wdGlvbmFsbHkgcHJvdmlkaW5nIGEgdGFyZ2V0XG4gKiBzdGF0ZS5cbiAqXG4gKiBAcGFyYW0ge0hUTUxUYWJsZUhlYWRlckNlbGxFbGVtZW50fSBoZWFkZXJcbiAqIEBwYXJhbSB7Ym9vbGVhbj99IGlzQXNjZW5kaW5nIElmIG5vIHN0YXRlIGlzIHByb3ZpZGVkLCB0aGUgY3VycmVudFxuICogc3RhdGUgd2lsbCBiZSB0b2dnbGVkIChmcm9tIGZhbHNlIHRvIHRydWUsIGFuZCB2aWNlLXZlcnNhKS5cbiAqL1xuY29uc3QgdG9nZ2xlU29ydCA9IChoZWFkZXIsIGlzQXNjZW5kaW5nKSA9PiB7XG4gIGNvbnN0IHRhYmxlID0gaGVhZGVyLmNsb3Nlc3QoVEFCTEUpO1xuICBsZXQgc2FmZUFzY2VuZGluZyA9IGlzQXNjZW5kaW5nO1xuICBpZiAodHlwZW9mIHNhZmVBc2NlbmRpbmcgIT09IFwiYm9vbGVhblwiKSB7XG4gICAgc2FmZUFzY2VuZGluZyA9IGhlYWRlci5nZXRBdHRyaWJ1dGUoU09SVEVEKSA9PT0gQVNDRU5ESU5HO1xuICB9XG5cbiAgaWYgKCF0YWJsZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgJHtTT1JUQUJMRV9IRUFERVJ9IGlzIG1pc3Npbmcgb3V0ZXIgJHtUQUJMRX1gKTtcbiAgfVxuXG4gIHNhZmVBc2NlbmRpbmcgPSBzb3J0Um93cyhoZWFkZXIsIGlzQXNjZW5kaW5nKTtcblxuICBpZiAoc2FmZUFzY2VuZGluZykge1xuICAgIGdldENvbHVtbkhlYWRlcnModGFibGUpLmZvckVhY2goKG90aGVySGVhZGVyKSA9PiB7XG4gICAgICBpZiAob3RoZXJIZWFkZXIgIT09IGhlYWRlcikge1xuICAgICAgICB1bnNldFNvcnQob3RoZXJIZWFkZXIpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHVwZGF0ZUxpdmVSZWdpb24odGFibGUsIGhlYWRlcik7XG4gIH1cbn07XG5cbi8qKlxuICoqIEluc2VydHMgYSBidXR0b24gd2l0aCBpY29uIGluc2lkZSBhIHNvcnRhYmxlIGhlYWRlclxuICogQHBhcmFtIHtIVE1MVGFibGVIZWFkZXJDZWxsRWxlbWVudH0gaGVhZGVyXG4gKi9cblxuY29uc3QgY3JlYXRlSGVhZGVyQnV0dG9uID0gKGhlYWRlcikgPT4ge1xuICBjb25zdCBidXR0b25FbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJidXR0b25cIik7XG4gIGJ1dHRvbkVsLnNldEF0dHJpYnV0ZShcInRhYmluZGV4XCIsIFwiMFwiKTtcbiAgYnV0dG9uRWwuY2xhc3NMaXN0LmFkZChTT1JUX0JVVFRPTl9DTEFTUyk7XG4gIC8vIElDT05fU09VUkNFXG4gIGJ1dHRvbkVsLmlubmVySFRNTCA9IFNhbml0aXplci5lc2NhcGVIVE1MYFxuICA8c3ZnIGNsYXNzPVwiJHtQUkVGSVh9LWljb25cIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxnIGNsYXNzPVwiZGVzY2VuZGluZ1wiIGZpbGw9XCJ0cmFuc3BhcmVudFwiPlxuICAgICAgPHBhdGggZD1cIk0xNyAxN0wxNS41OSAxNS41OUwxMi45OTk5IDE4LjE3VjJIMTAuOTk5OVYxOC4xN0w4LjQxIDE1LjU4TDcgMTdMMTEuOTk5OSAyMkwxNyAxN1pcIiAvPlxuICAgIDwvZz5cbiAgICA8ZyBjbGFzcz1cImFzY2VuZGluZ1wiIGZpbGw9XCJ0cmFuc3BhcmVudFwiPlxuICAgICAgPHBhdGggdHJhbnNmb3JtPVwicm90YXRlKDE4MCwgMTIsIDEyKVwiIGQ9XCJNMTcgMTdMMTUuNTkgMTUuNTlMMTIuOTk5OSAxOC4xN1YySDEwLjk5OTlWMTguMTdMOC40MSAxNS41OEw3IDE3TDExLjk5OTkgMjJMMTcgMTdaXCIgLz5cbiAgICA8L2c+XG4gICAgPGcgY2xhc3M9XCJ1bnNvcnRlZFwiIGZpbGw9XCJ0cmFuc3BhcmVudFwiPlxuICAgICAgPHBvbHlnb24gcG9pbnRzPVwiMTUuMTcgMTUgMTMgMTcuMTcgMTMgNi44MyAxNS4xNyA5IDE2LjU4IDcuNTkgMTIgMyA3LjQxIDcuNTkgOC44MyA5IDExIDYuODMgMTEgMTcuMTcgOC44MyAxNSA3LjQyIDE2LjQxIDEyIDIxIDE2LjU5IDE2LjQxIDE1LjE3IDE1XCIvPlxuICAgIDwvZz5cbiAgPC9zdmc+XG4gIGA7XG4gIGhlYWRlci5hcHBlbmRDaGlsZChidXR0b25FbCk7XG4gIHVwZGF0ZVNvcnRMYWJlbChoZWFkZXIpO1xufTtcblxuY29uc3QgdGFibGUgPSBiZWhhdmlvcihcbiAge1xuICAgIFtDTElDS106IHtcbiAgICAgIFtTT1JUX0JVVFRPTl0oZXZlbnQpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdG9nZ2xlU29ydChcbiAgICAgICAgICBldmVudC50YXJnZXQuY2xvc2VzdChTT1JUQUJMRV9IRUFERVIpLFxuICAgICAgICAgIGV2ZW50LnRhcmdldC5jbG9zZXN0KFNPUlRBQkxFX0hFQURFUikuZ2V0QXR0cmlidXRlKFNPUlRFRCkgPT09XG4gICAgICAgICAgICBBU0NFTkRJTkcsXG4gICAgICAgICk7XG4gICAgICB9LFxuICAgIH0sXG4gIH0sXG4gIHtcbiAgICBpbml0KHJvb3QpIHtcbiAgICAgIGNvbnN0IHNvcnRhYmxlSGVhZGVycyA9IHNlbGVjdChTT1JUQUJMRV9IRUFERVIsIHJvb3QpO1xuICAgICAgc29ydGFibGVIZWFkZXJzLmZvckVhY2goKGhlYWRlcikgPT4gY3JlYXRlSGVhZGVyQnV0dG9uKGhlYWRlcikpO1xuXG4gICAgICBjb25zdCBmaXJzdFNvcnRlZCA9IHNvcnRhYmxlSGVhZGVycy5maWx0ZXIoXG4gICAgICAgIChoZWFkZXIpID0+XG4gICAgICAgICAgaGVhZGVyLmdldEF0dHJpYnV0ZShTT1JURUQpID09PSBBU0NFTkRJTkcgfHxcbiAgICAgICAgICBoZWFkZXIuZ2V0QXR0cmlidXRlKFNPUlRFRCkgPT09IERFU0NFTkRJTkcsXG4gICAgICApWzBdO1xuICAgICAgaWYgKHR5cGVvZiBmaXJzdFNvcnRlZCA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICAvLyBubyBzb3J0YWJsZSBoZWFkZXJzIGZvdW5kXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHNvcnREaXIgPSBmaXJzdFNvcnRlZC5nZXRBdHRyaWJ1dGUoU09SVEVEKTtcbiAgICAgIGlmIChzb3J0RGlyID09PSBBU0NFTkRJTkcpIHtcbiAgICAgICAgdG9nZ2xlU29ydChmaXJzdFNvcnRlZCwgdHJ1ZSk7XG4gICAgICB9IGVsc2UgaWYgKHNvcnREaXIgPT09IERFU0NFTkRJTkcpIHtcbiAgICAgICAgdG9nZ2xlU29ydChmaXJzdFNvcnRlZCwgZmFsc2UpO1xuICAgICAgfVxuICAgIH0sXG4gICAgVEFCTEUsXG4gICAgU09SVEFCTEVfSEVBREVSLFxuICAgIFNPUlRfQlVUVE9OLFxuICB9LFxuKTtcblxubW9kdWxlLmV4cG9ydHMgPSB0YWJsZTtcbiIsImNvbnN0IGJlaGF2aW9yID0gcmVxdWlyZShcIi4uLy4uL3Vzd2RzLWNvcmUvc3JjL2pzL3V0aWxzL2JlaGF2aW9yXCIpO1xuY29uc3Qgc2VsZWN0T3JNYXRjaGVzID0gcmVxdWlyZShcIi4uLy4uL3Vzd2RzLWNvcmUvc3JjL2pzL3V0aWxzL3NlbGVjdC1vci1tYXRjaGVzXCIpO1xuY29uc3QgeyBwcmVmaXg6IFBSRUZJWCB9ID0gcmVxdWlyZShcIi4uLy4uL3Vzd2RzLWNvcmUvc3JjL2pzL2NvbmZpZ1wiKTtcbmNvbnN0IHtcbiAgQ09NQk9fQk9YX0NMQVNTLFxuICBlbmhhbmNlQ29tYm9Cb3gsXG59ID0gcmVxdWlyZShcIi4uLy4uL3VzYS1jb21iby1ib3gvc3JjL2luZGV4XCIpO1xuXG5jb25zdCBUSU1FX1BJQ0tFUl9DTEFTUyA9IGAke1BSRUZJWH0tdGltZS1waWNrZXJgO1xuY29uc3QgVElNRV9QSUNLRVIgPSBgLiR7VElNRV9QSUNLRVJfQ0xBU1N9YDtcbmNvbnN0IE1BWF9USU1FID0gNjAgKiAyNCAtIDE7XG5jb25zdCBNSU5fVElNRSA9IDA7XG5jb25zdCBERUZBVUxUX1NURVAgPSAzMDtcbmNvbnN0IE1JTl9TVEVQID0gMTtcblxuY29uc3QgRklMVEVSX0RBVEFTRVQgPSB7XG4gIGZpbHRlcjpcbiAgICBcIjA/e3sgaG91clF1ZXJ5RmlsdGVyIH19Ont7bWludXRlUXVlcnlGaWx0ZXJ9fS4qe3sgYXBRdWVyeUZpbHRlciB9fW0/XCIsXG4gIGFwUXVlcnlGaWx0ZXI6IFwiKFthcF0pXCIsXG4gIGhvdXJRdWVyeUZpbHRlcjogXCIoWzEtOV1bMC0yXT8pXCIsXG4gIG1pbnV0ZVF1ZXJ5RmlsdGVyOiBcIltcXFxcZF0rOihbMC05XXswLDJ9KVwiLFxufTtcblxuLyoqXG4gKiBQYXJzZSBhIHN0cmluZyBvZiBoaDptbSBpbnRvIG1pbnV0ZXNcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdGltZVN0ciB0aGUgdGltZSBzdHJpbmcgdG8gcGFyc2VcbiAqIEByZXR1cm5zIHtudW1iZXJ9IHRoZSBudW1iZXIgb2YgbWludXRlc1xuICovXG5jb25zdCBwYXJzZVRpbWVTdHJpbmcgPSAodGltZVN0cikgPT4ge1xuICBsZXQgbWludXRlcztcblxuICBpZiAodGltZVN0cikge1xuICAgIGNvbnN0IFtob3VycywgbWluc10gPSB0aW1lU3RyLnNwbGl0KFwiOlwiKS5tYXAoKHN0cikgPT4ge1xuICAgICAgbGV0IHZhbHVlO1xuICAgICAgY29uc3QgcGFyc2VkID0gcGFyc2VJbnQoc3RyLCAxMCk7XG4gICAgICBpZiAoIU51bWJlci5pc05hTihwYXJzZWQpKSB2YWx1ZSA9IHBhcnNlZDtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9KTtcblxuICAgIGlmIChob3VycyAhPSBudWxsICYmIG1pbnMgIT0gbnVsbCkge1xuICAgICAgbWludXRlcyA9IGhvdXJzICogNjAgKyBtaW5zO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBtaW51dGVzO1xufTtcblxuLyoqXG4gKiBFbmhhbmNlIGFuIGlucHV0IHdpdGggdGhlIGRhdGUgcGlja2VyIGVsZW1lbnRzXG4gKlxuICogQHBhcmFtIHtIVE1MRWxlbWVudH0gZWwgVGhlIGluaXRpYWwgd3JhcHBpbmcgZWxlbWVudCBvZiB0aGUgZGF0ZSBwaWNrZXIgY29tcG9uZW50XG4gKi9cbmNvbnN0IHRyYW5zZm9ybVRpbWVQaWNrZXIgPSAoZWwpID0+IHtcbiAgY29uc3QgdGltZVBpY2tlckVsID0gZWwuY2xvc2VzdChUSU1FX1BJQ0tFUik7XG5cbiAgY29uc3QgaW5pdGlhbElucHV0RWwgPSB0aW1lUGlja2VyRWwucXVlcnlTZWxlY3RvcihgaW5wdXRgKTtcblxuICBpZiAoIWluaXRpYWxJbnB1dEVsKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGAke1RJTUVfUElDS0VSfSBpcyBtaXNzaW5nIGlubmVyIGlucHV0YCk7XG4gIH1cblxuICBjb25zdCBzZWxlY3RFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzZWxlY3RcIik7XG5cbiAgW1xuICAgIFwiaWRcIixcbiAgICBcIm5hbWVcIixcbiAgICBcInJlcXVpcmVkXCIsXG4gICAgXCJhcmlhLWxhYmVsXCIsXG4gICAgXCJhcmlhLWxhYmVsbGVkYnlcIixcbiAgICBcImRpc2FibGVkXCIsXG4gICAgXCJhcmlhLWRpc2FibGVkXCIsXG4gIF0uZm9yRWFjaCgobmFtZSkgPT4ge1xuICAgIGlmIChpbml0aWFsSW5wdXRFbC5oYXNBdHRyaWJ1dGUobmFtZSkpIHtcbiAgICAgIGNvbnN0IHZhbHVlID0gaW5pdGlhbElucHV0RWwuZ2V0QXR0cmlidXRlKG5hbWUpO1xuICAgICAgc2VsZWN0RWwuc2V0QXR0cmlidXRlKG5hbWUsIHZhbHVlKTtcbiAgICAgIGluaXRpYWxJbnB1dEVsLnJlbW92ZUF0dHJpYnV0ZShuYW1lKTtcbiAgICB9XG4gIH0pO1xuXG4gIGNvbnN0IHBhZFplcm9zID0gKHZhbHVlLCBsZW5ndGgpID0+IGAwMDAwJHt2YWx1ZX1gLnNsaWNlKC1sZW5ndGgpO1xuXG4gIGNvbnN0IGdldFRpbWVDb250ZXh0ID0gKG1pbnV0ZXMpID0+IHtcbiAgICBjb25zdCBtaW51dGUgPSBtaW51dGVzICUgNjA7XG4gICAgY29uc3QgaG91cjI0ID0gTWF0aC5mbG9vcihtaW51dGVzIC8gNjApO1xuICAgIGNvbnN0IGhvdXIxMiA9IGhvdXIyNCAlIDEyIHx8IDEyO1xuICAgIGNvbnN0IGFtcG0gPSBob3VyMjQgPCAxMiA/IFwiYW1cIiA6IFwicG1cIjtcblxuICAgIHJldHVybiB7XG4gICAgICBtaW51dGUsXG4gICAgICBob3VyMjQsXG4gICAgICBob3VyMTIsXG4gICAgICBhbXBtLFxuICAgIH07XG4gIH07XG5cbiAgY29uc3QgbWluVGltZSA9IE1hdGgubWF4KFxuICAgIE1JTl9USU1FLFxuICAgIHBhcnNlVGltZVN0cmluZyh0aW1lUGlja2VyRWwuZGF0YXNldC5taW5UaW1lKSB8fCBNSU5fVElNRSxcbiAgKTtcbiAgY29uc3QgbWF4VGltZSA9IE1hdGgubWluKFxuICAgIE1BWF9USU1FLFxuICAgIHBhcnNlVGltZVN0cmluZyh0aW1lUGlja2VyRWwuZGF0YXNldC5tYXhUaW1lKSB8fCBNQVhfVElNRSxcbiAgKTtcbiAgY29uc3Qgc3RlcCA9IE1hdGguZmxvb3IoXG4gICAgTWF0aC5tYXgoTUlOX1NURVAsIHRpbWVQaWNrZXJFbC5kYXRhc2V0LnN0ZXAgfHwgREVGQVVMVF9TVEVQKSxcbiAgKTtcblxuICBsZXQgZGVmYXVsdFZhbHVlO1xuICBmb3IgKGxldCB0aW1lID0gbWluVGltZTsgdGltZSA8PSBtYXhUaW1lOyB0aW1lICs9IHN0ZXApIHtcbiAgICBjb25zdCB7IG1pbnV0ZSwgaG91cjI0LCBob3VyMTIsIGFtcG0gfSA9IGdldFRpbWVDb250ZXh0KHRpbWUpO1xuXG4gICAgY29uc3Qgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcIm9wdGlvblwiKTtcbiAgICBvcHRpb24udmFsdWUgPSBgJHtwYWRaZXJvcyhob3VyMjQsIDIpfToke3BhZFplcm9zKG1pbnV0ZSwgMil9YDtcbiAgICBvcHRpb24udGV4dCA9IGAke2hvdXIxMn06JHtwYWRaZXJvcyhtaW51dGUsIDIpfSR7YW1wbX1gO1xuICAgIGlmIChvcHRpb24udGV4dCA9PT0gaW5pdGlhbElucHV0RWwudmFsdWUpIHtcbiAgICAgIGRlZmF1bHRWYWx1ZSA9IG9wdGlvbi52YWx1ZTtcbiAgICB9XG4gICAgc2VsZWN0RWwuYXBwZW5kQ2hpbGQob3B0aW9uKTtcbiAgfVxuXG4gIHRpbWVQaWNrZXJFbC5jbGFzc0xpc3QuYWRkKENPTUJPX0JPWF9DTEFTUyk7XG5cbiAgLy8gY29tYm8gYm94IHByb3BlcnRpZXNcbiAgT2JqZWN0LmtleXMoRklMVEVSX0RBVEFTRVQpLmZvckVhY2goKGtleSkgPT4ge1xuICAgIHRpbWVQaWNrZXJFbC5kYXRhc2V0W2tleV0gPSBGSUxURVJfREFUQVNFVFtrZXldO1xuICB9KTtcbiAgdGltZVBpY2tlckVsLmRhdGFzZXQuZGlzYWJsZUZpbHRlcmluZyA9IFwidHJ1ZVwiO1xuICB0aW1lUGlja2VyRWwuZGF0YXNldC5kZWZhdWx0VmFsdWUgPSBkZWZhdWx0VmFsdWU7XG5cbiAgdGltZVBpY2tlckVsLmFwcGVuZENoaWxkKHNlbGVjdEVsKTtcbiAgaW5pdGlhbElucHV0RWwucmVtb3ZlKCk7XG59O1xuXG5jb25zdCB0aW1lUGlja2VyID0gYmVoYXZpb3IoXG4gIHt9LFxuICB7XG4gICAgaW5pdChyb290KSB7XG4gICAgICBzZWxlY3RPck1hdGNoZXMoVElNRV9QSUNLRVIsIHJvb3QpLmZvckVhY2goKHRpbWVQaWNrZXJFbCkgPT4ge1xuICAgICAgICB0cmFuc2Zvcm1UaW1lUGlja2VyKHRpbWVQaWNrZXJFbCk7XG4gICAgICAgIGVuaGFuY2VDb21ib0JveCh0aW1lUGlja2VyRWwpO1xuICAgICAgfSk7XG4gICAgfSxcbiAgICBGSUxURVJfREFUQVNFVCxcbiAgfSxcbik7XG5cbm1vZHVsZS5leHBvcnRzID0gdGltZVBpY2tlcjtcbiIsIi8vIFRvb2x0aXBzXG5jb25zdCBrZXltYXAgPSByZXF1aXJlKFwicmVjZXB0b3Iva2V5bWFwXCIpO1xuY29uc3Qgc2VsZWN0T3JNYXRjaGVzID0gcmVxdWlyZShcIi4uLy4uL3Vzd2RzLWNvcmUvc3JjL2pzL3V0aWxzL3NlbGVjdC1vci1tYXRjaGVzXCIpO1xuY29uc3QgYmVoYXZpb3IgPSByZXF1aXJlKFwiLi4vLi4vdXN3ZHMtY29yZS9zcmMvanMvdXRpbHMvYmVoYXZpb3JcIik7XG5jb25zdCB7IHByZWZpeDogUFJFRklYIH0gPSByZXF1aXJlKFwiLi4vLi4vdXN3ZHMtY29yZS9zcmMvanMvY29uZmlnXCIpO1xuY29uc3QgaXNFbGVtZW50SW5WaWV3cG9ydCA9IHJlcXVpcmUoXCIuLi8uLi91c3dkcy1jb3JlL3NyYy9qcy91dGlscy9pcy1pbi12aWV3cG9ydFwiKTtcblxuY29uc3QgQk9EWSA9IFwiYm9keVwiO1xuY29uc3QgVE9PTFRJUCA9IGAuJHtQUkVGSVh9LXRvb2x0aXBgO1xuY29uc3QgVE9PTFRJUF9UUklHR0VSID0gYC4ke1BSRUZJWH0tdG9vbHRpcF9fdHJpZ2dlcmA7XG5jb25zdCBUT09MVElQX1RSSUdHRVJfQ0xBU1MgPSBgJHtQUkVGSVh9LXRvb2x0aXBfX3RyaWdnZXJgO1xuY29uc3QgVE9PTFRJUF9DTEFTUyA9IGAke1BSRUZJWH0tdG9vbHRpcGA7XG5jb25zdCBUT09MVElQX0JPRFlfQ0xBU1MgPSBgJHtQUkVGSVh9LXRvb2x0aXBfX2JvZHlgO1xuY29uc3QgU0VUX0NMQVNTID0gXCJpcy1zZXRcIjtcbmNvbnN0IFZJU0lCTEVfQ0xBU1MgPSBcImlzLXZpc2libGVcIjtcbmNvbnN0IFRSSUFOR0xFX1NJWkUgPSA1O1xuY29uc3QgQURKVVNUX1dJRFRIX0NMQVNTID0gYCR7UFJFRklYfS10b29sdGlwX19ib2R5LS13cmFwYDtcblxuLyoqXG4gKlxuICogQHBhcmFtIHtET01FbGVtZW50fSB0cmlnZ2VyIC0gVGhlIHRvb2x0aXAgdHJpZ2dlclxuICogQHJldHVybnMge29iamVjdH0gRWxlbWVudHMgZm9yIGluaXRpYWxpemVkIHRvb2x0aXA7IGluY2x1ZGVzIHRyaWdnZXIsIHdyYXBwZXIsIGFuZCBib2R5XG4gKi9cbmNvbnN0IGdldFRvb2x0aXBFbGVtZW50cyA9ICh0cmlnZ2VyKSA9PiB7XG4gIGNvbnN0IHdyYXBwZXIgPSB0cmlnZ2VyLnBhcmVudE5vZGU7XG4gIGNvbnN0IGJvZHkgPSB3cmFwcGVyLnF1ZXJ5U2VsZWN0b3IoYC4ke1RPT0xUSVBfQk9EWV9DTEFTU31gKTtcblxuICByZXR1cm4geyB0cmlnZ2VyLCB3cmFwcGVyLCBib2R5IH07XG59O1xuXG4vKipcbiAqIFNob3dzIHRoZSB0b29sdGlwXG4gKiBAcGFyYW0ge0hUTUxFbGVtZW50fSB0b29sdGlwVHJpZ2dlciAtIHRoZSBlbGVtZW50IHRoYXQgaW5pdGlhbGl6ZXMgdGhlIHRvb2x0aXBcbiAqL1xuY29uc3Qgc2hvd1Rvb2xUaXAgPSAodG9vbHRpcEJvZHksIHRvb2x0aXBUcmlnZ2VyLCBwb3NpdGlvbikgPT4ge1xuICB0b29sdGlwQm9keS5zZXRBdHRyaWJ1dGUoXCJhcmlhLWhpZGRlblwiLCBcImZhbHNlXCIpO1xuXG4gIC8vIFRoaXMgc2V0cyB1cCB0aGUgdG9vbHRpcCBib2R5LiBUaGUgb3BhY2l0eSBpcyAwLCBidXRcbiAgLy8gd2UgY2FuIGJlZ2luIHJ1bm5pbmcgdGhlIGNhbGN1bGF0aW9ucyBiZWxvdy5cbiAgdG9vbHRpcEJvZHkuY2xhc3NMaXN0LmFkZChTRVRfQ0xBU1MpO1xuXG4gIC8qKlxuICAgKiBQb3NpdGlvbiB0aGUgdG9vbHRpcCBib2R5IHdoZW4gdGhlIHRyaWdnZXIgaXMgaG92ZXJlZFxuICAgKiBSZW1vdmVzIG9sZCBwb3NpdGlvbmluZyBjbGFzc25hbWVzIGFuZCByZWFwcGxpZXMuIFRoaXMgYWxsb3dzXG4gICAqIHBvc2l0aW9uaW5nIHRvIGNoYW5nZSBpbiBjYXNlIHRoZSB1c2VyIHJlc2l6ZXMgYnJvd3NlciBvciBET00gbWFuaXB1bGF0aW9uXG4gICAqIGNhdXNlcyB0b29sdGlwIHRvIGdldCBjbGlwcGVkIGZyb20gdmlld3BvcnRcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHNldFBvcyAtIGNhbiBiZSBcInRvcFwiLCBcImJvdHRvbVwiLCBcInJpZ2h0XCIsIFwibGVmdFwiXG4gICAqL1xuICBjb25zdCBzZXRQb3NpdGlvbkNsYXNzID0gKHNldFBvcykgPT4ge1xuICAgIHRvb2x0aXBCb2R5LmNsYXNzTGlzdC5yZW1vdmUoYCR7VE9PTFRJUF9CT0RZX0NMQVNTfS0tdG9wYCk7XG4gICAgdG9vbHRpcEJvZHkuY2xhc3NMaXN0LnJlbW92ZShgJHtUT09MVElQX0JPRFlfQ0xBU1N9LS1ib3R0b21gKTtcbiAgICB0b29sdGlwQm9keS5jbGFzc0xpc3QucmVtb3ZlKGAke1RPT0xUSVBfQk9EWV9DTEFTU30tLXJpZ2h0YCk7XG4gICAgdG9vbHRpcEJvZHkuY2xhc3NMaXN0LnJlbW92ZShgJHtUT09MVElQX0JPRFlfQ0xBU1N9LS1sZWZ0YCk7XG4gICAgdG9vbHRpcEJvZHkuY2xhc3NMaXN0LmFkZChgJHtUT09MVElQX0JPRFlfQ0xBU1N9LS0ke3NldFBvc31gKTtcbiAgfTtcblxuICAvKipcbiAgICogUmVtb3ZlcyBvbGQgcG9zaXRpb25pbmcgc3R5bGVzLiBUaGlzIGFsbG93c1xuICAgKiByZS1wb3NpdGlvbmluZyB0byBjaGFuZ2Ugd2l0aG91dCBpbmhlcml0aW5nIG90aGVyXG4gICAqIGR5bmFtaWMgc3R5bGVzXG4gICAqXG4gICAqIEBwYXJhbSB7SFRNTEVsZW1lbnR9IGUgLSB0aGlzIGlzIHRoZSB0b29sdGlwIGJvZHlcbiAgICovXG4gIGNvbnN0IHJlc2V0UG9zaXRpb25TdHlsZXMgPSAoZSkgPT4ge1xuICAgIC8vIHdlIGRvbid0IG92ZXJyaWRlIGFueXRoaW5nIGluIHRoZSBzdHlsZXNoZWV0IHdoZW4gZmluZGluZyBhbHQgcG9zaXRpb25zXG4gICAgZS5zdHlsZS50b3AgPSBudWxsO1xuICAgIGUuc3R5bGUuYm90dG9tID0gbnVsbDtcbiAgICBlLnN0eWxlLnJpZ2h0ID0gbnVsbDtcbiAgICBlLnN0eWxlLmxlZnQgPSBudWxsO1xuICAgIGUuc3R5bGUubWFyZ2luID0gbnVsbDtcbiAgfTtcblxuICAvKipcbiAgICogZ2V0IG1hcmdpbiBvZmZzZXQgY2FsY3VsYXRpb25zXG4gICAqXG4gICAqIEBwYXJhbSB7SFRNTEVsZW1lbnR9IHRhcmdldCAtIHRoaXMgaXMgdGhlIHRvb2x0aXAgYm9keVxuICAgKiBAcGFyYW0ge1N0cmluZ30gcHJvcGVydHlWYWx1ZSAtIHRoaXMgaXMgdGhlIHRvb2x0aXAgYm9keVxuICAgKi9cblxuICBjb25zdCBvZmZzZXRNYXJnaW4gPSAodGFyZ2V0LCBwcm9wZXJ0eVZhbHVlKSA9PlxuICAgIHBhcnNlSW50KFxuICAgICAgd2luZG93LmdldENvbXB1dGVkU3R5bGUodGFyZ2V0KS5nZXRQcm9wZXJ0eVZhbHVlKHByb3BlcnR5VmFsdWUpLFxuICAgICAgMTAsXG4gICAgKTtcblxuICAvLyBvZmZzZXRMZWZ0ID0gdGhlIGxlZnQgcG9zaXRpb24sIGFuZCBtYXJnaW4gb2YgdGhlIGVsZW1lbnQsIHRoZSBsZWZ0XG4gIC8vIHBhZGRpbmcsIHNjcm9sbGJhciBhbmQgYm9yZGVyIG9mIHRoZSBvZmZzZXRQYXJlbnQgZWxlbWVudFxuICAvLyBvZmZzZXRXaWR0aCA9IFRoZSBvZmZzZXRXaWR0aCBwcm9wZXJ0eSByZXR1cm5zIHRoZSB2aWV3YWJsZSB3aWR0aCBvZiBhblxuICAvLyBlbGVtZW50IGluIHBpeGVscywgaW5jbHVkaW5nIHBhZGRpbmcsIGJvcmRlciBhbmQgc2Nyb2xsYmFyLCBidXQgbm90XG4gIC8vIHRoZSBtYXJnaW4uXG5cbiAgLyoqXG4gICAqIENhbGN1bGF0ZSBtYXJnaW4gb2Zmc2V0XG4gICAqIHRvb2x0aXAgdHJpZ2dlciBtYXJnaW4ocG9zaXRpb24pIG9mZnNldCArIHRvb2x0aXBCb2R5IG9mZnNldFdpZHRoXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBtYXJnaW5Qb3NpdGlvblxuICAgKiBAcGFyYW0ge051bWJlcn0gdG9vbHRpcEJvZHlPZmZzZXRcbiAgICogQHBhcmFtIHtIVE1MRWxlbWVudH0gdHJpZ2dlclxuICAgKi9cbiAgY29uc3QgY2FsY3VsYXRlTWFyZ2luT2Zmc2V0ID0gKFxuICAgIG1hcmdpblBvc2l0aW9uLFxuICAgIHRvb2x0aXBCb2R5T2Zmc2V0LFxuICAgIHRyaWdnZXIsXG4gICkgPT4ge1xuICAgIGNvbnN0IG9mZnNldCA9XG4gICAgICBvZmZzZXRNYXJnaW4odHJpZ2dlciwgYG1hcmdpbi0ke21hcmdpblBvc2l0aW9ufWApID4gMFxuICAgICAgICA/IHRvb2x0aXBCb2R5T2Zmc2V0IC0gb2Zmc2V0TWFyZ2luKHRyaWdnZXIsIGBtYXJnaW4tJHttYXJnaW5Qb3NpdGlvbn1gKVxuICAgICAgICA6IHRvb2x0aXBCb2R5T2Zmc2V0O1xuXG4gICAgcmV0dXJuIG9mZnNldDtcbiAgfTtcblxuICAvKipcbiAgICogUG9zaXRpb25zIHRvb2x0aXAgYXQgdGhlIHRvcFxuICAgKiBAcGFyYW0ge0hUTUxFbGVtZW50fSBlIC0gdGhpcyBpcyB0aGUgdG9vbHRpcCBib2R5XG4gICAqL1xuICBjb25zdCBwb3NpdGlvblRvcCA9IChlKSA9PiB7XG4gICAgcmVzZXRQb3NpdGlvblN0eWxlcyhlKTsgLy8gZW5zdXJlcyB3ZSBzdGFydCBmcm9tIHRoZSBzYW1lIHBvaW50XG4gICAgLy8gZ2V0IGRldGFpbHMgb24gdGhlIGVsZW1lbnRzIG9iamVjdCB3aXRoXG5cbiAgICBjb25zdCB0b3BNYXJnaW4gPSBjYWxjdWxhdGVNYXJnaW5PZmZzZXQoXG4gICAgICBcInRvcFwiLFxuICAgICAgZS5vZmZzZXRIZWlnaHQsXG4gICAgICB0b29sdGlwVHJpZ2dlcixcbiAgICApO1xuXG4gICAgY29uc3QgbGVmdE1hcmdpbiA9IGNhbGN1bGF0ZU1hcmdpbk9mZnNldChcbiAgICAgIFwibGVmdFwiLFxuICAgICAgZS5vZmZzZXRXaWR0aCxcbiAgICAgIHRvb2x0aXBUcmlnZ2VyLFxuICAgICk7XG5cbiAgICBzZXRQb3NpdGlvbkNsYXNzKFwidG9wXCIpO1xuICAgIGUuc3R5bGUubGVmdCA9IGA1MCVgOyAvLyBjZW50ZXIgdGhlIGVsZW1lbnRcbiAgICBlLnN0eWxlLnRvcCA9IGAtJHtUUklBTkdMRV9TSVpFfXB4YDsgLy8gY29uc2lkZXIgdGhlIHBzZXVkbyBlbGVtZW50XG4gICAgLy8gYXBwbHkgb3VyIG1hcmdpbnMgYmFzZWQgb24gdGhlIG9mZnNldFxuICAgIGUuc3R5bGUubWFyZ2luID0gYC0ke3RvcE1hcmdpbn1weCAwIDAgLSR7bGVmdE1hcmdpbiAvIDJ9cHhgO1xuICB9O1xuXG4gIC8qKlxuICAgKiBQb3NpdGlvbnMgdG9vbHRpcCBhdCB0aGUgYm90dG9tXG4gICAqIEBwYXJhbSB7SFRNTEVsZW1lbnR9IGUgLSB0aGlzIGlzIHRoZSB0b29sdGlwIGJvZHlcbiAgICovXG4gIGNvbnN0IHBvc2l0aW9uQm90dG9tID0gKGUpID0+IHtcbiAgICByZXNldFBvc2l0aW9uU3R5bGVzKGUpO1xuXG4gICAgY29uc3QgbGVmdE1hcmdpbiA9IGNhbGN1bGF0ZU1hcmdpbk9mZnNldChcbiAgICAgIFwibGVmdFwiLFxuICAgICAgZS5vZmZzZXRXaWR0aCxcbiAgICAgIHRvb2x0aXBUcmlnZ2VyLFxuICAgICk7XG5cbiAgICBzZXRQb3NpdGlvbkNsYXNzKFwiYm90dG9tXCIpO1xuICAgIGUuc3R5bGUubGVmdCA9IGA1MCVgO1xuICAgIGUuc3R5bGUubWFyZ2luID0gYCR7VFJJQU5HTEVfU0laRX1weCAwIDAgLSR7bGVmdE1hcmdpbiAvIDJ9cHhgO1xuICB9O1xuXG4gIC8qKlxuICAgKiBQb3NpdGlvbnMgdG9vbHRpcCBhdCB0aGUgcmlnaHRcbiAgICogQHBhcmFtIHtIVE1MRWxlbWVudH0gZSAtIHRoaXMgaXMgdGhlIHRvb2x0aXAgYm9keVxuICAgKi9cbiAgY29uc3QgcG9zaXRpb25SaWdodCA9IChlKSA9PiB7XG4gICAgcmVzZXRQb3NpdGlvblN0eWxlcyhlKTtcblxuICAgIGNvbnN0IHRvcE1hcmdpbiA9IGNhbGN1bGF0ZU1hcmdpbk9mZnNldChcbiAgICAgIFwidG9wXCIsXG4gICAgICBlLm9mZnNldEhlaWdodCxcbiAgICAgIHRvb2x0aXBUcmlnZ2VyLFxuICAgICk7XG5cbiAgICBzZXRQb3NpdGlvbkNsYXNzKFwicmlnaHRcIik7XG4gICAgZS5zdHlsZS50b3AgPSBgNTAlYDtcbiAgICBlLnN0eWxlLmxlZnQgPSBgJHtcbiAgICAgIHRvb2x0aXBUcmlnZ2VyLm9mZnNldExlZnQgKyB0b29sdGlwVHJpZ2dlci5vZmZzZXRXaWR0aCArIFRSSUFOR0xFX1NJWkVcbiAgICB9cHhgO1xuICAgIGUuc3R5bGUubWFyZ2luID0gYC0ke3RvcE1hcmdpbiAvIDJ9cHggMCAwIDBgO1xuICB9O1xuXG4gIC8qKlxuICAgKiBQb3NpdGlvbnMgdG9vbHRpcCBhdCB0aGUgcmlnaHRcbiAgICogQHBhcmFtIHtIVE1MRWxlbWVudH0gZSAtIHRoaXMgaXMgdGhlIHRvb2x0aXAgYm9keVxuICAgKi9cbiAgY29uc3QgcG9zaXRpb25MZWZ0ID0gKGUpID0+IHtcbiAgICByZXNldFBvc2l0aW9uU3R5bGVzKGUpO1xuXG4gICAgY29uc3QgdG9wTWFyZ2luID0gY2FsY3VsYXRlTWFyZ2luT2Zmc2V0KFxuICAgICAgXCJ0b3BcIixcbiAgICAgIGUub2Zmc2V0SGVpZ2h0LFxuICAgICAgdG9vbHRpcFRyaWdnZXIsXG4gICAgKTtcblxuICAgIC8vIHdlIGhhdmUgdG8gY2hlY2sgZm9yIHNvbWUgdXRpbGl0eSBtYXJnaW5zXG4gICAgY29uc3QgbGVmdE1hcmdpbiA9IGNhbGN1bGF0ZU1hcmdpbk9mZnNldChcbiAgICAgIFwibGVmdFwiLFxuICAgICAgdG9vbHRpcFRyaWdnZXIub2Zmc2V0TGVmdCA+IGUub2Zmc2V0V2lkdGhcbiAgICAgICAgPyB0b29sdGlwVHJpZ2dlci5vZmZzZXRMZWZ0IC0gZS5vZmZzZXRXaWR0aFxuICAgICAgICA6IGUub2Zmc2V0V2lkdGgsXG4gICAgICB0b29sdGlwVHJpZ2dlcixcbiAgICApO1xuXG4gICAgc2V0UG9zaXRpb25DbGFzcyhcImxlZnRcIik7XG4gICAgZS5zdHlsZS50b3AgPSBgNTAlYDtcbiAgICBlLnN0eWxlLmxlZnQgPSBgLSR7VFJJQU5HTEVfU0laRX1weGA7XG4gICAgZS5zdHlsZS5tYXJnaW4gPSBgLSR7dG9wTWFyZ2luIC8gMn1weCAwIDAgJHtcbiAgICAgIHRvb2x0aXBUcmlnZ2VyLm9mZnNldExlZnQgPiBlLm9mZnNldFdpZHRoID8gbGVmdE1hcmdpbiA6IC1sZWZ0TWFyZ2luXG4gICAgfXB4YDsgLy8gYWRqdXN0IHRoZSBtYXJnaW5cbiAgfTtcblxuICAvKipcbiAgICogV2UgdHJ5IHRvIHNldCB0aGUgcG9zaXRpb24gYmFzZWQgb24gdGhlXG4gICAqIG9yaWdpbmFsIGludGVudGlvbiwgYnV0IG1ha2UgYWRqdXN0bWVudHNcbiAgICogaWYgdGhlIGVsZW1lbnQgaXMgY2xpcHBlZCBvdXQgb2YgdGhlIHZpZXdwb3J0XG4gICAqIHdlIGNvbnN0cmFpbiB0aGUgd2lkdGggb25seSBhcyBhIGxhc3QgcmVzb3J0XG4gICAqIEBwYXJhbSB7SFRNTEVsZW1lbnR9IGVsZW1lbnQoYWxpYXMgdG9vbHRpcEJvZHkpXG4gICAqIEBwYXJhbSB7TnVtYmVyfSBhdHRlbXB0ICgtLWZsYWcpXG4gICAqL1xuXG4gIGNvbnN0IG1heEF0dGVtcHRzID0gMjtcblxuICBmdW5jdGlvbiBmaW5kQmVzdFBvc2l0aW9uKGVsZW1lbnQsIGF0dGVtcHQgPSAxKSB7XG4gICAgLy8gY3JlYXRlIGFycmF5IG9mIG9wdGlvbmFsIHBvc2l0aW9uc1xuICAgIGNvbnN0IHBvc2l0aW9ucyA9IFtcbiAgICAgIHBvc2l0aW9uVG9wLFxuICAgICAgcG9zaXRpb25Cb3R0b20sXG4gICAgICBwb3NpdGlvblJpZ2h0LFxuICAgICAgcG9zaXRpb25MZWZ0LFxuICAgIF07XG5cbiAgICBsZXQgaGFzVmlzaWJsZVBvc2l0aW9uID0gZmFsc2U7XG5cbiAgICAvLyB3ZSB0YWtlIGEgcmVjdXJzaXZlIGFwcHJvYWNoXG4gICAgZnVuY3Rpb24gdHJ5UG9zaXRpb25zKGkpIHtcbiAgICAgIGlmIChpIDwgcG9zaXRpb25zLmxlbmd0aCkge1xuICAgICAgICBjb25zdCBwb3MgPSBwb3NpdGlvbnNbaV07XG4gICAgICAgIHBvcyhlbGVtZW50KTtcblxuICAgICAgICBpZiAoIWlzRWxlbWVudEluVmlld3BvcnQoZWxlbWVudCkpIHtcbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICAgICAgICB0cnlQb3NpdGlvbnMoKGkgKz0gMSkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGhhc1Zpc2libGVQb3NpdGlvbiA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICB0cnlQb3NpdGlvbnMoMCk7XG4gICAgLy8gaWYgd2UgY2FuJ3QgZmluZCBhIHBvc2l0aW9uIHdlIGNvbXByZXNzIGl0IGFuZCB0cnkgYWdhaW5cbiAgICBpZiAoIWhhc1Zpc2libGVQb3NpdGlvbikge1xuICAgICAgZWxlbWVudC5jbGFzc0xpc3QuYWRkKEFESlVTVF9XSURUSF9DTEFTUyk7XG4gICAgICBpZiAoYXR0ZW1wdCA8PSBtYXhBdHRlbXB0cykge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICAgICAgZmluZEJlc3RQb3NpdGlvbihlbGVtZW50LCAoYXR0ZW1wdCArPSAxKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgc3dpdGNoIChwb3NpdGlvbikge1xuICAgIGNhc2UgXCJ0b3BcIjpcbiAgICAgIHBvc2l0aW9uVG9wKHRvb2x0aXBCb2R5KTtcbiAgICAgIGlmICghaXNFbGVtZW50SW5WaWV3cG9ydCh0b29sdGlwQm9keSkpIHtcbiAgICAgICAgZmluZEJlc3RQb3NpdGlvbih0b29sdGlwQm9keSk7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBjYXNlIFwiYm90dG9tXCI6XG4gICAgICBwb3NpdGlvbkJvdHRvbSh0b29sdGlwQm9keSk7XG4gICAgICBpZiAoIWlzRWxlbWVudEluVmlld3BvcnQodG9vbHRpcEJvZHkpKSB7XG4gICAgICAgIGZpbmRCZXN0UG9zaXRpb24odG9vbHRpcEJvZHkpO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSBcInJpZ2h0XCI6XG4gICAgICBwb3NpdGlvblJpZ2h0KHRvb2x0aXBCb2R5KTtcbiAgICAgIGlmICghaXNFbGVtZW50SW5WaWV3cG9ydCh0b29sdGlwQm9keSkpIHtcbiAgICAgICAgZmluZEJlc3RQb3NpdGlvbih0b29sdGlwQm9keSk7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBjYXNlIFwibGVmdFwiOlxuICAgICAgcG9zaXRpb25MZWZ0KHRvb2x0aXBCb2R5KTtcbiAgICAgIGlmICghaXNFbGVtZW50SW5WaWV3cG9ydCh0b29sdGlwQm9keSkpIHtcbiAgICAgICAgZmluZEJlc3RQb3NpdGlvbih0b29sdGlwQm9keSk7XG4gICAgICB9XG4gICAgICBicmVhaztcblxuICAgIGRlZmF1bHQ6XG4gICAgICAvLyBza2lwIGRlZmF1bHQgY2FzZVxuICAgICAgYnJlYWs7XG4gIH1cblxuICAvKipcbiAgICogQWN0dWFsbHkgc2hvdyB0aGUgdG9vbHRpcC4gVGhlIFZJU0lCTEVfQ0xBU1NcbiAgICogd2lsbCBjaGFuZ2UgdGhlIG9wYWNpdHkgdG8gMVxuICAgKi9cbiAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgdG9vbHRpcEJvZHkuY2xhc3NMaXN0LmFkZChWSVNJQkxFX0NMQVNTKTtcbiAgfSwgMjApO1xufTtcblxuLyoqXG4gKiBSZW1vdmVzIGFsbCB0aGUgcHJvcGVydGllcyB0byBzaG93IGFuZCBwb3NpdGlvbiB0aGUgdG9vbHRpcCxcbiAqIGFuZCByZXNldHMgdGhlIHRvb2x0aXAgcG9zaXRpb24gdG8gdGhlIG9yaWdpbmFsIGludGVudGlvblxuICogaW4gY2FzZSB0aGUgd2luZG93IGlzIHJlc2l6ZWQgb3IgdGhlIGVsZW1lbnQgaXMgbW92ZWQgdGhyb3VnaFxuICogRE9NIG1hbmlwdWxhdGlvbi5cbiAqIEBwYXJhbSB7SFRNTEVsZW1lbnR9IHRvb2x0aXBCb2R5IC0gVGhlIGJvZHkgb2YgdGhlIHRvb2x0aXBcbiAqL1xuY29uc3QgaGlkZVRvb2xUaXAgPSAodG9vbHRpcEJvZHkpID0+IHtcbiAgdG9vbHRpcEJvZHkuY2xhc3NMaXN0LnJlbW92ZShWSVNJQkxFX0NMQVNTKTtcbiAgdG9vbHRpcEJvZHkuY2xhc3NMaXN0LnJlbW92ZShTRVRfQ0xBU1MpO1xuICB0b29sdGlwQm9keS5jbGFzc0xpc3QucmVtb3ZlKEFESlVTVF9XSURUSF9DTEFTUyk7XG4gIHRvb2x0aXBCb2R5LnNldEF0dHJpYnV0ZShcImFyaWEtaGlkZGVuXCIsIFwidHJ1ZVwiKTtcbn07XG5cbi8qKlxuICogU2V0dXAgdGhlIHRvb2x0aXAgY29tcG9uZW50XG4gKiBAcGFyYW0ge0hUTUxFbGVtZW50fSB0b29sdGlwVHJpZ2dlciBUaGUgZWxlbWVudCB0aGF0IGNyZWF0ZXMgdGhlIHRvb2x0aXBcbiAqL1xuY29uc3Qgc2V0VXBBdHRyaWJ1dGVzID0gKHRvb2x0aXBUcmlnZ2VyKSA9PiB7XG4gIGNvbnN0IHRvb2x0aXBJRCA9IGB0b29sdGlwLSR7TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogOTAwMDAwKSArIDEwMDAwMH1gO1xuICBjb25zdCB0b29sdGlwQ29udGVudCA9IHRvb2x0aXBUcmlnZ2VyLmdldEF0dHJpYnV0ZShcInRpdGxlXCIpO1xuICBjb25zdCB3cmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInNwYW5cIik7XG4gIGNvbnN0IHRvb2x0aXBCb2R5ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInNwYW5cIik7XG4gIGNvbnN0IGFkZGl0aW9uYWxDbGFzc2VzID0gdG9vbHRpcFRyaWdnZXIuZ2V0QXR0cmlidXRlKFwiZGF0YS1jbGFzc2VzXCIpO1xuICBsZXQgcG9zaXRpb24gPSB0b29sdGlwVHJpZ2dlci5nZXRBdHRyaWJ1dGUoXCJkYXRhLXBvc2l0aW9uXCIpO1xuXG4gIC8vIEFwcGx5IGRlZmF1bHQgcG9zaXRpb24gaWYgbm90IHNldCBhcyBhdHRyaWJ1dGVcbiAgaWYgKCFwb3NpdGlvbikge1xuICAgIHBvc2l0aW9uID0gXCJ0b3BcIjtcbiAgICB0b29sdGlwVHJpZ2dlci5zZXRBdHRyaWJ1dGUoXCJkYXRhLXBvc2l0aW9uXCIsIHBvc2l0aW9uKTtcbiAgfVxuXG4gIC8vIFNldCB1cCB0b29sdGlwIGF0dHJpYnV0ZXNcbiAgdG9vbHRpcFRyaWdnZXIuc2V0QXR0cmlidXRlKFwiYXJpYS1kZXNjcmliZWRieVwiLCB0b29sdGlwSUQpO1xuICB0b29sdGlwVHJpZ2dlci5zZXRBdHRyaWJ1dGUoXCJ0YWJpbmRleFwiLCBcIjBcIik7XG4gIHRvb2x0aXBUcmlnZ2VyLnJlbW92ZUF0dHJpYnV0ZShcInRpdGxlXCIpO1xuICB0b29sdGlwVHJpZ2dlci5jbGFzc0xpc3QucmVtb3ZlKFRPT0xUSVBfQ0xBU1MpO1xuICB0b29sdGlwVHJpZ2dlci5jbGFzc0xpc3QuYWRkKFRPT0xUSVBfVFJJR0dFUl9DTEFTUyk7XG5cbiAgLy8gaW5zZXJ0IHdyYXBwZXIgYmVmb3JlIGVsIGluIHRoZSBET00gdHJlZVxuICB0b29sdGlwVHJpZ2dlci5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh3cmFwcGVyLCB0b29sdGlwVHJpZ2dlcik7XG5cbiAgLy8gc2V0IHVwIHRoZSB3cmFwcGVyXG4gIHdyYXBwZXIuYXBwZW5kQ2hpbGQodG9vbHRpcFRyaWdnZXIpO1xuICB3cmFwcGVyLmNsYXNzTGlzdC5hZGQoVE9PTFRJUF9DTEFTUyk7XG4gIHdyYXBwZXIuYXBwZW5kQ2hpbGQodG9vbHRpcEJvZHkpO1xuXG4gIC8vIEFwcGx5IGFkZGl0aW9uYWwgY2xhc3MgbmFtZXMgdG8gd3JhcHBlciBlbGVtZW50XG4gIGlmIChhZGRpdGlvbmFsQ2xhc3Nlcykge1xuICAgIGNvbnN0IGNsYXNzZXNBcnJheSA9IGFkZGl0aW9uYWxDbGFzc2VzLnNwbGl0KFwiIFwiKTtcbiAgICBjbGFzc2VzQXJyYXkuZm9yRWFjaCgoY2xhc3NuYW1lKSA9PiB3cmFwcGVyLmNsYXNzTGlzdC5hZGQoY2xhc3NuYW1lKSk7XG4gIH1cblxuICAvLyBzZXQgdXAgdGhlIHRvb2x0aXAgYm9keVxuICB0b29sdGlwQm9keS5jbGFzc0xpc3QuYWRkKFRPT0xUSVBfQk9EWV9DTEFTUyk7XG4gIHRvb2x0aXBCb2R5LnNldEF0dHJpYnV0ZShcImlkXCIsIHRvb2x0aXBJRCk7XG4gIHRvb2x0aXBCb2R5LnNldEF0dHJpYnV0ZShcInJvbGVcIiwgXCJ0b29sdGlwXCIpO1xuICB0b29sdGlwQm9keS5zZXRBdHRyaWJ1dGUoXCJhcmlhLWhpZGRlblwiLCBcInRydWVcIik7XG5cbiAgLy8gcGxhY2UgdGhlIHRleHQgaW4gdGhlIHRvb2x0aXBcbiAgdG9vbHRpcEJvZHkudGV4dENvbnRlbnQgPSB0b29sdGlwQ29udGVudDtcblxuICByZXR1cm4geyB0b29sdGlwQm9keSwgcG9zaXRpb24sIHRvb2x0aXBDb250ZW50LCB3cmFwcGVyIH07XG59O1xuXG4vKipcbiAqIEhpZGUgYWxsIGFjdGl2ZSB0b29sdGlwcyB3aGVuIGVzY2FwZSBrZXkgaXMgcHJlc3NlZC5cbiAqL1xuXG5jb25zdCBoYW5kbGVFc2NhcGUgPSAoKSA9PiB7XG4gIGNvbnN0IGFjdGl2ZVRvb2x0aXBzID0gc2VsZWN0T3JNYXRjaGVzKGAuJHtUT09MVElQX0JPRFlfQ0xBU1N9LiR7U0VUX0NMQVNTfWApO1xuXG4gIGlmICghYWN0aXZlVG9vbHRpcHMpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBhY3RpdmVUb29sdGlwcy5mb3JFYWNoKChhY3RpdmVUb29sdGlwKSA9PiBoaWRlVG9vbFRpcChhY3RpdmVUb29sdGlwKSk7XG59O1xuXG4vLyBTZXR1cCBvdXIgZnVuY3Rpb24gdG8gcnVuIG9uIHZhcmlvdXMgZXZlbnRzXG5jb25zdCB0b29sdGlwID0gYmVoYXZpb3IoXG4gIHtcbiAgICBcIm1vdXNlb3ZlciBmb2N1c2luXCI6IHtcbiAgICAgIFtUT09MVElQXShlKSB7XG4gICAgICAgIGNvbnN0IHRyaWdnZXIgPSBlLnRhcmdldDtcbiAgICAgICAgY29uc3QgZWxlbWVudFR5cGUgPSB0cmlnZ2VyLm5vZGVOYW1lO1xuXG4gICAgICAgIC8vIEluaXRpYWxpemUgdG9vbHRpcCBpZiBpdCBoYXNuJ3QgYWxyZWFkeVxuICAgICAgICBpZiAoZWxlbWVudFR5cGUgPT09IFwiQlVUVE9OXCIgJiYgdHJpZ2dlci5oYXNBdHRyaWJ1dGUoXCJ0aXRsZVwiKSkge1xuICAgICAgICAgIHNldFVwQXR0cmlidXRlcyh0cmlnZ2VyKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFtUT09MVElQX1RSSUdHRVJdKGUpIHtcbiAgICAgICAgY29uc3QgeyB0cmlnZ2VyLCBib2R5IH0gPSBnZXRUb29sdGlwRWxlbWVudHMoZS50YXJnZXQpO1xuXG4gICAgICAgIHNob3dUb29sVGlwKGJvZHksIHRyaWdnZXIsIHRyaWdnZXIuZGF0YXNldC5wb3NpdGlvbik7XG4gICAgICB9LFxuICAgIH0sXG4gICAgZm9jdXNvdXQ6IHtcbiAgICAgIFtUT09MVElQX1RSSUdHRVJdKGUpIHtcbiAgICAgICAgY29uc3QgeyBib2R5IH0gPSBnZXRUb29sdGlwRWxlbWVudHMoZS50YXJnZXQpO1xuXG4gICAgICAgIGhpZGVUb29sVGlwKGJvZHkpO1xuICAgICAgfSxcbiAgICB9LFxuICAgIGtleWRvd246IHtcbiAgICAgIFtCT0RZXToga2V5bWFwKHsgRXNjYXBlOiBoYW5kbGVFc2NhcGUgfSksXG4gICAgfSxcbiAgfSxcbiAge1xuICAgIGluaXQocm9vdCkge1xuICAgICAgc2VsZWN0T3JNYXRjaGVzKFRPT0xUSVAsIHJvb3QpLmZvckVhY2goKHRvb2x0aXBUcmlnZ2VyKSA9PiB7XG4gICAgICAgIHNldFVwQXR0cmlidXRlcyh0b29sdGlwVHJpZ2dlcik7XG5cbiAgICAgICAgY29uc3QgeyBib2R5LCB3cmFwcGVyIH0gPSBnZXRUb29sdGlwRWxlbWVudHModG9vbHRpcFRyaWdnZXIpO1xuICAgICAgICB3cmFwcGVyLmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZWxlYXZlXCIsICgpID0+IGhpZGVUb29sVGlwKGJvZHkpKTtcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgdGVhcmRvd24ocm9vdCkge1xuICAgICAgc2VsZWN0T3JNYXRjaGVzKFRPT0xUSVAsIHJvb3QpLmZvckVhY2goKHRvb2x0aXBXcmFwcGVyKSA9PiB7XG4gICAgICAgIHRvb2x0aXBXcmFwcGVyLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZWxlYXZlXCIsIGhpZGVUb29sVGlwKTtcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgc2V0dXA6IHNldFVwQXR0cmlidXRlcyxcbiAgICBnZXRUb29sdGlwRWxlbWVudHMsXG4gICAgc2hvdzogc2hvd1Rvb2xUaXAsXG4gICAgaGlkZTogaGlkZVRvb2xUaXAsXG4gIH0sXG4pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHRvb2x0aXA7XG4iLCJjb25zdCBiZWhhdmlvciA9IHJlcXVpcmUoXCIuLi8uLi91c3dkcy1jb3JlL3NyYy9qcy91dGlscy9iZWhhdmlvclwiKTtcbmNvbnN0IHZhbGlkYXRlID0gcmVxdWlyZShcIi4uLy4uL3Vzd2RzLWNvcmUvc3JjL2pzL3V0aWxzL3ZhbGlkYXRlLWlucHV0XCIpO1xuY29uc3QgeyBwcmVmaXg6IFBSRUZJWCB9ID0gcmVxdWlyZShcIi4uLy4uL3Vzd2RzLWNvcmUvc3JjL2pzL2NvbmZpZ1wiKTtcbmNvbnN0IHNlbGVjdE9yTWF0Y2hlcyA9IHJlcXVpcmUoXCIuLi8uLi91c3dkcy1jb3JlL3NyYy9qcy91dGlscy9zZWxlY3Qtb3ItbWF0Y2hlc1wiKTtcblxuY29uc3QgVkFMSURBVEVfSU5QVVQgPVxuICBcImlucHV0W2RhdGEtdmFsaWRhdGlvbi1lbGVtZW50XSx0ZXh0YXJlYVtkYXRhLXZhbGlkYXRpb24tZWxlbWVudF1cIjtcbmNvbnN0IENIRUNLTElTVF9JVEVNID0gYC4ke1BSRUZJWH0tY2hlY2tsaXN0X19pdGVtYDtcblxuLy8gVHJpZ2dlciB2YWxpZGF0aW9uIG9uIGlucHV0IGNoYW5nZVxuY29uc3QgaGFuZGxlQ2hhbmdlID0gKGVsKSA9PiB2YWxpZGF0ZShlbCk7XG5cbi8vIENyZWF0ZSBjb250YWluZXIgdG8gaG9sZCBhcmlhIHJlYWRvdXRcbmNvbnN0IGNyZWF0ZVN0YXR1c0VsZW1lbnQgPSAoaW5wdXQpID0+IHtcbiAgY29uc3QgdmFsaWRhdGlvbkNvbnRhaW5lciA9IGlucHV0LnBhcmVudE5vZGU7XG4gIGNvbnN0IGlucHV0SUQgPSBpbnB1dC5nZXRBdHRyaWJ1dGUoXCJpZFwiKTtcbiAgY29uc3Qgc3RhdHVzU3VtbWFyeUlEID0gYCR7aW5wdXRJRH0tc3Itc3VtbWFyeWA7XG4gIGlucHV0LnNldEF0dHJpYnV0ZShcImFyaWEtZGVzY3JpYmVkYnlcIiwgc3RhdHVzU3VtbWFyeUlEKTtcblxuICBjb25zdCBzdGF0dXNTdW1tYXJ5Q29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInNwYW5cIik7XG5cbiAgc3RhdHVzU3VtbWFyeUNvbnRhaW5lci5zZXRBdHRyaWJ1dGUoXCJkYXRhLXZhbGlkYXRpb24tc3RhdHVzXCIsIFwiXCIpO1xuICBzdGF0dXNTdW1tYXJ5Q29udGFpbmVyLmNsYXNzTGlzdC5hZGQoXCJ1c2Etc3Itb25seVwiKTtcbiAgc3RhdHVzU3VtbWFyeUNvbnRhaW5lci5zZXRBdHRyaWJ1dGUoXCJhcmlhLWxpdmVcIiwgXCJwb2xpdGVcIik7XG4gIHN0YXR1c1N1bW1hcnlDb250YWluZXIuc2V0QXR0cmlidXRlKFwiYXJpYS1hdG9taWNcIiwgdHJ1ZSk7XG4gIHN0YXR1c1N1bW1hcnlDb250YWluZXIuc2V0QXR0cmlidXRlKFwiaWRcIiwgc3RhdHVzU3VtbWFyeUlEKTtcbiAgdmFsaWRhdGlvbkNvbnRhaW5lci5hcHBlbmQoc3RhdHVzU3VtbWFyeUNvbnRhaW5lcik7XG59O1xuXG4vLyBTZXQgdXAgY2hlY2tsaXN0IGl0ZW1zIHdpdGggaW5pdGlhbCBhcmlhLWxhYmVsIChpbmNvbXBsZXRlKSB2YWx1ZXNcbmNvbnN0IGNyZWF0ZUluaXRpYWxTdGF0dXMgPSAoaW5wdXQpID0+IHtcbiAgY29uc3QgdmFsaWRhdGlvbkNvbnRhaW5lciA9IGlucHV0LnBhcmVudE5vZGU7XG4gIGNvbnN0IGNoZWNrbGlzdEl0ZW1zID0gdmFsaWRhdGlvbkNvbnRhaW5lci5xdWVyeVNlbGVjdG9yQWxsKENIRUNLTElTVF9JVEVNKTtcbiAgY29uc3QgdmFsaWRhdGlvbkVsZW1lbnQgPSBpbnB1dC5nZXRBdHRyaWJ1dGUoXCJkYXRhLXZhbGlkYXRpb24tZWxlbWVudFwiKTtcblxuICBpbnB1dC5zZXRBdHRyaWJ1dGUoXCJhcmlhLWNvbnRyb2xzXCIsIHZhbGlkYXRpb25FbGVtZW50KTtcblxuICBjaGVja2xpc3RJdGVtcy5mb3JFYWNoKChsaXN0SXRlbSkgPT4ge1xuICAgIGxldCBjdXJyZW50U3RhdHVzID0gXCJzdGF0dXMgaW5jb21wbGV0ZVwiO1xuICAgIGlmIChpbnB1dC5oYXNBdHRyaWJ1dGUoXCJkYXRhLXZhbGlkYXRpb24taW5jb21wbGV0ZVwiKSkge1xuICAgICAgY3VycmVudFN0YXR1cyA9IGlucHV0LmdldEF0dHJpYnV0ZShcImRhdGEtdmFsaWRhdGlvbi1pbmNvbXBsZXRlXCIpO1xuICAgIH1cbiAgICBjb25zdCBpdGVtU3RhdHVzID0gYCR7bGlzdEl0ZW0udGV4dENvbnRlbnR9ICR7Y3VycmVudFN0YXR1c30gYDtcbiAgICBsaXN0SXRlbS5zZXRBdHRyaWJ1dGUoXCJhcmlhLWxhYmVsXCIsIGl0ZW1TdGF0dXMpO1xuICB9KTtcbn07XG5cbmNvbnN0IGVuaGFuY2VWYWxpZGF0aW9uID0gKGlucHV0KSA9PiB7XG4gIGNyZWF0ZVN0YXR1c0VsZW1lbnQoaW5wdXQpO1xuICBjcmVhdGVJbml0aWFsU3RhdHVzKGlucHV0KTtcbn07XG5cbmNvbnN0IHZhbGlkYXRvciA9IGJlaGF2aW9yKFxuICB7XG4gICAgXCJpbnB1dCBjaGFuZ2VcIjoge1xuICAgICAgW1ZBTElEQVRFX0lOUFVUXShldmVudCkge1xuICAgICAgICBoYW5kbGVDaGFuZ2UoZXZlbnQudGFyZ2V0KTtcbiAgICAgIH0sXG4gICAgfSxcbiAgfSxcbiAge1xuICAgIGluaXQocm9vdCkge1xuICAgICAgc2VsZWN0T3JNYXRjaGVzKFZBTElEQVRFX0lOUFVULCByb290KS5mb3JFYWNoKChpbnB1dCkgPT5cbiAgICAgICAgZW5oYW5jZVZhbGlkYXRpb24oaW5wdXQpLFxuICAgICAgKTtcbiAgICB9LFxuICB9LFxuKTtcblxubW9kdWxlLmV4cG9ydHMgPSB2YWxpZGF0b3I7XG4iLCJtb2R1bGUuZXhwb3J0cyA9IHtcbiAgcHJlZml4OiBcInVzYVwiLFxufTtcbiIsIm1vZHVsZS5leHBvcnRzID0ge1xuICAvLyBUaGlzIHVzZWQgdG8gYmUgY29uZGl0aW9uYWxseSBkZXBlbmRlbnQgb24gd2hldGhlciB0aGVcbiAgLy8gYnJvd3NlciBzdXBwb3J0ZWQgdG91Y2ggZXZlbnRzOyBpZiBpdCBkaWQsIGBDTElDS2Agd2FzIHNldCB0b1xuICAvLyBgdG91Y2hzdGFydGAuICBIb3dldmVyLCB0aGlzIGhhZCBkb3duc2lkZXM6XG4gIC8vXG4gIC8vICogSXQgcHJlLWVtcHRlZCBtb2JpbGUgYnJvd3NlcnMnIGRlZmF1bHQgYmVoYXZpb3Igb2YgZGV0ZWN0aW5nXG4gIC8vICAgd2hldGhlciBhIHRvdWNoIHR1cm5lZCBpbnRvIGEgc2Nyb2xsLCB0aGVyZWJ5IHByZXZlbnRpbmdcbiAgLy8gICB1c2VycyBmcm9tIHVzaW5nIHNvbWUgb2Ygb3VyIGNvbXBvbmVudHMgYXMgc2Nyb2xsIHN1cmZhY2VzLlxuICAvL1xuICAvLyAqIFNvbWUgZGV2aWNlcywgc3VjaCBhcyB0aGUgTWljcm9zb2Z0IFN1cmZhY2UgUHJvLCBzdXBwb3J0ICpib3RoKlxuICAvLyAgIHRvdWNoIGFuZCBjbGlja3MuIFRoaXMgbWVhbnQgdGhlIGNvbmRpdGlvbmFsIGVmZmVjdGl2ZWx5IGRyb3BwZWRcbiAgLy8gICBzdXBwb3J0IGZvciB0aGUgdXNlcidzIG1vdXNlLCBmcnVzdHJhdGluZyB1c2VycyB3aG8gcHJlZmVycmVkXG4gIC8vICAgaXQgb24gdGhvc2Ugc3lzdGVtcy5cbiAgQ0xJQ0s6IFwiY2xpY2tcIixcbn07XG4iLCJjb25zdCBhY2NvcmRpb24gPSByZXF1aXJlKFwiLi4vLi4vLi4vdXNhLWFjY29yZGlvbi9zcmMvaW5kZXhcIik7XG5jb25zdCBiYW5uZXIgPSByZXF1aXJlKFwiLi4vLi4vLi4vdXNhLWJhbm5lci9zcmMvaW5kZXhcIik7XG5jb25zdCBidXR0b24gPSByZXF1aXJlKFwiLi4vLi4vLi4vdXNhLWJ1dHRvbi9zcmMvaW5kZXhcIik7XG5jb25zdCBjaGFyYWN0ZXJDb3VudCA9IHJlcXVpcmUoXCIuLi8uLi8uLi91c2EtY2hhcmFjdGVyLWNvdW50L3NyYy9pbmRleFwiKTtcbmNvbnN0IGNvbWJvQm94ID0gcmVxdWlyZShcIi4uLy4uLy4uL3VzYS1jb21iby1ib3gvc3JjL2luZGV4XCIpO1xuY29uc3QgZGF0ZVBpY2tlciA9IHJlcXVpcmUoXCIuLi8uLi8uLi91c2EtZGF0ZS1waWNrZXIvc3JjL2luZGV4XCIpO1xuY29uc3QgZGF0ZVJhbmdlUGlja2VyID0gcmVxdWlyZShcIi4uLy4uLy4uL3VzYS1kYXRlLXJhbmdlLXBpY2tlci9zcmMvaW5kZXhcIik7XG5jb25zdCBmaWxlSW5wdXQgPSByZXF1aXJlKFwiLi4vLi4vLi4vdXNhLWZpbGUtaW5wdXQvc3JjL2luZGV4XCIpO1xuY29uc3QgZm9vdGVyID0gcmVxdWlyZShcIi4uLy4uLy4uL3VzYS1mb290ZXIvc3JjL2luZGV4XCIpO1xuY29uc3QgaW5QYWdlTmF2aWdhdGlvbiA9IHJlcXVpcmUoXCIuLi8uLi8uLi91c2EtaW4tcGFnZS1uYXZpZ2F0aW9uL3NyYy9pbmRleFwiKTtcbmNvbnN0IGlucHV0TWFzayA9IHJlcXVpcmUoXCIuLi8uLi8uLi91c2EtaW5wdXQtbWFzay9zcmMvaW5kZXhcIik7XG5jb25zdCBsYW5ndWFnZVNlbGVjdG9yID0gcmVxdWlyZShcIi4uLy4uLy4uL3VzYS1sYW5ndWFnZS1zZWxlY3Rvci9zcmMvaW5kZXhcIik7XG5jb25zdCBtb2RhbCA9IHJlcXVpcmUoXCIuLi8uLi8uLi91c2EtbW9kYWwvc3JjL2luZGV4XCIpO1xuY29uc3QgbmF2aWdhdGlvbiA9IHJlcXVpcmUoXCIuLi8uLi8uLi91c2EtaGVhZGVyL3NyYy9pbmRleFwiKTtcbmNvbnN0IHBhc3N3b3JkID0gcmVxdWlyZShcIi4uLy4uLy4uL191c2EtcGFzc3dvcmQvc3JjL2luZGV4XCIpO1xuY29uc3QgcmFuZ2UgPSByZXF1aXJlKFwiLi4vLi4vLi4vdXNhLXJhbmdlL3NyYy9pbmRleFwiKTtcbmNvbnN0IHNlYXJjaCA9IHJlcXVpcmUoXCIuLi8uLi8uLi91c2Etc2VhcmNoL3NyYy9pbmRleFwiKTtcbmNvbnN0IHNraXBuYXYgPSByZXF1aXJlKFwiLi4vLi4vLi4vdXNhLXNraXBuYXYvc3JjL2luZGV4XCIpO1xuY29uc3QgdGFibGUgPSByZXF1aXJlKFwiLi4vLi4vLi4vdXNhLXRhYmxlL3NyYy9pbmRleFwiKTtcbmNvbnN0IHRpbWVQaWNrZXIgPSByZXF1aXJlKFwiLi4vLi4vLi4vdXNhLXRpbWUtcGlja2VyL3NyYy9pbmRleFwiKTtcbmNvbnN0IHRvb2x0aXAgPSByZXF1aXJlKFwiLi4vLi4vLi4vdXNhLXRvb2x0aXAvc3JjL2luZGV4XCIpO1xuY29uc3QgdmFsaWRhdG9yID0gcmVxdWlyZShcIi4uLy4uLy4uL3VzYS12YWxpZGF0aW9uL3NyYy9pbmRleFwiKTtcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIGFjY29yZGlvbixcbiAgYmFubmVyLFxuICBidXR0b24sXG4gIGNoYXJhY3RlckNvdW50LFxuICBjb21ib0JveCxcbiAgZGF0ZVBpY2tlcixcbiAgZGF0ZVJhbmdlUGlja2VyLFxuICBmaWxlSW5wdXQsXG4gIGZvb3RlcixcbiAgaW5QYWdlTmF2aWdhdGlvbixcbiAgaW5wdXRNYXNrLFxuICBsYW5ndWFnZVNlbGVjdG9yLFxuICBtb2RhbCxcbiAgbmF2aWdhdGlvbixcbiAgcGFzc3dvcmQsXG4gIHJhbmdlLFxuICBzZWFyY2gsXG4gIHNraXBuYXYsXG4gIHRhYmxlLFxuICB0aW1lUGlja2VyLFxuICB0b29sdGlwLFxuICB2YWxpZGF0b3IsXG59O1xuIiwid2luZG93LnVzd2RzUHJlc2VudCA9IHRydWU7IC8vIEdMT0JBTCB2YXJpYWJsZSB0byBpbmRpY2F0ZSB0aGF0IHRoZSB1c3dkcy5qcyBoYXMgbG9hZGVkIGluIHRoZSBET00uXG5cbmNvbnN0IHVzd2RzID0gcmVxdWlyZShcIi4vY29uZmlnXCIpO1xuXG5jb25zdCBjb21wb25lbnRzID0gcmVxdWlyZShcIi4vaW5kZXhcIik7XG5cbnVzd2RzLmNvbXBvbmVudHMgPSBjb21wb25lbnRzO1xuXG5jb25zdCBpbml0Q29tcG9uZW50cyA9ICgpID0+IHtcbiAgY29uc3QgdGFyZ2V0ID0gZG9jdW1lbnQuYm9keTtcbiAgT2JqZWN0LmtleXMoY29tcG9uZW50cykuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgY29uc3QgYmVoYXZpb3IgPSBjb21wb25lbnRzW2tleV07XG4gICAgYmVoYXZpb3Iub24odGFyZ2V0KTtcbiAgfSk7XG59O1xuXG5pZiAoZG9jdW1lbnQucmVhZHlTdGF0ZSA9PT0gXCJsb2FkaW5nXCIpIHtcbiAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcIkRPTUNvbnRlbnRMb2FkZWRcIiwgaW5pdENvbXBvbmVudHMsIHsgb25jZTogdHJ1ZSB9KTtcbn0gZWxzZSB7XG4gIGluaXRDb21wb25lbnRzKCk7XG59XG5cbmV4cG9ydHMuZGVmYXVsdCA9IHVzd2RzO1xuZXhwb3J0cy5pbml0Q29tcG9uZW50cyA9IGluaXRDb21wb25lbnRzO1xuIiwibW9kdWxlLmV4cG9ydHMgPSAoaHRtbERvY3VtZW50ID0gZG9jdW1lbnQpID0+IGh0bWxEb2N1bWVudC5hY3RpdmVFbGVtZW50O1xuIiwiY29uc3QgQmVoYXZpb3IgPSByZXF1aXJlKFwicmVjZXB0b3IvYmVoYXZpb3JcIik7XG5cbi8qKlxuICogQG5hbWUgc2VxdWVuY2VcbiAqIEBwYXJhbSB7Li4uRnVuY3Rpb259IHNlcSBhbiBhcnJheSBvZiBmdW5jdGlvbnNcbiAqIEByZXR1cm4geyBjbG9zdXJlIH0gY2FsbEhvb2tzXG4gKi9cbi8vIFdlIHVzZSBhIG5hbWVkIGZ1bmN0aW9uIGhlcmUgYmVjYXVzZSB3ZSB3YW50IGl0IHRvIGluaGVyaXQgaXRzIGxleGljYWwgc2NvcGVcbi8vIGZyb20gdGhlIGJlaGF2aW9yIHByb3BzIG9iamVjdCwgbm90IGZyb20gdGhlIG1vZHVsZVxuY29uc3Qgc2VxdWVuY2UgPSAoLi4uc2VxKSA9PlxuICBmdW5jdGlvbiBjYWxsSG9va3ModGFyZ2V0ID0gZG9jdW1lbnQuYm9keSkge1xuICAgIHNlcS5mb3JFYWNoKChtZXRob2QpID0+IHtcbiAgICAgIGlmICh0eXBlb2YgdGhpc1ttZXRob2RdID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgdGhpc1ttZXRob2RdLmNhbGwodGhpcywgdGFyZ2V0KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfTtcblxuLyoqXG4gKiBAbmFtZSBiZWhhdmlvclxuICogQHBhcmFtIHtvYmplY3R9IGV2ZW50c1xuICogQHBhcmFtIHtvYmplY3Q/fSBwcm9wc1xuICogQHJldHVybiB7cmVjZXB0b3IuYmVoYXZpb3J9XG4gKi9cbm1vZHVsZS5leHBvcnRzID0gKGV2ZW50cywgcHJvcHMpID0+XG4gIEJlaGF2aW9yKGV2ZW50cywge1xuICAgIG9uOiBzZXF1ZW5jZShcImluaXRcIiwgXCJhZGRcIiksXG4gICAgb2ZmOiBzZXF1ZW5jZShcInRlYXJkb3duXCIsIFwicmVtb3ZlXCIpLFxuICAgIC4uLnByb3BzLFxuICB9KTtcbiIsIi8qKlxuICogQ2FsbCBhIGZ1bmN0aW9uIGV2ZXJ5IFggYW1vdW50IG9mIG1pbGxpc2Vjb25kcy5cbiAqXG4gKiBAcGFyYW0gIHtGdW5jdGlvbn0gY2FsbGJhY2sgLSBBIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIGJlIGRlYm91bmNlZFxuICogQHBhcmFtICB7bnVtYmVyfSBkZWxheSAtIE1pbGxpc2Vjb25kcyB0byB3YWl0IGJlZm9yZSBjYWxsaW5nIGZ1bmN0aW9uXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IEEgZGVib3VuY2VkIGZ1bmN0aW9uXG4gKiBAZXhhbXBsZSBjb25zdCB1cGRhdGVTdGF0dXMgPSBkZWJvdW5jZSgoc3RyaW5nKSA9PiBjb25zb2xlLmxvZyhzdHJpbmcpLCAyMDAwKVxuICovXG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gZGVib3VuY2UoY2FsbGJhY2ssIGRlbGF5ID0gNTAwKSB7XG4gIGxldCB0aW1lciA9IG51bGw7XG4gIHJldHVybiAoLi4uYXJncykgPT4ge1xuICAgIHdpbmRvdy5jbGVhclRpbWVvdXQodGltZXIpO1xuICAgIHRpbWVyID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgY2FsbGJhY2suYXBwbHkodGhpcywgYXJncyk7XG4gICAgfSwgZGVsYXkpO1xuICB9O1xufTtcbiIsImNvbnN0IHsga2V5bWFwIH0gPSByZXF1aXJlKFwicmVjZXB0b3JcIik7XG5jb25zdCBiZWhhdmlvciA9IHJlcXVpcmUoXCIuL2JlaGF2aW9yXCIpO1xuY29uc3Qgc2VsZWN0ID0gcmVxdWlyZShcIi4vc2VsZWN0XCIpO1xuY29uc3QgYWN0aXZlRWxlbWVudCA9IHJlcXVpcmUoXCIuL2FjdGl2ZS1lbGVtZW50XCIpO1xuXG5jb25zdCBGT0NVU0FCTEUgPVxuICAnYVtocmVmXSwgYXJlYVtocmVmXSwgaW5wdXQ6bm90KFtkaXNhYmxlZF0pLCBzZWxlY3Q6bm90KFtkaXNhYmxlZF0pLCB0ZXh0YXJlYTpub3QoW2Rpc2FibGVkXSksIGJ1dHRvbjpub3QoW2Rpc2FibGVkXSksIGlmcmFtZSwgb2JqZWN0LCBlbWJlZCwgW3RhYmluZGV4PVwiMFwiXSwgW2NvbnRlbnRlZGl0YWJsZV0nO1xuXG5jb25zdCB0YWJIYW5kbGVyID0gKGNvbnRleHQpID0+IHtcbiAgY29uc3QgZm9jdXNhYmxlRWxlbWVudHMgPSBzZWxlY3QoRk9DVVNBQkxFLCBjb250ZXh0KTtcbiAgY29uc3QgZmlyc3RUYWJTdG9wID0gZm9jdXNhYmxlRWxlbWVudHNbMF07XG4gIGNvbnN0IGxhc3RUYWJTdG9wID0gZm9jdXNhYmxlRWxlbWVudHNbZm9jdXNhYmxlRWxlbWVudHMubGVuZ3RoIC0gMV07XG5cbiAgLy8gU3BlY2lhbCBydWxlcyBmb3Igd2hlbiB0aGUgdXNlciBpcyB0YWJiaW5nIGZvcndhcmQgZnJvbSB0aGUgbGFzdCBmb2N1c2FibGUgZWxlbWVudCxcbiAgLy8gb3Igd2hlbiB0YWJiaW5nIGJhY2t3YXJkcyBmcm9tIHRoZSBmaXJzdCBmb2N1c2FibGUgZWxlbWVudFxuICBmdW5jdGlvbiB0YWJBaGVhZChldmVudCkge1xuICAgIGlmIChhY3RpdmVFbGVtZW50KCkgPT09IGxhc3RUYWJTdG9wKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZmlyc3RUYWJTdG9wLmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gdGFiQmFjayhldmVudCkge1xuICAgIGlmIChhY3RpdmVFbGVtZW50KCkgPT09IGZpcnN0VGFiU3RvcCkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGxhc3RUYWJTdG9wLmZvY3VzKCk7XG4gICAgfVxuICAgIC8vIFRoaXMgY2hlY2tzIGlmIHlvdSB3YW50IHRvIHNldCB0aGUgaW5pdGlhbCBmb2N1cyB0byBhIGNvbnRhaW5lclxuICAgIC8vIGluc3RlYWQgb2YgYW4gZWxlbWVudCB3aXRoaW4sIGFuZCB0aGUgdXNlciB0YWJzIGJhY2suXG4gICAgLy8gVGhlbiB3ZSBzZXQgdGhlIGZvY3VzIHRvIHRoZSBmaXJzdFxuICAgIGVsc2UgaWYgKCFmb2N1c2FibGVFbGVtZW50cy5pbmNsdWRlcyhhY3RpdmVFbGVtZW50KCkpKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZmlyc3RUYWJTdG9wLmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBmaXJzdFRhYlN0b3AsXG4gICAgbGFzdFRhYlN0b3AsXG4gICAgdGFiQWhlYWQsXG4gICAgdGFiQmFjayxcbiAgfTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gKGNvbnRleHQsIGFkZGl0aW9uYWxLZXlCaW5kaW5ncyA9IHt9KSA9PiB7XG4gIGNvbnN0IHRhYkV2ZW50SGFuZGxlciA9IHRhYkhhbmRsZXIoY29udGV4dCk7XG4gIGNvbnN0IGJpbmRpbmdzID0gYWRkaXRpb25hbEtleUJpbmRpbmdzO1xuICBjb25zdCB7IEVzYywgRXNjYXBlIH0gPSBiaW5kaW5ncztcblxuICBpZiAoRXNjYXBlICYmICFFc2MpIGJpbmRpbmdzLkVzYyA9IEVzY2FwZTtcblxuICAvLyAgVE9ETzogSW4gdGhlIGZ1dHVyZSwgbG9vcCBvdmVyIGFkZGl0aW9uYWwga2V5YmluZGluZ3MgYW5kIHBhc3MgYW4gYXJyYXlcbiAgLy8gb2YgZnVuY3Rpb25zLCBpZiBuZWNlc3NhcnksIHRvIHRoZSBtYXAga2V5cy4gVGhlbiBwZW9wbGUgaW1wbGVtZW50aW5nXG4gIC8vIHRoZSBmb2N1cyB0cmFwIGNvdWxkIHBhc3MgY2FsbGJhY2tzIHRvIGZpcmUgd2hlbiB0YWJiaW5nXG4gIGNvbnN0IGtleU1hcHBpbmdzID0ga2V5bWFwKHtcbiAgICBUYWI6IHRhYkV2ZW50SGFuZGxlci50YWJBaGVhZCxcbiAgICBcIlNoaWZ0K1RhYlwiOiB0YWJFdmVudEhhbmRsZXIudGFiQmFjayxcbiAgICAuLi5hZGRpdGlvbmFsS2V5QmluZGluZ3MsXG4gIH0pO1xuXG4gIGNvbnN0IGZvY3VzVHJhcCA9IGJlaGF2aW9yKFxuICAgIHtcbiAgICAgIGtleWRvd246IGtleU1hcHBpbmdzLFxuICAgIH0sXG4gICAge1xuICAgICAgaW5pdCgpIHtcbiAgICAgICAgLy8gVE9ETzogaXMgdGhpcyBkZXNpcmVhYmxlIGJlaGF2aW9yPyBTaG91bGQgdGhlIHRyYXAgYWx3YXlzIGRvIHRoaXMgYnkgZGVmYXVsdCBvciBzaG91bGRcbiAgICAgICAgLy8gdGhlIGNvbXBvbmVudCBnZXR0aW5nIGRlY29yYXRlZCBoYW5kbGUgdGhpcz9cbiAgICAgICAgaWYgKHRhYkV2ZW50SGFuZGxlci5maXJzdFRhYlN0b3ApIHtcbiAgICAgICAgICB0YWJFdmVudEhhbmRsZXIuZmlyc3RUYWJTdG9wLmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB1cGRhdGUoaXNBY3RpdmUpIHtcbiAgICAgICAgaWYgKGlzQWN0aXZlKSB7XG4gICAgICAgICAgdGhpcy5vbigpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMub2ZmKCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfSxcbiAgKTtcblxuICByZXR1cm4gZm9jdXNUcmFwO1xufTtcbiIsIi8vIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vYS83NTU3NDMzXG5mdW5jdGlvbiBpc0VsZW1lbnRJblZpZXdwb3J0KFxuICBlbCxcbiAgd2luID0gd2luZG93LFxuICBkb2NFbCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxcbikge1xuICBjb25zdCByZWN0ID0gZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgcmV0dXJuIChcbiAgICByZWN0LnRvcCA+PSAwICYmXG4gICAgcmVjdC5sZWZ0ID49IDAgJiZcbiAgICByZWN0LmJvdHRvbSA8PSAod2luLmlubmVySGVpZ2h0IHx8IGRvY0VsLmNsaWVudEhlaWdodCkgJiZcbiAgICByZWN0LnJpZ2h0IDw9ICh3aW4uaW5uZXJXaWR0aCB8fCBkb2NFbC5jbGllbnRXaWR0aClcbiAgKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpc0VsZW1lbnRJblZpZXdwb3J0O1xuIiwiLy8gaU9TIGRldGVjdGlvbiBmcm9tOiBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vYS85MDM5ODg1LzE3NzcxMFxuZnVuY3Rpb24gaXNJb3NEZXZpY2UoKSB7XG4gIHJldHVybiAoXG4gICAgdHlwZW9mIG5hdmlnYXRvciAhPT0gXCJ1bmRlZmluZWRcIiAmJlxuICAgIChuYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKC8oaVBvZHxpUGhvbmV8aVBhZCkvZykgfHxcbiAgICAgIChuYXZpZ2F0b3IucGxhdGZvcm0gPT09IFwiTWFjSW50ZWxcIiAmJiBuYXZpZ2F0b3IubWF4VG91Y2hQb2ludHMgPiAxKSkgJiZcbiAgICAhd2luZG93Lk1TU3RyZWFtXG4gICk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaXNJb3NEZXZpY2U7XG4iLCIvKiBlc2xpbnQtZGlzYWJsZSAqL1xuLyogZ2xvYmFscyBkZWZpbmUsIG1vZHVsZSAqL1xuXG4vKipcbiAqIEEgc2ltcGxlIGxpYnJhcnkgdG8gaGVscCB5b3UgZXNjYXBlIEhUTUwgdXNpbmcgdGVtcGxhdGUgc3RyaW5ncy5cbiAqXG4gKiBJdCdzIHRoZSBjb3VudGVycGFydCB0byBvdXIgZXNsaW50IFwibm8tdW5zYWZlLWlubmVyaHRtbFwiIHBsdWdpbiB0aGF0IGhlbHBzIHVzXG4gKiBhdm9pZCB1bnNhZmUgY29kaW5nIHByYWN0aWNlcy5cbiAqIEEgZnVsbCB3cml0ZS11cCBvZiB0aGUgSG93cyBhbmQgV2h5cyBhcmUgZG9jdW1lbnRlZFxuICogZm9yIGRldmVsb3BlcnMgYXRcbiAqICBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9GaXJlZm94X09TL1NlY3VyaXR5L1NlY3VyaXR5X0F1dG9tYXRpb25cbiAqIHdpdGggYWRkaXRpb25hbCBiYWNrZ3JvdW5kIGluZm9ybWF0aW9uIGFuZCBkZXNpZ24gZG9jcyBhdFxuICogIGh0dHBzOi8vd2lraS5tb3ppbGxhLm9yZy9Vc2VyOkZicmF1bi9HYWlhL1NhZmVpbm5lckhUTUxSb2FkbWFwXG4gKlxuICovXG5cbiEoZnVuY3Rpb24gKGZhY3RvcnkpIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSBmYWN0b3J5KCk7XG59KShmdW5jdGlvbiAoKSB7XG4gIFwidXNlIHN0cmljdFwiO1xuXG4gIHZhciBTYW5pdGl6ZXIgPSB7XG4gICAgX2VudGl0eTogL1smPD5cIicvXS9nLFxuXG4gICAgX2VudGl0aWVzOiB7XG4gICAgICBcIiZcIjogXCImYW1wO1wiLFxuICAgICAgXCI8XCI6IFwiJmx0O1wiLFxuICAgICAgXCI+XCI6IFwiJmd0O1wiLFxuICAgICAgJ1wiJzogXCImcXVvdDtcIixcbiAgICAgIFwiJ1wiOiBcIiZhcG9zO1wiLFxuICAgICAgXCIvXCI6IFwiJiN4MkY7XCIsXG4gICAgfSxcblxuICAgIGdldEVudGl0eTogZnVuY3Rpb24gKHMpIHtcbiAgICAgIHJldHVybiBTYW5pdGl6ZXIuX2VudGl0aWVzW3NdO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBFc2NhcGVzIEhUTUwgZm9yIGFsbCB2YWx1ZXMgaW4gYSB0YWdnZWQgdGVtcGxhdGUgc3RyaW5nLlxuICAgICAqL1xuICAgIGVzY2FwZUhUTUw6IGZ1bmN0aW9uIChzdHJpbmdzKSB7XG4gICAgICB2YXIgcmVzdWx0ID0gXCJcIjtcblxuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdHJpbmdzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHJlc3VsdCArPSBzdHJpbmdzW2ldO1xuICAgICAgICBpZiAoaSArIDEgPCBhcmd1bWVudHMubGVuZ3RoKSB7XG4gICAgICAgICAgdmFyIHZhbHVlID0gYXJndW1lbnRzW2kgKyAxXSB8fCBcIlwiO1xuICAgICAgICAgIHJlc3VsdCArPSBTdHJpbmcodmFsdWUpLnJlcGxhY2UoXG4gICAgICAgICAgICBTYW5pdGl6ZXIuX2VudGl0eSxcbiAgICAgICAgICAgIFNhbml0aXplci5nZXRFbnRpdHksXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0sXG4gICAgLyoqXG4gICAgICogRXNjYXBlcyBIVE1MIGFuZCByZXR1cm5zIGEgd3JhcHBlZCBvYmplY3QgdG8gYmUgdXNlZCBkdXJpbmcgRE9NIGluc2VydGlvblxuICAgICAqL1xuICAgIGNyZWF0ZVNhZmVIVE1MOiBmdW5jdGlvbiAoc3RyaW5ncykge1xuICAgICAgdmFyIF9sZW4gPSBhcmd1bWVudHMubGVuZ3RoO1xuICAgICAgdmFyIHZhbHVlcyA9IG5ldyBBcnJheShfbGVuID4gMSA/IF9sZW4gLSAxIDogMCk7XG4gICAgICBmb3IgKHZhciBfa2V5ID0gMTsgX2tleSA8IF9sZW47IF9rZXkrKykge1xuICAgICAgICB2YWx1ZXNbX2tleSAtIDFdID0gYXJndW1lbnRzW19rZXldO1xuICAgICAgfVxuXG4gICAgICB2YXIgZXNjYXBlZCA9IFNhbml0aXplci5lc2NhcGVIVE1MLmFwcGx5KFxuICAgICAgICBTYW5pdGl6ZXIsXG4gICAgICAgIFtzdHJpbmdzXS5jb25jYXQodmFsdWVzKSxcbiAgICAgICk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBfX2h0bWw6IGVzY2FwZWQsXG4gICAgICAgIHRvU3RyaW5nOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcmV0dXJuIFwiW29iamVjdCBXcmFwcGVkSFRNTE9iamVjdF1cIjtcbiAgICAgICAgfSxcbiAgICAgICAgaW5mbzpcbiAgICAgICAgICBcIlRoaXMgaXMgYSB3cmFwcGVkIEhUTUwgb2JqZWN0LiBTZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vclwiICtcbiAgICAgICAgICBcImcvZW4tVVMvRmlyZWZveF9PUy9TZWN1cml0eS9TZWN1cml0eV9BdXRvbWF0aW9uIGZvciBtb3JlLlwiLFxuICAgICAgfTtcbiAgICB9LFxuICAgIC8qKlxuICAgICAqIFVud3JhcCBzYWZlIEhUTUwgY3JlYXRlZCBieSBjcmVhdGVTYWZlSFRNTCBvciBhIGN1c3RvbSByZXBsYWNlbWVudCB0aGF0XG4gICAgICogdW5kZXJ3ZW50IHNlY3VyaXR5IHJldmlldy5cbiAgICAgKi9cbiAgICB1bndyYXBTYWZlSFRNTDogZnVuY3Rpb24gKCkge1xuICAgICAgdmFyIF9sZW4gPSBhcmd1bWVudHMubGVuZ3RoO1xuICAgICAgdmFyIGh0bWxPYmplY3RzID0gbmV3IEFycmF5KF9sZW4pO1xuICAgICAgZm9yICh2YXIgX2tleSA9IDA7IF9rZXkgPCBfbGVuOyBfa2V5KyspIHtcbiAgICAgICAgaHRtbE9iamVjdHNbX2tleV0gPSBhcmd1bWVudHNbX2tleV07XG4gICAgICB9XG5cbiAgICAgIHZhciBtYXJrdXBMaXN0ID0gaHRtbE9iamVjdHMubWFwKGZ1bmN0aW9uIChvYmopIHtcbiAgICAgICAgcmV0dXJuIG9iai5fX2h0bWw7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBtYXJrdXBMaXN0LmpvaW4oXCJcIik7XG4gICAgfSxcbiAgfTtcblxuICByZXR1cm4gU2FuaXRpemVyO1xufSk7XG4iLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGdldFNjcm9sbGJhcldpZHRoKCkge1xuICAvLyBDcmVhdGluZyBpbnZpc2libGUgY29udGFpbmVyXG4gIGNvbnN0IG91dGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcbiAgb3V0ZXIuc3R5bGUudmlzaWJpbGl0eSA9IFwiaGlkZGVuXCI7XG4gIG91dGVyLnN0eWxlLm92ZXJmbG93ID0gXCJzY3JvbGxcIjsgLy8gZm9yY2luZyBzY3JvbGxiYXIgdG8gYXBwZWFyXG4gIG91dGVyLnN0eWxlLm1zT3ZlcmZsb3dTdHlsZSA9IFwic2Nyb2xsYmFyXCI7IC8vIG5lZWRlZCBmb3IgV2luSlMgYXBwc1xuICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKG91dGVyKTtcblxuICAvLyBDcmVhdGluZyBpbm5lciBlbGVtZW50IGFuZCBwbGFjaW5nIGl0IGluIHRoZSBjb250YWluZXJcbiAgY29uc3QgaW5uZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xuICBvdXRlci5hcHBlbmRDaGlsZChpbm5lcik7XG5cbiAgLy8gQ2FsY3VsYXRpbmcgZGlmZmVyZW5jZSBiZXR3ZWVuIGNvbnRhaW5lcidzIGZ1bGwgd2lkdGggYW5kIHRoZSBjaGlsZCB3aWR0aFxuICBjb25zdCBzY3JvbGxiYXJXaWR0aCA9IGAke291dGVyLm9mZnNldFdpZHRoIC0gaW5uZXIub2Zmc2V0V2lkdGh9cHhgO1xuXG4gIC8vIFJlbW92aW5nIHRlbXBvcmFyeSBlbGVtZW50cyBmcm9tIHRoZSBET01cbiAgb3V0ZXIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChvdXRlcik7XG5cbiAgcmV0dXJuIHNjcm9sbGJhcldpZHRoO1xufTtcbiIsImNvbnN0IHNlbGVjdCA9IHJlcXVpcmUoXCIuL3NlbGVjdFwiKTtcbi8qKlxuICogQG5hbWUgaXNFbGVtZW50XG4gKiBAZGVzYyByZXR1cm5zIHdoZXRoZXIgb3Igbm90IHRoZSBnaXZlbiBhcmd1bWVudCBpcyBhIERPTSBlbGVtZW50LlxuICogQHBhcmFtIHthbnl9IHZhbHVlXG4gKiBAcmV0dXJuIHtib29sZWFufVxuICovXG5jb25zdCBpc0VsZW1lbnQgPSAodmFsdWUpID0+XG4gIHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIiAmJiB2YWx1ZS5ub2RlVHlwZSA9PT0gMTtcblxuLyoqXG4gKiBAbmFtZSBzZWxlY3RPck1hdGNoZXNcbiAqIEBkZXNjIHNlbGVjdHMgZWxlbWVudHMgZnJvbSB0aGUgRE9NIGJ5IGNsYXNzIHNlbGVjdG9yIG9yIElEIHNlbGVjdG9yLlxuICogQHBhcmFtIHtzdHJpbmd9IHNlbGVjdG9yIC0gVGhlIHNlbGVjdG9yIHRvIHRyYXZlcnNlIHRoZSBET00gd2l0aC5cbiAqIEBwYXJhbSB7RG9jdW1lbnR8SFRNTEVsZW1lbnQ/fSBjb250ZXh0IC0gVGhlIGNvbnRleHQgdG8gdHJhdmVyc2UgdGhlIERPTVxuICogICBpbi4gSWYgbm90IHByb3ZpZGVkLCBpdCBkZWZhdWx0cyB0byB0aGUgZG9jdW1lbnQuXG4gKiBAcmV0dXJuIHtIVE1MRWxlbWVudFtdfSAtIEFuIGFycmF5IG9mIERPTSBub2RlcyBvciBhbiBlbXB0eSBhcnJheS5cbiAqL1xubW9kdWxlLmV4cG9ydHMgPSAoc2VsZWN0b3IsIGNvbnRleHQpID0+IHtcbiAgY29uc3Qgc2VsZWN0aW9uID0gc2VsZWN0KHNlbGVjdG9yLCBjb250ZXh0KTtcbiAgaWYgKHR5cGVvZiBzZWxlY3RvciAhPT0gXCJzdHJpbmdcIikge1xuICAgIHJldHVybiBzZWxlY3Rpb247XG4gIH1cblxuICBpZiAoaXNFbGVtZW50KGNvbnRleHQpICYmIGNvbnRleHQubWF0Y2hlcyhzZWxlY3RvcikpIHtcbiAgICBzZWxlY3Rpb24ucHVzaChjb250ZXh0KTtcbiAgfVxuXG4gIHJldHVybiBzZWxlY3Rpb247XG59O1xuIiwiLyoqXG4gKiBAbmFtZSBpc0VsZW1lbnRcbiAqIEBkZXNjIHJldHVybnMgd2hldGhlciBvciBub3QgdGhlIGdpdmVuIGFyZ3VtZW50IGlzIGEgRE9NIGVsZW1lbnQuXG4gKiBAcGFyYW0ge2FueX0gdmFsdWVcbiAqIEByZXR1cm4ge2Jvb2xlYW59XG4gKi9cbmNvbnN0IGlzRWxlbWVudCA9ICh2YWx1ZSkgPT5cbiAgdmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiICYmIHZhbHVlLm5vZGVUeXBlID09PSAxO1xuXG4vKipcbiAqIEBuYW1lIHNlbGVjdFxuICogQGRlc2Mgc2VsZWN0cyBlbGVtZW50cyBmcm9tIHRoZSBET00gYnkgY2xhc3Mgc2VsZWN0b3Igb3IgSUQgc2VsZWN0b3IuXG4gKiBAcGFyYW0ge3N0cmluZ30gc2VsZWN0b3IgLSBUaGUgc2VsZWN0b3IgdG8gdHJhdmVyc2UgdGhlIERPTSB3aXRoLlxuICogQHBhcmFtIHtEb2N1bWVudHxIVE1MRWxlbWVudD99IGNvbnRleHQgLSBUaGUgY29udGV4dCB0byB0cmF2ZXJzZSB0aGUgRE9NXG4gKiAgIGluLiBJZiBub3QgcHJvdmlkZWQsIGl0IGRlZmF1bHRzIHRvIHRoZSBkb2N1bWVudC5cbiAqIEByZXR1cm4ge0hUTUxFbGVtZW50W119IC0gQW4gYXJyYXkgb2YgRE9NIG5vZGVzIG9yIGFuIGVtcHR5IGFycmF5LlxuICovXG5tb2R1bGUuZXhwb3J0cyA9IChzZWxlY3RvciwgY29udGV4dCkgPT4ge1xuICBpZiAodHlwZW9mIHNlbGVjdG9yICE9PSBcInN0cmluZ1wiKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgaWYgKCFjb250ZXh0IHx8ICFpc0VsZW1lbnQoY29udGV4dCkpIHtcbiAgICBjb250ZXh0ID0gd2luZG93LmRvY3VtZW50OyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gIH1cblxuICBjb25zdCBzZWxlY3Rpb24gPSBjb250ZXh0LnF1ZXJ5U2VsZWN0b3JBbGwoc2VsZWN0b3IpO1xuICByZXR1cm4gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoc2VsZWN0aW9uKTtcbn07XG4iLCIvKipcbiAqIEZsaXBzIGdpdmVuIElOUFVUIGVsZW1lbnRzIGJldHdlZW4gbWFza2VkIChoaWRpbmcgdGhlIGZpZWxkIHZhbHVlKSBhbmQgdW5tYXNrZWRcbiAqIEBwYXJhbSB7QXJyYXkuSFRNTEVsZW1lbnR9IGZpZWxkcyAtIEFuIGFycmF5IG9mIElOUFVUIGVsZW1lbnRzXG4gKiBAcGFyYW0ge0Jvb2xlYW59IG1hc2sgLSBXaGV0aGVyIHRoZSBtYXNrIHNob3VsZCBiZSBhcHBsaWVkLCBoaWRpbmcgdGhlIGZpZWxkIHZhbHVlXG4gKi9cbm1vZHVsZS5leHBvcnRzID0gKGZpZWxkLCBtYXNrKSA9PiB7XG4gIGZpZWxkLnNldEF0dHJpYnV0ZShcImF1dG9jYXBpdGFsaXplXCIsIFwib2ZmXCIpO1xuICBmaWVsZC5zZXRBdHRyaWJ1dGUoXCJhdXRvY29ycmVjdFwiLCBcIm9mZlwiKTtcbiAgZmllbGQuc2V0QXR0cmlidXRlKFwidHlwZVwiLCBtYXNrID8gXCJwYXNzd29yZFwiIDogXCJ0ZXh0XCIpO1xufTtcbiIsImNvbnN0IHJlc29sdmVJZFJlZnMgPSByZXF1aXJlKFwicmVzb2x2ZS1pZC1yZWZzXCIpO1xuY29uc3QgdG9nZ2xlRmllbGRNYXNrID0gcmVxdWlyZShcIi4vdG9nZ2xlLWZpZWxkLW1hc2tcIik7XG5cbmNvbnN0IENPTlRST0xTID0gXCJhcmlhLWNvbnRyb2xzXCI7XG5jb25zdCBQUkVTU0VEID0gXCJhcmlhLXByZXNzZWRcIjtcbmNvbnN0IFNIT1dfQVRUUiA9IFwiZGF0YS1zaG93LXRleHRcIjtcbmNvbnN0IEhJREVfQVRUUiA9IFwiZGF0YS1oaWRlLXRleHRcIjtcblxuLyoqXG4gKiBSZXBsYWNlIHRoZSB3b3JkIFwiU2hvd1wiIChvciBcInNob3dcIikgd2l0aCBcIkhpZGVcIiAob3IgXCJoaWRlXCIpIGluIGEgc3RyaW5nLlxuICogQHBhcmFtIHtzdHJpbmd9IHNob3dUZXh0XG4gKiBAcmV0dXJuIHtzdHJvbmd9IGhpZGVUZXh0XG4gKi9cbmNvbnN0IGdldEhpZGVUZXh0ID0gKHNob3dUZXh0KSA9PlxuICBzaG93VGV4dC5yZXBsYWNlKC9cXGJTaG93XFxiL2ksIChzaG93KSA9PiBgJHtzaG93WzBdID09PSBcIlNcIiA/IFwiSFwiIDogXCJoXCJ9aWRlYCk7XG5cbi8qKlxuICogQ29tcG9uZW50IHRoYXQgZGVjb3JhdGVzIGFuIEhUTUwgZWxlbWVudCB3aXRoIHRoZSBhYmlsaXR5IHRvIHRvZ2dsZSB0aGVcbiAqIG1hc2tlZCBzdGF0ZSBvZiBhbiBpbnB1dCBmaWVsZCAobGlrZSBhIHBhc3N3b3JkKSB3aGVuIGNsaWNrZWQuXG4gKiBUaGUgaWRzIG9mIHRoZSBmaWVsZHMgdG8gYmUgbWFza2VkIHdpbGwgYmUgcHVsbGVkIGRpcmVjdGx5IGZyb20gdGhlIGJ1dHRvbidzXG4gKiBgYXJpYS1jb250cm9sc2AgYXR0cmlidXRlLlxuICpcbiAqIEBwYXJhbSAge0hUTUxFbGVtZW50fSBlbCAgICBQYXJlbnQgZWxlbWVudCBjb250YWluaW5nIHRoZSBmaWVsZHMgdG8gYmUgbWFza2VkXG4gKiBAcmV0dXJuIHtib29sZWFufVxuICovXG5tb2R1bGUuZXhwb3J0cyA9IChlbCkgPT4ge1xuICAvLyB0aGlzIGlzIHRoZSAqdGFyZ2V0KiBzdGF0ZTpcbiAgLy8gKiBpZiB0aGUgZWxlbWVudCBoYXMgdGhlIGF0dHIgYW5kIGl0J3MgIT09IFwidHJ1ZVwiLCBwcmVzc2VkIGlzIHRydWVcbiAgLy8gKiBvdGhlcndpc2UsIHByZXNzZWQgaXMgZmFsc2VcbiAgY29uc3QgcHJlc3NlZCA9XG4gICAgZWwuaGFzQXR0cmlidXRlKFBSRVNTRUQpICYmIGVsLmdldEF0dHJpYnV0ZShQUkVTU0VEKSAhPT0gXCJ0cnVlXCI7XG5cbiAgY29uc3QgZmllbGRzID0gcmVzb2x2ZUlkUmVmcyhlbC5nZXRBdHRyaWJ1dGUoQ09OVFJPTFMpKTtcbiAgZmllbGRzLmZvckVhY2goKGZpZWxkKSA9PiB0b2dnbGVGaWVsZE1hc2soZmllbGQsIHByZXNzZWQpKTtcblxuICBpZiAoIWVsLmhhc0F0dHJpYnV0ZShTSE9XX0FUVFIpKSB7XG4gICAgZWwuc2V0QXR0cmlidXRlKFNIT1dfQVRUUiwgZWwudGV4dENvbnRlbnQpO1xuICB9XG5cbiAgY29uc3Qgc2hvd1RleHQgPSBlbC5nZXRBdHRyaWJ1dGUoU0hPV19BVFRSKTtcbiAgY29uc3QgaGlkZVRleHQgPSBlbC5nZXRBdHRyaWJ1dGUoSElERV9BVFRSKSB8fCBnZXRIaWRlVGV4dChzaG93VGV4dCk7XG5cbiAgZWwudGV4dENvbnRlbnQgPSBwcmVzc2VkID8gc2hvd1RleHQgOiBoaWRlVGV4dDsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICBlbC5zZXRBdHRyaWJ1dGUoUFJFU1NFRCwgcHJlc3NlZCk7XG4gIHJldHVybiBwcmVzc2VkO1xufTtcbiIsImNvbnN0IEVYUEFOREVEID0gXCJhcmlhLWV4cGFuZGVkXCI7XG5jb25zdCBDT05UUk9MUyA9IFwiYXJpYS1jb250cm9sc1wiO1xuY29uc3QgSElEREVOID0gXCJoaWRkZW5cIjtcblxubW9kdWxlLmV4cG9ydHMgPSAoYnV0dG9uLCBleHBhbmRlZCkgPT4ge1xuICBsZXQgc2FmZUV4cGFuZGVkID0gZXhwYW5kZWQ7XG5cbiAgaWYgKHR5cGVvZiBzYWZlRXhwYW5kZWQgIT09IFwiYm9vbGVhblwiKSB7XG4gICAgc2FmZUV4cGFuZGVkID0gYnV0dG9uLmdldEF0dHJpYnV0ZShFWFBBTkRFRCkgPT09IFwiZmFsc2VcIjtcbiAgfVxuXG4gIGJ1dHRvbi5zZXRBdHRyaWJ1dGUoRVhQQU5ERUQsIHNhZmVFeHBhbmRlZCk7XG5cbiAgY29uc3QgaWQgPSBidXR0b24uZ2V0QXR0cmlidXRlKENPTlRST0xTKTtcbiAgY29uc3QgY29udHJvbHMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7XG4gIGlmICghY29udHJvbHMpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIHRvZ2dsZSB0YXJnZXQgZm91bmQgd2l0aCBpZDogXCIke2lkfVwiYCk7XG4gIH1cblxuICBpZiAoc2FmZUV4cGFuZGVkKSB7XG4gICAgY29udHJvbHMucmVtb3ZlQXR0cmlidXRlKEhJRERFTik7XG4gIH0gZWxzZSB7XG4gICAgY29udHJvbHMuc2V0QXR0cmlidXRlKEhJRERFTiwgXCJcIik7XG4gIH1cblxuICByZXR1cm4gc2FmZUV4cGFuZGVkO1xufTtcbiIsImNvbnN0IGRlYm91bmNlID0gcmVxdWlyZShcIi4vZGVib3VuY2VcIik7XG5jb25zdCB7IHByZWZpeDogUFJFRklYIH0gPSByZXF1aXJlKFwiLi4vY29uZmlnXCIpO1xuXG5jb25zdCBDSEVDS0VEX0NMQVNTID0gYCR7UFJFRklYfS1jaGVja2xpc3RfX2l0ZW0tLWNoZWNrZWRgO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIHZhbGlkYXRlKGVsKSB7XG4gIGNvbnN0IGlkID0gZWwuZGF0YXNldC52YWxpZGF0aW9uRWxlbWVudDtcbiAgY29uc3QgY2hlY2tMaXN0ID1cbiAgICBpZC5jaGFyQXQoMCkgPT09IFwiI1wiXG4gICAgICA/IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoaWQpXG4gICAgICA6IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTtcblxuICBpZiAoIWNoZWNrTGlzdCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgTm8gdmFsaWRhdGlvbiBlbGVtZW50IGZvdW5kIHdpdGggaWQ6IFwiJHtpZH1cImApO1xuICB9XG5cbiAgbGV0IHN0YXR1c1N1bW1hcnkgPSBcIlwiO1xuICBPYmplY3QuZW50cmllcyhlbC5kYXRhc2V0KS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICBpZiAoa2V5LnN0YXJ0c1dpdGgoXCJ2YWxpZGF0ZVwiKSkge1xuICAgICAgY29uc3QgdmFsaWRhdG9yTmFtZSA9IGtleS5zdWJzdHIoXCJ2YWxpZGF0ZVwiLmxlbmd0aCkudG9Mb3dlckNhc2UoKTtcbiAgICAgIGNvbnN0IHZhbGlkYXRvclBhdHRlcm4gPSBuZXcgUmVnRXhwKHZhbHVlKTtcbiAgICAgIGNvbnN0IHZhbGlkYXRvclNlbGVjdG9yID0gYFtkYXRhLXZhbGlkYXRvcj1cIiR7dmFsaWRhdG9yTmFtZX1cIl1gO1xuICAgICAgY29uc3QgdmFsaWRhdG9yQ2hlY2tib3ggPSBjaGVja0xpc3QucXVlcnlTZWxlY3Rvcih2YWxpZGF0b3JTZWxlY3Rvcik7XG4gICAgICBjb25zdCB2YWxpZGF0b3JQYXJlbnQgPSBlbC5wYXJlbnROb2RlO1xuICAgICAgY29uc3Qgc3RhdHVzU3VtbWFyeUNvbnRhaW5lciA9IHZhbGlkYXRvclBhcmVudC5xdWVyeVNlbGVjdG9yKFxuICAgICAgICBgW2RhdGEtdmFsaWRhdGlvbi1zdGF0dXNdYCxcbiAgICAgICk7XG5cbiAgICAgIGNvbnN0IGNoZWNrZWQgPSB2YWxpZGF0b3JQYXR0ZXJuLnRlc3QoZWwudmFsdWUpO1xuICAgICAgdmFsaWRhdG9yQ2hlY2tib3guY2xhc3NMaXN0LnRvZ2dsZShDSEVDS0VEX0NMQVNTLCBjaGVja2VkKTtcblxuICAgICAgaWYgKCF2YWxpZGF0b3JDaGVja2JveCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIHZhbGlkYXRvciBjaGVja2JveCBmb3VuZCBmb3I6IFwiJHt2YWxpZGF0b3JOYW1lfVwiYCk7XG4gICAgICB9XG5cbiAgICAgIC8vIENyZWF0ZSBzdGF0dXMgcmVwb3J0cyBmb3IgY2hlY2tsaXN0IGl0ZW1zXG4gICAgICBjb25zdCBzdGF0dXNDb21wbGV0ZSA9IGVsLmRhdGFzZXQudmFsaWRhdGlvbkNvbXBsZXRlIHx8IFwic3RhdHVzIGNvbXBsZXRlXCI7XG4gICAgICBjb25zdCBzdGF0dXNJbmNvbXBsZXRlID1cbiAgICAgICAgZWwuZGF0YXNldC52YWxpZGF0aW9uSW5jb21wbGV0ZSB8fCBcInN0YXR1cyBpbmNvbXBsZXRlXCI7XG4gICAgICBsZXQgY2hlY2tib3hDb250ZW50ID0gYCR7dmFsaWRhdG9yQ2hlY2tib3gudGV4dENvbnRlbnR9IGA7XG5cbiAgICAgIGlmICh2YWxpZGF0b3JDaGVja2JveC5jbGFzc0xpc3QuY29udGFpbnMoQ0hFQ0tFRF9DTEFTUykpIHtcbiAgICAgICAgY2hlY2tib3hDb250ZW50ICs9IHN0YXR1c0NvbXBsZXRlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY2hlY2tib3hDb250ZW50ICs9IHN0YXR1c0luY29tcGxldGU7XG4gICAgICB9XG5cbiAgICAgIC8vIG1vdmUgc3RhdHVzIHVwZGF0ZXMgdG8gYXJpYS1sYWJlbCBvbiBjaGVja2xpc3QgaXRlbVxuICAgICAgdmFsaWRhdG9yQ2hlY2tib3guc2V0QXR0cmlidXRlKFwiYXJpYS1sYWJlbFwiLCBjaGVja2JveENvbnRlbnQpO1xuXG4gICAgICAvLyBDcmVhdGUgYSBzdW1tYXJ5IG9mIHN0YXR1cyBmb3IgYWxsIGNoZWNrbGlzdCBpdGVtc1xuICAgICAgc3RhdHVzU3VtbWFyeSArPSBgJHtjaGVja2JveENvbnRlbnR9LiBgO1xuXG4gICAgICAvLyBBZGQgc3VtbWFyeSB0byBzY3JlZW4gcmVhZGVyIHN1bW1hcnkgY29udGFpbmVyLCBhZnRlciBhIGRlbGF5XG4gICAgICBjb25zdCBzclVwZGF0ZVN0YXR1cyA9IGRlYm91bmNlKCgpID0+IHtcbiAgICAgICAgc3RhdHVzU3VtbWFyeUNvbnRhaW5lci50ZXh0Q29udGVudCA9IHN0YXR1c1N1bW1hcnk7XG4gICAgICB9LCAxMDAwKTtcblxuICAgICAgc3JVcGRhdGVTdGF0dXMoKTtcbiAgICB9XG4gIH0pO1xufTtcbiJdfQ==
diff --git a/html/matt-chat/uswds/js/uswds.min.js b/html/matt-chat/uswds/js/uswds.min.js
new file mode 100644
index 0000000..4b7948d
--- /dev/null
+++ b/html/matt-chat/uswds/js/uswds.min.js
@@ -0,0 +1,84 @@
+!function a(s,i,n){function o(t,e){if(!i[t]){if(!s[t]){var r="function"==typeof require&&require;if(!e&&r)return r(t,!0);if(l)return l(t,!0);throw(e=new Error("Cannot find module '"+t+"'")).code="MODULE_NOT_FOUND",e}r=i[t]={exports:{}},s[t][0].call(r.exports,function(e){return o(s[t][1][e]||e)},r,r.exports,a,s,i,n)}return i[t].exports}for(var l="function"==typeof require&&require,e=0;e<n.length;e++)o(n[e]);return o}({1:[function(e,t,r){var a;"function"!=typeof(a=window.Element.prototype).matches&&(a.matches=a.msMatchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||function(e){for(var t=this,r=(t.document||t.ownerDocument).querySelectorAll(e),a=0;r[a]&&r[a]!==t;)++a;return Boolean(r[a])}),"function"!=typeof a.closest&&(a.closest=function(e){for(var t=this;t&&1===t.nodeType;){if(t.matches(e))return t;t=t.parentNode}return null})},{}],2:[function(e,t,r){for(var a={polyfill:function(){if(!("KeyboardEvent"in window)||"key"in KeyboardEvent.prototype)return!1;var e={get:function(e){var t=a.keys[this.which||this.keyCode];return t=Array.isArray(t)?t[+this.shiftKey]:t}};return Object.defineProperty(KeyboardEvent.prototype,"key",e),e},keys:{3:"Cancel",6:"Help",8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",28:"Convert",29:"NonConvert",30:"Accept",31:"ModeChange",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",41:"Select",42:"Print",43:"Execute",44:"PrintScreen",45:"Insert",46:"Delete",48:["0",")"],49:["1","!"],50:["2","@"],51:["3","#"],52:["4","$"],53:["5","%"],54:["6","^"],55:["7","&"],56:["8","*"],57:["9","("],91:"OS",93:"ContextMenu",144:"NumLock",145:"ScrollLock",181:"VolumeMute",182:"VolumeDown",183:"VolumeUp",186:[";",":"],187:["=","+"],188:[",","<"],189:["-","_"],190:[".",">"],191:["/","?"],192:["`","~"],219:["[","{"],220:["\\","|"],221:["]","}"],222:["'",'"'],224:"Meta",225:"AltGraph",246:"Attn",247:"CrSel",248:"ExSel",249:"EraseEof",250:"Play",251:"ZoomOut"}},s=1;s<25;s++)a.keys[111+s]="F"+s;var i="";for(s=65;s<91;s++)i=String.fromCharCode(s),a.keys[s]=[i.toLowerCase(),i.toUpperCase()];"function"==typeof define&&define.amd?define("keyboardevent-key-polyfill",a):void 0!==r&&void 0!==t?t.exports=a:window&&(window.keyboardeventKeyPolyfill=a)},{}],3:[function(e,t,r){var l=Object.getOwnPropertySymbols,c=Object.prototype.hasOwnProperty,u=Object.prototype.propertyIsEnumerable;t.exports=(()=>{try{if(Object.assign){var e=new String("abc");if(e[5]="de","5"!==Object.getOwnPropertyNames(e)[0]){for(var t={},r=0;r<10;r++)t["_"+String.fromCharCode(r)]=r;var a,s=Object.getOwnPropertyNames(t).map(function(e){return t[e]});if("0123456789"===s.join(""))return a={},"abcdefghijklmnopqrst".split("").forEach(function(e){a[e]=e}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},a)).join("")?1:void 0}}}catch(e){}})()?Object.assign:function(e,t){for(var r,a=(e=>{if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)})(e),s=1;s<arguments.length;s++){for(var i in r=Object(arguments[s]))c.call(r,i)&&(a[i]=r[i]);if(l)for(var n=l(r),o=0;o<n.length;o++)u.call(r,n[o])&&(a[n[o]]=r[n[o]])}return a}},{}],4:[function(e,t,r){let l=e("object-assign"),c=e("../delegate"),u=e("../delegateAll"),d=/^(.+):delegate\((.+)\)$/;function p(e,t){var r=e[t];return delete e[t],r}t.exports=function(o,e){let r=Object.keys(o).reduce(function(e,t){r=o[t=t],(n=t.match(d))&&(t=n[1],a=n[2]),"object"==typeof r&&(s={capture:p(r,"capture"),passive:p(r,"passive")}),i={selector:a,delegate:"object"==typeof r?u(r):a?c(a,r):r,options:s};var r,a,s,i,n=-1<t.indexOf(" ")?t.split(" ").map(function(e){return l({type:e},i)}):(i.type=t,[i]);return e.concat(n)},[]);return l({add:function(t){r.forEach(function(e){t.addEventListener(e.type,e.delegate,e.options)})},remove:function(t){r.forEach(function(e){t.removeEventListener(e.type,e.delegate,e.options)})}},e)}},{"../delegate":6,"../delegateAll":7,"object-assign":3}],5:[function(e,t,r){t.exports=function(e){return function(t){return e.some(function(e){return!1===e.call(this,t)},this)}}},{}],6:[function(e,t,r){e("element-closest"),t.exports=function(r,a){return function(e){var t=e.target.closest(r);if(t)return a.call(t,e)}}},{"element-closest":1}],7:[function(e,t,r){let a=e("../delegate"),s=e("../compose");t.exports=function(r){var e=Object.keys(r);return 1===e.length&&"*"===e[0]?r["*"]:(e=e.reduce(function(e,t){return e.push(a(t,r[t])),e},[]),s(e))}},{"../compose":5,"../delegate":6}],8:[function(e,t,r){t.exports=function(t,r){return function(e){if(t!==e.target&&!t.contains(e.target))return r.call(this,e)}}},{}],9:[function(e,t,r){t.exports={behavior:e("./behavior"),delegate:e("./delegate"),delegateAll:e("./delegateAll"),ignore:e("./ignore"),keymap:e("./keymap")}},{"./behavior":4,"./delegate":6,"./delegateAll":7,"./ignore":8,"./keymap":10}],10:[function(e,t,r){e("keyboardevent-key-polyfill");let i={Alt:"altKey",Control:"ctrlKey",Ctrl:"ctrlKey",Shift:"shiftKey"};t.exports=function(s){let e=Object.keys(s).some(function(e){return-1<e.indexOf("+")});return function(r){var a=((e,t)=>{var r=e.key;if(t)for(var a in i)!0===e[i[a]]&&(r=[a,r].join("+"));return r})(r,e);return[a,a.toLowerCase()].reduce(function(e,t){return e=t in s?s[a].call(this,r):e},void 0)}},t.exports.MODIFIERS=i},{"keyboardevent-key-polyfill":2}],11:[function(e,t,r){t.exports=function(t,r){function a(e){return e.currentTarget.removeEventListener(e.type,a,r),t.call(this,e)}return a}},{}],12:[function(e,t,r){var a=/(^\s+)|(\s+$)/g,s=/\s+/,i=String.prototype.trim?function(e){return e.trim()}:function(e){return e.replace(a,"")};t.exports=function(e,t){if("string"!=typeof e)throw new Error("Expected a string but got "+typeof e);var r=((t=t||window.document).getElementById||function(e){return this.querySelector('[id="'+e.replace(/"/g,'\\"')+'"]')}).bind(t);return 1===(e=i(e).split(s)).length&&""===e[0]?[]:e.map(function(e){var t=r(e);if(t)return t;throw new Error('no element with id: "'+e+'"')})}},{}],13:[function(e,t,r){var a=e("../../uswds-core/src/js/utils/behavior");let s=e("../../uswds-core/src/js/utils/toggle-form-input");var i=e("../../uswds-core/src/js/events").CLICK,e=e("../../uswds-core/src/js/config").prefix;t.exports=a({[i]:{[`.${e}-show-password`]:function(e){e.preventDefault(),s(this)}}})},{"../../uswds-core/src/js/config":35,"../../uswds-core/src/js/events":36,"../../uswds-core/src/js/utils/behavior":40,"../../uswds-core/src/js/utils/toggle-form-input":50}],14:[function(e,t,r){let a=e("../../uswds-core/src/js/utils/select");var s=e("../../uswds-core/src/js/utils/behavior");let i=e("../../uswds-core/src/js/utils/toggle"),n=e("../../uswds-core/src/js/utils/is-in-viewport");var o=e("../../uswds-core/src/js/events").CLICK,e=e("../../uswds-core/src/js/config").prefix;let l=`.${e}-accordion, .${e}-accordion--bordered`,c=`.${e}-accordion__button[aria-controls]:not(${`.${e}-banner__button`})`,u="aria-expanded",d=t=>a(c,t).filter(e=>e.closest(l)===t),p=(t,e)=>{var r=t.closest(l);if(!r)throw new Error(c+" is missing outer "+l);var e=i(t,e),a=r.hasAttribute("data-allow-multiple");e&&!a&&d(r).forEach(e=>{e!==t&&i(e,!1)})};e=s({[o]:{[c](){p(this),"true"!==this.getAttribute(u)||n(this)||this.scrollIntoView()}}},{init(e){a(c,e).forEach(e=>{var t="true"===e.getAttribute(u);p(e,t)})},ACCORDION:l,BUTTON:c,show:e=>p(e,!0),hide:e=>p(e,!1),toggle:p,getButtons:d});t.exports=e},{"../../uswds-core/src/js/config":35,"../../uswds-core/src/js/events":36,"../../uswds-core/src/js/utils/behavior":40,"../../uswds-core/src/js/utils/is-in-viewport":43,"../../uswds-core/src/js/utils/select":48,"../../uswds-core/src/js/utils/toggle":51}],15:[function(e,t,r){var a=e("../../uswds-core/src/js/utils/behavior");let s=e("../../uswds-core/src/js/utils/select");var i=e("../../uswds-core/src/js/events").CLICK,n=e("../../uswds-core/src/js/config").prefix;let o=e("../../uswds-core/src/js/utils/toggle"),l=`.${n}-banner__header`,c=n+"-banner__header--expanded",u=l+" [aria-controls]";t.exports=a({[i]:{[u]:function(e){e.preventDefault();e=e.target.closest(u);o(e),this.closest(l).classList.toggle(c)}}},{init(e){s(u,e).forEach(e=>{var t="true"===e.getAttribute(c);o(e,t)})}})},{"../../uswds-core/src/js/config":35,"../../uswds-core/src/js/events":36,"../../uswds-core/src/js/utils/behavior":40,"../../uswds-core/src/js/utils/select":48,"../../uswds-core/src/js/utils/toggle":51}],16:[function(e,t,r){var a=e("receptor/keymap"),e=e("../../uswds-core/src/js/utils/behavior")({keydown:{'a[class*="usa-button"]':a({" ":e=>{e.preventDefault(),e.target.click()}})}});t.exports=e},{"../../uswds-core/src/js/utils/behavior":40,"receptor/keymap":10}],17:[function(e,t,r){let a=e("../../uswds-core/src/js/utils/select");var s=e("../../uswds-core/src/js/utils/behavior"),i=e("../../uswds-core/src/js/utils/debounce"),e=e("../../uswds-core/src/js/config").prefix,n=e+"-character-count";let o="."+n;var l=e+"-form-group";let c=l+"--error",u="."+l,d=e+"-label"+"--error",p=`.${e}-character-count__field`,b=e+"-input--error",f=`.${e}-character-count__message`,h="The content is too long.",m=e+"-character-count__status--invalid",v=n+"__status",g=n+"__sr-status",w="."+v,y="."+g,E="characters allowed",A=e=>{var t=e.closest(o);if(!t)throw new Error(p+" is missing outer "+o);var r=t.querySelector(u),e=e.getAttribute("id"),a=document.querySelector(`label[for=${e}]`),s=t.querySelector(f);if(s)return{characterCountEl:t,formGroupEl:r,inputID:e,labelEl:a,messageEl:s};throw new Error(o+" is missing inner "+f)},x=e=>{var t=document.createElement("div"),r=document.createElement("div"),a=e.dataset.maxlength+" "+E;t.classList.add(""+v,"usa-hint"),r.classList.add(""+g,"usa-sr-only"),t.setAttribute("aria-hidden",!0),r.setAttribute("aria-live","polite"),t.textContent=a,r.textContent=a,e.append(t,r)},j=(e,t)=>{let r="";var a;return r=0===e?t+" "+E:(a=Math.abs(t-e))+` ${"character"+(1===a?"":"s")} `+(t<e?"over limit":"left")},L=i((e,t)=>{e.textContent=t},1e3),S=e=>{var{characterCountEl:t,labelEl:r,formGroupEl:a}=A(e),s=e.value.length,i=parseInt(t.getAttribute("data-maxlength"),10),n=t.querySelector(w),t=t.querySelector(y),o=j(s,i);i&&(i=s&&i<s,n.textContent=o,L(t,o),i&&!e.validationMessage&&e.setCustomValidity(h),i||e.validationMessage!==h||e.setCustomValidity(""),a&&a.classList.toggle(c,i),r&&r.classList.toggle(d,i),e.classList.toggle(b,i),n.classList.toggle(m,i))},_=e=>{var t,{characterCountEl:r,messageEl:a}=A(e);a.classList.add("usa-sr-only"),a.removeAttribute("aria-live"),a=e,e=A(a).characterCountEl,(t=a.getAttribute("maxlength"))&&(a.removeAttribute("maxlength"),e.setAttribute("data-maxlength",t)),x(r)};l=s({input:{[p](){S(this)}}},{init(e){a(p,e).forEach(e=>_(e))},FORM_GROUP_ERROR_CLASS:c,LABEL_ERROR_CLASS:d,INPUT_ERROR_CLASS:b,MESSAGE_INVALID_CLASS:m,VALIDATION_MESSAGE:h,STATUS_MESSAGE_CLASS:v,STATUS_MESSAGE_SR_ONLY_CLASS:g,DEFAULT_STATUS_LABEL:E,createStatusMessages:x,getCountMessage:j,updateCountMessage:S});t.exports=l},{"../../uswds-core/src/js/config":35,"../../uswds-core/src/js/utils/behavior":40,"../../uswds-core/src/js/utils/debounce":41,"../../uswds-core/src/js/utils/select":48}],18:[function(e,t,N){var r=e("receptor/keymap");let a=e("../../uswds-core/src/js/utils/select-or-matches");var s=e("../../uswds-core/src/js/utils/behavior");let p=e("../../uswds-core/src/js/utils/sanitizer");var i=e("../../uswds-core/src/js/config").prefix,e=e("../../uswds-core/src/js/events").CLICK,i=i+"-combo-box";let b=i+"--pristine",f=i+"__select",h=i+"__input",m=i+"__clear-input",B=m+"__wrapper",O=i+"__input-button-separator",v=i+"__toggle-list",H=v+"__wrapper",g=i+"__list",y=i+"__list-option",E=y+"--focused",A=y+"--selected",w=i+"__status",x="."+i,P="."+f,u="."+h,d="."+m,j="."+v,R="."+g,n="."+y,L="."+E,F="."+A,Y="."+w,U=".*{{query}}.*";let S=(e,t="")=>{e.value=t,t=new CustomEvent("change",{bubbles:!0,cancelable:!0,detail:{value:t}});e.dispatchEvent(t)},_=e=>{var t,r,a,s,i,n,o,l,c,e=e.closest(x);if(e)return t=e.querySelector(P),r=e.querySelector(u),a=e.querySelector(R),s=e.querySelector(Y),i=e.querySelector(L),n=e.querySelector(F),o=e.querySelector(j),l=e.querySelector(d),c=e.classList.contains(b),{comboBoxEl:e,selectEl:t,inputEl:r,listEl:a,statusEl:s,focusedOptionEl:i,selectedOptionEl:n,toggleListBtnEl:o,clearInputBtnEl:l,isPristine:c,disableFiltering:"true"===e.dataset.disableFiltering};throw new Error("Element is missing outer "+x)},D=e=>{var{inputEl:e,toggleListBtnEl:t,clearInputBtnEl:r}=_(e);r.hidden=!0,t.disabled=r.disabled=!0,e.disabled=!0};let o=e=>{e=e.closest(x);if(!e.dataset.enhanced){let r=e.querySelector("select");if(!r)throw new Error(x+" is missing inner select");var t=r.id,n=document.querySelector(`label[for="${t}"]`),o=t+"--list",l=t+"-label";let a=[];var c=e.dataset.defaultValue,u=e.dataset.placeholder;let s;if(u&&a.push({placeholder:u}),c)for(let e=0,t=r.options.length;e<t;e+=1){var d=r.options[e];if(d.value===c){s=d;break}}if(!n||!n.matches(`label[for="${t}"]`))throw new Error(x+` for ${t} is either missing a label or a "for" attribute`);n.setAttribute("id",l),n.setAttribute("id",l),r.setAttribute("aria-hidden","true"),r.setAttribute("tabindex","-1"),r.classList.add("usa-sr-only",f),r.id="",r.value="",["required","aria-label","aria-labelledby"].forEach(e=>{var t;r.hasAttribute(e)&&(t=r.getAttribute(e),a.push({[e]:t}),r.removeAttribute(e))});let i=document.createElement("input");i.setAttribute("id",t),i.setAttribute("aria-owns",o),i.setAttribute("aria-controls",o),i.setAttribute("aria-autocomplete","list"),i.setAttribute("aria-expanded","false"),i.setAttribute("autocapitalize","off"),i.setAttribute("autocomplete","off"),i.setAttribute("class",h),i.setAttribute("type","text"),i.setAttribute("role","combobox"),a.forEach(r=>Object.keys(r).forEach(e=>{var t=p.escapeHTML`${r[e]}`;i.setAttribute(e,t)})),e.insertAdjacentElement("beforeend",i),e.insertAdjacentHTML("beforeend",p.escapeHTML`
+    <span class="${B}" tabindex="-1">
+        <button type="button" class="${m}" aria-label="Clear the select contents">&nbsp;</button>
+      </span>
+      <span class="${O}">&nbsp;</span>
+      <span class="${H}" tabindex="-1">
+        <button type="button" tabindex="-1" class="${v}" aria-label="Toggle the dropdown list">&nbsp;</button>
+      </span>
+      <ul
+        tabindex="-1"
+        id="${o}"
+        class="${g}"
+        role="listbox"
+        aria-labelledby="${l}"
+        hidden>
+      </ul>
+      <div class="${w} usa-sr-only" role="status"></div>`),s&&(u=_(e).inputEl,S(r,s.value),S(u,s.text),e.classList.add(b)),r.disabled&&(D(e),r.disabled=!1),r.hasAttribute("aria-disabled")&&((e=>{var{inputEl:e,toggleListBtnEl:t,clearInputBtnEl:r}=_(e);r.hidden=!0,r.setAttribute("aria-disabled",!0),t.setAttribute("aria-disabled",!0),e.setAttribute("aria-disabled",!0)})(e),r.removeAttribute("aria-disabled")),e.dataset.enhanced="true"}},C=(e,t,{skipFocus:r,preventScroll:a}={})=>{var{inputEl:e,listEl:s,focusedOptionEl:i}=_(e);i&&(i.classList.remove(E),i.setAttribute("tabIndex","-1")),t?(e.setAttribute("aria-activedescendant",t.id),t.setAttribute("tabIndex","0"),t.classList.add(E),a||(i=t.offsetTop+t.offsetHeight,s.scrollTop+s.offsetHeight<i&&(s.scrollTop=i-s.offsetHeight),t.offsetTop<s.scrollTop&&(s.scrollTop=t.offsetTop)),r||t.focus({preventScroll:a})):(e.setAttribute("aria-activedescendant",""),e.focus())},$=(e,a="",s={})=>{let i=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&");e=`^(?:${e.replace(/{{(.*?)}}/g,(e,t)=>{var t=t.trim(),r=s[t];return"query"!==t&&r?(t=new RegExp(r,"i"),(r=a.match(t))?i(r[1]):""):i(a)})})$`;return new RegExp(e,"i")},l=e=>{let{comboBoxEl:t,selectEl:a,inputEl:r,listEl:s,statusEl:i,isPristine:n,disableFiltering:o}=_(e),l,c,u=s.id+"--option-",d=(r.value||"").toLowerCase();e=t.dataset.filter||U;let p=$(e,d,t.dataset),b=[],f=[],h=[];e=[...a.options];let m=e=>p.test(e.text);e.forEach(e=>{var t,r;(r=e).value&&(o||n||!d||m(r))&&(r=e,o||n?b.push(r):((r.text.toLowerCase().startsWith(d)?f:h).push(r),b=[...f,...h]),r=u+b.indexOf(e),t=e,o&&!c&&m(t)&&(c=r),t=e,a.value)&&t.value===a.value&&(l=r)});var e=b.length,v=b.map((e,t)=>{var r=u+t,a=[y];let s="-1",i="false";r===l&&(a.push(A,E),s="0",i="true"),l||0!==t||(a.push(E),s="0");var n=document.createElement("li");return n.setAttribute("aria-setsize",b.length),n.setAttribute("aria-posinset",t+1),n.setAttribute("aria-selected",i),n.setAttribute("id",r),n.setAttribute("class",a.join(" ")),n.setAttribute("tabindex",s),n.setAttribute("role","option"),n.setAttribute("data-value",e.value),n.textContent=e.text,n}),g=document.createElement("li");g.setAttribute("class",y+"--no-results"),g.textContent="No results found",s.hidden=!1,e?(s.innerHTML="",v.forEach(e=>s.insertAdjacentElement("beforeend",e))):(s.innerHTML="",s.insertAdjacentElement("beforeend",g)),r.setAttribute("aria-expanded","true"),i.textContent=e?e+` result${1<e?"s":""} available.`:"No results.";let w;n&&l?w=s.querySelector("#"+l):o&&c&&(w=s.querySelector("#"+c)),w&&C(s,w,{skipFocus:!0})},c=e=>{var{inputEl:e,listEl:t,statusEl:r,focusedOptionEl:a}=_(e);r.innerHTML="",e.setAttribute("aria-expanded","false"),e.setAttribute("aria-activedescendant",""),a&&a.classList.remove(E),t.scrollTop=0,t.hidden=!0},T=e=>{var{comboBoxEl:t,selectEl:r,inputEl:a}=_(e);S(r,e.dataset.value),S(a,e.textContent),t.classList.add(b),c(t),a.focus()},k=e=>{var{comboBoxEl:r,selectEl:a,inputEl:s}=_(e),i=a.value,n=(s.value||"").toLowerCase();if(i)for(let e=0,t=a.options.length;e<t;e+=1){var o=a.options[e];if(o.value===i)return n!==o.text&&S(s,o.text),void r.classList.add(b)}n&&S(s)};var M=e=>{var{comboBoxEl:t,listEl:r}=_(e.target),r=(r.hidden&&l(t),r.querySelector(L)||r.querySelector(n));r&&C(t,r),e.preventDefault()},q=e=>{var t=e.target,r=t.nextSibling;r&&C(t,r),e.preventDefault()},I=e=>{var{comboBoxEl:t,listEl:r,focusedOptionEl:a}=_(e.target),a=a&&a.previousSibling,r=!r.hidden;C(t,a),r&&e.preventDefault(),a||c(t)};s=s({[e]:{[u](){this.disabled||(e=>{var{comboBoxEl:e,listEl:t}=_(e);t.hidden&&l(e)})(this)},[j](){this.disabled||(e=>{var{comboBoxEl:e,listEl:t,inputEl:r}=_(e);(t.hidden?l:c)(e),r.focus()})(this)},[n](){this.disabled||T(this)},[d](){this.disabled||(e=>{var{comboBoxEl:e,listEl:t,selectEl:r,inputEl:a}=_(e),t=!t.hidden;r.value&&S(r),a.value&&S(a),e.classList.remove(b),t&&l(e),a.focus()})(this)}},focusout:{[x](e){this.contains(e.relatedTarget)||(k(this),c(this))}},keydown:{[x]:r({Escape:e=>{var{comboBoxEl:e,inputEl:t}=_(e.target);c(e),k(e),t.focus()}}),[u]:r({Enter:e=>{var{comboBoxEl:t,listEl:r}=_(e.target),r=!r.hidden;(e=>{var{comboBoxEl:r,selectEl:a,inputEl:s,statusEl:e}=_(e),i=(e.textContent="",(s.value||"").toLowerCase());if(i)for(let e=0,t=a.options.length;e<t;e+=1){var n=a.options[e];if(n.text.toLowerCase()===i)return S(a,n.value),S(s,n.text),r.classList.add(b)}k(r)})(t),r&&c(t),e.preventDefault()},ArrowDown:M,Down:M}),[n]:r({ArrowUp:I,Up:I,ArrowDown:q,Down:q,Enter:e=>{T(e.target),e.preventDefault()}," ":e=>{T(e.target),e.preventDefault()},"Shift+Tab":()=>{}})},input:{[u](){this.closest(x).classList.remove(b),l(this)}},mouseover:{[n](){var e;(e=this).classList.contains(E)||C(e,e,{preventScroll:!0})}}},{init(e){a(x,e).forEach(e=>{o(e)})},getComboBoxContext:_,enhanceComboBox:o,generateDynamicRegExp:$,disable:D,enable:e=>{var{inputEl:e,toggleListBtnEl:t,clearInputBtnEl:r}=_(e);r.hidden=!1,t.disabled=r.disabled=!1,e.disabled=!1},displayList:l,hideList:c,COMBO_BOX_CLASS:i});t.exports=s},{"../../uswds-core/src/js/config":35,"../../uswds-core/src/js/events":36,"../../uswds-core/src/js/utils/behavior":40,"../../uswds-core/src/js/utils/sanitizer":45,"../../uswds-core/src/js/utils/select-or-matches":47,"receptor/keymap":10}],19:[function(e,E,A){let t=e("receptor/keymap");var S=e("../../uswds-core/src/js/utils/behavior");let _=e("../../uswds-core/src/js/utils/select"),P=e("../../uswds-core/src/js/utils/select-or-matches");var r=e("../../uswds-core/src/js/config").prefix,R=e("../../uswds-core/src/js/events").CLICK;let F=e("../../uswds-core/src/js/utils/active-element");var Y=e("../../uswds-core/src/js/utils/is-ios-device");let D=e("../../uswds-core/src/js/utils/sanitizer");e=r+"-date-picker";let U=e+"__wrapper",V=e+"--initialized",K=e+"--active",W=e+"__internal-input",z=e+"__external-input",Q=e+"__button",i=e+"__calendar",G=e+"__status",C=i+"__date",Z=C+"--focused",J=C+"--selected",X=C+"--previous-month",ee=C+"--current-month",te=C+"--next-month",re=C+"--range-date",ae=C+"--today",se=C+"--range-date-start",ie=C+"--range-date-end",ne=C+"--within-range",oe=i+"__previous-year",le=i+"__previous-month",ce=i+"__next-year",ue=i+"__next-month",de=i+"__month-selection",pe=i+"__year-selection",p=i+"__month",be=p+"--focused",fe=p+"--selected",x=i+"__year",he=x+"--focused",me=x+"--selected",ve=i+"__previous-year-chunk",ge=i+"__next-year-chunk",we=i+"__date-picker",ye=i+"__month-picker",Ee=i+"__year-picker",$=i+"__table",Ae=i+"__row",T=i+"__cell",k=T+"--center-items",xe=i+"__month-label",je=i+"__day-of-week",f="."+e,Le="."+Q,Se="."+W,h="."+z,_e="."+i,De="."+G;r="."+C;let o="."+Z;e="."+ee;let Ce="."+oe,$e="."+le,Te="."+ce,ke="."+ue;var Me="."+pe,qe="."+de,Ie="."+p;let Ne="."+x,Be="."+ve,Oe="."+ge,M="."+we;var He="."+ye;let Pe="."+Ee,Re="."+be,l="."+he,Fe="Please enter a valid date",Ye=["January","February","March","April","May","June","July","August","September","October","November","December"],Ue=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],j=12,m="MM/DD/YYYY",Ve="YYYY-MM-DD";var a=(...e)=>e.map(e=>e+":not([disabled])").join(", "),s=a(Ce,$e,Me,qe,Te,ke,o),Ke=a(Re),a=a(Be,Oe,l);let We=(e,t)=>(t!==e.getMonth()&&e.setDate(0),e),d=(e,t,r)=>{var a=new Date(0);return a.setFullYear(e,t,r),a},ze=()=>{var e=new Date,t=e.getDate(),r=e.getMonth(),e=e.getFullYear();return d(e,r,t)},Qe=e=>{var t=new Date(0);return t.setFullYear(e.getFullYear(),e.getMonth(),1),t},Ge=e=>{var t=new Date(0);return t.setFullYear(e.getFullYear(),e.getMonth()+1,0),t},q=(e,t)=>{e=new Date(e.getTime());return e.setDate(e.getDate()+t),e},Ze=(e,t)=>q(e,-t),Je=(e,t)=>q(e,7*t),Xe=e=>{var t=e.getDay();return Ze(e,t)},I=(e,t)=>{var e=new Date(e.getTime()),r=(e.getMonth()+12+t)%12;return e.setMonth(e.getMonth()+t),We(e,r),e},et=(e,t)=>I(e,-t),tt=(e,t)=>I(e,12*t),rt=(e,t)=>tt(e,-t),b=(e,t)=>{e=new Date(e.getTime());return e.setMonth(t),We(e,t),e},L=(e,t)=>{var e=new Date(e.getTime()),r=e.getMonth();return e.setFullYear(t),We(e,r),e},at=(e,t)=>{let r=t<e?t:e;return new Date(r.getTime())},st=(e,t)=>{let r=e<t?t:e;return new Date(r.getTime())},it=(e,t)=>e&&t&&e.getFullYear()===t.getFullYear(),N=(e,t)=>it(e,t)&&e.getMonth()===t.getMonth(),B=(e,t)=>N(e,t)&&e.getDate()===t.getDate(),c=(e,t,r)=>{let a=e;return e<t?a=t:r&&r<e&&(a=r),new Date(a.getTime())},nt=(e,t,r)=>t<=e&&(!r||e<=r),ot=(e,t,r)=>Ge(e)<t||r&&Qe(e)>r,lt=(e,t,r)=>Ge(b(e,11))<t||r&&Qe(b(e,0))>r,ct=(e,t)=>{var r=t&&at(e,t),e=t&&st(e,t);return{rangeStartDate:r,rangeEndDate:e,withinRangeStartDate:t&&q(r,1),withinRangeEndDate:t&&Ze(e,1)}},v=(a,s=Ve,i=!1)=>{let n,o,l,c,u;if(a){let e,t,r;s===m?[e,t,r]=a.split("/"):[r,e,t]=a.split("-"),r&&(u=parseInt(r,10),Number.isNaN(u)||(c=u,i&&(c=Math.max(0,c),r.length<3)&&(a=(s=ze().getFullYear())-s%10**r.length,c=a+u))),e&&(u=parseInt(e,10),Number.isNaN(u)||(o=u,i&&(o=Math.max(1,o),o=Math.min(12,o)))),o&&t&&null!=c&&(u=parseInt(t,10),Number.isNaN(u)||(l=u,i&&(s=d(c,o,0).getDate(),l=Math.max(1,l),l=Math.min(s,l)))),o&&l&&null!=c&&(n=d(c,o-1,l))}return n},O=(e,t=Ve)=>{var r=(e,t)=>("0000"+e).slice(-t),a=e.getMonth()+1,s=e.getDate(),e=e.getFullYear();return t===m?[r(a,2),r(s,2),r(e,4)].join("/"):[r(e,4),r(a,2),r(s,2)].join("-")},ut=(e,r)=>{var a=[],s=[];let i=0;for(;i<e.length;){s=[];let t=document.createElement("tr");for(;i<e.length&&s.length<r;){var n=document.createElement("td");n.insertAdjacentElement("beforeend",e[i]),s.push(n),i+=1}s.forEach(e=>{t.insertAdjacentElement("beforeend",e)}),a.push(t)}return a},dt=e=>{let t=document.createElement("tbody");return e.forEach(e=>{t.insertAdjacentElement("beforeend",e)}),t},pt=(e,t="")=>{e.value=t,t=new CustomEvent("change",{bubbles:!0,cancelable:!0,detail:{value:t}});e.dispatchEvent(t)},H=e=>{e=e.closest(f);if(!e)throw new Error("Element is missing outer "+f);var t=e.querySelector(Se),r=e.querySelector(h),a=e.querySelector(_e),s=e.querySelector(Le),i=e.querySelector(De),n=e.querySelector(Ne),o=v(r.value,m,!0),l=v(t.value),c=v(a.dataset.value),u=v(e.dataset.minDate),d=v(e.dataset.maxDate),p=v(e.dataset.rangeDate),b=v(e.dataset.defaultDate);if(u&&d&&d<u)throw new Error("Minimum date cannot be after maximum date");return{calendarDate:c,minDate:u,toggleBtnEl:s,selectedDate:l,maxDate:d,firstYearChunkEl:n,datePickerEl:e,inputDate:o,internalInputEl:t,externalInputEl:r,calendarEl:a,rangeDate:p,defaultDate:b,statusEl:i}},bt=e=>{var{externalInputEl:e,toggleBtnEl:t}=H(e);t.disabled=!0,e.disabled=!0},ft=e=>{var{externalInputEl:e,toggleBtnEl:t}=H(e);t.setAttribute("aria-disabled",!0),e.setAttribute("aria-disabled",!0),e.setAttribute("readonly","")};let ht=e=>{var t,r,a,s,{externalInputEl:e,minDate:i,maxDate:n}=H(e),e=e.value;let o=!1;return o=e&&(o=!0,[t,r,a]=(e=e.split("/")).map(e=>{let t;e=parseInt(e,10);return t=Number.isNaN(e)?t:e}),t)&&r&&null!=a&&(s=d(a,t-1,r)).getMonth()===t-1&&s.getDate()===r&&s.getFullYear()===a&&4===e[2].length&&nt(s,i,n)?!1:o},mt=e=>{var e=H(e).externalInputEl,t=ht(e);t&&!e.validationMessage&&e.setCustomValidity(Fe),t||e.validationMessage!==Fe||e.setCustomValidity("")},vt=(e,t)=>{var r,a,s=v(t);s&&(s=O(s,m),{datePickerEl:e,internalInputEl:r,externalInputEl:a}=H(e),pt(r,t),pt(a,s),mt(e))},u=(e,t)=>{let{datePickerEl:r,calendarEl:a,statusEl:s,selectedDate:d,maxDate:p,minDate:b,rangeDate:f}=H(e),h=ze(),i=t||h;e=a.hidden;let m=q(i,0);var n=i.getMonth(),t=i.getFullYear();let v=et(i,1),g=I(i,1);var o=O(i),l=Qe(i),c=N(i,b),u=N(i,p);let{rangeStartDate:w,rangeEndDate:y,withinRangeStartDate:E,withinRangeEndDate:A}=ct(d||i,f);for(var x=Ye[n],j=(i=Xe(l),[]);j.length<28||i.getMonth()===n||j.length%7!=0;)j.push((e=>{var t=[C],r=e.getDate(),a=e.getMonth(),s=e.getFullYear(),i=e.getDay(),n=O(e);let o="-1";var l=!nt(e,b,p),c=B(e,d),e=(N(e,v)&&t.push(X),N(e,m)&&t.push(ee),N(e,g)&&t.push(te),c&&t.push(J),B(e,h)&&t.push(ae),f&&(B(e,f)&&t.push(re),B(e,w)&&t.push(se),B(e,y)&&t.push(ie),nt(e,E,A))&&t.push(ne),B(e,m)&&(o="0",t.push(Z)),Ye[a]),i=Ue[i],u=document.createElement("button");return u.setAttribute("type","button"),u.setAttribute("tabindex",o),u.setAttribute("class",t.join(" ")),u.setAttribute("data-day",r),u.setAttribute("data-month",a+1),u.setAttribute("data-year",s),u.setAttribute("data-value",n),u.setAttribute("aria-label",D.escapeHTML`${r} ${e} ${s} ${i}`),u.setAttribute("aria-selected",c?"true":"false"),!0==l&&(u.disabled=!0),u.textContent=r,u})(i)),i=q(i,1);var l=ut(j,7),L=a.cloneNode(),o=(L.dataset.value=o,L.style.top=r.offsetHeight+"px",L.hidden=!1,L.innerHTML=D.escapeHTML`
+    <div tabindex="-1" class="${we}">
+      <div class="${Ae}">
+        <div class="${T} ${k}">
+          <button
+            type="button"
+            class="${oe}"
+            aria-label="Navigate back one year"
+            ${c?'disabled="disabled"':""}
+          ></button>
+        </div>
+        <div class="${T} ${k}">
+          <button
+            type="button"
+            class="${le}"
+            aria-label="Navigate back one month"
+            ${c?'disabled="disabled"':""}
+          ></button>
+        </div>
+        <div class="${T} ${xe}">
+          <button
+            type="button"
+            class="${de}" aria-label="${x}. Select month"
+          >${x}</button>
+          <button
+            type="button"
+            class="${pe}" aria-label="${t}. Select year"
+          >${t}</button>
+        </div>
+        <div class="${T} ${k}">
+          <button
+            type="button"
+            class="${ue}"
+            aria-label="Navigate forward one month"
+            ${u?'disabled="disabled"':""}
+          ></button>
+        </div>
+        <div class="${T} ${k}">
+          <button
+            type="button"
+            class="${ce}"
+            aria-label="Navigate forward one year"
+            ${u?'disabled="disabled"':""}
+          ></button>
+        </div>
+      </div>
+    </div>
+    `,document.createElement("table")),c=(o.setAttribute("class",$),document.createElement("thead"));o.insertAdjacentElement("beforeend",c);let S=document.createElement("tr"),_=(c.insertAdjacentElement("beforeend",S),{Sunday:"S",Monday:"M",Tuesday:"T",Wednesday:"W",Thursday:"Th",Friday:"Fr",Saturday:"S"});Object.keys(_).forEach(e=>{var t=document.createElement("th");t.setAttribute("class",je),t.setAttribute("scope","col"),t.setAttribute("aria-label",e),t.textContent=_[e],S.insertAdjacentElement("beforeend",t)});u=dt(l);o.insertAdjacentElement("beforeend",u);L.querySelector(M).insertAdjacentElement("beforeend",o),a.parentNode.replaceChild(L,a),r.classList.add(K);c=[];return B(d,m)&&c.push("Selected date"),e?(c.push("You can navigate by day using left and right arrows","Weeks by using up and down arrows","Months by using page up and page down keys","Years by using shift plus page up and shift plus page down","Home and end keys navigate to the beginning and end of a week"),s.textContent=""):c.push(x+" "+t),s.textContent=c.join(". "),L},gt=e=>{var{datePickerEl:e,calendarEl:t,statusEl:r}=H(e);e.classList.remove(K),t.hidden=!0,r.textContent=""},wt=e=>{var{calendarEl:e,inputDate:t,minDate:r,maxDate:a}=H(e);!e.hidden&&t&&(t=c(t,r,a),u(e,t))},yt=(e,t)=>{let{calendarEl:r,statusEl:a,calendarDate:o,minDate:l,maxDate:c}=H(e),u=o.getMonth(),d=null==t?u:t;var e=Ye.map((e,t)=>{var r=b(o,t),r=ot(r,l,c);let a="-1";var s=[p],i=t===u,n=(t===d&&(a="0",s.push(be)),i&&s.push(fe),document.createElement("button"));return n.setAttribute("type","button"),n.setAttribute("tabindex",a),n.setAttribute("class",s.join(" ")),n.setAttribute("data-value",t),n.setAttribute("data-label",e),n.setAttribute("aria-selected",i?"true":"false"),!0===r&&(n.disabled=!0),n.textContent=e,n}),t=document.createElement("div"),s=(t.setAttribute("tabindex","-1"),t.setAttribute("class",ye),document.createElement("table")),e=(s.setAttribute("class",$),s.setAttribute("role","presentation"),ut(e,3)),e=dt(e),e=(s.insertAdjacentElement("beforeend",e),t.insertAdjacentElement("beforeend",s),r.cloneNode());return e.insertAdjacentElement("beforeend",t),r.parentNode.replaceChild(e,r),a.textContent="Select a month.",e},Et=(e,t)=>{var{calendarEl:e,statusEl:r,calendarDate:a,minDate:s,maxDate:i}=H(e),n=a.getFullYear(),o=null==t?n:t,t=o,l=(t-=t%j,t=Math.max(0,t),lt(L(a,t-1),s,i)),c=lt(L(a,t+j),s,i),u=[];let d=t;for(;u.length<j;){var p=lt(L(a,d),s,i);let e="-1";var b=[x],f=d===n,h=(d===o&&(e="0",b.push(he)),f&&b.push(me),document.createElement("button"));h.setAttribute("type","button"),h.setAttribute("tabindex",e),h.setAttribute("class",b.join(" ")),h.setAttribute("data-value",d),h.setAttribute("aria-selected",f?"true":"false"),!0===p&&(h.disabled=!0),h.textContent=d,u.push(h),d+=1}var m=e.cloneNode(),v=document.createElement("div"),g=(v.setAttribute("tabindex","-1"),v.setAttribute("class",Ee),document.createElement("table")),w=(g.setAttribute("class",$),document.createElement("tbody")),y=document.createElement("tr"),E=document.createElement("button"),l=(E.setAttribute("type","button"),E.setAttribute("class",ve),E.setAttribute("aria-label",`Navigate back ${j} years`),!0===l&&(E.disabled=!0),E.innerHTML=D.escapeHTML`&nbsp`,document.createElement("button")),c=(l.setAttribute("type","button"),l.setAttribute("class",ge),l.setAttribute("aria-label",`Navigate forward ${j} years`),!0===c&&(l.disabled=!0),l.innerHTML=D.escapeHTML`&nbsp`,document.createElement("table")),A=(c.setAttribute("class",$),c.setAttribute("role","presentation"),ut(u,3)),A=dt(A),A=(c.insertAdjacentElement("beforeend",A),document.createElement("td")),E=(A.insertAdjacentElement("beforeend",E),document.createElement("td")),c=(E.setAttribute("colspan","3"),E.insertAdjacentElement("beforeend",c),document.createElement("td"));return c.insertAdjacentElement("beforeend",l),y.insertAdjacentElement("beforeend",A),y.insertAdjacentElement("beforeend",E),y.insertAdjacentElement("beforeend",c),w.insertAdjacentElement("beforeend",y),g.insertAdjacentElement("beforeend",w),v.insertAdjacentElement("beforeend",g),m.insertAdjacentElement("beforeend",v),e.parentNode.replaceChild(m,e),r.textContent=D.escapeHTML`Showing years ${t} to ${t+j-1}. Select a year.`,m},At=e=>{var{datePickerEl:t,externalInputEl:r}=H(e.target);gt(t),r.focus(),e.preventDefault()};var n=n=>e=>{var{calendarEl:t,calendarDate:r,minDate:a,maxDate:s}=H(e.target),i=n(r),i=c(i,a,s);B(r,i)||u(t,i).querySelector(o).focus(),e.preventDefault()},xt=n(e=>{return e=e,t=1,Je(e,-t);var t}),jt=n(e=>Je(e,1)),Lt=n(e=>Ze(e,1)),St=n(e=>q(e,1)),_t=n(e=>Xe(e)),Dt=n(e=>{return t=(e=e).getDay(),q(e,6-t);var t}),Ct=n(e=>I(e,1)),$t=n(e=>et(e,1)),Tt=n(e=>tt(e,1)),n=n(e=>rt(e,1));var g=o=>e=>{var t=e.target,r=parseInt(t.dataset.value,10),{calendarEl:t,calendarDate:a,minDate:s,maxDate:i}=H(t),n=b(a,r),r=o(r),r=Math.max(0,Math.min(11,r)),a=b(a,r),r=c(a,s,i);N(n,r)||yt(t,r.getMonth()).querySelector(Re).focus(),e.preventDefault()},kt=g(e=>e-3),Mt=g(e=>e+3),qt=g(e=>e-1),It=g(e=>e+1),Nt=g(e=>e-e%3),Bt=g(e=>e+2-e%3),Ot=g(()=>11),g=g(()=>0),w=o=>e=>{var t=e.target,r=parseInt(t.dataset.value,10),{calendarEl:t,calendarDate:a,minDate:s,maxDate:i}=H(t),n=L(a,r),r=o(r),r=Math.max(0,r),a=L(a,r),r=c(a,s,i);it(n,r)||Et(t,r.getFullYear()).querySelector(l).focus(),e.preventDefault()},Ht=w(e=>e-3),Pt=w(e=>e+3),Rt=w(e=>e-1),Ft=w(e=>e+1),Yt=w(e=>e-e%3),Ut=w(e=>e+2-e%3),Vt=w(e=>e-j),w=w(e=>e+j),y=i=>{let s=e=>{var e=H(e).calendarEl,e=_(i,e),t=e.length-1,r=e[0],a=e[t],s=e.indexOf(F());return{focusableElements:e,isNotFound:-1===s,firstTabStop:r,isFirstTab:0===s,lastTabStop:a,isLastTab:s===t}};return{tabAhead(e){var{firstTabStop:t,isLastTab:r,isNotFound:a}=s(e.target);(r||a)&&(e.preventDefault(),t.focus())},tabBack(e){var{lastTabStop:t,isFirstTab:r,isNotFound:a}=s(e.target);(r||a)&&(e.preventDefault(),t.focus())}}},s=y(s),Ke=y(Ke),y=y(a),a={[R]:{[Le](){var e,t,r,a,s,i;(e=this).disabled||e.hasAttribute("aria-disabled")||({calendarEl:t,inputDate:i,minDate:r,maxDate:a,defaultDate:s}=H(e),t.hidden?(i=c(i||s||ze(),r,a),u(t,i).querySelector(o).focus()):gt(e))},[r](){var e,t,r;(e=this).disabled||({datePickerEl:t,externalInputEl:r}=H(e),vt(e,e.dataset.value),gt(t),r.focus())},[Ie](){var e,t,r,a,s;(e=this).disabled||({calendarEl:t,calendarDate:s,minDate:r,maxDate:a}=H(e),e=parseInt(e.dataset.value,10),s=b(s,e),s=c(s,r,a),u(t,s).querySelector(o).focus())},[Ne](){var e,t,r,a,s;(e=this).disabled||({calendarEl:t,calendarDate:s,minDate:r,maxDate:a}=H(e),e=parseInt(e.innerHTML,10),s=L(s,e),s=c(s,r,a),u(t,s).querySelector(o).focus())},[$e](){(t=>{if(!t.disabled){var{calendarEl:t,calendarDate:r,minDate:a,maxDate:s}=H(t),r=et(r,1),r=c(r,a,s),a=u(t,r);let e=a.querySelector($e);(e=e.disabled?a.querySelector(M):e).focus()}})(this)},[ke](){(t=>{if(!t.disabled){var{calendarEl:t,calendarDate:r,minDate:a,maxDate:s}=H(t),r=I(r,1),r=c(r,a,s),a=u(t,r);let e=a.querySelector(ke);(e=e.disabled?a.querySelector(M):e).focus()}})(this)},[Ce](){(t=>{if(!t.disabled){var{calendarEl:t,calendarDate:r,minDate:a,maxDate:s}=H(t),r=rt(r,1),r=c(r,a,s),a=u(t,r);let e=a.querySelector(Ce);(e=e.disabled?a.querySelector(M):e).focus()}})(this)},[Te](){(t=>{if(!t.disabled){var{calendarEl:t,calendarDate:r,minDate:a,maxDate:s}=H(t),r=tt(r,1),r=c(r,a,s),a=u(t,r);let e=a.querySelector(Te);(e=e.disabled?a.querySelector(M):e).focus()}})(this)},[Be](){(t=>{if(!t.disabled){var{calendarEl:t,calendarDate:r,minDate:a,maxDate:s}=H(t),i=t.querySelector(l),i=parseInt(i.textContent,10)-j,i=Math.max(0,i),r=L(r,i),i=c(r,a,s),r=Et(t,i.getFullYear());let e=r.querySelector(Be);(e=e.disabled?r.querySelector(Pe):e).focus()}})(this)},[Oe](){(t=>{if(!t.disabled){var{calendarEl:t,calendarDate:r,minDate:a,maxDate:s}=H(t),i=t.querySelector(l),i=parseInt(i.textContent,10)+j,i=Math.max(0,i),r=L(r,i),i=c(r,a,s),r=Et(t,i.getFullYear());let e=r.querySelector(Oe);(e=e.disabled?r.querySelector(Pe):e).focus()}})(this)},[qe](){yt(this).querySelector(Re).focus()},[Me](){Et(this).querySelector(l).focus()}},keyup:{[_e](e){var t=this.dataset.keydownKeyCode;""+e.keyCode!==t&&e.preventDefault()}},keydown:{[h](e){13===e.keyCode&&mt(this)},[r]:t({Up:xt,ArrowUp:xt,Down:jt,ArrowDown:jt,Left:Lt,ArrowLeft:Lt,Right:St,ArrowRight:St,Home:_t,End:Dt,PageDown:Ct,PageUp:$t,"Shift+PageDown":Tt,"Shift+PageUp":n,Tab:s.tabAhead}),[M]:t({Tab:s.tabAhead,"Shift+Tab":s.tabBack}),[Ie]:t({Up:kt,ArrowUp:kt,Down:Mt,ArrowDown:Mt,Left:qt,ArrowLeft:qt,Right:It,ArrowRight:It,Home:Nt,End:Bt,PageDown:Ot,PageUp:g}),[He]:t({Tab:Ke.tabAhead,"Shift+Tab":Ke.tabBack}),[Ne]:t({Up:Ht,ArrowUp:Ht,Down:Pt,ArrowDown:Pt,Left:Rt,ArrowLeft:Rt,Right:Ft,ArrowRight:Ft,Home:Yt,End:Ut,PageDown:w,PageUp:Vt}),[Pe]:t({Tab:y.tabAhead,"Shift+Tab":y.tabBack}),[_e](e){this.dataset.keydownKeyCode=e.keyCode},[f](e){t({Escape:At})(e)}},focusout:{[h](){mt(this)},[f](e){this.contains(e.relatedTarget)||gt(this)}},input:{[h](){(e=>{var{internalInputEl:t,inputDate:r}=H(e);let a="";r&&!ht(e)&&(a=O(r)),t.value!==a&&pt(t,a)})(this),wt(this)}}},R=(Y()||(a.mouseover={[e](){(e=>{if(!e.disabled){var t=v(e.dataset.value),{calendarEl:e,selectedDate:r,rangeDate:s}=H(e);if(!r){let{withinRangeStartDate:r,withinRangeEndDate:a}=ct(t,s);e.querySelectorAll("."+ee).forEach(e=>{var t=v(e.dataset.value);nt(t,r,a)?e.classList.add(ne):e.classList.remove(ne)})}}})(this)}}),S(a,{init(e){P(f,e).forEach(e=>{(e=>{var e=e.closest(f),t=e.dataset.defaultValue,r=e.querySelector("input");if(!r)throw new Error(f+" is missing inner input");r.value&&(r.value="");var a=v(e.dataset.minDate||r.getAttribute("min")),a=(e.dataset.minDate=a?O(a):"0000-01-01",v(e.dataset.maxDate||r.getAttribute("max"))),a=(a&&(e.dataset.maxDate=O(a)),document.createElement("div")),s=(a.classList.add(U),r.cloneNode());s.classList.add(z),s.type="text",a.appendChild(s),a.insertAdjacentHTML("beforeend",D.escapeHTML`
+    <button type="button" class="${Q}" aria-haspopup="true" aria-label="Toggle calendar"></button>
+    <div class="${i}" role="application" hidden></div>
+    <div class="usa-sr-only ${G}" role="status" aria-live="polite"></div>`),r.setAttribute("aria-hidden","true"),r.setAttribute("tabindex","-1"),r.style.display="none",r.classList.add(W),r.removeAttribute("id"),r.removeAttribute("name"),r.required=!1,e.appendChild(a),e.classList.add(V),t&&vt(e,t),r.disabled&&(bt(e),r.disabled=!1),r.hasAttribute("aria-disabled")&&(ft(e),r.removeAttribute("aria-disabled"))})(e)})},getDatePickerContext:H,disable:bt,ariaDisable:ft,enable:e=>{var{externalInputEl:e,toggleBtnEl:t}=H(e);t.disabled=!1,t.removeAttribute("aria-disabled"),e.disabled=!1,e.removeAttribute("aria-disabled"),e.removeAttribute("readonly")},isDateInputInvalid:ht,setCalendarValue:vt,validateDateInput:mt,renderCalendar:u,updateCalendarIfVisible:wt}));E.exports=R},{"../../uswds-core/src/js/config":35,"../../uswds-core/src/js/events":36,"../../uswds-core/src/js/utils/active-element":39,"../../uswds-core/src/js/utils/behavior":40,"../../uswds-core/src/js/utils/is-ios-device":44,"../../uswds-core/src/js/utils/sanitizer":45,"../../uswds-core/src/js/utils/select":48,"../../uswds-core/src/js/utils/select-or-matches":47,"receptor/keymap":10}],20:[function(e,t,r){var a=e("../../uswds-core/src/js/utils/behavior");let s=e("../../uswds-core/src/js/utils/select"),i=e("../../uswds-core/src/js/utils/select-or-matches");var n=e("../../uswds-core/src/js/config").prefix;let{getDatePickerContext:o,isDateInputInvalid:l,updateCalendarIfVisible:c}=e("../../usa-date-picker/src/index");e=n+"-date-range-picker";let u=e+"__range-start",d=e+"__range-end",p="."+(n+"-date-picker"),b="."+e,f="."+u,h="."+d,m=e=>{var t,r,e=e.closest(b);if(e)return t=e.querySelector(f),r=e.querySelector(h),{dateRangePickerEl:e,rangeStartEl:t,rangeEndEl:r};throw new Error("Element is missing outer "+b)},v=e=>{var{dateRangePickerEl:e,rangeStartEl:t,rangeEndEl:r}=m(e),t=o(t).internalInputEl,a=t.value;a&&!l(t)?(r.dataset.minDate=a,r.dataset.rangeDate=a,r.dataset.defaultDate=a):(r.dataset.minDate=e.dataset.minDate||"",r.dataset.rangeDate="",r.dataset.defaultDate=""),c(r)},g=e=>{var{dateRangePickerEl:e,rangeStartEl:t,rangeEndEl:r}=m(e),r=o(r).internalInputEl,a=r.value;a&&!l(r)?(t.dataset.maxDate=a,t.dataset.rangeDate=a,t.dataset.defaultDate=a):(t.dataset.maxDate=e.dataset.maxDate||"",t.dataset.rangeDate="",t.dataset.defaultDate=""),c(t)};n=a({"input change":{[f](){v(this)},[h](){g(this)}}},{init(e){i(b,e).forEach(e=>{(e=>{var e=e.closest(b),[t,r]=s(p,e);if(!t)throw new Error(`${b} is missing inner two '${p}' elements`);if(!r)throw new Error(`${b} is missing second '${p}' element`);t.classList.add(u),r.classList.add(d),e.dataset.minDate||(e.dataset.minDate="0000-01-01");var a=e.dataset.minDate,a=(t.dataset.minDate=a,r.dataset.minDate=a,e.dataset).maxDate;a&&(t.dataset.maxDate=a,r.dataset.maxDate=a),v(e),g(e)})(e)})}});t.exports=n},{"../../usa-date-picker/src/index":19,"../../uswds-core/src/js/config":35,"../../uswds-core/src/js/utils/behavior":40,"../../uswds-core/src/js/utils/select":48,"../../uswds-core/src/js/utils/select-or-matches":47}],21:[function(e,t,n){let r=e("../../uswds-core/src/js/utils/select-or-matches");var a=e("../../uswds-core/src/js/utils/behavior");let l=e("../../uswds-core/src/js/utils/sanitizer");e=e("../../uswds-core/src/js/config").prefix;let c=e+"-file-input",u="."+c,d=e+"-file-input__input",p=e+"-file-input__target",s="."+d,b=e+"-file-input__box",f=e+"-file-input__instructions",h=e+"-file-input__preview",o=e+"-file-input__preview-heading",m=e+"-file-input--disabled",v=e+"-file-input__choose",g=e+"-file-input__accepted-files-message",w=e+"-file-input__drag-text",i=e+"-file-input--drag",y="is-loading",E="has-invalid-file",A=e+"-file-input__preview-image",x=A+"--generic",j=A+"--pdf",L=A+"--word",S=A+"--video",_=A+"--excel",D=e+"-sr-only",C="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",B="Error: This is not a valid file type.",$=Boolean(!0),T="",k="",M=e=>{var t,e=e.closest(u);if(e)return t=e.querySelector(s),{dropZoneEl:e,inputEl:t};throw new Error("Element is missing outer "+u)};let O=e=>{var t=e.charCodeAt(0);return 32===t?"-":65<=t&&t<=90?"img_"+e.toLowerCase():"__"+t.toString(16).slice(-4)},H=e=>e.replace(/[^a-z0-9]/g,O),P=e=>e+"-"+Math.floor(Date.now().toString()/1e3),q=e=>e.hasAttribute("multiple")?"files":"file",R=e=>{var t,r,a,s=e.hasAttribute("aria-disabled")||e.hasAttribute("disabled"),i=(t=e,r=document.createElement("div"),n=document.createElement("div"),i=document.createElement("div"),t.classList.remove(c),t.classList.add(d),r.classList.add(c),i.classList.add(b),n.classList.add(p),n.prepend(i),t.parentNode.insertBefore(n,t),t.parentNode.insertBefore(r,n),n.appendChild(t),r.appendChild(n),n),n=(r=(t=e).closest(u),n=q(t),a=document.createElement("div"),n=`Drag ${n} here or`,o="choose from folder",T=n+" "+o,a.classList.add(f),a.setAttribute("aria-hidden","true"),t.setAttribute("aria-label",T),a.innerHTML=l.escapeHTML`<span class="${w}">${n}</span> <span class="${v}">${o}</span>`,t.parentNode.insertBefore(a,t),(/rv:11.0/i.test(navigator.userAgent)||/Edge\/\d./i.test(navigator.userAgent))&&(r.querySelector("."+w).outerHTML=""),a),o=M(e).dropZoneEl;return s?o.classList.add(m):(t=e,r=document.createElement("div"),a=q(t),s=t.closest(u),t=t.closest("."+p),k=`No ${a} selected.`,r.classList.add(D),r.setAttribute("aria-live","polite"),r.textContent=k,s.insertBefore(r,t)),{instructions:n,dropTarget:i}},I=(e,t)=>{var r=e.querySelectorAll("."+h),a=e.querySelector("."+o),s=e.querySelector("."+g);a&&(a.outerHTML=""),s&&(s.outerHTML="",e.classList.remove(E)),null!==r&&(t&&t.removeAttribute("hidden"),Array.prototype.forEach.call(r,e=>{e.parentNode.removeChild(e)}))},F=(e,t,r)=>{let a=e,s=k;1===t.length?s="You have selected the file: "+r:1<t.length&&(s=`You have selected ${t.length} files: `+r.join(", ")),setTimeout(()=>{a.textContent=s},1e3)},Y=(e,t)=>{var r=document.createElement("div"),a=e.closest("."+p),s=a.querySelector("."+f);let i="Change file",n="";1===t.length?n=l.escapeHTML`Selected file <span class="usa-file-input__choose">${i}</span>`:1<t.length&&(i="Change files",n=l.escapeHTML`${t.length} files selected <span class="usa-file-input__choose">${i}</span>`),s.setAttribute("hidden","true"),r.classList.add(o),r.innerHTML=n,a.insertBefore(r,s),e.setAttribute("aria-label",i)},N=(t,r)=>{t.addEventListener("error",()=>{var e=t;e.src=C,e.classList.add(r)},{once:!0})},U=(e,t,r,a)=>{((e,r,a,s)=>{var i=r.getAttribute("accept");s.classList.remove(E);if(i){var n=i.split(","),i=document.createElement("div"),o=r.dataset.errormessage||B;i.setAttribute("aria-hidden",!0);let t=!0;var l=e.target.files||e.dataTransfer.files;for(let e=0;e<l.length;e+=1){var c=l[e];if(!t)break;for(let e=0;e<n.length;e+=1){var u=n[e];if(t=0<c.name.indexOf(u)||((e,t)=>{let r=!1;e=e.indexOf(t);return r=0<=e?!0:r})(c.type,u.replace(/\*/g,""))){$=!0;break}}}t||(I(s,a),r.value="",i.textContent=o,s.insertBefore(i,r),a=o+" "+T,r.setAttribute("aria-label",a),i.classList.add(g),s.classList.add(E),$=!1,e.preventDefault(),e.stopPropagation())}})(e,t,r,a),!0===$&&((e,t,i,r)=>{var n=e.target.files,e=r.closest("."+c).querySelector("."+D),o=[];I(r,i);for(let e=0;e<n.length;e+=1){let r=new FileReader,a=n[e].name,s;o.push(a),r.onloadstart=function(){s=P(H(a)),i.insertAdjacentHTML("afterend",l.escapeHTML`<div class="${h}" aria-hidden="true">
+          <img id="${s}" src="${C}" alt="" class="${A} ${y}"/>${a}
+        <div>`)},r.onloadend=function(){var e=document.getElementById(s),t=a.split(".").pop();"pdf"===t?N(e,j):"doc"===t||"docx"===t||"pages"===t?N(e,L):"xls"===t||"xlsx"===t||"numbers"===t?N(e,_):"mov"===t||"mp4"===t?N(e,S):N(e,x),e.classList.remove(y),e.src=r.result},n[e]&&r.readAsDataURL(n[e])}0===n.length?t.setAttribute("aria-label",T):Y(t,n),F(e,n,o)})(e,t,r,a)};e=a({},{init(e){r(u,e).forEach(t=>{let{instructions:r,dropTarget:a}=R(t);a.addEventListener("dragover",function(){this.classList.add(i)},!1),a.addEventListener("dragleave",function(){this.classList.remove(i)},!1),a.addEventListener("drop",function(){this.classList.remove(i)},!1),t.addEventListener("change",e=>U(e,t,r,a),!1)})},teardown(e){r(s,e).forEach(e=>{var t=e.parentElement.parentElement;t.parentElement.replaceChild(e,t),e.className=c})},getFileInputContext:M,disable:e=>{var{dropZoneEl:e,inputEl:t}=M(e);t.disabled=!0,e.classList.add(m)},ariaDisable:e=>{e=M(e).dropZoneEl;e.classList.add(m)},enable:e=>{var{dropZoneEl:e,inputEl:t}=M(e);t.disabled=!1,e.classList.remove(m),e.removeAttribute("aria-disabled")}});t.exports=e},{"../../uswds-core/src/js/config":35,"../../uswds-core/src/js/utils/behavior":40,"../../uswds-core/src/js/utils/sanitizer":45,"../../uswds-core/src/js/utils/select-or-matches":47}],22:[function(e,t,r){var a=e("../../uswds-core/src/js/utils/behavior"),s=e("../../uswds-core/src/js/events").CLICK;let i=e("../../uswds-core/src/js/config").prefix,n=`.${i}-footer--big`,o=n+" nav"+` .${i}-footer__primary-link`;function l(a){var e=document.querySelector(n);e&&e.querySelectorAll(o).forEach(e=>{var t=e.getAttribute("class"),r=e.getAttribute("data-tag")||e.tagName,r=document.createElement(a?"button":r);r.setAttribute("class",t),r.classList.toggle(i+"-footer__primary-link--button",a),r.textContent=e.textContent,a&&(r.setAttribute("data-tag",e.tagName),t=i+"-footer-menu-list-"+Math.floor(1e5*Math.random()),r.setAttribute("aria-controls",t),r.setAttribute("aria-expanded","false"),e.nextElementSibling.setAttribute("id",t),r.setAttribute("type","button")),e.after(r),e.remove()})}let c=e=>{l(e.matches)};t.exports=a({[s]:{[o]:function(){var e;window.innerWidth<480&&(e="true"===this.getAttribute("aria-expanded"),this.closest(n).querySelectorAll(o).forEach(e=>{e.setAttribute("aria-expanded",!1)}),this.setAttribute("aria-expanded",!e))}}},{HIDE_MAX_WIDTH:480,init(){l(window.innerWidth<480),this.mediaQueryList=window.matchMedia("(max-width: 479.9px)"),this.mediaQueryList.addListener(c)},teardown(){this.mediaQueryList.removeListener(c)}})},{"../../uswds-core/src/js/config":35,"../../uswds-core/src/js/events":36,"../../uswds-core/src/js/utils/behavior":40}],23:[function(e,t,N){var r=e("receptor/keymap"),a=e("../../uswds-core/src/js/utils/behavior");let s=e("../../uswds-core/src/js/utils/select"),i=e("../../uswds-core/src/js/utils/toggle"),n=e("../../uswds-core/src/js/utils/focus-trap"),o=e("../../usa-accordion/src/index");var l=e("../../uswds-core/src/js/utils/scrollbar-width"),c=e("../../uswds-core/src/js/events").CLICK,e=e("../../uswds-core/src/js/config").prefix;let u=`.${e}-header`,d=`.${e}-nav`;var p=`.${e}-nav-container`;let b=`.${e}-nav__primary`,f=`.${e}-nav__primary-item`,h=`button.${e}-nav__link`;var m=d+" a";let v="data-nav-hidden",g=`.${e}-menu-btn`,w=`.${e}-nav__close`;var y=w+`, .${e}-overlay`;let E=[d,`.${e}-overlay`].join(", "),A=`body *:not(${u}, ${p}, ${d}, ${d} *):not([aria-hidden])`,x=`[${v}]`,j="usa-js-mobile-nav--active",L,S,_,D=()=>document.body.classList.contains(j),C=navigator.userAgent.includes("Safari")&&!navigator.userAgent.includes("Chrome");e=l();let $=window.getComputedStyle(document.body).getPropertyValue("padding-right"),T=parseInt($.replace(/px/,""),10)+parseInt(e.replace(/px/,""),10)+"px",k=()=>{let t=document.querySelector(""+u).parentNode;(_=document.querySelectorAll(A)).forEach(e=>{e!==t&&(e.setAttribute("aria-hidden",!0),e.setAttribute(v,""))})},M=()=>{(_=document.querySelectorAll(x))&&_.forEach(e=>{e.removeAttribute("aria-hidden"),e.removeAttribute(v)})};p=e=>{var t=document.body;let r="boolean"==typeof e?e:!D();e=t,a=`-${window.scrollY}px`,C&&e.style.setProperty("--scrolltop",a),t.classList.toggle(j,r),s(E).forEach(e=>e.classList.toggle("is-visible",r)),L.focusTrap.update(r);var e=t.querySelector(w),a=document.querySelector(g);return t.style.paddingRight=t.style.paddingRight===T?$:T,(r?k:M)(),r&&e?e.focus():!r&&a&&"none"!==getComputedStyle(a).display&&a.focus(),r};let q=()=>{var e=document.body.querySelector(w);D()&&e&&0===e.getBoundingClientRect().width&&L.toggleNav.call(e,!1)},B=()=>L.toggleNav.call(L,!1),I=()=>{S&&(i(S,!1),S=null)};L=a({[c]:{[h](){return S!==this&&I(),S||(S=this,i(S,!0)),!1},body:I,[g]:p,[y]:p,[m](){var e=this.closest(o.ACCORDION);e&&o.getButtons(e).forEach(e=>o.hide(e)),D()&&L.toggleNav.call(L,!1)}},keydown:{[b]:r({Escape:e=>{var t;I(),t=(e=e).target.closest(f),e.target.matches(h)||(e=t.querySelector(h))&&e.focus()}})},focusout:{[b](e){e.target.closest(b).contains(e.relatedTarget)||I()}}},{init(e){e=e.matches(d)?e:e.querySelector(d);e&&(L.focusTrap=n(e,{Escape:B})),C&&document.body.classList.add("is-safari"),q(),window.addEventListener("resize",q,!1)},teardown(){window.removeEventListener("resize",q,!1),S=!1},focusTrap:null,toggleNav:p}),t.exports=L},{"../../usa-accordion/src/index":14,"../../uswds-core/src/js/config":35,"../../uswds-core/src/js/events":36,"../../uswds-core/src/js/utils/behavior":40,"../../uswds-core/src/js/utils/focus-trap":42,"../../uswds-core/src/js/utils/scrollbar-width":46,"../../uswds-core/src/js/utils/select":48,"../../uswds-core/src/js/utils/toggle":51,"receptor/keymap":10}],24:[function(e,t,r){let a=e("receptor/once");var s=e("receptor/keymap");let i=e("../../uswds-core/src/js/utils/select-or-matches");var n=e("../../uswds-core/src/js/utils/behavior"),o=e("../../uswds-core/src/js/config").prefix,l=e("../../uswds-core/src/js/events").CLICK;let u=e("../../uswds-core/src/js/utils/sanitizer"),c=o+"-current",d=["h1","h2","h3","h4","h5","h6"],p=0,b=o+"-in-page-nav",f=o+"-anchor",h=b+"__nav",m=b+"__list",v=b+"__item",g=v+"--primary",w=b+"__link",y=b+"__heading",E=e=>{let t=document.querySelectorAll("."+w);e.map(e=>!0===e.isIntersecting&&1<=e.intersectionRatio&&(t.forEach(e=>e.classList.remove(c)),document.querySelector(`a[href="#${e.target.id}"]`).classList.add(c),!0))},A=(e,t)=>{t=t.indexOf(" ")?t.split(" "):t,e=document.querySelector(e),t.forEach(e=>{if(!d.includes(e))throw new Error(`In-page navigation: data-heading-elements attribute defined with an invalid heading type: "${e}".
+        Define the attribute with one or more of the following: "${d}".
+        Do not use commas or other punctuation in the attribute definition.`)}),e=Array.from(e.querySelectorAll(t));return e},x=e=>{var t=document.querySelector("."+b).dataset.scrollOffset||p;window.scroll({behavior:"smooth",top:e.offsetTop-t,block:"start"}),window.location.hash.slice(1)!==e.id&&window.history.pushState(null,"","#"+e.id)},j=e=>{var t=u.escapeHTML`${e.dataset.titleText||"On this page"}`,r=u.escapeHTML`${e.dataset.titleHeadingLevel||"h4"}`,a=u.escapeHTML`${e.dataset.rootMargin||"0px 0px 0px 0px"}`,s=u.escapeHTML`${e.dataset.threshold||"1"}`,i=u.escapeHTML`${e.dataset.mainContentSelector||"main"}`,n=u.escapeHTML`${e.dataset.headingElements||"h2 h3"}`,a={root:null,rootMargin:a,threshold:[s]};s=i,i=n;let l=A(s,i).filter(e=>{e=window.getComputedStyle(e);return"none"!==e.getPropertyValue("display")&&"hidden"!==e.getPropertyValue("visibility")});n=document.createElement("nav"),n.setAttribute("aria-label",t),n.classList.add(h),s=document.createElement(r);s.classList.add(y),s.setAttribute("tabindex","0"),s.textContent=t,n.appendChild(s);let c=document.createElement("ul");c.classList.add(m),n.appendChild(c),l.forEach(e=>{var t=document.createElement("li"),r=document.createElement("a"),a=document.createElement("a"),s=e.textContent,i=e.tagName.toLowerCase(),n=l[0].tagName.toLowerCase(),o=(e=>{var t=e.textContent.toLowerCase().replace(/[^a-z\d]/g,"-").replace(/-{2,}/g,"-").replace(/^-|-$/g,"");let r,a=0;for(;r=t,1<(a+=1)&&(r+="-"+a),document.getElementById(r););return r})(e);t.classList.add(v),i===n&&t.classList.add(g),r.setAttribute("href","#"+o),r.setAttribute("class",w),r.textContent=s,a.setAttribute("id",o),a.setAttribute("class",f),e.insertAdjacentElement("afterbegin",a),c.appendChild(t),t.appendChild(r)}),e.appendChild(n);i=document.querySelectorAll("."+f);let o=new window.IntersectionObserver(E,a);i.forEach(e=>{o.observe(e)})};e=n({[l]:{["."+w](e){e.preventDefault(),this.disabled||(e=>{e=document.getElementById(e.hash.slice(1));x(e)})(this)}},keydown:{["."+w]:s({Enter:e=>{e=(e=>{let t;return t=(e&&1===e.nodeType?e.getAttribute("href"):e.target.hash).replace("#","")})(e),e=document.getElementById(e);let t=e.parentElement;t&&(t.setAttribute("tabindex",0),t.focus(),t.addEventListener("blur",a(()=>{t.setAttribute("tabindex",-1)}))),x(e)}})}},{init(e){i("."+b,e).forEach(e=>{j(e),(e=window.location.hash.slice(1))&&(e=document.getElementById(e))&&x(e)})}});t.exports=e},{"../../uswds-core/src/js/config":35,"../../uswds-core/src/js/events":36,"../../uswds-core/src/js/utils/behavior":40,"../../uswds-core/src/js/utils/sanitizer":45,"../../uswds-core/src/js/utils/select-or-matches":47,"receptor/keymap":10,"receptor/once":11}],25:[function(e,t,r){let a=e("../../uswds-core/src/js/utils/select-or-matches");var s=e("../../uswds-core/src/js/utils/behavior"),e=e("../../uswds-core/src/js/config").prefix;let i="."+(e+"-masked"),n=e+"-input-mask",o=n+"--content",l="placeholder",p="_#dDmMyY9",b="A",f=(e,t)=>e?t.replace(/\W/g,""):t.replace(/\D/g,""),h=e=>!Number.isNaN(parseInt(e,10)),m=e=>!!e&&e.match(/[A-Z]/i),c=e=>{var t=e,r=t.getAttribute("id"),a=(t.value=(e=>{var t=e.dataset.charset,r=t||e.dataset.placeholder,e=e.value,a=r.length;let s="",i,n;var o=f(t,e);for(i=0,n=0;i<a;i+=1){var l=h(o[n]),c=m(o[n]),u=0<=p.indexOf(r[i]),d=0<=b.indexOf(r[i]);if(u&&l||t&&d&&c)s+=o[n],n+=1;else{if(!t&&!l&&u||t&&(d&&!c||u&&!l))return s;s+=r[i]}if(void 0===o[n])break}return s})(t),a=(t=e).value,t=""+e.dataset.placeholder.substr(a.length),(e=document.createElement("i")).textContent=a,[e,t]),e=document.getElementById(r+"Mask");e.textContent="",e.replaceChildren(a[0],a[1])};e=s({keyup:{[i](){c(this)}}},{init(e){a(i,e).forEach(e=>{var t,r,a;(a=(e=e).getAttribute(l))&&(e.setAttribute("maxlength",a.length),e.setAttribute("data-placeholder",a),e.removeAttribute(l),(t=document.createElement("span")).classList.add(n),t.setAttribute("data-mask",a),(r=document.createElement("span")).classList.add(o),r.setAttribute("aria-hidden","true"),r.id=e.id+"Mask",r.textContent=a,t.appendChild(r),e.parentNode.insertBefore(t,e),t.appendChild(e))})}});t.exports=e},{"../../uswds-core/src/js/config":35,"../../uswds-core/src/js/utils/behavior":40,"../../uswds-core/src/js/utils/select-or-matches":47}],26:[function(e,t,r){var a=e("receptor/keymap"),s=e("../../uswds-core/src/js/utils/behavior");let i=e("../../uswds-core/src/js/utils/toggle"),n=e("../../uswds-core/src/js/utils/focus-trap"),o=e("../../usa-accordion/src/index");var l=e("../../uswds-core/src/js/events").CLICK,e=e("../../uswds-core/src/js/config").prefix;let c=`.${e}-language__submenu`,u=`.${e}-language__primary`,d=`.${e}-language__primary-item`,p=`button.${e}-language__link`,b,f,h=()=>b.toggleLanguage.call(b,!1),m=()=>{f&&(i(f,!1),f=null)};b=s({[l]:{[p](){return f!==this&&m(),f===this?m():f||(f=this,i(f,!0)),!1},body:m,[`.${e}-language`+" a"](){var e=this.closest(o.ACCORDION);e&&o.getButtons(e).forEach(e=>o.hide(e))}},keydown:{[u]:a({Escape:e=>{var t;m(),t=(e=e).target.closest(d),e.target.matches(p)||t.querySelector(p).focus()}})},focusout:{[u](e){e.target.closest(u).contains(e.relatedTarget)||m()}}},{init(e){e=e.matches(c)?e:e.querySelector(c);e&&(b.focusTrap=n(e,{Escape:h}))},teardown(){f=!1},focusTrap:null}),t.exports=b},{"../../usa-accordion/src/index":14,"../../uswds-core/src/js/config":35,"../../uswds-core/src/js/events":36,"../../uswds-core/src/js/utils/behavior":40,"../../uswds-core/src/js/utils/focus-trap":42,"../../uswds-core/src/js/utils/toggle":51,"receptor/keymap":10}],27:[function(e,t,r){let a=e("../../uswds-core/src/js/utils/select-or-matches"),u=e("../../uswds-core/src/js/utils/focus-trap");var s=e("../../uswds-core/src/js/utils/scrollbar-width"),i=e("../../uswds-core/src/js/utils/behavior"),e=e("../../uswds-core/src/js/config").prefix;let d=e+"-modal",n=d+"-overlay",p=d+"-wrapper",b="data-open-modal",f="data-close-modal",h="data-force-action",m="data-modal-hidden",o="."+d,v=`.${p} *[data-focus]`,g=`${p} *[${f}]`,l=(b,g+`, .${n}:not([${h}])`),w=`body > *:not(.${p}):not([aria-hidden])`,y=(m,"usa-js-modal--active"),E="is-visible",A="is-hidden",x,c,j,L=s(),S=()=>{x.toggleModal.call(x,!1)},_=()=>{c=window.getComputedStyle(document.body).getPropertyValue("padding-right"),j=parseInt(c.replace(/px/,""),10)+parseInt(L.replace(/px/,""),10)+"px"};function D(e){let t,r=e.target;var a,s,i,n,o=document.body,l=!document.body.classList.contains(y),c=r?r.getAttribute("aria-controls"):document.querySelector(`.${p}.`+E),c=l?document.getElementById(c):document.querySelector(`.${p}.`+E);return!(!c||(a=c.querySelector(v)?c.querySelector(v):c.querySelector("."+d),s=document.getElementById(c.getAttribute("data-opener")),i=o.querySelector("*[data-open-modal][aria-controls]"),n=c.getAttribute(h),(r="keydown"===e.type&&null!==c?c.querySelector(g):r)&&(r.hasAttribute(b)&&(null===this.getAttribute("id")?(t="modal-"+(Math.floor(9e5*Math.random())+1e5),this.setAttribute("id",t)):t=this.getAttribute("id"),c.setAttribute("data-opener",t)),r.closest("."+d))&&!r.hasAttribute(f)&&!r.closest(`[${f}]`)))&&(o.classList.toggle(y,l),c.classList.toggle(E,l),c.classList.toggle(A,!l),n&&o.classList.toggle("usa-js-no-click",l),o.style.paddingRight===j?o.style.removeProperty("padding-right"):o.style.paddingRight=j,l&&a?(x.focusTrap=n?u(c):u(c,{Escape:S}),x.focusTrap.update(l),a.focus(),document.querySelectorAll(w).forEach(e=>{e.setAttribute("aria-hidden","true"),e.setAttribute(m,"")})):!l&&i&&s&&(document.querySelectorAll("[data-modal-hidden]").forEach(e=>{e.removeAttribute("aria-hidden"),e.removeAttribute(m)}),s.focus(),x.focusTrap.update(l)),l)}let C=(e,t)=>{let r=e.getAttribute("id");var a=e.getAttribute("aria-labelledby"),s=e.getAttribute("aria-describedby"),i=e.hasAttribute(h);if(!a)throw new Error(r+" is missing aria-labelledby attribute");if(s)return t.setAttribute("role","dialog"),t.setAttribute("id",r),t.setAttribute("aria-labelledby",a),t.setAttribute("aria-describedby",s),i&&t.setAttribute(h,i),t.querySelectorAll(l).forEach(e=>{e.setAttribute("aria-controls",r)}),e.removeAttribute("id"),e.removeAttribute("aria-labelledby"),e.removeAttribute("aria-describedby"),e.setAttribute("tabindex","-1"),t;throw new Error(r+" is missing aria-desribedby attribute")},$=e=>{if(!e.getAttribute("id"))throw new Error("Modal markup is missing ID");var t=(e=>{var t=e.getAttribute("id");let r=document.createElement("div");e=Array.from(e.attributes);return _(),r.setAttribute("data-placeholder-for",t),r.style.display="none",r.setAttribute("aria-hidden","true"),e.forEach(e=>{r.setAttribute("data-original-"+e.name,e.value)}),r})(e),r=(e.after(t),t=e,e=document.createElement("div"),r=document.createElement("div"),e.classList.add(A,p),r.classList.add(n),e.append(r),r.append(t),C(t,e),e);document.body.appendChild(r)};x=i({},{init(e){a(o,e).forEach(e=>{var t=e.id;$(e),a(`[aria-controls="${t}"]`,document).forEach(e=>{"A"===e.nodeName&&(e.setAttribute("role","button"),e.addEventListener("click",e=>e.preventDefault())),e.addEventListener("click",D)})})},teardown(e){a(o,e).forEach(e=>{var t=e.id;(e=>{let t=e;var e=t.parentElement.parentElement,r=e.getAttribute("id");r&&((r=document.querySelector(`[data-placeholder-for="${r}"]`))&&(Array.from(r.attributes).forEach(e=>{e.name.startsWith("data-original-")&&t.setAttribute(e.name.substr(14),e.value)}),r.after(t),r.parentElement.removeChild(r)),e.parentElement.removeChild(e))})(e),a(`[aria-controls="${t}"]`,document).forEach(e=>e.removeEventListener("click",D))})},focusTrap:null,toggleModal:D}),t.exports=x},{"../../uswds-core/src/js/config":35,"../../uswds-core/src/js/utils/behavior":40,"../../uswds-core/src/js/utils/focus-trap":42,"../../uswds-core/src/js/utils/scrollbar-width":46,"../../uswds-core/src/js/utils/select-or-matches":47}],28:[function(e,t,r){let a=e("../../uswds-core/src/js/utils/select-or-matches");var s=e("../../uswds-core/src/js/utils/behavior"),e=e("../../uswds-core/src/js/config").prefix;let i="."+(e+"-range"),n=e=>{var t=e.dataset.textPreposition||"of",r=e.dataset.textUnit,a=e.value,s=e.getAttribute("max")||100;let i;i=r?a+` ${r} ${t} `+s:a+` ${t} `+s,e.setAttribute("aria-valuetext",i)};e=s({change:{[i](){n(this)}}},{init(e){a(i,e).forEach(e=>{n(e)})},updateCallout:n});t.exports=e},{"../../uswds-core/src/js/config":35,"../../uswds-core/src/js/utils/behavior":40,"../../uswds-core/src/js/utils/select-or-matches":47}],29:[function(e,t,r){let a=e("receptor/ignore");var s=e("../../uswds-core/src/js/utils/behavior");let i=e("../../uswds-core/src/js/utils/select"),n=e("../../uswds-core/src/js/events").CLICK,o=".js-search-button",l=".js-search-form",c="[type=search]",u="header",d,p=e=>{e=e.closest(u);return(e||document).querySelector(l)},b=(t,e)=>{var r=p(t);if(!r)throw new Error(`No ${l} found for search toggle in ${u}!`);if(t.hidden=e,r.hidden=!e,e){t=r.querySelector(c);t&&t.focus();let e=a(r,()=>{d&&!function(){b(this,!1),d=void 0}.call(d),document.body.removeEventListener(n,e)});setTimeout(()=>{document.body.addEventListener(n,e)},0)}};e=s({[n]:{".js-search-button":function(){b(this,!0),d=this}}},{init(e){i(o,e).forEach(e=>{b(e,!1)})},teardown(){d=void 0}});t.exports=e},{"../../uswds-core/src/js/events":36,"../../uswds-core/src/js/utils/behavior":40,"../../uswds-core/src/js/utils/select":48,"receptor/ignore":8}],30:[function(e,t,r){let a=e("receptor/once");var s=e("../../uswds-core/src/js/utils/behavior"),i=e("../../uswds-core/src/js/events").CLICK,e=e("../../uswds-core/src/js/config").prefix;t.exports=s({[i]:{[`.${e}-skipnav[href^="#"], .${e}-footer__return-to-top [href^="#"]`]:function(){var e=encodeURI(this.getAttribute("href"));let t=document.getElementById("#"===e?"main-content":e.slice(1));t&&(t.style.outline="0",t.setAttribute("tabindex",0),t.focus(),t.addEventListener("blur",a(()=>{t.setAttribute("tabindex",-1)})))}}})},{"../../uswds-core/src/js/config":35,"../../uswds-core/src/js/events":36,"../../uswds-core/src/js/utils/behavior":40,"receptor/once":11}],31:[function(e,t,r){let i=e("../../uswds-core/src/js/utils/select");var a=e("../../uswds-core/src/js/utils/behavior"),s=e("../../uswds-core/src/js/events").CLICK;let n=e("../../uswds-core/src/js/config").prefix,o=e("../../uswds-core/src/js/utils/sanitizer"),l=`.${n}-table`,c="aria-sort",u="ascending",d="descending",p="data-sort-value",b=n+"-table__header__button",f="."+b,h="th[data-sortable]",m=`.${n}-table__announcement-region[aria-live="polite"]`,v=(e,t)=>e.children[t].getAttribute(p)||e.children[t].innerText||e.children[t].textContent,g=(a,s)=>(e,t)=>{var r=v(s?e:t,a),t=v(s?t:e,a);return r&&t&&!Number.isNaN(Number(r))&&!Number.isNaN(Number(t))?r-t:r.toString().localeCompare(t,navigator.language,{numeric:!0,ignorePunctuation:!0})},w=e=>{var t=e.innerText,r=e.getAttribute(c)===u,a=t+", sortable column, currently "+(e.getAttribute(c)===u||e.getAttribute(c)===d||!1?r?"sorted "+u:"sorted "+d:"unsorted"),t=`Click to sort by ${t} in ${r?d:u} order.`;e.setAttribute("aria-label",a),e.querySelector(f).setAttribute("title",t)},y=(t,e)=>{var r,a=t.closest(l);let s=e;if("boolean"!=typeof s&&(s=t.getAttribute(c)===u),!a)throw new Error(h+" is missing outer "+l);(s=((e,t)=>{e.setAttribute(c,!0===t?d:u),w(e);let r=e.closest(l).querySelector("tbody");var a=[].slice.call(r.querySelectorAll("tr"));let s=[].slice.call(e.parentNode.children).indexOf(e);return a.sort(g(s,!t)).forEach(e=>{[].slice.call(e.children).forEach(e=>e.removeAttribute("data-sort-active")),e.children[s].setAttribute("data-sort-active",!0),r.appendChild(e)}),!0})(t,e))&&(r=a,i(h,r).filter(e=>e.closest(l)===r).forEach(e=>{e!==t&&((e=e).removeAttribute(c),w(e))}),((e,t)=>{var r=e.querySelector("caption").innerText,a=t.getAttribute(c)===u,t=t.innerText,e=e.nextElementSibling;if(!e||!e.matches(m))throw new Error("Table containing a sortable column header is not followed by an aria-live region.");r=`The table named "${r}" is now sorted by ${t} in ${a?u:d} order.`;e.innerText=r})(a,t))};e=a({[s]:{[f](e){e.preventDefault(),y(e.target.closest(h),e.target.closest(h).getAttribute(c)===u)}}},{init(e){var t,e=i(h,e),e=(e.forEach(e=>{return e=e,(t=document.createElement("button")).setAttribute("tabindex","0"),t.classList.add(b),t.innerHTML=o.escapeHTML`
+  <svg class="${n}-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+    <g class="descending" fill="transparent">
+      <path d="M17 17L15.59 15.59L12.9999 18.17V2H10.9999V18.17L8.41 15.58L7 17L11.9999 22L17 17Z" />
+    </g>
+    <g class="ascending" fill="transparent">
+      <path transform="rotate(180, 12, 12)" d="M17 17L15.59 15.59L12.9999 18.17V2H10.9999V18.17L8.41 15.58L7 17L11.9999 22L17 17Z" />
+    </g>
+    <g class="unsorted" fill="transparent">
+      <polygon points="15.17 15 13 17.17 13 6.83 15.17 9 16.58 7.59 12 3 7.41 7.59 8.83 9 11 6.83 11 17.17 8.83 15 7.42 16.41 12 21 16.59 16.41 15.17 15"/>
+    </g>
+  </svg>
+  `,e.appendChild(t),void w(e);var t}),e.filter(e=>e.getAttribute(c)===u||e.getAttribute(c)===d)[0]);void 0!==e&&((t=e.getAttribute(c))===u?y(e,!0):t===d&&y(e,!1))},TABLE:l,SORTABLE_HEADER:h,SORT_BUTTON:f});t.exports=e},{"../../uswds-core/src/js/config":35,"../../uswds-core/src/js/events":36,"../../uswds-core/src/js/utils/behavior":40,"../../uswds-core/src/js/utils/sanitizer":45,"../../uswds-core/src/js/utils/select":48}],32:[function(e,t,r){var a=e("../../uswds-core/src/js/utils/behavior");let s=e("../../uswds-core/src/js/utils/select-or-matches");var i=e("../../uswds-core/src/js/config").prefix;let{COMBO_BOX_CLASS:f,enhanceComboBox:n}=e("../../usa-combo-box/src/index"),h="."+(i+"-time-picker"),m={filter:"0?{{ hourQueryFilter }}:{{minuteQueryFilter}}.*{{ apQueryFilter }}m?",apQueryFilter:"([ap])",hourQueryFilter:"([1-9][0-2]?)",minuteQueryFilter:"[\\d]+:([0-9]{0,2})"},v=e=>{let t;var r;return t=e&&([e,r]=e.split(":").map(e=>{let t;e=parseInt(e,10);return t=Number.isNaN(e)?t:e}),null!=e)&&null!=r?60*e+r:t},o=t=>{let r=t.closest(h),a=r.querySelector("input");if(!a)throw new Error(h+" is missing inner input");let s=document.createElement("select");["id","name","required","aria-label","aria-labelledby","disabled","aria-disabled"].forEach(e=>{var t;a.hasAttribute(e)&&(t=a.getAttribute(e),s.setAttribute(e,t),a.removeAttribute(e))});var i=(e,t)=>("0000"+e).slice(-t),t=Math.max(0,v(r.dataset.minTime)||0),n=Math.min(1439,v(r.dataset.maxTime)||1439),o=Math.floor(Math.max(1,r.dataset.step||30));let l;for(let e=t;e<=n;e+=o){u=e,c=void 0,c=u%60,u=Math.floor(u/60);var{minute:c,hour24:u,hour12:d,ampm:p}={minute:c,hour24:u,hour12:u%12||12,ampm:u<12?"am":"pm"},b=document.createElement("option");b.value=i(u,2)+":"+i(c,2),b.text=d+":"+i(c,2)+p,b.text===a.value&&(l=b.value),s.appendChild(b)}r.classList.add(f),Object.keys(m).forEach(e=>{r.dataset[e]=m[e]}),r.dataset.disableFiltering="true",r.dataset.defaultValue=l,r.appendChild(s),a.remove()};e=a({},{init(e){s(h,e).forEach(e=>{o(e),n(e)})},FILTER_DATASET:m});t.exports=e},{"../../usa-combo-box/src/index":18,"../../uswds-core/src/js/config":35,"../../uswds-core/src/js/utils/behavior":40,"../../uswds-core/src/js/utils/select-or-matches":47}],33:[function(e,t,r){var a=e("receptor/keymap");let s=e("../../uswds-core/src/js/utils/select-or-matches");var i=e("../../uswds-core/src/js/utils/behavior"),n=e("../../uswds-core/src/js/config").prefix;let b=e("../../uswds-core/src/js/utils/is-in-viewport");let o=`.${n}-tooltip`;e=`.${n}-tooltip__trigger`;let l=n+"-tooltip__trigger",c=n+"-tooltip",f=n+"-tooltip__body",h="is-set",m="is-visible",v=n+"-tooltip__body--wrap",u=e=>{var t=e.parentNode,r=t.querySelector("."+f);return{trigger:e,wrapper:t,body:r}},d=(t,a,e)=>{t.setAttribute("aria-hidden","false"),t.classList.add(h);let s=e=>{t.classList.remove(f+"--top"),t.classList.remove(f+"--bottom"),t.classList.remove(f+"--right"),t.classList.remove(f+"--left"),t.classList.add(f+"--"+e)},i=e=>{e.style.top=null,e.style.bottom=null,e.style.right=null,e.style.left=null,e.style.margin=null},n=(e,t)=>parseInt(window.getComputedStyle(e).getPropertyValue(t),10),o=(e,t,r)=>0<n(r,"margin-"+e)?t-n(r,"margin-"+e):t,l=e=>{i(e);var t=o("top",e.offsetHeight,a),r=o("left",e.offsetWidth,a);s("top"),e.style.left="50%",e.style.top="-5px",e.style.margin=`-${t}px 0 0 -${r/2}px`},c=e=>{i(e);var t=o("left",e.offsetWidth,a);s("bottom"),e.style.left="50%",e.style.margin=`5px 0 0 -${t/2}px`},u=e=>{i(e);var t=o("top",e.offsetHeight,a);s("right"),e.style.top="50%",e.style.left=a.offsetLeft+a.offsetWidth+5+"px",e.style.margin=`-${t/2}px 0 0 0`},d=e=>{i(e);var t=o("top",e.offsetHeight,a),r=o("left",a.offsetLeft>e.offsetWidth?a.offsetLeft-e.offsetWidth:e.offsetWidth,a);s("left"),e.style.top="50%",e.style.left="-5px",e.style.margin=`-${t/2}px 0 0 ${a.offsetLeft>e.offsetWidth?r:-r}px`};function p(r,e=1){let a=[l,c,u,d],s=!1;!function e(t){t<a.length&&((0,a[t])(r),b(r)?s=!0:e(t+=1))}(0),s||(r.classList.add(v),e<=2&&p(r,e+=1))}switch(e){case"top":l(t),b(t)||p(t);break;case"bottom":c(t),b(t)||p(t);break;case"right":u(t),b(t)||p(t);break;case"left":d(t),b(t)||p(t)}setTimeout(()=>{t.classList.add(m)},20)},p=e=>{e.classList.remove(m),e.classList.remove(h),e.classList.remove(v),e.setAttribute("aria-hidden","true")},g=e=>{var t="tooltip-"+(Math.floor(9e5*Math.random())+1e5),r=e.getAttribute("title");let a=document.createElement("span");var s=document.createElement("span"),i=e.getAttribute("data-classes");let n=e.getAttribute("data-position");return n||(n="top",e.setAttribute("data-position",n)),e.setAttribute("aria-describedby",t),e.setAttribute("tabindex","0"),e.removeAttribute("title"),e.classList.remove(c),e.classList.add(l),e.parentNode.insertBefore(a,e),a.appendChild(e),a.classList.add(c),a.appendChild(s),i&&i.split(" ").forEach(e=>a.classList.add(e)),s.classList.add(f),s.setAttribute("id",t),s.setAttribute("role","tooltip"),s.setAttribute("aria-hidden","true"),s.textContent=r,{tooltipBody:s,position:n,tooltipContent:r,wrapper:a}};n=i({"mouseover focusin":{[o](e){e=e.target;"BUTTON"===e.nodeName&&e.hasAttribute("title")&&g(e)},[e](e){var{trigger:e,body:t}=u(e.target);d(t,e,e.dataset.position)}},focusout:{[e](e){e=u(e.target).body;p(e)}},keydown:{body:a({Escape:()=>{var e=s(`.${f}.`+h);e&&e.forEach(e=>p(e))}})}},{init(e){s(o,e).forEach(e=>{g(e);let{body:t,wrapper:r}=u(e);r.addEventListener("mouseleave",()=>p(t))})},teardown(e){s(o,e).forEach(e=>{e.removeEventListener("mouseleave",p)})},setup:g,getTooltipElements:u,show:d,hide:p});t.exports=n},{"../../uswds-core/src/js/config":35,"../../uswds-core/src/js/utils/behavior":40,"../../uswds-core/src/js/utils/is-in-viewport":43,"../../uswds-core/src/js/utils/select-or-matches":47,"receptor/keymap":10}],34:[function(e,t,r){var a=e("../../uswds-core/src/js/utils/behavior");let s=e("../../uswds-core/src/js/utils/validate-input");var i=e("../../uswds-core/src/js/config").prefix;let n=e("../../uswds-core/src/js/utils/select-or-matches"),o="input[data-validation-element],textarea[data-validation-element]",l=`.${i}-checklist__item`,c=e=>{var t,a,r,s;s=(t=e).parentNode,r=t.getAttribute("id")+"-sr-summary",t.setAttribute("aria-describedby",r),(t=document.createElement("span")).setAttribute("data-validation-status",""),t.classList.add("usa-sr-only"),t.setAttribute("aria-live","polite"),t.setAttribute("aria-atomic",!0),t.setAttribute("id",r),s.append(t),r=(a=e).parentNode.querySelectorAll(l),s=a.getAttribute("data-validation-element"),a.setAttribute("aria-controls",s),r.forEach(e=>{let t="status incomplete";a.hasAttribute("data-validation-incomplete")&&(t=a.getAttribute("data-validation-incomplete"));var r=`${e.textContent} ${t} `;e.setAttribute("aria-label",r)})};e=a({"input change":{"input[data-validation-element],textarea[data-validation-element]"(e){e=e.target,s(e)}}},{init(e){n(o,e).forEach(e=>c(e))}});t.exports=e},{"../../uswds-core/src/js/config":35,"../../uswds-core/src/js/utils/behavior":40,"../../uswds-core/src/js/utils/select-or-matches":47,"../../uswds-core/src/js/utils/validate-input":52}],35:[function(e,t,r){t.exports={prefix:"usa"}},{}],36:[function(e,t,r){t.exports={CLICK:"click"}},{}],37:[function(e,t,r){var a=e("../../../usa-accordion/src/index"),s=e("../../../usa-banner/src/index"),i=e("../../../usa-button/src/index"),n=e("../../../usa-character-count/src/index"),o=e("../../../usa-combo-box/src/index"),l=e("../../../usa-date-picker/src/index"),c=e("../../../usa-date-range-picker/src/index"),u=e("../../../usa-file-input/src/index"),d=e("../../../usa-footer/src/index"),p=e("../../../usa-in-page-navigation/src/index"),b=e("../../../usa-input-mask/src/index"),f=e("../../../usa-language-selector/src/index"),h=e("../../../usa-modal/src/index"),m=e("../../../usa-header/src/index"),v=e("../../../_usa-password/src/index"),g=e("../../../usa-range/src/index"),w=e("../../../usa-search/src/index"),y=e("../../../usa-skipnav/src/index"),E=e("../../../usa-table/src/index"),A=e("../../../usa-time-picker/src/index"),x=e("../../../usa-tooltip/src/index"),e=e("../../../usa-validation/src/index");t.exports={accordion:a,banner:s,button:i,characterCount:n,comboBox:o,datePicker:l,dateRangePicker:c,fileInput:u,footer:d,inPageNavigation:p,inputMask:b,languageSelector:f,modal:h,navigation:m,password:v,range:g,search:w,skipnav:y,table:E,timePicker:A,tooltip:x,validator:e}},{"../../../_usa-password/src/index":13,"../../../usa-accordion/src/index":14,"../../../usa-banner/src/index":15,"../../../usa-button/src/index":16,"../../../usa-character-count/src/index":17,"../../../usa-combo-box/src/index":18,"../../../usa-date-picker/src/index":19,"../../../usa-date-range-picker/src/index":20,"../../../usa-file-input/src/index":21,"../../../usa-footer/src/index":22,"../../../usa-header/src/index":23,"../../../usa-in-page-navigation/src/index":24,"../../../usa-input-mask/src/index":25,"../../../usa-language-selector/src/index":26,"../../../usa-modal/src/index":27,"../../../usa-range/src/index":28,"../../../usa-search/src/index":29,"../../../usa-skipnav/src/index":30,"../../../usa-table/src/index":31,"../../../usa-time-picker/src/index":32,"../../../usa-tooltip/src/index":33,"../../../usa-validation/src/index":34}],38:[function(e,t,r){window.uswdsPresent=!0;var a=e("./config");let s=e("./index");a.components=s;e=()=>{let t=document.body;Object.keys(s).forEach(e=>{s[e].on(t)})};"loading"===document.readyState?document.addEventListener("DOMContentLoaded",e,{once:!0}):e(),r.default=a,r.initComponents=e},{"./config":35,"./index":37}],39:[function(e,t,r){t.exports=(e=document)=>e.activeElement},{}],40:[function(e,t,r){let a=e("receptor/behavior"),s=(...e)=>function(t=document.body){e.forEach(e=>{"function"==typeof this[e]&&this[e].call(this,t)})};t.exports=(e,t)=>a(e,{on:s("init","add"),off:s("teardown","remove"),...t})},{"receptor/behavior":4}],41:[function(e,t,r){t.exports=function(t,r=500){let a=null;return(...e)=>{window.clearTimeout(a),a=window.setTimeout(()=>{t.apply(this,e)},r)}}},{}],42:[function(e,t,r){let s=e("receptor").keymap,i=e("./behavior"),n=e("./select"),o=e("./active-element"),l=e=>{let t=n('a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, [tabindex="0"], [contenteditable]',e),r=t[0],a=t[t.length-1];return{firstTabStop:r,lastTabStop:a,tabAhead:function(e){o()===a&&(e.preventDefault(),r.focus())},tabBack:function(e){o()===r?(e.preventDefault(),a.focus()):t.includes(o())||(e.preventDefault(),r.focus())}}};t.exports=(e,t={})=>{let r=l(e);var{Esc:e,Escape:a}=t,e=(a&&!e&&(t.Esc=a),s({Tab:r.tabAhead,"Shift+Tab":r.tabBack,...t}));return i({keydown:e},{init(){r.firstTabStop&&r.firstTabStop.focus()},update(e){e?this.on():this.off()}})}},{"./active-element":39,"./behavior":40,"./select":48,receptor:9}],43:[function(e,t,r){t.exports=function(e,t=window,r=document.documentElement){return 0<=(e=e.getBoundingClientRect()).top&&0<=e.left&&e.bottom<=(t.innerHeight||r.clientHeight)&&e.right<=(t.innerWidth||r.clientWidth)}},{}],44:[function(e,t,r){t.exports=function(){return"undefined"!=typeof navigator&&(navigator.userAgent.match(/(iPod|iPhone|iPad)/g)||"MacIntel"===navigator.platform&&1<navigator.maxTouchPoints)&&!window.MSStream}},{}],45:[function(e,t,r){t.exports=(()=>{var s={_entity:/[&<>"'/]/g,_entities:{"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&apos;","/":"&#x2F;"},getEntity:function(e){return s._entities[e]},escapeHTML:function(e){for(var t="",r=0;r<e.length;r++)t+=e[r],r+1<arguments.length&&(t+=String(arguments[r+1]||"").replace(s._entity,s.getEntity));return t},createSafeHTML:function(e){for(var t=arguments.length,r=new Array(1<t?t-1:0),a=1;a<t;a++)r[a-1]=arguments[a];return{__html:s.escapeHTML.apply(s,[e].concat(r)),toString:function(){return"[object WrappedHTMLObject]"},info:"This is a wrapped HTML object. See https://developer.mozilla.org/en-US/Firefox_OS/Security/Security_Automation for more."}},unwrapSafeHTML:function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return t.map(function(e){return e.__html}).join("")}};return s})()},{}],46:[function(e,t,r){t.exports=function(){var e=document.createElement("div"),t=(e.style.visibility="hidden",e.style.overflow="scroll",e.style.msOverflowStyle="scrollbar",document.body.appendChild(e),document.createElement("div")),t=(e.appendChild(t),e.offsetWidth-t.offsetWidth+"px");return e.parentNode.removeChild(e),t}},{}],47:[function(e,t,r){let s=e("./select");t.exports=(e,t)=>{var r,a=s(e,t);return"string"==typeof e&&(r=t)&&"object"==typeof r&&1===r.nodeType&&t.matches(e)&&a.push(t),a}},{"./select":48}],48:[function(e,t,r){t.exports=(e,t)=>{var r;return"string"!=typeof e?[]:(r=(t=t&&(r=t)&&"object"==typeof r&&1===r.nodeType?t:window.document).querySelectorAll(e),Array.prototype.slice.call(r))}},{}],49:[function(e,t,r){t.exports=(e,t)=>{e.setAttribute("autocapitalize","off"),e.setAttribute("autocorrect","off"),e.setAttribute("type",t?"password":"text")}},{}],50:[function(e,t,r){let s=e("resolve-id-refs"),i=e("./toggle-field-mask"),n="aria-pressed",o="data-show-text";t.exports=e=>{let t=e.hasAttribute(n)&&"true"!==e.getAttribute(n);s(e.getAttribute("aria-controls")).forEach(e=>i(e,t)),e.hasAttribute(o)||e.setAttribute(o,e.textContent);var r=e.getAttribute(o),a=e.getAttribute("data-hide-text")||r.replace(/\bShow\b/i,e=>`${"S"===e[0]?"H":"h"}ide`);return e.textContent=t?r:a,e.setAttribute(n,t),t}},{"./toggle-field-mask":49,"resolve-id-refs":12}],51:[function(e,t,r){let a="aria-expanded";t.exports=(e,t)=>{let r=t;"boolean"!=typeof r&&(r="false"===e.getAttribute(a)),e.setAttribute(a,r);t=e.getAttribute("aria-controls"),e=document.getElementById(t);if(e)return r?e.removeAttribute("hidden"):e.setAttribute("hidden",""),r;throw new Error(`No toggle target found with id: "${t}"`)}},{}],52:[function(e,t,r){let l=e("./debounce");e=e("../config").prefix;let c=e+"-checklist__item--checked";t.exports=function(i){var e=i.dataset.validationElement;let n="#"===e.charAt(0)?document.querySelector(e):document.getElementById(e);if(!n)throw new Error(`No validation element found with id: "${e}"`);let o="";Object.entries(i.dataset).forEach(([r,a])=>{if(r.startsWith("validate")){var r=r.substr("validate".length).toLowerCase(),a=new RegExp(a),s=`[data-validator="${r}"]`,s=n.querySelector(s);let e=i.parentNode.querySelector("[data-validation-status]");a=a.test(i.value);if(s.classList.toggle(c,a),!s)throw new Error(`No validator checkbox found for: "${r}"`);a=i.dataset.validationComplete||"status complete",r=i.dataset.validationIncomplete||"status incomplete";let t=s.textContent+" ";s.classList.contains(c)?t+=a:t+=r,s.setAttribute("aria-label",t),o+=t+". ",l(()=>{e.textContent=o},1e3)()}})}},{"../config":35,"./debounce":41}]},{},[38]);
+//# sourceMappingURL=uswds.min.js.map
diff --git a/html/matt-chat/uswds/js/uswds.min.js.map b/html/matt-chat/uswds/js/uswds.min.js.map
new file mode 100644
index 0000000..d1237b4
--- /dev/null
+++ b/html/matt-chat/uswds/js/uswds.min.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["node_modules/browser-pack/_prelude.js","node_modules/element-closest/element-closest.js","node_modules/keyboardevent-key-polyfill/index.js","node_modules/object-assign/index.js","node_modules/receptor/behavior/index.js","node_modules/receptor/compose/index.js","node_modules/receptor/delegate/index.js","node_modules/receptor/delegateAll/index.js","node_modules/receptor/ignore/index.js","node_modules/receptor/index.js","node_modules/receptor/keymap/index.js","node_modules/receptor/once/index.js","node_modules/resolve-id-refs/index.js","packages/_usa-password/src/index.js","packages/usa-accordion/src/index.js","packages/usa-banner/src/index.js","packages/usa-button/src/index.js","packages/usa-character-count/src/index.js","packages/usa-combo-box/src/index.js","packages/usa-date-picker/src/index.js","packages/usa-date-range-picker/src/index.js","packages/usa-file-input/src/index.js","packages/usa-footer/src/index.js","packages/usa-header/src/index.js","packages/usa-in-page-navigation/src/index.js","packages/usa-input-mask/src/index.js","packages/usa-language-selector/src/index.js","packages/usa-modal/src/index.js","packages/usa-range/src/index.js","packages/usa-search/src/index.js","packages/usa-skipnav/src/index.js","packages/usa-table/src/index.js","packages/usa-time-picker/src/index.js","packages/usa-tooltip/src/index.js","packages/usa-validation/src/index.js","packages/uswds-core/src/js/config.js","packages/uswds-core/src/js/events.js","packages/uswds-core/src/js/index.js","packages/uswds-core/src/js/start.js","packages/uswds-core/src/js/utils/active-element.js","packages/uswds-core/src/js/utils/behavior.js","packages/uswds-core/src/js/utils/debounce.js","packages/uswds-core/src/js/utils/focus-trap.js","packages/uswds-core/src/js/utils/is-in-viewport.js","packages/uswds-core/src/js/utils/is-ios-device.js","packages/uswds-core/src/js/utils/sanitizer.js","packages/uswds-core/src/js/utils/scrollbar-width.js","packages/uswds-core/src/js/utils/select-or-matches.js","packages/uswds-core/src/js/utils/select.js","packages/uswds-core/src/js/utils/toggle-field-mask.js","packages/uswds-core/src/js/utils/toggle-form-input.js","packages/uswds-core/src/js/utils/toggle.js","packages/uswds-core/src/js/utils/validate-input.js"],"names":["r","e","n","t","o","i","f","c","require","u","a","Error","code","p","exports","call","length","1","module","ElementProto","window","Element","prototype","matches","msMatchesSelector","mozMatchesSelector","webkitMatchesSelector","selector","element","this","elements","document","ownerDocument","querySelectorAll","index","Boolean","closest","nodeType","parentNode","keyboardeventKeyPolyfill","polyfill","KeyboardEvent","proto","get","x","key","keys","which","keyCode","Array","isArray","shiftKey","Object","defineProperty","3","6","8","9","12","13","16","17","18","19","20","27","28","29","30","31","32","33","34","35","36","37","38","39","40","41","42","43","44","45","46","48","49","50","51","52","53","54","55","56","57","91","93","144","145","181","182","183","186","187","188","189","190","191","192","219","220","221","222","224","225","246","247","248","249","250","251","letter","String","fromCharCode","toLowerCase","toUpperCase","define","amd","getOwnPropertySymbols","hasOwnProperty","propIsEnumerable","propertyIsEnumerable","assign","test1","getOwnPropertyNames","test2","test3","order2","map","join","split","forEach","err","target","source","from","to","val","TypeError","s","arguments","symbols","delegate","delegateAll","DELEGATE_PATTERN","popKey","obj","value","events","props","listeners","reduce","memo","type","handler","match","options","capture","passive","listener","indexOf","_type","concat","add","addEventListener","remove","removeEventListener","functions","some","fn","event","compose","selectors","delegates","push","contains","behavior","ignore","keymap","MODIFIERS","Alt","Control","Ctrl","Shift","hasModifiers","modifier","result","_key","undefined","wrapped","currentTarget","RE_TRIM","RE_SPLIT","trim","str","replace","ids","doc","getElementById","id","querySelector","bind","el","toggleFormInput","CLICK","PREFIX","preventDefault","select","toggle","isElementInViewport","ACCORDION","BUTTON","EXPANDED","getAccordionButtons","accordion","filter","button","toggleButton","expanded","safeExpanded","multiselectable","hasAttribute","other","getAttribute","scrollIntoView","init","root","show","hide","getButtons","HEADER","EXPANDED_CLASS","BANNER_BUTTON","trigger","classList","anchorButton","keydown","a[class*=\"usa-button\"]"," ","click","debounce","CHARACTER_COUNT_CLASS","CHARACTER_COUNT","FORM_GROUP_CLASS","FORM_GROUP_ERROR_CLASS","FORM_GROUP","LABEL_ERROR_CLASS","INPUT","INPUT_ERROR_CLASS","MESSAGE","VALIDATION_MESSAGE","MESSAGE_INVALID_CLASS","STATUS_MESSAGE_CLASS","STATUS_MESSAGE_SR_ONLY_CLASS","STATUS_MESSAGE","STATUS_MESSAGE_SR_ONLY","DEFAULT_STATUS_LABEL","getCharacterCountElements","inputEl","characterCountEl","formGroupEl","inputID","labelEl","messageEl","createStatusMessages","statusMessage","createElement","srStatusMessage","defaultMessage","dataset","maxlength","setAttribute","textContent","append","getCountMessage","currentLength","maxLength","let","newMessage","difference","Math","abs","srUpdateStatus","msgEl","updateCountMessage","parseInt","currentStatusMessage","isOverLimit","validationMessage","setCustomValidity","enhanceCharacterCount","removeAttribute","characterCount","input","selectOrMatches","Sanitizer","COMBO_BOX_CLASS","COMBO_BOX_PRISTINE_CLASS","SELECT_CLASS","INPUT_CLASS","CLEAR_INPUT_BUTTON_CLASS","CLEAR_INPUT_BUTTON_WRAPPER_CLASS","INPUT_BUTTON_SEPARATOR_CLASS","TOGGLE_LIST_BUTTON_CLASS","TOGGLE_LIST_BUTTON_WRAPPER_CLASS","LIST_CLASS","LIST_OPTION_CLASS","LIST_OPTION_FOCUSED_CLASS","LIST_OPTION_SELECTED_CLASS","STATUS_CLASS","COMBO_BOX","SELECT","CLEAR_INPUT_BUTTON","TOGGLE_LIST_BUTTON","LIST","LIST_OPTION","LIST_OPTION_FOCUSED","LIST_OPTION_SELECTED","STATUS","DEFAULT_FILTER","changeElementValue","elementToChange","CustomEvent","bubbles","cancelable","detail","dispatchEvent","getComboBoxContext","selectEl","listEl","statusEl","focusedOptionEl","selectedOptionEl","toggleListBtnEl","clearInputBtnEl","isPristine","comboBoxEl","disableFiltering","disable","hidden","disabled","enhanceComboBox","_comboBoxEl","enhanced","selectId","selectLabel","listId","listIdLabel","additionalAttributes","defaultValue","placeholder","selectedOption","len","optionEl","name","attr","escapeHTML","insertAdjacentElement","insertAdjacentHTML","text","highlightOption","nextEl","skipFocus","preventScroll","optionBottom","offsetTop","offsetHeight","scrollTop","focus","generateDynamicRegExp","query","extras","escapeRegExp","find","m","$1","queryFilter","matcher","RegExp","displayList","selectedItemId","firstFoundId","listOptionBaseId","inputValue","regex","optionsStartsWith","optionsContains","optionList","optionMatchesQuery","option","test","startsWith","optionId","numOptions","optionHtml","classes","tabindex","ariaSelected","li","noResults","innerHTML","item","itemToFocus","hideList","selectItem","listOptionEl","resetSelection","selectValue","handleDownFromInput","nextOptionEl","handleDownFromListOption","nextSibling","handleUpFromListOption","previousSibling","listShown","comboBox","clearButtonEl","focusout","relatedTarget","Escape","Enter","ArrowDown","Down","ArrowUp","Up","Shift+Tab","mouseover","enable","activeElement","isIosDevice","DATE_PICKER_CLASS","DATE_PICKER_WRAPPER_CLASS","DATE_PICKER_INITIALIZED_CLASS","DATE_PICKER_ACTIVE_CLASS","DATE_PICKER_INTERNAL_INPUT_CLASS","DATE_PICKER_EXTERNAL_INPUT_CLASS","DATE_PICKER_BUTTON_CLASS","DATE_PICKER_CALENDAR_CLASS","DATE_PICKER_STATUS_CLASS","CALENDAR_DATE_CLASS","CALENDAR_DATE_FOCUSED_CLASS","CALENDAR_DATE_SELECTED_CLASS","CALENDAR_DATE_PREVIOUS_MONTH_CLASS","CALENDAR_DATE_CURRENT_MONTH_CLASS","CALENDAR_DATE_NEXT_MONTH_CLASS","CALENDAR_DATE_RANGE_DATE_CLASS","CALENDAR_DATE_TODAY_CLASS","CALENDAR_DATE_RANGE_DATE_START_CLASS","CALENDAR_DATE_RANGE_DATE_END_CLASS","CALENDAR_DATE_WITHIN_RANGE_CLASS","CALENDAR_PREVIOUS_YEAR_CLASS","CALENDAR_PREVIOUS_MONTH_CLASS","CALENDAR_NEXT_YEAR_CLASS","CALENDAR_NEXT_MONTH_CLASS","CALENDAR_MONTH_SELECTION_CLASS","CALENDAR_YEAR_SELECTION_CLASS","CALENDAR_MONTH_CLASS","CALENDAR_MONTH_FOCUSED_CLASS","CALENDAR_MONTH_SELECTED_CLASS","CALENDAR_YEAR_CLASS","CALENDAR_YEAR_FOCUSED_CLASS","CALENDAR_YEAR_SELECTED_CLASS","CALENDAR_PREVIOUS_YEAR_CHUNK_CLASS","CALENDAR_NEXT_YEAR_CHUNK_CLASS","CALENDAR_DATE_PICKER_CLASS","CALENDAR_MONTH_PICKER_CLASS","CALENDAR_YEAR_PICKER_CLASS","CALENDAR_TABLE_CLASS","CALENDAR_ROW_CLASS","CALENDAR_CELL_CLASS","CALENDAR_CELL_CENTER_ITEMS_CLASS","CALENDAR_MONTH_LABEL_CLASS","CALENDAR_DAY_OF_WEEK_CLASS","DATE_PICKER","DATE_PICKER_BUTTON","DATE_PICKER_INTERNAL_INPUT","DATE_PICKER_EXTERNAL_INPUT","DATE_PICKER_CALENDAR","DATE_PICKER_STATUS","CALENDAR_DATE","CALENDAR_DATE_FOCUSED","CALENDAR_DATE_CURRENT_MONTH","CALENDAR_PREVIOUS_YEAR","CALENDAR_PREVIOUS_MONTH","CALENDAR_NEXT_YEAR","CALENDAR_NEXT_MONTH","CALENDAR_YEAR_SELECTION","CALENDAR_MONTH_SELECTION","CALENDAR_MONTH","CALENDAR_YEAR","CALENDAR_PREVIOUS_YEAR_CHUNK","CALENDAR_NEXT_YEAR_CHUNK","CALENDAR_DATE_PICKER","CALENDAR_MONTH_PICKER","CALENDAR_YEAR_PICKER","CALENDAR_MONTH_FOCUSED","CALENDAR_YEAR_FOCUSED","MONTH_LABELS","DAY_OF_WEEK_LABELS","YEAR_CHUNK","DEFAULT_EXTERNAL_DATE_FORMAT","INTERNAL_DATE_FORMAT","processFocusableSelectors","DATE_PICKER_FOCUSABLE","MONTH_PICKER_FOCUSABLE","YEAR_PICKER_FOCUSABLE","keepDateWithinMonth","dateToCheck","month","getMonth","setDate","year","date","newDate","Date","setFullYear","today","day","getDate","getFullYear","startOfMonth","lastDayOfMonth","addDays","_date","numDays","getTime","subDays","addWeeks","numWeeks","startOfWeek","dayOfWeek","getDay","addMonths","numMonths","dateMonth","setMonth","subMonths","addYears","numYears","subYears","setYear","min","dateA","dateB","max","isSameYear","isSameMonth","isSameDay","keepDateBetweenMinAndMax","minDate","maxDate","isDateWithinMinAndMax","isDatesMonthOutsideMinOrMax","isDatesYearOutsideMinOrMax","setRangeDates","rangeDate","rangeStartDate","rangeConclusionDate","rangeEndDate","withinRangeStartDate","withinRangeEndDate","parseDateString","dateString","dateFormat","adjustDate","parsed","monthStr","dayStr","yearStr","Number","isNaN","currentYearStub","currentYear","lastDayOfTheMonth","formatDate","padZeros","slice","listToGridHtml","htmlArray","rowSize","grid","row","tr","td","createTableBody","tableBody","getDatePickerContext","datePickerEl","internalInputEl","externalInputEl","calendarEl","toggleBtnEl","firstYearChunkEl","inputDate","selectedDate","calendarDate","defaultDate","ariaDisable","isDateInputInvalid","checkDate","isInvalid","dateStringParts","validateDateInput","setCalendarValue","parsedDate","formattedDate","renderCalendar","_dateToDisplay","todaysDate","dateToDisplay","calendarWasHidden","focusedDate","focusedMonth","focusedYear","prevMonth","nextMonth","currentFormattedDate","firstOfMonth","prevButtonsDisabled","nextButtonsDisabled","monthLabel","days","dateToRender","isDisabled","isSelected","btn","datesGrid","newCalendar","cloneNode","table","style","top","tableHead","tableHeadRow","daysOfWeek","Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","th","replaceChild","statuses","hideCalendar","updateCalendarIfVisible","displayMonthSelection","monthToDisplay","selectedMonth","months","monthToCheck","monthsHtml","monthsGrid","displayYearSelection","yearToDisplay","selectedYear","yearToChunk","prevYearChunkDisabled","nextYearChunkDisabled","years","yearIndex","yearsCalendarWrapper","yearsTableParent","yearsHTMLTableBody","yearsHTMLTableBodyRow","previousYearsBtn","nextYearsBtn","yearsTable","yearsGrid","yearsTableBody","yearsHTMLTableBodyDetailPrev","yearsHTMLTableBodyYearsDetail","yearsHTMLTableBodyDetailNext","handleEscapeFromCalendar","adjustCalendar","adjustDateFn","cappedDate","handleUpFromDate","subWeeks","handleDownFromDate","handleLeftFromDate","handleRightFromDate","handleHomeFromDate","handleEndFromDate","endOfWeek","handlePageDownFromDate","handlePageUpFromDate","handleShiftPageDownFromDate","handleShiftPageUpFromDate","adjustMonthSelectionScreen","adjustMonthFn","monthEl","currentDate","adjustedMonth","handleUpFromMonth","handleDownFromMonth","handleLeftFromMonth","handleRightFromMonth","handleHomeFromMonth","handleEndFromMonth","handlePageDownFromMonth","handlePageUpFromMonth","adjustYearSelectionScreen","adjustYearFn","yearEl","adjustedYear","handleUpFromYear","handleDownFromYear","handleLeftFromYear","handleRightFromYear","handleHomeFromYear","handleEndFromYear","handlePageUpFromYear","handlePageDownFromYear","tabHandler","focusable","getFocusableContext","focusableElements","lastTabIndex","firstTabStop","lastTabStop","focusIndex","isNotFound","isFirstTab","isLastTab","tabAhead","tabBack","datePickerTabEventHandler","monthPickerTabEventHandler","yearPickerTabEventHandler","datePickerEvents","calendarDateEl","_buttonEl","nextToFocus","keyup","keydownKeyCode","Left","ArrowLeft","Right","ArrowRight","Home","End","PageDown","PageUp","Shift+PageDown","Shift+PageUp","Tab","newValue","datePicker","dateEl","hoverDate","buttonDate","calendarWrapper","appendChild","display","required","DATE_RANGE_PICKER_CLASS","DATE_RANGE_PICKER_RANGE_START_CLASS","DATE_RANGE_PICKER_RANGE_END_CLASS","DATE_RANGE_PICKER","DATE_RANGE_PICKER_RANGE_START","DATE_RANGE_PICKER_RANGE_END","getDateRangePickerContext","rangeStartEl","rangeEndEl","dateRangePickerEl","handleRangeStartUpdate","updatedDate","handleRangeEndUpdate","dateRangePicker","input change","rangeStart","rangeEnd","DROPZONE_CLASS","DROPZONE","TARGET_CLASS","BOX_CLASS","INSTRUCTIONS_CLASS","PREVIEW_CLASS","PREVIEW_HEADING_CLASS","DISABLED_CLASS","CHOOSE_CLASS","ACCEPTED_FILE_MESSAGE_CLASS","DRAG_TEXT_CLASS","DRAG_CLASS","LOADING_CLASS","INVALID_FILE_CLASS","GENERIC_PREVIEW_CLASS_NAME","GENERIC_PREVIEW_CLASS","PDF_PREVIEW_CLASS","WORD_PREVIEW_CLASS","VIDEO_PREVIEW_CLASS","EXCEL_PREVIEW_CLASS","SR_ONLY_CLASS","SPACER_GIF","DEFAULT_ERROR_LABEL_TEXT","TYPE_IS_VALID","DEFAULT_ARIA_LABEL_TEXT","DEFAULT_FILE_STATUS_TEXT","getFileInputContext","dropZoneEl","replaceName","charCodeAt","toString","makeSafeForID","createUniqueID","floor","now","getItemsLabel","fileInputEl","enhanceFileInput","itemsLabel","isInputDisabled","dropTarget","fileInputParent","box","prepend","insertBefore","instructions","dragText","chooseText","navigator","userAgent","outerHTML","fileInputTarget","removeOldPreviews","filePreviews","currentPreviewHeading","currentErrorMessage","node","removeChild","updateStatusMessage","statusElement","fileNames","fileStore","setTimeout","addPreviewHeading","filePreviewsHeading","changeItemText","previewHeadingText","setPreviewFallback","previewImage","fallbackClass","localPreviewImage","src","once","handleUpload","acceptedFilesAttr","acceptedFiles","errorMessage","errorMessageText","errormessage","allFilesAllowed","scannedFiles","files","dataTransfer","file","j","fileType","returnValue","pos","ariaLabelText","stopPropagation","reader","FileReader","fileName","imageId","onloadstart","onloadend","fileExtension","pop","readAsDataURL","fileInput","teardown","fileInputTopElement","parentElement","className","SCOPE","toggleHtmlTag","isMobile","bigFooter","currentElement","currentElementClasses","preservedHtmlTag","tagName","newElement","menuId","random","nextElementSibling","after","resize","isOpen","innerWidth","HIDE_MAX_WIDTH","mediaQueryList","matchMedia","addListener","removeListener","FocusTrap","ScrollBarWidth","NAV","NAV_CONTAINER","NAV_PRIMARY","NAV_PRIMARY_ITEM","NAV_CONTROL","NAV_LINKS","NON_NAV_HIDDEN_ATTRIBUTE","OPENERS","CLOSE_BUTTON","CLOSERS","TOGGLES","NON_NAV_ELEMENTS","NON_NAV_HIDDEN","ACTIVE_CLASS","navigation","navActive","nonNavElements","isActive","body","isSafari","includes","SCROLLBAR_WIDTH","INITIAL_PADDING","getComputedStyle","getPropertyValue","TEMPORARY_PADDING","hideNonNavItems","headerParent","nonNavElement","showNonNavItems","toggleNav","active","safeActive","currentScrollPosition","scrollY","setProperty","focusTrap","update","closeButton","menuButton","paddingRight","closer","getBoundingClientRect","width","onMenuClose","hideActiveNavDropdown","acc","parentNavItem","navControl","trapContainer","CURRENT_CLASS","IN_PAGE_NAV_VALID_HEADINGS","IN_PAGE_NAV_SCROLL_OFFSET","IN_PAGE_NAV_CLASS","IN_PAGE_NAV_ANCHOR_CLASS","IN_PAGE_NAV_NAV_CLASS","IN_PAGE_NAV_LIST_CLASS","IN_PAGE_NAV_ITEM_CLASS","IN_PAGE_NAV_PRIMARY_ITEM_CLASS","IN_PAGE_NAV_LINK_CLASS","IN_PAGE_NAV_TITLE_CLASS","setActive","allLinks","isIntersecting","intersectionRatio","link","createSectionHeadingsArray","selectedContentRegion","selectedHeadingTypes","selectedHeadingTypesArray","contentRegion","headingType","sectionHeadingsArray","handleScrollToSection","inPageNavScrollOffset","scrollOffset","scroll","block","location","hash","history","pushState","createInPageNav","inPageNavEl","inPageNavTitleText","titleText","inPageNavTitleHeadingLevel","titleHeadingLevel","inPageNavRootMargin","rootMargin","inPageNavThreshold","threshold","inPageNavContentSelector","mainContentSelector","inPageNavHeadingSelector","headingElements","sectionHeadings","heading","headingStyle","inPageNav","inPageNavTitle","inPageNavList","listItem","navLinks","anchorTag","textContentOfLink","tag","topHeadingLevel","headingId","baseId","suffix","anchorTags","observeSections","IntersectionObserver","observe","inPageNavigation","elementToScrollTo","targetAnchor","hashFragment","MASKED","MASK","MASK_CONTENT","PLACEHOLDER","maskedNumber","maskedLetter","strippedValue","isCharsetPresent","isInteger","isLetter","handleValueChange","maskVal","charset","charIndex","strippedVal","isInt","isLet","matchesNumber","matchesLetter","placeholderVal","substr","theIEl","maskEl","replaceChildren","inputMask","maskedInput","shell","content","LANGUAGE_SUB","LANGUAGE_PRIMARY","LANGUAGE_PRIMARY_ITEM","LANGUAGE_CONTROL","languageSelector","languageActive","onLanguageClose","toggleLanguage","hideActiveLanguageDropdown","parentLanguageItem","MODAL_CLASSNAME","OVERLAY_CLASSNAME","WRAPPER_CLASSNAME","OPENER_ATTRIBUTE","CLOSER_ATTRIBUTE","FORCE_ACTION_ATTRIBUTE","NON_MODAL_HIDDEN_ATTRIBUTE","MODAL","INITIAL_FOCUS","NON_MODALS","VISIBLE_CLASS","HIDDEN_CLASS","modal","INITIAL_BODY_PADDING","TEMPORARY_BODY_PADDING","toggleModal","setTemporaryBodyPadding","originalOpener","clickedElement","openFocusEl","returnFocus","forceUserAction","modalId","targetModal","removeProperty","nonModal","setModalAttributes","baseComponent","modalContentWrapper","modalID","ariaLabelledBy","ariaDescribedBy","setUpModal","originalLocationPlaceHolder","modalAttributes","attributes","attribute","modalComponent","overlayDiv","modalContent","modalWindow","modalTrigger","nodeName","RANGE","updateCallout","targetRange","prep","rangeSlider","textPreposition","unit","textUnit","callout","range","change","FORM","CONTEXT","lastButton","getForm","context","toggleSearch","form","hideSearch","search",".js-search-button","encodeURI","outline","TABLE","SORTED","ASCENDING","DESCENDING","SORT_OVERRIDE","SORT_BUTTON_CLASS","SORT_BUTTON","SORTABLE_HEADER","ANNOUNCEMENT_REGION","getCellValue","children","innerText","compareFunction","isAscending","thisRow","nextRow","value1","value2","localeCompare","language","numeric","ignorePunctuation","updateSortLabel","header","headerName","sortedAscending","headerLabel","headerButtonLabel","toggleSort","safeAscending","tbody","allRows","thisHeaderIndex","sort","otherHeader","sortedHeader","caption","liveRegion","sortAnnouncement","sortDir","sortableHeaders","firstSorted","createHeaderButton","buttonEl","TIME_PICKER","FILTER_DATASET","apQueryFilter","hourQueryFilter","minuteQueryFilter","parseTimeString","timeStr","minutes","mins","hours","transformTimePicker","timePickerEl","initialInputEl","minTime","maxTime","step","time","minute","hour24","hour12","ampm","timePicker","TOOLTIP","TOOLTIP_TRIGGER","TOOLTIP_TRIGGER_CLASS","TOOLTIP_CLASS","TOOLTIP_BODY_CLASS","SET_CLASS","ADJUST_WIDTH_CLASS","getTooltipElements","wrapper","showToolTip","tooltipBody","tooltipTrigger","position","setPositionClass","setPos","resetPositionStyles","bottom","right","left","margin","offsetMargin","propertyValue","calculateMarginOffset","marginPosition","tooltipBodyOffset","positionTop","topMargin","leftMargin","offsetWidth","positionBottom","positionRight","offsetLeft","positionLeft","findBestPosition","attempt","positions","hasVisiblePosition","tryPositions","hideToolTip","setUpAttributes","tooltipID","tooltipContent","additionalClasses","classname","tooltip","mouseover focusin","activeTooltips","activeTooltip","tooltipWrapper","setup","validate","VALIDATE_INPUT","CHECKLIST_ITEM","enhanceValidation","checklistItems","validationElement","validationContainer","statusSummaryID","statusSummaryContainer","currentStatus","itemStatus","validator","input[data-validation-element],textarea[data-validation-element]","prefix","banner","footer","password","skipnav","uswdsPresent","uswds","components","initComponents","on","readyState","default","htmlDocument","Behavior","sequence","seq","method","off","callback","delay","timer","args","clearTimeout","apply","additionalKeyBindings","tabEventHandler","Esc","keyMappings","win","docEl","documentElement","rect","innerHeight","clientHeight","clientWidth","platform","maxTouchPoints","MSStream","_entity","_entities","&","<",">","\"","'","/","getEntity","strings","createSafeHTML","_len","values","__html","info","unwrapSafeHTML","htmlObjects","outer","inner","visibility","overflow","msOverflowStyle","scrollbarWidth","selection","field","mask","resolveIdRefs","toggleFieldMask","PRESSED","SHOW_ATTR","pressed","showText","hideText","controls","CHECKED_CLASS","checkList","charAt","statusSummary","entries","validatorName","validatorPattern","validatorSelector","validatorCheckbox","checked","statusComplete","validationComplete","statusIncomplete","validationIncomplete","checkboxContent"],"mappings":"AAAA,CAAA,SAAAA,EAAAC,EAAAC,EAAAC,GAAA,SAAAC,EAAAC,EAAAC,GAAA,GAAA,CAAAJ,EAAAG,GAAA,CAAA,GAAA,CAAAJ,EAAAI,GAAA,CAAA,IAAAE,EAAA,YAAA,OAAAC,SAAAA,QAAA,GAAA,CAAAF,GAAAC,EAAA,OAAAA,EAAAF,EAAA,CAAA,CAAA,EAAA,GAAAI,EAAA,OAAAA,EAAAJ,EAAA,CAAA,CAAA,EAAA,MAAAK,EAAA,IAAAC,MAAA,uBAAAN,EAAA,GAAA,GAAAO,KAAA,mBAAAF,CAAA,CAAAG,EAAAX,EAAAG,GAAA,CAAAS,QAAA,EAAA,EAAAb,EAAAI,GAAA,GAAAU,KAAAF,EAAAC,QAAA,SAAAd,GAAA,OAAAI,EAAAH,EAAAI,GAAA,GAAAL,IAAAA,CAAA,CAAA,EAAAa,EAAAA,EAAAC,QAAAd,EAAAC,EAAAC,EAAAC,CAAA,CAAA,CAAA,OAAAD,EAAAG,GAAAS,OAAA,CAAA,IAAA,IAAAL,EAAA,YAAA,OAAAD,SAAAA,QAAAH,EAAA,EAAAA,EAAAF,EAAAa,OAAAX,CAAA,GAAAD,EAAAD,EAAAE,EAAA,EAAA,OAAAD,CAAA,EAAA,CAAAa,EAAA,CAAA,SAAAT,EAAAU,EAAAJ,GCEA,IAAWK,EAC0B,YAAhC,OADMA,EA8BRC,OAAOC,QAAQC,WA7BOC,UACvBJ,EAAaI,QAAUJ,EAAaK,mBAAqBL,EAAaM,oBAAsBN,EAAaO,uBAAyB,SAAiBC,GAKlJ,IAJA,IAAIC,EAAUC,KACVC,GAAYF,EAAQG,UAAYH,EAAQI,eAAeC,iBAAiBN,CAAQ,EAChFO,EAAQ,EAELJ,EAASI,IAAUJ,EAASI,KAAWN,GAC7C,EAAEM,EAGH,OAAOC,QAAQL,EAASI,EAAM,CAC/B,GAGmC,YAAhC,OAAOf,EAAaiB,UACvBjB,EAAaiB,QAAU,SAAiBT,GAGvC,IAFA,IAAIC,EAAUC,KAEPD,GAAgC,IAArBA,EAAQS,UAAgB,CACzC,GAAIT,EAAQL,QAAQI,CAAQ,EAC3B,OAAOC,EAGRA,EAAUA,EAAQU,UACnB,CAEA,OAAO,IACR,E,yBCiDA,IA3EA,IAAIC,EAA2B,CAC7BC,SAqFF,WACE,GAAI,EAAE,kBAAmBpB,SACrB,QAASqB,cAAcnB,UACzB,MAAO,CAAA,EAIT,IAAIoB,EAAQ,CACVC,IAAK,SAAUC,GACb,IAAIC,EAAMN,EAAyBO,KAAKjB,KAAKkB,OAASlB,KAAKmB,SAM3D,OAHEH,EADEI,MAAMC,QAAQL,CAAG,EACbA,EAAI,CAAChB,KAAKsB,UAGXN,CACT,CACF,EAEA,OADAO,OAAOC,eAAeZ,cAAcnB,UAAW,MAAOoB,CAAK,EACpDA,CACT,EAxGEI,KAAM,CACJQ,EAAG,SACHC,EAAG,OACHC,EAAG,YACHC,EAAG,MACHC,GAAI,QACJC,GAAI,QACJC,GAAI,QACJC,GAAI,UACJC,GAAI,MACJC,GAAI,QACJC,GAAI,WACJC,GAAI,SACJC,GAAI,UACJC,GAAI,aACJC,GAAI,SACJC,GAAI,aACJC,GAAI,IACJC,GAAI,SACJC,GAAI,WACJC,GAAI,MACJC,GAAI,OACJC,GAAI,YACJC,GAAI,UACJC,GAAI,aACJC,GAAI,YACJC,GAAI,SACJC,GAAI,QACJC,GAAI,UACJC,GAAI,cACJC,GAAI,SACJC,GAAI,SACJC,GAAI,CAAC,IAAK,KACVC,GAAI,CAAC,IAAK,KACVC,GAAI,CAAC,IAAK,KACVC,GAAI,CAAC,IAAK,KACVC,GAAI,CAAC,IAAK,KACVC,GAAI,CAAC,IAAK,KACVC,GAAI,CAAC,IAAK,KACVC,GAAI,CAAC,IAAK,KACVC,GAAI,CAAC,IAAK,KACVC,GAAI,CAAC,IAAK,KACVC,GAAI,KACJC,GAAI,cACJC,IAAK,UACLC,IAAK,aACLC,IAAK,aACLC,IAAK,aACLC,IAAK,WACLC,IAAK,CAAC,IAAK,KACXC,IAAK,CAAC,IAAK,KACXC,IAAK,CAAC,IAAK,KACXC,IAAK,CAAC,IAAK,KACXC,IAAK,CAAC,IAAK,KACXC,IAAK,CAAC,IAAK,KACXC,IAAK,CAAC,IAAK,KACXC,IAAK,CAAC,IAAK,KACXC,IAAK,CAAC,KAAM,KACZC,IAAK,CAAC,IAAK,KACXC,IAAK,CAAC,IAAK,KACXC,IAAK,OACLC,IAAK,WACLC,IAAK,OACLC,IAAK,QACLC,IAAK,QACLC,IAAK,WACLC,IAAK,OACLC,IAAK,SACP,CACF,EAIKnH,EAAI,EAAGA,EAAI,GAAIA,CAAC,GACnBkC,EAAyBO,KAAK,IAAMzC,GAAK,IAAMA,EAIjD,IAAIoH,EAAS,GACb,IAAKpH,EAAI,GAAIA,EAAI,GAAIA,CAAC,GACpBoH,EAASC,OAAOC,aAAatH,CAAC,EAC9BkC,EAAyBO,KAAKzC,GAAK,CAACoH,EAAOG,YAAY,EAAGH,EAAOI,YAAY,GAyBzD,YAAlB,OAAOC,QAAyBA,OAAOC,IACzCD,OAAO,6BAA8BvF,CAAwB,EACjC,KAAA,IAAZzB,GAA6C,KAAA,IAAXI,EAClDA,EAAOJ,QAAUyB,EACRnB,SACTA,OAAOmB,yBAA2BA,E,yBC7GtC,IAAIyF,EAAwB5E,OAAO4E,sBAC/BC,EAAiB7E,OAAO9B,UAAU2G,eAClCC,EAAmB9E,OAAO9B,UAAU6G,qBAsDxCjH,EAAOJ,SA5CP,KACC,IACC,GAAKsC,OAAOgF,OAAZ,CAOA,IAAIC,EAAQ,IAAIX,OAAO,KAAK,EAE5B,GADAW,EAAM,GAAK,KACkC,MAAzCjF,OAAOkF,oBAAoBD,CAAK,EAAE,GAAtC,CAMA,IADA,IAAIE,EAAQ,GACHlI,EAAI,EAAGA,EAAI,GAAIA,CAAC,GACxBkI,EAAM,IAAMb,OAAOC,aAAatH,CAAC,GAAKA,EAEvC,IAQImI,EARAC,EAASrF,OAAOkF,oBAAoBC,CAAK,EAAEG,IAAI,SAAUxI,GAC5D,OAAOqI,EAAMrI,EACd,CAAC,EACD,GAAwB,eAApBuI,EAAOE,KAAK,EAAE,EASlB,OAJIH,EAAQ,GACZ,uBAAuBI,MAAM,EAAE,EAAEC,QAAQ,SAAUpB,GAClDe,EAAMf,GAAUA,CACjB,CAAC,EAEC,yBADErE,OAAON,KAAKM,OAAOgF,OAAO,GAAII,CAAK,CAAC,EAAEG,KAAK,EAAE,EAK1C,EALP,KAAA,CAnBA,CATA,CAqCD,CAHE,MAAOG,IAIV,GAEiC,EAAI1F,OAAOgF,OAAS,SAAUW,EAAQC,GAKtE,IAJA,IAAIC,EACAC,GAtDaC,IACjB,GAAIA,MAAAA,EACH,MAAM,IAAIC,UAAU,uDAAuD,EAG5E,OAAOhG,OAAO+F,CAAG,CAClB,GAgDmBJ,CAAM,EAGfM,EAAI,EAAGA,EAAIC,UAAUtI,OAAQqI,CAAC,GAAI,CAG1C,IAAK,IAAIxG,KAFToG,EAAO7F,OAAOkG,UAAUD,EAAE,EAGrBpB,EAAelH,KAAKkI,EAAMpG,CAAG,IAChCqG,EAAGrG,GAAOoG,EAAKpG,IAIjB,GAAImF,EAEH,IAAK,IADLuB,EAAUvB,EAAsBiB,CAAI,EAC3B5I,EAAI,EAAGA,EAAIkJ,EAAQvI,OAAQX,CAAC,GAChC6H,EAAiBnH,KAAKkI,EAAMM,EAAQlJ,EAAE,IACzC6I,EAAGK,EAAQlJ,IAAM4I,EAAKM,EAAQlJ,IAIlC,CAEA,OAAO6I,CACR,C,yBCzFA,IAAMd,EAAS5H,EAAQ,eAAe,EAChCgJ,EAAWhJ,EAAQ,aAAa,EAChCiJ,EAAcjJ,EAAQ,gBAAgB,EAEtCkJ,EAAmB,0BAuCZ,SAATC,EAAkBC,EAAK/G,GACzB,IAAIgH,EAAQD,EAAI/G,GAEhB,OADA,OAAO+G,EAAI/G,GACJgH,CACT,CAEA3I,EAAOJ,QAAU,SAAkBgJ,EAAQC,GACzC,IAAMC,EAAY5G,OAAON,KAAKgH,CAAM,EACjCG,OAAO,SAASC,EAAMC,GA5CSC,EA6CKN,EA7CXK,EA6CKA,IA5C7BE,EAAQF,EAAKE,MAAMX,CAAgB,KAGrCS,EAAOE,EAAM,GACb1I,EAAW0I,EAAM,IAII,UAAnB,OAAOD,IACTE,EAAU,CACRC,QAASZ,EAAOS,EAAS,SAAS,EAClCI,QAASb,EAAOS,EAAS,SAAS,CACpC,GAGEK,EAAW,CACb9I,SAAUA,EACV6H,SAA8B,UAAnB,OAAOY,EACdX,EAAYW,CAAO,EACnBzI,EACE6H,EAAS7H,EAAUyI,CAAO,EAC1BA,EACNE,QAASA,CACX,EAqBI,IA7C8BF,EAE9BzI,EAMA2I,EAQAG,EA6BIT,EAnBkB,CAAC,EAAvBG,EAAKO,QA5BG,GA4BU,EACbP,EAAKvB,MA7BF,GA6Ba,EAAEF,IAAI,SAASiC,GACpC,OAAOvC,EAAO,CAAC+B,KAAMQ,CAAK,EAAGF,CAAQ,CACvC,CAAC,GAEDA,EAASN,KAAOA,EACT,CAACM,IAcN,OAAOP,EAAKU,OAAOZ,CAAS,CAC9B,EAAG,EAAE,EAEP,OAAO5B,EAAO,CACZyC,IAAK,SAAqBjJ,GACxBoI,EAAUnB,QAAQ,SAAS4B,GACzB7I,EAAQkJ,iBACNL,EAASN,KACTM,EAASjB,SACTiB,EAASH,OACX,CACF,CAAC,CACH,EACAS,OAAQ,SAAwBnJ,GAC9BoI,EAAUnB,QAAQ,SAAS4B,GACzB7I,EAAQoJ,oBACNP,EAASN,KACTM,EAASjB,SACTiB,EAASH,OACX,CACF,CAAC,CACH,CACF,EAAGP,CAAK,CACV,C,6EC5EA7I,EAAOJ,QAAU,SAAiBmK,GAChC,OAAO,SAAShL,GACd,OAAOgL,EAAUC,KAAK,SAASC,GAC7B,MAA4B,CAAA,IAArBA,EAAGpK,KAAKc,KAAM5B,CAAC,CACxB,EAAG4B,IAAI,CACT,CACF,C,yBCLArB,EAAQ,iBAAiB,EAEzBU,EAAOJ,QAAU,SAAkBa,EAAUwJ,GAC3C,OAAO,SAAoBC,GACzB,IAAIrC,EAASqC,EAAMrC,OAAO3G,QAAQT,CAAQ,EAC1C,GAAIoH,EACF,OAAOoC,EAAGpK,KAAKgI,EAAQqC,CAAK,CAEhC,CACF,C,4CCVA,IAAM5B,EAAWhJ,EAAQ,aAAa,EAChC6K,EAAU7K,EAAQ,YAAY,EAIpCU,EAAOJ,QAAU,SAAqBwK,GACpC,IAAMxI,EAAOM,OAAON,KAAKwI,CAAS,EAKlC,OAAoB,IAAhBxI,EAAK9B,QARG,MAQa8B,EAAK,GACrBwI,EATG,MAYNC,EAAYzI,EAAKmH,OAAO,SAASC,EAAMvI,GAE3C,OADAuI,EAAKsB,KAAKhC,EAAS7H,EAAU2J,EAAU3J,EAAS,CAAC,EAC1CuI,CACT,EAAG,EAAE,EACEmB,EAAQE,CAAS,EAC1B,C,uDCpBArK,EAAOJ,QAAU,SAAgBc,EAASuJ,GACxC,OAAO,SAAmBlL,GACxB,GAAI2B,IAAY3B,EAAE8I,QAAU,CAACnH,EAAQ6J,SAASxL,EAAE8I,MAAM,EACpD,OAAOoC,EAAGpK,KAAKc,KAAM5B,CAAC,CAE1B,CACF,C,yBCNAiB,EAAOJ,QAAU,CACf4K,SAAclL,EAAQ,YAAY,EAClCgJ,SAAchJ,EAAQ,YAAY,EAClCiJ,YAAcjJ,EAAQ,eAAe,EACrCmL,OAAcnL,EAAQ,UAAU,EAChCoL,OAAcpL,EAAQ,UAAU,CAClC,C,oGCNAA,EAAQ,4BAA4B,EAKpC,IAAMqL,EAAY,CAChBC,IAAY,SACZC,QAAY,UACZC,KAAY,UACZC,MAAY,UACd,EAgBA/K,EAAOJ,QAAU,SAAgBgC,GAC/B,IAAMoJ,EAAe9I,OAAON,KAAKA,CAAI,EAAEoI,KAAK,SAASrI,GACnD,MAAyC,CAAC,EAAnCA,EAAI6H,QAhBY,GAgBc,CACvC,CAAC,EACD,OAAO,SAASU,GACd,IAAIvI,GAjBY,CAASuI,EAAOc,KAClC,IAAIrJ,EAAMuI,EAAMvI,IAChB,GAAIqJ,EACF,IAAK,IAAIC,KAAYN,EACgB,CAAA,IAA/BT,EAAMS,EAAUM,MAClBtJ,EAAM,CAACsJ,EAAUtJ,GAAK8F,KAPH,GAO0B,GAInD,OAAO9F,CACT,GAO0BuI,EAAOc,CAAY,EACzC,MAAO,CAACrJ,EAAKA,EAAI+E,YAAY,GAC1BqC,OAAO,SAASmC,EAAQC,GAIvB,OAFED,EADEC,KAAQvJ,EACDA,EAAKD,GAAK9B,KAAKc,KAAMuJ,CAAK,EAE9BgB,CACT,EAAGE,KAAAA,CAAS,CAChB,CACF,EAEApL,EAAOJ,QAAQ+K,UAAYA,C,wDC1C3B3K,EAAOJ,QAAU,SAAc2J,EAAUH,GACzB,SAAViC,EAA+BtM,GAEjC,OADAA,EAAEuM,cAAcxB,oBAAoB/K,EAAEkK,KAAMoC,EAASjC,CAAO,EACrDG,EAAS1J,KAAKc,KAAM5B,CAAC,CAC9B,CACA,OAAOsM,CACT,C,0BCJA,IAAIE,EAAU,iBACVC,EAAW,MAEXC,EAAOjF,OAAOpG,UAAUqL,KACxB,SAASC,GAAO,OAAOA,EAAID,KAAK,CAAG,EACnC,SAASC,GAAO,OAAOA,EAAIC,QAAQJ,EAAS,EAAE,CAAG,EAMrDvL,EAAOJ,QAAU,SAAoBgM,EAAKC,GACxC,GAAmB,UAAf,OAAOD,EACT,MAAM,IAAInM,MAAM,6BAAgC,OAAOmM,CAAI,EAO7D,IAAIE,IAJCD,EAAAA,GACG3L,OAAOW,UAGUiL,gBAbX,SAASC,GACvB,OAAOpL,KAAKqL,cAAc,QAAUD,EAAGJ,QAAQ,KAAM,KAAK,EAAI,IAAI,CACpE,GAYyBM,KAAKJ,CAAG,EAQ/B,OAAmB,KALnBD,EAAMH,EAAKG,CAAG,EAAElE,MAAM8D,CAAQ,GAKtB1L,QAA2B,KAAX8L,EAAI,GACnB,GAGFA,EACJpE,IAAI,SAASuE,GACZ,IAAIG,EAAKJ,EAAeC,CAAE,EAC1B,GAAKG,EAGL,OAAOA,EAFL,MAAM,IAAIzM,MAAM,wBAA0BsM,EAAK,GAAG,CAGtD,CAAC,CACL,C,0BC3CA,IAAMvB,EAAWlL,EAAQ,wCAAwC,EACjE,IAAM6M,EAAkB7M,EAAQ,iDAAiD,EAEjF,IAAQ8M,EAAU9M,EAAQ,gCAAgC,EAA5C,MACE+M,EAAW/M,EAAQ,gCAAgC,EAA5C,OASvBU,EAAOJ,QAAU4K,EAAS,EACvB4B,GAAQ,MARMC,mBAEjB,SAAgBnC,GACdA,EAAMoC,eAAe,EACrBH,EAAgBxL,IAAI,CACtB,CAKE,CACF,CAAC,C,kMCjBD,IAAM4L,EAASjN,EAAQ,sCAAsC,EAC7D,IAAMkL,EAAWlL,EAAQ,wCAAwC,EACjE,IAAMkN,EAASlN,EAAQ,sCAAsC,EACvDmN,EAAsBnN,EAAQ,8CAA8C,EAClF,IAAQ8M,EAAU9M,EAAQ,gCAAgC,EAA5C,MACE+M,EAAW/M,EAAQ,gCAAgC,EAA5C,OAEvB,IAAMoN,MAAgBL,iBAAsBA,wBAEtCM,MAAaN,8CADOA,sBAEpBO,EAAW,gBASXC,EAAuBC,GACXP,EAAOI,EAAQG,CAAS,EAEzBC,OAAQC,GAAWA,EAAO9L,QAAQwL,CAAS,IAAMI,CAAS,EAYrEG,EAAe,CAACD,EAAQE,KAC5B,IAAMJ,EAAYE,EAAO9L,QAAQwL,CAAS,EAG1C,GAAI,CAACI,EACH,MAAM,IAAIrN,MAASkN,EAAH,qBAA8BD,CAAW,EAM3D,IAHAS,EAAeX,EAAOQ,EAAQE,CAAQ,EAGhCE,EAAkBN,EAAUO,aAlCZ,qBAkCwC,EAE1DF,GAAgB,CAACC,GACnBP,EAAoBC,CAAS,EAAEnF,QAAS2F,IAClCA,IAAUN,GACZR,EAAOc,EAAO,CAAA,CAAK,CAEvB,CAAC,CAEL,EAcMR,EAAYtC,EAChB,EACG4B,GAAQ,EACNO,KACCM,EAAatM,IAAI,EAEmB,SAAhCA,KAAK4M,aAAaX,CAAQ,GAIvBH,EAAoB9L,IAAI,GAAGA,KAAK6M,eAAe,CAExD,CACF,CACF,EACA,CACEC,KAAKC,GACHnB,EAAOI,EAAQe,CAAI,EAAE/F,QAASqF,IAC5B,IAAME,EAA6C,SAAlCF,EAAOO,aAAaX,CAAQ,EAC7CK,EAAaD,EAAQE,CAAQ,CAC/B,CAAC,CACH,EACAR,UAAAA,EACAC,OAAAA,EACAgB,KAhCgBX,GAAWC,EAAaD,EAAQ,CAAA,CAAI,EAiCpDY,KA3BgBZ,GAAWC,EAAaD,EAAQ,CAAA,CAAK,EA4BrDR,OAAQS,EACRY,WAAYhB,CACd,CACF,EAEA7M,EAAOJ,QAAUkN,C,mRCnGjB,IAAMtC,EAAWlL,EAAQ,wCAAwC,EACjE,IAAMiN,EAASjN,EAAQ,sCAAsC,EAC7D,IAAQ8M,EAAU9M,EAAQ,gCAAgC,EAA5C,MACE+M,EAAW/M,EAAQ,gCAAgC,EAA5C,OACvB,IAAMkN,EAASlN,EAAQ,sCAAsC,EAEvDwO,MAAazB,mBACb0B,EAAoB1B,EAAH,4BACjB2B,EAAmBF,EAAH,mBActB9N,EAAOJ,QAAU4K,EACf,EACG4B,GAAQ,EACN4B,GAXc,SAAkB9D,GACrCA,EAAMoC,eAAe,EACf2B,EAAU/D,EAAMrC,OAAO3G,QAAQ8M,CAAa,EAElDxB,EAAOyB,CAAO,EACdtN,KAAKO,QAAQ4M,CAAM,EAAEI,UAAU1B,OAAOuB,CAAc,CACtD,CAMI,CACF,EACA,CACEN,KAAKC,GACHnB,EAAOyB,EAAeN,CAAI,EAAE/F,QAASqF,IACnC,IAAME,EAAmD,SAAxCF,EAAOO,aAAaQ,CAAc,EACnDvB,EAAOQ,EAAQE,CAAQ,CACzB,CAAC,CACH,CACF,CACF,C,iOCpCA,IAAMxC,EAASpL,EAAQ,iBAAiB,EAUlC6O,EATW7O,EAAQ,wCAAwC,EASnC,CAC5B8O,QAAS,CACPC,yBAAiB3D,EAAO,CACtB4D,IARgBpE,IACpBA,EAAMoC,eAAe,EACrBpC,EAAMrC,OAAO0G,MAAM,CACrB,CAMI,CAAC,CACH,CACF,CAAC,EAEDvO,EAAOJ,QAAUuO,C,0FClBjB,IAAM5B,EAASjN,EAAQ,sCAAsC,EAC7D,IAAMkL,EAAWlL,EAAQ,wCAAwC,EAC3DkP,EAAWlP,EAAQ,wCAAwC,EACjD+M,EAAW/M,EAAQ,gCAAgC,EAA5C,OAEjBmP,EAA2BpC,EAAH,mBAC9B,IAAMqC,EAAkB,IAAID,EAC5B,IAAME,EAAsBtC,EAAH,cACzB,IAAMuC,EAA4BD,EAAH,UACzBE,EAAa,IAAIF,EAEjBG,EADiBzC,EAAH,SACM,UACpB0C,MAAY1C,2BACZ2C,EAAuB3C,EAAH,gBACpB4C,MAAc5C,6BACd6C,EAAqB,2BACrBC,EAA2B9C,EAAH,oCACxB+C,EAA0BX,EAAH,WACvBY,EAAkCZ,EAAH,cAC/Ba,EAAiB,IAAIF,EACrBG,EAAyB,IAAIF,EAC7BG,EAAuB,qBAQvBC,EAA6BC,IACjC,IAAMC,EAAmBD,EAAQxO,QAAQwN,CAAe,EAExD,GAAI,CAACiB,EACH,MAAM,IAAIlQ,MAASsP,EAAH,qBAA6BL,CAAiB,EAGhE,IAAMkB,EAAcD,EAAiB3D,cAAc6C,CAAU,EAEvDgB,EAAUH,EAAQnC,aAAa,IAAI,EACnCuC,EAAUjP,SAASmL,2BAA2B6D,IAAU,EAExDE,EAAYJ,EAAiB3D,cAAciD,CAAO,EAExD,GAAKc,EAIL,MAAO,CAAEJ,iBAAAA,EAAkBC,YAAAA,EAAaC,QAAAA,EAASC,QAAAA,EAASC,UAAAA,CAAU,EAHlE,MAAM,IAAItQ,MAASiP,EAAH,qBAAuCO,CAAS,CAIpE,EAyBMe,EAAwBL,IAC5B,IAAMM,EAAgBpP,SAASqP,cAAc,KAAK,EAC5CC,EAAkBtP,SAASqP,cAAc,KAAK,EAE9CE,EADYT,EAAiBU,QAAQC,UACpB,IAAgBd,EAEvCS,EAAc/B,UAAUvE,IAAI,GAAGyF,EAAwB,UAAU,EACjEe,EAAgBjC,UAAUvE,IACxB,GAAG0F,EACH,aACF,EAEAY,EAAcM,aAAa,cAAe,CAAA,CAAI,EAC9CJ,EAAgBI,aAAa,YAAa,QAAQ,EAElDN,EAAcO,YAAcJ,EAC5BD,EAAgBK,YAAcJ,EAE9BT,EAAiBc,OAAOR,EAAeE,CAAe,CACxD,EASMO,EAAkB,CAACC,EAAeC,KACtCC,IAAIC,EAAa,GAEjB,IAGQC,EAOR,OATED,EADoB,IAAlBH,EACcC,EAAH,IAAgBpB,GAEvBuB,EAAaC,KAAKC,IAAIL,EAAYD,CAAa,OAClC,aAA2B,IAAfI,EAAmB,GAAK,SACtBH,EAAhBD,EAA4B,aAAe,OAMhE,EAQMO,EAAiB1C,EAAS,CAAC2C,EAAOlB,KACdkB,EACRX,YAAcP,CAChC,EAAG,GAAI,EASDmB,EAAsB1B,IAC1B,GAAM,CAAEC,iBAAAA,EAAkBG,QAAAA,EAASF,YAAAA,CAAY,EAC7CH,EAA0BC,CAAO,EAC7BiB,EAAgBjB,EAAQ/G,MAAM7I,OAC9B8Q,EAAYS,SAChB1B,EAAiBpC,aAAa,gBAAgB,EAC9C,EACF,EACM0C,EAAgBN,EAAiB3D,cAAcsD,CAAc,EAC7Da,EAAkBR,EAAiB3D,cACvCuD,CACF,EACM+B,EAAuBZ,EAAgBC,EAAeC,CAAS,EAEhEA,IAECW,EAAcZ,GAAiCC,EAAhBD,EAErCV,EAAcO,YAAcc,EAC5BJ,EAAef,EAAiBmB,CAAoB,EAEhDC,GAAe,CAAC7B,EAAQ8B,mBAC1B9B,EAAQ+B,kBAAkBvC,CAAkB,EAGzCqC,GAAe7B,EAAQ8B,oBAAsBtC,GAChDQ,EAAQ+B,kBAAkB,EAAE,EAG1B7B,GACFA,EAAY1B,UAAU1B,OAAOoC,EAAwB2C,CAAW,EAG9DzB,GACFA,EAAQ5B,UAAU1B,OAAOsC,EAAmByC,CAAW,EAGzD7B,EAAQxB,UAAU1B,OAAOwC,EAAmBuC,CAAW,EACvDtB,EAAc/B,UAAU1B,OAAO2C,EAAuBoC,CAAW,EACnE,EASMG,EAAyBhC,IAC7B,IA9HMY,EA8HA,CAAEX,iBAAAA,EAAkBI,UAAAA,CAAU,EAAIN,EAA0BC,CAAO,EAGzEK,EAAU7B,UAAUvE,IAAI,aAAa,EACrCoG,EAAU4B,gBAAgB,WAAW,EArIhBjC,EAuIPA,EAtINC,EAAqBF,EAA0BC,CAAO,EAArC,kBAEnBY,EAAYZ,EAAQnC,aAAa,WAAW,KAIlDmC,EAAQiC,gBAAgB,WAAW,EACnChC,EAAiBY,aAAa,iBAAkBD,CAAS,GAgIzDN,EAAqBL,CAAgB,CACvC,EAEMiC,EAAiBpH,EACrB,CACEqH,MAAO,EACJ9C,KACCqC,EAAmBzQ,IAAI,CACzB,CACF,CACF,EACA,CACE8M,KAAKC,GACHnB,EAAOwC,EAAOrB,CAAI,EAAE/F,QAASkK,GAAUH,EAAsBG,CAAK,CAAC,CACrE,EACAjD,uBAAAA,EACAE,kBAAAA,EACAE,kBAAAA,EACAG,sBAAAA,EACAD,mBAAAA,EACAE,qBAAAA,EACAC,6BAAAA,EACAG,qBAAAA,EACAQ,qBAAAA,EACAU,gBAAAA,EACAU,mBAAAA,CACF,CACF,EAEApR,EAAOJ,QAAUgS,C,+LC5NjB,IAAMlH,EAASpL,EAAQ,iBAAiB,EACxC,IAAMwS,EAAkBxS,EAAQ,iDAAiD,EACjF,IAAMkL,EAAWlL,EAAQ,wCAAwC,EACjE,IAAMyS,EAAYzS,EAAQ,yCAAyC,EACnE,IAAgB+M,EAAW/M,EAAQ,gCAAgC,EAA5C,OACf8M,EAAU9M,EAAQ,gCAAgC,EAA5C,MAER0S,EAAqB3F,EAAH,aACxB,IAAM4F,EAA8BD,EAAH,aAC3BE,EAAkBF,EAAH,WACfG,EAAiBH,EAAH,UACdI,EAA8BJ,EAAH,gBAC3BK,EAAsCD,EAAH,YACnCE,EAAkCN,EAAH,2BAC/BO,EAA8BP,EAAH,gBAC3BQ,EAAsCD,EAAH,YACnCE,EAAgBT,EAAH,SACbU,EAAuBV,EAAH,gBACpBW,EAA+BD,EAAH,YAC5BE,EAAgCF,EAAH,aAC7BG,EAAkBb,EAAH,WAEfc,EAAY,IAAId,EAChBe,EAAS,IAAIb,EACbnD,EAAQ,IAAIoD,EACZa,EAAqB,IAAIZ,EACzBa,EAAqB,IAAIV,EACzBW,EAAO,IAAIT,EACXU,EAAc,IAAIT,EAClBU,EAAsB,IAAIT,EAC1BU,EAAuB,IAAIT,EAC3BU,EAAS,IAAIT,EAEbU,EAAiB,gBAUvB,IAAMC,EAAqB,CAACtH,EAAIvD,EAAQ,MAEtC8K,EAAgB9K,MAAQA,EAElBuB,EAAQ,IAAIwJ,YAAY,SAAU,CACtCC,QAAS,CAAA,EACTC,WAAY,CAAA,EACZC,OAAQ,CAAElL,MAAAA,CAAM,CAClB,CAAC,EACD8K,EAAgBK,cAAc5J,CAAK,CACrC,EAyBM6J,EAAsB7H,IAC1B,IAMM8H,EACAtE,EACAuE,EACAC,EACAC,EACAC,EACAC,EACAC,EAEAC,EAfAC,EAAatI,EAAGhL,QAAQ4R,CAAS,EAEvC,GAAK0B,EAgBL,OAZMR,EAAWQ,EAAWxI,cAAc+G,CAAM,EAC1CrD,EAAU8E,EAAWxI,cAAc+C,CAAK,EACxCkF,EAASO,EAAWxI,cAAckH,CAAI,EACtCgB,EAAWM,EAAWxI,cAAcsH,CAAM,EAC1Ca,EAAkBK,EAAWxI,cAAcoH,CAAmB,EAC9DgB,EAAmBI,EAAWxI,cAAcqH,CAAoB,EAChEgB,EAAkBG,EAAWxI,cAAciH,CAAkB,EAC7DqB,EAAkBE,EAAWxI,cAAcgH,CAAkB,EAE7DuB,EAAaC,EAAWtG,UAAU3D,SAAS0H,CAAwB,EAGlE,CACLuC,WAAAA,EACAR,SAAAA,EACAtE,QAAAA,EACAuE,OAAAA,EACAC,SAAAA,EACAC,gBAAAA,EACAC,iBAAAA,EACAC,gBAAAA,EACAC,gBAAAA,EACAC,WAAAA,EACAE,iBAb+D,SAAxCD,EAAWnE,QAAQoE,gBAc5C,EA3BE,MAAM,IAAIhV,MAAM,4BAA4BqT,CAAW,CA4B3D,EAOM4B,EAAWxI,IACf,GAAM,CAAEwD,QAAAA,EAAS2E,gBAAAA,EAAiBC,gBAAAA,CAAgB,EAAIP,EAAmB7H,CAAE,EAE3EoI,EAAgBK,OAAS,CAAA,EAEzBN,EAAgBO,SADhBN,EAAgBM,SAAW,CAAA,EAE3BlF,EAAQkF,SAAW,CAAA,CACrB,EAmCA,IAAMC,EAAmBC,IACjBN,EAAaM,EAAY5T,QAAQ4R,CAAS,EAEhD,GAAI0B,CAAAA,EAAWnE,QAAQ0E,SAAvB,CAEA,IAAMf,EAAWQ,EAAWxI,cAAc,QAAQ,EAElD,GAAI,CAACgI,EACH,MAAM,IAAIvU,MAASqT,EAAH,0BAAsC,EAGxD,IAAMkC,EAAWhB,EAASjI,GACpBkJ,EAAcpU,SAASmL,4BAA4BgJ,KAAY,EAC/DE,EAAYF,EAAH,SACTG,EAAiBH,EAAH,SACpB,IAAMI,EAAuB,GAC7B,IAAQC,EAAiBb,EAAWnE,QAAf,aACbiF,EAAgBd,EAAWnE,QAAf,YACpBQ,IAAI0E,EAMJ,GAJID,GACFF,EAAqB9K,KAAK,CAAEgL,YAAAA,CAAY,CAAC,EAGvCD,EACF,IAAKxE,IAAI1R,EAAI,EAAGqW,EAAMxB,EAAS5K,QAAQtJ,OAAQX,EAAIqW,EAAKrW,GAAK,EAAG,CAC9D,IAAMsW,EAAWzB,EAAS5K,QAAQjK,GAElC,GAAIsW,EAAS9M,QAAU0M,EAAc,CACnCE,EAAiBE,EACjB,KACF,CACF,CAOF,GAAKR,CAAAA,GAAgBA,CAAAA,EAAY5U,sBAAsB2U,KAAY,EACjE,MAAM,IAAIvV,MACLqT,UAAiBkC,kDACtB,EAEAC,EAAY1E,aAAa,KAAM4E,CAAW,EAG5CF,EAAY1E,aAAa,KAAM4E,CAAW,EAC1CnB,EAASzD,aAAa,cAAe,MAAM,EAC3CyD,EAASzD,aAAa,WAAY,IAAI,EACtCyD,EAAS9F,UAAUvE,IAAI,cAAeuI,CAAY,EAClD8B,EAASjI,GAAK,GACdiI,EAASrL,MAAQ,GAEjB,CAAC,WAAY,aAAc,mBAAmBhB,QAAS+N,IACrD,IACQ/M,EADJqL,EAAS3G,aAAaqI,CAAI,IACtB/M,EAAQqL,EAASzG,aAAamI,CAAI,EACxCN,EAAqB9K,KAAK,EAAGoL,GAAO/M,CAAM,CAAC,EAC3CqL,EAASrC,gBAAgB+D,CAAI,EAEjC,CAAC,EAGD,IAAM7D,EAAQhR,SAASqP,cAAc,OAAO,EAC5C2B,EAAMtB,aAAa,KAAMyE,CAAQ,EACjCnD,EAAMtB,aAAa,YAAa2E,CAAM,EACtCrD,EAAMtB,aAAa,gBAAiB2E,CAAM,EAC1CrD,EAAMtB,aAAa,oBAAqB,MAAM,EAC9CsB,EAAMtB,aAAa,gBAAiB,OAAO,EAC3CsB,EAAMtB,aAAa,iBAAkB,KAAK,EAC1CsB,EAAMtB,aAAa,eAAgB,KAAK,EACxCsB,EAAMtB,aAAa,QAAS4B,CAAW,EACvCN,EAAMtB,aAAa,OAAQ,MAAM,EACjCsB,EAAMtB,aAAa,OAAQ,UAAU,EACrC6E,EAAqBzN,QAASgO,GAC5BzT,OAAON,KAAK+T,CAAI,EAAEhO,QAAShG,IACzB,IAAMgH,EAAQoJ,EAAU6D,aAAaD,EAAKhU,KAC1CkQ,EAAMtB,aAAa5O,EAAKgH,CAAK,CAC/B,CAAC,CACH,EAEA6L,EAAWqB,sBAAsB,YAAahE,CAAK,EAEnD2C,EAAWsB,mBACT,YACA/D,EAAU6D;mBACKvD;uCACoBD;;qBAElBE;qBACAE;qDACgCD;;;;cAIvC2C;iBACGzC;;2BAEU0C;;;oBAGPtC,qCAClB,EAEI0C,IACM7F,EAAYqE,EAAmBS,CAAU,EAAjC,QAChBhB,EAAmBQ,EAAUuB,EAAe5M,KAAK,EACjD6K,EAAmB9D,EAAS6F,EAAeQ,IAAI,EAC/CvB,EAAWtG,UAAUvE,IAAIsI,CAAwB,GAG/C+B,EAASY,WACXF,EAAQF,CAAU,EAClBR,EAASY,SAAW,CAAA,GAGlBZ,EAAS3G,aAAa,eAAe,KAhJtBnB,IACnB,GAAM,CAAEwD,QAAAA,EAAS2E,gBAAAA,EAAiBC,gBAAAA,CAAgB,EAAIP,EAAmB7H,CAAE,EAE3EoI,EAAgBK,OAAS,CAAA,EACzBL,EAAgB/D,aAAa,gBAAiB,CAAA,CAAI,EAClD8D,EAAgB9D,aAAa,gBAAiB,CAAA,CAAI,EAClDb,EAAQa,aAAa,gBAAiB,CAAA,CAAI,CAC5C,GA0IgBiE,CAAU,EACtBR,EAASrC,gBAAgB,eAAe,GAG1C6C,EAAWnE,QAAQ0E,SAAW,MAtHG,CAuHnC,EAYMiB,EAAkB,CAAC9J,EAAI+J,EAAQ,CAAEC,UAAAA,EAAWC,cAAAA,CAAc,EAAI,MAClE,GAAM,CAAEzG,QAAAA,EAASuE,OAAAA,EAAQE,gBAAAA,CAAgB,EAAIJ,EAAmB7H,CAAE,EAE9DiI,IACFA,EAAgBjG,UAAUrE,OAAO8I,CAAyB,EAC1DwB,EAAgB5D,aAAa,WAAY,IAAI,GAG3C0F,GACFvG,EAAQa,aAAa,wBAAyB0F,EAAOlK,EAAE,EACvDkK,EAAO1F,aAAa,WAAY,GAAG,EACnC0F,EAAO/H,UAAUvE,IAAIgJ,CAAyB,EAEzCwD,IACGC,EAAeH,EAAOI,UAAYJ,EAAOK,aACzBrC,EAAOsC,UAAYtC,EAAOqC,aAE5CF,IACFnC,EAAOsC,UAAYH,EAAenC,EAAOqC,cAGvCL,EAAOI,UAAYpC,EAAOsC,YAC5BtC,EAAOsC,UAAYN,EAAOI,YAIzBH,GACHD,EAAOO,MAAM,CAAEL,cAAAA,CAAc,CAAC,IAGhCzG,EAAQa,aAAa,wBAAyB,EAAE,EAChDb,EAAQ8G,MAAM,EAElB,EASMC,EAAwB,CAAC1J,EAAQ2J,EAAQ,GAAIC,EAAS,MAC1D,IAAMC,EAAgBb,GACpBA,EAAKpK,QAAQ,2BAA4B,MAAM,EAkBjDkL,SAhBW9J,EAAOpB,QAAQ,aAAc,CAACmL,EAAGC,KAC1C,IAAMpV,EAAMoV,EAAGtL,KAAK,EACduL,EAAcL,EAAOhV,GAC3B,MAAY,UAARA,GAAmBqV,GACfC,EAAU,IAAIC,OAAOF,EAAa,GAAG,GACrC3W,EAAUqW,EAAMvN,MAAM8N,CAAO,GAG1BL,EAAavW,EAAQ,EAAE,EAGzB,IAEFuW,EAAaF,CAAK,CAC3B,CAAC,MAID,OAAO,IAAIQ,OAAOL,EAAM,GAAG,CAC7B,EAOMM,EAAejL,IACnB,GAAM,CACJsI,WAAAA,EACAR,SAAAA,EACAtE,QAAAA,EACAuE,OAAAA,EACAC,SAAAA,EACAK,WAAAA,EACAE,iBAAAA,CACF,EAAIV,EAAmB7H,CAAE,EACrBkL,EACAC,EAEEC,EAAsBrD,EAAOlI,GAAV,YAEnBwL,GAAc7H,EAAQ/G,OAAS,IAAIjC,YAAY,EAC/CqG,EAASyH,EAAWnE,QAAQtD,QAAUwG,EAC5C,IAAMiE,EAAQf,EAAsB1J,EAAQwK,EAAY/C,EAAWnE,OAAO,EAEtEjH,EAAU,GACRqO,EAAoB,GACpBC,EAAkB,GAClBC,EAAa,CAAC,GAAG3D,EAAS5K,SAehC,IAuBMwO,EAAsBC,GAAWL,EAAMM,KAAKD,EAAO9B,IAAI,EAuC7D4B,EAAWhQ,QAASkQ,IAClB,IAlBoBA,EAbIA,GAAAA,EA+BHA,GA9BdlP,QACN8L,GACCF,GACA,CAACgD,GACDK,EAAmBC,CAAM,KArCFA,EAgELA,EA/DhBpD,GAAoBF,EACtBnL,EAAQkB,KAAKuN,CAAM,IAIGA,EAAO9B,KAAKrP,YAAY,EAAEqR,WAAWR,CAAU,EAGrEE,EAEAC,GAFkBpN,KAAKuN,CAAM,EAK/BzO,EAAU,CAAC,GAAGqO,EAAmB,GAAGC,IAoD5BM,EAAcV,EAAmBlO,EAAQI,QAAQqO,CAAM,EArB3CA,EAuBDA,EAtBnBpD,GAAoB,CAAC4C,GAAgBO,EAAmBC,CAAM,IAuB1DR,EAAeW,GAfOH,EAkBDA,EAjBzB7D,EAASrL,QAASkP,EAAOlP,QAAUqL,EAASrL,QAkBxCyO,EAAiBY,EAGvB,CAAC,EAED,IAAMC,EAAa7O,EAAQtJ,OACrBoY,EAAa9O,EAAQ5B,IAAI,CAACqQ,EAAQ7W,KACtC,IAAMgX,EAAcV,EAAmBtW,EACjCmX,EAAU,CAACzF,GACjB7B,IAAIuH,EAAW,KACXC,EAAe,QAEfL,IAAaZ,IACfe,EAAQ7N,KAAKsI,EAA4BD,CAAyB,EAClEyF,EAAW,IACXC,EAAe,QAGZjB,GAA4B,IAAVpW,IACrBmX,EAAQ7N,KAAKqI,CAAyB,EACtCyF,EAAW,KAGb,IAAME,EAAKzX,SAASqP,cAAc,IAAI,EAYtC,OAVAoI,EAAG/H,aAAa,eAAgBnH,EAAQtJ,MAAM,EAC9CwY,EAAG/H,aAAa,gBAAiBvP,EAAQ,CAAC,EAC1CsX,EAAG/H,aAAa,gBAAiB8H,CAAY,EAC7CC,EAAG/H,aAAa,KAAMyH,CAAQ,EAC9BM,EAAG/H,aAAa,QAAS4H,EAAQ1Q,KAAK,GAAG,CAAC,EAC1C6Q,EAAG/H,aAAa,WAAY6H,CAAQ,EACpCE,EAAG/H,aAAa,OAAQ,QAAQ,EAChC+H,EAAG/H,aAAa,aAAcsH,EAAOlP,KAAK,EAC1C2P,EAAG9H,YAAcqH,EAAO9B,KAEjBuC,CACT,CAAC,EAEKC,EAAY1X,SAASqP,cAAc,IAAI,EAC7CqI,EAAUhI,aAAa,QAAYmC,EAAH,cAAkC,EAClE6F,EAAU/H,YAAc,mBAExByD,EAAOU,OAAS,CAAA,EAEZsD,GACFhE,EAAOuE,UAAY,GACnBN,EAAWvQ,QAAS8Q,GAClBxE,EAAO4B,sBAAsB,YAAa4C,CAAI,CAChD,IAEAxE,EAAOuE,UAAY,GACnBvE,EAAO4B,sBAAsB,YAAa0C,CAAS,GAGrD7I,EAAQa,aAAa,gBAAiB,MAAM,EAE5C2D,EAAS1D,YAAcyH,EAChBA,YAAiC,EAAbA,EAAiB,IAAM,gBAC9C,cAEJpH,IAAI6H,EAEAnE,GAAc6C,EAChBsB,EAAczE,EAAOjI,cAAc,IAAIoL,CAAgB,EAC9C3C,GAAoB4C,IAC7BqB,EAAczE,EAAOjI,cAAc,IAAIqL,CAAc,GAGnDqB,GACF1C,EAAgB/B,EAAQyE,EAAa,CACnCxC,UAAW,CAAA,CACb,CAAC,CAEL,EAOMyC,EAAYzM,IAChB,GAAM,CAAEwD,QAAAA,EAASuE,OAAAA,EAAQC,SAAAA,EAAUC,gBAAAA,CAAgB,EAAIJ,EAAmB7H,CAAE,EAE5EgI,EAASsE,UAAY,GAErB9I,EAAQa,aAAa,gBAAiB,OAAO,EAC7Cb,EAAQa,aAAa,wBAAyB,EAAE,EAE5C4D,GACFA,EAAgBjG,UAAUrE,OAAO8I,CAAyB,EAG5DsB,EAAOsC,UAAY,EACnBtC,EAAOU,OAAS,CAAA,CAClB,EAOMiE,EAAcC,IAClB,GAAM,CAAErE,WAAAA,EAAYR,SAAAA,EAAUtE,QAAAA,CAAQ,EAAIqE,EAAmB8E,CAAY,EAEzErF,EAAmBQ,EAAU6E,EAAaxI,QAAQ1H,KAAK,EACvD6K,EAAmB9D,EAASmJ,EAAarI,WAAW,EACpDgE,EAAWtG,UAAUvE,IAAIsI,CAAwB,EACjD0G,EAASnE,CAAU,EACnB9E,EAAQ8G,MAAM,CAChB,EAyBMsC,EAAkB5M,IACtB,GAAM,CAAEsI,WAAAA,EAAYR,SAAAA,EAAUtE,QAAAA,CAAQ,EAAIqE,EAAmB7H,CAAE,EAEzD6M,EAAc/E,EAASrL,MACvB4O,GAAc7H,EAAQ/G,OAAS,IAAIjC,YAAY,EAErD,GAAIqS,EACF,IAAKlI,IAAI1R,EAAI,EAAGqW,EAAMxB,EAAS5K,QAAQtJ,OAAQX,EAAIqW,EAAKrW,GAAK,EAAG,CAC9D,IAAMsW,EAAWzB,EAAS5K,QAAQjK,GAClC,GAAIsW,EAAS9M,QAAUoQ,EAKrB,OAJIxB,IAAe9B,EAASM,MAC1BvC,EAAmB9D,EAAS+F,EAASM,IAAI,EAD3C,KAGAvB,EAAWtG,UAAUvE,IAAIsI,CAAwB,CAGrD,CAGEsF,GACF/D,EAAmB9D,CAAO,CAE9B,EAqCA,IAaMsJ,EAAuB9O,IAC3B,GAAM,CAAEsK,WAAAA,EAAYP,OAAAA,CAAO,EAAIF,EAAmB7J,EAAMrC,MAAM,EAMxDoR,GAJFhF,EAAOU,QACTwC,EAAY3C,CAAU,EAItBP,EAAOjI,cAAcoH,CAAmB,GACxCa,EAAOjI,cAAcmH,CAAW,GAE9B8F,GACFjD,EAAgBxB,EAAYyE,CAAY,EAG1C/O,EAAMoC,eAAe,CACvB,EAyBM4M,EAA4BhP,IAChC,IAAMiK,EAAkBjK,EAAMrC,OACxBoR,EAAe9E,EAAgBgF,YAEjCF,GACFjD,EAAgB7B,EAAiB8E,CAAY,EAG/C/O,EAAMoC,eAAe,CACvB,EA2BM8M,EAA0BlP,IAC9B,GAAM,CAAEsK,WAAAA,EAAYP,OAAAA,EAAQE,gBAAAA,CAAgB,EAAIJ,EAC9C7J,EAAMrC,MACR,EACMoR,EAAe9E,GAAmBA,EAAgBkF,gBAClDC,EAAY,CAACrF,EAAOU,OAE1BqB,EAAgBxB,EAAYyE,CAAY,EAEpCK,GACFpP,EAAMoC,eAAe,EAGlB2M,GACHN,EAASnE,CAAU,CAEvB,EAkDM+E,EAAW/O,EACf,EACG4B,GAAQ,EACN2C,KACKpO,KAAKiU,WAZa1I,IAC5B,GAAM,CAAEsI,WAAAA,EAAYP,OAAAA,CAAO,EAAIF,EAAmB7H,CAAE,EAEhD+H,EAAOU,QACTwC,EAAY3C,CAAU,CAE1B,GAO6B7T,IAAI,CAC3B,GACCsS,KACKtS,KAAKiU,WAjCG1I,IAClB,GAAM,CAAEsI,WAAAA,EAAYP,OAAAA,EAAQvE,QAAAA,CAAQ,EAAIqE,EAAmB7H,CAAE,GAEzD+H,EAAOU,OACTwC,EAEAwB,GAFYnE,CAAU,EAKxB9E,EAAQ8G,MAAM,CAChB,GAwBmB7V,IAAI,CACjB,GACCwS,KACKxS,KAAKiU,UACTgE,EAAWjY,IAAI,CACjB,GACCqS,KACKrS,KAAKiU,WAzPG4E,IAClB,GAAM,CAAEhF,WAAAA,EAAYP,OAAAA,EAAQD,SAAAA,EAAUtE,QAAAA,CAAQ,EAC5CqE,EAAmByF,CAAa,EAC5BF,EAAY,CAACrF,EAAOU,OAEtBX,EAASrL,OAAO6K,EAAmBQ,CAAQ,EAC3CtE,EAAQ/G,OAAO6K,EAAmB9D,CAAO,EAC7C8E,EAAWtG,UAAUrE,OAAOoI,CAAwB,EAEhDqH,GAAWnC,EAAY3C,CAAU,EACrC9E,EAAQ8G,MAAM,CAChB,GA+OmB7V,IAAI,CACjB,CACF,EACA8Y,SAAU,EACP3G,GAAW5I,GACLvJ,KAAK4J,SAASL,EAAMwP,aAAa,IACpCZ,EAAenY,IAAI,EACnBgY,EAAShY,IAAI,EAEjB,CACF,EACAyN,QAAS,EACN0E,GAAYpI,EAAO,CAClBiP,OA1LczP,IACpB,GAAM,CAAEsK,WAAAA,EAAY9E,QAAAA,CAAQ,EAAIqE,EAAmB7J,EAAMrC,MAAM,EAE/D8Q,EAASnE,CAAU,EACnBsE,EAAetE,CAAU,EACzB9E,EAAQ8G,MAAM,CAChB,CAqLM,CAAC,GACAzH,GAAQrE,EAAO,CACdkP,MAzJsB1P,IAC5B,GAAM,CAAEsK,WAAAA,EAAYP,OAAAA,CAAO,EAAIF,EAAmB7J,EAAMrC,MAAM,EACxDyR,EAAY,CAACrF,EAAOU,QAjEDzI,IACzB,GAAM,CAAEsI,WAAAA,EAAYR,SAAAA,EAAUtE,QAAAA,EAASwE,SAAAA,CAAS,EAAIH,EAAmB7H,CAAE,EAInEqL,GAFNrD,EAAS1D,YAAc,IAEHd,EAAQ/G,OAAS,IAAIjC,YAAY,GAErD,GAAI6Q,EACF,IAAK1G,IAAI1R,EAAI,EAAGqW,EAAMxB,EAAS5K,QAAQtJ,OAAQX,EAAIqW,EAAKrW,GAAK,EAAG,CAC9D,IAAMsW,EAAWzB,EAAS5K,QAAQjK,GAClC,GAAIsW,EAASM,KAAKrP,YAAY,IAAM6Q,EAIlC,OAHA/D,EAAmBQ,EAAUyB,EAAS9M,KAAK,EAC3C6K,EAAmB9D,EAAS+F,EAASM,IAAI,EACzCvB,EAAWtG,UAAUvE,IAAIsI,CAAwB,CAGrD,CAGF6G,EAAetE,CAAU,CAC3B,GA+CoBA,CAAU,EAExB8E,GACFX,EAASnE,CAAU,EAGrBtK,EAAMoC,eAAe,CACvB,EA+IQuN,UAAWb,EACXc,KAAMd,CACR,CAAC,GACA7F,GAAczI,EAAO,CACpBqP,QAASX,EACTY,GAAIZ,EACJS,UAAWX,EACXY,KAAMZ,EACNU,MAtH2B1P,IACjC0O,EAAW1O,EAAMrC,MAAM,EACvBqC,EAAMoC,eAAe,CACvB,EAoHQgC,IAjI2BpE,IACjC0O,EAAW1O,EAAMrC,MAAM,EACvBqC,EAAMoC,eAAe,CACvB,EA+HQ2N,YAj0BK,MAk0BP,CAAC,CACH,EACApI,MAAO,EACJ9C,KACoBpO,KAAKO,QAAQ4R,CAAS,EAC9B5E,UAAUrE,OAAOoI,CAAwB,EACpDkF,EAAYxW,IAAI,CAClB,CACF,EACAuZ,UAAW,EACR/G,KAjGkB0F,IAAAA,GAAAA,EAkGDlY,MAjGkBuN,UAAU3D,SAChDoI,CACF,GAIAqD,EAAgB6C,EAAcA,EAAc,CAC1C1C,cAAe,CAAA,CACjB,CAAC,CA0FG,CACF,CACF,EACA,CACE1I,KAAKC,GACHoE,EAAgBgB,EAAWpF,CAAI,EAAE/F,QAAS6M,IACxCK,EAAgBL,CAAU,CAC5B,CAAC,CACH,EACAT,mBAAAA,EACAc,gBAAAA,EACA4B,sBAAAA,EACA/B,QAAAA,EACAyF,OA7uBYjO,IACd,GAAM,CAAEwD,QAAAA,EAAS2E,gBAAAA,EAAiBC,gBAAAA,CAAgB,EAAIP,EAAmB7H,CAAE,EAE3EoI,EAAgBK,OAAS,CAAA,EAEzBN,EAAgBO,SADhBN,EAAgBM,SAAW,CAAA,EAE3BlF,EAAQkF,SAAW,CAAA,CACrB,EAuuBIuC,YAAAA,EACAwB,SAAAA,EACA3G,gBAAAA,CACF,CACF,EAEAhS,EAAOJ,QAAU2Z,C,oQCr4BjB,IAAM7O,EAASpL,EAAQ,iBAAiB,EACxC,IAAMkL,EAAWlL,EAAQ,wCAAwC,EACjE,IAAMiN,EAASjN,EAAQ,sCAAsC,EACvDwS,EAAkBxS,EAAQ,iDAAiD,EACjF,IAAgB+M,EAAW/M,EAAQ,gCAAgC,EAA5C,OACf8M,EAAU9M,EAAQ,gCAAgC,EAA5C,MACd,IAAM8a,EAAgB9a,EAAQ,8CAA8C,EAC5E,IAAM+a,EAAc/a,EAAQ,6CAA6C,EACzE,IAAMyS,EAAYzS,EAAQ,yCAAyC,EAE7Dgb,EAAuBjO,EAAH,eAC1B,IAAMkO,EAA+BD,EAAH,YAC5BE,EAAmCF,EAAH,gBAChCG,EAA8BH,EAAH,WAC3BI,EAAsCJ,EAAH,mBACnCK,EAAsCL,EAAH,mBACnCM,EAA8BN,EAAH,WAC3BO,EAAgCP,EAAH,aAC7BQ,EAA8BR,EAAH,WAC3BS,EAAyBF,EAAH,SAEtBG,EAAiCD,EAAH,YAC9BE,EAAkCF,EAAH,aAC/BG,EAAwCH,EAAH,mBACrCI,GAAuCJ,EAAH,kBACpCK,GAAoCL,EAAH,eACjCM,GAAoCN,EAAH,eACjCO,GAA+BP,EAAH,UAC5BQ,GAA0CR,EAAH,qBACvCS,GAAwCT,EAAH,mBACrCU,GAAsCV,EAAH,iBACnCW,GAAkCb,EAAH,kBAC/Bc,GAAmCd,EAAH,mBAChCe,GAA8Bf,EAAH,cAC3BgB,GAA+BhB,EAAH,eAC5BiB,GAAoCjB,EAAH,oBACjCkB,GAAmClB,EAAH,mBAChCmB,EAA0BnB,EAAH,UACvBoB,GAAkCD,EAAH,YAC/BE,GAAmCF,EAAH,aAChCG,EAAyBtB,EAAH,SACtBuB,GAAiCD,EAAH,YAC9BE,GAAkCF,EAAH,aAC/BG,GAAwCzB,EAAH,wBACrC0B,GAAoC1B,EAAH,oBACjC2B,GAAgC3B,EAAH,gBAC7B4B,GAAiC5B,EAAH,iBAC9B6B,GAAgC7B,EAAH,gBAC7B8B,EAA0B9B,EAAH,UACvB+B,GAAwB/B,EAAH,QACrBgC,EAAyBhC,EAAH,SACtBiC,EAAsCD,EAAH,iBACnCE,GAAgClC,EAAH,gBAC7BmC,GAAgCnC,EAAH,gBAE7BoC,EAAc,IAAI3C,EAClB4C,GAAqB,IAAItC,EACzBuC,GAA6B,IAAIzC,EACjC0C,EAA6B,IAAIzC,EACjC0C,GAAuB,IAAIxC,EAC3ByC,GAAqB,IAAIxC,EACzByC,EAAgB,IAAIxC,EAC1B,IAAMyC,EAAwB,IAAIxC,EAC5ByC,EAA8B,IAAItC,GACxC,IAAMuC,GAAyB,IAAIhC,GAC7BiC,GAA0B,IAAIhC,GAC9BiC,GAAqB,IAAIhC,GACzBiC,GAAsB,IAAIhC,GAChC,IAAMiC,GAA0B,IAAI/B,GAC9BgC,GAA2B,IAAIjC,GAC/BkC,GAAiB,IAAIhC,EAC3B,IAAMiC,GAAgB,IAAI9B,EACpB+B,GAA+B,IAAI5B,GACnC6B,GAA2B,IAAI5B,GAC/B6B,EAAuB,IAAI5B,GACjC,IAAM6B,GAAwB,IAAI5B,GAClC,IAAM6B,GAAuB,IAAI5B,GAC3B6B,GAAyB,IAAItC,GAC7BuC,EAAwB,IAAIpC,GAE5BlN,GAAqB,4BAErBuP,GAAe,CACnB,UACA,WACA,QACA,QACA,MACA,OACA,OACA,SACA,YACA,UACA,WACA,YAGIC,GAAqB,CACzB,SACA,SACA,UACA,YACA,WACA,SACA,YAKIC,EAAa,GAGbC,EAA+B,aAC/BC,GAAuB,aAI7B,IAAMC,EAA4B,IAAI1U,IACpCA,EAAU5C,IAAKkP,GAAUA,EAHG,kBAG0B,EAAEjP,KAAK,IAAI,EAE7DsX,EAAwBD,EAC5BpB,GACAC,GACAG,GACAC,GACAH,GACAC,GACAL,CACF,EAEMwB,GAAyBF,EAC7BP,EACF,EAEMU,EAAwBH,EAC5BZ,GACAC,GACAK,CACF,EAWA,IAAMU,GAAsB,CAACC,EAAaC,KACpCA,IAAUD,EAAYE,SAAS,GACjCF,EAAYG,QAAQ,CAAC,EAGhBH,GAWHG,EAAU,CAACC,EAAMH,EAAOI,KAC5B,IAAMC,EAAU,IAAIC,KAAK,CAAC,EAE1B,OADAD,EAAQE,YAAYJ,EAAMH,EAAOI,CAAI,EAC9BC,CACT,EAOMG,GAAQ,KACZ,IAAMH,EAAU,IAAIC,KACdG,EAAMJ,EAAQK,QAAQ,EACtBV,EAAQK,EAAQJ,SAAS,EACzBE,EAAOE,EAAQM,YAAY,EACjC,OAAOT,EAAQC,EAAMH,EAAOS,CAAG,CACjC,EAQMG,GAAgBR,IACpB,IAAMC,EAAU,IAAIC,KAAK,CAAC,EAE1B,OADAD,EAAQE,YAAYH,EAAKO,YAAY,EAAGP,EAAKH,SAAS,EAAG,CAAC,EACnDI,CACT,EAQMQ,GAAkBT,IACtB,IAAMC,EAAU,IAAIC,KAAK,CAAC,EAE1B,OADAD,EAAQE,YAAYH,EAAKO,YAAY,EAAGP,EAAKH,SAAS,EAAI,EAAG,CAAC,EACvDI,CACT,EASMS,EAAU,CAACC,EAAOC,KAChBX,EAAU,IAAIC,KAAKS,EAAME,QAAQ,CAAC,EAExC,OADAZ,EAAQH,QAAQG,EAAQK,QAAQ,EAAIM,CAAO,EACpCX,CACT,EASMa,GAAU,CAACH,EAAOC,IAAYF,EAAQC,EAAO,CAACC,CAAO,EASrDG,GAAW,CAACJ,EAAOK,IAAaN,EAAQC,EAAkB,EAAXK,CAAY,EAiB3DC,GAAeN,IACnB,IAAMO,EAAYP,EAAMQ,OAAO,EAC/B,OAAOL,GAAQH,EAAOO,CAAS,CACjC,EAqBME,EAAY,CAACT,EAAOU,KACxB,IAAMpB,EAAU,IAAIC,KAAKS,EAAME,QAAQ,CAAC,EAElCS,GAAarB,EAAQJ,SAAS,EAAI,GAAKwB,GAAa,GAI1D,OAHApB,EAAQsB,SAAStB,EAAQJ,SAAS,EAAIwB,CAAS,EAC/C3B,GAAoBO,EAASqB,CAAS,EAE/BrB,CACT,EASMuB,GAAY,CAACb,EAAOU,IAAcD,EAAUT,EAAO,CAACU,CAAS,EAS7DI,GAAW,CAACd,EAAOe,IAAaN,EAAUT,EAAkB,GAAXe,CAAa,EAS9DC,GAAW,CAAChB,EAAOe,IAAaD,GAASd,EAAO,CAACe,CAAQ,EASzDH,EAAW,CAACZ,EAAOf,KACjBK,EAAU,IAAIC,KAAKS,EAAME,QAAQ,CAAC,EAKxC,OAHAZ,EAAQsB,SAAS3B,CAAK,EACtBF,GAAoBO,EAASL,CAAK,EAE3BK,CACT,EASM2B,EAAU,CAACjB,EAAOZ,KACtB,IAAME,EAAU,IAAIC,KAAKS,EAAME,QAAQ,CAAC,EAElCjB,EAAQK,EAAQJ,SAAS,EAI/B,OAHAI,EAAQE,YAAYJ,CAAI,EACxBL,GAAoBO,EAASL,CAAK,EAE3BK,CACT,EASM4B,GAAM,CAACC,EAAOC,KAClB1Q,IAAI4O,EAEA8B,EAAQD,EACAC,EAHED,EAMd,OAAO,IAAI5B,KAAKD,EAAQY,QAAQ,CAAC,CACnC,EASMmB,GAAM,CAACF,EAAOC,KAClB1Q,IAAI4O,EAEQ6B,EAARC,EACQA,EAHED,EAMd,OAAO,IAAI5B,KAAKD,EAAQY,QAAQ,CAAC,CACnC,EASMoB,GAAa,CAACH,EAAOC,IACzBD,GAASC,GAASD,EAAMvB,YAAY,IAAMwB,EAAMxB,YAAY,EASxD2B,EAAc,CAACJ,EAAOC,IAC1BE,GAAWH,EAAOC,CAAK,GAAKD,EAAMjC,SAAS,IAAMkC,EAAMlC,SAAS,EAS5DsC,EAAY,CAACL,EAAOC,IACxBG,EAAYJ,EAAOC,CAAK,GAAKD,EAAMxB,QAAQ,IAAMyB,EAAMzB,QAAQ,EAU3D8B,EAA2B,CAACpC,EAAMqC,EAASC,KAC/CjR,IAAI4O,EAAUD,EAQd,OANIA,EAAOqC,EACTpC,EAAUoC,EACDC,GAAkBA,EAAPtC,IACpBC,EAAUqC,GAGL,IAAIpC,KAAKD,EAAQY,QAAQ,CAAC,CACnC,EAUM0B,GAAwB,CAACvC,EAAMqC,EAASC,IACpCD,GAARrC,IAAoB,CAACsC,GAAWtC,GAAQsC,GAUpCE,GAA8B,CAACxC,EAAMqC,EAASC,IAClD7B,GAAeT,CAAI,EAAIqC,GAAYC,GAAW9B,GAAaR,CAAI,EAAIsC,EAU/DG,GAA6B,CAACzC,EAAMqC,EAASC,IACjD7B,GAAec,EAASvB,EAAM,EAAE,CAAC,EAAIqC,GACpCC,GAAW9B,GAAae,EAASvB,EAAM,CAAC,CAAC,EAAIsC,EAiB1CI,GAAgB,CAAC1C,EAAM2C,KAC3B,IACMC,EAAiBD,GAAad,GAAIgB,EAAqBF,CAAS,EAChEG,EAAeH,GAAaX,GAAIa,EAAqBF,CAAS,EAKpE,MAAO,CACLC,eAAAA,EACAE,aAAAA,EACAC,qBAN2BJ,GAAajC,EAAQkC,EAAgB,CAAC,EAOjEI,mBANyBL,GAAa7B,GAAQgC,EAAc,CAAC,CAO/D,CACF,EAUMG,EAAkB,CACtBC,EACAC,EAAa9D,GACb+D,EAAa,CAAA,KAEb/R,IAAI2O,EACAJ,EACAS,EACAN,EACAsD,EAEJ,GAAIH,EAAY,CACd7R,IAAIiS,EACAC,EACAC,EAEAL,IAAe/D,EACjB,CAACkE,EAAUC,EAAQC,GAAWN,EAAWhb,MAAM,GAAG,EAElD,CAACsb,EAASF,EAAUC,GAAUL,EAAWhb,MAAM,GAAG,EAGhDsb,IACFH,EAASxR,SAAS2R,EAAS,EAAE,EACxBC,OAAOC,MAAML,CAAM,IACtBtD,EAAOsD,EACHD,IACFrD,EAAOvO,KAAKwQ,IAAI,EAAGjC,CAAI,EACnByD,EAAQljB,OAAS,KAEbqjB,GADAC,EAAcxD,GAAM,EAAEG,YAAY,GAEvBqD,EAAc,IAAMJ,EAAQljB,OAC7Cyf,EAAO4D,EAAkBN,KAM7BC,IACFD,EAASxR,SAASyR,EAAU,EAAE,EACzBG,OAAOC,MAAML,CAAM,IACtBzD,EAAQyD,EACJD,IACFxD,EAAQpO,KAAKwQ,IAAI,EAAGpC,CAAK,EACzBA,EAAQpO,KAAKqQ,IAAI,GAAIjC,CAAK,KAK5BA,GAAS2D,GAAkB,MAARxD,IACrBsD,EAASxR,SAAS0R,EAAQ,EAAE,EACvBE,OAAOC,MAAML,CAAM,IACtBhD,EAAMgD,EACFD,IACIS,EAAoB/D,EAAQC,EAAMH,EAAO,CAAC,EAAEU,QAAQ,EAC1DD,EAAM7O,KAAKwQ,IAAI,EAAG3B,CAAG,EACrBA,EAAM7O,KAAKqQ,IAAIgC,EAAmBxD,CAAG,KAKvCT,GAASS,GAAe,MAARN,IAClBC,EAAOF,EAAQC,EAAMH,EAAQ,EAAGS,CAAG,EAEvC,CAEA,OAAOL,CACT,EASM8D,EAAa,CAAC9D,EAAMmD,EAAa9D,MACrC,IAAM0E,EAAW,CAAC5a,EAAO7I,KAAW,OAAO6I,GAAQ6a,MAAM,CAAC1jB,CAAM,EAE1Dsf,EAAQI,EAAKH,SAAS,EAAI,EAC1BQ,EAAML,EAAKM,QAAQ,EACnBP,EAAOC,EAAKO,YAAY,EAE9B,OAAI4C,IAAe/D,EACV,CAAC2E,EAASnE,EAAO,CAAC,EAAGmE,EAAS1D,EAAK,CAAC,EAAG0D,EAAShE,EAAM,CAAC,GAAG9X,KAAK,GAAG,EAGpE,CAAC8b,EAAShE,EAAM,CAAC,EAAGgE,EAASnE,EAAO,CAAC,EAAGmE,EAAS1D,EAAK,CAAC,GAAGpY,KAAK,GAAG,CAC3E,EAWMgc,GAAiB,CAACC,EAAWC,KACjC,IAAMC,EAAO,GACTC,EAAM,GAEVhT,IAAI1R,EAAI,EACR,KAAOA,EAAIukB,EAAU5jB,QAAQ,CAC3B+jB,EAAM,GAEN,IAAMC,EAAKjjB,SAASqP,cAAc,IAAI,EACtC,KAAO/Q,EAAIukB,EAAU5jB,QAAU+jB,EAAI/jB,OAAS6jB,GAAS,CACnD,IAAMI,EAAKljB,SAASqP,cAAc,IAAI,EACtC6T,EAAGlO,sBAAsB,YAAa6N,EAAUvkB,EAAE,EAClD0kB,EAAIvZ,KAAKyZ,CAAE,EACX5kB,GAAK,CACP,CAEA0kB,EAAIlc,QAASjH,IACXojB,EAAGjO,sBAAsB,YAAanV,CAAO,CAC/C,CAAC,EAEDkjB,EAAKtZ,KAAKwZ,CAAE,CACd,CAEA,OAAOF,CACT,EAEMI,GAAmBJ,IACvB,IAAMK,EAAYpjB,SAASqP,cAAc,OAAO,EAKhD,OAJA0T,EAAKjc,QAASjH,IACZujB,EAAUpO,sBAAsB,YAAanV,CAAO,CACtD,CAAC,EAEMujB,CACT,EAQMzQ,GAAqB,CAACtH,EAAIvD,EAAQ,MAEtC8K,EAAgB9K,MAAQA,EAElBuB,EAAQ,IAAIwJ,YAAY,SAAU,CACtCC,QAAS,CAAA,EACTC,WAAY,CAAA,EACZC,OAAQ,CAAElL,MAAAA,CAAM,CAClB,CAAC,EACD8K,EAAgBK,cAAc5J,CAAK,CACrC,EA0BMga,EAAwBhY,IACtBiY,EAAejY,EAAGhL,QAAQ+b,CAAW,EAE3C,GAAI,CAACkH,EACH,MAAM,IAAI1kB,MAAM,4BAA4Bwd,CAAa,EAG3D,IAAMmH,EAAkBD,EAAanY,cACnCmR,EACF,EACMkH,EAAkBF,EAAanY,cACnCoR,CACF,EACMkH,EAAaH,EAAanY,cAAcqR,EAAoB,EAC5DkH,EAAcJ,EAAanY,cAAckR,EAAkB,EAC3DhJ,EAAWiQ,EAAanY,cAAcsR,EAAkB,EACxDkH,EAAmBL,EAAanY,cAAciS,EAAa,EAE3DwG,EAAYhC,EAChB4B,EAAgB1b,MAChBiW,EACA,CAAA,CACF,EACM8F,EAAejC,EAAgB2B,EAAgBzb,KAAK,EAEpDgc,EAAelC,EAAgB6B,EAAWjU,QAAQ1H,KAAK,EACvDkZ,EAAUY,EAAgB0B,EAAa9T,QAAQwR,OAAO,EACtDC,EAAUW,EAAgB0B,EAAa9T,QAAQyR,OAAO,EACtDK,EAAYM,EAAgB0B,EAAa9T,QAAQ8R,SAAS,EAC1DyC,EAAcnC,EAAgB0B,EAAa9T,QAAQuU,WAAW,EAEpE,GAAI/C,GAAWC,GAAqBA,EAAVD,EACxB,MAAM,IAAIpiB,MAAM,2CAA2C,EAG7D,MAAO,CACLklB,aAAAA,EACA9C,QAAAA,EACA0C,YAAAA,EACAG,aAAAA,EACA5C,QAAAA,EACA0C,iBAAAA,EACAL,aAAAA,EACAM,UAAAA,EACAL,gBAAAA,EACAC,gBAAAA,EACAC,WAAAA,EACAnC,UAAAA,EACAyC,YAAAA,EACA1Q,SAAAA,CACF,CACF,EAOMQ,GAAWxI,IACf,GAAM,CAAEmY,gBAAAA,EAAiBE,YAAAA,CAAY,EAAIL,EAAqBhY,CAAE,EAEhEqY,EAAY3P,SAAW,CAAA,EACvByP,EAAgBzP,SAAW,CAAA,CAC7B,EAOMiQ,GAAe3Y,IACnB,GAAM,CAAEmY,gBAAAA,EAAiBE,YAAAA,CAAY,EAAIL,EAAqBhY,CAAE,EAEhEqY,EAAYhU,aAAa,gBAAiB,CAAA,CAAI,EAC9C8T,EAAgB9T,aAAa,gBAAiB,CAAA,CAAI,EAClD8T,EAAgB9T,aAAa,WAAY,EAAE,CAC7C,EAyBA,IAAMuU,GAAsB5Y,IAC1B,IASSkT,EAAOS,EAAKN,EAQXwF,EAjBJ,CAAEV,gBAAAA,EAAiBxC,QAAAA,EAASC,QAAAA,CAAQ,EAAIoC,EAAqBhY,CAAE,EAE/DwW,EAAa2B,EAAgB1b,MACnCkI,IAAImU,EAAY,CAAA,EA4BhB,OALMA,EArBFtC,IACFsC,EAAY,CAAA,EAGN,CAAC5F,EAAOS,EAAKN,IADb0F,EAAkBvC,EAAWhb,MAAM,GAAG,GACDF,IAAKkE,IAC9CmF,IAAIlI,EACEka,EAASxR,SAAS3F,EAAK,EAAE,EAE/B,OAD2B/C,EAAtBsa,OAAOC,MAAML,CAAM,EACjBla,EAD4Bka,CAErC,CAAC,EAEGzD,IAASS,GAAe,MAARN,IACZwF,EAAYzF,EAAQC,EAAMH,EAAQ,EAAGS,CAAG,GAGlCR,SAAS,IAAMD,EAAQ,GACjC2F,EAAUjF,QAAQ,IAAMD,GACxBkF,EAAUhF,YAAY,IAAMR,GACE,IAA9B0F,EAAgB,GAAGnlB,QACnBiiB,GAAsBgD,EAAWlD,EAASC,CAAO,EAErC,CAAA,EAKXkD,CACT,EAOME,GAAqBhZ,IACzB,IAAQmY,EAAoBH,EAAqBhY,CAAE,EAA3B,gBAClB8Y,EAAYF,GAAmBT,CAAe,EAEhDW,GAAa,CAACX,EAAgB7S,mBAChC6S,EAAgB5S,kBAAkBvC,EAAkB,EAGjD8V,GAAaX,EAAgB7S,oBAAsBtC,IACtDmV,EAAgB5S,kBAAkB,EAAE,CAExC,EA4BM0T,GAAmB,CAACjZ,EAAIwW,KAC5B,IAKwB0B,EAAiBC,EALnCe,EAAa3C,EAAgBC,CAAU,EAEzC0C,IACIC,EAAgB/B,EAAW8B,EAAYxG,CAA4B,EAEnE,CAAEuF,aAAAA,EAAcC,gBAAAA,EAAiBC,gBAAAA,CAAgB,EACrDH,EAAqBhY,CAAE,EAEzBsH,GAAmB4Q,EAAiB1B,CAAU,EAC9ClP,GAAmB6Q,EAAiBgB,CAAa,EAEjDH,GAAkBf,CAAY,EAElC,EAsFMmB,EAAiB,CAACpZ,EAAIqZ,KAC1B,GAAM,CACJpB,aAAAA,EACAG,WAAAA,EACApQ,SAAAA,EACAwQ,aAAAA,EACA5C,QAAAA,EACAD,QAAAA,EACAM,UAAAA,CACF,EAAI+B,EAAqBhY,CAAE,EACrBsZ,EAAa5F,GAAM,EACrB6F,EAAgBF,GAAkBC,EAEhCE,EAAoBpB,EAAW3P,OAErC,IAAMgR,EAAczF,EAAQuF,EAAe,CAAC,EAC5C,IAAMG,EAAeH,EAAcpG,SAAS,EACtCwG,EAAcJ,EAAc1F,YAAY,EAE9C,IAAM+F,EAAY9E,GAAUyE,EAAe,CAAC,EACtCM,EAAYnF,EAAU6E,EAAe,CAAC,EAE5C,IAAMO,EAAuB1C,EAAWmC,CAAa,EAE/CQ,EAAejG,GAAayF,CAAa,EACzCS,EAAsBxE,EAAY+D,EAAe5D,CAAO,EACxDsE,EAAsBzE,EAAY+D,EAAe3D,CAAO,EAE9D,GAAM,CACJM,eAAAA,EACAE,aAAAA,EACAC,qBAAAA,EACAC,mBAAAA,CACF,EAAIN,GAAcwC,GAAgBe,EAAetD,CAAS,EAgG1D,IA9FA,IAAMiE,EAAa3H,GAAamH,GA4F1BS,GAFNZ,EAAgBhF,GAAYwF,CAAY,EAE3B,IAGXI,EAAKvmB,OAAS,IACd2lB,EAAcpG,SAAS,IAAMuG,GAC7BS,EAAKvmB,OAAS,GAAM,GAEpBumB,EAAK/b,MAjGmBgc,IACxB,IAAMnO,EAAU,CAAC4C,GACX8E,EAAMyG,EAAaxG,QAAQ,EAC3BV,EAAQkH,EAAajH,SAAS,EAC9BE,EAAO+G,EAAavG,YAAY,EAChCW,EAAY4F,EAAa3F,OAAO,EAEhC0E,EAAgB/B,EAAWgD,CAAY,EAE7CzV,IAAIuH,EAAW,KAEf,IAAMmO,EAAa,CAACxE,GAAsBuE,EAAczE,EAASC,CAAO,EAClE0E,EAAa7E,EAAU2E,EAAc5B,CAAY,EAmDjD5B,GAjDFpB,EAAY4E,EAAcR,CAAS,GACrC3N,EAAQ7N,KAAK4Q,CAAkC,EAG7CwG,EAAY4E,EAAcX,CAAW,GACvCxN,EAAQ7N,KAAK6Q,EAAiC,EAG5CuG,EAAY4E,EAAcP,CAAS,GACrC5N,EAAQ7N,KAAK8Q,EAA8B,EAGzCoL,GACFrO,EAAQ7N,KAAK2Q,CAA4B,EAGvC0G,EAAU2E,EAAcd,CAAU,GACpCrN,EAAQ7N,KAAKgR,EAAyB,EAGpC6G,IACER,EAAU2E,EAAcnE,CAAS,GACnChK,EAAQ7N,KAAK+Q,EAA8B,EAGzCsG,EAAU2E,EAAclE,CAAc,GACxCjK,EAAQ7N,KAAKiR,EAAoC,EAG/CoG,EAAU2E,EAAchE,CAAY,GACtCnK,EAAQ7N,KAAKkR,EAAkC,EAI/CuG,GACEuE,EACA/D,EACAC,CACF,IAEArK,EAAQ7N,KAAKmR,EAAgC,EAI7CkG,EAAU2E,EAAcX,CAAW,IACrCvN,EAAW,IACXD,EAAQ7N,KAAK0Q,CAA2B,GAGzByD,GAAaW,IACxB2D,EAASrE,GAAmBgC,GAE5B+F,EAAM5lB,SAASqP,cAAc,QAAQ,EAkB3C,OAjBAuW,EAAIlW,aAAa,OAAQ,QAAQ,EACjCkW,EAAIlW,aAAa,WAAY6H,CAAQ,EACrCqO,EAAIlW,aAAa,QAAS4H,EAAQ1Q,KAAK,GAAG,CAAC,EAC3Cgf,EAAIlW,aAAa,WAAYsP,CAAG,EAChC4G,EAAIlW,aAAa,aAAc6O,EAAQ,CAAC,EACxCqH,EAAIlW,aAAa,YAAagP,CAAI,EAClCkH,EAAIlW,aAAa,aAAc8U,CAAa,EAC5CoB,EAAIlW,aACF,aACAwB,EAAU6D,aAAaiK,KAAOiD,KAAYvD,KAAQwD,GACpD,EACA0D,EAAIlW,aAAa,gBAAiBiW,EAAa,OAAS,OAAO,EAC5C,CAAA,GAAfD,IACFE,EAAI7R,SAAW,CAAA,GAEjB6R,EAAIjW,YAAcqP,EAEX4G,CACT,GAY6BhB,CAAa,CAAC,EACzCA,EAAgBvF,EAAQuF,EAAe,CAAC,EAG1C,IAAMiB,EAAYjD,GAAe4C,EAAM,CAAC,EAElCM,EAAcrC,EAAWsC,UAAU,EAqDnCC,GApDNF,EAAYtW,QAAQ1H,MAAQqd,EAC5BW,EAAYG,MAAMC,IAAS5C,EAAa7N,aAAhB,KACxBqQ,EAAYhS,OAAS,CAAA,EACrBgS,EAAYnO,UAAYzG,EAAU6D;gCACJ4G;oBACZI;sBACEC,KAAuBC;;;qBAGxBpB;;cAEPwK,EAAsB,sBAAwB;;;sBAGtCrJ,KAAuBC;;;qBAGxBnB;;cAEPuK,EAAsB,sBAAwB;;;sBAGtCrJ,KAAuBE;;;qBAGxBjB,mBAA+CsK;aACvDA;;;qBAGQrK,mBAA8C8J;aACtDA;;sBAEShJ,KAAuBC;;;qBAGxBjB;;cAEPsK,EAAsB,sBAAwB;;;sBAGtCtJ,KAAuBC;;;qBAGxBlB;;cAEPuK,EAAsB,sBAAwB;;;;;MAO5CtlB,SAASqP,cAAc,OAAO,GAGtC8W,GAFNH,EAAMtW,aAAa,QAASoM,CAAoB,EAE9B9b,SAASqP,cAAc,OAAO,GAChD2W,EAAMhR,sBAAsB,YAAamR,CAAS,EAClD,IAAMC,EAAepmB,SAASqP,cAAc,IAAI,EAG1CgX,GAFNF,EAAUnR,sBAAsB,YAAaoR,CAAY,EAEtC,CACjBE,OAAQ,IACRC,OAAQ,IACRC,QAAS,IACTC,UAAW,IACXC,SAAU,KACVC,OAAQ,KACRC,SAAU,GACZ,GAEAvlB,OAAON,KAAKslB,CAAU,EAAEvf,QAAShG,IAC/B,IAAM+lB,EAAK7mB,SAASqP,cAAc,IAAI,EACtCwX,EAAGnX,aAAa,QAASyM,EAA0B,EACnD0K,EAAGnX,aAAa,QAAS,KAAK,EAC9BmX,EAAGnX,aAAa,aAAc5O,CAAG,EACjC+lB,EAAGlX,YAAc0W,EAAWvlB,GAC5BslB,EAAapR,sBAAsB,YAAa6R,CAAE,CACpD,CAAC,EAEKzD,EAAYD,GAAgB0C,CAAS,EAC3CG,EAAMhR,sBAAsB,YAAaoO,CAAS,EAIhD0C,EAAY3a,cAAcoS,CAAoB,EAEpBvI,sBAAsB,YAAagR,CAAK,EAEpEvC,EAAWljB,WAAWumB,aAAahB,EAAarC,CAAU,EAE1DH,EAAajW,UAAUvE,IAAI8Q,CAAwB,EAE7CmN,EAAW,GAoBjB,OAlBIjG,EAAU+C,EAAciB,CAAW,GACrCiC,EAAStd,KAAK,eAAe,EAG3Bob,GACFkC,EAAStd,KACP,sDACA,oCACA,6CACA,6DACA,+DACF,EACA4J,EAAS1D,YAAc,IAEvBoX,EAAStd,KAAQ8b,EAAH,IAAiBP,CAAa,EAE9C3R,EAAS1D,YAAcoX,EAASngB,KAAK,IAAI,EAElCkf,CACT,EAuFMkB,GAAgB3b,IACpB,GAAM,CAAEiY,aAAAA,EAAcG,WAAAA,EAAYpQ,SAAAA,CAAS,EAAIgQ,EAAqBhY,CAAE,EAEtEiY,EAAajW,UAAUrE,OAAO4Q,CAAwB,EACtD6J,EAAW3P,OAAS,CAAA,EACpBT,EAAS1D,YAAc,EACzB,EA+CMsX,GAA2B5b,IAC/B,GAAM,CAAEoY,WAAAA,EAAYG,UAAAA,EAAW5C,QAAAA,EAASC,QAAAA,CAAQ,EAAIoC,EAAqBhY,CAAE,EACrD,CAACoY,EAAW3P,QAEb8P,IACbgB,EAAgB7D,EAAyB6C,EAAW5C,EAASC,CAAO,EAC1EwD,EAAehB,EAAYmB,CAAa,EAE5C,EAWMsC,GAAwB,CAAC7b,EAAI8b,KACjC,GAAM,CAAE1D,WAAAA,EAAYpQ,SAAAA,EAAUyQ,aAAAA,EAAc9C,QAAAA,EAASC,QAAAA,CAAQ,EAC3DoC,EAAqBhY,CAAE,EAEnB+b,EAAgBtD,EAAatF,SAAS,EACtCuG,EAAiC,MAAlBoC,EAAyBC,EAAgBD,EAE9D,IAAME,EAASzJ,GAAajX,IAAI,CAAC4X,EAAOpe,KACtC,IAAMmnB,EAAepH,EAAS4D,EAAc3jB,CAAK,EAE3CulB,EAAavE,GACjBmG,EACAtG,EACAC,CACF,EAEAjR,IAAIuH,EAAW,KAEf,IAAMD,EAAU,CAAC6D,GACXwK,EAAaxlB,IAAUinB,EAWvBxB,GATFzlB,IAAU4kB,IACZxN,EAAW,IACXD,EAAQ7N,KAAK2R,EAA4B,GAGvCuK,GACFrO,EAAQ7N,KAAK4R,EAA6B,EAGhCrb,SAASqP,cAAc,QAAQ,GAY3C,OAXAuW,EAAIlW,aAAa,OAAQ,QAAQ,EACjCkW,EAAIlW,aAAa,WAAY6H,CAAQ,EACrCqO,EAAIlW,aAAa,QAAS4H,EAAQ1Q,KAAK,GAAG,CAAC,EAC3Cgf,EAAIlW,aAAa,aAAcvP,CAAK,EACpCylB,EAAIlW,aAAa,aAAc6O,CAAK,EACpCqH,EAAIlW,aAAa,gBAAiBiW,EAAa,OAAS,OAAO,EAC5C,CAAA,IAAfD,IACFE,EAAI7R,SAAW,CAAA,GAEjB6R,EAAIjW,YAAc4O,EAEXqH,CACT,CAAC,EAEK2B,EAAavnB,SAASqP,cAAc,KAAK,EAIzC2W,GAHNuB,EAAW7X,aAAa,WAAY,IAAI,EACxC6X,EAAW7X,aAAa,QAASkM,EAA2B,EAE9C5b,SAASqP,cAAc,OAAO,GAItCmY,GAHNxB,EAAMtW,aAAa,QAASoM,CAAoB,EAChDkK,EAAMtW,aAAa,OAAQ,cAAc,EAEtBkT,GAAeyE,EAAQ,CAAC,GACrCjE,EAAYD,GAAgBqE,CAAU,EAItC1B,GAHNE,EAAMhR,sBAAsB,YAAaoO,CAAS,EAClDmE,EAAWvS,sBAAsB,YAAagR,CAAK,EAE/BvC,EAAWsC,UAAU,GAMzC,OALAD,EAAY9Q,sBAAsB,YAAauS,CAAU,EACzD9D,EAAWljB,WAAWumB,aAAahB,EAAarC,CAAU,EAE1DpQ,EAAS1D,YAAc,kBAEhBmW,CACT,EA6BM2B,GAAuB,CAACpc,EAAIqc,KAChC,GAAM,CAAEjE,WAAAA,EAAYpQ,SAAAA,EAAUyQ,aAAAA,EAAc9C,QAAAA,EAASC,QAAAA,CAAQ,EAC3DoC,EAAqBhY,CAAE,EAEnBsc,EAAe7D,EAAa5E,YAAY,EACxC8F,EAA+B,MAAjB0C,EAAwBC,EAAeD,EAEvDE,EAAc5C,EAIZ6C,GAHND,GAAeA,EAAc9J,EAC7B8J,EAAczX,KAAKwQ,IAAI,EAAGiH,CAAW,EAEPxG,GAC5Bb,EAAQuD,EAAc8D,EAAc,CAAC,EACrC5G,EACAC,CACF,GAEM6G,EAAwB1G,GAC5Bb,EAAQuD,EAAc8D,EAAc9J,CAAU,EAC9CkD,EACAC,CACF,EAEM8G,EAAQ,GACd/X,IAAIgY,EAAYJ,EAChB,KAAOG,EAAM9oB,OAAS6e,GAAY,CAChC,IAAM4H,EAAatE,GACjBb,EAAQuD,EAAckE,CAAS,EAC/BhH,EACAC,CACF,EAEAjR,IAAIuH,EAAW,KAEf,IAAMD,EAAU,CAACgE,GACXqK,EAAaqC,IAAcL,EAW3B/B,GATFoC,IAAchD,IAChBzN,EAAW,IACXD,EAAQ7N,KAAK8R,EAA2B,GAGtCoK,GACFrO,EAAQ7N,KAAK+R,EAA4B,EAG/Bxb,SAASqP,cAAc,QAAQ,GAC3CuW,EAAIlW,aAAa,OAAQ,QAAQ,EACjCkW,EAAIlW,aAAa,WAAY6H,CAAQ,EACrCqO,EAAIlW,aAAa,QAAS4H,EAAQ1Q,KAAK,GAAG,CAAC,EAC3Cgf,EAAIlW,aAAa,aAAcsY,CAAS,EACxCpC,EAAIlW,aAAa,gBAAiBiW,EAAa,OAAS,OAAO,EAC5C,CAAA,IAAfD,IACFE,EAAI7R,SAAW,CAAA,GAEjB6R,EAAIjW,YAAcqY,EAElBD,EAAMte,KAAKmc,CAAG,EACdoC,GAAa,CACf,CAEA,IAAMlC,EAAcrC,EAAWsC,UAAU,EAGnCkC,EAAuBjoB,SAASqP,cAAc,KAAK,EAKnD6Y,GAJND,EAAqBvY,aAAa,WAAY,IAAI,EAClDuY,EAAqBvY,aAAa,QAASmM,EAA0B,EAG5C7b,SAASqP,cAAc,OAAO,GAIjD8Y,GAHND,EAAiBxY,aAAa,QAASoM,CAAoB,EAGhC9b,SAASqP,cAAc,OAAO,GACnD+Y,EAAwBpoB,SAASqP,cAAc,IAAI,EAGnDgZ,EAAmBroB,SAASqP,cAAc,QAAQ,EAalDiZ,GAZND,EAAiB3Y,aAAa,OAAQ,QAAQ,EAC9C2Y,EAAiB3Y,aAAa,QAAS+L,EAAkC,EACzE4M,EAAiB3Y,aACf,8BACiBoO,SACnB,EAC8B,CAAA,IAA1B+J,IACFQ,EAAiBtU,SAAW,CAAA,GAE9BsU,EAAiB1Q,UAAYzG,EAAU6D,kBAGlB/U,SAASqP,cAAc,QAAQ,GAa9CkZ,GAZND,EAAa5Y,aAAa,OAAQ,QAAQ,EAC1C4Y,EAAa5Y,aAAa,QAASgM,EAA8B,EACjE4M,EAAa5Y,aACX,iCACoBoO,SACtB,EAC8B,CAAA,IAA1BgK,IACFQ,EAAavU,SAAW,CAAA,GAE1BuU,EAAa3Q,UAAYzG,EAAU6D,kBAGhB/U,SAASqP,cAAc,OAAO,GAK3CmZ,GAJND,EAAW7Y,aAAa,QAASoM,CAAoB,EACrDyM,EAAW7Y,aAAa,OAAQ,cAAc,EAG5BkT,GAAemF,EAAO,CAAC,GACnCU,EAAiBtF,GAAgBqF,CAAS,EAM1CE,GAHNH,EAAWvT,sBAAsB,YAAayT,CAAc,EAGvBzoB,SAASqP,cAAc,IAAI,GAO1DsZ,GANND,EAA6B1T,sBAC3B,YACAqT,CACF,EAGsCroB,SAASqP,cAAc,IAAI,GAK3DuZ,GAJND,EAA8BjZ,aAAa,UAAW,GAAG,EACzDiZ,EAA8B3T,sBAAsB,YAAauT,CAAU,EAGtCvoB,SAASqP,cAAc,IAAI,GAoChE,OAnCAuZ,EAA6B5T,sBAAsB,YAAasT,CAAY,EAG5EF,EAAsBpT,sBACpB,YACA0T,CACF,EACAN,EAAsBpT,sBACpB,YACA2T,CACF,EACAP,EAAsBpT,sBACpB,YACA4T,CACF,EAGAT,EAAmBnT,sBAAsB,YAAaoT,CAAqB,EAG3EF,EAAiBlT,sBAAsB,YAAamT,CAAkB,EAGtEF,EAAqBjT,sBAAsB,YAAakT,CAAgB,EAGxEpC,EAAY9Q,sBAAsB,YAAaiT,CAAoB,EAGnExE,EAAWljB,WAAWumB,aAAahB,EAAarC,CAAU,EAE1DpQ,EAAS1D,YAAcuB,EAAU6D,2BAA2B6S,QAC1DA,EAAc9J,EAAa,oBAGtBgI,CACT,EAuFM+C,GAA4Bxf,IAChC,GAAM,CAAEia,aAAAA,EAAcE,gBAAAA,CAAgB,EAAIH,EAAqBha,EAAMrC,MAAM,EAE3EggB,GAAa1D,CAAY,EACzBE,EAAgB7N,MAAM,EAEtBtM,EAAMoC,eAAe,CACvB,EAWA,IAAMqd,EAAkBC,GAAkB1f,IACxC,GAAM,CAAEoa,WAAAA,EAAYK,aAAAA,EAAc9C,QAAAA,EAASC,QAAAA,CAAQ,EAAIoC,EACrDha,EAAMrC,MACR,EAEM2X,EAAOoK,EAAajF,CAAY,EAEhCkF,EAAajI,EAAyBpC,EAAMqC,EAASC,CAAO,EAC7DH,EAAUgD,EAAckF,CAAU,GACjBvE,EAAehB,EAAYuF,CAAU,EAC7C7d,cAAcwR,CAAqB,EAAEhH,MAAM,EAEzDtM,EAAMoC,eAAe,CACvB,EAOMwd,GAAmBH,EAAgBnK,IAASuK,OAv+ChC5J,EAu+CyCX,EAv+ClCgB,EAu+CwC,EAv+C3BD,GAASJ,EAAO,CAACK,CAAQ,EAA9C,IAAQA,CAu+CyC,CAAC,EAO7DwJ,GAAqBL,EAAgBnK,GAASe,GAASf,EAAM,CAAC,CAAC,EAO/DyK,GAAqBN,EAAgBnK,GAASc,GAAQd,EAAM,CAAC,CAAC,EAO9D0K,GAAsBP,EAAgBnK,GAASU,EAAQV,EAAM,CAAC,CAAC,EAO/D2K,GAAqBR,EAAgBnK,GAASiB,GAAYjB,CAAI,CAAC,EAO/D4K,GAAoBT,EAAgBnK,IAAS6K,OAr/C3C3J,GADWP,EAs/C0CX,GAr/CnCmB,OAAO,EACxBT,EAAQC,EAAO,EAAIO,CAAS,EAFlBP,IACXO,CAq/CyD,CAAC,EAO5D4J,GAAyBX,EAAgBnK,GAASoB,EAAUpB,EAAM,CAAC,CAAC,EAOpE+K,GAAuBZ,EAAgBnK,GAASwB,GAAUxB,EAAM,CAAC,CAAC,EAOlEgL,GAA8Bb,EAAgBnK,GAASyB,GAASzB,EAAM,CAAC,CAAC,EAOxEiL,EAA4Bd,EAAgBnK,GAAS2B,GAAS3B,EAAM,CAAC,CAAC,EAmD5E,IAAMkL,EAA8BC,GAAmBzgB,IACrD,IAAM0gB,EAAU1gB,EAAMrC,OAChBogB,EAAgB5W,SAASuZ,EAAQva,QAAQ1H,MAAO,EAAE,EAClD,CAAE2b,WAAAA,EAAYK,aAAAA,EAAc9C,QAAAA,EAASC,QAAAA,CAAQ,EACjDoC,EAAqB0G,CAAO,EACxBC,EAAc9J,EAAS4D,EAAcsD,CAAa,EAEpD6C,EAAgBH,EAAc1C,CAAa,EAC/C6C,EAAgB9Z,KAAKwQ,IAAI,EAAGxQ,KAAKqQ,IAAI,GAAIyJ,CAAa,CAAC,EAEjDtL,EAAOuB,EAAS4D,EAAcmG,CAAa,EAC3CjB,EAAajI,EAAyBpC,EAAMqC,EAASC,CAAO,EAC7DJ,EAAYmJ,EAAahB,CAAU,GAClB9B,GAClBzD,EACAuF,EAAWxK,SAAS,CACtB,EACYrT,cAAcuS,EAAsB,EAAE/H,MAAM,EAE1DtM,EAAMoC,eAAe,CACvB,EAOMye,GAAoBL,EAA4BtL,GAAUA,EAAQ,CAAC,EAOnE4L,GAAsBN,EAA4BtL,GAAUA,EAAQ,CAAC,EAOrE6L,GAAsBP,EAA4BtL,GAAUA,EAAQ,CAAC,EAOrE8L,GAAuBR,EAA4BtL,GAAUA,EAAQ,CAAC,EAOtE+L,GAAsBT,EACzBtL,GAAUA,EAASA,EAAQ,CAC9B,EAOMgM,GAAqBV,EACxBtL,GAAUA,EAAQ,EAAKA,EAAQ,CAClC,EAOMiM,GAA0BX,EAA2B,IAAM,EAAE,EAO7DY,EAAwBZ,EAA2B,IAAM,CAAC,EAW1Da,EAA6BC,GAAkBthB,IACnD,IAAMuhB,EAASvhB,EAAMrC,OACf2gB,EAAenX,SAASoa,EAAOpb,QAAQ1H,MAAO,EAAE,EAChD,CAAE2b,WAAAA,EAAYK,aAAAA,EAAc9C,QAAAA,EAASC,QAAAA,CAAQ,EACjDoC,EAAqBuH,CAAM,EACvBZ,EAAczJ,EAAQuD,EAAc6D,CAAY,EAElDkD,EAAeF,EAAahD,CAAY,EAC5CkD,EAAe1a,KAAKwQ,IAAI,EAAGkK,CAAY,EAEjClM,EAAO4B,EAAQuD,EAAc+G,CAAY,EACzC7B,EAAajI,EAAyBpC,EAAMqC,EAASC,CAAO,EAC7DL,GAAWoJ,EAAahB,CAAU,GACjBvB,GAClBhE,EACAuF,EAAW9J,YAAY,CACzB,EACY/T,cAAcwS,CAAqB,EAAEhI,MAAM,EAEzDtM,EAAMoC,eAAe,CACvB,EAOMqf,GAAmBJ,EAA2BhM,GAASA,EAAO,CAAC,EAO/DqM,GAAqBL,EAA2BhM,GAASA,EAAO,CAAC,EAOjEsM,GAAqBN,EAA2BhM,GAASA,EAAO,CAAC,EAOjEuM,GAAsBP,EAA2BhM,GAASA,EAAO,CAAC,EAOlEwM,GAAqBR,EACxBhM,GAASA,EAAQA,EAAO,CAC3B,EAOMyM,GAAoBT,EACvBhM,GAASA,EAAO,EAAKA,EAAO,CAC/B,EAOM0M,GAAuBV,EAC1BhM,GAASA,EAAOZ,CACnB,EAOMuN,EAAyBX,EAC5BhM,GAASA,EAAOZ,CACnB,EAMMwN,EAAcC,IAClB,IAAMC,EAAuBngB,IAC3B,IAAQoY,EAAeJ,EAAqBhY,CAAE,EAA3B,WACbogB,EAAoB/f,EAAO6f,EAAW9H,CAAU,EAGhDiI,EAAeD,EAAkBxsB,OAAS,EAC1C0sB,EAAeF,EAFC,GAGhBG,EAAcH,EAAkBC,GAChCG,EAAaJ,EAAkB9iB,QAAQ4Q,EAAc,CAAC,EAM5D,MAAO,CACLkS,kBAAAA,EACAK,WAJgC,CAAC,IAAhBD,EAKjBF,aAAAA,EACAI,WAdoB,IAOHF,EAQjBD,YAAAA,EACAI,UAVgBH,IAAeH,CAWjC,CACF,EAEA,MAAO,CACLO,SAAS5iB,GACP,GAAM,CAAEsiB,aAAAA,EAAcK,UAAAA,EAAWF,WAAAA,CAAW,EAAIN,EAC9CniB,EAAMrC,MACR,GAEIglB,GAAaF,KACfziB,EAAMoC,eAAe,EACrBkgB,EAAahW,MAAM,EAEvB,EACAuW,QAAQ7iB,GACN,GAAM,CAAEuiB,YAAAA,EAAaG,WAAAA,EAAYD,WAAAA,CAAW,EAAIN,EAC9CniB,EAAMrC,MACR,GAEI+kB,GAAcD,KAChBziB,EAAMoC,eAAe,EACrBmgB,EAAYjW,MAAM,EAEtB,CACF,CACF,EAEMwW,EAA4Bb,EAAWpN,CAAqB,EAC5DkO,GAA6Bd,EAAWnN,EAAsB,EAC9DkO,EAA4Bf,EAAWlN,CAAqB,EAM5DkO,EAAmB,EACtB/gB,GAAQ,EACN8Q,MA3wBmBhR,IAAAA,EAEdoY,EAAuBzC,EAASC,EAAS8C,EAIzCa,GANcvZ,EA4wBHvL,MA3wBZiU,UAAY1I,EAAGmB,aAAa,eAAe,IAC5C,CAAEiX,WAAAA,EAAYG,UAAAA,EAAW5C,QAAAA,EAASC,QAAAA,EAAS8C,YAAAA,CAAY,EAC3DV,EAAqBhY,CAAE,EAErBoY,EAAW3P,QACP8Q,EAAgB7D,EACpB6C,GAAaG,GAAehF,GAAM,EAClCiC,EACAC,CACF,EACoBwD,EAAehB,EAAYmB,CAAa,EAChDzZ,cAAcwR,CAAqB,EAAEhH,MAAM,GAEvDqR,GAAa3b,CAAE,EA+vBf,GACCqR,KA/xBe6P,IAAAA,EAGVjJ,EAAcE,GAHJ+I,EAgyBHzsB,MA/xBIiU,WAEb,CAAEuP,aAAAA,EAAcE,gBAAAA,CAAgB,EACpCH,EAAqBkJ,CAAc,EAErCjI,GAAiBiI,EAAgBA,EAAe/c,QAAQ1H,KAAK,EAC7Dkf,GAAa1D,CAAY,EAEzBE,EAAgB7N,MAAM,EAwxBpB,GACCwH,MA/pBgB4M,IAAAA,EAEXtG,EAA0BzC,EAASC,EAI3CtC,GANmBoL,EAgqBHjqB,MA/pBJiU,WACN,CAAE0P,WAAAA,EAAYK,aAAAA,EAAc9C,QAAAA,EAASC,QAAAA,CAAQ,EACjDoC,EAAqB0G,CAAO,EACxB3C,EAAgB5W,SAASuZ,EAAQva,QAAQ1H,MAAO,EAAE,EACpD6W,EAAOuB,EAAS4D,EAAcsD,CAAa,EAC/CzI,EAAOoC,EAAyBpC,EAAMqC,EAASC,CAAO,EAClCwD,EAAehB,EAAY9E,CAAI,EACvCxT,cAAcwR,CAAqB,EAAEhH,MAAM,EAypBrD,GACCyH,MAraewN,IAAAA,EAEVnH,EAA0BzC,EAASC,EAI3CtC,GANkBiM,EAsaH9qB,MAraJiU,WACL,CAAE0P,WAAAA,EAAYK,aAAAA,EAAc9C,QAAAA,EAASC,QAAAA,CAAQ,EACjDoC,EAAqBuH,CAAM,EACvBjD,EAAenX,SAASoa,EAAOjT,UAAW,EAAE,EAC9CgH,EAAO4B,EAAQuD,EAAc6D,CAAY,EAC7ChJ,EAAOoC,EAAyBpC,EAAMqC,EAASC,CAAO,EAClCwD,EAAehB,EAAY9E,CAAI,EACvCxT,cAAcwR,CAAqB,EAAEhH,MAAM,EA+ZrD,GACCmH,OAj3ByB0P,IAC5B,GAAIA,CAAAA,EAAUzY,SAAd,CACA,GAAM,CAAE0P,WAAAA,EAAYK,aAAAA,EAAc9C,QAAAA,EAASC,QAAAA,CAAQ,EACjDoC,EAAqBmJ,CAAS,EAC5B7N,EAAOwB,GAAU2D,EAAc,CAAC,EACpCnF,EAAOoC,EAAyBpC,EAAMqC,EAASC,CAAO,EAChD6E,EAAcrB,EAAehB,EAAY9E,CAAI,EAEnD3O,IAAIyc,EAAc3G,EAAY3a,cAAc2R,EAAuB,GAEjE2P,EADEA,EAAY1Y,SACA+R,EAAY3a,cAAcoS,CAAoB,EAE9DkP,GAAY9W,MAAM,CAXM,CAY1B,GAq2B2B7V,IAAI,CAC3B,GACCkd,OAh2BqBwP,IACxB,GAAIA,CAAAA,EAAUzY,SAAd,CACA,GAAM,CAAE0P,WAAAA,EAAYK,aAAAA,EAAc9C,QAAAA,EAASC,QAAAA,CAAQ,EACjDoC,EAAqBmJ,CAAS,EAC5B7N,EAAOoB,EAAU+D,EAAc,CAAC,EACpCnF,EAAOoC,EAAyBpC,EAAMqC,EAASC,CAAO,EAChD6E,EAAcrB,EAAehB,EAAY9E,CAAI,EAEnD3O,IAAIyc,EAAc3G,EAAY3a,cAAc6R,EAAmB,GAE7DyP,EADEA,EAAY1Y,SACA+R,EAAY3a,cAAcoS,CAAoB,EAE9DkP,GAAY9W,MAAM,CAXM,CAY1B,GAo1BuB7V,IAAI,CACvB,GACC+c,OA34BwB2P,IAC3B,GAAIA,CAAAA,EAAUzY,SAAd,CACA,GAAM,CAAE0P,WAAAA,EAAYK,aAAAA,EAAc9C,QAAAA,EAASC,QAAAA,CAAQ,EACjDoC,EAAqBmJ,CAAS,EAC5B7N,EAAO2B,GAASwD,EAAc,CAAC,EACnCnF,EAAOoC,EAAyBpC,EAAMqC,EAASC,CAAO,EAChD6E,EAAcrB,EAAehB,EAAY9E,CAAI,EAEnD3O,IAAIyc,EAAc3G,EAAY3a,cAAc0R,EAAsB,GAEhE4P,EADEA,EAAY1Y,SACA+R,EAAY3a,cAAcoS,CAAoB,EAE9DkP,GAAY9W,MAAM,CAXM,CAY1B,GA+3B0B7V,IAAI,CAC1B,GACCid,OAl1BoByP,IACvB,GAAIA,CAAAA,EAAUzY,SAAd,CACA,GAAM,CAAE0P,WAAAA,EAAYK,aAAAA,EAAc9C,QAAAA,EAASC,QAAAA,CAAQ,EACjDoC,EAAqBmJ,CAAS,EAC5B7N,EAAOyB,GAAS0D,EAAc,CAAC,EACnCnF,EAAOoC,EAAyBpC,EAAMqC,EAASC,CAAO,EAChD6E,EAAcrB,EAAehB,EAAY9E,CAAI,EAEnD3O,IAAIyc,EAAc3G,EAAY3a,cAAc4R,EAAkB,GAE5D0P,EADEA,EAAY1Y,SACA+R,EAAY3a,cAAcoS,CAAoB,EAE9DkP,GAAY9W,MAAM,CAXM,CAY1B,GAs0BsB7V,IAAI,CACtB,GACCud,OAhf6BhS,IAChC,GAAIA,CAAAA,EAAG0I,SAAP,CAEA,GAAM,CAAE0P,WAAAA,EAAYK,aAAAA,EAAc9C,QAAAA,EAASC,QAAAA,CAAQ,EACjDoC,EAAqBhY,CAAE,EACnBuf,EAASnH,EAAWtY,cAAcwS,CAAqB,EAGzDkN,EAFiBra,SAASoa,EAAOjb,YAAa,EAAE,EAElBmO,EAClC+M,EAAe1a,KAAKwQ,IAAI,EAAGkK,CAAY,EAEjClM,EAAO4B,EAAQuD,EAAc+G,CAAY,EACzC7B,EAAajI,EAAyBpC,EAAMqC,EAASC,CAAO,EAC5D6E,EAAc2B,GAClBhE,EACAuF,EAAW9J,YAAY,CACzB,EAEAlP,IAAIyc,EAAc3G,EAAY3a,cAAckS,EAA4B,GAEtEoP,EADEA,EAAY1Y,SACA+R,EAAY3a,cAAcsS,EAAoB,EAE9DgP,GAAY9W,MAAM,CArBD,CAsBnB,GA0d+B7V,IAAI,CAC/B,GACCwd,OArdyBjS,IAC5B,GAAIA,CAAAA,EAAG0I,SAAP,CAEA,GAAM,CAAE0P,WAAAA,EAAYK,aAAAA,EAAc9C,QAAAA,EAASC,QAAAA,CAAQ,EACjDoC,EAAqBhY,CAAE,EACnBuf,EAASnH,EAAWtY,cAAcwS,CAAqB,EAGzDkN,EAFiBra,SAASoa,EAAOjb,YAAa,EAAE,EAElBmO,EAClC+M,EAAe1a,KAAKwQ,IAAI,EAAGkK,CAAY,EAEjClM,EAAO4B,EAAQuD,EAAc+G,CAAY,EACzC7B,EAAajI,EAAyBpC,EAAMqC,EAASC,CAAO,EAC5D6E,EAAc2B,GAClBhE,EACAuF,EAAW9J,YAAY,CACzB,EAEAlP,IAAIyc,EAAc3G,EAAY3a,cAAcmS,EAAwB,GAElEmP,EADEA,EAAY1Y,SACA+R,EAAY3a,cAAcsS,EAAoB,EAE9DgP,GAAY9W,MAAM,CArBD,CAsBnB,GA+b2B7V,IAAI,CAC3B,GACCod,MACqBgK,GAAsBpnB,IAAI,EAClCqL,cAAcuS,EAAsB,EAAE/H,MAAM,CAC1D,GACCsH,MACqBwK,GAAqB3nB,IAAI,EACjCqL,cAAcwS,CAAqB,EAAEhI,MAAM,CACzD,CACF,EACA+W,MAAO,EACJlQ,IAAsBnT,GACrB,IAAMkE,EAAUzN,KAAK0P,QAAQmd,eACzB,GAAGtjB,EAAMpI,UAAcsM,GACzBlE,EAAMoC,eAAe,CAEzB,CACF,EACA8B,QAAS,EACNgP,GAA4BlT,GApgEX,KAqgEZA,EAAMpI,SACRojB,GAAkBvkB,IAAI,CAE1B,GACC4c,GAAgB7S,EAAO,CACtBsP,GAAI8P,GACJ/P,QAAS+P,GACThQ,KAAMkQ,GACNnQ,UAAWmQ,GACXyD,KAAMxD,GACNyD,UAAWzD,GACX0D,MAAOzD,GACP0D,WAAY1D,GACZ2D,KAAM1D,GACN2D,IAAK1D,GACL2D,SAAUzD,GACV0D,OAAQzD,GACR0D,iBAAkBzD,GAClB0D,eAAgBzD,EAChB0D,IAAKnB,EAA0BF,QACjC,CAAC,GACA1O,GAAuB1T,EAAO,CAC7ByjB,IAAKnB,EAA0BF,SAC/B7S,YAAa+S,EAA0BD,OACzC,CAAC,GACA/O,IAAiBtT,EAAO,CACvBsP,GAAI+Q,GACJhR,QAASgR,GACTjR,KAAMkR,GACNnR,UAAWmR,GACXyC,KAAMxC,GACNyC,UAAWzC,GACX0C,MAAOzC,GACP0C,WAAY1C,GACZ2C,KAAM1C,GACN2C,IAAK1C,GACL2C,SAAU1C,GACV2C,OAAQ1C,CACV,CAAC,GACAjN,IAAwB3T,EAAO,CAC9ByjB,IAAKlB,GAA2BH,SAChC7S,YAAagT,GAA2BF,OAC1C,CAAC,GACA9O,IAAgBvT,EAAO,CACtBsP,GAAI2R,GACJ5R,QAAS4R,GACT7R,KAAM8R,GACN/R,UAAW+R,GACX6B,KAAM5B,GACN6B,UAAW7B,GACX8B,MAAO7B,GACP8B,WAAY9B,GACZ+B,KAAM9B,GACN+B,IAAK9B,GACL+B,SAAU7B,EACV8B,OAAQ/B,EACV,CAAC,GACA3N,IAAuB5T,EAAO,CAC7ByjB,IAAKjB,EAA0BJ,SAC/B7S,YAAaiT,EAA0BH,OACzC,CAAC,GACA1P,IAAsBnT,GACrBvJ,KAAK0P,QAAQmd,eAAiBtjB,EAAMpI,OACtC,GACCmb,GAAa/S,GACGQ,EAAO,CACpBiP,OAAQ+P,EACV,CAAC,EAEMxf,CAAK,CACd,CACF,EACAuP,SAAU,EACP2D,KACC8H,GAAkBvkB,IAAI,CACxB,GACCsc,GAAa/S,GACPvJ,KAAK4J,SAASL,EAAMwP,aAAa,GACpCmO,GAAalnB,IAAI,CAErB,CACF,EACAkR,MAAO,EACJuL,MAz3CyBlR,IAC5B,GAAM,CAAEkY,gBAAAA,EAAiBK,UAAAA,CAAU,EAAIP,EAAqBhY,CAAE,EAC9D2E,IAAIud,EAAW,GAEX3J,GAAa,CAACK,GAAmB5Y,CAAE,IACrCkiB,EAAW9K,EAAWmB,CAAS,GAG7BL,EAAgBzb,QAAUylB,GAC5B5a,GAAmB4Q,EAAiBgK,CAAQ,CAEhD,GA+2C2BztB,IAAI,EACzBmnB,GAAwBnnB,IAAI,CAC9B,CACF,CACF,EAUM0tB,GARDhU,EAAY,IACf8S,EAAiBjT,UAAY,EAC1BuD,MAva4B6Q,IAC/B,GAAIA,CAAAA,EAAO1Z,SAAX,CAEA,IAAM2Z,EAAY9L,EAAgB6L,EAAOje,QAAQ1H,KAAK,EAChD,CAAE2b,WAAAA,EAAYI,aAAAA,EAAcvC,UAAAA,CAAU,EAAI+B,EAAqBoK,CAAM,EAE3E,GAAI5J,CAAAA,EAAJ,CAEA,GAAM,CAAEnC,qBAAAA,EAAsBC,mBAAAA,CAAmB,EAAIN,GACnDqM,EACApM,CACF,EAEoBmC,EAAWvjB,iBAC7B,IAAIoa,EACN,EAEYxT,QAASqF,IACnB,IAAMwhB,EAAa/L,EAAgBzV,EAAOqD,QAAQ1H,KAAK,EAErDoZ,GACEyM,EACAjM,EACAC,CACF,EAEAxV,EAAOkB,UAAUvE,IAAI8R,EAAgC,EAErDzO,EAAOkB,UAAUrE,OAAO4R,EAAgC,CAE5D,CAAC,CAxBiB,CALG,CA8BvB,GAyY8B9a,IAAI,CAC9B,CACF,GAGiB6J,EAAS2iB,EAAkB,CAC5C1f,KAAKC,GACHoE,EAAgBmL,EAAavP,CAAI,EAAE/F,QAASwc,KAl2CrBjY,IACzB,IAAMiY,EAAejY,EAAGhL,QAAQ+b,CAAW,EACnC5H,EAAiB8O,EAAa9T,QAAjB,aAEf+T,EAAkBD,EAAanY,cAAc,OAAO,EAE1D,GAAI,CAACoY,EACH,MAAM,IAAI3kB,MAASwd,EAAH,yBAAuC,EAGrDmH,EAAgBzb,QAClByb,EAAgBzb,MAAQ,IAG1B,IAAMkZ,EAAUY,EACd0B,EAAa9T,QAAQwR,SAAWuC,EAAgB7W,aAAa,KAAK,CACpE,EAKMuU,GAJNqC,EAAa9T,QAAQwR,QAAUA,EAC3ByB,EAAWzB,CAAO,EArxBC,aAwxBPY,EACd0B,EAAa9T,QAAQyR,SAAWsC,EAAgB7W,aAAa,KAAK,CACpE,GAKMkhB,GAJF3M,IACFqC,EAAa9T,QAAQyR,QAAUwB,EAAWxB,CAAO,GAG3BjhB,SAASqP,cAAc,KAAK,GAG9CmU,GAFNoK,EAAgBvgB,UAAUvE,IAAI4Q,CAAyB,EAE/B6J,EAAgBwC,UAAU,GAClDvC,EAAgBnW,UAAUvE,IAAIgR,CAAgC,EAC9D0J,EAAgBpb,KAAO,OAEvBwlB,EAAgBC,YAAYrK,CAAe,EAC3CoK,EAAgB3Y,mBACd,YACA/D,EAAU6D;mCACqBgF;kBACjBC;8BACYC,4CAC5B,EAEAsJ,EAAgB7T,aAAa,cAAe,MAAM,EAClD6T,EAAgB7T,aAAa,WAAY,IAAI,EAC7C6T,EAAgB0C,MAAM6H,QAAU,OAChCvK,EAAgBlW,UAAUvE,IAAI+Q,CAAgC,EAC9D0J,EAAgBzS,gBAAgB,IAAI,EACpCyS,EAAgBzS,gBAAgB,MAAM,EACtCyS,EAAgBwK,SAAW,CAAA,EAE3BzK,EAAauK,YAAYD,CAAe,EACxCtK,EAAajW,UAAUvE,IAAI6Q,CAA6B,EAEpDnF,GACF8P,GAAiBhB,EAAc9O,CAAY,EAGzC+O,EAAgBxP,WAClBF,GAAQyP,CAAY,EACpBC,EAAgBxP,SAAW,CAAA,GAGzBwP,EAAgB/W,aAAa,eAAe,IAC9CwX,GAAYV,CAAY,EACxBC,EAAgBzS,gBAAgB,eAAe,EAEnD,GA+xCwBwS,CAAY,CAChC,CAAC,CACH,EACAD,qBAAAA,EACAxP,QAAAA,GACAmQ,YAAAA,GACA1K,OA/9CcjO,IACd,GAAM,CAAEmY,gBAAAA,EAAiBE,YAAAA,CAAY,EAAIL,EAAqBhY,CAAE,EAEhEqY,EAAY3P,SAAW,CAAA,EACvB2P,EAAY5S,gBAAgB,eAAe,EAE3C0S,EAAgBzP,SAAW,CAAA,EAC3ByP,EAAgB1S,gBAAgB,eAAe,EAC/C0S,EAAgB1S,gBAAgB,UAAU,CAC5C,EAu9CEmT,mBAAAA,GACAK,iBAAAA,GACAD,kBAAAA,GACAI,eAAAA,EACAwC,wBAAAA,EACF,CAAC,GAID9nB,EAAOJ,QAAUyuB,C,iZCruEjB,IAAM7jB,EAAWlL,EAAQ,wCAAwC,EACjE,IAAMiN,EAASjN,EAAQ,sCAAsC,EACvDwS,EAAkBxS,EAAQ,iDAAiD,EACjF,IAAgB+M,EAAW/M,EAAQ,gCAAgC,EAA5C,OACvB,GAAM,CACJ4kB,qBAAAA,EACAY,mBAAAA,EACAgD,wBAAAA,CACF,EAAIxoB,EAAQ,iCAAiC,EAGvCuvB,EAA6BxiB,EAAH,qBAChC,IAAMyiB,EAAyCD,EAAH,gBACtCE,EAAuCF,EAAH,cAEpC5R,EAAc,KALS5Q,EAAH,gBAMpB2iB,EAAoB,IAAIH,EACxBI,EAAgC,IAAIH,EACpCI,EAA8B,IAAIH,EAmBlCI,EAA6BjjB,IACjC,IAMMkjB,EAGAC,EATAC,EAAoBpjB,EAAGhL,QAAQ8tB,CAAiB,EAEtD,GAAKM,EAWL,OAPMF,EAAeE,EAAkBtjB,cACrCijB,CACF,EACMI,EAAaC,EAAkBtjB,cACnCkjB,CACF,EAEO,CACLI,kBAAAA,EACAF,aAAAA,EACAC,WAAAA,CACF,EAdE,MAAM,IAAI5vB,MAAM,4BAA4BuvB,CAAmB,CAenE,EAOMO,EAA0BrjB,IAC9B,GAAM,CAAEojB,kBAAAA,EAAmBF,aAAAA,EAAcC,WAAAA,CAAW,EAClDF,EAA0BjjB,CAAE,EACtBkY,EAAoBF,EAAqBkL,CAAY,EAArC,gBAClBI,EAAcpL,EAAgBzb,MAEhC6mB,GAAe,CAAC1K,EAAmBV,CAAe,GACpDiL,EAAWhf,QAAQwR,QAAU2N,EAC7BH,EAAWhf,QAAQ8R,UAAYqN,EAC/BH,EAAWhf,QAAQuU,YAAc4K,IAEjCH,EAAWhf,QAAQwR,QAAUyN,EAAkBjf,QAAQwR,SAAW,GAClEwN,EAAWhf,QAAQ8R,UAAY,GAC/BkN,EAAWhf,QAAQuU,YAAc,IAGnCkD,EAAwBuH,CAAU,CACpC,EAOMI,EAAwBvjB,IAC5B,GAAM,CAAEojB,kBAAAA,EAAmBF,aAAAA,EAAcC,WAAAA,CAAW,EAClDF,EAA0BjjB,CAAE,EACtBkY,EAAoBF,EAAqBmL,CAAU,EAAnC,gBAClBG,EAAcpL,EAAgBzb,MAEhC6mB,GAAe,CAAC1K,EAAmBV,CAAe,GACpDgL,EAAa/e,QAAQyR,QAAU0N,EAC/BJ,EAAa/e,QAAQ8R,UAAYqN,EACjCJ,EAAa/e,QAAQuU,YAAc4K,IAEnCJ,EAAa/e,QAAQyR,QAAUwN,EAAkBjf,QAAQyR,SAAW,GACpEsN,EAAa/e,QAAQ8R,UAAY,GACjCiN,EAAa/e,QAAQuU,YAAc,IAGrCkD,EAAwBsH,CAAY,CACtC,EA6CMM,EAAkBllB,EACtB,CACEmlB,eAAgB,EACbV,KACCM,EAAuB5uB,IAAI,CAC7B,GACCuuB,KACCO,EAAqB9uB,IAAI,CAC3B,CACF,CACF,EACA,CACE8M,KAAKC,GACHoE,EAAgBkd,EAAmBthB,CAAI,EAAE/F,QAAS2nB,KAnDxBpjB,IAC9B,IAAMojB,EAAoBpjB,EAAGhL,QAAQ8tB,CAAiB,EAEhD,CAACY,EAAYC,GAAYtjB,EAAO0Q,EAAaqS,CAAiB,EAEpE,GAAI,CAACM,EACH,MAAM,IAAInwB,SACLuvB,2BAA2C/R,aAChD,EAGF,GAAI,CAAC4S,EACH,MAAM,IAAIpwB,SACLuvB,wBAAwC/R,YAC7C,EAGF2S,EAAW1hB,UAAUvE,IAAImlB,CAAmC,EAC5De,EAAS3hB,UAAUvE,IAAIolB,CAAiC,EAEnDO,EAAkBjf,QAAQwR,UAC7ByN,EAAkBjf,QAAQwR,QAhHL,cAmHvB,IAAQA,EAAYyN,EAAkBjf,QAAtB,QAIRyR,GAHR8N,EAAWvf,QAAQwR,QAAUA,EAC7BgO,EAASxf,QAAQwR,QAAUA,EAEPyN,EAAkBjf,SAAtB,QACZyR,IACF8N,EAAWvf,QAAQyR,QAAUA,EAC7B+N,EAASxf,QAAQyR,QAAUA,GAG7ByN,EAAuBD,CAAiB,EACxCG,EAAqBH,CAAiB,CACxC,GAgB+BA,CAAiB,CAC1C,CAAC,CACH,CACF,CACF,EAEAtvB,EAAOJ,QAAU8vB,C,6OCzKjB,IAAM5d,EAAkBxS,EAAQ,iDAAiD,EACjF,IAAMkL,EAAWlL,EAAQ,wCAAwC,EACjE,IAAMyS,EAAYzS,EAAQ,yCAAyC,EACnD+M,EAAW/M,EAAQ,gCAAgC,EAA5C,OAEvB,IAAMwwB,EAAoBzjB,EAAH,cACjB0jB,EAAW,IAAID,EACf3d,EAAiB9F,EAAH,qBACd2jB,EAAkB3jB,EAAH,sBACf0C,EAAQ,IAAIoD,EACZ8d,EAAe5jB,EAAH,mBACZ6jB,EAAwB7jB,EAAH,4BACrB8jB,EAAmB9jB,EAAH,uBAChB+jB,EAA2B/jB,EAAH,+BACxBgkB,EAAoBhkB,EAAH,wBACjBikB,EAAkBjkB,EAAH,sBACfkkB,EAAiClkB,EAAH,sCAC9BmkB,EAAqBnkB,EAAH,yBAClBokB,EAAgBpkB,EAAH,oBACbqkB,EAAgB,aAChBC,EAAqB,mBACrBC,EAAgCvkB,EAAH,6BAC7BwkB,EAA2BD,EAAH,YACxBE,EAAuBF,EAAH,QACpBG,EAAwBH,EAAH,SACrBI,EAAyBJ,EAAH,UACtBK,EAAyBL,EAAH,UACtBM,EAAmB7kB,EAAH,WAChB8kB,EACJ,iFACIC,EAA2B,wCAE7BC,EAAgBpwB,QAAQ,CAAA,CAAI,EAC5BqwB,EAA0B,GAC1BC,EAA2B,GAgBzBC,EAAuBtlB,IAC3B,IAMMwD,EANA+hB,EAAavlB,EAAGhL,QAAQ6uB,CAAQ,EAEtC,GAAK0B,EAML,OAFM/hB,EAAU+hB,EAAWzlB,cAAc+C,CAAK,EAEvC,CACL0iB,WAAAA,EACA/hB,QAAAA,CACF,EARE,MAAM,IAAIjQ,MAAM,4BAA4BswB,CAAU,CAS1D,EA2CA,IAAM2B,EAAevpB,IACnB,IAAM9I,EAAI8I,EAAEwpB,WAAW,CAAC,EACxB,OAAU,KAANtyB,EAAiB,IACZ,IAALA,GAAWA,GAAK,GAAW,OAAO8I,EAAEzB,YAAY,EAC7C,KAAarH,EAAEuyB,SAAS,EAAE,EAAGpO,MAAM,CAAC,CAAC,CAC9C,EAOMqO,EAAiBnc,GAASA,EAAK/J,QAAQ,aAAc+lB,CAAW,EAGhEI,EAAkBpc,GACnBA,EAAH,IAAW1E,KAAK+gB,MAAMrS,KAAKsS,IAAI,EAAEJ,SAAS,EAAI,GAAI,EAS9CK,EAAiBC,GACGA,EAAY7kB,aAAa,UAAU,EACtB,QAAU,OAsG3C8kB,EAAoBD,IACxB,IAzB0BA,EACpBhe,EACAke,EAuBAC,EACJH,EAAY7kB,aAAa,eAAe,GACxC6kB,EAAY7kB,aAAa,UAAU,EAC/BilB,GA9FkBJ,EA8FYA,EA7F9BK,EAAkB1xB,SAASqP,cAAc,KAAK,EAC9CoiB,EAAazxB,SAASqP,cAAc,KAAK,EACzCsiB,EAAM3xB,SAASqP,cAAc,KAAK,EAGxCgiB,EAAYhkB,UAAUrE,OAAOimB,CAAc,EAC3CoC,EAAYhkB,UAAUvE,IAAIwI,CAAW,EACrCogB,EAAgBrkB,UAAUvE,IAAImmB,CAAc,EAC5C0C,EAAItkB,UAAUvE,IAAIsmB,CAAS,EAC3BqC,EAAWpkB,UAAUvE,IAAIqmB,CAAY,EAGrCsC,EAAWG,QAAQD,CAAG,EACtBN,EAAY9wB,WAAWsxB,aAAaJ,EAAYJ,CAAW,EAC3DA,EAAY9wB,WAAWsxB,aAAaH,EAAiBD,CAAU,EAC/DA,EAAW5D,YAAYwD,CAAW,EAClCK,EAAgB7D,YAAY4D,CAAU,EAE/BA,GA4EDK,GAlEAJ,GAD2BL,EAmEcA,GAlEXhxB,QAAQ6uB,CAAQ,EAC9CqC,EAAaH,EAAcC,CAAW,EACtCS,EAAe9xB,SAASqP,cAAc,KAAK,EAC3C0iB,UAAmBR,YACnBS,EAAa,qBAGnBvB,EAA6BsB,EAAH,IAAeC,EAGzCF,EAAazkB,UAAUvE,IAAIumB,CAAkB,EAC7CyC,EAAapiB,aAAa,cAAe,MAAM,EAG/C2hB,EAAY3hB,aAAa,aAAc+gB,CAAuB,EAC9DqB,EAAana,UAAYzG,EAAU6D,0BAA0B4a,MAAoBoC,yBAAgCtC,MAAiBuC,WAGlIX,EAAY9wB,WAAWsxB,aAAaC,EAAcT,CAAW,GAI3D,WAAWpa,KAAKgb,UAAUC,SAAS,GACnC,aAAajb,KAAKgb,UAAUC,SAAS,KAErCR,EAAgBvmB,cAAc,IAAIwkB,CAAiB,EAAEwC,UAAY,IAG5DL,GAuCClB,EAAeD,EAAoBU,CAAW,EAAnC,WAQnB,OANIG,EACFZ,EAAWvjB,UAAUvE,IAAI0mB,CAAc,GAjCf6B,EAmCLA,EAlCfhe,EAAWrT,SAASqP,cAAc,KAAK,EACvCkiB,EAAaH,EAAcC,CAAW,EACtCK,EAAkBL,EAAYhxB,QAAQ6uB,CAAQ,EAC9CkD,EAAkBf,EAAYhxB,QAAQ,IAAI8uB,CAAc,EAE9DuB,QAAiCa,cAGjCle,EAAShG,UAAUvE,IAAIunB,CAAa,EACpChd,EAAS3D,aAAa,YAAa,QAAQ,EAG3C2D,EAAS1D,YAAc+gB,EAGvBgB,EAAgBG,aAAaxe,EAAU+e,CAAe,GAsB/C,CAAEN,aAAAA,EAAcL,WAAAA,CAAW,CACpC,EASMY,EAAoB,CAACZ,EAAYK,KACrC,IAAMQ,EAAeb,EAAWvxB,iBAAiB,IAAIovB,CAAe,EAC9DiD,EAAwBd,EAAWtmB,cACvC,IAAIokB,CACN,EACMiD,EAAsBf,EAAWtmB,cACrC,IAAIukB,CACN,EAWI6C,IACFA,EAAsBJ,UAAY,IAIhCK,IACFA,EAAoBL,UAAY,GAChCV,EAAWpkB,UAAUrE,OAAO8mB,CAAkB,GAI3B,OAAjBwC,IACER,GACFA,EAAahhB,gBAAgB,QAAQ,EAEvC5P,MAAM3B,UAAUuH,QAAQ9H,KAAKszB,EApBTG,IACpBA,EAAKlyB,WAAWmyB,YAAYD,CAAI,CAClC,CAkByD,EAE3D,EASME,EAAsB,CAACC,EAAeC,EAAWC,KACrD,IAAMzf,EAAWuf,EACbxjB,EAAgBshB,EAGK,IAArBmC,EAAU5zB,OACZmQ,EAAgB,+BAA+B0jB,EACnB,EAAnBD,EAAU5zB,SACnBmQ,uBACEyjB,EAAU5zB,iBACD6zB,EAAUlsB,KAAK,IAAI,GAIhCmsB,WAAW,KACT1f,EAAS1D,YAAcP,CACzB,EAAG,GAAI,CACT,EASM4jB,EAAoB,CAAC3B,EAAawB,KACtC,IAAMI,EAAsBjzB,SAASqP,cAAc,KAAK,EAClDoiB,EAAaJ,EAAYhxB,QAAQ,IAAI8uB,CAAc,EACnD2C,EAAeL,EAAWtmB,cAAc,IAAIkkB,CAAoB,EACtErf,IAAIkjB,EAAiB,cACjBC,EAAqB,GAEA,IAArBN,EAAU5zB,OACZk0B,EAAqBjiB,EAAU6D,gEAAgEme,WACnE,EAAnBL,EAAU5zB,SACnBi0B,EAAiB,eACjBC,EAAqBjiB,EAAU6D,aAAa8d,EAAU5zB,8DAA8Di0B,YAItHpB,EAAapiB,aAAa,SAAU,MAAM,EAC1CujB,EAAoB5lB,UAAUvE,IAAIymB,CAAqB,EACvD0D,EAAoBtb,UAAYwb,EAChC1B,EAAWI,aAAaoB,EAAqBnB,CAAY,EAGzDT,EAAY3hB,aAAa,aAAcwjB,CAAc,CACvD,EAMME,EAAqB,CAACC,EAAcC,KACxCD,EAAatqB,iBACX,QACA,KACE,IAAMwqB,EAAoBF,EAC1BE,EAAkBC,IAAMlD,EACxBiD,EAAkBlmB,UAAUvE,IAAIwqB,CAAa,CAC/C,EACA,CAAEG,KAAM,CAAA,CAAK,CACf,CACF,EAgLMC,EAAe,CAACrqB,EAAOgoB,EAAaS,EAAcL,MA/E5B,CAACvzB,EAAGmzB,EAAaS,EAAcL,KACzD,IAAMkC,EAAoBtC,EAAY3kB,aAAa,QAAQ,EAC3D+kB,EAAWpkB,UAAUrE,OAAO8mB,CAAkB,EAsB9C,GAAI6D,EAAmB,CACrB,IAAMC,EAAgBD,EAAkB9sB,MAAM,GAAG,EAC3CgtB,EAAe7zB,SAASqP,cAAc,KAAK,EAE3CykB,EADgBzC,EAAY7hB,QAAQukB,cACAxD,EAE1CsD,EAAankB,aAAa,cAAe,CAAA,CAAI,EAG7CM,IAAIgkB,EAAkB,CAAA,EACtB,IAAMC,EAAe/1B,EAAE8I,OAAOktB,OAASh2B,EAAEi2B,aAAaD,MACtD,IAAKlkB,IAAI1R,EAAI,EAAGA,EAAI21B,EAAah1B,OAAQX,GAAK,EAAG,CAC/C,IAAM81B,EAAOH,EAAa31B,GAC1B,GAAI01B,CAAAA,EAWG,MAVL,IAAKhkB,IAAIqkB,EAAI,EAAGA,EAAIT,EAAc30B,OAAQo1B,GAAK,EAAG,CAChD,IAAMC,EAAWV,EAAcS,GAI/B,GAHAL,EACgC,EAA9BI,EAAKvf,KAAKlM,QAAQ2rB,CAAQ,IA3BjB,CAACF,EAAMtsB,KACxBkI,IAAIukB,EAAc,CAAA,EACZC,EAAMJ,EAAKzrB,QAAQb,CAAK,EAI9B,OAFEysB,EADS,GAAPC,EACY,CAAA,EAETD,CACT,GAqBqBH,EAAKhsB,KAAMksB,EAASxpB,QAAQ,MAAO,EAAE,CAAC,EAC9B,CACnB0lB,EAAgB,CAAA,EAChB,KACF,CACF,CAEJ,CAGKwD,IACH3B,EAAkBZ,EAAYK,CAAY,EAC1CT,EAAYvpB,MAAQ,GACpB+rB,EAAalkB,YAAcmkB,EAC3BrC,EAAWI,aAAagC,EAAcxC,CAAW,EAE3CoD,EAAmBX,EAAH,IAAuBrD,EAE7CY,EAAY3hB,aAAa,aAAc+kB,CAAa,EACpDZ,EAAaxmB,UAAUvE,IAAI4mB,CAA2B,EACtD+B,EAAWpkB,UAAUvE,IAAIgnB,CAAkB,EAC3CU,EAAgB,CAAA,EAChBtyB,EAAEuN,eAAe,EACjBvN,EAAEw2B,gBAAgB,EAEtB,CACF,GAYsBrrB,EAAOgoB,EAAaS,EAAcL,CAAU,EAC1C,CAAA,IAAlBjB,IAtKe,CAACtyB,EAAGmzB,EAAaS,EAAcL,KAClD,IAAMoB,EAAY30B,EAAE8I,OAAOktB,MAErBtB,EADcnB,EAAWpxB,QAAQ,IAAI4uB,CAAgB,EACzB9jB,cAAc,IAAIklB,CAAe,EAC7DyC,EAAY,GAGlBT,EAAkBZ,EAAYK,CAAY,EAG1C,IAAK9hB,IAAI1R,EAAI,EAAGA,EAAIu0B,EAAU5zB,OAAQX,GAAK,EAAG,CAC5C,IAAMq2B,EAAS,IAAIC,WACbC,EAAWhC,EAAUv0B,GAAGuW,KAC1BigB,EAGJhC,EAAUrpB,KAAKorB,CAAQ,EAGvBF,EAAOI,YAAc,WACnBD,EAAU7D,EAAeD,EAAc6D,CAAQ,CAAC,EAEhD/C,EAAa7c,mBACX,WACA/D,EAAU6D,yBAAyBua;qBACtBwF,WAAiBxE,oBAA6BP,KAA8BF,OAAmBgF;cAE9G,CACF,EAGAF,EAAOK,UAAY,WACjB,IAAM3B,EAAerzB,SAASiL,eAAe6pB,CAAO,EAC9CG,EAAgBJ,EAAShuB,MAAM,GAAG,EAAEquB,IAAI,EACxB,QAAlBD,EACF7B,EAAmBC,EAAcpD,CAAiB,EAEhC,QAAlBgF,GACkB,SAAlBA,GACkB,UAAlBA,EAEA7B,EAAmBC,EAAcnD,CAAkB,EAEjC,QAAlB+E,GACkB,SAAlBA,GACkB,YAAlBA,EAEA7B,EAAmBC,EAAcjD,CAAmB,EACzB,QAAlB6E,GAA6C,QAAlBA,EACpC7B,EAAmBC,EAAclD,CAAmB,EAEpDiD,EAAmBC,EAAcrD,CAAqB,EAIxDqD,EAAahmB,UAAUrE,OAAO6mB,CAAa,EAC3CwD,EAAaG,IAAMmB,EAAOtqB,MAC5B,EAEIwoB,EAAUv0B,IACZq2B,EAAOQ,cAActC,EAAUv0B,EAAE,CAErC,CAEyB,IAArBu0B,EAAU5zB,OAEZoyB,EAAY3hB,aAAa,aAAc+gB,CAAuB,EAE9DuC,EAAkB3B,EAAawB,CAAS,EAG1CF,EAAoBC,EAAeC,EAAWC,CAAS,CACzD,GA+FiBzpB,EAAOgoB,EAAaS,EAAcL,CAAU,CAE7D,EAEM2D,EAAYzrB,EAChB,GACA,CACEiD,KAAKC,GACHoE,EAAgBie,EAAUriB,CAAI,EAAE/F,QAASuqB,IACvC,GAAM,CAAES,aAAAA,EAAcL,WAAAA,CAAW,EAAIH,EAAiBD,CAAW,EAEjEI,EAAW1oB,iBACT,WACA,WACEjJ,KAAKuN,UAAUvE,IAAI8mB,CAAU,CAC/B,EACA,CAAA,CACF,EAEA6B,EAAW1oB,iBACT,YACA,WACEjJ,KAAKuN,UAAUrE,OAAO4mB,CAAU,CAClC,EACA,CAAA,CACF,EAEA6B,EAAW1oB,iBACT,OACA,WACEjJ,KAAKuN,UAAUrE,OAAO4mB,CAAU,CAClC,EACA,CAAA,CACF,EAEAyB,EAAYtoB,iBACV,SACC7K,GAAMw1B,EAAax1B,EAAGmzB,EAAaS,EAAcL,CAAU,EAC5D,CAAA,CACF,CACF,CAAC,CACH,EACA4D,SAASxoB,GACPoE,EAAgB/C,EAAOrB,CAAI,EAAE/F,QAASuqB,IACpC,IAAMiE,EAAsBjE,EAAYkE,cAAcA,cACtDD,EAAoBC,cAAczO,aAChCuK,EACAiE,CACF,EAEAjE,EAAYmE,UAAYvG,CAC1B,CAAC,CACH,EACA0B,oBAAAA,EACA9c,QAlhBaxI,IACf,GAAM,CAAEulB,WAAAA,EAAY/hB,QAAAA,CAAQ,EAAI8hB,EAAoBtlB,CAAE,EAEtDwD,EAAQkF,SAAW,CAAA,EACnB6c,EAAWvjB,UAAUvE,IAAI0mB,CAAc,CACzC,EA8gBIxL,YAvgBiB3Y,IACXulB,EAAeD,EAAoBtlB,CAAE,EAA1B,WAEnBulB,EAAWvjB,UAAUvE,IAAI0mB,CAAc,CACzC,EAogBIlW,OA7fYjO,IACd,GAAM,CAAEulB,WAAAA,EAAY/hB,QAAAA,CAAQ,EAAI8hB,EAAoBtlB,CAAE,EAEtDwD,EAAQkF,SAAW,CAAA,EACnB6c,EAAWvjB,UAAUrE,OAAOwmB,CAAc,EAC1CoB,EAAW9f,gBAAgB,eAAe,CAC5C,CAwfE,CACF,EAEA3R,EAAOJ,QAAUq2B,C,2MC9lBjB,IAAMzrB,EAAWlL,EAAQ,wCAAwC,EACzD8M,EAAU9M,EAAQ,gCAAgC,EAA5C,MACd,IAAgB+M,EAAW/M,EAAQ,gCAAgC,EAA5C,OAEjBg3B,MAAYjqB,gBAEZM,EADS2pB,EAAH,YACcjqB,yBA0B1B,SAASkqB,EAAcC,GACrB,IAAMC,EAAY51B,SAASmL,cAAcsqB,CAAK,EAEzCG,GAIgBA,EAAU11B,iBAAiB4L,CAAM,EAEzChF,QAAS+uB,IACpB,IAAMC,EAAwBD,EAAenpB,aAAa,OAAO,EAC3DqpB,EACJF,EAAenpB,aAAa,UAAU,GAAKmpB,EAAeG,QAKtDC,EAAaj2B,SAASqP,cAHLsmB,EAAW,SAAWI,CAGW,EACxDE,EAAWvmB,aAAa,QAASomB,CAAqB,EACtDG,EAAW5oB,UAAU1B,OAChBH,EAAH,gCACAmqB,CACF,EACAM,EAAWtmB,YAAckmB,EAAelmB,YAEpCgmB,IACFM,EAAWvmB,aAAa,WAAYmmB,EAAeG,OAAO,EACpDE,EAAY1qB,EAAH,qBAA8B2E,KAAK+gB,MAChC,IAAhB/gB,KAAKgmB,OAAO,CACd,EAEAF,EAAWvmB,aAAa,gBAAiBwmB,CAAM,EAC/CD,EAAWvmB,aAAa,gBAAiB,OAAO,EAChDmmB,EAAeO,mBAAmB1mB,aAAa,KAAMwmB,CAAM,EAC3DD,EAAWvmB,aAAa,OAAQ,QAAQ,GAI1CmmB,EAAeQ,MAAMJ,CAAU,EAC/BJ,EAAe7sB,OAAO,CACxB,CAAC,CACH,CAEA,IAAMstB,EAAUjtB,IACdqsB,EAAcrsB,EAAM7J,OAAO,CAC7B,EAEAL,EAAOJ,QAAU4K,EACf,EACG4B,GAAQ,EACNO,GAtEP,WACE,IACQyqB,EADJl3B,OAAOm3B,WANU,MAObD,EAAgD,SAAvCz2B,KAAK4M,aAAa,eAAe,EAC7B5M,KAAKO,QAAQo1B,CAAK,EAG1Bv1B,iBAAiB4L,CAAM,EAAEhF,QAASqF,IAC3CA,EAAOuD,aAAa,gBAAiB,CAAA,CAAK,CAC5C,CAAC,EAED5P,KAAK4P,aAAa,gBAAiB,CAAC6mB,CAAM,EAE9C,CA2DI,CACF,EACA,CAEEE,eAhFmB,IAkFnB7pB,OACE8oB,EAAcr2B,OAAOm3B,WAnFJ,GAmF+B,EAChD12B,KAAK42B,eAAiBr3B,OAAOs3B,WAC3B,sBACF,EACA72B,KAAK42B,eAAeE,YAAYN,CAAM,CACxC,EAEAjB,WACEv1B,KAAK42B,eAAeG,eAAeP,CAAM,CAC3C,CACF,CACF,C,6ICrGA,IAAMzsB,EAASpL,EAAQ,iBAAiB,EAClCkL,EAAWlL,EAAQ,wCAAwC,EACjE,IAAMiN,EAASjN,EAAQ,sCAAsC,EACvDkN,EAASlN,EAAQ,sCAAsC,EACvDq4B,EAAYr4B,EAAQ,0CAA0C,EAC9DwN,EAAYxN,EAAQ,+BAA+B,EACzD,IAAMs4B,EAAiBt4B,EAAQ,+CAA+C,EAEtE8M,EAAU9M,EAAQ,gCAAgC,EAA5C,MACE+M,EAAW/M,EAAQ,gCAAgC,EAA5C,OAGvB,IAAMwO,MAAazB,WACbwrB,MAAUxrB,QAChB,IAAMyrB,MAAoBzrB,kBAC1B,IAAM0rB,MAAkB1rB,iBAClB2rB,MAAuB3rB,sBACvB4rB,YAAwB5rB,cAC9B,IAAM6rB,EAAeL,EAAH,KAClB,IAAMM,EAA2B,kBAC3BC,MAAc/rB,aACdgsB,MAAmBhsB,eACzB,IACMisB,EAAaD,QAAkBhsB,YACrC,IAAMksB,EAAU,CAACV,MAFGxrB,aAEW5E,KAAK,IAAI,EAClC+wB,gBAAiC1qB,MAAWgqB,MAAkBD,MAAQA,0BACtEY,MAAqBN,KAErBO,EAAe,4BAGjBC,EACAC,EACAC,EAEEC,EAAW,IAAMj4B,SAASk4B,KAAK7qB,UAAU3D,SAASmuB,CAAY,EAG9DM,EACJlG,UAAUC,UAAUkG,SAAS,QAAQ,GACrC,CAACnG,UAAUC,UAAUkG,SAAS,QAAQ,EAClCC,EAAkBtB,EAAe,EACvC,IAAMuB,EAAkBj5B,OACrBk5B,iBAAiBv4B,SAASk4B,IAAI,EAC9BM,iBAAiB,eAAe,EAC7BC,EACJjoB,SAAS8nB,EAAgBxtB,QAAQ,KAAM,EAAE,EAAG,EAAE,EAC9C0F,SAAS6nB,EAAgBvtB,QAAQ,KAAM,EAAE,EAAG,EAAE,EAFtB,KAKpB4tB,EAAkB,KACtB,IAAMC,EAAe34B,SAASmL,cAAc,GAAG8B,CAAQ,EAAE1M,YACzDy3B,EAAiBh4B,SAASE,iBAAiBy3B,CAAgB,GAE5C7wB,QAAS8xB,IAClBA,IAAkBD,IACpBC,EAAclpB,aAAa,cAAe,CAAA,CAAI,EAC9CkpB,EAAclpB,aAAa4nB,EAA0B,EAAE,EAE3D,CAAC,CACH,EAEMuB,EAAkB,MACtBb,EAAiBh4B,SAASE,iBAAiB03B,CAAc,IAOzDI,EAAelxB,QAAS8xB,IACtBA,EAAc9nB,gBAAgB,aAAa,EAC3C8nB,EAAc9nB,gBAAgBwmB,CAAwB,CACxD,CAAC,CACH,EAkCMwB,EAAaC,IACjB,IAAQb,EAASl4B,SAAJ,KACb,IAAMg5B,EAA+B,WAAlB,OAAOD,EAAuBA,EAAS,CAACd,EAAS,EATrCC,EAWPA,EAVlBe,MAA4B55B,OAAO65B,YACrCf,GACFD,EAAKjS,MAAMkT,YAAY,cAAeF,CAAqB,EAU7Df,EAAK7qB,UAAU1B,OAAOksB,EAAcmB,CAAU,EAE9CttB,EAAOgsB,CAAO,EAAE5wB,QAASuE,GACvBA,EAAGgC,UAAU1B,OAxFK,aAwFiBqtB,CAAU,CAC/C,EAEAlB,EAAWsB,UAAUC,OAAOL,CAAU,EAEtC,IAAMM,EAAcpB,EAAK/sB,cAAcqsB,CAAY,EAC7C+B,EAAav5B,SAASmL,cAAcosB,CAAO,EAyBjD,OAvBAW,EAAKjS,MAAMuT,aACTtB,EAAKjS,MAAMuT,eAAiBf,EACxBH,EACAG,GAEYO,EAnDhBN,EAEAG,GAFgB,EAqDdG,GAAcM,EAGhBA,EAAY3jB,MAAM,EAElB,CAACqjB,GACDO,GACyC,SAAzChB,iBAAiBgB,CAAU,EAAEzL,SAM7ByL,EAAW5jB,MAAM,EAGZqjB,CACT,EAEA,IAAM1C,EAAS,KACb,IAAMmD,EAASz5B,SAASk4B,KAAK/sB,cAAcqsB,CAAY,EAEnDS,EAAS,GAAKwB,GAAmD,IAAzCA,EAAOC,sBAAsB,EAAEC,OAIzD7B,EAAWgB,UAAU95B,KAAKy6B,EAAQ,CAAA,CAAK,CAE3C,EAEMG,EAAc,IAAM9B,EAAWgB,UAAU95B,KAAK84B,EAAY,CAAA,CAAK,EAE/D+B,EAAwB,KACvB9B,IAILpsB,EAAOosB,EAAW,CAAA,CAAK,EACvBA,EAAY,KACd,EAmBAD,EAAanuB,EACX,EACG4B,GAAQ,EACN6rB,KAaC,OAXIW,IAAcj4B,MAChB+5B,EAAsB,EAInB9B,IACHA,EAAYj4B,KACZ6L,EAAOosB,EAAW,CAAA,CAAI,GAIjB,CAAA,CACT,EACAG,KAAQ2B,GACPtC,GAAUuB,GACVrB,GAAUqB,GACVzB,KAOC,IAAMyC,EAAMh6B,KAAKO,QAAQ4L,EAAUJ,SAAS,EAExCiuB,GACF7tB,EAAUe,WAAW8sB,CAAG,EAAEhzB,QAAS8e,GAAQ3Z,EAAUc,KAAK6Y,CAAG,CAAC,EAI5DqS,EAAS,GACXH,EAAWgB,UAAU95B,KAAK84B,EAAY,CAAA,CAAK,CAE/C,CACF,EACAvqB,QAAS,EACN2pB,GAAcrtB,EAAO,CAAEiP,OA9CRzP,IAZEA,IAChB0wB,EAYNF,EAAsB,EAZhBE,GADgB1wB,EAcPA,GAbarC,OAAO3G,QAAQ82B,CAAgB,EAGtD9tB,EAAMrC,OAAOxH,QAAQ43B,CAAW,IAC7B4C,EAAaD,EAAc5uB,cAAcisB,CAAW,IAExD4C,EAAWrkB,MAAM,CAQvB,CA2CmD,CAAC,CAChD,EACAiD,SAAU,EACPse,GAAa7tB,GACAA,EAAMrC,OAAO3G,QAAQ62B,CAAW,EAEnCxtB,SAASL,EAAMwP,aAAa,GACnCghB,EAAsB,CAE1B,CACF,CACF,EACA,CACEjtB,KAAKC,GACGotB,EAAgBptB,EAAKrN,QAAQw3B,CAAG,EAAInqB,EAAOA,EAAK1B,cAAc6rB,CAAG,EAEnEiD,IACFnC,EAAWsB,UAAYtC,EAAUmD,EAAe,CAC9CnhB,OAAQ8gB,CACV,CAAC,GAhKHzB,GACFn4B,SAASk4B,KAAK7qB,UAAUvE,IAAI,WAAW,EAmKrCwtB,EAAO,EACPj3B,OAAO0J,iBAAiB,SAAUutB,EAAQ,CAAA,CAAK,CACjD,EACAjB,WACEh2B,OAAO4J,oBAAoB,SAAUqtB,EAAQ,CAAA,CAAK,EAClDyB,EAAY,CAAA,CACd,EACAqB,UAAW,KACXN,UAAAA,CACF,CACF,EAEA35B,EAAOJ,QAAU+4B,C,0XC1QjB,IAAMrE,EAAOh1B,EAAQ,eAAe,EACpC,IAAMoL,EAASpL,EAAQ,iBAAiB,EACxC,IAAMwS,EAAkBxS,EAAQ,iDAAiD,EACjF,IAAMkL,EAAWlL,EAAQ,wCAAwC,EACjD+M,EAAW/M,EAAQ,gCAAgC,EAA5C,OACf8M,EAAU9M,EAAQ,gCAAgC,EAA5C,MACd,IAAMyS,EAAYzS,EAAQ,yCAAyC,EAE7Dy7B,EAAmB1uB,EAAH,WAEhB2uB,EAA6B,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,MAG5DC,EAA4B,EAG5BC,EAAuB7uB,EAAH,eACpB8uB,EAA8B9uB,EAAH,UAC3B+uB,EAA2BF,EAAH,QACxBG,EAA4BH,EAAH,SACzBI,EAA4BJ,EAAH,SACzBK,EAAoCD,EAAH,YACjCE,EAA4BN,EAAH,SACzBO,EAA6BP,EAAH,YAQ1BQ,EAAaxvB,IACjB,IAAMyvB,EAAW96B,SAASE,iBAAiB,IAAIy6B,CAAwB,EACvEtvB,EAAG1E,IAAKrI,GACmB,CAAA,IAArBA,EAAEy8B,gBAAkD,GAAvBz8B,EAAE08B,oBACjCF,EAASh0B,QAASm0B,GAASA,EAAK5tB,UAAUrE,OAAOkxB,CAAa,CAAC,EAC/Dl6B,SACGmL,0BAA0B7M,EAAE0I,OAAOkE,MAAM,EACzCmC,UAAUvE,IAAIoxB,CAAa,EACvB,CAAA,EAGV,CACH,EAWMgB,EAA6B,CACjCC,EACAC,KAGMC,EAA4BD,EAAqBzyB,QAAQ,GAAG,EAC9DyyB,EAAqBv0B,MAAM,GAAG,EAC9Bu0B,EACEE,EAAgBt7B,SAASmL,cAAcgwB,CAAqB,EAElEE,EAA0Bv0B,QAASy0B,IACjC,GAAI,CAACpB,EAA2B/B,SAASmD,CAAW,EAClD,MAAM,IAAI38B,oGACsF28B;mEACnCpB;4EAE7D,CAEJ,CAAC,EAEKqB,EAAuBt6B,MAAMgG,KACjCo0B,EAAcp7B,iBAAiBm7B,CAAyB,CAC1D,EAEA,OAAOG,CACT,EAmHMC,EAAyBpwB,IAC7B,IACMqwB,EADc17B,SAASmL,cAAc,IAAIkvB,CAAmB,EAEpD7qB,QAAQmsB,cAAgBvB,EAEtC/6B,OAAOu8B,OAAO,CACZjyB,SAAU,SACVuc,IAAK7a,EAAGmK,UAAYkmB,EACpBG,MAAO,OACT,CAAC,EAEGx8B,OAAOy8B,SAASC,KAAKpZ,MAAM,CAAC,IAAMtX,EAAGH,IACvC7L,OAAO28B,QAAQC,UAAU,KAAM,GAAI,IAAI5wB,EAAGH,EAAI,CAElD,EAoBMgxB,EAAmBC,IACvB,IAAMC,EAAqBlrB,EAAU6D,aACnConB,EAAY3sB,QAAQ6sB,WA3NO,iBA6NvBC,EAA6BprB,EAAU6D,aAC3ConB,EAAY3sB,QAAQ+sB,mBA7NgB,OA+NhCC,EAAsBtrB,EAAU6D,aACpConB,EAAY3sB,QAAQitB,YA9NQ,oBAgOxBC,EAAqBxrB,EAAU6D,aACnConB,EAAY3sB,QAAQmtB,WAhOM,MAkOtBC,EAA2B1rB,EAAU6D,aACzConB,EAAY3sB,QAAQqtB,qBA1NH,SA4NbC,EAA2B5rB,EAAU6D,aACzConB,EAAY3sB,QAAQutB,iBA5OK,UA+OrBx0B,EAAU,CACdsE,KAAM,KACN4vB,WAAYD,EACZG,UAAW,CAACD,EACd,EAhKAvB,EAmKEyB,EAlKFxB,EAmKE0B,EAFF,IAAME,EA/JkB9B,EACtBC,EACAC,CACF,EAG+ClvB,OAAQ+wB,IAC/CC,EAAe79B,OAAOk5B,iBAAiB0E,CAAO,EAKpD,MAH+C,SAA7CC,EAAa1E,iBAAiB,SAAS,GACS,WAAhD0E,EAAa1E,iBAAiB,YAAY,CAG9C,CAAC,EAsJK2E,EAAYn9B,SAASqP,cAAc,KAAK,EAC9C8tB,EAAUztB,aAAa,aAAc0sB,CAAkB,EACvDe,EAAU9vB,UAAUvE,IAAIyxB,CAAqB,EAEvC6C,EAAiBp9B,SAASqP,cAAcitB,CAA0B,EACxEc,EAAe/vB,UAAUvE,IAAI8xB,CAAuB,EACpDwC,EAAe1tB,aAAa,WAAY,GAAG,EAC3C0tB,EAAeztB,YAAcysB,EAC7Be,EAAUtP,YAAYuP,CAAc,EAEpC,IAAMC,EAAgBr9B,SAASqP,cAAc,IAAI,EACjDguB,EAAchwB,UAAUvE,IAAI0xB,CAAsB,EAClD2C,EAAUtP,YAAYwP,CAAa,EAEnCL,EAAgBl2B,QAASuE,IACvB,IAAMiyB,EAAWt9B,SAASqP,cAAc,IAAI,EACtCkuB,EAAWv9B,SAASqP,cAAc,GAAG,EACrCmuB,EAAYx9B,SAASqP,cAAc,GAAG,EACtCouB,EAAoBpyB,EAAGsE,YACvB+tB,EAAMryB,EAAG2qB,QAAQnwB,YAAY,EAC7B83B,EAAqCX,EA5JV,GAAGhH,QAAQnwB,YAAY,EA6JlD+3B,GAtIYX,IACpB,IAAMY,EAASZ,EAAQttB,YACpB9J,YAAY,EAEZiF,QAAQ,YAAa,GAAG,EAExBA,QAAQ,SAAU,GAAG,EAErBA,QAAQ,SAAU,EAAE,EAEvBkF,IAAI9E,EACA4yB,EAAS,EACb,KACE5yB,EAAK2yB,EAKQ,GADbC,GAAU,KAER5yB,GAAM,IAAI4yB,GAEL99B,SAASiL,eAAeC,CAAE,IAEnC,OAAOA,CACT,GA8GmCG,CAAE,EAEjCiyB,EAASjwB,UAAUvE,IAAI2xB,CAAsB,EAEzCiD,IAAQC,GACVL,EAASjwB,UAAUvE,IAAI4xB,CAA8B,EAGvD6C,EAAS7tB,aAAa,OAAQ,IAAIkuB,CAAW,EAC7CL,EAAS7tB,aAAa,QAASirB,CAAsB,EACrD4C,EAAS5tB,YAAc8tB,EAEvBD,EAAU9tB,aAAa,KAAMkuB,CAAS,EACtCJ,EAAU9tB,aAAa,QAAS4qB,CAAwB,EACxDjvB,EAAG2J,sBAAsB,aAAcwoB,CAAS,EAEhDH,EAAcxP,YAAYyP,CAAQ,EAClCA,EAASzP,YAAY0P,CAAQ,CAC/B,CAAC,EAEDpB,EAAYtO,YAAYsP,CAAS,EAE3BY,EAzKiB/9B,SAASE,iBAC9B,IAAIo6B,CACN,EAwKA,IAAM0D,EAAkB,IAAI3+B,OAAO4+B,qBAAqBpD,EAAWtyB,CAAO,EAE1Ew1B,EAAWj3B,QAAS42B,IAClBM,EAAgBE,QAAQR,CAAG,CAC7B,CAAC,CACH,EAqCMS,EAAmBx0B,EACvB,EACG4B,GAAQ,EACN,IAAIovB,GAA0BtxB,GAC7BA,EAAMoC,eAAe,EACjB3L,KAAKiU,WAnCY1I,IACrB+yB,EAAoBp+B,SAASiL,eAAeI,EAAG0wB,KAAKpZ,MAAM,CAAC,CAAC,EAClE8Y,EAAsB2C,CAAiB,CACzC,GAiC4Bt+B,IAAI,CAC1B,CACF,EACAyN,QAAS,EACN,IAAIotB,GAA2B9wB,EAAO,CACrCkP,MA/BqB1P,IACrB6B,GArJcpD,IACpBkI,IAAI9E,EASJ,OALEA,GADEpD,GAA4B,IAAnBA,EAAMxH,SACZwH,EAAM4E,aAAa,MAAM,EAEzB5E,EAAMd,OAAO+0B,MAFcjxB,QAAQ,IAAK,EAAE,CAMnD,GA0I0BzB,CAAK,EACvBg1B,EAAer+B,SAASiL,eAAeC,CAAE,EAC/C,IAAMlE,EAASq3B,EAAa9I,cAExBvuB,IACFA,EAAO0I,aAAa,WAAY,CAAC,EACjC1I,EAAO2O,MAAM,EACb3O,EAAO+B,iBACL,OACA0qB,EAAK,KACHzsB,EAAO0I,aAAa,WAAY,CAAC,CAAC,CACpC,CAAC,CACH,GAIF+rB,EAAsB4C,CAAY,CACpC,CAcM,CAAC,CACH,CACF,EACA,CACEzxB,KAAKC,GACHoE,EAAgB,IAAIopB,EAAqBxtB,CAAI,EAAE/F,QAASq1B,IACtDD,EAAgBC,CAAW,GApJ3BmC,EAAej/B,OAAOy8B,SAASC,KAAKpZ,MAAM,CAAC,KAEzC6a,EAAYx9B,SAASiL,eAAeqzB,CAAY,IAEpD7C,EAAsB+B,CAAS,CAkJ/B,CAAC,CACH,CACF,CACF,EAEAr+B,EAAOJ,QAAUo/B,C,uRCjXjB,IAAMltB,EAAkBxS,EAAQ,iDAAiD,EACjF,IAAMkL,EAAWlL,EAAQ,wCAAwC,EACjD+M,EAAW/M,EAAQ,gCAAgC,EAA5C,OAGvB,IAAM8/B,EAAS,KADS/yB,EAAH,WAEfgzB,EAAUhzB,EAAH,cACPizB,EAAkBD,EAAH,YACfE,EAAc,cAGdC,EAAe,YACfC,EAAe,IAqCfC,EAAgB,CAACC,EAAkBh3B,IACvCg3B,EAAmBh3B,EAAMgD,QAAQ,MAAO,EAAE,EAAIhD,EAAMgD,QAAQ,MAAO,EAAE,EAEjEi0B,EAAaj3B,GAAU,CAACsa,OAAOC,MAAM7R,SAAS1I,EAAO,EAAE,CAAC,EAExDk3B,EAAYl3B,GAAWA,CAAAA,CAAAA,GAAQA,EAAMQ,MAAM,QAAQ,EA2CnD22B,EAAqB5zB,IACzB,IAAMwD,EAAUxD,EACVH,EAAK2D,EAAQnC,aAAa,IAAI,EAG9BwyB,GAFNrwB,EAAQ/G,OA5CkBuD,IAC1B,IAAMyzB,EAAmBzzB,EAAGmE,QAAQ2vB,QAC9B1qB,EAAcqqB,GAAoBzzB,EAAGmE,QAAQiF,YAC3C3M,EAAUuD,EAAJ,MACRsJ,EAAMF,EAAYxV,OACxB+Q,IAAIud,EAAW,GACXjvB,EACA8gC,EAEJ,IAAMC,EAAcR,EAAcC,EAAkBh3B,CAAK,EAEzD,IAAKxJ,EAAI,EAAG8gC,EAAY,EAAG9gC,EAAIqW,EAAKrW,GAAK,EAAG,CAC1C,IAAMghC,EAAQP,EAAUM,EAAYD,EAAU,EACxCG,EAAQP,EAASK,EAAYD,EAAU,EACvCI,EAAwD,GAAxCb,EAAah2B,QAAQ8L,EAAYnW,EAAE,EACnDmhC,EAAwD,GAAxCb,EAAaj2B,QAAQ8L,EAAYnW,EAAE,EAEzD,GACGkhC,GAAiBF,GACjBR,GAAoBW,GAAiBF,EAEtChS,GAAY8R,EAAYD,GACxBA,GAAa,MACR,CAAA,GACJ,CAACN,GAAoB,CAACQ,GAASE,GAC/BV,IACGW,GAAiB,CAACF,GAAWC,GAAiB,CAACF,GAEnD,OAAO/R,EAEPA,GAAY9Y,EAAYnW,EAC1B,CAEA,GAA+BiM,KAAAA,IAA3B80B,EAAYD,GACd,KAEJ,CAEA,OAAO7R,CACT,GAKqC1e,CAAO,EA3DlC/G,GADcuD,EA8DSA,GA7DjB,MACRq0B,EAAiB,GA4DQr0B,EA5DFmE,QAAQiF,YAAYkrB,OAAO73B,EAAM7I,MAAM,GAE9D2gC,EAAS5/B,SAASqP,cAAc,GAAG,GAClCM,YAAc7H,EACd,CAAC83B,EAAQF,IAyDVG,EAAS7/B,SAASiL,eAAkBC,EAAH,MAAW,EAClD20B,EAAOlwB,YAAc,GACrBkwB,EAAOC,gBAAgBZ,EAAQ,GAAIA,EAAQ,EAAE,CAC/C,EAUMa,EAAYp2B,EARM,CACtB+iB,MAAO,EACJ6R,KACCU,EAAkBn/B,IAAI,CACxB,CACF,CACF,EAE4C,CAC1C8M,KAAKC,GACHoE,EAAgBstB,EAAQ1xB,CAAI,EAAE/F,QAASk5B,IAvGXhvB,IAUxBivB,EAIAC,EAbAzrB,GAAAA,GADwBzD,EAwGHgvB,GAvGDtzB,aAAgBgyB,CAAa,KAErD1tB,EAAMtB,aAAa,YAAa+E,EAAYxV,MAAM,EAClD+R,EAAMtB,aAAa,mBAAoB+E,CAAW,EAClDzD,EAAMF,gBAAmB4tB,CAAa,GAKlCuB,EAAQjgC,SAASqP,cAAc,MAAM,GACrChC,UAAUvE,IAAI01B,CAAI,EACxByB,EAAMvwB,aAAa,YAAa+E,CAAW,GAErCyrB,EAAUlgC,SAASqP,cAAc,MAAM,GACrChC,UAAUvE,IAAI21B,CAAY,EAClCyB,EAAQxwB,aAAa,cAAe,MAAM,EAC1CwwB,EAAQh1B,GAAQ8F,EAAM9F,GAAT,OACbg1B,EAAQvwB,YAAc8E,EAEtBwrB,EAAMpS,YAAYqS,CAAO,EACzBlvB,EAAMzQ,WAAWsxB,aAAaoO,EAAOjvB,CAAK,EAC1CivB,EAAMpS,YAAY7c,CAAK,EAmFrB,CAAC,CACH,CACF,CAAC,EAED7R,EAAOJ,QAAUghC,C,8JC5HjB,IAAMl2B,EAASpL,EAAQ,iBAAiB,EAClCkL,EAAWlL,EAAQ,wCAAwC,EACjE,IAAMkN,EAASlN,EAAQ,sCAAsC,EACvDq4B,EAAYr4B,EAAQ,0CAA0C,EAC9DwN,EAAYxN,EAAQ,+BAA+B,EAEzD,IAAQ8M,EAAU9M,EAAQ,gCAAgC,EAA5C,MACE+M,EAAW/M,EAAQ,gCAAgC,EAA5C,OAIvB,IAAM0hC,MAAmB30B,sBACnB40B,MAAuB50B,sBACvB60B,MAA4B70B,2BAC5B80B,YAA6B90B,mBAG/B+0B,EACAC,EAEEC,EAAkB,IACtBF,EAAiBG,eAAe1hC,KAAKuhC,EAAkB,CAAA,CAAK,EAExDI,EAA6B,KAC5BH,IAIL70B,EAAO60B,EAAgB,CAAA,CAAK,EAC5BA,EAAiB,KACnB,EAeAD,EAAmB52B,EACjB,EACG4B,GAAQ,EACN+0B,KAaC,OAZIE,IAAmB1gC,MACrB6gC,EAA2B,EAEzBH,IAAmB1gC,KACrB6gC,EAA2B,EAGxBH,IACHA,EAAiB1gC,KACjB6L,EAAO60B,EAAgB,CAAA,CAAI,GAGtB,CAAA,CACT,EACAtI,KAAQyI,OArDOn1B,aAKE,QAkDf,IAAMsuB,EAAMh6B,KAAKO,QAAQ4L,EAAUJ,SAAS,EAExCiuB,GACF7tB,EAAUe,WAAW8sB,CAAG,EAAEhzB,QAAS8e,GAAQ3Z,EAAUc,KAAK6Y,CAAG,CAAC,CAElE,CACF,EACArY,QAAS,EACN6yB,GAAmBv2B,EAAO,CAAEiP,OAjCbzP,IAROA,IACrBu3B,EAQND,EAA2B,EARrBC,GADqBv3B,EAUPA,GATarC,OAAO3G,QAAQggC,CAAqB,EAEhEh3B,EAAMrC,OAAOxH,QAAQ8gC,CAAgB,GACxCM,EAAmBz1B,cAAcm1B,CAAgB,EAAE3qB,MAAM,CAO7D,CA8BwD,CAAC,CACrD,EACAiD,SAAU,EACPwnB,GAAkB/2B,GACAA,EAAMrC,OAAO3G,QAAQ+/B,CAAgB,EAExC12B,SAASL,EAAMwP,aAAa,GACxC8nB,EAA2B,CAE/B,CACF,CACF,EACA,CACE/zB,KAAKC,GACGotB,EAAgBptB,EAAKrN,QAAQ2gC,CAAY,EAC3CtzB,EACAA,EAAK1B,cAAcg1B,CAAY,EAE/BlG,IACFsG,EAAiBnH,UAAYtC,EAAUmD,EAAe,CACpDnhB,OAAQ2nB,CACV,CAAC,EAEL,EACApL,WACEmL,EAAiB,CAAA,CACnB,EACApH,UAAW,IACb,CACF,EAEAj6B,EAAOJ,QAAUwhC,C,6RCxGjB,IAAMtvB,EAAkBxS,EAAQ,iDAAiD,EAC3Eq4B,EAAYr4B,EAAQ,0CAA0C,EACpE,IAAMs4B,EAAiBt4B,EAAQ,+CAA+C,EACxEkL,EAAWlL,EAAQ,wCAAwC,EAEjD+M,EAAW/M,EAAQ,gCAAgC,EAA5C,OAEvB,IAAMoiC,EAAqBr1B,EAAH,SAClBs1B,EAAuBD,EAAH,WACpBE,EAAuBF,EAAH,WACpBG,EAAmB,kBACnBC,EAAmB,mBACnBC,EAAyB,oBACzBC,EAA6B,oBAC7BC,EAAQ,IAAIP,EACZQ,MAAoBN,kBACpBvJ,KAAkBuJ,OAAuBE,KAEzCxJ,GADeuJ,EACFxJ,QAAkBsJ,UAA0BI,OACzDI,mBAA8BP,wBAG9BlJ,GAFwBsJ,EAET,wBAEfI,EAAgB,aAChBC,EAAe,YAEjBC,EACAC,EACAC,EAGEtJ,EAAkBtB,EAAe,EAKjC6C,EAAc,KAClB6H,EAAMG,YAAY5iC,KAAKyiC,EAAO,CAAA,CAAK,CACrC,EAMMI,EAA0B,KAC9BH,EAAuBriC,OACpBk5B,iBAAiBv4B,SAASk4B,IAAI,EAC9BM,iBAAiB,eAAe,EACnCmJ,EACEnxB,SAASkxB,EAAqB52B,QAAQ,KAAM,EAAE,EAAG,EAAE,EACnD0F,SAAS6nB,EAAgBvtB,QAAQ,KAAM,EAAE,EAAG,EAAE,EAFvB,IAI3B,EAQA,SAAS82B,EAAYv4B,GACnB2G,IAAI8xB,EACAC,EAAiB14B,EAAMrC,OAC3B,IAcMg7B,EAGAC,EAGA1I,EACA2I,EArBEhK,EAASl4B,SAAJ,KACPg5B,EAAa,CAlCEh5B,SAASk4B,KAAK7qB,UAAU3D,SAASmuB,CAAY,EAmC5DsK,EAAUJ,EACZA,EAAer1B,aAAa,eAAe,EAC3C1M,SAASmL,kBAAkB41B,KAAqBQ,CAAe,EAC7Da,EAAcpJ,EAChBh5B,SAASiL,eAAek3B,CAAO,EAC/BniC,SAASmL,kBAAkB41B,KAAqBQ,CAAe,EAGnE,MAAA,EAAKa,CAAAA,IAICJ,EAAcI,EAAYj3B,cAAck2B,CAAa,EACvDe,EAAYj3B,cAAck2B,CAAa,EACvCe,EAAYj3B,cAAc,IAAI01B,CAAiB,EAC7CoB,EAAcjiC,SAASiL,eAC3Bm3B,EAAY11B,aAAa,aAAa,CACxC,EACM6sB,EAAarB,EAAK/sB,cAnEV,mCAmE+B,EACvC+2B,EAAkBE,EAAY11B,aAAaw0B,CAAsB,GAKrEa,EADiB,YAAf14B,EAAMjB,MAAsC,OAAhBg6B,EACbA,EAAYj3B,cAAcqsB,CAAY,EAIrDuK,KAIEA,EAAev1B,aAAaw0B,CAAgB,IACd,OAA5BlhC,KAAK4M,aAAa,IAAI,GACxBo1B,EAAiB,UAAS3xB,KAAK+gB,MAAsB,IAAhB/gB,KAAKgmB,OAAO,CAAU,EAAI,KAC/Dr2B,KAAK4P,aAAa,KAAMoyB,CAAc,GAEtCA,EAAiBhiC,KAAK4M,aAAa,IAAI,EAEzC01B,EAAY1yB,aAAa,cAAeoyB,CAAc,GAMpDC,EAAe1hC,QAAQ,IAAIwgC,CAAiB,IAE5CkB,CAAAA,EAAev1B,aAAay0B,CAAgB,GAC5Cc,CAAAA,EAAe1hC,YAAY4gC,IAAmB,MASpD/I,EAAK7qB,UAAU1B,OAAOksB,EAAcmB,CAAU,EAC9CoJ,EAAY/0B,UAAU1B,OAAO41B,EAAevI,CAAU,EACtDoJ,EAAY/0B,UAAU1B,OAAO61B,EAAc,CAACxI,CAAU,EAKlDkJ,GACFhK,EAAK7qB,UAAU1B,OA5GS,kBA4GmBqtB,CAAU,EAKnDd,EAAKjS,MAAMuT,eAAiBmI,EAC9BzJ,EAAKjS,MAAMoc,eAAe,eAAe,EAEzCnK,EAAKjS,MAAMuT,aAAemI,EAIxB3I,GAAcgJ,GAMdP,EAAMrI,UADJ8I,EACgBpL,EAAUsL,CAAW,EAErBtL,EAAUsL,EAAa,CACvCtpB,OAAQ8gB,CACV,CAAC,EAIH6H,EAAMrI,UAAUC,OAAOL,CAAU,EACjCgJ,EAAYrsB,MAAM,EAGlB3V,SAASE,iBAAiBohC,CAAU,EAAEx6B,QAASw7B,IAC7CA,EAAS5yB,aAAa,cAAe,MAAM,EAC3C4yB,EAAS5yB,aAAayxB,EAA4B,EAAE,CACtD,CAAC,GACQ,CAACnI,GAAcO,GAAc0I,IAGtCjiC,SAASE,iBApJa,qBAoJqB,EAAE4G,QAASw7B,IACpDA,EAASxxB,gBAAgB,aAAa,EACtCwxB,EAASxxB,gBAAgBqwB,CAA0B,CACrD,CAAC,EAGDc,EAAYtsB,MAAM,EAClB8rB,EAAMrI,UAAUC,OAAOL,CAAU,GAG5BA,EACT,CASA,IA4BMuJ,EAAqB,CAACC,EAAeC,KACzC,IAAMC,EAAUF,EAAc91B,aAAa,IAAI,EAC/C,IAAMi2B,EAAiBH,EAAc91B,aAAa,iBAAiB,EAC7Dk2B,EAAkBJ,EAAc91B,aAAa,kBAAkB,EAC/Dw1B,EAAkBM,EAAch2B,aAAa00B,CAAsB,EAEzE,GAAI,CAACyB,EACH,MAAM,IAAI/jC,MAAS8jC,EAAH,uCAAiD,EAEnE,GAAKE,EAyBL,OArBAH,EAAoB/yB,aAAa,OAAQ,QAAQ,EACjD+yB,EAAoB/yB,aAAa,KAAMgzB,CAAO,EAC9CD,EAAoB/yB,aAAa,kBAAmBizB,CAAc,EAClEF,EAAoB/yB,aAAa,mBAAoBkzB,CAAe,EAEhEV,GACFO,EAAoB/yB,aAAawxB,EAAwBgB,CAAe,EAIrDO,EAAoBviC,iBAAiBu3B,CAAO,EACpD3wB,QAASuE,IACpBA,EAAGqE,aAAa,gBAAiBgzB,CAAO,CAC1C,CAAC,EAGDF,EAAc1xB,gBAAgB,IAAI,EAClC0xB,EAAc1xB,gBAAgB,iBAAiB,EAC/C0xB,EAAc1xB,gBAAgB,kBAAkB,EAChD0xB,EAAc9yB,aAAa,WAAY,IAAI,EAEpC+yB,EAxBL,MAAM,IAAI7jC,MAAS8jC,EAAH,uCAAiD,CAyBrE,EAkCMG,EAAcL,IAGlB,GAAI,CAFYA,EAAc91B,aAAa,IAAI,EAG7C,MAAM,IAAI9N,MAAM,4BAA4B,EAI9C,IAAMkkC,GAzGmBN,IACzB,IAAME,EAAUF,EAAc91B,aAAa,IAAI,EAC/C,IAAMo2B,EAA8B9iC,SAASqP,cAAc,KAAK,EAC1D0zB,EAAkB7hC,MAAMgG,KAAKs7B,EAAcQ,UAAU,EAe3D,OAbAnB,EAAwB,EAExBiB,EAA4BpzB,aAAa,uBAAwBgzB,CAAO,EACxEI,EAA4B7c,MAAM6H,QAAU,OAC5CgV,EAA4BpzB,aAAa,cAAe,MAAM,EAE9DqzB,EAAgBj8B,QAASm8B,IACvBH,EAA4BpzB,aAC1B,iBAAiBuzB,EAAUpuB,KAC3BouB,EAAUn7B,KACZ,CACF,CAAC,EAEMg7B,CACT,GAsFwDN,CAAa,EAI7DU,GAHNV,EAAcnM,MAAMyM,CAA2B,EAjC3BN,EAoCgBA,EAlC9BC,EAAsBziC,SAASqP,cAAc,KAAK,EAClD8zB,EAAanjC,SAASqP,cAAc,KAAK,EAG/CozB,EAAoBp1B,UAAUvE,IAAI04B,EAAcT,CAAiB,EACjEoC,EAAW91B,UAAUvE,IAAIg4B,CAAiB,EAG1C2B,EAAoB7yB,OAAOuzB,CAAU,EACrCA,EAAWvzB,OAAOwzB,CAAY,EAG9Bb,EAAmBa,EAAcX,CAAmB,EAE7CA,GAyBPziC,SAASk4B,KAAKrK,YAAYqV,CAAc,CAC1C,EAuCAzB,EAAQ93B,EACN,GACA,CACEiD,KAAKC,GACHoE,EAAgBmwB,EAAOv0B,CAAI,EAAE/F,QAASu8B,IACpC,IAAMlB,EAAUkB,EAAYn4B,GAE5B23B,EAAWQ,CAAW,EAGtBpyB,qBAAmCkxB,MAAaniC,QAAQ,EAAE8G,QACvDw8B,IAE+B,MAA1BA,EAAaC,WAEfD,EAAa5zB,aAAa,OAAQ,QAAQ,EAG1C4zB,EAAav6B,iBAAiB,QAAU7K,GAAMA,EAAEuN,eAAe,CAAC,GASlE63B,EAAav6B,iBAAiB,QAAS64B,CAAW,CACpD,CACF,CACF,CAAC,CACH,EACAvM,SAASxoB,GACPoE,EAAgBmwB,EAAOv0B,CAAI,EAAE/F,QAASu8B,IACpC,IAAMlB,EAAUkB,EAAYn4B,IAlEds3B,IACpB,IAAMY,EAAeZ,EACrB,IAAMC,EAAsBW,EAAa7N,cAAcA,cACjDmN,EAAUD,EAAoB/1B,aAAa,IAAI,EAGhDg2B,KAICI,EAA8B9iC,SAASmL,wCACjBu3B,KAC5B,KAG0BxhC,MAAMgG,KAAK47B,EAA4BE,UAAU,EACzDl8B,QAASm8B,IACnBA,EAAUpuB,KAAKqC,WAAW,gBAAgB,GAE5CksB,EAAa1zB,aAAauzB,EAAUpuB,KAAK8qB,OAAO,EAAE,EAAGsD,EAAUn7B,KAAK,CAExE,CAAC,EAEDg7B,EAA4BzM,MAAM+M,CAAY,EAC9CN,EAA4BvN,cAAc7C,YACxCoQ,CACF,GAGFL,EAAoBlN,cAAc7C,YAAY+P,CAAmB,EACnE,GAqCqBY,CAAW,EAExBpyB,qBAAmCkxB,MAAaniC,QAAQ,EAAE8G,QACvDw8B,GACCA,EAAar6B,oBAAoB,QAAS24B,CAAW,CACzD,CACF,CAAC,CACH,EACAxI,UAAW,KACXwI,YAAAA,CACF,CACF,EAEAziC,EAAOJ,QAAU0iC,C,+PCtYjB,IAAMxwB,EAAkBxS,EAAQ,iDAAiD,EACjF,IAAMkL,EAAWlL,EAAQ,wCAAwC,EAEjD+M,EAAW/M,EAAQ,gCAAgC,EAA5C,OAGvB,IAAM+kC,EAAQ,KADah4B,EAAH,UAoBlBi4B,EAAiBC,IACrB,IAGMC,EADeC,EAAYp0B,QAAQq0B,iBADrB,KAGdC,EAAOF,EAAYp0B,QAAQu0B,SAC3B38B,EAAMw8B,EAAY97B,MAGlB6Y,EAAMijB,EAAYl3B,aAAa,KAAK,GAAK,IAE/CsD,IAAIg0B,EAGFA,EADEF,EACW18B,MAAO08B,KAAQH,KAAQhjB,EAEvBvZ,MAAOu8B,KAAQhjB,EAG9BijB,EAAYl0B,aAAa,iBAAkBs0B,CAAO,CACpD,EAUMC,EAAQt6B,EARM,CAClBu6B,OAAQ,EACLV,KACCC,EAAc3jC,IAAI,CACpB,CACF,CACF,EAEoC,CAClC8M,KAAKC,GACHoE,EAAgBuyB,EAAO32B,CAAI,EAAE/F,QAAS88B,IACpCH,EAAcG,CAAW,CAC3B,CAAC,CACH,EACAH,cAAAA,CACF,CAAC,EAEDtkC,EAAOJ,QAAUklC,C,8JChEjB,IAAMr6B,EAASnL,EAAQ,iBAAiB,EACxC,IAAMkL,EAAWlL,EAAQ,wCAAwC,EACjE,IAAMiN,EAASjN,EAAQ,sCAAsC,EAErD8M,EAAU9M,EAAQ,gCAAgC,EAA5C,MAERqN,EAAS,oBACTq4B,EAAO,kBACPj2B,EAAQ,gBACRk2B,EAAU,SAEZC,EAEEC,EAAWn4B,IACTo4B,EAAUp4B,EAAO9L,QAAQ+jC,CAAO,EACtC,OAAOG,GAAwCvkC,UAAtBmL,cAAcg5B,CAAI,CAC7C,EAEMK,EAAe,CAACr4B,EAAQ4sB,KAC5B,IAAM0L,EAAOH,EAAQn4B,CAAM,EAE3B,GAAI,CAACs4B,EACH,MAAM,IAAI7lC,YAAYulC,gCAAmCC,IAAU,EAQrE,GAJAj4B,EAAO2H,OAASilB,EAChB0L,EAAK3wB,OAAS,CAACilB,EAGVA,EAAL,CAIM/nB,EAAQyzB,EAAKt5B,cAAc+C,CAAK,EAElC8C,GACFA,EAAM2E,MAAM,EAId,IAAMjN,EAAWkB,EAAO66B,EAAM,KACxBJ,GACFK,CAqBN,WACEF,EAAa1kC,KAAM,CAAA,CAAK,EACxBukC,EAAa95B,KAAAA,CACf,EAxBiBvL,KAAKqlC,CAAU,EAG5BrkC,SAASk4B,KAAKjvB,oBAAoBsC,EAAO7C,CAAQ,CACnD,CAAC,EAODqqB,WAAW,KACT/yB,SAASk4B,KAAKnvB,iBAAiBwC,EAAO7C,CAAQ,CAChD,EAAG,CAAC,CAxBJ,CAyBF,EAYMi8B,EAASh7B,EACb,EACG4B,GAAQ,CACPq5B,oBAbN,WACEJ,EAAa1kC,KAAM,CAAA,CAAI,EACvBukC,EAAavkC,IACf,CAWI,CACF,EACA,CACE8M,KAAK5F,GACH0E,EAAOI,EAAQ9E,CAAM,EAAEF,QAASqF,IAC9Bq4B,EAAar4B,EAAQ,CAAA,CAAK,CAC5B,CAAC,CACH,EACAkpB,WAEEgP,EAAa95B,KAAAA,CACf,CACF,CACF,EAEApL,EAAOJ,QAAU4lC,C,uKCxFjB,IAAMlR,EAAOh1B,EAAQ,eAAe,EACpC,IAAMkL,EAAWlL,EAAQ,wCAAwC,EACzD8M,EAAU9M,EAAQ,gCAAgC,EAA5C,MACE+M,EAAW/M,EAAQ,gCAAgC,EAA5C,OA4BvBU,EAAOJ,QAAU4K,EAAS,EACvB4B,GAAQ,MA3BMC,0BAA+BA,uCAGhD,WAGE,IAAMN,EAAK25B,UAAU/kC,KAAK4M,aAAa,MAAM,CAAC,EAC9C,IAAM1F,EAAShH,SAASiL,eACf,MAAPC,EAPgB,eAOWA,EAAGyX,MAAM,CAAC,CACvC,EAEI3b,IACFA,EAAOif,MAAM6e,QAAU,IACvB99B,EAAO0I,aAAa,WAAY,CAAC,EACjC1I,EAAO2O,MAAM,EACb3O,EAAO+B,iBACL,OACA0qB,EAAK,KACHzsB,EAAO0I,aAAa,WAAY,CAAC,CAAC,CACpC,CAAC,CACH,EAIJ,CAKE,CACF,CAAC,C,gKCnCD,IAAMhE,EAASjN,EAAQ,sCAAsC,EAC7D,IAAMkL,EAAWlL,EAAQ,wCAAwC,EACzD8M,EAAU9M,EAAQ,gCAAgC,EAA5C,MACd,IAAgB+M,EAAW/M,EAAQ,gCAAgC,EAA5C,OACjByS,EAAYzS,EAAQ,yCAAyC,EAE7DsmC,MAAYv5B,UACZw5B,EAAS,YACTC,EAAY,YACZC,EAAa,aACbC,EAAgB,kBAChBC,EAAuB55B,EAAH,yBACpB65B,EAAc,IAAID,EAClBE,EAAkB,oBAClBC,MAA0B/5B,mDAU1Bg6B,EAAe,CAACviB,EAAI9iB,IACxB8iB,EAAGwiB,SAAStlC,GAAOuM,aAAay4B,CAAa,GAC7CliB,EAAGwiB,SAAStlC,GAAOulC,WACnBziB,EAAGwiB,SAAStlC,GAAOwP,YAQfg2B,EAAkB,CAACxlC,EAAOylC,IAAgB,CAACC,EAASC,KAExD,IAAMC,EAASP,EAAaI,EAAcC,EAAUC,EAAS3lC,CAAK,EAC5D6lC,EAASR,EAAaI,EAAcE,EAAUD,EAAS1lC,CAAK,EAGlE,OACE4lC,GACAC,GACA,CAAC5jB,OAAOC,MAAMD,OAAO2jB,CAAM,CAAC,GAC5B,CAAC3jB,OAAOC,MAAMD,OAAO4jB,CAAM,CAAC,EAErBD,EAASC,EAGXD,EAAOhV,SAAS,EAAEkV,cAAcD,EAAQ/T,UAAUiU,SAAU,CACjEC,QAAS,CAAA,EACTC,kBAAmB,CAAA,CACrB,CAAC,CACH,EAkBMC,EAAmBC,IACvB,IAAMC,EAAaD,EAAOZ,UACpBc,EAAkBF,EAAO55B,aAAas4B,CAAM,IAAMC,EAKlDwB,EAAiBF,EAAH,iCAHlBD,EAAO55B,aAAas4B,CAAM,IAAMC,GAChCqB,EAAO55B,aAAas4B,CAAM,IAAME,GAChC,CAAA,EAGOsB,EAAkB,UAAUvB,EAAc,UAAUC,EACvD,YAEAwB,sBAAwCH,QAC5CC,EAAkBtB,EAAaD,WAEjCqB,EAAO52B,aAAa,aAAc+2B,CAAW,EAC7CH,EAAOn7B,cAAck6B,CAAW,EAAE31B,aAAa,QAASg3B,CAAiB,CAC3E,EA8EMC,EAAa,CAACL,EAAQV,KAC1B,IA1GwB5f,EA0GlBA,EAAQsgB,EAAOjmC,QAAQ0kC,CAAK,EAClC/0B,IAAI42B,EAAgBhB,EAKpB,GAJ6B,WAAzB,OAAOgB,IACTA,EAAgBN,EAAO55B,aAAas4B,CAAM,IAAMC,GAG9C,CAACjf,EACH,MAAM,IAAIpnB,MAAS0mC,EAAH,qBAAuCP,CAAO,GAGhE6B,GAxEe,CAACN,EAAQV,KACxBU,EAAO52B,aAAas1B,EAAwB,CAAA,IAAhBY,EAAuBV,EAAaD,CAAS,EACzEoB,EAAgBC,CAAM,EAEtB,IAAMO,EAAQP,EAAOjmC,QAAQ0kC,CAAK,EAAE55B,cAAc,OAAO,EAYzD,IAAM27B,EAAU,GAAGnkB,MAAM3jB,KAAK6nC,EAAM3mC,iBAAiB,IAAI,CAAC,EAE1D,IAAM6mC,EADa,GAAGpkB,MAAM3jB,KAAKsnC,EAAO/lC,WAAWklC,QAAQ,EACxB98B,QAAQ29B,CAAM,EASjD,OARAQ,EAAQE,KAAKrB,EAAgBoB,EAAiB,CAACnB,CAAW,CAAC,EAAE9+B,QAASmc,IACpE,GAAGN,MACA3jB,KAAKikB,EAAGwiB,QAAQ,EAChB3+B,QAASoc,GAAOA,EAAGpS,gBAAgB,kBAAkB,CAAC,EACzDmS,EAAGwiB,SAASsB,GAAiBr3B,aAAa,mBAAoB,CAAA,CAAI,EAClEm3B,EAAMhZ,YAAY5K,CAAE,CACtB,CAAC,EAEM,CAAA,CACT,GA4C2BqjB,EAAQV,CAAW,KApHpB5f,EAuHLA,EAtHHta,EAAO45B,EAAiBtf,CAAK,EAC9B9Z,OAAQo6B,GAAWA,EAAOjmC,QAAQ0kC,CAAK,IAAM/e,CAAK,EAqHvClf,QAASmgC,IAC3BA,IAAgBX,KAvFPA,EAwFDW,GAvFTn2B,gBAAgBk0B,CAAM,EAC7BqB,EAAgBC,CAAM,EAwFpB,CAAC,GA3CoB,CAACtgB,EAAOkhB,KAC/B,IAAMC,EAAUnhB,EAAM7a,cAAc,SAAS,EAAEu6B,UACzCc,EAAkBU,EAAax6B,aAAas4B,CAAM,IAAMC,EACxDwB,EAAcS,EAAaxB,UAC3B0B,EAAaphB,EAAMoQ,mBACzB,GAAIgR,CAAAA,GAAcA,CAAAA,EAAW5nC,QAAQ+lC,CAAmB,EAMtD,MAAM,IAAI3mC,MACR,mFACF,EAPMyoC,sBAAuCF,uBAA6BV,QACxED,EAAkBvB,EAAYC,WAEhCkC,EAAW1B,UAAY2B,CAM3B,GA6BqBrhB,EAAOsgB,CAAM,EAElC,EA6BMtgB,EAAQrc,EACZ,EACG4B,GAAQ,EACN85B,GAAah8B,GACZA,EAAMoC,eAAe,EACrBk7B,EACEt9B,EAAMrC,OAAO3G,QAAQilC,CAAe,EACpCj8B,EAAMrC,OAAO3G,QAAQilC,CAAe,EAAE54B,aAAas4B,CAAM,IACvDC,CACJ,CACF,CACF,CACF,EACA,CACEr4B,KAAKC,GACH,IAYMy6B,EAZAC,EAAkB77B,EAAO45B,EAAiBz4B,CAAI,EAG9C26B,GAFND,EAAgBzgC,QAASw/B,IAAWmB,OAtCdnB,EAsCiCA,GArCrDoB,EAAW1nC,SAASqP,cAAc,QAAQ,GACvCK,aAAa,WAAY,GAAG,EACrCg4B,EAASr6B,UAAUvE,IAAIs8B,CAAiB,EAExCsC,EAAS/vB,UAAYzG,EAAU6D;gBACjBvJ;;;;;;;;;;;IAYd86B,EAAOzY,YAAY6Z,CAAQ,EAhB3BA,KAiBArB,EAAgBC,CAAM,EAnBIA,IACpBoB,CAqC2D,CAAC,EAE1CH,EAAgBr7B,OACjCo6B,GACCA,EAAO55B,aAAas4B,CAAM,IAAMC,GAChCqB,EAAO55B,aAAas4B,CAAM,IAAME,CACpC,EAAE,IACyB,KAAA,IAAhBsC,KAILF,EAAUE,EAAY96B,aAAas4B,CAAM,KAC/BC,EACd0B,EAAWa,EAAa,CAAA,CAAI,EACnBF,IAAYpC,GACrByB,EAAWa,EAAa,CAAA,CAAK,EAEjC,EACAzC,MAAAA,EACAO,gBAAAA,EACAD,YAAAA,CACF,CACF,EAEAlmC,EAAOJ,QAAUinB,C,oOCjQjB,IAAMrc,EAAWlL,EAAQ,wCAAwC,EACjE,IAAMwS,EAAkBxS,EAAQ,iDAAiD,EACjF,IAAgB+M,EAAW/M,EAAQ,gCAAgC,EAA5C,OACvB,GAAM,CACJ0S,gBAAAA,EACA6C,gBAAAA,CACF,EAAIvV,EAAQ,+BAA+B,EAGrCkpC,EAAc,KADSn8B,EAAH,gBAOpBo8B,EAAiB,CACrB17B,OACE,uEACF27B,cAAe,SACfC,gBAAiB,gBACjBC,kBAAmB,qBACrB,EAQMC,EAAmBC,IACvBj4B,IAAIk4B,EAEJ,IACgBC,EAYhB,OAJID,EATAD,IACI,CAACG,EAAOD,GAAQF,EAAQphC,MAAM,GAAG,EAAEF,IAAKkE,IAC5CmF,IAAIlI,EACEka,EAASxR,SAAS3F,EAAK,EAAE,EAE/B,OAD2B/C,EAAtBsa,OAAOC,MAAML,CAAM,EACjBla,EAD4Bka,CAErC,CAAC,EAEY,MAATomB,IAAyB,MAARD,EACD,GAARC,EAAaD,EAIpBD,CACT,EAOMG,EAAuBh9B,IAC3B,IAAMi9B,EAAej9B,EAAGhL,QAAQsnC,CAAW,EAErCY,EAAiBD,EAAan9B,cAAc,OAAO,EAEzD,GAAI,CAACo9B,EACH,MAAM,IAAI3pC,MAAS+oC,EAAH,yBAAuC,EAGzD,IAAMx0B,EAAWnT,SAASqP,cAAc,QAAQ,EAEhD,CACE,KACA,OACA,WACA,aACA,kBACA,WACA,iBACAvI,QAAS+N,IACT,IACQ/M,EADJygC,EAAe/7B,aAAaqI,CAAI,IAC5B/M,EAAQygC,EAAe77B,aAAamI,CAAI,EAC9C1B,EAASzD,aAAamF,EAAM/M,CAAK,EACjCygC,EAAez3B,gBAAgB+D,CAAI,EAEvC,CAAC,EAED,IAAM6N,EAAW,CAAC5a,EAAO7I,KAAW,OAAO6I,GAAQ6a,MAAM,CAAC1jB,CAAM,EAgB1DupC,EAAUr4B,KAAKwQ,IArFN,EAuFbqnB,EAAgBM,EAAa94B,QAAQg5B,OAAO,GAvF/B,CAwFf,EACMC,EAAUt4B,KAAKqQ,IA1FN,KA4FbwnB,EAAgBM,EAAa94B,QAAQi5B,OAAO,GA5F/B,IA6Ff,EACMC,EAAOv4B,KAAK+gB,MAChB/gB,KAAKwQ,IA5FQ,EA4FM2nB,EAAa94B,QAAQk5B,MA7FvB,EA6F2C,CAC9D,EAEA14B,IAAIwE,EACJ,IAAKxE,IAAI24B,EAAOH,EAASG,GAAQF,EAASE,GAAQD,EAAM,CA3BhCR,EA4BkCS,EA3BlDC,EAAAA,KAAAA,EAAAA,EAASV,EAAU,GACnBW,EAAS14B,KAAK+gB,MAAMgX,EAAU,EAAE,EA0BtC,GAAM,CAAEU,OAAAA,EAAQC,OAAAA,EAAQC,OAAAA,EAAQC,KAAAA,CAAK,EAtB9B,CACLH,OAAAA,EACAC,OAAAA,EACAC,OANaD,EAAS,IAAM,GAO5BE,KANWF,EAAS,GAAK,KAAO,IAOlC,EAmBM7xB,EAAShX,SAASqP,cAAc,QAAQ,EAC9C2H,EAAOlP,MAAW4a,EAASmmB,EAAQ,CAAC,EAArB,IAA0BnmB,EAASkmB,EAAQ,CAAC,EAC3D5xB,EAAO9B,KAAU4zB,EAAH,IAAapmB,EAASkmB,EAAQ,CAAC,EAAIG,EAC7C/xB,EAAO9B,OAASqzB,EAAezgC,QACjC0M,EAAewC,EAAOlP,OAExBqL,EAAS0a,YAAY7W,CAAM,CAC7B,CAEAsxB,EAAaj7B,UAAUvE,IAAIqI,CAAe,EAG1C9P,OAAON,KAAK6mC,CAAc,EAAE9gC,QAAShG,IACnCwnC,EAAa94B,QAAQ1O,GAAO8mC,EAAe9mC,EAC7C,CAAC,EACDwnC,EAAa94B,QAAQoE,iBAAmB,OACxC00B,EAAa94B,QAAQgF,aAAeA,EAEpC8zB,EAAaza,YAAY1a,CAAQ,EACjCo1B,EAAev/B,OAAO,CACxB,EAEMggC,EAAar/B,EACjB,GACA,CACEiD,KAAKC,GACHoE,EAAgB02B,EAAa96B,CAAI,EAAE/F,QAASwhC,IAC1CD,EAAoBC,CAAY,EAChCt0B,EAAgBs0B,CAAY,CAC9B,CAAC,CACH,EACAV,eAAAA,CACF,CACF,EAEAzoC,EAAOJ,QAAUiqC,C,iMClJjB,IAAMn/B,EAASpL,EAAQ,iBAAiB,EACxC,IAAMwS,EAAkBxS,EAAQ,iDAAiD,EACjF,IAAMkL,EAAWlL,EAAQ,wCAAwC,EACjD+M,EAAW/M,EAAQ,gCAAgC,EAA5C,OACvB,IAAMmN,EAAsBnN,EAAQ,8CAA8C,EAGlF,IAAMwqC,MAAcz9B,YACd09B,MAAsB19B,qBAC5B,IAAM29B,EAA2B39B,EAAH,oBACxB49B,EAAmB59B,EAAH,WAChB69B,EAAwB79B,EAAH,iBACrB89B,EAAY,SACZ/H,EAAgB,aAEhBgI,EAAwB/9B,EAAH,uBAOrBg+B,EAAsBp8B,IAC1B,IAAMq8B,EAAUr8B,EAAQ7M,WAClB23B,EAAOuR,EAAQt+B,cAAc,IAAIk+B,CAAoB,EAE3D,MAAO,CAAEj8B,QAAAA,EAASq8B,QAAAA,EAASvR,KAAAA,CAAK,CAClC,EAMMwR,EAAc,CAACC,EAAaC,EAAgBC,KAChDF,EAAYj6B,aAAa,cAAe,OAAO,EAI/Ci6B,EAAYt8B,UAAUvE,IAAIwgC,CAAS,EAUnC,IAAMQ,EAAoBC,IACxBJ,EAAYt8B,UAAUrE,OAAUqgC,EAAH,OAA4B,EACzDM,EAAYt8B,UAAUrE,OAAUqgC,EAAH,UAA+B,EAC5DM,EAAYt8B,UAAUrE,OAAUqgC,EAAH,SAA8B,EAC3DM,EAAYt8B,UAAUrE,OAAUqgC,EAAH,QAA6B,EAC1DM,EAAYt8B,UAAUvE,IAAOugC,EAAH,KAA0BU,CAAQ,CAC9D,EASMC,EAAuB9rC,IAE3BA,EAAE+nB,MAAMC,IAAM,KACdhoB,EAAE+nB,MAAMgkB,OAAS,KACjB/rC,EAAE+nB,MAAMikB,MAAQ,KAChBhsC,EAAE+nB,MAAMkkB,KAAO,KACfjsC,EAAE+nB,MAAMmkB,OAAS,IACnB,EASMC,EAAe,CAACrjC,EAAQsjC,IAC5B95B,SACEnR,OAAOk5B,iBAAiBvxB,CAAM,EAAEwxB,iBAAiB8R,CAAa,EAC9D,EACF,EAeIC,EAAwB,CAC5BC,EACAC,EACAr9B,IAGsD,EAApDi9B,EAAaj9B,EAAS,UAAUo9B,CAAgB,EAC5CC,EAAoBJ,EAAaj9B,EAAS,UAAUo9B,CAAgB,EACpEC,EASFC,EAAexsC,IACnB8rC,EAAoB9rC,CAAC,EAGrB,IAAMysC,EAAYJ,EAChB,MACArsC,EAAEuX,aACFm0B,CACF,EAEMgB,EAAaL,EACjB,OACArsC,EAAE2sC,YACFjB,CACF,EAEAE,EAAiB,KAAK,EACtB5rC,EAAE+nB,MAAMkkB,KAAO,MACfjsC,EAAE+nB,MAAMC,IAAM,OAEdhoB,EAAE+nB,MAAMmkB,WAAaO,YAAoBC,EAAa,KACxD,EAMME,EAAkB5sC,IACtB8rC,EAAoB9rC,CAAC,EAErB,IAAM0sC,EAAaL,EACjB,OACArsC,EAAE2sC,YACFjB,CACF,EAEAE,EAAiB,QAAQ,EACzB5rC,EAAE+nB,MAAMkkB,KAAO,MACfjsC,EAAE+nB,MAAMmkB,mBAAoCQ,EAAa,KAC3D,EAMMG,EAAiB7sC,IACrB8rC,EAAoB9rC,CAAC,EAErB,IAAMysC,EAAYJ,EAChB,MACArsC,EAAEuX,aACFm0B,CACF,EAEAE,EAAiB,OAAO,EACxB5rC,EAAE+nB,MAAMC,IAAM,MACdhoB,EAAE+nB,MAAMkkB,KACNP,EAAeoB,WAAapB,EAAeiB,YA9J3B,EA6JH,KAGf3sC,EAAE+nB,MAAMmkB,WAAaO,EAAY,WACnC,EAMMM,EAAgB/sC,IACpB8rC,EAAoB9rC,CAAC,EAErB,IAAMysC,EAAYJ,EAChB,MACArsC,EAAEuX,aACFm0B,CACF,EAGMgB,EAAaL,EACjB,OACAX,EAAeoB,WAAa9sC,EAAE2sC,YAC1BjB,EAAeoB,WAAa9sC,EAAE2sC,YAC9B3sC,EAAE2sC,YACNjB,CACF,EAEAE,EAAiB,MAAM,EACvB5rC,EAAE+nB,MAAMC,IAAM,MACdhoB,EAAE+nB,MAAMkkB,KAAO,OACfjsC,EAAE+nB,MAAMmkB,WAAaO,EAAY,WAC/Bf,EAAeoB,WAAa9sC,EAAE2sC,YAAcD,EAAa,CAACA,KAE9D,EAaA,SAASM,EAAiBrrC,EAASsrC,EAAU,GAE3C,IAAMC,EAAY,CAChBV,EACAI,EACAC,EACAE,GAGEI,EAAqB,CAAA,EAiBzBC,CAdA,SAASA,EAAahtC,GAChBA,EAAI8sC,EAAUnsC,UAEhBu1B,EADY4W,EAAU9sC,IAClBuB,CAAO,EAEN+L,EAAoB/L,CAAO,EAI9BwrC,EAAqB,CAAA,EAFrBC,EAAchtC,GAAK,CAAE,EAK3B,EAEa,CAAC,EAET+sC,IACHxrC,EAAQwN,UAAUvE,IAAIygC,CAAkB,EACpC4B,GAhCY,GAkCdD,EAAiBrrC,EAAUsrC,GAAW,CAAE,EAG9C,CAEA,OAAQtB,GACN,IAAK,MACHa,EAAYf,CAAW,EAClB/9B,EAAoB+9B,CAAW,GAClCuB,EAAiBvB,CAAW,EAE9B,MACF,IAAK,SACHmB,EAAenB,CAAW,EACrB/9B,EAAoB+9B,CAAW,GAClCuB,EAAiBvB,CAAW,EAE9B,MACF,IAAK,QACHoB,EAAcpB,CAAW,EACpB/9B,EAAoB+9B,CAAW,GAClCuB,EAAiBvB,CAAW,EAE9B,MACF,IAAK,OACHsB,EAAatB,CAAW,EACnB/9B,EAAoB+9B,CAAW,GAClCuB,EAAiBvB,CAAW,CAOlC,CAMA5W,WAAW,KACT4W,EAAYt8B,UAAUvE,IAAIy4B,CAAa,CACzC,EAAG,EAAE,CACP,EASMgK,EAAe5B,IACnBA,EAAYt8B,UAAUrE,OAAOu4B,CAAa,EAC1CoI,EAAYt8B,UAAUrE,OAAOsgC,CAAS,EACtCK,EAAYt8B,UAAUrE,OAAOugC,CAAkB,EAC/CI,EAAYj6B,aAAa,cAAe,MAAM,CAChD,EAMM87B,EAAmB5B,IACvB,IAAM6B,EAAY,YAAWt7B,KAAK+gB,MAAsB,IAAhB/gB,KAAKgmB,OAAO,CAAU,EAAI,KAC5DuV,EAAiB9B,EAAel9B,aAAa,OAAO,EAC1D,IAAM+8B,EAAUzpC,SAASqP,cAAc,MAAM,EAC7C,IAAMs6B,EAAc3pC,SAASqP,cAAc,MAAM,EAC3Cs8B,EAAoB/B,EAAel9B,aAAa,cAAc,EACpEsD,IAAI65B,EAAWD,EAAel9B,aAAa,eAAe,EAsC1D,OAnCKm9B,IACHA,EAAW,MACXD,EAAel6B,aAAa,gBAAiBm6B,CAAQ,GAIvDD,EAAel6B,aAAa,mBAAoB+7B,CAAS,EACzD7B,EAAel6B,aAAa,WAAY,GAAG,EAC3Ck6B,EAAe94B,gBAAgB,OAAO,EACtC84B,EAAev8B,UAAUrE,OAAOogC,CAAa,EAC7CQ,EAAev8B,UAAUvE,IAAIqgC,CAAqB,EAGlDS,EAAerpC,WAAWsxB,aAAa4X,EAASG,CAAc,EAG9DH,EAAQ5b,YAAY+b,CAAc,EAClCH,EAAQp8B,UAAUvE,IAAIsgC,CAAa,EACnCK,EAAQ5b,YAAY8b,CAAW,EAG3BgC,GACmBA,EAAkB9kC,MAAM,GAAG,EACnCC,QAAS8kC,GAAcnC,EAAQp8B,UAAUvE,IAAI8iC,CAAS,CAAC,EAItEjC,EAAYt8B,UAAUvE,IAAIugC,CAAkB,EAC5CM,EAAYj6B,aAAa,KAAM+7B,CAAS,EACxC9B,EAAYj6B,aAAa,OAAQ,SAAS,EAC1Ci6B,EAAYj6B,aAAa,cAAe,MAAM,EAG9Ci6B,EAAYh6B,YAAc+7B,EAEnB,CAAE/B,YAAAA,EAAaE,SAAAA,EAAU6B,eAAAA,EAAgBjC,QAAAA,CAAQ,CAC1D,EAiBMoC,EAAUliC,EACd,CACEmiC,oBAAqB,EAClB7C,GAAS/qC,GACFkP,EAAUlP,EAAE8I,OAIE,WAHAoG,EAAQm2B,UAGIn2B,EAAQZ,aAAa,OAAO,GAC1Dg/B,EAAgBp+B,CAAO,CAE3B,GACC87B,GAAiBhrC,GAChB,GAAM,CAAEkP,QAAAA,EAAS8qB,KAAAA,CAAK,EAAIsR,EAAmBtrC,EAAE8I,MAAM,EAErD0iC,EAAYxR,EAAM9qB,EAASA,EAAQoC,QAAQq6B,QAAQ,CACrD,CACF,EACAjxB,SAAU,EACPswB,GAAiBhrC,GACRg6B,EAASsR,EAAmBtrC,EAAE8I,MAAM,EAA/B,KAEbukC,EAAYrT,CAAI,CAClB,CACF,EACA3qB,QAAS,CACP2qB,KAAQruB,EAAO,CAAEiP,OArCF,KACnB,IAAMizB,EAAiB96B,MAAoBo4B,KAAsBC,CAAW,EAEvEyC,GAILA,EAAejlC,QAASklC,GAAkBT,EAAYS,CAAa,CAAC,CACtE,CA6B4C,CAAC,CACzC,CACF,EACA,CACEp/B,KAAKC,GACHoE,EAAgBg4B,EAASp8B,CAAI,EAAE/F,QAAS8iC,IACtC4B,EAAgB5B,CAAc,EAE9B,GAAM,CAAE1R,KAAAA,EAAMuR,QAAAA,CAAQ,EAAID,EAAmBI,CAAc,EAC3DH,EAAQ1gC,iBAAiB,aAAc,IAAMwiC,EAAYrT,CAAI,CAAC,CAChE,CAAC,CACH,EACA7C,SAASxoB,GACPoE,EAAgBg4B,EAASp8B,CAAI,EAAE/F,QAASmlC,IACtCA,EAAehjC,oBAAoB,aAAcsiC,CAAW,CAC9D,CAAC,CACH,EACAW,MAAOV,EACPhC,mBAAAA,EACA18B,KAAM48B,EACN38B,KAAMw+B,CACR,CACF,EAEApsC,EAAOJ,QAAU8sC,C,qOC1ajB,IAAMliC,EAAWlL,EAAQ,wCAAwC,EACjE,IAAM0tC,EAAW1tC,EAAQ,8CAA8C,EACvE,IAAgB+M,EAAW/M,EAAQ,gCAAgC,EAA5C,OACvB,IAAMwS,EAAkBxS,EAAQ,iDAAiD,EAE3E2tC,EACJ,mEACIC,MAAqB7gC,oBAwCrB8gC,EAAqBt7B,IAlCEA,IAAAA,EAiBAA,EAErBu7B,EACAC,EAnBAC,GADqBz7B,EAmCPA,GAlCczQ,WAE5BmsC,EADU17B,EAAMtE,aAAa,IAAI,EACf,cACxBsE,EAAMtB,aAAa,mBAAoBg9B,CAAe,GAEhDC,EAAyB3sC,SAASqP,cAAc,MAAM,GAErCK,aAAa,yBAA0B,EAAE,EAChEi9B,EAAuBt/B,UAAUvE,IAAI,aAAa,EAClD6jC,EAAuBj9B,aAAa,YAAa,QAAQ,EACzDi9B,EAAuBj9B,aAAa,cAAe,CAAA,CAAI,EACvDi9B,EAAuBj9B,aAAa,KAAMg9B,CAAe,EACzDD,EAAoB78B,OAAO+8B,CAAsB,EAM3CJ,GAFqBv7B,EAmBPA,GAlBczQ,WACSL,iBAAiBmsC,CAAc,EACpEG,EAAoBx7B,EAAMtE,aAAa,yBAAyB,EAEtEsE,EAAMtB,aAAa,gBAAiB88B,CAAiB,EAErDD,EAAezlC,QAASw2B,IACtBttB,IAAI48B,EAAgB,oBAChB57B,EAAMxE,aAAa,4BAA4B,IACjDogC,EAAgB57B,EAAMtE,aAAa,4BAA4B,GAEjE,IAAMmgC,KAAgBvP,EAAS3tB,eAAei9B,KAC9CtP,EAAS5tB,aAAa,aAAcm9B,CAAU,CAChD,CAAC,CAMH,EAEMC,EAAYnjC,EAChB,CACEmlB,eAAgB,CACdie,mEAAiB1jC,GA7CDgC,EA8CDhC,EAAMrC,OA9CEmlC,EAAS9gC,CAAE,CA+ClC,CACF,CACF,EACA,CACEuB,KAAKC,GACHoE,EAAgBm7B,EAAgBv/B,CAAI,EAAE/F,QAASkK,GAC7Cs7B,EAAkBt7B,CAAK,CACzB,CACF,CACF,CACF,EAEA7R,EAAOJ,QAAU+tC,C,gNCrEjB3tC,EAAOJ,QAAU,CACfiuC,OAAQ,KACV,C,0BCFA7tC,EAAOJ,QAAU,CAafwM,MAAO,OACT,C,0BCdA,IAAMU,EAAYxN,EAAQ,kCAAkC,EACtDwuC,EAASxuC,EAAQ,+BAA+B,EAChD0N,EAAS1N,EAAQ,+BAA+B,EAChDsS,EAAiBtS,EAAQ,wCAAwC,EACjEia,EAAWja,EAAQ,kCAAkC,EACrD+uB,EAAa/uB,EAAQ,oCAAoC,EACzDowB,EAAkBpwB,EAAQ,0CAA0C,EACpE22B,EAAY32B,EAAQ,mCAAmC,EACvDyuC,EAASzuC,EAAQ,+BAA+B,EAChD0/B,EAAmB1/B,EAAQ,2CAA2C,EACtEshC,EAAYthC,EAAQ,mCAAmC,EACvD8hC,EAAmB9hC,EAAQ,0CAA0C,EACrEgjC,EAAQhjC,EAAQ,8BAA8B,EAC9Cq5B,EAAar5B,EAAQ,+BAA+B,EACpD0uC,EAAW1uC,EAAQ,kCAAkC,EACrDwlC,EAAQxlC,EAAQ,8BAA8B,EAC9CkmC,EAASlmC,EAAQ,+BAA+B,EAChD2uC,EAAU3uC,EAAQ,gCAAgC,EAClDunB,EAAQvnB,EAAQ,8BAA8B,EAC9CuqC,EAAavqC,EAAQ,oCAAoC,EACzDotC,EAAUptC,EAAQ,gCAAgC,EAClDquC,EAAYruC,EAAQ,mCAAmC,EAE7DU,EAAOJ,QAAU,CACfkN,UAAAA,EACAghC,OAAAA,EACA9gC,OAAAA,EACA4E,eAAAA,EACA2H,SAAAA,EACA8U,WAAAA,EACAqB,gBAAAA,EACAuG,UAAAA,EACA8X,OAAAA,EACA/O,iBAAAA,EACA4B,UAAAA,EACAQ,iBAAAA,EACAkB,MAAAA,EACA3J,WAAAA,EACAqV,SAAAA,EACAlJ,MAAAA,EACAU,OAAAA,EACAyI,QAAAA,EACApnB,MAAAA,EACAgjB,WAAAA,EACA6C,QAAAA,EACAiB,UAAAA,CACF,C,o2BC9CAztC,OAAOguC,aAAe,CAAA,EAEtB,IAAMC,EAAQ7uC,EAAQ,UAAU,EAEhC,IAAM8uC,EAAa9uC,EAAQ,SAAS,EAEpC6uC,EAAMC,WAAaA,EAEbC,EAAiB,KACrB,IAAMxmC,EAAShH,SAASk4B,KACxB72B,OAAON,KAAKwsC,CAAU,EAAEzmC,QAAShG,IACdysC,EAAWzsC,GACnB2sC,GAAGzmC,CAAM,CACpB,CAAC,CACH,EAE4B,YAAxBhH,SAAS0tC,WACX1tC,SAAS+I,iBAAiB,mBAAoBykC,EAAgB,CAAE/Z,KAAM,CAAA,CAAK,CAAC,EAE5E+Z,EAAe,EAGjBzuC,EAAQ4uC,QAAUL,EAClBvuC,EAAQyuC,eAAiBA,C,oDCvBzBruC,EAAOJ,QAAU,CAAC6uC,EAAe5tC,WAAa4tC,EAAar0B,a,0BCA3D,IAAMs0B,EAAWpvC,EAAQ,mBAAmB,EAStCqvC,EAAW,IAAIC,IACnB,SAAmB/mC,EAAShH,SAASk4B,MACnC6V,EAAIjnC,QAASknC,IACiB,YAAxB,OAAOluC,KAAKkuC,IACdluC,KAAKkuC,GAAQhvC,KAAKc,KAAMkH,CAAM,CAElC,CAAC,CACH,EAQF7H,EAAOJ,QAAU,CAACgJ,EAAQC,IACxB6lC,EAAS9lC,EAAQ,CACf0lC,GAAIK,EAAS,OAAQ,KAAK,EAC1BG,IAAKH,EAAS,WAAY,QAAQ,EAClC,GAAG9lC,CACL,CAAC,C,+CCpBH7I,EAAOJ,QAAU,SAAkBmvC,EAAUC,EAAQ,KACnDn+B,IAAIo+B,EAAQ,KACZ,MAAO,IAAIC,KACThvC,OAAOivC,aAAaF,CAAK,EACzBA,EAAQ/uC,OAAO0zB,WAAW,KACxBmb,EAASK,MAAMzuC,KAAMuuC,CAAI,CAC3B,EAAGF,CAAK,CACV,CACF,C,0BCjBA,IAAQtkC,EAAWpL,EAAQ,UAAU,EAAtB,OACTkL,EAAWlL,EAAQ,YAAY,EAC/BiN,EAASjN,EAAQ,UAAU,EAC3B8a,EAAgB9a,EAAQ,kBAAkB,EAK1C6sB,EAAciZ,IAClB,IAAM9Y,EAAoB/f,EAH1B,iLAG4C64B,CAAO,EAC7C5Y,EAAeF,EAAkB,GACjCG,EAAcH,EAAkBA,EAAkBxsB,OAAS,GAyBjE,MAAO,CACL0sB,aAAAA,EACAC,YAAAA,EACAK,SAxBF,SAAkB5iB,GACZkQ,EAAc,IAAMqS,IACtBviB,EAAMoC,eAAe,EACrBkgB,EAAahW,MAAM,EAEvB,EAoBEuW,QAlBF,SAAiB7iB,GACXkQ,EAAc,IAAMoS,GACtBtiB,EAAMoC,eAAe,EACrBmgB,EAAYjW,MAAM,GAKV8V,EAAkB2M,SAAS7e,EAAc,CAAC,IAClDlQ,EAAMoC,eAAe,EACrBkgB,EAAahW,MAAM,EAEvB,CAOA,CACF,EAEAxW,EAAOJ,QAAU,CAACwlC,EAASiK,EAAwB,MACjD,IAAMC,EAAkBnjB,EAAWiZ,CAAO,EAC1C,GACM,CAAEmK,IAAAA,EAAK51B,OAAAA,CAAO,EADH01B,EAQXG,GALF71B,GAAU,CAAC41B,IAHEF,EAGYE,IAAM51B,GAKfjP,EAAO,CACzByjB,IAAKmhB,EAAgBxiB,SACrB7S,YAAaq1B,EAAgBviB,QAC7B,GAAGsiB,CACL,CAAC,GAwBD,OAtBkB7kC,EAChB,CACE4D,QAASohC,CACX,EACA,CACE/hC,OAGM6hC,EAAgB9iB,cAClB8iB,EAAgB9iB,aAAahW,MAAM,CAEvC,EACA0jB,OAAOpB,GACDA,EACFn4B,KAAK2tC,GAAG,EAER3tC,KAAKmuC,IAAI,CAEb,CACF,CACF,CAGF,C,wFCnEA9uC,EAAOJ,QAfP,SACEsM,EACAujC,EAAMvvC,OACNwvC,EAAQ7uC,SAAS8uC,iBAIjB,OACc,IAHRC,EAAO1jC,EAAGquB,sBAAsB,GAG/BxT,KACQ,GAAb6oB,EAAK5E,MACL4E,EAAK9E,SAAW2E,EAAII,aAAeH,EAAMI,eACzCF,EAAK7E,QAAU0E,EAAIpY,YAAcqY,EAAMK,YAE3C,C,0BCJA/vC,EAAOJ,QATP,WACE,MACuB,aAArB,OAAOkzB,YACNA,UAAUC,UAAU5pB,MAAM,qBAAqB,GACtB,aAAvB2pB,UAAUkd,UAAsD,EAA3Bld,UAAUmd,iBAClD,CAAC/vC,OAAOgwC,QAEZ,C,0BCSElwC,EAAOJ,SACN,KAGD,IAAImS,EAAY,CACdo+B,QAAS,YAETC,UAAW,CACTC,IAAK,QACLC,IAAK,OACLC,IAAK,OACLC,IAAK,SACLC,IAAK,SACLC,IAAK,QACP,EAEAC,UAAW,SAAUxoC,GACnB,OAAO4J,EAAUq+B,UAAUjoC,EAC7B,EAKAyN,WAAY,SAAUg7B,GAGpB,IAFA,IAAI1lC,EAAS,GAEJ/L,EAAI,EAAGA,EAAIyxC,EAAQ9wC,OAAQX,CAAC,GACnC+L,GAAU0lC,EAAQzxC,GACdA,EAAI,EAAIiJ,UAAUtI,SAEpBoL,GAAU1E,OADE4B,UAAUjJ,EAAI,IAAM,EACV,EAAEwM,QACtBoG,EAAUo+B,QACVp+B,EAAU4+B,SACZ,GAIJ,OAAOzlC,CACT,EAIA2lC,eAAgB,SAAUD,GAGxB,IAFA,IAAIE,EAAO1oC,UAAUtI,OACjBixC,EAAS,IAAIhvC,MAAa,EAAP+uC,EAAWA,EAAO,EAAI,CAAC,EACrC3lC,EAAO,EAAGA,EAAO2lC,EAAM3lC,CAAI,GAClC4lC,EAAO5lC,EAAO,GAAK/C,UAAU+C,GAO/B,MAAO,CACL6lC,OALYj/B,EAAU6D,WAAWw5B,MACjCr9B,EACA,CAAC6+B,GAASlnC,OAAOqnC,CAAM,CACzB,EAGEnf,SAAU,WACR,MAAO,4BACT,EACAqf,KACE,0HAEJ,CACF,EAKAC,eAAgB,WAGd,IAFA,IAAIJ,EAAO1oC,UAAUtI,OACjBqxC,EAAc,IAAIpvC,MAAM+uC,CAAI,EACvB3lC,EAAO,EAAGA,EAAO2lC,EAAM3lC,CAAI,GAClCgmC,EAAYhmC,GAAQ/C,UAAU+C,GAMhC,OAHiBgmC,EAAY3pC,IAAI,SAAUkB,GACzC,OAAOA,EAAIsoC,MACb,CAAC,EACiBvpC,KAAK,EAAE,CAC3B,CACF,EAEA,OAAOsK,CACT,GAlF2B,C,0BCjB3B/R,EAAOJ,QAAU,WAEf,IAAMwxC,EAAQvwC,SAASqP,cAAc,KAAK,EAOpCmhC,GANND,EAAMtqB,MAAMwqB,WAAa,SACzBF,EAAMtqB,MAAMyqB,SAAW,SACvBH,EAAMtqB,MAAM0qB,gBAAkB,YAC9B3wC,SAASk4B,KAAKrK,YAAY0iB,CAAK,EAGjBvwC,SAASqP,cAAc,KAAK,GAIpCuhC,GAHNL,EAAM1iB,YAAY2iB,CAAK,EAGGD,EAAM1F,YAAc2F,EAAM3F,YAA7B,MAKvB,OAFA0F,EAAMhwC,WAAWmyB,YAAY6d,CAAK,EAE3BK,CACT,C,0BCnBA,IAAMllC,EAASjN,EAAQ,UAAU,EAkBjCU,EAAOJ,QAAU,CAACa,EAAU2kC,KAC1B,IAZiBz8B,EAYX+oC,EAAYnlC,EAAO9L,EAAU2kC,CAAO,EAS1C,MARwB,UAApB,OAAO3kC,IAbMkI,EAiBHy8B,IAhBY,UAAjB,OAAOz8B,GAAyC,IAAnBA,EAAMxH,UAgBlBikC,EAAQ/kC,QAAQI,CAAQ,GAChDixC,EAAUpnC,KAAK86B,CAAO,EAGjBsM,CACT,C,uCCZA1xC,EAAOJ,QAAU,CAACa,EAAU2kC,KAC1B,IAQMsM,EARN,MAAwB,UAApB,OAAOjxC,EACF,IAOHixC,GAHJtM,EADGA,IAhBYz8B,EAgBUy8B,IAfD,UAAjB,OAAOz8B,GAAyC,IAAnBA,EAAMxH,SAmB1BikC,EAHNllC,OAAOW,UAGOE,iBAAiBN,CAAQ,EAC5CsB,MAAM3B,UAAUojB,MAAM3jB,KAAK6xC,CAAS,EAC7C,C,0BCvBA1xC,EAAOJ,QAAU,CAAC+xC,EAAOC,KACvBD,EAAMphC,aAAa,iBAAkB,KAAK,EAC1CohC,EAAMphC,aAAa,cAAe,KAAK,EACvCohC,EAAMphC,aAAa,OAAQqhC,EAAO,WAAa,MAAM,CACvD,C,0BCTA,IAAMC,EAAgBvyC,EAAQ,iBAAiB,EACzCwyC,EAAkBxyC,EAAQ,qBAAqB,EAG/CyyC,EAAU,eACVC,EAAY,iBAoBlBhyC,EAAOJ,QAAWsM,IAIhB,IAAM+lC,EACJ/lC,EAAGmB,aAAa0kC,CAAO,GAAkC,SAA7B7lC,EAAGqB,aAAawkC,CAAO,EAEtCF,EAAc3lC,EAAGqB,aA7BjB,eA6BsC,CAAC,EAC/C5F,QAASgqC,GAAUG,EAAgBH,EAAOM,CAAO,CAAC,EAEpD/lC,EAAGmB,aAAa2kC,CAAS,GAC5B9lC,EAAGqE,aAAayhC,EAAW9lC,EAAGsE,WAAW,EAJ3C,IAOM0hC,EAAWhmC,EAAGqB,aAAaykC,CAAS,EACpCG,EAAWjmC,EAAGqB,aAlCJ,gBAkC0B,GAAiB2kC,EA1BlDvmC,QAAQ,YAAcgC,MAAwB,MAAZA,EAAK,GAAa,IAAM,QAAQ,EA8B3E,OAFAzB,EAAGsE,YAAcyhC,EAAUC,EAAWC,EACtCjmC,EAAGqE,aAAawhC,EAASE,CAAO,EACzBA,CACT,C,uEC7CA,IAAMrlC,EAAW,gBAIjB5M,EAAOJ,QAAU,CAACoN,EAAQE,KACxB2D,IAAI1D,EAAeD,EAES,WAAxB,OAAOC,IACTA,EAAiD,UAAlCH,EAAOO,aAAaX,CAAQ,GAG7CI,EAAOuD,aAAa3D,EAAUO,CAAY,EAEpCpB,EAAKiB,EAAOO,aAZH,eAYwB,EACjC6kC,EAAWvxC,SAASiL,eAAeC,CAAE,EAC3C,GAAKqmC,EAUL,OANIjlC,EACFilC,EAASzgC,gBAlBE,QAkBoB,EAE/BygC,EAAS7hC,aApBE,SAoBmB,EAAE,EAG3BpD,EATL,MAAM,IAAI1N,0CAA0CsM,IAAK,CAU7D,C,0BC1BA,IAAMyC,EAAWlP,EAAQ,YAAY,EACrB+M,EAAW/M,EAAQ,WAAW,EAAvB,OAEvB,IAAM+yC,EAAmBhmC,EAAH,4BAEtBrM,EAAOJ,QAAU,SAAkBsM,GACjC,IAAMH,EAAKG,EAAGmE,QAAQg9B,kBACtB,IAAMiF,EACa,MAAjBvmC,EAAGwmC,OAAO,CAAC,EACP1xC,SAASmL,cAAcD,CAAE,EACzBlL,SAASiL,eAAeC,CAAE,EAEhC,GAAI,CAACumC,EACH,MAAM,IAAI7yC,+CAA+CsM,IAAK,EAGhE8E,IAAI2hC,EAAgB,GACpBtwC,OAAOuwC,QAAQvmC,EAAGmE,OAAO,EAAE1I,QAAQ,CAAA,CAAEhG,EAAKgH,MACxC,GAAIhH,EAAIoW,WAAW,UAAU,EAAG,CAC9B,IAAM26B,EAAgB/wC,EAAI6+B,OAAO,WAAW1gC,MAAM,EAAE4G,YAAY,EAC1DisC,EAAmB,IAAIz7B,OAAOvO,CAAK,EACnCiqC,sBAAwCF,MACxCG,EAAoBP,EAAUtmC,cAAc4mC,CAAiB,EAEnE,IAAMpF,EADkBthC,EAAG9K,WACoB4K,cAC7C,0BACF,EAEM8mC,EAAUH,EAAiB76B,KAAK5L,EAAGvD,KAAK,EAG9C,GAFAkqC,EAAkB3kC,UAAU1B,OAAO6lC,EAAeS,CAAO,EAErD,CAACD,EACH,MAAM,IAAIpzC,2CAA2CizC,IAAgB,EAIjEK,EAAiB7mC,EAAGmE,QAAQ2iC,oBAAsB,kBAClDC,EACJ/mC,EAAGmE,QAAQ6iC,sBAAwB,oBACrCriC,IAAIsiC,EAAqBN,EAAkBriC,YAArB,IAElBqiC,EAAkB3kC,UAAU3D,SAAS8nC,CAAa,EACpDc,GAAmBJ,EAEnBI,GAAmBF,EAIrBJ,EAAkBtiC,aAAa,aAAc4iC,CAAe,EAG5DX,GAAoBW,EAAH,KAGM3kC,EAAS,KAC9Bg/B,EAAuBh9B,YAAcgiC,CACvC,EAAG,GAAI,EAEQ,CACjB,CACF,CAAC,CACH","file":"uswds.min.js","sourcesContent":["(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()","// element-closest | CC0-1.0 | github.com/jonathantneal/closest\n\n(function (ElementProto) {\n\tif (typeof ElementProto.matches !== 'function') {\n\t\tElementProto.matches = ElementProto.msMatchesSelector || ElementProto.mozMatchesSelector || ElementProto.webkitMatchesSelector || function matches(selector) {\n\t\t\tvar element = this;\n\t\t\tvar elements = (element.document || element.ownerDocument).querySelectorAll(selector);\n\t\t\tvar index = 0;\n\n\t\t\twhile (elements[index] && elements[index] !== element) {\n\t\t\t\t++index;\n\t\t\t}\n\n\t\t\treturn Boolean(elements[index]);\n\t\t};\n\t}\n\n\tif (typeof ElementProto.closest !== 'function') {\n\t\tElementProto.closest = function closest(selector) {\n\t\t\tvar element = this;\n\n\t\t\twhile (element && element.nodeType === 1) {\n\t\t\t\tif (element.matches(selector)) {\n\t\t\t\t\treturn element;\n\t\t\t\t}\n\n\t\t\t\telement = element.parentNode;\n\t\t\t}\n\n\t\t\treturn null;\n\t\t};\n\t}\n})(window.Element.prototype);\n","/* global define, KeyboardEvent, module */\n\n(function () {\n\n  var keyboardeventKeyPolyfill = {\n    polyfill: polyfill,\n    keys: {\n      3: 'Cancel',\n      6: 'Help',\n      8: 'Backspace',\n      9: 'Tab',\n      12: 'Clear',\n      13: 'Enter',\n      16: 'Shift',\n      17: 'Control',\n      18: 'Alt',\n      19: 'Pause',\n      20: 'CapsLock',\n      27: 'Escape',\n      28: 'Convert',\n      29: 'NonConvert',\n      30: 'Accept',\n      31: 'ModeChange',\n      32: ' ',\n      33: 'PageUp',\n      34: 'PageDown',\n      35: 'End',\n      36: 'Home',\n      37: 'ArrowLeft',\n      38: 'ArrowUp',\n      39: 'ArrowRight',\n      40: 'ArrowDown',\n      41: 'Select',\n      42: 'Print',\n      43: 'Execute',\n      44: 'PrintScreen',\n      45: 'Insert',\n      46: 'Delete',\n      48: ['0', ')'],\n      49: ['1', '!'],\n      50: ['2', '@'],\n      51: ['3', '#'],\n      52: ['4', '$'],\n      53: ['5', '%'],\n      54: ['6', '^'],\n      55: ['7', '&'],\n      56: ['8', '*'],\n      57: ['9', '('],\n      91: 'OS',\n      93: 'ContextMenu',\n      144: 'NumLock',\n      145: 'ScrollLock',\n      181: 'VolumeMute',\n      182: 'VolumeDown',\n      183: 'VolumeUp',\n      186: [';', ':'],\n      187: ['=', '+'],\n      188: [',', '<'],\n      189: ['-', '_'],\n      190: ['.', '>'],\n      191: ['/', '?'],\n      192: ['`', '~'],\n      219: ['[', '{'],\n      220: ['\\\\', '|'],\n      221: [']', '}'],\n      222: [\"'\", '\"'],\n      224: 'Meta',\n      225: 'AltGraph',\n      246: 'Attn',\n      247: 'CrSel',\n      248: 'ExSel',\n      249: 'EraseEof',\n      250: 'Play',\n      251: 'ZoomOut'\n    }\n  };\n\n  // Function keys (F1-24).\n  var i;\n  for (i = 1; i < 25; i++) {\n    keyboardeventKeyPolyfill.keys[111 + i] = 'F' + i;\n  }\n\n  // Printable ASCII characters.\n  var letter = '';\n  for (i = 65; i < 91; i++) {\n    letter = String.fromCharCode(i);\n    keyboardeventKeyPolyfill.keys[i] = [letter.toLowerCase(), letter.toUpperCase()];\n  }\n\n  function polyfill () {\n    if (!('KeyboardEvent' in window) ||\n        'key' in KeyboardEvent.prototype) {\n      return false;\n    }\n\n    // Polyfill `key` on `KeyboardEvent`.\n    var proto = {\n      get: function (x) {\n        var key = keyboardeventKeyPolyfill.keys[this.which || this.keyCode];\n\n        if (Array.isArray(key)) {\n          key = key[+this.shiftKey];\n        }\n\n        return key;\n      }\n    };\n    Object.defineProperty(KeyboardEvent.prototype, 'key', proto);\n    return proto;\n  }\n\n  if (typeof define === 'function' && define.amd) {\n    define('keyboardevent-key-polyfill', keyboardeventKeyPolyfill);\n  } else if (typeof exports !== 'undefined' && typeof module !== 'undefined') {\n    module.exports = keyboardeventKeyPolyfill;\n  } else if (window) {\n    window.keyboardeventKeyPolyfill = keyboardeventKeyPolyfill;\n  }\n\n})();\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc');  // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","const assign = require('object-assign');\nconst delegate = require('../delegate');\nconst delegateAll = require('../delegateAll');\n\nconst DELEGATE_PATTERN = /^(.+):delegate\\((.+)\\)$/;\nconst SPACE = ' ';\n\nconst getListeners = function(type, handler) {\n  var match = type.match(DELEGATE_PATTERN);\n  var selector;\n  if (match) {\n    type = match[1];\n    selector = match[2];\n  }\n\n  var options;\n  if (typeof handler === 'object') {\n    options = {\n      capture: popKey(handler, 'capture'),\n      passive: popKey(handler, 'passive')\n    };\n  }\n\n  var listener = {\n    selector: selector,\n    delegate: (typeof handler === 'object')\n      ? delegateAll(handler)\n      : selector\n        ? delegate(selector, handler)\n        : handler,\n    options: options\n  };\n\n  if (type.indexOf(SPACE) > -1) {\n    return type.split(SPACE).map(function(_type) {\n      return assign({type: _type}, listener);\n    });\n  } else {\n    listener.type = type;\n    return [listener];\n  }\n};\n\nvar popKey = function(obj, key) {\n  var value = obj[key];\n  delete obj[key];\n  return value;\n};\n\nmodule.exports = function behavior(events, props) {\n  const listeners = Object.keys(events)\n    .reduce(function(memo, type) {\n      var listeners = getListeners(type, events[type]);\n      return memo.concat(listeners);\n    }, []);\n\n  return assign({\n    add: function addBehavior(element) {\n      listeners.forEach(function(listener) {\n        element.addEventListener(\n          listener.type,\n          listener.delegate,\n          listener.options\n        );\n      });\n    },\n    remove: function removeBehavior(element) {\n      listeners.forEach(function(listener) {\n        element.removeEventListener(\n          listener.type,\n          listener.delegate,\n          listener.options\n        );\n      });\n    }\n  }, props);\n};\n","module.exports = function compose(functions) {\n  return function(e) {\n    return functions.some(function(fn) {\n      return fn.call(this, e) === false;\n    }, this);\n  };\n};\n","// polyfill Element.prototype.closest\nrequire('element-closest');\n\nmodule.exports = function delegate(selector, fn) {\n  return function delegation(event) {\n    var target = event.target.closest(selector);\n    if (target) {\n      return fn.call(target, event);\n    }\n  }\n};\n","const delegate = require('../delegate');\nconst compose = require('../compose');\n\nconst SPLAT = '*';\n\nmodule.exports = function delegateAll(selectors) {\n  const keys = Object.keys(selectors)\n\n  // XXX optimization: if there is only one handler and it applies to\n  // all elements (the \"*\" CSS selector), then just return that\n  // handler\n  if (keys.length === 1 && keys[0] === SPLAT) {\n    return selectors[SPLAT];\n  }\n\n  const delegates = keys.reduce(function(memo, selector) {\n    memo.push(delegate(selector, selectors[selector]));\n    return memo;\n  }, []);\n  return compose(delegates);\n};\n","module.exports = function ignore(element, fn) {\n  return function ignorance(e) {\n    if (element !== e.target && !element.contains(e.target)) {\n      return fn.call(this, e);\n    }\n  };\n};\n","module.exports = {\n  behavior:     require('./behavior'),\n  delegate:     require('./delegate'),\n  delegateAll:  require('./delegateAll'),\n  ignore:       require('./ignore'),\n  keymap:       require('./keymap'),\n};\n","require('keyboardevent-key-polyfill');\n\n// these are the only relevant modifiers supported on all platforms,\n// according to MDN:\n// <https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/getModifierState>\nconst MODIFIERS = {\n  'Alt':      'altKey',\n  'Control':  'ctrlKey',\n  'Ctrl':     'ctrlKey',\n  'Shift':    'shiftKey'\n};\n\nconst MODIFIER_SEPARATOR = '+';\n\nconst getEventKey = function(event, hasModifiers) {\n  var key = event.key;\n  if (hasModifiers) {\n    for (var modifier in MODIFIERS) {\n      if (event[MODIFIERS[modifier]] === true) {\n        key = [modifier, key].join(MODIFIER_SEPARATOR);\n      }\n    }\n  }\n  return key;\n};\n\nmodule.exports = function keymap(keys) {\n  const hasModifiers = Object.keys(keys).some(function(key) {\n    return key.indexOf(MODIFIER_SEPARATOR) > -1;\n  });\n  return function(event) {\n    var key = getEventKey(event, hasModifiers);\n    return [key, key.toLowerCase()]\n      .reduce(function(result, _key) {\n        if (_key in keys) {\n          result = keys[key].call(this, event);\n        }\n        return result;\n      }, undefined);\n  };\n};\n\nmodule.exports.MODIFIERS = MODIFIERS;\n","module.exports = function once(listener, options) {\n  var wrapped = function wrappedOnce(e) {\n    e.currentTarget.removeEventListener(e.type, wrapped, options);\n    return listener.call(this, e);\n  };\n  return wrapped;\n};\n\n","'use strict';\n\nvar RE_TRIM = /(^\\s+)|(\\s+$)/g;\nvar RE_SPLIT = /\\s+/;\n\nvar trim = String.prototype.trim\n  ? function(str) { return str.trim(); }\n  : function(str) { return str.replace(RE_TRIM, ''); };\n\nvar queryById = function(id) {\n  return this.querySelector('[id=\"' + id.replace(/\"/g, '\\\\\"') + '\"]');\n};\n\nmodule.exports = function resolveIds(ids, doc) {\n  if (typeof ids !== 'string') {\n    throw new Error('Expected a string but got ' + (typeof ids));\n  }\n\n  if (!doc) {\n    doc = window.document;\n  }\n\n  var getElementById = doc.getElementById\n    ? doc.getElementById.bind(doc)\n    : queryById.bind(doc);\n\n  ids = trim(ids).split(RE_SPLIT);\n\n  // XXX we can short-circuit here because trimming and splitting a\n  // string of just whitespace produces an array containing a single,\n  // empty string\n  if (ids.length === 1 && ids[0] === '') {\n    return [];\n  }\n\n  return ids\n    .map(function(id) {\n      var el = getElementById(id);\n      if (!el) {\n        throw new Error('no element with id: \"' + id + '\"');\n      }\n      return el;\n    });\n};\n","const behavior = require(\"../../uswds-core/src/js/utils/behavior\");\nconst toggleFormInput = require(\"../../uswds-core/src/js/utils/toggle-form-input\");\n\nconst { CLICK } = require(\"../../uswds-core/src/js/events\");\nconst { prefix: PREFIX } = require(\"../../uswds-core/src/js/config\");\n\nconst LINK = `.${PREFIX}-show-password`;\n\nfunction toggle(event) {\n  event.preventDefault();\n  toggleFormInput(this);\n}\n\nmodule.exports = behavior({\n  [CLICK]: {\n    [LINK]: toggle,\n  },\n});\n","const select = require(\"../../uswds-core/src/js/utils/select\");\nconst behavior = require(\"../../uswds-core/src/js/utils/behavior\");\nconst toggle = require(\"../../uswds-core/src/js/utils/toggle\");\nconst isElementInViewport = require(\"../../uswds-core/src/js/utils/is-in-viewport\");\nconst { CLICK } = require(\"../../uswds-core/src/js/events\");\nconst { prefix: PREFIX } = require(\"../../uswds-core/src/js/config\");\n\nconst ACCORDION = `.${PREFIX}-accordion, .${PREFIX}-accordion--bordered`;\nconst BANNER_BUTTON = `.${PREFIX}-banner__button`;\nconst BUTTON = `.${PREFIX}-accordion__button[aria-controls]:not(${BANNER_BUTTON})`;\nconst EXPANDED = \"aria-expanded\";\nconst MULTISELECTABLE = \"data-allow-multiple\";\n\n/**\n * Get an Array of button elements belonging directly to the given\n * accordion element.\n * @param {HTMLElement} accordion\n * @return {array<HTMLButtonElement>}\n */\nconst getAccordionButtons = (accordion) => {\n  const buttons = select(BUTTON, accordion);\n\n  return buttons.filter((button) => button.closest(ACCORDION) === accordion);\n};\n\n/**\n * Toggle a button's \"pressed\" state, optionally providing a target\n * state.\n *\n * @param {HTMLButtonElement} button\n * @param {boolean?} expanded If no state is provided, the current\n * state will be toggled (from false to true, and vice-versa).\n * @return {boolean} the resulting state\n */\nconst toggleButton = (button, expanded) => {\n  const accordion = button.closest(ACCORDION);\n  let safeExpanded = expanded;\n\n  if (!accordion) {\n    throw new Error(`${BUTTON} is missing outer ${ACCORDION}`);\n  }\n\n  safeExpanded = toggle(button, expanded);\n\n  // XXX multiselectable is opt-in, to preserve legacy behavior\n  const multiselectable = accordion.hasAttribute(MULTISELECTABLE);\n\n  if (safeExpanded && !multiselectable) {\n    getAccordionButtons(accordion).forEach((other) => {\n      if (other !== button) {\n        toggle(other, false);\n      }\n    });\n  }\n};\n\n/**\n * @param {HTMLButtonElement} button\n * @return {boolean} true\n */\nconst showButton = (button) => toggleButton(button, true);\n\n/**\n * @param {HTMLButtonElement} button\n * @return {boolean} false\n */\nconst hideButton = (button) => toggleButton(button, false);\n\nconst accordion = behavior(\n  {\n    [CLICK]: {\n      [BUTTON]() {\n        toggleButton(this);\n\n        if (this.getAttribute(EXPANDED) === \"true\") {\n          // We were just expanded, but if another accordion was also just\n          // collapsed, we may no longer be in the viewport. This ensures\n          // that we are still visible, so the user isn't confused.\n          if (!isElementInViewport(this)) this.scrollIntoView();\n        }\n      },\n    },\n  },\n  {\n    init(root) {\n      select(BUTTON, root).forEach((button) => {\n        const expanded = button.getAttribute(EXPANDED) === \"true\";\n        toggleButton(button, expanded);\n      });\n    },\n    ACCORDION,\n    BUTTON,\n    show: showButton,\n    hide: hideButton,\n    toggle: toggleButton,\n    getButtons: getAccordionButtons,\n  },\n);\n\nmodule.exports = accordion;\n","const behavior = require(\"../../uswds-core/src/js/utils/behavior\");\nconst select = require(\"../../uswds-core/src/js/utils/select\");\nconst { CLICK } = require(\"../../uswds-core/src/js/events\");\nconst { prefix: PREFIX } = require(\"../../uswds-core/src/js/config\");\nconst toggle = require(\"../../uswds-core/src/js/utils/toggle\");\n\nconst HEADER = `.${PREFIX}-banner__header`;\nconst EXPANDED_CLASS = `${PREFIX}-banner__header--expanded`;\nconst BANNER_BUTTON = `${HEADER} [aria-controls]`;\n\n/**\n * Toggle Banner display and class.\n * @param {Event} event\n */\nconst toggleBanner = function toggleEl(event) {\n  event.preventDefault();\n  const trigger = event.target.closest(BANNER_BUTTON);\n\n  toggle(trigger);\n  this.closest(HEADER).classList.toggle(EXPANDED_CLASS);\n};\n\nmodule.exports = behavior(\n  {\n    [CLICK]: {\n      [BANNER_BUTTON]: toggleBanner,\n    },\n  },\n  {\n    init(root) {\n      select(BANNER_BUTTON, root).forEach((button) => {\n        const expanded = button.getAttribute(EXPANDED_CLASS) === \"true\";\n        toggle(button, expanded);\n      });\n    },\n  },\n);\n","const keymap = require(\"receptor/keymap\");\nconst behavior = require(\"../../uswds-core/src/js/utils/behavior\");\n\nconst ANCHOR_BUTTON = `a[class*=\"usa-button\"]`;\n\nconst toggleButton = (event) => {\n  event.preventDefault();\n  event.target.click();\n};\n\nconst anchorButton = behavior({\n  keydown: {\n    [ANCHOR_BUTTON]: keymap({\n      \" \": toggleButton,\n    }),\n  },\n});\n\nmodule.exports = anchorButton;\n","const select = require(\"../../uswds-core/src/js/utils/select\");\nconst behavior = require(\"../../uswds-core/src/js/utils/behavior\");\nconst debounce = require(\"../../uswds-core/src/js/utils/debounce\");\nconst { prefix: PREFIX } = require(\"../../uswds-core/src/js/config\");\n\nconst CHARACTER_COUNT_CLASS = `${PREFIX}-character-count`;\nconst CHARACTER_COUNT = `.${CHARACTER_COUNT_CLASS}`;\nconst FORM_GROUP_CLASS = `${PREFIX}-form-group`;\nconst FORM_GROUP_ERROR_CLASS = `${FORM_GROUP_CLASS}--error`;\nconst FORM_GROUP = `.${FORM_GROUP_CLASS}`;\nconst LABEL_CLASS = `${PREFIX}-label`;\nconst LABEL_ERROR_CLASS = `${LABEL_CLASS}--error`;\nconst INPUT = `.${PREFIX}-character-count__field`;\nconst INPUT_ERROR_CLASS = `${PREFIX}-input--error`;\nconst MESSAGE = `.${PREFIX}-character-count__message`;\nconst VALIDATION_MESSAGE = \"The content is too long.\";\nconst MESSAGE_INVALID_CLASS = `${PREFIX}-character-count__status--invalid`;\nconst STATUS_MESSAGE_CLASS = `${CHARACTER_COUNT_CLASS}__status`;\nconst STATUS_MESSAGE_SR_ONLY_CLASS = `${CHARACTER_COUNT_CLASS}__sr-status`;\nconst STATUS_MESSAGE = `.${STATUS_MESSAGE_CLASS}`;\nconst STATUS_MESSAGE_SR_ONLY = `.${STATUS_MESSAGE_SR_ONLY_CLASS}`;\nconst DEFAULT_STATUS_LABEL = `characters allowed`;\n\n/**\n * Returns the root, form group, label, and message elements for an character count input\n *\n * @param {HTMLInputElement|HTMLTextAreaElement} inputEl The character count input element\n * @returns {CharacterCountElements} elements The root form group, input ID, label, and message element.\n */\nconst getCharacterCountElements = (inputEl) => {\n  const characterCountEl = inputEl.closest(CHARACTER_COUNT);\n\n  if (!characterCountEl) {\n    throw new Error(`${INPUT} is missing outer ${CHARACTER_COUNT}`);\n  }\n\n  const formGroupEl = characterCountEl.querySelector(FORM_GROUP);\n\n  const inputID = inputEl.getAttribute(\"id\");\n  const labelEl = document.querySelector(`label[for=${inputID}]`);\n\n  const messageEl = characterCountEl.querySelector(MESSAGE);\n\n  if (!messageEl) {\n    throw new Error(`${CHARACTER_COUNT} is missing inner ${MESSAGE}`);\n  }\n\n  return { characterCountEl, formGroupEl, inputID, labelEl, messageEl };\n};\n\n/**\n * Move maxlength attribute to a data attribute on usa-character-count\n *\n * @param {HTMLInputElement|HTMLTextAreaElement} inputEl The character count input element\n */\nconst setDataLength = (inputEl) => {\n  const { characterCountEl } = getCharacterCountElements(inputEl);\n\n  const maxlength = inputEl.getAttribute(\"maxlength\");\n\n  if (!maxlength) return;\n\n  inputEl.removeAttribute(\"maxlength\");\n  characterCountEl.setAttribute(\"data-maxlength\", maxlength);\n};\n\n/**\n * Create and append status messages for visual and screen readers\n *\n * @param {HTMLDivElement} characterCountEl - Div with `.usa-character-count` class\n * @description  Create two status messages for number of characters left;\n * one visual status and another for screen readers\n */\nconst createStatusMessages = (characterCountEl) => {\n  const statusMessage = document.createElement(\"div\");\n  const srStatusMessage = document.createElement(\"div\");\n  const maxLength = characterCountEl.dataset.maxlength;\n  const defaultMessage = `${maxLength} ${DEFAULT_STATUS_LABEL}`;\n\n  statusMessage.classList.add(`${STATUS_MESSAGE_CLASS}`, \"usa-hint\");\n  srStatusMessage.classList.add(\n    `${STATUS_MESSAGE_SR_ONLY_CLASS}`,\n    \"usa-sr-only\",\n  );\n\n  statusMessage.setAttribute(\"aria-hidden\", true);\n  srStatusMessage.setAttribute(\"aria-live\", \"polite\");\n\n  statusMessage.textContent = defaultMessage;\n  srStatusMessage.textContent = defaultMessage;\n\n  characterCountEl.append(statusMessage, srStatusMessage);\n};\n\n/**\n * Returns message with how many characters are left\n *\n * @param {number} currentLength - The number of characters used\n * @param {number} maxLength - The total number of characters allowed\n * @returns {string} A string description of how many characters are left\n */\nconst getCountMessage = (currentLength, maxLength) => {\n  let newMessage = \"\";\n\n  if (currentLength === 0) {\n    newMessage = `${maxLength} ${DEFAULT_STATUS_LABEL}`;\n  } else {\n    const difference = Math.abs(maxLength - currentLength);\n    const characters = `character${difference === 1 ? \"\" : \"s\"}`;\n    const guidance = currentLength > maxLength ? \"over limit\" : \"left\";\n\n    newMessage = `${difference} ${characters} ${guidance}`;\n  }\n\n  return newMessage;\n};\n\n/**\n * Updates the character count status for screen readers after a 1000ms delay.\n *\n * @param {HTMLElement} msgEl - The screen reader status message element\n * @param {string} statusMessage - A string of the current character status\n */\nconst srUpdateStatus = debounce((msgEl, statusMessage) => {\n  const srStatusMessage = msgEl;\n  srStatusMessage.textContent = statusMessage;\n}, 1000);\n\n/**\n * Update the character count component\n *\n * @description On input, it will update visual status, screenreader\n * status and update input validation (if over character length)\n * @param {HTMLInputElement|HTMLTextAreaElement} inputEl The character count input element\n */\nconst updateCountMessage = (inputEl) => {\n  const { characterCountEl, labelEl, formGroupEl } =\n    getCharacterCountElements(inputEl);\n  const currentLength = inputEl.value.length;\n  const maxLength = parseInt(\n    characterCountEl.getAttribute(\"data-maxlength\"),\n    10,\n  );\n  const statusMessage = characterCountEl.querySelector(STATUS_MESSAGE);\n  const srStatusMessage = characterCountEl.querySelector(\n    STATUS_MESSAGE_SR_ONLY,\n  );\n  const currentStatusMessage = getCountMessage(currentLength, maxLength);\n\n  if (!maxLength) return;\n\n  const isOverLimit = currentLength && currentLength > maxLength;\n\n  statusMessage.textContent = currentStatusMessage;\n  srUpdateStatus(srStatusMessage, currentStatusMessage);\n\n  if (isOverLimit && !inputEl.validationMessage) {\n    inputEl.setCustomValidity(VALIDATION_MESSAGE);\n  }\n\n  if (!isOverLimit && inputEl.validationMessage === VALIDATION_MESSAGE) {\n    inputEl.setCustomValidity(\"\");\n  }\n\n  if (formGroupEl) {\n    formGroupEl.classList.toggle(FORM_GROUP_ERROR_CLASS, isOverLimit);\n  }\n\n  if (labelEl) {\n    labelEl.classList.toggle(LABEL_ERROR_CLASS, isOverLimit);\n  }\n\n  inputEl.classList.toggle(INPUT_ERROR_CLASS, isOverLimit);\n  statusMessage.classList.toggle(MESSAGE_INVALID_CLASS, isOverLimit);\n};\n\n/**\n * Initialize component\n *\n * @description On init this function will create elements and update any\n * attributes so it can tell the user how many characters are left.\n * @param  {HTMLInputElement|HTMLTextAreaElement} inputEl the components input\n */\nconst enhanceCharacterCount = (inputEl) => {\n  const { characterCountEl, messageEl } = getCharacterCountElements(inputEl);\n\n  // Hide hint and remove aria-live for backwards compatibility\n  messageEl.classList.add(\"usa-sr-only\");\n  messageEl.removeAttribute(\"aria-live\");\n\n  setDataLength(inputEl);\n  createStatusMessages(characterCountEl);\n};\n\nconst characterCount = behavior(\n  {\n    input: {\n      [INPUT]() {\n        updateCountMessage(this);\n      },\n    },\n  },\n  {\n    init(root) {\n      select(INPUT, root).forEach((input) => enhanceCharacterCount(input));\n    },\n    FORM_GROUP_ERROR_CLASS,\n    LABEL_ERROR_CLASS,\n    INPUT_ERROR_CLASS,\n    MESSAGE_INVALID_CLASS,\n    VALIDATION_MESSAGE,\n    STATUS_MESSAGE_CLASS,\n    STATUS_MESSAGE_SR_ONLY_CLASS,\n    DEFAULT_STATUS_LABEL,\n    createStatusMessages,\n    getCountMessage,\n    updateCountMessage,\n  },\n);\n\nmodule.exports = characterCount;\n","const keymap = require(\"receptor/keymap\");\nconst selectOrMatches = require(\"../../uswds-core/src/js/utils/select-or-matches\");\nconst behavior = require(\"../../uswds-core/src/js/utils/behavior\");\nconst Sanitizer = require(\"../../uswds-core/src/js/utils/sanitizer\");\nconst { prefix: PREFIX } = require(\"../../uswds-core/src/js/config\");\nconst { CLICK } = require(\"../../uswds-core/src/js/events\");\n\nconst COMBO_BOX_CLASS = `${PREFIX}-combo-box`;\nconst COMBO_BOX_PRISTINE_CLASS = `${COMBO_BOX_CLASS}--pristine`;\nconst SELECT_CLASS = `${COMBO_BOX_CLASS}__select`;\nconst INPUT_CLASS = `${COMBO_BOX_CLASS}__input`;\nconst CLEAR_INPUT_BUTTON_CLASS = `${COMBO_BOX_CLASS}__clear-input`;\nconst CLEAR_INPUT_BUTTON_WRAPPER_CLASS = `${CLEAR_INPUT_BUTTON_CLASS}__wrapper`;\nconst INPUT_BUTTON_SEPARATOR_CLASS = `${COMBO_BOX_CLASS}__input-button-separator`;\nconst TOGGLE_LIST_BUTTON_CLASS = `${COMBO_BOX_CLASS}__toggle-list`;\nconst TOGGLE_LIST_BUTTON_WRAPPER_CLASS = `${TOGGLE_LIST_BUTTON_CLASS}__wrapper`;\nconst LIST_CLASS = `${COMBO_BOX_CLASS}__list`;\nconst LIST_OPTION_CLASS = `${COMBO_BOX_CLASS}__list-option`;\nconst LIST_OPTION_FOCUSED_CLASS = `${LIST_OPTION_CLASS}--focused`;\nconst LIST_OPTION_SELECTED_CLASS = `${LIST_OPTION_CLASS}--selected`;\nconst STATUS_CLASS = `${COMBO_BOX_CLASS}__status`;\n\nconst COMBO_BOX = `.${COMBO_BOX_CLASS}`;\nconst SELECT = `.${SELECT_CLASS}`;\nconst INPUT = `.${INPUT_CLASS}`;\nconst CLEAR_INPUT_BUTTON = `.${CLEAR_INPUT_BUTTON_CLASS}`;\nconst TOGGLE_LIST_BUTTON = `.${TOGGLE_LIST_BUTTON_CLASS}`;\nconst LIST = `.${LIST_CLASS}`;\nconst LIST_OPTION = `.${LIST_OPTION_CLASS}`;\nconst LIST_OPTION_FOCUSED = `.${LIST_OPTION_FOCUSED_CLASS}`;\nconst LIST_OPTION_SELECTED = `.${LIST_OPTION_SELECTED_CLASS}`;\nconst STATUS = `.${STATUS_CLASS}`;\n\nconst DEFAULT_FILTER = \".*{{query}}.*\";\n\nconst noop = () => {};\n\n/**\n * set the value of the element and dispatch a change event\n *\n * @param {HTMLInputElement|HTMLSelectElement} el The element to update\n * @param {string} value The new value of the element\n */\nconst changeElementValue = (el, value = \"\") => {\n  const elementToChange = el;\n  elementToChange.value = value;\n\n  const event = new CustomEvent(\"change\", {\n    bubbles: true,\n    cancelable: true,\n    detail: { value },\n  });\n  elementToChange.dispatchEvent(event);\n};\n\n/**\n * The elements within the combo box.\n * @typedef {Object} ComboBoxContext\n * @property {HTMLElement} comboBoxEl\n * @property {HTMLSelectElement} selectEl\n * @property {HTMLInputElement} inputEl\n * @property {HTMLUListElement} listEl\n * @property {HTMLDivElement} statusEl\n * @property {HTMLLIElement} focusedOptionEl\n * @property {HTMLLIElement} selectedOptionEl\n * @property {HTMLButtonElement} toggleListBtnEl\n * @property {HTMLButtonElement} clearInputBtnEl\n * @property {boolean} isPristine\n * @property {boolean} disableFiltering\n */\n\n/**\n * Get an object of elements belonging directly to the given\n * combo box component.\n *\n * @param {HTMLElement} el the element within the combo box\n * @returns {ComboBoxContext} elements\n */\nconst getComboBoxContext = (el) => {\n  const comboBoxEl = el.closest(COMBO_BOX);\n\n  if (!comboBoxEl) {\n    throw new Error(`Element is missing outer ${COMBO_BOX}`);\n  }\n\n  const selectEl = comboBoxEl.querySelector(SELECT);\n  const inputEl = comboBoxEl.querySelector(INPUT);\n  const listEl = comboBoxEl.querySelector(LIST);\n  const statusEl = comboBoxEl.querySelector(STATUS);\n  const focusedOptionEl = comboBoxEl.querySelector(LIST_OPTION_FOCUSED);\n  const selectedOptionEl = comboBoxEl.querySelector(LIST_OPTION_SELECTED);\n  const toggleListBtnEl = comboBoxEl.querySelector(TOGGLE_LIST_BUTTON);\n  const clearInputBtnEl = comboBoxEl.querySelector(CLEAR_INPUT_BUTTON);\n\n  const isPristine = comboBoxEl.classList.contains(COMBO_BOX_PRISTINE_CLASS);\n  const disableFiltering = comboBoxEl.dataset.disableFiltering === \"true\";\n\n  return {\n    comboBoxEl,\n    selectEl,\n    inputEl,\n    listEl,\n    statusEl,\n    focusedOptionEl,\n    selectedOptionEl,\n    toggleListBtnEl,\n    clearInputBtnEl,\n    isPristine,\n    disableFiltering,\n  };\n};\n\n/**\n * Disable the combo-box component\n *\n * @param {HTMLInputElement} el An element within the combo box component\n */\nconst disable = (el) => {\n  const { inputEl, toggleListBtnEl, clearInputBtnEl } = getComboBoxContext(el);\n\n  clearInputBtnEl.hidden = true;\n  clearInputBtnEl.disabled = true;\n  toggleListBtnEl.disabled = true;\n  inputEl.disabled = true;\n};\n\n/**\n * Check for aria-disabled on initialization\n *\n * @param {HTMLInputElement} el An element within the combo box component\n */\nconst ariaDisable = (el) => {\n  const { inputEl, toggleListBtnEl, clearInputBtnEl } = getComboBoxContext(el);\n\n  clearInputBtnEl.hidden = true;\n  clearInputBtnEl.setAttribute(\"aria-disabled\", true);\n  toggleListBtnEl.setAttribute(\"aria-disabled\", true);\n  inputEl.setAttribute(\"aria-disabled\", true);\n};\n\n/**\n * Enable the combo-box component\n *\n * @param {HTMLInputElement} el An element within the combo box component\n */\nconst enable = (el) => {\n  const { inputEl, toggleListBtnEl, clearInputBtnEl } = getComboBoxContext(el);\n\n  clearInputBtnEl.hidden = false;\n  clearInputBtnEl.disabled = false;\n  toggleListBtnEl.disabled = false;\n  inputEl.disabled = false;\n};\n\n/**\n * Enhance a select element into a combo box component.\n *\n * @param {HTMLElement} _comboBoxEl The initial element of the combo box component\n */\nconst enhanceComboBox = (_comboBoxEl) => {\n  const comboBoxEl = _comboBoxEl.closest(COMBO_BOX);\n\n  if (comboBoxEl.dataset.enhanced) return;\n\n  const selectEl = comboBoxEl.querySelector(\"select\");\n\n  if (!selectEl) {\n    throw new Error(`${COMBO_BOX} is missing inner select`);\n  }\n\n  const selectId = selectEl.id;\n  const selectLabel = document.querySelector(`label[for=\"${selectId}\"]`);\n  const listId = `${selectId}--list`;\n  const listIdLabel = `${selectId}-label`;\n  const additionalAttributes = [];\n  const { defaultValue } = comboBoxEl.dataset;\n  const { placeholder } = comboBoxEl.dataset;\n  let selectedOption;\n\n  if (placeholder) {\n    additionalAttributes.push({ placeholder });\n  }\n\n  if (defaultValue) {\n    for (let i = 0, len = selectEl.options.length; i < len; i += 1) {\n      const optionEl = selectEl.options[i];\n\n      if (optionEl.value === defaultValue) {\n        selectedOption = optionEl;\n        break;\n      }\n    }\n  }\n\n  /**\n   * Throw error if combobox is missing a label or label is missing\n   * `for` attribute. Otherwise, set the ID to match the <ul> aria-labelledby\n   */\n  if (!selectLabel || !selectLabel.matches(`label[for=\"${selectId}\"]`)) {\n    throw new Error(\n      `${COMBO_BOX} for ${selectId} is either missing a label or a \"for\" attribute`,\n    );\n  } else {\n    selectLabel.setAttribute(\"id\", listIdLabel);\n  }\n\n  selectLabel.setAttribute(\"id\", listIdLabel);\n  selectEl.setAttribute(\"aria-hidden\", \"true\");\n  selectEl.setAttribute(\"tabindex\", \"-1\");\n  selectEl.classList.add(\"usa-sr-only\", SELECT_CLASS);\n  selectEl.id = \"\";\n  selectEl.value = \"\";\n\n  [\"required\", \"aria-label\", \"aria-labelledby\"].forEach((name) => {\n    if (selectEl.hasAttribute(name)) {\n      const value = selectEl.getAttribute(name);\n      additionalAttributes.push({ [name]: value });\n      selectEl.removeAttribute(name);\n    }\n  });\n\n  // sanitize doesn't like functions in template literals\n  const input = document.createElement(\"input\");\n  input.setAttribute(\"id\", selectId);\n  input.setAttribute(\"aria-owns\", listId);\n  input.setAttribute(\"aria-controls\", listId);\n  input.setAttribute(\"aria-autocomplete\", \"list\");\n  input.setAttribute(\"aria-expanded\", \"false\");\n  input.setAttribute(\"autocapitalize\", \"off\");\n  input.setAttribute(\"autocomplete\", \"off\");\n  input.setAttribute(\"class\", INPUT_CLASS);\n  input.setAttribute(\"type\", \"text\");\n  input.setAttribute(\"role\", \"combobox\");\n  additionalAttributes.forEach((attr) =>\n    Object.keys(attr).forEach((key) => {\n      const value = Sanitizer.escapeHTML`${attr[key]}`;\n      input.setAttribute(key, value);\n    }),\n  );\n\n  comboBoxEl.insertAdjacentElement(\"beforeend\", input);\n\n  comboBoxEl.insertAdjacentHTML(\n    \"beforeend\",\n    Sanitizer.escapeHTML`\n    <span class=\"${CLEAR_INPUT_BUTTON_WRAPPER_CLASS}\" tabindex=\"-1\">\n        <button type=\"button\" class=\"${CLEAR_INPUT_BUTTON_CLASS}\" aria-label=\"Clear the select contents\">&nbsp;</button>\n      </span>\n      <span class=\"${INPUT_BUTTON_SEPARATOR_CLASS}\">&nbsp;</span>\n      <span class=\"${TOGGLE_LIST_BUTTON_WRAPPER_CLASS}\" tabindex=\"-1\">\n        <button type=\"button\" tabindex=\"-1\" class=\"${TOGGLE_LIST_BUTTON_CLASS}\" aria-label=\"Toggle the dropdown list\">&nbsp;</button>\n      </span>\n      <ul\n        tabindex=\"-1\"\n        id=\"${listId}\"\n        class=\"${LIST_CLASS}\"\n        role=\"listbox\"\n        aria-labelledby=\"${listIdLabel}\"\n        hidden>\n      </ul>\n      <div class=\"${STATUS_CLASS} usa-sr-only\" role=\"status\"></div>`,\n  );\n\n  if (selectedOption) {\n    const { inputEl } = getComboBoxContext(comboBoxEl);\n    changeElementValue(selectEl, selectedOption.value);\n    changeElementValue(inputEl, selectedOption.text);\n    comboBoxEl.classList.add(COMBO_BOX_PRISTINE_CLASS);\n  }\n\n  if (selectEl.disabled) {\n    disable(comboBoxEl);\n    selectEl.disabled = false;\n  }\n\n  if (selectEl.hasAttribute(\"aria-disabled\")) {\n    ariaDisable(comboBoxEl);\n    selectEl.removeAttribute(\"aria-disabled\");\n  }\n\n  comboBoxEl.dataset.enhanced = \"true\";\n};\n\n/**\n * Manage the focused element within the list options when\n * navigating via keyboard.\n *\n * @param {HTMLElement} el An anchor element within the combo box component\n * @param {HTMLElement} nextEl An element within the combo box component\n * @param {Object} options options\n * @param {boolean} options.skipFocus skip focus of highlighted item\n * @param {boolean} options.preventScroll should skip procedure to scroll to element\n */\nconst highlightOption = (el, nextEl, { skipFocus, preventScroll } = {}) => {\n  const { inputEl, listEl, focusedOptionEl } = getComboBoxContext(el);\n\n  if (focusedOptionEl) {\n    focusedOptionEl.classList.remove(LIST_OPTION_FOCUSED_CLASS);\n    focusedOptionEl.setAttribute(\"tabIndex\", \"-1\");\n  }\n\n  if (nextEl) {\n    inputEl.setAttribute(\"aria-activedescendant\", nextEl.id);\n    nextEl.setAttribute(\"tabIndex\", \"0\");\n    nextEl.classList.add(LIST_OPTION_FOCUSED_CLASS);\n\n    if (!preventScroll) {\n      const optionBottom = nextEl.offsetTop + nextEl.offsetHeight;\n      const currentBottom = listEl.scrollTop + listEl.offsetHeight;\n\n      if (optionBottom > currentBottom) {\n        listEl.scrollTop = optionBottom - listEl.offsetHeight;\n      }\n\n      if (nextEl.offsetTop < listEl.scrollTop) {\n        listEl.scrollTop = nextEl.offsetTop;\n      }\n    }\n\n    if (!skipFocus) {\n      nextEl.focus({ preventScroll });\n    }\n  } else {\n    inputEl.setAttribute(\"aria-activedescendant\", \"\");\n    inputEl.focus();\n  }\n};\n\n/**\n * Generate a dynamic regular expression based off of a replaceable and possibly filtered value.\n *\n * @param {string} el An element within the combo box component\n * @param {string} query The value to use in the regular expression\n * @param {object} extras An object of regular expressions to replace and filter the query\n */\nconst generateDynamicRegExp = (filter, query = \"\", extras = {}) => {\n  const escapeRegExp = (text) =>\n    text.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, \"\\\\$&\");\n\n  let find = filter.replace(/{{(.*?)}}/g, (m, $1) => {\n    const key = $1.trim();\n    const queryFilter = extras[key];\n    if (key !== \"query\" && queryFilter) {\n      const matcher = new RegExp(queryFilter, \"i\");\n      const matches = query.match(matcher);\n\n      if (matches) {\n        return escapeRegExp(matches[1]);\n      }\n\n      return \"\";\n    }\n    return escapeRegExp(query);\n  });\n\n  find = `^(?:${find})$`;\n\n  return new RegExp(find, \"i\");\n};\n\n/**\n * Display the option list of a combo box component.\n *\n * @param {HTMLElement} el An element within the combo box component\n */\nconst displayList = (el) => {\n  const {\n    comboBoxEl,\n    selectEl,\n    inputEl,\n    listEl,\n    statusEl,\n    isPristine,\n    disableFiltering,\n  } = getComboBoxContext(el);\n  let selectedItemId;\n  let firstFoundId;\n\n  const listOptionBaseId = `${listEl.id}--option-`;\n\n  const inputValue = (inputEl.value || \"\").toLowerCase();\n  const filter = comboBoxEl.dataset.filter || DEFAULT_FILTER;\n  const regex = generateDynamicRegExp(filter, inputValue, comboBoxEl.dataset);\n\n  let options = [];\n  const optionsStartsWith = [];\n  const optionsContains = [];\n  const optionList = [...selectEl.options];\n\n  /**\n   * Builds and sorts options array.\n   *\n   * Option param is passed through regex test before passing into this function.\n   * When filtering is enabled, the array will be sorted by options that start with the query, followed by\n   * options that contain the query.\n   * When filtering is disabled, all options will be included in the array unsorted.\n   *\n   * These array items will populate the list that is displayed to the user after a search query is entered.\n   * Array attributes are also used to set option IDs and aria-setsize attributes.\n   *\n   * @param {HTMLOptionElement} option - Option element from select array\n   */\n  const buildOptionsArray = (option) => {\n    if (disableFiltering || isPristine) {\n      options.push(option);\n      return;\n    }\n\n    const matchStartsWith = option.text.toLowerCase().startsWith(inputValue);\n\n    if (matchStartsWith) {\n      optionsStartsWith.push(option);\n    } else {\n      optionsContains.push(option);\n    }\n\n    options = [...optionsStartsWith, ...optionsContains];\n  };\n\n  /**\n   * Compares option text to query using generated regex filter.\n   *\n   * @param {HTMLOptionElement} option\n   * @returns {boolean} - True when option text matches user input query.\n   */\n  const optionMatchesQuery = (option) => regex.test(option.text);\n\n  /**\n   * Logic check to determine if options array needs to be updated.\n   *\n   * @param {HTMLOptionElement} option\n   * @returns {boolean} - True when option has value && if filtering is disabled, combo box has an active selection,\n   * there is no inputValue, or if option matches user query\n   */\n  const arrayNeedsUpdate = (option) =>\n    option.value &&\n    (disableFiltering ||\n      isPristine ||\n      !inputValue ||\n      optionMatchesQuery(option));\n\n  /**\n   * Checks if firstFoundId should be assigned, which is then used to set itemToFocus.\n   *\n   * @param {HTMLOptionElement} option\n   * @return {boolean} - Returns true if filtering is disabled, no firstFoundId is assigned, and the option matches the query.\n   */\n  const isFirstMatch = (option) =>\n    disableFiltering && !firstFoundId && optionMatchesQuery(option);\n\n  /**\n   * Checks if isCurrentSelection should be assigned, which is then used to set itemToFocus.\n   *\n   * @param {HTMLOptionElement} option\n   * @returns {boolean} - Returns true if option.value matches selectEl.value.\n   */\n  const isCurrentSelection = (option) =>\n    selectEl.value && option.value === selectEl.value;\n\n  /**\n   * Update the array of options that should be displayed on the page.\n   * Assign an ID to each displayed option.\n   * Identify and assign the option that should receive focus.\n   */\n  optionList.forEach((option) => {\n    if (arrayNeedsUpdate(option)) {\n      buildOptionsArray(option);\n\n      const optionId = `${listOptionBaseId}${options.indexOf(option)}`;\n\n      if (isFirstMatch(option)) {\n        firstFoundId = optionId;\n      }\n\n      if (isCurrentSelection(option)) {\n        selectedItemId = optionId;\n      }\n    }\n  });\n\n  const numOptions = options.length;\n  const optionHtml = options.map((option, index) => {\n    const optionId = `${listOptionBaseId}${index}`;\n    const classes = [LIST_OPTION_CLASS];\n    let tabindex = \"-1\";\n    let ariaSelected = \"false\";\n\n    if (optionId === selectedItemId) {\n      classes.push(LIST_OPTION_SELECTED_CLASS, LIST_OPTION_FOCUSED_CLASS);\n      tabindex = \"0\";\n      ariaSelected = \"true\";\n    }\n\n    if (!selectedItemId && index === 0) {\n      classes.push(LIST_OPTION_FOCUSED_CLASS);\n      tabindex = \"0\";\n    }\n\n    const li = document.createElement(\"li\");\n\n    li.setAttribute(\"aria-setsize\", options.length);\n    li.setAttribute(\"aria-posinset\", index + 1);\n    li.setAttribute(\"aria-selected\", ariaSelected);\n    li.setAttribute(\"id\", optionId);\n    li.setAttribute(\"class\", classes.join(\" \"));\n    li.setAttribute(\"tabindex\", tabindex);\n    li.setAttribute(\"role\", \"option\");\n    li.setAttribute(\"data-value\", option.value);\n    li.textContent = option.text;\n\n    return li;\n  });\n\n  const noResults = document.createElement(\"li\");\n  noResults.setAttribute(\"class\", `${LIST_OPTION_CLASS}--no-results`);\n  noResults.textContent = \"No results found\";\n\n  listEl.hidden = false;\n\n  if (numOptions) {\n    listEl.innerHTML = \"\";\n    optionHtml.forEach((item) =>\n      listEl.insertAdjacentElement(\"beforeend\", item),\n    );\n  } else {\n    listEl.innerHTML = \"\";\n    listEl.insertAdjacentElement(\"beforeend\", noResults);\n  }\n\n  inputEl.setAttribute(\"aria-expanded\", \"true\");\n\n  statusEl.textContent = numOptions\n    ? `${numOptions} result${numOptions > 1 ? \"s\" : \"\"} available.`\n    : \"No results.\";\n\n  let itemToFocus;\n\n  if (isPristine && selectedItemId) {\n    itemToFocus = listEl.querySelector(`#${selectedItemId}`);\n  } else if (disableFiltering && firstFoundId) {\n    itemToFocus = listEl.querySelector(`#${firstFoundId}`);\n  }\n\n  if (itemToFocus) {\n    highlightOption(listEl, itemToFocus, {\n      skipFocus: true,\n    });\n  }\n};\n\n/**\n * Hide the option list of a combo box component.\n *\n * @param {HTMLElement} el An element within the combo box component\n */\nconst hideList = (el) => {\n  const { inputEl, listEl, statusEl, focusedOptionEl } = getComboBoxContext(el);\n\n  statusEl.innerHTML = \"\";\n\n  inputEl.setAttribute(\"aria-expanded\", \"false\");\n  inputEl.setAttribute(\"aria-activedescendant\", \"\");\n\n  if (focusedOptionEl) {\n    focusedOptionEl.classList.remove(LIST_OPTION_FOCUSED_CLASS);\n  }\n\n  listEl.scrollTop = 0;\n  listEl.hidden = true;\n};\n\n/**\n * Select an option list of the combo box component.\n *\n * @param {HTMLElement} listOptionEl The list option being selected\n */\nconst selectItem = (listOptionEl) => {\n  const { comboBoxEl, selectEl, inputEl } = getComboBoxContext(listOptionEl);\n\n  changeElementValue(selectEl, listOptionEl.dataset.value);\n  changeElementValue(inputEl, listOptionEl.textContent);\n  comboBoxEl.classList.add(COMBO_BOX_PRISTINE_CLASS);\n  hideList(comboBoxEl);\n  inputEl.focus();\n};\n\n/**\n * Clear the input of the combo box\n *\n * @param {HTMLButtonElement} clearButtonEl The clear input button\n */\nconst clearInput = (clearButtonEl) => {\n  const { comboBoxEl, listEl, selectEl, inputEl } =\n    getComboBoxContext(clearButtonEl);\n  const listShown = !listEl.hidden;\n\n  if (selectEl.value) changeElementValue(selectEl);\n  if (inputEl.value) changeElementValue(inputEl);\n  comboBoxEl.classList.remove(COMBO_BOX_PRISTINE_CLASS);\n\n  if (listShown) displayList(comboBoxEl);\n  inputEl.focus();\n};\n\n/**\n * Reset the select based off of currently set select value\n *\n * @param {HTMLElement} el An element within the combo box component\n */\nconst resetSelection = (el) => {\n  const { comboBoxEl, selectEl, inputEl } = getComboBoxContext(el);\n\n  const selectValue = selectEl.value;\n  const inputValue = (inputEl.value || \"\").toLowerCase();\n\n  if (selectValue) {\n    for (let i = 0, len = selectEl.options.length; i < len; i += 1) {\n      const optionEl = selectEl.options[i];\n      if (optionEl.value === selectValue) {\n        if (inputValue !== optionEl.text) {\n          changeElementValue(inputEl, optionEl.text);\n        }\n        comboBoxEl.classList.add(COMBO_BOX_PRISTINE_CLASS);\n        return;\n      }\n    }\n  }\n\n  if (inputValue) {\n    changeElementValue(inputEl);\n  }\n};\n\n/**\n * Select an option list of the combo box component based off of\n * having a current focused list option or\n * having test that completely matches a list option.\n * Otherwise it clears the input and select.\n *\n * @param {HTMLElement} el An element within the combo box component\n */\nconst completeSelection = (el) => {\n  const { comboBoxEl, selectEl, inputEl, statusEl } = getComboBoxContext(el);\n\n  statusEl.textContent = \"\";\n\n  const inputValue = (inputEl.value || \"\").toLowerCase();\n\n  if (inputValue) {\n    for (let i = 0, len = selectEl.options.length; i < len; i += 1) {\n      const optionEl = selectEl.options[i];\n      if (optionEl.text.toLowerCase() === inputValue) {\n        changeElementValue(selectEl, optionEl.value);\n        changeElementValue(inputEl, optionEl.text);\n        comboBoxEl.classList.add(COMBO_BOX_PRISTINE_CLASS);\n        return;\n      }\n    }\n  }\n\n  resetSelection(comboBoxEl);\n};\n\n/**\n * Handle the escape event within the combo box component.\n *\n * @param {KeyboardEvent} event An event within the combo box component\n */\nconst handleEscape = (event) => {\n  const { comboBoxEl, inputEl } = getComboBoxContext(event.target);\n\n  hideList(comboBoxEl);\n  resetSelection(comboBoxEl);\n  inputEl.focus();\n};\n\n/**\n * Handle the down event within the combo box component.\n *\n * @param {KeyboardEvent} event An event within the combo box component\n */\nconst handleDownFromInput = (event) => {\n  const { comboBoxEl, listEl } = getComboBoxContext(event.target);\n\n  if (listEl.hidden) {\n    displayList(comboBoxEl);\n  }\n\n  const nextOptionEl =\n    listEl.querySelector(LIST_OPTION_FOCUSED) ||\n    listEl.querySelector(LIST_OPTION);\n\n  if (nextOptionEl) {\n    highlightOption(comboBoxEl, nextOptionEl);\n  }\n\n  event.preventDefault();\n};\n\n/**\n * Handle the enter event from an input element within the combo box component.\n *\n * @param {KeyboardEvent} event An event within the combo box component\n */\nconst handleEnterFromInput = (event) => {\n  const { comboBoxEl, listEl } = getComboBoxContext(event.target);\n  const listShown = !listEl.hidden;\n\n  completeSelection(comboBoxEl);\n\n  if (listShown) {\n    hideList(comboBoxEl);\n  }\n\n  event.preventDefault();\n};\n\n/**\n * Handle the down event within the combo box component.\n *\n * @param {KeyboardEvent} event An event within the combo box component\n */\nconst handleDownFromListOption = (event) => {\n  const focusedOptionEl = event.target;\n  const nextOptionEl = focusedOptionEl.nextSibling;\n\n  if (nextOptionEl) {\n    highlightOption(focusedOptionEl, nextOptionEl);\n  }\n\n  event.preventDefault();\n};\n\n/**\n * Handle the space event from an list option element within the combo box component.\n *\n * @param {KeyboardEvent} event An event within the combo box component\n */\nconst handleSpaceFromListOption = (event) => {\n  selectItem(event.target);\n  event.preventDefault();\n};\n\n/**\n * Handle the enter event from list option within the combo box component.\n *\n * @param {KeyboardEvent} event An event within the combo box component\n */\nconst handleEnterFromListOption = (event) => {\n  selectItem(event.target);\n  event.preventDefault();\n};\n\n/**\n * Handle the up event from list option within the combo box component.\n *\n * @param {KeyboardEvent} event An event within the combo box component\n */\nconst handleUpFromListOption = (event) => {\n  const { comboBoxEl, listEl, focusedOptionEl } = getComboBoxContext(\n    event.target,\n  );\n  const nextOptionEl = focusedOptionEl && focusedOptionEl.previousSibling;\n  const listShown = !listEl.hidden;\n\n  highlightOption(comboBoxEl, nextOptionEl);\n\n  if (listShown) {\n    event.preventDefault();\n  }\n\n  if (!nextOptionEl) {\n    hideList(comboBoxEl);\n  }\n};\n\n/**\n * Select list option on the mouseover event.\n *\n * @param {MouseEvent} event The mouseover event\n * @param {HTMLLIElement} listOptionEl An element within the combo box component\n */\nconst handleMouseover = (listOptionEl) => {\n  const isCurrentlyFocused = listOptionEl.classList.contains(\n    LIST_OPTION_FOCUSED_CLASS,\n  );\n\n  if (isCurrentlyFocused) return;\n\n  highlightOption(listOptionEl, listOptionEl, {\n    preventScroll: true,\n  });\n};\n\n/**\n * Toggle the list when the button is clicked\n *\n * @param {HTMLElement} el An element within the combo box component\n */\nconst toggleList = (el) => {\n  const { comboBoxEl, listEl, inputEl } = getComboBoxContext(el);\n\n  if (listEl.hidden) {\n    displayList(comboBoxEl);\n  } else {\n    hideList(comboBoxEl);\n  }\n\n  inputEl.focus();\n};\n\n/**\n * Handle click from input\n *\n * @param {HTMLInputElement} el An element within the combo box component\n */\nconst handleClickFromInput = (el) => {\n  const { comboBoxEl, listEl } = getComboBoxContext(el);\n\n  if (listEl.hidden) {\n    displayList(comboBoxEl);\n  }\n};\n\nconst comboBox = behavior(\n  {\n    [CLICK]: {\n      [INPUT]() {\n        if (this.disabled) return;\n        handleClickFromInput(this);\n      },\n      [TOGGLE_LIST_BUTTON]() {\n        if (this.disabled) return;\n        toggleList(this);\n      },\n      [LIST_OPTION]() {\n        if (this.disabled) return;\n        selectItem(this);\n      },\n      [CLEAR_INPUT_BUTTON]() {\n        if (this.disabled) return;\n        clearInput(this);\n      },\n    },\n    focusout: {\n      [COMBO_BOX](event) {\n        if (!this.contains(event.relatedTarget)) {\n          resetSelection(this);\n          hideList(this);\n        }\n      },\n    },\n    keydown: {\n      [COMBO_BOX]: keymap({\n        Escape: handleEscape,\n      }),\n      [INPUT]: keymap({\n        Enter: handleEnterFromInput,\n        ArrowDown: handleDownFromInput,\n        Down: handleDownFromInput,\n      }),\n      [LIST_OPTION]: keymap({\n        ArrowUp: handleUpFromListOption,\n        Up: handleUpFromListOption,\n        ArrowDown: handleDownFromListOption,\n        Down: handleDownFromListOption,\n        Enter: handleEnterFromListOption,\n        \" \": handleSpaceFromListOption,\n        \"Shift+Tab\": noop,\n      }),\n    },\n    input: {\n      [INPUT]() {\n        const comboBoxEl = this.closest(COMBO_BOX);\n        comboBoxEl.classList.remove(COMBO_BOX_PRISTINE_CLASS);\n        displayList(this);\n      },\n    },\n    mouseover: {\n      [LIST_OPTION]() {\n        handleMouseover(this);\n      },\n    },\n  },\n  {\n    init(root) {\n      selectOrMatches(COMBO_BOX, root).forEach((comboBoxEl) => {\n        enhanceComboBox(comboBoxEl);\n      });\n    },\n    getComboBoxContext,\n    enhanceComboBox,\n    generateDynamicRegExp,\n    disable,\n    enable,\n    displayList,\n    hideList,\n    COMBO_BOX_CLASS,\n  },\n);\n\nmodule.exports = comboBox;\n","const keymap = require(\"receptor/keymap\");\nconst behavior = require(\"../../uswds-core/src/js/utils/behavior\");\nconst select = require(\"../../uswds-core/src/js/utils/select\");\nconst selectOrMatches = require(\"../../uswds-core/src/js/utils/select-or-matches\");\nconst { prefix: PREFIX } = require(\"../../uswds-core/src/js/config\");\nconst { CLICK } = require(\"../../uswds-core/src/js/events\");\nconst activeElement = require(\"../../uswds-core/src/js/utils/active-element\");\nconst isIosDevice = require(\"../../uswds-core/src/js/utils/is-ios-device\");\nconst Sanitizer = require(\"../../uswds-core/src/js/utils/sanitizer\");\n\nconst DATE_PICKER_CLASS = `${PREFIX}-date-picker`;\nconst DATE_PICKER_WRAPPER_CLASS = `${DATE_PICKER_CLASS}__wrapper`;\nconst DATE_PICKER_INITIALIZED_CLASS = `${DATE_PICKER_CLASS}--initialized`;\nconst DATE_PICKER_ACTIVE_CLASS = `${DATE_PICKER_CLASS}--active`;\nconst DATE_PICKER_INTERNAL_INPUT_CLASS = `${DATE_PICKER_CLASS}__internal-input`;\nconst DATE_PICKER_EXTERNAL_INPUT_CLASS = `${DATE_PICKER_CLASS}__external-input`;\nconst DATE_PICKER_BUTTON_CLASS = `${DATE_PICKER_CLASS}__button`;\nconst DATE_PICKER_CALENDAR_CLASS = `${DATE_PICKER_CLASS}__calendar`;\nconst DATE_PICKER_STATUS_CLASS = `${DATE_PICKER_CLASS}__status`;\nconst CALENDAR_DATE_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__date`;\n\nconst CALENDAR_DATE_FOCUSED_CLASS = `${CALENDAR_DATE_CLASS}--focused`;\nconst CALENDAR_DATE_SELECTED_CLASS = `${CALENDAR_DATE_CLASS}--selected`;\nconst CALENDAR_DATE_PREVIOUS_MONTH_CLASS = `${CALENDAR_DATE_CLASS}--previous-month`;\nconst CALENDAR_DATE_CURRENT_MONTH_CLASS = `${CALENDAR_DATE_CLASS}--current-month`;\nconst CALENDAR_DATE_NEXT_MONTH_CLASS = `${CALENDAR_DATE_CLASS}--next-month`;\nconst CALENDAR_DATE_RANGE_DATE_CLASS = `${CALENDAR_DATE_CLASS}--range-date`;\nconst CALENDAR_DATE_TODAY_CLASS = `${CALENDAR_DATE_CLASS}--today`;\nconst CALENDAR_DATE_RANGE_DATE_START_CLASS = `${CALENDAR_DATE_CLASS}--range-date-start`;\nconst CALENDAR_DATE_RANGE_DATE_END_CLASS = `${CALENDAR_DATE_CLASS}--range-date-end`;\nconst CALENDAR_DATE_WITHIN_RANGE_CLASS = `${CALENDAR_DATE_CLASS}--within-range`;\nconst CALENDAR_PREVIOUS_YEAR_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__previous-year`;\nconst CALENDAR_PREVIOUS_MONTH_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__previous-month`;\nconst CALENDAR_NEXT_YEAR_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__next-year`;\nconst CALENDAR_NEXT_MONTH_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__next-month`;\nconst CALENDAR_MONTH_SELECTION_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__month-selection`;\nconst CALENDAR_YEAR_SELECTION_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__year-selection`;\nconst CALENDAR_MONTH_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__month`;\nconst CALENDAR_MONTH_FOCUSED_CLASS = `${CALENDAR_MONTH_CLASS}--focused`;\nconst CALENDAR_MONTH_SELECTED_CLASS = `${CALENDAR_MONTH_CLASS}--selected`;\nconst CALENDAR_YEAR_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__year`;\nconst CALENDAR_YEAR_FOCUSED_CLASS = `${CALENDAR_YEAR_CLASS}--focused`;\nconst CALENDAR_YEAR_SELECTED_CLASS = `${CALENDAR_YEAR_CLASS}--selected`;\nconst CALENDAR_PREVIOUS_YEAR_CHUNK_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__previous-year-chunk`;\nconst CALENDAR_NEXT_YEAR_CHUNK_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__next-year-chunk`;\nconst CALENDAR_DATE_PICKER_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__date-picker`;\nconst CALENDAR_MONTH_PICKER_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__month-picker`;\nconst CALENDAR_YEAR_PICKER_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__year-picker`;\nconst CALENDAR_TABLE_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__table`;\nconst CALENDAR_ROW_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__row`;\nconst CALENDAR_CELL_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__cell`;\nconst CALENDAR_CELL_CENTER_ITEMS_CLASS = `${CALENDAR_CELL_CLASS}--center-items`;\nconst CALENDAR_MONTH_LABEL_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__month-label`;\nconst CALENDAR_DAY_OF_WEEK_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__day-of-week`;\n\nconst DATE_PICKER = `.${DATE_PICKER_CLASS}`;\nconst DATE_PICKER_BUTTON = `.${DATE_PICKER_BUTTON_CLASS}`;\nconst DATE_PICKER_INTERNAL_INPUT = `.${DATE_PICKER_INTERNAL_INPUT_CLASS}`;\nconst DATE_PICKER_EXTERNAL_INPUT = `.${DATE_PICKER_EXTERNAL_INPUT_CLASS}`;\nconst DATE_PICKER_CALENDAR = `.${DATE_PICKER_CALENDAR_CLASS}`;\nconst DATE_PICKER_STATUS = `.${DATE_PICKER_STATUS_CLASS}`;\nconst CALENDAR_DATE = `.${CALENDAR_DATE_CLASS}`;\nconst CALENDAR_DATE_FOCUSED = `.${CALENDAR_DATE_FOCUSED_CLASS}`;\nconst CALENDAR_DATE_CURRENT_MONTH = `.${CALENDAR_DATE_CURRENT_MONTH_CLASS}`;\nconst CALENDAR_PREVIOUS_YEAR = `.${CALENDAR_PREVIOUS_YEAR_CLASS}`;\nconst CALENDAR_PREVIOUS_MONTH = `.${CALENDAR_PREVIOUS_MONTH_CLASS}`;\nconst CALENDAR_NEXT_YEAR = `.${CALENDAR_NEXT_YEAR_CLASS}`;\nconst CALENDAR_NEXT_MONTH = `.${CALENDAR_NEXT_MONTH_CLASS}`;\nconst CALENDAR_YEAR_SELECTION = `.${CALENDAR_YEAR_SELECTION_CLASS}`;\nconst CALENDAR_MONTH_SELECTION = `.${CALENDAR_MONTH_SELECTION_CLASS}`;\nconst CALENDAR_MONTH = `.${CALENDAR_MONTH_CLASS}`;\nconst CALENDAR_YEAR = `.${CALENDAR_YEAR_CLASS}`;\nconst CALENDAR_PREVIOUS_YEAR_CHUNK = `.${CALENDAR_PREVIOUS_YEAR_CHUNK_CLASS}`;\nconst CALENDAR_NEXT_YEAR_CHUNK = `.${CALENDAR_NEXT_YEAR_CHUNK_CLASS}`;\nconst CALENDAR_DATE_PICKER = `.${CALENDAR_DATE_PICKER_CLASS}`;\nconst CALENDAR_MONTH_PICKER = `.${CALENDAR_MONTH_PICKER_CLASS}`;\nconst CALENDAR_YEAR_PICKER = `.${CALENDAR_YEAR_PICKER_CLASS}`;\nconst CALENDAR_MONTH_FOCUSED = `.${CALENDAR_MONTH_FOCUSED_CLASS}`;\nconst CALENDAR_YEAR_FOCUSED = `.${CALENDAR_YEAR_FOCUSED_CLASS}`;\n\nconst VALIDATION_MESSAGE = \"Please enter a valid date\";\n\nconst MONTH_LABELS = [\n  \"January\",\n  \"February\",\n  \"March\",\n  \"April\",\n  \"May\",\n  \"June\",\n  \"July\",\n  \"August\",\n  \"September\",\n  \"October\",\n  \"November\",\n  \"December\",\n];\n\nconst DAY_OF_WEEK_LABELS = [\n  \"Sunday\",\n  \"Monday\",\n  \"Tuesday\",\n  \"Wednesday\",\n  \"Thursday\",\n  \"Friday\",\n  \"Saturday\",\n];\n\nconst ENTER_KEYCODE = 13;\n\nconst YEAR_CHUNK = 12;\n\nconst DEFAULT_MIN_DATE = \"0000-01-01\";\nconst DEFAULT_EXTERNAL_DATE_FORMAT = \"MM/DD/YYYY\";\nconst INTERNAL_DATE_FORMAT = \"YYYY-MM-DD\";\n\nconst NOT_DISABLED_SELECTOR = \":not([disabled])\";\n\nconst processFocusableSelectors = (...selectors) =>\n  selectors.map((query) => query + NOT_DISABLED_SELECTOR).join(\", \");\n\nconst DATE_PICKER_FOCUSABLE = processFocusableSelectors(\n  CALENDAR_PREVIOUS_YEAR,\n  CALENDAR_PREVIOUS_MONTH,\n  CALENDAR_YEAR_SELECTION,\n  CALENDAR_MONTH_SELECTION,\n  CALENDAR_NEXT_YEAR,\n  CALENDAR_NEXT_MONTH,\n  CALENDAR_DATE_FOCUSED,\n);\n\nconst MONTH_PICKER_FOCUSABLE = processFocusableSelectors(\n  CALENDAR_MONTH_FOCUSED,\n);\n\nconst YEAR_PICKER_FOCUSABLE = processFocusableSelectors(\n  CALENDAR_PREVIOUS_YEAR_CHUNK,\n  CALENDAR_NEXT_YEAR_CHUNK,\n  CALENDAR_YEAR_FOCUSED,\n);\n\n// #region Date Manipulation Functions\n\n/**\n * Keep date within month. Month would only be over by 1 to 3 days\n *\n * @param {Date} dateToCheck the date object to check\n * @param {number} month the correct month\n * @returns {Date} the date, corrected if needed\n */\nconst keepDateWithinMonth = (dateToCheck, month) => {\n  if (month !== dateToCheck.getMonth()) {\n    dateToCheck.setDate(0);\n  }\n\n  return dateToCheck;\n};\n\n/**\n * Set date from month day year\n *\n * @param {number} year the year to set\n * @param {number} month the month to set (zero-indexed)\n * @param {number} date the date to set\n * @returns {Date} the set date\n */\nconst setDate = (year, month, date) => {\n  const newDate = new Date(0);\n  newDate.setFullYear(year, month, date);\n  return newDate;\n};\n\n/**\n * todays date\n *\n * @returns {Date} todays date\n */\nconst today = () => {\n  const newDate = new Date();\n  const day = newDate.getDate();\n  const month = newDate.getMonth();\n  const year = newDate.getFullYear();\n  return setDate(year, month, day);\n};\n\n/**\n * Set date to first day of the month\n *\n * @param {number} date the date to adjust\n * @returns {Date} the adjusted date\n */\nconst startOfMonth = (date) => {\n  const newDate = new Date(0);\n  newDate.setFullYear(date.getFullYear(), date.getMonth(), 1);\n  return newDate;\n};\n\n/**\n * Set date to last day of the month\n *\n * @param {number} date the date to adjust\n * @returns {Date} the adjusted date\n */\nconst lastDayOfMonth = (date) => {\n  const newDate = new Date(0);\n  newDate.setFullYear(date.getFullYear(), date.getMonth() + 1, 0);\n  return newDate;\n};\n\n/**\n * Add days to date\n *\n * @param {Date} _date the date to adjust\n * @param {number} numDays the difference in days\n * @returns {Date} the adjusted date\n */\nconst addDays = (_date, numDays) => {\n  const newDate = new Date(_date.getTime());\n  newDate.setDate(newDate.getDate() + numDays);\n  return newDate;\n};\n\n/**\n * Subtract days from date\n *\n * @param {Date} _date the date to adjust\n * @param {number} numDays the difference in days\n * @returns {Date} the adjusted date\n */\nconst subDays = (_date, numDays) => addDays(_date, -numDays);\n\n/**\n * Add weeks to date\n *\n * @param {Date} _date the date to adjust\n * @param {number} numWeeks the difference in weeks\n * @returns {Date} the adjusted date\n */\nconst addWeeks = (_date, numWeeks) => addDays(_date, numWeeks * 7);\n\n/**\n * Subtract weeks from date\n *\n * @param {Date} _date the date to adjust\n * @param {number} numWeeks the difference in weeks\n * @returns {Date} the adjusted date\n */\nconst subWeeks = (_date, numWeeks) => addWeeks(_date, -numWeeks);\n\n/**\n * Set date to the start of the week (Sunday)\n *\n * @param {Date} _date the date to adjust\n * @returns {Date} the adjusted date\n */\nconst startOfWeek = (_date) => {\n  const dayOfWeek = _date.getDay();\n  return subDays(_date, dayOfWeek);\n};\n\n/**\n * Set date to the end of the week (Saturday)\n *\n * @param {Date} _date the date to adjust\n * @param {number} numWeeks the difference in weeks\n * @returns {Date} the adjusted date\n */\nconst endOfWeek = (_date) => {\n  const dayOfWeek = _date.getDay();\n  return addDays(_date, 6 - dayOfWeek);\n};\n\n/**\n * Add months to date and keep date within month\n *\n * @param {Date} _date the date to adjust\n * @param {number} numMonths the difference in months\n * @returns {Date} the adjusted date\n */\nconst addMonths = (_date, numMonths) => {\n  const newDate = new Date(_date.getTime());\n\n  const dateMonth = (newDate.getMonth() + 12 + numMonths) % 12;\n  newDate.setMonth(newDate.getMonth() + numMonths);\n  keepDateWithinMonth(newDate, dateMonth);\n\n  return newDate;\n};\n\n/**\n * Subtract months from date\n *\n * @param {Date} _date the date to adjust\n * @param {number} numMonths the difference in months\n * @returns {Date} the adjusted date\n */\nconst subMonths = (_date, numMonths) => addMonths(_date, -numMonths);\n\n/**\n * Add years to date and keep date within month\n *\n * @param {Date} _date the date to adjust\n * @param {number} numYears the difference in years\n * @returns {Date} the adjusted date\n */\nconst addYears = (_date, numYears) => addMonths(_date, numYears * 12);\n\n/**\n * Subtract years from date\n *\n * @param {Date} _date the date to adjust\n * @param {number} numYears the difference in years\n * @returns {Date} the adjusted date\n */\nconst subYears = (_date, numYears) => addYears(_date, -numYears);\n\n/**\n * Set months of date\n *\n * @param {Date} _date the date to adjust\n * @param {number} month zero-indexed month to set\n * @returns {Date} the adjusted date\n */\nconst setMonth = (_date, month) => {\n  const newDate = new Date(_date.getTime());\n\n  newDate.setMonth(month);\n  keepDateWithinMonth(newDate, month);\n\n  return newDate;\n};\n\n/**\n * Set year of date\n *\n * @param {Date} _date the date to adjust\n * @param {number} year the year to set\n * @returns {Date} the adjusted date\n */\nconst setYear = (_date, year) => {\n  const newDate = new Date(_date.getTime());\n\n  const month = newDate.getMonth();\n  newDate.setFullYear(year);\n  keepDateWithinMonth(newDate, month);\n\n  return newDate;\n};\n\n/**\n * Return the earliest date\n *\n * @param {Date} dateA date to compare\n * @param {Date} dateB date to compare\n * @returns {Date} the earliest date\n */\nconst min = (dateA, dateB) => {\n  let newDate = dateA;\n\n  if (dateB < dateA) {\n    newDate = dateB;\n  }\n\n  return new Date(newDate.getTime());\n};\n\n/**\n * Return the latest date\n *\n * @param {Date} dateA date to compare\n * @param {Date} dateB date to compare\n * @returns {Date} the latest date\n */\nconst max = (dateA, dateB) => {\n  let newDate = dateA;\n\n  if (dateB > dateA) {\n    newDate = dateB;\n  }\n\n  return new Date(newDate.getTime());\n};\n\n/**\n * Check if dates are the in the same year\n *\n * @param {Date} dateA date to compare\n * @param {Date} dateB date to compare\n * @returns {boolean} are dates in the same year\n */\nconst isSameYear = (dateA, dateB) =>\n  dateA && dateB && dateA.getFullYear() === dateB.getFullYear();\n\n/**\n * Check if dates are the in the same month\n *\n * @param {Date} dateA date to compare\n * @param {Date} dateB date to compare\n * @returns {boolean} are dates in the same month\n */\nconst isSameMonth = (dateA, dateB) =>\n  isSameYear(dateA, dateB) && dateA.getMonth() === dateB.getMonth();\n\n/**\n * Check if dates are the same date\n *\n * @param {Date} dateA the date to compare\n * @param {Date} dateA the date to compare\n * @returns {boolean} are dates the same date\n */\nconst isSameDay = (dateA, dateB) =>\n  isSameMonth(dateA, dateB) && dateA.getDate() === dateB.getDate();\n\n/**\n * return a new date within minimum and maximum date\n *\n * @param {Date} date date to check\n * @param {Date} minDate minimum date to allow\n * @param {Date} maxDate maximum date to allow\n * @returns {Date} the date between min and max\n */\nconst keepDateBetweenMinAndMax = (date, minDate, maxDate) => {\n  let newDate = date;\n\n  if (date < minDate) {\n    newDate = minDate;\n  } else if (maxDate && date > maxDate) {\n    newDate = maxDate;\n  }\n\n  return new Date(newDate.getTime());\n};\n\n/**\n * Check if dates is valid.\n *\n * @param {Date} date date to check\n * @param {Date} minDate minimum date to allow\n * @param {Date} maxDate maximum date to allow\n * @return {boolean} is there a day within the month within min and max dates\n */\nconst isDateWithinMinAndMax = (date, minDate, maxDate) =>\n  date >= minDate && (!maxDate || date <= maxDate);\n\n/**\n * Check if dates month is invalid.\n *\n * @param {Date} date date to check\n * @param {Date} minDate minimum date to allow\n * @param {Date} maxDate maximum date to allow\n * @return {boolean} is the month outside min or max dates\n */\nconst isDatesMonthOutsideMinOrMax = (date, minDate, maxDate) =>\n  lastDayOfMonth(date) < minDate || (maxDate && startOfMonth(date) > maxDate);\n\n/**\n * Check if dates year is invalid.\n *\n * @param {Date} date date to check\n * @param {Date} minDate minimum date to allow\n * @param {Date} maxDate maximum date to allow\n * @return {boolean} is the month outside min or max dates\n */\nconst isDatesYearOutsideMinOrMax = (date, minDate, maxDate) =>\n  lastDayOfMonth(setMonth(date, 11)) < minDate ||\n  (maxDate && startOfMonth(setMonth(date, 0)) > maxDate);\n\n/**\n * @typedef {Object} DateRangeContext\n * @property {Date} rangeStartDate\n * @property {Date} rangeEndDate\n * @property {Date} withinRangeStartDate\n * @property {Date} withinRangeEndDate\n */\n\n/**\n * Set the start, end, and within range values for date range variants.\n\n * @param {Date} date - Date that concludes the date range.\n * @param {Date} rangeDate - Range date data attribute value of the date picker component.\n * @returns {DateRangeContext} - Dates for range selection.\n */\nconst setRangeDates = (date, rangeDate) => {\n  const rangeConclusionDate = date;\n  const rangeStartDate = rangeDate && min(rangeConclusionDate, rangeDate);\n  const rangeEndDate = rangeDate && max(rangeConclusionDate, rangeDate);\n\n  const withinRangeStartDate = rangeDate && addDays(rangeStartDate, 1);\n  const withinRangeEndDate = rangeDate && subDays(rangeEndDate, 1);\n\n  return {\n    rangeStartDate,\n    rangeEndDate,\n    withinRangeStartDate,\n    withinRangeEndDate,\n  };\n};\n\n/**\n * Parse a date with format M-D-YY\n *\n * @param {string} dateString the date string to parse\n * @param {string} dateFormat the format of the date string\n * @param {boolean} adjustDate should the date be adjusted\n * @returns {Date} the parsed date\n */\nconst parseDateString = (\n  dateString,\n  dateFormat = INTERNAL_DATE_FORMAT,\n  adjustDate = false,\n) => {\n  let date;\n  let month;\n  let day;\n  let year;\n  let parsed;\n\n  if (dateString) {\n    let monthStr;\n    let dayStr;\n    let yearStr;\n\n    if (dateFormat === DEFAULT_EXTERNAL_DATE_FORMAT) {\n      [monthStr, dayStr, yearStr] = dateString.split(\"/\");\n    } else {\n      [yearStr, monthStr, dayStr] = dateString.split(\"-\");\n    }\n\n    if (yearStr) {\n      parsed = parseInt(yearStr, 10);\n      if (!Number.isNaN(parsed)) {\n        year = parsed;\n        if (adjustDate) {\n          year = Math.max(0, year);\n          if (yearStr.length < 3) {\n            const currentYear = today().getFullYear();\n            const currentYearStub =\n              currentYear - (currentYear % 10 ** yearStr.length);\n            year = currentYearStub + parsed;\n          }\n        }\n      }\n    }\n\n    if (monthStr) {\n      parsed = parseInt(monthStr, 10);\n      if (!Number.isNaN(parsed)) {\n        month = parsed;\n        if (adjustDate) {\n          month = Math.max(1, month);\n          month = Math.min(12, month);\n        }\n      }\n    }\n\n    if (month && dayStr && year != null) {\n      parsed = parseInt(dayStr, 10);\n      if (!Number.isNaN(parsed)) {\n        day = parsed;\n        if (adjustDate) {\n          const lastDayOfTheMonth = setDate(year, month, 0).getDate();\n          day = Math.max(1, day);\n          day = Math.min(lastDayOfTheMonth, day);\n        }\n      }\n    }\n\n    if (month && day && year != null) {\n      date = setDate(year, month - 1, day);\n    }\n  }\n\n  return date;\n};\n\n/**\n * Format a date to format MM-DD-YYYY\n *\n * @param {Date} date the date to format\n * @param {string} dateFormat the format of the date string\n * @returns {string} the formatted date string\n */\nconst formatDate = (date, dateFormat = INTERNAL_DATE_FORMAT) => {\n  const padZeros = (value, length) => `0000${value}`.slice(-length);\n\n  const month = date.getMonth() + 1;\n  const day = date.getDate();\n  const year = date.getFullYear();\n\n  if (dateFormat === DEFAULT_EXTERNAL_DATE_FORMAT) {\n    return [padZeros(month, 2), padZeros(day, 2), padZeros(year, 4)].join(\"/\");\n  }\n\n  return [padZeros(year, 4), padZeros(month, 2), padZeros(day, 2)].join(\"-\");\n};\n\n// #endregion Date Manipulation Functions\n\n/**\n * Create a grid string from an array of html strings\n *\n * @param {string[]} htmlArray the array of html items\n * @param {number} rowSize the length of a row\n * @returns {string} the grid string\n */\nconst listToGridHtml = (htmlArray, rowSize) => {\n  const grid = [];\n  let row = [];\n\n  let i = 0;\n  while (i < htmlArray.length) {\n    row = [];\n\n    const tr = document.createElement(\"tr\");\n    while (i < htmlArray.length && row.length < rowSize) {\n      const td = document.createElement(\"td\");\n      td.insertAdjacentElement(\"beforeend\", htmlArray[i]);\n      row.push(td);\n      i += 1;\n    }\n\n    row.forEach((element) => {\n      tr.insertAdjacentElement(\"beforeend\", element);\n    });\n\n    grid.push(tr);\n  }\n\n  return grid;\n};\n\nconst createTableBody = (grid) => {\n  const tableBody = document.createElement(\"tbody\");\n  grid.forEach((element) => {\n    tableBody.insertAdjacentElement(\"beforeend\", element);\n  });\n\n  return tableBody;\n};\n\n/**\n * set the value of the element and dispatch a change event\n *\n * @param {HTMLInputElement} el The element to update\n * @param {string} value The new value of the element\n */\nconst changeElementValue = (el, value = \"\") => {\n  const elementToChange = el;\n  elementToChange.value = value;\n\n  const event = new CustomEvent(\"change\", {\n    bubbles: true,\n    cancelable: true,\n    detail: { value },\n  });\n  elementToChange.dispatchEvent(event);\n};\n\n/**\n * The properties and elements within the date picker.\n * @typedef {Object} DatePickerContext\n * @property {HTMLDivElement} calendarEl\n * @property {HTMLElement} datePickerEl\n * @property {HTMLInputElement} internalInputEl\n * @property {HTMLInputElement} externalInputEl\n * @property {HTMLDivElement} statusEl\n * @property {HTMLDivElement} firstYearChunkEl\n * @property {Date} calendarDate\n * @property {Date} minDate\n * @property {Date} maxDate\n * @property {Date} selectedDate\n * @property {Date} rangeDate\n * @property {Date} defaultDate\n */\n\n/**\n * Get an object of the properties and elements belonging directly to the given\n * date picker component.\n *\n * @param {HTMLElement} el the element within the date picker\n * @returns {DatePickerContext} elements\n */\nconst getDatePickerContext = (el) => {\n  const datePickerEl = el.closest(DATE_PICKER);\n\n  if (!datePickerEl) {\n    throw new Error(`Element is missing outer ${DATE_PICKER}`);\n  }\n\n  const internalInputEl = datePickerEl.querySelector(\n    DATE_PICKER_INTERNAL_INPUT,\n  );\n  const externalInputEl = datePickerEl.querySelector(\n    DATE_PICKER_EXTERNAL_INPUT,\n  );\n  const calendarEl = datePickerEl.querySelector(DATE_PICKER_CALENDAR);\n  const toggleBtnEl = datePickerEl.querySelector(DATE_PICKER_BUTTON);\n  const statusEl = datePickerEl.querySelector(DATE_PICKER_STATUS);\n  const firstYearChunkEl = datePickerEl.querySelector(CALENDAR_YEAR);\n\n  const inputDate = parseDateString(\n    externalInputEl.value,\n    DEFAULT_EXTERNAL_DATE_FORMAT,\n    true,\n  );\n  const selectedDate = parseDateString(internalInputEl.value);\n\n  const calendarDate = parseDateString(calendarEl.dataset.value);\n  const minDate = parseDateString(datePickerEl.dataset.minDate);\n  const maxDate = parseDateString(datePickerEl.dataset.maxDate);\n  const rangeDate = parseDateString(datePickerEl.dataset.rangeDate);\n  const defaultDate = parseDateString(datePickerEl.dataset.defaultDate);\n\n  if (minDate && maxDate && minDate > maxDate) {\n    throw new Error(\"Minimum date cannot be after maximum date\");\n  }\n\n  return {\n    calendarDate,\n    minDate,\n    toggleBtnEl,\n    selectedDate,\n    maxDate,\n    firstYearChunkEl,\n    datePickerEl,\n    inputDate,\n    internalInputEl,\n    externalInputEl,\n    calendarEl,\n    rangeDate,\n    defaultDate,\n    statusEl,\n  };\n};\n\n/**\n * Disable the date picker component\n *\n * @param {HTMLElement} el An element within the date picker component\n */\nconst disable = (el) => {\n  const { externalInputEl, toggleBtnEl } = getDatePickerContext(el);\n\n  toggleBtnEl.disabled = true;\n  externalInputEl.disabled = true;\n};\n\n/**\n * Add the readonly attribute to input element and the aria-disabled attribute to the toggle calendar button and external input elements.\n *\n * @param {HTMLElement} el - The date picker element\n */\nconst ariaDisable = (el) => {\n  const { externalInputEl, toggleBtnEl } = getDatePickerContext(el);\n\n  toggleBtnEl.setAttribute(\"aria-disabled\", true);\n  externalInputEl.setAttribute(\"aria-disabled\", true);\n  externalInputEl.setAttribute(\"readonly\", \"\");\n};\n\n/**\n * Enable the date picker component\n *\n * @param {HTMLElement} el An element within the date picker component\n */\nconst enable = (el) => {\n  const { externalInputEl, toggleBtnEl } = getDatePickerContext(el);\n\n  toggleBtnEl.disabled = false;\n  toggleBtnEl.removeAttribute(\"aria-disabled\");\n\n  externalInputEl.disabled = false;\n  externalInputEl.removeAttribute(\"aria-disabled\");\n  externalInputEl.removeAttribute(\"readonly\");\n};\n\n// #region Validation\n\n/**\n * Validate the value in the input as a valid date of format M/D/YYYY\n *\n * @param {HTMLElement} el An element within the date picker component\n */\nconst isDateInputInvalid = (el) => {\n  const { externalInputEl, minDate, maxDate } = getDatePickerContext(el);\n\n  const dateString = externalInputEl.value;\n  let isInvalid = false;\n\n  if (dateString) {\n    isInvalid = true;\n\n    const dateStringParts = dateString.split(\"/\");\n    const [month, day, year] = dateStringParts.map((str) => {\n      let value;\n      const parsed = parseInt(str, 10);\n      if (!Number.isNaN(parsed)) value = parsed;\n      return value;\n    });\n\n    if (month && day && year != null) {\n      const checkDate = setDate(year, month - 1, day);\n\n      if (\n        checkDate.getMonth() === month - 1 &&\n        checkDate.getDate() === day &&\n        checkDate.getFullYear() === year &&\n        dateStringParts[2].length === 4 &&\n        isDateWithinMinAndMax(checkDate, minDate, maxDate)\n      ) {\n        isInvalid = false;\n      }\n    }\n  }\n\n  return isInvalid;\n};\n\n/**\n * Validate the value in the input as a valid date of format M/D/YYYY\n *\n * @param {HTMLElement} el An element within the date picker component\n */\nconst validateDateInput = (el) => {\n  const { externalInputEl } = getDatePickerContext(el);\n  const isInvalid = isDateInputInvalid(externalInputEl);\n\n  if (isInvalid && !externalInputEl.validationMessage) {\n    externalInputEl.setCustomValidity(VALIDATION_MESSAGE);\n  }\n\n  if (!isInvalid && externalInputEl.validationMessage === VALIDATION_MESSAGE) {\n    externalInputEl.setCustomValidity(\"\");\n  }\n};\n\n// #endregion Validation\n\n/**\n * Enable the date picker component\n *\n * @param {HTMLElement} el An element within the date picker component\n */\nconst reconcileInputValues = (el) => {\n  const { internalInputEl, inputDate } = getDatePickerContext(el);\n  let newValue = \"\";\n\n  if (inputDate && !isDateInputInvalid(el)) {\n    newValue = formatDate(inputDate);\n  }\n\n  if (internalInputEl.value !== newValue) {\n    changeElementValue(internalInputEl, newValue);\n  }\n};\n\n/**\n * Select the value of the date picker inputs.\n *\n * @param {HTMLButtonElement} el An element within the date picker component\n * @param {string} dateString The date string to update in YYYY-MM-DD format\n */\nconst setCalendarValue = (el, dateString) => {\n  const parsedDate = parseDateString(dateString);\n\n  if (parsedDate) {\n    const formattedDate = formatDate(parsedDate, DEFAULT_EXTERNAL_DATE_FORMAT);\n\n    const { datePickerEl, internalInputEl, externalInputEl } =\n      getDatePickerContext(el);\n\n    changeElementValue(internalInputEl, dateString);\n    changeElementValue(externalInputEl, formattedDate);\n\n    validateDateInput(datePickerEl);\n  }\n};\n\n/**\n * Enhance an input with the date picker elements\n *\n * @param {HTMLElement} el The initial wrapping element of the date picker component\n */\nconst enhanceDatePicker = (el) => {\n  const datePickerEl = el.closest(DATE_PICKER);\n  const { defaultValue } = datePickerEl.dataset;\n\n  const internalInputEl = datePickerEl.querySelector(`input`);\n\n  if (!internalInputEl) {\n    throw new Error(`${DATE_PICKER} is missing inner input`);\n  }\n\n  if (internalInputEl.value) {\n    internalInputEl.value = \"\";\n  }\n\n  const minDate = parseDateString(\n    datePickerEl.dataset.minDate || internalInputEl.getAttribute(\"min\"),\n  );\n  datePickerEl.dataset.minDate = minDate\n    ? formatDate(minDate)\n    : DEFAULT_MIN_DATE;\n\n  const maxDate = parseDateString(\n    datePickerEl.dataset.maxDate || internalInputEl.getAttribute(\"max\"),\n  );\n  if (maxDate) {\n    datePickerEl.dataset.maxDate = formatDate(maxDate);\n  }\n\n  const calendarWrapper = document.createElement(\"div\");\n  calendarWrapper.classList.add(DATE_PICKER_WRAPPER_CLASS);\n\n  const externalInputEl = internalInputEl.cloneNode();\n  externalInputEl.classList.add(DATE_PICKER_EXTERNAL_INPUT_CLASS);\n  externalInputEl.type = \"text\";\n\n  calendarWrapper.appendChild(externalInputEl);\n  calendarWrapper.insertAdjacentHTML(\n    \"beforeend\",\n    Sanitizer.escapeHTML`\n    <button type=\"button\" class=\"${DATE_PICKER_BUTTON_CLASS}\" aria-haspopup=\"true\" aria-label=\"Toggle calendar\"></button>\n    <div class=\"${DATE_PICKER_CALENDAR_CLASS}\" role=\"application\" hidden></div>\n    <div class=\"usa-sr-only ${DATE_PICKER_STATUS_CLASS}\" role=\"status\" aria-live=\"polite\"></div>`,\n  );\n\n  internalInputEl.setAttribute(\"aria-hidden\", \"true\");\n  internalInputEl.setAttribute(\"tabindex\", \"-1\");\n  internalInputEl.style.display = \"none\";\n  internalInputEl.classList.add(DATE_PICKER_INTERNAL_INPUT_CLASS);\n  internalInputEl.removeAttribute(\"id\");\n  internalInputEl.removeAttribute(\"name\");\n  internalInputEl.required = false;\n\n  datePickerEl.appendChild(calendarWrapper);\n  datePickerEl.classList.add(DATE_PICKER_INITIALIZED_CLASS);\n\n  if (defaultValue) {\n    setCalendarValue(datePickerEl, defaultValue);\n  }\n\n  if (internalInputEl.disabled) {\n    disable(datePickerEl);\n    internalInputEl.disabled = false;\n  }\n\n  if (internalInputEl.hasAttribute(\"aria-disabled\")) {\n    ariaDisable(datePickerEl);\n    internalInputEl.removeAttribute(\"aria-disabled\");\n  }\n};\n\n// #region Calendar - Date Selection View\n\n/**\n * render the calendar.\n *\n * @param {HTMLElement} el An element within the date picker component\n * @param {Date} _dateToDisplay a date to render on the calendar\n * @returns {HTMLElement} a reference to the new calendar element\n */\nconst renderCalendar = (el, _dateToDisplay) => {\n  const {\n    datePickerEl,\n    calendarEl,\n    statusEl,\n    selectedDate,\n    maxDate,\n    minDate,\n    rangeDate,\n  } = getDatePickerContext(el);\n  const todaysDate = today();\n  let dateToDisplay = _dateToDisplay || todaysDate;\n\n  const calendarWasHidden = calendarEl.hidden;\n\n  const focusedDate = addDays(dateToDisplay, 0);\n  const focusedMonth = dateToDisplay.getMonth();\n  const focusedYear = dateToDisplay.getFullYear();\n\n  const prevMonth = subMonths(dateToDisplay, 1);\n  const nextMonth = addMonths(dateToDisplay, 1);\n\n  const currentFormattedDate = formatDate(dateToDisplay);\n\n  const firstOfMonth = startOfMonth(dateToDisplay);\n  const prevButtonsDisabled = isSameMonth(dateToDisplay, minDate);\n  const nextButtonsDisabled = isSameMonth(dateToDisplay, maxDate);\n\n  const {\n    rangeStartDate,\n    rangeEndDate,\n    withinRangeStartDate,\n    withinRangeEndDate,\n  } = setRangeDates(selectedDate || dateToDisplay, rangeDate);\n\n  const monthLabel = MONTH_LABELS[focusedMonth];\n\n  const generateDateHtml = (dateToRender) => {\n    const classes = [CALENDAR_DATE_CLASS];\n    const day = dateToRender.getDate();\n    const month = dateToRender.getMonth();\n    const year = dateToRender.getFullYear();\n    const dayOfWeek = dateToRender.getDay();\n\n    const formattedDate = formatDate(dateToRender);\n\n    let tabindex = \"-1\";\n\n    const isDisabled = !isDateWithinMinAndMax(dateToRender, minDate, maxDate);\n    const isSelected = isSameDay(dateToRender, selectedDate);\n\n    if (isSameMonth(dateToRender, prevMonth)) {\n      classes.push(CALENDAR_DATE_PREVIOUS_MONTH_CLASS);\n    }\n\n    if (isSameMonth(dateToRender, focusedDate)) {\n      classes.push(CALENDAR_DATE_CURRENT_MONTH_CLASS);\n    }\n\n    if (isSameMonth(dateToRender, nextMonth)) {\n      classes.push(CALENDAR_DATE_NEXT_MONTH_CLASS);\n    }\n\n    if (isSelected) {\n      classes.push(CALENDAR_DATE_SELECTED_CLASS);\n    }\n\n    if (isSameDay(dateToRender, todaysDate)) {\n      classes.push(CALENDAR_DATE_TODAY_CLASS);\n    }\n\n    if (rangeDate) {\n      if (isSameDay(dateToRender, rangeDate)) {\n        classes.push(CALENDAR_DATE_RANGE_DATE_CLASS);\n      }\n\n      if (isSameDay(dateToRender, rangeStartDate)) {\n        classes.push(CALENDAR_DATE_RANGE_DATE_START_CLASS);\n      }\n\n      if (isSameDay(dateToRender, rangeEndDate)) {\n        classes.push(CALENDAR_DATE_RANGE_DATE_END_CLASS);\n      }\n\n      if (\n        isDateWithinMinAndMax(\n          dateToRender,\n          withinRangeStartDate,\n          withinRangeEndDate,\n        )\n      ) {\n        classes.push(CALENDAR_DATE_WITHIN_RANGE_CLASS);\n      }\n    }\n\n    if (isSameDay(dateToRender, focusedDate)) {\n      tabindex = \"0\";\n      classes.push(CALENDAR_DATE_FOCUSED_CLASS);\n    }\n\n    const monthStr = MONTH_LABELS[month];\n    const dayStr = DAY_OF_WEEK_LABELS[dayOfWeek];\n\n    const btn = document.createElement(\"button\");\n    btn.setAttribute(\"type\", \"button\");\n    btn.setAttribute(\"tabindex\", tabindex);\n    btn.setAttribute(\"class\", classes.join(\" \"));\n    btn.setAttribute(\"data-day\", day);\n    btn.setAttribute(\"data-month\", month + 1);\n    btn.setAttribute(\"data-year\", year);\n    btn.setAttribute(\"data-value\", formattedDate);\n    btn.setAttribute(\n      \"aria-label\",\n      Sanitizer.escapeHTML`${day} ${monthStr} ${year} ${dayStr}`,\n    );\n    btn.setAttribute(\"aria-selected\", isSelected ? \"true\" : \"false\");\n    if (isDisabled === true) {\n      btn.disabled = true;\n    }\n    btn.textContent = day;\n\n    return btn;\n  };\n\n  // set date to first rendered day\n  dateToDisplay = startOfWeek(firstOfMonth);\n\n  const days = [];\n\n  while (\n    days.length < 28 ||\n    dateToDisplay.getMonth() === focusedMonth ||\n    days.length % 7 !== 0\n  ) {\n    days.push(generateDateHtml(dateToDisplay));\n    dateToDisplay = addDays(dateToDisplay, 1);\n  }\n\n  const datesGrid = listToGridHtml(days, 7);\n\n  const newCalendar = calendarEl.cloneNode();\n  newCalendar.dataset.value = currentFormattedDate;\n  newCalendar.style.top = `${datePickerEl.offsetHeight}px`;\n  newCalendar.hidden = false;\n  newCalendar.innerHTML = Sanitizer.escapeHTML`\n    <div tabindex=\"-1\" class=\"${CALENDAR_DATE_PICKER_CLASS}\">\n      <div class=\"${CALENDAR_ROW_CLASS}\">\n        <div class=\"${CALENDAR_CELL_CLASS} ${CALENDAR_CELL_CENTER_ITEMS_CLASS}\">\n          <button\n            type=\"button\"\n            class=\"${CALENDAR_PREVIOUS_YEAR_CLASS}\"\n            aria-label=\"Navigate back one year\"\n            ${prevButtonsDisabled ? `disabled=\"disabled\"` : \"\"}\n          ></button>\n        </div>\n        <div class=\"${CALENDAR_CELL_CLASS} ${CALENDAR_CELL_CENTER_ITEMS_CLASS}\">\n          <button\n            type=\"button\"\n            class=\"${CALENDAR_PREVIOUS_MONTH_CLASS}\"\n            aria-label=\"Navigate back one month\"\n            ${prevButtonsDisabled ? `disabled=\"disabled\"` : \"\"}\n          ></button>\n        </div>\n        <div class=\"${CALENDAR_CELL_CLASS} ${CALENDAR_MONTH_LABEL_CLASS}\">\n          <button\n            type=\"button\"\n            class=\"${CALENDAR_MONTH_SELECTION_CLASS}\" aria-label=\"${monthLabel}. Select month\"\n          >${monthLabel}</button>\n          <button\n            type=\"button\"\n            class=\"${CALENDAR_YEAR_SELECTION_CLASS}\" aria-label=\"${focusedYear}. Select year\"\n          >${focusedYear}</button>\n        </div>\n        <div class=\"${CALENDAR_CELL_CLASS} ${CALENDAR_CELL_CENTER_ITEMS_CLASS}\">\n          <button\n            type=\"button\"\n            class=\"${CALENDAR_NEXT_MONTH_CLASS}\"\n            aria-label=\"Navigate forward one month\"\n            ${nextButtonsDisabled ? `disabled=\"disabled\"` : \"\"}\n          ></button>\n        </div>\n        <div class=\"${CALENDAR_CELL_CLASS} ${CALENDAR_CELL_CENTER_ITEMS_CLASS}\">\n          <button\n            type=\"button\"\n            class=\"${CALENDAR_NEXT_YEAR_CLASS}\"\n            aria-label=\"Navigate forward one year\"\n            ${nextButtonsDisabled ? `disabled=\"disabled\"` : \"\"}\n          ></button>\n        </div>\n      </div>\n    </div>\n    `;\n\n  const table = document.createElement(\"table\");\n  table.setAttribute(\"class\", CALENDAR_TABLE_CLASS);\n\n  const tableHead = document.createElement(\"thead\");\n  table.insertAdjacentElement(\"beforeend\", tableHead);\n  const tableHeadRow = document.createElement(\"tr\");\n  tableHead.insertAdjacentElement(\"beforeend\", tableHeadRow);\n\n  const daysOfWeek = {\n    Sunday: \"S\",\n    Monday: \"M\",\n    Tuesday: \"T\",\n    Wednesday: \"W\",\n    Thursday: \"Th\",\n    Friday: \"Fr\",\n    Saturday: \"S\",\n  };\n\n  Object.keys(daysOfWeek).forEach((key) => {\n    const th = document.createElement(\"th\");\n    th.setAttribute(\"class\", CALENDAR_DAY_OF_WEEK_CLASS);\n    th.setAttribute(\"scope\", \"col\");\n    th.setAttribute(\"aria-label\", key);\n    th.textContent = daysOfWeek[key];\n    tableHeadRow.insertAdjacentElement(\"beforeend\", th);\n  });\n\n  const tableBody = createTableBody(datesGrid);\n  table.insertAdjacentElement(\"beforeend\", tableBody);\n\n  // Container for Years, Months, and Days\n  const datePickerCalendarContainer =\n    newCalendar.querySelector(CALENDAR_DATE_PICKER);\n\n  datePickerCalendarContainer.insertAdjacentElement(\"beforeend\", table);\n\n  calendarEl.parentNode.replaceChild(newCalendar, calendarEl);\n\n  datePickerEl.classList.add(DATE_PICKER_ACTIVE_CLASS);\n\n  const statuses = [];\n\n  if (isSameDay(selectedDate, focusedDate)) {\n    statuses.push(\"Selected date\");\n  }\n\n  if (calendarWasHidden) {\n    statuses.push(\n      \"You can navigate by day using left and right arrows\",\n      \"Weeks by using up and down arrows\",\n      \"Months by using page up and page down keys\",\n      \"Years by using shift plus page up and shift plus page down\",\n      \"Home and end keys navigate to the beginning and end of a week\",\n    );\n    statusEl.textContent = \"\";\n  } else {\n    statuses.push(`${monthLabel} ${focusedYear}`);\n  }\n  statusEl.textContent = statuses.join(\". \");\n\n  return newCalendar;\n};\n\n/**\n * Navigate back one year and display the calendar.\n *\n * @param {HTMLButtonElement} _buttonEl An element within the date picker component\n */\nconst displayPreviousYear = (_buttonEl) => {\n  if (_buttonEl.disabled) return;\n  const { calendarEl, calendarDate, minDate, maxDate } =\n    getDatePickerContext(_buttonEl);\n  let date = subYears(calendarDate, 1);\n  date = keepDateBetweenMinAndMax(date, minDate, maxDate);\n  const newCalendar = renderCalendar(calendarEl, date);\n\n  let nextToFocus = newCalendar.querySelector(CALENDAR_PREVIOUS_YEAR);\n  if (nextToFocus.disabled) {\n    nextToFocus = newCalendar.querySelector(CALENDAR_DATE_PICKER);\n  }\n  nextToFocus.focus();\n};\n\n/**\n * Navigate back one month and display the calendar.\n *\n * @param {HTMLButtonElement} _buttonEl An element within the date picker component\n */\nconst displayPreviousMonth = (_buttonEl) => {\n  if (_buttonEl.disabled) return;\n  const { calendarEl, calendarDate, minDate, maxDate } =\n    getDatePickerContext(_buttonEl);\n  let date = subMonths(calendarDate, 1);\n  date = keepDateBetweenMinAndMax(date, minDate, maxDate);\n  const newCalendar = renderCalendar(calendarEl, date);\n\n  let nextToFocus = newCalendar.querySelector(CALENDAR_PREVIOUS_MONTH);\n  if (nextToFocus.disabled) {\n    nextToFocus = newCalendar.querySelector(CALENDAR_DATE_PICKER);\n  }\n  nextToFocus.focus();\n};\n\n/**\n * Navigate forward one month and display the calendar.\n *\n * @param {HTMLButtonElement} _buttonEl An element within the date picker component\n */\nconst displayNextMonth = (_buttonEl) => {\n  if (_buttonEl.disabled) return;\n  const { calendarEl, calendarDate, minDate, maxDate } =\n    getDatePickerContext(_buttonEl);\n  let date = addMonths(calendarDate, 1);\n  date = keepDateBetweenMinAndMax(date, minDate, maxDate);\n  const newCalendar = renderCalendar(calendarEl, date);\n\n  let nextToFocus = newCalendar.querySelector(CALENDAR_NEXT_MONTH);\n  if (nextToFocus.disabled) {\n    nextToFocus = newCalendar.querySelector(CALENDAR_DATE_PICKER);\n  }\n  nextToFocus.focus();\n};\n\n/**\n * Navigate forward one year and display the calendar.\n *\n * @param {HTMLButtonElement} _buttonEl An element within the date picker component\n */\nconst displayNextYear = (_buttonEl) => {\n  if (_buttonEl.disabled) return;\n  const { calendarEl, calendarDate, minDate, maxDate } =\n    getDatePickerContext(_buttonEl);\n  let date = addYears(calendarDate, 1);\n  date = keepDateBetweenMinAndMax(date, minDate, maxDate);\n  const newCalendar = renderCalendar(calendarEl, date);\n\n  let nextToFocus = newCalendar.querySelector(CALENDAR_NEXT_YEAR);\n  if (nextToFocus.disabled) {\n    nextToFocus = newCalendar.querySelector(CALENDAR_DATE_PICKER);\n  }\n  nextToFocus.focus();\n};\n\n/**\n * Hide the calendar of a date picker component.\n *\n * @param {HTMLElement} el An element within the date picker component\n */\nconst hideCalendar = (el) => {\n  const { datePickerEl, calendarEl, statusEl } = getDatePickerContext(el);\n\n  datePickerEl.classList.remove(DATE_PICKER_ACTIVE_CLASS);\n  calendarEl.hidden = true;\n  statusEl.textContent = \"\";\n};\n\n/**\n * Select a date within the date picker component.\n *\n * @param {HTMLButtonElement} calendarDateEl A date element within the date picker component\n */\nconst selectDate = (calendarDateEl) => {\n  if (calendarDateEl.disabled) return;\n\n  const { datePickerEl, externalInputEl } =\n    getDatePickerContext(calendarDateEl);\n\n  setCalendarValue(calendarDateEl, calendarDateEl.dataset.value);\n  hideCalendar(datePickerEl);\n\n  externalInputEl.focus();\n};\n\n/**\n * Toggle the calendar.\n *\n * @param {HTMLButtonElement} el An element within the date picker component\n */\nconst toggleCalendar = (el) => {\n  if (el.disabled || el.hasAttribute(\"aria-disabled\")) return;\n  const { calendarEl, inputDate, minDate, maxDate, defaultDate } =\n    getDatePickerContext(el);\n\n  if (calendarEl.hidden) {\n    const dateToDisplay = keepDateBetweenMinAndMax(\n      inputDate || defaultDate || today(),\n      minDate,\n      maxDate,\n    );\n    const newCalendar = renderCalendar(calendarEl, dateToDisplay);\n    newCalendar.querySelector(CALENDAR_DATE_FOCUSED).focus();\n  } else {\n    hideCalendar(el);\n  }\n};\n\n/**\n * Update the calendar when visible.\n *\n * @param {HTMLElement} el an element within the date picker\n */\nconst updateCalendarIfVisible = (el) => {\n  const { calendarEl, inputDate, minDate, maxDate } = getDatePickerContext(el);\n  const calendarShown = !calendarEl.hidden;\n\n  if (calendarShown && inputDate) {\n    const dateToDisplay = keepDateBetweenMinAndMax(inputDate, minDate, maxDate);\n    renderCalendar(calendarEl, dateToDisplay);\n  }\n};\n\n// #endregion Calendar - Date Selection View\n\n// #region Calendar - Month Selection View\n/**\n * Display the month selection screen in the date picker.\n *\n * @param {HTMLButtonElement} el An element within the date picker component\n * @returns {HTMLElement} a reference to the new calendar element\n */\nconst displayMonthSelection = (el, monthToDisplay) => {\n  const { calendarEl, statusEl, calendarDate, minDate, maxDate } =\n    getDatePickerContext(el);\n\n  const selectedMonth = calendarDate.getMonth();\n  const focusedMonth = monthToDisplay == null ? selectedMonth : monthToDisplay;\n\n  const months = MONTH_LABELS.map((month, index) => {\n    const monthToCheck = setMonth(calendarDate, index);\n\n    const isDisabled = isDatesMonthOutsideMinOrMax(\n      monthToCheck,\n      minDate,\n      maxDate,\n    );\n\n    let tabindex = \"-1\";\n\n    const classes = [CALENDAR_MONTH_CLASS];\n    const isSelected = index === selectedMonth;\n\n    if (index === focusedMonth) {\n      tabindex = \"0\";\n      classes.push(CALENDAR_MONTH_FOCUSED_CLASS);\n    }\n\n    if (isSelected) {\n      classes.push(CALENDAR_MONTH_SELECTED_CLASS);\n    }\n\n    const btn = document.createElement(\"button\");\n    btn.setAttribute(\"type\", \"button\");\n    btn.setAttribute(\"tabindex\", tabindex);\n    btn.setAttribute(\"class\", classes.join(\" \"));\n    btn.setAttribute(\"data-value\", index);\n    btn.setAttribute(\"data-label\", month);\n    btn.setAttribute(\"aria-selected\", isSelected ? \"true\" : \"false\");\n    if (isDisabled === true) {\n      btn.disabled = true;\n    }\n    btn.textContent = month;\n\n    return btn;\n  });\n\n  const monthsHtml = document.createElement(\"div\");\n  monthsHtml.setAttribute(\"tabindex\", \"-1\");\n  monthsHtml.setAttribute(\"class\", CALENDAR_MONTH_PICKER_CLASS);\n\n  const table = document.createElement(\"table\");\n  table.setAttribute(\"class\", CALENDAR_TABLE_CLASS);\n  table.setAttribute(\"role\", \"presentation\");\n\n  const monthsGrid = listToGridHtml(months, 3);\n  const tableBody = createTableBody(monthsGrid);\n  table.insertAdjacentElement(\"beforeend\", tableBody);\n  monthsHtml.insertAdjacentElement(\"beforeend\", table);\n\n  const newCalendar = calendarEl.cloneNode();\n  newCalendar.insertAdjacentElement(\"beforeend\", monthsHtml);\n  calendarEl.parentNode.replaceChild(newCalendar, calendarEl);\n\n  statusEl.textContent = \"Select a month.\";\n\n  return newCalendar;\n};\n\n/**\n * Select a month in the date picker component.\n *\n * @param {HTMLButtonElement} monthEl An month element within the date picker component\n */\nconst selectMonth = (monthEl) => {\n  if (monthEl.disabled) return;\n  const { calendarEl, calendarDate, minDate, maxDate } =\n    getDatePickerContext(monthEl);\n  const selectedMonth = parseInt(monthEl.dataset.value, 10);\n  let date = setMonth(calendarDate, selectedMonth);\n  date = keepDateBetweenMinAndMax(date, minDate, maxDate);\n  const newCalendar = renderCalendar(calendarEl, date);\n  newCalendar.querySelector(CALENDAR_DATE_FOCUSED).focus();\n};\n\n// #endregion Calendar - Month Selection View\n\n// #region Calendar - Year Selection View\n\n/**\n * Display the year selection screen in the date picker.\n *\n * @param {HTMLButtonElement} el An element within the date picker component\n * @param {number} yearToDisplay year to display in year selection\n * @returns {HTMLElement} a reference to the new calendar element\n */\nconst displayYearSelection = (el, yearToDisplay) => {\n  const { calendarEl, statusEl, calendarDate, minDate, maxDate } =\n    getDatePickerContext(el);\n\n  const selectedYear = calendarDate.getFullYear();\n  const focusedYear = yearToDisplay == null ? selectedYear : yearToDisplay;\n\n  let yearToChunk = focusedYear;\n  yearToChunk -= yearToChunk % YEAR_CHUNK;\n  yearToChunk = Math.max(0, yearToChunk);\n\n  const prevYearChunkDisabled = isDatesYearOutsideMinOrMax(\n    setYear(calendarDate, yearToChunk - 1),\n    minDate,\n    maxDate,\n  );\n\n  const nextYearChunkDisabled = isDatesYearOutsideMinOrMax(\n    setYear(calendarDate, yearToChunk + YEAR_CHUNK),\n    minDate,\n    maxDate,\n  );\n\n  const years = [];\n  let yearIndex = yearToChunk;\n  while (years.length < YEAR_CHUNK) {\n    const isDisabled = isDatesYearOutsideMinOrMax(\n      setYear(calendarDate, yearIndex),\n      minDate,\n      maxDate,\n    );\n\n    let tabindex = \"-1\";\n\n    const classes = [CALENDAR_YEAR_CLASS];\n    const isSelected = yearIndex === selectedYear;\n\n    if (yearIndex === focusedYear) {\n      tabindex = \"0\";\n      classes.push(CALENDAR_YEAR_FOCUSED_CLASS);\n    }\n\n    if (isSelected) {\n      classes.push(CALENDAR_YEAR_SELECTED_CLASS);\n    }\n\n    const btn = document.createElement(\"button\");\n    btn.setAttribute(\"type\", \"button\");\n    btn.setAttribute(\"tabindex\", tabindex);\n    btn.setAttribute(\"class\", classes.join(\" \"));\n    btn.setAttribute(\"data-value\", yearIndex);\n    btn.setAttribute(\"aria-selected\", isSelected ? \"true\" : \"false\");\n    if (isDisabled === true) {\n      btn.disabled = true;\n    }\n    btn.textContent = yearIndex;\n\n    years.push(btn);\n    yearIndex += 1;\n  }\n\n  const newCalendar = calendarEl.cloneNode();\n\n  // create the years calendar wrapper\n  const yearsCalendarWrapper = document.createElement(\"div\");\n  yearsCalendarWrapper.setAttribute(\"tabindex\", \"-1\");\n  yearsCalendarWrapper.setAttribute(\"class\", CALENDAR_YEAR_PICKER_CLASS);\n\n  // create table parent\n  const yearsTableParent = document.createElement(\"table\");\n  yearsTableParent.setAttribute(\"class\", CALENDAR_TABLE_CLASS);\n\n  // create table body and table row\n  const yearsHTMLTableBody = document.createElement(\"tbody\");\n  const yearsHTMLTableBodyRow = document.createElement(\"tr\");\n\n  // create previous button\n  const previousYearsBtn = document.createElement(\"button\");\n  previousYearsBtn.setAttribute(\"type\", \"button\");\n  previousYearsBtn.setAttribute(\"class\", CALENDAR_PREVIOUS_YEAR_CHUNK_CLASS);\n  previousYearsBtn.setAttribute(\n    \"aria-label\",\n    `Navigate back ${YEAR_CHUNK} years`,\n  );\n  if (prevYearChunkDisabled === true) {\n    previousYearsBtn.disabled = true;\n  }\n  previousYearsBtn.innerHTML = Sanitizer.escapeHTML`&nbsp`;\n\n  // create next button\n  const nextYearsBtn = document.createElement(\"button\");\n  nextYearsBtn.setAttribute(\"type\", \"button\");\n  nextYearsBtn.setAttribute(\"class\", CALENDAR_NEXT_YEAR_CHUNK_CLASS);\n  nextYearsBtn.setAttribute(\n    \"aria-label\",\n    `Navigate forward ${YEAR_CHUNK} years`,\n  );\n  if (nextYearChunkDisabled === true) {\n    nextYearsBtn.disabled = true;\n  }\n  nextYearsBtn.innerHTML = Sanitizer.escapeHTML`&nbsp`;\n\n  // create the actual years table\n  const yearsTable = document.createElement(\"table\");\n  yearsTable.setAttribute(\"class\", CALENDAR_TABLE_CLASS);\n  yearsTable.setAttribute(\"role\", \"presentation\");\n\n  // create the years child table\n  const yearsGrid = listToGridHtml(years, 3);\n  const yearsTableBody = createTableBody(yearsGrid);\n\n  // append the grid to the years child table\n  yearsTable.insertAdjacentElement(\"beforeend\", yearsTableBody);\n\n  // create the prev button td and append the prev button\n  const yearsHTMLTableBodyDetailPrev = document.createElement(\"td\");\n  yearsHTMLTableBodyDetailPrev.insertAdjacentElement(\n    \"beforeend\",\n    previousYearsBtn,\n  );\n\n  // create the years td and append the years child table\n  const yearsHTMLTableBodyYearsDetail = document.createElement(\"td\");\n  yearsHTMLTableBodyYearsDetail.setAttribute(\"colspan\", \"3\");\n  yearsHTMLTableBodyYearsDetail.insertAdjacentElement(\"beforeend\", yearsTable);\n\n  // create the next button td and append the next button\n  const yearsHTMLTableBodyDetailNext = document.createElement(\"td\");\n  yearsHTMLTableBodyDetailNext.insertAdjacentElement(\"beforeend\", nextYearsBtn);\n\n  // append the three td to the years child table row\n  yearsHTMLTableBodyRow.insertAdjacentElement(\n    \"beforeend\",\n    yearsHTMLTableBodyDetailPrev,\n  );\n  yearsHTMLTableBodyRow.insertAdjacentElement(\n    \"beforeend\",\n    yearsHTMLTableBodyYearsDetail,\n  );\n  yearsHTMLTableBodyRow.insertAdjacentElement(\n    \"beforeend\",\n    yearsHTMLTableBodyDetailNext,\n  );\n\n  // append the table row to the years child table body\n  yearsHTMLTableBody.insertAdjacentElement(\"beforeend\", yearsHTMLTableBodyRow);\n\n  // append the years table body to the years parent table\n  yearsTableParent.insertAdjacentElement(\"beforeend\", yearsHTMLTableBody);\n\n  // append the parent table to the calendar wrapper\n  yearsCalendarWrapper.insertAdjacentElement(\"beforeend\", yearsTableParent);\n\n  // append the years calender to the new calendar\n  newCalendar.insertAdjacentElement(\"beforeend\", yearsCalendarWrapper);\n\n  // replace calendar\n  calendarEl.parentNode.replaceChild(newCalendar, calendarEl);\n\n  statusEl.textContent = Sanitizer.escapeHTML`Showing years ${yearToChunk} to ${\n    yearToChunk + YEAR_CHUNK - 1\n  }. Select a year.`;\n\n  return newCalendar;\n};\n\n/**\n * Navigate back by years and display the year selection screen.\n *\n * @param {HTMLButtonElement} el An element within the date picker component\n */\nconst displayPreviousYearChunk = (el) => {\n  if (el.disabled) return;\n\n  const { calendarEl, calendarDate, minDate, maxDate } =\n    getDatePickerContext(el);\n  const yearEl = calendarEl.querySelector(CALENDAR_YEAR_FOCUSED);\n  const selectedYear = parseInt(yearEl.textContent, 10);\n\n  let adjustedYear = selectedYear - YEAR_CHUNK;\n  adjustedYear = Math.max(0, adjustedYear);\n\n  const date = setYear(calendarDate, adjustedYear);\n  const cappedDate = keepDateBetweenMinAndMax(date, minDate, maxDate);\n  const newCalendar = displayYearSelection(\n    calendarEl,\n    cappedDate.getFullYear(),\n  );\n\n  let nextToFocus = newCalendar.querySelector(CALENDAR_PREVIOUS_YEAR_CHUNK);\n  if (nextToFocus.disabled) {\n    nextToFocus = newCalendar.querySelector(CALENDAR_YEAR_PICKER);\n  }\n  nextToFocus.focus();\n};\n\n/**\n * Navigate forward by years and display the year selection screen.\n *\n * @param {HTMLButtonElement} el An element within the date picker component\n */\nconst displayNextYearChunk = (el) => {\n  if (el.disabled) return;\n\n  const { calendarEl, calendarDate, minDate, maxDate } =\n    getDatePickerContext(el);\n  const yearEl = calendarEl.querySelector(CALENDAR_YEAR_FOCUSED);\n  const selectedYear = parseInt(yearEl.textContent, 10);\n\n  let adjustedYear = selectedYear + YEAR_CHUNK;\n  adjustedYear = Math.max(0, adjustedYear);\n\n  const date = setYear(calendarDate, adjustedYear);\n  const cappedDate = keepDateBetweenMinAndMax(date, minDate, maxDate);\n  const newCalendar = displayYearSelection(\n    calendarEl,\n    cappedDate.getFullYear(),\n  );\n\n  let nextToFocus = newCalendar.querySelector(CALENDAR_NEXT_YEAR_CHUNK);\n  if (nextToFocus.disabled) {\n    nextToFocus = newCalendar.querySelector(CALENDAR_YEAR_PICKER);\n  }\n  nextToFocus.focus();\n};\n\n/**\n * Select a year in the date picker component.\n *\n * @param {HTMLButtonElement} yearEl A year element within the date picker component\n */\nconst selectYear = (yearEl) => {\n  if (yearEl.disabled) return;\n  const { calendarEl, calendarDate, minDate, maxDate } =\n    getDatePickerContext(yearEl);\n  const selectedYear = parseInt(yearEl.innerHTML, 10);\n  let date = setYear(calendarDate, selectedYear);\n  date = keepDateBetweenMinAndMax(date, minDate, maxDate);\n  const newCalendar = renderCalendar(calendarEl, date);\n  newCalendar.querySelector(CALENDAR_DATE_FOCUSED).focus();\n};\n\n// #endregion Calendar - Year Selection View\n\n// #region Calendar Event Handling\n\n/**\n * Hide the calendar.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handleEscapeFromCalendar = (event) => {\n  const { datePickerEl, externalInputEl } = getDatePickerContext(event.target);\n\n  hideCalendar(datePickerEl);\n  externalInputEl.focus();\n\n  event.preventDefault();\n};\n\n// #endregion Calendar Event Handling\n\n// #region Calendar Date Event Handling\n\n/**\n * Adjust the date and display the calendar if needed.\n *\n * @param {function} adjustDateFn function that returns the adjusted date\n */\nconst adjustCalendar = (adjustDateFn) => (event) => {\n  const { calendarEl, calendarDate, minDate, maxDate } = getDatePickerContext(\n    event.target,\n  );\n\n  const date = adjustDateFn(calendarDate);\n\n  const cappedDate = keepDateBetweenMinAndMax(date, minDate, maxDate);\n  if (!isSameDay(calendarDate, cappedDate)) {\n    const newCalendar = renderCalendar(calendarEl, cappedDate);\n    newCalendar.querySelector(CALENDAR_DATE_FOCUSED).focus();\n  }\n  event.preventDefault();\n};\n\n/**\n * Navigate back one week and display the calendar.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handleUpFromDate = adjustCalendar((date) => subWeeks(date, 1));\n\n/**\n * Navigate forward one week and display the calendar.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handleDownFromDate = adjustCalendar((date) => addWeeks(date, 1));\n\n/**\n * Navigate back one day and display the calendar.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handleLeftFromDate = adjustCalendar((date) => subDays(date, 1));\n\n/**\n * Navigate forward one day and display the calendar.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handleRightFromDate = adjustCalendar((date) => addDays(date, 1));\n\n/**\n * Navigate to the start of the week and display the calendar.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handleHomeFromDate = adjustCalendar((date) => startOfWeek(date));\n\n/**\n * Navigate to the end of the week and display the calendar.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handleEndFromDate = adjustCalendar((date) => endOfWeek(date));\n\n/**\n * Navigate forward one month and display the calendar.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handlePageDownFromDate = adjustCalendar((date) => addMonths(date, 1));\n\n/**\n * Navigate back one month and display the calendar.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handlePageUpFromDate = adjustCalendar((date) => subMonths(date, 1));\n\n/**\n * Navigate forward one year and display the calendar.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handleShiftPageDownFromDate = adjustCalendar((date) => addYears(date, 1));\n\n/**\n * Navigate back one year and display the calendar.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handleShiftPageUpFromDate = adjustCalendar((date) => subYears(date, 1));\n\n/**\n * Set range date classes without re-rendering the calendar. Called when date button is hovered.\n * Returns early if the date hovered is disabled or if there is already a selected date.\n *\n * @param {HTMLElement} dateEl - Calendar date button within the date picker component.\n */\n\nconst handleMouseoverFromDate = (dateEl) => {\n  if (dateEl.disabled) return;\n\n  const hoverDate = parseDateString(dateEl.dataset.value);\n  const { calendarEl, selectedDate, rangeDate } = getDatePickerContext(dateEl);\n\n  if (selectedDate) return;\n\n  const { withinRangeStartDate, withinRangeEndDate } = setRangeDates(\n    hoverDate,\n    rangeDate,\n  );\n\n  const dateButtons = calendarEl.querySelectorAll(\n    `.${CALENDAR_DATE_CURRENT_MONTH_CLASS}`,\n  );\n\n  dateButtons.forEach((button) => {\n    const buttonDate = parseDateString(button.dataset.value);\n    if (\n      isDateWithinMinAndMax(\n        buttonDate,\n        withinRangeStartDate,\n        withinRangeEndDate,\n      )\n    ) {\n      button.classList.add(CALENDAR_DATE_WITHIN_RANGE_CLASS);\n    } else {\n      button.classList.remove(CALENDAR_DATE_WITHIN_RANGE_CLASS);\n    }\n  });\n};\n\n// #endregion Calendar Date Event Handling\n\n// #region Calendar Month Event Handling\n\n/**\n * Adjust the month and display the month selection screen if needed.\n *\n * @param {function} adjustMonthFn function that returns the adjusted month\n */\nconst adjustMonthSelectionScreen = (adjustMonthFn) => (event) => {\n  const monthEl = event.target;\n  const selectedMonth = parseInt(monthEl.dataset.value, 10);\n  const { calendarEl, calendarDate, minDate, maxDate } =\n    getDatePickerContext(monthEl);\n  const currentDate = setMonth(calendarDate, selectedMonth);\n\n  let adjustedMonth = adjustMonthFn(selectedMonth);\n  adjustedMonth = Math.max(0, Math.min(11, adjustedMonth));\n\n  const date = setMonth(calendarDate, adjustedMonth);\n  const cappedDate = keepDateBetweenMinAndMax(date, minDate, maxDate);\n  if (!isSameMonth(currentDate, cappedDate)) {\n    const newCalendar = displayMonthSelection(\n      calendarEl,\n      cappedDate.getMonth(),\n    );\n    newCalendar.querySelector(CALENDAR_MONTH_FOCUSED).focus();\n  }\n  event.preventDefault();\n};\n\n/**\n * Navigate back three months and display the month selection screen.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handleUpFromMonth = adjustMonthSelectionScreen((month) => month - 3);\n\n/**\n * Navigate forward three months and display the month selection screen.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handleDownFromMonth = adjustMonthSelectionScreen((month) => month + 3);\n\n/**\n * Navigate back one month and display the month selection screen.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handleLeftFromMonth = adjustMonthSelectionScreen((month) => month - 1);\n\n/**\n * Navigate forward one month and display the month selection screen.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handleRightFromMonth = adjustMonthSelectionScreen((month) => month + 1);\n\n/**\n * Navigate to the start of the row of months and display the month selection screen.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handleHomeFromMonth = adjustMonthSelectionScreen(\n  (month) => month - (month % 3),\n);\n\n/**\n * Navigate to the end of the row of months and display the month selection screen.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handleEndFromMonth = adjustMonthSelectionScreen(\n  (month) => month + 2 - (month % 3),\n);\n\n/**\n * Navigate to the last month (December) and display the month selection screen.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handlePageDownFromMonth = adjustMonthSelectionScreen(() => 11);\n\n/**\n * Navigate to the first month (January) and display the month selection screen.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handlePageUpFromMonth = adjustMonthSelectionScreen(() => 0);\n\n// #endregion Calendar Month Event Handling\n\n// #region Calendar Year Event Handling\n\n/**\n * Adjust the year and display the year selection screen if needed.\n *\n * @param {function} adjustYearFn function that returns the adjusted year\n */\nconst adjustYearSelectionScreen = (adjustYearFn) => (event) => {\n  const yearEl = event.target;\n  const selectedYear = parseInt(yearEl.dataset.value, 10);\n  const { calendarEl, calendarDate, minDate, maxDate } =\n    getDatePickerContext(yearEl);\n  const currentDate = setYear(calendarDate, selectedYear);\n\n  let adjustedYear = adjustYearFn(selectedYear);\n  adjustedYear = Math.max(0, adjustedYear);\n\n  const date = setYear(calendarDate, adjustedYear);\n  const cappedDate = keepDateBetweenMinAndMax(date, minDate, maxDate);\n  if (!isSameYear(currentDate, cappedDate)) {\n    const newCalendar = displayYearSelection(\n      calendarEl,\n      cappedDate.getFullYear(),\n    );\n    newCalendar.querySelector(CALENDAR_YEAR_FOCUSED).focus();\n  }\n  event.preventDefault();\n};\n\n/**\n * Navigate back three years and display the year selection screen.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handleUpFromYear = adjustYearSelectionScreen((year) => year - 3);\n\n/**\n * Navigate forward three years and display the year selection screen.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handleDownFromYear = adjustYearSelectionScreen((year) => year + 3);\n\n/**\n * Navigate back one year and display the year selection screen.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handleLeftFromYear = adjustYearSelectionScreen((year) => year - 1);\n\n/**\n * Navigate forward one year and display the year selection screen.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handleRightFromYear = adjustYearSelectionScreen((year) => year + 1);\n\n/**\n * Navigate to the start of the row of years and display the year selection screen.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handleHomeFromYear = adjustYearSelectionScreen(\n  (year) => year - (year % 3),\n);\n\n/**\n * Navigate to the end of the row of years and display the year selection screen.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handleEndFromYear = adjustYearSelectionScreen(\n  (year) => year + 2 - (year % 3),\n);\n\n/**\n * Navigate to back 12 years and display the year selection screen.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handlePageUpFromYear = adjustYearSelectionScreen(\n  (year) => year - YEAR_CHUNK,\n);\n\n/**\n * Navigate forward 12 years and display the year selection screen.\n *\n * @param {KeyboardEvent} event the keydown event\n */\nconst handlePageDownFromYear = adjustYearSelectionScreen(\n  (year) => year + YEAR_CHUNK,\n);\n\n// #endregion Calendar Year Event Handling\n\n// #region Focus Handling Event Handling\n\nconst tabHandler = (focusable) => {\n  const getFocusableContext = (el) => {\n    const { calendarEl } = getDatePickerContext(el);\n    const focusableElements = select(focusable, calendarEl);\n\n    const firstTabIndex = 0;\n    const lastTabIndex = focusableElements.length - 1;\n    const firstTabStop = focusableElements[firstTabIndex];\n    const lastTabStop = focusableElements[lastTabIndex];\n    const focusIndex = focusableElements.indexOf(activeElement());\n\n    const isLastTab = focusIndex === lastTabIndex;\n    const isFirstTab = focusIndex === firstTabIndex;\n    const isNotFound = focusIndex === -1;\n\n    return {\n      focusableElements,\n      isNotFound,\n      firstTabStop,\n      isFirstTab,\n      lastTabStop,\n      isLastTab,\n    };\n  };\n\n  return {\n    tabAhead(event) {\n      const { firstTabStop, isLastTab, isNotFound } = getFocusableContext(\n        event.target,\n      );\n\n      if (isLastTab || isNotFound) {\n        event.preventDefault();\n        firstTabStop.focus();\n      }\n    },\n    tabBack(event) {\n      const { lastTabStop, isFirstTab, isNotFound } = getFocusableContext(\n        event.target,\n      );\n\n      if (isFirstTab || isNotFound) {\n        event.preventDefault();\n        lastTabStop.focus();\n      }\n    },\n  };\n};\n\nconst datePickerTabEventHandler = tabHandler(DATE_PICKER_FOCUSABLE);\nconst monthPickerTabEventHandler = tabHandler(MONTH_PICKER_FOCUSABLE);\nconst yearPickerTabEventHandler = tabHandler(YEAR_PICKER_FOCUSABLE);\n\n// #endregion Focus Handling Event Handling\n\n// #region Date Picker Event Delegation Registration / Component\n\nconst datePickerEvents = {\n  [CLICK]: {\n    [DATE_PICKER_BUTTON]() {\n      toggleCalendar(this);\n    },\n    [CALENDAR_DATE]() {\n      selectDate(this);\n    },\n    [CALENDAR_MONTH]() {\n      selectMonth(this);\n    },\n    [CALENDAR_YEAR]() {\n      selectYear(this);\n    },\n    [CALENDAR_PREVIOUS_MONTH]() {\n      displayPreviousMonth(this);\n    },\n    [CALENDAR_NEXT_MONTH]() {\n      displayNextMonth(this);\n    },\n    [CALENDAR_PREVIOUS_YEAR]() {\n      displayPreviousYear(this);\n    },\n    [CALENDAR_NEXT_YEAR]() {\n      displayNextYear(this);\n    },\n    [CALENDAR_PREVIOUS_YEAR_CHUNK]() {\n      displayPreviousYearChunk(this);\n    },\n    [CALENDAR_NEXT_YEAR_CHUNK]() {\n      displayNextYearChunk(this);\n    },\n    [CALENDAR_MONTH_SELECTION]() {\n      const newCalendar = displayMonthSelection(this);\n      newCalendar.querySelector(CALENDAR_MONTH_FOCUSED).focus();\n    },\n    [CALENDAR_YEAR_SELECTION]() {\n      const newCalendar = displayYearSelection(this);\n      newCalendar.querySelector(CALENDAR_YEAR_FOCUSED).focus();\n    },\n  },\n  keyup: {\n    [DATE_PICKER_CALENDAR](event) {\n      const keydown = this.dataset.keydownKeyCode;\n      if (`${event.keyCode}` !== keydown) {\n        event.preventDefault();\n      }\n    },\n  },\n  keydown: {\n    [DATE_PICKER_EXTERNAL_INPUT](event) {\n      if (event.keyCode === ENTER_KEYCODE) {\n        validateDateInput(this);\n      }\n    },\n    [CALENDAR_DATE]: keymap({\n      Up: handleUpFromDate,\n      ArrowUp: handleUpFromDate,\n      Down: handleDownFromDate,\n      ArrowDown: handleDownFromDate,\n      Left: handleLeftFromDate,\n      ArrowLeft: handleLeftFromDate,\n      Right: handleRightFromDate,\n      ArrowRight: handleRightFromDate,\n      Home: handleHomeFromDate,\n      End: handleEndFromDate,\n      PageDown: handlePageDownFromDate,\n      PageUp: handlePageUpFromDate,\n      \"Shift+PageDown\": handleShiftPageDownFromDate,\n      \"Shift+PageUp\": handleShiftPageUpFromDate,\n      Tab: datePickerTabEventHandler.tabAhead,\n    }),\n    [CALENDAR_DATE_PICKER]: keymap({\n      Tab: datePickerTabEventHandler.tabAhead,\n      \"Shift+Tab\": datePickerTabEventHandler.tabBack,\n    }),\n    [CALENDAR_MONTH]: keymap({\n      Up: handleUpFromMonth,\n      ArrowUp: handleUpFromMonth,\n      Down: handleDownFromMonth,\n      ArrowDown: handleDownFromMonth,\n      Left: handleLeftFromMonth,\n      ArrowLeft: handleLeftFromMonth,\n      Right: handleRightFromMonth,\n      ArrowRight: handleRightFromMonth,\n      Home: handleHomeFromMonth,\n      End: handleEndFromMonth,\n      PageDown: handlePageDownFromMonth,\n      PageUp: handlePageUpFromMonth,\n    }),\n    [CALENDAR_MONTH_PICKER]: keymap({\n      Tab: monthPickerTabEventHandler.tabAhead,\n      \"Shift+Tab\": monthPickerTabEventHandler.tabBack,\n    }),\n    [CALENDAR_YEAR]: keymap({\n      Up: handleUpFromYear,\n      ArrowUp: handleUpFromYear,\n      Down: handleDownFromYear,\n      ArrowDown: handleDownFromYear,\n      Left: handleLeftFromYear,\n      ArrowLeft: handleLeftFromYear,\n      Right: handleRightFromYear,\n      ArrowRight: handleRightFromYear,\n      Home: handleHomeFromYear,\n      End: handleEndFromYear,\n      PageDown: handlePageDownFromYear,\n      PageUp: handlePageUpFromYear,\n    }),\n    [CALENDAR_YEAR_PICKER]: keymap({\n      Tab: yearPickerTabEventHandler.tabAhead,\n      \"Shift+Tab\": yearPickerTabEventHandler.tabBack,\n    }),\n    [DATE_PICKER_CALENDAR](event) {\n      this.dataset.keydownKeyCode = event.keyCode;\n    },\n    [DATE_PICKER](event) {\n      const keyMap = keymap({\n        Escape: handleEscapeFromCalendar,\n      });\n\n      keyMap(event);\n    },\n  },\n  focusout: {\n    [DATE_PICKER_EXTERNAL_INPUT]() {\n      validateDateInput(this);\n    },\n    [DATE_PICKER](event) {\n      if (!this.contains(event.relatedTarget)) {\n        hideCalendar(this);\n      }\n    },\n  },\n  input: {\n    [DATE_PICKER_EXTERNAL_INPUT]() {\n      reconcileInputValues(this);\n      updateCalendarIfVisible(this);\n    },\n  },\n};\n\nif (!isIosDevice()) {\n  datePickerEvents.mouseover = {\n    [CALENDAR_DATE_CURRENT_MONTH]() {\n      handleMouseoverFromDate(this);\n    },\n  };\n}\n\nconst datePicker = behavior(datePickerEvents, {\n  init(root) {\n    selectOrMatches(DATE_PICKER, root).forEach((datePickerEl) => {\n      enhanceDatePicker(datePickerEl);\n    });\n  },\n  getDatePickerContext,\n  disable,\n  ariaDisable,\n  enable,\n  isDateInputInvalid,\n  setCalendarValue,\n  validateDateInput,\n  renderCalendar,\n  updateCalendarIfVisible,\n});\n\n// #endregion Date Picker Event Delegation Registration / Component\n\nmodule.exports = datePicker;\n","const behavior = require(\"../../uswds-core/src/js/utils/behavior\");\nconst select = require(\"../../uswds-core/src/js/utils/select\");\nconst selectOrMatches = require(\"../../uswds-core/src/js/utils/select-or-matches\");\nconst { prefix: PREFIX } = require(\"../../uswds-core/src/js/config\");\nconst {\n  getDatePickerContext,\n  isDateInputInvalid,\n  updateCalendarIfVisible,\n} = require(\"../../usa-date-picker/src/index\");\n\nconst DATE_PICKER_CLASS = `${PREFIX}-date-picker`;\nconst DATE_RANGE_PICKER_CLASS = `${PREFIX}-date-range-picker`;\nconst DATE_RANGE_PICKER_RANGE_START_CLASS = `${DATE_RANGE_PICKER_CLASS}__range-start`;\nconst DATE_RANGE_PICKER_RANGE_END_CLASS = `${DATE_RANGE_PICKER_CLASS}__range-end`;\n\nconst DATE_PICKER = `.${DATE_PICKER_CLASS}`;\nconst DATE_RANGE_PICKER = `.${DATE_RANGE_PICKER_CLASS}`;\nconst DATE_RANGE_PICKER_RANGE_START = `.${DATE_RANGE_PICKER_RANGE_START_CLASS}`;\nconst DATE_RANGE_PICKER_RANGE_END = `.${DATE_RANGE_PICKER_RANGE_END_CLASS}`;\n\nconst DEFAULT_MIN_DATE = \"0000-01-01\";\n\n/**\n * The properties and elements within the date range picker.\n * @typedef {Object} DateRangePickerContext\n * @property {HTMLElement} dateRangePickerEl\n * @property {HTMLElement} rangeStartEl\n * @property {HTMLElement} rangeEndEl\n */\n\n/**\n * Get an object of the properties and elements belonging directly to the given\n * date picker component.\n *\n * @param {HTMLElement} el the element within the date picker\n * @returns {DateRangePickerContext} elements\n */\nconst getDateRangePickerContext = (el) => {\n  const dateRangePickerEl = el.closest(DATE_RANGE_PICKER);\n\n  if (!dateRangePickerEl) {\n    throw new Error(`Element is missing outer ${DATE_RANGE_PICKER}`);\n  }\n\n  const rangeStartEl = dateRangePickerEl.querySelector(\n    DATE_RANGE_PICKER_RANGE_START,\n  );\n  const rangeEndEl = dateRangePickerEl.querySelector(\n    DATE_RANGE_PICKER_RANGE_END,\n  );\n\n  return {\n    dateRangePickerEl,\n    rangeStartEl,\n    rangeEndEl,\n  };\n};\n\n/**\n * handle update from range start date picker\n *\n * @param {HTMLElement} el an element within the date range picker\n */\nconst handleRangeStartUpdate = (el) => {\n  const { dateRangePickerEl, rangeStartEl, rangeEndEl } =\n    getDateRangePickerContext(el);\n  const { internalInputEl } = getDatePickerContext(rangeStartEl);\n  const updatedDate = internalInputEl.value;\n\n  if (updatedDate && !isDateInputInvalid(internalInputEl)) {\n    rangeEndEl.dataset.minDate = updatedDate;\n    rangeEndEl.dataset.rangeDate = updatedDate;\n    rangeEndEl.dataset.defaultDate = updatedDate;\n  } else {\n    rangeEndEl.dataset.minDate = dateRangePickerEl.dataset.minDate || \"\";\n    rangeEndEl.dataset.rangeDate = \"\";\n    rangeEndEl.dataset.defaultDate = \"\";\n  }\n\n  updateCalendarIfVisible(rangeEndEl);\n};\n\n/**\n * handle update from range start date picker\n *\n * @param {HTMLElement} el an element within the date range picker\n */\nconst handleRangeEndUpdate = (el) => {\n  const { dateRangePickerEl, rangeStartEl, rangeEndEl } =\n    getDateRangePickerContext(el);\n  const { internalInputEl } = getDatePickerContext(rangeEndEl);\n  const updatedDate = internalInputEl.value;\n\n  if (updatedDate && !isDateInputInvalid(internalInputEl)) {\n    rangeStartEl.dataset.maxDate = updatedDate;\n    rangeStartEl.dataset.rangeDate = updatedDate;\n    rangeStartEl.dataset.defaultDate = updatedDate;\n  } else {\n    rangeStartEl.dataset.maxDate = dateRangePickerEl.dataset.maxDate || \"\";\n    rangeStartEl.dataset.rangeDate = \"\";\n    rangeStartEl.dataset.defaultDate = \"\";\n  }\n\n  updateCalendarIfVisible(rangeStartEl);\n};\n\n/**\n * Enhance an input with the date picker elements\n *\n * @param {HTMLElement} el The initial wrapping element of the date range picker component\n */\nconst enhanceDateRangePicker = (el) => {\n  const dateRangePickerEl = el.closest(DATE_RANGE_PICKER);\n\n  const [rangeStart, rangeEnd] = select(DATE_PICKER, dateRangePickerEl);\n\n  if (!rangeStart) {\n    throw new Error(\n      `${DATE_RANGE_PICKER} is missing inner two '${DATE_PICKER}' elements`,\n    );\n  }\n\n  if (!rangeEnd) {\n    throw new Error(\n      `${DATE_RANGE_PICKER} is missing second '${DATE_PICKER}' element`,\n    );\n  }\n\n  rangeStart.classList.add(DATE_RANGE_PICKER_RANGE_START_CLASS);\n  rangeEnd.classList.add(DATE_RANGE_PICKER_RANGE_END_CLASS);\n\n  if (!dateRangePickerEl.dataset.minDate) {\n    dateRangePickerEl.dataset.minDate = DEFAULT_MIN_DATE;\n  }\n\n  const { minDate } = dateRangePickerEl.dataset;\n  rangeStart.dataset.minDate = minDate;\n  rangeEnd.dataset.minDate = minDate;\n\n  const { maxDate } = dateRangePickerEl.dataset;\n  if (maxDate) {\n    rangeStart.dataset.maxDate = maxDate;\n    rangeEnd.dataset.maxDate = maxDate;\n  }\n\n  handleRangeStartUpdate(dateRangePickerEl);\n  handleRangeEndUpdate(dateRangePickerEl);\n};\n\nconst dateRangePicker = behavior(\n  {\n    \"input change\": {\n      [DATE_RANGE_PICKER_RANGE_START]() {\n        handleRangeStartUpdate(this);\n      },\n      [DATE_RANGE_PICKER_RANGE_END]() {\n        handleRangeEndUpdate(this);\n      },\n    },\n  },\n  {\n    init(root) {\n      selectOrMatches(DATE_RANGE_PICKER, root).forEach((dateRangePickerEl) => {\n        enhanceDateRangePicker(dateRangePickerEl);\n      });\n    },\n  },\n);\n\nmodule.exports = dateRangePicker;\n","const selectOrMatches = require(\"../../uswds-core/src/js/utils/select-or-matches\");\nconst behavior = require(\"../../uswds-core/src/js/utils/behavior\");\nconst Sanitizer = require(\"../../uswds-core/src/js/utils/sanitizer\");\nconst { prefix: PREFIX } = require(\"../../uswds-core/src/js/config\");\n\nconst DROPZONE_CLASS = `${PREFIX}-file-input`;\nconst DROPZONE = `.${DROPZONE_CLASS}`;\nconst INPUT_CLASS = `${PREFIX}-file-input__input`;\nconst TARGET_CLASS = `${PREFIX}-file-input__target`;\nconst INPUT = `.${INPUT_CLASS}`;\nconst BOX_CLASS = `${PREFIX}-file-input__box`;\nconst INSTRUCTIONS_CLASS = `${PREFIX}-file-input__instructions`;\nconst PREVIEW_CLASS = `${PREFIX}-file-input__preview`;\nconst PREVIEW_HEADING_CLASS = `${PREFIX}-file-input__preview-heading`;\nconst DISABLED_CLASS = `${PREFIX}-file-input--disabled`;\nconst CHOOSE_CLASS = `${PREFIX}-file-input__choose`;\nconst ACCEPTED_FILE_MESSAGE_CLASS = `${PREFIX}-file-input__accepted-files-message`;\nconst DRAG_TEXT_CLASS = `${PREFIX}-file-input__drag-text`;\nconst DRAG_CLASS = `${PREFIX}-file-input--drag`;\nconst LOADING_CLASS = \"is-loading\";\nconst INVALID_FILE_CLASS = \"has-invalid-file\";\nconst GENERIC_PREVIEW_CLASS_NAME = `${PREFIX}-file-input__preview-image`;\nconst GENERIC_PREVIEW_CLASS = `${GENERIC_PREVIEW_CLASS_NAME}--generic`;\nconst PDF_PREVIEW_CLASS = `${GENERIC_PREVIEW_CLASS_NAME}--pdf`;\nconst WORD_PREVIEW_CLASS = `${GENERIC_PREVIEW_CLASS_NAME}--word`;\nconst VIDEO_PREVIEW_CLASS = `${GENERIC_PREVIEW_CLASS_NAME}--video`;\nconst EXCEL_PREVIEW_CLASS = `${GENERIC_PREVIEW_CLASS_NAME}--excel`;\nconst SR_ONLY_CLASS = `${PREFIX}-sr-only`;\nconst SPACER_GIF =\n  \"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\";\nconst DEFAULT_ERROR_LABEL_TEXT = \"Error: This is not a valid file type.\";\n\nlet TYPE_IS_VALID = Boolean(true); // logic gate for change listener\nlet DEFAULT_ARIA_LABEL_TEXT = \"\";\nlet DEFAULT_FILE_STATUS_TEXT = \"\";\n\n/**\n * The properties and elements within the file input.\n * @typedef {Object} FileInputContext\n * @property {HTMLDivElement} dropZoneEl\n * @property {HTMLInputElement} inputEl\n */\n\n/**\n * Get an object of the properties and elements belonging directly to the given\n * file input component.\n *\n * @param {HTMLElement} el the element within the file input\n * @returns {FileInputContext} elements\n */\nconst getFileInputContext = (el) => {\n  const dropZoneEl = el.closest(DROPZONE);\n\n  if (!dropZoneEl) {\n    throw new Error(`Element is missing outer ${DROPZONE}`);\n  }\n\n  const inputEl = dropZoneEl.querySelector(INPUT);\n\n  return {\n    dropZoneEl,\n    inputEl,\n  };\n};\n\n/**\n * Disable the file input component\n *\n * @param {HTMLElement} el An element within the file input component\n */\nconst disable = (el) => {\n  const { dropZoneEl, inputEl } = getFileInputContext(el);\n\n  inputEl.disabled = true;\n  dropZoneEl.classList.add(DISABLED_CLASS);\n};\n\n/**\n * Set aria-disabled attribute to file input component\n *\n * @param {HTMLElement} el An element within the file input component\n */\nconst ariaDisable = (el) => {\n  const { dropZoneEl } = getFileInputContext(el);\n\n  dropZoneEl.classList.add(DISABLED_CLASS);\n};\n\n/**\n * Enable the file input component\n *\n * @param {HTMLElement} el An element within the file input component\n */\nconst enable = (el) => {\n  const { dropZoneEl, inputEl } = getFileInputContext(el);\n\n  inputEl.disabled = false;\n  dropZoneEl.classList.remove(DISABLED_CLASS);\n  dropZoneEl.removeAttribute(\"aria-disabled\");\n};\n\n/**\n *\n * @param {String} s special characters\n * @returns {String} replaces specified values\n */\nconst replaceName = (s) => {\n  const c = s.charCodeAt(0);\n  if (c === 32) return \"-\";\n  if (c >= 65 && c <= 90) return `img_${s.toLowerCase()}`;\n  return `__${(\"000\", c.toString(16)).slice(-4)}`;\n};\n\n/**\n * Creates an ID name for each file that strips all invalid characters.\n * @param {String} name - name of the file added to file input (searchvalue)\n * @returns {String} same characters as the name with invalid chars removed (newvalue)\n */\nconst makeSafeForID = (name) => name.replace(/[^a-z0-9]/g, replaceName);\n\n// Takes a generated safe ID and creates a unique ID.\nconst createUniqueID = (name) =>\n  `${name}-${Math.floor(Date.now().toString() / 1000)}`;\n\n/**\n * Determines if the singular or plural item label should be used\n * Determination is based on the presence of the `multiple` attribute\n *\n * @param {HTMLInputElement} fileInputEl - The input element.\n * @returns {HTMLDivElement} The singular or plural version of \"item\"\n */\nconst getItemsLabel = (fileInputEl) => {\n  const acceptsMultiple = fileInputEl.hasAttribute(\"multiple\");\n  const itemsLabel = acceptsMultiple ? \"files\" : \"file\";\n\n  return itemsLabel;\n};\n\n/**\n * Scaffold the file input component with a parent wrapper and\n * Create a target area overlay for drag and drop functionality\n *\n * @param {HTMLInputElement} fileInputEl - The input element.\n * @returns {HTMLDivElement} The drag and drop target area.\n */\nconst createTargetArea = (fileInputEl) => {\n  const fileInputParent = document.createElement(\"div\");\n  const dropTarget = document.createElement(\"div\");\n  const box = document.createElement(\"div\");\n\n  // Adds class names and other attributes\n  fileInputEl.classList.remove(DROPZONE_CLASS);\n  fileInputEl.classList.add(INPUT_CLASS);\n  fileInputParent.classList.add(DROPZONE_CLASS);\n  box.classList.add(BOX_CLASS);\n  dropTarget.classList.add(TARGET_CLASS);\n\n  // Adds child elements to the DOM\n  dropTarget.prepend(box);\n  fileInputEl.parentNode.insertBefore(dropTarget, fileInputEl);\n  fileInputEl.parentNode.insertBefore(fileInputParent, dropTarget);\n  dropTarget.appendChild(fileInputEl);\n  fileInputParent.appendChild(dropTarget);\n\n  return dropTarget;\n};\n\n/**\n * Build the visible element with default interaction instructions.\n *\n * @param {HTMLInputElement} fileInputEl - The input element.\n * @returns {HTMLDivElement} The container for visible interaction instructions.\n */\nconst createVisibleInstructions = (fileInputEl) => {\n  const fileInputParent = fileInputEl.closest(DROPZONE);\n  const itemsLabel = getItemsLabel(fileInputEl);\n  const instructions = document.createElement(\"div\");\n  const dragText = `Drag ${itemsLabel} here or`;\n  const chooseText = \"choose from folder\";\n\n  // Create instructions text for aria-label\n  DEFAULT_ARIA_LABEL_TEXT = `${dragText} ${chooseText}`;\n\n  // Adds class names and other attributes\n  instructions.classList.add(INSTRUCTIONS_CLASS);\n  instructions.setAttribute(\"aria-hidden\", \"true\");\n\n  // Add initial instructions for input usage\n  fileInputEl.setAttribute(\"aria-label\", DEFAULT_ARIA_LABEL_TEXT);\n  instructions.innerHTML = Sanitizer.escapeHTML`<span class=\"${DRAG_TEXT_CLASS}\">${dragText}</span> <span class=\"${CHOOSE_CLASS}\">${chooseText}</span>`;\n\n  // Add the instructions element to the DOM\n  fileInputEl.parentNode.insertBefore(instructions, fileInputEl);\n\n  // IE11 and Edge do not support drop files on file inputs, so we've removed text that indicates that\n  if (\n    /rv:11.0/i.test(navigator.userAgent) ||\n    /Edge\\/\\d./i.test(navigator.userAgent)\n  ) {\n    fileInputParent.querySelector(`.${DRAG_TEXT_CLASS}`).outerHTML = \"\";\n  }\n\n  return instructions;\n};\n\n/**\n * Build a screen reader-only message element that contains file status updates and\n * Create and set the default file status message\n *\n * @param {HTMLInputElement} fileInputEl - The input element.\n */\nconst createSROnlyStatus = (fileInputEl) => {\n  const statusEl = document.createElement(\"div\");\n  const itemsLabel = getItemsLabel(fileInputEl);\n  const fileInputParent = fileInputEl.closest(DROPZONE);\n  const fileInputTarget = fileInputEl.closest(`.${TARGET_CLASS}`);\n\n  DEFAULT_FILE_STATUS_TEXT = `No ${itemsLabel} selected.`;\n\n  // Adds class names and other attributes\n  statusEl.classList.add(SR_ONLY_CLASS);\n  statusEl.setAttribute(\"aria-live\", \"polite\");\n\n  // Add initial file status message\n  statusEl.textContent = DEFAULT_FILE_STATUS_TEXT;\n\n  // Add the status element to the DOM\n  fileInputParent.insertBefore(statusEl, fileInputTarget);\n};\n\n/**\n * Scaffold the component with all required elements\n *\n * @param {HTMLInputElement} fileInputEl - The original input element.\n */\nconst enhanceFileInput = (fileInputEl) => {\n  const isInputDisabled =\n    fileInputEl.hasAttribute(\"aria-disabled\") ||\n    fileInputEl.hasAttribute(\"disabled\");\n  const dropTarget = createTargetArea(fileInputEl);\n  const instructions = createVisibleInstructions(fileInputEl);\n  const { dropZoneEl } = getFileInputContext(fileInputEl);\n\n  if (isInputDisabled) {\n    dropZoneEl.classList.add(DISABLED_CLASS);\n  } else {\n    createSROnlyStatus(fileInputEl);\n  }\n\n  return { instructions, dropTarget };\n};\n\n/**\n * Removes image previews\n * We want to start with a clean list every time files are added to the file input\n *\n * @param {HTMLDivElement} dropTarget - The drag and drop target area.\n * @param {HTMLDivElement} instructions - The container for visible interaction instructions.\n */\nconst removeOldPreviews = (dropTarget, instructions) => {\n  const filePreviews = dropTarget.querySelectorAll(`.${PREVIEW_CLASS}`);\n  const currentPreviewHeading = dropTarget.querySelector(\n    `.${PREVIEW_HEADING_CLASS}`,\n  );\n  const currentErrorMessage = dropTarget.querySelector(\n    `.${ACCEPTED_FILE_MESSAGE_CLASS}`,\n  );\n\n  /**\n   * finds the parent of the passed node and removes the child\n   * @param {HTMLElement} node\n   */\n  const removeImages = (node) => {\n    node.parentNode.removeChild(node);\n  };\n\n  // Remove the heading above the previews\n  if (currentPreviewHeading) {\n    currentPreviewHeading.outerHTML = \"\";\n  }\n\n  // Remove existing error messages\n  if (currentErrorMessage) {\n    currentErrorMessage.outerHTML = \"\";\n    dropTarget.classList.remove(INVALID_FILE_CLASS);\n  }\n\n  // Get rid of existing previews if they exist, show instructions\n  if (filePreviews !== null) {\n    if (instructions) {\n      instructions.removeAttribute(\"hidden\");\n    }\n    Array.prototype.forEach.call(filePreviews, removeImages);\n  }\n};\n\n/**\n * Update the screen reader-only status message after interaction\n *\n * @param {HTMLDivElement} statusElement - The screen reader-only container for file status updates.\n * @param {Object} fileNames - The selected files found in the fileList object.\n * @param {Array} fileStore - The array of uploaded file names created from the fileNames object.\n */\nconst updateStatusMessage = (statusElement, fileNames, fileStore) => {\n  const statusEl = statusElement;\n  let statusMessage = DEFAULT_FILE_STATUS_TEXT;\n\n  // If files added, update the status message with file name(s)\n  if (fileNames.length === 1) {\n    statusMessage = `You have selected the file: ${fileStore}`;\n  } else if (fileNames.length > 1) {\n    statusMessage = `You have selected ${\n      fileNames.length\n    } files: ${fileStore.join(\", \")}`;\n  }\n\n  // Add delay to encourage screen reader readout\n  setTimeout(() => {\n    statusEl.textContent = statusMessage;\n  }, 1000);\n};\n\n/**\n * Show the preview heading, hide the initial instructions and\n * Update the aria-label with new instructions text\n *\n * @param {HTMLInputElement} fileInputEl - The input element.\n * @param {Object} fileNames - The selected files found in the fileList object.\n */\nconst addPreviewHeading = (fileInputEl, fileNames) => {\n  const filePreviewsHeading = document.createElement(\"div\");\n  const dropTarget = fileInputEl.closest(`.${TARGET_CLASS}`);\n  const instructions = dropTarget.querySelector(`.${INSTRUCTIONS_CLASS}`);\n  let changeItemText = \"Change file\";\n  let previewHeadingText = \"\";\n\n  if (fileNames.length === 1) {\n    previewHeadingText = Sanitizer.escapeHTML`Selected file <span class=\"usa-file-input__choose\">${changeItemText}</span>`;\n  } else if (fileNames.length > 1) {\n    changeItemText = \"Change files\";\n    previewHeadingText = Sanitizer.escapeHTML`${fileNames.length} files selected <span class=\"usa-file-input__choose\">${changeItemText}</span>`;\n  }\n\n  // Hides null state content and sets preview heading\n  instructions.setAttribute(\"hidden\", \"true\");\n  filePreviewsHeading.classList.add(PREVIEW_HEADING_CLASS);\n  filePreviewsHeading.innerHTML = previewHeadingText;\n  dropTarget.insertBefore(filePreviewsHeading, instructions);\n\n  // Update aria label to match the visible action text\n  fileInputEl.setAttribute(\"aria-label\", changeItemText);\n};\n\n/** Add an error listener to the image preview to set a fallback image\n * @param {HTMLImageElement} previewImage - The image element\n * @param {String} fallbackClass - The CSS class of the fallback image\n */\nconst setPreviewFallback = (previewImage, fallbackClass) => {\n  previewImage.addEventListener(\n    \"error\",\n    () => {\n      const localPreviewImage = previewImage; // to avoid no-param-reassign from ESLint\n      localPreviewImage.src = SPACER_GIF;\n      localPreviewImage.classList.add(fallbackClass);\n    },\n    { once: true },\n  );\n};\n\n/**\n * When new files are applied to file input, this function generates previews\n * and removes old ones.\n *\n * @param {event} e\n * @param {HTMLInputElement} fileInputEl - The input element.\n * @param {HTMLDivElement} instructions - The container for visible interaction instructions.\n * @param {HTMLDivElement} dropTarget - The drag and drop target area.\n */\n\nconst handleChange = (e, fileInputEl, instructions, dropTarget) => {\n  const fileNames = e.target.files;\n  const inputParent = dropTarget.closest(`.${DROPZONE_CLASS}`);\n  const statusElement = inputParent.querySelector(`.${SR_ONLY_CLASS}`);\n  const fileStore = [];\n\n  // First, get rid of existing previews\n  removeOldPreviews(dropTarget, instructions);\n\n  // Then, iterate through files list and create previews\n  for (let i = 0; i < fileNames.length; i += 1) {\n    const reader = new FileReader();\n    const fileName = fileNames[i].name;\n    let imageId;\n\n    // Push updated file names into the store array\n    fileStore.push(fileName);\n\n    // Starts with a loading image while preview is created\n    reader.onloadstart = function createLoadingImage() {\n      imageId = createUniqueID(makeSafeForID(fileName));\n\n      instructions.insertAdjacentHTML(\n        \"afterend\",\n        Sanitizer.escapeHTML`<div class=\"${PREVIEW_CLASS}\" aria-hidden=\"true\">\n          <img id=\"${imageId}\" src=\"${SPACER_GIF}\" alt=\"\" class=\"${GENERIC_PREVIEW_CLASS_NAME} ${LOADING_CLASS}\"/>${fileName}\n        <div>`,\n      );\n    };\n\n    // Not all files will be able to generate previews. In case this happens, we provide several types \"generic previews\" based on the file extension.\n    reader.onloadend = function createFilePreview() {\n      const previewImage = document.getElementById(imageId);\n      const fileExtension = fileName.split(\".\").pop();\n      if (fileExtension === \"pdf\") {\n        setPreviewFallback(previewImage, PDF_PREVIEW_CLASS);\n      } else if (\n        fileExtension === \"doc\" ||\n        fileExtension === \"docx\" ||\n        fileExtension === \"pages\"\n      ) {\n        setPreviewFallback(previewImage, WORD_PREVIEW_CLASS);\n      } else if (\n        fileExtension === \"xls\" ||\n        fileExtension === \"xlsx\" ||\n        fileExtension === \"numbers\"\n      ) {\n        setPreviewFallback(previewImage, EXCEL_PREVIEW_CLASS);\n      } else if (fileExtension === \"mov\" || fileExtension === \"mp4\") {\n        setPreviewFallback(previewImage, VIDEO_PREVIEW_CLASS);\n      } else {\n        setPreviewFallback(previewImage, GENERIC_PREVIEW_CLASS);\n      }\n\n      // Removes loader and displays preview\n      previewImage.classList.remove(LOADING_CLASS);\n      previewImage.src = reader.result;\n    };\n\n    if (fileNames[i]) {\n      reader.readAsDataURL(fileNames[i]);\n    }\n  }\n\n  if (fileNames.length === 0) {\n    // Reset input aria-label with default message\n    fileInputEl.setAttribute(\"aria-label\", DEFAULT_ARIA_LABEL_TEXT);\n  } else {\n    addPreviewHeading(fileInputEl, fileNames);\n  }\n\n  updateStatusMessage(statusElement, fileNames, fileStore);\n};\n\n/**\n * When using an Accept attribute, invalid files will be hidden from\n * file browser, but they can still be dragged to the input. This\n * function prevents them from being dragged and removes error states\n * when correct files are added.\n *\n * @param {event} e\n * @param {HTMLInputElement} fileInputEl - The input element.\n * @param {HTMLDivElement} instructions - The container for visible interaction instructions.\n * @param {HTMLDivElement} dropTarget - The drag and drop target area.\n */\nconst preventInvalidFiles = (e, fileInputEl, instructions, dropTarget) => {\n  const acceptedFilesAttr = fileInputEl.getAttribute(\"accept\");\n  dropTarget.classList.remove(INVALID_FILE_CLASS);\n\n  /**\n   * We can probably move away from this once IE11 support stops, and replace\n   * with a simple es `.includes`\n   * check if element is in array\n   * check if 1 or more alphabets are in string\n   * if element is present return the position value and -1 otherwise\n   * @param {Object} file\n   * @param {String} value\n   * @returns {Boolean}\n   */\n  const isIncluded = (file, value) => {\n    let returnValue = false;\n    const pos = file.indexOf(value);\n    if (pos >= 0) {\n      returnValue = true;\n    }\n    return returnValue;\n  };\n\n  // Runs if only specific files are accepted\n  if (acceptedFilesAttr) {\n    const acceptedFiles = acceptedFilesAttr.split(\",\");\n    const errorMessage = document.createElement(\"div\");\n    const userErrorText = fileInputEl.dataset.errormessage;\n    const errorMessageText = userErrorText || DEFAULT_ERROR_LABEL_TEXT;\n\n    errorMessage.setAttribute(\"aria-hidden\", true);\n\n    // If multiple files are dragged, this iterates through them and look for any files that are not accepted.\n    let allFilesAllowed = true;\n    const scannedFiles = e.target.files || e.dataTransfer.files;\n    for (let i = 0; i < scannedFiles.length; i += 1) {\n      const file = scannedFiles[i];\n      if (allFilesAllowed) {\n        for (let j = 0; j < acceptedFiles.length; j += 1) {\n          const fileType = acceptedFiles[j];\n          allFilesAllowed =\n            file.name.indexOf(fileType) > 0 ||\n            isIncluded(file.type, fileType.replace(/\\*/g, \"\"));\n          if (allFilesAllowed) {\n            TYPE_IS_VALID = true;\n            break;\n          }\n        }\n      } else break;\n    }\n\n    // If dragged files are not accepted, this removes them from the value of the input and creates and error state\n    if (!allFilesAllowed) {\n      removeOldPreviews(dropTarget, instructions);\n      fileInputEl.value = \"\"; // eslint-disable-line no-param-reassign\n      errorMessage.textContent = errorMessageText;\n      dropTarget.insertBefore(errorMessage, fileInputEl);\n\n      const ariaLabelText = `${errorMessageText} ${DEFAULT_ARIA_LABEL_TEXT}`;\n\n      fileInputEl.setAttribute(\"aria-label\", ariaLabelText);\n      errorMessage.classList.add(ACCEPTED_FILE_MESSAGE_CLASS);\n      dropTarget.classList.add(INVALID_FILE_CLASS);\n      TYPE_IS_VALID = false;\n      e.preventDefault();\n      e.stopPropagation();\n    }\n  }\n};\n\n/**\n * 1. passes through gate for preventing invalid files\n * 2. handles updates if file is valid\n *\n * @param {event} event\n * @param {HTMLInputElement} fileInputEl - The input element.\n * @param {HTMLDivElement} instructions - The container for visible interaction instructions.\n * @param {HTMLDivElement} dropTarget - The drag and drop target area.\n */\nconst handleUpload = (event, fileInputEl, instructions, dropTarget) => {\n  preventInvalidFiles(event, fileInputEl, instructions, dropTarget);\n  if (TYPE_IS_VALID === true) {\n    handleChange(event, fileInputEl, instructions, dropTarget);\n  }\n};\n\nconst fileInput = behavior(\n  {},\n  {\n    init(root) {\n      selectOrMatches(DROPZONE, root).forEach((fileInputEl) => {\n        const { instructions, dropTarget } = enhanceFileInput(fileInputEl);\n\n        dropTarget.addEventListener(\n          \"dragover\",\n          function handleDragOver() {\n            this.classList.add(DRAG_CLASS);\n          },\n          false,\n        );\n\n        dropTarget.addEventListener(\n          \"dragleave\",\n          function handleDragLeave() {\n            this.classList.remove(DRAG_CLASS);\n          },\n          false,\n        );\n\n        dropTarget.addEventListener(\n          \"drop\",\n          function handleDrop() {\n            this.classList.remove(DRAG_CLASS);\n          },\n          false,\n        );\n\n        fileInputEl.addEventListener(\n          \"change\",\n          (e) => handleUpload(e, fileInputEl, instructions, dropTarget),\n          false,\n        );\n      });\n    },\n    teardown(root) {\n      selectOrMatches(INPUT, root).forEach((fileInputEl) => {\n        const fileInputTopElement = fileInputEl.parentElement.parentElement;\n        fileInputTopElement.parentElement.replaceChild(\n          fileInputEl,\n          fileInputTopElement,\n        );\n        // eslint-disable-next-line no-param-reassign\n        fileInputEl.className = DROPZONE_CLASS;\n      });\n    },\n    getFileInputContext,\n    disable,\n    ariaDisable,\n    enable,\n  },\n);\n\nmodule.exports = fileInput;\n","const behavior = require(\"../../uswds-core/src/js/utils/behavior\");\nconst { CLICK } = require(\"../../uswds-core/src/js/events\");\nconst { prefix: PREFIX } = require(\"../../uswds-core/src/js/config\");\n\nconst SCOPE = `.${PREFIX}-footer--big`;\nconst NAV = `${SCOPE} nav`;\nconst BUTTON = `${NAV} .${PREFIX}-footer__primary-link`;\nconst HIDE_MAX_WIDTH = 480;\n\n/**\n * Expands selected footer menu panel, while collapsing others\n */\nfunction showPanel() {\n  if (window.innerWidth < HIDE_MAX_WIDTH) {\n    const isOpen = this.getAttribute(\"aria-expanded\") === \"true\";\n    const thisFooter = this.closest(SCOPE);\n\n    // Close all other menus\n    thisFooter.querySelectorAll(BUTTON).forEach((button) => {\n      button.setAttribute(\"aria-expanded\", false);\n    });\n\n    this.setAttribute(\"aria-expanded\", !isOpen);\n  }\n}\n\n/**\n * Swaps the <h4> element for a <button> element (and vice-versa) and sets id\n * of menu list\n *\n * @param {Boolean} isMobile - If the footer is in mobile configuration\n */\nfunction toggleHtmlTag(isMobile) {\n  const bigFooter = document.querySelector(SCOPE);\n\n  if (!bigFooter) {\n    return;\n  }\n\n  const primaryLinks = bigFooter.querySelectorAll(BUTTON);\n\n  primaryLinks.forEach((currentElement) => {\n    const currentElementClasses = currentElement.getAttribute(\"class\");\n    const preservedHtmlTag =\n      currentElement.getAttribute(\"data-tag\") || currentElement.tagName;\n\n    const newElementType = isMobile ? \"button\" : preservedHtmlTag;\n\n    // Create the new element\n    const newElement = document.createElement(newElementType);\n    newElement.setAttribute(\"class\", currentElementClasses);\n    newElement.classList.toggle(\n      `${PREFIX}-footer__primary-link--button`,\n      isMobile,\n    );\n    newElement.textContent = currentElement.textContent;\n\n    if (isMobile) {\n      newElement.setAttribute(\"data-tag\", currentElement.tagName);\n      const menuId = `${PREFIX}-footer-menu-list-${Math.floor(\n        Math.random() * 100000,\n      )}`;\n\n      newElement.setAttribute(\"aria-controls\", menuId);\n      newElement.setAttribute(\"aria-expanded\", \"false\");\n      currentElement.nextElementSibling.setAttribute(\"id\", menuId);\n      newElement.setAttribute(\"type\", \"button\");\n    }\n\n    // Insert the new element and delete the old\n    currentElement.after(newElement);\n    currentElement.remove();\n  });\n}\n\nconst resize = (event) => {\n  toggleHtmlTag(event.matches);\n};\n\nmodule.exports = behavior(\n  {\n    [CLICK]: {\n      [BUTTON]: showPanel,\n    },\n  },\n  {\n    // export for use elsewhere\n    HIDE_MAX_WIDTH,\n\n    init() {\n      toggleHtmlTag(window.innerWidth < HIDE_MAX_WIDTH);\n      this.mediaQueryList = window.matchMedia(\n        `(max-width: ${HIDE_MAX_WIDTH - 0.1}px)`,\n      );\n      this.mediaQueryList.addListener(resize);\n    },\n\n    teardown() {\n      this.mediaQueryList.removeListener(resize);\n    },\n  },\n);\n","const keymap = require(\"receptor/keymap\");\nconst behavior = require(\"../../uswds-core/src/js/utils/behavior\");\nconst select = require(\"../../uswds-core/src/js/utils/select\");\nconst toggle = require(\"../../uswds-core/src/js/utils/toggle\");\nconst FocusTrap = require(\"../../uswds-core/src/js/utils/focus-trap\");\nconst accordion = require(\"../../usa-accordion/src/index\");\nconst ScrollBarWidth = require(\"../../uswds-core/src/js/utils/scrollbar-width\");\n\nconst { CLICK } = require(\"../../uswds-core/src/js/events\");\nconst { prefix: PREFIX } = require(\"../../uswds-core/src/js/config\");\n\nconst BODY = \"body\";\nconst HEADER = `.${PREFIX}-header`;\nconst NAV = `.${PREFIX}-nav`;\nconst NAV_CONTAINER = `.${PREFIX}-nav-container`;\nconst NAV_PRIMARY = `.${PREFIX}-nav__primary`;\nconst NAV_PRIMARY_ITEM = `.${PREFIX}-nav__primary-item`;\nconst NAV_CONTROL = `button.${PREFIX}-nav__link`;\nconst NAV_LINKS = `${NAV} a`;\nconst NON_NAV_HIDDEN_ATTRIBUTE = `data-nav-hidden`;\nconst OPENERS = `.${PREFIX}-menu-btn`;\nconst CLOSE_BUTTON = `.${PREFIX}-nav__close`;\nconst OVERLAY = `.${PREFIX}-overlay`;\nconst CLOSERS = `${CLOSE_BUTTON}, .${PREFIX}-overlay`;\nconst TOGGLES = [NAV, OVERLAY].join(\", \");\nconst NON_NAV_ELEMENTS = `body *:not(${HEADER}, ${NAV_CONTAINER}, ${NAV}, ${NAV} *):not([aria-hidden])`;\nconst NON_NAV_HIDDEN = `[${NON_NAV_HIDDEN_ATTRIBUTE}]`;\n\nconst ACTIVE_CLASS = \"usa-js-mobile-nav--active\";\nconst VISIBLE_CLASS = \"is-visible\";\n\nlet navigation;\nlet navActive;\nlet nonNavElements;\n\nconst isActive = () => document.body.classList.contains(ACTIVE_CLASS);\n// Detect Safari\n// Note: Chrome also reports the Safari userAgent so this specifically excludes Chrome.\nconst isSafari =\n  navigator.userAgent.includes(\"Safari\") &&\n  !navigator.userAgent.includes(\"Chrome\");\nconst SCROLLBAR_WIDTH = ScrollBarWidth();\nconst INITIAL_PADDING = window\n  .getComputedStyle(document.body)\n  .getPropertyValue(\"padding-right\");\nconst TEMPORARY_PADDING = `${\n  parseInt(INITIAL_PADDING.replace(/px/, \"\"), 10) +\n  parseInt(SCROLLBAR_WIDTH.replace(/px/, \"\"), 10)\n}px`;\n\nconst hideNonNavItems = () => {\n  const headerParent = document.querySelector(`${HEADER}`).parentNode;\n  nonNavElements = document.querySelectorAll(NON_NAV_ELEMENTS);\n\n  nonNavElements.forEach((nonNavElement) => {\n    if (nonNavElement !== headerParent) {\n      nonNavElement.setAttribute(\"aria-hidden\", true);\n      nonNavElement.setAttribute(NON_NAV_HIDDEN_ATTRIBUTE, \"\");\n    }\n  });\n};\n\nconst showNonNavItems = () => {\n  nonNavElements = document.querySelectorAll(NON_NAV_HIDDEN);\n\n  if (!nonNavElements) {\n    return;\n  }\n\n  // Remove aria-hidden from non-header elements\n  nonNavElements.forEach((nonNavElement) => {\n    nonNavElement.removeAttribute(\"aria-hidden\");\n    nonNavElement.removeAttribute(NON_NAV_HIDDEN_ATTRIBUTE);\n  });\n};\n\n// Toggle all non-header elements #3527.\nconst toggleNonNavItems = (active) => {\n  if (active) {\n    hideNonNavItems();\n  } else {\n    showNonNavItems();\n  }\n};\n\n/**\n * Detect Safari and add body class for a Safari-only CSS bug fix.\n * More details in https://github.com/uswds/uswds/pull/5443\n */\nconst addSafariClass = () => {\n  if (isSafari) {\n    document.body.classList.add(\"is-safari\");\n  }\n};\n\n/**\n * Set the value for the --scrolltop CSS var when the mobile menu is open.\n * This allows the CSS to lock the current scroll position in Safari\n * when overflow-y is set to scroll.\n * More details in https://github.com/uswds/uswds/pull/5443\n */\nconst setSafariScrollPosition = (body) => {\n  const currentScrollPosition = `-${window.scrollY}px`;\n  if (isSafari) {\n    body.style.setProperty(\"--scrolltop\", currentScrollPosition);\n  }\n};\n\nconst toggleNav = (active) => {\n  const { body } = document;\n  const safeActive = typeof active === \"boolean\" ? active : !isActive();\n\n  setSafariScrollPosition(body);\n\n  body.classList.toggle(ACTIVE_CLASS, safeActive);\n\n  select(TOGGLES).forEach((el) =>\n    el.classList.toggle(VISIBLE_CLASS, safeActive),\n  );\n\n  navigation.focusTrap.update(safeActive);\n\n  const closeButton = body.querySelector(CLOSE_BUTTON);\n  const menuButton = document.querySelector(OPENERS);\n\n  body.style.paddingRight =\n    body.style.paddingRight === TEMPORARY_PADDING\n      ? INITIAL_PADDING\n      : TEMPORARY_PADDING;\n\n  toggleNonNavItems(safeActive);\n\n  if (safeActive && closeButton) {\n    // The mobile nav was just activated. Focus on the close button, which is\n    // just before all the nav elements in the tab order.\n    closeButton.focus();\n  } else if (\n    !safeActive &&\n    menuButton &&\n    getComputedStyle(menuButton).display !== \"none\"\n  ) {\n    // The mobile nav was just deactivated. We don't want the focus to\n    // disappear into the void, so focus on the menu button if it's\n    // visible (this may have been what the user was just focused on,\n    // if they triggered the mobile nav by mistake).\n    menuButton.focus();\n  }\n\n  return safeActive;\n};\n\nconst resize = () => {\n  const closer = document.body.querySelector(CLOSE_BUTTON);\n\n  if (isActive() && closer && closer.getBoundingClientRect().width === 0) {\n    // When the mobile nav is active, and the close box isn't visible,\n    // we know the user's viewport has been resized to be larger.\n    // Let's make the page state consistent by deactivating the mobile nav.\n    navigation.toggleNav.call(closer, false);\n  }\n};\n\nconst onMenuClose = () => navigation.toggleNav.call(navigation, false);\n\nconst hideActiveNavDropdown = () => {\n  if (!navActive) {\n    return;\n  }\n\n  toggle(navActive, false);\n  navActive = null;\n};\n\nconst focusNavButton = (event) => {\n  const parentNavItem = event.target.closest(NAV_PRIMARY_ITEM);\n\n  // Only shift focus if within dropdown\n  if (!event.target.matches(NAV_CONTROL)) {\n    const navControl = parentNavItem.querySelector(NAV_CONTROL);\n    if (navControl) {\n      navControl.focus();\n    }\n  }\n};\n\nconst handleEscape = (event) => {\n  hideActiveNavDropdown();\n  focusNavButton(event);\n};\n\nnavigation = behavior(\n  {\n    [CLICK]: {\n      [NAV_CONTROL]() {\n        // If another nav is open, close it\n        if (navActive !== this) {\n          hideActiveNavDropdown();\n        }\n        // store a reference to the last clicked nav link element, so we\n        // can hide the dropdown if another element on the page is clicked\n        if (!navActive) {\n          navActive = this;\n          toggle(navActive, true);\n        }\n\n        // Do this so the event handler on the body doesn't fire\n        return false;\n      },\n      [BODY]: hideActiveNavDropdown,\n      [OPENERS]: toggleNav,\n      [CLOSERS]: toggleNav,\n      [NAV_LINKS]() {\n        // A navigation link has been clicked! We want to collapse any\n        // hierarchical navigation UI it's a part of, so that the user\n        // can focus on whatever they've just selected.\n\n        // Some navigation links are inside accordions; when they're\n        // clicked, we want to collapse those accordions.\n        const acc = this.closest(accordion.ACCORDION);\n\n        if (acc) {\n          accordion.getButtons(acc).forEach((btn) => accordion.hide(btn));\n        }\n\n        // If the mobile navigation menu is active, we want to hide it.\n        if (isActive()) {\n          navigation.toggleNav.call(navigation, false);\n        }\n      },\n    },\n    keydown: {\n      [NAV_PRIMARY]: keymap({ Escape: handleEscape }),\n    },\n    focusout: {\n      [NAV_PRIMARY](event) {\n        const nav = event.target.closest(NAV_PRIMARY);\n\n        if (!nav.contains(event.relatedTarget)) {\n          hideActiveNavDropdown();\n        }\n      },\n    },\n  },\n  {\n    init(root) {\n      const trapContainer = root.matches(NAV) ? root : root.querySelector(NAV);\n\n      if (trapContainer) {\n        navigation.focusTrap = FocusTrap(trapContainer, {\n          Escape: onMenuClose,\n        });\n      }\n\n      addSafariClass();\n      resize();\n      window.addEventListener(\"resize\", resize, false);\n    },\n    teardown() {\n      window.removeEventListener(\"resize\", resize, false);\n      navActive = false;\n    },\n    focusTrap: null,\n    toggleNav,\n  },\n);\n\nmodule.exports = navigation;\n","const once = require(\"receptor/once\");\nconst keymap = require(\"receptor/keymap\");\nconst selectOrMatches = require(\"../../uswds-core/src/js/utils/select-or-matches\");\nconst behavior = require(\"../../uswds-core/src/js/utils/behavior\");\nconst { prefix: PREFIX } = require(\"../../uswds-core/src/js/config\");\nconst { CLICK } = require(\"../../uswds-core/src/js/events\");\nconst Sanitizer = require(\"../../uswds-core/src/js/utils/sanitizer\");\n\nconst CURRENT_CLASS = `${PREFIX}-current`;\nconst IN_PAGE_NAV_HEADINGS = \"h2 h3\";\nconst IN_PAGE_NAV_VALID_HEADINGS = [\"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\"];\nconst IN_PAGE_NAV_TITLE_TEXT = \"On this page\";\nconst IN_PAGE_NAV_TITLE_HEADING_LEVEL = \"h4\";\nconst IN_PAGE_NAV_SCROLL_OFFSET = 0;\nconst IN_PAGE_NAV_ROOT_MARGIN = \"0px 0px 0px 0px\";\nconst IN_PAGE_NAV_THRESHOLD = \"1\";\nconst IN_PAGE_NAV_CLASS = `${PREFIX}-in-page-nav`;\nconst IN_PAGE_NAV_ANCHOR_CLASS = `${PREFIX}-anchor`;\nconst IN_PAGE_NAV_NAV_CLASS = `${IN_PAGE_NAV_CLASS}__nav`;\nconst IN_PAGE_NAV_LIST_CLASS = `${IN_PAGE_NAV_CLASS}__list`;\nconst IN_PAGE_NAV_ITEM_CLASS = `${IN_PAGE_NAV_CLASS}__item`;\nconst IN_PAGE_NAV_PRIMARY_ITEM_CLASS = `${IN_PAGE_NAV_ITEM_CLASS}--primary`;\nconst IN_PAGE_NAV_LINK_CLASS = `${IN_PAGE_NAV_CLASS}__link`;\nconst IN_PAGE_NAV_TITLE_CLASS = `${IN_PAGE_NAV_CLASS}__heading`;\nconst MAIN_ELEMENT = \"main\";\n\n/**\n * Set the active link state for the currently observed section\n *\n * @param {HTMLElement} el An element within the in-page nav component\n */\nconst setActive = (el) => {\n  const allLinks = document.querySelectorAll(`.${IN_PAGE_NAV_LINK_CLASS}`);\n  el.map((i) => {\n    if (i.isIntersecting === true && i.intersectionRatio >= 1) {\n      allLinks.forEach((link) => link.classList.remove(CURRENT_CLASS));\n      document\n        .querySelector(`a[href=\"#${i.target.id}\"]`)\n        .classList.add(CURRENT_CLASS);\n      return true;\n    }\n    return false;\n  });\n};\n\n/**\n * Return an array of the designated heading types found in the designated content region.\n * Throw an error if an invalid header element is designated.\n *\n * @param {HTMLElement} selectedContentRegion The content region the component should pull headers from\n * @param {String} selectedHeadingTypes The list of heading types that should be included in the nav list\n *\n * @return {Array} - An array of designated heading types from the designated content region\n */\nconst createSectionHeadingsArray = (\n  selectedContentRegion,\n  selectedHeadingTypes,\n) => {\n  // Convert designated headings list to an array\n  const selectedHeadingTypesArray = selectedHeadingTypes.indexOf(\" \")\n    ? selectedHeadingTypes.split(\" \")\n    : selectedHeadingTypes;\n  const contentRegion = document.querySelector(selectedContentRegion);\n\n  selectedHeadingTypesArray.forEach((headingType) => {\n    if (!IN_PAGE_NAV_VALID_HEADINGS.includes(headingType)) {\n      throw new Error(\n        `In-page navigation: data-heading-elements attribute defined with an invalid heading type: \"${headingType}\".\n        Define the attribute with one or more of the following: \"${IN_PAGE_NAV_VALID_HEADINGS}\".\n        Do not use commas or other punctuation in the attribute definition.`,\n      );\n    }\n  });\n\n  const sectionHeadingsArray = Array.from(\n    contentRegion.querySelectorAll(selectedHeadingTypesArray),\n  );\n\n  return sectionHeadingsArray;\n};\n\n/**\n * Return an array of the visible headings from sectionHeadingsArray.\n * This function removes headings that are hidden with display:none or visibility:none style rules.\n * These items will be added to the component nav list.\n *\n * @param {HTMLElement} selectedContentRegion The content region the component should pull headers from\n * @param {String} selectedHeadingTypes The list of heading types that should be included in the nav list\n *\n * @return {Array} - An array of visible headings from the designated content region\n */\nconst getVisibleSectionHeadings = (\n  selectedContentRegion,\n  selectedHeadingTypes,\n) => {\n  const sectionHeadings = createSectionHeadingsArray(\n    selectedContentRegion,\n    selectedHeadingTypes,\n  );\n\n  // Find all headings with hidden styling and remove them from the array\n  const visibleSectionHeadings = sectionHeadings.filter((heading) => {\n    const headingStyle = window.getComputedStyle(heading);\n    const visibleHeading =\n      headingStyle.getPropertyValue(\"display\") !== \"none\" &&\n      headingStyle.getPropertyValue(\"visibility\") !== \"hidden\";\n\n    return visibleHeading;\n  });\n\n  return visibleSectionHeadings;\n};\n\n/**\n * Return the highest-level header tag included in the link list\n *\n * @param {HTMLElement} sectionHeadings The array of headings selected for inclusion in the link list\n *\n * @return {tagName} - The tag name for the highest level of header in the link list\n */\n\nconst getTopLevelHeading = (sectionHeadings) => {\n  const topHeading = sectionHeadings[0].tagName.toLowerCase();\n  return topHeading;\n};\n\n/**\n * Return a node list of section anchor tags\n *\n * @return {HTMLElement[]} - An array of DOM nodes\n */\nconst getSectionAnchors = () => {\n  const sectionAnchors = document.querySelectorAll(\n    `.${IN_PAGE_NAV_ANCHOR_CLASS}`,\n  );\n  return sectionAnchors;\n};\n\n/**\n * Generates a unique ID for the given heading element.\n *\n * @param {HTMLHeadingElement} heading\n *\n * @return {string} - Unique ID\n */\nconst getHeadingId = (heading) => {\n  const baseId = heading.textContent\n    .toLowerCase()\n    // Replace non-alphanumeric characters with dashes\n    .replace(/[^a-z\\d]/g, \"-\")\n    // Replace a sequence of two or more dashes with a single dash\n    .replace(/-{2,}/g, \"-\")\n    // Trim leading or trailing dash (there should only ever be one)\n    .replace(/^-|-$/g, \"\");\n\n  let id;\n  let suffix = 0;\n  do {\n    id = baseId;\n\n    // To avoid conflicts with existing IDs on the page, loop and append an\n    // incremented suffix until a unique ID is found.\n    suffix += 1;\n    if (suffix > 1) {\n      id += `-${suffix}`;\n    }\n  } while (document.getElementById(id));\n\n  return id;\n};\n\n/**\n * Return a section id/anchor hash without the number sign\n *\n * @return {String} - Id value with the number sign removed\n */\nconst getSectionId = (value) => {\n  let id;\n\n  // Check if value is an event or element and get the cleaned up id\n  if (value && value.nodeType === 1) {\n    id = value.getAttribute(\"href\").replace(\"#\", \"\");\n  } else {\n    id = value.target.hash.replace(\"#\", \"\");\n  }\n\n  return id;\n};\n\n/**\n * Scroll smoothly to a section based on the passed in element\n *\n * @param {HTMLElement} - Id value with the number sign removed\n */\nconst handleScrollToSection = (el) => {\n  const inPageNavEl = document.querySelector(`.${IN_PAGE_NAV_CLASS}`);\n  const inPageNavScrollOffset =\n    inPageNavEl.dataset.scrollOffset || IN_PAGE_NAV_SCROLL_OFFSET;\n\n  window.scroll({\n    behavior: \"smooth\",\n    top: el.offsetTop - inPageNavScrollOffset,\n    block: \"start\",\n  });\n\n  if (window.location.hash.slice(1) !== el.id) {\n    window.history.pushState(null, \"\", `#${el.id}`);\n  }\n};\n\n/**\n * Scrolls the page to the section corresponding to the current hash fragment, if one exists.\n */\nconst scrollToCurrentSection = () => {\n  const hashFragment = window.location.hash.slice(1);\n  if (hashFragment) {\n    const anchorTag = document.getElementById(hashFragment);\n    if (anchorTag) {\n      handleScrollToSection(anchorTag);\n    }\n  }\n};\n\n/**\n * Create the in-page navigation component\n *\n * @param {HTMLElement} inPageNavEl The in-page nav element\n */\nconst createInPageNav = (inPageNavEl) => {\n  const inPageNavTitleText = Sanitizer.escapeHTML`${\n    inPageNavEl.dataset.titleText || IN_PAGE_NAV_TITLE_TEXT\n  }`;\n  const inPageNavTitleHeadingLevel = Sanitizer.escapeHTML`${\n    inPageNavEl.dataset.titleHeadingLevel || IN_PAGE_NAV_TITLE_HEADING_LEVEL\n  }`;\n  const inPageNavRootMargin = Sanitizer.escapeHTML`${\n    inPageNavEl.dataset.rootMargin || IN_PAGE_NAV_ROOT_MARGIN\n  }`;\n  const inPageNavThreshold = Sanitizer.escapeHTML`${\n    inPageNavEl.dataset.threshold || IN_PAGE_NAV_THRESHOLD\n  }`;\n  const inPageNavContentSelector = Sanitizer.escapeHTML`${\n    inPageNavEl.dataset.mainContentSelector || MAIN_ELEMENT\n  }`;\n  const inPageNavHeadingSelector = Sanitizer.escapeHTML`${\n    inPageNavEl.dataset.headingElements || IN_PAGE_NAV_HEADINGS\n  }`;\n\n  const options = {\n    root: null,\n    rootMargin: inPageNavRootMargin,\n    threshold: [inPageNavThreshold],\n  };\n\n  const sectionHeadings = getVisibleSectionHeadings(\n    inPageNavContentSelector,\n    inPageNavHeadingSelector,\n  );\n  const inPageNav = document.createElement(\"nav\");\n  inPageNav.setAttribute(\"aria-label\", inPageNavTitleText);\n  inPageNav.classList.add(IN_PAGE_NAV_NAV_CLASS);\n\n  const inPageNavTitle = document.createElement(inPageNavTitleHeadingLevel);\n  inPageNavTitle.classList.add(IN_PAGE_NAV_TITLE_CLASS);\n  inPageNavTitle.setAttribute(\"tabindex\", \"0\");\n  inPageNavTitle.textContent = inPageNavTitleText;\n  inPageNav.appendChild(inPageNavTitle);\n\n  const inPageNavList = document.createElement(\"ul\");\n  inPageNavList.classList.add(IN_PAGE_NAV_LIST_CLASS);\n  inPageNav.appendChild(inPageNavList);\n\n  sectionHeadings.forEach((el) => {\n    const listItem = document.createElement(\"li\");\n    const navLinks = document.createElement(\"a\");\n    const anchorTag = document.createElement(\"a\");\n    const textContentOfLink = el.textContent;\n    const tag = el.tagName.toLowerCase();\n    const topHeadingLevel = getTopLevelHeading(sectionHeadings);\n    const headingId = getHeadingId(el);\n\n    listItem.classList.add(IN_PAGE_NAV_ITEM_CLASS);\n\n    if (tag === topHeadingLevel) {\n      listItem.classList.add(IN_PAGE_NAV_PRIMARY_ITEM_CLASS);\n    }\n\n    navLinks.setAttribute(\"href\", `#${headingId}`);\n    navLinks.setAttribute(\"class\", IN_PAGE_NAV_LINK_CLASS);\n    navLinks.textContent = textContentOfLink;\n\n    anchorTag.setAttribute(\"id\", headingId);\n    anchorTag.setAttribute(\"class\", IN_PAGE_NAV_ANCHOR_CLASS);\n    el.insertAdjacentElement(\"afterbegin\", anchorTag);\n\n    inPageNavList.appendChild(listItem);\n    listItem.appendChild(navLinks);\n  });\n\n  inPageNavEl.appendChild(inPageNav);\n\n  const anchorTags = getSectionAnchors();\n  const observeSections = new window.IntersectionObserver(setActive, options);\n\n  anchorTags.forEach((tag) => {\n    observeSections.observe(tag);\n  });\n};\n\n/**\n * Handle click from link\n *\n * @param {HTMLElement} el An element within the in-page nav component\n */\nconst handleClickFromLink = (el) => {\n  const elementToScrollTo = document.getElementById(el.hash.slice(1));\n  handleScrollToSection(elementToScrollTo);\n};\n\n/**\n * Handle the enter event from a link within the in-page nav component\n *\n * @param {KeyboardEvent} event An event within the in-page nav component\n */\nconst handleEnterFromLink = (event) => {\n  const id = getSectionId(event);\n  const targetAnchor = document.getElementById(id);\n  const target = targetAnchor.parentElement;\n\n  if (target) {\n    target.setAttribute(\"tabindex\", 0);\n    target.focus();\n    target.addEventListener(\n      \"blur\",\n      once(() => {\n        target.setAttribute(\"tabindex\", -1);\n      }),\n    );\n  } else {\n    // throw an error?\n  }\n  handleScrollToSection(targetAnchor);\n};\n\nconst inPageNavigation = behavior(\n  {\n    [CLICK]: {\n      [`.${IN_PAGE_NAV_LINK_CLASS}`](event) {\n        event.preventDefault();\n        if (this.disabled) return;\n        handleClickFromLink(this);\n      },\n    },\n    keydown: {\n      [`.${IN_PAGE_NAV_LINK_CLASS}`]: keymap({\n        Enter: handleEnterFromLink,\n      }),\n    },\n  },\n  {\n    init(root) {\n      selectOrMatches(`.${IN_PAGE_NAV_CLASS}`, root).forEach((inPageNavEl) => {\n        createInPageNav(inPageNavEl);\n        scrollToCurrentSection();\n      });\n    },\n  },\n);\n\nmodule.exports = inPageNavigation;\n","const selectOrMatches = require(\"../../uswds-core/src/js/utils/select-or-matches\");\nconst behavior = require(\"../../uswds-core/src/js/utils/behavior\");\nconst { prefix: PREFIX } = require(\"../../uswds-core/src/js/config\");\n\nconst MASKED_CLASS = `${PREFIX}-masked`;\nconst MASKED = `.${MASKED_CLASS}`;\nconst MASK = `${PREFIX}-input-mask`;\nconst MASK_CONTENT = `${MASK}--content`;\nconst PLACEHOLDER = \"placeholder\";\n\n// User defined Values\nconst maskedNumber = \"_#dDmMyY9\";\nconst maskedLetter = \"A\";\n\n// replaces each masked input with a shell containing the input and it's mask.\nconst createMaskedInputShell = (input) => {\n  const placeholder = input.getAttribute(`${PLACEHOLDER}`);\n  if (placeholder) {\n    input.setAttribute(\"maxlength\", placeholder.length);\n    input.setAttribute(\"data-placeholder\", placeholder);\n    input.removeAttribute(`${PLACEHOLDER}`);\n  } else {\n    return;\n  }\n\n  const shell = document.createElement(\"span\");\n  shell.classList.add(MASK);\n  shell.setAttribute(\"data-mask\", placeholder);\n\n  const content = document.createElement(\"span\");\n  content.classList.add(MASK_CONTENT);\n  content.setAttribute(\"aria-hidden\", \"true\");\n  content.id = `${input.id}Mask`;\n  content.textContent = placeholder;\n\n  shell.appendChild(content);\n  input.parentNode.insertBefore(shell, input);\n  shell.appendChild(input);\n};\n\nconst setValueOfMask = (el) => {\n  const { value } = el;\n  const placeholderVal = `${el.dataset.placeholder.substr(value.length)}`;\n\n  const theIEl = document.createElement(\"i\");\n  theIEl.textContent = value;\n  return [theIEl, placeholderVal];\n};\n\nconst strippedValue = (isCharsetPresent, value) =>\n  isCharsetPresent ? value.replace(/\\W/g, \"\") : value.replace(/\\D/g, \"\");\n\nconst isInteger = (value) => !Number.isNaN(parseInt(value, 10));\n\nconst isLetter = (value) => (value ? value.match(/[A-Z]/i) : false);\n\nconst handleCurrentValue = (el) => {\n  const isCharsetPresent = el.dataset.charset;\n  const placeholder = isCharsetPresent || el.dataset.placeholder;\n  const { value } = el;\n  const len = placeholder.length;\n  let newValue = \"\";\n  let i;\n  let charIndex;\n\n  const strippedVal = strippedValue(isCharsetPresent, value);\n\n  for (i = 0, charIndex = 0; i < len; i += 1) {\n    const isInt = isInteger(strippedVal[charIndex]);\n    const isLet = isLetter(strippedVal[charIndex]);\n    const matchesNumber = maskedNumber.indexOf(placeholder[i]) >= 0;\n    const matchesLetter = maskedLetter.indexOf(placeholder[i]) >= 0;\n\n    if (\n      (matchesNumber && isInt) ||\n      (isCharsetPresent && matchesLetter && isLet)\n    ) {\n      newValue += strippedVal[charIndex];\n      charIndex += 1;\n    } else if (\n      (!isCharsetPresent && !isInt && matchesNumber) ||\n      (isCharsetPresent &&\n        ((matchesLetter && !isLet) || (matchesNumber && !isInt)))\n    ) {\n      return newValue;\n    } else {\n      newValue += placeholder[i];\n    }\n    // break if no characters left and the pattern is non-special character\n    if (strippedVal[charIndex] === undefined) {\n      break;\n    }\n  }\n\n  return newValue;\n};\n\nconst handleValueChange = (el) => {\n  const inputEl = el;\n  const id = inputEl.getAttribute(\"id\");\n  inputEl.value = handleCurrentValue(inputEl);\n\n  const maskVal = setValueOfMask(el);\n  const maskEl = document.getElementById(`${id}Mask`);\n  maskEl.textContent = \"\";\n  maskEl.replaceChildren(maskVal[0], maskVal[1]);\n};\n\nconst inputMaskEvents = {\n  keyup: {\n    [MASKED]() {\n      handleValueChange(this);\n    },\n  },\n};\n\nconst inputMask = behavior(inputMaskEvents, {\n  init(root) {\n    selectOrMatches(MASKED, root).forEach((maskedInput) => {\n      createMaskedInputShell(maskedInput);\n    });\n  },\n});\n\nmodule.exports = inputMask;\n","const keymap = require(\"receptor/keymap\");\nconst behavior = require(\"../../uswds-core/src/js/utils/behavior\");\nconst toggle = require(\"../../uswds-core/src/js/utils/toggle\");\nconst FocusTrap = require(\"../../uswds-core/src/js/utils/focus-trap\");\nconst accordion = require(\"../../usa-accordion/src/index\");\n\nconst { CLICK } = require(\"../../uswds-core/src/js/events\");\nconst { prefix: PREFIX } = require(\"../../uswds-core/src/js/config\");\n\nconst BODY = \"body\";\nconst LANGUAGE = `.${PREFIX}-language`;\nconst LANGUAGE_SUB = `.${PREFIX}-language__submenu`;\nconst LANGUAGE_PRIMARY = `.${PREFIX}-language__primary`;\nconst LANGUAGE_PRIMARY_ITEM = `.${PREFIX}-language__primary-item`;\nconst LANGUAGE_CONTROL = `button.${PREFIX}-language__link`;\nconst LANGUAGE_LINKS = `${LANGUAGE} a`;\n\nlet languageSelector;\nlet languageActive;\n\nconst onLanguageClose = () =>\n  languageSelector.toggleLanguage.call(languageSelector, false);\n\nconst hideActiveLanguageDropdown = () => {\n  if (!languageActive) {\n    return;\n  }\n\n  toggle(languageActive, false);\n  languageActive = null;\n};\n\nconst focusLanguageButton = (event) => {\n  const parentLanguageItem = event.target.closest(LANGUAGE_PRIMARY_ITEM);\n\n  if (!event.target.matches(LANGUAGE_CONTROL)) {\n    parentLanguageItem.querySelector(LANGUAGE_CONTROL).focus();\n  }\n};\n\nconst handleEscape = (event) => {\n  hideActiveLanguageDropdown();\n  focusLanguageButton(event);\n};\n\nlanguageSelector = behavior(\n  {\n    [CLICK]: {\n      [LANGUAGE_CONTROL]() {\n        if (languageActive !== this) {\n          hideActiveLanguageDropdown();\n        }\n        if (languageActive === this) {\n          hideActiveLanguageDropdown();\n          return false;\n        }\n        if (!languageActive) {\n          languageActive = this;\n          toggle(languageActive, true);\n        }\n\n        return false;\n      },\n      [BODY]: hideActiveLanguageDropdown,\n      [LANGUAGE_LINKS]() {\n        const acc = this.closest(accordion.ACCORDION);\n\n        if (acc) {\n          accordion.getButtons(acc).forEach((btn) => accordion.hide(btn));\n        }\n      },\n    },\n    keydown: {\n      [LANGUAGE_PRIMARY]: keymap({ Escape: handleEscape }),\n    },\n    focusout: {\n      [LANGUAGE_PRIMARY](event) {\n        const language = event.target.closest(LANGUAGE_PRIMARY);\n\n        if (!language.contains(event.relatedTarget)) {\n          hideActiveLanguageDropdown();\n        }\n      },\n    },\n  },\n  {\n    init(root) {\n      const trapContainer = root.matches(LANGUAGE_SUB)\n        ? root\n        : root.querySelector(LANGUAGE_SUB);\n\n      if (trapContainer) {\n        languageSelector.focusTrap = FocusTrap(trapContainer, {\n          Escape: onLanguageClose,\n        });\n      }\n    },\n    teardown() {\n      languageActive = false;\n    },\n    focusTrap: null,\n  },\n);\n\nmodule.exports = languageSelector;\n","const selectOrMatches = require(\"../../uswds-core/src/js/utils/select-or-matches\");\nconst FocusTrap = require(\"../../uswds-core/src/js/utils/focus-trap\");\nconst ScrollBarWidth = require(\"../../uswds-core/src/js/utils/scrollbar-width\");\nconst behavior = require(\"../../uswds-core/src/js/utils/behavior\");\n\nconst { prefix: PREFIX } = require(\"../../uswds-core/src/js/config\");\n\nconst MODAL_CLASSNAME = `${PREFIX}-modal`;\nconst OVERLAY_CLASSNAME = `${MODAL_CLASSNAME}-overlay`;\nconst WRAPPER_CLASSNAME = `${MODAL_CLASSNAME}-wrapper`;\nconst OPENER_ATTRIBUTE = \"data-open-modal\";\nconst CLOSER_ATTRIBUTE = \"data-close-modal\";\nconst FORCE_ACTION_ATTRIBUTE = \"data-force-action\";\nconst NON_MODAL_HIDDEN_ATTRIBUTE = `data-modal-hidden`;\nconst MODAL = `.${MODAL_CLASSNAME}`;\nconst INITIAL_FOCUS = `.${WRAPPER_CLASSNAME} *[data-focus]`;\nconst CLOSE_BUTTON = `${WRAPPER_CLASSNAME} *[${CLOSER_ATTRIBUTE}]`;\nconst OPENERS = `*[${OPENER_ATTRIBUTE}][aria-controls]`;\nconst CLOSERS = `${CLOSE_BUTTON}, .${OVERLAY_CLASSNAME}:not([${FORCE_ACTION_ATTRIBUTE}])`;\nconst NON_MODALS = `body > *:not(.${WRAPPER_CLASSNAME}):not([aria-hidden])`;\nconst NON_MODALS_HIDDEN = `[${NON_MODAL_HIDDEN_ATTRIBUTE}]`;\n\nconst ACTIVE_CLASS = \"usa-js-modal--active\";\nconst PREVENT_CLICK_CLASS = \"usa-js-no-click\";\nconst VISIBLE_CLASS = \"is-visible\";\nconst HIDDEN_CLASS = \"is-hidden\";\n\nlet modal;\nlet INITIAL_BODY_PADDING;\nlet TEMPORARY_BODY_PADDING;\n\nconst isActive = () => document.body.classList.contains(ACTIVE_CLASS);\nconst SCROLLBAR_WIDTH = ScrollBarWidth();\n\n/**\n *  Closes modal when bound to a button and pressed.\n */\nconst onMenuClose = () => {\n  modal.toggleModal.call(modal, false);\n};\n\n/**\n * Set the value for temporary body padding that will be applied when the modal is open.\n * Value is created by checking for initial body padding and adding the width of the scrollbar.\n */\nconst setTemporaryBodyPadding = () => {\n  INITIAL_BODY_PADDING = window\n    .getComputedStyle(document.body)\n    .getPropertyValue(\"padding-right\");\n  TEMPORARY_BODY_PADDING = `${\n    parseInt(INITIAL_BODY_PADDING.replace(/px/, \"\"), 10) +\n    parseInt(SCROLLBAR_WIDTH.replace(/px/, \"\"), 10)\n  }px`;\n};\n\n/**\n *  Toggle the visibility of a modal window\n *\n * @param {KeyboardEvent} event the keydown event.\n * @returns {boolean} safeActive if mobile is open.\n */\nfunction toggleModal(event) {\n  let originalOpener;\n  let clickedElement = event.target;\n  const { body } = document;\n  const safeActive = !isActive();\n  const modalId = clickedElement\n    ? clickedElement.getAttribute(\"aria-controls\")\n    : document.querySelector(`.${WRAPPER_CLASSNAME}.${VISIBLE_CLASS}`);\n  const targetModal = safeActive\n    ? document.getElementById(modalId)\n    : document.querySelector(`.${WRAPPER_CLASSNAME}.${VISIBLE_CLASS}`);\n\n  // if there is no modal we return early\n  if (!targetModal) {\n    return false;\n  }\n\n  const openFocusEl = targetModal.querySelector(INITIAL_FOCUS)\n    ? targetModal.querySelector(INITIAL_FOCUS)\n    : targetModal.querySelector(`.${MODAL_CLASSNAME}`);\n  const returnFocus = document.getElementById(\n    targetModal.getAttribute(\"data-opener\"),\n  );\n  const menuButton = body.querySelector(OPENERS);\n  const forceUserAction = targetModal.getAttribute(FORCE_ACTION_ATTRIBUTE);\n\n  // Sets the clicked element to the close button\n  // so esc key always closes modal\n  if (event.type === \"keydown\" && targetModal !== null) {\n    clickedElement = targetModal.querySelector(CLOSE_BUTTON);\n  }\n\n  // When we're not hitting the escape key…\n  if (clickedElement) {\n    // Make sure we click the opener\n    // If it doesn't have an ID, make one\n    // Store id as data attribute on modal\n    if (clickedElement.hasAttribute(OPENER_ATTRIBUTE)) {\n      if (this.getAttribute(\"id\") === null) {\n        originalOpener = `modal-${Math.floor(Math.random() * 900000) + 100000}`;\n        this.setAttribute(\"id\", originalOpener);\n      } else {\n        originalOpener = this.getAttribute(\"id\");\n      }\n      targetModal.setAttribute(\"data-opener\", originalOpener);\n    }\n\n    // This basically stops the propagation if the element\n    // is inside the modal and not a close button or\n    // element inside a close button\n    if (clickedElement.closest(`.${MODAL_CLASSNAME}`)) {\n      if (\n        clickedElement.hasAttribute(CLOSER_ATTRIBUTE) ||\n        clickedElement.closest(`[${CLOSER_ATTRIBUTE}]`)\n      ) {\n        // do nothing. move on.\n      } else {\n        return false;\n      }\n    }\n  }\n\n  body.classList.toggle(ACTIVE_CLASS, safeActive);\n  targetModal.classList.toggle(VISIBLE_CLASS, safeActive);\n  targetModal.classList.toggle(HIDDEN_CLASS, !safeActive);\n\n  // If user is forced to take an action, adding\n  // a class to the body that prevents clicking underneath\n  // overlay\n  if (forceUserAction) {\n    body.classList.toggle(PREVENT_CLICK_CLASS, safeActive);\n  }\n\n  // Temporarily increase body padding to include the width of the scrollbar.\n  // This accounts for the content shift when the scrollbar is removed on modal open.\n  if (body.style.paddingRight === TEMPORARY_BODY_PADDING) {\n    body.style.removeProperty(\"padding-right\");\n  } else {\n    body.style.paddingRight = TEMPORARY_BODY_PADDING;\n  }\n\n  // Handle the focus actions\n  if (safeActive && openFocusEl) {\n    // The modal window is opened. Focus is set to close button.\n\n    // Binds escape key if we're not forcing\n    // the user to take an action\n    if (forceUserAction) {\n      modal.focusTrap = FocusTrap(targetModal);\n    } else {\n      modal.focusTrap = FocusTrap(targetModal, {\n        Escape: onMenuClose,\n      });\n    }\n\n    // Handles focus setting and interactions\n    modal.focusTrap.update(safeActive);\n    openFocusEl.focus();\n\n    // Hides everything that is not the modal from screen readers\n    document.querySelectorAll(NON_MODALS).forEach((nonModal) => {\n      nonModal.setAttribute(\"aria-hidden\", \"true\");\n      nonModal.setAttribute(NON_MODAL_HIDDEN_ATTRIBUTE, \"\");\n    });\n  } else if (!safeActive && menuButton && returnFocus) {\n    // The modal window is closed.\n    // Non-modals now accesible to screen reader\n    document.querySelectorAll(NON_MODALS_HIDDEN).forEach((nonModal) => {\n      nonModal.removeAttribute(\"aria-hidden\");\n      nonModal.removeAttribute(NON_MODAL_HIDDEN_ATTRIBUTE);\n    });\n\n    // Focus is returned to the opener\n    returnFocus.focus();\n    modal.focusTrap.update(safeActive);\n  }\n\n  return safeActive;\n}\n\n/**\n * Creates a placeholder with data attributes for cleanup function.\n * The cleanup function uses this placeholder to easily restore the original Modal HTML on teardown.\n *\n * @param {HTMLDivElement} baseComponent - Modal HTML from the DOM.\n * @returns {HTMLDivElement} Placeholder used for cleanup function.\n */\nconst createPlaceHolder = (baseComponent) => {\n  const modalID = baseComponent.getAttribute(\"id\");\n  const originalLocationPlaceHolder = document.createElement(\"div\");\n  const modalAttributes = Array.from(baseComponent.attributes);\n\n  setTemporaryBodyPadding();\n\n  originalLocationPlaceHolder.setAttribute(`data-placeholder-for`, modalID);\n  originalLocationPlaceHolder.style.display = \"none\";\n  originalLocationPlaceHolder.setAttribute(\"aria-hidden\", \"true\");\n\n  modalAttributes.forEach((attribute) => {\n    originalLocationPlaceHolder.setAttribute(\n      `data-original-${attribute.name}`,\n      attribute.value,\n    );\n  });\n\n  return originalLocationPlaceHolder;\n};\n\n/**\n * Moves necessary attributes from Modal HTML to wrapper element.\n *\n * @param {HTMLDivElement} baseComponent - Modal HTML in the DOM.\n * @param {HTMLDivElement} modalContentWrapper - Modal component wrapper element.\n * @returns Modal wrapper with correct attributes.\n */\nconst setModalAttributes = (baseComponent, modalContentWrapper) => {\n  const modalID = baseComponent.getAttribute(\"id\");\n  const ariaLabelledBy = baseComponent.getAttribute(\"aria-labelledby\");\n  const ariaDescribedBy = baseComponent.getAttribute(\"aria-describedby\");\n  const forceUserAction = baseComponent.hasAttribute(FORCE_ACTION_ATTRIBUTE);\n\n  if (!ariaLabelledBy)\n    throw new Error(`${modalID} is missing aria-labelledby attribute`);\n\n  if (!ariaDescribedBy)\n    throw new Error(`${modalID} is missing aria-desribedby attribute`);\n\n  // Set attributes\n  modalContentWrapper.setAttribute(\"role\", \"dialog\");\n  modalContentWrapper.setAttribute(\"id\", modalID);\n  modalContentWrapper.setAttribute(\"aria-labelledby\", ariaLabelledBy);\n  modalContentWrapper.setAttribute(\"aria-describedby\", ariaDescribedBy);\n\n  if (forceUserAction) {\n    modalContentWrapper.setAttribute(FORCE_ACTION_ATTRIBUTE, forceUserAction);\n  }\n\n  // Add aria-controls\n  const modalClosers = modalContentWrapper.querySelectorAll(CLOSERS);\n  modalClosers.forEach((el) => {\n    el.setAttribute(\"aria-controls\", modalID);\n  });\n\n  // Update the base element HTML\n  baseComponent.removeAttribute(\"id\");\n  baseComponent.removeAttribute(\"aria-labelledby\");\n  baseComponent.removeAttribute(\"aria-describedby\");\n  baseComponent.setAttribute(\"tabindex\", \"-1\");\n\n  return modalContentWrapper;\n};\n\n/**\n * Creates a hidden modal content wrapper.\n * Rebuilds the original Modal HTML in the new wrapper and adds a page overlay.\n * Then moves original Modal HTML attributes to the new wrapper.\n *\n * @param {HTMLDivElement} baseComponent - Original Modal HTML in the DOM.\n * @returns Modal component - Modal wrapper w/ nested Overlay and Modal Content.\n */\nconst rebuildModal = (baseComponent) => {\n  const modalContent = baseComponent;\n  const modalContentWrapper = document.createElement(\"div\");\n  const overlayDiv = document.createElement(\"div\");\n\n  // Add classes\n  modalContentWrapper.classList.add(HIDDEN_CLASS, WRAPPER_CLASSNAME);\n  overlayDiv.classList.add(OVERLAY_CLASSNAME);\n\n  // Rebuild the modal element\n  modalContentWrapper.append(overlayDiv);\n  overlayDiv.append(modalContent);\n\n  // Add attributes\n  setModalAttributes(modalContent, modalContentWrapper);\n\n  return modalContentWrapper;\n};\n\n/**\n *  Builds modal window from base HTML and appends to the end of the DOM.\n *\n * @param {HTMLDivElement} baseComponent - The modal div element in the DOM.\n */\nconst setUpModal = (baseComponent) => {\n  const modalID = baseComponent.getAttribute(\"id\");\n\n  if (!modalID) {\n    throw new Error(`Modal markup is missing ID`);\n  }\n\n  // Create placeholder where modal is for cleanup\n  const originalLocationPlaceHolder = createPlaceHolder(baseComponent);\n  baseComponent.after(originalLocationPlaceHolder);\n\n  // Build modal component\n  const modalComponent = rebuildModal(baseComponent);\n\n  // Move all modals to the end of the DOM. Doing this allows us to\n  // more easily find the elements to hide from screen readers\n  // when the modal is open.\n  document.body.appendChild(modalComponent);\n};\n\n/**\n * Removes dynamically created Modal and Wrapper elements and restores original Modal HTML.\n *\n * @param {HTMLDivElement} baseComponent - The modal div element in the DOM.\n */\nconst cleanUpModal = (baseComponent) => {\n  const modalContent = baseComponent;\n  const modalContentWrapper = modalContent.parentElement.parentElement;\n  const modalID = modalContentWrapper.getAttribute(\"id\");\n\n  // if there is no modalID, return early\n  if (!modalID) {\n    return;\n  }\n\n  const originalLocationPlaceHolder = document.querySelector(\n    `[data-placeholder-for=\"${modalID}\"]`,\n  );\n\n  if (originalLocationPlaceHolder) {\n    const modalAttributes = Array.from(originalLocationPlaceHolder.attributes);\n    modalAttributes.forEach((attribute) => {\n      if (attribute.name.startsWith(\"data-original-\")) {\n        // data-original- is 14 long\n        modalContent.setAttribute(attribute.name.substr(14), attribute.value);\n      }\n    });\n\n    originalLocationPlaceHolder.after(modalContent);\n    originalLocationPlaceHolder.parentElement.removeChild(\n      originalLocationPlaceHolder,\n    );\n  }\n\n  modalContentWrapper.parentElement.removeChild(modalContentWrapper);\n};\n\nmodal = behavior(\n  {},\n  {\n    init(root) {\n      selectOrMatches(MODAL, root).forEach((modalWindow) => {\n        const modalId = modalWindow.id;\n\n        setUpModal(modalWindow);\n\n        // Query all openers and closers including the overlay\n        selectOrMatches(`[aria-controls=\"${modalId}\"]`, document).forEach(\n          (modalTrigger) => {\n            // If modalTrigger is an anchor...\n            if (modalTrigger.nodeName === \"A\") {\n              // Turn anchor links into buttons for screen readers\n              modalTrigger.setAttribute(\"role\", \"button\");\n\n              // Prevent modal triggers from acting like links\n              modalTrigger.addEventListener(\"click\", (e) => e.preventDefault());\n            }\n\n            // Can uncomment when aria-haspopup=\"dialog\" is supported\n            // https://a11ysupport.io/tech/aria/aria-haspopup_attribute\n            // Most screen readers support aria-haspopup, but might announce\n            // as opening a menu if \"dialog\" is not supported.\n            // modalTrigger.setAttribute(\"aria-haspopup\", \"dialog\");\n\n            modalTrigger.addEventListener(\"click\", toggleModal);\n          },\n        );\n      });\n    },\n    teardown(root) {\n      selectOrMatches(MODAL, root).forEach((modalWindow) => {\n        const modalId = modalWindow.id;\n        cleanUpModal(modalWindow);\n\n        selectOrMatches(`[aria-controls=\"${modalId}\"]`, document).forEach(\n          (modalTrigger) =>\n            modalTrigger.removeEventListener(\"click\", toggleModal),\n        );\n      });\n    },\n    focusTrap: null,\n    toggleModal,\n  },\n);\n\nmodule.exports = modal;\n","const selectOrMatches = require(\"../../uswds-core/src/js/utils/select-or-matches\");\nconst behavior = require(\"../../uswds-core/src/js/utils/behavior\");\n\nconst { prefix: PREFIX } = require(\"../../uswds-core/src/js/config\");\n\nconst RANGE_CLASSNAME = `${PREFIX}-range`;\nconst RANGE = `.${RANGE_CLASSNAME}`;\n\n/**\n * Update range callout for screen readers using the optional data attributes.\n *\n * Get optional data attributes, construct and appends aria-valuetext attribute.\n *\n * @example\n *\n * <input id=\"usa-range\" class=\"usa-range\" type=\"range\" min=\"0\" max=\"100\" step=\"10\" value=\"20\" data-text-unit=\"degrees\">\n *\n * Callout returns \"20 degrees of 100.\"\n *\n * <input id=\"usa-range\" class=\"usa-range\" type=\"range\" min=\"0\" max=\"100\" step=\"10\" value=\"20\" data-text-preposition=\"de\">\n *\n * Callout returns \"20 de 100.\"\n *\n * @param {HTMLInputElement} targetRange - The range slider input element\n */\nconst updateCallout = (targetRange) => {\n  const rangeSlider = targetRange;\n  const defaultPrep = \"of\";\n  const optionalPrep = rangeSlider.dataset.textPreposition;\n  const prep = optionalPrep || defaultPrep;\n  const unit = rangeSlider.dataset.textUnit;\n  const val = rangeSlider.value;\n  // Note: 100 is the max attribute's native default value on range inputs\n  // Reference: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/range#validation\n  const max = rangeSlider.getAttribute(\"max\") || 100;\n\n  let callout;\n\n  if (unit) {\n    callout = `${val} ${unit} ${prep} ${max}`;\n  } else {\n    callout = `${val} ${prep} ${max}`;\n  }\n\n  rangeSlider.setAttribute(\"aria-valuetext\", callout);\n};\n\nconst rangeEvents = {\n  change: {\n    [RANGE]() {\n      updateCallout(this);\n    },\n  },\n};\n\nconst range = behavior(rangeEvents, {\n  init(root) {\n    selectOrMatches(RANGE, root).forEach((rangeSlider) => {\n      updateCallout(rangeSlider);\n    });\n  },\n  updateCallout,\n});\n\nmodule.exports = range;\n","const ignore = require(\"receptor/ignore\");\nconst behavior = require(\"../../uswds-core/src/js/utils/behavior\");\nconst select = require(\"../../uswds-core/src/js/utils/select\");\n\nconst { CLICK } = require(\"../../uswds-core/src/js/events\");\n\nconst BUTTON = \".js-search-button\";\nconst FORM = \".js-search-form\";\nconst INPUT = \"[type=search]\";\nconst CONTEXT = \"header\"; // XXX\n\nlet lastButton;\n\nconst getForm = (button) => {\n  const context = button.closest(CONTEXT);\n  return context ? context.querySelector(FORM) : document.querySelector(FORM);\n};\n\nconst toggleSearch = (button, active) => {\n  const form = getForm(button);\n\n  if (!form) {\n    throw new Error(`No ${FORM} found for search toggle in ${CONTEXT}!`);\n  }\n\n  /* eslint-disable no-param-reassign */\n  button.hidden = active;\n  form.hidden = !active;\n  /* eslint-enable */\n\n  if (!active) {\n    return;\n  }\n\n  const input = form.querySelector(INPUT);\n\n  if (input) {\n    input.focus();\n  }\n  // when the user clicks _outside_ of the form w/ignore(): hide the\n  // search, then remove the listener\n  const listener = ignore(form, () => {\n    if (lastButton) {\n      hideSearch.call(lastButton); // eslint-disable-line no-use-before-define\n    }\n\n    document.body.removeEventListener(CLICK, listener);\n  });\n\n  // Normally we would just run this code without a timeout, but\n  // IE11 and Edge will actually call the listener *immediately* because\n  // they are currently handling this exact type of event, so we'll\n  // make sure the browser is done handling the current click event,\n  // if any, before we attach the listener.\n  setTimeout(() => {\n    document.body.addEventListener(CLICK, listener);\n  }, 0);\n};\n\nfunction showSearch() {\n  toggleSearch(this, true);\n  lastButton = this;\n}\n\nfunction hideSearch() {\n  toggleSearch(this, false);\n  lastButton = undefined;\n}\n\nconst search = behavior(\n  {\n    [CLICK]: {\n      [BUTTON]: showSearch,\n    },\n  },\n  {\n    init(target) {\n      select(BUTTON, target).forEach((button) => {\n        toggleSearch(button, false);\n      });\n    },\n    teardown() {\n      // forget the last button clicked\n      lastButton = undefined;\n    },\n  },\n);\n\nmodule.exports = search;\n","const once = require(\"receptor/once\");\nconst behavior = require(\"../../uswds-core/src/js/utils/behavior\");\nconst { CLICK } = require(\"../../uswds-core/src/js/events\");\nconst { prefix: PREFIX } = require(\"../../uswds-core/src/js/config\");\n\nconst LINK = `.${PREFIX}-skipnav[href^=\"#\"], .${PREFIX}-footer__return-to-top [href^=\"#\"]`;\nconst MAINCONTENT = \"main-content\";\n\nfunction setTabindex() {\n  // NB: we know because of the selector we're delegating to below that the\n  // href already begins with '#'\n  const id = encodeURI(this.getAttribute(\"href\"));\n  const target = document.getElementById(\n    id === \"#\" ? MAINCONTENT : id.slice(1),\n  );\n\n  if (target) {\n    target.style.outline = \"0\";\n    target.setAttribute(\"tabindex\", 0);\n    target.focus();\n    target.addEventListener(\n      \"blur\",\n      once(() => {\n        target.setAttribute(\"tabindex\", -1);\n      }),\n    );\n  } else {\n    // throw an error?\n  }\n}\n\nmodule.exports = behavior({\n  [CLICK]: {\n    [LINK]: setTabindex,\n  },\n});\n","const select = require(\"../../uswds-core/src/js/utils/select\");\nconst behavior = require(\"../../uswds-core/src/js/utils/behavior\");\nconst { CLICK } = require(\"../../uswds-core/src/js/events\");\nconst { prefix: PREFIX } = require(\"../../uswds-core/src/js/config\");\nconst Sanitizer = require(\"../../uswds-core/src/js/utils/sanitizer\");\n\nconst TABLE = `.${PREFIX}-table`;\nconst SORTED = \"aria-sort\";\nconst ASCENDING = \"ascending\";\nconst DESCENDING = \"descending\";\nconst SORT_OVERRIDE = \"data-sort-value\";\nconst SORT_BUTTON_CLASS = `${PREFIX}-table__header__button`;\nconst SORT_BUTTON = `.${SORT_BUTTON_CLASS}`;\nconst SORTABLE_HEADER = `th[data-sortable]`;\nconst ANNOUNCEMENT_REGION = `.${PREFIX}-table__announcement-region[aria-live=\"polite\"]`;\n\n/** Gets the data-sort-value attribute value, if provided — otherwise, gets\n * the innerText or textContent — of the child element (HTMLTableCellElement)\n * at the specified index of the given table row\n *\n * @param {number} index\n * @param {array<HTMLTableRowElement>} tr\n * @return {boolean}\n */\nconst getCellValue = (tr, index) =>\n  tr.children[index].getAttribute(SORT_OVERRIDE) ||\n  tr.children[index].innerText ||\n  tr.children[index].textContent;\n\n/**\n * Compares the values of two row array items at the given index, then sorts by the given direction\n * @param {number} index\n * @param {string} direction\n * @return {boolean}\n */\nconst compareFunction = (index, isAscending) => (thisRow, nextRow) => {\n  // get values to compare from data attribute or cell content\n  const value1 = getCellValue(isAscending ? thisRow : nextRow, index);\n  const value2 = getCellValue(isAscending ? nextRow : thisRow, index);\n\n  // if neither value is empty, and if both values are already numbers, compare numerically\n  if (\n    value1 &&\n    value2 &&\n    !Number.isNaN(Number(value1)) &&\n    !Number.isNaN(Number(value2))\n  ) {\n    return value1 - value2;\n  }\n  // Otherwise, compare alphabetically based on current user locale\n  return value1.toString().localeCompare(value2, navigator.language, {\n    numeric: true,\n    ignorePunctuation: true,\n  });\n};\n\n/**\n * Get an Array of column headers elements belonging directly to the given\n * table element.\n * @param {HTMLTableElement} table\n * @return {array<HTMLTableHeaderCellElement>}\n */\nconst getColumnHeaders = (table) => {\n  const headers = select(SORTABLE_HEADER, table);\n  return headers.filter((header) => header.closest(TABLE) === table);\n};\n\n/**\n * Update the button label within the given header element, resetting it\n * to the default state (ready to sort ascending) if it's no longer sorted\n * @param {HTMLTableHeaderCellElement} header\n */\nconst updateSortLabel = (header) => {\n  const headerName = header.innerText;\n  const sortedAscending = header.getAttribute(SORTED) === ASCENDING;\n  const isSorted =\n    header.getAttribute(SORTED) === ASCENDING ||\n    header.getAttribute(SORTED) === DESCENDING ||\n    false;\n  const headerLabel = `${headerName}, sortable column, currently ${\n    isSorted\n      ? `${sortedAscending ? `sorted ${ASCENDING}` : `sorted ${DESCENDING}`}`\n      : \"unsorted\"\n  }`;\n  const headerButtonLabel = `Click to sort by ${headerName} in ${\n    sortedAscending ? DESCENDING : ASCENDING\n  } order.`;\n  header.setAttribute(\"aria-label\", headerLabel);\n  header.querySelector(SORT_BUTTON).setAttribute(\"title\", headerButtonLabel);\n};\n\n/**\n * Remove the aria-sort attribute on the given header element, and reset the label and button icon\n * @param {HTMLTableHeaderCellElement} header\n */\nconst unsetSort = (header) => {\n  header.removeAttribute(SORTED);\n  updateSortLabel(header);\n};\n\n/**\n * Sort rows either ascending or descending, based on a given header's aria-sort attribute\n * @param {HTMLTableHeaderCellElement} header\n * @param {boolean} isAscending\n * @return {boolean} true\n */\nconst sortRows = (header, isAscending) => {\n  header.setAttribute(SORTED, isAscending === true ? DESCENDING : ASCENDING);\n  updateSortLabel(header);\n\n  const tbody = header.closest(TABLE).querySelector(\"tbody\");\n\n  // We can use Array.from() and Array.sort() instead once we drop IE11 support, likely in the summer of 2021\n  //\n  // Array.from(tbody.querySelectorAll('tr').sort(\n  //   compareFunction(\n  //     Array.from(header.parentNode.children).indexOf(header),\n  //     !isAscending)\n  //   )\n  // .forEach(tr => tbody.appendChild(tr) );\n\n  // [].slice.call() turns array-like sets into true arrays so that we can sort them\n  const allRows = [].slice.call(tbody.querySelectorAll(\"tr\"));\n  const allHeaders = [].slice.call(header.parentNode.children);\n  const thisHeaderIndex = allHeaders.indexOf(header);\n  allRows.sort(compareFunction(thisHeaderIndex, !isAscending)).forEach((tr) => {\n    [].slice\n      .call(tr.children)\n      .forEach((td) => td.removeAttribute(\"data-sort-active\"));\n    tr.children[thisHeaderIndex].setAttribute(\"data-sort-active\", true);\n    tbody.appendChild(tr);\n  });\n\n  return true;\n};\n\n/**\n * Update the live region immediately following the table whenever sort changes.\n * @param {HTMLTableElement} table\n * @param {HTMLTableHeaderCellElement} sortedHeader\n */\n\nconst updateLiveRegion = (table, sortedHeader) => {\n  const caption = table.querySelector(\"caption\").innerText;\n  const sortedAscending = sortedHeader.getAttribute(SORTED) === ASCENDING;\n  const headerLabel = sortedHeader.innerText;\n  const liveRegion = table.nextElementSibling;\n  if (liveRegion && liveRegion.matches(ANNOUNCEMENT_REGION)) {\n    const sortAnnouncement = `The table named \"${caption}\" is now sorted by ${headerLabel} in ${\n      sortedAscending ? ASCENDING : DESCENDING\n    } order.`;\n    liveRegion.innerText = sortAnnouncement;\n  } else {\n    throw new Error(\n      `Table containing a sortable column header is not followed by an aria-live region.`,\n    );\n  }\n};\n\n/**\n * Toggle a header's sort state, optionally providing a target\n * state.\n *\n * @param {HTMLTableHeaderCellElement} header\n * @param {boolean?} isAscending If no state is provided, the current\n * state will be toggled (from false to true, and vice-versa).\n */\nconst toggleSort = (header, isAscending) => {\n  const table = header.closest(TABLE);\n  let safeAscending = isAscending;\n  if (typeof safeAscending !== \"boolean\") {\n    safeAscending = header.getAttribute(SORTED) === ASCENDING;\n  }\n\n  if (!table) {\n    throw new Error(`${SORTABLE_HEADER} is missing outer ${TABLE}`);\n  }\n\n  safeAscending = sortRows(header, isAscending);\n\n  if (safeAscending) {\n    getColumnHeaders(table).forEach((otherHeader) => {\n      if (otherHeader !== header) {\n        unsetSort(otherHeader);\n      }\n    });\n    updateLiveRegion(table, header);\n  }\n};\n\n/**\n ** Inserts a button with icon inside a sortable header\n * @param {HTMLTableHeaderCellElement} header\n */\n\nconst createHeaderButton = (header) => {\n  const buttonEl = document.createElement(\"button\");\n  buttonEl.setAttribute(\"tabindex\", \"0\");\n  buttonEl.classList.add(SORT_BUTTON_CLASS);\n  // ICON_SOURCE\n  buttonEl.innerHTML = Sanitizer.escapeHTML`\n  <svg class=\"${PREFIX}-icon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n    <g class=\"descending\" fill=\"transparent\">\n      <path d=\"M17 17L15.59 15.59L12.9999 18.17V2H10.9999V18.17L8.41 15.58L7 17L11.9999 22L17 17Z\" />\n    </g>\n    <g class=\"ascending\" fill=\"transparent\">\n      <path transform=\"rotate(180, 12, 12)\" d=\"M17 17L15.59 15.59L12.9999 18.17V2H10.9999V18.17L8.41 15.58L7 17L11.9999 22L17 17Z\" />\n    </g>\n    <g class=\"unsorted\" fill=\"transparent\">\n      <polygon points=\"15.17 15 13 17.17 13 6.83 15.17 9 16.58 7.59 12 3 7.41 7.59 8.83 9 11 6.83 11 17.17 8.83 15 7.42 16.41 12 21 16.59 16.41 15.17 15\"/>\n    </g>\n  </svg>\n  `;\n  header.appendChild(buttonEl);\n  updateSortLabel(header);\n};\n\nconst table = behavior(\n  {\n    [CLICK]: {\n      [SORT_BUTTON](event) {\n        event.preventDefault();\n        toggleSort(\n          event.target.closest(SORTABLE_HEADER),\n          event.target.closest(SORTABLE_HEADER).getAttribute(SORTED) ===\n            ASCENDING,\n        );\n      },\n    },\n  },\n  {\n    init(root) {\n      const sortableHeaders = select(SORTABLE_HEADER, root);\n      sortableHeaders.forEach((header) => createHeaderButton(header));\n\n      const firstSorted = sortableHeaders.filter(\n        (header) =>\n          header.getAttribute(SORTED) === ASCENDING ||\n          header.getAttribute(SORTED) === DESCENDING,\n      )[0];\n      if (typeof firstSorted === \"undefined\") {\n        // no sortable headers found\n        return;\n      }\n      const sortDir = firstSorted.getAttribute(SORTED);\n      if (sortDir === ASCENDING) {\n        toggleSort(firstSorted, true);\n      } else if (sortDir === DESCENDING) {\n        toggleSort(firstSorted, false);\n      }\n    },\n    TABLE,\n    SORTABLE_HEADER,\n    SORT_BUTTON,\n  },\n);\n\nmodule.exports = table;\n","const behavior = require(\"../../uswds-core/src/js/utils/behavior\");\nconst selectOrMatches = require(\"../../uswds-core/src/js/utils/select-or-matches\");\nconst { prefix: PREFIX } = require(\"../../uswds-core/src/js/config\");\nconst {\n  COMBO_BOX_CLASS,\n  enhanceComboBox,\n} = require(\"../../usa-combo-box/src/index\");\n\nconst TIME_PICKER_CLASS = `${PREFIX}-time-picker`;\nconst TIME_PICKER = `.${TIME_PICKER_CLASS}`;\nconst MAX_TIME = 60 * 24 - 1;\nconst MIN_TIME = 0;\nconst DEFAULT_STEP = 30;\nconst MIN_STEP = 1;\n\nconst FILTER_DATASET = {\n  filter:\n    \"0?{{ hourQueryFilter }}:{{minuteQueryFilter}}.*{{ apQueryFilter }}m?\",\n  apQueryFilter: \"([ap])\",\n  hourQueryFilter: \"([1-9][0-2]?)\",\n  minuteQueryFilter: \"[\\\\d]+:([0-9]{0,2})\",\n};\n\n/**\n * Parse a string of hh:mm into minutes\n *\n * @param {string} timeStr the time string to parse\n * @returns {number} the number of minutes\n */\nconst parseTimeString = (timeStr) => {\n  let minutes;\n\n  if (timeStr) {\n    const [hours, mins] = timeStr.split(\":\").map((str) => {\n      let value;\n      const parsed = parseInt(str, 10);\n      if (!Number.isNaN(parsed)) value = parsed;\n      return value;\n    });\n\n    if (hours != null && mins != null) {\n      minutes = hours * 60 + mins;\n    }\n  }\n\n  return minutes;\n};\n\n/**\n * Enhance an input with the date picker elements\n *\n * @param {HTMLElement} el The initial wrapping element of the date picker component\n */\nconst transformTimePicker = (el) => {\n  const timePickerEl = el.closest(TIME_PICKER);\n\n  const initialInputEl = timePickerEl.querySelector(`input`);\n\n  if (!initialInputEl) {\n    throw new Error(`${TIME_PICKER} is missing inner input`);\n  }\n\n  const selectEl = document.createElement(\"select\");\n\n  [\n    \"id\",\n    \"name\",\n    \"required\",\n    \"aria-label\",\n    \"aria-labelledby\",\n    \"disabled\",\n    \"aria-disabled\",\n  ].forEach((name) => {\n    if (initialInputEl.hasAttribute(name)) {\n      const value = initialInputEl.getAttribute(name);\n      selectEl.setAttribute(name, value);\n      initialInputEl.removeAttribute(name);\n    }\n  });\n\n  const padZeros = (value, length) => `0000${value}`.slice(-length);\n\n  const getTimeContext = (minutes) => {\n    const minute = minutes % 60;\n    const hour24 = Math.floor(minutes / 60);\n    const hour12 = hour24 % 12 || 12;\n    const ampm = hour24 < 12 ? \"am\" : \"pm\";\n\n    return {\n      minute,\n      hour24,\n      hour12,\n      ampm,\n    };\n  };\n\n  const minTime = Math.max(\n    MIN_TIME,\n    parseTimeString(timePickerEl.dataset.minTime) || MIN_TIME,\n  );\n  const maxTime = Math.min(\n    MAX_TIME,\n    parseTimeString(timePickerEl.dataset.maxTime) || MAX_TIME,\n  );\n  const step = Math.floor(\n    Math.max(MIN_STEP, timePickerEl.dataset.step || DEFAULT_STEP),\n  );\n\n  let defaultValue;\n  for (let time = minTime; time <= maxTime; time += step) {\n    const { minute, hour24, hour12, ampm } = getTimeContext(time);\n\n    const option = document.createElement(\"option\");\n    option.value = `${padZeros(hour24, 2)}:${padZeros(minute, 2)}`;\n    option.text = `${hour12}:${padZeros(minute, 2)}${ampm}`;\n    if (option.text === initialInputEl.value) {\n      defaultValue = option.value;\n    }\n    selectEl.appendChild(option);\n  }\n\n  timePickerEl.classList.add(COMBO_BOX_CLASS);\n\n  // combo box properties\n  Object.keys(FILTER_DATASET).forEach((key) => {\n    timePickerEl.dataset[key] = FILTER_DATASET[key];\n  });\n  timePickerEl.dataset.disableFiltering = \"true\";\n  timePickerEl.dataset.defaultValue = defaultValue;\n\n  timePickerEl.appendChild(selectEl);\n  initialInputEl.remove();\n};\n\nconst timePicker = behavior(\n  {},\n  {\n    init(root) {\n      selectOrMatches(TIME_PICKER, root).forEach((timePickerEl) => {\n        transformTimePicker(timePickerEl);\n        enhanceComboBox(timePickerEl);\n      });\n    },\n    FILTER_DATASET,\n  },\n);\n\nmodule.exports = timePicker;\n","// Tooltips\nconst keymap = require(\"receptor/keymap\");\nconst selectOrMatches = require(\"../../uswds-core/src/js/utils/select-or-matches\");\nconst behavior = require(\"../../uswds-core/src/js/utils/behavior\");\nconst { prefix: PREFIX } = require(\"../../uswds-core/src/js/config\");\nconst isElementInViewport = require(\"../../uswds-core/src/js/utils/is-in-viewport\");\n\nconst BODY = \"body\";\nconst TOOLTIP = `.${PREFIX}-tooltip`;\nconst TOOLTIP_TRIGGER = `.${PREFIX}-tooltip__trigger`;\nconst TOOLTIP_TRIGGER_CLASS = `${PREFIX}-tooltip__trigger`;\nconst TOOLTIP_CLASS = `${PREFIX}-tooltip`;\nconst TOOLTIP_BODY_CLASS = `${PREFIX}-tooltip__body`;\nconst SET_CLASS = \"is-set\";\nconst VISIBLE_CLASS = \"is-visible\";\nconst TRIANGLE_SIZE = 5;\nconst ADJUST_WIDTH_CLASS = `${PREFIX}-tooltip__body--wrap`;\n\n/**\n *\n * @param {DOMElement} trigger - The tooltip trigger\n * @returns {object} Elements for initialized tooltip; includes trigger, wrapper, and body\n */\nconst getTooltipElements = (trigger) => {\n  const wrapper = trigger.parentNode;\n  const body = wrapper.querySelector(`.${TOOLTIP_BODY_CLASS}`);\n\n  return { trigger, wrapper, body };\n};\n\n/**\n * Shows the tooltip\n * @param {HTMLElement} tooltipTrigger - the element that initializes the tooltip\n */\nconst showToolTip = (tooltipBody, tooltipTrigger, position) => {\n  tooltipBody.setAttribute(\"aria-hidden\", \"false\");\n\n  // This sets up the tooltip body. The opacity is 0, but\n  // we can begin running the calculations below.\n  tooltipBody.classList.add(SET_CLASS);\n\n  /**\n   * Position the tooltip body when the trigger is hovered\n   * Removes old positioning classnames and reapplies. This allows\n   * positioning to change in case the user resizes browser or DOM manipulation\n   * causes tooltip to get clipped from viewport\n   *\n   * @param {string} setPos - can be \"top\", \"bottom\", \"right\", \"left\"\n   */\n  const setPositionClass = (setPos) => {\n    tooltipBody.classList.remove(`${TOOLTIP_BODY_CLASS}--top`);\n    tooltipBody.classList.remove(`${TOOLTIP_BODY_CLASS}--bottom`);\n    tooltipBody.classList.remove(`${TOOLTIP_BODY_CLASS}--right`);\n    tooltipBody.classList.remove(`${TOOLTIP_BODY_CLASS}--left`);\n    tooltipBody.classList.add(`${TOOLTIP_BODY_CLASS}--${setPos}`);\n  };\n\n  /**\n   * Removes old positioning styles. This allows\n   * re-positioning to change without inheriting other\n   * dynamic styles\n   *\n   * @param {HTMLElement} e - this is the tooltip body\n   */\n  const resetPositionStyles = (e) => {\n    // we don't override anything in the stylesheet when finding alt positions\n    e.style.top = null;\n    e.style.bottom = null;\n    e.style.right = null;\n    e.style.left = null;\n    e.style.margin = null;\n  };\n\n  /**\n   * get margin offset calculations\n   *\n   * @param {HTMLElement} target - this is the tooltip body\n   * @param {String} propertyValue - this is the tooltip body\n   */\n\n  const offsetMargin = (target, propertyValue) =>\n    parseInt(\n      window.getComputedStyle(target).getPropertyValue(propertyValue),\n      10,\n    );\n\n  // offsetLeft = the left position, and margin of the element, the left\n  // padding, scrollbar and border of the offsetParent element\n  // offsetWidth = The offsetWidth property returns the viewable width of an\n  // element in pixels, including padding, border and scrollbar, but not\n  // the margin.\n\n  /**\n   * Calculate margin offset\n   * tooltip trigger margin(position) offset + tooltipBody offsetWidth\n   * @param {String} marginPosition\n   * @param {Number} tooltipBodyOffset\n   * @param {HTMLElement} trigger\n   */\n  const calculateMarginOffset = (\n    marginPosition,\n    tooltipBodyOffset,\n    trigger,\n  ) => {\n    const offset =\n      offsetMargin(trigger, `margin-${marginPosition}`) > 0\n        ? tooltipBodyOffset - offsetMargin(trigger, `margin-${marginPosition}`)\n        : tooltipBodyOffset;\n\n    return offset;\n  };\n\n  /**\n   * Positions tooltip at the top\n   * @param {HTMLElement} e - this is the tooltip body\n   */\n  const positionTop = (e) => {\n    resetPositionStyles(e); // ensures we start from the same point\n    // get details on the elements object with\n\n    const topMargin = calculateMarginOffset(\n      \"top\",\n      e.offsetHeight,\n      tooltipTrigger,\n    );\n\n    const leftMargin = calculateMarginOffset(\n      \"left\",\n      e.offsetWidth,\n      tooltipTrigger,\n    );\n\n    setPositionClass(\"top\");\n    e.style.left = `50%`; // center the element\n    e.style.top = `-${TRIANGLE_SIZE}px`; // consider the pseudo element\n    // apply our margins based on the offset\n    e.style.margin = `-${topMargin}px 0 0 -${leftMargin / 2}px`;\n  };\n\n  /**\n   * Positions tooltip at the bottom\n   * @param {HTMLElement} e - this is the tooltip body\n   */\n  const positionBottom = (e) => {\n    resetPositionStyles(e);\n\n    const leftMargin = calculateMarginOffset(\n      \"left\",\n      e.offsetWidth,\n      tooltipTrigger,\n    );\n\n    setPositionClass(\"bottom\");\n    e.style.left = `50%`;\n    e.style.margin = `${TRIANGLE_SIZE}px 0 0 -${leftMargin / 2}px`;\n  };\n\n  /**\n   * Positions tooltip at the right\n   * @param {HTMLElement} e - this is the tooltip body\n   */\n  const positionRight = (e) => {\n    resetPositionStyles(e);\n\n    const topMargin = calculateMarginOffset(\n      \"top\",\n      e.offsetHeight,\n      tooltipTrigger,\n    );\n\n    setPositionClass(\"right\");\n    e.style.top = `50%`;\n    e.style.left = `${\n      tooltipTrigger.offsetLeft + tooltipTrigger.offsetWidth + TRIANGLE_SIZE\n    }px`;\n    e.style.margin = `-${topMargin / 2}px 0 0 0`;\n  };\n\n  /**\n   * Positions tooltip at the right\n   * @param {HTMLElement} e - this is the tooltip body\n   */\n  const positionLeft = (e) => {\n    resetPositionStyles(e);\n\n    const topMargin = calculateMarginOffset(\n      \"top\",\n      e.offsetHeight,\n      tooltipTrigger,\n    );\n\n    // we have to check for some utility margins\n    const leftMargin = calculateMarginOffset(\n      \"left\",\n      tooltipTrigger.offsetLeft > e.offsetWidth\n        ? tooltipTrigger.offsetLeft - e.offsetWidth\n        : e.offsetWidth,\n      tooltipTrigger,\n    );\n\n    setPositionClass(\"left\");\n    e.style.top = `50%`;\n    e.style.left = `-${TRIANGLE_SIZE}px`;\n    e.style.margin = `-${topMargin / 2}px 0 0 ${\n      tooltipTrigger.offsetLeft > e.offsetWidth ? leftMargin : -leftMargin\n    }px`; // adjust the margin\n  };\n\n  /**\n   * We try to set the position based on the\n   * original intention, but make adjustments\n   * if the element is clipped out of the viewport\n   * we constrain the width only as a last resort\n   * @param {HTMLElement} element(alias tooltipBody)\n   * @param {Number} attempt (--flag)\n   */\n\n  const maxAttempts = 2;\n\n  function findBestPosition(element, attempt = 1) {\n    // create array of optional positions\n    const positions = [\n      positionTop,\n      positionBottom,\n      positionRight,\n      positionLeft,\n    ];\n\n    let hasVisiblePosition = false;\n\n    // we take a recursive approach\n    function tryPositions(i) {\n      if (i < positions.length) {\n        const pos = positions[i];\n        pos(element);\n\n        if (!isElementInViewport(element)) {\n          // eslint-disable-next-line no-param-reassign\n          tryPositions((i += 1));\n        } else {\n          hasVisiblePosition = true;\n        }\n      }\n    }\n\n    tryPositions(0);\n    // if we can't find a position we compress it and try again\n    if (!hasVisiblePosition) {\n      element.classList.add(ADJUST_WIDTH_CLASS);\n      if (attempt <= maxAttempts) {\n        // eslint-disable-next-line no-param-reassign\n        findBestPosition(element, (attempt += 1));\n      }\n    }\n  }\n\n  switch (position) {\n    case \"top\":\n      positionTop(tooltipBody);\n      if (!isElementInViewport(tooltipBody)) {\n        findBestPosition(tooltipBody);\n      }\n      break;\n    case \"bottom\":\n      positionBottom(tooltipBody);\n      if (!isElementInViewport(tooltipBody)) {\n        findBestPosition(tooltipBody);\n      }\n      break;\n    case \"right\":\n      positionRight(tooltipBody);\n      if (!isElementInViewport(tooltipBody)) {\n        findBestPosition(tooltipBody);\n      }\n      break;\n    case \"left\":\n      positionLeft(tooltipBody);\n      if (!isElementInViewport(tooltipBody)) {\n        findBestPosition(tooltipBody);\n      }\n      break;\n\n    default:\n      // skip default case\n      break;\n  }\n\n  /**\n   * Actually show the tooltip. The VISIBLE_CLASS\n   * will change the opacity to 1\n   */\n  setTimeout(() => {\n    tooltipBody.classList.add(VISIBLE_CLASS);\n  }, 20);\n};\n\n/**\n * Removes all the properties to show and position the tooltip,\n * and resets the tooltip position to the original intention\n * in case the window is resized or the element is moved through\n * DOM manipulation.\n * @param {HTMLElement} tooltipBody - The body of the tooltip\n */\nconst hideToolTip = (tooltipBody) => {\n  tooltipBody.classList.remove(VISIBLE_CLASS);\n  tooltipBody.classList.remove(SET_CLASS);\n  tooltipBody.classList.remove(ADJUST_WIDTH_CLASS);\n  tooltipBody.setAttribute(\"aria-hidden\", \"true\");\n};\n\n/**\n * Setup the tooltip component\n * @param {HTMLElement} tooltipTrigger The element that creates the tooltip\n */\nconst setUpAttributes = (tooltipTrigger) => {\n  const tooltipID = `tooltip-${Math.floor(Math.random() * 900000) + 100000}`;\n  const tooltipContent = tooltipTrigger.getAttribute(\"title\");\n  const wrapper = document.createElement(\"span\");\n  const tooltipBody = document.createElement(\"span\");\n  const additionalClasses = tooltipTrigger.getAttribute(\"data-classes\");\n  let position = tooltipTrigger.getAttribute(\"data-position\");\n\n  // Apply default position if not set as attribute\n  if (!position) {\n    position = \"top\";\n    tooltipTrigger.setAttribute(\"data-position\", position);\n  }\n\n  // Set up tooltip attributes\n  tooltipTrigger.setAttribute(\"aria-describedby\", tooltipID);\n  tooltipTrigger.setAttribute(\"tabindex\", \"0\");\n  tooltipTrigger.removeAttribute(\"title\");\n  tooltipTrigger.classList.remove(TOOLTIP_CLASS);\n  tooltipTrigger.classList.add(TOOLTIP_TRIGGER_CLASS);\n\n  // insert wrapper before el in the DOM tree\n  tooltipTrigger.parentNode.insertBefore(wrapper, tooltipTrigger);\n\n  // set up the wrapper\n  wrapper.appendChild(tooltipTrigger);\n  wrapper.classList.add(TOOLTIP_CLASS);\n  wrapper.appendChild(tooltipBody);\n\n  // Apply additional class names to wrapper element\n  if (additionalClasses) {\n    const classesArray = additionalClasses.split(\" \");\n    classesArray.forEach((classname) => wrapper.classList.add(classname));\n  }\n\n  // set up the tooltip body\n  tooltipBody.classList.add(TOOLTIP_BODY_CLASS);\n  tooltipBody.setAttribute(\"id\", tooltipID);\n  tooltipBody.setAttribute(\"role\", \"tooltip\");\n  tooltipBody.setAttribute(\"aria-hidden\", \"true\");\n\n  // place the text in the tooltip\n  tooltipBody.textContent = tooltipContent;\n\n  return { tooltipBody, position, tooltipContent, wrapper };\n};\n\n/**\n * Hide all active tooltips when escape key is pressed.\n */\n\nconst handleEscape = () => {\n  const activeTooltips = selectOrMatches(`.${TOOLTIP_BODY_CLASS}.${SET_CLASS}`);\n\n  if (!activeTooltips) {\n    return;\n  }\n\n  activeTooltips.forEach((activeTooltip) => hideToolTip(activeTooltip));\n};\n\n// Setup our function to run on various events\nconst tooltip = behavior(\n  {\n    \"mouseover focusin\": {\n      [TOOLTIP](e) {\n        const trigger = e.target;\n        const elementType = trigger.nodeName;\n\n        // Initialize tooltip if it hasn't already\n        if (elementType === \"BUTTON\" && trigger.hasAttribute(\"title\")) {\n          setUpAttributes(trigger);\n        }\n      },\n      [TOOLTIP_TRIGGER](e) {\n        const { trigger, body } = getTooltipElements(e.target);\n\n        showToolTip(body, trigger, trigger.dataset.position);\n      },\n    },\n    focusout: {\n      [TOOLTIP_TRIGGER](e) {\n        const { body } = getTooltipElements(e.target);\n\n        hideToolTip(body);\n      },\n    },\n    keydown: {\n      [BODY]: keymap({ Escape: handleEscape }),\n    },\n  },\n  {\n    init(root) {\n      selectOrMatches(TOOLTIP, root).forEach((tooltipTrigger) => {\n        setUpAttributes(tooltipTrigger);\n\n        const { body, wrapper } = getTooltipElements(tooltipTrigger);\n        wrapper.addEventListener(\"mouseleave\", () => hideToolTip(body));\n      });\n    },\n    teardown(root) {\n      selectOrMatches(TOOLTIP, root).forEach((tooltipWrapper) => {\n        tooltipWrapper.removeEventListener(\"mouseleave\", hideToolTip);\n      });\n    },\n    setup: setUpAttributes,\n    getTooltipElements,\n    show: showToolTip,\n    hide: hideToolTip,\n  },\n);\n\nmodule.exports = tooltip;\n","const behavior = require(\"../../uswds-core/src/js/utils/behavior\");\nconst validate = require(\"../../uswds-core/src/js/utils/validate-input\");\nconst { prefix: PREFIX } = require(\"../../uswds-core/src/js/config\");\nconst selectOrMatches = require(\"../../uswds-core/src/js/utils/select-or-matches\");\n\nconst VALIDATE_INPUT =\n  \"input[data-validation-element],textarea[data-validation-element]\";\nconst CHECKLIST_ITEM = `.${PREFIX}-checklist__item`;\n\n// Trigger validation on input change\nconst handleChange = (el) => validate(el);\n\n// Create container to hold aria readout\nconst createStatusElement = (input) => {\n  const validationContainer = input.parentNode;\n  const inputID = input.getAttribute(\"id\");\n  const statusSummaryID = `${inputID}-sr-summary`;\n  input.setAttribute(\"aria-describedby\", statusSummaryID);\n\n  const statusSummaryContainer = document.createElement(\"span\");\n\n  statusSummaryContainer.setAttribute(\"data-validation-status\", \"\");\n  statusSummaryContainer.classList.add(\"usa-sr-only\");\n  statusSummaryContainer.setAttribute(\"aria-live\", \"polite\");\n  statusSummaryContainer.setAttribute(\"aria-atomic\", true);\n  statusSummaryContainer.setAttribute(\"id\", statusSummaryID);\n  validationContainer.append(statusSummaryContainer);\n};\n\n// Set up checklist items with initial aria-label (incomplete) values\nconst createInitialStatus = (input) => {\n  const validationContainer = input.parentNode;\n  const checklistItems = validationContainer.querySelectorAll(CHECKLIST_ITEM);\n  const validationElement = input.getAttribute(\"data-validation-element\");\n\n  input.setAttribute(\"aria-controls\", validationElement);\n\n  checklistItems.forEach((listItem) => {\n    let currentStatus = \"status incomplete\";\n    if (input.hasAttribute(\"data-validation-incomplete\")) {\n      currentStatus = input.getAttribute(\"data-validation-incomplete\");\n    }\n    const itemStatus = `${listItem.textContent} ${currentStatus} `;\n    listItem.setAttribute(\"aria-label\", itemStatus);\n  });\n};\n\nconst enhanceValidation = (input) => {\n  createStatusElement(input);\n  createInitialStatus(input);\n};\n\nconst validator = behavior(\n  {\n    \"input change\": {\n      [VALIDATE_INPUT](event) {\n        handleChange(event.target);\n      },\n    },\n  },\n  {\n    init(root) {\n      selectOrMatches(VALIDATE_INPUT, root).forEach((input) =>\n        enhanceValidation(input),\n      );\n    },\n  },\n);\n\nmodule.exports = validator;\n","module.exports = {\n  prefix: \"usa\",\n};\n","module.exports = {\n  // This used to be conditionally dependent on whether the\n  // browser supported touch events; if it did, `CLICK` was set to\n  // `touchstart`.  However, this had downsides:\n  //\n  // * It pre-empted mobile browsers' default behavior of detecting\n  //   whether a touch turned into a scroll, thereby preventing\n  //   users from using some of our components as scroll surfaces.\n  //\n  // * Some devices, such as the Microsoft Surface Pro, support *both*\n  //   touch and clicks. This meant the conditional effectively dropped\n  //   support for the user's mouse, frustrating users who preferred\n  //   it on those systems.\n  CLICK: \"click\",\n};\n","const accordion = require(\"../../../usa-accordion/src/index\");\nconst banner = require(\"../../../usa-banner/src/index\");\nconst button = require(\"../../../usa-button/src/index\");\nconst characterCount = require(\"../../../usa-character-count/src/index\");\nconst comboBox = require(\"../../../usa-combo-box/src/index\");\nconst datePicker = require(\"../../../usa-date-picker/src/index\");\nconst dateRangePicker = require(\"../../../usa-date-range-picker/src/index\");\nconst fileInput = require(\"../../../usa-file-input/src/index\");\nconst footer = require(\"../../../usa-footer/src/index\");\nconst inPageNavigation = require(\"../../../usa-in-page-navigation/src/index\");\nconst inputMask = require(\"../../../usa-input-mask/src/index\");\nconst languageSelector = require(\"../../../usa-language-selector/src/index\");\nconst modal = require(\"../../../usa-modal/src/index\");\nconst navigation = require(\"../../../usa-header/src/index\");\nconst password = require(\"../../../_usa-password/src/index\");\nconst range = require(\"../../../usa-range/src/index\");\nconst search = require(\"../../../usa-search/src/index\");\nconst skipnav = require(\"../../../usa-skipnav/src/index\");\nconst table = require(\"../../../usa-table/src/index\");\nconst timePicker = require(\"../../../usa-time-picker/src/index\");\nconst tooltip = require(\"../../../usa-tooltip/src/index\");\nconst validator = require(\"../../../usa-validation/src/index\");\n\nmodule.exports = {\n  accordion,\n  banner,\n  button,\n  characterCount,\n  comboBox,\n  datePicker,\n  dateRangePicker,\n  fileInput,\n  footer,\n  inPageNavigation,\n  inputMask,\n  languageSelector,\n  modal,\n  navigation,\n  password,\n  range,\n  search,\n  skipnav,\n  table,\n  timePicker,\n  tooltip,\n  validator,\n};\n","window.uswdsPresent = true; // GLOBAL variable to indicate that the uswds.js has loaded in the DOM.\n\nconst uswds = require(\"./config\");\n\nconst components = require(\"./index\");\n\nuswds.components = components;\n\nconst initComponents = () => {\n  const target = document.body;\n  Object.keys(components).forEach((key) => {\n    const behavior = components[key];\n    behavior.on(target);\n  });\n};\n\nif (document.readyState === \"loading\") {\n  document.addEventListener(\"DOMContentLoaded\", initComponents, { once: true });\n} else {\n  initComponents();\n}\n\nexports.default = uswds;\nexports.initComponents = initComponents;\n","module.exports = (htmlDocument = document) => htmlDocument.activeElement;\n","const Behavior = require(\"receptor/behavior\");\n\n/**\n * @name sequence\n * @param {...Function} seq an array of functions\n * @return { closure } callHooks\n */\n// We use a named function here because we want it to inherit its lexical scope\n// from the behavior props object, not from the module\nconst sequence = (...seq) =>\n  function callHooks(target = document.body) {\n    seq.forEach((method) => {\n      if (typeof this[method] === \"function\") {\n        this[method].call(this, target);\n      }\n    });\n  };\n\n/**\n * @name behavior\n * @param {object} events\n * @param {object?} props\n * @return {receptor.behavior}\n */\nmodule.exports = (events, props) =>\n  Behavior(events, {\n    on: sequence(\"init\", \"add\"),\n    off: sequence(\"teardown\", \"remove\"),\n    ...props,\n  });\n","/**\n * Call a function every X amount of milliseconds.\n *\n * @param  {Function} callback - A callback function to be debounced\n * @param  {number} delay - Milliseconds to wait before calling function\n * @returns {Function} A debounced function\n * @example const updateStatus = debounce((string) => console.log(string), 2000)\n */\n\nmodule.exports = function debounce(callback, delay = 500) {\n  let timer = null;\n  return (...args) => {\n    window.clearTimeout(timer);\n    timer = window.setTimeout(() => {\n      callback.apply(this, args);\n    }, delay);\n  };\n};\n","const { keymap } = require(\"receptor\");\nconst behavior = require(\"./behavior\");\nconst select = require(\"./select\");\nconst activeElement = require(\"./active-element\");\n\nconst FOCUSABLE =\n  'a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, [tabindex=\"0\"], [contenteditable]';\n\nconst tabHandler = (context) => {\n  const focusableElements = select(FOCUSABLE, context);\n  const firstTabStop = focusableElements[0];\n  const lastTabStop = focusableElements[focusableElements.length - 1];\n\n  // Special rules for when the user is tabbing forward from the last focusable element,\n  // or when tabbing backwards from the first focusable element\n  function tabAhead(event) {\n    if (activeElement() === lastTabStop) {\n      event.preventDefault();\n      firstTabStop.focus();\n    }\n  }\n\n  function tabBack(event) {\n    if (activeElement() === firstTabStop) {\n      event.preventDefault();\n      lastTabStop.focus();\n    }\n    // This checks if you want to set the initial focus to a container\n    // instead of an element within, and the user tabs back.\n    // Then we set the focus to the first\n    else if (!focusableElements.includes(activeElement())) {\n      event.preventDefault();\n      firstTabStop.focus();\n    }\n  }\n\n  return {\n    firstTabStop,\n    lastTabStop,\n    tabAhead,\n    tabBack,\n  };\n};\n\nmodule.exports = (context, additionalKeyBindings = {}) => {\n  const tabEventHandler = tabHandler(context);\n  const bindings = additionalKeyBindings;\n  const { Esc, Escape } = bindings;\n\n  if (Escape && !Esc) bindings.Esc = Escape;\n\n  //  TODO: In the future, loop over additional keybindings and pass an array\n  // of functions, if necessary, to the map keys. Then people implementing\n  // the focus trap could pass callbacks to fire when tabbing\n  const keyMappings = keymap({\n    Tab: tabEventHandler.tabAhead,\n    \"Shift+Tab\": tabEventHandler.tabBack,\n    ...additionalKeyBindings,\n  });\n\n  const focusTrap = behavior(\n    {\n      keydown: keyMappings,\n    },\n    {\n      init() {\n        // TODO: is this desireable behavior? Should the trap always do this by default or should\n        // the component getting decorated handle this?\n        if (tabEventHandler.firstTabStop) {\n          tabEventHandler.firstTabStop.focus();\n        }\n      },\n      update(isActive) {\n        if (isActive) {\n          this.on();\n        } else {\n          this.off();\n        }\n      },\n    },\n  );\n\n  return focusTrap;\n};\n","// https://stackoverflow.com/a/7557433\nfunction isElementInViewport(\n  el,\n  win = window,\n  docEl = document.documentElement,\n) {\n  const rect = el.getBoundingClientRect();\n\n  return (\n    rect.top >= 0 &&\n    rect.left >= 0 &&\n    rect.bottom <= (win.innerHeight || docEl.clientHeight) &&\n    rect.right <= (win.innerWidth || docEl.clientWidth)\n  );\n}\n\nmodule.exports = isElementInViewport;\n","// iOS detection from: http://stackoverflow.com/a/9039885/177710\nfunction isIosDevice() {\n  return (\n    typeof navigator !== \"undefined\" &&\n    (navigator.userAgent.match(/(iPod|iPhone|iPad)/g) ||\n      (navigator.platform === \"MacIntel\" && navigator.maxTouchPoints > 1)) &&\n    !window.MSStream\n  );\n}\n\nmodule.exports = isIosDevice;\n","/* eslint-disable */\n/* globals define, module */\n\n/**\n * A simple library to help you escape HTML using template strings.\n *\n * It's the counterpart to our eslint \"no-unsafe-innerhtml\" plugin that helps us\n * avoid unsafe coding practices.\n * A full write-up of the Hows and Whys are documented\n * for developers at\n *  https://developer.mozilla.org/en-US/Firefox_OS/Security/Security_Automation\n * with additional background information and design docs at\n *  https://wiki.mozilla.org/User:Fbraun/Gaia/SafeinnerHTMLRoadmap\n *\n */\n\n!(function (factory) {\n  module.exports = factory();\n})(function () {\n  \"use strict\";\n\n  var Sanitizer = {\n    _entity: /[&<>\"'/]/g,\n\n    _entities: {\n      \"&\": \"&amp;\",\n      \"<\": \"&lt;\",\n      \">\": \"&gt;\",\n      '\"': \"&quot;\",\n      \"'\": \"&apos;\",\n      \"/\": \"&#x2F;\",\n    },\n\n    getEntity: function (s) {\n      return Sanitizer._entities[s];\n    },\n\n    /**\n     * Escapes HTML for all values in a tagged template string.\n     */\n    escapeHTML: function (strings) {\n      var result = \"\";\n\n      for (var i = 0; i < strings.length; i++) {\n        result += strings[i];\n        if (i + 1 < arguments.length) {\n          var value = arguments[i + 1] || \"\";\n          result += String(value).replace(\n            Sanitizer._entity,\n            Sanitizer.getEntity,\n          );\n        }\n      }\n\n      return result;\n    },\n    /**\n     * Escapes HTML and returns a wrapped object to be used during DOM insertion\n     */\n    createSafeHTML: function (strings) {\n      var _len = arguments.length;\n      var values = new Array(_len > 1 ? _len - 1 : 0);\n      for (var _key = 1; _key < _len; _key++) {\n        values[_key - 1] = arguments[_key];\n      }\n\n      var escaped = Sanitizer.escapeHTML.apply(\n        Sanitizer,\n        [strings].concat(values),\n      );\n      return {\n        __html: escaped,\n        toString: function () {\n          return \"[object WrappedHTMLObject]\";\n        },\n        info:\n          \"This is a wrapped HTML object. See https://developer.mozilla.or\" +\n          \"g/en-US/Firefox_OS/Security/Security_Automation for more.\",\n      };\n    },\n    /**\n     * Unwrap safe HTML created by createSafeHTML or a custom replacement that\n     * underwent security review.\n     */\n    unwrapSafeHTML: function () {\n      var _len = arguments.length;\n      var htmlObjects = new Array(_len);\n      for (var _key = 0; _key < _len; _key++) {\n        htmlObjects[_key] = arguments[_key];\n      }\n\n      var markupList = htmlObjects.map(function (obj) {\n        return obj.__html;\n      });\n      return markupList.join(\"\");\n    },\n  };\n\n  return Sanitizer;\n});\n","module.exports = function getScrollbarWidth() {\n  // Creating invisible container\n  const outer = document.createElement(\"div\");\n  outer.style.visibility = \"hidden\";\n  outer.style.overflow = \"scroll\"; // forcing scrollbar to appear\n  outer.style.msOverflowStyle = \"scrollbar\"; // needed for WinJS apps\n  document.body.appendChild(outer);\n\n  // Creating inner element and placing it in the container\n  const inner = document.createElement(\"div\");\n  outer.appendChild(inner);\n\n  // Calculating difference between container's full width and the child width\n  const scrollbarWidth = `${outer.offsetWidth - inner.offsetWidth}px`;\n\n  // Removing temporary elements from the DOM\n  outer.parentNode.removeChild(outer);\n\n  return scrollbarWidth;\n};\n","const select = require(\"./select\");\n/**\n * @name isElement\n * @desc returns whether or not the given argument is a DOM element.\n * @param {any} value\n * @return {boolean}\n */\nconst isElement = (value) =>\n  value && typeof value === \"object\" && value.nodeType === 1;\n\n/**\n * @name selectOrMatches\n * @desc selects elements from the DOM by class selector or ID selector.\n * @param {string} selector - The selector to traverse the DOM with.\n * @param {Document|HTMLElement?} context - The context to traverse the DOM\n *   in. If not provided, it defaults to the document.\n * @return {HTMLElement[]} - An array of DOM nodes or an empty array.\n */\nmodule.exports = (selector, context) => {\n  const selection = select(selector, context);\n  if (typeof selector !== \"string\") {\n    return selection;\n  }\n\n  if (isElement(context) && context.matches(selector)) {\n    selection.push(context);\n  }\n\n  return selection;\n};\n","/**\n * @name isElement\n * @desc returns whether or not the given argument is a DOM element.\n * @param {any} value\n * @return {boolean}\n */\nconst isElement = (value) =>\n  value && typeof value === \"object\" && value.nodeType === 1;\n\n/**\n * @name select\n * @desc selects elements from the DOM by class selector or ID selector.\n * @param {string} selector - The selector to traverse the DOM with.\n * @param {Document|HTMLElement?} context - The context to traverse the DOM\n *   in. If not provided, it defaults to the document.\n * @return {HTMLElement[]} - An array of DOM nodes or an empty array.\n */\nmodule.exports = (selector, context) => {\n  if (typeof selector !== \"string\") {\n    return [];\n  }\n\n  if (!context || !isElement(context)) {\n    context = window.document; // eslint-disable-line no-param-reassign\n  }\n\n  const selection = context.querySelectorAll(selector);\n  return Array.prototype.slice.call(selection);\n};\n","/**\n * Flips given INPUT elements between masked (hiding the field value) and unmasked\n * @param {Array.HTMLElement} fields - An array of INPUT elements\n * @param {Boolean} mask - Whether the mask should be applied, hiding the field value\n */\nmodule.exports = (field, mask) => {\n  field.setAttribute(\"autocapitalize\", \"off\");\n  field.setAttribute(\"autocorrect\", \"off\");\n  field.setAttribute(\"type\", mask ? \"password\" : \"text\");\n};\n","const resolveIdRefs = require(\"resolve-id-refs\");\nconst toggleFieldMask = require(\"./toggle-field-mask\");\n\nconst CONTROLS = \"aria-controls\";\nconst PRESSED = \"aria-pressed\";\nconst SHOW_ATTR = \"data-show-text\";\nconst HIDE_ATTR = \"data-hide-text\";\n\n/**\n * Replace the word \"Show\" (or \"show\") with \"Hide\" (or \"hide\") in a string.\n * @param {string} showText\n * @return {strong} hideText\n */\nconst getHideText = (showText) =>\n  showText.replace(/\\bShow\\b/i, (show) => `${show[0] === \"S\" ? \"H\" : \"h\"}ide`);\n\n/**\n * Component that decorates an HTML element with the ability to toggle the\n * masked state of an input field (like a password) when clicked.\n * The ids of the fields to be masked will be pulled directly from the button's\n * `aria-controls` attribute.\n *\n * @param  {HTMLElement} el    Parent element containing the fields to be masked\n * @return {boolean}\n */\nmodule.exports = (el) => {\n  // this is the *target* state:\n  // * if the element has the attr and it's !== \"true\", pressed is true\n  // * otherwise, pressed is false\n  const pressed =\n    el.hasAttribute(PRESSED) && el.getAttribute(PRESSED) !== \"true\";\n\n  const fields = resolveIdRefs(el.getAttribute(CONTROLS));\n  fields.forEach((field) => toggleFieldMask(field, pressed));\n\n  if (!el.hasAttribute(SHOW_ATTR)) {\n    el.setAttribute(SHOW_ATTR, el.textContent);\n  }\n\n  const showText = el.getAttribute(SHOW_ATTR);\n  const hideText = el.getAttribute(HIDE_ATTR) || getHideText(showText);\n\n  el.textContent = pressed ? showText : hideText; // eslint-disable-line no-param-reassign\n  el.setAttribute(PRESSED, pressed);\n  return pressed;\n};\n","const EXPANDED = \"aria-expanded\";\nconst CONTROLS = \"aria-controls\";\nconst HIDDEN = \"hidden\";\n\nmodule.exports = (button, expanded) => {\n  let safeExpanded = expanded;\n\n  if (typeof safeExpanded !== \"boolean\") {\n    safeExpanded = button.getAttribute(EXPANDED) === \"false\";\n  }\n\n  button.setAttribute(EXPANDED, safeExpanded);\n\n  const id = button.getAttribute(CONTROLS);\n  const controls = document.getElementById(id);\n  if (!controls) {\n    throw new Error(`No toggle target found with id: \"${id}\"`);\n  }\n\n  if (safeExpanded) {\n    controls.removeAttribute(HIDDEN);\n  } else {\n    controls.setAttribute(HIDDEN, \"\");\n  }\n\n  return safeExpanded;\n};\n","const debounce = require(\"./debounce\");\nconst { prefix: PREFIX } = require(\"../config\");\n\nconst CHECKED_CLASS = `${PREFIX}-checklist__item--checked`;\n\nmodule.exports = function validate(el) {\n  const id = el.dataset.validationElement;\n  const checkList =\n    id.charAt(0) === \"#\"\n      ? document.querySelector(id)\n      : document.getElementById(id);\n\n  if (!checkList) {\n    throw new Error(`No validation element found with id: \"${id}\"`);\n  }\n\n  let statusSummary = \"\";\n  Object.entries(el.dataset).forEach(([key, value]) => {\n    if (key.startsWith(\"validate\")) {\n      const validatorName = key.substr(\"validate\".length).toLowerCase();\n      const validatorPattern = new RegExp(value);\n      const validatorSelector = `[data-validator=\"${validatorName}\"]`;\n      const validatorCheckbox = checkList.querySelector(validatorSelector);\n      const validatorParent = el.parentNode;\n      const statusSummaryContainer = validatorParent.querySelector(\n        `[data-validation-status]`,\n      );\n\n      const checked = validatorPattern.test(el.value);\n      validatorCheckbox.classList.toggle(CHECKED_CLASS, checked);\n\n      if (!validatorCheckbox) {\n        throw new Error(`No validator checkbox found for: \"${validatorName}\"`);\n      }\n\n      // Create status reports for checklist items\n      const statusComplete = el.dataset.validationComplete || \"status complete\";\n      const statusIncomplete =\n        el.dataset.validationIncomplete || \"status incomplete\";\n      let checkboxContent = `${validatorCheckbox.textContent} `;\n\n      if (validatorCheckbox.classList.contains(CHECKED_CLASS)) {\n        checkboxContent += statusComplete;\n      } else {\n        checkboxContent += statusIncomplete;\n      }\n\n      // move status updates to aria-label on checklist item\n      validatorCheckbox.setAttribute(\"aria-label\", checkboxContent);\n\n      // Create a summary of status for all checklist items\n      statusSummary += `${checkboxContent}. `;\n\n      // Add summary to screen reader summary container, after a delay\n      const srUpdateStatus = debounce(() => {\n        statusSummaryContainer.textContent = statusSummary;\n      }, 1000);\n\n      srUpdateStatus();\n    }\n  });\n};\n"]}
\ No newline at end of file
diff --git a/html/merfolk/app.js b/html/merfolk/app.js
new file mode 100644
index 0000000..963f22d
--- /dev/null
+++ b/html/merfolk/app.js
@@ -0,0 +1,280 @@
+/**
+ * Merfolk is a mermaid diagram editor and viewer.
+ * 
+ * Dependencies:
+ * - mermaid.js
+ * - html2canvas
+ * - panzoom
+ * 
+ */
+
+// Configuration
+mermaid.initialize({
+    startOnLoad: true,
+    theme: 'default',
+    securityLevel: 'loose'
+});
+
+// Known DOM Elements
+const input = document.getElementById('mermaid-input');
+const preview = document.getElementById('mermaid-preview');
+const errorMessage = document.getElementById('error-message');
+const exportBtn = document.getElementById('export-btn');
+const exportSvgBtn = document.getElementById('export-svg-btn');
+const resetBtn = document.getElementById('reset-btn');
+
+// State
+let panzoomInstance = null;
+
+/**
+ * Creates a debounced version of a function to prevent too many renders
+ * @param {Function} func - The function to debounce
+ * @param {number} wait - The number of milliseconds to delay
+ * @returns {Function} Debounced function
+ */
+const debounce = (func, wait) => {
+    let timeout;
+    return function executedFunction(...args) {
+        const later = () => {
+            clearTimeout(timeout);
+            func(...args);
+        };
+        clearTimeout(timeout);
+        timeout = setTimeout(later, wait);
+    };
+};
+
+/**
+ * Renders a Mermaid diagram from the provided markup
+ * Handles initialization of panzoom functionality
+ * @param {string} text - The Mermaid diagram syntax
+ * @returns {Promise<void>}
+ */
+const renderMermaid = async (text) => {
+    try {
+        errorMessage.textContent = '';
+        if (!text.trim()) {
+            preview.innerHTML = '';
+            if (panzoomInstance) {
+                panzoomInstance.dispose();
+                panzoomInstance = null;
+            }
+            return;
+        }
+        preview.innerHTML = `<div class="mermaid">${text}</div>`;
+        await mermaid.run();
+        
+        // Initialize panzoom on the SVG
+        if (panzoomInstance) {
+            panzoomInstance.dispose();
+        }
+        const mermaidSvg = preview.querySelector('svg');
+        if (mermaidSvg) {
+            panzoomInstance = panzoom(mermaidSvg, {
+                maxZoom: 5,
+                minZoom: 0.2,
+                bounds: true,
+                boundsPadding: 0.1,
+                transformOrigin: { x: 0.5, y: 0.5 }
+            });
+        }
+    } catch (error) {
+        errorMessage.textContent = `Error: ${error.message}`;
+        console.error('Mermaid rendering error:', error);
+    }
+};
+
+/**
+ * Resets the pan/zoom view to the default position and zoom level
+ */
+const handleReset = () => {
+    if (panzoomInstance) {
+        panzoomInstance.moveTo(0, 0);
+        panzoomInstance.zoomAbs(0, 0, 1);
+    }
+};
+
+/**
+ * Exports the current diagram as a PNG image
+ * Prompts user to select a desired scale before exporting
+ * @returns {Promise<void>}
+ */
+const handleExport = async () => {
+    if (!preview) return;
+    try {
+        // Reset view before capturing
+        handleReset();
+        
+        // Small delay to ensure the reset is complete
+        await new Promise(resolve => setTimeout(resolve, 100));
+
+        // Prompt for scale selection
+        const scale = await new Promise((resolve) => {
+            const scaleOptions = {
+                'Small (2x)': 2,
+                'Medium (5x)': 5,
+                'Large (10x)': 10
+            };
+
+            const scaleSelect = document.createElement('select');
+            scaleSelect.style.cssText = `
+                padding: 8px;
+                font-size: 16px;
+                border: 2px solid #111;
+                background: white;
+                margin: 10px 0;
+                width: 200px;
+            `;
+
+            Object.entries(scaleOptions).forEach(([label, value]) => {
+                const option = document.createElement('option');
+                option.value = value;
+                option.textContent = label;
+                scaleSelect.appendChild(option);
+            });
+
+            const dialog = document.createElement('div');
+            dialog.style.cssText = `
+                position: fixed;
+                top: 50%;
+                left: 50%;
+                transform: translate(-50%, -50%);
+                background: white;
+                padding: 20px;
+                border: 3px solid #111;
+                z-index: 1000;
+                text-align: center;
+            `;
+
+            const title = document.createElement('h3');
+            title.textContent = 'Select Scale';
+            title.style.cssText = `
+                margin: 0 0 15px 0;
+                font-size: 18px;
+                font-weight: bold;
+            `;
+
+            const button = document.createElement('button');
+            button.textContent = 'Export';
+            button.style.cssText = `
+                padding: 8px 16px;
+                font-size: 16px;
+                border: 2px solid #111;
+                background: white;
+                cursor: pointer;
+                margin-top: 10px;
+                margin-right: 8px;
+            `;
+
+            const cancelButton = document.createElement('button');
+            cancelButton.textContent = 'Cancel';
+            cancelButton.style.cssText = button.style.cssText;
+
+            const overlay = document.createElement('div');
+            overlay.style.cssText = `
+                position: fixed;
+                top: 0;
+                left: 0;
+                right: 0;
+                bottom: 0;
+                background: rgba(0, 0, 0, 0.5);
+                z-index: 999;
+            `;
+
+            button.onclick = () => {
+                document.body.removeChild(overlay);
+                resolve(Number(scaleSelect.value));
+            };
+
+            cancelButton.onclick = () => {
+                document.body.removeChild(overlay);
+                resolve(null);
+            };
+
+            dialog.appendChild(title);
+            dialog.appendChild(scaleSelect);
+            const buttonContainer = document.createElement('div');
+            buttonContainer.style.cssText = 'display: flex; justify-content: center; gap: 8px;';
+            buttonContainer.appendChild(button);
+            buttonContainer.appendChild(cancelButton);
+            dialog.appendChild(buttonContainer);
+            overlay.appendChild(dialog);
+            document.body.appendChild(overlay);
+        });
+        
+        // Return early on cancel
+        if (scale === null) return;
+        
+        const canvas = await html2canvas(preview, { 
+            backgroundColor: null,
+            scale,
+            logging: false,
+            useCORS: true,
+            allowTaint: true
+        });
+        const link = document.createElement('a');
+        link.download = 'mermaid-diagram.png';
+        link.href = canvas.toDataURL('image/png');
+        link.click();
+    } catch (err) {
+        errorMessage.textContent = 'Export failed.';
+        console.error('Export error:', err);
+    }
+};
+
+/**
+ * Exports the current diagram as an SVG file
+ * Resets view before export to ensure complete diagram is captured
+ * @returns {Promise<void>}
+ */
+const handleExportSvg = async () => {
+    if (!preview) return;
+    try {
+        // Reset view before capturing
+        handleReset();
+        
+        await new Promise(resolve => setTimeout(resolve, 100));
+        
+        const svg = preview.querySelector('svg');
+        if (!svg) {
+            throw new Error('No SVG found to export');
+        }
+
+        // Create a clone of the SVG to avoid modifying the original
+        const svgClone = svg.cloneNode(true);
+        
+        // Create a data URL from the SVG
+        const svgData = new XMLSerializer().serializeToString(svgClone);
+        const svgBlob = new Blob([svgData], { type: 'image/svg+xml;charset=utf-8' });
+        const svgUrl = URL.createObjectURL(svgBlob);
+        
+        // Create and trigger download
+        const link = document.createElement('a');
+        link.download = 'mermaid-diagram.svg';
+        link.href = svgUrl;
+        link.click();
+        
+        URL.revokeObjectURL(svgUrl);
+    } catch (err) {
+        errorMessage.textContent = 'SVG export failed.';
+        console.error('SVG export error:', err);
+    }
+};
+
+
+const debouncedRender = debounce(renderMermaid, 300);
+input.addEventListener('input', (e) => {
+    debouncedRender(e.target.value);
+});
+exportBtn.addEventListener('click', handleExport);
+exportSvgBtn.addEventListener('click', handleExportSvg);
+resetBtn.addEventListener('click', handleReset);
+
+// Initialize with example diagram
+const exampleDiagram = `graph TD
+    A[Start] --> B{Is it?}
+    B -- Yes --> C[OK]
+    B -- No --> D[End]`;
+
+input.value = exampleDiagram;
+renderMermaid(exampleDiagram); 
\ No newline at end of file
diff --git a/html/merfolk/html2canvas.min.js b/html/merfolk/html2canvas.min.js
new file mode 100644
index 0000000..aed6bfd
--- /dev/null
+++ b/html/merfolk/html2canvas.min.js
@@ -0,0 +1,20 @@
+/*!
+ * html2canvas 1.4.1 <https://html2canvas.hertzen.com>
+ * Copyright (c) 2022 Niklas von Hertzen <https://hertzen.com>
+ * Released under MIT License
+ */
+!function(A,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(A="undefined"!=typeof globalThis?globalThis:A||self).html2canvas=e()}(this,function(){"use strict";
+/*! *****************************************************************************
+    Copyright (c) Microsoft Corporation.
+
+    Permission to use, copy, modify, and/or distribute this software for any
+    purpose with or without fee is hereby granted.
+
+    THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+    REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+    AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+    INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+    LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+    OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+    PERFORMANCE OF THIS SOFTWARE.
+    ***************************************************************************** */var r=function(A,e){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(A,e){A.__proto__=e}||function(A,e){for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&(A[t]=e[t])})(A,e)};function A(A,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function t(){this.constructor=A}r(A,e),A.prototype=null===e?Object.create(e):(t.prototype=e.prototype,new t)}var h=function(){return(h=Object.assign||function(A){for(var e,t=1,r=arguments.length;t<r;t++)for(var B in e=arguments[t])Object.prototype.hasOwnProperty.call(e,B)&&(A[B]=e[B]);return A}).apply(this,arguments)};function a(A,s,o,i){return new(o=o||Promise)(function(t,e){function r(A){try{n(i.next(A))}catch(A){e(A)}}function B(A){try{n(i.throw(A))}catch(A){e(A)}}function n(A){var e;A.done?t(A.value):((e=A.value)instanceof o?e:new o(function(A){A(e)})).then(r,B)}n((i=i.apply(A,s||[])).next())})}function H(t,r){var B,n,s,o={label:0,sent:function(){if(1&s[0])throw s[1];return s[1]},trys:[],ops:[]},A={next:e(0),throw:e(1),return:e(2)};return"function"==typeof Symbol&&(A[Symbol.iterator]=function(){return this}),A;function e(e){return function(A){return function(e){if(B)throw new TypeError("Generator is already executing.");for(;o;)try{if(B=1,n&&(s=2&e[0]?n.return:e[0]?n.throw||((s=n.return)&&s.call(n),0):n.next)&&!(s=s.call(n,e[1])).done)return s;switch(n=0,(e=s?[2&e[0],s.value]:e)[0]){case 0:case 1:s=e;break;case 4:return o.label++,{value:e[1],done:!1};case 5:o.label++,n=e[1],e=[0];continue;case 7:e=o.ops.pop(),o.trys.pop();continue;default:if(!(s=0<(s=o.trys).length&&s[s.length-1])&&(6===e[0]||2===e[0])){o=0;continue}if(3===e[0]&&(!s||e[1]>s[0]&&e[1]<s[3])){o.label=e[1];break}if(6===e[0]&&o.label<s[1]){o.label=s[1],s=e;break}if(s&&o.label<s[2]){o.label=s[2],o.ops.push(e);break}s[2]&&o.ops.pop(),o.trys.pop();continue}e=r.call(t,o)}catch(A){e=[6,A],n=0}finally{B=s=0}if(5&e[0])throw e[1];return{value:e[0]?e[1]:void 0,done:!0}}([e,A])}}}function t(A,e,t){if(t||2===arguments.length)for(var r,B=0,n=e.length;B<n;B++)!r&&B in e||((r=r||Array.prototype.slice.call(e,0,B))[B]=e[B]);return A.concat(r||e)}var d=(B.prototype.add=function(A,e,t,r){return new B(this.left+A,this.top+e,this.width+t,this.height+r)},B.fromClientRect=function(A,e){return new B(e.left+A.windowBounds.left,e.top+A.windowBounds.top,e.width,e.height)},B.fromDOMRectList=function(A,e){e=Array.from(e).find(function(A){return 0!==A.width});return e?new B(e.left+A.windowBounds.left,e.top+A.windowBounds.top,e.width,e.height):B.EMPTY},B.EMPTY=new B(0,0,0,0),B);function B(A,e,t,r){this.left=A,this.top=e,this.width=t,this.height=r}for(var f=function(A,e){return d.fromClientRect(A,e.getBoundingClientRect())},Q=function(A){for(var e=[],t=0,r=A.length;t<r;){var B,n=A.charCodeAt(t++);55296<=n&&n<=56319&&t<r?56320==(64512&(B=A.charCodeAt(t++)))?e.push(((1023&n)<<10)+(1023&B)+65536):(e.push(n),t--):e.push(n)}return e},g=function(){for(var A=[],e=0;e<arguments.length;e++)A[e]=arguments[e];if(String.fromCodePoint)return String.fromCodePoint.apply(String,A);var t=A.length;if(!t)return"";for(var r=[],B=-1,n="";++B<t;){var s=A[B];s<=65535?r.push(s):(s-=65536,r.push(55296+(s>>10),s%1024+56320)),(B+1===t||16384<r.length)&&(n+=String.fromCharCode.apply(String,r),r.length=0)}return n},e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",n="undefined"==typeof Uint8Array?[]:new Uint8Array(256),s=0;s<e.length;s++)n[e.charCodeAt(s)]=s;for(var o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",c="undefined"==typeof Uint8Array?[]:new Uint8Array(256),i=0;i<o.length;i++)c[o.charCodeAt(i)]=i;function w(A,e,t){return A.slice?A.slice(e,t):new Uint16Array(Array.prototype.slice.call(A,e,t))}var U=(l.prototype.get=function(A){var e;if(0<=A){if(A<55296||56319<A&&A<=65535)return e=this.index[A>>5],this.data[e=(e<<2)+(31&A)];if(A<=65535)return e=this.index[2048+(A-55296>>5)],this.data[e=(e<<2)+(31&A)];if(A<this.highStart)return e=this.index[e=2080+(A>>11)],e=this.index[e+=A>>5&63],this.data[e=(e<<2)+(31&A)];if(A<=1114111)return this.data[this.highValueIndex]}return this.errorValue},l);function l(A,e,t,r,B,n){this.initialValue=A,this.errorValue=e,this.highStart=t,this.highValueIndex=r,this.index=B,this.data=n}for(var C="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",u="undefined"==typeof Uint8Array?[]:new Uint8Array(256),F=0;F<C.length;F++)u[C.charCodeAt(F)]=F;function p(A,e,t,r){var B=r[t];if(Array.isArray(A)?-1!==A.indexOf(B):A===B)for(var n=t;n<=r.length;){if((o=r[++n])===e)return 1;if(o!==D)break}if(B===D)for(n=t;0<n;){var s=r[--n];if(Array.isArray(A)?-1!==A.indexOf(s):A===s)for(var o,i=t;i<=r.length;){if((o=r[++i])===e)return 1;if(o!==D)break}if(s!==D)break}}function E(A,e){for(var t=A;0<=t;){var r=e[t];if(r!==D)return r;t--}return 0}function I(t,A){var e=(B=function(A,r){void 0===r&&(r="strict");var B=[],n=[],s=[];return A.forEach(function(A,e){var t=rA.get(A);if(50<t?(s.push(!0),t-=50):s.push(!1),-1!==["normal","auto","loose"].indexOf(r)&&-1!==[8208,8211,12316,12448].indexOf(A))return n.push(e),B.push(16);if(4!==t&&11!==t)return n.push(e),31===t?B.push("strict"===r?O:q):t===AA||29===t?B.push(J):43===t?131072<=A&&A<=196605||196608<=A&&A<=262141?B.push(q):B.push(J):void B.push(t);if(0===e)return n.push(e),B.push(J);t=B[e-1];return-1===iA.indexOf(t)?(n.push(n[e-1]),B.push(t)):(n.push(e),B.push(J))}),[n,B,s]}(t,(A=A||{lineBreak:"normal",wordBreak:"normal"}).lineBreak))[0],r=B[1],B=B[2];return[e,r="break-all"===A.wordBreak||"break-word"===A.wordBreak?r.map(function(A){return-1!==[R,J,AA].indexOf(A)?q:A}):r,"keep-all"===A.wordBreak?B.map(function(A,e){return A&&19968<=t[e]&&t[e]<=40959}):void 0]}var y,K,m,L,b,D=10,v=13,x=15,M=17,S=18,T=19,G=20,O=21,V=22,k=24,R=25,N=26,P=27,X=28,J=30,Y=32,W=33,Z=34,_=35,q=37,j=38,z=39,$=40,AA=42,eA=[9001,65288],tA="×",rA=(m=function(A){var e,t,r,B,n=.75*A.length,s=A.length,o=0;"="===A[A.length-1]&&(n--,"="===A[A.length-2]&&n--);for(var n=new("undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array&&void 0!==Uint8Array.prototype.slice?ArrayBuffer:Array)(n),i=Array.isArray(n)?n:new Uint8Array(n),Q=0;Q<s;Q+=4)e=c[A.charCodeAt(Q)],t=c[A.charCodeAt(Q+1)],r=c[A.charCodeAt(Q+2)],B=c[A.charCodeAt(Q+3)],i[o++]=e<<2|t>>4,i[o++]=(15&t)<<4|r>>2,i[o++]=(3&r)<<6|63&B;return n}(y="KwAAAAAAAAAACA4AUD0AADAgAAACAAAAAAAIABAAGABAAEgAUABYAGAAaABgAGgAYgBqAF8AZwBgAGgAcQB5AHUAfQCFAI0AlQCdAKIAqgCyALoAYABoAGAAaABgAGgAwgDKAGAAaADGAM4A0wDbAOEA6QDxAPkAAQEJAQ8BFwF1AH0AHAEkASwBNAE6AUIBQQFJAVEBWQFhAWgBcAF4ATAAgAGGAY4BlQGXAZ8BpwGvAbUBvQHFAc0B0wHbAeMB6wHxAfkBAQIJAvEBEQIZAiECKQIxAjgCQAJGAk4CVgJeAmQCbAJ0AnwCgQKJApECmQKgAqgCsAK4ArwCxAIwAMwC0wLbAjAA4wLrAvMC+AIAAwcDDwMwABcDHQMlAy0DNQN1AD0DQQNJA0kDSQNRA1EDVwNZA1kDdQB1AGEDdQBpA20DdQN1AHsDdQCBA4kDkQN1AHUAmQOhA3UAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AKYDrgN1AHUAtgO+A8YDzgPWAxcD3gPjA+sD8wN1AHUA+wMDBAkEdQANBBUEHQQlBCoEFwMyBDgEYABABBcDSARQBFgEYARoBDAAcAQzAXgEgASIBJAEdQCXBHUAnwSnBK4EtgS6BMIEyAR1AHUAdQB1AHUAdQCVANAEYABgAGAAYABgAGAAYABgANgEYADcBOQEYADsBPQE/AQEBQwFFAUcBSQFLAU0BWQEPAVEBUsFUwVbBWAAYgVgAGoFcgV6BYIFigWRBWAAmQWfBaYFYABgAGAAYABgAKoFYACxBbAFuQW6BcEFwQXHBcEFwQXPBdMF2wXjBeoF8gX6BQIGCgYSBhoGIgYqBjIGOgZgAD4GRgZMBmAAUwZaBmAAYABgAGAAYABgAGAAYABgAGAAYABgAGIGYABpBnAGYABgAGAAYABgAGAAYABgAGAAYAB4Bn8GhQZgAGAAYAB1AHcDFQSLBmAAYABgAJMGdQA9A3UAmwajBqsGqwaVALMGuwbDBjAAywbSBtIG1QbSBtIG0gbSBtIG0gbdBuMG6wbzBvsGAwcLBxMHAwcbByMHJwcsBywHMQcsB9IGOAdAB0gHTgfSBkgHVgfSBtIG0gbSBtIG0gbSBtIG0gbSBiwHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAdgAGAALAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAdbB2MHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsB2kH0gZwB64EdQB1AHUAdQB1AHUAdQB1AHUHfQdgAIUHjQd1AHUAlQedB2AAYAClB6sHYACzB7YHvgfGB3UAzgfWBzMB3gfmB1EB7gf1B/0HlQENAQUIDQh1ABUIHQglCBcDLQg1CD0IRQhNCEEDUwh1AHUAdQBbCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIcAh3CHoIMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIgggwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAALAcsBywHLAcsBywHLAcsBywHLAcsB4oILAcsB44I0gaWCJ4Ipgh1AHUAqgiyCHUAdQB1AHUAdQB1AHUAdQB1AHUAtwh8AXUAvwh1AMUIyQjRCNkI4AjoCHUAdQB1AO4I9gj+CAYJDgkTCS0HGwkjCYIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiAAIAAAAFAAYABgAGIAXwBgAHEAdQBFAJUAogCyAKAAYABgAEIA4ABGANMA4QDxAMEBDwE1AFwBLAE6AQEBUQF4QkhCmEKoQrhCgAHIQsAB0MLAAcABwAHAAeDC6ABoAHDCwMMAAcABwAHAAdDDGMMAAcAB6MM4wwjDWMNow3jDaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAEjDqABWw6bDqABpg6gAaABoAHcDvwOPA+gAaABfA/8DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DpcPAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcAB9cPKwkyCToJMAB1AHUAdQBCCUoJTQl1AFUJXAljCWcJawkwADAAMAAwAHMJdQB2CX4JdQCECYoJjgmWCXUAngkwAGAAYABxAHUApgn3A64JtAl1ALkJdQDACTAAMAAwADAAdQB1AHUAdQB1AHUAdQB1AHUAowYNBMUIMAAwADAAMADICcsJ0wnZCRUE4QkwAOkJ8An4CTAAMAB1AAAKvwh1AAgKDwoXCh8KdQAwACcKLgp1ADYKqAmICT4KRgowADAAdQB1AE4KMAB1AFYKdQBeCnUAZQowADAAMAAwADAAMAAwADAAMAAVBHUAbQowADAAdQC5CXUKMAAwAHwBxAijBogEMgF9CoQKiASMCpQKmgqIBKIKqgquCogEDQG2Cr4KxgrLCjAAMADTCtsKCgHjCusK8Qr5CgELMAAwADAAMAB1AIsECQsRC3UANAEZCzAAMAAwADAAMAB1ACELKQswAHUANAExCzkLdQBBC0kLMABRC1kLMAAwADAAMAAwADAAdQBhCzAAMAAwAGAAYABpC3ELdwt/CzAAMACHC4sLkwubC58Lpwt1AK4Ltgt1APsDMAAwADAAMAAwADAAMAAwAL4LwwvLC9IL1wvdCzAAMADlC+kL8Qv5C/8LSQswADAAMAAwADAAMAAwADAAMAAHDDAAMAAwADAAMAAODBYMHgx1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1ACYMMAAwADAAdQB1AHUALgx1AHUAdQB1AHUAdQA2DDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AD4MdQBGDHUAdQB1AHUAdQB1AEkMdQB1AHUAdQB1AFAMMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQBYDHUAdQB1AF8MMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUA+wMVBGcMMAAwAHwBbwx1AHcMfwyHDI8MMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAYABgAJcMMAAwADAAdQB1AJ8MlQClDDAAMACtDCwHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsB7UMLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AA0EMAC9DDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAsBywHLAcsBywHLAcsBywHLQcwAMEMyAwsBywHLAcsBywHLAcsBywHLAcsBywHzAwwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1ANQM2QzhDDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMABgAGAAYABgAGAAYABgAOkMYADxDGAA+AwADQYNYABhCWAAYAAODTAAMAAwADAAFg1gAGAAHg37AzAAMAAwADAAYABgACYNYAAsDTQNPA1gAEMNPg1LDWAAYABgAGAAYABgAGAAYABgAGAAUg1aDYsGVglhDV0NcQBnDW0NdQ15DWAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAlQCBDZUAiA2PDZcNMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAnw2nDTAAMAAwADAAMAAwAHUArw23DTAAMAAwADAAMAAwADAAMAAwADAAMAB1AL8NMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAB1AHUAdQB1AHUAdQDHDTAAYABgAM8NMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAA1w11ANwNMAAwAD0B5A0wADAAMAAwADAAMADsDfQN/A0EDgwOFA4wABsOMAAwADAAMAAwADAAMAAwANIG0gbSBtIG0gbSBtIG0gYjDigOwQUuDsEFMw7SBjoO0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGQg5KDlIOVg7SBtIGXg5lDm0OdQ7SBtIGfQ6EDooOjQ6UDtIGmg6hDtIG0gaoDqwO0ga0DrwO0gZgAGAAYADEDmAAYAAkBtIGzA5gANIOYADaDokO0gbSBt8O5w7SBu8O0gb1DvwO0gZgAGAAxA7SBtIG0gbSBtIGYABgAGAAYAAED2AAsAUMD9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGFA8sBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAccD9IGLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHJA8sBywHLAcsBywHLAccDywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywPLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAc0D9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAccD9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGFA8sBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHPA/SBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gYUD0QPlQCVAJUAMAAwADAAMACVAJUAlQCVAJUAlQCVAEwPMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAA//8EAAQABAAEAAQABAAEAAQABAANAAMAAQABAAIABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQACgATABcAHgAbABoAHgAXABYAEgAeABsAGAAPABgAHABLAEsASwBLAEsASwBLAEsASwBLABgAGAAeAB4AHgATAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABYAGwASAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAWAA0AEQAeAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAFAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAJABYAGgAbABsAGwAeAB0AHQAeAE8AFwAeAA0AHgAeABoAGwBPAE8ADgBQAB0AHQAdAE8ATwAXAE8ATwBPABYAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAFAATwBAAE8ATwBPAEAATwBQAFAATwBQAB4AHgAeAB4AHgAeAB0AHQAdAB0AHgAdAB4ADgBQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgBQAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAJAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAkACQAJAAkACQAJAAkABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAFAAHgAeAB4AKwArAFAAUABQAFAAGABQACsAKwArACsAHgAeAFAAHgBQAFAAUAArAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUAAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAYAA0AKwArAB4AHgAbACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADQAEAB4ABAAEAB4ABAAEABMABAArACsAKwArACsAKwArACsAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAKwArACsAKwBWAFYAVgBWAB4AHgArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AGgAaABoAGAAYAB4AHgAEAAQABAAEAAQABAAEAAQABAAEAAQAEwAEACsAEwATAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABLAEsASwBLAEsASwBLAEsASwBLABoAGQAZAB4AUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABMAUAAEAAQABAAEAAQABAAEAB4AHgAEAAQABAAEAAQABABQAFAABAAEAB4ABAAEAAQABABQAFAASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUAAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAFAABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQAUABQAB4AHgAYABMAUAArACsABAAbABsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAFAABAAEAAQABAAEAFAABAAEAAQAUAAEAAQABAAEAAQAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAArACsAHgArAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAUAAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAABAAEAA0ADQBLAEsASwBLAEsASwBLAEsASwBLAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUAArACsAKwBQAFAAUABQACsAKwAEAFAABAAEAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABABQACsAKwArACsAKwArACsAKwAEACsAKwArACsAUABQACsAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUAAaABoAUABQAFAAUABQAEwAHgAbAFAAHgAEACsAKwAEAAQABAArAFAAUABQAFAAUABQACsAKwArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQACsAUABQACsAKwAEACsABAAEAAQABAAEACsAKwArACsABAAEACsAKwAEAAQABAArACsAKwAEACsAKwArACsAKwArACsAUABQAFAAUAArAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLAAQABABQAFAAUAAEAB4AKwArACsAKwArACsAKwArACsAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQACsAKwAEAFAABAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAArACsAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAB4AGwArACsAKwArACsAKwArAFAABAAEAAQABAAEAAQAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABAArACsAKwArACsAKwArAAQABAAEACsAKwArACsAUABQACsAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAB4AUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAAQAUAArAFAAUABQAFAAUABQACsAKwArAFAAUABQACsAUABQAFAAUAArACsAKwBQAFAAKwBQACsAUABQACsAKwArAFAAUAArACsAKwBQAFAAUAArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArAAQABAAEAAQABAArACsAKwAEAAQABAArAAQABAAEAAQAKwArAFAAKwArACsAKwArACsABAArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAHgAeAB4AHgAeAB4AGwAeACsAKwArACsAKwAEAAQABAAEAAQAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAUAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAAEACsAKwArACsAKwArACsABAAEACsAUABQAFAAKwArACsAKwArAFAAUAAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKwAOAFAAUABQAFAAUABQAFAAHgBQAAQABAAEAA4AUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAKwArAAQAUAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAAEACsAKwArACsAKwArACsABAAEACsAKwArACsAKwArACsAUAArAFAAUAAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwBQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAFAABAAEAAQABAAEAAQABAArAAQABAAEACsABAAEAAQABABQAB4AKwArACsAKwBQAFAAUAAEAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQABoAUABQAFAAUABQAFAAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQACsAUAArACsAUABQAFAAUABQAFAAUAArACsAKwAEACsAKwArACsABAAEAAQABAAEAAQAKwAEACsABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArAAQABAAeACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAXAAqACoAKgAqACoAKgAqACsAKwArACsAGwBcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAeAEsASwBLAEsASwBLAEsASwBLAEsADQANACsAKwArACsAKwBcAFwAKwBcACsAXABcAFwAXABcACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAXAArAFwAXABcAFwAXABcAFwAXABcAFwAKgBcAFwAKgAqACoAKgAqACoAKgAqACoAXAArACsAXABcAFwAXABcACsAXAArACoAKgAqACoAKgAqACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwBcAFwAXABcAFAADgAOAA4ADgAeAA4ADgAJAA4ADgANAAkAEwATABMAEwATAAkAHgATAB4AHgAeAAQABAAeAB4AHgAeAB4AHgBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQAFAADQAEAB4ABAAeAAQAFgARABYAEQAEAAQAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADQAEAAQABAAEAAQADQAEAAQAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAA0ADQAeAB4AHgAeAB4AHgAEAB4AHgAeAB4AHgAeACsAHgAeAA4ADgANAA4AHgAeAB4AHgAeAAkACQArACsAKwArACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgBcAEsASwBLAEsASwBLAEsASwBLAEsADQANAB4AHgAeAB4AXABcAFwAXABcAFwAKgAqACoAKgBcAFwAXABcACoAKgAqAFwAKgAqACoAXABcACoAKgAqACoAKgAqACoAXABcAFwAKgAqACoAKgBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKgAqAFwAKgBLAEsASwBLAEsASwBLAEsASwBLACoAKgAqACoAKgAqAFAAUABQAFAAUABQACsAUAArACsAKwArACsAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgBQAFAAUABQAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAKwBQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsABAAEAAQAHgANAB4AHgAeAB4AHgAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUAArACsADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAWABEAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAA0ADQANAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAANAA0AKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUAArAAQABAArACsAKwArACsAKwArACsAKwArACsAKwBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqAA0ADQAVAFwADQAeAA0AGwBcACoAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwAeAB4AEwATAA0ADQAOAB4AEwATAB4ABAAEAAQACQArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUAAEAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAHgArACsAKwATABMASwBLAEsASwBLAEsASwBLAEsASwBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAArACsAXABcAFwAXABcACsAKwArACsAKwArACsAKwArACsAKwBcAFwAXABcAFwAXABcAFwAXABcAFwAXAArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAXAArACsAKwAqACoAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAArACsAHgAeAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKwAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKwArAAQASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArACoAKgAqACoAKgAqACoAXAAqACoAKgAqACoAKgArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABABQAFAAUABQAFAAUABQACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwANAA0AHgANAA0ADQANAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQAHgAeAB4AHgAeAB4AHgAeAB4AKwArACsABAAEAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwAeAB4AHgAeAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArAA0ADQANAA0ADQBLAEsASwBLAEsASwBLAEsASwBLACsAKwArAFAAUABQAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAA0ADQBQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUAAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArAAQABAAEAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAAQAUABQAFAAUABQAFAABABQAFAABAAEAAQAUAArACsAKwArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAKwBQACsAUAArAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAFAAUABQACsAHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQACsAKwAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQACsAHgAeAB4AHgAeAB4AHgAOAB4AKwANAA0ADQANAA0ADQANAAkADQANAA0ACAAEAAsABAAEAA0ACQANAA0ADAAdAB0AHgAXABcAFgAXABcAFwAWABcAHQAdAB4AHgAUABQAFAANAAEAAQAEAAQABAAEAAQACQAaABoAGgAaABoAGgAaABoAHgAXABcAHQAVABUAHgAeAB4AHgAeAB4AGAAWABEAFQAVABUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ADQAeAA0ADQANAA0AHgANAA0ADQAHAB4AHgAeAB4AKwAEAAQABAAEAAQABAAEAAQABAAEAFAAUAArACsATwBQAFAAUABQAFAAHgAeAB4AFgARAE8AUABPAE8ATwBPAFAAUABQAFAAUAAeAB4AHgAWABEAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArABsAGwAbABsAGwAbABsAGgAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGgAbABsAGwAbABoAGwAbABoAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAHgAeAFAAGgAeAB0AHgBQAB4AGgAeAB4AHgAeAB4AHgAeAB4AHgBPAB4AUAAbAB4AHgBQAFAAUABQAFAAHgAeAB4AHQAdAB4AUAAeAFAAHgBQAB4AUABPAFAAUAAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAHgBQAFAAUABQAE8ATwBQAFAAUABQAFAATwBQAFAATwBQAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAFAAUABQAFAATwBPAE8ATwBPAE8ATwBPAE8ATwBQAFAAUABQAFAAUABQAFAAUAAeAB4AUABQAFAAUABPAB4AHgArACsAKwArAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHQAdAB4AHgAeAB0AHQAeAB4AHQAeAB4AHgAdAB4AHQAbABsAHgAdAB4AHgAeAB4AHQAeAB4AHQAdAB0AHQAeAB4AHQAeAB0AHgAdAB0AHQAdAB0AHQAeAB0AHgAeAB4AHgAeAB0AHQAdAB0AHgAeAB4AHgAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHgAeAB0AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAeAB0AHQAdAB0AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAeAB4AHgAdAB4AHgAeAB4AHgAeAB4AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAWABEAHgAeAB4AHgAeAB4AHQAeAB4AHgAeAB4AHgAeACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAWABEAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAFAAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAeAB4AHQAdAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHQAdAB4AHgAeAB4AHQAdAB0AHgAeAB0AHgAeAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlAB4AHQAdAB4AHgAdAB4AHgAeAB4AHQAdAB4AHgAeAB4AJQAlAB0AHQAlAB4AJQAlACUAIAAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAeAB4AHgAeAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAdAB0AHQAeAB0AJQAdAB0AHgAdAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAdAB0AHQAdACUAHgAlACUAJQAdACUAJQAdAB0AHQAlACUAHQAdACUAHQAdACUAJQAlAB4AHQAeAB4AHgAeAB0AHQAlAB0AHQAdAB0AHQAdACUAJQAlACUAJQAdACUAJQAgACUAHQAdACUAJQAlACUAJQAlACUAJQAeAB4AHgAlACUAIAAgACAAIAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AFwAXABcAFwAXABcAHgATABMAJQAeAB4AHgAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAFgARABYAEQAWABEAFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAEAAQABAAeAB4AKwArACsAKwArABMADQANAA0AUAATAA0AUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUAANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAA0ADQANAA0ADQANAA0ADQAeAA0AFgANAB4AHgAXABcAHgAeABcAFwAWABEAFgARABYAEQAWABEADQANAA0ADQATAFAADQANAB4ADQANAB4AHgAeAB4AHgAMAAwADQANAA0AHgANAA0AFgANAA0ADQANAA0ADQANAA0AHgANAB4ADQANAB4AHgAeACsAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArAA0AEQARACUAJQBHAFcAVwAWABEAFgARABYAEQAWABEAFgARACUAJQAWABEAFgARABYAEQAWABEAFQAWABEAEQAlAFcAVwBXAFcAVwBXAFcAVwBXAAQABAAEAAQABAAEACUAVwBXAFcAVwA2ACUAJQBXAFcAVwBHAEcAJQAlACUAKwBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBRAFcAUQBXAFEAVwBXAFcAVwBXAFcAUQBXAFcAVwBXAFcAVwBRAFEAKwArAAQABAAVABUARwBHAFcAFQBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBRAFcAVwBXAFcAVwBXAFEAUQBXAFcAVwBXABUAUQBHAEcAVwArACsAKwArACsAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwAlACUAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACsAKwArACsAKwArACsAKwArACsAKwArAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBPAE8ATwBPAE8ATwBPAE8AJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADQATAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABLAEsASwBLAEsASwBLAEsASwBLAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAABAAEAAQABAAeAAQABAAEAAQABAAEAAQABAAEAAQAHgBQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUABQAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAeAA0ADQANAA0ADQArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAB4AHgAeAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAAQAUABQAFAABABQAFAAUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAeAB4AHgAeAAQAKwArACsAUABQAFAAUABQAFAAHgAeABoAHgArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADgAOABMAEwArACsAKwArACsAKwArACsABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwANAA0ASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUAAeAB4AHgBQAA4AUABQAAQAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAA0ADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArAB4AWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYACsAKwArAAQAHgAeAB4AHgAeAB4ADQANAA0AHgAeAB4AHgArAFAASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArAB4AHgBcAFwAXABcAFwAKgBcAFwAXABcAFwAXABcAFwAXABcAEsASwBLAEsASwBLAEsASwBLAEsAXABcAFwAXABcACsAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArAFAAUABQAAQAUABQAFAAUABQAFAAUABQAAQABAArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAHgANAA0ADQBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAXAAqACoAKgBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAKgAqACoAXABcACoAKgBcAFwAXABcAFwAKgAqAFwAKgBcACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcACoAKgBQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAA0ADQBQAFAAUAAEAAQAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQADQAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAVABVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBUAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVACsAKwArACsAKwArACsAKwArACsAKwArAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAKwArACsAKwBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAKwArACsAKwAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAKwArACsAKwArAFYABABWAFYAVgBWAFYAVgBWAFYAVgBWAB4AVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgArAFYAVgBWAFYAVgArAFYAKwBWAFYAKwBWAFYAKwBWAFYAVgBWAFYAVgBWAFYAVgBWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAEQAWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAaAB4AKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAGAARABEAGAAYABMAEwAWABEAFAArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACUAJQAlACUAJQAWABEAFgARABYAEQAWABEAFgARABYAEQAlACUAFgARACUAJQAlACUAJQAlACUAEQAlABEAKwAVABUAEwATACUAFgARABYAEQAWABEAJQAlACUAJQAlACUAJQAlACsAJQAbABoAJQArACsAKwArAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAcAKwATACUAJQAbABoAJQAlABYAEQAlACUAEQAlABEAJQBXAFcAVwBXAFcAVwBXAFcAVwBXABUAFQAlACUAJQATACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXABYAJQARACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAWACUAEQAlABYAEQARABYAEQARABUAVwBRAFEAUQBRAFEAUQBRAFEAUQBRAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcARwArACsAVwBXAFcAVwBXAFcAKwArAFcAVwBXAFcAVwBXACsAKwBXAFcAVwBXAFcAVwArACsAVwBXAFcAKwArACsAGgAbACUAJQAlABsAGwArAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwAEAAQABAAQAB0AKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsADQANAA0AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAAQAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAA0AUABQAFAAUAArACsAKwArAFAAUABQAFAAUABQAFAAUAANAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAKwArAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUAArACsAKwBQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAUABQAFAAUABQAAQABAAEACsABAAEACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAKwBQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEACsAKwArACsABABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAA0ADQANAA0ADQANAA0ADQAeACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAArACsAKwArAFAAUABQAFAAUAANAA0ADQANAA0ADQAUACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsADQANAA0ADQANAA0ADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAAQABAAEAAQAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArAAQABAANACsAKwBQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAB4AHgAeAB4AHgArACsAKwArACsAKwAEAAQABAAEAAQABAAEAA0ADQAeAB4AHgAeAB4AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwAeACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsASwBLAEsASwBLAEsASwBLAEsASwANAA0ADQANAFAABAAEAFAAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAeAA4AUAArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAADQANAB4ADQAEAAQABAAEAB4ABAAEAEsASwBLAEsASwBLAEsASwBLAEsAUAAOAFAADQANAA0AKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAANAA0AHgANAA0AHgAEACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAA0AKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsABAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQACsABAAEAFAABAAEAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABAArACsAUAArACsAKwArACsAKwAEACsAKwArACsAKwBQAFAAUABQAFAABAAEACsAKwAEAAQABAAEAAQABAAEACsAKwArAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAAQABABQAFAAUABQAA0ADQANAA0AHgBLAEsASwBLAEsASwBLAEsASwBLAA0ADQArAB4ABABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAFAAUAAeAFAAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAArACsABAAEAAQABAAEAAQABAAEAAQADgANAA0AEwATAB4AHgAeAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAFAAUABQAFAABAAEACsAKwAEAA0ADQAeAFAAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKwArACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBcAFwADQANAA0AKgBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAKwArAFAAKwArAFAAUABQAFAAUABQAFAAUAArAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQAKwAEAAQAKwArAAQABAAEAAQAUAAEAFAABAAEAA0ADQANACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAArACsABAAEAAQABAAEAAQABABQAA4AUAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAFAABAAEAAQABAAOAB4ADQANAA0ADQAOAB4ABAArACsAKwArACsAKwArACsAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAA0ADQANAFAADgAOAA4ADQANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAAQABAAEAFAADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwAOABMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAArACsAKwAEACsABAAEACsABAAEAAQABAAEAAQABABQAAQAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAKwBQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQAKwAEAAQAKwAEAAQABAAEAAQAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAaABoAGgAaAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABIAEgAQwBDAEMAUABQAFAAUABDAFAAUABQAEgAQwBIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABDAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwAJAAkACQAJAAkACQAJABYAEQArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwANAA0AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAANACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAA0ADQANAB4AHgAeAB4AHgAeAFAAUABQAFAADQAeACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAANAA0AHgAeACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwAEAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAARwBHABUARwAJACsAKwArACsAKwArACsAKwArACsAKwAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACsAKwArACsAKwArACsAKwBXAFcAVwBXAFcAVwBXAFcAVwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUQBRAFEAKwArACsAKwArACsAKwArACsAKwArACsAKwBRAFEAUQBRACsAKwArACsAKwArACsAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArACsAHgAEAAQADQAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAAQABAAEAAQABAAeAB4AHgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4AHgAEAAQABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQAHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwBQAFAAKwArAFAAKwArAFAAUAArACsAUABQAFAAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAUAArAFAAUABQAFAAUABQAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAHgAeAFAAUABQAFAAUAArAFAAKwArACsAUABQAFAAUABQAFAAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeACsAKwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4ABAAeAB4AHgAeAB4AHgAeAB4AHgAeAAQAHgAeAA0ADQANAA0AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAAQAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArAAQABAAEAAQABAAEAAQAKwAEAAQAKwAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwBQAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArABsAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArAB4AHgAeAB4ABAAEAAQABAAEAAQABABQACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArABYAFgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAGgBQAFAAUAAaAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAKwBQACsAKwBQACsAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwBQACsAUAArACsAKwArACsAKwBQACsAKwArACsAUAArAFAAKwBQACsAUABQAFAAKwBQAFAAKwBQACsAKwBQACsAUAArAFAAKwBQACsAUAArAFAAUAArAFAAKwArAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUAArAFAAUABQAFAAKwBQACsAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAKwBQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8AJQAlACUAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB4AHgAeACUAJQAlAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAlACUAJQAlACUAHgAlACUAJQAlACUAIAAgACAAJQAlACAAJQAlACAAIAAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACEAIQAhACEAIQAlACUAIAAgACUAJQAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAIAAlACUAJQAlACAAIAAgACUAIAAgACAAJQAlACUAJQAlACUAJQAgACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAlAB4AJQAeACUAJQAlACUAJQAgACUAJQAlACUAHgAlAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACAAIAAgACUAJQAlACAAIAAgACAAIAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABcAFwAXABUAFQAVAB4AHgAeAB4AJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAgACUAJQAgACUAJQAlACUAJQAlACUAJQAgACAAIAAgACAAIAAgACAAJQAlACUAJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAgACAAIAAgACAAIAAgACAAIAAgACUAJQAgACAAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAlACAAIAAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAgACAAIAAlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACUAVwBXACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAA=="),L=Array.isArray(m)?function(A){for(var e=A.length,t=[],r=0;r<e;r+=4)t.push(A[r+3]<<24|A[r+2]<<16|A[r+1]<<8|A[r]);return t}(m):new Uint32Array(m),b=Array.isArray(m)?function(A){for(var e=A.length,t=[],r=0;r<e;r+=2)t.push(A[r+1]<<8|A[r]);return t}(m):new Uint16Array(m),y=w(b,12,L[4]/2),K=2===L[5]?w(b,(24+L[4])/2):(m=L,b=Math.ceil((24+L[4])/4),m.slice?m.slice(b,K):new Uint32Array(Array.prototype.slice.call(m,b,K))),new U(L[0],L[1],L[2],L[3],y,K)),BA=[J,36],nA=[1,2,3,5],sA=[D,8],oA=[P,N],iA=nA.concat(sA),QA=[j,z,$,Z,_],cA=[x,v],aA=(gA.prototype.slice=function(){return g.apply(void 0,this.codePoints.slice(this.start,this.end))},gA);function gA(A,e,t,r){this.codePoints=A,this.required="!"===e,this.start=t,this.end=r}function wA(A,e){var t=Q(A),r=(e=I(t,e))[0],B=e[1],n=e[2],s=t.length,o=0,i=0;return{next:function(){if(s<=i)return{done:!0,value:null};for(var A=tA;i<s&&(A=function(A,e,t,r,B){if(0===t[r])return tA;var n=r-1;if(Array.isArray(B)&&!0===B[n])return tA;var s=n-1,o=1+n,i=e[n],r=0<=s?e[s]:0,B=e[o];if(2===i&&3===B)return tA;if(-1!==nA.indexOf(i))return"!";if(-1!==nA.indexOf(B))return tA;if(-1!==sA.indexOf(B))return tA;if(8===E(n,e))return"÷";if(11===rA.get(A[n]))return tA;if((i===Y||i===W)&&11===rA.get(A[o]))return tA;if(7===i||7===B)return tA;if(9===i)return tA;if(-1===[D,v,x].indexOf(i)&&9===B)return tA;if(-1!==[M,S,T,k,X].indexOf(B))return tA;if(E(n,e)===V)return tA;if(p(23,V,n,e))return tA;if(p([M,S],O,n,e))return tA;if(p(12,12,n,e))return tA;if(i===D)return"÷";if(23===i||23===B)return tA;if(16===B||16===i)return"÷";if(-1!==[v,x,O].indexOf(B)||14===i)return tA;if(36===r&&-1!==cA.indexOf(i))return tA;if(i===X&&36===B)return tA;if(B===G)return tA;if(-1!==BA.indexOf(B)&&i===R||-1!==BA.indexOf(i)&&B===R)return tA;if(i===P&&-1!==[q,Y,W].indexOf(B)||-1!==[q,Y,W].indexOf(i)&&B===N)return tA;if(-1!==BA.indexOf(i)&&-1!==oA.indexOf(B)||-1!==oA.indexOf(i)&&-1!==BA.indexOf(B))return tA;if(-1!==[P,N].indexOf(i)&&(B===R||-1!==[V,x].indexOf(B)&&e[1+o]===R)||-1!==[V,x].indexOf(i)&&B===R||i===R&&-1!==[R,X,k].indexOf(B))return tA;if(-1!==[R,X,k,M,S].indexOf(B))for(var Q=n;0<=Q;){if((c=e[Q])===R)return tA;if(-1===[X,k].indexOf(c))break;Q--}if(-1!==[P,N].indexOf(B))for(var c,Q=-1!==[M,S].indexOf(i)?s:n;0<=Q;){if((c=e[Q])===R)return tA;if(-1===[X,k].indexOf(c))break;Q--}if(j===i&&-1!==[j,z,Z,_].indexOf(B)||-1!==[z,Z].indexOf(i)&&-1!==[z,$].indexOf(B)||-1!==[$,_].indexOf(i)&&B===$)return tA;if(-1!==QA.indexOf(i)&&-1!==[G,N].indexOf(B)||-1!==QA.indexOf(B)&&i===P)return tA;if(-1!==BA.indexOf(i)&&-1!==BA.indexOf(B))return tA;if(i===k&&-1!==BA.indexOf(B))return tA;if(-1!==BA.concat(R).indexOf(i)&&B===V&&-1===eA.indexOf(A[o])||-1!==BA.concat(R).indexOf(B)&&i===S)return tA;if(41===i&&41===B){for(var a=t[n],g=1;0<a&&41===e[--a];)g++;if(g%2!=0)return tA}return i===Y&&B===W?tA:"÷"}(t,B,r,++i,n))===tA;);if(A===tA&&i!==s)return{done:!0,value:null};var e=new aA(t,A,o,i);return o=i,{value:e,done:!1}}}}function UA(A){return 48<=A&&A<=57}function lA(A){return UA(A)||65<=A&&A<=70||97<=A&&A<=102}function CA(A){return 10===A||9===A||32===A}function uA(A){return 97<=(t=e=A)&&t<=122||65<=(e=e)&&e<=90||128<=A||95===A;var e,t}function FA(A){return uA(A)||UA(A)||45===A}function hA(A,e){return 92===A&&10!==e}function dA(A,e,t){return 45===A?uA(e)||hA(e,t):!!uA(A)||92===A&&10!==e}function fA(A,e,t){return 43===A||45===A?!!UA(e)||46===e&&UA(t):UA(46===A?e:A)}var HA={type:2},pA={type:3},EA={type:4},IA={type:13},yA={type:8},KA={type:21},mA={type:9},LA={type:10},bA={type:11},DA={type:12},vA={type:14},xA={type:23},MA={type:1},SA={type:25},TA={type:24},GA={type:26},OA={type:27},VA={type:28},kA={type:29},RA={type:31},NA={type:32},PA=(XA.prototype.write=function(A){this._value=this._value.concat(Q(A))},XA.prototype.read=function(){for(var A=[],e=this.consumeToken();e!==NA;)A.push(e),e=this.consumeToken();return A},XA.prototype.consumeToken=function(){var A=this.consumeCodePoint();switch(A){case 34:return this.consumeStringToken(34);case 35:var e=this.peekCodePoint(0),t=this.peekCodePoint(1),r=this.peekCodePoint(2);if(FA(e)||hA(t,r)){var B=dA(e,t,r)?2:1;return{type:5,value:this.consumeName(),flags:B}}break;case 36:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),IA;break;case 39:return this.consumeStringToken(39);case 40:return HA;case 41:return pA;case 42:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),vA;break;case 43:if(fA(A,this.peekCodePoint(0),this.peekCodePoint(1)))return this.reconsumeCodePoint(A),this.consumeNumericToken();break;case 44:return EA;case 45:var r=A,B=this.peekCodePoint(0),n=this.peekCodePoint(1);if(fA(r,B,n))return this.reconsumeCodePoint(A),this.consumeNumericToken();if(dA(r,B,n))return this.reconsumeCodePoint(A),this.consumeIdentLikeToken();if(45===B&&62===n)return this.consumeCodePoint(),this.consumeCodePoint(),TA;break;case 46:if(fA(A,this.peekCodePoint(0),this.peekCodePoint(1)))return this.reconsumeCodePoint(A),this.consumeNumericToken();break;case 47:if(42===this.peekCodePoint(0))for(this.consumeCodePoint();;){var s=this.consumeCodePoint();if(42===s&&47===(s=this.consumeCodePoint()))return this.consumeToken();if(-1===s)return this.consumeToken()}break;case 58:return GA;case 59:return OA;case 60:if(33===this.peekCodePoint(0)&&45===this.peekCodePoint(1)&&45===this.peekCodePoint(2))return this.consumeCodePoint(),this.consumeCodePoint(),SA;break;case 64:var n=this.peekCodePoint(0),o=this.peekCodePoint(1),i=this.peekCodePoint(2);if(dA(n,o,i))return{type:7,value:this.consumeName()};break;case 91:return VA;case 92:if(hA(A,this.peekCodePoint(0)))return this.reconsumeCodePoint(A),this.consumeIdentLikeToken();break;case 93:return kA;case 61:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),yA;break;case 123:return bA;case 125:return DA;case 117:case 85:o=this.peekCodePoint(0),i=this.peekCodePoint(1);return 43!==o||!lA(i)&&63!==i||(this.consumeCodePoint(),this.consumeUnicodeRangeToken()),this.reconsumeCodePoint(A),this.consumeIdentLikeToken();case 124:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),mA;if(124===this.peekCodePoint(0))return this.consumeCodePoint(),KA;break;case 126:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),LA;break;case-1:return NA}return CA(A)?(this.consumeWhiteSpace(),RA):UA(A)?(this.reconsumeCodePoint(A),this.consumeNumericToken()):uA(A)?(this.reconsumeCodePoint(A),this.consumeIdentLikeToken()):{type:6,value:g(A)}},XA.prototype.consumeCodePoint=function(){var A=this._value.shift();return void 0===A?-1:A},XA.prototype.reconsumeCodePoint=function(A){this._value.unshift(A)},XA.prototype.peekCodePoint=function(A){return A>=this._value.length?-1:this._value[A]},XA.prototype.consumeUnicodeRangeToken=function(){for(var A=[],e=this.consumeCodePoint();lA(e)&&A.length<6;)A.push(e),e=this.consumeCodePoint();for(var t=!1;63===e&&A.length<6;)A.push(e),e=this.consumeCodePoint(),t=!0;if(t)return{type:30,start:parseInt(g.apply(void 0,A.map(function(A){return 63===A?48:A})),16),end:parseInt(g.apply(void 0,A.map(function(A){return 63===A?70:A})),16)};var r=parseInt(g.apply(void 0,A),16);if(45===this.peekCodePoint(0)&&lA(this.peekCodePoint(1))){this.consumeCodePoint();for(var e=this.consumeCodePoint(),B=[];lA(e)&&B.length<6;)B.push(e),e=this.consumeCodePoint();return{type:30,start:r,end:parseInt(g.apply(void 0,B),16)}}return{type:30,start:r,end:r}},XA.prototype.consumeIdentLikeToken=function(){var A=this.consumeName();return"url"===A.toLowerCase()&&40===this.peekCodePoint(0)?(this.consumeCodePoint(),this.consumeUrlToken()):40===this.peekCodePoint(0)?(this.consumeCodePoint(),{type:19,value:A}):{type:20,value:A}},XA.prototype.consumeUrlToken=function(){var A=[];if(this.consumeWhiteSpace(),-1===this.peekCodePoint(0))return{type:22,value:""};var e,t=this.peekCodePoint(0);if(39===t||34===t){t=this.consumeStringToken(this.consumeCodePoint());return 0===t.type&&(this.consumeWhiteSpace(),-1===this.peekCodePoint(0)||41===this.peekCodePoint(0))?(this.consumeCodePoint(),{type:22,value:t.value}):(this.consumeBadUrlRemnants(),xA)}for(;;){var r=this.consumeCodePoint();if(-1===r||41===r)return{type:22,value:g.apply(void 0,A)};if(CA(r))return this.consumeWhiteSpace(),-1===this.peekCodePoint(0)||41===this.peekCodePoint(0)?(this.consumeCodePoint(),{type:22,value:g.apply(void 0,A)}):(this.consumeBadUrlRemnants(),xA);if(34===r||39===r||40===r||(0<=(e=r)&&e<=8||11===e||14<=e&&e<=31||127===e))return this.consumeBadUrlRemnants(),xA;if(92===r){if(!hA(r,this.peekCodePoint(0)))return this.consumeBadUrlRemnants(),xA;A.push(this.consumeEscapedCodePoint())}else A.push(r)}},XA.prototype.consumeWhiteSpace=function(){for(;CA(this.peekCodePoint(0));)this.consumeCodePoint()},XA.prototype.consumeBadUrlRemnants=function(){for(;;){var A=this.consumeCodePoint();if(41===A||-1===A)return;hA(A,this.peekCodePoint(0))&&this.consumeEscapedCodePoint()}},XA.prototype.consumeStringSlice=function(A){for(var e="";0<A;){var t=Math.min(5e4,A);e+=g.apply(void 0,this._value.splice(0,t)),A-=t}return this._value.shift(),e},XA.prototype.consumeStringToken=function(A){for(var e="",t=0;;){var r,B=this._value[t];if(-1===B||void 0===B||B===A)return{type:0,value:e+=this.consumeStringSlice(t)};if(10===B)return this._value.splice(0,t),MA;92!==B||-1!==(r=this._value[t+1])&&void 0!==r&&(10===r?(e+=this.consumeStringSlice(t),t=-1,this._value.shift()):hA(B,r)&&(e+=this.consumeStringSlice(t),e+=g(this.consumeEscapedCodePoint()),t=-1)),t++}},XA.prototype.consumeNumber=function(){var A=[],e=4;for(43!==(t=this.peekCodePoint(0))&&45!==t||A.push(this.consumeCodePoint());UA(this.peekCodePoint(0));)A.push(this.consumeCodePoint());var t=this.peekCodePoint(0),r=this.peekCodePoint(1);if(46===t&&UA(r))for(A.push(this.consumeCodePoint(),this.consumeCodePoint()),e=8;UA(this.peekCodePoint(0));)A.push(this.consumeCodePoint());t=this.peekCodePoint(0);var r=this.peekCodePoint(1),B=this.peekCodePoint(2);if((69===t||101===t)&&((43===r||45===r)&&UA(B)||UA(r)))for(A.push(this.consumeCodePoint(),this.consumeCodePoint()),e=8;UA(this.peekCodePoint(0));)A.push(this.consumeCodePoint());return[function(A){var e=0,t=1;43!==A[e]&&45!==A[e]||(45===A[e]&&(t=-1),e++);for(var r=[];UA(A[e]);)r.push(A[e++]);var B=r.length?parseInt(g.apply(void 0,r),10):0;46===A[e]&&e++;for(var n=[];UA(A[e]);)n.push(A[e++]);var s=n.length,o=s?parseInt(g.apply(void 0,n),10):0;69!==A[e]&&101!==A[e]||e++;var i=1;43!==A[e]&&45!==A[e]||(45===A[e]&&(i=-1),e++);for(var Q=[];UA(A[e]);)Q.push(A[e++]);var c=Q.length?parseInt(g.apply(void 0,Q),10):0;return t*(B+o*Math.pow(10,-s))*Math.pow(10,i*c)}(A),e]},XA.prototype.consumeNumericToken=function(){var A=this.consumeNumber(),e=A[0],t=A[1],r=this.peekCodePoint(0),B=this.peekCodePoint(1),A=this.peekCodePoint(2);return dA(r,B,A)?{type:15,number:e,flags:t,unit:this.consumeName()}:37===r?(this.consumeCodePoint(),{type:16,number:e,flags:t}):{type:17,number:e,flags:t}},XA.prototype.consumeEscapedCodePoint=function(){var A,e=this.consumeCodePoint();if(lA(e)){for(var t=g(e);lA(this.peekCodePoint(0))&&t.length<6;)t+=g(this.consumeCodePoint());CA(this.peekCodePoint(0))&&this.consumeCodePoint();var r=parseInt(t,16);return 0===r||55296<=(A=r)&&A<=57343||1114111<r?65533:r}return-1===e?65533:e},XA.prototype.consumeName=function(){for(var A="";;){var e=this.consumeCodePoint();if(FA(e))A+=g(e);else{if(!hA(e,this.peekCodePoint(0)))return this.reconsumeCodePoint(e),A;A+=g(this.consumeEscapedCodePoint())}}},XA);function XA(){this._value=[]}var JA=(YA.create=function(A){var e=new PA;return e.write(A),new YA(e.read())},YA.parseValue=function(A){return YA.create(A).parseComponentValue()},YA.parseValues=function(A){return YA.create(A).parseComponentValues()},YA.prototype.parseComponentValue=function(){for(var A=this.consumeToken();31===A.type;)A=this.consumeToken();if(32===A.type)throw new SyntaxError("Error parsing CSS component value, unexpected EOF");this.reconsumeToken(A);for(var e=this.consumeComponentValue();31===(A=this.consumeToken()).type;);if(32===A.type)return e;throw new SyntaxError("Error parsing CSS component value, multiple values found when expecting only one")},YA.prototype.parseComponentValues=function(){for(var A=[];;){var e=this.consumeComponentValue();if(32===e.type)return A;A.push(e),A.push()}},YA.prototype.consumeComponentValue=function(){var A=this.consumeToken();switch(A.type){case 11:case 28:case 2:return this.consumeSimpleBlock(A.type);case 19:return this.consumeFunction(A)}return A},YA.prototype.consumeSimpleBlock=function(A){for(var e={type:A,values:[]},t=this.consumeToken();;){if(32===t.type||ce(t,A))return e;this.reconsumeToken(t),e.values.push(this.consumeComponentValue()),t=this.consumeToken()}},YA.prototype.consumeFunction=function(A){for(var e={name:A.value,values:[],type:18};;){var t=this.consumeToken();if(32===t.type||3===t.type)return e;this.reconsumeToken(t),e.values.push(this.consumeComponentValue())}},YA.prototype.consumeToken=function(){var A=this._tokens.shift();return void 0===A?NA:A},YA.prototype.reconsumeToken=function(A){this._tokens.unshift(A)},YA);function YA(A){this._tokens=A}function WA(A){return 15===A.type}function ZA(A){return 17===A.type}function _A(A){return 20===A.type}function qA(A){return 0===A.type}function jA(A,e){return _A(A)&&A.value===e}function zA(A){return 31!==A.type}function $A(A){return 31!==A.type&&4!==A.type}function Ae(A){var e=[],t=[];return A.forEach(function(A){if(4===A.type){if(0===t.length)throw new Error("Error parsing function args, zero tokens for arg");return e.push(t),void(t=[])}31!==A.type&&t.push(A)}),t.length&&e.push(t),e}function ee(A){return 17===A.type||15===A.type}function te(A){return 16===A.type||ee(A)}function re(A){return 1<A.length?[A[0],A[1]]:[A[0]]}function Be(A,e,t){var r=A[0],A=A[1];return[Ue(r,e),Ue(void 0!==A?A:r,t)]}function ne(A){return 15===A.type&&("deg"===A.unit||"grad"===A.unit||"rad"===A.unit||"turn"===A.unit)}function se(A){switch(A.filter(_A).map(function(A){return A.value}).join(" ")){case"to bottom right":case"to right bottom":case"left top":case"top left":return[ae,ae];case"to top":case"bottom":return Ce(0);case"to bottom left":case"to left bottom":case"right top":case"top right":return[ae,we];case"to right":case"left":return Ce(90);case"to top left":case"to left top":case"right bottom":case"bottom right":return[we,we];case"to bottom":case"top":return Ce(180);case"to top right":case"to right top":case"left bottom":case"bottom left":return[we,ae];case"to left":case"right":return Ce(270)}return 0}function oe(A){return 0==(255&A)}function ie(A){var e=255&A,t=255&A>>8,r=255&A>>16,A=255&A>>24;return e<255?"rgba("+A+","+r+","+t+","+e/255+")":"rgb("+A+","+r+","+t+")"}function Qe(A,e){if(17===A.type)return A.number;if(16!==A.type)return 0;var t=3===e?1:255;return 3===e?A.number/100*t:Math.round(A.number/100*t)}var ce=function(A,e){return 11===e&&12===A.type||(28===e&&29===A.type||2===e&&3===A.type)},ae={type:17,number:0,flags:4},ge={type:16,number:50,flags:4},we={type:16,number:100,flags:4},Ue=function(A,e){if(16===A.type)return A.number/100*e;if(WA(A))switch(A.unit){case"rem":case"em":return 16*A.number;default:return A.number}return A.number},le=function(A,e){if(15===e.type)switch(e.unit){case"deg":return Math.PI*e.number/180;case"grad":return Math.PI/200*e.number;case"rad":return e.number;case"turn":return 2*Math.PI*e.number}throw new Error("Unsupported angle type")},Ce=function(A){return Math.PI*A/180},ue=function(A,e){if(18===e.type){var t=me[e.name];if(void 0===t)throw new Error('Attempting to parse an unsupported color function "'+e.name+'"');return t(A,e.values)}if(5===e.type){if(3===e.value.length){var r=e.value.substring(0,1),B=e.value.substring(1,2),n=e.value.substring(2,3);return Fe(parseInt(r+r,16),parseInt(B+B,16),parseInt(n+n,16),1)}if(4===e.value.length){var r=e.value.substring(0,1),B=e.value.substring(1,2),n=e.value.substring(2,3),s=e.value.substring(3,4);return Fe(parseInt(r+r,16),parseInt(B+B,16),parseInt(n+n,16),parseInt(s+s,16)/255)}if(6===e.value.length){r=e.value.substring(0,2),B=e.value.substring(2,4),n=e.value.substring(4,6);return Fe(parseInt(r,16),parseInt(B,16),parseInt(n,16),1)}if(8===e.value.length){r=e.value.substring(0,2),B=e.value.substring(2,4),n=e.value.substring(4,6),s=e.value.substring(6,8);return Fe(parseInt(r,16),parseInt(B,16),parseInt(n,16),parseInt(s,16)/255)}}if(20===e.type){e=Le[e.value.toUpperCase()];if(void 0!==e)return e}return Le.TRANSPARENT},Fe=function(A,e,t,r){return(A<<24|e<<16|t<<8|Math.round(255*r)<<0)>>>0},he=function(A,e){e=e.filter($A);if(3===e.length){var t=e.map(Qe),r=t[0],B=t[1],t=t[2];return Fe(r,B,t,1)}if(4!==e.length)return 0;e=e.map(Qe),r=e[0],B=e[1],t=e[2],e=e[3];return Fe(r,B,t,e)};function de(A,e,t){return t<0&&(t+=1),1<=t&&--t,t<1/6?(e-A)*t*6+A:t<.5?e:t<2/3?6*(e-A)*(2/3-t)+A:A}function fe(A,e){return ue(A,JA.create(e).parseComponentValue())}function He(A,e){return A=ue(A,e[0]),(e=e[1])&&te(e)?{color:A,stop:e}:{color:A,stop:null}}function pe(A,t){var e=A[0],r=A[A.length-1];null===e.stop&&(e.stop=ae),null===r.stop&&(r.stop=we);for(var B=[],n=0,s=0;s<A.length;s++){var o=A[s].stop;null!==o?(n<(o=Ue(o,t))?B.push(o):B.push(n),n=o):B.push(null)}for(var i=null,s=0;s<B.length;s++){var Q=B[s];if(null===Q)null===i&&(i=s);else if(null!==i){for(var c=s-i,a=(Q-B[i-1])/(1+c),g=1;g<=c;g++)B[i+g-1]=a*g;i=null}}return A.map(function(A,e){return{color:A.color,stop:Math.max(Math.min(1,B[e]/t),0)}})}function Ee(A,e,t){var r="number"==typeof A?A:(s=e/2,r=(n=t)/2,s=Ue((B=A)[0],e)-s,n=r-Ue(B[1],n),(Math.atan2(n,s)+2*Math.PI)%(2*Math.PI)),B=Math.abs(e*Math.sin(r))+Math.abs(t*Math.cos(r)),n=e/2,s=t/2,e=B/2,t=Math.sin(r-Math.PI/2)*e,e=Math.cos(r-Math.PI/2)*e;return[B,n-e,n+e,s-t,s+t]}function Ie(A,e){return Math.sqrt(A*A+e*e)}function ye(A,e,B,n,s){return[[0,0],[0,e],[A,0],[A,e]].reduce(function(A,e){var t=e[0],r=e[1],r=Ie(B-t,n-r);return(s?r<A.optimumDistance:r>A.optimumDistance)?{optimumCorner:e,optimumDistance:r}:A},{optimumDistance:s?1/0:-1/0,optimumCorner:null}).optimumCorner}var Ke=function(A,e){var t=e.filter($A),r=t[0],B=t[1],n=t[2],e=t[3],t=(17===r.type?Ce(r.number):le(A,r))/(2*Math.PI),A=te(B)?B.number/100:0,r=te(n)?n.number/100:0,B=void 0!==e&&te(e)?Ue(e,1):1;if(0==A)return Fe(255*r,255*r,255*r,1);n=r<=.5?r*(1+A):r+A-r*A,e=2*r-n,A=de(e,n,t+1/3),r=de(e,n,t),t=de(e,n,t-1/3);return Fe(255*A,255*r,255*t,B)},me={hsl:Ke,hsla:Ke,rgb:he,rgba:he},Le={ALICEBLUE:4042850303,ANTIQUEWHITE:4209760255,AQUA:16777215,AQUAMARINE:2147472639,AZURE:4043309055,BEIGE:4126530815,BISQUE:4293182719,BLACK:255,BLANCHEDALMOND:4293643775,BLUE:65535,BLUEVIOLET:2318131967,BROWN:2771004159,BURLYWOOD:3736635391,CADETBLUE:1604231423,CHARTREUSE:2147418367,CHOCOLATE:3530104575,CORAL:4286533887,CORNFLOWERBLUE:1687547391,CORNSILK:4294499583,CRIMSON:3692313855,CYAN:16777215,DARKBLUE:35839,DARKCYAN:9145343,DARKGOLDENROD:3095837695,DARKGRAY:2846468607,DARKGREEN:6553855,DARKGREY:2846468607,DARKKHAKI:3182914559,DARKMAGENTA:2332068863,DARKOLIVEGREEN:1433087999,DARKORANGE:4287365375,DARKORCHID:2570243327,DARKRED:2332033279,DARKSALMON:3918953215,DARKSEAGREEN:2411499519,DARKSLATEBLUE:1211993087,DARKSLATEGRAY:793726975,DARKSLATEGREY:793726975,DARKTURQUOISE:13554175,DARKVIOLET:2483082239,DEEPPINK:4279538687,DEEPSKYBLUE:12582911,DIMGRAY:1768516095,DIMGREY:1768516095,DODGERBLUE:512819199,FIREBRICK:2988581631,FLORALWHITE:4294635775,FORESTGREEN:579543807,FUCHSIA:4278255615,GAINSBORO:3705462015,GHOSTWHITE:4177068031,GOLD:4292280575,GOLDENROD:3668254975,GRAY:2155905279,GREEN:8388863,GREENYELLOW:2919182335,GREY:2155905279,HONEYDEW:4043305215,HOTPINK:4285117695,INDIANRED:3445382399,INDIGO:1258324735,IVORY:4294963455,KHAKI:4041641215,LAVENDER:3873897215,LAVENDERBLUSH:4293981695,LAWNGREEN:2096890111,LEMONCHIFFON:4294626815,LIGHTBLUE:2916673279,LIGHTCORAL:4034953471,LIGHTCYAN:3774873599,LIGHTGOLDENRODYELLOW:4210742015,LIGHTGRAY:3553874943,LIGHTGREEN:2431553791,LIGHTGREY:3553874943,LIGHTPINK:4290167295,LIGHTSALMON:4288707327,LIGHTSEAGREEN:548580095,LIGHTSKYBLUE:2278488831,LIGHTSLATEGRAY:2005441023,LIGHTSLATEGREY:2005441023,LIGHTSTEELBLUE:2965692159,LIGHTYELLOW:4294959359,LIME:16711935,LIMEGREEN:852308735,LINEN:4210091775,MAGENTA:4278255615,MAROON:2147483903,MEDIUMAQUAMARINE:1724754687,MEDIUMBLUE:52735,MEDIUMORCHID:3126187007,MEDIUMPURPLE:2473647103,MEDIUMSEAGREEN:1018393087,MEDIUMSLATEBLUE:2070474495,MEDIUMSPRINGGREEN:16423679,MEDIUMTURQUOISE:1221709055,MEDIUMVIOLETRED:3340076543,MIDNIGHTBLUE:421097727,MINTCREAM:4127193855,MISTYROSE:4293190143,MOCCASIN:4293178879,NAVAJOWHITE:4292783615,NAVY:33023,OLDLACE:4260751103,OLIVE:2155872511,OLIVEDRAB:1804477439,ORANGE:4289003775,ORANGERED:4282712319,ORCHID:3664828159,PALEGOLDENROD:4008225535,PALEGREEN:2566625535,PALETURQUOISE:2951671551,PALEVIOLETRED:3681588223,PAPAYAWHIP:4293907967,PEACHPUFF:4292524543,PERU:3448061951,PINK:4290825215,PLUM:3718307327,POWDERBLUE:2967529215,PURPLE:2147516671,REBECCAPURPLE:1714657791,RED:4278190335,ROSYBROWN:3163525119,ROYALBLUE:1097458175,SADDLEBROWN:2336560127,SALMON:4202722047,SANDYBROWN:4104413439,SEAGREEN:780883967,SEASHELL:4294307583,SIENNA:2689740287,SILVER:3233857791,SKYBLUE:2278484991,SLATEBLUE:1784335871,SLATEGRAY:1887473919,SLATEGREY:1887473919,SNOW:4294638335,SPRINGGREEN:16744447,STEELBLUE:1182971135,TAN:3535047935,TEAL:8421631,THISTLE:3636451583,TOMATO:4284696575,TRANSPARENT:0,TURQUOISE:1088475391,VIOLET:4001558271,WHEAT:4125012991,WHITE:4294967295,WHITESMOKE:4126537215,YELLOW:4294902015,YELLOWGREEN:2597139199},be={name:"background-clip",initialValue:"border-box",prefix:!1,type:1,parse:function(A,e){return e.map(function(A){if(_A(A))switch(A.value){case"padding-box":return 1;case"content-box":return 2}return 0})}},De={name:"background-color",initialValue:"transparent",prefix:!1,type:3,format:"color"},Ke=function(t,A){var r=Ce(180),B=[];return Ae(A).forEach(function(A,e){if(0===e){e=A[0];if(20===e.type&&-1!==["top","left","right","bottom"].indexOf(e.value))return void(r=se(A));if(ne(e))return void(r=(le(t,e)+Ce(270))%Ce(360))}A=He(t,A);B.push(A)}),{angle:r,stops:B,type:1}},ve="closest-side",xe="farthest-side",Me="closest-corner",Se="farthest-corner",Te="ellipse",Ge="contain",he=function(r,A){var B=0,n=3,s=[],o=[];return Ae(A).forEach(function(A,e){var t=!0;0===e?t=A.reduce(function(A,e){if(_A(e))switch(e.value){case"center":return o.push(ge),!1;case"top":case"left":return o.push(ae),!1;case"right":case"bottom":return o.push(we),!1}else if(te(e)||ee(e))return o.push(e),!1;return A},t):1===e&&(t=A.reduce(function(A,e){if(_A(e))switch(e.value){case"circle":return B=0,!1;case Te:return!(B=1);case Ge:case ve:return n=0,!1;case xe:return!(n=1);case Me:return!(n=2);case"cover":case Se:return!(n=3)}else if(ee(e)||te(e))return(n=!Array.isArray(n)?[]:n).push(e),!1;return A},t)),t&&(A=He(r,A),s.push(A))}),{size:n,shape:B,stops:s,position:o,type:2}},Oe=function(A,e){if(22===e.type){var t={url:e.value,type:0};return A.cache.addImage(e.value),t}if(18!==e.type)throw new Error("Unsupported image type "+e.type);t=ke[e.name];if(void 0===t)throw new Error('Attempting to parse an unsupported image function "'+e.name+'"');return t(A,e.values)};var Ve,ke={"linear-gradient":function(t,A){var r=Ce(180),B=[];return Ae(A).forEach(function(A,e){if(0===e){e=A[0];if(20===e.type&&"to"===e.value)return void(r=se(A));if(ne(e))return void(r=le(t,e))}A=He(t,A);B.push(A)}),{angle:r,stops:B,type:1}},"-moz-linear-gradient":Ke,"-ms-linear-gradient":Ke,"-o-linear-gradient":Ke,"-webkit-linear-gradient":Ke,"radial-gradient":function(B,A){var n=0,s=3,o=[],i=[];return Ae(A).forEach(function(A,e){var t,r=!0;0===e&&(t=!1,r=A.reduce(function(A,e){if(t)if(_A(e))switch(e.value){case"center":return i.push(ge),A;case"top":case"left":return i.push(ae),A;case"right":case"bottom":return i.push(we),A}else(te(e)||ee(e))&&i.push(e);else if(_A(e))switch(e.value){case"circle":return n=0,!1;case Te:return!(n=1);case"at":return!(t=!0);case ve:return s=0,!1;case"cover":case xe:return!(s=1);case Ge:case Me:return!(s=2);case Se:return!(s=3)}else if(ee(e)||te(e))return(s=!Array.isArray(s)?[]:s).push(e),!1;return A},r)),r&&(A=He(B,A),o.push(A))}),{size:s,shape:n,stops:o,position:i,type:2}},"-moz-radial-gradient":he,"-ms-radial-gradient":he,"-o-radial-gradient":he,"-webkit-radial-gradient":he,"-webkit-gradient":function(r,A){var e=Ce(180),B=[],n=1;return Ae(A).forEach(function(A,e){var t,A=A[0];if(0===e){if(_A(A)&&"linear"===A.value)return void(n=1);if(_A(A)&&"radial"===A.value)return void(n=2)}18===A.type&&("from"===A.name?(t=ue(r,A.values[0]),B.push({stop:ae,color:t})):"to"===A.name?(t=ue(r,A.values[0]),B.push({stop:we,color:t})):"color-stop"!==A.name||2===(A=A.values.filter($A)).length&&(t=ue(r,A[1]),A=A[0],ZA(A)&&B.push({stop:{type:16,number:100*A.number,flags:A.flags},color:t})))}),1===n?{angle:(e+Ce(180))%Ce(360),stops:B,type:n}:{size:3,shape:0,stops:B,position:[],type:n}}},Re={name:"background-image",initialValue:"none",type:1,prefix:!1,parse:function(e,A){if(0===A.length)return[];var t=A[0];return 20===t.type&&"none"===t.value?[]:A.filter(function(A){return $A(A)&&!(20===(A=A).type&&"none"===A.value||18===A.type&&!ke[A.name])}).map(function(A){return Oe(e,A)})}},Ne={name:"background-origin",initialValue:"border-box",prefix:!1,type:1,parse:function(A,e){return e.map(function(A){if(_A(A))switch(A.value){case"padding-box":return 1;case"content-box":return 2}return 0})}},Pe={name:"background-position",initialValue:"0% 0%",type:1,prefix:!1,parse:function(A,e){return Ae(e).map(function(A){return A.filter(te)}).map(re)}},Xe={name:"background-repeat",initialValue:"repeat",prefix:!1,type:1,parse:function(A,e){return Ae(e).map(function(A){return A.filter(_A).map(function(A){return A.value}).join(" ")}).map(Je)}},Je=function(A){switch(A){case"no-repeat":return 1;case"repeat-x":case"repeat no-repeat":return 2;case"repeat-y":case"no-repeat repeat":return 3;default:return 0}};(he=Ve=Ve||{}).AUTO="auto",he.CONTAIN="contain";function Ye(A,e){return _A(A)&&"normal"===A.value?1.2*e:17===A.type?e*A.number:te(A)?Ue(A,e):e}var We,Ze,_e={name:"background-size",initialValue:"0",prefix:!(he.COVER="cover"),type:1,parse:function(A,e){return Ae(e).map(function(A){return A.filter(qe)})}},qe=function(A){return _A(A)||te(A)},he=function(A){return{name:"border-"+A+"-color",initialValue:"transparent",prefix:!1,type:3,format:"color"}},je=he("top"),ze=he("right"),$e=he("bottom"),At=he("left"),he=function(A){return{name:"border-radius-"+A,initialValue:"0 0",prefix:!1,type:1,parse:function(A,e){return re(e.filter(te))}}},et=he("top-left"),tt=he("top-right"),rt=he("bottom-right"),Bt=he("bottom-left"),he=function(A){return{name:"border-"+A+"-style",initialValue:"solid",prefix:!1,type:2,parse:function(A,e){switch(e){case"none":return 0;case"dashed":return 2;case"dotted":return 3;case"double":return 4}return 1}}},nt=he("top"),st=he("right"),ot=he("bottom"),it=he("left"),he=function(A){return{name:"border-"+A+"-width",initialValue:"0",type:0,prefix:!1,parse:function(A,e){return WA(e)?e.number:0}}},Qt=he("top"),ct=he("right"),at=he("bottom"),gt=he("left"),wt={name:"color",initialValue:"transparent",prefix:!1,type:3,format:"color"},Ut={name:"direction",initialValue:"ltr",prefix:!1,type:2,parse:function(A,e){return"rtl"!==e?0:1}},lt={name:"display",initialValue:"inline-block",prefix:!1,type:1,parse:function(A,e){return e.filter(_A).reduce(function(A,e){return A|Ct(e.value)},0)}},Ct=function(A){switch(A){case"block":case"-webkit-box":return 2;case"inline":return 4;case"run-in":return 8;case"flow":return 16;case"flow-root":return 32;case"table":return 64;case"flex":case"-webkit-flex":return 128;case"grid":case"-ms-grid":return 256;case"ruby":return 512;case"subgrid":return 1024;case"list-item":return 2048;case"table-row-group":return 4096;case"table-header-group":return 8192;case"table-footer-group":return 16384;case"table-row":return 32768;case"table-cell":return 65536;case"table-column-group":return 131072;case"table-column":return 262144;case"table-caption":return 524288;case"ruby-base":return 1048576;case"ruby-text":return 2097152;case"ruby-base-container":return 4194304;case"ruby-text-container":return 8388608;case"contents":return 16777216;case"inline-block":return 33554432;case"inline-list-item":return 67108864;case"inline-table":return 134217728;case"inline-flex":return 268435456;case"inline-grid":return 536870912}return 0},ut={name:"float",initialValue:"none",prefix:!1,type:2,parse:function(A,e){switch(e){case"left":return 1;case"right":return 2;case"inline-start":return 3;case"inline-end":return 4}return 0}},Ft={name:"letter-spacing",initialValue:"0",prefix:!1,type:0,parse:function(A,e){return!(20===e.type&&"normal"===e.value||17!==e.type&&15!==e.type)?e.number:0}},ht={name:"line-break",initialValue:(he=We=We||{}).NORMAL="normal",prefix:!(he.STRICT="strict"),type:2,parse:function(A,e){return"strict"!==e?We.NORMAL:We.STRICT}},dt={name:"line-height",initialValue:"normal",prefix:!1,type:4},ft={name:"list-style-image",initialValue:"none",type:0,prefix:!1,parse:function(A,e){return 20===e.type&&"none"===e.value?null:Oe(A,e)}},Ht={name:"list-style-position",initialValue:"outside",prefix:!1,type:2,parse:function(A,e){return"inside"!==e?1:0}},pt={name:"list-style-type",initialValue:"none",prefix:!1,type:2,parse:function(A,e){switch(e){case"disc":return 0;case"circle":return 1;case"square":return 2;case"decimal":return 3;case"cjk-decimal":return 4;case"decimal-leading-zero":return 5;case"lower-roman":return 6;case"upper-roman":return 7;case"lower-greek":return 8;case"lower-alpha":return 9;case"upper-alpha":return 10;case"arabic-indic":return 11;case"armenian":return 12;case"bengali":return 13;case"cambodian":return 14;case"cjk-earthly-branch":return 15;case"cjk-heavenly-stem":return 16;case"cjk-ideographic":return 17;case"devanagari":return 18;case"ethiopic-numeric":return 19;case"georgian":return 20;case"gujarati":return 21;case"gurmukhi":case"hebrew":return 22;case"hiragana":return 23;case"hiragana-iroha":return 24;case"japanese-formal":return 25;case"japanese-informal":return 26;case"kannada":return 27;case"katakana":return 28;case"katakana-iroha":return 29;case"khmer":return 30;case"korean-hangul-formal":return 31;case"korean-hanja-formal":return 32;case"korean-hanja-informal":return 33;case"lao":return 34;case"lower-armenian":return 35;case"malayalam":return 36;case"mongolian":return 37;case"myanmar":return 38;case"oriya":return 39;case"persian":return 40;case"simp-chinese-formal":return 41;case"simp-chinese-informal":return 42;case"tamil":return 43;case"telugu":return 44;case"thai":return 45;case"tibetan":return 46;case"trad-chinese-formal":return 47;case"trad-chinese-informal":return 48;case"upper-armenian":return 49;case"disclosure-open":return 50;case"disclosure-closed":return 51;default:return-1}}},he=function(A){return{name:"margin-"+A,initialValue:"0",prefix:!1,type:4}},Et=he("top"),It=he("right"),yt=he("bottom"),Kt=he("left"),mt={name:"overflow",initialValue:"visible",prefix:!1,type:1,parse:function(A,e){return e.filter(_A).map(function(A){switch(A.value){case"hidden":return 1;case"scroll":return 2;case"clip":return 3;case"auto":return 4;default:return 0}})}},Lt={name:"overflow-wrap",initialValue:"normal",prefix:!1,type:2,parse:function(A,e){return"break-word"!==e?"normal":"break-word"}},he=function(A){return{name:"padding-"+A,initialValue:"0",prefix:!1,type:3,format:"length-percentage"}},bt=he("top"),Dt=he("right"),vt=he("bottom"),xt=he("left"),Mt={name:"text-align",initialValue:"left",prefix:!1,type:2,parse:function(A,e){switch(e){case"right":return 2;case"center":case"justify":return 1;default:return 0}}},St={name:"position",initialValue:"static",prefix:!1,type:2,parse:function(A,e){switch(e){case"relative":return 1;case"absolute":return 2;case"fixed":return 3;case"sticky":return 4}return 0}},Tt={name:"text-shadow",initialValue:"none",type:1,prefix:!1,parse:function(n,A){return 1===A.length&&jA(A[0],"none")?[]:Ae(A).map(function(A){for(var e={color:Le.TRANSPARENT,offsetX:ae,offsetY:ae,blur:ae},t=0,r=0;r<A.length;r++){var B=A[r];ee(B)?(0===t?e.offsetX=B:1===t?e.offsetY=B:e.blur=B,t++):e.color=ue(n,B)}return e})}},Gt={name:"text-transform",initialValue:"none",prefix:!1,type:2,parse:function(A,e){switch(e){case"uppercase":return 2;case"lowercase":return 1;case"capitalize":return 3}return 0}},Ot={name:"transform",initialValue:"none",prefix:!0,type:0,parse:function(A,e){if(20===e.type&&"none"===e.value)return null;if(18!==e.type)return null;var t=Vt[e.name];if(void 0===t)throw new Error('Attempting to parse an unsupported transform function "'+e.name+'"');return t(e.values)}},Vt={matrix:function(A){A=A.filter(function(A){return 17===A.type}).map(function(A){return A.number});return 6===A.length?A:null},matrix3d:function(A){var e=A.filter(function(A){return 17===A.type}).map(function(A){return A.number}),t=e[0],r=e[1];e[2],e[3];var B=e[4],n=e[5];e[6],e[7],e[8],e[9],e[10],e[11];var s=e[12],A=e[13];return e[14],e[15],16===e.length?[t,r,B,n,s,A]:null}},he={type:16,number:50,flags:4},kt=[he,he],Rt={name:"transform-origin",initialValue:"50% 50%",prefix:!0,type:1,parse:function(A,e){e=e.filter(te);return 2!==e.length?kt:[e[0],e[1]]}},Nt={name:"visible",initialValue:"none",prefix:!1,type:2,parse:function(A,e){switch(e){case"hidden":return 1;case"collapse":return 2;default:return 0}}};(he=Ze=Ze||{}).NORMAL="normal",he.BREAK_ALL="break-all";function Pt(A,e){return 0!=(A&e)}function Xt(A,e,t){return(A=A&&A[Math.min(e,A.length-1)])?t?A.open:A.close:""}var Jt={name:"word-break",initialValue:"normal",prefix:!(he.KEEP_ALL="keep-all"),type:2,parse:function(A,e){switch(e){case"break-all":return Ze.BREAK_ALL;case"keep-all":return Ze.KEEP_ALL;default:return Ze.NORMAL}}},Yt={name:"z-index",initialValue:"auto",prefix:!1,type:0,parse:function(A,e){if(20===e.type)return{auto:!0,order:0};if(ZA(e))return{auto:!1,order:e.number};throw new Error("Invalid z-index number parsed")}},Wt=function(A,e){if(15===e.type)switch(e.unit.toLowerCase()){case"s":return 1e3*e.number;case"ms":return e.number}throw new Error("Unsupported time type")},Zt={name:"opacity",initialValue:"1",type:0,prefix:!1,parse:function(A,e){return ZA(e)?e.number:1}},_t={name:"text-decoration-color",initialValue:"transparent",prefix:!1,type:3,format:"color"},qt={name:"text-decoration-line",initialValue:"none",prefix:!1,type:1,parse:function(A,e){return e.filter(_A).map(function(A){switch(A.value){case"underline":return 1;case"overline":return 2;case"line-through":return 3;case"none":return 4}return 0}).filter(function(A){return 0!==A})}},jt={name:"font-family",initialValue:"",prefix:!1,type:1,parse:function(A,e){var t=[],r=[];return e.forEach(function(A){switch(A.type){case 20:case 0:t.push(A.value);break;case 17:t.push(A.number.toString());break;case 4:r.push(t.join(" ")),t.length=0}}),t.length&&r.push(t.join(" ")),r.map(function(A){return-1===A.indexOf(" ")?A:"'"+A+"'"})}},zt={name:"font-size",initialValue:"0",prefix:!1,type:3,format:"length"},$t={name:"font-weight",initialValue:"normal",type:0,prefix:!1,parse:function(A,e){return ZA(e)?e.number:!_A(e)||"bold"!==e.value?400:700}},Ar={name:"font-variant",initialValue:"none",type:1,prefix:!1,parse:function(A,e){return e.filter(_A).map(function(A){return A.value})}},er={name:"font-style",initialValue:"normal",prefix:!1,type:2,parse:function(A,e){switch(e){case"oblique":return"oblique";case"italic":return"italic";default:return"normal"}}},tr={name:"content",initialValue:"none",type:1,prefix:!1,parse:function(A,e){if(0===e.length)return[];var t=e[0];return 20===t.type&&"none"===t.value?[]:e}},rr={name:"counter-increment",initialValue:"none",prefix:!0,type:1,parse:function(A,e){if(0===e.length)return null;var t=e[0];if(20===t.type&&"none"===t.value)return null;for(var r=[],B=e.filter(zA),n=0;n<B.length;n++){var s=B[n],o=B[n+1];20===s.type&&(o=o&&ZA(o)?o.number:1,r.push({counter:s.value,increment:o}))}return r}},Br={name:"counter-reset",initialValue:"none",prefix:!0,type:1,parse:function(A,e){if(0===e.length)return[];for(var t=[],r=e.filter(zA),B=0;B<r.length;B++){var n=r[B],s=r[B+1];_A(n)&&"none"!==n.value&&(s=s&&ZA(s)?s.number:0,t.push({counter:n.value,reset:s}))}return t}},nr={name:"duration",initialValue:"0s",prefix:!1,type:1,parse:function(e,A){return A.filter(WA).map(function(A){return Wt(e,A)})}},sr={name:"quotes",initialValue:"none",prefix:!0,type:1,parse:function(A,e){if(0===e.length)return null;var t=e[0];if(20===t.type&&"none"===t.value)return null;var r=[],B=e.filter(qA);if(B.length%2!=0)return null;for(var n=0;n<B.length;n+=2){var s=B[n].value,o=B[n+1].value;r.push({open:s,close:o})}return r}},or={name:"box-shadow",initialValue:"none",type:1,prefix:!1,parse:function(n,A){return 1===A.length&&jA(A[0],"none")?[]:Ae(A).map(function(A){for(var e={color:255,offsetX:ae,offsetY:ae,blur:ae,spread:ae,inset:!1},t=0,r=0;r<A.length;r++){var B=A[r];jA(B,"inset")?e.inset=!0:ee(B)?(0===t?e.offsetX=B:1===t?e.offsetY=B:2===t?e.blur=B:e.spread=B,t++):e.color=ue(n,B)}return e})}},ir={name:"paint-order",initialValue:"normal",prefix:!1,type:1,parse:function(A,e){var t=[];return e.filter(_A).forEach(function(A){switch(A.value){case"stroke":t.push(1);break;case"fill":t.push(0);break;case"markers":t.push(2)}}),[0,1,2].forEach(function(A){-1===t.indexOf(A)&&t.push(A)}),t}},Qr={name:"-webkit-text-stroke-color",initialValue:"currentcolor",prefix:!1,type:3,format:"color"},cr={name:"-webkit-text-stroke-width",initialValue:"0",type:0,prefix:!1,parse:function(A,e){return WA(e)?e.number:0}},ar=(gr.prototype.isVisible=function(){return 0<this.display&&0<this.opacity&&0===this.visibility},gr.prototype.isTransparent=function(){return oe(this.backgroundColor)},gr.prototype.isTransformed=function(){return null!==this.transform},gr.prototype.isPositioned=function(){return 0!==this.position},gr.prototype.isPositionedWithZIndex=function(){return this.isPositioned()&&!this.zIndex.auto},gr.prototype.isFloating=function(){return 0!==this.float},gr.prototype.isInlineLevel=function(){return Pt(this.display,4)||Pt(this.display,33554432)||Pt(this.display,268435456)||Pt(this.display,536870912)||Pt(this.display,67108864)||Pt(this.display,134217728)},gr);function gr(A,e){this.animationDuration=lr(A,nr,e.animationDuration),this.backgroundClip=lr(A,be,e.backgroundClip),this.backgroundColor=lr(A,De,e.backgroundColor),this.backgroundImage=lr(A,Re,e.backgroundImage),this.backgroundOrigin=lr(A,Ne,e.backgroundOrigin),this.backgroundPosition=lr(A,Pe,e.backgroundPosition),this.backgroundRepeat=lr(A,Xe,e.backgroundRepeat),this.backgroundSize=lr(A,_e,e.backgroundSize),this.borderTopColor=lr(A,je,e.borderTopColor),this.borderRightColor=lr(A,ze,e.borderRightColor),this.borderBottomColor=lr(A,$e,e.borderBottomColor),this.borderLeftColor=lr(A,At,e.borderLeftColor),this.borderTopLeftRadius=lr(A,et,e.borderTopLeftRadius),this.borderTopRightRadius=lr(A,tt,e.borderTopRightRadius),this.borderBottomRightRadius=lr(A,rt,e.borderBottomRightRadius),this.borderBottomLeftRadius=lr(A,Bt,e.borderBottomLeftRadius),this.borderTopStyle=lr(A,nt,e.borderTopStyle),this.borderRightStyle=lr(A,st,e.borderRightStyle),this.borderBottomStyle=lr(A,ot,e.borderBottomStyle),this.borderLeftStyle=lr(A,it,e.borderLeftStyle),this.borderTopWidth=lr(A,Qt,e.borderTopWidth),this.borderRightWidth=lr(A,ct,e.borderRightWidth),this.borderBottomWidth=lr(A,at,e.borderBottomWidth),this.borderLeftWidth=lr(A,gt,e.borderLeftWidth),this.boxShadow=lr(A,or,e.boxShadow),this.color=lr(A,wt,e.color),this.direction=lr(A,Ut,e.direction),this.display=lr(A,lt,e.display),this.float=lr(A,ut,e.cssFloat),this.fontFamily=lr(A,jt,e.fontFamily),this.fontSize=lr(A,zt,e.fontSize),this.fontStyle=lr(A,er,e.fontStyle),this.fontVariant=lr(A,Ar,e.fontVariant),this.fontWeight=lr(A,$t,e.fontWeight),this.letterSpacing=lr(A,Ft,e.letterSpacing),this.lineBreak=lr(A,ht,e.lineBreak),this.lineHeight=lr(A,dt,e.lineHeight),this.listStyleImage=lr(A,ft,e.listStyleImage),this.listStylePosition=lr(A,Ht,e.listStylePosition),this.listStyleType=lr(A,pt,e.listStyleType),this.marginTop=lr(A,Et,e.marginTop),this.marginRight=lr(A,It,e.marginRight),this.marginBottom=lr(A,yt,e.marginBottom),this.marginLeft=lr(A,Kt,e.marginLeft),this.opacity=lr(A,Zt,e.opacity);var t=lr(A,mt,e.overflow);this.overflowX=t[0],this.overflowY=t[1<t.length?1:0],this.overflowWrap=lr(A,Lt,e.overflowWrap),this.paddingTop=lr(A,bt,e.paddingTop),this.paddingRight=lr(A,Dt,e.paddingRight),this.paddingBottom=lr(A,vt,e.paddingBottom),this.paddingLeft=lr(A,xt,e.paddingLeft),this.paintOrder=lr(A,ir,e.paintOrder),this.position=lr(A,St,e.position),this.textAlign=lr(A,Mt,e.textAlign),this.textDecorationColor=lr(A,_t,null!==(t=e.textDecorationColor)&&void 0!==t?t:e.color),this.textDecorationLine=lr(A,qt,null!==(t=e.textDecorationLine)&&void 0!==t?t:e.textDecoration),this.textShadow=lr(A,Tt,e.textShadow),this.textTransform=lr(A,Gt,e.textTransform),this.transform=lr(A,Ot,e.transform),this.transformOrigin=lr(A,Rt,e.transformOrigin),this.visibility=lr(A,Nt,e.visibility),this.webkitTextStrokeColor=lr(A,Qr,e.webkitTextStrokeColor),this.webkitTextStrokeWidth=lr(A,cr,e.webkitTextStrokeWidth),this.wordBreak=lr(A,Jt,e.wordBreak),this.zIndex=lr(A,Yt,e.zIndex)}for(var wr=function(A,e){this.content=lr(A,tr,e.content),this.quotes=lr(A,sr,e.quotes)},Ur=function(A,e){this.counterIncrement=lr(A,rr,e.counterIncrement),this.counterReset=lr(A,Br,e.counterReset)},lr=function(A,e,t){var r=new PA,t=null!=t?t.toString():e.initialValue;r.write(t);var B=new JA(r.read());switch(e.type){case 2:var n=B.parseComponentValue();return e.parse(A,_A(n)?n.value:e.initialValue);case 0:return e.parse(A,B.parseComponentValue());case 1:return e.parse(A,B.parseComponentValues());case 4:return B.parseComponentValue();case 3:switch(e.format){case"angle":return le(A,B.parseComponentValue());case"color":return ue(A,B.parseComponentValue());case"image":return Oe(A,B.parseComponentValue());case"length":var s=B.parseComponentValue();return ee(s)?s:ae;case"length-percentage":s=B.parseComponentValue();return te(s)?s:ae;case"time":return Wt(A,B.parseComponentValue())}}},Cr=function(A,e){A=function(A){switch(A.getAttribute("data-html2canvas-debug")){case"all":return 1;case"clone":return 2;case"parse":return 3;case"render":return 4;default:return 0}}(A);return 1===A||e===A},ur=function(A,e){this.context=A,this.textNodes=[],this.elements=[],this.flags=0,Cr(e,3),this.styles=new ar(A,window.getComputedStyle(e,null)),JB(e)&&(this.styles.animationDuration.some(function(A){return 0<A})&&(e.style.animationDuration="0s"),null!==this.styles.transform&&(e.style.transform="none")),this.bounds=f(this.context,e),Cr(e,4)&&(this.flags|=16)},Fr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",hr="undefined"==typeof Uint8Array?[]:new Uint8Array(256),dr=0;dr<Fr.length;dr++)hr[Fr.charCodeAt(dr)]=dr;function fr(A,e,t){return A.slice?A.slice(e,t):new Uint16Array(Array.prototype.slice.call(A,e,t))}var Hr=(pr.prototype.get=function(A){var e;if(0<=A){if(A<55296||56319<A&&A<=65535)return e=this.index[A>>5],this.data[e=(e<<2)+(31&A)];if(A<=65535)return e=this.index[2048+(A-55296>>5)],this.data[e=(e<<2)+(31&A)];if(A<this.highStart)return e=this.index[e=2080+(A>>11)],e=this.index[e+=A>>5&63],this.data[e=(e<<2)+(31&A)];if(A<=1114111)return this.data[this.highValueIndex]}return this.errorValue},pr);function pr(A,e,t,r,B,n){this.initialValue=A,this.errorValue=e,this.highStart=t,this.highValueIndex=r,this.index=B,this.data=n}for(var Er="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Ir="undefined"==typeof Uint8Array?[]:new Uint8Array(256),yr=0;yr<Er.length;yr++)Ir[Er.charCodeAt(yr)]=yr;function Kr(A){return kr.get(A)}function mr(A){var t=function(A){for(var e=[],t=0,r=A.length;t<r;){var B,n=A.charCodeAt(t++);55296<=n&&n<=56319&&t<r?56320==(64512&(B=A.charCodeAt(t++)))?e.push(((1023&n)<<10)+(1023&B)+65536):(e.push(n),t--):e.push(n)}return e}(A),r=t.length,B=0,n=0,s=t.map(Kr);return{next:function(){if(r<=B)return{done:!0,value:null};for(var A=Rr;B<r&&(A=function(A,e){var t=e-2,r=A[t],B=A[e-1],e=A[e];if(2===B&&3===e)return Rr;if(2===B||3===B||4===B)return"÷";if(2===e||3===e||4===e)return"÷";if(B===Tr&&-1!==[Tr,Gr,Or,Vr].indexOf(e))return Rr;if(!(B!==Or&&B!==Gr||e!==Gr&&10!==e))return Rr;if((B===Vr||10===B)&&10===e)return Rr;if(13===e||5===e)return Rr;if(7===e)return Rr;if(1===B)return Rr;if(13===B&&14===e){for(;5===r;)r=A[--t];if(14===r)return Rr}if(15===B&&15===e){for(var n=0;15===r;)n++,r=A[--t];if(n%2==0)return Rr}return"÷"}(s,++B))===Rr;);if(A===Rr&&B!==r)return{done:!0,value:null};var e=function(){for(var A=[],e=0;e<arguments.length;e++)A[e]=arguments[e];if(String.fromCodePoint)return String.fromCodePoint.apply(String,A);var t=A.length;if(!t)return"";for(var r=[],B=-1,n="";++B<t;){var s=A[B];s<=65535?r.push(s):(s-=65536,r.push(55296+(s>>10),s%1024+56320)),(B+1===t||16384<r.length)&&(n+=String.fromCharCode.apply(String,r),r.length=0)}return n}.apply(null,t.slice(n,B));return n=B,{value:e,done:!1}}}}function Lr(A){return 0===A[0]&&255===A[1]&&0===A[2]&&255===A[3]}var br,Dr,vr,xr,Mr,Sr,Tr=8,Gr=9,Or=11,Vr=12,kr=(vr=function(A){var e,t,r,B,n=.75*A.length,s=A.length,o=0;"="===A[A.length-1]&&(n--,"="===A[A.length-2]&&n--);for(var n=new("undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array&&void 0!==Uint8Array.prototype.slice?ArrayBuffer:Array)(n),i=Array.isArray(n)?n:new Uint8Array(n),Q=0;Q<s;Q+=4)e=hr[A.charCodeAt(Q)],t=hr[A.charCodeAt(Q+1)],r=hr[A.charCodeAt(Q+2)],B=hr[A.charCodeAt(Q+3)],i[o++]=e<<2|t>>4,i[o++]=(15&t)<<4|r>>2,i[o++]=(3&r)<<6|63&B;return n}(br="AAAAAAAAAAAAEA4AGBkAAFAaAAACAAAAAAAIABAAGAAwADgACAAQAAgAEAAIABAACAAQAAgAEAAIABAACAAQAAgAEAAIABAAQABIAEQATAAIABAACAAQAAgAEAAIABAAVABcAAgAEAAIABAACAAQAGAAaABwAHgAgACIAI4AlgAIABAAmwCjAKgAsAC2AL4AvQDFAMoA0gBPAVYBWgEIAAgACACMANoAYgFkAWwBdAF8AX0BhQGNAZUBlgGeAaMBlQGWAasBswF8AbsBwwF0AcsBYwHTAQgA2wG/AOMBdAF8AekB8QF0AfkB+wHiAHQBfAEIAAMC5gQIAAsCEgIIAAgAFgIeAggAIgIpAggAMQI5AkACygEIAAgASAJQAlgCYAIIAAgACAAKBQoFCgUTBRMFGQUrBSsFCAAIAAgACAAIAAgACAAIAAgACABdAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABoAmgCrwGvAQgAbgJ2AggAHgEIAAgACADnAXsCCAAIAAgAgwIIAAgACAAIAAgACACKAggAkQKZAggAPADJAAgAoQKkAqwCsgK6AsICCADJAggA0AIIAAgACAAIANYC3gIIAAgACAAIAAgACABAAOYCCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAkASoB+QIEAAgACAA8AEMCCABCBQgACABJBVAFCAAIAAgACAAIAAgACAAIAAgACABTBVoFCAAIAFoFCABfBWUFCAAIAAgACAAIAAgAbQUIAAgACAAIAAgACABzBXsFfQWFBYoFigWKBZEFigWKBYoFmAWfBaYFrgWxBbkFCAAIAAgACAAIAAgACAAIAAgACAAIAMEFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAMgFCADQBQgACAAIAAgACAAIAAgACAAIAAgACAAIAO4CCAAIAAgAiQAIAAgACABAAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAD0AggACAD8AggACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIANYFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAMDvwAIAAgAJAIIAAgACAAIAAgACAAIAAgACwMTAwgACAB9BOsEGwMjAwgAKwMyAwsFYgE3A/MEPwMIAEUDTQNRAwgAWQOsAGEDCAAIAAgACAAIAAgACABpAzQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFIQUoBSwFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABtAwgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABMAEwACAAIAAgACAAIABgACAAIAAgACAC/AAgACAAyAQgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACACAAIAAwAAgACAAIAAgACAAIAAgACAAIAAAARABIAAgACAAIABQASAAIAAgAIABwAEAAjgCIABsAqAC2AL0AigDQAtwC+IJIQqVAZUBWQqVAZUBlQGVAZUBlQGrC5UBlQGVAZUBlQGVAZUBlQGVAXsKlQGVAbAK6wsrDGUMpQzlDJUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAfAKAAuZA64AtwCJALoC6ADwAAgAuACgA/oEpgO6AqsD+AAIAAgAswMIAAgACAAIAIkAuwP5AfsBwwPLAwgACAAIAAgACADRA9kDCAAIAOED6QMIAAgACAAIAAgACADuA/YDCAAIAP4DyQAIAAgABgQIAAgAXQAOBAgACAAIAAgACAAIABMECAAIAAgACAAIAAgACAD8AAQBCAAIAAgAGgQiBCoECAExBAgAEAEIAAgACAAIAAgACAAIAAgACAAIAAgACAA4BAgACABABEYECAAIAAgATAQYAQgAVAQIAAgACAAIAAgACAAIAAgACAAIAFoECAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAOQEIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAB+BAcACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAEABhgSMBAgACAAIAAgAlAQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAwAEAAQABAADAAMAAwADAAQABAAEAAQABAAEAAQABHATAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAdQMIAAgACAAIAAgACAAIAMkACAAIAAgAfQMIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACACFA4kDCAAIAAgACAAIAOcBCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAIcDCAAIAAgACAAIAAgACAAIAAgACAAIAJEDCAAIAAgACADFAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABgBAgAZgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAbAQCBXIECAAIAHkECAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABAAJwEQACjBKoEsgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAC6BMIECAAIAAgACAAIAAgACABmBAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAxwQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAGYECAAIAAgAzgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAigWKBYoFigWKBYoFigWKBd0FXwUIAOIF6gXxBYoF3gT5BQAGCAaKBYoFigWKBYoFigWKBYoFigWKBYoFigXWBIoFigWKBYoFigWKBYoFigWKBYsFEAaKBYoFigWKBYoFigWKBRQGCACKBYoFigWKBQgACAAIANEECAAIABgGigUgBggAJgYIAC4GMwaKBYoF0wQ3Bj4GigWKBYoFigWKBYoFigWKBYoFigWKBYoFigUIAAgACAAIAAgACAAIAAgAigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWLBf///////wQABAAEAAQABAAEAAQABAAEAAQAAwAEAAQAAgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAQADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAUAAAAFAAUAAAAFAAUAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUAAQAAAAUABQAFAAUABQAFAAAAAAAFAAUAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAFAAUAAQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUABQAFAAAABwAHAAcAAAAHAAcABwAFAAEAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAcABwAFAAUAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAQABAAAAAAAAAAAAAAAFAAUABQAFAAAABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABwAHAAcAAAAHAAcAAAAAAAUABQAHAAUAAQAHAAEABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABwABAAUABQAFAAUAAAAAAAAAAAAAAAEAAQABAAEAAQABAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABQANAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEAAQABAAEAAQABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAABQAHAAUABQAFAAAAAAAAAAcABQAFAAUABQAFAAQABAAEAAQABAAEAAQABAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUAAAAFAAUABQAFAAUAAAAFAAUABQAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAAAAAAAAAAAAUABQAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAUAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABwAHAAcABwAFAAcABwAAAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUABwAHAAUABQAFAAUAAAAAAAcABwAAAAAABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAABQAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABwAHAAcABQAFAAAAAAAAAAAABQAFAAAAAAAFAAUABQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAFAAUABQAFAAUAAAAFAAUABwAAAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAUABwAFAAUABQAFAAAAAAAHAAcAAAAAAAcABwAFAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABwAAAAAAAAAHAAcABwAAAAcABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAABQAHAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAcABwAAAAUABQAFAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABQAHAAcABQAHAAcAAAAFAAcABwAAAAcABwAFAAUAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAFAAcABwAFAAUABQAAAAUAAAAHAAcABwAHAAcABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAHAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABwAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUAAAAFAAAAAAAAAAAABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUABQAFAAUAAAAFAAUAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABwAFAAUABQAFAAUABQAAAAUABQAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABQAFAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABQAFAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAHAAUABQAFAAUABQAFAAUABwAHAAcABwAHAAcABwAHAAUABwAHAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABwAHAAcABwAFAAUABwAHAAcAAAAAAAAAAAAHAAcABQAHAAcABwAHAAcABwAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAHAAUABQAFAAUABQAFAAUAAAAFAAAABQAAAAAABQAFAAUABQAFAAUABQAFAAcABwAHAAcABwAHAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAUABQAFAAUABQAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABwAFAAcABwAHAAcABwAFAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAUABQAFAAUABwAHAAUABQAHAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABQAFAAcABwAHAAUABwAFAAUABQAHAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAUABQAFAAUABQAFAAUABQAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAcABQAFAAUABQAFAAUABQAAAAAAAAAAAAUAAAAAAAAAAAAAAAAABQAAAAAABwAFAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUAAAAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAABQAAAAAAAAAFAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAUABQAHAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAHAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABwAFAAUABQAFAAcABwAFAAUABwAHAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAcABwAFAAUABwAHAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAUABQAAAAAABQAFAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAFAAcABwAAAAAAAAAAAAAABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAFAAcABwAFAAcABwAAAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAFAAUABQAAAAUABQAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABwAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABQAFAAUABQAFAAUABQAFAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAHAAcABQAHAAUABQAAAAAAAAAAAAAAAAAFAAAABwAHAAcABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAcABwAAAAAABwAHAAAAAAAHAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABwAHAAUABQAFAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABQAFAAUABQAFAAUABwAFAAcABwAFAAcABQAFAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABQAFAAUABQAAAAAABwAHAAcABwAFAAUABwAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAHAAUABQAFAAUABQAFAAUABQAHAAcABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAFAAcABwAFAAUABQAFAAUABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAcABwAFAAUABQAFAAcABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABQAHAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAAAAAAFAAUABwAHAAcABwAFAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABwAHAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAHAAUABQAFAAUABQAFAAUABwAFAAUABwAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAAAAAAAABQAAAAUABQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAHAAcAAAAFAAUAAAAHAAcABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAAAAAAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAUABQAFAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAABQAFAAUABQAFAAUABQAAAAUABQAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAFAAUABQAFAAUADgAOAA4ADgAOAA4ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAAAAAAAAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAMAAwADAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAAAAAAAAAAAAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAAAAAAAAAAAAsADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwACwAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAADgAOAA4AAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAAAA4ADgAOAA4ADgAOAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAA4AAAAOAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAADgAAAAAAAAAAAA4AAAAOAAAAAAAAAAAADgAOAA4AAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAA4ADgAOAA4ADgAOAA4ADgAOAAAADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4AAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAOAA4ADgAOAA4ADgAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAAAAAAA="),xr=Array.isArray(vr)?function(A){for(var e=A.length,t=[],r=0;r<e;r+=4)t.push(A[r+3]<<24|A[r+2]<<16|A[r+1]<<8|A[r]);return t}(vr):new Uint32Array(vr),Mr=Array.isArray(vr)?function(A){for(var e=A.length,t=[],r=0;r<e;r+=2)t.push(A[r+1]<<8|A[r]);return t}(vr):new Uint16Array(vr),br=fr(Mr,12,xr[4]/2),Dr=2===xr[5]?fr(Mr,(24+xr[4])/2):(vr=xr,Mr=Math.ceil((24+xr[4])/4),vr.slice?vr.slice(Mr,Dr):new Uint32Array(Array.prototype.slice.call(vr,Mr,Dr))),new Hr(xr[0],xr[1],xr[2],xr[3],br,Dr)),Rr="×",Nr=function(A,e,t,r,B){var n="http://www.w3.org/2000/svg",s=document.createElementNS(n,"svg"),n=document.createElementNS(n,"foreignObject");return s.setAttributeNS(null,"width",A.toString()),s.setAttributeNS(null,"height",e.toString()),n.setAttributeNS(null,"width","100%"),n.setAttributeNS(null,"height","100%"),n.setAttributeNS(null,"x",t.toString()),n.setAttributeNS(null,"y",r.toString()),n.setAttributeNS(null,"externalResourcesRequired","true"),s.appendChild(n),n.appendChild(B),s},Pr=function(r){return new Promise(function(A,e){var t=new Image;t.onload=function(){return A(t)},t.onerror=e,t.src="data:image/svg+xml;charset=utf-8,"+encodeURIComponent((new XMLSerializer).serializeToString(r))})},Xr={get SUPPORT_RANGE_BOUNDS(){var A=function(A){if(A.createRange){var e=A.createRange();if(e.getBoundingClientRect){var t=A.createElement("boundtest");t.style.height="123px",t.style.display="block",A.body.appendChild(t),e.selectNode(t);e=e.getBoundingClientRect(),e=Math.round(e.height);if(A.body.removeChild(t),123===e)return!0}}return!1}(document);return Object.defineProperty(Xr,"SUPPORT_RANGE_BOUNDS",{value:A}),A},get SUPPORT_WORD_BREAKING(){var A=Xr.SUPPORT_RANGE_BOUNDS&&function(A){var e=A.createElement("boundtest");e.style.width="50px",e.style.display="block",e.style.fontSize="12px",e.style.letterSpacing="0px",e.style.wordSpacing="0px",A.body.appendChild(e);var r=A.createRange();e.innerHTML="function"==typeof"".repeat?"&#128104;".repeat(10):"";var B=e.firstChild,t=Q(B.data).map(function(A){return g(A)}),n=0,s={},t=t.every(function(A,e){r.setStart(B,n),r.setEnd(B,n+A.length);var t=r.getBoundingClientRect();n+=A.length;A=t.x>s.x||t.y>s.y;return s=t,0===e||A});return A.body.removeChild(e),t}(document);return Object.defineProperty(Xr,"SUPPORT_WORD_BREAKING",{value:A}),A},get SUPPORT_SVG_DRAWING(){var A=function(A){var e=new Image,t=A.createElement("canvas"),A=t.getContext("2d");if(!A)return!1;e.src="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg'></svg>";try{A.drawImage(e,0,0),t.toDataURL()}catch(A){return!1}return!0}(document);return Object.defineProperty(Xr,"SUPPORT_SVG_DRAWING",{value:A}),A},get SUPPORT_FOREIGNOBJECT_DRAWING(){var A="function"==typeof Array.from&&"function"==typeof window.fetch?function(t){var A=t.createElement("canvas"),r=100;A.width=r,A.height=r;var B=A.getContext("2d");if(!B)return Promise.reject(!1);B.fillStyle="rgb(0, 255, 0)",B.fillRect(0,0,r,r);var e=new Image,n=A.toDataURL();e.src=n;e=Nr(r,r,0,0,e);return B.fillStyle="red",B.fillRect(0,0,r,r),Pr(e).then(function(A){B.drawImage(A,0,0);var e=B.getImageData(0,0,r,r).data;B.fillStyle="red",B.fillRect(0,0,r,r);A=t.createElement("div");return A.style.backgroundImage="url("+n+")",A.style.height="100px",Lr(e)?Pr(Nr(r,r,0,0,A)):Promise.reject(!1)}).then(function(A){return B.drawImage(A,0,0),Lr(B.getImageData(0,0,r,r).data)}).catch(function(){return!1})}(document):Promise.resolve(!1);return Object.defineProperty(Xr,"SUPPORT_FOREIGNOBJECT_DRAWING",{value:A}),A},get SUPPORT_CORS_IMAGES(){var A=void 0!==(new Image).crossOrigin;return Object.defineProperty(Xr,"SUPPORT_CORS_IMAGES",{value:A}),A},get SUPPORT_RESPONSE_TYPE(){var A="string"==typeof(new XMLHttpRequest).responseType;return Object.defineProperty(Xr,"SUPPORT_RESPONSE_TYPE",{value:A}),A},get SUPPORT_CORS_XHR(){var A="withCredentials"in new XMLHttpRequest;return Object.defineProperty(Xr,"SUPPORT_CORS_XHR",{value:A}),A},get SUPPORT_NATIVE_TEXT_SEGMENTATION(){var A=!("undefined"==typeof Intl||!Intl.Segmenter);return Object.defineProperty(Xr,"SUPPORT_NATIVE_TEXT_SEGMENTATION",{value:A}),A}},Jr=function(A,e){this.text=A,this.bounds=e},Yr=function(A,e){var t=e.ownerDocument;if(t){var r=t.createElement("html2canvaswrapper");r.appendChild(e.cloneNode(!0));t=e.parentNode;if(t){t.replaceChild(r,e);A=f(A,r);return r.firstChild&&t.replaceChild(r.firstChild,r),A}}return d.EMPTY},Wr=function(A,e,t){var r=A.ownerDocument;if(!r)throw new Error("Node has no owner document");r=r.createRange();return r.setStart(A,e),r.setEnd(A,e+t),r},Zr=function(A){if(Xr.SUPPORT_NATIVE_TEXT_SEGMENTATION){var e=new Intl.Segmenter(void 0,{granularity:"grapheme"});return Array.from(e.segment(A)).map(function(A){return A.segment})}return function(A){for(var e,t=mr(A),r=[];!(e=t.next()).done;)e.value&&r.push(e.value.slice());return r}(A)},_r=function(A,e){return 0!==e.letterSpacing?Zr(A):function(A,e){if(Xr.SUPPORT_NATIVE_TEXT_SEGMENTATION){var t=new Intl.Segmenter(void 0,{granularity:"word"});return Array.from(t.segment(A)).map(function(A){return A.segment})}return jr(A,e)}(A,e)},qr=[32,160,4961,65792,65793,4153,4241],jr=function(A,e){for(var t,r=wA(A,{lineBreak:e.lineBreak,wordBreak:"break-word"===e.overflowWrap?"break-word":e.wordBreak}),B=[];!(t=r.next()).done;)!function(){var A,e;t.value&&(A=t.value.slice(),A=Q(A),e="",A.forEach(function(A){-1===qr.indexOf(A)?e+=g(A):(e.length&&B.push(e),B.push(g(A)),e="")}),e.length&&B.push(e))}();return B},zr=function(A,e,t){var B,n,s,o,i;this.text=$r(e.data,t.textTransform),this.textBounds=(B=A,A=this.text,s=e,A=_r(A,n=t),o=[],i=0,A.forEach(function(A){var e,t,r;n.textDecorationLine.length||0<A.trim().length?Xr.SUPPORT_RANGE_BOUNDS?1<(r=Wr(s,i,A.length).getClientRects()).length?(e=Zr(A),t=0,e.forEach(function(A){o.push(new Jr(A,d.fromDOMRectList(B,Wr(s,t+i,A.length).getClientRects()))),t+=A.length})):o.push(new Jr(A,d.fromDOMRectList(B,r))):(r=s.splitText(A.length),o.push(new Jr(A,Yr(B,s))),s=r):Xr.SUPPORT_RANGE_BOUNDS||(s=s.splitText(A.length)),i+=A.length}),o)},$r=function(A,e){switch(e){case 1:return A.toLowerCase();case 3:return A.replace(AB,eB);case 2:return A.toUpperCase();default:return A}},AB=/(^|\s|:|-|\(|\))([a-z])/g,eB=function(A,e,t){return 0<A.length?e+t.toUpperCase():A},tB=(A(rB,Sr=ur),rB);function rB(A,e){A=Sr.call(this,A,e)||this;return A.src=e.currentSrc||e.src,A.intrinsicWidth=e.naturalWidth,A.intrinsicHeight=e.naturalHeight,A.context.cache.addImage(A.src),A}var BB,nB=(A(sB,BB=ur),sB);function sB(A,e){A=BB.call(this,A,e)||this;return A.canvas=e,A.intrinsicWidth=e.width,A.intrinsicHeight=e.height,A}var oB,iB=(A(QB,oB=ur),QB);function QB(A,e){var t=oB.call(this,A,e)||this,r=new XMLSerializer,A=f(A,e);return e.setAttribute("width",A.width+"px"),e.setAttribute("height",A.height+"px"),t.svg="data:image/svg+xml,"+encodeURIComponent(r.serializeToString(e)),t.intrinsicWidth=e.width.baseVal.value,t.intrinsicHeight=e.height.baseVal.value,t.context.cache.addImage(t.svg),t}var cB,aB=(A(gB,cB=ur),gB);function gB(A,e){A=cB.call(this,A,e)||this;return A.value=e.value,A}var wB,UB=(A(lB,wB=ur),lB);function lB(A,e){A=wB.call(this,A,e)||this;return A.start=e.start,A.reversed="boolean"==typeof e.reversed&&!0===e.reversed,A}var CB,uB=[{type:15,flags:0,unit:"px",number:3}],FB=[{type:16,flags:0,number:50}],hB="checkbox",dB="radio",fB="password",HB=707406591,pB=(A(EB,CB=ur),EB);function EB(A,e){var t=CB.call(this,A,e)||this;switch(t.type=e.type.toLowerCase(),t.checked=e.checked,t.value=0===(e=(A=e).type===fB?new Array(A.value.length+1).join("•"):A.value).length?A.placeholder||"":e,t.type!==hB&&t.type!==dB||(t.styles.backgroundColor=3739148031,t.styles.borderTopColor=t.styles.borderRightColor=t.styles.borderBottomColor=t.styles.borderLeftColor=2779096575,t.styles.borderTopWidth=t.styles.borderRightWidth=t.styles.borderBottomWidth=t.styles.borderLeftWidth=1,t.styles.borderTopStyle=t.styles.borderRightStyle=t.styles.borderBottomStyle=t.styles.borderLeftStyle=1,t.styles.backgroundClip=[0],t.styles.backgroundOrigin=[0],t.bounds=(e=t.bounds).width>e.height?new d(e.left+(e.width-e.height)/2,e.top,e.height,e.height):e.width<e.height?new d(e.left,e.top+(e.height-e.width)/2,e.width,e.width):e),t.type){case hB:t.styles.borderTopRightRadius=t.styles.borderTopLeftRadius=t.styles.borderBottomRightRadius=t.styles.borderBottomLeftRadius=uB;break;case dB:t.styles.borderTopRightRadius=t.styles.borderTopLeftRadius=t.styles.borderBottomRightRadius=t.styles.borderBottomLeftRadius=FB}return t}var IB,yB=(A(KB,IB=ur),KB);function KB(A,e){A=IB.call(this,A,e)||this,e=e.options[e.selectedIndex||0];return A.value=e&&e.text||"",A}var mB,LB=(A(bB,mB=ur),bB);function bB(A,e){A=mB.call(this,A,e)||this;return A.value=e.value,A}var DB,vB=(A(xB,DB=ur),xB);function xB(A,e){var t,r,B=DB.call(this,A,e)||this;B.src=e.src,B.width=parseInt(e.width,10)||0,B.height=parseInt(e.height,10)||0,B.backgroundColor=B.styles.backgroundColor;try{e.contentWindow&&e.contentWindow.document&&e.contentWindow.document.documentElement&&(B.tree=kB(A,e.contentWindow.document.documentElement),t=e.contentWindow.document.documentElement?fe(A,getComputedStyle(e.contentWindow.document.documentElement).backgroundColor):Le.TRANSPARENT,r=e.contentWindow.document.body?fe(A,getComputedStyle(e.contentWindow.document.body).backgroundColor):Le.TRANSPARENT,B.backgroundColor=oe(t)?oe(r)?B.styles.backgroundColor:r:t)}catch(A){}return B}function MB(A){return"VIDEO"===A.tagName}function SB(A){return"STYLE"===A.tagName}function TB(A){return 0<A.tagName.indexOf("-")}var GB=["OL","UL","MENU"],OB=function(e,A,t,r){for(var B=A.firstChild;B;B=s){var n,s=B.nextSibling;PB(B)&&0<B.data.trim().length?t.textNodes.push(new zr(e,B,t.styles)):XB(B)&&(rn(B)&&B.assignedNodes?B.assignedNodes().forEach(function(A){return OB(e,A,t,r)}):(n=VB(e,B)).styles.isVisible()&&(RB(B,n,r)?n.flags|=4:NB(n.styles)&&(n.flags|=2),-1!==GB.indexOf(B.tagName)&&(n.flags|=8),t.elements.push(n),B.slot,B.shadowRoot?OB(e,B.shadowRoot,n,r):en(B)||qB(B)||tn(B)||OB(e,B,n,r)))}},VB=function(A,e){return new($B(e)?tB:zB(e)?nB:qB(e)?iB:WB(e)?aB:ZB(e)?UB:_B(e)?pB:tn(e)?yB:en(e)?LB:An(e)?vB:ur)(A,e)},kB=function(A,e){var t=VB(A,e);return t.flags|=4,OB(A,e,t,t),t},RB=function(A,e,t){return e.styles.isPositionedWithZIndex()||e.styles.opacity<1||e.styles.isTransformed()||jB(A)&&t.styles.isTransparent()},NB=function(A){return A.isPositioned()||A.isFloating()},PB=function(A){return A.nodeType===Node.TEXT_NODE},XB=function(A){return A.nodeType===Node.ELEMENT_NODE},JB=function(A){return XB(A)&&void 0!==A.style&&!YB(A)},YB=function(A){return"object"==typeof A.className},WB=function(A){return"LI"===A.tagName},ZB=function(A){return"OL"===A.tagName},_B=function(A){return"INPUT"===A.tagName},qB=function(A){return"svg"===A.tagName},jB=function(A){return"BODY"===A.tagName},zB=function(A){return"CANVAS"===A.tagName},$B=function(A){return"IMG"===A.tagName},An=function(A){return"IFRAME"===A.tagName},en=function(A){return"TEXTAREA"===A.tagName},tn=function(A){return"SELECT"===A.tagName},rn=function(A){return"SLOT"===A.tagName},Bn=(nn.prototype.getCounterValue=function(A){A=this.counters[A];return A&&A.length?A[A.length-1]:1},nn.prototype.getCounterValues=function(A){A=this.counters[A];return A||[]},nn.prototype.pop=function(A){var e=this;A.forEach(function(A){return e.counters[A].pop()})},nn.prototype.parse=function(A){var t=this,e=A.counterIncrement,A=A.counterReset,r=!0;null!==e&&e.forEach(function(A){var e=t.counters[A.counter];e&&0!==A.increment&&(r=!1,e.length||e.push(1),e[Math.max(0,e.length-1)]+=A.increment)});var B=[];return r&&A.forEach(function(A){var e=t.counters[A.counter];B.push(A.counter),(e=e||(t.counters[A.counter]=[])).push(A.reset)}),B},nn);function nn(){this.counters={}}function sn(r,A,e,B,t,n){return r<A||e<r?Fn(r,t,0<n.length):B.integers.reduce(function(A,e,t){for(;e<=r;)r-=e,A+=B.values[t];return A},"")+n}function on(A,e,t,r){for(var B="";t||A--,B=r(A)+B,e<=(A/=e)*e;);return B}function Qn(A,e,t,r,B){var n=t-e+1;return(A<0?"-":"")+(on(Math.abs(A),n,r,function(A){return g(Math.floor(A%n)+e)})+B)}function cn(A,e,t){void 0===t&&(t=". ");var r=e.length;return on(Math.abs(A),r,!1,function(A){return e[Math.floor(A%r)]})+t}function an(A,e,t,r,B,n){if(A<-9999||9999<A)return Fn(A,4,0<B.length);var s=Math.abs(A),o=B;if(0===s)return e[0]+o;for(var i=0;0<s&&i<=4;i++){var Q=s%10;0==Q&&Pt(n,1)&&""!==o?o=e[Q]+o:1<Q||1==Q&&0===i||1==Q&&1===i&&Pt(n,2)||1==Q&&1===i&&Pt(n,4)&&100<A||1==Q&&1<i&&Pt(n,8)?o=e[Q]+(0<i?t[i-1]:"")+o:1==Q&&0<i&&(o=t[i-1]+o),s=Math.floor(s/10)}return(A<0?r:"")+o}var gn,wn={integers:[1e3,900,500,400,100,90,50,40,10,9,5,4,1],values:["M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"]},Un={integers:[9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,900,800,700,600,500,400,300,200,100,90,80,70,60,50,40,30,20,10,9,8,7,6,5,4,3,2,1],values:["Ք","Փ","Ւ","Ց","Ր","Տ","Վ","Ս","Ռ","Ջ","Պ","Չ","Ո","Շ","Ն","Յ","Մ","Ճ","Ղ","Ձ","Հ","Կ","Ծ","Խ","Լ","Ի","Ժ","Թ","Ը","Է","Զ","Ե","Դ","Գ","Բ","Ա"]},ln={integers:[1e4,9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,400,300,200,100,90,80,70,60,50,40,30,20,19,18,17,16,15,10,9,8,7,6,5,4,3,2,1],values:["י׳","ט׳","ח׳","ז׳","ו׳","ה׳","ד׳","ג׳","ב׳","א׳","ת","ש","ר","ק","צ","פ","ע","ס","נ","מ","ל","כ","יט","יח","יז","טז","טו","י","ט","ח","ז","ו","ה","ד","ג","ב","א"]},Cn={integers:[1e4,9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,900,800,700,600,500,400,300,200,100,90,80,70,60,50,40,30,20,10,9,8,7,6,5,4,3,2,1],values:["ჵ","ჰ","ჯ","ჴ","ხ","ჭ","წ","ძ","ც","ჩ","შ","ყ","ღ","ქ","ფ","ჳ","ტ","ს","რ","ჟ","პ","ო","ჲ","ნ","მ","ლ","კ","ი","თ","ჱ","ზ","ვ","ე","დ","გ","ბ","ა"]},un="마이너스",Fn=function(A,e,t){var r=t?". ":"",B=t?"、":"",n=t?", ":"",s=t?" ":"";switch(e){case 0:return"•"+s;case 1:return"◦"+s;case 2:return"◾"+s;case 5:var o=Qn(A,48,57,!0,r);return o.length<4?"0"+o:o;case 4:return cn(A,"〇一二三四五六七八九",B);case 6:return sn(A,1,3999,wn,3,r).toLowerCase();case 7:return sn(A,1,3999,wn,3,r);case 8:return Qn(A,945,969,!1,r);case 9:return Qn(A,97,122,!1,r);case 10:return Qn(A,65,90,!1,r);case 11:return Qn(A,1632,1641,!0,r);case 12:case 49:return sn(A,1,9999,Un,3,r);case 35:return sn(A,1,9999,Un,3,r).toLowerCase();case 13:return Qn(A,2534,2543,!0,r);case 14:case 30:return Qn(A,6112,6121,!0,r);case 15:return cn(A,"子丑寅卯辰巳午未申酉戌亥",B);case 16:return cn(A,"甲乙丙丁戊己庚辛壬癸",B);case 17:case 48:return an(A,"零一二三四五六七八九","十百千萬","負",B,14);case 47:return an(A,"零壹貳參肆伍陸柒捌玖","拾佰仟萬","負",B,15);case 42:return an(A,"零一二三四五六七八九","十百千萬","负",B,14);case 41:return an(A,"零壹贰叁肆伍陆柒捌玖","拾佰仟萬","负",B,15);case 26:return an(A,"〇一二三四五六七八九","十百千万","マイナス",B,0);case 25:return an(A,"零壱弐参四伍六七八九","拾百千万","マイナス",B,7);case 31:return an(A,"영일이삼사오육칠팔구","십백천만",un,n,7);case 33:return an(A,"零一二三四五六七八九","十百千萬",un,n,0);case 32:return an(A,"零壹貳參四五六七八九","拾百千",un,n,7);case 18:return Qn(A,2406,2415,!0,r);case 20:return sn(A,1,19999,Cn,3,r);case 21:return Qn(A,2790,2799,!0,r);case 22:return Qn(A,2662,2671,!0,r);case 22:return sn(A,1,10999,ln,3,r);case 23:return cn(A,"あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわゐゑをん");case 24:return cn(A,"いろはにほへとちりぬるをわかよたれそつねならむうゐのおくやまけふこえてあさきゆめみしゑひもせす");case 27:return Qn(A,3302,3311,!0,r);case 28:return cn(A,"アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヰヱヲン",B);case 29:return cn(A,"イロハニホヘトチリヌルヲワカヨタレソツネナラムウヰノオクヤマケフコエテアサキユメミシヱヒモセス",B);case 34:return Qn(A,3792,3801,!0,r);case 37:return Qn(A,6160,6169,!0,r);case 38:return Qn(A,4160,4169,!0,r);case 39:return Qn(A,2918,2927,!0,r);case 40:return Qn(A,1776,1785,!0,r);case 43:return Qn(A,3046,3055,!0,r);case 44:return Qn(A,3174,3183,!0,r);case 45:return Qn(A,3664,3673,!0,r);case 46:return Qn(A,3872,3881,!0,r);default:return Qn(A,48,57,!0,r)}},hn="data-html2canvas-ignore",dn=(fn.prototype.toIFrame=function(A,r){var e=this,B=pn(A,r);if(!B.contentWindow)return Promise.reject("Unable to find iframe window");var t=A.defaultView.pageXOffset,n=A.defaultView.pageYOffset,s=B.contentWindow,o=s.document,A=In(B).then(function(){return a(e,void 0,void 0,function(){var e,t;return H(this,function(A){switch(A.label){case 0:return this.scrolledElements.forEach(bn),s&&(s.scrollTo(r.left,r.top),!/(iPad|iPhone|iPod)/g.test(navigator.userAgent)||s.scrollY===r.top&&s.scrollX===r.left||(this.context.logger.warn("Unable to restore scroll position for cloned document"),this.context.windowBounds=this.context.windowBounds.add(s.scrollX-r.left,s.scrollY-r.top,0,0))),e=this.options.onclone,void 0===(t=this.clonedReferenceElement)?[2,Promise.reject("Error finding the "+this.referenceElement.nodeName+" in the cloned document")]:o.fonts&&o.fonts.ready?[4,o.fonts.ready]:[3,2];case 1:A.sent(),A.label=2;case 2:return/(AppleWebKit)/g.test(navigator.userAgent)?[4,En(o)]:[3,4];case 3:A.sent(),A.label=4;case 4:return"function"==typeof e?[2,Promise.resolve().then(function(){return e(o,t)}).then(function(){return B})]:[2,B]}})})});return o.open(),o.write(mn(document.doctype)+"<html></html>"),Ln(this.referenceElement.ownerDocument,t,n),o.replaceChild(o.adoptNode(this.documentElement),o.documentElement),o.close(),A},fn.prototype.createElementClone=function(A){if(Cr(A,2),zB(A))return this.createCanvasClone(A);if(MB(A))return this.createVideoClone(A);if(SB(A))return this.createStyleClone(A);var e=A.cloneNode(!1);return $B(e)&&($B(A)&&A.currentSrc&&A.currentSrc!==A.src&&(e.src=A.currentSrc,e.srcset=""),"lazy"===e.loading&&(e.loading="eager")),TB(e)?this.createCustomElementClone(e):e},fn.prototype.createCustomElementClone=function(A){var e=document.createElement("html2canvascustomelement");return Kn(A.style,e),e},fn.prototype.createStyleClone=function(A){try{var e=A.sheet;if(e&&e.cssRules){var t=[].slice.call(e.cssRules,0).reduce(function(A,e){return e&&"string"==typeof e.cssText?A+e.cssText:A},""),r=A.cloneNode(!1);return r.textContent=t,r}}catch(A){if(this.context.logger.error("Unable to access cssRules property",A),"SecurityError"!==A.name)throw A}return A.cloneNode(!1)},fn.prototype.createCanvasClone=function(e){var A;if(this.options.inlineImages&&e.ownerDocument){var t=e.ownerDocument.createElement("img");try{return t.src=e.toDataURL(),t}catch(A){this.context.logger.info("Unable to inline canvas contents, canvas is tainted",e)}}t=e.cloneNode(!1);try{t.width=e.width,t.height=e.height;var r,B,n=e.getContext("2d"),s=t.getContext("2d");return s&&(!this.options.allowTaint&&n?s.putImageData(n.getImageData(0,0,e.width,e.height),0,0):(!(r=null!==(A=e.getContext("webgl2"))&&void 0!==A?A:e.getContext("webgl"))||!1===(null==(B=r.getContextAttributes())?void 0:B.preserveDrawingBuffer)&&this.context.logger.warn("Unable to clone WebGL context as it has preserveDrawingBuffer=false",e),s.drawImage(e,0,0))),t}catch(A){this.context.logger.info("Unable to clone canvas as it is tainted",e)}return t},fn.prototype.createVideoClone=function(e){var A=e.ownerDocument.createElement("canvas");A.width=e.offsetWidth,A.height=e.offsetHeight;var t=A.getContext("2d");try{return t&&(t.drawImage(e,0,0,A.width,A.height),this.options.allowTaint||t.getImageData(0,0,A.width,A.height)),A}catch(A){this.context.logger.info("Unable to clone video as it is tainted",e)}A=e.ownerDocument.createElement("canvas");return A.width=e.offsetWidth,A.height=e.offsetHeight,A},fn.prototype.appendChildNode=function(A,e,t){XB(e)&&("SCRIPT"===e.tagName||e.hasAttribute(hn)||"function"==typeof this.options.ignoreElements&&this.options.ignoreElements(e))||this.options.copyStyles&&XB(e)&&SB(e)||A.appendChild(this.cloneNode(e,t))},fn.prototype.cloneChildNodes=function(A,e,t){for(var r,B=this,n=(A.shadowRoot||A).firstChild;n;n=n.nextSibling)XB(n)&&rn(n)&&"function"==typeof n.assignedNodes?(r=n.assignedNodes()).length&&r.forEach(function(A){return B.appendChildNode(e,A,t)}):this.appendChildNode(e,n,t)},fn.prototype.cloneNode=function(A,e){if(PB(A))return document.createTextNode(A.data);if(!A.ownerDocument)return A.cloneNode(!1);var t=A.ownerDocument.defaultView;if(t&&XB(A)&&(JB(A)||YB(A))){var r=this.createElementClone(A);r.style.transitionProperty="none";var B=t.getComputedStyle(A),n=t.getComputedStyle(A,":before"),s=t.getComputedStyle(A,":after");this.referenceElement===A&&JB(r)&&(this.clonedReferenceElement=r),jB(r)&&Mn(r);t=this.counters.parse(new Ur(this.context,B)),n=this.resolvePseudoContent(A,r,n,gn.BEFORE);TB(A)&&(e=!0),MB(A)||this.cloneChildNodes(A,r,e),n&&r.insertBefore(n,r.firstChild);s=this.resolvePseudoContent(A,r,s,gn.AFTER);return s&&r.appendChild(s),this.counters.pop(t),(B&&(this.options.copyStyles||YB(A))&&!An(A)||e)&&Kn(B,r),0===A.scrollTop&&0===A.scrollLeft||this.scrolledElements.push([r,A.scrollLeft,A.scrollTop]),(en(A)||tn(A))&&(en(r)||tn(r))&&(r.value=A.value),r}return A.cloneNode(!1)},fn.prototype.resolvePseudoContent=function(o,A,e,t){var i=this;if(e){var r=e.content,Q=A.ownerDocument;if(Q&&r&&"none"!==r&&"-moz-alt-content"!==r&&"none"!==e.display){this.counters.parse(new Ur(this.context,e));var c=new wr(this.context,e),a=Q.createElement("html2canvaspseudoelement");Kn(e,a),c.content.forEach(function(A){if(0===A.type)a.appendChild(Q.createTextNode(A.value));else if(22===A.type){var e=Q.createElement("img");e.src=A.value,e.style.opacity="1",a.appendChild(e)}else if(18===A.type){var t,r,B,n,s;"attr"===A.name?(e=A.values.filter(_A)).length&&a.appendChild(Q.createTextNode(o.getAttribute(e[0].value)||"")):"counter"===A.name?(B=(r=A.values.filter($A))[0],r=r[1],B&&_A(B)&&(t=i.counters.getCounterValue(B.value),s=r&&_A(r)?pt.parse(i.context,r.value):3,a.appendChild(Q.createTextNode(Fn(t,s,!1))))):"counters"===A.name&&(B=(t=A.values.filter($A))[0],s=t[1],r=t[2],B&&_A(B)&&(B=i.counters.getCounterValues(B.value),n=r&&_A(r)?pt.parse(i.context,r.value):3,s=s&&0===s.type?s.value:"",s=B.map(function(A){return Fn(A,n,!1)}).join(s),a.appendChild(Q.createTextNode(s))))}else if(20===A.type)switch(A.value){case"open-quote":a.appendChild(Q.createTextNode(Xt(c.quotes,i.quoteDepth++,!0)));break;case"close-quote":a.appendChild(Q.createTextNode(Xt(c.quotes,--i.quoteDepth,!1)));break;default:a.appendChild(Q.createTextNode(A.value))}}),a.className=Dn+" "+vn;t=t===gn.BEFORE?" "+Dn:" "+vn;return YB(A)?A.className.baseValue+=t:A.className+=t,a}}},fn.destroy=function(A){return!!A.parentNode&&(A.parentNode.removeChild(A),!0)},fn);function fn(A,e,t){if(this.context=A,this.options=t,this.scrolledElements=[],this.referenceElement=e,this.counters=new Bn,this.quoteDepth=0,!e.ownerDocument)throw new Error("Cloned element does not have an owner document");this.documentElement=this.cloneNode(e.ownerDocument.documentElement,!1)}(he=gn=gn||{})[he.BEFORE=0]="BEFORE",he[he.AFTER=1]="AFTER";function Hn(e){return new Promise(function(A){!e.complete&&e.src?(e.onload=A,e.onerror=A):A()})}var pn=function(A,e){var t=A.createElement("iframe");return t.className="html2canvas-container",t.style.visibility="hidden",t.style.position="fixed",t.style.left="-10000px",t.style.top="0px",t.style.border="0",t.width=e.width.toString(),t.height=e.height.toString(),t.scrolling="no",t.setAttribute(hn,"true"),A.body.appendChild(t),t},En=function(A){return Promise.all([].slice.call(A.images,0).map(Hn))},In=function(B){return new Promise(function(e,A){var t=B.contentWindow;if(!t)return A("No window assigned for iframe");var r=t.document;t.onload=B.onload=function(){t.onload=B.onload=null;var A=setInterval(function(){0<r.body.childNodes.length&&"complete"===r.readyState&&(clearInterval(A),e(B))},50)}})},yn=["all","d","content"],Kn=function(A,e){for(var t=A.length-1;0<=t;t--){var r=A.item(t);-1===yn.indexOf(r)&&e.style.setProperty(r,A.getPropertyValue(r))}return e},mn=function(A){var e="";return A&&(e+="<!DOCTYPE ",A.name&&(e+=A.name),A.internalSubset&&(e+=A.internalSubset),A.publicId&&(e+='"'+A.publicId+'"'),A.systemId&&(e+='"'+A.systemId+'"'),e+=">"),e},Ln=function(A,e,t){A&&A.defaultView&&(e!==A.defaultView.pageXOffset||t!==A.defaultView.pageYOffset)&&A.defaultView.scrollTo(e,t)},bn=function(A){var e=A[0],t=A[1],A=A[2];e.scrollLeft=t,e.scrollTop=A},Dn="___html2canvas___pseudoelement_before",vn="___html2canvas___pseudoelement_after",xn='{\n    content: "" !important;\n    display: none !important;\n}',Mn=function(A){Sn(A,"."+Dn+":before"+xn+"\n         ."+vn+":after"+xn)},Sn=function(A,e){var t=A.ownerDocument;t&&((t=t.createElement("style")).textContent=e,A.appendChild(t))},Tn=(Gn.getOrigin=function(A){var e=Gn._link;return e?(e.href=A,e.href=e.href,e.protocol+e.hostname+e.port):"about:blank"},Gn.isSameOrigin=function(A){return Gn.getOrigin(A)===Gn._origin},Gn.setContext=function(A){Gn._link=A.document.createElement("a"),Gn._origin=Gn.getOrigin(A.location.href)},Gn._origin="about:blank",Gn);function Gn(){}var On=(Vn.prototype.addImage=function(A){var e=Promise.resolve();return this.has(A)||(Yn(A)||Pn(A))&&(this._cache[A]=this.loadImage(A)).catch(function(){}),e},Vn.prototype.match=function(A){return this._cache[A]},Vn.prototype.loadImage=function(s){return a(this,void 0,void 0,function(){var e,r,t,B,n=this;return H(this,function(A){switch(A.label){case 0:return(e=Tn.isSameOrigin(s),r=!Xn(s)&&!0===this._options.useCORS&&Xr.SUPPORT_CORS_IMAGES&&!e,t=!Xn(s)&&!e&&!Yn(s)&&"string"==typeof this._options.proxy&&Xr.SUPPORT_CORS_XHR&&!r,e||!1!==this._options.allowTaint||Xn(s)||Yn(s)||t||r)?(B=s,t?[4,this.proxy(B)]:[3,2]):[2];case 1:B=A.sent(),A.label=2;case 2:return this.context.logger.debug("Added image "+s.substring(0,256)),[4,new Promise(function(A,e){var t=new Image;t.onload=function(){return A(t)},t.onerror=e,(Jn(B)||r)&&(t.crossOrigin="anonymous"),t.src=B,!0===t.complete&&setTimeout(function(){return A(t)},500),0<n._options.imageTimeout&&setTimeout(function(){return e("Timed out ("+n._options.imageTimeout+"ms) loading image")},n._options.imageTimeout)})];case 3:return[2,A.sent()]}})})},Vn.prototype.has=function(A){return void 0!==this._cache[A]},Vn.prototype.keys=function(){return Promise.resolve(Object.keys(this._cache))},Vn.prototype.proxy=function(s){var o=this,i=this._options.proxy;if(!i)throw new Error("No proxy defined");var Q=s.substring(0,256);return new Promise(function(e,t){var r=Xr.SUPPORT_RESPONSE_TYPE?"blob":"text",B=new XMLHttpRequest;B.onload=function(){var A;200===B.status?"text"==r?e(B.response):((A=new FileReader).addEventListener("load",function(){return e(A.result)},!1),A.addEventListener("error",function(A){return t(A)},!1),A.readAsDataURL(B.response)):t("Failed to proxy resource "+Q+" with status code "+B.status)},B.onerror=t;var A,n=-1<i.indexOf("?")?"&":"?";B.open("GET",i+n+"url="+encodeURIComponent(s)+"&responseType="+r),"text"!=r&&B instanceof XMLHttpRequest&&(B.responseType=r),o._options.imageTimeout&&(A=o._options.imageTimeout,B.timeout=A,B.ontimeout=function(){return t("Timed out ("+A+"ms) proxying "+Q)}),B.send()})},Vn);function Vn(A,e){this.context=A,this._options=e,this._cache={}}var kn=/^data:image\/svg\+xml/i,Rn=/^data:image\/.*;base64,/i,Nn=/^data:image\/.*/i,Pn=function(A){return Xr.SUPPORT_SVG_DRAWING||!Wn(A)},Xn=function(A){return Nn.test(A)},Jn=function(A){return Rn.test(A)},Yn=function(A){return"blob"===A.substr(0,4)},Wn=function(A){return"svg"===A.substr(-3).toLowerCase()||kn.test(A)},Zn=(_n.prototype.add=function(A,e){return new _n(this.x+A,this.y+e)},_n);function _n(A,e){this.type=0,this.x=A,this.y=e}function qn(A,e,t){return new Zn(A.x+(e.x-A.x)*t,A.y+(e.y-A.y)*t)}var jn=(zn.prototype.subdivide=function(A,e){var t=qn(this.start,this.startControl,A),r=qn(this.startControl,this.endControl,A),B=qn(this.endControl,this.end,A),n=qn(t,r,A),r=qn(r,B,A),A=qn(n,r,A);return e?new zn(this.start,t,n,A):new zn(A,r,B,this.end)},zn.prototype.add=function(A,e){return new zn(this.start.add(A,e),this.startControl.add(A,e),this.endControl.add(A,e),this.end.add(A,e))},zn.prototype.reverse=function(){return new zn(this.end,this.endControl,this.startControl,this.start)},zn);function zn(A,e,t,r){this.type=1,this.start=A,this.startControl=e,this.endControl=t,this.end=r}function $n(A){return 1===A.type}var As,es=function(A){var e=A.styles,t=A.bounds,r=(C=Be(e.borderTopLeftRadius,t.width,t.height))[0],B=C[1],n=(u=Be(e.borderTopRightRadius,t.width,t.height))[0],s=u[1],o=(F=Be(e.borderBottomRightRadius,t.width,t.height))[0],i=F[1],Q=(h=Be(e.borderBottomLeftRadius,t.width,t.height))[0],c=h[1];(d=[]).push((r+n)/t.width),d.push((Q+o)/t.width),d.push((B+c)/t.height),d.push((s+i)/t.height),1<(f=Math.max.apply(Math,d))&&(r/=f,B/=f,n/=f,s/=f,o/=f,i/=f,Q/=f,c/=f);var a=t.width-n,g=t.height-i,w=t.width-o,U=t.height-c,l=e.borderTopWidth,C=e.borderRightWidth,u=e.borderBottomWidth,F=e.borderLeftWidth,h=Ue(e.paddingTop,A.bounds.width),d=Ue(e.paddingRight,A.bounds.width),f=Ue(e.paddingBottom,A.bounds.width),A=Ue(e.paddingLeft,A.bounds.width);this.topLeftBorderDoubleOuterBox=0<r||0<B?ss(t.left+F/3,t.top+l/3,r-F/3,B-l/3,As.TOP_LEFT):new Zn(t.left+F/3,t.top+l/3),this.topRightBorderDoubleOuterBox=0<r||0<B?ss(t.left+a,t.top+l/3,n-C/3,s-l/3,As.TOP_RIGHT):new Zn(t.left+t.width-C/3,t.top+l/3),this.bottomRightBorderDoubleOuterBox=0<o||0<i?ss(t.left+w,t.top+g,o-C/3,i-u/3,As.BOTTOM_RIGHT):new Zn(t.left+t.width-C/3,t.top+t.height-u/3),this.bottomLeftBorderDoubleOuterBox=0<Q||0<c?ss(t.left+F/3,t.top+U,Q-F/3,c-u/3,As.BOTTOM_LEFT):new Zn(t.left+F/3,t.top+t.height-u/3),this.topLeftBorderDoubleInnerBox=0<r||0<B?ss(t.left+2*F/3,t.top+2*l/3,r-2*F/3,B-2*l/3,As.TOP_LEFT):new Zn(t.left+2*F/3,t.top+2*l/3),this.topRightBorderDoubleInnerBox=0<r||0<B?ss(t.left+a,t.top+2*l/3,n-2*C/3,s-2*l/3,As.TOP_RIGHT):new Zn(t.left+t.width-2*C/3,t.top+2*l/3),this.bottomRightBorderDoubleInnerBox=0<o||0<i?ss(t.left+w,t.top+g,o-2*C/3,i-2*u/3,As.BOTTOM_RIGHT):new Zn(t.left+t.width-2*C/3,t.top+t.height-2*u/3),this.bottomLeftBorderDoubleInnerBox=0<Q||0<c?ss(t.left+2*F/3,t.top+U,Q-2*F/3,c-2*u/3,As.BOTTOM_LEFT):new Zn(t.left+2*F/3,t.top+t.height-2*u/3),this.topLeftBorderStroke=0<r||0<B?ss(t.left+F/2,t.top+l/2,r-F/2,B-l/2,As.TOP_LEFT):new Zn(t.left+F/2,t.top+l/2),this.topRightBorderStroke=0<r||0<B?ss(t.left+a,t.top+l/2,n-C/2,s-l/2,As.TOP_RIGHT):new Zn(t.left+t.width-C/2,t.top+l/2),this.bottomRightBorderStroke=0<o||0<i?ss(t.left+w,t.top+g,o-C/2,i-u/2,As.BOTTOM_RIGHT):new Zn(t.left+t.width-C/2,t.top+t.height-u/2),this.bottomLeftBorderStroke=0<Q||0<c?ss(t.left+F/2,t.top+U,Q-F/2,c-u/2,As.BOTTOM_LEFT):new Zn(t.left+F/2,t.top+t.height-u/2),this.topLeftBorderBox=0<r||0<B?ss(t.left,t.top,r,B,As.TOP_LEFT):new Zn(t.left,t.top),this.topRightBorderBox=0<n||0<s?ss(t.left+a,t.top,n,s,As.TOP_RIGHT):new Zn(t.left+t.width,t.top),this.bottomRightBorderBox=0<o||0<i?ss(t.left+w,t.top+g,o,i,As.BOTTOM_RIGHT):new Zn(t.left+t.width,t.top+t.height),this.bottomLeftBorderBox=0<Q||0<c?ss(t.left,t.top+U,Q,c,As.BOTTOM_LEFT):new Zn(t.left,t.top+t.height),this.topLeftPaddingBox=0<r||0<B?ss(t.left+F,t.top+l,Math.max(0,r-F),Math.max(0,B-l),As.TOP_LEFT):new Zn(t.left+F,t.top+l),this.topRightPaddingBox=0<n||0<s?ss(t.left+Math.min(a,t.width-C),t.top+l,a>t.width+C?0:Math.max(0,n-C),Math.max(0,s-l),As.TOP_RIGHT):new Zn(t.left+t.width-C,t.top+l),this.bottomRightPaddingBox=0<o||0<i?ss(t.left+Math.min(w,t.width-F),t.top+Math.min(g,t.height-u),Math.max(0,o-C),Math.max(0,i-u),As.BOTTOM_RIGHT):new Zn(t.left+t.width-C,t.top+t.height-u),this.bottomLeftPaddingBox=0<Q||0<c?ss(t.left+F,t.top+Math.min(U,t.height-u),Math.max(0,Q-F),Math.max(0,c-u),As.BOTTOM_LEFT):new Zn(t.left+F,t.top+t.height-u),this.topLeftContentBox=0<r||0<B?ss(t.left+F+A,t.top+l+h,Math.max(0,r-(F+A)),Math.max(0,B-(l+h)),As.TOP_LEFT):new Zn(t.left+F+A,t.top+l+h),this.topRightContentBox=0<n||0<s?ss(t.left+Math.min(a,t.width+F+A),t.top+l+h,a>t.width+F+A?0:n-F+A,s-(l+h),As.TOP_RIGHT):new Zn(t.left+t.width-(C+d),t.top+l+h),this.bottomRightContentBox=0<o||0<i?ss(t.left+Math.min(w,t.width-(F+A)),t.top+Math.min(g,t.height+l+h),Math.max(0,o-(C+d)),i-(u+f),As.BOTTOM_RIGHT):new Zn(t.left+t.width-(C+d),t.top+t.height-(u+f)),this.bottomLeftContentBox=0<Q||0<c?ss(t.left+F+A,t.top+U,Math.max(0,Q-(F+A)),c-(u+f),As.BOTTOM_LEFT):new Zn(t.left+F+A,t.top+t.height-(u+f))};(he=As=As||{})[he.TOP_LEFT=0]="TOP_LEFT",he[he.TOP_RIGHT=1]="TOP_RIGHT",he[he.BOTTOM_RIGHT=2]="BOTTOM_RIGHT",he[he.BOTTOM_LEFT=3]="BOTTOM_LEFT";function ts(A){return[A.topLeftBorderBox,A.topRightBorderBox,A.bottomRightBorderBox,A.bottomLeftBorderBox]}function rs(A){return[A.topLeftPaddingBox,A.topRightPaddingBox,A.bottomRightPaddingBox,A.bottomLeftPaddingBox]}function Bs(A){return 1===A.type}function ns(A,t){return A.length===t.length&&A.some(function(A,e){return A===t[e]})}var ss=function(A,e,t,r,B){var n=(Math.sqrt(2)-1)/3*4,s=t*n,o=r*n,i=A+t,Q=e+r;switch(B){case As.TOP_LEFT:return new jn(new Zn(A,Q),new Zn(A,Q-o),new Zn(i-s,e),new Zn(i,e));case As.TOP_RIGHT:return new jn(new Zn(A,e),new Zn(A+s,e),new Zn(i,Q-o),new Zn(i,Q));case As.BOTTOM_RIGHT:return new jn(new Zn(i,e),new Zn(i,e+o),new Zn(A+s,Q),new Zn(A,Q));default:As.BOTTOM_LEFT;return new jn(new Zn(i,Q),new Zn(i-s,Q),new Zn(A,e+o),new Zn(A,e))}},os=function(A,e,t){this.offsetX=A,this.offsetY=e,this.matrix=t,this.type=0,this.target=6},is=function(A,e){this.path=A,this.target=e,this.type=1},Qs=function(A){this.opacity=A,this.type=2,this.target=6},cs=function(A){this.element=A,this.inlineLevel=[],this.nonInlineLevel=[],this.negativeZIndex=[],this.zeroOrAutoZIndexOrTransformedOrOpacity=[],this.positiveZIndex=[],this.nonPositionedFloats=[],this.nonPositionedInlineLevel=[]},as=(gs.prototype.getEffects=function(e){for(var A=-1===[2,3].indexOf(this.container.styles.position),t=this.parent,r=this.effects.slice(0);t;){var B,n,s=t.effects.filter(function(A){return!Bs(A)});A||0!==t.container.styles.position||!t.parent?(r.unshift.apply(r,s),A=-1===[2,3].indexOf(t.container.styles.position),0!==t.container.styles.overflowX&&(B=ts(t.curves),n=rs(t.curves),ns(B,n)||r.unshift(new is(n,6)))):r.unshift.apply(r,s),t=t.parent}return r.filter(function(A){return Pt(A.target,e)})},gs);function gs(A,e){var t,r;this.container=A,this.parent=e,this.effects=[],this.curves=new es(this.container),this.container.styles.opacity<1&&this.effects.push(new Qs(this.container.styles.opacity)),null!==this.container.styles.transform&&(e=this.container.bounds.left+this.container.styles.transformOrigin[0].number,t=this.container.bounds.top+this.container.styles.transformOrigin[1].number,r=this.container.styles.transform,this.effects.push(new os(e,t,r))),0!==this.container.styles.overflowX&&(t=ts(this.curves),r=rs(this.curves),ns(t,r)?this.effects.push(new is(t,6)):(this.effects.push(new is(t,2)),this.effects.push(new is(r,4))))}function ws(A,e){switch(e){case 0:return Hs(A.topLeftBorderBox,A.topLeftPaddingBox,A.topRightBorderBox,A.topRightPaddingBox);case 1:return Hs(A.topRightBorderBox,A.topRightPaddingBox,A.bottomRightBorderBox,A.bottomRightPaddingBox);case 2:return Hs(A.bottomRightBorderBox,A.bottomRightPaddingBox,A.bottomLeftBorderBox,A.bottomLeftPaddingBox);default:return Hs(A.bottomLeftBorderBox,A.bottomLeftPaddingBox,A.topLeftBorderBox,A.topLeftPaddingBox)}}function Us(A){var e=A.bounds,A=A.styles;return e.add(A.borderLeftWidth,A.borderTopWidth,-(A.borderRightWidth+A.borderLeftWidth),-(A.borderTopWidth+A.borderBottomWidth))}function ls(A){var e=A.styles,t=A.bounds,r=Ue(e.paddingLeft,t.width),B=Ue(e.paddingRight,t.width),n=Ue(e.paddingTop,t.width),A=Ue(e.paddingBottom,t.width);return t.add(r+e.borderLeftWidth,n+e.borderTopWidth,-(e.borderRightWidth+e.borderLeftWidth+r+B),-(e.borderTopWidth+e.borderBottomWidth+n+A))}function Cs(A,e,t){var r=(B=Es(A.styles.backgroundOrigin,e),n=A,0===B?n.bounds:(2===B?ls:Us)(n)),B=(s=Es(A.styles.backgroundClip,e),o=A,0===s?o.bounds:(2===s?ls:Us)(o)),n=ps(Es(A.styles.backgroundSize,e),t,r),s=n[0],o=n[1],t=Be(Es(A.styles.backgroundPosition,e),r.width-s,r.height-o);return[Is(Es(A.styles.backgroundRepeat,e),t,n,r,B),Math.round(r.left+t[0]),Math.round(r.top+t[1]),s,o]}function us(A){return _A(A)&&A.value===Ve.AUTO}function Fs(A){return"number"==typeof A}var hs=function(Q,c,a,g){Q.container.elements.forEach(function(A){var e=Pt(A.flags,4),t=Pt(A.flags,2),r=new as(A,Q);Pt(A.styles.display,2048)&&g.push(r);var B,n,s,o,i=Pt(A.flags,8)?[]:g;e||t?(B=e||A.styles.isPositioned()?a:c,t=new cs(r),A.styles.isPositioned()||A.styles.opacity<1||A.styles.isTransformed()?(n=A.styles.zIndex.order)<0?(s=0,B.negativeZIndex.some(function(A,e){return n>A.element.container.styles.zIndex.order?(s=e,!1):0<s}),B.negativeZIndex.splice(s,0,t)):0<n?(o=0,B.positiveZIndex.some(function(A,e){return n>=A.element.container.styles.zIndex.order?(o=e+1,!1):0<o}),B.positiveZIndex.splice(o,0,t)):B.zeroOrAutoZIndexOrTransformedOrOpacity.push(t):(A.styles.isFloating()?B.nonPositionedFloats:B.nonPositionedInlineLevel).push(t),hs(r,t,e?t:a,i)):((A.styles.isInlineLevel()?c.inlineLevel:c.nonInlineLevel).push(r),hs(r,c,a,i)),Pt(A.flags,8)&&ds(A,i)})},ds=function(A,e){for(var t=A instanceof UB?A.start:1,r=A instanceof UB&&A.reversed,B=0;B<e.length;B++){var n=e[B];n.container instanceof aB&&"number"==typeof n.container.value&&0!==n.container.value&&(t=n.container.value),n.listValue=Fn(t,n.container.styles.listStyleType,!0),t+=r?-1:1}},fs=function(A,e){var t=[];return $n(A)?t.push(A.subdivide(.5,!1)):t.push(A),$n(e)?t.push(e.subdivide(.5,!0)):t.push(e),t},Hs=function(A,e,t,r){var B=[];return $n(A)?B.push(A.subdivide(.5,!1)):B.push(A),$n(t)?B.push(t.subdivide(.5,!0)):B.push(t),$n(r)?B.push(r.subdivide(.5,!0).reverse()):B.push(r),$n(e)?B.push(e.subdivide(.5,!1).reverse()):B.push(e),B},ps=function(A,e,t){var r=e[0],B=e[1],n=e[2],s=A[0],o=A[1];if(!s)return[0,0];if(te(s)&&o&&te(o))return[Ue(s,t.width),Ue(o,t.height)];var i=Fs(n);if(_A(s)&&(s.value===Ve.CONTAIN||s.value===Ve.COVER))return Fs(n)?t.width/t.height<n!=(s.value===Ve.COVER)?[t.width,t.width/n]:[t.height*n,t.height]:[t.width,t.height];var Q=Fs(r),e=Fs(B),A=Q||e;if(us(s)&&(!o||us(o)))return Q&&e?[r,B]:i||A?A&&i?[Q?r:B*n,e?B:r/n]:[Q?r:t.width,e?B:t.height]:[t.width,t.height];if(i){var c=0,a=0;return te(s)?c=Ue(s,t.width):te(o)&&(a=Ue(o,t.height)),us(s)?c=a*n:o&&!us(o)||(a=c/n),[c,a]}c=null,a=null;if(te(s)?c=Ue(s,t.width):o&&te(o)&&(a=Ue(o,t.height)),null!==(c=null!==(a=null!==c&&(!o||us(o))?Q&&e?c/r*B:t.height:a)&&us(s)?Q&&e?a/B*r:t.width:c)&&null!==a)return[c,a];throw new Error("Unable to calculate background-size for element")},Es=function(A,e){e=A[e];return void 0===e?A[0]:e},Is=function(A,e,t,r,B){var n=e[0],s=e[1],o=t[0],i=t[1];switch(A){case 2:return[new Zn(Math.round(r.left),Math.round(r.top+s)),new Zn(Math.round(r.left+r.width),Math.round(r.top+s)),new Zn(Math.round(r.left+r.width),Math.round(i+r.top+s)),new Zn(Math.round(r.left),Math.round(i+r.top+s))];case 3:return[new Zn(Math.round(r.left+n),Math.round(r.top)),new Zn(Math.round(r.left+n+o),Math.round(r.top)),new Zn(Math.round(r.left+n+o),Math.round(r.height+r.top)),new Zn(Math.round(r.left+n),Math.round(r.height+r.top))];case 1:return[new Zn(Math.round(r.left+n),Math.round(r.top+s)),new Zn(Math.round(r.left+n+o),Math.round(r.top+s)),new Zn(Math.round(r.left+n+o),Math.round(r.top+s+i)),new Zn(Math.round(r.left+n),Math.round(r.top+s+i))];default:return[new Zn(Math.round(B.left),Math.round(B.top)),new Zn(Math.round(B.left+B.width),Math.round(B.top)),new Zn(Math.round(B.left+B.width),Math.round(B.height+B.top)),new Zn(Math.round(B.left),Math.round(B.height+B.top))]}},ys="Hidden Text",Ks=(ms.prototype.parseMetrics=function(A,e){var t=this._document.createElement("div"),r=this._document.createElement("img"),B=this._document.createElement("span"),n=this._document.body;t.style.visibility="hidden",t.style.fontFamily=A,t.style.fontSize=e,t.style.margin="0",t.style.padding="0",t.style.whiteSpace="nowrap",n.appendChild(t),r.src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",r.width=1,r.height=1,r.style.margin="0",r.style.padding="0",r.style.verticalAlign="baseline",B.style.fontFamily=A,B.style.fontSize=e,B.style.margin="0",B.style.padding="0",B.appendChild(this._document.createTextNode(ys)),t.appendChild(B),t.appendChild(r);e=r.offsetTop-B.offsetTop+2;t.removeChild(B),t.appendChild(this._document.createTextNode(ys)),t.style.lineHeight="normal",r.style.verticalAlign="super";r=r.offsetTop-t.offsetTop+2;return n.removeChild(t),{baseline:e,middle:r}},ms.prototype.getMetrics=function(A,e){var t=A+" "+e;return void 0===this._data[t]&&(this._data[t]=this.parseMetrics(A,e)),this._data[t]},ms);function ms(A){this._data={},this._document=A}var Ls,he=function(A,e){this.context=A,this.options=e},bs=(A(Ds,Ls=he),Ds.prototype.applyEffects=function(A){for(var e=this;this._activeEffects.length;)this.popEffect();A.forEach(function(A){return e.applyEffect(A)})},Ds.prototype.applyEffect=function(A){this.ctx.save(),2===A.type&&(this.ctx.globalAlpha=A.opacity),0===A.type&&(this.ctx.translate(A.offsetX,A.offsetY),this.ctx.transform(A.matrix[0],A.matrix[1],A.matrix[2],A.matrix[3],A.matrix[4],A.matrix[5]),this.ctx.translate(-A.offsetX,-A.offsetY)),Bs(A)&&(this.path(A.path),this.ctx.clip()),this._activeEffects.push(A)},Ds.prototype.popEffect=function(){this._activeEffects.pop(),this.ctx.restore()},Ds.prototype.renderStack=function(e){return a(this,void 0,void 0,function(){return H(this,function(A){switch(A.label){case 0:return e.element.container.styles.isVisible()?[4,this.renderStackContent(e)]:[3,2];case 1:A.sent(),A.label=2;case 2:return[2]}})})},Ds.prototype.renderNode=function(e){return a(this,void 0,void 0,function(){return H(this,function(A){switch(A.label){case 0:return Pt(e.container.flags,16),e.container.styles.isVisible()?[4,this.renderNodeBackgroundAndBorders(e)]:[3,3];case 1:return A.sent(),[4,this.renderNodeContent(e)];case 2:A.sent(),A.label=3;case 3:return[2]}})})},Ds.prototype.renderTextWithLetterSpacing=function(t,A,r){var B=this;0===A?this.ctx.fillText(t.text,t.bounds.left,t.bounds.top+r):Zr(t.text).reduce(function(A,e){return B.ctx.fillText(e,A,t.bounds.top+r),A+B.ctx.measureText(e).width},t.bounds.left)},Ds.prototype.createFontStyle=function(A){var e=A.fontVariant.filter(function(A){return"normal"===A||"small-caps"===A}).join(""),t=Gs(A.fontFamily).join(", "),r=WA(A.fontSize)?""+A.fontSize.number+A.fontSize.unit:A.fontSize.number+"px";return[[A.fontStyle,e,A.fontWeight,r,t].join(" "),t,r]},Ds.prototype.renderTextNode=function(i,Q){return a(this,void 0,void 0,function(){var e,t,r,B,n,s,o=this;return H(this,function(A){return r=this.createFontStyle(Q),e=r[0],t=r[1],r=r[2],this.ctx.font=e,this.ctx.direction=1===Q.direction?"rtl":"ltr",this.ctx.textAlign="left",this.ctx.textBaseline="alphabetic",r=this.fontMetrics.getMetrics(t,r),B=r.baseline,n=r.middle,s=Q.paintOrder,i.textBounds.forEach(function(t){s.forEach(function(A){switch(A){case 0:o.ctx.fillStyle=ie(Q.color),o.renderTextWithLetterSpacing(t,Q.letterSpacing,B);var e=Q.textShadow;e.length&&t.text.trim().length&&(e.slice(0).reverse().forEach(function(A){o.ctx.shadowColor=ie(A.color),o.ctx.shadowOffsetX=A.offsetX.number*o.options.scale,o.ctx.shadowOffsetY=A.offsetY.number*o.options.scale,o.ctx.shadowBlur=A.blur.number,o.renderTextWithLetterSpacing(t,Q.letterSpacing,B)}),o.ctx.shadowColor="",o.ctx.shadowOffsetX=0,o.ctx.shadowOffsetY=0,o.ctx.shadowBlur=0),Q.textDecorationLine.length&&(o.ctx.fillStyle=ie(Q.textDecorationColor||Q.color),Q.textDecorationLine.forEach(function(A){switch(A){case 1:o.ctx.fillRect(t.bounds.left,Math.round(t.bounds.top+B),t.bounds.width,1);break;case 2:o.ctx.fillRect(t.bounds.left,Math.round(t.bounds.top),t.bounds.width,1);break;case 3:o.ctx.fillRect(t.bounds.left,Math.ceil(t.bounds.top+n),t.bounds.width,1)}}));break;case 1:Q.webkitTextStrokeWidth&&t.text.trim().length&&(o.ctx.strokeStyle=ie(Q.webkitTextStrokeColor),o.ctx.lineWidth=Q.webkitTextStrokeWidth,o.ctx.lineJoin=window.chrome?"miter":"round",o.ctx.strokeText(t.text,t.bounds.left,t.bounds.top+B)),o.ctx.strokeStyle="",o.ctx.lineWidth=0,o.ctx.lineJoin="miter"}})}),[2]})})},Ds.prototype.renderReplacedElement=function(A,e,t){var r;t&&0<A.intrinsicWidth&&0<A.intrinsicHeight&&(r=ls(A),e=rs(e),this.path(e),this.ctx.save(),this.ctx.clip(),this.ctx.drawImage(t,0,0,A.intrinsicWidth,A.intrinsicHeight,r.left,r.top,r.width,r.height),this.ctx.restore())},Ds.prototype.renderNodeContent=function(w){return a(this,void 0,void 0,function(){var e,t,r,B,n,s,o,i,Q,c,a,g;return H(this,function(A){switch(A.label){case 0:this.applyEffects(w.getEffects(4)),e=w.container,t=w.curves,r=e.styles,B=0,n=e.textNodes,A.label=1;case 1:return B<n.length?(s=n[B],[4,this.renderTextNode(s,r)]):[3,4];case 2:A.sent(),A.label=3;case 3:return B++,[3,1];case 4:if(!(e instanceof tB))return[3,8];A.label=5;case 5:return A.trys.push([5,7,,8]),[4,this.context.cache.match(e.src)];case 6:return Q=A.sent(),this.renderReplacedElement(e,t,Q),[3,8];case 7:return A.sent(),this.context.logger.error("Error loading image "+e.src),[3,8];case 8:if(e instanceof nB&&this.renderReplacedElement(e,t,e.canvas),!(e instanceof iB))return[3,12];A.label=9;case 9:return A.trys.push([9,11,,12]),[4,this.context.cache.match(e.svg)];case 10:return Q=A.sent(),this.renderReplacedElement(e,t,Q),[3,12];case 11:return A.sent(),this.context.logger.error("Error loading svg "+e.svg.substring(0,255)),[3,12];case 12:return e instanceof vB&&e.tree?[4,new Ds(this.context,{scale:this.options.scale,backgroundColor:e.backgroundColor,x:0,y:0,width:e.width,height:e.height}).render(e.tree)]:[3,14];case 13:s=A.sent(),e.width&&e.height&&this.ctx.drawImage(s,0,0,e.width,e.height,e.bounds.left,e.bounds.top,e.bounds.width,e.bounds.height),A.label=14;case 14:if(e instanceof pB&&(i=Math.min(e.bounds.width,e.bounds.height),e.type===hB?e.checked&&(this.ctx.save(),this.path([new Zn(e.bounds.left+.39363*i,e.bounds.top+.79*i),new Zn(e.bounds.left+.16*i,e.bounds.top+.5549*i),new Zn(e.bounds.left+.27347*i,e.bounds.top+.44071*i),new Zn(e.bounds.left+.39694*i,e.bounds.top+.5649*i),new Zn(e.bounds.left+.72983*i,e.bounds.top+.23*i),new Zn(e.bounds.left+.84*i,e.bounds.top+.34085*i),new Zn(e.bounds.left+.39363*i,e.bounds.top+.79*i)]),this.ctx.fillStyle=ie(HB),this.ctx.fill(),this.ctx.restore()):e.type===dB&&e.checked&&(this.ctx.save(),this.ctx.beginPath(),this.ctx.arc(e.bounds.left+i/2,e.bounds.top+i/2,i/4,0,2*Math.PI,!0),this.ctx.fillStyle=ie(HB),this.ctx.fill(),this.ctx.restore())),xs(e)&&e.value.length){switch(c=this.createFontStyle(r),a=c[0],i=c[1],c=this.fontMetrics.getMetrics(a,i).baseline,this.ctx.font=a,this.ctx.fillStyle=ie(r.color),this.ctx.textBaseline="alphabetic",this.ctx.textAlign=Ss(e.styles.textAlign),g=ls(e),o=0,e.styles.textAlign){case 1:o+=g.width/2;break;case 2:o+=g.width}i=g.add(o,0,0,-g.height/2+1),this.ctx.save(),this.path([new Zn(g.left,g.top),new Zn(g.left+g.width,g.top),new Zn(g.left+g.width,g.top+g.height),new Zn(g.left,g.top+g.height)]),this.ctx.clip(),this.renderTextWithLetterSpacing(new Jr(e.value,i),r.letterSpacing,c),this.ctx.restore(),this.ctx.textBaseline="alphabetic",this.ctx.textAlign="left"}if(!Pt(e.styles.display,2048))return[3,20];if(null===e.styles.listStyleImage)return[3,19];if(0!==(c=e.styles.listStyleImage).type)return[3,18];Q=void 0,c=c.url,A.label=15;case 15:return A.trys.push([15,17,,18]),[4,this.context.cache.match(c)];case 16:return Q=A.sent(),this.ctx.drawImage(Q,e.bounds.left-(Q.width+10),e.bounds.top),[3,18];case 17:return A.sent(),this.context.logger.error("Error loading list-style-image "+c),[3,18];case 18:return[3,20];case 19:w.listValue&&-1!==e.styles.listStyleType&&(a=this.createFontStyle(r)[0],this.ctx.font=a,this.ctx.fillStyle=ie(r.color),this.ctx.textBaseline="middle",this.ctx.textAlign="right",g=new d(e.bounds.left,e.bounds.top+Ue(e.styles.paddingTop,e.bounds.width),e.bounds.width,Ye(r.lineHeight,r.fontSize.number)/2+1),this.renderTextWithLetterSpacing(new Jr(w.listValue,g),r.letterSpacing,Ye(r.lineHeight,r.fontSize.number)/2+2),this.ctx.textBaseline="bottom",this.ctx.textAlign="left"),A.label=20;case 20:return[2]}})})},Ds.prototype.renderStackContent=function(C){return a(this,void 0,void 0,function(){var e,t,r,B,n,s,o,i,Q,c,a,g,w,U,l;return H(this,function(A){switch(A.label){case 0:return Pt(C.element.container.flags,16),[4,this.renderNodeBackgroundAndBorders(C.element)];case 1:A.sent(),e=0,t=C.negativeZIndex,A.label=2;case 2:return e<t.length?(l=t[e],[4,this.renderStack(l)]):[3,5];case 3:A.sent(),A.label=4;case 4:return e++,[3,2];case 5:return[4,this.renderNodeContent(C.element)];case 6:A.sent(),r=0,B=C.nonInlineLevel,A.label=7;case 7:return r<B.length?(l=B[r],[4,this.renderNode(l)]):[3,10];case 8:A.sent(),A.label=9;case 9:return r++,[3,7];case 10:n=0,s=C.nonPositionedFloats,A.label=11;case 11:return n<s.length?(l=s[n],[4,this.renderStack(l)]):[3,14];case 12:A.sent(),A.label=13;case 13:return n++,[3,11];case 14:o=0,i=C.nonPositionedInlineLevel,A.label=15;case 15:return o<i.length?(l=i[o],[4,this.renderStack(l)]):[3,18];case 16:A.sent(),A.label=17;case 17:return o++,[3,15];case 18:Q=0,c=C.inlineLevel,A.label=19;case 19:return Q<c.length?(l=c[Q],[4,this.renderNode(l)]):[3,22];case 20:A.sent(),A.label=21;case 21:return Q++,[3,19];case 22:a=0,g=C.zeroOrAutoZIndexOrTransformedOrOpacity,A.label=23;case 23:return a<g.length?(l=g[a],[4,this.renderStack(l)]):[3,26];case 24:A.sent(),A.label=25;case 25:return a++,[3,23];case 26:w=0,U=C.positiveZIndex,A.label=27;case 27:return w<U.length?(l=U[w],[4,this.renderStack(l)]):[3,30];case 28:A.sent(),A.label=29;case 29:return w++,[3,27];case 30:return[2]}})})},Ds.prototype.mask=function(A){this.ctx.beginPath(),this.ctx.moveTo(0,0),this.ctx.lineTo(this.canvas.width,0),this.ctx.lineTo(this.canvas.width,this.canvas.height),this.ctx.lineTo(0,this.canvas.height),this.ctx.lineTo(0,0),this.formatPath(A.slice(0).reverse()),this.ctx.closePath()},Ds.prototype.path=function(A){this.ctx.beginPath(),this.formatPath(A),this.ctx.closePath()},Ds.prototype.formatPath=function(A){var r=this;A.forEach(function(A,e){var t=$n(A)?A.start:A;0===e?r.ctx.moveTo(t.x,t.y):r.ctx.lineTo(t.x,t.y),$n(A)&&r.ctx.bezierCurveTo(A.startControl.x,A.startControl.y,A.endControl.x,A.endControl.y,A.end.x,A.end.y)})},Ds.prototype.renderRepeat=function(A,e,t,r){this.path(A),this.ctx.fillStyle=e,this.ctx.translate(t,r),this.ctx.fill(),this.ctx.translate(-t,-r)},Ds.prototype.resizeImage=function(A,e,t){if(A.width===e&&A.height===t)return A;var r=(null!==(r=this.canvas.ownerDocument)&&void 0!==r?r:document).createElement("canvas");return r.width=Math.max(1,e),r.height=Math.max(1,t),r.getContext("2d").drawImage(A,0,0,A.width,A.height,0,0,e,t),r},Ds.prototype.renderBackgroundImage=function(f){return a(this,void 0,void 0,function(){var h,e,d,t,r,B;return H(this,function(A){switch(A.label){case 0:h=f.styles.backgroundImage.length-1,e=function(e){var t,r,B,n,s,o,i,Q,c,a,g,w,U,l,C,u,F;return H(this,function(A){switch(A.label){case 0:if(0!==e.type)return[3,5];t=void 0,r=e.url,A.label=1;case 1:return A.trys.push([1,3,,4]),[4,d.context.cache.match(r)];case 2:return t=A.sent(),[3,4];case 3:return A.sent(),d.context.logger.error("Error loading background-image "+r),[3,4];case 4:return t&&(B=Cs(f,h,[t.width,t.height,t.width/t.height]),o=B[0],g=B[1],w=B[2],c=B[3],a=B[4],s=d.ctx.createPattern(d.resizeImage(t,c,a),"repeat"),d.renderRepeat(o,s,g,w)),[3,6];case 5:1===e.type?(F=Cs(f,h,[null,null,null]),o=F[0],g=F[1],w=F[2],c=F[3],a=F[4],C=Ee(e.angle,c,a),l=C[0],B=C[1],i=C[2],u=C[3],Q=C[4],(F=document.createElement("canvas")).width=c,F.height=a,C=F.getContext("2d"),n=C.createLinearGradient(B,u,i,Q),pe(e.stops,l).forEach(function(A){return n.addColorStop(A.stop,ie(A.color))}),C.fillStyle=n,C.fillRect(0,0,c,a),0<c&&0<a&&(s=d.ctx.createPattern(F,"repeat"),d.renderRepeat(o,s,g,w))):2===e.type&&(u=Cs(f,h,[null,null,null]),o=u[0],i=u[1],Q=u[2],c=u[3],a=u[4],l=0===e.position.length?[ge]:e.position,g=Ue(l[0],c),w=Ue(l[l.length-1],a),C=function(A,e,t,r,B){var n,s,o,i,Q=0,c=0;switch(A.size){case 0:0===A.shape?Q=c=Math.min(Math.abs(e),Math.abs(e-r),Math.abs(t),Math.abs(t-B)):1===A.shape&&(Q=Math.min(Math.abs(e),Math.abs(e-r)),c=Math.min(Math.abs(t),Math.abs(t-B)));break;case 2:0===A.shape?Q=c=Math.min(Ie(e,t),Ie(e,t-B),Ie(e-r,t),Ie(e-r,t-B)):1===A.shape&&(n=Math.min(Math.abs(t),Math.abs(t-B))/Math.min(Math.abs(e),Math.abs(e-r)),o=(s=ye(r,B,e,t,!0))[0],i=s[1],c=n*(Q=Ie(o-e,(i-t)/n)));break;case 1:0===A.shape?Q=c=Math.max(Math.abs(e),Math.abs(e-r),Math.abs(t),Math.abs(t-B)):1===A.shape&&(Q=Math.max(Math.abs(e),Math.abs(e-r)),c=Math.max(Math.abs(t),Math.abs(t-B)));break;case 3:0===A.shape?Q=c=Math.max(Ie(e,t),Ie(e,t-B),Ie(e-r,t),Ie(e-r,t-B)):1===A.shape&&(n=Math.max(Math.abs(t),Math.abs(t-B))/Math.max(Math.abs(e),Math.abs(e-r)),o=(s=ye(r,B,e,t,!1))[0],i=s[1],c=n*(Q=Ie(o-e,(i-t)/n)))}return Array.isArray(A.size)&&(Q=Ue(A.size[0],r),c=2===A.size.length?Ue(A.size[1],B):Q),[Q,c]}(e,g,w,c,a),F=C[0],u=C[1],0<F&&0<u&&(U=d.ctx.createRadialGradient(i+g,Q+w,0,i+g,Q+w,F),pe(e.stops,2*F).forEach(function(A){return U.addColorStop(A.stop,ie(A.color))}),d.path(o),d.ctx.fillStyle=U,F!==u?(l=f.bounds.left+.5*f.bounds.width,C=f.bounds.top+.5*f.bounds.height,F=1/(u=u/F),d.ctx.save(),d.ctx.translate(l,C),d.ctx.transform(1,0,0,u,0,0),d.ctx.translate(-l,-C),d.ctx.fillRect(i,F*(Q-C)+C,c,a*F),d.ctx.restore()):d.ctx.fill())),A.label=6;case 6:return h--,[2]}})},d=this,t=0,r=f.styles.backgroundImage.slice(0).reverse(),A.label=1;case 1:return t<r.length?(B=r[t],[5,e(B)]):[3,4];case 2:A.sent(),A.label=3;case 3:return t++,[3,1];case 4:return[2]}})})},Ds.prototype.renderSolidBorder=function(e,t,r){return a(this,void 0,void 0,function(){return H(this,function(A){return this.path(ws(r,t)),this.ctx.fillStyle=ie(e),this.ctx.fill(),[2]})})},Ds.prototype.renderDoubleBorder=function(t,r,B,n){return a(this,void 0,void 0,function(){var e;return H(this,function(A){switch(A.label){case 0:return r<3?[4,this.renderSolidBorder(t,B,n)]:[3,2];case 1:return A.sent(),[2];case 2:return e=function(A,e){switch(e){case 0:return Hs(A.topLeftBorderBox,A.topLeftBorderDoubleOuterBox,A.topRightBorderBox,A.topRightBorderDoubleOuterBox);case 1:return Hs(A.topRightBorderBox,A.topRightBorderDoubleOuterBox,A.bottomRightBorderBox,A.bottomRightBorderDoubleOuterBox);case 2:return Hs(A.bottomRightBorderBox,A.bottomRightBorderDoubleOuterBox,A.bottomLeftBorderBox,A.bottomLeftBorderDoubleOuterBox);default:return Hs(A.bottomLeftBorderBox,A.bottomLeftBorderDoubleOuterBox,A.topLeftBorderBox,A.topLeftBorderDoubleOuterBox)}}(n,B),this.path(e),this.ctx.fillStyle=ie(t),this.ctx.fill(),e=function(A,e){switch(e){case 0:return Hs(A.topLeftBorderDoubleInnerBox,A.topLeftPaddingBox,A.topRightBorderDoubleInnerBox,A.topRightPaddingBox);case 1:return Hs(A.topRightBorderDoubleInnerBox,A.topRightPaddingBox,A.bottomRightBorderDoubleInnerBox,A.bottomRightPaddingBox);case 2:return Hs(A.bottomRightBorderDoubleInnerBox,A.bottomRightPaddingBox,A.bottomLeftBorderDoubleInnerBox,A.bottomLeftPaddingBox);default:return Hs(A.bottomLeftBorderDoubleInnerBox,A.bottomLeftPaddingBox,A.topLeftBorderDoubleInnerBox,A.topLeftPaddingBox)}}(n,B),this.path(e),this.ctx.fill(),[2]}})})},Ds.prototype.renderNodeBackgroundAndBorders=function(c){return a(this,void 0,void 0,function(){var e,t,r,B,n,s,o,i,Q=this;return H(this,function(A){switch(A.label){case 0:return(this.applyEffects(c.getEffects(2)),e=c.container.styles,t=!oe(e.backgroundColor)||e.backgroundImage.length,r=[{style:e.borderTopStyle,color:e.borderTopColor,width:e.borderTopWidth},{style:e.borderRightStyle,color:e.borderRightColor,width:e.borderRightWidth},{style:e.borderBottomStyle,color:e.borderBottomColor,width:e.borderBottomWidth},{style:e.borderLeftStyle,color:e.borderLeftColor,width:e.borderLeftWidth}],B=Ms(Es(e.backgroundClip,0),c.curves),t||e.boxShadow.length)?(this.ctx.save(),this.path(B),this.ctx.clip(),oe(e.backgroundColor)||(this.ctx.fillStyle=ie(e.backgroundColor),this.ctx.fill()),[4,this.renderBackgroundImage(c.container)]):[3,2];case 1:A.sent(),this.ctx.restore(),e.boxShadow.slice(0).reverse().forEach(function(A){Q.ctx.save();var t,r,B,n,e=ts(c.curves),s=A.inset?0:1e4,o=(t=-s+(A.inset?1:-1)*A.spread.number,r=(A.inset?1:-1)*A.spread.number,B=A.spread.number*(A.inset?-2:2),n=A.spread.number*(A.inset?-2:2),e.map(function(A,e){switch(e){case 0:return A.add(t,r);case 1:return A.add(t+B,r);case 2:return A.add(t+B,r+n);case 3:return A.add(t,r+n)}return A}));A.inset?(Q.path(e),Q.ctx.clip(),Q.mask(o)):(Q.mask(e),Q.ctx.clip(),Q.path(o)),Q.ctx.shadowOffsetX=A.offsetX.number+s,Q.ctx.shadowOffsetY=A.offsetY.number,Q.ctx.shadowColor=ie(A.color),Q.ctx.shadowBlur=A.blur.number,Q.ctx.fillStyle=A.inset?ie(A.color):"rgba(0,0,0,1)",Q.ctx.fill(),Q.ctx.restore()}),A.label=2;case 2:s=n=0,o=r,A.label=3;case 3:return s<o.length?0!==(i=o[s]).style&&!oe(i.color)&&0<i.width?2!==i.style?[3,5]:[4,this.renderDashedDottedBorder(i.color,i.width,n,c.curves,2)]:[3,11]:[3,13];case 4:return A.sent(),[3,11];case 5:return 3!==i.style?[3,7]:[4,this.renderDashedDottedBorder(i.color,i.width,n,c.curves,3)];case 6:return A.sent(),[3,11];case 7:return 4!==i.style?[3,9]:[4,this.renderDoubleBorder(i.color,i.width,n,c.curves)];case 8:return A.sent(),[3,11];case 9:return[4,this.renderSolidBorder(i.color,n,c.curves)];case 10:A.sent(),A.label=11;case 11:n++,A.label=12;case 12:return s++,[3,3];case 13:return[2]}})})},Ds.prototype.renderDashedDottedBorder=function(g,w,U,l,C){return a(this,void 0,void 0,function(){var e,t,r,B,n,s,o,i,Q,c,a;return H(this,function(A){return this.ctx.save(),Q=function(A,e){switch(e){case 0:return fs(A.topLeftBorderStroke,A.topRightBorderStroke);case 1:return fs(A.topRightBorderStroke,A.bottomRightBorderStroke);case 2:return fs(A.bottomRightBorderStroke,A.bottomLeftBorderStroke);default:return fs(A.bottomLeftBorderStroke,A.topLeftBorderStroke)}}(l,U),e=ws(l,U),2===C&&(this.path(e),this.ctx.clip()),s=$n(e[0])?(t=e[0].start.x,e[0].start.y):(t=e[0].x,e[0].y),o=$n(e[1])?(r=e[1].end.x,e[1].end.y):(r=e[1].x,e[1].y),B=0===U||2===U?Math.abs(t-r):Math.abs(s-o),this.ctx.beginPath(),3===C?this.formatPath(Q):this.formatPath(e.slice(0,2)),n=w<3?3*w:2*w,s=w<3?2*w:w,3===C&&(s=n=w),o=!0,B<=2*n?o=!1:B<=2*n+s?(n*=i=B/(2*n+s),s*=i):(Q=Math.floor((B+s)/(n+s)),i=(B-Q*n)/(Q-1),s=(Q=(B-(Q+1)*n)/Q)<=0||Math.abs(s-i)<Math.abs(s-Q)?i:Q),o&&(3===C?this.ctx.setLineDash([0,n+s]):this.ctx.setLineDash([n,s])),3===C?(this.ctx.lineCap="round",this.ctx.lineWidth=w):this.ctx.lineWidth=2*w+1.1,this.ctx.strokeStyle=ie(g),this.ctx.stroke(),this.ctx.setLineDash([]),2===C&&($n(e[0])&&(c=e[3],a=e[0],this.ctx.beginPath(),this.formatPath([new Zn(c.end.x,c.end.y),new Zn(a.start.x,a.start.y)]),this.ctx.stroke()),$n(e[1])&&(c=e[1],a=e[2],this.ctx.beginPath(),this.formatPath([new Zn(c.end.x,c.end.y),new Zn(a.start.x,a.start.y)]),this.ctx.stroke())),this.ctx.restore(),[2]})})},Ds.prototype.render=function(B){return a(this,void 0,void 0,function(){return H(this,function(A){switch(A.label){case 0:return this.options.backgroundColor&&(this.ctx.fillStyle=ie(this.options.backgroundColor),this.ctx.fillRect(this.options.x,this.options.y,this.options.width,this.options.height)),t=new as(e=B,null),r=new cs(t),hs(t,r,r,e=[]),ds(t.container,e),[4,this.renderStack(r)];case 1:return A.sent(),this.applyEffects([]),[2,this.canvas]}var e,t,r})})},Ds);function Ds(A,e){A=Ls.call(this,A,e)||this;return A._activeEffects=[],A.canvas=e.canvas||document.createElement("canvas"),A.ctx=A.canvas.getContext("2d"),e.canvas||(A.canvas.width=Math.floor(e.width*e.scale),A.canvas.height=Math.floor(e.height*e.scale),A.canvas.style.width=e.width+"px",A.canvas.style.height=e.height+"px"),A.fontMetrics=new Ks(document),A.ctx.scale(A.options.scale,A.options.scale),A.ctx.translate(-e.x,-e.y),A.ctx.textBaseline="bottom",A._activeEffects=[],A.context.logger.debug("Canvas renderer initialized ("+e.width+"x"+e.height+") with scale "+e.scale),A}var vs,xs=function(A){return A instanceof LB||(A instanceof yB||A instanceof pB&&A.type!==dB&&A.type!==hB)},Ms=function(A,e){switch(A){case 0:return ts(e);case 2:return[e.topLeftContentBox,e.topRightContentBox,e.bottomRightContentBox,e.bottomLeftContentBox];default:return rs(e)}},Ss=function(A){switch(A){case 1:return"center";case 2:return"right";default:return"left"}},Ts=["-apple-system","system-ui"],Gs=function(A){return/iPhone OS 15_(0|1)/.test(window.navigator.userAgent)?A.filter(function(A){return-1===Ts.indexOf(A)}):A},Os=(A(Vs,vs=he),Vs.prototype.render=function(t){return a(this,void 0,void 0,function(){var e;return H(this,function(A){switch(A.label){case 0:return e=Nr(this.options.width*this.options.scale,this.options.height*this.options.scale,this.options.scale,this.options.scale,t),[4,ks(e)];case 1:return e=A.sent(),this.options.backgroundColor&&(this.ctx.fillStyle=ie(this.options.backgroundColor),this.ctx.fillRect(0,0,this.options.width*this.options.scale,this.options.height*this.options.scale)),this.ctx.drawImage(e,-this.options.x*this.options.scale,-this.options.y*this.options.scale),[2,this.canvas]}})})},Vs);function Vs(A,e){A=vs.call(this,A,e)||this;return A.canvas=e.canvas||document.createElement("canvas"),A.ctx=A.canvas.getContext("2d"),A.options=e,A.canvas.width=Math.floor(e.width*e.scale),A.canvas.height=Math.floor(e.height*e.scale),A.canvas.style.width=e.width+"px",A.canvas.style.height=e.height+"px",A.ctx.scale(A.options.scale,A.options.scale),A.ctx.translate(-e.x,-e.y),A.context.logger.debug("EXPERIMENTAL ForeignObject renderer initialized ("+e.width+"x"+e.height+" at "+e.x+","+e.y+") with scale "+e.scale),A}var ks=function(r){return new Promise(function(A,e){var t=new Image;t.onload=function(){A(t)},t.onerror=e,t.src="data:image/svg+xml;charset=utf-8,"+encodeURIComponent((new XMLSerializer).serializeToString(r))})},Rs=(Ns.prototype.debug=function(){for(var A=[],e=0;e<arguments.length;e++)A[e]=arguments[e];this.enabled&&("undefined"!=typeof window&&window.console&&"function"==typeof console.debug?console.debug.apply(console,t([this.id,this.getTime()+"ms"],A)):this.info.apply(this,A))},Ns.prototype.getTime=function(){return Date.now()-this.start},Ns.prototype.info=function(){for(var A=[],e=0;e<arguments.length;e++)A[e]=arguments[e];this.enabled&&"undefined"!=typeof window&&window.console&&"function"==typeof console.info&&console.info.apply(console,t([this.id,this.getTime()+"ms"],A))},Ns.prototype.warn=function(){for(var A=[],e=0;e<arguments.length;e++)A[e]=arguments[e];this.enabled&&("undefined"!=typeof window&&window.console&&"function"==typeof console.warn?console.warn.apply(console,t([this.id,this.getTime()+"ms"],A)):this.info.apply(this,A))},Ns.prototype.error=function(){for(var A=[],e=0;e<arguments.length;e++)A[e]=arguments[e];this.enabled&&("undefined"!=typeof window&&window.console&&"function"==typeof console.error?console.error.apply(console,t([this.id,this.getTime()+"ms"],A)):this.info.apply(this,A))},Ns.instances={},Ns);function Ns(A){var e=A.id,A=A.enabled;this.id=e,this.enabled=A,this.start=Date.now()}var Ps=(Xs.instanceCount=1,Xs);function Xs(A,e){this.windowBounds=e,this.instanceName="#"+Xs.instanceCount++,this.logger=new Rs({id:this.instanceName,enabled:A.logging}),this.cache=null!==(e=A.cache)&&void 0!==e?e:new On(this,A)}"undefined"!=typeof window&&Tn.setContext(window);var Js=function(u,F){return a(void 0,void 0,void 0,function(){var e,t,r,B,n,s,o,i,Q,c,a,g,w,U,l,C;return H(this,function(A){switch(A.label){case 0:if(!u||"object"!=typeof u)return[2,Promise.reject("Invalid element provided as first argument")];if(!(e=u.ownerDocument))throw new Error("Element is not attached to a Document");if(!(t=e.defaultView))throw new Error("Document is not attached to a Window");return w={allowTaint:null!==(U=F.allowTaint)&&void 0!==U&&U,imageTimeout:null!==(c=F.imageTimeout)&&void 0!==c?c:15e3,proxy:F.proxy,useCORS:null!==(a=F.useCORS)&&void 0!==a&&a},U=h({logging:null===(g=F.logging)||void 0===g||g,cache:F.cache},w),c={windowWidth:null!==(c=F.windowWidth)&&void 0!==c?c:t.innerWidth,windowHeight:null!==(a=F.windowHeight)&&void 0!==a?a:t.innerHeight,scrollX:null!==(g=F.scrollX)&&void 0!==g?g:t.pageXOffset,scrollY:null!==(w=F.scrollY)&&void 0!==w?w:t.pageYOffset},a=new d(c.scrollX,c.scrollY,c.windowWidth,c.windowHeight),g=new Ps(U,a),c=null!==(w=F.foreignObjectRendering)&&void 0!==w&&w,w={allowTaint:null!==(U=F.allowTaint)&&void 0!==U&&U,onclone:F.onclone,ignoreElements:F.ignoreElements,inlineImages:c,copyStyles:c},g.logger.debug("Starting document clone with size "+a.width+"x"+a.height+" scrolled to "+-a.left+","+-a.top),U=new dn(g,u,w),(w=U.clonedReferenceElement)?[4,U.toIFrame(e,a)]:[2,Promise.reject("Unable to find element in cloned iframe")];case 1:return(r=A.sent(),l=jB(w)||"HTML"===w.tagName?function(A){var e=A.body,t=A.documentElement;if(!e||!t)throw new Error("Unable to get document size");A=Math.max(Math.max(e.scrollWidth,t.scrollWidth),Math.max(e.offsetWidth,t.offsetWidth),Math.max(e.clientWidth,t.clientWidth)),t=Math.max(Math.max(e.scrollHeight,t.scrollHeight),Math.max(e.offsetHeight,t.offsetHeight),Math.max(e.clientHeight,t.clientHeight));return new d(0,0,A,t)}(w.ownerDocument):f(g,w),B=l.width,n=l.height,s=l.left,o=l.top,i=Ys(g,w,F.backgroundColor),l={canvas:F.canvas,backgroundColor:i,scale:null!==(l=null!==(l=F.scale)&&void 0!==l?l:t.devicePixelRatio)&&void 0!==l?l:1,x:(null!==(l=F.x)&&void 0!==l?l:0)+s,y:(null!==(l=F.y)&&void 0!==l?l:0)+o,width:null!==(l=F.width)&&void 0!==l?l:Math.ceil(B),height:null!==(l=F.height)&&void 0!==l?l:Math.ceil(n)},c)?(g.logger.debug("Document cloned, using foreign object rendering"),[4,new Os(g,l).render(w)]):[3,3];case 2:return Q=A.sent(),[3,5];case 3:return g.logger.debug("Document cloned, element located at "+s+","+o+" with size "+B+"x"+n+" using computed rendering"),g.logger.debug("Starting DOM parsing"),C=kB(g,w),i===C.styles.backgroundColor&&(C.styles.backgroundColor=Le.TRANSPARENT),g.logger.debug("Starting renderer for element at "+l.x+","+l.y+" with size "+l.width+"x"+l.height),[4,new bs(g,l).render(C)];case 4:Q=A.sent(),A.label=5;case 5:return null!==(C=F.removeContainer)&&void 0!==C&&!C||dn.destroy(r)||g.logger.error("Cannot detach cloned iframe as it is not in the DOM anymore"),g.logger.debug("Finished rendering"),[2,Q]}})})},Ys=function(A,e,t){var r=e.ownerDocument,B=r.documentElement?fe(A,getComputedStyle(r.documentElement).backgroundColor):Le.TRANSPARENT,n=r.body?fe(A,getComputedStyle(r.body).backgroundColor):Le.TRANSPARENT,t="string"==typeof t?fe(A,t):null===t?Le.TRANSPARENT:4294967295;return e===r.documentElement?oe(B)?oe(n)?t:n:B:t};return function(A,e){return Js(A,e=void 0===e?{}:e)}});
\ No newline at end of file
diff --git a/html/merfolk/index.html b/html/merfolk/index.html
new file mode 100644
index 0000000..4d30da7
--- /dev/null
+++ b/html/merfolk/index.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>Merfolk Mermaid Diagram Viewer</title>
+    <script src="mermaid.min.js"></script>
+    <link rel="stylesheet" href="styles.css">
+</head>
+<body>
+    <div class="container">
+        <div class="editor-section">
+            <textarea id="mermaid-input" placeholder="Enter Mermaid markup here..."></textarea>
+            <div id="error-message" class="error-message"></div>
+        </div>
+        <div class="preview-section">
+            <div class="button-group">
+                <button id="export-btn">Export as PNG</button>
+                <button id="export-svg-btn">Export as SVG</button>
+                <button id="reset-btn">Reset View</button>
+            </div>
+            <div id="mermaid-preview"></div>
+        </div>
+    </div>
+    <script src="html2canvas.min.js"></script>
+    <script src="panzoom.min.js"></script>
+    <script src="app.js"></script>
+</body>
+</html>
diff --git a/html/merfolk/mermaid.min.js b/html/merfolk/mermaid.min.js
new file mode 100644
index 0000000..6e12566
--- /dev/null
+++ b/html/merfolk/mermaid.min.js
@@ -0,0 +1,2607 @@
+"use strict";var __esbuild_esm_mermaid=(()=>{var B2e=Object.create;var by=Object.defineProperty;var F2e=Object.getOwnPropertyDescriptor;var $2e=Object.getOwnPropertyNames;var z2e=Object.getPrototypeOf,G2e=Object.prototype.hasOwnProperty;var o=(t,e)=>by(t,"name",{value:e,configurable:!0});var N=(t,e)=>()=>(t&&(e=t(t=0)),e);var Mi=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),hr=(t,e)=>{for(var r in e)by(t,r,{get:e[r],enumerable:!0})},L4=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of $2e(e))!G2e.call(t,i)&&i!==r&&by(t,i,{get:()=>e[i],enumerable:!(n=F2e(e,i))||n.enumerable});return t},Sr=(t,e,r)=>(L4(t,e,"default"),r&&L4(r,e,"default")),Sa=(t,e,r)=>(r=t!=null?B2e(z2e(t)):{},L4(e||!t||!t.__esModule?by(r,"default",{value:t,enumerable:!0}):r,t)),V2e=t=>L4(by({},"__esModule",{value:!0}),t);var R4=Mi((EC,SC)=>{"use strict";(function(t,e){typeof EC=="object"&&typeof SC<"u"?SC.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs=e()})(EC,function(){"use strict";var t=1e3,e=6e4,r=36e5,n="millisecond",i="second",a="minute",s="hour",l="day",u="week",h="month",f="quarter",d="year",p="date",m="Invalid Date",g=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,y=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,v={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:o(function(k){var L=["th","st","nd","rd"],R=k%100;return"["+k+(L[(R-20)%10]||L[R]||L[0])+"]"},"ordinal")},x=o(function(k,L,R){var O=String(k);return!O||O.length>=L?k:""+Array(L+1-O.length).join(R)+k},"m"),b={s:x,z:o(function(k){var L=-k.utcOffset(),R=Math.abs(L),O=Math.floor(R/60),M=R%60;return(L<=0?"+":"-")+x(O,2,"0")+":"+x(M,2,"0")},"z"),m:o(function k(L,R){if(L.date()<R.date())return-k(R,L);var O=12*(R.year()-L.year())+(R.month()-L.month()),M=L.clone().add(O,h),B=R-M<0,F=L.clone().add(O+(B?-1:1),h);return+(-(O+(R-M)/(B?M-F:F-M))||0)},"t"),a:o(function(k){return k<0?Math.ceil(k)||0:Math.floor(k)},"a"),p:o(function(k){return{M:h,y:d,w:u,d:l,D:p,h:s,m:a,s:i,ms:n,Q:f}[k]||String(k||"").toLowerCase().replace(/s$/,"")},"p"),u:o(function(k){return k===void 0},"u")},w="en",C={};C[w]=v;var T="$isDayjsObject",E=o(function(k){return k instanceof I||!(!k||!k[T])},"S"),A=o(function k(L,R,O){var M;if(!L)return w;if(typeof L=="string"){var B=L.toLowerCase();C[B]&&(M=B),R&&(C[B]=R,M=B);var F=L.split("-");if(!M&&F.length>1)return k(F[0])}else{var P=L.name;C[P]=L,M=P}return!O&&M&&(w=M),M||!O&&w},"t"),S=o(function(k,L){if(E(k))return k.clone();var R=typeof L=="object"?L:{};return R.date=k,R.args=arguments,new I(R)},"O"),_=b;_.l=A,_.i=E,_.w=function(k,L){return S(k,{locale:L.$L,utc:L.$u,x:L.$x,$offset:L.$offset})};var I=function(){function k(R){this.$L=A(R.locale,null,!0),this.parse(R),this.$x=this.$x||R.x||{},this[T]=!0}o(k,"M");var L=k.prototype;return L.parse=function(R){this.$d=function(O){var M=O.date,B=O.utc;if(M===null)return new Date(NaN);if(_.u(M))return new Date;if(M instanceof Date)return new Date(M);if(typeof M=="string"&&!/Z$/i.test(M)){var F=M.match(g);if(F){var P=F[2]-1||0,z=(F[7]||"0").substring(0,3);return B?new Date(Date.UTC(F[1],P,F[3]||1,F[4]||0,F[5]||0,F[6]||0,z)):new Date(F[1],P,F[3]||1,F[4]||0,F[5]||0,F[6]||0,z)}}return new Date(M)}(R),this.init()},L.init=function(){var R=this.$d;this.$y=R.getFullYear(),this.$M=R.getMonth(),this.$D=R.getDate(),this.$W=R.getDay(),this.$H=R.getHours(),this.$m=R.getMinutes(),this.$s=R.getSeconds(),this.$ms=R.getMilliseconds()},L.$utils=function(){return _},L.isValid=function(){return this.$d.toString()!==m},L.isSame=function(R,O){var M=S(R);return this.startOf(O)<=M&&M<=this.endOf(O)},L.isAfter=function(R,O){return S(R)<this.startOf(O)},L.isBefore=function(R,O){return this.endOf(O)<S(R)},L.$g=function(R,O,M){return _.u(R)?this[O]:this.set(M,R)},L.unix=function(){return Math.floor(this.valueOf()/1e3)},L.valueOf=function(){return this.$d.getTime()},L.startOf=function(R,O){var M=this,B=!!_.u(O)||O,F=_.p(R),P=o(function(le,he){var K=_.w(M.$u?Date.UTC(M.$y,he,le):new Date(M.$y,he,le),M);return B?K:K.endOf(l)},"l"),z=o(function(le,he){return _.w(M.toDate()[le].apply(M.toDate("s"),(B?[0,0,0,0]:[23,59,59,999]).slice(he)),M)},"$"),$=this.$W,H=this.$M,Q=this.$D,j="set"+(this.$u?"UTC":"");switch(F){case d:return B?P(1,0):P(31,11);case h:return B?P(1,H):P(0,H+1);case u:var ie=this.$locale().weekStart||0,ne=($<ie?$+7:$)-ie;return P(B?Q-ne:Q+(6-ne),H);case l:case p:return z(j+"Hours",0);case s:return z(j+"Minutes",1);case a:return z(j+"Seconds",2);case i:return z(j+"Milliseconds",3);default:return this.clone()}},L.endOf=function(R){return this.startOf(R,!1)},L.$set=function(R,O){var M,B=_.p(R),F="set"+(this.$u?"UTC":""),P=(M={},M[l]=F+"Date",M[p]=F+"Date",M[h]=F+"Month",M[d]=F+"FullYear",M[s]=F+"Hours",M[a]=F+"Minutes",M[i]=F+"Seconds",M[n]=F+"Milliseconds",M)[B],z=B===l?this.$D+(O-this.$W):O;if(B===h||B===d){var $=this.clone().set(p,1);$.$d[P](z),$.init(),this.$d=$.set(p,Math.min(this.$D,$.daysInMonth())).$d}else P&&this.$d[P](z);return this.init(),this},L.set=function(R,O){return this.clone().$set(R,O)},L.get=function(R){return this[_.p(R)]()},L.add=function(R,O){var M,B=this;R=Number(R);var F=_.p(O),P=o(function(H){var Q=S(B);return _.w(Q.date(Q.date()+Math.round(H*R)),B)},"y");if(F===h)return this.set(h,this.$M+R);if(F===d)return this.set(d,this.$y+R);if(F===l)return P(1);if(F===u)return P(7);var z=(M={},M[a]=e,M[s]=r,M[i]=t,M)[F]||1,$=this.$d.getTime()+R*z;return _.w($,this)},L.subtract=function(R,O){return this.add(-1*R,O)},L.format=function(R){var O=this,M=this.$locale();if(!this.isValid())return M.invalidDate||m;var B=R||"YYYY-MM-DDTHH:mm:ssZ",F=_.z(this),P=this.$H,z=this.$m,$=this.$M,H=M.weekdays,Q=M.months,j=M.meridiem,ie=o(function(he,K,X,te){return he&&(he[K]||he(O,B))||X[K].slice(0,te)},"h"),ne=o(function(he){return _.s(P%12||12,he,"0")},"d"),le=j||function(he,K,X){var te=he<12?"AM":"PM";return X?te.toLowerCase():te};return B.replace(y,function(he,K){return K||function(X){switch(X){case"YY":return String(O.$y).slice(-2);case"YYYY":return _.s(O.$y,4,"0");case"M":return $+1;case"MM":return _.s($+1,2,"0");case"MMM":return ie(M.monthsShort,$,Q,3);case"MMMM":return ie(Q,$);case"D":return O.$D;case"DD":return _.s(O.$D,2,"0");case"d":return String(O.$W);case"dd":return ie(M.weekdaysMin,O.$W,H,2);case"ddd":return ie(M.weekdaysShort,O.$W,H,3);case"dddd":return H[O.$W];case"H":return String(P);case"HH":return _.s(P,2,"0");case"h":return ne(1);case"hh":return ne(2);case"a":return le(P,z,!0);case"A":return le(P,z,!1);case"m":return String(z);case"mm":return _.s(z,2,"0");case"s":return String(O.$s);case"ss":return _.s(O.$s,2,"0");case"SSS":return _.s(O.$ms,3,"0");case"Z":return F}return null}(he)||F.replace(":","")})},L.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},L.diff=function(R,O,M){var B,F=this,P=_.p(O),z=S(R),$=(z.utcOffset()-this.utcOffset())*e,H=this-z,Q=o(function(){return _.m(F,z)},"D");switch(P){case d:B=Q()/12;break;case h:B=Q();break;case f:B=Q()/3;break;case u:B=(H-$)/6048e5;break;case l:B=(H-$)/864e5;break;case s:B=H/r;break;case a:B=H/e;break;case i:B=H/t;break;default:B=H}return M?B:_.a(B)},L.daysInMonth=function(){return this.endOf(h).$D},L.$locale=function(){return C[this.$L]},L.locale=function(R,O){if(!R)return this.$L;var M=this.clone(),B=A(R,O,!0);return B&&(M.$L=B),M},L.clone=function(){return _.w(this.$d,this)},L.toDate=function(){return new Date(this.valueOf())},L.toJSON=function(){return this.isValid()?this.toISOString():null},L.toISOString=function(){return this.$d.toISOString()},L.toString=function(){return this.$d.toUTCString()},k}(),D=I.prototype;return S.prototype=D,[["$ms",n],["$s",i],["$m",a],["$H",s],["$W",l],["$M",h],["$y",d],["$D",p]].forEach(function(k){D[k[1]]=function(L){return this.$g(L,k[0],k[1])}}),S.extend=function(k,L){return k.$i||(k(L,I,S),k.$i=!0),S},S.locale=A,S.isDayjs=E,S.unix=function(k){return S(1e3*k)},S.en=C[w],S.Ls=C,S.p={},S})});var CF,eu,Y,wy,bo,vt=N(()=>{"use strict";CF=Sa(R4(),1),eu={trace:0,debug:1,info:2,warn:3,error:4,fatal:5},Y={trace:o((...t)=>{},"trace"),debug:o((...t)=>{},"debug"),info:o((...t)=>{},"info"),warn:o((...t)=>{},"warn"),error:o((...t)=>{},"error"),fatal:o((...t)=>{},"fatal")},wy=o(function(t="fatal"){let e=eu.fatal;typeof t=="string"?t.toLowerCase()in eu&&(e=eu[t]):typeof t=="number"&&(e=t),Y.trace=()=>{},Y.debug=()=>{},Y.info=()=>{},Y.warn=()=>{},Y.error=()=>{},Y.fatal=()=>{},e<=eu.fatal&&(Y.fatal=console.error?console.error.bind(console,bo("FATAL"),"color: orange"):console.log.bind(console,"\x1B[35m",bo("FATAL"))),e<=eu.error&&(Y.error=console.error?console.error.bind(console,bo("ERROR"),"color: orange"):console.log.bind(console,"\x1B[31m",bo("ERROR"))),e<=eu.warn&&(Y.warn=console.warn?console.warn.bind(console,bo("WARN"),"color: orange"):console.log.bind(console,"\x1B[33m",bo("WARN"))),e<=eu.info&&(Y.info=console.info?console.info.bind(console,bo("INFO"),"color: lightblue"):console.log.bind(console,"\x1B[34m",bo("INFO"))),e<=eu.debug&&(Y.debug=console.debug?console.debug.bind(console,bo("DEBUG"),"color: lightgreen"):console.log.bind(console,"\x1B[32m",bo("DEBUG"))),e<=eu.trace&&(Y.trace=console.debug?console.debug.bind(console,bo("TRACE"),"color: lightgreen"):console.log.bind(console,"\x1B[32m",bo("TRACE")))},"setLogLevel"),bo=o(t=>`%c${(0,CF.default)().format("ss.SSS")} : ${t} : `,"format")});var U2e,e0,CC,AF,N4=N(()=>{"use strict";U2e=Object.freeze({left:0,top:0,width:16,height:16}),e0=Object.freeze({rotate:0,vFlip:!1,hFlip:!1}),CC=Object.freeze({...U2e,...e0}),AF=Object.freeze({...CC,body:"",hidden:!1})});var H2e,_F,DF=N(()=>{"use strict";N4();H2e=Object.freeze({width:null,height:null}),_F=Object.freeze({...H2e,...e0})});var AC,M4,LF=N(()=>{"use strict";AC=o((t,e,r,n="")=>{let i=t.split(":");if(t.slice(0,1)==="@"){if(i.length<2||i.length>3)return null;n=i.shift().slice(1)}if(i.length>3||!i.length)return null;if(i.length>1){let l=i.pop(),u=i.pop(),h={provider:i.length>0?i[0]:n,prefix:u,name:l};return e&&!M4(h)?null:h}let a=i[0],s=a.split("-");if(s.length>1){let l={provider:n,prefix:s.shift(),name:s.join("-")};return e&&!M4(l)?null:l}if(r&&n===""){let l={provider:n,prefix:"",name:a};return e&&!M4(l,r)?null:l}return null},"stringToIcon"),M4=o((t,e)=>t?!!((e&&t.prefix===""||t.prefix)&&t.name):!1,"validateIconName")});function RF(t,e){let r={};!t.hFlip!=!e.hFlip&&(r.hFlip=!0),!t.vFlip!=!e.vFlip&&(r.vFlip=!0);let n=((t.rotate||0)+(e.rotate||0))%4;return n&&(r.rotate=n),r}var NF=N(()=>{"use strict";o(RF,"mergeIconTransformations")});function _C(t,e){let r=RF(t,e);for(let n in AF)n in e0?n in t&&!(n in r)&&(r[n]=e0[n]):n in e?r[n]=e[n]:n in t&&(r[n]=t[n]);return r}var MF=N(()=>{"use strict";N4();NF();o(_C,"mergeIconData")});function IF(t,e){let r=t.icons,n=t.aliases||Object.create(null),i=Object.create(null);function a(s){if(r[s])return i[s]=[];if(!(s in i)){i[s]=null;let l=n[s]&&n[s].parent,u=l&&a(l);u&&(i[s]=[l].concat(u))}return i[s]}return o(a,"resolve"),(e||Object.keys(r).concat(Object.keys(n))).forEach(a),i}var OF=N(()=>{"use strict";o(IF,"getIconsTree")});function PF(t,e,r){let n=t.icons,i=t.aliases||Object.create(null),a={};function s(l){a=_C(n[l]||i[l],a)}return o(s,"parse"),s(e),r.forEach(s),_C(t,a)}function DC(t,e){if(t.icons[e])return PF(t,e,[]);let r=IF(t,[e])[e];return r?PF(t,e,r):null}var BF=N(()=>{"use strict";MF();OF();o(PF,"internalGetIconData");o(DC,"getIconData")});function LC(t,e,r){if(e===1)return t;if(r=r||100,typeof t=="number")return Math.ceil(t*e*r)/r;if(typeof t!="string")return t;let n=t.split(W2e);if(n===null||!n.length)return t;let i=[],a=n.shift(),s=q2e.test(a);for(;;){if(s){let l=parseFloat(a);isNaN(l)?i.push(a):i.push(Math.ceil(l*e*r)/r)}else i.push(a);if(a=n.shift(),a===void 0)return i.join("");s=!s}}var W2e,q2e,FF=N(()=>{"use strict";W2e=/(-?[0-9.]*[0-9]+[0-9.]*)/g,q2e=/^-?[0-9.]*[0-9]+[0-9.]*$/g;o(LC,"calculateSize")});function Y2e(t,e="defs"){let r="",n=t.indexOf("<"+e);for(;n>=0;){let i=t.indexOf(">",n),a=t.indexOf("</"+e);if(i===-1||a===-1)break;let s=t.indexOf(">",a);if(s===-1)break;r+=t.slice(i+1,a).trim(),t=t.slice(0,n).trim()+t.slice(s+1)}return{defs:r,content:t}}function X2e(t,e){return t?"<defs>"+t+"</defs>"+e:e}function $F(t,e,r){let n=Y2e(t);return X2e(n.defs,e+n.content+r)}var zF=N(()=>{"use strict";o(Y2e,"splitSVGDefs");o(X2e,"mergeDefsAndContent");o($F,"wrapSVGContent")});function RC(t,e){let r={...CC,...t},n={..._F,...e},i={left:r.left,top:r.top,width:r.width,height:r.height},a=r.body;[r,n].forEach(y=>{let v=[],x=y.hFlip,b=y.vFlip,w=y.rotate;x?b?w+=2:(v.push("translate("+(i.width+i.left).toString()+" "+(0-i.top).toString()+")"),v.push("scale(-1 1)"),i.top=i.left=0):b&&(v.push("translate("+(0-i.left).toString()+" "+(i.height+i.top).toString()+")"),v.push("scale(1 -1)"),i.top=i.left=0);let C;switch(w<0&&(w-=Math.floor(w/4)*4),w=w%4,w){case 1:C=i.height/2+i.top,v.unshift("rotate(90 "+C.toString()+" "+C.toString()+")");break;case 2:v.unshift("rotate(180 "+(i.width/2+i.left).toString()+" "+(i.height/2+i.top).toString()+")");break;case 3:C=i.width/2+i.left,v.unshift("rotate(-90 "+C.toString()+" "+C.toString()+")");break}w%2===1&&(i.left!==i.top&&(C=i.left,i.left=i.top,i.top=C),i.width!==i.height&&(C=i.width,i.width=i.height,i.height=C)),v.length&&(a=$F(a,'<g transform="'+v.join(" ")+'">',"</g>"))});let s=n.width,l=n.height,u=i.width,h=i.height,f,d;s===null?(d=l===null?"1em":l==="auto"?h:l,f=LC(d,u/h)):(f=s==="auto"?u:s,d=l===null?LC(f,h/u):l==="auto"?h:l);let p={},m=o((y,v)=>{j2e(v)||(p[y]=v.toString())},"setAttr");m("width",f),m("height",d);let g=[i.left,i.top,u,h];return p.viewBox=g.join(" "),{attributes:p,viewBox:g,body:a}}var j2e,GF=N(()=>{"use strict";N4();DF();FF();zF();j2e=o(t=>t==="unset"||t==="undefined"||t==="none","isUnsetKeyword");o(RC,"iconToSVG")});function NC(t,e=Q2e){let r=[],n;for(;n=K2e.exec(t);)r.push(n[1]);if(!r.length)return t;let i="suffix"+(Math.random()*16777216|Date.now()).toString(16);return r.forEach(a=>{let s=typeof e=="function"?e(a):e+(Z2e++).toString(),l=a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");t=t.replace(new RegExp('([#;"])('+l+')([")]|\\.[a-z])',"g"),"$1"+s+i+"$3")}),t=t.replace(new RegExp(i,"g"),""),t}var K2e,Q2e,Z2e,VF=N(()=>{"use strict";K2e=/\sid="(\S+)"/g,Q2e="IconifyId"+Date.now().toString(16)+(Math.random()*16777216|0).toString(16),Z2e=0;o(NC,"replaceIDs")});function MC(t,e){let r=t.indexOf("xlink:")===-1?"":' xmlns:xlink="http://www.w3.org/1999/xlink"';for(let n in e)r+=" "+n+'="'+e[n]+'"';return'<svg xmlns="http://www.w3.org/2000/svg"'+r+">"+t+"</svg>"}var UF=N(()=>{"use strict";o(MC,"iconToHTML")});var WF=Mi((iit,HF)=>{"use strict";var t0=1e3,r0=t0*60,n0=r0*60,Wf=n0*24,J2e=Wf*7,exe=Wf*365.25;HF.exports=function(t,e){e=e||{};var r=typeof t;if(r==="string"&&t.length>0)return txe(t);if(r==="number"&&isFinite(t))return e.long?nxe(t):rxe(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))};function txe(t){if(t=String(t),!(t.length>100)){var e=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(t);if(e){var r=parseFloat(e[1]),n=(e[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return r*exe;case"weeks":case"week":case"w":return r*J2e;case"days":case"day":case"d":return r*Wf;case"hours":case"hour":case"hrs":case"hr":case"h":return r*n0;case"minutes":case"minute":case"mins":case"min":case"m":return r*r0;case"seconds":case"second":case"secs":case"sec":case"s":return r*t0;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}o(txe,"parse");function rxe(t){var e=Math.abs(t);return e>=Wf?Math.round(t/Wf)+"d":e>=n0?Math.round(t/n0)+"h":e>=r0?Math.round(t/r0)+"m":e>=t0?Math.round(t/t0)+"s":t+"ms"}o(rxe,"fmtShort");function nxe(t){var e=Math.abs(t);return e>=Wf?I4(t,e,Wf,"day"):e>=n0?I4(t,e,n0,"hour"):e>=r0?I4(t,e,r0,"minute"):e>=t0?I4(t,e,t0,"second"):t+" ms"}o(nxe,"fmtLong");function I4(t,e,r,n){var i=e>=r*1.5;return Math.round(t/r)+" "+n+(i?"s":"")}o(I4,"plural")});var YF=Mi((sit,qF)=>{"use strict";function ixe(t){r.debug=r,r.default=r,r.coerce=u,r.disable=s,r.enable=i,r.enabled=l,r.humanize=WF(),r.destroy=h,Object.keys(t).forEach(f=>{r[f]=t[f]}),r.names=[],r.skips=[],r.formatters={};function e(f){let d=0;for(let p=0;p<f.length;p++)d=(d<<5)-d+f.charCodeAt(p),d|=0;return r.colors[Math.abs(d)%r.colors.length]}o(e,"selectColor"),r.selectColor=e;function r(f){let d,p=null,m,g;function y(...v){if(!y.enabled)return;let x=y,b=Number(new Date),w=b-(d||b);x.diff=w,x.prev=d,x.curr=b,d=b,v[0]=r.coerce(v[0]),typeof v[0]!="string"&&v.unshift("%O");let C=0;v[0]=v[0].replace(/%([a-zA-Z%])/g,(E,A)=>{if(E==="%%")return"%";C++;let S=r.formatters[A];if(typeof S=="function"){let _=v[C];E=S.call(x,_),v.splice(C,1),C--}return E}),r.formatArgs.call(x,v),(x.log||r.log).apply(x,v)}return o(y,"debug"),y.namespace=f,y.useColors=r.useColors(),y.color=r.selectColor(f),y.extend=n,y.destroy=r.destroy,Object.defineProperty(y,"enabled",{enumerable:!0,configurable:!1,get:o(()=>p!==null?p:(m!==r.namespaces&&(m=r.namespaces,g=r.enabled(f)),g),"get"),set:o(v=>{p=v},"set")}),typeof r.init=="function"&&r.init(y),y}o(r,"createDebug");function n(f,d){let p=r(this.namespace+(typeof d>"u"?":":d)+f);return p.log=this.log,p}o(n,"extend");function i(f){r.save(f),r.namespaces=f,r.names=[],r.skips=[];let d=(typeof f=="string"?f:"").trim().replace(" ",",").split(",").filter(Boolean);for(let p of d)p[0]==="-"?r.skips.push(p.slice(1)):r.names.push(p)}o(i,"enable");function a(f,d){let p=0,m=0,g=-1,y=0;for(;p<f.length;)if(m<d.length&&(d[m]===f[p]||d[m]==="*"))d[m]==="*"?(g=m,y=p,m++):(p++,m++);else if(g!==-1)m=g+1,y++,p=y;else return!1;for(;m<d.length&&d[m]==="*";)m++;return m===d.length}o(a,"matchesTemplate");function s(){let f=[...r.names,...r.skips.map(d=>"-"+d)].join(",");return r.enable(""),f}o(s,"disable");function l(f){for(let d of r.skips)if(a(f,d))return!1;for(let d of r.names)if(a(f,d))return!0;return!1}o(l,"enabled");function u(f){return f instanceof Error?f.stack||f.message:f}o(u,"coerce");function h(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return o(h,"destroy"),r.enable(r.load()),r}o(ixe,"setup");qF.exports=ixe});var XF=Mi((qs,O4)=>{"use strict";qs.formatArgs=sxe;qs.save=oxe;qs.load=lxe;qs.useColors=axe;qs.storage=cxe();qs.destroy=(()=>{let t=!1;return()=>{t||(t=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();qs.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function axe(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let t;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(t=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(t[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}o(axe,"useColors");function sxe(t){if(t[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+t[0]+(this.useColors?"%c ":" ")+"+"+O4.exports.humanize(this.diff),!this.useColors)return;let e="color: "+this.color;t.splice(1,0,e,"color: inherit");let r=0,n=0;t[0].replace(/%[a-zA-Z%]/g,i=>{i!=="%%"&&(r++,i==="%c"&&(n=r))}),t.splice(n,0,e)}o(sxe,"formatArgs");qs.log=console.debug||console.log||(()=>{});function oxe(t){try{t?qs.storage.setItem("debug",t):qs.storage.removeItem("debug")}catch{}}o(oxe,"save");function lxe(){let t;try{t=qs.storage.getItem("debug")}catch{}return!t&&typeof process<"u"&&"env"in process&&(t=process.env.DEBUG),t}o(lxe,"load");function cxe(){try{return localStorage}catch{}}o(cxe,"localstorage");O4.exports=YF()(qs);var{formatters:uxe}=O4.exports;uxe.j=function(t){try{return JSON.stringify(t)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}});var uit,jF=N(()=>{"use strict";LF();BF();GF();VF();UF();uit=Sa(XF(),1)});var OC,IC,KF,P4,hxe,wo,tu=N(()=>{"use strict";vt();jF();OC={body:'<g><rect width="80" height="80" style="fill: #087ebf; stroke-width: 0px;"/><text transform="translate(21.16 64.67)" style="fill: #fff; font-family: ArialMT, Arial; font-size: 67.75px;"><tspan x="0" y="0">?</tspan></text></g>',height:80,width:80},IC=new Map,KF=new Map,P4=o(t=>{for(let e of t){if(!e.name)throw new Error('Invalid icon loader. Must have a "name" property with non-empty string value.');if(Y.debug("Registering icon pack:",e.name),"loader"in e)KF.set(e.name,e.loader);else if("icons"in e)IC.set(e.name,e.icons);else throw Y.error("Invalid icon loader:",e),new Error('Invalid icon loader. Must have either "icons" or "loader" property.')}},"registerIconPacks"),hxe=o(async(t,e)=>{let r=AC(t,!0,e!==void 0);if(!r)throw new Error(`Invalid icon name: ${t}`);let n=r.prefix||e;if(!n)throw new Error(`Icon name must contain a prefix: ${t}`);let i=IC.get(n);if(!i){let s=KF.get(n);if(!s)throw new Error(`Icon set not found: ${r.prefix}`);try{i={...await s(),prefix:n},IC.set(n,i)}catch(l){throw Y.error(l),new Error(`Failed to load icon set: ${r.prefix}`)}}let a=DC(i,r.name);if(!a)throw new Error(`Icon not found: ${t}`);return a},"getRegisteredIconData"),wo=o(async(t,e)=>{let r;try{r=await hxe(t,e?.fallbackPrefix)}catch(a){Y.error(a),r=OC}let n=RC(r,e);return MC(NC(n.body),n.attributes)},"getIconSVG")});function B4(t){for(var e=[],r=1;r<arguments.length;r++)e[r-1]=arguments[r];var n=Array.from(typeof t=="string"?[t]:t);n[n.length-1]=n[n.length-1].replace(/\r?\n([\t ]*)$/,"");var i=n.reduce(function(l,u){var h=u.match(/\n([\t ]+|(?!\s).)/g);return h?l.concat(h.map(function(f){var d,p;return(p=(d=f.match(/[\t ]/g))===null||d===void 0?void 0:d.length)!==null&&p!==void 0?p:0})):l},[]);if(i.length){var a=new RegExp(`
+[	 ]{`+Math.min.apply(Math,i)+"}","g");n=n.map(function(l){return l.replace(a,`
+`)})}n[0]=n[0].replace(/^\r?\n/,"");var s=n[0];return e.forEach(function(l,u){var h=s.match(/(?:^|\n)( *)$/),f=h?h[1]:"",d=l;typeof l=="string"&&l.includes(`
+`)&&(d=String(l).split(`
+`).map(function(p,m){return m===0?p:""+f+p}).join(`
+`)),s+=d+n[u+1]}),s}var PC=N(()=>{"use strict";o(B4,"dedent")});var F4,qf,QF,$4=N(()=>{"use strict";F4=/^-{3}\s*[\n\r](.*?)[\n\r]-{3}\s*[\n\r]+/s,qf=/%{2}{\s*(?:(\w+)\s*:|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi,QF=/\s*%%.*\n/gm});var i0,BC=N(()=>{"use strict";i0=class extends Error{static{o(this,"UnknownDiagramError")}constructor(e){super(e),this.name="UnknownDiagramError"}}});var Yf,a0,z4,FC,ZF,Xf=N(()=>{"use strict";vt();$4();BC();Yf={},a0=o(function(t,e){t=t.replace(F4,"").replace(qf,"").replace(QF,`
+`);for(let[r,{detector:n}]of Object.entries(Yf))if(n(t,e))return r;throw new i0(`No diagram type detected matching given configuration for text: ${t}`)},"detectType"),z4=o((...t)=>{for(let{id:e,detector:r,loader:n}of t)FC(e,r,n)},"registerLazyLoadedDiagrams"),FC=o((t,e,r)=>{Yf[t]&&Y.warn(`Detector with key ${t} already exists. Overwriting.`),Yf[t]={detector:e,loader:r},Y.debug(`Detector with key ${t} added${r?" with loader":""}`)},"addDetector"),ZF=o(t=>Yf[t].loader,"getDiagramLoader")});var Ty,JF,$C=N(()=>{"use strict";Ty=function(){var t=o(function($e,Re,Ie,be){for(Ie=Ie||{},be=$e.length;be--;Ie[$e[be]]=Re);return Ie},"o"),e=[1,24],r=[1,25],n=[1,26],i=[1,27],a=[1,28],s=[1,63],l=[1,64],u=[1,65],h=[1,66],f=[1,67],d=[1,68],p=[1,69],m=[1,29],g=[1,30],y=[1,31],v=[1,32],x=[1,33],b=[1,34],w=[1,35],C=[1,36],T=[1,37],E=[1,38],A=[1,39],S=[1,40],_=[1,41],I=[1,42],D=[1,43],k=[1,44],L=[1,45],R=[1,46],O=[1,47],M=[1,48],B=[1,50],F=[1,51],P=[1,52],z=[1,53],$=[1,54],H=[1,55],Q=[1,56],j=[1,57],ie=[1,58],ne=[1,59],le=[1,60],he=[14,42],K=[14,34,36,37,38,39,40,41,42,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],X=[12,14,34,36,37,38,39,40,41,42,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],te=[1,82],J=[1,83],se=[1,84],ue=[1,85],Z=[12,14,42],Se=[12,14,33,42],ce=[12,14,33,42,76,77,79,80],ae=[12,33],Oe=[34,36,37,38,39,40,41,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],ge={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,mermaidDoc:4,direction:5,direction_tb:6,direction_bt:7,direction_rl:8,direction_lr:9,graphConfig:10,C4_CONTEXT:11,NEWLINE:12,statements:13,EOF:14,C4_CONTAINER:15,C4_COMPONENT:16,C4_DYNAMIC:17,C4_DEPLOYMENT:18,otherStatements:19,diagramStatements:20,otherStatement:21,title:22,accDescription:23,acc_title:24,acc_title_value:25,acc_descr:26,acc_descr_value:27,acc_descr_multiline_value:28,boundaryStatement:29,boundaryStartStatement:30,boundaryStopStatement:31,boundaryStart:32,LBRACE:33,ENTERPRISE_BOUNDARY:34,attributes:35,SYSTEM_BOUNDARY:36,BOUNDARY:37,CONTAINER_BOUNDARY:38,NODE:39,NODE_L:40,NODE_R:41,RBRACE:42,diagramStatement:43,PERSON:44,PERSON_EXT:45,SYSTEM:46,SYSTEM_DB:47,SYSTEM_QUEUE:48,SYSTEM_EXT:49,SYSTEM_EXT_DB:50,SYSTEM_EXT_QUEUE:51,CONTAINER:52,CONTAINER_DB:53,CONTAINER_QUEUE:54,CONTAINER_EXT:55,CONTAINER_EXT_DB:56,CONTAINER_EXT_QUEUE:57,COMPONENT:58,COMPONENT_DB:59,COMPONENT_QUEUE:60,COMPONENT_EXT:61,COMPONENT_EXT_DB:62,COMPONENT_EXT_QUEUE:63,REL:64,BIREL:65,REL_U:66,REL_D:67,REL_L:68,REL_R:69,REL_B:70,REL_INDEX:71,UPDATE_EL_STYLE:72,UPDATE_REL_STYLE:73,UPDATE_LAYOUT_CONFIG:74,attribute:75,STR:76,STR_KEY:77,STR_VALUE:78,ATTRIBUTE:79,ATTRIBUTE_EMPTY:80,$accept:0,$end:1},terminals_:{2:"error",6:"direction_tb",7:"direction_bt",8:"direction_rl",9:"direction_lr",11:"C4_CONTEXT",12:"NEWLINE",14:"EOF",15:"C4_CONTAINER",16:"C4_COMPONENT",17:"C4_DYNAMIC",18:"C4_DEPLOYMENT",22:"title",23:"accDescription",24:"acc_title",25:"acc_title_value",26:"acc_descr",27:"acc_descr_value",28:"acc_descr_multiline_value",33:"LBRACE",34:"ENTERPRISE_BOUNDARY",36:"SYSTEM_BOUNDARY",37:"BOUNDARY",38:"CONTAINER_BOUNDARY",39:"NODE",40:"NODE_L",41:"NODE_R",42:"RBRACE",44:"PERSON",45:"PERSON_EXT",46:"SYSTEM",47:"SYSTEM_DB",48:"SYSTEM_QUEUE",49:"SYSTEM_EXT",50:"SYSTEM_EXT_DB",51:"SYSTEM_EXT_QUEUE",52:"CONTAINER",53:"CONTAINER_DB",54:"CONTAINER_QUEUE",55:"CONTAINER_EXT",56:"CONTAINER_EXT_DB",57:"CONTAINER_EXT_QUEUE",58:"COMPONENT",59:"COMPONENT_DB",60:"COMPONENT_QUEUE",61:"COMPONENT_EXT",62:"COMPONENT_EXT_DB",63:"COMPONENT_EXT_QUEUE",64:"REL",65:"BIREL",66:"REL_U",67:"REL_D",68:"REL_L",69:"REL_R",70:"REL_B",71:"REL_INDEX",72:"UPDATE_EL_STYLE",73:"UPDATE_REL_STYLE",74:"UPDATE_LAYOUT_CONFIG",76:"STR",77:"STR_KEY",78:"STR_VALUE",79:"ATTRIBUTE",80:"ATTRIBUTE_EMPTY"},productions_:[0,[3,1],[3,1],[5,1],[5,1],[5,1],[5,1],[4,1],[10,4],[10,4],[10,4],[10,4],[10,4],[13,1],[13,1],[13,2],[19,1],[19,2],[19,3],[21,1],[21,1],[21,2],[21,2],[21,1],[29,3],[30,3],[30,3],[30,4],[32,2],[32,2],[32,2],[32,2],[32,2],[32,2],[32,2],[31,1],[20,1],[20,2],[20,3],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,1],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[35,1],[35,2],[75,1],[75,2],[75,1],[75,1]],performAction:o(function(Re,Ie,be,W,de,re,oe){var V=re.length-1;switch(de){case 3:W.setDirection("TB");break;case 4:W.setDirection("BT");break;case 5:W.setDirection("RL");break;case 6:W.setDirection("LR");break;case 8:case 9:case 10:case 11:case 12:W.setC4Type(re[V-3]);break;case 19:W.setTitle(re[V].substring(6)),this.$=re[V].substring(6);break;case 20:W.setAccDescription(re[V].substring(15)),this.$=re[V].substring(15);break;case 21:this.$=re[V].trim(),W.setTitle(this.$);break;case 22:case 23:this.$=re[V].trim(),W.setAccDescription(this.$);break;case 28:re[V].splice(2,0,"ENTERPRISE"),W.addPersonOrSystemBoundary(...re[V]),this.$=re[V];break;case 29:re[V].splice(2,0,"SYSTEM"),W.addPersonOrSystemBoundary(...re[V]),this.$=re[V];break;case 30:W.addPersonOrSystemBoundary(...re[V]),this.$=re[V];break;case 31:re[V].splice(2,0,"CONTAINER"),W.addContainerBoundary(...re[V]),this.$=re[V];break;case 32:W.addDeploymentNode("node",...re[V]),this.$=re[V];break;case 33:W.addDeploymentNode("nodeL",...re[V]),this.$=re[V];break;case 34:W.addDeploymentNode("nodeR",...re[V]),this.$=re[V];break;case 35:W.popBoundaryParseStack();break;case 39:W.addPersonOrSystem("person",...re[V]),this.$=re[V];break;case 40:W.addPersonOrSystem("external_person",...re[V]),this.$=re[V];break;case 41:W.addPersonOrSystem("system",...re[V]),this.$=re[V];break;case 42:W.addPersonOrSystem("system_db",...re[V]),this.$=re[V];break;case 43:W.addPersonOrSystem("system_queue",...re[V]),this.$=re[V];break;case 44:W.addPersonOrSystem("external_system",...re[V]),this.$=re[V];break;case 45:W.addPersonOrSystem("external_system_db",...re[V]),this.$=re[V];break;case 46:W.addPersonOrSystem("external_system_queue",...re[V]),this.$=re[V];break;case 47:W.addContainer("container",...re[V]),this.$=re[V];break;case 48:W.addContainer("container_db",...re[V]),this.$=re[V];break;case 49:W.addContainer("container_queue",...re[V]),this.$=re[V];break;case 50:W.addContainer("external_container",...re[V]),this.$=re[V];break;case 51:W.addContainer("external_container_db",...re[V]),this.$=re[V];break;case 52:W.addContainer("external_container_queue",...re[V]),this.$=re[V];break;case 53:W.addComponent("component",...re[V]),this.$=re[V];break;case 54:W.addComponent("component_db",...re[V]),this.$=re[V];break;case 55:W.addComponent("component_queue",...re[V]),this.$=re[V];break;case 56:W.addComponent("external_component",...re[V]),this.$=re[V];break;case 57:W.addComponent("external_component_db",...re[V]),this.$=re[V];break;case 58:W.addComponent("external_component_queue",...re[V]),this.$=re[V];break;case 60:W.addRel("rel",...re[V]),this.$=re[V];break;case 61:W.addRel("birel",...re[V]),this.$=re[V];break;case 62:W.addRel("rel_u",...re[V]),this.$=re[V];break;case 63:W.addRel("rel_d",...re[V]),this.$=re[V];break;case 64:W.addRel("rel_l",...re[V]),this.$=re[V];break;case 65:W.addRel("rel_r",...re[V]),this.$=re[V];break;case 66:W.addRel("rel_b",...re[V]),this.$=re[V];break;case 67:re[V].splice(0,1),W.addRel("rel",...re[V]),this.$=re[V];break;case 68:W.updateElStyle("update_el_style",...re[V]),this.$=re[V];break;case 69:W.updateRelStyle("update_rel_style",...re[V]),this.$=re[V];break;case 70:W.updateLayoutConfig("update_layout_config",...re[V]),this.$=re[V];break;case 71:this.$=[re[V]];break;case 72:re[V].unshift(re[V-1]),this.$=re[V];break;case 73:case 75:this.$=re[V].trim();break;case 74:let xe={};xe[re[V-1].trim()]=re[V].trim(),this.$=xe;break;case 76:this.$="";break}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],7:[1,6],8:[1,7],9:[1,8],10:4,11:[1,9],15:[1,10],16:[1,11],17:[1,12],18:[1,13]},{1:[3]},{1:[2,1]},{1:[2,2]},{1:[2,7]},{1:[2,3]},{1:[2,4]},{1:[2,5]},{1:[2,6]},{12:[1,14]},{12:[1,15]},{12:[1,16]},{12:[1,17]},{12:[1,18]},{13:19,19:20,20:21,21:22,22:e,23:r,24:n,26:i,28:a,29:49,30:61,32:62,34:s,36:l,37:u,38:h,39:f,40:d,41:p,43:23,44:m,45:g,46:y,47:v,48:x,49:b,50:w,51:C,52:T,53:E,54:A,55:S,56:_,57:I,58:D,59:k,60:L,61:R,62:O,63:M,64:B,65:F,66:P,67:z,68:$,69:H,70:Q,71:j,72:ie,73:ne,74:le},{13:70,19:20,20:21,21:22,22:e,23:r,24:n,26:i,28:a,29:49,30:61,32:62,34:s,36:l,37:u,38:h,39:f,40:d,41:p,43:23,44:m,45:g,46:y,47:v,48:x,49:b,50:w,51:C,52:T,53:E,54:A,55:S,56:_,57:I,58:D,59:k,60:L,61:R,62:O,63:M,64:B,65:F,66:P,67:z,68:$,69:H,70:Q,71:j,72:ie,73:ne,74:le},{13:71,19:20,20:21,21:22,22:e,23:r,24:n,26:i,28:a,29:49,30:61,32:62,34:s,36:l,37:u,38:h,39:f,40:d,41:p,43:23,44:m,45:g,46:y,47:v,48:x,49:b,50:w,51:C,52:T,53:E,54:A,55:S,56:_,57:I,58:D,59:k,60:L,61:R,62:O,63:M,64:B,65:F,66:P,67:z,68:$,69:H,70:Q,71:j,72:ie,73:ne,74:le},{13:72,19:20,20:21,21:22,22:e,23:r,24:n,26:i,28:a,29:49,30:61,32:62,34:s,36:l,37:u,38:h,39:f,40:d,41:p,43:23,44:m,45:g,46:y,47:v,48:x,49:b,50:w,51:C,52:T,53:E,54:A,55:S,56:_,57:I,58:D,59:k,60:L,61:R,62:O,63:M,64:B,65:F,66:P,67:z,68:$,69:H,70:Q,71:j,72:ie,73:ne,74:le},{13:73,19:20,20:21,21:22,22:e,23:r,24:n,26:i,28:a,29:49,30:61,32:62,34:s,36:l,37:u,38:h,39:f,40:d,41:p,43:23,44:m,45:g,46:y,47:v,48:x,49:b,50:w,51:C,52:T,53:E,54:A,55:S,56:_,57:I,58:D,59:k,60:L,61:R,62:O,63:M,64:B,65:F,66:P,67:z,68:$,69:H,70:Q,71:j,72:ie,73:ne,74:le},{14:[1,74]},t(he,[2,13],{43:23,29:49,30:61,32:62,20:75,34:s,36:l,37:u,38:h,39:f,40:d,41:p,44:m,45:g,46:y,47:v,48:x,49:b,50:w,51:C,52:T,53:E,54:A,55:S,56:_,57:I,58:D,59:k,60:L,61:R,62:O,63:M,64:B,65:F,66:P,67:z,68:$,69:H,70:Q,71:j,72:ie,73:ne,74:le}),t(he,[2,14]),t(K,[2,16],{12:[1,76]}),t(he,[2,36],{12:[1,77]}),t(X,[2,19]),t(X,[2,20]),{25:[1,78]},{27:[1,79]},t(X,[2,23]),{35:80,75:81,76:te,77:J,79:se,80:ue},{35:86,75:81,76:te,77:J,79:se,80:ue},{35:87,75:81,76:te,77:J,79:se,80:ue},{35:88,75:81,76:te,77:J,79:se,80:ue},{35:89,75:81,76:te,77:J,79:se,80:ue},{35:90,75:81,76:te,77:J,79:se,80:ue},{35:91,75:81,76:te,77:J,79:se,80:ue},{35:92,75:81,76:te,77:J,79:se,80:ue},{35:93,75:81,76:te,77:J,79:se,80:ue},{35:94,75:81,76:te,77:J,79:se,80:ue},{35:95,75:81,76:te,77:J,79:se,80:ue},{35:96,75:81,76:te,77:J,79:se,80:ue},{35:97,75:81,76:te,77:J,79:se,80:ue},{35:98,75:81,76:te,77:J,79:se,80:ue},{35:99,75:81,76:te,77:J,79:se,80:ue},{35:100,75:81,76:te,77:J,79:se,80:ue},{35:101,75:81,76:te,77:J,79:se,80:ue},{35:102,75:81,76:te,77:J,79:se,80:ue},{35:103,75:81,76:te,77:J,79:se,80:ue},{35:104,75:81,76:te,77:J,79:se,80:ue},t(Z,[2,59]),{35:105,75:81,76:te,77:J,79:se,80:ue},{35:106,75:81,76:te,77:J,79:se,80:ue},{35:107,75:81,76:te,77:J,79:se,80:ue},{35:108,75:81,76:te,77:J,79:se,80:ue},{35:109,75:81,76:te,77:J,79:se,80:ue},{35:110,75:81,76:te,77:J,79:se,80:ue},{35:111,75:81,76:te,77:J,79:se,80:ue},{35:112,75:81,76:te,77:J,79:se,80:ue},{35:113,75:81,76:te,77:J,79:se,80:ue},{35:114,75:81,76:te,77:J,79:se,80:ue},{35:115,75:81,76:te,77:J,79:se,80:ue},{20:116,29:49,30:61,32:62,34:s,36:l,37:u,38:h,39:f,40:d,41:p,43:23,44:m,45:g,46:y,47:v,48:x,49:b,50:w,51:C,52:T,53:E,54:A,55:S,56:_,57:I,58:D,59:k,60:L,61:R,62:O,63:M,64:B,65:F,66:P,67:z,68:$,69:H,70:Q,71:j,72:ie,73:ne,74:le},{12:[1,118],33:[1,117]},{35:119,75:81,76:te,77:J,79:se,80:ue},{35:120,75:81,76:te,77:J,79:se,80:ue},{35:121,75:81,76:te,77:J,79:se,80:ue},{35:122,75:81,76:te,77:J,79:se,80:ue},{35:123,75:81,76:te,77:J,79:se,80:ue},{35:124,75:81,76:te,77:J,79:se,80:ue},{35:125,75:81,76:te,77:J,79:se,80:ue},{14:[1,126]},{14:[1,127]},{14:[1,128]},{14:[1,129]},{1:[2,8]},t(he,[2,15]),t(K,[2,17],{21:22,19:130,22:e,23:r,24:n,26:i,28:a}),t(he,[2,37],{19:20,20:21,21:22,43:23,29:49,30:61,32:62,13:131,22:e,23:r,24:n,26:i,28:a,34:s,36:l,37:u,38:h,39:f,40:d,41:p,44:m,45:g,46:y,47:v,48:x,49:b,50:w,51:C,52:T,53:E,54:A,55:S,56:_,57:I,58:D,59:k,60:L,61:R,62:O,63:M,64:B,65:F,66:P,67:z,68:$,69:H,70:Q,71:j,72:ie,73:ne,74:le}),t(X,[2,21]),t(X,[2,22]),t(Z,[2,39]),t(Se,[2,71],{75:81,35:132,76:te,77:J,79:se,80:ue}),t(ce,[2,73]),{78:[1,133]},t(ce,[2,75]),t(ce,[2,76]),t(Z,[2,40]),t(Z,[2,41]),t(Z,[2,42]),t(Z,[2,43]),t(Z,[2,44]),t(Z,[2,45]),t(Z,[2,46]),t(Z,[2,47]),t(Z,[2,48]),t(Z,[2,49]),t(Z,[2,50]),t(Z,[2,51]),t(Z,[2,52]),t(Z,[2,53]),t(Z,[2,54]),t(Z,[2,55]),t(Z,[2,56]),t(Z,[2,57]),t(Z,[2,58]),t(Z,[2,60]),t(Z,[2,61]),t(Z,[2,62]),t(Z,[2,63]),t(Z,[2,64]),t(Z,[2,65]),t(Z,[2,66]),t(Z,[2,67]),t(Z,[2,68]),t(Z,[2,69]),t(Z,[2,70]),{31:134,42:[1,135]},{12:[1,136]},{33:[1,137]},t(ae,[2,28]),t(ae,[2,29]),t(ae,[2,30]),t(ae,[2,31]),t(ae,[2,32]),t(ae,[2,33]),t(ae,[2,34]),{1:[2,9]},{1:[2,10]},{1:[2,11]},{1:[2,12]},t(K,[2,18]),t(he,[2,38]),t(Se,[2,72]),t(ce,[2,74]),t(Z,[2,24]),t(Z,[2,35]),t(Oe,[2,25]),t(Oe,[2,26],{12:[1,138]}),t(Oe,[2,27])],defaultActions:{2:[2,1],3:[2,2],4:[2,7],5:[2,3],6:[2,4],7:[2,5],8:[2,6],74:[2,8],126:[2,9],127:[2,10],128:[2,11],129:[2,12]},parseError:o(function(Re,Ie){if(Ie.recoverable)this.trace(Re);else{var be=new Error(Re);throw be.hash=Ie,be}},"parseError"),parse:o(function(Re){var Ie=this,be=[0],W=[],de=[null],re=[],oe=this.table,V="",xe=0,q=0,pe=0,ve=2,Pe=1,_e=re.slice.call(arguments,1),we=Object.create(this.lexer),Ve={yy:{}};for(var De in this.yy)Object.prototype.hasOwnProperty.call(this.yy,De)&&(Ve.yy[De]=this.yy[De]);we.setInput(Re,Ve.yy),Ve.yy.lexer=we,Ve.yy.parser=this,typeof we.yylloc>"u"&&(we.yylloc={});var qe=we.yylloc;re.push(qe);var at=we.options&&we.options.ranges;typeof Ve.yy.parseError=="function"?this.parseError=Ve.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Rt(nt){be.length=be.length-2*nt,de.length=de.length-nt,re.length=re.length-nt}o(Rt,"popStack");function st(){var nt;return nt=W.pop()||we.lex()||Pe,typeof nt!="number"&&(nt instanceof Array&&(W=nt,nt=W.pop()),nt=Ie.symbols_[nt]||nt),nt}o(st,"lex");for(var Ue,ct,We,ot,Yt,bt,Mt={},xt,ut,Et,ft;;){if(We=be[be.length-1],this.defaultActions[We]?ot=this.defaultActions[We]:((Ue===null||typeof Ue>"u")&&(Ue=st()),ot=oe[We]&&oe[We][Ue]),typeof ot>"u"||!ot.length||!ot[0]){var yt="";ft=[];for(xt in oe[We])this.terminals_[xt]&&xt>ve&&ft.push("'"+this.terminals_[xt]+"'");we.showPosition?yt="Parse error on line "+(xe+1)+`:
+`+we.showPosition()+`
+Expecting `+ft.join(", ")+", got '"+(this.terminals_[Ue]||Ue)+"'":yt="Parse error on line "+(xe+1)+": Unexpected "+(Ue==Pe?"end of input":"'"+(this.terminals_[Ue]||Ue)+"'"),this.parseError(yt,{text:we.match,token:this.terminals_[Ue]||Ue,line:we.yylineno,loc:qe,expected:ft})}if(ot[0]instanceof Array&&ot.length>1)throw new Error("Parse Error: multiple actions possible at state: "+We+", token: "+Ue);switch(ot[0]){case 1:be.push(Ue),de.push(we.yytext),re.push(we.yylloc),be.push(ot[1]),Ue=null,ct?(Ue=ct,ct=null):(q=we.yyleng,V=we.yytext,xe=we.yylineno,qe=we.yylloc,pe>0&&pe--);break;case 2:if(ut=this.productions_[ot[1]][1],Mt.$=de[de.length-ut],Mt._$={first_line:re[re.length-(ut||1)].first_line,last_line:re[re.length-1].last_line,first_column:re[re.length-(ut||1)].first_column,last_column:re[re.length-1].last_column},at&&(Mt._$.range=[re[re.length-(ut||1)].range[0],re[re.length-1].range[1]]),bt=this.performAction.apply(Mt,[V,q,xe,Ve.yy,ot[1],de,re].concat(_e)),typeof bt<"u")return bt;ut&&(be=be.slice(0,-1*ut*2),de=de.slice(0,-1*ut),re=re.slice(0,-1*ut)),be.push(this.productions_[ot[1]][0]),de.push(Mt.$),re.push(Mt._$),Et=oe[be[be.length-2]][be[be.length-1]],be.push(Et);break;case 3:return!0}}return!0},"parse")},ze=function(){var $e={EOF:1,parseError:o(function(Ie,be){if(this.yy.parser)this.yy.parser.parseError(Ie,be);else throw new Error(Ie)},"parseError"),setInput:o(function(Re,Ie){return this.yy=Ie||this.yy||{},this._input=Re,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var Re=this._input[0];this.yytext+=Re,this.yyleng++,this.offset++,this.match+=Re,this.matched+=Re;var Ie=Re.match(/(?:\r\n?|\n).*/g);return Ie?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),Re},"input"),unput:o(function(Re){var Ie=Re.length,be=Re.split(/(?:\r\n?|\n)/g);this._input=Re+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-Ie),this.offset-=Ie;var W=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),be.length-1&&(this.yylineno-=be.length-1);var de=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:be?(be.length===W.length?this.yylloc.first_column:0)+W[W.length-be.length].length-be[0].length:this.yylloc.first_column-Ie},this.options.ranges&&(this.yylloc.range=[de[0],de[0]+this.yyleng-Ie]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
+`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(Re){this.unput(this.match.slice(Re))},"less"),pastInput:o(function(){var Re=this.matched.substr(0,this.matched.length-this.match.length);return(Re.length>20?"...":"")+Re.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var Re=this.match;return Re.length<20&&(Re+=this._input.substr(0,20-Re.length)),(Re.substr(0,20)+(Re.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var Re=this.pastInput(),Ie=new Array(Re.length+1).join("-");return Re+this.upcomingInput()+`
+`+Ie+"^"},"showPosition"),test_match:o(function(Re,Ie){var be,W,de;if(this.options.backtrack_lexer&&(de={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(de.yylloc.range=this.yylloc.range.slice(0))),W=Re[0].match(/(?:\r\n?|\n).*/g),W&&(this.yylineno+=W.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:W?W[W.length-1].length-W[W.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+Re[0].length},this.yytext+=Re[0],this.match+=Re[0],this.matches=Re,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(Re[0].length),this.matched+=Re[0],be=this.performAction.call(this,this.yy,this,Ie,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),be)return be;if(this._backtrack){for(var re in de)this[re]=de[re];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var Re,Ie,be,W;this._more||(this.yytext="",this.match="");for(var de=this._currentRules(),re=0;re<de.length;re++)if(be=this._input.match(this.rules[de[re]]),be&&(!Ie||be[0].length>Ie[0].length)){if(Ie=be,W=re,this.options.backtrack_lexer){if(Re=this.test_match(be,de[re]),Re!==!1)return Re;if(this._backtrack){Ie=!1;continue}else return!1}else if(!this.options.flex)break}return Ie?(Re=this.test_match(Ie,de[W]),Re!==!1?Re:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text.
+`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var Ie=this.next();return Ie||this.lex()},"lex"),begin:o(function(Ie){this.conditionStack.push(Ie)},"begin"),popState:o(function(){var Ie=this.conditionStack.length-1;return Ie>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(Ie){return Ie=this.conditionStack.length-1-Math.abs(Ie||0),Ie>=0?this.conditionStack[Ie]:"INITIAL"},"topState"),pushState:o(function(Ie){this.begin(Ie)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{},performAction:o(function(Ie,be,W,de){var re=de;switch(W){case 0:return 6;case 1:return 7;case 2:return 8;case 3:return 9;case 4:return 22;case 5:return 23;case 6:return this.begin("acc_title"),24;break;case 7:return this.popState(),"acc_title_value";break;case 8:return this.begin("acc_descr"),26;break;case 9:return this.popState(),"acc_descr_value";break;case 10:this.begin("acc_descr_multiline");break;case 11:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:break;case 14:c;break;case 15:return 12;case 16:break;case 17:return 11;case 18:return 15;case 19:return 16;case 20:return 17;case 21:return 18;case 22:return this.begin("person_ext"),45;break;case 23:return this.begin("person"),44;break;case 24:return this.begin("system_ext_queue"),51;break;case 25:return this.begin("system_ext_db"),50;break;case 26:return this.begin("system_ext"),49;break;case 27:return this.begin("system_queue"),48;break;case 28:return this.begin("system_db"),47;break;case 29:return this.begin("system"),46;break;case 30:return this.begin("boundary"),37;break;case 31:return this.begin("enterprise_boundary"),34;break;case 32:return this.begin("system_boundary"),36;break;case 33:return this.begin("container_ext_queue"),57;break;case 34:return this.begin("container_ext_db"),56;break;case 35:return this.begin("container_ext"),55;break;case 36:return this.begin("container_queue"),54;break;case 37:return this.begin("container_db"),53;break;case 38:return this.begin("container"),52;break;case 39:return this.begin("container_boundary"),38;break;case 40:return this.begin("component_ext_queue"),63;break;case 41:return this.begin("component_ext_db"),62;break;case 42:return this.begin("component_ext"),61;break;case 43:return this.begin("component_queue"),60;break;case 44:return this.begin("component_db"),59;break;case 45:return this.begin("component"),58;break;case 46:return this.begin("node"),39;break;case 47:return this.begin("node"),39;break;case 48:return this.begin("node_l"),40;break;case 49:return this.begin("node_r"),41;break;case 50:return this.begin("rel"),64;break;case 51:return this.begin("birel"),65;break;case 52:return this.begin("rel_u"),66;break;case 53:return this.begin("rel_u"),66;break;case 54:return this.begin("rel_d"),67;break;case 55:return this.begin("rel_d"),67;break;case 56:return this.begin("rel_l"),68;break;case 57:return this.begin("rel_l"),68;break;case 58:return this.begin("rel_r"),69;break;case 59:return this.begin("rel_r"),69;break;case 60:return this.begin("rel_b"),70;break;case 61:return this.begin("rel_index"),71;break;case 62:return this.begin("update_el_style"),72;break;case 63:return this.begin("update_rel_style"),73;break;case 64:return this.begin("update_layout_config"),74;break;case 65:return"EOF_IN_STRUCT";case 66:return this.begin("attribute"),"ATTRIBUTE_EMPTY";break;case 67:this.begin("attribute");break;case 68:this.popState(),this.popState();break;case 69:return 80;case 70:break;case 71:return 80;case 72:this.begin("string");break;case 73:this.popState();break;case 74:return"STR";case 75:this.begin("string_kv");break;case 76:return this.begin("string_kv_key"),"STR_KEY";break;case 77:this.popState(),this.begin("string_kv_value");break;case 78:return"STR_VALUE";case 79:this.popState(),this.popState();break;case 80:return"STR";case 81:return"LBRACE";case 82:return"RBRACE";case 83:return"SPACE";case 84:return"EOL";case 85:return 14}},"anonymous"),rules:[/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:title\s[^#\n;]+)/,/^(?:accDescription\s[^#\n;]+)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/,/^(?:%%[^\n]*(\r?\n)*)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:C4Context\b)/,/^(?:C4Container\b)/,/^(?:C4Component\b)/,/^(?:C4Dynamic\b)/,/^(?:C4Deployment\b)/,/^(?:Person_Ext\b)/,/^(?:Person\b)/,/^(?:SystemQueue_Ext\b)/,/^(?:SystemDb_Ext\b)/,/^(?:System_Ext\b)/,/^(?:SystemQueue\b)/,/^(?:SystemDb\b)/,/^(?:System\b)/,/^(?:Boundary\b)/,/^(?:Enterprise_Boundary\b)/,/^(?:System_Boundary\b)/,/^(?:ContainerQueue_Ext\b)/,/^(?:ContainerDb_Ext\b)/,/^(?:Container_Ext\b)/,/^(?:ContainerQueue\b)/,/^(?:ContainerDb\b)/,/^(?:Container\b)/,/^(?:Container_Boundary\b)/,/^(?:ComponentQueue_Ext\b)/,/^(?:ComponentDb_Ext\b)/,/^(?:Component_Ext\b)/,/^(?:ComponentQueue\b)/,/^(?:ComponentDb\b)/,/^(?:Component\b)/,/^(?:Deployment_Node\b)/,/^(?:Node\b)/,/^(?:Node_L\b)/,/^(?:Node_R\b)/,/^(?:Rel\b)/,/^(?:BiRel\b)/,/^(?:Rel_Up\b)/,/^(?:Rel_U\b)/,/^(?:Rel_Down\b)/,/^(?:Rel_D\b)/,/^(?:Rel_Left\b)/,/^(?:Rel_L\b)/,/^(?:Rel_Right\b)/,/^(?:Rel_R\b)/,/^(?:Rel_Back\b)/,/^(?:RelIndex\b)/,/^(?:UpdateElementStyle\b)/,/^(?:UpdateRelStyle\b)/,/^(?:UpdateLayoutConfig\b)/,/^(?:$)/,/^(?:[(][ ]*[,])/,/^(?:[(])/,/^(?:[)])/,/^(?:,,)/,/^(?:,)/,/^(?:[ ]*["]["])/,/^(?:[ ]*["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:[ ]*[\$])/,/^(?:[^=]*)/,/^(?:[=][ ]*["])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:[^,]+)/,/^(?:\{)/,/^(?:\})/,/^(?:[\s]+)/,/^(?:[\n\r]+)/,/^(?:$)/],conditions:{acc_descr_multiline:{rules:[11,12],inclusive:!1},acc_descr:{rules:[9],inclusive:!1},acc_title:{rules:[7],inclusive:!1},string_kv_value:{rules:[78,79],inclusive:!1},string_kv_key:{rules:[77],inclusive:!1},string_kv:{rules:[76],inclusive:!1},string:{rules:[73,74],inclusive:!1},attribute:{rules:[68,69,70,71,72,75,80],inclusive:!1},update_layout_config:{rules:[65,66,67,68],inclusive:!1},update_rel_style:{rules:[65,66,67,68],inclusive:!1},update_el_style:{rules:[65,66,67,68],inclusive:!1},rel_b:{rules:[65,66,67,68],inclusive:!1},rel_r:{rules:[65,66,67,68],inclusive:!1},rel_l:{rules:[65,66,67,68],inclusive:!1},rel_d:{rules:[65,66,67,68],inclusive:!1},rel_u:{rules:[65,66,67,68],inclusive:!1},rel_bi:{rules:[],inclusive:!1},rel:{rules:[65,66,67,68],inclusive:!1},node_r:{rules:[65,66,67,68],inclusive:!1},node_l:{rules:[65,66,67,68],inclusive:!1},node:{rules:[65,66,67,68],inclusive:!1},index:{rules:[],inclusive:!1},rel_index:{rules:[65,66,67,68],inclusive:!1},component_ext_queue:{rules:[],inclusive:!1},component_ext_db:{rules:[65,66,67,68],inclusive:!1},component_ext:{rules:[65,66,67,68],inclusive:!1},component_queue:{rules:[65,66,67,68],inclusive:!1},component_db:{rules:[65,66,67,68],inclusive:!1},component:{rules:[65,66,67,68],inclusive:!1},container_boundary:{rules:[65,66,67,68],inclusive:!1},container_ext_queue:{rules:[65,66,67,68],inclusive:!1},container_ext_db:{rules:[65,66,67,68],inclusive:!1},container_ext:{rules:[65,66,67,68],inclusive:!1},container_queue:{rules:[65,66,67,68],inclusive:!1},container_db:{rules:[65,66,67,68],inclusive:!1},container:{rules:[65,66,67,68],inclusive:!1},birel:{rules:[65,66,67,68],inclusive:!1},system_boundary:{rules:[65,66,67,68],inclusive:!1},enterprise_boundary:{rules:[65,66,67,68],inclusive:!1},boundary:{rules:[65,66,67,68],inclusive:!1},system_ext_queue:{rules:[65,66,67,68],inclusive:!1},system_ext_db:{rules:[65,66,67,68],inclusive:!1},system_ext:{rules:[65,66,67,68],inclusive:!1},system_queue:{rules:[65,66,67,68],inclusive:!1},system_db:{rules:[65,66,67,68],inclusive:!1},system:{rules:[65,66,67,68],inclusive:!1},person_ext:{rules:[65,66,67,68],inclusive:!1},person:{rules:[65,66,67,68],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,8,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,81,82,83,84,85],inclusive:!0}}};return $e}();ge.lexer=ze;function He(){this.yy={}}return o(He,"Parser"),He.prototype=ge,ge.Parser=He,new He}();Ty.parser=Ty;JF=Ty});var zC,Gn,s0=N(()=>{"use strict";zC=o((t,e,{depth:r=2,clobber:n=!1}={})=>{let i={depth:r,clobber:n};return Array.isArray(e)&&!Array.isArray(t)?(e.forEach(a=>zC(t,a,i)),t):Array.isArray(e)&&Array.isArray(t)?(e.forEach(a=>{t.includes(a)||t.push(a)}),t):t===void 0||r<=0?t!=null&&typeof t=="object"&&typeof e=="object"?Object.assign(t,e):e:(e!==void 0&&typeof t=="object"&&typeof e=="object"&&Object.keys(e).forEach(a=>{typeof e[a]=="object"&&(t[a]===void 0||typeof t[a]=="object")?(t[a]===void 0&&(t[a]=Array.isArray(e[a])?[]:{}),t[a]=zC(t[a],e[a],{depth:r-1,clobber:n})):(n||typeof t[a]!="object"&&typeof e[a]!="object")&&(t[a]=e[a])}),t)},"assignWithDepth"),Gn=zC});var G4,e$,t$=N(()=>{"use strict";G4={min:{r:0,g:0,b:0,s:0,l:0,a:0},max:{r:255,g:255,b:255,h:360,s:100,l:100,a:1},clamp:{r:o(t=>t>=255?255:t<0?0:t,"r"),g:o(t=>t>=255?255:t<0?0:t,"g"),b:o(t=>t>=255?255:t<0?0:t,"b"),h:o(t=>t%360,"h"),s:o(t=>t>=100?100:t<0?0:t,"s"),l:o(t=>t>=100?100:t<0?0:t,"l"),a:o(t=>t>=1?1:t<0?0:t,"a")},toLinear:o(t=>{let e=t/255;return t>.03928?Math.pow((e+.055)/1.055,2.4):e/12.92},"toLinear"),hue2rgb:o((t,e,r)=>(r<0&&(r+=1),r>1&&(r-=1),r<.16666666666666666?t+(e-t)*6*r:r<.5?e:r<.6666666666666666?t+(e-t)*(.6666666666666666-r)*6:t),"hue2rgb"),hsl2rgb:o(({h:t,s:e,l:r},n)=>{if(!e)return r*2.55;t/=360,e/=100,r/=100;let i=r<.5?r*(1+e):r+e-r*e,a=2*r-i;switch(n){case"r":return G4.hue2rgb(a,i,t+.3333333333333333)*255;case"g":return G4.hue2rgb(a,i,t)*255;case"b":return G4.hue2rgb(a,i,t-.3333333333333333)*255}},"hsl2rgb"),rgb2hsl:o(({r:t,g:e,b:r},n)=>{t/=255,e/=255,r/=255;let i=Math.max(t,e,r),a=Math.min(t,e,r),s=(i+a)/2;if(n==="l")return s*100;if(i===a)return 0;let l=i-a,u=s>.5?l/(2-i-a):l/(i+a);if(n==="s")return u*100;switch(i){case t:return((e-r)/l+(e<r?6:0))*60;case e:return((r-t)/l+2)*60;case r:return((t-e)/l+4)*60;default:return-1}},"rgb2hsl")},e$=G4});var fxe,r$,n$=N(()=>{"use strict";fxe={clamp:o((t,e,r)=>e>r?Math.min(e,Math.max(r,t)):Math.min(r,Math.max(e,t)),"clamp"),round:o(t=>Math.round(t*1e10)/1e10,"round")},r$=fxe});var dxe,i$,a$=N(()=>{"use strict";dxe={dec2hex:o(t=>{let e=Math.round(t).toString(16);return e.length>1?e:`0${e}`},"dec2hex")},i$=dxe});var pxe,jt,Wl=N(()=>{"use strict";t$();n$();a$();pxe={channel:e$,lang:r$,unit:i$},jt=pxe});var ru,Ii,ky=N(()=>{"use strict";Wl();ru={};for(let t=0;t<=255;t++)ru[t]=jt.unit.dec2hex(t);Ii={ALL:0,RGB:1,HSL:2}});var GC,s$,o$=N(()=>{"use strict";ky();GC=class{static{o(this,"Type")}constructor(){this.type=Ii.ALL}get(){return this.type}set(e){if(this.type&&this.type!==e)throw new Error("Cannot change both RGB and HSL channels at the same time");this.type=e}reset(){this.type=Ii.ALL}is(e){return this.type===e}},s$=GC});var VC,l$,c$=N(()=>{"use strict";Wl();o$();ky();VC=class{static{o(this,"Channels")}constructor(e,r){this.color=r,this.changed=!1,this.data=e,this.type=new s$}set(e,r){return this.color=r,this.changed=!1,this.data=e,this.type.type=Ii.ALL,this}_ensureHSL(){let e=this.data,{h:r,s:n,l:i}=e;r===void 0&&(e.h=jt.channel.rgb2hsl(e,"h")),n===void 0&&(e.s=jt.channel.rgb2hsl(e,"s")),i===void 0&&(e.l=jt.channel.rgb2hsl(e,"l"))}_ensureRGB(){let e=this.data,{r,g:n,b:i}=e;r===void 0&&(e.r=jt.channel.hsl2rgb(e,"r")),n===void 0&&(e.g=jt.channel.hsl2rgb(e,"g")),i===void 0&&(e.b=jt.channel.hsl2rgb(e,"b"))}get r(){let e=this.data,r=e.r;return!this.type.is(Ii.HSL)&&r!==void 0?r:(this._ensureHSL(),jt.channel.hsl2rgb(e,"r"))}get g(){let e=this.data,r=e.g;return!this.type.is(Ii.HSL)&&r!==void 0?r:(this._ensureHSL(),jt.channel.hsl2rgb(e,"g"))}get b(){let e=this.data,r=e.b;return!this.type.is(Ii.HSL)&&r!==void 0?r:(this._ensureHSL(),jt.channel.hsl2rgb(e,"b"))}get h(){let e=this.data,r=e.h;return!this.type.is(Ii.RGB)&&r!==void 0?r:(this._ensureRGB(),jt.channel.rgb2hsl(e,"h"))}get s(){let e=this.data,r=e.s;return!this.type.is(Ii.RGB)&&r!==void 0?r:(this._ensureRGB(),jt.channel.rgb2hsl(e,"s"))}get l(){let e=this.data,r=e.l;return!this.type.is(Ii.RGB)&&r!==void 0?r:(this._ensureRGB(),jt.channel.rgb2hsl(e,"l"))}get a(){return this.data.a}set r(e){this.type.set(Ii.RGB),this.changed=!0,this.data.r=e}set g(e){this.type.set(Ii.RGB),this.changed=!0,this.data.g=e}set b(e){this.type.set(Ii.RGB),this.changed=!0,this.data.b=e}set h(e){this.type.set(Ii.HSL),this.changed=!0,this.data.h=e}set s(e){this.type.set(Ii.HSL),this.changed=!0,this.data.s=e}set l(e){this.type.set(Ii.HSL),this.changed=!0,this.data.l=e}set a(e){this.changed=!0,this.data.a=e}},l$=VC});var mxe,ih,Ey=N(()=>{"use strict";c$();mxe=new l$({r:0,g:0,b:0,a:0},"transparent"),ih=mxe});var u$,jf,UC=N(()=>{"use strict";Ey();ky();u$={re:/^#((?:[a-f0-9]{2}){2,4}|[a-f0-9]{3})$/i,parse:o(t=>{if(t.charCodeAt(0)!==35)return;let e=t.match(u$.re);if(!e)return;let r=e[1],n=parseInt(r,16),i=r.length,a=i%4===0,s=i>4,l=s?1:17,u=s?8:4,h=a?0:-1,f=s?255:15;return ih.set({r:(n>>u*(h+3)&f)*l,g:(n>>u*(h+2)&f)*l,b:(n>>u*(h+1)&f)*l,a:a?(n&f)*l/255:1},t)},"parse"),stringify:o(t=>{let{r:e,g:r,b:n,a:i}=t;return i<1?`#${ru[Math.round(e)]}${ru[Math.round(r)]}${ru[Math.round(n)]}${ru[Math.round(i*255)]}`:`#${ru[Math.round(e)]}${ru[Math.round(r)]}${ru[Math.round(n)]}`},"stringify")},jf=u$});var V4,Sy,h$=N(()=>{"use strict";Wl();Ey();V4={re:/^hsla?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(?:deg|grad|rad|turn)?)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(%)?))?\s*?\)$/i,hueRe:/^(.+?)(deg|grad|rad|turn)$/i,_hue2deg:o(t=>{let e=t.match(V4.hueRe);if(e){let[,r,n]=e;switch(n){case"grad":return jt.channel.clamp.h(parseFloat(r)*.9);case"rad":return jt.channel.clamp.h(parseFloat(r)*180/Math.PI);case"turn":return jt.channel.clamp.h(parseFloat(r)*360)}}return jt.channel.clamp.h(parseFloat(t))},"_hue2deg"),parse:o(t=>{let e=t.charCodeAt(0);if(e!==104&&e!==72)return;let r=t.match(V4.re);if(!r)return;let[,n,i,a,s,l]=r;return ih.set({h:V4._hue2deg(n),s:jt.channel.clamp.s(parseFloat(i)),l:jt.channel.clamp.l(parseFloat(a)),a:s?jt.channel.clamp.a(l?parseFloat(s)/100:parseFloat(s)):1},t)},"parse"),stringify:o(t=>{let{h:e,s:r,l:n,a:i}=t;return i<1?`hsla(${jt.lang.round(e)}, ${jt.lang.round(r)}%, ${jt.lang.round(n)}%, ${i})`:`hsl(${jt.lang.round(e)}, ${jt.lang.round(r)}%, ${jt.lang.round(n)}%)`},"stringify")},Sy=V4});var U4,HC,f$=N(()=>{"use strict";UC();U4={colors:{aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyanaqua:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",transparent:"#00000000",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"},parse:o(t=>{t=t.toLowerCase();let e=U4.colors[t];if(e)return jf.parse(e)},"parse"),stringify:o(t=>{let e=jf.stringify(t);for(let r in U4.colors)if(U4.colors[r]===e)return r},"stringify")},HC=U4});var d$,Cy,p$=N(()=>{"use strict";Wl();Ey();d$={re:/^rgba?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?)))?\s*?\)$/i,parse:o(t=>{let e=t.charCodeAt(0);if(e!==114&&e!==82)return;let r=t.match(d$.re);if(!r)return;let[,n,i,a,s,l,u,h,f]=r;return ih.set({r:jt.channel.clamp.r(i?parseFloat(n)*2.55:parseFloat(n)),g:jt.channel.clamp.g(s?parseFloat(a)*2.55:parseFloat(a)),b:jt.channel.clamp.b(u?parseFloat(l)*2.55:parseFloat(l)),a:h?jt.channel.clamp.a(f?parseFloat(h)/100:parseFloat(h)):1},t)},"parse"),stringify:o(t=>{let{r:e,g:r,b:n,a:i}=t;return i<1?`rgba(${jt.lang.round(e)}, ${jt.lang.round(r)}, ${jt.lang.round(n)}, ${jt.lang.round(i)})`:`rgb(${jt.lang.round(e)}, ${jt.lang.round(r)}, ${jt.lang.round(n)})`},"stringify")},Cy=d$});var gxe,Oi,nu=N(()=>{"use strict";UC();h$();f$();p$();ky();gxe={format:{keyword:HC,hex:jf,rgb:Cy,rgba:Cy,hsl:Sy,hsla:Sy},parse:o(t=>{if(typeof t!="string")return t;let e=jf.parse(t)||Cy.parse(t)||Sy.parse(t)||HC.parse(t);if(e)return e;throw new Error(`Unsupported color format: "${t}"`)},"parse"),stringify:o(t=>!t.changed&&t.color?t.color:t.type.is(Ii.HSL)||t.data.r===void 0?Sy.stringify(t):t.a<1||!Number.isInteger(t.r)||!Number.isInteger(t.g)||!Number.isInteger(t.b)?Cy.stringify(t):jf.stringify(t),"stringify")},Oi=gxe});var yxe,H4,WC=N(()=>{"use strict";Wl();nu();yxe=o((t,e)=>{let r=Oi.parse(t);for(let n in e)r[n]=jt.channel.clamp[n](e[n]);return Oi.stringify(r)},"change"),H4=yxe});var vxe,qa,qC=N(()=>{"use strict";Wl();Ey();nu();WC();vxe=o((t,e,r=0,n=1)=>{if(typeof t!="number")return H4(t,{a:e});let i=ih.set({r:jt.channel.clamp.r(t),g:jt.channel.clamp.g(e),b:jt.channel.clamp.b(r),a:jt.channel.clamp.a(n)});return Oi.stringify(i)},"rgba"),qa=vxe});var xxe,Kf,m$=N(()=>{"use strict";Wl();nu();xxe=o((t,e)=>jt.lang.round(Oi.parse(t)[e]),"channel"),Kf=xxe});var bxe,g$,y$=N(()=>{"use strict";Wl();nu();bxe=o(t=>{let{r:e,g:r,b:n}=Oi.parse(t),i=.2126*jt.channel.toLinear(e)+.7152*jt.channel.toLinear(r)+.0722*jt.channel.toLinear(n);return jt.lang.round(i)},"luminance"),g$=bxe});var wxe,v$,x$=N(()=>{"use strict";y$();wxe=o(t=>g$(t)>=.5,"isLight"),v$=wxe});var Txe,ca,b$=N(()=>{"use strict";x$();Txe=o(t=>!v$(t),"isDark"),ca=Txe});var kxe,W4,YC=N(()=>{"use strict";Wl();nu();kxe=o((t,e,r)=>{let n=Oi.parse(t),i=n[e],a=jt.channel.clamp[e](i+r);return i!==a&&(n[e]=a),Oi.stringify(n)},"adjustChannel"),W4=kxe});var Exe,Dt,w$=N(()=>{"use strict";YC();Exe=o((t,e)=>W4(t,"l",e),"lighten"),Dt=Exe});var Sxe,Ot,T$=N(()=>{"use strict";YC();Sxe=o((t,e)=>W4(t,"l",-e),"darken"),Ot=Sxe});var Cxe,Me,k$=N(()=>{"use strict";nu();WC();Cxe=o((t,e)=>{let r=Oi.parse(t),n={};for(let i in e)e[i]&&(n[i]=r[i]+e[i]);return H4(t,n)},"adjust"),Me=Cxe});var Axe,E$,S$=N(()=>{"use strict";nu();qC();Axe=o((t,e,r=50)=>{let{r:n,g:i,b:a,a:s}=Oi.parse(t),{r:l,g:u,b:h,a:f}=Oi.parse(e),d=r/100,p=d*2-1,m=s-f,y=((p*m===-1?p:(p+m)/(1+p*m))+1)/2,v=1-y,x=n*y+l*v,b=i*y+u*v,w=a*y+h*v,C=s*d+f*(1-d);return qa(x,b,w,C)},"mix"),E$=Axe});var _xe,wt,C$=N(()=>{"use strict";nu();S$();_xe=o((t,e=100)=>{let r=Oi.parse(t);return r.r=255-r.r,r.g=255-r.g,r.b=255-r.b,E$(r,t,e)},"invert"),wt=_xe});var A$=N(()=>{"use strict";qC();m$();b$();w$();T$();k$();C$()});var Ys=N(()=>{"use strict";A$()});var ah,sh,Ay=N(()=>{"use strict";ah="#ffffff",sh="#f2f2f2"});var Ti,o0=N(()=>{"use strict";Ys();Ti=o((t,e)=>e?Me(t,{s:-40,l:10}):Me(t,{s:-40,l:-10}),"mkBorder")});var jC,_$,D$=N(()=>{"use strict";Ys();Ay();o0();jC=class{static{o(this,"Theme")}constructor(){this.background="#f4f4f4",this.primaryColor="#fff4dd",this.noteBkgColor="#fff5ad",this.noteTextColor="#333",this.THEME_COLOR_LIMIT=12,this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px"}updateColors(){if(this.primaryTextColor=this.primaryTextColor||(this.darkMode?"#eee":"#333"),this.secondaryColor=this.secondaryColor||Me(this.primaryColor,{h:-120}),this.tertiaryColor=this.tertiaryColor||Me(this.primaryColor,{h:180,l:5}),this.primaryBorderColor=this.primaryBorderColor||Ti(this.primaryColor,this.darkMode),this.secondaryBorderColor=this.secondaryBorderColor||Ti(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=this.tertiaryBorderColor||Ti(this.tertiaryColor,this.darkMode),this.noteBorderColor=this.noteBorderColor||Ti(this.noteBkgColor,this.darkMode),this.noteBkgColor=this.noteBkgColor||"#fff5ad",this.noteTextColor=this.noteTextColor||"#333",this.secondaryTextColor=this.secondaryTextColor||wt(this.secondaryColor),this.tertiaryTextColor=this.tertiaryTextColor||wt(this.tertiaryColor),this.lineColor=this.lineColor||wt(this.background),this.arrowheadColor=this.arrowheadColor||wt(this.background),this.textColor=this.textColor||this.primaryTextColor,this.border2=this.border2||this.tertiaryBorderColor,this.nodeBkg=this.nodeBkg||this.primaryColor,this.mainBkg=this.mainBkg||this.primaryColor,this.nodeBorder=this.nodeBorder||this.primaryBorderColor,this.clusterBkg=this.clusterBkg||this.tertiaryColor,this.clusterBorder=this.clusterBorder||this.tertiaryBorderColor,this.defaultLinkColor=this.defaultLinkColor||this.lineColor,this.titleColor=this.titleColor||this.tertiaryTextColor,this.edgeLabelBackground=this.edgeLabelBackground||(this.darkMode?Ot(this.secondaryColor,30):this.secondaryColor),this.nodeTextColor=this.nodeTextColor||this.primaryTextColor,this.actorBorder=this.actorBorder||this.primaryBorderColor,this.actorBkg=this.actorBkg||this.mainBkg,this.actorTextColor=this.actorTextColor||this.primaryTextColor,this.actorLineColor=this.actorLineColor||this.actorBorder,this.labelBoxBkgColor=this.labelBoxBkgColor||this.actorBkg,this.signalColor=this.signalColor||this.textColor,this.signalTextColor=this.signalTextColor||this.textColor,this.labelBoxBorderColor=this.labelBoxBorderColor||this.actorBorder,this.labelTextColor=this.labelTextColor||this.actorTextColor,this.loopTextColor=this.loopTextColor||this.actorTextColor,this.activationBorderColor=this.activationBorderColor||Ot(this.secondaryColor,10),this.activationBkgColor=this.activationBkgColor||this.secondaryColor,this.sequenceNumberColor=this.sequenceNumberColor||wt(this.lineColor),this.sectionBkgColor=this.sectionBkgColor||this.tertiaryColor,this.altSectionBkgColor=this.altSectionBkgColor||"white",this.sectionBkgColor=this.sectionBkgColor||this.secondaryColor,this.sectionBkgColor2=this.sectionBkgColor2||this.primaryColor,this.excludeBkgColor=this.excludeBkgColor||"#eeeeee",this.taskBorderColor=this.taskBorderColor||this.primaryBorderColor,this.taskBkgColor=this.taskBkgColor||this.primaryColor,this.activeTaskBorderColor=this.activeTaskBorderColor||this.primaryColor,this.activeTaskBkgColor=this.activeTaskBkgColor||Dt(this.primaryColor,23),this.gridColor=this.gridColor||"lightgrey",this.doneTaskBkgColor=this.doneTaskBkgColor||"lightgrey",this.doneTaskBorderColor=this.doneTaskBorderColor||"grey",this.critBorderColor=this.critBorderColor||"#ff8888",this.critBkgColor=this.critBkgColor||"red",this.todayLineColor=this.todayLineColor||"red",this.taskTextColor=this.taskTextColor||this.textColor,this.taskTextOutsideColor=this.taskTextOutsideColor||this.textColor,this.taskTextLightColor=this.taskTextLightColor||this.textColor,this.taskTextColor=this.taskTextColor||this.primaryTextColor,this.taskTextDarkColor=this.taskTextDarkColor||this.textColor,this.taskTextClickableColor=this.taskTextClickableColor||"#003163",this.personBorder=this.personBorder||this.primaryBorderColor,this.personBkg=this.personBkg||this.mainBkg,this.darkMode?(this.rowOdd=this.rowOdd||Ot(this.mainBkg,5)||"#ffffff",this.rowEven=this.rowEven||Ot(this.mainBkg,10)):(this.rowOdd=this.rowOdd||Dt(this.mainBkg,75)||"#ffffff",this.rowEven=this.rowEven||Dt(this.mainBkg,5)),this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||this.tertiaryColor,this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.nodeBorder,this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.transitionColor=this.transitionColor||this.lineColor,this.specialStateColor=this.lineColor,this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||Me(this.primaryColor,{h:30}),this.cScale4=this.cScale4||Me(this.primaryColor,{h:60}),this.cScale5=this.cScale5||Me(this.primaryColor,{h:90}),this.cScale6=this.cScale6||Me(this.primaryColor,{h:120}),this.cScale7=this.cScale7||Me(this.primaryColor,{h:150}),this.cScale8=this.cScale8||Me(this.primaryColor,{h:210,l:150}),this.cScale9=this.cScale9||Me(this.primaryColor,{h:270}),this.cScale10=this.cScale10||Me(this.primaryColor,{h:300}),this.cScale11=this.cScale11||Me(this.primaryColor,{h:330}),this.darkMode)for(let r=0;r<this.THEME_COLOR_LIMIT;r++)this["cScale"+r]=Ot(this["cScale"+r],75);else for(let r=0;r<this.THEME_COLOR_LIMIT;r++)this["cScale"+r]=Ot(this["cScale"+r],25);for(let r=0;r<this.THEME_COLOR_LIMIT;r++)this["cScaleInv"+r]=this["cScaleInv"+r]||wt(this["cScale"+r]);for(let r=0;r<this.THEME_COLOR_LIMIT;r++)this.darkMode?this["cScalePeer"+r]=this["cScalePeer"+r]||Dt(this["cScale"+r],10):this["cScalePeer"+r]=this["cScalePeer"+r]||Ot(this["cScale"+r],10);this.scaleLabelColor=this.scaleLabelColor||this.labelTextColor;for(let r=0;r<this.THEME_COLOR_LIMIT;r++)this["cScaleLabel"+r]=this["cScaleLabel"+r]||this.scaleLabelColor;let e=this.darkMode?-4:-1;for(let r=0;r<5;r++)this["surface"+r]=this["surface"+r]||Me(this.mainBkg,{h:180,s:-15,l:e*(5+r*3)}),this["surfacePeer"+r]=this["surfacePeer"+r]||Me(this.mainBkg,{h:180,s:-15,l:e*(8+r*3)});this.classText=this.classText||this.textColor,this.fillType0=this.fillType0||this.primaryColor,this.fillType1=this.fillType1||this.secondaryColor,this.fillType2=this.fillType2||Me(this.primaryColor,{h:64}),this.fillType3=this.fillType3||Me(this.secondaryColor,{h:64}),this.fillType4=this.fillType4||Me(this.primaryColor,{h:-64}),this.fillType5=this.fillType5||Me(this.secondaryColor,{h:-64}),this.fillType6=this.fillType6||Me(this.primaryColor,{h:128}),this.fillType7=this.fillType7||Me(this.secondaryColor,{h:128}),this.pie1=this.pie1||this.primaryColor,this.pie2=this.pie2||this.secondaryColor,this.pie3=this.pie3||this.tertiaryColor,this.pie4=this.pie4||Me(this.primaryColor,{l:-10}),this.pie5=this.pie5||Me(this.secondaryColor,{l:-10}),this.pie6=this.pie6||Me(this.tertiaryColor,{l:-10}),this.pie7=this.pie7||Me(this.primaryColor,{h:60,l:-10}),this.pie8=this.pie8||Me(this.primaryColor,{h:-60,l:-10}),this.pie9=this.pie9||Me(this.primaryColor,{h:120,l:0}),this.pie10=this.pie10||Me(this.primaryColor,{h:60,l:-20}),this.pie11=this.pie11||Me(this.primaryColor,{h:-60,l:-20}),this.pie12=this.pie12||Me(this.primaryColor,{h:120,l:-10}),this.pieTitleTextSize=this.pieTitleTextSize||"25px",this.pieTitleTextColor=this.pieTitleTextColor||this.taskTextDarkColor,this.pieSectionTextSize=this.pieSectionTextSize||"17px",this.pieSectionTextColor=this.pieSectionTextColor||this.textColor,this.pieLegendTextSize=this.pieLegendTextSize||"17px",this.pieLegendTextColor=this.pieLegendTextColor||this.taskTextDarkColor,this.pieStrokeColor=this.pieStrokeColor||"black",this.pieStrokeWidth=this.pieStrokeWidth||"2px",this.pieOuterStrokeWidth=this.pieOuterStrokeWidth||"2px",this.pieOuterStrokeColor=this.pieOuterStrokeColor||"black",this.pieOpacity=this.pieOpacity||"0.7",this.radar={axisColor:this.radar?.axisColor||this.lineColor,axisStrokeWidth:this.radar?.axisStrokeWidth||2,axisLabelFontSize:this.radar?.axisLabelFontSize||12,curveOpacity:this.radar?.curveOpacity||.5,curveStrokeWidth:this.radar?.curveStrokeWidth||2,graticuleColor:this.radar?.graticuleColor||"#DEDEDE",graticuleStrokeWidth:this.radar?.graticuleStrokeWidth||1,graticuleOpacity:this.radar?.graticuleOpacity||.3,legendBoxSize:this.radar?.legendBoxSize||12,legendFontSize:this.radar?.legendFontSize||12},this.archEdgeColor=this.archEdgeColor||"#777",this.archEdgeArrowColor=this.archEdgeArrowColor||"#777",this.archEdgeWidth=this.archEdgeWidth||"3",this.archGroupBorderColor=this.archGroupBorderColor||"#000",this.archGroupBorderWidth=this.archGroupBorderWidth||"2px",this.quadrant1Fill=this.quadrant1Fill||this.primaryColor,this.quadrant2Fill=this.quadrant2Fill||Me(this.primaryColor,{r:5,g:5,b:5}),this.quadrant3Fill=this.quadrant3Fill||Me(this.primaryColor,{r:10,g:10,b:10}),this.quadrant4Fill=this.quadrant4Fill||Me(this.primaryColor,{r:15,g:15,b:15}),this.quadrant1TextFill=this.quadrant1TextFill||this.primaryTextColor,this.quadrant2TextFill=this.quadrant2TextFill||Me(this.primaryTextColor,{r:-5,g:-5,b:-5}),this.quadrant3TextFill=this.quadrant3TextFill||Me(this.primaryTextColor,{r:-10,g:-10,b:-10}),this.quadrant4TextFill=this.quadrant4TextFill||Me(this.primaryTextColor,{r:-15,g:-15,b:-15}),this.quadrantPointFill=this.quadrantPointFill||ca(this.quadrant1Fill)?Dt(this.quadrant1Fill):Ot(this.quadrant1Fill),this.quadrantPointTextFill=this.quadrantPointTextFill||this.primaryTextColor,this.quadrantXAxisTextFill=this.quadrantXAxisTextFill||this.primaryTextColor,this.quadrantYAxisTextFill=this.quadrantYAxisTextFill||this.primaryTextColor,this.quadrantInternalBorderStrokeFill=this.quadrantInternalBorderStrokeFill||this.primaryBorderColor,this.quadrantExternalBorderStrokeFill=this.quadrantExternalBorderStrokeFill||this.primaryBorderColor,this.quadrantTitleFill=this.quadrantTitleFill||this.primaryTextColor,this.xyChart={backgroundColor:this.xyChart?.backgroundColor||this.background,titleColor:this.xyChart?.titleColor||this.primaryTextColor,xAxisTitleColor:this.xyChart?.xAxisTitleColor||this.primaryTextColor,xAxisLabelColor:this.xyChart?.xAxisLabelColor||this.primaryTextColor,xAxisTickColor:this.xyChart?.xAxisTickColor||this.primaryTextColor,xAxisLineColor:this.xyChart?.xAxisLineColor||this.primaryTextColor,yAxisTitleColor:this.xyChart?.yAxisTitleColor||this.primaryTextColor,yAxisLabelColor:this.xyChart?.yAxisLabelColor||this.primaryTextColor,yAxisTickColor:this.xyChart?.yAxisTickColor||this.primaryTextColor,yAxisLineColor:this.xyChart?.yAxisLineColor||this.primaryTextColor,plotColorPalette:this.xyChart?.plotColorPalette||"#FFF4DD,#FFD8B1,#FFA07A,#ECEFF1,#D6DBDF,#C3E0A8,#FFB6A4,#FFD74D,#738FA7,#FFFFF0"},this.requirementBackground=this.requirementBackground||this.primaryColor,this.requirementBorderColor=this.requirementBorderColor||this.primaryBorderColor,this.requirementBorderSize=this.requirementBorderSize||"1",this.requirementTextColor=this.requirementTextColor||this.primaryTextColor,this.relationColor=this.relationColor||this.lineColor,this.relationLabelBackground=this.relationLabelBackground||(this.darkMode?Ot(this.secondaryColor,30):this.secondaryColor),this.relationLabelColor=this.relationLabelColor||this.actorTextColor,this.git0=this.git0||this.primaryColor,this.git1=this.git1||this.secondaryColor,this.git2=this.git2||this.tertiaryColor,this.git3=this.git3||Me(this.primaryColor,{h:-30}),this.git4=this.git4||Me(this.primaryColor,{h:-60}),this.git5=this.git5||Me(this.primaryColor,{h:-90}),this.git6=this.git6||Me(this.primaryColor,{h:60}),this.git7=this.git7||Me(this.primaryColor,{h:120}),this.darkMode?(this.git0=Dt(this.git0,25),this.git1=Dt(this.git1,25),this.git2=Dt(this.git2,25),this.git3=Dt(this.git3,25),this.git4=Dt(this.git4,25),this.git5=Dt(this.git5,25),this.git6=Dt(this.git6,25),this.git7=Dt(this.git7,25)):(this.git0=Ot(this.git0,25),this.git1=Ot(this.git1,25),this.git2=Ot(this.git2,25),this.git3=Ot(this.git3,25),this.git4=Ot(this.git4,25),this.git5=Ot(this.git5,25),this.git6=Ot(this.git6,25),this.git7=Ot(this.git7,25)),this.gitInv0=this.gitInv0||wt(this.git0),this.gitInv1=this.gitInv1||wt(this.git1),this.gitInv2=this.gitInv2||wt(this.git2),this.gitInv3=this.gitInv3||wt(this.git3),this.gitInv4=this.gitInv4||wt(this.git4),this.gitInv5=this.gitInv5||wt(this.git5),this.gitInv6=this.gitInv6||wt(this.git6),this.gitInv7=this.gitInv7||wt(this.git7),this.branchLabelColor=this.branchLabelColor||(this.darkMode?"black":this.labelTextColor),this.gitBranchLabel0=this.gitBranchLabel0||this.branchLabelColor,this.gitBranchLabel1=this.gitBranchLabel1||this.branchLabelColor,this.gitBranchLabel2=this.gitBranchLabel2||this.branchLabelColor,this.gitBranchLabel3=this.gitBranchLabel3||this.branchLabelColor,this.gitBranchLabel4=this.gitBranchLabel4||this.branchLabelColor,this.gitBranchLabel5=this.gitBranchLabel5||this.branchLabelColor,this.gitBranchLabel6=this.gitBranchLabel6||this.branchLabelColor,this.gitBranchLabel7=this.gitBranchLabel7||this.branchLabelColor,this.tagLabelColor=this.tagLabelColor||this.primaryTextColor,this.tagLabelBackground=this.tagLabelBackground||this.primaryColor,this.tagLabelBorder=this.tagBorder||this.primaryBorderColor,this.tagLabelFontSize=this.tagLabelFontSize||"10px",this.commitLabelColor=this.commitLabelColor||this.secondaryTextColor,this.commitLabelBackground=this.commitLabelBackground||this.secondaryColor,this.commitLabelFontSize=this.commitLabelFontSize||"10px",this.attributeBackgroundColorOdd=this.attributeBackgroundColorOdd||ah,this.attributeBackgroundColorEven=this.attributeBackgroundColorEven||sh}calculate(e){if(typeof e!="object"){this.updateColors();return}let r=Object.keys(e);r.forEach(n=>{this[n]=e[n]}),this.updateColors(),r.forEach(n=>{this[n]=e[n]})}},_$=o(t=>{let e=new jC;return e.calculate(t),e},"getThemeVariables")});var KC,L$,R$=N(()=>{"use strict";Ys();o0();KC=class{static{o(this,"Theme")}constructor(){this.background="#333",this.primaryColor="#1f2020",this.secondaryColor=Dt(this.primaryColor,16),this.tertiaryColor=Me(this.primaryColor,{h:-160}),this.primaryBorderColor=wt(this.background),this.secondaryBorderColor=Ti(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=Ti(this.tertiaryColor,this.darkMode),this.primaryTextColor=wt(this.primaryColor),this.secondaryTextColor=wt(this.secondaryColor),this.tertiaryTextColor=wt(this.tertiaryColor),this.lineColor=wt(this.background),this.textColor=wt(this.background),this.mainBkg="#1f2020",this.secondBkg="calculated",this.mainContrastColor="lightgrey",this.darkTextColor=Dt(wt("#323D47"),10),this.lineColor="calculated",this.border1="#ccc",this.border2=qa(255,255,255,.25),this.arrowheadColor="calculated",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.labelBackground="#181818",this.textColor="#ccc",this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="#F9FFFE",this.edgeLabelBackground="calculated",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="calculated",this.actorLineColor="calculated",this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="calculated",this.activationBkgColor="calculated",this.sequenceNumberColor="black",this.sectionBkgColor=Ot("#EAE8D9",30),this.altSectionBkgColor="calculated",this.sectionBkgColor2="#EAE8D9",this.excludeBkgColor=Ot(this.sectionBkgColor,10),this.taskBorderColor=qa(255,255,255,70),this.taskBkgColor="calculated",this.taskTextColor="calculated",this.taskTextLightColor="calculated",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor=qa(255,255,255,50),this.activeTaskBkgColor="#81B1DB",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="grey",this.critBorderColor="#E83737",this.critBkgColor="#E83737",this.taskTextDarkColor="calculated",this.todayLineColor="#DB5757",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.archEdgeColor="calculated",this.archEdgeArrowColor="calculated",this.archEdgeWidth="3",this.archGroupBorderColor=this.primaryBorderColor,this.archGroupBorderWidth="2px",this.rowOdd=this.rowOdd||Dt(this.mainBkg,5)||"#ffffff",this.rowEven=this.rowEven||Ot(this.mainBkg,10),this.labelColor="calculated",this.errorBkgColor="#a44141",this.errorTextColor="#ddd"}updateColors(){this.secondBkg=Dt(this.mainBkg,16),this.lineColor=this.mainContrastColor,this.arrowheadColor=this.mainContrastColor,this.nodeBkg=this.mainBkg,this.nodeBorder=this.border1,this.clusterBkg=this.secondBkg,this.clusterBorder=this.border2,this.defaultLinkColor=this.lineColor,this.edgeLabelBackground=Dt(this.labelBackground,25),this.actorBorder=this.border1,this.actorBkg=this.mainBkg,this.actorTextColor=this.mainContrastColor,this.actorLineColor=this.actorBorder,this.signalColor=this.mainContrastColor,this.signalTextColor=this.mainContrastColor,this.labelBoxBkgColor=this.actorBkg,this.labelBoxBorderColor=this.actorBorder,this.labelTextColor=this.mainContrastColor,this.loopTextColor=this.mainContrastColor,this.noteBorderColor=this.secondaryBorderColor,this.noteBkgColor=this.secondBkg,this.noteTextColor=this.secondaryTextColor,this.activationBorderColor=this.border1,this.activationBkgColor=this.secondBkg,this.altSectionBkgColor=this.background,this.taskBkgColor=Dt(this.mainBkg,23),this.taskTextColor=this.darkTextColor,this.taskTextLightColor=this.mainContrastColor,this.taskTextOutsideColor=this.taskTextLightColor,this.gridColor=this.mainContrastColor,this.doneTaskBkgColor=this.mainContrastColor,this.taskTextDarkColor=this.darkTextColor,this.archEdgeColor=this.lineColor,this.archEdgeArrowColor=this.lineColor,this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||"#555",this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.primaryBorderColor,this.specialStateColor="#f4f4f4",this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.fillType0=this.primaryColor,this.fillType1=this.secondaryColor,this.fillType2=Me(this.primaryColor,{h:64}),this.fillType3=Me(this.secondaryColor,{h:64}),this.fillType4=Me(this.primaryColor,{h:-64}),this.fillType5=Me(this.secondaryColor,{h:-64}),this.fillType6=Me(this.primaryColor,{h:128}),this.fillType7=Me(this.secondaryColor,{h:128}),this.cScale1=this.cScale1||"#0b0000",this.cScale2=this.cScale2||"#4d1037",this.cScale3=this.cScale3||"#3f5258",this.cScale4=this.cScale4||"#4f2f1b",this.cScale5=this.cScale5||"#6e0a0a",this.cScale6=this.cScale6||"#3b0048",this.cScale7=this.cScale7||"#995a01",this.cScale8=this.cScale8||"#154706",this.cScale9=this.cScale9||"#161722",this.cScale10=this.cScale10||"#00296f",this.cScale11=this.cScale11||"#01629c",this.cScale12=this.cScale12||"#010029",this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||Me(this.primaryColor,{h:30}),this.cScale4=this.cScale4||Me(this.primaryColor,{h:60}),this.cScale5=this.cScale5||Me(this.primaryColor,{h:90}),this.cScale6=this.cScale6||Me(this.primaryColor,{h:120}),this.cScale7=this.cScale7||Me(this.primaryColor,{h:150}),this.cScale8=this.cScale8||Me(this.primaryColor,{h:210}),this.cScale9=this.cScale9||Me(this.primaryColor,{h:270}),this.cScale10=this.cScale10||Me(this.primaryColor,{h:300}),this.cScale11=this.cScale11||Me(this.primaryColor,{h:330});for(let e=0;e<this.THEME_COLOR_LIMIT;e++)this["cScaleInv"+e]=this["cScaleInv"+e]||wt(this["cScale"+e]);for(let e=0;e<this.THEME_COLOR_LIMIT;e++)this["cScalePeer"+e]=this["cScalePeer"+e]||Dt(this["cScale"+e],10);for(let e=0;e<5;e++)this["surface"+e]=this["surface"+e]||Me(this.mainBkg,{h:30,s:-30,l:-(-10+e*4)}),this["surfacePeer"+e]=this["surfacePeer"+e]||Me(this.mainBkg,{h:30,s:-30,l:-(-7+e*4)});this.scaleLabelColor=this.scaleLabelColor||(this.darkMode?"black":this.labelTextColor);for(let e=0;e<this.THEME_COLOR_LIMIT;e++)this["cScaleLabel"+e]=this["cScaleLabel"+e]||this.scaleLabelColor;for(let e=0;e<this.THEME_COLOR_LIMIT;e++)this["pie"+e]=this["cScale"+e];this.pieTitleTextSize=this.pieTitleTextSize||"25px",this.pieTitleTextColor=this.pieTitleTextColor||this.taskTextDarkColor,this.pieSectionTextSize=this.pieSectionTextSize||"17px",this.pieSectionTextColor=this.pieSectionTextColor||this.textColor,this.pieLegendTextSize=this.pieLegendTextSize||"17px",this.pieLegendTextColor=this.pieLegendTextColor||this.taskTextDarkColor,this.pieStrokeColor=this.pieStrokeColor||"black",this.pieStrokeWidth=this.pieStrokeWidth||"2px",this.pieOuterStrokeWidth=this.pieOuterStrokeWidth||"2px",this.pieOuterStrokeColor=this.pieOuterStrokeColor||"black",this.pieOpacity=this.pieOpacity||"0.7",this.quadrant1Fill=this.quadrant1Fill||this.primaryColor,this.quadrant2Fill=this.quadrant2Fill||Me(this.primaryColor,{r:5,g:5,b:5}),this.quadrant3Fill=this.quadrant3Fill||Me(this.primaryColor,{r:10,g:10,b:10}),this.quadrant4Fill=this.quadrant4Fill||Me(this.primaryColor,{r:15,g:15,b:15}),this.quadrant1TextFill=this.quadrant1TextFill||this.primaryTextColor,this.quadrant2TextFill=this.quadrant2TextFill||Me(this.primaryTextColor,{r:-5,g:-5,b:-5}),this.quadrant3TextFill=this.quadrant3TextFill||Me(this.primaryTextColor,{r:-10,g:-10,b:-10}),this.quadrant4TextFill=this.quadrant4TextFill||Me(this.primaryTextColor,{r:-15,g:-15,b:-15}),this.quadrantPointFill=this.quadrantPointFill||ca(this.quadrant1Fill)?Dt(this.quadrant1Fill):Ot(this.quadrant1Fill),this.quadrantPointTextFill=this.quadrantPointTextFill||this.primaryTextColor,this.quadrantXAxisTextFill=this.quadrantXAxisTextFill||this.primaryTextColor,this.quadrantYAxisTextFill=this.quadrantYAxisTextFill||this.primaryTextColor,this.quadrantInternalBorderStrokeFill=this.quadrantInternalBorderStrokeFill||this.primaryBorderColor,this.quadrantExternalBorderStrokeFill=this.quadrantExternalBorderStrokeFill||this.primaryBorderColor,this.quadrantTitleFill=this.quadrantTitleFill||this.primaryTextColor,this.xyChart={backgroundColor:this.xyChart?.backgroundColor||this.background,titleColor:this.xyChart?.titleColor||this.primaryTextColor,xAxisTitleColor:this.xyChart?.xAxisTitleColor||this.primaryTextColor,xAxisLabelColor:this.xyChart?.xAxisLabelColor||this.primaryTextColor,xAxisTickColor:this.xyChart?.xAxisTickColor||this.primaryTextColor,xAxisLineColor:this.xyChart?.xAxisLineColor||this.primaryTextColor,yAxisTitleColor:this.xyChart?.yAxisTitleColor||this.primaryTextColor,yAxisLabelColor:this.xyChart?.yAxisLabelColor||this.primaryTextColor,yAxisTickColor:this.xyChart?.yAxisTickColor||this.primaryTextColor,yAxisLineColor:this.xyChart?.yAxisLineColor||this.primaryTextColor,plotColorPalette:this.xyChart?.plotColorPalette||"#3498db,#2ecc71,#e74c3c,#f1c40f,#bdc3c7,#ffffff,#34495e,#9b59b6,#1abc9c,#e67e22"},this.packet={startByteColor:this.primaryTextColor,endByteColor:this.primaryTextColor,labelColor:this.primaryTextColor,titleColor:this.primaryTextColor,blockStrokeColor:this.primaryTextColor,blockFillColor:this.background},this.radar={axisColor:this.radar?.axisColor||this.lineColor,axisStrokeWidth:this.radar?.axisStrokeWidth||2,axisLabelFontSize:this.radar?.axisLabelFontSize||12,curveOpacity:this.radar?.curveOpacity||.5,curveStrokeWidth:this.radar?.curveStrokeWidth||2,graticuleColor:this.radar?.graticuleColor||"#DEDEDE",graticuleStrokeWidth:this.radar?.graticuleStrokeWidth||1,graticuleOpacity:this.radar?.graticuleOpacity||.3,legendBoxSize:this.radar?.legendBoxSize||12,legendFontSize:this.radar?.legendFontSize||12},this.classText=this.primaryTextColor,this.requirementBackground=this.requirementBackground||this.primaryColor,this.requirementBorderColor=this.requirementBorderColor||this.primaryBorderColor,this.requirementBorderSize=this.requirementBorderSize||"1",this.requirementTextColor=this.requirementTextColor||this.primaryTextColor,this.relationColor=this.relationColor||this.lineColor,this.relationLabelBackground=this.relationLabelBackground||(this.darkMode?Ot(this.secondaryColor,30):this.secondaryColor),this.relationLabelColor=this.relationLabelColor||this.actorTextColor,this.git0=Dt(this.secondaryColor,20),this.git1=Dt(this.pie2||this.secondaryColor,20),this.git2=Dt(this.pie3||this.tertiaryColor,20),this.git3=Dt(this.pie4||Me(this.primaryColor,{h:-30}),20),this.git4=Dt(this.pie5||Me(this.primaryColor,{h:-60}),20),this.git5=Dt(this.pie6||Me(this.primaryColor,{h:-90}),10),this.git6=Dt(this.pie7||Me(this.primaryColor,{h:60}),10),this.git7=Dt(this.pie8||Me(this.primaryColor,{h:120}),20),this.gitInv0=this.gitInv0||wt(this.git0),this.gitInv1=this.gitInv1||wt(this.git1),this.gitInv2=this.gitInv2||wt(this.git2),this.gitInv3=this.gitInv3||wt(this.git3),this.gitInv4=this.gitInv4||wt(this.git4),this.gitInv5=this.gitInv5||wt(this.git5),this.gitInv6=this.gitInv6||wt(this.git6),this.gitInv7=this.gitInv7||wt(this.git7),this.gitBranchLabel0=this.gitBranchLabel0||wt(this.labelTextColor),this.gitBranchLabel1=this.gitBranchLabel1||this.labelTextColor,this.gitBranchLabel2=this.gitBranchLabel2||this.labelTextColor,this.gitBranchLabel3=this.gitBranchLabel3||wt(this.labelTextColor),this.gitBranchLabel4=this.gitBranchLabel4||this.labelTextColor,this.gitBranchLabel5=this.gitBranchLabel5||this.labelTextColor,this.gitBranchLabel6=this.gitBranchLabel6||this.labelTextColor,this.gitBranchLabel7=this.gitBranchLabel7||this.labelTextColor,this.tagLabelColor=this.tagLabelColor||this.primaryTextColor,this.tagLabelBackground=this.tagLabelBackground||this.primaryColor,this.tagLabelBorder=this.tagBorder||this.primaryBorderColor,this.tagLabelFontSize=this.tagLabelFontSize||"10px",this.commitLabelColor=this.commitLabelColor||this.secondaryTextColor,this.commitLabelBackground=this.commitLabelBackground||this.secondaryColor,this.commitLabelFontSize=this.commitLabelFontSize||"10px",this.attributeBackgroundColorOdd=this.attributeBackgroundColorOdd||Dt(this.background,12),this.attributeBackgroundColorEven=this.attributeBackgroundColorEven||Dt(this.background,2),this.nodeBorder=this.nodeBorder||"#999"}calculate(e){if(typeof e!="object"){this.updateColors();return}let r=Object.keys(e);r.forEach(n=>{this[n]=e[n]}),this.updateColors(),r.forEach(n=>{this[n]=e[n]})}},L$=o(t=>{let e=new KC;return e.calculate(t),e},"getThemeVariables")});var QC,oh,_y=N(()=>{"use strict";Ys();o0();Ay();QC=class{static{o(this,"Theme")}constructor(){this.background="#f4f4f4",this.primaryColor="#ECECFF",this.secondaryColor=Me(this.primaryColor,{h:120}),this.secondaryColor="#ffffde",this.tertiaryColor=Me(this.primaryColor,{h:-160}),this.primaryBorderColor=Ti(this.primaryColor,this.darkMode),this.secondaryBorderColor=Ti(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=Ti(this.tertiaryColor,this.darkMode),this.primaryTextColor=wt(this.primaryColor),this.secondaryTextColor=wt(this.secondaryColor),this.tertiaryTextColor=wt(this.tertiaryColor),this.lineColor=wt(this.background),this.textColor=wt(this.background),this.background="white",this.mainBkg="#ECECFF",this.secondBkg="#ffffde",this.lineColor="#333333",this.border1="#9370DB",this.border2="#aaaa33",this.arrowheadColor="#333333",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.labelBackground="rgba(232,232,232, 0.8)",this.textColor="#333",this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="calculated",this.edgeLabelBackground="calculated",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="black",this.actorLineColor="calculated",this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="calculated",this.altSectionBkgColor="calculated",this.sectionBkgColor2="calculated",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="calculated",this.taskTextLightColor="calculated",this.taskTextColor=this.taskTextLightColor,this.taskTextDarkColor="calculated",this.taskTextOutsideColor=this.taskTextDarkColor,this.taskTextClickableColor="calculated",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="calculated",this.critBorderColor="calculated",this.critBkgColor="calculated",this.todayLineColor="calculated",this.sectionBkgColor=qa(102,102,255,.49),this.altSectionBkgColor="white",this.sectionBkgColor2="#fff400",this.taskBorderColor="#534fbc",this.taskBkgColor="#8a90dd",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="black",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="#534fbc",this.activeTaskBkgColor="#bfc7ff",this.gridColor="lightgrey",this.doneTaskBkgColor="lightgrey",this.doneTaskBorderColor="grey",this.critBorderColor="#ff8888",this.critBkgColor="red",this.todayLineColor="red",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.archEdgeColor="calculated",this.archEdgeArrowColor="calculated",this.archEdgeWidth="3",this.archGroupBorderColor=this.primaryBorderColor,this.archGroupBorderWidth="2px",this.rowOdd="calculated",this.rowEven="calculated",this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222",this.updateColors()}updateColors(){this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||Me(this.primaryColor,{h:30}),this.cScale4=this.cScale4||Me(this.primaryColor,{h:60}),this.cScale5=this.cScale5||Me(this.primaryColor,{h:90}),this.cScale6=this.cScale6||Me(this.primaryColor,{h:120}),this.cScale7=this.cScale7||Me(this.primaryColor,{h:150}),this.cScale8=this.cScale8||Me(this.primaryColor,{h:210}),this.cScale9=this.cScale9||Me(this.primaryColor,{h:270}),this.cScale10=this.cScale10||Me(this.primaryColor,{h:300}),this.cScale11=this.cScale11||Me(this.primaryColor,{h:330}),this.cScalePeer1=this.cScalePeer1||Ot(this.secondaryColor,45),this.cScalePeer2=this.cScalePeer2||Ot(this.tertiaryColor,40);for(let e=0;e<this.THEME_COLOR_LIMIT;e++)this["cScale"+e]=Ot(this["cScale"+e],10),this["cScalePeer"+e]=this["cScalePeer"+e]||Ot(this["cScale"+e],25);for(let e=0;e<this.THEME_COLOR_LIMIT;e++)this["cScaleInv"+e]=this["cScaleInv"+e]||Me(this["cScale"+e],{h:180});for(let e=0;e<5;e++)this["surface"+e]=this["surface"+e]||Me(this.mainBkg,{h:30,l:-(5+e*5)}),this["surfacePeer"+e]=this["surfacePeer"+e]||Me(this.mainBkg,{h:30,l:-(7+e*5)});if(this.scaleLabelColor=this.scaleLabelColor!=="calculated"&&this.scaleLabelColor?this.scaleLabelColor:this.labelTextColor,this.labelTextColor!=="calculated"){this.cScaleLabel0=this.cScaleLabel0||wt(this.labelTextColor),this.cScaleLabel3=this.cScaleLabel3||wt(this.labelTextColor);for(let e=0;e<this.THEME_COLOR_LIMIT;e++)this["cScaleLabel"+e]=this["cScaleLabel"+e]||this.labelTextColor}this.nodeBkg=this.mainBkg,this.nodeBorder=this.border1,this.clusterBkg=this.secondBkg,this.clusterBorder=this.border2,this.defaultLinkColor=this.lineColor,this.titleColor=this.textColor,this.edgeLabelBackground=this.labelBackground,this.actorBorder=Dt(this.border1,23),this.actorBkg=this.mainBkg,this.labelBoxBkgColor=this.actorBkg,this.signalColor=this.textColor,this.signalTextColor=this.textColor,this.labelBoxBorderColor=this.actorBorder,this.labelTextColor=this.actorTextColor,this.loopTextColor=this.actorTextColor,this.noteBorderColor=this.border2,this.noteTextColor=this.actorTextColor,this.actorLineColor=this.actorBorder,this.taskTextColor=this.taskTextLightColor,this.taskTextOutsideColor=this.taskTextDarkColor,this.archEdgeColor=this.lineColor,this.archEdgeArrowColor=this.lineColor,this.rowOdd=this.rowOdd||Dt(this.primaryColor,75)||"#ffffff",this.rowEven=this.rowEven||Dt(this.primaryColor,1),this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||"#f0f0f0",this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.nodeBorder,this.specialStateColor=this.lineColor,this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.transitionColor=this.transitionColor||this.lineColor,this.classText=this.primaryTextColor,this.fillType0=this.primaryColor,this.fillType1=this.secondaryColor,this.fillType2=Me(this.primaryColor,{h:64}),this.fillType3=Me(this.secondaryColor,{h:64}),this.fillType4=Me(this.primaryColor,{h:-64}),this.fillType5=Me(this.secondaryColor,{h:-64}),this.fillType6=Me(this.primaryColor,{h:128}),this.fillType7=Me(this.secondaryColor,{h:128}),this.pie1=this.pie1||this.primaryColor,this.pie2=this.pie2||this.secondaryColor,this.pie3=this.pie3||Me(this.tertiaryColor,{l:-40}),this.pie4=this.pie4||Me(this.primaryColor,{l:-10}),this.pie5=this.pie5||Me(this.secondaryColor,{l:-30}),this.pie6=this.pie6||Me(this.tertiaryColor,{l:-20}),this.pie7=this.pie7||Me(this.primaryColor,{h:60,l:-20}),this.pie8=this.pie8||Me(this.primaryColor,{h:-60,l:-40}),this.pie9=this.pie9||Me(this.primaryColor,{h:120,l:-40}),this.pie10=this.pie10||Me(this.primaryColor,{h:60,l:-40}),this.pie11=this.pie11||Me(this.primaryColor,{h:-90,l:-40}),this.pie12=this.pie12||Me(this.primaryColor,{h:120,l:-30}),this.pieTitleTextSize=this.pieTitleTextSize||"25px",this.pieTitleTextColor=this.pieTitleTextColor||this.taskTextDarkColor,this.pieSectionTextSize=this.pieSectionTextSize||"17px",this.pieSectionTextColor=this.pieSectionTextColor||this.textColor,this.pieLegendTextSize=this.pieLegendTextSize||"17px",this.pieLegendTextColor=this.pieLegendTextColor||this.taskTextDarkColor,this.pieStrokeColor=this.pieStrokeColor||"black",this.pieStrokeWidth=this.pieStrokeWidth||"2px",this.pieOuterStrokeWidth=this.pieOuterStrokeWidth||"2px",this.pieOuterStrokeColor=this.pieOuterStrokeColor||"black",this.pieOpacity=this.pieOpacity||"0.7",this.quadrant1Fill=this.quadrant1Fill||this.primaryColor,this.quadrant2Fill=this.quadrant2Fill||Me(this.primaryColor,{r:5,g:5,b:5}),this.quadrant3Fill=this.quadrant3Fill||Me(this.primaryColor,{r:10,g:10,b:10}),this.quadrant4Fill=this.quadrant4Fill||Me(this.primaryColor,{r:15,g:15,b:15}),this.quadrant1TextFill=this.quadrant1TextFill||this.primaryTextColor,this.quadrant2TextFill=this.quadrant2TextFill||Me(this.primaryTextColor,{r:-5,g:-5,b:-5}),this.quadrant3TextFill=this.quadrant3TextFill||Me(this.primaryTextColor,{r:-10,g:-10,b:-10}),this.quadrant4TextFill=this.quadrant4TextFill||Me(this.primaryTextColor,{r:-15,g:-15,b:-15}),this.quadrantPointFill=this.quadrantPointFill||ca(this.quadrant1Fill)?Dt(this.quadrant1Fill):Ot(this.quadrant1Fill),this.quadrantPointTextFill=this.quadrantPointTextFill||this.primaryTextColor,this.quadrantXAxisTextFill=this.quadrantXAxisTextFill||this.primaryTextColor,this.quadrantYAxisTextFill=this.quadrantYAxisTextFill||this.primaryTextColor,this.quadrantInternalBorderStrokeFill=this.quadrantInternalBorderStrokeFill||this.primaryBorderColor,this.quadrantExternalBorderStrokeFill=this.quadrantExternalBorderStrokeFill||this.primaryBorderColor,this.quadrantTitleFill=this.quadrantTitleFill||this.primaryTextColor,this.radar={axisColor:this.radar?.axisColor||this.lineColor,axisStrokeWidth:this.radar?.axisStrokeWidth||2,axisLabelFontSize:this.radar?.axisLabelFontSize||12,curveOpacity:this.radar?.curveOpacity||.5,curveStrokeWidth:this.radar?.curveStrokeWidth||2,graticuleColor:this.radar?.graticuleColor||"#DEDEDE",graticuleStrokeWidth:this.radar?.graticuleStrokeWidth||1,graticuleOpacity:this.radar?.graticuleOpacity||.3,legendBoxSize:this.radar?.legendBoxSize||12,legendFontSize:this.radar?.legendFontSize||12},this.xyChart={backgroundColor:this.xyChart?.backgroundColor||this.background,titleColor:this.xyChart?.titleColor||this.primaryTextColor,xAxisTitleColor:this.xyChart?.xAxisTitleColor||this.primaryTextColor,xAxisLabelColor:this.xyChart?.xAxisLabelColor||this.primaryTextColor,xAxisTickColor:this.xyChart?.xAxisTickColor||this.primaryTextColor,xAxisLineColor:this.xyChart?.xAxisLineColor||this.primaryTextColor,yAxisTitleColor:this.xyChart?.yAxisTitleColor||this.primaryTextColor,yAxisLabelColor:this.xyChart?.yAxisLabelColor||this.primaryTextColor,yAxisTickColor:this.xyChart?.yAxisTickColor||this.primaryTextColor,yAxisLineColor:this.xyChart?.yAxisLineColor||this.primaryTextColor,plotColorPalette:this.xyChart?.plotColorPalette||"#ECECFF,#8493A6,#FFC3A0,#DCDDE1,#B8E994,#D1A36F,#C3CDE6,#FFB6C1,#496078,#F8F3E3"},this.requirementBackground=this.requirementBackground||this.primaryColor,this.requirementBorderColor=this.requirementBorderColor||this.primaryBorderColor,this.requirementBorderSize=this.requirementBorderSize||"1",this.requirementTextColor=this.requirementTextColor||this.primaryTextColor,this.relationColor=this.relationColor||this.lineColor,this.relationLabelBackground=this.relationLabelBackground||this.labelBackground,this.relationLabelColor=this.relationLabelColor||this.actorTextColor,this.git0=this.git0||this.primaryColor,this.git1=this.git1||this.secondaryColor,this.git2=this.git2||this.tertiaryColor,this.git3=this.git3||Me(this.primaryColor,{h:-30}),this.git4=this.git4||Me(this.primaryColor,{h:-60}),this.git5=this.git5||Me(this.primaryColor,{h:-90}),this.git6=this.git6||Me(this.primaryColor,{h:60}),this.git7=this.git7||Me(this.primaryColor,{h:120}),this.darkMode?(this.git0=Dt(this.git0,25),this.git1=Dt(this.git1,25),this.git2=Dt(this.git2,25),this.git3=Dt(this.git3,25),this.git4=Dt(this.git4,25),this.git5=Dt(this.git5,25),this.git6=Dt(this.git6,25),this.git7=Dt(this.git7,25)):(this.git0=Ot(this.git0,25),this.git1=Ot(this.git1,25),this.git2=Ot(this.git2,25),this.git3=Ot(this.git3,25),this.git4=Ot(this.git4,25),this.git5=Ot(this.git5,25),this.git6=Ot(this.git6,25),this.git7=Ot(this.git7,25)),this.gitInv0=this.gitInv0||Ot(wt(this.git0),25),this.gitInv1=this.gitInv1||wt(this.git1),this.gitInv2=this.gitInv2||wt(this.git2),this.gitInv3=this.gitInv3||wt(this.git3),this.gitInv4=this.gitInv4||wt(this.git4),this.gitInv5=this.gitInv5||wt(this.git5),this.gitInv6=this.gitInv6||wt(this.git6),this.gitInv7=this.gitInv7||wt(this.git7),this.gitBranchLabel0=this.gitBranchLabel0||wt(this.labelTextColor),this.gitBranchLabel1=this.gitBranchLabel1||this.labelTextColor,this.gitBranchLabel2=this.gitBranchLabel2||this.labelTextColor,this.gitBranchLabel3=this.gitBranchLabel3||wt(this.labelTextColor),this.gitBranchLabel4=this.gitBranchLabel4||this.labelTextColor,this.gitBranchLabel5=this.gitBranchLabel5||this.labelTextColor,this.gitBranchLabel6=this.gitBranchLabel6||this.labelTextColor,this.gitBranchLabel7=this.gitBranchLabel7||this.labelTextColor,this.tagLabelColor=this.tagLabelColor||this.primaryTextColor,this.tagLabelBackground=this.tagLabelBackground||this.primaryColor,this.tagLabelBorder=this.tagBorder||this.primaryBorderColor,this.tagLabelFontSize=this.tagLabelFontSize||"10px",this.commitLabelColor=this.commitLabelColor||this.secondaryTextColor,this.commitLabelBackground=this.commitLabelBackground||this.secondaryColor,this.commitLabelFontSize=this.commitLabelFontSize||"10px",this.attributeBackgroundColorOdd=this.attributeBackgroundColorOdd||ah,this.attributeBackgroundColorEven=this.attributeBackgroundColorEven||sh}calculate(e){if(Object.keys(this).forEach(n=>{this[n]==="calculated"&&(this[n]=void 0)}),typeof e!="object"){this.updateColors();return}let r=Object.keys(e);r.forEach(n=>{this[n]=e[n]}),this.updateColors(),r.forEach(n=>{this[n]=e[n]})}},oh=o(t=>{let e=new QC;return e.calculate(t),e},"getThemeVariables")});var ZC,N$,M$=N(()=>{"use strict";Ys();Ay();o0();ZC=class{static{o(this,"Theme")}constructor(){this.background="#f4f4f4",this.primaryColor="#cde498",this.secondaryColor="#cdffb2",this.background="white",this.mainBkg="#cde498",this.secondBkg="#cdffb2",this.lineColor="green",this.border1="#13540c",this.border2="#6eaa49",this.arrowheadColor="green",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.tertiaryColor=Dt("#cde498",10),this.primaryBorderColor=Ti(this.primaryColor,this.darkMode),this.secondaryBorderColor=Ti(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=Ti(this.tertiaryColor,this.darkMode),this.primaryTextColor=wt(this.primaryColor),this.secondaryTextColor=wt(this.secondaryColor),this.tertiaryTextColor=wt(this.primaryColor),this.lineColor=wt(this.background),this.textColor=wt(this.background),this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="#333",this.edgeLabelBackground="#e8e8e8",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="black",this.actorLineColor="calculated",this.signalColor="#333",this.signalTextColor="#333",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="#326932",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="#6eaa49",this.altSectionBkgColor="white",this.sectionBkgColor2="#6eaa49",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="#487e3a",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="black",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="lightgrey",this.doneTaskBkgColor="lightgrey",this.doneTaskBorderColor="grey",this.critBorderColor="#ff8888",this.critBkgColor="red",this.todayLineColor="red",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.archEdgeColor="calculated",this.archEdgeArrowColor="calculated",this.archEdgeWidth="3",this.archGroupBorderColor=this.primaryBorderColor,this.archGroupBorderWidth="2px",this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222"}updateColors(){this.actorBorder=Ot(this.mainBkg,20),this.actorBkg=this.mainBkg,this.labelBoxBkgColor=this.actorBkg,this.labelTextColor=this.actorTextColor,this.loopTextColor=this.actorTextColor,this.noteBorderColor=this.border2,this.noteTextColor=this.actorTextColor,this.actorLineColor=this.actorBorder,this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||Me(this.primaryColor,{h:30}),this.cScale4=this.cScale4||Me(this.primaryColor,{h:60}),this.cScale5=this.cScale5||Me(this.primaryColor,{h:90}),this.cScale6=this.cScale6||Me(this.primaryColor,{h:120}),this.cScale7=this.cScale7||Me(this.primaryColor,{h:150}),this.cScale8=this.cScale8||Me(this.primaryColor,{h:210}),this.cScale9=this.cScale9||Me(this.primaryColor,{h:270}),this.cScale10=this.cScale10||Me(this.primaryColor,{h:300}),this.cScale11=this.cScale11||Me(this.primaryColor,{h:330}),this.cScalePeer1=this.cScalePeer1||Ot(this.secondaryColor,45),this.cScalePeer2=this.cScalePeer2||Ot(this.tertiaryColor,40);for(let e=0;e<this.THEME_COLOR_LIMIT;e++)this["cScale"+e]=Ot(this["cScale"+e],10),this["cScalePeer"+e]=this["cScalePeer"+e]||Ot(this["cScale"+e],25);for(let e=0;e<this.THEME_COLOR_LIMIT;e++)this["cScaleInv"+e]=this["cScaleInv"+e]||Me(this["cScale"+e],{h:180});this.scaleLabelColor=this.scaleLabelColor!=="calculated"&&this.scaleLabelColor?this.scaleLabelColor:this.labelTextColor;for(let e=0;e<this.THEME_COLOR_LIMIT;e++)this["cScaleLabel"+e]=this["cScaleLabel"+e]||this.scaleLabelColor;for(let e=0;e<5;e++)this["surface"+e]=this["surface"+e]||Me(this.mainBkg,{h:30,s:-30,l:-(5+e*5)}),this["surfacePeer"+e]=this["surfacePeer"+e]||Me(this.mainBkg,{h:30,s:-30,l:-(8+e*5)});this.nodeBkg=this.mainBkg,this.nodeBorder=this.border1,this.clusterBkg=this.secondBkg,this.clusterBorder=this.border2,this.defaultLinkColor=this.lineColor,this.taskBorderColor=this.border1,this.taskTextColor=this.taskTextLightColor,this.taskTextOutsideColor=this.taskTextDarkColor,this.activeTaskBorderColor=this.taskBorderColor,this.activeTaskBkgColor=this.mainBkg,this.archEdgeColor=this.lineColor,this.archEdgeArrowColor=this.lineColor,this.rowOdd=this.rowOdd||Dt(this.mainBkg,75)||"#ffffff",this.rowEven=this.rowEven||Dt(this.mainBkg,20),this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||"#f0f0f0",this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.primaryBorderColor,this.specialStateColor=this.lineColor,this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.transitionColor=this.transitionColor||this.lineColor,this.classText=this.primaryTextColor,this.fillType0=this.primaryColor,this.fillType1=this.secondaryColor,this.fillType2=Me(this.primaryColor,{h:64}),this.fillType3=Me(this.secondaryColor,{h:64}),this.fillType4=Me(this.primaryColor,{h:-64}),this.fillType5=Me(this.secondaryColor,{h:-64}),this.fillType6=Me(this.primaryColor,{h:128}),this.fillType7=Me(this.secondaryColor,{h:128}),this.pie1=this.pie1||this.primaryColor,this.pie2=this.pie2||this.secondaryColor,this.pie3=this.pie3||this.tertiaryColor,this.pie4=this.pie4||Me(this.primaryColor,{l:-30}),this.pie5=this.pie5||Me(this.secondaryColor,{l:-30}),this.pie6=this.pie6||Me(this.tertiaryColor,{h:40,l:-40}),this.pie7=this.pie7||Me(this.primaryColor,{h:60,l:-10}),this.pie8=this.pie8||Me(this.primaryColor,{h:-60,l:-10}),this.pie9=this.pie9||Me(this.primaryColor,{h:120,l:0}),this.pie10=this.pie10||Me(this.primaryColor,{h:60,l:-50}),this.pie11=this.pie11||Me(this.primaryColor,{h:-60,l:-50}),this.pie12=this.pie12||Me(this.primaryColor,{h:120,l:-50}),this.pieTitleTextSize=this.pieTitleTextSize||"25px",this.pieTitleTextColor=this.pieTitleTextColor||this.taskTextDarkColor,this.pieSectionTextSize=this.pieSectionTextSize||"17px",this.pieSectionTextColor=this.pieSectionTextColor||this.textColor,this.pieLegendTextSize=this.pieLegendTextSize||"17px",this.pieLegendTextColor=this.pieLegendTextColor||this.taskTextDarkColor,this.pieStrokeColor=this.pieStrokeColor||"black",this.pieStrokeWidth=this.pieStrokeWidth||"2px",this.pieOuterStrokeWidth=this.pieOuterStrokeWidth||"2px",this.pieOuterStrokeColor=this.pieOuterStrokeColor||"black",this.pieOpacity=this.pieOpacity||"0.7",this.quadrant1Fill=this.quadrant1Fill||this.primaryColor,this.quadrant2Fill=this.quadrant2Fill||Me(this.primaryColor,{r:5,g:5,b:5}),this.quadrant3Fill=this.quadrant3Fill||Me(this.primaryColor,{r:10,g:10,b:10}),this.quadrant4Fill=this.quadrant4Fill||Me(this.primaryColor,{r:15,g:15,b:15}),this.quadrant1TextFill=this.quadrant1TextFill||this.primaryTextColor,this.quadrant2TextFill=this.quadrant2TextFill||Me(this.primaryTextColor,{r:-5,g:-5,b:-5}),this.quadrant3TextFill=this.quadrant3TextFill||Me(this.primaryTextColor,{r:-10,g:-10,b:-10}),this.quadrant4TextFill=this.quadrant4TextFill||Me(this.primaryTextColor,{r:-15,g:-15,b:-15}),this.quadrantPointFill=this.quadrantPointFill||ca(this.quadrant1Fill)?Dt(this.quadrant1Fill):Ot(this.quadrant1Fill),this.quadrantPointTextFill=this.quadrantPointTextFill||this.primaryTextColor,this.quadrantXAxisTextFill=this.quadrantXAxisTextFill||this.primaryTextColor,this.quadrantYAxisTextFill=this.quadrantYAxisTextFill||this.primaryTextColor,this.quadrantInternalBorderStrokeFill=this.quadrantInternalBorderStrokeFill||this.primaryBorderColor,this.quadrantExternalBorderStrokeFill=this.quadrantExternalBorderStrokeFill||this.primaryBorderColor,this.quadrantTitleFill=this.quadrantTitleFill||this.primaryTextColor,this.packet={startByteColor:this.primaryTextColor,endByteColor:this.primaryTextColor,labelColor:this.primaryTextColor,titleColor:this.primaryTextColor,blockStrokeColor:this.primaryTextColor,blockFillColor:this.mainBkg},this.radar={axisColor:this.radar?.axisColor||this.lineColor,axisStrokeWidth:this.radar?.axisStrokeWidth||2,axisLabelFontSize:this.radar?.axisLabelFontSize||12,curveOpacity:this.radar?.curveOpacity||.5,curveStrokeWidth:this.radar?.curveStrokeWidth||2,graticuleColor:this.radar?.graticuleColor||"#DEDEDE",graticuleStrokeWidth:this.radar?.graticuleStrokeWidth||1,graticuleOpacity:this.radar?.graticuleOpacity||.3,legendBoxSize:this.radar?.legendBoxSize||12,legendFontSize:this.radar?.legendFontSize||12},this.xyChart={backgroundColor:this.xyChart?.backgroundColor||this.background,titleColor:this.xyChart?.titleColor||this.primaryTextColor,xAxisTitleColor:this.xyChart?.xAxisTitleColor||this.primaryTextColor,xAxisLabelColor:this.xyChart?.xAxisLabelColor||this.primaryTextColor,xAxisTickColor:this.xyChart?.xAxisTickColor||this.primaryTextColor,xAxisLineColor:this.xyChart?.xAxisLineColor||this.primaryTextColor,yAxisTitleColor:this.xyChart?.yAxisTitleColor||this.primaryTextColor,yAxisLabelColor:this.xyChart?.yAxisLabelColor||this.primaryTextColor,yAxisTickColor:this.xyChart?.yAxisTickColor||this.primaryTextColor,yAxisLineColor:this.xyChart?.yAxisLineColor||this.primaryTextColor,plotColorPalette:this.xyChart?.plotColorPalette||"#CDE498,#FF6B6B,#A0D2DB,#D7BDE2,#F0F0F0,#FFC3A0,#7FD8BE,#FF9A8B,#FAF3E0,#FFF176"},this.requirementBackground=this.requirementBackground||this.primaryColor,this.requirementBorderColor=this.requirementBorderColor||this.primaryBorderColor,this.requirementBorderSize=this.requirementBorderSize||"1",this.requirementTextColor=this.requirementTextColor||this.primaryTextColor,this.relationColor=this.relationColor||this.lineColor,this.relationLabelBackground=this.relationLabelBackground||this.edgeLabelBackground,this.relationLabelColor=this.relationLabelColor||this.actorTextColor,this.git0=this.git0||this.primaryColor,this.git1=this.git1||this.secondaryColor,this.git2=this.git2||this.tertiaryColor,this.git3=this.git3||Me(this.primaryColor,{h:-30}),this.git4=this.git4||Me(this.primaryColor,{h:-60}),this.git5=this.git5||Me(this.primaryColor,{h:-90}),this.git6=this.git6||Me(this.primaryColor,{h:60}),this.git7=this.git7||Me(this.primaryColor,{h:120}),this.darkMode?(this.git0=Dt(this.git0,25),this.git1=Dt(this.git1,25),this.git2=Dt(this.git2,25),this.git3=Dt(this.git3,25),this.git4=Dt(this.git4,25),this.git5=Dt(this.git5,25),this.git6=Dt(this.git6,25),this.git7=Dt(this.git7,25)):(this.git0=Ot(this.git0,25),this.git1=Ot(this.git1,25),this.git2=Ot(this.git2,25),this.git3=Ot(this.git3,25),this.git4=Ot(this.git4,25),this.git5=Ot(this.git5,25),this.git6=Ot(this.git6,25),this.git7=Ot(this.git7,25)),this.gitInv0=this.gitInv0||wt(this.git0),this.gitInv1=this.gitInv1||wt(this.git1),this.gitInv2=this.gitInv2||wt(this.git2),this.gitInv3=this.gitInv3||wt(this.git3),this.gitInv4=this.gitInv4||wt(this.git4),this.gitInv5=this.gitInv5||wt(this.git5),this.gitInv6=this.gitInv6||wt(this.git6),this.gitInv7=this.gitInv7||wt(this.git7),this.gitBranchLabel0=this.gitBranchLabel0||wt(this.labelTextColor),this.gitBranchLabel1=this.gitBranchLabel1||this.labelTextColor,this.gitBranchLabel2=this.gitBranchLabel2||this.labelTextColor,this.gitBranchLabel3=this.gitBranchLabel3||wt(this.labelTextColor),this.gitBranchLabel4=this.gitBranchLabel4||this.labelTextColor,this.gitBranchLabel5=this.gitBranchLabel5||this.labelTextColor,this.gitBranchLabel6=this.gitBranchLabel6||this.labelTextColor,this.gitBranchLabel7=this.gitBranchLabel7||this.labelTextColor,this.tagLabelColor=this.tagLabelColor||this.primaryTextColor,this.tagLabelBackground=this.tagLabelBackground||this.primaryColor,this.tagLabelBorder=this.tagBorder||this.primaryBorderColor,this.tagLabelFontSize=this.tagLabelFontSize||"10px",this.commitLabelColor=this.commitLabelColor||this.secondaryTextColor,this.commitLabelBackground=this.commitLabelBackground||this.secondaryColor,this.commitLabelFontSize=this.commitLabelFontSize||"10px",this.attributeBackgroundColorOdd=this.attributeBackgroundColorOdd||ah,this.attributeBackgroundColorEven=this.attributeBackgroundColorEven||sh}calculate(e){if(typeof e!="object"){this.updateColors();return}let r=Object.keys(e);r.forEach(n=>{this[n]=e[n]}),this.updateColors(),r.forEach(n=>{this[n]=e[n]})}},N$=o(t=>{let e=new ZC;return e.calculate(t),e},"getThemeVariables")});var JC,I$,O$=N(()=>{"use strict";Ys();o0();Ay();JC=class{static{o(this,"Theme")}constructor(){this.primaryColor="#eee",this.contrast="#707070",this.secondaryColor=Dt(this.contrast,55),this.background="#ffffff",this.tertiaryColor=Me(this.primaryColor,{h:-160}),this.primaryBorderColor=Ti(this.primaryColor,this.darkMode),this.secondaryBorderColor=Ti(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=Ti(this.tertiaryColor,this.darkMode),this.primaryTextColor=wt(this.primaryColor),this.secondaryTextColor=wt(this.secondaryColor),this.tertiaryTextColor=wt(this.tertiaryColor),this.lineColor=wt(this.background),this.textColor=wt(this.background),this.mainBkg="#eee",this.secondBkg="calculated",this.lineColor="#666",this.border1="#999",this.border2="calculated",this.note="#ffa",this.text="#333",this.critical="#d42",this.done="#bbb",this.arrowheadColor="#333333",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="calculated",this.edgeLabelBackground="white",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="calculated",this.actorLineColor=this.actorBorder,this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="calculated",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="calculated",this.altSectionBkgColor="white",this.sectionBkgColor2="calculated",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="calculated",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="calculated",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="calculated",this.critBkgColor="calculated",this.critBorderColor="calculated",this.todayLineColor="calculated",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.archEdgeColor="calculated",this.archEdgeArrowColor="calculated",this.archEdgeWidth="3",this.archGroupBorderColor=this.primaryBorderColor,this.archGroupBorderWidth="2px",this.rowOdd=this.rowOdd||Dt(this.mainBkg,75)||"#ffffff",this.rowEven=this.rowEven||"#f4f4f4",this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222"}updateColors(){this.secondBkg=Dt(this.contrast,55),this.border2=this.contrast,this.actorBorder=Dt(this.border1,23),this.actorBkg=this.mainBkg,this.actorTextColor=this.text,this.actorLineColor=this.actorBorder,this.signalColor=this.text,this.signalTextColor=this.text,this.labelBoxBkgColor=this.actorBkg,this.labelBoxBorderColor=this.actorBorder,this.labelTextColor=this.text,this.loopTextColor=this.text,this.noteBorderColor="#999",this.noteBkgColor="#666",this.noteTextColor="#fff",this.cScale0=this.cScale0||"#555",this.cScale1=this.cScale1||"#F4F4F4",this.cScale2=this.cScale2||"#555",this.cScale3=this.cScale3||"#BBB",this.cScale4=this.cScale4||"#777",this.cScale5=this.cScale5||"#999",this.cScale6=this.cScale6||"#DDD",this.cScale7=this.cScale7||"#FFF",this.cScale8=this.cScale8||"#DDD",this.cScale9=this.cScale9||"#BBB",this.cScale10=this.cScale10||"#999",this.cScale11=this.cScale11||"#777";for(let e=0;e<this.THEME_COLOR_LIMIT;e++)this["cScaleInv"+e]=this["cScaleInv"+e]||wt(this["cScale"+e]);for(let e=0;e<this.THEME_COLOR_LIMIT;e++)this.darkMode?this["cScalePeer"+e]=this["cScalePeer"+e]||Dt(this["cScale"+e],10):this["cScalePeer"+e]=this["cScalePeer"+e]||Ot(this["cScale"+e],10);this.scaleLabelColor=this.scaleLabelColor||(this.darkMode?"black":this.labelTextColor),this.cScaleLabel0=this.cScaleLabel0||this.cScale1,this.cScaleLabel2=this.cScaleLabel2||this.cScale1;for(let e=0;e<this.THEME_COLOR_LIMIT;e++)this["cScaleLabel"+e]=this["cScaleLabel"+e]||this.scaleLabelColor;for(let e=0;e<5;e++)this["surface"+e]=this["surface"+e]||Me(this.mainBkg,{l:-(5+e*5)}),this["surfacePeer"+e]=this["surfacePeer"+e]||Me(this.mainBkg,{l:-(8+e*5)});this.nodeBkg=this.mainBkg,this.nodeBorder=this.border1,this.clusterBkg=this.secondBkg,this.clusterBorder=this.border2,this.defaultLinkColor=this.lineColor,this.titleColor=this.text,this.sectionBkgColor=Dt(this.contrast,30),this.sectionBkgColor2=Dt(this.contrast,30),this.taskBorderColor=Ot(this.contrast,10),this.taskBkgColor=this.contrast,this.taskTextColor=this.taskTextLightColor,this.taskTextDarkColor=this.text,this.taskTextOutsideColor=this.taskTextDarkColor,this.activeTaskBorderColor=this.taskBorderColor,this.activeTaskBkgColor=this.mainBkg,this.gridColor=Dt(this.border1,30),this.doneTaskBkgColor=this.done,this.doneTaskBorderColor=this.lineColor,this.critBkgColor=this.critical,this.critBorderColor=Ot(this.critBkgColor,10),this.todayLineColor=this.critBkgColor,this.archEdgeColor=this.lineColor,this.archEdgeArrowColor=this.lineColor,this.transitionColor=this.transitionColor||"#000",this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||"#f4f4f4",this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.stateBorder=this.stateBorder||"#000",this.innerEndBackground=this.primaryBorderColor,this.specialStateColor="#222",this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.classText=this.primaryTextColor,this.fillType0=this.primaryColor,this.fillType1=this.secondaryColor,this.fillType2=Me(this.primaryColor,{h:64}),this.fillType3=Me(this.secondaryColor,{h:64}),this.fillType4=Me(this.primaryColor,{h:-64}),this.fillType5=Me(this.secondaryColor,{h:-64}),this.fillType6=Me(this.primaryColor,{h:128}),this.fillType7=Me(this.secondaryColor,{h:128});for(let e=0;e<this.THEME_COLOR_LIMIT;e++)this["pie"+e]=this["cScale"+e];this.pie12=this.pie0,this.pieTitleTextSize=this.pieTitleTextSize||"25px",this.pieTitleTextColor=this.pieTitleTextColor||this.taskTextDarkColor,this.pieSectionTextSize=this.pieSectionTextSize||"17px",this.pieSectionTextColor=this.pieSectionTextColor||this.textColor,this.pieLegendTextSize=this.pieLegendTextSize||"17px",this.pieLegendTextColor=this.pieLegendTextColor||this.taskTextDarkColor,this.pieStrokeColor=this.pieStrokeColor||"black",this.pieStrokeWidth=this.pieStrokeWidth||"2px",this.pieOuterStrokeWidth=this.pieOuterStrokeWidth||"2px",this.pieOuterStrokeColor=this.pieOuterStrokeColor||"black",this.pieOpacity=this.pieOpacity||"0.7",this.quadrant1Fill=this.quadrant1Fill||this.primaryColor,this.quadrant2Fill=this.quadrant2Fill||Me(this.primaryColor,{r:5,g:5,b:5}),this.quadrant3Fill=this.quadrant3Fill||Me(this.primaryColor,{r:10,g:10,b:10}),this.quadrant4Fill=this.quadrant4Fill||Me(this.primaryColor,{r:15,g:15,b:15}),this.quadrant1TextFill=this.quadrant1TextFill||this.primaryTextColor,this.quadrant2TextFill=this.quadrant2TextFill||Me(this.primaryTextColor,{r:-5,g:-5,b:-5}),this.quadrant3TextFill=this.quadrant3TextFill||Me(this.primaryTextColor,{r:-10,g:-10,b:-10}),this.quadrant4TextFill=this.quadrant4TextFill||Me(this.primaryTextColor,{r:-15,g:-15,b:-15}),this.quadrantPointFill=this.quadrantPointFill||ca(this.quadrant1Fill)?Dt(this.quadrant1Fill):Ot(this.quadrant1Fill),this.quadrantPointTextFill=this.quadrantPointTextFill||this.primaryTextColor,this.quadrantXAxisTextFill=this.quadrantXAxisTextFill||this.primaryTextColor,this.quadrantYAxisTextFill=this.quadrantYAxisTextFill||this.primaryTextColor,this.quadrantInternalBorderStrokeFill=this.quadrantInternalBorderStrokeFill||this.primaryBorderColor,this.quadrantExternalBorderStrokeFill=this.quadrantExternalBorderStrokeFill||this.primaryBorderColor,this.quadrantTitleFill=this.quadrantTitleFill||this.primaryTextColor,this.xyChart={backgroundColor:this.xyChart?.backgroundColor||this.background,titleColor:this.xyChart?.titleColor||this.primaryTextColor,xAxisTitleColor:this.xyChart?.xAxisTitleColor||this.primaryTextColor,xAxisLabelColor:this.xyChart?.xAxisLabelColor||this.primaryTextColor,xAxisTickColor:this.xyChart?.xAxisTickColor||this.primaryTextColor,xAxisLineColor:this.xyChart?.xAxisLineColor||this.primaryTextColor,yAxisTitleColor:this.xyChart?.yAxisTitleColor||this.primaryTextColor,yAxisLabelColor:this.xyChart?.yAxisLabelColor||this.primaryTextColor,yAxisTickColor:this.xyChart?.yAxisTickColor||this.primaryTextColor,yAxisLineColor:this.xyChart?.yAxisLineColor||this.primaryTextColor,plotColorPalette:this.xyChart?.plotColorPalette||"#EEE,#6BB8E4,#8ACB88,#C7ACD6,#E8DCC2,#FFB2A8,#FFF380,#7E8D91,#FFD8B1,#FAF3E0"},this.radar={axisColor:this.radar?.axisColor||this.lineColor,axisStrokeWidth:this.radar?.axisStrokeWidth||2,axisLabelFontSize:this.radar?.axisLabelFontSize||12,curveOpacity:this.radar?.curveOpacity||.5,curveStrokeWidth:this.radar?.curveStrokeWidth||2,graticuleColor:this.radar?.graticuleColor||"#DEDEDE",graticuleStrokeWidth:this.radar?.graticuleStrokeWidth||1,graticuleOpacity:this.radar?.graticuleOpacity||.3,legendBoxSize:this.radar?.legendBoxSize||12,legendFontSize:this.radar?.legendFontSize||12},this.requirementBackground=this.requirementBackground||this.primaryColor,this.requirementBorderColor=this.requirementBorderColor||this.primaryBorderColor,this.requirementBorderSize=this.requirementBorderSize||"1",this.requirementTextColor=this.requirementTextColor||this.primaryTextColor,this.relationColor=this.relationColor||this.lineColor,this.relationLabelBackground=this.relationLabelBackground||this.edgeLabelBackground,this.relationLabelColor=this.relationLabelColor||this.actorTextColor,this.git0=Ot(this.pie1,25)||this.primaryColor,this.git1=this.pie2||this.secondaryColor,this.git2=this.pie3||this.tertiaryColor,this.git3=this.pie4||Me(this.primaryColor,{h:-30}),this.git4=this.pie5||Me(this.primaryColor,{h:-60}),this.git5=this.pie6||Me(this.primaryColor,{h:-90}),this.git6=this.pie7||Me(this.primaryColor,{h:60}),this.git7=this.pie8||Me(this.primaryColor,{h:120}),this.gitInv0=this.gitInv0||wt(this.git0),this.gitInv1=this.gitInv1||wt(this.git1),this.gitInv2=this.gitInv2||wt(this.git2),this.gitInv3=this.gitInv3||wt(this.git3),this.gitInv4=this.gitInv4||wt(this.git4),this.gitInv5=this.gitInv5||wt(this.git5),this.gitInv6=this.gitInv6||wt(this.git6),this.gitInv7=this.gitInv7||wt(this.git7),this.branchLabelColor=this.branchLabelColor||this.labelTextColor,this.gitBranchLabel0=this.branchLabelColor,this.gitBranchLabel1="white",this.gitBranchLabel2=this.branchLabelColor,this.gitBranchLabel3="white",this.gitBranchLabel4=this.branchLabelColor,this.gitBranchLabel5=this.branchLabelColor,this.gitBranchLabel6=this.branchLabelColor,this.gitBranchLabel7=this.branchLabelColor,this.tagLabelColor=this.tagLabelColor||this.primaryTextColor,this.tagLabelBackground=this.tagLabelBackground||this.primaryColor,this.tagLabelBorder=this.tagBorder||this.primaryBorderColor,this.tagLabelFontSize=this.tagLabelFontSize||"10px",this.commitLabelColor=this.commitLabelColor||this.secondaryTextColor,this.commitLabelBackground=this.commitLabelBackground||this.secondaryColor,this.commitLabelFontSize=this.commitLabelFontSize||"10px",this.attributeBackgroundColorOdd=this.attributeBackgroundColorOdd||ah,this.attributeBackgroundColorEven=this.attributeBackgroundColorEven||sh}calculate(e){if(typeof e!="object"){this.updateColors();return}let r=Object.keys(e);r.forEach(n=>{this[n]=e[n]}),this.updateColors(),r.forEach(n=>{this[n]=e[n]})}},I$=o(t=>{let e=new JC;return e.calculate(t),e},"getThemeVariables")});var To,q4=N(()=>{"use strict";D$();R$();_y();M$();O$();To={base:{getThemeVariables:_$},dark:{getThemeVariables:L$},default:{getThemeVariables:oh},forest:{getThemeVariables:N$},neutral:{getThemeVariables:I$}}});var ql,P$=N(()=>{"use strict";ql={flowchart:{useMaxWidth:!0,titleTopMargin:25,subGraphTitleMargin:{top:0,bottom:0},diagramPadding:8,htmlLabels:!0,nodeSpacing:50,rankSpacing:50,curve:"basis",padding:15,defaultRenderer:"dagre-wrapper",wrappingWidth:200},sequence:{useMaxWidth:!0,hideUnusedParticipants:!1,activationWidth:10,diagramMarginX:50,diagramMarginY:10,actorMargin:50,width:150,height:65,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",mirrorActors:!0,forceMenus:!1,bottomMarginAdj:1,rightAngles:!1,showSequenceNumbers:!1,actorFontSize:14,actorFontFamily:'"Open Sans", sans-serif',actorFontWeight:400,noteFontSize:14,noteFontFamily:'"trebuchet ms", verdana, arial, sans-serif',noteFontWeight:400,noteAlign:"center",messageFontSize:16,messageFontFamily:'"trebuchet ms", verdana, arial, sans-serif',messageFontWeight:400,wrap:!1,wrapPadding:10,labelBoxWidth:50,labelBoxHeight:20},gantt:{useMaxWidth:!0,titleTopMargin:25,barHeight:20,barGap:4,topPadding:50,rightPadding:75,leftPadding:75,gridLineStartPadding:35,fontSize:11,sectionFontSize:11,numberSectionStyles:4,axisFormat:"%Y-%m-%d",topAxis:!1,displayMode:"",weekday:"sunday"},journey:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,leftMargin:150,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",bottomMarginAdj:1,rightAngles:!1,taskFontSize:14,taskFontFamily:'"Open Sans", sans-serif',taskMargin:50,activationWidth:10,textPlacement:"fo",actorColours:["#8FBC8F","#7CFC00","#00FFFF","#20B2AA","#B0E0E6","#FFFFE0"],sectionFills:["#191970","#8B008B","#4B0082","#2F4F4F","#800000","#8B4513","#00008B"],sectionColours:["#fff"]},class:{useMaxWidth:!0,titleTopMargin:25,arrowMarkerAbsolute:!1,dividerMargin:10,padding:5,textHeight:10,defaultRenderer:"dagre-wrapper",htmlLabels:!1,hideEmptyMembersBox:!1},state:{useMaxWidth:!0,titleTopMargin:25,dividerMargin:10,sizeUnit:5,padding:8,textHeight:10,titleShift:-15,noteMargin:10,forkWidth:70,forkHeight:7,miniPadding:2,fontSizeFactor:5.02,fontSize:24,labelHeight:16,edgeLengthFactor:"20",compositTitleSize:35,radius:5,defaultRenderer:"dagre-wrapper"},er:{useMaxWidth:!0,titleTopMargin:25,diagramPadding:20,layoutDirection:"TB",minEntityWidth:100,minEntityHeight:75,entityPadding:15,nodeSpacing:140,rankSpacing:80,stroke:"gray",fill:"honeydew",fontSize:12},pie:{useMaxWidth:!0,textPosition:.75},quadrantChart:{useMaxWidth:!0,chartWidth:500,chartHeight:500,titleFontSize:20,titlePadding:10,quadrantPadding:5,xAxisLabelPadding:5,yAxisLabelPadding:5,xAxisLabelFontSize:16,yAxisLabelFontSize:16,quadrantLabelFontSize:16,quadrantTextTopPadding:5,pointTextPadding:5,pointLabelFontSize:12,pointRadius:5,xAxisPosition:"top",yAxisPosition:"left",quadrantInternalBorderStrokeWidth:1,quadrantExternalBorderStrokeWidth:2},xyChart:{useMaxWidth:!0,width:700,height:500,titleFontSize:20,titlePadding:10,showTitle:!0,xAxis:{$ref:"#/$defs/XYChartAxisConfig",showLabel:!0,labelFontSize:14,labelPadding:5,showTitle:!0,titleFontSize:16,titlePadding:5,showTick:!0,tickLength:5,tickWidth:2,showAxisLine:!0,axisLineWidth:2},yAxis:{$ref:"#/$defs/XYChartAxisConfig",showLabel:!0,labelFontSize:14,labelPadding:5,showTitle:!0,titleFontSize:16,titlePadding:5,showTick:!0,tickLength:5,tickWidth:2,showAxisLine:!0,axisLineWidth:2},chartOrientation:"vertical",plotReservedSpacePercent:50},requirement:{useMaxWidth:!0,rect_fill:"#f9f9f9",text_color:"#333",rect_border_size:"0.5px",rect_border_color:"#bbb",rect_min_width:200,rect_min_height:200,fontSize:14,rect_padding:10,line_height:20},mindmap:{useMaxWidth:!0,padding:10,maxNodeWidth:200},kanban:{useMaxWidth:!0,padding:8,sectionWidth:200,ticketBaseUrl:""},timeline:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,leftMargin:150,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",bottomMarginAdj:1,rightAngles:!1,taskFontSize:14,taskFontFamily:'"Open Sans", sans-serif',taskMargin:50,activationWidth:10,textPlacement:"fo",actorColours:["#8FBC8F","#7CFC00","#00FFFF","#20B2AA","#B0E0E6","#FFFFE0"],sectionFills:["#191970","#8B008B","#4B0082","#2F4F4F","#800000","#8B4513","#00008B"],sectionColours:["#fff"],disableMulticolor:!1},gitGraph:{useMaxWidth:!0,titleTopMargin:25,diagramPadding:8,nodeLabel:{width:75,height:100,x:-25,y:0},mainBranchName:"main",mainBranchOrder:0,showCommitLabel:!0,showBranches:!0,rotateCommitLabel:!0,parallelCommits:!1,arrowMarkerAbsolute:!1},c4:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,c4ShapeMargin:50,c4ShapePadding:20,width:216,height:60,boxMargin:10,c4ShapeInRow:4,nextLinePaddingX:0,c4BoundaryInRow:2,personFontSize:14,personFontFamily:'"Open Sans", sans-serif',personFontWeight:"normal",external_personFontSize:14,external_personFontFamily:'"Open Sans", sans-serif',external_personFontWeight:"normal",systemFontSize:14,systemFontFamily:'"Open Sans", sans-serif',systemFontWeight:"normal",external_systemFontSize:14,external_systemFontFamily:'"Open Sans", sans-serif',external_systemFontWeight:"normal",system_dbFontSize:14,system_dbFontFamily:'"Open Sans", sans-serif',system_dbFontWeight:"normal",external_system_dbFontSize:14,external_system_dbFontFamily:'"Open Sans", sans-serif',external_system_dbFontWeight:"normal",system_queueFontSize:14,system_queueFontFamily:'"Open Sans", sans-serif',system_queueFontWeight:"normal",external_system_queueFontSize:14,external_system_queueFontFamily:'"Open Sans", sans-serif',external_system_queueFontWeight:"normal",boundaryFontSize:14,boundaryFontFamily:'"Open Sans", sans-serif',boundaryFontWeight:"normal",messageFontSize:12,messageFontFamily:'"Open Sans", sans-serif',messageFontWeight:"normal",containerFontSize:14,containerFontFamily:'"Open Sans", sans-serif',containerFontWeight:"normal",external_containerFontSize:14,external_containerFontFamily:'"Open Sans", sans-serif',external_containerFontWeight:"normal",container_dbFontSize:14,container_dbFontFamily:'"Open Sans", sans-serif',container_dbFontWeight:"normal",external_container_dbFontSize:14,external_container_dbFontFamily:'"Open Sans", sans-serif',external_container_dbFontWeight:"normal",container_queueFontSize:14,container_queueFontFamily:'"Open Sans", sans-serif',container_queueFontWeight:"normal",external_container_queueFontSize:14,external_container_queueFontFamily:'"Open Sans", sans-serif',external_container_queueFontWeight:"normal",componentFontSize:14,componentFontFamily:'"Open Sans", sans-serif',componentFontWeight:"normal",external_componentFontSize:14,external_componentFontFamily:'"Open Sans", sans-serif',external_componentFontWeight:"normal",component_dbFontSize:14,component_dbFontFamily:'"Open Sans", sans-serif',component_dbFontWeight:"normal",external_component_dbFontSize:14,external_component_dbFontFamily:'"Open Sans", sans-serif',external_component_dbFontWeight:"normal",component_queueFontSize:14,component_queueFontFamily:'"Open Sans", sans-serif',component_queueFontWeight:"normal",external_component_queueFontSize:14,external_component_queueFontFamily:'"Open Sans", sans-serif',external_component_queueFontWeight:"normal",wrap:!0,wrapPadding:10,person_bg_color:"#08427B",person_border_color:"#073B6F",external_person_bg_color:"#686868",external_person_border_color:"#8A8A8A",system_bg_color:"#1168BD",system_border_color:"#3C7FC0",system_db_bg_color:"#1168BD",system_db_border_color:"#3C7FC0",system_queue_bg_color:"#1168BD",system_queue_border_color:"#3C7FC0",external_system_bg_color:"#999999",external_system_border_color:"#8A8A8A",external_system_db_bg_color:"#999999",external_system_db_border_color:"#8A8A8A",external_system_queue_bg_color:"#999999",external_system_queue_border_color:"#8A8A8A",container_bg_color:"#438DD5",container_border_color:"#3C7FC0",container_db_bg_color:"#438DD5",container_db_border_color:"#3C7FC0",container_queue_bg_color:"#438DD5",container_queue_border_color:"#3C7FC0",external_container_bg_color:"#B3B3B3",external_container_border_color:"#A6A6A6",external_container_db_bg_color:"#B3B3B3",external_container_db_border_color:"#A6A6A6",external_container_queue_bg_color:"#B3B3B3",external_container_queue_border_color:"#A6A6A6",component_bg_color:"#85BBF0",component_border_color:"#78A8D8",component_db_bg_color:"#85BBF0",component_db_border_color:"#78A8D8",component_queue_bg_color:"#85BBF0",component_queue_border_color:"#78A8D8",external_component_bg_color:"#CCCCCC",external_component_border_color:"#BFBFBF",external_component_db_bg_color:"#CCCCCC",external_component_db_border_color:"#BFBFBF",external_component_queue_bg_color:"#CCCCCC",external_component_queue_border_color:"#BFBFBF"},sankey:{useMaxWidth:!0,width:600,height:400,linkColor:"gradient",nodeAlignment:"justify",showValues:!0,prefix:"",suffix:""},block:{useMaxWidth:!0,padding:8},packet:{useMaxWidth:!0,rowHeight:32,bitWidth:32,bitsPerRow:32,showBits:!0,paddingX:5,paddingY:5},architecture:{useMaxWidth:!0,padding:40,iconSize:80,fontSize:16},radar:{useMaxWidth:!0,width:600,height:600,marginTop:50,marginRight:50,marginBottom:50,marginLeft:50,axisScaleFactor:1,axisLabelFactor:1.05,curveTension:.17},theme:"default",look:"classic",handDrawnSeed:0,layout:"dagre",maxTextSize:5e4,maxEdges:500,darkMode:!1,fontFamily:'"trebuchet ms", verdana, arial, sans-serif;',logLevel:5,securityLevel:"strict",startOnLoad:!0,arrowMarkerAbsolute:!1,secure:["secure","securityLevel","startOnLoad","maxTextSize","suppressErrorRendering","maxEdges"],legacyMathML:!1,forceLegacyMathML:!1,deterministicIds:!1,fontSize:16,markdownAutoWrap:!0,suppressErrorRendering:!1}});var B$,F$,$$,or,Ya=N(()=>{"use strict";q4();P$();B$={...ql,deterministicIDSeed:void 0,elk:{mergeEdges:!1,nodePlacementStrategy:"BRANDES_KOEPF"},themeCSS:void 0,themeVariables:To.default.getThemeVariables(),sequence:{...ql.sequence,messageFont:o(function(){return{fontFamily:this.messageFontFamily,fontSize:this.messageFontSize,fontWeight:this.messageFontWeight}},"messageFont"),noteFont:o(function(){return{fontFamily:this.noteFontFamily,fontSize:this.noteFontSize,fontWeight:this.noteFontWeight}},"noteFont"),actorFont:o(function(){return{fontFamily:this.actorFontFamily,fontSize:this.actorFontSize,fontWeight:this.actorFontWeight}},"actorFont")},class:{hideEmptyMembersBox:!1},gantt:{...ql.gantt,tickInterval:void 0,useWidth:void 0},c4:{...ql.c4,useWidth:void 0,personFont:o(function(){return{fontFamily:this.personFontFamily,fontSize:this.personFontSize,fontWeight:this.personFontWeight}},"personFont"),external_personFont:o(function(){return{fontFamily:this.external_personFontFamily,fontSize:this.external_personFontSize,fontWeight:this.external_personFontWeight}},"external_personFont"),systemFont:o(function(){return{fontFamily:this.systemFontFamily,fontSize:this.systemFontSize,fontWeight:this.systemFontWeight}},"systemFont"),external_systemFont:o(function(){return{fontFamily:this.external_systemFontFamily,fontSize:this.external_systemFontSize,fontWeight:this.external_systemFontWeight}},"external_systemFont"),system_dbFont:o(function(){return{fontFamily:this.system_dbFontFamily,fontSize:this.system_dbFontSize,fontWeight:this.system_dbFontWeight}},"system_dbFont"),external_system_dbFont:o(function(){return{fontFamily:this.external_system_dbFontFamily,fontSize:this.external_system_dbFontSize,fontWeight:this.external_system_dbFontWeight}},"external_system_dbFont"),system_queueFont:o(function(){return{fontFamily:this.system_queueFontFamily,fontSize:this.system_queueFontSize,fontWeight:this.system_queueFontWeight}},"system_queueFont"),external_system_queueFont:o(function(){return{fontFamily:this.external_system_queueFontFamily,fontSize:this.external_system_queueFontSize,fontWeight:this.external_system_queueFontWeight}},"external_system_queueFont"),containerFont:o(function(){return{fontFamily:this.containerFontFamily,fontSize:this.containerFontSize,fontWeight:this.containerFontWeight}},"containerFont"),external_containerFont:o(function(){return{fontFamily:this.external_containerFontFamily,fontSize:this.external_containerFontSize,fontWeight:this.external_containerFontWeight}},"external_containerFont"),container_dbFont:o(function(){return{fontFamily:this.container_dbFontFamily,fontSize:this.container_dbFontSize,fontWeight:this.container_dbFontWeight}},"container_dbFont"),external_container_dbFont:o(function(){return{fontFamily:this.external_container_dbFontFamily,fontSize:this.external_container_dbFontSize,fontWeight:this.external_container_dbFontWeight}},"external_container_dbFont"),container_queueFont:o(function(){return{fontFamily:this.container_queueFontFamily,fontSize:this.container_queueFontSize,fontWeight:this.container_queueFontWeight}},"container_queueFont"),external_container_queueFont:o(function(){return{fontFamily:this.external_container_queueFontFamily,fontSize:this.external_container_queueFontSize,fontWeight:this.external_container_queueFontWeight}},"external_container_queueFont"),componentFont:o(function(){return{fontFamily:this.componentFontFamily,fontSize:this.componentFontSize,fontWeight:this.componentFontWeight}},"componentFont"),external_componentFont:o(function(){return{fontFamily:this.external_componentFontFamily,fontSize:this.external_componentFontSize,fontWeight:this.external_componentFontWeight}},"external_componentFont"),component_dbFont:o(function(){return{fontFamily:this.component_dbFontFamily,fontSize:this.component_dbFontSize,fontWeight:this.component_dbFontWeight}},"component_dbFont"),external_component_dbFont:o(function(){return{fontFamily:this.external_component_dbFontFamily,fontSize:this.external_component_dbFontSize,fontWeight:this.external_component_dbFontWeight}},"external_component_dbFont"),component_queueFont:o(function(){return{fontFamily:this.component_queueFontFamily,fontSize:this.component_queueFontSize,fontWeight:this.component_queueFontWeight}},"component_queueFont"),external_component_queueFont:o(function(){return{fontFamily:this.external_component_queueFontFamily,fontSize:this.external_component_queueFontSize,fontWeight:this.external_component_queueFontWeight}},"external_component_queueFont"),boundaryFont:o(function(){return{fontFamily:this.boundaryFontFamily,fontSize:this.boundaryFontSize,fontWeight:this.boundaryFontWeight}},"boundaryFont"),messageFont:o(function(){return{fontFamily:this.messageFontFamily,fontSize:this.messageFontSize,fontWeight:this.messageFontWeight}},"messageFont")},pie:{...ql.pie,useWidth:984},xyChart:{...ql.xyChart,useWidth:void 0},requirement:{...ql.requirement,useWidth:void 0},packet:{...ql.packet},radar:{...ql.radar}},F$=o((t,e="")=>Object.keys(t).reduce((r,n)=>Array.isArray(t[n])?r:typeof t[n]=="object"&&t[n]!==null?[...r,e+n,...F$(t[n],"")]:[...r,e+n],[]),"keyify"),$$=new Set(F$(B$,"")),or=B$});var l0,Dxe,e7=N(()=>{"use strict";Ya();vt();l0=o(t=>{if(Y.debug("sanitizeDirective called with",t),!(typeof t!="object"||t==null)){if(Array.isArray(t)){t.forEach(e=>l0(e));return}for(let e of Object.keys(t)){if(Y.debug("Checking key",e),e.startsWith("__")||e.includes("proto")||e.includes("constr")||!$$.has(e)||t[e]==null){Y.debug("sanitize deleting key: ",e),delete t[e];continue}if(typeof t[e]=="object"){Y.debug("sanitizing object",e),l0(t[e]);continue}let r=["themeCSS","fontFamily","altFontFamily"];for(let n of r)e.includes(n)&&(Y.debug("sanitizing css option",e),t[e]=Dxe(t[e]))}if(t.themeVariables)for(let e of Object.keys(t.themeVariables)){let r=t.themeVariables[e];r?.match&&!r.match(/^[\d "#%(),.;A-Za-z]+$/)&&(t.themeVariables[e]="")}Y.debug("After sanitization",t)}},"sanitizeDirective"),Dxe=o(t=>{let e=0,r=0;for(let n of t){if(e<r)return"{ /* ERROR: Unbalanced CSS */ }";n==="{"?e++:n==="}"&&r++}return e!==r?"{ /* ERROR: Unbalanced CSS */ }":t},"sanitizeCss")});var lh,xs,G$,c0,Dy,Y4,t7,V$,U$,r7,X4,cr,H$,W$,Ly,Lxe,z$,Rxe,q$,ji=N(()=>{"use strict";s0();vt();q4();Ya();e7();lh=Object.freeze(or),xs=Gn({},lh),c0=[],Dy=Gn({},lh),Y4=o((t,e)=>{let r=Gn({},t),n={};for(let i of e)H$(i),n=Gn(n,i);if(r=Gn(r,n),n.theme&&n.theme in To){let i=Gn({},G$),a=Gn(i.themeVariables||{},n.themeVariables);r.theme&&r.theme in To&&(r.themeVariables=To[r.theme].getThemeVariables(a))}return Dy=r,q$(Dy),Dy},"updateCurrentConfig"),t7=o(t=>(xs=Gn({},lh),xs=Gn(xs,t),t.theme&&To[t.theme]&&(xs.themeVariables=To[t.theme].getThemeVariables(t.themeVariables)),Y4(xs,c0),xs),"setSiteConfig"),V$=o(t=>{G$=Gn({},t)},"saveConfigFromInitialize"),U$=o(t=>(xs=Gn(xs,t),Y4(xs,c0),xs),"updateSiteConfig"),r7=o(()=>Gn({},xs),"getSiteConfig"),X4=o(t=>(q$(t),Gn(Dy,t),cr()),"setConfig"),cr=o(()=>Gn({},Dy),"getConfig"),H$=o(t=>{t&&(["secure",...xs.secure??[]].forEach(e=>{Object.hasOwn(t,e)&&(Y.debug(`Denied attempt to modify a secure key ${e}`,t[e]),delete t[e])}),Object.keys(t).forEach(e=>{e.startsWith("__")&&delete t[e]}),Object.keys(t).forEach(e=>{typeof t[e]=="string"&&(t[e].includes("<")||t[e].includes(">")||t[e].includes("url(data:"))&&delete t[e],typeof t[e]=="object"&&H$(t[e])}))},"sanitize"),W$=o(t=>{l0(t),t.fontFamily&&!t.themeVariables?.fontFamily&&(t.themeVariables={...t.themeVariables,fontFamily:t.fontFamily}),c0.push(t),Y4(xs,c0)},"addDirective"),Ly=o((t=xs)=>{c0=[],Y4(t,c0)},"reset"),Lxe={LAZY_LOAD_DEPRECATED:"The configuration options lazyLoadedDiagrams and loadExternalDiagramsAtStartup are deprecated. Please use registerExternalDiagrams instead."},z$={},Rxe=o(t=>{z$[t]||(Y.warn(Lxe[t]),z$[t]=!0)},"issueWarning"),q$=o(t=>{t&&(t.lazyLoadedDiagrams||t.loadExternalDiagramsAtStartup)&&Rxe("LAZY_LOAD_DEPRECATED")},"checkConfig")});function Ka(t){return function(e){for(var r=arguments.length,n=new Array(r>1?r-1:0),i=1;i<r;i++)n[i-1]=arguments[i];return l7(t,e,n)}}function $xe(t){return function(){for(var e=arguments.length,r=new Array(e),n=0;n<e;n++)r[n]=arguments[n];return c7(t,r)}}function Cr(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:Q4;Y$&&Y$(t,null);let n=e.length;for(;n--;){let i=e[n];if(typeof i=="string"){let a=r(i);a!==i&&(Nxe(e)||(e[n]=a),i=a)}t[i]=!0}return t}function zxe(t){for(let e=0;e<t.length;e++)sl(t,e)||(t[e]=null);return t}function Qf(t){let e=nz(null);for(let[r,n]of rz(t))sl(t,r)&&(Array.isArray(n)?e[r]=zxe(n):n&&typeof n=="object"&&n.constructor===Object?e[r]=Qf(n):e[r]=n);return e}function Iy(t,e){for(;t!==null;){let n=Ixe(t,e);if(n){if(n.get)return Ka(n.get);if(typeof n.value=="function")return Ka(n.value)}t=Mxe(t)}function r(){return null}return o(r,"fallbackValue"),r}function sz(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:Qxe(),e=o(At=>sz(At),"DOMPurify");if(e.version="3.2.4",e.removed=[],!t||!t.document||t.document.nodeType!==Oy.document||!t.Element)return e.isSupported=!1,e;let{document:r}=t,n=r,i=n.currentScript,{DocumentFragment:a,HTMLTemplateElement:s,Node:l,Element:u,NodeFilter:h,NamedNodeMap:f=t.NamedNodeMap||t.MozNamedAttrMap,HTMLFormElement:d,DOMParser:p,trustedTypes:m}=t,g=u.prototype,y=Iy(g,"cloneNode"),v=Iy(g,"remove"),x=Iy(g,"nextSibling"),b=Iy(g,"childNodes"),w=Iy(g,"parentNode");if(typeof s=="function"){let At=r.createElement("template");At.content&&At.content.ownerDocument&&(r=At.content.ownerDocument)}let C,T="",{implementation:E,createNodeIterator:A,createDocumentFragment:S,getElementsByTagName:_}=r,{importNode:I}=n,D=tz();e.isSupported=typeof rz=="function"&&typeof w=="function"&&E&&E.createHTMLDocument!==void 0;let{MUSTACHE_EXPR:k,ERB_EXPR:L,TMPLIT_EXPR:R,DATA_ATTR:O,ARIA_ATTR:M,IS_SCRIPT_OR_DATA:B,ATTR_WHITESPACE:F,CUSTOM_ELEMENT:P}=ez,{IS_ALLOWED_URI:z}=ez,$=null,H=Cr({},[...K$,...i7,...a7,...s7,...Q$]),Q=null,j=Cr({},[...Z$,...o7,...J$,...K4]),ie=Object.seal(nz(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),ne=null,le=null,he=!0,K=!0,X=!1,te=!0,J=!1,se=!0,ue=!1,Z=!1,Se=!1,ce=!1,ae=!1,Oe=!1,ge=!0,ze=!1,He="user-content-",$e=!0,Re=!1,Ie={},be=null,W=Cr({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]),de=null,re=Cr({},["audio","video","img","source","image","track"]),oe=null,V=Cr({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),xe="http://www.w3.org/1998/Math/MathML",q="http://www.w3.org/2000/svg",pe="http://www.w3.org/1999/xhtml",ve=pe,Pe=!1,_e=null,we=Cr({},[xe,q,pe],n7),Ve=Cr({},["mi","mo","mn","ms","mtext"]),De=Cr({},["annotation-xml"]),qe=Cr({},["title","style","font","a","script"]),at=null,Rt=["application/xhtml+xml","text/html"],st="text/html",Ue=null,ct=null,We=r.createElement("form"),ot=o(function(Ce){return Ce instanceof RegExp||Ce instanceof Function},"isRegexOrFunction"),Yt=o(function(){let Ce=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!(ct&&ct===Ce)){if((!Ce||typeof Ce!="object")&&(Ce={}),Ce=Qf(Ce),at=Rt.indexOf(Ce.PARSER_MEDIA_TYPE)===-1?st:Ce.PARSER_MEDIA_TYPE,Ue=at==="application/xhtml+xml"?n7:Q4,$=sl(Ce,"ALLOWED_TAGS")?Cr({},Ce.ALLOWED_TAGS,Ue):H,Q=sl(Ce,"ALLOWED_ATTR")?Cr({},Ce.ALLOWED_ATTR,Ue):j,_e=sl(Ce,"ALLOWED_NAMESPACES")?Cr({},Ce.ALLOWED_NAMESPACES,n7):we,oe=sl(Ce,"ADD_URI_SAFE_ATTR")?Cr(Qf(V),Ce.ADD_URI_SAFE_ATTR,Ue):V,de=sl(Ce,"ADD_DATA_URI_TAGS")?Cr(Qf(re),Ce.ADD_DATA_URI_TAGS,Ue):re,be=sl(Ce,"FORBID_CONTENTS")?Cr({},Ce.FORBID_CONTENTS,Ue):W,ne=sl(Ce,"FORBID_TAGS")?Cr({},Ce.FORBID_TAGS,Ue):{},le=sl(Ce,"FORBID_ATTR")?Cr({},Ce.FORBID_ATTR,Ue):{},Ie=sl(Ce,"USE_PROFILES")?Ce.USE_PROFILES:!1,he=Ce.ALLOW_ARIA_ATTR!==!1,K=Ce.ALLOW_DATA_ATTR!==!1,X=Ce.ALLOW_UNKNOWN_PROTOCOLS||!1,te=Ce.ALLOW_SELF_CLOSE_IN_ATTR!==!1,J=Ce.SAFE_FOR_TEMPLATES||!1,se=Ce.SAFE_FOR_XML!==!1,ue=Ce.WHOLE_DOCUMENT||!1,ce=Ce.RETURN_DOM||!1,ae=Ce.RETURN_DOM_FRAGMENT||!1,Oe=Ce.RETURN_TRUSTED_TYPE||!1,Se=Ce.FORCE_BODY||!1,ge=Ce.SANITIZE_DOM!==!1,ze=Ce.SANITIZE_NAMED_PROPS||!1,$e=Ce.KEEP_CONTENT!==!1,Re=Ce.IN_PLACE||!1,z=Ce.ALLOWED_URI_REGEXP||iz,ve=Ce.NAMESPACE||pe,Ve=Ce.MATHML_TEXT_INTEGRATION_POINTS||Ve,De=Ce.HTML_INTEGRATION_POINTS||De,ie=Ce.CUSTOM_ELEMENT_HANDLING||{},Ce.CUSTOM_ELEMENT_HANDLING&&ot(Ce.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(ie.tagNameCheck=Ce.CUSTOM_ELEMENT_HANDLING.tagNameCheck),Ce.CUSTOM_ELEMENT_HANDLING&&ot(Ce.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(ie.attributeNameCheck=Ce.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),Ce.CUSTOM_ELEMENT_HANDLING&&typeof Ce.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements=="boolean"&&(ie.allowCustomizedBuiltInElements=Ce.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),J&&(K=!1),ae&&(ce=!0),Ie&&($=Cr({},Q$),Q=[],Ie.html===!0&&(Cr($,K$),Cr(Q,Z$)),Ie.svg===!0&&(Cr($,i7),Cr(Q,o7),Cr(Q,K4)),Ie.svgFilters===!0&&(Cr($,a7),Cr(Q,o7),Cr(Q,K4)),Ie.mathMl===!0&&(Cr($,s7),Cr(Q,J$),Cr(Q,K4))),Ce.ADD_TAGS&&($===H&&($=Qf($)),Cr($,Ce.ADD_TAGS,Ue)),Ce.ADD_ATTR&&(Q===j&&(Q=Qf(Q)),Cr(Q,Ce.ADD_ATTR,Ue)),Ce.ADD_URI_SAFE_ATTR&&Cr(oe,Ce.ADD_URI_SAFE_ATTR,Ue),Ce.FORBID_CONTENTS&&(be===W&&(be=Qf(be)),Cr(be,Ce.FORBID_CONTENTS,Ue)),$e&&($["#text"]=!0),ue&&Cr($,["html","head","body"]),$.table&&(Cr($,["tbody"]),delete ne.tbody),Ce.TRUSTED_TYPES_POLICY){if(typeof Ce.TRUSTED_TYPES_POLICY.createHTML!="function")throw My('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof Ce.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw My('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');C=Ce.TRUSTED_TYPES_POLICY,T=C.createHTML("")}else C===void 0&&(C=Zxe(m,i)),C!==null&&typeof T=="string"&&(T=C.createHTML(""));ja&&ja(Ce),ct=Ce}},"_parseConfig"),bt=Cr({},[...i7,...a7,...Gxe]),Mt=Cr({},[...s7,...Vxe]),xt=o(function(Ce){let tt=w(Ce);(!tt||!tt.tagName)&&(tt={namespaceURI:ve,tagName:"template"});let St=Q4(Ce.tagName),mr=Q4(tt.tagName);return _e[Ce.namespaceURI]?Ce.namespaceURI===q?tt.namespaceURI===pe?St==="svg":tt.namespaceURI===xe?St==="svg"&&(mr==="annotation-xml"||Ve[mr]):!!bt[St]:Ce.namespaceURI===xe?tt.namespaceURI===pe?St==="math":tt.namespaceURI===q?St==="math"&&De[mr]:!!Mt[St]:Ce.namespaceURI===pe?tt.namespaceURI===q&&!De[mr]||tt.namespaceURI===xe&&!Ve[mr]?!1:!Mt[St]&&(qe[St]||!bt[St]):!!(at==="application/xhtml+xml"&&_e[Ce.namespaceURI]):!1},"_checkValidNamespace"),ut=o(function(Ce){Ry(e.removed,{element:Ce});try{w(Ce).removeChild(Ce)}catch{v(Ce)}},"_forceRemove"),Et=o(function(Ce,tt){try{Ry(e.removed,{attribute:tt.getAttributeNode(Ce),from:tt})}catch{Ry(e.removed,{attribute:null,from:tt})}if(tt.removeAttribute(Ce),Ce==="is")if(ce||ae)try{ut(tt)}catch{}else try{tt.setAttribute(Ce,"")}catch{}},"_removeAttribute"),ft=o(function(Ce){let tt=null,St=null;if(Se)Ce="<remove></remove>"+Ce;else{let gn=j$(Ce,/^[\r\n\t ]+/);St=gn&&gn[0]}at==="application/xhtml+xml"&&ve===pe&&(Ce='<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>'+Ce+"</body></html>");let mr=C?C.createHTML(Ce):Ce;if(ve===pe)try{tt=new p().parseFromString(mr,at)}catch{}if(!tt||!tt.documentElement){tt=E.createDocument(ve,"template",null);try{tt.documentElement.innerHTML=Pe?T:mr}catch{}}let rn=tt.body||tt.documentElement;return Ce&&St&&rn.insertBefore(r.createTextNode(St),rn.childNodes[0]||null),ve===pe?_.call(tt,ue?"html":"body")[0]:ue?tt.documentElement:rn},"_initDocument"),yt=o(function(Ce){return A.call(Ce.ownerDocument||Ce,Ce,h.SHOW_ELEMENT|h.SHOW_COMMENT|h.SHOW_TEXT|h.SHOW_PROCESSING_INSTRUCTION|h.SHOW_CDATA_SECTION,null)},"_createNodeIterator"),nt=o(function(Ce){return Ce instanceof d&&(typeof Ce.nodeName!="string"||typeof Ce.textContent!="string"||typeof Ce.removeChild!="function"||!(Ce.attributes instanceof f)||typeof Ce.removeAttribute!="function"||typeof Ce.setAttribute!="function"||typeof Ce.namespaceURI!="string"||typeof Ce.insertBefore!="function"||typeof Ce.hasChildNodes!="function")},"_isClobbered"),dn=o(function(Ce){return typeof l=="function"&&Ce instanceof l},"_isNode");function Tt(At,Ce,tt){j4(At,St=>{St.call(e,Ce,tt,ct)})}o(Tt,"_executeHooks");let On=o(function(Ce){let tt=null;if(Tt(D.beforeSanitizeElements,Ce,null),nt(Ce))return ut(Ce),!0;let St=Ue(Ce.nodeName);if(Tt(D.uponSanitizeElement,Ce,{tagName:St,allowedTags:$}),Ce.hasChildNodes()&&!dn(Ce.firstElementChild)&&Xa(/<[/\w]/g,Ce.innerHTML)&&Xa(/<[/\w]/g,Ce.textContent)||Ce.nodeType===Oy.progressingInstruction||se&&Ce.nodeType===Oy.comment&&Xa(/<[/\w]/g,Ce.data))return ut(Ce),!0;if(!$[St]||ne[St]){if(!ne[St]&&_r(St)&&(ie.tagNameCheck instanceof RegExp&&Xa(ie.tagNameCheck,St)||ie.tagNameCheck instanceof Function&&ie.tagNameCheck(St)))return!1;if($e&&!be[St]){let mr=w(Ce)||Ce.parentNode,rn=b(Ce)||Ce.childNodes;if(rn&&mr){let gn=rn.length;for(let Zr=gn-1;Zr>=0;--Zr){let Ni=y(rn[Zr],!0);Ni.__removalCount=(Ce.__removalCount||0)+1,mr.insertBefore(Ni,x(Ce))}}}return ut(Ce),!0}return Ce instanceof u&&!xt(Ce)||(St==="noscript"||St==="noembed"||St==="noframes")&&Xa(/<\/no(script|embed|frames)/i,Ce.innerHTML)?(ut(Ce),!0):(J&&Ce.nodeType===Oy.text&&(tt=Ce.textContent,j4([k,L,R],mr=>{tt=Ny(tt,mr," ")}),Ce.textContent!==tt&&(Ry(e.removed,{element:Ce.cloneNode()}),Ce.textContent=tt)),Tt(D.afterSanitizeElements,Ce,null),!1)},"_sanitizeElements"),tn=o(function(Ce,tt,St){if(ge&&(tt==="id"||tt==="name")&&(St in r||St in We))return!1;if(!(K&&!le[tt]&&Xa(O,tt))){if(!(he&&Xa(M,tt))){if(!Q[tt]||le[tt]){if(!(_r(Ce)&&(ie.tagNameCheck instanceof RegExp&&Xa(ie.tagNameCheck,Ce)||ie.tagNameCheck instanceof Function&&ie.tagNameCheck(Ce))&&(ie.attributeNameCheck instanceof RegExp&&Xa(ie.attributeNameCheck,tt)||ie.attributeNameCheck instanceof Function&&ie.attributeNameCheck(tt))||tt==="is"&&ie.allowCustomizedBuiltInElements&&(ie.tagNameCheck instanceof RegExp&&Xa(ie.tagNameCheck,St)||ie.tagNameCheck instanceof Function&&ie.tagNameCheck(St))))return!1}else if(!oe[tt]){if(!Xa(z,Ny(St,F,""))){if(!((tt==="src"||tt==="xlink:href"||tt==="href")&&Ce!=="script"&&Bxe(St,"data:")===0&&de[Ce])){if(!(X&&!Xa(B,Ny(St,F,"")))){if(St)return!1}}}}}}return!0},"_isValidAttribute"),_r=o(function(Ce){return Ce!=="annotation-xml"&&j$(Ce,P)},"_isBasicCustomElement"),Dr=o(function(Ce){Tt(D.beforeSanitizeAttributes,Ce,null);let{attributes:tt}=Ce;if(!tt||nt(Ce))return;let St={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:Q,forceKeepAttr:void 0},mr=tt.length;for(;mr--;){let rn=tt[mr],{name:gn,namespaceURI:Zr,value:Ni}=rn,Zn=Ue(gn),Sn=gn==="value"?Ni:Fxe(Ni);if(St.attrName=Zn,St.attrValue=Sn,St.keepAttr=!0,St.forceKeepAttr=void 0,Tt(D.uponSanitizeAttribute,Ce,St),Sn=St.attrValue,ze&&(Zn==="id"||Zn==="name")&&(Et(gn,Ce),Sn=He+Sn),se&&Xa(/((--!?|])>)|<\/(style|title)/i,Sn)){Et(gn,Ce);continue}if(St.forceKeepAttr||(Et(gn,Ce),!St.keepAttr))continue;if(!te&&Xa(/\/>/i,Sn)){Et(gn,Ce);continue}J&&j4([k,L,R],et=>{Sn=Ny(Sn,et," ")});let Hr=Ue(Ce.nodeName);if(tn(Hr,Zn,Sn)){if(C&&typeof m=="object"&&typeof m.getAttributeType=="function"&&!Zr)switch(m.getAttributeType(Hr,Zn)){case"TrustedHTML":{Sn=C.createHTML(Sn);break}case"TrustedScriptURL":{Sn=C.createScriptURL(Sn);break}}try{Zr?Ce.setAttributeNS(Zr,gn,Sn):Ce.setAttribute(gn,Sn),nt(Ce)?ut(Ce):X$(e.removed)}catch{}}}Tt(D.afterSanitizeAttributes,Ce,null)},"_sanitizeAttributes"),Pn=o(function At(Ce){let tt=null,St=yt(Ce);for(Tt(D.beforeSanitizeShadowDOM,Ce,null);tt=St.nextNode();)Tt(D.uponSanitizeShadowNode,tt,null),On(tt),Dr(tt),tt.content instanceof a&&At(tt.content);Tt(D.afterSanitizeShadowDOM,Ce,null)},"_sanitizeShadowDOM");return e.sanitize=function(At){let Ce=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},tt=null,St=null,mr=null,rn=null;if(Pe=!At,Pe&&(At="<!-->"),typeof At!="string"&&!dn(At))if(typeof At.toString=="function"){if(At=At.toString(),typeof At!="string")throw My("dirty is not a string, aborting")}else throw My("toString is not a function");if(!e.isSupported)return At;if(Z||Yt(Ce),e.removed=[],typeof At=="string"&&(Re=!1),Re){if(At.nodeName){let Ni=Ue(At.nodeName);if(!$[Ni]||ne[Ni])throw My("root node is forbidden and cannot be sanitized in-place")}}else if(At instanceof l)tt=ft("<!---->"),St=tt.ownerDocument.importNode(At,!0),St.nodeType===Oy.element&&St.nodeName==="BODY"||St.nodeName==="HTML"?tt=St:tt.appendChild(St);else{if(!ce&&!J&&!ue&&At.indexOf("<")===-1)return C&&Oe?C.createHTML(At):At;if(tt=ft(At),!tt)return ce?null:Oe?T:""}tt&&Se&&ut(tt.firstChild);let gn=yt(Re?At:tt);for(;mr=gn.nextNode();)On(mr),Dr(mr),mr.content instanceof a&&Pn(mr.content);if(Re)return At;if(ce){if(ae)for(rn=S.call(tt.ownerDocument);tt.firstChild;)rn.appendChild(tt.firstChild);else rn=tt;return(Q.shadowroot||Q.shadowrootmode)&&(rn=I.call(n,rn,!0)),rn}let Zr=ue?tt.outerHTML:tt.innerHTML;return ue&&$["!doctype"]&&tt.ownerDocument&&tt.ownerDocument.doctype&&tt.ownerDocument.doctype.name&&Xa(az,tt.ownerDocument.doctype.name)&&(Zr="<!DOCTYPE "+tt.ownerDocument.doctype.name+`>
+`+Zr),J&&j4([k,L,R],Ni=>{Zr=Ny(Zr,Ni," ")}),C&&Oe?C.createHTML(Zr):Zr},e.setConfig=function(){let At=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Yt(At),Z=!0},e.clearConfig=function(){ct=null,Z=!1},e.isValidAttribute=function(At,Ce,tt){ct||Yt({});let St=Ue(At),mr=Ue(Ce);return tn(St,mr,tt)},e.addHook=function(At,Ce){typeof Ce=="function"&&Ry(D[At],Ce)},e.removeHook=function(At,Ce){if(Ce!==void 0){let tt=Oxe(D[At],Ce);return tt===-1?void 0:Pxe(D[At],tt,1)[0]}return X$(D[At])},e.removeHooks=function(At){D[At]=[]},e.removeAllHooks=function(){D=tz()},e}var rz,Y$,Nxe,Mxe,Ixe,ja,ko,nz,l7,c7,j4,Oxe,X$,Ry,Pxe,Q4,n7,j$,Ny,Bxe,Fxe,sl,Xa,My,K$,i7,a7,Gxe,s7,Vxe,Q$,Z$,o7,J$,K4,Uxe,Hxe,Wxe,qxe,Yxe,iz,Xxe,jxe,az,Kxe,ez,Oy,Qxe,Zxe,tz,ch,u7=N(()=>{"use strict";({entries:rz,setPrototypeOf:Y$,isFrozen:Nxe,getPrototypeOf:Mxe,getOwnPropertyDescriptor:Ixe}=Object),{freeze:ja,seal:ko,create:nz}=Object,{apply:l7,construct:c7}=typeof Reflect<"u"&&Reflect;ja||(ja=o(function(e){return e},"freeze"));ko||(ko=o(function(e){return e},"seal"));l7||(l7=o(function(e,r,n){return e.apply(r,n)},"apply"));c7||(c7=o(function(e,r){return new e(...r)},"construct"));j4=Ka(Array.prototype.forEach),Oxe=Ka(Array.prototype.lastIndexOf),X$=Ka(Array.prototype.pop),Ry=Ka(Array.prototype.push),Pxe=Ka(Array.prototype.splice),Q4=Ka(String.prototype.toLowerCase),n7=Ka(String.prototype.toString),j$=Ka(String.prototype.match),Ny=Ka(String.prototype.replace),Bxe=Ka(String.prototype.indexOf),Fxe=Ka(String.prototype.trim),sl=Ka(Object.prototype.hasOwnProperty),Xa=Ka(RegExp.prototype.test),My=$xe(TypeError);o(Ka,"unapply");o($xe,"unconstruct");o(Cr,"addToSet");o(zxe,"cleanArray");o(Qf,"clone");o(Iy,"lookupGetter");K$=ja(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dialog","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","section","select","shadow","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),i7=ja(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","filter","font","g","glyph","glyphref","hkern","image","line","lineargradient","marker","mask","metadata","mpath","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),a7=ja(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),Gxe=ja(["animate","color-profile","cursor","discard","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-glyph","script","set","solidcolor","unknown","use"]),s7=ja(["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmultiscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover","mprescripts"]),Vxe=ja(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),Q$=ja(["#text"]),Z$=ja(["accept","action","align","alt","autocapitalize","autocomplete","autopictureinpicture","autoplay","background","bgcolor","border","capture","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","controls","controlslist","coords","crossorigin","datetime","decoding","default","dir","disabled","disablepictureinpicture","disableremoteplayback","download","draggable","enctype","enterkeyhint","face","for","headers","height","hidden","high","href","hreflang","id","inputmode","integrity","ismap","kind","label","lang","list","loading","loop","low","max","maxlength","media","method","min","minlength","multiple","muted","name","nonce","noshade","novalidate","nowrap","open","optimum","pattern","placeholder","playsinline","popover","popovertarget","popovertargetaction","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","span","srclang","start","src","srcset","step","style","summary","tabindex","title","translate","type","usemap","valign","value","width","wrap","xmlns","slot"]),o7=ja(["accent-height","accumulate","additive","alignment-baseline","amplitude","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clippathunits","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dur","edgemode","elevation","end","exponent","fill","fill-opacity","fill-rule","filter","filterunits","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","intercept","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","points","preservealpha","preserveaspectratio","primitiveunits","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","slope","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","systemlanguage","tabindex","tablevalues","targetx","targety","transform","transform-origin","text-anchor","text-decoration","text-rendering","textlength","type","u1","u2","unicode","values","viewbox","visibility","version","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"]),J$=ja(["accent","accentunder","align","bevelled","close","columnsalign","columnlines","columnspan","denomalign","depth","dir","display","displaystyle","encoding","fence","frame","height","href","id","largeop","length","linethickness","lspace","lquote","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"]),K4=ja(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),Uxe=ko(/\{\{[\w\W]*|[\w\W]*\}\}/gm),Hxe=ko(/<%[\w\W]*|[\w\W]*%>/gm),Wxe=ko(/\$\{[\w\W]*/gm),qxe=ko(/^data-[\-\w.\u00B7-\uFFFF]+$/),Yxe=ko(/^aria-[\-\w]+$/),iz=ko(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),Xxe=ko(/^(?:\w+script|data):/i),jxe=ko(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),az=ko(/^html$/i),Kxe=ko(/^[a-z][.\w]*(-[.\w]+)+$/i),ez=Object.freeze({__proto__:null,ARIA_ATTR:Yxe,ATTR_WHITESPACE:jxe,CUSTOM_ELEMENT:Kxe,DATA_ATTR:qxe,DOCTYPE_NAME:az,ERB_EXPR:Hxe,IS_ALLOWED_URI:iz,IS_SCRIPT_OR_DATA:Xxe,MUSTACHE_EXPR:Uxe,TMPLIT_EXPR:Wxe}),Oy={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,progressingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},Qxe=o(function(){return typeof window>"u"?null:window},"getGlobal"),Zxe=o(function(e,r){if(typeof e!="object"||typeof e.createPolicy!="function")return null;let n=null,i="data-tt-policy-suffix";r&&r.hasAttribute(i)&&(n=r.getAttribute(i));let a="dompurify"+(n?"#"+n:"");try{return e.createPolicy(a,{createHTML(s){return s},createScriptURL(s){return s}})}catch{return console.warn("TrustedTypes policy "+a+" could not be created."),null}},"_createTrustedTypesPolicy"),tz=o(function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},"_createHooksMap");o(sz,"createDOMPurify");ch=sz()});var MG={};hr(MG,{default:()=>q4e});function abe(t){return String(t).replace(ibe,e=>nbe[e])}function cbe(t){if(t.default)return t.default;var e=t.type,r=Array.isArray(e)?e[0]:e;if(typeof r!="string")return r.enum[0];switch(r){case"boolean":return!1;case"string":return"";case"number":return 0;case"object":return{}}}function gbe(t){for(var e=0;e<k7.length;e++)for(var r=k7[e],n=0;n<r.blocks.length;n++){var i=r.blocks[n];if(t>=i[0]&&t<=i[1])return r.name}return null}function $z(t){for(var e=0;e<u3.length;e+=2)if(t>=u3[e]&&t<=u3[e+1])return!0;return!1}function Abe(t,e){jl[t]=e}function P7(t,e,r){if(!jl[e])throw new Error("Font metrics not found for font: "+e+".");var n=t.charCodeAt(0),i=jl[e][n];if(!i&&t[0]in lz&&(n=lz[t[0]].charCodeAt(0),i=jl[e][n]),!i&&r==="text"&&$z(n)&&(i=jl[e][77]),i)return{depth:i[0],height:i[1],italic:i[2],skew:i[3],width:i[4]}}function _be(t){var e;if(t>=5?e=0:t>=3?e=1:e=2,!h7[e]){var r=h7[e]={cssEmPerMu:Z4.quad[e]/18};for(var n in Z4)Z4.hasOwnProperty(n)&&(r[n]=Z4[n][e])}return h7[e]}function hz(t){if(t instanceof Ts)return t;throw new Error("Expected symbolNode but got "+String(t)+".")}function Nbe(t){if(t instanceof td)return t;throw new Error("Expected span<HtmlDomNode> but got "+String(t)+".")}function G(t,e,r,n,i,a){An[t][i]={font:e,group:r,replace:n},a&&n&&(An[t][n]=An[t][i])}function Nt(t){for(var{type:e,names:r,props:n,handler:i,htmlBuilder:a,mathmlBuilder:s}=t,l={type:e,numArgs:n.numArgs,argTypes:n.argTypes,allowedInArgument:!!n.allowedInArgument,allowedInText:!!n.allowedInText,allowedInMath:n.allowedInMath===void 0?!0:n.allowedInMath,numOptionalArgs:n.numOptionalArgs||0,infix:!!n.infix,primitive:!!n.primitive,handler:i},u=0;u<r.length;++u)jz[r[u]]=l;e&&(a&&(p3[e]=a),s&&(m3[e]=s))}function rd(t){var{type:e,htmlBuilder:r,mathmlBuilder:n}=t;Nt({type:e,names:[],props:{numArgs:0},handler(){throw new Error("Should never be called.")},htmlBuilder:r,mathmlBuilder:n})}function a3(t,e){var r=lu(["base"],t,e),n=lu(["strut"]);return n.style.height=kt(r.height+r.depth),r.depth&&(n.style.verticalAlign=kt(-r.depth)),r.children.unshift(n),r}function _7(t,e){var r=null;t.length===1&&t[0].type==="tag"&&(r=t[0].tag,t=t[0].body);var n=Pi(t,e,"root"),i;n.length===2&&n[1].hasClass("tag")&&(i=n.pop());for(var a=[],s=[],l=0;l<n.length;l++)if(s.push(n[l]),n[l].hasClass("mbin")||n[l].hasClass("mrel")||n[l].hasClass("allowbreak")){for(var u=!1;l<n.length-1&&n[l+1].hasClass("mspace")&&!n[l+1].hasClass("newline");)l++,s.push(n[l]),n[l].hasClass("nobreak")&&(u=!0);u||(a.push(a3(s,e)),s=[])}else n[l].hasClass("newline")&&(s.pop(),s.length>0&&(a.push(a3(s,e)),s=[]),a.push(n[l]));s.length>0&&a.push(a3(s,e));var h;r?(h=a3(Pi(r,e,!0)),h.classes=["tag"],a.push(h)):i&&a.push(i);var f=lu(["katex-html"],a);if(f.setAttribute("aria-hidden","true"),h){var d=h.children[0];d.style.height=kt(f.height+f.depth),f.depth&&(d.style.verticalAlign=kt(-f.depth))}return f}function Qz(t){return new ed(t)}function gz(t,e,r,n,i){var a=ks(t,r),s;a.length===1&&a[0]instanceof ws&&Jt.contains(["mrow","mtable"],a[0].type)?s=a[0]:s=new dt.MathNode("mrow",a);var l=new dt.MathNode("annotation",[new dt.TextNode(e)]);l.setAttribute("encoding","application/x-tex");var u=new dt.MathNode("semantics",[s,l]),h=new dt.MathNode("math",[u]);h.setAttribute("xmlns","http://www.w3.org/1998/Math/MathML"),n&&h.setAttribute("display","block");var f=i?"katex":"katex-mathml";return Be.makeSpan([f],[h])}function xr(t,e){if(!t||t.type!==e)throw new Error("Expected node of type "+e+", but got "+(t?"node of type "+t.type:String(t)));return t}function z7(t){var e=w3(t);if(!e)throw new Error("Expected node of symbol group type, but got "+(t?"node of type "+t.type:String(t)));return e}function w3(t){return t&&(t.type==="atom"||Ibe.hasOwnProperty(t.type))?t:null}function tG(t,e){var r=Pi(t.body,e,!0);return u4e([t.mclass],r,e)}function rG(t,e){var r,n=ks(t.body,e);return t.mclass==="minner"?r=new dt.MathNode("mpadded",n):t.mclass==="mord"?t.isCharacterBox?(r=n[0],r.type="mi"):r=new dt.MathNode("mi",n):(t.isCharacterBox?(r=n[0],r.type="mo"):r=new dt.MathNode("mo",n),t.mclass==="mbin"?(r.attributes.lspace="0.22em",r.attributes.rspace="0.22em"):t.mclass==="mpunct"?(r.attributes.lspace="0em",r.attributes.rspace="0.17em"):t.mclass==="mopen"||t.mclass==="mclose"?(r.attributes.lspace="0em",r.attributes.rspace="0em"):t.mclass==="minner"&&(r.attributes.lspace="0.0556em",r.attributes.width="+0.1111em")),r}function d4e(t,e,r){var n=h4e[t];switch(n){case"\\\\cdrightarrow":case"\\\\cdleftarrow":return r.callFunction(n,[e[0]],[e[1]]);case"\\uparrow":case"\\downarrow":{var i=r.callFunction("\\\\cdleft",[e[0]],[]),a={type:"atom",text:n,mode:"math",family:"rel"},s=r.callFunction("\\Big",[a],[]),l=r.callFunction("\\\\cdright",[e[1]],[]),u={type:"ordgroup",mode:"math",body:[i,s,l]};return r.callFunction("\\\\cdparent",[u],[])}case"\\\\cdlongequal":return r.callFunction("\\\\cdlongequal",[],[]);case"\\Vert":{var h={type:"textord",text:"\\Vert",mode:"math"};return r.callFunction("\\Big",[h],[])}default:return{type:"textord",text:" ",mode:"math"}}}function p4e(t){var e=[];for(t.gullet.beginGroup(),t.gullet.macros.set("\\cr","\\\\\\relax"),t.gullet.beginGroup();;){e.push(t.parseExpression(!1,"\\\\")),t.gullet.endGroup(),t.gullet.beginGroup();var r=t.fetch().text;if(r==="&"||r==="\\\\")t.consume();else if(r==="\\end"){e[e.length-1].length===0&&e.pop();break}else throw new gt("Expected \\\\ or \\cr or \\end",t.nextToken)}for(var n=[],i=[n],a=0;a<e.length;a++){for(var s=e[a],l=yz(),u=0;u<s.length;u++)if(!vz(s[u]))l.body.push(s[u]);else{n.push(l),u+=1;var h=z7(s[u]).text,f=new Array(2);if(f[0]={type:"ordgroup",mode:"math",body:[]},f[1]={type:"ordgroup",mode:"math",body:[]},!("=|.".indexOf(h)>-1))if("<>AV".indexOf(h)>-1)for(var d=0;d<2;d++){for(var p=!0,m=u+1;m<s.length;m++){if(f4e(s[m],h)){p=!1,u=m;break}if(vz(s[m]))throw new gt("Missing a "+h+" character to complete a CD arrow.",s[m]);f[d].body.push(s[m])}if(p)throw new gt("Missing a "+h+" character to complete a CD arrow.",s[u])}else throw new gt('Expected one of "<>AV=|." after @',s[u]);var g=d4e(h,f,t),y={type:"styling",body:[g],mode:"math",style:"display"};n.push(y),l=yz()}a%2===0?n.push(l):n.shift(),n=[],i.push(n)}t.gullet.endGroup(),t.gullet.endGroup();var v=new Array(i[0].length).fill({type:"align",align:"c",pregap:.25,postgap:.25});return{type:"array",mode:"math",body:i,arraystretch:1,addJot:!0,rowGaps:[null],cols:v,colSeparationType:"CD",hLinesBeforeRow:new Array(i.length+1).fill([])}}function k3(t,e){var r=w3(t);if(r&&Jt.contains(A4e,r.text))return r;throw r?new gt("Invalid delimiter '"+r.text+"' after '"+e.funcName+"'",t):new gt("Invalid delimiter type '"+t.type+"'",t)}function bz(t){if(!t.body)throw new Error("Bug: The leftright ParseNode wasn't fully parsed.")}function Ql(t){for(var{type:e,names:r,props:n,handler:i,htmlBuilder:a,mathmlBuilder:s}=t,l={type:e,numArgs:n.numArgs||0,allowedInText:!1,numOptionalArgs:0,handler:i},u=0;u<r.length;++u)mG[r[u]]=l;a&&(p3[e]=a),s&&(m3[e]=s)}function fe(t,e){gG[t]=e}function wz(t){var e=[];t.consumeSpaces();var r=t.fetch().text;for(r==="\\relax"&&(t.consume(),t.consumeSpaces(),r=t.fetch().text);r==="\\hline"||r==="\\hdashline";)t.consume(),e.push(r==="\\hdashline"),t.consumeSpaces(),r=t.fetch().text;return e}function W7(t){if(t.indexOf("ed")===-1)return t.indexOf("*")===-1}function ph(t,e,r){var{hskipBeforeAndAfter:n,addJot:i,cols:a,arraystretch:s,colSeparationType:l,autoTag:u,singleRow:h,emptySingleRow:f,maxNumCols:d,leqno:p}=e;if(t.gullet.beginGroup(),h||t.gullet.macros.set("\\cr","\\\\\\relax"),!s){var m=t.gullet.expandMacroAsText("\\arraystretch");if(m==null)s=1;else if(s=parseFloat(m),!s||s<0)throw new gt("Invalid \\arraystretch: "+m)}t.gullet.beginGroup();var g=[],y=[g],v=[],x=[],b=u!=null?[]:void 0;function w(){u&&t.gullet.macros.set("\\@eqnsw","1",!0)}o(w,"beginRow");function C(){b&&(t.gullet.macros.get("\\df@tag")?(b.push(t.subparse([new So("\\df@tag")])),t.gullet.macros.set("\\df@tag",void 0,!0)):b.push(!!u&&t.gullet.macros.get("\\@eqnsw")==="1"))}for(o(C,"endRow"),w(),x.push(wz(t));;){var T=t.parseExpression(!1,h?"\\end":"\\\\");t.gullet.endGroup(),t.gullet.beginGroup(),T={type:"ordgroup",mode:t.mode,body:T},r&&(T={type:"styling",mode:t.mode,style:r,body:[T]}),g.push(T);var E=t.fetch().text;if(E==="&"){if(d&&g.length===d){if(h||l)throw new gt("Too many tab characters: &",t.nextToken);t.settings.reportNonstrict("textEnv","Too few columns specified in the {array} column argument.")}t.consume()}else if(E==="\\end"){C(),g.length===1&&T.type==="styling"&&T.body[0].body.length===0&&(y.length>1||!f)&&y.pop(),x.length<y.length+1&&x.push([]);break}else if(E==="\\\\"){t.consume();var A=void 0;t.gullet.future().text!==" "&&(A=t.parseSizeGroup(!0)),v.push(A?A.value:null),C(),x.push(wz(t)),g=[],y.push(g),w()}else throw new gt("Expected & or \\\\ or \\cr or \\end",t.nextToken)}return t.gullet.endGroup(),t.gullet.endGroup(),{type:"array",mode:t.mode,addJot:i,arraystretch:s,body:y,cols:a,rowGaps:v,hskipBeforeAndAfter:n,hLinesBeforeRow:x,colSeparationType:l,tags:b,leqno:p}}function q7(t){return t.slice(0,1)==="d"?"display":"text"}function SG(t,e,r){for(var n=Pi(t,e,!1),i=e.sizeMultiplier/r.sizeMultiplier,a=0;a<n.length;a++){var s=n[a].classes.indexOf("sizing");s<0?Array.prototype.push.apply(n[a].classes,e.sizingClasses(r)):n[a].classes[s+1]==="reset-size"+e.size&&(n[a].classes[s+1]="reset-size"+r.size),n[a].height*=i,n[a].depth*=i}return Be.makeFragment(n)}var Xs,So,gt,Jxe,ebe,tbe,rbe,nbe,ibe,Fz,sbe,obe,lbe,Jt,c3,zy,Yl,O7,h3,f0,su,Gy,Eo,d0,Qa,Xl,ube,hbe,fbe,dbe,pbe,mbe,tr,k7,u3,h0,ybe,vbe,xbe,bbe,wbe,Tbe,kbe,Ebe,Sbe,oz,Cbe,ed,jl,Z4,lz,h7,Dbe,cz,uz,f3,E7,Lbe,zz,ti,kt,fh,Gz,Vz,Uz,td,Vy,S7,Rbe,Ts,ll,Kl,Uy,Mbe,Ibe,An,U,it,ee,ke,Vn,It,Za,p0,er,ki,js,x3,Ee,uu,Le,Hz,fz,f7,J4,dz,d7,e3,d3,Py,t3,sr,Jn,Ca,iu,uh,C7,By,r3,n3,pz,Obe,b3,ol,Pbe,Bbe,Fbe,$be,zbe,B7,bs,Wz,Gbe,Vbe,qz,Ube,Hbe,Wbe,qbe,i3,Yz,Xz,Ybe,Be,ei,Zf,au,Xbe,jbe,jz,p3,m3,g3,di,lu,Kbe,Qbe,Zbe,Jbe,Pi,mz,Kz,e4e,A7,Hy,Fr,ws,Jf,D7,dt,Co,F7,$7,ks,dh,yn,Zz,Jz,t4e,r4e,n4e,i4e,a4e,s4e,o4e,l4e,cu,G7,eG,c4e,s3,u4e,T3,h4e,yz,vz,f4e,nG,iG,L7,aG,m4e,sG,Fy,V7,oG,g4e,y4e,lG,p7,m7,R7,o3,v4e,x4e,cG,g7,y7,v7,b4e,uG,w4e,hG,$y,T4e,k4e,E4e,fG,S4e,dG,pG,C4e,ou,xz,A4e,U7,H7,mG,gG,E3,Zl,_4e,Jl,yG,Tz,vG,xG,kz,bG,Y7,X7,Ez,Sz,wG,D4e,x7,Cz,TG,kG,m0,Wy,L4e,R4e,EG,N4e,Az,M4e,_z,I4e,CG,b7,w7,Dz,Lz,Rz,O4e,Nz,Mz,hh,AG,P4e,B4e,F4e,$4e,N7,z4e,G4e,y3,M7,V4e,Iz,j7,Oz,K7,_G,DG,LG,I7,Pz,l3,T7,Bz,v3,Q7,RG,U4e,H4e,NG,Z7,W4e,q4e,IG=N(()=>{"use strict";Xs=class t{static{o(this,"SourceLocation")}constructor(e,r,n){this.lexer=void 0,this.start=void 0,this.end=void 0,this.lexer=e,this.start=r,this.end=n}static range(e,r){return r?!e||!e.loc||!r.loc||e.loc.lexer!==r.loc.lexer?null:new t(e.loc.lexer,e.loc.start,r.loc.end):e&&e.loc}},So=class t{static{o(this,"Token")}constructor(e,r){this.text=void 0,this.loc=void 0,this.noexpand=void 0,this.treatAsRelax=void 0,this.text=e,this.loc=r}range(e,r){return new t(r,Xs.range(this,e))}},gt=class t{static{o(this,"ParseError")}constructor(e,r){this.name=void 0,this.position=void 0,this.length=void 0,this.rawMessage=void 0;var n="KaTeX parse error: "+e,i,a,s=r&&r.loc;if(s&&s.start<=s.end){var l=s.lexer.input;i=s.start,a=s.end,i===l.length?n+=" at end of input: ":n+=" at position "+(i+1)+": ";var u=l.slice(i,a).replace(/[^]/g,"$&\u0332"),h;i>15?h="\u2026"+l.slice(i-15,i):h=l.slice(0,i);var f;a+15<l.length?f=l.slice(a,a+15)+"\u2026":f=l.slice(a),n+=h+u+f}var d=new Error(n);return d.name="ParseError",d.__proto__=t.prototype,d.position=i,i!=null&&a!=null&&(d.length=a-i),d.rawMessage=e,d}};gt.prototype.__proto__=Error.prototype;Jxe=o(function(e,r){return e.indexOf(r)!==-1},"contains"),ebe=o(function(e,r){return e===void 0?r:e},"deflt"),tbe=/([A-Z])/g,rbe=o(function(e){return e.replace(tbe,"-$1").toLowerCase()},"hyphenate"),nbe={"&":"&amp;",">":"&gt;","<":"&lt;",'"':"&quot;","'":"&#x27;"},ibe=/[&><"']/g;o(abe,"escape");Fz=o(function t(e){return e.type==="ordgroup"||e.type==="color"?e.body.length===1?t(e.body[0]):e:e.type==="font"?t(e.body):e},"getBaseElem"),sbe=o(function(e){var r=Fz(e);return r.type==="mathord"||r.type==="textord"||r.type==="atom"},"isCharacterBox"),obe=o(function(e){if(!e)throw new Error("Expected non-null, but got "+String(e));return e},"assert"),lbe=o(function(e){var r=/^[\x00-\x20]*([^\\/#?]*?)(:|&#0*58|&#x0*3a|&colon)/i.exec(e);return r?r[2]!==":"||!/^[a-zA-Z][a-zA-Z0-9+\-.]*$/.test(r[1])?null:r[1].toLowerCase():"_relative"},"protocolFromUrl"),Jt={contains:Jxe,deflt:ebe,escape:abe,hyphenate:rbe,getBaseElem:Fz,isCharacterBox:sbe,protocolFromUrl:lbe},c3={displayMode:{type:"boolean",description:"Render math in display mode, which puts the math in display style (so \\int and \\sum are large, for example), and centers the math on the page on its own line.",cli:"-d, --display-mode"},output:{type:{enum:["htmlAndMathml","html","mathml"]},description:"Determines the markup language of the output.",cli:"-F, --format <type>"},leqno:{type:"boolean",description:"Render display math in leqno style (left-justified tags)."},fleqn:{type:"boolean",description:"Render display math flush left."},throwOnError:{type:"boolean",default:!0,cli:"-t, --no-throw-on-error",cliDescription:"Render errors (in the color given by --error-color) instead of throwing a ParseError exception when encountering an error."},errorColor:{type:"string",default:"#cc0000",cli:"-c, --error-color <color>",cliDescription:"A color string given in the format 'rgb' or 'rrggbb' (no #). This option determines the color of errors rendered by the -t option.",cliProcessor:o(t=>"#"+t,"cliProcessor")},macros:{type:"object",cli:"-m, --macro <def>",cliDescription:"Define custom macro of the form '\\foo:expansion' (use multiple -m arguments for multiple macros).",cliDefault:[],cliProcessor:o((t,e)=>(e.push(t),e),"cliProcessor")},minRuleThickness:{type:"number",description:"Specifies a minimum thickness, in ems, for fraction lines, `\\sqrt` top lines, `{array}` vertical lines, `\\hline`, `\\hdashline`, `\\underline`, `\\overline`, and the borders of `\\fbox`, `\\boxed`, and `\\fcolorbox`.",processor:o(t=>Math.max(0,t),"processor"),cli:"--min-rule-thickness <size>",cliProcessor:parseFloat},colorIsTextColor:{type:"boolean",description:"Makes \\color behave like LaTeX's 2-argument \\textcolor, instead of LaTeX's one-argument \\color mode change.",cli:"-b, --color-is-text-color"},strict:{type:[{enum:["warn","ignore","error"]},"boolean","function"],description:"Turn on strict / LaTeX faithfulness mode, which throws an error if the input uses features that are not supported by LaTeX.",cli:"-S, --strict",cliDefault:!1},trust:{type:["boolean","function"],description:"Trust the input, enabling all HTML features such as \\url.",cli:"-T, --trust"},maxSize:{type:"number",default:1/0,description:"If non-zero, all user-specified sizes, e.g. in \\rule{500em}{500em}, will be capped to maxSize ems. Otherwise, elements and spaces can be arbitrarily large",processor:o(t=>Math.max(0,t),"processor"),cli:"-s, --max-size <n>",cliProcessor:parseInt},maxExpand:{type:"number",default:1e3,description:"Limit the number of macro expansions to the specified number, to prevent e.g. infinite macro loops. If set to Infinity, the macro expander will try to fully expand as in LaTeX.",processor:o(t=>Math.max(0,t),"processor"),cli:"-e, --max-expand <n>",cliProcessor:o(t=>t==="Infinity"?1/0:parseInt(t),"cliProcessor")},globalGroup:{type:"boolean",cli:!1}};o(cbe,"getDefaultValue");zy=class{static{o(this,"Settings")}constructor(e){this.displayMode=void 0,this.output=void 0,this.leqno=void 0,this.fleqn=void 0,this.throwOnError=void 0,this.errorColor=void 0,this.macros=void 0,this.minRuleThickness=void 0,this.colorIsTextColor=void 0,this.strict=void 0,this.trust=void 0,this.maxSize=void 0,this.maxExpand=void 0,this.globalGroup=void 0,e=e||{};for(var r in c3)if(c3.hasOwnProperty(r)){var n=c3[r];this[r]=e[r]!==void 0?n.processor?n.processor(e[r]):e[r]:cbe(n)}}reportNonstrict(e,r,n){var i=this.strict;if(typeof i=="function"&&(i=i(e,r,n)),!(!i||i==="ignore")){if(i===!0||i==="error")throw new gt("LaTeX-incompatible input and strict mode is set to 'error': "+(r+" ["+e+"]"),n);i==="warn"?typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+(r+" ["+e+"]")):typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to "+("unrecognized '"+i+"': "+r+" ["+e+"]"))}}useStrictBehavior(e,r,n){var i=this.strict;if(typeof i=="function")try{i=i(e,r,n)}catch{i="error"}return!i||i==="ignore"?!1:i===!0||i==="error"?!0:i==="warn"?(typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+(r+" ["+e+"]")),!1):(typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to "+("unrecognized '"+i+"': "+r+" ["+e+"]")),!1)}isTrusted(e){if(e.url&&!e.protocol){var r=Jt.protocolFromUrl(e.url);if(r==null)return!1;e.protocol=r}var n=typeof this.trust=="function"?this.trust(e):this.trust;return!!n}},Yl=class{static{o(this,"Style")}constructor(e,r,n){this.id=void 0,this.size=void 0,this.cramped=void 0,this.id=e,this.size=r,this.cramped=n}sup(){return Xl[ube[this.id]]}sub(){return Xl[hbe[this.id]]}fracNum(){return Xl[fbe[this.id]]}fracDen(){return Xl[dbe[this.id]]}cramp(){return Xl[pbe[this.id]]}text(){return Xl[mbe[this.id]]}isTight(){return this.size>=2}},O7=0,h3=1,f0=2,su=3,Gy=4,Eo=5,d0=6,Qa=7,Xl=[new Yl(O7,0,!1),new Yl(h3,0,!0),new Yl(f0,1,!1),new Yl(su,1,!0),new Yl(Gy,2,!1),new Yl(Eo,2,!0),new Yl(d0,3,!1),new Yl(Qa,3,!0)],ube=[Gy,Eo,Gy,Eo,d0,Qa,d0,Qa],hbe=[Eo,Eo,Eo,Eo,Qa,Qa,Qa,Qa],fbe=[f0,su,Gy,Eo,d0,Qa,d0,Qa],dbe=[su,su,Eo,Eo,Qa,Qa,Qa,Qa],pbe=[h3,h3,su,su,Eo,Eo,Qa,Qa],mbe=[O7,h3,f0,su,f0,su,f0,su],tr={DISPLAY:Xl[O7],TEXT:Xl[f0],SCRIPT:Xl[Gy],SCRIPTSCRIPT:Xl[d0]},k7=[{name:"latin",blocks:[[256,591],[768,879]]},{name:"cyrillic",blocks:[[1024,1279]]},{name:"armenian",blocks:[[1328,1423]]},{name:"brahmic",blocks:[[2304,4255]]},{name:"georgian",blocks:[[4256,4351]]},{name:"cjk",blocks:[[12288,12543],[19968,40879],[65280,65376]]},{name:"hangul",blocks:[[44032,55215]]}];o(gbe,"scriptFromCodepoint");u3=[];k7.forEach(t=>t.blocks.forEach(e=>u3.push(...e)));o($z,"supportedCodepoint");h0=80,ybe=o(function(e,r){return"M95,"+(622+e+r)+`
+c-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14
+c0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54
+c44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10
+s173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429
+c69,-144,104.5,-217.7,106.5,-221
+l`+e/2.075+" -"+e+`
+c5.3,-9.3,12,-14,20,-14
+H400000v`+(40+e)+`H845.2724
+s-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7
+c-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z
+M`+(834+e)+" "+r+"h400000v"+(40+e)+"h-400000z"},"sqrtMain"),vbe=o(function(e,r){return"M263,"+(601+e+r)+`c0.7,0,18,39.7,52,119
+c34,79.3,68.167,158.7,102.5,238c34.3,79.3,51.8,119.3,52.5,120
+c340,-704.7,510.7,-1060.3,512,-1067
+l`+e/2.084+" -"+e+`
+c4.7,-7.3,11,-11,19,-11
+H40000v`+(40+e)+`H1012.3
+s-271.3,567,-271.3,567c-38.7,80.7,-84,175,-136,283c-52,108,-89.167,185.3,-111.5,232
+c-22.3,46.7,-33.8,70.3,-34.5,71c-4.7,4.7,-12.3,7,-23,7s-12,-1,-12,-1
+s-109,-253,-109,-253c-72.7,-168,-109.3,-252,-110,-252c-10.7,8,-22,16.7,-34,26
+c-22,17.3,-33.3,26,-34,26s-26,-26,-26,-26s76,-59,76,-59s76,-60,76,-60z
+M`+(1001+e)+" "+r+"h400000v"+(40+e)+"h-400000z"},"sqrtSize1"),xbe=o(function(e,r){return"M983 "+(10+e+r)+`
+l`+e/3.13+" -"+e+`
+c4,-6.7,10,-10,18,-10 H400000v`+(40+e)+`
+H1013.1s-83.4,268,-264.1,840c-180.7,572,-277,876.3,-289,913c-4.7,4.7,-12.7,7,-24,7
+s-12,0,-12,0c-1.3,-3.3,-3.7,-11.7,-7,-25c-35.3,-125.3,-106.7,-373.3,-214,-744
+c-10,12,-21,25,-33,39s-32,39,-32,39c-6,-5.3,-15,-14,-27,-26s25,-30,25,-30
+c26.7,-32.7,52,-63,76,-91s52,-60,52,-60s208,722,208,722
+c56,-175.3,126.3,-397.3,211,-666c84.7,-268.7,153.8,-488.2,207.5,-658.5
+c53.7,-170.3,84.5,-266.8,92.5,-289.5z
+M`+(1001+e)+" "+r+"h400000v"+(40+e)+"h-400000z"},"sqrtSize2"),bbe=o(function(e,r){return"M424,"+(2398+e+r)+`
+c-1.3,-0.7,-38.5,-172,-111.5,-514c-73,-342,-109.8,-513.3,-110.5,-514
+c0,-2,-10.7,14.3,-32,49c-4.7,7.3,-9.8,15.7,-15.5,25c-5.7,9.3,-9.8,16,-12.5,20
+s-5,7,-5,7c-4,-3.3,-8.3,-7.7,-13,-13s-13,-13,-13,-13s76,-122,76,-122s77,-121,77,-121
+s209,968,209,968c0,-2,84.7,-361.7,254,-1079c169.3,-717.3,254.7,-1077.7,256,-1081
+l`+e/4.223+" -"+e+`c4,-6.7,10,-10,18,-10 H400000
+v`+(40+e)+`H1014.6
+s-87.3,378.7,-272.6,1166c-185.3,787.3,-279.3,1182.3,-282,1185
+c-2,6,-10,9,-24,9
+c-8,0,-12,-0.7,-12,-2z M`+(1001+e)+" "+r+`
+h400000v`+(40+e)+"h-400000z"},"sqrtSize3"),wbe=o(function(e,r){return"M473,"+(2713+e+r)+`
+c339.3,-1799.3,509.3,-2700,510,-2702 l`+e/5.298+" -"+e+`
+c3.3,-7.3,9.3,-11,18,-11 H400000v`+(40+e)+`H1017.7
+s-90.5,478,-276.2,1466c-185.7,988,-279.5,1483,-281.5,1485c-2,6,-10,9,-24,9
+c-8,0,-12,-0.7,-12,-2c0,-1.3,-5.3,-32,-16,-92c-50.7,-293.3,-119.7,-693.3,-207,-1200
+c0,-1.3,-5.3,8.7,-16,30c-10.7,21.3,-21.3,42.7,-32,64s-16,33,-16,33s-26,-26,-26,-26
+s76,-153,76,-153s77,-151,77,-151c0.7,0.7,35.7,202,105,604c67.3,400.7,102,602.7,104,
+606zM`+(1001+e)+" "+r+"h400000v"+(40+e)+"H1017.7z"},"sqrtSize4"),Tbe=o(function(e){var r=e/2;return"M400000 "+e+" H0 L"+r+" 0 l65 45 L145 "+(e-80)+" H400000z"},"phasePath"),kbe=o(function(e,r,n){var i=n-54-r-e;return"M702 "+(e+r)+"H400000"+(40+e)+`
+H742v`+i+`l-4 4-4 4c-.667.7 -2 1.5-4 2.5s-4.167 1.833-6.5 2.5-5.5 1-9.5 1
+h-12l-28-84c-16.667-52-96.667 -294.333-240-727l-212 -643 -85 170
+c-4-3.333-8.333-7.667-13 -13l-13-13l77-155 77-156c66 199.333 139 419.667
+219 661 l218 661zM702 `+r+"H400000v"+(40+e)+"H742z"},"sqrtTall"),Ebe=o(function(e,r,n){r=1e3*r;var i="";switch(e){case"sqrtMain":i=ybe(r,h0);break;case"sqrtSize1":i=vbe(r,h0);break;case"sqrtSize2":i=xbe(r,h0);break;case"sqrtSize3":i=bbe(r,h0);break;case"sqrtSize4":i=wbe(r,h0);break;case"sqrtTall":i=kbe(r,h0,n)}return i},"sqrtPath"),Sbe=o(function(e,r){switch(e){case"\u239C":return"M291 0 H417 V"+r+" H291z M291 0 H417 V"+r+" H291z";case"\u2223":return"M145 0 H188 V"+r+" H145z M145 0 H188 V"+r+" H145z";case"\u2225":return"M145 0 H188 V"+r+" H145z M145 0 H188 V"+r+" H145z"+("M367 0 H410 V"+r+" H367z M367 0 H410 V"+r+" H367z");case"\u239F":return"M457 0 H583 V"+r+" H457z M457 0 H583 V"+r+" H457z";case"\u23A2":return"M319 0 H403 V"+r+" H319z M319 0 H403 V"+r+" H319z";case"\u23A5":return"M263 0 H347 V"+r+" H263z M263 0 H347 V"+r+" H263z";case"\u23AA":return"M384 0 H504 V"+r+" H384z M384 0 H504 V"+r+" H384z";case"\u23D0":return"M312 0 H355 V"+r+" H312z M312 0 H355 V"+r+" H312z";case"\u2016":return"M257 0 H300 V"+r+" H257z M257 0 H300 V"+r+" H257z"+("M478 0 H521 V"+r+" H478z M478 0 H521 V"+r+" H478z");default:return""}},"innerPath"),oz={doubleleftarrow:`M262 157
+l10-10c34-36 62.7-77 86-123 3.3-8 5-13.3 5-16 0-5.3-6.7-8-20-8-7.3
+ 0-12.2.5-14.5 1.5-2.3 1-4.8 4.5-7.5 10.5-49.3 97.3-121.7 169.3-217 216-28
+ 14-57.3 25-88 33-6.7 2-11 3.8-13 5.5-2 1.7-3 4.2-3 7.5s1 5.8 3 7.5
+c2 1.7 6.3 3.5 13 5.5 68 17.3 128.2 47.8 180.5 91.5 52.3 43.7 93.8 96.2 124.5
+ 157.5 9.3 8 15.3 12.3 18 13h6c12-.7 18-4 18-10 0-2-1.7-7-5-15-23.3-46-52-87
+-86-123l-10-10h399738v-40H218c328 0 0 0 0 0l-10-8c-26.7-20-65.7-43-117-69 2.7
+-2 6-3.7 10-5 36.7-16 72.3-37.3 107-64l10-8h399782v-40z
+m8 0v40h399730v-40zm0 194v40h399730v-40z`,doublerightarrow:`M399738 392l
+-10 10c-34 36-62.7 77-86 123-3.3 8-5 13.3-5 16 0 5.3 6.7 8 20 8 7.3 0 12.2-.5
+ 14.5-1.5 2.3-1 4.8-4.5 7.5-10.5 49.3-97.3 121.7-169.3 217-216 28-14 57.3-25 88
+-33 6.7-2 11-3.8 13-5.5 2-1.7 3-4.2 3-7.5s-1-5.8-3-7.5c-2-1.7-6.3-3.5-13-5.5-68
+-17.3-128.2-47.8-180.5-91.5-52.3-43.7-93.8-96.2-124.5-157.5-9.3-8-15.3-12.3-18
+-13h-6c-12 .7-18 4-18 10 0 2 1.7 7 5 15 23.3 46 52 87 86 123l10 10H0v40h399782
+c-328 0 0 0 0 0l10 8c26.7 20 65.7 43 117 69-2.7 2-6 3.7-10 5-36.7 16-72.3 37.3
+-107 64l-10 8H0v40zM0 157v40h399730v-40zm0 194v40h399730v-40z`,leftarrow:`M400000 241H110l3-3c68.7-52.7 113.7-120
+ 135-202 4-14.7 6-23 6-25 0-7.3-7-11-21-11-8 0-13.2.8-15.5 2.5-2.3 1.7-4.2 5.8
+-5.5 12.5-1.3 4.7-2.7 10.3-4 17-12 48.7-34.8 92-68.5 130S65.3 228.3 18 247
+c-10 4-16 7.7-18 11 0 8.7 6 14.3 18 17 47.3 18.7 87.8 47 121.5 85S196 441.3 208
+ 490c.7 2 1.3 5 2 9s1.2 6.7 1.5 8c.3 1.3 1 3.3 2 6s2.2 4.5 3.5 5.5c1.3 1 3.3
+ 1.8 6 2.5s6 1 10 1c14 0 21-3.7 21-11 0-2-2-10.3-6-25-20-79.3-65-146.7-135-202
+ l-3-3h399890zM100 241v40h399900v-40z`,leftbrace:`M6 548l-6-6v-35l6-11c56-104 135.3-181.3 238-232 57.3-28.7 117
+-45 179-50h399577v120H403c-43.3 7-81 15-113 26-100.7 33-179.7 91-237 174-2.7
+ 5-6 9-10 13-.7 1-7.3 1-20 1H6z`,leftbraceunder:`M0 6l6-6h17c12.688 0 19.313.3 20 1 4 4 7.313 8.3 10 13
+ 35.313 51.3 80.813 93.8 136.5 127.5 55.688 33.7 117.188 55.8 184.5 66.5.688
+ 0 2 .3 4 1 18.688 2.7 76 4.3 172 5h399450v120H429l-6-1c-124.688-8-235-61.7
+-331-161C60.687 138.7 32.312 99.3 7 54L0 41V6z`,leftgroup:`M400000 80
+H435C64 80 168.3 229.4 21 260c-5.9 1.2-18 0-18 0-2 0-3-1-3-3v-38C76 61 257 0
+ 435 0h399565z`,leftgroupunder:`M400000 262
+H435C64 262 168.3 112.6 21 82c-5.9-1.2-18 0-18 0-2 0-3 1-3 3v38c76 158 257 219
+ 435 219h399565z`,leftharpoon:`M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3
+-3.3 10.2-9.5 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5
+-18.3 3-21-1.3-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7
+-196 228-6.7 4.7-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40z`,leftharpoonplus:`M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3-3.3 10.2-9.5
+ 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5-18.3 3-21-1.3
+-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7-196 228-6.7 4.7
+-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40zM0 435v40h400000v-40z
+m0 0v40h400000v-40z`,leftharpoondown:`M7 241c-4 4-6.333 8.667-7 14 0 5.333.667 9 2 11s5.333
+ 5.333 12 10c90.667 54 156 130 196 228 3.333 10.667 6.333 16.333 9 17 2 .667 5
+ 1 9 1h5c10.667 0 16.667-2 18-6 2-2.667 1-9.667-3-21-32-87.333-82.667-157.667
+-152-211l-3-3h399907v-40zM93 281 H400000 v-40L7 241z`,leftharpoondownplus:`M7 435c-4 4-6.3 8.7-7 14 0 5.3.7 9 2 11s5.3 5.3 12
+ 10c90.7 54 156 130 196 228 3.3 10.7 6.3 16.3 9 17 2 .7 5 1 9 1h5c10.7 0 16.7
+-2 18-6 2-2.7 1-9.7-3-21-32-87.3-82.7-157.7-152-211l-3-3h399907v-40H7zm93 0
+v40h399900v-40zM0 241v40h399900v-40zm0 0v40h399900v-40z`,lefthook:`M400000 281 H103s-33-11.2-61-33.5S0 197.3 0 164s14.2-61.2 42.5
+-83.5C70.8 58.2 104 47 142 47 c16.7 0 25 6.7 25 20 0 12-8.7 18.7-26 20-40 3.3
+-68.7 15.7-86 37-10 12-15 25.3-15 40 0 22.7 9.8 40.7 29.5 54 19.7 13.3 43.5 21
+ 71.5 23h399859zM103 281v-40h399897v40z`,leftlinesegment:`M40 281 V428 H0 V94 H40 V241 H400000 v40z
+M40 281 V428 H0 V94 H40 V241 H400000 v40z`,leftmapsto:`M40 281 V448H0V74H40V241H400000v40z
+M40 281 V448H0V74H40V241H400000v40z`,leftToFrom:`M0 147h400000v40H0zm0 214c68 40 115.7 95.7 143 167h22c15.3 0 23
+-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69-70-101l-7-8h399905v-40H95l7-8
+c28.7-32 52-65.7 70-101 10.7-23.3 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 265.3
+ 68 321 0 361zm0-174v-40h399900v40zm100 154v40h399900v-40z`,longequal:`M0 50 h400000 v40H0z m0 194h40000v40H0z
+M0 50 h400000 v40H0z m0 194h40000v40H0z`,midbrace:`M200428 334
+c-100.7-8.3-195.3-44-280-108-55.3-42-101.7-93-139-153l-9-14c-2.7 4-5.7 8.7-9 14
+-53.3 86.7-123.7 153-211 199-66.7 36-137.3 56.3-212 62H0V214h199568c178.3-11.7
+ 311.7-78.3 403-201 6-8 9.7-12 11-12 .7-.7 6.7-1 18-1s17.3.3 18 1c1.3 0 5 4 11
+ 12 44.7 59.3 101.3 106.3 170 141s145.3 54.3 229 60h199572v120z`,midbraceunder:`M199572 214
+c100.7 8.3 195.3 44 280 108 55.3 42 101.7 93 139 153l9 14c2.7-4 5.7-8.7 9-14
+ 53.3-86.7 123.7-153 211-199 66.7-36 137.3-56.3 212-62h199568v120H200432c-178.3
+ 11.7-311.7 78.3-403 201-6 8-9.7 12-11 12-.7.7-6.7 1-18 1s-17.3-.3-18-1c-1.3 0
+-5-4-11-12-44.7-59.3-101.3-106.3-170-141s-145.3-54.3-229-60H0V214z`,oiintSize1:`M512.6 71.6c272.6 0 320.3 106.8 320.3 178.2 0 70.8-47.7 177.6
+-320.3 177.6S193.1 320.6 193.1 249.8c0-71.4 46.9-178.2 319.5-178.2z
+m368.1 178.2c0-86.4-60.9-215.4-368.1-215.4-306.4 0-367.3 129-367.3 215.4 0 85.8
+60.9 214.8 367.3 214.8 307.2 0 368.1-129 368.1-214.8z`,oiintSize2:`M757.8 100.1c384.7 0 451.1 137.6 451.1 230 0 91.3-66.4 228.8
+-451.1 228.8-386.3 0-452.7-137.5-452.7-228.8 0-92.4 66.4-230 452.7-230z
+m502.4 230c0-111.2-82.4-277.2-502.4-277.2s-504 166-504 277.2
+c0 110 84 276 504 276s502.4-166 502.4-276z`,oiiintSize1:`M681.4 71.6c408.9 0 480.5 106.8 480.5 178.2 0 70.8-71.6 177.6
+-480.5 177.6S202.1 320.6 202.1 249.8c0-71.4 70.5-178.2 479.3-178.2z
+m525.8 178.2c0-86.4-86.8-215.4-525.7-215.4-437.9 0-524.7 129-524.7 215.4 0
+85.8 86.8 214.8 524.7 214.8 438.9 0 525.7-129 525.7-214.8z`,oiiintSize2:`M1021.2 53c603.6 0 707.8 165.8 707.8 277.2 0 110-104.2 275.8
+-707.8 275.8-606 0-710.2-165.8-710.2-275.8C311 218.8 415.2 53 1021.2 53z
+m770.4 277.1c0-131.2-126.4-327.6-770.5-327.6S248.4 198.9 248.4 330.1
+c0 130 128.8 326.4 772.7 326.4s770.5-196.4 770.5-326.4z`,rightarrow:`M0 241v40h399891c-47.3 35.3-84 78-110 128
+-16.7 32-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20
+ 11 8 0 13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7
+ 39-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85
+-40.5-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5
+-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67
+ 151.7 139 205zm0 0v40h399900v-40z`,rightbrace:`M400000 542l
+-6 6h-17c-12.7 0-19.3-.3-20-1-4-4-7.3-8.3-10-13-35.3-51.3-80.8-93.8-136.5-127.5
+s-117.2-55.8-184.5-66.5c-.7 0-2-.3-4-1-18.7-2.7-76-4.3-172-5H0V214h399571l6 1
+c124.7 8 235 61.7 331 161 31.3 33.3 59.7 72.7 85 118l7 13v35z`,rightbraceunder:`M399994 0l6 6v35l-6 11c-56 104-135.3 181.3-238 232-57.3
+ 28.7-117 45-179 50H-300V214h399897c43.3-7 81-15 113-26 100.7-33 179.7-91 237
+-174 2.7-5 6-9 10-13 .7-1 7.3-1 20-1h17z`,rightgroup:`M0 80h399565c371 0 266.7 149.4 414 180 5.9 1.2 18 0 18 0 2 0
+ 3-1 3-3v-38c-76-158-257-219-435-219H0z`,rightgroupunder:`M0 262h399565c371 0 266.7-149.4 414-180 5.9-1.2 18 0 18
+ 0 2 0 3 1 3 3v38c-76 158-257 219-435 219H0z`,rightharpoon:`M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3
+-3.7-15.3-11-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2
+-10.7 0-16.7 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58
+ 69.2 92 94.5zm0 0v40h399900v-40z`,rightharpoonplus:`M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3-3.7-15.3-11
+-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2-10.7 0-16.7
+ 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58 69.2 92 94.5z
+m0 0v40h399900v-40z m100 194v40h399900v-40zm0 0v40h399900v-40z`,rightharpoondown:`M399747 511c0 7.3 6.7 11 20 11 8 0 13-.8 15-2.5s4.7-6.8
+ 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3 8.5-5.8 9.5
+-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3-64.7 57-92 95
+-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 241v40h399900v-40z`,rightharpoondownplus:`M399747 705c0 7.3 6.7 11 20 11 8 0 13-.8
+ 15-2.5s4.7-6.8 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3
+ 8.5-5.8 9.5-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3
+-64.7 57-92 95-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 435v40h399900v-40z
+m0-194v40h400000v-40zm0 0v40h400000v-40z`,righthook:`M399859 241c-764 0 0 0 0 0 40-3.3 68.7-15.7 86-37 10-12 15-25.3
+ 15-40 0-22.7-9.8-40.7-29.5-54-19.7-13.3-43.5-21-71.5-23-17.3-1.3-26-8-26-20 0
+-13.3 8.7-20 26-20 38 0 71 11.2 99 33.5 0 0 7 5.6 21 16.7 14 11.2 21 33.5 21
+ 66.8s-14 61.2-42 83.5c-28 22.3-61 33.5-99 33.5L0 241z M0 281v-40h399859v40z`,rightlinesegment:`M399960 241 V94 h40 V428 h-40 V281 H0 v-40z
+M399960 241 V94 h40 V428 h-40 V281 H0 v-40z`,rightToFrom:`M400000 167c-70.7-42-118-97.7-142-167h-23c-15.3 0-23 .3-23
+ 1 0 1.3 5.3 13.7 16 37 18 35.3 41.3 69 70 101l7 8H0v40h399905l-7 8c-28.7 32
+-52 65.7-70 101-10.7 23.3-16 35.7-16 37 0 .7 7.7 1 23 1h23c24-69.3 71.3-125 142
+-167z M100 147v40h399900v-40zM0 341v40h399900v-40z`,twoheadleftarrow:`M0 167c68 40
+ 115.7 95.7 143 167h22c15.3 0 23-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69
+-70-101l-7-8h125l9 7c50.7 39.3 85 86 103 140h46c0-4.7-6.3-18.7-19-42-18-35.3
+-40-67.3-66-96l-9-9h399716v-40H284l9-9c26-28.7 48-60.7 66-96 12.7-23.333 19
+-37.333 19-42h-46c-18 54-52.3 100.7-103 140l-9 7H95l7-8c28.7-32 52-65.7 70-101
+ 10.7-23.333 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 71.3 68 127 0 167z`,twoheadrightarrow:`M400000 167
+c-68-40-115.7-95.7-143-167h-22c-15.3 0-23 .3-23 1 0 1.3 5.3 13.7 16 37 18 35.3
+ 41.3 69 70 101l7 8h-125l-9-7c-50.7-39.3-85-86-103-140h-46c0 4.7 6.3 18.7 19 42
+ 18 35.3 40 67.3 66 96l9 9H0v40h399716l-9 9c-26 28.7-48 60.7-66 96-12.7 23.333
+-19 37.333-19 42h46c18-54 52.3-100.7 103-140l9-7h125l-7 8c-28.7 32-52 65.7-70
+ 101-10.7 23.333-16 35.7-16 37 0 .7 7.7 1 23 1h22c27.3-71.3 75-127 143-167z`,tilde1:`M200 55.538c-77 0-168 73.953-177 73.953-3 0-7
+-2.175-9-5.437L2 97c-1-2-2-4-2-6 0-4 2-7 5-9l20-12C116 12 171 0 207 0c86 0
+ 114 68 191 68 78 0 168-68 177-68 4 0 7 2 9 5l12 19c1 2.175 2 4.35 2 6.525 0
+ 4.35-2 7.613-5 9.788l-19 13.05c-92 63.077-116.937 75.308-183 76.128
+-68.267.847-113-73.952-191-73.952z`,tilde2:`M344 55.266c-142 0-300.638 81.316-311.5 86.418
+-8.01 3.762-22.5 10.91-23.5 5.562L1 120c-1-2-1-3-1-4 0-5 3-9 8-10l18.4-9C160.9
+ 31.9 283 0 358 0c148 0 188 122 331 122s314-97 326-97c4 0 8 2 10 7l7 21.114
+c1 2.14 1 3.21 1 4.28 0 5.347-3 9.626-7 10.696l-22.3 12.622C852.6 158.372 751
+ 181.476 676 181.476c-149 0-189-126.21-332-126.21z`,tilde3:`M786 59C457 59 32 175.242 13 175.242c-6 0-10-3.457
+-11-10.37L.15 138c-1-7 3-12 10-13l19.2-6.4C378.4 40.7 634.3 0 804.3 0c337 0
+ 411.8 157 746.8 157 328 0 754-112 773-112 5 0 10 3 11 9l1 14.075c1 8.066-.697
+ 16.595-6.697 17.492l-21.052 7.31c-367.9 98.146-609.15 122.696-778.15 122.696
+ -338 0-409-156.573-744-156.573z`,tilde4:`M786 58C457 58 32 177.487 13 177.487c-6 0-10-3.345
+-11-10.035L.15 143c-1-7 3-12 10-13l22-6.7C381.2 35 637.15 0 807.15 0c337 0 409
+ 177 744 177 328 0 754-127 773-127 5 0 10 3 11 9l1 14.794c1 7.805-3 13.38-9
+ 14.495l-20.7 5.574c-366.85 99.79-607.3 139.372-776.3 139.372-338 0-409
+ -175.236-744-175.236z`,vec:`M377 20c0-5.333 1.833-10 5.5-14S391 0 397 0c4.667 0 8.667 1.667 12 5
+3.333 2.667 6.667 9 10 19 6.667 24.667 20.333 43.667 41 57 7.333 4.667 11
+10.667 11 18 0 6-1 10-3 12s-6.667 5-14 9c-28.667 14.667-53.667 35.667-75 63
+-1.333 1.333-3.167 3.5-5.5 6.5s-4 4.833-5 5.5c-1 .667-2.5 1.333-4.5 2s-4.333 1
+-7 1c-4.667 0-9.167-1.833-13.5-5.5S337 184 337 178c0-12.667 15.667-32.333 47-59
+H213l-171-1c-8.667-6-13-12.333-13-19 0-4.667 4.333-11.333 13-20h359
+c-16-25.333-24-45-24-59z`,widehat1:`M529 0h5l519 115c5 1 9 5 9 10 0 1-1 2-1 3l-4 22
+c-1 5-5 9-11 9h-2L532 67 19 159h-2c-5 0-9-4-11-9l-5-22c-1-6 2-12 8-13z`,widehat2:`M1181 0h2l1171 176c6 0 10 5 10 11l-2 23c-1 6-5 10
+-11 10h-1L1182 67 15 220h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z`,widehat3:`M1181 0h2l1171 236c6 0 10 5 10 11l-2 23c-1 6-5 10
+-11 10h-1L1182 67 15 280h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z`,widehat4:`M1181 0h2l1171 296c6 0 10 5 10 11l-2 23c-1 6-5 10
+-11 10h-1L1182 67 15 340h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z`,widecheck1:`M529,159h5l519,-115c5,-1,9,-5,9,-10c0,-1,-1,-2,-1,-3l-4,-22c-1,
+-5,-5,-9,-11,-9h-2l-512,92l-513,-92h-2c-5,0,-9,4,-11,9l-5,22c-1,6,2,12,8,13z`,widecheck2:`M1181,220h2l1171,-176c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,
+-11,-10h-1l-1168,153l-1167,-153h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z`,widecheck3:`M1181,280h2l1171,-236c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,
+-11,-10h-1l-1168,213l-1167,-213h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z`,widecheck4:`M1181,340h2l1171,-296c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,
+-11,-10h-1l-1168,273l-1167,-273h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z`,baraboveleftarrow:`M400000 620h-399890l3 -3c68.7 -52.7 113.7 -120 135 -202
+c4 -14.7 6 -23 6 -25c0 -7.3 -7 -11 -21 -11c-8 0 -13.2 0.8 -15.5 2.5
+c-2.3 1.7 -4.2 5.8 -5.5 12.5c-1.3 4.7 -2.7 10.3 -4 17c-12 48.7 -34.8 92 -68.5 130
+s-74.2 66.3 -121.5 85c-10 4 -16 7.7 -18 11c0 8.7 6 14.3 18 17c47.3 18.7 87.8 47
+121.5 85s56.5 81.3 68.5 130c0.7 2 1.3 5 2 9s1.2 6.7 1.5 8c0.3 1.3 1 3.3 2 6
+s2.2 4.5 3.5 5.5c1.3 1 3.3 1.8 6 2.5s6 1 10 1c14 0 21 -3.7 21 -11
+c0 -2 -2 -10.3 -6 -25c-20 -79.3 -65 -146.7 -135 -202l-3 -3h399890z
+M100 620v40h399900v-40z M0 241v40h399900v-40zM0 241v40h399900v-40z`,rightarrowabovebar:`M0 241v40h399891c-47.3 35.3-84 78-110 128-16.7 32
+-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20 11 8 0
+13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7 39
+-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85-40.5
+-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5
+-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67
+151.7 139 205zm96 379h399894v40H0zm0 0h399904v40H0z`,baraboveshortleftharpoon:`M507,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11
+c1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17
+c2,0.7,5,1,9,1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21
+c-32,-87.3,-82.7,-157.7,-152,-211c0,0,-3,-3,-3,-3l399351,0l0,-40
+c-398570,0,-399437,0,-399437,0z M593 435 v40 H399500 v-40z
+M0 281 v-40 H399908 v40z M0 281 v-40 H399908 v40z`,rightharpoonaboveshortbar:`M0,241 l0,40c399126,0,399993,0,399993,0
+c4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199,
+-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6
+c-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z
+M0 241 v40 H399908 v-40z M0 475 v-40 H399500 v40z M0 475 v-40 H399500 v40z`,shortbaraboveleftharpoon:`M7,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11
+c1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17c2,0.7,5,1,9,
+1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21c-32,-87.3,-82.7,-157.7,
+-152,-211c0,0,-3,-3,-3,-3l399907,0l0,-40c-399126,0,-399993,0,-399993,0z
+M93 435 v40 H400000 v-40z M500 241 v40 H400000 v-40z M500 241 v40 H400000 v-40z`,shortrightharpoonabovebar:`M53,241l0,40c398570,0,399437,0,399437,0
+c4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199,
+-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6
+c-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z
+M500 241 v40 H399408 v-40z M500 435 v40 H400000 v-40z`},Cbe=o(function(e,r){switch(e){case"lbrack":return"M403 1759 V84 H666 V0 H319 V1759 v"+r+` v1759 h347 v-84
+H403z M403 1759 V0 H319 V1759 v`+r+" v1759 h84z";case"rbrack":return"M347 1759 V0 H0 V84 H263 V1759 v"+r+` v1759 H0 v84 H347z
+M347 1759 V0 H263 V1759 v`+r+" v1759 h84z";case"vert":return"M145 15 v585 v"+r+` v585 c2.667,10,9.667,15,21,15
+c10,0,16.667,-5,20,-15 v-585 v`+-r+` v-585 c-2.667,-10,-9.667,-15,-21,-15
+c-10,0,-16.667,5,-20,15z M188 15 H145 v585 v`+r+" v585 h43z";case"doublevert":return"M145 15 v585 v"+r+` v585 c2.667,10,9.667,15,21,15
+c10,0,16.667,-5,20,-15 v-585 v`+-r+` v-585 c-2.667,-10,-9.667,-15,-21,-15
+c-10,0,-16.667,5,-20,15z M188 15 H145 v585 v`+r+` v585 h43z
+M367 15 v585 v`+r+` v585 c2.667,10,9.667,15,21,15
+c10,0,16.667,-5,20,-15 v-585 v`+-r+` v-585 c-2.667,-10,-9.667,-15,-21,-15
+c-10,0,-16.667,5,-20,15z M410 15 H367 v585 v`+r+" v585 h43z";case"lfloor":return"M319 602 V0 H403 V602 v"+r+` v1715 h263 v84 H319z
+MM319 602 V0 H403 V602 v`+r+" v1715 H319z";case"rfloor":return"M319 602 V0 H403 V602 v"+r+` v1799 H0 v-84 H319z
+MM319 602 V0 H403 V602 v`+r+" v1715 H319z";case"lceil":return"M403 1759 V84 H666 V0 H319 V1759 v"+r+` v602 h84z
+M403 1759 V0 H319 V1759 v`+r+" v602 h84z";case"rceil":return"M347 1759 V0 H0 V84 H263 V1759 v"+r+` v602 h84z
+M347 1759 V0 h-84 V1759 v`+r+" v602 h84z";case"lparen":return`M863,9c0,-2,-2,-5,-6,-9c0,0,-17,0,-17,0c-12.7,0,-19.3,0.3,-20,1
+c-5.3,5.3,-10.3,11,-15,17c-242.7,294.7,-395.3,682,-458,1162c-21.3,163.3,-33.3,349,
+-36,557 l0,`+(r+84)+`c0.2,6,0,26,0,60c2,159.3,10,310.7,24,454c53.3,528,210,
+949.7,470,1265c4.7,6,9.7,11.7,15,17c0.7,0.7,7,1,19,1c0,0,18,0,18,0c4,-4,6,-7,6,-9
+c0,-2.7,-3.3,-8.7,-10,-18c-135.3,-192.7,-235.5,-414.3,-300.5,-665c-65,-250.7,-102.5,
+-544.7,-112.5,-882c-2,-104,-3,-167,-3,-189
+l0,-`+(r+92)+`c0,-162.7,5.7,-314,17,-454c20.7,-272,63.7,-513,129,-723c65.3,
+-210,155.3,-396.3,270,-559c6.7,-9.3,10,-15.3,10,-18z`;case"rparen":return`M76,0c-16.7,0,-25,3,-25,9c0,2,2,6.3,6,13c21.3,28.7,42.3,60.3,
+63,95c96.7,156.7,172.8,332.5,228.5,527.5c55.7,195,92.8,416.5,111.5,664.5
+c11.3,139.3,17,290.7,17,454c0,28,1.7,43,3.3,45l0,`+(r+9)+`
+c-3,4,-3.3,16.7,-3.3,38c0,162,-5.7,313.7,-17,455c-18.7,248,-55.8,469.3,-111.5,664
+c-55.7,194.7,-131.8,370.3,-228.5,527c-20.7,34.7,-41.7,66.3,-63,95c-2,3.3,-4,7,-6,11
+c0,7.3,5.7,11,17,11c0,0,11,0,11,0c9.3,0,14.3,-0.3,15,-1c5.3,-5.3,10.3,-11,15,-17
+c242.7,-294.7,395.3,-681.7,458,-1161c21.3,-164.7,33.3,-350.7,36,-558
+l0,-`+(r+144)+`c-2,-159.3,-10,-310.7,-24,-454c-53.3,-528,-210,-949.7,
+-470,-1265c-4.7,-6,-9.7,-11.7,-15,-17c-0.7,-0.7,-6.7,-1,-18,-1z`;default:throw new Error("Unknown stretchy delimiter.")}},"tallDelim"),ed=class{static{o(this,"DocumentFragment")}constructor(e){this.children=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.children=e,this.classes=[],this.height=0,this.depth=0,this.maxFontSize=0,this.style={}}hasClass(e){return Jt.contains(this.classes,e)}toNode(){for(var e=document.createDocumentFragment(),r=0;r<this.children.length;r++)e.appendChild(this.children[r].toNode());return e}toMarkup(){for(var e="",r=0;r<this.children.length;r++)e+=this.children[r].toMarkup();return e}toText(){var e=o(r=>r.toText(),"toText");return this.children.map(e).join("")}},jl={"AMS-Regular":{32:[0,0,0,0,.25],65:[0,.68889,0,0,.72222],66:[0,.68889,0,0,.66667],67:[0,.68889,0,0,.72222],68:[0,.68889,0,0,.72222],69:[0,.68889,0,0,.66667],70:[0,.68889,0,0,.61111],71:[0,.68889,0,0,.77778],72:[0,.68889,0,0,.77778],73:[0,.68889,0,0,.38889],74:[.16667,.68889,0,0,.5],75:[0,.68889,0,0,.77778],76:[0,.68889,0,0,.66667],77:[0,.68889,0,0,.94445],78:[0,.68889,0,0,.72222],79:[.16667,.68889,0,0,.77778],80:[0,.68889,0,0,.61111],81:[.16667,.68889,0,0,.77778],82:[0,.68889,0,0,.72222],83:[0,.68889,0,0,.55556],84:[0,.68889,0,0,.66667],85:[0,.68889,0,0,.72222],86:[0,.68889,0,0,.72222],87:[0,.68889,0,0,1],88:[0,.68889,0,0,.72222],89:[0,.68889,0,0,.72222],90:[0,.68889,0,0,.66667],107:[0,.68889,0,0,.55556],160:[0,0,0,0,.25],165:[0,.675,.025,0,.75],174:[.15559,.69224,0,0,.94666],240:[0,.68889,0,0,.55556],295:[0,.68889,0,0,.54028],710:[0,.825,0,0,2.33334],732:[0,.9,0,0,2.33334],770:[0,.825,0,0,2.33334],771:[0,.9,0,0,2.33334],989:[.08167,.58167,0,0,.77778],1008:[0,.43056,.04028,0,.66667],8245:[0,.54986,0,0,.275],8463:[0,.68889,0,0,.54028],8487:[0,.68889,0,0,.72222],8498:[0,.68889,0,0,.55556],8502:[0,.68889,0,0,.66667],8503:[0,.68889,0,0,.44445],8504:[0,.68889,0,0,.66667],8513:[0,.68889,0,0,.63889],8592:[-.03598,.46402,0,0,.5],8594:[-.03598,.46402,0,0,.5],8602:[-.13313,.36687,0,0,1],8603:[-.13313,.36687,0,0,1],8606:[.01354,.52239,0,0,1],8608:[.01354,.52239,0,0,1],8610:[.01354,.52239,0,0,1.11111],8611:[.01354,.52239,0,0,1.11111],8619:[0,.54986,0,0,1],8620:[0,.54986,0,0,1],8621:[-.13313,.37788,0,0,1.38889],8622:[-.13313,.36687,0,0,1],8624:[0,.69224,0,0,.5],8625:[0,.69224,0,0,.5],8630:[0,.43056,0,0,1],8631:[0,.43056,0,0,1],8634:[.08198,.58198,0,0,.77778],8635:[.08198,.58198,0,0,.77778],8638:[.19444,.69224,0,0,.41667],8639:[.19444,.69224,0,0,.41667],8642:[.19444,.69224,0,0,.41667],8643:[.19444,.69224,0,0,.41667],8644:[.1808,.675,0,0,1],8646:[.1808,.675,0,0,1],8647:[.1808,.675,0,0,1],8648:[.19444,.69224,0,0,.83334],8649:[.1808,.675,0,0,1],8650:[.19444,.69224,0,0,.83334],8651:[.01354,.52239,0,0,1],8652:[.01354,.52239,0,0,1],8653:[-.13313,.36687,0,0,1],8654:[-.13313,.36687,0,0,1],8655:[-.13313,.36687,0,0,1],8666:[.13667,.63667,0,0,1],8667:[.13667,.63667,0,0,1],8669:[-.13313,.37788,0,0,1],8672:[-.064,.437,0,0,1.334],8674:[-.064,.437,0,0,1.334],8705:[0,.825,0,0,.5],8708:[0,.68889,0,0,.55556],8709:[.08167,.58167,0,0,.77778],8717:[0,.43056,0,0,.42917],8722:[-.03598,.46402,0,0,.5],8724:[.08198,.69224,0,0,.77778],8726:[.08167,.58167,0,0,.77778],8733:[0,.69224,0,0,.77778],8736:[0,.69224,0,0,.72222],8737:[0,.69224,0,0,.72222],8738:[.03517,.52239,0,0,.72222],8739:[.08167,.58167,0,0,.22222],8740:[.25142,.74111,0,0,.27778],8741:[.08167,.58167,0,0,.38889],8742:[.25142,.74111,0,0,.5],8756:[0,.69224,0,0,.66667],8757:[0,.69224,0,0,.66667],8764:[-.13313,.36687,0,0,.77778],8765:[-.13313,.37788,0,0,.77778],8769:[-.13313,.36687,0,0,.77778],8770:[-.03625,.46375,0,0,.77778],8774:[.30274,.79383,0,0,.77778],8776:[-.01688,.48312,0,0,.77778],8778:[.08167,.58167,0,0,.77778],8782:[.06062,.54986,0,0,.77778],8783:[.06062,.54986,0,0,.77778],8785:[.08198,.58198,0,0,.77778],8786:[.08198,.58198,0,0,.77778],8787:[.08198,.58198,0,0,.77778],8790:[0,.69224,0,0,.77778],8791:[.22958,.72958,0,0,.77778],8796:[.08198,.91667,0,0,.77778],8806:[.25583,.75583,0,0,.77778],8807:[.25583,.75583,0,0,.77778],8808:[.25142,.75726,0,0,.77778],8809:[.25142,.75726,0,0,.77778],8812:[.25583,.75583,0,0,.5],8814:[.20576,.70576,0,0,.77778],8815:[.20576,.70576,0,0,.77778],8816:[.30274,.79383,0,0,.77778],8817:[.30274,.79383,0,0,.77778],8818:[.22958,.72958,0,0,.77778],8819:[.22958,.72958,0,0,.77778],8822:[.1808,.675,0,0,.77778],8823:[.1808,.675,0,0,.77778],8828:[.13667,.63667,0,0,.77778],8829:[.13667,.63667,0,0,.77778],8830:[.22958,.72958,0,0,.77778],8831:[.22958,.72958,0,0,.77778],8832:[.20576,.70576,0,0,.77778],8833:[.20576,.70576,0,0,.77778],8840:[.30274,.79383,0,0,.77778],8841:[.30274,.79383,0,0,.77778],8842:[.13597,.63597,0,0,.77778],8843:[.13597,.63597,0,0,.77778],8847:[.03517,.54986,0,0,.77778],8848:[.03517,.54986,0,0,.77778],8858:[.08198,.58198,0,0,.77778],8859:[.08198,.58198,0,0,.77778],8861:[.08198,.58198,0,0,.77778],8862:[0,.675,0,0,.77778],8863:[0,.675,0,0,.77778],8864:[0,.675,0,0,.77778],8865:[0,.675,0,0,.77778],8872:[0,.69224,0,0,.61111],8873:[0,.69224,0,0,.72222],8874:[0,.69224,0,0,.88889],8876:[0,.68889,0,0,.61111],8877:[0,.68889,0,0,.61111],8878:[0,.68889,0,0,.72222],8879:[0,.68889,0,0,.72222],8882:[.03517,.54986,0,0,.77778],8883:[.03517,.54986,0,0,.77778],8884:[.13667,.63667,0,0,.77778],8885:[.13667,.63667,0,0,.77778],8888:[0,.54986,0,0,1.11111],8890:[.19444,.43056,0,0,.55556],8891:[.19444,.69224,0,0,.61111],8892:[.19444,.69224,0,0,.61111],8901:[0,.54986,0,0,.27778],8903:[.08167,.58167,0,0,.77778],8905:[.08167,.58167,0,0,.77778],8906:[.08167,.58167,0,0,.77778],8907:[0,.69224,0,0,.77778],8908:[0,.69224,0,0,.77778],8909:[-.03598,.46402,0,0,.77778],8910:[0,.54986,0,0,.76042],8911:[0,.54986,0,0,.76042],8912:[.03517,.54986,0,0,.77778],8913:[.03517,.54986,0,0,.77778],8914:[0,.54986,0,0,.66667],8915:[0,.54986,0,0,.66667],8916:[0,.69224,0,0,.66667],8918:[.0391,.5391,0,0,.77778],8919:[.0391,.5391,0,0,.77778],8920:[.03517,.54986,0,0,1.33334],8921:[.03517,.54986,0,0,1.33334],8922:[.38569,.88569,0,0,.77778],8923:[.38569,.88569,0,0,.77778],8926:[.13667,.63667,0,0,.77778],8927:[.13667,.63667,0,0,.77778],8928:[.30274,.79383,0,0,.77778],8929:[.30274,.79383,0,0,.77778],8934:[.23222,.74111,0,0,.77778],8935:[.23222,.74111,0,0,.77778],8936:[.23222,.74111,0,0,.77778],8937:[.23222,.74111,0,0,.77778],8938:[.20576,.70576,0,0,.77778],8939:[.20576,.70576,0,0,.77778],8940:[.30274,.79383,0,0,.77778],8941:[.30274,.79383,0,0,.77778],8994:[.19444,.69224,0,0,.77778],8995:[.19444,.69224,0,0,.77778],9416:[.15559,.69224,0,0,.90222],9484:[0,.69224,0,0,.5],9488:[0,.69224,0,0,.5],9492:[0,.37788,0,0,.5],9496:[0,.37788,0,0,.5],9585:[.19444,.68889,0,0,.88889],9586:[.19444,.74111,0,0,.88889],9632:[0,.675,0,0,.77778],9633:[0,.675,0,0,.77778],9650:[0,.54986,0,0,.72222],9651:[0,.54986,0,0,.72222],9654:[.03517,.54986,0,0,.77778],9660:[0,.54986,0,0,.72222],9661:[0,.54986,0,0,.72222],9664:[.03517,.54986,0,0,.77778],9674:[.11111,.69224,0,0,.66667],9733:[.19444,.69224,0,0,.94445],10003:[0,.69224,0,0,.83334],10016:[0,.69224,0,0,.83334],10731:[.11111,.69224,0,0,.66667],10846:[.19444,.75583,0,0,.61111],10877:[.13667,.63667,0,0,.77778],10878:[.13667,.63667,0,0,.77778],10885:[.25583,.75583,0,0,.77778],10886:[.25583,.75583,0,0,.77778],10887:[.13597,.63597,0,0,.77778],10888:[.13597,.63597,0,0,.77778],10889:[.26167,.75726,0,0,.77778],10890:[.26167,.75726,0,0,.77778],10891:[.48256,.98256,0,0,.77778],10892:[.48256,.98256,0,0,.77778],10901:[.13667,.63667,0,0,.77778],10902:[.13667,.63667,0,0,.77778],10933:[.25142,.75726,0,0,.77778],10934:[.25142,.75726,0,0,.77778],10935:[.26167,.75726,0,0,.77778],10936:[.26167,.75726,0,0,.77778],10937:[.26167,.75726,0,0,.77778],10938:[.26167,.75726,0,0,.77778],10949:[.25583,.75583,0,0,.77778],10950:[.25583,.75583,0,0,.77778],10955:[.28481,.79383,0,0,.77778],10956:[.28481,.79383,0,0,.77778],57350:[.08167,.58167,0,0,.22222],57351:[.08167,.58167,0,0,.38889],57352:[.08167,.58167,0,0,.77778],57353:[0,.43056,.04028,0,.66667],57356:[.25142,.75726,0,0,.77778],57357:[.25142,.75726,0,0,.77778],57358:[.41951,.91951,0,0,.77778],57359:[.30274,.79383,0,0,.77778],57360:[.30274,.79383,0,0,.77778],57361:[.41951,.91951,0,0,.77778],57366:[.25142,.75726,0,0,.77778],57367:[.25142,.75726,0,0,.77778],57368:[.25142,.75726,0,0,.77778],57369:[.25142,.75726,0,0,.77778],57370:[.13597,.63597,0,0,.77778],57371:[.13597,.63597,0,0,.77778]},"Caligraphic-Regular":{32:[0,0,0,0,.25],65:[0,.68333,0,.19445,.79847],66:[0,.68333,.03041,.13889,.65681],67:[0,.68333,.05834,.13889,.52653],68:[0,.68333,.02778,.08334,.77139],69:[0,.68333,.08944,.11111,.52778],70:[0,.68333,.09931,.11111,.71875],71:[.09722,.68333,.0593,.11111,.59487],72:[0,.68333,.00965,.11111,.84452],73:[0,.68333,.07382,0,.54452],74:[.09722,.68333,.18472,.16667,.67778],75:[0,.68333,.01445,.05556,.76195],76:[0,.68333,0,.13889,.68972],77:[0,.68333,0,.13889,1.2009],78:[0,.68333,.14736,.08334,.82049],79:[0,.68333,.02778,.11111,.79611],80:[0,.68333,.08222,.08334,.69556],81:[.09722,.68333,0,.11111,.81667],82:[0,.68333,0,.08334,.8475],83:[0,.68333,.075,.13889,.60556],84:[0,.68333,.25417,0,.54464],85:[0,.68333,.09931,.08334,.62583],86:[0,.68333,.08222,0,.61278],87:[0,.68333,.08222,.08334,.98778],88:[0,.68333,.14643,.13889,.7133],89:[.09722,.68333,.08222,.08334,.66834],90:[0,.68333,.07944,.13889,.72473],160:[0,0,0,0,.25]},"Fraktur-Regular":{32:[0,0,0,0,.25],33:[0,.69141,0,0,.29574],34:[0,.69141,0,0,.21471],38:[0,.69141,0,0,.73786],39:[0,.69141,0,0,.21201],40:[.24982,.74947,0,0,.38865],41:[.24982,.74947,0,0,.38865],42:[0,.62119,0,0,.27764],43:[.08319,.58283,0,0,.75623],44:[0,.10803,0,0,.27764],45:[.08319,.58283,0,0,.75623],46:[0,.10803,0,0,.27764],47:[.24982,.74947,0,0,.50181],48:[0,.47534,0,0,.50181],49:[0,.47534,0,0,.50181],50:[0,.47534,0,0,.50181],51:[.18906,.47534,0,0,.50181],52:[.18906,.47534,0,0,.50181],53:[.18906,.47534,0,0,.50181],54:[0,.69141,0,0,.50181],55:[.18906,.47534,0,0,.50181],56:[0,.69141,0,0,.50181],57:[.18906,.47534,0,0,.50181],58:[0,.47534,0,0,.21606],59:[.12604,.47534,0,0,.21606],61:[-.13099,.36866,0,0,.75623],63:[0,.69141,0,0,.36245],65:[0,.69141,0,0,.7176],66:[0,.69141,0,0,.88397],67:[0,.69141,0,0,.61254],68:[0,.69141,0,0,.83158],69:[0,.69141,0,0,.66278],70:[.12604,.69141,0,0,.61119],71:[0,.69141,0,0,.78539],72:[.06302,.69141,0,0,.7203],73:[0,.69141,0,0,.55448],74:[.12604,.69141,0,0,.55231],75:[0,.69141,0,0,.66845],76:[0,.69141,0,0,.66602],77:[0,.69141,0,0,1.04953],78:[0,.69141,0,0,.83212],79:[0,.69141,0,0,.82699],80:[.18906,.69141,0,0,.82753],81:[.03781,.69141,0,0,.82699],82:[0,.69141,0,0,.82807],83:[0,.69141,0,0,.82861],84:[0,.69141,0,0,.66899],85:[0,.69141,0,0,.64576],86:[0,.69141,0,0,.83131],87:[0,.69141,0,0,1.04602],88:[0,.69141,0,0,.71922],89:[.18906,.69141,0,0,.83293],90:[.12604,.69141,0,0,.60201],91:[.24982,.74947,0,0,.27764],93:[.24982,.74947,0,0,.27764],94:[0,.69141,0,0,.49965],97:[0,.47534,0,0,.50046],98:[0,.69141,0,0,.51315],99:[0,.47534,0,0,.38946],100:[0,.62119,0,0,.49857],101:[0,.47534,0,0,.40053],102:[.18906,.69141,0,0,.32626],103:[.18906,.47534,0,0,.5037],104:[.18906,.69141,0,0,.52126],105:[0,.69141,0,0,.27899],106:[0,.69141,0,0,.28088],107:[0,.69141,0,0,.38946],108:[0,.69141,0,0,.27953],109:[0,.47534,0,0,.76676],110:[0,.47534,0,0,.52666],111:[0,.47534,0,0,.48885],112:[.18906,.52396,0,0,.50046],113:[.18906,.47534,0,0,.48912],114:[0,.47534,0,0,.38919],115:[0,.47534,0,0,.44266],116:[0,.62119,0,0,.33301],117:[0,.47534,0,0,.5172],118:[0,.52396,0,0,.5118],119:[0,.52396,0,0,.77351],120:[.18906,.47534,0,0,.38865],121:[.18906,.47534,0,0,.49884],122:[.18906,.47534,0,0,.39054],160:[0,0,0,0,.25],8216:[0,.69141,0,0,.21471],8217:[0,.69141,0,0,.21471],58112:[0,.62119,0,0,.49749],58113:[0,.62119,0,0,.4983],58114:[.18906,.69141,0,0,.33328],58115:[.18906,.69141,0,0,.32923],58116:[.18906,.47534,0,0,.50343],58117:[0,.69141,0,0,.33301],58118:[0,.62119,0,0,.33409],58119:[0,.47534,0,0,.50073]},"Main-Bold":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.35],34:[0,.69444,0,0,.60278],35:[.19444,.69444,0,0,.95833],36:[.05556,.75,0,0,.575],37:[.05556,.75,0,0,.95833],38:[0,.69444,0,0,.89444],39:[0,.69444,0,0,.31944],40:[.25,.75,0,0,.44722],41:[.25,.75,0,0,.44722],42:[0,.75,0,0,.575],43:[.13333,.63333,0,0,.89444],44:[.19444,.15556,0,0,.31944],45:[0,.44444,0,0,.38333],46:[0,.15556,0,0,.31944],47:[.25,.75,0,0,.575],48:[0,.64444,0,0,.575],49:[0,.64444,0,0,.575],50:[0,.64444,0,0,.575],51:[0,.64444,0,0,.575],52:[0,.64444,0,0,.575],53:[0,.64444,0,0,.575],54:[0,.64444,0,0,.575],55:[0,.64444,0,0,.575],56:[0,.64444,0,0,.575],57:[0,.64444,0,0,.575],58:[0,.44444,0,0,.31944],59:[.19444,.44444,0,0,.31944],60:[.08556,.58556,0,0,.89444],61:[-.10889,.39111,0,0,.89444],62:[.08556,.58556,0,0,.89444],63:[0,.69444,0,0,.54305],64:[0,.69444,0,0,.89444],65:[0,.68611,0,0,.86944],66:[0,.68611,0,0,.81805],67:[0,.68611,0,0,.83055],68:[0,.68611,0,0,.88194],69:[0,.68611,0,0,.75555],70:[0,.68611,0,0,.72361],71:[0,.68611,0,0,.90416],72:[0,.68611,0,0,.9],73:[0,.68611,0,0,.43611],74:[0,.68611,0,0,.59444],75:[0,.68611,0,0,.90138],76:[0,.68611,0,0,.69166],77:[0,.68611,0,0,1.09166],78:[0,.68611,0,0,.9],79:[0,.68611,0,0,.86388],80:[0,.68611,0,0,.78611],81:[.19444,.68611,0,0,.86388],82:[0,.68611,0,0,.8625],83:[0,.68611,0,0,.63889],84:[0,.68611,0,0,.8],85:[0,.68611,0,0,.88472],86:[0,.68611,.01597,0,.86944],87:[0,.68611,.01597,0,1.18888],88:[0,.68611,0,0,.86944],89:[0,.68611,.02875,0,.86944],90:[0,.68611,0,0,.70277],91:[.25,.75,0,0,.31944],92:[.25,.75,0,0,.575],93:[.25,.75,0,0,.31944],94:[0,.69444,0,0,.575],95:[.31,.13444,.03194,0,.575],97:[0,.44444,0,0,.55902],98:[0,.69444,0,0,.63889],99:[0,.44444,0,0,.51111],100:[0,.69444,0,0,.63889],101:[0,.44444,0,0,.52708],102:[0,.69444,.10903,0,.35139],103:[.19444,.44444,.01597,0,.575],104:[0,.69444,0,0,.63889],105:[0,.69444,0,0,.31944],106:[.19444,.69444,0,0,.35139],107:[0,.69444,0,0,.60694],108:[0,.69444,0,0,.31944],109:[0,.44444,0,0,.95833],110:[0,.44444,0,0,.63889],111:[0,.44444,0,0,.575],112:[.19444,.44444,0,0,.63889],113:[.19444,.44444,0,0,.60694],114:[0,.44444,0,0,.47361],115:[0,.44444,0,0,.45361],116:[0,.63492,0,0,.44722],117:[0,.44444,0,0,.63889],118:[0,.44444,.01597,0,.60694],119:[0,.44444,.01597,0,.83055],120:[0,.44444,0,0,.60694],121:[.19444,.44444,.01597,0,.60694],122:[0,.44444,0,0,.51111],123:[.25,.75,0,0,.575],124:[.25,.75,0,0,.31944],125:[.25,.75,0,0,.575],126:[.35,.34444,0,0,.575],160:[0,0,0,0,.25],163:[0,.69444,0,0,.86853],168:[0,.69444,0,0,.575],172:[0,.44444,0,0,.76666],176:[0,.69444,0,0,.86944],177:[.13333,.63333,0,0,.89444],184:[.17014,0,0,0,.51111],198:[0,.68611,0,0,1.04166],215:[.13333,.63333,0,0,.89444],216:[.04861,.73472,0,0,.89444],223:[0,.69444,0,0,.59722],230:[0,.44444,0,0,.83055],247:[.13333,.63333,0,0,.89444],248:[.09722,.54167,0,0,.575],305:[0,.44444,0,0,.31944],338:[0,.68611,0,0,1.16944],339:[0,.44444,0,0,.89444],567:[.19444,.44444,0,0,.35139],710:[0,.69444,0,0,.575],711:[0,.63194,0,0,.575],713:[0,.59611,0,0,.575],714:[0,.69444,0,0,.575],715:[0,.69444,0,0,.575],728:[0,.69444,0,0,.575],729:[0,.69444,0,0,.31944],730:[0,.69444,0,0,.86944],732:[0,.69444,0,0,.575],733:[0,.69444,0,0,.575],915:[0,.68611,0,0,.69166],916:[0,.68611,0,0,.95833],920:[0,.68611,0,0,.89444],923:[0,.68611,0,0,.80555],926:[0,.68611,0,0,.76666],928:[0,.68611,0,0,.9],931:[0,.68611,0,0,.83055],933:[0,.68611,0,0,.89444],934:[0,.68611,0,0,.83055],936:[0,.68611,0,0,.89444],937:[0,.68611,0,0,.83055],8211:[0,.44444,.03194,0,.575],8212:[0,.44444,.03194,0,1.14999],8216:[0,.69444,0,0,.31944],8217:[0,.69444,0,0,.31944],8220:[0,.69444,0,0,.60278],8221:[0,.69444,0,0,.60278],8224:[.19444,.69444,0,0,.51111],8225:[.19444,.69444,0,0,.51111],8242:[0,.55556,0,0,.34444],8407:[0,.72444,.15486,0,.575],8463:[0,.69444,0,0,.66759],8465:[0,.69444,0,0,.83055],8467:[0,.69444,0,0,.47361],8472:[.19444,.44444,0,0,.74027],8476:[0,.69444,0,0,.83055],8501:[0,.69444,0,0,.70277],8592:[-.10889,.39111,0,0,1.14999],8593:[.19444,.69444,0,0,.575],8594:[-.10889,.39111,0,0,1.14999],8595:[.19444,.69444,0,0,.575],8596:[-.10889,.39111,0,0,1.14999],8597:[.25,.75,0,0,.575],8598:[.19444,.69444,0,0,1.14999],8599:[.19444,.69444,0,0,1.14999],8600:[.19444,.69444,0,0,1.14999],8601:[.19444,.69444,0,0,1.14999],8636:[-.10889,.39111,0,0,1.14999],8637:[-.10889,.39111,0,0,1.14999],8640:[-.10889,.39111,0,0,1.14999],8641:[-.10889,.39111,0,0,1.14999],8656:[-.10889,.39111,0,0,1.14999],8657:[.19444,.69444,0,0,.70277],8658:[-.10889,.39111,0,0,1.14999],8659:[.19444,.69444,0,0,.70277],8660:[-.10889,.39111,0,0,1.14999],8661:[.25,.75,0,0,.70277],8704:[0,.69444,0,0,.63889],8706:[0,.69444,.06389,0,.62847],8707:[0,.69444,0,0,.63889],8709:[.05556,.75,0,0,.575],8711:[0,.68611,0,0,.95833],8712:[.08556,.58556,0,0,.76666],8715:[.08556,.58556,0,0,.76666],8722:[.13333,.63333,0,0,.89444],8723:[.13333,.63333,0,0,.89444],8725:[.25,.75,0,0,.575],8726:[.25,.75,0,0,.575],8727:[-.02778,.47222,0,0,.575],8728:[-.02639,.47361,0,0,.575],8729:[-.02639,.47361,0,0,.575],8730:[.18,.82,0,0,.95833],8733:[0,.44444,0,0,.89444],8734:[0,.44444,0,0,1.14999],8736:[0,.69224,0,0,.72222],8739:[.25,.75,0,0,.31944],8741:[.25,.75,0,0,.575],8743:[0,.55556,0,0,.76666],8744:[0,.55556,0,0,.76666],8745:[0,.55556,0,0,.76666],8746:[0,.55556,0,0,.76666],8747:[.19444,.69444,.12778,0,.56875],8764:[-.10889,.39111,0,0,.89444],8768:[.19444,.69444,0,0,.31944],8771:[.00222,.50222,0,0,.89444],8773:[.027,.638,0,0,.894],8776:[.02444,.52444,0,0,.89444],8781:[.00222,.50222,0,0,.89444],8801:[.00222,.50222,0,0,.89444],8804:[.19667,.69667,0,0,.89444],8805:[.19667,.69667,0,0,.89444],8810:[.08556,.58556,0,0,1.14999],8811:[.08556,.58556,0,0,1.14999],8826:[.08556,.58556,0,0,.89444],8827:[.08556,.58556,0,0,.89444],8834:[.08556,.58556,0,0,.89444],8835:[.08556,.58556,0,0,.89444],8838:[.19667,.69667,0,0,.89444],8839:[.19667,.69667,0,0,.89444],8846:[0,.55556,0,0,.76666],8849:[.19667,.69667,0,0,.89444],8850:[.19667,.69667,0,0,.89444],8851:[0,.55556,0,0,.76666],8852:[0,.55556,0,0,.76666],8853:[.13333,.63333,0,0,.89444],8854:[.13333,.63333,0,0,.89444],8855:[.13333,.63333,0,0,.89444],8856:[.13333,.63333,0,0,.89444],8857:[.13333,.63333,0,0,.89444],8866:[0,.69444,0,0,.70277],8867:[0,.69444,0,0,.70277],8868:[0,.69444,0,0,.89444],8869:[0,.69444,0,0,.89444],8900:[-.02639,.47361,0,0,.575],8901:[-.02639,.47361,0,0,.31944],8902:[-.02778,.47222,0,0,.575],8968:[.25,.75,0,0,.51111],8969:[.25,.75,0,0,.51111],8970:[.25,.75,0,0,.51111],8971:[.25,.75,0,0,.51111],8994:[-.13889,.36111,0,0,1.14999],8995:[-.13889,.36111,0,0,1.14999],9651:[.19444,.69444,0,0,1.02222],9657:[-.02778,.47222,0,0,.575],9661:[.19444,.69444,0,0,1.02222],9667:[-.02778,.47222,0,0,.575],9711:[.19444,.69444,0,0,1.14999],9824:[.12963,.69444,0,0,.89444],9825:[.12963,.69444,0,0,.89444],9826:[.12963,.69444,0,0,.89444],9827:[.12963,.69444,0,0,.89444],9837:[0,.75,0,0,.44722],9838:[.19444,.69444,0,0,.44722],9839:[.19444,.69444,0,0,.44722],10216:[.25,.75,0,0,.44722],10217:[.25,.75,0,0,.44722],10815:[0,.68611,0,0,.9],10927:[.19667,.69667,0,0,.89444],10928:[.19667,.69667,0,0,.89444],57376:[.19444,.69444,0,0,0]},"Main-BoldItalic":{32:[0,0,0,0,.25],33:[0,.69444,.11417,0,.38611],34:[0,.69444,.07939,0,.62055],35:[.19444,.69444,.06833,0,.94444],37:[.05556,.75,.12861,0,.94444],38:[0,.69444,.08528,0,.88555],39:[0,.69444,.12945,0,.35555],40:[.25,.75,.15806,0,.47333],41:[.25,.75,.03306,0,.47333],42:[0,.75,.14333,0,.59111],43:[.10333,.60333,.03306,0,.88555],44:[.19444,.14722,0,0,.35555],45:[0,.44444,.02611,0,.41444],46:[0,.14722,0,0,.35555],47:[.25,.75,.15806,0,.59111],48:[0,.64444,.13167,0,.59111],49:[0,.64444,.13167,0,.59111],50:[0,.64444,.13167,0,.59111],51:[0,.64444,.13167,0,.59111],52:[.19444,.64444,.13167,0,.59111],53:[0,.64444,.13167,0,.59111],54:[0,.64444,.13167,0,.59111],55:[.19444,.64444,.13167,0,.59111],56:[0,.64444,.13167,0,.59111],57:[0,.64444,.13167,0,.59111],58:[0,.44444,.06695,0,.35555],59:[.19444,.44444,.06695,0,.35555],61:[-.10889,.39111,.06833,0,.88555],63:[0,.69444,.11472,0,.59111],64:[0,.69444,.09208,0,.88555],65:[0,.68611,0,0,.86555],66:[0,.68611,.0992,0,.81666],67:[0,.68611,.14208,0,.82666],68:[0,.68611,.09062,0,.87555],69:[0,.68611,.11431,0,.75666],70:[0,.68611,.12903,0,.72722],71:[0,.68611,.07347,0,.89527],72:[0,.68611,.17208,0,.8961],73:[0,.68611,.15681,0,.47166],74:[0,.68611,.145,0,.61055],75:[0,.68611,.14208,0,.89499],76:[0,.68611,0,0,.69777],77:[0,.68611,.17208,0,1.07277],78:[0,.68611,.17208,0,.8961],79:[0,.68611,.09062,0,.85499],80:[0,.68611,.0992,0,.78721],81:[.19444,.68611,.09062,0,.85499],82:[0,.68611,.02559,0,.85944],83:[0,.68611,.11264,0,.64999],84:[0,.68611,.12903,0,.7961],85:[0,.68611,.17208,0,.88083],86:[0,.68611,.18625,0,.86555],87:[0,.68611,.18625,0,1.15999],88:[0,.68611,.15681,0,.86555],89:[0,.68611,.19803,0,.86555],90:[0,.68611,.14208,0,.70888],91:[.25,.75,.1875,0,.35611],93:[.25,.75,.09972,0,.35611],94:[0,.69444,.06709,0,.59111],95:[.31,.13444,.09811,0,.59111],97:[0,.44444,.09426,0,.59111],98:[0,.69444,.07861,0,.53222],99:[0,.44444,.05222,0,.53222],100:[0,.69444,.10861,0,.59111],101:[0,.44444,.085,0,.53222],102:[.19444,.69444,.21778,0,.4],103:[.19444,.44444,.105,0,.53222],104:[0,.69444,.09426,0,.59111],105:[0,.69326,.11387,0,.35555],106:[.19444,.69326,.1672,0,.35555],107:[0,.69444,.11111,0,.53222],108:[0,.69444,.10861,0,.29666],109:[0,.44444,.09426,0,.94444],110:[0,.44444,.09426,0,.64999],111:[0,.44444,.07861,0,.59111],112:[.19444,.44444,.07861,0,.59111],113:[.19444,.44444,.105,0,.53222],114:[0,.44444,.11111,0,.50167],115:[0,.44444,.08167,0,.48694],116:[0,.63492,.09639,0,.385],117:[0,.44444,.09426,0,.62055],118:[0,.44444,.11111,0,.53222],119:[0,.44444,.11111,0,.76777],120:[0,.44444,.12583,0,.56055],121:[.19444,.44444,.105,0,.56166],122:[0,.44444,.13889,0,.49055],126:[.35,.34444,.11472,0,.59111],160:[0,0,0,0,.25],168:[0,.69444,.11473,0,.59111],176:[0,.69444,0,0,.94888],184:[.17014,0,0,0,.53222],198:[0,.68611,.11431,0,1.02277],216:[.04861,.73472,.09062,0,.88555],223:[.19444,.69444,.09736,0,.665],230:[0,.44444,.085,0,.82666],248:[.09722,.54167,.09458,0,.59111],305:[0,.44444,.09426,0,.35555],338:[0,.68611,.11431,0,1.14054],339:[0,.44444,.085,0,.82666],567:[.19444,.44444,.04611,0,.385],710:[0,.69444,.06709,0,.59111],711:[0,.63194,.08271,0,.59111],713:[0,.59444,.10444,0,.59111],714:[0,.69444,.08528,0,.59111],715:[0,.69444,0,0,.59111],728:[0,.69444,.10333,0,.59111],729:[0,.69444,.12945,0,.35555],730:[0,.69444,0,0,.94888],732:[0,.69444,.11472,0,.59111],733:[0,.69444,.11472,0,.59111],915:[0,.68611,.12903,0,.69777],916:[0,.68611,0,0,.94444],920:[0,.68611,.09062,0,.88555],923:[0,.68611,0,0,.80666],926:[0,.68611,.15092,0,.76777],928:[0,.68611,.17208,0,.8961],931:[0,.68611,.11431,0,.82666],933:[0,.68611,.10778,0,.88555],934:[0,.68611,.05632,0,.82666],936:[0,.68611,.10778,0,.88555],937:[0,.68611,.0992,0,.82666],8211:[0,.44444,.09811,0,.59111],8212:[0,.44444,.09811,0,1.18221],8216:[0,.69444,.12945,0,.35555],8217:[0,.69444,.12945,0,.35555],8220:[0,.69444,.16772,0,.62055],8221:[0,.69444,.07939,0,.62055]},"Main-Italic":{32:[0,0,0,0,.25],33:[0,.69444,.12417,0,.30667],34:[0,.69444,.06961,0,.51444],35:[.19444,.69444,.06616,0,.81777],37:[.05556,.75,.13639,0,.81777],38:[0,.69444,.09694,0,.76666],39:[0,.69444,.12417,0,.30667],40:[.25,.75,.16194,0,.40889],41:[.25,.75,.03694,0,.40889],42:[0,.75,.14917,0,.51111],43:[.05667,.56167,.03694,0,.76666],44:[.19444,.10556,0,0,.30667],45:[0,.43056,.02826,0,.35778],46:[0,.10556,0,0,.30667],47:[.25,.75,.16194,0,.51111],48:[0,.64444,.13556,0,.51111],49:[0,.64444,.13556,0,.51111],50:[0,.64444,.13556,0,.51111],51:[0,.64444,.13556,0,.51111],52:[.19444,.64444,.13556,0,.51111],53:[0,.64444,.13556,0,.51111],54:[0,.64444,.13556,0,.51111],55:[.19444,.64444,.13556,0,.51111],56:[0,.64444,.13556,0,.51111],57:[0,.64444,.13556,0,.51111],58:[0,.43056,.0582,0,.30667],59:[.19444,.43056,.0582,0,.30667],61:[-.13313,.36687,.06616,0,.76666],63:[0,.69444,.1225,0,.51111],64:[0,.69444,.09597,0,.76666],65:[0,.68333,0,0,.74333],66:[0,.68333,.10257,0,.70389],67:[0,.68333,.14528,0,.71555],68:[0,.68333,.09403,0,.755],69:[0,.68333,.12028,0,.67833],70:[0,.68333,.13305,0,.65277],71:[0,.68333,.08722,0,.77361],72:[0,.68333,.16389,0,.74333],73:[0,.68333,.15806,0,.38555],74:[0,.68333,.14028,0,.525],75:[0,.68333,.14528,0,.76888],76:[0,.68333,0,0,.62722],77:[0,.68333,.16389,0,.89666],78:[0,.68333,.16389,0,.74333],79:[0,.68333,.09403,0,.76666],80:[0,.68333,.10257,0,.67833],81:[.19444,.68333,.09403,0,.76666],82:[0,.68333,.03868,0,.72944],83:[0,.68333,.11972,0,.56222],84:[0,.68333,.13305,0,.71555],85:[0,.68333,.16389,0,.74333],86:[0,.68333,.18361,0,.74333],87:[0,.68333,.18361,0,.99888],88:[0,.68333,.15806,0,.74333],89:[0,.68333,.19383,0,.74333],90:[0,.68333,.14528,0,.61333],91:[.25,.75,.1875,0,.30667],93:[.25,.75,.10528,0,.30667],94:[0,.69444,.06646,0,.51111],95:[.31,.12056,.09208,0,.51111],97:[0,.43056,.07671,0,.51111],98:[0,.69444,.06312,0,.46],99:[0,.43056,.05653,0,.46],100:[0,.69444,.10333,0,.51111],101:[0,.43056,.07514,0,.46],102:[.19444,.69444,.21194,0,.30667],103:[.19444,.43056,.08847,0,.46],104:[0,.69444,.07671,0,.51111],105:[0,.65536,.1019,0,.30667],106:[.19444,.65536,.14467,0,.30667],107:[0,.69444,.10764,0,.46],108:[0,.69444,.10333,0,.25555],109:[0,.43056,.07671,0,.81777],110:[0,.43056,.07671,0,.56222],111:[0,.43056,.06312,0,.51111],112:[.19444,.43056,.06312,0,.51111],113:[.19444,.43056,.08847,0,.46],114:[0,.43056,.10764,0,.42166],115:[0,.43056,.08208,0,.40889],116:[0,.61508,.09486,0,.33222],117:[0,.43056,.07671,0,.53666],118:[0,.43056,.10764,0,.46],119:[0,.43056,.10764,0,.66444],120:[0,.43056,.12042,0,.46389],121:[.19444,.43056,.08847,0,.48555],122:[0,.43056,.12292,0,.40889],126:[.35,.31786,.11585,0,.51111],160:[0,0,0,0,.25],168:[0,.66786,.10474,0,.51111],176:[0,.69444,0,0,.83129],184:[.17014,0,0,0,.46],198:[0,.68333,.12028,0,.88277],216:[.04861,.73194,.09403,0,.76666],223:[.19444,.69444,.10514,0,.53666],230:[0,.43056,.07514,0,.71555],248:[.09722,.52778,.09194,0,.51111],338:[0,.68333,.12028,0,.98499],339:[0,.43056,.07514,0,.71555],710:[0,.69444,.06646,0,.51111],711:[0,.62847,.08295,0,.51111],713:[0,.56167,.10333,0,.51111],714:[0,.69444,.09694,0,.51111],715:[0,.69444,0,0,.51111],728:[0,.69444,.10806,0,.51111],729:[0,.66786,.11752,0,.30667],730:[0,.69444,0,0,.83129],732:[0,.66786,.11585,0,.51111],733:[0,.69444,.1225,0,.51111],915:[0,.68333,.13305,0,.62722],916:[0,.68333,0,0,.81777],920:[0,.68333,.09403,0,.76666],923:[0,.68333,0,0,.69222],926:[0,.68333,.15294,0,.66444],928:[0,.68333,.16389,0,.74333],931:[0,.68333,.12028,0,.71555],933:[0,.68333,.11111,0,.76666],934:[0,.68333,.05986,0,.71555],936:[0,.68333,.11111,0,.76666],937:[0,.68333,.10257,0,.71555],8211:[0,.43056,.09208,0,.51111],8212:[0,.43056,.09208,0,1.02222],8216:[0,.69444,.12417,0,.30667],8217:[0,.69444,.12417,0,.30667],8220:[0,.69444,.1685,0,.51444],8221:[0,.69444,.06961,0,.51444],8463:[0,.68889,0,0,.54028]},"Main-Regular":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.27778],34:[0,.69444,0,0,.5],35:[.19444,.69444,0,0,.83334],36:[.05556,.75,0,0,.5],37:[.05556,.75,0,0,.83334],38:[0,.69444,0,0,.77778],39:[0,.69444,0,0,.27778],40:[.25,.75,0,0,.38889],41:[.25,.75,0,0,.38889],42:[0,.75,0,0,.5],43:[.08333,.58333,0,0,.77778],44:[.19444,.10556,0,0,.27778],45:[0,.43056,0,0,.33333],46:[0,.10556,0,0,.27778],47:[.25,.75,0,0,.5],48:[0,.64444,0,0,.5],49:[0,.64444,0,0,.5],50:[0,.64444,0,0,.5],51:[0,.64444,0,0,.5],52:[0,.64444,0,0,.5],53:[0,.64444,0,0,.5],54:[0,.64444,0,0,.5],55:[0,.64444,0,0,.5],56:[0,.64444,0,0,.5],57:[0,.64444,0,0,.5],58:[0,.43056,0,0,.27778],59:[.19444,.43056,0,0,.27778],60:[.0391,.5391,0,0,.77778],61:[-.13313,.36687,0,0,.77778],62:[.0391,.5391,0,0,.77778],63:[0,.69444,0,0,.47222],64:[0,.69444,0,0,.77778],65:[0,.68333,0,0,.75],66:[0,.68333,0,0,.70834],67:[0,.68333,0,0,.72222],68:[0,.68333,0,0,.76389],69:[0,.68333,0,0,.68056],70:[0,.68333,0,0,.65278],71:[0,.68333,0,0,.78472],72:[0,.68333,0,0,.75],73:[0,.68333,0,0,.36111],74:[0,.68333,0,0,.51389],75:[0,.68333,0,0,.77778],76:[0,.68333,0,0,.625],77:[0,.68333,0,0,.91667],78:[0,.68333,0,0,.75],79:[0,.68333,0,0,.77778],80:[0,.68333,0,0,.68056],81:[.19444,.68333,0,0,.77778],82:[0,.68333,0,0,.73611],83:[0,.68333,0,0,.55556],84:[0,.68333,0,0,.72222],85:[0,.68333,0,0,.75],86:[0,.68333,.01389,0,.75],87:[0,.68333,.01389,0,1.02778],88:[0,.68333,0,0,.75],89:[0,.68333,.025,0,.75],90:[0,.68333,0,0,.61111],91:[.25,.75,0,0,.27778],92:[.25,.75,0,0,.5],93:[.25,.75,0,0,.27778],94:[0,.69444,0,0,.5],95:[.31,.12056,.02778,0,.5],97:[0,.43056,0,0,.5],98:[0,.69444,0,0,.55556],99:[0,.43056,0,0,.44445],100:[0,.69444,0,0,.55556],101:[0,.43056,0,0,.44445],102:[0,.69444,.07778,0,.30556],103:[.19444,.43056,.01389,0,.5],104:[0,.69444,0,0,.55556],105:[0,.66786,0,0,.27778],106:[.19444,.66786,0,0,.30556],107:[0,.69444,0,0,.52778],108:[0,.69444,0,0,.27778],109:[0,.43056,0,0,.83334],110:[0,.43056,0,0,.55556],111:[0,.43056,0,0,.5],112:[.19444,.43056,0,0,.55556],113:[.19444,.43056,0,0,.52778],114:[0,.43056,0,0,.39167],115:[0,.43056,0,0,.39445],116:[0,.61508,0,0,.38889],117:[0,.43056,0,0,.55556],118:[0,.43056,.01389,0,.52778],119:[0,.43056,.01389,0,.72222],120:[0,.43056,0,0,.52778],121:[.19444,.43056,.01389,0,.52778],122:[0,.43056,0,0,.44445],123:[.25,.75,0,0,.5],124:[.25,.75,0,0,.27778],125:[.25,.75,0,0,.5],126:[.35,.31786,0,0,.5],160:[0,0,0,0,.25],163:[0,.69444,0,0,.76909],167:[.19444,.69444,0,0,.44445],168:[0,.66786,0,0,.5],172:[0,.43056,0,0,.66667],176:[0,.69444,0,0,.75],177:[.08333,.58333,0,0,.77778],182:[.19444,.69444,0,0,.61111],184:[.17014,0,0,0,.44445],198:[0,.68333,0,0,.90278],215:[.08333,.58333,0,0,.77778],216:[.04861,.73194,0,0,.77778],223:[0,.69444,0,0,.5],230:[0,.43056,0,0,.72222],247:[.08333,.58333,0,0,.77778],248:[.09722,.52778,0,0,.5],305:[0,.43056,0,0,.27778],338:[0,.68333,0,0,1.01389],339:[0,.43056,0,0,.77778],567:[.19444,.43056,0,0,.30556],710:[0,.69444,0,0,.5],711:[0,.62847,0,0,.5],713:[0,.56778,0,0,.5],714:[0,.69444,0,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,0,0,.5],729:[0,.66786,0,0,.27778],730:[0,.69444,0,0,.75],732:[0,.66786,0,0,.5],733:[0,.69444,0,0,.5],915:[0,.68333,0,0,.625],916:[0,.68333,0,0,.83334],920:[0,.68333,0,0,.77778],923:[0,.68333,0,0,.69445],926:[0,.68333,0,0,.66667],928:[0,.68333,0,0,.75],931:[0,.68333,0,0,.72222],933:[0,.68333,0,0,.77778],934:[0,.68333,0,0,.72222],936:[0,.68333,0,0,.77778],937:[0,.68333,0,0,.72222],8211:[0,.43056,.02778,0,.5],8212:[0,.43056,.02778,0,1],8216:[0,.69444,0,0,.27778],8217:[0,.69444,0,0,.27778],8220:[0,.69444,0,0,.5],8221:[0,.69444,0,0,.5],8224:[.19444,.69444,0,0,.44445],8225:[.19444,.69444,0,0,.44445],8230:[0,.123,0,0,1.172],8242:[0,.55556,0,0,.275],8407:[0,.71444,.15382,0,.5],8463:[0,.68889,0,0,.54028],8465:[0,.69444,0,0,.72222],8467:[0,.69444,0,.11111,.41667],8472:[.19444,.43056,0,.11111,.63646],8476:[0,.69444,0,0,.72222],8501:[0,.69444,0,0,.61111],8592:[-.13313,.36687,0,0,1],8593:[.19444,.69444,0,0,.5],8594:[-.13313,.36687,0,0,1],8595:[.19444,.69444,0,0,.5],8596:[-.13313,.36687,0,0,1],8597:[.25,.75,0,0,.5],8598:[.19444,.69444,0,0,1],8599:[.19444,.69444,0,0,1],8600:[.19444,.69444,0,0,1],8601:[.19444,.69444,0,0,1],8614:[.011,.511,0,0,1],8617:[.011,.511,0,0,1.126],8618:[.011,.511,0,0,1.126],8636:[-.13313,.36687,0,0,1],8637:[-.13313,.36687,0,0,1],8640:[-.13313,.36687,0,0,1],8641:[-.13313,.36687,0,0,1],8652:[.011,.671,0,0,1],8656:[-.13313,.36687,0,0,1],8657:[.19444,.69444,0,0,.61111],8658:[-.13313,.36687,0,0,1],8659:[.19444,.69444,0,0,.61111],8660:[-.13313,.36687,0,0,1],8661:[.25,.75,0,0,.61111],8704:[0,.69444,0,0,.55556],8706:[0,.69444,.05556,.08334,.5309],8707:[0,.69444,0,0,.55556],8709:[.05556,.75,0,0,.5],8711:[0,.68333,0,0,.83334],8712:[.0391,.5391,0,0,.66667],8715:[.0391,.5391,0,0,.66667],8722:[.08333,.58333,0,0,.77778],8723:[.08333,.58333,0,0,.77778],8725:[.25,.75,0,0,.5],8726:[.25,.75,0,0,.5],8727:[-.03472,.46528,0,0,.5],8728:[-.05555,.44445,0,0,.5],8729:[-.05555,.44445,0,0,.5],8730:[.2,.8,0,0,.83334],8733:[0,.43056,0,0,.77778],8734:[0,.43056,0,0,1],8736:[0,.69224,0,0,.72222],8739:[.25,.75,0,0,.27778],8741:[.25,.75,0,0,.5],8743:[0,.55556,0,0,.66667],8744:[0,.55556,0,0,.66667],8745:[0,.55556,0,0,.66667],8746:[0,.55556,0,0,.66667],8747:[.19444,.69444,.11111,0,.41667],8764:[-.13313,.36687,0,0,.77778],8768:[.19444,.69444,0,0,.27778],8771:[-.03625,.46375,0,0,.77778],8773:[-.022,.589,0,0,.778],8776:[-.01688,.48312,0,0,.77778],8781:[-.03625,.46375,0,0,.77778],8784:[-.133,.673,0,0,.778],8801:[-.03625,.46375,0,0,.77778],8804:[.13597,.63597,0,0,.77778],8805:[.13597,.63597,0,0,.77778],8810:[.0391,.5391,0,0,1],8811:[.0391,.5391,0,0,1],8826:[.0391,.5391,0,0,.77778],8827:[.0391,.5391,0,0,.77778],8834:[.0391,.5391,0,0,.77778],8835:[.0391,.5391,0,0,.77778],8838:[.13597,.63597,0,0,.77778],8839:[.13597,.63597,0,0,.77778],8846:[0,.55556,0,0,.66667],8849:[.13597,.63597,0,0,.77778],8850:[.13597,.63597,0,0,.77778],8851:[0,.55556,0,0,.66667],8852:[0,.55556,0,0,.66667],8853:[.08333,.58333,0,0,.77778],8854:[.08333,.58333,0,0,.77778],8855:[.08333,.58333,0,0,.77778],8856:[.08333,.58333,0,0,.77778],8857:[.08333,.58333,0,0,.77778],8866:[0,.69444,0,0,.61111],8867:[0,.69444,0,0,.61111],8868:[0,.69444,0,0,.77778],8869:[0,.69444,0,0,.77778],8872:[.249,.75,0,0,.867],8900:[-.05555,.44445,0,0,.5],8901:[-.05555,.44445,0,0,.27778],8902:[-.03472,.46528,0,0,.5],8904:[.005,.505,0,0,.9],8942:[.03,.903,0,0,.278],8943:[-.19,.313,0,0,1.172],8945:[-.1,.823,0,0,1.282],8968:[.25,.75,0,0,.44445],8969:[.25,.75,0,0,.44445],8970:[.25,.75,0,0,.44445],8971:[.25,.75,0,0,.44445],8994:[-.14236,.35764,0,0,1],8995:[-.14236,.35764,0,0,1],9136:[.244,.744,0,0,.412],9137:[.244,.745,0,0,.412],9651:[.19444,.69444,0,0,.88889],9657:[-.03472,.46528,0,0,.5],9661:[.19444,.69444,0,0,.88889],9667:[-.03472,.46528,0,0,.5],9711:[.19444,.69444,0,0,1],9824:[.12963,.69444,0,0,.77778],9825:[.12963,.69444,0,0,.77778],9826:[.12963,.69444,0,0,.77778],9827:[.12963,.69444,0,0,.77778],9837:[0,.75,0,0,.38889],9838:[.19444,.69444,0,0,.38889],9839:[.19444,.69444,0,0,.38889],10216:[.25,.75,0,0,.38889],10217:[.25,.75,0,0,.38889],10222:[.244,.744,0,0,.412],10223:[.244,.745,0,0,.412],10229:[.011,.511,0,0,1.609],10230:[.011,.511,0,0,1.638],10231:[.011,.511,0,0,1.859],10232:[.024,.525,0,0,1.609],10233:[.024,.525,0,0,1.638],10234:[.024,.525,0,0,1.858],10236:[.011,.511,0,0,1.638],10815:[0,.68333,0,0,.75],10927:[.13597,.63597,0,0,.77778],10928:[.13597,.63597,0,0,.77778],57376:[.19444,.69444,0,0,0]},"Math-BoldItalic":{32:[0,0,0,0,.25],48:[0,.44444,0,0,.575],49:[0,.44444,0,0,.575],50:[0,.44444,0,0,.575],51:[.19444,.44444,0,0,.575],52:[.19444,.44444,0,0,.575],53:[.19444,.44444,0,0,.575],54:[0,.64444,0,0,.575],55:[.19444,.44444,0,0,.575],56:[0,.64444,0,0,.575],57:[.19444,.44444,0,0,.575],65:[0,.68611,0,0,.86944],66:[0,.68611,.04835,0,.8664],67:[0,.68611,.06979,0,.81694],68:[0,.68611,.03194,0,.93812],69:[0,.68611,.05451,0,.81007],70:[0,.68611,.15972,0,.68889],71:[0,.68611,0,0,.88673],72:[0,.68611,.08229,0,.98229],73:[0,.68611,.07778,0,.51111],74:[0,.68611,.10069,0,.63125],75:[0,.68611,.06979,0,.97118],76:[0,.68611,0,0,.75555],77:[0,.68611,.11424,0,1.14201],78:[0,.68611,.11424,0,.95034],79:[0,.68611,.03194,0,.83666],80:[0,.68611,.15972,0,.72309],81:[.19444,.68611,0,0,.86861],82:[0,.68611,.00421,0,.87235],83:[0,.68611,.05382,0,.69271],84:[0,.68611,.15972,0,.63663],85:[0,.68611,.11424,0,.80027],86:[0,.68611,.25555,0,.67778],87:[0,.68611,.15972,0,1.09305],88:[0,.68611,.07778,0,.94722],89:[0,.68611,.25555,0,.67458],90:[0,.68611,.06979,0,.77257],97:[0,.44444,0,0,.63287],98:[0,.69444,0,0,.52083],99:[0,.44444,0,0,.51342],100:[0,.69444,0,0,.60972],101:[0,.44444,0,0,.55361],102:[.19444,.69444,.11042,0,.56806],103:[.19444,.44444,.03704,0,.5449],104:[0,.69444,0,0,.66759],105:[0,.69326,0,0,.4048],106:[.19444,.69326,.0622,0,.47083],107:[0,.69444,.01852,0,.6037],108:[0,.69444,.0088,0,.34815],109:[0,.44444,0,0,1.0324],110:[0,.44444,0,0,.71296],111:[0,.44444,0,0,.58472],112:[.19444,.44444,0,0,.60092],113:[.19444,.44444,.03704,0,.54213],114:[0,.44444,.03194,0,.5287],115:[0,.44444,0,0,.53125],116:[0,.63492,0,0,.41528],117:[0,.44444,0,0,.68102],118:[0,.44444,.03704,0,.56666],119:[0,.44444,.02778,0,.83148],120:[0,.44444,0,0,.65903],121:[.19444,.44444,.03704,0,.59028],122:[0,.44444,.04213,0,.55509],160:[0,0,0,0,.25],915:[0,.68611,.15972,0,.65694],916:[0,.68611,0,0,.95833],920:[0,.68611,.03194,0,.86722],923:[0,.68611,0,0,.80555],926:[0,.68611,.07458,0,.84125],928:[0,.68611,.08229,0,.98229],931:[0,.68611,.05451,0,.88507],933:[0,.68611,.15972,0,.67083],934:[0,.68611,0,0,.76666],936:[0,.68611,.11653,0,.71402],937:[0,.68611,.04835,0,.8789],945:[0,.44444,0,0,.76064],946:[.19444,.69444,.03403,0,.65972],947:[.19444,.44444,.06389,0,.59003],948:[0,.69444,.03819,0,.52222],949:[0,.44444,0,0,.52882],950:[.19444,.69444,.06215,0,.50833],951:[.19444,.44444,.03704,0,.6],952:[0,.69444,.03194,0,.5618],953:[0,.44444,0,0,.41204],954:[0,.44444,0,0,.66759],955:[0,.69444,0,0,.67083],956:[.19444,.44444,0,0,.70787],957:[0,.44444,.06898,0,.57685],958:[.19444,.69444,.03021,0,.50833],959:[0,.44444,0,0,.58472],960:[0,.44444,.03704,0,.68241],961:[.19444,.44444,0,0,.6118],962:[.09722,.44444,.07917,0,.42361],963:[0,.44444,.03704,0,.68588],964:[0,.44444,.13472,0,.52083],965:[0,.44444,.03704,0,.63055],966:[.19444,.44444,0,0,.74722],967:[.19444,.44444,0,0,.71805],968:[.19444,.69444,.03704,0,.75833],969:[0,.44444,.03704,0,.71782],977:[0,.69444,0,0,.69155],981:[.19444,.69444,0,0,.7125],982:[0,.44444,.03194,0,.975],1009:[.19444,.44444,0,0,.6118],1013:[0,.44444,0,0,.48333],57649:[0,.44444,0,0,.39352],57911:[.19444,.44444,0,0,.43889]},"Math-Italic":{32:[0,0,0,0,.25],48:[0,.43056,0,0,.5],49:[0,.43056,0,0,.5],50:[0,.43056,0,0,.5],51:[.19444,.43056,0,0,.5],52:[.19444,.43056,0,0,.5],53:[.19444,.43056,0,0,.5],54:[0,.64444,0,0,.5],55:[.19444,.43056,0,0,.5],56:[0,.64444,0,0,.5],57:[.19444,.43056,0,0,.5],65:[0,.68333,0,.13889,.75],66:[0,.68333,.05017,.08334,.75851],67:[0,.68333,.07153,.08334,.71472],68:[0,.68333,.02778,.05556,.82792],69:[0,.68333,.05764,.08334,.7382],70:[0,.68333,.13889,.08334,.64306],71:[0,.68333,0,.08334,.78625],72:[0,.68333,.08125,.05556,.83125],73:[0,.68333,.07847,.11111,.43958],74:[0,.68333,.09618,.16667,.55451],75:[0,.68333,.07153,.05556,.84931],76:[0,.68333,0,.02778,.68056],77:[0,.68333,.10903,.08334,.97014],78:[0,.68333,.10903,.08334,.80347],79:[0,.68333,.02778,.08334,.76278],80:[0,.68333,.13889,.08334,.64201],81:[.19444,.68333,0,.08334,.79056],82:[0,.68333,.00773,.08334,.75929],83:[0,.68333,.05764,.08334,.6132],84:[0,.68333,.13889,.08334,.58438],85:[0,.68333,.10903,.02778,.68278],86:[0,.68333,.22222,0,.58333],87:[0,.68333,.13889,0,.94445],88:[0,.68333,.07847,.08334,.82847],89:[0,.68333,.22222,0,.58056],90:[0,.68333,.07153,.08334,.68264],97:[0,.43056,0,0,.52859],98:[0,.69444,0,0,.42917],99:[0,.43056,0,.05556,.43276],100:[0,.69444,0,.16667,.52049],101:[0,.43056,0,.05556,.46563],102:[.19444,.69444,.10764,.16667,.48959],103:[.19444,.43056,.03588,.02778,.47697],104:[0,.69444,0,0,.57616],105:[0,.65952,0,0,.34451],106:[.19444,.65952,.05724,0,.41181],107:[0,.69444,.03148,0,.5206],108:[0,.69444,.01968,.08334,.29838],109:[0,.43056,0,0,.87801],110:[0,.43056,0,0,.60023],111:[0,.43056,0,.05556,.48472],112:[.19444,.43056,0,.08334,.50313],113:[.19444,.43056,.03588,.08334,.44641],114:[0,.43056,.02778,.05556,.45116],115:[0,.43056,0,.05556,.46875],116:[0,.61508,0,.08334,.36111],117:[0,.43056,0,.02778,.57246],118:[0,.43056,.03588,.02778,.48472],119:[0,.43056,.02691,.08334,.71592],120:[0,.43056,0,.02778,.57153],121:[.19444,.43056,.03588,.05556,.49028],122:[0,.43056,.04398,.05556,.46505],160:[0,0,0,0,.25],915:[0,.68333,.13889,.08334,.61528],916:[0,.68333,0,.16667,.83334],920:[0,.68333,.02778,.08334,.76278],923:[0,.68333,0,.16667,.69445],926:[0,.68333,.07569,.08334,.74236],928:[0,.68333,.08125,.05556,.83125],931:[0,.68333,.05764,.08334,.77986],933:[0,.68333,.13889,.05556,.58333],934:[0,.68333,0,.08334,.66667],936:[0,.68333,.11,.05556,.61222],937:[0,.68333,.05017,.08334,.7724],945:[0,.43056,.0037,.02778,.6397],946:[.19444,.69444,.05278,.08334,.56563],947:[.19444,.43056,.05556,0,.51773],948:[0,.69444,.03785,.05556,.44444],949:[0,.43056,0,.08334,.46632],950:[.19444,.69444,.07378,.08334,.4375],951:[.19444,.43056,.03588,.05556,.49653],952:[0,.69444,.02778,.08334,.46944],953:[0,.43056,0,.05556,.35394],954:[0,.43056,0,0,.57616],955:[0,.69444,0,0,.58334],956:[.19444,.43056,0,.02778,.60255],957:[0,.43056,.06366,.02778,.49398],958:[.19444,.69444,.04601,.11111,.4375],959:[0,.43056,0,.05556,.48472],960:[0,.43056,.03588,0,.57003],961:[.19444,.43056,0,.08334,.51702],962:[.09722,.43056,.07986,.08334,.36285],963:[0,.43056,.03588,0,.57141],964:[0,.43056,.1132,.02778,.43715],965:[0,.43056,.03588,.02778,.54028],966:[.19444,.43056,0,.08334,.65417],967:[.19444,.43056,0,.05556,.62569],968:[.19444,.69444,.03588,.11111,.65139],969:[0,.43056,.03588,0,.62245],977:[0,.69444,0,.08334,.59144],981:[.19444,.69444,0,.08334,.59583],982:[0,.43056,.02778,0,.82813],1009:[.19444,.43056,0,.08334,.51702],1013:[0,.43056,0,.05556,.4059],57649:[0,.43056,0,.02778,.32246],57911:[.19444,.43056,0,.08334,.38403]},"SansSerif-Bold":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.36667],34:[0,.69444,0,0,.55834],35:[.19444,.69444,0,0,.91667],36:[.05556,.75,0,0,.55],37:[.05556,.75,0,0,1.02912],38:[0,.69444,0,0,.83056],39:[0,.69444,0,0,.30556],40:[.25,.75,0,0,.42778],41:[.25,.75,0,0,.42778],42:[0,.75,0,0,.55],43:[.11667,.61667,0,0,.85556],44:[.10556,.13056,0,0,.30556],45:[0,.45833,0,0,.36667],46:[0,.13056,0,0,.30556],47:[.25,.75,0,0,.55],48:[0,.69444,0,0,.55],49:[0,.69444,0,0,.55],50:[0,.69444,0,0,.55],51:[0,.69444,0,0,.55],52:[0,.69444,0,0,.55],53:[0,.69444,0,0,.55],54:[0,.69444,0,0,.55],55:[0,.69444,0,0,.55],56:[0,.69444,0,0,.55],57:[0,.69444,0,0,.55],58:[0,.45833,0,0,.30556],59:[.10556,.45833,0,0,.30556],61:[-.09375,.40625,0,0,.85556],63:[0,.69444,0,0,.51945],64:[0,.69444,0,0,.73334],65:[0,.69444,0,0,.73334],66:[0,.69444,0,0,.73334],67:[0,.69444,0,0,.70278],68:[0,.69444,0,0,.79445],69:[0,.69444,0,0,.64167],70:[0,.69444,0,0,.61111],71:[0,.69444,0,0,.73334],72:[0,.69444,0,0,.79445],73:[0,.69444,0,0,.33056],74:[0,.69444,0,0,.51945],75:[0,.69444,0,0,.76389],76:[0,.69444,0,0,.58056],77:[0,.69444,0,0,.97778],78:[0,.69444,0,0,.79445],79:[0,.69444,0,0,.79445],80:[0,.69444,0,0,.70278],81:[.10556,.69444,0,0,.79445],82:[0,.69444,0,0,.70278],83:[0,.69444,0,0,.61111],84:[0,.69444,0,0,.73334],85:[0,.69444,0,0,.76389],86:[0,.69444,.01528,0,.73334],87:[0,.69444,.01528,0,1.03889],88:[0,.69444,0,0,.73334],89:[0,.69444,.0275,0,.73334],90:[0,.69444,0,0,.67223],91:[.25,.75,0,0,.34306],93:[.25,.75,0,0,.34306],94:[0,.69444,0,0,.55],95:[.35,.10833,.03056,0,.55],97:[0,.45833,0,0,.525],98:[0,.69444,0,0,.56111],99:[0,.45833,0,0,.48889],100:[0,.69444,0,0,.56111],101:[0,.45833,0,0,.51111],102:[0,.69444,.07639,0,.33611],103:[.19444,.45833,.01528,0,.55],104:[0,.69444,0,0,.56111],105:[0,.69444,0,0,.25556],106:[.19444,.69444,0,0,.28611],107:[0,.69444,0,0,.53056],108:[0,.69444,0,0,.25556],109:[0,.45833,0,0,.86667],110:[0,.45833,0,0,.56111],111:[0,.45833,0,0,.55],112:[.19444,.45833,0,0,.56111],113:[.19444,.45833,0,0,.56111],114:[0,.45833,.01528,0,.37222],115:[0,.45833,0,0,.42167],116:[0,.58929,0,0,.40417],117:[0,.45833,0,0,.56111],118:[0,.45833,.01528,0,.5],119:[0,.45833,.01528,0,.74445],120:[0,.45833,0,0,.5],121:[.19444,.45833,.01528,0,.5],122:[0,.45833,0,0,.47639],126:[.35,.34444,0,0,.55],160:[0,0,0,0,.25],168:[0,.69444,0,0,.55],176:[0,.69444,0,0,.73334],180:[0,.69444,0,0,.55],184:[.17014,0,0,0,.48889],305:[0,.45833,0,0,.25556],567:[.19444,.45833,0,0,.28611],710:[0,.69444,0,0,.55],711:[0,.63542,0,0,.55],713:[0,.63778,0,0,.55],728:[0,.69444,0,0,.55],729:[0,.69444,0,0,.30556],730:[0,.69444,0,0,.73334],732:[0,.69444,0,0,.55],733:[0,.69444,0,0,.55],915:[0,.69444,0,0,.58056],916:[0,.69444,0,0,.91667],920:[0,.69444,0,0,.85556],923:[0,.69444,0,0,.67223],926:[0,.69444,0,0,.73334],928:[0,.69444,0,0,.79445],931:[0,.69444,0,0,.79445],933:[0,.69444,0,0,.85556],934:[0,.69444,0,0,.79445],936:[0,.69444,0,0,.85556],937:[0,.69444,0,0,.79445],8211:[0,.45833,.03056,0,.55],8212:[0,.45833,.03056,0,1.10001],8216:[0,.69444,0,0,.30556],8217:[0,.69444,0,0,.30556],8220:[0,.69444,0,0,.55834],8221:[0,.69444,0,0,.55834]},"SansSerif-Italic":{32:[0,0,0,0,.25],33:[0,.69444,.05733,0,.31945],34:[0,.69444,.00316,0,.5],35:[.19444,.69444,.05087,0,.83334],36:[.05556,.75,.11156,0,.5],37:[.05556,.75,.03126,0,.83334],38:[0,.69444,.03058,0,.75834],39:[0,.69444,.07816,0,.27778],40:[.25,.75,.13164,0,.38889],41:[.25,.75,.02536,0,.38889],42:[0,.75,.11775,0,.5],43:[.08333,.58333,.02536,0,.77778],44:[.125,.08333,0,0,.27778],45:[0,.44444,.01946,0,.33333],46:[0,.08333,0,0,.27778],47:[.25,.75,.13164,0,.5],48:[0,.65556,.11156,0,.5],49:[0,.65556,.11156,0,.5],50:[0,.65556,.11156,0,.5],51:[0,.65556,.11156,0,.5],52:[0,.65556,.11156,0,.5],53:[0,.65556,.11156,0,.5],54:[0,.65556,.11156,0,.5],55:[0,.65556,.11156,0,.5],56:[0,.65556,.11156,0,.5],57:[0,.65556,.11156,0,.5],58:[0,.44444,.02502,0,.27778],59:[.125,.44444,.02502,0,.27778],61:[-.13,.37,.05087,0,.77778],63:[0,.69444,.11809,0,.47222],64:[0,.69444,.07555,0,.66667],65:[0,.69444,0,0,.66667],66:[0,.69444,.08293,0,.66667],67:[0,.69444,.11983,0,.63889],68:[0,.69444,.07555,0,.72223],69:[0,.69444,.11983,0,.59722],70:[0,.69444,.13372,0,.56945],71:[0,.69444,.11983,0,.66667],72:[0,.69444,.08094,0,.70834],73:[0,.69444,.13372,0,.27778],74:[0,.69444,.08094,0,.47222],75:[0,.69444,.11983,0,.69445],76:[0,.69444,0,0,.54167],77:[0,.69444,.08094,0,.875],78:[0,.69444,.08094,0,.70834],79:[0,.69444,.07555,0,.73611],80:[0,.69444,.08293,0,.63889],81:[.125,.69444,.07555,0,.73611],82:[0,.69444,.08293,0,.64584],83:[0,.69444,.09205,0,.55556],84:[0,.69444,.13372,0,.68056],85:[0,.69444,.08094,0,.6875],86:[0,.69444,.1615,0,.66667],87:[0,.69444,.1615,0,.94445],88:[0,.69444,.13372,0,.66667],89:[0,.69444,.17261,0,.66667],90:[0,.69444,.11983,0,.61111],91:[.25,.75,.15942,0,.28889],93:[.25,.75,.08719,0,.28889],94:[0,.69444,.0799,0,.5],95:[.35,.09444,.08616,0,.5],97:[0,.44444,.00981,0,.48056],98:[0,.69444,.03057,0,.51667],99:[0,.44444,.08336,0,.44445],100:[0,.69444,.09483,0,.51667],101:[0,.44444,.06778,0,.44445],102:[0,.69444,.21705,0,.30556],103:[.19444,.44444,.10836,0,.5],104:[0,.69444,.01778,0,.51667],105:[0,.67937,.09718,0,.23889],106:[.19444,.67937,.09162,0,.26667],107:[0,.69444,.08336,0,.48889],108:[0,.69444,.09483,0,.23889],109:[0,.44444,.01778,0,.79445],110:[0,.44444,.01778,0,.51667],111:[0,.44444,.06613,0,.5],112:[.19444,.44444,.0389,0,.51667],113:[.19444,.44444,.04169,0,.51667],114:[0,.44444,.10836,0,.34167],115:[0,.44444,.0778,0,.38333],116:[0,.57143,.07225,0,.36111],117:[0,.44444,.04169,0,.51667],118:[0,.44444,.10836,0,.46111],119:[0,.44444,.10836,0,.68334],120:[0,.44444,.09169,0,.46111],121:[.19444,.44444,.10836,0,.46111],122:[0,.44444,.08752,0,.43472],126:[.35,.32659,.08826,0,.5],160:[0,0,0,0,.25],168:[0,.67937,.06385,0,.5],176:[0,.69444,0,0,.73752],184:[.17014,0,0,0,.44445],305:[0,.44444,.04169,0,.23889],567:[.19444,.44444,.04169,0,.26667],710:[0,.69444,.0799,0,.5],711:[0,.63194,.08432,0,.5],713:[0,.60889,.08776,0,.5],714:[0,.69444,.09205,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,.09483,0,.5],729:[0,.67937,.07774,0,.27778],730:[0,.69444,0,0,.73752],732:[0,.67659,.08826,0,.5],733:[0,.69444,.09205,0,.5],915:[0,.69444,.13372,0,.54167],916:[0,.69444,0,0,.83334],920:[0,.69444,.07555,0,.77778],923:[0,.69444,0,0,.61111],926:[0,.69444,.12816,0,.66667],928:[0,.69444,.08094,0,.70834],931:[0,.69444,.11983,0,.72222],933:[0,.69444,.09031,0,.77778],934:[0,.69444,.04603,0,.72222],936:[0,.69444,.09031,0,.77778],937:[0,.69444,.08293,0,.72222],8211:[0,.44444,.08616,0,.5],8212:[0,.44444,.08616,0,1],8216:[0,.69444,.07816,0,.27778],8217:[0,.69444,.07816,0,.27778],8220:[0,.69444,.14205,0,.5],8221:[0,.69444,.00316,0,.5]},"SansSerif-Regular":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.31945],34:[0,.69444,0,0,.5],35:[.19444,.69444,0,0,.83334],36:[.05556,.75,0,0,.5],37:[.05556,.75,0,0,.83334],38:[0,.69444,0,0,.75834],39:[0,.69444,0,0,.27778],40:[.25,.75,0,0,.38889],41:[.25,.75,0,0,.38889],42:[0,.75,0,0,.5],43:[.08333,.58333,0,0,.77778],44:[.125,.08333,0,0,.27778],45:[0,.44444,0,0,.33333],46:[0,.08333,0,0,.27778],47:[.25,.75,0,0,.5],48:[0,.65556,0,0,.5],49:[0,.65556,0,0,.5],50:[0,.65556,0,0,.5],51:[0,.65556,0,0,.5],52:[0,.65556,0,0,.5],53:[0,.65556,0,0,.5],54:[0,.65556,0,0,.5],55:[0,.65556,0,0,.5],56:[0,.65556,0,0,.5],57:[0,.65556,0,0,.5],58:[0,.44444,0,0,.27778],59:[.125,.44444,0,0,.27778],61:[-.13,.37,0,0,.77778],63:[0,.69444,0,0,.47222],64:[0,.69444,0,0,.66667],65:[0,.69444,0,0,.66667],66:[0,.69444,0,0,.66667],67:[0,.69444,0,0,.63889],68:[0,.69444,0,0,.72223],69:[0,.69444,0,0,.59722],70:[0,.69444,0,0,.56945],71:[0,.69444,0,0,.66667],72:[0,.69444,0,0,.70834],73:[0,.69444,0,0,.27778],74:[0,.69444,0,0,.47222],75:[0,.69444,0,0,.69445],76:[0,.69444,0,0,.54167],77:[0,.69444,0,0,.875],78:[0,.69444,0,0,.70834],79:[0,.69444,0,0,.73611],80:[0,.69444,0,0,.63889],81:[.125,.69444,0,0,.73611],82:[0,.69444,0,0,.64584],83:[0,.69444,0,0,.55556],84:[0,.69444,0,0,.68056],85:[0,.69444,0,0,.6875],86:[0,.69444,.01389,0,.66667],87:[0,.69444,.01389,0,.94445],88:[0,.69444,0,0,.66667],89:[0,.69444,.025,0,.66667],90:[0,.69444,0,0,.61111],91:[.25,.75,0,0,.28889],93:[.25,.75,0,0,.28889],94:[0,.69444,0,0,.5],95:[.35,.09444,.02778,0,.5],97:[0,.44444,0,0,.48056],98:[0,.69444,0,0,.51667],99:[0,.44444,0,0,.44445],100:[0,.69444,0,0,.51667],101:[0,.44444,0,0,.44445],102:[0,.69444,.06944,0,.30556],103:[.19444,.44444,.01389,0,.5],104:[0,.69444,0,0,.51667],105:[0,.67937,0,0,.23889],106:[.19444,.67937,0,0,.26667],107:[0,.69444,0,0,.48889],108:[0,.69444,0,0,.23889],109:[0,.44444,0,0,.79445],110:[0,.44444,0,0,.51667],111:[0,.44444,0,0,.5],112:[.19444,.44444,0,0,.51667],113:[.19444,.44444,0,0,.51667],114:[0,.44444,.01389,0,.34167],115:[0,.44444,0,0,.38333],116:[0,.57143,0,0,.36111],117:[0,.44444,0,0,.51667],118:[0,.44444,.01389,0,.46111],119:[0,.44444,.01389,0,.68334],120:[0,.44444,0,0,.46111],121:[.19444,.44444,.01389,0,.46111],122:[0,.44444,0,0,.43472],126:[.35,.32659,0,0,.5],160:[0,0,0,0,.25],168:[0,.67937,0,0,.5],176:[0,.69444,0,0,.66667],184:[.17014,0,0,0,.44445],305:[0,.44444,0,0,.23889],567:[.19444,.44444,0,0,.26667],710:[0,.69444,0,0,.5],711:[0,.63194,0,0,.5],713:[0,.60889,0,0,.5],714:[0,.69444,0,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,0,0,.5],729:[0,.67937,0,0,.27778],730:[0,.69444,0,0,.66667],732:[0,.67659,0,0,.5],733:[0,.69444,0,0,.5],915:[0,.69444,0,0,.54167],916:[0,.69444,0,0,.83334],920:[0,.69444,0,0,.77778],923:[0,.69444,0,0,.61111],926:[0,.69444,0,0,.66667],928:[0,.69444,0,0,.70834],931:[0,.69444,0,0,.72222],933:[0,.69444,0,0,.77778],934:[0,.69444,0,0,.72222],936:[0,.69444,0,0,.77778],937:[0,.69444,0,0,.72222],8211:[0,.44444,.02778,0,.5],8212:[0,.44444,.02778,0,1],8216:[0,.69444,0,0,.27778],8217:[0,.69444,0,0,.27778],8220:[0,.69444,0,0,.5],8221:[0,.69444,0,0,.5]},"Script-Regular":{32:[0,0,0,0,.25],65:[0,.7,.22925,0,.80253],66:[0,.7,.04087,0,.90757],67:[0,.7,.1689,0,.66619],68:[0,.7,.09371,0,.77443],69:[0,.7,.18583,0,.56162],70:[0,.7,.13634,0,.89544],71:[0,.7,.17322,0,.60961],72:[0,.7,.29694,0,.96919],73:[0,.7,.19189,0,.80907],74:[.27778,.7,.19189,0,1.05159],75:[0,.7,.31259,0,.91364],76:[0,.7,.19189,0,.87373],77:[0,.7,.15981,0,1.08031],78:[0,.7,.3525,0,.9015],79:[0,.7,.08078,0,.73787],80:[0,.7,.08078,0,1.01262],81:[0,.7,.03305,0,.88282],82:[0,.7,.06259,0,.85],83:[0,.7,.19189,0,.86767],84:[0,.7,.29087,0,.74697],85:[0,.7,.25815,0,.79996],86:[0,.7,.27523,0,.62204],87:[0,.7,.27523,0,.80532],88:[0,.7,.26006,0,.94445],89:[0,.7,.2939,0,.70961],90:[0,.7,.24037,0,.8212],160:[0,0,0,0,.25]},"Size1-Regular":{32:[0,0,0,0,.25],40:[.35001,.85,0,0,.45834],41:[.35001,.85,0,0,.45834],47:[.35001,.85,0,0,.57778],91:[.35001,.85,0,0,.41667],92:[.35001,.85,0,0,.57778],93:[.35001,.85,0,0,.41667],123:[.35001,.85,0,0,.58334],125:[.35001,.85,0,0,.58334],160:[0,0,0,0,.25],710:[0,.72222,0,0,.55556],732:[0,.72222,0,0,.55556],770:[0,.72222,0,0,.55556],771:[0,.72222,0,0,.55556],8214:[-99e-5,.601,0,0,.77778],8593:[1e-5,.6,0,0,.66667],8595:[1e-5,.6,0,0,.66667],8657:[1e-5,.6,0,0,.77778],8659:[1e-5,.6,0,0,.77778],8719:[.25001,.75,0,0,.94445],8720:[.25001,.75,0,0,.94445],8721:[.25001,.75,0,0,1.05556],8730:[.35001,.85,0,0,1],8739:[-.00599,.606,0,0,.33333],8741:[-.00599,.606,0,0,.55556],8747:[.30612,.805,.19445,0,.47222],8748:[.306,.805,.19445,0,.47222],8749:[.306,.805,.19445,0,.47222],8750:[.30612,.805,.19445,0,.47222],8896:[.25001,.75,0,0,.83334],8897:[.25001,.75,0,0,.83334],8898:[.25001,.75,0,0,.83334],8899:[.25001,.75,0,0,.83334],8968:[.35001,.85,0,0,.47222],8969:[.35001,.85,0,0,.47222],8970:[.35001,.85,0,0,.47222],8971:[.35001,.85,0,0,.47222],9168:[-99e-5,.601,0,0,.66667],10216:[.35001,.85,0,0,.47222],10217:[.35001,.85,0,0,.47222],10752:[.25001,.75,0,0,1.11111],10753:[.25001,.75,0,0,1.11111],10754:[.25001,.75,0,0,1.11111],10756:[.25001,.75,0,0,.83334],10758:[.25001,.75,0,0,.83334]},"Size2-Regular":{32:[0,0,0,0,.25],40:[.65002,1.15,0,0,.59722],41:[.65002,1.15,0,0,.59722],47:[.65002,1.15,0,0,.81111],91:[.65002,1.15,0,0,.47222],92:[.65002,1.15,0,0,.81111],93:[.65002,1.15,0,0,.47222],123:[.65002,1.15,0,0,.66667],125:[.65002,1.15,0,0,.66667],160:[0,0,0,0,.25],710:[0,.75,0,0,1],732:[0,.75,0,0,1],770:[0,.75,0,0,1],771:[0,.75,0,0,1],8719:[.55001,1.05,0,0,1.27778],8720:[.55001,1.05,0,0,1.27778],8721:[.55001,1.05,0,0,1.44445],8730:[.65002,1.15,0,0,1],8747:[.86225,1.36,.44445,0,.55556],8748:[.862,1.36,.44445,0,.55556],8749:[.862,1.36,.44445,0,.55556],8750:[.86225,1.36,.44445,0,.55556],8896:[.55001,1.05,0,0,1.11111],8897:[.55001,1.05,0,0,1.11111],8898:[.55001,1.05,0,0,1.11111],8899:[.55001,1.05,0,0,1.11111],8968:[.65002,1.15,0,0,.52778],8969:[.65002,1.15,0,0,.52778],8970:[.65002,1.15,0,0,.52778],8971:[.65002,1.15,0,0,.52778],10216:[.65002,1.15,0,0,.61111],10217:[.65002,1.15,0,0,.61111],10752:[.55001,1.05,0,0,1.51112],10753:[.55001,1.05,0,0,1.51112],10754:[.55001,1.05,0,0,1.51112],10756:[.55001,1.05,0,0,1.11111],10758:[.55001,1.05,0,0,1.11111]},"Size3-Regular":{32:[0,0,0,0,.25],40:[.95003,1.45,0,0,.73611],41:[.95003,1.45,0,0,.73611],47:[.95003,1.45,0,0,1.04445],91:[.95003,1.45,0,0,.52778],92:[.95003,1.45,0,0,1.04445],93:[.95003,1.45,0,0,.52778],123:[.95003,1.45,0,0,.75],125:[.95003,1.45,0,0,.75],160:[0,0,0,0,.25],710:[0,.75,0,0,1.44445],732:[0,.75,0,0,1.44445],770:[0,.75,0,0,1.44445],771:[0,.75,0,0,1.44445],8730:[.95003,1.45,0,0,1],8968:[.95003,1.45,0,0,.58334],8969:[.95003,1.45,0,0,.58334],8970:[.95003,1.45,0,0,.58334],8971:[.95003,1.45,0,0,.58334],10216:[.95003,1.45,0,0,.75],10217:[.95003,1.45,0,0,.75]},"Size4-Regular":{32:[0,0,0,0,.25],40:[1.25003,1.75,0,0,.79167],41:[1.25003,1.75,0,0,.79167],47:[1.25003,1.75,0,0,1.27778],91:[1.25003,1.75,0,0,.58334],92:[1.25003,1.75,0,0,1.27778],93:[1.25003,1.75,0,0,.58334],123:[1.25003,1.75,0,0,.80556],125:[1.25003,1.75,0,0,.80556],160:[0,0,0,0,.25],710:[0,.825,0,0,1.8889],732:[0,.825,0,0,1.8889],770:[0,.825,0,0,1.8889],771:[0,.825,0,0,1.8889],8730:[1.25003,1.75,0,0,1],8968:[1.25003,1.75,0,0,.63889],8969:[1.25003,1.75,0,0,.63889],8970:[1.25003,1.75,0,0,.63889],8971:[1.25003,1.75,0,0,.63889],9115:[.64502,1.155,0,0,.875],9116:[1e-5,.6,0,0,.875],9117:[.64502,1.155,0,0,.875],9118:[.64502,1.155,0,0,.875],9119:[1e-5,.6,0,0,.875],9120:[.64502,1.155,0,0,.875],9121:[.64502,1.155,0,0,.66667],9122:[-99e-5,.601,0,0,.66667],9123:[.64502,1.155,0,0,.66667],9124:[.64502,1.155,0,0,.66667],9125:[-99e-5,.601,0,0,.66667],9126:[.64502,1.155,0,0,.66667],9127:[1e-5,.9,0,0,.88889],9128:[.65002,1.15,0,0,.88889],9129:[.90001,0,0,0,.88889],9130:[0,.3,0,0,.88889],9131:[1e-5,.9,0,0,.88889],9132:[.65002,1.15,0,0,.88889],9133:[.90001,0,0,0,.88889],9143:[.88502,.915,0,0,1.05556],10216:[1.25003,1.75,0,0,.80556],10217:[1.25003,1.75,0,0,.80556],57344:[-.00499,.605,0,0,1.05556],57345:[-.00499,.605,0,0,1.05556],57680:[0,.12,0,0,.45],57681:[0,.12,0,0,.45],57682:[0,.12,0,0,.45],57683:[0,.12,0,0,.45]},"Typewriter-Regular":{32:[0,0,0,0,.525],33:[0,.61111,0,0,.525],34:[0,.61111,0,0,.525],35:[0,.61111,0,0,.525],36:[.08333,.69444,0,0,.525],37:[.08333,.69444,0,0,.525],38:[0,.61111,0,0,.525],39:[0,.61111,0,0,.525],40:[.08333,.69444,0,0,.525],41:[.08333,.69444,0,0,.525],42:[0,.52083,0,0,.525],43:[-.08056,.53055,0,0,.525],44:[.13889,.125,0,0,.525],45:[-.08056,.53055,0,0,.525],46:[0,.125,0,0,.525],47:[.08333,.69444,0,0,.525],48:[0,.61111,0,0,.525],49:[0,.61111,0,0,.525],50:[0,.61111,0,0,.525],51:[0,.61111,0,0,.525],52:[0,.61111,0,0,.525],53:[0,.61111,0,0,.525],54:[0,.61111,0,0,.525],55:[0,.61111,0,0,.525],56:[0,.61111,0,0,.525],57:[0,.61111,0,0,.525],58:[0,.43056,0,0,.525],59:[.13889,.43056,0,0,.525],60:[-.05556,.55556,0,0,.525],61:[-.19549,.41562,0,0,.525],62:[-.05556,.55556,0,0,.525],63:[0,.61111,0,0,.525],64:[0,.61111,0,0,.525],65:[0,.61111,0,0,.525],66:[0,.61111,0,0,.525],67:[0,.61111,0,0,.525],68:[0,.61111,0,0,.525],69:[0,.61111,0,0,.525],70:[0,.61111,0,0,.525],71:[0,.61111,0,0,.525],72:[0,.61111,0,0,.525],73:[0,.61111,0,0,.525],74:[0,.61111,0,0,.525],75:[0,.61111,0,0,.525],76:[0,.61111,0,0,.525],77:[0,.61111,0,0,.525],78:[0,.61111,0,0,.525],79:[0,.61111,0,0,.525],80:[0,.61111,0,0,.525],81:[.13889,.61111,0,0,.525],82:[0,.61111,0,0,.525],83:[0,.61111,0,0,.525],84:[0,.61111,0,0,.525],85:[0,.61111,0,0,.525],86:[0,.61111,0,0,.525],87:[0,.61111,0,0,.525],88:[0,.61111,0,0,.525],89:[0,.61111,0,0,.525],90:[0,.61111,0,0,.525],91:[.08333,.69444,0,0,.525],92:[.08333,.69444,0,0,.525],93:[.08333,.69444,0,0,.525],94:[0,.61111,0,0,.525],95:[.09514,0,0,0,.525],96:[0,.61111,0,0,.525],97:[0,.43056,0,0,.525],98:[0,.61111,0,0,.525],99:[0,.43056,0,0,.525],100:[0,.61111,0,0,.525],101:[0,.43056,0,0,.525],102:[0,.61111,0,0,.525],103:[.22222,.43056,0,0,.525],104:[0,.61111,0,0,.525],105:[0,.61111,0,0,.525],106:[.22222,.61111,0,0,.525],107:[0,.61111,0,0,.525],108:[0,.61111,0,0,.525],109:[0,.43056,0,0,.525],110:[0,.43056,0,0,.525],111:[0,.43056,0,0,.525],112:[.22222,.43056,0,0,.525],113:[.22222,.43056,0,0,.525],114:[0,.43056,0,0,.525],115:[0,.43056,0,0,.525],116:[0,.55358,0,0,.525],117:[0,.43056,0,0,.525],118:[0,.43056,0,0,.525],119:[0,.43056,0,0,.525],120:[0,.43056,0,0,.525],121:[.22222,.43056,0,0,.525],122:[0,.43056,0,0,.525],123:[.08333,.69444,0,0,.525],124:[.08333,.69444,0,0,.525],125:[.08333,.69444,0,0,.525],126:[0,.61111,0,0,.525],127:[0,.61111,0,0,.525],160:[0,0,0,0,.525],176:[0,.61111,0,0,.525],184:[.19445,0,0,0,.525],305:[0,.43056,0,0,.525],567:[.22222,.43056,0,0,.525],711:[0,.56597,0,0,.525],713:[0,.56555,0,0,.525],714:[0,.61111,0,0,.525],715:[0,.61111,0,0,.525],728:[0,.61111,0,0,.525],730:[0,.61111,0,0,.525],770:[0,.61111,0,0,.525],771:[0,.61111,0,0,.525],776:[0,.61111,0,0,.525],915:[0,.61111,0,0,.525],916:[0,.61111,0,0,.525],920:[0,.61111,0,0,.525],923:[0,.61111,0,0,.525],926:[0,.61111,0,0,.525],928:[0,.61111,0,0,.525],931:[0,.61111,0,0,.525],933:[0,.61111,0,0,.525],934:[0,.61111,0,0,.525],936:[0,.61111,0,0,.525],937:[0,.61111,0,0,.525],8216:[0,.61111,0,0,.525],8217:[0,.61111,0,0,.525],8242:[0,.61111,0,0,.525],9251:[.11111,.21944,0,0,.525]}},Z4={slant:[.25,.25,.25],space:[0,0,0],stretch:[0,0,0],shrink:[0,0,0],xHeight:[.431,.431,.431],quad:[1,1.171,1.472],extraSpace:[0,0,0],num1:[.677,.732,.925],num2:[.394,.384,.387],num3:[.444,.471,.504],denom1:[.686,.752,1.025],denom2:[.345,.344,.532],sup1:[.413,.503,.504],sup2:[.363,.431,.404],sup3:[.289,.286,.294],sub1:[.15,.143,.2],sub2:[.247,.286,.4],supDrop:[.386,.353,.494],subDrop:[.05,.071,.1],delim1:[2.39,1.7,1.98],delim2:[1.01,1.157,1.42],axisHeight:[.25,.25,.25],defaultRuleThickness:[.04,.049,.049],bigOpSpacing1:[.111,.111,.111],bigOpSpacing2:[.166,.166,.166],bigOpSpacing3:[.2,.2,.2],bigOpSpacing4:[.6,.611,.611],bigOpSpacing5:[.1,.143,.143],sqrtRuleThickness:[.04,.04,.04],ptPerEm:[10,10,10],doubleRuleSep:[.2,.2,.2],arrayRuleWidth:[.04,.04,.04],fboxsep:[.3,.3,.3],fboxrule:[.04,.04,.04]},lz={\u00C5:"A",\u00D0:"D",\u00DE:"o",\u00E5:"a",\u00F0:"d",\u00FE:"o",\u0410:"A",\u0411:"B",\u0412:"B",\u0413:"F",\u0414:"A",\u0415:"E",\u0416:"K",\u0417:"3",\u0418:"N",\u0419:"N",\u041A:"K",\u041B:"N",\u041C:"M",\u041D:"H",\u041E:"O",\u041F:"N",\u0420:"P",\u0421:"C",\u0422:"T",\u0423:"y",\u0424:"O",\u0425:"X",\u0426:"U",\u0427:"h",\u0428:"W",\u0429:"W",\u042A:"B",\u042B:"X",\u042C:"B",\u042D:"3",\u042E:"X",\u042F:"R",\u0430:"a",\u0431:"b",\u0432:"a",\u0433:"r",\u0434:"y",\u0435:"e",\u0436:"m",\u0437:"e",\u0438:"n",\u0439:"n",\u043A:"n",\u043B:"n",\u043C:"m",\u043D:"n",\u043E:"o",\u043F:"n",\u0440:"p",\u0441:"c",\u0442:"o",\u0443:"y",\u0444:"b",\u0445:"x",\u0446:"n",\u0447:"n",\u0448:"w",\u0449:"w",\u044A:"a",\u044B:"m",\u044C:"a",\u044D:"e",\u044E:"m",\u044F:"r"};o(Abe,"setFontMetrics");o(P7,"getCharacterMetrics");h7={};o(_be,"getGlobalMetrics");Dbe=[[1,1,1],[2,1,1],[3,1,1],[4,2,1],[5,2,1],[6,3,1],[7,4,2],[8,6,3],[9,7,6],[10,8,7],[11,10,9]],cz=[.5,.6,.7,.8,.9,1,1.2,1.44,1.728,2.074,2.488],uz=o(function(e,r){return r.size<2?e:Dbe[e-1][r.size-1]},"sizeAtStyle"),f3=class t{static{o(this,"Options")}constructor(e){this.style=void 0,this.color=void 0,this.size=void 0,this.textSize=void 0,this.phantom=void 0,this.font=void 0,this.fontFamily=void 0,this.fontWeight=void 0,this.fontShape=void 0,this.sizeMultiplier=void 0,this.maxSize=void 0,this.minRuleThickness=void 0,this._fontMetrics=void 0,this.style=e.style,this.color=e.color,this.size=e.size||t.BASESIZE,this.textSize=e.textSize||this.size,this.phantom=!!e.phantom,this.font=e.font||"",this.fontFamily=e.fontFamily||"",this.fontWeight=e.fontWeight||"",this.fontShape=e.fontShape||"",this.sizeMultiplier=cz[this.size-1],this.maxSize=e.maxSize,this.minRuleThickness=e.minRuleThickness,this._fontMetrics=void 0}extend(e){var r={style:this.style,size:this.size,textSize:this.textSize,color:this.color,phantom:this.phantom,font:this.font,fontFamily:this.fontFamily,fontWeight:this.fontWeight,fontShape:this.fontShape,maxSize:this.maxSize,minRuleThickness:this.minRuleThickness};for(var n in e)e.hasOwnProperty(n)&&(r[n]=e[n]);return new t(r)}havingStyle(e){return this.style===e?this:this.extend({style:e,size:uz(this.textSize,e)})}havingCrampedStyle(){return this.havingStyle(this.style.cramp())}havingSize(e){return this.size===e&&this.textSize===e?this:this.extend({style:this.style.text(),size:e,textSize:e,sizeMultiplier:cz[e-1]})}havingBaseStyle(e){e=e||this.style.text();var r=uz(t.BASESIZE,e);return this.size===r&&this.textSize===t.BASESIZE&&this.style===e?this:this.extend({style:e,size:r})}havingBaseSizing(){var e;switch(this.style.id){case 4:case 5:e=3;break;case 6:case 7:e=1;break;default:e=6}return this.extend({style:this.style.text(),size:e})}withColor(e){return this.extend({color:e})}withPhantom(){return this.extend({phantom:!0})}withFont(e){return this.extend({font:e})}withTextFontFamily(e){return this.extend({fontFamily:e,font:""})}withTextFontWeight(e){return this.extend({fontWeight:e,font:""})}withTextFontShape(e){return this.extend({fontShape:e,font:""})}sizingClasses(e){return e.size!==this.size?["sizing","reset-size"+e.size,"size"+this.size]:[]}baseSizingClasses(){return this.size!==t.BASESIZE?["sizing","reset-size"+this.size,"size"+t.BASESIZE]:[]}fontMetrics(){return this._fontMetrics||(this._fontMetrics=_be(this.size)),this._fontMetrics}getColor(){return this.phantom?"transparent":this.color}};f3.BASESIZE=6;E7={pt:1,mm:7227/2540,cm:7227/254,in:72.27,bp:803/800,pc:12,dd:1238/1157,cc:14856/1157,nd:685/642,nc:1370/107,sp:1/65536,px:803/800},Lbe={ex:!0,em:!0,mu:!0},zz=o(function(e){return typeof e!="string"&&(e=e.unit),e in E7||e in Lbe||e==="ex"},"validUnit"),ti=o(function(e,r){var n;if(e.unit in E7)n=E7[e.unit]/r.fontMetrics().ptPerEm/r.sizeMultiplier;else if(e.unit==="mu")n=r.fontMetrics().cssEmPerMu;else{var i;if(r.style.isTight()?i=r.havingStyle(r.style.text()):i=r,e.unit==="ex")n=i.fontMetrics().xHeight;else if(e.unit==="em")n=i.fontMetrics().quad;else throw new gt("Invalid unit: '"+e.unit+"'");i!==r&&(n*=i.sizeMultiplier/r.sizeMultiplier)}return Math.min(e.number*n,r.maxSize)},"calculateSize"),kt=o(function(e){return+e.toFixed(4)+"em"},"makeEm"),fh=o(function(e){return e.filter(r=>r).join(" ")},"createClass"),Gz=o(function(e,r,n){if(this.classes=e||[],this.attributes={},this.height=0,this.depth=0,this.maxFontSize=0,this.style=n||{},r){r.style.isTight()&&this.classes.push("mtight");var i=r.getColor();i&&(this.style.color=i)}},"initNode"),Vz=o(function(e){var r=document.createElement(e);r.className=fh(this.classes);for(var n in this.style)this.style.hasOwnProperty(n)&&(r.style[n]=this.style[n]);for(var i in this.attributes)this.attributes.hasOwnProperty(i)&&r.setAttribute(i,this.attributes[i]);for(var a=0;a<this.children.length;a++)r.appendChild(this.children[a].toNode());return r},"toNode"),Uz=o(function(e){var r="<"+e;this.classes.length&&(r+=' class="'+Jt.escape(fh(this.classes))+'"');var n="";for(var i in this.style)this.style.hasOwnProperty(i)&&(n+=Jt.hyphenate(i)+":"+this.style[i]+";");n&&(r+=' style="'+Jt.escape(n)+'"');for(var a in this.attributes)this.attributes.hasOwnProperty(a)&&(r+=" "+a+'="'+Jt.escape(this.attributes[a])+'"');r+=">";for(var s=0;s<this.children.length;s++)r+=this.children[s].toMarkup();return r+="</"+e+">",r},"toMarkup"),td=class{static{o(this,"Span")}constructor(e,r,n,i){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.width=void 0,this.maxFontSize=void 0,this.style=void 0,Gz.call(this,e,n,i),this.children=r||[]}setAttribute(e,r){this.attributes[e]=r}hasClass(e){return Jt.contains(this.classes,e)}toNode(){return Vz.call(this,"span")}toMarkup(){return Uz.call(this,"span")}},Vy=class{static{o(this,"Anchor")}constructor(e,r,n,i){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,Gz.call(this,r,i),this.children=n||[],this.setAttribute("href",e)}setAttribute(e,r){this.attributes[e]=r}hasClass(e){return Jt.contains(this.classes,e)}toNode(){return Vz.call(this,"a")}toMarkup(){return Uz.call(this,"a")}},S7=class{static{o(this,"Img")}constructor(e,r,n){this.src=void 0,this.alt=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.alt=r,this.src=e,this.classes=["mord"],this.style=n}hasClass(e){return Jt.contains(this.classes,e)}toNode(){var e=document.createElement("img");e.src=this.src,e.alt=this.alt,e.className="mord";for(var r in this.style)this.style.hasOwnProperty(r)&&(e.style[r]=this.style[r]);return e}toMarkup(){var e='<img src="'+Jt.escape(this.src)+'"'+(' alt="'+Jt.escape(this.alt)+'"'),r="";for(var n in this.style)this.style.hasOwnProperty(n)&&(r+=Jt.hyphenate(n)+":"+this.style[n]+";");return r&&(e+=' style="'+Jt.escape(r)+'"'),e+="'/>",e}},Rbe={\u00EE:"\u0131\u0302",\u00EF:"\u0131\u0308",\u00ED:"\u0131\u0301",\u00EC:"\u0131\u0300"},Ts=class{static{o(this,"SymbolNode")}constructor(e,r,n,i,a,s,l,u){this.text=void 0,this.height=void 0,this.depth=void 0,this.italic=void 0,this.skew=void 0,this.width=void 0,this.maxFontSize=void 0,this.classes=void 0,this.style=void 0,this.text=e,this.height=r||0,this.depth=n||0,this.italic=i||0,this.skew=a||0,this.width=s||0,this.classes=l||[],this.style=u||{},this.maxFontSize=0;var h=gbe(this.text.charCodeAt(0));h&&this.classes.push(h+"_fallback"),/[îïíì]/.test(this.text)&&(this.text=Rbe[this.text])}hasClass(e){return Jt.contains(this.classes,e)}toNode(){var e=document.createTextNode(this.text),r=null;this.italic>0&&(r=document.createElement("span"),r.style.marginRight=kt(this.italic)),this.classes.length>0&&(r=r||document.createElement("span"),r.className=fh(this.classes));for(var n in this.style)this.style.hasOwnProperty(n)&&(r=r||document.createElement("span"),r.style[n]=this.style[n]);return r?(r.appendChild(e),r):e}toMarkup(){var e=!1,r="<span";this.classes.length&&(e=!0,r+=' class="',r+=Jt.escape(fh(this.classes)),r+='"');var n="";this.italic>0&&(n+="margin-right:"+this.italic+"em;");for(var i in this.style)this.style.hasOwnProperty(i)&&(n+=Jt.hyphenate(i)+":"+this.style[i]+";");n&&(e=!0,r+=' style="'+Jt.escape(n)+'"');var a=Jt.escape(this.text);return e?(r+=">",r+=a,r+="</span>",r):a}},ll=class{static{o(this,"SvgNode")}constructor(e,r){this.children=void 0,this.attributes=void 0,this.children=e||[],this.attributes=r||{}}toNode(){var e="http://www.w3.org/2000/svg",r=document.createElementNS(e,"svg");for(var n in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,n)&&r.setAttribute(n,this.attributes[n]);for(var i=0;i<this.children.length;i++)r.appendChild(this.children[i].toNode());return r}toMarkup(){var e='<svg xmlns="http://www.w3.org/2000/svg"';for(var r in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,r)&&(e+=" "+r+'="'+Jt.escape(this.attributes[r])+'"');e+=">";for(var n=0;n<this.children.length;n++)e+=this.children[n].toMarkup();return e+="</svg>",e}},Kl=class{static{o(this,"PathNode")}constructor(e,r){this.pathName=void 0,this.alternate=void 0,this.pathName=e,this.alternate=r}toNode(){var e="http://www.w3.org/2000/svg",r=document.createElementNS(e,"path");return this.alternate?r.setAttribute("d",this.alternate):r.setAttribute("d",oz[this.pathName]),r}toMarkup(){return this.alternate?'<path d="'+Jt.escape(this.alternate)+'"/>':'<path d="'+Jt.escape(oz[this.pathName])+'"/>'}},Uy=class{static{o(this,"LineNode")}constructor(e){this.attributes=void 0,this.attributes=e||{}}toNode(){var e="http://www.w3.org/2000/svg",r=document.createElementNS(e,"line");for(var n in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,n)&&r.setAttribute(n,this.attributes[n]);return r}toMarkup(){var e="<line";for(var r in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,r)&&(e+=" "+r+'="'+Jt.escape(this.attributes[r])+'"');return e+="/>",e}};o(hz,"assertSymbolDomNode");o(Nbe,"assertSpan");Mbe={bin:1,close:1,inner:1,open:1,punct:1,rel:1},Ibe={"accent-token":1,mathord:1,"op-token":1,spacing:1,textord:1},An={math:{},text:{}};o(G,"defineSymbol");U="math",it="text",ee="main",ke="ams",Vn="accent-token",It="bin",Za="close",p0="inner",er="mathord",ki="op-token",js="open",x3="punct",Ee="rel",uu="spacing",Le="textord";G(U,ee,Ee,"\u2261","\\equiv",!0);G(U,ee,Ee,"\u227A","\\prec",!0);G(U,ee,Ee,"\u227B","\\succ",!0);G(U,ee,Ee,"\u223C","\\sim",!0);G(U,ee,Ee,"\u22A5","\\perp");G(U,ee,Ee,"\u2AAF","\\preceq",!0);G(U,ee,Ee,"\u2AB0","\\succeq",!0);G(U,ee,Ee,"\u2243","\\simeq",!0);G(U,ee,Ee,"\u2223","\\mid",!0);G(U,ee,Ee,"\u226A","\\ll",!0);G(U,ee,Ee,"\u226B","\\gg",!0);G(U,ee,Ee,"\u224D","\\asymp",!0);G(U,ee,Ee,"\u2225","\\parallel");G(U,ee,Ee,"\u22C8","\\bowtie",!0);G(U,ee,Ee,"\u2323","\\smile",!0);G(U,ee,Ee,"\u2291","\\sqsubseteq",!0);G(U,ee,Ee,"\u2292","\\sqsupseteq",!0);G(U,ee,Ee,"\u2250","\\doteq",!0);G(U,ee,Ee,"\u2322","\\frown",!0);G(U,ee,Ee,"\u220B","\\ni",!0);G(U,ee,Ee,"\u221D","\\propto",!0);G(U,ee,Ee,"\u22A2","\\vdash",!0);G(U,ee,Ee,"\u22A3","\\dashv",!0);G(U,ee,Ee,"\u220B","\\owns");G(U,ee,x3,".","\\ldotp");G(U,ee,x3,"\u22C5","\\cdotp");G(U,ee,Le,"#","\\#");G(it,ee,Le,"#","\\#");G(U,ee,Le,"&","\\&");G(it,ee,Le,"&","\\&");G(U,ee,Le,"\u2135","\\aleph",!0);G(U,ee,Le,"\u2200","\\forall",!0);G(U,ee,Le,"\u210F","\\hbar",!0);G(U,ee,Le,"\u2203","\\exists",!0);G(U,ee,Le,"\u2207","\\nabla",!0);G(U,ee,Le,"\u266D","\\flat",!0);G(U,ee,Le,"\u2113","\\ell",!0);G(U,ee,Le,"\u266E","\\natural",!0);G(U,ee,Le,"\u2663","\\clubsuit",!0);G(U,ee,Le,"\u2118","\\wp",!0);G(U,ee,Le,"\u266F","\\sharp",!0);G(U,ee,Le,"\u2662","\\diamondsuit",!0);G(U,ee,Le,"\u211C","\\Re",!0);G(U,ee,Le,"\u2661","\\heartsuit",!0);G(U,ee,Le,"\u2111","\\Im",!0);G(U,ee,Le,"\u2660","\\spadesuit",!0);G(U,ee,Le,"\xA7","\\S",!0);G(it,ee,Le,"\xA7","\\S");G(U,ee,Le,"\xB6","\\P",!0);G(it,ee,Le,"\xB6","\\P");G(U,ee,Le,"\u2020","\\dag");G(it,ee,Le,"\u2020","\\dag");G(it,ee,Le,"\u2020","\\textdagger");G(U,ee,Le,"\u2021","\\ddag");G(it,ee,Le,"\u2021","\\ddag");G(it,ee,Le,"\u2021","\\textdaggerdbl");G(U,ee,Za,"\u23B1","\\rmoustache",!0);G(U,ee,js,"\u23B0","\\lmoustache",!0);G(U,ee,Za,"\u27EF","\\rgroup",!0);G(U,ee,js,"\u27EE","\\lgroup",!0);G(U,ee,It,"\u2213","\\mp",!0);G(U,ee,It,"\u2296","\\ominus",!0);G(U,ee,It,"\u228E","\\uplus",!0);G(U,ee,It,"\u2293","\\sqcap",!0);G(U,ee,It,"\u2217","\\ast");G(U,ee,It,"\u2294","\\sqcup",!0);G(U,ee,It,"\u25EF","\\bigcirc",!0);G(U,ee,It,"\u2219","\\bullet",!0);G(U,ee,It,"\u2021","\\ddagger");G(U,ee,It,"\u2240","\\wr",!0);G(U,ee,It,"\u2A3F","\\amalg");G(U,ee,It,"&","\\And");G(U,ee,Ee,"\u27F5","\\longleftarrow",!0);G(U,ee,Ee,"\u21D0","\\Leftarrow",!0);G(U,ee,Ee,"\u27F8","\\Longleftarrow",!0);G(U,ee,Ee,"\u27F6","\\longrightarrow",!0);G(U,ee,Ee,"\u21D2","\\Rightarrow",!0);G(U,ee,Ee,"\u27F9","\\Longrightarrow",!0);G(U,ee,Ee,"\u2194","\\leftrightarrow",!0);G(U,ee,Ee,"\u27F7","\\longleftrightarrow",!0);G(U,ee,Ee,"\u21D4","\\Leftrightarrow",!0);G(U,ee,Ee,"\u27FA","\\Longleftrightarrow",!0);G(U,ee,Ee,"\u21A6","\\mapsto",!0);G(U,ee,Ee,"\u27FC","\\longmapsto",!0);G(U,ee,Ee,"\u2197","\\nearrow",!0);G(U,ee,Ee,"\u21A9","\\hookleftarrow",!0);G(U,ee,Ee,"\u21AA","\\hookrightarrow",!0);G(U,ee,Ee,"\u2198","\\searrow",!0);G(U,ee,Ee,"\u21BC","\\leftharpoonup",!0);G(U,ee,Ee,"\u21C0","\\rightharpoonup",!0);G(U,ee,Ee,"\u2199","\\swarrow",!0);G(U,ee,Ee,"\u21BD","\\leftharpoondown",!0);G(U,ee,Ee,"\u21C1","\\rightharpoondown",!0);G(U,ee,Ee,"\u2196","\\nwarrow",!0);G(U,ee,Ee,"\u21CC","\\rightleftharpoons",!0);G(U,ke,Ee,"\u226E","\\nless",!0);G(U,ke,Ee,"\uE010","\\@nleqslant");G(U,ke,Ee,"\uE011","\\@nleqq");G(U,ke,Ee,"\u2A87","\\lneq",!0);G(U,ke,Ee,"\u2268","\\lneqq",!0);G(U,ke,Ee,"\uE00C","\\@lvertneqq");G(U,ke,Ee,"\u22E6","\\lnsim",!0);G(U,ke,Ee,"\u2A89","\\lnapprox",!0);G(U,ke,Ee,"\u2280","\\nprec",!0);G(U,ke,Ee,"\u22E0","\\npreceq",!0);G(U,ke,Ee,"\u22E8","\\precnsim",!0);G(U,ke,Ee,"\u2AB9","\\precnapprox",!0);G(U,ke,Ee,"\u2241","\\nsim",!0);G(U,ke,Ee,"\uE006","\\@nshortmid");G(U,ke,Ee,"\u2224","\\nmid",!0);G(U,ke,Ee,"\u22AC","\\nvdash",!0);G(U,ke,Ee,"\u22AD","\\nvDash",!0);G(U,ke,Ee,"\u22EA","\\ntriangleleft");G(U,ke,Ee,"\u22EC","\\ntrianglelefteq",!0);G(U,ke,Ee,"\u228A","\\subsetneq",!0);G(U,ke,Ee,"\uE01A","\\@varsubsetneq");G(U,ke,Ee,"\u2ACB","\\subsetneqq",!0);G(U,ke,Ee,"\uE017","\\@varsubsetneqq");G(U,ke,Ee,"\u226F","\\ngtr",!0);G(U,ke,Ee,"\uE00F","\\@ngeqslant");G(U,ke,Ee,"\uE00E","\\@ngeqq");G(U,ke,Ee,"\u2A88","\\gneq",!0);G(U,ke,Ee,"\u2269","\\gneqq",!0);G(U,ke,Ee,"\uE00D","\\@gvertneqq");G(U,ke,Ee,"\u22E7","\\gnsim",!0);G(U,ke,Ee,"\u2A8A","\\gnapprox",!0);G(U,ke,Ee,"\u2281","\\nsucc",!0);G(U,ke,Ee,"\u22E1","\\nsucceq",!0);G(U,ke,Ee,"\u22E9","\\succnsim",!0);G(U,ke,Ee,"\u2ABA","\\succnapprox",!0);G(U,ke,Ee,"\u2246","\\ncong",!0);G(U,ke,Ee,"\uE007","\\@nshortparallel");G(U,ke,Ee,"\u2226","\\nparallel",!0);G(U,ke,Ee,"\u22AF","\\nVDash",!0);G(U,ke,Ee,"\u22EB","\\ntriangleright");G(U,ke,Ee,"\u22ED","\\ntrianglerighteq",!0);G(U,ke,Ee,"\uE018","\\@nsupseteqq");G(U,ke,Ee,"\u228B","\\supsetneq",!0);G(U,ke,Ee,"\uE01B","\\@varsupsetneq");G(U,ke,Ee,"\u2ACC","\\supsetneqq",!0);G(U,ke,Ee,"\uE019","\\@varsupsetneqq");G(U,ke,Ee,"\u22AE","\\nVdash",!0);G(U,ke,Ee,"\u2AB5","\\precneqq",!0);G(U,ke,Ee,"\u2AB6","\\succneqq",!0);G(U,ke,Ee,"\uE016","\\@nsubseteqq");G(U,ke,It,"\u22B4","\\unlhd");G(U,ke,It,"\u22B5","\\unrhd");G(U,ke,Ee,"\u219A","\\nleftarrow",!0);G(U,ke,Ee,"\u219B","\\nrightarrow",!0);G(U,ke,Ee,"\u21CD","\\nLeftarrow",!0);G(U,ke,Ee,"\u21CF","\\nRightarrow",!0);G(U,ke,Ee,"\u21AE","\\nleftrightarrow",!0);G(U,ke,Ee,"\u21CE","\\nLeftrightarrow",!0);G(U,ke,Ee,"\u25B3","\\vartriangle");G(U,ke,Le,"\u210F","\\hslash");G(U,ke,Le,"\u25BD","\\triangledown");G(U,ke,Le,"\u25CA","\\lozenge");G(U,ke,Le,"\u24C8","\\circledS");G(U,ke,Le,"\xAE","\\circledR");G(it,ke,Le,"\xAE","\\circledR");G(U,ke,Le,"\u2221","\\measuredangle",!0);G(U,ke,Le,"\u2204","\\nexists");G(U,ke,Le,"\u2127","\\mho");G(U,ke,Le,"\u2132","\\Finv",!0);G(U,ke,Le,"\u2141","\\Game",!0);G(U,ke,Le,"\u2035","\\backprime");G(U,ke,Le,"\u25B2","\\blacktriangle");G(U,ke,Le,"\u25BC","\\blacktriangledown");G(U,ke,Le,"\u25A0","\\blacksquare");G(U,ke,Le,"\u29EB","\\blacklozenge");G(U,ke,Le,"\u2605","\\bigstar");G(U,ke,Le,"\u2222","\\sphericalangle",!0);G(U,ke,Le,"\u2201","\\complement",!0);G(U,ke,Le,"\xF0","\\eth",!0);G(it,ee,Le,"\xF0","\xF0");G(U,ke,Le,"\u2571","\\diagup");G(U,ke,Le,"\u2572","\\diagdown");G(U,ke,Le,"\u25A1","\\square");G(U,ke,Le,"\u25A1","\\Box");G(U,ke,Le,"\u25CA","\\Diamond");G(U,ke,Le,"\xA5","\\yen",!0);G(it,ke,Le,"\xA5","\\yen",!0);G(U,ke,Le,"\u2713","\\checkmark",!0);G(it,ke,Le,"\u2713","\\checkmark");G(U,ke,Le,"\u2136","\\beth",!0);G(U,ke,Le,"\u2138","\\daleth",!0);G(U,ke,Le,"\u2137","\\gimel",!0);G(U,ke,Le,"\u03DD","\\digamma",!0);G(U,ke,Le,"\u03F0","\\varkappa");G(U,ke,js,"\u250C","\\@ulcorner",!0);G(U,ke,Za,"\u2510","\\@urcorner",!0);G(U,ke,js,"\u2514","\\@llcorner",!0);G(U,ke,Za,"\u2518","\\@lrcorner",!0);G(U,ke,Ee,"\u2266","\\leqq",!0);G(U,ke,Ee,"\u2A7D","\\leqslant",!0);G(U,ke,Ee,"\u2A95","\\eqslantless",!0);G(U,ke,Ee,"\u2272","\\lesssim",!0);G(U,ke,Ee,"\u2A85","\\lessapprox",!0);G(U,ke,Ee,"\u224A","\\approxeq",!0);G(U,ke,It,"\u22D6","\\lessdot");G(U,ke,Ee,"\u22D8","\\lll",!0);G(U,ke,Ee,"\u2276","\\lessgtr",!0);G(U,ke,Ee,"\u22DA","\\lesseqgtr",!0);G(U,ke,Ee,"\u2A8B","\\lesseqqgtr",!0);G(U,ke,Ee,"\u2251","\\doteqdot");G(U,ke,Ee,"\u2253","\\risingdotseq",!0);G(U,ke,Ee,"\u2252","\\fallingdotseq",!0);G(U,ke,Ee,"\u223D","\\backsim",!0);G(U,ke,Ee,"\u22CD","\\backsimeq",!0);G(U,ke,Ee,"\u2AC5","\\subseteqq",!0);G(U,ke,Ee,"\u22D0","\\Subset",!0);G(U,ke,Ee,"\u228F","\\sqsubset",!0);G(U,ke,Ee,"\u227C","\\preccurlyeq",!0);G(U,ke,Ee,"\u22DE","\\curlyeqprec",!0);G(U,ke,Ee,"\u227E","\\precsim",!0);G(U,ke,Ee,"\u2AB7","\\precapprox",!0);G(U,ke,Ee,"\u22B2","\\vartriangleleft");G(U,ke,Ee,"\u22B4","\\trianglelefteq");G(U,ke,Ee,"\u22A8","\\vDash",!0);G(U,ke,Ee,"\u22AA","\\Vvdash",!0);G(U,ke,Ee,"\u2323","\\smallsmile");G(U,ke,Ee,"\u2322","\\smallfrown");G(U,ke,Ee,"\u224F","\\bumpeq",!0);G(U,ke,Ee,"\u224E","\\Bumpeq",!0);G(U,ke,Ee,"\u2267","\\geqq",!0);G(U,ke,Ee,"\u2A7E","\\geqslant",!0);G(U,ke,Ee,"\u2A96","\\eqslantgtr",!0);G(U,ke,Ee,"\u2273","\\gtrsim",!0);G(U,ke,Ee,"\u2A86","\\gtrapprox",!0);G(U,ke,It,"\u22D7","\\gtrdot");G(U,ke,Ee,"\u22D9","\\ggg",!0);G(U,ke,Ee,"\u2277","\\gtrless",!0);G(U,ke,Ee,"\u22DB","\\gtreqless",!0);G(U,ke,Ee,"\u2A8C","\\gtreqqless",!0);G(U,ke,Ee,"\u2256","\\eqcirc",!0);G(U,ke,Ee,"\u2257","\\circeq",!0);G(U,ke,Ee,"\u225C","\\triangleq",!0);G(U,ke,Ee,"\u223C","\\thicksim");G(U,ke,Ee,"\u2248","\\thickapprox");G(U,ke,Ee,"\u2AC6","\\supseteqq",!0);G(U,ke,Ee,"\u22D1","\\Supset",!0);G(U,ke,Ee,"\u2290","\\sqsupset",!0);G(U,ke,Ee,"\u227D","\\succcurlyeq",!0);G(U,ke,Ee,"\u22DF","\\curlyeqsucc",!0);G(U,ke,Ee,"\u227F","\\succsim",!0);G(U,ke,Ee,"\u2AB8","\\succapprox",!0);G(U,ke,Ee,"\u22B3","\\vartriangleright");G(U,ke,Ee,"\u22B5","\\trianglerighteq");G(U,ke,Ee,"\u22A9","\\Vdash",!0);G(U,ke,Ee,"\u2223","\\shortmid");G(U,ke,Ee,"\u2225","\\shortparallel");G(U,ke,Ee,"\u226C","\\between",!0);G(U,ke,Ee,"\u22D4","\\pitchfork",!0);G(U,ke,Ee,"\u221D","\\varpropto");G(U,ke,Ee,"\u25C0","\\blacktriangleleft");G(U,ke,Ee,"\u2234","\\therefore",!0);G(U,ke,Ee,"\u220D","\\backepsilon");G(U,ke,Ee,"\u25B6","\\blacktriangleright");G(U,ke,Ee,"\u2235","\\because",!0);G(U,ke,Ee,"\u22D8","\\llless");G(U,ke,Ee,"\u22D9","\\gggtr");G(U,ke,It,"\u22B2","\\lhd");G(U,ke,It,"\u22B3","\\rhd");G(U,ke,Ee,"\u2242","\\eqsim",!0);G(U,ee,Ee,"\u22C8","\\Join");G(U,ke,Ee,"\u2251","\\Doteq",!0);G(U,ke,It,"\u2214","\\dotplus",!0);G(U,ke,It,"\u2216","\\smallsetminus");G(U,ke,It,"\u22D2","\\Cap",!0);G(U,ke,It,"\u22D3","\\Cup",!0);G(U,ke,It,"\u2A5E","\\doublebarwedge",!0);G(U,ke,It,"\u229F","\\boxminus",!0);G(U,ke,It,"\u229E","\\boxplus",!0);G(U,ke,It,"\u22C7","\\divideontimes",!0);G(U,ke,It,"\u22C9","\\ltimes",!0);G(U,ke,It,"\u22CA","\\rtimes",!0);G(U,ke,It,"\u22CB","\\leftthreetimes",!0);G(U,ke,It,"\u22CC","\\rightthreetimes",!0);G(U,ke,It,"\u22CF","\\curlywedge",!0);G(U,ke,It,"\u22CE","\\curlyvee",!0);G(U,ke,It,"\u229D","\\circleddash",!0);G(U,ke,It,"\u229B","\\circledast",!0);G(U,ke,It,"\u22C5","\\centerdot");G(U,ke,It,"\u22BA","\\intercal",!0);G(U,ke,It,"\u22D2","\\doublecap");G(U,ke,It,"\u22D3","\\doublecup");G(U,ke,It,"\u22A0","\\boxtimes",!0);G(U,ke,Ee,"\u21E2","\\dashrightarrow",!0);G(U,ke,Ee,"\u21E0","\\dashleftarrow",!0);G(U,ke,Ee,"\u21C7","\\leftleftarrows",!0);G(U,ke,Ee,"\u21C6","\\leftrightarrows",!0);G(U,ke,Ee,"\u21DA","\\Lleftarrow",!0);G(U,ke,Ee,"\u219E","\\twoheadleftarrow",!0);G(U,ke,Ee,"\u21A2","\\leftarrowtail",!0);G(U,ke,Ee,"\u21AB","\\looparrowleft",!0);G(U,ke,Ee,"\u21CB","\\leftrightharpoons",!0);G(U,ke,Ee,"\u21B6","\\curvearrowleft",!0);G(U,ke,Ee,"\u21BA","\\circlearrowleft",!0);G(U,ke,Ee,"\u21B0","\\Lsh",!0);G(U,ke,Ee,"\u21C8","\\upuparrows",!0);G(U,ke,Ee,"\u21BF","\\upharpoonleft",!0);G(U,ke,Ee,"\u21C3","\\downharpoonleft",!0);G(U,ee,Ee,"\u22B6","\\origof",!0);G(U,ee,Ee,"\u22B7","\\imageof",!0);G(U,ke,Ee,"\u22B8","\\multimap",!0);G(U,ke,Ee,"\u21AD","\\leftrightsquigarrow",!0);G(U,ke,Ee,"\u21C9","\\rightrightarrows",!0);G(U,ke,Ee,"\u21C4","\\rightleftarrows",!0);G(U,ke,Ee,"\u21A0","\\twoheadrightarrow",!0);G(U,ke,Ee,"\u21A3","\\rightarrowtail",!0);G(U,ke,Ee,"\u21AC","\\looparrowright",!0);G(U,ke,Ee,"\u21B7","\\curvearrowright",!0);G(U,ke,Ee,"\u21BB","\\circlearrowright",!0);G(U,ke,Ee,"\u21B1","\\Rsh",!0);G(U,ke,Ee,"\u21CA","\\downdownarrows",!0);G(U,ke,Ee,"\u21BE","\\upharpoonright",!0);G(U,ke,Ee,"\u21C2","\\downharpoonright",!0);G(U,ke,Ee,"\u21DD","\\rightsquigarrow",!0);G(U,ke,Ee,"\u21DD","\\leadsto");G(U,ke,Ee,"\u21DB","\\Rrightarrow",!0);G(U,ke,Ee,"\u21BE","\\restriction");G(U,ee,Le,"\u2018","`");G(U,ee,Le,"$","\\$");G(it,ee,Le,"$","\\$");G(it,ee,Le,"$","\\textdollar");G(U,ee,Le,"%","\\%");G(it,ee,Le,"%","\\%");G(U,ee,Le,"_","\\_");G(it,ee,Le,"_","\\_");G(it,ee,Le,"_","\\textunderscore");G(U,ee,Le,"\u2220","\\angle",!0);G(U,ee,Le,"\u221E","\\infty",!0);G(U,ee,Le,"\u2032","\\prime");G(U,ee,Le,"\u25B3","\\triangle");G(U,ee,Le,"\u0393","\\Gamma",!0);G(U,ee,Le,"\u0394","\\Delta",!0);G(U,ee,Le,"\u0398","\\Theta",!0);G(U,ee,Le,"\u039B","\\Lambda",!0);G(U,ee,Le,"\u039E","\\Xi",!0);G(U,ee,Le,"\u03A0","\\Pi",!0);G(U,ee,Le,"\u03A3","\\Sigma",!0);G(U,ee,Le,"\u03A5","\\Upsilon",!0);G(U,ee,Le,"\u03A6","\\Phi",!0);G(U,ee,Le,"\u03A8","\\Psi",!0);G(U,ee,Le,"\u03A9","\\Omega",!0);G(U,ee,Le,"A","\u0391");G(U,ee,Le,"B","\u0392");G(U,ee,Le,"E","\u0395");G(U,ee,Le,"Z","\u0396");G(U,ee,Le,"H","\u0397");G(U,ee,Le,"I","\u0399");G(U,ee,Le,"K","\u039A");G(U,ee,Le,"M","\u039C");G(U,ee,Le,"N","\u039D");G(U,ee,Le,"O","\u039F");G(U,ee,Le,"P","\u03A1");G(U,ee,Le,"T","\u03A4");G(U,ee,Le,"X","\u03A7");G(U,ee,Le,"\xAC","\\neg",!0);G(U,ee,Le,"\xAC","\\lnot");G(U,ee,Le,"\u22A4","\\top");G(U,ee,Le,"\u22A5","\\bot");G(U,ee,Le,"\u2205","\\emptyset");G(U,ke,Le,"\u2205","\\varnothing");G(U,ee,er,"\u03B1","\\alpha",!0);G(U,ee,er,"\u03B2","\\beta",!0);G(U,ee,er,"\u03B3","\\gamma",!0);G(U,ee,er,"\u03B4","\\delta",!0);G(U,ee,er,"\u03F5","\\epsilon",!0);G(U,ee,er,"\u03B6","\\zeta",!0);G(U,ee,er,"\u03B7","\\eta",!0);G(U,ee,er,"\u03B8","\\theta",!0);G(U,ee,er,"\u03B9","\\iota",!0);G(U,ee,er,"\u03BA","\\kappa",!0);G(U,ee,er,"\u03BB","\\lambda",!0);G(U,ee,er,"\u03BC","\\mu",!0);G(U,ee,er,"\u03BD","\\nu",!0);G(U,ee,er,"\u03BE","\\xi",!0);G(U,ee,er,"\u03BF","\\omicron",!0);G(U,ee,er,"\u03C0","\\pi",!0);G(U,ee,er,"\u03C1","\\rho",!0);G(U,ee,er,"\u03C3","\\sigma",!0);G(U,ee,er,"\u03C4","\\tau",!0);G(U,ee,er,"\u03C5","\\upsilon",!0);G(U,ee,er,"\u03D5","\\phi",!0);G(U,ee,er,"\u03C7","\\chi",!0);G(U,ee,er,"\u03C8","\\psi",!0);G(U,ee,er,"\u03C9","\\omega",!0);G(U,ee,er,"\u03B5","\\varepsilon",!0);G(U,ee,er,"\u03D1","\\vartheta",!0);G(U,ee,er,"\u03D6","\\varpi",!0);G(U,ee,er,"\u03F1","\\varrho",!0);G(U,ee,er,"\u03C2","\\varsigma",!0);G(U,ee,er,"\u03C6","\\varphi",!0);G(U,ee,It,"\u2217","*",!0);G(U,ee,It,"+","+");G(U,ee,It,"\u2212","-",!0);G(U,ee,It,"\u22C5","\\cdot",!0);G(U,ee,It,"\u2218","\\circ",!0);G(U,ee,It,"\xF7","\\div",!0);G(U,ee,It,"\xB1","\\pm",!0);G(U,ee,It,"\xD7","\\times",!0);G(U,ee,It,"\u2229","\\cap",!0);G(U,ee,It,"\u222A","\\cup",!0);G(U,ee,It,"\u2216","\\setminus",!0);G(U,ee,It,"\u2227","\\land");G(U,ee,It,"\u2228","\\lor");G(U,ee,It,"\u2227","\\wedge",!0);G(U,ee,It,"\u2228","\\vee",!0);G(U,ee,Le,"\u221A","\\surd");G(U,ee,js,"\u27E8","\\langle",!0);G(U,ee,js,"\u2223","\\lvert");G(U,ee,js,"\u2225","\\lVert");G(U,ee,Za,"?","?");G(U,ee,Za,"!","!");G(U,ee,Za,"\u27E9","\\rangle",!0);G(U,ee,Za,"\u2223","\\rvert");G(U,ee,Za,"\u2225","\\rVert");G(U,ee,Ee,"=","=");G(U,ee,Ee,":",":");G(U,ee,Ee,"\u2248","\\approx",!0);G(U,ee,Ee,"\u2245","\\cong",!0);G(U,ee,Ee,"\u2265","\\ge");G(U,ee,Ee,"\u2265","\\geq",!0);G(U,ee,Ee,"\u2190","\\gets");G(U,ee,Ee,">","\\gt",!0);G(U,ee,Ee,"\u2208","\\in",!0);G(U,ee,Ee,"\uE020","\\@not");G(U,ee,Ee,"\u2282","\\subset",!0);G(U,ee,Ee,"\u2283","\\supset",!0);G(U,ee,Ee,"\u2286","\\subseteq",!0);G(U,ee,Ee,"\u2287","\\supseteq",!0);G(U,ke,Ee,"\u2288","\\nsubseteq",!0);G(U,ke,Ee,"\u2289","\\nsupseteq",!0);G(U,ee,Ee,"\u22A8","\\models");G(U,ee,Ee,"\u2190","\\leftarrow",!0);G(U,ee,Ee,"\u2264","\\le");G(U,ee,Ee,"\u2264","\\leq",!0);G(U,ee,Ee,"<","\\lt",!0);G(U,ee,Ee,"\u2192","\\rightarrow",!0);G(U,ee,Ee,"\u2192","\\to");G(U,ke,Ee,"\u2271","\\ngeq",!0);G(U,ke,Ee,"\u2270","\\nleq",!0);G(U,ee,uu,"\xA0","\\ ");G(U,ee,uu,"\xA0","\\space");G(U,ee,uu,"\xA0","\\nobreakspace");G(it,ee,uu,"\xA0","\\ ");G(it,ee,uu,"\xA0"," ");G(it,ee,uu,"\xA0","\\space");G(it,ee,uu,"\xA0","\\nobreakspace");G(U,ee,uu,null,"\\nobreak");G(U,ee,uu,null,"\\allowbreak");G(U,ee,x3,",",",");G(U,ee,x3,";",";");G(U,ke,It,"\u22BC","\\barwedge",!0);G(U,ke,It,"\u22BB","\\veebar",!0);G(U,ee,It,"\u2299","\\odot",!0);G(U,ee,It,"\u2295","\\oplus",!0);G(U,ee,It,"\u2297","\\otimes",!0);G(U,ee,Le,"\u2202","\\partial",!0);G(U,ee,It,"\u2298","\\oslash",!0);G(U,ke,It,"\u229A","\\circledcirc",!0);G(U,ke,It,"\u22A1","\\boxdot",!0);G(U,ee,It,"\u25B3","\\bigtriangleup");G(U,ee,It,"\u25BD","\\bigtriangledown");G(U,ee,It,"\u2020","\\dagger");G(U,ee,It,"\u22C4","\\diamond");G(U,ee,It,"\u22C6","\\star");G(U,ee,It,"\u25C3","\\triangleleft");G(U,ee,It,"\u25B9","\\triangleright");G(U,ee,js,"{","\\{");G(it,ee,Le,"{","\\{");G(it,ee,Le,"{","\\textbraceleft");G(U,ee,Za,"}","\\}");G(it,ee,Le,"}","\\}");G(it,ee,Le,"}","\\textbraceright");G(U,ee,js,"{","\\lbrace");G(U,ee,Za,"}","\\rbrace");G(U,ee,js,"[","\\lbrack",!0);G(it,ee,Le,"[","\\lbrack",!0);G(U,ee,Za,"]","\\rbrack",!0);G(it,ee,Le,"]","\\rbrack",!0);G(U,ee,js,"(","\\lparen",!0);G(U,ee,Za,")","\\rparen",!0);G(it,ee,Le,"<","\\textless",!0);G(it,ee,Le,">","\\textgreater",!0);G(U,ee,js,"\u230A","\\lfloor",!0);G(U,ee,Za,"\u230B","\\rfloor",!0);G(U,ee,js,"\u2308","\\lceil",!0);G(U,ee,Za,"\u2309","\\rceil",!0);G(U,ee,Le,"\\","\\backslash");G(U,ee,Le,"\u2223","|");G(U,ee,Le,"\u2223","\\vert");G(it,ee,Le,"|","\\textbar",!0);G(U,ee,Le,"\u2225","\\|");G(U,ee,Le,"\u2225","\\Vert");G(it,ee,Le,"\u2225","\\textbardbl");G(it,ee,Le,"~","\\textasciitilde");G(it,ee,Le,"\\","\\textbackslash");G(it,ee,Le,"^","\\textasciicircum");G(U,ee,Ee,"\u2191","\\uparrow",!0);G(U,ee,Ee,"\u21D1","\\Uparrow",!0);G(U,ee,Ee,"\u2193","\\downarrow",!0);G(U,ee,Ee,"\u21D3","\\Downarrow",!0);G(U,ee,Ee,"\u2195","\\updownarrow",!0);G(U,ee,Ee,"\u21D5","\\Updownarrow",!0);G(U,ee,ki,"\u2210","\\coprod");G(U,ee,ki,"\u22C1","\\bigvee");G(U,ee,ki,"\u22C0","\\bigwedge");G(U,ee,ki,"\u2A04","\\biguplus");G(U,ee,ki,"\u22C2","\\bigcap");G(U,ee,ki,"\u22C3","\\bigcup");G(U,ee,ki,"\u222B","\\int");G(U,ee,ki,"\u222B","\\intop");G(U,ee,ki,"\u222C","\\iint");G(U,ee,ki,"\u222D","\\iiint");G(U,ee,ki,"\u220F","\\prod");G(U,ee,ki,"\u2211","\\sum");G(U,ee,ki,"\u2A02","\\bigotimes");G(U,ee,ki,"\u2A01","\\bigoplus");G(U,ee,ki,"\u2A00","\\bigodot");G(U,ee,ki,"\u222E","\\oint");G(U,ee,ki,"\u222F","\\oiint");G(U,ee,ki,"\u2230","\\oiiint");G(U,ee,ki,"\u2A06","\\bigsqcup");G(U,ee,ki,"\u222B","\\smallint");G(it,ee,p0,"\u2026","\\textellipsis");G(U,ee,p0,"\u2026","\\mathellipsis");G(it,ee,p0,"\u2026","\\ldots",!0);G(U,ee,p0,"\u2026","\\ldots",!0);G(U,ee,p0,"\u22EF","\\@cdots",!0);G(U,ee,p0,"\u22F1","\\ddots",!0);G(U,ee,Le,"\u22EE","\\varvdots");G(U,ee,Vn,"\u02CA","\\acute");G(U,ee,Vn,"\u02CB","\\grave");G(U,ee,Vn,"\xA8","\\ddot");G(U,ee,Vn,"~","\\tilde");G(U,ee,Vn,"\u02C9","\\bar");G(U,ee,Vn,"\u02D8","\\breve");G(U,ee,Vn,"\u02C7","\\check");G(U,ee,Vn,"^","\\hat");G(U,ee,Vn,"\u20D7","\\vec");G(U,ee,Vn,"\u02D9","\\dot");G(U,ee,Vn,"\u02DA","\\mathring");G(U,ee,er,"\uE131","\\@imath");G(U,ee,er,"\uE237","\\@jmath");G(U,ee,Le,"\u0131","\u0131");G(U,ee,Le,"\u0237","\u0237");G(it,ee,Le,"\u0131","\\i",!0);G(it,ee,Le,"\u0237","\\j",!0);G(it,ee,Le,"\xDF","\\ss",!0);G(it,ee,Le,"\xE6","\\ae",!0);G(it,ee,Le,"\u0153","\\oe",!0);G(it,ee,Le,"\xF8","\\o",!0);G(it,ee,Le,"\xC6","\\AE",!0);G(it,ee,Le,"\u0152","\\OE",!0);G(it,ee,Le,"\xD8","\\O",!0);G(it,ee,Vn,"\u02CA","\\'");G(it,ee,Vn,"\u02CB","\\`");G(it,ee,Vn,"\u02C6","\\^");G(it,ee,Vn,"\u02DC","\\~");G(it,ee,Vn,"\u02C9","\\=");G(it,ee,Vn,"\u02D8","\\u");G(it,ee,Vn,"\u02D9","\\.");G(it,ee,Vn,"\xB8","\\c");G(it,ee,Vn,"\u02DA","\\r");G(it,ee,Vn,"\u02C7","\\v");G(it,ee,Vn,"\xA8",'\\"');G(it,ee,Vn,"\u02DD","\\H");G(it,ee,Vn,"\u25EF","\\textcircled");Hz={"--":!0,"---":!0,"``":!0,"''":!0};G(it,ee,Le,"\u2013","--",!0);G(it,ee,Le,"\u2013","\\textendash");G(it,ee,Le,"\u2014","---",!0);G(it,ee,Le,"\u2014","\\textemdash");G(it,ee,Le,"\u2018","`",!0);G(it,ee,Le,"\u2018","\\textquoteleft");G(it,ee,Le,"\u2019","'",!0);G(it,ee,Le,"\u2019","\\textquoteright");G(it,ee,Le,"\u201C","``",!0);G(it,ee,Le,"\u201C","\\textquotedblleft");G(it,ee,Le,"\u201D","''",!0);G(it,ee,Le,"\u201D","\\textquotedblright");G(U,ee,Le,"\xB0","\\degree",!0);G(it,ee,Le,"\xB0","\\degree");G(it,ee,Le,"\xB0","\\textdegree",!0);G(U,ee,Le,"\xA3","\\pounds");G(U,ee,Le,"\xA3","\\mathsterling",!0);G(it,ee,Le,"\xA3","\\pounds");G(it,ee,Le,"\xA3","\\textsterling",!0);G(U,ke,Le,"\u2720","\\maltese");G(it,ke,Le,"\u2720","\\maltese");fz='0123456789/@."';for(J4=0;J4<fz.length;J4++)f7=fz.charAt(J4),G(U,ee,Le,f7,f7);dz='0123456789!@*()-=+";:?/.,';for(e3=0;e3<dz.length;e3++)d7=dz.charAt(e3),G(it,ee,Le,d7,d7);d3="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";for(t3=0;t3<d3.length;t3++)Py=d3.charAt(t3),G(U,ee,er,Py,Py),G(it,ee,Le,Py,Py);G(U,ke,Le,"C","\u2102");G(it,ke,Le,"C","\u2102");G(U,ke,Le,"H","\u210D");G(it,ke,Le,"H","\u210D");G(U,ke,Le,"N","\u2115");G(it,ke,Le,"N","\u2115");G(U,ke,Le,"P","\u2119");G(it,ke,Le,"P","\u2119");G(U,ke,Le,"Q","\u211A");G(it,ke,Le,"Q","\u211A");G(U,ke,Le,"R","\u211D");G(it,ke,Le,"R","\u211D");G(U,ke,Le,"Z","\u2124");G(it,ke,Le,"Z","\u2124");G(U,ee,er,"h","\u210E");G(it,ee,er,"h","\u210E");sr="";for(Ca=0;Ca<d3.length;Ca++)Jn=d3.charAt(Ca),sr=String.fromCharCode(55349,56320+Ca),G(U,ee,er,Jn,sr),G(it,ee,Le,Jn,sr),sr=String.fromCharCode(55349,56372+Ca),G(U,ee,er,Jn,sr),G(it,ee,Le,Jn,sr),sr=String.fromCharCode(55349,56424+Ca),G(U,ee,er,Jn,sr),G(it,ee,Le,Jn,sr),sr=String.fromCharCode(55349,56580+Ca),G(U,ee,er,Jn,sr),G(it,ee,Le,Jn,sr),sr=String.fromCharCode(55349,56684+Ca),G(U,ee,er,Jn,sr),G(it,ee,Le,Jn,sr),sr=String.fromCharCode(55349,56736+Ca),G(U,ee,er,Jn,sr),G(it,ee,Le,Jn,sr),sr=String.fromCharCode(55349,56788+Ca),G(U,ee,er,Jn,sr),G(it,ee,Le,Jn,sr),sr=String.fromCharCode(55349,56840+Ca),G(U,ee,er,Jn,sr),G(it,ee,Le,Jn,sr),sr=String.fromCharCode(55349,56944+Ca),G(U,ee,er,Jn,sr),G(it,ee,Le,Jn,sr),Ca<26&&(sr=String.fromCharCode(55349,56632+Ca),G(U,ee,er,Jn,sr),G(it,ee,Le,Jn,sr),sr=String.fromCharCode(55349,56476+Ca),G(U,ee,er,Jn,sr),G(it,ee,Le,Jn,sr));sr="\u{1D55C}";G(U,ee,er,"k",sr);G(it,ee,Le,"k",sr);for(uh=0;uh<10;uh++)iu=uh.toString(),sr=String.fromCharCode(55349,57294+uh),G(U,ee,er,iu,sr),G(it,ee,Le,iu,sr),sr=String.fromCharCode(55349,57314+uh),G(U,ee,er,iu,sr),G(it,ee,Le,iu,sr),sr=String.fromCharCode(55349,57324+uh),G(U,ee,er,iu,sr),G(it,ee,Le,iu,sr),sr=String.fromCharCode(55349,57334+uh),G(U,ee,er,iu,sr),G(it,ee,Le,iu,sr);C7="\xD0\xDE\xFE";for(r3=0;r3<C7.length;r3++)By=C7.charAt(r3),G(U,ee,er,By,By),G(it,ee,Le,By,By);n3=[["mathbf","textbf","Main-Bold"],["mathbf","textbf","Main-Bold"],["mathnormal","textit","Math-Italic"],["mathnormal","textit","Math-Italic"],["boldsymbol","boldsymbol","Main-BoldItalic"],["boldsymbol","boldsymbol","Main-BoldItalic"],["mathscr","textscr","Script-Regular"],["","",""],["","",""],["","",""],["mathfrak","textfrak","Fraktur-Regular"],["mathfrak","textfrak","Fraktur-Regular"],["mathbb","textbb","AMS-Regular"],["mathbb","textbb","AMS-Regular"],["mathboldfrak","textboldfrak","Fraktur-Regular"],["mathboldfrak","textboldfrak","Fraktur-Regular"],["mathsf","textsf","SansSerif-Regular"],["mathsf","textsf","SansSerif-Regular"],["mathboldsf","textboldsf","SansSerif-Bold"],["mathboldsf","textboldsf","SansSerif-Bold"],["mathitsf","textitsf","SansSerif-Italic"],["mathitsf","textitsf","SansSerif-Italic"],["","",""],["","",""],["mathtt","texttt","Typewriter-Regular"],["mathtt","texttt","Typewriter-Regular"]],pz=[["mathbf","textbf","Main-Bold"],["","",""],["mathsf","textsf","SansSerif-Regular"],["mathboldsf","textboldsf","SansSerif-Bold"],["mathtt","texttt","Typewriter-Regular"]],Obe=o(function(e,r){var n=e.charCodeAt(0),i=e.charCodeAt(1),a=(n-55296)*1024+(i-56320)+65536,s=r==="math"?0:1;if(119808<=a&&a<120484){var l=Math.floor((a-119808)/26);return[n3[l][2],n3[l][s]]}else if(120782<=a&&a<=120831){var u=Math.floor((a-120782)/10);return[pz[u][2],pz[u][s]]}else{if(a===120485||a===120486)return[n3[0][2],n3[0][s]];if(120486<a&&a<120782)return["",""];throw new gt("Unsupported character: "+e)}},"wideCharacterFont"),b3=o(function(e,r,n){return An[n][e]&&An[n][e].replace&&(e=An[n][e].replace),{value:e,metrics:P7(e,r,n)}},"lookupSymbol"),ol=o(function(e,r,n,i,a){var s=b3(e,r,n),l=s.metrics;e=s.value;var u;if(l){var h=l.italic;(n==="text"||i&&i.font==="mathit")&&(h=0),u=new Ts(e,l.height,l.depth,h,l.skew,l.width,a)}else typeof console<"u"&&console.warn("No character metrics "+("for '"+e+"' in style '"+r+"' and mode '"+n+"'")),u=new Ts(e,0,0,0,0,0,a);if(i){u.maxFontSize=i.sizeMultiplier,i.style.isTight()&&u.classes.push("mtight");var f=i.getColor();f&&(u.style.color=f)}return u},"makeSymbol"),Pbe=o(function(e,r,n,i){return i===void 0&&(i=[]),n.font==="boldsymbol"&&b3(e,"Main-Bold",r).metrics?ol(e,"Main-Bold",r,n,i.concat(["mathbf"])):e==="\\"||An[r][e].font==="main"?ol(e,"Main-Regular",r,n,i):ol(e,"AMS-Regular",r,n,i.concat(["amsrm"]))},"mathsym"),Bbe=o(function(e,r,n,i,a){return a!=="textord"&&b3(e,"Math-BoldItalic",r).metrics?{fontName:"Math-BoldItalic",fontClass:"boldsymbol"}:{fontName:"Main-Bold",fontClass:"mathbf"}},"boldsymbol"),Fbe=o(function(e,r,n){var i=e.mode,a=e.text,s=["mord"],l=i==="math"||i==="text"&&r.font,u=l?r.font:r.fontFamily,h="",f="";if(a.charCodeAt(0)===55349&&([h,f]=Obe(a,i)),h.length>0)return ol(a,h,i,r,s.concat(f));if(u){var d,p;if(u==="boldsymbol"){var m=Bbe(a,i,r,s,n);d=m.fontName,p=[m.fontClass]}else l?(d=Yz[u].fontName,p=[u]):(d=i3(u,r.fontWeight,r.fontShape),p=[u,r.fontWeight,r.fontShape]);if(b3(a,d,i).metrics)return ol(a,d,i,r,s.concat(p));if(Hz.hasOwnProperty(a)&&d.slice(0,10)==="Typewriter"){for(var g=[],y=0;y<a.length;y++)g.push(ol(a[y],d,i,r,s.concat(p)));return qz(g)}}if(n==="mathord")return ol(a,"Math-Italic",i,r,s.concat(["mathnormal"]));if(n==="textord"){var v=An[i][a]&&An[i][a].font;if(v==="ams"){var x=i3("amsrm",r.fontWeight,r.fontShape);return ol(a,x,i,r,s.concat("amsrm",r.fontWeight,r.fontShape))}else if(v==="main"||!v){var b=i3("textrm",r.fontWeight,r.fontShape);return ol(a,b,i,r,s.concat(r.fontWeight,r.fontShape))}else{var w=i3(v,r.fontWeight,r.fontShape);return ol(a,w,i,r,s.concat(w,r.fontWeight,r.fontShape))}}else throw new Error("unexpected type: "+n+" in makeOrd")},"makeOrd"),$be=o((t,e)=>{if(fh(t.classes)!==fh(e.classes)||t.skew!==e.skew||t.maxFontSize!==e.maxFontSize)return!1;if(t.classes.length===1){var r=t.classes[0];if(r==="mbin"||r==="mord")return!1}for(var n in t.style)if(t.style.hasOwnProperty(n)&&t.style[n]!==e.style[n])return!1;for(var i in e.style)if(e.style.hasOwnProperty(i)&&t.style[i]!==e.style[i])return!1;return!0},"canCombine"),zbe=o(t=>{for(var e=0;e<t.length-1;e++){var r=t[e],n=t[e+1];r instanceof Ts&&n instanceof Ts&&$be(r,n)&&(r.text+=n.text,r.height=Math.max(r.height,n.height),r.depth=Math.max(r.depth,n.depth),r.italic=n.italic,t.splice(e+1,1),e--)}return t},"tryCombineChars"),B7=o(function(e){for(var r=0,n=0,i=0,a=0;a<e.children.length;a++){var s=e.children[a];s.height>r&&(r=s.height),s.depth>n&&(n=s.depth),s.maxFontSize>i&&(i=s.maxFontSize)}e.height=r,e.depth=n,e.maxFontSize=i},"sizeElementFromChildren"),bs=o(function(e,r,n,i){var a=new td(e,r,n,i);return B7(a),a},"makeSpan"),Wz=o((t,e,r,n)=>new td(t,e,r,n),"makeSvgSpan"),Gbe=o(function(e,r,n){var i=bs([e],[],r);return i.height=Math.max(n||r.fontMetrics().defaultRuleThickness,r.minRuleThickness),i.style.borderBottomWidth=kt(i.height),i.maxFontSize=1,i},"makeLineSpan"),Vbe=o(function(e,r,n,i){var a=new Vy(e,r,n,i);return B7(a),a},"makeAnchor"),qz=o(function(e){var r=new ed(e);return B7(r),r},"makeFragment"),Ube=o(function(e,r){return e instanceof ed?bs([],[e],r):e},"wrapFragment"),Hbe=o(function(e){if(e.positionType==="individualShift"){for(var r=e.children,n=[r[0]],i=-r[0].shift-r[0].elem.depth,a=i,s=1;s<r.length;s++){var l=-r[s].shift-a-r[s].elem.depth,u=l-(r[s-1].elem.height+r[s-1].elem.depth);a=a+l,n.push({type:"kern",size:u}),n.push(r[s])}return{children:n,depth:i}}var h;if(e.positionType==="top"){for(var f=e.positionData,d=0;d<e.children.length;d++){var p=e.children[d];f-=p.type==="kern"?p.size:p.elem.height+p.elem.depth}h=f}else if(e.positionType==="bottom")h=-e.positionData;else{var m=e.children[0];if(m.type!=="elem")throw new Error('First child must have type "elem".');if(e.positionType==="shift")h=-m.elem.depth-e.positionData;else if(e.positionType==="firstBaseline")h=-m.elem.depth;else throw new Error("Invalid positionType "+e.positionType+".")}return{children:e.children,depth:h}},"getVListChildrenAndDepth"),Wbe=o(function(e,r){for(var{children:n,depth:i}=Hbe(e),a=0,s=0;s<n.length;s++){var l=n[s];if(l.type==="elem"){var u=l.elem;a=Math.max(a,u.maxFontSize,u.height)}}a+=2;var h=bs(["pstrut"],[]);h.style.height=kt(a);for(var f=[],d=i,p=i,m=i,g=0;g<n.length;g++){var y=n[g];if(y.type==="kern")m+=y.size;else{var v=y.elem,x=y.wrapperClasses||[],b=y.wrapperStyle||{},w=bs(x,[h,v],void 0,b);w.style.top=kt(-a-m-v.depth),y.marginLeft&&(w.style.marginLeft=y.marginLeft),y.marginRight&&(w.style.marginRight=y.marginRight),f.push(w),m+=v.height+v.depth}d=Math.min(d,m),p=Math.max(p,m)}var C=bs(["vlist"],f);C.style.height=kt(p);var T;if(d<0){var E=bs([],[]),A=bs(["vlist"],[E]);A.style.height=kt(-d);var S=bs(["vlist-s"],[new Ts("\u200B")]);T=[bs(["vlist-r"],[C,S]),bs(["vlist-r"],[A])]}else T=[bs(["vlist-r"],[C])];var _=bs(["vlist-t"],T);return T.length===2&&_.classes.push("vlist-t2"),_.height=p,_.depth=-d,_},"makeVList"),qbe=o((t,e)=>{var r=bs(["mspace"],[],e),n=ti(t,e);return r.style.marginRight=kt(n),r},"makeGlue"),i3=o(function(e,r,n){var i="";switch(e){case"amsrm":i="AMS";break;case"textrm":i="Main";break;case"textsf":i="SansSerif";break;case"texttt":i="Typewriter";break;default:i=e}var a;return r==="textbf"&&n==="textit"?a="BoldItalic":r==="textbf"?a="Bold":r==="textit"?a="Italic":a="Regular",i+"-"+a},"retrieveTextFontName"),Yz={mathbf:{variant:"bold",fontName:"Main-Bold"},mathrm:{variant:"normal",fontName:"Main-Regular"},textit:{variant:"italic",fontName:"Main-Italic"},mathit:{variant:"italic",fontName:"Main-Italic"},mathnormal:{variant:"italic",fontName:"Math-Italic"},mathbb:{variant:"double-struck",fontName:"AMS-Regular"},mathcal:{variant:"script",fontName:"Caligraphic-Regular"},mathfrak:{variant:"fraktur",fontName:"Fraktur-Regular"},mathscr:{variant:"script",fontName:"Script-Regular"},mathsf:{variant:"sans-serif",fontName:"SansSerif-Regular"},mathtt:{variant:"monospace",fontName:"Typewriter-Regular"}},Xz={vec:["vec",.471,.714],oiintSize1:["oiintSize1",.957,.499],oiintSize2:["oiintSize2",1.472,.659],oiiintSize1:["oiiintSize1",1.304,.499],oiiintSize2:["oiiintSize2",1.98,.659]},Ybe=o(function(e,r){var[n,i,a]=Xz[e],s=new Kl(n),l=new ll([s],{width:kt(i),height:kt(a),style:"width:"+kt(i),viewBox:"0 0 "+1e3*i+" "+1e3*a,preserveAspectRatio:"xMinYMin"}),u=Wz(["overlay"],[l],r);return u.height=a,u.style.height=kt(a),u.style.width=kt(i),u},"staticSvg"),Be={fontMap:Yz,makeSymbol:ol,mathsym:Pbe,makeSpan:bs,makeSvgSpan:Wz,makeLineSpan:Gbe,makeAnchor:Vbe,makeFragment:qz,wrapFragment:Ube,makeVList:Wbe,makeOrd:Fbe,makeGlue:qbe,staticSvg:Ybe,svgData:Xz,tryCombineChars:zbe},ei={number:3,unit:"mu"},Zf={number:4,unit:"mu"},au={number:5,unit:"mu"},Xbe={mord:{mop:ei,mbin:Zf,mrel:au,minner:ei},mop:{mord:ei,mop:ei,mrel:au,minner:ei},mbin:{mord:Zf,mop:Zf,mopen:Zf,minner:Zf},mrel:{mord:au,mop:au,mopen:au,minner:au},mopen:{},mclose:{mop:ei,mbin:Zf,mrel:au,minner:ei},mpunct:{mord:ei,mop:ei,mrel:au,mopen:ei,mclose:ei,mpunct:ei,minner:ei},minner:{mord:ei,mop:ei,mbin:Zf,mrel:au,mopen:ei,mpunct:ei,minner:ei}},jbe={mord:{mop:ei},mop:{mord:ei,mop:ei},mbin:{},mrel:{},mopen:{},mclose:{mop:ei},mpunct:{},minner:{mop:ei}},jz={},p3={},m3={};o(Nt,"defineFunction");o(rd,"defineFunctionBuilders");g3=o(function(e){return e.type==="ordgroup"&&e.body.length===1?e.body[0]:e},"normalizeArgument"),di=o(function(e){return e.type==="ordgroup"?e.body:[e]},"ordargument"),lu=Be.makeSpan,Kbe=["leftmost","mbin","mopen","mrel","mop","mpunct"],Qbe=["rightmost","mrel","mclose","mpunct"],Zbe={display:tr.DISPLAY,text:tr.TEXT,script:tr.SCRIPT,scriptscript:tr.SCRIPTSCRIPT},Jbe={mord:"mord",mop:"mop",mbin:"mbin",mrel:"mrel",mopen:"mopen",mclose:"mclose",mpunct:"mpunct",minner:"minner"},Pi=o(function(e,r,n,i){i===void 0&&(i=[null,null]);for(var a=[],s=0;s<e.length;s++){var l=Fr(e[s],r);if(l instanceof ed){var u=l.children;a.push(...u)}else a.push(l)}if(Be.tryCombineChars(a),!n)return a;var h=r;if(e.length===1){var f=e[0];f.type==="sizing"?h=r.havingSize(f.size):f.type==="styling"&&(h=r.havingStyle(Zbe[f.style]))}var d=lu([i[0]||"leftmost"],[],r),p=lu([i[1]||"rightmost"],[],r),m=n==="root";return mz(a,(g,y)=>{var v=y.classes[0],x=g.classes[0];v==="mbin"&&Jt.contains(Qbe,x)?y.classes[0]="mord":x==="mbin"&&Jt.contains(Kbe,v)&&(g.classes[0]="mord")},{node:d},p,m),mz(a,(g,y)=>{var v=A7(y),x=A7(g),b=v&&x?g.hasClass("mtight")?jbe[v][x]:Xbe[v][x]:null;if(b)return Be.makeGlue(b,h)},{node:d},p,m),a},"buildExpression"),mz=o(function t(e,r,n,i,a){i&&e.push(i);for(var s=0;s<e.length;s++){var l=e[s],u=Kz(l);if(u){t(u.children,r,n,null,a);continue}var h=!l.hasClass("mspace");if(h){var f=r(l,n.node);f&&(n.insertAfter?n.insertAfter(f):(e.unshift(f),s++))}h?n.node=l:a&&l.hasClass("newline")&&(n.node=lu(["leftmost"])),n.insertAfter=(d=>p=>{e.splice(d+1,0,p),s++})(s)}i&&e.pop()},"traverseNonSpaceNodes"),Kz=o(function(e){return e instanceof ed||e instanceof Vy||e instanceof td&&e.hasClass("enclosing")?e:null},"checkPartialGroup"),e4e=o(function t(e,r){var n=Kz(e);if(n){var i=n.children;if(i.length){if(r==="right")return t(i[i.length-1],"right");if(r==="left")return t(i[0],"left")}}return e},"getOutermostNode"),A7=o(function(e,r){return e?(r&&(e=e4e(e,r)),Jbe[e.classes[0]]||null):null},"getTypeOfDomTree"),Hy=o(function(e,r){var n=["nulldelimiter"].concat(e.baseSizingClasses());return lu(r.concat(n))},"makeNullDelimiter"),Fr=o(function(e,r,n){if(!e)return lu();if(p3[e.type]){var i=p3[e.type](e,r);if(n&&r.size!==n.size){i=lu(r.sizingClasses(n),[i],r);var a=r.sizeMultiplier/n.sizeMultiplier;i.height*=a,i.depth*=a}return i}else throw new gt("Got group of unknown type: '"+e.type+"'")},"buildGroup");o(a3,"buildHTMLUnbreakable");o(_7,"buildHTML");o(Qz,"newDocumentFragment");ws=class{static{o(this,"MathNode")}constructor(e,r,n){this.type=void 0,this.attributes=void 0,this.children=void 0,this.classes=void 0,this.type=e,this.attributes={},this.children=r||[],this.classes=n||[]}setAttribute(e,r){this.attributes[e]=r}getAttribute(e){return this.attributes[e]}toNode(){var e=document.createElementNS("http://www.w3.org/1998/Math/MathML",this.type);for(var r in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,r)&&e.setAttribute(r,this.attributes[r]);this.classes.length>0&&(e.className=fh(this.classes));for(var n=0;n<this.children.length;n++)e.appendChild(this.children[n].toNode());return e}toMarkup(){var e="<"+this.type;for(var r in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,r)&&(e+=" "+r+'="',e+=Jt.escape(this.attributes[r]),e+='"');this.classes.length>0&&(e+=' class ="'+Jt.escape(fh(this.classes))+'"'),e+=">";for(var n=0;n<this.children.length;n++)e+=this.children[n].toMarkup();return e+="</"+this.type+">",e}toText(){return this.children.map(e=>e.toText()).join("")}},Jf=class{static{o(this,"TextNode")}constructor(e){this.text=void 0,this.text=e}toNode(){return document.createTextNode(this.text)}toMarkup(){return Jt.escape(this.toText())}toText(){return this.text}},D7=class{static{o(this,"SpaceNode")}constructor(e){this.width=void 0,this.character=void 0,this.width=e,e>=.05555&&e<=.05556?this.character="\u200A":e>=.1666&&e<=.1667?this.character="\u2009":e>=.2222&&e<=.2223?this.character="\u2005":e>=.2777&&e<=.2778?this.character="\u2005\u200A":e>=-.05556&&e<=-.05555?this.character="\u200A\u2063":e>=-.1667&&e<=-.1666?this.character="\u2009\u2063":e>=-.2223&&e<=-.2222?this.character="\u205F\u2063":e>=-.2778&&e<=-.2777?this.character="\u2005\u2063":this.character=null}toNode(){if(this.character)return document.createTextNode(this.character);var e=document.createElementNS("http://www.w3.org/1998/Math/MathML","mspace");return e.setAttribute("width",kt(this.width)),e}toMarkup(){return this.character?"<mtext>"+this.character+"</mtext>":'<mspace width="'+kt(this.width)+'"/>'}toText(){return this.character?this.character:" "}},dt={MathNode:ws,TextNode:Jf,SpaceNode:D7,newDocumentFragment:Qz},Co=o(function(e,r,n){return An[r][e]&&An[r][e].replace&&e.charCodeAt(0)!==55349&&!(Hz.hasOwnProperty(e)&&n&&(n.fontFamily&&n.fontFamily.slice(4,6)==="tt"||n.font&&n.font.slice(4,6)==="tt"))&&(e=An[r][e].replace),new dt.TextNode(e)},"makeText"),F7=o(function(e){return e.length===1?e[0]:new dt.MathNode("mrow",e)},"makeRow"),$7=o(function(e,r){if(r.fontFamily==="texttt")return"monospace";if(r.fontFamily==="textsf")return r.fontShape==="textit"&&r.fontWeight==="textbf"?"sans-serif-bold-italic":r.fontShape==="textit"?"sans-serif-italic":r.fontWeight==="textbf"?"bold-sans-serif":"sans-serif";if(r.fontShape==="textit"&&r.fontWeight==="textbf")return"bold-italic";if(r.fontShape==="textit")return"italic";if(r.fontWeight==="textbf")return"bold";var n=r.font;if(!n||n==="mathnormal")return null;var i=e.mode;if(n==="mathit")return"italic";if(n==="boldsymbol")return e.type==="textord"?"bold":"bold-italic";if(n==="mathbf")return"bold";if(n==="mathbb")return"double-struck";if(n==="mathfrak")return"fraktur";if(n==="mathscr"||n==="mathcal")return"script";if(n==="mathsf")return"sans-serif";if(n==="mathtt")return"monospace";var a=e.text;if(Jt.contains(["\\imath","\\jmath"],a))return null;An[i][a]&&An[i][a].replace&&(a=An[i][a].replace);var s=Be.fontMap[n].fontName;return P7(a,s,i)?Be.fontMap[n].variant:null},"getVariant"),ks=o(function(e,r,n){if(e.length===1){var i=yn(e[0],r);return n&&i instanceof ws&&i.type==="mo"&&(i.setAttribute("lspace","0em"),i.setAttribute("rspace","0em")),[i]}for(var a=[],s,l=0;l<e.length;l++){var u=yn(e[l],r);if(u instanceof ws&&s instanceof ws){if(u.type==="mtext"&&s.type==="mtext"&&u.getAttribute("mathvariant")===s.getAttribute("mathvariant")){s.children.push(...u.children);continue}else if(u.type==="mn"&&s.type==="mn"){s.children.push(...u.children);continue}else if(u.type==="mi"&&u.children.length===1&&s.type==="mn"){var h=u.children[0];if(h instanceof Jf&&h.text==="."){s.children.push(...u.children);continue}}else if(s.type==="mi"&&s.children.length===1){var f=s.children[0];if(f instanceof Jf&&f.text==="\u0338"&&(u.type==="mo"||u.type==="mi"||u.type==="mn")){var d=u.children[0];d instanceof Jf&&d.text.length>0&&(d.text=d.text.slice(0,1)+"\u0338"+d.text.slice(1),a.pop())}}}a.push(u),s=u}return a},"buildExpression"),dh=o(function(e,r,n){return F7(ks(e,r,n))},"buildExpressionRow"),yn=o(function(e,r){if(!e)return new dt.MathNode("mrow");if(m3[e.type]){var n=m3[e.type](e,r);return n}else throw new gt("Got group of unknown type: '"+e.type+"'")},"buildGroup");o(gz,"buildMathML");Zz=o(function(e){return new f3({style:e.displayMode?tr.DISPLAY:tr.TEXT,maxSize:e.maxSize,minRuleThickness:e.minRuleThickness})},"optionsFromSettings"),Jz=o(function(e,r){if(r.displayMode){var n=["katex-display"];r.leqno&&n.push("leqno"),r.fleqn&&n.push("fleqn"),e=Be.makeSpan(n,[e])}return e},"displayWrap"),t4e=o(function(e,r,n){var i=Zz(n),a;if(n.output==="mathml")return gz(e,r,i,n.displayMode,!0);if(n.output==="html"){var s=_7(e,i);a=Be.makeSpan(["katex"],[s])}else{var l=gz(e,r,i,n.displayMode,!1),u=_7(e,i);a=Be.makeSpan(["katex"],[l,u])}return Jz(a,n)},"buildTree"),r4e=o(function(e,r,n){var i=Zz(n),a=_7(e,i),s=Be.makeSpan(["katex"],[a]);return Jz(s,n)},"buildHTMLTree"),n4e={widehat:"^",widecheck:"\u02C7",widetilde:"~",utilde:"~",overleftarrow:"\u2190",underleftarrow:"\u2190",xleftarrow:"\u2190",overrightarrow:"\u2192",underrightarrow:"\u2192",xrightarrow:"\u2192",underbrace:"\u23DF",overbrace:"\u23DE",overgroup:"\u23E0",undergroup:"\u23E1",overleftrightarrow:"\u2194",underleftrightarrow:"\u2194",xleftrightarrow:"\u2194",Overrightarrow:"\u21D2",xRightarrow:"\u21D2",overleftharpoon:"\u21BC",xleftharpoonup:"\u21BC",overrightharpoon:"\u21C0",xrightharpoonup:"\u21C0",xLeftarrow:"\u21D0",xLeftrightarrow:"\u21D4",xhookleftarrow:"\u21A9",xhookrightarrow:"\u21AA",xmapsto:"\u21A6",xrightharpoondown:"\u21C1",xleftharpoondown:"\u21BD",xrightleftharpoons:"\u21CC",xleftrightharpoons:"\u21CB",xtwoheadleftarrow:"\u219E",xtwoheadrightarrow:"\u21A0",xlongequal:"=",xtofrom:"\u21C4",xrightleftarrows:"\u21C4",xrightequilibrium:"\u21CC",xleftequilibrium:"\u21CB","\\cdrightarrow":"\u2192","\\cdleftarrow":"\u2190","\\cdlongequal":"="},i4e=o(function(e){var r=new dt.MathNode("mo",[new dt.TextNode(n4e[e.replace(/^\\/,"")])]);return r.setAttribute("stretchy","true"),r},"mathMLnode"),a4e={overrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],overleftarrow:[["leftarrow"],.888,522,"xMinYMin"],underrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],underleftarrow:[["leftarrow"],.888,522,"xMinYMin"],xrightarrow:[["rightarrow"],1.469,522,"xMaxYMin"],"\\cdrightarrow":[["rightarrow"],3,522,"xMaxYMin"],xleftarrow:[["leftarrow"],1.469,522,"xMinYMin"],"\\cdleftarrow":[["leftarrow"],3,522,"xMinYMin"],Overrightarrow:[["doublerightarrow"],.888,560,"xMaxYMin"],xRightarrow:[["doublerightarrow"],1.526,560,"xMaxYMin"],xLeftarrow:[["doubleleftarrow"],1.526,560,"xMinYMin"],overleftharpoon:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoonup:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoondown:[["leftharpoondown"],.888,522,"xMinYMin"],overrightharpoon:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoonup:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoondown:[["rightharpoondown"],.888,522,"xMaxYMin"],xlongequal:[["longequal"],.888,334,"xMinYMin"],"\\cdlongequal":[["longequal"],3,334,"xMinYMin"],xtwoheadleftarrow:[["twoheadleftarrow"],.888,334,"xMinYMin"],xtwoheadrightarrow:[["twoheadrightarrow"],.888,334,"xMaxYMin"],overleftrightarrow:[["leftarrow","rightarrow"],.888,522],overbrace:[["leftbrace","midbrace","rightbrace"],1.6,548],underbrace:[["leftbraceunder","midbraceunder","rightbraceunder"],1.6,548],underleftrightarrow:[["leftarrow","rightarrow"],.888,522],xleftrightarrow:[["leftarrow","rightarrow"],1.75,522],xLeftrightarrow:[["doubleleftarrow","doublerightarrow"],1.75,560],xrightleftharpoons:[["leftharpoondownplus","rightharpoonplus"],1.75,716],xleftrightharpoons:[["leftharpoonplus","rightharpoondownplus"],1.75,716],xhookleftarrow:[["leftarrow","righthook"],1.08,522],xhookrightarrow:[["lefthook","rightarrow"],1.08,522],overlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],underlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],overgroup:[["leftgroup","rightgroup"],.888,342],undergroup:[["leftgroupunder","rightgroupunder"],.888,342],xmapsto:[["leftmapsto","rightarrow"],1.5,522],xtofrom:[["leftToFrom","rightToFrom"],1.75,528],xrightleftarrows:[["baraboveleftarrow","rightarrowabovebar"],1.75,901],xrightequilibrium:[["baraboveshortleftharpoon","rightharpoonaboveshortbar"],1.75,716],xleftequilibrium:[["shortbaraboveleftharpoon","shortrightharpoonabovebar"],1.75,716]},s4e=o(function(e){return e.type==="ordgroup"?e.body.length:1},"groupLength"),o4e=o(function(e,r){function n(){var l=4e5,u=e.label.slice(1);if(Jt.contains(["widehat","widecheck","widetilde","utilde"],u)){var h=e,f=s4e(h.base),d,p,m;if(f>5)u==="widehat"||u==="widecheck"?(d=420,l=2364,m=.42,p=u+"4"):(d=312,l=2340,m=.34,p="tilde4");else{var g=[1,1,2,2,3,3][f];u==="widehat"||u==="widecheck"?(l=[0,1062,2364,2364,2364][g],d=[0,239,300,360,420][g],m=[0,.24,.3,.3,.36,.42][g],p=u+g):(l=[0,600,1033,2339,2340][g],d=[0,260,286,306,312][g],m=[0,.26,.286,.3,.306,.34][g],p="tilde"+g)}var y=new Kl(p),v=new ll([y],{width:"100%",height:kt(m),viewBox:"0 0 "+l+" "+d,preserveAspectRatio:"none"});return{span:Be.makeSvgSpan([],[v],r),minWidth:0,height:m}}else{var x=[],b=a4e[u],[w,C,T]=b,E=T/1e3,A=w.length,S,_;if(A===1){var I=b[3];S=["hide-tail"],_=[I]}else if(A===2)S=["halfarrow-left","halfarrow-right"],_=["xMinYMin","xMaxYMin"];else if(A===3)S=["brace-left","brace-center","brace-right"],_=["xMinYMin","xMidYMin","xMaxYMin"];else throw new Error(`Correct katexImagesData or update code here to support
+                    `+A+" children.");for(var D=0;D<A;D++){var k=new Kl(w[D]),L=new ll([k],{width:"400em",height:kt(E),viewBox:"0 0 "+l+" "+T,preserveAspectRatio:_[D]+" slice"}),R=Be.makeSvgSpan([S[D]],[L],r);if(A===1)return{span:R,minWidth:C,height:E};R.style.height=kt(E),x.push(R)}return{span:Be.makeSpan(["stretchy"],x,r),minWidth:C,height:E}}}o(n,"buildSvgSpan_");var{span:i,minWidth:a,height:s}=n();return i.height=s,i.style.height=kt(s),a>0&&(i.style.minWidth=kt(a)),i},"svgSpan"),l4e=o(function(e,r,n,i,a){var s,l=e.height+e.depth+n+i;if(/fbox|color|angl/.test(r)){if(s=Be.makeSpan(["stretchy",r],[],a),r==="fbox"){var u=a.color&&a.getColor();u&&(s.style.borderColor=u)}}else{var h=[];/^[bx]cancel$/.test(r)&&h.push(new Uy({x1:"0",y1:"0",x2:"100%",y2:"100%","stroke-width":"0.046em"})),/^x?cancel$/.test(r)&&h.push(new Uy({x1:"0",y1:"100%",x2:"100%",y2:"0","stroke-width":"0.046em"}));var f=new ll(h,{width:"100%",height:kt(l)});s=Be.makeSvgSpan([],[f],a)}return s.height=l,s.style.height=kt(l),s},"encloseSpan"),cu={encloseSpan:l4e,mathMLnode:i4e,svgSpan:o4e};o(xr,"assertNodeType");o(z7,"assertSymbolNodeType");o(w3,"checkSymbolNodeType");G7=o((t,e)=>{var r,n,i;t&&t.type==="supsub"?(n=xr(t.base,"accent"),r=n.base,t.base=r,i=Nbe(Fr(t,e)),t.base=n):(n=xr(t,"accent"),r=n.base);var a=Fr(r,e.havingCrampedStyle()),s=n.isShifty&&Jt.isCharacterBox(r),l=0;if(s){var u=Jt.getBaseElem(r),h=Fr(u,e.havingCrampedStyle());l=hz(h).skew}var f=n.label==="\\c",d=f?a.height+a.depth:Math.min(a.height,e.fontMetrics().xHeight),p;if(n.isStretchy)p=cu.svgSpan(n,e),p=Be.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:a},{type:"elem",elem:p,wrapperClasses:["svg-align"],wrapperStyle:l>0?{width:"calc(100% - "+kt(2*l)+")",marginLeft:kt(2*l)}:void 0}]},e);else{var m,g;n.label==="\\vec"?(m=Be.staticSvg("vec",e),g=Be.svgData.vec[1]):(m=Be.makeOrd({mode:n.mode,text:n.label},e,"textord"),m=hz(m),m.italic=0,g=m.width,f&&(d+=m.depth)),p=Be.makeSpan(["accent-body"],[m]);var y=n.label==="\\textcircled";y&&(p.classes.push("accent-full"),d=a.height);var v=l;y||(v-=g/2),p.style.left=kt(v),n.label==="\\textcircled"&&(p.style.top=".2em"),p=Be.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:a},{type:"kern",size:-d},{type:"elem",elem:p}]},e)}var x=Be.makeSpan(["mord","accent"],[p],e);return i?(i.children[0]=x,i.height=Math.max(x.height,i.height),i.classes[0]="mord",i):x},"htmlBuilder$a"),eG=o((t,e)=>{var r=t.isStretchy?cu.mathMLnode(t.label):new dt.MathNode("mo",[Co(t.label,t.mode)]),n=new dt.MathNode("mover",[yn(t.base,e),r]);return n.setAttribute("accent","true"),n},"mathmlBuilder$9"),c4e=new RegExp(["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring"].map(t=>"\\"+t).join("|"));Nt({type:"accent",names:["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring","\\widecheck","\\widehat","\\widetilde","\\overrightarrow","\\overleftarrow","\\Overrightarrow","\\overleftrightarrow","\\overgroup","\\overlinesegment","\\overleftharpoon","\\overrightharpoon"],props:{numArgs:1},handler:o((t,e)=>{var r=g3(e[0]),n=!c4e.test(t.funcName),i=!n||t.funcName==="\\widehat"||t.funcName==="\\widetilde"||t.funcName==="\\widecheck";return{type:"accent",mode:t.parser.mode,label:t.funcName,isStretchy:n,isShifty:i,base:r}},"handler"),htmlBuilder:G7,mathmlBuilder:eG});Nt({type:"accent",names:["\\'","\\`","\\^","\\~","\\=","\\u","\\.",'\\"',"\\c","\\r","\\H","\\v","\\textcircled"],props:{numArgs:1,allowedInText:!0,allowedInMath:!0,argTypes:["primitive"]},handler:o((t,e)=>{var r=e[0],n=t.parser.mode;return n==="math"&&(t.parser.settings.reportNonstrict("mathVsTextAccents","LaTeX's accent "+t.funcName+" works only in text mode"),n="text"),{type:"accent",mode:n,label:t.funcName,isStretchy:!1,isShifty:!0,base:r}},"handler"),htmlBuilder:G7,mathmlBuilder:eG});Nt({type:"accentUnder",names:["\\underleftarrow","\\underrightarrow","\\underleftrightarrow","\\undergroup","\\underlinesegment","\\utilde"],props:{numArgs:1},handler:o((t,e)=>{var{parser:r,funcName:n}=t,i=e[0];return{type:"accentUnder",mode:r.mode,label:n,base:i}},"handler"),htmlBuilder:o((t,e)=>{var r=Fr(t.base,e),n=cu.svgSpan(t,e),i=t.label==="\\utilde"?.12:0,a=Be.makeVList({positionType:"top",positionData:r.height,children:[{type:"elem",elem:n,wrapperClasses:["svg-align"]},{type:"kern",size:i},{type:"elem",elem:r}]},e);return Be.makeSpan(["mord","accentunder"],[a],e)},"htmlBuilder"),mathmlBuilder:o((t,e)=>{var r=cu.mathMLnode(t.label),n=new dt.MathNode("munder",[yn(t.base,e),r]);return n.setAttribute("accentunder","true"),n},"mathmlBuilder")});s3=o(t=>{var e=new dt.MathNode("mpadded",t?[t]:[]);return e.setAttribute("width","+0.6em"),e.setAttribute("lspace","0.3em"),e},"paddedNode");Nt({type:"xArrow",names:["\\xleftarrow","\\xrightarrow","\\xLeftarrow","\\xRightarrow","\\xleftrightarrow","\\xLeftrightarrow","\\xhookleftarrow","\\xhookrightarrow","\\xmapsto","\\xrightharpoondown","\\xrightharpoonup","\\xleftharpoondown","\\xleftharpoonup","\\xrightleftharpoons","\\xleftrightharpoons","\\xlongequal","\\xtwoheadrightarrow","\\xtwoheadleftarrow","\\xtofrom","\\xrightleftarrows","\\xrightequilibrium","\\xleftequilibrium","\\\\cdrightarrow","\\\\cdleftarrow","\\\\cdlongequal"],props:{numArgs:1,numOptionalArgs:1},handler(t,e,r){var{parser:n,funcName:i}=t;return{type:"xArrow",mode:n.mode,label:i,body:e[0],below:r[0]}},htmlBuilder(t,e){var r=e.style,n=e.havingStyle(r.sup()),i=Be.wrapFragment(Fr(t.body,n,e),e),a=t.label.slice(0,2)==="\\x"?"x":"cd";i.classes.push(a+"-arrow-pad");var s;t.below&&(n=e.havingStyle(r.sub()),s=Be.wrapFragment(Fr(t.below,n,e),e),s.classes.push(a+"-arrow-pad"));var l=cu.svgSpan(t,e),u=-e.fontMetrics().axisHeight+.5*l.height,h=-e.fontMetrics().axisHeight-.5*l.height-.111;(i.depth>.25||t.label==="\\xleftequilibrium")&&(h-=i.depth);var f;if(s){var d=-e.fontMetrics().axisHeight+s.height+.5*l.height+.111;f=Be.makeVList({positionType:"individualShift",children:[{type:"elem",elem:i,shift:h},{type:"elem",elem:l,shift:u},{type:"elem",elem:s,shift:d}]},e)}else f=Be.makeVList({positionType:"individualShift",children:[{type:"elem",elem:i,shift:h},{type:"elem",elem:l,shift:u}]},e);return f.children[0].children[0].children[1].classes.push("svg-align"),Be.makeSpan(["mrel","x-arrow"],[f],e)},mathmlBuilder(t,e){var r=cu.mathMLnode(t.label);r.setAttribute("minsize",t.label.charAt(0)==="x"?"1.75em":"3.0em");var n;if(t.body){var i=s3(yn(t.body,e));if(t.below){var a=s3(yn(t.below,e));n=new dt.MathNode("munderover",[r,a,i])}else n=new dt.MathNode("mover",[r,i])}else if(t.below){var s=s3(yn(t.below,e));n=new dt.MathNode("munder",[r,s])}else n=s3(),n=new dt.MathNode("mover",[r,n]);return n}});u4e=Be.makeSpan;o(tG,"htmlBuilder$9");o(rG,"mathmlBuilder$8");Nt({type:"mclass",names:["\\mathord","\\mathbin","\\mathrel","\\mathopen","\\mathclose","\\mathpunct","\\mathinner"],props:{numArgs:1,primitive:!0},handler(t,e){var{parser:r,funcName:n}=t,i=e[0];return{type:"mclass",mode:r.mode,mclass:"m"+n.slice(5),body:di(i),isCharacterBox:Jt.isCharacterBox(i)}},htmlBuilder:tG,mathmlBuilder:rG});T3=o(t=>{var e=t.type==="ordgroup"&&t.body.length?t.body[0]:t;return e.type==="atom"&&(e.family==="bin"||e.family==="rel")?"m"+e.family:"mord"},"binrelClass");Nt({type:"mclass",names:["\\@binrel"],props:{numArgs:2},handler(t,e){var{parser:r}=t;return{type:"mclass",mode:r.mode,mclass:T3(e[0]),body:di(e[1]),isCharacterBox:Jt.isCharacterBox(e[1])}}});Nt({type:"mclass",names:["\\stackrel","\\overset","\\underset"],props:{numArgs:2},handler(t,e){var{parser:r,funcName:n}=t,i=e[1],a=e[0],s;n!=="\\stackrel"?s=T3(i):s="mrel";var l={type:"op",mode:i.mode,limits:!0,alwaysHandleSupSub:!0,parentIsSupSub:!1,symbol:!1,suppressBaseShift:n!=="\\stackrel",body:di(i)},u={type:"supsub",mode:a.mode,base:l,sup:n==="\\underset"?null:a,sub:n==="\\underset"?a:null};return{type:"mclass",mode:r.mode,mclass:s,body:[u],isCharacterBox:Jt.isCharacterBox(u)}},htmlBuilder:tG,mathmlBuilder:rG});Nt({type:"pmb",names:["\\pmb"],props:{numArgs:1,allowedInText:!0},handler(t,e){var{parser:r}=t;return{type:"pmb",mode:r.mode,mclass:T3(e[0]),body:di(e[0])}},htmlBuilder(t,e){var r=Pi(t.body,e,!0),n=Be.makeSpan([t.mclass],r,e);return n.style.textShadow="0.02em 0.01em 0.04px",n},mathmlBuilder(t,e){var r=ks(t.body,e),n=new dt.MathNode("mstyle",r);return n.setAttribute("style","text-shadow: 0.02em 0.01em 0.04px"),n}});h4e={">":"\\\\cdrightarrow","<":"\\\\cdleftarrow","=":"\\\\cdlongequal",A:"\\uparrow",V:"\\downarrow","|":"\\Vert",".":"no arrow"},yz=o(()=>({type:"styling",body:[],mode:"math",style:"display"}),"newCell"),vz=o(t=>t.type==="textord"&&t.text==="@","isStartOfArrow"),f4e=o((t,e)=>(t.type==="mathord"||t.type==="atom")&&t.text===e,"isLabelEnd");o(d4e,"cdArrow");o(p4e,"parseCD");Nt({type:"cdlabel",names:["\\\\cdleft","\\\\cdright"],props:{numArgs:1},handler(t,e){var{parser:r,funcName:n}=t;return{type:"cdlabel",mode:r.mode,side:n.slice(4),label:e[0]}},htmlBuilder(t,e){var r=e.havingStyle(e.style.sup()),n=Be.wrapFragment(Fr(t.label,r,e),e);return n.classes.push("cd-label-"+t.side),n.style.bottom=kt(.8-n.depth),n.height=0,n.depth=0,n},mathmlBuilder(t,e){var r=new dt.MathNode("mrow",[yn(t.label,e)]);return r=new dt.MathNode("mpadded",[r]),r.setAttribute("width","0"),t.side==="left"&&r.setAttribute("lspace","-1width"),r.setAttribute("voffset","0.7em"),r=new dt.MathNode("mstyle",[r]),r.setAttribute("displaystyle","false"),r.setAttribute("scriptlevel","1"),r}});Nt({type:"cdlabelparent",names:["\\\\cdparent"],props:{numArgs:1},handler(t,e){var{parser:r}=t;return{type:"cdlabelparent",mode:r.mode,fragment:e[0]}},htmlBuilder(t,e){var r=Be.wrapFragment(Fr(t.fragment,e),e);return r.classes.push("cd-vert-arrow"),r},mathmlBuilder(t,e){return new dt.MathNode("mrow",[yn(t.fragment,e)])}});Nt({type:"textord",names:["\\@char"],props:{numArgs:1,allowedInText:!0},handler(t,e){for(var{parser:r}=t,n=xr(e[0],"ordgroup"),i=n.body,a="",s=0;s<i.length;s++){var l=xr(i[s],"textord");a+=l.text}var u=parseInt(a),h;if(isNaN(u))throw new gt("\\@char has non-numeric argument "+a);if(u<0||u>=1114111)throw new gt("\\@char with invalid code point "+a);return u<=65535?h=String.fromCharCode(u):(u-=65536,h=String.fromCharCode((u>>10)+55296,(u&1023)+56320)),{type:"textord",mode:r.mode,text:h}}});nG=o((t,e)=>{var r=Pi(t.body,e.withColor(t.color),!1);return Be.makeFragment(r)},"htmlBuilder$8"),iG=o((t,e)=>{var r=ks(t.body,e.withColor(t.color)),n=new dt.MathNode("mstyle",r);return n.setAttribute("mathcolor",t.color),n},"mathmlBuilder$7");Nt({type:"color",names:["\\textcolor"],props:{numArgs:2,allowedInText:!0,argTypes:["color","original"]},handler(t,e){var{parser:r}=t,n=xr(e[0],"color-token").color,i=e[1];return{type:"color",mode:r.mode,color:n,body:di(i)}},htmlBuilder:nG,mathmlBuilder:iG});Nt({type:"color",names:["\\color"],props:{numArgs:1,allowedInText:!0,argTypes:["color"]},handler(t,e){var{parser:r,breakOnTokenText:n}=t,i=xr(e[0],"color-token").color;r.gullet.macros.set("\\current@color",i);var a=r.parseExpression(!0,n);return{type:"color",mode:r.mode,color:i,body:a}},htmlBuilder:nG,mathmlBuilder:iG});Nt({type:"cr",names:["\\\\"],props:{numArgs:0,numOptionalArgs:0,allowedInText:!0},handler(t,e,r){var{parser:n}=t,i=n.gullet.future().text==="["?n.parseSizeGroup(!0):null,a=!n.settings.displayMode||!n.settings.useStrictBehavior("newLineInDisplayMode","In LaTeX, \\\\ or \\newline does nothing in display mode");return{type:"cr",mode:n.mode,newLine:a,size:i&&xr(i,"size").value}},htmlBuilder(t,e){var r=Be.makeSpan(["mspace"],[],e);return t.newLine&&(r.classes.push("newline"),t.size&&(r.style.marginTop=kt(ti(t.size,e)))),r},mathmlBuilder(t,e){var r=new dt.MathNode("mspace");return t.newLine&&(r.setAttribute("linebreak","newline"),t.size&&r.setAttribute("height",kt(ti(t.size,e)))),r}});L7={"\\global":"\\global","\\long":"\\\\globallong","\\\\globallong":"\\\\globallong","\\def":"\\gdef","\\gdef":"\\gdef","\\edef":"\\xdef","\\xdef":"\\xdef","\\let":"\\\\globallet","\\futurelet":"\\\\globalfuture"},aG=o(t=>{var e=t.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(e))throw new gt("Expected a control sequence",t);return e},"checkControlSequence"),m4e=o(t=>{var e=t.gullet.popToken();return e.text==="="&&(e=t.gullet.popToken(),e.text===" "&&(e=t.gullet.popToken())),e},"getRHS"),sG=o((t,e,r,n)=>{var i=t.gullet.macros.get(r.text);i==null&&(r.noexpand=!0,i={tokens:[r],numArgs:0,unexpandable:!t.gullet.isExpandable(r.text)}),t.gullet.macros.set(e,i,n)},"letCommand");Nt({type:"internal",names:["\\global","\\long","\\\\globallong"],props:{numArgs:0,allowedInText:!0},handler(t){var{parser:e,funcName:r}=t;e.consumeSpaces();var n=e.fetch();if(L7[n.text])return(r==="\\global"||r==="\\\\globallong")&&(n.text=L7[n.text]),xr(e.parseFunction(),"internal");throw new gt("Invalid token after macro prefix",n)}});Nt({type:"internal",names:["\\def","\\gdef","\\edef","\\xdef"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(t){var{parser:e,funcName:r}=t,n=e.gullet.popToken(),i=n.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(i))throw new gt("Expected a control sequence",n);for(var a=0,s,l=[[]];e.gullet.future().text!=="{";)if(n=e.gullet.popToken(),n.text==="#"){if(e.gullet.future().text==="{"){s=e.gullet.future(),l[a].push("{");break}if(n=e.gullet.popToken(),!/^[1-9]$/.test(n.text))throw new gt('Invalid argument number "'+n.text+'"');if(parseInt(n.text)!==a+1)throw new gt('Argument number "'+n.text+'" out of order');a++,l.push([])}else{if(n.text==="EOF")throw new gt("Expected a macro definition");l[a].push(n.text)}var{tokens:u}=e.gullet.consumeArg();return s&&u.unshift(s),(r==="\\edef"||r==="\\xdef")&&(u=e.gullet.expandTokens(u),u.reverse()),e.gullet.macros.set(i,{tokens:u,numArgs:a,delimiters:l},r===L7[r]),{type:"internal",mode:e.mode}}});Nt({type:"internal",names:["\\let","\\\\globallet"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(t){var{parser:e,funcName:r}=t,n=aG(e.gullet.popToken());e.gullet.consumeSpaces();var i=m4e(e);return sG(e,n,i,r==="\\\\globallet"),{type:"internal",mode:e.mode}}});Nt({type:"internal",names:["\\futurelet","\\\\globalfuture"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(t){var{parser:e,funcName:r}=t,n=aG(e.gullet.popToken()),i=e.gullet.popToken(),a=e.gullet.popToken();return sG(e,n,a,r==="\\\\globalfuture"),e.gullet.pushToken(a),e.gullet.pushToken(i),{type:"internal",mode:e.mode}}});Fy=o(function(e,r,n){var i=An.math[e]&&An.math[e].replace,a=P7(i||e,r,n);if(!a)throw new Error("Unsupported symbol "+e+" and font size "+r+".");return a},"getMetrics"),V7=o(function(e,r,n,i){var a=n.havingBaseStyle(r),s=Be.makeSpan(i.concat(a.sizingClasses(n)),[e],n),l=a.sizeMultiplier/n.sizeMultiplier;return s.height*=l,s.depth*=l,s.maxFontSize=a.sizeMultiplier,s},"styleWrap"),oG=o(function(e,r,n){var i=r.havingBaseStyle(n),a=(1-r.sizeMultiplier/i.sizeMultiplier)*r.fontMetrics().axisHeight;e.classes.push("delimcenter"),e.style.top=kt(a),e.height-=a,e.depth+=a},"centerSpan"),g4e=o(function(e,r,n,i,a,s){var l=Be.makeSymbol(e,"Main-Regular",a,i),u=V7(l,r,i,s);return n&&oG(u,i,r),u},"makeSmallDelim"),y4e=o(function(e,r,n,i){return Be.makeSymbol(e,"Size"+r+"-Regular",n,i)},"mathrmSize"),lG=o(function(e,r,n,i,a,s){var l=y4e(e,r,a,i),u=V7(Be.makeSpan(["delimsizing","size"+r],[l],i),tr.TEXT,i,s);return n&&oG(u,i,tr.TEXT),u},"makeLargeDelim"),p7=o(function(e,r,n){var i;r==="Size1-Regular"?i="delim-size1":i="delim-size4";var a=Be.makeSpan(["delimsizinginner",i],[Be.makeSpan([],[Be.makeSymbol(e,r,n)])]);return{type:"elem",elem:a}},"makeGlyphSpan"),m7=o(function(e,r,n){var i=jl["Size4-Regular"][e.charCodeAt(0)]?jl["Size4-Regular"][e.charCodeAt(0)][4]:jl["Size1-Regular"][e.charCodeAt(0)][4],a=new Kl("inner",Sbe(e,Math.round(1e3*r))),s=new ll([a],{width:kt(i),height:kt(r),style:"width:"+kt(i),viewBox:"0 0 "+1e3*i+" "+Math.round(1e3*r),preserveAspectRatio:"xMinYMin"}),l=Be.makeSvgSpan([],[s],n);return l.height=r,l.style.height=kt(r),l.style.width=kt(i),{type:"elem",elem:l}},"makeInner"),R7=.008,o3={type:"kern",size:-1*R7},v4e=["|","\\lvert","\\rvert","\\vert"],x4e=["\\|","\\lVert","\\rVert","\\Vert"],cG=o(function(e,r,n,i,a,s){var l,u,h,f,d="",p=0;l=h=f=e,u=null;var m="Size1-Regular";e==="\\uparrow"?h=f="\u23D0":e==="\\Uparrow"?h=f="\u2016":e==="\\downarrow"?l=h="\u23D0":e==="\\Downarrow"?l=h="\u2016":e==="\\updownarrow"?(l="\\uparrow",h="\u23D0",f="\\downarrow"):e==="\\Updownarrow"?(l="\\Uparrow",h="\u2016",f="\\Downarrow"):Jt.contains(v4e,e)?(h="\u2223",d="vert",p=333):Jt.contains(x4e,e)?(h="\u2225",d="doublevert",p=556):e==="["||e==="\\lbrack"?(l="\u23A1",h="\u23A2",f="\u23A3",m="Size4-Regular",d="lbrack",p=667):e==="]"||e==="\\rbrack"?(l="\u23A4",h="\u23A5",f="\u23A6",m="Size4-Regular",d="rbrack",p=667):e==="\\lfloor"||e==="\u230A"?(h=l="\u23A2",f="\u23A3",m="Size4-Regular",d="lfloor",p=667):e==="\\lceil"||e==="\u2308"?(l="\u23A1",h=f="\u23A2",m="Size4-Regular",d="lceil",p=667):e==="\\rfloor"||e==="\u230B"?(h=l="\u23A5",f="\u23A6",m="Size4-Regular",d="rfloor",p=667):e==="\\rceil"||e==="\u2309"?(l="\u23A4",h=f="\u23A5",m="Size4-Regular",d="rceil",p=667):e==="("||e==="\\lparen"?(l="\u239B",h="\u239C",f="\u239D",m="Size4-Regular",d="lparen",p=875):e===")"||e==="\\rparen"?(l="\u239E",h="\u239F",f="\u23A0",m="Size4-Regular",d="rparen",p=875):e==="\\{"||e==="\\lbrace"?(l="\u23A7",u="\u23A8",f="\u23A9",h="\u23AA",m="Size4-Regular"):e==="\\}"||e==="\\rbrace"?(l="\u23AB",u="\u23AC",f="\u23AD",h="\u23AA",m="Size4-Regular"):e==="\\lgroup"||e==="\u27EE"?(l="\u23A7",f="\u23A9",h="\u23AA",m="Size4-Regular"):e==="\\rgroup"||e==="\u27EF"?(l="\u23AB",f="\u23AD",h="\u23AA",m="Size4-Regular"):e==="\\lmoustache"||e==="\u23B0"?(l="\u23A7",f="\u23AD",h="\u23AA",m="Size4-Regular"):(e==="\\rmoustache"||e==="\u23B1")&&(l="\u23AB",f="\u23A9",h="\u23AA",m="Size4-Regular");var g=Fy(l,m,a),y=g.height+g.depth,v=Fy(h,m,a),x=v.height+v.depth,b=Fy(f,m,a),w=b.height+b.depth,C=0,T=1;if(u!==null){var E=Fy(u,m,a);C=E.height+E.depth,T=2}var A=y+w+C,S=Math.max(0,Math.ceil((r-A)/(T*x))),_=A+S*T*x,I=i.fontMetrics().axisHeight;n&&(I*=i.sizeMultiplier);var D=_/2-I,k=[];if(d.length>0){var L=_-y-w,R=Math.round(_*1e3),O=Cbe(d,Math.round(L*1e3)),M=new Kl(d,O),B=(p/1e3).toFixed(3)+"em",F=(R/1e3).toFixed(3)+"em",P=new ll([M],{width:B,height:F,viewBox:"0 0 "+p+" "+R}),z=Be.makeSvgSpan([],[P],i);z.height=R/1e3,z.style.width=B,z.style.height=F,k.push({type:"elem",elem:z})}else{if(k.push(p7(f,m,a)),k.push(o3),u===null){var $=_-y-w+2*R7;k.push(m7(h,$,i))}else{var H=(_-y-w-C)/2+2*R7;k.push(m7(h,H,i)),k.push(o3),k.push(p7(u,m,a)),k.push(o3),k.push(m7(h,H,i))}k.push(o3),k.push(p7(l,m,a))}var Q=i.havingBaseStyle(tr.TEXT),j=Be.makeVList({positionType:"bottom",positionData:D,children:k},Q);return V7(Be.makeSpan(["delimsizing","mult"],[j],Q),tr.TEXT,i,s)},"makeStackedDelim"),g7=80,y7=.08,v7=o(function(e,r,n,i,a){var s=Ebe(e,i,n),l=new Kl(e,s),u=new ll([l],{width:"400em",height:kt(r),viewBox:"0 0 400000 "+n,preserveAspectRatio:"xMinYMin slice"});return Be.makeSvgSpan(["hide-tail"],[u],a)},"sqrtSvg"),b4e=o(function(e,r){var n=r.havingBaseSizing(),i=dG("\\surd",e*n.sizeMultiplier,fG,n),a=n.sizeMultiplier,s=Math.max(0,r.minRuleThickness-r.fontMetrics().sqrtRuleThickness),l,u=0,h=0,f=0,d;return i.type==="small"?(f=1e3+1e3*s+g7,e<1?a=1:e<1.4&&(a=.7),u=(1+s+y7)/a,h=(1+s)/a,l=v7("sqrtMain",u,f,s,r),l.style.minWidth="0.853em",d=.833/a):i.type==="large"?(f=(1e3+g7)*$y[i.size],h=($y[i.size]+s)/a,u=($y[i.size]+s+y7)/a,l=v7("sqrtSize"+i.size,u,f,s,r),l.style.minWidth="1.02em",d=1/a):(u=e+s+y7,h=e+s,f=Math.floor(1e3*e+s)+g7,l=v7("sqrtTall",u,f,s,r),l.style.minWidth="0.742em",d=1.056),l.height=h,l.style.height=kt(u),{span:l,advanceWidth:d,ruleWidth:(r.fontMetrics().sqrtRuleThickness+s)*a}},"makeSqrtImage"),uG=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","\u230A","\u230B","\\lceil","\\rceil","\u2308","\u2309","\\surd"],w4e=["\\uparrow","\\downarrow","\\updownarrow","\\Uparrow","\\Downarrow","\\Updownarrow","|","\\|","\\vert","\\Vert","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","\u27EE","\u27EF","\\lmoustache","\\rmoustache","\u23B0","\u23B1"],hG=["<",">","\\langle","\\rangle","/","\\backslash","\\lt","\\gt"],$y=[0,1.2,1.8,2.4,3],T4e=o(function(e,r,n,i,a){if(e==="<"||e==="\\lt"||e==="\u27E8"?e="\\langle":(e===">"||e==="\\gt"||e==="\u27E9")&&(e="\\rangle"),Jt.contains(uG,e)||Jt.contains(hG,e))return lG(e,r,!1,n,i,a);if(Jt.contains(w4e,e))return cG(e,$y[r],!1,n,i,a);throw new gt("Illegal delimiter: '"+e+"'")},"makeSizedDelim"),k4e=[{type:"small",style:tr.SCRIPTSCRIPT},{type:"small",style:tr.SCRIPT},{type:"small",style:tr.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4}],E4e=[{type:"small",style:tr.SCRIPTSCRIPT},{type:"small",style:tr.SCRIPT},{type:"small",style:tr.TEXT},{type:"stack"}],fG=[{type:"small",style:tr.SCRIPTSCRIPT},{type:"small",style:tr.SCRIPT},{type:"small",style:tr.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4},{type:"stack"}],S4e=o(function(e){if(e.type==="small")return"Main-Regular";if(e.type==="large")return"Size"+e.size+"-Regular";if(e.type==="stack")return"Size4-Regular";throw new Error("Add support for delim type '"+e.type+"' here.")},"delimTypeToFont"),dG=o(function(e,r,n,i){for(var a=Math.min(2,3-i.style.size),s=a;s<n.length&&n[s].type!=="stack";s++){var l=Fy(e,S4e(n[s]),"math"),u=l.height+l.depth;if(n[s].type==="small"){var h=i.havingBaseStyle(n[s].style);u*=h.sizeMultiplier}if(u>r)return n[s]}return n[n.length-1]},"traverseSequence"),pG=o(function(e,r,n,i,a,s){e==="<"||e==="\\lt"||e==="\u27E8"?e="\\langle":(e===">"||e==="\\gt"||e==="\u27E9")&&(e="\\rangle");var l;Jt.contains(hG,e)?l=k4e:Jt.contains(uG,e)?l=fG:l=E4e;var u=dG(e,r,l,i);return u.type==="small"?g4e(e,u.style,n,i,a,s):u.type==="large"?lG(e,u.size,n,i,a,s):cG(e,r,n,i,a,s)},"makeCustomSizedDelim"),C4e=o(function(e,r,n,i,a,s){var l=i.fontMetrics().axisHeight*i.sizeMultiplier,u=901,h=5/i.fontMetrics().ptPerEm,f=Math.max(r-l,n+l),d=Math.max(f/500*u,2*f-h);return pG(e,d,!0,i,a,s)},"makeLeftRightDelim"),ou={sqrtImage:b4e,sizedDelim:T4e,sizeToMaxHeight:$y,customSizedDelim:pG,leftRightDelim:C4e},xz={"\\bigl":{mclass:"mopen",size:1},"\\Bigl":{mclass:"mopen",size:2},"\\biggl":{mclass:"mopen",size:3},"\\Biggl":{mclass:"mopen",size:4},"\\bigr":{mclass:"mclose",size:1},"\\Bigr":{mclass:"mclose",size:2},"\\biggr":{mclass:"mclose",size:3},"\\Biggr":{mclass:"mclose",size:4},"\\bigm":{mclass:"mrel",size:1},"\\Bigm":{mclass:"mrel",size:2},"\\biggm":{mclass:"mrel",size:3},"\\Biggm":{mclass:"mrel",size:4},"\\big":{mclass:"mord",size:1},"\\Big":{mclass:"mord",size:2},"\\bigg":{mclass:"mord",size:3},"\\Bigg":{mclass:"mord",size:4}},A4e=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","\u230A","\u230B","\\lceil","\\rceil","\u2308","\u2309","<",">","\\langle","\u27E8","\\rangle","\u27E9","\\lt","\\gt","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","\u27EE","\u27EF","\\lmoustache","\\rmoustache","\u23B0","\u23B1","/","\\backslash","|","\\vert","\\|","\\Vert","\\uparrow","\\Uparrow","\\downarrow","\\Downarrow","\\updownarrow","\\Updownarrow","."];o(k3,"checkDelimiter");Nt({type:"delimsizing",names:["\\bigl","\\Bigl","\\biggl","\\Biggl","\\bigr","\\Bigr","\\biggr","\\Biggr","\\bigm","\\Bigm","\\biggm","\\Biggm","\\big","\\Big","\\bigg","\\Bigg"],props:{numArgs:1,argTypes:["primitive"]},handler:o((t,e)=>{var r=k3(e[0],t);return{type:"delimsizing",mode:t.parser.mode,size:xz[t.funcName].size,mclass:xz[t.funcName].mclass,delim:r.text}},"handler"),htmlBuilder:o((t,e)=>t.delim==="."?Be.makeSpan([t.mclass]):ou.sizedDelim(t.delim,t.size,e,t.mode,[t.mclass]),"htmlBuilder"),mathmlBuilder:o(t=>{var e=[];t.delim!=="."&&e.push(Co(t.delim,t.mode));var r=new dt.MathNode("mo",e);t.mclass==="mopen"||t.mclass==="mclose"?r.setAttribute("fence","true"):r.setAttribute("fence","false"),r.setAttribute("stretchy","true");var n=kt(ou.sizeToMaxHeight[t.size]);return r.setAttribute("minsize",n),r.setAttribute("maxsize",n),r},"mathmlBuilder")});o(bz,"assertParsed");Nt({type:"leftright-right",names:["\\right"],props:{numArgs:1,primitive:!0},handler:o((t,e)=>{var r=t.parser.gullet.macros.get("\\current@color");if(r&&typeof r!="string")throw new gt("\\current@color set to non-string in \\right");return{type:"leftright-right",mode:t.parser.mode,delim:k3(e[0],t).text,color:r}},"handler")});Nt({type:"leftright",names:["\\left"],props:{numArgs:1,primitive:!0},handler:o((t,e)=>{var r=k3(e[0],t),n=t.parser;++n.leftrightDepth;var i=n.parseExpression(!1);--n.leftrightDepth,n.expect("\\right",!1);var a=xr(n.parseFunction(),"leftright-right");return{type:"leftright",mode:n.mode,body:i,left:r.text,right:a.delim,rightColor:a.color}},"handler"),htmlBuilder:o((t,e)=>{bz(t);for(var r=Pi(t.body,e,!0,["mopen","mclose"]),n=0,i=0,a=!1,s=0;s<r.length;s++)r[s].isMiddle?a=!0:(n=Math.max(r[s].height,n),i=Math.max(r[s].depth,i));n*=e.sizeMultiplier,i*=e.sizeMultiplier;var l;if(t.left==="."?l=Hy(e,["mopen"]):l=ou.leftRightDelim(t.left,n,i,e,t.mode,["mopen"]),r.unshift(l),a)for(var u=1;u<r.length;u++){var h=r[u],f=h.isMiddle;f&&(r[u]=ou.leftRightDelim(f.delim,n,i,f.options,t.mode,[]))}var d;if(t.right===".")d=Hy(e,["mclose"]);else{var p=t.rightColor?e.withColor(t.rightColor):e;d=ou.leftRightDelim(t.right,n,i,p,t.mode,["mclose"])}return r.push(d),Be.makeSpan(["minner"],r,e)},"htmlBuilder"),mathmlBuilder:o((t,e)=>{bz(t);var r=ks(t.body,e);if(t.left!=="."){var n=new dt.MathNode("mo",[Co(t.left,t.mode)]);n.setAttribute("fence","true"),r.unshift(n)}if(t.right!=="."){var i=new dt.MathNode("mo",[Co(t.right,t.mode)]);i.setAttribute("fence","true"),t.rightColor&&i.setAttribute("mathcolor",t.rightColor),r.push(i)}return F7(r)},"mathmlBuilder")});Nt({type:"middle",names:["\\middle"],props:{numArgs:1,primitive:!0},handler:o((t,e)=>{var r=k3(e[0],t);if(!t.parser.leftrightDepth)throw new gt("\\middle without preceding \\left",r);return{type:"middle",mode:t.parser.mode,delim:r.text}},"handler"),htmlBuilder:o((t,e)=>{var r;if(t.delim===".")r=Hy(e,[]);else{r=ou.sizedDelim(t.delim,1,e,t.mode,[]);var n={delim:t.delim,options:e};r.isMiddle=n}return r},"htmlBuilder"),mathmlBuilder:o((t,e)=>{var r=t.delim==="\\vert"||t.delim==="|"?Co("|","text"):Co(t.delim,t.mode),n=new dt.MathNode("mo",[r]);return n.setAttribute("fence","true"),n.setAttribute("lspace","0.05em"),n.setAttribute("rspace","0.05em"),n},"mathmlBuilder")});U7=o((t,e)=>{var r=Be.wrapFragment(Fr(t.body,e),e),n=t.label.slice(1),i=e.sizeMultiplier,a,s=0,l=Jt.isCharacterBox(t.body);if(n==="sout")a=Be.makeSpan(["stretchy","sout"]),a.height=e.fontMetrics().defaultRuleThickness/i,s=-.5*e.fontMetrics().xHeight;else if(n==="phase"){var u=ti({number:.6,unit:"pt"},e),h=ti({number:.35,unit:"ex"},e),f=e.havingBaseSizing();i=i/f.sizeMultiplier;var d=r.height+r.depth+u+h;r.style.paddingLeft=kt(d/2+u);var p=Math.floor(1e3*d*i),m=Tbe(p),g=new ll([new Kl("phase",m)],{width:"400em",height:kt(p/1e3),viewBox:"0 0 400000 "+p,preserveAspectRatio:"xMinYMin slice"});a=Be.makeSvgSpan(["hide-tail"],[g],e),a.style.height=kt(d),s=r.depth+u+h}else{/cancel/.test(n)?l||r.classes.push("cancel-pad"):n==="angl"?r.classes.push("anglpad"):r.classes.push("boxpad");var y=0,v=0,x=0;/box/.test(n)?(x=Math.max(e.fontMetrics().fboxrule,e.minRuleThickness),y=e.fontMetrics().fboxsep+(n==="colorbox"?0:x),v=y):n==="angl"?(x=Math.max(e.fontMetrics().defaultRuleThickness,e.minRuleThickness),y=4*x,v=Math.max(0,.25-r.depth)):(y=l?.2:0,v=y),a=cu.encloseSpan(r,n,y,v,e),/fbox|boxed|fcolorbox/.test(n)?(a.style.borderStyle="solid",a.style.borderWidth=kt(x)):n==="angl"&&x!==.049&&(a.style.borderTopWidth=kt(x),a.style.borderRightWidth=kt(x)),s=r.depth+v,t.backgroundColor&&(a.style.backgroundColor=t.backgroundColor,t.borderColor&&(a.style.borderColor=t.borderColor))}var b;if(t.backgroundColor)b=Be.makeVList({positionType:"individualShift",children:[{type:"elem",elem:a,shift:s},{type:"elem",elem:r,shift:0}]},e);else{var w=/cancel|phase/.test(n)?["svg-align"]:[];b=Be.makeVList({positionType:"individualShift",children:[{type:"elem",elem:r,shift:0},{type:"elem",elem:a,shift:s,wrapperClasses:w}]},e)}return/cancel/.test(n)&&(b.height=r.height,b.depth=r.depth),/cancel/.test(n)&&!l?Be.makeSpan(["mord","cancel-lap"],[b],e):Be.makeSpan(["mord"],[b],e)},"htmlBuilder$7"),H7=o((t,e)=>{var r=0,n=new dt.MathNode(t.label.indexOf("colorbox")>-1?"mpadded":"menclose",[yn(t.body,e)]);switch(t.label){case"\\cancel":n.setAttribute("notation","updiagonalstrike");break;case"\\bcancel":n.setAttribute("notation","downdiagonalstrike");break;case"\\phase":n.setAttribute("notation","phasorangle");break;case"\\sout":n.setAttribute("notation","horizontalstrike");break;case"\\fbox":n.setAttribute("notation","box");break;case"\\angl":n.setAttribute("notation","actuarial");break;case"\\fcolorbox":case"\\colorbox":if(r=e.fontMetrics().fboxsep*e.fontMetrics().ptPerEm,n.setAttribute("width","+"+2*r+"pt"),n.setAttribute("height","+"+2*r+"pt"),n.setAttribute("lspace",r+"pt"),n.setAttribute("voffset",r+"pt"),t.label==="\\fcolorbox"){var i=Math.max(e.fontMetrics().fboxrule,e.minRuleThickness);n.setAttribute("style","border: "+i+"em solid "+String(t.borderColor))}break;case"\\xcancel":n.setAttribute("notation","updiagonalstrike downdiagonalstrike");break}return t.backgroundColor&&n.setAttribute("mathbackground",t.backgroundColor),n},"mathmlBuilder$6");Nt({type:"enclose",names:["\\colorbox"],props:{numArgs:2,allowedInText:!0,argTypes:["color","text"]},handler(t,e,r){var{parser:n,funcName:i}=t,a=xr(e[0],"color-token").color,s=e[1];return{type:"enclose",mode:n.mode,label:i,backgroundColor:a,body:s}},htmlBuilder:U7,mathmlBuilder:H7});Nt({type:"enclose",names:["\\fcolorbox"],props:{numArgs:3,allowedInText:!0,argTypes:["color","color","text"]},handler(t,e,r){var{parser:n,funcName:i}=t,a=xr(e[0],"color-token").color,s=xr(e[1],"color-token").color,l=e[2];return{type:"enclose",mode:n.mode,label:i,backgroundColor:s,borderColor:a,body:l}},htmlBuilder:U7,mathmlBuilder:H7});Nt({type:"enclose",names:["\\fbox"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!0},handler(t,e){var{parser:r}=t;return{type:"enclose",mode:r.mode,label:"\\fbox",body:e[0]}}});Nt({type:"enclose",names:["\\cancel","\\bcancel","\\xcancel","\\sout","\\phase"],props:{numArgs:1},handler(t,e){var{parser:r,funcName:n}=t,i=e[0];return{type:"enclose",mode:r.mode,label:n,body:i}},htmlBuilder:U7,mathmlBuilder:H7});Nt({type:"enclose",names:["\\angl"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!1},handler(t,e){var{parser:r}=t;return{type:"enclose",mode:r.mode,label:"\\angl",body:e[0]}}});mG={};o(Ql,"defineEnvironment");gG={};o(fe,"defineMacro");o(wz,"getHLines");E3=o(t=>{var e=t.parser.settings;if(!e.displayMode)throw new gt("{"+t.envName+"} can be used only in display mode.")},"validateAmsEnvironmentContext");o(W7,"getAutoTag");o(ph,"parseArray");o(q7,"dCellStyle");Zl=o(function(e,r){var n,i,a=e.body.length,s=e.hLinesBeforeRow,l=0,u=new Array(a),h=[],f=Math.max(r.fontMetrics().arrayRuleWidth,r.minRuleThickness),d=1/r.fontMetrics().ptPerEm,p=5*d;if(e.colSeparationType&&e.colSeparationType==="small"){var m=r.havingStyle(tr.SCRIPT).sizeMultiplier;p=.2778*(m/r.sizeMultiplier)}var g=e.colSeparationType==="CD"?ti({number:3,unit:"ex"},r):12*d,y=3*d,v=e.arraystretch*g,x=.7*v,b=.3*v,w=0;function C(ae){for(var Oe=0;Oe<ae.length;++Oe)Oe>0&&(w+=.25),h.push({pos:w,isDashed:ae[Oe]})}for(o(C,"setHLinePos"),C(s[0]),n=0;n<e.body.length;++n){var T=e.body[n],E=x,A=b;l<T.length&&(l=T.length);var S=new Array(T.length);for(i=0;i<T.length;++i){var _=Fr(T[i],r);A<_.depth&&(A=_.depth),E<_.height&&(E=_.height),S[i]=_}var I=e.rowGaps[n],D=0;I&&(D=ti(I,r),D>0&&(D+=b,A<D&&(A=D),D=0)),e.addJot&&(A+=y),S.height=E,S.depth=A,w+=E,S.pos=w,w+=A+D,u[n]=S,C(s[n+1])}var k=w/2+r.fontMetrics().axisHeight,L=e.cols||[],R=[],O,M,B=[];if(e.tags&&e.tags.some(ae=>ae))for(n=0;n<a;++n){var F=u[n],P=F.pos-k,z=e.tags[n],$=void 0;z===!0?$=Be.makeSpan(["eqn-num"],[],r):z===!1?$=Be.makeSpan([],[],r):$=Be.makeSpan([],Pi(z,r,!0),r),$.depth=F.depth,$.height=F.height,B.push({type:"elem",elem:$,shift:P})}for(i=0,M=0;i<l||M<L.length;++i,++M){for(var H=L[M]||{},Q=!0;H.type==="separator";){if(Q||(O=Be.makeSpan(["arraycolsep"],[]),O.style.width=kt(r.fontMetrics().doubleRuleSep),R.push(O)),H.separator==="|"||H.separator===":"){var j=H.separator==="|"?"solid":"dashed",ie=Be.makeSpan(["vertical-separator"],[],r);ie.style.height=kt(w),ie.style.borderRightWidth=kt(f),ie.style.borderRightStyle=j,ie.style.margin="0 "+kt(-f/2);var ne=w-k;ne&&(ie.style.verticalAlign=kt(-ne)),R.push(ie)}else throw new gt("Invalid separator type: "+H.separator);M++,H=L[M]||{},Q=!1}if(!(i>=l)){var le=void 0;(i>0||e.hskipBeforeAndAfter)&&(le=Jt.deflt(H.pregap,p),le!==0&&(O=Be.makeSpan(["arraycolsep"],[]),O.style.width=kt(le),R.push(O)));var he=[];for(n=0;n<a;++n){var K=u[n],X=K[i];if(X){var te=K.pos-k;X.depth=K.depth,X.height=K.height,he.push({type:"elem",elem:X,shift:te})}}he=Be.makeVList({positionType:"individualShift",children:he},r),he=Be.makeSpan(["col-align-"+(H.align||"c")],[he]),R.push(he),(i<l-1||e.hskipBeforeAndAfter)&&(le=Jt.deflt(H.postgap,p),le!==0&&(O=Be.makeSpan(["arraycolsep"],[]),O.style.width=kt(le),R.push(O)))}}if(u=Be.makeSpan(["mtable"],R),h.length>0){for(var J=Be.makeLineSpan("hline",r,f),se=Be.makeLineSpan("hdashline",r,f),ue=[{type:"elem",elem:u,shift:0}];h.length>0;){var Z=h.pop(),Se=Z.pos-k;Z.isDashed?ue.push({type:"elem",elem:se,shift:Se}):ue.push({type:"elem",elem:J,shift:Se})}u=Be.makeVList({positionType:"individualShift",children:ue},r)}if(B.length===0)return Be.makeSpan(["mord"],[u],r);var ce=Be.makeVList({positionType:"individualShift",children:B},r);return ce=Be.makeSpan(["tag"],[ce],r),Be.makeFragment([u,ce])},"htmlBuilder"),_4e={c:"center ",l:"left ",r:"right "},Jl=o(function(e,r){for(var n=[],i=new dt.MathNode("mtd",[],["mtr-glue"]),a=new dt.MathNode("mtd",[],["mml-eqn-num"]),s=0;s<e.body.length;s++){for(var l=e.body[s],u=[],h=0;h<l.length;h++)u.push(new dt.MathNode("mtd",[yn(l[h],r)]));e.tags&&e.tags[s]&&(u.unshift(i),u.push(i),e.leqno?u.unshift(a):u.push(a)),n.push(new dt.MathNode("mtr",u))}var f=new dt.MathNode("mtable",n),d=e.arraystretch===.5?.1:.16+e.arraystretch-1+(e.addJot?.09:0);f.setAttribute("rowspacing",kt(d));var p="",m="";if(e.cols&&e.cols.length>0){var g=e.cols,y="",v=!1,x=0,b=g.length;g[0].type==="separator"&&(p+="top ",x=1),g[g.length-1].type==="separator"&&(p+="bottom ",b-=1);for(var w=x;w<b;w++)g[w].type==="align"?(m+=_4e[g[w].align],v&&(y+="none "),v=!0):g[w].type==="separator"&&v&&(y+=g[w].separator==="|"?"solid ":"dashed ",v=!1);f.setAttribute("columnalign",m.trim()),/[sd]/.test(y)&&f.setAttribute("columnlines",y.trim())}if(e.colSeparationType==="align"){for(var C=e.cols||[],T="",E=1;E<C.length;E++)T+=E%2?"0em ":"1em ";f.setAttribute("columnspacing",T.trim())}else e.colSeparationType==="alignat"||e.colSeparationType==="gather"?f.setAttribute("columnspacing","0em"):e.colSeparationType==="small"?f.setAttribute("columnspacing","0.2778em"):e.colSeparationType==="CD"?f.setAttribute("columnspacing","0.5em"):f.setAttribute("columnspacing","1em");var A="",S=e.hLinesBeforeRow;p+=S[0].length>0?"left ":"",p+=S[S.length-1].length>0?"right ":"";for(var _=1;_<S.length-1;_++)A+=S[_].length===0?"none ":S[_][0]?"dashed ":"solid ";return/[sd]/.test(A)&&f.setAttribute("rowlines",A.trim()),p!==""&&(f=new dt.MathNode("menclose",[f]),f.setAttribute("notation",p.trim())),e.arraystretch&&e.arraystretch<1&&(f=new dt.MathNode("mstyle",[f]),f.setAttribute("scriptlevel","1")),f},"mathmlBuilder"),yG=o(function(e,r){e.envName.indexOf("ed")===-1&&E3(e);var n=[],i=e.envName.indexOf("at")>-1?"alignat":"align",a=e.envName==="split",s=ph(e.parser,{cols:n,addJot:!0,autoTag:a?void 0:W7(e.envName),emptySingleRow:!0,colSeparationType:i,maxNumCols:a?2:void 0,leqno:e.parser.settings.leqno},"display"),l,u=0,h={type:"ordgroup",mode:e.mode,body:[]};if(r[0]&&r[0].type==="ordgroup"){for(var f="",d=0;d<r[0].body.length;d++){var p=xr(r[0].body[d],"textord");f+=p.text}l=Number(f),u=l*2}var m=!u;s.body.forEach(function(x){for(var b=1;b<x.length;b+=2){var w=xr(x[b],"styling"),C=xr(w.body[0],"ordgroup");C.body.unshift(h)}if(m)u<x.length&&(u=x.length);else{var T=x.length/2;if(l<T)throw new gt("Too many math in a row: "+("expected "+l+", but got "+T),x[0])}});for(var g=0;g<u;++g){var y="r",v=0;g%2===1?y="l":g>0&&m&&(v=1),n[g]={type:"align",align:y,pregap:v,postgap:0}}return s.colSeparationType=m?"align":"alignat",s},"alignedHandler");Ql({type:"array",names:["array","darray"],props:{numArgs:1},handler(t,e){var r=w3(e[0]),n=r?[e[0]]:xr(e[0],"ordgroup").body,i=n.map(function(s){var l=z7(s),u=l.text;if("lcr".indexOf(u)!==-1)return{type:"align",align:u};if(u==="|")return{type:"separator",separator:"|"};if(u===":")return{type:"separator",separator:":"};throw new gt("Unknown column alignment: "+u,s)}),a={cols:i,hskipBeforeAndAfter:!0,maxNumCols:i.length};return ph(t.parser,a,q7(t.envName))},htmlBuilder:Zl,mathmlBuilder:Jl});Ql({type:"array",names:["matrix","pmatrix","bmatrix","Bmatrix","vmatrix","Vmatrix","matrix*","pmatrix*","bmatrix*","Bmatrix*","vmatrix*","Vmatrix*"],props:{numArgs:0},handler(t){var e={matrix:null,pmatrix:["(",")"],bmatrix:["[","]"],Bmatrix:["\\{","\\}"],vmatrix:["|","|"],Vmatrix:["\\Vert","\\Vert"]}[t.envName.replace("*","")],r="c",n={hskipBeforeAndAfter:!1,cols:[{type:"align",align:r}]};if(t.envName.charAt(t.envName.length-1)==="*"){var i=t.parser;if(i.consumeSpaces(),i.fetch().text==="["){if(i.consume(),i.consumeSpaces(),r=i.fetch().text,"lcr".indexOf(r)===-1)throw new gt("Expected l or c or r",i.nextToken);i.consume(),i.consumeSpaces(),i.expect("]"),i.consume(),n.cols=[{type:"align",align:r}]}}var a=ph(t.parser,n,q7(t.envName)),s=Math.max(0,...a.body.map(l=>l.length));return a.cols=new Array(s).fill({type:"align",align:r}),e?{type:"leftright",mode:t.mode,body:[a],left:e[0],right:e[1],rightColor:void 0}:a},htmlBuilder:Zl,mathmlBuilder:Jl});Ql({type:"array",names:["smallmatrix"],props:{numArgs:0},handler(t){var e={arraystretch:.5},r=ph(t.parser,e,"script");return r.colSeparationType="small",r},htmlBuilder:Zl,mathmlBuilder:Jl});Ql({type:"array",names:["subarray"],props:{numArgs:1},handler(t,e){var r=w3(e[0]),n=r?[e[0]]:xr(e[0],"ordgroup").body,i=n.map(function(s){var l=z7(s),u=l.text;if("lc".indexOf(u)!==-1)return{type:"align",align:u};throw new gt("Unknown column alignment: "+u,s)});if(i.length>1)throw new gt("{subarray} can contain only one column");var a={cols:i,hskipBeforeAndAfter:!1,arraystretch:.5};if(a=ph(t.parser,a,"script"),a.body.length>0&&a.body[0].length>1)throw new gt("{subarray} can contain only one column");return a},htmlBuilder:Zl,mathmlBuilder:Jl});Ql({type:"array",names:["cases","dcases","rcases","drcases"],props:{numArgs:0},handler(t){var e={arraystretch:1.2,cols:[{type:"align",align:"l",pregap:0,postgap:1},{type:"align",align:"l",pregap:0,postgap:0}]},r=ph(t.parser,e,q7(t.envName));return{type:"leftright",mode:t.mode,body:[r],left:t.envName.indexOf("r")>-1?".":"\\{",right:t.envName.indexOf("r")>-1?"\\}":".",rightColor:void 0}},htmlBuilder:Zl,mathmlBuilder:Jl});Ql({type:"array",names:["align","align*","aligned","split"],props:{numArgs:0},handler:yG,htmlBuilder:Zl,mathmlBuilder:Jl});Ql({type:"array",names:["gathered","gather","gather*"],props:{numArgs:0},handler(t){Jt.contains(["gather","gather*"],t.envName)&&E3(t);var e={cols:[{type:"align",align:"c"}],addJot:!0,colSeparationType:"gather",autoTag:W7(t.envName),emptySingleRow:!0,leqno:t.parser.settings.leqno};return ph(t.parser,e,"display")},htmlBuilder:Zl,mathmlBuilder:Jl});Ql({type:"array",names:["alignat","alignat*","alignedat"],props:{numArgs:1},handler:yG,htmlBuilder:Zl,mathmlBuilder:Jl});Ql({type:"array",names:["equation","equation*"],props:{numArgs:0},handler(t){E3(t);var e={autoTag:W7(t.envName),emptySingleRow:!0,singleRow:!0,maxNumCols:1,leqno:t.parser.settings.leqno};return ph(t.parser,e,"display")},htmlBuilder:Zl,mathmlBuilder:Jl});Ql({type:"array",names:["CD"],props:{numArgs:0},handler(t){return E3(t),p4e(t.parser)},htmlBuilder:Zl,mathmlBuilder:Jl});fe("\\nonumber","\\gdef\\@eqnsw{0}");fe("\\notag","\\nonumber");Nt({type:"text",names:["\\hline","\\hdashline"],props:{numArgs:0,allowedInText:!0,allowedInMath:!0},handler(t,e){throw new gt(t.funcName+" valid only within array environment")}});Tz=mG;Nt({type:"environment",names:["\\begin","\\end"],props:{numArgs:1,argTypes:["text"]},handler(t,e){var{parser:r,funcName:n}=t,i=e[0];if(i.type!=="ordgroup")throw new gt("Invalid environment name",i);for(var a="",s=0;s<i.body.length;++s)a+=xr(i.body[s],"textord").text;if(n==="\\begin"){if(!Tz.hasOwnProperty(a))throw new gt("No such environment: "+a,i);var l=Tz[a],{args:u,optArgs:h}=r.parseArguments("\\begin{"+a+"}",l),f={mode:r.mode,envName:a,parser:r},d=l.handler(f,u,h);r.expect("\\end",!1);var p=r.nextToken,m=xr(r.parseFunction(),"environment");if(m.name!==a)throw new gt("Mismatch: \\begin{"+a+"} matched by \\end{"+m.name+"}",p);return d}return{type:"environment",mode:r.mode,name:a,nameGroup:i}}});vG=o((t,e)=>{var r=t.font,n=e.withFont(r);return Fr(t.body,n)},"htmlBuilder$5"),xG=o((t,e)=>{var r=t.font,n=e.withFont(r);return yn(t.body,n)},"mathmlBuilder$4"),kz={"\\Bbb":"\\mathbb","\\bold":"\\mathbf","\\frak":"\\mathfrak","\\bm":"\\boldsymbol"};Nt({type:"font",names:["\\mathrm","\\mathit","\\mathbf","\\mathnormal","\\mathbb","\\mathcal","\\mathfrak","\\mathscr","\\mathsf","\\mathtt","\\Bbb","\\bold","\\frak"],props:{numArgs:1,allowedInArgument:!0},handler:o((t,e)=>{var{parser:r,funcName:n}=t,i=g3(e[0]),a=n;return a in kz&&(a=kz[a]),{type:"font",mode:r.mode,font:a.slice(1),body:i}},"handler"),htmlBuilder:vG,mathmlBuilder:xG});Nt({type:"mclass",names:["\\boldsymbol","\\bm"],props:{numArgs:1},handler:o((t,e)=>{var{parser:r}=t,n=e[0],i=Jt.isCharacterBox(n);return{type:"mclass",mode:r.mode,mclass:T3(n),body:[{type:"font",mode:r.mode,font:"boldsymbol",body:n}],isCharacterBox:i}},"handler")});Nt({type:"font",names:["\\rm","\\sf","\\tt","\\bf","\\it","\\cal"],props:{numArgs:0,allowedInText:!0},handler:o((t,e)=>{var{parser:r,funcName:n,breakOnTokenText:i}=t,{mode:a}=r,s=r.parseExpression(!0,i),l="math"+n.slice(1);return{type:"font",mode:a,font:l,body:{type:"ordgroup",mode:r.mode,body:s}}},"handler"),htmlBuilder:vG,mathmlBuilder:xG});bG=o((t,e)=>{var r=e;return t==="display"?r=r.id>=tr.SCRIPT.id?r.text():tr.DISPLAY:t==="text"&&r.size===tr.DISPLAY.size?r=tr.TEXT:t==="script"?r=tr.SCRIPT:t==="scriptscript"&&(r=tr.SCRIPTSCRIPT),r},"adjustStyle"),Y7=o((t,e)=>{var r=bG(t.size,e.style),n=r.fracNum(),i=r.fracDen(),a;a=e.havingStyle(n);var s=Fr(t.numer,a,e);if(t.continued){var l=8.5/e.fontMetrics().ptPerEm,u=3.5/e.fontMetrics().ptPerEm;s.height=s.height<l?l:s.height,s.depth=s.depth<u?u:s.depth}a=e.havingStyle(i);var h=Fr(t.denom,a,e),f,d,p;t.hasBarLine?(t.barSize?(d=ti(t.barSize,e),f=Be.makeLineSpan("frac-line",e,d)):f=Be.makeLineSpan("frac-line",e),d=f.height,p=f.height):(f=null,d=0,p=e.fontMetrics().defaultRuleThickness);var m,g,y;r.size===tr.DISPLAY.size||t.size==="display"?(m=e.fontMetrics().num1,d>0?g=3*p:g=7*p,y=e.fontMetrics().denom1):(d>0?(m=e.fontMetrics().num2,g=p):(m=e.fontMetrics().num3,g=3*p),y=e.fontMetrics().denom2);var v;if(f){var b=e.fontMetrics().axisHeight;m-s.depth-(b+.5*d)<g&&(m+=g-(m-s.depth-(b+.5*d))),b-.5*d-(h.height-y)<g&&(y+=g-(b-.5*d-(h.height-y)));var w=-(b-.5*d);v=Be.makeVList({positionType:"individualShift",children:[{type:"elem",elem:h,shift:y},{type:"elem",elem:f,shift:w},{type:"elem",elem:s,shift:-m}]},e)}else{var x=m-s.depth-(h.height-y);x<g&&(m+=.5*(g-x),y+=.5*(g-x)),v=Be.makeVList({positionType:"individualShift",children:[{type:"elem",elem:h,shift:y},{type:"elem",elem:s,shift:-m}]},e)}a=e.havingStyle(r),v.height*=a.sizeMultiplier/e.sizeMultiplier,v.depth*=a.sizeMultiplier/e.sizeMultiplier;var C;r.size===tr.DISPLAY.size?C=e.fontMetrics().delim1:r.size===tr.SCRIPTSCRIPT.size?C=e.havingStyle(tr.SCRIPT).fontMetrics().delim2:C=e.fontMetrics().delim2;var T,E;return t.leftDelim==null?T=Hy(e,["mopen"]):T=ou.customSizedDelim(t.leftDelim,C,!0,e.havingStyle(r),t.mode,["mopen"]),t.continued?E=Be.makeSpan([]):t.rightDelim==null?E=Hy(e,["mclose"]):E=ou.customSizedDelim(t.rightDelim,C,!0,e.havingStyle(r),t.mode,["mclose"]),Be.makeSpan(["mord"].concat(a.sizingClasses(e)),[T,Be.makeSpan(["mfrac"],[v]),E],e)},"htmlBuilder$4"),X7=o((t,e)=>{var r=new dt.MathNode("mfrac",[yn(t.numer,e),yn(t.denom,e)]);if(!t.hasBarLine)r.setAttribute("linethickness","0px");else if(t.barSize){var n=ti(t.barSize,e);r.setAttribute("linethickness",kt(n))}var i=bG(t.size,e.style);if(i.size!==e.style.size){r=new dt.MathNode("mstyle",[r]);var a=i.size===tr.DISPLAY.size?"true":"false";r.setAttribute("displaystyle",a),r.setAttribute("scriptlevel","0")}if(t.leftDelim!=null||t.rightDelim!=null){var s=[];if(t.leftDelim!=null){var l=new dt.MathNode("mo",[new dt.TextNode(t.leftDelim.replace("\\",""))]);l.setAttribute("fence","true"),s.push(l)}if(s.push(r),t.rightDelim!=null){var u=new dt.MathNode("mo",[new dt.TextNode(t.rightDelim.replace("\\",""))]);u.setAttribute("fence","true"),s.push(u)}return F7(s)}return r},"mathmlBuilder$3");Nt({type:"genfrac",names:["\\dfrac","\\frac","\\tfrac","\\dbinom","\\binom","\\tbinom","\\\\atopfrac","\\\\bracefrac","\\\\brackfrac"],props:{numArgs:2,allowedInArgument:!0},handler:o((t,e)=>{var{parser:r,funcName:n}=t,i=e[0],a=e[1],s,l=null,u=null,h="auto";switch(n){case"\\dfrac":case"\\frac":case"\\tfrac":s=!0;break;case"\\\\atopfrac":s=!1;break;case"\\dbinom":case"\\binom":case"\\tbinom":s=!1,l="(",u=")";break;case"\\\\bracefrac":s=!1,l="\\{",u="\\}";break;case"\\\\brackfrac":s=!1,l="[",u="]";break;default:throw new Error("Unrecognized genfrac command")}switch(n){case"\\dfrac":case"\\dbinom":h="display";break;case"\\tfrac":case"\\tbinom":h="text";break}return{type:"genfrac",mode:r.mode,continued:!1,numer:i,denom:a,hasBarLine:s,leftDelim:l,rightDelim:u,size:h,barSize:null}},"handler"),htmlBuilder:Y7,mathmlBuilder:X7});Nt({type:"genfrac",names:["\\cfrac"],props:{numArgs:2},handler:o((t,e)=>{var{parser:r,funcName:n}=t,i=e[0],a=e[1];return{type:"genfrac",mode:r.mode,continued:!0,numer:i,denom:a,hasBarLine:!0,leftDelim:null,rightDelim:null,size:"display",barSize:null}},"handler")});Nt({type:"infix",names:["\\over","\\choose","\\atop","\\brace","\\brack"],props:{numArgs:0,infix:!0},handler(t){var{parser:e,funcName:r,token:n}=t,i;switch(r){case"\\over":i="\\frac";break;case"\\choose":i="\\binom";break;case"\\atop":i="\\\\atopfrac";break;case"\\brace":i="\\\\bracefrac";break;case"\\brack":i="\\\\brackfrac";break;default:throw new Error("Unrecognized infix genfrac command")}return{type:"infix",mode:e.mode,replaceWith:i,token:n}}});Ez=["display","text","script","scriptscript"],Sz=o(function(e){var r=null;return e.length>0&&(r=e,r=r==="."?null:r),r},"delimFromValue");Nt({type:"genfrac",names:["\\genfrac"],props:{numArgs:6,allowedInArgument:!0,argTypes:["math","math","size","text","math","math"]},handler(t,e){var{parser:r}=t,n=e[4],i=e[5],a=g3(e[0]),s=a.type==="atom"&&a.family==="open"?Sz(a.text):null,l=g3(e[1]),u=l.type==="atom"&&l.family==="close"?Sz(l.text):null,h=xr(e[2],"size"),f,d=null;h.isBlank?f=!0:(d=h.value,f=d.number>0);var p="auto",m=e[3];if(m.type==="ordgroup"){if(m.body.length>0){var g=xr(m.body[0],"textord");p=Ez[Number(g.text)]}}else m=xr(m,"textord"),p=Ez[Number(m.text)];return{type:"genfrac",mode:r.mode,numer:n,denom:i,continued:!1,hasBarLine:f,barSize:d,leftDelim:s,rightDelim:u,size:p}},htmlBuilder:Y7,mathmlBuilder:X7});Nt({type:"infix",names:["\\above"],props:{numArgs:1,argTypes:["size"],infix:!0},handler(t,e){var{parser:r,funcName:n,token:i}=t;return{type:"infix",mode:r.mode,replaceWith:"\\\\abovefrac",size:xr(e[0],"size").value,token:i}}});Nt({type:"genfrac",names:["\\\\abovefrac"],props:{numArgs:3,argTypes:["math","size","math"]},handler:o((t,e)=>{var{parser:r,funcName:n}=t,i=e[0],a=obe(xr(e[1],"infix").size),s=e[2],l=a.number>0;return{type:"genfrac",mode:r.mode,numer:i,denom:s,continued:!1,hasBarLine:l,barSize:a,leftDelim:null,rightDelim:null,size:"auto"}},"handler"),htmlBuilder:Y7,mathmlBuilder:X7});wG=o((t,e)=>{var r=e.style,n,i;t.type==="supsub"?(n=t.sup?Fr(t.sup,e.havingStyle(r.sup()),e):Fr(t.sub,e.havingStyle(r.sub()),e),i=xr(t.base,"horizBrace")):i=xr(t,"horizBrace");var a=Fr(i.base,e.havingBaseStyle(tr.DISPLAY)),s=cu.svgSpan(i,e),l;if(i.isOver?(l=Be.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:a},{type:"kern",size:.1},{type:"elem",elem:s}]},e),l.children[0].children[0].children[1].classes.push("svg-align")):(l=Be.makeVList({positionType:"bottom",positionData:a.depth+.1+s.height,children:[{type:"elem",elem:s},{type:"kern",size:.1},{type:"elem",elem:a}]},e),l.children[0].children[0].children[0].classes.push("svg-align")),n){var u=Be.makeSpan(["mord",i.isOver?"mover":"munder"],[l],e);i.isOver?l=Be.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:u},{type:"kern",size:.2},{type:"elem",elem:n}]},e):l=Be.makeVList({positionType:"bottom",positionData:u.depth+.2+n.height+n.depth,children:[{type:"elem",elem:n},{type:"kern",size:.2},{type:"elem",elem:u}]},e)}return Be.makeSpan(["mord",i.isOver?"mover":"munder"],[l],e)},"htmlBuilder$3"),D4e=o((t,e)=>{var r=cu.mathMLnode(t.label);return new dt.MathNode(t.isOver?"mover":"munder",[yn(t.base,e),r])},"mathmlBuilder$2");Nt({type:"horizBrace",names:["\\overbrace","\\underbrace"],props:{numArgs:1},handler(t,e){var{parser:r,funcName:n}=t;return{type:"horizBrace",mode:r.mode,label:n,isOver:/^\\over/.test(n),base:e[0]}},htmlBuilder:wG,mathmlBuilder:D4e});Nt({type:"href",names:["\\href"],props:{numArgs:2,argTypes:["url","original"],allowedInText:!0},handler:o((t,e)=>{var{parser:r}=t,n=e[1],i=xr(e[0],"url").url;return r.settings.isTrusted({command:"\\href",url:i})?{type:"href",mode:r.mode,href:i,body:di(n)}:r.formatUnsupportedCmd("\\href")},"handler"),htmlBuilder:o((t,e)=>{var r=Pi(t.body,e,!1);return Be.makeAnchor(t.href,[],r,e)},"htmlBuilder"),mathmlBuilder:o((t,e)=>{var r=dh(t.body,e);return r instanceof ws||(r=new ws("mrow",[r])),r.setAttribute("href",t.href),r},"mathmlBuilder")});Nt({type:"href",names:["\\url"],props:{numArgs:1,argTypes:["url"],allowedInText:!0},handler:o((t,e)=>{var{parser:r}=t,n=xr(e[0],"url").url;if(!r.settings.isTrusted({command:"\\url",url:n}))return r.formatUnsupportedCmd("\\url");for(var i=[],a=0;a<n.length;a++){var s=n[a];s==="~"&&(s="\\textasciitilde"),i.push({type:"textord",mode:"text",text:s})}var l={type:"text",mode:r.mode,font:"\\texttt",body:i};return{type:"href",mode:r.mode,href:n,body:di(l)}},"handler")});Nt({type:"hbox",names:["\\hbox"],props:{numArgs:1,argTypes:["text"],allowedInText:!0,primitive:!0},handler(t,e){var{parser:r}=t;return{type:"hbox",mode:r.mode,body:di(e[0])}},htmlBuilder(t,e){var r=Pi(t.body,e,!1);return Be.makeFragment(r)},mathmlBuilder(t,e){return new dt.MathNode("mrow",ks(t.body,e))}});Nt({type:"html",names:["\\htmlClass","\\htmlId","\\htmlStyle","\\htmlData"],props:{numArgs:2,argTypes:["raw","original"],allowedInText:!0},handler:o((t,e)=>{var{parser:r,funcName:n,token:i}=t,a=xr(e[0],"raw").string,s=e[1];r.settings.strict&&r.settings.reportNonstrict("htmlExtension","HTML extension is disabled on strict mode");var l,u={};switch(n){case"\\htmlClass":u.class=a,l={command:"\\htmlClass",class:a};break;case"\\htmlId":u.id=a,l={command:"\\htmlId",id:a};break;case"\\htmlStyle":u.style=a,l={command:"\\htmlStyle",style:a};break;case"\\htmlData":{for(var h=a.split(","),f=0;f<h.length;f++){var d=h[f].split("=");if(d.length!==2)throw new gt("Error parsing key-value for \\htmlData");u["data-"+d[0].trim()]=d[1].trim()}l={command:"\\htmlData",attributes:u};break}default:throw new Error("Unrecognized html command")}return r.settings.isTrusted(l)?{type:"html",mode:r.mode,attributes:u,body:di(s)}:r.formatUnsupportedCmd(n)},"handler"),htmlBuilder:o((t,e)=>{var r=Pi(t.body,e,!1),n=["enclosing"];t.attributes.class&&n.push(...t.attributes.class.trim().split(/\s+/));var i=Be.makeSpan(n,r,e);for(var a in t.attributes)a!=="class"&&t.attributes.hasOwnProperty(a)&&i.setAttribute(a,t.attributes[a]);return i},"htmlBuilder"),mathmlBuilder:o((t,e)=>dh(t.body,e),"mathmlBuilder")});Nt({type:"htmlmathml",names:["\\html@mathml"],props:{numArgs:2,allowedInText:!0},handler:o((t,e)=>{var{parser:r}=t;return{type:"htmlmathml",mode:r.mode,html:di(e[0]),mathml:di(e[1])}},"handler"),htmlBuilder:o((t,e)=>{var r=Pi(t.html,e,!1);return Be.makeFragment(r)},"htmlBuilder"),mathmlBuilder:o((t,e)=>dh(t.mathml,e),"mathmlBuilder")});x7=o(function(e){if(/^[-+]? *(\d+(\.\d*)?|\.\d+)$/.test(e))return{number:+e,unit:"bp"};var r=/([-+]?) *(\d+(?:\.\d*)?|\.\d+) *([a-z]{2})/.exec(e);if(!r)throw new gt("Invalid size: '"+e+"' in \\includegraphics");var n={number:+(r[1]+r[2]),unit:r[3]};if(!zz(n))throw new gt("Invalid unit: '"+n.unit+"' in \\includegraphics.");return n},"sizeData");Nt({type:"includegraphics",names:["\\includegraphics"],props:{numArgs:1,numOptionalArgs:1,argTypes:["raw","url"],allowedInText:!1},handler:o((t,e,r)=>{var{parser:n}=t,i={number:0,unit:"em"},a={number:.9,unit:"em"},s={number:0,unit:"em"},l="";if(r[0])for(var u=xr(r[0],"raw").string,h=u.split(","),f=0;f<h.length;f++){var d=h[f].split("=");if(d.length===2){var p=d[1].trim();switch(d[0].trim()){case"alt":l=p;break;case"width":i=x7(p);break;case"height":a=x7(p);break;case"totalheight":s=x7(p);break;default:throw new gt("Invalid key: '"+d[0]+"' in \\includegraphics.")}}}var m=xr(e[0],"url").url;return l===""&&(l=m,l=l.replace(/^.*[\\/]/,""),l=l.substring(0,l.lastIndexOf("."))),n.settings.isTrusted({command:"\\includegraphics",url:m})?{type:"includegraphics",mode:n.mode,alt:l,width:i,height:a,totalheight:s,src:m}:n.formatUnsupportedCmd("\\includegraphics")},"handler"),htmlBuilder:o((t,e)=>{var r=ti(t.height,e),n=0;t.totalheight.number>0&&(n=ti(t.totalheight,e)-r);var i=0;t.width.number>0&&(i=ti(t.width,e));var a={height:kt(r+n)};i>0&&(a.width=kt(i)),n>0&&(a.verticalAlign=kt(-n));var s=new S7(t.src,t.alt,a);return s.height=r,s.depth=n,s},"htmlBuilder"),mathmlBuilder:o((t,e)=>{var r=new dt.MathNode("mglyph",[]);r.setAttribute("alt",t.alt);var n=ti(t.height,e),i=0;if(t.totalheight.number>0&&(i=ti(t.totalheight,e)-n,r.setAttribute("valign",kt(-i))),r.setAttribute("height",kt(n+i)),t.width.number>0){var a=ti(t.width,e);r.setAttribute("width",kt(a))}return r.setAttribute("src",t.src),r},"mathmlBuilder")});Nt({type:"kern",names:["\\kern","\\mkern","\\hskip","\\mskip"],props:{numArgs:1,argTypes:["size"],primitive:!0,allowedInText:!0},handler(t,e){var{parser:r,funcName:n}=t,i=xr(e[0],"size");if(r.settings.strict){var a=n[1]==="m",s=i.value.unit==="mu";a?(s||r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+n+" supports only mu units, "+("not "+i.value.unit+" units")),r.mode!=="math"&&r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+n+" works only in math mode")):s&&r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+n+" doesn't support mu units")}return{type:"kern",mode:r.mode,dimension:i.value}},htmlBuilder(t,e){return Be.makeGlue(t.dimension,e)},mathmlBuilder(t,e){var r=ti(t.dimension,e);return new dt.SpaceNode(r)}});Nt({type:"lap",names:["\\mathllap","\\mathrlap","\\mathclap"],props:{numArgs:1,allowedInText:!0},handler:o((t,e)=>{var{parser:r,funcName:n}=t,i=e[0];return{type:"lap",mode:r.mode,alignment:n.slice(5),body:i}},"handler"),htmlBuilder:o((t,e)=>{var r;t.alignment==="clap"?(r=Be.makeSpan([],[Fr(t.body,e)]),r=Be.makeSpan(["inner"],[r],e)):r=Be.makeSpan(["inner"],[Fr(t.body,e)]);var n=Be.makeSpan(["fix"],[]),i=Be.makeSpan([t.alignment],[r,n],e),a=Be.makeSpan(["strut"]);return a.style.height=kt(i.height+i.depth),i.depth&&(a.style.verticalAlign=kt(-i.depth)),i.children.unshift(a),i=Be.makeSpan(["thinbox"],[i],e),Be.makeSpan(["mord","vbox"],[i],e)},"htmlBuilder"),mathmlBuilder:o((t,e)=>{var r=new dt.MathNode("mpadded",[yn(t.body,e)]);if(t.alignment!=="rlap"){var n=t.alignment==="llap"?"-1":"-0.5";r.setAttribute("lspace",n+"width")}return r.setAttribute("width","0px"),r},"mathmlBuilder")});Nt({type:"styling",names:["\\(","$"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler(t,e){var{funcName:r,parser:n}=t,i=n.mode;n.switchMode("math");var a=r==="\\("?"\\)":"$",s=n.parseExpression(!1,a);return n.expect(a),n.switchMode(i),{type:"styling",mode:n.mode,style:"text",body:s}}});Nt({type:"text",names:["\\)","\\]"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler(t,e){throw new gt("Mismatched "+t.funcName)}});Cz=o((t,e)=>{switch(e.style.size){case tr.DISPLAY.size:return t.display;case tr.TEXT.size:return t.text;case tr.SCRIPT.size:return t.script;case tr.SCRIPTSCRIPT.size:return t.scriptscript;default:return t.text}},"chooseMathStyle");Nt({type:"mathchoice",names:["\\mathchoice"],props:{numArgs:4,primitive:!0},handler:o((t,e)=>{var{parser:r}=t;return{type:"mathchoice",mode:r.mode,display:di(e[0]),text:di(e[1]),script:di(e[2]),scriptscript:di(e[3])}},"handler"),htmlBuilder:o((t,e)=>{var r=Cz(t,e),n=Pi(r,e,!1);return Be.makeFragment(n)},"htmlBuilder"),mathmlBuilder:o((t,e)=>{var r=Cz(t,e);return dh(r,e)},"mathmlBuilder")});TG=o((t,e,r,n,i,a,s)=>{t=Be.makeSpan([],[t]);var l=r&&Jt.isCharacterBox(r),u,h;if(e){var f=Fr(e,n.havingStyle(i.sup()),n);h={elem:f,kern:Math.max(n.fontMetrics().bigOpSpacing1,n.fontMetrics().bigOpSpacing3-f.depth)}}if(r){var d=Fr(r,n.havingStyle(i.sub()),n);u={elem:d,kern:Math.max(n.fontMetrics().bigOpSpacing2,n.fontMetrics().bigOpSpacing4-d.height)}}var p;if(h&&u){var m=n.fontMetrics().bigOpSpacing5+u.elem.height+u.elem.depth+u.kern+t.depth+s;p=Be.makeVList({positionType:"bottom",positionData:m,children:[{type:"kern",size:n.fontMetrics().bigOpSpacing5},{type:"elem",elem:u.elem,marginLeft:kt(-a)},{type:"kern",size:u.kern},{type:"elem",elem:t},{type:"kern",size:h.kern},{type:"elem",elem:h.elem,marginLeft:kt(a)},{type:"kern",size:n.fontMetrics().bigOpSpacing5}]},n)}else if(u){var g=t.height-s;p=Be.makeVList({positionType:"top",positionData:g,children:[{type:"kern",size:n.fontMetrics().bigOpSpacing5},{type:"elem",elem:u.elem,marginLeft:kt(-a)},{type:"kern",size:u.kern},{type:"elem",elem:t}]},n)}else if(h){var y=t.depth+s;p=Be.makeVList({positionType:"bottom",positionData:y,children:[{type:"elem",elem:t},{type:"kern",size:h.kern},{type:"elem",elem:h.elem,marginLeft:kt(a)},{type:"kern",size:n.fontMetrics().bigOpSpacing5}]},n)}else return t;var v=[p];if(u&&a!==0&&!l){var x=Be.makeSpan(["mspace"],[],n);x.style.marginRight=kt(a),v.unshift(x)}return Be.makeSpan(["mop","op-limits"],v,n)},"assembleSupSub"),kG=["\\smallint"],m0=o((t,e)=>{var r,n,i=!1,a;t.type==="supsub"?(r=t.sup,n=t.sub,a=xr(t.base,"op"),i=!0):a=xr(t,"op");var s=e.style,l=!1;s.size===tr.DISPLAY.size&&a.symbol&&!Jt.contains(kG,a.name)&&(l=!0);var u;if(a.symbol){var h=l?"Size2-Regular":"Size1-Regular",f="";if((a.name==="\\oiint"||a.name==="\\oiiint")&&(f=a.name.slice(1),a.name=f==="oiint"?"\\iint":"\\iiint"),u=Be.makeSymbol(a.name,h,"math",e,["mop","op-symbol",l?"large-op":"small-op"]),f.length>0){var d=u.italic,p=Be.staticSvg(f+"Size"+(l?"2":"1"),e);u=Be.makeVList({positionType:"individualShift",children:[{type:"elem",elem:u,shift:0},{type:"elem",elem:p,shift:l?.08:0}]},e),a.name="\\"+f,u.classes.unshift("mop"),u.italic=d}}else if(a.body){var m=Pi(a.body,e,!0);m.length===1&&m[0]instanceof Ts?(u=m[0],u.classes[0]="mop"):u=Be.makeSpan(["mop"],m,e)}else{for(var g=[],y=1;y<a.name.length;y++)g.push(Be.mathsym(a.name[y],a.mode,e));u=Be.makeSpan(["mop"],g,e)}var v=0,x=0;return(u instanceof Ts||a.name==="\\oiint"||a.name==="\\oiiint")&&!a.suppressBaseShift&&(v=(u.height-u.depth)/2-e.fontMetrics().axisHeight,x=u.italic),i?TG(u,r,n,e,s,x,v):(v&&(u.style.position="relative",u.style.top=kt(v)),u)},"htmlBuilder$2"),Wy=o((t,e)=>{var r;if(t.symbol)r=new ws("mo",[Co(t.name,t.mode)]),Jt.contains(kG,t.name)&&r.setAttribute("largeop","false");else if(t.body)r=new ws("mo",ks(t.body,e));else{r=new ws("mi",[new Jf(t.name.slice(1))]);var n=new ws("mo",[Co("\u2061","text")]);t.parentIsSupSub?r=new ws("mrow",[r,n]):r=Qz([r,n])}return r},"mathmlBuilder$1"),L4e={"\u220F":"\\prod","\u2210":"\\coprod","\u2211":"\\sum","\u22C0":"\\bigwedge","\u22C1":"\\bigvee","\u22C2":"\\bigcap","\u22C3":"\\bigcup","\u2A00":"\\bigodot","\u2A01":"\\bigoplus","\u2A02":"\\bigotimes","\u2A04":"\\biguplus","\u2A06":"\\bigsqcup"};Nt({type:"op",names:["\\coprod","\\bigvee","\\bigwedge","\\biguplus","\\bigcap","\\bigcup","\\intop","\\prod","\\sum","\\bigotimes","\\bigoplus","\\bigodot","\\bigsqcup","\\smallint","\u220F","\u2210","\u2211","\u22C0","\u22C1","\u22C2","\u22C3","\u2A00","\u2A01","\u2A02","\u2A04","\u2A06"],props:{numArgs:0},handler:o((t,e)=>{var{parser:r,funcName:n}=t,i=n;return i.length===1&&(i=L4e[i]),{type:"op",mode:r.mode,limits:!0,parentIsSupSub:!1,symbol:!0,name:i}},"handler"),htmlBuilder:m0,mathmlBuilder:Wy});Nt({type:"op",names:["\\mathop"],props:{numArgs:1,primitive:!0},handler:o((t,e)=>{var{parser:r}=t,n=e[0];return{type:"op",mode:r.mode,limits:!1,parentIsSupSub:!1,symbol:!1,body:di(n)}},"handler"),htmlBuilder:m0,mathmlBuilder:Wy});R4e={"\u222B":"\\int","\u222C":"\\iint","\u222D":"\\iiint","\u222E":"\\oint","\u222F":"\\oiint","\u2230":"\\oiiint"};Nt({type:"op",names:["\\arcsin","\\arccos","\\arctan","\\arctg","\\arcctg","\\arg","\\ch","\\cos","\\cosec","\\cosh","\\cot","\\cotg","\\coth","\\csc","\\ctg","\\cth","\\deg","\\dim","\\exp","\\hom","\\ker","\\lg","\\ln","\\log","\\sec","\\sin","\\sinh","\\sh","\\tan","\\tanh","\\tg","\\th"],props:{numArgs:0},handler(t){var{parser:e,funcName:r}=t;return{type:"op",mode:e.mode,limits:!1,parentIsSupSub:!1,symbol:!1,name:r}},htmlBuilder:m0,mathmlBuilder:Wy});Nt({type:"op",names:["\\det","\\gcd","\\inf","\\lim","\\max","\\min","\\Pr","\\sup"],props:{numArgs:0},handler(t){var{parser:e,funcName:r}=t;return{type:"op",mode:e.mode,limits:!0,parentIsSupSub:!1,symbol:!1,name:r}},htmlBuilder:m0,mathmlBuilder:Wy});Nt({type:"op",names:["\\int","\\iint","\\iiint","\\oint","\\oiint","\\oiiint","\u222B","\u222C","\u222D","\u222E","\u222F","\u2230"],props:{numArgs:0},handler(t){var{parser:e,funcName:r}=t,n=r;return n.length===1&&(n=R4e[n]),{type:"op",mode:e.mode,limits:!1,parentIsSupSub:!1,symbol:!0,name:n}},htmlBuilder:m0,mathmlBuilder:Wy});EG=o((t,e)=>{var r,n,i=!1,a;t.type==="supsub"?(r=t.sup,n=t.sub,a=xr(t.base,"operatorname"),i=!0):a=xr(t,"operatorname");var s;if(a.body.length>0){for(var l=a.body.map(d=>{var p=d.text;return typeof p=="string"?{type:"textord",mode:d.mode,text:p}:d}),u=Pi(l,e.withFont("mathrm"),!0),h=0;h<u.length;h++){var f=u[h];f instanceof Ts&&(f.text=f.text.replace(/\u2212/,"-").replace(/\u2217/,"*"))}s=Be.makeSpan(["mop"],u,e)}else s=Be.makeSpan(["mop"],[],e);return i?TG(s,r,n,e,e.style,0,0):s},"htmlBuilder$1"),N4e=o((t,e)=>{for(var r=ks(t.body,e.withFont("mathrm")),n=!0,i=0;i<r.length;i++){var a=r[i];if(!(a instanceof dt.SpaceNode))if(a instanceof dt.MathNode)switch(a.type){case"mi":case"mn":case"ms":case"mspace":case"mtext":break;case"mo":{var s=a.children[0];a.children.length===1&&s instanceof dt.TextNode?s.text=s.text.replace(/\u2212/,"-").replace(/\u2217/,"*"):n=!1;break}default:n=!1}else n=!1}if(n){var l=r.map(f=>f.toText()).join("");r=[new dt.TextNode(l)]}var u=new dt.MathNode("mi",r);u.setAttribute("mathvariant","normal");var h=new dt.MathNode("mo",[Co("\u2061","text")]);return t.parentIsSupSub?new dt.MathNode("mrow",[u,h]):dt.newDocumentFragment([u,h])},"mathmlBuilder");Nt({type:"operatorname",names:["\\operatorname@","\\operatornamewithlimits"],props:{numArgs:1},handler:o((t,e)=>{var{parser:r,funcName:n}=t,i=e[0];return{type:"operatorname",mode:r.mode,body:di(i),alwaysHandleSupSub:n==="\\operatornamewithlimits",limits:!1,parentIsSupSub:!1}},"handler"),htmlBuilder:EG,mathmlBuilder:N4e});fe("\\operatorname","\\@ifstar\\operatornamewithlimits\\operatorname@");rd({type:"ordgroup",htmlBuilder(t,e){return t.semisimple?Be.makeFragment(Pi(t.body,e,!1)):Be.makeSpan(["mord"],Pi(t.body,e,!0),e)},mathmlBuilder(t,e){return dh(t.body,e,!0)}});Nt({type:"overline",names:["\\overline"],props:{numArgs:1},handler(t,e){var{parser:r}=t,n=e[0];return{type:"overline",mode:r.mode,body:n}},htmlBuilder(t,e){var r=Fr(t.body,e.havingCrampedStyle()),n=Be.makeLineSpan("overline-line",e),i=e.fontMetrics().defaultRuleThickness,a=Be.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:r},{type:"kern",size:3*i},{type:"elem",elem:n},{type:"kern",size:i}]},e);return Be.makeSpan(["mord","overline"],[a],e)},mathmlBuilder(t,e){var r=new dt.MathNode("mo",[new dt.TextNode("\u203E")]);r.setAttribute("stretchy","true");var n=new dt.MathNode("mover",[yn(t.body,e),r]);return n.setAttribute("accent","true"),n}});Nt({type:"phantom",names:["\\phantom"],props:{numArgs:1,allowedInText:!0},handler:o((t,e)=>{var{parser:r}=t,n=e[0];return{type:"phantom",mode:r.mode,body:di(n)}},"handler"),htmlBuilder:o((t,e)=>{var r=Pi(t.body,e.withPhantom(),!1);return Be.makeFragment(r)},"htmlBuilder"),mathmlBuilder:o((t,e)=>{var r=ks(t.body,e);return new dt.MathNode("mphantom",r)},"mathmlBuilder")});Nt({type:"hphantom",names:["\\hphantom"],props:{numArgs:1,allowedInText:!0},handler:o((t,e)=>{var{parser:r}=t,n=e[0];return{type:"hphantom",mode:r.mode,body:n}},"handler"),htmlBuilder:o((t,e)=>{var r=Be.makeSpan([],[Fr(t.body,e.withPhantom())]);if(r.height=0,r.depth=0,r.children)for(var n=0;n<r.children.length;n++)r.children[n].height=0,r.children[n].depth=0;return r=Be.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:r}]},e),Be.makeSpan(["mord"],[r],e)},"htmlBuilder"),mathmlBuilder:o((t,e)=>{var r=ks(di(t.body),e),n=new dt.MathNode("mphantom",r),i=new dt.MathNode("mpadded",[n]);return i.setAttribute("height","0px"),i.setAttribute("depth","0px"),i},"mathmlBuilder")});Nt({type:"vphantom",names:["\\vphantom"],props:{numArgs:1,allowedInText:!0},handler:o((t,e)=>{var{parser:r}=t,n=e[0];return{type:"vphantom",mode:r.mode,body:n}},"handler"),htmlBuilder:o((t,e)=>{var r=Be.makeSpan(["inner"],[Fr(t.body,e.withPhantom())]),n=Be.makeSpan(["fix"],[]);return Be.makeSpan(["mord","rlap"],[r,n],e)},"htmlBuilder"),mathmlBuilder:o((t,e)=>{var r=ks(di(t.body),e),n=new dt.MathNode("mphantom",r),i=new dt.MathNode("mpadded",[n]);return i.setAttribute("width","0px"),i},"mathmlBuilder")});Nt({type:"raisebox",names:["\\raisebox"],props:{numArgs:2,argTypes:["size","hbox"],allowedInText:!0},handler(t,e){var{parser:r}=t,n=xr(e[0],"size").value,i=e[1];return{type:"raisebox",mode:r.mode,dy:n,body:i}},htmlBuilder(t,e){var r=Fr(t.body,e),n=ti(t.dy,e);return Be.makeVList({positionType:"shift",positionData:-n,children:[{type:"elem",elem:r}]},e)},mathmlBuilder(t,e){var r=new dt.MathNode("mpadded",[yn(t.body,e)]),n=t.dy.number+t.dy.unit;return r.setAttribute("voffset",n),r}});Nt({type:"internal",names:["\\relax"],props:{numArgs:0,allowedInText:!0},handler(t){var{parser:e}=t;return{type:"internal",mode:e.mode}}});Nt({type:"rule",names:["\\rule"],props:{numArgs:2,numOptionalArgs:1,argTypes:["size","size","size"]},handler(t,e,r){var{parser:n}=t,i=r[0],a=xr(e[0],"size"),s=xr(e[1],"size");return{type:"rule",mode:n.mode,shift:i&&xr(i,"size").value,width:a.value,height:s.value}},htmlBuilder(t,e){var r=Be.makeSpan(["mord","rule"],[],e),n=ti(t.width,e),i=ti(t.height,e),a=t.shift?ti(t.shift,e):0;return r.style.borderRightWidth=kt(n),r.style.borderTopWidth=kt(i),r.style.bottom=kt(a),r.width=n,r.height=i+a,r.depth=-a,r.maxFontSize=i*1.125*e.sizeMultiplier,r},mathmlBuilder(t,e){var r=ti(t.width,e),n=ti(t.height,e),i=t.shift?ti(t.shift,e):0,a=e.color&&e.getColor()||"black",s=new dt.MathNode("mspace");s.setAttribute("mathbackground",a),s.setAttribute("width",kt(r)),s.setAttribute("height",kt(n));var l=new dt.MathNode("mpadded",[s]);return i>=0?l.setAttribute("height",kt(i)):(l.setAttribute("height",kt(i)),l.setAttribute("depth",kt(-i))),l.setAttribute("voffset",kt(i)),l}});o(SG,"sizingGroup");Az=["\\tiny","\\sixptsize","\\scriptsize","\\footnotesize","\\small","\\normalsize","\\large","\\Large","\\LARGE","\\huge","\\Huge"],M4e=o((t,e)=>{var r=e.havingSize(t.size);return SG(t.body,r,e)},"htmlBuilder");Nt({type:"sizing",names:Az,props:{numArgs:0,allowedInText:!0},handler:o((t,e)=>{var{breakOnTokenText:r,funcName:n,parser:i}=t,a=i.parseExpression(!1,r);return{type:"sizing",mode:i.mode,size:Az.indexOf(n)+1,body:a}},"handler"),htmlBuilder:M4e,mathmlBuilder:o((t,e)=>{var r=e.havingSize(t.size),n=ks(t.body,r),i=new dt.MathNode("mstyle",n);return i.setAttribute("mathsize",kt(r.sizeMultiplier)),i},"mathmlBuilder")});Nt({type:"smash",names:["\\smash"],props:{numArgs:1,numOptionalArgs:1,allowedInText:!0},handler:o((t,e,r)=>{var{parser:n}=t,i=!1,a=!1,s=r[0]&&xr(r[0],"ordgroup");if(s)for(var l="",u=0;u<s.body.length;++u){var h=s.body[u];if(l=h.text,l==="t")i=!0;else if(l==="b")a=!0;else{i=!1,a=!1;break}}else i=!0,a=!0;var f=e[0];return{type:"smash",mode:n.mode,body:f,smashHeight:i,smashDepth:a}},"handler"),htmlBuilder:o((t,e)=>{var r=Be.makeSpan([],[Fr(t.body,e)]);if(!t.smashHeight&&!t.smashDepth)return r;if(t.smashHeight&&(r.height=0,r.children))for(var n=0;n<r.children.length;n++)r.children[n].height=0;if(t.smashDepth&&(r.depth=0,r.children))for(var i=0;i<r.children.length;i++)r.children[i].depth=0;var a=Be.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:r}]},e);return Be.makeSpan(["mord"],[a],e)},"htmlBuilder"),mathmlBuilder:o((t,e)=>{var r=new dt.MathNode("mpadded",[yn(t.body,e)]);return t.smashHeight&&r.setAttribute("height","0px"),t.smashDepth&&r.setAttribute("depth","0px"),r},"mathmlBuilder")});Nt({type:"sqrt",names:["\\sqrt"],props:{numArgs:1,numOptionalArgs:1},handler(t,e,r){var{parser:n}=t,i=r[0],a=e[0];return{type:"sqrt",mode:n.mode,body:a,index:i}},htmlBuilder(t,e){var r=Fr(t.body,e.havingCrampedStyle());r.height===0&&(r.height=e.fontMetrics().xHeight),r=Be.wrapFragment(r,e);var n=e.fontMetrics(),i=n.defaultRuleThickness,a=i;e.style.id<tr.TEXT.id&&(a=e.fontMetrics().xHeight);var s=i+a/4,l=r.height+r.depth+s+i,{span:u,ruleWidth:h,advanceWidth:f}=ou.sqrtImage(l,e),d=u.height-h;d>r.height+r.depth+s&&(s=(s+d-r.height-r.depth)/2);var p=u.height-r.height-s-h;r.style.paddingLeft=kt(f);var m=Be.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:r,wrapperClasses:["svg-align"]},{type:"kern",size:-(r.height+p)},{type:"elem",elem:u},{type:"kern",size:h}]},e);if(t.index){var g=e.havingStyle(tr.SCRIPTSCRIPT),y=Fr(t.index,g,e),v=.6*(m.height-m.depth),x=Be.makeVList({positionType:"shift",positionData:-v,children:[{type:"elem",elem:y}]},e),b=Be.makeSpan(["root"],[x]);return Be.makeSpan(["mord","sqrt"],[b,m],e)}else return Be.makeSpan(["mord","sqrt"],[m],e)},mathmlBuilder(t,e){var{body:r,index:n}=t;return n?new dt.MathNode("mroot",[yn(r,e),yn(n,e)]):new dt.MathNode("msqrt",[yn(r,e)])}});_z={display:tr.DISPLAY,text:tr.TEXT,script:tr.SCRIPT,scriptscript:tr.SCRIPTSCRIPT};Nt({type:"styling",names:["\\displaystyle","\\textstyle","\\scriptstyle","\\scriptscriptstyle"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(t,e){var{breakOnTokenText:r,funcName:n,parser:i}=t,a=i.parseExpression(!0,r),s=n.slice(1,n.length-5);return{type:"styling",mode:i.mode,style:s,body:a}},htmlBuilder(t,e){var r=_z[t.style],n=e.havingStyle(r).withFont("");return SG(t.body,n,e)},mathmlBuilder(t,e){var r=_z[t.style],n=e.havingStyle(r),i=ks(t.body,n),a=new dt.MathNode("mstyle",i),s={display:["0","true"],text:["0","false"],script:["1","false"],scriptscript:["2","false"]},l=s[t.style];return a.setAttribute("scriptlevel",l[0]),a.setAttribute("displaystyle",l[1]),a}});I4e=o(function(e,r){var n=e.base;if(n)if(n.type==="op"){var i=n.limits&&(r.style.size===tr.DISPLAY.size||n.alwaysHandleSupSub);return i?m0:null}else if(n.type==="operatorname"){var a=n.alwaysHandleSupSub&&(r.style.size===tr.DISPLAY.size||n.limits);return a?EG:null}else{if(n.type==="accent")return Jt.isCharacterBox(n.base)?G7:null;if(n.type==="horizBrace"){var s=!e.sub;return s===n.isOver?wG:null}else return null}else return null},"htmlBuilderDelegate");rd({type:"supsub",htmlBuilder(t,e){var r=I4e(t,e);if(r)return r(t,e);var{base:n,sup:i,sub:a}=t,s=Fr(n,e),l,u,h=e.fontMetrics(),f=0,d=0,p=n&&Jt.isCharacterBox(n);if(i){var m=e.havingStyle(e.style.sup());l=Fr(i,m,e),p||(f=s.height-m.fontMetrics().supDrop*m.sizeMultiplier/e.sizeMultiplier)}if(a){var g=e.havingStyle(e.style.sub());u=Fr(a,g,e),p||(d=s.depth+g.fontMetrics().subDrop*g.sizeMultiplier/e.sizeMultiplier)}var y;e.style===tr.DISPLAY?y=h.sup1:e.style.cramped?y=h.sup3:y=h.sup2;var v=e.sizeMultiplier,x=kt(.5/h.ptPerEm/v),b=null;if(u){var w=t.base&&t.base.type==="op"&&t.base.name&&(t.base.name==="\\oiint"||t.base.name==="\\oiiint");(s instanceof Ts||w)&&(b=kt(-s.italic))}var C;if(l&&u){f=Math.max(f,y,l.depth+.25*h.xHeight),d=Math.max(d,h.sub2);var T=h.defaultRuleThickness,E=4*T;if(f-l.depth-(u.height-d)<E){d=E-(f-l.depth)+u.height;var A=.8*h.xHeight-(f-l.depth);A>0&&(f+=A,d-=A)}var S=[{type:"elem",elem:u,shift:d,marginRight:x,marginLeft:b},{type:"elem",elem:l,shift:-f,marginRight:x}];C=Be.makeVList({positionType:"individualShift",children:S},e)}else if(u){d=Math.max(d,h.sub1,u.height-.8*h.xHeight);var _=[{type:"elem",elem:u,marginLeft:b,marginRight:x}];C=Be.makeVList({positionType:"shift",positionData:d,children:_},e)}else if(l)f=Math.max(f,y,l.depth+.25*h.xHeight),C=Be.makeVList({positionType:"shift",positionData:-f,children:[{type:"elem",elem:l,marginRight:x}]},e);else throw new Error("supsub must have either sup or sub.");var I=A7(s,"right")||"mord";return Be.makeSpan([I],[s,Be.makeSpan(["msupsub"],[C])],e)},mathmlBuilder(t,e){var r=!1,n,i;t.base&&t.base.type==="horizBrace"&&(i=!!t.sup,i===t.base.isOver&&(r=!0,n=t.base.isOver)),t.base&&(t.base.type==="op"||t.base.type==="operatorname")&&(t.base.parentIsSupSub=!0);var a=[yn(t.base,e)];t.sub&&a.push(yn(t.sub,e)),t.sup&&a.push(yn(t.sup,e));var s;if(r)s=n?"mover":"munder";else if(t.sub)if(t.sup){var h=t.base;h&&h.type==="op"&&h.limits&&e.style===tr.DISPLAY||h&&h.type==="operatorname"&&h.alwaysHandleSupSub&&(e.style===tr.DISPLAY||h.limits)?s="munderover":s="msubsup"}else{var u=t.base;u&&u.type==="op"&&u.limits&&(e.style===tr.DISPLAY||u.alwaysHandleSupSub)||u&&u.type==="operatorname"&&u.alwaysHandleSupSub&&(u.limits||e.style===tr.DISPLAY)?s="munder":s="msub"}else{var l=t.base;l&&l.type==="op"&&l.limits&&(e.style===tr.DISPLAY||l.alwaysHandleSupSub)||l&&l.type==="operatorname"&&l.alwaysHandleSupSub&&(l.limits||e.style===tr.DISPLAY)?s="mover":s="msup"}return new dt.MathNode(s,a)}});rd({type:"atom",htmlBuilder(t,e){return Be.mathsym(t.text,t.mode,e,["m"+t.family])},mathmlBuilder(t,e){var r=new dt.MathNode("mo",[Co(t.text,t.mode)]);if(t.family==="bin"){var n=$7(t,e);n==="bold-italic"&&r.setAttribute("mathvariant",n)}else t.family==="punct"?r.setAttribute("separator","true"):(t.family==="open"||t.family==="close")&&r.setAttribute("stretchy","false");return r}});CG={mi:"italic",mn:"normal",mtext:"normal"};rd({type:"mathord",htmlBuilder(t,e){return Be.makeOrd(t,e,"mathord")},mathmlBuilder(t,e){var r=new dt.MathNode("mi",[Co(t.text,t.mode,e)]),n=$7(t,e)||"italic";return n!==CG[r.type]&&r.setAttribute("mathvariant",n),r}});rd({type:"textord",htmlBuilder(t,e){return Be.makeOrd(t,e,"textord")},mathmlBuilder(t,e){var r=Co(t.text,t.mode,e),n=$7(t,e)||"normal",i;return t.mode==="text"?i=new dt.MathNode("mtext",[r]):/[0-9]/.test(t.text)?i=new dt.MathNode("mn",[r]):t.text==="\\prime"?i=new dt.MathNode("mo",[r]):i=new dt.MathNode("mi",[r]),n!==CG[i.type]&&i.setAttribute("mathvariant",n),i}});b7={"\\nobreak":"nobreak","\\allowbreak":"allowbreak"},w7={" ":{},"\\ ":{},"~":{className:"nobreak"},"\\space":{},"\\nobreakspace":{className:"nobreak"}};rd({type:"spacing",htmlBuilder(t,e){if(w7.hasOwnProperty(t.text)){var r=w7[t.text].className||"";if(t.mode==="text"){var n=Be.makeOrd(t,e,"textord");return n.classes.push(r),n}else return Be.makeSpan(["mspace",r],[Be.mathsym(t.text,t.mode,e)],e)}else{if(b7.hasOwnProperty(t.text))return Be.makeSpan(["mspace",b7[t.text]],[],e);throw new gt('Unknown type of space "'+t.text+'"')}},mathmlBuilder(t,e){var r;if(w7.hasOwnProperty(t.text))r=new dt.MathNode("mtext",[new dt.TextNode("\xA0")]);else{if(b7.hasOwnProperty(t.text))return new dt.MathNode("mspace");throw new gt('Unknown type of space "'+t.text+'"')}return r}});Dz=o(()=>{var t=new dt.MathNode("mtd",[]);return t.setAttribute("width","50%"),t},"pad");rd({type:"tag",mathmlBuilder(t,e){var r=new dt.MathNode("mtable",[new dt.MathNode("mtr",[Dz(),new dt.MathNode("mtd",[dh(t.body,e)]),Dz(),new dt.MathNode("mtd",[dh(t.tag,e)])])]);return r.setAttribute("width","100%"),r}});Lz={"\\text":void 0,"\\textrm":"textrm","\\textsf":"textsf","\\texttt":"texttt","\\textnormal":"textrm"},Rz={"\\textbf":"textbf","\\textmd":"textmd"},O4e={"\\textit":"textit","\\textup":"textup"},Nz=o((t,e)=>{var r=t.font;if(r){if(Lz[r])return e.withTextFontFamily(Lz[r]);if(Rz[r])return e.withTextFontWeight(Rz[r]);if(r==="\\emph")return e.fontShape==="textit"?e.withTextFontShape("textup"):e.withTextFontShape("textit")}else return e;return e.withTextFontShape(O4e[r])},"optionsWithFont");Nt({type:"text",names:["\\text","\\textrm","\\textsf","\\texttt","\\textnormal","\\textbf","\\textmd","\\textit","\\textup","\\emph"],props:{numArgs:1,argTypes:["text"],allowedInArgument:!0,allowedInText:!0},handler(t,e){var{parser:r,funcName:n}=t,i=e[0];return{type:"text",mode:r.mode,body:di(i),font:n}},htmlBuilder(t,e){var r=Nz(t,e),n=Pi(t.body,r,!0);return Be.makeSpan(["mord","text"],n,r)},mathmlBuilder(t,e){var r=Nz(t,e);return dh(t.body,r)}});Nt({type:"underline",names:["\\underline"],props:{numArgs:1,allowedInText:!0},handler(t,e){var{parser:r}=t;return{type:"underline",mode:r.mode,body:e[0]}},htmlBuilder(t,e){var r=Fr(t.body,e),n=Be.makeLineSpan("underline-line",e),i=e.fontMetrics().defaultRuleThickness,a=Be.makeVList({positionType:"top",positionData:r.height,children:[{type:"kern",size:i},{type:"elem",elem:n},{type:"kern",size:3*i},{type:"elem",elem:r}]},e);return Be.makeSpan(["mord","underline"],[a],e)},mathmlBuilder(t,e){var r=new dt.MathNode("mo",[new dt.TextNode("\u203E")]);r.setAttribute("stretchy","true");var n=new dt.MathNode("munder",[yn(t.body,e),r]);return n.setAttribute("accentunder","true"),n}});Nt({type:"vcenter",names:["\\vcenter"],props:{numArgs:1,argTypes:["original"],allowedInText:!1},handler(t,e){var{parser:r}=t;return{type:"vcenter",mode:r.mode,body:e[0]}},htmlBuilder(t,e){var r=Fr(t.body,e),n=e.fontMetrics().axisHeight,i=.5*(r.height-n-(r.depth+n));return Be.makeVList({positionType:"shift",positionData:i,children:[{type:"elem",elem:r}]},e)},mathmlBuilder(t,e){return new dt.MathNode("mpadded",[yn(t.body,e)],["vcenter"])}});Nt({type:"verb",names:["\\verb"],props:{numArgs:0,allowedInText:!0},handler(t,e,r){throw new gt("\\verb ended by end of line instead of matching delimiter")},htmlBuilder(t,e){for(var r=Mz(t),n=[],i=e.havingStyle(e.style.text()),a=0;a<r.length;a++){var s=r[a];s==="~"&&(s="\\textasciitilde"),n.push(Be.makeSymbol(s,"Typewriter-Regular",t.mode,i,["mord","texttt"]))}return Be.makeSpan(["mord","text"].concat(i.sizingClasses(e)),Be.tryCombineChars(n),i)},mathmlBuilder(t,e){var r=new dt.TextNode(Mz(t)),n=new dt.MathNode("mtext",[r]);return n.setAttribute("mathvariant","monospace"),n}});Mz=o(t=>t.body.replace(/ /g,t.star?"\u2423":"\xA0"),"makeVerb"),hh=jz,AG=`[ \r
+	]`,P4e="\\\\[a-zA-Z@]+",B4e="\\\\[^\uD800-\uDFFF]",F4e="("+P4e+")"+AG+"*",$4e=`\\\\(
+|[ \r	]+
+?)[ \r	]*`,N7="[\u0300-\u036F]",z4e=new RegExp(N7+"+$"),G4e="("+AG+"+)|"+($4e+"|")+"([!-\\[\\]-\u2027\u202A-\uD7FF\uF900-\uFFFF]"+(N7+"*")+"|[\uD800-\uDBFF][\uDC00-\uDFFF]"+(N7+"*")+"|\\\\verb\\*([^]).*?\\4|\\\\verb([^*a-zA-Z]).*?\\5"+("|"+F4e)+("|"+B4e+")"),y3=class{static{o(this,"Lexer")}constructor(e,r){this.input=void 0,this.settings=void 0,this.tokenRegex=void 0,this.catcodes=void 0,this.input=e,this.settings=r,this.tokenRegex=new RegExp(G4e,"g"),this.catcodes={"%":14,"~":13}}setCatcode(e,r){this.catcodes[e]=r}lex(){var e=this.input,r=this.tokenRegex.lastIndex;if(r===e.length)return new So("EOF",new Xs(this,r,r));var n=this.tokenRegex.exec(e);if(n===null||n.index!==r)throw new gt("Unexpected character: '"+e[r]+"'",new So(e[r],new Xs(this,r,r+1)));var i=n[6]||n[3]||(n[2]?"\\ ":" ");if(this.catcodes[i]===14){var a=e.indexOf(`
+`,this.tokenRegex.lastIndex);return a===-1?(this.tokenRegex.lastIndex=e.length,this.settings.reportNonstrict("commentAtEnd","% comment has no terminating newline; LaTeX would fail because of commenting the end of math mode (e.g. $)")):this.tokenRegex.lastIndex=a+1,this.lex()}return new So(i,new Xs(this,r,this.tokenRegex.lastIndex))}},M7=class{static{o(this,"Namespace")}constructor(e,r){e===void 0&&(e={}),r===void 0&&(r={}),this.current=void 0,this.builtins=void 0,this.undefStack=void 0,this.current=r,this.builtins=e,this.undefStack=[]}beginGroup(){this.undefStack.push({})}endGroup(){if(this.undefStack.length===0)throw new gt("Unbalanced namespace destruction: attempt to pop global namespace; please report this as a bug");var e=this.undefStack.pop();for(var r in e)e.hasOwnProperty(r)&&(e[r]==null?delete this.current[r]:this.current[r]=e[r])}endGroups(){for(;this.undefStack.length>0;)this.endGroup()}has(e){return this.current.hasOwnProperty(e)||this.builtins.hasOwnProperty(e)}get(e){return this.current.hasOwnProperty(e)?this.current[e]:this.builtins[e]}set(e,r,n){if(n===void 0&&(n=!1),n){for(var i=0;i<this.undefStack.length;i++)delete this.undefStack[i][e];this.undefStack.length>0&&(this.undefStack[this.undefStack.length-1][e]=r)}else{var a=this.undefStack[this.undefStack.length-1];a&&!a.hasOwnProperty(e)&&(a[e]=this.current[e])}r==null?delete this.current[e]:this.current[e]=r}},V4e=gG;fe("\\noexpand",function(t){var e=t.popToken();return t.isExpandable(e.text)&&(e.noexpand=!0,e.treatAsRelax=!0),{tokens:[e],numArgs:0}});fe("\\expandafter",function(t){var e=t.popToken();return t.expandOnce(!0),{tokens:[e],numArgs:0}});fe("\\@firstoftwo",function(t){var e=t.consumeArgs(2);return{tokens:e[0],numArgs:0}});fe("\\@secondoftwo",function(t){var e=t.consumeArgs(2);return{tokens:e[1],numArgs:0}});fe("\\@ifnextchar",function(t){var e=t.consumeArgs(3);t.consumeSpaces();var r=t.future();return e[0].length===1&&e[0][0].text===r.text?{tokens:e[1],numArgs:0}:{tokens:e[2],numArgs:0}});fe("\\@ifstar","\\@ifnextchar *{\\@firstoftwo{#1}}");fe("\\TextOrMath",function(t){var e=t.consumeArgs(2);return t.mode==="text"?{tokens:e[0],numArgs:0}:{tokens:e[1],numArgs:0}});Iz={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,a:10,A:10,b:11,B:11,c:12,C:12,d:13,D:13,e:14,E:14,f:15,F:15};fe("\\char",function(t){var e=t.popToken(),r,n="";if(e.text==="'")r=8,e=t.popToken();else if(e.text==='"')r=16,e=t.popToken();else if(e.text==="`")if(e=t.popToken(),e.text[0]==="\\")n=e.text.charCodeAt(1);else{if(e.text==="EOF")throw new gt("\\char` missing argument");n=e.text.charCodeAt(0)}else r=10;if(r){if(n=Iz[e.text],n==null||n>=r)throw new gt("Invalid base-"+r+" digit "+e.text);for(var i;(i=Iz[t.future().text])!=null&&i<r;)n*=r,n+=i,t.popToken()}return"\\@char{"+n+"}"});j7=o((t,e,r)=>{var n=t.consumeArg().tokens;if(n.length!==1)throw new gt("\\newcommand's first argument must be a macro name");var i=n[0].text,a=t.isDefined(i);if(a&&!e)throw new gt("\\newcommand{"+i+"} attempting to redefine "+(i+"; use \\renewcommand"));if(!a&&!r)throw new gt("\\renewcommand{"+i+"} when command "+i+" does not yet exist; use \\newcommand");var s=0;if(n=t.consumeArg().tokens,n.length===1&&n[0].text==="["){for(var l="",u=t.expandNextToken();u.text!=="]"&&u.text!=="EOF";)l+=u.text,u=t.expandNextToken();if(!l.match(/^\s*[0-9]+\s*$/))throw new gt("Invalid number of arguments: "+l);s=parseInt(l),n=t.consumeArg().tokens}return t.macros.set(i,{tokens:n,numArgs:s}),""},"newcommand");fe("\\newcommand",t=>j7(t,!1,!0));fe("\\renewcommand",t=>j7(t,!0,!1));fe("\\providecommand",t=>j7(t,!0,!0));fe("\\message",t=>{var e=t.consumeArgs(1)[0];return console.log(e.reverse().map(r=>r.text).join("")),""});fe("\\errmessage",t=>{var e=t.consumeArgs(1)[0];return console.error(e.reverse().map(r=>r.text).join("")),""});fe("\\show",t=>{var e=t.popToken(),r=e.text;return console.log(e,t.macros.get(r),hh[r],An.math[r],An.text[r]),""});fe("\\bgroup","{");fe("\\egroup","}");fe("~","\\nobreakspace");fe("\\lq","`");fe("\\rq","'");fe("\\aa","\\r a");fe("\\AA","\\r A");fe("\\textcopyright","\\html@mathml{\\textcircled{c}}{\\char`\xA9}");fe("\\copyright","\\TextOrMath{\\textcopyright}{\\text{\\textcopyright}}");fe("\\textregistered","\\html@mathml{\\textcircled{\\scriptsize R}}{\\char`\xAE}");fe("\u212C","\\mathscr{B}");fe("\u2130","\\mathscr{E}");fe("\u2131","\\mathscr{F}");fe("\u210B","\\mathscr{H}");fe("\u2110","\\mathscr{I}");fe("\u2112","\\mathscr{L}");fe("\u2133","\\mathscr{M}");fe("\u211B","\\mathscr{R}");fe("\u212D","\\mathfrak{C}");fe("\u210C","\\mathfrak{H}");fe("\u2128","\\mathfrak{Z}");fe("\\Bbbk","\\Bbb{k}");fe("\xB7","\\cdotp");fe("\\llap","\\mathllap{\\textrm{#1}}");fe("\\rlap","\\mathrlap{\\textrm{#1}}");fe("\\clap","\\mathclap{\\textrm{#1}}");fe("\\mathstrut","\\vphantom{(}");fe("\\underbar","\\underline{\\text{#1}}");fe("\\not",'\\html@mathml{\\mathrel{\\mathrlap\\@not}}{\\char"338}');fe("\\neq","\\html@mathml{\\mathrel{\\not=}}{\\mathrel{\\char`\u2260}}");fe("\\ne","\\neq");fe("\u2260","\\neq");fe("\\notin","\\html@mathml{\\mathrel{{\\in}\\mathllap{/\\mskip1mu}}}{\\mathrel{\\char`\u2209}}");fe("\u2209","\\notin");fe("\u2258","\\html@mathml{\\mathrel{=\\kern{-1em}\\raisebox{0.4em}{$\\scriptsize\\frown$}}}{\\mathrel{\\char`\u2258}}");fe("\u2259","\\html@mathml{\\stackrel{\\tiny\\wedge}{=}}{\\mathrel{\\char`\u2258}}");fe("\u225A","\\html@mathml{\\stackrel{\\tiny\\vee}{=}}{\\mathrel{\\char`\u225A}}");fe("\u225B","\\html@mathml{\\stackrel{\\scriptsize\\star}{=}}{\\mathrel{\\char`\u225B}}");fe("\u225D","\\html@mathml{\\stackrel{\\tiny\\mathrm{def}}{=}}{\\mathrel{\\char`\u225D}}");fe("\u225E","\\html@mathml{\\stackrel{\\tiny\\mathrm{m}}{=}}{\\mathrel{\\char`\u225E}}");fe("\u225F","\\html@mathml{\\stackrel{\\tiny?}{=}}{\\mathrel{\\char`\u225F}}");fe("\u27C2","\\perp");fe("\u203C","\\mathclose{!\\mkern-0.8mu!}");fe("\u220C","\\notni");fe("\u231C","\\ulcorner");fe("\u231D","\\urcorner");fe("\u231E","\\llcorner");fe("\u231F","\\lrcorner");fe("\xA9","\\copyright");fe("\xAE","\\textregistered");fe("\uFE0F","\\textregistered");fe("\\ulcorner",'\\html@mathml{\\@ulcorner}{\\mathop{\\char"231c}}');fe("\\urcorner",'\\html@mathml{\\@urcorner}{\\mathop{\\char"231d}}');fe("\\llcorner",'\\html@mathml{\\@llcorner}{\\mathop{\\char"231e}}');fe("\\lrcorner",'\\html@mathml{\\@lrcorner}{\\mathop{\\char"231f}}');fe("\\vdots","\\mathord{\\varvdots\\rule{0pt}{15pt}}");fe("\u22EE","\\vdots");fe("\\varGamma","\\mathit{\\Gamma}");fe("\\varDelta","\\mathit{\\Delta}");fe("\\varTheta","\\mathit{\\Theta}");fe("\\varLambda","\\mathit{\\Lambda}");fe("\\varXi","\\mathit{\\Xi}");fe("\\varPi","\\mathit{\\Pi}");fe("\\varSigma","\\mathit{\\Sigma}");fe("\\varUpsilon","\\mathit{\\Upsilon}");fe("\\varPhi","\\mathit{\\Phi}");fe("\\varPsi","\\mathit{\\Psi}");fe("\\varOmega","\\mathit{\\Omega}");fe("\\substack","\\begin{subarray}{c}#1\\end{subarray}");fe("\\colon","\\nobreak\\mskip2mu\\mathpunct{}\\mathchoice{\\mkern-3mu}{\\mkern-3mu}{}{}{:}\\mskip6mu\\relax");fe("\\boxed","\\fbox{$\\displaystyle{#1}$}");fe("\\iff","\\DOTSB\\;\\Longleftrightarrow\\;");fe("\\implies","\\DOTSB\\;\\Longrightarrow\\;");fe("\\impliedby","\\DOTSB\\;\\Longleftarrow\\;");Oz={",":"\\dotsc","\\not":"\\dotsb","+":"\\dotsb","=":"\\dotsb","<":"\\dotsb",">":"\\dotsb","-":"\\dotsb","*":"\\dotsb",":":"\\dotsb","\\DOTSB":"\\dotsb","\\coprod":"\\dotsb","\\bigvee":"\\dotsb","\\bigwedge":"\\dotsb","\\biguplus":"\\dotsb","\\bigcap":"\\dotsb","\\bigcup":"\\dotsb","\\prod":"\\dotsb","\\sum":"\\dotsb","\\bigotimes":"\\dotsb","\\bigoplus":"\\dotsb","\\bigodot":"\\dotsb","\\bigsqcup":"\\dotsb","\\And":"\\dotsb","\\longrightarrow":"\\dotsb","\\Longrightarrow":"\\dotsb","\\longleftarrow":"\\dotsb","\\Longleftarrow":"\\dotsb","\\longleftrightarrow":"\\dotsb","\\Longleftrightarrow":"\\dotsb","\\mapsto":"\\dotsb","\\longmapsto":"\\dotsb","\\hookrightarrow":"\\dotsb","\\doteq":"\\dotsb","\\mathbin":"\\dotsb","\\mathrel":"\\dotsb","\\relbar":"\\dotsb","\\Relbar":"\\dotsb","\\xrightarrow":"\\dotsb","\\xleftarrow":"\\dotsb","\\DOTSI":"\\dotsi","\\int":"\\dotsi","\\oint":"\\dotsi","\\iint":"\\dotsi","\\iiint":"\\dotsi","\\iiiint":"\\dotsi","\\idotsint":"\\dotsi","\\DOTSX":"\\dotsx"};fe("\\dots",function(t){var e="\\dotso",r=t.expandAfterFuture().text;return r in Oz?e=Oz[r]:(r.slice(0,4)==="\\not"||r in An.math&&Jt.contains(["bin","rel"],An.math[r].group))&&(e="\\dotsb"),e});K7={")":!0,"]":!0,"\\rbrack":!0,"\\}":!0,"\\rbrace":!0,"\\rangle":!0,"\\rceil":!0,"\\rfloor":!0,"\\rgroup":!0,"\\rmoustache":!0,"\\right":!0,"\\bigr":!0,"\\biggr":!0,"\\Bigr":!0,"\\Biggr":!0,$:!0,";":!0,".":!0,",":!0};fe("\\dotso",function(t){var e=t.future().text;return e in K7?"\\ldots\\,":"\\ldots"});fe("\\dotsc",function(t){var e=t.future().text;return e in K7&&e!==","?"\\ldots\\,":"\\ldots"});fe("\\cdots",function(t){var e=t.future().text;return e in K7?"\\@cdots\\,":"\\@cdots"});fe("\\dotsb","\\cdots");fe("\\dotsm","\\cdots");fe("\\dotsi","\\!\\cdots");fe("\\dotsx","\\ldots\\,");fe("\\DOTSI","\\relax");fe("\\DOTSB","\\relax");fe("\\DOTSX","\\relax");fe("\\tmspace","\\TextOrMath{\\kern#1#3}{\\mskip#1#2}\\relax");fe("\\,","\\tmspace+{3mu}{.1667em}");fe("\\thinspace","\\,");fe("\\>","\\mskip{4mu}");fe("\\:","\\tmspace+{4mu}{.2222em}");fe("\\medspace","\\:");fe("\\;","\\tmspace+{5mu}{.2777em}");fe("\\thickspace","\\;");fe("\\!","\\tmspace-{3mu}{.1667em}");fe("\\negthinspace","\\!");fe("\\negmedspace","\\tmspace-{4mu}{.2222em}");fe("\\negthickspace","\\tmspace-{5mu}{.277em}");fe("\\enspace","\\kern.5em ");fe("\\enskip","\\hskip.5em\\relax");fe("\\quad","\\hskip1em\\relax");fe("\\qquad","\\hskip2em\\relax");fe("\\tag","\\@ifstar\\tag@literal\\tag@paren");fe("\\tag@paren","\\tag@literal{({#1})}");fe("\\tag@literal",t=>{if(t.macros.get("\\df@tag"))throw new gt("Multiple \\tag");return"\\gdef\\df@tag{\\text{#1}}"});fe("\\bmod","\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}\\mathbin{\\rm mod}\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}");fe("\\pod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern8mu}{\\mkern8mu}{\\mkern8mu}(#1)");fe("\\pmod","\\pod{{\\rm mod}\\mkern6mu#1}");fe("\\mod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern12mu}{\\mkern12mu}{\\mkern12mu}{\\rm mod}\\,\\,#1");fe("\\newline","\\\\\\relax");fe("\\TeX","\\textrm{\\html@mathml{T\\kern-.1667em\\raisebox{-.5ex}{E}\\kern-.125emX}{TeX}}");_G=kt(jl["Main-Regular"][84][1]-.7*jl["Main-Regular"][65][1]);fe("\\LaTeX","\\textrm{\\html@mathml{"+("L\\kern-.36em\\raisebox{"+_G+"}{\\scriptstyle A}")+"\\kern-.15em\\TeX}{LaTeX}}");fe("\\KaTeX","\\textrm{\\html@mathml{"+("K\\kern-.17em\\raisebox{"+_G+"}{\\scriptstyle A}")+"\\kern-.15em\\TeX}{KaTeX}}");fe("\\hspace","\\@ifstar\\@hspacer\\@hspace");fe("\\@hspace","\\hskip #1\\relax");fe("\\@hspacer","\\rule{0pt}{0pt}\\hskip #1\\relax");fe("\\ordinarycolon",":");fe("\\vcentcolon","\\mathrel{\\mathop\\ordinarycolon}");fe("\\dblcolon",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-.9mu}\\vcentcolon}}{\\mathop{\\char"2237}}');fe("\\coloneqq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2254}}');fe("\\Coloneqq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2237\\char"3d}}');fe("\\coloneq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"3a\\char"2212}}');fe("\\Coloneq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"2237\\char"2212}}');fe("\\eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2255}}');fe("\\Eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"3d\\char"2237}}');fe("\\eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2239}}');fe("\\Eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"2212\\char"2237}}');fe("\\colonapprox",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"3a\\char"2248}}');fe("\\Colonapprox",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"2237\\char"2248}}');fe("\\colonsim",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"3a\\char"223c}}');fe("\\Colonsim",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"2237\\char"223c}}');fe("\u2237","\\dblcolon");fe("\u2239","\\eqcolon");fe("\u2254","\\coloneqq");fe("\u2255","\\eqqcolon");fe("\u2A74","\\Coloneqq");fe("\\ratio","\\vcentcolon");fe("\\coloncolon","\\dblcolon");fe("\\colonequals","\\coloneqq");fe("\\coloncolonequals","\\Coloneqq");fe("\\equalscolon","\\eqqcolon");fe("\\equalscoloncolon","\\Eqqcolon");fe("\\colonminus","\\coloneq");fe("\\coloncolonminus","\\Coloneq");fe("\\minuscolon","\\eqcolon");fe("\\minuscoloncolon","\\Eqcolon");fe("\\coloncolonapprox","\\Colonapprox");fe("\\coloncolonsim","\\Colonsim");fe("\\simcolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\vcentcolon}");fe("\\simcoloncolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\dblcolon}");fe("\\approxcolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\vcentcolon}");fe("\\approxcoloncolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\dblcolon}");fe("\\notni","\\html@mathml{\\not\\ni}{\\mathrel{\\char`\u220C}}");fe("\\limsup","\\DOTSB\\operatorname*{lim\\,sup}");fe("\\liminf","\\DOTSB\\operatorname*{lim\\,inf}");fe("\\injlim","\\DOTSB\\operatorname*{inj\\,lim}");fe("\\projlim","\\DOTSB\\operatorname*{proj\\,lim}");fe("\\varlimsup","\\DOTSB\\operatorname*{\\overline{lim}}");fe("\\varliminf","\\DOTSB\\operatorname*{\\underline{lim}}");fe("\\varinjlim","\\DOTSB\\operatorname*{\\underrightarrow{lim}}");fe("\\varprojlim","\\DOTSB\\operatorname*{\\underleftarrow{lim}}");fe("\\gvertneqq","\\html@mathml{\\@gvertneqq}{\u2269}");fe("\\lvertneqq","\\html@mathml{\\@lvertneqq}{\u2268}");fe("\\ngeqq","\\html@mathml{\\@ngeqq}{\u2271}");fe("\\ngeqslant","\\html@mathml{\\@ngeqslant}{\u2271}");fe("\\nleqq","\\html@mathml{\\@nleqq}{\u2270}");fe("\\nleqslant","\\html@mathml{\\@nleqslant}{\u2270}");fe("\\nshortmid","\\html@mathml{\\@nshortmid}{\u2224}");fe("\\nshortparallel","\\html@mathml{\\@nshortparallel}{\u2226}");fe("\\nsubseteqq","\\html@mathml{\\@nsubseteqq}{\u2288}");fe("\\nsupseteqq","\\html@mathml{\\@nsupseteqq}{\u2289}");fe("\\varsubsetneq","\\html@mathml{\\@varsubsetneq}{\u228A}");fe("\\varsubsetneqq","\\html@mathml{\\@varsubsetneqq}{\u2ACB}");fe("\\varsupsetneq","\\html@mathml{\\@varsupsetneq}{\u228B}");fe("\\varsupsetneqq","\\html@mathml{\\@varsupsetneqq}{\u2ACC}");fe("\\imath","\\html@mathml{\\@imath}{\u0131}");fe("\\jmath","\\html@mathml{\\@jmath}{\u0237}");fe("\\llbracket","\\html@mathml{\\mathopen{[\\mkern-3.2mu[}}{\\mathopen{\\char`\u27E6}}");fe("\\rrbracket","\\html@mathml{\\mathclose{]\\mkern-3.2mu]}}{\\mathclose{\\char`\u27E7}}");fe("\u27E6","\\llbracket");fe("\u27E7","\\rrbracket");fe("\\lBrace","\\html@mathml{\\mathopen{\\{\\mkern-3.2mu[}}{\\mathopen{\\char`\u2983}}");fe("\\rBrace","\\html@mathml{\\mathclose{]\\mkern-3.2mu\\}}}{\\mathclose{\\char`\u2984}}");fe("\u2983","\\lBrace");fe("\u2984","\\rBrace");fe("\\minuso","\\mathbin{\\html@mathml{{\\mathrlap{\\mathchoice{\\kern{0.145em}}{\\kern{0.145em}}{\\kern{0.1015em}}{\\kern{0.0725em}}\\circ}{-}}}{\\char`\u29B5}}");fe("\u29B5","\\minuso");fe("\\darr","\\downarrow");fe("\\dArr","\\Downarrow");fe("\\Darr","\\Downarrow");fe("\\lang","\\langle");fe("\\rang","\\rangle");fe("\\uarr","\\uparrow");fe("\\uArr","\\Uparrow");fe("\\Uarr","\\Uparrow");fe("\\N","\\mathbb{N}");fe("\\R","\\mathbb{R}");fe("\\Z","\\mathbb{Z}");fe("\\alef","\\aleph");fe("\\alefsym","\\aleph");fe("\\Alpha","\\mathrm{A}");fe("\\Beta","\\mathrm{B}");fe("\\bull","\\bullet");fe("\\Chi","\\mathrm{X}");fe("\\clubs","\\clubsuit");fe("\\cnums","\\mathbb{C}");fe("\\Complex","\\mathbb{C}");fe("\\Dagger","\\ddagger");fe("\\diamonds","\\diamondsuit");fe("\\empty","\\emptyset");fe("\\Epsilon","\\mathrm{E}");fe("\\Eta","\\mathrm{H}");fe("\\exist","\\exists");fe("\\harr","\\leftrightarrow");fe("\\hArr","\\Leftrightarrow");fe("\\Harr","\\Leftrightarrow");fe("\\hearts","\\heartsuit");fe("\\image","\\Im");fe("\\infin","\\infty");fe("\\Iota","\\mathrm{I}");fe("\\isin","\\in");fe("\\Kappa","\\mathrm{K}");fe("\\larr","\\leftarrow");fe("\\lArr","\\Leftarrow");fe("\\Larr","\\Leftarrow");fe("\\lrarr","\\leftrightarrow");fe("\\lrArr","\\Leftrightarrow");fe("\\Lrarr","\\Leftrightarrow");fe("\\Mu","\\mathrm{M}");fe("\\natnums","\\mathbb{N}");fe("\\Nu","\\mathrm{N}");fe("\\Omicron","\\mathrm{O}");fe("\\plusmn","\\pm");fe("\\rarr","\\rightarrow");fe("\\rArr","\\Rightarrow");fe("\\Rarr","\\Rightarrow");fe("\\real","\\Re");fe("\\reals","\\mathbb{R}");fe("\\Reals","\\mathbb{R}");fe("\\Rho","\\mathrm{P}");fe("\\sdot","\\cdot");fe("\\sect","\\S");fe("\\spades","\\spadesuit");fe("\\sub","\\subset");fe("\\sube","\\subseteq");fe("\\supe","\\supseteq");fe("\\Tau","\\mathrm{T}");fe("\\thetasym","\\vartheta");fe("\\weierp","\\wp");fe("\\Zeta","\\mathrm{Z}");fe("\\argmin","\\DOTSB\\operatorname*{arg\\,min}");fe("\\argmax","\\DOTSB\\operatorname*{arg\\,max}");fe("\\plim","\\DOTSB\\mathop{\\operatorname{plim}}\\limits");fe("\\bra","\\mathinner{\\langle{#1}|}");fe("\\ket","\\mathinner{|{#1}\\rangle}");fe("\\braket","\\mathinner{\\langle{#1}\\rangle}");fe("\\Bra","\\left\\langle#1\\right|");fe("\\Ket","\\left|#1\\right\\rangle");DG=o(t=>e=>{var r=e.consumeArg().tokens,n=e.consumeArg().tokens,i=e.consumeArg().tokens,a=e.consumeArg().tokens,s=e.macros.get("|"),l=e.macros.get("\\|");e.macros.beginGroup();var u=o(d=>p=>{t&&(p.macros.set("|",s),i.length&&p.macros.set("\\|",l));var m=d;if(!d&&i.length){var g=p.future();g.text==="|"&&(p.popToken(),m=!0)}return{tokens:m?i:n,numArgs:0}},"midMacro");e.macros.set("|",u(!1)),i.length&&e.macros.set("\\|",u(!0));var h=e.consumeArg().tokens,f=e.expandTokens([...a,...h,...r]);return e.macros.endGroup(),{tokens:f.reverse(),numArgs:0}},"braketHelper");fe("\\bra@ket",DG(!1));fe("\\bra@set",DG(!0));fe("\\Braket","\\bra@ket{\\left\\langle}{\\,\\middle\\vert\\,}{\\,\\middle\\vert\\,}{\\right\\rangle}");fe("\\Set","\\bra@set{\\left\\{\\:}{\\;\\middle\\vert\\;}{\\;\\middle\\Vert\\;}{\\:\\right\\}}");fe("\\set","\\bra@set{\\{\\,}{\\mid}{}{\\,\\}}");fe("\\angln","{\\angl n}");fe("\\blue","\\textcolor{##6495ed}{#1}");fe("\\orange","\\textcolor{##ffa500}{#1}");fe("\\pink","\\textcolor{##ff00af}{#1}");fe("\\red","\\textcolor{##df0030}{#1}");fe("\\green","\\textcolor{##28ae7b}{#1}");fe("\\gray","\\textcolor{gray}{#1}");fe("\\purple","\\textcolor{##9d38bd}{#1}");fe("\\blueA","\\textcolor{##ccfaff}{#1}");fe("\\blueB","\\textcolor{##80f6ff}{#1}");fe("\\blueC","\\textcolor{##63d9ea}{#1}");fe("\\blueD","\\textcolor{##11accd}{#1}");fe("\\blueE","\\textcolor{##0c7f99}{#1}");fe("\\tealA","\\textcolor{##94fff5}{#1}");fe("\\tealB","\\textcolor{##26edd5}{#1}");fe("\\tealC","\\textcolor{##01d1c1}{#1}");fe("\\tealD","\\textcolor{##01a995}{#1}");fe("\\tealE","\\textcolor{##208170}{#1}");fe("\\greenA","\\textcolor{##b6ffb0}{#1}");fe("\\greenB","\\textcolor{##8af281}{#1}");fe("\\greenC","\\textcolor{##74cf70}{#1}");fe("\\greenD","\\textcolor{##1fab54}{#1}");fe("\\greenE","\\textcolor{##0d923f}{#1}");fe("\\goldA","\\textcolor{##ffd0a9}{#1}");fe("\\goldB","\\textcolor{##ffbb71}{#1}");fe("\\goldC","\\textcolor{##ff9c39}{#1}");fe("\\goldD","\\textcolor{##e07d10}{#1}");fe("\\goldE","\\textcolor{##a75a05}{#1}");fe("\\redA","\\textcolor{##fca9a9}{#1}");fe("\\redB","\\textcolor{##ff8482}{#1}");fe("\\redC","\\textcolor{##f9685d}{#1}");fe("\\redD","\\textcolor{##e84d39}{#1}");fe("\\redE","\\textcolor{##bc2612}{#1}");fe("\\maroonA","\\textcolor{##ffbde0}{#1}");fe("\\maroonB","\\textcolor{##ff92c6}{#1}");fe("\\maroonC","\\textcolor{##ed5fa6}{#1}");fe("\\maroonD","\\textcolor{##ca337c}{#1}");fe("\\maroonE","\\textcolor{##9e034e}{#1}");fe("\\purpleA","\\textcolor{##ddd7ff}{#1}");fe("\\purpleB","\\textcolor{##c6b9fc}{#1}");fe("\\purpleC","\\textcolor{##aa87ff}{#1}");fe("\\purpleD","\\textcolor{##7854ab}{#1}");fe("\\purpleE","\\textcolor{##543b78}{#1}");fe("\\mintA","\\textcolor{##f5f9e8}{#1}");fe("\\mintB","\\textcolor{##edf2df}{#1}");fe("\\mintC","\\textcolor{##e0e5cc}{#1}");fe("\\grayA","\\textcolor{##f6f7f7}{#1}");fe("\\grayB","\\textcolor{##f0f1f2}{#1}");fe("\\grayC","\\textcolor{##e3e5e6}{#1}");fe("\\grayD","\\textcolor{##d6d8da}{#1}");fe("\\grayE","\\textcolor{##babec2}{#1}");fe("\\grayF","\\textcolor{##888d93}{#1}");fe("\\grayG","\\textcolor{##626569}{#1}");fe("\\grayH","\\textcolor{##3b3e40}{#1}");fe("\\grayI","\\textcolor{##21242c}{#1}");fe("\\kaBlue","\\textcolor{##314453}{#1}");fe("\\kaGreen","\\textcolor{##71B307}{#1}");LG={"^":!0,_:!0,"\\limits":!0,"\\nolimits":!0},I7=class{static{o(this,"MacroExpander")}constructor(e,r,n){this.settings=void 0,this.expansionCount=void 0,this.lexer=void 0,this.macros=void 0,this.stack=void 0,this.mode=void 0,this.settings=r,this.expansionCount=0,this.feed(e),this.macros=new M7(V4e,r.macros),this.mode=n,this.stack=[]}feed(e){this.lexer=new y3(e,this.settings)}switchMode(e){this.mode=e}beginGroup(){this.macros.beginGroup()}endGroup(){this.macros.endGroup()}endGroups(){this.macros.endGroups()}future(){return this.stack.length===0&&this.pushToken(this.lexer.lex()),this.stack[this.stack.length-1]}popToken(){return this.future(),this.stack.pop()}pushToken(e){this.stack.push(e)}pushTokens(e){this.stack.push(...e)}scanArgument(e){var r,n,i;if(e){if(this.consumeSpaces(),this.future().text!=="[")return null;r=this.popToken(),{tokens:i,end:n}=this.consumeArg(["]"])}else({tokens:i,start:r,end:n}=this.consumeArg());return this.pushToken(new So("EOF",n.loc)),this.pushTokens(i),r.range(n,"")}consumeSpaces(){for(;;){var e=this.future();if(e.text===" ")this.stack.pop();else break}}consumeArg(e){var r=[],n=e&&e.length>0;n||this.consumeSpaces();var i=this.future(),a,s=0,l=0;do{if(a=this.popToken(),r.push(a),a.text==="{")++s;else if(a.text==="}"){if(--s,s===-1)throw new gt("Extra }",a)}else if(a.text==="EOF")throw new gt("Unexpected end of input in a macro argument, expected '"+(e&&n?e[l]:"}")+"'",a);if(e&&n)if((s===0||s===1&&e[l]==="{")&&a.text===e[l]){if(++l,l===e.length){r.splice(-l,l);break}}else l=0}while(s!==0||n);return i.text==="{"&&r[r.length-1].text==="}"&&(r.pop(),r.shift()),r.reverse(),{tokens:r,start:i,end:a}}consumeArgs(e,r){if(r){if(r.length!==e+1)throw new gt("The length of delimiters doesn't match the number of args!");for(var n=r[0],i=0;i<n.length;i++){var a=this.popToken();if(n[i]!==a.text)throw new gt("Use of the macro doesn't match its definition",a)}}for(var s=[],l=0;l<e;l++)s.push(this.consumeArg(r&&r[l+1]).tokens);return s}countExpansion(e){if(this.expansionCount+=e,this.expansionCount>this.settings.maxExpand)throw new gt("Too many expansions: infinite loop or need to increase maxExpand setting")}expandOnce(e){var r=this.popToken(),n=r.text,i=r.noexpand?null:this._getExpansion(n);if(i==null||e&&i.unexpandable){if(e&&i==null&&n[0]==="\\"&&!this.isDefined(n))throw new gt("Undefined control sequence: "+n);return this.pushToken(r),!1}this.countExpansion(1);var a=i.tokens,s=this.consumeArgs(i.numArgs,i.delimiters);if(i.numArgs){a=a.slice();for(var l=a.length-1;l>=0;--l){var u=a[l];if(u.text==="#"){if(l===0)throw new gt("Incomplete placeholder at end of macro body",u);if(u=a[--l],u.text==="#")a.splice(l+1,1);else if(/^[1-9]$/.test(u.text))a.splice(l,2,...s[+u.text-1]);else throw new gt("Not a valid argument number",u)}}}return this.pushTokens(a),a.length}expandAfterFuture(){return this.expandOnce(),this.future()}expandNextToken(){for(;;)if(this.expandOnce()===!1){var e=this.stack.pop();return e.treatAsRelax&&(e.text="\\relax"),e}throw new Error}expandMacro(e){return this.macros.has(e)?this.expandTokens([new So(e)]):void 0}expandTokens(e){var r=[],n=this.stack.length;for(this.pushTokens(e);this.stack.length>n;)if(this.expandOnce(!0)===!1){var i=this.stack.pop();i.treatAsRelax&&(i.noexpand=!1,i.treatAsRelax=!1),r.push(i)}return this.countExpansion(r.length),r}expandMacroAsText(e){var r=this.expandMacro(e);return r&&r.map(n=>n.text).join("")}_getExpansion(e){var r=this.macros.get(e);if(r==null)return r;if(e.length===1){var n=this.lexer.catcodes[e];if(n!=null&&n!==13)return}var i=typeof r=="function"?r(this):r;if(typeof i=="string"){var a=0;if(i.indexOf("#")!==-1)for(var s=i.replace(/##/g,"");s.indexOf("#"+(a+1))!==-1;)++a;for(var l=new y3(i,this.settings),u=[],h=l.lex();h.text!=="EOF";)u.push(h),h=l.lex();u.reverse();var f={tokens:u,numArgs:a};return f}return i}isDefined(e){return this.macros.has(e)||hh.hasOwnProperty(e)||An.math.hasOwnProperty(e)||An.text.hasOwnProperty(e)||LG.hasOwnProperty(e)}isExpandable(e){var r=this.macros.get(e);return r!=null?typeof r=="string"||typeof r=="function"||!r.unexpandable:hh.hasOwnProperty(e)&&!hh[e].primitive}},Pz=/^[₊₋₌₍₎₀₁₂₃₄₅₆₇₈₉ₐₑₕᵢⱼₖₗₘₙₒₚᵣₛₜᵤᵥₓᵦᵧᵨᵩᵪ]/,l3=Object.freeze({"\u208A":"+","\u208B":"-","\u208C":"=","\u208D":"(","\u208E":")","\u2080":"0","\u2081":"1","\u2082":"2","\u2083":"3","\u2084":"4","\u2085":"5","\u2086":"6","\u2087":"7","\u2088":"8","\u2089":"9","\u2090":"a","\u2091":"e","\u2095":"h","\u1D62":"i","\u2C7C":"j","\u2096":"k","\u2097":"l","\u2098":"m","\u2099":"n","\u2092":"o","\u209A":"p","\u1D63":"r","\u209B":"s","\u209C":"t","\u1D64":"u","\u1D65":"v","\u2093":"x","\u1D66":"\u03B2","\u1D67":"\u03B3","\u1D68":"\u03C1","\u1D69":"\u03D5","\u1D6A":"\u03C7","\u207A":"+","\u207B":"-","\u207C":"=","\u207D":"(","\u207E":")","\u2070":"0","\xB9":"1","\xB2":"2","\xB3":"3","\u2074":"4","\u2075":"5","\u2076":"6","\u2077":"7","\u2078":"8","\u2079":"9","\u1D2C":"A","\u1D2E":"B","\u1D30":"D","\u1D31":"E","\u1D33":"G","\u1D34":"H","\u1D35":"I","\u1D36":"J","\u1D37":"K","\u1D38":"L","\u1D39":"M","\u1D3A":"N","\u1D3C":"O","\u1D3E":"P","\u1D3F":"R","\u1D40":"T","\u1D41":"U","\u2C7D":"V","\u1D42":"W","\u1D43":"a","\u1D47":"b","\u1D9C":"c","\u1D48":"d","\u1D49":"e","\u1DA0":"f","\u1D4D":"g",\u02B0:"h","\u2071":"i",\u02B2:"j","\u1D4F":"k",\u02E1:"l","\u1D50":"m",\u207F:"n","\u1D52":"o","\u1D56":"p",\u02B3:"r",\u02E2:"s","\u1D57":"t","\u1D58":"u","\u1D5B":"v",\u02B7:"w",\u02E3:"x",\u02B8:"y","\u1DBB":"z","\u1D5D":"\u03B2","\u1D5E":"\u03B3","\u1D5F":"\u03B4","\u1D60":"\u03D5","\u1D61":"\u03C7","\u1DBF":"\u03B8"}),T7={"\u0301":{text:"\\'",math:"\\acute"},"\u0300":{text:"\\`",math:"\\grave"},"\u0308":{text:'\\"',math:"\\ddot"},"\u0303":{text:"\\~",math:"\\tilde"},"\u0304":{text:"\\=",math:"\\bar"},"\u0306":{text:"\\u",math:"\\breve"},"\u030C":{text:"\\v",math:"\\check"},"\u0302":{text:"\\^",math:"\\hat"},"\u0307":{text:"\\.",math:"\\dot"},"\u030A":{text:"\\r",math:"\\mathring"},"\u030B":{text:"\\H"},"\u0327":{text:"\\c"}},Bz={\u00E1:"a\u0301",\u00E0:"a\u0300",\u00E4:"a\u0308",\u01DF:"a\u0308\u0304",\u00E3:"a\u0303",\u0101:"a\u0304",\u0103:"a\u0306",\u1EAF:"a\u0306\u0301",\u1EB1:"a\u0306\u0300",\u1EB5:"a\u0306\u0303",\u01CE:"a\u030C",\u00E2:"a\u0302",\u1EA5:"a\u0302\u0301",\u1EA7:"a\u0302\u0300",\u1EAB:"a\u0302\u0303",\u0227:"a\u0307",\u01E1:"a\u0307\u0304",\u00E5:"a\u030A",\u01FB:"a\u030A\u0301",\u1E03:"b\u0307",\u0107:"c\u0301",\u1E09:"c\u0327\u0301",\u010D:"c\u030C",\u0109:"c\u0302",\u010B:"c\u0307",\u00E7:"c\u0327",\u010F:"d\u030C",\u1E0B:"d\u0307",\u1E11:"d\u0327",\u00E9:"e\u0301",\u00E8:"e\u0300",\u00EB:"e\u0308",\u1EBD:"e\u0303",\u0113:"e\u0304",\u1E17:"e\u0304\u0301",\u1E15:"e\u0304\u0300",\u0115:"e\u0306",\u1E1D:"e\u0327\u0306",\u011B:"e\u030C",\u00EA:"e\u0302",\u1EBF:"e\u0302\u0301",\u1EC1:"e\u0302\u0300",\u1EC5:"e\u0302\u0303",\u0117:"e\u0307",\u0229:"e\u0327",\u1E1F:"f\u0307",\u01F5:"g\u0301",\u1E21:"g\u0304",\u011F:"g\u0306",\u01E7:"g\u030C",\u011D:"g\u0302",\u0121:"g\u0307",\u0123:"g\u0327",\u1E27:"h\u0308",\u021F:"h\u030C",\u0125:"h\u0302",\u1E23:"h\u0307",\u1E29:"h\u0327",\u00ED:"i\u0301",\u00EC:"i\u0300",\u00EF:"i\u0308",\u1E2F:"i\u0308\u0301",\u0129:"i\u0303",\u012B:"i\u0304",\u012D:"i\u0306",\u01D0:"i\u030C",\u00EE:"i\u0302",\u01F0:"j\u030C",\u0135:"j\u0302",\u1E31:"k\u0301",\u01E9:"k\u030C",\u0137:"k\u0327",\u013A:"l\u0301",\u013E:"l\u030C",\u013C:"l\u0327",\u1E3F:"m\u0301",\u1E41:"m\u0307",\u0144:"n\u0301",\u01F9:"n\u0300",\u00F1:"n\u0303",\u0148:"n\u030C",\u1E45:"n\u0307",\u0146:"n\u0327",\u00F3:"o\u0301",\u00F2:"o\u0300",\u00F6:"o\u0308",\u022B:"o\u0308\u0304",\u00F5:"o\u0303",\u1E4D:"o\u0303\u0301",\u1E4F:"o\u0303\u0308",\u022D:"o\u0303\u0304",\u014D:"o\u0304",\u1E53:"o\u0304\u0301",\u1E51:"o\u0304\u0300",\u014F:"o\u0306",\u01D2:"o\u030C",\u00F4:"o\u0302",\u1ED1:"o\u0302\u0301",\u1ED3:"o\u0302\u0300",\u1ED7:"o\u0302\u0303",\u022F:"o\u0307",\u0231:"o\u0307\u0304",\u0151:"o\u030B",\u1E55:"p\u0301",\u1E57:"p\u0307",\u0155:"r\u0301",\u0159:"r\u030C",\u1E59:"r\u0307",\u0157:"r\u0327",\u015B:"s\u0301",\u1E65:"s\u0301\u0307",\u0161:"s\u030C",\u1E67:"s\u030C\u0307",\u015D:"s\u0302",\u1E61:"s\u0307",\u015F:"s\u0327",\u1E97:"t\u0308",\u0165:"t\u030C",\u1E6B:"t\u0307",\u0163:"t\u0327",\u00FA:"u\u0301",\u00F9:"u\u0300",\u00FC:"u\u0308",\u01D8:"u\u0308\u0301",\u01DC:"u\u0308\u0300",\u01D6:"u\u0308\u0304",\u01DA:"u\u0308\u030C",\u0169:"u\u0303",\u1E79:"u\u0303\u0301",\u016B:"u\u0304",\u1E7B:"u\u0304\u0308",\u016D:"u\u0306",\u01D4:"u\u030C",\u00FB:"u\u0302",\u016F:"u\u030A",\u0171:"u\u030B",\u1E7D:"v\u0303",\u1E83:"w\u0301",\u1E81:"w\u0300",\u1E85:"w\u0308",\u0175:"w\u0302",\u1E87:"w\u0307",\u1E98:"w\u030A",\u1E8D:"x\u0308",\u1E8B:"x\u0307",\u00FD:"y\u0301",\u1EF3:"y\u0300",\u00FF:"y\u0308",\u1EF9:"y\u0303",\u0233:"y\u0304",\u0177:"y\u0302",\u1E8F:"y\u0307",\u1E99:"y\u030A",\u017A:"z\u0301",\u017E:"z\u030C",\u1E91:"z\u0302",\u017C:"z\u0307",\u00C1:"A\u0301",\u00C0:"A\u0300",\u00C4:"A\u0308",\u01DE:"A\u0308\u0304",\u00C3:"A\u0303",\u0100:"A\u0304",\u0102:"A\u0306",\u1EAE:"A\u0306\u0301",\u1EB0:"A\u0306\u0300",\u1EB4:"A\u0306\u0303",\u01CD:"A\u030C",\u00C2:"A\u0302",\u1EA4:"A\u0302\u0301",\u1EA6:"A\u0302\u0300",\u1EAA:"A\u0302\u0303",\u0226:"A\u0307",\u01E0:"A\u0307\u0304",\u00C5:"A\u030A",\u01FA:"A\u030A\u0301",\u1E02:"B\u0307",\u0106:"C\u0301",\u1E08:"C\u0327\u0301",\u010C:"C\u030C",\u0108:"C\u0302",\u010A:"C\u0307",\u00C7:"C\u0327",\u010E:"D\u030C",\u1E0A:"D\u0307",\u1E10:"D\u0327",\u00C9:"E\u0301",\u00C8:"E\u0300",\u00CB:"E\u0308",\u1EBC:"E\u0303",\u0112:"E\u0304",\u1E16:"E\u0304\u0301",\u1E14:"E\u0304\u0300",\u0114:"E\u0306",\u1E1C:"E\u0327\u0306",\u011A:"E\u030C",\u00CA:"E\u0302",\u1EBE:"E\u0302\u0301",\u1EC0:"E\u0302\u0300",\u1EC4:"E\u0302\u0303",\u0116:"E\u0307",\u0228:"E\u0327",\u1E1E:"F\u0307",\u01F4:"G\u0301",\u1E20:"G\u0304",\u011E:"G\u0306",\u01E6:"G\u030C",\u011C:"G\u0302",\u0120:"G\u0307",\u0122:"G\u0327",\u1E26:"H\u0308",\u021E:"H\u030C",\u0124:"H\u0302",\u1E22:"H\u0307",\u1E28:"H\u0327",\u00CD:"I\u0301",\u00CC:"I\u0300",\u00CF:"I\u0308",\u1E2E:"I\u0308\u0301",\u0128:"I\u0303",\u012A:"I\u0304",\u012C:"I\u0306",\u01CF:"I\u030C",\u00CE:"I\u0302",\u0130:"I\u0307",\u0134:"J\u0302",\u1E30:"K\u0301",\u01E8:"K\u030C",\u0136:"K\u0327",\u0139:"L\u0301",\u013D:"L\u030C",\u013B:"L\u0327",\u1E3E:"M\u0301",\u1E40:"M\u0307",\u0143:"N\u0301",\u01F8:"N\u0300",\u00D1:"N\u0303",\u0147:"N\u030C",\u1E44:"N\u0307",\u0145:"N\u0327",\u00D3:"O\u0301",\u00D2:"O\u0300",\u00D6:"O\u0308",\u022A:"O\u0308\u0304",\u00D5:"O\u0303",\u1E4C:"O\u0303\u0301",\u1E4E:"O\u0303\u0308",\u022C:"O\u0303\u0304",\u014C:"O\u0304",\u1E52:"O\u0304\u0301",\u1E50:"O\u0304\u0300",\u014E:"O\u0306",\u01D1:"O\u030C",\u00D4:"O\u0302",\u1ED0:"O\u0302\u0301",\u1ED2:"O\u0302\u0300",\u1ED6:"O\u0302\u0303",\u022E:"O\u0307",\u0230:"O\u0307\u0304",\u0150:"O\u030B",\u1E54:"P\u0301",\u1E56:"P\u0307",\u0154:"R\u0301",\u0158:"R\u030C",\u1E58:"R\u0307",\u0156:"R\u0327",\u015A:"S\u0301",\u1E64:"S\u0301\u0307",\u0160:"S\u030C",\u1E66:"S\u030C\u0307",\u015C:"S\u0302",\u1E60:"S\u0307",\u015E:"S\u0327",\u0164:"T\u030C",\u1E6A:"T\u0307",\u0162:"T\u0327",\u00DA:"U\u0301",\u00D9:"U\u0300",\u00DC:"U\u0308",\u01D7:"U\u0308\u0301",\u01DB:"U\u0308\u0300",\u01D5:"U\u0308\u0304",\u01D9:"U\u0308\u030C",\u0168:"U\u0303",\u1E78:"U\u0303\u0301",\u016A:"U\u0304",\u1E7A:"U\u0304\u0308",\u016C:"U\u0306",\u01D3:"U\u030C",\u00DB:"U\u0302",\u016E:"U\u030A",\u0170:"U\u030B",\u1E7C:"V\u0303",\u1E82:"W\u0301",\u1E80:"W\u0300",\u1E84:"W\u0308",\u0174:"W\u0302",\u1E86:"W\u0307",\u1E8C:"X\u0308",\u1E8A:"X\u0307",\u00DD:"Y\u0301",\u1EF2:"Y\u0300",\u0178:"Y\u0308",\u1EF8:"Y\u0303",\u0232:"Y\u0304",\u0176:"Y\u0302",\u1E8E:"Y\u0307",\u0179:"Z\u0301",\u017D:"Z\u030C",\u1E90:"Z\u0302",\u017B:"Z\u0307",\u03AC:"\u03B1\u0301",\u1F70:"\u03B1\u0300",\u1FB1:"\u03B1\u0304",\u1FB0:"\u03B1\u0306",\u03AD:"\u03B5\u0301",\u1F72:"\u03B5\u0300",\u03AE:"\u03B7\u0301",\u1F74:"\u03B7\u0300",\u03AF:"\u03B9\u0301",\u1F76:"\u03B9\u0300",\u03CA:"\u03B9\u0308",\u0390:"\u03B9\u0308\u0301",\u1FD2:"\u03B9\u0308\u0300",\u1FD1:"\u03B9\u0304",\u1FD0:"\u03B9\u0306",\u03CC:"\u03BF\u0301",\u1F78:"\u03BF\u0300",\u03CD:"\u03C5\u0301",\u1F7A:"\u03C5\u0300",\u03CB:"\u03C5\u0308",\u03B0:"\u03C5\u0308\u0301",\u1FE2:"\u03C5\u0308\u0300",\u1FE1:"\u03C5\u0304",\u1FE0:"\u03C5\u0306",\u03CE:"\u03C9\u0301",\u1F7C:"\u03C9\u0300",\u038E:"\u03A5\u0301",\u1FEA:"\u03A5\u0300",\u03AB:"\u03A5\u0308",\u1FE9:"\u03A5\u0304",\u1FE8:"\u03A5\u0306",\u038F:"\u03A9\u0301",\u1FFA:"\u03A9\u0300"},v3=class t{static{o(this,"Parser")}constructor(e,r){this.mode=void 0,this.gullet=void 0,this.settings=void 0,this.leftrightDepth=void 0,this.nextToken=void 0,this.mode="math",this.gullet=new I7(e,r,this.mode),this.settings=r,this.leftrightDepth=0}expect(e,r){if(r===void 0&&(r=!0),this.fetch().text!==e)throw new gt("Expected '"+e+"', got '"+this.fetch().text+"'",this.fetch());r&&this.consume()}consume(){this.nextToken=null}fetch(){return this.nextToken==null&&(this.nextToken=this.gullet.expandNextToken()),this.nextToken}switchMode(e){this.mode=e,this.gullet.switchMode(e)}parse(){this.settings.globalGroup||this.gullet.beginGroup(),this.settings.colorIsTextColor&&this.gullet.macros.set("\\color","\\textcolor");try{var e=this.parseExpression(!1);return this.expect("EOF"),this.settings.globalGroup||this.gullet.endGroup(),e}finally{this.gullet.endGroups()}}subparse(e){var r=this.nextToken;this.consume(),this.gullet.pushToken(new So("}")),this.gullet.pushTokens(e);var n=this.parseExpression(!1);return this.expect("}"),this.nextToken=r,n}parseExpression(e,r){for(var n=[];;){this.mode==="math"&&this.consumeSpaces();var i=this.fetch();if(t.endOfExpression.indexOf(i.text)!==-1||r&&i.text===r||e&&hh[i.text]&&hh[i.text].infix)break;var a=this.parseAtom(r);if(a){if(a.type==="internal")continue}else break;n.push(a)}return this.mode==="text"&&this.formLigatures(n),this.handleInfixNodes(n)}handleInfixNodes(e){for(var r=-1,n,i=0;i<e.length;i++)if(e[i].type==="infix"){if(r!==-1)throw new gt("only one infix operator per group",e[i].token);r=i,n=e[i].replaceWith}if(r!==-1&&n){var a,s,l=e.slice(0,r),u=e.slice(r+1);l.length===1&&l[0].type==="ordgroup"?a=l[0]:a={type:"ordgroup",mode:this.mode,body:l},u.length===1&&u[0].type==="ordgroup"?s=u[0]:s={type:"ordgroup",mode:this.mode,body:u};var h;return n==="\\\\abovefrac"?h=this.callFunction(n,[a,e[r],s],[]):h=this.callFunction(n,[a,s],[]),[h]}else return e}handleSupSubscript(e){var r=this.fetch(),n=r.text;this.consume(),this.consumeSpaces();var i=this.parseGroup(e);if(!i)throw new gt("Expected group after '"+n+"'",r);return i}formatUnsupportedCmd(e){for(var r=[],n=0;n<e.length;n++)r.push({type:"textord",mode:"text",text:e[n]});var i={type:"text",mode:this.mode,body:r},a={type:"color",mode:this.mode,color:this.settings.errorColor,body:[i]};return a}parseAtom(e){var r=this.parseGroup("atom",e);if(this.mode==="text")return r;for(var n,i;;){this.consumeSpaces();var a=this.fetch();if(a.text==="\\limits"||a.text==="\\nolimits"){if(r&&r.type==="op"){var s=a.text==="\\limits";r.limits=s,r.alwaysHandleSupSub=!0}else if(r&&r.type==="operatorname")r.alwaysHandleSupSub&&(r.limits=a.text==="\\limits");else throw new gt("Limit controls must follow a math operator",a);this.consume()}else if(a.text==="^"){if(n)throw new gt("Double superscript",a);n=this.handleSupSubscript("superscript")}else if(a.text==="_"){if(i)throw new gt("Double subscript",a);i=this.handleSupSubscript("subscript")}else if(a.text==="'"){if(n)throw new gt("Double superscript",a);var l={type:"textord",mode:this.mode,text:"\\prime"},u=[l];for(this.consume();this.fetch().text==="'";)u.push(l),this.consume();this.fetch().text==="^"&&u.push(this.handleSupSubscript("superscript")),n={type:"ordgroup",mode:this.mode,body:u}}else if(l3[a.text]){var h=Pz.test(a.text),f=[];for(f.push(new So(l3[a.text])),this.consume();;){var d=this.fetch().text;if(!l3[d]||Pz.test(d)!==h)break;f.unshift(new So(l3[d])),this.consume()}var p=this.subparse(f);h?i={type:"ordgroup",mode:"math",body:p}:n={type:"ordgroup",mode:"math",body:p}}else break}return n||i?{type:"supsub",mode:this.mode,base:r,sup:n,sub:i}:r}parseFunction(e,r){var n=this.fetch(),i=n.text,a=hh[i];if(!a)return null;if(this.consume(),r&&r!=="atom"&&!a.allowedInArgument)throw new gt("Got function '"+i+"' with no arguments"+(r?" as "+r:""),n);if(this.mode==="text"&&!a.allowedInText)throw new gt("Can't use function '"+i+"' in text mode",n);if(this.mode==="math"&&a.allowedInMath===!1)throw new gt("Can't use function '"+i+"' in math mode",n);var{args:s,optArgs:l}=this.parseArguments(i,a);return this.callFunction(i,s,l,n,e)}callFunction(e,r,n,i,a){var s={funcName:e,parser:this,token:i,breakOnTokenText:a},l=hh[e];if(l&&l.handler)return l.handler(s,r,n);throw new gt("No function handler for "+e)}parseArguments(e,r){var n=r.numArgs+r.numOptionalArgs;if(n===0)return{args:[],optArgs:[]};for(var i=[],a=[],s=0;s<n;s++){var l=r.argTypes&&r.argTypes[s],u=s<r.numOptionalArgs;(r.primitive&&l==null||r.type==="sqrt"&&s===1&&a[0]==null)&&(l="primitive");var h=this.parseGroupOfType("argument to '"+e+"'",l,u);if(u)a.push(h);else if(h!=null)i.push(h);else throw new gt("Null argument, please report this as a bug")}return{args:i,optArgs:a}}parseGroupOfType(e,r,n){switch(r){case"color":return this.parseColorGroup(n);case"size":return this.parseSizeGroup(n);case"url":return this.parseUrlGroup(n);case"math":case"text":return this.parseArgumentGroup(n,r);case"hbox":{var i=this.parseArgumentGroup(n,"text");return i!=null?{type:"styling",mode:i.mode,body:[i],style:"text"}:null}case"raw":{var a=this.parseStringGroup("raw",n);return a!=null?{type:"raw",mode:"text",string:a.text}:null}case"primitive":{if(n)throw new gt("A primitive argument cannot be optional");var s=this.parseGroup(e);if(s==null)throw new gt("Expected group as "+e,this.fetch());return s}case"original":case null:case void 0:return this.parseArgumentGroup(n);default:throw new gt("Unknown group type as "+e,this.fetch())}}consumeSpaces(){for(;this.fetch().text===" ";)this.consume()}parseStringGroup(e,r){var n=this.gullet.scanArgument(r);if(n==null)return null;for(var i="",a;(a=this.fetch()).text!=="EOF";)i+=a.text,this.consume();return this.consume(),n.text=i,n}parseRegexGroup(e,r){for(var n=this.fetch(),i=n,a="",s;(s=this.fetch()).text!=="EOF"&&e.test(a+s.text);)i=s,a+=i.text,this.consume();if(a==="")throw new gt("Invalid "+r+": '"+n.text+"'",n);return n.range(i,a)}parseColorGroup(e){var r=this.parseStringGroup("color",e);if(r==null)return null;var n=/^(#[a-f0-9]{3}|#?[a-f0-9]{6}|[a-z]+)$/i.exec(r.text);if(!n)throw new gt("Invalid color: '"+r.text+"'",r);var i=n[0];return/^[0-9a-f]{6}$/i.test(i)&&(i="#"+i),{type:"color-token",mode:this.mode,color:i}}parseSizeGroup(e){var r,n=!1;if(this.gullet.consumeSpaces(),!e&&this.gullet.future().text!=="{"?r=this.parseRegexGroup(/^[-+]? *(?:$|\d+|\d+\.\d*|\.\d*) *[a-z]{0,2} *$/,"size"):r=this.parseStringGroup("size",e),!r)return null;!e&&r.text.length===0&&(r.text="0pt",n=!0);var i=/([-+]?) *(\d+(?:\.\d*)?|\.\d+) *([a-z]{2})/.exec(r.text);if(!i)throw new gt("Invalid size: '"+r.text+"'",r);var a={number:+(i[1]+i[2]),unit:i[3]};if(!zz(a))throw new gt("Invalid unit: '"+a.unit+"'",r);return{type:"size",mode:this.mode,value:a,isBlank:n}}parseUrlGroup(e){this.gullet.lexer.setCatcode("%",13),this.gullet.lexer.setCatcode("~",12);var r=this.parseStringGroup("url",e);if(this.gullet.lexer.setCatcode("%",14),this.gullet.lexer.setCatcode("~",13),r==null)return null;var n=r.text.replace(/\\([#$%&~_^{}])/g,"$1");return{type:"url",mode:this.mode,url:n}}parseArgumentGroup(e,r){var n=this.gullet.scanArgument(e);if(n==null)return null;var i=this.mode;r&&this.switchMode(r),this.gullet.beginGroup();var a=this.parseExpression(!1,"EOF");this.expect("EOF"),this.gullet.endGroup();var s={type:"ordgroup",mode:this.mode,loc:n.loc,body:a};return r&&this.switchMode(i),s}parseGroup(e,r){var n=this.fetch(),i=n.text,a;if(i==="{"||i==="\\begingroup"){this.consume();var s=i==="{"?"}":"\\endgroup";this.gullet.beginGroup();var l=this.parseExpression(!1,s),u=this.fetch();this.expect(s),this.gullet.endGroup(),a={type:"ordgroup",mode:this.mode,loc:Xs.range(n,u),body:l,semisimple:i==="\\begingroup"||void 0}}else if(a=this.parseFunction(r,e)||this.parseSymbol(),a==null&&i[0]==="\\"&&!LG.hasOwnProperty(i)){if(this.settings.throwOnError)throw new gt("Undefined control sequence: "+i,n);a=this.formatUnsupportedCmd(i),this.consume()}return a}formLigatures(e){for(var r=e.length-1,n=0;n<r;++n){var i=e[n],a=i.text;a==="-"&&e[n+1].text==="-"&&(n+1<r&&e[n+2].text==="-"?(e.splice(n,3,{type:"textord",mode:"text",loc:Xs.range(i,e[n+2]),text:"---"}),r-=2):(e.splice(n,2,{type:"textord",mode:"text",loc:Xs.range(i,e[n+1]),text:"--"}),r-=1)),(a==="'"||a==="`")&&e[n+1].text===a&&(e.splice(n,2,{type:"textord",mode:"text",loc:Xs.range(i,e[n+1]),text:a+a}),r-=1)}}parseSymbol(){var e=this.fetch(),r=e.text;if(/^\\verb[^a-zA-Z]/.test(r)){this.consume();var n=r.slice(5),i=n.charAt(0)==="*";if(i&&(n=n.slice(1)),n.length<2||n.charAt(0)!==n.slice(-1))throw new gt(`\\verb assertion failed --
+                    please report what input caused this bug`);return n=n.slice(1,-1),{type:"verb",mode:"text",body:n,star:i}}Bz.hasOwnProperty(r[0])&&!An[this.mode][r[0]]&&(this.settings.strict&&this.mode==="math"&&this.settings.reportNonstrict("unicodeTextInMathMode",'Accented Unicode text character "'+r[0]+'" used in math mode',e),r=Bz[r[0]]+r.slice(1));var a=z4e.exec(r);a&&(r=r.substring(0,a.index),r==="i"?r="\u0131":r==="j"&&(r="\u0237"));var s;if(An[this.mode][r]){this.settings.strict&&this.mode==="math"&&C7.indexOf(r)>=0&&this.settings.reportNonstrict("unicodeTextInMathMode",'Latin-1/Unicode text character "'+r[0]+'" used in math mode',e);var l=An[this.mode][r].group,u=Xs.range(e),h;if(Mbe.hasOwnProperty(l)){var f=l;h={type:"atom",mode:this.mode,family:f,loc:u,text:r}}else h={type:l,mode:this.mode,loc:u,text:r};s=h}else if(r.charCodeAt(0)>=128)this.settings.strict&&($z(r.charCodeAt(0))?this.mode==="math"&&this.settings.reportNonstrict("unicodeTextInMathMode",'Unicode text character "'+r[0]+'" used in math mode',e):this.settings.reportNonstrict("unknownSymbol",'Unrecognized Unicode character "'+r[0]+'"'+(" ("+r.charCodeAt(0)+")"),e)),s={type:"textord",mode:"text",loc:Xs.range(e),text:r};else return null;if(this.consume(),a)for(var d=0;d<a[0].length;d++){var p=a[0][d];if(!T7[p])throw new gt("Unknown accent ' "+p+"'",e);var m=T7[p][this.mode]||T7[p].text;if(!m)throw new gt("Accent "+p+" unsupported in "+this.mode+" mode",e);s={type:"accent",mode:this.mode,loc:Xs.range(e),label:m,isStretchy:!1,isShifty:!0,base:s}}return s}};v3.endOfExpression=["}","\\endgroup","\\end","\\right","&"];Q7=o(function(e,r){if(!(typeof e=="string"||e instanceof String))throw new TypeError("KaTeX can only parse string typed expression");var n=new v3(e,r);delete n.gullet.macros.current["\\df@tag"];var i=n.parse();if(delete n.gullet.macros.current["\\current@color"],delete n.gullet.macros.current["\\color"],n.gullet.macros.get("\\df@tag")){if(!r.displayMode)throw new gt("\\tag works only in display equations");i=[{type:"tag",mode:"text",body:i,tag:n.subparse([new So("\\df@tag")])}]}return i},"parseTree"),RG=o(function(e,r,n){r.textContent="";var i=Z7(e,n).toNode();r.appendChild(i)},"render");typeof document<"u"&&document.compatMode!=="CSS1Compat"&&(typeof console<"u"&&console.warn("Warning: KaTeX doesn't work in quirks mode. Make sure your website has a suitable doctype."),RG=o(function(){throw new gt("KaTeX doesn't work in quirks mode.")},"render"));U4e=o(function(e,r){var n=Z7(e,r).toMarkup();return n},"renderToString"),H4e=o(function(e,r){var n=new zy(r);return Q7(e,n)},"generateParseTree"),NG=o(function(e,r,n){if(n.throwOnError||!(e instanceof gt))throw e;var i=Be.makeSpan(["katex-error"],[new Ts(r)]);return i.setAttribute("title",e.toString()),i.setAttribute("style","color:"+n.errorColor),i},"renderError"),Z7=o(function(e,r){var n=new zy(r);try{var i=Q7(e,n);return t4e(i,e,n)}catch(a){return NG(a,e,n)}},"renderToDomTree"),W4e=o(function(e,r){var n=new zy(r);try{var i=Q7(e,n);return r4e(i,e,n)}catch(a){return NG(a,e,n)}},"renderToHTMLTree"),q4e={version:"0.16.11",render:RG,renderToString:U4e,ParseError:gt,SETTINGS_SCHEMA:c3,__parse:H4e,__renderToDomTree:Z7,__renderToHTMLTree:W4e,__setFontMetrics:Abe,__defineSymbol:G,__defineFunction:Nt,__defineMacro:fe,__domTree:{Span:td,Anchor:Vy,SymbolNode:Ts,SvgNode:ll,PathNode:Kl,LineNode:Uy}}});function j4e(){let t="data-temp-href-target";ch.addHook("beforeSanitizeAttributes",e=>{e instanceof Element&&e.tagName==="A"&&e.hasAttribute("target")&&e.setAttribute(t,e.getAttribute("target")??"")}),ch.addHook("afterSanitizeAttributes",e=>{e instanceof Element&&e.tagName==="A"&&e.hasAttribute(t)&&(e.setAttribute("target",e.getAttribute(t)??""),e.removeAttribute(t),e.getAttribute("target")==="_blank"&&e.setAttribute("rel","noopener"))})}var nd,Y4e,X4e,BG,OG,Tr,K4e,Q4e,Z4e,J4e,FG,e3e,fr,t3e,r3e,ec,J7,n3e,i3e,PG,eA,pi,id,mh,Ze,gr=N(()=>{"use strict";u7();nd=/<br\s*\/?>/gi,Y4e=o(t=>t?FG(t).replace(/\\n/g,"#br#").split("#br#"):[""],"getRows"),X4e=(()=>{let t=!1;return()=>{t||(j4e(),t=!0)}})();o(j4e,"setupDompurifyHooks");BG=o(t=>(X4e(),ch.sanitize(t)),"removeScript"),OG=o((t,e)=>{if(e.flowchart?.htmlLabels!==!1){let r=e.securityLevel;r==="antiscript"||r==="strict"?t=BG(t):r!=="loose"&&(t=FG(t),t=t.replace(/</g,"&lt;").replace(/>/g,"&gt;"),t=t.replace(/=/g,"&equals;"),t=J4e(t))}return t},"sanitizeMore"),Tr=o((t,e)=>t&&(e.dompurifyConfig?t=ch.sanitize(OG(t,e),e.dompurifyConfig).toString():t=ch.sanitize(OG(t,e),{FORBID_TAGS:["style"]}).toString(),t),"sanitizeText"),K4e=o((t,e)=>typeof t=="string"?Tr(t,e):t.flat().map(r=>Tr(r,e)),"sanitizeTextOrArray"),Q4e=o(t=>nd.test(t),"hasBreaks"),Z4e=o(t=>t.split(nd),"splitBreaks"),J4e=o(t=>t.replace(/#br#/g,"<br/>"),"placeholderToBreak"),FG=o(t=>t.replace(nd,"#br#"),"breakToPlaceholder"),e3e=o(t=>{let e="";return t&&(e=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,e=e.replaceAll(/\(/g,"\\("),e=e.replaceAll(/\)/g,"\\)")),e},"getUrl"),fr=o(t=>!(t===!1||["false","null","0"].includes(String(t).trim().toLowerCase())),"evaluate"),t3e=o(function(...t){let e=t.filter(r=>!isNaN(r));return Math.max(...e)},"getMax"),r3e=o(function(...t){let e=t.filter(r=>!isNaN(r));return Math.min(...e)},"getMin"),ec=o(function(t){let e=t.split(/(,)/),r=[];for(let n=0;n<e.length;n++){let i=e[n];if(i===","&&n>0&&n+1<e.length){let a=e[n-1],s=e[n+1];n3e(a,s)&&(i=a+","+s,n++,r.pop())}r.push(i3e(i))}return r.join("")},"parseGenericTypes"),J7=o((t,e)=>Math.max(0,t.split(e).length-1),"countOccurrence"),n3e=o((t,e)=>{let r=J7(t,"~"),n=J7(e,"~");return r===1&&n===1},"shouldCombineSets"),i3e=o(t=>{let e=J7(t,"~"),r=!1;if(e<=1)return t;e%2!==0&&t.startsWith("~")&&(t=t.substring(1),r=!0);let n=[...t],i=n.indexOf("~"),a=n.lastIndexOf("~");for(;i!==-1&&a!==-1&&i!==a;)n[i]="<",n[a]=">",i=n.indexOf("~"),a=n.lastIndexOf("~");return r&&n.unshift("~"),n.join("")},"processSet"),PG=o(()=>window.MathMLElement!==void 0,"isMathMLSupported"),eA=/\$\$(.*)\$\$/g,pi=o(t=>(t.match(eA)?.length??0)>0,"hasKatex"),id=o(async(t,e)=>{t=await mh(t,e);let r=document.createElement("div");r.innerHTML=t,r.id="katex-temp",r.style.visibility="hidden",r.style.position="absolute",r.style.top="0",document.querySelector("body")?.insertAdjacentElement("beforeend",r);let i={width:r.clientWidth,height:r.clientHeight};return r.remove(),i},"calculateMathMLDimensions"),mh=o(async(t,e)=>{if(!pi(t))return t;if(!(PG()||e.legacyMathML||e.forceLegacyMathML))return t.replace(eA,"MathML is unsupported in this environment.");let{default:r}=await Promise.resolve().then(()=>(IG(),MG)),n=e.forceLegacyMathML||!PG()&&e.legacyMathML?"htmlAndMathml":"mathml";return t.split(nd).map(i=>pi(i)?`<div style="display: flex; align-items: center; justify-content: center; white-space: nowrap;">${i}</div>`:`<div>${i}</div>`).join("").replace(eA,(i,a)=>r.renderToString(a,{throwOnError:!0,displayMode:!0,output:n}).replace(/\n/g," ").replace(/<annotation.*<\/annotation>/g,""))},"renderKatex"),Ze={getRows:Y4e,sanitizeText:Tr,sanitizeTextOrArray:K4e,hasBreaks:Q4e,splitBreaks:Z4e,lineBreakRegex:nd,removeScript:BG,getUrl:e3e,evaluate:fr,getMax:t3e,getMin:r3e}});var a3e,s3e,vn,Ao,Ei=N(()=>{"use strict";vt();a3e=o(function(t,e){for(let r of e)t.attr(r[0],r[1])},"d3Attrs"),s3e=o(function(t,e,r){let n=new Map;return r?(n.set("width","100%"),n.set("style",`max-width: ${e}px;`)):(n.set("height",t),n.set("width",e)),n},"calculateSvgSizeAttrs"),vn=o(function(t,e,r,n){let i=s3e(e,r,n);a3e(t,i)},"configureSvgSize"),Ao=o(function(t,e,r,n){let i=e.node().getBBox(),a=i.width,s=i.height;Y.info(`SVG bounds: ${a}x${s}`,i);let l=0,u=0;Y.info(`Graph bounds: ${l}x${u}`,t),l=a+r*2,u=s+r*2,Y.info(`Calculated bounds: ${l}x${u}`),vn(e,u,l,n);let h=`${i.x-r} ${i.y-r} ${i.width+2*r} ${i.height+2*r}`;e.attr("viewBox",h)},"setupGraphViewbox")});var S3,o3e,$G,zG,tA=N(()=>{"use strict";vt();S3={},o3e=o((t,e,r)=>{let n="";return t in S3&&S3[t]?n=S3[t](r):Y.warn(`No theme found for ${t}`),` & {
+    font-family: ${r.fontFamily};
+    font-size: ${r.fontSize};
+    fill: ${r.textColor}
+  }
+  @keyframes edge-animation-frame {
+    from {
+      stroke-dashoffset: 0;
+    }
+  }
+  @keyframes dash {
+    to {
+      stroke-dashoffset: 0;
+    }
+  }
+  & .edge-animation-slow {
+    stroke-dasharray: 9,5 !important;
+    stroke-dashoffset: 900;
+    animation: dash 50s linear infinite;
+    stroke-linecap: round;
+  }
+  & .edge-animation-fast {
+    stroke-dasharray: 9,5 !important;
+    stroke-dashoffset: 900;
+    animation: dash 20s linear infinite;
+    stroke-linecap: round;
+  }
+  /* Classes common for multiple diagrams */
+
+  & .error-icon {
+    fill: ${r.errorBkgColor};
+  }
+  & .error-text {
+    fill: ${r.errorTextColor};
+    stroke: ${r.errorTextColor};
+  }
+
+  & .edge-thickness-normal {
+    stroke-width: 1px;
+  }
+  & .edge-thickness-thick {
+    stroke-width: 3.5px
+  }
+  & .edge-pattern-solid {
+    stroke-dasharray: 0;
+  }
+  & .edge-thickness-invisible {
+    stroke-width: 0;
+    fill: none;
+  }
+  & .edge-pattern-dashed{
+    stroke-dasharray: 3;
+  }
+  .edge-pattern-dotted {
+    stroke-dasharray: 2;
+  }
+
+  & .marker {
+    fill: ${r.lineColor};
+    stroke: ${r.lineColor};
+  }
+  & .marker.cross {
+    stroke: ${r.lineColor};
+  }
+
+  & svg {
+    font-family: ${r.fontFamily};
+    font-size: ${r.fontSize};
+  }
+   & p {
+    margin: 0
+   }
+
+  ${n}
+
+  ${e}
+`},"getStyles"),$G=o((t,e)=>{e!==void 0&&(S3[t]=e)},"addStylesForDiagram"),zG=o3e});var qy={};hr(qy,{clear:()=>Ar,getAccDescription:()=>Mr,getAccTitle:()=>Rr,getDiagramTitle:()=>Ir,setAccDescription:()=>Nr,setAccTitle:()=>Lr,setDiagramTitle:()=>$r});var rA,nA,iA,aA,Ar,Lr,Rr,Nr,Mr,$r,Ir,mi=N(()=>{"use strict";gr();ji();rA="",nA="",iA="",aA=o(t=>Tr(t,cr()),"sanitizeText"),Ar=o(()=>{rA="",iA="",nA=""},"clear"),Lr=o(t=>{rA=aA(t).replace(/^\s+/g,"")},"setAccTitle"),Rr=o(()=>rA,"getAccTitle"),Nr=o(t=>{iA=aA(t).replace(/\n\s+/g,`
+`)},"setAccDescription"),Mr=o(()=>iA,"getAccDescription"),$r=o(t=>{nA=aA(t)},"setDiagramTitle"),Ir=o(()=>nA,"getDiagramTitle")});var GG,l3e,me,Yy,A3,Xy,oA,c3e,C3,ad,jy,sA,zt=N(()=>{"use strict";Xf();vt();ji();gr();Ei();tA();mi();GG=Y,l3e=wy,me=cr,Yy=X4,A3=lh,Xy=o(t=>Tr(t,me()),"sanitizeText"),oA=Ao,c3e=o(()=>qy,"getCommonDb"),C3={},ad=o((t,e,r)=>{C3[t]&&GG.warn(`Diagram with id ${t} already registered. Overwriting.`),C3[t]=e,r&&FC(t,r),$G(t,e.styles),e.injectUtils?.(GG,l3e,me,Xy,oA,c3e(),()=>{})},"registerDiagram"),jy=o(t=>{if(t in C3)return C3[t];throw new sA(t)},"getDiagram"),sA=class extends Error{static{o(this,"DiagramNotFoundError")}constructor(e){super(`Diagram ${e} not found.`)}}});var ul,gh,Ja,cl,tc,Ky,lA,cA,_3,D3,VG,u3e,h3e,f3e,d3e,p3e,m3e,g3e,y3e,v3e,x3e,b3e,w3e,T3e,k3e,E3e,S3e,C3e,UG,A3e,_3e,HG,D3e,L3e,R3e,N3e,yh,M3e,I3e,O3e,P3e,B3e,Qy,uA=N(()=>{"use strict";zt();gr();mi();ul=[],gh=[""],Ja="global",cl="",tc=[{alias:"global",label:{text:"global"},type:{text:"global"},tags:null,link:null,parentBoundary:""}],Ky=[],lA="",cA=!1,_3=4,D3=2,u3e=o(function(){return VG},"getC4Type"),h3e=o(function(t){VG=Tr(t,me())},"setC4Type"),f3e=o(function(t,e,r,n,i,a,s,l,u){if(t==null||e===void 0||e===null||r===void 0||r===null||n===void 0||n===null)return;let h={},f=Ky.find(d=>d.from===e&&d.to===r);if(f?h=f:Ky.push(h),h.type=t,h.from=e,h.to=r,h.label={text:n},i==null)h.techn={text:""};else if(typeof i=="object"){let[d,p]=Object.entries(i)[0];h[d]={text:p}}else h.techn={text:i};if(a==null)h.descr={text:""};else if(typeof a=="object"){let[d,p]=Object.entries(a)[0];h[d]={text:p}}else h.descr={text:a};if(typeof s=="object"){let[d,p]=Object.entries(s)[0];h[d]=p}else h.sprite=s;if(typeof l=="object"){let[d,p]=Object.entries(l)[0];h[d]=p}else h.tags=l;if(typeof u=="object"){let[d,p]=Object.entries(u)[0];h[d]=p}else h.link=u;h.wrap=yh()},"addRel"),d3e=o(function(t,e,r,n,i,a,s){if(e===null||r===null)return;let l={},u=ul.find(h=>h.alias===e);if(u&&e===u.alias?l=u:(l.alias=e,ul.push(l)),r==null?l.label={text:""}:l.label={text:r},n==null)l.descr={text:""};else if(typeof n=="object"){let[h,f]=Object.entries(n)[0];l[h]={text:f}}else l.descr={text:n};if(typeof i=="object"){let[h,f]=Object.entries(i)[0];l[h]=f}else l.sprite=i;if(typeof a=="object"){let[h,f]=Object.entries(a)[0];l[h]=f}else l.tags=a;if(typeof s=="object"){let[h,f]=Object.entries(s)[0];l[h]=f}else l.link=s;l.typeC4Shape={text:t},l.parentBoundary=Ja,l.wrap=yh()},"addPersonOrSystem"),p3e=o(function(t,e,r,n,i,a,s,l){if(e===null||r===null)return;let u={},h=ul.find(f=>f.alias===e);if(h&&e===h.alias?u=h:(u.alias=e,ul.push(u)),r==null?u.label={text:""}:u.label={text:r},n==null)u.techn={text:""};else if(typeof n=="object"){let[f,d]=Object.entries(n)[0];u[f]={text:d}}else u.techn={text:n};if(i==null)u.descr={text:""};else if(typeof i=="object"){let[f,d]=Object.entries(i)[0];u[f]={text:d}}else u.descr={text:i};if(typeof a=="object"){let[f,d]=Object.entries(a)[0];u[f]=d}else u.sprite=a;if(typeof s=="object"){let[f,d]=Object.entries(s)[0];u[f]=d}else u.tags=s;if(typeof l=="object"){let[f,d]=Object.entries(l)[0];u[f]=d}else u.link=l;u.wrap=yh(),u.typeC4Shape={text:t},u.parentBoundary=Ja},"addContainer"),m3e=o(function(t,e,r,n,i,a,s,l){if(e===null||r===null)return;let u={},h=ul.find(f=>f.alias===e);if(h&&e===h.alias?u=h:(u.alias=e,ul.push(u)),r==null?u.label={text:""}:u.label={text:r},n==null)u.techn={text:""};else if(typeof n=="object"){let[f,d]=Object.entries(n)[0];u[f]={text:d}}else u.techn={text:n};if(i==null)u.descr={text:""};else if(typeof i=="object"){let[f,d]=Object.entries(i)[0];u[f]={text:d}}else u.descr={text:i};if(typeof a=="object"){let[f,d]=Object.entries(a)[0];u[f]=d}else u.sprite=a;if(typeof s=="object"){let[f,d]=Object.entries(s)[0];u[f]=d}else u.tags=s;if(typeof l=="object"){let[f,d]=Object.entries(l)[0];u[f]=d}else u.link=l;u.wrap=yh(),u.typeC4Shape={text:t},u.parentBoundary=Ja},"addComponent"),g3e=o(function(t,e,r,n,i){if(t===null||e===null)return;let a={},s=tc.find(l=>l.alias===t);if(s&&t===s.alias?a=s:(a.alias=t,tc.push(a)),e==null?a.label={text:""}:a.label={text:e},r==null)a.type={text:"system"};else if(typeof r=="object"){let[l,u]=Object.entries(r)[0];a[l]={text:u}}else a.type={text:r};if(typeof n=="object"){let[l,u]=Object.entries(n)[0];a[l]=u}else a.tags=n;if(typeof i=="object"){let[l,u]=Object.entries(i)[0];a[l]=u}else a.link=i;a.parentBoundary=Ja,a.wrap=yh(),cl=Ja,Ja=t,gh.push(cl)},"addPersonOrSystemBoundary"),y3e=o(function(t,e,r,n,i){if(t===null||e===null)return;let a={},s=tc.find(l=>l.alias===t);if(s&&t===s.alias?a=s:(a.alias=t,tc.push(a)),e==null?a.label={text:""}:a.label={text:e},r==null)a.type={text:"container"};else if(typeof r=="object"){let[l,u]=Object.entries(r)[0];a[l]={text:u}}else a.type={text:r};if(typeof n=="object"){let[l,u]=Object.entries(n)[0];a[l]=u}else a.tags=n;if(typeof i=="object"){let[l,u]=Object.entries(i)[0];a[l]=u}else a.link=i;a.parentBoundary=Ja,a.wrap=yh(),cl=Ja,Ja=t,gh.push(cl)},"addContainerBoundary"),v3e=o(function(t,e,r,n,i,a,s,l){if(e===null||r===null)return;let u={},h=tc.find(f=>f.alias===e);if(h&&e===h.alias?u=h:(u.alias=e,tc.push(u)),r==null?u.label={text:""}:u.label={text:r},n==null)u.type={text:"node"};else if(typeof n=="object"){let[f,d]=Object.entries(n)[0];u[f]={text:d}}else u.type={text:n};if(i==null)u.descr={text:""};else if(typeof i=="object"){let[f,d]=Object.entries(i)[0];u[f]={text:d}}else u.descr={text:i};if(typeof s=="object"){let[f,d]=Object.entries(s)[0];u[f]=d}else u.tags=s;if(typeof l=="object"){let[f,d]=Object.entries(l)[0];u[f]=d}else u.link=l;u.nodeType=t,u.parentBoundary=Ja,u.wrap=yh(),cl=Ja,Ja=e,gh.push(cl)},"addDeploymentNode"),x3e=o(function(){Ja=cl,gh.pop(),cl=gh.pop(),gh.push(cl)},"popBoundaryParseStack"),b3e=o(function(t,e,r,n,i,a,s,l,u,h,f){let d=ul.find(p=>p.alias===e);if(!(d===void 0&&(d=tc.find(p=>p.alias===e),d===void 0))){if(r!=null)if(typeof r=="object"){let[p,m]=Object.entries(r)[0];d[p]=m}else d.bgColor=r;if(n!=null)if(typeof n=="object"){let[p,m]=Object.entries(n)[0];d[p]=m}else d.fontColor=n;if(i!=null)if(typeof i=="object"){let[p,m]=Object.entries(i)[0];d[p]=m}else d.borderColor=i;if(a!=null)if(typeof a=="object"){let[p,m]=Object.entries(a)[0];d[p]=m}else d.shadowing=a;if(s!=null)if(typeof s=="object"){let[p,m]=Object.entries(s)[0];d[p]=m}else d.shape=s;if(l!=null)if(typeof l=="object"){let[p,m]=Object.entries(l)[0];d[p]=m}else d.sprite=l;if(u!=null)if(typeof u=="object"){let[p,m]=Object.entries(u)[0];d[p]=m}else d.techn=u;if(h!=null)if(typeof h=="object"){let[p,m]=Object.entries(h)[0];d[p]=m}else d.legendText=h;if(f!=null)if(typeof f=="object"){let[p,m]=Object.entries(f)[0];d[p]=m}else d.legendSprite=f}},"updateElStyle"),w3e=o(function(t,e,r,n,i,a,s){let l=Ky.find(u=>u.from===e&&u.to===r);if(l!==void 0){if(n!=null)if(typeof n=="object"){let[u,h]=Object.entries(n)[0];l[u]=h}else l.textColor=n;if(i!=null)if(typeof i=="object"){let[u,h]=Object.entries(i)[0];l[u]=h}else l.lineColor=i;if(a!=null)if(typeof a=="object"){let[u,h]=Object.entries(a)[0];l[u]=parseInt(h)}else l.offsetX=parseInt(a);if(s!=null)if(typeof s=="object"){let[u,h]=Object.entries(s)[0];l[u]=parseInt(h)}else l.offsetY=parseInt(s)}},"updateRelStyle"),T3e=o(function(t,e,r){let n=_3,i=D3;if(typeof e=="object"){let a=Object.values(e)[0];n=parseInt(a)}else n=parseInt(e);if(typeof r=="object"){let a=Object.values(r)[0];i=parseInt(a)}else i=parseInt(r);n>=1&&(_3=n),i>=1&&(D3=i)},"updateLayoutConfig"),k3e=o(function(){return _3},"getC4ShapeInRow"),E3e=o(function(){return D3},"getC4BoundaryInRow"),S3e=o(function(){return Ja},"getCurrentBoundaryParse"),C3e=o(function(){return cl},"getParentBoundaryParse"),UG=o(function(t){return t==null?ul:ul.filter(e=>e.parentBoundary===t)},"getC4ShapeArray"),A3e=o(function(t){return ul.find(e=>e.alias===t)},"getC4Shape"),_3e=o(function(t){return Object.keys(UG(t))},"getC4ShapeKeys"),HG=o(function(t){return t==null?tc:tc.filter(e=>e.parentBoundary===t)},"getBoundaries"),D3e=HG,L3e=o(function(){return Ky},"getRels"),R3e=o(function(){return lA},"getTitle"),N3e=o(function(t){cA=t},"setWrap"),yh=o(function(){return cA},"autoWrap"),M3e=o(function(){ul=[],tc=[{alias:"global",label:{text:"global"},type:{text:"global"},tags:null,link:null,parentBoundary:""}],cl="",Ja="global",gh=[""],Ky=[],gh=[""],lA="",cA=!1,_3=4,D3=2},"clear"),I3e={SOLID:0,DOTTED:1,NOTE:2,SOLID_CROSS:3,DOTTED_CROSS:4,SOLID_OPEN:5,DOTTED_OPEN:6,LOOP_START:10,LOOP_END:11,ALT_START:12,ALT_ELSE:13,ALT_END:14,OPT_START:15,OPT_END:16,ACTIVE_START:17,ACTIVE_END:18,PAR_START:19,PAR_AND:20,PAR_END:21,RECT_START:22,RECT_END:23,SOLID_POINT:24,DOTTED_POINT:25},O3e={FILLED:0,OPEN:1},P3e={LEFTOF:0,RIGHTOF:1,OVER:2},B3e=o(function(t){lA=Tr(t,me())},"setTitle"),Qy={addPersonOrSystem:d3e,addPersonOrSystemBoundary:g3e,addContainer:p3e,addContainerBoundary:y3e,addComponent:m3e,addDeploymentNode:v3e,popBoundaryParseStack:x3e,addRel:f3e,updateElStyle:b3e,updateRelStyle:w3e,updateLayoutConfig:T3e,autoWrap:yh,setWrap:N3e,getC4ShapeArray:UG,getC4Shape:A3e,getC4ShapeKeys:_3e,getBoundaries:HG,getBoundarys:D3e,getCurrentBoundaryParse:S3e,getParentBoundaryParse:C3e,getRels:L3e,getTitle:R3e,getC4Type:u3e,getC4ShapeInRow:k3e,getC4BoundaryInRow:E3e,setAccTitle:Lr,getAccTitle:Rr,getAccDescription:Mr,setAccDescription:Nr,getConfig:o(()=>me().c4,"getConfig"),clear:M3e,LINETYPE:I3e,ARROWTYPE:O3e,PLACEMENT:P3e,setTitle:B3e,setC4Type:h3e}});function sd(t,e){return t==null||e==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}var hA=N(()=>{"use strict";o(sd,"ascending")});function fA(t,e){return t==null||e==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}var WG=N(()=>{"use strict";o(fA,"descending")});function od(t){let e,r,n;t.length!==2?(e=sd,r=o((l,u)=>sd(t(l),u),"compare2"),n=o((l,u)=>t(l)-u,"delta")):(e=t===sd||t===fA?t:F3e,r=t,n=t);function i(l,u,h=0,f=l.length){if(h<f){if(e(u,u)!==0)return f;do{let d=h+f>>>1;r(l[d],u)<0?h=d+1:f=d}while(h<f)}return h}o(i,"left");function a(l,u,h=0,f=l.length){if(h<f){if(e(u,u)!==0)return f;do{let d=h+f>>>1;r(l[d],u)<=0?h=d+1:f=d}while(h<f)}return h}o(a,"right");function s(l,u,h=0,f=l.length){let d=i(l,u,h,f-1);return d>h&&n(l[d-1],u)>-n(l[d],u)?d-1:d}return o(s,"center"),{left:i,center:s,right:a}}function F3e(){return 0}var dA=N(()=>{"use strict";hA();WG();o(od,"bisector");o(F3e,"zero")});function pA(t){return t===null?NaN:+t}var qG=N(()=>{"use strict";o(pA,"number")});var YG,XG,$3e,z3e,mA,jG=N(()=>{"use strict";hA();dA();qG();YG=od(sd),XG=YG.right,$3e=YG.left,z3e=od(pA).center,mA=XG});function KG({_intern:t,_key:e},r){let n=e(r);return t.has(n)?t.get(n):r}function G3e({_intern:t,_key:e},r){let n=e(r);return t.has(n)?t.get(n):(t.set(n,r),r)}function V3e({_intern:t,_key:e},r){let n=e(r);return t.has(n)&&(r=t.get(n),t.delete(n)),r}function U3e(t){return t!==null&&typeof t=="object"?t.valueOf():t}var g0,QG=N(()=>{"use strict";g0=class extends Map{static{o(this,"InternMap")}constructor(e,r=U3e){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:r}}),e!=null)for(let[n,i]of e)this.set(n,i)}get(e){return super.get(KG(this,e))}has(e){return super.has(KG(this,e))}set(e,r){return super.set(G3e(this,e),r)}delete(e){return super.delete(V3e(this,e))}};o(KG,"intern_get");o(G3e,"intern_set");o(V3e,"intern_delete");o(U3e,"keyof")});function L3(t,e,r){let n=(e-t)/Math.max(0,r),i=Math.floor(Math.log10(n)),a=n/Math.pow(10,i),s=a>=H3e?10:a>=W3e?5:a>=q3e?2:1,l,u,h;return i<0?(h=Math.pow(10,-i)/s,l=Math.round(t*h),u=Math.round(e*h),l/h<t&&++l,u/h>e&&--u,h=-h):(h=Math.pow(10,i)*s,l=Math.round(t/h),u=Math.round(e/h),l*h<t&&++l,u*h>e&&--u),u<l&&.5<=r&&r<2?L3(t,e,r*2):[l,u,h]}function R3(t,e,r){if(e=+e,t=+t,r=+r,!(r>0))return[];if(t===e)return[t];let n=e<t,[i,a,s]=n?L3(e,t,r):L3(t,e,r);if(!(a>=i))return[];let l=a-i+1,u=new Array(l);if(n)if(s<0)for(let h=0;h<l;++h)u[h]=(a-h)/-s;else for(let h=0;h<l;++h)u[h]=(a-h)*s;else if(s<0)for(let h=0;h<l;++h)u[h]=(i+h)/-s;else for(let h=0;h<l;++h)u[h]=(i+h)*s;return u}function Zy(t,e,r){return e=+e,t=+t,r=+r,L3(t,e,r)[2]}function y0(t,e,r){e=+e,t=+t,r=+r;let n=e<t,i=n?Zy(e,t,r):Zy(t,e,r);return(n?-1:1)*(i<0?1/-i:i)}var H3e,W3e,q3e,ZG=N(()=>{"use strict";H3e=Math.sqrt(50),W3e=Math.sqrt(10),q3e=Math.sqrt(2);o(L3,"tickSpec");o(R3,"ticks");o(Zy,"tickIncrement");o(y0,"tickStep")});function N3(t,e){let r;if(e===void 0)for(let n of t)n!=null&&(r<n||r===void 0&&n>=n)&&(r=n);else{let n=-1;for(let i of t)(i=e(i,++n,t))!=null&&(r<i||r===void 0&&i>=i)&&(r=i)}return r}var JG=N(()=>{"use strict";o(N3,"max")});function M3(t,e){let r;if(e===void 0)for(let n of t)n!=null&&(r>n||r===void 0&&n>=n)&&(r=n);else{let n=-1;for(let i of t)(i=e(i,++n,t))!=null&&(r>i||r===void 0&&i>=i)&&(r=i)}return r}var eV=N(()=>{"use strict";o(M3,"min")});function I3(t,e,r){t=+t,e=+e,r=(i=arguments.length)<2?(e=t,t=0,1):i<3?1:+r;for(var n=-1,i=Math.max(0,Math.ceil((e-t)/r))|0,a=new Array(i);++n<i;)a[n]=t+n*r;return a}var tV=N(()=>{"use strict";o(I3,"range")});var vh=N(()=>{"use strict";jG();dA();JG();eV();tV();ZG();QG()});function gA(t){return t}var rV=N(()=>{"use strict";o(gA,"default")});function Y3e(t){return"translate("+t+",0)"}function X3e(t){return"translate(0,"+t+")"}function j3e(t){return e=>+t(e)}function K3e(t,e){return e=Math.max(0,t.bandwidth()-e*2)/2,t.round()&&(e=Math.round(e)),r=>+t(r)+e}function Q3e(){return!this.__axis}function iV(t,e){var r=[],n=null,i=null,a=6,s=6,l=3,u=typeof window<"u"&&window.devicePixelRatio>1?0:.5,h=t===P3||t===O3?-1:1,f=t===O3||t===yA?"x":"y",d=t===P3||t===vA?Y3e:X3e;function p(m){var g=n??(e.ticks?e.ticks.apply(e,r):e.domain()),y=i??(e.tickFormat?e.tickFormat.apply(e,r):gA),v=Math.max(a,0)+l,x=e.range(),b=+x[0]+u,w=+x[x.length-1]+u,C=(e.bandwidth?K3e:j3e)(e.copy(),u),T=m.selection?m.selection():m,E=T.selectAll(".domain").data([null]),A=T.selectAll(".tick").data(g,e).order(),S=A.exit(),_=A.enter().append("g").attr("class","tick"),I=A.select("line"),D=A.select("text");E=E.merge(E.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),A=A.merge(_),I=I.merge(_.append("line").attr("stroke","currentColor").attr(f+"2",h*a)),D=D.merge(_.append("text").attr("fill","currentColor").attr(f,h*v).attr("dy",t===P3?"0em":t===vA?"0.71em":"0.32em")),m!==T&&(E=E.transition(m),A=A.transition(m),I=I.transition(m),D=D.transition(m),S=S.transition(m).attr("opacity",nV).attr("transform",function(k){return isFinite(k=C(k))?d(k+u):this.getAttribute("transform")}),_.attr("opacity",nV).attr("transform",function(k){var L=this.parentNode.__axis;return d((L&&isFinite(L=L(k))?L:C(k))+u)})),S.remove(),E.attr("d",t===O3||t===yA?s?"M"+h*s+","+b+"H"+u+"V"+w+"H"+h*s:"M"+u+","+b+"V"+w:s?"M"+b+","+h*s+"V"+u+"H"+w+"V"+h*s:"M"+b+","+u+"H"+w),A.attr("opacity",1).attr("transform",function(k){return d(C(k)+u)}),I.attr(f+"2",h*a),D.attr(f,h*v).text(y),T.filter(Q3e).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",t===yA?"start":t===O3?"end":"middle"),T.each(function(){this.__axis=C})}return o(p,"axis"),p.scale=function(m){return arguments.length?(e=m,p):e},p.ticks=function(){return r=Array.from(arguments),p},p.tickArguments=function(m){return arguments.length?(r=m==null?[]:Array.from(m),p):r.slice()},p.tickValues=function(m){return arguments.length?(n=m==null?null:Array.from(m),p):n&&n.slice()},p.tickFormat=function(m){return arguments.length?(i=m,p):i},p.tickSize=function(m){return arguments.length?(a=s=+m,p):a},p.tickSizeInner=function(m){return arguments.length?(a=+m,p):a},p.tickSizeOuter=function(m){return arguments.length?(s=+m,p):s},p.tickPadding=function(m){return arguments.length?(l=+m,p):l},p.offset=function(m){return arguments.length?(u=+m,p):u},p}function xA(t){return iV(P3,t)}function bA(t){return iV(vA,t)}var P3,yA,vA,O3,nV,aV=N(()=>{"use strict";rV();P3=1,yA=2,vA=3,O3=4,nV=1e-6;o(Y3e,"translateX");o(X3e,"translateY");o(j3e,"number");o(K3e,"center");o(Q3e,"entering");o(iV,"axis");o(xA,"axisTop");o(bA,"axisBottom")});var sV=N(()=>{"use strict";aV()});function lV(){for(var t=0,e=arguments.length,r={},n;t<e;++t){if(!(n=arguments[t]+"")||n in r||/[\s.]/.test(n))throw new Error("illegal type: "+n);r[n]=[]}return new B3(r)}function B3(t){this._=t}function J3e(t,e){return t.trim().split(/^|\s+/).map(function(r){var n="",i=r.indexOf(".");if(i>=0&&(n=r.slice(i+1),r=r.slice(0,i)),r&&!e.hasOwnProperty(r))throw new Error("unknown type: "+r);return{type:r,name:n}})}function e5e(t,e){for(var r=0,n=t.length,i;r<n;++r)if((i=t[r]).name===e)return i.value}function oV(t,e,r){for(var n=0,i=t.length;n<i;++n)if(t[n].name===e){t[n]=Z3e,t=t.slice(0,n).concat(t.slice(n+1));break}return r!=null&&t.push({name:e,value:r}),t}var Z3e,wA,cV=N(()=>{"use strict";Z3e={value:o(()=>{},"value")};o(lV,"dispatch");o(B3,"Dispatch");o(J3e,"parseTypenames");B3.prototype=lV.prototype={constructor:B3,on:o(function(t,e){var r=this._,n=J3e(t+"",r),i,a=-1,s=n.length;if(arguments.length<2){for(;++a<s;)if((i=(t=n[a]).type)&&(i=e5e(r[i],t.name)))return i;return}if(e!=null&&typeof e!="function")throw new Error("invalid callback: "+e);for(;++a<s;)if(i=(t=n[a]).type)r[i]=oV(r[i],t.name,e);else if(e==null)for(i in r)r[i]=oV(r[i],t.name,null);return this},"on"),copy:o(function(){var t={},e=this._;for(var r in e)t[r]=e[r].slice();return new B3(t)},"copy"),call:o(function(t,e){if((i=arguments.length-2)>0)for(var r=new Array(i),n=0,i,a;n<i;++n)r[n]=arguments[n+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(a=this._[t],n=0,i=a.length;n<i;++n)a[n].value.apply(e,r)},"call"),apply:o(function(t,e,r){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var n=this._[t],i=0,a=n.length;i<a;++i)n[i].value.apply(e,r)},"apply")};o(e5e,"get");o(oV,"set");wA=lV});var TA=N(()=>{"use strict";cV()});var F3,kA,EA=N(()=>{"use strict";F3="http://www.w3.org/1999/xhtml",kA={svg:"http://www.w3.org/2000/svg",xhtml:F3,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"}});function rc(t){var e=t+="",r=e.indexOf(":");return r>=0&&(e=t.slice(0,r))!=="xmlns"&&(t=t.slice(r+1)),kA.hasOwnProperty(e)?{space:kA[e],local:t}:t}var $3=N(()=>{"use strict";EA();o(rc,"default")});function t5e(t){return function(){var e=this.ownerDocument,r=this.namespaceURI;return r===F3&&e.documentElement.namespaceURI===F3?e.createElement(t):e.createElementNS(r,t)}}function r5e(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function Jy(t){var e=rc(t);return(e.local?r5e:t5e)(e)}var SA=N(()=>{"use strict";$3();EA();o(t5e,"creatorInherit");o(r5e,"creatorFixed");o(Jy,"default")});function n5e(){}function xh(t){return t==null?n5e:function(){return this.querySelector(t)}}var z3=N(()=>{"use strict";o(n5e,"none");o(xh,"default")});function CA(t){typeof t!="function"&&(t=xh(t));for(var e=this._groups,r=e.length,n=new Array(r),i=0;i<r;++i)for(var a=e[i],s=a.length,l=n[i]=new Array(s),u,h,f=0;f<s;++f)(u=a[f])&&(h=t.call(u,u.__data__,f,a))&&("__data__"in u&&(h.__data__=u.__data__),l[f]=h);return new oi(n,this._parents)}var uV=N(()=>{"use strict";hl();z3();o(CA,"default")});function AA(t){return t==null?[]:Array.isArray(t)?t:Array.from(t)}var hV=N(()=>{"use strict";o(AA,"array")});function i5e(){return[]}function v0(t){return t==null?i5e:function(){return this.querySelectorAll(t)}}var _A=N(()=>{"use strict";o(i5e,"empty");o(v0,"default")});function a5e(t){return function(){return AA(t.apply(this,arguments))}}function DA(t){typeof t=="function"?t=a5e(t):t=v0(t);for(var e=this._groups,r=e.length,n=[],i=[],a=0;a<r;++a)for(var s=e[a],l=s.length,u,h=0;h<l;++h)(u=s[h])&&(n.push(t.call(u,u.__data__,h,s)),i.push(u));return new oi(n,i)}var fV=N(()=>{"use strict";hl();hV();_A();o(a5e,"arrayAll");o(DA,"default")});function x0(t){return function(){return this.matches(t)}}function G3(t){return function(e){return e.matches(t)}}var ev=N(()=>{"use strict";o(x0,"default");o(G3,"childMatcher")});function o5e(t){return function(){return s5e.call(this.children,t)}}function l5e(){return this.firstElementChild}function LA(t){return this.select(t==null?l5e:o5e(typeof t=="function"?t:G3(t)))}var s5e,dV=N(()=>{"use strict";ev();s5e=Array.prototype.find;o(o5e,"childFind");o(l5e,"childFirst");o(LA,"default")});function u5e(){return Array.from(this.children)}function h5e(t){return function(){return c5e.call(this.children,t)}}function RA(t){return this.selectAll(t==null?u5e:h5e(typeof t=="function"?t:G3(t)))}var c5e,pV=N(()=>{"use strict";ev();c5e=Array.prototype.filter;o(u5e,"children");o(h5e,"childrenFilter");o(RA,"default")});function NA(t){typeof t!="function"&&(t=x0(t));for(var e=this._groups,r=e.length,n=new Array(r),i=0;i<r;++i)for(var a=e[i],s=a.length,l=n[i]=[],u,h=0;h<s;++h)(u=a[h])&&t.call(u,u.__data__,h,a)&&l.push(u);return new oi(n,this._parents)}var mV=N(()=>{"use strict";hl();ev();o(NA,"default")});function tv(t){return new Array(t.length)}var MA=N(()=>{"use strict";o(tv,"default")});function IA(){return new oi(this._enter||this._groups.map(tv),this._parents)}function rv(t,e){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=e}var OA=N(()=>{"use strict";MA();hl();o(IA,"default");o(rv,"EnterNode");rv.prototype={constructor:rv,appendChild:o(function(t){return this._parent.insertBefore(t,this._next)},"appendChild"),insertBefore:o(function(t,e){return this._parent.insertBefore(t,e)},"insertBefore"),querySelector:o(function(t){return this._parent.querySelector(t)},"querySelector"),querySelectorAll:o(function(t){return this._parent.querySelectorAll(t)},"querySelectorAll")}});function PA(t){return function(){return t}}var gV=N(()=>{"use strict";o(PA,"default")});function f5e(t,e,r,n,i,a){for(var s=0,l,u=e.length,h=a.length;s<h;++s)(l=e[s])?(l.__data__=a[s],n[s]=l):r[s]=new rv(t,a[s]);for(;s<u;++s)(l=e[s])&&(i[s]=l)}function d5e(t,e,r,n,i,a,s){var l,u,h=new Map,f=e.length,d=a.length,p=new Array(f),m;for(l=0;l<f;++l)(u=e[l])&&(p[l]=m=s.call(u,u.__data__,l,e)+"",h.has(m)?i[l]=u:h.set(m,u));for(l=0;l<d;++l)m=s.call(t,a[l],l,a)+"",(u=h.get(m))?(n[l]=u,u.__data__=a[l],h.delete(m)):r[l]=new rv(t,a[l]);for(l=0;l<f;++l)(u=e[l])&&h.get(p[l])===u&&(i[l]=u)}function p5e(t){return t.__data__}function BA(t,e){if(!arguments.length)return Array.from(this,p5e);var r=e?d5e:f5e,n=this._parents,i=this._groups;typeof t!="function"&&(t=PA(t));for(var a=i.length,s=new Array(a),l=new Array(a),u=new Array(a),h=0;h<a;++h){var f=n[h],d=i[h],p=d.length,m=m5e(t.call(f,f&&f.__data__,h,n)),g=m.length,y=l[h]=new Array(g),v=s[h]=new Array(g),x=u[h]=new Array(p);r(f,d,y,v,x,m,e);for(var b=0,w=0,C,T;b<g;++b)if(C=y[b]){for(b>=w&&(w=b+1);!(T=v[w])&&++w<g;);C._next=T||null}}return s=new oi(s,n),s._enter=l,s._exit=u,s}function m5e(t){return typeof t=="object"&&"length"in t?t:Array.from(t)}var yV=N(()=>{"use strict";hl();OA();gV();o(f5e,"bindIndex");o(d5e,"bindKey");o(p5e,"datum");o(BA,"default");o(m5e,"arraylike")});function FA(){return new oi(this._exit||this._groups.map(tv),this._parents)}var vV=N(()=>{"use strict";MA();hl();o(FA,"default")});function $A(t,e,r){var n=this.enter(),i=this,a=this.exit();return typeof t=="function"?(n=t(n),n&&(n=n.selection())):n=n.append(t+""),e!=null&&(i=e(i),i&&(i=i.selection())),r==null?a.remove():r(a),n&&i?n.merge(i).order():i}var xV=N(()=>{"use strict";o($A,"default")});function zA(t){for(var e=t.selection?t.selection():t,r=this._groups,n=e._groups,i=r.length,a=n.length,s=Math.min(i,a),l=new Array(i),u=0;u<s;++u)for(var h=r[u],f=n[u],d=h.length,p=l[u]=new Array(d),m,g=0;g<d;++g)(m=h[g]||f[g])&&(p[g]=m);for(;u<i;++u)l[u]=r[u];return new oi(l,this._parents)}var bV=N(()=>{"use strict";hl();o(zA,"default")});function GA(){for(var t=this._groups,e=-1,r=t.length;++e<r;)for(var n=t[e],i=n.length-1,a=n[i],s;--i>=0;)(s=n[i])&&(a&&s.compareDocumentPosition(a)^4&&a.parentNode.insertBefore(s,a),a=s);return this}var wV=N(()=>{"use strict";o(GA,"default")});function VA(t){t||(t=g5e);function e(d,p){return d&&p?t(d.__data__,p.__data__):!d-!p}o(e,"compareNode");for(var r=this._groups,n=r.length,i=new Array(n),a=0;a<n;++a){for(var s=r[a],l=s.length,u=i[a]=new Array(l),h,f=0;f<l;++f)(h=s[f])&&(u[f]=h);u.sort(e)}return new oi(i,this._parents).order()}function g5e(t,e){return t<e?-1:t>e?1:t>=e?0:NaN}var TV=N(()=>{"use strict";hl();o(VA,"default");o(g5e,"ascending")});function UA(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this}var kV=N(()=>{"use strict";o(UA,"default")});function HA(){return Array.from(this)}var EV=N(()=>{"use strict";o(HA,"default")});function WA(){for(var t=this._groups,e=0,r=t.length;e<r;++e)for(var n=t[e],i=0,a=n.length;i<a;++i){var s=n[i];if(s)return s}return null}var SV=N(()=>{"use strict";o(WA,"default")});function qA(){let t=0;for(let e of this)++t;return t}var CV=N(()=>{"use strict";o(qA,"default")});function YA(){return!this.node()}var AV=N(()=>{"use strict";o(YA,"default")});function XA(t){for(var e=this._groups,r=0,n=e.length;r<n;++r)for(var i=e[r],a=0,s=i.length,l;a<s;++a)(l=i[a])&&t.call(l,l.__data__,a,i);return this}var _V=N(()=>{"use strict";o(XA,"default")});function y5e(t){return function(){this.removeAttribute(t)}}function v5e(t){return function(){this.removeAttributeNS(t.space,t.local)}}function x5e(t,e){return function(){this.setAttribute(t,e)}}function b5e(t,e){return function(){this.setAttributeNS(t.space,t.local,e)}}function w5e(t,e){return function(){var r=e.apply(this,arguments);r==null?this.removeAttribute(t):this.setAttribute(t,r)}}function T5e(t,e){return function(){var r=e.apply(this,arguments);r==null?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,r)}}function jA(t,e){var r=rc(t);if(arguments.length<2){var n=this.node();return r.local?n.getAttributeNS(r.space,r.local):n.getAttribute(r)}return this.each((e==null?r.local?v5e:y5e:typeof e=="function"?r.local?T5e:w5e:r.local?b5e:x5e)(r,e))}var DV=N(()=>{"use strict";$3();o(y5e,"attrRemove");o(v5e,"attrRemoveNS");o(x5e,"attrConstant");o(b5e,"attrConstantNS");o(w5e,"attrFunction");o(T5e,"attrFunctionNS");o(jA,"default")});function nv(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}var KA=N(()=>{"use strict";o(nv,"default")});function k5e(t){return function(){this.style.removeProperty(t)}}function E5e(t,e,r){return function(){this.style.setProperty(t,e,r)}}function S5e(t,e,r){return function(){var n=e.apply(this,arguments);n==null?this.style.removeProperty(t):this.style.setProperty(t,n,r)}}function QA(t,e,r){return arguments.length>1?this.each((e==null?k5e:typeof e=="function"?S5e:E5e)(t,e,r??"")):bh(this.node(),t)}function bh(t,e){return t.style.getPropertyValue(e)||nv(t).getComputedStyle(t,null).getPropertyValue(e)}var ZA=N(()=>{"use strict";KA();o(k5e,"styleRemove");o(E5e,"styleConstant");o(S5e,"styleFunction");o(QA,"default");o(bh,"styleValue")});function C5e(t){return function(){delete this[t]}}function A5e(t,e){return function(){this[t]=e}}function _5e(t,e){return function(){var r=e.apply(this,arguments);r==null?delete this[t]:this[t]=r}}function JA(t,e){return arguments.length>1?this.each((e==null?C5e:typeof e=="function"?_5e:A5e)(t,e)):this.node()[t]}var LV=N(()=>{"use strict";o(C5e,"propertyRemove");o(A5e,"propertyConstant");o(_5e,"propertyFunction");o(JA,"default")});function RV(t){return t.trim().split(/^|\s+/)}function e8(t){return t.classList||new NV(t)}function NV(t){this._node=t,this._names=RV(t.getAttribute("class")||"")}function MV(t,e){for(var r=e8(t),n=-1,i=e.length;++n<i;)r.add(e[n])}function IV(t,e){for(var r=e8(t),n=-1,i=e.length;++n<i;)r.remove(e[n])}function D5e(t){return function(){MV(this,t)}}function L5e(t){return function(){IV(this,t)}}function R5e(t,e){return function(){(e.apply(this,arguments)?MV:IV)(this,t)}}function t8(t,e){var r=RV(t+"");if(arguments.length<2){for(var n=e8(this.node()),i=-1,a=r.length;++i<a;)if(!n.contains(r[i]))return!1;return!0}return this.each((typeof e=="function"?R5e:e?D5e:L5e)(r,e))}var OV=N(()=>{"use strict";o(RV,"classArray");o(e8,"classList");o(NV,"ClassList");NV.prototype={add:o(function(t){var e=this._names.indexOf(t);e<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},"add"),remove:o(function(t){var e=this._names.indexOf(t);e>=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},"remove"),contains:o(function(t){return this._names.indexOf(t)>=0},"contains")};o(MV,"classedAdd");o(IV,"classedRemove");o(D5e,"classedTrue");o(L5e,"classedFalse");o(R5e,"classedFunction");o(t8,"default")});function N5e(){this.textContent=""}function M5e(t){return function(){this.textContent=t}}function I5e(t){return function(){var e=t.apply(this,arguments);this.textContent=e??""}}function r8(t){return arguments.length?this.each(t==null?N5e:(typeof t=="function"?I5e:M5e)(t)):this.node().textContent}var PV=N(()=>{"use strict";o(N5e,"textRemove");o(M5e,"textConstant");o(I5e,"textFunction");o(r8,"default")});function O5e(){this.innerHTML=""}function P5e(t){return function(){this.innerHTML=t}}function B5e(t){return function(){var e=t.apply(this,arguments);this.innerHTML=e??""}}function n8(t){return arguments.length?this.each(t==null?O5e:(typeof t=="function"?B5e:P5e)(t)):this.node().innerHTML}var BV=N(()=>{"use strict";o(O5e,"htmlRemove");o(P5e,"htmlConstant");o(B5e,"htmlFunction");o(n8,"default")});function F5e(){this.nextSibling&&this.parentNode.appendChild(this)}function i8(){return this.each(F5e)}var FV=N(()=>{"use strict";o(F5e,"raise");o(i8,"default")});function $5e(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function a8(){return this.each($5e)}var $V=N(()=>{"use strict";o($5e,"lower");o(a8,"default")});function s8(t){var e=typeof t=="function"?t:Jy(t);return this.select(function(){return this.appendChild(e.apply(this,arguments))})}var zV=N(()=>{"use strict";SA();o(s8,"default")});function z5e(){return null}function o8(t,e){var r=typeof t=="function"?t:Jy(t),n=e==null?z5e:typeof e=="function"?e:xh(e);return this.select(function(){return this.insertBefore(r.apply(this,arguments),n.apply(this,arguments)||null)})}var GV=N(()=>{"use strict";SA();z3();o(z5e,"constantNull");o(o8,"default")});function G5e(){var t=this.parentNode;t&&t.removeChild(this)}function l8(){return this.each(G5e)}var VV=N(()=>{"use strict";o(G5e,"remove");o(l8,"default")});function V5e(){var t=this.cloneNode(!1),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function U5e(){var t=this.cloneNode(!0),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function c8(t){return this.select(t?U5e:V5e)}var UV=N(()=>{"use strict";o(V5e,"selection_cloneShallow");o(U5e,"selection_cloneDeep");o(c8,"default")});function u8(t){return arguments.length?this.property("__data__",t):this.node().__data__}var HV=N(()=>{"use strict";o(u8,"default")});function H5e(t){return function(e){t.call(this,e,this.__data__)}}function W5e(t){return t.trim().split(/^|\s+/).map(function(e){var r="",n=e.indexOf(".");return n>=0&&(r=e.slice(n+1),e=e.slice(0,n)),{type:e,name:r}})}function q5e(t){return function(){var e=this.__on;if(e){for(var r=0,n=-1,i=e.length,a;r<i;++r)a=e[r],(!t.type||a.type===t.type)&&a.name===t.name?this.removeEventListener(a.type,a.listener,a.options):e[++n]=a;++n?e.length=n:delete this.__on}}}function Y5e(t,e,r){return function(){var n=this.__on,i,a=H5e(e);if(n){for(var s=0,l=n.length;s<l;++s)if((i=n[s]).type===t.type&&i.name===t.name){this.removeEventListener(i.type,i.listener,i.options),this.addEventListener(i.type,i.listener=a,i.options=r),i.value=e;return}}this.addEventListener(t.type,a,r),i={type:t.type,name:t.name,value:e,listener:a,options:r},n?n.push(i):this.__on=[i]}}function h8(t,e,r){var n=W5e(t+""),i,a=n.length,s;if(arguments.length<2){var l=this.node().__on;if(l){for(var u=0,h=l.length,f;u<h;++u)for(i=0,f=l[u];i<a;++i)if((s=n[i]).type===f.type&&s.name===f.name)return f.value}return}for(l=e?Y5e:q5e,i=0;i<a;++i)this.each(l(n[i],e,r));return this}var WV=N(()=>{"use strict";o(H5e,"contextListener");o(W5e,"parseTypenames");o(q5e,"onRemove");o(Y5e,"onAdd");o(h8,"default")});function qV(t,e,r){var n=nv(t),i=n.CustomEvent;typeof i=="function"?i=new i(e,r):(i=n.document.createEvent("Event"),r?(i.initEvent(e,r.bubbles,r.cancelable),i.detail=r.detail):i.initEvent(e,!1,!1)),t.dispatchEvent(i)}function X5e(t,e){return function(){return qV(this,t,e)}}function j5e(t,e){return function(){return qV(this,t,e.apply(this,arguments))}}function f8(t,e){return this.each((typeof e=="function"?j5e:X5e)(t,e))}var YV=N(()=>{"use strict";KA();o(qV,"dispatchEvent");o(X5e,"dispatchConstant");o(j5e,"dispatchFunction");o(f8,"default")});function*d8(){for(var t=this._groups,e=0,r=t.length;e<r;++e)for(var n=t[e],i=0,a=n.length,s;i<a;++i)(s=n[i])&&(yield s)}var XV=N(()=>{"use strict";o(d8,"default")});function oi(t,e){this._groups=t,this._parents=e}function jV(){return new oi([[document.documentElement]],p8)}function K5e(){return this}var p8,hu,hl=N(()=>{"use strict";uV();fV();dV();pV();mV();yV();OA();vV();xV();bV();wV();TV();kV();EV();SV();CV();AV();_V();DV();ZA();LV();OV();PV();BV();FV();$V();zV();GV();VV();UV();HV();WV();YV();XV();p8=[null];o(oi,"Selection");o(jV,"selection");o(K5e,"selection_selection");oi.prototype=jV.prototype={constructor:oi,select:CA,selectAll:DA,selectChild:LA,selectChildren:RA,filter:NA,data:BA,enter:IA,exit:FA,join:$A,merge:zA,selection:K5e,order:GA,sort:VA,call:UA,nodes:HA,node:WA,size:qA,empty:YA,each:XA,attr:jA,style:QA,property:JA,classed:t8,text:r8,html:n8,raise:i8,lower:a8,append:s8,insert:o8,remove:l8,clone:c8,datum:u8,on:h8,dispatch:f8,[Symbol.iterator]:d8};hu=jV});function Ge(t){return typeof t=="string"?new oi([[document.querySelector(t)]],[document.documentElement]):new oi([[t]],p8)}var KV=N(()=>{"use strict";hl();o(Ge,"default")});var fl=N(()=>{"use strict";ev();$3();KV();hl();z3();_A();ZA()});var QV=N(()=>{"use strict"});function wh(t,e,r){t.prototype=e.prototype=r,r.constructor=t}function b0(t,e){var r=Object.create(t.prototype);for(var n in e)r[n]=e[n];return r}var m8=N(()=>{"use strict";o(wh,"default");o(b0,"extend")});function Th(){}function JV(){return this.rgb().formatHex()}function iwe(){return this.rgb().formatHex8()}function awe(){return sU(this).formatHsl()}function eU(){return this.rgb().formatRgb()}function pl(t){var e,r;return t=(t+"").trim().toLowerCase(),(e=Q5e.exec(t))?(r=e[1].length,e=parseInt(e[1],16),r===6?tU(e):r===3?new ua(e>>8&15|e>>4&240,e>>4&15|e&240,(e&15)<<4|e&15,1):r===8?V3(e>>24&255,e>>16&255,e>>8&255,(e&255)/255):r===4?V3(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|e&240,((e&15)<<4|e&15)/255):null):(e=Z5e.exec(t))?new ua(e[1],e[2],e[3],1):(e=J5e.exec(t))?new ua(e[1]*255/100,e[2]*255/100,e[3]*255/100,1):(e=ewe.exec(t))?V3(e[1],e[2],e[3],e[4]):(e=twe.exec(t))?V3(e[1]*255/100,e[2]*255/100,e[3]*255/100,e[4]):(e=rwe.exec(t))?iU(e[1],e[2]/100,e[3]/100,1):(e=nwe.exec(t))?iU(e[1],e[2]/100,e[3]/100,e[4]):ZV.hasOwnProperty(t)?tU(ZV[t]):t==="transparent"?new ua(NaN,NaN,NaN,0):null}function tU(t){return new ua(t>>16&255,t>>8&255,t&255,1)}function V3(t,e,r,n){return n<=0&&(t=e=r=NaN),new ua(t,e,r,n)}function y8(t){return t instanceof Th||(t=pl(t)),t?(t=t.rgb(),new ua(t.r,t.g,t.b,t.opacity)):new ua}function T0(t,e,r,n){return arguments.length===1?y8(t):new ua(t,e,r,n??1)}function ua(t,e,r,n){this.r=+t,this.g=+e,this.b=+r,this.opacity=+n}function rU(){return`#${ld(this.r)}${ld(this.g)}${ld(this.b)}`}function swe(){return`#${ld(this.r)}${ld(this.g)}${ld(this.b)}${ld((isNaN(this.opacity)?1:this.opacity)*255)}`}function nU(){let t=W3(this.opacity);return`${t===1?"rgb(":"rgba("}${cd(this.r)}, ${cd(this.g)}, ${cd(this.b)}${t===1?")":`, ${t})`}`}function W3(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function cd(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function ld(t){return t=cd(t),(t<16?"0":"")+t.toString(16)}function iU(t,e,r,n){return n<=0?t=e=r=NaN:r<=0||r>=1?t=e=NaN:e<=0&&(t=NaN),new dl(t,e,r,n)}function sU(t){if(t instanceof dl)return new dl(t.h,t.s,t.l,t.opacity);if(t instanceof Th||(t=pl(t)),!t)return new dl;if(t instanceof dl)return t;t=t.rgb();var e=t.r/255,r=t.g/255,n=t.b/255,i=Math.min(e,r,n),a=Math.max(e,r,n),s=NaN,l=a-i,u=(a+i)/2;return l?(e===a?s=(r-n)/l+(r<n)*6:r===a?s=(n-e)/l+2:s=(e-r)/l+4,l/=u<.5?a+i:2-a-i,s*=60):l=u>0&&u<1?0:s,new dl(s,l,u,t.opacity)}function oU(t,e,r,n){return arguments.length===1?sU(t):new dl(t,e,r,n??1)}function dl(t,e,r,n){this.h=+t,this.s=+e,this.l=+r,this.opacity=+n}function aU(t){return t=(t||0)%360,t<0?t+360:t}function U3(t){return Math.max(0,Math.min(1,t||0))}function g8(t,e,r){return(t<60?e+(r-e)*t/60:t<180?r:t<240?e+(r-e)*(240-t)/60:e)*255}var iv,H3,w0,av,nc,Q5e,Z5e,J5e,ewe,twe,rwe,nwe,ZV,v8=N(()=>{"use strict";m8();o(Th,"Color");iv=.7,H3=1/iv,w0="\\s*([+-]?\\d+)\\s*",av="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",nc="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",Q5e=/^#([0-9a-f]{3,8})$/,Z5e=new RegExp(`^rgb\\(${w0},${w0},${w0}\\)$`),J5e=new RegExp(`^rgb\\(${nc},${nc},${nc}\\)$`),ewe=new RegExp(`^rgba\\(${w0},${w0},${w0},${av}\\)$`),twe=new RegExp(`^rgba\\(${nc},${nc},${nc},${av}\\)$`),rwe=new RegExp(`^hsl\\(${av},${nc},${nc}\\)$`),nwe=new RegExp(`^hsla\\(${av},${nc},${nc},${av}\\)$`),ZV={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};wh(Th,pl,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:JV,formatHex:JV,formatHex8:iwe,formatHsl:awe,formatRgb:eU,toString:eU});o(JV,"color_formatHex");o(iwe,"color_formatHex8");o(awe,"color_formatHsl");o(eU,"color_formatRgb");o(pl,"color");o(tU,"rgbn");o(V3,"rgba");o(y8,"rgbConvert");o(T0,"rgb");o(ua,"Rgb");wh(ua,T0,b0(Th,{brighter(t){return t=t==null?H3:Math.pow(H3,t),new ua(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=t==null?iv:Math.pow(iv,t),new ua(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new ua(cd(this.r),cd(this.g),cd(this.b),W3(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:rU,formatHex:rU,formatHex8:swe,formatRgb:nU,toString:nU}));o(rU,"rgb_formatHex");o(swe,"rgb_formatHex8");o(nU,"rgb_formatRgb");o(W3,"clampa");o(cd,"clampi");o(ld,"hex");o(iU,"hsla");o(sU,"hslConvert");o(oU,"hsl");o(dl,"Hsl");wh(dl,oU,b0(Th,{brighter(t){return t=t==null?H3:Math.pow(H3,t),new dl(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?iv:Math.pow(iv,t),new dl(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+(this.h<0)*360,e=isNaN(t)||isNaN(this.s)?0:this.s,r=this.l,n=r+(r<.5?r:1-r)*e,i=2*r-n;return new ua(g8(t>=240?t-240:t+120,i,n),g8(t,i,n),g8(t<120?t+240:t-120,i,n),this.opacity)},clamp(){return new dl(aU(this.h),U3(this.s),U3(this.l),W3(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){let t=W3(this.opacity);return`${t===1?"hsl(":"hsla("}${aU(this.h)}, ${U3(this.s)*100}%, ${U3(this.l)*100}%${t===1?")":`, ${t})`}`}}));o(aU,"clamph");o(U3,"clampt");o(g8,"hsl2rgb")});var lU,cU,uU=N(()=>{"use strict";lU=Math.PI/180,cU=180/Math.PI});function gU(t){if(t instanceof ic)return new ic(t.l,t.a,t.b,t.opacity);if(t instanceof fu)return yU(t);t instanceof ua||(t=y8(t));var e=T8(t.r),r=T8(t.g),n=T8(t.b),i=x8((.2225045*e+.7168786*r+.0606169*n)/fU),a,s;return e===r&&r===n?a=s=i:(a=x8((.4360747*e+.3850649*r+.1430804*n)/hU),s=x8((.0139322*e+.0971045*r+.7141733*n)/dU)),new ic(116*i-16,500*(a-i),200*(i-s),t.opacity)}function k8(t,e,r,n){return arguments.length===1?gU(t):new ic(t,e,r,n??1)}function ic(t,e,r,n){this.l=+t,this.a=+e,this.b=+r,this.opacity=+n}function x8(t){return t>owe?Math.pow(t,1/3):t/mU+pU}function b8(t){return t>k0?t*t*t:mU*(t-pU)}function w8(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function T8(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function lwe(t){if(t instanceof fu)return new fu(t.h,t.c,t.l,t.opacity);if(t instanceof ic||(t=gU(t)),t.a===0&&t.b===0)return new fu(NaN,0<t.l&&t.l<100?0:NaN,t.l,t.opacity);var e=Math.atan2(t.b,t.a)*cU;return new fu(e<0?e+360:e,Math.sqrt(t.a*t.a+t.b*t.b),t.l,t.opacity)}function sv(t,e,r,n){return arguments.length===1?lwe(t):new fu(t,e,r,n??1)}function fu(t,e,r,n){this.h=+t,this.c=+e,this.l=+r,this.opacity=+n}function yU(t){if(isNaN(t.h))return new ic(t.l,0,0,t.opacity);var e=t.h*lU;return new ic(t.l,Math.cos(e)*t.c,Math.sin(e)*t.c,t.opacity)}var q3,hU,fU,dU,pU,k0,mU,owe,vU=N(()=>{"use strict";m8();v8();uU();q3=18,hU=.96422,fU=1,dU=.82521,pU=4/29,k0=6/29,mU=3*k0*k0,owe=k0*k0*k0;o(gU,"labConvert");o(k8,"lab");o(ic,"Lab");wh(ic,k8,b0(Th,{brighter(t){return new ic(this.l+q3*(t??1),this.a,this.b,this.opacity)},darker(t){return new ic(this.l-q3*(t??1),this.a,this.b,this.opacity)},rgb(){var t=(this.l+16)/116,e=isNaN(this.a)?t:t+this.a/500,r=isNaN(this.b)?t:t-this.b/200;return e=hU*b8(e),t=fU*b8(t),r=dU*b8(r),new ua(w8(3.1338561*e-1.6168667*t-.4906146*r),w8(-.9787684*e+1.9161415*t+.033454*r),w8(.0719453*e-.2289914*t+1.4052427*r),this.opacity)}}));o(x8,"xyz2lab");o(b8,"lab2xyz");o(w8,"lrgb2rgb");o(T8,"rgb2lrgb");o(lwe,"hclConvert");o(sv,"hcl");o(fu,"Hcl");o(yU,"hcl2lab");wh(fu,sv,b0(Th,{brighter(t){return new fu(this.h,this.c,this.l+q3*(t??1),this.opacity)},darker(t){return new fu(this.h,this.c,this.l-q3*(t??1),this.opacity)},rgb(){return yU(this).rgb()}}))});var E0=N(()=>{"use strict";v8();vU()});function E8(t,e,r,n,i){var a=t*t,s=a*t;return((1-3*t+3*a-s)*e+(4-6*a+3*s)*r+(1+3*t+3*a-3*s)*n+s*i)/6}function S8(t){var e=t.length-1;return function(r){var n=r<=0?r=0:r>=1?(r=1,e-1):Math.floor(r*e),i=t[n],a=t[n+1],s=n>0?t[n-1]:2*i-a,l=n<e-1?t[n+2]:2*a-i;return E8((r-n/e)*e,s,i,a,l)}}var C8=N(()=>{"use strict";o(E8,"basis");o(S8,"default")});function A8(t){var e=t.length;return function(r){var n=Math.floor(((r%=1)<0?++r:r)*e),i=t[(n+e-1)%e],a=t[n%e],s=t[(n+1)%e],l=t[(n+2)%e];return E8((r-n/e)*e,i,a,s,l)}}var xU=N(()=>{"use strict";C8();o(A8,"default")});var S0,_8=N(()=>{"use strict";S0=o(t=>()=>t,"default")});function bU(t,e){return function(r){return t+r*e}}function cwe(t,e,r){return t=Math.pow(t,r),e=Math.pow(e,r)-t,r=1/r,function(n){return Math.pow(t+n*e,r)}}function wU(t,e){var r=e-t;return r?bU(t,r>180||r<-180?r-360*Math.round(r/360):r):S0(isNaN(t)?e:t)}function TU(t){return(t=+t)==1?du:function(e,r){return r-e?cwe(e,r,t):S0(isNaN(e)?r:e)}}function du(t,e){var r=e-t;return r?bU(t,r):S0(isNaN(t)?e:t)}var D8=N(()=>{"use strict";_8();o(bU,"linear");o(cwe,"exponential");o(wU,"hue");o(TU,"gamma");o(du,"nogamma")});function kU(t){return function(e){var r=e.length,n=new Array(r),i=new Array(r),a=new Array(r),s,l;for(s=0;s<r;++s)l=T0(e[s]),n[s]=l.r||0,i[s]=l.g||0,a[s]=l.b||0;return n=t(n),i=t(i),a=t(a),l.opacity=1,function(u){return l.r=n(u),l.g=i(u),l.b=a(u),l+""}}}var ud,uwe,hwe,L8=N(()=>{"use strict";E0();C8();xU();D8();ud=o(function t(e){var r=TU(e);function n(i,a){var s=r((i=T0(i)).r,(a=T0(a)).r),l=r(i.g,a.g),u=r(i.b,a.b),h=du(i.opacity,a.opacity);return function(f){return i.r=s(f),i.g=l(f),i.b=u(f),i.opacity=h(f),i+""}}return o(n,"rgb"),n.gamma=t,n},"rgbGamma")(1);o(kU,"rgbSpline");uwe=kU(S8),hwe=kU(A8)});function R8(t,e){e||(e=[]);var r=t?Math.min(e.length,t.length):0,n=e.slice(),i;return function(a){for(i=0;i<r;++i)n[i]=t[i]*(1-a)+e[i]*a;return n}}function EU(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}var SU=N(()=>{"use strict";o(R8,"default");o(EU,"isNumberArray")});function CU(t,e){var r=e?e.length:0,n=t?Math.min(r,t.length):0,i=new Array(n),a=new Array(r),s;for(s=0;s<n;++s)i[s]=kh(t[s],e[s]);for(;s<r;++s)a[s]=e[s];return function(l){for(s=0;s<n;++s)a[s]=i[s](l);return a}}var AU=N(()=>{"use strict";Y3();o(CU,"genericArray")});function N8(t,e){var r=new Date;return t=+t,e=+e,function(n){return r.setTime(t*(1-n)+e*n),r}}var _U=N(()=>{"use strict";o(N8,"default")});function Ki(t,e){return t=+t,e=+e,function(r){return t*(1-r)+e*r}}var ov=N(()=>{"use strict";o(Ki,"default")});function M8(t,e){var r={},n={},i;(t===null||typeof t!="object")&&(t={}),(e===null||typeof e!="object")&&(e={});for(i in e)i in t?r[i]=kh(t[i],e[i]):n[i]=e[i];return function(a){for(i in r)n[i]=r[i](a);return n}}var DU=N(()=>{"use strict";Y3();o(M8,"default")});function fwe(t){return function(){return t}}function dwe(t){return function(e){return t(e)+""}}function C0(t,e){var r=O8.lastIndex=I8.lastIndex=0,n,i,a,s=-1,l=[],u=[];for(t=t+"",e=e+"";(n=O8.exec(t))&&(i=I8.exec(e));)(a=i.index)>r&&(a=e.slice(r,a),l[s]?l[s]+=a:l[++s]=a),(n=n[0])===(i=i[0])?l[s]?l[s]+=i:l[++s]=i:(l[++s]=null,u.push({i:s,x:Ki(n,i)})),r=I8.lastIndex;return r<e.length&&(a=e.slice(r),l[s]?l[s]+=a:l[++s]=a),l.length<2?u[0]?dwe(u[0].x):fwe(e):(e=u.length,function(h){for(var f=0,d;f<e;++f)l[(d=u[f]).i]=d.x(h);return l.join("")})}var O8,I8,P8=N(()=>{"use strict";ov();O8=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,I8=new RegExp(O8.source,"g");o(fwe,"zero");o(dwe,"one");o(C0,"default")});function kh(t,e){var r=typeof e,n;return e==null||r==="boolean"?S0(e):(r==="number"?Ki:r==="string"?(n=pl(e))?(e=n,ud):C0:e instanceof pl?ud:e instanceof Date?N8:EU(e)?R8:Array.isArray(e)?CU:typeof e.valueOf!="function"&&typeof e.toString!="function"||isNaN(e)?M8:Ki)(t,e)}var Y3=N(()=>{"use strict";E0();L8();AU();_U();ov();DU();P8();_8();SU();o(kh,"default")});function X3(t,e){return t=+t,e=+e,function(r){return Math.round(t*(1-r)+e*r)}}var LU=N(()=>{"use strict";o(X3,"default")});function K3(t,e,r,n,i,a){var s,l,u;return(s=Math.sqrt(t*t+e*e))&&(t/=s,e/=s),(u=t*r+e*n)&&(r-=t*u,n-=e*u),(l=Math.sqrt(r*r+n*n))&&(r/=l,n/=l,u/=l),t*n<e*r&&(t=-t,e=-e,u=-u,s=-s),{translateX:i,translateY:a,rotate:Math.atan2(e,t)*RU,skewX:Math.atan(u)*RU,scaleX:s,scaleY:l}}var RU,j3,NU=N(()=>{"use strict";RU=180/Math.PI,j3={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};o(K3,"default")});function MU(t){let e=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(t+"");return e.isIdentity?j3:K3(e.a,e.b,e.c,e.d,e.e,e.f)}function IU(t){return t==null?j3:(Q3||(Q3=document.createElementNS("http://www.w3.org/2000/svg","g")),Q3.setAttribute("transform",t),(t=Q3.transform.baseVal.consolidate())?(t=t.matrix,K3(t.a,t.b,t.c,t.d,t.e,t.f)):j3)}var Q3,OU=N(()=>{"use strict";NU();o(MU,"parseCss");o(IU,"parseSvg")});function PU(t,e,r,n){function i(h){return h.length?h.pop()+" ":""}o(i,"pop");function a(h,f,d,p,m,g){if(h!==d||f!==p){var y=m.push("translate(",null,e,null,r);g.push({i:y-4,x:Ki(h,d)},{i:y-2,x:Ki(f,p)})}else(d||p)&&m.push("translate("+d+e+p+r)}o(a,"translate");function s(h,f,d,p){h!==f?(h-f>180?f+=360:f-h>180&&(h+=360),p.push({i:d.push(i(d)+"rotate(",null,n)-2,x:Ki(h,f)})):f&&d.push(i(d)+"rotate("+f+n)}o(s,"rotate");function l(h,f,d,p){h!==f?p.push({i:d.push(i(d)+"skewX(",null,n)-2,x:Ki(h,f)}):f&&d.push(i(d)+"skewX("+f+n)}o(l,"skewX");function u(h,f,d,p,m,g){if(h!==d||f!==p){var y=m.push(i(m)+"scale(",null,",",null,")");g.push({i:y-4,x:Ki(h,d)},{i:y-2,x:Ki(f,p)})}else(d!==1||p!==1)&&m.push(i(m)+"scale("+d+","+p+")")}return o(u,"scale"),function(h,f){var d=[],p=[];return h=t(h),f=t(f),a(h.translateX,h.translateY,f.translateX,f.translateY,d,p),s(h.rotate,f.rotate,d,p),l(h.skewX,f.skewX,d,p),u(h.scaleX,h.scaleY,f.scaleX,f.scaleY,d,p),h=f=null,function(m){for(var g=-1,y=p.length,v;++g<y;)d[(v=p[g]).i]=v.x(m);return d.join("")}}}var B8,F8,BU=N(()=>{"use strict";ov();OU();o(PU,"interpolateTransform");B8=PU(MU,"px, ","px)","deg)"),F8=PU(IU,", ",")",")")});function FU(t){return function(e,r){var n=t((e=sv(e)).h,(r=sv(r)).h),i=du(e.c,r.c),a=du(e.l,r.l),s=du(e.opacity,r.opacity);return function(l){return e.h=n(l),e.c=i(l),e.l=a(l),e.opacity=s(l),e+""}}}var $8,pwe,$U=N(()=>{"use strict";E0();D8();o(FU,"hcl");$8=FU(wU),pwe=FU(du)});var A0=N(()=>{"use strict";Y3();ov();LU();P8();BU();L8();$U()});function dv(){return hd||(VU(mwe),hd=hv.now()+e5)}function mwe(){hd=0}function fv(){this._call=this._time=this._next=null}function t5(t,e,r){var n=new fv;return n.restart(t,e,r),n}function UU(){dv(),++_0;for(var t=Z3,e;t;)(e=hd-t._time)>=0&&t._call.call(void 0,e),t=t._next;--_0}function zU(){hd=(J3=hv.now())+e5,_0=cv=0;try{UU()}finally{_0=0,ywe(),hd=0}}function gwe(){var t=hv.now(),e=t-J3;e>GU&&(e5-=e,J3=t)}function ywe(){for(var t,e=Z3,r,n=1/0;e;)e._call?(n>e._time&&(n=e._time),t=e,e=e._next):(r=e._next,e._next=null,e=t?t._next=r:Z3=r);uv=t,z8(n)}function z8(t){if(!_0){cv&&(cv=clearTimeout(cv));var e=t-hd;e>24?(t<1/0&&(cv=setTimeout(zU,t-hv.now()-e5)),lv&&(lv=clearInterval(lv))):(lv||(J3=hv.now(),lv=setInterval(gwe,GU)),_0=1,VU(zU))}}var _0,cv,lv,GU,Z3,uv,J3,hd,e5,hv,VU,G8=N(()=>{"use strict";_0=0,cv=0,lv=0,GU=1e3,J3=0,hd=0,e5=0,hv=typeof performance=="object"&&performance.now?performance:Date,VU=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};o(dv,"now");o(mwe,"clearNow");o(fv,"Timer");fv.prototype=t5.prototype={constructor:fv,restart:o(function(t,e,r){if(typeof t!="function")throw new TypeError("callback is not a function");r=(r==null?dv():+r)+(e==null?0:+e),!this._next&&uv!==this&&(uv?uv._next=this:Z3=this,uv=this),this._call=t,this._time=r,z8()},"restart"),stop:o(function(){this._call&&(this._call=null,this._time=1/0,z8())},"stop")};o(t5,"timer");o(UU,"timerFlush");o(zU,"wake");o(gwe,"poke");o(ywe,"nap");o(z8,"sleep")});function pv(t,e,r){var n=new fv;return e=e==null?0:+e,n.restart(i=>{n.stop(),t(i+e)},e,r),n}var HU=N(()=>{"use strict";G8();o(pv,"default")});var r5=N(()=>{"use strict";G8();HU()});function pu(t,e,r,n,i,a){var s=t.__transition;if(!s)t.__transition={};else if(r in s)return;bwe(t,r,{name:e,index:n,group:i,on:vwe,tween:xwe,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:YU})}function gv(t,e){var r=Bi(t,e);if(r.state>YU)throw new Error("too late; already scheduled");return r}function ha(t,e){var r=Bi(t,e);if(r.state>n5)throw new Error("too late; already running");return r}function Bi(t,e){var r=t.__transition;if(!r||!(r=r[e]))throw new Error("transition not found");return r}function bwe(t,e,r){var n=t.__transition,i;n[e]=r,r.timer=t5(a,0,r.time);function a(h){r.state=WU,r.timer.restart(s,r.delay,r.time),r.delay<=h&&s(h-r.delay)}o(a,"schedule");function s(h){var f,d,p,m;if(r.state!==WU)return u();for(f in n)if(m=n[f],m.name===r.name){if(m.state===n5)return pv(s);m.state===qU?(m.state=mv,m.timer.stop(),m.on.call("interrupt",t,t.__data__,m.index,m.group),delete n[f]):+f<e&&(m.state=mv,m.timer.stop(),m.on.call("cancel",t,t.__data__,m.index,m.group),delete n[f])}if(pv(function(){r.state===n5&&(r.state=qU,r.timer.restart(l,r.delay,r.time),l(h))}),r.state=i5,r.on.call("start",t,t.__data__,r.index,r.group),r.state===i5){for(r.state=n5,i=new Array(p=r.tween.length),f=0,d=-1;f<p;++f)(m=r.tween[f].value.call(t,t.__data__,r.index,r.group))&&(i[++d]=m);i.length=d+1}}o(s,"start");function l(h){for(var f=h<r.duration?r.ease.call(null,h/r.duration):(r.timer.restart(u),r.state=a5,1),d=-1,p=i.length;++d<p;)i[d].call(t,f);r.state===a5&&(r.on.call("end",t,t.__data__,r.index,r.group),u())}o(l,"tick");function u(){r.state=mv,r.timer.stop(),delete n[e];for(var h in n)return;delete t.__transition}o(u,"stop")}var vwe,xwe,YU,WU,i5,n5,qU,a5,mv,Es=N(()=>{"use strict";TA();r5();vwe=wA("start","end","cancel","interrupt"),xwe=[],YU=0,WU=1,i5=2,n5=3,qU=4,a5=5,mv=6;o(pu,"default");o(gv,"init");o(ha,"set");o(Bi,"get");o(bwe,"create")});function yv(t,e){var r=t.__transition,n,i,a=!0,s;if(r){e=e==null?null:e+"";for(s in r){if((n=r[s]).name!==e){a=!1;continue}i=n.state>i5&&n.state<a5,n.state=mv,n.timer.stop(),n.on.call(i?"interrupt":"cancel",t,t.__data__,n.index,n.group),delete r[s]}a&&delete t.__transition}}var XU=N(()=>{"use strict";Es();o(yv,"default")});function V8(t){return this.each(function(){yv(this,t)})}var jU=N(()=>{"use strict";XU();o(V8,"default")});function wwe(t,e){var r,n;return function(){var i=ha(this,t),a=i.tween;if(a!==r){n=r=a;for(var s=0,l=n.length;s<l;++s)if(n[s].name===e){n=n.slice(),n.splice(s,1);break}}i.tween=n}}function Twe(t,e,r){var n,i;if(typeof r!="function")throw new Error;return function(){var a=ha(this,t),s=a.tween;if(s!==n){i=(n=s).slice();for(var l={name:e,value:r},u=0,h=i.length;u<h;++u)if(i[u].name===e){i[u]=l;break}u===h&&i.push(l)}a.tween=i}}function U8(t,e){var r=this._id;if(t+="",arguments.length<2){for(var n=Bi(this.node(),r).tween,i=0,a=n.length,s;i<a;++i)if((s=n[i]).name===t)return s.value;return null}return this.each((e==null?wwe:Twe)(r,t,e))}function D0(t,e,r){var n=t._id;return t.each(function(){var i=ha(this,n);(i.value||(i.value={}))[e]=r.apply(this,arguments)}),function(i){return Bi(i,n).value[e]}}var vv=N(()=>{"use strict";Es();o(wwe,"tweenRemove");o(Twe,"tweenFunction");o(U8,"default");o(D0,"tweenValue")});function xv(t,e){var r;return(typeof e=="number"?Ki:e instanceof pl?ud:(r=pl(e))?(e=r,ud):C0)(t,e)}var H8=N(()=>{"use strict";E0();A0();o(xv,"default")});function kwe(t){return function(){this.removeAttribute(t)}}function Ewe(t){return function(){this.removeAttributeNS(t.space,t.local)}}function Swe(t,e,r){var n,i=r+"",a;return function(){var s=this.getAttribute(t);return s===i?null:s===n?a:a=e(n=s,r)}}function Cwe(t,e,r){var n,i=r+"",a;return function(){var s=this.getAttributeNS(t.space,t.local);return s===i?null:s===n?a:a=e(n=s,r)}}function Awe(t,e,r){var n,i,a;return function(){var s,l=r(this),u;return l==null?void this.removeAttribute(t):(s=this.getAttribute(t),u=l+"",s===u?null:s===n&&u===i?a:(i=u,a=e(n=s,l)))}}function _we(t,e,r){var n,i,a;return function(){var s,l=r(this),u;return l==null?void this.removeAttributeNS(t.space,t.local):(s=this.getAttributeNS(t.space,t.local),u=l+"",s===u?null:s===n&&u===i?a:(i=u,a=e(n=s,l)))}}function W8(t,e){var r=rc(t),n=r==="transform"?F8:xv;return this.attrTween(t,typeof e=="function"?(r.local?_we:Awe)(r,n,D0(this,"attr."+t,e)):e==null?(r.local?Ewe:kwe)(r):(r.local?Cwe:Swe)(r,n,e))}var KU=N(()=>{"use strict";A0();fl();vv();H8();o(kwe,"attrRemove");o(Ewe,"attrRemoveNS");o(Swe,"attrConstant");o(Cwe,"attrConstantNS");o(Awe,"attrFunction");o(_we,"attrFunctionNS");o(W8,"default")});function Dwe(t,e){return function(r){this.setAttribute(t,e.call(this,r))}}function Lwe(t,e){return function(r){this.setAttributeNS(t.space,t.local,e.call(this,r))}}function Rwe(t,e){var r,n;function i(){var a=e.apply(this,arguments);return a!==n&&(r=(n=a)&&Lwe(t,a)),r}return o(i,"tween"),i._value=e,i}function Nwe(t,e){var r,n;function i(){var a=e.apply(this,arguments);return a!==n&&(r=(n=a)&&Dwe(t,a)),r}return o(i,"tween"),i._value=e,i}function q8(t,e){var r="attr."+t;if(arguments.length<2)return(r=this.tween(r))&&r._value;if(e==null)return this.tween(r,null);if(typeof e!="function")throw new Error;var n=rc(t);return this.tween(r,(n.local?Rwe:Nwe)(n,e))}var QU=N(()=>{"use strict";fl();o(Dwe,"attrInterpolate");o(Lwe,"attrInterpolateNS");o(Rwe,"attrTweenNS");o(Nwe,"attrTween");o(q8,"default")});function Mwe(t,e){return function(){gv(this,t).delay=+e.apply(this,arguments)}}function Iwe(t,e){return e=+e,function(){gv(this,t).delay=e}}function Y8(t){var e=this._id;return arguments.length?this.each((typeof t=="function"?Mwe:Iwe)(e,t)):Bi(this.node(),e).delay}var ZU=N(()=>{"use strict";Es();o(Mwe,"delayFunction");o(Iwe,"delayConstant");o(Y8,"default")});function Owe(t,e){return function(){ha(this,t).duration=+e.apply(this,arguments)}}function Pwe(t,e){return e=+e,function(){ha(this,t).duration=e}}function X8(t){var e=this._id;return arguments.length?this.each((typeof t=="function"?Owe:Pwe)(e,t)):Bi(this.node(),e).duration}var JU=N(()=>{"use strict";Es();o(Owe,"durationFunction");o(Pwe,"durationConstant");o(X8,"default")});function Bwe(t,e){if(typeof e!="function")throw new Error;return function(){ha(this,t).ease=e}}function j8(t){var e=this._id;return arguments.length?this.each(Bwe(e,t)):Bi(this.node(),e).ease}var eH=N(()=>{"use strict";Es();o(Bwe,"easeConstant");o(j8,"default")});function Fwe(t,e){return function(){var r=e.apply(this,arguments);if(typeof r!="function")throw new Error;ha(this,t).ease=r}}function K8(t){if(typeof t!="function")throw new Error;return this.each(Fwe(this._id,t))}var tH=N(()=>{"use strict";Es();o(Fwe,"easeVarying");o(K8,"default")});function Q8(t){typeof t!="function"&&(t=x0(t));for(var e=this._groups,r=e.length,n=new Array(r),i=0;i<r;++i)for(var a=e[i],s=a.length,l=n[i]=[],u,h=0;h<s;++h)(u=a[h])&&t.call(u,u.__data__,h,a)&&l.push(u);return new es(n,this._parents,this._name,this._id)}var rH=N(()=>{"use strict";fl();fd();o(Q8,"default")});function Z8(t){if(t._id!==this._id)throw new Error;for(var e=this._groups,r=t._groups,n=e.length,i=r.length,a=Math.min(n,i),s=new Array(n),l=0;l<a;++l)for(var u=e[l],h=r[l],f=u.length,d=s[l]=new Array(f),p,m=0;m<f;++m)(p=u[m]||h[m])&&(d[m]=p);for(;l<n;++l)s[l]=e[l];return new es(s,this._parents,this._name,this._id)}var nH=N(()=>{"use strict";fd();o(Z8,"default")});function $we(t){return(t+"").trim().split(/^|\s+/).every(function(e){var r=e.indexOf(".");return r>=0&&(e=e.slice(0,r)),!e||e==="start"})}function zwe(t,e,r){var n,i,a=$we(e)?gv:ha;return function(){var s=a(this,t),l=s.on;l!==n&&(i=(n=l).copy()).on(e,r),s.on=i}}function J8(t,e){var r=this._id;return arguments.length<2?Bi(this.node(),r).on.on(t):this.each(zwe(r,t,e))}var iH=N(()=>{"use strict";Es();o($we,"start");o(zwe,"onFunction");o(J8,"default")});function Gwe(t){return function(){var e=this.parentNode;for(var r in this.__transition)if(+r!==t)return;e&&e.removeChild(this)}}function e_(){return this.on("end.remove",Gwe(this._id))}var aH=N(()=>{"use strict";o(Gwe,"removeFunction");o(e_,"default")});function t_(t){var e=this._name,r=this._id;typeof t!="function"&&(t=xh(t));for(var n=this._groups,i=n.length,a=new Array(i),s=0;s<i;++s)for(var l=n[s],u=l.length,h=a[s]=new Array(u),f,d,p=0;p<u;++p)(f=l[p])&&(d=t.call(f,f.__data__,p,l))&&("__data__"in f&&(d.__data__=f.__data__),h[p]=d,pu(h[p],e,r,p,h,Bi(f,r)));return new es(a,this._parents,e,r)}var sH=N(()=>{"use strict";fl();fd();Es();o(t_,"default")});function r_(t){var e=this._name,r=this._id;typeof t!="function"&&(t=v0(t));for(var n=this._groups,i=n.length,a=[],s=[],l=0;l<i;++l)for(var u=n[l],h=u.length,f,d=0;d<h;++d)if(f=u[d]){for(var p=t.call(f,f.__data__,d,u),m,g=Bi(f,r),y=0,v=p.length;y<v;++y)(m=p[y])&&pu(m,e,r,y,p,g);a.push(p),s.push(f)}return new es(a,s,e,r)}var oH=N(()=>{"use strict";fl();fd();Es();o(r_,"default")});function n_(){return new Vwe(this._groups,this._parents)}var Vwe,lH=N(()=>{"use strict";fl();Vwe=hu.prototype.constructor;o(n_,"default")});function Uwe(t,e){var r,n,i;return function(){var a=bh(this,t),s=(this.style.removeProperty(t),bh(this,t));return a===s?null:a===r&&s===n?i:i=e(r=a,n=s)}}function cH(t){return function(){this.style.removeProperty(t)}}function Hwe(t,e,r){var n,i=r+"",a;return function(){var s=bh(this,t);return s===i?null:s===n?a:a=e(n=s,r)}}function Wwe(t,e,r){var n,i,a;return function(){var s=bh(this,t),l=r(this),u=l+"";return l==null&&(u=l=(this.style.removeProperty(t),bh(this,t))),s===u?null:s===n&&u===i?a:(i=u,a=e(n=s,l))}}function qwe(t,e){var r,n,i,a="style."+e,s="end."+a,l;return function(){var u=ha(this,t),h=u.on,f=u.value[a]==null?l||(l=cH(e)):void 0;(h!==r||i!==f)&&(n=(r=h).copy()).on(s,i=f),u.on=n}}function i_(t,e,r){var n=(t+="")=="transform"?B8:xv;return e==null?this.styleTween(t,Uwe(t,n)).on("end.style."+t,cH(t)):typeof e=="function"?this.styleTween(t,Wwe(t,n,D0(this,"style."+t,e))).each(qwe(this._id,t)):this.styleTween(t,Hwe(t,n,e),r).on("end.style."+t,null)}var uH=N(()=>{"use strict";A0();fl();Es();vv();H8();o(Uwe,"styleNull");o(cH,"styleRemove");o(Hwe,"styleConstant");o(Wwe,"styleFunction");o(qwe,"styleMaybeRemove");o(i_,"default")});function Ywe(t,e,r){return function(n){this.style.setProperty(t,e.call(this,n),r)}}function Xwe(t,e,r){var n,i;function a(){var s=e.apply(this,arguments);return s!==i&&(n=(i=s)&&Ywe(t,s,r)),n}return o(a,"tween"),a._value=e,a}function a_(t,e,r){var n="style."+(t+="");if(arguments.length<2)return(n=this.tween(n))&&n._value;if(e==null)return this.tween(n,null);if(typeof e!="function")throw new Error;return this.tween(n,Xwe(t,e,r??""))}var hH=N(()=>{"use strict";o(Ywe,"styleInterpolate");o(Xwe,"styleTween");o(a_,"default")});function jwe(t){return function(){this.textContent=t}}function Kwe(t){return function(){var e=t(this);this.textContent=e??""}}function s_(t){return this.tween("text",typeof t=="function"?Kwe(D0(this,"text",t)):jwe(t==null?"":t+""))}var fH=N(()=>{"use strict";vv();o(jwe,"textConstant");o(Kwe,"textFunction");o(s_,"default")});function Qwe(t){return function(e){this.textContent=t.call(this,e)}}function Zwe(t){var e,r;function n(){var i=t.apply(this,arguments);return i!==r&&(e=(r=i)&&Qwe(i)),e}return o(n,"tween"),n._value=t,n}function o_(t){var e="text";if(arguments.length<1)return(e=this.tween(e))&&e._value;if(t==null)return this.tween(e,null);if(typeof t!="function")throw new Error;return this.tween(e,Zwe(t))}var dH=N(()=>{"use strict";o(Qwe,"textInterpolate");o(Zwe,"textTween");o(o_,"default")});function l_(){for(var t=this._name,e=this._id,r=s5(),n=this._groups,i=n.length,a=0;a<i;++a)for(var s=n[a],l=s.length,u,h=0;h<l;++h)if(u=s[h]){var f=Bi(u,e);pu(u,t,r,h,s,{time:f.time+f.delay+f.duration,delay:0,duration:f.duration,ease:f.ease})}return new es(n,this._parents,t,r)}var pH=N(()=>{"use strict";fd();Es();o(l_,"default")});function c_(){var t,e,r=this,n=r._id,i=r.size();return new Promise(function(a,s){var l={value:s},u={value:o(function(){--i===0&&a()},"value")};r.each(function(){var h=ha(this,n),f=h.on;f!==t&&(e=(t=f).copy(),e._.cancel.push(l),e._.interrupt.push(l),e._.end.push(u)),h.on=e}),i===0&&a()})}var mH=N(()=>{"use strict";Es();o(c_,"default")});function es(t,e,r,n){this._groups=t,this._parents=e,this._name=r,this._id=n}function gH(t){return hu().transition(t)}function s5(){return++Jwe}var Jwe,mu,fd=N(()=>{"use strict";fl();KU();QU();ZU();JU();eH();tH();rH();nH();iH();aH();sH();oH();lH();uH();hH();fH();dH();pH();vv();mH();Jwe=0;o(es,"Transition");o(gH,"transition");o(s5,"newId");mu=hu.prototype;es.prototype=gH.prototype={constructor:es,select:t_,selectAll:r_,selectChild:mu.selectChild,selectChildren:mu.selectChildren,filter:Q8,merge:Z8,selection:n_,transition:l_,call:mu.call,nodes:mu.nodes,node:mu.node,size:mu.size,empty:mu.empty,each:mu.each,on:J8,attr:W8,attrTween:q8,style:i_,styleTween:a_,text:s_,textTween:o_,remove:e_,tween:U8,delay:Y8,duration:X8,ease:j8,easeVarying:K8,end:c_,[Symbol.iterator]:mu[Symbol.iterator]}});function o5(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}var yH=N(()=>{"use strict";o(o5,"cubicInOut")});var u_=N(()=>{"use strict";yH()});function tTe(t,e){for(var r;!(r=t.__transition)||!(r=r[e]);)if(!(t=t.parentNode))throw new Error(`transition ${e} not found`);return r}function h_(t){var e,r;t instanceof es?(e=t._id,t=t._name):(e=s5(),(r=eTe).time=dv(),t=t==null?null:t+"");for(var n=this._groups,i=n.length,a=0;a<i;++a)for(var s=n[a],l=s.length,u,h=0;h<l;++h)(u=s[h])&&pu(u,t,e,h,s,r||tTe(u,e));return new es(n,this._parents,t,e)}var eTe,vH=N(()=>{"use strict";fd();Es();u_();r5();eTe={time:null,delay:0,duration:250,ease:o5};o(tTe,"inherit");o(h_,"default")});var xH=N(()=>{"use strict";fl();jU();vH();hu.prototype.interrupt=V8;hu.prototype.transition=h_});var l5=N(()=>{"use strict";xH()});var bH=N(()=>{"use strict"});var wH=N(()=>{"use strict"});var TH=N(()=>{"use strict"});function kH(t){return[+t[0],+t[1]]}function rTe(t){return[kH(t[0]),kH(t[1])]}function f_(t){return{type:t}}var Z0t,J0t,emt,tmt,rmt,nmt,EH=N(()=>{"use strict";l5();bH();wH();TH();({abs:Z0t,max:J0t,min:emt}=Math);o(kH,"number1");o(rTe,"number2");tmt={name:"x",handles:["w","e"].map(f_),input:o(function(t,e){return t==null?null:[[+t[0],e[0][1]],[+t[1],e[1][1]]]},"input"),output:o(function(t){return t&&[t[0][0],t[1][0]]},"output")},rmt={name:"y",handles:["n","s"].map(f_),input:o(function(t,e){return t==null?null:[[e[0][0],+t[0]],[e[1][0],+t[1]]]},"input"),output:o(function(t){return t&&[t[0][1],t[1][1]]},"output")},nmt={name:"xy",handles:["n","w","e","s","nw","ne","sw","se"].map(f_),input:o(function(t){return t==null?null:rTe(t)},"input"),output:o(function(t){return t},"output")};o(f_,"type")});var SH=N(()=>{"use strict";EH()});function CH(t){this._+=t[0];for(let e=1,r=t.length;e<r;++e)this._+=arguments[e]+t[e]}function iTe(t){let e=Math.floor(t);if(!(e>=0))throw new Error(`invalid digits: ${t}`);if(e>15)return CH;let r=10**e;return function(n){this._+=n[0];for(let i=1,a=n.length;i<a;++i)this._+=Math.round(arguments[i]*r)/r+n[i]}}function AH(){return new pd}var d_,p_,dd,nTe,pd,_H=N(()=>{"use strict";d_=Math.PI,p_=2*d_,dd=1e-6,nTe=p_-dd;o(CH,"append");o(iTe,"appendRound");pd=class{static{o(this,"Path")}constructor(e){this._x0=this._y0=this._x1=this._y1=null,this._="",this._append=e==null?CH:iTe(e)}moveTo(e,r){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+r}`}closePath(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(e,r){this._append`L${this._x1=+e},${this._y1=+r}`}quadraticCurveTo(e,r,n,i){this._append`Q${+e},${+r},${this._x1=+n},${this._y1=+i}`}bezierCurveTo(e,r,n,i,a,s){this._append`C${+e},${+r},${+n},${+i},${this._x1=+a},${this._y1=+s}`}arcTo(e,r,n,i,a){if(e=+e,r=+r,n=+n,i=+i,a=+a,a<0)throw new Error(`negative radius: ${a}`);let s=this._x1,l=this._y1,u=n-e,h=i-r,f=s-e,d=l-r,p=f*f+d*d;if(this._x1===null)this._append`M${this._x1=e},${this._y1=r}`;else if(p>dd)if(!(Math.abs(d*u-h*f)>dd)||!a)this._append`L${this._x1=e},${this._y1=r}`;else{let m=n-s,g=i-l,y=u*u+h*h,v=m*m+g*g,x=Math.sqrt(y),b=Math.sqrt(p),w=a*Math.tan((d_-Math.acos((y+p-v)/(2*x*b)))/2),C=w/b,T=w/x;Math.abs(C-1)>dd&&this._append`L${e+C*f},${r+C*d}`,this._append`A${a},${a},0,0,${+(d*m>f*g)},${this._x1=e+T*u},${this._y1=r+T*h}`}}arc(e,r,n,i,a,s){if(e=+e,r=+r,n=+n,s=!!s,n<0)throw new Error(`negative radius: ${n}`);let l=n*Math.cos(i),u=n*Math.sin(i),h=e+l,f=r+u,d=1^s,p=s?i-a:a-i;this._x1===null?this._append`M${h},${f}`:(Math.abs(this._x1-h)>dd||Math.abs(this._y1-f)>dd)&&this._append`L${h},${f}`,n&&(p<0&&(p=p%p_+p_),p>nTe?this._append`A${n},${n},0,1,${d},${e-l},${r-u}A${n},${n},0,1,${d},${this._x1=h},${this._y1=f}`:p>dd&&this._append`A${n},${n},0,${+(p>=d_)},${d},${this._x1=e+n*Math.cos(a)},${this._y1=r+n*Math.sin(a)}`)}rect(e,r,n,i){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+r}h${n=+n}v${+i}h${-n}Z`}toString(){return this._}};o(AH,"path");AH.prototype=pd.prototype});var m_=N(()=>{"use strict";_H()});var DH=N(()=>{"use strict"});var LH=N(()=>{"use strict"});var RH=N(()=>{"use strict"});var NH=N(()=>{"use strict"});var MH=N(()=>{"use strict"});var IH=N(()=>{"use strict"});var OH=N(()=>{"use strict"});function g_(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)}function md(t,e){if((r=(t=e?t.toExponential(e-1):t.toExponential()).indexOf("e"))<0)return null;var r,n=t.slice(0,r);return[n.length>1?n[0]+n.slice(2):n,+t.slice(r+1)]}var bv=N(()=>{"use strict";o(g_,"default");o(md,"formatDecimalParts")});function ml(t){return t=md(Math.abs(t)),t?t[1]:NaN}var wv=N(()=>{"use strict";bv();o(ml,"default")});function y_(t,e){return function(r,n){for(var i=r.length,a=[],s=0,l=t[0],u=0;i>0&&l>0&&(u+l+1>n&&(l=Math.max(1,n-u)),a.push(r.substring(i-=l,i+l)),!((u+=l+1)>n));)l=t[s=(s+1)%t.length];return a.reverse().join(e)}}var PH=N(()=>{"use strict";o(y_,"default")});function v_(t){return function(e){return e.replace(/[0-9]/g,function(r){return t[+r]})}}var BH=N(()=>{"use strict";o(v_,"default")});function Eh(t){if(!(e=aTe.exec(t)))throw new Error("invalid format: "+t);var e;return new c5({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}function c5(t){this.fill=t.fill===void 0?" ":t.fill+"",this.align=t.align===void 0?">":t.align+"",this.sign=t.sign===void 0?"-":t.sign+"",this.symbol=t.symbol===void 0?"":t.symbol+"",this.zero=!!t.zero,this.width=t.width===void 0?void 0:+t.width,this.comma=!!t.comma,this.precision=t.precision===void 0?void 0:+t.precision,this.trim=!!t.trim,this.type=t.type===void 0?"":t.type+""}var aTe,x_=N(()=>{"use strict";aTe=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;o(Eh,"formatSpecifier");Eh.prototype=c5.prototype;o(c5,"FormatSpecifier");c5.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type}});function b_(t){e:for(var e=t.length,r=1,n=-1,i;r<e;++r)switch(t[r]){case".":n=i=r;break;case"0":n===0&&(n=r),i=r;break;default:if(!+t[r])break e;n>0&&(n=0);break}return n>0?t.slice(0,n)+t.slice(i+1):t}var FH=N(()=>{"use strict";o(b_,"default")});function T_(t,e){var r=md(t,e);if(!r)return t+"";var n=r[0],i=r[1],a=i-(w_=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,s=n.length;return a===s?n:a>s?n+new Array(a-s+1).join("0"):a>0?n.slice(0,a)+"."+n.slice(a):"0."+new Array(1-a).join("0")+md(t,Math.max(0,e+a-1))[0]}var w_,k_=N(()=>{"use strict";bv();o(T_,"default")});function u5(t,e){var r=md(t,e);if(!r)return t+"";var n=r[0],i=r[1];return i<0?"0."+new Array(-i).join("0")+n:n.length>i+1?n.slice(0,i+1)+"."+n.slice(i+1):n+new Array(i-n.length+2).join("0")}var $H=N(()=>{"use strict";bv();o(u5,"default")});var E_,zH=N(()=>{"use strict";bv();k_();$H();E_={"%":o((t,e)=>(t*100).toFixed(e),"%"),b:o(t=>Math.round(t).toString(2),"b"),c:o(t=>t+"","c"),d:g_,e:o((t,e)=>t.toExponential(e),"e"),f:o((t,e)=>t.toFixed(e),"f"),g:o((t,e)=>t.toPrecision(e),"g"),o:o(t=>Math.round(t).toString(8),"o"),p:o((t,e)=>u5(t*100,e),"p"),r:u5,s:T_,X:o(t=>Math.round(t).toString(16).toUpperCase(),"X"),x:o(t=>Math.round(t).toString(16),"x")}});function h5(t){return t}var GH=N(()=>{"use strict";o(h5,"default")});function S_(t){var e=t.grouping===void 0||t.thousands===void 0?h5:y_(VH.call(t.grouping,Number),t.thousands+""),r=t.currency===void 0?"":t.currency[0]+"",n=t.currency===void 0?"":t.currency[1]+"",i=t.decimal===void 0?".":t.decimal+"",a=t.numerals===void 0?h5:v_(VH.call(t.numerals,String)),s=t.percent===void 0?"%":t.percent+"",l=t.minus===void 0?"\u2212":t.minus+"",u=t.nan===void 0?"NaN":t.nan+"";function h(d){d=Eh(d);var p=d.fill,m=d.align,g=d.sign,y=d.symbol,v=d.zero,x=d.width,b=d.comma,w=d.precision,C=d.trim,T=d.type;T==="n"?(b=!0,T="g"):E_[T]||(w===void 0&&(w=12),C=!0,T="g"),(v||p==="0"&&m==="=")&&(v=!0,p="0",m="=");var E=y==="$"?r:y==="#"&&/[boxX]/.test(T)?"0"+T.toLowerCase():"",A=y==="$"?n:/[%p]/.test(T)?s:"",S=E_[T],_=/[defgprs%]/.test(T);w=w===void 0?6:/[gprs]/.test(T)?Math.max(1,Math.min(21,w)):Math.max(0,Math.min(20,w));function I(D){var k=E,L=A,R,O,M;if(T==="c")L=S(D)+L,D="";else{D=+D;var B=D<0||1/D<0;if(D=isNaN(D)?u:S(Math.abs(D),w),C&&(D=b_(D)),B&&+D==0&&g!=="+"&&(B=!1),k=(B?g==="("?g:l:g==="-"||g==="("?"":g)+k,L=(T==="s"?UH[8+w_/3]:"")+L+(B&&g==="("?")":""),_){for(R=-1,O=D.length;++R<O;)if(M=D.charCodeAt(R),48>M||M>57){L=(M===46?i+D.slice(R+1):D.slice(R))+L,D=D.slice(0,R);break}}}b&&!v&&(D=e(D,1/0));var F=k.length+D.length+L.length,P=F<x?new Array(x-F+1).join(p):"";switch(b&&v&&(D=e(P+D,P.length?x-L.length:1/0),P=""),m){case"<":D=k+D+L+P;break;case"=":D=k+P+D+L;break;case"^":D=P.slice(0,F=P.length>>1)+k+D+L+P.slice(F);break;default:D=P+k+D+L;break}return a(D)}return o(I,"format"),I.toString=function(){return d+""},I}o(h,"newFormat");function f(d,p){var m=h((d=Eh(d),d.type="f",d)),g=Math.max(-8,Math.min(8,Math.floor(ml(p)/3)))*3,y=Math.pow(10,-g),v=UH[8+g/3];return function(x){return m(y*x)+v}}return o(f,"formatPrefix"),{format:h,formatPrefix:f}}var VH,UH,HH=N(()=>{"use strict";wv();PH();BH();x_();FH();zH();k_();GH();VH=Array.prototype.map,UH=["y","z","a","f","p","n","\xB5","m","","k","M","G","T","P","E","Z","Y"];o(S_,"default")});function C_(t){return f5=S_(t),d5=f5.format,p5=f5.formatPrefix,f5}var f5,d5,p5,WH=N(()=>{"use strict";HH();C_({thousands:",",grouping:[3],currency:["$",""]});o(C_,"defaultLocale")});function m5(t){return Math.max(0,-ml(Math.abs(t)))}var qH=N(()=>{"use strict";wv();o(m5,"default")});function g5(t,e){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(ml(e)/3)))*3-ml(Math.abs(t)))}var YH=N(()=>{"use strict";wv();o(g5,"default")});function y5(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,ml(e)-ml(t))+1}var XH=N(()=>{"use strict";wv();o(y5,"default")});var A_=N(()=>{"use strict";WH();x_();qH();YH();XH()});var jH=N(()=>{"use strict"});var KH=N(()=>{"use strict"});var QH=N(()=>{"use strict"});var ZH=N(()=>{"use strict"});function Sh(t,e){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(e).domain(t);break}return this}var Tv=N(()=>{"use strict";o(Sh,"initRange")});function gu(){var t=new g0,e=[],r=[],n=__;function i(a){let s=t.get(a);if(s===void 0){if(n!==__)return n;t.set(a,s=e.push(a)-1)}return r[s%r.length]}return o(i,"scale"),i.domain=function(a){if(!arguments.length)return e.slice();e=[],t=new g0;for(let s of a)t.has(s)||t.set(s,e.push(s)-1);return i},i.range=function(a){return arguments.length?(r=Array.from(a),i):r.slice()},i.unknown=function(a){return arguments.length?(n=a,i):n},i.copy=function(){return gu(e,r).unknown(n)},Sh.apply(i,arguments),i}var __,D_=N(()=>{"use strict";vh();Tv();__=Symbol("implicit");o(gu,"ordinal")});function L0(){var t=gu().unknown(void 0),e=t.domain,r=t.range,n=0,i=1,a,s,l=!1,u=0,h=0,f=.5;delete t.unknown;function d(){var p=e().length,m=i<n,g=m?i:n,y=m?n:i;a=(y-g)/Math.max(1,p-u+h*2),l&&(a=Math.floor(a)),g+=(y-g-a*(p-u))*f,s=a*(1-u),l&&(g=Math.round(g),s=Math.round(s));var v=I3(p).map(function(x){return g+a*x});return r(m?v.reverse():v)}return o(d,"rescale"),t.domain=function(p){return arguments.length?(e(p),d()):e()},t.range=function(p){return arguments.length?([n,i]=p,n=+n,i=+i,d()):[n,i]},t.rangeRound=function(p){return[n,i]=p,n=+n,i=+i,l=!0,d()},t.bandwidth=function(){return s},t.step=function(){return a},t.round=function(p){return arguments.length?(l=!!p,d()):l},t.padding=function(p){return arguments.length?(u=Math.min(1,h=+p),d()):u},t.paddingInner=function(p){return arguments.length?(u=Math.min(1,p),d()):u},t.paddingOuter=function(p){return arguments.length?(h=+p,d()):h},t.align=function(p){return arguments.length?(f=Math.max(0,Math.min(1,p)),d()):f},t.copy=function(){return L0(e(),[n,i]).round(l).paddingInner(u).paddingOuter(h).align(f)},Sh.apply(d(),arguments)}var JH=N(()=>{"use strict";vh();Tv();D_();o(L0,"band")});function L_(t){return function(){return t}}var eW=N(()=>{"use strict";o(L_,"constants")});function R_(t){return+t}var tW=N(()=>{"use strict";o(R_,"number")});function R0(t){return t}function N_(t,e){return(e-=t=+t)?function(r){return(r-t)/e}:L_(isNaN(e)?NaN:.5)}function sTe(t,e){var r;return t>e&&(r=t,t=e,e=r),function(n){return Math.max(t,Math.min(e,n))}}function oTe(t,e,r){var n=t[0],i=t[1],a=e[0],s=e[1];return i<n?(n=N_(i,n),a=r(s,a)):(n=N_(n,i),a=r(a,s)),function(l){return a(n(l))}}function lTe(t,e,r){var n=Math.min(t.length,e.length)-1,i=new Array(n),a=new Array(n),s=-1;for(t[n]<t[0]&&(t=t.slice().reverse(),e=e.slice().reverse());++s<n;)i[s]=N_(t[s],t[s+1]),a[s]=r(e[s],e[s+1]);return function(l){var u=mA(t,l,1,n)-1;return a[u](i[u](l))}}function v5(t,e){return e.domain(t.domain()).range(t.range()).interpolate(t.interpolate()).clamp(t.clamp()).unknown(t.unknown())}function cTe(){var t=rW,e=rW,r=kh,n,i,a,s=R0,l,u,h;function f(){var p=Math.min(t.length,e.length);return s!==R0&&(s=sTe(t[0],t[p-1])),l=p>2?lTe:oTe,u=h=null,d}o(f,"rescale");function d(p){return p==null||isNaN(p=+p)?a:(u||(u=l(t.map(n),e,r)))(n(s(p)))}return o(d,"scale"),d.invert=function(p){return s(i((h||(h=l(e,t.map(n),Ki)))(p)))},d.domain=function(p){return arguments.length?(t=Array.from(p,R_),f()):t.slice()},d.range=function(p){return arguments.length?(e=Array.from(p),f()):e.slice()},d.rangeRound=function(p){return e=Array.from(p),r=X3,f()},d.clamp=function(p){return arguments.length?(s=p?!0:R0,f()):s!==R0},d.interpolate=function(p){return arguments.length?(r=p,f()):r},d.unknown=function(p){return arguments.length?(a=p,d):a},function(p,m){return n=p,i=m,f()}}function kv(){return cTe()(R0,R0)}var rW,M_=N(()=>{"use strict";vh();A0();eW();tW();rW=[0,1];o(R0,"identity");o(N_,"normalize");o(sTe,"clamper");o(oTe,"bimap");o(lTe,"polymap");o(v5,"copy");o(cTe,"transformer");o(kv,"continuous")});function I_(t,e,r,n){var i=y0(t,e,r),a;switch(n=Eh(n??",f"),n.type){case"s":{var s=Math.max(Math.abs(t),Math.abs(e));return n.precision==null&&!isNaN(a=g5(i,s))&&(n.precision=a),p5(n,s)}case"":case"e":case"g":case"p":case"r":{n.precision==null&&!isNaN(a=y5(i,Math.max(Math.abs(t),Math.abs(e))))&&(n.precision=a-(n.type==="e"));break}case"f":case"%":{n.precision==null&&!isNaN(a=m5(i))&&(n.precision=a-(n.type==="%")*2);break}}return d5(n)}var nW=N(()=>{"use strict";vh();A_();o(I_,"tickFormat")});function uTe(t){var e=t.domain;return t.ticks=function(r){var n=e();return R3(n[0],n[n.length-1],r??10)},t.tickFormat=function(r,n){var i=e();return I_(i[0],i[i.length-1],r??10,n)},t.nice=function(r){r==null&&(r=10);var n=e(),i=0,a=n.length-1,s=n[i],l=n[a],u,h,f=10;for(l<s&&(h=s,s=l,l=h,h=i,i=a,a=h);f-- >0;){if(h=Zy(s,l,r),h===u)return n[i]=s,n[a]=l,e(n);if(h>0)s=Math.floor(s/h)*h,l=Math.ceil(l/h)*h;else if(h<0)s=Math.ceil(s*h)/h,l=Math.floor(l*h)/h;else break;u=h}return t},t}function gl(){var t=kv();return t.copy=function(){return v5(t,gl())},Sh.apply(t,arguments),uTe(t)}var iW=N(()=>{"use strict";vh();M_();Tv();nW();o(uTe,"linearish");o(gl,"linear")});function O_(t,e){t=t.slice();var r=0,n=t.length-1,i=t[r],a=t[n],s;return a<i&&(s=r,r=n,n=s,s=i,i=a,a=s),t[r]=e.floor(i),t[n]=e.ceil(a),t}var aW=N(()=>{"use strict";o(O_,"nice")});function xn(t,e,r,n){function i(a){return t(a=arguments.length===0?new Date:new Date(+a)),a}return o(i,"interval"),i.floor=a=>(t(a=new Date(+a)),a),i.ceil=a=>(t(a=new Date(a-1)),e(a,1),t(a),a),i.round=a=>{let s=i(a),l=i.ceil(a);return a-s<l-a?s:l},i.offset=(a,s)=>(e(a=new Date(+a),s==null?1:Math.floor(s)),a),i.range=(a,s,l)=>{let u=[];if(a=i.ceil(a),l=l==null?1:Math.floor(l),!(a<s)||!(l>0))return u;let h;do u.push(h=new Date(+a)),e(a,l),t(a);while(h<a&&a<s);return u},i.filter=a=>xn(s=>{if(s>=s)for(;t(s),!a(s);)s.setTime(s-1)},(s,l)=>{if(s>=s)if(l<0)for(;++l<=0;)for(;e(s,-1),!a(s););else for(;--l>=0;)for(;e(s,1),!a(s););}),r&&(i.count=(a,s)=>(P_.setTime(+a),B_.setTime(+s),t(P_),t(B_),Math.floor(r(P_,B_))),i.every=a=>(a=Math.floor(a),!isFinite(a)||!(a>0)?null:a>1?i.filter(n?s=>n(s)%a===0:s=>i.count(0,s)%a===0):i)),i}var P_,B_,yu=N(()=>{"use strict";P_=new Date,B_=new Date;o(xn,"timeInterval")});var ac,sW,F_=N(()=>{"use strict";yu();ac=xn(()=>{},(t,e)=>{t.setTime(+t+e)},(t,e)=>e-t);ac.every=t=>(t=Math.floor(t),!isFinite(t)||!(t>0)?null:t>1?xn(e=>{e.setTime(Math.floor(e/t)*t)},(e,r)=>{e.setTime(+e+r*t)},(e,r)=>(r-e)/t):ac);sW=ac.range});var Ks,oW,$_=N(()=>{"use strict";yu();Ks=xn(t=>{t.setTime(t-t.getMilliseconds())},(t,e)=>{t.setTime(+t+e*1e3)},(t,e)=>(e-t)/1e3,t=>t.getUTCSeconds()),oW=Ks.range});var vu,hTe,x5,fTe,z_=N(()=>{"use strict";yu();vu=xn(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*1e3)},(t,e)=>{t.setTime(+t+e*6e4)},(t,e)=>(e-t)/6e4,t=>t.getMinutes()),hTe=vu.range,x5=xn(t=>{t.setUTCSeconds(0,0)},(t,e)=>{t.setTime(+t+e*6e4)},(t,e)=>(e-t)/6e4,t=>t.getUTCMinutes()),fTe=x5.range});var xu,dTe,b5,pTe,G_=N(()=>{"use strict";yu();xu=xn(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*1e3-t.getMinutes()*6e4)},(t,e)=>{t.setTime(+t+e*36e5)},(t,e)=>(e-t)/36e5,t=>t.getHours()),dTe=xu.range,b5=xn(t=>{t.setUTCMinutes(0,0,0)},(t,e)=>{t.setTime(+t+e*36e5)},(t,e)=>(e-t)/36e5,t=>t.getUTCHours()),pTe=b5.range});var _o,mTe,Sv,gTe,w5,yTe,V_=N(()=>{"use strict";yu();_o=xn(t=>t.setHours(0,0,0,0),(t,e)=>t.setDate(t.getDate()+e),(t,e)=>(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*6e4)/864e5,t=>t.getDate()-1),mTe=_o.range,Sv=xn(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/864e5,t=>t.getUTCDate()-1),gTe=Sv.range,w5=xn(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/864e5,t=>Math.floor(t/864e5)),yTe=w5.range});function vd(t){return xn(e=>{e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)},(e,r)=>{e.setDate(e.getDate()+r*7)},(e,r)=>(r-e-(r.getTimezoneOffset()-e.getTimezoneOffset())*6e4)/6048e5)}function xd(t){return xn(e=>{e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)},(e,r)=>{e.setUTCDate(e.getUTCDate()+r*7)},(e,r)=>(r-e)/6048e5)}var yl,Ch,T5,k5,oc,E5,S5,cW,vTe,xTe,bTe,wTe,TTe,kTe,bd,N0,uW,hW,Ah,fW,dW,pW,ETe,STe,CTe,ATe,_Te,DTe,U_=N(()=>{"use strict";yu();o(vd,"timeWeekday");yl=vd(0),Ch=vd(1),T5=vd(2),k5=vd(3),oc=vd(4),E5=vd(5),S5=vd(6),cW=yl.range,vTe=Ch.range,xTe=T5.range,bTe=k5.range,wTe=oc.range,TTe=E5.range,kTe=S5.range;o(xd,"utcWeekday");bd=xd(0),N0=xd(1),uW=xd(2),hW=xd(3),Ah=xd(4),fW=xd(5),dW=xd(6),pW=bd.range,ETe=N0.range,STe=uW.range,CTe=hW.range,ATe=Ah.range,_Te=fW.range,DTe=dW.range});var bu,LTe,C5,RTe,H_=N(()=>{"use strict";yu();bu=xn(t=>{t.setDate(1),t.setHours(0,0,0,0)},(t,e)=>{t.setMonth(t.getMonth()+e)},(t,e)=>e.getMonth()-t.getMonth()+(e.getFullYear()-t.getFullYear())*12,t=>t.getMonth()),LTe=bu.range,C5=xn(t=>{t.setUTCDate(1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCMonth(t.getUTCMonth()+e)},(t,e)=>e.getUTCMonth()-t.getUTCMonth()+(e.getUTCFullYear()-t.getUTCFullYear())*12,t=>t.getUTCMonth()),RTe=C5.range});var Qs,NTe,vl,MTe,W_=N(()=>{"use strict";yu();Qs=xn(t=>{t.setMonth(0,1),t.setHours(0,0,0,0)},(t,e)=>{t.setFullYear(t.getFullYear()+e)},(t,e)=>e.getFullYear()-t.getFullYear(),t=>t.getFullYear());Qs.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:xn(e=>{e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)},(e,r)=>{e.setFullYear(e.getFullYear()+r*t)});NTe=Qs.range,vl=xn(t=>{t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCFullYear(t.getUTCFullYear()+e)},(t,e)=>e.getUTCFullYear()-t.getUTCFullYear(),t=>t.getUTCFullYear());vl.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:xn(e=>{e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,r)=>{e.setUTCFullYear(e.getUTCFullYear()+r*t)});MTe=vl.range});function gW(t,e,r,n,i,a){let s=[[Ks,1,1e3],[Ks,5,5*1e3],[Ks,15,15*1e3],[Ks,30,30*1e3],[a,1,6e4],[a,5,5*6e4],[a,15,15*6e4],[a,30,30*6e4],[i,1,36e5],[i,3,3*36e5],[i,6,6*36e5],[i,12,12*36e5],[n,1,864e5],[n,2,2*864e5],[r,1,6048e5],[e,1,2592e6],[e,3,3*2592e6],[t,1,31536e6]];function l(h,f,d){let p=f<h;p&&([h,f]=[f,h]);let m=d&&typeof d.range=="function"?d:u(h,f,d),g=m?m.range(h,+f+1):[];return p?g.reverse():g}o(l,"ticks");function u(h,f,d){let p=Math.abs(f-h)/d,m=od(([,,v])=>v).right(s,p);if(m===s.length)return t.every(y0(h/31536e6,f/31536e6,d));if(m===0)return ac.every(Math.max(y0(h,f,d),1));let[g,y]=s[p/s[m-1][2]<s[m][2]/p?m-1:m];return g.every(y)}return o(u,"tickInterval"),[l,u]}var OTe,PTe,q_,Y_,yW=N(()=>{"use strict";vh();F_();$_();z_();G_();V_();U_();H_();W_();o(gW,"ticker");[OTe,PTe]=gW(vl,C5,bd,w5,b5,x5),[q_,Y_]=gW(Qs,bu,yl,_o,xu,vu)});var A5=N(()=>{"use strict";F_();$_();z_();G_();V_();U_();H_();W_();yW()});function X_(t){if(0<=t.y&&t.y<100){var e=new Date(-1,t.m,t.d,t.H,t.M,t.S,t.L);return e.setFullYear(t.y),e}return new Date(t.y,t.m,t.d,t.H,t.M,t.S,t.L)}function j_(t){if(0<=t.y&&t.y<100){var e=new Date(Date.UTC(-1,t.m,t.d,t.H,t.M,t.S,t.L));return e.setUTCFullYear(t.y),e}return new Date(Date.UTC(t.y,t.m,t.d,t.H,t.M,t.S,t.L))}function Cv(t,e,r){return{y:t,m:e,d:r,H:0,M:0,S:0,L:0}}function K_(t){var e=t.dateTime,r=t.date,n=t.time,i=t.periods,a=t.days,s=t.shortDays,l=t.months,u=t.shortMonths,h=Av(i),f=_v(i),d=Av(a),p=_v(a),m=Av(s),g=_v(s),y=Av(l),v=_v(l),x=Av(u),b=_v(u),w={a:B,A:F,b:P,B:z,c:null,d:kW,e:kW,f:ake,g:mke,G:yke,H:rke,I:nke,j:ike,L:_W,m:ske,M:oke,p:$,q:H,Q:CW,s:AW,S:lke,u:cke,U:uke,V:hke,w:fke,W:dke,x:null,X:null,y:pke,Y:gke,Z:vke,"%":SW},C={a:Q,A:j,b:ie,B:ne,c:null,d:EW,e:EW,f:Tke,g:Nke,G:Ike,H:xke,I:bke,j:wke,L:LW,m:kke,M:Eke,p:le,q:he,Q:CW,s:AW,S:Ske,u:Cke,U:Ake,V:_ke,w:Dke,W:Lke,x:null,X:null,y:Rke,Y:Mke,Z:Oke,"%":SW},T={a:I,A:D,b:k,B:L,c:R,d:wW,e:wW,f:ZTe,g:bW,G:xW,H:TW,I:TW,j:XTe,L:QTe,m:YTe,M:jTe,p:_,q:qTe,Q:eke,s:tke,S:KTe,u:GTe,U:VTe,V:UTe,w:zTe,W:HTe,x:O,X:M,y:bW,Y:xW,Z:WTe,"%":JTe};w.x=E(r,w),w.X=E(n,w),w.c=E(e,w),C.x=E(r,C),C.X=E(n,C),C.c=E(e,C);function E(K,X){return function(te){var J=[],se=-1,ue=0,Z=K.length,Se,ce,ae;for(te instanceof Date||(te=new Date(+te));++se<Z;)K.charCodeAt(se)===37&&(J.push(K.slice(ue,se)),(ce=vW[Se=K.charAt(++se)])!=null?Se=K.charAt(++se):ce=Se==="e"?" ":"0",(ae=X[Se])&&(Se=ae(te,ce)),J.push(Se),ue=se+1);return J.push(K.slice(ue,se)),J.join("")}}o(E,"newFormat");function A(K,X){return function(te){var J=Cv(1900,void 0,1),se=S(J,K,te+="",0),ue,Z;if(se!=te.length)return null;if("Q"in J)return new Date(J.Q);if("s"in J)return new Date(J.s*1e3+("L"in J?J.L:0));if(X&&!("Z"in J)&&(J.Z=0),"p"in J&&(J.H=J.H%12+J.p*12),J.m===void 0&&(J.m="q"in J?J.q:0),"V"in J){if(J.V<1||J.V>53)return null;"w"in J||(J.w=1),"Z"in J?(ue=j_(Cv(J.y,0,1)),Z=ue.getUTCDay(),ue=Z>4||Z===0?N0.ceil(ue):N0(ue),ue=Sv.offset(ue,(J.V-1)*7),J.y=ue.getUTCFullYear(),J.m=ue.getUTCMonth(),J.d=ue.getUTCDate()+(J.w+6)%7):(ue=X_(Cv(J.y,0,1)),Z=ue.getDay(),ue=Z>4||Z===0?Ch.ceil(ue):Ch(ue),ue=_o.offset(ue,(J.V-1)*7),J.y=ue.getFullYear(),J.m=ue.getMonth(),J.d=ue.getDate()+(J.w+6)%7)}else("W"in J||"U"in J)&&("w"in J||(J.w="u"in J?J.u%7:"W"in J?1:0),Z="Z"in J?j_(Cv(J.y,0,1)).getUTCDay():X_(Cv(J.y,0,1)).getDay(),J.m=0,J.d="W"in J?(J.w+6)%7+J.W*7-(Z+5)%7:J.w+J.U*7-(Z+6)%7);return"Z"in J?(J.H+=J.Z/100|0,J.M+=J.Z%100,j_(J)):X_(J)}}o(A,"newParse");function S(K,X,te,J){for(var se=0,ue=X.length,Z=te.length,Se,ce;se<ue;){if(J>=Z)return-1;if(Se=X.charCodeAt(se++),Se===37){if(Se=X.charAt(se++),ce=T[Se in vW?X.charAt(se++):Se],!ce||(J=ce(K,te,J))<0)return-1}else if(Se!=te.charCodeAt(J++))return-1}return J}o(S,"parseSpecifier");function _(K,X,te){var J=h.exec(X.slice(te));return J?(K.p=f.get(J[0].toLowerCase()),te+J[0].length):-1}o(_,"parsePeriod");function I(K,X,te){var J=m.exec(X.slice(te));return J?(K.w=g.get(J[0].toLowerCase()),te+J[0].length):-1}o(I,"parseShortWeekday");function D(K,X,te){var J=d.exec(X.slice(te));return J?(K.w=p.get(J[0].toLowerCase()),te+J[0].length):-1}o(D,"parseWeekday");function k(K,X,te){var J=x.exec(X.slice(te));return J?(K.m=b.get(J[0].toLowerCase()),te+J[0].length):-1}o(k,"parseShortMonth");function L(K,X,te){var J=y.exec(X.slice(te));return J?(K.m=v.get(J[0].toLowerCase()),te+J[0].length):-1}o(L,"parseMonth");function R(K,X,te){return S(K,e,X,te)}o(R,"parseLocaleDateTime");function O(K,X,te){return S(K,r,X,te)}o(O,"parseLocaleDate");function M(K,X,te){return S(K,n,X,te)}o(M,"parseLocaleTime");function B(K){return s[K.getDay()]}o(B,"formatShortWeekday");function F(K){return a[K.getDay()]}o(F,"formatWeekday");function P(K){return u[K.getMonth()]}o(P,"formatShortMonth");function z(K){return l[K.getMonth()]}o(z,"formatMonth");function $(K){return i[+(K.getHours()>=12)]}o($,"formatPeriod");function H(K){return 1+~~(K.getMonth()/3)}o(H,"formatQuarter");function Q(K){return s[K.getUTCDay()]}o(Q,"formatUTCShortWeekday");function j(K){return a[K.getUTCDay()]}o(j,"formatUTCWeekday");function ie(K){return u[K.getUTCMonth()]}o(ie,"formatUTCShortMonth");function ne(K){return l[K.getUTCMonth()]}o(ne,"formatUTCMonth");function le(K){return i[+(K.getUTCHours()>=12)]}o(le,"formatUTCPeriod");function he(K){return 1+~~(K.getUTCMonth()/3)}return o(he,"formatUTCQuarter"),{format:o(function(K){var X=E(K+="",w);return X.toString=function(){return K},X},"format"),parse:o(function(K){var X=A(K+="",!1);return X.toString=function(){return K},X},"parse"),utcFormat:o(function(K){var X=E(K+="",C);return X.toString=function(){return K},X},"utcFormat"),utcParse:o(function(K){var X=A(K+="",!0);return X.toString=function(){return K},X},"utcParse")}}function Wr(t,e,r){var n=t<0?"-":"",i=(n?-t:t)+"",a=i.length;return n+(a<r?new Array(r-a+1).join(e)+i:i)}function $Te(t){return t.replace(FTe,"\\$&")}function Av(t){return new RegExp("^(?:"+t.map($Te).join("|")+")","i")}function _v(t){return new Map(t.map((e,r)=>[e.toLowerCase(),r]))}function zTe(t,e,r){var n=Qi.exec(e.slice(r,r+1));return n?(t.w=+n[0],r+n[0].length):-1}function GTe(t,e,r){var n=Qi.exec(e.slice(r,r+1));return n?(t.u=+n[0],r+n[0].length):-1}function VTe(t,e,r){var n=Qi.exec(e.slice(r,r+2));return n?(t.U=+n[0],r+n[0].length):-1}function UTe(t,e,r){var n=Qi.exec(e.slice(r,r+2));return n?(t.V=+n[0],r+n[0].length):-1}function HTe(t,e,r){var n=Qi.exec(e.slice(r,r+2));return n?(t.W=+n[0],r+n[0].length):-1}function xW(t,e,r){var n=Qi.exec(e.slice(r,r+4));return n?(t.y=+n[0],r+n[0].length):-1}function bW(t,e,r){var n=Qi.exec(e.slice(r,r+2));return n?(t.y=+n[0]+(+n[0]>68?1900:2e3),r+n[0].length):-1}function WTe(t,e,r){var n=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(r,r+6));return n?(t.Z=n[1]?0:-(n[2]+(n[3]||"00")),r+n[0].length):-1}function qTe(t,e,r){var n=Qi.exec(e.slice(r,r+1));return n?(t.q=n[0]*3-3,r+n[0].length):-1}function YTe(t,e,r){var n=Qi.exec(e.slice(r,r+2));return n?(t.m=n[0]-1,r+n[0].length):-1}function wW(t,e,r){var n=Qi.exec(e.slice(r,r+2));return n?(t.d=+n[0],r+n[0].length):-1}function XTe(t,e,r){var n=Qi.exec(e.slice(r,r+3));return n?(t.m=0,t.d=+n[0],r+n[0].length):-1}function TW(t,e,r){var n=Qi.exec(e.slice(r,r+2));return n?(t.H=+n[0],r+n[0].length):-1}function jTe(t,e,r){var n=Qi.exec(e.slice(r,r+2));return n?(t.M=+n[0],r+n[0].length):-1}function KTe(t,e,r){var n=Qi.exec(e.slice(r,r+2));return n?(t.S=+n[0],r+n[0].length):-1}function QTe(t,e,r){var n=Qi.exec(e.slice(r,r+3));return n?(t.L=+n[0],r+n[0].length):-1}function ZTe(t,e,r){var n=Qi.exec(e.slice(r,r+6));return n?(t.L=Math.floor(n[0]/1e3),r+n[0].length):-1}function JTe(t,e,r){var n=BTe.exec(e.slice(r,r+1));return n?r+n[0].length:-1}function eke(t,e,r){var n=Qi.exec(e.slice(r));return n?(t.Q=+n[0],r+n[0].length):-1}function tke(t,e,r){var n=Qi.exec(e.slice(r));return n?(t.s=+n[0],r+n[0].length):-1}function kW(t,e){return Wr(t.getDate(),e,2)}function rke(t,e){return Wr(t.getHours(),e,2)}function nke(t,e){return Wr(t.getHours()%12||12,e,2)}function ike(t,e){return Wr(1+_o.count(Qs(t),t),e,3)}function _W(t,e){return Wr(t.getMilliseconds(),e,3)}function ake(t,e){return _W(t,e)+"000"}function ske(t,e){return Wr(t.getMonth()+1,e,2)}function oke(t,e){return Wr(t.getMinutes(),e,2)}function lke(t,e){return Wr(t.getSeconds(),e,2)}function cke(t){var e=t.getDay();return e===0?7:e}function uke(t,e){return Wr(yl.count(Qs(t)-1,t),e,2)}function DW(t){var e=t.getDay();return e>=4||e===0?oc(t):oc.ceil(t)}function hke(t,e){return t=DW(t),Wr(oc.count(Qs(t),t)+(Qs(t).getDay()===4),e,2)}function fke(t){return t.getDay()}function dke(t,e){return Wr(Ch.count(Qs(t)-1,t),e,2)}function pke(t,e){return Wr(t.getFullYear()%100,e,2)}function mke(t,e){return t=DW(t),Wr(t.getFullYear()%100,e,2)}function gke(t,e){return Wr(t.getFullYear()%1e4,e,4)}function yke(t,e){var r=t.getDay();return t=r>=4||r===0?oc(t):oc.ceil(t),Wr(t.getFullYear()%1e4,e,4)}function vke(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+Wr(e/60|0,"0",2)+Wr(e%60,"0",2)}function EW(t,e){return Wr(t.getUTCDate(),e,2)}function xke(t,e){return Wr(t.getUTCHours(),e,2)}function bke(t,e){return Wr(t.getUTCHours()%12||12,e,2)}function wke(t,e){return Wr(1+Sv.count(vl(t),t),e,3)}function LW(t,e){return Wr(t.getUTCMilliseconds(),e,3)}function Tke(t,e){return LW(t,e)+"000"}function kke(t,e){return Wr(t.getUTCMonth()+1,e,2)}function Eke(t,e){return Wr(t.getUTCMinutes(),e,2)}function Ske(t,e){return Wr(t.getUTCSeconds(),e,2)}function Cke(t){var e=t.getUTCDay();return e===0?7:e}function Ake(t,e){return Wr(bd.count(vl(t)-1,t),e,2)}function RW(t){var e=t.getUTCDay();return e>=4||e===0?Ah(t):Ah.ceil(t)}function _ke(t,e){return t=RW(t),Wr(Ah.count(vl(t),t)+(vl(t).getUTCDay()===4),e,2)}function Dke(t){return t.getUTCDay()}function Lke(t,e){return Wr(N0.count(vl(t)-1,t),e,2)}function Rke(t,e){return Wr(t.getUTCFullYear()%100,e,2)}function Nke(t,e){return t=RW(t),Wr(t.getUTCFullYear()%100,e,2)}function Mke(t,e){return Wr(t.getUTCFullYear()%1e4,e,4)}function Ike(t,e){var r=t.getUTCDay();return t=r>=4||r===0?Ah(t):Ah.ceil(t),Wr(t.getUTCFullYear()%1e4,e,4)}function Oke(){return"+0000"}function SW(){return"%"}function CW(t){return+t}function AW(t){return Math.floor(+t/1e3)}var vW,Qi,BTe,FTe,NW=N(()=>{"use strict";A5();o(X_,"localDate");o(j_,"utcDate");o(Cv,"newDate");o(K_,"formatLocale");vW={"-":"",_:" ",0:"0"},Qi=/^\s*\d+/,BTe=/^%/,FTe=/[\\^$*+?|[\]().{}]/g;o(Wr,"pad");o($Te,"requote");o(Av,"formatRe");o(_v,"formatLookup");o(zTe,"parseWeekdayNumberSunday");o(GTe,"parseWeekdayNumberMonday");o(VTe,"parseWeekNumberSunday");o(UTe,"parseWeekNumberISO");o(HTe,"parseWeekNumberMonday");o(xW,"parseFullYear");o(bW,"parseYear");o(WTe,"parseZone");o(qTe,"parseQuarter");o(YTe,"parseMonthNumber");o(wW,"parseDayOfMonth");o(XTe,"parseDayOfYear");o(TW,"parseHour24");o(jTe,"parseMinutes");o(KTe,"parseSeconds");o(QTe,"parseMilliseconds");o(ZTe,"parseMicroseconds");o(JTe,"parseLiteralPercent");o(eke,"parseUnixTimestamp");o(tke,"parseUnixTimestampSeconds");o(kW,"formatDayOfMonth");o(rke,"formatHour24");o(nke,"formatHour12");o(ike,"formatDayOfYear");o(_W,"formatMilliseconds");o(ake,"formatMicroseconds");o(ske,"formatMonthNumber");o(oke,"formatMinutes");o(lke,"formatSeconds");o(cke,"formatWeekdayNumberMonday");o(uke,"formatWeekNumberSunday");o(DW,"dISO");o(hke,"formatWeekNumberISO");o(fke,"formatWeekdayNumberSunday");o(dke,"formatWeekNumberMonday");o(pke,"formatYear");o(mke,"formatYearISO");o(gke,"formatFullYear");o(yke,"formatFullYearISO");o(vke,"formatZone");o(EW,"formatUTCDayOfMonth");o(xke,"formatUTCHour24");o(bke,"formatUTCHour12");o(wke,"formatUTCDayOfYear");o(LW,"formatUTCMilliseconds");o(Tke,"formatUTCMicroseconds");o(kke,"formatUTCMonthNumber");o(Eke,"formatUTCMinutes");o(Ske,"formatUTCSeconds");o(Cke,"formatUTCWeekdayNumberMonday");o(Ake,"formatUTCWeekNumberSunday");o(RW,"UTCdISO");o(_ke,"formatUTCWeekNumberISO");o(Dke,"formatUTCWeekdayNumberSunday");o(Lke,"formatUTCWeekNumberMonday");o(Rke,"formatUTCYear");o(Nke,"formatUTCYearISO");o(Mke,"formatUTCFullYear");o(Ike,"formatUTCFullYearISO");o(Oke,"formatUTCZone");o(SW,"formatLiteralPercent");o(CW,"formatUnixTimestamp");o(AW,"formatUnixTimestampSeconds")});function Q_(t){return M0=K_(t),wd=M0.format,MW=M0.parse,IW=M0.utcFormat,OW=M0.utcParse,M0}var M0,wd,MW,IW,OW,PW=N(()=>{"use strict";NW();Q_({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});o(Q_,"defaultLocale")});var Z_=N(()=>{"use strict";PW()});function Pke(t){return new Date(t)}function Bke(t){return t instanceof Date?+t:+new Date(+t)}function BW(t,e,r,n,i,a,s,l,u,h){var f=kv(),d=f.invert,p=f.domain,m=h(".%L"),g=h(":%S"),y=h("%I:%M"),v=h("%I %p"),x=h("%a %d"),b=h("%b %d"),w=h("%B"),C=h("%Y");function T(E){return(u(E)<E?m:l(E)<E?g:s(E)<E?y:a(E)<E?v:n(E)<E?i(E)<E?x:b:r(E)<E?w:C)(E)}return o(T,"tickFormat"),f.invert=function(E){return new Date(d(E))},f.domain=function(E){return arguments.length?p(Array.from(E,Bke)):p().map(Pke)},f.ticks=function(E){var A=p();return t(A[0],A[A.length-1],E??10)},f.tickFormat=function(E,A){return A==null?T:h(A)},f.nice=function(E){var A=p();return(!E||typeof E.range!="function")&&(E=e(A[0],A[A.length-1],E??10)),E?p(O_(A,E)):f},f.copy=function(){return v5(f,BW(t,e,r,n,i,a,s,l,u,h))},f}function _5(){return Sh.apply(BW(q_,Y_,Qs,bu,yl,_o,xu,vu,Ks,wd).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}var FW=N(()=>{"use strict";A5();Z_();M_();Tv();aW();o(Pke,"date");o(Bke,"number");o(BW,"calendar");o(_5,"time")});var $W=N(()=>{"use strict";JH();iW();D_();FW()});function J_(t){for(var e=t.length/6|0,r=new Array(e),n=0;n<e;)r[n]="#"+t.slice(n*6,++n*6);return r}var zW=N(()=>{"use strict";o(J_,"default")});var e9,GW=N(()=>{"use strict";zW();e9=J_("4e79a7f28e2ce1575976b7b259a14fedc949af7aa1ff9da79c755fbab0ab")});var VW=N(()=>{"use strict";GW()});function Bn(t){return o(function(){return t},"constant")}var D5=N(()=>{"use strict";o(Bn,"default")});function HW(t){return t>1?0:t<-1?I0:Math.acos(t)}function r9(t){return t>=1?Dv:t<=-1?-Dv:Math.asin(t)}var t9,fa,_h,UW,L5,xl,Td,Zi,I0,Dv,O0,R5=N(()=>{"use strict";t9=Math.abs,fa=Math.atan2,_h=Math.cos,UW=Math.max,L5=Math.min,xl=Math.sin,Td=Math.sqrt,Zi=1e-12,I0=Math.PI,Dv=I0/2,O0=2*I0;o(HW,"acos");o(r9,"asin")});function N5(t){let e=3;return t.digits=function(r){if(!arguments.length)return e;if(r==null)e=null;else{let n=Math.floor(r);if(!(n>=0))throw new RangeError(`invalid digits: ${r}`);e=n}return t},()=>new pd(e)}var n9=N(()=>{"use strict";m_();o(N5,"withPath")});function Fke(t){return t.innerRadius}function $ke(t){return t.outerRadius}function zke(t){return t.startAngle}function Gke(t){return t.endAngle}function Vke(t){return t&&t.padAngle}function Uke(t,e,r,n,i,a,s,l){var u=r-t,h=n-e,f=s-i,d=l-a,p=d*u-f*h;if(!(p*p<Zi))return p=(f*(e-a)-d*(t-i))/p,[t+p*u,e+p*h]}function M5(t,e,r,n,i,a,s){var l=t-r,u=e-n,h=(s?a:-a)/Td(l*l+u*u),f=h*u,d=-h*l,p=t+f,m=e+d,g=r+f,y=n+d,v=(p+g)/2,x=(m+y)/2,b=g-p,w=y-m,C=b*b+w*w,T=i-a,E=p*y-g*m,A=(w<0?-1:1)*Td(UW(0,T*T*C-E*E)),S=(E*w-b*A)/C,_=(-E*b-w*A)/C,I=(E*w+b*A)/C,D=(-E*b+w*A)/C,k=S-v,L=_-x,R=I-v,O=D-x;return k*k+L*L>R*R+O*O&&(S=I,_=D),{cx:S,cy:_,x01:-f,y01:-d,x11:S*(i/T-1),y11:_*(i/T-1)}}function bl(){var t=Fke,e=$ke,r=Bn(0),n=null,i=zke,a=Gke,s=Vke,l=null,u=N5(h);function h(){var f,d,p=+t.apply(this,arguments),m=+e.apply(this,arguments),g=i.apply(this,arguments)-Dv,y=a.apply(this,arguments)-Dv,v=t9(y-g),x=y>g;if(l||(l=f=u()),m<p&&(d=m,m=p,p=d),!(m>Zi))l.moveTo(0,0);else if(v>O0-Zi)l.moveTo(m*_h(g),m*xl(g)),l.arc(0,0,m,g,y,!x),p>Zi&&(l.moveTo(p*_h(y),p*xl(y)),l.arc(0,0,p,y,g,x));else{var b=g,w=y,C=g,T=y,E=v,A=v,S=s.apply(this,arguments)/2,_=S>Zi&&(n?+n.apply(this,arguments):Td(p*p+m*m)),I=L5(t9(m-p)/2,+r.apply(this,arguments)),D=I,k=I,L,R;if(_>Zi){var O=r9(_/p*xl(S)),M=r9(_/m*xl(S));(E-=O*2)>Zi?(O*=x?1:-1,C+=O,T-=O):(E=0,C=T=(g+y)/2),(A-=M*2)>Zi?(M*=x?1:-1,b+=M,w-=M):(A=0,b=w=(g+y)/2)}var B=m*_h(b),F=m*xl(b),P=p*_h(T),z=p*xl(T);if(I>Zi){var $=m*_h(w),H=m*xl(w),Q=p*_h(C),j=p*xl(C),ie;if(v<I0)if(ie=Uke(B,F,Q,j,$,H,P,z)){var ne=B-ie[0],le=F-ie[1],he=$-ie[0],K=H-ie[1],X=1/xl(HW((ne*he+le*K)/(Td(ne*ne+le*le)*Td(he*he+K*K)))/2),te=Td(ie[0]*ie[0]+ie[1]*ie[1]);D=L5(I,(p-te)/(X-1)),k=L5(I,(m-te)/(X+1))}else D=k=0}A>Zi?k>Zi?(L=M5(Q,j,B,F,m,k,x),R=M5($,H,P,z,m,k,x),l.moveTo(L.cx+L.x01,L.cy+L.y01),k<I?l.arc(L.cx,L.cy,k,fa(L.y01,L.x01),fa(R.y01,R.x01),!x):(l.arc(L.cx,L.cy,k,fa(L.y01,L.x01),fa(L.y11,L.x11),!x),l.arc(0,0,m,fa(L.cy+L.y11,L.cx+L.x11),fa(R.cy+R.y11,R.cx+R.x11),!x),l.arc(R.cx,R.cy,k,fa(R.y11,R.x11),fa(R.y01,R.x01),!x))):(l.moveTo(B,F),l.arc(0,0,m,b,w,!x)):l.moveTo(B,F),!(p>Zi)||!(E>Zi)?l.lineTo(P,z):D>Zi?(L=M5(P,z,$,H,p,-D,x),R=M5(B,F,Q,j,p,-D,x),l.lineTo(L.cx+L.x01,L.cy+L.y01),D<I?l.arc(L.cx,L.cy,D,fa(L.y01,L.x01),fa(R.y01,R.x01),!x):(l.arc(L.cx,L.cy,D,fa(L.y01,L.x01),fa(L.y11,L.x11),!x),l.arc(0,0,p,fa(L.cy+L.y11,L.cx+L.x11),fa(R.cy+R.y11,R.cx+R.x11),x),l.arc(R.cx,R.cy,D,fa(R.y11,R.x11),fa(R.y01,R.x01),!x))):l.arc(0,0,p,T,C,x)}if(l.closePath(),f)return l=null,f+""||null}return o(h,"arc"),h.centroid=function(){var f=(+t.apply(this,arguments)+ +e.apply(this,arguments))/2,d=(+i.apply(this,arguments)+ +a.apply(this,arguments))/2-I0/2;return[_h(d)*f,xl(d)*f]},h.innerRadius=function(f){return arguments.length?(t=typeof f=="function"?f:Bn(+f),h):t},h.outerRadius=function(f){return arguments.length?(e=typeof f=="function"?f:Bn(+f),h):e},h.cornerRadius=function(f){return arguments.length?(r=typeof f=="function"?f:Bn(+f),h):r},h.padRadius=function(f){return arguments.length?(n=f==null?null:typeof f=="function"?f:Bn(+f),h):n},h.startAngle=function(f){return arguments.length?(i=typeof f=="function"?f:Bn(+f),h):i},h.endAngle=function(f){return arguments.length?(a=typeof f=="function"?f:Bn(+f),h):a},h.padAngle=function(f){return arguments.length?(s=typeof f=="function"?f:Bn(+f),h):s},h.context=function(f){return arguments.length?(l=f??null,h):l},h}var WW=N(()=>{"use strict";D5();R5();n9();o(Fke,"arcInnerRadius");o($ke,"arcOuterRadius");o(zke,"arcStartAngle");o(Gke,"arcEndAngle");o(Vke,"arcPadAngle");o(Uke,"intersect");o(M5,"cornerTangents");o(bl,"default")});function Lv(t){return typeof t=="object"&&"length"in t?t:Array.from(t)}var Nyt,i9=N(()=>{"use strict";Nyt=Array.prototype.slice;o(Lv,"default")});function qW(t){this._context=t}function wu(t){return new qW(t)}var a9=N(()=>{"use strict";o(qW,"Linear");qW.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._point=0},"lineStart"),lineEnd:o(function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},"lineEnd"),point:o(function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:this._context.lineTo(t,e);break}},"point")};o(wu,"default")});function YW(t){return t[0]}function XW(t){return t[1]}var jW=N(()=>{"use strict";o(YW,"x");o(XW,"y")});function wl(t,e){var r=Bn(!0),n=null,i=wu,a=null,s=N5(l);t=typeof t=="function"?t:t===void 0?YW:Bn(t),e=typeof e=="function"?e:e===void 0?XW:Bn(e);function l(u){var h,f=(u=Lv(u)).length,d,p=!1,m;for(n==null&&(a=i(m=s())),h=0;h<=f;++h)!(h<f&&r(d=u[h],h,u))===p&&((p=!p)?a.lineStart():a.lineEnd()),p&&a.point(+t(d,h,u),+e(d,h,u));if(m)return a=null,m+""||null}return o(l,"line"),l.x=function(u){return arguments.length?(t=typeof u=="function"?u:Bn(+u),l):t},l.y=function(u){return arguments.length?(e=typeof u=="function"?u:Bn(+u),l):e},l.defined=function(u){return arguments.length?(r=typeof u=="function"?u:Bn(!!u),l):r},l.curve=function(u){return arguments.length?(i=u,n!=null&&(a=i(n)),l):i},l.context=function(u){return arguments.length?(u==null?n=a=null:a=i(n=u),l):n},l}var KW=N(()=>{"use strict";i9();D5();a9();n9();jW();o(wl,"default")});function s9(t,e){return e<t?-1:e>t?1:e>=t?0:NaN}var QW=N(()=>{"use strict";o(s9,"default")});function o9(t){return t}var ZW=N(()=>{"use strict";o(o9,"default")});function I5(){var t=o9,e=s9,r=null,n=Bn(0),i=Bn(O0),a=Bn(0);function s(l){var u,h=(l=Lv(l)).length,f,d,p=0,m=new Array(h),g=new Array(h),y=+n.apply(this,arguments),v=Math.min(O0,Math.max(-O0,i.apply(this,arguments)-y)),x,b=Math.min(Math.abs(v)/h,a.apply(this,arguments)),w=b*(v<0?-1:1),C;for(u=0;u<h;++u)(C=g[m[u]=u]=+t(l[u],u,l))>0&&(p+=C);for(e!=null?m.sort(function(T,E){return e(g[T],g[E])}):r!=null&&m.sort(function(T,E){return r(l[T],l[E])}),u=0,d=p?(v-h*w)/p:0;u<h;++u,y=x)f=m[u],C=g[f],x=y+(C>0?C*d:0)+w,g[f]={data:l[f],index:u,value:C,startAngle:y,endAngle:x,padAngle:b};return g}return o(s,"pie"),s.value=function(l){return arguments.length?(t=typeof l=="function"?l:Bn(+l),s):t},s.sortValues=function(l){return arguments.length?(e=l,r=null,s):e},s.sort=function(l){return arguments.length?(r=l,e=null,s):r},s.startAngle=function(l){return arguments.length?(n=typeof l=="function"?l:Bn(+l),s):n},s.endAngle=function(l){return arguments.length?(i=typeof l=="function"?l:Bn(+l),s):i},s.padAngle=function(l){return arguments.length?(a=typeof l=="function"?l:Bn(+l),s):a},s}var JW=N(()=>{"use strict";i9();D5();QW();ZW();R5();o(I5,"default")});function Rv(t){return new O5(t,!0)}function Nv(t){return new O5(t,!1)}var O5,eq=N(()=>{"use strict";O5=class{static{o(this,"Bump")}constructor(e,r){this._context=e,this._x=r}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line}point(e,r){switch(e=+e,r=+r,this._point){case 0:{this._point=1,this._line?this._context.lineTo(e,r):this._context.moveTo(e,r);break}case 1:this._point=2;default:{this._x?this._context.bezierCurveTo(this._x0=(this._x0+e)/2,this._y0,this._x0,r,e,r):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+r)/2,e,this._y0,e,r);break}}this._x0=e,this._y0=r}};o(Rv,"bumpX");o(Nv,"bumpY")});function Zs(){}var Mv=N(()=>{"use strict";o(Zs,"default")});function P0(t,e,r){t._context.bezierCurveTo((2*t._x0+t._x1)/3,(2*t._y0+t._y1)/3,(t._x0+2*t._x1)/3,(t._y0+2*t._y1)/3,(t._x0+4*t._x1+e)/6,(t._y0+4*t._y1+r)/6)}function Iv(t){this._context=t}function Do(t){return new Iv(t)}var Ov=N(()=>{"use strict";o(P0,"point");o(Iv,"Basis");Iv.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},"lineStart"),lineEnd:o(function(){switch(this._point){case 3:P0(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},"lineEnd"),point:o(function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:P0(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e},"point")};o(Do,"default")});function tq(t){this._context=t}function P5(t){return new tq(t)}var rq=N(()=>{"use strict";Mv();Ov();o(tq,"BasisClosed");tq.prototype={areaStart:Zs,areaEnd:Zs,lineStart:o(function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},"lineStart"),lineEnd:o(function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},"lineEnd"),point:o(function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x2=t,this._y2=e;break;case 1:this._point=2,this._x3=t,this._y3=e;break;case 2:this._point=3,this._x4=t,this._y4=e,this._context.moveTo((this._x0+4*this._x1+t)/6,(this._y0+4*this._y1+e)/6);break;default:P0(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e},"point")};o(P5,"default")});function nq(t){this._context=t}function B5(t){return new nq(t)}var iq=N(()=>{"use strict";Ov();o(nq,"BasisOpen");nq.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},"lineStart"),lineEnd:o(function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},"lineEnd"),point:o(function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var r=(this._x0+4*this._x1+t)/6,n=(this._y0+4*this._y1+e)/6;this._line?this._context.lineTo(r,n):this._context.moveTo(r,n);break;case 3:this._point=4;default:P0(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e},"point")};o(B5,"default")});function aq(t,e){this._basis=new Iv(t),this._beta=e}var l9,sq=N(()=>{"use strict";Ov();o(aq,"Bundle");aq.prototype={lineStart:o(function(){this._x=[],this._y=[],this._basis.lineStart()},"lineStart"),lineEnd:o(function(){var t=this._x,e=this._y,r=t.length-1;if(r>0)for(var n=t[0],i=e[0],a=t[r]-n,s=e[r]-i,l=-1,u;++l<=r;)u=l/r,this._basis.point(this._beta*t[l]+(1-this._beta)*(n+u*a),this._beta*e[l]+(1-this._beta)*(i+u*s));this._x=this._y=null,this._basis.lineEnd()},"lineEnd"),point:o(function(t,e){this._x.push(+t),this._y.push(+e)},"point")};l9=o(function t(e){function r(n){return e===1?new Iv(n):new aq(n,e)}return o(r,"bundle"),r.beta=function(n){return t(+n)},r},"custom")(.85)});function B0(t,e,r){t._context.bezierCurveTo(t._x1+t._k*(t._x2-t._x0),t._y1+t._k*(t._y2-t._y0),t._x2+t._k*(t._x1-e),t._y2+t._k*(t._y1-r),t._x2,t._y2)}function F5(t,e){this._context=t,this._k=(1-e)/6}var Pv,Bv=N(()=>{"use strict";o(B0,"point");o(F5,"Cardinal");F5.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},"lineStart"),lineEnd:o(function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:B0(this,this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},"lineEnd"),point:o(function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2,this._x1=t,this._y1=e;break;case 2:this._point=3;default:B0(this,t,e);break}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e},"point")};Pv=o(function t(e){function r(n){return new F5(n,e)}return o(r,"cardinal"),r.tension=function(n){return t(+n)},r},"custom")(0)});function $5(t,e){this._context=t,this._k=(1-e)/6}var c9,u9=N(()=>{"use strict";Mv();Bv();o($5,"CardinalClosed");$5.prototype={areaStart:Zs,areaEnd:Zs,lineStart:o(function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},"lineStart"),lineEnd:o(function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},"lineEnd"),point:o(function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:B0(this,t,e);break}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e},"point")};c9=o(function t(e){function r(n){return new $5(n,e)}return o(r,"cardinal"),r.tension=function(n){return t(+n)},r},"custom")(0)});function z5(t,e){this._context=t,this._k=(1-e)/6}var h9,f9=N(()=>{"use strict";Bv();o(z5,"CardinalOpen");z5.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},"lineStart"),lineEnd:o(function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},"lineEnd"),point:o(function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:B0(this,t,e);break}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e},"point")};h9=o(function t(e){function r(n){return new z5(n,e)}return o(r,"cardinal"),r.tension=function(n){return t(+n)},r},"custom")(0)});function Fv(t,e,r){var n=t._x1,i=t._y1,a=t._x2,s=t._y2;if(t._l01_a>Zi){var l=2*t._l01_2a+3*t._l01_a*t._l12_a+t._l12_2a,u=3*t._l01_a*(t._l01_a+t._l12_a);n=(n*l-t._x0*t._l12_2a+t._x2*t._l01_2a)/u,i=(i*l-t._y0*t._l12_2a+t._y2*t._l01_2a)/u}if(t._l23_a>Zi){var h=2*t._l23_2a+3*t._l23_a*t._l12_a+t._l12_2a,f=3*t._l23_a*(t._l23_a+t._l12_a);a=(a*h+t._x1*t._l23_2a-e*t._l12_2a)/f,s=(s*h+t._y1*t._l23_2a-r*t._l12_2a)/f}t._context.bezierCurveTo(n,i,a,s,t._x2,t._y2)}function oq(t,e){this._context=t,this._alpha=e}var $v,G5=N(()=>{"use strict";R5();Bv();o(Fv,"point");o(oq,"CatmullRom");oq.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},"lineStart"),lineEnd:o(function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},"lineEnd"),point:o(function(t,e){if(t=+t,e=+e,this._point){var r=this._x2-t,n=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(r*r+n*n,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3;default:Fv(this,t,e);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e},"point")};$v=o(function t(e){function r(n){return e?new oq(n,e):new F5(n,0)}return o(r,"catmullRom"),r.alpha=function(n){return t(+n)},r},"custom")(.5)});function lq(t,e){this._context=t,this._alpha=e}var d9,cq=N(()=>{"use strict";u9();Mv();G5();o(lq,"CatmullRomClosed");lq.prototype={areaStart:Zs,areaEnd:Zs,lineStart:o(function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},"lineStart"),lineEnd:o(function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},"lineEnd"),point:o(function(t,e){if(t=+t,e=+e,this._point){var r=this._x2-t,n=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(r*r+n*n,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:Fv(this,t,e);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e},"point")};d9=o(function t(e){function r(n){return e?new lq(n,e):new $5(n,0)}return o(r,"catmullRom"),r.alpha=function(n){return t(+n)},r},"custom")(.5)});function uq(t,e){this._context=t,this._alpha=e}var p9,hq=N(()=>{"use strict";f9();G5();o(uq,"CatmullRomOpen");uq.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},"lineStart"),lineEnd:o(function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},"lineEnd"),point:o(function(t,e){if(t=+t,e=+e,this._point){var r=this._x2-t,n=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(r*r+n*n,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:Fv(this,t,e);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e},"point")};p9=o(function t(e){function r(n){return e?new uq(n,e):new z5(n,0)}return o(r,"catmullRom"),r.alpha=function(n){return t(+n)},r},"custom")(.5)});function fq(t){this._context=t}function V5(t){return new fq(t)}var dq=N(()=>{"use strict";Mv();o(fq,"LinearClosed");fq.prototype={areaStart:Zs,areaEnd:Zs,lineStart:o(function(){this._point=0},"lineStart"),lineEnd:o(function(){this._point&&this._context.closePath()},"lineEnd"),point:o(function(t,e){t=+t,e=+e,this._point?this._context.lineTo(t,e):(this._point=1,this._context.moveTo(t,e))},"point")};o(V5,"default")});function pq(t){return t<0?-1:1}function mq(t,e,r){var n=t._x1-t._x0,i=e-t._x1,a=(t._y1-t._y0)/(n||i<0&&-0),s=(r-t._y1)/(i||n<0&&-0),l=(a*i+s*n)/(n+i);return(pq(a)+pq(s))*Math.min(Math.abs(a),Math.abs(s),.5*Math.abs(l))||0}function gq(t,e){var r=t._x1-t._x0;return r?(3*(t._y1-t._y0)/r-e)/2:e}function m9(t,e,r){var n=t._x0,i=t._y0,a=t._x1,s=t._y1,l=(a-n)/3;t._context.bezierCurveTo(n+l,i+l*e,a-l,s-l*r,a,s)}function U5(t){this._context=t}function yq(t){this._context=new vq(t)}function vq(t){this._context=t}function zv(t){return new U5(t)}function Gv(t){return new yq(t)}var xq=N(()=>{"use strict";o(pq,"sign");o(mq,"slope3");o(gq,"slope2");o(m9,"point");o(U5,"MonotoneX");U5.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},"lineStart"),lineEnd:o(function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:m9(this,this._t0,gq(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},"lineEnd"),point:o(function(t,e){var r=NaN;if(t=+t,e=+e,!(t===this._x1&&e===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,m9(this,gq(this,r=mq(this,t,e)),r);break;default:m9(this,this._t0,r=mq(this,t,e));break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e,this._t0=r}},"point")};o(yq,"MonotoneY");(yq.prototype=Object.create(U5.prototype)).point=function(t,e){U5.prototype.point.call(this,e,t)};o(vq,"ReflectContext");vq.prototype={moveTo:o(function(t,e){this._context.moveTo(e,t)},"moveTo"),closePath:o(function(){this._context.closePath()},"closePath"),lineTo:o(function(t,e){this._context.lineTo(e,t)},"lineTo"),bezierCurveTo:o(function(t,e,r,n,i,a){this._context.bezierCurveTo(e,t,n,r,a,i)},"bezierCurveTo")};o(zv,"monotoneX");o(Gv,"monotoneY")});function wq(t){this._context=t}function bq(t){var e,r=t.length-1,n,i=new Array(r),a=new Array(r),s=new Array(r);for(i[0]=0,a[0]=2,s[0]=t[0]+2*t[1],e=1;e<r-1;++e)i[e]=1,a[e]=4,s[e]=4*t[e]+2*t[e+1];for(i[r-1]=2,a[r-1]=7,s[r-1]=8*t[r-1]+t[r],e=1;e<r;++e)n=i[e]/a[e-1],a[e]-=n,s[e]-=n*s[e-1];for(i[r-1]=s[r-1]/a[r-1],e=r-2;e>=0;--e)i[e]=(s[e]-i[e+1])/a[e];for(a[r-1]=(t[r]+i[r-1])/2,e=0;e<r-1;++e)a[e]=2*t[e+1]-i[e+1];return[i,a]}function F0(t){return new wq(t)}var Tq=N(()=>{"use strict";o(wq,"Natural");wq.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._x=[],this._y=[]},"lineStart"),lineEnd:o(function(){var t=this._x,e=this._y,r=t.length;if(r)if(this._line?this._context.lineTo(t[0],e[0]):this._context.moveTo(t[0],e[0]),r===2)this._context.lineTo(t[1],e[1]);else for(var n=bq(t),i=bq(e),a=0,s=1;s<r;++a,++s)this._context.bezierCurveTo(n[0][a],i[0][a],n[1][a],i[1][a],t[s],e[s]);(this._line||this._line!==0&&r===1)&&this._context.closePath(),this._line=1-this._line,this._x=this._y=null},"lineEnd"),point:o(function(t,e){this._x.push(+t),this._y.push(+e)},"point")};o(bq,"controlPoints");o(F0,"default")});function H5(t,e){this._context=t,this._t=e}function $0(t){return new H5(t,.5)}function Vv(t){return new H5(t,0)}function Uv(t){return new H5(t,1)}var kq=N(()=>{"use strict";o(H5,"Step");H5.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._x=this._y=NaN,this._point=0},"lineStart"),lineEnd:o(function(){0<this._t&&this._t<1&&this._point===2&&this._context.lineTo(this._x,this._y),(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line>=0&&(this._t=1-this._t,this._line=1-this._line)},"lineEnd"),point:o(function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,e),this._context.lineTo(t,e);else{var r=this._x*(1-this._t)+t*this._t;this._context.lineTo(r,this._y),this._context.lineTo(r,e)}break}}this._x=t,this._y=e},"point")};o($0,"default");o(Vv,"stepBefore");o(Uv,"stepAfter")});var Eq=N(()=>{"use strict";WW();KW();JW();rq();iq();Ov();eq();sq();u9();f9();Bv();cq();hq();G5();dq();a9();xq();Tq();kq()});var Sq=N(()=>{"use strict"});var Cq=N(()=>{"use strict"});function Dh(t,e,r){this.k=t,this.x=e,this.y=r}function y9(t){for(;!t.__zoom;)if(!(t=t.parentNode))return g9;return t.__zoom}var g9,v9=N(()=>{"use strict";o(Dh,"Transform");Dh.prototype={constructor:Dh,scale:o(function(t){return t===1?this:new Dh(this.k*t,this.x,this.y)},"scale"),translate:o(function(t,e){return t===0&e===0?this:new Dh(this.k,this.x+this.k*t,this.y+this.k*e)},"translate"),apply:o(function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},"apply"),applyX:o(function(t){return t*this.k+this.x},"applyX"),applyY:o(function(t){return t*this.k+this.y},"applyY"),invert:o(function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},"invert"),invertX:o(function(t){return(t-this.x)/this.k},"invertX"),invertY:o(function(t){return(t-this.y)/this.k},"invertY"),rescaleX:o(function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},"rescaleX"),rescaleY:o(function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},"rescaleY"),toString:o(function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"},"toString")};g9=new Dh(1,0,0);y9.prototype=Dh.prototype;o(y9,"transform")});var Aq=N(()=>{"use strict"});var _q=N(()=>{"use strict";l5();Sq();Cq();v9();Aq()});var Dq=N(()=>{"use strict";_q();v9()});var dr=N(()=>{"use strict";vh();sV();SH();DH();E0();LH();RH();TA();QV();NH();u_();MH();OH();A_();jH();KH();A0();m_();QH();IH();ZH();$W();VW();fl();Eq();A5();Z_();r5();l5();Dq()});var Lq=Mi(Ji=>{"use strict";Object.defineProperty(Ji,"__esModule",{value:!0});Ji.BLANK_URL=Ji.relativeFirstCharacters=Ji.whitespaceEscapeCharsRegex=Ji.urlSchemeRegex=Ji.ctrlCharactersRegex=Ji.htmlCtrlEntityRegex=Ji.htmlEntitiesRegex=Ji.invalidProtocolRegex=void 0;Ji.invalidProtocolRegex=/^([^\w]*)(javascript|data|vbscript)/im;Ji.htmlEntitiesRegex=/&#(\w+)(^\w|;)?/g;Ji.htmlCtrlEntityRegex=/&(newline|tab);/gi;Ji.ctrlCharactersRegex=/[\u0000-\u001F\u007F-\u009F\u2000-\u200D\uFEFF]/gim;Ji.urlSchemeRegex=/^.+(:|&colon;)/gim;Ji.whitespaceEscapeCharsRegex=/(\\|%5[cC])((%(6[eE]|72|74))|[nrt])/g;Ji.relativeFirstCharacters=[".","/"];Ji.BLANK_URL="about:blank"});var z0=Mi(W5=>{"use strict";Object.defineProperty(W5,"__esModule",{value:!0});W5.sanitizeUrl=void 0;var Aa=Lq();function Hke(t){return Aa.relativeFirstCharacters.indexOf(t[0])>-1}o(Hke,"isRelativeUrlWithoutProtocol");function Wke(t){var e=t.replace(Aa.ctrlCharactersRegex,"");return e.replace(Aa.htmlEntitiesRegex,function(r,n){return String.fromCharCode(n)})}o(Wke,"decodeHtmlCharacters");function qke(t){return URL.canParse(t)}o(qke,"isValidUrl");function Rq(t){try{return decodeURIComponent(t)}catch{return t}}o(Rq,"decodeURI");function Yke(t){if(!t)return Aa.BLANK_URL;var e,r=Rq(t.trim());do r=Wke(r).replace(Aa.htmlCtrlEntityRegex,"").replace(Aa.ctrlCharactersRegex,"").replace(Aa.whitespaceEscapeCharsRegex,"").trim(),r=Rq(r),e=r.match(Aa.ctrlCharactersRegex)||r.match(Aa.htmlEntitiesRegex)||r.match(Aa.htmlCtrlEntityRegex)||r.match(Aa.whitespaceEscapeCharsRegex);while(e&&e.length>0);var n=r;if(!n)return Aa.BLANK_URL;if(Hke(n))return n;var i=n.trimStart(),a=i.match(Aa.urlSchemeRegex);if(!a)return n;var s=a[0].toLowerCase().trim();if(Aa.invalidProtocolRegex.test(s))return Aa.BLANK_URL;var l=i.replace(/\\/g,"/");if(s==="mailto:"||s.includes("://"))return l;if(s==="http:"||s==="https:"){if(!qke(l))return Aa.BLANK_URL;var u=new URL(l);return u.protocol=u.protocol.toLowerCase(),u.hostname=u.hostname.toLowerCase(),u.toString()}return l}o(Yke,"sanitizeUrl");W5.sanitizeUrl=Yke});var x9,kd,q5,Nq,Mq,Iq,Tl,Hv,Wv=N(()=>{"use strict";x9=Sa(z0(),1);gr();kd=o((t,e)=>{let r=t.append("rect");if(r.attr("x",e.x),r.attr("y",e.y),r.attr("fill",e.fill),r.attr("stroke",e.stroke),r.attr("width",e.width),r.attr("height",e.height),e.name&&r.attr("name",e.name),e.rx&&r.attr("rx",e.rx),e.ry&&r.attr("ry",e.ry),e.attrs!==void 0)for(let n in e.attrs)r.attr(n,e.attrs[n]);return e.class&&r.attr("class",e.class),r},"drawRect"),q5=o((t,e)=>{let r={x:e.startx,y:e.starty,width:e.stopx-e.startx,height:e.stopy-e.starty,fill:e.fill,stroke:e.stroke,class:"rect"};kd(t,r).lower()},"drawBackgroundRect"),Nq=o((t,e)=>{let r=e.text.replace(nd," "),n=t.append("text");n.attr("x",e.x),n.attr("y",e.y),n.attr("class","legend"),n.style("text-anchor",e.anchor),e.class&&n.attr("class",e.class);let i=n.append("tspan");return i.attr("x",e.x+e.textMargin*2),i.text(r),n},"drawText"),Mq=o((t,e,r,n)=>{let i=t.append("image");i.attr("x",e),i.attr("y",r);let a=(0,x9.sanitizeUrl)(n);i.attr("xlink:href",a)},"drawImage"),Iq=o((t,e,r,n)=>{let i=t.append("use");i.attr("x",e),i.attr("y",r);let a=(0,x9.sanitizeUrl)(n);i.attr("xlink:href",`#${a}`)},"drawEmbeddedImage"),Tl=o(()=>({x:0,y:0,width:100,height:100,fill:"#EDF2AE",stroke:"#666",anchor:"start",rx:0,ry:0}),"getNoteRect"),Hv=o(()=>({x:0,y:0,width:100,height:100,"text-anchor":"start",style:"#666",textMargin:0,rx:0,ry:0,tspan:!0}),"getTextObj")});var Oq,b9,Pq,Xke,jke,Kke,Qke,Zke,Jke,eEe,tEe,rEe,nEe,iEe,aEe,Tu,kl,Bq=N(()=>{"use strict";gr();Wv();Oq=Sa(z0(),1),b9=o(function(t,e){return kd(t,e)},"drawRect"),Pq=o(function(t,e,r,n,i,a){let s=t.append("image");s.attr("width",e),s.attr("height",r),s.attr("x",n),s.attr("y",i);let l=a.startsWith("data:image/png;base64")?a:(0,Oq.sanitizeUrl)(a);s.attr("xlink:href",l)},"drawImage"),Xke=o((t,e,r)=>{let n=t.append("g"),i=0;for(let a of e){let s=a.textColor?a.textColor:"#444444",l=a.lineColor?a.lineColor:"#444444",u=a.offsetX?parseInt(a.offsetX):0,h=a.offsetY?parseInt(a.offsetY):0,f="";if(i===0){let p=n.append("line");p.attr("x1",a.startPoint.x),p.attr("y1",a.startPoint.y),p.attr("x2",a.endPoint.x),p.attr("y2",a.endPoint.y),p.attr("stroke-width","1"),p.attr("stroke",l),p.style("fill","none"),a.type!=="rel_b"&&p.attr("marker-end","url("+f+"#arrowhead)"),(a.type==="birel"||a.type==="rel_b")&&p.attr("marker-start","url("+f+"#arrowend)"),i=-1}else{let p=n.append("path");p.attr("fill","none").attr("stroke-width","1").attr("stroke",l).attr("d","Mstartx,starty Qcontrolx,controly stopx,stopy ".replaceAll("startx",a.startPoint.x).replaceAll("starty",a.startPoint.y).replaceAll("controlx",a.startPoint.x+(a.endPoint.x-a.startPoint.x)/2-(a.endPoint.x-a.startPoint.x)/4).replaceAll("controly",a.startPoint.y+(a.endPoint.y-a.startPoint.y)/2).replaceAll("stopx",a.endPoint.x).replaceAll("stopy",a.endPoint.y)),a.type!=="rel_b"&&p.attr("marker-end","url("+f+"#arrowhead)"),(a.type==="birel"||a.type==="rel_b")&&p.attr("marker-start","url("+f+"#arrowend)")}let d=r.messageFont();Tu(r)(a.label.text,n,Math.min(a.startPoint.x,a.endPoint.x)+Math.abs(a.endPoint.x-a.startPoint.x)/2+u,Math.min(a.startPoint.y,a.endPoint.y)+Math.abs(a.endPoint.y-a.startPoint.y)/2+h,a.label.width,a.label.height,{fill:s},d),a.techn&&a.techn.text!==""&&(d=r.messageFont(),Tu(r)("["+a.techn.text+"]",n,Math.min(a.startPoint.x,a.endPoint.x)+Math.abs(a.endPoint.x-a.startPoint.x)/2+u,Math.min(a.startPoint.y,a.endPoint.y)+Math.abs(a.endPoint.y-a.startPoint.y)/2+r.messageFontSize+5+h,Math.max(a.label.width,a.techn.width),a.techn.height,{fill:s,"font-style":"italic"},d))}},"drawRels"),jke=o(function(t,e,r){let n=t.append("g"),i=e.bgColor?e.bgColor:"none",a=e.borderColor?e.borderColor:"#444444",s=e.fontColor?e.fontColor:"black",l={"stroke-width":1,"stroke-dasharray":"7.0,7.0"};e.nodeType&&(l={"stroke-width":1});let u={x:e.x,y:e.y,fill:i,stroke:a,width:e.width,height:e.height,rx:2.5,ry:2.5,attrs:l};b9(n,u);let h=r.boundaryFont();h.fontWeight="bold",h.fontSize=h.fontSize+2,h.fontColor=s,Tu(r)(e.label.text,n,e.x,e.y+e.label.Y,e.width,e.height,{fill:"#444444"},h),e.type&&e.type.text!==""&&(h=r.boundaryFont(),h.fontColor=s,Tu(r)(e.type.text,n,e.x,e.y+e.type.Y,e.width,e.height,{fill:"#444444"},h)),e.descr&&e.descr.text!==""&&(h=r.boundaryFont(),h.fontSize=h.fontSize-2,h.fontColor=s,Tu(r)(e.descr.text,n,e.x,e.y+e.descr.Y,e.width,e.height,{fill:"#444444"},h))},"drawBoundary"),Kke=o(function(t,e,r){let n=e.bgColor?e.bgColor:r[e.typeC4Shape.text+"_bg_color"],i=e.borderColor?e.borderColor:r[e.typeC4Shape.text+"_border_color"],a=e.fontColor?e.fontColor:"#FFFFFF",s="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=";switch(e.typeC4Shape.text){case"person":s="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=";break;case"external_person":s="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAAB6ElEQVR4Xu2YLY+EMBCG9+dWr0aj0Wg0Go1Go0+j8Xdv2uTCvv1gpt0ebHKPuhDaeW4605Z9mJvx4AdXUyTUdd08z+u6flmWZRnHsWkafk9DptAwDPu+f0eAYtu2PEaGWuj5fCIZrBAC2eLBAnRCsEkkxmeaJp7iDJ2QMDdHsLg8SxKFEJaAo8lAXnmuOFIhTMpxxKATebo4UiFknuNo4OniSIXQyRxEA3YsnjGCVEjVXD7yLUAqxBGUyPv/Y4W2beMgGuS7kVQIBycH0fD+oi5pezQETxdHKmQKGk1eQEYldK+jw5GxPfZ9z7Mk0Qnhf1W1m3w//EUn5BDmSZsbR44QQLBEqrBHqOrmSKaQAxdnLArCrxZcM7A7ZKs4ioRq8LFC+NpC3WCBJsvpVw5edm9iEXFuyNfxXAgSwfrFQ1c0iNda8AdejvUgnktOtJQQxmcfFzGglc5WVCj7oDgFqU18boeFSs52CUh8LE8BIVQDT1ABrB0HtgSEYlX5doJnCwv9TXocKCaKbnwhdDKPq4lf3SwU3HLq4V/+WYhHVMa/3b4IlfyikAduCkcBc7mQ3/z/Qq/cTuikhkzB12Ae/mcJC9U+Vo8Ej1gWAtgbeGgFsAMHr50BIWOLCbezvhpBFUdY6EJuJ/QDW0XoMX60zZ0AAAAASUVORK5CYII=";break}let l=t.append("g");l.attr("class","person-man");let u=Tl();switch(e.typeC4Shape.text){case"person":case"external_person":case"system":case"external_system":case"container":case"external_container":case"component":case"external_component":u.x=e.x,u.y=e.y,u.fill=n,u.width=e.width,u.height=e.height,u.stroke=i,u.rx=2.5,u.ry=2.5,u.attrs={"stroke-width":.5},b9(l,u);break;case"system_db":case"external_system_db":case"container_db":case"external_container_db":case"component_db":case"external_component_db":l.append("path").attr("fill",n).attr("stroke-width","0.5").attr("stroke",i).attr("d","Mstartx,startyc0,-10 half,-10 half,-10c0,0 half,0 half,10l0,heightc0,10 -half,10 -half,10c0,0 -half,0 -half,-10l0,-height".replaceAll("startx",e.x).replaceAll("starty",e.y).replaceAll("half",e.width/2).replaceAll("height",e.height)),l.append("path").attr("fill","none").attr("stroke-width","0.5").attr("stroke",i).attr("d","Mstartx,startyc0,10 half,10 half,10c0,0 half,0 half,-10".replaceAll("startx",e.x).replaceAll("starty",e.y).replaceAll("half",e.width/2));break;case"system_queue":case"external_system_queue":case"container_queue":case"external_container_queue":case"component_queue":case"external_component_queue":l.append("path").attr("fill",n).attr("stroke-width","0.5").attr("stroke",i).attr("d","Mstartx,startylwidth,0c5,0 5,half 5,halfc0,0 0,half -5,halfl-width,0c-5,0 -5,-half -5,-halfc0,0 0,-half 5,-half".replaceAll("startx",e.x).replaceAll("starty",e.y).replaceAll("width",e.width).replaceAll("half",e.height/2)),l.append("path").attr("fill","none").attr("stroke-width","0.5").attr("stroke",i).attr("d","Mstartx,startyc-5,0 -5,half -5,halfc0,half 5,half 5,half".replaceAll("startx",e.x+e.width).replaceAll("starty",e.y).replaceAll("half",e.height/2));break}let h=aEe(r,e.typeC4Shape.text);switch(l.append("text").attr("fill",a).attr("font-family",h.fontFamily).attr("font-size",h.fontSize-2).attr("font-style","italic").attr("lengthAdjust","spacing").attr("textLength",e.typeC4Shape.width).attr("x",e.x+e.width/2-e.typeC4Shape.width/2).attr("y",e.y+e.typeC4Shape.Y).text("<<"+e.typeC4Shape.text+">>"),e.typeC4Shape.text){case"person":case"external_person":Pq(l,48,48,e.x+e.width/2-24,e.y+e.image.Y,s);break}let f=r[e.typeC4Shape.text+"Font"]();return f.fontWeight="bold",f.fontSize=f.fontSize+2,f.fontColor=a,Tu(r)(e.label.text,l,e.x,e.y+e.label.Y,e.width,e.height,{fill:a},f),f=r[e.typeC4Shape.text+"Font"](),f.fontColor=a,e.techn&&e.techn?.text!==""?Tu(r)(e.techn.text,l,e.x,e.y+e.techn.Y,e.width,e.height,{fill:a,"font-style":"italic"},f):e.type&&e.type.text!==""&&Tu(r)(e.type.text,l,e.x,e.y+e.type.Y,e.width,e.height,{fill:a,"font-style":"italic"},f),e.descr&&e.descr.text!==""&&(f=r.personFont(),f.fontColor=a,Tu(r)(e.descr.text,l,e.x,e.y+e.descr.Y,e.width,e.height,{fill:a},f)),e.height},"drawC4Shape"),Qke=o(function(t){t.append("defs").append("symbol").attr("id","database").attr("fill-rule","evenodd").attr("clip-rule","evenodd").append("path").attr("transform","scale(.5)").attr("d","M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z")},"insertDatabaseIcon"),Zke=o(function(t){t.append("defs").append("symbol").attr("id","computer").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z")},"insertComputerIcon"),Jke=o(function(t){t.append("defs").append("symbol").attr("id","clock").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z")},"insertClockIcon"),eEe=o(function(t){t.append("defs").append("marker").attr("id","arrowhead").attr("refX",9).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z")},"insertArrowHead"),tEe=o(function(t){t.append("defs").append("marker").attr("id","arrowend").attr("refX",1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 10 0 L 0 5 L 10 10 z")},"insertArrowEnd"),rEe=o(function(t){t.append("defs").append("marker").attr("id","filled-head").attr("refX",18).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},"insertArrowFilledHead"),nEe=o(function(t){t.append("defs").append("marker").attr("id","sequencenumber").attr("refX",15).attr("refY",15).attr("markerWidth",60).attr("markerHeight",40).attr("orient","auto").append("circle").attr("cx",15).attr("cy",15).attr("r",6)},"insertDynamicNumber"),iEe=o(function(t){let r=t.append("defs").append("marker").attr("id","crosshead").attr("markerWidth",15).attr("markerHeight",8).attr("orient","auto").attr("refX",16).attr("refY",4);r.append("path").attr("fill","black").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1px").attr("d","M 9,2 V 6 L16,4 Z"),r.append("path").attr("fill","none").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1px").attr("d","M 0,1 L 6,7 M 6,1 L 0,7")},"insertArrowCrossHead"),aEe=o((t,e)=>({fontFamily:t[e+"FontFamily"],fontSize:t[e+"FontSize"],fontWeight:t[e+"FontWeight"]}),"getC4ShapeFont"),Tu=function(){function t(i,a,s,l,u,h,f){let d=a.append("text").attr("x",s+u/2).attr("y",l+h/2+5).style("text-anchor","middle").text(i);n(d,f)}o(t,"byText");function e(i,a,s,l,u,h,f,d){let{fontSize:p,fontFamily:m,fontWeight:g}=d,y=i.split(Ze.lineBreakRegex);for(let v=0;v<y.length;v++){let x=v*p-p*(y.length-1)/2,b=a.append("text").attr("x",s+u/2).attr("y",l).style("text-anchor","middle").attr("dominant-baseline","middle").style("font-size",p).style("font-weight",g).style("font-family",m);b.append("tspan").attr("dy",x).text(y[v]).attr("alignment-baseline","mathematical"),n(b,f)}}o(e,"byTspan");function r(i,a,s,l,u,h,f,d){let p=a.append("switch"),g=p.append("foreignObject").attr("x",s).attr("y",l).attr("width",u).attr("height",h).append("xhtml:div").style("display","table").style("height","100%").style("width","100%");g.append("div").style("display","table-cell").style("text-align","center").style("vertical-align","middle").text(i),e(i,p,s,l,u,h,f,d),n(g,f)}o(r,"byFo");function n(i,a){for(let s in a)a.hasOwnProperty(s)&&i.attr(s,a[s])}return o(n,"_setTextAttrs"),function(i){return i.textPlacement==="fo"?r:i.textPlacement==="old"?t:e}}(),kl={drawRect:b9,drawBoundary:jke,drawC4Shape:Kke,drawRels:Xke,drawImage:Pq,insertArrowHead:eEe,insertArrowEnd:tEe,insertArrowFilledHead:rEe,insertDynamicNumber:nEe,insertArrowCrossHead:iEe,insertDatabaseIcon:Qke,insertComputerIcon:Zke,insertClockIcon:Jke}});var sEe,X5,w9=N(()=>{"use strict";sEe=typeof global=="object"&&global&&global.Object===Object&&global,X5=sEe});var oEe,lEe,li,Lo=N(()=>{"use strict";w9();oEe=typeof self=="object"&&self&&self.Object===Object&&self,lEe=X5||oEe||Function("return this")(),li=lEe});var cEe,ea,Ed=N(()=>{"use strict";Lo();cEe=li.Symbol,ea=cEe});function fEe(t){var e=uEe.call(t,qv),r=t[qv];try{t[qv]=void 0;var n=!0}catch{}var i=hEe.call(t);return n&&(e?t[qv]=r:delete t[qv]),i}var Fq,uEe,hEe,qv,$q,zq=N(()=>{"use strict";Ed();Fq=Object.prototype,uEe=Fq.hasOwnProperty,hEe=Fq.toString,qv=ea?ea.toStringTag:void 0;o(fEe,"getRawTag");$q=fEe});function mEe(t){return pEe.call(t)}var dEe,pEe,Gq,Vq=N(()=>{"use strict";dEe=Object.prototype,pEe=dEe.toString;o(mEe,"objectToString");Gq=mEe});function vEe(t){return t==null?t===void 0?yEe:gEe:Uq&&Uq in Object(t)?$q(t):Gq(t)}var gEe,yEe,Uq,da,ku=N(()=>{"use strict";Ed();zq();Vq();gEe="[object Null]",yEe="[object Undefined]",Uq=ea?ea.toStringTag:void 0;o(vEe,"baseGetTag");da=vEe});function xEe(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}var bn,Js=N(()=>{"use strict";o(xEe,"isObject");bn=xEe});function EEe(t){if(!bn(t))return!1;var e=da(t);return e==wEe||e==TEe||e==bEe||e==kEe}var bEe,wEe,TEe,kEe,Si,Yv=N(()=>{"use strict";ku();Js();bEe="[object AsyncFunction]",wEe="[object Function]",TEe="[object GeneratorFunction]",kEe="[object Proxy]";o(EEe,"isFunction");Si=EEe});var SEe,j5,Hq=N(()=>{"use strict";Lo();SEe=li["__core-js_shared__"],j5=SEe});function CEe(t){return!!Wq&&Wq in t}var Wq,qq,Yq=N(()=>{"use strict";Hq();Wq=function(){var t=/[^.]+$/.exec(j5&&j5.keys&&j5.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}();o(CEe,"isMasked");qq=CEe});function DEe(t){if(t!=null){try{return _Ee.call(t)}catch{}try{return t+""}catch{}}return""}var AEe,_Ee,Eu,T9=N(()=>{"use strict";AEe=Function.prototype,_Ee=AEe.toString;o(DEe,"toSource");Eu=DEe});function BEe(t){if(!bn(t)||qq(t))return!1;var e=Si(t)?PEe:REe;return e.test(Eu(t))}var LEe,REe,NEe,MEe,IEe,OEe,PEe,Xq,jq=N(()=>{"use strict";Yv();Yq();Js();T9();LEe=/[\\^$.*+?()[\]{}|]/g,REe=/^\[object .+?Constructor\]$/,NEe=Function.prototype,MEe=Object.prototype,IEe=NEe.toString,OEe=MEe.hasOwnProperty,PEe=RegExp("^"+IEe.call(OEe).replace(LEe,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");o(BEe,"baseIsNative");Xq=BEe});function FEe(t,e){return t?.[e]}var Kq,Qq=N(()=>{"use strict";o(FEe,"getValue");Kq=FEe});function $Ee(t,e){var r=Kq(t,e);return Xq(r)?r:void 0}var Ss,Lh=N(()=>{"use strict";jq();Qq();o($Ee,"getNative");Ss=$Ee});var zEe,Su,Xv=N(()=>{"use strict";Lh();zEe=Ss(Object,"create"),Su=zEe});function GEe(){this.__data__=Su?Su(null):{},this.size=0}var Zq,Jq=N(()=>{"use strict";Xv();o(GEe,"hashClear");Zq=GEe});function VEe(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}var eY,tY=N(()=>{"use strict";o(VEe,"hashDelete");eY=VEe});function qEe(t){var e=this.__data__;if(Su){var r=e[t];return r===UEe?void 0:r}return WEe.call(e,t)?e[t]:void 0}var UEe,HEe,WEe,rY,nY=N(()=>{"use strict";Xv();UEe="__lodash_hash_undefined__",HEe=Object.prototype,WEe=HEe.hasOwnProperty;o(qEe,"hashGet");rY=qEe});function jEe(t){var e=this.__data__;return Su?e[t]!==void 0:XEe.call(e,t)}var YEe,XEe,iY,aY=N(()=>{"use strict";Xv();YEe=Object.prototype,XEe=YEe.hasOwnProperty;o(jEe,"hashHas");iY=jEe});function QEe(t,e){var r=this.__data__;return this.size+=this.has(t)?0:1,r[t]=Su&&e===void 0?KEe:e,this}var KEe,sY,oY=N(()=>{"use strict";Xv();KEe="__lodash_hash_undefined__";o(QEe,"hashSet");sY=QEe});function G0(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}var k9,lY=N(()=>{"use strict";Jq();tY();nY();aY();oY();o(G0,"Hash");G0.prototype.clear=Zq;G0.prototype.delete=eY;G0.prototype.get=rY;G0.prototype.has=iY;G0.prototype.set=sY;k9=G0});function ZEe(){this.__data__=[],this.size=0}var cY,uY=N(()=>{"use strict";o(ZEe,"listCacheClear");cY=ZEe});function JEe(t,e){return t===e||t!==t&&e!==e}var Ro,Sd=N(()=>{"use strict";o(JEe,"eq");Ro=JEe});function e6e(t,e){for(var r=t.length;r--;)if(Ro(t[r][0],e))return r;return-1}var Rh,jv=N(()=>{"use strict";Sd();o(e6e,"assocIndexOf");Rh=e6e});function n6e(t){var e=this.__data__,r=Rh(e,t);if(r<0)return!1;var n=e.length-1;return r==n?e.pop():r6e.call(e,r,1),--this.size,!0}var t6e,r6e,hY,fY=N(()=>{"use strict";jv();t6e=Array.prototype,r6e=t6e.splice;o(n6e,"listCacheDelete");hY=n6e});function i6e(t){var e=this.__data__,r=Rh(e,t);return r<0?void 0:e[r][1]}var dY,pY=N(()=>{"use strict";jv();o(i6e,"listCacheGet");dY=i6e});function a6e(t){return Rh(this.__data__,t)>-1}var mY,gY=N(()=>{"use strict";jv();o(a6e,"listCacheHas");mY=a6e});function s6e(t,e){var r=this.__data__,n=Rh(r,t);return n<0?(++this.size,r.push([t,e])):r[n][1]=e,this}var yY,vY=N(()=>{"use strict";jv();o(s6e,"listCacheSet");yY=s6e});function V0(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}var Nh,Kv=N(()=>{"use strict";uY();fY();pY();gY();vY();o(V0,"ListCache");V0.prototype.clear=cY;V0.prototype.delete=hY;V0.prototype.get=dY;V0.prototype.has=mY;V0.prototype.set=yY;Nh=V0});var o6e,Mh,K5=N(()=>{"use strict";Lh();Lo();o6e=Ss(li,"Map"),Mh=o6e});function l6e(){this.size=0,this.__data__={hash:new k9,map:new(Mh||Nh),string:new k9}}var xY,bY=N(()=>{"use strict";lY();Kv();K5();o(l6e,"mapCacheClear");xY=l6e});function c6e(t){var e=typeof t;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?t!=="__proto__":t===null}var wY,TY=N(()=>{"use strict";o(c6e,"isKeyable");wY=c6e});function u6e(t,e){var r=t.__data__;return wY(e)?r[typeof e=="string"?"string":"hash"]:r.map}var Ih,Qv=N(()=>{"use strict";TY();o(u6e,"getMapData");Ih=u6e});function h6e(t){var e=Ih(this,t).delete(t);return this.size-=e?1:0,e}var kY,EY=N(()=>{"use strict";Qv();o(h6e,"mapCacheDelete");kY=h6e});function f6e(t){return Ih(this,t).get(t)}var SY,CY=N(()=>{"use strict";Qv();o(f6e,"mapCacheGet");SY=f6e});function d6e(t){return Ih(this,t).has(t)}var AY,_Y=N(()=>{"use strict";Qv();o(d6e,"mapCacheHas");AY=d6e});function p6e(t,e){var r=Ih(this,t),n=r.size;return r.set(t,e),this.size+=r.size==n?0:1,this}var DY,LY=N(()=>{"use strict";Qv();o(p6e,"mapCacheSet");DY=p6e});function U0(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}var Cd,Q5=N(()=>{"use strict";bY();EY();CY();_Y();LY();o(U0,"MapCache");U0.prototype.clear=xY;U0.prototype.delete=kY;U0.prototype.get=SY;U0.prototype.has=AY;U0.prototype.set=DY;Cd=U0});function E9(t,e){if(typeof t!="function"||e!=null&&typeof e!="function")throw new TypeError(m6e);var r=o(function(){var n=arguments,i=e?e.apply(this,n):n[0],a=r.cache;if(a.has(i))return a.get(i);var s=t.apply(this,n);return r.cache=a.set(i,s)||a,s},"memoized");return r.cache=new(E9.Cache||Cd),r}var m6e,H0,S9=N(()=>{"use strict";Q5();m6e="Expected a function";o(E9,"memoize");E9.Cache=Cd;H0=E9});function g6e(){this.__data__=new Nh,this.size=0}var RY,NY=N(()=>{"use strict";Kv();o(g6e,"stackClear");RY=g6e});function y6e(t){var e=this.__data__,r=e.delete(t);return this.size=e.size,r}var MY,IY=N(()=>{"use strict";o(y6e,"stackDelete");MY=y6e});function v6e(t){return this.__data__.get(t)}var OY,PY=N(()=>{"use strict";o(v6e,"stackGet");OY=v6e});function x6e(t){return this.__data__.has(t)}var BY,FY=N(()=>{"use strict";o(x6e,"stackHas");BY=x6e});function w6e(t,e){var r=this.__data__;if(r instanceof Nh){var n=r.__data__;if(!Mh||n.length<b6e-1)return n.push([t,e]),this.size=++r.size,this;r=this.__data__=new Cd(n)}return r.set(t,e),this.size=r.size,this}var b6e,$Y,zY=N(()=>{"use strict";Kv();K5();Q5();b6e=200;o(w6e,"stackSet");$Y=w6e});function W0(t){var e=this.__data__=new Nh(t);this.size=e.size}var lc,Zv=N(()=>{"use strict";Kv();NY();IY();PY();FY();zY();o(W0,"Stack");W0.prototype.clear=RY;W0.prototype.delete=MY;W0.prototype.get=OY;W0.prototype.has=BY;W0.prototype.set=$Y;lc=W0});var T6e,q0,C9=N(()=>{"use strict";Lh();T6e=function(){try{var t=Ss(Object,"defineProperty");return t({},"",{}),t}catch{}}(),q0=T6e});function k6e(t,e,r){e=="__proto__"&&q0?q0(t,e,{configurable:!0,enumerable:!0,value:r,writable:!0}):t[e]=r}var cc,Y0=N(()=>{"use strict";C9();o(k6e,"baseAssignValue");cc=k6e});function E6e(t,e,r){(r!==void 0&&!Ro(t[e],r)||r===void 0&&!(e in t))&&cc(t,e,r)}var Jv,A9=N(()=>{"use strict";Y0();Sd();o(E6e,"assignMergeValue");Jv=E6e});function S6e(t){return function(e,r,n){for(var i=-1,a=Object(e),s=n(e),l=s.length;l--;){var u=s[t?l:++i];if(r(a[u],u,a)===!1)break}return e}}var GY,VY=N(()=>{"use strict";o(S6e,"createBaseFor");GY=S6e});var C6e,X0,Z5=N(()=>{"use strict";VY();C6e=GY(),X0=C6e});function _6e(t,e){if(e)return t.slice();var r=t.length,n=WY?WY(r):new t.constructor(r);return t.copy(n),n}var qY,UY,A6e,HY,WY,J5,_9=N(()=>{"use strict";Lo();qY=typeof exports=="object"&&exports&&!exports.nodeType&&exports,UY=qY&&typeof module=="object"&&module&&!module.nodeType&&module,A6e=UY&&UY.exports===qY,HY=A6e?li.Buffer:void 0,WY=HY?HY.allocUnsafe:void 0;o(_6e,"cloneBuffer");J5=_6e});var D6e,j0,D9=N(()=>{"use strict";Lo();D6e=li.Uint8Array,j0=D6e});function L6e(t){var e=new t.constructor(t.byteLength);return new j0(e).set(new j0(t)),e}var K0,ew=N(()=>{"use strict";D9();o(L6e,"cloneArrayBuffer");K0=L6e});function R6e(t,e){var r=e?K0(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.length)}var tw,L9=N(()=>{"use strict";ew();o(R6e,"cloneTypedArray");tw=R6e});function N6e(t,e){var r=-1,n=t.length;for(e||(e=Array(n));++r<n;)e[r]=t[r];return e}var rw,R9=N(()=>{"use strict";o(N6e,"copyArray");rw=N6e});var YY,M6e,XY,jY=N(()=>{"use strict";Js();YY=Object.create,M6e=function(){function t(){}return o(t,"object"),function(e){if(!bn(e))return{};if(YY)return YY(e);t.prototype=e;var r=new t;return t.prototype=void 0,r}}(),XY=M6e});function I6e(t,e){return function(r){return t(e(r))}}var nw,N9=N(()=>{"use strict";o(I6e,"overArg");nw=I6e});var O6e,Q0,iw=N(()=>{"use strict";N9();O6e=nw(Object.getPrototypeOf,Object),Q0=O6e});function B6e(t){var e=t&&t.constructor,r=typeof e=="function"&&e.prototype||P6e;return t===r}var P6e,uc,Z0=N(()=>{"use strict";P6e=Object.prototype;o(B6e,"isPrototype");uc=B6e});function F6e(t){return typeof t.constructor=="function"&&!uc(t)?XY(Q0(t)):{}}var aw,M9=N(()=>{"use strict";jY();iw();Z0();o(F6e,"initCloneObject");aw=F6e});function $6e(t){return t!=null&&typeof t=="object"}var ri,No=N(()=>{"use strict";o($6e,"isObjectLike");ri=$6e});function G6e(t){return ri(t)&&da(t)==z6e}var z6e,I9,KY=N(()=>{"use strict";ku();No();z6e="[object Arguments]";o(G6e,"baseIsArguments");I9=G6e});var QY,V6e,U6e,H6e,El,J0=N(()=>{"use strict";KY();No();QY=Object.prototype,V6e=QY.hasOwnProperty,U6e=QY.propertyIsEnumerable,H6e=I9(function(){return arguments}())?I9:function(t){return ri(t)&&V6e.call(t,"callee")&&!U6e.call(t,"callee")},El=H6e});var W6e,Pt,Un=N(()=>{"use strict";W6e=Array.isArray,Pt=W6e});function Y6e(t){return typeof t=="number"&&t>-1&&t%1==0&&t<=q6e}var q6e,em,sw=N(()=>{"use strict";q6e=9007199254740991;o(Y6e,"isLength");em=Y6e});function X6e(t){return t!=null&&em(t.length)&&!Si(t)}var ci,Mo=N(()=>{"use strict";Yv();sw();o(X6e,"isArrayLike");ci=X6e});function j6e(t){return ri(t)&&ci(t)}var Ad,ow=N(()=>{"use strict";Mo();No();o(j6e,"isArrayLikeObject");Ad=j6e});function K6e(){return!1}var ZY,JY=N(()=>{"use strict";o(K6e,"stubFalse");ZY=K6e});var rX,eX,Q6e,tX,Z6e,J6e,Sl,tm=N(()=>{"use strict";Lo();JY();rX=typeof exports=="object"&&exports&&!exports.nodeType&&exports,eX=rX&&typeof module=="object"&&module&&!module.nodeType&&module,Q6e=eX&&eX.exports===rX,tX=Q6e?li.Buffer:void 0,Z6e=tX?tX.isBuffer:void 0,J6e=Z6e||ZY,Sl=J6e});function aSe(t){if(!ri(t)||da(t)!=eSe)return!1;var e=Q0(t);if(e===null)return!0;var r=nSe.call(e,"constructor")&&e.constructor;return typeof r=="function"&&r instanceof r&&nX.call(r)==iSe}var eSe,tSe,rSe,nX,nSe,iSe,iX,aX=N(()=>{"use strict";ku();iw();No();eSe="[object Object]",tSe=Function.prototype,rSe=Object.prototype,nX=tSe.toString,nSe=rSe.hasOwnProperty,iSe=nX.call(Object);o(aSe,"isPlainObject");iX=aSe});function LSe(t){return ri(t)&&em(t.length)&&!!Fn[da(t)]}var sSe,oSe,lSe,cSe,uSe,hSe,fSe,dSe,pSe,mSe,gSe,ySe,vSe,xSe,bSe,wSe,TSe,kSe,ESe,SSe,CSe,ASe,_Se,DSe,Fn,sX,oX=N(()=>{"use strict";ku();sw();No();sSe="[object Arguments]",oSe="[object Array]",lSe="[object Boolean]",cSe="[object Date]",uSe="[object Error]",hSe="[object Function]",fSe="[object Map]",dSe="[object Number]",pSe="[object Object]",mSe="[object RegExp]",gSe="[object Set]",ySe="[object String]",vSe="[object WeakMap]",xSe="[object ArrayBuffer]",bSe="[object DataView]",wSe="[object Float32Array]",TSe="[object Float64Array]",kSe="[object Int8Array]",ESe="[object Int16Array]",SSe="[object Int32Array]",CSe="[object Uint8Array]",ASe="[object Uint8ClampedArray]",_Se="[object Uint16Array]",DSe="[object Uint32Array]",Fn={};Fn[wSe]=Fn[TSe]=Fn[kSe]=Fn[ESe]=Fn[SSe]=Fn[CSe]=Fn[ASe]=Fn[_Se]=Fn[DSe]=!0;Fn[sSe]=Fn[oSe]=Fn[xSe]=Fn[lSe]=Fn[bSe]=Fn[cSe]=Fn[uSe]=Fn[hSe]=Fn[fSe]=Fn[dSe]=Fn[pSe]=Fn[mSe]=Fn[gSe]=Fn[ySe]=Fn[vSe]=!1;o(LSe,"baseIsTypedArray");sX=LSe});function RSe(t){return function(e){return t(e)}}var Io,_d=N(()=>{"use strict";o(RSe,"baseUnary");Io=RSe});var lX,e2,NSe,O9,MSe,Oo,t2=N(()=>{"use strict";w9();lX=typeof exports=="object"&&exports&&!exports.nodeType&&exports,e2=lX&&typeof module=="object"&&module&&!module.nodeType&&module,NSe=e2&&e2.exports===lX,O9=NSe&&X5.process,MSe=function(){try{var t=e2&&e2.require&&e2.require("util").types;return t||O9&&O9.binding&&O9.binding("util")}catch{}}(),Oo=MSe});var cX,ISe,Oh,r2=N(()=>{"use strict";oX();_d();t2();cX=Oo&&Oo.isTypedArray,ISe=cX?Io(cX):sX,Oh=ISe});function OSe(t,e){if(!(e==="constructor"&&typeof t[e]=="function")&&e!="__proto__")return t[e]}var n2,P9=N(()=>{"use strict";o(OSe,"safeGet");n2=OSe});function FSe(t,e,r){var n=t[e];(!(BSe.call(t,e)&&Ro(n,r))||r===void 0&&!(e in t))&&cc(t,e,r)}var PSe,BSe,hc,rm=N(()=>{"use strict";Y0();Sd();PSe=Object.prototype,BSe=PSe.hasOwnProperty;o(FSe,"assignValue");hc=FSe});function $Se(t,e,r,n){var i=!r;r||(r={});for(var a=-1,s=e.length;++a<s;){var l=e[a],u=n?n(r[l],t[l],l,r,t):void 0;u===void 0&&(u=t[l]),i?cc(r,l,u):hc(r,l,u)}return r}var Po,Dd=N(()=>{"use strict";rm();Y0();o($Se,"copyObject");Po=$Se});function zSe(t,e){for(var r=-1,n=Array(t);++r<t;)n[r]=e(r);return n}var uX,hX=N(()=>{"use strict";o(zSe,"baseTimes");uX=zSe});function USe(t,e){var r=typeof t;return e=e??GSe,!!e&&(r=="number"||r!="symbol"&&VSe.test(t))&&t>-1&&t%1==0&&t<e}var GSe,VSe,Ph,i2=N(()=>{"use strict";GSe=9007199254740991,VSe=/^(?:0|[1-9]\d*)$/;o(USe,"isIndex");Ph=USe});function qSe(t,e){var r=Pt(t),n=!r&&El(t),i=!r&&!n&&Sl(t),a=!r&&!n&&!i&&Oh(t),s=r||n||i||a,l=s?uX(t.length,String):[],u=l.length;for(var h in t)(e||WSe.call(t,h))&&!(s&&(h=="length"||i&&(h=="offset"||h=="parent")||a&&(h=="buffer"||h=="byteLength"||h=="byteOffset")||Ph(h,u)))&&l.push(h);return l}var HSe,WSe,lw,B9=N(()=>{"use strict";hX();J0();Un();tm();i2();r2();HSe=Object.prototype,WSe=HSe.hasOwnProperty;o(qSe,"arrayLikeKeys");lw=qSe});function YSe(t){var e=[];if(t!=null)for(var r in Object(t))e.push(r);return e}var fX,dX=N(()=>{"use strict";o(YSe,"nativeKeysIn");fX=YSe});function KSe(t){if(!bn(t))return fX(t);var e=uc(t),r=[];for(var n in t)n=="constructor"&&(e||!jSe.call(t,n))||r.push(n);return r}var XSe,jSe,pX,mX=N(()=>{"use strict";Js();Z0();dX();XSe=Object.prototype,jSe=XSe.hasOwnProperty;o(KSe,"baseKeysIn");pX=KSe});function QSe(t){return ci(t)?lw(t,!0):pX(t)}var Cs,Bh=N(()=>{"use strict";B9();mX();Mo();o(QSe,"keysIn");Cs=QSe});function ZSe(t){return Po(t,Cs(t))}var gX,yX=N(()=>{"use strict";Dd();Bh();o(ZSe,"toPlainObject");gX=ZSe});function JSe(t,e,r,n,i,a,s){var l=n2(t,r),u=n2(e,r),h=s.get(u);if(h){Jv(t,r,h);return}var f=a?a(l,u,r+"",t,e,s):void 0,d=f===void 0;if(d){var p=Pt(u),m=!p&&Sl(u),g=!p&&!m&&Oh(u);f=u,p||m||g?Pt(l)?f=l:Ad(l)?f=rw(l):m?(d=!1,f=J5(u,!0)):g?(d=!1,f=tw(u,!0)):f=[]:iX(u)||El(u)?(f=l,El(l)?f=gX(l):(!bn(l)||Si(l))&&(f=aw(u))):d=!1}d&&(s.set(u,f),i(f,u,n,a,s),s.delete(u)),Jv(t,r,f)}var vX,xX=N(()=>{"use strict";A9();_9();L9();R9();M9();J0();Un();ow();tm();Yv();Js();aX();r2();P9();yX();o(JSe,"baseMergeDeep");vX=JSe});function bX(t,e,r,n,i){t!==e&&X0(e,function(a,s){if(i||(i=new lc),bn(a))vX(t,e,s,r,bX,n,i);else{var l=n?n(n2(t,s),a,s+"",t,e,i):void 0;l===void 0&&(l=a),Jv(t,s,l)}},Cs)}var wX,TX=N(()=>{"use strict";Zv();A9();Z5();xX();Js();Bh();P9();o(bX,"baseMerge");wX=bX});function eCe(t){return t}var ta,Cu=N(()=>{"use strict";o(eCe,"identity");ta=eCe});function tCe(t,e,r){switch(r.length){case 0:return t.call(e);case 1:return t.call(e,r[0]);case 2:return t.call(e,r[0],r[1]);case 3:return t.call(e,r[0],r[1],r[2])}return t.apply(e,r)}var kX,EX=N(()=>{"use strict";o(tCe,"apply");kX=tCe});function rCe(t,e,r){return e=SX(e===void 0?t.length-1:e,0),function(){for(var n=arguments,i=-1,a=SX(n.length-e,0),s=Array(a);++i<a;)s[i]=n[e+i];i=-1;for(var l=Array(e+1);++i<e;)l[i]=n[i];return l[e]=r(s),kX(t,this,l)}}var SX,cw,F9=N(()=>{"use strict";EX();SX=Math.max;o(rCe,"overRest");cw=rCe});function nCe(t){return function(){return t}}var As,$9=N(()=>{"use strict";o(nCe,"constant");As=nCe});var iCe,CX,AX=N(()=>{"use strict";$9();C9();Cu();iCe=q0?function(t,e){return q0(t,"toString",{configurable:!0,enumerable:!1,value:As(e),writable:!0})}:ta,CX=iCe});function lCe(t){var e=0,r=0;return function(){var n=oCe(),i=sCe-(n-r);if(r=n,i>0){if(++e>=aCe)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}var aCe,sCe,oCe,_X,DX=N(()=>{"use strict";aCe=800,sCe=16,oCe=Date.now;o(lCe,"shortOut");_X=lCe});var cCe,uw,z9=N(()=>{"use strict";AX();DX();cCe=_X(CX),uw=cCe});function uCe(t,e){return uw(cw(t,e,ta),t+"")}var fc,nm=N(()=>{"use strict";Cu();F9();z9();o(uCe,"baseRest");fc=uCe});function hCe(t,e,r){if(!bn(r))return!1;var n=typeof e;return(n=="number"?ci(r)&&Ph(e,r.length):n=="string"&&e in r)?Ro(r[e],t):!1}var eo,Ld=N(()=>{"use strict";Sd();Mo();i2();Js();o(hCe,"isIterateeCall");eo=hCe});function fCe(t){return fc(function(e,r){var n=-1,i=r.length,a=i>1?r[i-1]:void 0,s=i>2?r[2]:void 0;for(a=t.length>3&&typeof a=="function"?(i--,a):void 0,s&&eo(r[0],r[1],s)&&(a=i<3?void 0:a,i=1),e=Object(e);++n<i;){var l=r[n];l&&t(e,l,n,a)}return e})}var hw,G9=N(()=>{"use strict";nm();Ld();o(fCe,"createAssigner");hw=fCe});var dCe,Fh,V9=N(()=>{"use strict";TX();G9();dCe=hw(function(t,e,r){wX(t,e,r)}),Fh=dCe});function W9(t,e){if(!t)return e;let r=`curve${t.charAt(0).toUpperCase()+t.slice(1)}`;return pCe[r]??e}function vCe(t,e){let r=t.trim();if(r)return e.securityLevel!=="loose"?(0,NX.sanitizeUrl)(r):r}function OX(t,e){return!t||!e?0:Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))}function bCe(t){let e,r=0;t.forEach(i=>{r+=OX(i,e),e=i});let n=r/2;return q9(t,n)}function wCe(t){return t.length===1?t[0]:bCe(t)}function kCe(t,e,r){let n=structuredClone(r);Y.info("our points",n),e!=="start_left"&&e!=="start_right"&&n.reverse();let i=25+t,a=q9(n,i),s=10+t*.5,l=Math.atan2(n[0].y-a.y,n[0].x-a.x),u={x:0,y:0};return e==="start_left"?(u.x=Math.sin(l+Math.PI)*s+(n[0].x+a.x)/2,u.y=-Math.cos(l+Math.PI)*s+(n[0].y+a.y)/2):e==="end_right"?(u.x=Math.sin(l-Math.PI)*s+(n[0].x+a.x)/2-5,u.y=-Math.cos(l-Math.PI)*s+(n[0].y+a.y)/2-5):e==="end_left"?(u.x=Math.sin(l)*s+(n[0].x+a.x)/2-5,u.y=-Math.cos(l)*s+(n[0].y+a.y)/2-5):(u.x=Math.sin(l)*s+(n[0].x+a.x)/2,u.y=-Math.cos(l)*s+(n[0].y+a.y)/2),u}function Y9(t){let e="",r="";for(let n of t)n!==void 0&&(n.startsWith("color:")||n.startsWith("text-align:")?r=r+n+";":e=e+n+";");return{style:e,labelStyle:r}}function ECe(t){let e="",r="0123456789abcdef",n=r.length;for(let i=0;i<t;i++)e+=r.charAt(Math.floor(Math.random()*n));return e}function dw(t,e){return Q9(t,e).height}function ra(t,e){return Q9(t,e).width}function Z9(t){return"str"in t}function Fi(t,e){return Fh({},t,e)}function $n(t){return t??null}var NX,H9,pCe,mCe,gCe,MX,IX,yCe,xCe,LX,q9,TCe,RX,X9,j9,SCe,CCe,K9,ACe,Q9,U9,fw,_Ce,DCe,Bo,Gt,PX,na,$h,ir=N(()=>{"use strict";NX=Sa(z0(),1);dr();gr();e7();vt();Xf();s0();S9();V9();$4();H9="\u200B",pCe={curveBasis:Do,curveBasisClosed:P5,curveBasisOpen:B5,curveBumpX:Rv,curveBumpY:Nv,curveBundle:l9,curveCardinalClosed:c9,curveCardinalOpen:h9,curveCardinal:Pv,curveCatmullRomClosed:d9,curveCatmullRomOpen:p9,curveCatmullRom:$v,curveLinear:wu,curveLinearClosed:V5,curveMonotoneX:zv,curveMonotoneY:Gv,curveNatural:F0,curveStep:$0,curveStepAfter:Uv,curveStepBefore:Vv},mCe=/\s*(?:(\w+)(?=:):|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi,gCe=o(function(t,e){let r=MX(t,/(?:init\b)|(?:initialize\b)/),n={};if(Array.isArray(r)){let s=r.map(l=>l.args);l0(s),n=Gn(n,[...s])}else n=r.args;if(!n)return;let i=a0(t,e),a="config";return n[a]!==void 0&&(i==="flowchart-v2"&&(i="flowchart"),n[i]=n[a],delete n[a]),n},"detectInit"),MX=o(function(t,e=null){try{let r=new RegExp(`[%]{2}(?![{]${mCe.source})(?=[}][%]{2}).*
+`,"ig");t=t.trim().replace(r,"").replace(/'/gm,'"'),Y.debug(`Detecting diagram directive${e!==null?" type:"+e:""} based on the text:${t}`);let n,i=[];for(;(n=qf.exec(t))!==null;)if(n.index===qf.lastIndex&&qf.lastIndex++,n&&!e||e&&n[1]?.match(e)||e&&n[2]?.match(e)){let a=n[1]?n[1]:n[2],s=n[3]?n[3].trim():n[4]?JSON.parse(n[4].trim()):null;i.push({type:a,args:s})}return i.length===0?{type:t,args:null}:i.length===1?i[0]:i}catch(r){return Y.error(`ERROR: ${r.message} - Unable to parse directive type: '${e}' based on the text: '${t}'`),{type:void 0,args:null}}},"detectDirective"),IX=o(function(t){return t.replace(qf,"")},"removeDirectives"),yCe=o(function(t,e){for(let[r,n]of e.entries())if(n.match(t))return r;return-1},"isSubstringInArray");o(W9,"interpolateToCurve");o(vCe,"formatUrl");xCe=o((t,...e)=>{let r=t.split("."),n=r.length-1,i=r[n],a=window;for(let s=0;s<n;s++)if(a=a[r[s]],!a){Y.error(`Function name: ${t} not found in window`);return}a[i](...e)},"runFunc");o(OX,"distance");o(bCe,"traverseEdge");o(wCe,"calcLabelPosition");LX=o((t,e=2)=>{let r=Math.pow(10,e);return Math.round(t*r)/r},"roundNumber"),q9=o((t,e)=>{let r,n=e;for(let i of t){if(r){let a=OX(i,r);if(a===0)return r;if(a<n)n-=a;else{let s=n/a;if(s<=0)return r;if(s>=1)return{x:i.x,y:i.y};if(s>0&&s<1)return{x:LX((1-s)*r.x+s*i.x,5),y:LX((1-s)*r.y+s*i.y,5)}}}r=i}throw new Error("Could not find a suitable point for the given distance")},"calculatePoint"),TCe=o((t,e,r)=>{Y.info(`our points ${JSON.stringify(e)}`),e[0]!==r&&(e=e.reverse());let i=q9(e,25),a=t?10:5,s=Math.atan2(e[0].y-i.y,e[0].x-i.x),l={x:0,y:0};return l.x=Math.sin(s)*a+(e[0].x+i.x)/2,l.y=-Math.cos(s)*a+(e[0].y+i.y)/2,l},"calcCardinalityPosition");o(kCe,"calcTerminalLabelPosition");o(Y9,"getStylesFromArray");RX=0,X9=o(()=>(RX++,"id-"+Math.random().toString(36).substr(2,12)+"-"+RX),"generateId");o(ECe,"makeRandomHex");j9=o(t=>ECe(t.length),"random"),SCe=o(function(){return{x:0,y:0,fill:void 0,anchor:"start",style:"#666",width:100,height:100,textMargin:0,rx:0,ry:0,valign:void 0,text:""}},"getTextObj"),CCe=o(function(t,e){let r=e.text.replace(Ze.lineBreakRegex," "),[,n]=Bo(e.fontSize),i=t.append("text");i.attr("x",e.x),i.attr("y",e.y),i.style("text-anchor",e.anchor),i.style("font-family",e.fontFamily),i.style("font-size",n),i.style("font-weight",e.fontWeight),i.attr("fill",e.fill),e.class!==void 0&&i.attr("class",e.class);let a=i.append("tspan");return a.attr("x",e.x+e.textMargin*2),a.attr("fill",e.fill),a.text(r),i},"drawSimpleText"),K9=H0((t,e,r)=>{if(!t||(r=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",joinWith:"<br/>"},r),Ze.lineBreakRegex.test(t)))return t;let n=t.split(" ").filter(Boolean),i=[],a="";return n.forEach((s,l)=>{let u=ra(`${s} `,r),h=ra(a,r);if(u>e){let{hyphenatedStrings:p,remainingWord:m}=ACe(s,e,"-",r);i.push(a,...p),a=m}else h+u>=e?(i.push(a),a=s):a=[a,s].filter(Boolean).join(" ");l+1===n.length&&i.push(a)}),i.filter(s=>s!=="").join(r.joinWith)},(t,e,r)=>`${t}${e}${r.fontSize}${r.fontWeight}${r.fontFamily}${r.joinWith}`),ACe=H0((t,e,r="-",n)=>{n=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",margin:0},n);let i=[...t],a=[],s="";return i.forEach((l,u)=>{let h=`${s}${l}`;if(ra(h,n)>=e){let d=u+1,p=i.length===d,m=`${h}${r}`;a.push(p?h:m),s=""}else s=h}),{hyphenatedStrings:a,remainingWord:s}},(t,e,r="-",n)=>`${t}${e}${r}${n.fontSize}${n.fontWeight}${n.fontFamily}`);o(dw,"calculateTextHeight");o(ra,"calculateTextWidth");Q9=H0((t,e)=>{let{fontSize:r=12,fontFamily:n="Arial",fontWeight:i=400}=e;if(!t)return{width:0,height:0};let[,a]=Bo(r),s=["sans-serif",n],l=t.split(Ze.lineBreakRegex),u=[],h=Ge("body");if(!h.remove)return{width:0,height:0,lineHeight:0};let f=h.append("svg");for(let p of s){let m=0,g={width:0,height:0,lineHeight:0};for(let y of l){let v=SCe();v.text=y||H9;let x=CCe(f,v).style("font-size",a).style("font-weight",i).style("font-family",p),b=(x._groups||x)[0][0].getBBox();if(b.width===0&&b.height===0)throw new Error("svg element not in render tree");g.width=Math.round(Math.max(g.width,b.width)),m=Math.round(b.height),g.height+=m,g.lineHeight=Math.round(Math.max(g.lineHeight,m))}u.push(g)}f.remove();let d=isNaN(u[1].height)||isNaN(u[1].width)||isNaN(u[1].lineHeight)||u[0].height>u[1].height&&u[0].width>u[1].width&&u[0].lineHeight>u[1].lineHeight?0:1;return u[d]},(t,e)=>`${t}${e.fontSize}${e.fontWeight}${e.fontFamily}`),U9=class{constructor(e=!1,r){this.count=0;this.count=r?r.length:0,this.next=e?()=>this.count++:()=>Date.now()}static{o(this,"InitIDGenerator")}},_Ce=o(function(t){return fw=fw||document.createElement("div"),t=escape(t).replace(/%26/g,"&").replace(/%23/g,"#").replace(/%3B/g,";"),fw.innerHTML=t,unescape(fw.textContent)},"entityDecode");o(Z9,"isDetailedError");DCe=o((t,e,r,n)=>{if(!n)return;let i=t.node()?.getBBox();i&&t.append("text").text(n).attr("text-anchor","middle").attr("x",i.x+i.width/2).attr("y",-r).attr("class",e)},"insertTitle"),Bo=o(t=>{if(typeof t=="number")return[t,t+"px"];let e=parseInt(t??"",10);return Number.isNaN(e)?[void 0,void 0]:t===String(e)?[e,t+"px"]:[e,t]},"parseFontSize");o(Fi,"cleanAndMerge");Gt={assignWithDepth:Gn,wrapLabel:K9,calculateTextHeight:dw,calculateTextWidth:ra,calculateTextDimensions:Q9,cleanAndMerge:Fi,detectInit:gCe,detectDirective:MX,isSubstringInArray:yCe,interpolateToCurve:W9,calcLabelPosition:wCe,calcCardinalityPosition:TCe,calcTerminalLabelPosition:kCe,formatUrl:vCe,getStylesFromArray:Y9,generateId:X9,random:j9,runFunc:xCe,entityDecode:_Ce,insertTitle:DCe,parseFontSize:Bo,InitIDGenerator:U9},PX=o(function(t){let e=t;return e=e.replace(/style.*:\S*#.*;/g,function(r){return r.substring(0,r.length-1)}),e=e.replace(/classDef.*:\S*#.*;/g,function(r){return r.substring(0,r.length-1)}),e=e.replace(/#\w+;/g,function(r){let n=r.substring(1,r.length-1);return/^\+?\d+$/.test(n)?"\uFB02\xB0\xB0"+n+"\xB6\xDF":"\uFB02\xB0"+n+"\xB6\xDF"}),e},"encodeEntities"),na=o(function(t){return t.replace(/fl°°/g,"&#").replace(/fl°/g,"&").replace(/¶ß/g,";")},"decodeEntities"),$h=o((t,e,{counter:r=0,prefix:n,suffix:i},a)=>a||`${n?`${n}_`:""}${t}_${e}_${r}${i?`_${i}`:""}`,"getEdgeId");o($n,"handleUndefinedAttr")});function Cl(t,e,r,n,i){if(!e[t].width)if(r)e[t].text=K9(e[t].text,i,n),e[t].textLines=e[t].text.split(Ze.lineBreakRegex).length,e[t].width=i,e[t].height=dw(e[t].text,n);else{let a=e[t].text.split(Ze.lineBreakRegex);e[t].textLines=a.length;let s=0;e[t].height=0,e[t].width=0;for(let l of a)e[t].width=Math.max(ra(l,n),e[t].width),s=dw(l,n),e[t].height=e[t].height+s}}function GX(t,e,r,n,i){let a=new yw(i);a.data.widthLimit=r.data.widthLimit/Math.min(J9,n.length);for(let[s,l]of n.entries()){let u=0;l.image={width:0,height:0,Y:0},l.sprite&&(l.image.width=48,l.image.height=48,l.image.Y=u,u=l.image.Y+l.image.height);let h=l.wrap&&Vt.wrap,f=pw(Vt);if(f.fontSize=f.fontSize+2,f.fontWeight="bold",Cl("label",l,h,f,a.data.widthLimit),l.label.Y=u+8,u=l.label.Y+l.label.height,l.type&&l.type.text!==""){l.type.text="["+l.type.text+"]";let g=pw(Vt);Cl("type",l,h,g,a.data.widthLimit),l.type.Y=u+5,u=l.type.Y+l.type.height}if(l.descr&&l.descr.text!==""){let g=pw(Vt);g.fontSize=g.fontSize-2,Cl("descr",l,h,g,a.data.widthLimit),l.descr.Y=u+20,u=l.descr.Y+l.descr.height}if(s==0||s%J9===0){let g=r.data.startx+Vt.diagramMarginX,y=r.data.stopy+Vt.diagramMarginY+u;a.setData(g,g,y,y)}else{let g=a.data.stopx!==a.data.startx?a.data.stopx+Vt.diagramMarginX:a.data.startx,y=a.data.starty;a.setData(g,g,y,y)}a.name=l.alias;let d=i.db.getC4ShapeArray(l.alias),p=i.db.getC4ShapeKeys(l.alias);p.length>0&&zX(a,t,d,p),e=l.alias;let m=i.db.getBoundarys(e);m.length>0&&GX(t,e,a,m,i),l.alias!=="global"&&$X(t,l,a),r.data.stopy=Math.max(a.data.stopy+Vt.c4ShapeMargin,r.data.stopy),r.data.stopx=Math.max(a.data.stopx+Vt.c4ShapeMargin,r.data.stopx),mw=Math.max(mw,r.data.stopx),gw=Math.max(gw,r.data.stopy)}}var mw,gw,FX,J9,Vt,yw,eD,a2,pw,LCe,$X,zX,_s,BX,RCe,NCe,MCe,tD,VX=N(()=>{"use strict";dr();Bq();vt();$C();gr();uA();zt();s0();ir();Ei();mw=0,gw=0,FX=4,J9=2;Ty.yy=Qy;Vt={},yw=class{static{o(this,"Bounds")}constructor(e){this.name="",this.data={},this.data.startx=void 0,this.data.stopx=void 0,this.data.starty=void 0,this.data.stopy=void 0,this.data.widthLimit=void 0,this.nextData={},this.nextData.startx=void 0,this.nextData.stopx=void 0,this.nextData.starty=void 0,this.nextData.stopy=void 0,this.nextData.cnt=0,eD(e.db.getConfig())}setData(e,r,n,i){this.nextData.startx=this.data.startx=e,this.nextData.stopx=this.data.stopx=r,this.nextData.starty=this.data.starty=n,this.nextData.stopy=this.data.stopy=i}updateVal(e,r,n,i){e[r]===void 0?e[r]=n:e[r]=i(n,e[r])}insert(e){this.nextData.cnt=this.nextData.cnt+1;let r=this.nextData.startx===this.nextData.stopx?this.nextData.stopx+e.margin:this.nextData.stopx+e.margin*2,n=r+e.width,i=this.nextData.starty+e.margin*2,a=i+e.height;(r>=this.data.widthLimit||n>=this.data.widthLimit||this.nextData.cnt>FX)&&(r=this.nextData.startx+e.margin+Vt.nextLinePaddingX,i=this.nextData.stopy+e.margin*2,this.nextData.stopx=n=r+e.width,this.nextData.starty=this.nextData.stopy,this.nextData.stopy=a=i+e.height,this.nextData.cnt=1),e.x=r,e.y=i,this.updateVal(this.data,"startx",r,Math.min),this.updateVal(this.data,"starty",i,Math.min),this.updateVal(this.data,"stopx",n,Math.max),this.updateVal(this.data,"stopy",a,Math.max),this.updateVal(this.nextData,"startx",r,Math.min),this.updateVal(this.nextData,"starty",i,Math.min),this.updateVal(this.nextData,"stopx",n,Math.max),this.updateVal(this.nextData,"stopy",a,Math.max)}init(e){this.name="",this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0,widthLimit:void 0},this.nextData={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0,cnt:0},eD(e.db.getConfig())}bumpLastMargin(e){this.data.stopx+=e,this.data.stopy+=e}},eD=o(function(t){Gn(Vt,t),t.fontFamily&&(Vt.personFontFamily=Vt.systemFontFamily=Vt.messageFontFamily=t.fontFamily),t.fontSize&&(Vt.personFontSize=Vt.systemFontSize=Vt.messageFontSize=t.fontSize),t.fontWeight&&(Vt.personFontWeight=Vt.systemFontWeight=Vt.messageFontWeight=t.fontWeight)},"setConf"),a2=o((t,e)=>({fontFamily:t[e+"FontFamily"],fontSize:t[e+"FontSize"],fontWeight:t[e+"FontWeight"]}),"c4ShapeFont"),pw=o(t=>({fontFamily:t.boundaryFontFamily,fontSize:t.boundaryFontSize,fontWeight:t.boundaryFontWeight}),"boundaryFont"),LCe=o(t=>({fontFamily:t.messageFontFamily,fontSize:t.messageFontSize,fontWeight:t.messageFontWeight}),"messageFont");o(Cl,"calcC4ShapeTextWH");$X=o(function(t,e,r){e.x=r.data.startx,e.y=r.data.starty,e.width=r.data.stopx-r.data.startx,e.height=r.data.stopy-r.data.starty,e.label.y=Vt.c4ShapeMargin-35;let n=e.wrap&&Vt.wrap,i=pw(Vt);i.fontSize=i.fontSize+2,i.fontWeight="bold";let a=ra(e.label.text,i);Cl("label",e,n,i,a),kl.drawBoundary(t,e,Vt)},"drawBoundary"),zX=o(function(t,e,r,n){let i=0;for(let a of n){i=0;let s=r[a],l=a2(Vt,s.typeC4Shape.text);switch(l.fontSize=l.fontSize-2,s.typeC4Shape.width=ra("\xAB"+s.typeC4Shape.text+"\xBB",l),s.typeC4Shape.height=l.fontSize+2,s.typeC4Shape.Y=Vt.c4ShapePadding,i=s.typeC4Shape.Y+s.typeC4Shape.height-4,s.image={width:0,height:0,Y:0},s.typeC4Shape.text){case"person":case"external_person":s.image.width=48,s.image.height=48,s.image.Y=i,i=s.image.Y+s.image.height;break}s.sprite&&(s.image.width=48,s.image.height=48,s.image.Y=i,i=s.image.Y+s.image.height);let u=s.wrap&&Vt.wrap,h=Vt.width-Vt.c4ShapePadding*2,f=a2(Vt,s.typeC4Shape.text);if(f.fontSize=f.fontSize+2,f.fontWeight="bold",Cl("label",s,u,f,h),s.label.Y=i+8,i=s.label.Y+s.label.height,s.type&&s.type.text!==""){s.type.text="["+s.type.text+"]";let m=a2(Vt,s.typeC4Shape.text);Cl("type",s,u,m,h),s.type.Y=i+5,i=s.type.Y+s.type.height}else if(s.techn&&s.techn.text!==""){s.techn.text="["+s.techn.text+"]";let m=a2(Vt,s.techn.text);Cl("techn",s,u,m,h),s.techn.Y=i+5,i=s.techn.Y+s.techn.height}let d=i,p=s.label.width;if(s.descr&&s.descr.text!==""){let m=a2(Vt,s.typeC4Shape.text);Cl("descr",s,u,m,h),s.descr.Y=i+20,i=s.descr.Y+s.descr.height,p=Math.max(s.label.width,s.descr.width),d=i-s.descr.textLines*5}p=p+Vt.c4ShapePadding,s.width=Math.max(s.width||Vt.width,p,Vt.width),s.height=Math.max(s.height||Vt.height,d,Vt.height),s.margin=s.margin||Vt.c4ShapeMargin,t.insert(s),kl.drawC4Shape(e,s,Vt)}t.bumpLastMargin(Vt.c4ShapeMargin)},"drawC4ShapeArray"),_s=class{static{o(this,"Point")}constructor(e,r){this.x=e,this.y=r}},BX=o(function(t,e){let r=t.x,n=t.y,i=e.x,a=e.y,s=r+t.width/2,l=n+t.height/2,u=Math.abs(r-i),h=Math.abs(n-a),f=h/u,d=t.height/t.width,p=null;return n==a&&r<i?p=new _s(r+t.width,l):n==a&&r>i?p=new _s(r,l):r==i&&n<a?p=new _s(s,n+t.height):r==i&&n>a&&(p=new _s(s,n)),r>i&&n<a?d>=f?p=new _s(r,l+f*t.width/2):p=new _s(s-u/h*t.height/2,n+t.height):r<i&&n<a?d>=f?p=new _s(r+t.width,l+f*t.width/2):p=new _s(s+u/h*t.height/2,n+t.height):r<i&&n>a?d>=f?p=new _s(r+t.width,l-f*t.width/2):p=new _s(s+t.height/2*u/h,n):r>i&&n>a&&(d>=f?p=new _s(r,l-t.width/2*f):p=new _s(s-t.height/2*u/h,n)),p},"getIntersectPoint"),RCe=o(function(t,e){let r={x:0,y:0};r.x=e.x+e.width/2,r.y=e.y+e.height/2;let n=BX(t,r);r.x=t.x+t.width/2,r.y=t.y+t.height/2;let i=BX(e,r);return{startPoint:n,endPoint:i}},"getIntersectPoints"),NCe=o(function(t,e,r,n){let i=0;for(let a of e){i=i+1;let s=a.wrap&&Vt.wrap,l=LCe(Vt);n.db.getC4Type()==="C4Dynamic"&&(a.label.text=i+": "+a.label.text);let h=ra(a.label.text,l);Cl("label",a,s,l,h),a.techn&&a.techn.text!==""&&(h=ra(a.techn.text,l),Cl("techn",a,s,l,h)),a.descr&&a.descr.text!==""&&(h=ra(a.descr.text,l),Cl("descr",a,s,l,h));let f=r(a.from),d=r(a.to),p=RCe(f,d);a.startPoint=p.startPoint,a.endPoint=p.endPoint}kl.drawRels(t,e,Vt)},"drawRels");o(GX,"drawInsideBoundary");MCe=o(function(t,e,r,n){Vt=me().c4;let i=me().securityLevel,a;i==="sandbox"&&(a=Ge("#i"+e));let s=i==="sandbox"?Ge(a.nodes()[0].contentDocument.body):Ge("body"),l=n.db;n.db.setWrap(Vt.wrap),FX=l.getC4ShapeInRow(),J9=l.getC4BoundaryInRow(),Y.debug(`C:${JSON.stringify(Vt,null,2)}`);let u=i==="sandbox"?s.select(`[id="${e}"]`):Ge(`[id="${e}"]`);kl.insertComputerIcon(u),kl.insertDatabaseIcon(u),kl.insertClockIcon(u);let h=new yw(n);h.setData(Vt.diagramMarginX,Vt.diagramMarginX,Vt.diagramMarginY,Vt.diagramMarginY),h.data.widthLimit=screen.availWidth,mw=Vt.diagramMarginX,gw=Vt.diagramMarginY;let f=n.db.getTitle(),d=n.db.getBoundarys("");GX(u,"",h,d,n),kl.insertArrowHead(u),kl.insertArrowEnd(u),kl.insertArrowCrossHead(u),kl.insertArrowFilledHead(u),NCe(u,n.db.getRels(),n.db.getC4Shape,n),h.data.stopx=mw,h.data.stopy=gw;let p=h.data,g=p.stopy-p.starty+2*Vt.diagramMarginY,v=p.stopx-p.startx+2*Vt.diagramMarginX;f&&u.append("text").text(f).attr("x",(p.stopx-p.startx)/2-4*Vt.diagramMarginX).attr("y",p.starty+Vt.diagramMarginY),vn(u,g,v,Vt.useMaxWidth);let x=f?60:0;u.attr("viewBox",p.startx-Vt.diagramMarginX+" -"+(Vt.diagramMarginY+x)+" "+v+" "+(g+x)),Y.debug("models:",p)},"draw"),tD={drawPersonOrSystemArray:zX,drawBoundary:$X,setConf:eD,draw:MCe}});var ICe,UX,HX=N(()=>{"use strict";ICe=o(t=>`.person {
+    stroke: ${t.personBorder};
+    fill: ${t.personBkg};
+  }
+`,"getStyles"),UX=ICe});var WX={};hr(WX,{diagram:()=>OCe});var OCe,qX=N(()=>{"use strict";$C();uA();VX();HX();OCe={parser:JF,db:Qy,renderer:tD,styles:UX,init:o(({c4:t,wrap:e})=>{tD.setConf(t),Qy.setWrap(e)},"init")}});function uj(t){return typeof t>"u"||t===null}function $Ce(t){return typeof t=="object"&&t!==null}function zCe(t){return Array.isArray(t)?t:uj(t)?[]:[t]}function GCe(t,e){var r,n,i,a;if(e)for(a=Object.keys(e),r=0,n=a.length;r<n;r+=1)i=a[r],t[i]=e[i];return t}function VCe(t,e){var r="",n;for(n=0;n<e;n+=1)r+=t;return r}function UCe(t){return t===0&&Number.NEGATIVE_INFINITY===1/t}function hj(t,e){var r="",n=t.reason||"(unknown reason)";return t.mark?(t.mark.name&&(r+='in "'+t.mark.name+'" '),r+="("+(t.mark.line+1)+":"+(t.mark.column+1)+")",!e&&t.mark.snippet&&(r+=`
+
+`+t.mark.snippet),n+" "+r):n}function o2(t,e){Error.call(this),this.name="YAMLException",this.reason=t,this.mark=e,this.message=hj(this,!1),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}function rD(t,e,r,n,i){var a="",s="",l=Math.floor(i/2)-1;return n-e>l&&(a=" ... ",e=n-l+a.length),r-n>l&&(s=" ...",r=n+l-s.length),{str:a+t.slice(e,r).replace(/\t/g,"\u2192")+s,pos:n-e+a.length}}function nD(t,e){return $i.repeat(" ",e-t.length)+t}function KCe(t,e){if(e=Object.create(e||null),!t.buffer)return null;e.maxLength||(e.maxLength=79),typeof e.indent!="number"&&(e.indent=1),typeof e.linesBefore!="number"&&(e.linesBefore=3),typeof e.linesAfter!="number"&&(e.linesAfter=2);for(var r=/\r?\n|\r|\0/g,n=[0],i=[],a,s=-1;a=r.exec(t.buffer);)i.push(a.index),n.push(a.index+a[0].length),t.position<=a.index&&s<0&&(s=n.length-2);s<0&&(s=n.length-1);var l="",u,h,f=Math.min(t.line+e.linesAfter,i.length).toString().length,d=e.maxLength-(e.indent+f+3);for(u=1;u<=e.linesBefore&&!(s-u<0);u++)h=rD(t.buffer,n[s-u],i[s-u],t.position-(n[s]-n[s-u]),d),l=$i.repeat(" ",e.indent)+nD((t.line-u+1).toString(),f)+" | "+h.str+`
+`+l;for(h=rD(t.buffer,n[s],i[s],t.position,d),l+=$i.repeat(" ",e.indent)+nD((t.line+1).toString(),f)+" | "+h.str+`
+`,l+=$i.repeat("-",e.indent+f+3+h.pos)+`^
+`,u=1;u<=e.linesAfter&&!(s+u>=i.length);u++)h=rD(t.buffer,n[s+u],i[s+u],t.position-(n[s]-n[s+u]),d),l+=$i.repeat(" ",e.indent)+nD((t.line+u+1).toString(),f)+" | "+h.str+`
+`;return l.replace(/\n$/,"")}function e7e(t){var e={};return t!==null&&Object.keys(t).forEach(function(r){t[r].forEach(function(n){e[String(n)]=r})}),e}function t7e(t,e){if(e=e||{},Object.keys(e).forEach(function(r){if(ZCe.indexOf(r)===-1)throw new Ds('Unknown option "'+r+'" is met in definition of "'+t+'" YAML type.')}),this.options=e,this.tag=t,this.kind=e.kind||null,this.resolve=e.resolve||function(){return!0},this.construct=e.construct||function(r){return r},this.instanceOf=e.instanceOf||null,this.predicate=e.predicate||null,this.represent=e.represent||null,this.representName=e.representName||null,this.defaultStyle=e.defaultStyle||null,this.multi=e.multi||!1,this.styleAliases=e7e(e.styleAliases||null),JCe.indexOf(this.kind)===-1)throw new Ds('Unknown kind "'+this.kind+'" is specified for "'+t+'" YAML type.')}function jX(t,e){var r=[];return t[e].forEach(function(n){var i=r.length;r.forEach(function(a,s){a.tag===n.tag&&a.kind===n.kind&&a.multi===n.multi&&(i=s)}),r[i]=n}),r}function r7e(){var t={scalar:{},sequence:{},mapping:{},fallback:{},multi:{scalar:[],sequence:[],mapping:[],fallback:[]}},e,r;function n(i){i.multi?(t.multi[i.kind].push(i),t.multi.fallback.push(i)):t[i.kind][i.tag]=t.fallback[i.tag]=i}for(o(n,"collectType"),e=0,r=arguments.length;e<r;e+=1)arguments[e].forEach(n);return t}function aD(t){return this.extend(t)}function l7e(t){if(t===null)return!0;var e=t.length;return e===1&&t==="~"||e===4&&(t==="null"||t==="Null"||t==="NULL")}function c7e(){return null}function u7e(t){return t===null}function f7e(t){if(t===null)return!1;var e=t.length;return e===4&&(t==="true"||t==="True"||t==="TRUE")||e===5&&(t==="false"||t==="False"||t==="FALSE")}function d7e(t){return t==="true"||t==="True"||t==="TRUE"}function p7e(t){return Object.prototype.toString.call(t)==="[object Boolean]"}function g7e(t){return 48<=t&&t<=57||65<=t&&t<=70||97<=t&&t<=102}function y7e(t){return 48<=t&&t<=55}function v7e(t){return 48<=t&&t<=57}function x7e(t){if(t===null)return!1;var e=t.length,r=0,n=!1,i;if(!e)return!1;if(i=t[r],(i==="-"||i==="+")&&(i=t[++r]),i==="0"){if(r+1===e)return!0;if(i=t[++r],i==="b"){for(r++;r<e;r++)if(i=t[r],i!=="_"){if(i!=="0"&&i!=="1")return!1;n=!0}return n&&i!=="_"}if(i==="x"){for(r++;r<e;r++)if(i=t[r],i!=="_"){if(!g7e(t.charCodeAt(r)))return!1;n=!0}return n&&i!=="_"}if(i==="o"){for(r++;r<e;r++)if(i=t[r],i!=="_"){if(!y7e(t.charCodeAt(r)))return!1;n=!0}return n&&i!=="_"}}if(i==="_")return!1;for(;r<e;r++)if(i=t[r],i!=="_"){if(!v7e(t.charCodeAt(r)))return!1;n=!0}return!(!n||i==="_")}function b7e(t){var e=t,r=1,n;if(e.indexOf("_")!==-1&&(e=e.replace(/_/g,"")),n=e[0],(n==="-"||n==="+")&&(n==="-"&&(r=-1),e=e.slice(1),n=e[0]),e==="0")return 0;if(n==="0"){if(e[1]==="b")return r*parseInt(e.slice(2),2);if(e[1]==="x")return r*parseInt(e.slice(2),16);if(e[1]==="o")return r*parseInt(e.slice(2),8)}return r*parseInt(e,10)}function w7e(t){return Object.prototype.toString.call(t)==="[object Number]"&&t%1===0&&!$i.isNegativeZero(t)}function E7e(t){return!(t===null||!k7e.test(t)||t[t.length-1]==="_")}function S7e(t){var e,r;return e=t.replace(/_/g,"").toLowerCase(),r=e[0]==="-"?-1:1,"+-".indexOf(e[0])>=0&&(e=e.slice(1)),e===".inf"?r===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:e===".nan"?NaN:r*parseFloat(e,10)}function A7e(t,e){var r;if(isNaN(t))switch(e){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===t)switch(e){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===t)switch(e){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if($i.isNegativeZero(t))return"-0.0";return r=t.toString(10),C7e.test(r)?r.replace("e",".e"):r}function _7e(t){return Object.prototype.toString.call(t)==="[object Number]"&&(t%1!==0||$i.isNegativeZero(t))}function R7e(t){return t===null?!1:dj.exec(t)!==null||pj.exec(t)!==null}function N7e(t){var e,r,n,i,a,s,l,u=0,h=null,f,d,p;if(e=dj.exec(t),e===null&&(e=pj.exec(t)),e===null)throw new Error("Date resolve error");if(r=+e[1],n=+e[2]-1,i=+e[3],!e[4])return new Date(Date.UTC(r,n,i));if(a=+e[4],s=+e[5],l=+e[6],e[7]){for(u=e[7].slice(0,3);u.length<3;)u+="0";u=+u}return e[9]&&(f=+e[10],d=+(e[11]||0),h=(f*60+d)*6e4,e[9]==="-"&&(h=-h)),p=new Date(Date.UTC(r,n,i,a,s,l,u)),h&&p.setTime(p.getTime()-h),p}function M7e(t){return t.toISOString()}function O7e(t){return t==="<<"||t===null}function B7e(t){if(t===null)return!1;var e,r,n=0,i=t.length,a=uD;for(r=0;r<i;r++)if(e=a.indexOf(t.charAt(r)),!(e>64)){if(e<0)return!1;n+=6}return n%8===0}function F7e(t){var e,r,n=t.replace(/[\r\n=]/g,""),i=n.length,a=uD,s=0,l=[];for(e=0;e<i;e++)e%4===0&&e&&(l.push(s>>16&255),l.push(s>>8&255),l.push(s&255)),s=s<<6|a.indexOf(n.charAt(e));return r=i%4*6,r===0?(l.push(s>>16&255),l.push(s>>8&255),l.push(s&255)):r===18?(l.push(s>>10&255),l.push(s>>2&255)):r===12&&l.push(s>>4&255),new Uint8Array(l)}function $7e(t){var e="",r=0,n,i,a=t.length,s=uD;for(n=0;n<a;n++)n%3===0&&n&&(e+=s[r>>18&63],e+=s[r>>12&63],e+=s[r>>6&63],e+=s[r&63]),r=(r<<8)+t[n];return i=a%3,i===0?(e+=s[r>>18&63],e+=s[r>>12&63],e+=s[r>>6&63],e+=s[r&63]):i===2?(e+=s[r>>10&63],e+=s[r>>4&63],e+=s[r<<2&63],e+=s[64]):i===1&&(e+=s[r>>2&63],e+=s[r<<4&63],e+=s[64],e+=s[64]),e}function z7e(t){return Object.prototype.toString.call(t)==="[object Uint8Array]"}function H7e(t){if(t===null)return!0;var e=[],r,n,i,a,s,l=t;for(r=0,n=l.length;r<n;r+=1){if(i=l[r],s=!1,U7e.call(i)!=="[object Object]")return!1;for(a in i)if(V7e.call(i,a))if(!s)s=!0;else return!1;if(!s)return!1;if(e.indexOf(a)===-1)e.push(a);else return!1}return!0}function W7e(t){return t!==null?t:[]}function X7e(t){if(t===null)return!0;var e,r,n,i,a,s=t;for(a=new Array(s.length),e=0,r=s.length;e<r;e+=1){if(n=s[e],Y7e.call(n)!=="[object Object]"||(i=Object.keys(n),i.length!==1))return!1;a[e]=[i[0],n[i[0]]]}return!0}function j7e(t){if(t===null)return[];var e,r,n,i,a,s=t;for(a=new Array(s.length),e=0,r=s.length;e<r;e+=1)n=s[e],i=Object.keys(n),a[e]=[i[0],n[i[0]]];return a}function Z7e(t){if(t===null)return!0;var e,r=t;for(e in r)if(Q7e.call(r,e)&&r[e]!==null)return!1;return!0}function J7e(t){return t!==null?t:{}}function QX(t){return Object.prototype.toString.call(t)}function dc(t){return t===10||t===13}function Nd(t){return t===9||t===32}function Ls(t){return t===9||t===32||t===10||t===13}function am(t){return t===44||t===91||t===93||t===123||t===125}function aAe(t){var e;return 48<=t&&t<=57?t-48:(e=t|32,97<=e&&e<=102?e-97+10:-1)}function sAe(t){return t===120?2:t===117?4:t===85?8:0}function oAe(t){return 48<=t&&t<=57?t-48:-1}function ZX(t){return t===48?"\0":t===97?"\x07":t===98?"\b":t===116||t===9?"	":t===110?`
+`:t===118?"\v":t===102?"\f":t===114?"\r":t===101?"\x1B":t===32?" ":t===34?'"':t===47?"/":t===92?"\\":t===78?"\x85":t===95?"\xA0":t===76?"\u2028":t===80?"\u2029":""}function lAe(t){return t<=65535?String.fromCharCode(t):String.fromCharCode((t-65536>>10)+55296,(t-65536&1023)+56320)}function cAe(t,e){this.input=t,this.filename=e.filename||null,this.schema=e.schema||mj,this.onWarning=e.onWarning||null,this.legacy=e.legacy||!1,this.json=e.json||!1,this.listener=e.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=t.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.firstTabInLine=-1,this.documents=[]}function Tj(t,e){var r={name:t.filename,buffer:t.input.slice(0,-1),position:t.position,line:t.line,column:t.position-t.lineStart};return r.snippet=QCe(r),new Ds(e,r)}function Qt(t,e){throw Tj(t,e)}function bw(t,e){t.onWarning&&t.onWarning.call(null,Tj(t,e))}function zh(t,e,r,n){var i,a,s,l;if(e<r){if(l=t.input.slice(e,r),n)for(i=0,a=l.length;i<a;i+=1)s=l.charCodeAt(i),s===9||32<=s&&s<=1114111||Qt(t,"expected valid JSON character");else rAe.test(l)&&Qt(t,"the stream contains non-printable characters");t.result+=l}}function ej(t,e,r,n){var i,a,s,l;for($i.isObject(r)||Qt(t,"cannot merge mappings; the provided source object is unacceptable"),i=Object.keys(r),s=0,l=i.length;s<l;s+=1)a=i[s],Gh.call(e,a)||(e[a]=r[a],n[a]=!0)}function sm(t,e,r,n,i,a,s,l,u){var h,f;if(Array.isArray(i))for(i=Array.prototype.slice.call(i),h=0,f=i.length;h<f;h+=1)Array.isArray(i[h])&&Qt(t,"nested arrays are not supported inside keys"),typeof i=="object"&&QX(i[h])==="[object Object]"&&(i[h]="[object Object]");if(typeof i=="object"&&QX(i)==="[object Object]"&&(i="[object Object]"),i=String(i),e===null&&(e={}),n==="tag:yaml.org,2002:merge")if(Array.isArray(a))for(h=0,f=a.length;h<f;h+=1)ej(t,e,a[h],r);else ej(t,e,a,r);else!t.json&&!Gh.call(r,i)&&Gh.call(e,i)&&(t.line=s||t.line,t.lineStart=l||t.lineStart,t.position=u||t.position,Qt(t,"duplicated mapping key")),i==="__proto__"?Object.defineProperty(e,i,{configurable:!0,enumerable:!0,writable:!0,value:a}):e[i]=a,delete r[i];return e}function hD(t){var e;e=t.input.charCodeAt(t.position),e===10?t.position++:e===13?(t.position++,t.input.charCodeAt(t.position)===10&&t.position++):Qt(t,"a line break is expected"),t.line+=1,t.lineStart=t.position,t.firstTabInLine=-1}function Ci(t,e,r){for(var n=0,i=t.input.charCodeAt(t.position);i!==0;){for(;Nd(i);)i===9&&t.firstTabInLine===-1&&(t.firstTabInLine=t.position),i=t.input.charCodeAt(++t.position);if(e&&i===35)do i=t.input.charCodeAt(++t.position);while(i!==10&&i!==13&&i!==0);if(dc(i))for(hD(t),i=t.input.charCodeAt(t.position),n++,t.lineIndent=0;i===32;)t.lineIndent++,i=t.input.charCodeAt(++t.position);else break}return r!==-1&&n!==0&&t.lineIndent<r&&bw(t,"deficient indentation"),n}function kw(t){var e=t.position,r;return r=t.input.charCodeAt(e),!!((r===45||r===46)&&r===t.input.charCodeAt(e+1)&&r===t.input.charCodeAt(e+2)&&(e+=3,r=t.input.charCodeAt(e),r===0||Ls(r)))}function fD(t,e){e===1?t.result+=" ":e>1&&(t.result+=$i.repeat(`
+`,e-1))}function uAe(t,e,r){var n,i,a,s,l,u,h,f,d=t.kind,p=t.result,m;if(m=t.input.charCodeAt(t.position),Ls(m)||am(m)||m===35||m===38||m===42||m===33||m===124||m===62||m===39||m===34||m===37||m===64||m===96||(m===63||m===45)&&(i=t.input.charCodeAt(t.position+1),Ls(i)||r&&am(i)))return!1;for(t.kind="scalar",t.result="",a=s=t.position,l=!1;m!==0;){if(m===58){if(i=t.input.charCodeAt(t.position+1),Ls(i)||r&&am(i))break}else if(m===35){if(n=t.input.charCodeAt(t.position-1),Ls(n))break}else{if(t.position===t.lineStart&&kw(t)||r&&am(m))break;if(dc(m))if(u=t.line,h=t.lineStart,f=t.lineIndent,Ci(t,!1,-1),t.lineIndent>=e){l=!0,m=t.input.charCodeAt(t.position);continue}else{t.position=s,t.line=u,t.lineStart=h,t.lineIndent=f;break}}l&&(zh(t,a,s,!1),fD(t,t.line-u),a=s=t.position,l=!1),Nd(m)||(s=t.position+1),m=t.input.charCodeAt(++t.position)}return zh(t,a,s,!1),t.result?!0:(t.kind=d,t.result=p,!1)}function hAe(t,e){var r,n,i;if(r=t.input.charCodeAt(t.position),r!==39)return!1;for(t.kind="scalar",t.result="",t.position++,n=i=t.position;(r=t.input.charCodeAt(t.position))!==0;)if(r===39)if(zh(t,n,t.position,!0),r=t.input.charCodeAt(++t.position),r===39)n=t.position,t.position++,i=t.position;else return!0;else dc(r)?(zh(t,n,i,!0),fD(t,Ci(t,!1,e)),n=i=t.position):t.position===t.lineStart&&kw(t)?Qt(t,"unexpected end of the document within a single quoted scalar"):(t.position++,i=t.position);Qt(t,"unexpected end of the stream within a single quoted scalar")}function fAe(t,e){var r,n,i,a,s,l;if(l=t.input.charCodeAt(t.position),l!==34)return!1;for(t.kind="scalar",t.result="",t.position++,r=n=t.position;(l=t.input.charCodeAt(t.position))!==0;){if(l===34)return zh(t,r,t.position,!0),t.position++,!0;if(l===92){if(zh(t,r,t.position,!0),l=t.input.charCodeAt(++t.position),dc(l))Ci(t,!1,e);else if(l<256&&bj[l])t.result+=wj[l],t.position++;else if((s=sAe(l))>0){for(i=s,a=0;i>0;i--)l=t.input.charCodeAt(++t.position),(s=aAe(l))>=0?a=(a<<4)+s:Qt(t,"expected hexadecimal character");t.result+=lAe(a),t.position++}else Qt(t,"unknown escape sequence");r=n=t.position}else dc(l)?(zh(t,r,n,!0),fD(t,Ci(t,!1,e)),r=n=t.position):t.position===t.lineStart&&kw(t)?Qt(t,"unexpected end of the document within a double quoted scalar"):(t.position++,n=t.position)}Qt(t,"unexpected end of the stream within a double quoted scalar")}function dAe(t,e){var r=!0,n,i,a,s=t.tag,l,u=t.anchor,h,f,d,p,m,g=Object.create(null),y,v,x,b;if(b=t.input.charCodeAt(t.position),b===91)f=93,m=!1,l=[];else if(b===123)f=125,m=!0,l={};else return!1;for(t.anchor!==null&&(t.anchorMap[t.anchor]=l),b=t.input.charCodeAt(++t.position);b!==0;){if(Ci(t,!0,e),b=t.input.charCodeAt(t.position),b===f)return t.position++,t.tag=s,t.anchor=u,t.kind=m?"mapping":"sequence",t.result=l,!0;r?b===44&&Qt(t,"expected the node content, but found ','"):Qt(t,"missed comma between flow collection entries"),v=y=x=null,d=p=!1,b===63&&(h=t.input.charCodeAt(t.position+1),Ls(h)&&(d=p=!0,t.position++,Ci(t,!0,e))),n=t.line,i=t.lineStart,a=t.position,om(t,e,vw,!1,!0),v=t.tag,y=t.result,Ci(t,!0,e),b=t.input.charCodeAt(t.position),(p||t.line===n)&&b===58&&(d=!0,b=t.input.charCodeAt(++t.position),Ci(t,!0,e),om(t,e,vw,!1,!0),x=t.result),m?sm(t,l,g,v,y,x,n,i,a):d?l.push(sm(t,null,g,v,y,x,n,i,a)):l.push(y),Ci(t,!0,e),b=t.input.charCodeAt(t.position),b===44?(r=!0,b=t.input.charCodeAt(++t.position)):r=!1}Qt(t,"unexpected end of the stream within a flow collection")}function pAe(t,e){var r,n,i=iD,a=!1,s=!1,l=e,u=0,h=!1,f,d;if(d=t.input.charCodeAt(t.position),d===124)n=!1;else if(d===62)n=!0;else return!1;for(t.kind="scalar",t.result="";d!==0;)if(d=t.input.charCodeAt(++t.position),d===43||d===45)iD===i?i=d===43?KX:tAe:Qt(t,"repeat of a chomping mode identifier");else if((f=oAe(d))>=0)f===0?Qt(t,"bad explicit indentation width of a block scalar; it cannot be less than one"):s?Qt(t,"repeat of an indentation width identifier"):(l=e+f-1,s=!0);else break;if(Nd(d)){do d=t.input.charCodeAt(++t.position);while(Nd(d));if(d===35)do d=t.input.charCodeAt(++t.position);while(!dc(d)&&d!==0)}for(;d!==0;){for(hD(t),t.lineIndent=0,d=t.input.charCodeAt(t.position);(!s||t.lineIndent<l)&&d===32;)t.lineIndent++,d=t.input.charCodeAt(++t.position);if(!s&&t.lineIndent>l&&(l=t.lineIndent),dc(d)){u++;continue}if(t.lineIndent<l){i===KX?t.result+=$i.repeat(`
+`,a?1+u:u):i===iD&&a&&(t.result+=`
+`);break}for(n?Nd(d)?(h=!0,t.result+=$i.repeat(`
+`,a?1+u:u)):h?(h=!1,t.result+=$i.repeat(`
+`,u+1)):u===0?a&&(t.result+=" "):t.result+=$i.repeat(`
+`,u):t.result+=$i.repeat(`
+`,a?1+u:u),a=!0,s=!0,u=0,r=t.position;!dc(d)&&d!==0;)d=t.input.charCodeAt(++t.position);zh(t,r,t.position,!1)}return!0}function tj(t,e){var r,n=t.tag,i=t.anchor,a=[],s,l=!1,u;if(t.firstTabInLine!==-1)return!1;for(t.anchor!==null&&(t.anchorMap[t.anchor]=a),u=t.input.charCodeAt(t.position);u!==0&&(t.firstTabInLine!==-1&&(t.position=t.firstTabInLine,Qt(t,"tab characters must not be used in indentation")),!(u!==45||(s=t.input.charCodeAt(t.position+1),!Ls(s))));){if(l=!0,t.position++,Ci(t,!0,-1)&&t.lineIndent<=e){a.push(null),u=t.input.charCodeAt(t.position);continue}if(r=t.line,om(t,e,yj,!1,!0),a.push(t.result),Ci(t,!0,-1),u=t.input.charCodeAt(t.position),(t.line===r||t.lineIndent>e)&&u!==0)Qt(t,"bad indentation of a sequence entry");else if(t.lineIndent<e)break}return l?(t.tag=n,t.anchor=i,t.kind="sequence",t.result=a,!0):!1}function mAe(t,e,r){var n,i,a,s,l,u,h=t.tag,f=t.anchor,d={},p=Object.create(null),m=null,g=null,y=null,v=!1,x=!1,b;if(t.firstTabInLine!==-1)return!1;for(t.anchor!==null&&(t.anchorMap[t.anchor]=d),b=t.input.charCodeAt(t.position);b!==0;){if(!v&&t.firstTabInLine!==-1&&(t.position=t.firstTabInLine,Qt(t,"tab characters must not be used in indentation")),n=t.input.charCodeAt(t.position+1),a=t.line,(b===63||b===58)&&Ls(n))b===63?(v&&(sm(t,d,p,m,g,null,s,l,u),m=g=y=null),x=!0,v=!0,i=!0):v?(v=!1,i=!0):Qt(t,"incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line"),t.position+=1,b=n;else{if(s=t.line,l=t.lineStart,u=t.position,!om(t,r,gj,!1,!0))break;if(t.line===a){for(b=t.input.charCodeAt(t.position);Nd(b);)b=t.input.charCodeAt(++t.position);if(b===58)b=t.input.charCodeAt(++t.position),Ls(b)||Qt(t,"a whitespace character is expected after the key-value separator within a block mapping"),v&&(sm(t,d,p,m,g,null,s,l,u),m=g=y=null),x=!0,v=!1,i=!1,m=t.tag,g=t.result;else if(x)Qt(t,"can not read an implicit mapping pair; a colon is missed");else return t.tag=h,t.anchor=f,!0}else if(x)Qt(t,"can not read a block mapping entry; a multiline key may not be an implicit key");else return t.tag=h,t.anchor=f,!0}if((t.line===a||t.lineIndent>e)&&(v&&(s=t.line,l=t.lineStart,u=t.position),om(t,e,xw,!0,i)&&(v?g=t.result:y=t.result),v||(sm(t,d,p,m,g,y,s,l,u),m=g=y=null),Ci(t,!0,-1),b=t.input.charCodeAt(t.position)),(t.line===a||t.lineIndent>e)&&b!==0)Qt(t,"bad indentation of a mapping entry");else if(t.lineIndent<e)break}return v&&sm(t,d,p,m,g,null,s,l,u),x&&(t.tag=h,t.anchor=f,t.kind="mapping",t.result=d),x}function gAe(t){var e,r=!1,n=!1,i,a,s;if(s=t.input.charCodeAt(t.position),s!==33)return!1;if(t.tag!==null&&Qt(t,"duplication of a tag property"),s=t.input.charCodeAt(++t.position),s===60?(r=!0,s=t.input.charCodeAt(++t.position)):s===33?(n=!0,i="!!",s=t.input.charCodeAt(++t.position)):i="!",e=t.position,r){do s=t.input.charCodeAt(++t.position);while(s!==0&&s!==62);t.position<t.length?(a=t.input.slice(e,t.position),s=t.input.charCodeAt(++t.position)):Qt(t,"unexpected end of the stream within a verbatim tag")}else{for(;s!==0&&!Ls(s);)s===33&&(n?Qt(t,"tag suffix cannot contain exclamation marks"):(i=t.input.slice(e-1,t.position+1),vj.test(i)||Qt(t,"named tag handle cannot contain such characters"),n=!0,e=t.position+1)),s=t.input.charCodeAt(++t.position);a=t.input.slice(e,t.position),iAe.test(a)&&Qt(t,"tag suffix cannot contain flow indicator characters")}a&&!xj.test(a)&&Qt(t,"tag name cannot contain such characters: "+a);try{a=decodeURIComponent(a)}catch{Qt(t,"tag name is malformed: "+a)}return r?t.tag=a:Gh.call(t.tagMap,i)?t.tag=t.tagMap[i]+a:i==="!"?t.tag="!"+a:i==="!!"?t.tag="tag:yaml.org,2002:"+a:Qt(t,'undeclared tag handle "'+i+'"'),!0}function yAe(t){var e,r;if(r=t.input.charCodeAt(t.position),r!==38)return!1;for(t.anchor!==null&&Qt(t,"duplication of an anchor property"),r=t.input.charCodeAt(++t.position),e=t.position;r!==0&&!Ls(r)&&!am(r);)r=t.input.charCodeAt(++t.position);return t.position===e&&Qt(t,"name of an anchor node must contain at least one character"),t.anchor=t.input.slice(e,t.position),!0}function vAe(t){var e,r,n;if(n=t.input.charCodeAt(t.position),n!==42)return!1;for(n=t.input.charCodeAt(++t.position),e=t.position;n!==0&&!Ls(n)&&!am(n);)n=t.input.charCodeAt(++t.position);return t.position===e&&Qt(t,"name of an alias node must contain at least one character"),r=t.input.slice(e,t.position),Gh.call(t.anchorMap,r)||Qt(t,'unidentified alias "'+r+'"'),t.result=t.anchorMap[r],Ci(t,!0,-1),!0}function om(t,e,r,n,i){var a,s,l,u=1,h=!1,f=!1,d,p,m,g,y,v;if(t.listener!==null&&t.listener("open",t),t.tag=null,t.anchor=null,t.kind=null,t.result=null,a=s=l=xw===r||yj===r,n&&Ci(t,!0,-1)&&(h=!0,t.lineIndent>e?u=1:t.lineIndent===e?u=0:t.lineIndent<e&&(u=-1)),u===1)for(;gAe(t)||yAe(t);)Ci(t,!0,-1)?(h=!0,l=a,t.lineIndent>e?u=1:t.lineIndent===e?u=0:t.lineIndent<e&&(u=-1)):l=!1;if(l&&(l=h||i),(u===1||xw===r)&&(vw===r||gj===r?y=e:y=e+1,v=t.position-t.lineStart,u===1?l&&(tj(t,v)||mAe(t,v,y))||dAe(t,y)?f=!0:(s&&pAe(t,y)||hAe(t,y)||fAe(t,y)?f=!0:vAe(t)?(f=!0,(t.tag!==null||t.anchor!==null)&&Qt(t,"alias node should not have any properties")):uAe(t,y,vw===r)&&(f=!0,t.tag===null&&(t.tag="?")),t.anchor!==null&&(t.anchorMap[t.anchor]=t.result)):u===0&&(f=l&&tj(t,v))),t.tag===null)t.anchor!==null&&(t.anchorMap[t.anchor]=t.result);else if(t.tag==="?"){for(t.result!==null&&t.kind!=="scalar"&&Qt(t,'unacceptable node kind for !<?> tag; it should be "scalar", not "'+t.kind+'"'),d=0,p=t.implicitTypes.length;d<p;d+=1)if(g=t.implicitTypes[d],g.resolve(t.result)){t.result=g.construct(t.result),t.tag=g.tag,t.anchor!==null&&(t.anchorMap[t.anchor]=t.result);break}}else if(t.tag!=="!"){if(Gh.call(t.typeMap[t.kind||"fallback"],t.tag))g=t.typeMap[t.kind||"fallback"][t.tag];else for(g=null,m=t.typeMap.multi[t.kind||"fallback"],d=0,p=m.length;d<p;d+=1)if(t.tag.slice(0,m[d].tag.length)===m[d].tag){g=m[d];break}g||Qt(t,"unknown tag !<"+t.tag+">"),t.result!==null&&g.kind!==t.kind&&Qt(t,"unacceptable node kind for !<"+t.tag+'> tag; it should be "'+g.kind+'", not "'+t.kind+'"'),g.resolve(t.result,t.tag)?(t.result=g.construct(t.result,t.tag),t.anchor!==null&&(t.anchorMap[t.anchor]=t.result)):Qt(t,"cannot resolve a node with !<"+t.tag+"> explicit tag")}return t.listener!==null&&t.listener("close",t),t.tag!==null||t.anchor!==null||f}function xAe(t){var e=t.position,r,n,i,a=!1,s;for(t.version=null,t.checkLineBreaks=t.legacy,t.tagMap=Object.create(null),t.anchorMap=Object.create(null);(s=t.input.charCodeAt(t.position))!==0&&(Ci(t,!0,-1),s=t.input.charCodeAt(t.position),!(t.lineIndent>0||s!==37));){for(a=!0,s=t.input.charCodeAt(++t.position),r=t.position;s!==0&&!Ls(s);)s=t.input.charCodeAt(++t.position);for(n=t.input.slice(r,t.position),i=[],n.length<1&&Qt(t,"directive name must not be less than one character in length");s!==0;){for(;Nd(s);)s=t.input.charCodeAt(++t.position);if(s===35){do s=t.input.charCodeAt(++t.position);while(s!==0&&!dc(s));break}if(dc(s))break;for(r=t.position;s!==0&&!Ls(s);)s=t.input.charCodeAt(++t.position);i.push(t.input.slice(r,t.position))}s!==0&&hD(t),Gh.call(JX,n)?JX[n](t,n,i):bw(t,'unknown document directive "'+n+'"')}if(Ci(t,!0,-1),t.lineIndent===0&&t.input.charCodeAt(t.position)===45&&t.input.charCodeAt(t.position+1)===45&&t.input.charCodeAt(t.position+2)===45?(t.position+=3,Ci(t,!0,-1)):a&&Qt(t,"directives end mark is expected"),om(t,t.lineIndent-1,xw,!1,!0),Ci(t,!0,-1),t.checkLineBreaks&&nAe.test(t.input.slice(e,t.position))&&bw(t,"non-ASCII line breaks are interpreted as content"),t.documents.push(t.result),t.position===t.lineStart&&kw(t)){t.input.charCodeAt(t.position)===46&&(t.position+=3,Ci(t,!0,-1));return}if(t.position<t.length-1)Qt(t,"end of the stream or a document separator is expected");else return}function kj(t,e){t=String(t),e=e||{},t.length!==0&&(t.charCodeAt(t.length-1)!==10&&t.charCodeAt(t.length-1)!==13&&(t+=`
+`),t.charCodeAt(0)===65279&&(t=t.slice(1)));var r=new cAe(t,e),n=t.indexOf("\0");for(n!==-1&&(r.position=n,Qt(r,"null byte is not allowed in input")),r.input+="\0";r.input.charCodeAt(r.position)===32;)r.lineIndent+=1,r.position+=1;for(;r.position<r.length-1;)xAe(r);return r.documents}function bAe(t,e,r){e!==null&&typeof e=="object"&&typeof r>"u"&&(r=e,e=null);var n=kj(t,r);if(typeof e!="function")return n;for(var i=0,a=n.length;i<a;i+=1)e(n[i])}function wAe(t,e){var r=kj(t,e);if(r.length!==0){if(r.length===1)return r[0];throw new Ds("expected a single document in the stream, but found more")}}function VAe(t,e){var r,n,i,a,s,l,u;if(e===null)return{};for(r={},n=Object.keys(e),i=0,a=n.length;i<a;i+=1)s=n[i],l=String(e[s]),s.slice(0,2)==="!!"&&(s="tag:yaml.org,2002:"+s.slice(2)),u=t.compiledTypeMap.fallback[s],u&&Cj.call(u.styleAliases,l)&&(l=u.styleAliases[l]),r[s]=l;return r}function UAe(t){var e,r,n;if(e=t.toString(16).toUpperCase(),t<=255)r="x",n=2;else if(t<=65535)r="u",n=4;else if(t<=4294967295)r="U",n=8;else throw new Ds("code point within a string may not be greater than 0xFFFFFFFF");return"\\"+r+$i.repeat("0",n-e.length)+e}function WAe(t){this.schema=t.schema||mj,this.indent=Math.max(1,t.indent||2),this.noArrayIndent=t.noArrayIndent||!1,this.skipInvalid=t.skipInvalid||!1,this.flowLevel=$i.isNothing(t.flowLevel)?-1:t.flowLevel,this.styleMap=VAe(this.schema,t.styles||null),this.sortKeys=t.sortKeys||!1,this.lineWidth=t.lineWidth||80,this.noRefs=t.noRefs||!1,this.noCompatMode=t.noCompatMode||!1,this.condenseFlow=t.condenseFlow||!1,this.quotingType=t.quotingType==='"'?c2:HAe,this.forceQuotes=t.forceQuotes||!1,this.replacer=typeof t.replacer=="function"?t.replacer:null,this.implicitTypes=this.schema.compiledImplicit,this.explicitTypes=this.schema.compiledExplicit,this.tag=null,this.result="",this.duplicates=[],this.usedDuplicates=null}function rj(t,e){for(var r=$i.repeat(" ",e),n=0,i=-1,a="",s,l=t.length;n<l;)i=t.indexOf(`
+`,n),i===-1?(s=t.slice(n),n=l):(s=t.slice(n,i+1),n=i+1),s.length&&s!==`
+`&&(a+=r),a+=s;return a}function oD(t,e){return`
+`+$i.repeat(" ",t.indent*e)}function qAe(t,e){var r,n,i;for(r=0,n=t.implicitTypes.length;r<n;r+=1)if(i=t.implicitTypes[r],i.resolve(e))return!0;return!1}function Tw(t){return t===CAe||t===EAe}function u2(t){return 32<=t&&t<=126||161<=t&&t<=55295&&t!==8232&&t!==8233||57344<=t&&t<=65533&&t!==dD||65536<=t&&t<=1114111}function nj(t){return u2(t)&&t!==dD&&t!==SAe&&t!==l2}function ij(t,e,r){var n=nj(t),i=n&&!Tw(t);return(r?n:n&&t!==Aj&&t!==_j&&t!==Dj&&t!==Lj&&t!==Rj)&&t!==sD&&!(e===ww&&!i)||nj(e)&&!Tw(e)&&t===sD||e===ww&&i}function YAe(t){return u2(t)&&t!==dD&&!Tw(t)&&t!==MAe&&t!==PAe&&t!==ww&&t!==Aj&&t!==_j&&t!==Dj&&t!==Lj&&t!==Rj&&t!==sD&&t!==LAe&&t!==NAe&&t!==AAe&&t!==$Ae&&t!==IAe&&t!==OAe&&t!==RAe&&t!==_Ae&&t!==DAe&&t!==BAe&&t!==FAe}function XAe(t){return!Tw(t)&&t!==ww}function s2(t,e){var r=t.charCodeAt(e),n;return r>=55296&&r<=56319&&e+1<t.length&&(n=t.charCodeAt(e+1),n>=56320&&n<=57343)?(r-55296)*1024+n-56320+65536:r}function Nj(t){var e=/^\n* /;return e.test(t)}function jAe(t,e,r,n,i,a,s,l){var u,h=0,f=null,d=!1,p=!1,m=n!==-1,g=-1,y=YAe(s2(t,0))&&XAe(s2(t,t.length-1));if(e||s)for(u=0;u<t.length;h>=65536?u+=2:u++){if(h=s2(t,u),!u2(h))return im;y=y&&ij(h,f,l),f=h}else{for(u=0;u<t.length;h>=65536?u+=2:u++){if(h=s2(t,u),h===l2)d=!0,m&&(p=p||u-g-1>n&&t[g+1]!==" ",g=u);else if(!u2(h))return im;y=y&&ij(h,f,l),f=h}p=p||m&&u-g-1>n&&t[g+1]!==" "}return!d&&!p?y&&!s&&!i(t)?Mj:a===c2?im:lD:r>9&&Nj(t)?im:s?a===c2?im:lD:p?Oj:Ij}function KAe(t,e,r,n,i){t.dump=function(){if(e.length===0)return t.quotingType===c2?'""':"''";if(!t.noCompatMode&&(zAe.indexOf(e)!==-1||GAe.test(e)))return t.quotingType===c2?'"'+e+'"':"'"+e+"'";var a=t.indent*Math.max(1,r),s=t.lineWidth===-1?-1:Math.max(Math.min(t.lineWidth,40),t.lineWidth-a),l=n||t.flowLevel>-1&&r>=t.flowLevel;function u(h){return qAe(t,h)}switch(o(u,"testAmbiguity"),jAe(e,l,t.indent,s,u,t.quotingType,t.forceQuotes&&!n,i)){case Mj:return e;case lD:return"'"+e.replace(/'/g,"''")+"'";case Ij:return"|"+aj(e,t.indent)+sj(rj(e,a));case Oj:return">"+aj(e,t.indent)+sj(rj(QAe(e,s),a));case im:return'"'+ZAe(e)+'"';default:throw new Ds("impossible error: invalid scalar style")}}()}function aj(t,e){var r=Nj(t)?String(e):"",n=t[t.length-1]===`
+`,i=n&&(t[t.length-2]===`
+`||t===`
+`),a=i?"+":n?"":"-";return r+a+`
+`}function sj(t){return t[t.length-1]===`
+`?t.slice(0,-1):t}function QAe(t,e){for(var r=/(\n+)([^\n]*)/g,n=function(){var h=t.indexOf(`
+`);return h=h!==-1?h:t.length,r.lastIndex=h,oj(t.slice(0,h),e)}(),i=t[0]===`
+`||t[0]===" ",a,s;s=r.exec(t);){var l=s[1],u=s[2];a=u[0]===" ",n+=l+(!i&&!a&&u!==""?`
+`:"")+oj(u,e),i=a}return n}function oj(t,e){if(t===""||t[0]===" ")return t;for(var r=/ [^ ]/g,n,i=0,a,s=0,l=0,u="";n=r.exec(t);)l=n.index,l-i>e&&(a=s>i?s:l,u+=`
+`+t.slice(i,a),i=a+1),s=l;return u+=`
+`,t.length-i>e&&s>i?u+=t.slice(i,s)+`
+`+t.slice(s+1):u+=t.slice(i),u.slice(1)}function ZAe(t){for(var e="",r=0,n,i=0;i<t.length;r>=65536?i+=2:i++)r=s2(t,i),n=Da[r],!n&&u2(r)?(e+=t[i],r>=65536&&(e+=t[i+1])):e+=n||UAe(r);return e}function JAe(t,e,r){var n="",i=t.tag,a,s,l;for(a=0,s=r.length;a<s;a+=1)l=r[a],t.replacer&&(l=t.replacer.call(r,String(a),l)),(Au(t,e,l,!1,!1)||typeof l>"u"&&Au(t,e,null,!1,!1))&&(n!==""&&(n+=","+(t.condenseFlow?"":" ")),n+=t.dump);t.tag=i,t.dump="["+n+"]"}function lj(t,e,r,n){var i="",a=t.tag,s,l,u;for(s=0,l=r.length;s<l;s+=1)u=r[s],t.replacer&&(u=t.replacer.call(r,String(s),u)),(Au(t,e+1,u,!0,!0,!1,!0)||typeof u>"u"&&Au(t,e+1,null,!0,!0,!1,!0))&&((!n||i!=="")&&(i+=oD(t,e)),t.dump&&l2===t.dump.charCodeAt(0)?i+="-":i+="- ",i+=t.dump);t.tag=a,t.dump=i||"[]"}function e8e(t,e,r){var n="",i=t.tag,a=Object.keys(r),s,l,u,h,f;for(s=0,l=a.length;s<l;s+=1)f="",n!==""&&(f+=", "),t.condenseFlow&&(f+='"'),u=a[s],h=r[u],t.replacer&&(h=t.replacer.call(r,u,h)),Au(t,e,u,!1,!1)&&(t.dump.length>1024&&(f+="? "),f+=t.dump+(t.condenseFlow?'"':"")+":"+(t.condenseFlow?"":" "),Au(t,e,h,!1,!1)&&(f+=t.dump,n+=f));t.tag=i,t.dump="{"+n+"}"}function t8e(t,e,r,n){var i="",a=t.tag,s=Object.keys(r),l,u,h,f,d,p;if(t.sortKeys===!0)s.sort();else if(typeof t.sortKeys=="function")s.sort(t.sortKeys);else if(t.sortKeys)throw new Ds("sortKeys must be a boolean or a function");for(l=0,u=s.length;l<u;l+=1)p="",(!n||i!=="")&&(p+=oD(t,e)),h=s[l],f=r[h],t.replacer&&(f=t.replacer.call(r,h,f)),Au(t,e+1,h,!0,!0,!0)&&(d=t.tag!==null&&t.tag!=="?"||t.dump&&t.dump.length>1024,d&&(t.dump&&l2===t.dump.charCodeAt(0)?p+="?":p+="? "),p+=t.dump,d&&(p+=oD(t,e)),Au(t,e+1,f,!0,d)&&(t.dump&&l2===t.dump.charCodeAt(0)?p+=":":p+=": ",p+=t.dump,i+=p));t.tag=a,t.dump=i||"{}"}function cj(t,e,r){var n,i,a,s,l,u;for(i=r?t.explicitTypes:t.implicitTypes,a=0,s=i.length;a<s;a+=1)if(l=i[a],(l.instanceOf||l.predicate)&&(!l.instanceOf||typeof e=="object"&&e instanceof l.instanceOf)&&(!l.predicate||l.predicate(e))){if(r?l.multi&&l.representName?t.tag=l.representName(e):t.tag=l.tag:t.tag="?",l.represent){if(u=t.styleMap[l.tag]||l.defaultStyle,Sj.call(l.represent)==="[object Function]")n=l.represent(e,u);else if(Cj.call(l.represent,u))n=l.represent[u](e,u);else throw new Ds("!<"+l.tag+'> tag resolver accepts not "'+u+'" style');t.dump=n}return!0}return!1}function Au(t,e,r,n,i,a,s){t.tag=null,t.dump=r,cj(t,r,!1)||cj(t,r,!0);var l=Sj.call(t.dump),u=n,h;n&&(n=t.flowLevel<0||t.flowLevel>e);var f=l==="[object Object]"||l==="[object Array]",d,p;if(f&&(d=t.duplicates.indexOf(r),p=d!==-1),(t.tag!==null&&t.tag!=="?"||p||t.indent!==2&&e>0)&&(i=!1),p&&t.usedDuplicates[d])t.dump="*ref_"+d;else{if(f&&p&&!t.usedDuplicates[d]&&(t.usedDuplicates[d]=!0),l==="[object Object]")n&&Object.keys(t.dump).length!==0?(t8e(t,e,t.dump,i),p&&(t.dump="&ref_"+d+t.dump)):(e8e(t,e,t.dump),p&&(t.dump="&ref_"+d+" "+t.dump));else if(l==="[object Array]")n&&t.dump.length!==0?(t.noArrayIndent&&!s&&e>0?lj(t,e-1,t.dump,i):lj(t,e,t.dump,i),p&&(t.dump="&ref_"+d+t.dump)):(JAe(t,e,t.dump),p&&(t.dump="&ref_"+d+" "+t.dump));else if(l==="[object String]")t.tag!=="?"&&KAe(t,t.dump,e,a,u);else{if(l==="[object Undefined]")return!1;if(t.skipInvalid)return!1;throw new Ds("unacceptable kind of an object to dump "+l)}t.tag!==null&&t.tag!=="?"&&(h=encodeURI(t.tag[0]==="!"?t.tag.slice(1):t.tag).replace(/!/g,"%21"),t.tag[0]==="!"?h="!"+h:h.slice(0,18)==="tag:yaml.org,2002:"?h="!!"+h.slice(18):h="!<"+h+">",t.dump=h+" "+t.dump)}return!0}function r8e(t,e){var r=[],n=[],i,a;for(cD(t,r,n),i=0,a=n.length;i<a;i+=1)e.duplicates.push(r[n[i]]);e.usedDuplicates=new Array(a)}function cD(t,e,r){var n,i,a;if(t!==null&&typeof t=="object")if(i=e.indexOf(t),i!==-1)r.indexOf(i)===-1&&r.push(i);else if(e.push(t),Array.isArray(t))for(i=0,a=t.length;i<a;i+=1)cD(t[i],e,r);else for(n=Object.keys(t),i=0,a=n.length;i<a;i+=1)cD(t[n[i]],e,r)}function n8e(t,e){e=e||{};var r=new WAe(e);r.noRefs||r8e(t,r);var n=t;return r.replacer&&(n=r.replacer.call({"":n},"",n)),Au(r,0,n,!0,!0)?r.dump+`
+`:""}function pD(t,e){return function(){throw new Error("Function yaml."+t+" is removed in js-yaml 4. Use yaml."+e+" instead, which is now safe by default.")}}var HCe,WCe,qCe,YCe,XCe,jCe,$i,Ds,QCe,ZCe,JCe,_a,n7e,i7e,a7e,s7e,o7e,h7e,m7e,T7e,k7e,C7e,D7e,fj,L7e,dj,pj,I7e,P7e,uD,G7e,V7e,U7e,q7e,Y7e,K7e,Q7e,eAe,mj,Gh,vw,gj,yj,xw,iD,tAe,KX,rAe,nAe,iAe,vj,xj,bj,wj,Rd,JX,TAe,kAe,Ej,Sj,Cj,dD,EAe,l2,SAe,CAe,AAe,_Ae,sD,DAe,LAe,RAe,NAe,Aj,MAe,ww,IAe,OAe,PAe,BAe,_j,Dj,FAe,Lj,$Ae,Rj,Da,zAe,GAe,HAe,c2,Mj,lD,Ij,Oj,im,i8e,a8e,lm,cm,okt,lkt,ckt,ukt,hkt,Ew=N(()=>{"use strict";o(uj,"isNothing");o($Ce,"isObject");o(zCe,"toArray");o(GCe,"extend");o(VCe,"repeat");o(UCe,"isNegativeZero");HCe=uj,WCe=$Ce,qCe=zCe,YCe=VCe,XCe=UCe,jCe=GCe,$i={isNothing:HCe,isObject:WCe,toArray:qCe,repeat:YCe,isNegativeZero:XCe,extend:jCe};o(hj,"formatError");o(o2,"YAMLException$1");o2.prototype=Object.create(Error.prototype);o2.prototype.constructor=o2;o2.prototype.toString=o(function(e){return this.name+": "+hj(this,e)},"toString");Ds=o2;o(rD,"getLine");o(nD,"padStart");o(KCe,"makeSnippet");QCe=KCe,ZCe=["kind","multi","resolve","construct","instanceOf","predicate","represent","representName","defaultStyle","styleAliases"],JCe=["scalar","sequence","mapping"];o(e7e,"compileStyleAliases");o(t7e,"Type$1");_a=t7e;o(jX,"compileList");o(r7e,"compileMap");o(aD,"Schema$1");aD.prototype.extend=o(function(e){var r=[],n=[];if(e instanceof _a)n.push(e);else if(Array.isArray(e))n=n.concat(e);else if(e&&(Array.isArray(e.implicit)||Array.isArray(e.explicit)))e.implicit&&(r=r.concat(e.implicit)),e.explicit&&(n=n.concat(e.explicit));else throw new Ds("Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })");r.forEach(function(a){if(!(a instanceof _a))throw new Ds("Specified list of YAML types (or a single Type object) contains a non-Type object.");if(a.loadKind&&a.loadKind!=="scalar")throw new Ds("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.");if(a.multi)throw new Ds("There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.")}),n.forEach(function(a){if(!(a instanceof _a))throw new Ds("Specified list of YAML types (or a single Type object) contains a non-Type object.")});var i=Object.create(aD.prototype);return i.implicit=(this.implicit||[]).concat(r),i.explicit=(this.explicit||[]).concat(n),i.compiledImplicit=jX(i,"implicit"),i.compiledExplicit=jX(i,"explicit"),i.compiledTypeMap=r7e(i.compiledImplicit,i.compiledExplicit),i},"extend");n7e=aD,i7e=new _a("tag:yaml.org,2002:str",{kind:"scalar",construct:o(function(t){return t!==null?t:""},"construct")}),a7e=new _a("tag:yaml.org,2002:seq",{kind:"sequence",construct:o(function(t){return t!==null?t:[]},"construct")}),s7e=new _a("tag:yaml.org,2002:map",{kind:"mapping",construct:o(function(t){return t!==null?t:{}},"construct")}),o7e=new n7e({explicit:[i7e,a7e,s7e]});o(l7e,"resolveYamlNull");o(c7e,"constructYamlNull");o(u7e,"isNull");h7e=new _a("tag:yaml.org,2002:null",{kind:"scalar",resolve:l7e,construct:c7e,predicate:u7e,represent:{canonical:o(function(){return"~"},"canonical"),lowercase:o(function(){return"null"},"lowercase"),uppercase:o(function(){return"NULL"},"uppercase"),camelcase:o(function(){return"Null"},"camelcase"),empty:o(function(){return""},"empty")},defaultStyle:"lowercase"});o(f7e,"resolveYamlBoolean");o(d7e,"constructYamlBoolean");o(p7e,"isBoolean");m7e=new _a("tag:yaml.org,2002:bool",{kind:"scalar",resolve:f7e,construct:d7e,predicate:p7e,represent:{lowercase:o(function(t){return t?"true":"false"},"lowercase"),uppercase:o(function(t){return t?"TRUE":"FALSE"},"uppercase"),camelcase:o(function(t){return t?"True":"False"},"camelcase")},defaultStyle:"lowercase"});o(g7e,"isHexCode");o(y7e,"isOctCode");o(v7e,"isDecCode");o(x7e,"resolveYamlInteger");o(b7e,"constructYamlInteger");o(w7e,"isInteger");T7e=new _a("tag:yaml.org,2002:int",{kind:"scalar",resolve:x7e,construct:b7e,predicate:w7e,represent:{binary:o(function(t){return t>=0?"0b"+t.toString(2):"-0b"+t.toString(2).slice(1)},"binary"),octal:o(function(t){return t>=0?"0o"+t.toString(8):"-0o"+t.toString(8).slice(1)},"octal"),decimal:o(function(t){return t.toString(10)},"decimal"),hexadecimal:o(function(t){return t>=0?"0x"+t.toString(16).toUpperCase():"-0x"+t.toString(16).toUpperCase().slice(1)},"hexadecimal")},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),k7e=new RegExp("^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");o(E7e,"resolveYamlFloat");o(S7e,"constructYamlFloat");C7e=/^[-+]?[0-9]+e/;o(A7e,"representYamlFloat");o(_7e,"isFloat");D7e=new _a("tag:yaml.org,2002:float",{kind:"scalar",resolve:E7e,construct:S7e,predicate:_7e,represent:A7e,defaultStyle:"lowercase"}),fj=o7e.extend({implicit:[h7e,m7e,T7e,D7e]}),L7e=fj,dj=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),pj=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");o(R7e,"resolveYamlTimestamp");o(N7e,"constructYamlTimestamp");o(M7e,"representYamlTimestamp");I7e=new _a("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:R7e,construct:N7e,instanceOf:Date,represent:M7e});o(O7e,"resolveYamlMerge");P7e=new _a("tag:yaml.org,2002:merge",{kind:"scalar",resolve:O7e}),uD=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=
+\r`;o(B7e,"resolveYamlBinary");o(F7e,"constructYamlBinary");o($7e,"representYamlBinary");o(z7e,"isBinary");G7e=new _a("tag:yaml.org,2002:binary",{kind:"scalar",resolve:B7e,construct:F7e,predicate:z7e,represent:$7e}),V7e=Object.prototype.hasOwnProperty,U7e=Object.prototype.toString;o(H7e,"resolveYamlOmap");o(W7e,"constructYamlOmap");q7e=new _a("tag:yaml.org,2002:omap",{kind:"sequence",resolve:H7e,construct:W7e}),Y7e=Object.prototype.toString;o(X7e,"resolveYamlPairs");o(j7e,"constructYamlPairs");K7e=new _a("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:X7e,construct:j7e}),Q7e=Object.prototype.hasOwnProperty;o(Z7e,"resolveYamlSet");o(J7e,"constructYamlSet");eAe=new _a("tag:yaml.org,2002:set",{kind:"mapping",resolve:Z7e,construct:J7e}),mj=L7e.extend({implicit:[I7e,P7e],explicit:[G7e,q7e,K7e,eAe]}),Gh=Object.prototype.hasOwnProperty,vw=1,gj=2,yj=3,xw=4,iD=1,tAe=2,KX=3,rAe=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,nAe=/[\x85\u2028\u2029]/,iAe=/[,\[\]\{\}]/,vj=/^(?:!|!!|![a-z\-]+!)$/i,xj=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;o(QX,"_class");o(dc,"is_EOL");o(Nd,"is_WHITE_SPACE");o(Ls,"is_WS_OR_EOL");o(am,"is_FLOW_INDICATOR");o(aAe,"fromHexCode");o(sAe,"escapedHexLen");o(oAe,"fromDecimalCode");o(ZX,"simpleEscapeSequence");o(lAe,"charFromCodepoint");bj=new Array(256),wj=new Array(256);for(Rd=0;Rd<256;Rd++)bj[Rd]=ZX(Rd)?1:0,wj[Rd]=ZX(Rd);o(cAe,"State$1");o(Tj,"generateError");o(Qt,"throwError");o(bw,"throwWarning");JX={YAML:o(function(e,r,n){var i,a,s;e.version!==null&&Qt(e,"duplication of %YAML directive"),n.length!==1&&Qt(e,"YAML directive accepts exactly one argument"),i=/^([0-9]+)\.([0-9]+)$/.exec(n[0]),i===null&&Qt(e,"ill-formed argument of the YAML directive"),a=parseInt(i[1],10),s=parseInt(i[2],10),a!==1&&Qt(e,"unacceptable YAML version of the document"),e.version=n[0],e.checkLineBreaks=s<2,s!==1&&s!==2&&bw(e,"unsupported YAML version of the document")},"handleYamlDirective"),TAG:o(function(e,r,n){var i,a;n.length!==2&&Qt(e,"TAG directive accepts exactly two arguments"),i=n[0],a=n[1],vj.test(i)||Qt(e,"ill-formed tag handle (first argument) of the TAG directive"),Gh.call(e.tagMap,i)&&Qt(e,'there is a previously declared suffix for "'+i+'" tag handle'),xj.test(a)||Qt(e,"ill-formed tag prefix (second argument) of the TAG directive");try{a=decodeURIComponent(a)}catch{Qt(e,"tag prefix is malformed: "+a)}e.tagMap[i]=a},"handleTagDirective")};o(zh,"captureSegment");o(ej,"mergeMappings");o(sm,"storeMappingPair");o(hD,"readLineBreak");o(Ci,"skipSeparationSpace");o(kw,"testDocumentSeparator");o(fD,"writeFoldedLines");o(uAe,"readPlainScalar");o(hAe,"readSingleQuotedScalar");o(fAe,"readDoubleQuotedScalar");o(dAe,"readFlowCollection");o(pAe,"readBlockScalar");o(tj,"readBlockSequence");o(mAe,"readBlockMapping");o(gAe,"readTagProperty");o(yAe,"readAnchorProperty");o(vAe,"readAlias");o(om,"composeNode");o(xAe,"readDocument");o(kj,"loadDocuments");o(bAe,"loadAll$1");o(wAe,"load$1");TAe=bAe,kAe=wAe,Ej={loadAll:TAe,load:kAe},Sj=Object.prototype.toString,Cj=Object.prototype.hasOwnProperty,dD=65279,EAe=9,l2=10,SAe=13,CAe=32,AAe=33,_Ae=34,sD=35,DAe=37,LAe=38,RAe=39,NAe=42,Aj=44,MAe=45,ww=58,IAe=61,OAe=62,PAe=63,BAe=64,_j=91,Dj=93,FAe=96,Lj=123,$Ae=124,Rj=125,Da={};Da[0]="\\0";Da[7]="\\a";Da[8]="\\b";Da[9]="\\t";Da[10]="\\n";Da[11]="\\v";Da[12]="\\f";Da[13]="\\r";Da[27]="\\e";Da[34]='\\"';Da[92]="\\\\";Da[133]="\\N";Da[160]="\\_";Da[8232]="\\L";Da[8233]="\\P";zAe=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"],GAe=/^[-+]?[0-9_]+(?::[0-9_]+)+(?:\.[0-9_]*)?$/;o(VAe,"compileStyleMap");o(UAe,"encodeHex");HAe=1,c2=2;o(WAe,"State");o(rj,"indentString");o(oD,"generateNextLine");o(qAe,"testImplicitResolving");o(Tw,"isWhitespace");o(u2,"isPrintable");o(nj,"isNsCharOrWhitespace");o(ij,"isPlainSafe");o(YAe,"isPlainSafeFirst");o(XAe,"isPlainSafeLast");o(s2,"codePointAt");o(Nj,"needIndentIndicator");Mj=1,lD=2,Ij=3,Oj=4,im=5;o(jAe,"chooseScalarStyle");o(KAe,"writeScalar");o(aj,"blockHeader");o(sj,"dropEndingNewline");o(QAe,"foldString");o(oj,"foldLine");o(ZAe,"escapeString");o(JAe,"writeFlowSequence");o(lj,"writeBlockSequence");o(e8e,"writeFlowMapping");o(t8e,"writeBlockMapping");o(cj,"detectType");o(Au,"writeNode");o(r8e,"getDuplicateReferences");o(cD,"inspectNode");o(n8e,"dump$1");i8e=n8e,a8e={dump:i8e};o(pD,"renamed");lm=fj,cm=Ej.load,okt=Ej.loadAll,lkt=a8e.dump,ckt=pD("safeLoad","load"),ukt=pD("safeLoadAll","loadAll"),hkt=pD("safeDump","dump")});function vD(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}function Gj(t){Id=t}function nn(t,e=""){let r=typeof t=="string"?t:t.source,n={replace:o((i,a)=>{let s=typeof a=="string"?a:a.source;return s=s.replace(ts.caret,"$1"),r=r.replace(i,s),n},"replace"),getRegex:o(()=>new RegExp(r,e),"getRegex")};return n}function pc(t,e){if(e){if(ts.escapeTest.test(t))return t.replace(ts.escapeReplace,Bj)}else if(ts.escapeTestNoEncode.test(t))return t.replace(ts.escapeReplaceNoEncode,Bj);return t}function Fj(t){try{t=encodeURI(t).replace(ts.percentDecode,"%")}catch{return null}return t}function $j(t,e){let r=t.replace(ts.findPipe,(a,s,l)=>{let u=!1,h=s;for(;--h>=0&&l[h]==="\\";)u=!u;return u?"|":" |"}),n=r.split(ts.splitPipe),i=0;if(n[0].trim()||n.shift(),n.length>0&&!n.at(-1)?.trim()&&n.pop(),e)if(n.length>e)n.splice(e);else for(;n.length<e;)n.push("");for(;i<n.length;i++)n[i]=n[i].trim().replace(ts.slashPipe,"|");return n}function f2(t,e,r){let n=t.length;if(n===0)return"";let i=0;for(;i<n&&t.charAt(n-i-1)===e;)i++;return t.slice(0,n-i)}function $8e(t,e){if(t.indexOf(e[1])===-1)return-1;let r=0;for(let n=0;n<t.length;n++)if(t[n]==="\\")n++;else if(t[n]===e[0])r++;else if(t[n]===e[1]&&(r--,r<0))return n;return-1}function zj(t,e,r,n,i){let a=e.href,s=e.title||null,l=t[1].replace(i.other.outputLinkReplace,"$1");if(t[0].charAt(0)!=="!"){n.state.inLink=!0;let u={type:"link",raw:r,href:a,title:s,text:l,tokens:n.inlineTokens(l)};return n.state.inLink=!1,u}return{type:"image",raw:r,href:a,title:s,text:l}}function z8e(t,e,r){let n=t.match(r.other.indentCodeCompensation);if(n===null)return e;let i=n[1];return e.split(`
+`).map(a=>{let s=a.match(r.other.beginningSpace);if(s===null)return a;let[l]=s;return l.length>=i.length?a.slice(i.length):a}).join(`
+`)}function Jr(t,e){return Md.parse(t,e)}var Id,d2,ts,s8e,o8e,l8e,m2,c8e,xD,Vj,Uj,u8e,bD,h8e,wD,f8e,d8e,Aw,TD,p8e,Hj,m8e,kD,Pj,g8e,y8e,v8e,x8e,Wj,b8e,_w,ED,qj,w8e,Yj,T8e,k8e,E8e,Xj,S8e,C8e,jj,A8e,_8e,D8e,L8e,R8e,N8e,M8e,Cw,I8e,Kj,Qj,O8e,SD,P8e,gD,B8e,Sw,h2,F8e,Bj,hm,Al,fm,p2,_l,um,yD,Md,dkt,pkt,mkt,gkt,ykt,vkt,xkt,Zj=N(()=>{"use strict";o(vD,"_getDefaults");Id=vD();o(Gj,"changeDefaults");d2={exec:o(()=>null,"exec")};o(nn,"edit");ts={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceTabs:/^\t+/,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] /,listReplaceTask:/^\[[ xX]\] +/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,unescapeTest:/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:o(t=>new RegExp(`^( {0,3}${t})((?:[	 ][^\\n]*)?(?:\\n|$))`),"listItemRegex"),nextBulletRegex:o(t=>new RegExp(`^ {0,${Math.min(3,t-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ 	][^\\n]*)?(?:\\n|$))`),"nextBulletRegex"),hrRegex:o(t=>new RegExp(`^ {0,${Math.min(3,t-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),"hrRegex"),fencesBeginRegex:o(t=>new RegExp(`^ {0,${Math.min(3,t-1)}}(?:\`\`\`|~~~)`),"fencesBeginRegex"),headingBeginRegex:o(t=>new RegExp(`^ {0,${Math.min(3,t-1)}}#`),"headingBeginRegex"),htmlBeginRegex:o(t=>new RegExp(`^ {0,${Math.min(3,t-1)}}<(?:[a-z].*>|!--)`,"i"),"htmlBeginRegex")},s8e=/^(?:[ \t]*(?:\n|$))+/,o8e=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,l8e=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,m2=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,c8e=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,xD=/(?:[*+-]|\d{1,9}[.)])/,Vj=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,Uj=nn(Vj).replace(/bull/g,xD).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),u8e=nn(Vj).replace(/bull/g,xD).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),bD=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,h8e=/^[^\n]+/,wD=/(?!\s*\])(?:\\.|[^\[\]\\])+/,f8e=nn(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",wD).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),d8e=nn(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,xD).getRegex(),Aw="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",TD=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,p8e=nn("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ 	]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ 	]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ 	]*)+\\n|$))","i").replace("comment",TD).replace("tag",Aw).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),Hj=nn(bD).replace("hr",m2).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Aw).getRegex(),m8e=nn(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",Hj).getRegex(),kD={blockquote:m8e,code:o8e,def:f8e,fences:l8e,heading:c8e,hr:m2,html:p8e,lheading:Uj,list:d8e,newline:s8e,paragraph:Hj,table:d2,text:h8e},Pj=nn("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",m2).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3}	)[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Aw).getRegex(),g8e={...kD,lheading:u8e,table:Pj,paragraph:nn(bD).replace("hr",m2).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",Pj).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Aw).getRegex()},y8e={...kD,html:nn(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",TD).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:d2,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:nn(bD).replace("hr",m2).replace("heading",` *#{1,6} *[^
+]`).replace("lheading",Uj).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},v8e=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,x8e=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,Wj=/^( {2,}|\\)\n(?!\s*$)/,b8e=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,_w=/[\p{P}\p{S}]/u,ED=/[\s\p{P}\p{S}]/u,qj=/[^\s\p{P}\p{S}]/u,w8e=nn(/^((?![*_])punctSpace)/,"u").replace(/punctSpace/g,ED).getRegex(),Yj=/(?!~)[\p{P}\p{S}]/u,T8e=/(?!~)[\s\p{P}\p{S}]/u,k8e=/(?:[^\s\p{P}\p{S}]|~)/u,E8e=/\[[^[\]]*?\]\((?:\\.|[^\\\(\)]|\((?:\\.|[^\\\(\)])*\))*\)|`[^`]*?`|<[^<>]*?>/g,Xj=/^(?:\*+(?:((?!\*)punct)|[^\s*]))|^_+(?:((?!_)punct)|([^\s_]))/,S8e=nn(Xj,"u").replace(/punct/g,_w).getRegex(),C8e=nn(Xj,"u").replace(/punct/g,Yj).getRegex(),jj="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",A8e=nn(jj,"gu").replace(/notPunctSpace/g,qj).replace(/punctSpace/g,ED).replace(/punct/g,_w).getRegex(),_8e=nn(jj,"gu").replace(/notPunctSpace/g,k8e).replace(/punctSpace/g,T8e).replace(/punct/g,Yj).getRegex(),D8e=nn("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,qj).replace(/punctSpace/g,ED).replace(/punct/g,_w).getRegex(),L8e=nn(/\\(punct)/,"gu").replace(/punct/g,_w).getRegex(),R8e=nn(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),N8e=nn(TD).replace("(?:-->|$)","-->").getRegex(),M8e=nn("^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>").replace("comment",N8e).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),Cw=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,I8e=nn(/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/).replace("label",Cw).replace("href",/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),Kj=nn(/^!?\[(label)\]\[(ref)\]/).replace("label",Cw).replace("ref",wD).getRegex(),Qj=nn(/^!?\[(ref)\](?:\[\])?/).replace("ref",wD).getRegex(),O8e=nn("reflink|nolink(?!\\()","g").replace("reflink",Kj).replace("nolink",Qj).getRegex(),SD={_backpedal:d2,anyPunctuation:L8e,autolink:R8e,blockSkip:E8e,br:Wj,code:x8e,del:d2,emStrongLDelim:S8e,emStrongRDelimAst:A8e,emStrongRDelimUnd:D8e,escape:v8e,link:I8e,nolink:Qj,punctuation:w8e,reflink:Kj,reflinkSearch:O8e,tag:M8e,text:b8e,url:d2},P8e={...SD,link:nn(/^!?\[(label)\]\((.*?)\)/).replace("label",Cw).getRegex(),reflink:nn(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",Cw).getRegex()},gD={...SD,emStrongRDelimAst:_8e,emStrongLDelim:C8e,url:nn(/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,"i").replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\.|[^\\])*?(?:\\.|[^\s~\\]))\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|https?:\/\/|ftp:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/},B8e={...gD,br:nn(Wj).replace("{2,}","*").getRegex(),text:nn(gD.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()},Sw={normal:kD,gfm:g8e,pedantic:y8e},h2={normal:SD,gfm:gD,breaks:B8e,pedantic:P8e},F8e={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},Bj=o(t=>F8e[t],"getEscapeReplacement");o(pc,"escape");o(Fj,"cleanUrl");o($j,"splitCells");o(f2,"rtrim");o($8e,"findClosingBracket");o(zj,"outputLink");o(z8e,"indentCodeCompensation");hm=class{static{o(this,"_Tokenizer")}options;rules;lexer;constructor(e){this.options=e||Id}space(e){let r=this.rules.block.newline.exec(e);if(r&&r[0].length>0)return{type:"space",raw:r[0]}}code(e){let r=this.rules.block.code.exec(e);if(r){let n=r[0].replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:r[0],codeBlockStyle:"indented",text:this.options.pedantic?n:f2(n,`
+`)}}}fences(e){let r=this.rules.block.fences.exec(e);if(r){let n=r[0],i=z8e(n,r[3]||"",this.rules);return{type:"code",raw:n,lang:r[2]?r[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):r[2],text:i}}}heading(e){let r=this.rules.block.heading.exec(e);if(r){let n=r[2].trim();if(this.rules.other.endingHash.test(n)){let i=f2(n,"#");(this.options.pedantic||!i||this.rules.other.endingSpaceChar.test(i))&&(n=i.trim())}return{type:"heading",raw:r[0],depth:r[1].length,text:n,tokens:this.lexer.inline(n)}}}hr(e){let r=this.rules.block.hr.exec(e);if(r)return{type:"hr",raw:f2(r[0],`
+`)}}blockquote(e){let r=this.rules.block.blockquote.exec(e);if(r){let n=f2(r[0],`
+`).split(`
+`),i="",a="",s=[];for(;n.length>0;){let l=!1,u=[],h;for(h=0;h<n.length;h++)if(this.rules.other.blockquoteStart.test(n[h]))u.push(n[h]),l=!0;else if(!l)u.push(n[h]);else break;n=n.slice(h);let f=u.join(`
+`),d=f.replace(this.rules.other.blockquoteSetextReplace,`
+    $1`).replace(this.rules.other.blockquoteSetextReplace2,"");i=i?`${i}
+${f}`:f,a=a?`${a}
+${d}`:d;let p=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(d,s,!0),this.lexer.state.top=p,n.length===0)break;let m=s.at(-1);if(m?.type==="code")break;if(m?.type==="blockquote"){let g=m,y=g.raw+`
+`+n.join(`
+`),v=this.blockquote(y);s[s.length-1]=v,i=i.substring(0,i.length-g.raw.length)+v.raw,a=a.substring(0,a.length-g.text.length)+v.text;break}else if(m?.type==="list"){let g=m,y=g.raw+`
+`+n.join(`
+`),v=this.list(y);s[s.length-1]=v,i=i.substring(0,i.length-m.raw.length)+v.raw,a=a.substring(0,a.length-g.raw.length)+v.raw,n=y.substring(s.at(-1).raw.length).split(`
+`);continue}}return{type:"blockquote",raw:i,tokens:s,text:a}}}list(e){let r=this.rules.block.list.exec(e);if(r){let n=r[1].trim(),i=n.length>1,a={type:"list",raw:"",ordered:i,start:i?+n.slice(0,-1):"",loose:!1,items:[]};n=i?`\\d{1,9}\\${n.slice(-1)}`:`\\${n}`,this.options.pedantic&&(n=i?n:"[*+-]");let s=this.rules.other.listItemRegex(n),l=!1;for(;e;){let h=!1,f="",d="";if(!(r=s.exec(e))||this.rules.block.hr.test(e))break;f=r[0],e=e.substring(f.length);let p=r[2].split(`
+`,1)[0].replace(this.rules.other.listReplaceTabs,b=>" ".repeat(3*b.length)),m=e.split(`
+`,1)[0],g=!p.trim(),y=0;if(this.options.pedantic?(y=2,d=p.trimStart()):g?y=r[1].length+1:(y=r[2].search(this.rules.other.nonSpaceChar),y=y>4?1:y,d=p.slice(y),y+=r[1].length),g&&this.rules.other.blankLine.test(m)&&(f+=m+`
+`,e=e.substring(m.length+1),h=!0),!h){let b=this.rules.other.nextBulletRegex(y),w=this.rules.other.hrRegex(y),C=this.rules.other.fencesBeginRegex(y),T=this.rules.other.headingBeginRegex(y),E=this.rules.other.htmlBeginRegex(y);for(;e;){let A=e.split(`
+`,1)[0],S;if(m=A,this.options.pedantic?(m=m.replace(this.rules.other.listReplaceNesting,"  "),S=m):S=m.replace(this.rules.other.tabCharGlobal,"    "),C.test(m)||T.test(m)||E.test(m)||b.test(m)||w.test(m))break;if(S.search(this.rules.other.nonSpaceChar)>=y||!m.trim())d+=`
+`+S.slice(y);else{if(g||p.replace(this.rules.other.tabCharGlobal,"    ").search(this.rules.other.nonSpaceChar)>=4||C.test(p)||T.test(p)||w.test(p))break;d+=`
+`+m}!g&&!m.trim()&&(g=!0),f+=A+`
+`,e=e.substring(A.length+1),p=S.slice(y)}}a.loose||(l?a.loose=!0:this.rules.other.doubleBlankLine.test(f)&&(l=!0));let v=null,x;this.options.gfm&&(v=this.rules.other.listIsTask.exec(d),v&&(x=v[0]!=="[ ] ",d=d.replace(this.rules.other.listReplaceTask,""))),a.items.push({type:"list_item",raw:f,task:!!v,checked:x,loose:!1,text:d,tokens:[]}),a.raw+=f}let u=a.items.at(-1);if(u)u.raw=u.raw.trimEnd(),u.text=u.text.trimEnd();else return;a.raw=a.raw.trimEnd();for(let h=0;h<a.items.length;h++)if(this.lexer.state.top=!1,a.items[h].tokens=this.lexer.blockTokens(a.items[h].text,[]),!a.loose){let f=a.items[h].tokens.filter(p=>p.type==="space"),d=f.length>0&&f.some(p=>this.rules.other.anyLine.test(p.raw));a.loose=d}if(a.loose)for(let h=0;h<a.items.length;h++)a.items[h].loose=!0;return a}}html(e){let r=this.rules.block.html.exec(e);if(r)return{type:"html",block:!0,raw:r[0],pre:r[1]==="pre"||r[1]==="script"||r[1]==="style",text:r[0]}}def(e){let r=this.rules.block.def.exec(e);if(r){let n=r[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal," "),i=r[2]?r[2].replace(this.rules.other.hrefBrackets,"$1").replace(this.rules.inline.anyPunctuation,"$1"):"",a=r[3]?r[3].substring(1,r[3].length-1).replace(this.rules.inline.anyPunctuation,"$1"):r[3];return{type:"def",tag:n,raw:r[0],href:i,title:a}}}table(e){let r=this.rules.block.table.exec(e);if(!r||!this.rules.other.tableDelimiter.test(r[2]))return;let n=$j(r[1]),i=r[2].replace(this.rules.other.tableAlignChars,"").split("|"),a=r[3]?.trim()?r[3].replace(this.rules.other.tableRowBlankLine,"").split(`
+`):[],s={type:"table",raw:r[0],header:[],align:[],rows:[]};if(n.length===i.length){for(let l of i)this.rules.other.tableAlignRight.test(l)?s.align.push("right"):this.rules.other.tableAlignCenter.test(l)?s.align.push("center"):this.rules.other.tableAlignLeft.test(l)?s.align.push("left"):s.align.push(null);for(let l=0;l<n.length;l++)s.header.push({text:n[l],tokens:this.lexer.inline(n[l]),header:!0,align:s.align[l]});for(let l of a)s.rows.push($j(l,s.header.length).map((u,h)=>({text:u,tokens:this.lexer.inline(u),header:!1,align:s.align[h]})));return s}}lheading(e){let r=this.rules.block.lheading.exec(e);if(r)return{type:"heading",raw:r[0],depth:r[2].charAt(0)==="="?1:2,text:r[1],tokens:this.lexer.inline(r[1])}}paragraph(e){let r=this.rules.block.paragraph.exec(e);if(r){let n=r[1].charAt(r[1].length-1)===`
+`?r[1].slice(0,-1):r[1];return{type:"paragraph",raw:r[0],text:n,tokens:this.lexer.inline(n)}}}text(e){let r=this.rules.block.text.exec(e);if(r)return{type:"text",raw:r[0],text:r[0],tokens:this.lexer.inline(r[0])}}escape(e){let r=this.rules.inline.escape.exec(e);if(r)return{type:"escape",raw:r[0],text:r[1]}}tag(e){let r=this.rules.inline.tag.exec(e);if(r)return!this.lexer.state.inLink&&this.rules.other.startATag.test(r[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(r[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(r[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(r[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:r[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:r[0]}}link(e){let r=this.rules.inline.link.exec(e);if(r){let n=r[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(n)){if(!this.rules.other.endAngleBracket.test(n))return;let s=f2(n.slice(0,-1),"\\");if((n.length-s.length)%2===0)return}else{let s=$8e(r[2],"()");if(s>-1){let u=(r[0].indexOf("!")===0?5:4)+r[1].length+s;r[2]=r[2].substring(0,s),r[0]=r[0].substring(0,u).trim(),r[3]=""}}let i=r[2],a="";if(this.options.pedantic){let s=this.rules.other.pedanticHrefTitle.exec(i);s&&(i=s[1],a=s[3])}else a=r[3]?r[3].slice(1,-1):"";return i=i.trim(),this.rules.other.startAngleBracket.test(i)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(n)?i=i.slice(1):i=i.slice(1,-1)),zj(r,{href:i&&i.replace(this.rules.inline.anyPunctuation,"$1"),title:a&&a.replace(this.rules.inline.anyPunctuation,"$1")},r[0],this.lexer,this.rules)}}reflink(e,r){let n;if((n=this.rules.inline.reflink.exec(e))||(n=this.rules.inline.nolink.exec(e))){let i=(n[2]||n[1]).replace(this.rules.other.multipleSpaceGlobal," "),a=r[i.toLowerCase()];if(!a){let s=n[0].charAt(0);return{type:"text",raw:s,text:s}}return zj(n,a,n[0],this.lexer,this.rules)}}emStrong(e,r,n=""){let i=this.rules.inline.emStrongLDelim.exec(e);if(!i||i[3]&&n.match(this.rules.other.unicodeAlphaNumeric))return;if(!(i[1]||i[2]||"")||!n||this.rules.inline.punctuation.exec(n)){let s=[...i[0]].length-1,l,u,h=s,f=0,d=i[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(d.lastIndex=0,r=r.slice(-1*e.length+s);(i=d.exec(r))!=null;){if(l=i[1]||i[2]||i[3]||i[4]||i[5]||i[6],!l)continue;if(u=[...l].length,i[3]||i[4]){h+=u;continue}else if((i[5]||i[6])&&s%3&&!((s+u)%3)){f+=u;continue}if(h-=u,h>0)continue;u=Math.min(u,u+h+f);let p=[...i[0]][0].length,m=e.slice(0,s+i.index+p+u);if(Math.min(s,u)%2){let y=m.slice(1,-1);return{type:"em",raw:m,text:y,tokens:this.lexer.inlineTokens(y)}}let g=m.slice(2,-2);return{type:"strong",raw:m,text:g,tokens:this.lexer.inlineTokens(g)}}}}codespan(e){let r=this.rules.inline.code.exec(e);if(r){let n=r[2].replace(this.rules.other.newLineCharGlobal," "),i=this.rules.other.nonSpaceChar.test(n),a=this.rules.other.startingSpaceChar.test(n)&&this.rules.other.endingSpaceChar.test(n);return i&&a&&(n=n.substring(1,n.length-1)),{type:"codespan",raw:r[0],text:n}}}br(e){let r=this.rules.inline.br.exec(e);if(r)return{type:"br",raw:r[0]}}del(e){let r=this.rules.inline.del.exec(e);if(r)return{type:"del",raw:r[0],text:r[2],tokens:this.lexer.inlineTokens(r[2])}}autolink(e){let r=this.rules.inline.autolink.exec(e);if(r){let n,i;return r[2]==="@"?(n=r[1],i="mailto:"+n):(n=r[1],i=n),{type:"link",raw:r[0],text:n,href:i,tokens:[{type:"text",raw:n,text:n}]}}}url(e){let r;if(r=this.rules.inline.url.exec(e)){let n,i;if(r[2]==="@")n=r[0],i="mailto:"+n;else{let a;do a=r[0],r[0]=this.rules.inline._backpedal.exec(r[0])?.[0]??"";while(a!==r[0]);n=r[0],r[1]==="www."?i="http://"+r[0]:i=r[0]}return{type:"link",raw:r[0],text:n,href:i,tokens:[{type:"text",raw:n,text:n}]}}}inlineText(e){let r=this.rules.inline.text.exec(e);if(r){let n=this.lexer.state.inRawBlock;return{type:"text",raw:r[0],text:r[0],escaped:n}}}},Al=class t{static{o(this,"_Lexer")}tokens;options;state;tokenizer;inlineQueue;constructor(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||Id,this.options.tokenizer=this.options.tokenizer||new hm,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let r={other:ts,block:Sw.normal,inline:h2.normal};this.options.pedantic?(r.block=Sw.pedantic,r.inline=h2.pedantic):this.options.gfm&&(r.block=Sw.gfm,this.options.breaks?r.inline=h2.breaks:r.inline=h2.gfm),this.tokenizer.rules=r}static get rules(){return{block:Sw,inline:h2}}static lex(e,r){return new t(r).lex(e)}static lexInline(e,r){return new t(r).inlineTokens(e)}lex(e){e=e.replace(ts.carriageReturn,`
+`),this.blockTokens(e,this.tokens);for(let r=0;r<this.inlineQueue.length;r++){let n=this.inlineQueue[r];this.inlineTokens(n.src,n.tokens)}return this.inlineQueue=[],this.tokens}blockTokens(e,r=[],n=!1){for(this.options.pedantic&&(e=e.replace(ts.tabCharGlobal,"    ").replace(ts.spaceLine,""));e;){let i;if(this.options.extensions?.block?.some(s=>(i=s.call({lexer:this},e,r))?(e=e.substring(i.raw.length),r.push(i),!0):!1))continue;if(i=this.tokenizer.space(e)){e=e.substring(i.raw.length);let s=r.at(-1);i.raw.length===1&&s!==void 0?s.raw+=`
+`:r.push(i);continue}if(i=this.tokenizer.code(e)){e=e.substring(i.raw.length);let s=r.at(-1);s?.type==="paragraph"||s?.type==="text"?(s.raw+=`
+`+i.raw,s.text+=`
+`+i.text,this.inlineQueue.at(-1).src=s.text):r.push(i);continue}if(i=this.tokenizer.fences(e)){e=e.substring(i.raw.length),r.push(i);continue}if(i=this.tokenizer.heading(e)){e=e.substring(i.raw.length),r.push(i);continue}if(i=this.tokenizer.hr(e)){e=e.substring(i.raw.length),r.push(i);continue}if(i=this.tokenizer.blockquote(e)){e=e.substring(i.raw.length),r.push(i);continue}if(i=this.tokenizer.list(e)){e=e.substring(i.raw.length),r.push(i);continue}if(i=this.tokenizer.html(e)){e=e.substring(i.raw.length),r.push(i);continue}if(i=this.tokenizer.def(e)){e=e.substring(i.raw.length);let s=r.at(-1);s?.type==="paragraph"||s?.type==="text"?(s.raw+=`
+`+i.raw,s.text+=`
+`+i.raw,this.inlineQueue.at(-1).src=s.text):this.tokens.links[i.tag]||(this.tokens.links[i.tag]={href:i.href,title:i.title});continue}if(i=this.tokenizer.table(e)){e=e.substring(i.raw.length),r.push(i);continue}if(i=this.tokenizer.lheading(e)){e=e.substring(i.raw.length),r.push(i);continue}let a=e;if(this.options.extensions?.startBlock){let s=1/0,l=e.slice(1),u;this.options.extensions.startBlock.forEach(h=>{u=h.call({lexer:this},l),typeof u=="number"&&u>=0&&(s=Math.min(s,u))}),s<1/0&&s>=0&&(a=e.substring(0,s+1))}if(this.state.top&&(i=this.tokenizer.paragraph(a))){let s=r.at(-1);n&&s?.type==="paragraph"?(s.raw+=`
+`+i.raw,s.text+=`
+`+i.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=s.text):r.push(i),n=a.length!==e.length,e=e.substring(i.raw.length);continue}if(i=this.tokenizer.text(e)){e=e.substring(i.raw.length);let s=r.at(-1);s?.type==="text"?(s.raw+=`
+`+i.raw,s.text+=`
+`+i.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=s.text):r.push(i);continue}if(e){let s="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(s);break}else throw new Error(s)}}return this.state.top=!0,r}inline(e,r=[]){return this.inlineQueue.push({src:e,tokens:r}),r}inlineTokens(e,r=[]){let n=e,i=null;if(this.tokens.links){let l=Object.keys(this.tokens.links);if(l.length>0)for(;(i=this.tokenizer.rules.inline.reflinkSearch.exec(n))!=null;)l.includes(i[0].slice(i[0].lastIndexOf("[")+1,-1))&&(n=n.slice(0,i.index)+"["+"a".repeat(i[0].length-2)+"]"+n.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(i=this.tokenizer.rules.inline.blockSkip.exec(n))!=null;)n=n.slice(0,i.index)+"["+"a".repeat(i[0].length-2)+"]"+n.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;(i=this.tokenizer.rules.inline.anyPunctuation.exec(n))!=null;)n=n.slice(0,i.index)+"++"+n.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);let a=!1,s="";for(;e;){a||(s=""),a=!1;let l;if(this.options.extensions?.inline?.some(h=>(l=h.call({lexer:this},e,r))?(e=e.substring(l.raw.length),r.push(l),!0):!1))continue;if(l=this.tokenizer.escape(e)){e=e.substring(l.raw.length),r.push(l);continue}if(l=this.tokenizer.tag(e)){e=e.substring(l.raw.length),r.push(l);continue}if(l=this.tokenizer.link(e)){e=e.substring(l.raw.length),r.push(l);continue}if(l=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(l.raw.length);let h=r.at(-1);l.type==="text"&&h?.type==="text"?(h.raw+=l.raw,h.text+=l.text):r.push(l);continue}if(l=this.tokenizer.emStrong(e,n,s)){e=e.substring(l.raw.length),r.push(l);continue}if(l=this.tokenizer.codespan(e)){e=e.substring(l.raw.length),r.push(l);continue}if(l=this.tokenizer.br(e)){e=e.substring(l.raw.length),r.push(l);continue}if(l=this.tokenizer.del(e)){e=e.substring(l.raw.length),r.push(l);continue}if(l=this.tokenizer.autolink(e)){e=e.substring(l.raw.length),r.push(l);continue}if(!this.state.inLink&&(l=this.tokenizer.url(e))){e=e.substring(l.raw.length),r.push(l);continue}let u=e;if(this.options.extensions?.startInline){let h=1/0,f=e.slice(1),d;this.options.extensions.startInline.forEach(p=>{d=p.call({lexer:this},f),typeof d=="number"&&d>=0&&(h=Math.min(h,d))}),h<1/0&&h>=0&&(u=e.substring(0,h+1))}if(l=this.tokenizer.inlineText(u)){e=e.substring(l.raw.length),l.raw.slice(-1)!=="_"&&(s=l.raw.slice(-1)),a=!0;let h=r.at(-1);h?.type==="text"?(h.raw+=l.raw,h.text+=l.text):r.push(l);continue}if(e){let h="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(h);break}else throw new Error(h)}}return r}},fm=class{static{o(this,"_Renderer")}options;parser;constructor(e){this.options=e||Id}space(e){return""}code({text:e,lang:r,escaped:n}){let i=(r||"").match(ts.notSpaceStart)?.[0],a=e.replace(ts.endingNewline,"")+`
+`;return i?'<pre><code class="language-'+pc(i)+'">'+(n?a:pc(a,!0))+`</code></pre>
+`:"<pre><code>"+(n?a:pc(a,!0))+`</code></pre>
+`}blockquote({tokens:e}){return`<blockquote>
+${this.parser.parse(e)}</blockquote>
+`}html({text:e}){return e}heading({tokens:e,depth:r}){return`<h${r}>${this.parser.parseInline(e)}</h${r}>
+`}hr(e){return`<hr>
+`}list(e){let r=e.ordered,n=e.start,i="";for(let l=0;l<e.items.length;l++){let u=e.items[l];i+=this.listitem(u)}let a=r?"ol":"ul",s=r&&n!==1?' start="'+n+'"':"";return"<"+a+s+`>
+`+i+"</"+a+`>
+`}listitem(e){let r="";if(e.task){let n=this.checkbox({checked:!!e.checked});e.loose?e.tokens[0]?.type==="paragraph"?(e.tokens[0].text=n+" "+e.tokens[0].text,e.tokens[0].tokens&&e.tokens[0].tokens.length>0&&e.tokens[0].tokens[0].type==="text"&&(e.tokens[0].tokens[0].text=n+" "+pc(e.tokens[0].tokens[0].text),e.tokens[0].tokens[0].escaped=!0)):e.tokens.unshift({type:"text",raw:n+" ",text:n+" ",escaped:!0}):r+=n+" "}return r+=this.parser.parse(e.tokens,!!e.loose),`<li>${r}</li>
+`}checkbox({checked:e}){return"<input "+(e?'checked="" ':"")+'disabled="" type="checkbox">'}paragraph({tokens:e}){return`<p>${this.parser.parseInline(e)}</p>
+`}table(e){let r="",n="";for(let a=0;a<e.header.length;a++)n+=this.tablecell(e.header[a]);r+=this.tablerow({text:n});let i="";for(let a=0;a<e.rows.length;a++){let s=e.rows[a];n="";for(let l=0;l<s.length;l++)n+=this.tablecell(s[l]);i+=this.tablerow({text:n})}return i&&(i=`<tbody>${i}</tbody>`),`<table>
+<thead>
+`+r+`</thead>
+`+i+`</table>
+`}tablerow({text:e}){return`<tr>
+${e}</tr>
+`}tablecell(e){let r=this.parser.parseInline(e.tokens),n=e.header?"th":"td";return(e.align?`<${n} align="${e.align}">`:`<${n}>`)+r+`</${n}>
+`}strong({tokens:e}){return`<strong>${this.parser.parseInline(e)}</strong>`}em({tokens:e}){return`<em>${this.parser.parseInline(e)}</em>`}codespan({text:e}){return`<code>${pc(e,!0)}</code>`}br(e){return"<br>"}del({tokens:e}){return`<del>${this.parser.parseInline(e)}</del>`}link({href:e,title:r,tokens:n}){let i=this.parser.parseInline(n),a=Fj(e);if(a===null)return i;e=a;let s='<a href="'+e+'"';return r&&(s+=' title="'+pc(r)+'"'),s+=">"+i+"</a>",s}image({href:e,title:r,text:n}){let i=Fj(e);if(i===null)return pc(n);e=i;let a=`<img src="${e}" alt="${n}"`;return r&&(a+=` title="${pc(r)}"`),a+=">",a}text(e){return"tokens"in e&&e.tokens?this.parser.parseInline(e.tokens):"escaped"in e&&e.escaped?e.text:pc(e.text)}},p2=class{static{o(this,"_TextRenderer")}strong({text:e}){return e}em({text:e}){return e}codespan({text:e}){return e}del({text:e}){return e}html({text:e}){return e}text({text:e}){return e}link({text:e}){return""+e}image({text:e}){return""+e}br(){return""}},_l=class t{static{o(this,"_Parser")}options;renderer;textRenderer;constructor(e){this.options=e||Id,this.options.renderer=this.options.renderer||new fm,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new p2}static parse(e,r){return new t(r).parse(e)}static parseInline(e,r){return new t(r).parseInline(e)}parse(e,r=!0){let n="";for(let i=0;i<e.length;i++){let a=e[i];if(this.options.extensions?.renderers?.[a.type]){let l=a,u=this.options.extensions.renderers[l.type].call({parser:this},l);if(u!==!1||!["space","hr","heading","code","table","blockquote","list","html","paragraph","text"].includes(l.type)){n+=u||"";continue}}let s=a;switch(s.type){case"space":{n+=this.renderer.space(s);continue}case"hr":{n+=this.renderer.hr(s);continue}case"heading":{n+=this.renderer.heading(s);continue}case"code":{n+=this.renderer.code(s);continue}case"table":{n+=this.renderer.table(s);continue}case"blockquote":{n+=this.renderer.blockquote(s);continue}case"list":{n+=this.renderer.list(s);continue}case"html":{n+=this.renderer.html(s);continue}case"paragraph":{n+=this.renderer.paragraph(s);continue}case"text":{let l=s,u=this.renderer.text(l);for(;i+1<e.length&&e[i+1].type==="text";)l=e[++i],u+=`
+`+this.renderer.text(l);r?n+=this.renderer.paragraph({type:"paragraph",raw:u,text:u,tokens:[{type:"text",raw:u,text:u,escaped:!0}]}):n+=u;continue}default:{let l='Token with "'+s.type+'" type was not found.';if(this.options.silent)return console.error(l),"";throw new Error(l)}}}return n}parseInline(e,r=this.renderer){let n="";for(let i=0;i<e.length;i++){let a=e[i];if(this.options.extensions?.renderers?.[a.type]){let l=this.options.extensions.renderers[a.type].call({parser:this},a);if(l!==!1||!["escape","html","link","image","strong","em","codespan","br","del","text"].includes(a.type)){n+=l||"";continue}}let s=a;switch(s.type){case"escape":{n+=r.text(s);break}case"html":{n+=r.html(s);break}case"link":{n+=r.link(s);break}case"image":{n+=r.image(s);break}case"strong":{n+=r.strong(s);break}case"em":{n+=r.em(s);break}case"codespan":{n+=r.codespan(s);break}case"br":{n+=r.br(s);break}case"del":{n+=r.del(s);break}case"text":{n+=r.text(s);break}default:{let l='Token with "'+s.type+'" type was not found.';if(this.options.silent)return console.error(l),"";throw new Error(l)}}}return n}},um=class{static{o(this,"_Hooks")}options;block;constructor(e){this.options=e||Id}static passThroughHooks=new Set(["preprocess","postprocess","processAllTokens"]);preprocess(e){return e}postprocess(e){return e}processAllTokens(e){return e}provideLexer(){return this.block?Al.lex:Al.lexInline}provideParser(){return this.block?_l.parse:_l.parseInline}},yD=class{static{o(this,"Marked")}defaults=vD();options=this.setOptions;parse=this.parseMarkdown(!0);parseInline=this.parseMarkdown(!1);Parser=_l;Renderer=fm;TextRenderer=p2;Lexer=Al;Tokenizer=hm;Hooks=um;constructor(...e){this.use(...e)}walkTokens(e,r){let n=[];for(let i of e)switch(n=n.concat(r.call(this,i)),i.type){case"table":{let a=i;for(let s of a.header)n=n.concat(this.walkTokens(s.tokens,r));for(let s of a.rows)for(let l of s)n=n.concat(this.walkTokens(l.tokens,r));break}case"list":{let a=i;n=n.concat(this.walkTokens(a.items,r));break}default:{let a=i;this.defaults.extensions?.childTokens?.[a.type]?this.defaults.extensions.childTokens[a.type].forEach(s=>{let l=a[s].flat(1/0);n=n.concat(this.walkTokens(l,r))}):a.tokens&&(n=n.concat(this.walkTokens(a.tokens,r)))}}return n}use(...e){let r=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(n=>{let i={...n};if(i.async=this.defaults.async||i.async||!1,n.extensions&&(n.extensions.forEach(a=>{if(!a.name)throw new Error("extension name required");if("renderer"in a){let s=r.renderers[a.name];s?r.renderers[a.name]=function(...l){let u=a.renderer.apply(this,l);return u===!1&&(u=s.apply(this,l)),u}:r.renderers[a.name]=a.renderer}if("tokenizer"in a){if(!a.level||a.level!=="block"&&a.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let s=r[a.level];s?s.unshift(a.tokenizer):r[a.level]=[a.tokenizer],a.start&&(a.level==="block"?r.startBlock?r.startBlock.push(a.start):r.startBlock=[a.start]:a.level==="inline"&&(r.startInline?r.startInline.push(a.start):r.startInline=[a.start]))}"childTokens"in a&&a.childTokens&&(r.childTokens[a.name]=a.childTokens)}),i.extensions=r),n.renderer){let a=this.defaults.renderer||new fm(this.defaults);for(let s in n.renderer){if(!(s in a))throw new Error(`renderer '${s}' does not exist`);if(["options","parser"].includes(s))continue;let l=s,u=n.renderer[l],h=a[l];a[l]=(...f)=>{let d=u.apply(a,f);return d===!1&&(d=h.apply(a,f)),d||""}}i.renderer=a}if(n.tokenizer){let a=this.defaults.tokenizer||new hm(this.defaults);for(let s in n.tokenizer){if(!(s in a))throw new Error(`tokenizer '${s}' does not exist`);if(["options","rules","lexer"].includes(s))continue;let l=s,u=n.tokenizer[l],h=a[l];a[l]=(...f)=>{let d=u.apply(a,f);return d===!1&&(d=h.apply(a,f)),d}}i.tokenizer=a}if(n.hooks){let a=this.defaults.hooks||new um;for(let s in n.hooks){if(!(s in a))throw new Error(`hook '${s}' does not exist`);if(["options","block"].includes(s))continue;let l=s,u=n.hooks[l],h=a[l];um.passThroughHooks.has(s)?a[l]=f=>{if(this.defaults.async)return Promise.resolve(u.call(a,f)).then(p=>h.call(a,p));let d=u.call(a,f);return h.call(a,d)}:a[l]=(...f)=>{let d=u.apply(a,f);return d===!1&&(d=h.apply(a,f)),d}}i.hooks=a}if(n.walkTokens){let a=this.defaults.walkTokens,s=n.walkTokens;i.walkTokens=function(l){let u=[];return u.push(s.call(this,l)),a&&(u=u.concat(a.call(this,l))),u}}this.defaults={...this.defaults,...i}}),this}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,r){return Al.lex(e,r??this.defaults)}parser(e,r){return _l.parse(e,r??this.defaults)}parseMarkdown(e){return o((n,i)=>{let a={...i},s={...this.defaults,...a},l=this.onError(!!s.silent,!!s.async);if(this.defaults.async===!0&&a.async===!1)return l(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof n>"u"||n===null)return l(new Error("marked(): input parameter is undefined or null"));if(typeof n!="string")return l(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(n)+", string expected"));s.hooks&&(s.hooks.options=s,s.hooks.block=e);let u=s.hooks?s.hooks.provideLexer():e?Al.lex:Al.lexInline,h=s.hooks?s.hooks.provideParser():e?_l.parse:_l.parseInline;if(s.async)return Promise.resolve(s.hooks?s.hooks.preprocess(n):n).then(f=>u(f,s)).then(f=>s.hooks?s.hooks.processAllTokens(f):f).then(f=>s.walkTokens?Promise.all(this.walkTokens(f,s.walkTokens)).then(()=>f):f).then(f=>h(f,s)).then(f=>s.hooks?s.hooks.postprocess(f):f).catch(l);try{s.hooks&&(n=s.hooks.preprocess(n));let f=u(n,s);s.hooks&&(f=s.hooks.processAllTokens(f)),s.walkTokens&&this.walkTokens(f,s.walkTokens);let d=h(f,s);return s.hooks&&(d=s.hooks.postprocess(d)),d}catch(f){return l(f)}},"parse")}onError(e,r){return n=>{if(n.message+=`
+Please report this to https://github.com/markedjs/marked.`,e){let i="<p>An error occurred:</p><pre>"+pc(n.message+"",!0)+"</pre>";return r?Promise.resolve(i):i}if(r)return Promise.reject(n);throw n}}},Md=new yD;o(Jr,"marked");Jr.options=Jr.setOptions=function(t){return Md.setOptions(t),Jr.defaults=Md.defaults,Gj(Jr.defaults),Jr};Jr.getDefaults=vD;Jr.defaults=Id;Jr.use=function(...t){return Md.use(...t),Jr.defaults=Md.defaults,Gj(Jr.defaults),Jr};Jr.walkTokens=function(t,e){return Md.walkTokens(t,e)};Jr.parseInline=Md.parseInline;Jr.Parser=_l;Jr.parser=_l.parse;Jr.Renderer=fm;Jr.TextRenderer=p2;Jr.Lexer=Al;Jr.lexer=Al.lex;Jr.Tokenizer=hm;Jr.Hooks=um;Jr.parse=Jr;dkt=Jr.options,pkt=Jr.setOptions,mkt=Jr.use,gkt=Jr.walkTokens,ykt=Jr.parseInline,vkt=_l.parse,xkt=Al.lex});function G8e(t,{markdownAutoWrap:e}){let n=t.replace(/<br\/>/g,`
+`).replace(/\n{2,}/g,`
+`),i=B4(n);return e===!1?i.replace(/ /g,"&nbsp;"):i}function Jj(t,e={}){let r=G8e(t,e),n=Jr.lexer(r),i=[[]],a=0;function s(l,u="normal"){l.type==="text"?l.text.split(`
+`).forEach((f,d)=>{d!==0&&(a++,i.push([])),f.split(" ").forEach(p=>{p=p.replace(/&#39;/g,"'"),p&&i[a].push({content:p,type:u})})}):l.type==="strong"||l.type==="em"?l.tokens.forEach(h=>{s(h,l.type)}):l.type==="html"&&i[a].push({content:l.text,type:"normal"})}return o(s,"processNode"),n.forEach(l=>{l.type==="paragraph"?l.tokens?.forEach(u=>{s(u)}):l.type==="html"&&i[a].push({content:l.text,type:"normal"})}),i}function eK(t,{markdownAutoWrap:e}={}){let r=Jr.lexer(t);function n(i){return i.type==="text"?e===!1?i.text.replace(/\n */g,"<br/>").replace(/ /g,"&nbsp;"):i.text.replace(/\n */g,"<br/>"):i.type==="strong"?`<strong>${i.tokens?.map(n).join("")}</strong>`:i.type==="em"?`<em>${i.tokens?.map(n).join("")}</em>`:i.type==="paragraph"?`<p>${i.tokens?.map(n).join("")}</p>`:i.type==="space"?"":i.type==="html"?`${i.text}`:i.type==="escape"?i.text:`Unsupported markdown: ${i.type}`}return o(n,"output"),r.map(n).join("")}var tK=N(()=>{"use strict";Zj();PC();o(G8e,"preprocessMarkdown");o(Jj,"markdownToLines");o(eK,"markdownToHTML")});function V8e(t){return Intl.Segmenter?[...new Intl.Segmenter().segment(t)].map(e=>e.segment):[...t]}function U8e(t,e){let r=V8e(e.content);return rK(t,[],r,e.type)}function rK(t,e,r,n){if(r.length===0)return[{content:e.join(""),type:n},{content:"",type:n}];let[i,...a]=r,s=[...e,i];return t([{content:s.join(""),type:n}])?rK(t,s,a,n):(e.length===0&&i&&(e.push(i),r.shift()),[{content:e.join(""),type:n},{content:r.join(""),type:n}])}function nK(t,e){if(t.some(({content:r})=>r.includes(`
+`)))throw new Error("splitLineToFitWidth does not support newlines in the line");return CD(t,e)}function CD(t,e,r=[],n=[]){if(t.length===0)return n.length>0&&r.push(n),r.length>0?r:[];let i="";t[0].content===" "&&(i=" ",t.shift());let a=t.shift()??{content:" ",type:"normal"},s=[...n];if(i!==""&&s.push({content:i,type:"normal"}),s.push(a),e(s))return CD(t,e,r,s);if(n.length>0)r.push(n),t.unshift(a);else if(a.content){let[l,u]=U8e(e,a);r.push([l]),u.content&&t.unshift(u)}return CD(t,e,r)}var iK=N(()=>{"use strict";o(V8e,"splitTextToChars");o(U8e,"splitWordToFitWidth");o(rK,"splitWordToFitWidthRecursion");o(nK,"splitLineToFitWidth");o(CD,"splitLineToFitWidthRecursion")});function aK(t,e){e&&t.attr("style",e)}async function H8e(t,e,r,n,i=!1){let a=t.append("foreignObject");a.attr("width",`${10*r}px`),a.attr("height",`${10*r}px`);let s=a.append("xhtml:div"),l=e.label;e.label&&pi(e.label)&&(l=await mh(e.label.replace(Ze.lineBreakRegex,`
+`),me()));let u=e.isNode?"nodeLabel":"edgeLabel",h=s.append("span");h.html(l),aK(h,e.labelStyle),h.attr("class",`${u} ${n}`),aK(s,e.labelStyle),s.style("display","table-cell"),s.style("white-space","nowrap"),s.style("line-height","1.5"),s.style("max-width",r+"px"),s.style("text-align","center"),s.attr("xmlns","http://www.w3.org/1999/xhtml"),i&&s.attr("class","labelBkg");let f=s.node().getBoundingClientRect();return f.width===r&&(s.style("display","table"),s.style("white-space","break-spaces"),s.style("width",r+"px"),f=s.node().getBoundingClientRect()),a.node()}function AD(t,e,r){return t.append("tspan").attr("class","text-outer-tspan").attr("x",0).attr("y",e*r-.1+"em").attr("dy",r+"em")}function W8e(t,e,r){let n=t.append("text"),i=AD(n,1,e);_D(i,r);let a=i.node().getComputedTextLength();return n.remove(),a}function sK(t,e,r){let n=t.append("text"),i=AD(n,1,e);_D(i,[{content:r,type:"normal"}]);let a=i.node()?.getBoundingClientRect();return a&&n.remove(),a}function q8e(t,e,r,n=!1){let a=e.append("g"),s=a.insert("rect").attr("class","background").attr("style","stroke: none"),l=a.append("text").attr("y","-10.1"),u=0;for(let h of r){let f=o(p=>W8e(a,1.1,p)<=t,"checkWidth"),d=f(h)?[h]:nK(h,f);for(let p of d){let m=AD(l,u,1.1);_D(m,p),u++}}if(n){let h=l.node().getBBox(),f=2;return s.attr("x",h.x-f).attr("y",h.y-f).attr("width",h.width+2*f).attr("height",h.height+2*f),a.node()}else return l.node()}function _D(t,e){t.text(""),e.forEach((r,n)=>{let i=t.append("tspan").attr("font-style",r.type==="em"?"italic":"normal").attr("class","text-inner-tspan").attr("font-weight",r.type==="strong"?"bold":"normal");n===0?i.text(r.content):i.text(" "+r.content)})}function DD(t){return t.replace(/fa[bklrs]?:fa-[\w-]+/g,e=>`<i class='${e.replace(":"," ")}'></i>`)}var Hn,to=N(()=>{"use strict";zt();gr();dr();vt();tK();ir();iK();o(aK,"applyStyle");o(H8e,"addHtmlSpan");o(AD,"createTspan");o(W8e,"computeWidthOfText");o(sK,"computeDimensionOfText");o(q8e,"createFormattedText");o(_D,"updateTextContentAndStyles");o(DD,"replaceIconSubstring");Hn=o(async(t,e="",{style:r="",isTitle:n=!1,classes:i="",useHtmlLabels:a=!0,isNode:s=!0,width:l=200,addSvgBackground:u=!1}={},h)=>{if(Y.debug("XYZ createText",e,r,n,i,a,s,"addSvgBackground: ",u),a){let f=eK(e,h),d=DD(na(f)),p=e.replace(/\\\\/g,"\\"),m={isNode:s,label:pi(e)?p:d,labelStyle:r.replace("fill:","color:")};return await H8e(t,m,l,i,u)}else{let f=e.replace(/<br\s*\/?>/g,"<br/>"),d=Jj(f.replace("<br>","<br/>"),h),p=q8e(l,t,d,e?u:!1);if(s){/stroke:/.exec(r)&&(r=r.replace("stroke:","lineColor:"));let m=r.replace(/stroke:[^;]+;?/g,"").replace(/stroke-width:[^;]+;?/g,"").replace(/fill:[^;]+;?/g,"").replace(/color:/g,"fill:");Ge(p).attr("style",m)}else{let m=r.replace(/stroke:[^;]+;?/g,"").replace(/stroke-width:[^;]+;?/g,"").replace(/fill:[^;]+;?/g,"").replace(/background:/g,"fill:");Ge(p).select("rect").attr("style",m.replace(/background:/g,"fill:"));let g=r.replace(/stroke:[^;]+;?/g,"").replace(/stroke-width:[^;]+;?/g,"").replace(/fill:[^;]+;?/g,"").replace(/color:/g,"fill:");Ge(p).select("text").attr("style",g)}return p}},"createText")});function Xt(t){let e=t.map((r,n)=>`${n===0?"M":"L"}${r.x},${r.y}`);return e.push("Z"),e.join(" ")}function Fo(t,e,r,n,i,a){let s=[],u=r-t,h=n-e,f=u/a,d=2*Math.PI/f,p=e+h/2;for(let m=0;m<=50;m++){let g=m/50,y=t+g*u,v=p+i*Math.sin(d*(y-t));s.push({x:y,y:v})}return s}function Lw(t,e,r,n,i,a){let s=[],l=i*Math.PI/180,f=(a*Math.PI/180-l)/(n-1);for(let d=0;d<n;d++){let p=l+d*f,m=t+r*Math.cos(p),g=e+r*Math.sin(p);s.push({x:-m,y:-g})}return s}var pt,Dw,je,ht,Ft=N(()=>{"use strict";to();zt();dr();Ya();gr();ir();pt=o(async(t,e,r)=>{let n,i=e.useHtmlLabels||fr(me()?.htmlLabels);r?n=r:n="node default";let a=t.insert("g").attr("class",n).attr("id",e.domId||e.id),s=a.insert("g").attr("class","label").attr("style",$n(e.labelStyle)),l;e.label===void 0?l="":l=typeof e.label=="string"?e.label:e.label[0];let u=await Hn(s,Tr(na(l),me()),{useHtmlLabels:i,width:e.width||me().flowchart?.wrappingWidth,cssClasses:"markdown-node-label",style:e.labelStyle,addSvgBackground:!!e.icon||!!e.img}),h=u.getBBox(),f=(e?.padding??0)/2;if(i){let d=u.children[0],p=Ge(u),m=d.getElementsByTagName("img");if(m){let g=l.replace(/<img[^>]*>/g,"").trim()==="";await Promise.all([...m].map(y=>new Promise(v=>{function x(){if(y.style.display="flex",y.style.flexDirection="column",g){let b=me().fontSize?me().fontSize:window.getComputedStyle(document.body).fontSize,w=5,[C=or.fontSize]=Bo(b),T=C*w+"px";y.style.minWidth=T,y.style.maxWidth=T}else y.style.width="100%";v(y)}o(x,"setupImage"),setTimeout(()=>{y.complete&&x()}),y.addEventListener("error",x),y.addEventListener("load",x)})))}h=d.getBoundingClientRect(),p.attr("width",h.width),p.attr("height",h.height)}return i?s.attr("transform","translate("+-h.width/2+", "+-h.height/2+")"):s.attr("transform","translate(0, "+-h.height/2+")"),e.centerLabel&&s.attr("transform","translate("+-h.width/2+", "+-h.height/2+")"),s.insert("rect",":first-child"),{shapeSvg:a,bbox:h,halfPadding:f,label:s}},"labelHelper"),Dw=o(async(t,e,r)=>{let n=r.useHtmlLabels||fr(me()?.flowchart?.htmlLabels),i=t.insert("g").attr("class","label").attr("style",r.labelStyle||""),a=await Hn(i,Tr(na(e),me()),{useHtmlLabels:n,width:r.width||me()?.flowchart?.wrappingWidth,style:r.labelStyle,addSvgBackground:!!r.icon||!!r.img}),s=a.getBBox(),l=r.padding/2;if(fr(me()?.flowchart?.htmlLabels)){let u=a.children[0],h=Ge(a);s=u.getBoundingClientRect(),h.attr("width",s.width),h.attr("height",s.height)}return n?i.attr("transform","translate("+-s.width/2+", "+-s.height/2+")"):i.attr("transform","translate(0, "+-s.height/2+")"),r.centerLabel&&i.attr("transform","translate("+-s.width/2+", "+-s.height/2+")"),i.insert("rect",":first-child"),{shapeSvg:t,bbox:s,halfPadding:l,label:i}},"insertLabel"),je=o((t,e)=>{let r=e.node().getBBox();t.width=r.width,t.height=r.height},"updateNodeBounds"),ht=o((t,e)=>(t.look==="handDrawn"?"rough-node":"node")+" "+t.cssClasses+" "+(e||""),"getNodeClasses");o(Xt,"createPathFromPoints");o(Fo,"generateFullSineWavePoints");o(Lw,"generateCirclePoints")});function Y8e(t,e){return t.intersect(e)}var oK,lK=N(()=>{"use strict";o(Y8e,"intersectNode");oK=Y8e});function X8e(t,e,r,n){var i=t.x,a=t.y,s=i-n.x,l=a-n.y,u=Math.sqrt(e*e*l*l+r*r*s*s),h=Math.abs(e*r*s/u);n.x<i&&(h=-h);var f=Math.abs(e*r*l/u);return n.y<a&&(f=-f),{x:i+h,y:a+f}}var Rw,LD=N(()=>{"use strict";o(X8e,"intersectEllipse");Rw=X8e});function j8e(t,e,r){return Rw(t,e,e,r)}var cK,uK=N(()=>{"use strict";LD();o(j8e,"intersectCircle");cK=j8e});function K8e(t,e,r,n){var i,a,s,l,u,h,f,d,p,m,g,y,v,x,b;if(i=e.y-t.y,s=t.x-e.x,u=e.x*t.y-t.x*e.y,p=i*r.x+s*r.y+u,m=i*n.x+s*n.y+u,!(p!==0&&m!==0&&hK(p,m))&&(a=n.y-r.y,l=r.x-n.x,h=n.x*r.y-r.x*n.y,f=a*t.x+l*t.y+h,d=a*e.x+l*e.y+h,!(f!==0&&d!==0&&hK(f,d))&&(g=i*l-a*s,g!==0)))return y=Math.abs(g/2),v=s*h-l*u,x=v<0?(v-y)/g:(v+y)/g,v=a*u-i*h,b=v<0?(v-y)/g:(v+y)/g,{x,y:b}}function hK(t,e){return t*e>0}var fK,dK=N(()=>{"use strict";o(K8e,"intersectLine");o(hK,"sameSign");fK=K8e});function Q8e(t,e,r){let n=t.x,i=t.y,a=[],s=Number.POSITIVE_INFINITY,l=Number.POSITIVE_INFINITY;typeof e.forEach=="function"?e.forEach(function(f){s=Math.min(s,f.x),l=Math.min(l,f.y)}):(s=Math.min(s,e.x),l=Math.min(l,e.y));let u=n-t.width/2-s,h=i-t.height/2-l;for(let f=0;f<e.length;f++){let d=e[f],p=e[f<e.length-1?f+1:0],m=fK(t,r,{x:u+d.x,y:h+d.y},{x:u+p.x,y:h+p.y});m&&a.push(m)}return a.length?(a.length>1&&a.sort(function(f,d){let p=f.x-r.x,m=f.y-r.y,g=Math.sqrt(p*p+m*m),y=d.x-r.x,v=d.y-r.y,x=Math.sqrt(y*y+v*v);return g<x?-1:g===x?0:1}),a[0]):t}var pK,mK=N(()=>{"use strict";dK();o(Q8e,"intersectPolygon");pK=Q8e});var Z8e,Vh,RD=N(()=>{"use strict";Z8e=o((t,e)=>{var r=t.x,n=t.y,i=e.x-r,a=e.y-n,s=t.width/2,l=t.height/2,u,h;return Math.abs(a)*s>Math.abs(i)*l?(a<0&&(l=-l),u=a===0?0:l*i/a,h=l):(i<0&&(s=-s),u=s,h=i===0?0:s*a/i),{x:r+u,y:n+h}},"intersectRect"),Vh=Z8e});var Ye,Ht=N(()=>{"use strict";lK();uK();LD();mK();RD();Ye={node:oK,circle:cK,ellipse:Rw,polygon:pK,rect:Vh}});var gK,mc,J8e,ND,Qe,Ke,Ut=N(()=>{"use strict";zt();gK=o(t=>{let{handDrawnSeed:e}=me();return{fill:t,hachureAngle:120,hachureGap:4,fillWeight:2,roughness:.7,stroke:t,seed:e}},"solidStateFill"),mc=o(t=>{let e=J8e([...t.cssCompiledStyles||[],...t.cssStyles||[]]);return{stylesMap:e,stylesArray:[...e]}},"compileStyles"),J8e=o(t=>{let e=new Map;return t.forEach(r=>{let[n,i]=r.split(":");e.set(n.trim(),i?.trim())}),e},"styles2Map"),ND=o(t=>t==="color"||t==="font-size"||t==="font-family"||t==="font-weight"||t==="font-style"||t==="text-decoration"||t==="text-align"||t==="text-transform"||t==="line-height"||t==="letter-spacing"||t==="word-spacing"||t==="text-shadow"||t==="text-overflow"||t==="white-space"||t==="word-wrap"||t==="word-break"||t==="overflow-wrap"||t==="hyphens","isLabelStyle"),Qe=o(t=>{let{stylesArray:e}=mc(t),r=[],n=[],i=[],a=[];return e.forEach(s=>{let l=s[0];ND(l)?r.push(s.join(":")+" !important"):(n.push(s.join(":")+" !important"),l.includes("stroke")&&i.push(s.join(":")+" !important"),l==="fill"&&a.push(s.join(":")+" !important"))}),{labelStyles:r.join(";"),nodeStyles:n.join(";"),stylesArray:e,borderStyles:i,backgroundStyles:a}},"styles2String"),Ke=o((t,e)=>{let{themeVariables:r,handDrawnSeed:n}=me(),{nodeBorder:i,mainBkg:a}=r,{stylesMap:s}=mc(t);return Object.assign({roughness:.7,fill:s.get("fill")||a,fillStyle:"hachure",fillWeight:4,hachureGap:5.2,stroke:s.get("stroke")||i,seed:n,strokeWidth:s.get("stroke-width")?.replace("px","")||1.3,fillLineDash:[0,0]},e)},"userNodeOverrides")});function MD(t,e,r){if(t&&t.length){let[n,i]=e,a=Math.PI/180*r,s=Math.cos(a),l=Math.sin(a);for(let u of t){let[h,f]=u;u[0]=(h-n)*s-(f-i)*l+n,u[1]=(h-n)*l+(f-i)*s+i}}}function e_e(t,e){return t[0]===e[0]&&t[1]===e[1]}function t_e(t,e,r,n=1){let i=r,a=Math.max(e,.1),s=t[0]&&t[0][0]&&typeof t[0][0]=="number"?[t]:t,l=[0,0];if(i)for(let h of s)MD(h,l,i);let u=function(h,f,d){let p=[];for(let b of h){let w=[...b];e_e(w[0],w[w.length-1])||w.push([w[0][0],w[0][1]]),w.length>2&&p.push(w)}let m=[];f=Math.max(f,.1);let g=[];for(let b of p)for(let w=0;w<b.length-1;w++){let C=b[w],T=b[w+1];if(C[1]!==T[1]){let E=Math.min(C[1],T[1]);g.push({ymin:E,ymax:Math.max(C[1],T[1]),x:E===C[1]?C[0]:T[0],islope:(T[0]-C[0])/(T[1]-C[1])})}}if(g.sort((b,w)=>b.ymin<w.ymin?-1:b.ymin>w.ymin?1:b.x<w.x?-1:b.x>w.x?1:b.ymax===w.ymax?0:(b.ymax-w.ymax)/Math.abs(b.ymax-w.ymax)),!g.length)return m;let y=[],v=g[0].ymin,x=0;for(;y.length||g.length;){if(g.length){let b=-1;for(let w=0;w<g.length&&!(g[w].ymin>v);w++)b=w;g.splice(0,b+1).forEach(w=>{y.push({s:v,edge:w})})}if(y=y.filter(b=>!(b.edge.ymax<=v)),y.sort((b,w)=>b.edge.x===w.edge.x?0:(b.edge.x-w.edge.x)/Math.abs(b.edge.x-w.edge.x)),(d!==1||x%f==0)&&y.length>1)for(let b=0;b<y.length;b+=2){let w=b+1;if(w>=y.length)break;let C=y[b].edge,T=y[w].edge;m.push([[Math.round(C.x),v],[Math.round(T.x),v]])}v+=d,y.forEach(b=>{b.edge.x=b.edge.x+d*b.edge.islope}),x++}return m}(s,a,n);if(i){for(let h of s)MD(h,l,-i);(function(h,f,d){let p=[];h.forEach(m=>p.push(...m)),MD(p,f,d)})(u,l,-i)}return u}function x2(t,e){var r;let n=e.hachureAngle+90,i=e.hachureGap;i<0&&(i=4*e.strokeWidth),i=Math.round(Math.max(i,.1));let a=1;return e.roughness>=1&&(((r=e.randomizer)===null||r===void 0?void 0:r.next())||Math.random())>.7&&(a=i),t_e(t,i,n,a||1)}function zw(t){let e=t[0],r=t[1];return Math.sqrt(Math.pow(e[0]-r[0],2)+Math.pow(e[1]-r[1],2))}function OD(t,e){return t.type===e}function jD(t){let e=[],r=function(s){let l=new Array;for(;s!=="";)if(s.match(/^([ \t\r\n,]+)/))s=s.substr(RegExp.$1.length);else if(s.match(/^([aAcChHlLmMqQsStTvVzZ])/))l[l.length]={type:r_e,text:RegExp.$1},s=s.substr(RegExp.$1.length);else{if(!s.match(/^(([-+]?[0-9]+(\.[0-9]*)?|[-+]?\.[0-9]+)([eE][-+]?[0-9]+)?)/))return[];l[l.length]={type:ID,text:`${parseFloat(RegExp.$1)}`},s=s.substr(RegExp.$1.length)}return l[l.length]={type:yK,text:""},l}(t),n="BOD",i=0,a=r[i];for(;!OD(a,yK);){let s=0,l=[];if(n==="BOD"){if(a.text!=="M"&&a.text!=="m")return jD("M0,0"+t);i++,s=Nw[a.text],n=a.text}else OD(a,ID)?s=Nw[n]:(i++,s=Nw[a.text],n=a.text);if(!(i+s<r.length))throw new Error("Path data ended short");for(let u=i;u<i+s;u++){let h=r[u];if(!OD(h,ID))throw new Error("Param not a number: "+n+","+h.text);l[l.length]=+h.text}if(typeof Nw[n]!="number")throw new Error("Bad segment: "+n);{let u={key:n,data:l};e.push(u),i+=s,a=r[i],n==="M"&&(n="L"),n==="m"&&(n="l")}}return e}function SK(t){let e=0,r=0,n=0,i=0,a=[];for(let{key:s,data:l}of t)switch(s){case"M":a.push({key:"M",data:[...l]}),[e,r]=l,[n,i]=l;break;case"m":e+=l[0],r+=l[1],a.push({key:"M",data:[e,r]}),n=e,i=r;break;case"L":a.push({key:"L",data:[...l]}),[e,r]=l;break;case"l":e+=l[0],r+=l[1],a.push({key:"L",data:[e,r]});break;case"C":a.push({key:"C",data:[...l]}),e=l[4],r=l[5];break;case"c":{let u=l.map((h,f)=>f%2?h+r:h+e);a.push({key:"C",data:u}),e=u[4],r=u[5];break}case"Q":a.push({key:"Q",data:[...l]}),e=l[2],r=l[3];break;case"q":{let u=l.map((h,f)=>f%2?h+r:h+e);a.push({key:"Q",data:u}),e=u[2],r=u[3];break}case"A":a.push({key:"A",data:[...l]}),e=l[5],r=l[6];break;case"a":e+=l[5],r+=l[6],a.push({key:"A",data:[l[0],l[1],l[2],l[3],l[4],e,r]});break;case"H":a.push({key:"H",data:[...l]}),e=l[0];break;case"h":e+=l[0],a.push({key:"H",data:[e]});break;case"V":a.push({key:"V",data:[...l]}),r=l[0];break;case"v":r+=l[0],a.push({key:"V",data:[r]});break;case"S":a.push({key:"S",data:[...l]}),e=l[2],r=l[3];break;case"s":{let u=l.map((h,f)=>f%2?h+r:h+e);a.push({key:"S",data:u}),e=u[2],r=u[3];break}case"T":a.push({key:"T",data:[...l]}),e=l[0],r=l[1];break;case"t":e+=l[0],r+=l[1],a.push({key:"T",data:[e,r]});break;case"Z":case"z":a.push({key:"Z",data:[]}),e=n,r=i}return a}function CK(t){let e=[],r="",n=0,i=0,a=0,s=0,l=0,u=0;for(let{key:h,data:f}of t){switch(h){case"M":e.push({key:"M",data:[...f]}),[n,i]=f,[a,s]=f;break;case"C":e.push({key:"C",data:[...f]}),n=f[4],i=f[5],l=f[2],u=f[3];break;case"L":e.push({key:"L",data:[...f]}),[n,i]=f;break;case"H":n=f[0],e.push({key:"L",data:[n,i]});break;case"V":i=f[0],e.push({key:"L",data:[n,i]});break;case"S":{let d=0,p=0;r==="C"||r==="S"?(d=n+(n-l),p=i+(i-u)):(d=n,p=i),e.push({key:"C",data:[d,p,...f]}),l=f[0],u=f[1],n=f[2],i=f[3];break}case"T":{let[d,p]=f,m=0,g=0;r==="Q"||r==="T"?(m=n+(n-l),g=i+(i-u)):(m=n,g=i);let y=n+2*(m-n)/3,v=i+2*(g-i)/3,x=d+2*(m-d)/3,b=p+2*(g-p)/3;e.push({key:"C",data:[y,v,x,b,d,p]}),l=m,u=g,n=d,i=p;break}case"Q":{let[d,p,m,g]=f,y=n+2*(d-n)/3,v=i+2*(p-i)/3,x=m+2*(d-m)/3,b=g+2*(p-g)/3;e.push({key:"C",data:[y,v,x,b,m,g]}),l=d,u=p,n=m,i=g;break}case"A":{let d=Math.abs(f[0]),p=Math.abs(f[1]),m=f[2],g=f[3],y=f[4],v=f[5],x=f[6];d===0||p===0?(e.push({key:"C",data:[n,i,v,x,v,x]}),n=v,i=x):(n!==v||i!==x)&&(AK(n,i,v,x,d,p,m,g,y).forEach(function(b){e.push({key:"C",data:b})}),n=v,i=x);break}case"Z":e.push({key:"Z",data:[]}),n=a,i=s}r=h}return e}function g2(t,e,r){return[t*Math.cos(r)-e*Math.sin(r),t*Math.sin(r)+e*Math.cos(r)]}function AK(t,e,r,n,i,a,s,l,u,h){let f=(d=s,Math.PI*d/180);var d;let p=[],m=0,g=0,y=0,v=0;if(h)[m,g,y,v]=h;else{[t,e]=g2(t,e,-f),[r,n]=g2(r,n,-f);let L=(t-r)/2,R=(e-n)/2,O=L*L/(i*i)+R*R/(a*a);O>1&&(O=Math.sqrt(O),i*=O,a*=O);let M=i*i,B=a*a,F=M*B-M*R*R-B*L*L,P=M*R*R+B*L*L,z=(l===u?-1:1)*Math.sqrt(Math.abs(F/P));y=z*i*R/a+(t+r)/2,v=z*-a*L/i+(e+n)/2,m=Math.asin(parseFloat(((e-v)/a).toFixed(9))),g=Math.asin(parseFloat(((n-v)/a).toFixed(9))),t<y&&(m=Math.PI-m),r<y&&(g=Math.PI-g),m<0&&(m=2*Math.PI+m),g<0&&(g=2*Math.PI+g),u&&m>g&&(m-=2*Math.PI),!u&&g>m&&(g-=2*Math.PI)}let x=g-m;if(Math.abs(x)>120*Math.PI/180){let L=g,R=r,O=n;g=u&&g>m?m+120*Math.PI/180*1:m+120*Math.PI/180*-1,p=AK(r=y+i*Math.cos(g),n=v+a*Math.sin(g),R,O,i,a,s,0,u,[g,L,y,v])}x=g-m;let b=Math.cos(m),w=Math.sin(m),C=Math.cos(g),T=Math.sin(g),E=Math.tan(x/4),A=4/3*i*E,S=4/3*a*E,_=[t,e],I=[t+A*w,e-S*b],D=[r+A*T,n-S*C],k=[r,n];if(I[0]=2*_[0]-I[0],I[1]=2*_[1]-I[1],h)return[I,D,k].concat(p);{p=[I,D,k].concat(p);let L=[];for(let R=0;R<p.length;R+=3){let O=g2(p[R][0],p[R][1],f),M=g2(p[R+1][0],p[R+1][1],f),B=g2(p[R+2][0],p[R+2][1],f);L.push([O[0],O[1],M[0],M[1],B[0],B[1]])}return L}}function _K(t,e,r,n,i){return{type:"path",ops:Uh(t,e,r,n,i)}}function Ow(t,e,r){let n=(t||[]).length;if(n>2){let i=[];for(let a=0;a<n-1;a++)i.push(...Uh(t[a][0],t[a][1],t[a+1][0],t[a+1][1],r));return e&&i.push(...Uh(t[n-1][0],t[n-1][1],t[0][0],t[0][1],r)),{type:"path",ops:i}}return n===2?_K(t[0][0],t[0][1],t[1][0],t[1][1],r):{type:"path",ops:[]}}function i_e(t,e,r,n,i){return function(a,s){return Ow(a,!0,s)}([[t,e],[t+r,e],[t+r,e+n],[t,e+n]],i)}function vK(t,e){if(t.length){let r=typeof t[0][0]=="number"?[t]:t,n=Mw(r[0],1*(1+.2*e.roughness),e),i=e.disableMultiStroke?[]:Mw(r[0],1.5*(1+.22*e.roughness),wK(e));for(let a=1;a<r.length;a++){let s=r[a];if(s.length){let l=Mw(s,1*(1+.2*e.roughness),e),u=e.disableMultiStroke?[]:Mw(s,1.5*(1+.22*e.roughness),wK(e));for(let h of l)h.op!=="move"&&n.push(h);for(let h of u)h.op!=="move"&&i.push(h)}}return{type:"path",ops:n.concat(i)}}return{type:"path",ops:[]}}function DK(t,e,r){let n=Math.sqrt(2*Math.PI*Math.sqrt((Math.pow(t/2,2)+Math.pow(e/2,2))/2)),i=Math.ceil(Math.max(r.curveStepCount,r.curveStepCount/Math.sqrt(200)*n)),a=2*Math.PI/i,s=Math.abs(t/2),l=Math.abs(e/2),u=1-r.curveFitting;return s+=nr(s*u,r),l+=nr(l*u,r),{increment:a,rx:s,ry:l}}function HD(t,e,r,n){let[i,a]=TK(n.increment,t,e,n.rx,n.ry,1,n.increment*Bw(.1,Bw(.4,1,r),r),r),s=Fw(i,null,r);if(!r.disableMultiStroke&&r.roughness!==0){let[l]=TK(n.increment,t,e,n.rx,n.ry,1.5,0,r),u=Fw(l,null,r);s=s.concat(u)}return{estimatedPoints:a,opset:{type:"path",ops:s}}}function xK(t,e,r,n,i,a,s,l,u){let h=t,f=e,d=Math.abs(r/2),p=Math.abs(n/2);d+=nr(.01*d,u),p+=nr(.01*p,u);let m=i,g=a;for(;m<0;)m+=2*Math.PI,g+=2*Math.PI;g-m>2*Math.PI&&(m=0,g=2*Math.PI);let y=2*Math.PI/u.curveStepCount,v=Math.min(y/2,(g-m)/2),x=kK(v,h,f,d,p,m,g,1,u);if(!u.disableMultiStroke){let b=kK(v,h,f,d,p,m,g,1.5,u);x.push(...b)}return s&&(l?x.push(...Uh(h,f,h+d*Math.cos(m),f+p*Math.sin(m),u),...Uh(h,f,h+d*Math.cos(g),f+p*Math.sin(g),u)):x.push({op:"lineTo",data:[h,f]},{op:"lineTo",data:[h+d*Math.cos(m),f+p*Math.sin(m)]})),{type:"path",ops:x}}function bK(t,e){let r=CK(SK(jD(t))),n=[],i=[0,0],a=[0,0];for(let{key:s,data:l}of r)switch(s){case"M":a=[l[0],l[1]],i=[l[0],l[1]];break;case"L":n.push(...Uh(a[0],a[1],l[0],l[1],e)),a=[l[0],l[1]];break;case"C":{let[u,h,f,d,p,m]=l;n.push(...a_e(u,h,f,d,p,m,a,e)),a=[p,m];break}case"Z":n.push(...Uh(a[0],a[1],i[0],i[1],e)),a=[i[0],i[1]]}return{type:"path",ops:n}}function PD(t,e){let r=[];for(let n of t)if(n.length){let i=e.maxRandomnessOffset||0,a=n.length;if(a>2){r.push({op:"move",data:[n[0][0]+nr(i,e),n[0][1]+nr(i,e)]});for(let s=1;s<a;s++)r.push({op:"lineTo",data:[n[s][0]+nr(i,e),n[s][1]+nr(i,e)]})}}return{type:"fillPath",ops:r}}function dm(t,e){return function(r,n){let i=r.fillStyle||"hachure";if(!Rs[i])switch(i){case"zigzag":Rs[i]||(Rs[i]=new FD(n));break;case"cross-hatch":Rs[i]||(Rs[i]=new $D(n));break;case"dots":Rs[i]||(Rs[i]=new zD(n));break;case"dashed":Rs[i]||(Rs[i]=new GD(n));break;case"zigzag-line":Rs[i]||(Rs[i]=new VD(n));break;default:i="hachure",Rs[i]||(Rs[i]=new v2(n))}return Rs[i]}(e,n_e).fillPolygons(t,e)}function wK(t){let e=Object.assign({},t);return e.randomizer=void 0,t.seed&&(e.seed=t.seed+1),e}function LK(t){return t.randomizer||(t.randomizer=new UD(t.seed||0)),t.randomizer.next()}function Bw(t,e,r,n=1){return r.roughness*n*(LK(r)*(e-t)+t)}function nr(t,e,r=1){return Bw(-t,t,e,r)}function Uh(t,e,r,n,i,a=!1){let s=a?i.disableMultiStrokeFill:i.disableMultiStroke,l=WD(t,e,r,n,i,!0,!1);if(s)return l;let u=WD(t,e,r,n,i,!0,!0);return l.concat(u)}function WD(t,e,r,n,i,a,s){let l=Math.pow(t-r,2)+Math.pow(e-n,2),u=Math.sqrt(l),h=1;h=u<200?1:u>500?.4:-.0016668*u+1.233334;let f=i.maxRandomnessOffset||0;f*f*100>l&&(f=u/10);let d=f/2,p=.2+.2*LK(i),m=i.bowing*i.maxRandomnessOffset*(n-e)/200,g=i.bowing*i.maxRandomnessOffset*(t-r)/200;m=nr(m,i,h),g=nr(g,i,h);let y=[],v=o(()=>nr(d,i,h),"M"),x=o(()=>nr(f,i,h),"k"),b=i.preserveVertices;return a&&(s?y.push({op:"move",data:[t+(b?0:v()),e+(b?0:v())]}):y.push({op:"move",data:[t+(b?0:nr(f,i,h)),e+(b?0:nr(f,i,h))]})),s?y.push({op:"bcurveTo",data:[m+t+(r-t)*p+v(),g+e+(n-e)*p+v(),m+t+2*(r-t)*p+v(),g+e+2*(n-e)*p+v(),r+(b?0:v()),n+(b?0:v())]}):y.push({op:"bcurveTo",data:[m+t+(r-t)*p+x(),g+e+(n-e)*p+x(),m+t+2*(r-t)*p+x(),g+e+2*(n-e)*p+x(),r+(b?0:x()),n+(b?0:x())]}),y}function Mw(t,e,r){if(!t.length)return[];let n=[];n.push([t[0][0]+nr(e,r),t[0][1]+nr(e,r)]),n.push([t[0][0]+nr(e,r),t[0][1]+nr(e,r)]);for(let i=1;i<t.length;i++)n.push([t[i][0]+nr(e,r),t[i][1]+nr(e,r)]),i===t.length-1&&n.push([t[i][0]+nr(e,r),t[i][1]+nr(e,r)]);return Fw(n,null,r)}function Fw(t,e,r){let n=t.length,i=[];if(n>3){let a=[],s=1-r.curveTightness;i.push({op:"move",data:[t[1][0],t[1][1]]});for(let l=1;l+2<n;l++){let u=t[l];a[0]=[u[0],u[1]],a[1]=[u[0]+(s*t[l+1][0]-s*t[l-1][0])/6,u[1]+(s*t[l+1][1]-s*t[l-1][1])/6],a[2]=[t[l+1][0]+(s*t[l][0]-s*t[l+2][0])/6,t[l+1][1]+(s*t[l][1]-s*t[l+2][1])/6],a[3]=[t[l+1][0],t[l+1][1]],i.push({op:"bcurveTo",data:[a[1][0],a[1][1],a[2][0],a[2][1],a[3][0],a[3][1]]})}if(e&&e.length===2){let l=r.maxRandomnessOffset;i.push({op:"lineTo",data:[e[0]+nr(l,r),e[1]+nr(l,r)]})}}else n===3?(i.push({op:"move",data:[t[1][0],t[1][1]]}),i.push({op:"bcurveTo",data:[t[1][0],t[1][1],t[2][0],t[2][1],t[2][0],t[2][1]]})):n===2&&i.push(...WD(t[0][0],t[0][1],t[1][0],t[1][1],r,!0,!0));return i}function TK(t,e,r,n,i,a,s,l){let u=[],h=[];if(l.roughness===0){t/=4,h.push([e+n*Math.cos(-t),r+i*Math.sin(-t)]);for(let f=0;f<=2*Math.PI;f+=t){let d=[e+n*Math.cos(f),r+i*Math.sin(f)];u.push(d),h.push(d)}h.push([e+n*Math.cos(0),r+i*Math.sin(0)]),h.push([e+n*Math.cos(t),r+i*Math.sin(t)])}else{let f=nr(.5,l)-Math.PI/2;h.push([nr(a,l)+e+.9*n*Math.cos(f-t),nr(a,l)+r+.9*i*Math.sin(f-t)]);let d=2*Math.PI+f-.01;for(let p=f;p<d;p+=t){let m=[nr(a,l)+e+n*Math.cos(p),nr(a,l)+r+i*Math.sin(p)];u.push(m),h.push(m)}h.push([nr(a,l)+e+n*Math.cos(f+2*Math.PI+.5*s),nr(a,l)+r+i*Math.sin(f+2*Math.PI+.5*s)]),h.push([nr(a,l)+e+.98*n*Math.cos(f+s),nr(a,l)+r+.98*i*Math.sin(f+s)]),h.push([nr(a,l)+e+.9*n*Math.cos(f+.5*s),nr(a,l)+r+.9*i*Math.sin(f+.5*s)])}return[h,u]}function kK(t,e,r,n,i,a,s,l,u){let h=a+nr(.1,u),f=[];f.push([nr(l,u)+e+.9*n*Math.cos(h-t),nr(l,u)+r+.9*i*Math.sin(h-t)]);for(let d=h;d<=s;d+=t)f.push([nr(l,u)+e+n*Math.cos(d),nr(l,u)+r+i*Math.sin(d)]);return f.push([e+n*Math.cos(s),r+i*Math.sin(s)]),f.push([e+n*Math.cos(s),r+i*Math.sin(s)]),Fw(f,null,u)}function a_e(t,e,r,n,i,a,s,l){let u=[],h=[l.maxRandomnessOffset||1,(l.maxRandomnessOffset||1)+.3],f=[0,0],d=l.disableMultiStroke?1:2,p=l.preserveVertices;for(let m=0;m<d;m++)m===0?u.push({op:"move",data:[s[0],s[1]]}):u.push({op:"move",data:[s[0]+(p?0:nr(h[0],l)),s[1]+(p?0:nr(h[0],l))]}),f=p?[i,a]:[i+nr(h[m],l),a+nr(h[m],l)],u.push({op:"bcurveTo",data:[t+nr(h[m],l),e+nr(h[m],l),r+nr(h[m],l),n+nr(h[m],l),f[0],f[1]]});return u}function y2(t){return[...t]}function EK(t,e=0){let r=t.length;if(r<3)throw new Error("A curve must have at least three points.");let n=[];if(r===3)n.push(y2(t[0]),y2(t[1]),y2(t[2]),y2(t[2]));else{let i=[];i.push(t[0],t[0]);for(let l=1;l<t.length;l++)i.push(t[l]),l===t.length-1&&i.push(t[l]);let a=[],s=1-e;n.push(y2(i[0]));for(let l=1;l+2<i.length;l++){let u=i[l];a[0]=[u[0],u[1]],a[1]=[u[0]+(s*i[l+1][0]-s*i[l-1][0])/6,u[1]+(s*i[l+1][1]-s*i[l-1][1])/6],a[2]=[i[l+1][0]+(s*i[l][0]-s*i[l+2][0])/6,i[l+1][1]+(s*i[l][1]-s*i[l+2][1])/6],a[3]=[i[l+1][0],i[l+1][1]],n.push(a[1],a[2],a[3])}}return n}function Pw(t,e){return Math.pow(t[0]-e[0],2)+Math.pow(t[1]-e[1],2)}function s_e(t,e,r){let n=Pw(e,r);if(n===0)return Pw(t,e);let i=((t[0]-e[0])*(r[0]-e[0])+(t[1]-e[1])*(r[1]-e[1]))/n;return i=Math.max(0,Math.min(1,i)),Pw(t,Od(e,r,i))}function Od(t,e,r){return[t[0]+(e[0]-t[0])*r,t[1]+(e[1]-t[1])*r]}function qD(t,e,r,n){let i=n||[];if(function(l,u){let h=l[u+0],f=l[u+1],d=l[u+2],p=l[u+3],m=3*f[0]-2*h[0]-p[0];m*=m;let g=3*f[1]-2*h[1]-p[1];g*=g;let y=3*d[0]-2*p[0]-h[0];y*=y;let v=3*d[1]-2*p[1]-h[1];return v*=v,m<y&&(m=y),g<v&&(g=v),m+g}(t,e)<r){let l=t[e+0];i.length?(a=i[i.length-1],s=l,Math.sqrt(Pw(a,s))>1&&i.push(l)):i.push(l),i.push(t[e+3])}else{let u=t[e+0],h=t[e+1],f=t[e+2],d=t[e+3],p=Od(u,h,.5),m=Od(h,f,.5),g=Od(f,d,.5),y=Od(p,m,.5),v=Od(m,g,.5),x=Od(y,v,.5);qD([u,p,y,x],0,r,i),qD([x,v,g,d],0,r,i)}var a,s;return i}function o_e(t,e){return $w(t,0,t.length,e)}function $w(t,e,r,n,i){let a=i||[],s=t[e],l=t[r-1],u=0,h=1;for(let f=e+1;f<r-1;++f){let d=s_e(t[f],s,l);d>u&&(u=d,h=f)}return Math.sqrt(u)>n?($w(t,e,h+1,n,a),$w(t,h,r,n,a)):(a.length||a.push(s),a.push(l)),a}function BD(t,e=.15,r){let n=[],i=(t.length-1)/3;for(let a=0;a<i;a++)qD(t,3*a,e,n);return r&&r>0?$w(n,0,n.length,r):n}var v2,FD,$D,zD,GD,VD,Rs,UD,r_e,ID,yK,Nw,n_e,ro,pm,YD,Iw,XD,Xe,Wt=N(()=>{"use strict";o(MD,"t");o(e_e,"e");o(t_e,"s");o(x2,"n");v2=class{static{o(this,"o")}constructor(e){this.helper=e}fillPolygons(e,r){return this._fillPolygons(e,r)}_fillPolygons(e,r){let n=x2(e,r);return{type:"fillSketch",ops:this.renderLines(n,r)}}renderLines(e,r){let n=[];for(let i of e)n.push(...this.helper.doubleLineOps(i[0][0],i[0][1],i[1][0],i[1][1],r));return n}};o(zw,"a");FD=class extends v2{static{o(this,"h")}fillPolygons(e,r){let n=r.hachureGap;n<0&&(n=4*r.strokeWidth),n=Math.max(n,.1);let i=x2(e,Object.assign({},r,{hachureGap:n})),a=Math.PI/180*r.hachureAngle,s=[],l=.5*n*Math.cos(a),u=.5*n*Math.sin(a);for(let[h,f]of i)zw([h,f])&&s.push([[h[0]-l,h[1]+u],[...f]],[[h[0]+l,h[1]-u],[...f]]);return{type:"fillSketch",ops:this.renderLines(s,r)}}},$D=class extends v2{static{o(this,"r")}fillPolygons(e,r){let n=this._fillPolygons(e,r),i=Object.assign({},r,{hachureAngle:r.hachureAngle+90}),a=this._fillPolygons(e,i);return n.ops=n.ops.concat(a.ops),n}},zD=class{static{o(this,"i")}constructor(e){this.helper=e}fillPolygons(e,r){let n=x2(e,r=Object.assign({},r,{hachureAngle:0}));return this.dotsOnLines(n,r)}dotsOnLines(e,r){let n=[],i=r.hachureGap;i<0&&(i=4*r.strokeWidth),i=Math.max(i,.1);let a=r.fillWeight;a<0&&(a=r.strokeWidth/2);let s=i/4;for(let l of e){let u=zw(l),h=u/i,f=Math.ceil(h)-1,d=u-f*i,p=(l[0][0]+l[1][0])/2-i/4,m=Math.min(l[0][1],l[1][1]);for(let g=0;g<f;g++){let y=m+d+g*i,v=p-s+2*Math.random()*s,x=y-s+2*Math.random()*s,b=this.helper.ellipse(v,x,a,a,r);n.push(...b.ops)}}return{type:"fillSketch",ops:n}}},GD=class{static{o(this,"c")}constructor(e){this.helper=e}fillPolygons(e,r){let n=x2(e,r);return{type:"fillSketch",ops:this.dashedLine(n,r)}}dashedLine(e,r){let n=r.dashOffset<0?r.hachureGap<0?4*r.strokeWidth:r.hachureGap:r.dashOffset,i=r.dashGap<0?r.hachureGap<0?4*r.strokeWidth:r.hachureGap:r.dashGap,a=[];return e.forEach(s=>{let l=zw(s),u=Math.floor(l/(n+i)),h=(l+i-u*(n+i))/2,f=s[0],d=s[1];f[0]>d[0]&&(f=s[1],d=s[0]);let p=Math.atan((d[1]-f[1])/(d[0]-f[0]));for(let m=0;m<u;m++){let g=m*(n+i),y=g+n,v=[f[0]+g*Math.cos(p)+h*Math.cos(p),f[1]+g*Math.sin(p)+h*Math.sin(p)],x=[f[0]+y*Math.cos(p)+h*Math.cos(p),f[1]+y*Math.sin(p)+h*Math.sin(p)];a.push(...this.helper.doubleLineOps(v[0],v[1],x[0],x[1],r))}}),a}},VD=class{static{o(this,"l")}constructor(e){this.helper=e}fillPolygons(e,r){let n=r.hachureGap<0?4*r.strokeWidth:r.hachureGap,i=r.zigzagOffset<0?n:r.zigzagOffset,a=x2(e,r=Object.assign({},r,{hachureGap:n+i}));return{type:"fillSketch",ops:this.zigzagLines(a,i,r)}}zigzagLines(e,r,n){let i=[];return e.forEach(a=>{let s=zw(a),l=Math.round(s/(2*r)),u=a[0],h=a[1];u[0]>h[0]&&(u=a[1],h=a[0]);let f=Math.atan((h[1]-u[1])/(h[0]-u[0]));for(let d=0;d<l;d++){let p=2*d*r,m=2*(d+1)*r,g=Math.sqrt(2*Math.pow(r,2)),y=[u[0]+p*Math.cos(f),u[1]+p*Math.sin(f)],v=[u[0]+m*Math.cos(f),u[1]+m*Math.sin(f)],x=[y[0]+g*Math.cos(f+Math.PI/4),y[1]+g*Math.sin(f+Math.PI/4)];i.push(...this.helper.doubleLineOps(y[0],y[1],x[0],x[1],n),...this.helper.doubleLineOps(x[0],x[1],v[0],v[1],n))}}),i}},Rs={},UD=class{static{o(this,"p")}constructor(e){this.seed=e}next(){return this.seed?(2**31-1&(this.seed=Math.imul(48271,this.seed)))/2**31:Math.random()}},r_e=0,ID=1,yK=2,Nw={A:7,a:7,C:6,c:6,H:1,h:1,L:2,l:2,M:2,m:2,Q:4,q:4,S:4,s:4,T:2,t:2,V:1,v:1,Z:0,z:0};o(OD,"k");o(jD,"b");o(SK,"y");o(CK,"m");o(g2,"w");o(AK,"x");n_e={randOffset:o(function(t,e){return nr(t,e)},"randOffset"),randOffsetWithRange:o(function(t,e,r){return Bw(t,e,r)},"randOffsetWithRange"),ellipse:o(function(t,e,r,n,i){let a=DK(r,n,i);return HD(t,e,i,a).opset},"ellipse"),doubleLineOps:o(function(t,e,r,n,i){return Uh(t,e,r,n,i,!0)},"doubleLineOps")};o(_K,"v");o(Ow,"S");o(i_e,"O");o(vK,"L");o(DK,"T");o(HD,"D");o(xK,"A");o(bK,"_");o(PD,"I");o(dm,"C");o(wK,"z");o(LK,"W");o(Bw,"E");o(nr,"G");o(Uh,"$");o(WD,"R");o(Mw,"j");o(Fw,"q");o(TK,"F");o(kK,"V");o(a_e,"Z");o(y2,"Q");o(EK,"H");o(Pw,"N");o(s_e,"B");o(Od,"J");o(qD,"K");o(o_e,"U");o($w,"X");o(BD,"Y");ro="none",pm=class{static{o(this,"et")}constructor(e){this.defaultOptions={maxRandomnessOffset:2,roughness:1,bowing:1,stroke:"#000",strokeWidth:1,curveTightness:0,curveFitting:.95,curveStepCount:9,fillStyle:"hachure",fillWeight:-1,hachureAngle:-41,hachureGap:-1,dashOffset:-1,dashGap:-1,zigzagOffset:-1,seed:0,disableMultiStroke:!1,disableMultiStrokeFill:!1,preserveVertices:!1,fillShapeRoughnessGain:.8},this.config=e||{},this.config.options&&(this.defaultOptions=this._o(this.config.options))}static newSeed(){return Math.floor(Math.random()*2**31)}_o(e){return e?Object.assign({},this.defaultOptions,e):this.defaultOptions}_d(e,r,n){return{shape:e,sets:r||[],options:n||this.defaultOptions}}line(e,r,n,i,a){let s=this._o(a);return this._d("line",[_K(e,r,n,i,s)],s)}rectangle(e,r,n,i,a){let s=this._o(a),l=[],u=i_e(e,r,n,i,s);if(s.fill){let h=[[e,r],[e+n,r],[e+n,r+i],[e,r+i]];s.fillStyle==="solid"?l.push(PD([h],s)):l.push(dm([h],s))}return s.stroke!==ro&&l.push(u),this._d("rectangle",l,s)}ellipse(e,r,n,i,a){let s=this._o(a),l=[],u=DK(n,i,s),h=HD(e,r,s,u);if(s.fill)if(s.fillStyle==="solid"){let f=HD(e,r,s,u).opset;f.type="fillPath",l.push(f)}else l.push(dm([h.estimatedPoints],s));return s.stroke!==ro&&l.push(h.opset),this._d("ellipse",l,s)}circle(e,r,n,i){let a=this.ellipse(e,r,n,n,i);return a.shape="circle",a}linearPath(e,r){let n=this._o(r);return this._d("linearPath",[Ow(e,!1,n)],n)}arc(e,r,n,i,a,s,l=!1,u){let h=this._o(u),f=[],d=xK(e,r,n,i,a,s,l,!0,h);if(l&&h.fill)if(h.fillStyle==="solid"){let p=Object.assign({},h);p.disableMultiStroke=!0;let m=xK(e,r,n,i,a,s,!0,!1,p);m.type="fillPath",f.push(m)}else f.push(function(p,m,g,y,v,x,b){let w=p,C=m,T=Math.abs(g/2),E=Math.abs(y/2);T+=nr(.01*T,b),E+=nr(.01*E,b);let A=v,S=x;for(;A<0;)A+=2*Math.PI,S+=2*Math.PI;S-A>2*Math.PI&&(A=0,S=2*Math.PI);let _=(S-A)/b.curveStepCount,I=[];for(let D=A;D<=S;D+=_)I.push([w+T*Math.cos(D),C+E*Math.sin(D)]);return I.push([w+T*Math.cos(S),C+E*Math.sin(S)]),I.push([w,C]),dm([I],b)}(e,r,n,i,a,s,h));return h.stroke!==ro&&f.push(d),this._d("arc",f,h)}curve(e,r){let n=this._o(r),i=[],a=vK(e,n);if(n.fill&&n.fill!==ro)if(n.fillStyle==="solid"){let s=vK(e,Object.assign(Object.assign({},n),{disableMultiStroke:!0,roughness:n.roughness?n.roughness+n.fillShapeRoughnessGain:0}));i.push({type:"fillPath",ops:this._mergedShape(s.ops)})}else{let s=[],l=e;if(l.length){let u=typeof l[0][0]=="number"?[l]:l;for(let h of u)h.length<3?s.push(...h):h.length===3?s.push(...BD(EK([h[0],h[0],h[1],h[2]]),10,(1+n.roughness)/2)):s.push(...BD(EK(h),10,(1+n.roughness)/2))}s.length&&i.push(dm([s],n))}return n.stroke!==ro&&i.push(a),this._d("curve",i,n)}polygon(e,r){let n=this._o(r),i=[],a=Ow(e,!0,n);return n.fill&&(n.fillStyle==="solid"?i.push(PD([e],n)):i.push(dm([e],n))),n.stroke!==ro&&i.push(a),this._d("polygon",i,n)}path(e,r){let n=this._o(r),i=[];if(!e)return this._d("path",i,n);e=(e||"").replace(/\n/g," ").replace(/(-\s)/g,"-").replace("/(ss)/g"," ");let a=n.fill&&n.fill!=="transparent"&&n.fill!==ro,s=n.stroke!==ro,l=!!(n.simplification&&n.simplification<1),u=function(f,d,p){let m=CK(SK(jD(f))),g=[],y=[],v=[0,0],x=[],b=o(()=>{x.length>=4&&y.push(...BD(x,d)),x=[]},"i"),w=o(()=>{b(),y.length&&(g.push(y),y=[])},"c");for(let{key:T,data:E}of m)switch(T){case"M":w(),v=[E[0],E[1]],y.push(v);break;case"L":b(),y.push([E[0],E[1]]);break;case"C":if(!x.length){let A=y.length?y[y.length-1]:v;x.push([A[0],A[1]])}x.push([E[0],E[1]]),x.push([E[2],E[3]]),x.push([E[4],E[5]]);break;case"Z":b(),y.push([v[0],v[1]])}if(w(),!p)return g;let C=[];for(let T of g){let E=o_e(T,p);E.length&&C.push(E)}return C}(e,1,l?4-4*(n.simplification||1):(1+n.roughness)/2),h=bK(e,n);if(a)if(n.fillStyle==="solid")if(u.length===1){let f=bK(e,Object.assign(Object.assign({},n),{disableMultiStroke:!0,roughness:n.roughness?n.roughness+n.fillShapeRoughnessGain:0}));i.push({type:"fillPath",ops:this._mergedShape(f.ops)})}else i.push(PD(u,n));else i.push(dm(u,n));return s&&(l?u.forEach(f=>{i.push(Ow(f,!1,n))}):i.push(h)),this._d("path",i,n)}opsToPath(e,r){let n="";for(let i of e.ops){let a=typeof r=="number"&&r>=0?i.data.map(s=>+s.toFixed(r)):i.data;switch(i.op){case"move":n+=`M${a[0]} ${a[1]} `;break;case"bcurveTo":n+=`C${a[0]} ${a[1]}, ${a[2]} ${a[3]}, ${a[4]} ${a[5]} `;break;case"lineTo":n+=`L${a[0]} ${a[1]} `}}return n.trim()}toPaths(e){let r=e.sets||[],n=e.options||this.defaultOptions,i=[];for(let a of r){let s=null;switch(a.type){case"path":s={d:this.opsToPath(a),stroke:n.stroke,strokeWidth:n.strokeWidth,fill:ro};break;case"fillPath":s={d:this.opsToPath(a),stroke:ro,strokeWidth:0,fill:n.fill||ro};break;case"fillSketch":s=this.fillSketch(a,n)}s&&i.push(s)}return i}fillSketch(e,r){let n=r.fillWeight;return n<0&&(n=r.strokeWidth/2),{d:this.opsToPath(e),stroke:r.fill||ro,strokeWidth:n,fill:ro}}_mergedShape(e){return e.filter((r,n)=>n===0||r.op!=="move")}},YD=class{static{o(this,"st")}constructor(e,r){this.canvas=e,this.ctx=this.canvas.getContext("2d"),this.gen=new pm(r)}draw(e){let r=e.sets||[],n=e.options||this.getDefaultOptions(),i=this.ctx,a=e.options.fixedDecimalPlaceDigits;for(let s of r)switch(s.type){case"path":i.save(),i.strokeStyle=n.stroke==="none"?"transparent":n.stroke,i.lineWidth=n.strokeWidth,n.strokeLineDash&&i.setLineDash(n.strokeLineDash),n.strokeLineDashOffset&&(i.lineDashOffset=n.strokeLineDashOffset),this._drawToContext(i,s,a),i.restore();break;case"fillPath":{i.save(),i.fillStyle=n.fill||"";let l=e.shape==="curve"||e.shape==="polygon"||e.shape==="path"?"evenodd":"nonzero";this._drawToContext(i,s,a,l),i.restore();break}case"fillSketch":this.fillSketch(i,s,n)}}fillSketch(e,r,n){let i=n.fillWeight;i<0&&(i=n.strokeWidth/2),e.save(),n.fillLineDash&&e.setLineDash(n.fillLineDash),n.fillLineDashOffset&&(e.lineDashOffset=n.fillLineDashOffset),e.strokeStyle=n.fill||"",e.lineWidth=i,this._drawToContext(e,r,n.fixedDecimalPlaceDigits),e.restore()}_drawToContext(e,r,n,i="nonzero"){e.beginPath();for(let a of r.ops){let s=typeof n=="number"&&n>=0?a.data.map(l=>+l.toFixed(n)):a.data;switch(a.op){case"move":e.moveTo(s[0],s[1]);break;case"bcurveTo":e.bezierCurveTo(s[0],s[1],s[2],s[3],s[4],s[5]);break;case"lineTo":e.lineTo(s[0],s[1])}}r.type==="fillPath"?e.fill(i):e.stroke()}get generator(){return this.gen}getDefaultOptions(){return this.gen.defaultOptions}line(e,r,n,i,a){let s=this.gen.line(e,r,n,i,a);return this.draw(s),s}rectangle(e,r,n,i,a){let s=this.gen.rectangle(e,r,n,i,a);return this.draw(s),s}ellipse(e,r,n,i,a){let s=this.gen.ellipse(e,r,n,i,a);return this.draw(s),s}circle(e,r,n,i){let a=this.gen.circle(e,r,n,i);return this.draw(a),a}linearPath(e,r){let n=this.gen.linearPath(e,r);return this.draw(n),n}polygon(e,r){let n=this.gen.polygon(e,r);return this.draw(n),n}arc(e,r,n,i,a,s,l=!1,u){let h=this.gen.arc(e,r,n,i,a,s,l,u);return this.draw(h),h}curve(e,r){let n=this.gen.curve(e,r);return this.draw(n),n}path(e,r){let n=this.gen.path(e,r);return this.draw(n),n}},Iw="http://www.w3.org/2000/svg",XD=class{static{o(this,"ot")}constructor(e,r){this.svg=e,this.gen=new pm(r)}draw(e){let r=e.sets||[],n=e.options||this.getDefaultOptions(),i=this.svg.ownerDocument||window.document,a=i.createElementNS(Iw,"g"),s=e.options.fixedDecimalPlaceDigits;for(let l of r){let u=null;switch(l.type){case"path":u=i.createElementNS(Iw,"path"),u.setAttribute("d",this.opsToPath(l,s)),u.setAttribute("stroke",n.stroke),u.setAttribute("stroke-width",n.strokeWidth+""),u.setAttribute("fill","none"),n.strokeLineDash&&u.setAttribute("stroke-dasharray",n.strokeLineDash.join(" ").trim()),n.strokeLineDashOffset&&u.setAttribute("stroke-dashoffset",`${n.strokeLineDashOffset}`);break;case"fillPath":u=i.createElementNS(Iw,"path"),u.setAttribute("d",this.opsToPath(l,s)),u.setAttribute("stroke","none"),u.setAttribute("stroke-width","0"),u.setAttribute("fill",n.fill||""),e.shape!=="curve"&&e.shape!=="polygon"||u.setAttribute("fill-rule","evenodd");break;case"fillSketch":u=this.fillSketch(i,l,n)}u&&a.appendChild(u)}return a}fillSketch(e,r,n){let i=n.fillWeight;i<0&&(i=n.strokeWidth/2);let a=e.createElementNS(Iw,"path");return a.setAttribute("d",this.opsToPath(r,n.fixedDecimalPlaceDigits)),a.setAttribute("stroke",n.fill||""),a.setAttribute("stroke-width",i+""),a.setAttribute("fill","none"),n.fillLineDash&&a.setAttribute("stroke-dasharray",n.fillLineDash.join(" ").trim()),n.fillLineDashOffset&&a.setAttribute("stroke-dashoffset",`${n.fillLineDashOffset}`),a}get generator(){return this.gen}getDefaultOptions(){return this.gen.defaultOptions}opsToPath(e,r){return this.gen.opsToPath(e,r)}line(e,r,n,i,a){let s=this.gen.line(e,r,n,i,a);return this.draw(s)}rectangle(e,r,n,i,a){let s=this.gen.rectangle(e,r,n,i,a);return this.draw(s)}ellipse(e,r,n,i,a){let s=this.gen.ellipse(e,r,n,i,a);return this.draw(s)}circle(e,r,n,i){let a=this.gen.circle(e,r,n,i);return this.draw(a)}linearPath(e,r){let n=this.gen.linearPath(e,r);return this.draw(n)}polygon(e,r){let n=this.gen.polygon(e,r);return this.draw(n)}arc(e,r,n,i,a,s,l=!1,u){let h=this.gen.arc(e,r,n,i,a,s,l,u);return this.draw(h)}curve(e,r){let n=this.gen.curve(e,r);return this.draw(n)}path(e,r){let n=this.gen.path(e,r);return this.draw(n)}},Xe={canvas:o((t,e)=>new YD(t,e),"canvas"),svg:o((t,e)=>new XD(t,e),"svg"),generator:o(t=>new pm(t),"generator"),newSeed:o(()=>pm.newSeed(),"newSeed")}});function RK(t,e){let{labelStyles:r}=Qe(e);e.labelStyle=r;let n=ht(e),i=n;n||(i="anchor");let a=t.insert("g").attr("class",i).attr("id",e.domId||e.id),s=1,{cssStyles:l}=e,u=Xe.svg(a),h=Ke(e,{fill:"black",stroke:"none",fillStyle:"solid"});e.look!=="handDrawn"&&(h.roughness=0);let f=u.circle(0,0,s*2,h),d=a.insert(()=>f,":first-child");return d.attr("class","anchor").attr("style",$n(l)),je(e,d),e.intersect=function(p){return Y.info("Circle intersect",e,s,p),Ye.circle(e,s,p)},a}var NK=N(()=>{"use strict";vt();Ft();Ht();Ut();Wt();ir();o(RK,"anchor")});function MK(t,e,r,n,i,a,s){let u=(t+r)/2,h=(e+n)/2,f=Math.atan2(n-e,r-t),d=(r-t)/2,p=(n-e)/2,m=d/i,g=p/a,y=Math.sqrt(m**2+g**2);if(y>1)throw new Error("The given radii are too small to create an arc between the points.");let v=Math.sqrt(1-y**2),x=u+v*a*Math.sin(f)*(s?-1:1),b=h-v*i*Math.cos(f)*(s?-1:1),w=Math.atan2((e-b)/a,(t-x)/i),T=Math.atan2((n-b)/a,(r-x)/i)-w;s&&T<0&&(T+=2*Math.PI),!s&&T>0&&(T-=2*Math.PI);let E=[];for(let A=0;A<20;A++){let S=A/19,_=w+S*T,I=x+i*Math.cos(_),D=b+a*Math.sin(_);E.push({x:I,y:D})}return E}async function IK(t,e){let{labelStyles:r,nodeStyles:n}=Qe(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await pt(t,e,ht(e)),s=a.width+e.padding+20,l=a.height+e.padding,u=l/2,h=u/(2.5+l/50),{cssStyles:f}=e,d=[{x:s/2,y:-l/2},{x:-s/2,y:-l/2},...MK(-s/2,-l/2,-s/2,l/2,h,u,!1),{x:s/2,y:l/2},...MK(s/2,l/2,s/2,-l/2,h,u,!0)],p=Xe.svg(i),m=Ke(e,{});e.look!=="handDrawn"&&(m.roughness=0,m.fillStyle="solid");let g=Xt(d),y=p.path(g,m),v=i.insert(()=>y,":first-child");return v.attr("class","basic label-container"),f&&e.look!=="handDrawn"&&v.selectAll("path").attr("style",f),n&&e.look!=="handDrawn"&&v.selectAll("path").attr("style",n),v.attr("transform",`translate(${h/2}, 0)`),je(e,v),e.intersect=function(x){return Ye.polygon(e,d,x)},i}var OK=N(()=>{"use strict";Ft();Ht();Ut();Wt();o(MK,"generateArcPoints");o(IK,"bowTieRect")});function La(t,e,r,n){return t.insert("polygon",":first-child").attr("points",n.map(function(i){return i.x+","+i.y}).join(" ")).attr("class","label-container").attr("transform","translate("+-e/2+","+r/2+")")}var _u=N(()=>{"use strict";o(La,"insertPolygonShape")});async function PK(t,e){let{labelStyles:r,nodeStyles:n}=Qe(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await pt(t,e,ht(e)),s=a.height+e.padding,l=12,u=a.width+e.padding+l,h=0,f=u,d=-s,p=0,m=[{x:h+l,y:d},{x:f,y:d},{x:f,y:p},{x:h,y:p},{x:h,y:d+l},{x:h+l,y:d}],g,{cssStyles:y}=e;if(e.look==="handDrawn"){let v=Xe.svg(i),x=Ke(e,{}),b=Xt(m),w=v.path(b,x);g=i.insert(()=>w,":first-child").attr("transform",`translate(${-u/2}, ${s/2})`),y&&g.attr("style",y)}else g=La(i,u,s,m);return n&&g.attr("style",n),je(e,g),e.intersect=function(v){return Ye.polygon(e,m,v)},i}var BK=N(()=>{"use strict";Ft();Ht();Ut();Wt();_u();Ft();o(PK,"card")});function FK(t,e){let{nodeStyles:r}=Qe(e);e.label="";let n=t.insert("g").attr("class",ht(e)).attr("id",e.domId??e.id),{cssStyles:i}=e,a=Math.max(28,e.width??0),s=[{x:0,y:a/2},{x:a/2,y:0},{x:0,y:-a/2},{x:-a/2,y:0}],l=Xe.svg(n),u=Ke(e,{});e.look!=="handDrawn"&&(u.roughness=0,u.fillStyle="solid");let h=Xt(s),f=l.path(h,u),d=n.insert(()=>f,":first-child");return i&&e.look!=="handDrawn"&&d.selectAll("path").attr("style",i),r&&e.look!=="handDrawn"&&d.selectAll("path").attr("style",r),e.width=28,e.height=28,e.intersect=function(p){return Ye.polygon(e,s,p)},n}var $K=N(()=>{"use strict";Ht();Wt();Ut();Ft();o(FK,"choice")});async function zK(t,e){let{labelStyles:r,nodeStyles:n}=Qe(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,halfPadding:s}=await pt(t,e,ht(e)),l=a.width/2+s,u,{cssStyles:h}=e;if(e.look==="handDrawn"){let f=Xe.svg(i),d=Ke(e,{}),p=f.circle(0,0,l*2,d);u=i.insert(()=>p,":first-child"),u.attr("class","basic label-container").attr("style",$n(h))}else u=i.insert("circle",":first-child").attr("class","basic label-container").attr("style",n).attr("r",l).attr("cx",0).attr("cy",0);return je(e,u),e.intersect=function(f){return Y.info("Circle intersect",e,l,f),Ye.circle(e,l,f)},i}var GK=N(()=>{"use strict";vt();Ft();Ht();Ut();Wt();ir();o(zK,"circle")});function l_e(t){let e=Math.cos(Math.PI/4),r=Math.sin(Math.PI/4),n=t*2,i={x:n/2*e,y:n/2*r},a={x:-(n/2)*e,y:n/2*r},s={x:-(n/2)*e,y:-(n/2)*r},l={x:n/2*e,y:-(n/2)*r};return`M ${a.x},${a.y} L ${l.x},${l.y}
+                   M ${i.x},${i.y} L ${s.x},${s.y}`}function VK(t,e){let{labelStyles:r,nodeStyles:n}=Qe(e);e.labelStyle=r,e.label="";let i=t.insert("g").attr("class",ht(e)).attr("id",e.domId??e.id),a=Math.max(30,e?.width??0),{cssStyles:s}=e,l=Xe.svg(i),u=Ke(e,{});e.look!=="handDrawn"&&(u.roughness=0,u.fillStyle="solid");let h=l.circle(0,0,a*2,u),f=l_e(a),d=l.path(f,u),p=i.insert(()=>h,":first-child");return p.insert(()=>d),s&&e.look!=="handDrawn"&&p.selectAll("path").attr("style",s),n&&e.look!=="handDrawn"&&p.selectAll("path").attr("style",n),je(e,p),e.intersect=function(m){return Y.info("crossedCircle intersect",e,{radius:a,point:m}),Ye.circle(e,a,m)},i}var UK=N(()=>{"use strict";vt();Ft();Ut();Wt();Ht();o(l_e,"createLine");o(VK,"crossedCircle")});function Hh(t,e,r,n=100,i=0,a=180){let s=[],l=i*Math.PI/180,f=(a*Math.PI/180-l)/(n-1);for(let d=0;d<n;d++){let p=l+d*f,m=t+r*Math.cos(p),g=e+r*Math.sin(p);s.push({x:-m,y:-g})}return s}async function HK(t,e){let{labelStyles:r,nodeStyles:n}=Qe(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await pt(t,e,ht(e)),l=a.width+(e.padding??0),u=a.height+(e.padding??0),h=Math.max(5,u*.1),{cssStyles:f}=e,d=[...Hh(l/2,-u/2,h,30,-90,0),{x:-l/2-h,y:h},...Hh(l/2+h*2,-h,h,20,-180,-270),...Hh(l/2+h*2,h,h,20,-90,-180),{x:-l/2-h,y:-u/2},...Hh(l/2,u/2,h,20,0,90)],p=[{x:l/2,y:-u/2-h},{x:-l/2,y:-u/2-h},...Hh(l/2,-u/2,h,20,-90,0),{x:-l/2-h,y:-h},...Hh(l/2+l*.1,-h,h,20,-180,-270),...Hh(l/2+l*.1,h,h,20,-90,-180),{x:-l/2-h,y:u/2},...Hh(l/2,u/2,h,20,0,90),{x:-l/2,y:u/2+h},{x:l/2,y:u/2+h}],m=Xe.svg(i),g=Ke(e,{fill:"none"});e.look!=="handDrawn"&&(g.roughness=0,g.fillStyle="solid");let v=Xt(d).replace("Z",""),x=m.path(v,g),b=Xt(p),w=m.path(b,{...g}),C=i.insert("g",":first-child");return C.insert(()=>w,":first-child").attr("stroke-opacity",0),C.insert(()=>x,":first-child"),C.attr("class","text"),f&&e.look!=="handDrawn"&&C.selectAll("path").attr("style",f),n&&e.look!=="handDrawn"&&C.selectAll("path").attr("style",n),C.attr("transform",`translate(${h}, 0)`),s.attr("transform",`translate(${-l/2+h-(a.x-(a.left??0))},${-u/2+(e.padding??0)/2-(a.y-(a.top??0))})`),je(e,C),e.intersect=function(T){return Ye.polygon(e,p,T)},i}var WK=N(()=>{"use strict";Ft();Ht();Ut();Wt();o(Hh,"generateCirclePoints");o(HK,"curlyBraceLeft")});function Wh(t,e,r,n=100,i=0,a=180){let s=[],l=i*Math.PI/180,f=(a*Math.PI/180-l)/(n-1);for(let d=0;d<n;d++){let p=l+d*f,m=t+r*Math.cos(p),g=e+r*Math.sin(p);s.push({x:m,y:g})}return s}async function qK(t,e){let{labelStyles:r,nodeStyles:n}=Qe(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await pt(t,e,ht(e)),l=a.width+(e.padding??0),u=a.height+(e.padding??0),h=Math.max(5,u*.1),{cssStyles:f}=e,d=[...Wh(l/2,-u/2,h,20,-90,0),{x:l/2+h,y:-h},...Wh(l/2+h*2,-h,h,20,-180,-270),...Wh(l/2+h*2,h,h,20,-90,-180),{x:l/2+h,y:u/2},...Wh(l/2,u/2,h,20,0,90)],p=[{x:-l/2,y:-u/2-h},{x:l/2,y:-u/2-h},...Wh(l/2,-u/2,h,20,-90,0),{x:l/2+h,y:-h},...Wh(l/2+h*2,-h,h,20,-180,-270),...Wh(l/2+h*2,h,h,20,-90,-180),{x:l/2+h,y:u/2},...Wh(l/2,u/2,h,20,0,90),{x:l/2,y:u/2+h},{x:-l/2,y:u/2+h}],m=Xe.svg(i),g=Ke(e,{fill:"none"});e.look!=="handDrawn"&&(g.roughness=0,g.fillStyle="solid");let v=Xt(d).replace("Z",""),x=m.path(v,g),b=Xt(p),w=m.path(b,{...g}),C=i.insert("g",":first-child");return C.insert(()=>w,":first-child").attr("stroke-opacity",0),C.insert(()=>x,":first-child"),C.attr("class","text"),f&&e.look!=="handDrawn"&&C.selectAll("path").attr("style",f),n&&e.look!=="handDrawn"&&C.selectAll("path").attr("style",n),C.attr("transform",`translate(${-h}, 0)`),s.attr("transform",`translate(${-l/2+(e.padding??0)/2-(a.x-(a.left??0))},${-u/2+(e.padding??0)/2-(a.y-(a.top??0))})`),je(e,C),e.intersect=function(T){return Ye.polygon(e,p,T)},i}var YK=N(()=>{"use strict";Ft();Ht();Ut();Wt();o(Wh,"generateCirclePoints");o(qK,"curlyBraceRight")});function Ra(t,e,r,n=100,i=0,a=180){let s=[],l=i*Math.PI/180,f=(a*Math.PI/180-l)/(n-1);for(let d=0;d<n;d++){let p=l+d*f,m=t+r*Math.cos(p),g=e+r*Math.sin(p);s.push({x:-m,y:-g})}return s}async function XK(t,e){let{labelStyles:r,nodeStyles:n}=Qe(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await pt(t,e,ht(e)),l=a.width+(e.padding??0),u=a.height+(e.padding??0),h=Math.max(5,u*.1),{cssStyles:f}=e,d=[...Ra(l/2,-u/2,h,30,-90,0),{x:-l/2-h,y:h},...Ra(l/2+h*2,-h,h,20,-180,-270),...Ra(l/2+h*2,h,h,20,-90,-180),{x:-l/2-h,y:-u/2},...Ra(l/2,u/2,h,20,0,90)],p=[...Ra(-l/2+h+h/2,-u/2,h,20,-90,-180),{x:l/2-h/2,y:h},...Ra(-l/2-h/2,-h,h,20,0,90),...Ra(-l/2-h/2,h,h,20,-90,0),{x:l/2-h/2,y:-h},...Ra(-l/2+h+h/2,u/2,h,30,-180,-270)],m=[{x:l/2,y:-u/2-h},{x:-l/2,y:-u/2-h},...Ra(l/2,-u/2,h,20,-90,0),{x:-l/2-h,y:-h},...Ra(l/2+h*2,-h,h,20,-180,-270),...Ra(l/2+h*2,h,h,20,-90,-180),{x:-l/2-h,y:u/2},...Ra(l/2,u/2,h,20,0,90),{x:-l/2,y:u/2+h},{x:l/2-h-h/2,y:u/2+h},...Ra(-l/2+h+h/2,-u/2,h,20,-90,-180),{x:l/2-h/2,y:h},...Ra(-l/2-h/2,-h,h,20,0,90),...Ra(-l/2-h/2,h,h,20,-90,0),{x:l/2-h/2,y:-h},...Ra(-l/2+h+h/2,u/2,h,30,-180,-270)],g=Xe.svg(i),y=Ke(e,{fill:"none"});e.look!=="handDrawn"&&(y.roughness=0,y.fillStyle="solid");let x=Xt(d).replace("Z",""),b=g.path(x,y),C=Xt(p).replace("Z",""),T=g.path(C,y),E=Xt(m),A=g.path(E,{...y}),S=i.insert("g",":first-child");return S.insert(()=>A,":first-child").attr("stroke-opacity",0),S.insert(()=>b,":first-child"),S.insert(()=>T,":first-child"),S.attr("class","text"),f&&e.look!=="handDrawn"&&S.selectAll("path").attr("style",f),n&&e.look!=="handDrawn"&&S.selectAll("path").attr("style",n),S.attr("transform",`translate(${h-h/4}, 0)`),s.attr("transform",`translate(${-l/2+(e.padding??0)/2-(a.x-(a.left??0))},${-u/2+(e.padding??0)/2-(a.y-(a.top??0))})`),je(e,S),e.intersect=function(_){return Ye.polygon(e,m,_)},i}var jK=N(()=>{"use strict";Ft();Ht();Ut();Wt();o(Ra,"generateCirclePoints");o(XK,"curlyBraces")});async function KK(t,e){let{labelStyles:r,nodeStyles:n}=Qe(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await pt(t,e,ht(e)),s=80,l=20,u=Math.max(s,(a.width+(e.padding??0)*2)*1.25,e?.width??0),h=Math.max(l,a.height+(e.padding??0)*2,e?.height??0),f=h/2,{cssStyles:d}=e,p=Xe.svg(i),m=Ke(e,{});e.look!=="handDrawn"&&(m.roughness=0,m.fillStyle="solid");let g=u,y=h,v=g-f,x=y/4,b=[{x:v,y:0},{x,y:0},{x:0,y:y/2},{x,y},{x:v,y},...Lw(-v,-y/2,f,50,270,90)],w=Xt(b),C=p.path(w,m),T=i.insert(()=>C,":first-child");return T.attr("class","basic label-container"),d&&e.look!=="handDrawn"&&T.selectChildren("path").attr("style",d),n&&e.look!=="handDrawn"&&T.selectChildren("path").attr("style",n),T.attr("transform",`translate(${-u/2}, ${-h/2})`),je(e,T),e.intersect=function(E){return Ye.polygon(e,b,E)},i}var QK=N(()=>{"use strict";Ft();Ht();Ut();Wt();o(KK,"curvedTrapezoid")});async function ZK(t,e){let{labelStyles:r,nodeStyles:n}=Qe(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await pt(t,e,ht(e)),l=Math.max(a.width+e.padding,e.width??0),u=l/2,h=u/(2.5+l/50),f=Math.max(a.height+h+e.padding,e.height??0),d,{cssStyles:p}=e;if(e.look==="handDrawn"){let m=Xe.svg(i),g=u_e(0,0,l,f,u,h),y=h_e(0,h,l,f,u,h),v=m.path(g,Ke(e,{})),x=m.path(y,Ke(e,{fill:"none"}));d=i.insert(()=>x,":first-child"),d=i.insert(()=>v,":first-child"),d.attr("class","basic label-container"),p&&d.attr("style",p)}else{let m=c_e(0,0,l,f,u,h);d=i.insert("path",":first-child").attr("d",m).attr("class","basic label-container").attr("style",$n(p)).attr("style",n)}return d.attr("label-offset-y",h),d.attr("transform",`translate(${-l/2}, ${-(f/2+h)})`),je(e,d),s.attr("transform",`translate(${-(a.width/2)-(a.x-(a.left??0))}, ${-(a.height/2)+(e.padding??0)/1.5-(a.y-(a.top??0))})`),e.intersect=function(m){let g=Ye.rect(e,m),y=g.x-(e.x??0);if(u!=0&&(Math.abs(y)<(e.width??0)/2||Math.abs(y)==(e.width??0)/2&&Math.abs(g.y-(e.y??0))>(e.height??0)/2-h)){let v=h*h*(1-y*y/(u*u));v>0&&(v=Math.sqrt(v)),v=h-v,m.y-(e.y??0)>0&&(v=-v),g.y+=v}return g},i}var c_e,u_e,h_e,JK=N(()=>{"use strict";Ft();Ht();Ut();Wt();ir();c_e=o((t,e,r,n,i,a)=>[`M${t},${e+a}`,`a${i},${a} 0,0,0 ${r},0`,`a${i},${a} 0,0,0 ${-r},0`,`l0,${n}`,`a${i},${a} 0,0,0 ${r},0`,`l0,${-n}`].join(" "),"createCylinderPathD"),u_e=o((t,e,r,n,i,a)=>[`M${t},${e+a}`,`M${t+r},${e+a}`,`a${i},${a} 0,0,0 ${-r},0`,`l0,${n}`,`a${i},${a} 0,0,0 ${r},0`,`l0,${-n}`].join(" "),"createOuterCylinderPathD"),h_e=o((t,e,r,n,i,a)=>[`M${t-r/2},${-n/2}`,`a${i},${a} 0,0,0 ${r},0`].join(" "),"createInnerCylinderPathD");o(ZK,"cylinder")});async function eQ(t,e){let{labelStyles:r,nodeStyles:n}=Qe(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await pt(t,e,ht(e)),l=a.width+e.padding,u=a.height+e.padding,h=u*.2,f=-l/2,d=-u/2-h/2,{cssStyles:p}=e,m=Xe.svg(i),g=Ke(e,{});e.look!=="handDrawn"&&(g.roughness=0,g.fillStyle="solid");let y=[{x:f,y:d+h},{x:-f,y:d+h},{x:-f,y:-d},{x:f,y:-d},{x:f,y:d},{x:-f,y:d},{x:-f,y:d+h}],v=m.polygon(y.map(b=>[b.x,b.y]),g),x=i.insert(()=>v,":first-child");return x.attr("class","basic label-container"),p&&e.look!=="handDrawn"&&x.selectAll("path").attr("style",p),n&&e.look!=="handDrawn"&&x.selectAll("path").attr("style",n),s.attr("transform",`translate(${f+(e.padding??0)/2-(a.x-(a.left??0))}, ${d+h+(e.padding??0)/2-(a.y-(a.top??0))})`),je(e,x),e.intersect=function(b){return Ye.rect(e,b)},i}var tQ=N(()=>{"use strict";Ft();Ht();Ut();Wt();o(eQ,"dividedRectangle")});async function rQ(t,e){let{labelStyles:r,nodeStyles:n}=Qe(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,halfPadding:s}=await pt(t,e,ht(e)),u=a.width/2+s+5,h=a.width/2+s,f,{cssStyles:d}=e;if(e.look==="handDrawn"){let p=Xe.svg(i),m=Ke(e,{roughness:.2,strokeWidth:2.5}),g=Ke(e,{roughness:.2,strokeWidth:1.5}),y=p.circle(0,0,u*2,m),v=p.circle(0,0,h*2,g);f=i.insert("g",":first-child"),f.attr("class",$n(e.cssClasses)).attr("style",$n(d)),f.node()?.appendChild(y),f.node()?.appendChild(v)}else{f=i.insert("g",":first-child");let p=f.insert("circle",":first-child"),m=f.insert("circle");f.attr("class","basic label-container").attr("style",n),p.attr("class","outer-circle").attr("style",n).attr("r",u).attr("cx",0).attr("cy",0),m.attr("class","inner-circle").attr("style",n).attr("r",h).attr("cx",0).attr("cy",0)}return je(e,f),e.intersect=function(p){return Y.info("DoubleCircle intersect",e,u,p),Ye.circle(e,u,p)},i}var nQ=N(()=>{"use strict";vt();Ft();Ht();Ut();Wt();ir();o(rQ,"doublecircle")});function iQ(t,e,{config:{themeVariables:r}}){let{labelStyles:n,nodeStyles:i}=Qe(e);e.label="",e.labelStyle=n;let a=t.insert("g").attr("class",ht(e)).attr("id",e.domId??e.id),s=7,{cssStyles:l}=e,u=Xe.svg(a),{nodeBorder:h}=r,f=Ke(e,{fillStyle:"solid"});e.look!=="handDrawn"&&(f.roughness=0);let d=u.circle(0,0,s*2,f),p=a.insert(()=>d,":first-child");return p.selectAll("path").attr("style",`fill: ${h} !important;`),l&&l.length>0&&e.look!=="handDrawn"&&p.selectAll("path").attr("style",l),i&&e.look!=="handDrawn"&&p.selectAll("path").attr("style",i),je(e,p),e.intersect=function(m){return Y.info("filledCircle intersect",e,{radius:s,point:m}),Ye.circle(e,s,m)},a}var aQ=N(()=>{"use strict";Wt();vt();Ht();Ut();Ft();o(iQ,"filledCircle")});async function sQ(t,e){let{labelStyles:r,nodeStyles:n}=Qe(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await pt(t,e,ht(e)),l=a.width+(e.padding??0),u=l+a.height,h=l+a.height,f=[{x:0,y:-u},{x:h,y:-u},{x:h/2,y:0}],{cssStyles:d}=e,p=Xe.svg(i),m=Ke(e,{});e.look!=="handDrawn"&&(m.roughness=0,m.fillStyle="solid");let g=Xt(f),y=p.path(g,m),v=i.insert(()=>y,":first-child").attr("transform",`translate(${-u/2}, ${u/2})`);return d&&e.look!=="handDrawn"&&v.selectChildren("path").attr("style",d),n&&e.look!=="handDrawn"&&v.selectChildren("path").attr("style",n),e.width=l,e.height=u,je(e,v),s.attr("transform",`translate(${-a.width/2-(a.x-(a.left??0))}, ${-u/2+(e.padding??0)/2+(a.y-(a.top??0))})`),e.intersect=function(x){return Y.info("Triangle intersect",e,f,x),Ye.polygon(e,f,x)},i}var oQ=N(()=>{"use strict";vt();Ft();Ht();Ut();Wt();Ft();o(sQ,"flippedTriangle")});function lQ(t,e,{dir:r,config:{state:n,themeVariables:i}}){let{nodeStyles:a}=Qe(e);e.label="";let s=t.insert("g").attr("class",ht(e)).attr("id",e.domId??e.id),{cssStyles:l}=e,u=Math.max(70,e?.width??0),h=Math.max(10,e?.height??0);r==="LR"&&(u=Math.max(10,e?.width??0),h=Math.max(70,e?.height??0));let f=-1*u/2,d=-1*h/2,p=Xe.svg(s),m=Ke(e,{stroke:i.lineColor,fill:i.lineColor});e.look!=="handDrawn"&&(m.roughness=0,m.fillStyle="solid");let g=p.rectangle(f,d,u,h,m),y=s.insert(()=>g,":first-child");l&&e.look!=="handDrawn"&&y.selectAll("path").attr("style",l),a&&e.look!=="handDrawn"&&y.selectAll("path").attr("style",a),je(e,y);let v=n?.padding??0;return e.width&&e.height&&(e.width+=v/2||0,e.height+=v/2||0),e.intersect=function(x){return Ye.rect(e,x)},s}var cQ=N(()=>{"use strict";Wt();Ht();Ut();Ft();o(lQ,"forkJoin")});async function uQ(t,e){let{labelStyles:r,nodeStyles:n}=Qe(e);e.labelStyle=r;let i=80,a=50,{shapeSvg:s,bbox:l}=await pt(t,e,ht(e)),u=Math.max(i,l.width+(e.padding??0)*2,e?.width??0),h=Math.max(a,l.height+(e.padding??0)*2,e?.height??0),f=h/2,{cssStyles:d}=e,p=Xe.svg(s),m=Ke(e,{});e.look!=="handDrawn"&&(m.roughness=0,m.fillStyle="solid");let g=[{x:-u/2,y:-h/2},{x:u/2-f,y:-h/2},...Lw(-u/2+f,0,f,50,90,270),{x:u/2-f,y:h/2},{x:-u/2,y:h/2}],y=Xt(g),v=p.path(y,m),x=s.insert(()=>v,":first-child");return x.attr("class","basic label-container"),d&&e.look!=="handDrawn"&&x.selectChildren("path").attr("style",d),n&&e.look!=="handDrawn"&&x.selectChildren("path").attr("style",n),je(e,x),e.intersect=function(b){return Y.info("Pill intersect",e,{radius:f,point:b}),Ye.polygon(e,g,b)},s}var hQ=N(()=>{"use strict";vt();Ft();Ht();Ut();Wt();o(uQ,"halfRoundedRectangle")});async function fQ(t,e){let{labelStyles:r,nodeStyles:n}=Qe(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await pt(t,e,ht(e)),s=4,l=a.height+e.padding,u=l/s,h=a.width+2*u+e.padding,f=[{x:u,y:0},{x:h-u,y:0},{x:h,y:-l/2},{x:h-u,y:-l},{x:u,y:-l},{x:0,y:-l/2}],d,{cssStyles:p}=e;if(e.look==="handDrawn"){let m=Xe.svg(i),g=Ke(e,{}),y=f_e(0,0,h,l,u),v=m.path(y,g);d=i.insert(()=>v,":first-child").attr("transform",`translate(${-h/2}, ${l/2})`),p&&d.attr("style",p)}else d=La(i,h,l,f);return n&&d.attr("style",n),e.width=h,e.height=l,je(e,d),e.intersect=function(m){return Ye.polygon(e,f,m)},i}var f_e,dQ=N(()=>{"use strict";Ft();Ht();Ut();Wt();_u();f_e=o((t,e,r,n,i)=>[`M${t+i},${e}`,`L${t+r-i},${e}`,`L${t+r},${e-n/2}`,`L${t+r-i},${e-n}`,`L${t+i},${e-n}`,`L${t},${e-n/2}`,"Z"].join(" "),"createHexagonPathD");o(fQ,"hexagon")});async function pQ(t,e){let{labelStyles:r,nodeStyles:n}=Qe(e);e.label="",e.labelStyle=r;let{shapeSvg:i}=await pt(t,e,ht(e)),a=Math.max(30,e?.width??0),s=Math.max(30,e?.height??0),{cssStyles:l}=e,u=Xe.svg(i),h=Ke(e,{});e.look!=="handDrawn"&&(h.roughness=0,h.fillStyle="solid");let f=[{x:0,y:0},{x:a,y:0},{x:0,y:s},{x:a,y:s}],d=Xt(f),p=u.path(d,h),m=i.insert(()=>p,":first-child");return m.attr("class","basic label-container"),l&&e.look!=="handDrawn"&&m.selectChildren("path").attr("style",l),n&&e.look!=="handDrawn"&&m.selectChildren("path").attr("style",n),m.attr("transform",`translate(${-a/2}, ${-s/2})`),je(e,m),e.intersect=function(g){return Y.info("Pill intersect",e,{points:f}),Ye.polygon(e,f,g)},i}var mQ=N(()=>{"use strict";vt();Ft();Ht();Ut();Wt();o(pQ,"hourglass")});async function gQ(t,e,{config:{themeVariables:r,flowchart:n}}){let{labelStyles:i}=Qe(e);e.labelStyle=i;let a=e.assetHeight??48,s=e.assetWidth??48,l=Math.max(a,s),u=n?.wrappingWidth;e.width=Math.max(l,u??0);let{shapeSvg:h,bbox:f,label:d}=await pt(t,e,"icon-shape default"),p=e.pos==="t",m=l,g=l,{nodeBorder:y}=r,{stylesMap:v}=mc(e),x=-g/2,b=-m/2,w=e.label?8:0,C=Xe.svg(h),T=Ke(e,{stroke:"none",fill:"none"});e.look!=="handDrawn"&&(T.roughness=0,T.fillStyle="solid");let E=C.rectangle(x,b,g,m,T),A=Math.max(g,f.width),S=m+f.height+w,_=C.rectangle(-A/2,-S/2,A,S,{...T,fill:"transparent",stroke:"none"}),I=h.insert(()=>E,":first-child"),D=h.insert(()=>_);if(e.icon){let k=h.append("g");k.html(`<g>${await wo(e.icon,{height:l,width:l,fallbackPrefix:""})}</g>`);let L=k.node().getBBox(),R=L.width,O=L.height,M=L.x,B=L.y;k.attr("transform",`translate(${-R/2-M},${p?f.height/2+w/2-O/2-B:-f.height/2-w/2-O/2-B})`),k.attr("style",`color: ${v.get("stroke")??y};`)}return d.attr("transform",`translate(${-f.width/2-(f.x-(f.left??0))},${p?-S/2:S/2-f.height})`),I.attr("transform",`translate(0,${p?f.height/2+w/2:-f.height/2-w/2})`),je(e,D),e.intersect=function(k){if(Y.info("iconSquare intersect",e,k),!e.label)return Ye.rect(e,k);let L=e.x??0,R=e.y??0,O=e.height??0,M=[];return p?M=[{x:L-f.width/2,y:R-O/2},{x:L+f.width/2,y:R-O/2},{x:L+f.width/2,y:R-O/2+f.height+w},{x:L+g/2,y:R-O/2+f.height+w},{x:L+g/2,y:R+O/2},{x:L-g/2,y:R+O/2},{x:L-g/2,y:R-O/2+f.height+w},{x:L-f.width/2,y:R-O/2+f.height+w}]:M=[{x:L-g/2,y:R-O/2},{x:L+g/2,y:R-O/2},{x:L+g/2,y:R-O/2+m},{x:L+f.width/2,y:R-O/2+m},{x:L+f.width/2/2,y:R+O/2},{x:L-f.width/2,y:R+O/2},{x:L-f.width/2,y:R-O/2+m},{x:L-g/2,y:R-O/2+m}],Ye.polygon(e,M,k)},h}var yQ=N(()=>{"use strict";Wt();vt();tu();Ht();Ut();Ft();o(gQ,"icon")});async function vQ(t,e,{config:{themeVariables:r,flowchart:n}}){let{labelStyles:i}=Qe(e);e.labelStyle=i;let a=e.assetHeight??48,s=e.assetWidth??48,l=Math.max(a,s),u=n?.wrappingWidth;e.width=Math.max(l,u??0);let{shapeSvg:h,bbox:f,label:d}=await pt(t,e,"icon-shape default"),p=20,m=e.label?8:0,g=e.pos==="t",{nodeBorder:y,mainBkg:v}=r,{stylesMap:x}=mc(e),b=Xe.svg(h),w=Ke(e,{});e.look!=="handDrawn"&&(w.roughness=0,w.fillStyle="solid");let C=x.get("fill");w.stroke=C??v;let T=h.append("g");e.icon&&T.html(`<g>${await wo(e.icon,{height:l,width:l,fallbackPrefix:""})}</g>`);let E=T.node().getBBox(),A=E.width,S=E.height,_=E.x,I=E.y,D=Math.max(A,S)*Math.SQRT2+p*2,k=b.circle(0,0,D,w),L=Math.max(D,f.width),R=D+f.height+m,O=b.rectangle(-L/2,-R/2,L,R,{...w,fill:"transparent",stroke:"none"}),M=h.insert(()=>k,":first-child"),B=h.insert(()=>O);return T.attr("transform",`translate(${-A/2-_},${g?f.height/2+m/2-S/2-I:-f.height/2-m/2-S/2-I})`),T.attr("style",`color: ${x.get("stroke")??y};`),d.attr("transform",`translate(${-f.width/2-(f.x-(f.left??0))},${g?-R/2:R/2-f.height})`),M.attr("transform",`translate(0,${g?f.height/2+m/2:-f.height/2-m/2})`),je(e,B),e.intersect=function(F){return Y.info("iconSquare intersect",e,F),Ye.rect(e,F)},h}var xQ=N(()=>{"use strict";Wt();vt();tu();Ht();Ut();Ft();o(vQ,"iconCircle")});var Na,qh=N(()=>{"use strict";Na=o((t,e,r,n,i)=>["M",t+i,e,"H",t+r-i,"A",i,i,0,0,1,t+r,e+i,"V",e+n-i,"A",i,i,0,0,1,t+r-i,e+n,"H",t+i,"A",i,i,0,0,1,t,e+n-i,"V",e+i,"A",i,i,0,0,1,t+i,e,"Z"].join(" "),"createRoundedRectPathD")});async function bQ(t,e,{config:{themeVariables:r,flowchart:n}}){let{labelStyles:i}=Qe(e);e.labelStyle=i;let a=e.assetHeight??48,s=e.assetWidth??48,l=Math.max(a,s),u=n?.wrappingWidth;e.width=Math.max(l,u??0);let{shapeSvg:h,bbox:f,halfPadding:d,label:p}=await pt(t,e,"icon-shape default"),m=e.pos==="t",g=l+d*2,y=l+d*2,{nodeBorder:v,mainBkg:x}=r,{stylesMap:b}=mc(e),w=-y/2,C=-g/2,T=e.label?8:0,E=Xe.svg(h),A=Ke(e,{});e.look!=="handDrawn"&&(A.roughness=0,A.fillStyle="solid");let S=b.get("fill");A.stroke=S??x;let _=E.path(Na(w,C,y,g,5),A),I=Math.max(y,f.width),D=g+f.height+T,k=E.rectangle(-I/2,-D/2,I,D,{...A,fill:"transparent",stroke:"none"}),L=h.insert(()=>_,":first-child").attr("class","icon-shape2"),R=h.insert(()=>k);if(e.icon){let O=h.append("g");O.html(`<g>${await wo(e.icon,{height:l,width:l,fallbackPrefix:""})}</g>`);let M=O.node().getBBox(),B=M.width,F=M.height,P=M.x,z=M.y;O.attr("transform",`translate(${-B/2-P},${m?f.height/2+T/2-F/2-z:-f.height/2-T/2-F/2-z})`),O.attr("style",`color: ${b.get("stroke")??v};`)}return p.attr("transform",`translate(${-f.width/2-(f.x-(f.left??0))},${m?-D/2:D/2-f.height})`),L.attr("transform",`translate(0,${m?f.height/2+T/2:-f.height/2-T/2})`),je(e,R),e.intersect=function(O){if(Y.info("iconSquare intersect",e,O),!e.label)return Ye.rect(e,O);let M=e.x??0,B=e.y??0,F=e.height??0,P=[];return m?P=[{x:M-f.width/2,y:B-F/2},{x:M+f.width/2,y:B-F/2},{x:M+f.width/2,y:B-F/2+f.height+T},{x:M+y/2,y:B-F/2+f.height+T},{x:M+y/2,y:B+F/2},{x:M-y/2,y:B+F/2},{x:M-y/2,y:B-F/2+f.height+T},{x:M-f.width/2,y:B-F/2+f.height+T}]:P=[{x:M-y/2,y:B-F/2},{x:M+y/2,y:B-F/2},{x:M+y/2,y:B-F/2+g},{x:M+f.width/2,y:B-F/2+g},{x:M+f.width/2/2,y:B+F/2},{x:M-f.width/2,y:B+F/2},{x:M-f.width/2,y:B-F/2+g},{x:M-y/2,y:B-F/2+g}],Ye.polygon(e,P,O)},h}var wQ=N(()=>{"use strict";Wt();vt();tu();Ht();Ut();qh();Ft();o(bQ,"iconRounded")});async function TQ(t,e,{config:{themeVariables:r,flowchart:n}}){let{labelStyles:i}=Qe(e);e.labelStyle=i;let a=e.assetHeight??48,s=e.assetWidth??48,l=Math.max(a,s),u=n?.wrappingWidth;e.width=Math.max(l,u??0);let{shapeSvg:h,bbox:f,halfPadding:d,label:p}=await pt(t,e,"icon-shape default"),m=e.pos==="t",g=l+d*2,y=l+d*2,{nodeBorder:v,mainBkg:x}=r,{stylesMap:b}=mc(e),w=-y/2,C=-g/2,T=e.label?8:0,E=Xe.svg(h),A=Ke(e,{});e.look!=="handDrawn"&&(A.roughness=0,A.fillStyle="solid");let S=b.get("fill");A.stroke=S??x;let _=E.path(Na(w,C,y,g,.1),A),I=Math.max(y,f.width),D=g+f.height+T,k=E.rectangle(-I/2,-D/2,I,D,{...A,fill:"transparent",stroke:"none"}),L=h.insert(()=>_,":first-child"),R=h.insert(()=>k);if(e.icon){let O=h.append("g");O.html(`<g>${await wo(e.icon,{height:l,width:l,fallbackPrefix:""})}</g>`);let M=O.node().getBBox(),B=M.width,F=M.height,P=M.x,z=M.y;O.attr("transform",`translate(${-B/2-P},${m?f.height/2+T/2-F/2-z:-f.height/2-T/2-F/2-z})`),O.attr("style",`color: ${b.get("stroke")??v};`)}return p.attr("transform",`translate(${-f.width/2-(f.x-(f.left??0))},${m?-D/2:D/2-f.height})`),L.attr("transform",`translate(0,${m?f.height/2+T/2:-f.height/2-T/2})`),je(e,R),e.intersect=function(O){if(Y.info("iconSquare intersect",e,O),!e.label)return Ye.rect(e,O);let M=e.x??0,B=e.y??0,F=e.height??0,P=[];return m?P=[{x:M-f.width/2,y:B-F/2},{x:M+f.width/2,y:B-F/2},{x:M+f.width/2,y:B-F/2+f.height+T},{x:M+y/2,y:B-F/2+f.height+T},{x:M+y/2,y:B+F/2},{x:M-y/2,y:B+F/2},{x:M-y/2,y:B-F/2+f.height+T},{x:M-f.width/2,y:B-F/2+f.height+T}]:P=[{x:M-y/2,y:B-F/2},{x:M+y/2,y:B-F/2},{x:M+y/2,y:B-F/2+g},{x:M+f.width/2,y:B-F/2+g},{x:M+f.width/2/2,y:B+F/2},{x:M-f.width/2,y:B+F/2},{x:M-f.width/2,y:B-F/2+g},{x:M-y/2,y:B-F/2+g}],Ye.polygon(e,P,O)},h}var kQ=N(()=>{"use strict";Wt();vt();tu();Ht();qh();Ut();Ft();o(TQ,"iconSquare")});async function EQ(t,e,{config:{flowchart:r}}){let n=new Image;n.src=e?.img??"",await n.decode();let i=Number(n.naturalWidth.toString().replace("px","")),a=Number(n.naturalHeight.toString().replace("px",""));e.imageAspectRatio=i/a;let{labelStyles:s}=Qe(e);e.labelStyle=s;let l=r?.wrappingWidth;e.defaultWidth=r?.wrappingWidth;let u=Math.max(e.label?l??0:0,e?.assetWidth??i),h=e.constraint==="on"&&e?.assetHeight?e.assetHeight*e.imageAspectRatio:u,f=e.constraint==="on"?h/e.imageAspectRatio:e?.assetHeight??a;e.width=Math.max(h,l??0);let{shapeSvg:d,bbox:p,label:m}=await pt(t,e,"image-shape default"),g=e.pos==="t",y=-h/2,v=-f/2,x=e.label?8:0,b=Xe.svg(d),w=Ke(e,{});e.look!=="handDrawn"&&(w.roughness=0,w.fillStyle="solid");let C=b.rectangle(y,v,h,f,w),T=Math.max(h,p.width),E=f+p.height+x,A=b.rectangle(-T/2,-E/2,T,E,{...w,fill:"none",stroke:"none"}),S=d.insert(()=>C,":first-child"),_=d.insert(()=>A);if(e.img){let I=d.append("image");I.attr("href",e.img),I.attr("width",h),I.attr("height",f),I.attr("preserveAspectRatio","none"),I.attr("transform",`translate(${-h/2},${g?E/2-f:-E/2})`)}return m.attr("transform",`translate(${-p.width/2-(p.x-(p.left??0))},${g?-f/2-p.height/2-x/2:f/2-p.height/2+x/2})`),S.attr("transform",`translate(0,${g?p.height/2+x/2:-p.height/2-x/2})`),je(e,_),e.intersect=function(I){if(Y.info("iconSquare intersect",e,I),!e.label)return Ye.rect(e,I);let D=e.x??0,k=e.y??0,L=e.height??0,R=[];return g?R=[{x:D-p.width/2,y:k-L/2},{x:D+p.width/2,y:k-L/2},{x:D+p.width/2,y:k-L/2+p.height+x},{x:D+h/2,y:k-L/2+p.height+x},{x:D+h/2,y:k+L/2},{x:D-h/2,y:k+L/2},{x:D-h/2,y:k-L/2+p.height+x},{x:D-p.width/2,y:k-L/2+p.height+x}]:R=[{x:D-h/2,y:k-L/2},{x:D+h/2,y:k-L/2},{x:D+h/2,y:k-L/2+f},{x:D+p.width/2,y:k-L/2+f},{x:D+p.width/2/2,y:k+L/2},{x:D-p.width/2,y:k+L/2},{x:D-p.width/2,y:k-L/2+f},{x:D-h/2,y:k-L/2+f}],Ye.polygon(e,R,I)},d}var SQ=N(()=>{"use strict";Wt();vt();Ht();Ut();Ft();o(EQ,"imageSquare")});async function CQ(t,e){let{labelStyles:r,nodeStyles:n}=Qe(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await pt(t,e,ht(e)),s=Math.max(a.width+(e.padding??0)*2,e?.width??0),l=Math.max(a.height+(e.padding??0)*2,e?.height??0),u=[{x:0,y:0},{x:s,y:0},{x:s+3*l/6,y:-l},{x:-3*l/6,y:-l}],h,{cssStyles:f}=e;if(e.look==="handDrawn"){let d=Xe.svg(i),p=Ke(e,{}),m=Xt(u),g=d.path(m,p);h=i.insert(()=>g,":first-child").attr("transform",`translate(${-s/2}, ${l/2})`),f&&h.attr("style",f)}else h=La(i,s,l,u);return n&&h.attr("style",n),e.width=s,e.height=l,je(e,h),e.intersect=function(d){return Ye.polygon(e,u,d)},i}var AQ=N(()=>{"use strict";Ft();Ht();Ut();Wt();_u();o(CQ,"inv_trapezoid")});async function Du(t,e,r){let{labelStyles:n,nodeStyles:i}=Qe(e);e.labelStyle=n;let{shapeSvg:a,bbox:s}=await pt(t,e,ht(e)),l=Math.max(s.width+r.labelPaddingX*2,e?.width||0),u=Math.max(s.height+r.labelPaddingY*2,e?.height||0),h=-l/2,f=-u/2,d,{rx:p,ry:m}=e,{cssStyles:g}=e;if(r?.rx&&r.ry&&(p=r.rx,m=r.ry),e.look==="handDrawn"){let y=Xe.svg(a),v=Ke(e,{}),x=p||m?y.path(Na(h,f,l,u,p||0),v):y.rectangle(h,f,l,u,v);d=a.insert(()=>x,":first-child"),d.attr("class","basic label-container").attr("style",$n(g))}else d=a.insert("rect",":first-child"),d.attr("class","basic label-container").attr("style",i).attr("rx",$n(p)).attr("ry",$n(m)).attr("x",h).attr("y",f).attr("width",l).attr("height",u);return je(e,d),e.intersect=function(y){return Ye.rect(e,y)},a}var mm=N(()=>{"use strict";Ft();Ht();qh();Ut();Wt();ir();o(Du,"drawRect")});async function _Q(t,e){let{shapeSvg:r,bbox:n,label:i}=await pt(t,e,"label"),a=r.insert("rect",":first-child");return a.attr("width",.1).attr("height",.1),r.attr("class","label edgeLabel"),i.attr("transform",`translate(${-(n.width/2)-(n.x-(n.left??0))}, ${-(n.height/2)-(n.y-(n.top??0))})`),je(e,a),e.intersect=function(u){return Ye.rect(e,u)},r}var DQ=N(()=>{"use strict";mm();Ft();Ht();o(_Q,"labelRect")});async function LQ(t,e){let{labelStyles:r,nodeStyles:n}=Qe(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await pt(t,e,ht(e)),s=Math.max(a.width+(e.padding??0),e?.width??0),l=Math.max(a.height+(e.padding??0),e?.height??0),u=[{x:0,y:0},{x:s+3*l/6,y:0},{x:s,y:-l},{x:-(3*l)/6,y:-l}],h,{cssStyles:f}=e;if(e.look==="handDrawn"){let d=Xe.svg(i),p=Ke(e,{}),m=Xt(u),g=d.path(m,p);h=i.insert(()=>g,":first-child").attr("transform",`translate(${-s/2}, ${l/2})`),f&&h.attr("style",f)}else h=La(i,s,l,u);return n&&h.attr("style",n),e.width=s,e.height=l,je(e,h),e.intersect=function(d){return Ye.polygon(e,u,d)},i}var RQ=N(()=>{"use strict";Ft();Ht();Ut();Wt();_u();o(LQ,"lean_left")});async function NQ(t,e){let{labelStyles:r,nodeStyles:n}=Qe(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await pt(t,e,ht(e)),s=Math.max(a.width+(e.padding??0),e?.width??0),l=Math.max(a.height+(e.padding??0),e?.height??0),u=[{x:-3*l/6,y:0},{x:s,y:0},{x:s+3*l/6,y:-l},{x:0,y:-l}],h,{cssStyles:f}=e;if(e.look==="handDrawn"){let d=Xe.svg(i),p=Ke(e,{}),m=Xt(u),g=d.path(m,p);h=i.insert(()=>g,":first-child").attr("transform",`translate(${-s/2}, ${l/2})`),f&&h.attr("style",f)}else h=La(i,s,l,u);return n&&h.attr("style",n),e.width=s,e.height=l,je(e,h),e.intersect=function(d){return Ye.polygon(e,u,d)},i}var MQ=N(()=>{"use strict";Ft();Ht();Ut();Wt();_u();o(NQ,"lean_right")});function IQ(t,e){let{labelStyles:r,nodeStyles:n}=Qe(e);e.label="",e.labelStyle=r;let i=t.insert("g").attr("class",ht(e)).attr("id",e.domId??e.id),{cssStyles:a}=e,s=Math.max(35,e?.width??0),l=Math.max(35,e?.height??0),u=7,h=[{x:s,y:0},{x:0,y:l+u/2},{x:s-2*u,y:l+u/2},{x:0,y:2*l},{x:s,y:l-u/2},{x:2*u,y:l-u/2}],f=Xe.svg(i),d=Ke(e,{});e.look!=="handDrawn"&&(d.roughness=0,d.fillStyle="solid");let p=Xt(h),m=f.path(p,d),g=i.insert(()=>m,":first-child");return a&&e.look!=="handDrawn"&&g.selectAll("path").attr("style",a),n&&e.look!=="handDrawn"&&g.selectAll("path").attr("style",n),g.attr("transform",`translate(-${s/2},${-l})`),je(e,g),e.intersect=function(y){return Y.info("lightningBolt intersect",e,y),Ye.polygon(e,h,y)},i}var OQ=N(()=>{"use strict";vt();Ft();Ut();Wt();Ht();Ft();o(IQ,"lightningBolt")});async function PQ(t,e){let{labelStyles:r,nodeStyles:n}=Qe(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await pt(t,e,ht(e)),l=Math.max(a.width+(e.padding??0),e.width??0),u=l/2,h=u/(2.5+l/50),f=Math.max(a.height+h+(e.padding??0),e.height??0),d=f*.1,p,{cssStyles:m}=e;if(e.look==="handDrawn"){let g=Xe.svg(i),y=p_e(0,0,l,f,u,h,d),v=m_e(0,h,l,f,u,h),x=Ke(e,{}),b=g.path(y,x),w=g.path(v,x);i.insert(()=>w,":first-child").attr("class","line"),p=i.insert(()=>b,":first-child"),p.attr("class","basic label-container"),m&&p.attr("style",m)}else{let g=d_e(0,0,l,f,u,h,d);p=i.insert("path",":first-child").attr("d",g).attr("class","basic label-container").attr("style",$n(m)).attr("style",n)}return p.attr("label-offset-y",h),p.attr("transform",`translate(${-l/2}, ${-(f/2+h)})`),je(e,p),s.attr("transform",`translate(${-(a.width/2)-(a.x-(a.left??0))}, ${-(a.height/2)+h-(a.y-(a.top??0))})`),e.intersect=function(g){let y=Ye.rect(e,g),v=y.x-(e.x??0);if(u!=0&&(Math.abs(v)<(e.width??0)/2||Math.abs(v)==(e.width??0)/2&&Math.abs(y.y-(e.y??0))>(e.height??0)/2-h)){let x=h*h*(1-v*v/(u*u));x>0&&(x=Math.sqrt(x)),x=h-x,g.y-(e.y??0)>0&&(x=-x),y.y+=x}return y},i}var d_e,p_e,m_e,BQ=N(()=>{"use strict";Ft();Ht();Ut();Wt();ir();d_e=o((t,e,r,n,i,a,s)=>[`M${t},${e+a}`,`a${i},${a} 0,0,0 ${r},0`,`a${i},${a} 0,0,0 ${-r},0`,`l0,${n}`,`a${i},${a} 0,0,0 ${r},0`,`l0,${-n}`,`M${t},${e+a+s}`,`a${i},${a} 0,0,0 ${r},0`].join(" "),"createCylinderPathD"),p_e=o((t,e,r,n,i,a,s)=>[`M${t},${e+a}`,`M${t+r},${e+a}`,`a${i},${a} 0,0,0 ${-r},0`,`l0,${n}`,`a${i},${a} 0,0,0 ${r},0`,`l0,${-n}`,`M${t},${e+a+s}`,`a${i},${a} 0,0,0 ${r},0`].join(" "),"createOuterCylinderPathD"),m_e=o((t,e,r,n,i,a)=>[`M${t-r/2},${-n/2}`,`a${i},${a} 0,0,0 ${r},0`].join(" "),"createInnerCylinderPathD");o(PQ,"linedCylinder")});async function FQ(t,e){let{labelStyles:r,nodeStyles:n}=Qe(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await pt(t,e,ht(e)),l=Math.max(a.width+(e.padding??0)*2,e?.width??0),u=Math.max(a.height+(e.padding??0)*2,e?.height??0),h=u/4,f=u+h,{cssStyles:d}=e,p=Xe.svg(i),m=Ke(e,{});e.look!=="handDrawn"&&(m.roughness=0,m.fillStyle="solid");let g=[{x:-l/2-l/2*.1,y:-f/2},{x:-l/2-l/2*.1,y:f/2},...Fo(-l/2-l/2*.1,f/2,l/2+l/2*.1,f/2,h,.8),{x:l/2+l/2*.1,y:-f/2},{x:-l/2-l/2*.1,y:-f/2},{x:-l/2,y:-f/2},{x:-l/2,y:f/2*1.1},{x:-l/2,y:-f/2}],y=p.polygon(g.map(x=>[x.x,x.y]),m),v=i.insert(()=>y,":first-child");return v.attr("class","basic label-container"),d&&e.look!=="handDrawn"&&v.selectAll("path").attr("style",d),n&&e.look!=="handDrawn"&&v.selectAll("path").attr("style",n),v.attr("transform",`translate(0,${-h/2})`),s.attr("transform",`translate(${-l/2+(e.padding??0)+l/2*.1/2-(a.x-(a.left??0))},${-u/2+(e.padding??0)-h/2-(a.y-(a.top??0))})`),je(e,v),e.intersect=function(x){return Ye.polygon(e,g,x)},i}var $Q=N(()=>{"use strict";Ft();Ht();Wt();Ut();o(FQ,"linedWaveEdgedRect")});async function zQ(t,e){let{labelStyles:r,nodeStyles:n}=Qe(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await pt(t,e,ht(e)),l=Math.max(a.width+(e.padding??0)*2,e?.width??0),u=Math.max(a.height+(e.padding??0)*2,e?.height??0),h=5,f=-l/2,d=-u/2,{cssStyles:p}=e,m=Xe.svg(i),g=Ke(e,{}),y=[{x:f-h,y:d+h},{x:f-h,y:d+u+h},{x:f+l-h,y:d+u+h},{x:f+l-h,y:d+u},{x:f+l,y:d+u},{x:f+l,y:d+u-h},{x:f+l+h,y:d+u-h},{x:f+l+h,y:d-h},{x:f+h,y:d-h},{x:f+h,y:d},{x:f,y:d},{x:f,y:d+h}],v=[{x:f,y:d+h},{x:f+l-h,y:d+h},{x:f+l-h,y:d+u},{x:f+l,y:d+u},{x:f+l,y:d},{x:f,y:d}];e.look!=="handDrawn"&&(g.roughness=0,g.fillStyle="solid");let x=Xt(y),b=m.path(x,g),w=Xt(v),C=m.path(w,{...g,fill:"none"}),T=i.insert(()=>C,":first-child");return T.insert(()=>b,":first-child"),T.attr("class","basic label-container"),p&&e.look!=="handDrawn"&&T.selectAll("path").attr("style",p),n&&e.look!=="handDrawn"&&T.selectAll("path").attr("style",n),s.attr("transform",`translate(${-(a.width/2)-h-(a.x-(a.left??0))}, ${-(a.height/2)+h-(a.y-(a.top??0))})`),je(e,T),e.intersect=function(E){return Ye.polygon(e,y,E)},i}var GQ=N(()=>{"use strict";Ft();Ut();Wt();Ht();o(zQ,"multiRect")});async function VQ(t,e){let{labelStyles:r,nodeStyles:n}=Qe(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await pt(t,e,ht(e)),l=Math.max(a.width+(e.padding??0)*2,e?.width??0),u=Math.max(a.height+(e.padding??0)*2,e?.height??0),h=u/4,f=u+h,d=-l/2,p=-f/2,m=5,{cssStyles:g}=e,y=Fo(d-m,p+f+m,d+l-m,p+f+m,h,.8),v=y?.[y.length-1],x=[{x:d-m,y:p+m},{x:d-m,y:p+f+m},...y,{x:d+l-m,y:v.y-m},{x:d+l,y:v.y-m},{x:d+l,y:v.y-2*m},{x:d+l+m,y:v.y-2*m},{x:d+l+m,y:p-m},{x:d+m,y:p-m},{x:d+m,y:p},{x:d,y:p},{x:d,y:p+m}],b=[{x:d,y:p+m},{x:d+l-m,y:p+m},{x:d+l-m,y:v.y-m},{x:d+l,y:v.y-m},{x:d+l,y:p},{x:d,y:p}],w=Xe.svg(i),C=Ke(e,{});e.look!=="handDrawn"&&(C.roughness=0,C.fillStyle="solid");let T=Xt(x),E=w.path(T,C),A=Xt(b),S=w.path(A,C),_=i.insert(()=>E,":first-child");return _.insert(()=>S),_.attr("class","basic label-container"),g&&e.look!=="handDrawn"&&_.selectAll("path").attr("style",g),n&&e.look!=="handDrawn"&&_.selectAll("path").attr("style",n),_.attr("transform",`translate(0,${-h/2})`),s.attr("transform",`translate(${-(a.width/2)-m-(a.x-(a.left??0))}, ${-(a.height/2)+m-h/2-(a.y-(a.top??0))})`),je(e,_),e.intersect=function(I){return Ye.polygon(e,x,I)},i}var UQ=N(()=>{"use strict";Ft();Ht();Wt();Ut();o(VQ,"multiWaveEdgedRectangle")});async function HQ(t,e,{config:{themeVariables:r}}){let{labelStyles:n,nodeStyles:i}=Qe(e);e.labelStyle=n,e.useHtmlLabels||cr().flowchart?.htmlLabels!==!1||(e.centerLabel=!0);let{shapeSvg:s,bbox:l}=await pt(t,e,ht(e)),u=Math.max(l.width+(e.padding??0)*2,e?.width??0),h=Math.max(l.height+(e.padding??0)*2,e?.height??0),f=-u/2,d=-h/2,{cssStyles:p}=e,m=Xe.svg(s),g=Ke(e,{fill:r.noteBkgColor,stroke:r.noteBorderColor});e.look!=="handDrawn"&&(g.roughness=0,g.fillStyle="solid");let y=m.rectangle(f,d,u,h,g),v=s.insert(()=>y,":first-child");return v.attr("class","basic label-container"),p&&e.look!=="handDrawn"&&v.selectAll("path").attr("style",p),i&&e.look!=="handDrawn"&&v.selectAll("path").attr("style",i),je(e,v),e.intersect=function(x){return Ye.rect(e,x)},s}var WQ=N(()=>{"use strict";Wt();Ht();Ut();Ft();ji();o(HQ,"note")});async function qQ(t,e){let{labelStyles:r,nodeStyles:n}=Qe(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await pt(t,e,ht(e)),s=a.width+e.padding,l=a.height+e.padding,u=s+l,h=[{x:u/2,y:0},{x:u,y:-u/2},{x:u/2,y:-u},{x:0,y:-u/2}],f,{cssStyles:d}=e;if(e.look==="handDrawn"){let p=Xe.svg(i),m=Ke(e,{}),g=g_e(0,0,u),y=p.path(g,m);f=i.insert(()=>y,":first-child").attr("transform",`translate(${-u/2}, ${u/2})`),d&&f.attr("style",d)}else f=La(i,u,u,h);return n&&f.attr("style",n),je(e,f),e.intersect=function(p){return Y.debug(`APA12 Intersect called SPLIT
+point:`,p,`
+node:
+`,e,`
+res:`,Ye.polygon(e,h,p)),Ye.polygon(e,h,p)},i}var g_e,YQ=N(()=>{"use strict";vt();Ft();Ht();Ut();Wt();_u();g_e=o((t,e,r)=>[`M${t+r/2},${e}`,`L${t+r},${e-r/2}`,`L${t+r/2},${e-r}`,`L${t},${e-r/2}`,"Z"].join(" "),"createDecisionBoxPathD");o(qQ,"question")});async function XQ(t,e){let{labelStyles:r,nodeStyles:n}=Qe(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await pt(t,e,ht(e)),l=Math.max(a.width+(e.padding??0),e?.width??0),u=Math.max(a.height+(e.padding??0),e?.height??0),h=-l/2,f=-u/2,d=f/2,p=[{x:h+d,y:f},{x:h,y:0},{x:h+d,y:-f},{x:-h,y:-f},{x:-h,y:f}],{cssStyles:m}=e,g=Xe.svg(i),y=Ke(e,{});e.look!=="handDrawn"&&(y.roughness=0,y.fillStyle="solid");let v=Xt(p),x=g.path(v,y),b=i.insert(()=>x,":first-child");return b.attr("class","basic label-container"),m&&e.look!=="handDrawn"&&b.selectAll("path").attr("style",m),n&&e.look!=="handDrawn"&&b.selectAll("path").attr("style",n),b.attr("transform",`translate(${-d/2},0)`),s.attr("transform",`translate(${-d/2-a.width/2-(a.x-(a.left??0))}, ${-(a.height/2)-(a.y-(a.top??0))})`),je(e,b),e.intersect=function(w){return Ye.polygon(e,p,w)},i}var jQ=N(()=>{"use strict";Ft();Ht();Ut();Wt();o(XQ,"rect_left_inv_arrow")});function y_e(t,e){e&&t.attr("style",e)}async function v_e(t){let e=Ge(document.createElementNS("http://www.w3.org/2000/svg","foreignObject")),r=e.append("xhtml:div"),n=t.label;t.label&&pi(t.label)&&(n=await mh(t.label.replace(Ze.lineBreakRegex,`
+`),me()));let i=t.isNode?"nodeLabel":"edgeLabel";return r.html('<span class="'+i+'" '+(t.labelStyle?'style="'+t.labelStyle+'"':"")+">"+n+"</span>"),y_e(r,t.labelStyle),r.style("display","inline-block"),r.style("padding-right","1px"),r.style("white-space","nowrap"),r.attr("xmlns","http://www.w3.org/1999/xhtml"),e.node()}var x_e,gc,Gw=N(()=>{"use strict";dr();vt();zt();gr();ir();o(y_e,"applyStyle");o(v_e,"addHtmlLabel");x_e=o(async(t,e,r,n)=>{let i=t||"";if(typeof i=="object"&&(i=i[0]),fr(me().flowchart.htmlLabels)){i=i.replace(/\\n|\n/g,"<br />"),Y.info("vertexText"+i);let a={isNode:n,label:na(i).replace(/fa[blrs]?:fa-[\w-]+/g,l=>`<i class='${l.replace(":"," ")}'></i>`),labelStyle:e&&e.replace("fill:","color:")};return await v_e(a)}else{let a=document.createElementNS("http://www.w3.org/2000/svg","text");a.setAttribute("style",e.replace("color:","fill:"));let s=[];typeof i=="string"?s=i.split(/\\n|\n|<br\s*\/?>/gi):Array.isArray(i)?s=i:s=[];for(let l of s){let u=document.createElementNS("http://www.w3.org/2000/svg","tspan");u.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),u.setAttribute("dy","1em"),u.setAttribute("x","0"),r?u.setAttribute("class","title-row"):u.setAttribute("class","row"),u.textContent=l.trim(),a.appendChild(u)}return a}},"createLabel"),gc=x_e});async function KQ(t,e){let{labelStyles:r,nodeStyles:n}=Qe(e);e.labelStyle=r;let i;e.cssClasses?i="node "+e.cssClasses:i="node default";let a=t.insert("g").attr("class",i).attr("id",e.domId||e.id),s=a.insert("g"),l=a.insert("g").attr("class","label").attr("style",n),u=e.description,h=e.label,f=l.node().appendChild(await gc(h,e.labelStyle,!0,!0)),d={width:0,height:0};if(fr(me()?.flowchart?.htmlLabels)){let S=f.children[0],_=Ge(f);d=S.getBoundingClientRect(),_.attr("width",d.width),_.attr("height",d.height)}Y.info("Text 2",u);let p=u||[],m=f.getBBox(),g=l.node().appendChild(await gc(p.join?p.join("<br/>"):p,e.labelStyle,!0,!0)),y=g.children[0],v=Ge(g);d=y.getBoundingClientRect(),v.attr("width",d.width),v.attr("height",d.height);let x=(e.padding||0)/2;Ge(g).attr("transform","translate( "+(d.width>m.width?0:(m.width-d.width)/2)+", "+(m.height+x+5)+")"),Ge(f).attr("transform","translate( "+(d.width<m.width?0:-(m.width-d.width)/2)+", 0)"),d=l.node().getBBox(),l.attr("transform","translate("+-d.width/2+", "+(-d.height/2-x+3)+")");let b=d.width+(e.padding||0),w=d.height+(e.padding||0),C=-d.width/2-x,T=-d.height/2-x,E,A;if(e.look==="handDrawn"){let S=Xe.svg(a),_=Ke(e,{}),I=S.path(Na(C,T,b,w,e.rx||0),_),D=S.line(-d.width/2-x,-d.height/2-x+m.height+x,d.width/2+x,-d.height/2-x+m.height+x,_);A=a.insert(()=>(Y.debug("Rough node insert CXC",I),D),":first-child"),E=a.insert(()=>(Y.debug("Rough node insert CXC",I),I),":first-child")}else E=s.insert("rect",":first-child"),A=s.insert("line"),E.attr("class","outer title-state").attr("style",n).attr("x",-d.width/2-x).attr("y",-d.height/2-x).attr("width",d.width+(e.padding||0)).attr("height",d.height+(e.padding||0)),A.attr("class","divider").attr("x1",-d.width/2-x).attr("x2",d.width/2+x).attr("y1",-d.height/2-x+m.height+x).attr("y2",-d.height/2-x+m.height+x);return je(e,E),e.intersect=function(S){return Ye.rect(e,S)},a}var QQ=N(()=>{"use strict";dr();gr();Ft();Gw();Ht();Ut();Wt();zt();qh();vt();o(KQ,"rectWithTitle")});async function ZQ(t,e){let r={rx:5,ry:5,classes:"",labelPaddingX:(e?.padding||0)*1,labelPaddingY:(e?.padding||0)*1};return Du(t,e,r)}var JQ=N(()=>{"use strict";mm();o(ZQ,"roundedRect")});async function eZ(t,e){let{labelStyles:r,nodeStyles:n}=Qe(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await pt(t,e,ht(e)),l=e?.padding??0,u=Math.max(a.width+(e.padding??0)*2,e?.width??0),h=Math.max(a.height+(e.padding??0)*2,e?.height??0),f=-a.width/2-l,d=-a.height/2-l,{cssStyles:p}=e,m=Xe.svg(i),g=Ke(e,{});e.look!=="handDrawn"&&(g.roughness=0,g.fillStyle="solid");let y=[{x:f,y:d},{x:f+u+8,y:d},{x:f+u+8,y:d+h},{x:f-8,y:d+h},{x:f-8,y:d},{x:f,y:d},{x:f,y:d+h}],v=m.polygon(y.map(b=>[b.x,b.y]),g),x=i.insert(()=>v,":first-child");return x.attr("class","basic label-container").attr("style",$n(p)),n&&e.look!=="handDrawn"&&x.selectAll("path").attr("style",n),p&&e.look!=="handDrawn"&&x.selectAll("path").attr("style",n),s.attr("transform",`translate(${-u/2+4+(e.padding??0)-(a.x-(a.left??0))},${-h/2+(e.padding??0)-(a.y-(a.top??0))})`),je(e,x),e.intersect=function(b){return Ye.rect(e,b)},i}var tZ=N(()=>{"use strict";Ft();Ht();Ut();Wt();ir();o(eZ,"shadedProcess")});async function rZ(t,e){let{labelStyles:r,nodeStyles:n}=Qe(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await pt(t,e,ht(e)),l=Math.max(a.width+(e.padding??0)*2,e?.width??0),u=Math.max(a.height+(e.padding??0)*2,e?.height??0),h=-l/2,f=-u/2,{cssStyles:d}=e,p=Xe.svg(i),m=Ke(e,{});e.look!=="handDrawn"&&(m.roughness=0,m.fillStyle="solid");let g=[{x:h,y:f},{x:h,y:f+u},{x:h+l,y:f+u},{x:h+l,y:f-u/2}],y=Xt(g),v=p.path(y,m),x=i.insert(()=>v,":first-child");return x.attr("class","basic label-container"),d&&e.look!=="handDrawn"&&x.selectChildren("path").attr("style",d),n&&e.look!=="handDrawn"&&x.selectChildren("path").attr("style",n),x.attr("transform",`translate(0, ${u/4})`),s.attr("transform",`translate(${-l/2+(e.padding??0)-(a.x-(a.left??0))}, ${-u/4+(e.padding??0)-(a.y-(a.top??0))})`),je(e,x),e.intersect=function(b){return Ye.polygon(e,g,b)},i}var nZ=N(()=>{"use strict";Ft();Ht();Ut();Wt();o(rZ,"slopedRect")});async function iZ(t,e){let r={rx:0,ry:0,classes:"",labelPaddingX:(e?.padding||0)*2,labelPaddingY:(e?.padding||0)*1};return Du(t,e,r)}var aZ=N(()=>{"use strict";mm();o(iZ,"squareRect")});async function sZ(t,e){let{labelStyles:r,nodeStyles:n}=Qe(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await pt(t,e,ht(e)),s=a.height+e.padding,l=a.width+s/4+e.padding,u,{cssStyles:h}=e;if(e.look==="handDrawn"){let f=Xe.svg(i),d=Ke(e,{}),p=Na(-l/2,-s/2,l,s,s/2),m=f.path(p,d);u=i.insert(()=>m,":first-child"),u.attr("class","basic label-container").attr("style",$n(h))}else u=i.insert("rect",":first-child"),u.attr("class","basic label-container").attr("style",n).attr("rx",s/2).attr("ry",s/2).attr("x",-l/2).attr("y",-s/2).attr("width",l).attr("height",s);return je(e,u),e.intersect=function(f){return Ye.rect(e,f)},i}var oZ=N(()=>{"use strict";Ft();Ht();Ut();Wt();qh();ir();o(sZ,"stadium")});async function lZ(t,e){return Du(t,e,{rx:5,ry:5,classes:"flowchart-node"})}var cZ=N(()=>{"use strict";mm();o(lZ,"state")});function uZ(t,e,{config:{themeVariables:r}}){let{labelStyles:n,nodeStyles:i}=Qe(e);e.labelStyle=n;let{cssStyles:a}=e,{lineColor:s,stateBorder:l,nodeBorder:u}=r,h=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),f=Xe.svg(h),d=Ke(e,{});e.look!=="handDrawn"&&(d.roughness=0,d.fillStyle="solid");let p=f.circle(0,0,14,{...d,stroke:s,strokeWidth:2}),m=l??u,g=f.circle(0,0,5,{...d,fill:m,stroke:m,strokeWidth:2,fillStyle:"solid"}),y=h.insert(()=>p,":first-child");return y.insert(()=>g),a&&y.selectAll("path").attr("style",a),i&&y.selectAll("path").attr("style",i),je(e,y),e.intersect=function(v){return Ye.circle(e,7,v)},h}var hZ=N(()=>{"use strict";Wt();Ht();Ut();Ft();o(uZ,"stateEnd")});function fZ(t,e,{config:{themeVariables:r}}){let{lineColor:n}=r,i=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),a;if(e.look==="handDrawn"){let l=Xe.svg(i).circle(0,0,14,gK(n));a=i.insert(()=>l),a.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14)}else a=i.insert("circle",":first-child"),a.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14);return je(e,a),e.intersect=function(s){return Ye.circle(e,7,s)},i}var dZ=N(()=>{"use strict";Wt();Ht();Ut();Ft();o(fZ,"stateStart")});async function pZ(t,e){let{labelStyles:r,nodeStyles:n}=Qe(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await pt(t,e,ht(e)),s=(e?.padding||0)/2,l=a.width+e.padding,u=a.height+e.padding,h=-a.width/2-s,f=-a.height/2-s,d=[{x:0,y:0},{x:l,y:0},{x:l,y:-u},{x:0,y:-u},{x:0,y:0},{x:-8,y:0},{x:l+8,y:0},{x:l+8,y:-u},{x:-8,y:-u},{x:-8,y:0}];if(e.look==="handDrawn"){let p=Xe.svg(i),m=Ke(e,{}),g=p.rectangle(h-8,f,l+16,u,m),y=p.line(h,f,h,f+u,m),v=p.line(h+l,f,h+l,f+u,m);i.insert(()=>y,":first-child"),i.insert(()=>v,":first-child");let x=i.insert(()=>g,":first-child"),{cssStyles:b}=e;x.attr("class","basic label-container").attr("style",$n(b)),je(e,x)}else{let p=La(i,l,u,d);n&&p.attr("style",n),je(e,p)}return e.intersect=function(p){return Ye.polygon(e,d,p)},i}var mZ=N(()=>{"use strict";Ft();Ht();Ut();Wt();_u();ir();o(pZ,"subroutine")});async function gZ(t,e){let{labelStyles:r,nodeStyles:n}=Qe(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await pt(t,e,ht(e)),s=Math.max(a.width+(e.padding??0)*2,e?.width??0),l=Math.max(a.height+(e.padding??0)*2,e?.height??0),u=-s/2,h=-l/2,f=.2*l,d=.2*l,{cssStyles:p}=e,m=Xe.svg(i),g=Ke(e,{}),y=[{x:u-f/2,y:h},{x:u+s+f/2,y:h},{x:u+s+f/2,y:h+l},{x:u-f/2,y:h+l}],v=[{x:u+s-f/2,y:h+l},{x:u+s+f/2,y:h+l},{x:u+s+f/2,y:h+l-d}];e.look!=="handDrawn"&&(g.roughness=0,g.fillStyle="solid");let x=Xt(y),b=m.path(x,g),w=Xt(v),C=m.path(w,{...g,fillStyle:"solid"}),T=i.insert(()=>C,":first-child");return T.insert(()=>b,":first-child"),T.attr("class","basic label-container"),p&&e.look!=="handDrawn"&&T.selectAll("path").attr("style",p),n&&e.look!=="handDrawn"&&T.selectAll("path").attr("style",n),je(e,T),e.intersect=function(E){return Ye.polygon(e,y,E)},i}var yZ=N(()=>{"use strict";Ft();Ut();Wt();Ht();o(gZ,"taggedRect")});async function vZ(t,e){let{labelStyles:r,nodeStyles:n}=Qe(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await pt(t,e,ht(e)),l=Math.max(a.width+(e.padding??0)*2,e?.width??0),u=Math.max(a.height+(e.padding??0)*2,e?.height??0),h=u/4,f=.2*l,d=.2*u,p=u+h,{cssStyles:m}=e,g=Xe.svg(i),y=Ke(e,{});e.look!=="handDrawn"&&(y.roughness=0,y.fillStyle="solid");let v=[{x:-l/2-l/2*.1,y:p/2},...Fo(-l/2-l/2*.1,p/2,l/2+l/2*.1,p/2,h,.8),{x:l/2+l/2*.1,y:-p/2},{x:-l/2-l/2*.1,y:-p/2}],x=-l/2+l/2*.1,b=-p/2-d*.4,w=[{x:x+l-f,y:(b+u)*1.4},{x:x+l,y:b+u-d},{x:x+l,y:(b+u)*.9},...Fo(x+l,(b+u)*1.3,x+l-f,(b+u)*1.5,-u*.03,.5)],C=Xt(v),T=g.path(C,y),E=Xt(w),A=g.path(E,{...y,fillStyle:"solid"}),S=i.insert(()=>A,":first-child");return S.insert(()=>T,":first-child"),S.attr("class","basic label-container"),m&&e.look!=="handDrawn"&&S.selectAll("path").attr("style",m),n&&e.look!=="handDrawn"&&S.selectAll("path").attr("style",n),S.attr("transform",`translate(0,${-h/2})`),s.attr("transform",`translate(${-l/2+(e.padding??0)-(a.x-(a.left??0))},${-u/2+(e.padding??0)-h/2-(a.y-(a.top??0))})`),je(e,S),e.intersect=function(_){return Ye.polygon(e,v,_)},i}var xZ=N(()=>{"use strict";Ft();Ht();Wt();Ut();o(vZ,"taggedWaveEdgedRectangle")});async function bZ(t,e){let{labelStyles:r,nodeStyles:n}=Qe(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await pt(t,e,ht(e)),s=Math.max(a.width+e.padding,e?.width||0),l=Math.max(a.height+e.padding,e?.height||0),u=-s/2,h=-l/2,f=i.insert("rect",":first-child");return f.attr("class","text").attr("style",n).attr("rx",0).attr("ry",0).attr("x",u).attr("y",h).attr("width",s).attr("height",l),je(e,f),e.intersect=function(d){return Ye.rect(e,d)},i}var wZ=N(()=>{"use strict";Ft();Ht();Ut();o(bZ,"text")});async function TZ(t,e){let{labelStyles:r,nodeStyles:n}=Qe(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s,halfPadding:l}=await pt(t,e,ht(e)),u=e.look==="neo"?l*2:l,h=a.height+u,f=h/2,d=f/(2.5+h/50),p=a.width+d+u,{cssStyles:m}=e,g;if(e.look==="handDrawn"){let y=Xe.svg(i),v=w_e(0,0,p,h,d,f),x=T_e(0,0,p,h,d,f),b=y.path(v,Ke(e,{})),w=y.path(x,Ke(e,{fill:"none"}));g=i.insert(()=>w,":first-child"),g=i.insert(()=>b,":first-child"),g.attr("class","basic label-container"),m&&g.attr("style",m)}else{let y=b_e(0,0,p,h,d,f);g=i.insert("path",":first-child").attr("d",y).attr("class","basic label-container").attr("style",$n(m)).attr("style",n),g.attr("class","basic label-container"),m&&g.selectAll("path").attr("style",m),n&&g.selectAll("path").attr("style",n)}return g.attr("label-offset-x",d),g.attr("transform",`translate(${-p/2}, ${h/2} )`),s.attr("transform",`translate(${-(a.width/2)-d-(a.x-(a.left??0))}, ${-(a.height/2)-(a.y-(a.top??0))})`),je(e,g),e.intersect=function(y){let v=Ye.rect(e,y),x=v.y-(e.y??0);if(f!=0&&(Math.abs(x)<(e.height??0)/2||Math.abs(x)==(e.height??0)/2&&Math.abs(v.x-(e.x??0))>(e.width??0)/2-d)){let b=d*d*(1-x*x/(f*f));b!=0&&(b=Math.sqrt(Math.abs(b))),b=d-b,y.x-(e.x??0)>0&&(b=-b),v.x+=b}return v},i}var b_e,w_e,T_e,kZ=N(()=>{"use strict";Ft();Ut();Wt();Ht();ir();b_e=o((t,e,r,n,i,a)=>`M${t},${e}
+    a${i},${a} 0,0,1 0,${-n}
+    l${r},0
+    a${i},${a} 0,0,1 0,${n}
+    M${r},${-n}
+    a${i},${a} 0,0,0 0,${n}
+    l${-r},0`,"createCylinderPathD"),w_e=o((t,e,r,n,i,a)=>[`M${t},${e}`,`M${t+r},${e}`,`a${i},${a} 0,0,0 0,${-n}`,`l${-r},0`,`a${i},${a} 0,0,0 0,${n}`,`l${r},0`].join(" "),"createOuterCylinderPathD"),T_e=o((t,e,r,n,i,a)=>[`M${t+r/2},${-n/2}`,`a${i},${a} 0,0,0 0,${n}`].join(" "),"createInnerCylinderPathD");o(TZ,"tiltedCylinder")});async function EZ(t,e){let{labelStyles:r,nodeStyles:n}=Qe(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await pt(t,e,ht(e)),s=a.width+e.padding,l=a.height+e.padding,u=[{x:-3*l/6,y:0},{x:s+3*l/6,y:0},{x:s,y:-l},{x:0,y:-l}],h,{cssStyles:f}=e;if(e.look==="handDrawn"){let d=Xe.svg(i),p=Ke(e,{}),m=Xt(u),g=d.path(m,p);h=i.insert(()=>g,":first-child").attr("transform",`translate(${-s/2}, ${l/2})`),f&&h.attr("style",f)}else h=La(i,s,l,u);return n&&h.attr("style",n),e.width=s,e.height=l,je(e,h),e.intersect=function(d){return Ye.polygon(e,u,d)},i}var SZ=N(()=>{"use strict";Ft();Ht();Ut();Wt();_u();o(EZ,"trapezoid")});async function CZ(t,e){let{labelStyles:r,nodeStyles:n}=Qe(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await pt(t,e,ht(e)),s=60,l=20,u=Math.max(s,a.width+(e.padding??0)*2,e?.width??0),h=Math.max(l,a.height+(e.padding??0)*2,e?.height??0),{cssStyles:f}=e,d=Xe.svg(i),p=Ke(e,{});e.look!=="handDrawn"&&(p.roughness=0,p.fillStyle="solid");let m=[{x:-u/2*.8,y:-h/2},{x:u/2*.8,y:-h/2},{x:u/2,y:-h/2*.6},{x:u/2,y:h/2},{x:-u/2,y:h/2},{x:-u/2,y:-h/2*.6}],g=Xt(m),y=d.path(g,p),v=i.insert(()=>y,":first-child");return v.attr("class","basic label-container"),f&&e.look!=="handDrawn"&&v.selectChildren("path").attr("style",f),n&&e.look!=="handDrawn"&&v.selectChildren("path").attr("style",n),je(e,v),e.intersect=function(x){return Ye.polygon(e,m,x)},i}var AZ=N(()=>{"use strict";Ft();Ht();Ut();Wt();o(CZ,"trapezoidalPentagon")});async function _Z(t,e){let{labelStyles:r,nodeStyles:n}=Qe(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await pt(t,e,ht(e)),l=fr(me().flowchart?.htmlLabels),u=a.width+(e.padding??0),h=u+a.height,f=u+a.height,d=[{x:0,y:0},{x:f,y:0},{x:f/2,y:-h}],{cssStyles:p}=e,m=Xe.svg(i),g=Ke(e,{});e.look!=="handDrawn"&&(g.roughness=0,g.fillStyle="solid");let y=Xt(d),v=m.path(y,g),x=i.insert(()=>v,":first-child").attr("transform",`translate(${-h/2}, ${h/2})`);return p&&e.look!=="handDrawn"&&x.selectChildren("path").attr("style",p),n&&e.look!=="handDrawn"&&x.selectChildren("path").attr("style",n),e.width=u,e.height=h,je(e,x),s.attr("transform",`translate(${-a.width/2-(a.x-(a.left??0))}, ${h/2-(a.height+(e.padding??0)/(l?2:1)-(a.y-(a.top??0)))})`),e.intersect=function(b){return Y.info("Triangle intersect",e,d,b),Ye.polygon(e,d,b)},i}var DZ=N(()=>{"use strict";vt();Ft();Ht();Ut();Wt();Ft();gr();zt();o(_Z,"triangle")});async function LZ(t,e){let{labelStyles:r,nodeStyles:n}=Qe(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await pt(t,e,ht(e)),l=Math.max(a.width+(e.padding??0)*2,e?.width??0),u=Math.max(a.height+(e.padding??0)*2,e?.height??0),h=u/8,f=u+h,{cssStyles:d}=e,m=70-l,g=m>0?m/2:0,y=Xe.svg(i),v=Ke(e,{});e.look!=="handDrawn"&&(v.roughness=0,v.fillStyle="solid");let x=[{x:-l/2-g,y:f/2},...Fo(-l/2-g,f/2,l/2+g,f/2,h,.8),{x:l/2+g,y:-f/2},{x:-l/2-g,y:-f/2}],b=Xt(x),w=y.path(b,v),C=i.insert(()=>w,":first-child");return C.attr("class","basic label-container"),d&&e.look!=="handDrawn"&&C.selectAll("path").attr("style",d),n&&e.look!=="handDrawn"&&C.selectAll("path").attr("style",n),C.attr("transform",`translate(0,${-h/2})`),s.attr("transform",`translate(${-l/2+(e.padding??0)-(a.x-(a.left??0))},${-u/2+(e.padding??0)-h-(a.y-(a.top??0))})`),je(e,C),e.intersect=function(T){return Ye.polygon(e,x,T)},i}var RZ=N(()=>{"use strict";Ft();Ht();Wt();Ut();o(LZ,"waveEdgedRectangle")});async function NZ(t,e){let{labelStyles:r,nodeStyles:n}=Qe(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await pt(t,e,ht(e)),s=100,l=50,u=Math.max(a.width+(e.padding??0)*2,e?.width??0),h=Math.max(a.height+(e.padding??0)*2,e?.height??0),f=u/h,d=u,p=h;d>p*f?p=d/f:d=p*f,d=Math.max(d,s),p=Math.max(p,l);let m=Math.min(p*.2,p/4),g=p+m*2,{cssStyles:y}=e,v=Xe.svg(i),x=Ke(e,{});e.look!=="handDrawn"&&(x.roughness=0,x.fillStyle="solid");let b=[{x:-d/2,y:g/2},...Fo(-d/2,g/2,d/2,g/2,m,1),{x:d/2,y:-g/2},...Fo(d/2,-g/2,-d/2,-g/2,m,-1)],w=Xt(b),C=v.path(w,x),T=i.insert(()=>C,":first-child");return T.attr("class","basic label-container"),y&&e.look!=="handDrawn"&&T.selectAll("path").attr("style",y),n&&e.look!=="handDrawn"&&T.selectAll("path").attr("style",n),je(e,T),e.intersect=function(E){return Ye.polygon(e,b,E)},i}var MZ=N(()=>{"use strict";Ft();Ht();Ut();Wt();o(NZ,"waveRectangle")});async function IZ(t,e){let{labelStyles:r,nodeStyles:n}=Qe(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await pt(t,e,ht(e)),l=Math.max(a.width+(e.padding??0)*2,e?.width??0),u=Math.max(a.height+(e.padding??0)*2,e?.height??0),h=5,f=-l/2,d=-u/2,{cssStyles:p}=e,m=Xe.svg(i),g=Ke(e,{}),y=[{x:f-h,y:d-h},{x:f-h,y:d+u},{x:f+l,y:d+u},{x:f+l,y:d-h}],v=`M${f-h},${d-h} L${f+l},${d-h} L${f+l},${d+u} L${f-h},${d+u} L${f-h},${d-h}
+                M${f-h},${d} L${f+l},${d}
+                M${f},${d-h} L${f},${d+u}`;e.look!=="handDrawn"&&(g.roughness=0,g.fillStyle="solid");let x=m.path(v,g),b=i.insert(()=>x,":first-child");return b.attr("transform",`translate(${h/2}, ${h/2})`),b.attr("class","basic label-container"),p&&e.look!=="handDrawn"&&b.selectAll("path").attr("style",p),n&&e.look!=="handDrawn"&&b.selectAll("path").attr("style",n),s.attr("transform",`translate(${-(a.width/2)+h/2-(a.x-(a.left??0))}, ${-(a.height/2)+h/2-(a.y-(a.top??0))})`),je(e,b),e.intersect=function(w){return Ye.polygon(e,y,w)},i}var OZ=N(()=>{"use strict";Ft();Ut();Wt();Ht();o(IZ,"windowPane")});async function KD(t,e){let r=e;if(r.alias&&(e.label=r.alias),e.look==="handDrawn"){let{themeVariables:P}=cr(),{background:z}=P,$={...e,id:e.id+"-background",look:"default",cssStyles:["stroke: none",`fill: ${z}`]};await KD(t,$)}let n=cr();e.useHtmlLabels=n.htmlLabels;let i=n.er?.diagramPadding??10,a=n.er?.entityPadding??6,{cssStyles:s}=e,{labelStyles:l}=Qe(e);if(r.attributes.length===0&&e.label){let P={rx:0,ry:0,labelPaddingX:i,labelPaddingY:i*1.5,classes:""};ra(e.label,n)+P.labelPaddingX*2<n.er.minEntityWidth&&(e.width=n.er.minEntityWidth);let z=await Du(t,e,P);if(!fr(n.htmlLabels)){let $=z.select("text"),H=$.node()?.getBBox();$.attr("transform",`translate(${-H.width/2}, 0)`)}return z}n.htmlLabels||(i*=1.25,a*=1.25);let u=ht(e);u||(u="node default");let h=t.insert("g").attr("class",u).attr("id",e.domId||e.id),f=await b2(h,e.label??"",n,0,0,["name"],l);f.height+=a;let d=0,p=[],m=0,g=0,y=0,v=0,x=!0,b=!0;for(let P of r.attributes){let z=await b2(h,P.type,n,0,d,["attribute-type"],l);m=Math.max(m,z.width+i);let $=await b2(h,P.name,n,0,d,["attribute-name"],l);g=Math.max(g,$.width+i);let H=await b2(h,P.keys.join(),n,0,d,["attribute-keys"],l);y=Math.max(y,H.width+i);let Q=await b2(h,P.comment,n,0,d,["attribute-comment"],l);v=Math.max(v,Q.width+i),d+=Math.max(z.height,$.height,H.height,Q.height)+a,p.push(d)}p.pop();let w=4;y<=i&&(x=!1,y=0,w--),v<=i&&(b=!1,v=0,w--);let C=h.node().getBBox();if(f.width+i*2-(m+g+y+v)>0){let P=f.width+i*2-(m+g+y+v);m+=P/w,g+=P/w,y>0&&(y+=P/w),v>0&&(v+=P/w)}let T=m+g+y+v,E=Xe.svg(h),A=Ke(e,{});e.look!=="handDrawn"&&(A.roughness=0,A.fillStyle="solid");let S=Math.max(C.width+i*2,e?.width||0,T),_=Math.max(C.height+(p[0]||d)+a,e?.height||0),I=-S/2,D=-_/2;h.selectAll("g:not(:first-child)").each((P,z,$)=>{let H=Ge($[z]),Q=H.attr("transform"),j=0,ie=0;if(Q){let le=RegExp(/translate\(([^,]+),([^)]+)\)/).exec(Q);le&&(j=parseFloat(le[1]),ie=parseFloat(le[2]),H.attr("class").includes("attribute-name")?j+=m:H.attr("class").includes("attribute-keys")?j+=m+g:H.attr("class").includes("attribute-comment")&&(j+=m+g+y))}H.attr("transform",`translate(${I+i/2+j}, ${ie+D+f.height+a/2})`)}),h.select(".name").attr("transform","translate("+-f.width/2+", "+(D+a/2)+")");let k=E.rectangle(I,D,S,_,A),L=h.insert(()=>k,":first-child").attr("style",s.join("")),{themeVariables:R}=cr(),{rowEven:O,rowOdd:M,nodeBorder:B}=R;p.push(0);for(let[P,z]of p.entries()){if(P===0&&p.length>1)continue;let $=P%2===0&&z!==0,H=E.rectangle(I,f.height+D+z,S,f.height,{...A,fill:$?O:M,stroke:B});h.insert(()=>H,"g.label").attr("style",s.join("")).attr("class",`row-rect-${P%2===0?"even":"odd"}`)}let F=E.line(I,f.height+D,S+I,f.height+D,A);h.insert(()=>F).attr("class","divider"),F=E.line(m+I,f.height+D,m+I,_+D,A),h.insert(()=>F).attr("class","divider"),x&&(F=E.line(m+g+I,f.height+D,m+g+I,_+D,A),h.insert(()=>F).attr("class","divider")),b&&(F=E.line(m+g+y+I,f.height+D,m+g+y+I,_+D,A),h.insert(()=>F).attr("class","divider"));for(let P of p)F=E.line(I,f.height+D+P,S+I,f.height+D+P,A),h.insert(()=>F).attr("class","divider");return je(e,L),e.intersect=function(P){return Ye.rect(e,P)},h}async function b2(t,e,r,n=0,i=0,a=[],s=""){let l=t.insert("g").attr("class",`label ${a.join(" ")}`).attr("transform",`translate(${n}, ${i})`).attr("style",s);e!==ec(e)&&(e=ec(e),e=e.replaceAll("<","&lt;").replaceAll(">","&gt;"));let u=l.node().appendChild(await Hn(l,e,{width:ra(e,r)+100,style:s,useHtmlLabels:r.htmlLabels},r));if(e.includes("&lt;")||e.includes("&gt;")){let f=u.children[0];for(f.textContent=f.textContent.replaceAll("&lt;","<").replaceAll("&gt;",">");f.childNodes[0];)f=f.childNodes[0],f.textContent=f.textContent.replaceAll("&lt;","<").replaceAll("&gt;",">")}let h=u.getBBox();if(fr(r.htmlLabels)){let f=u.children[0];f.style.textAlign="start";let d=Ge(u);h=f.getBoundingClientRect(),d.attr("width",h.width),d.attr("height",h.height)}return h}var PZ=N(()=>{"use strict";Ft();Ht();Ut();Wt();mm();ji();to();gr();dr();ir();o(KD,"erBox");o(b2,"addText")});async function BZ(t,e,r,n,i=r.class.padding??12){let a=n?0:3,s=t.insert("g").attr("class",ht(e)).attr("id",e.domId||e.id),l=null,u=null,h=null,f=null,d=0,p=0,m=0;if(l=s.insert("g").attr("class","annotation-group text"),e.annotations.length>0){let b=e.annotations[0];await Vw(l,{text:`\xAB${b}\xBB`},0),d=l.node().getBBox().height}u=s.insert("g").attr("class","label-group text"),await Vw(u,e,0,["font-weight: bolder"]);let g=u.node().getBBox();p=g.height,h=s.insert("g").attr("class","members-group text");let y=0;for(let b of e.members){let w=await Vw(h,b,y,[b.parseClassifier()]);y+=w+a}m=h.node().getBBox().height,m<=0&&(m=i/2),f=s.insert("g").attr("class","methods-group text");let v=0;for(let b of e.methods){let w=await Vw(f,b,v,[b.parseClassifier()]);v+=w+a}let x=s.node().getBBox();if(l!==null){let b=l.node().getBBox();l.attr("transform",`translate(${-b.width/2})`)}return u.attr("transform",`translate(${-g.width/2}, ${d})`),x=s.node().getBBox(),h.attr("transform",`translate(0, ${d+p+i*2})`),x=s.node().getBBox(),f.attr("transform",`translate(0, ${d+p+(m?m+i*4:i*2)})`),x=s.node().getBBox(),{shapeSvg:s,bbox:x}}async function Vw(t,e,r,n=[]){let i=t.insert("g").attr("class","label").attr("style",n.join("; ")),a=cr(),s="useHtmlLabels"in e?e.useHtmlLabels:fr(a.htmlLabels)??!0,l="";"text"in e?l=e.text:l=e.label,!s&&l.startsWith("\\")&&(l=l.substring(1)),pi(l)&&(s=!0);let u=await Hn(i,Xy(na(l)),{width:ra(l,a)+50,classes:"markdown-node-label",useHtmlLabels:s},a),h,f=1;if(s){let d=u.children[0],p=Ge(u);f=d.innerHTML.split("<br>").length,d.innerHTML.includes("</math>")&&(f+=d.innerHTML.split("<mrow>").length-1);let m=d.getElementsByTagName("img");if(m){let g=l.replace(/<img[^>]*>/g,"").trim()==="";await Promise.all([...m].map(y=>new Promise(v=>{function x(){if(y.style.display="flex",y.style.flexDirection="column",g){let b=a.fontSize?.toString()??window.getComputedStyle(document.body).fontSize,C=parseInt(b,10)*5+"px";y.style.minWidth=C,y.style.maxWidth=C}else y.style.width="100%";v(y)}o(x,"setupImage"),setTimeout(()=>{y.complete&&x()}),y.addEventListener("error",x),y.addEventListener("load",x)})))}h=d.getBoundingClientRect(),p.attr("width",h.width),p.attr("height",h.height)}else{n.includes("font-weight: bolder")&&Ge(u).selectAll("tspan").attr("font-weight",""),f=u.children.length;let d=u.children[0];(u.textContent===""||u.textContent.includes("&gt"))&&(d.textContent=l[0]+l.substring(1).replaceAll("&gt;",">").replaceAll("&lt;","<").trim(),l[1]===" "&&(d.textContent=d.textContent[0]+" "+d.textContent.substring(1))),d.textContent==="undefined"&&(d.textContent=""),h=u.getBBox()}return i.attr("transform","translate(0,"+(-h.height/(2*f)+r)+")"),h.height}var FZ=N(()=>{"use strict";dr();ji();Ft();ir();zt();to();gr();o(BZ,"textHelper");o(Vw,"addText")});async function $Z(t,e){let r=me(),n=r.class.padding??12,i=n,a=e.useHtmlLabels??fr(r.htmlLabels)??!0,s=e;s.annotations=s.annotations??[],s.members=s.members??[],s.methods=s.methods??[];let{shapeSvg:l,bbox:u}=await BZ(t,e,r,a,i),{labelStyles:h,nodeStyles:f}=Qe(e);e.labelStyle=h,e.cssStyles=s.styles||"";let d=s.styles?.join(";")||f||"";e.cssStyles||(e.cssStyles=d.replaceAll("!important","").split(";"));let p=s.members.length===0&&s.methods.length===0&&!r.class?.hideEmptyMembersBox,m=Xe.svg(l),g=Ke(e,{});e.look!=="handDrawn"&&(g.roughness=0,g.fillStyle="solid");let y=u.width,v=u.height;s.members.length===0&&s.methods.length===0?v+=i:s.members.length>0&&s.methods.length===0&&(v+=i*2);let x=-y/2,b=-v/2,w=m.rectangle(x-n,b-n-(p?n:s.members.length===0&&s.methods.length===0?-n/2:0),y+2*n,v+2*n+(p?n*2:s.members.length===0&&s.methods.length===0?-n:0),g),C=l.insert(()=>w,":first-child");C.attr("class","basic label-container");let T=C.node().getBBox();l.selectAll(".text").each((_,I,D)=>{let k=Ge(D[I]),L=k.attr("transform"),R=0;if(L){let F=RegExp(/translate\(([^,]+),([^)]+)\)/).exec(L);F&&(R=parseFloat(F[2]))}let O=R+b+n-(p?n:s.members.length===0&&s.methods.length===0?-n/2:0);a||(O-=4);let M=x;(k.attr("class").includes("label-group")||k.attr("class").includes("annotation-group"))&&(M=-k.node()?.getBBox().width/2||0,l.selectAll("text").each(function(B,F,P){window.getComputedStyle(P[F]).textAnchor==="middle"&&(M=0)})),k.attr("transform",`translate(${M}, ${O})`)});let E=l.select(".annotation-group").node().getBBox().height-(p?n/2:0)||0,A=l.select(".label-group").node().getBBox().height-(p?n/2:0)||0,S=l.select(".members-group").node().getBBox().height-(p?n/2:0)||0;if(s.members.length>0||s.methods.length>0||p){let _=m.line(T.x,E+A+b+n,T.x+T.width,E+A+b+n,g);l.insert(()=>_).attr("class","divider").attr("style",d)}if(p||s.members.length>0||s.methods.length>0){let _=m.line(T.x,E+A+S+b+i*2+n,T.x+T.width,E+A+S+b+n+i*2,g);l.insert(()=>_).attr("class","divider").attr("style",d)}if(s.look!=="handDrawn"&&l.selectAll("path").attr("style",d),C.select(":nth-child(2)").attr("style",d),l.selectAll(".divider").select("path").attr("style",d),e.labelStyle?l.selectAll("span").attr("style",e.labelStyle):l.selectAll("span").attr("style",d),!a){let _=RegExp(/color\s*:\s*([^;]*)/),I=_.exec(d);if(I){let D=I[0].replace("color","fill");l.selectAll("tspan").attr("style",D)}else if(h){let D=_.exec(h);if(D){let k=D[0].replace("color","fill");l.selectAll("tspan").attr("style",k)}}}return je(e,C),e.intersect=function(_){return Ye.rect(e,_)},l}var zZ=N(()=>{"use strict";Ft();zt();dr();Wt();Ut();Ht();FZ();gr();o($Z,"classBox")});async function GZ(t,e){let{labelStyles:r,nodeStyles:n}=Qe(e);e.labelStyle=r;let i=e,a=e,s=20,l=20,u="verifyMethod"in e,h=ht(e),f=t.insert("g").attr("class",h).attr("id",e.domId??e.id),d;u?d=await Lu(f,`&lt;&lt;${i.type}&gt;&gt;`,0,e.labelStyle):d=await Lu(f,"&lt;&lt;Element&gt;&gt;",0,e.labelStyle);let p=d,m=await Lu(f,i.name,p,e.labelStyle+"; font-weight: bold;");if(p+=m+l,u){let E=await Lu(f,`${i.requirementId?`Id: ${i.requirementId}`:""}`,p,e.labelStyle);p+=E;let A=await Lu(f,`${i.text?`Text: ${i.text}`:""}`,p,e.labelStyle);p+=A;let S=await Lu(f,`${i.risk?`Risk: ${i.risk}`:""}`,p,e.labelStyle);p+=S,await Lu(f,`${i.verifyMethod?`Verification: ${i.verifyMethod}`:""}`,p,e.labelStyle)}else{let E=await Lu(f,`${a.type?`Type: ${a.type}`:""}`,p,e.labelStyle);p+=E,await Lu(f,`${a.docRef?`Doc Ref: ${a.docRef}`:""}`,p,e.labelStyle)}let g=(f.node()?.getBBox().width??200)+s,y=(f.node()?.getBBox().height??200)+s,v=-g/2,x=-y/2,b=Xe.svg(f),w=Ke(e,{});e.look!=="handDrawn"&&(w.roughness=0,w.fillStyle="solid");let C=b.rectangle(v,x,g,y,w),T=f.insert(()=>C,":first-child");if(T.attr("class","basic label-container").attr("style",n),f.selectAll(".label").each((E,A,S)=>{let _=Ge(S[A]),I=_.attr("transform"),D=0,k=0;if(I){let M=RegExp(/translate\(([^,]+),([^)]+)\)/).exec(I);M&&(D=parseFloat(M[1]),k=parseFloat(M[2]))}let L=k-y/2,R=v+s/2;(A===0||A===1)&&(R=D),_.attr("transform",`translate(${R}, ${L+s})`)}),p>d+m+l){let E=b.line(v,x+d+m+l,v+g,x+d+m+l,w);f.insert(()=>E).attr("style",n)}return je(e,T),e.intersect=function(E){return Ye.rect(e,E)},f}async function Lu(t,e,r,n=""){if(e==="")return 0;let i=t.insert("g").attr("class","label").attr("style",n),a=me(),s=a.htmlLabels??!0,l=await Hn(i,Xy(na(e)),{width:ra(e,a)+50,classes:"markdown-node-label",useHtmlLabels:s,style:n},a),u;if(s){let h=l.children[0],f=Ge(l);u=h.getBoundingClientRect(),f.attr("width",u.width),f.attr("height",u.height)}else{let h=l.children[0];for(let f of h.children)f.textContent=f.textContent.replaceAll("&gt;",">").replaceAll("&lt;","<"),n&&f.setAttribute("style",n);u=l.getBBox(),u.height+=6}return i.attr("transform",`translate(${-u.width/2},${-u.height/2+r})`),u.height}var VZ=N(()=>{"use strict";Ft();Ht();Ut();Wt();ir();zt();to();dr();o(GZ,"requirementBox");o(Lu,"addText")});async function UZ(t,e,{config:r}){let{labelStyles:n,nodeStyles:i}=Qe(e);e.labelStyle=n||"";let a=10,s=e.width;e.width=(e.width??200)-10;let{shapeSvg:l,bbox:u,label:h}=await pt(t,e,ht(e)),f=e.padding||10,d="",p;"ticket"in e&&e.ticket&&r?.kanban?.ticketBaseUrl&&(d=r?.kanban?.ticketBaseUrl.replace("#TICKET#",e.ticket),p=l.insert("svg:a",":first-child").attr("class","kanban-ticket-link").attr("xlink:href",d).attr("target","_blank"));let m={useHtmlLabels:e.useHtmlLabels,labelStyle:e.labelStyle||"",width:e.width,img:e.img,padding:e.padding||8,centerLabel:!1},g,y;p?{label:g,bbox:y}=await Dw(p,"ticket"in e&&e.ticket||"",m):{label:g,bbox:y}=await Dw(l,"ticket"in e&&e.ticket||"",m);let{label:v,bbox:x}=await Dw(l,"assigned"in e&&e.assigned||"",m);e.width=s;let b=10,w=e?.width||0,C=Math.max(y.height,x.height)/2,T=Math.max(u.height+b*2,e?.height||0)+C,E=-w/2,A=-T/2;h.attr("transform","translate("+(f-w/2)+", "+(-C-u.height/2)+")"),g.attr("transform","translate("+(f-w/2)+", "+(-C+u.height/2)+")"),v.attr("transform","translate("+(f+w/2-x.width-2*a)+", "+(-C+u.height/2)+")");let S,{rx:_,ry:I}=e,{cssStyles:D}=e;if(e.look==="handDrawn"){let k=Xe.svg(l),L=Ke(e,{}),R=_||I?k.path(Na(E,A,w,T,_||0),L):k.rectangle(E,A,w,T,L);S=l.insert(()=>R,":first-child"),S.attr("class","basic label-container").attr("style",D||null)}else{S=l.insert("rect",":first-child"),S.attr("class","basic label-container __APA__").attr("style",i).attr("rx",_??5).attr("ry",I??5).attr("x",E).attr("y",A).attr("width",w).attr("height",T);let k="priority"in e&&e.priority;if(k){let L=l.append("line"),R=E+2,O=A+Math.floor((_??0)/2),M=A+T-Math.floor((_??0)/2);L.attr("x1",R).attr("y1",O).attr("x2",R).attr("y2",M).attr("stroke-width","4").attr("stroke",k_e(k))}}return je(e,S),e.height=T,e.intersect=function(k){return Ye.rect(e,k)},l}var k_e,HZ=N(()=>{"use strict";Ft();Ht();qh();Ut();Wt();k_e=o(t=>{switch(t){case"Very High":return"red";case"High":return"orange";case"Medium":return null;case"Low":return"blue";case"Very Low":return"lightblue"}},"colorFromPriority");o(UZ,"kanbanItem")});function WZ(t){return t in QD}var E_e,S_e,QD,ZD=N(()=>{"use strict";NK();OK();BK();$K();GK();UK();WK();YK();jK();QK();JK();tQ();nQ();aQ();oQ();cQ();hQ();dQ();mQ();yQ();xQ();wQ();kQ();SQ();AQ();DQ();RQ();MQ();OQ();BQ();$Q();GQ();UQ();WQ();YQ();jQ();QQ();JQ();tZ();nZ();aZ();oZ();cZ();hZ();dZ();mZ();yZ();xZ();wZ();kZ();SZ();AZ();DZ();RZ();MZ();OZ();PZ();zZ();VZ();HZ();E_e=[{semanticName:"Process",name:"Rectangle",shortName:"rect",description:"Standard process shape",aliases:["proc","process","rectangle"],internalAliases:["squareRect"],handler:iZ},{semanticName:"Event",name:"Rounded Rectangle",shortName:"rounded",description:"Represents an event",aliases:["event"],internalAliases:["roundedRect"],handler:ZQ},{semanticName:"Terminal Point",name:"Stadium",shortName:"stadium",description:"Terminal point",aliases:["terminal","pill"],handler:sZ},{semanticName:"Subprocess",name:"Framed Rectangle",shortName:"fr-rect",description:"Subprocess",aliases:["subprocess","subproc","framed-rectangle","subroutine"],handler:pZ},{semanticName:"Database",name:"Cylinder",shortName:"cyl",description:"Database storage",aliases:["db","database","cylinder"],handler:ZK},{semanticName:"Start",name:"Circle",shortName:"circle",description:"Starting point",aliases:["circ"],handler:zK},{semanticName:"Decision",name:"Diamond",shortName:"diam",description:"Decision-making step",aliases:["decision","diamond","question"],handler:qQ},{semanticName:"Prepare Conditional",name:"Hexagon",shortName:"hex",description:"Preparation or condition step",aliases:["hexagon","prepare"],handler:fQ},{semanticName:"Data Input/Output",name:"Lean Right",shortName:"lean-r",description:"Represents input or output",aliases:["lean-right","in-out"],internalAliases:["lean_right"],handler:NQ},{semanticName:"Data Input/Output",name:"Lean Left",shortName:"lean-l",description:"Represents output or input",aliases:["lean-left","out-in"],internalAliases:["lean_left"],handler:LQ},{semanticName:"Priority Action",name:"Trapezoid Base Bottom",shortName:"trap-b",description:"Priority action",aliases:["priority","trapezoid-bottom","trapezoid"],handler:EZ},{semanticName:"Manual Operation",name:"Trapezoid Base Top",shortName:"trap-t",description:"Represents a manual task",aliases:["manual","trapezoid-top","inv-trapezoid"],internalAliases:["inv_trapezoid"],handler:CQ},{semanticName:"Stop",name:"Double Circle",shortName:"dbl-circ",description:"Represents a stop point",aliases:["double-circle"],internalAliases:["doublecircle"],handler:rQ},{semanticName:"Text Block",name:"Text Block",shortName:"text",description:"Text block",handler:bZ},{semanticName:"Card",name:"Notched Rectangle",shortName:"notch-rect",description:"Represents a card",aliases:["card","notched-rectangle"],handler:PK},{semanticName:"Lined/Shaded Process",name:"Lined Rectangle",shortName:"lin-rect",description:"Lined process shape",aliases:["lined-rectangle","lined-process","lin-proc","shaded-process"],handler:eZ},{semanticName:"Start",name:"Small Circle",shortName:"sm-circ",description:"Small starting point",aliases:["start","small-circle"],internalAliases:["stateStart"],handler:fZ},{semanticName:"Stop",name:"Framed Circle",shortName:"fr-circ",description:"Stop point",aliases:["stop","framed-circle"],internalAliases:["stateEnd"],handler:uZ},{semanticName:"Fork/Join",name:"Filled Rectangle",shortName:"fork",description:"Fork or join in process flow",aliases:["join"],internalAliases:["forkJoin"],handler:lQ},{semanticName:"Collate",name:"Hourglass",shortName:"hourglass",description:"Represents a collate operation",aliases:["hourglass","collate"],handler:pQ},{semanticName:"Comment",name:"Curly Brace",shortName:"brace",description:"Adds a comment",aliases:["comment","brace-l"],handler:HK},{semanticName:"Comment Right",name:"Curly Brace",shortName:"brace-r",description:"Adds a comment",handler:qK},{semanticName:"Comment with braces on both sides",name:"Curly Braces",shortName:"braces",description:"Adds a comment",handler:XK},{semanticName:"Com Link",name:"Lightning Bolt",shortName:"bolt",description:"Communication link",aliases:["com-link","lightning-bolt"],handler:IQ},{semanticName:"Document",name:"Document",shortName:"doc",description:"Represents a document",aliases:["doc","document"],handler:LZ},{semanticName:"Delay",name:"Half-Rounded Rectangle",shortName:"delay",description:"Represents a delay",aliases:["half-rounded-rectangle"],handler:uQ},{semanticName:"Direct Access Storage",name:"Horizontal Cylinder",shortName:"h-cyl",description:"Direct access storage",aliases:["das","horizontal-cylinder"],handler:TZ},{semanticName:"Disk Storage",name:"Lined Cylinder",shortName:"lin-cyl",description:"Disk storage",aliases:["disk","lined-cylinder"],handler:PQ},{semanticName:"Display",name:"Curved Trapezoid",shortName:"curv-trap",description:"Represents a display",aliases:["curved-trapezoid","display"],handler:KK},{semanticName:"Divided Process",name:"Divided Rectangle",shortName:"div-rect",description:"Divided process shape",aliases:["div-proc","divided-rectangle","divided-process"],handler:eQ},{semanticName:"Extract",name:"Triangle",shortName:"tri",description:"Extraction process",aliases:["extract","triangle"],handler:_Z},{semanticName:"Internal Storage",name:"Window Pane",shortName:"win-pane",description:"Internal storage",aliases:["internal-storage","window-pane"],handler:IZ},{semanticName:"Junction",name:"Filled Circle",shortName:"f-circ",description:"Junction point",aliases:["junction","filled-circle"],handler:iQ},{semanticName:"Loop Limit",name:"Trapezoidal Pentagon",shortName:"notch-pent",description:"Loop limit step",aliases:["loop-limit","notched-pentagon"],handler:CZ},{semanticName:"Manual File",name:"Flipped Triangle",shortName:"flip-tri",description:"Manual file operation",aliases:["manual-file","flipped-triangle"],handler:sQ},{semanticName:"Manual Input",name:"Sloped Rectangle",shortName:"sl-rect",description:"Manual input step",aliases:["manual-input","sloped-rectangle"],handler:rZ},{semanticName:"Multi-Document",name:"Stacked Document",shortName:"docs",description:"Multiple documents",aliases:["documents","st-doc","stacked-document"],handler:VQ},{semanticName:"Multi-Process",name:"Stacked Rectangle",shortName:"st-rect",description:"Multiple processes",aliases:["procs","processes","stacked-rectangle"],handler:zQ},{semanticName:"Stored Data",name:"Bow Tie Rectangle",shortName:"bow-rect",description:"Stored data",aliases:["stored-data","bow-tie-rectangle"],handler:IK},{semanticName:"Summary",name:"Crossed Circle",shortName:"cross-circ",description:"Summary",aliases:["summary","crossed-circle"],handler:VK},{semanticName:"Tagged Document",name:"Tagged Document",shortName:"tag-doc",description:"Tagged document",aliases:["tag-doc","tagged-document"],handler:vZ},{semanticName:"Tagged Process",name:"Tagged Rectangle",shortName:"tag-rect",description:"Tagged process",aliases:["tagged-rectangle","tag-proc","tagged-process"],handler:gZ},{semanticName:"Paper Tape",name:"Flag",shortName:"flag",description:"Paper tape",aliases:["paper-tape"],handler:NZ},{semanticName:"Odd",name:"Odd",shortName:"odd",description:"Odd shape",internalAliases:["rect_left_inv_arrow"],handler:XQ},{semanticName:"Lined Document",name:"Lined Document",shortName:"lin-doc",description:"Lined document",aliases:["lined-document"],handler:FQ}],S_e=o(()=>{let e=[...Object.entries({state:lZ,choice:FK,note:HQ,rectWithTitle:KQ,labelRect:_Q,iconSquare:TQ,iconCircle:vQ,icon:gQ,iconRounded:bQ,imageSquare:EQ,anchor:RK,kanbanItem:UZ,classBox:$Z,erBox:KD,requirementBox:GZ}),...E_e.flatMap(r=>[r.shortName,..."aliases"in r?r.aliases:[],..."internalAliases"in r?r.internalAliases:[]].map(i=>[i,r.handler]))];return Object.fromEntries(e)},"generateShapeMap"),QD=S_e();o(WZ,"isValidShape")});var C_e,Uw,qZ=N(()=>{"use strict";dr();Ew();zt();vt();ZD();ir();gr();mi();C_e="flowchart-",Uw=class{constructor(){this.vertexCounter=0;this.config=me();this.vertices=new Map;this.edges=[];this.classes=new Map;this.subGraphs=[];this.subGraphLookup=new Map;this.tooltips=new Map;this.subCount=0;this.firstGraphFlag=!0;this.secCount=-1;this.posCrossRef=[];this.funs=[];this.setAccTitle=Lr;this.setAccDescription=Nr;this.setDiagramTitle=$r;this.getAccTitle=Rr;this.getAccDescription=Mr;this.getDiagramTitle=Ir;this.funs.push(this.setupToolTips.bind(this)),this.addVertex=this.addVertex.bind(this),this.firstGraph=this.firstGraph.bind(this),this.setDirection=this.setDirection.bind(this),this.addSubGraph=this.addSubGraph.bind(this),this.addLink=this.addLink.bind(this),this.setLink=this.setLink.bind(this),this.updateLink=this.updateLink.bind(this),this.addClass=this.addClass.bind(this),this.setClass=this.setClass.bind(this),this.destructLink=this.destructLink.bind(this),this.setClickEvent=this.setClickEvent.bind(this),this.setTooltip=this.setTooltip.bind(this),this.updateLinkInterpolate=this.updateLinkInterpolate.bind(this),this.setClickFun=this.setClickFun.bind(this),this.bindFunctions=this.bindFunctions.bind(this),this.lex={firstGraph:this.firstGraph.bind(this)},this.clear(),this.setGen("gen-2")}static{o(this,"FlowDB")}sanitizeText(e){return Ze.sanitizeText(e,this.config)}lookUpDomId(e){for(let r of this.vertices.values())if(r.id===e)return r.domId;return e}addVertex(e,r,n,i,a,s,l={},u){if(!e||e.trim().length===0)return;let h;if(u!==void 0){let m;u.includes(`
+`)?m=u+`
+`:m=`{
+`+u+`
+}`,h=cm(m,{schema:lm})}let f=this.edges.find(m=>m.id===e);if(f){let m=h;m?.animate!==void 0&&(f.animate=m.animate),m?.animation!==void 0&&(f.animation=m.animation);return}let d,p=this.vertices.get(e);if(p===void 0&&(p={id:e,labelType:"text",domId:C_e+e+"-"+this.vertexCounter,styles:[],classes:[]},this.vertices.set(e,p)),this.vertexCounter++,r!==void 0?(this.config=me(),d=this.sanitizeText(r.text.trim()),p.labelType=r.type,d.startsWith('"')&&d.endsWith('"')&&(d=d.substring(1,d.length-1)),p.text=d):p.text===void 0&&(p.text=e),n!==void 0&&(p.type=n),i?.forEach(m=>{p.styles.push(m)}),a?.forEach(m=>{p.classes.push(m)}),s!==void 0&&(p.dir=s),p.props===void 0?p.props=l:l!==void 0&&Object.assign(p.props,l),h!==void 0){if(h.shape){if(h.shape!==h.shape.toLowerCase()||h.shape.includes("_"))throw new Error(`No such shape: ${h.shape}. Shape names should be lowercase.`);if(!WZ(h.shape))throw new Error(`No such shape: ${h.shape}.`);p.type=h?.shape}h?.label&&(p.text=h?.label),h?.icon&&(p.icon=h?.icon,!h.label?.trim()&&p.text===e&&(p.text="")),h?.form&&(p.form=h?.form),h?.pos&&(p.pos=h?.pos),h?.img&&(p.img=h?.img,!h.label?.trim()&&p.text===e&&(p.text="")),h?.constraint&&(p.constraint=h.constraint),h.w&&(p.assetWidth=Number(h.w)),h.h&&(p.assetHeight=Number(h.h))}}addSingleLink(e,r,n,i){let l={start:e,end:r,type:void 0,text:"",labelType:"text",classes:[],isUserDefinedId:!1,interpolate:this.edges.defaultInterpolate};Y.info("abc78 Got edge...",l);let u=n.text;if(u!==void 0&&(l.text=this.sanitizeText(u.text.trim()),l.text.startsWith('"')&&l.text.endsWith('"')&&(l.text=l.text.substring(1,l.text.length-1)),l.labelType=u.type),n!==void 0&&(l.type=n.type,l.stroke=n.stroke,l.length=n.length>10?10:n.length),i&&!this.edges.some(h=>h.id===i))l.id=i,l.isUserDefinedId=!0;else{let h=this.edges.filter(f=>f.start===l.start&&f.end===l.end);h.length===0?l.id=$h(l.start,l.end,{counter:0,prefix:"L"}):l.id=$h(l.start,l.end,{counter:h.length+1,prefix:"L"})}if(this.edges.length<(this.config.maxEdges??500))Y.info("Pushing edge..."),this.edges.push(l);else throw new Error(`Edge limit exceeded. ${this.edges.length} edges found, but the limit is ${this.config.maxEdges}.
+
+Initialize mermaid with maxEdges set to a higher number to allow more edges.
+You cannot set this config via configuration inside the diagram as it is a secure config.
+You have to call mermaid.initialize.`)}isLinkData(e){return e!==null&&typeof e=="object"&&"id"in e&&typeof e.id=="string"}addLink(e,r,n){let i=this.isLinkData(n)?n.id.replace("@",""):void 0;Y.info("addLink",e,r,i);for(let a of e)for(let s of r){let l=a===e[e.length-1],u=s===r[0];l&&u?this.addSingleLink(a,s,n,i):this.addSingleLink(a,s,n,void 0)}}updateLinkInterpolate(e,r){e.forEach(n=>{n==="default"?this.edges.defaultInterpolate=r:this.edges[n].interpolate=r})}updateLink(e,r){e.forEach(n=>{if(typeof n=="number"&&n>=this.edges.length)throw new Error(`The index ${n} for linkStyle is out of bounds. Valid indices for linkStyle are between 0 and ${this.edges.length-1}. (Help: Ensure that the index is within the range of existing edges.)`);n==="default"?this.edges.defaultStyle=r:(this.edges[n].style=r,(this.edges[n]?.style?.length??0)>0&&!this.edges[n]?.style?.some(i=>i?.startsWith("fill"))&&this.edges[n]?.style?.push("fill:none"))})}addClass(e,r){let n=r.join().replace(/\\,/g,"\xA7\xA7\xA7").replace(/,/g,";").replace(/§§§/g,",").split(";");e.split(",").forEach(i=>{let a=this.classes.get(i);a===void 0&&(a={id:i,styles:[],textStyles:[]},this.classes.set(i,a)),n?.forEach(s=>{if(/color/.exec(s)){let l=s.replace("fill","bgFill");a.textStyles.push(l)}a.styles.push(s)})})}setDirection(e){this.direction=e,/.*</.exec(this.direction)&&(this.direction="RL"),/.*\^/.exec(this.direction)&&(this.direction="BT"),/.*>/.exec(this.direction)&&(this.direction="LR"),/.*v/.exec(this.direction)&&(this.direction="TB"),this.direction==="TD"&&(this.direction="TB")}setClass(e,r){for(let n of e.split(",")){let i=this.vertices.get(n);i&&i.classes.push(r);let a=this.edges.find(l=>l.id===n);a&&a.classes.push(r);let s=this.subGraphLookup.get(n);s&&s.classes.push(r)}}setTooltip(e,r){if(r!==void 0){r=this.sanitizeText(r);for(let n of e.split(","))this.tooltips.set(this.version==="gen-1"?this.lookUpDomId(n):n,r)}}setClickFun(e,r,n){let i=this.lookUpDomId(e);if(me().securityLevel!=="loose"||r===void 0)return;let a=[];if(typeof n=="string"){a=n.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let l=0;l<a.length;l++){let u=a[l].trim();u.startsWith('"')&&u.endsWith('"')&&(u=u.substr(1,u.length-2)),a[l]=u}}a.length===0&&a.push(e);let s=this.vertices.get(e);s&&(s.haveCallback=!0,this.funs.push(()=>{let l=document.querySelector(`[id="${i}"]`);l!==null&&l.addEventListener("click",()=>{Gt.runFunc(r,...a)},!1)}))}setLink(e,r,n){e.split(",").forEach(i=>{let a=this.vertices.get(i);a!==void 0&&(a.link=Gt.formatUrl(r,this.config),a.linkTarget=n)}),this.setClass(e,"clickable")}getTooltip(e){return this.tooltips.get(e)}setClickEvent(e,r,n){e.split(",").forEach(i=>{this.setClickFun(i,r,n)}),this.setClass(e,"clickable")}bindFunctions(e){this.funs.forEach(r=>{r(e)})}getDirection(){return this.direction?.trim()}getVertices(){return this.vertices}getEdges(){return this.edges}getClasses(){return this.classes}setupToolTips(e){let r=Ge(".mermaidTooltip");(r._groups||r)[0][0]===null&&(r=Ge("body").append("div").attr("class","mermaidTooltip").style("opacity",0)),Ge(e).select("svg").selectAll("g.node").on("mouseover",a=>{let s=Ge(a.currentTarget);if(s.attr("title")===null)return;let u=a.currentTarget?.getBoundingClientRect();r.transition().duration(200).style("opacity",".9"),r.text(s.attr("title")).style("left",window.scrollX+u.left+(u.right-u.left)/2+"px").style("top",window.scrollY+u.bottom+"px"),r.html(r.html().replace(/&lt;br\/&gt;/g,"<br/>")),s.classed("hover",!0)}).on("mouseout",a=>{r.transition().duration(500).style("opacity",0),Ge(a.currentTarget).classed("hover",!1)})}clear(e="gen-2"){this.vertices=new Map,this.classes=new Map,this.edges=[],this.funs=[this.setupToolTips.bind(this)],this.subGraphs=[],this.subGraphLookup=new Map,this.subCount=0,this.tooltips=new Map,this.firstGraphFlag=!0,this.version=e,this.config=me(),Ar()}setGen(e){this.version=e||"gen-2"}defaultStyle(){return"fill:#ffa;stroke: #f66; stroke-width: 3px; stroke-dasharray: 5, 5;fill:#ffa;stroke: #666;"}addSubGraph(e,r,n){let i=e.text.trim(),a=n.text;e===n&&/\s/.exec(n.text)&&(i=void 0);let s=o(f=>{let d={boolean:{},number:{},string:{}},p=[],m;return{nodeList:f.filter(function(y){let v=typeof y;return y.stmt&&y.stmt==="dir"?(m=y.value,!1):y.trim()===""?!1:v in d?d[v].hasOwnProperty(y)?!1:d[v][y]=!0:p.includes(y)?!1:p.push(y)}),dir:m}},"uniq"),{nodeList:l,dir:u}=s(r.flat());if(this.version==="gen-1")for(let f=0;f<l.length;f++)l[f]=this.lookUpDomId(l[f]);i=i??"subGraph"+this.subCount,a=a||"",a=this.sanitizeText(a),this.subCount=this.subCount+1;let h={id:i,nodes:l,title:a.trim(),classes:[],dir:u,labelType:n.type};return Y.info("Adding",h.id,h.nodes,h.dir),h.nodes=this.makeUniq(h,this.subGraphs).nodes,this.subGraphs.push(h),this.subGraphLookup.set(i,h),i}getPosForId(e){for(let[r,n]of this.subGraphs.entries())if(n.id===e)return r;return-1}indexNodes2(e,r){let n=this.subGraphs[r].nodes;if(this.secCount=this.secCount+1,this.secCount>2e3)return{result:!1,count:0};if(this.posCrossRef[this.secCount]=r,this.subGraphs[r].id===e)return{result:!0,count:0};let i=0,a=1;for(;i<n.length;){let s=this.getPosForId(n[i]);if(s>=0){let l=this.indexNodes2(e,s);if(l.result)return{result:!0,count:a+l.count};a=a+l.count}i=i+1}return{result:!1,count:a}}getDepthFirstPos(e){return this.posCrossRef[e]}indexNodes(){this.secCount=-1,this.subGraphs.length>0&&this.indexNodes2("none",this.subGraphs.length-1)}getSubGraphs(){return this.subGraphs}firstGraph(){return this.firstGraphFlag?(this.firstGraphFlag=!1,!0):!1}destructStartLink(e){let r=e.trim(),n="arrow_open";switch(r[0]){case"<":n="arrow_point",r=r.slice(1);break;case"x":n="arrow_cross",r=r.slice(1);break;case"o":n="arrow_circle",r=r.slice(1);break}let i="normal";return r.includes("=")&&(i="thick"),r.includes(".")&&(i="dotted"),{type:n,stroke:i}}countChar(e,r){let n=r.length,i=0;for(let a=0;a<n;++a)r[a]===e&&++i;return i}destructEndLink(e){let r=e.trim(),n=r.slice(0,-1),i="arrow_open";switch(r.slice(-1)){case"x":i="arrow_cross",r.startsWith("x")&&(i="double_"+i,n=n.slice(1));break;case">":i="arrow_point",r.startsWith("<")&&(i="double_"+i,n=n.slice(1));break;case"o":i="arrow_circle",r.startsWith("o")&&(i="double_"+i,n=n.slice(1));break}let a="normal",s=n.length-1;n.startsWith("=")&&(a="thick"),n.startsWith("~")&&(a="invisible");let l=this.countChar(".",n);return l&&(a="dotted",s=l),{type:i,stroke:a,length:s}}destructLink(e,r){let n=this.destructEndLink(e),i;if(r){if(i=this.destructStartLink(r),i.stroke!==n.stroke)return{type:"INVALID",stroke:"INVALID"};if(i.type==="arrow_open")i.type=n.type;else{if(i.type!==n.type)return{type:"INVALID",stroke:"INVALID"};i.type="double_"+i.type}return i.type==="double_arrow"&&(i.type="double_arrow_point"),i.length=n.length,i}return n}exists(e,r){for(let n of e)if(n.nodes.includes(r))return!0;return!1}makeUniq(e,r){let n=[];return e.nodes.forEach((i,a)=>{this.exists(r,i)||n.push(e.nodes[a])}),{nodes:n}}getTypeFromVertex(e){if(e.img)return"imageSquare";if(e.icon)return e.form==="circle"?"iconCircle":e.form==="square"?"iconSquare":e.form==="rounded"?"iconRounded":"icon";switch(e.type){case"square":case void 0:return"squareRect";case"round":return"roundedRect";case"ellipse":return"ellipse";default:return e.type}}findNode(e,r){return e.find(n=>n.id===r)}destructEdgeType(e){let r="none",n="arrow_point";switch(e){case"arrow_point":case"arrow_circle":case"arrow_cross":n=e;break;case"double_arrow_point":case"double_arrow_circle":case"double_arrow_cross":r=e.replace("double_",""),n=r;break}return{arrowTypeStart:r,arrowTypeEnd:n}}addNodeFromVertex(e,r,n,i,a,s){let l=n.get(e.id),u=i.get(e.id)??!1,h=this.findNode(r,e.id);if(h)h.cssStyles=e.styles,h.cssCompiledStyles=this.getCompiledStyles(e.classes),h.cssClasses=e.classes.join(" ");else{let f={id:e.id,label:e.text,labelStyle:"",parentId:l,padding:a.flowchart?.padding||8,cssStyles:e.styles,cssCompiledStyles:this.getCompiledStyles(["default","node",...e.classes]),cssClasses:"default "+e.classes.join(" "),dir:e.dir,domId:e.domId,look:s,link:e.link,linkTarget:e.linkTarget,tooltip:this.getTooltip(e.id),icon:e.icon,pos:e.pos,img:e.img,assetWidth:e.assetWidth,assetHeight:e.assetHeight,constraint:e.constraint};u?r.push({...f,isGroup:!0,shape:"rect"}):r.push({...f,isGroup:!1,shape:this.getTypeFromVertex(e)})}}getCompiledStyles(e){let r=[];for(let n of e){let i=this.classes.get(n);i?.styles&&(r=[...r,...i.styles??[]].map(a=>a.trim())),i?.textStyles&&(r=[...r,...i.textStyles??[]].map(a=>a.trim()))}return r}getData(){let e=me(),r=[],n=[],i=this.getSubGraphs(),a=new Map,s=new Map;for(let h=i.length-1;h>=0;h--){let f=i[h];f.nodes.length>0&&s.set(f.id,!0);for(let d of f.nodes)a.set(d,f.id)}for(let h=i.length-1;h>=0;h--){let f=i[h];r.push({id:f.id,label:f.title,labelStyle:"",parentId:a.get(f.id),padding:8,cssCompiledStyles:this.getCompiledStyles(f.classes),cssClasses:f.classes.join(" "),shape:"rect",dir:f.dir,isGroup:!0,look:e.look})}this.getVertices().forEach(h=>{this.addNodeFromVertex(h,r,a,s,e,e.look||"classic")});let u=this.getEdges();return u.forEach((h,f)=>{let{arrowTypeStart:d,arrowTypeEnd:p}=this.destructEdgeType(h.type),m=[...u.defaultStyle??[]];h.style&&m.push(...h.style);let g={id:$h(h.start,h.end,{counter:f,prefix:"L"},h.id),isUserDefinedId:h.isUserDefinedId,start:h.start,end:h.end,type:h.type??"normal",label:h.text,labelpos:"c",thickness:h.stroke,minlen:h.length,classes:h?.stroke==="invisible"?"":"edge-thickness-normal edge-pattern-solid flowchart-link",arrowTypeStart:h?.stroke==="invisible"||h?.type==="arrow_open"?"none":d,arrowTypeEnd:h?.stroke==="invisible"||h?.type==="arrow_open"?"none":p,arrowheadStyle:"fill: #333",cssCompiledStyles:this.getCompiledStyles(h.classes),labelStyle:m,style:m,pattern:h.stroke,look:e.look,animate:h.animate,animation:h.animation,curve:h.interpolate||this.edges.defaultInterpolate||e.flowchart?.curve};n.push(g)}),{nodes:r,edges:n,other:{},config:e}}defaultConfig(){return A3.flowchart}}});var yc,gm=N(()=>{"use strict";dr();yc=o((t,e)=>{let r;return e==="sandbox"&&(r=Ge("#i"+t)),(e==="sandbox"?Ge(r.nodes()[0].contentDocument.body):Ge("body")).select(`[id="${t}"]`)},"getDiagramElement")});var Ru,w2=N(()=>{"use strict";Ru=o(({flowchart:t})=>{let e=t?.subGraphTitleMargin?.top??0,r=t?.subGraphTitleMargin?.bottom??0,n=e+r;return{subGraphTitleTopMargin:e,subGraphTitleBottomMargin:r,subGraphTitleTotalMargin:n}},"getSubGraphTitleMargins")});var YZ,A_e,__e,D_e,L_e,R_e,N_e,XZ,ym,jZ,Hw=N(()=>{"use strict";zt();gr();vt();w2();dr();Wt();to();RD();Gw();qh();Ut();YZ=o(async(t,e)=>{Y.info("Creating subgraph rect for ",e.id,e);let r=me(),{themeVariables:n,handDrawnSeed:i}=r,{clusterBkg:a,clusterBorder:s}=n,{labelStyles:l,nodeStyles:u,borderStyles:h,backgroundStyles:f}=Qe(e),d=t.insert("g").attr("class","cluster "+e.cssClasses).attr("id",e.id).attr("data-look",e.look),p=fr(r.flowchart.htmlLabels),m=d.insert("g").attr("class","cluster-label "),g=await Hn(m,e.label,{style:e.labelStyle,useHtmlLabels:p,isNode:!0}),y=g.getBBox();if(fr(r.flowchart.htmlLabels)){let A=g.children[0],S=Ge(g);y=A.getBoundingClientRect(),S.attr("width",y.width),S.attr("height",y.height)}let v=e.width<=y.width+e.padding?y.width+e.padding:e.width;e.width<=y.width+e.padding?e.diff=(v-e.width)/2-e.padding:e.diff=-e.padding;let x=e.height,b=e.x-v/2,w=e.y-x/2;Y.trace("Data ",e,JSON.stringify(e));let C;if(e.look==="handDrawn"){let A=Xe.svg(d),S=Ke(e,{roughness:.7,fill:a,stroke:s,fillWeight:3,seed:i}),_=A.path(Na(b,w,v,x,0),S);C=d.insert(()=>(Y.debug("Rough node insert CXC",_),_),":first-child"),C.select("path:nth-child(2)").attr("style",h.join(";")),C.select("path").attr("style",f.join(";").replace("fill","stroke"))}else C=d.insert("rect",":first-child"),C.attr("style",u).attr("rx",e.rx).attr("ry",e.ry).attr("x",b).attr("y",w).attr("width",v).attr("height",x);let{subGraphTitleTopMargin:T}=Ru(r);if(m.attr("transform",`translate(${e.x-y.width/2}, ${e.y-e.height/2+T})`),l){let A=m.select("span");A&&A.attr("style",l)}let E=C.node().getBBox();return e.offsetX=0,e.width=E.width,e.height=E.height,e.offsetY=y.height-e.padding/2,e.intersect=function(A){return Vh(e,A)},{cluster:d,labelBBox:y}},"rect"),A_e=o((t,e)=>{let r=t.insert("g").attr("class","note-cluster").attr("id",e.id),n=r.insert("rect",":first-child"),i=0*e.padding,a=i/2;n.attr("rx",e.rx).attr("ry",e.ry).attr("x",e.x-e.width/2-a).attr("y",e.y-e.height/2-a).attr("width",e.width+i).attr("height",e.height+i).attr("fill","none");let s=n.node().getBBox();return e.width=s.width,e.height=s.height,e.intersect=function(l){return Vh(e,l)},{cluster:r,labelBBox:{width:0,height:0}}},"noteGroup"),__e=o(async(t,e)=>{let r=me(),{themeVariables:n,handDrawnSeed:i}=r,{altBackground:a,compositeBackground:s,compositeTitleBackground:l,nodeBorder:u}=n,h=t.insert("g").attr("class",e.cssClasses).attr("id",e.id).attr("data-id",e.id).attr("data-look",e.look),f=h.insert("g",":first-child"),d=h.insert("g").attr("class","cluster-label"),p=h.append("rect"),m=d.node().appendChild(await gc(e.label,e.labelStyle,void 0,!0)),g=m.getBBox();if(fr(r.flowchart.htmlLabels)){let _=m.children[0],I=Ge(m);g=_.getBoundingClientRect(),I.attr("width",g.width),I.attr("height",g.height)}let y=0*e.padding,v=y/2,x=(e.width<=g.width+e.padding?g.width+e.padding:e.width)+y;e.width<=g.width+e.padding?e.diff=(x-e.width)/2-e.padding:e.diff=-e.padding;let b=e.height+y,w=e.height+y-g.height-6,C=e.x-x/2,T=e.y-b/2;e.width=x;let E=e.y-e.height/2-v+g.height+2,A;if(e.look==="handDrawn"){let _=e.cssClasses.includes("statediagram-cluster-alt"),I=Xe.svg(h),D=e.rx||e.ry?I.path(Na(C,T,x,b,10),{roughness:.7,fill:l,fillStyle:"solid",stroke:u,seed:i}):I.rectangle(C,T,x,b,{seed:i});A=h.insert(()=>D,":first-child");let k=I.rectangle(C,E,x,w,{fill:_?a:s,fillStyle:_?"hachure":"solid",stroke:u,seed:i});A=h.insert(()=>D,":first-child"),p=h.insert(()=>k)}else A=f.insert("rect",":first-child"),A.attr("class","outer").attr("x",C).attr("y",T).attr("width",x).attr("height",b).attr("data-look",e.look),p.attr("class","inner").attr("x",C).attr("y",E).attr("width",x).attr("height",w);d.attr("transform",`translate(${e.x-g.width/2}, ${T+1-(fr(r.flowchart.htmlLabels)?0:3)})`);let S=A.node().getBBox();return e.height=S.height,e.offsetX=0,e.offsetY=g.height-e.padding/2,e.labelBBox=g,e.intersect=function(_){return Vh(e,_)},{cluster:h,labelBBox:g}},"roundedWithTitle"),D_e=o(async(t,e)=>{Y.info("Creating subgraph rect for ",e.id,e);let r=me(),{themeVariables:n,handDrawnSeed:i}=r,{clusterBkg:a,clusterBorder:s}=n,{labelStyles:l,nodeStyles:u,borderStyles:h,backgroundStyles:f}=Qe(e),d=t.insert("g").attr("class","cluster "+e.cssClasses).attr("id",e.id).attr("data-look",e.look),p=fr(r.flowchart.htmlLabels),m=d.insert("g").attr("class","cluster-label "),g=await Hn(m,e.label,{style:e.labelStyle,useHtmlLabels:p,isNode:!0,width:e.width}),y=g.getBBox();if(fr(r.flowchart.htmlLabels)){let A=g.children[0],S=Ge(g);y=A.getBoundingClientRect(),S.attr("width",y.width),S.attr("height",y.height)}let v=e.width<=y.width+e.padding?y.width+e.padding:e.width;e.width<=y.width+e.padding?e.diff=(v-e.width)/2-e.padding:e.diff=-e.padding;let x=e.height,b=e.x-v/2,w=e.y-x/2;Y.trace("Data ",e,JSON.stringify(e));let C;if(e.look==="handDrawn"){let A=Xe.svg(d),S=Ke(e,{roughness:.7,fill:a,stroke:s,fillWeight:4,seed:i}),_=A.path(Na(b,w,v,x,e.rx),S);C=d.insert(()=>(Y.debug("Rough node insert CXC",_),_),":first-child"),C.select("path:nth-child(2)").attr("style",h.join(";")),C.select("path").attr("style",f.join(";").replace("fill","stroke"))}else C=d.insert("rect",":first-child"),C.attr("style",u).attr("rx",e.rx).attr("ry",e.ry).attr("x",b).attr("y",w).attr("width",v).attr("height",x);let{subGraphTitleTopMargin:T}=Ru(r);if(m.attr("transform",`translate(${e.x-y.width/2}, ${e.y-e.height/2+T})`),l){let A=m.select("span");A&&A.attr("style",l)}let E=C.node().getBBox();return e.offsetX=0,e.width=E.width,e.height=E.height,e.offsetY=y.height-e.padding/2,e.intersect=function(A){return Vh(e,A)},{cluster:d,labelBBox:y}},"kanbanSection"),L_e=o((t,e)=>{let r=me(),{themeVariables:n,handDrawnSeed:i}=r,{nodeBorder:a}=n,s=t.insert("g").attr("class",e.cssClasses).attr("id",e.id).attr("data-look",e.look),l=s.insert("g",":first-child"),u=0*e.padding,h=e.width+u;e.diff=-e.padding;let f=e.height+u,d=e.x-h/2,p=e.y-f/2;e.width=h;let m;if(e.look==="handDrawn"){let v=Xe.svg(s).rectangle(d,p,h,f,{fill:"lightgrey",roughness:.5,strokeLineDash:[5],stroke:a,seed:i});m=s.insert(()=>v,":first-child")}else m=l.insert("rect",":first-child"),m.attr("class","divider").attr("x",d).attr("y",p).attr("width",h).attr("height",f).attr("data-look",e.look);let g=m.node().getBBox();return e.height=g.height,e.offsetX=0,e.offsetY=0,e.intersect=function(y){return Vh(e,y)},{cluster:s,labelBBox:{}}},"divider"),R_e=YZ,N_e={rect:YZ,squareRect:R_e,roundedWithTitle:__e,noteGroup:A_e,divider:L_e,kanbanSection:D_e},XZ=new Map,ym=o(async(t,e)=>{let r=e.shape||"rect",n=await N_e[r](t,e);return XZ.set(e.id,n),n},"insertCluster"),jZ=o(()=>{XZ=new Map},"clear")});function Ww(t,e){if(t===void 0||e===void 0)return{angle:0,deltaX:0,deltaY:0};t=Wn(t),e=Wn(e);let[r,n]=[t.x,t.y],[i,a]=[e.x,e.y],s=i-r,l=a-n;return{angle:Math.atan(l/s),deltaX:s,deltaY:l}}var $o,Wn,qw,JD=N(()=>{"use strict";$o={aggregation:18,extension:18,composition:18,dependency:6,lollipop:13.5,arrow_point:4};o(Ww,"calculateDeltaAndAngle");Wn=o(t=>Array.isArray(t)?{x:t[0],y:t[1]}:t,"pointTransformer"),qw=o(t=>({x:o(function(e,r,n){let i=0,a=Wn(n[0]).x<Wn(n[n.length-1]).x?"left":"right";if(r===0&&Object.hasOwn($o,t.arrowTypeStart)){let{angle:m,deltaX:g}=Ww(n[0],n[1]);i=$o[t.arrowTypeStart]*Math.cos(m)*(g>=0?1:-1)}else if(r===n.length-1&&Object.hasOwn($o,t.arrowTypeEnd)){let{angle:m,deltaX:g}=Ww(n[n.length-1],n[n.length-2]);i=$o[t.arrowTypeEnd]*Math.cos(m)*(g>=0?1:-1)}let s=Math.abs(Wn(e).x-Wn(n[n.length-1]).x),l=Math.abs(Wn(e).y-Wn(n[n.length-1]).y),u=Math.abs(Wn(e).x-Wn(n[0]).x),h=Math.abs(Wn(e).y-Wn(n[0]).y),f=$o[t.arrowTypeStart],d=$o[t.arrowTypeEnd],p=1;if(s<d&&s>0&&l<d){let m=d+p-s;m*=a==="right"?-1:1,i-=m}if(u<f&&u>0&&h<f){let m=f+p-u;m*=a==="right"?-1:1,i+=m}return Wn(e).x+i},"x"),y:o(function(e,r,n){let i=0,a=Wn(n[0]).y<Wn(n[n.length-1]).y?"down":"up";if(r===0&&Object.hasOwn($o,t.arrowTypeStart)){let{angle:m,deltaY:g}=Ww(n[0],n[1]);i=$o[t.arrowTypeStart]*Math.abs(Math.sin(m))*(g>=0?1:-1)}else if(r===n.length-1&&Object.hasOwn($o,t.arrowTypeEnd)){let{angle:m,deltaY:g}=Ww(n[n.length-1],n[n.length-2]);i=$o[t.arrowTypeEnd]*Math.abs(Math.sin(m))*(g>=0?1:-1)}let s=Math.abs(Wn(e).y-Wn(n[n.length-1]).y),l=Math.abs(Wn(e).x-Wn(n[n.length-1]).x),u=Math.abs(Wn(e).y-Wn(n[0]).y),h=Math.abs(Wn(e).x-Wn(n[0]).x),f=$o[t.arrowTypeStart],d=$o[t.arrowTypeEnd],p=1;if(s<d&&s>0&&l<d){let m=d+p-s;m*=a==="up"?-1:1,i-=m}if(u<f&&u>0&&h<f){let m=f+p-u;m*=a==="up"?-1:1,i+=m}return Wn(e).y+i},"y")}),"getLineFunctionsWithOffset")});var QZ,M_e,KZ,ZZ=N(()=>{"use strict";vt();QZ=o((t,e,r,n,i,a)=>{e.arrowTypeStart&&KZ(t,"start",e.arrowTypeStart,r,n,i,a),e.arrowTypeEnd&&KZ(t,"end",e.arrowTypeEnd,r,n,i,a)},"addEdgeMarkers"),M_e={arrow_cross:{type:"cross",fill:!1},arrow_point:{type:"point",fill:!0},arrow_barb:{type:"barb",fill:!0},arrow_circle:{type:"circle",fill:!1},aggregation:{type:"aggregation",fill:!1},extension:{type:"extension",fill:!1},composition:{type:"composition",fill:!0},dependency:{type:"dependency",fill:!0},lollipop:{type:"lollipop",fill:!1},only_one:{type:"onlyOne",fill:!1},zero_or_one:{type:"zeroOrOne",fill:!1},one_or_more:{type:"oneOrMore",fill:!1},zero_or_more:{type:"zeroOrMore",fill:!1},requirement_arrow:{type:"requirement_arrow",fill:!1},requirement_contains:{type:"requirement_contains",fill:!1}},KZ=o((t,e,r,n,i,a,s)=>{let l=M_e[r];if(!l){Y.warn(`Unknown arrow type: ${r}`);return}let u=l.type,f=`${i}_${a}-${u}${e==="start"?"Start":"End"}`;if(s&&s.trim()!==""){let d=s.replace(/[^\dA-Za-z]/g,"_"),p=`${f}_${d}`;if(!document.getElementById(p)){let m=document.getElementById(f);if(m){let g=m.cloneNode(!0);g.id=p,g.querySelectorAll("path, circle, line").forEach(v=>{v.setAttribute("stroke",s),l.fill&&v.setAttribute("fill",s)}),m.parentNode?.appendChild(g)}}t.attr(`marker-${e}`,`url(${n}#${p})`)}else t.attr(`marker-${e}`,`url(${n}#${f})`)},"addEdgeMarker")});function Yw(t,e){me().flowchart.htmlLabels&&t&&(t.style.width=e.length*9+"px",t.style.height="12px")}function P_e(t){let e=[],r=[];for(let n=1;n<t.length-1;n++){let i=t[n-1],a=t[n],s=t[n+1];(i.x===a.x&&a.y===s.y&&Math.abs(a.x-s.x)>5&&Math.abs(a.y-i.y)>5||i.y===a.y&&a.x===s.x&&Math.abs(a.x-i.x)>5&&Math.abs(a.y-s.y)>5)&&(e.push(a),r.push(n))}return{cornerPoints:e,cornerPointPositions:r}}var Xw,pa,tJ,T2,jw,Kw,I_e,O_e,JZ,eJ,B_e,Qw,eL=N(()=>{"use strict";zt();gr();vt();to();ir();JD();w2();dr();Wt();Gw();ZZ();Ut();Xw=new Map,pa=new Map,tJ=o(()=>{Xw.clear(),pa.clear()},"clear"),T2=o(t=>t?t.reduce((r,n)=>r+";"+n,""):"","getLabelStyles"),jw=o(async(t,e)=>{let r=fr(me().flowchart.htmlLabels),n=await Hn(t,e.label,{style:T2(e.labelStyle),useHtmlLabels:r,addSvgBackground:!0,isNode:!1});Y.info("abc82",e,e.labelType);let i=t.insert("g").attr("class","edgeLabel"),a=i.insert("g").attr("class","label");a.node().appendChild(n);let s=n.getBBox();if(r){let u=n.children[0],h=Ge(n);s=u.getBoundingClientRect(),h.attr("width",s.width),h.attr("height",s.height)}a.attr("transform","translate("+-s.width/2+", "+-s.height/2+")"),Xw.set(e.id,i),e.width=s.width,e.height=s.height;let l;if(e.startLabelLeft){let u=await gc(e.startLabelLeft,T2(e.labelStyle)),h=t.insert("g").attr("class","edgeTerminals"),f=h.insert("g").attr("class","inner");l=f.node().appendChild(u);let d=u.getBBox();f.attr("transform","translate("+-d.width/2+", "+-d.height/2+")"),pa.get(e.id)||pa.set(e.id,{}),pa.get(e.id).startLeft=h,Yw(l,e.startLabelLeft)}if(e.startLabelRight){let u=await gc(e.startLabelRight,T2(e.labelStyle)),h=t.insert("g").attr("class","edgeTerminals"),f=h.insert("g").attr("class","inner");l=h.node().appendChild(u),f.node().appendChild(u);let d=u.getBBox();f.attr("transform","translate("+-d.width/2+", "+-d.height/2+")"),pa.get(e.id)||pa.set(e.id,{}),pa.get(e.id).startRight=h,Yw(l,e.startLabelRight)}if(e.endLabelLeft){let u=await gc(e.endLabelLeft,T2(e.labelStyle)),h=t.insert("g").attr("class","edgeTerminals"),f=h.insert("g").attr("class","inner");l=f.node().appendChild(u);let d=u.getBBox();f.attr("transform","translate("+-d.width/2+", "+-d.height/2+")"),h.node().appendChild(u),pa.get(e.id)||pa.set(e.id,{}),pa.get(e.id).endLeft=h,Yw(l,e.endLabelLeft)}if(e.endLabelRight){let u=await gc(e.endLabelRight,T2(e.labelStyle)),h=t.insert("g").attr("class","edgeTerminals"),f=h.insert("g").attr("class","inner");l=f.node().appendChild(u);let d=u.getBBox();f.attr("transform","translate("+-d.width/2+", "+-d.height/2+")"),h.node().appendChild(u),pa.get(e.id)||pa.set(e.id,{}),pa.get(e.id).endRight=h,Yw(l,e.endLabelRight)}return n},"insertEdgeLabel");o(Yw,"setTerminalWidth");Kw=o((t,e)=>{Y.debug("Moving label abc88 ",t.id,t.label,Xw.get(t.id),e);let r=e.updatedPath?e.updatedPath:e.originalPath,n=me(),{subGraphTitleTotalMargin:i}=Ru(n);if(t.label){let a=Xw.get(t.id),s=t.x,l=t.y;if(r){let u=Gt.calcLabelPosition(r);Y.debug("Moving label "+t.label+" from (",s,",",l,") to (",u.x,",",u.y,") abc88"),e.updatedPath&&(s=u.x,l=u.y)}a.attr("transform",`translate(${s}, ${l+i/2})`)}if(t.startLabelLeft){let a=pa.get(t.id).startLeft,s=t.x,l=t.y;if(r){let u=Gt.calcTerminalLabelPosition(t.arrowTypeStart?10:0,"start_left",r);s=u.x,l=u.y}a.attr("transform",`translate(${s}, ${l})`)}if(t.startLabelRight){let a=pa.get(t.id).startRight,s=t.x,l=t.y;if(r){let u=Gt.calcTerminalLabelPosition(t.arrowTypeStart?10:0,"start_right",r);s=u.x,l=u.y}a.attr("transform",`translate(${s}, ${l})`)}if(t.endLabelLeft){let a=pa.get(t.id).endLeft,s=t.x,l=t.y;if(r){let u=Gt.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,"end_left",r);s=u.x,l=u.y}a.attr("transform",`translate(${s}, ${l})`)}if(t.endLabelRight){let a=pa.get(t.id).endRight,s=t.x,l=t.y;if(r){let u=Gt.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,"end_right",r);s=u.x,l=u.y}a.attr("transform",`translate(${s}, ${l})`)}},"positionEdgeLabel"),I_e=o((t,e)=>{let r=t.x,n=t.y,i=Math.abs(e.x-r),a=Math.abs(e.y-n),s=t.width/2,l=t.height/2;return i>=s||a>=l},"outsideNode"),O_e=o((t,e,r)=>{Y.debug(`intersection calc abc89:
+  outsidePoint: ${JSON.stringify(e)}
+  insidePoint : ${JSON.stringify(r)}
+  node        : x:${t.x} y:${t.y} w:${t.width} h:${t.height}`);let n=t.x,i=t.y,a=Math.abs(n-r.x),s=t.width/2,l=r.x<e.x?s-a:s+a,u=t.height/2,h=Math.abs(e.y-r.y),f=Math.abs(e.x-r.x);if(Math.abs(i-e.y)*s>Math.abs(n-e.x)*u){let d=r.y<e.y?e.y-u-i:i-u-e.y;l=f*d/h;let p={x:r.x<e.x?r.x+l:r.x-f+l,y:r.y<e.y?r.y+h-d:r.y-h+d};return l===0&&(p.x=e.x,p.y=e.y),f===0&&(p.x=e.x),h===0&&(p.y=e.y),Y.debug(`abc89 top/bottom calc, Q ${h}, q ${d}, R ${f}, r ${l}`,p),p}else{r.x<e.x?l=e.x-s-n:l=n-s-e.x;let d=h*l/f,p=r.x<e.x?r.x+f-l:r.x-f+l,m=r.y<e.y?r.y+d:r.y-d;return Y.debug(`sides calc abc89, Q ${h}, q ${d}, R ${f}, r ${l}`,{_x:p,_y:m}),l===0&&(p=e.x,m=e.y),f===0&&(p=e.x),h===0&&(m=e.y),{x:p,y:m}}},"intersection"),JZ=o((t,e)=>{Y.warn("abc88 cutPathAtIntersect",t,e);let r=[],n=t[0],i=!1;return t.forEach(a=>{if(Y.info("abc88 checking point",a,e),!I_e(e,a)&&!i){let s=O_e(e,n,a);Y.debug("abc88 inside",a,n,s),Y.debug("abc88 intersection",s,e);let l=!1;r.forEach(u=>{l=l||u.x===s.x&&u.y===s.y}),r.some(u=>u.x===s.x&&u.y===s.y)?Y.warn("abc88 no intersect",s,r):r.push(s),i=!0}else Y.warn("abc88 outside",a,n),n=a,i||r.push(a)}),Y.debug("returning points",r),r},"cutPathAtIntersect");o(P_e,"extractCornerPoints");eJ=o(function(t,e,r){let n=e.x-t.x,i=e.y-t.y,a=Math.sqrt(n*n+i*i),s=r/a;return{x:e.x-s*n,y:e.y-s*i}},"findAdjacentPoint"),B_e=o(function(t){let{cornerPointPositions:e}=P_e(t),r=[];for(let n=0;n<t.length;n++)if(e.includes(n)){let i=t[n-1],a=t[n+1],s=t[n],l=eJ(i,s,5),u=eJ(a,s,5),h=u.x-l.x,f=u.y-l.y;r.push(l);let d=Math.sqrt(2)*2,p={x:s.x,y:s.y};if(Math.abs(a.x-i.x)>10&&Math.abs(a.y-i.y)>=10){Y.debug("Corner point fixing",Math.abs(a.x-i.x),Math.abs(a.y-i.y));let m=5;s.x===l.x?p={x:h<0?l.x-m+d:l.x+m-d,y:f<0?l.y-d:l.y+d}:p={x:h<0?l.x-d:l.x+d,y:f<0?l.y-m+d:l.y+m-d}}else Y.debug("Corner point skipping fixing",Math.abs(a.x-i.x),Math.abs(a.y-i.y));r.push(p,u)}else r.push(t[n]);return r},"fixCorners"),Qw=o(function(t,e,r,n,i,a,s){let{handDrawnSeed:l}=me(),u=e.points,h=!1,f=i;var d=a;let p=[];for(let _ in e.cssCompiledStyles)ND(_)||p.push(e.cssCompiledStyles[_]);d.intersect&&f.intersect&&(u=u.slice(1,e.points.length-1),u.unshift(f.intersect(u[0])),Y.debug("Last point APA12",e.start,"-->",e.end,u[u.length-1],d,d.intersect(u[u.length-1])),u.push(d.intersect(u[u.length-1]))),e.toCluster&&(Y.info("to cluster abc88",r.get(e.toCluster)),u=JZ(e.points,r.get(e.toCluster).node),h=!0),e.fromCluster&&(Y.debug("from cluster abc88",r.get(e.fromCluster),JSON.stringify(u,null,2)),u=JZ(u.reverse(),r.get(e.fromCluster).node).reverse(),h=!0);let m=u.filter(_=>!Number.isNaN(_.y));m=B_e(m);let g=Do;switch(g=wu,e.curve){case"linear":g=wu;break;case"basis":g=Do;break;case"cardinal":g=Pv;break;case"bumpX":g=Rv;break;case"bumpY":g=Nv;break;case"catmullRom":g=$v;break;case"monotoneX":g=zv;break;case"monotoneY":g=Gv;break;case"natural":g=F0;break;case"step":g=$0;break;case"stepAfter":g=Uv;break;case"stepBefore":g=Vv;break;default:g=Do}let{x:y,y:v}=qw(e),x=wl().x(y).y(v).curve(g),b;switch(e.thickness){case"normal":b="edge-thickness-normal";break;case"thick":b="edge-thickness-thick";break;case"invisible":b="edge-thickness-invisible";break;default:b="edge-thickness-normal"}switch(e.pattern){case"solid":b+=" edge-pattern-solid";break;case"dotted":b+=" edge-pattern-dotted";break;case"dashed":b+=" edge-pattern-dashed";break;default:b+=" edge-pattern-solid"}let w,C=x(m),T=Array.isArray(e.style)?e.style:[e.style],E=T.find(_=>_?.startsWith("stroke:"));if(e.look==="handDrawn"){let _=Xe.svg(t);Object.assign([],m);let I=_.path(C,{roughness:.3,seed:l});b+=" transition",w=Ge(I).select("path").attr("id",e.id).attr("class"," "+b+(e.classes?" "+e.classes:"")).attr("style",T?T.reduce((k,L)=>k+";"+L,""):"");let D=w.attr("d");w.attr("d",D),t.node().appendChild(w.node())}else{let _=p.join(";"),I=T?T.reduce((L,R)=>L+R+";",""):"",D="";e.animate&&(D=" edge-animation-fast"),e.animation&&(D=" edge-animation-"+e.animation);let k=_?_+";"+I+";":I;w=t.append("path").attr("d",C).attr("id",e.id).attr("class"," "+b+(e.classes?" "+e.classes:"")+(D??"")).attr("style",k),E=k.match(/stroke:([^;]+)/)?.[1]}let A="";(me().flowchart.arrowMarkerAbsolute||me().state.arrowMarkerAbsolute)&&(A=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,A=A.replace(/\(/g,"\\(").replace(/\)/g,"\\)")),Y.info("arrowTypeStart",e.arrowTypeStart),Y.info("arrowTypeEnd",e.arrowTypeEnd),QZ(w,e,A,s,n,E);let S={};return h&&(S.updatedPath=u),S.originalPath=e.points,S},"insertEdge")});var F_e,$_e,z_e,G_e,V_e,U_e,H_e,W_e,q_e,Y_e,X_e,j_e,K_e,Q_e,Z_e,J_e,e9e,Zw,tL=N(()=>{"use strict";vt();F_e=o((t,e,r,n)=>{e.forEach(i=>{e9e[i](t,r,n)})},"insertMarkers"),$_e=o((t,e,r)=>{Y.trace("Making markers for ",r),t.append("defs").append("marker").attr("id",r+"_"+e+"-extensionStart").attr("class","marker extension "+e).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 1,7 L18,13 V 1 Z"),t.append("defs").append("marker").attr("id",r+"_"+e+"-extensionEnd").attr("class","marker extension "+e).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 1,1 V 13 L18,7 Z")},"extension"),z_e=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-compositionStart").attr("class","marker composition "+e).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",r+"_"+e+"-compositionEnd").attr("class","marker composition "+e).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},"composition"),G_e=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-aggregationStart").attr("class","marker aggregation "+e).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",r+"_"+e+"-aggregationEnd").attr("class","marker aggregation "+e).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},"aggregation"),V_e=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-dependencyStart").attr("class","marker dependency "+e).attr("refX",6).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 5,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",r+"_"+e+"-dependencyEnd").attr("class","marker dependency "+e).attr("refX",13).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},"dependency"),U_e=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-lollipopStart").attr("class","marker lollipop "+e).attr("refX",13).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6),t.append("defs").append("marker").attr("id",r+"_"+e+"-lollipopEnd").attr("class","marker lollipop "+e).attr("refX",1).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6)},"lollipop"),H_e=o((t,e,r)=>{t.append("marker").attr("id",r+"_"+e+"-pointEnd").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",5).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",8).attr("markerHeight",8).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),t.append("marker").attr("id",r+"_"+e+"-pointStart").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",4.5).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",8).attr("markerHeight",8).attr("orient","auto").append("path").attr("d","M 0 5 L 10 10 L 10 0 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},"point"),W_e=o((t,e,r)=>{t.append("marker").attr("id",r+"_"+e+"-circleEnd").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",11).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),t.append("marker").attr("id",r+"_"+e+"-circleStart").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",-1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},"circle"),q_e=o((t,e,r)=>{t.append("marker").attr("id",r+"_"+e+"-crossEnd").attr("class","marker cross "+e).attr("viewBox","0 0 11 11").attr("refX",12).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0"),t.append("marker").attr("id",r+"_"+e+"-crossStart").attr("class","marker cross "+e).attr("viewBox","0 0 11 11").attr("refX",-1).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0")},"cross"),Y_e=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-barbEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",14).attr("markerUnits","userSpaceOnUse").attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")},"barb"),X_e=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-onlyOneStart").attr("class","marker onlyOne "+e).attr("refX",0).attr("refY",9).attr("markerWidth",18).attr("markerHeight",18).attr("orient","auto").append("path").attr("d","M9,0 L9,18 M15,0 L15,18"),t.append("defs").append("marker").attr("id",r+"_"+e+"-onlyOneEnd").attr("class","marker onlyOne "+e).attr("refX",18).attr("refY",9).attr("markerWidth",18).attr("markerHeight",18).attr("orient","auto").append("path").attr("d","M3,0 L3,18 M9,0 L9,18")},"only_one"),j_e=o((t,e,r)=>{let n=t.append("defs").append("marker").attr("id",r+"_"+e+"-zeroOrOneStart").attr("class","marker zeroOrOne "+e).attr("refX",0).attr("refY",9).attr("markerWidth",30).attr("markerHeight",18).attr("orient","auto");n.append("circle").attr("fill","white").attr("cx",21).attr("cy",9).attr("r",6),n.append("path").attr("d","M9,0 L9,18");let i=t.append("defs").append("marker").attr("id",r+"_"+e+"-zeroOrOneEnd").attr("class","marker zeroOrOne "+e).attr("refX",30).attr("refY",9).attr("markerWidth",30).attr("markerHeight",18).attr("orient","auto");i.append("circle").attr("fill","white").attr("cx",9).attr("cy",9).attr("r",6),i.append("path").attr("d","M21,0 L21,18")},"zero_or_one"),K_e=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-oneOrMoreStart").attr("class","marker oneOrMore "+e).attr("refX",18).attr("refY",18).attr("markerWidth",45).attr("markerHeight",36).attr("orient","auto").append("path").attr("d","M0,18 Q 18,0 36,18 Q 18,36 0,18 M42,9 L42,27"),t.append("defs").append("marker").attr("id",r+"_"+e+"-oneOrMoreEnd").attr("class","marker oneOrMore "+e).attr("refX",27).attr("refY",18).attr("markerWidth",45).attr("markerHeight",36).attr("orient","auto").append("path").attr("d","M3,9 L3,27 M9,18 Q27,0 45,18 Q27,36 9,18")},"one_or_more"),Q_e=o((t,e,r)=>{let n=t.append("defs").append("marker").attr("id",r+"_"+e+"-zeroOrMoreStart").attr("class","marker zeroOrMore "+e).attr("refX",18).attr("refY",18).attr("markerWidth",57).attr("markerHeight",36).attr("orient","auto");n.append("circle").attr("fill","white").attr("cx",48).attr("cy",18).attr("r",6),n.append("path").attr("d","M0,18 Q18,0 36,18 Q18,36 0,18");let i=t.append("defs").append("marker").attr("id",r+"_"+e+"-zeroOrMoreEnd").attr("class","marker zeroOrMore "+e).attr("refX",39).attr("refY",18).attr("markerWidth",57).attr("markerHeight",36).attr("orient","auto");i.append("circle").attr("fill","white").attr("cx",9).attr("cy",18).attr("r",6),i.append("path").attr("d","M21,18 Q39,0 57,18 Q39,36 21,18")},"zero_or_more"),Z_e=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-requirement_arrowEnd").attr("refX",20).attr("refY",10).attr("markerWidth",20).attr("markerHeight",20).attr("orient","auto").append("path").attr("d",`M0,0
+      L20,10
+      M20,10
+      L0,20`)},"requirement_arrow"),J_e=o((t,e,r)=>{let n=t.append("defs").append("marker").attr("id",r+"_"+e+"-requirement_containsStart").attr("refX",0).attr("refY",10).attr("markerWidth",20).attr("markerHeight",20).attr("orient","auto").append("g");n.append("circle").attr("cx",10).attr("cy",10).attr("r",9).attr("fill","none"),n.append("line").attr("x1",1).attr("x2",19).attr("y1",10).attr("y2",10),n.append("line").attr("y1",1).attr("y2",19).attr("x1",10).attr("x2",10)},"requirement_contains"),e9e={extension:$_e,composition:z_e,aggregation:G_e,dependency:V_e,lollipop:U_e,point:H_e,circle:W_e,cross:q_e,barb:Y_e,only_one:X_e,zero_or_one:j_e,one_or_more:K_e,zero_or_more:Q_e,requirement_arrow:Z_e,requirement_contains:J_e},Zw=F_e});async function vm(t,e,r){let n,i;e.shape==="rect"&&(e.rx&&e.ry?e.shape="roundedRect":e.shape="squareRect");let a=e.shape?QD[e.shape]:void 0;if(!a)throw new Error(`No such shape: ${e.shape}. Please check your syntax.`);if(e.link){let s;r.config.securityLevel==="sandbox"?s="_top":e.linkTarget&&(s=e.linkTarget||"_blank"),n=t.insert("svg:a").attr("xlink:href",e.link).attr("target",s??null),i=await a(n,e,r)}else i=await a(t,e,r),n=i;return e.tooltip&&i.attr("title",e.tooltip),Jw.set(e.id,n),e.haveCallback&&n.attr("class",n.attr("class")+" clickable"),n}var Jw,rJ,nJ,k2,eT=N(()=>{"use strict";vt();ZD();Jw=new Map;o(vm,"insertNode");rJ=o((t,e)=>{Jw.set(e.id,t)},"setNodeElem"),nJ=o(()=>{Jw.clear()},"clear"),k2=o(t=>{let e=Jw.get(t.id);Y.trace("Transforming node",t.diff,t,"translate("+(t.x-t.width/2-5)+", "+t.width/2+")");let r=8,n=t.diff||0;return t.clusterNode?e.attr("transform","translate("+(t.x+n-t.width/2)+", "+(t.y-t.height/2-r)+")"):e.attr("transform","translate("+t.x+", "+t.y+")"),n},"positionNode")});var iJ,aJ=N(()=>{"use strict";ji();gr();vt();Hw();eL();tL();eT();Ft();ir();iJ={common:Ze,getConfig:cr,insertCluster:ym,insertEdge:Qw,insertEdgeLabel:jw,insertMarkers:Zw,insertNode:vm,interpolateToCurve:W9,labelHelper:pt,log:Y,positionEdgeLabel:Kw}});function r9e(t){return typeof t=="symbol"||ri(t)&&da(t)==t9e}var t9e,no,Pd=N(()=>{"use strict";ku();No();t9e="[object Symbol]";o(r9e,"isSymbol");no=r9e});function n9e(t,e){for(var r=-1,n=t==null?0:t.length,i=Array(n);++r<n;)i[r]=e(t[r],r,t);return i}var Ns,Bd=N(()=>{"use strict";o(n9e,"arrayMap");Ns=n9e});function lJ(t){if(typeof t=="string")return t;if(Pt(t))return Ns(t,lJ)+"";if(no(t))return oJ?oJ.call(t):"";var e=t+"";return e=="0"&&1/t==-i9e?"-0":e}var i9e,sJ,oJ,cJ,uJ=N(()=>{"use strict";Ed();Bd();Un();Pd();i9e=1/0,sJ=ea?ea.prototype:void 0,oJ=sJ?sJ.toString:void 0;o(lJ,"baseToString");cJ=lJ});function s9e(t){for(var e=t.length;e--&&a9e.test(t.charAt(e)););return e}var a9e,hJ,fJ=N(()=>{"use strict";a9e=/\s/;o(s9e,"trimmedEndIndex");hJ=s9e});function l9e(t){return t&&t.slice(0,hJ(t)+1).replace(o9e,"")}var o9e,dJ,pJ=N(()=>{"use strict";fJ();o9e=/^\s+/;o(l9e,"baseTrim");dJ=l9e});function d9e(t){if(typeof t=="number")return t;if(no(t))return mJ;if(bn(t)){var e=typeof t.valueOf=="function"?t.valueOf():t;t=bn(e)?e+"":e}if(typeof t!="string")return t===0?t:+t;t=dJ(t);var r=u9e.test(t);return r||h9e.test(t)?f9e(t.slice(2),r?2:8):c9e.test(t)?mJ:+t}var mJ,c9e,u9e,h9e,f9e,gJ,yJ=N(()=>{"use strict";pJ();Js();Pd();mJ=NaN,c9e=/^[-+]0x[0-9a-f]+$/i,u9e=/^0b[01]+$/i,h9e=/^0o[0-7]+$/i,f9e=parseInt;o(d9e,"toNumber");gJ=d9e});function m9e(t){if(!t)return t===0?t:0;if(t=gJ(t),t===vJ||t===-vJ){var e=t<0?-1:1;return e*p9e}return t===t?t:0}var vJ,p9e,xm,rL=N(()=>{"use strict";yJ();vJ=1/0,p9e=17976931348623157e292;o(m9e,"toFinite");xm=m9e});function g9e(t){var e=xm(t),r=e%1;return e===e?r?e-r:e:0}var vc,bm=N(()=>{"use strict";rL();o(g9e,"toInteger");vc=g9e});var y9e,tT,xJ=N(()=>{"use strict";Lh();Lo();y9e=Ss(li,"WeakMap"),tT=y9e});function v9e(){}var ni,nL=N(()=>{"use strict";o(v9e,"noop");ni=v9e});function x9e(t,e){for(var r=-1,n=t==null?0:t.length;++r<n&&e(t[r],r,t)!==!1;);return t}var rT,iL=N(()=>{"use strict";o(x9e,"arrayEach");rT=x9e});function b9e(t,e,r,n){for(var i=t.length,a=r+(n?1:-1);n?a--:++a<i;)if(e(t[a],a,t))return a;return-1}var nT,aL=N(()=>{"use strict";o(b9e,"baseFindIndex");nT=b9e});function w9e(t){return t!==t}var bJ,wJ=N(()=>{"use strict";o(w9e,"baseIsNaN");bJ=w9e});function T9e(t,e,r){for(var n=r-1,i=t.length;++n<i;)if(t[n]===e)return n;return-1}var TJ,kJ=N(()=>{"use strict";o(T9e,"strictIndexOf");TJ=T9e});function k9e(t,e,r){return e===e?TJ(t,e,r):nT(t,bJ,r)}var wm,iT=N(()=>{"use strict";aL();wJ();kJ();o(k9e,"baseIndexOf");wm=k9e});function E9e(t,e){var r=t==null?0:t.length;return!!r&&wm(t,e,0)>-1}var aT,sL=N(()=>{"use strict";iT();o(E9e,"arrayIncludes");aT=E9e});var S9e,EJ,SJ=N(()=>{"use strict";N9();S9e=nw(Object.keys,Object),EJ=S9e});function _9e(t){if(!uc(t))return EJ(t);var e=[];for(var r in Object(t))A9e.call(t,r)&&r!="constructor"&&e.push(r);return e}var C9e,A9e,Tm,sT=N(()=>{"use strict";Z0();SJ();C9e=Object.prototype,A9e=C9e.hasOwnProperty;o(_9e,"baseKeys");Tm=_9e});function D9e(t){return ci(t)?lw(t):Tm(t)}var zr,xc=N(()=>{"use strict";B9();sT();Mo();o(D9e,"keys");zr=D9e});var L9e,R9e,N9e,ma,CJ=N(()=>{"use strict";rm();Dd();G9();Mo();Z0();xc();L9e=Object.prototype,R9e=L9e.hasOwnProperty,N9e=hw(function(t,e){if(uc(e)||ci(e)){Po(e,zr(e),t);return}for(var r in e)R9e.call(e,r)&&hc(t,r,e[r])}),ma=N9e});function O9e(t,e){if(Pt(t))return!1;var r=typeof t;return r=="number"||r=="symbol"||r=="boolean"||t==null||no(t)?!0:I9e.test(t)||!M9e.test(t)||e!=null&&t in Object(e)}var M9e,I9e,km,oT=N(()=>{"use strict";Un();Pd();M9e=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,I9e=/^\w*$/;o(O9e,"isKey");km=O9e});function B9e(t){var e=H0(t,function(n){return r.size===P9e&&r.clear(),n}),r=e.cache;return e}var P9e,AJ,_J=N(()=>{"use strict";S9();P9e=500;o(B9e,"memoizeCapped");AJ=B9e});var F9e,$9e,z9e,DJ,LJ=N(()=>{"use strict";_J();F9e=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,$9e=/\\(\\)?/g,z9e=AJ(function(t){var e=[];return t.charCodeAt(0)===46&&e.push(""),t.replace(F9e,function(r,n,i,a){e.push(i?a.replace($9e,"$1"):n||r)}),e}),DJ=z9e});function G9e(t){return t==null?"":cJ(t)}var lT,oL=N(()=>{"use strict";uJ();o(G9e,"toString");lT=G9e});function V9e(t,e){return Pt(t)?t:km(t,e)?[t]:DJ(lT(t))}var Yh,E2=N(()=>{"use strict";Un();oT();LJ();oL();o(V9e,"castPath");Yh=V9e});function H9e(t){if(typeof t=="string"||no(t))return t;var e=t+"";return e=="0"&&1/t==-U9e?"-0":e}var U9e,bc,Em=N(()=>{"use strict";Pd();U9e=1/0;o(H9e,"toKey");bc=H9e});function W9e(t,e){e=Yh(e,t);for(var r=0,n=e.length;t!=null&&r<n;)t=t[bc(e[r++])];return r&&r==n?t:void 0}var Xh,S2=N(()=>{"use strict";E2();Em();o(W9e,"baseGet");Xh=W9e});function q9e(t,e,r){var n=t==null?void 0:Xh(t,e);return n===void 0?r:n}var RJ,NJ=N(()=>{"use strict";S2();o(q9e,"get");RJ=q9e});function Y9e(t,e){for(var r=-1,n=e.length,i=t.length;++r<n;)t[i+r]=e[r];return t}var Sm,cT=N(()=>{"use strict";o(Y9e,"arrayPush");Sm=Y9e});function X9e(t){return Pt(t)||El(t)||!!(MJ&&t&&t[MJ])}var MJ,IJ,OJ=N(()=>{"use strict";Ed();J0();Un();MJ=ea?ea.isConcatSpreadable:void 0;o(X9e,"isFlattenable");IJ=X9e});function PJ(t,e,r,n,i){var a=-1,s=t.length;for(r||(r=IJ),i||(i=[]);++a<s;){var l=t[a];e>0&&r(l)?e>1?PJ(l,e-1,r,n,i):Sm(i,l):n||(i[i.length]=l)}return i}var wc,Cm=N(()=>{"use strict";cT();OJ();o(PJ,"baseFlatten");wc=PJ});function j9e(t){var e=t==null?0:t.length;return e?wc(t,1):[]}var qr,uT=N(()=>{"use strict";Cm();o(j9e,"flatten");qr=j9e});function K9e(t){return uw(cw(t,void 0,qr),t+"")}var BJ,FJ=N(()=>{"use strict";uT();F9();z9();o(K9e,"flatRest");BJ=K9e});function Q9e(t,e,r){var n=-1,i=t.length;e<0&&(e=-e>i?0:i+e),r=r>i?i:r,r<0&&(r+=i),i=e>r?0:r-e>>>0,e>>>=0;for(var a=Array(i);++n<i;)a[n]=t[n+e];return a}var hT,lL=N(()=>{"use strict";o(Q9e,"baseSlice");hT=Q9e});function sDe(t){return aDe.test(t)}var Z9e,J9e,eDe,tDe,rDe,nDe,iDe,aDe,$J,zJ=N(()=>{"use strict";Z9e="\\ud800-\\udfff",J9e="\\u0300-\\u036f",eDe="\\ufe20-\\ufe2f",tDe="\\u20d0-\\u20ff",rDe=J9e+eDe+tDe,nDe="\\ufe0e\\ufe0f",iDe="\\u200d",aDe=RegExp("["+iDe+Z9e+rDe+nDe+"]");o(sDe,"hasUnicode");$J=sDe});function oDe(t,e,r,n){var i=-1,a=t==null?0:t.length;for(n&&a&&(r=t[++i]);++i<a;)r=e(r,t[i],i,t);return r}var GJ,VJ=N(()=>{"use strict";o(oDe,"arrayReduce");GJ=oDe});function lDe(t,e){return t&&Po(e,zr(e),t)}var UJ,HJ=N(()=>{"use strict";Dd();xc();o(lDe,"baseAssign");UJ=lDe});function cDe(t,e){return t&&Po(e,Cs(e),t)}var WJ,qJ=N(()=>{"use strict";Dd();Bh();o(cDe,"baseAssignIn");WJ=cDe});function uDe(t,e){for(var r=-1,n=t==null?0:t.length,i=0,a=[];++r<n;){var s=t[r];e(s,r,t)&&(a[i++]=s)}return a}var Am,fT=N(()=>{"use strict";o(uDe,"arrayFilter");Am=uDe});function hDe(){return[]}var dT,cL=N(()=>{"use strict";o(hDe,"stubArray");dT=hDe});var fDe,dDe,YJ,pDe,_m,pT=N(()=>{"use strict";fT();cL();fDe=Object.prototype,dDe=fDe.propertyIsEnumerable,YJ=Object.getOwnPropertySymbols,pDe=YJ?function(t){return t==null?[]:(t=Object(t),Am(YJ(t),function(e){return dDe.call(t,e)}))}:dT,_m=pDe});function mDe(t,e){return Po(t,_m(t),e)}var XJ,jJ=N(()=>{"use strict";Dd();pT();o(mDe,"copySymbols");XJ=mDe});var gDe,yDe,mT,uL=N(()=>{"use strict";cT();iw();pT();cL();gDe=Object.getOwnPropertySymbols,yDe=gDe?function(t){for(var e=[];t;)Sm(e,_m(t)),t=Q0(t);return e}:dT,mT=yDe});function vDe(t,e){return Po(t,mT(t),e)}var KJ,QJ=N(()=>{"use strict";Dd();uL();o(vDe,"copySymbolsIn");KJ=vDe});function xDe(t,e,r){var n=e(t);return Pt(t)?n:Sm(n,r(t))}var gT,hL=N(()=>{"use strict";cT();Un();o(xDe,"baseGetAllKeys");gT=xDe});function bDe(t){return gT(t,zr,_m)}var C2,fL=N(()=>{"use strict";hL();pT();xc();o(bDe,"getAllKeys");C2=bDe});function wDe(t){return gT(t,Cs,mT)}var yT,dL=N(()=>{"use strict";hL();uL();Bh();o(wDe,"getAllKeysIn");yT=wDe});var TDe,vT,ZJ=N(()=>{"use strict";Lh();Lo();TDe=Ss(li,"DataView"),vT=TDe});var kDe,xT,JJ=N(()=>{"use strict";Lh();Lo();kDe=Ss(li,"Promise"),xT=kDe});var EDe,jh,pL=N(()=>{"use strict";Lh();Lo();EDe=Ss(li,"Set"),jh=EDe});var eee,SDe,tee,ree,nee,iee,CDe,ADe,_De,DDe,LDe,Fd,io,$d=N(()=>{"use strict";ZJ();K5();JJ();pL();xJ();ku();T9();eee="[object Map]",SDe="[object Object]",tee="[object Promise]",ree="[object Set]",nee="[object WeakMap]",iee="[object DataView]",CDe=Eu(vT),ADe=Eu(Mh),_De=Eu(xT),DDe=Eu(jh),LDe=Eu(tT),Fd=da;(vT&&Fd(new vT(new ArrayBuffer(1)))!=iee||Mh&&Fd(new Mh)!=eee||xT&&Fd(xT.resolve())!=tee||jh&&Fd(new jh)!=ree||tT&&Fd(new tT)!=nee)&&(Fd=o(function(t){var e=da(t),r=e==SDe?t.constructor:void 0,n=r?Eu(r):"";if(n)switch(n){case CDe:return iee;case ADe:return eee;case _De:return tee;case DDe:return ree;case LDe:return nee}return e},"getTag"));io=Fd});function MDe(t){var e=t.length,r=new t.constructor(e);return e&&typeof t[0]=="string"&&NDe.call(t,"index")&&(r.index=t.index,r.input=t.input),r}var RDe,NDe,aee,see=N(()=>{"use strict";RDe=Object.prototype,NDe=RDe.hasOwnProperty;o(MDe,"initCloneArray");aee=MDe});function IDe(t,e){var r=e?K0(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.byteLength)}var oee,lee=N(()=>{"use strict";ew();o(IDe,"cloneDataView");oee=IDe});function PDe(t){var e=new t.constructor(t.source,ODe.exec(t));return e.lastIndex=t.lastIndex,e}var ODe,cee,uee=N(()=>{"use strict";ODe=/\w*$/;o(PDe,"cloneRegExp");cee=PDe});function BDe(t){return fee?Object(fee.call(t)):{}}var hee,fee,dee,pee=N(()=>{"use strict";Ed();hee=ea?ea.prototype:void 0,fee=hee?hee.valueOf:void 0;o(BDe,"cloneSymbol");dee=BDe});function nLe(t,e,r){var n=t.constructor;switch(e){case qDe:return K0(t);case FDe:case $De:return new n(+t);case YDe:return oee(t,r);case XDe:case jDe:case KDe:case QDe:case ZDe:case JDe:case eLe:case tLe:case rLe:return tw(t,r);case zDe:return new n;case GDe:case HDe:return new n(t);case VDe:return cee(t);case UDe:return new n;case WDe:return dee(t)}}var FDe,$De,zDe,GDe,VDe,UDe,HDe,WDe,qDe,YDe,XDe,jDe,KDe,QDe,ZDe,JDe,eLe,tLe,rLe,mee,gee=N(()=>{"use strict";ew();lee();uee();pee();L9();FDe="[object Boolean]",$De="[object Date]",zDe="[object Map]",GDe="[object Number]",VDe="[object RegExp]",UDe="[object Set]",HDe="[object String]",WDe="[object Symbol]",qDe="[object ArrayBuffer]",YDe="[object DataView]",XDe="[object Float32Array]",jDe="[object Float64Array]",KDe="[object Int8Array]",QDe="[object Int16Array]",ZDe="[object Int32Array]",JDe="[object Uint8Array]",eLe="[object Uint8ClampedArray]",tLe="[object Uint16Array]",rLe="[object Uint32Array]";o(nLe,"initCloneByTag");mee=nLe});function aLe(t){return ri(t)&&io(t)==iLe}var iLe,yee,vee=N(()=>{"use strict";$d();No();iLe="[object Map]";o(aLe,"baseIsMap");yee=aLe});var xee,sLe,bee,wee=N(()=>{"use strict";vee();_d();t2();xee=Oo&&Oo.isMap,sLe=xee?Io(xee):yee,bee=sLe});function lLe(t){return ri(t)&&io(t)==oLe}var oLe,Tee,kee=N(()=>{"use strict";$d();No();oLe="[object Set]";o(lLe,"baseIsSet");Tee=lLe});var Eee,cLe,See,Cee=N(()=>{"use strict";kee();_d();t2();Eee=Oo&&Oo.isSet,cLe=Eee?Io(Eee):Tee,See=cLe});function bT(t,e,r,n,i,a){var s,l=e&uLe,u=e&hLe,h=e&fLe;if(r&&(s=i?r(t,n,i,a):r(t)),s!==void 0)return s;if(!bn(t))return t;var f=Pt(t);if(f){if(s=aee(t),!l)return rw(t,s)}else{var d=io(t),p=d==_ee||d==yLe;if(Sl(t))return J5(t,l);if(d==Dee||d==Aee||p&&!i){if(s=u||p?{}:aw(t),!l)return u?KJ(t,WJ(s,t)):XJ(t,UJ(s,t))}else{if(!_n[d])return i?t:{};s=mee(t,d,l)}}a||(a=new lc);var m=a.get(t);if(m)return m;a.set(t,s),See(t)?t.forEach(function(v){s.add(bT(v,e,r,v,t,a))}):bee(t)&&t.forEach(function(v,x){s.set(x,bT(v,e,r,x,t,a))});var g=h?u?yT:C2:u?Cs:zr,y=f?void 0:g(t);return rT(y||t,function(v,x){y&&(x=v,v=t[x]),hc(s,x,bT(v,e,r,x,t,a))}),s}var uLe,hLe,fLe,Aee,dLe,pLe,mLe,gLe,_ee,yLe,vLe,xLe,Dee,bLe,wLe,TLe,kLe,ELe,SLe,CLe,ALe,_Le,DLe,LLe,RLe,NLe,MLe,ILe,OLe,_n,wT,mL=N(()=>{"use strict";Zv();iL();rm();HJ();qJ();_9();R9();jJ();QJ();fL();dL();$d();see();gee();M9();Un();tm();wee();Js();Cee();xc();Bh();uLe=1,hLe=2,fLe=4,Aee="[object Arguments]",dLe="[object Array]",pLe="[object Boolean]",mLe="[object Date]",gLe="[object Error]",_ee="[object Function]",yLe="[object GeneratorFunction]",vLe="[object Map]",xLe="[object Number]",Dee="[object Object]",bLe="[object RegExp]",wLe="[object Set]",TLe="[object String]",kLe="[object Symbol]",ELe="[object WeakMap]",SLe="[object ArrayBuffer]",CLe="[object DataView]",ALe="[object Float32Array]",_Le="[object Float64Array]",DLe="[object Int8Array]",LLe="[object Int16Array]",RLe="[object Int32Array]",NLe="[object Uint8Array]",MLe="[object Uint8ClampedArray]",ILe="[object Uint16Array]",OLe="[object Uint32Array]",_n={};_n[Aee]=_n[dLe]=_n[SLe]=_n[CLe]=_n[pLe]=_n[mLe]=_n[ALe]=_n[_Le]=_n[DLe]=_n[LLe]=_n[RLe]=_n[vLe]=_n[xLe]=_n[Dee]=_n[bLe]=_n[wLe]=_n[TLe]=_n[kLe]=_n[NLe]=_n[MLe]=_n[ILe]=_n[OLe]=!0;_n[gLe]=_n[_ee]=_n[ELe]=!1;o(bT,"baseClone");wT=bT});function BLe(t){return wT(t,PLe)}var PLe,an,gL=N(()=>{"use strict";mL();PLe=4;o(BLe,"clone");an=BLe});function zLe(t){return wT(t,FLe|$Le)}var FLe,$Le,yL,Lee=N(()=>{"use strict";mL();FLe=1,$Le=4;o(zLe,"cloneDeep");yL=zLe});function GLe(t){for(var e=-1,r=t==null?0:t.length,n=0,i=[];++e<r;){var a=t[e];a&&(i[n++]=a)}return i}var Tc,Ree=N(()=>{"use strict";o(GLe,"compact");Tc=GLe});function ULe(t){return this.__data__.set(t,VLe),this}var VLe,Nee,Mee=N(()=>{"use strict";VLe="__lodash_hash_undefined__";o(ULe,"setCacheAdd");Nee=ULe});function HLe(t){return this.__data__.has(t)}var Iee,Oee=N(()=>{"use strict";o(HLe,"setCacheHas");Iee=HLe});function TT(t){var e=-1,r=t==null?0:t.length;for(this.__data__=new Cd;++e<r;)this.add(t[e])}var Dm,kT=N(()=>{"use strict";Q5();Mee();Oee();o(TT,"SetCache");TT.prototype.add=TT.prototype.push=Nee;TT.prototype.has=Iee;Dm=TT});function WLe(t,e){for(var r=-1,n=t==null?0:t.length;++r<n;)if(e(t[r],r,t))return!0;return!1}var ET,vL=N(()=>{"use strict";o(WLe,"arraySome");ET=WLe});function qLe(t,e){return t.has(e)}var Lm,ST=N(()=>{"use strict";o(qLe,"cacheHas");Lm=qLe});function jLe(t,e,r,n,i,a){var s=r&YLe,l=t.length,u=e.length;if(l!=u&&!(s&&u>l))return!1;var h=a.get(t),f=a.get(e);if(h&&f)return h==e&&f==t;var d=-1,p=!0,m=r&XLe?new Dm:void 0;for(a.set(t,e),a.set(e,t);++d<l;){var g=t[d],y=e[d];if(n)var v=s?n(y,g,d,e,t,a):n(g,y,d,t,e,a);if(v!==void 0){if(v)continue;p=!1;break}if(m){if(!ET(e,function(x,b){if(!Lm(m,b)&&(g===x||i(g,x,r,n,a)))return m.push(b)})){p=!1;break}}else if(!(g===y||i(g,y,r,n,a))){p=!1;break}}return a.delete(t),a.delete(e),p}var YLe,XLe,CT,xL=N(()=>{"use strict";kT();vL();ST();YLe=1,XLe=2;o(jLe,"equalArrays");CT=jLe});function KLe(t){var e=-1,r=Array(t.size);return t.forEach(function(n,i){r[++e]=[i,n]}),r}var Pee,Bee=N(()=>{"use strict";o(KLe,"mapToArray");Pee=KLe});function QLe(t){var e=-1,r=Array(t.size);return t.forEach(function(n){r[++e]=n}),r}var Rm,AT=N(()=>{"use strict";o(QLe,"setToArray");Rm=QLe});function hRe(t,e,r,n,i,a,s){switch(r){case uRe:if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case cRe:return!(t.byteLength!=e.byteLength||!a(new j0(t),new j0(e)));case eRe:case tRe:case iRe:return Ro(+t,+e);case rRe:return t.name==e.name&&t.message==e.message;case aRe:case oRe:return t==e+"";case nRe:var l=Pee;case sRe:var u=n&ZLe;if(l||(l=Rm),t.size!=e.size&&!u)return!1;var h=s.get(t);if(h)return h==e;n|=JLe,s.set(t,e);var f=CT(l(t),l(e),n,i,a,s);return s.delete(t),f;case lRe:if(bL)return bL.call(t)==bL.call(e)}return!1}var ZLe,JLe,eRe,tRe,rRe,nRe,iRe,aRe,sRe,oRe,lRe,cRe,uRe,Fee,bL,$ee,zee=N(()=>{"use strict";Ed();D9();Sd();xL();Bee();AT();ZLe=1,JLe=2,eRe="[object Boolean]",tRe="[object Date]",rRe="[object Error]",nRe="[object Map]",iRe="[object Number]",aRe="[object RegExp]",sRe="[object Set]",oRe="[object String]",lRe="[object Symbol]",cRe="[object ArrayBuffer]",uRe="[object DataView]",Fee=ea?ea.prototype:void 0,bL=Fee?Fee.valueOf:void 0;o(hRe,"equalByTag");$ee=hRe});function mRe(t,e,r,n,i,a){var s=r&fRe,l=C2(t),u=l.length,h=C2(e),f=h.length;if(u!=f&&!s)return!1;for(var d=u;d--;){var p=l[d];if(!(s?p in e:pRe.call(e,p)))return!1}var m=a.get(t),g=a.get(e);if(m&&g)return m==e&&g==t;var y=!0;a.set(t,e),a.set(e,t);for(var v=s;++d<u;){p=l[d];var x=t[p],b=e[p];if(n)var w=s?n(b,x,p,e,t,a):n(x,b,p,t,e,a);if(!(w===void 0?x===b||i(x,b,r,n,a):w)){y=!1;break}v||(v=p=="constructor")}if(y&&!v){var C=t.constructor,T=e.constructor;C!=T&&"constructor"in t&&"constructor"in e&&!(typeof C=="function"&&C instanceof C&&typeof T=="function"&&T instanceof T)&&(y=!1)}return a.delete(t),a.delete(e),y}var fRe,dRe,pRe,Gee,Vee=N(()=>{"use strict";fL();fRe=1,dRe=Object.prototype,pRe=dRe.hasOwnProperty;o(mRe,"equalObjects");Gee=mRe});function vRe(t,e,r,n,i,a){var s=Pt(t),l=Pt(e),u=s?Hee:io(t),h=l?Hee:io(e);u=u==Uee?_T:u,h=h==Uee?_T:h;var f=u==_T,d=h==_T,p=u==h;if(p&&Sl(t)){if(!Sl(e))return!1;s=!0,f=!1}if(p&&!f)return a||(a=new lc),s||Oh(t)?CT(t,e,r,n,i,a):$ee(t,e,u,r,n,i,a);if(!(r&gRe)){var m=f&&Wee.call(t,"__wrapped__"),g=d&&Wee.call(e,"__wrapped__");if(m||g){var y=m?t.value():t,v=g?e.value():e;return a||(a=new lc),i(y,v,r,n,a)}}return p?(a||(a=new lc),Gee(t,e,r,n,i,a)):!1}var gRe,Uee,Hee,_T,yRe,Wee,qee,Yee=N(()=>{"use strict";Zv();xL();zee();Vee();$d();Un();tm();r2();gRe=1,Uee="[object Arguments]",Hee="[object Array]",_T="[object Object]",yRe=Object.prototype,Wee=yRe.hasOwnProperty;o(vRe,"baseIsEqualDeep");qee=vRe});function Xee(t,e,r,n,i){return t===e?!0:t==null||e==null||!ri(t)&&!ri(e)?t!==t&&e!==e:qee(t,e,r,n,Xee,i)}var DT,wL=N(()=>{"use strict";Yee();No();o(Xee,"baseIsEqual");DT=Xee});function wRe(t,e,r,n){var i=r.length,a=i,s=!n;if(t==null)return!a;for(t=Object(t);i--;){var l=r[i];if(s&&l[2]?l[1]!==t[l[0]]:!(l[0]in t))return!1}for(;++i<a;){l=r[i];var u=l[0],h=t[u],f=l[1];if(s&&l[2]){if(h===void 0&&!(u in t))return!1}else{var d=new lc;if(n)var p=n(h,f,u,t,e,d);if(!(p===void 0?DT(f,h,xRe|bRe,n,d):p))return!1}}return!0}var xRe,bRe,jee,Kee=N(()=>{"use strict";Zv();wL();xRe=1,bRe=2;o(wRe,"baseIsMatch");jee=wRe});function TRe(t){return t===t&&!bn(t)}var LT,TL=N(()=>{"use strict";Js();o(TRe,"isStrictComparable");LT=TRe});function kRe(t){for(var e=zr(t),r=e.length;r--;){var n=e[r],i=t[n];e[r]=[n,i,LT(i)]}return e}var Qee,Zee=N(()=>{"use strict";TL();xc();o(kRe,"getMatchData");Qee=kRe});function ERe(t,e){return function(r){return r==null?!1:r[t]===e&&(e!==void 0||t in Object(r))}}var RT,kL=N(()=>{"use strict";o(ERe,"matchesStrictComparable");RT=ERe});function SRe(t){var e=Qee(t);return e.length==1&&e[0][2]?RT(e[0][0],e[0][1]):function(r){return r===t||jee(r,t,e)}}var Jee,ete=N(()=>{"use strict";Kee();Zee();kL();o(SRe,"baseMatches");Jee=SRe});function CRe(t,e){return t!=null&&e in Object(t)}var tte,rte=N(()=>{"use strict";o(CRe,"baseHasIn");tte=CRe});function ARe(t,e,r){e=Yh(e,t);for(var n=-1,i=e.length,a=!1;++n<i;){var s=bc(e[n]);if(!(a=t!=null&&r(t,s)))break;t=t[s]}return a||++n!=i?a:(i=t==null?0:t.length,!!i&&em(i)&&Ph(s,i)&&(Pt(t)||El(t)))}var NT,EL=N(()=>{"use strict";E2();J0();Un();i2();sw();Em();o(ARe,"hasPath");NT=ARe});function _Re(t,e){return t!=null&&NT(t,e,tte)}var MT,SL=N(()=>{"use strict";rte();EL();o(_Re,"hasIn");MT=_Re});function RRe(t,e){return km(t)&&LT(e)?RT(bc(t),e):function(r){var n=RJ(r,t);return n===void 0&&n===e?MT(r,t):DT(e,n,DRe|LRe)}}var DRe,LRe,nte,ite=N(()=>{"use strict";wL();NJ();SL();oT();TL();kL();Em();DRe=1,LRe=2;o(RRe,"baseMatchesProperty");nte=RRe});function NRe(t){return function(e){return e?.[t]}}var IT,CL=N(()=>{"use strict";o(NRe,"baseProperty");IT=NRe});function MRe(t){return function(e){return Xh(e,t)}}var ate,ste=N(()=>{"use strict";S2();o(MRe,"basePropertyDeep");ate=MRe});function IRe(t){return km(t)?IT(bc(t)):ate(t)}var ote,lte=N(()=>{"use strict";CL();ste();oT();Em();o(IRe,"property");ote=IRe});function ORe(t){return typeof t=="function"?t:t==null?ta:typeof t=="object"?Pt(t)?nte(t[0],t[1]):Jee(t):ote(t)}var pn,rs=N(()=>{"use strict";ete();ite();Cu();Un();lte();o(ORe,"baseIteratee");pn=ORe});function PRe(t,e,r,n){for(var i=-1,a=t==null?0:t.length;++i<a;){var s=t[i];e(n,s,r(s),t)}return n}var cte,ute=N(()=>{"use strict";o(PRe,"arrayAggregator");cte=PRe});function BRe(t,e){return t&&X0(t,e,zr)}var Nm,OT=N(()=>{"use strict";Z5();xc();o(BRe,"baseForOwn");Nm=BRe});function FRe(t,e){return function(r,n){if(r==null)return r;if(!ci(r))return t(r,n);for(var i=r.length,a=e?i:-1,s=Object(r);(e?a--:++a<i)&&n(s[a],a,s)!==!1;);return r}}var hte,fte=N(()=>{"use strict";Mo();o(FRe,"createBaseEach");hte=FRe});var $Re,Ms,Kh=N(()=>{"use strict";OT();fte();$Re=hte(Nm),Ms=$Re});function zRe(t,e,r,n){return Ms(t,function(i,a,s){e(n,i,r(i),s)}),n}var dte,pte=N(()=>{"use strict";Kh();o(zRe,"baseAggregator");dte=zRe});function GRe(t,e){return function(r,n){var i=Pt(r)?cte:dte,a=e?e():{};return i(r,t,pn(n,2),a)}}var mte,gte=N(()=>{"use strict";ute();pte();rs();Un();o(GRe,"createAggregator");mte=GRe});var VRe,PT,yte=N(()=>{"use strict";Lo();VRe=o(function(){return li.Date.now()},"now"),PT=VRe});var vte,URe,HRe,Qh,xte=N(()=>{"use strict";nm();Sd();Ld();Bh();vte=Object.prototype,URe=vte.hasOwnProperty,HRe=fc(function(t,e){t=Object(t);var r=-1,n=e.length,i=n>2?e[2]:void 0;for(i&&eo(e[0],e[1],i)&&(n=1);++r<n;)for(var a=e[r],s=Cs(a),l=-1,u=s.length;++l<u;){var h=s[l],f=t[h];(f===void 0||Ro(f,vte[h])&&!URe.call(t,h))&&(t[h]=a[h])}return t}),Qh=HRe});function WRe(t,e,r){for(var n=-1,i=t==null?0:t.length;++n<i;)if(r(e,t[n]))return!0;return!1}var BT,AL=N(()=>{"use strict";o(WRe,"arrayIncludesWith");BT=WRe});function YRe(t,e,r,n){var i=-1,a=aT,s=!0,l=t.length,u=[],h=e.length;if(!l)return u;r&&(e=Ns(e,Io(r))),n?(a=BT,s=!1):e.length>=qRe&&(a=Lm,s=!1,e=new Dm(e));e:for(;++i<l;){var f=t[i],d=r==null?f:r(f);if(f=n||f!==0?f:0,s&&d===d){for(var p=h;p--;)if(e[p]===d)continue e;u.push(f)}else a(e,d,n)||u.push(f)}return u}var qRe,bte,wte=N(()=>{"use strict";kT();sL();AL();Bd();_d();ST();qRe=200;o(YRe,"baseDifference");bte=YRe});var XRe,Zh,Tte=N(()=>{"use strict";wte();Cm();nm();ow();XRe=fc(function(t,e){return Ad(t)?bte(t,wc(e,1,Ad,!0)):[]}),Zh=XRe});function jRe(t){var e=t==null?0:t.length;return e?t[e-1]:void 0}var ga,kte=N(()=>{"use strict";o(jRe,"last");ga=jRe});function KRe(t,e,r){var n=t==null?0:t.length;return n?(e=r||e===void 0?1:vc(e),hT(t,e<0?0:e,n)):[]}var gi,Ete=N(()=>{"use strict";lL();bm();o(KRe,"drop");gi=KRe});function QRe(t,e,r){var n=t==null?0:t.length;return n?(e=r||e===void 0?1:vc(e),e=n-e,hT(t,0,e<0?0:e)):[]}var Nu,Ste=N(()=>{"use strict";lL();bm();o(QRe,"dropRight");Nu=QRe});function ZRe(t){return typeof t=="function"?t:ta}var Mm,FT=N(()=>{"use strict";Cu();o(ZRe,"castFunction");Mm=ZRe});function JRe(t,e){var r=Pt(t)?rT:Ms;return r(t,Mm(e))}var Ae,$T=N(()=>{"use strict";iL();Kh();FT();Un();o(JRe,"forEach");Ae=JRe});var Cte=N(()=>{"use strict";$T()});function eNe(t,e){for(var r=-1,n=t==null?0:t.length;++r<n;)if(!e(t[r],r,t))return!1;return!0}var Ate,_te=N(()=>{"use strict";o(eNe,"arrayEvery");Ate=eNe});function tNe(t,e){var r=!0;return Ms(t,function(n,i,a){return r=!!e(n,i,a),r}),r}var Dte,Lte=N(()=>{"use strict";Kh();o(tNe,"baseEvery");Dte=tNe});function rNe(t,e,r){var n=Pt(t)?Ate:Dte;return r&&eo(t,e,r)&&(e=void 0),n(t,pn(e,3))}var Ma,Rte=N(()=>{"use strict";_te();Lte();rs();Un();Ld();o(rNe,"every");Ma=rNe});function nNe(t,e){var r=[];return Ms(t,function(n,i,a){e(n,i,a)&&r.push(n)}),r}var zT,_L=N(()=>{"use strict";Kh();o(nNe,"baseFilter");zT=nNe});function iNe(t,e){var r=Pt(t)?Am:zT;return r(t,pn(e,3))}var Yr,DL=N(()=>{"use strict";fT();_L();rs();Un();o(iNe,"filter");Yr=iNe});function aNe(t){return function(e,r,n){var i=Object(e);if(!ci(e)){var a=pn(r,3);e=zr(e),r=o(function(l){return a(i[l],l,i)},"predicate")}var s=t(e,r,n);return s>-1?i[a?e[s]:s]:void 0}}var Nte,Mte=N(()=>{"use strict";rs();Mo();xc();o(aNe,"createFind");Nte=aNe});function oNe(t,e,r){var n=t==null?0:t.length;if(!n)return-1;var i=r==null?0:vc(r);return i<0&&(i=sNe(n+i,0)),nT(t,pn(e,3),i)}var sNe,Ite,Ote=N(()=>{"use strict";aL();rs();bm();sNe=Math.max;o(oNe,"findIndex");Ite=oNe});var lNe,ns,Pte=N(()=>{"use strict";Mte();Ote();lNe=Nte(Ite),ns=lNe});function cNe(t){return t&&t.length?t[0]:void 0}var ia,Bte=N(()=>{"use strict";o(cNe,"head");ia=cNe});var Fte=N(()=>{"use strict";Bte()});function uNe(t,e){var r=-1,n=ci(t)?Array(t.length):[];return Ms(t,function(i,a,s){n[++r]=e(i,a,s)}),n}var GT,LL=N(()=>{"use strict";Kh();Mo();o(uNe,"baseMap");GT=uNe});function hNe(t,e){var r=Pt(t)?Ns:GT;return r(t,pn(e,3))}var Je,Im=N(()=>{"use strict";Bd();rs();LL();Un();o(hNe,"map");Je=hNe});function fNe(t,e){return wc(Je(t,e),1)}var ya,RL=N(()=>{"use strict";Cm();Im();o(fNe,"flatMap");ya=fNe});function dNe(t,e){return t==null?t:X0(t,Mm(e),Cs)}var NL,$te=N(()=>{"use strict";Z5();FT();Bh();o(dNe,"forIn");NL=dNe});function pNe(t,e){return t&&Nm(t,Mm(e))}var ML,zte=N(()=>{"use strict";OT();FT();o(pNe,"forOwn");ML=pNe});var mNe,gNe,yNe,IL,Gte=N(()=>{"use strict";Y0();gte();mNe=Object.prototype,gNe=mNe.hasOwnProperty,yNe=mte(function(t,e,r){gNe.call(t,r)?t[r].push(e):cc(t,r,[e])}),IL=yNe});function vNe(t,e){return t>e}var Vte,Ute=N(()=>{"use strict";o(vNe,"baseGt");Vte=vNe});function wNe(t,e){return t!=null&&bNe.call(t,e)}var xNe,bNe,Hte,Wte=N(()=>{"use strict";xNe=Object.prototype,bNe=xNe.hasOwnProperty;o(wNe,"baseHas");Hte=wNe});function TNe(t,e){return t!=null&&NT(t,e,Hte)}var Bt,qte=N(()=>{"use strict";Wte();EL();o(TNe,"has");Bt=TNe});function ENe(t){return typeof t=="string"||!Pt(t)&&ri(t)&&da(t)==kNe}var kNe,yi,VT=N(()=>{"use strict";ku();Un();No();kNe="[object String]";o(ENe,"isString");yi=ENe});function SNe(t,e){return Ns(e,function(r){return t[r]})}var Yte,Xte=N(()=>{"use strict";Bd();o(SNe,"baseValues");Yte=SNe});function CNe(t){return t==null?[]:Yte(t,zr(t))}var br,OL=N(()=>{"use strict";Xte();xc();o(CNe,"values");br=CNe});function _Ne(t,e,r,n){t=ci(t)?t:br(t),r=r&&!n?vc(r):0;var i=t.length;return r<0&&(r=ANe(i+r,0)),yi(t)?r<=i&&t.indexOf(e,r)>-1:!!i&&wm(t,e,r)>-1}var ANe,qn,jte=N(()=>{"use strict";iT();Mo();VT();bm();OL();ANe=Math.max;o(_Ne,"includes");qn=_Ne});function LNe(t,e,r){var n=t==null?0:t.length;if(!n)return-1;var i=r==null?0:vc(r);return i<0&&(i=DNe(n+i,0)),wm(t,e,i)}var DNe,UT,Kte=N(()=>{"use strict";iT();bm();DNe=Math.max;o(LNe,"indexOf");UT=LNe});function ONe(t){if(t==null)return!0;if(ci(t)&&(Pt(t)||typeof t=="string"||typeof t.splice=="function"||Sl(t)||Oh(t)||El(t)))return!t.length;var e=io(t);if(e==RNe||e==NNe)return!t.size;if(uc(t))return!Tm(t).length;for(var r in t)if(INe.call(t,r))return!1;return!0}var RNe,NNe,MNe,INe,ur,HT=N(()=>{"use strict";sT();$d();J0();Un();Mo();tm();Z0();r2();RNe="[object Map]",NNe="[object Set]",MNe=Object.prototype,INe=MNe.hasOwnProperty;o(ONe,"isEmpty");ur=ONe});function BNe(t){return ri(t)&&da(t)==PNe}var PNe,Qte,Zte=N(()=>{"use strict";ku();No();PNe="[object RegExp]";o(BNe,"baseIsRegExp");Qte=BNe});var Jte,FNe,zo,ere=N(()=>{"use strict";Zte();_d();t2();Jte=Oo&&Oo.isRegExp,FNe=Jte?Io(Jte):Qte,zo=FNe});function $Ne(t){return t===void 0}var pr,tre=N(()=>{"use strict";o($Ne,"isUndefined");pr=$Ne});function zNe(t,e){return t<e}var WT,PL=N(()=>{"use strict";o(zNe,"baseLt");WT=zNe});function GNe(t,e){var r={};return e=pn(e,3),Nm(t,function(n,i,a){cc(r,i,e(n,i,a))}),r}var zd,rre=N(()=>{"use strict";Y0();OT();rs();o(GNe,"mapValues");zd=GNe});function VNe(t,e,r){for(var n=-1,i=t.length;++n<i;){var a=t[n],s=e(a);if(s!=null&&(l===void 0?s===s&&!no(s):r(s,l)))var l=s,u=a}return u}var Om,qT=N(()=>{"use strict";Pd();o(VNe,"baseExtremum");Om=VNe});function UNe(t){return t&&t.length?Om(t,ta,Vte):void 0}var Is,nre=N(()=>{"use strict";qT();Ute();Cu();o(UNe,"max");Is=UNe});function HNe(t){return t&&t.length?Om(t,ta,WT):void 0}var Dl,BL=N(()=>{"use strict";qT();PL();Cu();o(HNe,"min");Dl=HNe});function WNe(t,e){return t&&t.length?Om(t,pn(e,2),WT):void 0}var Gd,ire=N(()=>{"use strict";qT();rs();PL();o(WNe,"minBy");Gd=WNe});function YNe(t){if(typeof t!="function")throw new TypeError(qNe);return function(){var e=arguments;switch(e.length){case 0:return!t.call(this);case 1:return!t.call(this,e[0]);case 2:return!t.call(this,e[0],e[1]);case 3:return!t.call(this,e[0],e[1],e[2])}return!t.apply(this,e)}}var qNe,are,sre=N(()=>{"use strict";qNe="Expected a function";o(YNe,"negate");are=YNe});function XNe(t,e,r,n){if(!bn(t))return t;e=Yh(e,t);for(var i=-1,a=e.length,s=a-1,l=t;l!=null&&++i<a;){var u=bc(e[i]),h=r;if(u==="__proto__"||u==="constructor"||u==="prototype")return t;if(i!=s){var f=l[u];h=n?n(f,u,l):void 0,h===void 0&&(h=bn(f)?f:Ph(e[i+1])?[]:{})}hc(l,u,h),l=l[u]}return t}var ore,lre=N(()=>{"use strict";rm();E2();i2();Js();Em();o(XNe,"baseSet");ore=XNe});function jNe(t,e,r){for(var n=-1,i=e.length,a={};++n<i;){var s=e[n],l=Xh(t,s);r(l,s)&&ore(a,Yh(s,t),l)}return a}var YT,FL=N(()=>{"use strict";S2();lre();E2();o(jNe,"basePickBy");YT=jNe});function KNe(t,e){if(t==null)return{};var r=Ns(yT(t),function(n){return[n]});return e=pn(e),YT(t,r,function(n,i){return e(n,i[0])})}var Os,cre=N(()=>{"use strict";Bd();rs();FL();dL();o(KNe,"pickBy");Os=KNe});function QNe(t,e){var r=t.length;for(t.sort(e);r--;)t[r]=t[r].value;return t}var ure,hre=N(()=>{"use strict";o(QNe,"baseSortBy");ure=QNe});function ZNe(t,e){if(t!==e){var r=t!==void 0,n=t===null,i=t===t,a=no(t),s=e!==void 0,l=e===null,u=e===e,h=no(e);if(!l&&!h&&!a&&t>e||a&&s&&u&&!l&&!h||n&&s&&u||!r&&u||!i)return 1;if(!n&&!a&&!h&&t<e||h&&r&&i&&!n&&!a||l&&r&&i||!s&&i||!u)return-1}return 0}var fre,dre=N(()=>{"use strict";Pd();o(ZNe,"compareAscending");fre=ZNe});function JNe(t,e,r){for(var n=-1,i=t.criteria,a=e.criteria,s=i.length,l=r.length;++n<s;){var u=fre(i[n],a[n]);if(u){if(n>=l)return u;var h=r[n];return u*(h=="desc"?-1:1)}}return t.index-e.index}var pre,mre=N(()=>{"use strict";dre();o(JNe,"compareMultiple");pre=JNe});function eMe(t,e,r){e.length?e=Ns(e,function(a){return Pt(a)?function(s){return Xh(s,a.length===1?a[0]:a)}:a}):e=[ta];var n=-1;e=Ns(e,Io(pn));var i=GT(t,function(a,s,l){var u=Ns(e,function(h){return h(a)});return{criteria:u,index:++n,value:a}});return ure(i,function(a,s){return pre(a,s,r)})}var gre,yre=N(()=>{"use strict";Bd();S2();rs();LL();hre();_d();mre();Cu();Un();o(eMe,"baseOrderBy");gre=eMe});var tMe,vre,xre=N(()=>{"use strict";CL();tMe=IT("length"),vre=tMe});function dMe(t){for(var e=bre.lastIndex=0;bre.test(t);)++e;return e}var wre,rMe,nMe,iMe,aMe,sMe,oMe,$L,zL,lMe,Tre,kre,Ere,cMe,Sre,Cre,uMe,hMe,fMe,bre,Are,_re=N(()=>{"use strict";wre="\\ud800-\\udfff",rMe="\\u0300-\\u036f",nMe="\\ufe20-\\ufe2f",iMe="\\u20d0-\\u20ff",aMe=rMe+nMe+iMe,sMe="\\ufe0e\\ufe0f",oMe="["+wre+"]",$L="["+aMe+"]",zL="\\ud83c[\\udffb-\\udfff]",lMe="(?:"+$L+"|"+zL+")",Tre="[^"+wre+"]",kre="(?:\\ud83c[\\udde6-\\uddff]){2}",Ere="[\\ud800-\\udbff][\\udc00-\\udfff]",cMe="\\u200d",Sre=lMe+"?",Cre="["+sMe+"]?",uMe="(?:"+cMe+"(?:"+[Tre,kre,Ere].join("|")+")"+Cre+Sre+")*",hMe=Cre+Sre+uMe,fMe="(?:"+[Tre+$L+"?",$L,kre,Ere,oMe].join("|")+")",bre=RegExp(zL+"(?="+zL+")|"+fMe+hMe,"g");o(dMe,"unicodeSize");Are=dMe});function pMe(t){return $J(t)?Are(t):vre(t)}var Dre,Lre=N(()=>{"use strict";xre();zJ();_re();o(pMe,"stringSize");Dre=pMe});function mMe(t,e){return YT(t,e,function(r,n){return MT(t,n)})}var Rre,Nre=N(()=>{"use strict";FL();SL();o(mMe,"basePick");Rre=mMe});var gMe,Vd,Mre=N(()=>{"use strict";Nre();FJ();gMe=BJ(function(t,e){return t==null?{}:Rre(t,e)}),Vd=gMe});function xMe(t,e,r,n){for(var i=-1,a=vMe(yMe((e-t)/(r||1)),0),s=Array(a);a--;)s[n?a:++i]=t,t+=r;return s}var yMe,vMe,Ire,Ore=N(()=>{"use strict";yMe=Math.ceil,vMe=Math.max;o(xMe,"baseRange");Ire=xMe});function bMe(t){return function(e,r,n){return n&&typeof n!="number"&&eo(e,r,n)&&(r=n=void 0),e=xm(e),r===void 0?(r=e,e=0):r=xm(r),n=n===void 0?e<r?1:-1:xm(n),Ire(e,r,n,t)}}var Pre,Bre=N(()=>{"use strict";Ore();Ld();rL();o(bMe,"createRange");Pre=bMe});var wMe,Go,Fre=N(()=>{"use strict";Bre();wMe=Pre(),Go=wMe});function TMe(t,e,r,n,i){return i(t,function(a,s,l){r=n?(n=!1,a):e(r,a,s,l)}),r}var $re,zre=N(()=>{"use strict";o(TMe,"baseReduce");$re=TMe});function kMe(t,e,r){var n=Pt(t)?GJ:$re,i=arguments.length<3;return n(t,pn(e,4),r,i,Ms)}var Xr,GL=N(()=>{"use strict";VJ();Kh();rs();zre();Un();o(kMe,"reduce");Xr=kMe});function EMe(t,e){var r=Pt(t)?Am:zT;return r(t,are(pn(e,3)))}var Jh,Gre=N(()=>{"use strict";fT();_L();rs();Un();sre();o(EMe,"reject");Jh=EMe});function AMe(t){if(t==null)return 0;if(ci(t))return yi(t)?Dre(t):t.length;var e=io(t);return e==SMe||e==CMe?t.size:Tm(t).length}var SMe,CMe,VL,Vre=N(()=>{"use strict";sT();$d();Mo();VT();Lre();SMe="[object Map]",CMe="[object Set]";o(AMe,"size");VL=AMe});function _Me(t,e){var r;return Ms(t,function(n,i,a){return r=e(n,i,a),!r}),!!r}var Ure,Hre=N(()=>{"use strict";Kh();o(_Me,"baseSome");Ure=_Me});function DMe(t,e,r){var n=Pt(t)?ET:Ure;return r&&eo(t,e,r)&&(e=void 0),n(t,pn(e,3))}var A2,Wre=N(()=>{"use strict";vL();rs();Hre();Un();Ld();o(DMe,"some");A2=DMe});var LMe,kc,qre=N(()=>{"use strict";Cm();yre();nm();Ld();LMe=fc(function(t,e){if(t==null)return[];var r=e.length;return r>1&&eo(t,e[0],e[1])?e=[]:r>2&&eo(e[0],e[1],e[2])&&(e=[e[0]]),gre(t,wc(e,1),[])}),kc=LMe});var RMe,NMe,Yre,Xre=N(()=>{"use strict";pL();nL();AT();RMe=1/0,NMe=jh&&1/Rm(new jh([,-0]))[1]==RMe?function(t){return new jh(t)}:ni,Yre=NMe});function IMe(t,e,r){var n=-1,i=aT,a=t.length,s=!0,l=[],u=l;if(r)s=!1,i=BT;else if(a>=MMe){var h=e?null:Yre(t);if(h)return Rm(h);s=!1,i=Lm,u=new Dm}else u=e?[]:l;e:for(;++n<a;){var f=t[n],d=e?e(f):f;if(f=r||f!==0?f:0,s&&d===d){for(var p=u.length;p--;)if(u[p]===d)continue e;e&&u.push(d),l.push(f)}else i(u,d,r)||(u!==l&&u.push(d),l.push(f))}return l}var MMe,Pm,XT=N(()=>{"use strict";kT();sL();AL();ST();Xre();AT();MMe=200;o(IMe,"baseUniq");Pm=IMe});var OMe,UL,jre=N(()=>{"use strict";Cm();nm();XT();ow();OMe=fc(function(t){return Pm(wc(t,1,Ad,!0))}),UL=OMe});function PMe(t){return t&&t.length?Pm(t):[]}var Bm,Kre=N(()=>{"use strict";XT();o(PMe,"uniq");Bm=PMe});function BMe(t,e){return t&&t.length?Pm(t,pn(e,2)):[]}var Qre,Zre=N(()=>{"use strict";rs();XT();o(BMe,"uniqBy");Qre=BMe});function $Me(t){var e=++FMe;return lT(t)+e}var FMe,Ud,Jre=N(()=>{"use strict";oL();FMe=0;o($Me,"uniqueId");Ud=$Me});function zMe(t,e,r){for(var n=-1,i=t.length,a=e.length,s={};++n<i;){var l=n<a?e[n]:void 0;r(s,t[n],l)}return s}var ene,tne=N(()=>{"use strict";o(zMe,"baseZipObject");ene=zMe});function GMe(t,e){return ene(t||[],e||[],hc)}var jT,rne=N(()=>{"use strict";rm();tne();o(GMe,"zipObject");jT=GMe});var qt=N(()=>{"use strict";CJ();gL();Lee();Ree();$9();xte();Tte();Ete();Ste();Cte();Rte();DL();Pte();Fte();RL();uT();$T();$te();zte();Gte();qte();Cu();jte();Kte();Un();HT();Yv();Js();ere();VT();tre();xc();kte();Im();rre();nre();V9();BL();ire();nL();yte();Mre();cre();Fre();GL();Gre();Vre();Wre();qre();jre();Kre();Jre();OL();rne();});function ine(t,e){t[e]?t[e]++:t[e]=1}function ane(t,e){--t[e]||delete t[e]}function _2(t,e,r,n){var i=""+e,a=""+r;if(!t&&i>a){var s=i;i=a,a=s}return i+nne+a+nne+(pr(n)?VMe:n)}function UMe(t,e,r,n){var i=""+e,a=""+r;if(!t&&i>a){var s=i;i=a,a=s}var l={v:i,w:a};return n&&(l.name=n),l}function HL(t,e){return _2(t,e.v,e.w,e.name)}var VMe,Hd,nne,sn,KT=N(()=>{"use strict";qt();VMe="\0",Hd="\0",nne="",sn=class{static{o(this,"Graph")}constructor(e={}){this._isDirected=Object.prototype.hasOwnProperty.call(e,"directed")?e.directed:!0,this._isMultigraph=Object.prototype.hasOwnProperty.call(e,"multigraph")?e.multigraph:!1,this._isCompound=Object.prototype.hasOwnProperty.call(e,"compound")?e.compound:!1,this._label=void 0,this._defaultNodeLabelFn=As(void 0),this._defaultEdgeLabelFn=As(void 0),this._nodes={},this._isCompound&&(this._parent={},this._children={},this._children[Hd]={}),this._in={},this._preds={},this._out={},this._sucs={},this._edgeObjs={},this._edgeLabels={}}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(e){return this._label=e,this}graph(){return this._label}setDefaultNodeLabel(e){return Si(e)||(e=As(e)),this._defaultNodeLabelFn=e,this}nodeCount(){return this._nodeCount}nodes(){return zr(this._nodes)}sources(){var e=this;return Yr(this.nodes(),function(r){return ur(e._in[r])})}sinks(){var e=this;return Yr(this.nodes(),function(r){return ur(e._out[r])})}setNodes(e,r){var n=arguments,i=this;return Ae(e,function(a){n.length>1?i.setNode(a,r):i.setNode(a)}),this}setNode(e,r){return Object.prototype.hasOwnProperty.call(this._nodes,e)?(arguments.length>1&&(this._nodes[e]=r),this):(this._nodes[e]=arguments.length>1?r:this._defaultNodeLabelFn(e),this._isCompound&&(this._parent[e]=Hd,this._children[e]={},this._children[Hd][e]=!0),this._in[e]={},this._preds[e]={},this._out[e]={},this._sucs[e]={},++this._nodeCount,this)}node(e){return this._nodes[e]}hasNode(e){return Object.prototype.hasOwnProperty.call(this._nodes,e)}removeNode(e){if(Object.prototype.hasOwnProperty.call(this._nodes,e)){var r=o(n=>this.removeEdge(this._edgeObjs[n]),"removeEdge");delete this._nodes[e],this._isCompound&&(this._removeFromParentsChildList(e),delete this._parent[e],Ae(this.children(e),n=>{this.setParent(n)}),delete this._children[e]),Ae(zr(this._in[e]),r),delete this._in[e],delete this._preds[e],Ae(zr(this._out[e]),r),delete this._out[e],delete this._sucs[e],--this._nodeCount}return this}setParent(e,r){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(pr(r))r=Hd;else{r+="";for(var n=r;!pr(n);n=this.parent(n))if(n===e)throw new Error("Setting "+r+" as parent of "+e+" would create a cycle");this.setNode(r)}return this.setNode(e),this._removeFromParentsChildList(e),this._parent[e]=r,this._children[r][e]=!0,this}_removeFromParentsChildList(e){delete this._children[this._parent[e]][e]}parent(e){if(this._isCompound){var r=this._parent[e];if(r!==Hd)return r}}children(e){if(pr(e)&&(e=Hd),this._isCompound){var r=this._children[e];if(r)return zr(r)}else{if(e===Hd)return this.nodes();if(this.hasNode(e))return[]}}predecessors(e){var r=this._preds[e];if(r)return zr(r)}successors(e){var r=this._sucs[e];if(r)return zr(r)}neighbors(e){var r=this.predecessors(e);if(r)return UL(r,this.successors(e))}isLeaf(e){var r;return this.isDirected()?r=this.successors(e):r=this.neighbors(e),r.length===0}filterNodes(e){var r=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});r.setGraph(this.graph());var n=this;Ae(this._nodes,function(s,l){e(l)&&r.setNode(l,s)}),Ae(this._edgeObjs,function(s){r.hasNode(s.v)&&r.hasNode(s.w)&&r.setEdge(s,n.edge(s))});var i={};function a(s){var l=n.parent(s);return l===void 0||r.hasNode(l)?(i[s]=l,l):l in i?i[l]:a(l)}return o(a,"findParent"),this._isCompound&&Ae(r.nodes(),function(s){r.setParent(s,a(s))}),r}setDefaultEdgeLabel(e){return Si(e)||(e=As(e)),this._defaultEdgeLabelFn=e,this}edgeCount(){return this._edgeCount}edges(){return br(this._edgeObjs)}setPath(e,r){var n=this,i=arguments;return Xr(e,function(a,s){return i.length>1?n.setEdge(a,s,r):n.setEdge(a,s),s}),this}setEdge(){var e,r,n,i,a=!1,s=arguments[0];typeof s=="object"&&s!==null&&"v"in s?(e=s.v,r=s.w,n=s.name,arguments.length===2&&(i=arguments[1],a=!0)):(e=s,r=arguments[1],n=arguments[3],arguments.length>2&&(i=arguments[2],a=!0)),e=""+e,r=""+r,pr(n)||(n=""+n);var l=_2(this._isDirected,e,r,n);if(Object.prototype.hasOwnProperty.call(this._edgeLabels,l))return a&&(this._edgeLabels[l]=i),this;if(!pr(n)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(e),this.setNode(r),this._edgeLabels[l]=a?i:this._defaultEdgeLabelFn(e,r,n);var u=UMe(this._isDirected,e,r,n);return e=u.v,r=u.w,Object.freeze(u),this._edgeObjs[l]=u,ine(this._preds[r],e),ine(this._sucs[e],r),this._in[r][l]=u,this._out[e][l]=u,this._edgeCount++,this}edge(e,r,n){var i=arguments.length===1?HL(this._isDirected,arguments[0]):_2(this._isDirected,e,r,n);return this._edgeLabels[i]}hasEdge(e,r,n){var i=arguments.length===1?HL(this._isDirected,arguments[0]):_2(this._isDirected,e,r,n);return Object.prototype.hasOwnProperty.call(this._edgeLabels,i)}removeEdge(e,r,n){var i=arguments.length===1?HL(this._isDirected,arguments[0]):_2(this._isDirected,e,r,n),a=this._edgeObjs[i];return a&&(e=a.v,r=a.w,delete this._edgeLabels[i],delete this._edgeObjs[i],ane(this._preds[r],e),ane(this._sucs[e],r),delete this._in[r][i],delete this._out[e][i],this._edgeCount--),this}inEdges(e,r){var n=this._in[e];if(n){var i=br(n);return r?Yr(i,function(a){return a.v===r}):i}}outEdges(e,r){var n=this._out[e];if(n){var i=br(n);return r?Yr(i,function(a){return a.w===r}):i}}nodeEdges(e,r){var n=this.inEdges(e,r);if(n)return n.concat(this.outEdges(e,r))}};sn.prototype._nodeCount=0;sn.prototype._edgeCount=0;o(ine,"incrementOrInitEntry");o(ane,"decrementOrRemoveEntry");o(_2,"edgeArgsToId");o(UMe,"edgeArgsToObj");o(HL,"edgeObjToId")});var Vo=N(()=>{"use strict";KT()});function sne(t){t._prev._next=t._next,t._next._prev=t._prev,delete t._next,delete t._prev}function HMe(t,e){if(t!=="_next"&&t!=="_prev")return e}var ZT,one=N(()=>{"use strict";ZT=class{static{o(this,"List")}constructor(){var e={};e._next=e._prev=e,this._sentinel=e}dequeue(){var e=this._sentinel,r=e._prev;if(r!==e)return sne(r),r}enqueue(e){var r=this._sentinel;e._prev&&e._next&&sne(e),e._next=r._next,r._next._prev=e,r._next=e,e._prev=r}toString(){for(var e=[],r=this._sentinel,n=r._prev;n!==r;)e.push(JSON.stringify(n,HMe)),n=n._prev;return"["+e.join(", ")+"]"}};o(sne,"unlink");o(HMe,"filterOutLinks")});function lne(t,e){if(t.nodeCount()<=1)return[];var r=YMe(t,e||WMe),n=qMe(r.graph,r.buckets,r.zeroIdx);return qr(Je(n,function(i){return t.outEdges(i.v,i.w)}))}function qMe(t,e,r){for(var n=[],i=e[e.length-1],a=e[0],s;t.nodeCount();){for(;s=a.dequeue();)WL(t,e,r,s);for(;s=i.dequeue();)WL(t,e,r,s);if(t.nodeCount()){for(var l=e.length-2;l>0;--l)if(s=e[l].dequeue(),s){n=n.concat(WL(t,e,r,s,!0));break}}}return n}function WL(t,e,r,n,i){var a=i?[]:void 0;return Ae(t.inEdges(n.v),function(s){var l=t.edge(s),u=t.node(s.v);i&&a.push({v:s.v,w:s.w}),u.out-=l,qL(e,r,u)}),Ae(t.outEdges(n.v),function(s){var l=t.edge(s),u=s.w,h=t.node(u);h.in-=l,qL(e,r,h)}),t.removeNode(n.v),a}function YMe(t,e){var r=new sn,n=0,i=0;Ae(t.nodes(),function(l){r.setNode(l,{v:l,in:0,out:0})}),Ae(t.edges(),function(l){var u=r.edge(l.v,l.w)||0,h=e(l),f=u+h;r.setEdge(l.v,l.w,f),i=Math.max(i,r.node(l.v).out+=h),n=Math.max(n,r.node(l.w).in+=h)});var a=Go(i+n+3).map(function(){return new ZT}),s=n+1;return Ae(r.nodes(),function(l){qL(a,s,r.node(l))}),{graph:r,buckets:a,zeroIdx:s}}function qL(t,e,r){r.out?r.in?t[r.out-r.in+e].enqueue(r):t[t.length-1].enqueue(r):t[0].enqueue(r)}var WMe,cne=N(()=>{"use strict";qt();Vo();one();WMe=As(1);o(lne,"greedyFAS");o(qMe,"doGreedyFAS");o(WL,"removeNode");o(YMe,"buildState");o(qL,"assignBucket")});function une(t){var e=t.graph().acyclicer==="greedy"?lne(t,r(t)):XMe(t);Ae(e,function(n){var i=t.edge(n);t.removeEdge(n),i.forwardName=n.name,i.reversed=!0,t.setEdge(n.w,n.v,i,Ud("rev"))});function r(n){return function(i){return n.edge(i).weight}}o(r,"weightFn")}function XMe(t){var e=[],r={},n={};function i(a){Object.prototype.hasOwnProperty.call(n,a)||(n[a]=!0,r[a]=!0,Ae(t.outEdges(a),function(s){Object.prototype.hasOwnProperty.call(r,s.w)?e.push(s):i(s.w)}),delete r[a])}return o(i,"dfs"),Ae(t.nodes(),i),e}function hne(t){Ae(t.edges(),function(e){var r=t.edge(e);if(r.reversed){t.removeEdge(e);var n=r.forwardName;delete r.reversed,delete r.forwardName,t.setEdge(e.w,e.v,r,n)}})}var YL=N(()=>{"use strict";qt();cne();o(une,"run");o(XMe,"dfsFAS");o(hne,"undo")});function Ec(t,e,r,n){var i;do i=Ud(n);while(t.hasNode(i));return r.dummy=e,t.setNode(i,r),i}function dne(t){var e=new sn().setGraph(t.graph());return Ae(t.nodes(),function(r){e.setNode(r,t.node(r))}),Ae(t.edges(),function(r){var n=e.edge(r.v,r.w)||{weight:0,minlen:1},i=t.edge(r);e.setEdge(r.v,r.w,{weight:n.weight+i.weight,minlen:Math.max(n.minlen,i.minlen)})}),e}function JT(t){var e=new sn({multigraph:t.isMultigraph()}).setGraph(t.graph());return Ae(t.nodes(),function(r){t.children(r).length||e.setNode(r,t.node(r))}),Ae(t.edges(),function(r){e.setEdge(r,t.edge(r))}),e}function XL(t,e){var r=t.x,n=t.y,i=e.x-r,a=e.y-n,s=t.width/2,l=t.height/2;if(!i&&!a)throw new Error("Not possible to find intersection inside of the rectangle");var u,h;return Math.abs(a)*s>Math.abs(i)*l?(a<0&&(l=-l),u=l*i/a,h=l):(i<0&&(s=-s),u=s,h=s*a/i),{x:r+u,y:n+h}}function ef(t){var e=Je(Go(KL(t)+1),function(){return[]});return Ae(t.nodes(),function(r){var n=t.node(r),i=n.rank;pr(i)||(e[i][n.order]=r)}),e}function pne(t){var e=Dl(Je(t.nodes(),function(r){return t.node(r).rank}));Ae(t.nodes(),function(r){var n=t.node(r);Bt(n,"rank")&&(n.rank-=e)})}function mne(t){var e=Dl(Je(t.nodes(),function(a){return t.node(a).rank})),r=[];Ae(t.nodes(),function(a){var s=t.node(a).rank-e;r[s]||(r[s]=[]),r[s].push(a)});var n=0,i=t.graph().nodeRankFactor;Ae(r,function(a,s){pr(a)&&s%i!==0?--n:n&&Ae(a,function(l){t.node(l).rank+=n})})}function jL(t,e,r,n){var i={width:0,height:0};return arguments.length>=4&&(i.rank=r,i.order=n),Ec(t,"border",i,e)}function KL(t){return Is(Je(t.nodes(),function(e){var r=t.node(e).rank;if(!pr(r))return r}))}function gne(t,e){var r={lhs:[],rhs:[]};return Ae(t,function(n){e(n)?r.lhs.push(n):r.rhs.push(n)}),r}function yne(t,e){var r=PT();try{return e()}finally{console.log(t+" time: "+(PT()-r)+"ms")}}function vne(t,e){return e()}var Sc=N(()=>{"use strict";qt();Vo();o(Ec,"addDummyNode");o(dne,"simplify");o(JT,"asNonCompoundGraph");o(XL,"intersectRect");o(ef,"buildLayerMatrix");o(pne,"normalizeRanks");o(mne,"removeEmptyRanks");o(jL,"addBorderNode");o(KL,"maxRank");o(gne,"partition");o(yne,"time");o(vne,"notime")});function bne(t){function e(r){var n=t.children(r),i=t.node(r);if(n.length&&Ae(n,e),Object.prototype.hasOwnProperty.call(i,"minRank")){i.borderLeft=[],i.borderRight=[];for(var a=i.minRank,s=i.maxRank+1;a<s;++a)xne(t,"borderLeft","_bl",r,i,a),xne(t,"borderRight","_br",r,i,a)}}o(e,"dfs"),Ae(t.children(),e)}function xne(t,e,r,n,i,a){var s={width:0,height:0,rank:a,borderType:e},l=i[e][a-1],u=Ec(t,"border",s,r);i[e][a]=u,t.setParent(u,n),l&&t.setEdge(l,u,{weight:1})}var wne=N(()=>{"use strict";qt();Sc();o(bne,"addBorderSegments");o(xne,"addBorderNode")});function kne(t){var e=t.graph().rankdir.toLowerCase();(e==="lr"||e==="rl")&&Sne(t)}function Ene(t){var e=t.graph().rankdir.toLowerCase();(e==="bt"||e==="rl")&&jMe(t),(e==="lr"||e==="rl")&&(KMe(t),Sne(t))}function Sne(t){Ae(t.nodes(),function(e){Tne(t.node(e))}),Ae(t.edges(),function(e){Tne(t.edge(e))})}function Tne(t){var e=t.width;t.width=t.height,t.height=e}function jMe(t){Ae(t.nodes(),function(e){QL(t.node(e))}),Ae(t.edges(),function(e){var r=t.edge(e);Ae(r.points,QL),Object.prototype.hasOwnProperty.call(r,"y")&&QL(r)})}function QL(t){t.y=-t.y}function KMe(t){Ae(t.nodes(),function(e){ZL(t.node(e))}),Ae(t.edges(),function(e){var r=t.edge(e);Ae(r.points,ZL),Object.prototype.hasOwnProperty.call(r,"x")&&ZL(r)})}function ZL(t){var e=t.x;t.x=t.y,t.y=e}var Cne=N(()=>{"use strict";qt();o(kne,"adjust");o(Ene,"undo");o(Sne,"swapWidthHeight");o(Tne,"swapWidthHeightOne");o(jMe,"reverseY");o(QL,"reverseYOne");o(KMe,"swapXY");o(ZL,"swapXYOne")});function Ane(t){t.graph().dummyChains=[],Ae(t.edges(),function(e){ZMe(t,e)})}function ZMe(t,e){var r=e.v,n=t.node(r).rank,i=e.w,a=t.node(i).rank,s=e.name,l=t.edge(e),u=l.labelRank;if(a!==n+1){t.removeEdge(e);var h=void 0,f,d;for(d=0,++n;n<a;++d,++n)l.points=[],h={width:0,height:0,edgeLabel:l,edgeObj:e,rank:n},f=Ec(t,"edge",h,"_d"),n===u&&(h.width=l.width,h.height=l.height,h.dummy="edge-label",h.labelpos=l.labelpos),t.setEdge(r,f,{weight:l.weight},s),d===0&&t.graph().dummyChains.push(f),r=f;t.setEdge(r,i,{weight:l.weight},s)}}function _ne(t){Ae(t.graph().dummyChains,function(e){var r=t.node(e),n=r.edgeLabel,i;for(t.setEdge(r.edgeObj,n);r.dummy;)i=t.successors(e)[0],t.removeNode(e),n.points.push({x:r.x,y:r.y}),r.dummy==="edge-label"&&(n.x=r.x,n.y=r.y,n.width=r.width,n.height=r.height),e=i,r=t.node(e)})}var JL=N(()=>{"use strict";qt();Sc();o(Ane,"run");o(ZMe,"normalizeEdge");o(_ne,"undo")});function D2(t){var e={};function r(n){var i=t.node(n);if(Object.prototype.hasOwnProperty.call(e,n))return i.rank;e[n]=!0;var a=Dl(Je(t.outEdges(n),function(s){return r(s.w)-t.edge(s).minlen}));return(a===Number.POSITIVE_INFINITY||a===void 0||a===null)&&(a=0),i.rank=a}o(r,"dfs"),Ae(t.sources(),r)}function Wd(t,e){return t.node(e.w).rank-t.node(e.v).rank-t.edge(e).minlen}var ek=N(()=>{"use strict";qt();o(D2,"longestPath");o(Wd,"slack")});function tk(t){var e=new sn({directed:!1}),r=t.nodes()[0],n=t.nodeCount();e.setNode(r,{});for(var i,a;JMe(e,t)<n;)i=eIe(e,t),a=e.hasNode(i.v)?Wd(t,i):-Wd(t,i),tIe(e,t,a);return e}function JMe(t,e){function r(n){Ae(e.nodeEdges(n),function(i){var a=i.v,s=n===a?i.w:a;!t.hasNode(s)&&!Wd(e,i)&&(t.setNode(s,{}),t.setEdge(n,s,{}),r(s))})}return o(r,"dfs"),Ae(t.nodes(),r),t.nodeCount()}function eIe(t,e){return Gd(e.edges(),function(r){if(t.hasNode(r.v)!==t.hasNode(r.w))return Wd(e,r)})}function tIe(t,e,r){Ae(t.nodes(),function(n){e.node(n).rank+=r})}var eR=N(()=>{"use strict";qt();Vo();ek();o(tk,"feasibleTree");o(JMe,"tightTree");o(eIe,"findMinSlackEdge");o(tIe,"shiftRanks")});var Lne=N(()=>{"use strict"});var tR=N(()=>{"use strict"});var cWt,rR=N(()=>{"use strict";qt();tR();cWt=As(1)});var Rne=N(()=>{"use strict";rR()});var nR=N(()=>{"use strict"});var Nne=N(()=>{"use strict";nR()});var bWt,Mne=N(()=>{"use strict";qt();bWt=As(1)});function iR(t){var e={},r={},n=[];function i(a){if(Object.prototype.hasOwnProperty.call(r,a))throw new L2;Object.prototype.hasOwnProperty.call(e,a)||(r[a]=!0,e[a]=!0,Ae(t.predecessors(a),i),delete r[a],n.push(a))}if(o(i,"visit"),Ae(t.sinks(),i),VL(e)!==t.nodeCount())throw new L2;return n}function L2(){}var aR=N(()=>{"use strict";qt();iR.CycleException=L2;o(iR,"topsort");o(L2,"CycleException");L2.prototype=new Error});var Ine=N(()=>{"use strict";aR()});function rk(t,e,r){Pt(e)||(e=[e]);var n=(t.isDirected()?t.successors:t.neighbors).bind(t),i=[],a={};return Ae(e,function(s){if(!t.hasNode(s))throw new Error("Graph does not have node: "+s);One(t,s,r==="post",a,n,i)}),i}function One(t,e,r,n,i,a){Object.prototype.hasOwnProperty.call(n,e)||(n[e]=!0,r||a.push(e),Ae(i(e),function(s){One(t,s,r,n,i,a)}),r&&a.push(e))}var sR=N(()=>{"use strict";qt();o(rk,"dfs");o(One,"doDfs")});function oR(t,e){return rk(t,e,"post")}var Pne=N(()=>{"use strict";sR();o(oR,"postorder")});function lR(t,e){return rk(t,e,"pre")}var Bne=N(()=>{"use strict";sR();o(lR,"preorder")});var Fne=N(()=>{"use strict";tR();KT()});var $ne=N(()=>{"use strict";Lne();rR();Rne();Nne();Mne();Ine();Pne();Bne();Fne();nR();aR()});function rf(t){t=dne(t),D2(t);var e=tk(t);uR(e),cR(e,t);for(var r,n;r=Une(e);)n=Hne(e,t,r),Wne(e,t,r,n)}function cR(t,e){var r=oR(t,t.nodes());r=r.slice(0,r.length-1),Ae(r,function(n){sIe(t,e,n)})}function sIe(t,e,r){var n=t.node(r),i=n.parent;t.edge(r,i).cutvalue=Gne(t,e,r)}function Gne(t,e,r){var n=t.node(r),i=n.parent,a=!0,s=e.edge(r,i),l=0;return s||(a=!1,s=e.edge(i,r)),l=s.weight,Ae(e.nodeEdges(r),function(u){var h=u.v===r,f=h?u.w:u.v;if(f!==i){var d=h===a,p=e.edge(u).weight;if(l+=d?p:-p,lIe(t,r,f)){var m=t.edge(r,f).cutvalue;l+=d?-m:m}}}),l}function uR(t,e){arguments.length<2&&(e=t.nodes()[0]),Vne(t,{},1,e)}function Vne(t,e,r,n,i){var a=r,s=t.node(n);return e[n]=!0,Ae(t.neighbors(n),function(l){Object.prototype.hasOwnProperty.call(e,l)||(r=Vne(t,e,r,l,n))}),s.low=a,s.lim=r++,i?s.parent=i:delete s.parent,r}function Une(t){return ns(t.edges(),function(e){return t.edge(e).cutvalue<0})}function Hne(t,e,r){var n=r.v,i=r.w;e.hasEdge(n,i)||(n=r.w,i=r.v);var a=t.node(n),s=t.node(i),l=a,u=!1;a.lim>s.lim&&(l=s,u=!0);var h=Yr(e.edges(),function(f){return u===zne(t,t.node(f.v),l)&&u!==zne(t,t.node(f.w),l)});return Gd(h,function(f){return Wd(e,f)})}function Wne(t,e,r,n){var i=r.v,a=r.w;t.removeEdge(i,a),t.setEdge(n.v,n.w,{}),uR(t),cR(t,e),oIe(t,e)}function oIe(t,e){var r=ns(t.nodes(),function(i){return!e.node(i).parent}),n=lR(t,r);n=n.slice(1),Ae(n,function(i){var a=t.node(i).parent,s=e.edge(i,a),l=!1;s||(s=e.edge(a,i),l=!0),e.node(i).rank=e.node(a).rank+(l?s.minlen:-s.minlen)})}function lIe(t,e,r){return t.hasEdge(e,r)}function zne(t,e,r){return r.low<=e.lim&&e.lim<=r.lim}var qne=N(()=>{"use strict";qt();$ne();Sc();eR();ek();rf.initLowLimValues=uR;rf.initCutValues=cR;rf.calcCutValue=Gne;rf.leaveEdge=Une;rf.enterEdge=Hne;rf.exchangeEdges=Wne;o(rf,"networkSimplex");o(cR,"initCutValues");o(sIe,"assignCutValue");o(Gne,"calcCutValue");o(uR,"initLowLimValues");o(Vne,"dfsAssignLowLim");o(Une,"leaveEdge");o(Hne,"enterEdge");o(Wne,"exchangeEdges");o(oIe,"updateRanks");o(lIe,"isTreeEdge");o(zne,"isDescendant")});function hR(t){switch(t.graph().ranker){case"network-simplex":Yne(t);break;case"tight-tree":uIe(t);break;case"longest-path":cIe(t);break;default:Yne(t)}}function uIe(t){D2(t),tk(t)}function Yne(t){rf(t)}var cIe,fR=N(()=>{"use strict";eR();qne();ek();o(hR,"rank");cIe=D2;o(uIe,"tightTreeRanker");o(Yne,"networkSimplexRanker")});function Xne(t){var e=Ec(t,"root",{},"_root"),r=hIe(t),n=Is(br(r))-1,i=2*n+1;t.graph().nestingRoot=e,Ae(t.edges(),function(s){t.edge(s).minlen*=i});var a=fIe(t)+1;Ae(t.children(),function(s){jne(t,e,i,a,n,r,s)}),t.graph().nodeRankFactor=i}function jne(t,e,r,n,i,a,s){var l=t.children(s);if(!l.length){s!==e&&t.setEdge(e,s,{weight:0,minlen:r});return}var u=jL(t,"_bt"),h=jL(t,"_bb"),f=t.node(s);t.setParent(u,s),f.borderTop=u,t.setParent(h,s),f.borderBottom=h,Ae(l,function(d){jne(t,e,r,n,i,a,d);var p=t.node(d),m=p.borderTop?p.borderTop:d,g=p.borderBottom?p.borderBottom:d,y=p.borderTop?n:2*n,v=m!==g?1:i-a[s]+1;t.setEdge(u,m,{weight:y,minlen:v,nestingEdge:!0}),t.setEdge(g,h,{weight:y,minlen:v,nestingEdge:!0})}),t.parent(s)||t.setEdge(e,u,{weight:0,minlen:i+a[s]})}function hIe(t){var e={};function r(n,i){var a=t.children(n);a&&a.length&&Ae(a,function(s){r(s,i+1)}),e[n]=i}return o(r,"dfs"),Ae(t.children(),function(n){r(n,1)}),e}function fIe(t){return Xr(t.edges(),function(e,r){return e+t.edge(r).weight},0)}function Kne(t){var e=t.graph();t.removeNode(e.nestingRoot),delete e.nestingRoot,Ae(t.edges(),function(r){var n=t.edge(r);n.nestingEdge&&t.removeEdge(r)})}var Qne=N(()=>{"use strict";qt();Sc();o(Xne,"run");o(jne,"dfs");o(hIe,"treeDepths");o(fIe,"sumWeights");o(Kne,"cleanup")});function Zne(t,e,r){var n={},i;Ae(r,function(a){for(var s=t.parent(a),l,u;s;){if(l=t.parent(s),l?(u=n[l],n[l]=s):(u=i,i=s),u&&u!==s){e.setEdge(u,s);return}s=l}})}var Jne=N(()=>{"use strict";qt();o(Zne,"addSubgraphConstraints")});function eie(t,e,r){var n=pIe(t),i=new sn({compound:!0}).setGraph({root:n}).setDefaultNodeLabel(function(a){return t.node(a)});return Ae(t.nodes(),function(a){var s=t.node(a),l=t.parent(a);(s.rank===e||s.minRank<=e&&e<=s.maxRank)&&(i.setNode(a),i.setParent(a,l||n),Ae(t[r](a),function(u){var h=u.v===a?u.w:u.v,f=i.edge(h,a),d=pr(f)?0:f.weight;i.setEdge(h,a,{weight:t.edge(u).weight+d})}),Object.prototype.hasOwnProperty.call(s,"minRank")&&i.setNode(a,{borderLeft:s.borderLeft[e],borderRight:s.borderRight[e]}))}),i}function pIe(t){for(var e;t.hasNode(e=Ud("_root")););return e}var tie=N(()=>{"use strict";qt();Vo();o(eie,"buildLayerGraph");o(pIe,"createRootNode")});function rie(t,e){for(var r=0,n=1;n<e.length;++n)r+=mIe(t,e[n-1],e[n]);return r}function mIe(t,e,r){for(var n=jT(r,Je(r,function(h,f){return f})),i=qr(Je(e,function(h){return kc(Je(t.outEdges(h),function(f){return{pos:n[f.w],weight:t.edge(f).weight}}),"pos")})),a=1;a<r.length;)a<<=1;var s=2*a-1;a-=1;var l=Je(new Array(s),function(){return 0}),u=0;return Ae(i.forEach(function(h){var f=h.pos+a;l[f]+=h.weight;for(var d=0;f>0;)f%2&&(d+=l[f+1]),f=f-1>>1,l[f]+=h.weight;u+=h.weight*d})),u}var nie=N(()=>{"use strict";qt();o(rie,"crossCount");o(mIe,"twoLayerCrossCount")});function iie(t){var e={},r=Yr(t.nodes(),function(l){return!t.children(l).length}),n=Is(Je(r,function(l){return t.node(l).rank})),i=Je(Go(n+1),function(){return[]});function a(l){if(!Bt(e,l)){e[l]=!0;var u=t.node(l);i[u.rank].push(l),Ae(t.successors(l),a)}}o(a,"dfs");var s=kc(r,function(l){return t.node(l).rank});return Ae(s,a),i}var aie=N(()=>{"use strict";qt();o(iie,"initOrder")});function sie(t,e){return Je(e,function(r){var n=t.inEdges(r);if(n.length){var i=Xr(n,function(a,s){var l=t.edge(s),u=t.node(s.v);return{sum:a.sum+l.weight*u.order,weight:a.weight+l.weight}},{sum:0,weight:0});return{v:r,barycenter:i.sum/i.weight,weight:i.weight}}else return{v:r}})}var oie=N(()=>{"use strict";qt();o(sie,"barycenter")});function lie(t,e){var r={};Ae(t,function(i,a){var s=r[i.v]={indegree:0,in:[],out:[],vs:[i.v],i:a};pr(i.barycenter)||(s.barycenter=i.barycenter,s.weight=i.weight)}),Ae(e.edges(),function(i){var a=r[i.v],s=r[i.w];!pr(a)&&!pr(s)&&(s.indegree++,a.out.push(r[i.w]))});var n=Yr(r,function(i){return!i.indegree});return gIe(n)}function gIe(t){var e=[];function r(a){return function(s){s.merged||(pr(s.barycenter)||pr(a.barycenter)||s.barycenter>=a.barycenter)&&yIe(a,s)}}o(r,"handleIn");function n(a){return function(s){s.in.push(a),--s.indegree===0&&t.push(s)}}for(o(n,"handleOut");t.length;){var i=t.pop();e.push(i),Ae(i.in.reverse(),r(i)),Ae(i.out,n(i))}return Je(Yr(e,function(a){return!a.merged}),function(a){return Vd(a,["vs","i","barycenter","weight"])})}function yIe(t,e){var r=0,n=0;t.weight&&(r+=t.barycenter*t.weight,n+=t.weight),e.weight&&(r+=e.barycenter*e.weight,n+=e.weight),t.vs=e.vs.concat(t.vs),t.barycenter=r/n,t.weight=n,t.i=Math.min(e.i,t.i),e.merged=!0}var cie=N(()=>{"use strict";qt();o(lie,"resolveConflicts");o(gIe,"doResolveConflicts");o(yIe,"mergeEntries")});function hie(t,e){var r=gne(t,function(f){return Object.prototype.hasOwnProperty.call(f,"barycenter")}),n=r.lhs,i=kc(r.rhs,function(f){return-f.i}),a=[],s=0,l=0,u=0;n.sort(vIe(!!e)),u=uie(a,i,u),Ae(n,function(f){u+=f.vs.length,a.push(f.vs),s+=f.barycenter*f.weight,l+=f.weight,u=uie(a,i,u)});var h={vs:qr(a)};return l&&(h.barycenter=s/l,h.weight=l),h}function uie(t,e,r){for(var n;e.length&&(n=ga(e)).i<=r;)e.pop(),t.push(n.vs),r++;return r}function vIe(t){return function(e,r){return e.barycenter<r.barycenter?-1:e.barycenter>r.barycenter?1:t?r.i-e.i:e.i-r.i}}var fie=N(()=>{"use strict";qt();Sc();o(hie,"sort");o(uie,"consumeUnsortable");o(vIe,"compareWithBias")});function dR(t,e,r,n){var i=t.children(e),a=t.node(e),s=a?a.borderLeft:void 0,l=a?a.borderRight:void 0,u={};s&&(i=Yr(i,function(g){return g!==s&&g!==l}));var h=sie(t,i);Ae(h,function(g){if(t.children(g.v).length){var y=dR(t,g.v,r,n);u[g.v]=y,Object.prototype.hasOwnProperty.call(y,"barycenter")&&bIe(g,y)}});var f=lie(h,r);xIe(f,u);var d=hie(f,n);if(s&&(d.vs=qr([s,d.vs,l]),t.predecessors(s).length)){var p=t.node(t.predecessors(s)[0]),m=t.node(t.predecessors(l)[0]);Object.prototype.hasOwnProperty.call(d,"barycenter")||(d.barycenter=0,d.weight=0),d.barycenter=(d.barycenter*d.weight+p.order+m.order)/(d.weight+2),d.weight+=2}return d}function xIe(t,e){Ae(t,function(r){r.vs=qr(r.vs.map(function(n){return e[n]?e[n].vs:n}))})}function bIe(t,e){pr(t.barycenter)?(t.barycenter=e.barycenter,t.weight=e.weight):(t.barycenter=(t.barycenter*t.weight+e.barycenter*e.weight)/(t.weight+e.weight),t.weight+=e.weight)}var die=N(()=>{"use strict";qt();oie();cie();fie();o(dR,"sortSubgraph");o(xIe,"expandSubgraphs");o(bIe,"mergeBarycenters")});function gie(t){var e=KL(t),r=pie(t,Go(1,e+1),"inEdges"),n=pie(t,Go(e-1,-1,-1),"outEdges"),i=iie(t);mie(t,i);for(var a=Number.POSITIVE_INFINITY,s,l=0,u=0;u<4;++l,++u){wIe(l%2?r:n,l%4>=2),i=ef(t);var h=rie(t,i);h<a&&(u=0,s=yL(i),a=h)}mie(t,s)}function pie(t,e,r){return Je(e,function(n){return eie(t,n,r)})}function wIe(t,e){var r=new sn;Ae(t,function(n){var i=n.graph().root,a=dR(n,i,r,e);Ae(a.vs,function(s,l){n.node(s).order=l}),Zne(n,r,a.vs)})}function mie(t,e){Ae(e,function(r){Ae(r,function(n,i){t.node(n).order=i})})}var yie=N(()=>{"use strict";qt();Vo();Sc();Jne();tie();nie();aie();die();o(gie,"order");o(pie,"buildLayerGraphs");o(wIe,"sweepLayerGraphs");o(mie,"assignOrder")});function vie(t){var e=kIe(t);Ae(t.graph().dummyChains,function(r){for(var n=t.node(r),i=n.edgeObj,a=TIe(t,e,i.v,i.w),s=a.path,l=a.lca,u=0,h=s[u],f=!0;r!==i.w;){if(n=t.node(r),f){for(;(h=s[u])!==l&&t.node(h).maxRank<n.rank;)u++;h===l&&(f=!1)}if(!f){for(;u<s.length-1&&t.node(h=s[u+1]).minRank<=n.rank;)u++;h=s[u]}t.setParent(r,h),r=t.successors(r)[0]}})}function TIe(t,e,r,n){var i=[],a=[],s=Math.min(e[r].low,e[n].low),l=Math.max(e[r].lim,e[n].lim),u,h;u=r;do u=t.parent(u),i.push(u);while(u&&(e[u].low>s||l>e[u].lim));for(h=u,u=n;(u=t.parent(u))!==h;)a.push(u);return{path:i.concat(a.reverse()),lca:h}}function kIe(t){var e={},r=0;function n(i){var a=r;Ae(t.children(i),n),e[i]={low:a,lim:r++}}return o(n,"dfs"),Ae(t.children(),n),e}var xie=N(()=>{"use strict";qt();o(vie,"parentDummyChains");o(TIe,"findPath");o(kIe,"postorder")});function EIe(t,e){var r={};function n(i,a){var s=0,l=0,u=i.length,h=ga(a);return Ae(a,function(f,d){var p=CIe(t,f),m=p?t.node(p).order:u;(p||f===h)&&(Ae(a.slice(l,d+1),function(g){Ae(t.predecessors(g),function(y){var v=t.node(y),x=v.order;(x<s||m<x)&&!(v.dummy&&t.node(g).dummy)&&bie(r,y,g)})}),l=d+1,s=m)}),a}return o(n,"visitLayer"),Xr(e,n),r}function SIe(t,e){var r={};function n(a,s,l,u,h){var f;Ae(Go(s,l),function(d){f=a[d],t.node(f).dummy&&Ae(t.predecessors(f),function(p){var m=t.node(p);m.dummy&&(m.order<u||m.order>h)&&bie(r,p,f)})})}o(n,"scan");function i(a,s){var l=-1,u,h=0;return Ae(s,function(f,d){if(t.node(f).dummy==="border"){var p=t.predecessors(f);p.length&&(u=t.node(p[0]).order,n(s,h,d,l,u),h=d,l=u)}n(s,h,s.length,u,a.length)}),s}return o(i,"visitLayer"),Xr(e,i),r}function CIe(t,e){if(t.node(e).dummy)return ns(t.predecessors(e),function(r){return t.node(r).dummy})}function bie(t,e,r){if(e>r){var n=e;e=r,r=n}var i=t[e];i||(t[e]=i={}),i[r]=!0}function AIe(t,e,r){if(e>r){var n=e;e=r,r=n}return!!t[e]&&Object.prototype.hasOwnProperty.call(t[e],r)}function _Ie(t,e,r,n){var i={},a={},s={};return Ae(e,function(l){Ae(l,function(u,h){i[u]=u,a[u]=u,s[u]=h})}),Ae(e,function(l){var u=-1;Ae(l,function(h){var f=n(h);if(f.length){f=kc(f,function(y){return s[y]});for(var d=(f.length-1)/2,p=Math.floor(d),m=Math.ceil(d);p<=m;++p){var g=f[p];a[h]===h&&u<s[g]&&!AIe(r,h,g)&&(a[g]=h,a[h]=i[h]=i[g],u=s[g])}}})}),{root:i,align:a}}function DIe(t,e,r,n,i){var a={},s=LIe(t,e,r,i),l=i?"borderLeft":"borderRight";function u(d,p){for(var m=s.nodes(),g=m.pop(),y={};g;)y[g]?d(g):(y[g]=!0,m.push(g),m=m.concat(p(g))),g=m.pop()}o(u,"iterate");function h(d){a[d]=s.inEdges(d).reduce(function(p,m){return Math.max(p,a[m.v]+s.edge(m))},0)}o(h,"pass1");function f(d){var p=s.outEdges(d).reduce(function(g,y){return Math.min(g,a[y.w]-s.edge(y))},Number.POSITIVE_INFINITY),m=t.node(d);p!==Number.POSITIVE_INFINITY&&m.borderType!==l&&(a[d]=Math.max(a[d],p))}return o(f,"pass2"),u(h,s.predecessors.bind(s)),u(f,s.successors.bind(s)),Ae(n,function(d){a[d]=a[r[d]]}),a}function LIe(t,e,r,n){var i=new sn,a=t.graph(),s=IIe(a.nodesep,a.edgesep,n);return Ae(e,function(l){var u;Ae(l,function(h){var f=r[h];if(i.setNode(f),u){var d=r[u],p=i.edge(d,f);i.setEdge(d,f,Math.max(s(t,h,u),p||0))}u=h})}),i}function RIe(t,e){return Gd(br(e),function(r){var n=Number.NEGATIVE_INFINITY,i=Number.POSITIVE_INFINITY;return NL(r,function(a,s){var l=OIe(t,s)/2;n=Math.max(a+l,n),i=Math.min(a-l,i)}),n-i})}function NIe(t,e){var r=br(e),n=Dl(r),i=Is(r);Ae(["u","d"],function(a){Ae(["l","r"],function(s){var l=a+s,u=t[l],h;if(u!==e){var f=br(u);h=s==="l"?n-Dl(f):i-Is(f),h&&(t[l]=zd(u,function(d){return d+h}))}})})}function MIe(t,e){return zd(t.ul,function(r,n){if(e)return t[e.toLowerCase()][n];var i=kc(Je(t,n));return(i[1]+i[2])/2})}function wie(t){var e=ef(t),r=Fh(EIe(t,e),SIe(t,e)),n={},i;Ae(["u","d"],function(s){i=s==="u"?e:br(e).reverse(),Ae(["l","r"],function(l){l==="r"&&(i=Je(i,function(d){return br(d).reverse()}));var u=(s==="u"?t.predecessors:t.successors).bind(t),h=_Ie(t,i,r,u),f=DIe(t,i,h.root,h.align,l==="r");l==="r"&&(f=zd(f,function(d){return-d})),n[s+l]=f})});var a=RIe(t,n);return NIe(n,a),MIe(n,t.graph().align)}function IIe(t,e,r){return function(n,i,a){var s=n.node(i),l=n.node(a),u=0,h;if(u+=s.width/2,Object.prototype.hasOwnProperty.call(s,"labelpos"))switch(s.labelpos.toLowerCase()){case"l":h=-s.width/2;break;case"r":h=s.width/2;break}if(h&&(u+=r?h:-h),h=0,u+=(s.dummy?e:t)/2,u+=(l.dummy?e:t)/2,u+=l.width/2,Object.prototype.hasOwnProperty.call(l,"labelpos"))switch(l.labelpos.toLowerCase()){case"l":h=l.width/2;break;case"r":h=-l.width/2;break}return h&&(u+=r?h:-h),h=0,u}}function OIe(t,e){return t.node(e).width}var Tie=N(()=>{"use strict";qt();Vo();Sc();o(EIe,"findType1Conflicts");o(SIe,"findType2Conflicts");o(CIe,"findOtherInnerSegmentNode");o(bie,"addConflict");o(AIe,"hasConflict");o(_Ie,"verticalAlignment");o(DIe,"horizontalCompaction");o(LIe,"buildBlockGraph");o(RIe,"findSmallestWidthAlignment");o(NIe,"alignCoordinates");o(MIe,"balance");o(wie,"positionX");o(IIe,"sep");o(OIe,"width")});function kie(t){t=JT(t),PIe(t),ML(wie(t),function(e,r){t.node(r).x=e})}function PIe(t){var e=ef(t),r=t.graph().ranksep,n=0;Ae(e,function(i){var a=Is(Je(i,function(s){return t.node(s).height}));Ae(i,function(s){t.node(s).y=n+a/2}),n+=a+r})}var Eie=N(()=>{"use strict";qt();Sc();Tie();o(kie,"position");o(PIe,"positionY")});function R2(t,e){var r=e&&e.debugTiming?yne:vne;r("layout",()=>{var n=r("  buildLayoutGraph",()=>YIe(t));r("  runLayout",()=>BIe(n,r)),r("  updateInputGraph",()=>FIe(t,n))})}function BIe(t,e){e("    makeSpaceForEdgeLabels",()=>XIe(t)),e("    removeSelfEdges",()=>nOe(t)),e("    acyclic",()=>une(t)),e("    nestingGraph.run",()=>Xne(t)),e("    rank",()=>hR(JT(t))),e("    injectEdgeLabelProxies",()=>jIe(t)),e("    removeEmptyRanks",()=>mne(t)),e("    nestingGraph.cleanup",()=>Kne(t)),e("    normalizeRanks",()=>pne(t)),e("    assignRankMinMax",()=>KIe(t)),e("    removeEdgeLabelProxies",()=>QIe(t)),e("    normalize.run",()=>Ane(t)),e("    parentDummyChains",()=>vie(t)),e("    addBorderSegments",()=>bne(t)),e("    order",()=>gie(t)),e("    insertSelfEdges",()=>iOe(t)),e("    adjustCoordinateSystem",()=>kne(t)),e("    position",()=>kie(t)),e("    positionSelfEdges",()=>aOe(t)),e("    removeBorderNodes",()=>rOe(t)),e("    normalize.undo",()=>_ne(t)),e("    fixupEdgeLabelCoords",()=>eOe(t)),e("    undoCoordinateSystem",()=>Ene(t)),e("    translateGraph",()=>ZIe(t)),e("    assignNodeIntersects",()=>JIe(t)),e("    reversePoints",()=>tOe(t)),e("    acyclic.undo",()=>hne(t))}function FIe(t,e){Ae(t.nodes(),function(r){var n=t.node(r),i=e.node(r);n&&(n.x=i.x,n.y=i.y,e.children(r).length&&(n.width=i.width,n.height=i.height))}),Ae(t.edges(),function(r){var n=t.edge(r),i=e.edge(r);n.points=i.points,Object.prototype.hasOwnProperty.call(i,"x")&&(n.x=i.x,n.y=i.y)}),t.graph().width=e.graph().width,t.graph().height=e.graph().height}function YIe(t){var e=new sn({multigraph:!0,compound:!0}),r=mR(t.graph());return e.setGraph(Fh({},zIe,pR(r,$Ie),Vd(r,GIe))),Ae(t.nodes(),function(n){var i=mR(t.node(n));e.setNode(n,Qh(pR(i,VIe),UIe)),e.setParent(n,t.parent(n))}),Ae(t.edges(),function(n){var i=mR(t.edge(n));e.setEdge(n,Fh({},WIe,pR(i,HIe),Vd(i,qIe)))}),e}function XIe(t){var e=t.graph();e.ranksep/=2,Ae(t.edges(),function(r){var n=t.edge(r);n.minlen*=2,n.labelpos.toLowerCase()!=="c"&&(e.rankdir==="TB"||e.rankdir==="BT"?n.width+=n.labeloffset:n.height+=n.labeloffset)})}function jIe(t){Ae(t.edges(),function(e){var r=t.edge(e);if(r.width&&r.height){var n=t.node(e.v),i=t.node(e.w),a={rank:(i.rank-n.rank)/2+n.rank,e};Ec(t,"edge-proxy",a,"_ep")}})}function KIe(t){var e=0;Ae(t.nodes(),function(r){var n=t.node(r);n.borderTop&&(n.minRank=t.node(n.borderTop).rank,n.maxRank=t.node(n.borderBottom).rank,e=Is(e,n.maxRank))}),t.graph().maxRank=e}function QIe(t){Ae(t.nodes(),function(e){var r=t.node(e);r.dummy==="edge-proxy"&&(t.edge(r.e).labelRank=r.rank,t.removeNode(e))})}function ZIe(t){var e=Number.POSITIVE_INFINITY,r=0,n=Number.POSITIVE_INFINITY,i=0,a=t.graph(),s=a.marginx||0,l=a.marginy||0;function u(h){var f=h.x,d=h.y,p=h.width,m=h.height;e=Math.min(e,f-p/2),r=Math.max(r,f+p/2),n=Math.min(n,d-m/2),i=Math.max(i,d+m/2)}o(u,"getExtremes"),Ae(t.nodes(),function(h){u(t.node(h))}),Ae(t.edges(),function(h){var f=t.edge(h);Object.prototype.hasOwnProperty.call(f,"x")&&u(f)}),e-=s,n-=l,Ae(t.nodes(),function(h){var f=t.node(h);f.x-=e,f.y-=n}),Ae(t.edges(),function(h){var f=t.edge(h);Ae(f.points,function(d){d.x-=e,d.y-=n}),Object.prototype.hasOwnProperty.call(f,"x")&&(f.x-=e),Object.prototype.hasOwnProperty.call(f,"y")&&(f.y-=n)}),a.width=r-e+s,a.height=i-n+l}function JIe(t){Ae(t.edges(),function(e){var r=t.edge(e),n=t.node(e.v),i=t.node(e.w),a,s;r.points?(a=r.points[0],s=r.points[r.points.length-1]):(r.points=[],a=i,s=n),r.points.unshift(XL(n,a)),r.points.push(XL(i,s))})}function eOe(t){Ae(t.edges(),function(e){var r=t.edge(e);if(Object.prototype.hasOwnProperty.call(r,"x"))switch((r.labelpos==="l"||r.labelpos==="r")&&(r.width-=r.labeloffset),r.labelpos){case"l":r.x-=r.width/2+r.labeloffset;break;case"r":r.x+=r.width/2+r.labeloffset;break}})}function tOe(t){Ae(t.edges(),function(e){var r=t.edge(e);r.reversed&&r.points.reverse()})}function rOe(t){Ae(t.nodes(),function(e){if(t.children(e).length){var r=t.node(e),n=t.node(r.borderTop),i=t.node(r.borderBottom),a=t.node(ga(r.borderLeft)),s=t.node(ga(r.borderRight));r.width=Math.abs(s.x-a.x),r.height=Math.abs(i.y-n.y),r.x=a.x+r.width/2,r.y=n.y+r.height/2}}),Ae(t.nodes(),function(e){t.node(e).dummy==="border"&&t.removeNode(e)})}function nOe(t){Ae(t.edges(),function(e){if(e.v===e.w){var r=t.node(e.v);r.selfEdges||(r.selfEdges=[]),r.selfEdges.push({e,label:t.edge(e)}),t.removeEdge(e)}})}function iOe(t){var e=ef(t);Ae(e,function(r){var n=0;Ae(r,function(i,a){var s=t.node(i);s.order=a+n,Ae(s.selfEdges,function(l){Ec(t,"selfedge",{width:l.label.width,height:l.label.height,rank:s.rank,order:a+ ++n,e:l.e,label:l.label},"_se")}),delete s.selfEdges})})}function aOe(t){Ae(t.nodes(),function(e){var r=t.node(e);if(r.dummy==="selfedge"){var n=t.node(r.e.v),i=n.x+n.width/2,a=n.y,s=r.x-i,l=n.height/2;t.setEdge(r.e,r.label),t.removeNode(e),r.label.points=[{x:i+2*s/3,y:a-l},{x:i+5*s/6,y:a-l},{x:i+s,y:a},{x:i+5*s/6,y:a+l},{x:i+2*s/3,y:a+l}],r.label.x=r.x,r.label.y=r.y}})}function pR(t,e){return zd(Vd(t,e),Number)}function mR(t){var e={};return Ae(t,function(r,n){e[n.toLowerCase()]=r}),e}var $Ie,zIe,GIe,VIe,UIe,HIe,WIe,qIe,Sie=N(()=>{"use strict";qt();Vo();wne();Cne();YL();JL();fR();Qne();yie();xie();Eie();Sc();o(R2,"layout");o(BIe,"runLayout");o(FIe,"updateInputGraph");$Ie=["nodesep","edgesep","ranksep","marginx","marginy"],zIe={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},GIe=["acyclicer","ranker","rankdir","align"],VIe=["width","height"],UIe={width:0,height:0},HIe=["minlen","weight","width","height","labeloffset"],WIe={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},qIe=["labelpos"];o(YIe,"buildLayoutGraph");o(XIe,"makeSpaceForEdgeLabels");o(jIe,"injectEdgeLabelProxies");o(KIe,"assignRankMinMax");o(QIe,"removeEdgeLabelProxies");o(ZIe,"translateGraph");o(JIe,"assignNodeIntersects");o(eOe,"fixupEdgeLabelCoords");o(tOe,"reversePointsForReversedEdges");o(rOe,"removeBorderNodes");o(nOe,"removeSelfEdges");o(iOe,"insertSelfEdges");o(aOe,"positionSelfEdges");o(pR,"selectNumberAttrs");o(mR,"canonicalize")});var gR=N(()=>{"use strict";YL();Sie();JL();fR()});function Uo(t){var e={options:{directed:t.isDirected(),multigraph:t.isMultigraph(),compound:t.isCompound()},nodes:sOe(t),edges:oOe(t)};return pr(t.graph())||(e.value=an(t.graph())),e}function sOe(t){return Je(t.nodes(),function(e){var r=t.node(e),n=t.parent(e),i={v:e};return pr(r)||(i.value=r),pr(n)||(i.parent=n),i})}function oOe(t){return Je(t.edges(),function(e){var r=t.edge(e),n={v:e.v,w:e.w};return pr(e.name)||(n.name=e.name),pr(r)||(n.value=r),n})}var yR=N(()=>{"use strict";qt();KT();o(Uo,"write");o(sOe,"writeNodes");o(oOe,"writeEdges")});var wr,qd,_ie,Die,nk,lOe,Lie,Rie,cOe,Fm,Aie,Nie,Mie,Iie,Oie,Pie=N(()=>{"use strict";vt();Vo();yR();wr=new Map,qd=new Map,_ie=new Map,Die=o(()=>{qd.clear(),_ie.clear(),wr.clear()},"clear"),nk=o((t,e)=>{let r=qd.get(e)||[];return Y.trace("In isDescendant",e," ",t," = ",r.includes(t)),r.includes(t)},"isDescendant"),lOe=o((t,e)=>{let r=qd.get(e)||[];return Y.info("Descendants of ",e," is ",r),Y.info("Edge is ",t),t.v===e||t.w===e?!1:r?r.includes(t.v)||nk(t.v,e)||nk(t.w,e)||r.includes(t.w):(Y.debug("Tilt, ",e,",not in descendants"),!1)},"edgeInCluster"),Lie=o((t,e,r,n)=>{Y.warn("Copying children of ",t,"root",n,"data",e.node(t),n);let i=e.children(t)||[];t!==n&&i.push(t),Y.warn("Copying (nodes) clusterId",t,"nodes",i),i.forEach(a=>{if(e.children(a).length>0)Lie(a,e,r,n);else{let s=e.node(a);Y.info("cp ",a," to ",n," with parent ",t),r.setNode(a,s),n!==e.parent(a)&&(Y.warn("Setting parent",a,e.parent(a)),r.setParent(a,e.parent(a))),t!==n&&a!==t?(Y.debug("Setting parent",a,t),r.setParent(a,t)):(Y.info("In copy ",t,"root",n,"data",e.node(t),n),Y.debug("Not Setting parent for node=",a,"cluster!==rootId",t!==n,"node!==clusterId",a!==t));let l=e.edges(a);Y.debug("Copying Edges",l),l.forEach(u=>{Y.info("Edge",u);let h=e.edge(u.v,u.w,u.name);Y.info("Edge data",h,n);try{lOe(u,n)?(Y.info("Copying as ",u.v,u.w,h,u.name),r.setEdge(u.v,u.w,h,u.name),Y.info("newGraph edges ",r.edges(),r.edge(r.edges()[0]))):Y.info("Skipping copy of edge ",u.v,"-->",u.w," rootId: ",n," clusterId:",t)}catch(f){Y.error(f)}})}Y.debug("Removing node",a),e.removeNode(a)})},"copy"),Rie=o((t,e)=>{let r=e.children(t),n=[...r];for(let i of r)_ie.set(i,t),n=[...n,...Rie(i,e)];return n},"extractDescendants"),cOe=o((t,e,r)=>{let n=t.edges().filter(u=>u.v===e||u.w===e),i=t.edges().filter(u=>u.v===r||u.w===r),a=n.map(u=>({v:u.v===e?r:u.v,w:u.w===e?e:u.w})),s=i.map(u=>({v:u.v,w:u.w}));return a.filter(u=>s.some(h=>u.v===h.v&&u.w===h.w))},"findCommonEdges"),Fm=o((t,e,r)=>{let n=e.children(t);if(Y.trace("Searching children of id ",t,n),n.length<1)return t;let i;for(let a of n){let s=Fm(a,e,r),l=cOe(e,r,s);if(s)if(l.length>0)i=s;else return s}return i},"findNonClusterChild"),Aie=o(t=>!wr.has(t)||!wr.get(t).externalConnections?t:wr.has(t)?wr.get(t).id:t,"getAnchorId"),Nie=o((t,e)=>{if(!t||e>10){Y.debug("Opting out, no graph ");return}else Y.debug("Opting in, graph ");t.nodes().forEach(function(r){t.children(r).length>0&&(Y.warn("Cluster identified",r," Replacement id in edges: ",Fm(r,t,r)),qd.set(r,Rie(r,t)),wr.set(r,{id:Fm(r,t,r),clusterData:t.node(r)}))}),t.nodes().forEach(function(r){let n=t.children(r),i=t.edges();n.length>0?(Y.debug("Cluster identified",r,qd),i.forEach(a=>{let s=nk(a.v,r),l=nk(a.w,r);s^l&&(Y.warn("Edge: ",a," leaves cluster ",r),Y.warn("Descendants of XXX ",r,": ",qd.get(r)),wr.get(r).externalConnections=!0)})):Y.debug("Not a cluster ",r,qd)});for(let r of wr.keys()){let n=wr.get(r).id,i=t.parent(n);i!==r&&wr.has(i)&&!wr.get(i).externalConnections&&(wr.get(r).id=i)}t.edges().forEach(function(r){let n=t.edge(r);Y.warn("Edge "+r.v+" -> "+r.w+": "+JSON.stringify(r)),Y.warn("Edge "+r.v+" -> "+r.w+": "+JSON.stringify(t.edge(r)));let i=r.v,a=r.w;if(Y.warn("Fix XXX",wr,"ids:",r.v,r.w,"Translating: ",wr.get(r.v)," --- ",wr.get(r.w)),wr.get(r.v)||wr.get(r.w)){if(Y.warn("Fixing and trying - removing XXX",r.v,r.w,r.name),i=Aie(r.v),a=Aie(r.w),t.removeEdge(r.v,r.w,r.name),i!==r.v){let s=t.parent(i);wr.get(s).externalConnections=!0,n.fromCluster=r.v}if(a!==r.w){let s=t.parent(a);wr.get(s).externalConnections=!0,n.toCluster=r.w}Y.warn("Fix Replacing with XXX",i,a,r.name),t.setEdge(i,a,n,r.name)}}),Y.warn("Adjusted Graph",Uo(t)),Mie(t,0),Y.trace(wr)},"adjustClustersAndEdges"),Mie=o((t,e)=>{if(Y.warn("extractor - ",e,Uo(t),t.children("D")),e>10){Y.error("Bailing out");return}let r=t.nodes(),n=!1;for(let i of r){let a=t.children(i);n=n||a.length>0}if(!n){Y.debug("Done, no node has children",t.nodes());return}Y.debug("Nodes = ",r,e);for(let i of r)if(Y.debug("Extracting node",i,wr,wr.has(i)&&!wr.get(i).externalConnections,!t.parent(i),t.node(i),t.children("D")," Depth ",e),!wr.has(i))Y.debug("Not a cluster",i,e);else if(!wr.get(i).externalConnections&&t.children(i)&&t.children(i).length>0){Y.warn("Cluster without external connections, without a parent and with children",i,e);let s=t.graph().rankdir==="TB"?"LR":"TB";wr.get(i)?.clusterData?.dir&&(s=wr.get(i).clusterData.dir,Y.warn("Fixing dir",wr.get(i).clusterData.dir,s));let l=new sn({multigraph:!0,compound:!0}).setGraph({rankdir:s,nodesep:50,ranksep:50,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});Y.warn("Old graph before copy",Uo(t)),Lie(i,t,l,i),t.setNode(i,{clusterNode:!0,id:i,clusterData:wr.get(i).clusterData,label:wr.get(i).label,graph:l}),Y.warn("New graph after copy node: (",i,")",Uo(l)),Y.debug("Old graph after copy",Uo(t))}else Y.warn("Cluster ** ",i," **not meeting the criteria !externalConnections:",!wr.get(i).externalConnections," no parent: ",!t.parent(i)," children ",t.children(i)&&t.children(i).length>0,t.children("D"),e),Y.debug(wr);r=t.nodes(),Y.warn("New list of nodes",r);for(let i of r){let a=t.node(i);Y.warn(" Now next level",i,a),a?.clusterNode&&Mie(a.graph,e+1)}},"extractor"),Iie=o((t,e)=>{if(e.length===0)return[];let r=Object.assign([],e);return e.forEach(n=>{let i=t.children(n),a=Iie(t,i);r=[...r,...a]}),r},"sorter"),Oie=o(t=>Iie(t,t.children()),"sortNodesByHierarchy")});var Fie={};hr(Fie,{render:()=>uOe});var Bie,uOe,$ie=N(()=>{"use strict";gR();yR();Vo();tL();Ft();Pie();eT();Hw();eL();vt();w2();zt();Bie=o(async(t,e,r,n,i,a)=>{Y.warn("Graph in recursive render:XAX",Uo(e),i);let s=e.graph().rankdir;Y.trace("Dir in recursive render - dir:",s);let l=t.insert("g").attr("class","root");e.nodes()?Y.info("Recursive render XXX",e.nodes()):Y.info("No nodes found for",e),e.edges().length>0&&Y.info("Recursive edges",e.edge(e.edges()[0]));let u=l.insert("g").attr("class","clusters"),h=l.insert("g").attr("class","edgePaths"),f=l.insert("g").attr("class","edgeLabels"),d=l.insert("g").attr("class","nodes");await Promise.all(e.nodes().map(async function(y){let v=e.node(y);if(i!==void 0){let x=JSON.parse(JSON.stringify(i.clusterData));Y.trace(`Setting data for parent cluster XXX
+ Node.id = `,y,`
+ data=`,x.height,`
+Parent cluster`,i.height),e.setNode(i.id,x),e.parent(y)||(Y.trace("Setting parent",y,i.id),e.setParent(y,i.id,x))}if(Y.info("(Insert) Node XXX"+y+": "+JSON.stringify(e.node(y))),v?.clusterNode){Y.info("Cluster identified XBX",y,v.width,e.node(y));let{ranksep:x,nodesep:b}=e.graph();v.graph.setGraph({...v.graph.graph(),ranksep:x+25,nodesep:b});let w=await Bie(d,v.graph,r,n,e.node(y),a),C=w.elem;je(v,C),v.diff=w.diff||0,Y.info("New compound node after recursive render XAX",y,"width",v.width,"height",v.height),rJ(C,v)}else e.children(y).length>0?(Y.trace("Cluster - the non recursive path XBX",y,v.id,v,v.width,"Graph:",e),Y.trace(Fm(v.id,e)),wr.set(v.id,{id:Fm(v.id,e),node:v})):(Y.trace("Node - the non recursive path XAX",y,d,e.node(y),s),await vm(d,e.node(y),{config:a,dir:s}))})),await o(async()=>{let y=e.edges().map(async function(v){let x=e.edge(v.v,v.w,v.name);Y.info("Edge "+v.v+" -> "+v.w+": "+JSON.stringify(v)),Y.info("Edge "+v.v+" -> "+v.w+": ",v," ",JSON.stringify(e.edge(v))),Y.info("Fix",wr,"ids:",v.v,v.w,"Translating: ",wr.get(v.v),wr.get(v.w)),await jw(f,x)});await Promise.all(y)},"processEdges")(),Y.info("Graph before layout:",JSON.stringify(Uo(e))),Y.info("############################################# XXX"),Y.info("###                Layout                 ### XXX"),Y.info("############################################# XXX"),R2(e),Y.info("Graph after layout:",JSON.stringify(Uo(e)));let m=0,{subGraphTitleTotalMargin:g}=Ru(a);return await Promise.all(Oie(e).map(async function(y){let v=e.node(y);if(Y.info("Position XBX => "+y+": ("+v.x,","+v.y,") width: ",v.width," height: ",v.height),v?.clusterNode)v.y+=g,Y.info("A tainted cluster node XBX1",y,v.id,v.width,v.height,v.x,v.y,e.parent(y)),wr.get(v.id).node=v,k2(v);else if(e.children(y).length>0){Y.info("A pure cluster node XBX1",y,v.id,v.x,v.y,v.width,v.height,e.parent(y)),v.height+=g,e.node(v.parentId);let x=v?.padding/2||0,b=v?.labelBBox?.height||0,w=b-x||0;Y.debug("OffsetY",w,"labelHeight",b,"halfPadding",x),await ym(u,v),wr.get(v.id).node=v}else{let x=e.node(v.parentId);v.y+=g/2,Y.info("A regular node XBX1 - using the padding",v.id,"parent",v.parentId,v.width,v.height,v.x,v.y,"offsetY",v.offsetY,"parent",x,x?.offsetY,v),k2(v)}})),e.edges().forEach(function(y){let v=e.edge(y);Y.info("Edge "+y.v+" -> "+y.w+": "+JSON.stringify(v),v),v.points.forEach(C=>C.y+=g/2);let x=e.node(y.v);var b=e.node(y.w);let w=Qw(h,v,wr,r,x,b,n);Kw(v,w)}),e.nodes().forEach(function(y){let v=e.node(y);Y.info(y,v.type,v.diff),v.isGroup&&(m=v.diff)}),Y.warn("Returning from recursive render XAX",l,m),{elem:l,diff:m}},"recursiveRender"),uOe=o(async(t,e)=>{let r=new sn({multigraph:!0,compound:!0}).setGraph({rankdir:t.direction,nodesep:t.config?.nodeSpacing||t.config?.flowchart?.nodeSpacing||t.nodeSpacing,ranksep:t.config?.rankSpacing||t.config?.flowchart?.rankSpacing||t.rankSpacing,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}}),n=e.select("g");Zw(n,t.markers,t.type,t.diagramId),nJ(),tJ(),jZ(),Die(),t.nodes.forEach(a=>{r.setNode(a.id,{...a}),a.parentId&&r.setParent(a.id,a.parentId)}),Y.debug("Edges:",t.edges),t.edges.forEach(a=>{if(a.start===a.end){let s=a.start,l=s+"---"+s+"---1",u=s+"---"+s+"---2",h=r.node(s);r.setNode(l,{domId:l,id:l,parentId:h.parentId,labelStyle:"",label:"",padding:0,shape:"labelRect",style:"",width:10,height:10}),r.setParent(l,h.parentId),r.setNode(u,{domId:u,id:u,parentId:h.parentId,labelStyle:"",padding:0,shape:"labelRect",label:"",style:"",width:10,height:10}),r.setParent(u,h.parentId);let f=structuredClone(a),d=structuredClone(a),p=structuredClone(a);f.label="",f.arrowTypeEnd="none",f.id=s+"-cyclic-special-1",d.arrowTypeStart="none",d.arrowTypeEnd="none",d.id=s+"-cyclic-special-mid",p.label="",h.isGroup&&(f.fromCluster=s,p.toCluster=s),p.id=s+"-cyclic-special-2",p.arrowTypeStart="none",r.setEdge(s,l,f,s+"-cyclic-special-0"),r.setEdge(l,u,d,s+"-cyclic-special-1"),r.setEdge(u,s,p,s+"-cyc<lic-special-2")}else r.setEdge(a.start,a.end,{...a},a.id)}),Y.warn("Graph at first:",JSON.stringify(Uo(r))),Nie(r),Y.warn("Graph after XAX:",JSON.stringify(Uo(r)));let i=me();await Bie(n,r,t.type,t.diagramId,void 0,i)},"render")});var N2,vR,hOe,Cc,nf,Yd=N(()=>{"use strict";aJ();vt();N2={},vR=o(t=>{for(let e of t)N2[e.name]=e},"registerLayoutLoaders"),hOe=o(()=>{vR([{name:"dagre",loader:o(async()=>await Promise.resolve().then(()=>($ie(),Fie)),"loader")}])},"registerDefaultLayoutLoaders");hOe();Cc=o(async(t,e)=>{if(!(t.layoutAlgorithm in N2))throw new Error(`Unknown layout algorithm: ${t.layoutAlgorithm}`);let r=N2[t.layoutAlgorithm];return(await r.loader()).render(t,e,iJ,{algorithm:r.algorithm})},"render"),nf=o((t="",{fallback:e="dagre"}={})=>{if(t in N2)return t;if(e in N2)return Y.warn(`Layout algorithm ${t} is not registered. Using ${e} as fallback.`),e;throw new Error(`Both layout algorithms ${t} and ${e} are not registered.`)},"getRegisteredLayoutAlgorithm")});var Ac,fOe,dOe,$m=N(()=>{"use strict";Ei();vt();Ac=o((t,e,r,n)=>{t.attr("class",r);let{width:i,height:a,x:s,y:l}=fOe(t,e);vn(t,a,i,n);let u=dOe(s,l,i,a,e);t.attr("viewBox",u),Y.debug(`viewBox configured: ${u} with padding: ${e}`)},"setupViewPortForSVG"),fOe=o((t,e)=>{let r=t.node()?.getBBox()||{width:0,height:0,x:0,y:0};return{width:r.width+e*2,height:r.height+e*2,x:r.x,y:r.y}},"calculateDimensionsWithPadding"),dOe=o((t,e,r,n,i)=>`${t-i} ${e-i} ${r} ${n}`,"createViewBox")});var pOe,mOe,zie,Gie=N(()=>{"use strict";dr();zt();vt();gm();Yd();$m();ir();pOe=o(function(t,e){return e.db.getClasses()},"getClasses"),mOe=o(async function(t,e,r,n){Y.info("REF0:"),Y.info("Drawing state diagram (v2)",e);let{securityLevel:i,flowchart:a,layout:s}=me(),l;i==="sandbox"&&(l=Ge("#i"+e));let u=i==="sandbox"?l.nodes()[0].contentDocument:document;Y.debug("Before getData: ");let h=n.db.getData();Y.debug("Data: ",h);let f=yc(e,i),d=n.db.getDirection();h.type=n.type,h.layoutAlgorithm=nf(s),h.layoutAlgorithm==="dagre"&&s==="elk"&&Y.warn("flowchart-elk was moved to an external package in Mermaid v11. Please refer [release notes](https://github.com/mermaid-js/mermaid/releases/tag/v11.0.0) for more details. This diagram will be rendered using `dagre` layout as a fallback."),h.direction=d,h.nodeSpacing=a?.nodeSpacing||50,h.rankSpacing=a?.rankSpacing||50,h.markers=["point","circle","cross"],h.diagramId=e,Y.debug("REF1:",h),await Cc(h,f);let p=h.config.flowchart?.diagramPadding??8;Gt.insertTitle(f,"flowchartTitleText",a?.titleTopMargin||0,n.db.getDiagramTitle()),Ac(f,p,"flowchart",a?.useMaxWidth||!1);for(let m of h.nodes){let g=Ge(`#${e} [id="${m.id}"]`);if(!g||!m.link)continue;let y=u.createElementNS("http://www.w3.org/2000/svg","a");y.setAttributeNS("http://www.w3.org/2000/svg","class",m.cssClasses),y.setAttributeNS("http://www.w3.org/2000/svg","rel","noopener"),i==="sandbox"?y.setAttributeNS("http://www.w3.org/2000/svg","target","_top"):m.linkTarget&&y.setAttributeNS("http://www.w3.org/2000/svg","target",m.linkTarget);let v=g.insert(function(){return y},":first-child"),x=g.select(".label-container");x&&v.append(function(){return x.node()});let b=g.select(".label");b&&v.append(function(){return b.node()})}},"draw"),zie={getClasses:pOe,draw:mOe}});var xR,bR,Vie=N(()=>{"use strict";xR=function(){var t=o(function(Hr,et,mt,Kt){for(mt=mt||{},Kt=Hr.length;Kt--;mt[Hr[Kt]]=et);return mt},"o"),e=[1,4],r=[1,3],n=[1,5],i=[1,8,9,10,11,27,34,36,38,44,60,84,85,86,87,88,89,102,105,106,109,111,114,115,116,121,122,123,124],a=[2,2],s=[1,13],l=[1,14],u=[1,15],h=[1,16],f=[1,23],d=[1,25],p=[1,26],m=[1,27],g=[1,49],y=[1,48],v=[1,29],x=[1,30],b=[1,31],w=[1,32],C=[1,33],T=[1,44],E=[1,46],A=[1,42],S=[1,47],_=[1,43],I=[1,50],D=[1,45],k=[1,51],L=[1,52],R=[1,34],O=[1,35],M=[1,36],B=[1,37],F=[1,57],P=[1,8,9,10,11,27,32,34,36,38,44,60,84,85,86,87,88,89,102,105,106,109,111,114,115,116,121,122,123,124],z=[1,61],$=[1,60],H=[1,62],Q=[8,9,11,75,77,78],j=[1,78],ie=[1,91],ne=[1,96],le=[1,95],he=[1,92],K=[1,88],X=[1,94],te=[1,90],J=[1,97],se=[1,93],ue=[1,98],Z=[1,89],Se=[8,9,10,11,40,75,77,78],ce=[8,9,10,11,40,46,75,77,78],ae=[8,9,10,11,29,40,44,46,48,50,52,54,56,58,60,63,65,67,68,70,75,77,78,89,102,105,106,109,111,114,115,116],Oe=[8,9,11,44,60,75,77,78,89,102,105,106,109,111,114,115,116],ge=[44,60,89,102,105,106,109,111,114,115,116],ze=[1,121],He=[1,122],$e=[1,124],Re=[1,123],Ie=[44,60,62,74,89,102,105,106,109,111,114,115,116],be=[1,133],W=[1,147],de=[1,148],re=[1,149],oe=[1,150],V=[1,135],xe=[1,137],q=[1,141],pe=[1,142],ve=[1,143],Pe=[1,144],_e=[1,145],we=[1,146],Ve=[1,151],De=[1,152],qe=[1,131],at=[1,132],Rt=[1,139],st=[1,134],Ue=[1,138],ct=[1,136],We=[8,9,10,11,27,32,34,36,38,44,60,84,85,86,87,88,89,102,105,106,109,111,114,115,116,121,122,123,124],ot=[1,154],Yt=[1,156],bt=[8,9,11],Mt=[8,9,10,11,14,44,60,89,105,106,109,111,114,115,116],xt=[1,176],ut=[1,172],Et=[1,173],ft=[1,177],yt=[1,174],nt=[1,175],dn=[77,116,119],Tt=[8,9,10,11,12,14,27,29,32,44,60,75,84,85,86,87,88,89,90,105,109,111,114,115,116],On=[10,106],tn=[31,49,51,53,55,57,62,64,66,67,69,71,116,117,118],_r=[1,247],Dr=[1,245],Pn=[1,249],At=[1,243],Ce=[1,244],tt=[1,246],St=[1,248],mr=[1,250],rn=[1,268],gn=[8,9,11,106],Zr=[8,9,10,11,60,84,105,106,109,110,111,112],Ni={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,graphConfig:4,document:5,line:6,statement:7,SEMI:8,NEWLINE:9,SPACE:10,EOF:11,GRAPH:12,NODIR:13,DIR:14,FirstStmtSeparator:15,ending:16,endToken:17,spaceList:18,spaceListNewline:19,vertexStatement:20,separator:21,styleStatement:22,linkStyleStatement:23,classDefStatement:24,classStatement:25,clickStatement:26,subgraph:27,textNoTags:28,SQS:29,text:30,SQE:31,end:32,direction:33,acc_title:34,acc_title_value:35,acc_descr:36,acc_descr_value:37,acc_descr_multiline_value:38,shapeData:39,SHAPE_DATA:40,link:41,node:42,styledVertex:43,AMP:44,vertex:45,STYLE_SEPARATOR:46,idString:47,DOUBLECIRCLESTART:48,DOUBLECIRCLEEND:49,PS:50,PE:51,"(-":52,"-)":53,STADIUMSTART:54,STADIUMEND:55,SUBROUTINESTART:56,SUBROUTINEEND:57,VERTEX_WITH_PROPS_START:58,"NODE_STRING[field]":59,COLON:60,"NODE_STRING[value]":61,PIPE:62,CYLINDERSTART:63,CYLINDEREND:64,DIAMOND_START:65,DIAMOND_STOP:66,TAGEND:67,TRAPSTART:68,TRAPEND:69,INVTRAPSTART:70,INVTRAPEND:71,linkStatement:72,arrowText:73,TESTSTR:74,START_LINK:75,edgeText:76,LINK:77,LINK_ID:78,edgeTextToken:79,STR:80,MD_STR:81,textToken:82,keywords:83,STYLE:84,LINKSTYLE:85,CLASSDEF:86,CLASS:87,CLICK:88,DOWN:89,UP:90,textNoTagsToken:91,stylesOpt:92,"idString[vertex]":93,"idString[class]":94,CALLBACKNAME:95,CALLBACKARGS:96,HREF:97,LINK_TARGET:98,"STR[link]":99,"STR[tooltip]":100,alphaNum:101,DEFAULT:102,numList:103,INTERPOLATE:104,NUM:105,COMMA:106,style:107,styleComponent:108,NODE_STRING:109,UNIT:110,BRKT:111,PCT:112,idStringToken:113,MINUS:114,MULT:115,UNICODE_TEXT:116,TEXT:117,TAGSTART:118,EDGE_TEXT:119,alphaNumToken:120,direction_tb:121,direction_bt:122,direction_rl:123,direction_lr:124,$accept:0,$end:1},terminals_:{2:"error",8:"SEMI",9:"NEWLINE",10:"SPACE",11:"EOF",12:"GRAPH",13:"NODIR",14:"DIR",27:"subgraph",29:"SQS",31:"SQE",32:"end",34:"acc_title",35:"acc_title_value",36:"acc_descr",37:"acc_descr_value",38:"acc_descr_multiline_value",40:"SHAPE_DATA",44:"AMP",46:"STYLE_SEPARATOR",48:"DOUBLECIRCLESTART",49:"DOUBLECIRCLEEND",50:"PS",51:"PE",52:"(-",53:"-)",54:"STADIUMSTART",55:"STADIUMEND",56:"SUBROUTINESTART",57:"SUBROUTINEEND",58:"VERTEX_WITH_PROPS_START",59:"NODE_STRING[field]",60:"COLON",61:"NODE_STRING[value]",62:"PIPE",63:"CYLINDERSTART",64:"CYLINDEREND",65:"DIAMOND_START",66:"DIAMOND_STOP",67:"TAGEND",68:"TRAPSTART",69:"TRAPEND",70:"INVTRAPSTART",71:"INVTRAPEND",74:"TESTSTR",75:"START_LINK",77:"LINK",78:"LINK_ID",80:"STR",81:"MD_STR",84:"STYLE",85:"LINKSTYLE",86:"CLASSDEF",87:"CLASS",88:"CLICK",89:"DOWN",90:"UP",93:"idString[vertex]",94:"idString[class]",95:"CALLBACKNAME",96:"CALLBACKARGS",97:"HREF",98:"LINK_TARGET",99:"STR[link]",100:"STR[tooltip]",102:"DEFAULT",104:"INTERPOLATE",105:"NUM",106:"COMMA",109:"NODE_STRING",110:"UNIT",111:"BRKT",112:"PCT",114:"MINUS",115:"MULT",116:"UNICODE_TEXT",117:"TEXT",118:"TAGSTART",119:"EDGE_TEXT",121:"direction_tb",122:"direction_bt",123:"direction_rl",124:"direction_lr"},productions_:[0,[3,2],[5,0],[5,2],[6,1],[6,1],[6,1],[6,1],[6,1],[4,2],[4,2],[4,2],[4,3],[16,2],[16,1],[17,1],[17,1],[17,1],[15,1],[15,1],[15,2],[19,2],[19,2],[19,1],[19,1],[18,2],[18,1],[7,2],[7,2],[7,2],[7,2],[7,2],[7,2],[7,9],[7,6],[7,4],[7,1],[7,2],[7,2],[7,1],[21,1],[21,1],[21,1],[39,2],[39,1],[20,4],[20,3],[20,4],[20,2],[20,2],[20,1],[42,1],[42,6],[42,5],[43,1],[43,3],[45,4],[45,4],[45,6],[45,4],[45,4],[45,4],[45,8],[45,4],[45,4],[45,4],[45,6],[45,4],[45,4],[45,4],[45,4],[45,4],[45,1],[41,2],[41,3],[41,3],[41,1],[41,3],[41,4],[76,1],[76,2],[76,1],[76,1],[72,1],[72,2],[73,3],[30,1],[30,2],[30,1],[30,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[28,1],[28,2],[28,1],[28,1],[24,5],[25,5],[26,2],[26,4],[26,3],[26,5],[26,3],[26,5],[26,5],[26,7],[26,2],[26,4],[26,2],[26,4],[26,4],[26,6],[22,5],[23,5],[23,5],[23,9],[23,9],[23,7],[23,7],[103,1],[103,3],[92,1],[92,3],[107,1],[107,2],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[113,1],[113,1],[113,1],[113,1],[113,1],[113,1],[113,1],[113,1],[113,1],[113,1],[113,1],[82,1],[82,1],[82,1],[82,1],[91,1],[91,1],[91,1],[91,1],[91,1],[91,1],[91,1],[91,1],[91,1],[91,1],[91,1],[79,1],[79,1],[120,1],[120,1],[120,1],[120,1],[120,1],[120,1],[120,1],[120,1],[120,1],[120,1],[120,1],[47,1],[47,2],[101,1],[101,2],[33,1],[33,1],[33,1],[33,1]],performAction:o(function(et,mt,Kt,lt,Cn,ye,Vf){var Te=ye.length-1;switch(Cn){case 2:this.$=[];break;case 3:(!Array.isArray(ye[Te])||ye[Te].length>0)&&ye[Te-1].push(ye[Te]),this.$=ye[Te-1];break;case 4:case 183:this.$=ye[Te];break;case 11:lt.setDirection("TB"),this.$="TB";break;case 12:lt.setDirection(ye[Te-1]),this.$=ye[Te-1];break;case 27:this.$=ye[Te-1].nodes;break;case 28:case 29:case 30:case 31:case 32:this.$=[];break;case 33:this.$=lt.addSubGraph(ye[Te-6],ye[Te-1],ye[Te-4]);break;case 34:this.$=lt.addSubGraph(ye[Te-3],ye[Te-1],ye[Te-3]);break;case 35:this.$=lt.addSubGraph(void 0,ye[Te-1],void 0);break;case 37:this.$=ye[Te].trim(),lt.setAccTitle(this.$);break;case 38:case 39:this.$=ye[Te].trim(),lt.setAccDescription(this.$);break;case 43:this.$=ye[Te-1]+ye[Te];break;case 44:this.$=ye[Te];break;case 45:lt.addVertex(ye[Te-1][ye[Te-1].length-1],void 0,void 0,void 0,void 0,void 0,void 0,ye[Te]),lt.addLink(ye[Te-3].stmt,ye[Te-1],ye[Te-2]),this.$={stmt:ye[Te-1],nodes:ye[Te-1].concat(ye[Te-3].nodes)};break;case 46:lt.addLink(ye[Te-2].stmt,ye[Te],ye[Te-1]),this.$={stmt:ye[Te],nodes:ye[Te].concat(ye[Te-2].nodes)};break;case 47:lt.addLink(ye[Te-3].stmt,ye[Te-1],ye[Te-2]),this.$={stmt:ye[Te-1],nodes:ye[Te-1].concat(ye[Te-3].nodes)};break;case 48:this.$={stmt:ye[Te-1],nodes:ye[Te-1]};break;case 49:lt.addVertex(ye[Te-1][ye[Te-1].length-1],void 0,void 0,void 0,void 0,void 0,void 0,ye[Te]),this.$={stmt:ye[Te-1],nodes:ye[Te-1],shapeData:ye[Te]};break;case 50:this.$={stmt:ye[Te],nodes:ye[Te]};break;case 51:this.$=[ye[Te]];break;case 52:lt.addVertex(ye[Te-5][ye[Te-5].length-1],void 0,void 0,void 0,void 0,void 0,void 0,ye[Te-4]),this.$=ye[Te-5].concat(ye[Te]);break;case 53:this.$=ye[Te-4].concat(ye[Te]);break;case 54:this.$=ye[Te];break;case 55:this.$=ye[Te-2],lt.setClass(ye[Te-2],ye[Te]);break;case 56:this.$=ye[Te-3],lt.addVertex(ye[Te-3],ye[Te-1],"square");break;case 57:this.$=ye[Te-3],lt.addVertex(ye[Te-3],ye[Te-1],"doublecircle");break;case 58:this.$=ye[Te-5],lt.addVertex(ye[Te-5],ye[Te-2],"circle");break;case 59:this.$=ye[Te-3],lt.addVertex(ye[Te-3],ye[Te-1],"ellipse");break;case 60:this.$=ye[Te-3],lt.addVertex(ye[Te-3],ye[Te-1],"stadium");break;case 61:this.$=ye[Te-3],lt.addVertex(ye[Te-3],ye[Te-1],"subroutine");break;case 62:this.$=ye[Te-7],lt.addVertex(ye[Te-7],ye[Te-1],"rect",void 0,void 0,void 0,Object.fromEntries([[ye[Te-5],ye[Te-3]]]));break;case 63:this.$=ye[Te-3],lt.addVertex(ye[Te-3],ye[Te-1],"cylinder");break;case 64:this.$=ye[Te-3],lt.addVertex(ye[Te-3],ye[Te-1],"round");break;case 65:this.$=ye[Te-3],lt.addVertex(ye[Te-3],ye[Te-1],"diamond");break;case 66:this.$=ye[Te-5],lt.addVertex(ye[Te-5],ye[Te-2],"hexagon");break;case 67:this.$=ye[Te-3],lt.addVertex(ye[Te-3],ye[Te-1],"odd");break;case 68:this.$=ye[Te-3],lt.addVertex(ye[Te-3],ye[Te-1],"trapezoid");break;case 69:this.$=ye[Te-3],lt.addVertex(ye[Te-3],ye[Te-1],"inv_trapezoid");break;case 70:this.$=ye[Te-3],lt.addVertex(ye[Te-3],ye[Te-1],"lean_right");break;case 71:this.$=ye[Te-3],lt.addVertex(ye[Te-3],ye[Te-1],"lean_left");break;case 72:this.$=ye[Te],lt.addVertex(ye[Te]);break;case 73:ye[Te-1].text=ye[Te],this.$=ye[Te-1];break;case 74:case 75:ye[Te-2].text=ye[Te-1],this.$=ye[Te-2];break;case 76:this.$=ye[Te];break;case 77:var wi=lt.destructLink(ye[Te],ye[Te-2]);this.$={type:wi.type,stroke:wi.stroke,length:wi.length,text:ye[Te-1]};break;case 78:var wi=lt.destructLink(ye[Te],ye[Te-2]);this.$={type:wi.type,stroke:wi.stroke,length:wi.length,text:ye[Te-1],id:ye[Te-3]};break;case 79:this.$={text:ye[Te],type:"text"};break;case 80:this.$={text:ye[Te-1].text+""+ye[Te],type:ye[Te-1].type};break;case 81:this.$={text:ye[Te],type:"string"};break;case 82:this.$={text:ye[Te],type:"markdown"};break;case 83:var wi=lt.destructLink(ye[Te]);this.$={type:wi.type,stroke:wi.stroke,length:wi.length};break;case 84:var wi=lt.destructLink(ye[Te]);this.$={type:wi.type,stroke:wi.stroke,length:wi.length,id:ye[Te-1]};break;case 85:this.$=ye[Te-1];break;case 86:this.$={text:ye[Te],type:"text"};break;case 87:this.$={text:ye[Te-1].text+""+ye[Te],type:ye[Te-1].type};break;case 88:this.$={text:ye[Te],type:"string"};break;case 89:case 104:this.$={text:ye[Te],type:"markdown"};break;case 101:this.$={text:ye[Te],type:"text"};break;case 102:this.$={text:ye[Te-1].text+""+ye[Te],type:ye[Te-1].type};break;case 103:this.$={text:ye[Te],type:"text"};break;case 105:this.$=ye[Te-4],lt.addClass(ye[Te-2],ye[Te]);break;case 106:this.$=ye[Te-4],lt.setClass(ye[Te-2],ye[Te]);break;case 107:case 115:this.$=ye[Te-1],lt.setClickEvent(ye[Te-1],ye[Te]);break;case 108:case 116:this.$=ye[Te-3],lt.setClickEvent(ye[Te-3],ye[Te-2]),lt.setTooltip(ye[Te-3],ye[Te]);break;case 109:this.$=ye[Te-2],lt.setClickEvent(ye[Te-2],ye[Te-1],ye[Te]);break;case 110:this.$=ye[Te-4],lt.setClickEvent(ye[Te-4],ye[Te-3],ye[Te-2]),lt.setTooltip(ye[Te-4],ye[Te]);break;case 111:this.$=ye[Te-2],lt.setLink(ye[Te-2],ye[Te]);break;case 112:this.$=ye[Te-4],lt.setLink(ye[Te-4],ye[Te-2]),lt.setTooltip(ye[Te-4],ye[Te]);break;case 113:this.$=ye[Te-4],lt.setLink(ye[Te-4],ye[Te-2],ye[Te]);break;case 114:this.$=ye[Te-6],lt.setLink(ye[Te-6],ye[Te-4],ye[Te]),lt.setTooltip(ye[Te-6],ye[Te-2]);break;case 117:this.$=ye[Te-1],lt.setLink(ye[Te-1],ye[Te]);break;case 118:this.$=ye[Te-3],lt.setLink(ye[Te-3],ye[Te-2]),lt.setTooltip(ye[Te-3],ye[Te]);break;case 119:this.$=ye[Te-3],lt.setLink(ye[Te-3],ye[Te-2],ye[Te]);break;case 120:this.$=ye[Te-5],lt.setLink(ye[Te-5],ye[Te-4],ye[Te]),lt.setTooltip(ye[Te-5],ye[Te-2]);break;case 121:this.$=ye[Te-4],lt.addVertex(ye[Te-2],void 0,void 0,ye[Te]);break;case 122:this.$=ye[Te-4],lt.updateLink([ye[Te-2]],ye[Te]);break;case 123:this.$=ye[Te-4],lt.updateLink(ye[Te-2],ye[Te]);break;case 124:this.$=ye[Te-8],lt.updateLinkInterpolate([ye[Te-6]],ye[Te-2]),lt.updateLink([ye[Te-6]],ye[Te]);break;case 125:this.$=ye[Te-8],lt.updateLinkInterpolate(ye[Te-6],ye[Te-2]),lt.updateLink(ye[Te-6],ye[Te]);break;case 126:this.$=ye[Te-6],lt.updateLinkInterpolate([ye[Te-4]],ye[Te]);break;case 127:this.$=ye[Te-6],lt.updateLinkInterpolate(ye[Te-4],ye[Te]);break;case 128:case 130:this.$=[ye[Te]];break;case 129:case 131:ye[Te-2].push(ye[Te]),this.$=ye[Te-2];break;case 133:this.$=ye[Te-1]+ye[Te];break;case 181:this.$=ye[Te];break;case 182:this.$=ye[Te-1]+""+ye[Te];break;case 184:this.$=ye[Te-1]+""+ye[Te];break;case 185:this.$={stmt:"dir",value:"TB"};break;case 186:this.$={stmt:"dir",value:"BT"};break;case 187:this.$={stmt:"dir",value:"RL"};break;case 188:this.$={stmt:"dir",value:"LR"};break}},"anonymous"),table:[{3:1,4:2,9:e,10:r,12:n},{1:[3]},t(i,a,{5:6}),{4:7,9:e,10:r,12:n},{4:8,9:e,10:r,12:n},{13:[1,9],14:[1,10]},{1:[2,1],6:11,7:12,8:s,9:l,10:u,11:h,20:17,22:18,23:19,24:20,25:21,26:22,27:f,33:24,34:d,36:p,38:m,42:28,43:38,44:g,45:39,47:40,60:y,84:v,85:x,86:b,87:w,88:C,89:T,102:E,105:A,106:S,109:_,111:I,113:41,114:D,115:k,116:L,121:R,122:O,123:M,124:B},t(i,[2,9]),t(i,[2,10]),t(i,[2,11]),{8:[1,54],9:[1,55],10:F,15:53,18:56},t(P,[2,3]),t(P,[2,4]),t(P,[2,5]),t(P,[2,6]),t(P,[2,7]),t(P,[2,8]),{8:z,9:$,11:H,21:58,41:59,72:63,75:[1,64],77:[1,66],78:[1,65]},{8:z,9:$,11:H,21:67},{8:z,9:$,11:H,21:68},{8:z,9:$,11:H,21:69},{8:z,9:$,11:H,21:70},{8:z,9:$,11:H,21:71},{8:z,9:$,10:[1,72],11:H,21:73},t(P,[2,36]),{35:[1,74]},{37:[1,75]},t(P,[2,39]),t(Q,[2,50],{18:76,39:77,10:F,40:j}),{10:[1,79]},{10:[1,80]},{10:[1,81]},{10:[1,82]},{14:ie,44:ne,60:le,80:[1,86],89:he,95:[1,83],97:[1,84],101:85,105:K,106:X,109:te,111:J,114:se,115:ue,116:Z,120:87},t(P,[2,185]),t(P,[2,186]),t(P,[2,187]),t(P,[2,188]),t(Se,[2,51]),t(Se,[2,54],{46:[1,99]}),t(ce,[2,72],{113:112,29:[1,100],44:g,48:[1,101],50:[1,102],52:[1,103],54:[1,104],56:[1,105],58:[1,106],60:y,63:[1,107],65:[1,108],67:[1,109],68:[1,110],70:[1,111],89:T,102:E,105:A,106:S,109:_,111:I,114:D,115:k,116:L}),t(ae,[2,181]),t(ae,[2,142]),t(ae,[2,143]),t(ae,[2,144]),t(ae,[2,145]),t(ae,[2,146]),t(ae,[2,147]),t(ae,[2,148]),t(ae,[2,149]),t(ae,[2,150]),t(ae,[2,151]),t(ae,[2,152]),t(i,[2,12]),t(i,[2,18]),t(i,[2,19]),{9:[1,113]},t(Oe,[2,26],{18:114,10:F}),t(P,[2,27]),{42:115,43:38,44:g,45:39,47:40,60:y,89:T,102:E,105:A,106:S,109:_,111:I,113:41,114:D,115:k,116:L},t(P,[2,40]),t(P,[2,41]),t(P,[2,42]),t(ge,[2,76],{73:116,62:[1,118],74:[1,117]}),{76:119,79:120,80:ze,81:He,116:$e,119:Re},{75:[1,125],77:[1,126]},t(Ie,[2,83]),t(P,[2,28]),t(P,[2,29]),t(P,[2,30]),t(P,[2,31]),t(P,[2,32]),{10:be,12:W,14:de,27:re,28:127,32:oe,44:V,60:xe,75:q,80:[1,129],81:[1,130],83:140,84:pe,85:ve,86:Pe,87:_e,88:we,89:Ve,90:De,91:128,105:qe,109:at,111:Rt,114:st,115:Ue,116:ct},t(We,a,{5:153}),t(P,[2,37]),t(P,[2,38]),t(Q,[2,48],{44:ot}),t(Q,[2,49],{18:155,10:F,40:Yt}),t(Se,[2,44]),{44:g,47:157,60:y,89:T,102:E,105:A,106:S,109:_,111:I,113:41,114:D,115:k,116:L},{102:[1,158],103:159,105:[1,160]},{44:g,47:161,60:y,89:T,102:E,105:A,106:S,109:_,111:I,113:41,114:D,115:k,116:L},{44:g,47:162,60:y,89:T,102:E,105:A,106:S,109:_,111:I,113:41,114:D,115:k,116:L},t(bt,[2,107],{10:[1,163],96:[1,164]}),{80:[1,165]},t(bt,[2,115],{120:167,10:[1,166],14:ie,44:ne,60:le,89:he,105:K,106:X,109:te,111:J,114:se,115:ue,116:Z}),t(bt,[2,117],{10:[1,168]}),t(Mt,[2,183]),t(Mt,[2,170]),t(Mt,[2,171]),t(Mt,[2,172]),t(Mt,[2,173]),t(Mt,[2,174]),t(Mt,[2,175]),t(Mt,[2,176]),t(Mt,[2,177]),t(Mt,[2,178]),t(Mt,[2,179]),t(Mt,[2,180]),{44:g,47:169,60:y,89:T,102:E,105:A,106:S,109:_,111:I,113:41,114:D,115:k,116:L},{30:170,67:xt,80:ut,81:Et,82:171,116:ft,117:yt,118:nt},{30:178,67:xt,80:ut,81:Et,82:171,116:ft,117:yt,118:nt},{30:180,50:[1,179],67:xt,80:ut,81:Et,82:171,116:ft,117:yt,118:nt},{30:181,67:xt,80:ut,81:Et,82:171,116:ft,117:yt,118:nt},{30:182,67:xt,80:ut,81:Et,82:171,116:ft,117:yt,118:nt},{30:183,67:xt,80:ut,81:Et,82:171,116:ft,117:yt,118:nt},{109:[1,184]},{30:185,67:xt,80:ut,81:Et,82:171,116:ft,117:yt,118:nt},{30:186,65:[1,187],67:xt,80:ut,81:Et,82:171,116:ft,117:yt,118:nt},{30:188,67:xt,80:ut,81:Et,82:171,116:ft,117:yt,118:nt},{30:189,67:xt,80:ut,81:Et,82:171,116:ft,117:yt,118:nt},{30:190,67:xt,80:ut,81:Et,82:171,116:ft,117:yt,118:nt},t(ae,[2,182]),t(i,[2,20]),t(Oe,[2,25]),t(Q,[2,46],{39:191,18:192,10:F,40:j}),t(ge,[2,73],{10:[1,193]}),{10:[1,194]},{30:195,67:xt,80:ut,81:Et,82:171,116:ft,117:yt,118:nt},{77:[1,196],79:197,116:$e,119:Re},t(dn,[2,79]),t(dn,[2,81]),t(dn,[2,82]),t(dn,[2,168]),t(dn,[2,169]),{76:198,79:120,80:ze,81:He,116:$e,119:Re},t(Ie,[2,84]),{8:z,9:$,10:be,11:H,12:W,14:de,21:200,27:re,29:[1,199],32:oe,44:V,60:xe,75:q,83:140,84:pe,85:ve,86:Pe,87:_e,88:we,89:Ve,90:De,91:201,105:qe,109:at,111:Rt,114:st,115:Ue,116:ct},t(Tt,[2,101]),t(Tt,[2,103]),t(Tt,[2,104]),t(Tt,[2,157]),t(Tt,[2,158]),t(Tt,[2,159]),t(Tt,[2,160]),t(Tt,[2,161]),t(Tt,[2,162]),t(Tt,[2,163]),t(Tt,[2,164]),t(Tt,[2,165]),t(Tt,[2,166]),t(Tt,[2,167]),t(Tt,[2,90]),t(Tt,[2,91]),t(Tt,[2,92]),t(Tt,[2,93]),t(Tt,[2,94]),t(Tt,[2,95]),t(Tt,[2,96]),t(Tt,[2,97]),t(Tt,[2,98]),t(Tt,[2,99]),t(Tt,[2,100]),{6:11,7:12,8:s,9:l,10:u,11:h,20:17,22:18,23:19,24:20,25:21,26:22,27:f,32:[1,202],33:24,34:d,36:p,38:m,42:28,43:38,44:g,45:39,47:40,60:y,84:v,85:x,86:b,87:w,88:C,89:T,102:E,105:A,106:S,109:_,111:I,113:41,114:D,115:k,116:L,121:R,122:O,123:M,124:B},{10:F,18:203},{44:[1,204]},t(Se,[2,43]),{10:[1,205],44:g,60:y,89:T,102:E,105:A,106:S,109:_,111:I,113:112,114:D,115:k,116:L},{10:[1,206]},{10:[1,207],106:[1,208]},t(On,[2,128]),{10:[1,209],44:g,60:y,89:T,102:E,105:A,106:S,109:_,111:I,113:112,114:D,115:k,116:L},{10:[1,210],44:g,60:y,89:T,102:E,105:A,106:S,109:_,111:I,113:112,114:D,115:k,116:L},{80:[1,211]},t(bt,[2,109],{10:[1,212]}),t(bt,[2,111],{10:[1,213]}),{80:[1,214]},t(Mt,[2,184]),{80:[1,215],98:[1,216]},t(Se,[2,55],{113:112,44:g,60:y,89:T,102:E,105:A,106:S,109:_,111:I,114:D,115:k,116:L}),{31:[1,217],67:xt,82:218,116:ft,117:yt,118:nt},t(tn,[2,86]),t(tn,[2,88]),t(tn,[2,89]),t(tn,[2,153]),t(tn,[2,154]),t(tn,[2,155]),t(tn,[2,156]),{49:[1,219],67:xt,82:218,116:ft,117:yt,118:nt},{30:220,67:xt,80:ut,81:Et,82:171,116:ft,117:yt,118:nt},{51:[1,221],67:xt,82:218,116:ft,117:yt,118:nt},{53:[1,222],67:xt,82:218,116:ft,117:yt,118:nt},{55:[1,223],67:xt,82:218,116:ft,117:yt,118:nt},{57:[1,224],67:xt,82:218,116:ft,117:yt,118:nt},{60:[1,225]},{64:[1,226],67:xt,82:218,116:ft,117:yt,118:nt},{66:[1,227],67:xt,82:218,116:ft,117:yt,118:nt},{30:228,67:xt,80:ut,81:Et,82:171,116:ft,117:yt,118:nt},{31:[1,229],67:xt,82:218,116:ft,117:yt,118:nt},{67:xt,69:[1,230],71:[1,231],82:218,116:ft,117:yt,118:nt},{67:xt,69:[1,233],71:[1,232],82:218,116:ft,117:yt,118:nt},t(Q,[2,45],{18:155,10:F,40:Yt}),t(Q,[2,47],{44:ot}),t(ge,[2,75]),t(ge,[2,74]),{62:[1,234],67:xt,82:218,116:ft,117:yt,118:nt},t(ge,[2,77]),t(dn,[2,80]),{77:[1,235],79:197,116:$e,119:Re},{30:236,67:xt,80:ut,81:Et,82:171,116:ft,117:yt,118:nt},t(We,a,{5:237}),t(Tt,[2,102]),t(P,[2,35]),{43:238,44:g,45:39,47:40,60:y,89:T,102:E,105:A,106:S,109:_,111:I,113:41,114:D,115:k,116:L},{10:F,18:239},{10:_r,60:Dr,84:Pn,92:240,105:At,107:241,108:242,109:Ce,110:tt,111:St,112:mr},{10:_r,60:Dr,84:Pn,92:251,104:[1,252],105:At,107:241,108:242,109:Ce,110:tt,111:St,112:mr},{10:_r,60:Dr,84:Pn,92:253,104:[1,254],105:At,107:241,108:242,109:Ce,110:tt,111:St,112:mr},{105:[1,255]},{10:_r,60:Dr,84:Pn,92:256,105:At,107:241,108:242,109:Ce,110:tt,111:St,112:mr},{44:g,47:257,60:y,89:T,102:E,105:A,106:S,109:_,111:I,113:41,114:D,115:k,116:L},t(bt,[2,108]),{80:[1,258]},{80:[1,259],98:[1,260]},t(bt,[2,116]),t(bt,[2,118],{10:[1,261]}),t(bt,[2,119]),t(ce,[2,56]),t(tn,[2,87]),t(ce,[2,57]),{51:[1,262],67:xt,82:218,116:ft,117:yt,118:nt},t(ce,[2,64]),t(ce,[2,59]),t(ce,[2,60]),t(ce,[2,61]),{109:[1,263]},t(ce,[2,63]),t(ce,[2,65]),{66:[1,264],67:xt,82:218,116:ft,117:yt,118:nt},t(ce,[2,67]),t(ce,[2,68]),t(ce,[2,70]),t(ce,[2,69]),t(ce,[2,71]),t([10,44,60,89,102,105,106,109,111,114,115,116],[2,85]),t(ge,[2,78]),{31:[1,265],67:xt,82:218,116:ft,117:yt,118:nt},{6:11,7:12,8:s,9:l,10:u,11:h,20:17,22:18,23:19,24:20,25:21,26:22,27:f,32:[1,266],33:24,34:d,36:p,38:m,42:28,43:38,44:g,45:39,47:40,60:y,84:v,85:x,86:b,87:w,88:C,89:T,102:E,105:A,106:S,109:_,111:I,113:41,114:D,115:k,116:L,121:R,122:O,123:M,124:B},t(Se,[2,53]),{43:267,44:g,45:39,47:40,60:y,89:T,102:E,105:A,106:S,109:_,111:I,113:41,114:D,115:k,116:L},t(bt,[2,121],{106:rn}),t(gn,[2,130],{108:269,10:_r,60:Dr,84:Pn,105:At,109:Ce,110:tt,111:St,112:mr}),t(Zr,[2,132]),t(Zr,[2,134]),t(Zr,[2,135]),t(Zr,[2,136]),t(Zr,[2,137]),t(Zr,[2,138]),t(Zr,[2,139]),t(Zr,[2,140]),t(Zr,[2,141]),t(bt,[2,122],{106:rn}),{10:[1,270]},t(bt,[2,123],{106:rn}),{10:[1,271]},t(On,[2,129]),t(bt,[2,105],{106:rn}),t(bt,[2,106],{113:112,44:g,60:y,89:T,102:E,105:A,106:S,109:_,111:I,114:D,115:k,116:L}),t(bt,[2,110]),t(bt,[2,112],{10:[1,272]}),t(bt,[2,113]),{98:[1,273]},{51:[1,274]},{62:[1,275]},{66:[1,276]},{8:z,9:$,11:H,21:277},t(P,[2,34]),t(Se,[2,52]),{10:_r,60:Dr,84:Pn,105:At,107:278,108:242,109:Ce,110:tt,111:St,112:mr},t(Zr,[2,133]),{14:ie,44:ne,60:le,89:he,101:279,105:K,106:X,109:te,111:J,114:se,115:ue,116:Z,120:87},{14:ie,44:ne,60:le,89:he,101:280,105:K,106:X,109:te,111:J,114:se,115:ue,116:Z,120:87},{98:[1,281]},t(bt,[2,120]),t(ce,[2,58]),{30:282,67:xt,80:ut,81:Et,82:171,116:ft,117:yt,118:nt},t(ce,[2,66]),t(We,a,{5:283}),t(gn,[2,131],{108:269,10:_r,60:Dr,84:Pn,105:At,109:Ce,110:tt,111:St,112:mr}),t(bt,[2,126],{120:167,10:[1,284],14:ie,44:ne,60:le,89:he,105:K,106:X,109:te,111:J,114:se,115:ue,116:Z}),t(bt,[2,127],{120:167,10:[1,285],14:ie,44:ne,60:le,89:he,105:K,106:X,109:te,111:J,114:se,115:ue,116:Z}),t(bt,[2,114]),{31:[1,286],67:xt,82:218,116:ft,117:yt,118:nt},{6:11,7:12,8:s,9:l,10:u,11:h,20:17,22:18,23:19,24:20,25:21,26:22,27:f,32:[1,287],33:24,34:d,36:p,38:m,42:28,43:38,44:g,45:39,47:40,60:y,84:v,85:x,86:b,87:w,88:C,89:T,102:E,105:A,106:S,109:_,111:I,113:41,114:D,115:k,116:L,121:R,122:O,123:M,124:B},{10:_r,60:Dr,84:Pn,92:288,105:At,107:241,108:242,109:Ce,110:tt,111:St,112:mr},{10:_r,60:Dr,84:Pn,92:289,105:At,107:241,108:242,109:Ce,110:tt,111:St,112:mr},t(ce,[2,62]),t(P,[2,33]),t(bt,[2,124],{106:rn}),t(bt,[2,125],{106:rn})],defaultActions:{},parseError:o(function(et,mt){if(mt.recoverable)this.trace(et);else{var Kt=new Error(et);throw Kt.hash=mt,Kt}},"parseError"),parse:o(function(et){var mt=this,Kt=[0],lt=[],Cn=[null],ye=[],Vf=this.table,Te="",wi=0,TF=0,kF=0,M2e=2,EF=1,I2e=ye.slice.call(arguments,1),Xi=Object.create(this.lexer),Uf={yy:{}};for(var xC in this.yy)Object.prototype.hasOwnProperty.call(this.yy,xC)&&(Uf.yy[xC]=this.yy[xC]);Xi.setInput(et,Uf.yy),Uf.yy.lexer=Xi,Uf.yy.parser=this,typeof Xi.yylloc>"u"&&(Xi.yylloc={});var bC=Xi.yylloc;ye.push(bC);var O2e=Xi.options&&Xi.options.ranges;typeof Uf.yy.parseError=="function"?this.parseError=Uf.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function wnt(Ws){Kt.length=Kt.length-2*Ws,Cn.length=Cn.length-Ws,ye.length=ye.length-Ws}o(wnt,"popStack");function P2e(){var Ws;return Ws=lt.pop()||Xi.lex()||EF,typeof Ws!="number"&&(Ws instanceof Array&&(lt=Ws,Ws=lt.pop()),Ws=mt.symbols_[Ws]||Ws),Ws}o(P2e,"lex");for(var Wa,wC,Hf,xo,Tnt,TC,Jp={},_4,Jc,SF,D4;;){if(Hf=Kt[Kt.length-1],this.defaultActions[Hf]?xo=this.defaultActions[Hf]:((Wa===null||typeof Wa>"u")&&(Wa=P2e()),xo=Vf[Hf]&&Vf[Hf][Wa]),typeof xo>"u"||!xo.length||!xo[0]){var kC="";D4=[];for(_4 in Vf[Hf])this.terminals_[_4]&&_4>M2e&&D4.push("'"+this.terminals_[_4]+"'");Xi.showPosition?kC="Parse error on line "+(wi+1)+`:
+`+Xi.showPosition()+`
+Expecting `+D4.join(", ")+", got '"+(this.terminals_[Wa]||Wa)+"'":kC="Parse error on line "+(wi+1)+": Unexpected "+(Wa==EF?"end of input":"'"+(this.terminals_[Wa]||Wa)+"'"),this.parseError(kC,{text:Xi.match,token:this.terminals_[Wa]||Wa,line:Xi.yylineno,loc:bC,expected:D4})}if(xo[0]instanceof Array&&xo.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Hf+", token: "+Wa);switch(xo[0]){case 1:Kt.push(Wa),Cn.push(Xi.yytext),ye.push(Xi.yylloc),Kt.push(xo[1]),Wa=null,wC?(Wa=wC,wC=null):(TF=Xi.yyleng,Te=Xi.yytext,wi=Xi.yylineno,bC=Xi.yylloc,kF>0&&kF--);break;case 2:if(Jc=this.productions_[xo[1]][1],Jp.$=Cn[Cn.length-Jc],Jp._$={first_line:ye[ye.length-(Jc||1)].first_line,last_line:ye[ye.length-1].last_line,first_column:ye[ye.length-(Jc||1)].first_column,last_column:ye[ye.length-1].last_column},O2e&&(Jp._$.range=[ye[ye.length-(Jc||1)].range[0],ye[ye.length-1].range[1]]),TC=this.performAction.apply(Jp,[Te,TF,wi,Uf.yy,xo[1],Cn,ye].concat(I2e)),typeof TC<"u")return TC;Jc&&(Kt=Kt.slice(0,-1*Jc*2),Cn=Cn.slice(0,-1*Jc),ye=ye.slice(0,-1*Jc)),Kt.push(this.productions_[xo[1]][0]),Cn.push(Jp.$),ye.push(Jp._$),SF=Vf[Kt[Kt.length-2]][Kt[Kt.length-1]],Kt.push(SF);break;case 3:return!0}}return!0},"parse")},Zn=function(){var Hr={EOF:1,parseError:o(function(mt,Kt){if(this.yy.parser)this.yy.parser.parseError(mt,Kt);else throw new Error(mt)},"parseError"),setInput:o(function(et,mt){return this.yy=mt||this.yy||{},this._input=et,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var et=this._input[0];this.yytext+=et,this.yyleng++,this.offset++,this.match+=et,this.matched+=et;var mt=et.match(/(?:\r\n?|\n).*/g);return mt?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),et},"input"),unput:o(function(et){var mt=et.length,Kt=et.split(/(?:\r\n?|\n)/g);this._input=et+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-mt),this.offset-=mt;var lt=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),Kt.length-1&&(this.yylineno-=Kt.length-1);var Cn=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:Kt?(Kt.length===lt.length?this.yylloc.first_column:0)+lt[lt.length-Kt.length].length-Kt[0].length:this.yylloc.first_column-mt},this.options.ranges&&(this.yylloc.range=[Cn[0],Cn[0]+this.yyleng-mt]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
+`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(et){this.unput(this.match.slice(et))},"less"),pastInput:o(function(){var et=this.matched.substr(0,this.matched.length-this.match.length);return(et.length>20?"...":"")+et.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var et=this.match;return et.length<20&&(et+=this._input.substr(0,20-et.length)),(et.substr(0,20)+(et.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var et=this.pastInput(),mt=new Array(et.length+1).join("-");return et+this.upcomingInput()+`
+`+mt+"^"},"showPosition"),test_match:o(function(et,mt){var Kt,lt,Cn;if(this.options.backtrack_lexer&&(Cn={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(Cn.yylloc.range=this.yylloc.range.slice(0))),lt=et[0].match(/(?:\r\n?|\n).*/g),lt&&(this.yylineno+=lt.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:lt?lt[lt.length-1].length-lt[lt.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+et[0].length},this.yytext+=et[0],this.match+=et[0],this.matches=et,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(et[0].length),this.matched+=et[0],Kt=this.performAction.call(this,this.yy,this,mt,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),Kt)return Kt;if(this._backtrack){for(var ye in Cn)this[ye]=Cn[ye];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var et,mt,Kt,lt;this._more||(this.yytext="",this.match="");for(var Cn=this._currentRules(),ye=0;ye<Cn.length;ye++)if(Kt=this._input.match(this.rules[Cn[ye]]),Kt&&(!mt||Kt[0].length>mt[0].length)){if(mt=Kt,lt=ye,this.options.backtrack_lexer){if(et=this.test_match(Kt,Cn[ye]),et!==!1)return et;if(this._backtrack){mt=!1;continue}else return!1}else if(!this.options.flex)break}return mt?(et=this.test_match(mt,Cn[lt]),et!==!1?et:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text.
+`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var mt=this.next();return mt||this.lex()},"lex"),begin:o(function(mt){this.conditionStack.push(mt)},"begin"),popState:o(function(){var mt=this.conditionStack.length-1;return mt>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(mt){return mt=this.conditionStack.length-1-Math.abs(mt||0),mt>=0?this.conditionStack[mt]:"INITIAL"},"topState"),pushState:o(function(mt){this.begin(mt)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{},performAction:o(function(mt,Kt,lt,Cn){var ye=Cn;switch(lt){case 0:return this.begin("acc_title"),34;break;case 1:return this.popState(),"acc_title_value";break;case 2:return this.begin("acc_descr"),36;break;case 3:return this.popState(),"acc_descr_value";break;case 4:this.begin("acc_descr_multiline");break;case 5:this.popState();break;case 6:return"acc_descr_multiline_value";case 7:return this.pushState("shapeData"),Kt.yytext="",40;break;case 8:return this.pushState("shapeDataStr"),40;break;case 9:return this.popState(),40;break;case 10:let Vf=/\n\s*/g;return Kt.yytext=Kt.yytext.replace(Vf,"<br/>"),40;break;case 11:return 40;case 12:this.popState();break;case 13:this.begin("callbackname");break;case 14:this.popState();break;case 15:this.popState(),this.begin("callbackargs");break;case 16:return 95;case 17:this.popState();break;case 18:return 96;case 19:return"MD_STR";case 20:this.popState();break;case 21:this.begin("md_string");break;case 22:return"STR";case 23:this.popState();break;case 24:this.pushState("string");break;case 25:return 84;case 26:return 102;case 27:return 85;case 28:return 104;case 29:return 86;case 30:return 87;case 31:return 97;case 32:this.begin("click");break;case 33:this.popState();break;case 34:return 88;case 35:return mt.lex.firstGraph()&&this.begin("dir"),12;break;case 36:return mt.lex.firstGraph()&&this.begin("dir"),12;break;case 37:return mt.lex.firstGraph()&&this.begin("dir"),12;break;case 38:return 27;case 39:return 32;case 40:return 98;case 41:return 98;case 42:return 98;case 43:return 98;case 44:return this.popState(),13;break;case 45:return this.popState(),14;break;case 46:return this.popState(),14;break;case 47:return this.popState(),14;break;case 48:return this.popState(),14;break;case 49:return this.popState(),14;break;case 50:return this.popState(),14;break;case 51:return this.popState(),14;break;case 52:return this.popState(),14;break;case 53:return this.popState(),14;break;case 54:return this.popState(),14;break;case 55:return 121;case 56:return 122;case 57:return 123;case 58:return 124;case 59:return 78;case 60:return 105;case 61:return 111;case 62:return 46;case 63:return 60;case 64:return 44;case 65:return 8;case 66:return 106;case 67:return 115;case 68:return this.popState(),77;break;case 69:return this.pushState("edgeText"),75;break;case 70:return 119;case 71:return this.popState(),77;break;case 72:return this.pushState("thickEdgeText"),75;break;case 73:return 119;case 74:return this.popState(),77;break;case 75:return this.pushState("dottedEdgeText"),75;break;case 76:return 119;case 77:return 77;case 78:return this.popState(),53;break;case 79:return"TEXT";case 80:return this.pushState("ellipseText"),52;break;case 81:return this.popState(),55;break;case 82:return this.pushState("text"),54;break;case 83:return this.popState(),57;break;case 84:return this.pushState("text"),56;break;case 85:return 58;case 86:return this.pushState("text"),67;break;case 87:return this.popState(),64;break;case 88:return this.pushState("text"),63;break;case 89:return this.popState(),49;break;case 90:return this.pushState("text"),48;break;case 91:return this.popState(),69;break;case 92:return this.popState(),71;break;case 93:return 117;case 94:return this.pushState("trapText"),68;break;case 95:return this.pushState("trapText"),70;break;case 96:return 118;case 97:return 67;case 98:return 90;case 99:return"SEP";case 100:return 89;case 101:return 115;case 102:return 111;case 103:return 44;case 104:return 109;case 105:return 114;case 106:return 116;case 107:return this.popState(),62;break;case 108:return this.pushState("text"),62;break;case 109:return this.popState(),51;break;case 110:return this.pushState("text"),50;break;case 111:return this.popState(),31;break;case 112:return this.pushState("text"),29;break;case 113:return this.popState(),66;break;case 114:return this.pushState("text"),65;break;case 115:return"TEXT";case 116:return"QUOTE";case 117:return 9;case 118:return 10;case 119:return 11}},"anonymous"),rules:[/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:@\{)/,/^(?:["])/,/^(?:["])/,/^(?:[^\"]+)/,/^(?:[^}^"]+)/,/^(?:\})/,/^(?:call[\s]+)/,/^(?:\([\s]*\))/,/^(?:\()/,/^(?:[^(]*)/,/^(?:\))/,/^(?:[^)]*)/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["][`])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:["])/,/^(?:style\b)/,/^(?:default\b)/,/^(?:linkStyle\b)/,/^(?:interpolate\b)/,/^(?:classDef\b)/,/^(?:class\b)/,/^(?:href[\s])/,/^(?:click[\s]+)/,/^(?:[\s\n])/,/^(?:[^\s\n]*)/,/^(?:flowchart-elk\b)/,/^(?:graph\b)/,/^(?:flowchart\b)/,/^(?:subgraph\b)/,/^(?:end\b\s*)/,/^(?:_self\b)/,/^(?:_blank\b)/,/^(?:_parent\b)/,/^(?:_top\b)/,/^(?:(\r?\n)*\s*\n)/,/^(?:\s*LR\b)/,/^(?:\s*RL\b)/,/^(?:\s*TB\b)/,/^(?:\s*BT\b)/,/^(?:\s*TD\b)/,/^(?:\s*BR\b)/,/^(?:\s*<)/,/^(?:\s*>)/,/^(?:\s*\^)/,/^(?:\s*v\b)/,/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:[^\s\"]+@(?=[^\{\"]))/,/^(?:[0-9]+)/,/^(?:#)/,/^(?::::)/,/^(?::)/,/^(?:&)/,/^(?:;)/,/^(?:,)/,/^(?:\*)/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?--\s*)/,/^(?:[^-]|-(?!-)+)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?==\s*)/,/^(?:[^=]|=(?!))/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?:\s*[xo<]?-\.\s*)/,/^(?:[^\.]|\.(?!))/,/^(?:\s*~~[\~]+\s*)/,/^(?:[-/\)][\)])/,/^(?:[^\(\)\[\]\{\}]|!\)+)/,/^(?:\(-)/,/^(?:\]\))/,/^(?:\(\[)/,/^(?:\]\])/,/^(?:\[\[)/,/^(?:\[\|)/,/^(?:>)/,/^(?:\)\])/,/^(?:\[\()/,/^(?:\)\)\))/,/^(?:\(\(\()/,/^(?:[\\(?=\])][\]])/,/^(?:\/(?=\])\])/,/^(?:\/(?!\])|\\(?!\])|[^\\\[\]\(\)\{\}\/]+)/,/^(?:\[\/)/,/^(?:\[\\)/,/^(?:<)/,/^(?:>)/,/^(?:\^)/,/^(?:\\\|)/,/^(?:v\b)/,/^(?:\*)/,/^(?:#)/,/^(?:&)/,/^(?:([A-Za-z0-9!"\#$%&'*+\.`?\\_\/]|-(?=[^\>\-\.])|(?!))+)/,/^(?:-)/,/^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/,/^(?:\|)/,/^(?:\|)/,/^(?:\))/,/^(?:\()/,/^(?:\])/,/^(?:\[)/,/^(?:(\}))/,/^(?:\{)/,/^(?:[^\[\]\(\)\{\}\|\"]+)/,/^(?:")/,/^(?:(\r?\n)+)/,/^(?:\s)/,/^(?:$)/],conditions:{shapeDataEndBracket:{rules:[21,24,77,80,82,84,88,90,94,95,108,110,112,114],inclusive:!1},shapeDataStr:{rules:[9,10,21,24,77,80,82,84,88,90,94,95,108,110,112,114],inclusive:!1},shapeData:{rules:[8,11,12,21,24,77,80,82,84,88,90,94,95,108,110,112,114],inclusive:!1},callbackargs:{rules:[17,18,21,24,77,80,82,84,88,90,94,95,108,110,112,114],inclusive:!1},callbackname:{rules:[14,15,16,21,24,77,80,82,84,88,90,94,95,108,110,112,114],inclusive:!1},href:{rules:[21,24,77,80,82,84,88,90,94,95,108,110,112,114],inclusive:!1},click:{rules:[21,24,33,34,77,80,82,84,88,90,94,95,108,110,112,114],inclusive:!1},dottedEdgeText:{rules:[21,24,74,76,77,80,82,84,88,90,94,95,108,110,112,114],inclusive:!1},thickEdgeText:{rules:[21,24,71,73,77,80,82,84,88,90,94,95,108,110,112,114],inclusive:!1},edgeText:{rules:[21,24,68,70,77,80,82,84,88,90,94,95,108,110,112,114],inclusive:!1},trapText:{rules:[21,24,77,80,82,84,88,90,91,92,93,94,95,108,110,112,114],inclusive:!1},ellipseText:{rules:[21,24,77,78,79,80,82,84,88,90,94,95,108,110,112,114],inclusive:!1},text:{rules:[21,24,77,80,81,82,83,84,87,88,89,90,94,95,107,108,109,110,111,112,113,114,115],inclusive:!1},vertex:{rules:[21,24,77,80,82,84,88,90,94,95,108,110,112,114],inclusive:!1},dir:{rules:[21,24,44,45,46,47,48,49,50,51,52,53,54,77,80,82,84,88,90,94,95,108,110,112,114],inclusive:!1},acc_descr_multiline:{rules:[5,6,21,24,77,80,82,84,88,90,94,95,108,110,112,114],inclusive:!1},acc_descr:{rules:[3,21,24,77,80,82,84,88,90,94,95,108,110,112,114],inclusive:!1},acc_title:{rules:[1,21,24,77,80,82,84,88,90,94,95,108,110,112,114],inclusive:!1},md_string:{rules:[19,20,21,24,77,80,82,84,88,90,94,95,108,110,112,114],inclusive:!1},string:{rules:[21,22,23,24,77,80,82,84,88,90,94,95,108,110,112,114],inclusive:!1},INITIAL:{rules:[0,2,4,7,13,21,24,25,26,27,28,29,30,31,32,35,36,37,38,39,40,41,42,43,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,71,72,74,75,77,80,82,84,85,86,88,90,94,95,96,97,98,99,100,101,102,103,104,105,106,108,110,112,114,116,117,118,119],inclusive:!0}}};return Hr}();Ni.lexer=Zn;function Sn(){this.yy={}}return o(Sn,"Parser"),Sn.prototype=Ni,Ni.Parser=Sn,new Sn}();xR.parser=xR;bR=xR});var Uie,Hie,Wie=N(()=>{"use strict";Vie();Uie=Object.assign({},bR);Uie.parse=t=>{let e=t.replace(/}\s*\n/g,`}
+`);return bR.parse(e)};Hie=Uie});var gOe,yOe,qie,Yie=N(()=>{"use strict";Ys();gOe=o((t,e)=>{let r=Kf,n=r(t,"r"),i=r(t,"g"),a=r(t,"b");return qa(n,i,a,e)},"fade"),yOe=o(t=>`.label {
+    font-family: ${t.fontFamily};
+    color: ${t.nodeTextColor||t.textColor};
+  }
+  .cluster-label text {
+    fill: ${t.titleColor};
+  }
+  .cluster-label span {
+    color: ${t.titleColor};
+  }
+  .cluster-label span p {
+    background-color: transparent;
+  }
+
+  .label text,span {
+    fill: ${t.nodeTextColor||t.textColor};
+    color: ${t.nodeTextColor||t.textColor};
+  }
+
+  .node rect,
+  .node circle,
+  .node ellipse,
+  .node polygon,
+  .node path {
+    fill: ${t.mainBkg};
+    stroke: ${t.nodeBorder};
+    stroke-width: 1px;
+  }
+  .rough-node .label text , .node .label text, .image-shape .label, .icon-shape .label {
+    text-anchor: middle;
+  }
+  // .flowchart-label .text-outer-tspan {
+  //   text-anchor: middle;
+  // }
+  // .flowchart-label .text-inner-tspan {
+  //   text-anchor: start;
+  // }
+
+  .node .katex path {
+    fill: #000;
+    stroke: #000;
+    stroke-width: 1px;
+  }
+
+  .rough-node .label,.node .label, .image-shape .label, .icon-shape .label {
+    text-align: center;
+  }
+  .node.clickable {
+    cursor: pointer;
+  }
+
+
+  .root .anchor path {
+    fill: ${t.lineColor} !important;
+    stroke-width: 0;
+    stroke: ${t.lineColor};
+  }
+
+  .arrowheadPath {
+    fill: ${t.arrowheadColor};
+  }
+
+  .edgePath .path {
+    stroke: ${t.lineColor};
+    stroke-width: 2.0px;
+  }
+
+  .flowchart-link {
+    stroke: ${t.lineColor};
+    fill: none;
+  }
+
+  .edgeLabel {
+    background-color: ${t.edgeLabelBackground};
+    p {
+      background-color: ${t.edgeLabelBackground};
+    }
+    rect {
+      opacity: 0.5;
+      background-color: ${t.edgeLabelBackground};
+      fill: ${t.edgeLabelBackground};
+    }
+    text-align: center;
+  }
+
+  /* For html labels only */
+  .labelBkg {
+    background-color: ${gOe(t.edgeLabelBackground,.5)};
+    // background-color:
+  }
+
+  .cluster rect {
+    fill: ${t.clusterBkg};
+    stroke: ${t.clusterBorder};
+    stroke-width: 1px;
+  }
+
+  .cluster text {
+    fill: ${t.titleColor};
+  }
+
+  .cluster span {
+    color: ${t.titleColor};
+  }
+  /* .cluster div {
+    color: ${t.titleColor};
+  } */
+
+  div.mermaidTooltip {
+    position: absolute;
+    text-align: center;
+    max-width: 200px;
+    padding: 2px;
+    font-family: ${t.fontFamily};
+    font-size: 12px;
+    background: ${t.tertiaryColor};
+    border: 1px solid ${t.border2};
+    border-radius: 2px;
+    pointer-events: none;
+    z-index: 100;
+  }
+
+  .flowchartTitleText {
+    text-anchor: middle;
+    font-size: 18px;
+    fill: ${t.textColor};
+  }
+
+  rect.text {
+    fill: none;
+    stroke-width: 0;
+  }
+
+  .icon-shape, .image-shape {
+    background-color: ${t.edgeLabelBackground};
+    p {
+      background-color: ${t.edgeLabelBackground};
+      padding: 2px;
+    }
+    rect {
+      opacity: 0.5;
+      background-color: ${t.edgeLabelBackground};
+      fill: ${t.edgeLabelBackground};
+    }
+    text-align: center;
+  }
+`,"getStyles"),qie=yOe});var ik={};hr(ik,{diagram:()=>vOe});var vOe,ak=N(()=>{"use strict";zt();qZ();Gie();Wie();Yie();vOe={parser:Hie,get db(){return new Uw},renderer:zie,styles:qie,init:o(t=>{t.flowchart||(t.flowchart={}),t.layout&&Yy({layout:t.layout}),t.flowchart.arrowMarkerAbsolute=t.arrowMarkerAbsolute,Yy({flowchart:{arrowMarkerAbsolute:t.arrowMarkerAbsolute}})},"init")}});var wR,Zie,Jie=N(()=>{"use strict";wR=function(){var t=o(function(J,se,ue,Z){for(ue=ue||{},Z=J.length;Z--;ue[J[Z]]=se);return ue},"o"),e=[6,8,10,22,24,26,28,33,34,35,36,37,40,43,44,50],r=[1,10],n=[1,11],i=[1,12],a=[1,13],s=[1,20],l=[1,21],u=[1,22],h=[1,23],f=[1,24],d=[1,19],p=[1,25],m=[1,26],g=[1,18],y=[1,33],v=[1,34],x=[1,35],b=[1,36],w=[1,37],C=[6,8,10,13,15,17,20,21,22,24,26,28,33,34,35,36,37,40,43,44,50,63,64,65,66,67],T=[1,42],E=[1,43],A=[1,52],S=[40,50,68,69],_=[1,63],I=[1,61],D=[1,58],k=[1,62],L=[1,64],R=[6,8,10,13,17,22,24,26,28,33,34,35,36,37,40,41,42,43,44,48,49,50,63,64,65,66,67],O=[63,64,65,66,67],M=[1,81],B=[1,80],F=[1,78],P=[1,79],z=[6,10,42,47],$=[6,10,13,41,42,47,48,49],H=[1,89],Q=[1,88],j=[1,87],ie=[19,56],ne=[1,98],le=[1,97],he=[19,56,58,60],K={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,ER_DIAGRAM:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,entityName:11,relSpec:12,COLON:13,role:14,STYLE_SEPARATOR:15,idList:16,BLOCK_START:17,attributes:18,BLOCK_STOP:19,SQS:20,SQE:21,title:22,title_value:23,acc_title:24,acc_title_value:25,acc_descr:26,acc_descr_value:27,acc_descr_multiline_value:28,direction:29,classDefStatement:30,classStatement:31,styleStatement:32,direction_tb:33,direction_bt:34,direction_rl:35,direction_lr:36,CLASSDEF:37,stylesOpt:38,separator:39,UNICODE_TEXT:40,STYLE_TEXT:41,COMMA:42,CLASS:43,STYLE:44,style:45,styleComponent:46,SEMI:47,NUM:48,BRKT:49,ENTITY_NAME:50,attribute:51,attributeType:52,attributeName:53,attributeKeyTypeList:54,attributeComment:55,ATTRIBUTE_WORD:56,attributeKeyType:57,",":58,ATTRIBUTE_KEY:59,COMMENT:60,cardinality:61,relType:62,ZERO_OR_ONE:63,ZERO_OR_MORE:64,ONE_OR_MORE:65,ONLY_ONE:66,MD_PARENT:67,NON_IDENTIFYING:68,IDENTIFYING:69,WORD:70,$accept:0,$end:1},terminals_:{2:"error",4:"ER_DIAGRAM",6:"EOF",8:"SPACE",10:"NEWLINE",13:"COLON",15:"STYLE_SEPARATOR",17:"BLOCK_START",19:"BLOCK_STOP",20:"SQS",21:"SQE",22:"title",23:"title_value",24:"acc_title",25:"acc_title_value",26:"acc_descr",27:"acc_descr_value",28:"acc_descr_multiline_value",33:"direction_tb",34:"direction_bt",35:"direction_rl",36:"direction_lr",37:"CLASSDEF",40:"UNICODE_TEXT",41:"STYLE_TEXT",42:"COMMA",43:"CLASS",44:"STYLE",47:"SEMI",48:"NUM",49:"BRKT",50:"ENTITY_NAME",56:"ATTRIBUTE_WORD",58:",",59:"ATTRIBUTE_KEY",60:"COMMENT",63:"ZERO_OR_ONE",64:"ZERO_OR_MORE",65:"ONE_OR_MORE",66:"ONLY_ONE",67:"MD_PARENT",68:"NON_IDENTIFYING",69:"IDENTIFYING",70:"WORD"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,5],[9,9],[9,7],[9,7],[9,4],[9,6],[9,3],[9,5],[9,1],[9,3],[9,7],[9,9],[9,6],[9,8],[9,4],[9,6],[9,2],[9,2],[9,2],[9,1],[9,1],[9,1],[9,1],[9,1],[29,1],[29,1],[29,1],[29,1],[30,4],[16,1],[16,1],[16,3],[16,3],[31,3],[32,4],[38,1],[38,3],[45,1],[45,2],[39,1],[39,1],[39,1],[46,1],[46,1],[46,1],[46,1],[11,1],[11,1],[18,1],[18,2],[51,2],[51,3],[51,3],[51,4],[52,1],[53,1],[54,1],[54,3],[57,1],[55,1],[12,3],[61,1],[61,1],[61,1],[61,1],[61,1],[62,1],[62,1],[14,1],[14,1],[14,1]],performAction:o(function(se,ue,Z,Se,ce,ae,Oe){var ge=ae.length-1;switch(ce){case 1:break;case 2:this.$=[];break;case 3:ae[ge-1].push(ae[ge]),this.$=ae[ge-1];break;case 4:case 5:this.$=ae[ge];break;case 6:case 7:this.$=[];break;case 8:Se.addEntity(ae[ge-4]),Se.addEntity(ae[ge-2]),Se.addRelationship(ae[ge-4],ae[ge],ae[ge-2],ae[ge-3]);break;case 9:Se.addEntity(ae[ge-8]),Se.addEntity(ae[ge-4]),Se.addRelationship(ae[ge-8],ae[ge],ae[ge-4],ae[ge-5]),Se.setClass([ae[ge-8]],ae[ge-6]),Se.setClass([ae[ge-4]],ae[ge-2]);break;case 10:Se.addEntity(ae[ge-6]),Se.addEntity(ae[ge-2]),Se.addRelationship(ae[ge-6],ae[ge],ae[ge-2],ae[ge-3]),Se.setClass([ae[ge-6]],ae[ge-4]);break;case 11:Se.addEntity(ae[ge-6]),Se.addEntity(ae[ge-4]),Se.addRelationship(ae[ge-6],ae[ge],ae[ge-4],ae[ge-5]),Se.setClass([ae[ge-4]],ae[ge-2]);break;case 12:Se.addEntity(ae[ge-3]),Se.addAttributes(ae[ge-3],ae[ge-1]);break;case 13:Se.addEntity(ae[ge-5]),Se.addAttributes(ae[ge-5],ae[ge-1]),Se.setClass([ae[ge-5]],ae[ge-3]);break;case 14:Se.addEntity(ae[ge-2]);break;case 15:Se.addEntity(ae[ge-4]),Se.setClass([ae[ge-4]],ae[ge-2]);break;case 16:Se.addEntity(ae[ge]);break;case 17:Se.addEntity(ae[ge-2]),Se.setClass([ae[ge-2]],ae[ge]);break;case 18:Se.addEntity(ae[ge-6],ae[ge-4]),Se.addAttributes(ae[ge-6],ae[ge-1]);break;case 19:Se.addEntity(ae[ge-8],ae[ge-6]),Se.addAttributes(ae[ge-8],ae[ge-1]),Se.setClass([ae[ge-8]],ae[ge-3]);break;case 20:Se.addEntity(ae[ge-5],ae[ge-3]);break;case 21:Se.addEntity(ae[ge-7],ae[ge-5]),Se.setClass([ae[ge-7]],ae[ge-2]);break;case 22:Se.addEntity(ae[ge-3],ae[ge-1]);break;case 23:Se.addEntity(ae[ge-5],ae[ge-3]),Se.setClass([ae[ge-5]],ae[ge]);break;case 24:case 25:this.$=ae[ge].trim(),Se.setAccTitle(this.$);break;case 26:case 27:this.$=ae[ge].trim(),Se.setAccDescription(this.$);break;case 32:Se.setDirection("TB");break;case 33:Se.setDirection("BT");break;case 34:Se.setDirection("RL");break;case 35:Se.setDirection("LR");break;case 36:this.$=ae[ge-3],Se.addClass(ae[ge-2],ae[ge-1]);break;case 37:case 38:case 56:case 64:this.$=[ae[ge]];break;case 39:case 40:this.$=ae[ge-2].concat([ae[ge]]);break;case 41:this.$=ae[ge-2],Se.setClass(ae[ge-1],ae[ge]);break;case 42:this.$=ae[ge-3],Se.addCssStyles(ae[ge-2],ae[ge-1]);break;case 43:this.$=[ae[ge]];break;case 44:ae[ge-2].push(ae[ge]),this.$=ae[ge-2];break;case 46:this.$=ae[ge-1]+ae[ge];break;case 54:case 76:case 77:this.$=ae[ge].replace(/"/g,"");break;case 55:case 78:this.$=ae[ge];break;case 57:ae[ge].push(ae[ge-1]),this.$=ae[ge];break;case 58:this.$={type:ae[ge-1],name:ae[ge]};break;case 59:this.$={type:ae[ge-2],name:ae[ge-1],keys:ae[ge]};break;case 60:this.$={type:ae[ge-2],name:ae[ge-1],comment:ae[ge]};break;case 61:this.$={type:ae[ge-3],name:ae[ge-2],keys:ae[ge-1],comment:ae[ge]};break;case 62:case 63:case 66:this.$=ae[ge];break;case 65:ae[ge-2].push(ae[ge]),this.$=ae[ge-2];break;case 67:this.$=ae[ge].replace(/"/g,"");break;case 68:this.$={cardA:ae[ge],relType:ae[ge-1],cardB:ae[ge-2]};break;case 69:this.$=Se.Cardinality.ZERO_OR_ONE;break;case 70:this.$=Se.Cardinality.ZERO_OR_MORE;break;case 71:this.$=Se.Cardinality.ONE_OR_MORE;break;case 72:this.$=Se.Cardinality.ONLY_ONE;break;case 73:this.$=Se.Cardinality.MD_PARENT;break;case 74:this.$=Se.Identification.NON_IDENTIFYING;break;case 75:this.$=Se.Identification.IDENTIFYING;break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:9,22:r,24:n,26:i,28:a,29:14,30:15,31:16,32:17,33:s,34:l,35:u,36:h,37:f,40:d,43:p,44:m,50:g},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:27,11:9,22:r,24:n,26:i,28:a,29:14,30:15,31:16,32:17,33:s,34:l,35:u,36:h,37:f,40:d,43:p,44:m,50:g},t(e,[2,5]),t(e,[2,6]),t(e,[2,16],{12:28,61:32,15:[1,29],17:[1,30],20:[1,31],63:y,64:v,65:x,66:b,67:w}),{23:[1,38]},{25:[1,39]},{27:[1,40]},t(e,[2,27]),t(e,[2,28]),t(e,[2,29]),t(e,[2,30]),t(e,[2,31]),t(C,[2,54]),t(C,[2,55]),t(e,[2,32]),t(e,[2,33]),t(e,[2,34]),t(e,[2,35]),{16:41,40:T,41:E},{16:44,40:T,41:E},{16:45,40:T,41:E},t(e,[2,4]),{11:46,40:d,50:g},{16:47,40:T,41:E},{18:48,19:[1,49],51:50,52:51,56:A},{11:53,40:d,50:g},{62:54,68:[1,55],69:[1,56]},t(S,[2,69]),t(S,[2,70]),t(S,[2,71]),t(S,[2,72]),t(S,[2,73]),t(e,[2,24]),t(e,[2,25]),t(e,[2,26]),{13:_,38:57,41:I,42:D,45:59,46:60,48:k,49:L},t(R,[2,37]),t(R,[2,38]),{16:65,40:T,41:E,42:D},{13:_,38:66,41:I,42:D,45:59,46:60,48:k,49:L},{13:[1,67],15:[1,68]},t(e,[2,17],{61:32,12:69,17:[1,70],42:D,63:y,64:v,65:x,66:b,67:w}),{19:[1,71]},t(e,[2,14]),{18:72,19:[2,56],51:50,52:51,56:A},{53:73,56:[1,74]},{56:[2,62]},{21:[1,75]},{61:76,63:y,64:v,65:x,66:b,67:w},t(O,[2,74]),t(O,[2,75]),{6:M,10:B,39:77,42:F,47:P},{40:[1,82],41:[1,83]},t(z,[2,43],{46:84,13:_,41:I,48:k,49:L}),t($,[2,45]),t($,[2,50]),t($,[2,51]),t($,[2,52]),t($,[2,53]),t(e,[2,41],{42:D}),{6:M,10:B,39:85,42:F,47:P},{14:86,40:H,50:Q,70:j},{16:90,40:T,41:E},{11:91,40:d,50:g},{18:92,19:[1,93],51:50,52:51,56:A},t(e,[2,12]),{19:[2,57]},t(ie,[2,58],{54:94,55:95,57:96,59:ne,60:le}),t([19,56,59,60],[2,63]),t(e,[2,22],{15:[1,100],17:[1,99]}),t([40,50],[2,68]),t(e,[2,36]),{13:_,41:I,45:101,46:60,48:k,49:L},t(e,[2,47]),t(e,[2,48]),t(e,[2,49]),t(R,[2,39]),t(R,[2,40]),t($,[2,46]),t(e,[2,42]),t(e,[2,8]),t(e,[2,76]),t(e,[2,77]),t(e,[2,78]),{13:[1,102],42:D},{13:[1,104],15:[1,103]},{19:[1,105]},t(e,[2,15]),t(ie,[2,59],{55:106,58:[1,107],60:le}),t(ie,[2,60]),t(he,[2,64]),t(ie,[2,67]),t(he,[2,66]),{18:108,19:[1,109],51:50,52:51,56:A},{16:110,40:T,41:E},t(z,[2,44],{46:84,13:_,41:I,48:k,49:L}),{14:111,40:H,50:Q,70:j},{16:112,40:T,41:E},{14:113,40:H,50:Q,70:j},t(e,[2,13]),t(ie,[2,61]),{57:114,59:ne},{19:[1,115]},t(e,[2,20]),t(e,[2,23],{17:[1,116],42:D}),t(e,[2,11]),{13:[1,117],42:D},t(e,[2,10]),t(he,[2,65]),t(e,[2,18]),{18:118,19:[1,119],51:50,52:51,56:A},{14:120,40:H,50:Q,70:j},{19:[1,121]},t(e,[2,21]),t(e,[2,9]),t(e,[2,19])],defaultActions:{52:[2,62],72:[2,57]},parseError:o(function(se,ue){if(ue.recoverable)this.trace(se);else{var Z=new Error(se);throw Z.hash=ue,Z}},"parseError"),parse:o(function(se){var ue=this,Z=[0],Se=[],ce=[null],ae=[],Oe=this.table,ge="",ze=0,He=0,$e=0,Re=2,Ie=1,be=ae.slice.call(arguments,1),W=Object.create(this.lexer),de={yy:{}};for(var re in this.yy)Object.prototype.hasOwnProperty.call(this.yy,re)&&(de.yy[re]=this.yy[re]);W.setInput(se,de.yy),de.yy.lexer=W,de.yy.parser=this,typeof W.yylloc>"u"&&(W.yylloc={});var oe=W.yylloc;ae.push(oe);var V=W.options&&W.options.ranges;typeof de.yy.parseError=="function"?this.parseError=de.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function xe(ct){Z.length=Z.length-2*ct,ce.length=ce.length-ct,ae.length=ae.length-ct}o(xe,"popStack");function q(){var ct;return ct=Se.pop()||W.lex()||Ie,typeof ct!="number"&&(ct instanceof Array&&(Se=ct,ct=Se.pop()),ct=ue.symbols_[ct]||ct),ct}o(q,"lex");for(var pe,ve,Pe,_e,we,Ve,De={},qe,at,Rt,st;;){if(Pe=Z[Z.length-1],this.defaultActions[Pe]?_e=this.defaultActions[Pe]:((pe===null||typeof pe>"u")&&(pe=q()),_e=Oe[Pe]&&Oe[Pe][pe]),typeof _e>"u"||!_e.length||!_e[0]){var Ue="";st=[];for(qe in Oe[Pe])this.terminals_[qe]&&qe>Re&&st.push("'"+this.terminals_[qe]+"'");W.showPosition?Ue="Parse error on line "+(ze+1)+`:
+`+W.showPosition()+`
+Expecting `+st.join(", ")+", got '"+(this.terminals_[pe]||pe)+"'":Ue="Parse error on line "+(ze+1)+": Unexpected "+(pe==Ie?"end of input":"'"+(this.terminals_[pe]||pe)+"'"),this.parseError(Ue,{text:W.match,token:this.terminals_[pe]||pe,line:W.yylineno,loc:oe,expected:st})}if(_e[0]instanceof Array&&_e.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Pe+", token: "+pe);switch(_e[0]){case 1:Z.push(pe),ce.push(W.yytext),ae.push(W.yylloc),Z.push(_e[1]),pe=null,ve?(pe=ve,ve=null):(He=W.yyleng,ge=W.yytext,ze=W.yylineno,oe=W.yylloc,$e>0&&$e--);break;case 2:if(at=this.productions_[_e[1]][1],De.$=ce[ce.length-at],De._$={first_line:ae[ae.length-(at||1)].first_line,last_line:ae[ae.length-1].last_line,first_column:ae[ae.length-(at||1)].first_column,last_column:ae[ae.length-1].last_column},V&&(De._$.range=[ae[ae.length-(at||1)].range[0],ae[ae.length-1].range[1]]),Ve=this.performAction.apply(De,[ge,He,ze,de.yy,_e[1],ce,ae].concat(be)),typeof Ve<"u")return Ve;at&&(Z=Z.slice(0,-1*at*2),ce=ce.slice(0,-1*at),ae=ae.slice(0,-1*at)),Z.push(this.productions_[_e[1]][0]),ce.push(De.$),ae.push(De._$),Rt=Oe[Z[Z.length-2]][Z[Z.length-1]],Z.push(Rt);break;case 3:return!0}}return!0},"parse")},X=function(){var J={EOF:1,parseError:o(function(ue,Z){if(this.yy.parser)this.yy.parser.parseError(ue,Z);else throw new Error(ue)},"parseError"),setInput:o(function(se,ue){return this.yy=ue||this.yy||{},this._input=se,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var se=this._input[0];this.yytext+=se,this.yyleng++,this.offset++,this.match+=se,this.matched+=se;var ue=se.match(/(?:\r\n?|\n).*/g);return ue?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),se},"input"),unput:o(function(se){var ue=se.length,Z=se.split(/(?:\r\n?|\n)/g);this._input=se+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-ue),this.offset-=ue;var Se=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),Z.length-1&&(this.yylineno-=Z.length-1);var ce=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:Z?(Z.length===Se.length?this.yylloc.first_column:0)+Se[Se.length-Z.length].length-Z[0].length:this.yylloc.first_column-ue},this.options.ranges&&(this.yylloc.range=[ce[0],ce[0]+this.yyleng-ue]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
+`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(se){this.unput(this.match.slice(se))},"less"),pastInput:o(function(){var se=this.matched.substr(0,this.matched.length-this.match.length);return(se.length>20?"...":"")+se.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var se=this.match;return se.length<20&&(se+=this._input.substr(0,20-se.length)),(se.substr(0,20)+(se.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var se=this.pastInput(),ue=new Array(se.length+1).join("-");return se+this.upcomingInput()+`
+`+ue+"^"},"showPosition"),test_match:o(function(se,ue){var Z,Se,ce;if(this.options.backtrack_lexer&&(ce={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(ce.yylloc.range=this.yylloc.range.slice(0))),Se=se[0].match(/(?:\r\n?|\n).*/g),Se&&(this.yylineno+=Se.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:Se?Se[Se.length-1].length-Se[Se.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+se[0].length},this.yytext+=se[0],this.match+=se[0],this.matches=se,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(se[0].length),this.matched+=se[0],Z=this.performAction.call(this,this.yy,this,ue,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),Z)return Z;if(this._backtrack){for(var ae in ce)this[ae]=ce[ae];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var se,ue,Z,Se;this._more||(this.yytext="",this.match="");for(var ce=this._currentRules(),ae=0;ae<ce.length;ae++)if(Z=this._input.match(this.rules[ce[ae]]),Z&&(!ue||Z[0].length>ue[0].length)){if(ue=Z,Se=ae,this.options.backtrack_lexer){if(se=this.test_match(Z,ce[ae]),se!==!1)return se;if(this._backtrack){ue=!1;continue}else return!1}else if(!this.options.flex)break}return ue?(se=this.test_match(ue,ce[Se]),se!==!1?se:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text.
+`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var ue=this.next();return ue||this.lex()},"lex"),begin:o(function(ue){this.conditionStack.push(ue)},"begin"),popState:o(function(){var ue=this.conditionStack.length-1;return ue>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(ue){return ue=this.conditionStack.length-1-Math.abs(ue||0),ue>=0?this.conditionStack[ue]:"INITIAL"},"topState"),pushState:o(function(ue){this.begin(ue)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(ue,Z,Se,ce){var ae=ce;switch(Se){case 0:return this.begin("acc_title"),24;break;case 1:return this.popState(),"acc_title_value";break;case 2:return this.begin("acc_descr"),26;break;case 3:return this.popState(),"acc_descr_value";break;case 4:this.begin("acc_descr_multiline");break;case 5:this.popState();break;case 6:return"acc_descr_multiline_value";case 7:return 33;case 8:return 34;case 9:return 35;case 10:return 36;case 11:return 10;case 12:break;case 13:return 8;case 14:return 50;case 15:return 70;case 16:return 4;case 17:return this.begin("block"),17;break;case 18:return 49;case 19:return 49;case 20:return 42;case 21:return 15;case 22:return 13;case 23:break;case 24:return 59;case 25:return 56;case 26:return 56;case 27:return 60;case 28:break;case 29:return this.popState(),19;break;case 30:return Z.yytext[0];case 31:return 20;case 32:return 21;case 33:return this.begin("style"),44;break;case 34:return this.popState(),10;break;case 35:break;case 36:return 13;case 37:return 42;case 38:return 49;case 39:return this.begin("style"),37;break;case 40:return 43;case 41:return 63;case 42:return 65;case 43:return 65;case 44:return 65;case 45:return 63;case 46:return 63;case 47:return 64;case 48:return 64;case 49:return 64;case 50:return 64;case 51:return 64;case 52:return 65;case 53:return 64;case 54:return 65;case 55:return 66;case 56:return 66;case 57:return 66;case 58:return 66;case 59:return 63;case 60:return 64;case 61:return 65;case 62:return 67;case 63:return 68;case 64:return 69;case 65:return 69;case 66:return 68;case 67:return 68;case 68:return 68;case 69:return 41;case 70:return 47;case 71:return 40;case 72:return 48;case 73:return Z.yytext[0];case 74:return 6}},"anonymous"),rules:[/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:[\s]+)/i,/^(?:"[^"%\r\n\v\b\\]+")/i,/^(?:"[^"]*")/i,/^(?:erDiagram\b)/i,/^(?:\{)/i,/^(?:#)/i,/^(?:#)/i,/^(?:,)/i,/^(?::::)/i,/^(?::)/i,/^(?:\s+)/i,/^(?:\b((?:PK)|(?:FK)|(?:UK))\b)/i,/^(?:([^\s]*)[~].*[~]([^\s]*))/i,/^(?:([\*A-Za-z_\u00C0-\uFFFF][A-Za-z0-9\-\_\[\]\(\)\u00C0-\uFFFF\*]*))/i,/^(?:"[^"]*")/i,/^(?:[\n]+)/i,/^(?:\})/i,/^(?:.)/i,/^(?:\[)/i,/^(?:\])/i,/^(?:style\b)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?::)/i,/^(?:,)/i,/^(?:#)/i,/^(?:classDef\b)/i,/^(?:class\b)/i,/^(?:one or zero\b)/i,/^(?:one or more\b)/i,/^(?:one or many\b)/i,/^(?:1\+)/i,/^(?:\|o\b)/i,/^(?:zero or one\b)/i,/^(?:zero or more\b)/i,/^(?:zero or many\b)/i,/^(?:0\+)/i,/^(?:\}o\b)/i,/^(?:many\(0\))/i,/^(?:many\(1\))/i,/^(?:many\b)/i,/^(?:\}\|)/i,/^(?:one\b)/i,/^(?:only one\b)/i,/^(?:1\b)/i,/^(?:\|\|)/i,/^(?:o\|)/i,/^(?:o\{)/i,/^(?:\|\{)/i,/^(?:\s*u\b)/i,/^(?:\.\.)/i,/^(?:--)/i,/^(?:to\b)/i,/^(?:optionally to\b)/i,/^(?:\.-)/i,/^(?:-\.)/i,/^(?:([^\x00-\x7F]|\w|-|\*)+)/i,/^(?:;)/i,/^(?:([^\x00-\x7F]|\w|-|\*)+)/i,/^(?:[0-9])/i,/^(?:.)/i,/^(?:$)/i],conditions:{style:{rules:[34,35,36,37,38,69,70],inclusive:!1},acc_descr_multiline:{rules:[5,6],inclusive:!1},acc_descr:{rules:[3],inclusive:!1},acc_title:{rules:[1],inclusive:!1},block:{rules:[23,24,25,26,27,28,29,30],inclusive:!1},INITIAL:{rules:[0,2,4,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,31,32,33,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,71,72,73,74],inclusive:!0}}};return J}();K.lexer=X;function te(){this.yy={}}return o(te,"Parser"),te.prototype=K,K.Parser=te,new te}();wR.parser=wR;Zie=wR});var sk,eae=N(()=>{"use strict";vt();zt();mi();ir();sk=class{constructor(){this.entities=new Map;this.relationships=[];this.classes=new Map;this.direction="TB";this.Cardinality={ZERO_OR_ONE:"ZERO_OR_ONE",ZERO_OR_MORE:"ZERO_OR_MORE",ONE_OR_MORE:"ONE_OR_MORE",ONLY_ONE:"ONLY_ONE",MD_PARENT:"MD_PARENT"};this.Identification={NON_IDENTIFYING:"NON_IDENTIFYING",IDENTIFYING:"IDENTIFYING"};this.setAccTitle=Lr;this.getAccTitle=Rr;this.setAccDescription=Nr;this.getAccDescription=Mr;this.setDiagramTitle=$r;this.getDiagramTitle=Ir;this.getConfig=o(()=>me().er,"getConfig");this.clear(),this.addEntity=this.addEntity.bind(this),this.addAttributes=this.addAttributes.bind(this),this.addRelationship=this.addRelationship.bind(this),this.setDirection=this.setDirection.bind(this),this.addCssStyles=this.addCssStyles.bind(this),this.addClass=this.addClass.bind(this),this.setClass=this.setClass.bind(this),this.setAccTitle=this.setAccTitle.bind(this),this.setAccDescription=this.setAccDescription.bind(this)}static{o(this,"ErDB")}addEntity(e,r=""){return this.entities.has(e)?!this.entities.get(e)?.alias&&r&&(this.entities.get(e).alias=r,Y.info(`Add alias '${r}' to entity '${e}'`)):(this.entities.set(e,{id:`entity-${e}-${this.entities.size}`,label:e,attributes:[],alias:r,shape:"erBox",look:me().look??"default",cssClasses:"default",cssStyles:[]}),Y.info("Added new entity :",e)),this.entities.get(e)}getEntity(e){return this.entities.get(e)}getEntities(){return this.entities}getClasses(){return this.classes}addAttributes(e,r){let n=this.addEntity(e),i;for(i=r.length-1;i>=0;i--)r[i].keys||(r[i].keys=[]),r[i].comment||(r[i].comment=""),n.attributes.push(r[i]),Y.debug("Added attribute ",r[i].name)}addRelationship(e,r,n,i){let a=this.entities.get(e),s=this.entities.get(n);if(!a||!s)return;let l={entityA:a.id,roleA:r,entityB:s.id,relSpec:i};this.relationships.push(l),Y.debug("Added new relationship :",l)}getRelationships(){return this.relationships}getDirection(){return this.direction}setDirection(e){this.direction=e}getCompiledStyles(e){let r=[];for(let n of e){let i=this.classes.get(n);i?.styles&&(r=[...r,...i.styles??[]].map(a=>a.trim())),i?.textStyles&&(r=[...r,...i.textStyles??[]].map(a=>a.trim()))}return r}addCssStyles(e,r){for(let n of e){let i=this.entities.get(n);if(!r||!i)return;for(let a of r)i.cssStyles.push(a)}}addClass(e,r){e.forEach(n=>{let i=this.classes.get(n);i===void 0&&(i={id:n,styles:[],textStyles:[]},this.classes.set(n,i)),r&&r.forEach(function(a){if(/color/.exec(a)){let s=a.replace("fill","bgFill");i.textStyles.push(s)}i.styles.push(a)})})}setClass(e,r){for(let n of e){let i=this.entities.get(n);if(i)for(let a of r)i.cssClasses+=" "+a}}clear(){this.entities=new Map,this.classes=new Map,this.relationships=[],Ar()}getData(){let e=[],r=[],n=me();for(let a of this.entities.keys()){let s=this.entities.get(a);s&&(s.cssCompiledStyles=this.getCompiledStyles(s.cssClasses.split(" ")),e.push(s))}let i=0;for(let a of this.relationships){let s={id:$h(a.entityA,a.entityB,{prefix:"id",counter:i++}),type:"normal",curve:"basis",start:a.entityA,end:a.entityB,label:a.roleA,labelpos:"c",thickness:"normal",classes:"relationshipLine",arrowTypeStart:a.relSpec.cardB.toLowerCase(),arrowTypeEnd:a.relSpec.cardA.toLowerCase(),pattern:a.relSpec.relType=="IDENTIFYING"?"solid":"dashed",look:n.look};r.push(s)}return{nodes:e,edges:r,other:{},config:n,direction:"TB"}}}});var TR={};hr(TR,{draw:()=>SOe});var SOe,tae=N(()=>{"use strict";zt();vt();gm();Yd();$m();ir();dr();SOe=o(async function(t,e,r,n){Y.info("REF0:"),Y.info("Drawing er diagram (unified)",e);let{securityLevel:i,er:a,layout:s}=me(),l=n.db.getData(),u=yc(e,i);l.type=n.type,l.layoutAlgorithm=nf(s),l.config.flowchart.nodeSpacing=a?.nodeSpacing||140,l.config.flowchart.rankSpacing=a?.rankSpacing||80,l.direction=n.db.getDirection(),l.markers=["only_one","zero_or_one","one_or_more","zero_or_more"],l.diagramId=e,await Cc(l,u),l.layoutAlgorithm==="elk"&&u.select(".edges").lower();let h=u.selectAll('[id*="-background"]');Array.from(h).length>0&&h.each(function(){let d=Ge(this),m=d.attr("id").replace("-background",""),g=u.select(`#${CSS.escape(m)}`);if(!g.empty()){let y=g.attr("transform");d.attr("transform",y)}});let f=8;Gt.insertTitle(u,"erDiagramTitleText",a?.titleTopMargin??25,n.db.getDiagramTitle()),Ac(u,f,"erDiagram",a?.useMaxWidth??!0)},"draw")});var COe,AOe,rae,nae=N(()=>{"use strict";Ys();COe=o((t,e)=>{let r=Kf,n=r(t,"r"),i=r(t,"g"),a=r(t,"b");return qa(n,i,a,e)},"fade"),AOe=o(t=>`
+  .entityBox {
+    fill: ${t.mainBkg};
+    stroke: ${t.nodeBorder};
+  }
+
+  .relationshipLabelBox {
+    fill: ${t.tertiaryColor};
+    opacity: 0.7;
+    background-color: ${t.tertiaryColor};
+      rect {
+        opacity: 0.5;
+      }
+  }
+
+  .labelBkg {
+    background-color: ${COe(t.tertiaryColor,.5)};
+  }
+
+  .edgeLabel .label {
+    fill: ${t.nodeBorder};
+    font-size: 14px;
+  }
+
+  .label {
+    font-family: ${t.fontFamily};
+    color: ${t.nodeTextColor||t.textColor};
+  }
+
+  .edge-pattern-dashed {
+    stroke-dasharray: 8,8;
+  }
+
+  .node rect,
+  .node circle,
+  .node ellipse,
+  .node polygon
+  {
+    fill: ${t.mainBkg};
+    stroke: ${t.nodeBorder};
+    stroke-width: 1px;
+  }
+
+  .relationshipLine {
+    stroke: ${t.lineColor};
+    stroke-width: 1;
+    fill: none;
+  }
+
+  .marker {
+    fill: none !important;
+    stroke: ${t.lineColor} !important;
+    stroke-width: 1;
+  }
+`,"getStyles"),rae=AOe});var iae={};hr(iae,{diagram:()=>_Oe});var _Oe,aae=N(()=>{"use strict";Jie();eae();tae();nae();_Oe={parser:Zie,get db(){return new sk},renderer:TR,styles:rae}});function ii(t){return typeof t=="object"&&t!==null&&typeof t.$type=="string"}function va(t){return typeof t=="object"&&t!==null&&typeof t.$refText=="string"}function kR(t){return typeof t=="object"&&t!==null&&typeof t.name=="string"&&typeof t.type=="string"&&typeof t.path=="string"}function jd(t){return typeof t=="object"&&t!==null&&ii(t.container)&&va(t.reference)&&typeof t.message=="string"}function Ll(t){return typeof t=="object"&&t!==null&&Array.isArray(t.content)}function af(t){return typeof t=="object"&&t!==null&&typeof t.tokenType=="object"}function M2(t){return Ll(t)&&typeof t.fullText=="string"}var Xd,Rl=N(()=>{"use strict";o(ii,"isAstNode");o(va,"isReference");o(kR,"isAstNodeDescription");o(jd,"isLinkingError");Xd=class{static{o(this,"AbstractAstReflection")}constructor(){this.subtypes={},this.allSubtypes={}}isInstance(e,r){return ii(e)&&this.isSubtype(e.$type,r)}isSubtype(e,r){if(e===r)return!0;let n=this.subtypes[e];n||(n=this.subtypes[e]={});let i=n[r];if(i!==void 0)return i;{let a=this.computeIsSubtype(e,r);return n[r]=a,a}}getAllSubTypes(e){let r=this.allSubtypes[e];if(r)return r;{let n=this.getAllTypes(),i=[];for(let a of n)this.isSubtype(a,e)&&i.push(a);return this.allSubtypes[e]=i,i}}};o(Ll,"isCompositeCstNode");o(af,"isLeafCstNode");o(M2,"isRootCstNode")});function NOe(t){return typeof t=="string"?t:typeof t>"u"?"undefined":typeof t.toString=="function"?t.toString():Object.prototype.toString.call(t)}function ok(t){return!!t&&typeof t[Symbol.iterator]=="function"}function en(...t){if(t.length===1){let e=t[0];if(e instanceof ao)return e;if(ok(e))return new ao(()=>e[Symbol.iterator](),r=>r.next());if(typeof e.length=="number")return new ao(()=>({index:0}),r=>r.index<e.length?{done:!1,value:e[r.index++]}:Ia)}return t.length>1?new ao(()=>({collIndex:0,arrIndex:0}),e=>{do{if(e.iterator){let r=e.iterator.next();if(!r.done)return r;e.iterator=void 0}if(e.array){if(e.arrIndex<e.array.length)return{done:!1,value:e.array[e.arrIndex++]};e.array=void 0,e.arrIndex=0}if(e.collIndex<t.length){let r=t[e.collIndex++];ok(r)?e.iterator=r[Symbol.iterator]():r&&typeof r.length=="number"&&(e.array=r)}}while(e.iterator||e.array||e.collIndex<t.length);return Ia}):I2}var ao,I2,Ia,_c,zm,Ps=N(()=>{"use strict";ao=class t{static{o(this,"StreamImpl")}constructor(e,r){this.startFn=e,this.nextFn=r}iterator(){let e={state:this.startFn(),next:o(()=>this.nextFn(e.state),"next"),[Symbol.iterator]:()=>e};return e}[Symbol.iterator](){return this.iterator()}isEmpty(){return!!this.iterator().next().done}count(){let e=this.iterator(),r=0,n=e.next();for(;!n.done;)r++,n=e.next();return r}toArray(){let e=[],r=this.iterator(),n;do n=r.next(),n.value!==void 0&&e.push(n.value);while(!n.done);return e}toSet(){return new Set(this)}toMap(e,r){let n=this.map(i=>[e?e(i):i,r?r(i):i]);return new Map(n)}toString(){return this.join()}concat(e){return new t(()=>({first:this.startFn(),firstDone:!1,iterator:e[Symbol.iterator]()}),r=>{let n;if(!r.firstDone){do if(n=this.nextFn(r.first),!n.done)return n;while(!n.done);r.firstDone=!0}do if(n=r.iterator.next(),!n.done)return n;while(!n.done);return Ia})}join(e=","){let r=this.iterator(),n="",i,a=!1;do i=r.next(),i.done||(a&&(n+=e),n+=NOe(i.value)),a=!0;while(!i.done);return n}indexOf(e,r=0){let n=this.iterator(),i=0,a=n.next();for(;!a.done;){if(i>=r&&a.value===e)return i;a=n.next(),i++}return-1}every(e){let r=this.iterator(),n=r.next();for(;!n.done;){if(!e(n.value))return!1;n=r.next()}return!0}some(e){let r=this.iterator(),n=r.next();for(;!n.done;){if(e(n.value))return!0;n=r.next()}return!1}forEach(e){let r=this.iterator(),n=0,i=r.next();for(;!i.done;)e(i.value,n),i=r.next(),n++}map(e){return new t(this.startFn,r=>{let{done:n,value:i}=this.nextFn(r);return n?Ia:{done:!1,value:e(i)}})}filter(e){return new t(this.startFn,r=>{let n;do if(n=this.nextFn(r),!n.done&&e(n.value))return n;while(!n.done);return Ia})}nonNullable(){return this.filter(e=>e!=null)}reduce(e,r){let n=this.iterator(),i=r,a=n.next();for(;!a.done;)i===void 0?i=a.value:i=e(i,a.value),a=n.next();return i}reduceRight(e,r){return this.recursiveReduce(this.iterator(),e,r)}recursiveReduce(e,r,n){let i=e.next();if(i.done)return n;let a=this.recursiveReduce(e,r,n);return a===void 0?i.value:r(a,i.value)}find(e){let r=this.iterator(),n=r.next();for(;!n.done;){if(e(n.value))return n.value;n=r.next()}}findIndex(e){let r=this.iterator(),n=0,i=r.next();for(;!i.done;){if(e(i.value))return n;i=r.next(),n++}return-1}includes(e){let r=this.iterator(),n=r.next();for(;!n.done;){if(n.value===e)return!0;n=r.next()}return!1}flatMap(e){return new t(()=>({this:this.startFn()}),r=>{do{if(r.iterator){let a=r.iterator.next();if(a.done)r.iterator=void 0;else return a}let{done:n,value:i}=this.nextFn(r.this);if(!n){let a=e(i);if(ok(a))r.iterator=a[Symbol.iterator]();else return{done:!1,value:a}}}while(r.iterator);return Ia})}flat(e){if(e===void 0&&(e=1),e<=0)return this;let r=e>1?this.flat(e-1):this;return new t(()=>({this:r.startFn()}),n=>{do{if(n.iterator){let s=n.iterator.next();if(s.done)n.iterator=void 0;else return s}let{done:i,value:a}=r.nextFn(n.this);if(!i)if(ok(a))n.iterator=a[Symbol.iterator]();else return{done:!1,value:a}}while(n.iterator);return Ia})}head(){let r=this.iterator().next();if(!r.done)return r.value}tail(e=1){return new t(()=>{let r=this.startFn();for(let n=0;n<e;n++)if(this.nextFn(r).done)return r;return r},this.nextFn)}limit(e){return new t(()=>({size:0,state:this.startFn()}),r=>(r.size++,r.size>e?Ia:this.nextFn(r.state)))}distinct(e){return new t(()=>({set:new Set,internalState:this.startFn()}),r=>{let n;do if(n=this.nextFn(r.internalState),!n.done){let i=e?e(n.value):n.value;if(!r.set.has(i))return r.set.add(i),n}while(!n.done);return Ia})}exclude(e,r){let n=new Set;for(let i of e){let a=r?r(i):i;n.add(a)}return this.filter(i=>{let a=r?r(i):i;return!n.has(a)})}};o(NOe,"toString");o(ok,"isIterable");I2=new ao(()=>{},()=>Ia),Ia=Object.freeze({done:!0,value:void 0});o(en,"stream");_c=class extends ao{static{o(this,"TreeStreamImpl")}constructor(e,r,n){super(()=>({iterators:n?.includeRoot?[[e][Symbol.iterator]()]:[r(e)[Symbol.iterator]()],pruned:!1}),i=>{for(i.pruned&&(i.iterators.pop(),i.pruned=!1);i.iterators.length>0;){let s=i.iterators[i.iterators.length-1].next();if(s.done)i.iterators.pop();else return i.iterators.push(r(s.value)[Symbol.iterator]()),s}return Ia})}iterator(){let e={state:this.startFn(),next:o(()=>this.nextFn(e.state),"next"),prune:o(()=>{e.state.pruned=!0},"prune"),[Symbol.iterator]:()=>e};return e}};(function(t){function e(a){return a.reduce((s,l)=>s+l,0)}o(e,"sum"),t.sum=e;function r(a){return a.reduce((s,l)=>s*l,0)}o(r,"product"),t.product=r;function n(a){return a.reduce((s,l)=>Math.min(s,l))}o(n,"min"),t.min=n;function i(a){return a.reduce((s,l)=>Math.max(s,l))}o(i,"max"),t.max=i})(zm||(zm={}))});var ck={};hr(ck,{DefaultNameRegexp:()=>lk,RangeComparison:()=>Dc,compareRange:()=>cae,findCommentNode:()=>AR,findDeclarationNodeAtOffset:()=>IOe,findLeafNodeAtOffset:()=>_R,findLeafNodeBeforeOffset:()=>uae,flattenCst:()=>MOe,getInteriorNodes:()=>BOe,getNextNode:()=>OOe,getPreviousNode:()=>fae,getStartlineNode:()=>POe,inRange:()=>CR,isChildNode:()=>SR,isCommentNode:()=>ER,streamCst:()=>Kd,toDocumentSegment:()=>Qd,tokenToRange:()=>Gm});function Kd(t){return new _c(t,e=>Ll(e)?e.content:[],{includeRoot:!0})}function MOe(t){return Kd(t).filter(af)}function SR(t,e){for(;t.container;)if(t=t.container,t===e)return!0;return!1}function Gm(t){return{start:{character:t.startColumn-1,line:t.startLine-1},end:{character:t.endColumn,line:t.endLine-1}}}function Qd(t){if(!t)return;let{offset:e,end:r,range:n}=t;return{range:n,offset:e,end:r,length:r-e}}function cae(t,e){if(t.end.line<e.start.line||t.end.line===e.start.line&&t.end.character<=e.start.character)return Dc.Before;if(t.start.line>e.end.line||t.start.line===e.end.line&&t.start.character>=e.end.character)return Dc.After;let r=t.start.line>e.start.line||t.start.line===e.start.line&&t.start.character>=e.start.character,n=t.end.line<e.end.line||t.end.line===e.end.line&&t.end.character<=e.end.character;return r&&n?Dc.Inside:r?Dc.OverlapBack:n?Dc.OverlapFront:Dc.Outside}function CR(t,e){return cae(t,e)>Dc.After}function IOe(t,e,r=lk){if(t){if(e>0){let n=e-t.offset,i=t.text.charAt(n);r.test(i)||e--}return _R(t,e)}}function AR(t,e){if(t){let r=fae(t,!0);if(r&&ER(r,e))return r;if(M2(t)){let n=t.content.findIndex(i=>!i.hidden);for(let i=n-1;i>=0;i--){let a=t.content[i];if(ER(a,e))return a}}}}function ER(t,e){return af(t)&&e.includes(t.tokenType.name)}function _R(t,e){if(af(t))return t;if(Ll(t)){let r=hae(t,e,!1);if(r)return _R(r,e)}}function uae(t,e){if(af(t))return t;if(Ll(t)){let r=hae(t,e,!0);if(r)return uae(r,e)}}function hae(t,e,r){let n=0,i=t.content.length-1,a;for(;n<=i;){let s=Math.floor((n+i)/2),l=t.content[s];if(l.offset<=e&&l.end>e)return l;l.end<=e?(a=r?l:void 0,n=s+1):i=s-1}return a}function fae(t,e=!0){for(;t.container;){let r=t.container,n=r.content.indexOf(t);for(;n>0;){n--;let i=r.content[n];if(e||!i.hidden)return i}t=r}}function OOe(t,e=!0){for(;t.container;){let r=t.container,n=r.content.indexOf(t),i=r.content.length-1;for(;n<i;){n++;let a=r.content[n];if(e||!a.hidden)return a}t=r}}function POe(t){if(t.range.start.character===0)return t;let e=t.range.start.line,r=t,n;for(;t.container;){let i=t.container,a=n??i.content.indexOf(t);if(a===0?(t=i,n=void 0):(n=a-1,t=i.content[n]),t.range.start.line!==e)break;r=t}return r}function BOe(t,e){let r=FOe(t,e);return r?r.parent.content.slice(r.a+1,r.b):[]}function FOe(t,e){let r=lae(t),n=lae(e),i;for(let a=0;a<r.length&&a<n.length;a++){let s=r[a],l=n[a];if(s.parent===l.parent)i={parent:s.parent,a:s.index,b:l.index};else break}return i}function lae(t){let e=[];for(;t.container;){let r=t.container,n=r.content.indexOf(t);e.push({parent:r,index:n}),t=r}return e.reverse()}var Dc,lk,Nl=N(()=>{"use strict";Rl();Ps();o(Kd,"streamCst");o(MOe,"flattenCst");o(SR,"isChildNode");o(Gm,"tokenToRange");o(Qd,"toDocumentSegment");(function(t){t[t.Before=0]="Before",t[t.After=1]="After",t[t.OverlapFront=2]="OverlapFront",t[t.OverlapBack=3]="OverlapBack",t[t.Inside=4]="Inside",t[t.Outside=5]="Outside"})(Dc||(Dc={}));o(cae,"compareRange");o(CR,"inRange");lk=/^[\w\p{L}]$/u;o(IOe,"findDeclarationNodeAtOffset");o(AR,"findCommentNode");o(ER,"isCommentNode");o(_R,"findLeafNodeAtOffset");o(uae,"findLeafNodeBeforeOffset");o(hae,"binarySearch");o(fae,"getPreviousNode");o(OOe,"getNextNode");o(POe,"getStartlineNode");o(BOe,"getInteriorNodes");o(FOe,"getCommonParent");o(lae,"getParentChain")});function Lc(t){throw new Error("Error! The input value was not handled.")}var Zd,uk=N(()=>{"use strict";Zd=class extends Error{static{o(this,"ErrorWithLocation")}constructor(e,r){super(e?`${r} at ${e.range.start.line}:${e.range.start.character}`:r)}};o(Lc,"assertUnreachable")});var U2={};hr(U2,{AbstractElement:()=>Hm,AbstractRule:()=>Vm,AbstractType:()=>Um,Action:()=>cg,Alternatives:()=>ug,ArrayLiteral:()=>Wm,ArrayType:()=>qm,Assignment:()=>hg,BooleanLiteral:()=>Ym,CharacterRange:()=>fg,Condition:()=>O2,Conjunction:()=>Xm,CrossReference:()=>dg,Disjunction:()=>jm,EndOfFile:()=>pg,Grammar:()=>Km,GrammarImport:()=>B2,Group:()=>mg,InferredType:()=>Qm,Interface:()=>Zm,Keyword:()=>gg,LangiumGrammarAstReflection:()=>Cg,LangiumGrammarTerminals:()=>$Oe,NamedArgument:()=>F2,NegatedToken:()=>yg,Negation:()=>Jm,NumberLiteral:()=>eg,Parameter:()=>tg,ParameterReference:()=>rg,ParserRule:()=>ng,ReferenceType:()=>ig,RegexToken:()=>vg,ReturnType:()=>$2,RuleCall:()=>xg,SimpleType:()=>ag,StringLiteral:()=>sg,TerminalAlternatives:()=>bg,TerminalGroup:()=>wg,TerminalRule:()=>Jd,TerminalRuleCall:()=>Tg,Type:()=>og,TypeAttribute:()=>z2,TypeDefinition:()=>hk,UnionType:()=>lg,UnorderedGroup:()=>kg,UntilToken:()=>Eg,ValueLiteral:()=>P2,Wildcard:()=>Sg,isAbstractElement:()=>G2,isAbstractRule:()=>zOe,isAbstractType:()=>GOe,isAction:()=>Mu,isAlternatives:()=>mk,isArrayLiteral:()=>qOe,isArrayType:()=>DR,isAssignment:()=>Ml,isBooleanLiteral:()=>LR,isCharacterRange:()=>FR,isCondition:()=>VOe,isConjunction:()=>RR,isCrossReference:()=>ep,isDisjunction:()=>NR,isEndOfFile:()=>$R,isFeatureName:()=>UOe,isGrammar:()=>YOe,isGrammarImport:()=>XOe,isGroup:()=>sf,isInferredType:()=>fk,isInterface:()=>dk,isKeyword:()=>Ho,isNamedArgument:()=>jOe,isNegatedToken:()=>zR,isNegation:()=>MR,isNumberLiteral:()=>KOe,isParameter:()=>QOe,isParameterReference:()=>IR,isParserRule:()=>Oa,isPrimitiveType:()=>dae,isReferenceType:()=>OR,isRegexToken:()=>GR,isReturnType:()=>PR,isRuleCall:()=>Il,isSimpleType:()=>pk,isStringLiteral:()=>ZOe,isTerminalAlternatives:()=>VR,isTerminalGroup:()=>UR,isTerminalRule:()=>so,isTerminalRuleCall:()=>gk,isType:()=>V2,isTypeAttribute:()=>JOe,isTypeDefinition:()=>HOe,isUnionType:()=>BR,isUnorderedGroup:()=>yk,isUntilToken:()=>HR,isValueLiteral:()=>WOe,isWildcard:()=>WR,reflection:()=>lr});function zOe(t){return lr.isInstance(t,Vm)}function GOe(t){return lr.isInstance(t,Um)}function VOe(t){return lr.isInstance(t,O2)}function UOe(t){return dae(t)||t==="current"||t==="entry"||t==="extends"||t==="false"||t==="fragment"||t==="grammar"||t==="hidden"||t==="import"||t==="interface"||t==="returns"||t==="terminal"||t==="true"||t==="type"||t==="infer"||t==="infers"||t==="with"||typeof t=="string"&&/\^?[_a-zA-Z][\w_]*/.test(t)}function dae(t){return t==="string"||t==="number"||t==="boolean"||t==="Date"||t==="bigint"}function HOe(t){return lr.isInstance(t,hk)}function WOe(t){return lr.isInstance(t,P2)}function G2(t){return lr.isInstance(t,Hm)}function qOe(t){return lr.isInstance(t,Wm)}function DR(t){return lr.isInstance(t,qm)}function LR(t){return lr.isInstance(t,Ym)}function RR(t){return lr.isInstance(t,Xm)}function NR(t){return lr.isInstance(t,jm)}function YOe(t){return lr.isInstance(t,Km)}function XOe(t){return lr.isInstance(t,B2)}function fk(t){return lr.isInstance(t,Qm)}function dk(t){return lr.isInstance(t,Zm)}function jOe(t){return lr.isInstance(t,F2)}function MR(t){return lr.isInstance(t,Jm)}function KOe(t){return lr.isInstance(t,eg)}function QOe(t){return lr.isInstance(t,tg)}function IR(t){return lr.isInstance(t,rg)}function Oa(t){return lr.isInstance(t,ng)}function OR(t){return lr.isInstance(t,ig)}function PR(t){return lr.isInstance(t,$2)}function pk(t){return lr.isInstance(t,ag)}function ZOe(t){return lr.isInstance(t,sg)}function so(t){return lr.isInstance(t,Jd)}function V2(t){return lr.isInstance(t,og)}function JOe(t){return lr.isInstance(t,z2)}function BR(t){return lr.isInstance(t,lg)}function Mu(t){return lr.isInstance(t,cg)}function mk(t){return lr.isInstance(t,ug)}function Ml(t){return lr.isInstance(t,hg)}function FR(t){return lr.isInstance(t,fg)}function ep(t){return lr.isInstance(t,dg)}function $R(t){return lr.isInstance(t,pg)}function sf(t){return lr.isInstance(t,mg)}function Ho(t){return lr.isInstance(t,gg)}function zR(t){return lr.isInstance(t,yg)}function GR(t){return lr.isInstance(t,vg)}function Il(t){return lr.isInstance(t,xg)}function VR(t){return lr.isInstance(t,bg)}function UR(t){return lr.isInstance(t,wg)}function gk(t){return lr.isInstance(t,Tg)}function yk(t){return lr.isInstance(t,kg)}function HR(t){return lr.isInstance(t,Eg)}function WR(t){return lr.isInstance(t,Sg)}var $Oe,Vm,Um,O2,hk,P2,Hm,Wm,qm,Ym,Xm,jm,Km,B2,Qm,Zm,F2,Jm,eg,tg,rg,ng,ig,$2,ag,sg,Jd,og,z2,lg,cg,ug,hg,fg,dg,pg,mg,gg,yg,vg,xg,bg,wg,Tg,kg,Eg,Sg,Cg,lr,Rc=N(()=>{"use strict";Rl();$Oe={ID:/\^?[_a-zA-Z][\w_]*/,STRING:/"(\\.|[^"\\])*"|'(\\.|[^'\\])*'/,NUMBER:/NaN|-?((\d*\.\d+|\d+)([Ee][+-]?\d+)?|Infinity)/,RegexLiteral:/\/(?![*+?])(?:[^\r\n\[/\\]|\\.|\[(?:[^\r\n\]\\]|\\.)*\])+\/[a-z]*/,WS:/\s+/,ML_COMMENT:/\/\*[\s\S]*?\*\//,SL_COMMENT:/\/\/[^\n\r]*/},Vm="AbstractRule";o(zOe,"isAbstractRule");Um="AbstractType";o(GOe,"isAbstractType");O2="Condition";o(VOe,"isCondition");o(UOe,"isFeatureName");o(dae,"isPrimitiveType");hk="TypeDefinition";o(HOe,"isTypeDefinition");P2="ValueLiteral";o(WOe,"isValueLiteral");Hm="AbstractElement";o(G2,"isAbstractElement");Wm="ArrayLiteral";o(qOe,"isArrayLiteral");qm="ArrayType";o(DR,"isArrayType");Ym="BooleanLiteral";o(LR,"isBooleanLiteral");Xm="Conjunction";o(RR,"isConjunction");jm="Disjunction";o(NR,"isDisjunction");Km="Grammar";o(YOe,"isGrammar");B2="GrammarImport";o(XOe,"isGrammarImport");Qm="InferredType";o(fk,"isInferredType");Zm="Interface";o(dk,"isInterface");F2="NamedArgument";o(jOe,"isNamedArgument");Jm="Negation";o(MR,"isNegation");eg="NumberLiteral";o(KOe,"isNumberLiteral");tg="Parameter";o(QOe,"isParameter");rg="ParameterReference";o(IR,"isParameterReference");ng="ParserRule";o(Oa,"isParserRule");ig="ReferenceType";o(OR,"isReferenceType");$2="ReturnType";o(PR,"isReturnType");ag="SimpleType";o(pk,"isSimpleType");sg="StringLiteral";o(ZOe,"isStringLiteral");Jd="TerminalRule";o(so,"isTerminalRule");og="Type";o(V2,"isType");z2="TypeAttribute";o(JOe,"isTypeAttribute");lg="UnionType";o(BR,"isUnionType");cg="Action";o(Mu,"isAction");ug="Alternatives";o(mk,"isAlternatives");hg="Assignment";o(Ml,"isAssignment");fg="CharacterRange";o(FR,"isCharacterRange");dg="CrossReference";o(ep,"isCrossReference");pg="EndOfFile";o($R,"isEndOfFile");mg="Group";o(sf,"isGroup");gg="Keyword";o(Ho,"isKeyword");yg="NegatedToken";o(zR,"isNegatedToken");vg="RegexToken";o(GR,"isRegexToken");xg="RuleCall";o(Il,"isRuleCall");bg="TerminalAlternatives";o(VR,"isTerminalAlternatives");wg="TerminalGroup";o(UR,"isTerminalGroup");Tg="TerminalRuleCall";o(gk,"isTerminalRuleCall");kg="UnorderedGroup";o(yk,"isUnorderedGroup");Eg="UntilToken";o(HR,"isUntilToken");Sg="Wildcard";o(WR,"isWildcard");Cg=class extends Xd{static{o(this,"LangiumGrammarAstReflection")}getAllTypes(){return[Hm,Vm,Um,cg,ug,Wm,qm,hg,Ym,fg,O2,Xm,dg,jm,pg,Km,B2,mg,Qm,Zm,gg,F2,yg,Jm,eg,tg,rg,ng,ig,vg,$2,xg,ag,sg,bg,wg,Jd,Tg,og,z2,hk,lg,kg,Eg,P2,Sg]}computeIsSubtype(e,r){switch(e){case cg:case ug:case hg:case fg:case dg:case pg:case mg:case gg:case yg:case vg:case xg:case bg:case wg:case Tg:case kg:case Eg:case Sg:return this.isSubtype(Hm,r);case Wm:case eg:case sg:return this.isSubtype(P2,r);case qm:case ig:case ag:case lg:return this.isSubtype(hk,r);case Ym:return this.isSubtype(O2,r)||this.isSubtype(P2,r);case Xm:case jm:case Jm:case rg:return this.isSubtype(O2,r);case Qm:case Zm:case og:return this.isSubtype(Um,r);case ng:return this.isSubtype(Vm,r)||this.isSubtype(Um,r);case Jd:return this.isSubtype(Vm,r);default:return!1}}getReferenceType(e){let r=`${e.container.$type}:${e.property}`;switch(r){case"Action:type":case"CrossReference:type":case"Interface:superTypes":case"ParserRule:returnType":case"SimpleType:typeRef":return Um;case"Grammar:hiddenTokens":case"ParserRule:hiddenTokens":case"RuleCall:rule":return Vm;case"Grammar:usedGrammars":return Km;case"NamedArgument:parameter":case"ParameterReference:parameter":return tg;case"TerminalRuleCall:rule":return Jd;default:throw new Error(`${r} is not a valid reference id.`)}}getTypeMetaData(e){switch(e){case Hm:return{name:Hm,properties:[{name:"cardinality"},{name:"lookahead"}]};case Wm:return{name:Wm,properties:[{name:"elements",defaultValue:[]}]};case qm:return{name:qm,properties:[{name:"elementType"}]};case Ym:return{name:Ym,properties:[{name:"true",defaultValue:!1}]};case Xm:return{name:Xm,properties:[{name:"left"},{name:"right"}]};case jm:return{name:jm,properties:[{name:"left"},{name:"right"}]};case Km:return{name:Km,properties:[{name:"definesHiddenTokens",defaultValue:!1},{name:"hiddenTokens",defaultValue:[]},{name:"imports",defaultValue:[]},{name:"interfaces",defaultValue:[]},{name:"isDeclared",defaultValue:!1},{name:"name"},{name:"rules",defaultValue:[]},{name:"types",defaultValue:[]},{name:"usedGrammars",defaultValue:[]}]};case B2:return{name:B2,properties:[{name:"path"}]};case Qm:return{name:Qm,properties:[{name:"name"}]};case Zm:return{name:Zm,properties:[{name:"attributes",defaultValue:[]},{name:"name"},{name:"superTypes",defaultValue:[]}]};case F2:return{name:F2,properties:[{name:"calledByName",defaultValue:!1},{name:"parameter"},{name:"value"}]};case Jm:return{name:Jm,properties:[{name:"value"}]};case eg:return{name:eg,properties:[{name:"value"}]};case tg:return{name:tg,properties:[{name:"name"}]};case rg:return{name:rg,properties:[{name:"parameter"}]};case ng:return{name:ng,properties:[{name:"dataType"},{name:"definesHiddenTokens",defaultValue:!1},{name:"definition"},{name:"entry",defaultValue:!1},{name:"fragment",defaultValue:!1},{name:"hiddenTokens",defaultValue:[]},{name:"inferredType"},{name:"name"},{name:"parameters",defaultValue:[]},{name:"returnType"},{name:"wildcard",defaultValue:!1}]};case ig:return{name:ig,properties:[{name:"referenceType"}]};case $2:return{name:$2,properties:[{name:"name"}]};case ag:return{name:ag,properties:[{name:"primitiveType"},{name:"stringType"},{name:"typeRef"}]};case sg:return{name:sg,properties:[{name:"value"}]};case Jd:return{name:Jd,properties:[{name:"definition"},{name:"fragment",defaultValue:!1},{name:"hidden",defaultValue:!1},{name:"name"},{name:"type"}]};case og:return{name:og,properties:[{name:"name"},{name:"type"}]};case z2:return{name:z2,properties:[{name:"defaultValue"},{name:"isOptional",defaultValue:!1},{name:"name"},{name:"type"}]};case lg:return{name:lg,properties:[{name:"types",defaultValue:[]}]};case cg:return{name:cg,properties:[{name:"cardinality"},{name:"feature"},{name:"inferredType"},{name:"lookahead"},{name:"operator"},{name:"type"}]};case ug:return{name:ug,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case hg:return{name:hg,properties:[{name:"cardinality"},{name:"feature"},{name:"lookahead"},{name:"operator"},{name:"terminal"}]};case fg:return{name:fg,properties:[{name:"cardinality"},{name:"left"},{name:"lookahead"},{name:"right"}]};case dg:return{name:dg,properties:[{name:"cardinality"},{name:"deprecatedSyntax",defaultValue:!1},{name:"lookahead"},{name:"terminal"},{name:"type"}]};case pg:return{name:pg,properties:[{name:"cardinality"},{name:"lookahead"}]};case mg:return{name:mg,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"guardCondition"},{name:"lookahead"}]};case gg:return{name:gg,properties:[{name:"cardinality"},{name:"lookahead"},{name:"value"}]};case yg:return{name:yg,properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case vg:return{name:vg,properties:[{name:"cardinality"},{name:"lookahead"},{name:"regex"}]};case xg:return{name:xg,properties:[{name:"arguments",defaultValue:[]},{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case bg:return{name:bg,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case wg:return{name:wg,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case Tg:return{name:Tg,properties:[{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case kg:return{name:kg,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case Eg:return{name:Eg,properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case Sg:return{name:Sg,properties:[{name:"cardinality"},{name:"lookahead"}]};default:return{name:e,properties:[]}}}},lr=new Cg});var xk={};hr(xk,{assignMandatoryProperties:()=>XR,copyAstNode:()=>YR,findLocalReferences:()=>tPe,findRootNode:()=>H2,getContainerOfType:()=>tp,getDocument:()=>Pa,hasContainerOfType:()=>ePe,linkContentToContainer:()=>vk,streamAllContents:()=>Nc,streamAst:()=>Wo,streamContents:()=>W2,streamReferences:()=>Ag});function vk(t){for(let[e,r]of Object.entries(t))e.startsWith("$")||(Array.isArray(r)?r.forEach((n,i)=>{ii(n)&&(n.$container=t,n.$containerProperty=e,n.$containerIndex=i)}):ii(r)&&(r.$container=t,r.$containerProperty=e))}function tp(t,e){let r=t;for(;r;){if(e(r))return r;r=r.$container}}function ePe(t,e){let r=t;for(;r;){if(e(r))return!0;r=r.$container}return!1}function Pa(t){let r=H2(t).$document;if(!r)throw new Error("AST node has no document.");return r}function H2(t){for(;t.$container;)t=t.$container;return t}function W2(t,e){if(!t)throw new Error("Node must be an AstNode.");let r=e?.range;return new ao(()=>({keys:Object.keys(t),keyIndex:0,arrayIndex:0}),n=>{for(;n.keyIndex<n.keys.length;){let i=n.keys[n.keyIndex];if(!i.startsWith("$")){let a=t[i];if(ii(a)){if(n.keyIndex++,qR(a,r))return{done:!1,value:a}}else if(Array.isArray(a)){for(;n.arrayIndex<a.length;){let s=n.arrayIndex++,l=a[s];if(ii(l)&&qR(l,r))return{done:!1,value:l}}n.arrayIndex=0}}n.keyIndex++}return Ia})}function Nc(t,e){if(!t)throw new Error("Root node must be an AstNode.");return new _c(t,r=>W2(r,e))}function Wo(t,e){if(t){if(e?.range&&!qR(t,e.range))return new _c(t,()=>[])}else throw new Error("Root node must be an AstNode.");return new _c(t,r=>W2(r,e),{includeRoot:!0})}function qR(t,e){var r;if(!e)return!0;let n=(r=t.$cstNode)===null||r===void 0?void 0:r.range;return n?CR(n,e):!1}function Ag(t){return new ao(()=>({keys:Object.keys(t),keyIndex:0,arrayIndex:0}),e=>{for(;e.keyIndex<e.keys.length;){let r=e.keys[e.keyIndex];if(!r.startsWith("$")){let n=t[r];if(va(n))return e.keyIndex++,{done:!1,value:{reference:n,container:t,property:r}};if(Array.isArray(n)){for(;e.arrayIndex<n.length;){let i=e.arrayIndex++,a=n[i];if(va(a))return{done:!1,value:{reference:a,container:t,property:r,index:i}}}e.arrayIndex=0}}e.keyIndex++}return Ia})}function tPe(t,e=Pa(t).parseResult.value){let r=[];return Wo(e).forEach(n=>{Ag(n).forEach(i=>{i.reference.ref===t&&r.push(i.reference)})}),en(r)}function XR(t,e){let r=t.getTypeMetaData(e.$type),n=e;for(let i of r.properties)i.defaultValue!==void 0&&n[i.name]===void 0&&(n[i.name]=pae(i.defaultValue))}function pae(t){return Array.isArray(t)?[...t.map(pae)]:t}function YR(t,e){let r={$type:t.$type};for(let[n,i]of Object.entries(t))if(!n.startsWith("$"))if(ii(i))r[n]=YR(i,e);else if(va(i))r[n]=e(r,n,i.$refNode,i.$refText);else if(Array.isArray(i)){let a=[];for(let s of i)ii(s)?a.push(YR(s,e)):va(s)?a.push(e(r,n,s.$refNode,s.$refText)):a.push(s);r[n]=a}else r[n]=i;return vk(r),r}var is=N(()=>{"use strict";Rl();Ps();Nl();o(vk,"linkContentToContainer");o(tp,"getContainerOfType");o(ePe,"hasContainerOfType");o(Pa,"getDocument");o(H2,"findRootNode");o(W2,"streamContents");o(Nc,"streamAllContents");o(Wo,"streamAst");o(qR,"isAstNodeInRange");o(Ag,"streamReferences");o(tPe,"findLocalReferences");o(XR,"assignMandatoryProperties");o(pae,"copyDefaultValue");o(YR,"copyAstNode")});function ar(t){return t.charCodeAt(0)}function bk(t,e){Array.isArray(t)?t.forEach(function(r){e.push(r)}):e.push(t)}function _g(t,e){if(t[e]===!0)throw"duplicate flag "+e;let r=t[e];t[e]=!0}function rp(t){if(t===void 0)throw Error("Internal Error - Should never get here!");return!0}function q2(){throw Error("Internal Error - Should never get here!")}function jR(t){return t.type==="Character"}var KR=N(()=>{"use strict";o(ar,"cc");o(bk,"insertToSet");o(_g,"addFlag");o(rp,"ASSERT_EXISTS");o(q2,"ASSERT_NEVER_REACH_HERE");o(jR,"isCharacter")});var Y2,X2,QR,mae=N(()=>{"use strict";KR();Y2=[];for(let t=ar("0");t<=ar("9");t++)Y2.push(t);X2=[ar("_")].concat(Y2);for(let t=ar("a");t<=ar("z");t++)X2.push(t);for(let t=ar("A");t<=ar("Z");t++)X2.push(t);QR=[ar(" "),ar("\f"),ar(`
+`),ar("\r"),ar("	"),ar("\v"),ar("	"),ar("\xA0"),ar("\u1680"),ar("\u2000"),ar("\u2001"),ar("\u2002"),ar("\u2003"),ar("\u2004"),ar("\u2005"),ar("\u2006"),ar("\u2007"),ar("\u2008"),ar("\u2009"),ar("\u200A"),ar("\u2028"),ar("\u2029"),ar("\u202F"),ar("\u205F"),ar("\u3000"),ar("\uFEFF")]});var rPe,wk,nPe,np,gae=N(()=>{"use strict";KR();mae();rPe=/[0-9a-fA-F]/,wk=/[0-9]/,nPe=/[1-9]/,np=class{static{o(this,"RegExpParser")}constructor(){this.idx=0,this.input="",this.groupIdx=0}saveState(){return{idx:this.idx,input:this.input,groupIdx:this.groupIdx}}restoreState(e){this.idx=e.idx,this.input=e.input,this.groupIdx=e.groupIdx}pattern(e){this.idx=0,this.input=e,this.groupIdx=0,this.consumeChar("/");let r=this.disjunction();this.consumeChar("/");let n={type:"Flags",loc:{begin:this.idx,end:e.length},global:!1,ignoreCase:!1,multiLine:!1,unicode:!1,sticky:!1};for(;this.isRegExpFlag();)switch(this.popChar()){case"g":_g(n,"global");break;case"i":_g(n,"ignoreCase");break;case"m":_g(n,"multiLine");break;case"u":_g(n,"unicode");break;case"y":_g(n,"sticky");break}if(this.idx!==this.input.length)throw Error("Redundant input: "+this.input.substring(this.idx));return{type:"Pattern",flags:n,value:r,loc:this.loc(0)}}disjunction(){let e=[],r=this.idx;for(e.push(this.alternative());this.peekChar()==="|";)this.consumeChar("|"),e.push(this.alternative());return{type:"Disjunction",value:e,loc:this.loc(r)}}alternative(){let e=[],r=this.idx;for(;this.isTerm();)e.push(this.term());return{type:"Alternative",value:e,loc:this.loc(r)}}term(){return this.isAssertion()?this.assertion():this.atom()}assertion(){let e=this.idx;switch(this.popChar()){case"^":return{type:"StartAnchor",loc:this.loc(e)};case"$":return{type:"EndAnchor",loc:this.loc(e)};case"\\":switch(this.popChar()){case"b":return{type:"WordBoundary",loc:this.loc(e)};case"B":return{type:"NonWordBoundary",loc:this.loc(e)}}throw Error("Invalid Assertion Escape");case"(":this.consumeChar("?");let r;switch(this.popChar()){case"=":r="Lookahead";break;case"!":r="NegativeLookahead";break}rp(r);let n=this.disjunction();return this.consumeChar(")"),{type:r,value:n,loc:this.loc(e)}}return q2()}quantifier(e=!1){let r,n=this.idx;switch(this.popChar()){case"*":r={atLeast:0,atMost:1/0};break;case"+":r={atLeast:1,atMost:1/0};break;case"?":r={atLeast:0,atMost:1};break;case"{":let i=this.integerIncludingZero();switch(this.popChar()){case"}":r={atLeast:i,atMost:i};break;case",":let a;this.isDigit()?(a=this.integerIncludingZero(),r={atLeast:i,atMost:a}):r={atLeast:i,atMost:1/0},this.consumeChar("}");break}if(e===!0&&r===void 0)return;rp(r);break}if(!(e===!0&&r===void 0)&&rp(r))return this.peekChar(0)==="?"?(this.consumeChar("?"),r.greedy=!1):r.greedy=!0,r.type="Quantifier",r.loc=this.loc(n),r}atom(){let e,r=this.idx;switch(this.peekChar()){case".":e=this.dotAll();break;case"\\":e=this.atomEscape();break;case"[":e=this.characterClass();break;case"(":e=this.group();break}return e===void 0&&this.isPatternCharacter()&&(e=this.patternCharacter()),rp(e)?(e.loc=this.loc(r),this.isQuantifier()&&(e.quantifier=this.quantifier()),e):q2()}dotAll(){return this.consumeChar("."),{type:"Set",complement:!0,value:[ar(`
+`),ar("\r"),ar("\u2028"),ar("\u2029")]}}atomEscape(){switch(this.consumeChar("\\"),this.peekChar()){case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":return this.decimalEscapeAtom();case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}}decimalEscapeAtom(){return{type:"GroupBackReference",value:this.positiveInteger()}}characterClassEscape(){let e,r=!1;switch(this.popChar()){case"d":e=Y2;break;case"D":e=Y2,r=!0;break;case"s":e=QR;break;case"S":e=QR,r=!0;break;case"w":e=X2;break;case"W":e=X2,r=!0;break}return rp(e)?{type:"Set",value:e,complement:r}:q2()}controlEscapeAtom(){let e;switch(this.popChar()){case"f":e=ar("\f");break;case"n":e=ar(`
+`);break;case"r":e=ar("\r");break;case"t":e=ar("	");break;case"v":e=ar("\v");break}return rp(e)?{type:"Character",value:e}:q2()}controlLetterEscapeAtom(){this.consumeChar("c");let e=this.popChar();if(/[a-zA-Z]/.test(e)===!1)throw Error("Invalid ");return{type:"Character",value:e.toUpperCase().charCodeAt(0)-64}}nulCharacterAtom(){return this.consumeChar("0"),{type:"Character",value:ar("\0")}}hexEscapeSequenceAtom(){return this.consumeChar("x"),this.parseHexDigits(2)}regExpUnicodeEscapeSequenceAtom(){return this.consumeChar("u"),this.parseHexDigits(4)}identityEscapeAtom(){let e=this.popChar();return{type:"Character",value:ar(e)}}classPatternCharacterAtom(){switch(this.peekChar()){case`
+`:case"\r":case"\u2028":case"\u2029":case"\\":case"]":throw Error("TBD");default:let e=this.popChar();return{type:"Character",value:ar(e)}}}characterClass(){let e=[],r=!1;for(this.consumeChar("["),this.peekChar(0)==="^"&&(this.consumeChar("^"),r=!0);this.isClassAtom();){let n=this.classAtom(),i=n.type==="Character";if(jR(n)&&this.isRangeDash()){this.consumeChar("-");let a=this.classAtom(),s=a.type==="Character";if(jR(a)){if(a.value<n.value)throw Error("Range out of order in character class");e.push({from:n.value,to:a.value})}else bk(n.value,e),e.push(ar("-")),bk(a.value,e)}else bk(n.value,e)}return this.consumeChar("]"),{type:"Set",complement:r,value:e}}classAtom(){switch(this.peekChar()){case"]":case`
+`:case"\r":case"\u2028":case"\u2029":throw Error("TBD");case"\\":return this.classEscape();default:return this.classPatternCharacterAtom()}}classEscape(){switch(this.consumeChar("\\"),this.peekChar()){case"b":return this.consumeChar("b"),{type:"Character",value:ar("\b")};case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}}group(){let e=!0;switch(this.consumeChar("("),this.peekChar(0)){case"?":this.consumeChar("?"),this.consumeChar(":"),e=!1;break;default:this.groupIdx++;break}let r=this.disjunction();this.consumeChar(")");let n={type:"Group",capturing:e,value:r};return e&&(n.idx=this.groupIdx),n}positiveInteger(){let e=this.popChar();if(nPe.test(e)===!1)throw Error("Expecting a positive integer");for(;wk.test(this.peekChar(0));)e+=this.popChar();return parseInt(e,10)}integerIncludingZero(){let e=this.popChar();if(wk.test(e)===!1)throw Error("Expecting an integer");for(;wk.test(this.peekChar(0));)e+=this.popChar();return parseInt(e,10)}patternCharacter(){let e=this.popChar();switch(e){case`
+`:case"\r":case"\u2028":case"\u2029":case"^":case"$":case"\\":case".":case"*":case"+":case"?":case"(":case")":case"[":case"|":throw Error("TBD");default:return{type:"Character",value:ar(e)}}}isRegExpFlag(){switch(this.peekChar(0)){case"g":case"i":case"m":case"u":case"y":return!0;default:return!1}}isRangeDash(){return this.peekChar()==="-"&&this.isClassAtom(1)}isDigit(){return wk.test(this.peekChar(0))}isClassAtom(e=0){switch(this.peekChar(e)){case"]":case`
+`:case"\r":case"\u2028":case"\u2029":return!1;default:return!0}}isTerm(){return this.isAtom()||this.isAssertion()}isAtom(){if(this.isPatternCharacter())return!0;switch(this.peekChar(0)){case".":case"\\":case"[":case"(":return!0;default:return!1}}isAssertion(){switch(this.peekChar(0)){case"^":case"$":return!0;case"\\":switch(this.peekChar(1)){case"b":case"B":return!0;default:return!1}case"(":return this.peekChar(1)==="?"&&(this.peekChar(2)==="="||this.peekChar(2)==="!");default:return!1}}isQuantifier(){let e=this.saveState();try{return this.quantifier(!0)!==void 0}catch{return!1}finally{this.restoreState(e)}}isPatternCharacter(){switch(this.peekChar()){case"^":case"$":case"\\":case".":case"*":case"+":case"?":case"(":case")":case"[":case"|":case"/":case`
+`:case"\r":case"\u2028":case"\u2029":return!1;default:return!0}}parseHexDigits(e){let r="";for(let i=0;i<e;i++){let a=this.popChar();if(rPe.test(a)===!1)throw Error("Expecting a HexDecimal digits");r+=a}return{type:"Character",value:parseInt(r,16)}}peekChar(e=0){return this.input[this.idx+e]}popChar(){let e=this.peekChar(0);return this.consumeChar(void 0),e}consumeChar(e){if(e!==void 0&&this.input[this.idx]!==e)throw Error("Expected: '"+e+"' but found: '"+this.input[this.idx]+"' at offset: "+this.idx);if(this.idx>=this.input.length)throw Error("Unexpected end of input");this.idx++}loc(e){return{begin:e,end:this.idx}}}});var Mc,yae=N(()=>{"use strict";Mc=class{static{o(this,"BaseRegExpVisitor")}visitChildren(e){for(let r in e){let n=e[r];e.hasOwnProperty(r)&&(n.type!==void 0?this.visit(n):Array.isArray(n)&&n.forEach(i=>{this.visit(i)},this))}}visit(e){switch(e.type){case"Pattern":this.visitPattern(e);break;case"Flags":this.visitFlags(e);break;case"Disjunction":this.visitDisjunction(e);break;case"Alternative":this.visitAlternative(e);break;case"StartAnchor":this.visitStartAnchor(e);break;case"EndAnchor":this.visitEndAnchor(e);break;case"WordBoundary":this.visitWordBoundary(e);break;case"NonWordBoundary":this.visitNonWordBoundary(e);break;case"Lookahead":this.visitLookahead(e);break;case"NegativeLookahead":this.visitNegativeLookahead(e);break;case"Character":this.visitCharacter(e);break;case"Set":this.visitSet(e);break;case"Group":this.visitGroup(e);break;case"GroupBackReference":this.visitGroupBackReference(e);break;case"Quantifier":this.visitQuantifier(e);break}this.visitChildren(e)}visitPattern(e){}visitFlags(e){}visitDisjunction(e){}visitAlternative(e){}visitStartAnchor(e){}visitEndAnchor(e){}visitWordBoundary(e){}visitNonWordBoundary(e){}visitLookahead(e){}visitNegativeLookahead(e){}visitCharacter(e){}visitSet(e){}visitGroup(e){}visitGroupBackReference(e){}visitQuantifier(e){}}});var j2=N(()=>{"use strict";gae();yae()});var Tk={};hr(Tk,{NEWLINE_REGEXP:()=>JR,escapeRegExp:()=>ap,getCaseInsensitivePattern:()=>tN,getTerminalParts:()=>iPe,isMultilineComment:()=>eN,isWhitespace:()=>Dg,partialMatches:()=>rN,partialRegExp:()=>bae,whitespaceCharacters:()=>xae});function iPe(t){try{typeof t!="string"&&(t=t.source),t=`/${t}/`;let e=vae.pattern(t),r=[];for(let n of e.value.value)ip.reset(t),ip.visit(n),r.push({start:ip.startRegexp,end:ip.endRegex});return r}catch{return[]}}function eN(t){try{return typeof t=="string"&&(t=new RegExp(t)),t=t.toString(),ip.reset(t),ip.visit(vae.pattern(t)),ip.multiline}catch{return!1}}function Dg(t){let e=typeof t=="string"?new RegExp(t):t;return xae.some(r=>e.test(r))}function ap(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function tN(t){return Array.prototype.map.call(t,e=>/\w/.test(e)?`[${e.toLowerCase()}${e.toUpperCase()}]`:ap(e)).join("")}function rN(t,e){let r=bae(t),n=e.match(r);return!!n&&n[0].length>0}function bae(t){typeof t=="string"&&(t=new RegExp(t));let e=t,r=t.source,n=0;function i(){let a="",s;function l(h){a+=r.substr(n,h),n+=h}o(l,"appendRaw");function u(h){a+="(?:"+r.substr(n,h)+"|$)",n+=h}for(o(u,"appendOptional");n<r.length;)switch(r[n]){case"\\":switch(r[n+1]){case"c":u(3);break;case"x":u(4);break;case"u":e.unicode?r[n+2]==="{"?u(r.indexOf("}",n)-n+1):u(6):u(2);break;case"p":case"P":e.unicode?u(r.indexOf("}",n)-n+1):u(2);break;case"k":u(r.indexOf(">",n)-n+1);break;default:u(2);break}break;case"[":s=/\[(?:\\.|.)*?\]/g,s.lastIndex=n,s=s.exec(r)||[],u(s[0].length);break;case"|":case"^":case"$":case"*":case"+":case"?":l(1);break;case"{":s=/\{\d+,?\d*\}/g,s.lastIndex=n,s=s.exec(r),s?l(s[0].length):u(1);break;case"(":if(r[n+1]==="?")switch(r[n+2]){case":":a+="(?:",n+=3,a+=i()+"|$)";break;case"=":a+="(?=",n+=3,a+=i()+")";break;case"!":s=n,n+=3,i(),a+=r.substr(s,n-s);break;case"<":switch(r[n+3]){case"=":case"!":s=n,n+=4,i(),a+=r.substr(s,n-s);break;default:l(r.indexOf(">",n)-n+1),a+=i()+"|$)";break}break}else l(1),a+=i()+"|$)";break;case")":return++n,a;default:u(1);break}return a}return o(i,"process"),new RegExp(i(),t.flags)}var JR,vae,ZR,ip,xae,Lg=N(()=>{"use strict";j2();JR=/\r?\n/gm,vae=new np,ZR=class extends Mc{static{o(this,"TerminalRegExpVisitor")}constructor(){super(...arguments),this.isStarting=!0,this.endRegexpStack=[],this.multiline=!1}get endRegex(){return this.endRegexpStack.join("")}reset(e){this.multiline=!1,this.regex=e,this.startRegexp="",this.isStarting=!0,this.endRegexpStack=[]}visitGroup(e){e.quantifier&&(this.isStarting=!1,this.endRegexpStack=[])}visitCharacter(e){let r=String.fromCharCode(e.value);if(!this.multiline&&r===`
+`&&(this.multiline=!0),e.quantifier)this.isStarting=!1,this.endRegexpStack=[];else{let n=ap(r);this.endRegexpStack.push(n),this.isStarting&&(this.startRegexp+=n)}}visitSet(e){if(!this.multiline){let r=this.regex.substring(e.loc.begin,e.loc.end),n=new RegExp(r);this.multiline=!!`
+`.match(n)}if(e.quantifier)this.isStarting=!1,this.endRegexpStack=[];else{let r=this.regex.substring(e.loc.begin,e.loc.end);this.endRegexpStack.push(r),this.isStarting&&(this.startRegexp+=r)}}visitChildren(e){e.type==="Group"&&e.quantifier||super.visitChildren(e)}},ip=new ZR;o(iPe,"getTerminalParts");o(eN,"isMultilineComment");xae=`\f
+\r	\v \xA0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF`.split("");o(Dg,"isWhitespace");o(ap,"escapeRegExp");o(tN,"getCaseInsensitivePattern");o(rN,"partialMatches");o(bae,"partialRegExp")});var Ek={};hr(Ek,{findAssignment:()=>hN,findNameAssignment:()=>kk,findNodeForKeyword:()=>cN,findNodeForProperty:()=>Q2,findNodesForKeyword:()=>aPe,findNodesForKeywordInternal:()=>uN,findNodesForProperty:()=>oN,getActionAtElement:()=>Sae,getActionType:()=>Aae,getAllReachableRules:()=>K2,getCrossReferenceTerminal:()=>aN,getEntryRule:()=>wae,getExplicitRuleType:()=>Rg,getHiddenRules:()=>Tae,getRuleType:()=>fN,getRuleTypeName:()=>uPe,getTypeName:()=>J2,isArrayCardinality:()=>oPe,isArrayOperator:()=>lPe,isCommentTerminal:()=>sN,isDataType:()=>cPe,isDataTypeRule:()=>Z2,isOptionalCardinality:()=>sPe,terminalRegex:()=>Ng});function wae(t){return t.rules.find(e=>Oa(e)&&e.entry)}function Tae(t){return t.rules.filter(e=>so(e)&&e.hidden)}function K2(t,e){let r=new Set,n=wae(t);if(!n)return new Set(t.rules);let i=[n].concat(Tae(t));for(let s of i)kae(s,r,e);let a=new Set;for(let s of t.rules)(r.has(s.name)||so(s)&&s.hidden)&&a.add(s);return a}function kae(t,e,r){e.add(t.name),Nc(t).forEach(n=>{if(Il(n)||r&&gk(n)){let i=n.rule.ref;i&&!e.has(i.name)&&kae(i,e,r)}})}function aN(t){if(t.terminal)return t.terminal;if(t.type.ref){let e=kk(t.type.ref);return e?.terminal}}function sN(t){return t.hidden&&!Dg(Ng(t))}function oN(t,e){return!t||!e?[]:lN(t,e,t.astNode,!0)}function Q2(t,e,r){if(!t||!e)return;let n=lN(t,e,t.astNode,!0);if(n.length!==0)return r!==void 0?r=Math.max(0,Math.min(r,n.length-1)):r=0,n[r]}function lN(t,e,r,n){if(!n){let i=tp(t.grammarSource,Ml);if(i&&i.feature===e)return[t]}return Ll(t)&&t.astNode===r?t.content.flatMap(i=>lN(i,e,r,!1)):[]}function aPe(t,e){return t?uN(t,e,t?.astNode):[]}function cN(t,e,r){if(!t)return;let n=uN(t,e,t?.astNode);if(n.length!==0)return r!==void 0?r=Math.max(0,Math.min(r,n.length-1)):r=0,n[r]}function uN(t,e,r){if(t.astNode!==r)return[];if(Ho(t.grammarSource)&&t.grammarSource.value===e)return[t];let n=Kd(t).iterator(),i,a=[];do if(i=n.next(),!i.done){let s=i.value;s.astNode===r?Ho(s.grammarSource)&&s.grammarSource.value===e&&a.push(s):n.prune()}while(!i.done);return a}function hN(t){var e;let r=t.astNode;for(;r===((e=t.container)===null||e===void 0?void 0:e.astNode);){let n=tp(t.grammarSource,Ml);if(n)return n;t=t.container}}function kk(t){let e=t;return fk(e)&&(Mu(e.$container)?e=e.$container.$container:Oa(e.$container)?e=e.$container:Lc(e.$container)),Eae(t,e,new Map)}function Eae(t,e,r){var n;function i(a,s){let l;return tp(a,Ml)||(l=Eae(s,s,r)),r.set(t,l),l}if(o(i,"go"),r.has(t))return r.get(t);r.set(t,void 0);for(let a of Nc(e)){if(Ml(a)&&a.feature.toLowerCase()==="name")return r.set(t,a),a;if(Il(a)&&Oa(a.rule.ref))return i(a,a.rule.ref);if(pk(a)&&(!((n=a.typeRef)===null||n===void 0)&&n.ref))return i(a,a.typeRef.ref)}}function Sae(t){let e=t.$container;if(sf(e)){let r=e.elements,n=r.indexOf(t);for(let i=n-1;i>=0;i--){let a=r[i];if(Mu(a))return a;{let s=Nc(r[i]).find(Mu);if(s)return s}}}if(G2(e))return Sae(e)}function sPe(t,e){return t==="?"||t==="*"||sf(e)&&!!e.guardCondition}function oPe(t){return t==="*"||t==="+"}function lPe(t){return t==="+="}function Z2(t){return Cae(t,new Set)}function Cae(t,e){if(e.has(t))return!0;e.add(t);for(let r of Nc(t))if(Il(r)){if(!r.rule.ref||Oa(r.rule.ref)&&!Cae(r.rule.ref,e))return!1}else{if(Ml(r))return!1;if(Mu(r))return!1}return!!t.definition}function cPe(t){return iN(t.type,new Set)}function iN(t,e){if(e.has(t))return!0;if(e.add(t),DR(t))return!1;if(OR(t))return!1;if(BR(t))return t.types.every(r=>iN(r,e));if(pk(t)){if(t.primitiveType!==void 0)return!0;if(t.stringType!==void 0)return!0;if(t.typeRef!==void 0){let r=t.typeRef.ref;return V2(r)?iN(r.type,e):!1}else return!1}else return!1}function Rg(t){if(t.inferredType)return t.inferredType.name;if(t.dataType)return t.dataType;if(t.returnType){let e=t.returnType.ref;if(e){if(Oa(e))return e.name;if(dk(e)||V2(e))return e.name}}}function J2(t){var e;if(Oa(t))return Z2(t)?t.name:(e=Rg(t))!==null&&e!==void 0?e:t.name;if(dk(t)||V2(t)||PR(t))return t.name;if(Mu(t)){let r=Aae(t);if(r)return r}else if(fk(t))return t.name;throw new Error("Cannot get name of Unknown Type")}function Aae(t){var e;if(t.inferredType)return t.inferredType.name;if(!((e=t.type)===null||e===void 0)&&e.ref)return J2(t.type.ref)}function uPe(t){var e,r,n;return so(t)?(r=(e=t.type)===null||e===void 0?void 0:e.name)!==null&&r!==void 0?r:"string":Z2(t)?t.name:(n=Rg(t))!==null&&n!==void 0?n:t.name}function fN(t){var e,r,n;return so(t)?(r=(e=t.type)===null||e===void 0?void 0:e.name)!==null&&r!==void 0?r:"string":(n=Rg(t))!==null&&n!==void 0?n:t.name}function Ng(t){let e={s:!1,i:!1,u:!1},r=Mg(t.definition,e),n=Object.entries(e).filter(([,i])=>i).map(([i])=>i).join("");return new RegExp(r,n)}function Mg(t,e){if(VR(t))return hPe(t);if(UR(t))return fPe(t);if(FR(t))return mPe(t);if(gk(t)){let r=t.rule.ref;if(!r)throw new Error("Missing rule reference.");return Iu(Mg(r.definition),{cardinality:t.cardinality,lookahead:t.lookahead})}else{if(zR(t))return pPe(t);if(HR(t))return dPe(t);if(GR(t)){let r=t.regex.lastIndexOf("/"),n=t.regex.substring(1,r),i=t.regex.substring(r+1);return e&&(e.i=i.includes("i"),e.s=i.includes("s"),e.u=i.includes("u")),Iu(n,{cardinality:t.cardinality,lookahead:t.lookahead,wrap:!1})}else{if(WR(t))return Iu(dN,{cardinality:t.cardinality,lookahead:t.lookahead});throw new Error(`Invalid terminal element: ${t?.$type}`)}}}function hPe(t){return Iu(t.elements.map(e=>Mg(e)).join("|"),{cardinality:t.cardinality,lookahead:t.lookahead})}function fPe(t){return Iu(t.elements.map(e=>Mg(e)).join(""),{cardinality:t.cardinality,lookahead:t.lookahead})}function dPe(t){return Iu(`${dN}*?${Mg(t.terminal)}`,{cardinality:t.cardinality,lookahead:t.lookahead})}function pPe(t){return Iu(`(?!${Mg(t.terminal)})${dN}*?`,{cardinality:t.cardinality,lookahead:t.lookahead})}function mPe(t){return t.right?Iu(`[${nN(t.left)}-${nN(t.right)}]`,{cardinality:t.cardinality,lookahead:t.lookahead,wrap:!1}):Iu(nN(t.left),{cardinality:t.cardinality,lookahead:t.lookahead,wrap:!1})}function nN(t){return ap(t.value)}function Iu(t,e){var r;return(e.wrap!==!1||e.lookahead)&&(t=`(${(r=e.lookahead)!==null&&r!==void 0?r:""}${t})`),e.cardinality?`${t}${e.cardinality}`:t}var dN,Ol=N(()=>{"use strict";uk();Rc();Rl();is();Nl();Lg();o(wae,"getEntryRule");o(Tae,"getHiddenRules");o(K2,"getAllReachableRules");o(kae,"ruleDfs");o(aN,"getCrossReferenceTerminal");o(sN,"isCommentTerminal");o(oN,"findNodesForProperty");o(Q2,"findNodeForProperty");o(lN,"findNodesForPropertyInternal");o(aPe,"findNodesForKeyword");o(cN,"findNodeForKeyword");o(uN,"findNodesForKeywordInternal");o(hN,"findAssignment");o(kk,"findNameAssignment");o(Eae,"findNameAssignmentInternal");o(Sae,"getActionAtElement");o(sPe,"isOptionalCardinality");o(oPe,"isArrayCardinality");o(lPe,"isArrayOperator");o(Z2,"isDataTypeRule");o(Cae,"isDataTypeRuleInternal");o(cPe,"isDataType");o(iN,"isDataTypeInternal");o(Rg,"getExplicitRuleType");o(J2,"getTypeName");o(Aae,"getActionType");o(uPe,"getRuleTypeName");o(fN,"getRuleType");o(Ng,"terminalRegex");dN=/[\s\S]/.source;o(Mg,"abstractElementToRegex");o(hPe,"terminalAlternativesToRegex");o(fPe,"terminalGroupToRegex");o(dPe,"untilTokenToRegex");o(pPe,"negateTokenToRegex");o(mPe,"characterRangeToRegex");o(nN,"keywordToRegex");o(Iu,"withCardinality")});function pN(t){let e=[],r=t.Grammar;for(let n of r.rules)so(n)&&sN(n)&&eN(Ng(n))&&e.push(n.name);return{multilineCommentRules:e,nameRegexp:lk}}var mN=N(()=>{"use strict";Nl();Ol();Lg();Rc();o(pN,"createGrammarConfig")});var gN=N(()=>{"use strict"});function Ig(t){console&&console.error&&console.error(`Error: ${t}`)}function ex(t){console&&console.warn&&console.warn(`Warning: ${t}`)}var _ae=N(()=>{"use strict";o(Ig,"PRINT_ERROR");o(ex,"PRINT_WARNING")});function tx(t){let e=new Date().getTime(),r=t();return{time:new Date().getTime()-e,value:r}}var Dae=N(()=>{"use strict";o(tx,"timer")});function rx(t){function e(){}o(e,"FakeConstructor"),e.prototype=t;let r=new e;function n(){return typeof r.bar}return o(n,"fakeAccess"),n(),n(),t;(0,eval)(t)}var Lae=N(()=>{"use strict";o(rx,"toFastProperties")});var Og=N(()=>{"use strict";_ae();Dae();Lae()});function gPe(t){return yPe(t)?t.LABEL:t.name}function yPe(t){return yi(t.LABEL)&&t.LABEL!==""}function Sk(t){return Je(t,Pg)}function Pg(t){function e(r){return Je(r,Pg)}if(o(e,"convertDefinition"),t instanceof on){let r={type:"NonTerminal",name:t.nonTerminalName,idx:t.idx};return yi(t.label)&&(r.label=t.label),r}else{if(t instanceof Dn)return{type:"Alternative",definition:e(t.definition)};if(t instanceof ln)return{type:"Option",idx:t.idx,definition:e(t.definition)};if(t instanceof Ln)return{type:"RepetitionMandatory",idx:t.idx,definition:e(t.definition)};if(t instanceof Rn)return{type:"RepetitionMandatoryWithSeparator",idx:t.idx,separator:Pg(new kr({terminalType:t.separator})),definition:e(t.definition)};if(t instanceof wn)return{type:"RepetitionWithSeparator",idx:t.idx,separator:Pg(new kr({terminalType:t.separator})),definition:e(t.definition)};if(t instanceof Or)return{type:"Repetition",idx:t.idx,definition:e(t.definition)};if(t instanceof Tn)return{type:"Alternation",idx:t.idx,definition:e(t.definition)};if(t instanceof kr){let r={type:"Terminal",name:t.terminalType.name,label:gPe(t.terminalType),idx:t.idx};yi(t.label)&&(r.terminalLabel=t.label);let n=t.terminalType.PATTERN;return t.terminalType.PATTERN&&(r.pattern=zo(n)?n.source:n),r}else{if(t instanceof as)return{type:"Rule",name:t.name,orgText:t.orgText,definition:e(t.definition)};throw Error("non exhaustive match")}}}var oo,on,as,Dn,ln,Ln,Rn,Or,wn,Tn,kr,Ck=N(()=>{"use strict";qt();o(gPe,"tokenLabel");o(yPe,"hasTokenLabel");oo=class{static{o(this,"AbstractProduction")}get definition(){return this._definition}set definition(e){this._definition=e}constructor(e){this._definition=e}accept(e){e.visit(this),Ae(this.definition,r=>{r.accept(e)})}},on=class extends oo{static{o(this,"NonTerminal")}constructor(e){super([]),this.idx=1,ma(this,Os(e,r=>r!==void 0))}set definition(e){}get definition(){return this.referencedRule!==void 0?this.referencedRule.definition:[]}accept(e){e.visit(this)}},as=class extends oo{static{o(this,"Rule")}constructor(e){super(e.definition),this.orgText="",ma(this,Os(e,r=>r!==void 0))}},Dn=class extends oo{static{o(this,"Alternative")}constructor(e){super(e.definition),this.ignoreAmbiguities=!1,ma(this,Os(e,r=>r!==void 0))}},ln=class extends oo{static{o(this,"Option")}constructor(e){super(e.definition),this.idx=1,ma(this,Os(e,r=>r!==void 0))}},Ln=class extends oo{static{o(this,"RepetitionMandatory")}constructor(e){super(e.definition),this.idx=1,ma(this,Os(e,r=>r!==void 0))}},Rn=class extends oo{static{o(this,"RepetitionMandatoryWithSeparator")}constructor(e){super(e.definition),this.idx=1,ma(this,Os(e,r=>r!==void 0))}},Or=class extends oo{static{o(this,"Repetition")}constructor(e){super(e.definition),this.idx=1,ma(this,Os(e,r=>r!==void 0))}},wn=class extends oo{static{o(this,"RepetitionWithSeparator")}constructor(e){super(e.definition),this.idx=1,ma(this,Os(e,r=>r!==void 0))}},Tn=class extends oo{static{o(this,"Alternation")}get definition(){return this._definition}set definition(e){this._definition=e}constructor(e){super(e.definition),this.idx=1,this.ignoreAmbiguities=!1,this.hasPredicates=!1,ma(this,Os(e,r=>r!==void 0))}},kr=class{static{o(this,"Terminal")}constructor(e){this.idx=1,ma(this,Os(e,r=>r!==void 0))}accept(e){e.visit(this)}};o(Sk,"serializeGrammar");o(Pg,"serializeProduction")});var ss,Rae=N(()=>{"use strict";Ck();ss=class{static{o(this,"GAstVisitor")}visit(e){let r=e;switch(r.constructor){case on:return this.visitNonTerminal(r);case Dn:return this.visitAlternative(r);case ln:return this.visitOption(r);case Ln:return this.visitRepetitionMandatory(r);case Rn:return this.visitRepetitionMandatoryWithSeparator(r);case wn:return this.visitRepetitionWithSeparator(r);case Or:return this.visitRepetition(r);case Tn:return this.visitAlternation(r);case kr:return this.visitTerminal(r);case as:return this.visitRule(r);default:throw Error("non exhaustive match")}}visitNonTerminal(e){}visitAlternative(e){}visitOption(e){}visitRepetition(e){}visitRepetitionMandatory(e){}visitRepetitionMandatoryWithSeparator(e){}visitRepetitionWithSeparator(e){}visitAlternation(e){}visitTerminal(e){}visitRule(e){}}});function yN(t){return t instanceof Dn||t instanceof ln||t instanceof Or||t instanceof Ln||t instanceof Rn||t instanceof wn||t instanceof kr||t instanceof as}function sp(t,e=[]){return t instanceof ln||t instanceof Or||t instanceof wn?!0:t instanceof Tn?A2(t.definition,n=>sp(n,e)):t instanceof on&&qn(e,t)?!1:t instanceof oo?(t instanceof on&&e.push(t),Ma(t.definition,n=>sp(n,e))):!1}function vN(t){return t instanceof Tn}function Bs(t){if(t instanceof on)return"SUBRULE";if(t instanceof ln)return"OPTION";if(t instanceof Tn)return"OR";if(t instanceof Ln)return"AT_LEAST_ONE";if(t instanceof Rn)return"AT_LEAST_ONE_SEP";if(t instanceof wn)return"MANY_SEP";if(t instanceof Or)return"MANY";if(t instanceof kr)return"CONSUME";throw Error("non exhaustive match")}var Nae=N(()=>{"use strict";qt();Ck();o(yN,"isSequenceProd");o(sp,"isOptionalProd");o(vN,"isBranchingProd");o(Bs,"getProductionDslName")});var os=N(()=>{"use strict";Ck();Rae();Nae()});function Mae(t,e,r){return[new ln({definition:[new kr({terminalType:t.separator})].concat(t.definition)})].concat(e,r)}var Ou,Ak=N(()=>{"use strict";qt();os();Ou=class{static{o(this,"RestWalker")}walk(e,r=[]){Ae(e.definition,(n,i)=>{let a=gi(e.definition,i+1);if(n instanceof on)this.walkProdRef(n,a,r);else if(n instanceof kr)this.walkTerminal(n,a,r);else if(n instanceof Dn)this.walkFlat(n,a,r);else if(n instanceof ln)this.walkOption(n,a,r);else if(n instanceof Ln)this.walkAtLeastOne(n,a,r);else if(n instanceof Rn)this.walkAtLeastOneSep(n,a,r);else if(n instanceof wn)this.walkManySep(n,a,r);else if(n instanceof Or)this.walkMany(n,a,r);else if(n instanceof Tn)this.walkOr(n,a,r);else throw Error("non exhaustive match")})}walkTerminal(e,r,n){}walkProdRef(e,r,n){}walkFlat(e,r,n){let i=r.concat(n);this.walk(e,i)}walkOption(e,r,n){let i=r.concat(n);this.walk(e,i)}walkAtLeastOne(e,r,n){let i=[new ln({definition:e.definition})].concat(r,n);this.walk(e,i)}walkAtLeastOneSep(e,r,n){let i=Mae(e,r,n);this.walk(e,i)}walkMany(e,r,n){let i=[new ln({definition:e.definition})].concat(r,n);this.walk(e,i)}walkManySep(e,r,n){let i=Mae(e,r,n);this.walk(e,i)}walkOr(e,r,n){let i=r.concat(n);Ae(e.definition,a=>{let s=new Dn({definition:[a]});this.walk(s,i)})}};o(Mae,"restForRepetitionWithSeparator")});function op(t){if(t instanceof on)return op(t.referencedRule);if(t instanceof kr)return bPe(t);if(yN(t))return vPe(t);if(vN(t))return xPe(t);throw Error("non exhaustive match")}function vPe(t){let e=[],r=t.definition,n=0,i=r.length>n,a,s=!0;for(;i&&s;)a=r[n],s=sp(a),e=e.concat(op(a)),n=n+1,i=r.length>n;return Bm(e)}function xPe(t){let e=Je(t.definition,r=>op(r));return Bm(qr(e))}function bPe(t){return[t.terminalType]}var xN=N(()=>{"use strict";qt();os();o(op,"first");o(vPe,"firstForSequence");o(xPe,"firstForBranching");o(bPe,"firstForTerminal")});var _k,bN=N(()=>{"use strict";_k="_~IN~_"});function Iae(t){let e={};return Ae(t,r=>{let n=new wN(r).startWalking();ma(e,n)}),e}function wPe(t,e){return t.name+e+_k}var wN,Oae=N(()=>{"use strict";Ak();xN();qt();bN();os();wN=class extends Ou{static{o(this,"ResyncFollowsWalker")}constructor(e){super(),this.topProd=e,this.follows={}}startWalking(){return this.walk(this.topProd),this.follows}walkTerminal(e,r,n){}walkProdRef(e,r,n){let i=wPe(e.referencedRule,e.idx)+this.topProd.name,a=r.concat(n),s=new Dn({definition:a}),l=op(s);this.follows[i]=l}};o(Iae,"computeAllProdsFollows");o(wPe,"buildBetweenProdsFollowPrefix")});function Bg(t){let e=t.toString();if(Dk.hasOwnProperty(e))return Dk[e];{let r=TPe.pattern(e);return Dk[e]=r,r}}function Pae(){Dk={}}var Dk,TPe,Lk=N(()=>{"use strict";j2();Dk={},TPe=new np;o(Bg,"getRegExpAst");o(Pae,"clearRegExpParserCache")});function $ae(t,e=!1){try{let r=Bg(t);return TN(r.value,{},r.flags.ignoreCase)}catch(r){if(r.message===Fae)e&&ex(`${nx}	Unable to optimize: < ${t.toString()} >
+	Complement Sets cannot be automatically optimized.
+	This will disable the lexer's first char optimizations.
+	See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#COMPLEMENT for details.`);else{let n="";e&&(n=`
+	This will disable the lexer's first char optimizations.
+	See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#REGEXP_PARSING for details.`),Ig(`${nx}
+	Failed parsing: < ${t.toString()} >
+	Using the @chevrotain/regexp-to-ast library
+	Please open an issue at: https://github.com/chevrotain/chevrotain/issues`+n)}}return[]}function TN(t,e,r){switch(t.type){case"Disjunction":for(let i=0;i<t.value.length;i++)TN(t.value[i],e,r);break;case"Alternative":let n=t.value;for(let i=0;i<n.length;i++){let a=n[i];switch(a.type){case"EndAnchor":case"GroupBackReference":case"Lookahead":case"NegativeLookahead":case"StartAnchor":case"WordBoundary":case"NonWordBoundary":continue}let s=a;switch(s.type){case"Character":Rk(s.value,e,r);break;case"Set":if(s.complement===!0)throw Error(Fae);Ae(s.value,u=>{if(typeof u=="number")Rk(u,e,r);else{let h=u;if(r===!0)for(let f=h.from;f<=h.to;f++)Rk(f,e,r);else{for(let f=h.from;f<=h.to&&f<Fg;f++)Rk(f,e,r);if(h.to>=Fg){let f=h.from>=Fg?h.from:Fg,d=h.to,p=Ic(f),m=Ic(d);for(let g=p;g<=m;g++)e[g]=g}}}});break;case"Group":TN(s.value,e,r);break;default:throw Error("Non Exhaustive Match")}let l=s.quantifier!==void 0&&s.quantifier.atLeast===0;if(s.type==="Group"&&kN(s)===!1||s.type!=="Group"&&l===!1)break}break;default:throw Error("non exhaustive match!")}return br(e)}function Rk(t,e,r){let n=Ic(t);e[n]=n,r===!0&&kPe(t,e)}function kPe(t,e){let r=String.fromCharCode(t),n=r.toUpperCase();if(n!==r){let i=Ic(n.charCodeAt(0));e[i]=i}else{let i=r.toLowerCase();if(i!==r){let a=Ic(i.charCodeAt(0));e[a]=a}}}function Bae(t,e){return ns(t.value,r=>{if(typeof r=="number")return qn(e,r);{let n=r;return ns(e,i=>n.from<=i&&i<=n.to)!==void 0}})}function kN(t){let e=t.quantifier;return e&&e.atLeast===0?!0:t.value?Pt(t.value)?Ma(t.value,kN):kN(t.value):!1}function Nk(t,e){if(e instanceof RegExp){let r=Bg(e),n=new EN(t);return n.visit(r),n.found}else return ns(e,r=>qn(t,r.charCodeAt(0)))!==void 0}var Fae,nx,EN,zae=N(()=>{"use strict";j2();qt();Og();Lk();SN();Fae="Complement Sets are not supported for first char optimization",nx=`Unable to use "first char" lexer optimizations:
+`;o($ae,"getOptimizedStartCodesIndices");o(TN,"firstCharOptimizedIndices");o(Rk,"addOptimizedIdxToResult");o(kPe,"handleIgnoreCase");o(Bae,"findCode");o(kN,"isWholeOptional");EN=class extends Mc{static{o(this,"CharCodeFinder")}constructor(e){super(),this.targetCharCodes=e,this.found=!1}visitChildren(e){if(this.found!==!0){switch(e.type){case"Lookahead":this.visitLookahead(e);return;case"NegativeLookahead":this.visitNegativeLookahead(e);return}super.visitChildren(e)}}visitCharacter(e){qn(this.targetCharCodes,e.value)&&(this.found=!0)}visitSet(e){e.complement?Bae(e,this.targetCharCodes)===void 0&&(this.found=!0):Bae(e,this.targetCharCodes)!==void 0&&(this.found=!0)}};o(Nk,"canMatchCharCode")});function Uae(t,e){e=Qh(e,{useSticky:AN,debug:!1,safeMode:!1,positionTracking:"full",lineTerminatorCharacters:["\r",`
+`],tracer:o((b,w)=>w(),"tracer")});let r=e.tracer;r("initCharCodeToOptimizedIndexMap",()=>{GPe()});let n;r("Reject Lexer.NA",()=>{n=Jh(t,b=>b[lp]===Xn.NA)});let i=!1,a;r("Transform Patterns",()=>{i=!1,a=Je(n,b=>{let w=b[lp];if(zo(w)){let C=w.source;return C.length===1&&C!=="^"&&C!=="$"&&C!=="."&&!w.ignoreCase?C:C.length===2&&C[0]==="\\"&&!qn(["d","D","s","S","t","r","n","t","0","c","b","B","f","v","w","W"],C[1])?C[1]:e.useSticky?Vae(w):Gae(w)}else{if(Si(w))return i=!0,{exec:w};if(typeof w=="object")return i=!0,w;if(typeof w=="string"){if(w.length===1)return w;{let C=w.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&"),T=new RegExp(C);return e.useSticky?Vae(T):Gae(T)}}else throw Error("non exhaustive match")}})});let s,l,u,h,f;r("misc mapping",()=>{s=Je(n,b=>b.tokenTypeIdx),l=Je(n,b=>{let w=b.GROUP;if(w!==Xn.SKIPPED){if(yi(w))return w;if(pr(w))return!1;throw Error("non exhaustive match")}}),u=Je(n,b=>{let w=b.LONGER_ALT;if(w)return Pt(w)?Je(w,T=>UT(n,T)):[UT(n,w)]}),h=Je(n,b=>b.PUSH_MODE),f=Je(n,b=>Bt(b,"POP_MODE"))});let d;r("Line Terminator Handling",()=>{let b=Qae(e.lineTerminatorCharacters);d=Je(n,w=>!1),e.positionTracking!=="onlyOffset"&&(d=Je(n,w=>Bt(w,"LINE_BREAKS")?!!w.LINE_BREAKS:Kae(w,b)===!1&&Nk(b,w.PATTERN)))});let p,m,g,y;r("Misc Mapping #2",()=>{p=Je(n,Xae),m=Je(a,$Pe),g=Xr(n,(b,w)=>{let C=w.GROUP;return yi(C)&&C!==Xn.SKIPPED&&(b[C]=[]),b},{}),y=Je(a,(b,w)=>({pattern:a[w],longerAlt:u[w],canLineTerminator:d[w],isCustom:p[w],short:m[w],group:l[w],push:h[w],pop:f[w],tokenTypeIdx:s[w],tokenType:n[w]}))});let v=!0,x=[];return e.safeMode||r("First Char Optimization",()=>{x=Xr(n,(b,w,C)=>{if(typeof w.PATTERN=="string"){let T=w.PATTERN.charCodeAt(0),E=Ic(T);CN(b,E,y[C])}else if(Pt(w.START_CHARS_HINT)){let T;Ae(w.START_CHARS_HINT,E=>{let A=typeof E=="string"?E.charCodeAt(0):E,S=Ic(A);T!==S&&(T=S,CN(b,S,y[C]))})}else if(zo(w.PATTERN))if(w.PATTERN.unicode)v=!1,e.ensureOptimizations&&Ig(`${nx}	Unable to analyze < ${w.PATTERN.toString()} > pattern.
+	The regexp unicode flag is not currently supported by the regexp-to-ast library.
+	This will disable the lexer's first char optimizations.
+	For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNICODE_OPTIMIZE`);else{let T=$ae(w.PATTERN,e.ensureOptimizations);ur(T)&&(v=!1),Ae(T,E=>{CN(b,E,y[C])})}else e.ensureOptimizations&&Ig(`${nx}	TokenType: <${w.name}> is using a custom token pattern without providing <start_chars_hint> parameter.
+	This will disable the lexer's first char optimizations.
+	For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_OPTIMIZE`),v=!1;return b},[])}),{emptyGroups:g,patternIdxToConfig:y,charCodeToPatternIdxToConfig:x,hasCustom:i,canBeOptimized:v}}function Hae(t,e){let r=[],n=SPe(t);r=r.concat(n.errors);let i=CPe(n.valid),a=i.valid;return r=r.concat(i.errors),r=r.concat(EPe(a)),r=r.concat(IPe(a)),r=r.concat(OPe(a,e)),r=r.concat(PPe(a)),r}function EPe(t){let e=[],r=Yr(t,n=>zo(n[lp]));return e=e.concat(_Pe(r)),e=e.concat(RPe(r)),e=e.concat(NPe(r)),e=e.concat(MPe(r)),e=e.concat(DPe(r)),e}function SPe(t){let e=Yr(t,i=>!Bt(i,lp)),r=Je(e,i=>({message:"Token Type: ->"+i.name+"<- missing static 'PATTERN' property",type:Yn.MISSING_PATTERN,tokenTypes:[i]})),n=Zh(t,e);return{errors:r,valid:n}}function CPe(t){let e=Yr(t,i=>{let a=i[lp];return!zo(a)&&!Si(a)&&!Bt(a,"exec")&&!yi(a)}),r=Je(e,i=>({message:"Token Type: ->"+i.name+"<- static 'PATTERN' can only be a RegExp, a Function matching the {CustomPatternMatcherFunc} type or an Object matching the {ICustomPattern} interface.",type:Yn.INVALID_PATTERN,tokenTypes:[i]})),n=Zh(t,e);return{errors:r,valid:n}}function _Pe(t){class e extends Mc{static{o(this,"EndAnchorFinder")}constructor(){super(...arguments),this.found=!1}visitEndAnchor(a){this.found=!0}}let r=Yr(t,i=>{let a=i.PATTERN;try{let s=Bg(a),l=new e;return l.visit(s),l.found}catch{return APe.test(a.source)}});return Je(r,i=>({message:`Unexpected RegExp Anchor Error:
+	Token Type: ->`+i.name+`<- static 'PATTERN' cannot contain end of input anchor '$'
+	See chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS	for details.`,type:Yn.EOI_ANCHOR_FOUND,tokenTypes:[i]}))}function DPe(t){let e=Yr(t,n=>n.PATTERN.test(""));return Je(e,n=>({message:"Token Type: ->"+n.name+"<- static 'PATTERN' must not match an empty string",type:Yn.EMPTY_MATCH_PATTERN,tokenTypes:[n]}))}function RPe(t){class e extends Mc{static{o(this,"StartAnchorFinder")}constructor(){super(...arguments),this.found=!1}visitStartAnchor(a){this.found=!0}}let r=Yr(t,i=>{let a=i.PATTERN;try{let s=Bg(a),l=new e;return l.visit(s),l.found}catch{return LPe.test(a.source)}});return Je(r,i=>({message:`Unexpected RegExp Anchor Error:
+	Token Type: ->`+i.name+`<- static 'PATTERN' cannot contain start of input anchor '^'
+	See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS	for details.`,type:Yn.SOI_ANCHOR_FOUND,tokenTypes:[i]}))}function NPe(t){let e=Yr(t,n=>{let i=n[lp];return i instanceof RegExp&&(i.multiline||i.global)});return Je(e,n=>({message:"Token Type: ->"+n.name+"<- static 'PATTERN' may NOT contain global('g') or multiline('m')",type:Yn.UNSUPPORTED_FLAGS_FOUND,tokenTypes:[n]}))}function MPe(t){let e=[],r=Je(t,a=>Xr(t,(s,l)=>(a.PATTERN.source===l.PATTERN.source&&!qn(e,l)&&l.PATTERN!==Xn.NA&&(e.push(l),s.push(l)),s),[]));r=Tc(r);let n=Yr(r,a=>a.length>1);return Je(n,a=>{let s=Je(a,u=>u.name);return{message:`The same RegExp pattern ->${ia(a).PATTERN}<-has been used in all of the following Token Types: ${s.join(", ")} <-`,type:Yn.DUPLICATE_PATTERNS_FOUND,tokenTypes:a}})}function IPe(t){let e=Yr(t,n=>{if(!Bt(n,"GROUP"))return!1;let i=n.GROUP;return i!==Xn.SKIPPED&&i!==Xn.NA&&!yi(i)});return Je(e,n=>({message:"Token Type: ->"+n.name+"<- static 'GROUP' can only be Lexer.SKIPPED/Lexer.NA/A String",type:Yn.INVALID_GROUP_TYPE_FOUND,tokenTypes:[n]}))}function OPe(t,e){let r=Yr(t,i=>i.PUSH_MODE!==void 0&&!qn(e,i.PUSH_MODE));return Je(r,i=>({message:`Token Type: ->${i.name}<- static 'PUSH_MODE' value cannot refer to a Lexer Mode ->${i.PUSH_MODE}<-which does not exist`,type:Yn.PUSH_MODE_DOES_NOT_EXIST,tokenTypes:[i]}))}function PPe(t){let e=[],r=Xr(t,(n,i,a)=>{let s=i.PATTERN;return s===Xn.NA||(yi(s)?n.push({str:s,idx:a,tokenType:i}):zo(s)&&FPe(s)&&n.push({str:s.source,idx:a,tokenType:i})),n},[]);return Ae(t,(n,i)=>{Ae(r,({str:a,idx:s,tokenType:l})=>{if(i<s&&BPe(a,n.PATTERN)){let u=`Token: ->${l.name}<- can never be matched.
+Because it appears AFTER the Token Type ->${n.name}<-in the lexer's definition.
+See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNREACHABLE`;e.push({message:u,type:Yn.UNREACHABLE_PATTERN,tokenTypes:[n,l]})}})}),e}function BPe(t,e){if(zo(e)){let r=e.exec(t);return r!==null&&r.index===0}else{if(Si(e))return e(t,0,[],{});if(Bt(e,"exec"))return e.exec(t,0,[],{});if(typeof e=="string")return e===t;throw Error("non exhaustive match")}}function FPe(t){return ns([".","\\","[","]","|","^","$","(",")","?","*","+","{"],r=>t.source.indexOf(r)!==-1)===void 0}function Gae(t){let e=t.ignoreCase?"i":"";return new RegExp(`^(?:${t.source})`,e)}function Vae(t){let e=t.ignoreCase?"iy":"y";return new RegExp(`${t.source}`,e)}function Wae(t,e,r){let n=[];return Bt(t,$g)||n.push({message:"A MultiMode Lexer cannot be initialized without a <"+$g+`> property in its definition
+`,type:Yn.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE}),Bt(t,Mk)||n.push({message:"A MultiMode Lexer cannot be initialized without a <"+Mk+`> property in its definition
+`,type:Yn.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY}),Bt(t,Mk)&&Bt(t,$g)&&!Bt(t.modes,t.defaultMode)&&n.push({message:`A MultiMode Lexer cannot be initialized with a ${$g}: <${t.defaultMode}>which does not exist
+`,type:Yn.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST}),Bt(t,Mk)&&Ae(t.modes,(i,a)=>{Ae(i,(s,l)=>{if(pr(s))n.push({message:`A Lexer cannot be initialized using an undefined Token Type. Mode:<${a}> at index: <${l}>
+`,type:Yn.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED});else if(Bt(s,"LONGER_ALT")){let u=Pt(s.LONGER_ALT)?s.LONGER_ALT:[s.LONGER_ALT];Ae(u,h=>{!pr(h)&&!qn(i,h)&&n.push({message:`A MultiMode Lexer cannot be initialized with a longer_alt <${h.name}> on token <${s.name}> outside of mode <${a}>
+`,type:Yn.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE})})}})}),n}function qae(t,e,r){let n=[],i=!1,a=Tc(qr(br(t.modes))),s=Jh(a,u=>u[lp]===Xn.NA),l=Qae(r);return e&&Ae(s,u=>{let h=Kae(u,l);if(h!==!1){let d={message:zPe(u,h),type:h.issue,tokenType:u};n.push(d)}else Bt(u,"LINE_BREAKS")?u.LINE_BREAKS===!0&&(i=!0):Nk(l,u.PATTERN)&&(i=!0)}),e&&!i&&n.push({message:`Warning: No LINE_BREAKS Found.
+	This Lexer has been defined to track line and column information,
+	But none of the Token Types can be identified as matching a line terminator.
+	See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#LINE_BREAKS 
+	for details.`,type:Yn.NO_LINE_BREAKS_FLAGS}),n}function Yae(t){let e={},r=zr(t);return Ae(r,n=>{let i=t[n];if(Pt(i))e[n]=[];else throw Error("non exhaustive match")}),e}function Xae(t){let e=t.PATTERN;if(zo(e))return!1;if(Si(e))return!0;if(Bt(e,"exec"))return!0;if(yi(e))return!1;throw Error("non exhaustive match")}function $Pe(t){return yi(t)&&t.length===1?t.charCodeAt(0):!1}function Kae(t,e){if(Bt(t,"LINE_BREAKS"))return!1;if(zo(t.PATTERN)){try{Nk(e,t.PATTERN)}catch(r){return{issue:Yn.IDENTIFY_TERMINATOR,errMsg:r.message}}return!1}else{if(yi(t.PATTERN))return!1;if(Xae(t))return{issue:Yn.CUSTOM_LINE_BREAK};throw Error("non exhaustive match")}}function zPe(t,e){if(e.issue===Yn.IDENTIFY_TERMINATOR)return`Warning: unable to identify line terminator usage in pattern.
+	The problem is in the <${t.name}> Token Type
+	 Root cause: ${e.errMsg}.
+	For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#IDENTIFY_TERMINATOR`;if(e.issue===Yn.CUSTOM_LINE_BREAK)return`Warning: A Custom Token Pattern should specify the <line_breaks> option.
+	The problem is in the <${t.name}> Token Type
+	For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_LINE_BREAK`;throw Error("non exhaustive match")}function Qae(t){return Je(t,r=>yi(r)?r.charCodeAt(0):r)}function CN(t,e,r){t[e]===void 0?t[e]=[r]:t[e].push(r)}function Ic(t){return t<Fg?t:Ik[t]}function GPe(){if(ur(Ik)){Ik=new Array(65536);for(let t=0;t<65536;t++)Ik[t]=t>255?255+~~(t/255):t}}var lp,$g,Mk,AN,APe,LPe,jae,Fg,Ik,SN=N(()=>{"use strict";j2();ix();qt();Og();zae();Lk();lp="PATTERN",$g="defaultMode",Mk="modes",AN=typeof new RegExp("(?:)").sticky=="boolean";o(Uae,"analyzeTokenTypes");o(Hae,"validatePatterns");o(EPe,"validateRegExpPattern");o(SPe,"findMissingPatterns");o(CPe,"findInvalidPatterns");APe=/[^\\][$]/;o(_Pe,"findEndOfInputAnchor");o(DPe,"findEmptyMatchRegExps");LPe=/[^\\[][\^]|^\^/;o(RPe,"findStartOfInputAnchor");o(NPe,"findUnsupportedFlags");o(MPe,"findDuplicatePatterns");o(IPe,"findInvalidGroupType");o(OPe,"findModesThatDoNotExist");o(PPe,"findUnreachablePatterns");o(BPe,"testTokenType");o(FPe,"noMetaChar");o(Gae,"addStartOfInput");o(Vae,"addStickyFlag");o(Wae,"performRuntimeChecks");o(qae,"performWarningRuntimeChecks");o(Yae,"cloneEmptyGroups");o(Xae,"isCustomPattern");o($Pe,"isShortPattern");jae={test:o(function(t){let e=t.length;for(let r=this.lastIndex;r<e;r++){let n=t.charCodeAt(r);if(n===10)return this.lastIndex=r+1,!0;if(n===13)return t.charCodeAt(r+1)===10?this.lastIndex=r+2:this.lastIndex=r+1,!0}return!1},"test"),lastIndex:0};o(Kae,"checkLineBreaksIssues");o(zPe,"buildLineBreakIssueMessage");o(Qae,"getCharCodes");o(CN,"addToMapOfArrays");Fg=256,Ik=[];o(Ic,"charCodeToOptimizedIndex");o(GPe,"initCharCodeToOptimizedIndexMap")});function Pu(t,e){let r=t.tokenTypeIdx;return r===e.tokenTypeIdx?!0:e.isParent===!0&&e.categoryMatchesMap[r]===!0}function zg(t,e){return t.tokenTypeIdx===e.tokenTypeIdx}function Bu(t){let e=VPe(t);UPe(e),WPe(e),HPe(e),Ae(e,r=>{r.isParent=r.categoryMatches.length>0})}function VPe(t){let e=an(t),r=t,n=!0;for(;n;){r=Tc(qr(Je(r,a=>a.CATEGORIES)));let i=Zh(r,e);e=e.concat(i),ur(i)?n=!1:r=i}return e}function UPe(t){Ae(t,e=>{_N(e)||(ese[Zae]=e,e.tokenTypeIdx=Zae++),Jae(e)&&!Pt(e.CATEGORIES)&&(e.CATEGORIES=[e.CATEGORIES]),Jae(e)||(e.CATEGORIES=[]),qPe(e)||(e.categoryMatches=[]),YPe(e)||(e.categoryMatchesMap={})})}function HPe(t){Ae(t,e=>{e.categoryMatches=[],Ae(e.categoryMatchesMap,(r,n)=>{e.categoryMatches.push(ese[n].tokenTypeIdx)})})}function WPe(t){Ae(t,e=>{tse([],e)})}function tse(t,e){Ae(t,r=>{e.categoryMatchesMap[r.tokenTypeIdx]=!0}),Ae(e.CATEGORIES,r=>{let n=t.concat(e);qn(n,r)||tse(n,r)})}function _N(t){return Bt(t,"tokenTypeIdx")}function Jae(t){return Bt(t,"CATEGORIES")}function qPe(t){return Bt(t,"categoryMatches")}function YPe(t){return Bt(t,"categoryMatchesMap")}function rse(t){return Bt(t,"tokenTypeIdx")}var Zae,ese,cp=N(()=>{"use strict";qt();o(Pu,"tokenStructuredMatcher");o(zg,"tokenStructuredMatcherNoCategories");Zae=1,ese={};o(Bu,"augmentTokenTypes");o(VPe,"expandCategories");o(UPe,"assignTokenDefaultProps");o(HPe,"assignCategoriesTokensProp");o(WPe,"assignCategoriesMapProp");o(tse,"singleAssignCategoriesToksMap");o(_N,"hasShortKeyProperty");o(Jae,"hasCategoriesProperty");o(qPe,"hasExtendingTokensTypesProperty");o(YPe,"hasExtendingTokensTypesMapProperty");o(rse,"isTokenType")});var Gg,DN=N(()=>{"use strict";Gg={buildUnableToPopLexerModeMessage(t){return`Unable to pop Lexer Mode after encountering Token ->${t.image}<- The Mode Stack is empty`},buildUnexpectedCharactersMessage(t,e,r,n,i){return`unexpected character: ->${t.charAt(e)}<- at offset: ${e}, skipped ${r} characters.`}}});var Yn,ax,Xn,ix=N(()=>{"use strict";SN();qt();Og();cp();DN();Lk();(function(t){t[t.MISSING_PATTERN=0]="MISSING_PATTERN",t[t.INVALID_PATTERN=1]="INVALID_PATTERN",t[t.EOI_ANCHOR_FOUND=2]="EOI_ANCHOR_FOUND",t[t.UNSUPPORTED_FLAGS_FOUND=3]="UNSUPPORTED_FLAGS_FOUND",t[t.DUPLICATE_PATTERNS_FOUND=4]="DUPLICATE_PATTERNS_FOUND",t[t.INVALID_GROUP_TYPE_FOUND=5]="INVALID_GROUP_TYPE_FOUND",t[t.PUSH_MODE_DOES_NOT_EXIST=6]="PUSH_MODE_DOES_NOT_EXIST",t[t.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE=7]="MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE",t[t.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY=8]="MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY",t[t.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST=9]="MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST",t[t.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED=10]="LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED",t[t.SOI_ANCHOR_FOUND=11]="SOI_ANCHOR_FOUND",t[t.EMPTY_MATCH_PATTERN=12]="EMPTY_MATCH_PATTERN",t[t.NO_LINE_BREAKS_FLAGS=13]="NO_LINE_BREAKS_FLAGS",t[t.UNREACHABLE_PATTERN=14]="UNREACHABLE_PATTERN",t[t.IDENTIFY_TERMINATOR=15]="IDENTIFY_TERMINATOR",t[t.CUSTOM_LINE_BREAK=16]="CUSTOM_LINE_BREAK",t[t.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE=17]="MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE"})(Yn||(Yn={}));ax={deferDefinitionErrorsHandling:!1,positionTracking:"full",lineTerminatorsPattern:/\n|\r\n?/g,lineTerminatorCharacters:[`
+`,"\r"],ensureOptimizations:!1,safeMode:!1,errorMessageProvider:Gg,traceInitPerf:!1,skipValidations:!1,recoveryEnabled:!0};Object.freeze(ax);Xn=class{static{o(this,"Lexer")}constructor(e,r=ax){if(this.lexerDefinition=e,this.lexerDefinitionErrors=[],this.lexerDefinitionWarning=[],this.patternIdxToConfig={},this.charCodeToPatternIdxToConfig={},this.modes=[],this.emptyGroups={},this.trackStartLines=!0,this.trackEndLines=!0,this.hasCustom=!1,this.canModeBeOptimized={},this.TRACE_INIT=(i,a)=>{if(this.traceInitPerf===!0){this.traceInitIndent++;let s=new Array(this.traceInitIndent+1).join("	");this.traceInitIndent<this.traceInitMaxIdent&&console.log(`${s}--> <${i}>`);let{time:l,value:u}=tx(a),h=l>10?console.warn:console.log;return this.traceInitIndent<this.traceInitMaxIdent&&h(`${s}<-- <${i}> time: ${l}ms`),this.traceInitIndent--,u}else return a()},typeof r=="boolean")throw Error(`The second argument to the Lexer constructor is now an ILexerConfig Object.
+a boolean 2nd argument is no longer supported`);this.config=ma({},ax,r);let n=this.config.traceInitPerf;n===!0?(this.traceInitMaxIdent=1/0,this.traceInitPerf=!0):typeof n=="number"&&(this.traceInitMaxIdent=n,this.traceInitPerf=!0),this.traceInitIndent=-1,this.TRACE_INIT("Lexer Constructor",()=>{let i,a=!0;this.TRACE_INIT("Lexer Config handling",()=>{if(this.config.lineTerminatorsPattern===ax.lineTerminatorsPattern)this.config.lineTerminatorsPattern=jae;else if(this.config.lineTerminatorCharacters===ax.lineTerminatorCharacters)throw Error(`Error: Missing <lineTerminatorCharacters> property on the Lexer config.
+	For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#MISSING_LINE_TERM_CHARS`);if(r.safeMode&&r.ensureOptimizations)throw Error('"safeMode" and "ensureOptimizations" flags are mutually exclusive.');this.trackStartLines=/full|onlyStart/i.test(this.config.positionTracking),this.trackEndLines=/full/i.test(this.config.positionTracking),Pt(e)?i={modes:{defaultMode:an(e)},defaultMode:$g}:(a=!1,i=an(e))}),this.config.skipValidations===!1&&(this.TRACE_INIT("performRuntimeChecks",()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(Wae(i,this.trackStartLines,this.config.lineTerminatorCharacters))}),this.TRACE_INIT("performWarningRuntimeChecks",()=>{this.lexerDefinitionWarning=this.lexerDefinitionWarning.concat(qae(i,this.trackStartLines,this.config.lineTerminatorCharacters))})),i.modes=i.modes?i.modes:{},Ae(i.modes,(l,u)=>{i.modes[u]=Jh(l,h=>pr(h))});let s=zr(i.modes);if(Ae(i.modes,(l,u)=>{this.TRACE_INIT(`Mode: <${u}> processing`,()=>{if(this.modes.push(u),this.config.skipValidations===!1&&this.TRACE_INIT("validatePatterns",()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(Hae(l,s))}),ur(this.lexerDefinitionErrors)){Bu(l);let h;this.TRACE_INIT("analyzeTokenTypes",()=>{h=Uae(l,{lineTerminatorCharacters:this.config.lineTerminatorCharacters,positionTracking:r.positionTracking,ensureOptimizations:r.ensureOptimizations,safeMode:r.safeMode,tracer:this.TRACE_INIT})}),this.patternIdxToConfig[u]=h.patternIdxToConfig,this.charCodeToPatternIdxToConfig[u]=h.charCodeToPatternIdxToConfig,this.emptyGroups=ma({},this.emptyGroups,h.emptyGroups),this.hasCustom=h.hasCustom||this.hasCustom,this.canModeBeOptimized[u]=h.canBeOptimized}})}),this.defaultMode=i.defaultMode,!ur(this.lexerDefinitionErrors)&&!this.config.deferDefinitionErrorsHandling){let u=Je(this.lexerDefinitionErrors,h=>h.message).join(`-----------------------
+`);throw new Error(`Errors detected in definition of Lexer:
+`+u)}Ae(this.lexerDefinitionWarning,l=>{ex(l.message)}),this.TRACE_INIT("Choosing sub-methods implementations",()=>{if(AN?(this.chopInput=ta,this.match=this.matchWithTest):(this.updateLastIndex=ni,this.match=this.matchWithExec),a&&(this.handleModes=ni),this.trackStartLines===!1&&(this.computeNewColumn=ta),this.trackEndLines===!1&&(this.updateTokenEndLineColumnLocation=ni),/full/i.test(this.config.positionTracking))this.createTokenInstance=this.createFullToken;else if(/onlyStart/i.test(this.config.positionTracking))this.createTokenInstance=this.createStartOnlyToken;else if(/onlyOffset/i.test(this.config.positionTracking))this.createTokenInstance=this.createOffsetOnlyToken;else throw Error(`Invalid <positionTracking> config option: "${this.config.positionTracking}"`);this.hasCustom?(this.addToken=this.addTokenUsingPush,this.handlePayload=this.handlePayloadWithCustom):(this.addToken=this.addTokenUsingMemberAccess,this.handlePayload=this.handlePayloadNoCustom)}),this.TRACE_INIT("Failed Optimization Warnings",()=>{let l=Xr(this.canModeBeOptimized,(u,h,f)=>(h===!1&&u.push(f),u),[]);if(r.ensureOptimizations&&!ur(l))throw Error(`Lexer Modes: < ${l.join(", ")} > cannot be optimized.
+	 Disable the "ensureOptimizations" lexer config flag to silently ignore this and run the lexer in an un-optimized mode.
+	 Or inspect the console log for details on how to resolve these issues.`)}),this.TRACE_INIT("clearRegExpParserCache",()=>{Pae()}),this.TRACE_INIT("toFastProperties",()=>{rx(this)})})}tokenize(e,r=this.defaultMode){if(!ur(this.lexerDefinitionErrors)){let i=Je(this.lexerDefinitionErrors,a=>a.message).join(`-----------------------
+`);throw new Error(`Unable to Tokenize because Errors detected in definition of Lexer:
+`+i)}return this.tokenizeInternal(e,r)}tokenizeInternal(e,r){let n,i,a,s,l,u,h,f,d,p,m,g,y,v,x,b,w=e,C=w.length,T=0,E=0,A=this.hasCustom?0:Math.floor(e.length/10),S=new Array(A),_=[],I=this.trackStartLines?1:void 0,D=this.trackStartLines?1:void 0,k=Yae(this.emptyGroups),L=this.trackStartLines,R=this.config.lineTerminatorsPattern,O=0,M=[],B=[],F=[],P=[];Object.freeze(P);let z;function $(){return M}o($,"getPossiblePatternsSlow");function H(le){let he=Ic(le),K=B[he];return K===void 0?P:K}o(H,"getPossiblePatternsOptimized");let Q=o(le=>{if(F.length===1&&le.tokenType.PUSH_MODE===void 0){let he=this.config.errorMessageProvider.buildUnableToPopLexerModeMessage(le);_.push({offset:le.startOffset,line:le.startLine,column:le.startColumn,length:le.image.length,message:he})}else{F.pop();let he=ga(F);M=this.patternIdxToConfig[he],B=this.charCodeToPatternIdxToConfig[he],O=M.length;let K=this.canModeBeOptimized[he]&&this.config.safeMode===!1;B&&K?z=H:z=$}},"pop_mode");function j(le){F.push(le),B=this.charCodeToPatternIdxToConfig[le],M=this.patternIdxToConfig[le],O=M.length,O=M.length;let he=this.canModeBeOptimized[le]&&this.config.safeMode===!1;B&&he?z=H:z=$}o(j,"push_mode"),j.call(this,r);let ie,ne=this.config.recoveryEnabled;for(;T<C;){u=null;let le=w.charCodeAt(T),he=z(le),K=he.length;for(n=0;n<K;n++){ie=he[n];let X=ie.pattern;h=null;let te=ie.short;if(te!==!1?le===te&&(u=X):ie.isCustom===!0?(b=X.exec(w,T,S,k),b!==null?(u=b[0],b.payload!==void 0&&(h=b.payload)):u=null):(this.updateLastIndex(X,T),u=this.match(X,e,T)),u!==null){if(l=ie.longerAlt,l!==void 0){let J=l.length;for(a=0;a<J;a++){let se=M[l[a]],ue=se.pattern;if(f=null,se.isCustom===!0?(b=ue.exec(w,T,S,k),b!==null?(s=b[0],b.payload!==void 0&&(f=b.payload)):s=null):(this.updateLastIndex(ue,T),s=this.match(ue,e,T)),s&&s.length>u.length){u=s,h=f,ie=se;break}}}break}}if(u!==null){if(d=u.length,p=ie.group,p!==void 0&&(m=ie.tokenTypeIdx,g=this.createTokenInstance(u,T,m,ie.tokenType,I,D,d),this.handlePayload(g,h),p===!1?E=this.addToken(S,E,g):k[p].push(g)),e=this.chopInput(e,d),T=T+d,D=this.computeNewColumn(D,d),L===!0&&ie.canLineTerminator===!0){let X=0,te,J;R.lastIndex=0;do te=R.test(u),te===!0&&(J=R.lastIndex-1,X++);while(te===!0);X!==0&&(I=I+X,D=d-J,this.updateTokenEndLineColumnLocation(g,p,J,X,I,D,d))}this.handleModes(ie,Q,j,g)}else{let X=T,te=I,J=D,se=ne===!1;for(;se===!1&&T<C;)for(e=this.chopInput(e,1),T++,i=0;i<O;i++){let ue=M[i],Z=ue.pattern,Se=ue.short;if(Se!==!1?w.charCodeAt(T)===Se&&(se=!0):ue.isCustom===!0?se=Z.exec(w,T,S,k)!==null:(this.updateLastIndex(Z,T),se=Z.exec(e)!==null),se===!0)break}if(y=T-X,D=this.computeNewColumn(D,y),x=this.config.errorMessageProvider.buildUnexpectedCharactersMessage(w,X,y,te,J),_.push({offset:X,line:te,column:J,length:y,message:x}),ne===!1)break}}return this.hasCustom||(S.length=E),{tokens:S,groups:k,errors:_}}handleModes(e,r,n,i){if(e.pop===!0){let a=e.push;r(i),a!==void 0&&n.call(this,a)}else e.push!==void 0&&n.call(this,e.push)}chopInput(e,r){return e.substring(r)}updateLastIndex(e,r){e.lastIndex=r}updateTokenEndLineColumnLocation(e,r,n,i,a,s,l){let u,h;r!==void 0&&(u=n===l-1,h=u?-1:0,i===1&&u===!0||(e.endLine=a+h,e.endColumn=s-1+-h))}computeNewColumn(e,r){return e+r}createOffsetOnlyToken(e,r,n,i){return{image:e,startOffset:r,tokenTypeIdx:n,tokenType:i}}createStartOnlyToken(e,r,n,i,a,s){return{image:e,startOffset:r,startLine:a,startColumn:s,tokenTypeIdx:n,tokenType:i}}createFullToken(e,r,n,i,a,s,l){return{image:e,startOffset:r,endOffset:r+l-1,startLine:a,endLine:a,startColumn:s,endColumn:s+l-1,tokenTypeIdx:n,tokenType:i}}addTokenUsingPush(e,r,n){return e.push(n),r}addTokenUsingMemberAccess(e,r,n){return e[r]=n,r++,r}handlePayloadNoCustom(e,r){}handlePayloadWithCustom(e,r){r!==null&&(e.payload=r)}matchWithTest(e,r,n){return e.test(r)===!0?r.substring(n,e.lastIndex):null}matchWithExec(e,r){let n=e.exec(r);return n!==null?n[0]:null}};Xn.SKIPPED="This marks a skipped Token pattern, this means each token identified by it willbe consumed and then thrown into oblivion, this can be used to for example to completely ignore whitespace.";Xn.NA=/NOT_APPLICABLE/});function Fu(t){return LN(t)?t.LABEL:t.name}function LN(t){return yi(t.LABEL)&&t.LABEL!==""}function of(t){return jPe(t)}function jPe(t){let e=t.pattern,r={};if(r.name=t.name,pr(e)||(r.PATTERN=e),Bt(t,XPe))throw`The parent property is no longer supported.
+See: https://github.com/chevrotain/chevrotain/issues/564#issuecomment-349062346 for details.`;return Bt(t,nse)&&(r.CATEGORIES=t[nse]),Bu([r]),Bt(t,ise)&&(r.LABEL=t[ise]),Bt(t,ase)&&(r.GROUP=t[ase]),Bt(t,ose)&&(r.POP_MODE=t[ose]),Bt(t,sse)&&(r.PUSH_MODE=t[sse]),Bt(t,lse)&&(r.LONGER_ALT=t[lse]),Bt(t,cse)&&(r.LINE_BREAKS=t[cse]),Bt(t,use)&&(r.START_CHARS_HINT=t[use]),r}function $u(t,e,r,n,i,a,s,l){return{image:e,startOffset:r,endOffset:n,startLine:i,endLine:a,startColumn:s,endColumn:l,tokenTypeIdx:t.tokenTypeIdx,tokenType:t}}function sx(t,e){return Pu(t,e)}var XPe,nse,ise,ase,sse,ose,lse,cse,use,lo,up=N(()=>{"use strict";qt();ix();cp();o(Fu,"tokenLabel");o(LN,"hasTokenLabel");XPe="parent",nse="categories",ise="label",ase="group",sse="push_mode",ose="pop_mode",lse="longer_alt",cse="line_breaks",use="start_chars_hint";o(of,"createToken");o(jPe,"createTokenInternal");lo=of({name:"EOF",pattern:Xn.NA});Bu([lo]);o($u,"createTokenInstance");o(sx,"tokenMatcher")});var zu,hse,Pl,Vg=N(()=>{"use strict";up();qt();os();zu={buildMismatchTokenMessage({expected:t,actual:e,previous:r,ruleName:n}){return`Expecting ${LN(t)?`--> ${Fu(t)} <--`:`token of type --> ${t.name} <--`} but found --> '${e.image}' <--`},buildNotAllInputParsedMessage({firstRedundant:t,ruleName:e}){return"Redundant input, expecting EOF but found: "+t.image},buildNoViableAltMessage({expectedPathsPerAlt:t,actual:e,previous:r,customUserDescription:n,ruleName:i}){let a="Expecting: ",l=`
+but found: '`+ia(e).image+"'";if(n)return a+n+l;{let u=Xr(t,(p,m)=>p.concat(m),[]),h=Je(u,p=>`[${Je(p,m=>Fu(m)).join(", ")}]`),d=`one of these possible Token sequences:
+${Je(h,(p,m)=>`  ${m+1}. ${p}`).join(`
+`)}`;return a+d+l}},buildEarlyExitMessage({expectedIterationPaths:t,actual:e,customUserDescription:r,ruleName:n}){let i="Expecting: ",s=`
+but found: '`+ia(e).image+"'";if(r)return i+r+s;{let u=`expecting at least one iteration which starts with one of these possible Token sequences::
+  <${Je(t,h=>`[${Je(h,f=>Fu(f)).join(",")}]`).join(" ,")}>`;return i+u+s}}};Object.freeze(zu);hse={buildRuleNotFoundError(t,e){return"Invalid grammar, reference to a rule which is not defined: ->"+e.nonTerminalName+`<-
+inside top level rule: ->`+t.name+"<-"}},Pl={buildDuplicateFoundError(t,e){function r(f){return f instanceof kr?f.terminalType.name:f instanceof on?f.nonTerminalName:""}o(r,"getExtraProductionArgument");let n=t.name,i=ia(e),a=i.idx,s=Bs(i),l=r(i),u=a>0,h=`->${s}${u?a:""}<- ${l?`with argument: ->${l}<-`:""}
+                  appears more than once (${e.length} times) in the top level rule: ->${n}<-.                  
+                  For further details see: https://chevrotain.io/docs/FAQ.html#NUMERICAL_SUFFIXES 
+                  `;return h=h.replace(/[ \t]+/g," "),h=h.replace(/\s\s+/g,`
+`),h},buildNamespaceConflictError(t){return`Namespace conflict found in grammar.
+The grammar has both a Terminal(Token) and a Non-Terminal(Rule) named: <${t.name}>.
+To resolve this make sure each Terminal and Non-Terminal names are unique
+This is easy to accomplish by using the convention that Terminal names start with an uppercase letter
+and Non-Terminal names start with a lower case letter.`},buildAlternationPrefixAmbiguityError(t){let e=Je(t.prefixPath,i=>Fu(i)).join(", "),r=t.alternation.idx===0?"":t.alternation.idx;return`Ambiguous alternatives: <${t.ambiguityIndices.join(" ,")}> due to common lookahead prefix
+in <OR${r}> inside <${t.topLevelRule.name}> Rule,
+<${e}> may appears as a prefix path in all these alternatives.
+See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#COMMON_PREFIX
+For Further details.`},buildAlternationAmbiguityError(t){let e=Je(t.prefixPath,i=>Fu(i)).join(", "),r=t.alternation.idx===0?"":t.alternation.idx,n=`Ambiguous Alternatives Detected: <${t.ambiguityIndices.join(" ,")}> in <OR${r}> inside <${t.topLevelRule.name}> Rule,
+<${e}> may appears as a prefix path in all these alternatives.
+`;return n=n+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES
+For Further details.`,n},buildEmptyRepetitionError(t){let e=Bs(t.repetition);return t.repetition.idx!==0&&(e+=t.repetition.idx),`The repetition <${e}> within Rule <${t.topLevelRule.name}> can never consume any tokens.
+This could lead to an infinite loop.`},buildTokenNameError(t){return"deprecated"},buildEmptyAlternationError(t){return`Ambiguous empty alternative: <${t.emptyChoiceIdx+1}> in <OR${t.alternation.idx}> inside <${t.topLevelRule.name}> Rule.
+Only the last alternative may be an empty alternative.`},buildTooManyAlternativesError(t){return`An Alternation cannot have more than 256 alternatives:
+<OR${t.alternation.idx}> inside <${t.topLevelRule.name}> Rule.
+ has ${t.alternation.definition.length+1} alternatives.`},buildLeftRecursionError(t){let e=t.topLevelRule.name,r=Je(t.leftRecursionPath,a=>a.name),n=`${e} --> ${r.concat([e]).join(" --> ")}`;return`Left Recursion found in grammar.
+rule: <${e}> can be invoked from itself (directly or indirectly)
+without consuming any Tokens. The grammar path that causes this is: 
+ ${n}
+ To fix this refactor your grammar to remove the left recursion.
+see: https://en.wikipedia.org/wiki/LL_parser#Left_factoring.`},buildInvalidRuleNameError(t){return"deprecated"},buildDuplicateRuleNameError(t){let e;return t.topLevelRule instanceof as?e=t.topLevelRule.name:e=t.topLevelRule,`Duplicate definition, rule: ->${e}<- is already defined in the grammar: ->${t.grammarName}<-`}}});function fse(t,e){let r=new RN(t,e);return r.resolveRefs(),r.errors}var RN,dse=N(()=>{"use strict";Fs();qt();os();o(fse,"resolveGrammar");RN=class extends ss{static{o(this,"GastRefResolverVisitor")}constructor(e,r){super(),this.nameToTopRule=e,this.errMsgProvider=r,this.errors=[]}resolveRefs(){Ae(br(this.nameToTopRule),e=>{this.currTopLevel=e,e.accept(this)})}visitNonTerminal(e){let r=this.nameToTopRule[e.nonTerminalName];if(r)e.referencedRule=r;else{let n=this.errMsgProvider.buildRuleNotFoundError(this.currTopLevel,e);this.errors.push({message:n,type:zi.UNRESOLVED_SUBRULE_REF,ruleName:this.currTopLevel.name,unresolvedRefName:e.nonTerminalName})}}}});function Fk(t,e,r=[]){r=an(r);let n=[],i=0;function a(l){return l.concat(gi(t,i+1))}o(a,"remainingPathWith");function s(l){let u=Fk(a(l),e,r);return n.concat(u)}for(o(s,"getAlternativesForProd");r.length<e&&i<t.length;){let l=t[i];if(l instanceof Dn)return s(l.definition);if(l instanceof on)return s(l.definition);if(l instanceof ln)n=s(l.definition);else if(l instanceof Ln){let u=l.definition.concat([new Or({definition:l.definition})]);return s(u)}else if(l instanceof Rn){let u=[new Dn({definition:l.definition}),new Or({definition:[new kr({terminalType:l.separator})].concat(l.definition)})];return s(u)}else if(l instanceof wn){let u=l.definition.concat([new Or({definition:[new kr({terminalType:l.separator})].concat(l.definition)})]);n=s(u)}else if(l instanceof Or){let u=l.definition.concat([new Or({definition:l.definition})]);n=s(u)}else{if(l instanceof Tn)return Ae(l.definition,u=>{ur(u.definition)===!1&&(n=s(u.definition))}),n;if(l instanceof kr)r.push(l.terminalType);else throw Error("non exhaustive match")}i++}return n.push({partialPath:r,suffixDef:gi(t,i)}),n}function $k(t,e,r,n){let i="EXIT_NONE_TERMINAL",a=[i],s="EXIT_ALTERNATIVE",l=!1,u=e.length,h=u-n-1,f=[],d=[];for(d.push({idx:-1,def:t,ruleStack:[],occurrenceStack:[]});!ur(d);){let p=d.pop();if(p===s){l&&ga(d).idx<=h&&d.pop();continue}let m=p.def,g=p.idx,y=p.ruleStack,v=p.occurrenceStack;if(ur(m))continue;let x=m[0];if(x===i){let b={idx:g,def:gi(m),ruleStack:Nu(y),occurrenceStack:Nu(v)};d.push(b)}else if(x instanceof kr)if(g<u-1){let b=g+1,w=e[b];if(r(w,x.terminalType)){let C={idx:b,def:gi(m),ruleStack:y,occurrenceStack:v};d.push(C)}}else if(g===u-1)f.push({nextTokenType:x.terminalType,nextTokenOccurrence:x.idx,ruleStack:y,occurrenceStack:v}),l=!0;else throw Error("non exhaustive match");else if(x instanceof on){let b=an(y);b.push(x.nonTerminalName);let w=an(v);w.push(x.idx);let C={idx:g,def:x.definition.concat(a,gi(m)),ruleStack:b,occurrenceStack:w};d.push(C)}else if(x instanceof ln){let b={idx:g,def:gi(m),ruleStack:y,occurrenceStack:v};d.push(b),d.push(s);let w={idx:g,def:x.definition.concat(gi(m)),ruleStack:y,occurrenceStack:v};d.push(w)}else if(x instanceof Ln){let b=new Or({definition:x.definition,idx:x.idx}),w=x.definition.concat([b],gi(m)),C={idx:g,def:w,ruleStack:y,occurrenceStack:v};d.push(C)}else if(x instanceof Rn){let b=new kr({terminalType:x.separator}),w=new Or({definition:[b].concat(x.definition),idx:x.idx}),C=x.definition.concat([w],gi(m)),T={idx:g,def:C,ruleStack:y,occurrenceStack:v};d.push(T)}else if(x instanceof wn){let b={idx:g,def:gi(m),ruleStack:y,occurrenceStack:v};d.push(b),d.push(s);let w=new kr({terminalType:x.separator}),C=new Or({definition:[w].concat(x.definition),idx:x.idx}),T=x.definition.concat([C],gi(m)),E={idx:g,def:T,ruleStack:y,occurrenceStack:v};d.push(E)}else if(x instanceof Or){let b={idx:g,def:gi(m),ruleStack:y,occurrenceStack:v};d.push(b),d.push(s);let w=new Or({definition:x.definition,idx:x.idx}),C=x.definition.concat([w],gi(m)),T={idx:g,def:C,ruleStack:y,occurrenceStack:v};d.push(T)}else if(x instanceof Tn)for(let b=x.definition.length-1;b>=0;b--){let w=x.definition[b],C={idx:g,def:w.definition.concat(gi(m)),ruleStack:y,occurrenceStack:v};d.push(C),d.push(s)}else if(x instanceof Dn)d.push({idx:g,def:x.definition.concat(gi(m)),ruleStack:y,occurrenceStack:v});else if(x instanceof as)d.push(KPe(x,g,y,v));else throw Error("non exhaustive match")}return f}function KPe(t,e,r,n){let i=an(r);i.push(t.name);let a=an(n);return a.push(1),{idx:e,def:t.definition,ruleStack:i,occurrenceStack:a}}var NN,Ok,Ug,Pk,ox,Bk,lx,cx=N(()=>{"use strict";qt();xN();Ak();os();NN=class extends Ou{static{o(this,"AbstractNextPossibleTokensWalker")}constructor(e,r){super(),this.topProd=e,this.path=r,this.possibleTokTypes=[],this.nextProductionName="",this.nextProductionOccurrence=0,this.found=!1,this.isAtEndOfPath=!1}startWalking(){if(this.found=!1,this.path.ruleStack[0]!==this.topProd.name)throw Error("The path does not start with the walker's top Rule!");return this.ruleStack=an(this.path.ruleStack).reverse(),this.occurrenceStack=an(this.path.occurrenceStack).reverse(),this.ruleStack.pop(),this.occurrenceStack.pop(),this.updateExpectedNext(),this.walk(this.topProd),this.possibleTokTypes}walk(e,r=[]){this.found||super.walk(e,r)}walkProdRef(e,r,n){if(e.referencedRule.name===this.nextProductionName&&e.idx===this.nextProductionOccurrence){let i=r.concat(n);this.updateExpectedNext(),this.walk(e.referencedRule,i)}}updateExpectedNext(){ur(this.ruleStack)?(this.nextProductionName="",this.nextProductionOccurrence=0,this.isAtEndOfPath=!0):(this.nextProductionName=this.ruleStack.pop(),this.nextProductionOccurrence=this.occurrenceStack.pop())}},Ok=class extends NN{static{o(this,"NextAfterTokenWalker")}constructor(e,r){super(e,r),this.path=r,this.nextTerminalName="",this.nextTerminalOccurrence=0,this.nextTerminalName=this.path.lastTok.name,this.nextTerminalOccurrence=this.path.lastTokOccurrence}walkTerminal(e,r,n){if(this.isAtEndOfPath&&e.terminalType.name===this.nextTerminalName&&e.idx===this.nextTerminalOccurrence&&!this.found){let i=r.concat(n),a=new Dn({definition:i});this.possibleTokTypes=op(a),this.found=!0}}},Ug=class extends Ou{static{o(this,"AbstractNextTerminalAfterProductionWalker")}constructor(e,r){super(),this.topRule=e,this.occurrence=r,this.result={token:void 0,occurrence:void 0,isEndOfRule:void 0}}startWalking(){return this.walk(this.topRule),this.result}},Pk=class extends Ug{static{o(this,"NextTerminalAfterManyWalker")}walkMany(e,r,n){if(e.idx===this.occurrence){let i=ia(r.concat(n));this.result.isEndOfRule=i===void 0,i instanceof kr&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkMany(e,r,n)}},ox=class extends Ug{static{o(this,"NextTerminalAfterManySepWalker")}walkManySep(e,r,n){if(e.idx===this.occurrence){let i=ia(r.concat(n));this.result.isEndOfRule=i===void 0,i instanceof kr&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkManySep(e,r,n)}},Bk=class extends Ug{static{o(this,"NextTerminalAfterAtLeastOneWalker")}walkAtLeastOne(e,r,n){if(e.idx===this.occurrence){let i=ia(r.concat(n));this.result.isEndOfRule=i===void 0,i instanceof kr&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkAtLeastOne(e,r,n)}},lx=class extends Ug{static{o(this,"NextTerminalAfterAtLeastOneSepWalker")}walkAtLeastOneSep(e,r,n){if(e.idx===this.occurrence){let i=ia(r.concat(n));this.result.isEndOfRule=i===void 0,i instanceof kr&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkAtLeastOneSep(e,r,n)}};o(Fk,"possiblePathsFrom");o($k,"nextPossibleTokensAfter");o(KPe,"expandTopLevelRule")});function ux(t){if(t instanceof ln||t==="Option")return jn.OPTION;if(t instanceof Or||t==="Repetition")return jn.REPETITION;if(t instanceof Ln||t==="RepetitionMandatory")return jn.REPETITION_MANDATORY;if(t instanceof Rn||t==="RepetitionMandatoryWithSeparator")return jn.REPETITION_MANDATORY_WITH_SEPARATOR;if(t instanceof wn||t==="RepetitionWithSeparator")return jn.REPETITION_WITH_SEPARATOR;if(t instanceof Tn||t==="Alternation")return jn.ALTERNATION;throw Error("non exhaustive match")}function Gk(t){let{occurrence:e,rule:r,prodType:n,maxLookahead:i}=t,a=ux(n);return a===jn.ALTERNATION?Hg(e,r,i):Wg(e,r,a,i)}function mse(t,e,r,n,i,a){let s=Hg(t,e,r),l=wse(s)?zg:Pu;return a(s,n,l,i)}function gse(t,e,r,n,i,a){let s=Wg(t,e,i,r),l=wse(s)?zg:Pu;return a(s[0],l,n)}function yse(t,e,r,n){let i=t.length,a=Ma(t,s=>Ma(s,l=>l.length===1));if(e)return function(s){let l=Je(s,u=>u.GATE);for(let u=0;u<i;u++){let h=t[u],f=h.length,d=l[u];if(!(d!==void 0&&d.call(this)===!1))e:for(let p=0;p<f;p++){let m=h[p],g=m.length;for(let y=0;y<g;y++){let v=this.LA(y+1);if(r(v,m[y])===!1)continue e}return u}}};if(a&&!n){let s=Je(t,u=>qr(u)),l=Xr(s,(u,h,f)=>(Ae(h,d=>{Bt(u,d.tokenTypeIdx)||(u[d.tokenTypeIdx]=f),Ae(d.categoryMatches,p=>{Bt(u,p)||(u[p]=f)})}),u),{});return function(){let u=this.LA(1);return l[u.tokenTypeIdx]}}else return function(){for(let s=0;s<i;s++){let l=t[s],u=l.length;e:for(let h=0;h<u;h++){let f=l[h],d=f.length;for(let p=0;p<d;p++){let m=this.LA(p+1);if(r(m,f[p])===!1)continue e}return s}}}}function vse(t,e,r){let n=Ma(t,a=>a.length===1),i=t.length;if(n&&!r){let a=qr(t);if(a.length===1&&ur(a[0].categoryMatches)){let l=a[0].tokenTypeIdx;return function(){return this.LA(1).tokenTypeIdx===l}}else{let s=Xr(a,(l,u,h)=>(l[u.tokenTypeIdx]=!0,Ae(u.categoryMatches,f=>{l[f]=!0}),l),[]);return function(){let l=this.LA(1);return s[l.tokenTypeIdx]===!0}}}else return function(){e:for(let a=0;a<i;a++){let s=t[a],l=s.length;for(let u=0;u<l;u++){let h=this.LA(u+1);if(e(h,s[u])===!1)continue e}return!0}return!1}}function pse(t){let e=new Array(t);for(let r=0;r<t;r++)e[r]=[];return e}function MN(t){let e=[""];for(let r=0;r<t.length;r++){let n=t[r],i=[];for(let a=0;a<e.length;a++){let s=e[a];i.push(s+"_"+n.tokenTypeIdx);for(let l=0;l<n.categoryMatches.length;l++){let u="_"+n.categoryMatches[l];i.push(s+u)}}e=i}return e}function QPe(t,e,r){for(let n=0;n<t.length;n++){if(n===r)continue;let i=t[n];for(let a=0;a<e.length;a++){let s=e[a];if(i[s]===!0)return!1}}return!0}function xse(t,e){let r=Je(t,s=>Fk([s],1)),n=pse(r.length),i=Je(r,s=>{let l={};return Ae(s,u=>{let h=MN(u.partialPath);Ae(h,f=>{l[f]=!0})}),l}),a=r;for(let s=1;s<=e;s++){let l=a;a=pse(l.length);for(let u=0;u<l.length;u++){let h=l[u];for(let f=0;f<h.length;f++){let d=h[f].partialPath,p=h[f].suffixDef,m=MN(d);if(QPe(i,m,u)||ur(p)||d.length===e){let y=n[u];if(Vk(y,d)===!1){y.push(d);for(let v=0;v<m.length;v++){let x=m[v];i[u][x]=!0}}}else{let y=Fk(p,s+1,d);a[u]=a[u].concat(y),Ae(y,v=>{let x=MN(v.partialPath);Ae(x,b=>{i[u][b]=!0})})}}}}return n}function Hg(t,e,r,n){let i=new zk(t,jn.ALTERNATION,n);return e.accept(i),xse(i.result,r)}function Wg(t,e,r,n){let i=new zk(t,r);e.accept(i);let a=i.result,l=new IN(e,t,r).startWalking(),u=new Dn({definition:a}),h=new Dn({definition:l});return xse([u,h],n)}function Vk(t,e){e:for(let r=0;r<t.length;r++){let n=t[r];if(n.length===e.length){for(let i=0;i<n.length;i++){let a=e[i],s=n[i];if((a===s||s.categoryMatchesMap[a.tokenTypeIdx]!==void 0)===!1)continue e}return!0}}return!1}function bse(t,e){return t.length<e.length&&Ma(t,(r,n)=>{let i=e[n];return r===i||i.categoryMatchesMap[r.tokenTypeIdx]})}function wse(t){return Ma(t,e=>Ma(e,r=>Ma(r,n=>ur(n.categoryMatches))))}var jn,IN,zk,qg=N(()=>{"use strict";qt();cx();Ak();cp();os();(function(t){t[t.OPTION=0]="OPTION",t[t.REPETITION=1]="REPETITION",t[t.REPETITION_MANDATORY=2]="REPETITION_MANDATORY",t[t.REPETITION_MANDATORY_WITH_SEPARATOR=3]="REPETITION_MANDATORY_WITH_SEPARATOR",t[t.REPETITION_WITH_SEPARATOR=4]="REPETITION_WITH_SEPARATOR",t[t.ALTERNATION=5]="ALTERNATION"})(jn||(jn={}));o(ux,"getProdType");o(Gk,"getLookaheadPaths");o(mse,"buildLookaheadFuncForOr");o(gse,"buildLookaheadFuncForOptionalProd");o(yse,"buildAlternativesLookAheadFunc");o(vse,"buildSingleAlternativeLookaheadFunction");IN=class extends Ou{static{o(this,"RestDefinitionFinderWalker")}constructor(e,r,n){super(),this.topProd=e,this.targetOccurrence=r,this.targetProdType=n}startWalking(){return this.walk(this.topProd),this.restDef}checkIsTarget(e,r,n,i){return e.idx===this.targetOccurrence&&this.targetProdType===r?(this.restDef=n.concat(i),!0):!1}walkOption(e,r,n){this.checkIsTarget(e,jn.OPTION,r,n)||super.walkOption(e,r,n)}walkAtLeastOne(e,r,n){this.checkIsTarget(e,jn.REPETITION_MANDATORY,r,n)||super.walkOption(e,r,n)}walkAtLeastOneSep(e,r,n){this.checkIsTarget(e,jn.REPETITION_MANDATORY_WITH_SEPARATOR,r,n)||super.walkOption(e,r,n)}walkMany(e,r,n){this.checkIsTarget(e,jn.REPETITION,r,n)||super.walkOption(e,r,n)}walkManySep(e,r,n){this.checkIsTarget(e,jn.REPETITION_WITH_SEPARATOR,r,n)||super.walkOption(e,r,n)}},zk=class extends ss{static{o(this,"InsideDefinitionFinderVisitor")}constructor(e,r,n){super(),this.targetOccurrence=e,this.targetProdType=r,this.targetRef=n,this.result=[]}checkIsTarget(e,r){e.idx===this.targetOccurrence&&this.targetProdType===r&&(this.targetRef===void 0||e===this.targetRef)&&(this.result=e.definition)}visitOption(e){this.checkIsTarget(e,jn.OPTION)}visitRepetition(e){this.checkIsTarget(e,jn.REPETITION)}visitRepetitionMandatory(e){this.checkIsTarget(e,jn.REPETITION_MANDATORY)}visitRepetitionMandatoryWithSeparator(e){this.checkIsTarget(e,jn.REPETITION_MANDATORY_WITH_SEPARATOR)}visitRepetitionWithSeparator(e){this.checkIsTarget(e,jn.REPETITION_WITH_SEPARATOR)}visitAlternation(e){this.checkIsTarget(e,jn.ALTERNATION)}};o(pse,"initializeArrayOfArrays");o(MN,"pathToHashKeys");o(QPe,"isUniquePrefixHash");o(xse,"lookAheadSequenceFromAlternatives");o(Hg,"getLookaheadPathsForOr");o(Wg,"getLookaheadPathsForOptionalProd");o(Vk,"containsPath");o(bse,"isStrictPrefixOfPath");o(wse,"areTokenCategoriesNotUsed")});function Tse(t){let e=t.lookaheadStrategy.validate({rules:t.rules,tokenTypes:t.tokenTypes,grammarName:t.grammarName});return Je(e,r=>Object.assign({type:zi.CUSTOM_LOOKAHEAD_VALIDATION},r))}function kse(t,e,r,n){let i=ya(t,u=>ZPe(u,r)),a=iBe(t,e,r),s=ya(t,u=>tBe(u,r)),l=ya(t,u=>eBe(u,t,n,r));return i.concat(a,s,l)}function ZPe(t,e){let r=new ON;t.accept(r);let n=r.allProductions,i=IL(n,JPe),a=Os(i,l=>l.length>1);return Je(br(a),l=>{let u=ia(l),h=e.buildDuplicateFoundError(t,l),f=Bs(u),d={message:h,type:zi.DUPLICATE_PRODUCTIONS,ruleName:t.name,dslName:f,occurrence:u.idx},p=Ese(u);return p&&(d.parameter=p),d})}function JPe(t){return`${Bs(t)}_#_${t.idx}_#_${Ese(t)}`}function Ese(t){return t instanceof kr?t.terminalType.name:t instanceof on?t.nonTerminalName:""}function eBe(t,e,r,n){let i=[];if(Xr(e,(s,l)=>l.name===t.name?s+1:s,0)>1){let s=n.buildDuplicateRuleNameError({topLevelRule:t,grammarName:r});i.push({message:s,type:zi.DUPLICATE_RULE_NAME,ruleName:t.name})}return i}function Sse(t,e,r){let n=[],i;return qn(e,t)||(i=`Invalid rule override, rule: ->${t}<- cannot be overridden in the grammar: ->${r}<-as it is not defined in any of the super grammars `,n.push({message:i,type:zi.INVALID_RULE_OVERRIDE,ruleName:t})),n}function BN(t,e,r,n=[]){let i=[],a=Uk(e.definition);if(ur(a))return[];{let s=t.name;qn(a,t)&&i.push({message:r.buildLeftRecursionError({topLevelRule:t,leftRecursionPath:n}),type:zi.LEFT_RECURSION,ruleName:s});let u=Zh(a,n.concat([t])),h=ya(u,f=>{let d=an(n);return d.push(f),BN(t,f,r,d)});return i.concat(h)}}function Uk(t){let e=[];if(ur(t))return e;let r=ia(t);if(r instanceof on)e.push(r.referencedRule);else if(r instanceof Dn||r instanceof ln||r instanceof Ln||r instanceof Rn||r instanceof wn||r instanceof Or)e=e.concat(Uk(r.definition));else if(r instanceof Tn)e=qr(Je(r.definition,a=>Uk(a.definition)));else if(!(r instanceof kr))throw Error("non exhaustive match");let n=sp(r),i=t.length>1;if(n&&i){let a=gi(t);return e.concat(Uk(a))}else return e}function Cse(t,e){let r=new hx;t.accept(r);let n=r.alternations;return ya(n,a=>{let s=Nu(a.definition);return ya(s,(l,u)=>{let h=$k([l],[],Pu,1);return ur(h)?[{message:e.buildEmptyAlternationError({topLevelRule:t,alternation:a,emptyChoiceIdx:u}),type:zi.NONE_LAST_EMPTY_ALT,ruleName:t.name,occurrence:a.idx,alternative:u+1}]:[]})})}function Ase(t,e,r){let n=new hx;t.accept(n);let i=n.alternations;return i=Jh(i,s=>s.ignoreAmbiguities===!0),ya(i,s=>{let l=s.idx,u=s.maxLookahead||e,h=Hg(l,t,u,s),f=rBe(h,s,t,r),d=nBe(h,s,t,r);return f.concat(d)})}function tBe(t,e){let r=new hx;t.accept(r);let n=r.alternations;return ya(n,a=>a.definition.length>255?[{message:e.buildTooManyAlternativesError({topLevelRule:t,alternation:a}),type:zi.TOO_MANY_ALTS,ruleName:t.name,occurrence:a.idx}]:[])}function _se(t,e,r){let n=[];return Ae(t,i=>{let a=new PN;i.accept(a);let s=a.allProductions;Ae(s,l=>{let u=ux(l),h=l.maxLookahead||e,f=l.idx,p=Wg(f,i,u,h)[0];if(ur(qr(p))){let m=r.buildEmptyRepetitionError({topLevelRule:i,repetition:l});n.push({message:m,type:zi.NO_NON_EMPTY_LOOKAHEAD,ruleName:i.name})}})}),n}function rBe(t,e,r,n){let i=[],a=Xr(t,(l,u,h)=>(e.definition[h].ignoreAmbiguities===!0||Ae(u,f=>{let d=[h];Ae(t,(p,m)=>{h!==m&&Vk(p,f)&&e.definition[m].ignoreAmbiguities!==!0&&d.push(m)}),d.length>1&&!Vk(i,f)&&(i.push(f),l.push({alts:d,path:f}))}),l),[]);return Je(a,l=>{let u=Je(l.alts,f=>f+1);return{message:n.buildAlternationAmbiguityError({topLevelRule:r,alternation:e,ambiguityIndices:u,prefixPath:l.path}),type:zi.AMBIGUOUS_ALTS,ruleName:r.name,occurrence:e.idx,alternatives:l.alts}})}function nBe(t,e,r,n){let i=Xr(t,(s,l,u)=>{let h=Je(l,f=>({idx:u,path:f}));return s.concat(h)},[]);return Tc(ya(i,s=>{if(e.definition[s.idx].ignoreAmbiguities===!0)return[];let u=s.idx,h=s.path,f=Yr(i,p=>e.definition[p.idx].ignoreAmbiguities!==!0&&p.idx<u&&bse(p.path,h));return Je(f,p=>{let m=[p.idx+1,u+1],g=e.idx===0?"":e.idx;return{message:n.buildAlternationPrefixAmbiguityError({topLevelRule:r,alternation:e,ambiguityIndices:m,prefixPath:p.path}),type:zi.AMBIGUOUS_PREFIX_ALTS,ruleName:r.name,occurrence:g,alternatives:m}})}))}function iBe(t,e,r){let n=[],i=Je(e,a=>a.name);return Ae(t,a=>{let s=a.name;if(qn(i,s)){let l=r.buildNamespaceConflictError(a);n.push({message:l,type:zi.CONFLICT_TOKENS_RULES_NAMESPACE,ruleName:s})}}),n}var ON,hx,PN,fx=N(()=>{"use strict";qt();Fs();os();qg();cx();cp();o(Tse,"validateLookahead");o(kse,"validateGrammar");o(ZPe,"validateDuplicateProductions");o(JPe,"identifyProductionForDuplicates");o(Ese,"getExtraProductionArgument");ON=class extends ss{static{o(this,"OccurrenceValidationCollector")}constructor(){super(...arguments),this.allProductions=[]}visitNonTerminal(e){this.allProductions.push(e)}visitOption(e){this.allProductions.push(e)}visitRepetitionWithSeparator(e){this.allProductions.push(e)}visitRepetitionMandatory(e){this.allProductions.push(e)}visitRepetitionMandatoryWithSeparator(e){this.allProductions.push(e)}visitRepetition(e){this.allProductions.push(e)}visitAlternation(e){this.allProductions.push(e)}visitTerminal(e){this.allProductions.push(e)}};o(eBe,"validateRuleDoesNotAlreadyExist");o(Sse,"validateRuleIsOverridden");o(BN,"validateNoLeftRecursion");o(Uk,"getFirstNoneTerminal");hx=class extends ss{static{o(this,"OrCollector")}constructor(){super(...arguments),this.alternations=[]}visitAlternation(e){this.alternations.push(e)}};o(Cse,"validateEmptyOrAlternative");o(Ase,"validateAmbiguousAlternationAlternatives");PN=class extends ss{static{o(this,"RepetitionCollector")}constructor(){super(...arguments),this.allProductions=[]}visitRepetitionWithSeparator(e){this.allProductions.push(e)}visitRepetitionMandatory(e){this.allProductions.push(e)}visitRepetitionMandatoryWithSeparator(e){this.allProductions.push(e)}visitRepetition(e){this.allProductions.push(e)}};o(tBe,"validateTooManyAlts");o(_se,"validateSomeNonEmptyLookaheadPath");o(rBe,"checkAlternativesAmbiguities");o(nBe,"checkPrefixAlternativesAmbiguities");o(iBe,"checkTerminalAndNoneTerminalsNameSpace")});function Dse(t){let e=Qh(t,{errMsgProvider:hse}),r={};return Ae(t.rules,n=>{r[n.name]=n}),fse(r,e.errMsgProvider)}function Lse(t){return t=Qh(t,{errMsgProvider:Pl}),kse(t.rules,t.tokenTypes,t.errMsgProvider,t.grammarName)}var Rse=N(()=>{"use strict";qt();dse();fx();Vg();o(Dse,"resolveGrammar");o(Lse,"validateGrammar")});function lf(t){return qn(Pse,t.name)}var Nse,Mse,Ise,Ose,Pse,Yg,hp,dx,px,mx,Xg=N(()=>{"use strict";qt();Nse="MismatchedTokenException",Mse="NoViableAltException",Ise="EarlyExitException",Ose="NotAllInputParsedException",Pse=[Nse,Mse,Ise,Ose];Object.freeze(Pse);o(lf,"isRecognitionException");Yg=class extends Error{static{o(this,"RecognitionException")}constructor(e,r){super(e),this.token=r,this.resyncedTokens=[],Object.setPrototypeOf(this,new.target.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}},hp=class extends Yg{static{o(this,"MismatchedTokenException")}constructor(e,r,n){super(e,r),this.previousToken=n,this.name=Nse}},dx=class extends Yg{static{o(this,"NoViableAltException")}constructor(e,r,n){super(e,r),this.previousToken=n,this.name=Mse}},px=class extends Yg{static{o(this,"NotAllInputParsedException")}constructor(e,r){super(e,r),this.name=Ose}},mx=class extends Yg{static{o(this,"EarlyExitException")}constructor(e,r,n){super(e,r),this.previousToken=n,this.name=Ise}}});function aBe(t,e,r,n,i,a,s){let l=this.getKeyForAutomaticLookahead(n,i),u=this.firstAfterRepMap[l];if(u===void 0){let p=this.getCurrRuleFullName(),m=this.getGAstProductions()[p];u=new a(m,i).startWalking(),this.firstAfterRepMap[l]=u}let h=u.token,f=u.occurrence,d=u.isEndOfRule;this.RULE_STACK.length===1&&d&&h===void 0&&(h=lo,f=1),!(h===void 0||f===void 0)&&this.shouldInRepetitionRecoveryBeTried(h,f,s)&&this.tryInRepetitionRecovery(t,e,r,h)}var FN,zN,$N,Hk,GN=N(()=>{"use strict";up();qt();Xg();bN();Fs();FN={},zN="InRuleRecoveryException",$N=class extends Error{static{o(this,"InRuleRecoveryException")}constructor(e){super(e),this.name=zN}},Hk=class{static{o(this,"Recoverable")}initRecoverable(e){this.firstAfterRepMap={},this.resyncFollows={},this.recoveryEnabled=Bt(e,"recoveryEnabled")?e.recoveryEnabled:ls.recoveryEnabled,this.recoveryEnabled&&(this.attemptInRepetitionRecovery=aBe)}getTokenToInsert(e){let r=$u(e,"",NaN,NaN,NaN,NaN,NaN,NaN);return r.isInsertedInRecovery=!0,r}canTokenTypeBeInsertedInRecovery(e){return!0}canTokenTypeBeDeletedInRecovery(e){return!0}tryInRepetitionRecovery(e,r,n,i){let a=this.findReSyncTokenType(),s=this.exportLexerState(),l=[],u=!1,h=this.LA(1),f=this.LA(1),d=o(()=>{let p=this.LA(0),m=this.errorMessageProvider.buildMismatchTokenMessage({expected:i,actual:h,previous:p,ruleName:this.getCurrRuleFullName()}),g=new hp(m,h,this.LA(0));g.resyncedTokens=Nu(l),this.SAVE_ERROR(g)},"generateErrorMessage");for(;!u;)if(this.tokenMatcher(f,i)){d();return}else if(n.call(this)){d(),e.apply(this,r);return}else this.tokenMatcher(f,a)?u=!0:(f=this.SKIP_TOKEN(),this.addToResyncTokens(f,l));this.importLexerState(s)}shouldInRepetitionRecoveryBeTried(e,r,n){return!(n===!1||this.tokenMatcher(this.LA(1),e)||this.isBackTracking()||this.canPerformInRuleRecovery(e,this.getFollowsForInRuleRecovery(e,r)))}getFollowsForInRuleRecovery(e,r){let n=this.getCurrentGrammarPath(e,r);return this.getNextPossibleTokenTypes(n)}tryInRuleRecovery(e,r){if(this.canRecoverWithSingleTokenInsertion(e,r))return this.getTokenToInsert(e);if(this.canRecoverWithSingleTokenDeletion(e)){let n=this.SKIP_TOKEN();return this.consumeToken(),n}throw new $N("sad sad panda")}canPerformInRuleRecovery(e,r){return this.canRecoverWithSingleTokenInsertion(e,r)||this.canRecoverWithSingleTokenDeletion(e)}canRecoverWithSingleTokenInsertion(e,r){if(!this.canTokenTypeBeInsertedInRecovery(e)||ur(r))return!1;let n=this.LA(1);return ns(r,a=>this.tokenMatcher(n,a))!==void 0}canRecoverWithSingleTokenDeletion(e){return this.canTokenTypeBeDeletedInRecovery(e)?this.tokenMatcher(this.LA(2),e):!1}isInCurrentRuleReSyncSet(e){let r=this.getCurrFollowKey(),n=this.getFollowSetFromFollowKey(r);return qn(n,e)}findReSyncTokenType(){let e=this.flattenFollowSet(),r=this.LA(1),n=2;for(;;){let i=ns(e,a=>sx(r,a));if(i!==void 0)return i;r=this.LA(n),n++}}getCurrFollowKey(){if(this.RULE_STACK.length===1)return FN;let e=this.getLastExplicitRuleShortName(),r=this.getLastExplicitRuleOccurrenceIndex(),n=this.getPreviousExplicitRuleShortName();return{ruleName:this.shortRuleNameToFullName(e),idxInCallingRule:r,inRule:this.shortRuleNameToFullName(n)}}buildFullFollowKeyStack(){let e=this.RULE_STACK,r=this.RULE_OCCURRENCE_STACK;return Je(e,(n,i)=>i===0?FN:{ruleName:this.shortRuleNameToFullName(n),idxInCallingRule:r[i],inRule:this.shortRuleNameToFullName(e[i-1])})}flattenFollowSet(){let e=Je(this.buildFullFollowKeyStack(),r=>this.getFollowSetFromFollowKey(r));return qr(e)}getFollowSetFromFollowKey(e){if(e===FN)return[lo];let r=e.ruleName+e.idxInCallingRule+_k+e.inRule;return this.resyncFollows[r]}addToResyncTokens(e,r){return this.tokenMatcher(e,lo)||r.push(e),r}reSyncTo(e){let r=[],n=this.LA(1);for(;this.tokenMatcher(n,e)===!1;)n=this.SKIP_TOKEN(),this.addToResyncTokens(n,r);return Nu(r)}attemptInRepetitionRecovery(e,r,n,i,a,s,l){}getCurrentGrammarPath(e,r){let n=this.getHumanReadableRuleStack(),i=an(this.RULE_OCCURRENCE_STACK);return{ruleStack:n,occurrenceStack:i,lastTok:e,lastTokOccurrence:r}}getHumanReadableRuleStack(){return Je(this.RULE_STACK,e=>this.shortRuleNameToFullName(e))}};o(aBe,"attemptInRepetitionRecovery")});function Wk(t,e,r){return r|e|t}var qk=N(()=>{"use strict";o(Wk,"getKeyForAutomaticLookahead")});var Gu,VN=N(()=>{"use strict";qt();Vg();Fs();fx();qg();Gu=class{static{o(this,"LLkLookaheadStrategy")}constructor(e){var r;this.maxLookahead=(r=e?.maxLookahead)!==null&&r!==void 0?r:ls.maxLookahead}validate(e){let r=this.validateNoLeftRecursion(e.rules);if(ur(r)){let n=this.validateEmptyOrAlternatives(e.rules),i=this.validateAmbiguousAlternationAlternatives(e.rules,this.maxLookahead),a=this.validateSomeNonEmptyLookaheadPath(e.rules,this.maxLookahead);return[...r,...n,...i,...a]}return r}validateNoLeftRecursion(e){return ya(e,r=>BN(r,r,Pl))}validateEmptyOrAlternatives(e){return ya(e,r=>Cse(r,Pl))}validateAmbiguousAlternationAlternatives(e,r){return ya(e,n=>Ase(n,r,Pl))}validateSomeNonEmptyLookaheadPath(e,r){return _se(e,r,Pl)}buildLookaheadForAlternation(e){return mse(e.prodOccurrence,e.rule,e.maxLookahead,e.hasPredicates,e.dynamicTokensEnabled,yse)}buildLookaheadForOptional(e){return gse(e.prodOccurrence,e.rule,e.maxLookahead,e.dynamicTokensEnabled,ux(e.prodType),vse)}}});function sBe(t){Yk.reset(),t.accept(Yk);let e=Yk.dslMethods;return Yk.reset(),e}var Xk,UN,Yk,Bse=N(()=>{"use strict";qt();Fs();qk();os();VN();Xk=class{static{o(this,"LooksAhead")}initLooksAhead(e){this.dynamicTokensEnabled=Bt(e,"dynamicTokensEnabled")?e.dynamicTokensEnabled:ls.dynamicTokensEnabled,this.maxLookahead=Bt(e,"maxLookahead")?e.maxLookahead:ls.maxLookahead,this.lookaheadStrategy=Bt(e,"lookaheadStrategy")?e.lookaheadStrategy:new Gu({maxLookahead:this.maxLookahead}),this.lookAheadFuncsCache=new Map}preComputeLookaheadFunctions(e){Ae(e,r=>{this.TRACE_INIT(`${r.name} Rule Lookahead`,()=>{let{alternation:n,repetition:i,option:a,repetitionMandatory:s,repetitionMandatoryWithSeparator:l,repetitionWithSeparator:u}=sBe(r);Ae(n,h=>{let f=h.idx===0?"":h.idx;this.TRACE_INIT(`${Bs(h)}${f}`,()=>{let d=this.lookaheadStrategy.buildLookaheadForAlternation({prodOccurrence:h.idx,rule:r,maxLookahead:h.maxLookahead||this.maxLookahead,hasPredicates:h.hasPredicates,dynamicTokensEnabled:this.dynamicTokensEnabled}),p=Wk(this.fullRuleNameToShort[r.name],256,h.idx);this.setLaFuncCache(p,d)})}),Ae(i,h=>{this.computeLookaheadFunc(r,h.idx,768,"Repetition",h.maxLookahead,Bs(h))}),Ae(a,h=>{this.computeLookaheadFunc(r,h.idx,512,"Option",h.maxLookahead,Bs(h))}),Ae(s,h=>{this.computeLookaheadFunc(r,h.idx,1024,"RepetitionMandatory",h.maxLookahead,Bs(h))}),Ae(l,h=>{this.computeLookaheadFunc(r,h.idx,1536,"RepetitionMandatoryWithSeparator",h.maxLookahead,Bs(h))}),Ae(u,h=>{this.computeLookaheadFunc(r,h.idx,1280,"RepetitionWithSeparator",h.maxLookahead,Bs(h))})})})}computeLookaheadFunc(e,r,n,i,a,s){this.TRACE_INIT(`${s}${r===0?"":r}`,()=>{let l=this.lookaheadStrategy.buildLookaheadForOptional({prodOccurrence:r,rule:e,maxLookahead:a||this.maxLookahead,dynamicTokensEnabled:this.dynamicTokensEnabled,prodType:i}),u=Wk(this.fullRuleNameToShort[e.name],n,r);this.setLaFuncCache(u,l)})}getKeyForAutomaticLookahead(e,r){let n=this.getLastExplicitRuleShortName();return Wk(n,e,r)}getLaFuncFromCache(e){return this.lookAheadFuncsCache.get(e)}setLaFuncCache(e,r){this.lookAheadFuncsCache.set(e,r)}},UN=class extends ss{static{o(this,"DslMethodsCollectorVisitor")}constructor(){super(...arguments),this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}}reset(){this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}}visitOption(e){this.dslMethods.option.push(e)}visitRepetitionWithSeparator(e){this.dslMethods.repetitionWithSeparator.push(e)}visitRepetitionMandatory(e){this.dslMethods.repetitionMandatory.push(e)}visitRepetitionMandatoryWithSeparator(e){this.dslMethods.repetitionMandatoryWithSeparator.push(e)}visitRepetition(e){this.dslMethods.repetition.push(e)}visitAlternation(e){this.dslMethods.alternation.push(e)}},Yk=new UN;o(sBe,"collectMethods")});function qN(t,e){isNaN(t.startOffset)===!0?(t.startOffset=e.startOffset,t.endOffset=e.endOffset):t.endOffset<e.endOffset&&(t.endOffset=e.endOffset)}function YN(t,e){isNaN(t.startOffset)===!0?(t.startOffset=e.startOffset,t.startColumn=e.startColumn,t.startLine=e.startLine,t.endOffset=e.endOffset,t.endColumn=e.endColumn,t.endLine=e.endLine):t.endOffset<e.endOffset&&(t.endOffset=e.endOffset,t.endColumn=e.endColumn,t.endLine=e.endLine)}function Fse(t,e,r){t.children[r]===void 0?t.children[r]=[e]:t.children[r].push(e)}function $se(t,e,r){t.children[e]===void 0?t.children[e]=[r]:t.children[e].push(r)}var zse=N(()=>{"use strict";o(qN,"setNodeLocationOnlyOffset");o(YN,"setNodeLocationFull");o(Fse,"addTerminalToCst");o($se,"addNoneTerminalToCst")});function XN(t,e){Object.defineProperty(t,oBe,{enumerable:!1,configurable:!0,writable:!1,value:e})}var oBe,Gse=N(()=>{"use strict";oBe="name";o(XN,"defineNameProp")});function lBe(t,e){let r=zr(t),n=r.length;for(let i=0;i<n;i++){let a=r[i],s=t[a],l=s.length;for(let u=0;u<l;u++){let h=s[u];h.tokenTypeIdx===void 0&&this[h.name](h.children,e)}}}function Vse(t,e){let r=o(function(){},"derivedConstructor");XN(r,t+"BaseSemantics");let n={visit:o(function(i,a){if(Pt(i)&&(i=i[0]),!pr(i))return this[i.name](i.children,a)},"visit"),validateVisitor:o(function(){let i=cBe(this,e);if(!ur(i)){let a=Je(i,s=>s.msg);throw Error(`Errors Detected in CST Visitor <${this.constructor.name}>:
+	${a.join(`
+
+`).replace(/\n/g,`
+	`)}`)}},"validateVisitor")};return r.prototype=n,r.prototype.constructor=r,r._RULE_NAMES=e,r}function Use(t,e,r){let n=o(function(){},"derivedConstructor");XN(n,t+"BaseSemanticsWithDefaults");let i=Object.create(r.prototype);return Ae(e,a=>{i[a]=lBe}),n.prototype=i,n.prototype.constructor=n,n}function cBe(t,e){return uBe(t,e)}function uBe(t,e){let r=Yr(e,i=>Si(t[i])===!1),n=Je(r,i=>({msg:`Missing visitor method: <${i}> on ${t.constructor.name} CST Visitor.`,type:jN.MISSING_METHOD,methodName:i}));return Tc(n)}var jN,Hse=N(()=>{"use strict";qt();Gse();o(lBe,"defaultVisit");o(Vse,"createBaseSemanticVisitorConstructor");o(Use,"createBaseVisitorConstructorWithDefaults");(function(t){t[t.REDUNDANT_METHOD=0]="REDUNDANT_METHOD",t[t.MISSING_METHOD=1]="MISSING_METHOD"})(jN||(jN={}));o(cBe,"validateVisitor");o(uBe,"validateMissingCstMethods")});var Zk,Wse=N(()=>{"use strict";zse();qt();Hse();Fs();Zk=class{static{o(this,"TreeBuilder")}initTreeBuilder(e){if(this.CST_STACK=[],this.outputCst=e.outputCst,this.nodeLocationTracking=Bt(e,"nodeLocationTracking")?e.nodeLocationTracking:ls.nodeLocationTracking,!this.outputCst)this.cstInvocationStateUpdate=ni,this.cstFinallyStateUpdate=ni,this.cstPostTerminal=ni,this.cstPostNonTerminal=ni,this.cstPostRule=ni;else if(/full/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=YN,this.setNodeLocationFromNode=YN,this.cstPostRule=ni,this.setInitialNodeLocation=this.setInitialNodeLocationFullRecovery):(this.setNodeLocationFromToken=ni,this.setNodeLocationFromNode=ni,this.cstPostRule=this.cstPostRuleFull,this.setInitialNodeLocation=this.setInitialNodeLocationFullRegular);else if(/onlyOffset/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=qN,this.setNodeLocationFromNode=qN,this.cstPostRule=ni,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRecovery):(this.setNodeLocationFromToken=ni,this.setNodeLocationFromNode=ni,this.cstPostRule=this.cstPostRuleOnlyOffset,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRegular);else if(/none/i.test(this.nodeLocationTracking))this.setNodeLocationFromToken=ni,this.setNodeLocationFromNode=ni,this.cstPostRule=ni,this.setInitialNodeLocation=ni;else throw Error(`Invalid <nodeLocationTracking> config option: "${e.nodeLocationTracking}"`)}setInitialNodeLocationOnlyOffsetRecovery(e){e.location={startOffset:NaN,endOffset:NaN}}setInitialNodeLocationOnlyOffsetRegular(e){e.location={startOffset:this.LA(1).startOffset,endOffset:NaN}}setInitialNodeLocationFullRecovery(e){e.location={startOffset:NaN,startLine:NaN,startColumn:NaN,endOffset:NaN,endLine:NaN,endColumn:NaN}}setInitialNodeLocationFullRegular(e){let r=this.LA(1);e.location={startOffset:r.startOffset,startLine:r.startLine,startColumn:r.startColumn,endOffset:NaN,endLine:NaN,endColumn:NaN}}cstInvocationStateUpdate(e){let r={name:e,children:Object.create(null)};this.setInitialNodeLocation(r),this.CST_STACK.push(r)}cstFinallyStateUpdate(){this.CST_STACK.pop()}cstPostRuleFull(e){let r=this.LA(0),n=e.location;n.startOffset<=r.startOffset?(n.endOffset=r.endOffset,n.endLine=r.endLine,n.endColumn=r.endColumn):(n.startOffset=NaN,n.startLine=NaN,n.startColumn=NaN)}cstPostRuleOnlyOffset(e){let r=this.LA(0),n=e.location;n.startOffset<=r.startOffset?n.endOffset=r.endOffset:n.startOffset=NaN}cstPostTerminal(e,r){let n=this.CST_STACK[this.CST_STACK.length-1];Fse(n,r,e),this.setNodeLocationFromToken(n.location,r)}cstPostNonTerminal(e,r){let n=this.CST_STACK[this.CST_STACK.length-1];$se(n,r,e),this.setNodeLocationFromNode(n.location,e.location)}getBaseCstVisitorConstructor(){if(pr(this.baseCstVisitorConstructor)){let e=Vse(this.className,zr(this.gastProductionsCache));return this.baseCstVisitorConstructor=e,e}return this.baseCstVisitorConstructor}getBaseCstVisitorConstructorWithDefaults(){if(pr(this.baseCstVisitorWithDefaultsConstructor)){let e=Use(this.className,zr(this.gastProductionsCache),this.getBaseCstVisitorConstructor());return this.baseCstVisitorWithDefaultsConstructor=e,e}return this.baseCstVisitorWithDefaultsConstructor}getLastExplicitRuleShortName(){let e=this.RULE_STACK;return e[e.length-1]}getPreviousExplicitRuleShortName(){let e=this.RULE_STACK;return e[e.length-2]}getLastExplicitRuleOccurrenceIndex(){let e=this.RULE_OCCURRENCE_STACK;return e[e.length-1]}}});var Jk,qse=N(()=>{"use strict";Fs();Jk=class{static{o(this,"LexerAdapter")}initLexerAdapter(){this.tokVector=[],this.tokVectorLength=0,this.currIdx=-1}set input(e){if(this.selfAnalysisDone!==!0)throw Error("Missing <performSelfAnalysis> invocation at the end of the Parser's constructor.");this.reset(),this.tokVector=e,this.tokVectorLength=e.length}get input(){return this.tokVector}SKIP_TOKEN(){return this.currIdx<=this.tokVector.length-2?(this.consumeToken(),this.LA(1)):jg}LA(e){let r=this.currIdx+e;return r<0||this.tokVectorLength<=r?jg:this.tokVector[r]}consumeToken(){this.currIdx++}exportLexerState(){return this.currIdx}importLexerState(e){this.currIdx=e}resetLexerState(){this.currIdx=-1}moveToTerminatedState(){this.currIdx=this.tokVector.length-1}getLexerPosition(){return this.exportLexerState()}}});var eE,Yse=N(()=>{"use strict";qt();Xg();Fs();Vg();fx();os();eE=class{static{o(this,"RecognizerApi")}ACTION(e){return e.call(this)}consume(e,r,n){return this.consumeInternal(r,e,n)}subrule(e,r,n){return this.subruleInternal(r,e,n)}option(e,r){return this.optionInternal(r,e)}or(e,r){return this.orInternal(r,e)}many(e,r){return this.manyInternal(e,r)}atLeastOne(e,r){return this.atLeastOneInternal(e,r)}CONSUME(e,r){return this.consumeInternal(e,0,r)}CONSUME1(e,r){return this.consumeInternal(e,1,r)}CONSUME2(e,r){return this.consumeInternal(e,2,r)}CONSUME3(e,r){return this.consumeInternal(e,3,r)}CONSUME4(e,r){return this.consumeInternal(e,4,r)}CONSUME5(e,r){return this.consumeInternal(e,5,r)}CONSUME6(e,r){return this.consumeInternal(e,6,r)}CONSUME7(e,r){return this.consumeInternal(e,7,r)}CONSUME8(e,r){return this.consumeInternal(e,8,r)}CONSUME9(e,r){return this.consumeInternal(e,9,r)}SUBRULE(e,r){return this.subruleInternal(e,0,r)}SUBRULE1(e,r){return this.subruleInternal(e,1,r)}SUBRULE2(e,r){return this.subruleInternal(e,2,r)}SUBRULE3(e,r){return this.subruleInternal(e,3,r)}SUBRULE4(e,r){return this.subruleInternal(e,4,r)}SUBRULE5(e,r){return this.subruleInternal(e,5,r)}SUBRULE6(e,r){return this.subruleInternal(e,6,r)}SUBRULE7(e,r){return this.subruleInternal(e,7,r)}SUBRULE8(e,r){return this.subruleInternal(e,8,r)}SUBRULE9(e,r){return this.subruleInternal(e,9,r)}OPTION(e){return this.optionInternal(e,0)}OPTION1(e){return this.optionInternal(e,1)}OPTION2(e){return this.optionInternal(e,2)}OPTION3(e){return this.optionInternal(e,3)}OPTION4(e){return this.optionInternal(e,4)}OPTION5(e){return this.optionInternal(e,5)}OPTION6(e){return this.optionInternal(e,6)}OPTION7(e){return this.optionInternal(e,7)}OPTION8(e){return this.optionInternal(e,8)}OPTION9(e){return this.optionInternal(e,9)}OR(e){return this.orInternal(e,0)}OR1(e){return this.orInternal(e,1)}OR2(e){return this.orInternal(e,2)}OR3(e){return this.orInternal(e,3)}OR4(e){return this.orInternal(e,4)}OR5(e){return this.orInternal(e,5)}OR6(e){return this.orInternal(e,6)}OR7(e){return this.orInternal(e,7)}OR8(e){return this.orInternal(e,8)}OR9(e){return this.orInternal(e,9)}MANY(e){this.manyInternal(0,e)}MANY1(e){this.manyInternal(1,e)}MANY2(e){this.manyInternal(2,e)}MANY3(e){this.manyInternal(3,e)}MANY4(e){this.manyInternal(4,e)}MANY5(e){this.manyInternal(5,e)}MANY6(e){this.manyInternal(6,e)}MANY7(e){this.manyInternal(7,e)}MANY8(e){this.manyInternal(8,e)}MANY9(e){this.manyInternal(9,e)}MANY_SEP(e){this.manySepFirstInternal(0,e)}MANY_SEP1(e){this.manySepFirstInternal(1,e)}MANY_SEP2(e){this.manySepFirstInternal(2,e)}MANY_SEP3(e){this.manySepFirstInternal(3,e)}MANY_SEP4(e){this.manySepFirstInternal(4,e)}MANY_SEP5(e){this.manySepFirstInternal(5,e)}MANY_SEP6(e){this.manySepFirstInternal(6,e)}MANY_SEP7(e){this.manySepFirstInternal(7,e)}MANY_SEP8(e){this.manySepFirstInternal(8,e)}MANY_SEP9(e){this.manySepFirstInternal(9,e)}AT_LEAST_ONE(e){this.atLeastOneInternal(0,e)}AT_LEAST_ONE1(e){return this.atLeastOneInternal(1,e)}AT_LEAST_ONE2(e){this.atLeastOneInternal(2,e)}AT_LEAST_ONE3(e){this.atLeastOneInternal(3,e)}AT_LEAST_ONE4(e){this.atLeastOneInternal(4,e)}AT_LEAST_ONE5(e){this.atLeastOneInternal(5,e)}AT_LEAST_ONE6(e){this.atLeastOneInternal(6,e)}AT_LEAST_ONE7(e){this.atLeastOneInternal(7,e)}AT_LEAST_ONE8(e){this.atLeastOneInternal(8,e)}AT_LEAST_ONE9(e){this.atLeastOneInternal(9,e)}AT_LEAST_ONE_SEP(e){this.atLeastOneSepFirstInternal(0,e)}AT_LEAST_ONE_SEP1(e){this.atLeastOneSepFirstInternal(1,e)}AT_LEAST_ONE_SEP2(e){this.atLeastOneSepFirstInternal(2,e)}AT_LEAST_ONE_SEP3(e){this.atLeastOneSepFirstInternal(3,e)}AT_LEAST_ONE_SEP4(e){this.atLeastOneSepFirstInternal(4,e)}AT_LEAST_ONE_SEP5(e){this.atLeastOneSepFirstInternal(5,e)}AT_LEAST_ONE_SEP6(e){this.atLeastOneSepFirstInternal(6,e)}AT_LEAST_ONE_SEP7(e){this.atLeastOneSepFirstInternal(7,e)}AT_LEAST_ONE_SEP8(e){this.atLeastOneSepFirstInternal(8,e)}AT_LEAST_ONE_SEP9(e){this.atLeastOneSepFirstInternal(9,e)}RULE(e,r,n=Kg){if(qn(this.definedRulesNames,e)){let s={message:Pl.buildDuplicateRuleNameError({topLevelRule:e,grammarName:this.className}),type:zi.DUPLICATE_RULE_NAME,ruleName:e};this.definitionErrors.push(s)}this.definedRulesNames.push(e);let i=this.defineRule(e,r,n);return this[e]=i,i}OVERRIDE_RULE(e,r,n=Kg){let i=Sse(e,this.definedRulesNames,this.className);this.definitionErrors=this.definitionErrors.concat(i);let a=this.defineRule(e,r,n);return this[e]=a,a}BACKTRACK(e,r){return function(){this.isBackTrackingStack.push(1);let n=this.saveRecogState();try{return e.apply(this,r),!0}catch(i){if(lf(i))return!1;throw i}finally{this.reloadRecogState(n),this.isBackTrackingStack.pop()}}}getGAstProductions(){return this.gastProductionsCache}getSerializedGastProductions(){return Sk(br(this.gastProductionsCache))}}});var tE,Xse=N(()=>{"use strict";qt();qk();Xg();qg();cx();Fs();GN();up();cp();tE=class{static{o(this,"RecognizerEngine")}initRecognizerEngine(e,r){if(this.className=this.constructor.name,this.shortRuleNameToFull={},this.fullRuleNameToShort={},this.ruleShortNameIdx=256,this.tokenMatcher=zg,this.subruleIdx=0,this.definedRulesNames=[],this.tokensMap={},this.isBackTrackingStack=[],this.RULE_STACK=[],this.RULE_OCCURRENCE_STACK=[],this.gastProductionsCache={},Bt(r,"serializedGrammar"))throw Error(`The Parser's configuration can no longer contain a <serializedGrammar> property.
+	See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_6-0-0
+	For Further details.`);if(Pt(e)){if(ur(e))throw Error(`A Token Vocabulary cannot be empty.
+	Note that the first argument for the parser constructor
+	is no longer a Token vector (since v4.0).`);if(typeof e[0].startOffset=="number")throw Error(`The Parser constructor no longer accepts a token vector as the first argument.
+	See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_4-0-0
+	For Further details.`)}if(Pt(e))this.tokensMap=Xr(e,(a,s)=>(a[s.name]=s,a),{});else if(Bt(e,"modes")&&Ma(qr(br(e.modes)),rse)){let a=qr(br(e.modes)),s=Bm(a);this.tokensMap=Xr(s,(l,u)=>(l[u.name]=u,l),{})}else if(bn(e))this.tokensMap=an(e);else throw new Error("<tokensDictionary> argument must be An Array of Token constructors, A dictionary of Token constructors or an IMultiModeLexerDefinition");this.tokensMap.EOF=lo;let n=Bt(e,"modes")?qr(br(e.modes)):br(e),i=Ma(n,a=>ur(a.categoryMatches));this.tokenMatcher=i?zg:Pu,Bu(br(this.tokensMap))}defineRule(e,r,n){if(this.selfAnalysisDone)throw Error(`Grammar rule <${e}> may not be defined after the 'performSelfAnalysis' method has been called'
+Make sure that all grammar rule definitions are done before 'performSelfAnalysis' is called.`);let i=Bt(n,"resyncEnabled")?n.resyncEnabled:Kg.resyncEnabled,a=Bt(n,"recoveryValueFunc")?n.recoveryValueFunc:Kg.recoveryValueFunc,s=this.ruleShortNameIdx<<12;this.ruleShortNameIdx++,this.shortRuleNameToFull[s]=e,this.fullRuleNameToShort[e]=s;let l;return this.outputCst===!0?l=o(function(...f){try{this.ruleInvocationStateUpdate(s,e,this.subruleIdx),r.apply(this,f);let d=this.CST_STACK[this.CST_STACK.length-1];return this.cstPostRule(d),d}catch(d){return this.invokeRuleCatch(d,i,a)}finally{this.ruleFinallyStateUpdate()}},"invokeRuleWithTry"):l=o(function(...f){try{return this.ruleInvocationStateUpdate(s,e,this.subruleIdx),r.apply(this,f)}catch(d){return this.invokeRuleCatch(d,i,a)}finally{this.ruleFinallyStateUpdate()}},"invokeRuleWithTryCst"),Object.assign(l,{ruleName:e,originalGrammarAction:r})}invokeRuleCatch(e,r,n){let i=this.RULE_STACK.length===1,a=r&&!this.isBackTracking()&&this.recoveryEnabled;if(lf(e)){let s=e;if(a){let l=this.findReSyncTokenType();if(this.isInCurrentRuleReSyncSet(l))if(s.resyncedTokens=this.reSyncTo(l),this.outputCst){let u=this.CST_STACK[this.CST_STACK.length-1];return u.recoveredNode=!0,u}else return n(e);else{if(this.outputCst){let u=this.CST_STACK[this.CST_STACK.length-1];u.recoveredNode=!0,s.partialCstResult=u}throw s}}else{if(i)return this.moveToTerminatedState(),n(e);throw s}}else throw e}optionInternal(e,r){let n=this.getKeyForAutomaticLookahead(512,r);return this.optionInternalLogic(e,r,n)}optionInternalLogic(e,r,n){let i=this.getLaFuncFromCache(n),a;if(typeof e!="function"){a=e.DEF;let s=e.GATE;if(s!==void 0){let l=i;i=o(()=>s.call(this)&&l.call(this),"lookAheadFunc")}}else a=e;if(i.call(this)===!0)return a.call(this)}atLeastOneInternal(e,r){let n=this.getKeyForAutomaticLookahead(1024,e);return this.atLeastOneInternalLogic(e,r,n)}atLeastOneInternalLogic(e,r,n){let i=this.getLaFuncFromCache(n),a;if(typeof r!="function"){a=r.DEF;let s=r.GATE;if(s!==void 0){let l=i;i=o(()=>s.call(this)&&l.call(this),"lookAheadFunc")}}else a=r;if(i.call(this)===!0){let s=this.doSingleRepetition(a);for(;i.call(this)===!0&&s===!0;)s=this.doSingleRepetition(a)}else throw this.raiseEarlyExitException(e,jn.REPETITION_MANDATORY,r.ERR_MSG);this.attemptInRepetitionRecovery(this.atLeastOneInternal,[e,r],i,1024,e,Bk)}atLeastOneSepFirstInternal(e,r){let n=this.getKeyForAutomaticLookahead(1536,e);this.atLeastOneSepFirstInternalLogic(e,r,n)}atLeastOneSepFirstInternalLogic(e,r,n){let i=r.DEF,a=r.SEP;if(this.getLaFuncFromCache(n).call(this)===!0){i.call(this);let l=o(()=>this.tokenMatcher(this.LA(1),a),"separatorLookAheadFunc");for(;this.tokenMatcher(this.LA(1),a)===!0;)this.CONSUME(a),i.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,a,l,i,lx],l,1536,e,lx)}else throw this.raiseEarlyExitException(e,jn.REPETITION_MANDATORY_WITH_SEPARATOR,r.ERR_MSG)}manyInternal(e,r){let n=this.getKeyForAutomaticLookahead(768,e);return this.manyInternalLogic(e,r,n)}manyInternalLogic(e,r,n){let i=this.getLaFuncFromCache(n),a;if(typeof r!="function"){a=r.DEF;let l=r.GATE;if(l!==void 0){let u=i;i=o(()=>l.call(this)&&u.call(this),"lookaheadFunction")}}else a=r;let s=!0;for(;i.call(this)===!0&&s===!0;)s=this.doSingleRepetition(a);this.attemptInRepetitionRecovery(this.manyInternal,[e,r],i,768,e,Pk,s)}manySepFirstInternal(e,r){let n=this.getKeyForAutomaticLookahead(1280,e);this.manySepFirstInternalLogic(e,r,n)}manySepFirstInternalLogic(e,r,n){let i=r.DEF,a=r.SEP;if(this.getLaFuncFromCache(n).call(this)===!0){i.call(this);let l=o(()=>this.tokenMatcher(this.LA(1),a),"separatorLookAheadFunc");for(;this.tokenMatcher(this.LA(1),a)===!0;)this.CONSUME(a),i.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,a,l,i,ox],l,1280,e,ox)}}repetitionSepSecondInternal(e,r,n,i,a){for(;n();)this.CONSUME(r),i.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,r,n,i,a],n,1536,e,a)}doSingleRepetition(e){let r=this.getLexerPosition();return e.call(this),this.getLexerPosition()>r}orInternal(e,r){let n=this.getKeyForAutomaticLookahead(256,r),i=Pt(e)?e:e.DEF,s=this.getLaFuncFromCache(n).call(this,i);if(s!==void 0)return i[s].ALT.call(this);this.raiseNoAltException(r,e.ERR_MSG)}ruleFinallyStateUpdate(){if(this.RULE_STACK.pop(),this.RULE_OCCURRENCE_STACK.pop(),this.cstFinallyStateUpdate(),this.RULE_STACK.length===0&&this.isAtEndOfInput()===!1){let e=this.LA(1),r=this.errorMessageProvider.buildNotAllInputParsedMessage({firstRedundant:e,ruleName:this.getCurrRuleFullName()});this.SAVE_ERROR(new px(r,e))}}subruleInternal(e,r,n){let i;try{let a=n!==void 0?n.ARGS:void 0;return this.subruleIdx=r,i=e.apply(this,a),this.cstPostNonTerminal(i,n!==void 0&&n.LABEL!==void 0?n.LABEL:e.ruleName),i}catch(a){throw this.subruleInternalError(a,n,e.ruleName)}}subruleInternalError(e,r,n){throw lf(e)&&e.partialCstResult!==void 0&&(this.cstPostNonTerminal(e.partialCstResult,r!==void 0&&r.LABEL!==void 0?r.LABEL:n),delete e.partialCstResult),e}consumeInternal(e,r,n){let i;try{let a=this.LA(1);this.tokenMatcher(a,e)===!0?(this.consumeToken(),i=a):this.consumeInternalError(e,a,n)}catch(a){i=this.consumeInternalRecovery(e,r,a)}return this.cstPostTerminal(n!==void 0&&n.LABEL!==void 0?n.LABEL:e.name,i),i}consumeInternalError(e,r,n){let i,a=this.LA(0);throw n!==void 0&&n.ERR_MSG?i=n.ERR_MSG:i=this.errorMessageProvider.buildMismatchTokenMessage({expected:e,actual:r,previous:a,ruleName:this.getCurrRuleFullName()}),this.SAVE_ERROR(new hp(i,r,a))}consumeInternalRecovery(e,r,n){if(this.recoveryEnabled&&n.name==="MismatchedTokenException"&&!this.isBackTracking()){let i=this.getFollowsForInRuleRecovery(e,r);try{return this.tryInRuleRecovery(e,i)}catch(a){throw a.name===zN?n:a}}else throw n}saveRecogState(){let e=this.errors,r=an(this.RULE_STACK);return{errors:e,lexerState:this.exportLexerState(),RULE_STACK:r,CST_STACK:this.CST_STACK}}reloadRecogState(e){this.errors=e.errors,this.importLexerState(e.lexerState),this.RULE_STACK=e.RULE_STACK}ruleInvocationStateUpdate(e,r,n){this.RULE_OCCURRENCE_STACK.push(n),this.RULE_STACK.push(e),this.cstInvocationStateUpdate(r)}isBackTracking(){return this.isBackTrackingStack.length!==0}getCurrRuleFullName(){let e=this.getLastExplicitRuleShortName();return this.shortRuleNameToFull[e]}shortRuleNameToFullName(e){return this.shortRuleNameToFull[e]}isAtEndOfInput(){return this.tokenMatcher(this.LA(1),lo)}reset(){this.resetLexerState(),this.subruleIdx=0,this.isBackTrackingStack=[],this.errors=[],this.RULE_STACK=[],this.CST_STACK=[],this.RULE_OCCURRENCE_STACK=[]}}});var rE,jse=N(()=>{"use strict";Xg();qt();qg();Fs();rE=class{static{o(this,"ErrorHandler")}initErrorHandler(e){this._errors=[],this.errorMessageProvider=Bt(e,"errorMessageProvider")?e.errorMessageProvider:ls.errorMessageProvider}SAVE_ERROR(e){if(lf(e))return e.context={ruleStack:this.getHumanReadableRuleStack(),ruleOccurrenceStack:an(this.RULE_OCCURRENCE_STACK)},this._errors.push(e),e;throw Error("Trying to save an Error which is not a RecognitionException")}get errors(){return an(this._errors)}set errors(e){this._errors=e}raiseEarlyExitException(e,r,n){let i=this.getCurrRuleFullName(),a=this.getGAstProductions()[i],l=Wg(e,a,r,this.maxLookahead)[0],u=[];for(let f=1;f<=this.maxLookahead;f++)u.push(this.LA(f));let h=this.errorMessageProvider.buildEarlyExitMessage({expectedIterationPaths:l,actual:u,previous:this.LA(0),customUserDescription:n,ruleName:i});throw this.SAVE_ERROR(new mx(h,this.LA(1),this.LA(0)))}raiseNoAltException(e,r){let n=this.getCurrRuleFullName(),i=this.getGAstProductions()[n],a=Hg(e,i,this.maxLookahead),s=[];for(let h=1;h<=this.maxLookahead;h++)s.push(this.LA(h));let l=this.LA(0),u=this.errorMessageProvider.buildNoViableAltMessage({expectedPathsPerAlt:a,actual:s,previous:l,customUserDescription:r,ruleName:this.getCurrRuleFullName()});throw this.SAVE_ERROR(new dx(u,this.LA(1),l))}}});var nE,Kse=N(()=>{"use strict";cx();qt();nE=class{static{o(this,"ContentAssist")}initContentAssist(){}computeContentAssist(e,r){let n=this.gastProductionsCache[e];if(pr(n))throw Error(`Rule ->${e}<- does not exist in this grammar.`);return $k([n],r,this.tokenMatcher,this.maxLookahead)}getNextPossibleTokenTypes(e){let r=ia(e.ruleStack),i=this.getGAstProductions()[r];return new Ok(i,e).startWalking()}}});function yx(t,e,r,n=!1){aE(r);let i=ga(this.recordingProdStack),a=Si(e)?e:e.DEF,s=new t({definition:[],idx:r});return n&&(s.separator=e.SEP),Bt(e,"MAX_LOOKAHEAD")&&(s.maxLookahead=e.MAX_LOOKAHEAD),this.recordingProdStack.push(s),a.call(this),i.definition.push(s),this.recordingProdStack.pop(),sE}function dBe(t,e){aE(e);let r=ga(this.recordingProdStack),n=Pt(t)===!1,i=n===!1?t:t.DEF,a=new Tn({definition:[],idx:e,ignoreAmbiguities:n&&t.IGNORE_AMBIGUITIES===!0});Bt(t,"MAX_LOOKAHEAD")&&(a.maxLookahead=t.MAX_LOOKAHEAD);let s=A2(i,l=>Si(l.GATE));return a.hasPredicates=s,r.definition.push(a),Ae(i,l=>{let u=new Dn({definition:[]});a.definition.push(u),Bt(l,"IGNORE_AMBIGUITIES")?u.ignoreAmbiguities=l.IGNORE_AMBIGUITIES:Bt(l,"GATE")&&(u.ignoreAmbiguities=!0),this.recordingProdStack.push(u),l.ALT.call(this),this.recordingProdStack.pop()}),sE}function Jse(t){return t===0?"":`${t}`}function aE(t){if(t<0||t>Zse){let e=new Error(`Invalid DSL Method idx value: <${t}>
+	Idx value must be a none negative value smaller than ${Zse+1}`);throw e.KNOWN_RECORDER_ERROR=!0,e}}var sE,Qse,Zse,eoe,toe,fBe,iE,roe=N(()=>{"use strict";qt();os();ix();cp();up();Fs();qk();sE={description:"This Object indicates the Parser is during Recording Phase"};Object.freeze(sE);Qse=!0,Zse=Math.pow(2,8)-1,eoe=of({name:"RECORDING_PHASE_TOKEN",pattern:Xn.NA});Bu([eoe]);toe=$u(eoe,`This IToken indicates the Parser is in Recording Phase
+	See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,-1,-1,-1,-1,-1,-1);Object.freeze(toe);fBe={name:`This CSTNode indicates the Parser is in Recording Phase
+	See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,children:{}},iE=class{static{o(this,"GastRecorder")}initGastRecorder(e){this.recordingProdStack=[],this.RECORDING_PHASE=!1}enableRecording(){this.RECORDING_PHASE=!0,this.TRACE_INIT("Enable Recording",()=>{for(let e=0;e<10;e++){let r=e>0?e:"";this[`CONSUME${r}`]=function(n,i){return this.consumeInternalRecord(n,e,i)},this[`SUBRULE${r}`]=function(n,i){return this.subruleInternalRecord(n,e,i)},this[`OPTION${r}`]=function(n){return this.optionInternalRecord(n,e)},this[`OR${r}`]=function(n){return this.orInternalRecord(n,e)},this[`MANY${r}`]=function(n){this.manyInternalRecord(e,n)},this[`MANY_SEP${r}`]=function(n){this.manySepFirstInternalRecord(e,n)},this[`AT_LEAST_ONE${r}`]=function(n){this.atLeastOneInternalRecord(e,n)},this[`AT_LEAST_ONE_SEP${r}`]=function(n){this.atLeastOneSepFirstInternalRecord(e,n)}}this.consume=function(e,r,n){return this.consumeInternalRecord(r,e,n)},this.subrule=function(e,r,n){return this.subruleInternalRecord(r,e,n)},this.option=function(e,r){return this.optionInternalRecord(r,e)},this.or=function(e,r){return this.orInternalRecord(r,e)},this.many=function(e,r){this.manyInternalRecord(e,r)},this.atLeastOne=function(e,r){this.atLeastOneInternalRecord(e,r)},this.ACTION=this.ACTION_RECORD,this.BACKTRACK=this.BACKTRACK_RECORD,this.LA=this.LA_RECORD})}disableRecording(){this.RECORDING_PHASE=!1,this.TRACE_INIT("Deleting Recording methods",()=>{let e=this;for(let r=0;r<10;r++){let n=r>0?r:"";delete e[`CONSUME${n}`],delete e[`SUBRULE${n}`],delete e[`OPTION${n}`],delete e[`OR${n}`],delete e[`MANY${n}`],delete e[`MANY_SEP${n}`],delete e[`AT_LEAST_ONE${n}`],delete e[`AT_LEAST_ONE_SEP${n}`]}delete e.consume,delete e.subrule,delete e.option,delete e.or,delete e.many,delete e.atLeastOne,delete e.ACTION,delete e.BACKTRACK,delete e.LA})}ACTION_RECORD(e){}BACKTRACK_RECORD(e,r){return()=>!0}LA_RECORD(e){return jg}topLevelRuleRecord(e,r){try{let n=new as({definition:[],name:e});return n.name=e,this.recordingProdStack.push(n),r.call(this),this.recordingProdStack.pop(),n}catch(n){if(n.KNOWN_RECORDER_ERROR!==!0)try{n.message=n.message+`
+	 This error was thrown during the "grammar recording phase" For more info see:
+	https://chevrotain.io/docs/guide/internals.html#grammar-recording`}catch{throw n}throw n}}optionInternalRecord(e,r){return yx.call(this,ln,e,r)}atLeastOneInternalRecord(e,r){yx.call(this,Ln,r,e)}atLeastOneSepFirstInternalRecord(e,r){yx.call(this,Rn,r,e,Qse)}manyInternalRecord(e,r){yx.call(this,Or,r,e)}manySepFirstInternalRecord(e,r){yx.call(this,wn,r,e,Qse)}orInternalRecord(e,r){return dBe.call(this,e,r)}subruleInternalRecord(e,r,n){if(aE(r),!e||Bt(e,"ruleName")===!1){let l=new Error(`<SUBRULE${Jse(r)}> argument is invalid expecting a Parser method reference but got: <${JSON.stringify(e)}>
+ inside top level rule: <${this.recordingProdStack[0].name}>`);throw l.KNOWN_RECORDER_ERROR=!0,l}let i=ga(this.recordingProdStack),a=e.ruleName,s=new on({idx:r,nonTerminalName:a,label:n?.LABEL,referencedRule:void 0});return i.definition.push(s),this.outputCst?fBe:sE}consumeInternalRecord(e,r,n){if(aE(r),!_N(e)){let s=new Error(`<CONSUME${Jse(r)}> argument is invalid expecting a TokenType reference but got: <${JSON.stringify(e)}>
+ inside top level rule: <${this.recordingProdStack[0].name}>`);throw s.KNOWN_RECORDER_ERROR=!0,s}let i=ga(this.recordingProdStack),a=new kr({idx:r,terminalType:e,label:n?.LABEL});return i.definition.push(a),toe}};o(yx,"recordProd");o(dBe,"recordOrProd");o(Jse,"getIdxSuffix");o(aE,"assertMethodIdxIsValid")});var oE,noe=N(()=>{"use strict";qt();Og();Fs();oE=class{static{o(this,"PerformanceTracer")}initPerformanceTracer(e){if(Bt(e,"traceInitPerf")){let r=e.traceInitPerf,n=typeof r=="number";this.traceInitMaxIdent=n?r:1/0,this.traceInitPerf=n?r>0:r}else this.traceInitMaxIdent=0,this.traceInitPerf=ls.traceInitPerf;this.traceInitIndent=-1}TRACE_INIT(e,r){if(this.traceInitPerf===!0){this.traceInitIndent++;let n=new Array(this.traceInitIndent+1).join("	");this.traceInitIndent<this.traceInitMaxIdent&&console.log(`${n}--> <${e}>`);let{time:i,value:a}=tx(r),s=i>10?console.warn:console.log;return this.traceInitIndent<this.traceInitMaxIdent&&s(`${n}<-- <${e}> time: ${i}ms`),this.traceInitIndent--,a}else return r()}}});function ioe(t,e){e.forEach(r=>{let n=r.prototype;Object.getOwnPropertyNames(n).forEach(i=>{if(i==="constructor")return;let a=Object.getOwnPropertyDescriptor(n,i);a&&(a.get||a.set)?Object.defineProperty(t.prototype,i,a):t.prototype[i]=r.prototype[i]})})}var aoe=N(()=>{"use strict";o(ioe,"applyMixins")});function lE(t=void 0){return function(){return t}}var jg,ls,Kg,zi,vx,xx,Fs=N(()=>{"use strict";qt();Og();Oae();up();Vg();Rse();GN();Bse();Wse();qse();Yse();Xse();jse();Kse();roe();noe();aoe();fx();jg=$u(lo,"",NaN,NaN,NaN,NaN,NaN,NaN);Object.freeze(jg);ls=Object.freeze({recoveryEnabled:!1,maxLookahead:3,dynamicTokensEnabled:!1,outputCst:!0,errorMessageProvider:zu,nodeLocationTracking:"none",traceInitPerf:!1,skipValidations:!1}),Kg=Object.freeze({recoveryValueFunc:o(()=>{},"recoveryValueFunc"),resyncEnabled:!0});(function(t){t[t.INVALID_RULE_NAME=0]="INVALID_RULE_NAME",t[t.DUPLICATE_RULE_NAME=1]="DUPLICATE_RULE_NAME",t[t.INVALID_RULE_OVERRIDE=2]="INVALID_RULE_OVERRIDE",t[t.DUPLICATE_PRODUCTIONS=3]="DUPLICATE_PRODUCTIONS",t[t.UNRESOLVED_SUBRULE_REF=4]="UNRESOLVED_SUBRULE_REF",t[t.LEFT_RECURSION=5]="LEFT_RECURSION",t[t.NONE_LAST_EMPTY_ALT=6]="NONE_LAST_EMPTY_ALT",t[t.AMBIGUOUS_ALTS=7]="AMBIGUOUS_ALTS",t[t.CONFLICT_TOKENS_RULES_NAMESPACE=8]="CONFLICT_TOKENS_RULES_NAMESPACE",t[t.INVALID_TOKEN_NAME=9]="INVALID_TOKEN_NAME",t[t.NO_NON_EMPTY_LOOKAHEAD=10]="NO_NON_EMPTY_LOOKAHEAD",t[t.AMBIGUOUS_PREFIX_ALTS=11]="AMBIGUOUS_PREFIX_ALTS",t[t.TOO_MANY_ALTS=12]="TOO_MANY_ALTS",t[t.CUSTOM_LOOKAHEAD_VALIDATION=13]="CUSTOM_LOOKAHEAD_VALIDATION"})(zi||(zi={}));o(lE,"EMPTY_ALT");vx=class t{static{o(this,"Parser")}static performSelfAnalysis(e){throw Error("The **static** `performSelfAnalysis` method has been deprecated.	\nUse the **instance** method with the same name instead.")}performSelfAnalysis(){this.TRACE_INIT("performSelfAnalysis",()=>{let e;this.selfAnalysisDone=!0;let r=this.className;this.TRACE_INIT("toFastProps",()=>{rx(this)}),this.TRACE_INIT("Grammar Recording",()=>{try{this.enableRecording(),Ae(this.definedRulesNames,i=>{let s=this[i].originalGrammarAction,l;this.TRACE_INIT(`${i} Rule`,()=>{l=this.topLevelRuleRecord(i,s)}),this.gastProductionsCache[i]=l})}finally{this.disableRecording()}});let n=[];if(this.TRACE_INIT("Grammar Resolving",()=>{n=Dse({rules:br(this.gastProductionsCache)}),this.definitionErrors=this.definitionErrors.concat(n)}),this.TRACE_INIT("Grammar Validations",()=>{if(ur(n)&&this.skipValidations===!1){let i=Lse({rules:br(this.gastProductionsCache),tokenTypes:br(this.tokensMap),errMsgProvider:Pl,grammarName:r}),a=Tse({lookaheadStrategy:this.lookaheadStrategy,rules:br(this.gastProductionsCache),tokenTypes:br(this.tokensMap),grammarName:r});this.definitionErrors=this.definitionErrors.concat(i,a)}}),ur(this.definitionErrors)&&(this.recoveryEnabled&&this.TRACE_INIT("computeAllProdsFollows",()=>{let i=Iae(br(this.gastProductionsCache));this.resyncFollows=i}),this.TRACE_INIT("ComputeLookaheadFunctions",()=>{var i,a;(a=(i=this.lookaheadStrategy).initialize)===null||a===void 0||a.call(i,{rules:br(this.gastProductionsCache)}),this.preComputeLookaheadFunctions(br(this.gastProductionsCache))})),!t.DEFER_DEFINITION_ERRORS_HANDLING&&!ur(this.definitionErrors))throw e=Je(this.definitionErrors,i=>i.message),new Error(`Parser Definition Errors detected:
+ ${e.join(`
+-------------------------------
+`)}`)})}constructor(e,r){this.definitionErrors=[],this.selfAnalysisDone=!1;let n=this;if(n.initErrorHandler(r),n.initLexerAdapter(),n.initLooksAhead(r),n.initRecognizerEngine(e,r),n.initRecoverable(r),n.initTreeBuilder(r),n.initContentAssist(),n.initGastRecorder(r),n.initPerformanceTracer(r),Bt(r,"ignoredIssues"))throw new Error(`The <ignoredIssues> IParserConfig property has been deprecated.
+	Please use the <IGNORE_AMBIGUITIES> flag on the relevant DSL method instead.
+	See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#IGNORING_AMBIGUITIES
+	For further details.`);this.skipValidations=Bt(r,"skipValidations")?r.skipValidations:ls.skipValidations}};vx.DEFER_DEFINITION_ERRORS_HANDLING=!1;ioe(vx,[Hk,Xk,Zk,Jk,tE,eE,rE,nE,iE,oE]);xx=class extends vx{static{o(this,"EmbeddedActionsParser")}constructor(e,r=ls){let n=an(r);n.outputCst=!1,super(e,n)}}});var soe=N(()=>{"use strict";os()});var ooe=N(()=>{"use strict"});var loe=N(()=>{"use strict";soe();ooe()});var coe=N(()=>{"use strict";gN()});var cf=N(()=>{"use strict";gN();Fs();ix();up();qg();VN();Vg();Xg();DN();os();os();loe();coe()});function fp(t,e,r){return`${t.name}_${e}_${r}`}function doe(t){let e={decisionMap:{},decisionStates:[],ruleToStartState:new Map,ruleToStopState:new Map,states:[]};bBe(e,t);let r=t.length;for(let n=0;n<r;n++){let i=t[n],a=dp(e,i,i);a!==void 0&&RBe(e,i,a)}return e}function bBe(t,e){let r=e.length;for(let n=0;n<r;n++){let i=e[n],a=aa(t,i,void 0,{type:mBe}),s=aa(t,i,void 0,{type:Jg});a.stop=s,t.ruleToStartState.set(i,a),t.ruleToStopState.set(i,s)}}function poe(t,e,r){return r instanceof kr?QN(t,e,r.terminalType,r):r instanceof on?LBe(t,e,r):r instanceof Tn?SBe(t,e,r):r instanceof ln?CBe(t,e,r):r instanceof Or?wBe(t,e,r):r instanceof wn?TBe(t,e,r):r instanceof Ln?kBe(t,e,r):r instanceof Rn?EBe(t,e,r):dp(t,e,r)}function wBe(t,e,r){let n=aa(t,e,r,{type:hoe});hf(t,n);let i=e1(t,e,n,r,dp(t,e,r));return goe(t,e,r,i)}function TBe(t,e,r){let n=aa(t,e,r,{type:hoe});hf(t,n);let i=e1(t,e,n,r,dp(t,e,r)),a=QN(t,e,r.separator,r);return goe(t,e,r,i,a)}function kBe(t,e,r){let n=aa(t,e,r,{type:uoe});hf(t,n);let i=e1(t,e,n,r,dp(t,e,r));return moe(t,e,r,i)}function EBe(t,e,r){let n=aa(t,e,r,{type:uoe});hf(t,n);let i=e1(t,e,n,r,dp(t,e,r)),a=QN(t,e,r.separator,r);return moe(t,e,r,i,a)}function SBe(t,e,r){let n=aa(t,e,r,{type:uf});hf(t,n);let i=Je(r.definition,s=>poe(t,e,s));return e1(t,e,n,r,...i)}function CBe(t,e,r){let n=aa(t,e,r,{type:uf});hf(t,n);let i=e1(t,e,n,r,dp(t,e,r));return ABe(t,e,r,i)}function dp(t,e,r){let n=Yr(Je(r.definition,i=>poe(t,e,i)),i=>i!==void 0);return n.length===1?n[0]:n.length===0?void 0:DBe(t,n)}function moe(t,e,r,n,i){let a=n.left,s=n.right,l=aa(t,e,r,{type:xBe});hf(t,l);let u=aa(t,e,r,{type:foe});return a.loopback=l,u.loopback=l,t.decisionMap[fp(e,i?"RepetitionMandatoryWithSeparator":"RepetitionMandatory",r.idx)]=l,Ai(s,l),i===void 0?(Ai(l,a),Ai(l,u)):(Ai(l,u),Ai(l,i.left),Ai(i.right,a)),{left:a,right:u}}function goe(t,e,r,n,i){let a=n.left,s=n.right,l=aa(t,e,r,{type:vBe});hf(t,l);let u=aa(t,e,r,{type:foe}),h=aa(t,e,r,{type:yBe});return l.loopback=h,u.loopback=h,Ai(l,a),Ai(l,u),Ai(s,h),i!==void 0?(Ai(h,u),Ai(h,i.left),Ai(i.right,a)):Ai(h,l),t.decisionMap[fp(e,i?"RepetitionWithSeparator":"Repetition",r.idx)]=l,{left:l,right:u}}function ABe(t,e,r,n){let i=n.left,a=n.right;return Ai(i,a),t.decisionMap[fp(e,"Option",r.idx)]=i,n}function hf(t,e){return t.decisionStates.push(e),e.decision=t.decisionStates.length-1,e.decision}function e1(t,e,r,n,...i){let a=aa(t,e,n,{type:gBe,start:r});r.end=a;for(let l of i)l!==void 0?(Ai(r,l.left),Ai(l.right,a)):Ai(r,a);let s={left:r,right:a};return t.decisionMap[fp(e,_Be(n),n.idx)]=r,s}function _Be(t){if(t instanceof Tn)return"Alternation";if(t instanceof ln)return"Option";if(t instanceof Or)return"Repetition";if(t instanceof wn)return"RepetitionWithSeparator";if(t instanceof Ln)return"RepetitionMandatory";if(t instanceof Rn)return"RepetitionMandatoryWithSeparator";throw new Error("Invalid production type encountered")}function DBe(t,e){let r=e.length;for(let a=0;a<r-1;a++){let s=e[a],l;s.left.transitions.length===1&&(l=s.left.transitions[0]);let u=l instanceof Zg,h=l,f=e[a+1].left;s.left.type===uf&&s.right.type===uf&&l!==void 0&&(u&&h.followState===s.right||l.target===s.right)?(u?h.followState=f:l.target=f,NBe(t,s.right)):Ai(s.right,f)}let n=e[0],i=e[r-1];return{left:n.left,right:i.right}}function QN(t,e,r,n){let i=aa(t,e,n,{type:uf}),a=aa(t,e,n,{type:uf});return ZN(i,new Qg(a,r)),{left:i,right:a}}function LBe(t,e,r){let n=r.referencedRule,i=t.ruleToStartState.get(n),a=aa(t,e,r,{type:uf}),s=aa(t,e,r,{type:uf}),l=new Zg(i,n,s);return ZN(a,l),{left:a,right:s}}function RBe(t,e,r){let n=t.ruleToStartState.get(e);Ai(n,r.left);let i=t.ruleToStopState.get(e);return Ai(r.right,i),{left:n,right:i}}function Ai(t,e){let r=new wx(e);ZN(t,r)}function aa(t,e,r,n){let i=Object.assign({atn:t,production:r,epsilonOnlyTransitions:!1,rule:e,transitions:[],nextTokenWithinRule:[],stateNumber:t.states.length},n);return t.states.push(i),i}function ZN(t,e){t.transitions.length===0&&(t.epsilonOnlyTransitions=e.isEpsilon()),t.transitions.push(e)}function NBe(t,e){t.states.splice(t.states.indexOf(e),1)}var uf,mBe,uoe,hoe,Jg,gBe,yBe,vBe,xBe,foe,bx,Qg,wx,Zg,yoe=N(()=>{"use strict";Im();DL();cf();o(fp,"buildATNKey");uf=1,mBe=2,uoe=4,hoe=5,Jg=7,gBe=8,yBe=9,vBe=10,xBe=11,foe=12,bx=class{static{o(this,"AbstractTransition")}constructor(e){this.target=e}isEpsilon(){return!1}},Qg=class extends bx{static{o(this,"AtomTransition")}constructor(e,r){super(e),this.tokenType=r}},wx=class extends bx{static{o(this,"EpsilonTransition")}constructor(e){super(e)}isEpsilon(){return!0}},Zg=class extends bx{static{o(this,"RuleTransition")}constructor(e,r,n){super(e),this.rule=r,this.followState=n}isEpsilon(){return!0}};o(doe,"createATN");o(bBe,"createRuleStartAndStopATNStates");o(poe,"atom");o(wBe,"repetition");o(TBe,"repetitionSep");o(kBe,"repetitionMandatory");o(EBe,"repetitionMandatorySep");o(SBe,"alternation");o(CBe,"option");o(dp,"block");o(moe,"plus");o(goe,"star");o(ABe,"optional");o(hf,"defineDecisionState");o(e1,"makeAlts");o(_Be,"getProdType");o(DBe,"makeBlock");o(QN,"tokenRef");o(LBe,"ruleRef");o(RBe,"buildRuleHandle");o(Ai,"epsilon");o(aa,"newState");o(ZN,"addTransition");o(NBe,"removeState")});function JN(t,e=!0){return`${e?`a${t.alt}`:""}s${t.state.stateNumber}:${t.stack.map(r=>r.stateNumber.toString()).join("_")}`}var Tx,t1,voe=N(()=>{"use strict";Im();Tx={},t1=class{static{o(this,"ATNConfigSet")}constructor(){this.map={},this.configs=[]}get size(){return this.configs.length}finalize(){this.map={}}add(e){let r=JN(e);r in this.map||(this.map[r]=this.configs.length,this.configs.push(e))}get elements(){return this.configs}get alts(){return Je(this.configs,e=>e.alt)}get key(){let e="";for(let r in this.map)e+=r+":";return e}};o(JN,"getATNConfigKey")});function MBe(t,e){let r={};return n=>{let i=n.toString(),a=r[i];return a!==void 0||(a={atnStartState:t,decision:e,states:{}},r[i]=a),a}}function boe(t,e=!0){let r=new Set;for(let n of t){let i=new Set;for(let a of n){if(a===void 0){if(e)break;return!1}let s=[a.tokenTypeIdx].concat(a.categoryMatches);for(let l of s)if(r.has(l)){if(!i.has(l))return!1}else r.add(l),i.add(l)}}return!0}function IBe(t){let e=t.decisionStates.length,r=Array(e);for(let n=0;n<e;n++)r[n]=MBe(t.decisionStates[n],n);return r}function eM(t,e,r,n){let i=t[e](r),a=i.start;if(a===void 0){let l=WBe(i.atnStartState);a=koe(i,Toe(l)),i.start=a}return OBe.apply(this,[i,a,r,n])}function OBe(t,e,r,n){let i=e,a=1,s=[],l=this.LA(a++);for(;;){let u=GBe(i,l);if(u===void 0&&(u=PBe.apply(this,[t,i,l,a,r,n])),u===Tx)return zBe(s,i,l);if(u.isAcceptState===!0)return u.prediction;i=u,s.push(l),l=this.LA(a++)}}function PBe(t,e,r,n,i,a){let s=VBe(e.configs,r,i);if(s.size===0)return woe(t,e,r,Tx),Tx;let l=Toe(s),u=HBe(s,i);if(u!==void 0)l.isAcceptState=!0,l.prediction=u,l.configs.uniqueAlt=u;else if(jBe(s)){let h=Dl(s.alts);l.isAcceptState=!0,l.prediction=h,l.configs.uniqueAlt=h,BBe.apply(this,[t,n,s.alts,a])}return l=woe(t,e,r,l),l}function BBe(t,e,r,n){let i=[];for(let h=1;h<=e;h++)i.push(this.LA(h).tokenType);let a=t.atnStartState,s=a.rule,l=a.production,u=FBe({topLevelRule:s,ambiguityIndices:r,production:l,prefixPath:i});n(u)}function FBe(t){let e=Je(t.prefixPath,i=>Fu(i)).join(", "),r=t.production.idx===0?"":t.production.idx,n=`Ambiguous Alternatives Detected: <${t.ambiguityIndices.join(", ")}> in <${$Be(t.production)}${r}> inside <${t.topLevelRule.name}> Rule,
+<${e}> may appears as a prefix path in all these alternatives.
+`;return n=n+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES
+For Further details.`,n}function $Be(t){if(t instanceof on)return"SUBRULE";if(t instanceof ln)return"OPTION";if(t instanceof Tn)return"OR";if(t instanceof Ln)return"AT_LEAST_ONE";if(t instanceof Rn)return"AT_LEAST_ONE_SEP";if(t instanceof wn)return"MANY_SEP";if(t instanceof Or)return"MANY";if(t instanceof kr)return"CONSUME";throw Error("non exhaustive match")}function zBe(t,e,r){let n=ya(e.configs.elements,a=>a.state.transitions),i=Qre(n.filter(a=>a instanceof Qg).map(a=>a.tokenType),a=>a.tokenTypeIdx);return{actualToken:r,possibleTokenTypes:i,tokenPath:t}}function GBe(t,e){return t.edges[e.tokenTypeIdx]}function VBe(t,e,r){let n=new t1,i=[];for(let s of t.elements){if(r.is(s.alt)===!1)continue;if(s.state.type===Jg){i.push(s);continue}let l=s.state.transitions.length;for(let u=0;u<l;u++){let h=s.state.transitions[u],f=UBe(h,e);f!==void 0&&n.add({state:f,alt:s.alt,stack:s.stack})}}let a;if(i.length===0&&n.size===1&&(a=n),a===void 0){a=new t1;for(let s of n.elements)uE(s,a)}if(i.length>0&&!YBe(a))for(let s of i)a.add(s);return a}function UBe(t,e){if(t instanceof Qg&&sx(e,t.tokenType))return t.target}function HBe(t,e){let r;for(let n of t.elements)if(e.is(n.alt)===!0){if(r===void 0)r=n.alt;else if(r!==n.alt)return}return r}function Toe(t){return{configs:t,edges:{},isAcceptState:!1,prediction:-1}}function woe(t,e,r,n){return n=koe(t,n),e.edges[r.tokenTypeIdx]=n,n}function koe(t,e){if(e===Tx)return e;let r=e.configs.key,n=t.states[r];return n!==void 0?n:(e.configs.finalize(),t.states[r]=e,e)}function WBe(t){let e=new t1,r=t.transitions.length;for(let n=0;n<r;n++){let a={state:t.transitions[n].target,alt:n,stack:[]};uE(a,e)}return e}function uE(t,e){let r=t.state;if(r.type===Jg){if(t.stack.length>0){let i=[...t.stack],s={state:i.pop(),alt:t.alt,stack:i};uE(s,e)}else e.add(t);return}r.epsilonOnlyTransitions||e.add(t);let n=r.transitions.length;for(let i=0;i<n;i++){let a=r.transitions[i],s=qBe(t,a);s!==void 0&&uE(s,e)}}function qBe(t,e){if(e instanceof wx)return{state:e.target,alt:t.alt,stack:t.stack};if(e instanceof Zg){let r=[...t.stack,e.followState];return{state:e.target,alt:t.alt,stack:r}}}function YBe(t){for(let e of t.elements)if(e.state.type===Jg)return!0;return!1}function XBe(t){for(let e of t.elements)if(e.state.type!==Jg)return!1;return!0}function jBe(t){if(XBe(t))return!0;let e=KBe(t.elements);return QBe(e)&&!ZBe(e)}function KBe(t){let e=new Map;for(let r of t){let n=JN(r,!1),i=e.get(n);i===void 0&&(i={},e.set(n,i)),i[r.alt]=!0}return e}function QBe(t){for(let e of Array.from(t.values()))if(Object.keys(e).length>1)return!0;return!1}function ZBe(t){for(let e of Array.from(t.values()))if(Object.keys(e).length===1)return!0;return!1}var cE,xoe,kx,Eoe=N(()=>{"use strict";cf();yoe();voe();BL();RL();Zre();Im();uT();$T();HT();GL();o(MBe,"createDFACache");cE=class{static{o(this,"PredicateSet")}constructor(){this.predicates=[]}is(e){return e>=this.predicates.length||this.predicates[e]}set(e,r){this.predicates[e]=r}toString(){let e="",r=this.predicates.length;for(let n=0;n<r;n++)e+=this.predicates[n]===!0?"1":"0";return e}},xoe=new cE,kx=class extends Gu{static{o(this,"LLStarLookaheadStrategy")}constructor(e){var r;super(),this.logging=(r=e?.logging)!==null&&r!==void 0?r:n=>console.log(n)}initialize(e){this.atn=doe(e.rules),this.dfas=IBe(this.atn)}validateAmbiguousAlternationAlternatives(){return[]}validateEmptyOrAlternatives(){return[]}buildLookaheadForAlternation(e){let{prodOccurrence:r,rule:n,hasPredicates:i,dynamicTokensEnabled:a}=e,s=this.dfas,l=this.logging,u=fp(n,"Alternation",r),f=this.atn.decisionMap[u].decision,d=Je(Gk({maxLookahead:1,occurrence:r,prodType:"Alternation",rule:n}),p=>Je(p,m=>m[0]));if(boe(d,!1)&&!a){let p=Xr(d,(m,g,y)=>(Ae(g,v=>{v&&(m[v.tokenTypeIdx]=y,Ae(v.categoryMatches,x=>{m[x]=y}))}),m),{});return i?function(m){var g;let y=this.LA(1),v=p[y.tokenTypeIdx];if(m!==void 0&&v!==void 0){let x=(g=m[v])===null||g===void 0?void 0:g.GATE;if(x!==void 0&&x.call(this)===!1)return}return v}:function(){let m=this.LA(1);return p[m.tokenTypeIdx]}}else return i?function(p){let m=new cE,g=p===void 0?0:p.length;for(let v=0;v<g;v++){let x=p?.[v].GATE;m.set(v,x===void 0||x.call(this))}let y=eM.call(this,s,f,m,l);return typeof y=="number"?y:void 0}:function(){let p=eM.call(this,s,f,xoe,l);return typeof p=="number"?p:void 0}}buildLookaheadForOptional(e){let{prodOccurrence:r,rule:n,prodType:i,dynamicTokensEnabled:a}=e,s=this.dfas,l=this.logging,u=fp(n,i,r),f=this.atn.decisionMap[u].decision,d=Je(Gk({maxLookahead:1,occurrence:r,prodType:i,rule:n}),p=>Je(p,m=>m[0]));if(boe(d)&&d[0][0]&&!a){let p=d[0],m=qr(p);if(m.length===1&&ur(m[0].categoryMatches)){let y=m[0].tokenTypeIdx;return function(){return this.LA(1).tokenTypeIdx===y}}else{let g=Xr(m,(y,v)=>(v!==void 0&&(y[v.tokenTypeIdx]=!0,Ae(v.categoryMatches,x=>{y[x]=!0})),y),{});return function(){let y=this.LA(1);return g[y.tokenTypeIdx]===!0}}}return function(){let p=eM.call(this,s,f,xoe,l);return typeof p=="object"?!1:p===0}}};o(boe,"isLL1Sequence");o(IBe,"initATNSimulator");o(eM,"adaptivePredict");o(OBe,"performLookahead");o(PBe,"computeLookaheadTarget");o(BBe,"reportLookaheadAmbiguity");o(FBe,"buildAmbiguityError");o($Be,"getProductionDslName");o(zBe,"buildAdaptivePredictError");o(GBe,"getExistingTargetState");o(VBe,"computeReachSet");o(UBe,"getReachableTarget");o(HBe,"getUniqueAlt");o(Toe,"newDFAState");o(woe,"addDFAEdge");o(koe,"addDFAState");o(WBe,"computeStartState");o(uE,"closure");o(qBe,"getEpsilonTarget");o(YBe,"hasConfigInRuleStopState");o(XBe,"allConfigsInRuleStopStates");o(jBe,"hasConflictTerminatingPrediction");o(KBe,"getConflictingAltSets");o(QBe,"hasConflictingAltSet");o(ZBe,"hasStateAssociatedWithOneAlt")});var Soe=N(()=>{"use strict";Eoe()});var Coe,tM,Aoe,hE,jr,Pr,fE,_oe,rM,Doe,Loe,Roe,Noe,nM,Moe,Ioe,Ooe,dE,r1,n1,iM,i1,Poe,aM,sM,oM,lM,cM,Boe,Foe,uM,$oe,hM,Ex,zoe,Goe,Voe,Uoe,Hoe,Woe,qoe,Yoe,pE,Xoe,joe,Koe,Qoe,Zoe,Joe,ele,tle,rle,nle,ile,mE,ale,sle,ole,lle,cle,ule,hle,fle,dle,ple,mle,gle,yle,fM,dM,vle,xle,ble,wle,Tle,kle,Ele,Sle,Cle,pM,Fe,mM=N(()=>{"use strict";(function(t){function e(r){return typeof r=="string"}o(e,"is"),t.is=e})(Coe||(Coe={}));(function(t){function e(r){return typeof r=="string"}o(e,"is"),t.is=e})(tM||(tM={}));(function(t){t.MIN_VALUE=-2147483648,t.MAX_VALUE=2147483647;function e(r){return typeof r=="number"&&t.MIN_VALUE<=r&&r<=t.MAX_VALUE}o(e,"is"),t.is=e})(Aoe||(Aoe={}));(function(t){t.MIN_VALUE=0,t.MAX_VALUE=2147483647;function e(r){return typeof r=="number"&&t.MIN_VALUE<=r&&r<=t.MAX_VALUE}o(e,"is"),t.is=e})(hE||(hE={}));(function(t){function e(n,i){return n===Number.MAX_VALUE&&(n=hE.MAX_VALUE),i===Number.MAX_VALUE&&(i=hE.MAX_VALUE),{line:n,character:i}}o(e,"create"),t.create=e;function r(n){let i=n;return Fe.objectLiteral(i)&&Fe.uinteger(i.line)&&Fe.uinteger(i.character)}o(r,"is"),t.is=r})(jr||(jr={}));(function(t){function e(n,i,a,s){if(Fe.uinteger(n)&&Fe.uinteger(i)&&Fe.uinteger(a)&&Fe.uinteger(s))return{start:jr.create(n,i),end:jr.create(a,s)};if(jr.is(n)&&jr.is(i))return{start:n,end:i};throw new Error(`Range#create called with invalid arguments[${n}, ${i}, ${a}, ${s}]`)}o(e,"create"),t.create=e;function r(n){let i=n;return Fe.objectLiteral(i)&&jr.is(i.start)&&jr.is(i.end)}o(r,"is"),t.is=r})(Pr||(Pr={}));(function(t){function e(n,i){return{uri:n,range:i}}o(e,"create"),t.create=e;function r(n){let i=n;return Fe.objectLiteral(i)&&Pr.is(i.range)&&(Fe.string(i.uri)||Fe.undefined(i.uri))}o(r,"is"),t.is=r})(fE||(fE={}));(function(t){function e(n,i,a,s){return{targetUri:n,targetRange:i,targetSelectionRange:a,originSelectionRange:s}}o(e,"create"),t.create=e;function r(n){let i=n;return Fe.objectLiteral(i)&&Pr.is(i.targetRange)&&Fe.string(i.targetUri)&&Pr.is(i.targetSelectionRange)&&(Pr.is(i.originSelectionRange)||Fe.undefined(i.originSelectionRange))}o(r,"is"),t.is=r})(_oe||(_oe={}));(function(t){function e(n,i,a,s){return{red:n,green:i,blue:a,alpha:s}}o(e,"create"),t.create=e;function r(n){let i=n;return Fe.objectLiteral(i)&&Fe.numberRange(i.red,0,1)&&Fe.numberRange(i.green,0,1)&&Fe.numberRange(i.blue,0,1)&&Fe.numberRange(i.alpha,0,1)}o(r,"is"),t.is=r})(rM||(rM={}));(function(t){function e(n,i){return{range:n,color:i}}o(e,"create"),t.create=e;function r(n){let i=n;return Fe.objectLiteral(i)&&Pr.is(i.range)&&rM.is(i.color)}o(r,"is"),t.is=r})(Doe||(Doe={}));(function(t){function e(n,i,a){return{label:n,textEdit:i,additionalTextEdits:a}}o(e,"create"),t.create=e;function r(n){let i=n;return Fe.objectLiteral(i)&&Fe.string(i.label)&&(Fe.undefined(i.textEdit)||n1.is(i))&&(Fe.undefined(i.additionalTextEdits)||Fe.typedArray(i.additionalTextEdits,n1.is))}o(r,"is"),t.is=r})(Loe||(Loe={}));(function(t){t.Comment="comment",t.Imports="imports",t.Region="region"})(Roe||(Roe={}));(function(t){function e(n,i,a,s,l,u){let h={startLine:n,endLine:i};return Fe.defined(a)&&(h.startCharacter=a),Fe.defined(s)&&(h.endCharacter=s),Fe.defined(l)&&(h.kind=l),Fe.defined(u)&&(h.collapsedText=u),h}o(e,"create"),t.create=e;function r(n){let i=n;return Fe.objectLiteral(i)&&Fe.uinteger(i.startLine)&&Fe.uinteger(i.startLine)&&(Fe.undefined(i.startCharacter)||Fe.uinteger(i.startCharacter))&&(Fe.undefined(i.endCharacter)||Fe.uinteger(i.endCharacter))&&(Fe.undefined(i.kind)||Fe.string(i.kind))}o(r,"is"),t.is=r})(Noe||(Noe={}));(function(t){function e(n,i){return{location:n,message:i}}o(e,"create"),t.create=e;function r(n){let i=n;return Fe.defined(i)&&fE.is(i.location)&&Fe.string(i.message)}o(r,"is"),t.is=r})(nM||(nM={}));(function(t){t.Error=1,t.Warning=2,t.Information=3,t.Hint=4})(Moe||(Moe={}));(function(t){t.Unnecessary=1,t.Deprecated=2})(Ioe||(Ioe={}));(function(t){function e(r){let n=r;return Fe.objectLiteral(n)&&Fe.string(n.href)}o(e,"is"),t.is=e})(Ooe||(Ooe={}));(function(t){function e(n,i,a,s,l,u){let h={range:n,message:i};return Fe.defined(a)&&(h.severity=a),Fe.defined(s)&&(h.code=s),Fe.defined(l)&&(h.source=l),Fe.defined(u)&&(h.relatedInformation=u),h}o(e,"create"),t.create=e;function r(n){var i;let a=n;return Fe.defined(a)&&Pr.is(a.range)&&Fe.string(a.message)&&(Fe.number(a.severity)||Fe.undefined(a.severity))&&(Fe.integer(a.code)||Fe.string(a.code)||Fe.undefined(a.code))&&(Fe.undefined(a.codeDescription)||Fe.string((i=a.codeDescription)===null||i===void 0?void 0:i.href))&&(Fe.string(a.source)||Fe.undefined(a.source))&&(Fe.undefined(a.relatedInformation)||Fe.typedArray(a.relatedInformation,nM.is))}o(r,"is"),t.is=r})(dE||(dE={}));(function(t){function e(n,i,...a){let s={title:n,command:i};return Fe.defined(a)&&a.length>0&&(s.arguments=a),s}o(e,"create"),t.create=e;function r(n){let i=n;return Fe.defined(i)&&Fe.string(i.title)&&Fe.string(i.command)}o(r,"is"),t.is=r})(r1||(r1={}));(function(t){function e(a,s){return{range:a,newText:s}}o(e,"replace"),t.replace=e;function r(a,s){return{range:{start:a,end:a},newText:s}}o(r,"insert"),t.insert=r;function n(a){return{range:a,newText:""}}o(n,"del"),t.del=n;function i(a){let s=a;return Fe.objectLiteral(s)&&Fe.string(s.newText)&&Pr.is(s.range)}o(i,"is"),t.is=i})(n1||(n1={}));(function(t){function e(n,i,a){let s={label:n};return i!==void 0&&(s.needsConfirmation=i),a!==void 0&&(s.description=a),s}o(e,"create"),t.create=e;function r(n){let i=n;return Fe.objectLiteral(i)&&Fe.string(i.label)&&(Fe.boolean(i.needsConfirmation)||i.needsConfirmation===void 0)&&(Fe.string(i.description)||i.description===void 0)}o(r,"is"),t.is=r})(iM||(iM={}));(function(t){function e(r){let n=r;return Fe.string(n)}o(e,"is"),t.is=e})(i1||(i1={}));(function(t){function e(a,s,l){return{range:a,newText:s,annotationId:l}}o(e,"replace"),t.replace=e;function r(a,s,l){return{range:{start:a,end:a},newText:s,annotationId:l}}o(r,"insert"),t.insert=r;function n(a,s){return{range:a,newText:"",annotationId:s}}o(n,"del"),t.del=n;function i(a){let s=a;return n1.is(s)&&(iM.is(s.annotationId)||i1.is(s.annotationId))}o(i,"is"),t.is=i})(Poe||(Poe={}));(function(t){function e(n,i){return{textDocument:n,edits:i}}o(e,"create"),t.create=e;function r(n){let i=n;return Fe.defined(i)&&uM.is(i.textDocument)&&Array.isArray(i.edits)}o(r,"is"),t.is=r})(aM||(aM={}));(function(t){function e(n,i,a){let s={kind:"create",uri:n};return i!==void 0&&(i.overwrite!==void 0||i.ignoreIfExists!==void 0)&&(s.options=i),a!==void 0&&(s.annotationId=a),s}o(e,"create"),t.create=e;function r(n){let i=n;return i&&i.kind==="create"&&Fe.string(i.uri)&&(i.options===void 0||(i.options.overwrite===void 0||Fe.boolean(i.options.overwrite))&&(i.options.ignoreIfExists===void 0||Fe.boolean(i.options.ignoreIfExists)))&&(i.annotationId===void 0||i1.is(i.annotationId))}o(r,"is"),t.is=r})(sM||(sM={}));(function(t){function e(n,i,a,s){let l={kind:"rename",oldUri:n,newUri:i};return a!==void 0&&(a.overwrite!==void 0||a.ignoreIfExists!==void 0)&&(l.options=a),s!==void 0&&(l.annotationId=s),l}o(e,"create"),t.create=e;function r(n){let i=n;return i&&i.kind==="rename"&&Fe.string(i.oldUri)&&Fe.string(i.newUri)&&(i.options===void 0||(i.options.overwrite===void 0||Fe.boolean(i.options.overwrite))&&(i.options.ignoreIfExists===void 0||Fe.boolean(i.options.ignoreIfExists)))&&(i.annotationId===void 0||i1.is(i.annotationId))}o(r,"is"),t.is=r})(oM||(oM={}));(function(t){function e(n,i,a){let s={kind:"delete",uri:n};return i!==void 0&&(i.recursive!==void 0||i.ignoreIfNotExists!==void 0)&&(s.options=i),a!==void 0&&(s.annotationId=a),s}o(e,"create"),t.create=e;function r(n){let i=n;return i&&i.kind==="delete"&&Fe.string(i.uri)&&(i.options===void 0||(i.options.recursive===void 0||Fe.boolean(i.options.recursive))&&(i.options.ignoreIfNotExists===void 0||Fe.boolean(i.options.ignoreIfNotExists)))&&(i.annotationId===void 0||i1.is(i.annotationId))}o(r,"is"),t.is=r})(lM||(lM={}));(function(t){function e(r){let n=r;return n&&(n.changes!==void 0||n.documentChanges!==void 0)&&(n.documentChanges===void 0||n.documentChanges.every(i=>Fe.string(i.kind)?sM.is(i)||oM.is(i)||lM.is(i):aM.is(i)))}o(e,"is"),t.is=e})(cM||(cM={}));(function(t){function e(n){return{uri:n}}o(e,"create"),t.create=e;function r(n){let i=n;return Fe.defined(i)&&Fe.string(i.uri)}o(r,"is"),t.is=r})(Boe||(Boe={}));(function(t){function e(n,i){return{uri:n,version:i}}o(e,"create"),t.create=e;function r(n){let i=n;return Fe.defined(i)&&Fe.string(i.uri)&&Fe.integer(i.version)}o(r,"is"),t.is=r})(Foe||(Foe={}));(function(t){function e(n,i){return{uri:n,version:i}}o(e,"create"),t.create=e;function r(n){let i=n;return Fe.defined(i)&&Fe.string(i.uri)&&(i.version===null||Fe.integer(i.version))}o(r,"is"),t.is=r})(uM||(uM={}));(function(t){function e(n,i,a,s){return{uri:n,languageId:i,version:a,text:s}}o(e,"create"),t.create=e;function r(n){let i=n;return Fe.defined(i)&&Fe.string(i.uri)&&Fe.string(i.languageId)&&Fe.integer(i.version)&&Fe.string(i.text)}o(r,"is"),t.is=r})($oe||($oe={}));(function(t){t.PlainText="plaintext",t.Markdown="markdown";function e(r){let n=r;return n===t.PlainText||n===t.Markdown}o(e,"is"),t.is=e})(hM||(hM={}));(function(t){function e(r){let n=r;return Fe.objectLiteral(r)&&hM.is(n.kind)&&Fe.string(n.value)}o(e,"is"),t.is=e})(Ex||(Ex={}));(function(t){t.Text=1,t.Method=2,t.Function=3,t.Constructor=4,t.Field=5,t.Variable=6,t.Class=7,t.Interface=8,t.Module=9,t.Property=10,t.Unit=11,t.Value=12,t.Enum=13,t.Keyword=14,t.Snippet=15,t.Color=16,t.File=17,t.Reference=18,t.Folder=19,t.EnumMember=20,t.Constant=21,t.Struct=22,t.Event=23,t.Operator=24,t.TypeParameter=25})(zoe||(zoe={}));(function(t){t.PlainText=1,t.Snippet=2})(Goe||(Goe={}));(function(t){t.Deprecated=1})(Voe||(Voe={}));(function(t){function e(n,i,a){return{newText:n,insert:i,replace:a}}o(e,"create"),t.create=e;function r(n){let i=n;return i&&Fe.string(i.newText)&&Pr.is(i.insert)&&Pr.is(i.replace)}o(r,"is"),t.is=r})(Uoe||(Uoe={}));(function(t){t.asIs=1,t.adjustIndentation=2})(Hoe||(Hoe={}));(function(t){function e(r){let n=r;return n&&(Fe.string(n.detail)||n.detail===void 0)&&(Fe.string(n.description)||n.description===void 0)}o(e,"is"),t.is=e})(Woe||(Woe={}));(function(t){function e(r){return{label:r}}o(e,"create"),t.create=e})(qoe||(qoe={}));(function(t){function e(r,n){return{items:r||[],isIncomplete:!!n}}o(e,"create"),t.create=e})(Yoe||(Yoe={}));(function(t){function e(n){return n.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}o(e,"fromPlainText"),t.fromPlainText=e;function r(n){let i=n;return Fe.string(i)||Fe.objectLiteral(i)&&Fe.string(i.language)&&Fe.string(i.value)}o(r,"is"),t.is=r})(pE||(pE={}));(function(t){function e(r){let n=r;return!!n&&Fe.objectLiteral(n)&&(Ex.is(n.contents)||pE.is(n.contents)||Fe.typedArray(n.contents,pE.is))&&(r.range===void 0||Pr.is(r.range))}o(e,"is"),t.is=e})(Xoe||(Xoe={}));(function(t){function e(r,n){return n?{label:r,documentation:n}:{label:r}}o(e,"create"),t.create=e})(joe||(joe={}));(function(t){function e(r,n,...i){let a={label:r};return Fe.defined(n)&&(a.documentation=n),Fe.defined(i)?a.parameters=i:a.parameters=[],a}o(e,"create"),t.create=e})(Koe||(Koe={}));(function(t){t.Text=1,t.Read=2,t.Write=3})(Qoe||(Qoe={}));(function(t){function e(r,n){let i={range:r};return Fe.number(n)&&(i.kind=n),i}o(e,"create"),t.create=e})(Zoe||(Zoe={}));(function(t){t.File=1,t.Module=2,t.Namespace=3,t.Package=4,t.Class=5,t.Method=6,t.Property=7,t.Field=8,t.Constructor=9,t.Enum=10,t.Interface=11,t.Function=12,t.Variable=13,t.Constant=14,t.String=15,t.Number=16,t.Boolean=17,t.Array=18,t.Object=19,t.Key=20,t.Null=21,t.EnumMember=22,t.Struct=23,t.Event=24,t.Operator=25,t.TypeParameter=26})(Joe||(Joe={}));(function(t){t.Deprecated=1})(ele||(ele={}));(function(t){function e(r,n,i,a,s){let l={name:r,kind:n,location:{uri:a,range:i}};return s&&(l.containerName=s),l}o(e,"create"),t.create=e})(tle||(tle={}));(function(t){function e(r,n,i,a){return a!==void 0?{name:r,kind:n,location:{uri:i,range:a}}:{name:r,kind:n,location:{uri:i}}}o(e,"create"),t.create=e})(rle||(rle={}));(function(t){function e(n,i,a,s,l,u){let h={name:n,detail:i,kind:a,range:s,selectionRange:l};return u!==void 0&&(h.children=u),h}o(e,"create"),t.create=e;function r(n){let i=n;return i&&Fe.string(i.name)&&Fe.number(i.kind)&&Pr.is(i.range)&&Pr.is(i.selectionRange)&&(i.detail===void 0||Fe.string(i.detail))&&(i.deprecated===void 0||Fe.boolean(i.deprecated))&&(i.children===void 0||Array.isArray(i.children))&&(i.tags===void 0||Array.isArray(i.tags))}o(r,"is"),t.is=r})(nle||(nle={}));(function(t){t.Empty="",t.QuickFix="quickfix",t.Refactor="refactor",t.RefactorExtract="refactor.extract",t.RefactorInline="refactor.inline",t.RefactorRewrite="refactor.rewrite",t.Source="source",t.SourceOrganizeImports="source.organizeImports",t.SourceFixAll="source.fixAll"})(ile||(ile={}));(function(t){t.Invoked=1,t.Automatic=2})(mE||(mE={}));(function(t){function e(n,i,a){let s={diagnostics:n};return i!=null&&(s.only=i),a!=null&&(s.triggerKind=a),s}o(e,"create"),t.create=e;function r(n){let i=n;return Fe.defined(i)&&Fe.typedArray(i.diagnostics,dE.is)&&(i.only===void 0||Fe.typedArray(i.only,Fe.string))&&(i.triggerKind===void 0||i.triggerKind===mE.Invoked||i.triggerKind===mE.Automatic)}o(r,"is"),t.is=r})(ale||(ale={}));(function(t){function e(n,i,a){let s={title:n},l=!0;return typeof i=="string"?(l=!1,s.kind=i):r1.is(i)?s.command=i:s.edit=i,l&&a!==void 0&&(s.kind=a),s}o(e,"create"),t.create=e;function r(n){let i=n;return i&&Fe.string(i.title)&&(i.diagnostics===void 0||Fe.typedArray(i.diagnostics,dE.is))&&(i.kind===void 0||Fe.string(i.kind))&&(i.edit!==void 0||i.command!==void 0)&&(i.command===void 0||r1.is(i.command))&&(i.isPreferred===void 0||Fe.boolean(i.isPreferred))&&(i.edit===void 0||cM.is(i.edit))}o(r,"is"),t.is=r})(sle||(sle={}));(function(t){function e(n,i){let a={range:n};return Fe.defined(i)&&(a.data=i),a}o(e,"create"),t.create=e;function r(n){let i=n;return Fe.defined(i)&&Pr.is(i.range)&&(Fe.undefined(i.command)||r1.is(i.command))}o(r,"is"),t.is=r})(ole||(ole={}));(function(t){function e(n,i){return{tabSize:n,insertSpaces:i}}o(e,"create"),t.create=e;function r(n){let i=n;return Fe.defined(i)&&Fe.uinteger(i.tabSize)&&Fe.boolean(i.insertSpaces)}o(r,"is"),t.is=r})(lle||(lle={}));(function(t){function e(n,i,a){return{range:n,target:i,data:a}}o(e,"create"),t.create=e;function r(n){let i=n;return Fe.defined(i)&&Pr.is(i.range)&&(Fe.undefined(i.target)||Fe.string(i.target))}o(r,"is"),t.is=r})(cle||(cle={}));(function(t){function e(n,i){return{range:n,parent:i}}o(e,"create"),t.create=e;function r(n){let i=n;return Fe.objectLiteral(i)&&Pr.is(i.range)&&(i.parent===void 0||t.is(i.parent))}o(r,"is"),t.is=r})(ule||(ule={}));(function(t){t.namespace="namespace",t.type="type",t.class="class",t.enum="enum",t.interface="interface",t.struct="struct",t.typeParameter="typeParameter",t.parameter="parameter",t.variable="variable",t.property="property",t.enumMember="enumMember",t.event="event",t.function="function",t.method="method",t.macro="macro",t.keyword="keyword",t.modifier="modifier",t.comment="comment",t.string="string",t.number="number",t.regexp="regexp",t.operator="operator",t.decorator="decorator"})(hle||(hle={}));(function(t){t.declaration="declaration",t.definition="definition",t.readonly="readonly",t.static="static",t.deprecated="deprecated",t.abstract="abstract",t.async="async",t.modification="modification",t.documentation="documentation",t.defaultLibrary="defaultLibrary"})(fle||(fle={}));(function(t){function e(r){let n=r;return Fe.objectLiteral(n)&&(n.resultId===void 0||typeof n.resultId=="string")&&Array.isArray(n.data)&&(n.data.length===0||typeof n.data[0]=="number")}o(e,"is"),t.is=e})(dle||(dle={}));(function(t){function e(n,i){return{range:n,text:i}}o(e,"create"),t.create=e;function r(n){let i=n;return i!=null&&Pr.is(i.range)&&Fe.string(i.text)}o(r,"is"),t.is=r})(ple||(ple={}));(function(t){function e(n,i,a){return{range:n,variableName:i,caseSensitiveLookup:a}}o(e,"create"),t.create=e;function r(n){let i=n;return i!=null&&Pr.is(i.range)&&Fe.boolean(i.caseSensitiveLookup)&&(Fe.string(i.variableName)||i.variableName===void 0)}o(r,"is"),t.is=r})(mle||(mle={}));(function(t){function e(n,i){return{range:n,expression:i}}o(e,"create"),t.create=e;function r(n){let i=n;return i!=null&&Pr.is(i.range)&&(Fe.string(i.expression)||i.expression===void 0)}o(r,"is"),t.is=r})(gle||(gle={}));(function(t){function e(n,i){return{frameId:n,stoppedLocation:i}}o(e,"create"),t.create=e;function r(n){let i=n;return Fe.defined(i)&&Pr.is(n.stoppedLocation)}o(r,"is"),t.is=r})(yle||(yle={}));(function(t){t.Type=1,t.Parameter=2;function e(r){return r===1||r===2}o(e,"is"),t.is=e})(fM||(fM={}));(function(t){function e(n){return{value:n}}o(e,"create"),t.create=e;function r(n){let i=n;return Fe.objectLiteral(i)&&(i.tooltip===void 0||Fe.string(i.tooltip)||Ex.is(i.tooltip))&&(i.location===void 0||fE.is(i.location))&&(i.command===void 0||r1.is(i.command))}o(r,"is"),t.is=r})(dM||(dM={}));(function(t){function e(n,i,a){let s={position:n,label:i};return a!==void 0&&(s.kind=a),s}o(e,"create"),t.create=e;function r(n){let i=n;return Fe.objectLiteral(i)&&jr.is(i.position)&&(Fe.string(i.label)||Fe.typedArray(i.label,dM.is))&&(i.kind===void 0||fM.is(i.kind))&&i.textEdits===void 0||Fe.typedArray(i.textEdits,n1.is)&&(i.tooltip===void 0||Fe.string(i.tooltip)||Ex.is(i.tooltip))&&(i.paddingLeft===void 0||Fe.boolean(i.paddingLeft))&&(i.paddingRight===void 0||Fe.boolean(i.paddingRight))}o(r,"is"),t.is=r})(vle||(vle={}));(function(t){function e(r){return{kind:"snippet",value:r}}o(e,"createSnippet"),t.createSnippet=e})(xle||(xle={}));(function(t){function e(r,n,i,a){return{insertText:r,filterText:n,range:i,command:a}}o(e,"create"),t.create=e})(ble||(ble={}));(function(t){function e(r){return{items:r}}o(e,"create"),t.create=e})(wle||(wle={}));(function(t){t.Invoked=0,t.Automatic=1})(Tle||(Tle={}));(function(t){function e(r,n){return{range:r,text:n}}o(e,"create"),t.create=e})(kle||(kle={}));(function(t){function e(r,n){return{triggerKind:r,selectedCompletionInfo:n}}o(e,"create"),t.create=e})(Ele||(Ele={}));(function(t){function e(r){let n=r;return Fe.objectLiteral(n)&&tM.is(n.uri)&&Fe.string(n.name)}o(e,"is"),t.is=e})(Sle||(Sle={}));(function(t){function e(a,s,l,u){return new pM(a,s,l,u)}o(e,"create"),t.create=e;function r(a){let s=a;return!!(Fe.defined(s)&&Fe.string(s.uri)&&(Fe.undefined(s.languageId)||Fe.string(s.languageId))&&Fe.uinteger(s.lineCount)&&Fe.func(s.getText)&&Fe.func(s.positionAt)&&Fe.func(s.offsetAt))}o(r,"is"),t.is=r;function n(a,s){let l=a.getText(),u=i(s,(f,d)=>{let p=f.range.start.line-d.range.start.line;return p===0?f.range.start.character-d.range.start.character:p}),h=l.length;for(let f=u.length-1;f>=0;f--){let d=u[f],p=a.offsetAt(d.range.start),m=a.offsetAt(d.range.end);if(m<=h)l=l.substring(0,p)+d.newText+l.substring(m,l.length);else throw new Error("Overlapping edit");h=p}return l}o(n,"applyEdits"),t.applyEdits=n;function i(a,s){if(a.length<=1)return a;let l=a.length/2|0,u=a.slice(0,l),h=a.slice(l);i(u,s),i(h,s);let f=0,d=0,p=0;for(;f<u.length&&d<h.length;)s(u[f],h[d])<=0?a[p++]=u[f++]:a[p++]=h[d++];for(;f<u.length;)a[p++]=u[f++];for(;d<h.length;)a[p++]=h[d++];return a}o(i,"mergeSort")})(Cle||(Cle={}));pM=class{static{o(this,"FullTextDocument")}constructor(e,r,n,i){this._uri=e,this._languageId=r,this._version=n,this._content=i,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(e){if(e){let r=this.offsetAt(e.start),n=this.offsetAt(e.end);return this._content.substring(r,n)}return this._content}update(e,r){this._content=e.text,this._version=r,this._lineOffsets=void 0}getLineOffsets(){if(this._lineOffsets===void 0){let e=[],r=this._content,n=!0;for(let i=0;i<r.length;i++){n&&(e.push(i),n=!1);let a=r.charAt(i);n=a==="\r"||a===`
+`,a==="\r"&&i+1<r.length&&r.charAt(i+1)===`
+`&&i++}n&&r.length>0&&e.push(r.length),this._lineOffsets=e}return this._lineOffsets}positionAt(e){e=Math.max(Math.min(e,this._content.length),0);let r=this.getLineOffsets(),n=0,i=r.length;if(i===0)return jr.create(0,e);for(;n<i;){let s=Math.floor((n+i)/2);r[s]>e?i=s:n=s+1}let a=n-1;return jr.create(a,e-r[a])}offsetAt(e){let r=this.getLineOffsets();if(e.line>=r.length)return this._content.length;if(e.line<0)return 0;let n=r[e.line],i=e.line+1<r.length?r[e.line+1]:this._content.length;return Math.max(Math.min(n+e.character,i),n)}get lineCount(){return this.getLineOffsets().length}};(function(t){let e=Object.prototype.toString;function r(m){return typeof m<"u"}o(r,"defined"),t.defined=r;function n(m){return typeof m>"u"}o(n,"undefined"),t.undefined=n;function i(m){return m===!0||m===!1}o(i,"boolean"),t.boolean=i;function a(m){return e.call(m)==="[object String]"}o(a,"string"),t.string=a;function s(m){return e.call(m)==="[object Number]"}o(s,"number"),t.number=s;function l(m,g,y){return e.call(m)==="[object Number]"&&g<=m&&m<=y}o(l,"numberRange"),t.numberRange=l;function u(m){return e.call(m)==="[object Number]"&&-2147483648<=m&&m<=2147483647}o(u,"integer"),t.integer=u;function h(m){return e.call(m)==="[object Number]"&&0<=m&&m<=2147483647}o(h,"uinteger"),t.uinteger=h;function f(m){return e.call(m)==="[object Function]"}o(f,"func"),t.func=f;function d(m){return m!==null&&typeof m=="object"}o(d,"objectLiteral"),t.objectLiteral=d;function p(m,g){return Array.isArray(m)&&m.every(g)}o(p,"typedArray"),t.typedArray=p})(Fe||(Fe={}))});var Sx,Cx,pp,mp,gM,a1,gE=N(()=>{"use strict";mM();Nl();Sx=class{static{o(this,"CstNodeBuilder")}constructor(){this.nodeStack=[]}get current(){var e;return(e=this.nodeStack[this.nodeStack.length-1])!==null&&e!==void 0?e:this.rootNode}buildRootNode(e){return this.rootNode=new a1(e),this.rootNode.root=this.rootNode,this.nodeStack=[this.rootNode],this.rootNode}buildCompositeNode(e){let r=new mp;return r.grammarSource=e,r.root=this.rootNode,this.current.content.push(r),this.nodeStack.push(r),r}buildLeafNode(e,r){let n=new pp(e.startOffset,e.image.length,Gm(e),e.tokenType,!r);return n.grammarSource=r,n.root=this.rootNode,this.current.content.push(n),n}removeNode(e){let r=e.container;if(r){let n=r.content.indexOf(e);n>=0&&r.content.splice(n,1)}}addHiddenNodes(e){let r=[];for(let a of e){let s=new pp(a.startOffset,a.image.length,Gm(a),a.tokenType,!0);s.root=this.rootNode,r.push(s)}let n=this.current,i=!1;if(n.content.length>0){n.content.push(...r);return}for(;n.container;){let a=n.container.content.indexOf(n);if(a>0){n.container.content.splice(a,0,...r),i=!0;break}n=n.container}i||this.rootNode.content.unshift(...r)}construct(e){let r=this.current;typeof e.$type=="string"&&(this.current.astNode=e),e.$cstNode=r;let n=this.nodeStack.pop();n?.content.length===0&&this.removeNode(n)}},Cx=class{static{o(this,"AbstractCstNode")}get parent(){return this.container}get feature(){return this.grammarSource}get hidden(){return!1}get astNode(){var e,r;let n=typeof((e=this._astNode)===null||e===void 0?void 0:e.$type)=="string"?this._astNode:(r=this.container)===null||r===void 0?void 0:r.astNode;if(!n)throw new Error("This node has no associated AST element");return n}set astNode(e){this._astNode=e}get element(){return this.astNode}get text(){return this.root.fullText.substring(this.offset,this.end)}},pp=class extends Cx{static{o(this,"LeafCstNodeImpl")}get offset(){return this._offset}get length(){return this._length}get end(){return this._offset+this._length}get hidden(){return this._hidden}get tokenType(){return this._tokenType}get range(){return this._range}constructor(e,r,n,i,a=!1){super(),this._hidden=a,this._offset=e,this._tokenType=i,this._length=r,this._range=n}},mp=class extends Cx{static{o(this,"CompositeCstNodeImpl")}constructor(){super(...arguments),this.content=new gM(this)}get children(){return this.content}get offset(){var e,r;return(r=(e=this.firstNonHiddenNode)===null||e===void 0?void 0:e.offset)!==null&&r!==void 0?r:0}get length(){return this.end-this.offset}get end(){var e,r;return(r=(e=this.lastNonHiddenNode)===null||e===void 0?void 0:e.end)!==null&&r!==void 0?r:0}get range(){let e=this.firstNonHiddenNode,r=this.lastNonHiddenNode;if(e&&r){if(this._rangeCache===void 0){let{range:n}=e,{range:i}=r;this._rangeCache={start:n.start,end:i.end.line<n.start.line?n.start:i.end}}return this._rangeCache}else return{start:jr.create(0,0),end:jr.create(0,0)}}get firstNonHiddenNode(){for(let e of this.content)if(!e.hidden)return e;return this.content[0]}get lastNonHiddenNode(){for(let e=this.content.length-1;e>=0;e--){let r=this.content[e];if(!r.hidden)return r}return this.content[this.content.length-1]}},gM=class t extends Array{static{o(this,"CstNodeContainer")}constructor(e){super(),this.parent=e,Object.setPrototypeOf(this,t.prototype)}push(...e){return this.addParents(e),super.push(...e)}unshift(...e){return this.addParents(e),super.unshift(...e)}splice(e,r,...n){return this.addParents(n),super.splice(e,r,...n)}addParents(e){for(let r of e)r.container=this.parent}},a1=class extends mp{static{o(this,"RootCstNodeImpl")}get text(){return this._text.substring(this.offset,this.end)}get fullText(){return this._text}constructor(e){super(),this._text="",this._text=e??""}}});function yM(t){return t.$type===yE}var yE,Ale,_le,Ax,_x,vE,s1,Dx,JBe,vM,Lx=N(()=>{"use strict";cf();Soe();Rc();Ol();is();gE();yE=Symbol("Datatype");o(yM,"isDataTypeNode");Ale="\u200B",_le=o(t=>t.endsWith(Ale)?t:t+Ale,"withRuleSuffix"),Ax=class{static{o(this,"AbstractLangiumParser")}constructor(e){this._unorderedGroups=new Map,this.allRules=new Map,this.lexer=e.parser.Lexer;let r=this.lexer.definition,n=e.LanguageMetaData.mode==="production";this.wrapper=new vM(r,Object.assign(Object.assign({},e.parser.ParserConfig),{skipValidations:n,errorMessageProvider:e.parser.ParserErrorMessageProvider}))}alternatives(e,r){this.wrapper.wrapOr(e,r)}optional(e,r){this.wrapper.wrapOption(e,r)}many(e,r){this.wrapper.wrapMany(e,r)}atLeastOne(e,r){this.wrapper.wrapAtLeastOne(e,r)}getRule(e){return this.allRules.get(e)}isRecording(){return this.wrapper.IS_RECORDING}get unorderedGroups(){return this._unorderedGroups}getRuleStack(){return this.wrapper.RULE_STACK}finalize(){this.wrapper.wrapSelfAnalysis()}},_x=class extends Ax{static{o(this,"LangiumParser")}get current(){return this.stack[this.stack.length-1]}constructor(e){super(e),this.nodeBuilder=new Sx,this.stack=[],this.assignmentMap=new Map,this.linker=e.references.Linker,this.converter=e.parser.ValueConverter,this.astReflection=e.shared.AstReflection}rule(e,r){let n=this.computeRuleType(e),i=this.wrapper.DEFINE_RULE(_le(e.name),this.startImplementation(n,r).bind(this));return this.allRules.set(e.name,i),e.entry&&(this.mainRule=i),i}computeRuleType(e){if(!e.fragment){if(Z2(e))return yE;{let r=Rg(e);return r??e.name}}}parse(e,r={}){this.nodeBuilder.buildRootNode(e);let n=this.lexerResult=this.lexer.tokenize(e);this.wrapper.input=n.tokens;let i=r.rule?this.allRules.get(r.rule):this.mainRule;if(!i)throw new Error(r.rule?`No rule found with name '${r.rule}'`:"No main rule available.");let a=i.call(this.wrapper,{});return this.nodeBuilder.addHiddenNodes(n.hidden),this.unorderedGroups.clear(),this.lexerResult=void 0,{value:a,lexerErrors:n.errors,lexerReport:n.report,parserErrors:this.wrapper.errors}}startImplementation(e,r){return n=>{let i=!this.isRecording()&&e!==void 0;if(i){let s={$type:e};this.stack.push(s),e===yE&&(s.value="")}let a;try{a=r(n)}catch{a=void 0}return a===void 0&&i&&(a=this.construct()),a}}extractHiddenTokens(e){let r=this.lexerResult.hidden;if(!r.length)return[];let n=e.startOffset;for(let i=0;i<r.length;i++)if(r[i].startOffset>n)return r.splice(0,i);return r.splice(0,r.length)}consume(e,r,n){let i=this.wrapper.wrapConsume(e,r);if(!this.isRecording()&&this.isValidToken(i)){let a=this.extractHiddenTokens(i);this.nodeBuilder.addHiddenNodes(a);let s=this.nodeBuilder.buildLeafNode(i,n),{assignment:l,isCrossRef:u}=this.getAssignment(n),h=this.current;if(l){let f=Ho(n)?i.image:this.converter.convert(i.image,s);this.assign(l.operator,l.feature,f,s,u)}else if(yM(h)){let f=i.image;Ho(n)||(f=this.converter.convert(f,s).toString()),h.value+=f}}}isValidToken(e){return!e.isInsertedInRecovery&&!isNaN(e.startOffset)&&typeof e.endOffset=="number"&&!isNaN(e.endOffset)}subrule(e,r,n,i,a){let s;!this.isRecording()&&!n&&(s=this.nodeBuilder.buildCompositeNode(i));let l=this.wrapper.wrapSubrule(e,r,a);!this.isRecording()&&s&&s.length>0&&this.performSubruleAssignment(l,i,s)}performSubruleAssignment(e,r,n){let{assignment:i,isCrossRef:a}=this.getAssignment(r);if(i)this.assign(i.operator,i.feature,e,n,a);else if(!i){let s=this.current;if(yM(s))s.value+=e.toString();else if(typeof e=="object"&&e){let u=this.assignWithoutOverride(e,s);this.stack.pop(),this.stack.push(u)}}}action(e,r){if(!this.isRecording()){let n=this.current;if(r.feature&&r.operator){n=this.construct(),this.nodeBuilder.removeNode(n.$cstNode),this.nodeBuilder.buildCompositeNode(r).content.push(n.$cstNode);let a={$type:e};this.stack.push(a),this.assign(r.operator,r.feature,n,n.$cstNode,!1)}else n.$type=e}}construct(){if(this.isRecording())return;let e=this.current;return vk(e),this.nodeBuilder.construct(e),this.stack.pop(),yM(e)?this.converter.convert(e.value,e.$cstNode):(XR(this.astReflection,e),e)}getAssignment(e){if(!this.assignmentMap.has(e)){let r=tp(e,Ml);this.assignmentMap.set(e,{assignment:r,isCrossRef:r?ep(r.terminal):!1})}return this.assignmentMap.get(e)}assign(e,r,n,i,a){let s=this.current,l;switch(a&&typeof n=="string"?l=this.linker.buildReference(s,r,i,n):l=n,e){case"=":{s[r]=l;break}case"?=":{s[r]=!0;break}case"+=":Array.isArray(s[r])||(s[r]=[]),s[r].push(l)}}assignWithoutOverride(e,r){for(let[i,a]of Object.entries(r)){let s=e[i];s===void 0?e[i]=a:Array.isArray(s)&&Array.isArray(a)&&(a.push(...s),e[i]=a)}let n=e.$cstNode;return n&&(n.astNode=void 0,e.$cstNode=void 0),e}get definitionErrors(){return this.wrapper.definitionErrors}},vE=class{static{o(this,"AbstractParserErrorMessageProvider")}buildMismatchTokenMessage(e){return zu.buildMismatchTokenMessage(e)}buildNotAllInputParsedMessage(e){return zu.buildNotAllInputParsedMessage(e)}buildNoViableAltMessage(e){return zu.buildNoViableAltMessage(e)}buildEarlyExitMessage(e){return zu.buildEarlyExitMessage(e)}},s1=class extends vE{static{o(this,"LangiumParserErrorMessageProvider")}buildMismatchTokenMessage({expected:e,actual:r}){return`Expecting ${e.LABEL?"`"+e.LABEL+"`":e.name.endsWith(":KW")?`keyword '${e.name.substring(0,e.name.length-3)}'`:`token of type '${e.name}'`} but found \`${r.image}\`.`}buildNotAllInputParsedMessage({firstRedundant:e}){return`Expecting end of file but found \`${e.image}\`.`}},Dx=class extends Ax{static{o(this,"LangiumCompletionParser")}constructor(){super(...arguments),this.tokens=[],this.elementStack=[],this.lastElementStack=[],this.nextTokenIndex=0,this.stackSize=0}action(){}construct(){}parse(e){this.resetState();let r=this.lexer.tokenize(e,{mode:"partial"});return this.tokens=r.tokens,this.wrapper.input=[...this.tokens],this.mainRule.call(this.wrapper,{}),this.unorderedGroups.clear(),{tokens:this.tokens,elementStack:[...this.lastElementStack],tokenIndex:this.nextTokenIndex}}rule(e,r){let n=this.wrapper.DEFINE_RULE(_le(e.name),this.startImplementation(r).bind(this));return this.allRules.set(e.name,n),e.entry&&(this.mainRule=n),n}resetState(){this.elementStack=[],this.lastElementStack=[],this.nextTokenIndex=0,this.stackSize=0}startImplementation(e){return r=>{let n=this.keepStackSize();try{e(r)}finally{this.resetStackSize(n)}}}removeUnexpectedElements(){this.elementStack.splice(this.stackSize)}keepStackSize(){let e=this.elementStack.length;return this.stackSize=e,e}resetStackSize(e){this.removeUnexpectedElements(),this.stackSize=e}consume(e,r,n){this.wrapper.wrapConsume(e,r),this.isRecording()||(this.lastElementStack=[...this.elementStack,n],this.nextTokenIndex=this.currIdx+1)}subrule(e,r,n,i,a){this.before(i),this.wrapper.wrapSubrule(e,r,a),this.after(i)}before(e){this.isRecording()||this.elementStack.push(e)}after(e){if(!this.isRecording()){let r=this.elementStack.lastIndexOf(e);r>=0&&this.elementStack.splice(r)}}get currIdx(){return this.wrapper.currIdx}},JBe={recoveryEnabled:!0,nodeLocationTracking:"full",skipValidations:!0,errorMessageProvider:new s1},vM=class extends xx{static{o(this,"ChevrotainWrapper")}constructor(e,r){let n=r&&"maxLookahead"in r;super(e,Object.assign(Object.assign(Object.assign({},JBe),{lookaheadStrategy:n?new Gu({maxLookahead:r.maxLookahead}):new kx({logging:r.skipValidations?()=>{}:void 0})}),r))}get IS_RECORDING(){return this.RECORDING_PHASE}DEFINE_RULE(e,r){return this.RULE(e,r)}wrapSelfAnalysis(){this.performSelfAnalysis()}wrapConsume(e,r){return this.consume(e,r)}wrapSubrule(e,r,n){return this.subrule(e,r,{ARGS:[n]})}wrapOr(e,r){this.or(e,r)}wrapOption(e,r){this.option(e,r)}wrapMany(e,r){this.many(e,r)}wrapAtLeastOne(e,r){this.atLeastOne(e,r)}}});function Rx(t,e,r){return eFe({parser:e,tokens:r,ruleNames:new Map},t),e}function eFe(t,e){let r=K2(e,!1),n=en(e.rules).filter(Oa).filter(i=>r.has(i));for(let i of n){let a=Object.assign(Object.assign({},t),{consume:1,optional:1,subrule:1,many:1,or:1});t.parser.rule(i,gp(a,i.definition))}}function gp(t,e,r=!1){let n;if(Ho(e))n=oFe(t,e);else if(Mu(e))n=tFe(t,e);else if(Ml(e))n=gp(t,e.terminal);else if(ep(e))n=Dle(t,e);else if(Il(e))n=rFe(t,e);else if(mk(e))n=iFe(t,e);else if(yk(e))n=aFe(t,e);else if(sf(e))n=sFe(t,e);else if($R(e)){let i=t.consume++;n=o(()=>t.parser.consume(i,lo,e),"method")}else throw new Zd(e.$cstNode,`Unexpected element type: ${e.$type}`);return Lle(t,r?void 0:xE(e),n,e.cardinality)}function tFe(t,e){let r=J2(e);return()=>t.parser.action(r,e)}function rFe(t,e){let r=e.rule.ref;if(Oa(r)){let n=t.subrule++,i=r.fragment,a=e.arguments.length>0?nFe(r,e.arguments):()=>({});return s=>t.parser.subrule(n,Rle(t,r),i,e,a(s))}else if(so(r)){let n=t.consume++,i=xM(t,r.name);return()=>t.parser.consume(n,i,e)}else if(r)Lc(r);else throw new Zd(e.$cstNode,`Undefined rule: ${e.rule.$refText}`)}function nFe(t,e){let r=e.map(n=>Vu(n.value));return n=>{let i={};for(let a=0;a<r.length;a++){let s=t.parameters[a],l=r[a];i[s.name]=l(n)}return i}}function Vu(t){if(NR(t)){let e=Vu(t.left),r=Vu(t.right);return n=>e(n)||r(n)}else if(RR(t)){let e=Vu(t.left),r=Vu(t.right);return n=>e(n)&&r(n)}else if(MR(t)){let e=Vu(t.value);return r=>!e(r)}else if(IR(t)){let e=t.parameter.ref.name;return r=>r!==void 0&&r[e]===!0}else if(LR(t)){let e=!!t.true;return()=>e}Lc(t)}function iFe(t,e){if(e.elements.length===1)return gp(t,e.elements[0]);{let r=[];for(let i of e.elements){let a={ALT:gp(t,i,!0)},s=xE(i);s&&(a.GATE=Vu(s)),r.push(a)}let n=t.or++;return i=>t.parser.alternatives(n,r.map(a=>{let s={ALT:o(()=>a.ALT(i),"ALT")},l=a.GATE;return l&&(s.GATE=()=>l(i)),s}))}}function aFe(t,e){if(e.elements.length===1)return gp(t,e.elements[0]);let r=[];for(let l of e.elements){let u={ALT:gp(t,l,!0)},h=xE(l);h&&(u.GATE=Vu(h)),r.push(u)}let n=t.or++,i=o((l,u)=>{let h=u.getRuleStack().join("-");return`uGroup_${l}_${h}`},"idFunc"),a=o(l=>t.parser.alternatives(n,r.map((u,h)=>{let f={ALT:o(()=>!0,"ALT")},d=t.parser;f.ALT=()=>{if(u.ALT(l),!d.isRecording()){let m=i(n,d);d.unorderedGroups.get(m)||d.unorderedGroups.set(m,[]);let g=d.unorderedGroups.get(m);typeof g?.[h]>"u"&&(g[h]=!0)}};let p=u.GATE;return p?f.GATE=()=>p(l):f.GATE=()=>{let m=d.unorderedGroups.get(i(n,d));return!m?.[h]},f})),"alternatives"),s=Lle(t,xE(e),a,"*");return l=>{s(l),t.parser.isRecording()||t.parser.unorderedGroups.delete(i(n,t.parser))}}function sFe(t,e){let r=e.elements.map(n=>gp(t,n));return n=>r.forEach(i=>i(n))}function xE(t){if(sf(t))return t.guardCondition}function Dle(t,e,r=e.terminal){if(r)if(Il(r)&&Oa(r.rule.ref)){let n=r.rule.ref,i=t.subrule++;return a=>t.parser.subrule(i,Rle(t,n),!1,e,a)}else if(Il(r)&&so(r.rule.ref)){let n=t.consume++,i=xM(t,r.rule.ref.name);return()=>t.parser.consume(n,i,e)}else if(Ho(r)){let n=t.consume++,i=xM(t,r.value);return()=>t.parser.consume(n,i,e)}else throw new Error("Could not build cross reference parser");else{if(!e.type.ref)throw new Error("Could not resolve reference to type: "+e.type.$refText);let n=kk(e.type.ref),i=n?.terminal;if(!i)throw new Error("Could not find name assignment for type: "+J2(e.type.ref));return Dle(t,e,i)}}function oFe(t,e){let r=t.consume++,n=t.tokens[e.value];if(!n)throw new Error("Could not find token for keyword: "+e.value);return()=>t.parser.consume(r,n,e)}function Lle(t,e,r,n){let i=e&&Vu(e);if(!n)if(i){let a=t.or++;return s=>t.parser.alternatives(a,[{ALT:o(()=>r(s),"ALT"),GATE:o(()=>i(s),"GATE")},{ALT:lE(),GATE:o(()=>!i(s),"GATE")}])}else return r;if(n==="*"){let a=t.many++;return s=>t.parser.many(a,{DEF:o(()=>r(s),"DEF"),GATE:i?()=>i(s):void 0})}else if(n==="+"){let a=t.many++;if(i){let s=t.or++;return l=>t.parser.alternatives(s,[{ALT:o(()=>t.parser.atLeastOne(a,{DEF:o(()=>r(l),"DEF")}),"ALT"),GATE:o(()=>i(l),"GATE")},{ALT:lE(),GATE:o(()=>!i(l),"GATE")}])}else return s=>t.parser.atLeastOne(a,{DEF:o(()=>r(s),"DEF")})}else if(n==="?"){let a=t.optional++;return s=>t.parser.optional(a,{DEF:o(()=>r(s),"DEF"),GATE:i?()=>i(s):void 0})}else Lc(n)}function Rle(t,e){let r=lFe(t,e),n=t.parser.getRule(r);if(!n)throw new Error(`Rule "${r}" not found."`);return n}function lFe(t,e){if(Oa(e))return e.name;if(t.ruleNames.has(e))return t.ruleNames.get(e);{let r=e,n=r.$container,i=e.$type;for(;!Oa(n);)(sf(n)||mk(n)||yk(n))&&(i=n.elements.indexOf(r).toString()+":"+i),r=n,n=n.$container;return i=n.name+":"+i,t.ruleNames.set(e,i),i}}function xM(t,e){let r=t.tokens[e];if(!r)throw new Error(`Token "${e}" not found."`);return r}var bE=N(()=>{"use strict";cf();Rc();uk();Ps();Ol();o(Rx,"createParser");o(eFe,"buildRules");o(gp,"buildElement");o(tFe,"buildAction");o(rFe,"buildRuleCall");o(nFe,"buildRuleCallPredicate");o(Vu,"buildPredicate");o(iFe,"buildAlternatives");o(aFe,"buildUnorderedGroup");o(sFe,"buildGroup");o(xE,"getGuardCondition");o(Dle,"buildCrossReference");o(oFe,"buildKeyword");o(Lle,"wrap");o(Rle,"getRule");o(lFe,"getRuleName");o(xM,"getToken")});function bM(t){let e=t.Grammar,r=t.parser.Lexer,n=new Dx(t);return Rx(e,n,r.definition),n.finalize(),n}var wM=N(()=>{"use strict";Lx();bE();o(bM,"createCompletionParser")});function TM(t){let e=Nle(t);return e.finalize(),e}function Nle(t){let e=t.Grammar,r=t.parser.Lexer,n=new _x(t);return Rx(e,n,r.definition)}var kM=N(()=>{"use strict";Lx();bE();o(TM,"createLangiumParser");o(Nle,"prepareLangiumParser")});var Uu,wE=N(()=>{"use strict";cf();Rc();is();Ol();Lg();Ps();Uu=class{static{o(this,"DefaultTokenBuilder")}constructor(){this.diagnostics=[]}buildTokens(e,r){let n=en(K2(e,!1)),i=this.buildTerminalTokens(n),a=this.buildKeywordTokens(n,i,r);return i.forEach(s=>{let l=s.PATTERN;typeof l=="object"&&l&&"test"in l&&Dg(l)?a.unshift(s):a.push(s)}),a}flushLexingReport(e){return{diagnostics:this.popDiagnostics()}}popDiagnostics(){let e=[...this.diagnostics];return this.diagnostics=[],e}buildTerminalTokens(e){return e.filter(so).filter(r=>!r.fragment).map(r=>this.buildTerminalToken(r)).toArray()}buildTerminalToken(e){let r=Ng(e),n=this.requiresCustomPattern(r)?this.regexPatternFunction(r):r,i={name:e.name,PATTERN:n};return typeof n=="function"&&(i.LINE_BREAKS=!0),e.hidden&&(i.GROUP=Dg(r)?Xn.SKIPPED:"hidden"),i}requiresCustomPattern(e){return e.flags.includes("u")||e.flags.includes("s")?!0:!!(e.source.includes("?<=")||e.source.includes("?<!"))}regexPatternFunction(e){let r=new RegExp(e,e.flags+"y");return(n,i)=>(r.lastIndex=i,r.exec(n))}buildKeywordTokens(e,r,n){return e.filter(Oa).flatMap(i=>Nc(i).filter(Ho)).distinct(i=>i.value).toArray().sort((i,a)=>a.value.length-i.value.length).map(i=>this.buildKeywordToken(i,r,!!n?.caseInsensitive))}buildKeywordToken(e,r,n){let i=this.buildKeywordPattern(e,n),a={name:e.value,PATTERN:i,LONGER_ALT:this.findLongerAlt(e,r)};return typeof i=="function"&&(a.LINE_BREAKS=!0),a}buildKeywordPattern(e,r){return r?new RegExp(tN(e.value)):e.value}findLongerAlt(e,r){return r.reduce((n,i)=>{let a=i?.PATTERN;return a?.source&&rN("^"+a.source+"$",e.value)&&n.push(i),n},[])}}});var yp,Oc,EM=N(()=>{"use strict";Rc();Ol();yp=class{static{o(this,"DefaultValueConverter")}convert(e,r){let n=r.grammarSource;if(ep(n)&&(n=aN(n)),Il(n)){let i=n.rule.ref;if(!i)throw new Error("This cst node was not parsed by a rule.");return this.runConverter(i,e,r)}return e}runConverter(e,r,n){var i;switch(e.name.toUpperCase()){case"INT":return Oc.convertInt(r);case"STRING":return Oc.convertString(r);case"ID":return Oc.convertID(r)}switch((i=fN(e))===null||i===void 0?void 0:i.toLowerCase()){case"number":return Oc.convertNumber(r);case"boolean":return Oc.convertBoolean(r);case"bigint":return Oc.convertBigint(r);case"date":return Oc.convertDate(r);default:return r}}};(function(t){function e(h){let f="";for(let d=1;d<h.length-1;d++){let p=h.charAt(d);if(p==="\\"){let m=h.charAt(++d);f+=r(m)}else f+=p}return f}o(e,"convertString"),t.convertString=e;function r(h){switch(h){case"b":return"\b";case"f":return"\f";case"n":return`
+`;case"r":return"\r";case"t":return"	";case"v":return"\v";case"0":return"\0";default:return h}}o(r,"convertEscapeCharacter");function n(h){return h.charAt(0)==="^"?h.substring(1):h}o(n,"convertID"),t.convertID=n;function i(h){return parseInt(h)}o(i,"convertInt"),t.convertInt=i;function a(h){return BigInt(h)}o(a,"convertBigint"),t.convertBigint=a;function s(h){return new Date(h)}o(s,"convertDate"),t.convertDate=s;function l(h){return Number(h)}o(l,"convertNumber"),t.convertNumber=l;function u(h){return h.toLowerCase()==="true"}o(u,"convertBoolean"),t.convertBoolean=u})(Oc||(Oc={}))});var _M=Mi(AM=>{"use strict";Object.defineProperty(AM,"__esModule",{value:!0});var SM;function CM(){if(SM===void 0)throw new Error("No runtime abstraction layer installed");return SM}o(CM,"RAL");(function(t){function e(r){if(r===void 0)throw new Error("No runtime abstraction layer provided");SM=r}o(e,"install"),t.install=e})(CM||(CM={}));AM.default=CM});var Ole=Mi(Ba=>{"use strict";Object.defineProperty(Ba,"__esModule",{value:!0});Ba.stringArray=Ba.array=Ba.func=Ba.error=Ba.number=Ba.string=Ba.boolean=void 0;function cFe(t){return t===!0||t===!1}o(cFe,"boolean");Ba.boolean=cFe;function Mle(t){return typeof t=="string"||t instanceof String}o(Mle,"string");Ba.string=Mle;function uFe(t){return typeof t=="number"||t instanceof Number}o(uFe,"number");Ba.number=uFe;function hFe(t){return t instanceof Error}o(hFe,"error");Ba.error=hFe;function fFe(t){return typeof t=="function"}o(fFe,"func");Ba.func=fFe;function Ile(t){return Array.isArray(t)}o(Ile,"array");Ba.array=Ile;function dFe(t){return Ile(t)&&t.every(e=>Mle(e))}o(dFe,"stringArray");Ba.stringArray=dFe});var LM=Mi(o1=>{"use strict";Object.defineProperty(o1,"__esModule",{value:!0});o1.Emitter=o1.Event=void 0;var pFe=_M(),Ple;(function(t){let e={dispose(){}};t.None=function(){return e}})(Ple||(o1.Event=Ple={}));var DM=class{static{o(this,"CallbackList")}add(e,r=null,n){this._callbacks||(this._callbacks=[],this._contexts=[]),this._callbacks.push(e),this._contexts.push(r),Array.isArray(n)&&n.push({dispose:o(()=>this.remove(e,r),"dispose")})}remove(e,r=null){if(!this._callbacks)return;let n=!1;for(let i=0,a=this._callbacks.length;i<a;i++)if(this._callbacks[i]===e)if(this._contexts[i]===r){this._callbacks.splice(i,1),this._contexts.splice(i,1);return}else n=!0;if(n)throw new Error("When adding a listener with a context, you should remove it with the same context")}invoke(...e){if(!this._callbacks)return[];let r=[],n=this._callbacks.slice(0),i=this._contexts.slice(0);for(let a=0,s=n.length;a<s;a++)try{r.push(n[a].apply(i[a],e))}catch(l){(0,pFe.default)().console.error(l)}return r}isEmpty(){return!this._callbacks||this._callbacks.length===0}dispose(){this._callbacks=void 0,this._contexts=void 0}},TE=class t{static{o(this,"Emitter")}constructor(e){this._options=e}get event(){return this._event||(this._event=(e,r,n)=>{this._callbacks||(this._callbacks=new DM),this._options&&this._options.onFirstListenerAdd&&this._callbacks.isEmpty()&&this._options.onFirstListenerAdd(this),this._callbacks.add(e,r);let i={dispose:o(()=>{this._callbacks&&(this._callbacks.remove(e,r),i.dispose=t._noop,this._options&&this._options.onLastListenerRemove&&this._callbacks.isEmpty()&&this._options.onLastListenerRemove(this))},"dispose")};return Array.isArray(n)&&n.push(i),i}),this._event}fire(e){this._callbacks&&this._callbacks.invoke.call(this._callbacks,e)}dispose(){this._callbacks&&(this._callbacks.dispose(),this._callbacks=void 0)}};o1.Emitter=TE;TE._noop=function(){}});var Ble=Mi(l1=>{"use strict";Object.defineProperty(l1,"__esModule",{value:!0});l1.CancellationTokenSource=l1.CancellationToken=void 0;var mFe=_M(),gFe=Ole(),RM=LM(),kE;(function(t){t.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:RM.Event.None}),t.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:RM.Event.None});function e(r){let n=r;return n&&(n===t.None||n===t.Cancelled||gFe.boolean(n.isCancellationRequested)&&!!n.onCancellationRequested)}o(e,"is"),t.is=e})(kE||(l1.CancellationToken=kE={}));var yFe=Object.freeze(function(t,e){let r=(0,mFe.default)().timer.setTimeout(t.bind(e),0);return{dispose(){r.dispose()}}}),EE=class{static{o(this,"MutableToken")}constructor(){this._isCancelled=!1}cancel(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?yFe:(this._emitter||(this._emitter=new RM.Emitter),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=void 0)}},NM=class{static{o(this,"CancellationTokenSource")}get token(){return this._token||(this._token=new EE),this._token}cancel(){this._token?this._token.cancel():this._token=kE.Cancelled}dispose(){this._token?this._token instanceof EE&&this._token.dispose():this._token=kE.None}};l1.CancellationTokenSource=NM});var yr={};var qo=N(()=>{"use strict";Sr(yr,Sa(Ble(),1))});function MM(){return new Promise(t=>{typeof setImmediate>"u"?setTimeout(t,0):setImmediate(t)})}function CE(){return SE=performance.now(),new yr.CancellationTokenSource}function $le(t){Fle=t}function Bc(t){return t===Pc}async function xi(t){if(t===yr.CancellationToken.None)return;let e=performance.now();if(e-SE>=Fle&&(SE=e,await MM(),SE=performance.now()),t.isCancellationRequested)throw Pc}var SE,Fle,Pc,cs,Yo=N(()=>{"use strict";qo();o(MM,"delayNextTick");SE=0,Fle=10;o(CE,"startCancelableOperation");o($le,"setInterruptionPeriod");Pc=Symbol("OperationCancelled");o(Bc,"isOperationCancelled");o(xi,"interruptAndCheck");cs=class{static{o(this,"Deferred")}constructor(){this.promise=new Promise((e,r)=>{this.resolve=n=>(e(n),this),this.reject=n=>(r(n),this)})}}});function IM(t,e){if(t.length<=1)return t;let r=t.length/2|0,n=t.slice(0,r),i=t.slice(r);IM(n,e),IM(i,e);let a=0,s=0,l=0;for(;a<n.length&&s<i.length;)e(n[a],i[s])<=0?t[l++]=n[a++]:t[l++]=i[s++];for(;a<n.length;)t[l++]=n[a++];for(;s<i.length;)t[l++]=i[s++];return t}function zle(t,e,r=0){let n=e?[r]:[];for(let i=0;i<t.length;i++){let a=t.charCodeAt(i);Gle(a)&&(a===13&&i+1<t.length&&t.charCodeAt(i+1)===10&&i++,n.push(r+i+1))}return n}function Gle(t){return t===13||t===10}function Vle(t){let e=t.start,r=t.end;return e.line>r.line||e.line===r.line&&e.character>r.character?{start:r,end:e}:t}function vFe(t){let e=Vle(t.range);return e!==t.range?{newText:t.newText,range:e}:t}var AE,c1,Ule=N(()=>{"use strict";AE=class t{static{o(this,"FullTextDocument")}constructor(e,r,n,i){this._uri=e,this._languageId=r,this._version=n,this._content=i,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(e){if(e){let r=this.offsetAt(e.start),n=this.offsetAt(e.end);return this._content.substring(r,n)}return this._content}update(e,r){for(let n of e)if(t.isIncremental(n)){let i=Vle(n.range),a=this.offsetAt(i.start),s=this.offsetAt(i.end);this._content=this._content.substring(0,a)+n.text+this._content.substring(s,this._content.length);let l=Math.max(i.start.line,0),u=Math.max(i.end.line,0),h=this._lineOffsets,f=zle(n.text,!1,a);if(u-l===f.length)for(let p=0,m=f.length;p<m;p++)h[p+l+1]=f[p];else f.length<1e4?h.splice(l+1,u-l,...f):this._lineOffsets=h=h.slice(0,l+1).concat(f,h.slice(u+1));let d=n.text.length-(s-a);if(d!==0)for(let p=l+1+f.length,m=h.length;p<m;p++)h[p]=h[p]+d}else if(t.isFull(n))this._content=n.text,this._lineOffsets=void 0;else throw new Error("Unknown change event received");this._version=r}getLineOffsets(){return this._lineOffsets===void 0&&(this._lineOffsets=zle(this._content,!0)),this._lineOffsets}positionAt(e){e=Math.max(Math.min(e,this._content.length),0);let r=this.getLineOffsets(),n=0,i=r.length;if(i===0)return{line:0,character:e};for(;n<i;){let s=Math.floor((n+i)/2);r[s]>e?i=s:n=s+1}let a=n-1;return e=this.ensureBeforeEOL(e,r[a]),{line:a,character:e-r[a]}}offsetAt(e){let r=this.getLineOffsets();if(e.line>=r.length)return this._content.length;if(e.line<0)return 0;let n=r[e.line];if(e.character<=0)return n;let i=e.line+1<r.length?r[e.line+1]:this._content.length,a=Math.min(n+e.character,i);return this.ensureBeforeEOL(a,n)}ensureBeforeEOL(e,r){for(;e>r&&Gle(this._content.charCodeAt(e-1));)e--;return e}get lineCount(){return this.getLineOffsets().length}static isIncremental(e){let r=e;return r!=null&&typeof r.text=="string"&&r.range!==void 0&&(r.rangeLength===void 0||typeof r.rangeLength=="number")}static isFull(e){let r=e;return r!=null&&typeof r.text=="string"&&r.range===void 0&&r.rangeLength===void 0}};(function(t){function e(i,a,s,l){return new AE(i,a,s,l)}o(e,"create"),t.create=e;function r(i,a,s){if(i instanceof AE)return i.update(a,s),i;throw new Error("TextDocument.update: document must be created by TextDocument.create")}o(r,"update"),t.update=r;function n(i,a){let s=i.getText(),l=IM(a.map(vFe),(f,d)=>{let p=f.range.start.line-d.range.start.line;return p===0?f.range.start.character-d.range.start.character:p}),u=0,h=[];for(let f of l){let d=i.offsetAt(f.range.start);if(d<u)throw new Error("Overlapping edit");d>u&&h.push(s.substring(u,d)),f.newText.length&&h.push(f.newText),u=i.offsetAt(f.range.end)}return h.push(s.substr(u)),h.join("")}o(n,"applyEdits"),t.applyEdits=n})(c1||(c1={}));o(IM,"mergeSort");o(zle,"computeLineOffsets");o(Gle,"isEOL");o(Vle,"getWellformedRange");o(vFe,"getWellformedEdit")});var Hle,us,u1,OM=N(()=>{"use strict";(()=>{"use strict";var t={470:i=>{function a(u){if(typeof u!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(u))}o(a,"e");function s(u,h){for(var f,d="",p=0,m=-1,g=0,y=0;y<=u.length;++y){if(y<u.length)f=u.charCodeAt(y);else{if(f===47)break;f=47}if(f===47){if(!(m===y-1||g===1))if(m!==y-1&&g===2){if(d.length<2||p!==2||d.charCodeAt(d.length-1)!==46||d.charCodeAt(d.length-2)!==46){if(d.length>2){var v=d.lastIndexOf("/");if(v!==d.length-1){v===-1?(d="",p=0):p=(d=d.slice(0,v)).length-1-d.lastIndexOf("/"),m=y,g=0;continue}}else if(d.length===2||d.length===1){d="",p=0,m=y,g=0;continue}}h&&(d.length>0?d+="/..":d="..",p=2)}else d.length>0?d+="/"+u.slice(m+1,y):d=u.slice(m+1,y),p=y-m-1;m=y,g=0}else f===46&&g!==-1?++g:g=-1}return d}o(s,"r");var l={resolve:o(function(){for(var u,h="",f=!1,d=arguments.length-1;d>=-1&&!f;d--){var p;d>=0?p=arguments[d]:(u===void 0&&(u=process.cwd()),p=u),a(p),p.length!==0&&(h=p+"/"+h,f=p.charCodeAt(0)===47)}return h=s(h,!f),f?h.length>0?"/"+h:"/":h.length>0?h:"."},"resolve"),normalize:o(function(u){if(a(u),u.length===0)return".";var h=u.charCodeAt(0)===47,f=u.charCodeAt(u.length-1)===47;return(u=s(u,!h)).length!==0||h||(u="."),u.length>0&&f&&(u+="/"),h?"/"+u:u},"normalize"),isAbsolute:o(function(u){return a(u),u.length>0&&u.charCodeAt(0)===47},"isAbsolute"),join:o(function(){if(arguments.length===0)return".";for(var u,h=0;h<arguments.length;++h){var f=arguments[h];a(f),f.length>0&&(u===void 0?u=f:u+="/"+f)}return u===void 0?".":l.normalize(u)},"join"),relative:o(function(u,h){if(a(u),a(h),u===h||(u=l.resolve(u))===(h=l.resolve(h)))return"";for(var f=1;f<u.length&&u.charCodeAt(f)===47;++f);for(var d=u.length,p=d-f,m=1;m<h.length&&h.charCodeAt(m)===47;++m);for(var g=h.length-m,y=p<g?p:g,v=-1,x=0;x<=y;++x){if(x===y){if(g>y){if(h.charCodeAt(m+x)===47)return h.slice(m+x+1);if(x===0)return h.slice(m+x)}else p>y&&(u.charCodeAt(f+x)===47?v=x:x===0&&(v=0));break}var b=u.charCodeAt(f+x);if(b!==h.charCodeAt(m+x))break;b===47&&(v=x)}var w="";for(x=f+v+1;x<=d;++x)x!==d&&u.charCodeAt(x)!==47||(w.length===0?w+="..":w+="/..");return w.length>0?w+h.slice(m+v):(m+=v,h.charCodeAt(m)===47&&++m,h.slice(m))},"relative"),_makeLong:o(function(u){return u},"_makeLong"),dirname:o(function(u){if(a(u),u.length===0)return".";for(var h=u.charCodeAt(0),f=h===47,d=-1,p=!0,m=u.length-1;m>=1;--m)if((h=u.charCodeAt(m))===47){if(!p){d=m;break}}else p=!1;return d===-1?f?"/":".":f&&d===1?"//":u.slice(0,d)},"dirname"),basename:o(function(u,h){if(h!==void 0&&typeof h!="string")throw new TypeError('"ext" argument must be a string');a(u);var f,d=0,p=-1,m=!0;if(h!==void 0&&h.length>0&&h.length<=u.length){if(h.length===u.length&&h===u)return"";var g=h.length-1,y=-1;for(f=u.length-1;f>=0;--f){var v=u.charCodeAt(f);if(v===47){if(!m){d=f+1;break}}else y===-1&&(m=!1,y=f+1),g>=0&&(v===h.charCodeAt(g)?--g==-1&&(p=f):(g=-1,p=y))}return d===p?p=y:p===-1&&(p=u.length),u.slice(d,p)}for(f=u.length-1;f>=0;--f)if(u.charCodeAt(f)===47){if(!m){d=f+1;break}}else p===-1&&(m=!1,p=f+1);return p===-1?"":u.slice(d,p)},"basename"),extname:o(function(u){a(u);for(var h=-1,f=0,d=-1,p=!0,m=0,g=u.length-1;g>=0;--g){var y=u.charCodeAt(g);if(y!==47)d===-1&&(p=!1,d=g+1),y===46?h===-1?h=g:m!==1&&(m=1):h!==-1&&(m=-1);else if(!p){f=g+1;break}}return h===-1||d===-1||m===0||m===1&&h===d-1&&h===f+1?"":u.slice(h,d)},"extname"),format:o(function(u){if(u===null||typeof u!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof u);return function(h,f){var d=f.dir||f.root,p=f.base||(f.name||"")+(f.ext||"");return d?d===f.root?d+p:d+"/"+p:p}(0,u)},"format"),parse:o(function(u){a(u);var h={root:"",dir:"",base:"",ext:"",name:""};if(u.length===0)return h;var f,d=u.charCodeAt(0),p=d===47;p?(h.root="/",f=1):f=0;for(var m=-1,g=0,y=-1,v=!0,x=u.length-1,b=0;x>=f;--x)if((d=u.charCodeAt(x))!==47)y===-1&&(v=!1,y=x+1),d===46?m===-1?m=x:b!==1&&(b=1):m!==-1&&(b=-1);else if(!v){g=x+1;break}return m===-1||y===-1||b===0||b===1&&m===y-1&&m===g+1?y!==-1&&(h.base=h.name=g===0&&p?u.slice(1,y):u.slice(g,y)):(g===0&&p?(h.name=u.slice(1,m),h.base=u.slice(1,y)):(h.name=u.slice(g,m),h.base=u.slice(g,y)),h.ext=u.slice(m,y)),g>0?h.dir=u.slice(0,g-1):p&&(h.dir="/"),h},"parse"),sep:"/",delimiter:":",win32:null,posix:null};l.posix=l,i.exports=l}},e={};function r(i){var a=e[i];if(a!==void 0)return a.exports;var s=e[i]={exports:{}};return t[i](s,s.exports,r),s.exports}o(r,"r"),r.d=(i,a)=>{for(var s in a)r.o(a,s)&&!r.o(i,s)&&Object.defineProperty(i,s,{enumerable:!0,get:a[s]})},r.o=(i,a)=>Object.prototype.hasOwnProperty.call(i,a),r.r=i=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(i,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(i,"__esModule",{value:!0})};var n={};(()=>{let i;r.r(n),r.d(n,{URI:o(()=>p,"URI"),Utils:o(()=>I,"Utils")}),typeof process=="object"?i=process.platform==="win32":typeof navigator=="object"&&(i=navigator.userAgent.indexOf("Windows")>=0);let a=/^\w[\w\d+.-]*$/,s=/^\//,l=/^\/\//;function u(D,k){if(!D.scheme&&k)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${D.authority}", path: "${D.path}", query: "${D.query}", fragment: "${D.fragment}"}`);if(D.scheme&&!a.test(D.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(D.path){if(D.authority){if(!s.test(D.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(l.test(D.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}}o(u,"s");let h="",f="/",d=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class p{static{o(this,"f")}static isUri(k){return k instanceof p||!!k&&typeof k.authority=="string"&&typeof k.fragment=="string"&&typeof k.path=="string"&&typeof k.query=="string"&&typeof k.scheme=="string"&&typeof k.fsPath=="string"&&typeof k.with=="function"&&typeof k.toString=="function"}scheme;authority;path;query;fragment;constructor(k,L,R,O,M,B=!1){typeof k=="object"?(this.scheme=k.scheme||h,this.authority=k.authority||h,this.path=k.path||h,this.query=k.query||h,this.fragment=k.fragment||h):(this.scheme=function(F,P){return F||P?F:"file"}(k,B),this.authority=L||h,this.path=function(F,P){switch(F){case"https":case"http":case"file":P?P[0]!==f&&(P=f+P):P=f}return P}(this.scheme,R||h),this.query=O||h,this.fragment=M||h,u(this,B))}get fsPath(){return b(this,!1)}with(k){if(!k)return this;let{scheme:L,authority:R,path:O,query:M,fragment:B}=k;return L===void 0?L=this.scheme:L===null&&(L=h),R===void 0?R=this.authority:R===null&&(R=h),O===void 0?O=this.path:O===null&&(O=h),M===void 0?M=this.query:M===null&&(M=h),B===void 0?B=this.fragment:B===null&&(B=h),L===this.scheme&&R===this.authority&&O===this.path&&M===this.query&&B===this.fragment?this:new g(L,R,O,M,B)}static parse(k,L=!1){let R=d.exec(k);return R?new g(R[2]||h,E(R[4]||h),E(R[5]||h),E(R[7]||h),E(R[9]||h),L):new g(h,h,h,h,h)}static file(k){let L=h;if(i&&(k=k.replace(/\\/g,f)),k[0]===f&&k[1]===f){let R=k.indexOf(f,2);R===-1?(L=k.substring(2),k=f):(L=k.substring(2,R),k=k.substring(R)||f)}return new g("file",L,k,h,h)}static from(k){let L=new g(k.scheme,k.authority,k.path,k.query,k.fragment);return u(L,!0),L}toString(k=!1){return w(this,k)}toJSON(){return this}static revive(k){if(k){if(k instanceof p)return k;{let L=new g(k);return L._formatted=k.external,L._fsPath=k._sep===m?k.fsPath:null,L}}return k}}let m=i?1:void 0;class g extends p{static{o(this,"l")}_formatted=null;_fsPath=null;get fsPath(){return this._fsPath||(this._fsPath=b(this,!1)),this._fsPath}toString(k=!1){return k?w(this,!0):(this._formatted||(this._formatted=w(this,!1)),this._formatted)}toJSON(){let k={$mid:1};return this._fsPath&&(k.fsPath=this._fsPath,k._sep=m),this._formatted&&(k.external=this._formatted),this.path&&(k.path=this.path),this.scheme&&(k.scheme=this.scheme),this.authority&&(k.authority=this.authority),this.query&&(k.query=this.query),this.fragment&&(k.fragment=this.fragment),k}}let y={58:"%3A",47:"%2F",63:"%3F",35:"%23",91:"%5B",93:"%5D",64:"%40",33:"%21",36:"%24",38:"%26",39:"%27",40:"%28",41:"%29",42:"%2A",43:"%2B",44:"%2C",59:"%3B",61:"%3D",32:"%20"};function v(D,k,L){let R,O=-1;for(let M=0;M<D.length;M++){let B=D.charCodeAt(M);if(B>=97&&B<=122||B>=65&&B<=90||B>=48&&B<=57||B===45||B===46||B===95||B===126||k&&B===47||L&&B===91||L&&B===93||L&&B===58)O!==-1&&(R+=encodeURIComponent(D.substring(O,M)),O=-1),R!==void 0&&(R+=D.charAt(M));else{R===void 0&&(R=D.substr(0,M));let F=y[B];F!==void 0?(O!==-1&&(R+=encodeURIComponent(D.substring(O,M)),O=-1),R+=F):O===-1&&(O=M)}}return O!==-1&&(R+=encodeURIComponent(D.substring(O))),R!==void 0?R:D}o(v,"d");function x(D){let k;for(let L=0;L<D.length;L++){let R=D.charCodeAt(L);R===35||R===63?(k===void 0&&(k=D.substr(0,L)),k+=y[R]):k!==void 0&&(k+=D[L])}return k!==void 0?k:D}o(x,"p");function b(D,k){let L;return L=D.authority&&D.path.length>1&&D.scheme==="file"?`//${D.authority}${D.path}`:D.path.charCodeAt(0)===47&&(D.path.charCodeAt(1)>=65&&D.path.charCodeAt(1)<=90||D.path.charCodeAt(1)>=97&&D.path.charCodeAt(1)<=122)&&D.path.charCodeAt(2)===58?k?D.path.substr(1):D.path[1].toLowerCase()+D.path.substr(2):D.path,i&&(L=L.replace(/\//g,"\\")),L}o(b,"m");function w(D,k){let L=k?x:v,R="",{scheme:O,authority:M,path:B,query:F,fragment:P}=D;if(O&&(R+=O,R+=":"),(M||O==="file")&&(R+=f,R+=f),M){let z=M.indexOf("@");if(z!==-1){let $=M.substr(0,z);M=M.substr(z+1),z=$.lastIndexOf(":"),z===-1?R+=L($,!1,!1):(R+=L($.substr(0,z),!1,!1),R+=":",R+=L($.substr(z+1),!1,!0)),R+="@"}M=M.toLowerCase(),z=M.lastIndexOf(":"),z===-1?R+=L(M,!1,!0):(R+=L(M.substr(0,z),!1,!0),R+=M.substr(z))}if(B){if(B.length>=3&&B.charCodeAt(0)===47&&B.charCodeAt(2)===58){let z=B.charCodeAt(1);z>=65&&z<=90&&(B=`/${String.fromCharCode(z+32)}:${B.substr(3)}`)}else if(B.length>=2&&B.charCodeAt(1)===58){let z=B.charCodeAt(0);z>=65&&z<=90&&(B=`${String.fromCharCode(z+32)}:${B.substr(2)}`)}R+=L(B,!0,!1)}return F&&(R+="?",R+=L(F,!1,!1)),P&&(R+="#",R+=k?P:v(P,!1,!1)),R}o(w,"y");function C(D){try{return decodeURIComponent(D)}catch{return D.length>3?D.substr(0,3)+C(D.substr(3)):D}}o(C,"v");let T=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function E(D){return D.match(T)?D.replace(T,k=>C(k)):D}o(E,"C");var A=r(470);let S=A.posix||A,_="/";var I;(function(D){D.joinPath=function(k,...L){return k.with({path:S.join(k.path,...L)})},D.resolvePath=function(k,...L){let R=k.path,O=!1;R[0]!==_&&(R=_+R,O=!0);let M=S.resolve(R,...L);return O&&M[0]===_&&!k.authority&&(M=M.substring(1)),k.with({path:M})},D.dirname=function(k){if(k.path.length===0||k.path===_)return k;let L=S.dirname(k.path);return L.length===1&&L.charCodeAt(0)===46&&(L=""),k.with({path:L})},D.basename=function(k){return S.basename(k.path)},D.extname=function(k){return S.extname(k.path)}})(I||(I={}))})(),Hle=n})();({URI:us,Utils:u1}=Hle)});var hs,Fc=N(()=>{"use strict";OM();(function(t){t.basename=u1.basename,t.dirname=u1.dirname,t.extname=u1.extname,t.joinPath=u1.joinPath,t.resolvePath=u1.resolvePath;function e(i,a){return i?.toString()===a?.toString()}o(e,"equals"),t.equals=e;function r(i,a){let s=typeof i=="string"?i:i.path,l=typeof a=="string"?a:a.path,u=s.split("/").filter(m=>m.length>0),h=l.split("/").filter(m=>m.length>0),f=0;for(;f<u.length&&u[f]===h[f];f++);let d="../".repeat(u.length-f),p=h.slice(f).join("/");return d+p}o(r,"relative"),t.relative=r;function n(i){return us.parse(i.toString()).toString()}o(n,"normalize"),t.normalize=n})(hs||(hs={}))});var kn,Nx,Mx,h1=N(()=>{"use strict";Ule();h1();qo();Ps();Fc();(function(t){t[t.Changed=0]="Changed",t[t.Parsed=1]="Parsed",t[t.IndexedContent=2]="IndexedContent",t[t.ComputedScopes=3]="ComputedScopes",t[t.Linked=4]="Linked",t[t.IndexedReferences=5]="IndexedReferences",t[t.Validated=6]="Validated"})(kn||(kn={}));Nx=class{static{o(this,"DefaultLangiumDocumentFactory")}constructor(e){this.serviceRegistry=e.ServiceRegistry,this.textDocuments=e.workspace.TextDocuments,this.fileSystemProvider=e.workspace.FileSystemProvider}async fromUri(e,r=yr.CancellationToken.None){let n=await this.fileSystemProvider.readFile(e);return this.createAsync(e,n,r)}fromTextDocument(e,r,n){return r=r??us.parse(e.uri),yr.CancellationToken.is(n)?this.createAsync(r,e,n):this.create(r,e,n)}fromString(e,r,n){return yr.CancellationToken.is(n)?this.createAsync(r,e,n):this.create(r,e,n)}fromModel(e,r){return this.create(r,{$model:e})}create(e,r,n){if(typeof r=="string"){let i=this.parse(e,r,n);return this.createLangiumDocument(i,e,void 0,r)}else if("$model"in r){let i={value:r.$model,parserErrors:[],lexerErrors:[]};return this.createLangiumDocument(i,e)}else{let i=this.parse(e,r.getText(),n);return this.createLangiumDocument(i,e,r)}}async createAsync(e,r,n){if(typeof r=="string"){let i=await this.parseAsync(e,r,n);return this.createLangiumDocument(i,e,void 0,r)}else{let i=await this.parseAsync(e,r.getText(),n);return this.createLangiumDocument(i,e,r)}}createLangiumDocument(e,r,n,i){let a;if(n)a={parseResult:e,uri:r,state:kn.Parsed,references:[],textDocument:n};else{let s=this.createTextDocumentGetter(r,i);a={parseResult:e,uri:r,state:kn.Parsed,references:[],get textDocument(){return s()}}}return e.value.$document=a,a}async update(e,r){var n,i;let a=(n=e.parseResult.value.$cstNode)===null||n===void 0?void 0:n.root.fullText,s=(i=this.textDocuments)===null||i===void 0?void 0:i.get(e.uri.toString()),l=s?s.getText():await this.fileSystemProvider.readFile(e.uri);if(s)Object.defineProperty(e,"textDocument",{value:s});else{let u=this.createTextDocumentGetter(e.uri,l);Object.defineProperty(e,"textDocument",{get:u})}return a!==l&&(e.parseResult=await this.parseAsync(e.uri,l,r),e.parseResult.value.$document=e),e.state=kn.Parsed,e}parse(e,r,n){return this.serviceRegistry.getServices(e).parser.LangiumParser.parse(r,n)}parseAsync(e,r,n){return this.serviceRegistry.getServices(e).parser.AsyncParser.parse(r,n)}createTextDocumentGetter(e,r){let n=this.serviceRegistry,i;return()=>i??(i=c1.create(e.toString(),n.getServices(e).LanguageMetaData.languageId,0,r??""))}},Mx=class{static{o(this,"DefaultLangiumDocuments")}constructor(e){this.documentMap=new Map,this.langiumDocumentFactory=e.workspace.LangiumDocumentFactory,this.serviceRegistry=e.ServiceRegistry}get all(){return en(this.documentMap.values())}addDocument(e){let r=e.uri.toString();if(this.documentMap.has(r))throw new Error(`A document with the URI '${r}' is already present.`);this.documentMap.set(r,e)}getDocument(e){let r=e.toString();return this.documentMap.get(r)}async getOrCreateDocument(e,r){let n=this.getDocument(e);return n||(n=await this.langiumDocumentFactory.fromUri(e,r),this.addDocument(n),n)}createDocument(e,r,n){if(n)return this.langiumDocumentFactory.fromString(r,e,n).then(i=>(this.addDocument(i),i));{let i=this.langiumDocumentFactory.fromString(r,e);return this.addDocument(i),i}}hasDocument(e){return this.documentMap.has(e.toString())}invalidateDocument(e){let r=e.toString(),n=this.documentMap.get(r);return n&&(this.serviceRegistry.getServices(e).references.Linker.unlink(n),n.state=kn.Changed,n.precomputedScopes=void 0,n.diagnostics=void 0),n}deleteDocument(e){let r=e.toString(),n=this.documentMap.get(r);return n&&(n.state=kn.Changed,this.documentMap.delete(r)),n}}});var PM,Ix,BM=N(()=>{"use strict";qo();Rl();is();Yo();h1();PM=Symbol("ref_resolving"),Ix=class{static{o(this,"DefaultLinker")}constructor(e){this.reflection=e.shared.AstReflection,this.langiumDocuments=()=>e.shared.workspace.LangiumDocuments,this.scopeProvider=e.references.ScopeProvider,this.astNodeLocator=e.workspace.AstNodeLocator}async link(e,r=yr.CancellationToken.None){for(let n of Wo(e.parseResult.value))await xi(r),Ag(n).forEach(i=>this.doLink(i,e))}doLink(e,r){var n;let i=e.reference;if(i._ref===void 0){i._ref=PM;try{let a=this.getCandidate(e);if(jd(a))i._ref=a;else if(i._nodeDescription=a,this.langiumDocuments().hasDocument(a.documentUri)){let s=this.loadAstNode(a);i._ref=s??this.createLinkingError(e,a)}else i._ref=void 0}catch(a){console.error(`An error occurred while resolving reference to '${i.$refText}':`,a);let s=(n=a.message)!==null&&n!==void 0?n:String(a);i._ref=Object.assign(Object.assign({},e),{message:`An error occurred while resolving reference to '${i.$refText}': ${s}`})}r.references.push(i)}}unlink(e){for(let r of e.references)delete r._ref,delete r._nodeDescription;e.references=[]}getCandidate(e){let n=this.scopeProvider.getScope(e).getElement(e.reference.$refText);return n??this.createLinkingError(e)}buildReference(e,r,n,i){let a=this,s={$refNode:n,$refText:i,get ref(){var l;if(ii(this._ref))return this._ref;if(kR(this._nodeDescription)){let u=a.loadAstNode(this._nodeDescription);this._ref=u??a.createLinkingError({reference:s,container:e,property:r},this._nodeDescription)}else if(this._ref===void 0){this._ref=PM;let u=H2(e).$document,h=a.getLinkedNode({reference:s,container:e,property:r});if(h.error&&u&&u.state<kn.ComputedScopes)return this._ref=void 0;this._ref=(l=h.node)!==null&&l!==void 0?l:h.error,this._nodeDescription=h.descr,u?.references.push(this)}else if(this._ref===PM)throw new Error(`Cyclic reference resolution detected: ${a.astNodeLocator.getAstNodePath(e)}/${r} (symbol '${i}')`);return ii(this._ref)?this._ref:void 0},get $nodeDescription(){return this._nodeDescription},get error(){return jd(this._ref)?this._ref:void 0}};return s}getLinkedNode(e){var r;try{let n=this.getCandidate(e);if(jd(n))return{error:n};let i=this.loadAstNode(n);return i?{node:i,descr:n}:{descr:n,error:this.createLinkingError(e,n)}}catch(n){console.error(`An error occurred while resolving reference to '${e.reference.$refText}':`,n);let i=(r=n.message)!==null&&r!==void 0?r:String(n);return{error:Object.assign(Object.assign({},e),{message:`An error occurred while resolving reference to '${e.reference.$refText}': ${i}`})}}}loadAstNode(e){if(e.node)return e.node;let r=this.langiumDocuments().getDocument(e.documentUri);if(r)return this.astNodeLocator.getAstNode(r.parseResult.value,e.path)}createLinkingError(e,r){let n=H2(e.container).$document;n&&n.state<kn.ComputedScopes&&console.warn(`Attempted reference resolution before document reached ComputedScopes state (${n.uri}).`);let i=this.reflection.getReferenceType(e);return Object.assign(Object.assign({},e),{message:`Could not resolve reference to ${i} named '${e.reference.$refText}'.`,targetDescription:r})}}});function Wle(t){return typeof t.name=="string"}var Ox,FM=N(()=>{"use strict";Ol();o(Wle,"isNamed");Ox=class{static{o(this,"DefaultNameProvider")}getName(e){if(Wle(e))return e.name}getNameNode(e){return Q2(e.$cstNode,"name")}}});var Px,$M=N(()=>{"use strict";Ol();Rl();is();Nl();Ps();Fc();Px=class{static{o(this,"DefaultReferences")}constructor(e){this.nameProvider=e.references.NameProvider,this.index=e.shared.workspace.IndexManager,this.nodeLocator=e.workspace.AstNodeLocator}findDeclaration(e){if(e){let r=hN(e),n=e.astNode;if(r&&n){let i=n[r.feature];if(va(i))return i.ref;if(Array.isArray(i)){for(let a of i)if(va(a)&&a.$refNode&&a.$refNode.offset<=e.offset&&a.$refNode.end>=e.end)return a.ref}}if(n){let i=this.nameProvider.getNameNode(n);if(i&&(i===e||SR(e,i)))return n}}}findDeclarationNode(e){let r=this.findDeclaration(e);if(r?.$cstNode){let n=this.nameProvider.getNameNode(r);return n??r.$cstNode}}findReferences(e,r){let n=[];if(r.includeDeclaration){let a=this.getReferenceToSelf(e);a&&n.push(a)}let i=this.index.findAllReferences(e,this.nodeLocator.getAstNodePath(e));return r.documentUri&&(i=i.filter(a=>hs.equals(a.sourceUri,r.documentUri))),n.push(...i),en(n)}getReferenceToSelf(e){let r=this.nameProvider.getNameNode(e);if(r){let n=Pa(e),i=this.nodeLocator.getAstNodePath(e);return{sourceUri:n.uri,sourcePath:i,targetUri:n.uri,targetPath:i,segment:Qd(r),local:!0}}}}});var Bl,vp,f1=N(()=>{"use strict";Ps();Bl=class{static{o(this,"MultiMap")}constructor(e){if(this.map=new Map,e)for(let[r,n]of e)this.add(r,n)}get size(){return zm.sum(en(this.map.values()).map(e=>e.length))}clear(){this.map.clear()}delete(e,r){if(r===void 0)return this.map.delete(e);{let n=this.map.get(e);if(n){let i=n.indexOf(r);if(i>=0)return n.length===1?this.map.delete(e):n.splice(i,1),!0}return!1}}get(e){var r;return(r=this.map.get(e))!==null&&r!==void 0?r:[]}has(e,r){if(r===void 0)return this.map.has(e);{let n=this.map.get(e);return n?n.indexOf(r)>=0:!1}}add(e,r){return this.map.has(e)?this.map.get(e).push(r):this.map.set(e,[r]),this}addAll(e,r){return this.map.has(e)?this.map.get(e).push(...r):this.map.set(e,Array.from(r)),this}forEach(e){this.map.forEach((r,n)=>r.forEach(i=>e(i,n,this)))}[Symbol.iterator](){return this.entries().iterator()}entries(){return en(this.map.entries()).flatMap(([e,r])=>r.map(n=>[e,n]))}keys(){return en(this.map.keys())}values(){return en(this.map.values()).flat()}entriesGroupedByKey(){return en(this.map.entries())}},vp=class{static{o(this,"BiMap")}get size(){return this.map.size}constructor(e){if(this.map=new Map,this.inverse=new Map,e)for(let[r,n]of e)this.set(r,n)}clear(){this.map.clear(),this.inverse.clear()}set(e,r){return this.map.set(e,r),this.inverse.set(r,e),this}get(e){return this.map.get(e)}getKey(e){return this.inverse.get(e)}delete(e){let r=this.map.get(e);return r!==void 0?(this.map.delete(e),this.inverse.delete(r),!0):!1}}});var Bx,zM=N(()=>{"use strict";qo();is();f1();Yo();Bx=class{static{o(this,"DefaultScopeComputation")}constructor(e){this.nameProvider=e.references.NameProvider,this.descriptions=e.workspace.AstNodeDescriptionProvider}async computeExports(e,r=yr.CancellationToken.None){return this.computeExportsForNode(e.parseResult.value,e,void 0,r)}async computeExportsForNode(e,r,n=W2,i=yr.CancellationToken.None){let a=[];this.exportNode(e,a,r);for(let s of n(e))await xi(i),this.exportNode(s,a,r);return a}exportNode(e,r,n){let i=this.nameProvider.getName(e);i&&r.push(this.descriptions.createDescription(e,i,n))}async computeLocalScopes(e,r=yr.CancellationToken.None){let n=e.parseResult.value,i=new Bl;for(let a of Nc(n))await xi(r),this.processNode(a,e,i);return i}processNode(e,r,n){let i=e.$container;if(i){let a=this.nameProvider.getName(e);a&&n.add(i,this.descriptions.createDescription(e,a,r))}}}});var d1,Fx,xFe,GM=N(()=>{"use strict";Ps();d1=class{static{o(this,"StreamScope")}constructor(e,r,n){var i;this.elements=e,this.outerScope=r,this.caseInsensitive=(i=n?.caseInsensitive)!==null&&i!==void 0?i:!1}getAllElements(){return this.outerScope?this.elements.concat(this.outerScope.getAllElements()):this.elements}getElement(e){let r=this.caseInsensitive?this.elements.find(n=>n.name.toLowerCase()===e.toLowerCase()):this.elements.find(n=>n.name===e);if(r)return r;if(this.outerScope)return this.outerScope.getElement(e)}},Fx=class{static{o(this,"MapScope")}constructor(e,r,n){var i;this.elements=new Map,this.caseInsensitive=(i=n?.caseInsensitive)!==null&&i!==void 0?i:!1;for(let a of e){let s=this.caseInsensitive?a.name.toLowerCase():a.name;this.elements.set(s,a)}this.outerScope=r}getElement(e){let r=this.caseInsensitive?e.toLowerCase():e,n=this.elements.get(r);if(n)return n;if(this.outerScope)return this.outerScope.getElement(e)}getAllElements(){let e=en(this.elements.values());return this.outerScope&&(e=e.concat(this.outerScope.getAllElements())),e}},xFe={getElement(){},getAllElements(){return I2}}});var p1,$x,xp,_E,m1,DE=N(()=>{"use strict";p1=class{static{o(this,"DisposableCache")}constructor(){this.toDispose=[],this.isDisposed=!1}onDispose(e){this.toDispose.push(e)}dispose(){this.throwIfDisposed(),this.clear(),this.isDisposed=!0,this.toDispose.forEach(e=>e.dispose())}throwIfDisposed(){if(this.isDisposed)throw new Error("This cache has already been disposed")}},$x=class extends p1{static{o(this,"SimpleCache")}constructor(){super(...arguments),this.cache=new Map}has(e){return this.throwIfDisposed(),this.cache.has(e)}set(e,r){this.throwIfDisposed(),this.cache.set(e,r)}get(e,r){if(this.throwIfDisposed(),this.cache.has(e))return this.cache.get(e);if(r){let n=r();return this.cache.set(e,n),n}else return}delete(e){return this.throwIfDisposed(),this.cache.delete(e)}clear(){this.throwIfDisposed(),this.cache.clear()}},xp=class extends p1{static{o(this,"ContextCache")}constructor(e){super(),this.cache=new Map,this.converter=e??(r=>r)}has(e,r){return this.throwIfDisposed(),this.cacheForContext(e).has(r)}set(e,r,n){this.throwIfDisposed(),this.cacheForContext(e).set(r,n)}get(e,r,n){this.throwIfDisposed();let i=this.cacheForContext(e);if(i.has(r))return i.get(r);if(n){let a=n();return i.set(r,a),a}else return}delete(e,r){return this.throwIfDisposed(),this.cacheForContext(e).delete(r)}clear(e){if(this.throwIfDisposed(),e){let r=this.converter(e);this.cache.delete(r)}else this.cache.clear()}cacheForContext(e){let r=this.converter(e),n=this.cache.get(r);return n||(n=new Map,this.cache.set(r,n)),n}},_E=class extends xp{static{o(this,"DocumentCache")}constructor(e,r){super(n=>n.toString()),r?(this.toDispose.push(e.workspace.DocumentBuilder.onDocumentPhase(r,n=>{this.clear(n.uri.toString())})),this.toDispose.push(e.workspace.DocumentBuilder.onUpdate((n,i)=>{for(let a of i)this.clear(a)}))):this.toDispose.push(e.workspace.DocumentBuilder.onUpdate((n,i)=>{let a=n.concat(i);for(let s of a)this.clear(s)}))}},m1=class extends $x{static{o(this,"WorkspaceCache")}constructor(e,r){super(),r?(this.toDispose.push(e.workspace.DocumentBuilder.onBuildPhase(r,()=>{this.clear()})),this.toDispose.push(e.workspace.DocumentBuilder.onUpdate((n,i)=>{i.length>0&&this.clear()}))):this.toDispose.push(e.workspace.DocumentBuilder.onUpdate(()=>{this.clear()}))}}});var zx,VM=N(()=>{"use strict";GM();is();Ps();DE();zx=class{static{o(this,"DefaultScopeProvider")}constructor(e){this.reflection=e.shared.AstReflection,this.nameProvider=e.references.NameProvider,this.descriptions=e.workspace.AstNodeDescriptionProvider,this.indexManager=e.shared.workspace.IndexManager,this.globalScopeCache=new m1(e.shared)}getScope(e){let r=[],n=this.reflection.getReferenceType(e),i=Pa(e.container).precomputedScopes;if(i){let s=e.container;do{let l=i.get(s);l.length>0&&r.push(en(l).filter(u=>this.reflection.isSubtype(u.type,n))),s=s.$container}while(s)}let a=this.getGlobalScope(n,e);for(let s=r.length-1;s>=0;s--)a=this.createScope(r[s],a);return a}createScope(e,r,n){return new d1(en(e),r,n)}createScopeForNodes(e,r,n){let i=en(e).map(a=>{let s=this.nameProvider.getName(a);if(s)return this.descriptions.createDescription(a,s)}).nonNullable();return new d1(i,r,n)}getGlobalScope(e,r){return this.globalScopeCache.get(e,()=>new Fx(this.indexManager.allElements(e)))}}});function UM(t){return typeof t.$comment=="string"}function qle(t){return typeof t=="object"&&!!t&&("$ref"in t||"$error"in t)}var Gx,LE=N(()=>{"use strict";OM();Rl();is();Ol();o(UM,"isAstNodeWithComment");o(qle,"isIntermediateReference");Gx=class{static{o(this,"DefaultJsonSerializer")}constructor(e){this.ignoreProperties=new Set(["$container","$containerProperty","$containerIndex","$document","$cstNode"]),this.langiumDocuments=e.shared.workspace.LangiumDocuments,this.astNodeLocator=e.workspace.AstNodeLocator,this.nameProvider=e.references.NameProvider,this.commentProvider=e.documentation.CommentProvider}serialize(e,r){let n=r??{},i=r?.replacer,a=o((l,u)=>this.replacer(l,u,n),"defaultReplacer"),s=i?(l,u)=>i(l,u,a):a;try{return this.currentDocument=Pa(e),JSON.stringify(e,s,r?.space)}finally{this.currentDocument=void 0}}deserialize(e,r){let n=r??{},i=JSON.parse(e);return this.linkNode(i,i,n),i}replacer(e,r,{refText:n,sourceText:i,textRegions:a,comments:s,uriConverter:l}){var u,h,f,d;if(!this.ignoreProperties.has(e))if(va(r)){let p=r.ref,m=n?r.$refText:void 0;if(p){let g=Pa(p),y="";this.currentDocument&&this.currentDocument!==g&&(l?y=l(g.uri,r):y=g.uri.toString());let v=this.astNodeLocator.getAstNodePath(p);return{$ref:`${y}#${v}`,$refText:m}}else return{$error:(h=(u=r.error)===null||u===void 0?void 0:u.message)!==null&&h!==void 0?h:"Could not resolve reference",$refText:m}}else if(ii(r)){let p;if(a&&(p=this.addAstNodeRegionWithAssignmentsTo(Object.assign({},r)),(!e||r.$document)&&p?.$textRegion&&(p.$textRegion.documentURI=(f=this.currentDocument)===null||f===void 0?void 0:f.uri.toString())),i&&!e&&(p??(p=Object.assign({},r)),p.$sourceText=(d=r.$cstNode)===null||d===void 0?void 0:d.text),s){p??(p=Object.assign({},r));let m=this.commentProvider.getComment(r);m&&(p.$comment=m.replace(/\r/g,""))}return p??r}else return r}addAstNodeRegionWithAssignmentsTo(e){let r=o(n=>({offset:n.offset,end:n.end,length:n.length,range:n.range}),"createDocumentSegment");if(e.$cstNode){let n=e.$textRegion=r(e.$cstNode),i=n.assignments={};return Object.keys(e).filter(a=>!a.startsWith("$")).forEach(a=>{let s=oN(e.$cstNode,a).map(r);s.length!==0&&(i[a]=s)}),e}}linkNode(e,r,n,i,a,s){for(let[u,h]of Object.entries(e))if(Array.isArray(h))for(let f=0;f<h.length;f++){let d=h[f];qle(d)?h[f]=this.reviveReference(e,u,r,d,n):ii(d)&&this.linkNode(d,r,n,e,u,f)}else qle(h)?e[u]=this.reviveReference(e,u,r,h,n):ii(h)&&this.linkNode(h,r,n,e,u);let l=e;l.$container=i,l.$containerProperty=a,l.$containerIndex=s}reviveReference(e,r,n,i,a){let s=i.$refText,l=i.$error;if(i.$ref){let u=this.getRefNode(n,i.$ref,a.uriConverter);if(ii(u))return s||(s=this.nameProvider.getName(u)),{$refText:s??"",ref:u};l=u}if(l){let u={$refText:s??""};return u.error={container:e,property:r,message:l,reference:u},u}else return}getRefNode(e,r,n){try{let i=r.indexOf("#");if(i===0){let u=this.astNodeLocator.getAstNode(e,r.substring(1));return u||"Could not resolve path: "+r}if(i<0){let u=n?n(r):us.parse(r),h=this.langiumDocuments.getDocument(u);return h?h.parseResult.value:"Could not find document for URI: "+r}let a=n?n(r.substring(0,i)):us.parse(r.substring(0,i)),s=this.langiumDocuments.getDocument(a);if(!s)return"Could not find document for URI: "+r;if(i===r.length-1)return s.parseResult.value;let l=this.astNodeLocator.getAstNode(s.parseResult.value,r.substring(i+1));return l||"Could not resolve URI: "+r}catch(i){return String(i)}}}});var Vx,HM=N(()=>{"use strict";Fc();Vx=class{static{o(this,"DefaultServiceRegistry")}get map(){return this.fileExtensionMap}constructor(e){this.languageIdMap=new Map,this.fileExtensionMap=new Map,this.textDocuments=e?.workspace.TextDocuments}register(e){let r=e.LanguageMetaData;for(let n of r.fileExtensions)this.fileExtensionMap.has(n)&&console.warn(`The file extension ${n} is used by multiple languages. It is now assigned to '${r.languageId}'.`),this.fileExtensionMap.set(n,e);this.languageIdMap.set(r.languageId,e),this.languageIdMap.size===1?this.singleton=e:this.singleton=void 0}getServices(e){var r,n;if(this.singleton!==void 0)return this.singleton;if(this.languageIdMap.size===0)throw new Error("The service registry is empty. Use `register` to register the services of a language.");let i=(n=(r=this.textDocuments)===null||r===void 0?void 0:r.get(e))===null||n===void 0?void 0:n.languageId;if(i!==void 0){let l=this.languageIdMap.get(i);if(l)return l}let a=hs.extname(e),s=this.fileExtensionMap.get(a);if(!s)throw i?new Error(`The service registry contains no services for the extension '${a}' for language '${i}'.`):new Error(`The service registry contains no services for the extension '${a}'.`);return s}hasServices(e){try{return this.getServices(e),!0}catch{return!1}}get all(){return Array.from(this.languageIdMap.values())}}});function bp(t){return{code:t}}var g1,Ux,Hx=N(()=>{"use strict";Xo();f1();Yo();Ps();o(bp,"diagnosticData");(function(t){t.all=["fast","slow","built-in"]})(g1||(g1={}));Ux=class{static{o(this,"ValidationRegistry")}constructor(e){this.entries=new Bl,this.entriesBefore=[],this.entriesAfter=[],this.reflection=e.shared.AstReflection}register(e,r=this,n="fast"){if(n==="built-in")throw new Error("The 'built-in' category is reserved for lexer, parser, and linker errors.");for(let[i,a]of Object.entries(e)){let s=a;if(Array.isArray(s))for(let l of s){let u={check:this.wrapValidationException(l,r),category:n};this.addEntry(i,u)}else if(typeof s=="function"){let l={check:this.wrapValidationException(s,r),category:n};this.addEntry(i,l)}else Lc(s)}}wrapValidationException(e,r){return async(n,i,a)=>{await this.handleException(()=>e.call(r,n,i,a),"An error occurred during validation",i,n)}}async handleException(e,r,n,i){try{await e()}catch(a){if(Bc(a))throw a;console.error(`${r}:`,a),a instanceof Error&&a.stack&&console.error(a.stack);let s=a instanceof Error?a.message:String(a);n("error",`${r}: ${s}`,{node:i})}}addEntry(e,r){if(e==="AstNode"){this.entries.add("AstNode",r);return}for(let n of this.reflection.getAllSubTypes(e))this.entries.add(n,r)}getChecks(e,r){let n=en(this.entries.get(e)).concat(this.entries.get("AstNode"));return r&&(n=n.filter(i=>r.includes(i.category))),n.map(i=>i.check)}registerBeforeDocument(e,r=this){this.entriesBefore.push(this.wrapPreparationException(e,"An error occurred during set-up of the validation",r))}registerAfterDocument(e,r=this){this.entriesAfter.push(this.wrapPreparationException(e,"An error occurred during tear-down of the validation",r))}wrapPreparationException(e,r,n){return async(i,a,s,l)=>{await this.handleException(()=>e.call(n,i,a,s,l),r,a,i)}}get checksBefore(){return this.entriesBefore}get checksAfter(){return this.entriesAfter}}});function Yle(t){if(t.range)return t.range;let e;return typeof t.property=="string"?e=Q2(t.node.$cstNode,t.property,t.index):typeof t.keyword=="string"&&(e=cN(t.node.$cstNode,t.keyword,t.index)),e??(e=t.node.$cstNode),e?e.range:{start:{line:0,character:0},end:{line:0,character:0}}}function RE(t){switch(t){case"error":return 1;case"warning":return 2;case"info":return 3;case"hint":return 4;default:throw new Error("Invalid diagnostic severity: "+t)}}function Xle(t){switch(t){case"error":return bp(jo.LexingError);case"warning":return bp(jo.LexingWarning);case"info":return bp(jo.LexingInfo);case"hint":return bp(jo.LexingHint);default:throw new Error("Invalid diagnostic severity: "+t)}}var Wx,jo,WM=N(()=>{"use strict";qo();Ol();is();Nl();Yo();Hx();Wx=class{static{o(this,"DefaultDocumentValidator")}constructor(e){this.validationRegistry=e.validation.ValidationRegistry,this.metadata=e.LanguageMetaData}async validateDocument(e,r={},n=yr.CancellationToken.None){let i=e.parseResult,a=[];if(await xi(n),(!r.categories||r.categories.includes("built-in"))&&(this.processLexingErrors(i,a,r),r.stopAfterLexingErrors&&a.some(s=>{var l;return((l=s.data)===null||l===void 0?void 0:l.code)===jo.LexingError})||(this.processParsingErrors(i,a,r),r.stopAfterParsingErrors&&a.some(s=>{var l;return((l=s.data)===null||l===void 0?void 0:l.code)===jo.ParsingError}))||(this.processLinkingErrors(e,a,r),r.stopAfterLinkingErrors&&a.some(s=>{var l;return((l=s.data)===null||l===void 0?void 0:l.code)===jo.LinkingError}))))return a;try{a.push(...await this.validateAst(i.value,r,n))}catch(s){if(Bc(s))throw s;console.error("An error occurred during validation:",s)}return await xi(n),a}processLexingErrors(e,r,n){var i,a,s;let l=[...e.lexerErrors,...(a=(i=e.lexerReport)===null||i===void 0?void 0:i.diagnostics)!==null&&a!==void 0?a:[]];for(let u of l){let h=(s=u.severity)!==null&&s!==void 0?s:"error",f={severity:RE(h),range:{start:{line:u.line-1,character:u.column-1},end:{line:u.line-1,character:u.column+u.length-1}},message:u.message,data:Xle(h),source:this.getSource()};r.push(f)}}processParsingErrors(e,r,n){for(let i of e.parserErrors){let a;if(isNaN(i.token.startOffset)){if("previousToken"in i){let s=i.previousToken;if(isNaN(s.startOffset)){let l={line:0,character:0};a={start:l,end:l}}else{let l={line:s.endLine-1,character:s.endColumn};a={start:l,end:l}}}}else a=Gm(i.token);if(a){let s={severity:RE("error"),range:a,message:i.message,data:bp(jo.ParsingError),source:this.getSource()};r.push(s)}}}processLinkingErrors(e,r,n){for(let i of e.references){let a=i.error;if(a){let s={node:a.container,property:a.property,index:a.index,data:{code:jo.LinkingError,containerType:a.container.$type,property:a.property,refText:a.reference.$refText}};r.push(this.toDiagnostic("error",a.message,s))}}}async validateAst(e,r,n=yr.CancellationToken.None){let i=[],a=o((s,l,u)=>{i.push(this.toDiagnostic(s,l,u))},"acceptor");return await this.validateAstBefore(e,r,a,n),await this.validateAstNodes(e,r,a,n),await this.validateAstAfter(e,r,a,n),i}async validateAstBefore(e,r,n,i=yr.CancellationToken.None){var a;let s=this.validationRegistry.checksBefore;for(let l of s)await xi(i),await l(e,n,(a=r.categories)!==null&&a!==void 0?a:[],i)}async validateAstNodes(e,r,n,i=yr.CancellationToken.None){await Promise.all(Wo(e).map(async a=>{await xi(i);let s=this.validationRegistry.getChecks(a.$type,r.categories);for(let l of s)await l(a,n,i)}))}async validateAstAfter(e,r,n,i=yr.CancellationToken.None){var a;let s=this.validationRegistry.checksAfter;for(let l of s)await xi(i),await l(e,n,(a=r.categories)!==null&&a!==void 0?a:[],i)}toDiagnostic(e,r,n){return{message:r,range:Yle(n),severity:RE(e),code:n.code,codeDescription:n.codeDescription,tags:n.tags,relatedInformation:n.relatedInformation,data:n.data,source:this.getSource()}}getSource(){return this.metadata.languageId}};o(Yle,"getDiagnosticRange");o(RE,"toDiagnosticSeverity");o(Xle,"toDiagnosticData");(function(t){t.LexingError="lexing-error",t.LexingWarning="lexing-warning",t.LexingInfo="lexing-info",t.LexingHint="lexing-hint",t.ParsingError="parsing-error",t.LinkingError="linking-error"})(jo||(jo={}))});var qx,Yx,qM=N(()=>{"use strict";qo();Rl();is();Nl();Yo();Fc();qx=class{static{o(this,"DefaultAstNodeDescriptionProvider")}constructor(e){this.astNodeLocator=e.workspace.AstNodeLocator,this.nameProvider=e.references.NameProvider}createDescription(e,r,n){let i=n??Pa(e);r??(r=this.nameProvider.getName(e));let a=this.astNodeLocator.getAstNodePath(e);if(!r)throw new Error(`Node at path ${a} has no name.`);let s,l=o(()=>{var u;return s??(s=Qd((u=this.nameProvider.getNameNode(e))!==null&&u!==void 0?u:e.$cstNode))},"nameSegmentGetter");return{node:e,name:r,get nameSegment(){return l()},selectionSegment:Qd(e.$cstNode),type:e.$type,documentUri:i.uri,path:a}}},Yx=class{static{o(this,"DefaultReferenceDescriptionProvider")}constructor(e){this.nodeLocator=e.workspace.AstNodeLocator}async createDescriptions(e,r=yr.CancellationToken.None){let n=[],i=e.parseResult.value;for(let a of Wo(i))await xi(r),Ag(a).filter(s=>!jd(s)).forEach(s=>{let l=this.createDescription(s);l&&n.push(l)});return n}createDescription(e){let r=e.reference.$nodeDescription,n=e.reference.$refNode;if(!r||!n)return;let i=Pa(e.container).uri;return{sourceUri:i,sourcePath:this.nodeLocator.getAstNodePath(e.container),targetUri:r.documentUri,targetPath:r.path,segment:Qd(n),local:hs.equals(r.documentUri,i)}}}});var Xx,YM=N(()=>{"use strict";Xx=class{static{o(this,"DefaultAstNodeLocator")}constructor(){this.segmentSeparator="/",this.indexSeparator="@"}getAstNodePath(e){if(e.$container){let r=this.getAstNodePath(e.$container),n=this.getPathSegment(e);return r+this.segmentSeparator+n}return""}getPathSegment({$containerProperty:e,$containerIndex:r}){if(!e)throw new Error("Missing '$containerProperty' in AST node.");return r!==void 0?e+this.indexSeparator+r:e}getAstNode(e,r){return r.split(this.segmentSeparator).reduce((i,a)=>{if(!i||a.length===0)return i;let s=a.indexOf(this.indexSeparator);if(s>0){let l=a.substring(0,s),u=parseInt(a.substring(s+1)),h=i[l];return h?.[u]}return i[a]},e)}}});var Kn={};var NE=N(()=>{"use strict";Sr(Kn,Sa(LM(),1))});var jx,XM=N(()=>{"use strict";NE();Yo();jx=class{static{o(this,"DefaultConfigurationProvider")}constructor(e){this._ready=new cs,this.settings={},this.workspaceConfig=!1,this.onConfigurationSectionUpdateEmitter=new Kn.Emitter,this.serviceRegistry=e.ServiceRegistry}get ready(){return this._ready.promise}initialize(e){var r,n;this.workspaceConfig=(n=(r=e.capabilities.workspace)===null||r===void 0?void 0:r.configuration)!==null&&n!==void 0?n:!1}async initialized(e){if(this.workspaceConfig){if(e.register){let r=this.serviceRegistry.all;e.register({section:r.map(n=>this.toSectionName(n.LanguageMetaData.languageId))})}if(e.fetchConfiguration){let r=this.serviceRegistry.all.map(i=>({section:this.toSectionName(i.LanguageMetaData.languageId)})),n=await e.fetchConfiguration(r);r.forEach((i,a)=>{this.updateSectionConfiguration(i.section,n[a])})}}this._ready.resolve()}updateConfiguration(e){e.settings&&Object.keys(e.settings).forEach(r=>{let n=e.settings[r];this.updateSectionConfiguration(r,n),this.onConfigurationSectionUpdateEmitter.fire({section:r,configuration:n})})}updateSectionConfiguration(e,r){this.settings[e]=r}async getConfiguration(e,r){await this.ready;let n=this.toSectionName(e);if(this.settings[n])return this.settings[n][r]}toSectionName(e){return`${e}`}get onConfigurationSectionUpdate(){return this.onConfigurationSectionUpdateEmitter.event}}});var ff,jM=N(()=>{"use strict";(function(t){function e(r){return{dispose:o(async()=>await r(),"dispose")}}o(e,"create"),t.create=e})(ff||(ff={}))});var Kx,KM=N(()=>{"use strict";qo();jM();f1();Yo();Ps();Hx();h1();Kx=class{static{o(this,"DefaultDocumentBuilder")}constructor(e){this.updateBuildOptions={validation:{categories:["built-in","fast"]}},this.updateListeners=[],this.buildPhaseListeners=new Bl,this.documentPhaseListeners=new Bl,this.buildState=new Map,this.documentBuildWaiters=new Map,this.currentState=kn.Changed,this.langiumDocuments=e.workspace.LangiumDocuments,this.langiumDocumentFactory=e.workspace.LangiumDocumentFactory,this.textDocuments=e.workspace.TextDocuments,this.indexManager=e.workspace.IndexManager,this.serviceRegistry=e.ServiceRegistry}async build(e,r={},n=yr.CancellationToken.None){var i,a;for(let s of e){let l=s.uri.toString();if(s.state===kn.Validated){if(typeof r.validation=="boolean"&&r.validation)s.state=kn.IndexedReferences,s.diagnostics=void 0,this.buildState.delete(l);else if(typeof r.validation=="object"){let u=this.buildState.get(l),h=(i=u?.result)===null||i===void 0?void 0:i.validationChecks;if(h){let d=((a=r.validation.categories)!==null&&a!==void 0?a:g1.all).filter(p=>!h.includes(p));d.length>0&&(this.buildState.set(l,{completed:!1,options:{validation:Object.assign(Object.assign({},r.validation),{categories:d})},result:u.result}),s.state=kn.IndexedReferences)}}}else this.buildState.delete(l)}this.currentState=kn.Changed,await this.emitUpdate(e.map(s=>s.uri),[]),await this.buildDocuments(e,r,n)}async update(e,r,n=yr.CancellationToken.None){this.currentState=kn.Changed;for(let s of r)this.langiumDocuments.deleteDocument(s),this.buildState.delete(s.toString()),this.indexManager.remove(s);for(let s of e){if(!this.langiumDocuments.invalidateDocument(s)){let u=this.langiumDocumentFactory.fromModel({$type:"INVALID"},s);u.state=kn.Changed,this.langiumDocuments.addDocument(u)}this.buildState.delete(s.toString())}let i=en(e).concat(r).map(s=>s.toString()).toSet();this.langiumDocuments.all.filter(s=>!i.has(s.uri.toString())&&this.shouldRelink(s,i)).forEach(s=>{this.serviceRegistry.getServices(s.uri).references.Linker.unlink(s),s.state=Math.min(s.state,kn.ComputedScopes),s.diagnostics=void 0}),await this.emitUpdate(e,r),await xi(n);let a=this.sortDocuments(this.langiumDocuments.all.filter(s=>{var l;return s.state<kn.Linked||!(!((l=this.buildState.get(s.uri.toString()))===null||l===void 0)&&l.completed)}).toArray());await this.buildDocuments(a,this.updateBuildOptions,n)}async emitUpdate(e,r){await Promise.all(this.updateListeners.map(n=>n(e,r)))}sortDocuments(e){let r=0,n=e.length-1;for(;r<n;){for(;r<e.length&&this.hasTextDocument(e[r]);)r++;for(;n>=0&&!this.hasTextDocument(e[n]);)n--;r<n&&([e[r],e[n]]=[e[n],e[r]])}return e}hasTextDocument(e){var r;return!!(!((r=this.textDocuments)===null||r===void 0)&&r.get(e.uri))}shouldRelink(e,r){return e.references.some(n=>n.error!==void 0)?!0:this.indexManager.isAffected(e,r)}onUpdate(e){return this.updateListeners.push(e),ff.create(()=>{let r=this.updateListeners.indexOf(e);r>=0&&this.updateListeners.splice(r,1)})}async buildDocuments(e,r,n){this.prepareBuild(e,r),await this.runCancelable(e,kn.Parsed,n,a=>this.langiumDocumentFactory.update(a,n)),await this.runCancelable(e,kn.IndexedContent,n,a=>this.indexManager.updateContent(a,n)),await this.runCancelable(e,kn.ComputedScopes,n,async a=>{let s=this.serviceRegistry.getServices(a.uri).references.ScopeComputation;a.precomputedScopes=await s.computeLocalScopes(a,n)}),await this.runCancelable(e,kn.Linked,n,a=>this.serviceRegistry.getServices(a.uri).references.Linker.link(a,n)),await this.runCancelable(e,kn.IndexedReferences,n,a=>this.indexManager.updateReferences(a,n));let i=e.filter(a=>this.shouldValidate(a));await this.runCancelable(i,kn.Validated,n,a=>this.validate(a,n));for(let a of e){let s=this.buildState.get(a.uri.toString());s&&(s.completed=!0)}}prepareBuild(e,r){for(let n of e){let i=n.uri.toString(),a=this.buildState.get(i);(!a||a.completed)&&this.buildState.set(i,{completed:!1,options:r,result:a?.result})}}async runCancelable(e,r,n,i){let a=e.filter(l=>l.state<r);for(let l of a)await xi(n),await i(l),l.state=r,await this.notifyDocumentPhase(l,r,n);let s=e.filter(l=>l.state===r);await this.notifyBuildPhase(s,r,n),this.currentState=r}onBuildPhase(e,r){return this.buildPhaseListeners.add(e,r),ff.create(()=>{this.buildPhaseListeners.delete(e,r)})}onDocumentPhase(e,r){return this.documentPhaseListeners.add(e,r),ff.create(()=>{this.documentPhaseListeners.delete(e,r)})}waitUntil(e,r,n){let i;if(r&&"path"in r?i=r:n=r,n??(n=yr.CancellationToken.None),i){let a=this.langiumDocuments.getDocument(i);if(a&&a.state>e)return Promise.resolve(i)}return this.currentState>=e?Promise.resolve(void 0):n.isCancellationRequested?Promise.reject(Pc):new Promise((a,s)=>{let l=this.onBuildPhase(e,()=>{if(l.dispose(),u.dispose(),i){let h=this.langiumDocuments.getDocument(i);a(h?.uri)}else a(void 0)}),u=n.onCancellationRequested(()=>{l.dispose(),u.dispose(),s(Pc)})})}async notifyDocumentPhase(e,r,n){let a=this.documentPhaseListeners.get(r).slice();for(let s of a)try{await s(e,n)}catch(l){if(!Bc(l))throw l}}async notifyBuildPhase(e,r,n){if(e.length===0)return;let a=this.buildPhaseListeners.get(r).slice();for(let s of a)await xi(n),await s(e,n)}shouldValidate(e){return!!this.getBuildOptions(e).validation}async validate(e,r){var n,i;let a=this.serviceRegistry.getServices(e.uri).validation.DocumentValidator,s=this.getBuildOptions(e).validation,l=typeof s=="object"?s:void 0,u=await a.validateDocument(e,l,r);e.diagnostics?e.diagnostics.push(...u):e.diagnostics=u;let h=this.buildState.get(e.uri.toString());if(h){(n=h.result)!==null&&n!==void 0||(h.result={});let f=(i=l?.categories)!==null&&i!==void 0?i:g1.all;h.result.validationChecks?h.result.validationChecks.push(...f):h.result.validationChecks=[...f]}}getBuildOptions(e){var r,n;return(n=(r=this.buildState.get(e.uri.toString()))===null||r===void 0?void 0:r.options)!==null&&n!==void 0?n:{}}}});var Qx,QM=N(()=>{"use strict";is();DE();qo();Ps();Fc();Qx=class{static{o(this,"DefaultIndexManager")}constructor(e){this.symbolIndex=new Map,this.symbolByTypeIndex=new xp,this.referenceIndex=new Map,this.documents=e.workspace.LangiumDocuments,this.serviceRegistry=e.ServiceRegistry,this.astReflection=e.AstReflection}findAllReferences(e,r){let n=Pa(e).uri,i=[];return this.referenceIndex.forEach(a=>{a.forEach(s=>{hs.equals(s.targetUri,n)&&s.targetPath===r&&i.push(s)})}),en(i)}allElements(e,r){let n=en(this.symbolIndex.keys());return r&&(n=n.filter(i=>!r||r.has(i))),n.map(i=>this.getFileDescriptions(i,e)).flat()}getFileDescriptions(e,r){var n;return r?this.symbolByTypeIndex.get(e,r,()=>{var a;return((a=this.symbolIndex.get(e))!==null&&a!==void 0?a:[]).filter(l=>this.astReflection.isSubtype(l.type,r))}):(n=this.symbolIndex.get(e))!==null&&n!==void 0?n:[]}remove(e){let r=e.toString();this.symbolIndex.delete(r),this.symbolByTypeIndex.clear(r),this.referenceIndex.delete(r)}async updateContent(e,r=yr.CancellationToken.None){let i=await this.serviceRegistry.getServices(e.uri).references.ScopeComputation.computeExports(e,r),a=e.uri.toString();this.symbolIndex.set(a,i),this.symbolByTypeIndex.clear(a)}async updateReferences(e,r=yr.CancellationToken.None){let i=await this.serviceRegistry.getServices(e.uri).workspace.ReferenceDescriptionProvider.createDescriptions(e,r);this.referenceIndex.set(e.uri.toString(),i)}isAffected(e,r){let n=this.referenceIndex.get(e.uri.toString());return n?n.some(i=>!i.local&&r.has(i.targetUri.toString())):!1}}});var Zx,ZM=N(()=>{"use strict";qo();Yo();Fc();Zx=class{static{o(this,"DefaultWorkspaceManager")}constructor(e){this.initialBuildOptions={},this._ready=new cs,this.serviceRegistry=e.ServiceRegistry,this.langiumDocuments=e.workspace.LangiumDocuments,this.documentBuilder=e.workspace.DocumentBuilder,this.fileSystemProvider=e.workspace.FileSystemProvider,this.mutex=e.workspace.WorkspaceLock}get ready(){return this._ready.promise}get workspaceFolders(){return this.folders}initialize(e){var r;this.folders=(r=e.workspaceFolders)!==null&&r!==void 0?r:void 0}initialized(e){return this.mutex.write(r=>{var n;return this.initializeWorkspace((n=this.folders)!==null&&n!==void 0?n:[],r)})}async initializeWorkspace(e,r=yr.CancellationToken.None){let n=await this.performStartup(e);await xi(r),await this.documentBuilder.build(n,this.initialBuildOptions,r)}async performStartup(e){let r=this.serviceRegistry.all.flatMap(a=>a.LanguageMetaData.fileExtensions),n=[],i=o(a=>{n.push(a),this.langiumDocuments.hasDocument(a.uri)||this.langiumDocuments.addDocument(a)},"collector");return await this.loadAdditionalDocuments(e,i),await Promise.all(e.map(a=>[a,this.getRootFolder(a)]).map(async a=>this.traverseFolder(...a,r,i))),this._ready.resolve(),n}loadAdditionalDocuments(e,r){return Promise.resolve()}getRootFolder(e){return us.parse(e.uri)}async traverseFolder(e,r,n,i){let a=await this.fileSystemProvider.readDirectory(r);await Promise.all(a.map(async s=>{if(this.includeEntry(e,s,n)){if(s.isDirectory)await this.traverseFolder(e,s.uri,n,i);else if(s.isFile){let l=await this.langiumDocuments.getOrCreateDocument(s.uri);i(l)}}}))}includeEntry(e,r,n){let i=hs.basename(r.uri);if(i.startsWith("."))return!1;if(r.isDirectory)return i!=="node_modules"&&i!=="out";if(r.isFile){let a=hs.extname(r.uri);return n.includes(a)}return!1}}});function IE(t){return Array.isArray(t)&&(t.length===0||"name"in t[0])}function eI(t){return t&&"modes"in t&&"defaultMode"in t}function JM(t){return!IE(t)&&!eI(t)}var Jx,ME,wp,OE=N(()=>{"use strict";cf();Jx=class{static{o(this,"DefaultLexerErrorMessageProvider")}buildUnexpectedCharactersMessage(e,r,n,i,a){return Gg.buildUnexpectedCharactersMessage(e,r,n,i,a)}buildUnableToPopLexerModeMessage(e){return Gg.buildUnableToPopLexerModeMessage(e)}},ME={mode:"full"},wp=class{static{o(this,"DefaultLexer")}constructor(e){this.errorMessageProvider=e.parser.LexerErrorMessageProvider,this.tokenBuilder=e.parser.TokenBuilder;let r=this.tokenBuilder.buildTokens(e.Grammar,{caseInsensitive:e.LanguageMetaData.caseInsensitive});this.tokenTypes=this.toTokenTypeDictionary(r);let n=JM(r)?Object.values(r):r,i=e.LanguageMetaData.mode==="production";this.chevrotainLexer=new Xn(n,{positionTracking:"full",skipValidations:i,errorMessageProvider:this.errorMessageProvider})}get definition(){return this.tokenTypes}tokenize(e,r=ME){var n,i,a;let s=this.chevrotainLexer.tokenize(e);return{tokens:s.tokens,errors:s.errors,hidden:(n=s.groups.hidden)!==null&&n!==void 0?n:[],report:(a=(i=this.tokenBuilder).flushLexingReport)===null||a===void 0?void 0:a.call(i,e)}}toTokenTypeDictionary(e){if(JM(e))return e;let r=eI(e)?Object.values(e.modes).flat():e,n={};return r.forEach(i=>n[i.name]=i),n}};o(IE,"isTokenTypeArray");o(eI,"isIMultiModeLexerDefinition");o(JM,"isTokenTypeDictionary")});function nI(t,e,r){let n,i;typeof t=="string"?(i=e,n=r):(i=t.range.start,n=e),i||(i=jr.create(0,0));let a=Qle(t),s=aI(n),l=wFe({lines:a,position:i,options:s});return CFe({index:0,tokens:l,position:i})}function iI(t,e){let r=aI(e),n=Qle(t);if(n.length===0)return!1;let i=n[0],a=n[n.length-1],s=r.start,l=r.end;return!!s?.exec(i)&&!!l?.exec(a)}function Qle(t){let e="";return typeof t=="string"?e=t:e=t.text,e.split(JR)}function wFe(t){var e,r,n;let i=[],a=t.position.line,s=t.position.character;for(let l=0;l<t.lines.length;l++){let u=l===0,h=l===t.lines.length-1,f=t.lines[l],d=0;if(u&&t.options.start){let m=(e=t.options.start)===null||e===void 0?void 0:e.exec(f);m&&(d=m.index+m[0].length)}else{let m=(r=t.options.line)===null||r===void 0?void 0:r.exec(f);m&&(d=m.index+m[0].length)}if(h){let m=(n=t.options.end)===null||n===void 0?void 0:n.exec(f);m&&(f=f.substring(0,m.index))}if(f=f.substring(0,SFe(f)),rI(f,d)>=f.length){if(i.length>0){let m=jr.create(a,s);i.push({type:"break",content:"",range:Pr.create(m,m)})}}else{jle.lastIndex=d;let m=jle.exec(f);if(m){let g=m[0],y=m[1],v=jr.create(a,s+d),x=jr.create(a,s+d+g.length);i.push({type:"tag",content:y,range:Pr.create(v,x)}),d+=g.length,d=rI(f,d)}if(d<f.length){let g=f.substring(d),y=Array.from(g.matchAll(bFe));i.push(...TFe(y,g,a,s+d))}}a++,s=0}return i.length>0&&i[i.length-1].type==="break"?i.slice(0,-1):i}function TFe(t,e,r,n){let i=[];if(t.length===0){let a=jr.create(r,n),s=jr.create(r,n+e.length);i.push({type:"text",content:e,range:Pr.create(a,s)})}else{let a=0;for(let l of t){let u=l.index,h=e.substring(a,u);h.length>0&&i.push({type:"text",content:e.substring(a,u),range:Pr.create(jr.create(r,a+n),jr.create(r,u+n))});let f=h.length+1,d=l[1];if(i.push({type:"inline-tag",content:d,range:Pr.create(jr.create(r,a+f+n),jr.create(r,a+f+d.length+n))}),f+=d.length,l.length===4){f+=l[2].length;let p=l[3];i.push({type:"text",content:p,range:Pr.create(jr.create(r,a+f+n),jr.create(r,a+f+p.length+n))})}else i.push({type:"text",content:"",range:Pr.create(jr.create(r,a+f+n),jr.create(r,a+f+n))});a=u+l[0].length}let s=e.substring(a);s.length>0&&i.push({type:"text",content:s,range:Pr.create(jr.create(r,a+n),jr.create(r,a+n+s.length))})}return i}function rI(t,e){let r=t.substring(e).match(kFe);return r?e+r.index:t.length}function SFe(t){let e=t.match(EFe);if(e&&typeof e.index=="number")return e.index}function CFe(t){var e,r,n,i;let a=jr.create(t.position.line,t.position.character);if(t.tokens.length===0)return new PE([],Pr.create(a,a));let s=[];for(;t.index<t.tokens.length;){let h=AFe(t,s[s.length-1]);h&&s.push(h)}let l=(r=(e=s[0])===null||e===void 0?void 0:e.range.start)!==null&&r!==void 0?r:a,u=(i=(n=s[s.length-1])===null||n===void 0?void 0:n.range.end)!==null&&i!==void 0?i:a;return new PE(s,Pr.create(l,u))}function AFe(t,e){let r=t.tokens[t.index];if(r.type==="tag")return Jle(t,!1);if(r.type==="text"||r.type==="inline-tag")return Zle(t);_Fe(r,e),t.index++}function _Fe(t,e){if(e){let r=new BE("",t.range);"inlines"in e?e.inlines.push(r):e.content.inlines.push(r)}}function Zle(t){let e=t.tokens[t.index],r=e,n=e,i=[];for(;e&&e.type!=="break"&&e.type!=="tag";)i.push(DFe(t)),n=e,e=t.tokens[t.index];return new tb(i,Pr.create(r.range.start,n.range.end))}function DFe(t){return t.tokens[t.index].type==="inline-tag"?Jle(t,!0):ece(t)}function Jle(t,e){let r=t.tokens[t.index++],n=r.content.substring(1),i=t.tokens[t.index];if(i?.type==="text")if(e){let a=ece(t);return new eb(n,new tb([a],a.range),e,Pr.create(r.range.start,a.range.end))}else{let a=Zle(t);return new eb(n,a,e,Pr.create(r.range.start,a.range.end))}else{let a=r.range;return new eb(n,new tb([],a),e,a)}}function ece(t){let e=t.tokens[t.index++];return new BE(e.content,e.range)}function aI(t){if(!t)return aI({start:"/**",end:"*/",line:"*"});let{start:e,end:r,line:n}=t;return{start:tI(e,!0),end:tI(r,!1),line:tI(n,!0)}}function tI(t,e){if(typeof t=="string"||typeof t=="object"){let r=typeof t=="string"?ap(t):t.source;return e?new RegExp(`^\\s*${r}`):new RegExp(`\\s*${r}\\s*$`)}else return t}function LFe(t,e,r){var n,i;if(t==="linkplain"||t==="linkcode"||t==="link"){let a=e.indexOf(" "),s=e;if(a>0){let u=rI(e,a);s=e.substring(u),e=e.substring(0,a)}return(t==="linkcode"||t==="link"&&r.link==="code")&&(s=`\`${s}\``),(i=(n=r.renderLink)===null||n===void 0?void 0:n.call(r,e,s))!==null&&i!==void 0?i:RFe(e,s)}}function RFe(t,e){try{return us.parse(t,!0),`[${e}](${t})`}catch{return t}}function Kle(t){return t.endsWith(`
+`)?`
+`:`
+
+`}var jle,bFe,kFe,EFe,PE,eb,tb,BE,sI=N(()=>{"use strict";mM();Lg();Fc();o(nI,"parseJSDoc");o(iI,"isJSDoc");o(Qle,"getLines");jle=/\s*(@([\p{L}][\p{L}\p{N}]*)?)/uy,bFe=/\{(@[\p{L}][\p{L}\p{N}]*)(\s*)([^\r\n}]+)?\}/gu;o(wFe,"tokenize");o(TFe,"buildInlineTokens");kFe=/\S/,EFe=/\s*$/;o(rI,"skipWhitespace");o(SFe,"lastCharacter");o(CFe,"parseJSDocComment");o(AFe,"parseJSDocElement");o(_Fe,"appendEmptyLine");o(Zle,"parseJSDocText");o(DFe,"parseJSDocInline");o(Jle,"parseJSDocTag");o(ece,"parseJSDocLine");o(aI,"normalizeOptions");o(tI,"normalizeOption");PE=class{static{o(this,"JSDocCommentImpl")}constructor(e,r){this.elements=e,this.range=r}getTag(e){return this.getAllTags().find(r=>r.name===e)}getTags(e){return this.getAllTags().filter(r=>r.name===e)}getAllTags(){return this.elements.filter(e=>"name"in e)}toString(){let e="";for(let r of this.elements)if(e.length===0)e=r.toString();else{let n=r.toString();e+=Kle(e)+n}return e.trim()}toMarkdown(e){let r="";for(let n of this.elements)if(r.length===0)r=n.toMarkdown(e);else{let i=n.toMarkdown(e);r+=Kle(r)+i}return r.trim()}},eb=class{static{o(this,"JSDocTagImpl")}constructor(e,r,n,i){this.name=e,this.content=r,this.inline=n,this.range=i}toString(){let e=`@${this.name}`,r=this.content.toString();return this.content.inlines.length===1?e=`${e} ${r}`:this.content.inlines.length>1&&(e=`${e}
+${r}`),this.inline?`{${e}}`:e}toMarkdown(e){var r,n;return(n=(r=e?.renderTag)===null||r===void 0?void 0:r.call(e,this))!==null&&n!==void 0?n:this.toMarkdownDefault(e)}toMarkdownDefault(e){let r=this.content.toMarkdown(e);if(this.inline){let a=LFe(this.name,r,e??{});if(typeof a=="string")return a}let n="";e?.tag==="italic"||e?.tag===void 0?n="*":e?.tag==="bold"?n="**":e?.tag==="bold-italic"&&(n="***");let i=`${n}@${this.name}${n}`;return this.content.inlines.length===1?i=`${i} \u2014 ${r}`:this.content.inlines.length>1&&(i=`${i}
+${r}`),this.inline?`{${i}}`:i}};o(LFe,"renderInlineTag");o(RFe,"renderLinkDefault");tb=class{static{o(this,"JSDocTextImpl")}constructor(e,r){this.inlines=e,this.range=r}toString(){let e="";for(let r=0;r<this.inlines.length;r++){let n=this.inlines[r],i=this.inlines[r+1];e+=n.toString(),i&&i.range.start.line>n.range.start.line&&(e+=`
+`)}return e}toMarkdown(e){let r="";for(let n=0;n<this.inlines.length;n++){let i=this.inlines[n],a=this.inlines[n+1];r+=i.toMarkdown(e),a&&a.range.start.line>i.range.start.line&&(r+=`
+`)}return r}},BE=class{static{o(this,"JSDocLineImpl")}constructor(e,r){this.text=e,this.range=r}toString(){return this.text}toMarkdown(){return this.text}};o(Kle,"fillNewlines")});var rb,oI=N(()=>{"use strict";is();sI();rb=class{static{o(this,"JSDocDocumentationProvider")}constructor(e){this.indexManager=e.shared.workspace.IndexManager,this.commentProvider=e.documentation.CommentProvider}getDocumentation(e){let r=this.commentProvider.getComment(e);if(r&&iI(r))return nI(r).toMarkdown({renderLink:o((i,a)=>this.documentationLinkRenderer(e,i,a),"renderLink"),renderTag:o(i=>this.documentationTagRenderer(e,i),"renderTag")})}documentationLinkRenderer(e,r,n){var i;let a=(i=this.findNameInPrecomputedScopes(e,r))!==null&&i!==void 0?i:this.findNameInGlobalScope(e,r);if(a&&a.nameSegment){let s=a.nameSegment.range.start.line+1,l=a.nameSegment.range.start.character+1,u=a.documentUri.with({fragment:`L${s},${l}`});return`[${n}](${u.toString()})`}else return}documentationTagRenderer(e,r){}findNameInPrecomputedScopes(e,r){let i=Pa(e).precomputedScopes;if(!i)return;let a=e;do{let l=i.get(a).find(u=>u.name===r);if(l)return l;a=a.$container}while(a)}findNameInGlobalScope(e,r){return this.indexManager.allElements().find(i=>i.name===r)}}});var nb,lI=N(()=>{"use strict";LE();Nl();nb=class{static{o(this,"DefaultCommentProvider")}constructor(e){this.grammarConfig=()=>e.parser.GrammarConfig}getComment(e){var r;return UM(e)?e.$comment:(r=AR(e.$cstNode,this.grammarConfig().multilineCommentRules))===null||r===void 0?void 0:r.text}}});var ib,cI,uI,hI=N(()=>{"use strict";Yo();NE();ib=class{static{o(this,"DefaultAsyncParser")}constructor(e){this.syncParser=e.parser.LangiumParser}parse(e,r){return Promise.resolve(this.syncParser.parse(e))}},cI=class{static{o(this,"AbstractThreadedAsyncParser")}constructor(e){this.threadCount=8,this.terminationDelay=200,this.workerPool=[],this.queue=[],this.hydrator=e.serializer.Hydrator}initializeWorkers(){for(;this.workerPool.length<this.threadCount;){let e=this.createWorker();e.onReady(()=>{if(this.queue.length>0){let r=this.queue.shift();r&&(e.lock(),r.resolve(e))}}),this.workerPool.push(e)}}async parse(e,r){let n=await this.acquireParserWorker(r),i=new cs,a,s=r.onCancellationRequested(()=>{a=setTimeout(()=>{this.terminateWorker(n)},this.terminationDelay)});return n.parse(e).then(l=>{let u=this.hydrator.hydrate(l);i.resolve(u)}).catch(l=>{i.reject(l)}).finally(()=>{s.dispose(),clearTimeout(a)}),i.promise}terminateWorker(e){e.terminate();let r=this.workerPool.indexOf(e);r>=0&&this.workerPool.splice(r,1)}async acquireParserWorker(e){this.initializeWorkers();for(let n of this.workerPool)if(n.ready)return n.lock(),n;let r=new cs;return e.onCancellationRequested(()=>{let n=this.queue.indexOf(r);n>=0&&this.queue.splice(n,1),r.reject(Pc)}),this.queue.push(r),r.promise}},uI=class{static{o(this,"ParserWorker")}get ready(){return this._ready}get onReady(){return this.onReadyEmitter.event}constructor(e,r,n,i){this.onReadyEmitter=new Kn.Emitter,this.deferred=new cs,this._ready=!0,this._parsing=!1,this.sendMessage=e,this._terminate=i,r(a=>{let s=a;this.deferred.resolve(s),this.unlock()}),n(a=>{this.deferred.reject(a),this.unlock()})}terminate(){this.deferred.reject(Pc),this._terminate()}lock(){this._ready=!1}unlock(){this._parsing=!1,this._ready=!0,this.onReadyEmitter.fire()}parse(e){if(this._parsing)throw new Error("Parser worker is busy");return this._parsing=!0,this.deferred=new cs,this.sendMessage(e),this.deferred.promise}}});var ab,fI=N(()=>{"use strict";qo();Yo();ab=class{static{o(this,"DefaultWorkspaceLock")}constructor(){this.previousTokenSource=new yr.CancellationTokenSource,this.writeQueue=[],this.readQueue=[],this.done=!0}write(e){this.cancelWrite();let r=CE();return this.previousTokenSource=r,this.enqueue(this.writeQueue,e,r.token)}read(e){return this.enqueue(this.readQueue,e)}enqueue(e,r,n=yr.CancellationToken.None){let i=new cs,a={action:r,deferred:i,cancellationToken:n};return e.push(a),this.performNextOperation(),i.promise}async performNextOperation(){if(!this.done)return;let e=[];if(this.writeQueue.length>0)e.push(this.writeQueue.shift());else if(this.readQueue.length>0)e.push(...this.readQueue.splice(0,this.readQueue.length));else return;this.done=!1,await Promise.all(e.map(async({action:r,deferred:n,cancellationToken:i})=>{try{let a=await Promise.resolve().then(()=>r(i));n.resolve(a)}catch(a){Bc(a)?n.resolve(void 0):n.reject(a)}})),this.done=!0,this.performNextOperation()}cancelWrite(){this.previousTokenSource.cancel()}}});var sb,dI=N(()=>{"use strict";gE();Rc();Rl();is();f1();Nl();sb=class{static{o(this,"DefaultHydrator")}constructor(e){this.grammarElementIdMap=new vp,this.tokenTypeIdMap=new vp,this.grammar=e.Grammar,this.lexer=e.parser.Lexer,this.linker=e.references.Linker}dehydrate(e){return{lexerErrors:e.lexerErrors,lexerReport:e.lexerReport?this.dehydrateLexerReport(e.lexerReport):void 0,parserErrors:e.parserErrors.map(r=>Object.assign(Object.assign({},r),{message:r.message})),value:this.dehydrateAstNode(e.value,this.createDehyrationContext(e.value))}}dehydrateLexerReport(e){return e}createDehyrationContext(e){let r=new Map,n=new Map;for(let i of Wo(e))r.set(i,{});if(e.$cstNode)for(let i of Kd(e.$cstNode))n.set(i,{});return{astNodes:r,cstNodes:n}}dehydrateAstNode(e,r){let n=r.astNodes.get(e);n.$type=e.$type,n.$containerIndex=e.$containerIndex,n.$containerProperty=e.$containerProperty,e.$cstNode!==void 0&&(n.$cstNode=this.dehydrateCstNode(e.$cstNode,r));for(let[i,a]of Object.entries(e))if(!i.startsWith("$"))if(Array.isArray(a)){let s=[];n[i]=s;for(let l of a)ii(l)?s.push(this.dehydrateAstNode(l,r)):va(l)?s.push(this.dehydrateReference(l,r)):s.push(l)}else ii(a)?n[i]=this.dehydrateAstNode(a,r):va(a)?n[i]=this.dehydrateReference(a,r):a!==void 0&&(n[i]=a);return n}dehydrateReference(e,r){let n={};return n.$refText=e.$refText,e.$refNode&&(n.$refNode=r.cstNodes.get(e.$refNode)),n}dehydrateCstNode(e,r){let n=r.cstNodes.get(e);return M2(e)?n.fullText=e.fullText:n.grammarSource=this.getGrammarElementId(e.grammarSource),n.hidden=e.hidden,n.astNode=r.astNodes.get(e.astNode),Ll(e)?n.content=e.content.map(i=>this.dehydrateCstNode(i,r)):af(e)&&(n.tokenType=e.tokenType.name,n.offset=e.offset,n.length=e.length,n.startLine=e.range.start.line,n.startColumn=e.range.start.character,n.endLine=e.range.end.line,n.endColumn=e.range.end.character),n}hydrate(e){let r=e.value,n=this.createHydrationContext(r);return"$cstNode"in r&&this.hydrateCstNode(r.$cstNode,n),{lexerErrors:e.lexerErrors,lexerReport:e.lexerReport,parserErrors:e.parserErrors,value:this.hydrateAstNode(r,n)}}createHydrationContext(e){let r=new Map,n=new Map;for(let a of Wo(e))r.set(a,{});let i;if(e.$cstNode)for(let a of Kd(e.$cstNode)){let s;"fullText"in a?(s=new a1(a.fullText),i=s):"content"in a?s=new mp:"tokenType"in a&&(s=this.hydrateCstLeafNode(a)),s&&(n.set(a,s),s.root=i)}return{astNodes:r,cstNodes:n}}hydrateAstNode(e,r){let n=r.astNodes.get(e);n.$type=e.$type,n.$containerIndex=e.$containerIndex,n.$containerProperty=e.$containerProperty,e.$cstNode&&(n.$cstNode=r.cstNodes.get(e.$cstNode));for(let[i,a]of Object.entries(e))if(!i.startsWith("$"))if(Array.isArray(a)){let s=[];n[i]=s;for(let l of a)ii(l)?s.push(this.setParent(this.hydrateAstNode(l,r),n)):va(l)?s.push(this.hydrateReference(l,n,i,r)):s.push(l)}else ii(a)?n[i]=this.setParent(this.hydrateAstNode(a,r),n):va(a)?n[i]=this.hydrateReference(a,n,i,r):a!==void 0&&(n[i]=a);return n}setParent(e,r){return e.$container=r,e}hydrateReference(e,r,n,i){return this.linker.buildReference(r,n,i.cstNodes.get(e.$refNode),e.$refText)}hydrateCstNode(e,r,n=0){let i=r.cstNodes.get(e);if(typeof e.grammarSource=="number"&&(i.grammarSource=this.getGrammarElement(e.grammarSource)),i.astNode=r.astNodes.get(e.astNode),Ll(i))for(let a of e.content){let s=this.hydrateCstNode(a,r,n++);i.content.push(s)}return i}hydrateCstLeafNode(e){let r=this.getTokenType(e.tokenType),n=e.offset,i=e.length,a=e.startLine,s=e.startColumn,l=e.endLine,u=e.endColumn,h=e.hidden;return new pp(n,i,{start:{line:a,character:s},end:{line:l,character:u}},r,h)}getTokenType(e){return this.lexer.definition[e]}getGrammarElementId(e){if(e)return this.grammarElementIdMap.size===0&&this.createGrammarElementIdMap(),this.grammarElementIdMap.get(e)}getGrammarElement(e){return this.grammarElementIdMap.size===0&&this.createGrammarElementIdMap(),this.grammarElementIdMap.getKey(e)}createGrammarElementIdMap(){let e=0;for(let r of Wo(this.grammar))G2(r)&&this.grammarElementIdMap.set(r,e++)}}});function fs(t){return{documentation:{CommentProvider:o(e=>new nb(e),"CommentProvider"),DocumentationProvider:o(e=>new rb(e),"DocumentationProvider")},parser:{AsyncParser:o(e=>new ib(e),"AsyncParser"),GrammarConfig:o(e=>pN(e),"GrammarConfig"),LangiumParser:o(e=>TM(e),"LangiumParser"),CompletionParser:o(e=>bM(e),"CompletionParser"),ValueConverter:o(()=>new yp,"ValueConverter"),TokenBuilder:o(()=>new Uu,"TokenBuilder"),Lexer:o(e=>new wp(e),"Lexer"),ParserErrorMessageProvider:o(()=>new s1,"ParserErrorMessageProvider"),LexerErrorMessageProvider:o(()=>new Jx,"LexerErrorMessageProvider")},workspace:{AstNodeLocator:o(()=>new Xx,"AstNodeLocator"),AstNodeDescriptionProvider:o(e=>new qx(e),"AstNodeDescriptionProvider"),ReferenceDescriptionProvider:o(e=>new Yx(e),"ReferenceDescriptionProvider")},references:{Linker:o(e=>new Ix(e),"Linker"),NameProvider:o(()=>new Ox,"NameProvider"),ScopeProvider:o(e=>new zx(e),"ScopeProvider"),ScopeComputation:o(e=>new Bx(e),"ScopeComputation"),References:o(e=>new Px(e),"References")},serializer:{Hydrator:o(e=>new sb(e),"Hydrator"),JsonSerializer:o(e=>new Gx(e),"JsonSerializer")},validation:{DocumentValidator:o(e=>new Wx(e),"DocumentValidator"),ValidationRegistry:o(e=>new Ux(e),"ValidationRegistry")},shared:o(()=>t.shared,"shared")}}function ds(t){return{ServiceRegistry:o(e=>new Vx(e),"ServiceRegistry"),workspace:{LangiumDocuments:o(e=>new Mx(e),"LangiumDocuments"),LangiumDocumentFactory:o(e=>new Nx(e),"LangiumDocumentFactory"),DocumentBuilder:o(e=>new Kx(e),"DocumentBuilder"),IndexManager:o(e=>new Qx(e),"IndexManager"),WorkspaceManager:o(e=>new Zx(e),"WorkspaceManager"),FileSystemProvider:o(e=>t.fileSystemProvider(e),"FileSystemProvider"),WorkspaceLock:o(()=>new ab,"WorkspaceLock"),ConfigurationProvider:o(e=>new jx(e),"ConfigurationProvider")}}}var pI=N(()=>{"use strict";mN();wM();kM();wE();EM();BM();FM();$M();zM();VM();LE();HM();WM();Hx();qM();YM();XM();KM();h1();QM();ZM();OE();oI();lI();Lx();hI();fI();dI();o(fs,"createDefaultCoreModule");o(ds,"createDefaultSharedCoreModule")});function ui(t,e,r,n,i,a,s,l,u){let h=[t,e,r,n,i,a,s,l,u].reduce(FE,{});return ace(h)}function ice(t){if(t&&t[nce])for(let e of Object.values(t))ice(e);return t}function ace(t,e){let r=new Proxy({},{deleteProperty:o(()=>!1,"deleteProperty"),set:o(()=>{throw new Error("Cannot set property on injected service container")},"set"),get:o((n,i)=>i===nce?!0:rce(n,i,t,e||r),"get"),getOwnPropertyDescriptor:o((n,i)=>(rce(n,i,t,e||r),Object.getOwnPropertyDescriptor(n,i)),"getOwnPropertyDescriptor"),has:o((n,i)=>i in t,"has"),ownKeys:o(()=>[...Object.getOwnPropertyNames(t)],"ownKeys")});return r}function rce(t,e,r,n){if(e in t){if(t[e]instanceof Error)throw new Error("Construction failure. Please make sure that your dependencies are constructable.",{cause:t[e]});if(t[e]===tce)throw new Error('Cycle detected. Please make "'+String(e)+'" lazy. Visit https://langium.org/docs/reference/configuration-services/#resolving-cyclic-dependencies');return t[e]}else if(e in r){let i=r[e];t[e]=tce;try{t[e]=typeof i=="function"?i(n):ace(i,n)}catch(a){throw t[e]=a instanceof Error?a:void 0,a}return t[e]}else return}function FE(t,e){if(e){for(let[r,n]of Object.entries(e))if(n!==void 0){let i=t[r];i!==null&&n!==null&&typeof i=="object"&&typeof n=="object"?t[r]=FE(i,n):t[r]=n}}return t}var mI,nce,tce,gI=N(()=>{"use strict";(function(t){t.merge=(e,r)=>FE(FE({},e),r)})(mI||(mI={}));o(ui,"inject");nce=Symbol("isProxy");o(ice,"eagerLoad");o(ace,"_inject");tce=Symbol();o(rce,"_resolve");o(FE,"_merge")});var sce=N(()=>{"use strict"});var oce=N(()=>{"use strict";lI();oI();sI()});var lce=N(()=>{"use strict"});var cce=N(()=>{"use strict";mN();lce()});var yI,Tp,$E,vI,uce=N(()=>{"use strict";cf();wE();OE();yI={indentTokenName:"INDENT",dedentTokenName:"DEDENT",whitespaceTokenName:"WS",ignoreIndentationDelimiters:[]};(function(t){t.REGULAR="indentation-sensitive",t.IGNORE_INDENTATION="ignore-indentation"})(Tp||(Tp={}));$E=class extends Uu{static{o(this,"IndentationAwareTokenBuilder")}constructor(e=yI){super(),this.indentationStack=[0],this.whitespaceRegExp=/[ \t]+/y,this.options=Object.assign(Object.assign({},yI),e),this.indentTokenType=of({name:this.options.indentTokenName,pattern:this.indentMatcher.bind(this),line_breaks:!1}),this.dedentTokenType=of({name:this.options.dedentTokenName,pattern:this.dedentMatcher.bind(this),line_breaks:!1})}buildTokens(e,r){let n=super.buildTokens(e,r);if(!IE(n))throw new Error("Invalid tokens built by default builder");let{indentTokenName:i,dedentTokenName:a,whitespaceTokenName:s,ignoreIndentationDelimiters:l}=this.options,u,h,f,d=[];for(let p of n){for(let[m,g]of l)p.name===m?p.PUSH_MODE=Tp.IGNORE_INDENTATION:p.name===g&&(p.POP_MODE=!0);p.name===a?u=p:p.name===i?h=p:p.name===s?f=p:d.push(p)}if(!u||!h||!f)throw new Error("Some indentation/whitespace tokens not found!");return l.length>0?{modes:{[Tp.REGULAR]:[u,h,...d,f],[Tp.IGNORE_INDENTATION]:[...d,f]},defaultMode:Tp.REGULAR}:[u,h,f,...d]}flushLexingReport(e){let r=super.flushLexingReport(e);return Object.assign(Object.assign({},r),{remainingDedents:this.flushRemainingDedents(e)})}isStartOfLine(e,r){return r===0||`\r
+`.includes(e[r-1])}matchWhitespace(e,r,n,i){var a;this.whitespaceRegExp.lastIndex=r;let s=this.whitespaceRegExp.exec(e);return{currIndentLevel:(a=s?.[0].length)!==null&&a!==void 0?a:0,prevIndentLevel:this.indentationStack.at(-1),match:s}}createIndentationTokenInstance(e,r,n,i){let a=this.getLineNumber(r,i);return $u(e,n,i,i+n.length,a,a,1,n.length)}getLineNumber(e,r){return e.substring(0,r).split(/\r\n|\r|\n/).length}indentMatcher(e,r,n,i){if(!this.isStartOfLine(e,r))return null;let{currIndentLevel:a,prevIndentLevel:s,match:l}=this.matchWhitespace(e,r,n,i);return a<=s?null:(this.indentationStack.push(a),l)}dedentMatcher(e,r,n,i){var a,s,l,u;if(!this.isStartOfLine(e,r))return null;let{currIndentLevel:h,prevIndentLevel:f,match:d}=this.matchWhitespace(e,r,n,i);if(h>=f)return null;let p=this.indentationStack.lastIndexOf(h);if(p===-1)return this.diagnostics.push({severity:"error",message:`Invalid dedent level ${h} at offset: ${r}. Current indentation stack: ${this.indentationStack}`,offset:r,length:(s=(a=d?.[0])===null||a===void 0?void 0:a.length)!==null&&s!==void 0?s:0,line:this.getLineNumber(e,r),column:1}),null;let m=this.indentationStack.length-p-1,g=(u=(l=e.substring(0,r).match(/[\r\n]+$/))===null||l===void 0?void 0:l[0].length)!==null&&u!==void 0?u:1;for(let y=0;y<m;y++){let v=this.createIndentationTokenInstance(this.dedentTokenType,e,"",r-(g-1));n.push(v),this.indentationStack.pop()}return null}buildTerminalToken(e){let r=super.buildTerminalToken(e),{indentTokenName:n,dedentTokenName:i,whitespaceTokenName:a}=this.options;return r.name===n?this.indentTokenType:r.name===i?this.dedentTokenType:r.name===a?of({name:a,pattern:this.whitespaceRegExp,group:Xn.SKIPPED}):r}flushRemainingDedents(e){let r=[];for(;this.indentationStack.length>1;)r.push(this.createIndentationTokenInstance(this.dedentTokenType,e,"",e.length)),this.indentationStack.pop();return this.indentationStack=[0],r}},vI=class extends wp{static{o(this,"IndentationAwareLexer")}constructor(e){if(super(e),e.parser.TokenBuilder instanceof $E)this.indentationTokenBuilder=e.parser.TokenBuilder;else throw new Error("IndentationAwareLexer requires an accompanying IndentationAwareTokenBuilder")}tokenize(e,r=ME){let n=super.tokenize(e),i=n.report;r?.mode==="full"&&n.tokens.push(...i.remainingDedents),i.remainingDedents=[];let{indentTokenType:a,dedentTokenType:s}=this.indentationTokenBuilder,l=a.tokenTypeIdx,u=s.tokenTypeIdx,h=[],f=n.tokens.length-1;for(let d=0;d<f;d++){let p=n.tokens[d],m=n.tokens[d+1];if(p.tokenTypeIdx===l&&m.tokenTypeIdx===u){d++;continue}h.push(p)}return f>=0&&h.push(n.tokens[f]),n.tokens=h,n}}});var hce=N(()=>{"use strict"});var fce=N(()=>{"use strict";hI();wM();gE();uce();kM();Lx();OE();bE();hce();wE();EM()});var dce=N(()=>{"use strict";BM();FM();$M();GM();zM();VM()});var pce=N(()=>{"use strict";dI();LE()});var zE,ps,xI=N(()=>{"use strict";zE=class{static{o(this,"EmptyFileSystemProvider")}readFile(){throw new Error("No file system is available.")}async readDirectory(){return[]}},ps={fileSystemProvider:o(()=>new zE,"fileSystemProvider")}});function IFe(){let t=ui(ds(ps),MFe),e=ui(fs({shared:t}),NFe);return t.ServiceRegistry.register(e),e}function Hu(t){var e;let r=IFe(),n=r.serializer.JsonSerializer.deserialize(t);return r.shared.workspace.LangiumDocumentFactory.fromModel(n,us.parse(`memory://${(e=n.name)!==null&&e!==void 0?e:"grammar"}.langium`)),n}var NFe,MFe,mce=N(()=>{"use strict";pI();gI();Rc();xI();Fc();NFe={Grammar:o(()=>{},"Grammar"),LanguageMetaData:o(()=>({caseInsensitive:!1,fileExtensions:[".langium"],languageId:"langium"}),"LanguageMetaData")},MFe={AstReflection:o(()=>new Cg,"AstReflection")};o(IFe,"createMinimalGrammarServices");o(Hu,"loadGrammarFromJson")});var Gr={};hr(Gr,{AstUtils:()=>xk,BiMap:()=>vp,Cancellation:()=>yr,ContextCache:()=>xp,CstUtils:()=>ck,DONE_RESULT:()=>Ia,Deferred:()=>cs,Disposable:()=>ff,DisposableCache:()=>p1,DocumentCache:()=>_E,EMPTY_STREAM:()=>I2,ErrorWithLocation:()=>Zd,GrammarUtils:()=>Ek,MultiMap:()=>Bl,OperationCancelled:()=>Pc,Reduction:()=>zm,RegExpUtils:()=>Tk,SimpleCache:()=>$x,StreamImpl:()=>ao,TreeStreamImpl:()=>_c,URI:()=>us,UriUtils:()=>hs,WorkspaceCache:()=>m1,assertUnreachable:()=>Lc,delayNextTick:()=>MM,interruptAndCheck:()=>xi,isOperationCancelled:()=>Bc,loadGrammarFromJson:()=>Hu,setInterruptionPeriod:()=>$le,startCancelableOperation:()=>CE,stream:()=>en});var gce=N(()=>{"use strict";DE();NE();Sr(Gr,Kn);f1();jM();uk();mce();Yo();Ps();Fc();is();qo();Nl();Ol();Lg()});var yce=N(()=>{"use strict";WM();Hx()});var vce=N(()=>{"use strict";qM();YM();XM();KM();h1();xI();QM();fI();ZM()});var xa={};hr(xa,{AbstractAstReflection:()=>Xd,AbstractCstNode:()=>Cx,AbstractLangiumParser:()=>Ax,AbstractParserErrorMessageProvider:()=>vE,AbstractThreadedAsyncParser:()=>cI,AstUtils:()=>xk,BiMap:()=>vp,Cancellation:()=>yr,CompositeCstNodeImpl:()=>mp,ContextCache:()=>xp,CstNodeBuilder:()=>Sx,CstUtils:()=>ck,DEFAULT_TOKENIZE_OPTIONS:()=>ME,DONE_RESULT:()=>Ia,DatatypeSymbol:()=>yE,DefaultAstNodeDescriptionProvider:()=>qx,DefaultAstNodeLocator:()=>Xx,DefaultAsyncParser:()=>ib,DefaultCommentProvider:()=>nb,DefaultConfigurationProvider:()=>jx,DefaultDocumentBuilder:()=>Kx,DefaultDocumentValidator:()=>Wx,DefaultHydrator:()=>sb,DefaultIndexManager:()=>Qx,DefaultJsonSerializer:()=>Gx,DefaultLangiumDocumentFactory:()=>Nx,DefaultLangiumDocuments:()=>Mx,DefaultLexer:()=>wp,DefaultLexerErrorMessageProvider:()=>Jx,DefaultLinker:()=>Ix,DefaultNameProvider:()=>Ox,DefaultReferenceDescriptionProvider:()=>Yx,DefaultReferences:()=>Px,DefaultScopeComputation:()=>Bx,DefaultScopeProvider:()=>zx,DefaultServiceRegistry:()=>Vx,DefaultTokenBuilder:()=>Uu,DefaultValueConverter:()=>yp,DefaultWorkspaceLock:()=>ab,DefaultWorkspaceManager:()=>Zx,Deferred:()=>cs,Disposable:()=>ff,DisposableCache:()=>p1,DocumentCache:()=>_E,DocumentState:()=>kn,DocumentValidator:()=>jo,EMPTY_SCOPE:()=>xFe,EMPTY_STREAM:()=>I2,EmptyFileSystem:()=>ps,EmptyFileSystemProvider:()=>zE,ErrorWithLocation:()=>Zd,GrammarAST:()=>U2,GrammarUtils:()=>Ek,IndentationAwareLexer:()=>vI,IndentationAwareTokenBuilder:()=>$E,JSDocDocumentationProvider:()=>rb,LangiumCompletionParser:()=>Dx,LangiumParser:()=>_x,LangiumParserErrorMessageProvider:()=>s1,LeafCstNodeImpl:()=>pp,LexingMode:()=>Tp,MapScope:()=>Fx,Module:()=>mI,MultiMap:()=>Bl,OperationCancelled:()=>Pc,ParserWorker:()=>uI,Reduction:()=>zm,RegExpUtils:()=>Tk,RootCstNodeImpl:()=>a1,SimpleCache:()=>$x,StreamImpl:()=>ao,StreamScope:()=>d1,TextDocument:()=>c1,TreeStreamImpl:()=>_c,URI:()=>us,UriUtils:()=>hs,ValidationCategory:()=>g1,ValidationRegistry:()=>Ux,ValueConverter:()=>Oc,WorkspaceCache:()=>m1,assertUnreachable:()=>Lc,createCompletionParser:()=>bM,createDefaultCoreModule:()=>fs,createDefaultSharedCoreModule:()=>ds,createGrammarConfig:()=>pN,createLangiumParser:()=>TM,createParser:()=>Rx,delayNextTick:()=>MM,diagnosticData:()=>bp,eagerLoad:()=>ice,getDiagnosticRange:()=>Yle,indentationBuilderDefaultOptions:()=>yI,inject:()=>ui,interruptAndCheck:()=>xi,isAstNode:()=>ii,isAstNodeDescription:()=>kR,isAstNodeWithComment:()=>UM,isCompositeCstNode:()=>Ll,isIMultiModeLexerDefinition:()=>eI,isJSDoc:()=>iI,isLeafCstNode:()=>af,isLinkingError:()=>jd,isNamed:()=>Wle,isOperationCancelled:()=>Bc,isReference:()=>va,isRootCstNode:()=>M2,isTokenTypeArray:()=>IE,isTokenTypeDictionary:()=>JM,loadGrammarFromJson:()=>Hu,parseJSDoc:()=>nI,prepareLangiumParser:()=>Nle,setInterruptionPeriod:()=>$le,startCancelableOperation:()=>CE,stream:()=>en,toDiagnosticData:()=>Xle,toDiagnosticSeverity:()=>RE});var Xo=N(()=>{"use strict";pI();gI();HM();sce();Rl();oce();cce();fce();dce();pce();gce();Sr(xa,Gr);yce();vce();Rc()});function Sce(t){return Fl.isInstance(t,ob)}function Cce(t){return Fl.isInstance(t,y1)}function Ace(t){return Fl.isInstance(t,v1)}function _ce(t){return Fl.isInstance(t,WE)}function Dce(t){return Fl.isInstance(t,x1)}function Lce(t){return Fl.isInstance(t,lb)}function Rce(t){return Fl.isInstance(t,b1)}function Nce(t){return Fl.isInstance(t,cb)}function Mce(t){return Fl.isInstance(t,ub)}function Ice(t){return Fl.isInstance(t,hb)}function Oce(t){return Fl.isInstance(t,fb)}var OFe,Lt,AI,ob,GE,y1,VE,UE,v1,WE,bI,wI,TI,x1,kI,lb,EI,b1,SI,cb,ub,hb,fb,qE,CI,HE,Pce,Fl,xce,PFe,bce,BFe,wce,FFe,Tce,$Fe,kce,zFe,Ece,GFe,VFe,UFe,HFe,WFe,qFe,YFe,co,_I,DI,LI,RI,NI,MI,XFe,jFe,KFe,QFe,w1,Wu,$s,ZFe,zs=N(()=>{"use strict";Xo();Xo();Xo();Xo();OFe=Object.defineProperty,Lt=o((t,e)=>OFe(t,"name",{value:e,configurable:!0}),"__name"),AI="Statement",ob="Architecture";o(Sce,"isArchitecture");Lt(Sce,"isArchitecture");GE="Axis",y1="Branch";o(Cce,"isBranch");Lt(Cce,"isBranch");VE="Checkout",UE="CherryPicking",v1="Commit";o(Ace,"isCommit");Lt(Ace,"isCommit");WE="Common";o(_ce,"isCommon");Lt(_ce,"isCommon");bI="Curve",wI="Edge",TI="Entry",x1="GitGraph";o(Dce,"isGitGraph");Lt(Dce,"isGitGraph");kI="Group",lb="Info";o(Lce,"isInfo");Lt(Lce,"isInfo");EI="Junction",b1="Merge";o(Rce,"isMerge");Lt(Rce,"isMerge");SI="Option",cb="Packet";o(Nce,"isPacket");Lt(Nce,"isPacket");ub="PacketBlock";o(Mce,"isPacketBlock");Lt(Mce,"isPacketBlock");hb="Pie";o(Ice,"isPie");Lt(Ice,"isPie");fb="PieSection";o(Oce,"isPieSection");Lt(Oce,"isPieSection");qE="Radar",CI="Service",HE="Direction",Pce=class extends Xd{static{o(this,"MermaidAstReflection")}static{Lt(this,"MermaidAstReflection")}getAllTypes(){return[ob,GE,y1,VE,UE,v1,WE,bI,HE,wI,TI,x1,kI,lb,EI,b1,SI,cb,ub,hb,fb,qE,CI,AI]}computeIsSubtype(t,e){switch(t){case y1:case VE:case UE:case v1:case b1:return this.isSubtype(AI,e);case HE:return this.isSubtype(x1,e);default:return!1}}getReferenceType(t){let e=`${t.container.$type}:${t.property}`;switch(e){case"Entry:axis":return GE;default:throw new Error(`${e} is not a valid reference id.`)}}getTypeMetaData(t){switch(t){case ob:return{name:ob,properties:[{name:"accDescr"},{name:"accTitle"},{name:"edges",defaultValue:[]},{name:"groups",defaultValue:[]},{name:"junctions",defaultValue:[]},{name:"services",defaultValue:[]},{name:"title"}]};case GE:return{name:GE,properties:[{name:"label"},{name:"name"}]};case y1:return{name:y1,properties:[{name:"name"},{name:"order"}]};case VE:return{name:VE,properties:[{name:"branch"}]};case UE:return{name:UE,properties:[{name:"id"},{name:"parent"},{name:"tags",defaultValue:[]}]};case v1:return{name:v1,properties:[{name:"id"},{name:"message"},{name:"tags",defaultValue:[]},{name:"type"}]};case WE:return{name:WE,properties:[{name:"accDescr"},{name:"accTitle"},{name:"title"}]};case bI:return{name:bI,properties:[{name:"entries",defaultValue:[]},{name:"label"},{name:"name"}]};case wI:return{name:wI,properties:[{name:"lhsDir"},{name:"lhsGroup",defaultValue:!1},{name:"lhsId"},{name:"lhsInto",defaultValue:!1},{name:"rhsDir"},{name:"rhsGroup",defaultValue:!1},{name:"rhsId"},{name:"rhsInto",defaultValue:!1},{name:"title"}]};case TI:return{name:TI,properties:[{name:"axis"},{name:"value"}]};case x1:return{name:x1,properties:[{name:"accDescr"},{name:"accTitle"},{name:"statements",defaultValue:[]},{name:"title"}]};case kI:return{name:kI,properties:[{name:"icon"},{name:"id"},{name:"in"},{name:"title"}]};case lb:return{name:lb,properties:[{name:"accDescr"},{name:"accTitle"},{name:"title"}]};case EI:return{name:EI,properties:[{name:"id"},{name:"in"}]};case b1:return{name:b1,properties:[{name:"branch"},{name:"id"},{name:"tags",defaultValue:[]},{name:"type"}]};case SI:return{name:SI,properties:[{name:"name"},{name:"value",defaultValue:!1}]};case cb:return{name:cb,properties:[{name:"accDescr"},{name:"accTitle"},{name:"blocks",defaultValue:[]},{name:"title"}]};case ub:return{name:ub,properties:[{name:"end"},{name:"label"},{name:"start"}]};case hb:return{name:hb,properties:[{name:"accDescr"},{name:"accTitle"},{name:"sections",defaultValue:[]},{name:"showData",defaultValue:!1},{name:"title"}]};case fb:return{name:fb,properties:[{name:"label"},{name:"value"}]};case qE:return{name:qE,properties:[{name:"accDescr"},{name:"accTitle"},{name:"axes",defaultValue:[]},{name:"curves",defaultValue:[]},{name:"options",defaultValue:[]},{name:"title"}]};case CI:return{name:CI,properties:[{name:"icon"},{name:"iconText"},{name:"id"},{name:"in"},{name:"title"}]};case HE:return{name:HE,properties:[{name:"accDescr"},{name:"accTitle"},{name:"dir"},{name:"statements",defaultValue:[]},{name:"title"}]};default:return{name:t,properties:[]}}}},Fl=new Pce,PFe=Lt(()=>xce??(xce=Hu('{"$type":"Grammar","isDeclared":true,"name":"Info","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Info","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"info"},{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[],"cardinality":"*"},{"$type":"Group","elements":[{"$type":"Keyword","value":"showInfo"},{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[],"cardinality":"*"}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[],"cardinality":"?"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[{"$type":"Interface","name":"Common","attributes":[{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"types":[],"usedGrammars":[]}')),"InfoGrammar"),BFe=Lt(()=>bce??(bce=Hu(`{"$type":"Grammar","isDeclared":true,"name":"Packet","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Packet","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"packet-beta"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"Assignment","feature":"blocks","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]},"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"+"},{"$type":"Assignment","feature":"blocks","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]},"cardinality":"+"}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"}]}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"PacketBlock","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"start","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"-"},{"$type":"Assignment","feature":"end","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}}],"cardinality":"?"},{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","definition":{"$type":"RegexToken","regex":"/\\"[^\\"]*\\"|'[^']*'/"},"fragment":false,"hidden":false},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[{"$type":"Interface","name":"Common","attributes":[{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"types":[],"usedGrammars":[]}`)),"PacketGrammar"),FFe=Lt(()=>wce??(wce=Hu('{"$type":"Grammar","isDeclared":true,"name":"Pie","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Pie","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"pie"},{"$type":"Assignment","feature":"showData","operator":"?=","terminal":{"$type":"Keyword","value":"showData"},"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"Assignment","feature":"sections","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]},"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"+"},{"$type":"Assignment","feature":"sections","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]},"cardinality":"+"}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"}]}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"PieSection","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}},{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"PIE_SECTION_LABEL","definition":{"$type":"RegexToken","regex":"/\\"[^\\"]+\\"/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"PIE_SECTION_VALUE","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/(0|[1-9][0-9]*)(\\\\.[0-9]+)?/"},"fragment":false,"hidden":false},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[{"$type":"Interface","name":"Common","attributes":[{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"types":[],"usedGrammars":[]}')),"PieGrammar"),$Fe=Lt(()=>Tce??(Tce=Hu('{"$type":"Grammar","isDeclared":true,"name":"Architecture","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Architecture","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"architecture-beta"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}]},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[],"cardinality":"*"}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[],"cardinality":"*"}]}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"Statement","definition":{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"groups","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Assignment","feature":"services","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}},{"$type":"Assignment","feature":"junctions","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}},{"$type":"Assignment","feature":"edges","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"LeftPort","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"lhsDir","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"RightPort","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"rhsDir","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}},{"$type":"Keyword","value":":"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"Arrow","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]},{"$type":"Assignment","feature":"lhsInto","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]},"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"--"},{"$type":"Group","elements":[{"$type":"Keyword","value":"-"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}},{"$type":"Keyword","value":"-"}]}]},{"$type":"Assignment","feature":"rhsInto","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Group","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"group"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}},{"$type":"Assignment","feature":"icon","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]},"cardinality":"?"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]},"cardinality":"?"},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Service","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"service"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"iconText","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}},{"$type":"Assignment","feature":"icon","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}}],"cardinality":"?"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]},"cardinality":"?"},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Junction","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"junction"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Edge","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"lhsId","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}},{"$type":"Assignment","feature":"lhsGroup","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"Assignment","feature":"rhsId","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}},{"$type":"Assignment","feature":"rhsGroup","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"ARROW_DIRECTION","definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"L"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"R"}}]},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"T"}}]},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"B"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARCH_ID","definition":{"$type":"RegexToken","regex":"/[\\\\w]+/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARCH_TEXT_ICON","definition":{"$type":"RegexToken","regex":"/\\\\(\\"[^\\"]+\\"\\\\)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARCH_ICON","definition":{"$type":"RegexToken","regex":"/\\\\([\\\\w-:]+\\\\)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARCH_TITLE","definition":{"$type":"RegexToken","regex":"/\\\\[[\\\\w ]+\\\\]/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARROW_GROUP","definition":{"$type":"RegexToken","regex":"/\\\\{group\\\\}/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARROW_INTO","definition":{"$type":"RegexToken","regex":"/<|>/"},"fragment":false,"hidden":false},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@21"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[{"$type":"Interface","name":"Common","attributes":[{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"types":[],"usedGrammars":[]}')),"ArchitectureGrammar"),zFe=Lt(()=>kce??(kce=Hu(`{"$type":"Grammar","isDeclared":true,"name":"GitGraph","interfaces":[{"$type":"Interface","name":"Common","attributes":[{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"rules":[{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false},{"$type":"ParserRule","entry":true,"name":"GitGraph","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"Group","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"Keyword","value":":"}]},{"$type":"Keyword","value":"gitGraph:"},{"$type":"Group","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]},{"$type":"Keyword","value":":"}]}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"*"},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@0"},"arguments":[]},{"$type":"Assignment","feature":"statements","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}],"cardinality":"*"}]}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Statement","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Direction","definition":{"$type":"Assignment","feature":"dir","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"LR"},{"$type":"Keyword","value":"TB"},{"$type":"Keyword","value":"BT"}]}},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Commit","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"commit"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"msg:","cardinality":"?"},{"$type":"Assignment","feature":"message","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"type:"},{"$type":"Assignment","feature":"type","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"NORMAL"},{"$type":"Keyword","value":"REVERSE"},{"$type":"Keyword","value":"HIGHLIGHT"}]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Branch","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"branch"},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"order:"},{"$type":"Assignment","feature":"order","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Merge","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"merge"},{"$type":"Assignment","feature":"branch","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}]}},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"type:"},{"$type":"Assignment","feature":"type","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"NORMAL"},{"$type":"Keyword","value":"REVERSE"},{"$type":"Keyword","value":"HIGHLIGHT"}]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Checkout","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"checkout"},{"$type":"Keyword","value":"switch"}]},{"$type":"Assignment","feature":"branch","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"CherryPicking","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"cherry-pick"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"parent:"},{"$type":"Assignment","feature":"parent","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+(?=\\\\s)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\\\w([-\\\\./\\\\w]*[-\\\\w])?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","definition":{"$type":"RegexToken","regex":"/\\"[^\\"]*\\"|'[^']*'/"},"fragment":false,"hidden":false}],"definesHiddenTokens":false,"hiddenTokens":[],"imports":[],"types":[],"usedGrammars":[]}`)),"GitGraphGrammar"),GFe=Lt(()=>Ece??(Ece=Hu(`{"$type":"Grammar","isDeclared":true,"name":"Radar","interfaces":[{"$type":"Interface","name":"Common","attributes":[{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]},{"$type":"Interface","name":"Entry","attributes":[{"$type":"TypeAttribute","name":"axis","isOptional":true,"type":{"$type":"ReferenceType","referenceType":{"$type":"SimpleType","typeRef":{"$ref":"#/rules@12"}}}},{"$type":"TypeAttribute","name":"value","type":{"$type":"SimpleType","primitiveType":"number"},"isOptional":false}],"superTypes":[]}],"rules":[{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false},{"$type":"ParserRule","entry":true,"name":"Radar","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"radar-beta"},{"$type":"Keyword","value":"radar-beta:"},{"$type":"Group","elements":[{"$type":"Keyword","value":"radar-beta"},{"$type":"Keyword","value":":"}]}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@0"},"arguments":[]},{"$type":"Group","elements":[{"$type":"Keyword","value":"axis"},{"$type":"Assignment","feature":"axes","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"axes","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}}],"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"curve"},{"$type":"Assignment","feature":"curves","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"curves","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}}],"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"options","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"options","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}],"cardinality":"*"}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}],"cardinality":"*"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"Label","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"["},{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Keyword","value":"]"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Axis","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@21"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[],"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Curve","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@21"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[],"cardinality":"?"},{"$type":"Keyword","value":"{"},{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]},{"$type":"Keyword","value":"}"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"Entries","definition":{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"*"},{"$type":"Assignment","feature":"entries","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"*"},{"$type":"Assignment","feature":"entries","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"*"},{"$type":"Assignment","feature":"entries","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"*"},{"$type":"Assignment","feature":"entries","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"*"}]}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"DetailedEntry","returnType":{"$ref":"#/interfaces@1"},"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"axis","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@12"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@21"},"arguments":[]},"deprecatedSyntax":false}},{"$type":"Keyword","value":":","cardinality":"?"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"NumberEntry","returnType":{"$ref":"#/interfaces@1"},"definition":{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]}},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Option","definition":{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"showLegend"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"ticks"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"max"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"min"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"graticule"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/(0|[1-9][0-9]*)(\\\\.[0-9]+)?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"GRATICULE","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"circle"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"polygon"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[a-zA-Z_][a-zA-Z0-9\\\\-_]*/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","definition":{"$type":"RegexToken","regex":"/\\"[^\\"]*\\"|'[^']*'/"},"fragment":false,"hidden":false}],"definesHiddenTokens":false,"hiddenTokens":[],"imports":[],"types":[],"usedGrammars":[]}`)),"RadarGrammar"),VFe={languageId:"info",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},UFe={languageId:"packet",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},HFe={languageId:"pie",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},WFe={languageId:"architecture",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},qFe={languageId:"gitGraph",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},YFe={languageId:"radar",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},co={AstReflection:Lt(()=>new Pce,"AstReflection")},_I={Grammar:Lt(()=>PFe(),"Grammar"),LanguageMetaData:Lt(()=>VFe,"LanguageMetaData"),parser:{}},DI={Grammar:Lt(()=>BFe(),"Grammar"),LanguageMetaData:Lt(()=>UFe,"LanguageMetaData"),parser:{}},LI={Grammar:Lt(()=>FFe(),"Grammar"),LanguageMetaData:Lt(()=>HFe,"LanguageMetaData"),parser:{}},RI={Grammar:Lt(()=>$Fe(),"Grammar"),LanguageMetaData:Lt(()=>WFe,"LanguageMetaData"),parser:{}},NI={Grammar:Lt(()=>zFe(),"Grammar"),LanguageMetaData:Lt(()=>qFe,"LanguageMetaData"),parser:{}},MI={Grammar:Lt(()=>GFe(),"Grammar"),LanguageMetaData:Lt(()=>YFe,"LanguageMetaData"),parser:{}},XFe=/accDescr(?:[\t ]*:([^\n\r]*)|\s*{([^}]*)})/,jFe=/accTitle[\t ]*:([^\n\r]*)/,KFe=/title([\t ][^\n\r]*|)/,QFe={ACC_DESCR:XFe,ACC_TITLE:jFe,TITLE:KFe},w1=class extends yp{static{o(this,"AbstractMermaidValueConverter")}static{Lt(this,"AbstractMermaidValueConverter")}runConverter(t,e,r){let n=this.runCommonConverter(t,e,r);return n===void 0&&(n=this.runCustomConverter(t,e,r)),n===void 0?super.runConverter(t,e,r):n}runCommonConverter(t,e,r){let n=QFe[t.name];if(n===void 0)return;let i=n.exec(e);if(i!==null){if(i[1]!==void 0)return i[1].trim().replace(/[\t ]{2,}/gm," ");if(i[2]!==void 0)return i[2].replace(/^\s*/gm,"").replace(/\s+$/gm,"").replace(/[\t ]{2,}/gm," ").replace(/[\n\r]{2,}/gm,`
+`)}}},Wu=class extends w1{static{o(this,"CommonValueConverter")}static{Lt(this,"CommonValueConverter")}runCustomConverter(t,e,r){}},$s=class extends Uu{static{o(this,"AbstractMermaidTokenBuilder")}static{Lt(this,"AbstractMermaidTokenBuilder")}constructor(t){super(),this.keywords=new Set(t)}buildKeywordTokens(t,e,r){let n=super.buildKeywordTokens(t,e,r);return n.forEach(i=>{this.keywords.has(i.name)&&i.PATTERN!==void 0&&(i.PATTERN=new RegExp(i.PATTERN.toString()+"(?:(?=%%)|(?!\\S))"))}),n}},ZFe=class extends $s{static{o(this,"CommonTokenBuilder")}static{Lt(this,"CommonTokenBuilder")}}});function XE(t=ps){let e=ui(ds(t),co),r=ui(fs({shared:e}),NI,YE);return e.ServiceRegistry.register(r),{shared:e,GitGraph:r}}var JFe,YE,II=N(()=>{"use strict";zs();Xo();JFe=class extends $s{static{o(this,"GitGraphTokenBuilder")}static{Lt(this,"GitGraphTokenBuilder")}constructor(){super(["gitGraph"])}},YE={parser:{TokenBuilder:Lt(()=>new JFe,"TokenBuilder"),ValueConverter:Lt(()=>new Wu,"ValueConverter")}};o(XE,"createGitGraphServices");Lt(XE,"createGitGraphServices")});function KE(t=ps){let e=ui(ds(t),co),r=ui(fs({shared:e}),_I,jE);return e.ServiceRegistry.register(r),{shared:e,Info:r}}var e$e,jE,OI=N(()=>{"use strict";zs();Xo();e$e=class extends $s{static{o(this,"InfoTokenBuilder")}static{Lt(this,"InfoTokenBuilder")}constructor(){super(["info","showInfo"])}},jE={parser:{TokenBuilder:Lt(()=>new e$e,"TokenBuilder"),ValueConverter:Lt(()=>new Wu,"ValueConverter")}};o(KE,"createInfoServices");Lt(KE,"createInfoServices")});function ZE(t=ps){let e=ui(ds(t),co),r=ui(fs({shared:e}),DI,QE);return e.ServiceRegistry.register(r),{shared:e,Packet:r}}var t$e,QE,PI=N(()=>{"use strict";zs();Xo();t$e=class extends $s{static{o(this,"PacketTokenBuilder")}static{Lt(this,"PacketTokenBuilder")}constructor(){super(["packet-beta"])}},QE={parser:{TokenBuilder:Lt(()=>new t$e,"TokenBuilder"),ValueConverter:Lt(()=>new Wu,"ValueConverter")}};o(ZE,"createPacketServices");Lt(ZE,"createPacketServices")});function e6(t=ps){let e=ui(ds(t),co),r=ui(fs({shared:e}),LI,JE);return e.ServiceRegistry.register(r),{shared:e,Pie:r}}var r$e,n$e,JE,BI=N(()=>{"use strict";zs();Xo();r$e=class extends $s{static{o(this,"PieTokenBuilder")}static{Lt(this,"PieTokenBuilder")}constructor(){super(["pie","showData"])}},n$e=class extends w1{static{o(this,"PieValueConverter")}static{Lt(this,"PieValueConverter")}runCustomConverter(t,e,r){if(t.name==="PIE_SECTION_LABEL")return e.replace(/"/g,"").trim()}},JE={parser:{TokenBuilder:Lt(()=>new r$e,"TokenBuilder"),ValueConverter:Lt(()=>new n$e,"ValueConverter")}};o(e6,"createPieServices");Lt(e6,"createPieServices")});function r6(t=ps){let e=ui(ds(t),co),r=ui(fs({shared:e}),RI,t6);return e.ServiceRegistry.register(r),{shared:e,Architecture:r}}var i$e,a$e,t6,FI=N(()=>{"use strict";zs();Xo();i$e=class extends $s{static{o(this,"ArchitectureTokenBuilder")}static{Lt(this,"ArchitectureTokenBuilder")}constructor(){super(["architecture"])}},a$e=class extends w1{static{o(this,"ArchitectureValueConverter")}static{Lt(this,"ArchitectureValueConverter")}runCustomConverter(t,e,r){if(t.name==="ARCH_ICON")return e.replace(/[()]/g,"").trim();if(t.name==="ARCH_TEXT_ICON")return e.replace(/["()]/g,"");if(t.name==="ARCH_TITLE")return e.replace(/[[\]]/g,"").trim()}},t6={parser:{TokenBuilder:Lt(()=>new i$e,"TokenBuilder"),ValueConverter:Lt(()=>new a$e,"ValueConverter")}};o(r6,"createArchitectureServices");Lt(r6,"createArchitectureServices")});function i6(t=ps){let e=ui(ds(t),co),r=ui(fs({shared:e}),MI,n6);return e.ServiceRegistry.register(r),{shared:e,Radar:r}}var s$e,n6,$I=N(()=>{"use strict";zs();Xo();s$e=class extends $s{static{o(this,"RadarTokenBuilder")}static{Lt(this,"RadarTokenBuilder")}constructor(){super(["radar-beta"])}},n6={parser:{TokenBuilder:Lt(()=>new s$e,"TokenBuilder"),ValueConverter:Lt(()=>new Wu,"ValueConverter")}};o(i6,"createRadarServices");Lt(i6,"createRadarServices")});var Bce={};hr(Bce,{InfoModule:()=>jE,createInfoServices:()=>KE});var Fce=N(()=>{"use strict";OI();zs()});var $ce={};hr($ce,{PacketModule:()=>QE,createPacketServices:()=>ZE});var zce=N(()=>{"use strict";PI();zs()});var Gce={};hr(Gce,{PieModule:()=>JE,createPieServices:()=>e6});var Vce=N(()=>{"use strict";BI();zs()});var Uce={};hr(Uce,{ArchitectureModule:()=>t6,createArchitectureServices:()=>r6});var Hce=N(()=>{"use strict";FI();zs()});var Wce={};hr(Wce,{GitGraphModule:()=>YE,createGitGraphServices:()=>XE});var qce=N(()=>{"use strict";II();zs()});var Yce={};hr(Yce,{RadarModule:()=>n6,createRadarServices:()=>i6});var Xce=N(()=>{"use strict";$I();zs()});async function uo(t,e){let r=o$e[t];if(!r)throw new Error(`Unknown diagram type: ${t}`);df[t]||await r();let i=df[t].parse(e);if(i.lexerErrors.length>0||i.parserErrors.length>0)throw new l$e(i);return i.value}var df,o$e,l$e,kp=N(()=>{"use strict";II();OI();PI();BI();FI();$I();zs();df={},o$e={info:Lt(async()=>{let{createInfoServices:t}=await Promise.resolve().then(()=>(Fce(),Bce)),e=t().Info.parser.LangiumParser;df.info=e},"info"),packet:Lt(async()=>{let{createPacketServices:t}=await Promise.resolve().then(()=>(zce(),$ce)),e=t().Packet.parser.LangiumParser;df.packet=e},"packet"),pie:Lt(async()=>{let{createPieServices:t}=await Promise.resolve().then(()=>(Vce(),Gce)),e=t().Pie.parser.LangiumParser;df.pie=e},"pie"),architecture:Lt(async()=>{let{createArchitectureServices:t}=await Promise.resolve().then(()=>(Hce(),Uce)),e=t().Architecture.parser.LangiumParser;df.architecture=e},"architecture"),gitGraph:Lt(async()=>{let{createGitGraphServices:t}=await Promise.resolve().then(()=>(qce(),Wce)),e=t().GitGraph.parser.LangiumParser;df.gitGraph=e},"gitGraph"),radar:Lt(async()=>{let{createRadarServices:t}=await Promise.resolve().then(()=>(Xce(),Yce)),e=t().Radar.parser.LangiumParser;df.radar=e},"radar")};o(uo,"parse");Lt(uo,"parse");l$e=class extends Error{static{o(this,"MermaidParseError")}constructor(t){let e=t.lexerErrors.map(n=>n.message).join(`
+`),r=t.parserErrors.map(n=>n.message).join(`
+`);super(`Parsing failed: ${e} ${r}`),this.result=t}static{Lt(this,"MermaidParseError")}}});function $c(t,e){t.accDescr&&e.setAccDescription?.(t.accDescr),t.accTitle&&e.setAccTitle?.(t.accTitle),t.title&&e.setDiagramTitle?.(t.title)}var T1=N(()=>{"use strict";o($c,"populateCommonDb")});var Kr,a6=N(()=>{"use strict";Kr={NORMAL:0,REVERSE:1,HIGHLIGHT:2,MERGE:3,CHERRY_PICK:4}});var pf,s6=N(()=>{"use strict";pf=class{constructor(e){this.init=e;this.records=this.init()}static{o(this,"ImperativeState")}reset(){this.records=this.init()}}});function zI(){return j9({length:7})}function u$e(t,e){let r=Object.create(null);return t.reduce((n,i)=>{let a=e(i);return r[a]||(r[a]=!0,n.push(i)),n},[])}function jce(t,e,r){let n=t.indexOf(e);n===-1?t.push(r):t.splice(n,1,r)}function Qce(t){let e=t.reduce((i,a)=>i.seq>a.seq?i:a,t[0]),r="";t.forEach(function(i){i===e?r+="	*":r+="	|"});let n=[r,e.id,e.seq];for(let i in _t.records.branches)_t.records.branches.get(i)===e.id&&n.push(i);if(Y.debug(n.join(" ")),e.parents&&e.parents.length==2&&e.parents[0]&&e.parents[1]){let i=_t.records.commits.get(e.parents[0]);jce(t,e,i),e.parents[1]&&t.push(_t.records.commits.get(e.parents[1]))}else{if(e.parents.length==0)return;if(e.parents[0]){let i=_t.records.commits.get(e.parents[0]);jce(t,e,i)}}t=u$e(t,i=>i.id),Qce(t)}var c$e,Ep,_t,h$e,f$e,d$e,p$e,m$e,g$e,y$e,Kce,v$e,x$e,b$e,w$e,T$e,Zce,k$e,E$e,S$e,o6,GI=N(()=>{"use strict";vt();ir();ji();gr();mi();a6();s6();Ya();c$e=or.gitGraph,Ep=o(()=>Fi({...c$e,...cr().gitGraph}),"getConfig"),_t=new pf(()=>{let t=Ep(),e=t.mainBranchName,r=t.mainBranchOrder;return{mainBranchName:e,commits:new Map,head:null,branchConfig:new Map([[e,{name:e,order:r}]]),branches:new Map([[e,null]]),currBranch:e,direction:"LR",seq:0,options:{}}});o(zI,"getID");o(u$e,"uniqBy");h$e=o(function(t){_t.records.direction=t},"setDirection"),f$e=o(function(t){Y.debug("options str",t),t=t?.trim(),t=t||"{}";try{_t.records.options=JSON.parse(t)}catch(e){Y.error("error while parsing gitGraph options",e.message)}},"setOptions"),d$e=o(function(){return _t.records.options},"getOptions"),p$e=o(function(t){let e=t.msg,r=t.id,n=t.type,i=t.tags;Y.info("commit",e,r,n,i),Y.debug("Entering commit:",e,r,n,i);let a=Ep();r=Ze.sanitizeText(r,a),e=Ze.sanitizeText(e,a),i=i?.map(l=>Ze.sanitizeText(l,a));let s={id:r||_t.records.seq+"-"+zI(),message:e,seq:_t.records.seq++,type:n??Kr.NORMAL,tags:i??[],parents:_t.records.head==null?[]:[_t.records.head.id],branch:_t.records.currBranch};_t.records.head=s,Y.info("main branch",a.mainBranchName),_t.records.commits.set(s.id,s),_t.records.branches.set(_t.records.currBranch,s.id),Y.debug("in pushCommit "+s.id)},"commit"),m$e=o(function(t){let e=t.name,r=t.order;if(e=Ze.sanitizeText(e,Ep()),_t.records.branches.has(e))throw new Error(`Trying to create an existing branch. (Help: Either use a new name if you want create a new branch or try using "checkout ${e}")`);_t.records.branches.set(e,_t.records.head!=null?_t.records.head.id:null),_t.records.branchConfig.set(e,{name:e,order:r}),Kce(e),Y.debug("in createBranch")},"branch"),g$e=o(t=>{let e=t.branch,r=t.id,n=t.type,i=t.tags,a=Ep();e=Ze.sanitizeText(e,a),r&&(r=Ze.sanitizeText(r,a));let s=_t.records.branches.get(_t.records.currBranch),l=_t.records.branches.get(e),u=s?_t.records.commits.get(s):void 0,h=l?_t.records.commits.get(l):void 0;if(u&&h&&u.branch===e)throw new Error(`Cannot merge branch '${e}' into itself.`);if(_t.records.currBranch===e){let p=new Error('Incorrect usage of "merge". Cannot merge a branch to itself');throw p.hash={text:`merge ${e}`,token:`merge ${e}`,expected:["branch abc"]},p}if(u===void 0||!u){let p=new Error(`Incorrect usage of "merge". Current branch (${_t.records.currBranch})has no commits`);throw p.hash={text:`merge ${e}`,token:`merge ${e}`,expected:["commit"]},p}if(!_t.records.branches.has(e)){let p=new Error('Incorrect usage of "merge". Branch to be merged ('+e+") does not exist");throw p.hash={text:`merge ${e}`,token:`merge ${e}`,expected:[`branch ${e}`]},p}if(h===void 0||!h){let p=new Error('Incorrect usage of "merge". Branch to be merged ('+e+") has no commits");throw p.hash={text:`merge ${e}`,token:`merge ${e}`,expected:['"commit"']},p}if(u===h){let p=new Error('Incorrect usage of "merge". Both branches have same head');throw p.hash={text:`merge ${e}`,token:`merge ${e}`,expected:["branch abc"]},p}if(r&&_t.records.commits.has(r)){let p=new Error('Incorrect usage of "merge". Commit with id:'+r+" already exists, use different custom Id");throw p.hash={text:`merge ${e} ${r} ${n} ${i?.join(" ")}`,token:`merge ${e} ${r} ${n} ${i?.join(" ")}`,expected:[`merge ${e} ${r}_UNIQUE ${n} ${i?.join(" ")}`]},p}let f=l||"",d={id:r||`${_t.records.seq}-${zI()}`,message:`merged branch ${e} into ${_t.records.currBranch}`,seq:_t.records.seq++,parents:_t.records.head==null?[]:[_t.records.head.id,f],branch:_t.records.currBranch,type:Kr.MERGE,customType:n,customId:!!r,tags:i??[]};_t.records.head=d,_t.records.commits.set(d.id,d),_t.records.branches.set(_t.records.currBranch,d.id),Y.debug(_t.records.branches),Y.debug("in mergeBranch")},"merge"),y$e=o(function(t){let e=t.id,r=t.targetId,n=t.tags,i=t.parent;Y.debug("Entering cherryPick:",e,r,n);let a=Ep();if(e=Ze.sanitizeText(e,a),r=Ze.sanitizeText(r,a),n=n?.map(u=>Ze.sanitizeText(u,a)),i=Ze.sanitizeText(i,a),!e||!_t.records.commits.has(e)){let u=new Error('Incorrect usage of "cherryPick". Source commit id should exist and provided');throw u.hash={text:`cherryPick ${e} ${r}`,token:`cherryPick ${e} ${r}`,expected:["cherry-pick abc"]},u}let s=_t.records.commits.get(e);if(s===void 0||!s)throw new Error('Incorrect usage of "cherryPick". Source commit id should exist and provided');if(i&&!(Array.isArray(s.parents)&&s.parents.includes(i)))throw new Error("Invalid operation: The specified parent commit is not an immediate parent of the cherry-picked commit.");let l=s.branch;if(s.type===Kr.MERGE&&!i)throw new Error("Incorrect usage of cherry-pick: If the source commit is a merge commit, an immediate parent commit must be specified.");if(!r||!_t.records.commits.has(r)){if(l===_t.records.currBranch){let d=new Error('Incorrect usage of "cherryPick". Source commit is already on current branch');throw d.hash={text:`cherryPick ${e} ${r}`,token:`cherryPick ${e} ${r}`,expected:["cherry-pick abc"]},d}let u=_t.records.branches.get(_t.records.currBranch);if(u===void 0||!u){let d=new Error(`Incorrect usage of "cherry-pick". Current branch (${_t.records.currBranch})has no commits`);throw d.hash={text:`cherryPick ${e} ${r}`,token:`cherryPick ${e} ${r}`,expected:["cherry-pick abc"]},d}let h=_t.records.commits.get(u);if(h===void 0||!h){let d=new Error(`Incorrect usage of "cherry-pick". Current branch (${_t.records.currBranch})has no commits`);throw d.hash={text:`cherryPick ${e} ${r}`,token:`cherryPick ${e} ${r}`,expected:["cherry-pick abc"]},d}let f={id:_t.records.seq+"-"+zI(),message:`cherry-picked ${s?.message} into ${_t.records.currBranch}`,seq:_t.records.seq++,parents:_t.records.head==null?[]:[_t.records.head.id,s.id],branch:_t.records.currBranch,type:Kr.CHERRY_PICK,tags:n?n.filter(Boolean):[`cherry-pick:${s.id}${s.type===Kr.MERGE?`|parent:${i}`:""}`]};_t.records.head=f,_t.records.commits.set(f.id,f),_t.records.branches.set(_t.records.currBranch,f.id),Y.debug(_t.records.branches),Y.debug("in cherryPick")}},"cherryPick"),Kce=o(function(t){if(t=Ze.sanitizeText(t,Ep()),_t.records.branches.has(t)){_t.records.currBranch=t;let e=_t.records.branches.get(_t.records.currBranch);e===void 0||!e?_t.records.head=null:_t.records.head=_t.records.commits.get(e)??null}else{let e=new Error(`Trying to checkout branch which is not yet created. (Help try using "branch ${t}")`);throw e.hash={text:`checkout ${t}`,token:`checkout ${t}`,expected:[`branch ${t}`]},e}},"checkout");o(jce,"upsert");o(Qce,"prettyPrintCommitHistory");v$e=o(function(){Y.debug(_t.records.commits);let t=Zce()[0];Qce([t])},"prettyPrint"),x$e=o(function(){_t.reset(),Ar()},"clear"),b$e=o(function(){return[..._t.records.branchConfig.values()].map((e,r)=>e.order!==null&&e.order!==void 0?e:{...e,order:parseFloat(`0.${r}`)}).sort((e,r)=>(e.order??0)-(r.order??0)).map(({name:e})=>({name:e}))},"getBranchesAsObjArray"),w$e=o(function(){return _t.records.branches},"getBranches"),T$e=o(function(){return _t.records.commits},"getCommits"),Zce=o(function(){let t=[..._t.records.commits.values()];return t.forEach(function(e){Y.debug(e.id)}),t.sort((e,r)=>e.seq-r.seq),t},"getCommitsArray"),k$e=o(function(){return _t.records.currBranch},"getCurrentBranch"),E$e=o(function(){return _t.records.direction},"getDirection"),S$e=o(function(){return _t.records.head},"getHead"),o6={commitType:Kr,getConfig:Ep,setDirection:h$e,setOptions:f$e,getOptions:d$e,commit:p$e,branch:m$e,merge:g$e,cherryPick:y$e,checkout:Kce,prettyPrint:v$e,clear:x$e,getBranchesAsObjArray:b$e,getBranches:w$e,getCommits:T$e,getCommitsArray:Zce,getCurrentBranch:k$e,getDirection:E$e,getHead:S$e,setAccTitle:Lr,getAccTitle:Rr,getAccDescription:Mr,setAccDescription:Nr,setDiagramTitle:$r,getDiagramTitle:Ir}});var C$e,A$e,_$e,D$e,L$e,R$e,N$e,Jce,eue=N(()=>{"use strict";kp();vt();T1();GI();a6();C$e=o((t,e)=>{$c(t,e),t.dir&&e.setDirection(t.dir);for(let r of t.statements)A$e(r,e)},"populate"),A$e=o((t,e)=>{let n={Commit:o(i=>e.commit(_$e(i)),"Commit"),Branch:o(i=>e.branch(D$e(i)),"Branch"),Merge:o(i=>e.merge(L$e(i)),"Merge"),Checkout:o(i=>e.checkout(R$e(i)),"Checkout"),CherryPicking:o(i=>e.cherryPick(N$e(i)),"CherryPicking")}[t.$type];n?n(t):Y.error(`Unknown statement type: ${t.$type}`)},"parseStatement"),_$e=o(t=>({id:t.id,msg:t.message??"",type:t.type!==void 0?Kr[t.type]:Kr.NORMAL,tags:t.tags??void 0}),"parseCommit"),D$e=o(t=>({name:t.name,order:t.order??0}),"parseBranch"),L$e=o(t=>({branch:t.branch,id:t.id??"",type:t.type!==void 0?Kr[t.type]:void 0,tags:t.tags??void 0}),"parseMerge"),R$e=o(t=>t.branch,"parseCheckout"),N$e=o(t=>({id:t.id,targetId:"",tags:t.tags?.length===0?void 0:t.tags,parent:t.parent}),"parseCherryPicking"),Jce={parse:o(async t=>{let e=await uo("gitGraph",t);Y.debug(e),C$e(e,o6)},"parse")}});var M$e,Ko,gf,yf,zc,qu,Sp,Gs,Vs,l6,db,c6,mf,Br,I$e,rue,nue,O$e,P$e,B$e,F$e,$$e,z$e,G$e,V$e,U$e,H$e,W$e,q$e,tue,Y$e,pb,X$e,j$e,K$e,Q$e,Z$e,iue,aue=N(()=>{"use strict";dr();zt();vt();ir();a6();M$e=me(),Ko=M$e?.gitGraph,gf=10,yf=40,zc=4,qu=2,Sp=8,Gs=new Map,Vs=new Map,l6=30,db=new Map,c6=[],mf=0,Br="LR",I$e=o(()=>{Gs.clear(),Vs.clear(),db.clear(),mf=0,c6=[],Br="LR"},"clear"),rue=o(t=>{let e=document.createElementNS("http://www.w3.org/2000/svg","text");return(typeof t=="string"?t.split(/\\n|\n|<br\s*\/?>/gi):t).forEach(n=>{let i=document.createElementNS("http://www.w3.org/2000/svg","tspan");i.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),i.setAttribute("dy","1em"),i.setAttribute("x","0"),i.setAttribute("class","row"),i.textContent=n.trim(),e.appendChild(i)}),e},"drawText"),nue=o(t=>{let e,r,n;return Br==="BT"?(r=o((i,a)=>i<=a,"comparisonFunc"),n=1/0):(r=o((i,a)=>i>=a,"comparisonFunc"),n=0),t.forEach(i=>{let a=Br==="TB"||Br=="BT"?Vs.get(i)?.y:Vs.get(i)?.x;a!==void 0&&r(a,n)&&(e=i,n=a)}),e},"findClosestParent"),O$e=o(t=>{let e="",r=1/0;return t.forEach(n=>{let i=Vs.get(n).y;i<=r&&(e=n,r=i)}),e||void 0},"findClosestParentBT"),P$e=o((t,e,r)=>{let n=r,i=r,a=[];t.forEach(s=>{let l=e.get(s);if(!l)throw new Error(`Commit not found for key ${s}`);l.parents.length?(n=F$e(l),i=Math.max(n,i)):a.push(l),$$e(l,n)}),n=i,a.forEach(s=>{z$e(s,n,r)}),t.forEach(s=>{let l=e.get(s);if(l?.parents.length){let u=O$e(l.parents);n=Vs.get(u).y-yf,n<=i&&(i=n);let h=Gs.get(l.branch).pos,f=n-gf;Vs.set(l.id,{x:h,y:f})}})},"setParallelBTPos"),B$e=o(t=>{let e=nue(t.parents.filter(n=>n!==null));if(!e)throw new Error(`Closest parent not found for commit ${t.id}`);let r=Vs.get(e)?.y;if(r===void 0)throw new Error(`Closest parent position not found for commit ${t.id}`);return r},"findClosestParentPos"),F$e=o(t=>B$e(t)+yf,"calculateCommitPosition"),$$e=o((t,e)=>{let r=Gs.get(t.branch);if(!r)throw new Error(`Branch not found for commit ${t.id}`);let n=r.pos,i=e+gf;return Vs.set(t.id,{x:n,y:i}),{x:n,y:i}},"setCommitPosition"),z$e=o((t,e,r)=>{let n=Gs.get(t.branch);if(!n)throw new Error(`Branch not found for commit ${t.id}`);let i=e+r,a=n.pos;Vs.set(t.id,{x:a,y:i})},"setRootPosition"),G$e=o((t,e,r,n,i,a)=>{if(a===Kr.HIGHLIGHT)t.append("rect").attr("x",r.x-10).attr("y",r.y-10).attr("width",20).attr("height",20).attr("class",`commit ${e.id} commit-highlight${i%Sp} ${n}-outer`),t.append("rect").attr("x",r.x-6).attr("y",r.y-6).attr("width",12).attr("height",12).attr("class",`commit ${e.id} commit${i%Sp} ${n}-inner`);else if(a===Kr.CHERRY_PICK)t.append("circle").attr("cx",r.x).attr("cy",r.y).attr("r",10).attr("class",`commit ${e.id} ${n}`),t.append("circle").attr("cx",r.x-3).attr("cy",r.y+2).attr("r",2.75).attr("fill","#fff").attr("class",`commit ${e.id} ${n}`),t.append("circle").attr("cx",r.x+3).attr("cy",r.y+2).attr("r",2.75).attr("fill","#fff").attr("class",`commit ${e.id} ${n}`),t.append("line").attr("x1",r.x+3).attr("y1",r.y+1).attr("x2",r.x).attr("y2",r.y-5).attr("stroke","#fff").attr("class",`commit ${e.id} ${n}`),t.append("line").attr("x1",r.x-3).attr("y1",r.y+1).attr("x2",r.x).attr("y2",r.y-5).attr("stroke","#fff").attr("class",`commit ${e.id} ${n}`);else{let s=t.append("circle");if(s.attr("cx",r.x),s.attr("cy",r.y),s.attr("r",e.type===Kr.MERGE?9:10),s.attr("class",`commit ${e.id} commit${i%Sp}`),a===Kr.MERGE){let l=t.append("circle");l.attr("cx",r.x),l.attr("cy",r.y),l.attr("r",6),l.attr("class",`commit ${n} ${e.id} commit${i%Sp}`)}a===Kr.REVERSE&&t.append("path").attr("d",`M ${r.x-5},${r.y-5}L${r.x+5},${r.y+5}M${r.x-5},${r.y+5}L${r.x+5},${r.y-5}`).attr("class",`commit ${n} ${e.id} commit${i%Sp}`)}},"drawCommitBullet"),V$e=o((t,e,r,n)=>{if(e.type!==Kr.CHERRY_PICK&&(e.customId&&e.type===Kr.MERGE||e.type!==Kr.MERGE)&&Ko?.showCommitLabel){let i=t.append("g"),a=i.insert("rect").attr("class","commit-label-bkg"),s=i.append("text").attr("x",n).attr("y",r.y+25).attr("class","commit-label").text(e.id),l=s.node()?.getBBox();if(l&&(a.attr("x",r.posWithOffset-l.width/2-qu).attr("y",r.y+13.5).attr("width",l.width+2*qu).attr("height",l.height+2*qu),Br==="TB"||Br==="BT"?(a.attr("x",r.x-(l.width+4*zc+5)).attr("y",r.y-12),s.attr("x",r.x-(l.width+4*zc)).attr("y",r.y+l.height-12)):s.attr("x",r.posWithOffset-l.width/2),Ko.rotateCommitLabel))if(Br==="TB"||Br==="BT")s.attr("transform","rotate(-45, "+r.x+", "+r.y+")"),a.attr("transform","rotate(-45, "+r.x+", "+r.y+")");else{let u=-7.5-(l.width+10)/25*9.5,h=10+l.width/25*8.5;i.attr("transform","translate("+u+", "+h+") rotate(-45, "+n+", "+r.y+")")}}},"drawCommitLabel"),U$e=o((t,e,r,n)=>{if(e.tags.length>0){let i=0,a=0,s=0,l=[];for(let u of e.tags.reverse()){let h=t.insert("polygon"),f=t.append("circle"),d=t.append("text").attr("y",r.y-16-i).attr("class","tag-label").text(u),p=d.node()?.getBBox();if(!p)throw new Error("Tag bbox not found");a=Math.max(a,p.width),s=Math.max(s,p.height),d.attr("x",r.posWithOffset-p.width/2),l.push({tag:d,hole:f,rect:h,yOffset:i}),i+=20}for(let{tag:u,hole:h,rect:f,yOffset:d}of l){let p=s/2,m=r.y-19.2-d;if(f.attr("class","tag-label-bkg").attr("points",`
+      ${n-a/2-zc/2},${m+qu}  
+      ${n-a/2-zc/2},${m-qu}
+      ${r.posWithOffset-a/2-zc},${m-p-qu}
+      ${r.posWithOffset+a/2+zc},${m-p-qu}
+      ${r.posWithOffset+a/2+zc},${m+p+qu}
+      ${r.posWithOffset-a/2-zc},${m+p+qu}`),h.attr("cy",m).attr("cx",n-a/2+zc/2).attr("r",1.5).attr("class","tag-hole"),Br==="TB"||Br==="BT"){let g=n+d;f.attr("class","tag-label-bkg").attr("points",`
+        ${r.x},${g+2}
+        ${r.x},${g-2}
+        ${r.x+gf},${g-p-2}
+        ${r.x+gf+a+4},${g-p-2}
+        ${r.x+gf+a+4},${g+p+2}
+        ${r.x+gf},${g+p+2}`).attr("transform","translate(12,12) rotate(45, "+r.x+","+n+")"),h.attr("cx",r.x+zc/2).attr("cy",g).attr("transform","translate(12,12) rotate(45, "+r.x+","+n+")"),u.attr("x",r.x+5).attr("y",g+3).attr("transform","translate(14,14) rotate(45, "+r.x+","+n+")")}}}},"drawCommitTags"),H$e=o(t=>{switch(t.customType??t.type){case Kr.NORMAL:return"commit-normal";case Kr.REVERSE:return"commit-reverse";case Kr.HIGHLIGHT:return"commit-highlight";case Kr.MERGE:return"commit-merge";case Kr.CHERRY_PICK:return"commit-cherry-pick";default:return"commit-normal"}},"getCommitClassType"),W$e=o((t,e,r,n)=>{let i={x:0,y:0};if(t.parents.length>0){let a=nue(t.parents);if(a){let s=n.get(a)??i;return e==="TB"?s.y+yf:e==="BT"?(n.get(t.id)??i).y-yf:s.x+yf}}else return e==="TB"?l6:e==="BT"?(n.get(t.id)??i).y-yf:0;return 0},"calculatePosition"),q$e=o((t,e,r)=>{let n=Br==="BT"&&r?e:e+gf,i=Br==="TB"||Br==="BT"?n:Gs.get(t.branch)?.pos,a=Br==="TB"||Br==="BT"?Gs.get(t.branch)?.pos:n;if(a===void 0||i===void 0)throw new Error(`Position were undefined for commit ${t.id}`);return{x:a,y:i,posWithOffset:n}},"getCommitPosition"),tue=o((t,e,r)=>{if(!Ko)throw new Error("GitGraph config not found");let n=t.append("g").attr("class","commit-bullets"),i=t.append("g").attr("class","commit-labels"),a=Br==="TB"||Br==="BT"?l6:0,s=[...e.keys()],l=Ko?.parallelCommits??!1,u=o((f,d)=>{let p=e.get(f)?.seq,m=e.get(d)?.seq;return p!==void 0&&m!==void 0?p-m:0},"sortKeys"),h=s.sort(u);Br==="BT"&&(l&&P$e(h,e,a),h=h.reverse()),h.forEach(f=>{let d=e.get(f);if(!d)throw new Error(`Commit not found for key ${f}`);l&&(a=W$e(d,Br,a,Vs));let p=q$e(d,a,l);if(r){let m=H$e(d),g=d.customType??d.type,y=Gs.get(d.branch)?.index??0;G$e(n,d,p,m,y,g),V$e(i,d,p,a),U$e(i,d,p,a)}Br==="TB"||Br==="BT"?Vs.set(d.id,{x:p.x,y:p.posWithOffset}):Vs.set(d.id,{x:p.posWithOffset,y:p.y}),a=Br==="BT"&&l?a+yf:a+yf+gf,a>mf&&(mf=a)})},"drawCommits"),Y$e=o((t,e,r,n,i)=>{let s=(Br==="TB"||Br==="BT"?r.x<n.x:r.y<n.y)?e.branch:t.branch,l=o(h=>h.branch===s,"isOnBranchToGetCurve"),u=o(h=>h.seq>t.seq&&h.seq<e.seq,"isBetweenCommits");return[...i.values()].some(h=>u(h)&&l(h))},"shouldRerouteArrow"),pb=o((t,e,r=0)=>{let n=t+Math.abs(t-e)/2;if(r>5)return n;if(c6.every(s=>Math.abs(s-n)>=10))return c6.push(n),n;let a=Math.abs(t-e);return pb(t,e-a/5,r+1)},"findLane"),X$e=o((t,e,r,n)=>{let i=Vs.get(e.id),a=Vs.get(r.id);if(i===void 0||a===void 0)throw new Error(`Commit positions not found for commits ${e.id} and ${r.id}`);let s=Y$e(e,r,i,a,n),l="",u="",h=0,f=0,d=Gs.get(r.branch)?.index;r.type===Kr.MERGE&&e.id!==r.parents[0]&&(d=Gs.get(e.branch)?.index);let p;if(s){l="A 10 10, 0, 0, 0,",u="A 10 10, 0, 0, 1,",h=10,f=10;let m=i.y<a.y?pb(i.y,a.y):pb(a.y,i.y),g=i.x<a.x?pb(i.x,a.x):pb(a.x,i.x);Br==="TB"?i.x<a.x?p=`M ${i.x} ${i.y} L ${g-h} ${i.y} ${u} ${g} ${i.y+f} L ${g} ${a.y-h} ${l} ${g+f} ${a.y} L ${a.x} ${a.y}`:(d=Gs.get(e.branch)?.index,p=`M ${i.x} ${i.y} L ${g+h} ${i.y} ${l} ${g} ${i.y+f} L ${g} ${a.y-h} ${u} ${g-f} ${a.y} L ${a.x} ${a.y}`):Br==="BT"?i.x<a.x?p=`M ${i.x} ${i.y} L ${g-h} ${i.y} ${l} ${g} ${i.y-f} L ${g} ${a.y+h} ${u} ${g+f} ${a.y} L ${a.x} ${a.y}`:(d=Gs.get(e.branch)?.index,p=`M ${i.x} ${i.y} L ${g+h} ${i.y} ${u} ${g} ${i.y-f} L ${g} ${a.y+h} ${l} ${g-f} ${a.y} L ${a.x} ${a.y}`):i.y<a.y?p=`M ${i.x} ${i.y} L ${i.x} ${m-h} ${l} ${i.x+f} ${m} L ${a.x-h} ${m} ${u} ${a.x} ${m+f} L ${a.x} ${a.y}`:(d=Gs.get(e.branch)?.index,p=`M ${i.x} ${i.y} L ${i.x} ${m+h} ${u} ${i.x+f} ${m} L ${a.x-h} ${m} ${l} ${a.x} ${m-f} L ${a.x} ${a.y}`)}else l="A 20 20, 0, 0, 0,",u="A 20 20, 0, 0, 1,",h=20,f=20,Br==="TB"?(i.x<a.x&&(r.type===Kr.MERGE&&e.id!==r.parents[0]?p=`M ${i.x} ${i.y} L ${i.x} ${a.y-h} ${l} ${i.x+f} ${a.y} L ${a.x} ${a.y}`:p=`M ${i.x} ${i.y} L ${a.x-h} ${i.y} ${u} ${a.x} ${i.y+f} L ${a.x} ${a.y}`),i.x>a.x&&(l="A 20 20, 0, 0, 0,",u="A 20 20, 0, 0, 1,",h=20,f=20,r.type===Kr.MERGE&&e.id!==r.parents[0]?p=`M ${i.x} ${i.y} L ${i.x} ${a.y-h} ${u} ${i.x-f} ${a.y} L ${a.x} ${a.y}`:p=`M ${i.x} ${i.y} L ${a.x+h} ${i.y} ${l} ${a.x} ${i.y+f} L ${a.x} ${a.y}`),i.x===a.x&&(p=`M ${i.x} ${i.y} L ${a.x} ${a.y}`)):Br==="BT"?(i.x<a.x&&(r.type===Kr.MERGE&&e.id!==r.parents[0]?p=`M ${i.x} ${i.y} L ${i.x} ${a.y+h} ${u} ${i.x+f} ${a.y} L ${a.x} ${a.y}`:p=`M ${i.x} ${i.y} L ${a.x-h} ${i.y} ${l} ${a.x} ${i.y-f} L ${a.x} ${a.y}`),i.x>a.x&&(l="A 20 20, 0, 0, 0,",u="A 20 20, 0, 0, 1,",h=20,f=20,r.type===Kr.MERGE&&e.id!==r.parents[0]?p=`M ${i.x} ${i.y} L ${i.x} ${a.y+h} ${l} ${i.x-f} ${a.y} L ${a.x} ${a.y}`:p=`M ${i.x} ${i.y} L ${a.x-h} ${i.y} ${l} ${a.x} ${i.y-f} L ${a.x} ${a.y}`),i.x===a.x&&(p=`M ${i.x} ${i.y} L ${a.x} ${a.y}`)):(i.y<a.y&&(r.type===Kr.MERGE&&e.id!==r.parents[0]?p=`M ${i.x} ${i.y} L ${a.x-h} ${i.y} ${u} ${a.x} ${i.y+f} L ${a.x} ${a.y}`:p=`M ${i.x} ${i.y} L ${i.x} ${a.y-h} ${l} ${i.x+f} ${a.y} L ${a.x} ${a.y}`),i.y>a.y&&(r.type===Kr.MERGE&&e.id!==r.parents[0]?p=`M ${i.x} ${i.y} L ${a.x-h} ${i.y} ${l} ${a.x} ${i.y-f} L ${a.x} ${a.y}`:p=`M ${i.x} ${i.y} L ${i.x} ${a.y+h} ${u} ${i.x+f} ${a.y} L ${a.x} ${a.y}`),i.y===a.y&&(p=`M ${i.x} ${i.y} L ${a.x} ${a.y}`));if(p===void 0)throw new Error("Line definition not found");t.append("path").attr("d",p).attr("class","arrow arrow"+d%Sp)},"drawArrow"),j$e=o((t,e)=>{let r=t.append("g").attr("class","commit-arrows");[...e.keys()].forEach(n=>{let i=e.get(n);i.parents&&i.parents.length>0&&i.parents.forEach(a=>{X$e(r,e.get(a),i,e)})})},"drawArrows"),K$e=o((t,e)=>{let r=t.append("g");e.forEach((n,i)=>{let a=i%Sp,s=Gs.get(n.name)?.pos;if(s===void 0)throw new Error(`Position not found for branch ${n.name}`);let l=r.append("line");l.attr("x1",0),l.attr("y1",s),l.attr("x2",mf),l.attr("y2",s),l.attr("class","branch branch"+a),Br==="TB"?(l.attr("y1",l6),l.attr("x1",s),l.attr("y2",mf),l.attr("x2",s)):Br==="BT"&&(l.attr("y1",mf),l.attr("x1",s),l.attr("y2",l6),l.attr("x2",s)),c6.push(s);let u=n.name,h=rue(u),f=r.insert("rect"),p=r.insert("g").attr("class","branchLabel").insert("g").attr("class","label branch-label"+a);p.node().appendChild(h);let m=h.getBBox();f.attr("class","branchLabelBkg label"+a).attr("rx",4).attr("ry",4).attr("x",-m.width-4-(Ko?.rotateCommitLabel===!0?30:0)).attr("y",-m.height/2+8).attr("width",m.width+18).attr("height",m.height+4),p.attr("transform","translate("+(-m.width-14-(Ko?.rotateCommitLabel===!0?30:0))+", "+(s-m.height/2-1)+")"),Br==="TB"?(f.attr("x",s-m.width/2-10).attr("y",0),p.attr("transform","translate("+(s-m.width/2-5)+", 0)")):Br==="BT"?(f.attr("x",s-m.width/2-10).attr("y",mf),p.attr("transform","translate("+(s-m.width/2-5)+", "+mf+")")):f.attr("transform","translate(-19, "+(s-m.height/2)+")")})},"drawBranches"),Q$e=o(function(t,e,r,n,i){return Gs.set(t,{pos:e,index:r}),e+=50+(i?40:0)+(Br==="TB"||Br==="BT"?n.width/2:0),e},"setBranchPosition"),Z$e=o(function(t,e,r,n){if(I$e(),Y.debug("in gitgraph renderer",t+`
+`,"id:",e,r),!Ko)throw new Error("GitGraph config not found");let i=Ko.rotateCommitLabel??!1,a=n.db;db=a.getCommits();let s=a.getBranchesAsObjArray();Br=a.getDirection();let l=Ge(`[id="${e}"]`),u=0;s.forEach((h,f)=>{let d=rue(h.name),p=l.append("g"),m=p.insert("g").attr("class","branchLabel"),g=m.insert("g").attr("class","label branch-label");g.node()?.appendChild(d);let y=d.getBBox();u=Q$e(h.name,u,f,y,i),g.remove(),m.remove(),p.remove()}),tue(l,db,!1),Ko.showBranches&&K$e(l,s),j$e(l,db),tue(l,db,!0),Gt.insertTitle(l,"gitTitleText",Ko.titleTopMargin??0,a.getDiagramTitle()),oA(void 0,l,Ko.diagramPadding,Ko.useMaxWidth)},"draw"),iue={draw:Z$e}});var J$e,sue,oue=N(()=>{"use strict";J$e=o(t=>`
+  .commit-id,
+  .commit-msg,
+  .branch-label {
+    fill: lightgrey;
+    color: lightgrey;
+    font-family: 'trebuchet ms', verdana, arial, sans-serif;
+    font-family: var(--mermaid-font-family);
+  }
+  ${[0,1,2,3,4,5,6,7].map(e=>`
+        .branch-label${e} { fill: ${t["gitBranchLabel"+e]}; }
+        .commit${e} { stroke: ${t["git"+e]}; fill: ${t["git"+e]}; }
+        .commit-highlight${e} { stroke: ${t["gitInv"+e]}; fill: ${t["gitInv"+e]}; }
+        .label${e}  { fill: ${t["git"+e]}; }
+        .arrow${e} { stroke: ${t["git"+e]}; }
+        `).join(`
+`)}
+
+  .branch {
+    stroke-width: 1;
+    stroke: ${t.lineColor};
+    stroke-dasharray: 2;
+  }
+  .commit-label { font-size: ${t.commitLabelFontSize}; fill: ${t.commitLabelColor};}
+  .commit-label-bkg { font-size: ${t.commitLabelFontSize}; fill: ${t.commitLabelBackground}; opacity: 0.5; }
+  .tag-label { font-size: ${t.tagLabelFontSize}; fill: ${t.tagLabelColor};}
+  .tag-label-bkg { fill: ${t.tagLabelBackground}; stroke: ${t.tagLabelBorder}; }
+  .tag-hole { fill: ${t.textColor}; }
+
+  .commit-merge {
+    stroke: ${t.primaryColor};
+    fill: ${t.primaryColor};
+  }
+  .commit-reverse {
+    stroke: ${t.primaryColor};
+    fill: ${t.primaryColor};
+    stroke-width: 3;
+  }
+  .commit-highlight-outer {
+  }
+  .commit-highlight-inner {
+    stroke: ${t.primaryColor};
+    fill: ${t.primaryColor};
+  }
+
+  .arrow { stroke-width: 8; stroke-linecap: round; fill: none}
+  .gitTitleText {
+    text-anchor: middle;
+    font-size: 18px;
+    fill: ${t.textColor};
+  }
+`,"getStyles"),sue=J$e});var lue={};hr(lue,{diagram:()=>eze});var eze,cue=N(()=>{"use strict";eue();GI();aue();oue();eze={parser:Jce,db:o6,renderer:iue,styles:sue}});var VI,fue,due=N(()=>{"use strict";VI=function(){var t=o(function(L,R,O,M){for(O=O||{},M=L.length;M--;O[L[M]]=R);return O},"o"),e=[6,8,10,12,13,14,15,16,17,18,20,21,22,23,24,25,26,27,28,29,30,31,33,35,36,38,40],r=[1,26],n=[1,27],i=[1,28],a=[1,29],s=[1,30],l=[1,31],u=[1,32],h=[1,33],f=[1,34],d=[1,9],p=[1,10],m=[1,11],g=[1,12],y=[1,13],v=[1,14],x=[1,15],b=[1,16],w=[1,19],C=[1,20],T=[1,21],E=[1,22],A=[1,23],S=[1,25],_=[1,35],I={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,gantt:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NL:10,weekday:11,weekday_monday:12,weekday_tuesday:13,weekday_wednesday:14,weekday_thursday:15,weekday_friday:16,weekday_saturday:17,weekday_sunday:18,weekend:19,weekend_friday:20,weekend_saturday:21,dateFormat:22,inclusiveEndDates:23,topAxis:24,axisFormat:25,tickInterval:26,excludes:27,includes:28,todayMarker:29,title:30,acc_title:31,acc_title_value:32,acc_descr:33,acc_descr_value:34,acc_descr_multiline_value:35,section:36,clickStatement:37,taskTxt:38,taskData:39,click:40,callbackname:41,callbackargs:42,href:43,clickStatementDebug:44,$accept:0,$end:1},terminals_:{2:"error",4:"gantt",6:"EOF",8:"SPACE",10:"NL",12:"weekday_monday",13:"weekday_tuesday",14:"weekday_wednesday",15:"weekday_thursday",16:"weekday_friday",17:"weekday_saturday",18:"weekday_sunday",20:"weekend_friday",21:"weekend_saturday",22:"dateFormat",23:"inclusiveEndDates",24:"topAxis",25:"axisFormat",26:"tickInterval",27:"excludes",28:"includes",29:"todayMarker",30:"title",31:"acc_title",32:"acc_title_value",33:"acc_descr",34:"acc_descr_value",35:"acc_descr_multiline_value",36:"section",38:"taskTxt",39:"taskData",40:"click",41:"callbackname",42:"callbackargs",43:"href"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[19,1],[19,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,1],[9,2],[37,2],[37,3],[37,3],[37,4],[37,3],[37,4],[37,2],[44,2],[44,3],[44,3],[44,4],[44,3],[44,4],[44,2]],performAction:o(function(R,O,M,B,F,P,z){var $=P.length-1;switch(F){case 1:return P[$-1];case 2:this.$=[];break;case 3:P[$-1].push(P[$]),this.$=P[$-1];break;case 4:case 5:this.$=P[$];break;case 6:case 7:this.$=[];break;case 8:B.setWeekday("monday");break;case 9:B.setWeekday("tuesday");break;case 10:B.setWeekday("wednesday");break;case 11:B.setWeekday("thursday");break;case 12:B.setWeekday("friday");break;case 13:B.setWeekday("saturday");break;case 14:B.setWeekday("sunday");break;case 15:B.setWeekend("friday");break;case 16:B.setWeekend("saturday");break;case 17:B.setDateFormat(P[$].substr(11)),this.$=P[$].substr(11);break;case 18:B.enableInclusiveEndDates(),this.$=P[$].substr(18);break;case 19:B.TopAxis(),this.$=P[$].substr(8);break;case 20:B.setAxisFormat(P[$].substr(11)),this.$=P[$].substr(11);break;case 21:B.setTickInterval(P[$].substr(13)),this.$=P[$].substr(13);break;case 22:B.setExcludes(P[$].substr(9)),this.$=P[$].substr(9);break;case 23:B.setIncludes(P[$].substr(9)),this.$=P[$].substr(9);break;case 24:B.setTodayMarker(P[$].substr(12)),this.$=P[$].substr(12);break;case 27:B.setDiagramTitle(P[$].substr(6)),this.$=P[$].substr(6);break;case 28:this.$=P[$].trim(),B.setAccTitle(this.$);break;case 29:case 30:this.$=P[$].trim(),B.setAccDescription(this.$);break;case 31:B.addSection(P[$].substr(8)),this.$=P[$].substr(8);break;case 33:B.addTask(P[$-1],P[$]),this.$="task";break;case 34:this.$=P[$-1],B.setClickEvent(P[$-1],P[$],null);break;case 35:this.$=P[$-2],B.setClickEvent(P[$-2],P[$-1],P[$]);break;case 36:this.$=P[$-2],B.setClickEvent(P[$-2],P[$-1],null),B.setLink(P[$-2],P[$]);break;case 37:this.$=P[$-3],B.setClickEvent(P[$-3],P[$-2],P[$-1]),B.setLink(P[$-3],P[$]);break;case 38:this.$=P[$-2],B.setClickEvent(P[$-2],P[$],null),B.setLink(P[$-2],P[$-1]);break;case 39:this.$=P[$-3],B.setClickEvent(P[$-3],P[$-1],P[$]),B.setLink(P[$-3],P[$-2]);break;case 40:this.$=P[$-1],B.setLink(P[$-1],P[$]);break;case 41:case 47:this.$=P[$-1]+" "+P[$];break;case 42:case 43:case 45:this.$=P[$-2]+" "+P[$-1]+" "+P[$];break;case 44:case 46:this.$=P[$-3]+" "+P[$-2]+" "+P[$-1]+" "+P[$];break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:17,12:r,13:n,14:i,15:a,16:s,17:l,18:u,19:18,20:h,21:f,22:d,23:p,24:m,25:g,26:y,27:v,28:x,29:b,30:w,31:C,33:T,35:E,36:A,37:24,38:S,40:_},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:36,11:17,12:r,13:n,14:i,15:a,16:s,17:l,18:u,19:18,20:h,21:f,22:d,23:p,24:m,25:g,26:y,27:v,28:x,29:b,30:w,31:C,33:T,35:E,36:A,37:24,38:S,40:_},t(e,[2,5]),t(e,[2,6]),t(e,[2,17]),t(e,[2,18]),t(e,[2,19]),t(e,[2,20]),t(e,[2,21]),t(e,[2,22]),t(e,[2,23]),t(e,[2,24]),t(e,[2,25]),t(e,[2,26]),t(e,[2,27]),{32:[1,37]},{34:[1,38]},t(e,[2,30]),t(e,[2,31]),t(e,[2,32]),{39:[1,39]},t(e,[2,8]),t(e,[2,9]),t(e,[2,10]),t(e,[2,11]),t(e,[2,12]),t(e,[2,13]),t(e,[2,14]),t(e,[2,15]),t(e,[2,16]),{41:[1,40],43:[1,41]},t(e,[2,4]),t(e,[2,28]),t(e,[2,29]),t(e,[2,33]),t(e,[2,34],{42:[1,42],43:[1,43]}),t(e,[2,40],{41:[1,44]}),t(e,[2,35],{43:[1,45]}),t(e,[2,36]),t(e,[2,38],{42:[1,46]}),t(e,[2,37]),t(e,[2,39])],defaultActions:{},parseError:o(function(R,O){if(O.recoverable)this.trace(R);else{var M=new Error(R);throw M.hash=O,M}},"parseError"),parse:o(function(R){var O=this,M=[0],B=[],F=[null],P=[],z=this.table,$="",H=0,Q=0,j=0,ie=2,ne=1,le=P.slice.call(arguments,1),he=Object.create(this.lexer),K={yy:{}};for(var X in this.yy)Object.prototype.hasOwnProperty.call(this.yy,X)&&(K.yy[X]=this.yy[X]);he.setInput(R,K.yy),K.yy.lexer=he,K.yy.parser=this,typeof he.yylloc>"u"&&(he.yylloc={});var te=he.yylloc;P.push(te);var J=he.options&&he.options.ranges;typeof K.yy.parseError=="function"?this.parseError=K.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function se(W){M.length=M.length-2*W,F.length=F.length-W,P.length=P.length-W}o(se,"popStack");function ue(){var W;return W=B.pop()||he.lex()||ne,typeof W!="number"&&(W instanceof Array&&(B=W,W=B.pop()),W=O.symbols_[W]||W),W}o(ue,"lex");for(var Z,Se,ce,ae,Oe,ge,ze={},He,$e,Re,Ie;;){if(ce=M[M.length-1],this.defaultActions[ce]?ae=this.defaultActions[ce]:((Z===null||typeof Z>"u")&&(Z=ue()),ae=z[ce]&&z[ce][Z]),typeof ae>"u"||!ae.length||!ae[0]){var be="";Ie=[];for(He in z[ce])this.terminals_[He]&&He>ie&&Ie.push("'"+this.terminals_[He]+"'");he.showPosition?be="Parse error on line "+(H+1)+`:
+`+he.showPosition()+`
+Expecting `+Ie.join(", ")+", got '"+(this.terminals_[Z]||Z)+"'":be="Parse error on line "+(H+1)+": Unexpected "+(Z==ne?"end of input":"'"+(this.terminals_[Z]||Z)+"'"),this.parseError(be,{text:he.match,token:this.terminals_[Z]||Z,line:he.yylineno,loc:te,expected:Ie})}if(ae[0]instanceof Array&&ae.length>1)throw new Error("Parse Error: multiple actions possible at state: "+ce+", token: "+Z);switch(ae[0]){case 1:M.push(Z),F.push(he.yytext),P.push(he.yylloc),M.push(ae[1]),Z=null,Se?(Z=Se,Se=null):(Q=he.yyleng,$=he.yytext,H=he.yylineno,te=he.yylloc,j>0&&j--);break;case 2:if($e=this.productions_[ae[1]][1],ze.$=F[F.length-$e],ze._$={first_line:P[P.length-($e||1)].first_line,last_line:P[P.length-1].last_line,first_column:P[P.length-($e||1)].first_column,last_column:P[P.length-1].last_column},J&&(ze._$.range=[P[P.length-($e||1)].range[0],P[P.length-1].range[1]]),ge=this.performAction.apply(ze,[$,Q,H,K.yy,ae[1],F,P].concat(le)),typeof ge<"u")return ge;$e&&(M=M.slice(0,-1*$e*2),F=F.slice(0,-1*$e),P=P.slice(0,-1*$e)),M.push(this.productions_[ae[1]][0]),F.push(ze.$),P.push(ze._$),Re=z[M[M.length-2]][M[M.length-1]],M.push(Re);break;case 3:return!0}}return!0},"parse")},D=function(){var L={EOF:1,parseError:o(function(O,M){if(this.yy.parser)this.yy.parser.parseError(O,M);else throw new Error(O)},"parseError"),setInput:o(function(R,O){return this.yy=O||this.yy||{},this._input=R,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var R=this._input[0];this.yytext+=R,this.yyleng++,this.offset++,this.match+=R,this.matched+=R;var O=R.match(/(?:\r\n?|\n).*/g);return O?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),R},"input"),unput:o(function(R){var O=R.length,M=R.split(/(?:\r\n?|\n)/g);this._input=R+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-O),this.offset-=O;var B=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),M.length-1&&(this.yylineno-=M.length-1);var F=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:M?(M.length===B.length?this.yylloc.first_column:0)+B[B.length-M.length].length-M[0].length:this.yylloc.first_column-O},this.options.ranges&&(this.yylloc.range=[F[0],F[0]+this.yyleng-O]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
+`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(R){this.unput(this.match.slice(R))},"less"),pastInput:o(function(){var R=this.matched.substr(0,this.matched.length-this.match.length);return(R.length>20?"...":"")+R.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var R=this.match;return R.length<20&&(R+=this._input.substr(0,20-R.length)),(R.substr(0,20)+(R.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var R=this.pastInput(),O=new Array(R.length+1).join("-");return R+this.upcomingInput()+`
+`+O+"^"},"showPosition"),test_match:o(function(R,O){var M,B,F;if(this.options.backtrack_lexer&&(F={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(F.yylloc.range=this.yylloc.range.slice(0))),B=R[0].match(/(?:\r\n?|\n).*/g),B&&(this.yylineno+=B.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:B?B[B.length-1].length-B[B.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+R[0].length},this.yytext+=R[0],this.match+=R[0],this.matches=R,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(R[0].length),this.matched+=R[0],M=this.performAction.call(this,this.yy,this,O,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),M)return M;if(this._backtrack){for(var P in F)this[P]=F[P];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var R,O,M,B;this._more||(this.yytext="",this.match="");for(var F=this._currentRules(),P=0;P<F.length;P++)if(M=this._input.match(this.rules[F[P]]),M&&(!O||M[0].length>O[0].length)){if(O=M,B=P,this.options.backtrack_lexer){if(R=this.test_match(M,F[P]),R!==!1)return R;if(this._backtrack){O=!1;continue}else return!1}else if(!this.options.flex)break}return O?(R=this.test_match(O,F[B]),R!==!1?R:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text.
+`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var O=this.next();return O||this.lex()},"lex"),begin:o(function(O){this.conditionStack.push(O)},"begin"),popState:o(function(){var O=this.conditionStack.length-1;return O>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(O){return O=this.conditionStack.length-1-Math.abs(O||0),O>=0?this.conditionStack[O]:"INITIAL"},"topState"),pushState:o(function(O){this.begin(O)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(O,M,B,F){var P=F;switch(B){case 0:return this.begin("open_directive"),"open_directive";break;case 1:return this.begin("acc_title"),31;break;case 2:return this.popState(),"acc_title_value";break;case 3:return this.begin("acc_descr"),33;break;case 4:return this.popState(),"acc_descr_value";break;case 5:this.begin("acc_descr_multiline");break;case 6:this.popState();break;case 7:return"acc_descr_multiline_value";case 8:break;case 9:break;case 10:break;case 11:return 10;case 12:break;case 13:break;case 14:this.begin("href");break;case 15:this.popState();break;case 16:return 43;case 17:this.begin("callbackname");break;case 18:this.popState();break;case 19:this.popState(),this.begin("callbackargs");break;case 20:return 41;case 21:this.popState();break;case 22:return 42;case 23:this.begin("click");break;case 24:this.popState();break;case 25:return 40;case 26:return 4;case 27:return 22;case 28:return 23;case 29:return 24;case 30:return 25;case 31:return 26;case 32:return 28;case 33:return 27;case 34:return 29;case 35:return 12;case 36:return 13;case 37:return 14;case 38:return 15;case 39:return 16;case 40:return 17;case 41:return 18;case 42:return 20;case 43:return 21;case 44:return"date";case 45:return 30;case 46:return"accDescription";case 47:return 36;case 48:return 38;case 49:return 39;case 50:return":";case 51:return 6;case 52:return"INVALID"}},"anonymous"),rules:[/^(?:%%\{)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:%%(?!\{)*[^\n]*)/i,/^(?:[^\}]%%*[^\n]*)/i,/^(?:%%*[^\n]*[\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:%[^\n]*)/i,/^(?:href[\s]+["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:call[\s]+)/i,/^(?:\([\s]*\))/i,/^(?:\()/i,/^(?:[^(]*)/i,/^(?:\))/i,/^(?:[^)]*)/i,/^(?:click[\s]+)/i,/^(?:[\s\n])/i,/^(?:[^\s\n]*)/i,/^(?:gantt\b)/i,/^(?:dateFormat\s[^#\n;]+)/i,/^(?:inclusiveEndDates\b)/i,/^(?:topAxis\b)/i,/^(?:axisFormat\s[^#\n;]+)/i,/^(?:tickInterval\s[^#\n;]+)/i,/^(?:includes\s[^#\n;]+)/i,/^(?:excludes\s[^#\n;]+)/i,/^(?:todayMarker\s[^\n;]+)/i,/^(?:weekday\s+monday\b)/i,/^(?:weekday\s+tuesday\b)/i,/^(?:weekday\s+wednesday\b)/i,/^(?:weekday\s+thursday\b)/i,/^(?:weekday\s+friday\b)/i,/^(?:weekday\s+saturday\b)/i,/^(?:weekday\s+sunday\b)/i,/^(?:weekend\s+friday\b)/i,/^(?:weekend\s+saturday\b)/i,/^(?:\d\d\d\d-\d\d-\d\d\b)/i,/^(?:title\s[^\n]+)/i,/^(?:accDescription\s[^#\n;]+)/i,/^(?:section\s[^\n]+)/i,/^(?:[^:\n]+)/i,/^(?::[^#\n;]+)/i,/^(?::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[6,7],inclusive:!1},acc_descr:{rules:[4],inclusive:!1},acc_title:{rules:[2],inclusive:!1},callbackargs:{rules:[21,22],inclusive:!1},callbackname:{rules:[18,19,20],inclusive:!1},href:{rules:[15,16],inclusive:!1},click:{rules:[24,25],inclusive:!1},INITIAL:{rules:[0,1,3,5,8,9,10,11,12,13,14,17,23,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52],inclusive:!0}}};return L}();I.lexer=D;function k(){this.yy={}}return o(k,"Parser"),k.prototype=I,I.Parser=k,new k}();VI.parser=VI;fue=VI});var pue=Mi((UI,HI)=>{"use strict";(function(t,e){typeof UI=="object"&&typeof HI<"u"?HI.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs_plugin_isoWeek=e()})(UI,function(){"use strict";var t="day";return function(e,r,n){var i=o(function(l){return l.add(4-l.isoWeekday(),t)},"a"),a=r.prototype;a.isoWeekYear=function(){return i(this).year()},a.isoWeek=function(l){if(!this.$utils().u(l))return this.add(7*(l-this.isoWeek()),t);var u,h,f,d,p=i(this),m=(u=this.isoWeekYear(),h=this.$u,f=(h?n.utc:n)().year(u).startOf("year"),d=4-f.isoWeekday(),f.isoWeekday()>4&&(d+=7),f.add(d,t));return p.diff(m,"week")+1},a.isoWeekday=function(l){return this.$utils().u(l)?this.day()||7:this.day(this.day()%7?l:l-7)};var s=a.startOf;a.startOf=function(l,u){var h=this.$utils(),f=!!h.u(u)||u;return h.p(l)==="isoweek"?f?this.date(this.date()-(this.isoWeekday()-1)).startOf("day"):this.date(this.date()-1-(this.isoWeekday()-1)+7).endOf("day"):s.bind(this)(l,u)}}})});var mue=Mi((WI,qI)=>{"use strict";(function(t,e){typeof WI=="object"&&typeof qI<"u"?qI.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs_plugin_customParseFormat=e()})(WI,function(){"use strict";var t={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},e=/(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|Q|YYYY|YY?|ww?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,r=/\d/,n=/\d\d/,i=/\d\d?/,a=/\d*[^-_:/,()\s\d]+/,s={},l=o(function(g){return(g=+g)+(g>68?1900:2e3)},"a"),u=o(function(g){return function(y){this[g]=+y}},"f"),h=[/[+-]\d\d:?(\d\d)?|Z/,function(g){(this.zone||(this.zone={})).offset=function(y){if(!y||y==="Z")return 0;var v=y.match(/([+-]|\d\d)/g),x=60*v[1]+(+v[2]||0);return x===0?0:v[0]==="+"?-x:x}(g)}],f=o(function(g){var y=s[g];return y&&(y.indexOf?y:y.s.concat(y.f))},"u"),d=o(function(g,y){var v,x=s.meridiem;if(x){for(var b=1;b<=24;b+=1)if(g.indexOf(x(b,0,y))>-1){v=b>12;break}}else v=g===(y?"pm":"PM");return v},"d"),p={A:[a,function(g){this.afternoon=d(g,!1)}],a:[a,function(g){this.afternoon=d(g,!0)}],Q:[r,function(g){this.month=3*(g-1)+1}],S:[r,function(g){this.milliseconds=100*+g}],SS:[n,function(g){this.milliseconds=10*+g}],SSS:[/\d{3}/,function(g){this.milliseconds=+g}],s:[i,u("seconds")],ss:[i,u("seconds")],m:[i,u("minutes")],mm:[i,u("minutes")],H:[i,u("hours")],h:[i,u("hours")],HH:[i,u("hours")],hh:[i,u("hours")],D:[i,u("day")],DD:[n,u("day")],Do:[a,function(g){var y=s.ordinal,v=g.match(/\d+/);if(this.day=v[0],y)for(var x=1;x<=31;x+=1)y(x).replace(/\[|\]/g,"")===g&&(this.day=x)}],w:[i,u("week")],ww:[n,u("week")],M:[i,u("month")],MM:[n,u("month")],MMM:[a,function(g){var y=f("months"),v=(f("monthsShort")||y.map(function(x){return x.slice(0,3)})).indexOf(g)+1;if(v<1)throw new Error;this.month=v%12||v}],MMMM:[a,function(g){var y=f("months").indexOf(g)+1;if(y<1)throw new Error;this.month=y%12||y}],Y:[/[+-]?\d+/,u("year")],YY:[n,function(g){this.year=l(g)}],YYYY:[/\d{4}/,u("year")],Z:h,ZZ:h};function m(g){var y,v;y=g,v=s&&s.formats;for(var x=(g=y.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,function(S,_,I){var D=I&&I.toUpperCase();return _||v[I]||t[I]||v[D].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,function(k,L,R){return L||R.slice(1)})})).match(e),b=x.length,w=0;w<b;w+=1){var C=x[w],T=p[C],E=T&&T[0],A=T&&T[1];x[w]=A?{regex:E,parser:A}:C.replace(/^\[|\]$/g,"")}return function(S){for(var _={},I=0,D=0;I<b;I+=1){var k=x[I];if(typeof k=="string")D+=k.length;else{var L=k.regex,R=k.parser,O=S.slice(D),M=L.exec(O)[0];R.call(_,M),S=S.replace(M,"")}}return function(B){var F=B.afternoon;if(F!==void 0){var P=B.hours;F?P<12&&(B.hours+=12):P===12&&(B.hours=0),delete B.afternoon}}(_),_}}return o(m,"l"),function(g,y,v){v.p.customParseFormat=!0,g&&g.parseTwoDigitYear&&(l=g.parseTwoDigitYear);var x=y.prototype,b=x.parse;x.parse=function(w){var C=w.date,T=w.utc,E=w.args;this.$u=T;var A=E[1];if(typeof A=="string"){var S=E[2]===!0,_=E[3]===!0,I=S||_,D=E[2];_&&(D=E[2]),s=this.$locale(),!S&&D&&(s=v.Ls[D]),this.$d=function(O,M,B,F){try{if(["x","X"].indexOf(M)>-1)return new Date((M==="X"?1e3:1)*O);var P=m(M)(O),z=P.year,$=P.month,H=P.day,Q=P.hours,j=P.minutes,ie=P.seconds,ne=P.milliseconds,le=P.zone,he=P.week,K=new Date,X=H||(z||$?1:K.getDate()),te=z||K.getFullYear(),J=0;z&&!$||(J=$>0?$-1:K.getMonth());var se,ue=Q||0,Z=j||0,Se=ie||0,ce=ne||0;return le?new Date(Date.UTC(te,J,X,ue,Z,Se,ce+60*le.offset*1e3)):B?new Date(Date.UTC(te,J,X,ue,Z,Se,ce)):(se=new Date(te,J,X,ue,Z,Se,ce),he&&(se=F(se).week(he).toDate()),se)}catch{return new Date("")}}(C,A,T,v),this.init(),D&&D!==!0&&(this.$L=this.locale(D).$L),I&&C!=this.format(A)&&(this.$d=new Date("")),s={}}else if(A instanceof Array)for(var k=A.length,L=1;L<=k;L+=1){E[1]=A[L-1];var R=v.apply(this,E);if(R.isValid()){this.$d=R.$d,this.$L=R.$L,this.init();break}L===k&&(this.$d=new Date(""))}else b.call(this,w)}}})});var gue=Mi((YI,XI)=>{"use strict";(function(t,e){typeof YI=="object"&&typeof XI<"u"?XI.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs_plugin_advancedFormat=e()})(YI,function(){"use strict";return function(t,e){var r=e.prototype,n=r.format;r.format=function(i){var a=this,s=this.$locale();if(!this.isValid())return n.bind(this)(i);var l=this.$utils(),u=(i||"YYYY-MM-DDTHH:mm:ssZ").replace(/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,function(h){switch(h){case"Q":return Math.ceil((a.$M+1)/3);case"Do":return s.ordinal(a.$D);case"gggg":return a.weekYear();case"GGGG":return a.isoWeekYear();case"wo":return s.ordinal(a.week(),"W");case"w":case"ww":return l.s(a.week(),h==="w"?1:2,"0");case"W":case"WW":return l.s(a.isoWeek(),h==="W"?1:2,"0");case"k":case"kk":return l.s(String(a.$H===0?24:a.$H),h==="k"?1:2,"0");case"X":return Math.floor(a.$d.getTime()/1e3);case"x":return a.$d.getTime();case"z":return"["+a.offsetName()+"]";case"zzz":return"["+a.offsetName("long")+"]";default:return h}});return n.bind(this)(u)}}})});function Nue(t,e,r){let n=!0;for(;n;)n=!1,r.forEach(function(i){let a="^\\s*"+i+"\\s*$",s=new RegExp(a);t[0].match(s)&&(e[i]=!0,t.shift(1),n=!0)})}var xue,ho,bue,wue,Tue,yue,Gc,ZI,JI,eO,mb,gb,tO,rO,f6,E1,nO,kue,iO,yb,aO,sO,d6,jI,ize,aze,sze,oze,lze,cze,uze,hze,fze,dze,pze,mze,gze,yze,vze,xze,bze,wze,Tze,kze,Eze,Sze,Cze,Eue,Aze,_ze,Dze,Sue,Lze,KI,Cue,Aue,u6,k1,Rze,Nze,QI,h6,Gi,_ue,Mze,Cp,Ize,vue,Oze,Due,Pze,Lue,Bze,Fze,Rue,Mue=N(()=>{"use strict";xue=Sa(z0(),1),ho=Sa(R4(),1),bue=Sa(pue(),1),wue=Sa(mue(),1),Tue=Sa(gue(),1);vt();zt();ir();mi();ho.default.extend(bue.default);ho.default.extend(wue.default);ho.default.extend(Tue.default);yue={friday:5,saturday:6},Gc="",ZI="",eO="",mb=[],gb=[],tO=new Map,rO=[],f6=[],E1="",nO="",kue=["active","done","crit","milestone"],iO=[],yb=!1,aO=!1,sO="sunday",d6="saturday",jI=0,ize=o(function(){rO=[],f6=[],E1="",iO=[],u6=0,QI=void 0,h6=void 0,Gi=[],Gc="",ZI="",nO="",JI=void 0,eO="",mb=[],gb=[],yb=!1,aO=!1,jI=0,tO=new Map,Ar(),sO="sunday",d6="saturday"},"clear"),aze=o(function(t){ZI=t},"setAxisFormat"),sze=o(function(){return ZI},"getAxisFormat"),oze=o(function(t){JI=t},"setTickInterval"),lze=o(function(){return JI},"getTickInterval"),cze=o(function(t){eO=t},"setTodayMarker"),uze=o(function(){return eO},"getTodayMarker"),hze=o(function(t){Gc=t},"setDateFormat"),fze=o(function(){yb=!0},"enableInclusiveEndDates"),dze=o(function(){return yb},"endDatesAreInclusive"),pze=o(function(){aO=!0},"enableTopAxis"),mze=o(function(){return aO},"topAxisEnabled"),gze=o(function(t){nO=t},"setDisplayMode"),yze=o(function(){return nO},"getDisplayMode"),vze=o(function(){return Gc},"getDateFormat"),xze=o(function(t){mb=t.toLowerCase().split(/[\s,]+/)},"setIncludes"),bze=o(function(){return mb},"getIncludes"),wze=o(function(t){gb=t.toLowerCase().split(/[\s,]+/)},"setExcludes"),Tze=o(function(){return gb},"getExcludes"),kze=o(function(){return tO},"getLinks"),Eze=o(function(t){E1=t,rO.push(t)},"addSection"),Sze=o(function(){return rO},"getSections"),Cze=o(function(){let t=vue(),e=10,r=0;for(;!t&&r<e;)t=vue(),r++;return f6=Gi,f6},"getTasks"),Eue=o(function(t,e,r,n){return n.includes(t.format(e.trim()))?!1:r.includes("weekends")&&(t.isoWeekday()===yue[d6]||t.isoWeekday()===yue[d6]+1)||r.includes(t.format("dddd").toLowerCase())?!0:r.includes(t.format(e.trim()))},"isInvalidDate"),Aze=o(function(t){sO=t},"setWeekday"),_ze=o(function(){return sO},"getWeekday"),Dze=o(function(t){d6=t},"setWeekend"),Sue=o(function(t,e,r,n){if(!r.length||t.manualEndTime)return;let i;t.startTime instanceof Date?i=(0,ho.default)(t.startTime):i=(0,ho.default)(t.startTime,e,!0),i=i.add(1,"d");let a;t.endTime instanceof Date?a=(0,ho.default)(t.endTime):a=(0,ho.default)(t.endTime,e,!0);let[s,l]=Lze(i,a,e,r,n);t.endTime=s.toDate(),t.renderEndTime=l},"checkTaskDates"),Lze=o(function(t,e,r,n,i){let a=!1,s=null;for(;t<=e;)a||(s=e.toDate()),a=Eue(t,r,n,i),a&&(e=e.add(1,"d")),t=t.add(1,"d");return[e,s]},"fixTaskDates"),KI=o(function(t,e,r){r=r.trim();let i=/^after\s+(?<ids>[\d\w- ]+)/.exec(r);if(i!==null){let s=null;for(let u of i.groups.ids.split(" ")){let h=Cp(u);h!==void 0&&(!s||h.endTime>s.endTime)&&(s=h)}if(s)return s.endTime;let l=new Date;return l.setHours(0,0,0,0),l}let a=(0,ho.default)(r,e.trim(),!0);if(a.isValid())return a.toDate();{Y.debug("Invalid date:"+r),Y.debug("With date format:"+e.trim());let s=new Date(r);if(s===void 0||isNaN(s.getTime())||s.getFullYear()<-1e4||s.getFullYear()>1e4)throw new Error("Invalid date:"+r);return s}},"getStartDate"),Cue=o(function(t){let e=/^(\d+(?:\.\d+)?)([Mdhmswy]|ms)$/.exec(t.trim());return e!==null?[Number.parseFloat(e[1]),e[2]]:[NaN,"ms"]},"parseDuration"),Aue=o(function(t,e,r,n=!1){r=r.trim();let a=/^until\s+(?<ids>[\d\w- ]+)/.exec(r);if(a!==null){let f=null;for(let p of a.groups.ids.split(" ")){let m=Cp(p);m!==void 0&&(!f||m.startTime<f.startTime)&&(f=m)}if(f)return f.startTime;let d=new Date;return d.setHours(0,0,0,0),d}let s=(0,ho.default)(r,e.trim(),!0);if(s.isValid())return n&&(s=s.add(1,"d")),s.toDate();let l=(0,ho.default)(t),[u,h]=Cue(r);if(!Number.isNaN(u)){let f=l.add(u,h);f.isValid()&&(l=f)}return l.toDate()},"getEndDate"),u6=0,k1=o(function(t){return t===void 0?(u6=u6+1,"task"+u6):t},"parseId"),Rze=o(function(t,e){let r;e.substr(0,1)===":"?r=e.substr(1,e.length):r=e;let n=r.split(","),i={};Nue(n,i,kue);for(let s=0;s<n.length;s++)n[s]=n[s].trim();let a="";switch(n.length){case 1:i.id=k1(),i.startTime=t.endTime,a=n[0];break;case 2:i.id=k1(),i.startTime=KI(void 0,Gc,n[0]),a=n[1];break;case 3:i.id=k1(n[0]),i.startTime=KI(void 0,Gc,n[1]),a=n[2];break;default:}return a&&(i.endTime=Aue(i.startTime,Gc,a,yb),i.manualEndTime=(0,ho.default)(a,"YYYY-MM-DD",!0).isValid(),Sue(i,Gc,gb,mb)),i},"compileData"),Nze=o(function(t,e){let r;e.substr(0,1)===":"?r=e.substr(1,e.length):r=e;let n=r.split(","),i={};Nue(n,i,kue);for(let a=0;a<n.length;a++)n[a]=n[a].trim();switch(n.length){case 1:i.id=k1(),i.startTime={type:"prevTaskEnd",id:t},i.endTime={data:n[0]};break;case 2:i.id=k1(),i.startTime={type:"getStartDate",startData:n[0]},i.endTime={data:n[1]};break;case 3:i.id=k1(n[0]),i.startTime={type:"getStartDate",startData:n[1]},i.endTime={data:n[2]};break;default:}return i},"parseData"),Gi=[],_ue={},Mze=o(function(t,e){let r={section:E1,type:E1,processed:!1,manualEndTime:!1,renderEndTime:null,raw:{data:e},task:t,classes:[]},n=Nze(h6,e);r.raw.startTime=n.startTime,r.raw.endTime=n.endTime,r.id=n.id,r.prevTaskId=h6,r.active=n.active,r.done=n.done,r.crit=n.crit,r.milestone=n.milestone,r.order=jI,jI++;let i=Gi.push(r);h6=r.id,_ue[r.id]=i-1},"addTask"),Cp=o(function(t){let e=_ue[t];return Gi[e]},"findTaskById"),Ize=o(function(t,e){let r={section:E1,type:E1,description:t,task:t,classes:[]},n=Rze(QI,e);r.startTime=n.startTime,r.endTime=n.endTime,r.id=n.id,r.active=n.active,r.done=n.done,r.crit=n.crit,r.milestone=n.milestone,QI=r,f6.push(r)},"addTaskOrg"),vue=o(function(){let t=o(function(r){let n=Gi[r],i="";switch(Gi[r].raw.startTime.type){case"prevTaskEnd":{let a=Cp(n.prevTaskId);n.startTime=a.endTime;break}case"getStartDate":i=KI(void 0,Gc,Gi[r].raw.startTime.startData),i&&(Gi[r].startTime=i);break}return Gi[r].startTime&&(Gi[r].endTime=Aue(Gi[r].startTime,Gc,Gi[r].raw.endTime.data,yb),Gi[r].endTime&&(Gi[r].processed=!0,Gi[r].manualEndTime=(0,ho.default)(Gi[r].raw.endTime.data,"YYYY-MM-DD",!0).isValid(),Sue(Gi[r],Gc,gb,mb))),Gi[r].processed},"compileTask"),e=!0;for(let[r,n]of Gi.entries())t(r),e=e&&n.processed;return e},"compileTasks"),Oze=o(function(t,e){let r=e;me().securityLevel!=="loose"&&(r=(0,xue.sanitizeUrl)(e)),t.split(",").forEach(function(n){Cp(n)!==void 0&&(Lue(n,()=>{window.open(r,"_self")}),tO.set(n,r))}),Due(t,"clickable")},"setLink"),Due=o(function(t,e){t.split(",").forEach(function(r){let n=Cp(r);n!==void 0&&n.classes.push(e)})},"setClass"),Pze=o(function(t,e,r){if(me().securityLevel!=="loose"||e===void 0)return;let n=[];if(typeof r=="string"){n=r.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let a=0;a<n.length;a++){let s=n[a].trim();s.startsWith('"')&&s.endsWith('"')&&(s=s.substr(1,s.length-2)),n[a]=s}}n.length===0&&n.push(t),Cp(t)!==void 0&&Lue(t,()=>{Gt.runFunc(e,...n)})},"setClickFun"),Lue=o(function(t,e){iO.push(function(){let r=document.querySelector(`[id="${t}"]`);r!==null&&r.addEventListener("click",function(){e()})},function(){let r=document.querySelector(`[id="${t}-text"]`);r!==null&&r.addEventListener("click",function(){e()})})},"pushFun"),Bze=o(function(t,e,r){t.split(",").forEach(function(n){Pze(n,e,r)}),Due(t,"clickable")},"setClickEvent"),Fze=o(function(t){iO.forEach(function(e){e(t)})},"bindFunctions"),Rue={getConfig:o(()=>me().gantt,"getConfig"),clear:ize,setDateFormat:hze,getDateFormat:vze,enableInclusiveEndDates:fze,endDatesAreInclusive:dze,enableTopAxis:pze,topAxisEnabled:mze,setAxisFormat:aze,getAxisFormat:sze,setTickInterval:oze,getTickInterval:lze,setTodayMarker:cze,getTodayMarker:uze,setAccTitle:Lr,getAccTitle:Rr,setDiagramTitle:$r,getDiagramTitle:Ir,setDisplayMode:gze,getDisplayMode:yze,setAccDescription:Nr,getAccDescription:Mr,addSection:Eze,getSections:Sze,getTasks:Cze,addTask:Mze,findTaskById:Cp,addTaskOrg:Ize,setIncludes:xze,getIncludes:bze,setExcludes:wze,getExcludes:Tze,setClickEvent:Bze,setLink:Oze,getLinks:kze,bindFunctions:Fze,parseDuration:Cue,isInvalidDate:Eue,setWeekday:Aze,getWeekday:_ze,setWeekend:Dze};o(Nue,"getTaskTags")});var p6,$ze,Iue,zze,Yu,Gze,Oue,Pue=N(()=>{"use strict";p6=Sa(R4(),1);vt();dr();gr();zt();Ei();$ze=o(function(){Y.debug("Something is calling, setConf, remove the call")},"setConf"),Iue={monday:Ch,tuesday:T5,wednesday:k5,thursday:oc,friday:E5,saturday:S5,sunday:yl},zze=o((t,e)=>{let r=[...t].map(()=>-1/0),n=[...t].sort((a,s)=>a.startTime-s.startTime||a.order-s.order),i=0;for(let a of n)for(let s=0;s<r.length;s++)if(a.startTime>=r[s]){r[s]=a.endTime,a.order=s+e,s>i&&(i=s);break}return i},"getMaxIntersections"),Gze=o(function(t,e,r,n){let i=me().gantt,a=me().securityLevel,s;a==="sandbox"&&(s=Ge("#i"+e));let l=a==="sandbox"?Ge(s.nodes()[0].contentDocument.body):Ge("body"),u=a==="sandbox"?s.nodes()[0].contentDocument:document,h=u.getElementById(e);Yu=h.parentElement.offsetWidth,Yu===void 0&&(Yu=1200),i.useWidth!==void 0&&(Yu=i.useWidth);let f=n.db.getTasks(),d=[];for(let S of f)d.push(S.type);d=A(d);let p={},m=2*i.topPadding;if(n.db.getDisplayMode()==="compact"||i.displayMode==="compact"){let S={};for(let I of f)S[I.section]===void 0?S[I.section]=[I]:S[I.section].push(I);let _=0;for(let I of Object.keys(S)){let D=zze(S[I],_)+1;_+=D,m+=D*(i.barHeight+i.barGap),p[I]=D}}else{m+=f.length*(i.barHeight+i.barGap);for(let S of d)p[S]=f.filter(_=>_.type===S).length}h.setAttribute("viewBox","0 0 "+Yu+" "+m);let g=l.select(`[id="${e}"]`),y=_5().domain([M3(f,function(S){return S.startTime}),N3(f,function(S){return S.endTime})]).rangeRound([0,Yu-i.leftPadding-i.rightPadding]);function v(S,_){let I=S.startTime,D=_.startTime,k=0;return I>D?k=1:I<D&&(k=-1),k}o(v,"taskCompare"),f.sort(v),x(f,Yu,m),vn(g,m,Yu,i.useMaxWidth),g.append("text").text(n.db.getDiagramTitle()).attr("x",Yu/2).attr("y",i.titleTopMargin).attr("class","titleText");function x(S,_,I){let D=i.barHeight,k=D+i.barGap,L=i.topPadding,R=i.leftPadding,O=gl().domain([0,d.length]).range(["#00B9FA","#F95002"]).interpolate($8);w(k,L,R,_,I,S,n.db.getExcludes(),n.db.getIncludes()),C(R,L,_,I),b(S,k,L,R,D,O,_,I),T(k,L,R,D,O),E(R,L,_,I)}o(x,"makeGantt");function b(S,_,I,D,k,L,R){let M=[...new Set(S.map(z=>z.order))].map(z=>S.find($=>$.order===z));g.append("g").selectAll("rect").data(M).enter().append("rect").attr("x",0).attr("y",function(z,$){return $=z.order,$*_+I-2}).attr("width",function(){return R-i.rightPadding/2}).attr("height",_).attr("class",function(z){for(let[$,H]of d.entries())if(z.type===H)return"section section"+$%i.numberSectionStyles;return"section section0"});let B=g.append("g").selectAll("rect").data(S).enter(),F=n.db.getLinks();if(B.append("rect").attr("id",function(z){return z.id}).attr("rx",3).attr("ry",3).attr("x",function(z){return z.milestone?y(z.startTime)+D+.5*(y(z.endTime)-y(z.startTime))-.5*k:y(z.startTime)+D}).attr("y",function(z,$){return $=z.order,$*_+I}).attr("width",function(z){return z.milestone?k:y(z.renderEndTime||z.endTime)-y(z.startTime)}).attr("height",k).attr("transform-origin",function(z,$){return $=z.order,(y(z.startTime)+D+.5*(y(z.endTime)-y(z.startTime))).toString()+"px "+($*_+I+.5*k).toString()+"px"}).attr("class",function(z){let $="task",H="";z.classes.length>0&&(H=z.classes.join(" "));let Q=0;for(let[ie,ne]of d.entries())z.type===ne&&(Q=ie%i.numberSectionStyles);let j="";return z.active?z.crit?j+=" activeCrit":j=" active":z.done?z.crit?j=" doneCrit":j=" done":z.crit&&(j+=" crit"),j.length===0&&(j=" task"),z.milestone&&(j=" milestone "+j),j+=Q,j+=" "+H,$+j}),B.append("text").attr("id",function(z){return z.id+"-text"}).text(function(z){return z.task}).attr("font-size",i.fontSize).attr("x",function(z){let $=y(z.startTime),H=y(z.renderEndTime||z.endTime);z.milestone&&($+=.5*(y(z.endTime)-y(z.startTime))-.5*k),z.milestone&&(H=$+k);let Q=this.getBBox().width;return Q>H-$?H+Q+1.5*i.leftPadding>R?$+D-5:H+D+5:(H-$)/2+$+D}).attr("y",function(z,$){return $=z.order,$*_+i.barHeight/2+(i.fontSize/2-2)+I}).attr("text-height",k).attr("class",function(z){let $=y(z.startTime),H=y(z.endTime);z.milestone&&(H=$+k);let Q=this.getBBox().width,j="";z.classes.length>0&&(j=z.classes.join(" "));let ie=0;for(let[le,he]of d.entries())z.type===he&&(ie=le%i.numberSectionStyles);let ne="";return z.active&&(z.crit?ne="activeCritText"+ie:ne="activeText"+ie),z.done?z.crit?ne=ne+" doneCritText"+ie:ne=ne+" doneText"+ie:z.crit&&(ne=ne+" critText"+ie),z.milestone&&(ne+=" milestoneText"),Q>H-$?H+Q+1.5*i.leftPadding>R?j+" taskTextOutsideLeft taskTextOutside"+ie+" "+ne:j+" taskTextOutsideRight taskTextOutside"+ie+" "+ne+" width-"+Q:j+" taskText taskText"+ie+" "+ne+" width-"+Q}),me().securityLevel==="sandbox"){let z;z=Ge("#i"+e);let $=z.nodes()[0].contentDocument;B.filter(function(H){return F.has(H.id)}).each(function(H){var Q=$.querySelector("#"+H.id),j=$.querySelector("#"+H.id+"-text");let ie=Q.parentNode;var ne=$.createElement("a");ne.setAttribute("xlink:href",F.get(H.id)),ne.setAttribute("target","_top"),ie.appendChild(ne),ne.appendChild(Q),ne.appendChild(j)})}}o(b,"drawRects");function w(S,_,I,D,k,L,R,O){if(R.length===0&&O.length===0)return;let M,B;for(let{startTime:Q,endTime:j}of L)(M===void 0||Q<M)&&(M=Q),(B===void 0||j>B)&&(B=j);if(!M||!B)return;if((0,p6.default)(B).diff((0,p6.default)(M),"year")>5){Y.warn("The difference between the min and max time is more than 5 years. This will cause performance issues. Skipping drawing exclude days.");return}let F=n.db.getDateFormat(),P=[],z=null,$=(0,p6.default)(M);for(;$.valueOf()<=B;)n.db.isInvalidDate($,F,R,O)?z?z.end=$:z={start:$,end:$}:z&&(P.push(z),z=null),$=$.add(1,"d");g.append("g").selectAll("rect").data(P).enter().append("rect").attr("id",function(Q){return"exclude-"+Q.start.format("YYYY-MM-DD")}).attr("x",function(Q){return y(Q.start)+I}).attr("y",i.gridLineStartPadding).attr("width",function(Q){let j=Q.end.add(1,"day");return y(j)-y(Q.start)}).attr("height",k-_-i.gridLineStartPadding).attr("transform-origin",function(Q,j){return(y(Q.start)+I+.5*(y(Q.end)-y(Q.start))).toString()+"px "+(j*S+.5*k).toString()+"px"}).attr("class","exclude-range")}o(w,"drawExcludeDays");function C(S,_,I,D){let k=bA(y).tickSize(-D+_+i.gridLineStartPadding).tickFormat(wd(n.db.getAxisFormat()||i.axisFormat||"%Y-%m-%d")),R=/^([1-9]\d*)(millisecond|second|minute|hour|day|week|month)$/.exec(n.db.getTickInterval()||i.tickInterval);if(R!==null){let O=R[1],M=R[2],B=n.db.getWeekday()||i.weekday;switch(M){case"millisecond":k.ticks(ac.every(O));break;case"second":k.ticks(Ks.every(O));break;case"minute":k.ticks(vu.every(O));break;case"hour":k.ticks(xu.every(O));break;case"day":k.ticks(_o.every(O));break;case"week":k.ticks(Iue[B].every(O));break;case"month":k.ticks(bu.every(O));break}}if(g.append("g").attr("class","grid").attr("transform","translate("+S+", "+(D-50)+")").call(k).selectAll("text").style("text-anchor","middle").attr("fill","#000").attr("stroke","none").attr("font-size",10).attr("dy","1em"),n.db.topAxisEnabled()||i.topAxis){let O=xA(y).tickSize(-D+_+i.gridLineStartPadding).tickFormat(wd(n.db.getAxisFormat()||i.axisFormat||"%Y-%m-%d"));if(R!==null){let M=R[1],B=R[2],F=n.db.getWeekday()||i.weekday;switch(B){case"millisecond":O.ticks(ac.every(M));break;case"second":O.ticks(Ks.every(M));break;case"minute":O.ticks(vu.every(M));break;case"hour":O.ticks(xu.every(M));break;case"day":O.ticks(_o.every(M));break;case"week":O.ticks(Iue[F].every(M));break;case"month":O.ticks(bu.every(M));break}}g.append("g").attr("class","grid").attr("transform","translate("+S+", "+_+")").call(O).selectAll("text").style("text-anchor","middle").attr("fill","#000").attr("stroke","none").attr("font-size",10)}}o(C,"makeGrid");function T(S,_){let I=0,D=Object.keys(p).map(k=>[k,p[k]]);g.append("g").selectAll("text").data(D).enter().append(function(k){let L=k[0].split(Ze.lineBreakRegex),R=-(L.length-1)/2,O=u.createElementNS("http://www.w3.org/2000/svg","text");O.setAttribute("dy",R+"em");for(let[M,B]of L.entries()){let F=u.createElementNS("http://www.w3.org/2000/svg","tspan");F.setAttribute("alignment-baseline","central"),F.setAttribute("x","10"),M>0&&F.setAttribute("dy","1em"),F.textContent=B,O.appendChild(F)}return O}).attr("x",10).attr("y",function(k,L){if(L>0)for(let R=0;R<L;R++)return I+=D[L-1][1],k[1]*S/2+I*S+_;else return k[1]*S/2+_}).attr("font-size",i.sectionFontSize).attr("class",function(k){for(let[L,R]of d.entries())if(k[0]===R)return"sectionTitle sectionTitle"+L%i.numberSectionStyles;return"sectionTitle"})}o(T,"vertLabels");function E(S,_,I,D){let k=n.db.getTodayMarker();if(k==="off")return;let L=g.append("g").attr("class","today"),R=new Date,O=L.append("line");O.attr("x1",y(R)+S).attr("x2",y(R)+S).attr("y1",i.titleTopMargin).attr("y2",D-i.titleTopMargin).attr("class","today"),k!==""&&O.attr("style",k.replace(/,/g,";"))}o(E,"drawToday");function A(S){let _={},I=[];for(let D=0,k=S.length;D<k;++D)Object.prototype.hasOwnProperty.call(_,S[D])||(_[S[D]]=!0,I.push(S[D]));return I}o(A,"checkUnique")},"draw"),Oue={setConf:$ze,draw:Gze}});var Vze,Bue,Fue=N(()=>{"use strict";Vze=o(t=>`
+  .mermaid-main-font {
+        font-family: ${t.fontFamily};
+  }
+
+  .exclude-range {
+    fill: ${t.excludeBkgColor};
+  }
+
+  .section {
+    stroke: none;
+    opacity: 0.2;
+  }
+
+  .section0 {
+    fill: ${t.sectionBkgColor};
+  }
+
+  .section2 {
+    fill: ${t.sectionBkgColor2};
+  }
+
+  .section1,
+  .section3 {
+    fill: ${t.altSectionBkgColor};
+    opacity: 0.2;
+  }
+
+  .sectionTitle0 {
+    fill: ${t.titleColor};
+  }
+
+  .sectionTitle1 {
+    fill: ${t.titleColor};
+  }
+
+  .sectionTitle2 {
+    fill: ${t.titleColor};
+  }
+
+  .sectionTitle3 {
+    fill: ${t.titleColor};
+  }
+
+  .sectionTitle {
+    text-anchor: start;
+    font-family: ${t.fontFamily};
+  }
+
+
+  /* Grid and axis */
+
+  .grid .tick {
+    stroke: ${t.gridColor};
+    opacity: 0.8;
+    shape-rendering: crispEdges;
+  }
+
+  .grid .tick text {
+    font-family: ${t.fontFamily};
+    fill: ${t.textColor};
+  }
+
+  .grid path {
+    stroke-width: 0;
+  }
+
+
+  /* Today line */
+
+  .today {
+    fill: none;
+    stroke: ${t.todayLineColor};
+    stroke-width: 2px;
+  }
+
+
+  /* Task styling */
+
+  /* Default task */
+
+  .task {
+    stroke-width: 2;
+  }
+
+  .taskText {
+    text-anchor: middle;
+    font-family: ${t.fontFamily};
+  }
+
+  .taskTextOutsideRight {
+    fill: ${t.taskTextDarkColor};
+    text-anchor: start;
+    font-family: ${t.fontFamily};
+  }
+
+  .taskTextOutsideLeft {
+    fill: ${t.taskTextDarkColor};
+    text-anchor: end;
+  }
+
+
+  /* Special case clickable */
+
+  .task.clickable {
+    cursor: pointer;
+  }
+
+  .taskText.clickable {
+    cursor: pointer;
+    fill: ${t.taskTextClickableColor} !important;
+    font-weight: bold;
+  }
+
+  .taskTextOutsideLeft.clickable {
+    cursor: pointer;
+    fill: ${t.taskTextClickableColor} !important;
+    font-weight: bold;
+  }
+
+  .taskTextOutsideRight.clickable {
+    cursor: pointer;
+    fill: ${t.taskTextClickableColor} !important;
+    font-weight: bold;
+  }
+
+
+  /* Specific task settings for the sections*/
+
+  .taskText0,
+  .taskText1,
+  .taskText2,
+  .taskText3 {
+    fill: ${t.taskTextColor};
+  }
+
+  .task0,
+  .task1,
+  .task2,
+  .task3 {
+    fill: ${t.taskBkgColor};
+    stroke: ${t.taskBorderColor};
+  }
+
+  .taskTextOutside0,
+  .taskTextOutside2
+  {
+    fill: ${t.taskTextOutsideColor};
+  }
+
+  .taskTextOutside1,
+  .taskTextOutside3 {
+    fill: ${t.taskTextOutsideColor};
+  }
+
+
+  /* Active task */
+
+  .active0,
+  .active1,
+  .active2,
+  .active3 {
+    fill: ${t.activeTaskBkgColor};
+    stroke: ${t.activeTaskBorderColor};
+  }
+
+  .activeText0,
+  .activeText1,
+  .activeText2,
+  .activeText3 {
+    fill: ${t.taskTextDarkColor} !important;
+  }
+
+
+  /* Completed task */
+
+  .done0,
+  .done1,
+  .done2,
+  .done3 {
+    stroke: ${t.doneTaskBorderColor};
+    fill: ${t.doneTaskBkgColor};
+    stroke-width: 2;
+  }
+
+  .doneText0,
+  .doneText1,
+  .doneText2,
+  .doneText3 {
+    fill: ${t.taskTextDarkColor} !important;
+  }
+
+
+  /* Tasks on the critical line */
+
+  .crit0,
+  .crit1,
+  .crit2,
+  .crit3 {
+    stroke: ${t.critBorderColor};
+    fill: ${t.critBkgColor};
+    stroke-width: 2;
+  }
+
+  .activeCrit0,
+  .activeCrit1,
+  .activeCrit2,
+  .activeCrit3 {
+    stroke: ${t.critBorderColor};
+    fill: ${t.activeTaskBkgColor};
+    stroke-width: 2;
+  }
+
+  .doneCrit0,
+  .doneCrit1,
+  .doneCrit2,
+  .doneCrit3 {
+    stroke: ${t.critBorderColor};
+    fill: ${t.doneTaskBkgColor};
+    stroke-width: 2;
+    cursor: pointer;
+    shape-rendering: crispEdges;
+  }
+
+  .milestone {
+    transform: rotate(45deg) scale(0.8,0.8);
+  }
+
+  .milestoneText {
+    font-style: italic;
+  }
+  .doneCritText0,
+  .doneCritText1,
+  .doneCritText2,
+  .doneCritText3 {
+    fill: ${t.taskTextDarkColor} !important;
+  }
+
+  .activeCritText0,
+  .activeCritText1,
+  .activeCritText2,
+  .activeCritText3 {
+    fill: ${t.taskTextDarkColor} !important;
+  }
+
+  .titleText {
+    text-anchor: middle;
+    font-size: 18px;
+    fill: ${t.titleColor||t.textColor};
+    font-family: ${t.fontFamily};
+  }
+`,"getStyles"),Bue=Vze});var $ue={};hr($ue,{diagram:()=>Uze});var Uze,zue=N(()=>{"use strict";due();Mue();Pue();Fue();Uze={parser:fue,db:Rue,renderer:Oue,styles:Bue}});var Uue,Hue=N(()=>{"use strict";kp();vt();Uue={parse:o(async t=>{let e=await uo("info",t);Y.debug(e)},"parse")}});var vb,oO=N(()=>{vb={name:"mermaid",version:"11.6.0",description:"Markdown-ish syntax for generating flowcharts, mindmaps, sequence diagrams, class diagrams, gantt charts, git graphs and more.",type:"module",module:"./dist/mermaid.core.mjs",types:"./dist/mermaid.d.ts",exports:{".":{types:"./dist/mermaid.d.ts",import:"./dist/mermaid.core.mjs",default:"./dist/mermaid.core.mjs"},"./*":"./*"},keywords:["diagram","markdown","flowchart","sequence diagram","gantt","class diagram","git graph","mindmap","packet diagram","c4 diagram","er diagram","pie chart","pie diagram","quadrant chart","requirement diagram","graph"],scripts:{clean:"rimraf dist",dev:"pnpm -w dev","docs:code":"typedoc src/defaultConfig.ts src/config.ts src/mermaid.ts && prettier --write ./src/docs/config/setup","docs:build":"rimraf ../../docs && pnpm docs:code && pnpm docs:spellcheck && tsx scripts/docs.cli.mts","docs:verify":"pnpm docs:code && pnpm docs:spellcheck && tsx scripts/docs.cli.mts --verify","docs:pre:vitepress":"pnpm --filter ./src/docs prefetch && rimraf src/vitepress && pnpm docs:code && tsx scripts/docs.cli.mts --vitepress && pnpm --filter ./src/vitepress install --no-frozen-lockfile --ignore-scripts","docs:build:vitepress":"pnpm docs:pre:vitepress && (cd src/vitepress && pnpm run build) && cpy --flat src/docs/landing/ ./src/vitepress/.vitepress/dist/landing","docs:dev":'pnpm docs:pre:vitepress && concurrently "pnpm --filter ./src/vitepress dev" "tsx scripts/docs.cli.mts --watch --vitepress"',"docs:dev:docker":'pnpm docs:pre:vitepress && concurrently "pnpm --filter ./src/vitepress dev:docker" "tsx scripts/docs.cli.mts --watch --vitepress"',"docs:serve":"pnpm docs:build:vitepress && vitepress serve src/vitepress","docs:spellcheck":'cspell "src/docs/**/*.md"',"docs:release-version":"tsx scripts/update-release-version.mts","docs:verify-version":"tsx scripts/update-release-version.mts --verify","types:build-config":"tsx scripts/create-types-from-json-schema.mts","types:verify-config":"tsx scripts/create-types-from-json-schema.mts --verify",checkCircle:"npx madge --circular ./src",prepublishOnly:"pnpm docs:verify-version"},repository:{type:"git",url:"https://github.com/mermaid-js/mermaid"},author:"Knut Sveidqvist",license:"MIT",standard:{ignore:["**/parser/*.js","dist/**/*.js","cypress/**/*.js"],globals:["page"]},dependencies:{"@braintree/sanitize-url":"^7.0.4","@iconify/utils":"^2.1.33","@mermaid-js/parser":"workspace:^","@types/d3":"^7.4.3",cytoscape:"^3.29.3","cytoscape-cose-bilkent":"^4.1.0","cytoscape-fcose":"^2.2.0",d3:"^7.9.0","d3-sankey":"^0.12.3","dagre-d3-es":"7.0.11",dayjs:"^1.11.13",dompurify:"^3.2.4",katex:"^0.16.9",khroma:"^2.1.0","lodash-es":"^4.17.21",marked:"^15.0.7",roughjs:"^4.6.6",stylis:"^4.3.6","ts-dedent":"^2.2.0",uuid:"^11.1.0"},devDependencies:{"@adobe/jsonschema2md":"^8.0.2","@iconify/types":"^2.0.0","@types/cytoscape":"^3.21.9","@types/cytoscape-fcose":"^2.2.4","@types/d3-sankey":"^0.12.4","@types/d3-scale":"^4.0.9","@types/d3-scale-chromatic":"^3.1.0","@types/d3-selection":"^3.0.11","@types/d3-shape":"^3.1.7","@types/jsdom":"^21.1.7","@types/katex":"^0.16.7","@types/lodash-es":"^4.17.12","@types/micromatch":"^4.0.9","@types/stylis":"^4.2.7","@types/uuid":"^10.0.0",ajv:"^8.17.1",chokidar:"^4.0.3",concurrently:"^9.1.2","csstree-validator":"^4.0.1",globby:"^14.0.2",jison:"^0.4.18","js-base64":"^3.7.7",jsdom:"^26.0.0","json-schema-to-typescript":"^15.0.4",micromatch:"^4.0.8","path-browserify":"^1.0.1",prettier:"^3.5.2",remark:"^15.0.1","remark-frontmatter":"^5.0.0","remark-gfm":"^4.0.1",rimraf:"^6.0.1","start-server-and-test":"^2.0.10","type-fest":"^4.35.0",typedoc:"^0.27.8","typedoc-plugin-markdown":"^4.4.2",typescript:"~5.7.3","unist-util-flatmap":"^1.0.0","unist-util-visit":"^5.0.0",vitepress:"^1.0.2","vitepress-plugin-search":"1.0.4-alpha.22"},files:["dist/","README.md"],publishConfig:{access:"public"}}});var Xze,jze,Wue,que=N(()=>{"use strict";oO();Xze={version:vb.version},jze=o(()=>Xze.version,"getVersion"),Wue={getVersion:jze}});var sa,Vc=N(()=>{"use strict";dr();zt();sa=o(t=>{let{securityLevel:e}=me(),r=Ge("body");if(e==="sandbox"){let a=Ge(`#i${t}`).node()?.contentDocument??document;r=Ge(a.body)}return r.select(`#${t}`)},"selectSvgElement")});var Kze,Yue,Xue=N(()=>{"use strict";vt();Vc();Ei();Kze=o((t,e,r)=>{Y.debug(`rendering info diagram
+`+t);let n=sa(e);vn(n,100,400,!0),n.append("g").append("text").attr("x",100).attr("y",40).attr("class","version").attr("font-size",32).style("text-anchor","middle").text(`v${r}`)},"draw"),Yue={draw:Kze}});var jue={};hr(jue,{diagram:()=>Qze});var Qze,Kue=N(()=>{"use strict";Hue();que();Xue();Qze={parser:Uue,db:Wue,renderer:Yue}});var Jue,lO,m6,cO,eGe,tGe,rGe,nGe,iGe,aGe,sGe,g6,uO=N(()=>{"use strict";vt();mi();Ya();Jue=or.pie,lO={sections:new Map,showData:!1,config:Jue},m6=lO.sections,cO=lO.showData,eGe=structuredClone(Jue),tGe=o(()=>structuredClone(eGe),"getConfig"),rGe=o(()=>{m6=new Map,cO=lO.showData,Ar()},"clear"),nGe=o(({label:t,value:e})=>{m6.has(t)||(m6.set(t,e),Y.debug(`added new section: ${t}, with value: ${e}`))},"addSection"),iGe=o(()=>m6,"getSections"),aGe=o(t=>{cO=t},"setShowData"),sGe=o(()=>cO,"getShowData"),g6={getConfig:tGe,clear:rGe,setDiagramTitle:$r,getDiagramTitle:Ir,setAccTitle:Lr,getAccTitle:Rr,setAccDescription:Nr,getAccDescription:Mr,addSection:nGe,getSections:iGe,setShowData:aGe,getShowData:sGe}});var oGe,ehe,the=N(()=>{"use strict";kp();vt();T1();uO();oGe=o((t,e)=>{$c(t,e),e.setShowData(t.showData),t.sections.map(e.addSection)},"populateDb"),ehe={parse:o(async t=>{let e=await uo("pie",t);Y.debug(e),oGe(e,g6)},"parse")}});var lGe,rhe,nhe=N(()=>{"use strict";lGe=o(t=>`
+  .pieCircle{
+    stroke: ${t.pieStrokeColor};
+    stroke-width : ${t.pieStrokeWidth};
+    opacity : ${t.pieOpacity};
+  }
+  .pieOuterCircle{
+    stroke: ${t.pieOuterStrokeColor};
+    stroke-width: ${t.pieOuterStrokeWidth};
+    fill: none;
+  }
+  .pieTitleText {
+    text-anchor: middle;
+    font-size: ${t.pieTitleTextSize};
+    fill: ${t.pieTitleTextColor};
+    font-family: ${t.fontFamily};
+  }
+  .slice {
+    font-family: ${t.fontFamily};
+    fill: ${t.pieSectionTextColor};
+    font-size:${t.pieSectionTextSize};
+    // fill: white;
+  }
+  .legend text {
+    fill: ${t.pieLegendTextColor};
+    font-family: ${t.fontFamily};
+    font-size: ${t.pieLegendTextSize};
+  }
+`,"getStyles"),rhe=lGe});var cGe,uGe,ihe,ahe=N(()=>{"use strict";dr();zt();vt();Vc();Ei();ir();cGe=o(t=>{let e=[...t.entries()].map(n=>({label:n[0],value:n[1]})).sort((n,i)=>i.value-n.value);return I5().value(n=>n.value)(e)},"createPieArcs"),uGe=o((t,e,r,n)=>{Y.debug(`rendering pie chart
+`+t);let i=n.db,a=me(),s=Fi(i.getConfig(),a.pie),l=40,u=18,h=4,f=450,d=f,p=sa(e),m=p.append("g");m.attr("transform","translate("+d/2+","+f/2+")");let{themeVariables:g}=a,[y]=Bo(g.pieOuterStrokeWidth);y??=2;let v=s.textPosition,x=Math.min(d,f)/2-l,b=bl().innerRadius(0).outerRadius(x),w=bl().innerRadius(x*v).outerRadius(x*v);m.append("circle").attr("cx",0).attr("cy",0).attr("r",x+y/2).attr("class","pieOuterCircle");let C=i.getSections(),T=cGe(C),E=[g.pie1,g.pie2,g.pie3,g.pie4,g.pie5,g.pie6,g.pie7,g.pie8,g.pie9,g.pie10,g.pie11,g.pie12],A=gu(E);m.selectAll("mySlices").data(T).enter().append("path").attr("d",b).attr("fill",k=>A(k.data.label)).attr("class","pieCircle");let S=0;C.forEach(k=>{S+=k}),m.selectAll("mySlices").data(T).enter().append("text").text(k=>(k.data.value/S*100).toFixed(0)+"%").attr("transform",k=>"translate("+w.centroid(k)+")").style("text-anchor","middle").attr("class","slice"),m.append("text").text(i.getDiagramTitle()).attr("x",0).attr("y",-(f-50)/2).attr("class","pieTitleText");let _=m.selectAll(".legend").data(A.domain()).enter().append("g").attr("class","legend").attr("transform",(k,L)=>{let R=u+h,O=R*A.domain().length/2,M=12*u,B=L*R-O;return"translate("+M+","+B+")"});_.append("rect").attr("width",u).attr("height",u).style("fill",A).style("stroke",A),_.data(T).append("text").attr("x",u+h).attr("y",u-h).text(k=>{let{label:L,value:R}=k.data;return i.getShowData()?`${L} [${R}]`:L});let I=Math.max(..._.selectAll("text").nodes().map(k=>k?.getBoundingClientRect().width??0)),D=d+l+u+h+I;p.attr("viewBox",`0 0 ${D} ${f}`),vn(p,f,D,s.useMaxWidth)},"draw"),ihe={draw:uGe}});var she={};hr(she,{diagram:()=>hGe});var hGe,ohe=N(()=>{"use strict";the();uO();nhe();ahe();hGe={parser:ehe,db:g6,renderer:ihe,styles:rhe}});var hO,uhe,hhe=N(()=>{"use strict";hO=function(){var t=o(function(xe,q,pe,ve){for(pe=pe||{},ve=xe.length;ve--;pe[xe[ve]]=q);return pe},"o"),e=[1,3],r=[1,4],n=[1,5],i=[1,6],a=[1,7],s=[1,4,5,10,12,13,14,18,25,35,37,39,41,42,48,50,51,52,53,54,55,56,57,60,61,63,64,65,66,67],l=[1,4,5,10,12,13,14,18,25,28,35,37,39,41,42,48,50,51,52,53,54,55,56,57,60,61,63,64,65,66,67],u=[55,56,57],h=[2,36],f=[1,37],d=[1,36],p=[1,38],m=[1,35],g=[1,43],y=[1,41],v=[1,14],x=[1,23],b=[1,18],w=[1,19],C=[1,20],T=[1,21],E=[1,22],A=[1,24],S=[1,25],_=[1,26],I=[1,27],D=[1,28],k=[1,29],L=[1,32],R=[1,33],O=[1,34],M=[1,39],B=[1,40],F=[1,42],P=[1,44],z=[1,62],$=[1,61],H=[4,5,8,10,12,13,14,18,44,47,49,55,56,57,63,64,65,66,67],Q=[1,65],j=[1,66],ie=[1,67],ne=[1,68],le=[1,69],he=[1,70],K=[1,71],X=[1,72],te=[1,73],J=[1,74],se=[1,75],ue=[1,76],Z=[4,5,6,7,8,9,10,11,12,13,14,15,18],Se=[1,90],ce=[1,91],ae=[1,92],Oe=[1,99],ge=[1,93],ze=[1,96],He=[1,94],$e=[1,95],Re=[1,97],Ie=[1,98],be=[1,102],W=[10,55,56,57],de=[4,5,6,8,10,11,13,17,18,19,20,55,56,57],re={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,idStringToken:3,ALPHA:4,NUM:5,NODE_STRING:6,DOWN:7,MINUS:8,DEFAULT:9,COMMA:10,COLON:11,AMP:12,BRKT:13,MULT:14,UNICODE_TEXT:15,styleComponent:16,UNIT:17,SPACE:18,STYLE:19,PCT:20,idString:21,style:22,stylesOpt:23,classDefStatement:24,CLASSDEF:25,start:26,eol:27,QUADRANT:28,document:29,line:30,statement:31,axisDetails:32,quadrantDetails:33,points:34,title:35,title_value:36,acc_title:37,acc_title_value:38,acc_descr:39,acc_descr_value:40,acc_descr_multiline_value:41,section:42,text:43,point_start:44,point_x:45,point_y:46,class_name:47,"X-AXIS":48,"AXIS-TEXT-DELIMITER":49,"Y-AXIS":50,QUADRANT_1:51,QUADRANT_2:52,QUADRANT_3:53,QUADRANT_4:54,NEWLINE:55,SEMI:56,EOF:57,alphaNumToken:58,textNoTagsToken:59,STR:60,MD_STR:61,alphaNum:62,PUNCTUATION:63,PLUS:64,EQUALS:65,DOT:66,UNDERSCORE:67,$accept:0,$end:1},terminals_:{2:"error",4:"ALPHA",5:"NUM",6:"NODE_STRING",7:"DOWN",8:"MINUS",9:"DEFAULT",10:"COMMA",11:"COLON",12:"AMP",13:"BRKT",14:"MULT",15:"UNICODE_TEXT",17:"UNIT",18:"SPACE",19:"STYLE",20:"PCT",25:"CLASSDEF",28:"QUADRANT",35:"title",36:"title_value",37:"acc_title",38:"acc_title_value",39:"acc_descr",40:"acc_descr_value",41:"acc_descr_multiline_value",42:"section",44:"point_start",45:"point_x",46:"point_y",47:"class_name",48:"X-AXIS",49:"AXIS-TEXT-DELIMITER",50:"Y-AXIS",51:"QUADRANT_1",52:"QUADRANT_2",53:"QUADRANT_3",54:"QUADRANT_4",55:"NEWLINE",56:"SEMI",57:"EOF",60:"STR",61:"MD_STR",63:"PUNCTUATION",64:"PLUS",65:"EQUALS",66:"DOT",67:"UNDERSCORE"},productions_:[0,[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[21,1],[21,2],[22,1],[22,2],[23,1],[23,3],[24,5],[26,2],[26,2],[26,2],[29,0],[29,2],[30,2],[31,0],[31,1],[31,2],[31,1],[31,1],[31,1],[31,2],[31,2],[31,2],[31,1],[31,1],[34,4],[34,5],[34,5],[34,6],[32,4],[32,3],[32,2],[32,4],[32,3],[32,2],[33,2],[33,2],[33,2],[33,2],[27,1],[27,1],[27,1],[43,1],[43,2],[43,1],[43,1],[62,1],[62,2],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[59,1],[59,1],[59,1]],performAction:o(function(q,pe,ve,Pe,_e,we,Ve){var De=we.length-1;switch(_e){case 23:this.$=we[De];break;case 24:this.$=we[De-1]+""+we[De];break;case 26:this.$=we[De-1]+we[De];break;case 27:this.$=[we[De].trim()];break;case 28:we[De-2].push(we[De].trim()),this.$=we[De-2];break;case 29:this.$=we[De-4],Pe.addClass(we[De-2],we[De]);break;case 37:this.$=[];break;case 42:this.$=we[De].trim(),Pe.setDiagramTitle(this.$);break;case 43:this.$=we[De].trim(),Pe.setAccTitle(this.$);break;case 44:case 45:this.$=we[De].trim(),Pe.setAccDescription(this.$);break;case 46:Pe.addSection(we[De].substr(8)),this.$=we[De].substr(8);break;case 47:Pe.addPoint(we[De-3],"",we[De-1],we[De],[]);break;case 48:Pe.addPoint(we[De-4],we[De-3],we[De-1],we[De],[]);break;case 49:Pe.addPoint(we[De-4],"",we[De-2],we[De-1],we[De]);break;case 50:Pe.addPoint(we[De-5],we[De-4],we[De-2],we[De-1],we[De]);break;case 51:Pe.setXAxisLeftText(we[De-2]),Pe.setXAxisRightText(we[De]);break;case 52:we[De-1].text+=" \u27F6 ",Pe.setXAxisLeftText(we[De-1]);break;case 53:Pe.setXAxisLeftText(we[De]);break;case 54:Pe.setYAxisBottomText(we[De-2]),Pe.setYAxisTopText(we[De]);break;case 55:we[De-1].text+=" \u27F6 ",Pe.setYAxisBottomText(we[De-1]);break;case 56:Pe.setYAxisBottomText(we[De]);break;case 57:Pe.setQuadrant1Text(we[De]);break;case 58:Pe.setQuadrant2Text(we[De]);break;case 59:Pe.setQuadrant3Text(we[De]);break;case 60:Pe.setQuadrant4Text(we[De]);break;case 64:this.$={text:we[De],type:"text"};break;case 65:this.$={text:we[De-1].text+""+we[De],type:we[De-1].type};break;case 66:this.$={text:we[De],type:"text"};break;case 67:this.$={text:we[De],type:"markdown"};break;case 68:this.$=we[De];break;case 69:this.$=we[De-1]+""+we[De];break}},"anonymous"),table:[{18:e,26:1,27:2,28:r,55:n,56:i,57:a},{1:[3]},{18:e,26:8,27:2,28:r,55:n,56:i,57:a},{18:e,26:9,27:2,28:r,55:n,56:i,57:a},t(s,[2,33],{29:10}),t(l,[2,61]),t(l,[2,62]),t(l,[2,63]),{1:[2,30]},{1:[2,31]},t(u,h,{30:11,31:12,24:13,32:15,33:16,34:17,43:30,58:31,1:[2,32],4:f,5:d,10:p,12:m,13:g,14:y,18:v,25:x,35:b,37:w,39:C,41:T,42:E,48:A,50:S,51:_,52:I,53:D,54:k,60:L,61:R,63:O,64:M,65:B,66:F,67:P}),t(s,[2,34]),{27:45,55:n,56:i,57:a},t(u,[2,37]),t(u,h,{24:13,32:15,33:16,34:17,43:30,58:31,31:46,4:f,5:d,10:p,12:m,13:g,14:y,18:v,25:x,35:b,37:w,39:C,41:T,42:E,48:A,50:S,51:_,52:I,53:D,54:k,60:L,61:R,63:O,64:M,65:B,66:F,67:P}),t(u,[2,39]),t(u,[2,40]),t(u,[2,41]),{36:[1,47]},{38:[1,48]},{40:[1,49]},t(u,[2,45]),t(u,[2,46]),{18:[1,50]},{4:f,5:d,10:p,12:m,13:g,14:y,43:51,58:31,60:L,61:R,63:O,64:M,65:B,66:F,67:P},{4:f,5:d,10:p,12:m,13:g,14:y,43:52,58:31,60:L,61:R,63:O,64:M,65:B,66:F,67:P},{4:f,5:d,10:p,12:m,13:g,14:y,43:53,58:31,60:L,61:R,63:O,64:M,65:B,66:F,67:P},{4:f,5:d,10:p,12:m,13:g,14:y,43:54,58:31,60:L,61:R,63:O,64:M,65:B,66:F,67:P},{4:f,5:d,10:p,12:m,13:g,14:y,43:55,58:31,60:L,61:R,63:O,64:M,65:B,66:F,67:P},{4:f,5:d,10:p,12:m,13:g,14:y,43:56,58:31,60:L,61:R,63:O,64:M,65:B,66:F,67:P},{4:f,5:d,8:z,10:p,12:m,13:g,14:y,18:$,44:[1,57],47:[1,58],58:60,59:59,63:O,64:M,65:B,66:F,67:P},t(H,[2,64]),t(H,[2,66]),t(H,[2,67]),t(H,[2,70]),t(H,[2,71]),t(H,[2,72]),t(H,[2,73]),t(H,[2,74]),t(H,[2,75]),t(H,[2,76]),t(H,[2,77]),t(H,[2,78]),t(H,[2,79]),t(H,[2,80]),t(s,[2,35]),t(u,[2,38]),t(u,[2,42]),t(u,[2,43]),t(u,[2,44]),{3:64,4:Q,5:j,6:ie,7:ne,8:le,9:he,10:K,11:X,12:te,13:J,14:se,15:ue,21:63},t(u,[2,53],{59:59,58:60,4:f,5:d,8:z,10:p,12:m,13:g,14:y,18:$,49:[1,77],63:O,64:M,65:B,66:F,67:P}),t(u,[2,56],{59:59,58:60,4:f,5:d,8:z,10:p,12:m,13:g,14:y,18:$,49:[1,78],63:O,64:M,65:B,66:F,67:P}),t(u,[2,57],{59:59,58:60,4:f,5:d,8:z,10:p,12:m,13:g,14:y,18:$,63:O,64:M,65:B,66:F,67:P}),t(u,[2,58],{59:59,58:60,4:f,5:d,8:z,10:p,12:m,13:g,14:y,18:$,63:O,64:M,65:B,66:F,67:P}),t(u,[2,59],{59:59,58:60,4:f,5:d,8:z,10:p,12:m,13:g,14:y,18:$,63:O,64:M,65:B,66:F,67:P}),t(u,[2,60],{59:59,58:60,4:f,5:d,8:z,10:p,12:m,13:g,14:y,18:$,63:O,64:M,65:B,66:F,67:P}),{45:[1,79]},{44:[1,80]},t(H,[2,65]),t(H,[2,81]),t(H,[2,82]),t(H,[2,83]),{3:82,4:Q,5:j,6:ie,7:ne,8:le,9:he,10:K,11:X,12:te,13:J,14:se,15:ue,18:[1,81]},t(Z,[2,23]),t(Z,[2,1]),t(Z,[2,2]),t(Z,[2,3]),t(Z,[2,4]),t(Z,[2,5]),t(Z,[2,6]),t(Z,[2,7]),t(Z,[2,8]),t(Z,[2,9]),t(Z,[2,10]),t(Z,[2,11]),t(Z,[2,12]),t(u,[2,52],{58:31,43:83,4:f,5:d,10:p,12:m,13:g,14:y,60:L,61:R,63:O,64:M,65:B,66:F,67:P}),t(u,[2,55],{58:31,43:84,4:f,5:d,10:p,12:m,13:g,14:y,60:L,61:R,63:O,64:M,65:B,66:F,67:P}),{46:[1,85]},{45:[1,86]},{4:Se,5:ce,6:ae,8:Oe,11:ge,13:ze,16:89,17:He,18:$e,19:Re,20:Ie,22:88,23:87},t(Z,[2,24]),t(u,[2,51],{59:59,58:60,4:f,5:d,8:z,10:p,12:m,13:g,14:y,18:$,63:O,64:M,65:B,66:F,67:P}),t(u,[2,54],{59:59,58:60,4:f,5:d,8:z,10:p,12:m,13:g,14:y,18:$,63:O,64:M,65:B,66:F,67:P}),t(u,[2,47],{22:88,16:89,23:100,4:Se,5:ce,6:ae,8:Oe,11:ge,13:ze,17:He,18:$e,19:Re,20:Ie}),{46:[1,101]},t(u,[2,29],{10:be}),t(W,[2,27],{16:103,4:Se,5:ce,6:ae,8:Oe,11:ge,13:ze,17:He,18:$e,19:Re,20:Ie}),t(de,[2,25]),t(de,[2,13]),t(de,[2,14]),t(de,[2,15]),t(de,[2,16]),t(de,[2,17]),t(de,[2,18]),t(de,[2,19]),t(de,[2,20]),t(de,[2,21]),t(de,[2,22]),t(u,[2,49],{10:be}),t(u,[2,48],{22:88,16:89,23:104,4:Se,5:ce,6:ae,8:Oe,11:ge,13:ze,17:He,18:$e,19:Re,20:Ie}),{4:Se,5:ce,6:ae,8:Oe,11:ge,13:ze,16:89,17:He,18:$e,19:Re,20:Ie,22:105},t(de,[2,26]),t(u,[2,50],{10:be}),t(W,[2,28],{16:103,4:Se,5:ce,6:ae,8:Oe,11:ge,13:ze,17:He,18:$e,19:Re,20:Ie})],defaultActions:{8:[2,30],9:[2,31]},parseError:o(function(q,pe){if(pe.recoverable)this.trace(q);else{var ve=new Error(q);throw ve.hash=pe,ve}},"parseError"),parse:o(function(q){var pe=this,ve=[0],Pe=[],_e=[null],we=[],Ve=this.table,De="",qe=0,at=0,Rt=0,st=2,Ue=1,ct=we.slice.call(arguments,1),We=Object.create(this.lexer),ot={yy:{}};for(var Yt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Yt)&&(ot.yy[Yt]=this.yy[Yt]);We.setInput(q,ot.yy),ot.yy.lexer=We,ot.yy.parser=this,typeof We.yylloc>"u"&&(We.yylloc={});var bt=We.yylloc;we.push(bt);var Mt=We.options&&We.options.ranges;typeof ot.yy.parseError=="function"?this.parseError=ot.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function xt(Ce){ve.length=ve.length-2*Ce,_e.length=_e.length-Ce,we.length=we.length-Ce}o(xt,"popStack");function ut(){var Ce;return Ce=Pe.pop()||We.lex()||Ue,typeof Ce!="number"&&(Ce instanceof Array&&(Pe=Ce,Ce=Pe.pop()),Ce=pe.symbols_[Ce]||Ce),Ce}o(ut,"lex");for(var Et,ft,yt,nt,dn,Tt,On={},tn,_r,Dr,Pn;;){if(yt=ve[ve.length-1],this.defaultActions[yt]?nt=this.defaultActions[yt]:((Et===null||typeof Et>"u")&&(Et=ut()),nt=Ve[yt]&&Ve[yt][Et]),typeof nt>"u"||!nt.length||!nt[0]){var At="";Pn=[];for(tn in Ve[yt])this.terminals_[tn]&&tn>st&&Pn.push("'"+this.terminals_[tn]+"'");We.showPosition?At="Parse error on line "+(qe+1)+`:
+`+We.showPosition()+`
+Expecting `+Pn.join(", ")+", got '"+(this.terminals_[Et]||Et)+"'":At="Parse error on line "+(qe+1)+": Unexpected "+(Et==Ue?"end of input":"'"+(this.terminals_[Et]||Et)+"'"),this.parseError(At,{text:We.match,token:this.terminals_[Et]||Et,line:We.yylineno,loc:bt,expected:Pn})}if(nt[0]instanceof Array&&nt.length>1)throw new Error("Parse Error: multiple actions possible at state: "+yt+", token: "+Et);switch(nt[0]){case 1:ve.push(Et),_e.push(We.yytext),we.push(We.yylloc),ve.push(nt[1]),Et=null,ft?(Et=ft,ft=null):(at=We.yyleng,De=We.yytext,qe=We.yylineno,bt=We.yylloc,Rt>0&&Rt--);break;case 2:if(_r=this.productions_[nt[1]][1],On.$=_e[_e.length-_r],On._$={first_line:we[we.length-(_r||1)].first_line,last_line:we[we.length-1].last_line,first_column:we[we.length-(_r||1)].first_column,last_column:we[we.length-1].last_column},Mt&&(On._$.range=[we[we.length-(_r||1)].range[0],we[we.length-1].range[1]]),Tt=this.performAction.apply(On,[De,at,qe,ot.yy,nt[1],_e,we].concat(ct)),typeof Tt<"u")return Tt;_r&&(ve=ve.slice(0,-1*_r*2),_e=_e.slice(0,-1*_r),we=we.slice(0,-1*_r)),ve.push(this.productions_[nt[1]][0]),_e.push(On.$),we.push(On._$),Dr=Ve[ve[ve.length-2]][ve[ve.length-1]],ve.push(Dr);break;case 3:return!0}}return!0},"parse")},oe=function(){var xe={EOF:1,parseError:o(function(pe,ve){if(this.yy.parser)this.yy.parser.parseError(pe,ve);else throw new Error(pe)},"parseError"),setInput:o(function(q,pe){return this.yy=pe||this.yy||{},this._input=q,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var q=this._input[0];this.yytext+=q,this.yyleng++,this.offset++,this.match+=q,this.matched+=q;var pe=q.match(/(?:\r\n?|\n).*/g);return pe?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),q},"input"),unput:o(function(q){var pe=q.length,ve=q.split(/(?:\r\n?|\n)/g);this._input=q+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-pe),this.offset-=pe;var Pe=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),ve.length-1&&(this.yylineno-=ve.length-1);var _e=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:ve?(ve.length===Pe.length?this.yylloc.first_column:0)+Pe[Pe.length-ve.length].length-ve[0].length:this.yylloc.first_column-pe},this.options.ranges&&(this.yylloc.range=[_e[0],_e[0]+this.yyleng-pe]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
+`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(q){this.unput(this.match.slice(q))},"less"),pastInput:o(function(){var q=this.matched.substr(0,this.matched.length-this.match.length);return(q.length>20?"...":"")+q.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var q=this.match;return q.length<20&&(q+=this._input.substr(0,20-q.length)),(q.substr(0,20)+(q.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var q=this.pastInput(),pe=new Array(q.length+1).join("-");return q+this.upcomingInput()+`
+`+pe+"^"},"showPosition"),test_match:o(function(q,pe){var ve,Pe,_e;if(this.options.backtrack_lexer&&(_e={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(_e.yylloc.range=this.yylloc.range.slice(0))),Pe=q[0].match(/(?:\r\n?|\n).*/g),Pe&&(this.yylineno+=Pe.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:Pe?Pe[Pe.length-1].length-Pe[Pe.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+q[0].length},this.yytext+=q[0],this.match+=q[0],this.matches=q,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(q[0].length),this.matched+=q[0],ve=this.performAction.call(this,this.yy,this,pe,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),ve)return ve;if(this._backtrack){for(var we in _e)this[we]=_e[we];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var q,pe,ve,Pe;this._more||(this.yytext="",this.match="");for(var _e=this._currentRules(),we=0;we<_e.length;we++)if(ve=this._input.match(this.rules[_e[we]]),ve&&(!pe||ve[0].length>pe[0].length)){if(pe=ve,Pe=we,this.options.backtrack_lexer){if(q=this.test_match(ve,_e[we]),q!==!1)return q;if(this._backtrack){pe=!1;continue}else return!1}else if(!this.options.flex)break}return pe?(q=this.test_match(pe,_e[Pe]),q!==!1?q:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text.
+`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var pe=this.next();return pe||this.lex()},"lex"),begin:o(function(pe){this.conditionStack.push(pe)},"begin"),popState:o(function(){var pe=this.conditionStack.length-1;return pe>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(pe){return pe=this.conditionStack.length-1-Math.abs(pe||0),pe>=0?this.conditionStack[pe]:"INITIAL"},"topState"),pushState:o(function(pe){this.begin(pe)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(pe,ve,Pe,_e){var we=_e;switch(Pe){case 0:break;case 1:break;case 2:return 55;case 3:break;case 4:return this.begin("title"),35;break;case 5:return this.popState(),"title_value";break;case 6:return this.begin("acc_title"),37;break;case 7:return this.popState(),"acc_title_value";break;case 8:return this.begin("acc_descr"),39;break;case 9:return this.popState(),"acc_descr_value";break;case 10:this.begin("acc_descr_multiline");break;case 11:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:return 48;case 14:return 50;case 15:return 49;case 16:return 51;case 17:return 52;case 18:return 53;case 19:return 54;case 20:return 25;case 21:this.begin("md_string");break;case 22:return"MD_STR";case 23:this.popState();break;case 24:this.begin("string");break;case 25:this.popState();break;case 26:return"STR";case 27:this.begin("class_name");break;case 28:return this.popState(),47;break;case 29:return this.begin("point_start"),44;break;case 30:return this.begin("point_x"),45;break;case 31:this.popState();break;case 32:this.popState(),this.begin("point_y");break;case 33:return this.popState(),46;break;case 34:return 28;case 35:return 4;case 36:return 11;case 37:return 64;case 38:return 10;case 39:return 65;case 40:return 65;case 41:return 14;case 42:return 13;case 43:return 67;case 44:return 66;case 45:return 12;case 46:return 8;case 47:return 5;case 48:return 18;case 49:return 56;case 50:return 63;case 51:return 57}},"anonymous"),rules:[/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/i,/^(?:title\b)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?: *x-axis *)/i,/^(?: *y-axis *)/i,/^(?: *--+> *)/i,/^(?: *quadrant-1 *)/i,/^(?: *quadrant-2 *)/i,/^(?: *quadrant-3 *)/i,/^(?: *quadrant-4 *)/i,/^(?:classDef\b)/i,/^(?:["][`])/i,/^(?:[^`"]+)/i,/^(?:[`]["])/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?::::)/i,/^(?:^\w+)/i,/^(?:\s*:\s*\[\s*)/i,/^(?:(1)|(0(.\d+)?))/i,/^(?:\s*\] *)/i,/^(?:\s*,\s*)/i,/^(?:(1)|(0(.\d+)?))/i,/^(?: *quadrantChart *)/i,/^(?:[A-Za-z]+)/i,/^(?::)/i,/^(?:\+)/i,/^(?:,)/i,/^(?:=)/i,/^(?:=)/i,/^(?:\*)/i,/^(?:#)/i,/^(?:[\_])/i,/^(?:\.)/i,/^(?:&)/i,/^(?:-)/i,/^(?:[0-9]+)/i,/^(?:\s)/i,/^(?:;)/i,/^(?:[!"#$%&'*+,-.`?\\_/])/i,/^(?:$)/i],conditions:{class_name:{rules:[28],inclusive:!1},point_y:{rules:[33],inclusive:!1},point_x:{rules:[32],inclusive:!1},point_start:{rules:[30,31],inclusive:!1},acc_descr_multiline:{rules:[11,12],inclusive:!1},acc_descr:{rules:[9],inclusive:!1},acc_title:{rules:[7],inclusive:!1},title:{rules:[5],inclusive:!1},md_string:{rules:[22,23],inclusive:!1},string:{rules:[25,26],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,6,8,10,13,14,15,16,17,18,19,20,21,24,27,29,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51],inclusive:!0}}};return xe}();re.lexer=oe;function V(){this.yy={}}return o(V,"Parser"),V.prototype=re,re.Parser=V,new V}();hO.parser=hO;uhe=hO});var ms,y6,fhe=N(()=>{"use strict";dr();Ya();vt();_y();ms=oh(),y6=class{constructor(){this.classes=new Map;this.config=this.getDefaultConfig(),this.themeConfig=this.getDefaultThemeConfig(),this.data=this.getDefaultData()}static{o(this,"QuadrantBuilder")}getDefaultData(){return{titleText:"",quadrant1Text:"",quadrant2Text:"",quadrant3Text:"",quadrant4Text:"",xAxisLeftText:"",xAxisRightText:"",yAxisBottomText:"",yAxisTopText:"",points:[]}}getDefaultConfig(){return{showXAxis:!0,showYAxis:!0,showTitle:!0,chartHeight:or.quadrantChart?.chartWidth||500,chartWidth:or.quadrantChart?.chartHeight||500,titlePadding:or.quadrantChart?.titlePadding||10,titleFontSize:or.quadrantChart?.titleFontSize||20,quadrantPadding:or.quadrantChart?.quadrantPadding||5,xAxisLabelPadding:or.quadrantChart?.xAxisLabelPadding||5,yAxisLabelPadding:or.quadrantChart?.yAxisLabelPadding||5,xAxisLabelFontSize:or.quadrantChart?.xAxisLabelFontSize||16,yAxisLabelFontSize:or.quadrantChart?.yAxisLabelFontSize||16,quadrantLabelFontSize:or.quadrantChart?.quadrantLabelFontSize||16,quadrantTextTopPadding:or.quadrantChart?.quadrantTextTopPadding||5,pointTextPadding:or.quadrantChart?.pointTextPadding||5,pointLabelFontSize:or.quadrantChart?.pointLabelFontSize||12,pointRadius:or.quadrantChart?.pointRadius||5,xAxisPosition:or.quadrantChart?.xAxisPosition||"top",yAxisPosition:or.quadrantChart?.yAxisPosition||"left",quadrantInternalBorderStrokeWidth:or.quadrantChart?.quadrantInternalBorderStrokeWidth||1,quadrantExternalBorderStrokeWidth:or.quadrantChart?.quadrantExternalBorderStrokeWidth||2}}getDefaultThemeConfig(){return{quadrant1Fill:ms.quadrant1Fill,quadrant2Fill:ms.quadrant2Fill,quadrant3Fill:ms.quadrant3Fill,quadrant4Fill:ms.quadrant4Fill,quadrant1TextFill:ms.quadrant1TextFill,quadrant2TextFill:ms.quadrant2TextFill,quadrant3TextFill:ms.quadrant3TextFill,quadrant4TextFill:ms.quadrant4TextFill,quadrantPointFill:ms.quadrantPointFill,quadrantPointTextFill:ms.quadrantPointTextFill,quadrantXAxisTextFill:ms.quadrantXAxisTextFill,quadrantYAxisTextFill:ms.quadrantYAxisTextFill,quadrantTitleFill:ms.quadrantTitleFill,quadrantInternalBorderStrokeFill:ms.quadrantInternalBorderStrokeFill,quadrantExternalBorderStrokeFill:ms.quadrantExternalBorderStrokeFill}}clear(){this.config=this.getDefaultConfig(),this.themeConfig=this.getDefaultThemeConfig(),this.data=this.getDefaultData(),this.classes=new Map,Y.info("clear called")}setData(e){this.data={...this.data,...e}}addPoints(e){this.data.points=[...e,...this.data.points]}addClass(e,r){this.classes.set(e,r)}setConfig(e){Y.trace("setConfig called with: ",e),this.config={...this.config,...e}}setThemeConfig(e){Y.trace("setThemeConfig called with: ",e),this.themeConfig={...this.themeConfig,...e}}calculateSpace(e,r,n,i){let a=this.config.xAxisLabelPadding*2+this.config.xAxisLabelFontSize,s={top:e==="top"&&r?a:0,bottom:e==="bottom"&&r?a:0},l=this.config.yAxisLabelPadding*2+this.config.yAxisLabelFontSize,u={left:this.config.yAxisPosition==="left"&&n?l:0,right:this.config.yAxisPosition==="right"&&n?l:0},h=this.config.titleFontSize+this.config.titlePadding*2,f={top:i?h:0},d=this.config.quadrantPadding+u.left,p=this.config.quadrantPadding+s.top+f.top,m=this.config.chartWidth-this.config.quadrantPadding*2-u.left-u.right,g=this.config.chartHeight-this.config.quadrantPadding*2-s.top-s.bottom-f.top,y=m/2,v=g/2;return{xAxisSpace:s,yAxisSpace:u,titleSpace:f,quadrantSpace:{quadrantLeft:d,quadrantTop:p,quadrantWidth:m,quadrantHalfWidth:y,quadrantHeight:g,quadrantHalfHeight:v}}}getAxisLabels(e,r,n,i){let{quadrantSpace:a,titleSpace:s}=i,{quadrantHalfHeight:l,quadrantHeight:u,quadrantLeft:h,quadrantHalfWidth:f,quadrantTop:d,quadrantWidth:p}=a,m=!!this.data.xAxisRightText,g=!!this.data.yAxisTopText,y=[];return this.data.xAxisLeftText&&r&&y.push({text:this.data.xAxisLeftText,fill:this.themeConfig.quadrantXAxisTextFill,x:h+(m?f/2:0),y:e==="top"?this.config.xAxisLabelPadding+s.top:this.config.xAxisLabelPadding+d+u+this.config.quadrantPadding,fontSize:this.config.xAxisLabelFontSize,verticalPos:m?"center":"left",horizontalPos:"top",rotation:0}),this.data.xAxisRightText&&r&&y.push({text:this.data.xAxisRightText,fill:this.themeConfig.quadrantXAxisTextFill,x:h+f+(m?f/2:0),y:e==="top"?this.config.xAxisLabelPadding+s.top:this.config.xAxisLabelPadding+d+u+this.config.quadrantPadding,fontSize:this.config.xAxisLabelFontSize,verticalPos:m?"center":"left",horizontalPos:"top",rotation:0}),this.data.yAxisBottomText&&n&&y.push({text:this.data.yAxisBottomText,fill:this.themeConfig.quadrantYAxisTextFill,x:this.config.yAxisPosition==="left"?this.config.yAxisLabelPadding:this.config.yAxisLabelPadding+h+p+this.config.quadrantPadding,y:d+u-(g?l/2:0),fontSize:this.config.yAxisLabelFontSize,verticalPos:g?"center":"left",horizontalPos:"top",rotation:-90}),this.data.yAxisTopText&&n&&y.push({text:this.data.yAxisTopText,fill:this.themeConfig.quadrantYAxisTextFill,x:this.config.yAxisPosition==="left"?this.config.yAxisLabelPadding:this.config.yAxisLabelPadding+h+p+this.config.quadrantPadding,y:d+l-(g?l/2:0),fontSize:this.config.yAxisLabelFontSize,verticalPos:g?"center":"left",horizontalPos:"top",rotation:-90}),y}getQuadrants(e){let{quadrantSpace:r}=e,{quadrantHalfHeight:n,quadrantLeft:i,quadrantHalfWidth:a,quadrantTop:s}=r,l=[{text:{text:this.data.quadrant1Text,fill:this.themeConfig.quadrant1TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:i+a,y:s,width:a,height:n,fill:this.themeConfig.quadrant1Fill},{text:{text:this.data.quadrant2Text,fill:this.themeConfig.quadrant2TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:i,y:s,width:a,height:n,fill:this.themeConfig.quadrant2Fill},{text:{text:this.data.quadrant3Text,fill:this.themeConfig.quadrant3TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:i,y:s+n,width:a,height:n,fill:this.themeConfig.quadrant3Fill},{text:{text:this.data.quadrant4Text,fill:this.themeConfig.quadrant4TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:i+a,y:s+n,width:a,height:n,fill:this.themeConfig.quadrant4Fill}];for(let u of l)u.text.x=u.x+u.width/2,this.data.points.length===0?(u.text.y=u.y+u.height/2,u.text.horizontalPos="middle"):(u.text.y=u.y+this.config.quadrantTextTopPadding,u.text.horizontalPos="top");return l}getQuadrantPoints(e){let{quadrantSpace:r}=e,{quadrantHeight:n,quadrantLeft:i,quadrantTop:a,quadrantWidth:s}=r,l=gl().domain([0,1]).range([i,s+i]),u=gl().domain([0,1]).range([n+a,a]);return this.data.points.map(f=>{let d=this.classes.get(f.className);return d&&(f={...d,...f}),{x:l(f.x),y:u(f.y),fill:f.color??this.themeConfig.quadrantPointFill,radius:f.radius??this.config.pointRadius,text:{text:f.text,fill:this.themeConfig.quadrantPointTextFill,x:l(f.x),y:u(f.y)+this.config.pointTextPadding,verticalPos:"center",horizontalPos:"top",fontSize:this.config.pointLabelFontSize,rotation:0},strokeColor:f.strokeColor??this.themeConfig.quadrantPointFill,strokeWidth:f.strokeWidth??"0px"}})}getBorders(e){let r=this.config.quadrantExternalBorderStrokeWidth/2,{quadrantSpace:n}=e,{quadrantHalfHeight:i,quadrantHeight:a,quadrantLeft:s,quadrantHalfWidth:l,quadrantTop:u,quadrantWidth:h}=n;return[{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:s-r,y1:u,x2:s+h+r,y2:u},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:s+h,y1:u+r,x2:s+h,y2:u+a-r},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:s-r,y1:u+a,x2:s+h+r,y2:u+a},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:s,y1:u+r,x2:s,y2:u+a-r},{strokeFill:this.themeConfig.quadrantInternalBorderStrokeFill,strokeWidth:this.config.quadrantInternalBorderStrokeWidth,x1:s+l,y1:u+r,x2:s+l,y2:u+a-r},{strokeFill:this.themeConfig.quadrantInternalBorderStrokeFill,strokeWidth:this.config.quadrantInternalBorderStrokeWidth,x1:s+r,y1:u+i,x2:s+h-r,y2:u+i}]}getTitle(e){if(e)return{text:this.data.titleText,fill:this.themeConfig.quadrantTitleFill,fontSize:this.config.titleFontSize,horizontalPos:"top",verticalPos:"center",rotation:0,y:this.config.titlePadding,x:this.config.chartWidth/2}}build(){let e=this.config.showXAxis&&!!(this.data.xAxisLeftText||this.data.xAxisRightText),r=this.config.showYAxis&&!!(this.data.yAxisTopText||this.data.yAxisBottomText),n=this.config.showTitle&&!!this.data.titleText,i=this.data.points.length>0?"bottom":this.config.xAxisPosition,a=this.calculateSpace(i,e,r,n);return{points:this.getQuadrantPoints(a),quadrants:this.getQuadrants(a),axisLabels:this.getAxisLabels(i,e,r,a),borderLines:this.getBorders(a),title:this.getTitle(n)}}}});function fO(t){return!/^#?([\dA-Fa-f]{6}|[\dA-Fa-f]{3})$/.test(t)}function dhe(t){return!/^\d+$/.test(t)}function phe(t){return!/^\d+px$/.test(t)}var Ap,mhe=N(()=>{"use strict";Ap=class extends Error{static{o(this,"InvalidStyleError")}constructor(e,r,n){super(`value for ${e} ${r} is invalid, please use a valid ${n}`),this.name="InvalidStyleError"}};o(fO,"validateHexCode");o(dhe,"validateNumber");o(phe,"validateSizeInPixels")});function Xu(t){return Tr(t.trim(),pGe)}function mGe(t){ba.setData({quadrant1Text:Xu(t.text)})}function gGe(t){ba.setData({quadrant2Text:Xu(t.text)})}function yGe(t){ba.setData({quadrant3Text:Xu(t.text)})}function vGe(t){ba.setData({quadrant4Text:Xu(t.text)})}function xGe(t){ba.setData({xAxisLeftText:Xu(t.text)})}function bGe(t){ba.setData({xAxisRightText:Xu(t.text)})}function wGe(t){ba.setData({yAxisTopText:Xu(t.text)})}function TGe(t){ba.setData({yAxisBottomText:Xu(t.text)})}function dO(t){let e={};for(let r of t){let[n,i]=r.trim().split(/\s*:\s*/);if(n==="radius"){if(dhe(i))throw new Ap(n,i,"number");e.radius=parseInt(i)}else if(n==="color"){if(fO(i))throw new Ap(n,i,"hex code");e.color=i}else if(n==="stroke-color"){if(fO(i))throw new Ap(n,i,"hex code");e.strokeColor=i}else if(n==="stroke-width"){if(phe(i))throw new Ap(n,i,"number of pixels (eg. 10px)");e.strokeWidth=i}else throw new Error(`style named ${n} is not supported.`)}return e}function kGe(t,e,r,n,i){let a=dO(i);ba.addPoints([{x:r,y:n,text:Xu(t.text),className:e,...a}])}function EGe(t,e){ba.addClass(t,dO(e))}function SGe(t){ba.setConfig({chartWidth:t})}function CGe(t){ba.setConfig({chartHeight:t})}function AGe(){let t=me(),{themeVariables:e,quadrantChart:r}=t;return r&&ba.setConfig(r),ba.setThemeConfig({quadrant1Fill:e.quadrant1Fill,quadrant2Fill:e.quadrant2Fill,quadrant3Fill:e.quadrant3Fill,quadrant4Fill:e.quadrant4Fill,quadrant1TextFill:e.quadrant1TextFill,quadrant2TextFill:e.quadrant2TextFill,quadrant3TextFill:e.quadrant3TextFill,quadrant4TextFill:e.quadrant4TextFill,quadrantPointFill:e.quadrantPointFill,quadrantPointTextFill:e.quadrantPointTextFill,quadrantXAxisTextFill:e.quadrantXAxisTextFill,quadrantYAxisTextFill:e.quadrantYAxisTextFill,quadrantExternalBorderStrokeFill:e.quadrantExternalBorderStrokeFill,quadrantInternalBorderStrokeFill:e.quadrantInternalBorderStrokeFill,quadrantTitleFill:e.quadrantTitleFill}),ba.setData({titleText:Ir()}),ba.build()}var pGe,ba,_Ge,ghe,yhe=N(()=>{"use strict";zt();gr();mi();fhe();mhe();pGe=me();o(Xu,"textSanitizer");ba=new y6;o(mGe,"setQuadrant1Text");o(gGe,"setQuadrant2Text");o(yGe,"setQuadrant3Text");o(vGe,"setQuadrant4Text");o(xGe,"setXAxisLeftText");o(bGe,"setXAxisRightText");o(wGe,"setYAxisTopText");o(TGe,"setYAxisBottomText");o(dO,"parseStyles");o(kGe,"addPoint");o(EGe,"addClass");o(SGe,"setWidth");o(CGe,"setHeight");o(AGe,"getQuadrantData");_Ge=o(function(){ba.clear(),Ar()},"clear"),ghe={setWidth:SGe,setHeight:CGe,setQuadrant1Text:mGe,setQuadrant2Text:gGe,setQuadrant3Text:yGe,setQuadrant4Text:vGe,setXAxisLeftText:xGe,setXAxisRightText:bGe,setYAxisTopText:wGe,setYAxisBottomText:TGe,parseStyles:dO,addPoint:kGe,addClass:EGe,getQuadrantData:AGe,clear:_Ge,setAccTitle:Lr,getAccTitle:Rr,setDiagramTitle:$r,getDiagramTitle:Ir,getAccDescription:Mr,setAccDescription:Nr}});var DGe,vhe,xhe=N(()=>{"use strict";dr();zt();vt();Ei();DGe=o((t,e,r,n)=>{function i(S){return S==="top"?"hanging":"middle"}o(i,"getDominantBaseLine");function a(S){return S==="left"?"start":"middle"}o(a,"getTextAnchor");function s(S){return`translate(${S.x}, ${S.y}) rotate(${S.rotation||0})`}o(s,"getTransformation");let l=me();Y.debug(`Rendering quadrant chart
+`+t);let u=l.securityLevel,h;u==="sandbox"&&(h=Ge("#i"+e));let d=(u==="sandbox"?Ge(h.nodes()[0].contentDocument.body):Ge("body")).select(`[id="${e}"]`),p=d.append("g").attr("class","main"),m=l.quadrantChart?.chartWidth??500,g=l.quadrantChart?.chartHeight??500;vn(d,g,m,l.quadrantChart?.useMaxWidth??!0),d.attr("viewBox","0 0 "+m+" "+g),n.db.setHeight(g),n.db.setWidth(m);let y=n.db.getQuadrantData(),v=p.append("g").attr("class","quadrants"),x=p.append("g").attr("class","border"),b=p.append("g").attr("class","data-points"),w=p.append("g").attr("class","labels"),C=p.append("g").attr("class","title");y.title&&C.append("text").attr("x",0).attr("y",0).attr("fill",y.title.fill).attr("font-size",y.title.fontSize).attr("dominant-baseline",i(y.title.horizontalPos)).attr("text-anchor",a(y.title.verticalPos)).attr("transform",s(y.title)).text(y.title.text),y.borderLines&&x.selectAll("line").data(y.borderLines).enter().append("line").attr("x1",S=>S.x1).attr("y1",S=>S.y1).attr("x2",S=>S.x2).attr("y2",S=>S.y2).style("stroke",S=>S.strokeFill).style("stroke-width",S=>S.strokeWidth);let T=v.selectAll("g.quadrant").data(y.quadrants).enter().append("g").attr("class","quadrant");T.append("rect").attr("x",S=>S.x).attr("y",S=>S.y).attr("width",S=>S.width).attr("height",S=>S.height).attr("fill",S=>S.fill),T.append("text").attr("x",0).attr("y",0).attr("fill",S=>S.text.fill).attr("font-size",S=>S.text.fontSize).attr("dominant-baseline",S=>i(S.text.horizontalPos)).attr("text-anchor",S=>a(S.text.verticalPos)).attr("transform",S=>s(S.text)).text(S=>S.text.text),w.selectAll("g.label").data(y.axisLabels).enter().append("g").attr("class","label").append("text").attr("x",0).attr("y",0).text(S=>S.text).attr("fill",S=>S.fill).attr("font-size",S=>S.fontSize).attr("dominant-baseline",S=>i(S.horizontalPos)).attr("text-anchor",S=>a(S.verticalPos)).attr("transform",S=>s(S));let A=b.selectAll("g.data-point").data(y.points).enter().append("g").attr("class","data-point");A.append("circle").attr("cx",S=>S.x).attr("cy",S=>S.y).attr("r",S=>S.radius).attr("fill",S=>S.fill).attr("stroke",S=>S.strokeColor).attr("stroke-width",S=>S.strokeWidth),A.append("text").attr("x",0).attr("y",0).text(S=>S.text.text).attr("fill",S=>S.text.fill).attr("font-size",S=>S.text.fontSize).attr("dominant-baseline",S=>i(S.text.horizontalPos)).attr("text-anchor",S=>a(S.text.verticalPos)).attr("transform",S=>s(S.text))},"draw"),vhe={draw:DGe}});var bhe={};hr(bhe,{diagram:()=>LGe});var LGe,whe=N(()=>{"use strict";hhe();yhe();xhe();LGe={parser:uhe,db:ghe,renderer:vhe,styles:o(()=>"","styles")}});var pO,Ehe,She=N(()=>{"use strict";pO=function(){var t=o(function(O,M,B,F){for(B=B||{},F=O.length;F--;B[O[F]]=M);return B},"o"),e=[1,10,12,14,16,18,19,21,23],r=[2,6],n=[1,3],i=[1,5],a=[1,6],s=[1,7],l=[1,5,10,12,14,16,18,19,21,23,34,35,36],u=[1,25],h=[1,26],f=[1,28],d=[1,29],p=[1,30],m=[1,31],g=[1,32],y=[1,33],v=[1,34],x=[1,35],b=[1,36],w=[1,37],C=[1,43],T=[1,42],E=[1,47],A=[1,50],S=[1,10,12,14,16,18,19,21,23,34,35,36],_=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36],I=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36,41,42,43,44,45,46,47,48,49,50],D=[1,64],k={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,eol:4,XYCHART:5,chartConfig:6,document:7,CHART_ORIENTATION:8,statement:9,title:10,text:11,X_AXIS:12,parseXAxis:13,Y_AXIS:14,parseYAxis:15,LINE:16,plotData:17,BAR:18,acc_title:19,acc_title_value:20,acc_descr:21,acc_descr_value:22,acc_descr_multiline_value:23,SQUARE_BRACES_START:24,commaSeparatedNumbers:25,SQUARE_BRACES_END:26,NUMBER_WITH_DECIMAL:27,COMMA:28,xAxisData:29,bandData:30,ARROW_DELIMITER:31,commaSeparatedTexts:32,yAxisData:33,NEWLINE:34,SEMI:35,EOF:36,alphaNum:37,STR:38,MD_STR:39,alphaNumToken:40,AMP:41,NUM:42,ALPHA:43,PLUS:44,EQUALS:45,MULT:46,DOT:47,BRKT:48,MINUS:49,UNDERSCORE:50,$accept:0,$end:1},terminals_:{2:"error",5:"XYCHART",8:"CHART_ORIENTATION",10:"title",12:"X_AXIS",14:"Y_AXIS",16:"LINE",18:"BAR",19:"acc_title",20:"acc_title_value",21:"acc_descr",22:"acc_descr_value",23:"acc_descr_multiline_value",24:"SQUARE_BRACES_START",26:"SQUARE_BRACES_END",27:"NUMBER_WITH_DECIMAL",28:"COMMA",31:"ARROW_DELIMITER",34:"NEWLINE",35:"SEMI",36:"EOF",38:"STR",39:"MD_STR",41:"AMP",42:"NUM",43:"ALPHA",44:"PLUS",45:"EQUALS",46:"MULT",47:"DOT",48:"BRKT",49:"MINUS",50:"UNDERSCORE"},productions_:[0,[3,2],[3,3],[3,2],[3,1],[6,1],[7,0],[7,2],[9,2],[9,2],[9,2],[9,2],[9,2],[9,3],[9,2],[9,3],[9,2],[9,2],[9,1],[17,3],[25,3],[25,1],[13,1],[13,2],[13,1],[29,1],[29,3],[30,3],[32,3],[32,1],[15,1],[15,2],[15,1],[33,3],[4,1],[4,1],[4,1],[11,1],[11,1],[11,1],[37,1],[37,2],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1]],performAction:o(function(M,B,F,P,z,$,H){var Q=$.length-1;switch(z){case 5:P.setOrientation($[Q]);break;case 9:P.setDiagramTitle($[Q].text.trim());break;case 12:P.setLineData({text:"",type:"text"},$[Q]);break;case 13:P.setLineData($[Q-1],$[Q]);break;case 14:P.setBarData({text:"",type:"text"},$[Q]);break;case 15:P.setBarData($[Q-1],$[Q]);break;case 16:this.$=$[Q].trim(),P.setAccTitle(this.$);break;case 17:case 18:this.$=$[Q].trim(),P.setAccDescription(this.$);break;case 19:this.$=$[Q-1];break;case 20:this.$=[Number($[Q-2]),...$[Q]];break;case 21:this.$=[Number($[Q])];break;case 22:P.setXAxisTitle($[Q]);break;case 23:P.setXAxisTitle($[Q-1]);break;case 24:P.setXAxisTitle({type:"text",text:""});break;case 25:P.setXAxisBand($[Q]);break;case 26:P.setXAxisRangeData(Number($[Q-2]),Number($[Q]));break;case 27:this.$=$[Q-1];break;case 28:this.$=[$[Q-2],...$[Q]];break;case 29:this.$=[$[Q]];break;case 30:P.setYAxisTitle($[Q]);break;case 31:P.setYAxisTitle($[Q-1]);break;case 32:P.setYAxisTitle({type:"text",text:""});break;case 33:P.setYAxisRangeData(Number($[Q-2]),Number($[Q]));break;case 37:this.$={text:$[Q],type:"text"};break;case 38:this.$={text:$[Q],type:"text"};break;case 39:this.$={text:$[Q],type:"markdown"};break;case 40:this.$=$[Q];break;case 41:this.$=$[Q-1]+""+$[Q];break}},"anonymous"),table:[t(e,r,{3:1,4:2,7:4,5:n,34:i,35:a,36:s}),{1:[3]},t(e,r,{4:2,7:4,3:8,5:n,34:i,35:a,36:s}),t(e,r,{4:2,7:4,6:9,3:10,5:n,8:[1,11],34:i,35:a,36:s}),{1:[2,4],9:12,10:[1,13],12:[1,14],14:[1,15],16:[1,16],18:[1,17],19:[1,18],21:[1,19],23:[1,20]},t(l,[2,34]),t(l,[2,35]),t(l,[2,36]),{1:[2,1]},t(e,r,{4:2,7:4,3:21,5:n,34:i,35:a,36:s}),{1:[2,3]},t(l,[2,5]),t(e,[2,7],{4:22,34:i,35:a,36:s}),{11:23,37:24,38:u,39:h,40:27,41:f,42:d,43:p,44:m,45:g,46:y,47:v,48:x,49:b,50:w},{11:39,13:38,24:C,27:T,29:40,30:41,37:24,38:u,39:h,40:27,41:f,42:d,43:p,44:m,45:g,46:y,47:v,48:x,49:b,50:w},{11:45,15:44,27:E,33:46,37:24,38:u,39:h,40:27,41:f,42:d,43:p,44:m,45:g,46:y,47:v,48:x,49:b,50:w},{11:49,17:48,24:A,37:24,38:u,39:h,40:27,41:f,42:d,43:p,44:m,45:g,46:y,47:v,48:x,49:b,50:w},{11:52,17:51,24:A,37:24,38:u,39:h,40:27,41:f,42:d,43:p,44:m,45:g,46:y,47:v,48:x,49:b,50:w},{20:[1,53]},{22:[1,54]},t(S,[2,18]),{1:[2,2]},t(S,[2,8]),t(S,[2,9]),t(_,[2,37],{40:55,41:f,42:d,43:p,44:m,45:g,46:y,47:v,48:x,49:b,50:w}),t(_,[2,38]),t(_,[2,39]),t(I,[2,40]),t(I,[2,42]),t(I,[2,43]),t(I,[2,44]),t(I,[2,45]),t(I,[2,46]),t(I,[2,47]),t(I,[2,48]),t(I,[2,49]),t(I,[2,50]),t(I,[2,51]),t(S,[2,10]),t(S,[2,22],{30:41,29:56,24:C,27:T}),t(S,[2,24]),t(S,[2,25]),{31:[1,57]},{11:59,32:58,37:24,38:u,39:h,40:27,41:f,42:d,43:p,44:m,45:g,46:y,47:v,48:x,49:b,50:w},t(S,[2,11]),t(S,[2,30],{33:60,27:E}),t(S,[2,32]),{31:[1,61]},t(S,[2,12]),{17:62,24:A},{25:63,27:D},t(S,[2,14]),{17:65,24:A},t(S,[2,16]),t(S,[2,17]),t(I,[2,41]),t(S,[2,23]),{27:[1,66]},{26:[1,67]},{26:[2,29],28:[1,68]},t(S,[2,31]),{27:[1,69]},t(S,[2,13]),{26:[1,70]},{26:[2,21],28:[1,71]},t(S,[2,15]),t(S,[2,26]),t(S,[2,27]),{11:59,32:72,37:24,38:u,39:h,40:27,41:f,42:d,43:p,44:m,45:g,46:y,47:v,48:x,49:b,50:w},t(S,[2,33]),t(S,[2,19]),{25:73,27:D},{26:[2,28]},{26:[2,20]}],defaultActions:{8:[2,1],10:[2,3],21:[2,2],72:[2,28],73:[2,20]},parseError:o(function(M,B){if(B.recoverable)this.trace(M);else{var F=new Error(M);throw F.hash=B,F}},"parseError"),parse:o(function(M){var B=this,F=[0],P=[],z=[null],$=[],H=this.table,Q="",j=0,ie=0,ne=0,le=2,he=1,K=$.slice.call(arguments,1),X=Object.create(this.lexer),te={yy:{}};for(var J in this.yy)Object.prototype.hasOwnProperty.call(this.yy,J)&&(te.yy[J]=this.yy[J]);X.setInput(M,te.yy),te.yy.lexer=X,te.yy.parser=this,typeof X.yylloc>"u"&&(X.yylloc={});var se=X.yylloc;$.push(se);var ue=X.options&&X.options.ranges;typeof te.yy.parseError=="function"?this.parseError=te.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Z(re){F.length=F.length-2*re,z.length=z.length-re,$.length=$.length-re}o(Z,"popStack");function Se(){var re;return re=P.pop()||X.lex()||he,typeof re!="number"&&(re instanceof Array&&(P=re,re=P.pop()),re=B.symbols_[re]||re),re}o(Se,"lex");for(var ce,ae,Oe,ge,ze,He,$e={},Re,Ie,be,W;;){if(Oe=F[F.length-1],this.defaultActions[Oe]?ge=this.defaultActions[Oe]:((ce===null||typeof ce>"u")&&(ce=Se()),ge=H[Oe]&&H[Oe][ce]),typeof ge>"u"||!ge.length||!ge[0]){var de="";W=[];for(Re in H[Oe])this.terminals_[Re]&&Re>le&&W.push("'"+this.terminals_[Re]+"'");X.showPosition?de="Parse error on line "+(j+1)+`:
+`+X.showPosition()+`
+Expecting `+W.join(", ")+", got '"+(this.terminals_[ce]||ce)+"'":de="Parse error on line "+(j+1)+": Unexpected "+(ce==he?"end of input":"'"+(this.terminals_[ce]||ce)+"'"),this.parseError(de,{text:X.match,token:this.terminals_[ce]||ce,line:X.yylineno,loc:se,expected:W})}if(ge[0]instanceof Array&&ge.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Oe+", token: "+ce);switch(ge[0]){case 1:F.push(ce),z.push(X.yytext),$.push(X.yylloc),F.push(ge[1]),ce=null,ae?(ce=ae,ae=null):(ie=X.yyleng,Q=X.yytext,j=X.yylineno,se=X.yylloc,ne>0&&ne--);break;case 2:if(Ie=this.productions_[ge[1]][1],$e.$=z[z.length-Ie],$e._$={first_line:$[$.length-(Ie||1)].first_line,last_line:$[$.length-1].last_line,first_column:$[$.length-(Ie||1)].first_column,last_column:$[$.length-1].last_column},ue&&($e._$.range=[$[$.length-(Ie||1)].range[0],$[$.length-1].range[1]]),He=this.performAction.apply($e,[Q,ie,j,te.yy,ge[1],z,$].concat(K)),typeof He<"u")return He;Ie&&(F=F.slice(0,-1*Ie*2),z=z.slice(0,-1*Ie),$=$.slice(0,-1*Ie)),F.push(this.productions_[ge[1]][0]),z.push($e.$),$.push($e._$),be=H[F[F.length-2]][F[F.length-1]],F.push(be);break;case 3:return!0}}return!0},"parse")},L=function(){var O={EOF:1,parseError:o(function(B,F){if(this.yy.parser)this.yy.parser.parseError(B,F);else throw new Error(B)},"parseError"),setInput:o(function(M,B){return this.yy=B||this.yy||{},this._input=M,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var M=this._input[0];this.yytext+=M,this.yyleng++,this.offset++,this.match+=M,this.matched+=M;var B=M.match(/(?:\r\n?|\n).*/g);return B?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),M},"input"),unput:o(function(M){var B=M.length,F=M.split(/(?:\r\n?|\n)/g);this._input=M+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-B),this.offset-=B;var P=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),F.length-1&&(this.yylineno-=F.length-1);var z=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:F?(F.length===P.length?this.yylloc.first_column:0)+P[P.length-F.length].length-F[0].length:this.yylloc.first_column-B},this.options.ranges&&(this.yylloc.range=[z[0],z[0]+this.yyleng-B]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
+`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(M){this.unput(this.match.slice(M))},"less"),pastInput:o(function(){var M=this.matched.substr(0,this.matched.length-this.match.length);return(M.length>20?"...":"")+M.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var M=this.match;return M.length<20&&(M+=this._input.substr(0,20-M.length)),(M.substr(0,20)+(M.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var M=this.pastInput(),B=new Array(M.length+1).join("-");return M+this.upcomingInput()+`
+`+B+"^"},"showPosition"),test_match:o(function(M,B){var F,P,z;if(this.options.backtrack_lexer&&(z={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(z.yylloc.range=this.yylloc.range.slice(0))),P=M[0].match(/(?:\r\n?|\n).*/g),P&&(this.yylineno+=P.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:P?P[P.length-1].length-P[P.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+M[0].length},this.yytext+=M[0],this.match+=M[0],this.matches=M,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(M[0].length),this.matched+=M[0],F=this.performAction.call(this,this.yy,this,B,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),F)return F;if(this._backtrack){for(var $ in z)this[$]=z[$];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var M,B,F,P;this._more||(this.yytext="",this.match="");for(var z=this._currentRules(),$=0;$<z.length;$++)if(F=this._input.match(this.rules[z[$]]),F&&(!B||F[0].length>B[0].length)){if(B=F,P=$,this.options.backtrack_lexer){if(M=this.test_match(F,z[$]),M!==!1)return M;if(this._backtrack){B=!1;continue}else return!1}else if(!this.options.flex)break}return B?(M=this.test_match(B,z[P]),M!==!1?M:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text.
+`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var B=this.next();return B||this.lex()},"lex"),begin:o(function(B){this.conditionStack.push(B)},"begin"),popState:o(function(){var B=this.conditionStack.length-1;return B>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(B){return B=this.conditionStack.length-1-Math.abs(B||0),B>=0?this.conditionStack[B]:"INITIAL"},"topState"),pushState:o(function(B){this.begin(B)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(B,F,P,z){var $=z;switch(P){case 0:break;case 1:break;case 2:return this.popState(),34;break;case 3:return this.popState(),34;break;case 4:return 34;case 5:break;case 6:return 10;case 7:return this.pushState("acc_title"),19;break;case 8:return this.popState(),"acc_title_value";break;case 9:return this.pushState("acc_descr"),21;break;case 10:return this.popState(),"acc_descr_value";break;case 11:this.pushState("acc_descr_multiline");break;case 12:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:return 5;case 15:return 8;case 16:return this.pushState("axis_data"),"X_AXIS";break;case 17:return this.pushState("axis_data"),"Y_AXIS";break;case 18:return this.pushState("axis_band_data"),24;break;case 19:return 31;case 20:return this.pushState("data"),16;break;case 21:return this.pushState("data"),18;break;case 22:return this.pushState("data_inner"),24;break;case 23:return 27;case 24:return this.popState(),26;break;case 25:this.popState();break;case 26:this.pushState("string");break;case 27:this.popState();break;case 28:return"STR";case 29:return 24;case 30:return 26;case 31:return 43;case 32:return"COLON";case 33:return 44;case 34:return 28;case 35:return 45;case 36:return 46;case 37:return 48;case 38:return 50;case 39:return 47;case 40:return 41;case 41:return 49;case 42:return 42;case 43:break;case 44:return 35;case 45:return 36}},"anonymous"),rules:[/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:(\r?\n))/i,/^(?:(\r?\n))/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/i,/^(?:title\b)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:\{)/i,/^(?:[^\}]*)/i,/^(?:xychart-beta\b)/i,/^(?:(?:vertical|horizontal))/i,/^(?:x-axis\b)/i,/^(?:y-axis\b)/i,/^(?:\[)/i,/^(?:-->)/i,/^(?:line\b)/i,/^(?:bar\b)/i,/^(?:\[)/i,/^(?:[+-]?(?:\d+(?:\.\d+)?|\.\d+))/i,/^(?:\])/i,/^(?:(?:`\)                                    \{ this\.pushState\(md_string\); \}\n<md_string>\(\?:\(\?!`"\)\.\)\+                  \{ return MD_STR; \}\n<md_string>\(\?:`))/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:\[)/i,/^(?:\])/i,/^(?:[A-Za-z]+)/i,/^(?::)/i,/^(?:\+)/i,/^(?:,)/i,/^(?:=)/i,/^(?:\*)/i,/^(?:#)/i,/^(?:[\_])/i,/^(?:\.)/i,/^(?:&)/i,/^(?:-)/i,/^(?:[0-9]+)/i,/^(?:\s+)/i,/^(?:;)/i,/^(?:$)/i],conditions:{data_inner:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,20,21,23,24,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0},data:{rules:[0,1,3,4,5,6,7,9,11,14,15,16,17,20,21,22,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0},axis_band_data:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,20,21,24,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0},axis_data:{rules:[0,1,2,4,5,6,7,9,11,14,15,16,17,18,19,20,21,23,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0},acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},title:{rules:[],inclusive:!1},md_string:{rules:[],inclusive:!1},string:{rules:[27,28],inclusive:!1},INITIAL:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,20,21,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0}}};return O}();k.lexer=L;function R(){this.yy={}}return o(R,"Parser"),R.prototype=k,k.Parser=R,new R}();pO.parser=pO;Ehe=pO});function mO(t){return t.type==="bar"}function v6(t){return t.type==="band"}function S1(t){return t.type==="linear"}var x6=N(()=>{"use strict";o(mO,"isBarPlot");o(v6,"isBandAxisData");o(S1,"isLinearAxisData")});var C1,gO=N(()=>{"use strict";to();C1=class{constructor(e){this.parentGroup=e}static{o(this,"TextDimensionCalculatorWithFont")}getMaxDimension(e,r){if(!this.parentGroup)return{width:e.reduce((a,s)=>Math.max(s.length,a),0)*r,height:r};let n={width:0,height:0},i=this.parentGroup.append("g").attr("visibility","hidden").attr("font-size",r);for(let a of e){let s=sK(i,1,a),l=s?s.width:a.length*r,u=s?s.height:r;n.width=Math.max(n.width,l),n.height=Math.max(n.height,u)}return i.remove(),n}}});var A1,yO=N(()=>{"use strict";A1=class{constructor(e,r,n,i){this.axisConfig=e;this.title=r;this.textDimensionCalculator=n;this.axisThemeConfig=i;this.boundingRect={x:0,y:0,width:0,height:0};this.axisPosition="left";this.showTitle=!1;this.showLabel=!1;this.showTick=!1;this.showAxisLine=!1;this.outerPadding=0;this.titleTextHeight=0;this.labelTextHeight=0;this.range=[0,10],this.boundingRect={x:0,y:0,width:0,height:0},this.axisPosition="left"}static{o(this,"BaseAxis")}setRange(e){this.range=e,this.axisPosition==="left"||this.axisPosition==="right"?this.boundingRect.height=e[1]-e[0]:this.boundingRect.width=e[1]-e[0],this.recalculateScale()}getRange(){return[this.range[0]+this.outerPadding,this.range[1]-this.outerPadding]}setAxisPosition(e){this.axisPosition=e,this.setRange(this.range)}getTickDistance(){let e=this.getRange();return Math.abs(e[0]-e[1])/this.getTickValues().length}getAxisOuterPadding(){return this.outerPadding}getLabelDimension(){return this.textDimensionCalculator.getMaxDimension(this.getTickValues().map(e=>e.toString()),this.axisConfig.labelFontSize)}recalculateOuterPaddingToDrawBar(){.7*this.getTickDistance()>this.outerPadding*2&&(this.outerPadding=Math.floor(.7*this.getTickDistance()/2)),this.recalculateScale()}calculateSpaceIfDrawnHorizontally(e){let r=e.height;if(this.axisConfig.showAxisLine&&r>this.axisConfig.axisLineWidth&&(r-=this.axisConfig.axisLineWidth,this.showAxisLine=!0),this.axisConfig.showLabel){let n=this.getLabelDimension(),i=.2*e.width;this.outerPadding=Math.min(n.width/2,i);let a=n.height+this.axisConfig.labelPadding*2;this.labelTextHeight=n.height,a<=r&&(r-=a,this.showLabel=!0)}if(this.axisConfig.showTick&&r>=this.axisConfig.tickLength&&(this.showTick=!0,r-=this.axisConfig.tickLength),this.axisConfig.showTitle&&this.title){let n=this.textDimensionCalculator.getMaxDimension([this.title],this.axisConfig.titleFontSize),i=n.height+this.axisConfig.titlePadding*2;this.titleTextHeight=n.height,i<=r&&(r-=i,this.showTitle=!0)}this.boundingRect.width=e.width,this.boundingRect.height=e.height-r}calculateSpaceIfDrawnVertical(e){let r=e.width;if(this.axisConfig.showAxisLine&&r>this.axisConfig.axisLineWidth&&(r-=this.axisConfig.axisLineWidth,this.showAxisLine=!0),this.axisConfig.showLabel){let n=this.getLabelDimension(),i=.2*e.height;this.outerPadding=Math.min(n.height/2,i);let a=n.width+this.axisConfig.labelPadding*2;a<=r&&(r-=a,this.showLabel=!0)}if(this.axisConfig.showTick&&r>=this.axisConfig.tickLength&&(this.showTick=!0,r-=this.axisConfig.tickLength),this.axisConfig.showTitle&&this.title){let n=this.textDimensionCalculator.getMaxDimension([this.title],this.axisConfig.titleFontSize),i=n.height+this.axisConfig.titlePadding*2;this.titleTextHeight=n.height,i<=r&&(r-=i,this.showTitle=!0)}this.boundingRect.width=e.width-r,this.boundingRect.height=e.height}calculateSpace(e){return this.axisPosition==="left"||this.axisPosition==="right"?this.calculateSpaceIfDrawnVertical(e):this.calculateSpaceIfDrawnHorizontally(e),this.recalculateScale(),{width:this.boundingRect.width,height:this.boundingRect.height}}setBoundingBoxXY(e){this.boundingRect.x=e.x,this.boundingRect.y=e.y}getDrawableElementsForLeftAxis(){let e=[];if(this.showAxisLine){let r=this.boundingRect.x+this.boundingRect.width-this.axisConfig.axisLineWidth/2;e.push({type:"path",groupTexts:["left-axis","axisl-line"],data:[{path:`M ${r},${this.boundingRect.y} L ${r},${this.boundingRect.y+this.boundingRect.height} `,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&e.push({type:"text",groupTexts:["left-axis","label"],data:this.getTickValues().map(r=>({text:r.toString(),x:this.boundingRect.x+this.boundingRect.width-(this.showLabel?this.axisConfig.labelPadding:0)-(this.showTick?this.axisConfig.tickLength:0)-(this.showAxisLine?this.axisConfig.axisLineWidth:0),y:this.getScaleValue(r),fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"middle",horizontalPos:"right"}))}),this.showTick){let r=this.boundingRect.x+this.boundingRect.width-(this.showAxisLine?this.axisConfig.axisLineWidth:0);e.push({type:"path",groupTexts:["left-axis","ticks"],data:this.getTickValues().map(n=>({path:`M ${r},${this.getScaleValue(n)} L ${r-this.axisConfig.tickLength},${this.getScaleValue(n)}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}return this.showTitle&&e.push({type:"text",groupTexts:["left-axis","title"],data:[{text:this.title,x:this.boundingRect.x+this.axisConfig.titlePadding,y:this.boundingRect.y+this.boundingRect.height/2,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:270,verticalPos:"top",horizontalPos:"center"}]}),e}getDrawableElementsForBottomAxis(){let e=[];if(this.showAxisLine){let r=this.boundingRect.y+this.axisConfig.axisLineWidth/2;e.push({type:"path",groupTexts:["bottom-axis","axis-line"],data:[{path:`M ${this.boundingRect.x},${r} L ${this.boundingRect.x+this.boundingRect.width},${r}`,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&e.push({type:"text",groupTexts:["bottom-axis","label"],data:this.getTickValues().map(r=>({text:r.toString(),x:this.getScaleValue(r),y:this.boundingRect.y+this.axisConfig.labelPadding+(this.showTick?this.axisConfig.tickLength:0)+(this.showAxisLine?this.axisConfig.axisLineWidth:0),fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}))}),this.showTick){let r=this.boundingRect.y+(this.showAxisLine?this.axisConfig.axisLineWidth:0);e.push({type:"path",groupTexts:["bottom-axis","ticks"],data:this.getTickValues().map(n=>({path:`M ${this.getScaleValue(n)},${r} L ${this.getScaleValue(n)},${r+this.axisConfig.tickLength}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}return this.showTitle&&e.push({type:"text",groupTexts:["bottom-axis","title"],data:[{text:this.title,x:this.range[0]+(this.range[1]-this.range[0])/2,y:this.boundingRect.y+this.boundingRect.height-this.axisConfig.titlePadding-this.titleTextHeight,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}]}),e}getDrawableElementsForTopAxis(){let e=[];if(this.showAxisLine){let r=this.boundingRect.y+this.boundingRect.height-this.axisConfig.axisLineWidth/2;e.push({type:"path",groupTexts:["top-axis","axis-line"],data:[{path:`M ${this.boundingRect.x},${r} L ${this.boundingRect.x+this.boundingRect.width},${r}`,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&e.push({type:"text",groupTexts:["top-axis","label"],data:this.getTickValues().map(r=>({text:r.toString(),x:this.getScaleValue(r),y:this.boundingRect.y+(this.showTitle?this.titleTextHeight+this.axisConfig.titlePadding*2:0)+this.axisConfig.labelPadding,fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}))}),this.showTick){let r=this.boundingRect.y;e.push({type:"path",groupTexts:["top-axis","ticks"],data:this.getTickValues().map(n=>({path:`M ${this.getScaleValue(n)},${r+this.boundingRect.height-(this.showAxisLine?this.axisConfig.axisLineWidth:0)} L ${this.getScaleValue(n)},${r+this.boundingRect.height-this.axisConfig.tickLength-(this.showAxisLine?this.axisConfig.axisLineWidth:0)}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}return this.showTitle&&e.push({type:"text",groupTexts:["top-axis","title"],data:[{text:this.title,x:this.boundingRect.x+this.boundingRect.width/2,y:this.boundingRect.y+this.axisConfig.titlePadding,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}]}),e}getDrawableElements(){if(this.axisPosition==="left")return this.getDrawableElementsForLeftAxis();if(this.axisPosition==="right")throw Error("Drawing of right axis is not implemented");return this.axisPosition==="bottom"?this.getDrawableElementsForBottomAxis():this.axisPosition==="top"?this.getDrawableElementsForTopAxis():[]}}});var b6,Che=N(()=>{"use strict";dr();vt();yO();b6=class extends A1{static{o(this,"BandAxis")}constructor(e,r,n,i,a){super(e,i,a,r),this.categories=n,this.scale=L0().domain(this.categories).range(this.getRange())}setRange(e){super.setRange(e)}recalculateScale(){this.scale=L0().domain(this.categories).range(this.getRange()).paddingInner(1).paddingOuter(0).align(.5),Y.trace("BandAxis axis final categories, range: ",this.categories,this.getRange())}getTickValues(){return this.categories}getScaleValue(e){return this.scale(e)??this.getRange()[0]}}});var w6,Ahe=N(()=>{"use strict";dr();yO();w6=class extends A1{static{o(this,"LinearAxis")}constructor(e,r,n,i,a){super(e,i,a,r),this.domain=n,this.scale=gl().domain(this.domain).range(this.getRange())}getTickValues(){return this.scale.ticks()}recalculateScale(){let e=[...this.domain];this.axisPosition==="left"&&e.reverse(),this.scale=gl().domain(e).range(this.getRange())}getScaleValue(e){return this.scale(e)}}});function vO(t,e,r,n){let i=new C1(n);return v6(t)?new b6(e,r,t.categories,t.title,i):new w6(e,r,[t.min,t.max],t.title,i)}var _he=N(()=>{"use strict";x6();gO();Che();Ahe();o(vO,"getAxis")});function Dhe(t,e,r,n){let i=new C1(n);return new xO(i,t,e,r)}var xO,Lhe=N(()=>{"use strict";gO();xO=class{constructor(e,r,n,i){this.textDimensionCalculator=e;this.chartConfig=r;this.chartData=n;this.chartThemeConfig=i;this.boundingRect={x:0,y:0,width:0,height:0},this.showChartTitle=!1}static{o(this,"ChartTitle")}setBoundingBoxXY(e){this.boundingRect.x=e.x,this.boundingRect.y=e.y}calculateSpace(e){let r=this.textDimensionCalculator.getMaxDimension([this.chartData.title],this.chartConfig.titleFontSize),n=Math.max(r.width,e.width),i=r.height+2*this.chartConfig.titlePadding;return r.width<=n&&r.height<=i&&this.chartConfig.showTitle&&this.chartData.title&&(this.boundingRect.width=n,this.boundingRect.height=i,this.showChartTitle=!0),{width:this.boundingRect.width,height:this.boundingRect.height}}getDrawableElements(){let e=[];return this.showChartTitle&&e.push({groupTexts:["chart-title"],type:"text",data:[{fontSize:this.chartConfig.titleFontSize,text:this.chartData.title,verticalPos:"middle",horizontalPos:"center",x:this.boundingRect.x+this.boundingRect.width/2,y:this.boundingRect.y+this.boundingRect.height/2,fill:this.chartThemeConfig.titleColor,rotation:0}]}),e}};o(Dhe,"getChartTitleComponent")});var T6,Rhe=N(()=>{"use strict";dr();T6=class{constructor(e,r,n,i,a){this.plotData=e;this.xAxis=r;this.yAxis=n;this.orientation=i;this.plotIndex=a}static{o(this,"LinePlot")}getDrawableElement(){let e=this.plotData.data.map(n=>[this.xAxis.getScaleValue(n[0]),this.yAxis.getScaleValue(n[1])]),r;return this.orientation==="horizontal"?r=wl().y(n=>n[0]).x(n=>n[1])(e):r=wl().x(n=>n[0]).y(n=>n[1])(e),r?[{groupTexts:["plot",`line-plot-${this.plotIndex}`],type:"path",data:[{path:r,strokeFill:this.plotData.strokeFill,strokeWidth:this.plotData.strokeWidth}]}]:[]}}});var k6,Nhe=N(()=>{"use strict";k6=class{constructor(e,r,n,i,a,s){this.barData=e;this.boundingRect=r;this.xAxis=n;this.yAxis=i;this.orientation=a;this.plotIndex=s}static{o(this,"BarPlot")}getDrawableElement(){let e=this.barData.data.map(a=>[this.xAxis.getScaleValue(a[0]),this.yAxis.getScaleValue(a[1])]),n=Math.min(this.xAxis.getAxisOuterPadding()*2,this.xAxis.getTickDistance())*(1-.05),i=n/2;return this.orientation==="horizontal"?[{groupTexts:["plot",`bar-plot-${this.plotIndex}`],type:"rect",data:e.map(a=>({x:this.boundingRect.x,y:a[0]-i,height:n,width:a[1]-this.boundingRect.x,fill:this.barData.fill,strokeWidth:0,strokeFill:this.barData.fill}))}]:[{groupTexts:["plot",`bar-plot-${this.plotIndex}`],type:"rect",data:e.map(a=>({x:a[0]-i,y:a[1],width:n,height:this.boundingRect.y+this.boundingRect.height-a[1],fill:this.barData.fill,strokeWidth:0,strokeFill:this.barData.fill}))}]}}});function Mhe(t,e,r){return new bO(t,e,r)}var bO,Ihe=N(()=>{"use strict";Rhe();Nhe();bO=class{constructor(e,r,n){this.chartConfig=e;this.chartData=r;this.chartThemeConfig=n;this.boundingRect={x:0,y:0,width:0,height:0}}static{o(this,"BasePlot")}setAxes(e,r){this.xAxis=e,this.yAxis=r}setBoundingBoxXY(e){this.boundingRect.x=e.x,this.boundingRect.y=e.y}calculateSpace(e){return this.boundingRect.width=e.width,this.boundingRect.height=e.height,{width:this.boundingRect.width,height:this.boundingRect.height}}getDrawableElements(){if(!(this.xAxis&&this.yAxis))throw Error("Axes must be passed to render Plots");let e=[];for(let[r,n]of this.chartData.plots.entries())switch(n.type){case"line":{let i=new T6(n,this.xAxis,this.yAxis,this.chartConfig.chartOrientation,r);e.push(...i.getDrawableElement())}break;case"bar":{let i=new k6(n,this.boundingRect,this.xAxis,this.yAxis,this.chartConfig.chartOrientation,r);e.push(...i.getDrawableElement())}break}return e}};o(Mhe,"getPlotComponent")});var E6,Ohe=N(()=>{"use strict";_he();Lhe();Ihe();x6();E6=class{constructor(e,r,n,i){this.chartConfig=e;this.chartData=r;this.componentStore={title:Dhe(e,r,n,i),plot:Mhe(e,r,n),xAxis:vO(r.xAxis,e.xAxis,{titleColor:n.xAxisTitleColor,labelColor:n.xAxisLabelColor,tickColor:n.xAxisTickColor,axisLineColor:n.xAxisLineColor},i),yAxis:vO(r.yAxis,e.yAxis,{titleColor:n.yAxisTitleColor,labelColor:n.yAxisLabelColor,tickColor:n.yAxisTickColor,axisLineColor:n.yAxisLineColor},i)}}static{o(this,"Orchestrator")}calculateVerticalSpace(){let e=this.chartConfig.width,r=this.chartConfig.height,n=0,i=0,a=Math.floor(e*this.chartConfig.plotReservedSpacePercent/100),s=Math.floor(r*this.chartConfig.plotReservedSpacePercent/100),l=this.componentStore.plot.calculateSpace({width:a,height:s});e-=l.width,r-=l.height,l=this.componentStore.title.calculateSpace({width:this.chartConfig.width,height:r}),i=l.height,r-=l.height,this.componentStore.xAxis.setAxisPosition("bottom"),l=this.componentStore.xAxis.calculateSpace({width:e,height:r}),r-=l.height,this.componentStore.yAxis.setAxisPosition("left"),l=this.componentStore.yAxis.calculateSpace({width:e,height:r}),n=l.width,e-=l.width,e>0&&(a+=e,e=0),r>0&&(s+=r,r=0),this.componentStore.plot.calculateSpace({width:a,height:s}),this.componentStore.plot.setBoundingBoxXY({x:n,y:i}),this.componentStore.xAxis.setRange([n,n+a]),this.componentStore.xAxis.setBoundingBoxXY({x:n,y:i+s}),this.componentStore.yAxis.setRange([i,i+s]),this.componentStore.yAxis.setBoundingBoxXY({x:0,y:i}),this.chartData.plots.some(u=>mO(u))&&this.componentStore.xAxis.recalculateOuterPaddingToDrawBar()}calculateHorizontalSpace(){let e=this.chartConfig.width,r=this.chartConfig.height,n=0,i=0,a=0,s=Math.floor(e*this.chartConfig.plotReservedSpacePercent/100),l=Math.floor(r*this.chartConfig.plotReservedSpacePercent/100),u=this.componentStore.plot.calculateSpace({width:s,height:l});e-=u.width,r-=u.height,u=this.componentStore.title.calculateSpace({width:this.chartConfig.width,height:r}),n=u.height,r-=u.height,this.componentStore.xAxis.setAxisPosition("left"),u=this.componentStore.xAxis.calculateSpace({width:e,height:r}),e-=u.width,i=u.width,this.componentStore.yAxis.setAxisPosition("top"),u=this.componentStore.yAxis.calculateSpace({width:e,height:r}),r-=u.height,a=n+u.height,e>0&&(s+=e,e=0),r>0&&(l+=r,r=0),this.componentStore.plot.calculateSpace({width:s,height:l}),this.componentStore.plot.setBoundingBoxXY({x:i,y:a}),this.componentStore.yAxis.setRange([i,i+s]),this.componentStore.yAxis.setBoundingBoxXY({x:i,y:n}),this.componentStore.xAxis.setRange([a,a+l]),this.componentStore.xAxis.setBoundingBoxXY({x:0,y:a}),this.chartData.plots.some(h=>mO(h))&&this.componentStore.xAxis.recalculateOuterPaddingToDrawBar()}calculateSpace(){this.chartConfig.chartOrientation==="horizontal"?this.calculateHorizontalSpace():this.calculateVerticalSpace()}getDrawableElement(){this.calculateSpace();let e=[];this.componentStore.plot.setAxes(this.componentStore.xAxis,this.componentStore.yAxis);for(let r of Object.values(this.componentStore))e.push(...r.getDrawableElements());return e}}});var S6,Phe=N(()=>{"use strict";Ohe();S6=class{static{o(this,"XYChartBuilder")}static build(e,r,n,i){return new E6(e,r,n,i).getDrawableElement()}}});function Fhe(){let t=oh(),e=cr();return Fi(t.xyChart,e.themeVariables.xyChart)}function $he(){let t=cr();return Fi(or.xyChart,t.xyChart)}function zhe(){return{yAxis:{type:"linear",title:"",min:1/0,max:-1/0},xAxis:{type:"band",title:"",categories:[]},title:"",plots:[]}}function kO(t){let e=cr();return Tr(t.trim(),e)}function IGe(t){Bhe=t}function OGe(t){t==="horizontal"?bb.chartOrientation="horizontal":bb.chartOrientation="vertical"}function PGe(t){fn.xAxis.title=kO(t.text)}function Ghe(t,e){fn.xAxis={type:"linear",title:fn.xAxis.title,min:t,max:e},C6=!0}function BGe(t){fn.xAxis={type:"band",title:fn.xAxis.title,categories:t.map(e=>kO(e.text))},C6=!0}function FGe(t){fn.yAxis.title=kO(t.text)}function $Ge(t,e){fn.yAxis={type:"linear",title:fn.yAxis.title,min:t,max:e},TO=!0}function zGe(t){let e=Math.min(...t),r=Math.max(...t),n=S1(fn.yAxis)?fn.yAxis.min:1/0,i=S1(fn.yAxis)?fn.yAxis.max:-1/0;fn.yAxis={type:"linear",title:fn.yAxis.title,min:Math.min(n,e),max:Math.max(i,r)}}function Vhe(t){let e=[];if(t.length===0)return e;if(!C6){let r=S1(fn.xAxis)?fn.xAxis.min:1/0,n=S1(fn.xAxis)?fn.xAxis.max:-1/0;Ghe(Math.min(r,1),Math.max(n,t.length))}if(TO||zGe(t),v6(fn.xAxis)&&(e=fn.xAxis.categories.map((r,n)=>[r,t[n]])),S1(fn.xAxis)){let r=fn.xAxis.min,n=fn.xAxis.max,i=(n-r)/(t.length-1),a=[];for(let s=r;s<=n;s+=i)a.push(`${s}`);e=a.map((s,l)=>[s,t[l]])}return e}function Uhe(t){return wO[t===0?0:t%wO.length]}function GGe(t,e){let r=Vhe(e);fn.plots.push({type:"line",strokeFill:Uhe(xb),strokeWidth:2,data:r}),xb++}function VGe(t,e){let r=Vhe(e);fn.plots.push({type:"bar",fill:Uhe(xb),data:r}),xb++}function UGe(){if(fn.plots.length===0)throw Error("No Plot to render, please provide a plot with some data");return fn.title=Ir(),S6.build(bb,fn,wb,Bhe)}function HGe(){return wb}function WGe(){return bb}var xb,Bhe,bb,wb,fn,wO,C6,TO,qGe,Hhe,Whe=N(()=>{"use strict";ji();Ya();_y();ir();gr();mi();Phe();x6();xb=0,bb=$he(),wb=Fhe(),fn=zhe(),wO=wb.plotColorPalette.split(",").map(t=>t.trim()),C6=!1,TO=!1;o(Fhe,"getChartDefaultThemeConfig");o($he,"getChartDefaultConfig");o(zhe,"getChartDefaultData");o(kO,"textSanitizer");o(IGe,"setTmpSVGG");o(OGe,"setOrientation");o(PGe,"setXAxisTitle");o(Ghe,"setXAxisRangeData");o(BGe,"setXAxisBand");o(FGe,"setYAxisTitle");o($Ge,"setYAxisRangeData");o(zGe,"setYAxisRangeFromPlotData");o(Vhe,"transformDataWithoutCategory");o(Uhe,"getPlotColorFromPalette");o(GGe,"setLineData");o(VGe,"setBarData");o(UGe,"getDrawableElem");o(HGe,"getChartThemeConfig");o(WGe,"getChartConfig");qGe=o(function(){Ar(),xb=0,bb=$he(),fn=zhe(),wb=Fhe(),wO=wb.plotColorPalette.split(",").map(t=>t.trim()),C6=!1,TO=!1},"clear"),Hhe={getDrawableElem:UGe,clear:qGe,setAccTitle:Lr,getAccTitle:Rr,setDiagramTitle:$r,getDiagramTitle:Ir,getAccDescription:Mr,setAccDescription:Nr,setOrientation:OGe,setXAxisTitle:PGe,setXAxisRangeData:Ghe,setXAxisBand:BGe,setYAxisTitle:FGe,setYAxisRangeData:$Ge,setLineData:GGe,setBarData:VGe,setTmpSVGG:IGe,getChartThemeConfig:HGe,getChartConfig:WGe}});var YGe,qhe,Yhe=N(()=>{"use strict";vt();Vc();Ei();YGe=o((t,e,r,n)=>{let i=n.db,a=i.getChartThemeConfig(),s=i.getChartConfig();function l(v){return v==="top"?"text-before-edge":"middle"}o(l,"getDominantBaseLine");function u(v){return v==="left"?"start":v==="right"?"end":"middle"}o(u,"getTextAnchor");function h(v){return`translate(${v.x}, ${v.y}) rotate(${v.rotation||0})`}o(h,"getTextTransformation"),Y.debug(`Rendering xychart chart
+`+t);let f=sa(e),d=f.append("g").attr("class","main"),p=d.append("rect").attr("width",s.width).attr("height",s.height).attr("class","background");vn(f,s.height,s.width,!0),f.attr("viewBox",`0 0 ${s.width} ${s.height}`),p.attr("fill",a.backgroundColor),i.setTmpSVGG(f.append("g").attr("class","mermaid-tmp-group"));let m=i.getDrawableElem(),g={};function y(v){let x=d,b="";for(let[w]of v.entries()){let C=d;w>0&&g[b]&&(C=g[b]),b+=v[w],x=g[b],x||(x=g[b]=C.append("g").attr("class",v[w]))}return x}o(y,"getGroup");for(let v of m){if(v.data.length===0)continue;let x=y(v.groupTexts);switch(v.type){case"rect":x.selectAll("rect").data(v.data).enter().append("rect").attr("x",b=>b.x).attr("y",b=>b.y).attr("width",b=>b.width).attr("height",b=>b.height).attr("fill",b=>b.fill).attr("stroke",b=>b.strokeFill).attr("stroke-width",b=>b.strokeWidth);break;case"text":x.selectAll("text").data(v.data).enter().append("text").attr("x",0).attr("y",0).attr("fill",b=>b.fill).attr("font-size",b=>b.fontSize).attr("dominant-baseline",b=>l(b.verticalPos)).attr("text-anchor",b=>u(b.horizontalPos)).attr("transform",b=>h(b)).text(b=>b.text);break;case"path":x.selectAll("path").data(v.data).enter().append("path").attr("d",b=>b.path).attr("fill",b=>b.fill?b.fill:"none").attr("stroke",b=>b.strokeFill).attr("stroke-width",b=>b.strokeWidth);break}}},"draw"),qhe={draw:YGe}});var Xhe={};hr(Xhe,{diagram:()=>XGe});var XGe,jhe=N(()=>{"use strict";She();Whe();Yhe();XGe={parser:Ehe,db:Hhe,renderer:qhe}});var EO,Zhe,Jhe=N(()=>{"use strict";EO=function(){var t=o(function(re,oe,V,xe){for(V=V||{},xe=re.length;xe--;V[re[xe]]=oe);return V},"o"),e=[1,3],r=[1,4],n=[1,5],i=[1,6],a=[5,6,8,9,11,13,21,22,23,24,41,42,43,44,45,46,54,72,74,77,89,90],s=[1,22],l=[2,7],u=[1,26],h=[1,27],f=[1,28],d=[1,29],p=[1,33],m=[1,34],g=[1,35],y=[1,36],v=[1,37],x=[1,38],b=[1,24],w=[1,31],C=[1,32],T=[1,30],E=[1,39],A=[1,40],S=[5,8,9,11,13,21,22,23,24,41,42,43,44,45,46,54,72,74,77,89,90],_=[1,61],I=[89,90],D=[5,8,9,11,13,21,22,23,24,27,29,41,42,43,44,45,46,54,61,63,72,74,75,76,77,80,81,82,83,84,85,86,87,88,89,90],k=[27,29],L=[1,70],R=[1,71],O=[1,72],M=[1,73],B=[1,74],F=[1,75],P=[1,76],z=[1,83],$=[1,80],H=[1,84],Q=[1,85],j=[1,86],ie=[1,87],ne=[1,88],le=[1,89],he=[1,90],K=[1,91],X=[1,92],te=[5,8,9,11,13,21,22,23,24,27,41,42,43,44,45,46,54,72,74,75,76,77,80,81,82,83,84,85,86,87,88,89,90],J=[63,64],se=[1,101],ue=[5,8,9,11,13,21,22,23,24,41,42,43,44,45,46,54,72,74,76,77,89,90],Z=[5,8,9,11,13,21,22,23,24,41,42,43,44,45,46,54,72,74,75,76,77,80,81,82,83,84,85,86,87,88,89,90],Se=[1,110],ce=[1,106],ae=[1,107],Oe=[1,108],ge=[1,109],ze=[1,111],He=[1,116],$e=[1,117],Re=[1,114],Ie=[1,115],be={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,directive:4,NEWLINE:5,RD:6,diagram:7,EOF:8,acc_title:9,acc_title_value:10,acc_descr:11,acc_descr_value:12,acc_descr_multiline_value:13,requirementDef:14,elementDef:15,relationshipDef:16,direction:17,styleStatement:18,classDefStatement:19,classStatement:20,direction_tb:21,direction_bt:22,direction_rl:23,direction_lr:24,requirementType:25,requirementName:26,STRUCT_START:27,requirementBody:28,STYLE_SEPARATOR:29,idList:30,ID:31,COLONSEP:32,id:33,TEXT:34,text:35,RISK:36,riskLevel:37,VERIFYMTHD:38,verifyType:39,STRUCT_STOP:40,REQUIREMENT:41,FUNCTIONAL_REQUIREMENT:42,INTERFACE_REQUIREMENT:43,PERFORMANCE_REQUIREMENT:44,PHYSICAL_REQUIREMENT:45,DESIGN_CONSTRAINT:46,LOW_RISK:47,MED_RISK:48,HIGH_RISK:49,VERIFY_ANALYSIS:50,VERIFY_DEMONSTRATION:51,VERIFY_INSPECTION:52,VERIFY_TEST:53,ELEMENT:54,elementName:55,elementBody:56,TYPE:57,type:58,DOCREF:59,ref:60,END_ARROW_L:61,relationship:62,LINE:63,END_ARROW_R:64,CONTAINS:65,COPIES:66,DERIVES:67,SATISFIES:68,VERIFIES:69,REFINES:70,TRACES:71,CLASSDEF:72,stylesOpt:73,CLASS:74,ALPHA:75,COMMA:76,STYLE:77,style:78,styleComponent:79,NUM:80,COLON:81,UNIT:82,SPACE:83,BRKT:84,PCT:85,MINUS:86,LABEL:87,SEMICOLON:88,unqString:89,qString:90,$accept:0,$end:1},terminals_:{2:"error",5:"NEWLINE",6:"RD",8:"EOF",9:"acc_title",10:"acc_title_value",11:"acc_descr",12:"acc_descr_value",13:"acc_descr_multiline_value",21:"direction_tb",22:"direction_bt",23:"direction_rl",24:"direction_lr",27:"STRUCT_START",29:"STYLE_SEPARATOR",31:"ID",32:"COLONSEP",34:"TEXT",36:"RISK",38:"VERIFYMTHD",40:"STRUCT_STOP",41:"REQUIREMENT",42:"FUNCTIONAL_REQUIREMENT",43:"INTERFACE_REQUIREMENT",44:"PERFORMANCE_REQUIREMENT",45:"PHYSICAL_REQUIREMENT",46:"DESIGN_CONSTRAINT",47:"LOW_RISK",48:"MED_RISK",49:"HIGH_RISK",50:"VERIFY_ANALYSIS",51:"VERIFY_DEMONSTRATION",52:"VERIFY_INSPECTION",53:"VERIFY_TEST",54:"ELEMENT",57:"TYPE",59:"DOCREF",61:"END_ARROW_L",63:"LINE",64:"END_ARROW_R",65:"CONTAINS",66:"COPIES",67:"DERIVES",68:"SATISFIES",69:"VERIFIES",70:"REFINES",71:"TRACES",72:"CLASSDEF",74:"CLASS",75:"ALPHA",76:"COMMA",77:"STYLE",80:"NUM",81:"COLON",82:"UNIT",83:"SPACE",84:"BRKT",85:"PCT",86:"MINUS",87:"LABEL",88:"SEMICOLON",89:"unqString",90:"qString"},productions_:[0,[3,3],[3,2],[3,4],[4,2],[4,2],[4,1],[7,0],[7,2],[7,2],[7,2],[7,2],[7,2],[7,2],[7,2],[7,2],[7,2],[17,1],[17,1],[17,1],[17,1],[14,5],[14,7],[28,5],[28,5],[28,5],[28,5],[28,2],[28,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[37,1],[37,1],[37,1],[39,1],[39,1],[39,1],[39,1],[15,5],[15,7],[56,5],[56,5],[56,2],[56,1],[16,5],[16,5],[62,1],[62,1],[62,1],[62,1],[62,1],[62,1],[62,1],[19,3],[20,3],[20,3],[30,1],[30,3],[30,1],[30,3],[18,3],[73,1],[73,3],[78,1],[78,2],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[26,1],[26,1],[33,1],[33,1],[35,1],[35,1],[55,1],[55,1],[58,1],[58,1],[60,1],[60,1]],performAction:o(function(oe,V,xe,q,pe,ve,Pe){var _e=ve.length-1;switch(pe){case 4:this.$=ve[_e].trim(),q.setAccTitle(this.$);break;case 5:case 6:this.$=ve[_e].trim(),q.setAccDescription(this.$);break;case 7:this.$=[];break;case 17:q.setDirection("TB");break;case 18:q.setDirection("BT");break;case 19:q.setDirection("RL");break;case 20:q.setDirection("LR");break;case 21:q.addRequirement(ve[_e-3],ve[_e-4]);break;case 22:q.addRequirement(ve[_e-5],ve[_e-6]),q.setClass([ve[_e-5]],ve[_e-3]);break;case 23:q.setNewReqId(ve[_e-2]);break;case 24:q.setNewReqText(ve[_e-2]);break;case 25:q.setNewReqRisk(ve[_e-2]);break;case 26:q.setNewReqVerifyMethod(ve[_e-2]);break;case 29:this.$=q.RequirementType.REQUIREMENT;break;case 30:this.$=q.RequirementType.FUNCTIONAL_REQUIREMENT;break;case 31:this.$=q.RequirementType.INTERFACE_REQUIREMENT;break;case 32:this.$=q.RequirementType.PERFORMANCE_REQUIREMENT;break;case 33:this.$=q.RequirementType.PHYSICAL_REQUIREMENT;break;case 34:this.$=q.RequirementType.DESIGN_CONSTRAINT;break;case 35:this.$=q.RiskLevel.LOW_RISK;break;case 36:this.$=q.RiskLevel.MED_RISK;break;case 37:this.$=q.RiskLevel.HIGH_RISK;break;case 38:this.$=q.VerifyType.VERIFY_ANALYSIS;break;case 39:this.$=q.VerifyType.VERIFY_DEMONSTRATION;break;case 40:this.$=q.VerifyType.VERIFY_INSPECTION;break;case 41:this.$=q.VerifyType.VERIFY_TEST;break;case 42:q.addElement(ve[_e-3]);break;case 43:q.addElement(ve[_e-5]),q.setClass([ve[_e-5]],ve[_e-3]);break;case 44:q.setNewElementType(ve[_e-2]);break;case 45:q.setNewElementDocRef(ve[_e-2]);break;case 48:q.addRelationship(ve[_e-2],ve[_e],ve[_e-4]);break;case 49:q.addRelationship(ve[_e-2],ve[_e-4],ve[_e]);break;case 50:this.$=q.Relationships.CONTAINS;break;case 51:this.$=q.Relationships.COPIES;break;case 52:this.$=q.Relationships.DERIVES;break;case 53:this.$=q.Relationships.SATISFIES;break;case 54:this.$=q.Relationships.VERIFIES;break;case 55:this.$=q.Relationships.REFINES;break;case 56:this.$=q.Relationships.TRACES;break;case 57:this.$=ve[_e-2],q.defineClass(ve[_e-1],ve[_e]);break;case 58:q.setClass(ve[_e-1],ve[_e]);break;case 59:q.setClass([ve[_e-2]],ve[_e]);break;case 60:case 62:this.$=[ve[_e]];break;case 61:case 63:this.$=ve[_e-2].concat([ve[_e]]);break;case 64:this.$=ve[_e-2],q.setCssStyle(ve[_e-1],ve[_e]);break;case 65:this.$=[ve[_e]];break;case 66:ve[_e-2].push(ve[_e]),this.$=ve[_e-2];break;case 68:this.$=ve[_e-1]+ve[_e];break}},"anonymous"),table:[{3:1,4:2,6:e,9:r,11:n,13:i},{1:[3]},{3:8,4:2,5:[1,7],6:e,9:r,11:n,13:i},{5:[1,9]},{10:[1,10]},{12:[1,11]},t(a,[2,6]),{3:12,4:2,6:e,9:r,11:n,13:i},{1:[2,2]},{4:17,5:s,7:13,8:l,9:r,11:n,13:i,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:u,22:h,23:f,24:d,25:23,33:25,41:p,42:m,43:g,44:y,45:v,46:x,54:b,72:w,74:C,77:T,89:E,90:A},t(a,[2,4]),t(a,[2,5]),{1:[2,1]},{8:[1,41]},{4:17,5:s,7:42,8:l,9:r,11:n,13:i,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:u,22:h,23:f,24:d,25:23,33:25,41:p,42:m,43:g,44:y,45:v,46:x,54:b,72:w,74:C,77:T,89:E,90:A},{4:17,5:s,7:43,8:l,9:r,11:n,13:i,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:u,22:h,23:f,24:d,25:23,33:25,41:p,42:m,43:g,44:y,45:v,46:x,54:b,72:w,74:C,77:T,89:E,90:A},{4:17,5:s,7:44,8:l,9:r,11:n,13:i,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:u,22:h,23:f,24:d,25:23,33:25,41:p,42:m,43:g,44:y,45:v,46:x,54:b,72:w,74:C,77:T,89:E,90:A},{4:17,5:s,7:45,8:l,9:r,11:n,13:i,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:u,22:h,23:f,24:d,25:23,33:25,41:p,42:m,43:g,44:y,45:v,46:x,54:b,72:w,74:C,77:T,89:E,90:A},{4:17,5:s,7:46,8:l,9:r,11:n,13:i,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:u,22:h,23:f,24:d,25:23,33:25,41:p,42:m,43:g,44:y,45:v,46:x,54:b,72:w,74:C,77:T,89:E,90:A},{4:17,5:s,7:47,8:l,9:r,11:n,13:i,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:u,22:h,23:f,24:d,25:23,33:25,41:p,42:m,43:g,44:y,45:v,46:x,54:b,72:w,74:C,77:T,89:E,90:A},{4:17,5:s,7:48,8:l,9:r,11:n,13:i,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:u,22:h,23:f,24:d,25:23,33:25,41:p,42:m,43:g,44:y,45:v,46:x,54:b,72:w,74:C,77:T,89:E,90:A},{4:17,5:s,7:49,8:l,9:r,11:n,13:i,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:u,22:h,23:f,24:d,25:23,33:25,41:p,42:m,43:g,44:y,45:v,46:x,54:b,72:w,74:C,77:T,89:E,90:A},{4:17,5:s,7:50,8:l,9:r,11:n,13:i,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:u,22:h,23:f,24:d,25:23,33:25,41:p,42:m,43:g,44:y,45:v,46:x,54:b,72:w,74:C,77:T,89:E,90:A},{26:51,89:[1,52],90:[1,53]},{55:54,89:[1,55],90:[1,56]},{29:[1,59],61:[1,57],63:[1,58]},t(S,[2,17]),t(S,[2,18]),t(S,[2,19]),t(S,[2,20]),{30:60,33:62,75:_,89:E,90:A},{30:63,33:62,75:_,89:E,90:A},{30:64,33:62,75:_,89:E,90:A},t(I,[2,29]),t(I,[2,30]),t(I,[2,31]),t(I,[2,32]),t(I,[2,33]),t(I,[2,34]),t(D,[2,81]),t(D,[2,82]),{1:[2,3]},{8:[2,8]},{8:[2,9]},{8:[2,10]},{8:[2,11]},{8:[2,12]},{8:[2,13]},{8:[2,14]},{8:[2,15]},{8:[2,16]},{27:[1,65],29:[1,66]},t(k,[2,79]),t(k,[2,80]),{27:[1,67],29:[1,68]},t(k,[2,85]),t(k,[2,86]),{62:69,65:L,66:R,67:O,68:M,69:B,70:F,71:P},{62:77,65:L,66:R,67:O,68:M,69:B,70:F,71:P},{30:78,33:62,75:_,89:E,90:A},{73:79,75:z,76:$,78:81,79:82,80:H,81:Q,82:j,83:ie,84:ne,85:le,86:he,87:K,88:X},t(te,[2,60]),t(te,[2,62]),{73:93,75:z,76:$,78:81,79:82,80:H,81:Q,82:j,83:ie,84:ne,85:le,86:he,87:K,88:X},{30:94,33:62,75:_,76:$,89:E,90:A},{5:[1,95]},{30:96,33:62,75:_,89:E,90:A},{5:[1,97]},{30:98,33:62,75:_,89:E,90:A},{63:[1,99]},t(J,[2,50]),t(J,[2,51]),t(J,[2,52]),t(J,[2,53]),t(J,[2,54]),t(J,[2,55]),t(J,[2,56]),{64:[1,100]},t(S,[2,59],{76:$}),t(S,[2,64],{76:se}),{33:103,75:[1,102],89:E,90:A},t(ue,[2,65],{79:104,75:z,80:H,81:Q,82:j,83:ie,84:ne,85:le,86:he,87:K,88:X}),t(Z,[2,67]),t(Z,[2,69]),t(Z,[2,70]),t(Z,[2,71]),t(Z,[2,72]),t(Z,[2,73]),t(Z,[2,74]),t(Z,[2,75]),t(Z,[2,76]),t(Z,[2,77]),t(Z,[2,78]),t(S,[2,57],{76:se}),t(S,[2,58],{76:$}),{5:Se,28:105,31:ce,34:ae,36:Oe,38:ge,40:ze},{27:[1,112],76:$},{5:He,40:$e,56:113,57:Re,59:Ie},{27:[1,118],76:$},{33:119,89:E,90:A},{33:120,89:E,90:A},{75:z,78:121,79:82,80:H,81:Q,82:j,83:ie,84:ne,85:le,86:he,87:K,88:X},t(te,[2,61]),t(te,[2,63]),t(Z,[2,68]),t(S,[2,21]),{32:[1,122]},{32:[1,123]},{32:[1,124]},{32:[1,125]},{5:Se,28:126,31:ce,34:ae,36:Oe,38:ge,40:ze},t(S,[2,28]),{5:[1,127]},t(S,[2,42]),{32:[1,128]},{32:[1,129]},{5:He,40:$e,56:130,57:Re,59:Ie},t(S,[2,47]),{5:[1,131]},t(S,[2,48]),t(S,[2,49]),t(ue,[2,66],{79:104,75:z,80:H,81:Q,82:j,83:ie,84:ne,85:le,86:he,87:K,88:X}),{33:132,89:E,90:A},{35:133,89:[1,134],90:[1,135]},{37:136,47:[1,137],48:[1,138],49:[1,139]},{39:140,50:[1,141],51:[1,142],52:[1,143],53:[1,144]},t(S,[2,27]),{5:Se,28:145,31:ce,34:ae,36:Oe,38:ge,40:ze},{58:146,89:[1,147],90:[1,148]},{60:149,89:[1,150],90:[1,151]},t(S,[2,46]),{5:He,40:$e,56:152,57:Re,59:Ie},{5:[1,153]},{5:[1,154]},{5:[2,83]},{5:[2,84]},{5:[1,155]},{5:[2,35]},{5:[2,36]},{5:[2,37]},{5:[1,156]},{5:[2,38]},{5:[2,39]},{5:[2,40]},{5:[2,41]},t(S,[2,22]),{5:[1,157]},{5:[2,87]},{5:[2,88]},{5:[1,158]},{5:[2,89]},{5:[2,90]},t(S,[2,43]),{5:Se,28:159,31:ce,34:ae,36:Oe,38:ge,40:ze},{5:Se,28:160,31:ce,34:ae,36:Oe,38:ge,40:ze},{5:Se,28:161,31:ce,34:ae,36:Oe,38:ge,40:ze},{5:Se,28:162,31:ce,34:ae,36:Oe,38:ge,40:ze},{5:He,40:$e,56:163,57:Re,59:Ie},{5:He,40:$e,56:164,57:Re,59:Ie},t(S,[2,23]),t(S,[2,24]),t(S,[2,25]),t(S,[2,26]),t(S,[2,44]),t(S,[2,45])],defaultActions:{8:[2,2],12:[2,1],41:[2,3],42:[2,8],43:[2,9],44:[2,10],45:[2,11],46:[2,12],47:[2,13],48:[2,14],49:[2,15],50:[2,16],134:[2,83],135:[2,84],137:[2,35],138:[2,36],139:[2,37],141:[2,38],142:[2,39],143:[2,40],144:[2,41],147:[2,87],148:[2,88],150:[2,89],151:[2,90]},parseError:o(function(oe,V){if(V.recoverable)this.trace(oe);else{var xe=new Error(oe);throw xe.hash=V,xe}},"parseError"),parse:o(function(oe){var V=this,xe=[0],q=[],pe=[null],ve=[],Pe=this.table,_e="",we=0,Ve=0,De=0,qe=2,at=1,Rt=ve.slice.call(arguments,1),st=Object.create(this.lexer),Ue={yy:{}};for(var ct in this.yy)Object.prototype.hasOwnProperty.call(this.yy,ct)&&(Ue.yy[ct]=this.yy[ct]);st.setInput(oe,Ue.yy),Ue.yy.lexer=st,Ue.yy.parser=this,typeof st.yylloc>"u"&&(st.yylloc={});var We=st.yylloc;ve.push(We);var ot=st.options&&st.options.ranges;typeof Ue.yy.parseError=="function"?this.parseError=Ue.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Yt(Dr){xe.length=xe.length-2*Dr,pe.length=pe.length-Dr,ve.length=ve.length-Dr}o(Yt,"popStack");function bt(){var Dr;return Dr=q.pop()||st.lex()||at,typeof Dr!="number"&&(Dr instanceof Array&&(q=Dr,Dr=q.pop()),Dr=V.symbols_[Dr]||Dr),Dr}o(bt,"lex");for(var Mt,xt,ut,Et,ft,yt,nt={},dn,Tt,On,tn;;){if(ut=xe[xe.length-1],this.defaultActions[ut]?Et=this.defaultActions[ut]:((Mt===null||typeof Mt>"u")&&(Mt=bt()),Et=Pe[ut]&&Pe[ut][Mt]),typeof Et>"u"||!Et.length||!Et[0]){var _r="";tn=[];for(dn in Pe[ut])this.terminals_[dn]&&dn>qe&&tn.push("'"+this.terminals_[dn]+"'");st.showPosition?_r="Parse error on line "+(we+1)+`:
+`+st.showPosition()+`
+Expecting `+tn.join(", ")+", got '"+(this.terminals_[Mt]||Mt)+"'":_r="Parse error on line "+(we+1)+": Unexpected "+(Mt==at?"end of input":"'"+(this.terminals_[Mt]||Mt)+"'"),this.parseError(_r,{text:st.match,token:this.terminals_[Mt]||Mt,line:st.yylineno,loc:We,expected:tn})}if(Et[0]instanceof Array&&Et.length>1)throw new Error("Parse Error: multiple actions possible at state: "+ut+", token: "+Mt);switch(Et[0]){case 1:xe.push(Mt),pe.push(st.yytext),ve.push(st.yylloc),xe.push(Et[1]),Mt=null,xt?(Mt=xt,xt=null):(Ve=st.yyleng,_e=st.yytext,we=st.yylineno,We=st.yylloc,De>0&&De--);break;case 2:if(Tt=this.productions_[Et[1]][1],nt.$=pe[pe.length-Tt],nt._$={first_line:ve[ve.length-(Tt||1)].first_line,last_line:ve[ve.length-1].last_line,first_column:ve[ve.length-(Tt||1)].first_column,last_column:ve[ve.length-1].last_column},ot&&(nt._$.range=[ve[ve.length-(Tt||1)].range[0],ve[ve.length-1].range[1]]),yt=this.performAction.apply(nt,[_e,Ve,we,Ue.yy,Et[1],pe,ve].concat(Rt)),typeof yt<"u")return yt;Tt&&(xe=xe.slice(0,-1*Tt*2),pe=pe.slice(0,-1*Tt),ve=ve.slice(0,-1*Tt)),xe.push(this.productions_[Et[1]][0]),pe.push(nt.$),ve.push(nt._$),On=Pe[xe[xe.length-2]][xe[xe.length-1]],xe.push(On);break;case 3:return!0}}return!0},"parse")},W=function(){var re={EOF:1,parseError:o(function(V,xe){if(this.yy.parser)this.yy.parser.parseError(V,xe);else throw new Error(V)},"parseError"),setInput:o(function(oe,V){return this.yy=V||this.yy||{},this._input=oe,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var oe=this._input[0];this.yytext+=oe,this.yyleng++,this.offset++,this.match+=oe,this.matched+=oe;var V=oe.match(/(?:\r\n?|\n).*/g);return V?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),oe},"input"),unput:o(function(oe){var V=oe.length,xe=oe.split(/(?:\r\n?|\n)/g);this._input=oe+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-V),this.offset-=V;var q=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),xe.length-1&&(this.yylineno-=xe.length-1);var pe=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:xe?(xe.length===q.length?this.yylloc.first_column:0)+q[q.length-xe.length].length-xe[0].length:this.yylloc.first_column-V},this.options.ranges&&(this.yylloc.range=[pe[0],pe[0]+this.yyleng-V]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
+`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(oe){this.unput(this.match.slice(oe))},"less"),pastInput:o(function(){var oe=this.matched.substr(0,this.matched.length-this.match.length);return(oe.length>20?"...":"")+oe.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var oe=this.match;return oe.length<20&&(oe+=this._input.substr(0,20-oe.length)),(oe.substr(0,20)+(oe.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var oe=this.pastInput(),V=new Array(oe.length+1).join("-");return oe+this.upcomingInput()+`
+`+V+"^"},"showPosition"),test_match:o(function(oe,V){var xe,q,pe;if(this.options.backtrack_lexer&&(pe={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(pe.yylloc.range=this.yylloc.range.slice(0))),q=oe[0].match(/(?:\r\n?|\n).*/g),q&&(this.yylineno+=q.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:q?q[q.length-1].length-q[q.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+oe[0].length},this.yytext+=oe[0],this.match+=oe[0],this.matches=oe,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(oe[0].length),this.matched+=oe[0],xe=this.performAction.call(this,this.yy,this,V,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),xe)return xe;if(this._backtrack){for(var ve in pe)this[ve]=pe[ve];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var oe,V,xe,q;this._more||(this.yytext="",this.match="");for(var pe=this._currentRules(),ve=0;ve<pe.length;ve++)if(xe=this._input.match(this.rules[pe[ve]]),xe&&(!V||xe[0].length>V[0].length)){if(V=xe,q=ve,this.options.backtrack_lexer){if(oe=this.test_match(xe,pe[ve]),oe!==!1)return oe;if(this._backtrack){V=!1;continue}else return!1}else if(!this.options.flex)break}return V?(oe=this.test_match(V,pe[q]),oe!==!1?oe:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text.
+`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var V=this.next();return V||this.lex()},"lex"),begin:o(function(V){this.conditionStack.push(V)},"begin"),popState:o(function(){var V=this.conditionStack.length-1;return V>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(V){return V=this.conditionStack.length-1-Math.abs(V||0),V>=0?this.conditionStack[V]:"INITIAL"},"topState"),pushState:o(function(V){this.begin(V)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(V,xe,q,pe){var ve=pe;switch(q){case 0:return"title";case 1:return this.begin("acc_title"),9;break;case 2:return this.popState(),"acc_title_value";break;case 3:return this.begin("acc_descr"),11;break;case 4:return this.popState(),"acc_descr_value";break;case 5:this.begin("acc_descr_multiline");break;case 6:this.popState();break;case 7:return"acc_descr_multiline_value";case 8:return 21;case 9:return 22;case 10:return 23;case 11:return 24;case 12:return 5;case 13:break;case 14:break;case 15:break;case 16:return 8;case 17:return 6;case 18:return 27;case 19:return 40;case 20:return 29;case 21:return 32;case 22:return 31;case 23:return 34;case 24:return 36;case 25:return 38;case 26:return 41;case 27:return 42;case 28:return 43;case 29:return 44;case 30:return 45;case 31:return 46;case 32:return 47;case 33:return 48;case 34:return 49;case 35:return 50;case 36:return 51;case 37:return 52;case 38:return 53;case 39:return 54;case 40:return 65;case 41:return 66;case 42:return 67;case 43:return 68;case 44:return 69;case 45:return 70;case 46:return 71;case 47:return 57;case 48:return 59;case 49:return this.begin("style"),77;break;case 50:return 75;case 51:return 81;case 52:return 88;case 53:return"PERCENT";case 54:return 86;case 55:return 84;case 56:break;case 57:this.begin("string");break;case 58:this.popState();break;case 59:return this.begin("style"),72;break;case 60:return this.begin("style"),74;break;case 61:return 61;case 62:return 64;case 63:return 63;case 64:this.begin("string");break;case 65:this.popState();break;case 66:return"qString";case 67:return xe.yytext=xe.yytext.trim(),89;break;case 68:return 75;case 69:return 80;case 70:return 76}},"anonymous"),rules:[/^(?:title\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:(\r?\n)+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:$)/i,/^(?:requirementDiagram\b)/i,/^(?:\{)/i,/^(?:\})/i,/^(?::{3})/i,/^(?::)/i,/^(?:id\b)/i,/^(?:text\b)/i,/^(?:risk\b)/i,/^(?:verifyMethod\b)/i,/^(?:requirement\b)/i,/^(?:functionalRequirement\b)/i,/^(?:interfaceRequirement\b)/i,/^(?:performanceRequirement\b)/i,/^(?:physicalRequirement\b)/i,/^(?:designConstraint\b)/i,/^(?:low\b)/i,/^(?:medium\b)/i,/^(?:high\b)/i,/^(?:analysis\b)/i,/^(?:demonstration\b)/i,/^(?:inspection\b)/i,/^(?:test\b)/i,/^(?:element\b)/i,/^(?:contains\b)/i,/^(?:copies\b)/i,/^(?:derives\b)/i,/^(?:satisfies\b)/i,/^(?:verifies\b)/i,/^(?:refines\b)/i,/^(?:traces\b)/i,/^(?:type\b)/i,/^(?:docref\b)/i,/^(?:style\b)/i,/^(?:\w+)/i,/^(?::)/i,/^(?:;)/i,/^(?:%)/i,/^(?:-)/i,/^(?:#)/i,/^(?: )/i,/^(?:["])/i,/^(?:\n)/i,/^(?:classDef\b)/i,/^(?:class\b)/i,/^(?:<-)/i,/^(?:->)/i,/^(?:-)/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[\w][^:,\r\n\{\<\>\-\=]*)/i,/^(?:\w+)/i,/^(?:[0-9]+)/i,/^(?:,)/i],conditions:{acc_descr_multiline:{rules:[6,7,68,69,70],inclusive:!1},acc_descr:{rules:[4,68,69,70],inclusive:!1},acc_title:{rules:[2,68,69,70],inclusive:!1},style:{rules:[50,51,52,53,54,55,56,57,58,68,69,70],inclusive:!1},unqString:{rules:[68,69,70],inclusive:!1},token:{rules:[68,69,70],inclusive:!1},string:{rules:[65,66,68,69,70],inclusive:!1},INITIAL:{rules:[0,1,3,5,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,59,60,61,62,63,64,67,68,69,70],inclusive:!0}}};return re}();be.lexer=W;function de(){this.yy={}}return o(de,"Parser"),de.prototype=be,be.Parser=de,new de}();EO.parser=EO;Zhe=EO});var A6,efe=N(()=>{"use strict";zt();vt();mi();A6=class{constructor(){this.relations=[];this.latestRequirement=this.getInitialRequirement();this.requirements=new Map;this.latestElement=this.getInitialElement();this.elements=new Map;this.classes=new Map;this.direction="TB";this.RequirementType={REQUIREMENT:"Requirement",FUNCTIONAL_REQUIREMENT:"Functional Requirement",INTERFACE_REQUIREMENT:"Interface Requirement",PERFORMANCE_REQUIREMENT:"Performance Requirement",PHYSICAL_REQUIREMENT:"Physical Requirement",DESIGN_CONSTRAINT:"Design Constraint"};this.RiskLevel={LOW_RISK:"Low",MED_RISK:"Medium",HIGH_RISK:"High"};this.VerifyType={VERIFY_ANALYSIS:"Analysis",VERIFY_DEMONSTRATION:"Demonstration",VERIFY_INSPECTION:"Inspection",VERIFY_TEST:"Test"};this.Relationships={CONTAINS:"contains",COPIES:"copies",DERIVES:"derives",SATISFIES:"satisfies",VERIFIES:"verifies",REFINES:"refines",TRACES:"traces"};this.setAccTitle=Lr;this.getAccTitle=Rr;this.setAccDescription=Nr;this.getAccDescription=Mr;this.setDiagramTitle=$r;this.getDiagramTitle=Ir;this.getConfig=o(()=>me().requirement,"getConfig");this.clear(),this.setDirection=this.setDirection.bind(this),this.addRequirement=this.addRequirement.bind(this),this.setNewReqId=this.setNewReqId.bind(this),this.setNewReqRisk=this.setNewReqRisk.bind(this),this.setNewReqText=this.setNewReqText.bind(this),this.setNewReqVerifyMethod=this.setNewReqVerifyMethod.bind(this),this.addElement=this.addElement.bind(this),this.setNewElementType=this.setNewElementType.bind(this),this.setNewElementDocRef=this.setNewElementDocRef.bind(this),this.addRelationship=this.addRelationship.bind(this),this.setCssStyle=this.setCssStyle.bind(this),this.setClass=this.setClass.bind(this),this.defineClass=this.defineClass.bind(this),this.setAccTitle=this.setAccTitle.bind(this),this.setAccDescription=this.setAccDescription.bind(this)}static{o(this,"RequirementDB")}getDirection(){return this.direction}setDirection(e){this.direction=e}resetLatestRequirement(){this.latestRequirement=this.getInitialRequirement()}resetLatestElement(){this.latestElement=this.getInitialElement()}getInitialRequirement(){return{requirementId:"",text:"",risk:"",verifyMethod:"",name:"",type:"",cssStyles:[],classes:["default"]}}getInitialElement(){return{name:"",type:"",docRef:"",cssStyles:[],classes:["default"]}}addRequirement(e,r){return this.requirements.has(e)||this.requirements.set(e,{name:e,type:r,requirementId:this.latestRequirement.requirementId,text:this.latestRequirement.text,risk:this.latestRequirement.risk,verifyMethod:this.latestRequirement.verifyMethod,cssStyles:[],classes:["default"]}),this.resetLatestRequirement(),this.requirements.get(e)}getRequirements(){return this.requirements}setNewReqId(e){this.latestRequirement!==void 0&&(this.latestRequirement.requirementId=e)}setNewReqText(e){this.latestRequirement!==void 0&&(this.latestRequirement.text=e)}setNewReqRisk(e){this.latestRequirement!==void 0&&(this.latestRequirement.risk=e)}setNewReqVerifyMethod(e){this.latestRequirement!==void 0&&(this.latestRequirement.verifyMethod=e)}addElement(e){return this.elements.has(e)||(this.elements.set(e,{name:e,type:this.latestElement.type,docRef:this.latestElement.docRef,cssStyles:[],classes:["default"]}),Y.info("Added new element: ",e)),this.resetLatestElement(),this.elements.get(e)}getElements(){return this.elements}setNewElementType(e){this.latestElement!==void 0&&(this.latestElement.type=e)}setNewElementDocRef(e){this.latestElement!==void 0&&(this.latestElement.docRef=e)}addRelationship(e,r,n){this.relations.push({type:e,src:r,dst:n})}getRelationships(){return this.relations}clear(){this.relations=[],this.resetLatestRequirement(),this.requirements=new Map,this.resetLatestElement(),this.elements=new Map,this.classes=new Map,Ar()}setCssStyle(e,r){for(let n of e){let i=this.requirements.get(n)??this.elements.get(n);if(!r||!i)return;for(let a of r)a.includes(",")?i.cssStyles.push(...a.split(",")):i.cssStyles.push(a)}}setClass(e,r){for(let n of e){let i=this.requirements.get(n)??this.elements.get(n);if(i)for(let a of r){i.classes.push(a);let s=this.classes.get(a)?.styles;s&&i.cssStyles.push(...s)}}}defineClass(e,r){for(let n of e){let i=this.classes.get(n);i===void 0&&(i={id:n,styles:[],textStyles:[]},this.classes.set(n,i)),r&&r.forEach(function(a){if(/color/.exec(a)){let s=a.replace("fill","bgFill");i.textStyles.push(s)}i.styles.push(a)}),this.requirements.forEach(a=>{a.classes.includes(n)&&a.cssStyles.push(...r.flatMap(s=>s.split(",")))}),this.elements.forEach(a=>{a.classes.includes(n)&&a.cssStyles.push(...r.flatMap(s=>s.split(",")))})}}getClasses(){return this.classes}getData(){let e=me(),r=[],n=[];for(let i of this.requirements.values()){let a=i;a.id=i.name,a.cssStyles=i.cssStyles,a.cssClasses=i.classes.join(" "),a.shape="requirementBox",a.look=e.look,r.push(a)}for(let i of this.elements.values()){let a=i;a.shape="requirementBox",a.look=e.look,a.id=i.name,a.cssStyles=i.cssStyles,a.cssClasses=i.classes.join(" "),r.push(a)}for(let i of this.relations){let a=0,s=i.type===this.Relationships.CONTAINS,l={id:`${i.src}-${i.dst}-${a}`,start:this.requirements.get(i.src)?.name??this.elements.get(i.src)?.name,end:this.requirements.get(i.dst)?.name??this.elements.get(i.dst)?.name,label:`&lt;&lt;${i.type}&gt;&gt;`,classes:"relationshipLine",style:["fill:none",s?"":"stroke-dasharray: 10,7"],labelpos:"c",thickness:"normal",type:"normal",pattern:s?"normal":"dashed",arrowTypeStart:s?"requirement_contains":"",arrowTypeEnd:s?"":"requirement_arrow",look:e.look};n.push(l),a++}return{nodes:r,edges:n,other:{},config:e,direction:this.getDirection()}}}});var ZGe,tfe,rfe=N(()=>{"use strict";ZGe=o(t=>`
+
+  marker {
+    fill: ${t.relationColor};
+    stroke: ${t.relationColor};
+  }
+
+  marker.cross {
+    stroke: ${t.lineColor};
+  }
+
+  svg {
+    font-family: ${t.fontFamily};
+    font-size: ${t.fontSize};
+  }
+
+  .reqBox {
+    fill: ${t.requirementBackground};
+    fill-opacity: 1.0;
+    stroke: ${t.requirementBorderColor};
+    stroke-width: ${t.requirementBorderSize};
+  }
+  
+  .reqTitle, .reqLabel{
+    fill:  ${t.requirementTextColor};
+  }
+  .reqLabelBox {
+    fill: ${t.relationLabelBackground};
+    fill-opacity: 1.0;
+  }
+
+  .req-title-line {
+    stroke: ${t.requirementBorderColor};
+    stroke-width: ${t.requirementBorderSize};
+  }
+  .relationshipLine {
+    stroke: ${t.relationColor};
+    stroke-width: 1;
+  }
+  .relationshipLabel {
+    fill: ${t.relationLabelColor};
+  }
+  .divider {
+    stroke: ${t.nodeBorder};
+    stroke-width: 1;
+  }
+  .label {
+    font-family: ${t.fontFamily};
+    color: ${t.nodeTextColor||t.textColor};
+  }
+  .label text,span {
+    fill: ${t.nodeTextColor||t.textColor};
+    color: ${t.nodeTextColor||t.textColor};
+  }
+  .labelBkg {
+    background-color: ${t.edgeLabelBackground};
+  }
+
+`,"getStyles"),tfe=ZGe});var SO={};hr(SO,{draw:()=>JGe});var JGe,nfe=N(()=>{"use strict";zt();vt();gm();Yd();$m();ir();JGe=o(async function(t,e,r,n){Y.info("REF0:"),Y.info("Drawing requirement diagram (unified)",e);let{securityLevel:i,state:a,layout:s}=me(),l=n.db.getData(),u=yc(e,i);l.type=n.type,l.layoutAlgorithm=nf(s),l.nodeSpacing=a?.nodeSpacing??50,l.rankSpacing=a?.rankSpacing??50,l.markers=["requirement_contains","requirement_arrow"],l.diagramId=e,await Cc(l,u);let h=8;Gt.insertTitle(u,"requirementDiagramTitleText",a?.titleTopMargin??25,n.db.getDiagramTitle()),Ac(u,h,"requirementDiagram",a?.useMaxWidth??!0)},"draw")});var ife={};hr(ife,{diagram:()=>eVe});var eVe,afe=N(()=>{"use strict";Jhe();efe();rfe();nfe();eVe={parser:Zhe,get db(){return new A6},renderer:SO,styles:tfe}});var CO,lfe,cfe=N(()=>{"use strict";CO=function(){var t=o(function(K,X,te,J){for(te=te||{},J=K.length;J--;te[K[J]]=X);return te},"o"),e=[1,2],r=[1,3],n=[1,4],i=[2,4],a=[1,9],s=[1,11],l=[1,13],u=[1,14],h=[1,16],f=[1,17],d=[1,18],p=[1,24],m=[1,25],g=[1,26],y=[1,27],v=[1,28],x=[1,29],b=[1,30],w=[1,31],C=[1,32],T=[1,33],E=[1,34],A=[1,35],S=[1,36],_=[1,37],I=[1,38],D=[1,39],k=[1,41],L=[1,42],R=[1,43],O=[1,44],M=[1,45],B=[1,46],F=[1,4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,47,48,49,50,52,53,54,59,60,61,62,70],P=[4,5,16,50,52,53],z=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,50,52,53,54,59,60,61,62,70],$=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,49,50,52,53,54,59,60,61,62,70],H=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,48,50,52,53,54,59,60,61,62,70],Q=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,47,50,52,53,54,59,60,61,62,70],j=[68,69,70],ie=[1,122],ne={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,SPACE:4,NEWLINE:5,SD:6,document:7,line:8,statement:9,box_section:10,box_line:11,participant_statement:12,create:13,box:14,restOfLine:15,end:16,signal:17,autonumber:18,NUM:19,off:20,activate:21,actor:22,deactivate:23,note_statement:24,links_statement:25,link_statement:26,properties_statement:27,details_statement:28,title:29,legacy_title:30,acc_title:31,acc_title_value:32,acc_descr:33,acc_descr_value:34,acc_descr_multiline_value:35,loop:36,rect:37,opt:38,alt:39,else_sections:40,par:41,par_sections:42,par_over:43,critical:44,option_sections:45,break:46,option:47,and:48,else:49,participant:50,AS:51,participant_actor:52,destroy:53,note:54,placement:55,text2:56,over:57,actor_pair:58,links:59,link:60,properties:61,details:62,spaceList:63,",":64,left_of:65,right_of:66,signaltype:67,"+":68,"-":69,ACTOR:70,SOLID_OPEN_ARROW:71,DOTTED_OPEN_ARROW:72,SOLID_ARROW:73,BIDIRECTIONAL_SOLID_ARROW:74,DOTTED_ARROW:75,BIDIRECTIONAL_DOTTED_ARROW:76,SOLID_CROSS:77,DOTTED_CROSS:78,SOLID_POINT:79,DOTTED_POINT:80,TXT:81,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NEWLINE",6:"SD",13:"create",14:"box",15:"restOfLine",16:"end",18:"autonumber",19:"NUM",20:"off",21:"activate",23:"deactivate",29:"title",30:"legacy_title",31:"acc_title",32:"acc_title_value",33:"acc_descr",34:"acc_descr_value",35:"acc_descr_multiline_value",36:"loop",37:"rect",38:"opt",39:"alt",41:"par",43:"par_over",44:"critical",46:"break",47:"option",48:"and",49:"else",50:"participant",51:"AS",52:"participant_actor",53:"destroy",54:"note",57:"over",59:"links",60:"link",61:"properties",62:"details",64:",",65:"left_of",66:"right_of",68:"+",69:"-",70:"ACTOR",71:"SOLID_OPEN_ARROW",72:"DOTTED_OPEN_ARROW",73:"SOLID_ARROW",74:"BIDIRECTIONAL_SOLID_ARROW",75:"DOTTED_ARROW",76:"BIDIRECTIONAL_DOTTED_ARROW",77:"SOLID_CROSS",78:"DOTTED_CROSS",79:"SOLID_POINT",80:"DOTTED_POINT",81:"TXT"},productions_:[0,[3,2],[3,2],[3,2],[7,0],[7,2],[8,2],[8,1],[8,1],[10,0],[10,2],[11,2],[11,1],[11,1],[9,1],[9,2],[9,4],[9,2],[9,4],[9,3],[9,3],[9,2],[9,3],[9,3],[9,2],[9,2],[9,2],[9,2],[9,2],[9,1],[9,1],[9,2],[9,2],[9,1],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[45,1],[45,4],[42,1],[42,4],[40,1],[40,4],[12,5],[12,3],[12,5],[12,3],[12,3],[24,4],[24,4],[25,3],[26,3],[27,3],[28,3],[63,2],[63,1],[58,3],[58,1],[55,1],[55,1],[17,5],[17,5],[17,4],[22,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[56,1]],performAction:o(function(X,te,J,se,ue,Z,Se){var ce=Z.length-1;switch(ue){case 3:return se.apply(Z[ce]),Z[ce];break;case 4:case 9:this.$=[];break;case 5:case 10:Z[ce-1].push(Z[ce]),this.$=Z[ce-1];break;case 6:case 7:case 11:case 12:this.$=Z[ce];break;case 8:case 13:this.$=[];break;case 15:Z[ce].type="createParticipant",this.$=Z[ce];break;case 16:Z[ce-1].unshift({type:"boxStart",boxData:se.parseBoxData(Z[ce-2])}),Z[ce-1].push({type:"boxEnd",boxText:Z[ce-2]}),this.$=Z[ce-1];break;case 18:this.$={type:"sequenceIndex",sequenceIndex:Number(Z[ce-2]),sequenceIndexStep:Number(Z[ce-1]),sequenceVisible:!0,signalType:se.LINETYPE.AUTONUMBER};break;case 19:this.$={type:"sequenceIndex",sequenceIndex:Number(Z[ce-1]),sequenceIndexStep:1,sequenceVisible:!0,signalType:se.LINETYPE.AUTONUMBER};break;case 20:this.$={type:"sequenceIndex",sequenceVisible:!1,signalType:se.LINETYPE.AUTONUMBER};break;case 21:this.$={type:"sequenceIndex",sequenceVisible:!0,signalType:se.LINETYPE.AUTONUMBER};break;case 22:this.$={type:"activeStart",signalType:se.LINETYPE.ACTIVE_START,actor:Z[ce-1].actor};break;case 23:this.$={type:"activeEnd",signalType:se.LINETYPE.ACTIVE_END,actor:Z[ce-1].actor};break;case 29:se.setDiagramTitle(Z[ce].substring(6)),this.$=Z[ce].substring(6);break;case 30:se.setDiagramTitle(Z[ce].substring(7)),this.$=Z[ce].substring(7);break;case 31:this.$=Z[ce].trim(),se.setAccTitle(this.$);break;case 32:case 33:this.$=Z[ce].trim(),se.setAccDescription(this.$);break;case 34:Z[ce-1].unshift({type:"loopStart",loopText:se.parseMessage(Z[ce-2]),signalType:se.LINETYPE.LOOP_START}),Z[ce-1].push({type:"loopEnd",loopText:Z[ce-2],signalType:se.LINETYPE.LOOP_END}),this.$=Z[ce-1];break;case 35:Z[ce-1].unshift({type:"rectStart",color:se.parseMessage(Z[ce-2]),signalType:se.LINETYPE.RECT_START}),Z[ce-1].push({type:"rectEnd",color:se.parseMessage(Z[ce-2]),signalType:se.LINETYPE.RECT_END}),this.$=Z[ce-1];break;case 36:Z[ce-1].unshift({type:"optStart",optText:se.parseMessage(Z[ce-2]),signalType:se.LINETYPE.OPT_START}),Z[ce-1].push({type:"optEnd",optText:se.parseMessage(Z[ce-2]),signalType:se.LINETYPE.OPT_END}),this.$=Z[ce-1];break;case 37:Z[ce-1].unshift({type:"altStart",altText:se.parseMessage(Z[ce-2]),signalType:se.LINETYPE.ALT_START}),Z[ce-1].push({type:"altEnd",signalType:se.LINETYPE.ALT_END}),this.$=Z[ce-1];break;case 38:Z[ce-1].unshift({type:"parStart",parText:se.parseMessage(Z[ce-2]),signalType:se.LINETYPE.PAR_START}),Z[ce-1].push({type:"parEnd",signalType:se.LINETYPE.PAR_END}),this.$=Z[ce-1];break;case 39:Z[ce-1].unshift({type:"parStart",parText:se.parseMessage(Z[ce-2]),signalType:se.LINETYPE.PAR_OVER_START}),Z[ce-1].push({type:"parEnd",signalType:se.LINETYPE.PAR_END}),this.$=Z[ce-1];break;case 40:Z[ce-1].unshift({type:"criticalStart",criticalText:se.parseMessage(Z[ce-2]),signalType:se.LINETYPE.CRITICAL_START}),Z[ce-1].push({type:"criticalEnd",signalType:se.LINETYPE.CRITICAL_END}),this.$=Z[ce-1];break;case 41:Z[ce-1].unshift({type:"breakStart",breakText:se.parseMessage(Z[ce-2]),signalType:se.LINETYPE.BREAK_START}),Z[ce-1].push({type:"breakEnd",optText:se.parseMessage(Z[ce-2]),signalType:se.LINETYPE.BREAK_END}),this.$=Z[ce-1];break;case 43:this.$=Z[ce-3].concat([{type:"option",optionText:se.parseMessage(Z[ce-1]),signalType:se.LINETYPE.CRITICAL_OPTION},Z[ce]]);break;case 45:this.$=Z[ce-3].concat([{type:"and",parText:se.parseMessage(Z[ce-1]),signalType:se.LINETYPE.PAR_AND},Z[ce]]);break;case 47:this.$=Z[ce-3].concat([{type:"else",altText:se.parseMessage(Z[ce-1]),signalType:se.LINETYPE.ALT_ELSE},Z[ce]]);break;case 48:Z[ce-3].draw="participant",Z[ce-3].type="addParticipant",Z[ce-3].description=se.parseMessage(Z[ce-1]),this.$=Z[ce-3];break;case 49:Z[ce-1].draw="participant",Z[ce-1].type="addParticipant",this.$=Z[ce-1];break;case 50:Z[ce-3].draw="actor",Z[ce-3].type="addParticipant",Z[ce-3].description=se.parseMessage(Z[ce-1]),this.$=Z[ce-3];break;case 51:Z[ce-1].draw="actor",Z[ce-1].type="addParticipant",this.$=Z[ce-1];break;case 52:Z[ce-1].type="destroyParticipant",this.$=Z[ce-1];break;case 53:this.$=[Z[ce-1],{type:"addNote",placement:Z[ce-2],actor:Z[ce-1].actor,text:Z[ce]}];break;case 54:Z[ce-2]=[].concat(Z[ce-1],Z[ce-1]).slice(0,2),Z[ce-2][0]=Z[ce-2][0].actor,Z[ce-2][1]=Z[ce-2][1].actor,this.$=[Z[ce-1],{type:"addNote",placement:se.PLACEMENT.OVER,actor:Z[ce-2].slice(0,2),text:Z[ce]}];break;case 55:this.$=[Z[ce-1],{type:"addLinks",actor:Z[ce-1].actor,text:Z[ce]}];break;case 56:this.$=[Z[ce-1],{type:"addALink",actor:Z[ce-1].actor,text:Z[ce]}];break;case 57:this.$=[Z[ce-1],{type:"addProperties",actor:Z[ce-1].actor,text:Z[ce]}];break;case 58:this.$=[Z[ce-1],{type:"addDetails",actor:Z[ce-1].actor,text:Z[ce]}];break;case 61:this.$=[Z[ce-2],Z[ce]];break;case 62:this.$=Z[ce];break;case 63:this.$=se.PLACEMENT.LEFTOF;break;case 64:this.$=se.PLACEMENT.RIGHTOF;break;case 65:this.$=[Z[ce-4],Z[ce-1],{type:"addMessage",from:Z[ce-4].actor,to:Z[ce-1].actor,signalType:Z[ce-3],msg:Z[ce],activate:!0},{type:"activeStart",signalType:se.LINETYPE.ACTIVE_START,actor:Z[ce-1].actor}];break;case 66:this.$=[Z[ce-4],Z[ce-1],{type:"addMessage",from:Z[ce-4].actor,to:Z[ce-1].actor,signalType:Z[ce-3],msg:Z[ce]},{type:"activeEnd",signalType:se.LINETYPE.ACTIVE_END,actor:Z[ce-4].actor}];break;case 67:this.$=[Z[ce-3],Z[ce-1],{type:"addMessage",from:Z[ce-3].actor,to:Z[ce-1].actor,signalType:Z[ce-2],msg:Z[ce]}];break;case 68:this.$={type:"addParticipant",actor:Z[ce]};break;case 69:this.$=se.LINETYPE.SOLID_OPEN;break;case 70:this.$=se.LINETYPE.DOTTED_OPEN;break;case 71:this.$=se.LINETYPE.SOLID;break;case 72:this.$=se.LINETYPE.BIDIRECTIONAL_SOLID;break;case 73:this.$=se.LINETYPE.DOTTED;break;case 74:this.$=se.LINETYPE.BIDIRECTIONAL_DOTTED;break;case 75:this.$=se.LINETYPE.SOLID_CROSS;break;case 76:this.$=se.LINETYPE.DOTTED_CROSS;break;case 77:this.$=se.LINETYPE.SOLID_POINT;break;case 78:this.$=se.LINETYPE.DOTTED_POINT;break;case 79:this.$=se.parseMessage(Z[ce].trim().substring(1));break}},"anonymous"),table:[{3:1,4:e,5:r,6:n},{1:[3]},{3:5,4:e,5:r,6:n},{3:6,4:e,5:r,6:n},t([1,4,5,13,14,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,50,52,53,54,59,60,61,62,70],i,{7:7}),{1:[2,1]},{1:[2,2]},{1:[2,3],4:a,5:s,8:8,9:10,12:12,13:l,14:u,17:15,18:h,21:f,22:40,23:d,24:19,25:20,26:21,27:22,28:23,29:p,30:m,31:g,33:y,35:v,36:x,37:b,38:w,39:C,41:T,43:E,44:A,46:S,50:_,52:I,53:D,54:k,59:L,60:R,61:O,62:M,70:B},t(F,[2,5]),{9:47,12:12,13:l,14:u,17:15,18:h,21:f,22:40,23:d,24:19,25:20,26:21,27:22,28:23,29:p,30:m,31:g,33:y,35:v,36:x,37:b,38:w,39:C,41:T,43:E,44:A,46:S,50:_,52:I,53:D,54:k,59:L,60:R,61:O,62:M,70:B},t(F,[2,7]),t(F,[2,8]),t(F,[2,14]),{12:48,50:_,52:I,53:D},{15:[1,49]},{5:[1,50]},{5:[1,53],19:[1,51],20:[1,52]},{22:54,70:B},{22:55,70:B},{5:[1,56]},{5:[1,57]},{5:[1,58]},{5:[1,59]},{5:[1,60]},t(F,[2,29]),t(F,[2,30]),{32:[1,61]},{34:[1,62]},t(F,[2,33]),{15:[1,63]},{15:[1,64]},{15:[1,65]},{15:[1,66]},{15:[1,67]},{15:[1,68]},{15:[1,69]},{15:[1,70]},{22:71,70:B},{22:72,70:B},{22:73,70:B},{67:74,71:[1,75],72:[1,76],73:[1,77],74:[1,78],75:[1,79],76:[1,80],77:[1,81],78:[1,82],79:[1,83],80:[1,84]},{55:85,57:[1,86],65:[1,87],66:[1,88]},{22:89,70:B},{22:90,70:B},{22:91,70:B},{22:92,70:B},t([5,51,64,71,72,73,74,75,76,77,78,79,80,81],[2,68]),t(F,[2,6]),t(F,[2,15]),t(P,[2,9],{10:93}),t(F,[2,17]),{5:[1,95],19:[1,94]},{5:[1,96]},t(F,[2,21]),{5:[1,97]},{5:[1,98]},t(F,[2,24]),t(F,[2,25]),t(F,[2,26]),t(F,[2,27]),t(F,[2,28]),t(F,[2,31]),t(F,[2,32]),t(z,i,{7:99}),t(z,i,{7:100}),t(z,i,{7:101}),t($,i,{40:102,7:103}),t(H,i,{42:104,7:105}),t(H,i,{7:105,42:106}),t(Q,i,{45:107,7:108}),t(z,i,{7:109}),{5:[1,111],51:[1,110]},{5:[1,113],51:[1,112]},{5:[1,114]},{22:117,68:[1,115],69:[1,116],70:B},t(j,[2,69]),t(j,[2,70]),t(j,[2,71]),t(j,[2,72]),t(j,[2,73]),t(j,[2,74]),t(j,[2,75]),t(j,[2,76]),t(j,[2,77]),t(j,[2,78]),{22:118,70:B},{22:120,58:119,70:B},{70:[2,63]},{70:[2,64]},{56:121,81:ie},{56:123,81:ie},{56:124,81:ie},{56:125,81:ie},{4:[1,128],5:[1,130],11:127,12:129,16:[1,126],50:_,52:I,53:D},{5:[1,131]},t(F,[2,19]),t(F,[2,20]),t(F,[2,22]),t(F,[2,23]),{4:a,5:s,8:8,9:10,12:12,13:l,14:u,16:[1,132],17:15,18:h,21:f,22:40,23:d,24:19,25:20,26:21,27:22,28:23,29:p,30:m,31:g,33:y,35:v,36:x,37:b,38:w,39:C,41:T,43:E,44:A,46:S,50:_,52:I,53:D,54:k,59:L,60:R,61:O,62:M,70:B},{4:a,5:s,8:8,9:10,12:12,13:l,14:u,16:[1,133],17:15,18:h,21:f,22:40,23:d,24:19,25:20,26:21,27:22,28:23,29:p,30:m,31:g,33:y,35:v,36:x,37:b,38:w,39:C,41:T,43:E,44:A,46:S,50:_,52:I,53:D,54:k,59:L,60:R,61:O,62:M,70:B},{4:a,5:s,8:8,9:10,12:12,13:l,14:u,16:[1,134],17:15,18:h,21:f,22:40,23:d,24:19,25:20,26:21,27:22,28:23,29:p,30:m,31:g,33:y,35:v,36:x,37:b,38:w,39:C,41:T,43:E,44:A,46:S,50:_,52:I,53:D,54:k,59:L,60:R,61:O,62:M,70:B},{16:[1,135]},{4:a,5:s,8:8,9:10,12:12,13:l,14:u,16:[2,46],17:15,18:h,21:f,22:40,23:d,24:19,25:20,26:21,27:22,28:23,29:p,30:m,31:g,33:y,35:v,36:x,37:b,38:w,39:C,41:T,43:E,44:A,46:S,49:[1,136],50:_,52:I,53:D,54:k,59:L,60:R,61:O,62:M,70:B},{16:[1,137]},{4:a,5:s,8:8,9:10,12:12,13:l,14:u,16:[2,44],17:15,18:h,21:f,22:40,23:d,24:19,25:20,26:21,27:22,28:23,29:p,30:m,31:g,33:y,35:v,36:x,37:b,38:w,39:C,41:T,43:E,44:A,46:S,48:[1,138],50:_,52:I,53:D,54:k,59:L,60:R,61:O,62:M,70:B},{16:[1,139]},{16:[1,140]},{4:a,5:s,8:8,9:10,12:12,13:l,14:u,16:[2,42],17:15,18:h,21:f,22:40,23:d,24:19,25:20,26:21,27:22,28:23,29:p,30:m,31:g,33:y,35:v,36:x,37:b,38:w,39:C,41:T,43:E,44:A,46:S,47:[1,141],50:_,52:I,53:D,54:k,59:L,60:R,61:O,62:M,70:B},{4:a,5:s,8:8,9:10,12:12,13:l,14:u,16:[1,142],17:15,18:h,21:f,22:40,23:d,24:19,25:20,26:21,27:22,28:23,29:p,30:m,31:g,33:y,35:v,36:x,37:b,38:w,39:C,41:T,43:E,44:A,46:S,50:_,52:I,53:D,54:k,59:L,60:R,61:O,62:M,70:B},{15:[1,143]},t(F,[2,49]),{15:[1,144]},t(F,[2,51]),t(F,[2,52]),{22:145,70:B},{22:146,70:B},{56:147,81:ie},{56:148,81:ie},{56:149,81:ie},{64:[1,150],81:[2,62]},{5:[2,55]},{5:[2,79]},{5:[2,56]},{5:[2,57]},{5:[2,58]},t(F,[2,16]),t(P,[2,10]),{12:151,50:_,52:I,53:D},t(P,[2,12]),t(P,[2,13]),t(F,[2,18]),t(F,[2,34]),t(F,[2,35]),t(F,[2,36]),t(F,[2,37]),{15:[1,152]},t(F,[2,38]),{15:[1,153]},t(F,[2,39]),t(F,[2,40]),{15:[1,154]},t(F,[2,41]),{5:[1,155]},{5:[1,156]},{56:157,81:ie},{56:158,81:ie},{5:[2,67]},{5:[2,53]},{5:[2,54]},{22:159,70:B},t(P,[2,11]),t($,i,{7:103,40:160}),t(H,i,{7:105,42:161}),t(Q,i,{7:108,45:162}),t(F,[2,48]),t(F,[2,50]),{5:[2,65]},{5:[2,66]},{81:[2,61]},{16:[2,47]},{16:[2,45]},{16:[2,43]}],defaultActions:{5:[2,1],6:[2,2],87:[2,63],88:[2,64],121:[2,55],122:[2,79],123:[2,56],124:[2,57],125:[2,58],147:[2,67],148:[2,53],149:[2,54],157:[2,65],158:[2,66],159:[2,61],160:[2,47],161:[2,45],162:[2,43]},parseError:o(function(X,te){if(te.recoverable)this.trace(X);else{var J=new Error(X);throw J.hash=te,J}},"parseError"),parse:o(function(X){var te=this,J=[0],se=[],ue=[null],Z=[],Se=this.table,ce="",ae=0,Oe=0,ge=0,ze=2,He=1,$e=Z.slice.call(arguments,1),Re=Object.create(this.lexer),Ie={yy:{}};for(var be in this.yy)Object.prototype.hasOwnProperty.call(this.yy,be)&&(Ie.yy[be]=this.yy[be]);Re.setInput(X,Ie.yy),Ie.yy.lexer=Re,Ie.yy.parser=this,typeof Re.yylloc>"u"&&(Re.yylloc={});var W=Re.yylloc;Z.push(W);var de=Re.options&&Re.options.ranges;typeof Ie.yy.parseError=="function"?this.parseError=Ie.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function re(Rt){J.length=J.length-2*Rt,ue.length=ue.length-Rt,Z.length=Z.length-Rt}o(re,"popStack");function oe(){var Rt;return Rt=se.pop()||Re.lex()||He,typeof Rt!="number"&&(Rt instanceof Array&&(se=Rt,Rt=se.pop()),Rt=te.symbols_[Rt]||Rt),Rt}o(oe,"lex");for(var V,xe,q,pe,ve,Pe,_e={},we,Ve,De,qe;;){if(q=J[J.length-1],this.defaultActions[q]?pe=this.defaultActions[q]:((V===null||typeof V>"u")&&(V=oe()),pe=Se[q]&&Se[q][V]),typeof pe>"u"||!pe.length||!pe[0]){var at="";qe=[];for(we in Se[q])this.terminals_[we]&&we>ze&&qe.push("'"+this.terminals_[we]+"'");Re.showPosition?at="Parse error on line "+(ae+1)+`:
+`+Re.showPosition()+`
+Expecting `+qe.join(", ")+", got '"+(this.terminals_[V]||V)+"'":at="Parse error on line "+(ae+1)+": Unexpected "+(V==He?"end of input":"'"+(this.terminals_[V]||V)+"'"),this.parseError(at,{text:Re.match,token:this.terminals_[V]||V,line:Re.yylineno,loc:W,expected:qe})}if(pe[0]instanceof Array&&pe.length>1)throw new Error("Parse Error: multiple actions possible at state: "+q+", token: "+V);switch(pe[0]){case 1:J.push(V),ue.push(Re.yytext),Z.push(Re.yylloc),J.push(pe[1]),V=null,xe?(V=xe,xe=null):(Oe=Re.yyleng,ce=Re.yytext,ae=Re.yylineno,W=Re.yylloc,ge>0&&ge--);break;case 2:if(Ve=this.productions_[pe[1]][1],_e.$=ue[ue.length-Ve],_e._$={first_line:Z[Z.length-(Ve||1)].first_line,last_line:Z[Z.length-1].last_line,first_column:Z[Z.length-(Ve||1)].first_column,last_column:Z[Z.length-1].last_column},de&&(_e._$.range=[Z[Z.length-(Ve||1)].range[0],Z[Z.length-1].range[1]]),Pe=this.performAction.apply(_e,[ce,Oe,ae,Ie.yy,pe[1],ue,Z].concat($e)),typeof Pe<"u")return Pe;Ve&&(J=J.slice(0,-1*Ve*2),ue=ue.slice(0,-1*Ve),Z=Z.slice(0,-1*Ve)),J.push(this.productions_[pe[1]][0]),ue.push(_e.$),Z.push(_e._$),De=Se[J[J.length-2]][J[J.length-1]],J.push(De);break;case 3:return!0}}return!0},"parse")},le=function(){var K={EOF:1,parseError:o(function(te,J){if(this.yy.parser)this.yy.parser.parseError(te,J);else throw new Error(te)},"parseError"),setInput:o(function(X,te){return this.yy=te||this.yy||{},this._input=X,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var X=this._input[0];this.yytext+=X,this.yyleng++,this.offset++,this.match+=X,this.matched+=X;var te=X.match(/(?:\r\n?|\n).*/g);return te?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),X},"input"),unput:o(function(X){var te=X.length,J=X.split(/(?:\r\n?|\n)/g);this._input=X+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-te),this.offset-=te;var se=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),J.length-1&&(this.yylineno-=J.length-1);var ue=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:J?(J.length===se.length?this.yylloc.first_column:0)+se[se.length-J.length].length-J[0].length:this.yylloc.first_column-te},this.options.ranges&&(this.yylloc.range=[ue[0],ue[0]+this.yyleng-te]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
+`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(X){this.unput(this.match.slice(X))},"less"),pastInput:o(function(){var X=this.matched.substr(0,this.matched.length-this.match.length);return(X.length>20?"...":"")+X.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var X=this.match;return X.length<20&&(X+=this._input.substr(0,20-X.length)),(X.substr(0,20)+(X.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var X=this.pastInput(),te=new Array(X.length+1).join("-");return X+this.upcomingInput()+`
+`+te+"^"},"showPosition"),test_match:o(function(X,te){var J,se,ue;if(this.options.backtrack_lexer&&(ue={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(ue.yylloc.range=this.yylloc.range.slice(0))),se=X[0].match(/(?:\r\n?|\n).*/g),se&&(this.yylineno+=se.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:se?se[se.length-1].length-se[se.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+X[0].length},this.yytext+=X[0],this.match+=X[0],this.matches=X,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(X[0].length),this.matched+=X[0],J=this.performAction.call(this,this.yy,this,te,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),J)return J;if(this._backtrack){for(var Z in ue)this[Z]=ue[Z];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var X,te,J,se;this._more||(this.yytext="",this.match="");for(var ue=this._currentRules(),Z=0;Z<ue.length;Z++)if(J=this._input.match(this.rules[ue[Z]]),J&&(!te||J[0].length>te[0].length)){if(te=J,se=Z,this.options.backtrack_lexer){if(X=this.test_match(J,ue[Z]),X!==!1)return X;if(this._backtrack){te=!1;continue}else return!1}else if(!this.options.flex)break}return te?(X=this.test_match(te,ue[se]),X!==!1?X:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text.
+`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var te=this.next();return te||this.lex()},"lex"),begin:o(function(te){this.conditionStack.push(te)},"begin"),popState:o(function(){var te=this.conditionStack.length-1;return te>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(te){return te=this.conditionStack.length-1-Math.abs(te||0),te>=0?this.conditionStack[te]:"INITIAL"},"topState"),pushState:o(function(te){this.begin(te)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(te,J,se,ue){var Z=ue;switch(se){case 0:return 5;case 1:break;case 2:break;case 3:break;case 4:break;case 5:break;case 6:return 19;case 7:return this.begin("LINE"),14;break;case 8:return this.begin("ID"),50;break;case 9:return this.begin("ID"),52;break;case 10:return 13;case 11:return this.begin("ID"),53;break;case 12:return J.yytext=J.yytext.trim(),this.begin("ALIAS"),70;break;case 13:return this.popState(),this.popState(),this.begin("LINE"),51;break;case 14:return this.popState(),this.popState(),5;break;case 15:return this.begin("LINE"),36;break;case 16:return this.begin("LINE"),37;break;case 17:return this.begin("LINE"),38;break;case 18:return this.begin("LINE"),39;break;case 19:return this.begin("LINE"),49;break;case 20:return this.begin("LINE"),41;break;case 21:return this.begin("LINE"),43;break;case 22:return this.begin("LINE"),48;break;case 23:return this.begin("LINE"),44;break;case 24:return this.begin("LINE"),47;break;case 25:return this.begin("LINE"),46;break;case 26:return this.popState(),15;break;case 27:return 16;case 28:return 65;case 29:return 66;case 30:return 59;case 31:return 60;case 32:return 61;case 33:return 62;case 34:return 57;case 35:return 54;case 36:return this.begin("ID"),21;break;case 37:return this.begin("ID"),23;break;case 38:return 29;case 39:return 30;case 40:return this.begin("acc_title"),31;break;case 41:return this.popState(),"acc_title_value";break;case 42:return this.begin("acc_descr"),33;break;case 43:return this.popState(),"acc_descr_value";break;case 44:this.begin("acc_descr_multiline");break;case 45:this.popState();break;case 46:return"acc_descr_multiline_value";case 47:return 6;case 48:return 18;case 49:return 20;case 50:return 64;case 51:return 5;case 52:return J.yytext=J.yytext.trim(),70;break;case 53:return 73;case 54:return 74;case 55:return 75;case 56:return 76;case 57:return 71;case 58:return 72;case 59:return 77;case 60:return 78;case 61:return 79;case 62:return 80;case 63:return 81;case 64:return 68;case 65:return 69;case 66:return 5;case 67:return"INVALID"}},"anonymous"),rules:[/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:((?!\n)\s)+)/i,/^(?:#[^\n]*)/i,/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[0-9]+(?=[ \n]+))/i,/^(?:box\b)/i,/^(?:participant\b)/i,/^(?:actor\b)/i,/^(?:create\b)/i,/^(?:destroy\b)/i,/^(?:[^\<->\->:\n,;]+?([\-]*[^\<->\->:\n,;]+?)*?(?=((?!\n)\s)+as(?!\n)\s|[#\n;]|$))/i,/^(?:as\b)/i,/^(?:(?:))/i,/^(?:loop\b)/i,/^(?:rect\b)/i,/^(?:opt\b)/i,/^(?:alt\b)/i,/^(?:else\b)/i,/^(?:par\b)/i,/^(?:par_over\b)/i,/^(?:and\b)/i,/^(?:critical\b)/i,/^(?:option\b)/i,/^(?:break\b)/i,/^(?:(?:[:]?(?:no)?wrap)?[^#\n;]*)/i,/^(?:end\b)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:links\b)/i,/^(?:link\b)/i,/^(?:properties\b)/i,/^(?:details\b)/i,/^(?:over\b)/i,/^(?:note\b)/i,/^(?:activate\b)/i,/^(?:deactivate\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:title:\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:sequenceDiagram\b)/i,/^(?:autonumber\b)/i,/^(?:off\b)/i,/^(?:,)/i,/^(?:;)/i,/^(?:[^\+\<->\->:\n,;]+((?!(-x|--x|-\)|--\)))[\-]*[^\+\<->\->:\n,;]+)*)/i,/^(?:->>)/i,/^(?:<<->>)/i,/^(?:-->>)/i,/^(?:<<-->>)/i,/^(?:->)/i,/^(?:-->)/i,/^(?:-[x])/i,/^(?:--[x])/i,/^(?:-[\)])/i,/^(?:--[\)])/i,/^(?::(?:(?:no)?wrap)?[^#\n;]+)/i,/^(?:\+)/i,/^(?:-)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[45,46],inclusive:!1},acc_descr:{rules:[43],inclusive:!1},acc_title:{rules:[41],inclusive:!1},ID:{rules:[2,3,12],inclusive:!1},ALIAS:{rules:[2,3,13,14],inclusive:!1},LINE:{rules:[2,3,26],inclusive:!1},INITIAL:{rules:[0,1,3,4,5,6,7,8,9,10,11,15,16,17,18,19,20,21,22,23,24,25,27,28,29,30,31,32,33,34,35,36,37,38,39,40,42,44,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67],inclusive:!0}}};return K}();ne.lexer=le;function he(){this.yy={}}return o(he,"Parser"),he.prototype=ne,ne.Parser=he,new he}();CO.parser=CO;lfe=CO});var iVe,aVe,sVe,_6,ufe=N(()=>{"use strict";zt();vt();s6();gr();mi();iVe={SOLID:0,DOTTED:1,NOTE:2,SOLID_CROSS:3,DOTTED_CROSS:4,SOLID_OPEN:5,DOTTED_OPEN:6,LOOP_START:10,LOOP_END:11,ALT_START:12,ALT_ELSE:13,ALT_END:14,OPT_START:15,OPT_END:16,ACTIVE_START:17,ACTIVE_END:18,PAR_START:19,PAR_AND:20,PAR_END:21,RECT_START:22,RECT_END:23,SOLID_POINT:24,DOTTED_POINT:25,AUTONUMBER:26,CRITICAL_START:27,CRITICAL_OPTION:28,CRITICAL_END:29,BREAK_START:30,BREAK_END:31,PAR_OVER_START:32,BIDIRECTIONAL_SOLID:33,BIDIRECTIONAL_DOTTED:34},aVe={FILLED:0,OPEN:1},sVe={LEFTOF:0,RIGHTOF:1,OVER:2},_6=class{constructor(){this.state=new pf(()=>({prevActor:void 0,actors:new Map,createdActors:new Map,destroyedActors:new Map,boxes:[],messages:[],notes:[],sequenceNumbersEnabled:!1,wrapEnabled:void 0,currentBox:void 0,lastCreated:void 0,lastDestroyed:void 0}));this.setAccTitle=Lr;this.setAccDescription=Nr;this.setDiagramTitle=$r;this.getAccTitle=Rr;this.getAccDescription=Mr;this.getDiagramTitle=Ir;this.apply=this.apply.bind(this),this.parseBoxData=this.parseBoxData.bind(this),this.parseMessage=this.parseMessage.bind(this),this.clear(),this.setWrap(me().wrap),this.LINETYPE=iVe,this.ARROWTYPE=aVe,this.PLACEMENT=sVe}static{o(this,"SequenceDB")}addBox(e){this.state.records.boxes.push({name:e.text,wrap:e.wrap??this.autoWrap(),fill:e.color,actorKeys:[]}),this.state.records.currentBox=this.state.records.boxes.slice(-1)[0]}addActor(e,r,n,i){let a=this.state.records.currentBox,s=this.state.records.actors.get(e);if(s){if(this.state.records.currentBox&&s.box&&this.state.records.currentBox!==s.box)throw new Error(`A same participant should only be defined in one Box: ${s.name} can't be in '${s.box.name}' and in '${this.state.records.currentBox.name}' at the same time.`);if(a=s.box?s.box:this.state.records.currentBox,s.box=a,s&&r===s.name&&n==null)return}if(n?.text==null&&(n={text:r,type:i}),(i==null||n.text==null)&&(n={text:r,type:i}),this.state.records.actors.set(e,{box:a,name:r,description:n.text,wrap:n.wrap??this.autoWrap(),prevActor:this.state.records.prevActor,links:{},properties:{},actorCnt:null,rectData:null,type:i??"participant"}),this.state.records.prevActor){let l=this.state.records.actors.get(this.state.records.prevActor);l&&(l.nextActor=e)}this.state.records.currentBox&&this.state.records.currentBox.actorKeys.push(e),this.state.records.prevActor=e}activationCount(e){let r,n=0;if(!e)return 0;for(r=0;r<this.state.records.messages.length;r++)this.state.records.messages[r].type===this.LINETYPE.ACTIVE_START&&this.state.records.messages[r].from===e&&n++,this.state.records.messages[r].type===this.LINETYPE.ACTIVE_END&&this.state.records.messages[r].from===e&&n--;return n}addMessage(e,r,n,i){this.state.records.messages.push({id:this.state.records.messages.length.toString(),from:e,to:r,message:n.text,wrap:n.wrap??this.autoWrap(),answer:i})}addSignal(e,r,n,i,a=!1){if(i===this.LINETYPE.ACTIVE_END&&this.activationCount(e??"")<1){let l=new Error("Trying to inactivate an inactive participant ("+e+")");throw l.hash={text:"->>-",token:"->>-",line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["'ACTIVE_PARTICIPANT'"]},l}return this.state.records.messages.push({id:this.state.records.messages.length.toString(),from:e,to:r,message:n?.text??"",wrap:n?.wrap??this.autoWrap(),type:i,activate:a}),!0}hasAtLeastOneBox(){return this.state.records.boxes.length>0}hasAtLeastOneBoxWithTitle(){return this.state.records.boxes.some(e=>e.name)}getMessages(){return this.state.records.messages}getBoxes(){return this.state.records.boxes}getActors(){return this.state.records.actors}getCreatedActors(){return this.state.records.createdActors}getDestroyedActors(){return this.state.records.destroyedActors}getActor(e){return this.state.records.actors.get(e)}getActorKeys(){return[...this.state.records.actors.keys()]}enableSequenceNumbers(){this.state.records.sequenceNumbersEnabled=!0}disableSequenceNumbers(){this.state.records.sequenceNumbersEnabled=!1}showSequenceNumbers(){return this.state.records.sequenceNumbersEnabled}setWrap(e){this.state.records.wrapEnabled=e}extractWrap(e){if(e===void 0)return{};e=e.trim();let r=/^:?wrap:/.exec(e)!==null?!0:/^:?nowrap:/.exec(e)!==null?!1:void 0;return{cleanedText:(r===void 0?e:e.replace(/^:?(?:no)?wrap:/,"")).trim(),wrap:r}}autoWrap(){return this.state.records.wrapEnabled!==void 0?this.state.records.wrapEnabled:me().sequence?.wrap??!1}clear(){this.state.reset(),Ar()}parseMessage(e){let r=e.trim(),{wrap:n,cleanedText:i}=this.extractWrap(r),a={text:i,wrap:n};return Y.debug(`parseMessage: ${JSON.stringify(a)}`),a}parseBoxData(e){let r=/^((?:rgba?|hsla?)\s*\(.*\)|\w*)(.*)$/.exec(e),n=r?.[1]?r[1].trim():"transparent",i=r?.[2]?r[2].trim():void 0;if(window?.CSS)window.CSS.supports("color",n)||(n="transparent",i=e.trim());else{let l=new Option().style;l.color=n,l.color!==n&&(n="transparent",i=e.trim())}let{wrap:a,cleanedText:s}=this.extractWrap(i);return{text:s?Tr(s,me()):void 0,color:n,wrap:a}}addNote(e,r,n){let i={actor:e,placement:r,message:n.text,wrap:n.wrap??this.autoWrap()},a=[].concat(e,e);this.state.records.notes.push(i),this.state.records.messages.push({id:this.state.records.messages.length.toString(),from:a[0],to:a[1],message:n.text,wrap:n.wrap??this.autoWrap(),type:this.LINETYPE.NOTE,placement:r})}addLinks(e,r){let n=this.getActor(e);try{let i=Tr(r.text,me());i=i.replace(/&equals;/g,"="),i=i.replace(/&amp;/g,"&");let a=JSON.parse(i);this.insertLinks(n,a)}catch(i){Y.error("error while parsing actor link text",i)}}addALink(e,r){let n=this.getActor(e);try{let i={},a=Tr(r.text,me()),s=a.indexOf("@");a=a.replace(/&equals;/g,"="),a=a.replace(/&amp;/g,"&");let l=a.slice(0,s-1).trim(),u=a.slice(s+1).trim();i[l]=u,this.insertLinks(n,i)}catch(i){Y.error("error while parsing actor link text",i)}}insertLinks(e,r){if(e.links==null)e.links=r;else for(let n in r)e.links[n]=r[n]}addProperties(e,r){let n=this.getActor(e);try{let i=Tr(r.text,me()),a=JSON.parse(i);this.insertProperties(n,a)}catch(i){Y.error("error while parsing actor properties text",i)}}insertProperties(e,r){if(e.properties==null)e.properties=r;else for(let n in r)e.properties[n]=r[n]}boxEnd(){this.state.records.currentBox=void 0}addDetails(e,r){let n=this.getActor(e),i=document.getElementById(r.text);try{let a=i.innerHTML,s=JSON.parse(a);s.properties&&this.insertProperties(n,s.properties),s.links&&this.insertLinks(n,s.links)}catch(a){Y.error("error while parsing actor details text",a)}}getActorProperty(e,r){if(e?.properties!==void 0)return e.properties[r]}apply(e){if(Array.isArray(e))e.forEach(r=>{this.apply(r)});else switch(e.type){case"sequenceIndex":this.state.records.messages.push({id:this.state.records.messages.length.toString(),from:void 0,to:void 0,message:{start:e.sequenceIndex,step:e.sequenceIndexStep,visible:e.sequenceVisible},wrap:!1,type:e.signalType});break;case"addParticipant":this.addActor(e.actor,e.actor,e.description,e.draw);break;case"createParticipant":if(this.state.records.actors.has(e.actor))throw new Error("It is not possible to have actors with the same id, even if one is destroyed before the next is created. Use 'AS' aliases to simulate the behavior");this.state.records.lastCreated=e.actor,this.addActor(e.actor,e.actor,e.description,e.draw),this.state.records.createdActors.set(e.actor,this.state.records.messages.length);break;case"destroyParticipant":this.state.records.lastDestroyed=e.actor,this.state.records.destroyedActors.set(e.actor,this.state.records.messages.length);break;case"activeStart":this.addSignal(e.actor,void 0,void 0,e.signalType);break;case"activeEnd":this.addSignal(e.actor,void 0,void 0,e.signalType);break;case"addNote":this.addNote(e.actor,e.placement,e.text);break;case"addLinks":this.addLinks(e.actor,e.text);break;case"addALink":this.addALink(e.actor,e.text);break;case"addProperties":this.addProperties(e.actor,e.text);break;case"addDetails":this.addDetails(e.actor,e.text);break;case"addMessage":if(this.state.records.lastCreated){if(e.to!==this.state.records.lastCreated)throw new Error("The created participant "+this.state.records.lastCreated.name+" does not have an associated creating message after its declaration. Please check the sequence diagram.");this.state.records.lastCreated=void 0}else if(this.state.records.lastDestroyed){if(e.to!==this.state.records.lastDestroyed&&e.from!==this.state.records.lastDestroyed)throw new Error("The destroyed participant "+this.state.records.lastDestroyed.name+" does not have an associated destroying message after its declaration. Please check the sequence diagram.");this.state.records.lastDestroyed=void 0}this.addSignal(e.from,e.to,e.msg,e.signalType,e.activate);break;case"boxStart":this.addBox(e.boxData);break;case"boxEnd":this.boxEnd();break;case"loopStart":this.addSignal(void 0,void 0,e.loopText,e.signalType);break;case"loopEnd":this.addSignal(void 0,void 0,void 0,e.signalType);break;case"rectStart":this.addSignal(void 0,void 0,e.color,e.signalType);break;case"rectEnd":this.addSignal(void 0,void 0,void 0,e.signalType);break;case"optStart":this.addSignal(void 0,void 0,e.optText,e.signalType);break;case"optEnd":this.addSignal(void 0,void 0,void 0,e.signalType);break;case"altStart":this.addSignal(void 0,void 0,e.altText,e.signalType);break;case"else":this.addSignal(void 0,void 0,e.altText,e.signalType);break;case"altEnd":this.addSignal(void 0,void 0,void 0,e.signalType);break;case"setAccTitle":Lr(e.text);break;case"parStart":this.addSignal(void 0,void 0,e.parText,e.signalType);break;case"and":this.addSignal(void 0,void 0,e.parText,e.signalType);break;case"parEnd":this.addSignal(void 0,void 0,void 0,e.signalType);break;case"criticalStart":this.addSignal(void 0,void 0,e.criticalText,e.signalType);break;case"option":this.addSignal(void 0,void 0,e.optionText,e.signalType);break;case"criticalEnd":this.addSignal(void 0,void 0,void 0,e.signalType);break;case"breakStart":this.addSignal(void 0,void 0,e.breakText,e.signalType);break;case"breakEnd":this.addSignal(void 0,void 0,void 0,e.signalType);break}}getConfig(){return me().sequence}}});var oVe,hfe,ffe=N(()=>{"use strict";oVe=o(t=>`.actor {
+    stroke: ${t.actorBorder};
+    fill: ${t.actorBkg};
+  }
+
+  text.actor > tspan {
+    fill: ${t.actorTextColor};
+    stroke: none;
+  }
+
+  .actor-line {
+    stroke: ${t.actorLineColor};
+  }
+
+  .messageLine0 {
+    stroke-width: 1.5;
+    stroke-dasharray: none;
+    stroke: ${t.signalColor};
+  }
+
+  .messageLine1 {
+    stroke-width: 1.5;
+    stroke-dasharray: 2, 2;
+    stroke: ${t.signalColor};
+  }
+
+  #arrowhead path {
+    fill: ${t.signalColor};
+    stroke: ${t.signalColor};
+  }
+
+  .sequenceNumber {
+    fill: ${t.sequenceNumberColor};
+  }
+
+  #sequencenumber {
+    fill: ${t.signalColor};
+  }
+
+  #crosshead path {
+    fill: ${t.signalColor};
+    stroke: ${t.signalColor};
+  }
+
+  .messageText {
+    fill: ${t.signalTextColor};
+    stroke: none;
+  }
+
+  .labelBox {
+    stroke: ${t.labelBoxBorderColor};
+    fill: ${t.labelBoxBkgColor};
+  }
+
+  .labelText, .labelText > tspan {
+    fill: ${t.labelTextColor};
+    stroke: none;
+  }
+
+  .loopText, .loopText > tspan {
+    fill: ${t.loopTextColor};
+    stroke: none;
+  }
+
+  .loopLine {
+    stroke-width: 2px;
+    stroke-dasharray: 2, 2;
+    stroke: ${t.labelBoxBorderColor};
+    fill: ${t.labelBoxBorderColor};
+  }
+
+  .note {
+    //stroke: #decc93;
+    stroke: ${t.noteBorderColor};
+    fill: ${t.noteBkgColor};
+  }
+
+  .noteText, .noteText > tspan {
+    fill: ${t.noteTextColor};
+    stroke: none;
+  }
+
+  .activation0 {
+    fill: ${t.activationBkgColor};
+    stroke: ${t.activationBorderColor};
+  }
+
+  .activation1 {
+    fill: ${t.activationBkgColor};
+    stroke: ${t.activationBorderColor};
+  }
+
+  .activation2 {
+    fill: ${t.activationBkgColor};
+    stroke: ${t.activationBorderColor};
+  }
+
+  .actorPopupMenu {
+    position: absolute;
+  }
+
+  .actorPopupMenuPanel {
+    position: absolute;
+    fill: ${t.actorBkg};
+    box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
+    filter: drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4));
+}
+  .actor-man line {
+    stroke: ${t.actorBorder};
+    fill: ${t.actorBkg};
+  }
+  .actor-man circle, line {
+    stroke: ${t.actorBorder};
+    fill: ${t.actorBkg};
+    stroke-width: 2px;
+  }
+`,"getStyles"),hfe=oVe});var AO,vf,pfe,mfe,lVe,dfe,_O,cVe,uVe,Tb,_p,gfe,Uc,DO,hVe,fVe,dVe,pVe,mVe,gVe,yVe,yfe,vVe,xVe,bVe,wVe,TVe,kVe,EVe,vfe,SVe,LO,CVe,hi,xfe=N(()=>{"use strict";gr();Wv();ir();AO=Sa(z0(),1);ji();vf=18*2,pfe="actor-top",mfe="actor-bottom",lVe="actor-box",dfe="actor-man",_O=o(function(t,e){return kd(t,e)},"drawRect"),cVe=o(function(t,e,r,n,i){if(e.links===void 0||e.links===null||Object.keys(e.links).length===0)return{height:0,width:0};let a=e.links,s=e.actorCnt,l=e.rectData;var u="none";i&&(u="block !important");let h=t.append("g");h.attr("id","actor"+s+"_popup"),h.attr("class","actorPopupMenu"),h.attr("display",u);var f="";l.class!==void 0&&(f=" "+l.class);let d=l.width>r?l.width:r,p=h.append("rect");if(p.attr("class","actorPopupMenuPanel"+f),p.attr("x",l.x),p.attr("y",l.height),p.attr("fill",l.fill),p.attr("stroke",l.stroke),p.attr("width",d),p.attr("height",l.height),p.attr("rx",l.rx),p.attr("ry",l.ry),a!=null){var m=20;for(let v in a){var g=h.append("a"),y=(0,AO.sanitizeUrl)(a[v]);g.attr("xlink:href",y),g.attr("target","_blank"),CVe(n)(v,g,l.x+10,l.height+m,d,20,{class:"actor"},n),m+=30}}return p.attr("height",m),{height:l.height+m,width:d}},"drawPopup"),uVe=o(function(t){return"var pu = document.getElementById('"+t+"'); if (pu != null) { pu.style.display = pu.style.display == 'block' ? 'none' : 'block'; }"},"popupMenuToggle"),Tb=o(async function(t,e,r=null){let n=t.append("foreignObject"),i=await mh(e.text,cr()),s=n.append("xhtml:div").attr("style","width: fit-content;").attr("xmlns","http://www.w3.org/1999/xhtml").html(i).node().getBoundingClientRect();if(n.attr("height",Math.round(s.height)).attr("width",Math.round(s.width)),e.class==="noteText"){let l=t.node().firstChild;l.setAttribute("height",s.height+2*e.textMargin);let u=l.getBBox();n.attr("x",Math.round(u.x+u.width/2-s.width/2)).attr("y",Math.round(u.y+u.height/2-s.height/2))}else if(r){let{startx:l,stopx:u,starty:h}=r;if(l>u){let f=l;l=u,u=f}n.attr("x",Math.round(l+Math.abs(l-u)/2-s.width/2)),e.class==="loopText"?n.attr("y",Math.round(h)):n.attr("y",Math.round(h-s.height))}return[n]},"drawKatex"),_p=o(function(t,e){let r=0,n=0,i=e.text.split(Ze.lineBreakRegex),[a,s]=Bo(e.fontSize),l=[],u=0,h=o(()=>e.y,"yfunc");if(e.valign!==void 0&&e.textMargin!==void 0&&e.textMargin>0)switch(e.valign){case"top":case"start":h=o(()=>Math.round(e.y+e.textMargin),"yfunc");break;case"middle":case"center":h=o(()=>Math.round(e.y+(r+n+e.textMargin)/2),"yfunc");break;case"bottom":case"end":h=o(()=>Math.round(e.y+(r+n+2*e.textMargin)-e.textMargin),"yfunc");break}if(e.anchor!==void 0&&e.textMargin!==void 0&&e.width!==void 0)switch(e.anchor){case"left":case"start":e.x=Math.round(e.x+e.textMargin),e.anchor="start",e.dominantBaseline="middle",e.alignmentBaseline="middle";break;case"middle":case"center":e.x=Math.round(e.x+e.width/2),e.anchor="middle",e.dominantBaseline="middle",e.alignmentBaseline="middle";break;case"right":case"end":e.x=Math.round(e.x+e.width-e.textMargin),e.anchor="end",e.dominantBaseline="middle",e.alignmentBaseline="middle";break}for(let[f,d]of i.entries()){e.textMargin!==void 0&&e.textMargin===0&&a!==void 0&&(u=f*a);let p=t.append("text");p.attr("x",e.x),p.attr("y",h()),e.anchor!==void 0&&p.attr("text-anchor",e.anchor).attr("dominant-baseline",e.dominantBaseline).attr("alignment-baseline",e.alignmentBaseline),e.fontFamily!==void 0&&p.style("font-family",e.fontFamily),s!==void 0&&p.style("font-size",s),e.fontWeight!==void 0&&p.style("font-weight",e.fontWeight),e.fill!==void 0&&p.attr("fill",e.fill),e.class!==void 0&&p.attr("class",e.class),e.dy!==void 0?p.attr("dy",e.dy):u!==0&&p.attr("dy",u);let m=d||H9;if(e.tspan){let g=p.append("tspan");g.attr("x",e.x),e.fill!==void 0&&g.attr("fill",e.fill),g.text(m)}else p.text(m);e.valign!==void 0&&e.textMargin!==void 0&&e.textMargin>0&&(n+=(p._groups||p)[0][0].getBBox().height,r=n),l.push(p)}return l},"drawText"),gfe=o(function(t,e){function r(i,a,s,l,u){return i+","+a+" "+(i+s)+","+a+" "+(i+s)+","+(a+l-u)+" "+(i+s-u*1.2)+","+(a+l)+" "+i+","+(a+l)}o(r,"genPoints");let n=t.append("polygon");return n.attr("points",r(e.x,e.y,e.width,e.height,7)),n.attr("class","labelBox"),e.y=e.y+e.height/2,_p(t,e),n},"drawLabel"),Uc=-1,DO=o((t,e,r,n)=>{t.select&&r.forEach(i=>{let a=e.get(i),s=t.select("#actor"+a.actorCnt);!n.mirrorActors&&a.stopy?s.attr("y2",a.stopy+a.height/2):n.mirrorActors&&s.attr("y2",a.stopy)})},"fixLifeLineHeights"),hVe=o(function(t,e,r,n){let i=n?e.stopy:e.starty,a=e.x+e.width/2,s=i+e.height,l=t.append("g").lower();var u=l;n||(Uc++,Object.keys(e.links||{}).length&&!r.forceMenus&&u.attr("onclick",uVe(`actor${Uc}_popup`)).attr("cursor","pointer"),u.append("line").attr("id","actor"+Uc).attr("x1",a).attr("y1",s).attr("x2",a).attr("y2",2e3).attr("class","actor-line 200").attr("stroke-width","0.5px").attr("stroke","#999").attr("name",e.name),u=l.append("g"),e.actorCnt=Uc,e.links!=null&&u.attr("id","root-"+Uc));let h=Tl();var f="actor";e.properties?.class?f=e.properties.class:h.fill="#eaeaea",n?f+=` ${mfe}`:f+=` ${pfe}`,h.x=e.x,h.y=i,h.width=e.width,h.height=e.height,h.class=f,h.rx=3,h.ry=3,h.name=e.name;let d=_O(u,h);if(e.rectData=h,e.properties?.icon){let m=e.properties.icon.trim();m.charAt(0)==="@"?Iq(u,h.x+h.width-20,h.y+10,m.substr(1)):Mq(u,h.x+h.width-20,h.y+10,m)}LO(r,pi(e.description))(e.description,u,h.x,h.y,h.width,h.height,{class:`actor ${lVe}`},r);let p=e.height;if(d.node){let m=d.node().getBBox();e.height=m.height,p=m.height}return p},"drawActorTypeParticipant"),fVe=o(function(t,e,r,n){let i=n?e.stopy:e.starty,a=e.x+e.width/2,s=i+80,l=t.append("g").lower();n||(Uc++,l.append("line").attr("id","actor"+Uc).attr("x1",a).attr("y1",s).attr("x2",a).attr("y2",2e3).attr("class","actor-line 200").attr("stroke-width","0.5px").attr("stroke","#999").attr("name",e.name),e.actorCnt=Uc);let u=t.append("g"),h=dfe;n?h+=` ${mfe}`:h+=` ${pfe}`,u.attr("class",h),u.attr("name",e.name);let f=Tl();f.x=e.x,f.y=i,f.fill="#eaeaea",f.width=e.width,f.height=e.height,f.class="actor",f.rx=3,f.ry=3,u.append("line").attr("id","actor-man-torso"+Uc).attr("x1",a).attr("y1",i+25).attr("x2",a).attr("y2",i+45),u.append("line").attr("id","actor-man-arms"+Uc).attr("x1",a-vf/2).attr("y1",i+33).attr("x2",a+vf/2).attr("y2",i+33),u.append("line").attr("x1",a-vf/2).attr("y1",i+60).attr("x2",a).attr("y2",i+45),u.append("line").attr("x1",a).attr("y1",i+45).attr("x2",a+vf/2-2).attr("y2",i+60);let d=u.append("circle");d.attr("cx",e.x+e.width/2),d.attr("cy",i+10),d.attr("r",15),d.attr("width",e.width),d.attr("height",e.height);let p=u.node().getBBox();return e.height=p.height,LO(r,pi(e.description))(e.description,u,f.x,f.y+35,f.width,f.height,{class:`actor ${dfe}`},r),e.height},"drawActorTypeActor"),dVe=o(async function(t,e,r,n){switch(e.type){case"actor":return await fVe(t,e,r,n);case"participant":return await hVe(t,e,r,n)}},"drawActor"),pVe=o(function(t,e,r){let i=t.append("g");yfe(i,e),e.name&&LO(r)(e.name,i,e.x,e.y+(e.textMaxHeight||0)/2,e.width,0,{class:"text"},r),i.lower()},"drawBox"),mVe=o(function(t){return t.append("g")},"anchorElement"),gVe=o(function(t,e,r,n,i){let a=Tl(),s=e.anchored;a.x=e.startx,a.y=e.starty,a.class="activation"+i%3,a.width=e.stopx-e.startx,a.height=r-e.starty,_O(s,a)},"drawActivation"),yVe=o(async function(t,e,r,n){let{boxMargin:i,boxTextMargin:a,labelBoxHeight:s,labelBoxWidth:l,messageFontFamily:u,messageFontSize:h,messageFontWeight:f}=n,d=t.append("g"),p=o(function(y,v,x,b){return d.append("line").attr("x1",y).attr("y1",v).attr("x2",x).attr("y2",b).attr("class","loopLine")},"drawLoopLine");p(e.startx,e.starty,e.stopx,e.starty),p(e.stopx,e.starty,e.stopx,e.stopy),p(e.startx,e.stopy,e.stopx,e.stopy),p(e.startx,e.starty,e.startx,e.stopy),e.sections!==void 0&&e.sections.forEach(function(y){p(e.startx,y.y,e.stopx,y.y).style("stroke-dasharray","3, 3")});let m=Hv();m.text=r,m.x=e.startx,m.y=e.starty,m.fontFamily=u,m.fontSize=h,m.fontWeight=f,m.anchor="middle",m.valign="middle",m.tspan=!1,m.width=l||50,m.height=s||20,m.textMargin=a,m.class="labelText",gfe(d,m),m=vfe(),m.text=e.title,m.x=e.startx+l/2+(e.stopx-e.startx)/2,m.y=e.starty+i+a,m.anchor="middle",m.valign="middle",m.textMargin=a,m.class="loopText",m.fontFamily=u,m.fontSize=h,m.fontWeight=f,m.wrap=!0;let g=pi(m.text)?await Tb(d,m,e):_p(d,m);if(e.sectionTitles!==void 0){for(let[y,v]of Object.entries(e.sectionTitles))if(v.message){m.text=v.message,m.x=e.startx+(e.stopx-e.startx)/2,m.y=e.sections[y].y+i+a,m.class="loopText",m.anchor="middle",m.valign="middle",m.tspan=!1,m.fontFamily=u,m.fontSize=h,m.fontWeight=f,m.wrap=e.wrap,pi(m.text)?(e.starty=e.sections[y].y,await Tb(d,m,e)):_p(d,m);let x=Math.round(g.map(b=>(b._groups||b)[0][0].getBBox().height).reduce((b,w)=>b+w));e.sections[y].height+=x-(i+a)}}return e.height=Math.round(e.stopy-e.starty),d},"drawLoop"),yfe=o(function(t,e){q5(t,e)},"drawBackgroundRect"),vVe=o(function(t){t.append("defs").append("symbol").attr("id","database").attr("fill-rule","evenodd").attr("clip-rule","evenodd").append("path").attr("transform","scale(.5)").attr("d","M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z")},"insertDatabaseIcon"),xVe=o(function(t){t.append("defs").append("symbol").attr("id","computer").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z")},"insertComputerIcon"),bVe=o(function(t){t.append("defs").append("symbol").attr("id","clock").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z")},"insertClockIcon"),wVe=o(function(t){t.append("defs").append("marker").attr("id","arrowhead").attr("refX",7.9).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto-start-reverse").append("path").attr("d","M -1 0 L 10 5 L 0 10 z")},"insertArrowHead"),TVe=o(function(t){t.append("defs").append("marker").attr("id","filled-head").attr("refX",15.5).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},"insertArrowFilledHead"),kVe=o(function(t){t.append("defs").append("marker").attr("id","sequencenumber").attr("refX",15).attr("refY",15).attr("markerWidth",60).attr("markerHeight",40).attr("orient","auto").append("circle").attr("cx",15).attr("cy",15).attr("r",6)},"insertSequenceNumber"),EVe=o(function(t){t.append("defs").append("marker").attr("id","crosshead").attr("markerWidth",15).attr("markerHeight",8).attr("orient","auto").attr("refX",4).attr("refY",4.5).append("path").attr("fill","none").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1pt").attr("d","M 1,2 L 6,7 M 6,2 L 1,7")},"insertArrowCrossHead"),vfe=o(function(){return{x:0,y:0,fill:void 0,anchor:void 0,style:"#666",width:void 0,height:void 0,textMargin:0,rx:0,ry:0,tspan:!0,valign:void 0}},"getTextObj"),SVe=o(function(){return{x:0,y:0,fill:"#EDF2AE",stroke:"#666",width:100,anchor:"start",height:100,rx:0,ry:0}},"getNoteRect"),LO=function(){function t(a,s,l,u,h,f,d){let p=s.append("text").attr("x",l+h/2).attr("y",u+f/2+5).style("text-anchor","middle").text(a);i(p,d)}o(t,"byText");function e(a,s,l,u,h,f,d,p){let{actorFontSize:m,actorFontFamily:g,actorFontWeight:y}=p,[v,x]=Bo(m),b=a.split(Ze.lineBreakRegex);for(let w=0;w<b.length;w++){let C=w*v-v*(b.length-1)/2,T=s.append("text").attr("x",l+h/2).attr("y",u).style("text-anchor","middle").style("font-size",x).style("font-weight",y).style("font-family",g);T.append("tspan").attr("x",l+h/2).attr("dy",C).text(b[w]),T.attr("y",u+f/2).attr("dominant-baseline","central").attr("alignment-baseline","central"),i(T,d)}}o(e,"byTspan");function r(a,s,l,u,h,f,d,p){let m=s.append("switch"),y=m.append("foreignObject").attr("x",l).attr("y",u).attr("width",h).attr("height",f).append("xhtml:div").style("display","table").style("height","100%").style("width","100%");y.append("div").style("display","table-cell").style("text-align","center").style("vertical-align","middle").text(a),e(a,m,l,u,h,f,d,p),i(y,d)}o(r,"byFo");async function n(a,s,l,u,h,f,d,p){let m=await id(a,cr()),g=s.append("switch"),v=g.append("foreignObject").attr("x",l+h/2-m.width/2).attr("y",u+f/2-m.height/2).attr("width",m.width).attr("height",m.height).append("xhtml:div").style("height","100%").style("width","100%");v.append("div").style("text-align","center").style("vertical-align","middle").html(await mh(a,cr())),e(a,g,l,u,h,f,d,p),i(v,d)}o(n,"byKatex");function i(a,s){for(let l in s)s.hasOwnProperty(l)&&a.attr(l,s[l])}return o(i,"_setTextAttrs"),function(a,s=!1){return s?n:a.textPlacement==="fo"?r:a.textPlacement==="old"?t:e}}(),CVe=function(){function t(i,a,s,l,u,h,f){let d=a.append("text").attr("x",s).attr("y",l).style("text-anchor","start").text(i);n(d,f)}o(t,"byText");function e(i,a,s,l,u,h,f,d){let{actorFontSize:p,actorFontFamily:m,actorFontWeight:g}=d,y=i.split(Ze.lineBreakRegex);for(let v=0;v<y.length;v++){let x=v*p-p*(y.length-1)/2,b=a.append("text").attr("x",s).attr("y",l).style("text-anchor","start").style("font-size",p).style("font-weight",g).style("font-family",m);b.append("tspan").attr("x",s).attr("dy",x).text(y[v]),b.attr("y",l+h/2).attr("dominant-baseline","central").attr("alignment-baseline","central"),n(b,f)}}o(e,"byTspan");function r(i,a,s,l,u,h,f,d){let p=a.append("switch"),g=p.append("foreignObject").attr("x",s).attr("y",l).attr("width",u).attr("height",h).append("xhtml:div").style("display","table").style("height","100%").style("width","100%");g.append("div").style("display","table-cell").style("text-align","center").style("vertical-align","middle").text(i),e(i,p,s,l,u,h,f,d),n(g,f)}o(r,"byFo");function n(i,a){for(let s in a)a.hasOwnProperty(s)&&i.attr(s,a[s])}return o(n,"_setTextAttrs"),function(i){return i.textPlacement==="fo"?r:i.textPlacement==="old"?t:e}}(),hi={drawRect:_O,drawText:_p,drawLabel:gfe,drawActor:dVe,drawBox:pVe,drawPopup:cVe,anchorElement:mVe,drawActivation:gVe,drawLoop:yVe,drawBackgroundRect:yfe,insertArrowHead:wVe,insertArrowFilledHead:TVe,insertSequenceNumber:kVe,insertArrowCrossHead:EVe,insertDatabaseIcon:vVe,insertComputerIcon:xVe,insertClockIcon:bVe,getTextObj:vfe,getNoteRect:SVe,fixLifeLineHeights:DO,sanitizeUrl:AO.sanitizeUrl}});async function _Ve(t,e){rt.bumpVerticalPos(10);let{startx:r,stopx:n,message:i}=e,a=Ze.splitBreaks(i).length,s=pi(i),l=s?await id(i,me()):Gt.calculateTextDimensions(i,Dp(Ne));if(!s){let d=l.height/a;e.height+=d,rt.bumpVerticalPos(d)}let u,h=l.height-10,f=l.width;if(r===n){u=rt.getVerticalPos()+h,Ne.rightAngles||(h+=Ne.boxMargin,u=rt.getVerticalPos()+h),h+=30;let d=Ze.getMax(f/2,Ne.width/2);rt.insert(r-d,rt.getVerticalPos()-10+h,n+d,rt.getVerticalPos()+30+h)}else h+=Ne.boxMargin,u=rt.getVerticalPos()+h,rt.insert(r,u-10,n,u);return rt.bumpVerticalPos(h),e.height+=h,e.stopy=e.starty+e.height,rt.insert(e.fromBounds,e.starty,e.toBounds,e.stopy),u}function Hc(t,e,r,n,i){rt.bumpVerticalPos(r);let a=n;if(e.id&&e.message&&t[e.id]){let s=t[e.id].width,l=Dp(Ne);e.message=Gt.wrapLabel(`[${e.message}]`,s-2*Ne.wrapPadding,l),e.width=s,e.wrap=!0;let u=Gt.calculateTextDimensions(e.message,l),h=Ze.getMax(u.height,Ne.labelBoxHeight);a=n+h,Y.debug(`${h} - ${e.message}`)}i(e),rt.bumpVerticalPos(a)}function RVe(t,e,r,n,i,a,s){function l(h,f){h.x<i.get(t.from).x?(rt.insert(e.stopx-f,e.starty,e.startx,e.stopy+h.height/2+Ne.noteMargin),e.stopx=e.stopx+f):(rt.insert(e.startx,e.starty,e.stopx+f,e.stopy+h.height/2+Ne.noteMargin),e.stopx=e.stopx-f)}o(l,"receiverAdjustment");function u(h,f){h.x<i.get(t.to).x?(rt.insert(e.startx-f,e.starty,e.stopx,e.stopy+h.height/2+Ne.noteMargin),e.startx=e.startx+f):(rt.insert(e.stopx,e.starty,e.startx+f,e.stopy+h.height/2+Ne.noteMargin),e.startx=e.startx-f)}if(o(u,"senderAdjustment"),a.get(t.to)==n){let h=i.get(t.to),f=h.type=="actor"?vf/2+3:h.width/2+3;l(h,f),h.starty=r-h.height/2,rt.bumpVerticalPos(h.height/2)}else if(s.get(t.from)==n){let h=i.get(t.from);if(Ne.mirrorActors){let f=h.type=="actor"?vf/2:h.width/2;u(h,f)}h.stopy=r-h.height/2,rt.bumpVerticalPos(h.height/2)}else if(s.get(t.to)==n){let h=i.get(t.to);if(Ne.mirrorActors){let f=h.type=="actor"?vf/2+3:h.width/2+3;l(h,f)}h.stopy=r-h.height/2,rt.bumpVerticalPos(h.height/2)}}async function MVe(t,e,r){let n={};for(let i of e)if(t.get(i.to)&&t.get(i.from)){let a=t.get(i.to);if(i.placement===r.db.PLACEMENT.LEFTOF&&!a.prevActor||i.placement===r.db.PLACEMENT.RIGHTOF&&!a.nextActor)continue;let s=i.placement!==void 0,l=!s,u=s?_1(Ne):Dp(Ne),h=i.wrap?Gt.wrapLabel(i.message,Ne.width-2*Ne.wrapPadding,u):i.message,d=(pi(h)?await id(i.message,me()):Gt.calculateTextDimensions(h,u)).width+2*Ne.wrapPadding;l&&i.from===a.nextActor?n[i.to]=Ze.getMax(n[i.to]||0,d):l&&i.from===a.prevActor?n[i.from]=Ze.getMax(n[i.from]||0,d):l&&i.from===i.to?(n[i.from]=Ze.getMax(n[i.from]||0,d/2),n[i.to]=Ze.getMax(n[i.to]||0,d/2)):i.placement===r.db.PLACEMENT.RIGHTOF?n[i.from]=Ze.getMax(n[i.from]||0,d):i.placement===r.db.PLACEMENT.LEFTOF?n[a.prevActor]=Ze.getMax(n[a.prevActor]||0,d):i.placement===r.db.PLACEMENT.OVER&&(a.prevActor&&(n[a.prevActor]=Ze.getMax(n[a.prevActor]||0,d/2)),a.nextActor&&(n[i.from]=Ze.getMax(n[i.from]||0,d/2)))}return Y.debug("maxMessageWidthPerActor:",n),n}async function OVe(t,e,r){let n=0;for(let a of t.keys()){let s=t.get(a);s.wrap&&(s.description=Gt.wrapLabel(s.description,Ne.width-2*Ne.wrapPadding,RO(Ne)));let l=pi(s.description)?await id(s.description,me()):Gt.calculateTextDimensions(s.description,RO(Ne));s.width=s.wrap?Ne.width:Ze.getMax(Ne.width,l.width+2*Ne.wrapPadding),s.height=s.wrap?Ze.getMax(l.height,Ne.height):Ne.height,n=Ze.getMax(n,s.height)}for(let a in e){let s=t.get(a);if(!s)continue;let l=t.get(s.nextActor);if(!l){let d=e[a]+Ne.actorMargin-s.width/2;s.margin=Ze.getMax(d,Ne.actorMargin);continue}let h=e[a]+Ne.actorMargin-s.width/2-l.width/2;s.margin=Ze.getMax(h,Ne.actorMargin)}let i=0;return r.forEach(a=>{let s=Dp(Ne),l=a.actorKeys.reduce((f,d)=>f+=t.get(d).width+(t.get(d).margin||0),0);l-=2*Ne.boxTextMargin,a.wrap&&(a.name=Gt.wrapLabel(a.name,l-2*Ne.wrapPadding,s));let u=Gt.calculateTextDimensions(a.name,s);i=Ze.getMax(u.height,i);let h=Ze.getMax(l,u.width+2*Ne.wrapPadding);if(a.margin=Ne.boxTextMargin,l<h){let f=(h-l)/2;a.margin+=f}}),r.forEach(a=>a.textMaxHeight=i),Ze.getMax(n,Ne.height)}var Ne,rt,AVe,Dp,_1,RO,DVe,LVe,NO,wfe,Tfe,D6,bfe,NVe,IVe,PVe,BVe,FVe,kfe,Efe=N(()=>{"use strict";dr();xfe();vt();gr();Wv();zt();s0();ir();Ei();Ne={},rt={data:{startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},verticalPos:0,sequenceItems:[],activations:[],models:{getHeight:o(function(){return Math.max.apply(null,this.actors.length===0?[0]:this.actors.map(t=>t.height||0))+(this.loops.length===0?0:this.loops.map(t=>t.height||0).reduce((t,e)=>t+e))+(this.messages.length===0?0:this.messages.map(t=>t.height||0).reduce((t,e)=>t+e))+(this.notes.length===0?0:this.notes.map(t=>t.height||0).reduce((t,e)=>t+e))},"getHeight"),clear:o(function(){this.actors=[],this.boxes=[],this.loops=[],this.messages=[],this.notes=[]},"clear"),addBox:o(function(t){this.boxes.push(t)},"addBox"),addActor:o(function(t){this.actors.push(t)},"addActor"),addLoop:o(function(t){this.loops.push(t)},"addLoop"),addMessage:o(function(t){this.messages.push(t)},"addMessage"),addNote:o(function(t){this.notes.push(t)},"addNote"),lastActor:o(function(){return this.actors[this.actors.length-1]},"lastActor"),lastLoop:o(function(){return this.loops[this.loops.length-1]},"lastLoop"),lastMessage:o(function(){return this.messages[this.messages.length-1]},"lastMessage"),lastNote:o(function(){return this.notes[this.notes.length-1]},"lastNote"),actors:[],boxes:[],loops:[],messages:[],notes:[]},init:o(function(){this.sequenceItems=[],this.activations=[],this.models.clear(),this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},this.verticalPos=0,Tfe(me())},"init"),updateVal:o(function(t,e,r,n){t[e]===void 0?t[e]=r:t[e]=n(r,t[e])},"updateVal"),updateBounds:o(function(t,e,r,n){let i=this,a=0;function s(l){return o(function(h){a++;let f=i.sequenceItems.length-a+1;i.updateVal(h,"starty",e-f*Ne.boxMargin,Math.min),i.updateVal(h,"stopy",n+f*Ne.boxMargin,Math.max),i.updateVal(rt.data,"startx",t-f*Ne.boxMargin,Math.min),i.updateVal(rt.data,"stopx",r+f*Ne.boxMargin,Math.max),l!=="activation"&&(i.updateVal(h,"startx",t-f*Ne.boxMargin,Math.min),i.updateVal(h,"stopx",r+f*Ne.boxMargin,Math.max),i.updateVal(rt.data,"starty",e-f*Ne.boxMargin,Math.min),i.updateVal(rt.data,"stopy",n+f*Ne.boxMargin,Math.max))},"updateItemBounds")}o(s,"updateFn"),this.sequenceItems.forEach(s()),this.activations.forEach(s("activation"))},"updateBounds"),insert:o(function(t,e,r,n){let i=Ze.getMin(t,r),a=Ze.getMax(t,r),s=Ze.getMin(e,n),l=Ze.getMax(e,n);this.updateVal(rt.data,"startx",i,Math.min),this.updateVal(rt.data,"starty",s,Math.min),this.updateVal(rt.data,"stopx",a,Math.max),this.updateVal(rt.data,"stopy",l,Math.max),this.updateBounds(i,s,a,l)},"insert"),newActivation:o(function(t,e,r){let n=r.get(t.from),i=D6(t.from).length||0,a=n.x+n.width/2+(i-1)*Ne.activationWidth/2;this.activations.push({startx:a,starty:this.verticalPos+2,stopx:a+Ne.activationWidth,stopy:void 0,actor:t.from,anchored:hi.anchorElement(e)})},"newActivation"),endActivation:o(function(t){let e=this.activations.map(function(r){return r.actor}).lastIndexOf(t.from);return this.activations.splice(e,1)[0]},"endActivation"),createLoop:o(function(t={message:void 0,wrap:!1,width:void 0},e){return{startx:void 0,starty:this.verticalPos,stopx:void 0,stopy:void 0,title:t.message,wrap:t.wrap,width:t.width,height:0,fill:e}},"createLoop"),newLoop:o(function(t={message:void 0,wrap:!1,width:void 0},e){this.sequenceItems.push(this.createLoop(t,e))},"newLoop"),endLoop:o(function(){return this.sequenceItems.pop()},"endLoop"),isLoopOverlap:o(function(){return this.sequenceItems.length?this.sequenceItems[this.sequenceItems.length-1].overlap:!1},"isLoopOverlap"),addSectionToLoop:o(function(t){let e=this.sequenceItems.pop();e.sections=e.sections||[],e.sectionTitles=e.sectionTitles||[],e.sections.push({y:rt.getVerticalPos(),height:0}),e.sectionTitles.push(t),this.sequenceItems.push(e)},"addSectionToLoop"),saveVerticalPos:o(function(){this.isLoopOverlap()&&(this.savedVerticalPos=this.verticalPos)},"saveVerticalPos"),resetVerticalPos:o(function(){this.isLoopOverlap()&&(this.verticalPos=this.savedVerticalPos)},"resetVerticalPos"),bumpVerticalPos:o(function(t){this.verticalPos=this.verticalPos+t,this.data.stopy=Ze.getMax(this.data.stopy,this.verticalPos)},"bumpVerticalPos"),getVerticalPos:o(function(){return this.verticalPos},"getVerticalPos"),getBounds:o(function(){return{bounds:this.data,models:this.models}},"getBounds")},AVe=o(async function(t,e){rt.bumpVerticalPos(Ne.boxMargin),e.height=Ne.boxMargin,e.starty=rt.getVerticalPos();let r=Tl();r.x=e.startx,r.y=e.starty,r.width=e.width||Ne.width,r.class="note";let n=t.append("g"),i=hi.drawRect(n,r),a=Hv();a.x=e.startx,a.y=e.starty,a.width=r.width,a.dy="1em",a.text=e.message,a.class="noteText",a.fontFamily=Ne.noteFontFamily,a.fontSize=Ne.noteFontSize,a.fontWeight=Ne.noteFontWeight,a.anchor=Ne.noteAlign,a.textMargin=Ne.noteMargin,a.valign="center";let s=pi(a.text)?await Tb(n,a):_p(n,a),l=Math.round(s.map(u=>(u._groups||u)[0][0].getBBox().height).reduce((u,h)=>u+h));i.attr("height",l+2*Ne.noteMargin),e.height+=l+2*Ne.noteMargin,rt.bumpVerticalPos(l+2*Ne.noteMargin),e.stopy=e.starty+l+2*Ne.noteMargin,e.stopx=e.startx+r.width,rt.insert(e.startx,e.starty,e.stopx,e.stopy),rt.models.addNote(e)},"drawNote"),Dp=o(t=>({fontFamily:t.messageFontFamily,fontSize:t.messageFontSize,fontWeight:t.messageFontWeight}),"messageFont"),_1=o(t=>({fontFamily:t.noteFontFamily,fontSize:t.noteFontSize,fontWeight:t.noteFontWeight}),"noteFont"),RO=o(t=>({fontFamily:t.actorFontFamily,fontSize:t.actorFontSize,fontWeight:t.actorFontWeight}),"actorFont");o(_Ve,"boundMessage");DVe=o(async function(t,e,r,n){let{startx:i,stopx:a,starty:s,message:l,type:u,sequenceIndex:h,sequenceVisible:f}=e,d=Gt.calculateTextDimensions(l,Dp(Ne)),p=Hv();p.x=i,p.y=s+10,p.width=a-i,p.class="messageText",p.dy="1em",p.text=l,p.fontFamily=Ne.messageFontFamily,p.fontSize=Ne.messageFontSize,p.fontWeight=Ne.messageFontWeight,p.anchor=Ne.messageAlign,p.valign="center",p.textMargin=Ne.wrapPadding,p.tspan=!1,pi(p.text)?await Tb(t,p,{startx:i,stopx:a,starty:r}):_p(t,p);let m=d.width,g;i===a?Ne.rightAngles?g=t.append("path").attr("d",`M  ${i},${r} H ${i+Ze.getMax(Ne.width/2,m/2)} V ${r+25} H ${i}`):g=t.append("path").attr("d","M "+i+","+r+" C "+(i+60)+","+(r-10)+" "+(i+60)+","+(r+30)+" "+i+","+(r+20)):(g=t.append("line"),g.attr("x1",i),g.attr("y1",r),g.attr("x2",a),g.attr("y2",r)),u===n.db.LINETYPE.DOTTED||u===n.db.LINETYPE.DOTTED_CROSS||u===n.db.LINETYPE.DOTTED_POINT||u===n.db.LINETYPE.DOTTED_OPEN||u===n.db.LINETYPE.BIDIRECTIONAL_DOTTED?(g.style("stroke-dasharray","3, 3"),g.attr("class","messageLine1")):g.attr("class","messageLine0");let y="";Ne.arrowMarkerAbsolute&&(y=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,y=y.replace(/\(/g,"\\("),y=y.replace(/\)/g,"\\)")),g.attr("stroke-width",2),g.attr("stroke","none"),g.style("fill","none"),(u===n.db.LINETYPE.SOLID||u===n.db.LINETYPE.DOTTED)&&g.attr("marker-end","url("+y+"#arrowhead)"),(u===n.db.LINETYPE.BIDIRECTIONAL_SOLID||u===n.db.LINETYPE.BIDIRECTIONAL_DOTTED)&&(g.attr("marker-start","url("+y+"#arrowhead)"),g.attr("marker-end","url("+y+"#arrowhead)")),(u===n.db.LINETYPE.SOLID_POINT||u===n.db.LINETYPE.DOTTED_POINT)&&g.attr("marker-end","url("+y+"#filled-head)"),(u===n.db.LINETYPE.SOLID_CROSS||u===n.db.LINETYPE.DOTTED_CROSS)&&g.attr("marker-end","url("+y+"#crosshead)"),(f||Ne.showSequenceNumbers)&&(g.attr("marker-start","url("+y+"#sequencenumber)"),t.append("text").attr("x",i).attr("y",r+4).attr("font-family","sans-serif").attr("font-size","12px").attr("text-anchor","middle").attr("class","sequenceNumber").text(h))},"drawMessage"),LVe=o(function(t,e,r,n,i,a,s){let l=0,u=0,h,f=0;for(let d of n){let p=e.get(d),m=p.box;h&&h!=m&&(s||rt.models.addBox(h),u+=Ne.boxMargin+h.margin),m&&m!=h&&(s||(m.x=l+u,m.y=i),u+=m.margin),p.width=p.width||Ne.width,p.height=Ze.getMax(p.height||Ne.height,Ne.height),p.margin=p.margin||Ne.actorMargin,f=Ze.getMax(f,p.height),r.get(p.name)&&(u+=p.width/2),p.x=l+u,p.starty=rt.getVerticalPos(),rt.insert(p.x,i,p.x+p.width,p.height),l+=p.width+u,p.box&&(p.box.width=l+m.margin-p.box.x),u=p.margin,h=p.box,rt.models.addActor(p)}h&&!s&&rt.models.addBox(h),rt.bumpVerticalPos(f)},"addActorRenderingData"),NO=o(async function(t,e,r,n){if(n){let i=0;rt.bumpVerticalPos(Ne.boxMargin*2);for(let a of r){let s=e.get(a);s.stopy||(s.stopy=rt.getVerticalPos());let l=await hi.drawActor(t,s,Ne,!0);i=Ze.getMax(i,l)}rt.bumpVerticalPos(i+Ne.boxMargin)}else for(let i of r){let a=e.get(i);await hi.drawActor(t,a,Ne,!1)}},"drawActors"),wfe=o(function(t,e,r,n){let i=0,a=0;for(let s of r){let l=e.get(s),u=IVe(l),h=hi.drawPopup(t,l,u,Ne,Ne.forceMenus,n);h.height>i&&(i=h.height),h.width+l.x>a&&(a=h.width+l.x)}return{maxHeight:i,maxWidth:a}},"drawActorsPopup"),Tfe=o(function(t){Gn(Ne,t),t.fontFamily&&(Ne.actorFontFamily=Ne.noteFontFamily=Ne.messageFontFamily=t.fontFamily),t.fontSize&&(Ne.actorFontSize=Ne.noteFontSize=Ne.messageFontSize=t.fontSize),t.fontWeight&&(Ne.actorFontWeight=Ne.noteFontWeight=Ne.messageFontWeight=t.fontWeight)},"setConf"),D6=o(function(t){return rt.activations.filter(function(e){return e.actor===t})},"actorActivations"),bfe=o(function(t,e){let r=e.get(t),n=D6(t),i=n.reduce(function(s,l){return Ze.getMin(s,l.startx)},r.x+r.width/2-1),a=n.reduce(function(s,l){return Ze.getMax(s,l.stopx)},r.x+r.width/2+1);return[i,a]},"activationBounds");o(Hc,"adjustLoopHeightForWrap");o(RVe,"adjustCreatedDestroyedData");NVe=o(async function(t,e,r,n){let{securityLevel:i,sequence:a}=me();Ne=a;let s;i==="sandbox"&&(s=Ge("#i"+e));let l=i==="sandbox"?Ge(s.nodes()[0].contentDocument.body):Ge("body"),u=i==="sandbox"?s.nodes()[0].contentDocument:document;rt.init(),Y.debug(n.db);let h=i==="sandbox"?l.select(`[id="${e}"]`):Ge(`[id="${e}"]`),f=n.db.getActors(),d=n.db.getCreatedActors(),p=n.db.getDestroyedActors(),m=n.db.getBoxes(),g=n.db.getActorKeys(),y=n.db.getMessages(),v=n.db.getDiagramTitle(),x=n.db.hasAtLeastOneBox(),b=n.db.hasAtLeastOneBoxWithTitle(),w=await MVe(f,y,n);if(Ne.height=await OVe(f,w,m),hi.insertComputerIcon(h),hi.insertDatabaseIcon(h),hi.insertClockIcon(h),x&&(rt.bumpVerticalPos(Ne.boxMargin),b&&rt.bumpVerticalPos(m[0].textMaxHeight)),Ne.hideUnusedParticipants===!0){let F=new Set;y.forEach(P=>{F.add(P.from),F.add(P.to)}),g=g.filter(P=>F.has(P))}LVe(h,f,d,g,0,y,!1);let C=await FVe(y,f,w,n);hi.insertArrowHead(h),hi.insertArrowCrossHead(h),hi.insertArrowFilledHead(h),hi.insertSequenceNumber(h);function T(F,P){let z=rt.endActivation(F);z.starty+18>P&&(z.starty=P-6,P+=12),hi.drawActivation(h,z,P,Ne,D6(F.from).length),rt.insert(z.startx,P-10,z.stopx,P)}o(T,"activeEnd");let E=1,A=1,S=[],_=[],I=0;for(let F of y){let P,z,$;switch(F.type){case n.db.LINETYPE.NOTE:rt.resetVerticalPos(),z=F.noteModel,await AVe(h,z);break;case n.db.LINETYPE.ACTIVE_START:rt.newActivation(F,h,f);break;case n.db.LINETYPE.ACTIVE_END:T(F,rt.getVerticalPos());break;case n.db.LINETYPE.LOOP_START:Hc(C,F,Ne.boxMargin,Ne.boxMargin+Ne.boxTextMargin,H=>rt.newLoop(H));break;case n.db.LINETYPE.LOOP_END:P=rt.endLoop(),await hi.drawLoop(h,P,"loop",Ne),rt.bumpVerticalPos(P.stopy-rt.getVerticalPos()),rt.models.addLoop(P);break;case n.db.LINETYPE.RECT_START:Hc(C,F,Ne.boxMargin,Ne.boxMargin,H=>rt.newLoop(void 0,H.message));break;case n.db.LINETYPE.RECT_END:P=rt.endLoop(),_.push(P),rt.models.addLoop(P),rt.bumpVerticalPos(P.stopy-rt.getVerticalPos());break;case n.db.LINETYPE.OPT_START:Hc(C,F,Ne.boxMargin,Ne.boxMargin+Ne.boxTextMargin,H=>rt.newLoop(H));break;case n.db.LINETYPE.OPT_END:P=rt.endLoop(),await hi.drawLoop(h,P,"opt",Ne),rt.bumpVerticalPos(P.stopy-rt.getVerticalPos()),rt.models.addLoop(P);break;case n.db.LINETYPE.ALT_START:Hc(C,F,Ne.boxMargin,Ne.boxMargin+Ne.boxTextMargin,H=>rt.newLoop(H));break;case n.db.LINETYPE.ALT_ELSE:Hc(C,F,Ne.boxMargin+Ne.boxTextMargin,Ne.boxMargin,H=>rt.addSectionToLoop(H));break;case n.db.LINETYPE.ALT_END:P=rt.endLoop(),await hi.drawLoop(h,P,"alt",Ne),rt.bumpVerticalPos(P.stopy-rt.getVerticalPos()),rt.models.addLoop(P);break;case n.db.LINETYPE.PAR_START:case n.db.LINETYPE.PAR_OVER_START:Hc(C,F,Ne.boxMargin,Ne.boxMargin+Ne.boxTextMargin,H=>rt.newLoop(H)),rt.saveVerticalPos();break;case n.db.LINETYPE.PAR_AND:Hc(C,F,Ne.boxMargin+Ne.boxTextMargin,Ne.boxMargin,H=>rt.addSectionToLoop(H));break;case n.db.LINETYPE.PAR_END:P=rt.endLoop(),await hi.drawLoop(h,P,"par",Ne),rt.bumpVerticalPos(P.stopy-rt.getVerticalPos()),rt.models.addLoop(P);break;case n.db.LINETYPE.AUTONUMBER:E=F.message.start||E,A=F.message.step||A,F.message.visible?n.db.enableSequenceNumbers():n.db.disableSequenceNumbers();break;case n.db.LINETYPE.CRITICAL_START:Hc(C,F,Ne.boxMargin,Ne.boxMargin+Ne.boxTextMargin,H=>rt.newLoop(H));break;case n.db.LINETYPE.CRITICAL_OPTION:Hc(C,F,Ne.boxMargin+Ne.boxTextMargin,Ne.boxMargin,H=>rt.addSectionToLoop(H));break;case n.db.LINETYPE.CRITICAL_END:P=rt.endLoop(),await hi.drawLoop(h,P,"critical",Ne),rt.bumpVerticalPos(P.stopy-rt.getVerticalPos()),rt.models.addLoop(P);break;case n.db.LINETYPE.BREAK_START:Hc(C,F,Ne.boxMargin,Ne.boxMargin+Ne.boxTextMargin,H=>rt.newLoop(H));break;case n.db.LINETYPE.BREAK_END:P=rt.endLoop(),await hi.drawLoop(h,P,"break",Ne),rt.bumpVerticalPos(P.stopy-rt.getVerticalPos()),rt.models.addLoop(P);break;default:try{$=F.msgModel,$.starty=rt.getVerticalPos(),$.sequenceIndex=E,$.sequenceVisible=n.db.showSequenceNumbers();let H=await _Ve(h,$);RVe(F,$,H,I,f,d,p),S.push({messageModel:$,lineStartY:H}),rt.models.addMessage($)}catch(H){Y.error("error while drawing message",H)}}[n.db.LINETYPE.SOLID_OPEN,n.db.LINETYPE.DOTTED_OPEN,n.db.LINETYPE.SOLID,n.db.LINETYPE.DOTTED,n.db.LINETYPE.SOLID_CROSS,n.db.LINETYPE.DOTTED_CROSS,n.db.LINETYPE.SOLID_POINT,n.db.LINETYPE.DOTTED_POINT,n.db.LINETYPE.BIDIRECTIONAL_SOLID,n.db.LINETYPE.BIDIRECTIONAL_DOTTED].includes(F.type)&&(E=E+A),I++}Y.debug("createdActors",d),Y.debug("destroyedActors",p),await NO(h,f,g,!1);for(let F of S)await DVe(h,F.messageModel,F.lineStartY,n);Ne.mirrorActors&&await NO(h,f,g,!0),_.forEach(F=>hi.drawBackgroundRect(h,F)),DO(h,f,g,Ne);for(let F of rt.models.boxes)F.height=rt.getVerticalPos()-F.y,rt.insert(F.x,F.y,F.x+F.width,F.height),F.startx=F.x,F.starty=F.y,F.stopx=F.startx+F.width,F.stopy=F.starty+F.height,F.stroke="rgb(0,0,0, 0.5)",hi.drawBox(h,F,Ne);x&&rt.bumpVerticalPos(Ne.boxMargin);let D=wfe(h,f,g,u),{bounds:k}=rt.getBounds();k.startx===void 0&&(k.startx=0),k.starty===void 0&&(k.starty=0),k.stopx===void 0&&(k.stopx=0),k.stopy===void 0&&(k.stopy=0);let L=k.stopy-k.starty;L<D.maxHeight&&(L=D.maxHeight);let R=L+2*Ne.diagramMarginY;Ne.mirrorActors&&(R=R-Ne.boxMargin+Ne.bottomMarginAdj);let O=k.stopx-k.startx;O<D.maxWidth&&(O=D.maxWidth);let M=O+2*Ne.diagramMarginX;v&&h.append("text").text(v).attr("x",(k.stopx-k.startx)/2-2*Ne.diagramMarginX).attr("y",-25),vn(h,R,M,Ne.useMaxWidth);let B=v?40:0;h.attr("viewBox",k.startx-Ne.diagramMarginX+" -"+(Ne.diagramMarginY+B)+" "+M+" "+(R+B)),Y.debug("models:",rt.models)},"draw");o(MVe,"getMaxMessageWidthPerActor");IVe=o(function(t){let e=0,r=RO(Ne);for(let n in t.links){let a=Gt.calculateTextDimensions(n,r).width+2*Ne.wrapPadding+2*Ne.boxMargin;e<a&&(e=a)}return e},"getRequiredPopupWidth");o(OVe,"calculateActorMargins");PVe=o(async function(t,e,r){let n=e.get(t.from),i=e.get(t.to),a=n.x,s=i.x,l=t.wrap&&t.message,u=pi(t.message)?await id(t.message,me()):Gt.calculateTextDimensions(l?Gt.wrapLabel(t.message,Ne.width,_1(Ne)):t.message,_1(Ne)),h={width:l?Ne.width:Ze.getMax(Ne.width,u.width+2*Ne.noteMargin),height:0,startx:n.x,stopx:0,starty:0,stopy:0,message:t.message};return t.placement===r.db.PLACEMENT.RIGHTOF?(h.width=l?Ze.getMax(Ne.width,u.width):Ze.getMax(n.width/2+i.width/2,u.width+2*Ne.noteMargin),h.startx=a+(n.width+Ne.actorMargin)/2):t.placement===r.db.PLACEMENT.LEFTOF?(h.width=l?Ze.getMax(Ne.width,u.width+2*Ne.noteMargin):Ze.getMax(n.width/2+i.width/2,u.width+2*Ne.noteMargin),h.startx=a-h.width+(n.width-Ne.actorMargin)/2):t.to===t.from?(u=Gt.calculateTextDimensions(l?Gt.wrapLabel(t.message,Ze.getMax(Ne.width,n.width),_1(Ne)):t.message,_1(Ne)),h.width=l?Ze.getMax(Ne.width,n.width):Ze.getMax(n.width,Ne.width,u.width+2*Ne.noteMargin),h.startx=a+(n.width-h.width)/2):(h.width=Math.abs(a+n.width/2-(s+i.width/2))+Ne.actorMargin,h.startx=a<s?a+n.width/2-Ne.actorMargin/2:s+i.width/2-Ne.actorMargin/2),l&&(h.message=Gt.wrapLabel(t.message,h.width-2*Ne.wrapPadding,_1(Ne))),Y.debug(`NM:[${h.startx},${h.stopx},${h.starty},${h.stopy}:${h.width},${h.height}=${t.message}]`),h},"buildNoteModel"),BVe=o(function(t,e,r){if(![r.db.LINETYPE.SOLID_OPEN,r.db.LINETYPE.DOTTED_OPEN,r.db.LINETYPE.SOLID,r.db.LINETYPE.DOTTED,r.db.LINETYPE.SOLID_CROSS,r.db.LINETYPE.DOTTED_CROSS,r.db.LINETYPE.SOLID_POINT,r.db.LINETYPE.DOTTED_POINT,r.db.LINETYPE.BIDIRECTIONAL_SOLID,r.db.LINETYPE.BIDIRECTIONAL_DOTTED].includes(t.type))return{};let[n,i]=bfe(t.from,e),[a,s]=bfe(t.to,e),l=n<=a,u=l?i:n,h=l?a:s,f=Math.abs(a-s)>2,d=o(y=>l?-y:y,"adjustValue");t.from===t.to?h=u:(t.activate&&!f&&(h+=d(Ne.activationWidth/2-1)),[r.db.LINETYPE.SOLID_OPEN,r.db.LINETYPE.DOTTED_OPEN].includes(t.type)||(h+=d(3)),[r.db.LINETYPE.BIDIRECTIONAL_SOLID,r.db.LINETYPE.BIDIRECTIONAL_DOTTED].includes(t.type)&&(u-=d(3)));let p=[n,i,a,s],m=Math.abs(u-h);t.wrap&&t.message&&(t.message=Gt.wrapLabel(t.message,Ze.getMax(m+2*Ne.wrapPadding,Ne.width),Dp(Ne)));let g=Gt.calculateTextDimensions(t.message,Dp(Ne));return{width:Ze.getMax(t.wrap?0:g.width+2*Ne.wrapPadding,m+2*Ne.wrapPadding,Ne.width),height:0,startx:u,stopx:h,starty:0,stopy:0,message:t.message,type:t.type,wrap:t.wrap,fromBounds:Math.min.apply(null,p),toBounds:Math.max.apply(null,p)}},"buildMessageModel"),FVe=o(async function(t,e,r,n){let i={},a=[],s,l,u;for(let h of t){switch(h.type){case n.db.LINETYPE.LOOP_START:case n.db.LINETYPE.ALT_START:case n.db.LINETYPE.OPT_START:case n.db.LINETYPE.PAR_START:case n.db.LINETYPE.PAR_OVER_START:case n.db.LINETYPE.CRITICAL_START:case n.db.LINETYPE.BREAK_START:a.push({id:h.id,msg:h.message,from:Number.MAX_SAFE_INTEGER,to:Number.MIN_SAFE_INTEGER,width:0});break;case n.db.LINETYPE.ALT_ELSE:case n.db.LINETYPE.PAR_AND:case n.db.LINETYPE.CRITICAL_OPTION:h.message&&(s=a.pop(),i[s.id]=s,i[h.id]=s,a.push(s));break;case n.db.LINETYPE.LOOP_END:case n.db.LINETYPE.ALT_END:case n.db.LINETYPE.OPT_END:case n.db.LINETYPE.PAR_END:case n.db.LINETYPE.CRITICAL_END:case n.db.LINETYPE.BREAK_END:s=a.pop(),i[s.id]=s;break;case n.db.LINETYPE.ACTIVE_START:{let d=e.get(h.from?h.from:h.to.actor),p=D6(h.from?h.from:h.to.actor).length,m=d.x+d.width/2+(p-1)*Ne.activationWidth/2,g={startx:m,stopx:m+Ne.activationWidth,actor:h.from,enabled:!0};rt.activations.push(g)}break;case n.db.LINETYPE.ACTIVE_END:{let d=rt.activations.map(p=>p.actor).lastIndexOf(h.from);rt.activations.splice(d,1).splice(0,1)}break}h.placement!==void 0?(l=await PVe(h,e,n),h.noteModel=l,a.forEach(d=>{s=d,s.from=Ze.getMin(s.from,l.startx),s.to=Ze.getMax(s.to,l.startx+l.width),s.width=Ze.getMax(s.width,Math.abs(s.from-s.to))-Ne.labelBoxWidth})):(u=BVe(h,e,n),h.msgModel=u,u.startx&&u.stopx&&a.length>0&&a.forEach(d=>{if(s=d,u.startx===u.stopx){let p=e.get(h.from),m=e.get(h.to);s.from=Ze.getMin(p.x-u.width/2,p.x-p.width/2,s.from),s.to=Ze.getMax(m.x+u.width/2,m.x+p.width/2,s.to),s.width=Ze.getMax(s.width,Math.abs(s.to-s.from))-Ne.labelBoxWidth}else s.from=Ze.getMin(u.startx,s.from),s.to=Ze.getMax(u.stopx,s.to),s.width=Ze.getMax(s.width,u.width)-Ne.labelBoxWidth}))}return rt.activations=[],Y.debug("Loop type widths:",i),i},"calculateLoopBounds"),kfe={bounds:rt,drawActors:NO,drawActorsPopup:wfe,setConf:Tfe,draw:NVe}});var Sfe={};hr(Sfe,{diagram:()=>$Ve});var $Ve,Cfe=N(()=>{"use strict";cfe();ufe();ffe();zt();Efe();$Ve={parser:lfe,get db(){return new _6},renderer:kfe,styles:hfe,init:o(t=>{t.sequence||(t.sequence={}),t.wrap&&(t.sequence.wrap=t.wrap,Yy({sequence:{wrap:t.wrap}}))},"init")}});var MO,L6,IO=N(()=>{"use strict";MO=function(){var t=o(function(Ie,be,W,de){for(W=W||{},de=Ie.length;de--;W[Ie[de]]=be);return W},"o"),e=[1,18],r=[1,19],n=[1,20],i=[1,41],a=[1,42],s=[1,26],l=[1,24],u=[1,25],h=[1,32],f=[1,33],d=[1,34],p=[1,45],m=[1,35],g=[1,36],y=[1,37],v=[1,38],x=[1,27],b=[1,28],w=[1,29],C=[1,30],T=[1,31],E=[1,44],A=[1,46],S=[1,43],_=[1,47],I=[1,9],D=[1,8,9],k=[1,58],L=[1,59],R=[1,60],O=[1,61],M=[1,62],B=[1,63],F=[1,64],P=[1,8,9,41],z=[1,76],$=[1,8,9,12,13,22,39,41,44,66,67,68,69,70,71,72,77,79],H=[1,8,9,12,13,17,20,22,39,41,44,48,58,66,67,68,69,70,71,72,77,79,84,99,101,102],Q=[13,58,84,99,101,102],j=[13,58,71,72,84,99,101,102],ie=[13,58,66,67,68,69,70,84,99,101,102],ne=[1,98],le=[1,115],he=[1,107],K=[1,113],X=[1,108],te=[1,109],J=[1,110],se=[1,111],ue=[1,112],Z=[1,114],Se=[22,58,59,80,84,85,86,87,88,89],ce=[1,8,9,39,41,44],ae=[1,8,9,22],Oe=[1,143],ge=[1,8,9,59],ze=[1,8,9,22,58,59,80,84,85,86,87,88,89],He={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,mermaidDoc:4,statements:5,graphConfig:6,CLASS_DIAGRAM:7,NEWLINE:8,EOF:9,statement:10,classLabel:11,SQS:12,STR:13,SQE:14,namespaceName:15,alphaNumToken:16,DOT:17,className:18,classLiteralName:19,GENERICTYPE:20,relationStatement:21,LABEL:22,namespaceStatement:23,classStatement:24,memberStatement:25,annotationStatement:26,clickStatement:27,styleStatement:28,cssClassStatement:29,noteStatement:30,classDefStatement:31,direction:32,acc_title:33,acc_title_value:34,acc_descr:35,acc_descr_value:36,acc_descr_multiline_value:37,namespaceIdentifier:38,STRUCT_START:39,classStatements:40,STRUCT_STOP:41,NAMESPACE:42,classIdentifier:43,STYLE_SEPARATOR:44,members:45,CLASS:46,ANNOTATION_START:47,ANNOTATION_END:48,MEMBER:49,SEPARATOR:50,relation:51,NOTE_FOR:52,noteText:53,NOTE:54,CLASSDEF:55,classList:56,stylesOpt:57,ALPHA:58,COMMA:59,direction_tb:60,direction_bt:61,direction_rl:62,direction_lr:63,relationType:64,lineType:65,AGGREGATION:66,EXTENSION:67,COMPOSITION:68,DEPENDENCY:69,LOLLIPOP:70,LINE:71,DOTTED_LINE:72,CALLBACK:73,LINK:74,LINK_TARGET:75,CLICK:76,CALLBACK_NAME:77,CALLBACK_ARGS:78,HREF:79,STYLE:80,CSSCLASS:81,style:82,styleComponent:83,NUM:84,COLON:85,UNIT:86,SPACE:87,BRKT:88,PCT:89,commentToken:90,textToken:91,graphCodeTokens:92,textNoTagsToken:93,TAGSTART:94,TAGEND:95,"==":96,"--":97,DEFAULT:98,MINUS:99,keywords:100,UNICODE_TEXT:101,BQUOTE_STR:102,$accept:0,$end:1},terminals_:{2:"error",7:"CLASS_DIAGRAM",8:"NEWLINE",9:"EOF",12:"SQS",13:"STR",14:"SQE",17:"DOT",20:"GENERICTYPE",22:"LABEL",33:"acc_title",34:"acc_title_value",35:"acc_descr",36:"acc_descr_value",37:"acc_descr_multiline_value",39:"STRUCT_START",41:"STRUCT_STOP",42:"NAMESPACE",44:"STYLE_SEPARATOR",46:"CLASS",47:"ANNOTATION_START",48:"ANNOTATION_END",49:"MEMBER",50:"SEPARATOR",52:"NOTE_FOR",54:"NOTE",55:"CLASSDEF",58:"ALPHA",59:"COMMA",60:"direction_tb",61:"direction_bt",62:"direction_rl",63:"direction_lr",66:"AGGREGATION",67:"EXTENSION",68:"COMPOSITION",69:"DEPENDENCY",70:"LOLLIPOP",71:"LINE",72:"DOTTED_LINE",73:"CALLBACK",74:"LINK",75:"LINK_TARGET",76:"CLICK",77:"CALLBACK_NAME",78:"CALLBACK_ARGS",79:"HREF",80:"STYLE",81:"CSSCLASS",84:"NUM",85:"COLON",86:"UNIT",87:"SPACE",88:"BRKT",89:"PCT",92:"graphCodeTokens",94:"TAGSTART",95:"TAGEND",96:"==",97:"--",98:"DEFAULT",99:"MINUS",100:"keywords",101:"UNICODE_TEXT",102:"BQUOTE_STR"},productions_:[0,[3,1],[3,1],[4,1],[6,4],[5,1],[5,2],[5,3],[11,3],[15,1],[15,3],[15,2],[18,1],[18,3],[18,1],[18,2],[18,2],[18,2],[10,1],[10,2],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,2],[10,2],[10,1],[23,4],[23,5],[38,2],[40,1],[40,2],[40,3],[24,1],[24,3],[24,4],[24,6],[43,2],[43,3],[26,4],[45,1],[45,2],[25,1],[25,2],[25,1],[25,1],[21,3],[21,4],[21,4],[21,5],[30,3],[30,2],[31,3],[56,1],[56,3],[32,1],[32,1],[32,1],[32,1],[51,3],[51,2],[51,2],[51,1],[64,1],[64,1],[64,1],[64,1],[64,1],[65,1],[65,1],[27,3],[27,4],[27,3],[27,4],[27,4],[27,5],[27,3],[27,4],[27,4],[27,5],[27,4],[27,5],[27,5],[27,6],[28,3],[29,3],[57,1],[57,3],[82,1],[82,2],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[90,1],[90,1],[91,1],[91,1],[91,1],[91,1],[91,1],[91,1],[91,1],[93,1],[93,1],[93,1],[93,1],[16,1],[16,1],[16,1],[16,1],[19,1],[53,1]],performAction:o(function(be,W,de,re,oe,V,xe){var q=V.length-1;switch(oe){case 8:this.$=V[q-1];break;case 9:case 12:case 14:this.$=V[q];break;case 10:case 13:this.$=V[q-2]+"."+V[q];break;case 11:case 15:this.$=V[q-1]+V[q];break;case 16:case 17:this.$=V[q-1]+"~"+V[q]+"~";break;case 18:re.addRelation(V[q]);break;case 19:V[q-1].title=re.cleanupLabel(V[q]),re.addRelation(V[q-1]);break;case 30:this.$=V[q].trim(),re.setAccTitle(this.$);break;case 31:case 32:this.$=V[q].trim(),re.setAccDescription(this.$);break;case 33:re.addClassesToNamespace(V[q-3],V[q-1]);break;case 34:re.addClassesToNamespace(V[q-4],V[q-1]);break;case 35:this.$=V[q],re.addNamespace(V[q]);break;case 36:this.$=[V[q]];break;case 37:this.$=[V[q-1]];break;case 38:V[q].unshift(V[q-2]),this.$=V[q];break;case 40:re.setCssClass(V[q-2],V[q]);break;case 41:re.addMembers(V[q-3],V[q-1]);break;case 42:re.setCssClass(V[q-5],V[q-3]),re.addMembers(V[q-5],V[q-1]);break;case 43:this.$=V[q],re.addClass(V[q]);break;case 44:this.$=V[q-1],re.addClass(V[q-1]),re.setClassLabel(V[q-1],V[q]);break;case 45:re.addAnnotation(V[q],V[q-2]);break;case 46:case 59:this.$=[V[q]];break;case 47:V[q].push(V[q-1]),this.$=V[q];break;case 48:break;case 49:re.addMember(V[q-1],re.cleanupLabel(V[q]));break;case 50:break;case 51:break;case 52:this.$={id1:V[q-2],id2:V[q],relation:V[q-1],relationTitle1:"none",relationTitle2:"none"};break;case 53:this.$={id1:V[q-3],id2:V[q],relation:V[q-1],relationTitle1:V[q-2],relationTitle2:"none"};break;case 54:this.$={id1:V[q-3],id2:V[q],relation:V[q-2],relationTitle1:"none",relationTitle2:V[q-1]};break;case 55:this.$={id1:V[q-4],id2:V[q],relation:V[q-2],relationTitle1:V[q-3],relationTitle2:V[q-1]};break;case 56:re.addNote(V[q],V[q-1]);break;case 57:re.addNote(V[q]);break;case 58:this.$=V[q-2],re.defineClass(V[q-1],V[q]);break;case 60:this.$=V[q-2].concat([V[q]]);break;case 61:re.setDirection("TB");break;case 62:re.setDirection("BT");break;case 63:re.setDirection("RL");break;case 64:re.setDirection("LR");break;case 65:this.$={type1:V[q-2],type2:V[q],lineType:V[q-1]};break;case 66:this.$={type1:"none",type2:V[q],lineType:V[q-1]};break;case 67:this.$={type1:V[q-1],type2:"none",lineType:V[q]};break;case 68:this.$={type1:"none",type2:"none",lineType:V[q]};break;case 69:this.$=re.relationType.AGGREGATION;break;case 70:this.$=re.relationType.EXTENSION;break;case 71:this.$=re.relationType.COMPOSITION;break;case 72:this.$=re.relationType.DEPENDENCY;break;case 73:this.$=re.relationType.LOLLIPOP;break;case 74:this.$=re.lineType.LINE;break;case 75:this.$=re.lineType.DOTTED_LINE;break;case 76:case 82:this.$=V[q-2],re.setClickEvent(V[q-1],V[q]);break;case 77:case 83:this.$=V[q-3],re.setClickEvent(V[q-2],V[q-1]),re.setTooltip(V[q-2],V[q]);break;case 78:this.$=V[q-2],re.setLink(V[q-1],V[q]);break;case 79:this.$=V[q-3],re.setLink(V[q-2],V[q-1],V[q]);break;case 80:this.$=V[q-3],re.setLink(V[q-2],V[q-1]),re.setTooltip(V[q-2],V[q]);break;case 81:this.$=V[q-4],re.setLink(V[q-3],V[q-2],V[q]),re.setTooltip(V[q-3],V[q-1]);break;case 84:this.$=V[q-3],re.setClickEvent(V[q-2],V[q-1],V[q]);break;case 85:this.$=V[q-4],re.setClickEvent(V[q-3],V[q-2],V[q-1]),re.setTooltip(V[q-3],V[q]);break;case 86:this.$=V[q-3],re.setLink(V[q-2],V[q]);break;case 87:this.$=V[q-4],re.setLink(V[q-3],V[q-1],V[q]);break;case 88:this.$=V[q-4],re.setLink(V[q-3],V[q-1]),re.setTooltip(V[q-3],V[q]);break;case 89:this.$=V[q-5],re.setLink(V[q-4],V[q-2],V[q]),re.setTooltip(V[q-4],V[q-1]);break;case 90:this.$=V[q-2],re.setCssStyle(V[q-1],V[q]);break;case 91:re.setCssClass(V[q-1],V[q]);break;case 92:this.$=[V[q]];break;case 93:V[q-2].push(V[q]),this.$=V[q-2];break;case 95:this.$=V[q-1]+V[q];break}},"anonymous"),table:[{3:1,4:2,5:3,6:4,7:[1,6],10:5,16:39,18:21,19:40,21:7,23:8,24:9,25:10,26:11,27:12,28:13,29:14,30:15,31:16,32:17,33:e,35:r,37:n,38:22,42:i,43:23,46:a,47:s,49:l,50:u,52:h,54:f,55:d,58:p,60:m,61:g,62:y,63:v,73:x,74:b,76:w,80:C,81:T,84:E,99:A,101:S,102:_},{1:[3]},{1:[2,1]},{1:[2,2]},{1:[2,3]},t(I,[2,5],{8:[1,48]}),{8:[1,49]},t(D,[2,18],{22:[1,50]}),t(D,[2,20]),t(D,[2,21]),t(D,[2,22]),t(D,[2,23]),t(D,[2,24]),t(D,[2,25]),t(D,[2,26]),t(D,[2,27]),t(D,[2,28]),t(D,[2,29]),{34:[1,51]},{36:[1,52]},t(D,[2,32]),t(D,[2,48],{51:53,64:56,65:57,13:[1,54],22:[1,55],66:k,67:L,68:R,69:O,70:M,71:B,72:F}),{39:[1,65]},t(P,[2,39],{39:[1,67],44:[1,66]}),t(D,[2,50]),t(D,[2,51]),{16:68,58:p,84:E,99:A,101:S},{16:39,18:69,19:40,58:p,84:E,99:A,101:S,102:_},{16:39,18:70,19:40,58:p,84:E,99:A,101:S,102:_},{16:39,18:71,19:40,58:p,84:E,99:A,101:S,102:_},{58:[1,72]},{13:[1,73]},{16:39,18:74,19:40,58:p,84:E,99:A,101:S,102:_},{13:z,53:75},{56:77,58:[1,78]},t(D,[2,61]),t(D,[2,62]),t(D,[2,63]),t(D,[2,64]),t($,[2,12],{16:39,19:40,18:80,17:[1,79],20:[1,81],58:p,84:E,99:A,101:S,102:_}),t($,[2,14],{20:[1,82]}),{15:83,16:84,58:p,84:E,99:A,101:S},{16:39,18:85,19:40,58:p,84:E,99:A,101:S,102:_},t(H,[2,118]),t(H,[2,119]),t(H,[2,120]),t(H,[2,121]),t([1,8,9,12,13,20,22,39,41,44,66,67,68,69,70,71,72,77,79],[2,122]),t(I,[2,6],{10:5,21:7,23:8,24:9,25:10,26:11,27:12,28:13,29:14,30:15,31:16,32:17,18:21,38:22,43:23,16:39,19:40,5:86,33:e,35:r,37:n,42:i,46:a,47:s,49:l,50:u,52:h,54:f,55:d,58:p,60:m,61:g,62:y,63:v,73:x,74:b,76:w,80:C,81:T,84:E,99:A,101:S,102:_}),{5:87,10:5,16:39,18:21,19:40,21:7,23:8,24:9,25:10,26:11,27:12,28:13,29:14,30:15,31:16,32:17,33:e,35:r,37:n,38:22,42:i,43:23,46:a,47:s,49:l,50:u,52:h,54:f,55:d,58:p,60:m,61:g,62:y,63:v,73:x,74:b,76:w,80:C,81:T,84:E,99:A,101:S,102:_},t(D,[2,19]),t(D,[2,30]),t(D,[2,31]),{13:[1,89],16:39,18:88,19:40,58:p,84:E,99:A,101:S,102:_},{51:90,64:56,65:57,66:k,67:L,68:R,69:O,70:M,71:B,72:F},t(D,[2,49]),{65:91,71:B,72:F},t(Q,[2,68],{64:92,66:k,67:L,68:R,69:O,70:M}),t(j,[2,69]),t(j,[2,70]),t(j,[2,71]),t(j,[2,72]),t(j,[2,73]),t(ie,[2,74]),t(ie,[2,75]),{8:[1,94],24:95,40:93,43:23,46:a},{16:96,58:p,84:E,99:A,101:S},{45:97,49:ne},{48:[1,99]},{13:[1,100]},{13:[1,101]},{77:[1,102],79:[1,103]},{22:le,57:104,58:he,80:K,82:105,83:106,84:X,85:te,86:J,87:se,88:ue,89:Z},{58:[1,116]},{13:z,53:117},t(D,[2,57]),t(D,[2,123]),{22:le,57:118,58:he,59:[1,119],80:K,82:105,83:106,84:X,85:te,86:J,87:se,88:ue,89:Z},t(Se,[2,59]),{16:39,18:120,19:40,58:p,84:E,99:A,101:S,102:_},t($,[2,15]),t($,[2,16]),t($,[2,17]),{39:[2,35]},{15:122,16:84,17:[1,121],39:[2,9],58:p,84:E,99:A,101:S},t(ce,[2,43],{11:123,12:[1,124]}),t(I,[2,7]),{9:[1,125]},t(ae,[2,52]),{16:39,18:126,19:40,58:p,84:E,99:A,101:S,102:_},{13:[1,128],16:39,18:127,19:40,58:p,84:E,99:A,101:S,102:_},t(Q,[2,67],{64:129,66:k,67:L,68:R,69:O,70:M}),t(Q,[2,66]),{41:[1,130]},{24:95,40:131,43:23,46:a},{8:[1,132],41:[2,36]},t(P,[2,40],{39:[1,133]}),{41:[1,134]},{41:[2,46],45:135,49:ne},{16:39,18:136,19:40,58:p,84:E,99:A,101:S,102:_},t(D,[2,76],{13:[1,137]}),t(D,[2,78],{13:[1,139],75:[1,138]}),t(D,[2,82],{13:[1,140],78:[1,141]}),{13:[1,142]},t(D,[2,90],{59:Oe}),t(ge,[2,92],{83:144,22:le,58:he,80:K,84:X,85:te,86:J,87:se,88:ue,89:Z}),t(ze,[2,94]),t(ze,[2,96]),t(ze,[2,97]),t(ze,[2,98]),t(ze,[2,99]),t(ze,[2,100]),t(ze,[2,101]),t(ze,[2,102]),t(ze,[2,103]),t(ze,[2,104]),t(D,[2,91]),t(D,[2,56]),t(D,[2,58],{59:Oe}),{58:[1,145]},t($,[2,13]),{15:146,16:84,58:p,84:E,99:A,101:S},{39:[2,11]},t(ce,[2,44]),{13:[1,147]},{1:[2,4]},t(ae,[2,54]),t(ae,[2,53]),{16:39,18:148,19:40,58:p,84:E,99:A,101:S,102:_},t(Q,[2,65]),t(D,[2,33]),{41:[1,149]},{24:95,40:150,41:[2,37],43:23,46:a},{45:151,49:ne},t(P,[2,41]),{41:[2,47]},t(D,[2,45]),t(D,[2,77]),t(D,[2,79]),t(D,[2,80],{75:[1,152]}),t(D,[2,83]),t(D,[2,84],{13:[1,153]}),t(D,[2,86],{13:[1,155],75:[1,154]}),{22:le,58:he,80:K,82:156,83:106,84:X,85:te,86:J,87:se,88:ue,89:Z},t(ze,[2,95]),t(Se,[2,60]),{39:[2,10]},{14:[1,157]},t(ae,[2,55]),t(D,[2,34]),{41:[2,38]},{41:[1,158]},t(D,[2,81]),t(D,[2,85]),t(D,[2,87]),t(D,[2,88],{75:[1,159]}),t(ge,[2,93],{83:144,22:le,58:he,80:K,84:X,85:te,86:J,87:se,88:ue,89:Z}),t(ce,[2,8]),t(P,[2,42]),t(D,[2,89])],defaultActions:{2:[2,1],3:[2,2],4:[2,3],83:[2,35],122:[2,11],125:[2,4],135:[2,47],146:[2,10],150:[2,38]},parseError:o(function(be,W){if(W.recoverable)this.trace(be);else{var de=new Error(be);throw de.hash=W,de}},"parseError"),parse:o(function(be){var W=this,de=[0],re=[],oe=[null],V=[],xe=this.table,q="",pe=0,ve=0,Pe=0,_e=2,we=1,Ve=V.slice.call(arguments,1),De=Object.create(this.lexer),qe={yy:{}};for(var at in this.yy)Object.prototype.hasOwnProperty.call(this.yy,at)&&(qe.yy[at]=this.yy[at]);De.setInput(be,qe.yy),qe.yy.lexer=De,qe.yy.parser=this,typeof De.yylloc>"u"&&(De.yylloc={});var Rt=De.yylloc;V.push(Rt);var st=De.options&&De.options.ranges;typeof qe.yy.parseError=="function"?this.parseError=qe.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Ue(Tt){de.length=de.length-2*Tt,oe.length=oe.length-Tt,V.length=V.length-Tt}o(Ue,"popStack");function ct(){var Tt;return Tt=re.pop()||De.lex()||we,typeof Tt!="number"&&(Tt instanceof Array&&(re=Tt,Tt=re.pop()),Tt=W.symbols_[Tt]||Tt),Tt}o(ct,"lex");for(var We,ot,Yt,bt,Mt,xt,ut={},Et,ft,yt,nt;;){if(Yt=de[de.length-1],this.defaultActions[Yt]?bt=this.defaultActions[Yt]:((We===null||typeof We>"u")&&(We=ct()),bt=xe[Yt]&&xe[Yt][We]),typeof bt>"u"||!bt.length||!bt[0]){var dn="";nt=[];for(Et in xe[Yt])this.terminals_[Et]&&Et>_e&&nt.push("'"+this.terminals_[Et]+"'");De.showPosition?dn="Parse error on line "+(pe+1)+`:
+`+De.showPosition()+`
+Expecting `+nt.join(", ")+", got '"+(this.terminals_[We]||We)+"'":dn="Parse error on line "+(pe+1)+": Unexpected "+(We==we?"end of input":"'"+(this.terminals_[We]||We)+"'"),this.parseError(dn,{text:De.match,token:this.terminals_[We]||We,line:De.yylineno,loc:Rt,expected:nt})}if(bt[0]instanceof Array&&bt.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Yt+", token: "+We);switch(bt[0]){case 1:de.push(We),oe.push(De.yytext),V.push(De.yylloc),de.push(bt[1]),We=null,ot?(We=ot,ot=null):(ve=De.yyleng,q=De.yytext,pe=De.yylineno,Rt=De.yylloc,Pe>0&&Pe--);break;case 2:if(ft=this.productions_[bt[1]][1],ut.$=oe[oe.length-ft],ut._$={first_line:V[V.length-(ft||1)].first_line,last_line:V[V.length-1].last_line,first_column:V[V.length-(ft||1)].first_column,last_column:V[V.length-1].last_column},st&&(ut._$.range=[V[V.length-(ft||1)].range[0],V[V.length-1].range[1]]),xt=this.performAction.apply(ut,[q,ve,pe,qe.yy,bt[1],oe,V].concat(Ve)),typeof xt<"u")return xt;ft&&(de=de.slice(0,-1*ft*2),oe=oe.slice(0,-1*ft),V=V.slice(0,-1*ft)),de.push(this.productions_[bt[1]][0]),oe.push(ut.$),V.push(ut._$),yt=xe[de[de.length-2]][de[de.length-1]],de.push(yt);break;case 3:return!0}}return!0},"parse")},$e=function(){var Ie={EOF:1,parseError:o(function(W,de){if(this.yy.parser)this.yy.parser.parseError(W,de);else throw new Error(W)},"parseError"),setInput:o(function(be,W){return this.yy=W||this.yy||{},this._input=be,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var be=this._input[0];this.yytext+=be,this.yyleng++,this.offset++,this.match+=be,this.matched+=be;var W=be.match(/(?:\r\n?|\n).*/g);return W?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),be},"input"),unput:o(function(be){var W=be.length,de=be.split(/(?:\r\n?|\n)/g);this._input=be+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-W),this.offset-=W;var re=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),de.length-1&&(this.yylineno-=de.length-1);var oe=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:de?(de.length===re.length?this.yylloc.first_column:0)+re[re.length-de.length].length-de[0].length:this.yylloc.first_column-W},this.options.ranges&&(this.yylloc.range=[oe[0],oe[0]+this.yyleng-W]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
+`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(be){this.unput(this.match.slice(be))},"less"),pastInput:o(function(){var be=this.matched.substr(0,this.matched.length-this.match.length);return(be.length>20?"...":"")+be.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var be=this.match;return be.length<20&&(be+=this._input.substr(0,20-be.length)),(be.substr(0,20)+(be.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var be=this.pastInput(),W=new Array(be.length+1).join("-");return be+this.upcomingInput()+`
+`+W+"^"},"showPosition"),test_match:o(function(be,W){var de,re,oe;if(this.options.backtrack_lexer&&(oe={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(oe.yylloc.range=this.yylloc.range.slice(0))),re=be[0].match(/(?:\r\n?|\n).*/g),re&&(this.yylineno+=re.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:re?re[re.length-1].length-re[re.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+be[0].length},this.yytext+=be[0],this.match+=be[0],this.matches=be,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(be[0].length),this.matched+=be[0],de=this.performAction.call(this,this.yy,this,W,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),de)return de;if(this._backtrack){for(var V in oe)this[V]=oe[V];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var be,W,de,re;this._more||(this.yytext="",this.match="");for(var oe=this._currentRules(),V=0;V<oe.length;V++)if(de=this._input.match(this.rules[oe[V]]),de&&(!W||de[0].length>W[0].length)){if(W=de,re=V,this.options.backtrack_lexer){if(be=this.test_match(de,oe[V]),be!==!1)return be;if(this._backtrack){W=!1;continue}else return!1}else if(!this.options.flex)break}return W?(be=this.test_match(W,oe[re]),be!==!1?be:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text.
+`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var W=this.next();return W||this.lex()},"lex"),begin:o(function(W){this.conditionStack.push(W)},"begin"),popState:o(function(){var W=this.conditionStack.length-1;return W>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(W){return W=this.conditionStack.length-1-Math.abs(W||0),W>=0?this.conditionStack[W]:"INITIAL"},"topState"),pushState:o(function(W){this.begin(W)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{},performAction:o(function(W,de,re,oe){var V=oe;switch(re){case 0:return 60;case 1:return 61;case 2:return 62;case 3:return 63;case 4:break;case 5:break;case 6:return this.begin("acc_title"),33;break;case 7:return this.popState(),"acc_title_value";break;case 8:return this.begin("acc_descr"),35;break;case 9:return this.popState(),"acc_descr_value";break;case 10:this.begin("acc_descr_multiline");break;case 11:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:return 8;case 14:break;case 15:return 7;case 16:return 7;case 17:return"EDGE_STATE";case 18:this.begin("callback_name");break;case 19:this.popState();break;case 20:this.popState(),this.begin("callback_args");break;case 21:return 77;case 22:this.popState();break;case 23:return 78;case 24:this.popState();break;case 25:return"STR";case 26:this.begin("string");break;case 27:return 80;case 28:return 55;case 29:return this.begin("namespace"),42;break;case 30:return this.popState(),8;break;case 31:break;case 32:return this.begin("namespace-body"),39;break;case 33:return this.popState(),41;break;case 34:return"EOF_IN_STRUCT";case 35:return 8;case 36:break;case 37:return"EDGE_STATE";case 38:return this.begin("class"),46;break;case 39:return this.popState(),8;break;case 40:break;case 41:return this.popState(),this.popState(),41;break;case 42:return this.begin("class-body"),39;break;case 43:return this.popState(),41;break;case 44:return"EOF_IN_STRUCT";case 45:return"EDGE_STATE";case 46:return"OPEN_IN_STRUCT";case 47:break;case 48:return"MEMBER";case 49:return 81;case 50:return 73;case 51:return 74;case 52:return 76;case 53:return 52;case 54:return 54;case 55:return 47;case 56:return 48;case 57:return 79;case 58:this.popState();break;case 59:return"GENERICTYPE";case 60:this.begin("generic");break;case 61:this.popState();break;case 62:return"BQUOTE_STR";case 63:this.begin("bqstring");break;case 64:return 75;case 65:return 75;case 66:return 75;case 67:return 75;case 68:return 67;case 69:return 67;case 70:return 69;case 71:return 69;case 72:return 68;case 73:return 66;case 74:return 70;case 75:return 71;case 76:return 72;case 77:return 22;case 78:return 44;case 79:return 99;case 80:return 17;case 81:return"PLUS";case 82:return 85;case 83:return 59;case 84:return 88;case 85:return 88;case 86:return 89;case 87:return"EQUALS";case 88:return"EQUALS";case 89:return 58;case 90:return 12;case 91:return 14;case 92:return"PUNCTUATION";case 93:return 84;case 94:return 101;case 95:return 87;case 96:return 87;case 97:return 9}},"anonymous"),rules:[/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/,/^(?:%%[^\n]*(\r?\n)*)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:classDiagram-v2\b)/,/^(?:classDiagram\b)/,/^(?:\[\*\])/,/^(?:call[\s]+)/,/^(?:\([\s]*\))/,/^(?:\()/,/^(?:[^(]*)/,/^(?:\))/,/^(?:[^)]*)/,/^(?:["])/,/^(?:[^"]*)/,/^(?:["])/,/^(?:style\b)/,/^(?:classDef\b)/,/^(?:namespace\b)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:[{])/,/^(?:[}])/,/^(?:$)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:\[\*\])/,/^(?:class\b)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:[}])/,/^(?:[{])/,/^(?:[}])/,/^(?:$)/,/^(?:\[\*\])/,/^(?:[{])/,/^(?:[\n])/,/^(?:[^{}\n]*)/,/^(?:cssClass\b)/,/^(?:callback\b)/,/^(?:link\b)/,/^(?:click\b)/,/^(?:note for\b)/,/^(?:note\b)/,/^(?:<<)/,/^(?:>>)/,/^(?:href\b)/,/^(?:[~])/,/^(?:[^~]*)/,/^(?:~)/,/^(?:[`])/,/^(?:[^`]+)/,/^(?:[`])/,/^(?:_self\b)/,/^(?:_blank\b)/,/^(?:_parent\b)/,/^(?:_top\b)/,/^(?:\s*<\|)/,/^(?:\s*\|>)/,/^(?:\s*>)/,/^(?:\s*<)/,/^(?:\s*\*)/,/^(?:\s*o\b)/,/^(?:\s*\(\))/,/^(?:--)/,/^(?:\.\.)/,/^(?::{1}[^:\n;]+)/,/^(?::{3})/,/^(?:-)/,/^(?:\.)/,/^(?:\+)/,/^(?::)/,/^(?:,)/,/^(?:#)/,/^(?:#)/,/^(?:%)/,/^(?:=)/,/^(?:=)/,/^(?:\w+)/,/^(?:\[)/,/^(?:\])/,/^(?:[!"#$%&'*+,-.`?\\/])/,/^(?:[0-9]+)/,/^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/,/^(?:\s)/,/^(?:\s)/,/^(?:$)/],conditions:{"namespace-body":{rules:[26,33,34,35,36,37,38,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},namespace:{rules:[26,29,30,31,32,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},"class-body":{rules:[26,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},class:{rules:[26,39,40,41,42,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},acc_descr_multiline:{rules:[11,12,26,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},acc_descr:{rules:[9,26,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},acc_title:{rules:[7,26,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},callback_args:{rules:[22,23,26,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},callback_name:{rules:[19,20,21,26,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},href:{rules:[26,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},struct:{rules:[26,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},generic:{rules:[26,49,50,51,52,53,54,55,56,57,58,59,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},bqstring:{rules:[26,49,50,51,52,53,54,55,56,57,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},string:{rules:[24,25,26,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,8,10,13,14,15,16,17,18,26,27,28,29,38,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97],inclusive:!0}}};return Ie}();He.lexer=$e;function Re(){this.yy={}}return o(Re,"Parser"),Re.prototype=He,He.Parser=Re,new Re}();MO.parser=MO;L6=MO});var Dfe,kb,Lfe=N(()=>{"use strict";zt();gr();Dfe=["#","+","~","-",""],kb=class{static{o(this,"ClassMember")}constructor(e,r){this.memberType=r,this.visibility="",this.classifier="",this.text="";let n=Tr(e,me());this.parseMember(n)}getDisplayDetails(){let e=this.visibility+ec(this.id);this.memberType==="method"&&(e+=`(${ec(this.parameters.trim())})`,this.returnType&&(e+=" : "+ec(this.returnType))),e=e.trim();let r=this.parseClassifier();return{displayText:e,cssStyle:r}}parseMember(e){let r="";if(this.memberType==="method"){let a=/([#+~-])?(.+)\((.*)\)([\s$*])?(.*)([$*])?/.exec(e);if(a){let s=a[1]?a[1].trim():"";if(Dfe.includes(s)&&(this.visibility=s),this.id=a[2],this.parameters=a[3]?a[3].trim():"",r=a[4]?a[4].trim():"",this.returnType=a[5]?a[5].trim():"",r===""){let l=this.returnType.substring(this.returnType.length-1);/[$*]/.exec(l)&&(r=l,this.returnType=this.returnType.substring(0,this.returnType.length-1))}}}else{let i=e.length,a=e.substring(0,1),s=e.substring(i-1);Dfe.includes(a)&&(this.visibility=a),/[$*]/.exec(s)&&(r=s),this.id=e.substring(this.visibility===""?0:1,r===""?i:i-1)}this.classifier=r,this.id=this.id.startsWith(" ")?" "+this.id.trim():this.id.trim();let n=`${this.visibility?"\\"+this.visibility:""}${ec(this.id)}${this.memberType==="method"?`(${ec(this.parameters)})${this.returnType?" : "+ec(this.returnType):""}`:""}`;this.text=n.replaceAll("<","&lt;").replaceAll(">","&gt;"),this.text.startsWith("\\&lt;")&&(this.text=this.text.replace("\\&lt;","~"))}parseClassifier(){switch(this.classifier){case"*":return"font-style:italic;";case"$":return"text-decoration:underline;";default:return""}}}});var R6,Rfe,Lp,D1,OO=N(()=>{"use strict";dr();vt();zt();gr();ir();mi();Lfe();R6="classId-",Rfe=0,Lp=o(t=>Ze.sanitizeText(t,me()),"sanitizeText"),D1=class{constructor(){this.relations=[];this.classes=new Map;this.styleClasses=new Map;this.notes=[];this.interfaces=[];this.namespaces=new Map;this.namespaceCounter=0;this.functions=[];this.lineType={LINE:0,DOTTED_LINE:1};this.relationType={AGGREGATION:0,EXTENSION:1,COMPOSITION:2,DEPENDENCY:3,LOLLIPOP:4};this.setupToolTips=o(e=>{let r=Ge(".mermaidTooltip");(r._groups||r)[0][0]===null&&(r=Ge("body").append("div").attr("class","mermaidTooltip").style("opacity",0)),Ge(e).select("svg").selectAll("g.node").on("mouseover",a=>{let s=Ge(a.currentTarget);if(s.attr("title")===null)return;let u=this.getBoundingClientRect();r.transition().duration(200).style("opacity",".9"),r.text(s.attr("title")).style("left",window.scrollX+u.left+(u.right-u.left)/2+"px").style("top",window.scrollY+u.top-14+document.body.scrollTop+"px"),r.html(r.html().replace(/&lt;br\/&gt;/g,"<br/>")),s.classed("hover",!0)}).on("mouseout",a=>{r.transition().duration(500).style("opacity",0),Ge(a.currentTarget).classed("hover",!1)})},"setupToolTips");this.direction="TB";this.setAccTitle=Lr;this.getAccTitle=Rr;this.setAccDescription=Nr;this.getAccDescription=Mr;this.setDiagramTitle=$r;this.getDiagramTitle=Ir;this.getConfig=o(()=>me().class,"getConfig");this.functions.push(this.setupToolTips.bind(this)),this.clear(),this.addRelation=this.addRelation.bind(this),this.addClassesToNamespace=this.addClassesToNamespace.bind(this),this.addNamespace=this.addNamespace.bind(this),this.setCssClass=this.setCssClass.bind(this),this.addMembers=this.addMembers.bind(this),this.addClass=this.addClass.bind(this),this.setClassLabel=this.setClassLabel.bind(this),this.addAnnotation=this.addAnnotation.bind(this),this.addMember=this.addMember.bind(this),this.cleanupLabel=this.cleanupLabel.bind(this),this.addNote=this.addNote.bind(this),this.defineClass=this.defineClass.bind(this),this.setDirection=this.setDirection.bind(this),this.setLink=this.setLink.bind(this),this.bindFunctions=this.bindFunctions.bind(this),this.clear=this.clear.bind(this),this.setTooltip=this.setTooltip.bind(this),this.setClickEvent=this.setClickEvent.bind(this),this.setCssStyle=this.setCssStyle.bind(this)}static{o(this,"ClassDB")}splitClassNameAndType(e){let r=Ze.sanitizeText(e,me()),n="",i=r;if(r.indexOf("~")>0){let a=r.split("~");i=Lp(a[0]),n=Lp(a[1])}return{className:i,type:n}}setClassLabel(e,r){let n=Ze.sanitizeText(e,me());r&&(r=Lp(r));let{className:i}=this.splitClassNameAndType(n);this.classes.get(i).label=r,this.classes.get(i).text=`${r}${this.classes.get(i).type?`<${this.classes.get(i).type}>`:""}`}addClass(e){let r=Ze.sanitizeText(e,me()),{className:n,type:i}=this.splitClassNameAndType(r);if(this.classes.has(n))return;let a=Ze.sanitizeText(n,me());this.classes.set(a,{id:a,type:i,label:a,text:`${a}${i?`&lt;${i}&gt;`:""}`,shape:"classBox",cssClasses:"default",methods:[],members:[],annotations:[],styles:[],domId:R6+a+"-"+Rfe}),Rfe++}addInterface(e,r){let n={id:`interface${this.interfaces.length}`,label:e,classId:r};this.interfaces.push(n)}lookUpDomId(e){let r=Ze.sanitizeText(e,me());if(this.classes.has(r))return this.classes.get(r).domId;throw new Error("Class not found: "+r)}clear(){this.relations=[],this.classes=new Map,this.notes=[],this.interfaces=[],this.functions=[],this.functions.push(this.setupToolTips.bind(this)),this.namespaces=new Map,this.namespaceCounter=0,this.direction="TB",Ar()}getClass(e){return this.classes.get(e)}getClasses(){return this.classes}getRelations(){return this.relations}getNotes(){return this.notes}addRelation(e){Y.debug("Adding relation: "+JSON.stringify(e));let r=[this.relationType.LOLLIPOP,this.relationType.AGGREGATION,this.relationType.COMPOSITION,this.relationType.DEPENDENCY,this.relationType.EXTENSION];e.relation.type1===this.relationType.LOLLIPOP&&!r.includes(e.relation.type2)?(this.addClass(e.id2),this.addInterface(e.id1,e.id2),e.id1=`interface${this.interfaces.length-1}`):e.relation.type2===this.relationType.LOLLIPOP&&!r.includes(e.relation.type1)?(this.addClass(e.id1),this.addInterface(e.id2,e.id1),e.id2=`interface${this.interfaces.length-1}`):(this.addClass(e.id1),this.addClass(e.id2)),e.id1=this.splitClassNameAndType(e.id1).className,e.id2=this.splitClassNameAndType(e.id2).className,e.relationTitle1=Ze.sanitizeText(e.relationTitle1.trim(),me()),e.relationTitle2=Ze.sanitizeText(e.relationTitle2.trim(),me()),this.relations.push(e)}addAnnotation(e,r){let n=this.splitClassNameAndType(e).className;this.classes.get(n).annotations.push(r)}addMember(e,r){this.addClass(e);let n=this.splitClassNameAndType(e).className,i=this.classes.get(n);if(typeof r=="string"){let a=r.trim();a.startsWith("<<")&&a.endsWith(">>")?i.annotations.push(Lp(a.substring(2,a.length-2))):a.indexOf(")")>0?i.methods.push(new kb(a,"method")):a&&i.members.push(new kb(a,"attribute"))}}addMembers(e,r){Array.isArray(r)&&(r.reverse(),r.forEach(n=>this.addMember(e,n)))}addNote(e,r){let n={id:`note${this.notes.length}`,class:r,text:e};this.notes.push(n)}cleanupLabel(e){return e.startsWith(":")&&(e=e.substring(1)),Lp(e.trim())}setCssClass(e,r){e.split(",").forEach(n=>{let i=n;/\d/.exec(n[0])&&(i=R6+i);let a=this.classes.get(i);a&&(a.cssClasses+=" "+r)})}defineClass(e,r){for(let n of e){let i=this.styleClasses.get(n);i===void 0&&(i={id:n,styles:[],textStyles:[]},this.styleClasses.set(n,i)),r&&r.forEach(a=>{if(/color/.exec(a)){let s=a.replace("fill","bgFill");i.textStyles.push(s)}i.styles.push(a)}),this.classes.forEach(a=>{a.cssClasses.includes(n)&&a.styles.push(...r.flatMap(s=>s.split(",")))})}}setTooltip(e,r){e.split(",").forEach(n=>{r!==void 0&&(this.classes.get(n).tooltip=Lp(r))})}getTooltip(e,r){return r&&this.namespaces.has(r)?this.namespaces.get(r).classes.get(e).tooltip:this.classes.get(e).tooltip}setLink(e,r,n){let i=me();e.split(",").forEach(a=>{let s=a;/\d/.exec(a[0])&&(s=R6+s);let l=this.classes.get(s);l&&(l.link=Gt.formatUrl(r,i),i.securityLevel==="sandbox"?l.linkTarget="_top":typeof n=="string"?l.linkTarget=Lp(n):l.linkTarget="_blank")}),this.setCssClass(e,"clickable")}setClickEvent(e,r,n){e.split(",").forEach(i=>{this.setClickFunc(i,r,n),this.classes.get(i).haveCallback=!0}),this.setCssClass(e,"clickable")}setClickFunc(e,r,n){let i=Ze.sanitizeText(e,me());if(me().securityLevel!=="loose"||r===void 0)return;let s=i;if(this.classes.has(s)){let l=this.lookUpDomId(s),u=[];if(typeof n=="string"){u=n.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let h=0;h<u.length;h++){let f=u[h].trim();f.startsWith('"')&&f.endsWith('"')&&(f=f.substr(1,f.length-2)),u[h]=f}}u.length===0&&u.push(l),this.functions.push(()=>{let h=document.querySelector(`[id="${l}"]`);h!==null&&h.addEventListener("click",()=>{Gt.runFunc(r,...u)},!1)})}}bindFunctions(e){this.functions.forEach(r=>{r(e)})}getDirection(){return this.direction}setDirection(e){this.direction=e}addNamespace(e){this.namespaces.has(e)||(this.namespaces.set(e,{id:e,classes:new Map,children:{},domId:R6+e+"-"+this.namespaceCounter}),this.namespaceCounter++)}getNamespace(e){return this.namespaces.get(e)}getNamespaces(){return this.namespaces}addClassesToNamespace(e,r){if(this.namespaces.has(e))for(let n of r){let{className:i}=this.splitClassNameAndType(n);this.classes.get(i).parent=e,this.namespaces.get(e).classes.set(i,this.classes.get(i))}}setCssStyle(e,r){let n=this.classes.get(e);if(!(!r||!n))for(let i of r)i.includes(",")?n.styles.push(...i.split(",")):n.styles.push(i)}getArrowMarker(e){let r;switch(e){case 0:r="aggregation";break;case 1:r="extension";break;case 2:r="composition";break;case 3:r="dependency";break;case 4:r="lollipop";break;default:r="none"}return r}getData(){let e=[],r=[],n=me();for(let a of this.namespaces.keys()){let s=this.namespaces.get(a);if(s){let l={id:s.id,label:s.id,isGroup:!0,padding:n.class.padding??16,shape:"rect",cssStyles:["fill: none","stroke: black"],look:n.look};e.push(l)}}for(let a of this.classes.keys()){let s=this.classes.get(a);if(s){let l=s;l.parentId=s.parent,l.look=n.look,e.push(l)}}let i=0;for(let a of this.notes){i++;let s={id:a.id,label:a.text,isGroup:!1,shape:"note",padding:n.class.padding??6,cssStyles:["text-align: left","white-space: nowrap",`fill: ${n.themeVariables.noteBkgColor}`,`stroke: ${n.themeVariables.noteBorderColor}`],look:n.look};e.push(s);let l=this.classes.get(a.class)?.id??"";if(l){let u={id:`edgeNote${i}`,start:a.id,end:l,type:"normal",thickness:"normal",classes:"relation",arrowTypeStart:"none",arrowTypeEnd:"none",arrowheadStyle:"",labelStyle:[""],style:["fill: none"],pattern:"dotted",look:n.look};r.push(u)}}for(let a of this.interfaces){let s={id:a.id,label:a.label,isGroup:!1,shape:"rect",cssStyles:["opacity: 0;"],look:n.look};e.push(s)}i=0;for(let a of this.relations){i++;let s={id:$h(a.id1,a.id2,{prefix:"id",counter:i}),start:a.id1,end:a.id2,type:"normal",label:a.title,labelpos:"c",thickness:"normal",classes:"relation",arrowTypeStart:this.getArrowMarker(a.relation.type1),arrowTypeEnd:this.getArrowMarker(a.relation.type2),startLabelRight:a.relationTitle1==="none"?"":a.relationTitle1,endLabelLeft:a.relationTitle2==="none"?"":a.relationTitle2,arrowheadStyle:"",labelStyle:["display: inline-block"],style:a.style||"",pattern:a.relation.lineType==1?"dashed":"solid",look:n.look};r.push(s)}return{nodes:e,edges:r,other:{},config:n,direction:this.getDirection()}}}});var UVe,N6,PO=N(()=>{"use strict";UVe=o(t=>`g.classGroup text {
+  fill: ${t.nodeBorder||t.classText};
+  stroke: none;
+  font-family: ${t.fontFamily};
+  font-size: 10px;
+
+  .title {
+    font-weight: bolder;
+  }
+
+}
+
+.nodeLabel, .edgeLabel {
+  color: ${t.classText};
+}
+.edgeLabel .label rect {
+  fill: ${t.mainBkg};
+}
+.label text {
+  fill: ${t.classText};
+}
+
+.labelBkg {
+  background: ${t.mainBkg};
+}
+.edgeLabel .label span {
+  background: ${t.mainBkg};
+}
+
+.classTitle {
+  font-weight: bolder;
+}
+.node rect,
+  .node circle,
+  .node ellipse,
+  .node polygon,
+  .node path {
+    fill: ${t.mainBkg};
+    stroke: ${t.nodeBorder};
+    stroke-width: 1px;
+  }
+
+
+.divider {
+  stroke: ${t.nodeBorder};
+  stroke-width: 1;
+}
+
+g.clickable {
+  cursor: pointer;
+}
+
+g.classGroup rect {
+  fill: ${t.mainBkg};
+  stroke: ${t.nodeBorder};
+}
+
+g.classGroup line {
+  stroke: ${t.nodeBorder};
+  stroke-width: 1;
+}
+
+.classLabel .box {
+  stroke: none;
+  stroke-width: 0;
+  fill: ${t.mainBkg};
+  opacity: 0.5;
+}
+
+.classLabel .label {
+  fill: ${t.nodeBorder};
+  font-size: 10px;
+}
+
+.relation {
+  stroke: ${t.lineColor};
+  stroke-width: 1;
+  fill: none;
+}
+
+.dashed-line{
+  stroke-dasharray: 3;
+}
+
+.dotted-line{
+  stroke-dasharray: 1 2;
+}
+
+#compositionStart, .composition {
+  fill: ${t.lineColor} !important;
+  stroke: ${t.lineColor} !important;
+  stroke-width: 1;
+}
+
+#compositionEnd, .composition {
+  fill: ${t.lineColor} !important;
+  stroke: ${t.lineColor} !important;
+  stroke-width: 1;
+}
+
+#dependencyStart, .dependency {
+  fill: ${t.lineColor} !important;
+  stroke: ${t.lineColor} !important;
+  stroke-width: 1;
+}
+
+#dependencyStart, .dependency {
+  fill: ${t.lineColor} !important;
+  stroke: ${t.lineColor} !important;
+  stroke-width: 1;
+}
+
+#extensionStart, .extension {
+  fill: transparent !important;
+  stroke: ${t.lineColor} !important;
+  stroke-width: 1;
+}
+
+#extensionEnd, .extension {
+  fill: transparent !important;
+  stroke: ${t.lineColor} !important;
+  stroke-width: 1;
+}
+
+#aggregationStart, .aggregation {
+  fill: transparent !important;
+  stroke: ${t.lineColor} !important;
+  stroke-width: 1;
+}
+
+#aggregationEnd, .aggregation {
+  fill: transparent !important;
+  stroke: ${t.lineColor} !important;
+  stroke-width: 1;
+}
+
+#lollipopStart, .lollipop {
+  fill: ${t.mainBkg} !important;
+  stroke: ${t.lineColor} !important;
+  stroke-width: 1;
+}
+
+#lollipopEnd, .lollipop {
+  fill: ${t.mainBkg} !important;
+  stroke: ${t.lineColor} !important;
+  stroke-width: 1;
+}
+
+.edgeTerminals {
+  font-size: 11px;
+  line-height: initial;
+}
+
+.classTitleText {
+  text-anchor: middle;
+  font-size: 18px;
+  fill: ${t.textColor};
+}
+`,"getStyles"),N6=UVe});var HVe,WVe,qVe,M6,BO=N(()=>{"use strict";zt();vt();gm();Yd();$m();ir();HVe=o((t,e="TB")=>{if(!t.doc)return e;let r=e;for(let n of t.doc)n.stmt==="dir"&&(r=n.value);return r},"getDir"),WVe=o(function(t,e){return e.db.getClasses()},"getClasses"),qVe=o(async function(t,e,r,n){Y.info("REF0:"),Y.info("Drawing class diagram (v3)",e);let{securityLevel:i,state:a,layout:s}=me(),l=n.db.getData(),u=yc(e,i);l.type=n.type,l.layoutAlgorithm=nf(s),l.nodeSpacing=a?.nodeSpacing||50,l.rankSpacing=a?.rankSpacing||50,l.markers=["aggregation","extension","composition","dependency","lollipop"],l.diagramId=e,await Cc(l,u);let h=8;Gt.insertTitle(u,"classDiagramTitleText",a?.titleTopMargin??25,n.db.getDiagramTitle()),Ac(u,h,"classDiagram",a?.useMaxWidth??!0)},"draw"),M6={getClasses:WVe,draw:qVe,getDir:HVe}});var Nfe={};hr(Nfe,{diagram:()=>YVe});var YVe,Mfe=N(()=>{"use strict";IO();OO();PO();BO();YVe={parser:L6,get db(){return new D1},renderer:M6,styles:N6,init:o(t=>{t.class||(t.class={}),t.class.arrowMarkerAbsolute=t.arrowMarkerAbsolute},"init")}});var Pfe={};hr(Pfe,{diagram:()=>QVe});var QVe,Bfe=N(()=>{"use strict";IO();OO();PO();BO();QVe={parser:L6,get db(){return new D1},renderer:M6,styles:N6,init:o(t=>{t.class||(t.class={}),t.class.arrowMarkerAbsolute=t.arrowMarkerAbsolute},"init")}});var FO,I6,$O=N(()=>{"use strict";FO=function(){var t=o(function(F,P,z,$){for(z=z||{},$=F.length;$--;z[F[$]]=P);return z},"o"),e=[1,2],r=[1,3],n=[1,4],i=[2,4],a=[1,9],s=[1,11],l=[1,16],u=[1,17],h=[1,18],f=[1,19],d=[1,32],p=[1,20],m=[1,21],g=[1,22],y=[1,23],v=[1,24],x=[1,26],b=[1,27],w=[1,28],C=[1,29],T=[1,30],E=[1,31],A=[1,34],S=[1,35],_=[1,36],I=[1,37],D=[1,33],k=[1,4,5,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,42,45,48,49,50,51,54],L=[1,4,5,14,15,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,42,45,48,49,50,51,54],R=[4,5,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,42,45,48,49,50,51,54],O={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,SPACE:4,NL:5,SD:6,document:7,line:8,statement:9,classDefStatement:10,styleStatement:11,cssClassStatement:12,idStatement:13,DESCR:14,"-->":15,HIDE_EMPTY:16,scale:17,WIDTH:18,COMPOSIT_STATE:19,STRUCT_START:20,STRUCT_STOP:21,STATE_DESCR:22,AS:23,ID:24,FORK:25,JOIN:26,CHOICE:27,CONCURRENT:28,note:29,notePosition:30,NOTE_TEXT:31,direction:32,acc_title:33,acc_title_value:34,acc_descr:35,acc_descr_value:36,acc_descr_multiline_value:37,classDef:38,CLASSDEF_ID:39,CLASSDEF_STYLEOPTS:40,DEFAULT:41,style:42,STYLE_IDS:43,STYLEDEF_STYLEOPTS:44,class:45,CLASSENTITY_IDS:46,STYLECLASS:47,direction_tb:48,direction_bt:49,direction_rl:50,direction_lr:51,eol:52,";":53,EDGE_STATE:54,STYLE_SEPARATOR:55,left_of:56,right_of:57,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NL",6:"SD",14:"DESCR",15:"-->",16:"HIDE_EMPTY",17:"scale",18:"WIDTH",19:"COMPOSIT_STATE",20:"STRUCT_START",21:"STRUCT_STOP",22:"STATE_DESCR",23:"AS",24:"ID",25:"FORK",26:"JOIN",27:"CHOICE",28:"CONCURRENT",29:"note",31:"NOTE_TEXT",33:"acc_title",34:"acc_title_value",35:"acc_descr",36:"acc_descr_value",37:"acc_descr_multiline_value",38:"classDef",39:"CLASSDEF_ID",40:"CLASSDEF_STYLEOPTS",41:"DEFAULT",42:"style",43:"STYLE_IDS",44:"STYLEDEF_STYLEOPTS",45:"class",46:"CLASSENTITY_IDS",47:"STYLECLASS",48:"direction_tb",49:"direction_bt",50:"direction_rl",51:"direction_lr",53:";",54:"EDGE_STATE",55:"STYLE_SEPARATOR",56:"left_of",57:"right_of"},productions_:[0,[3,2],[3,2],[3,2],[7,0],[7,2],[8,2],[8,1],[8,1],[9,1],[9,1],[9,1],[9,1],[9,2],[9,3],[9,4],[9,1],[9,2],[9,1],[9,4],[9,3],[9,6],[9,1],[9,1],[9,1],[9,1],[9,4],[9,4],[9,1],[9,2],[9,2],[9,1],[10,3],[10,3],[11,3],[12,3],[32,1],[32,1],[32,1],[32,1],[52,1],[52,1],[13,1],[13,1],[13,3],[13,3],[30,1],[30,1]],performAction:o(function(P,z,$,H,Q,j,ie){var ne=j.length-1;switch(Q){case 3:return H.setRootDoc(j[ne]),j[ne];break;case 4:this.$=[];break;case 5:j[ne]!="nl"&&(j[ne-1].push(j[ne]),this.$=j[ne-1]);break;case 6:case 7:this.$=j[ne];break;case 8:this.$="nl";break;case 12:this.$=j[ne];break;case 13:let X=j[ne-1];X.description=H.trimColon(j[ne]),this.$=X;break;case 14:this.$={stmt:"relation",state1:j[ne-2],state2:j[ne]};break;case 15:let te=H.trimColon(j[ne]);this.$={stmt:"relation",state1:j[ne-3],state2:j[ne-1],description:te};break;case 19:this.$={stmt:"state",id:j[ne-3],type:"default",description:"",doc:j[ne-1]};break;case 20:var le=j[ne],he=j[ne-2].trim();if(j[ne].match(":")){var K=j[ne].split(":");le=K[0],he=[he,K[1]]}this.$={stmt:"state",id:le,type:"default",description:he};break;case 21:this.$={stmt:"state",id:j[ne-3],type:"default",description:j[ne-5],doc:j[ne-1]};break;case 22:this.$={stmt:"state",id:j[ne],type:"fork"};break;case 23:this.$={stmt:"state",id:j[ne],type:"join"};break;case 24:this.$={stmt:"state",id:j[ne],type:"choice"};break;case 25:this.$={stmt:"state",id:H.getDividerId(),type:"divider"};break;case 26:this.$={stmt:"state",id:j[ne-1].trim(),note:{position:j[ne-2].trim(),text:j[ne].trim()}};break;case 29:this.$=j[ne].trim(),H.setAccTitle(this.$);break;case 30:case 31:this.$=j[ne].trim(),H.setAccDescription(this.$);break;case 32:case 33:this.$={stmt:"classDef",id:j[ne-1].trim(),classes:j[ne].trim()};break;case 34:this.$={stmt:"style",id:j[ne-1].trim(),styleClass:j[ne].trim()};break;case 35:this.$={stmt:"applyClass",id:j[ne-1].trim(),styleClass:j[ne].trim()};break;case 36:H.setDirection("TB"),this.$={stmt:"dir",value:"TB"};break;case 37:H.setDirection("BT"),this.$={stmt:"dir",value:"BT"};break;case 38:H.setDirection("RL"),this.$={stmt:"dir",value:"RL"};break;case 39:H.setDirection("LR"),this.$={stmt:"dir",value:"LR"};break;case 42:case 43:this.$={stmt:"state",id:j[ne].trim(),type:"default",description:""};break;case 44:this.$={stmt:"state",id:j[ne-2].trim(),classes:[j[ne].trim()],type:"default",description:""};break;case 45:this.$={stmt:"state",id:j[ne-2].trim(),classes:[j[ne].trim()],type:"default",description:""};break}},"anonymous"),table:[{3:1,4:e,5:r,6:n},{1:[3]},{3:5,4:e,5:r,6:n},{3:6,4:e,5:r,6:n},t([1,4,5,16,17,19,22,24,25,26,27,28,29,33,35,37,38,42,45,48,49,50,51,54],i,{7:7}),{1:[2,1]},{1:[2,2]},{1:[2,3],4:a,5:s,8:8,9:10,10:12,11:13,12:14,13:15,16:l,17:u,19:h,22:f,24:d,25:p,26:m,27:g,28:y,29:v,32:25,33:x,35:b,37:w,38:C,42:T,45:E,48:A,49:S,50:_,51:I,54:D},t(k,[2,5]),{9:38,10:12,11:13,12:14,13:15,16:l,17:u,19:h,22:f,24:d,25:p,26:m,27:g,28:y,29:v,32:25,33:x,35:b,37:w,38:C,42:T,45:E,48:A,49:S,50:_,51:I,54:D},t(k,[2,7]),t(k,[2,8]),t(k,[2,9]),t(k,[2,10]),t(k,[2,11]),t(k,[2,12],{14:[1,39],15:[1,40]}),t(k,[2,16]),{18:[1,41]},t(k,[2,18],{20:[1,42]}),{23:[1,43]},t(k,[2,22]),t(k,[2,23]),t(k,[2,24]),t(k,[2,25]),{30:44,31:[1,45],56:[1,46],57:[1,47]},t(k,[2,28]),{34:[1,48]},{36:[1,49]},t(k,[2,31]),{39:[1,50],41:[1,51]},{43:[1,52]},{46:[1,53]},t(L,[2,42],{55:[1,54]}),t(L,[2,43],{55:[1,55]}),t(k,[2,36]),t(k,[2,37]),t(k,[2,38]),t(k,[2,39]),t(k,[2,6]),t(k,[2,13]),{13:56,24:d,54:D},t(k,[2,17]),t(R,i,{7:57}),{24:[1,58]},{24:[1,59]},{23:[1,60]},{24:[2,46]},{24:[2,47]},t(k,[2,29]),t(k,[2,30]),{40:[1,61]},{40:[1,62]},{44:[1,63]},{47:[1,64]},{24:[1,65]},{24:[1,66]},t(k,[2,14],{14:[1,67]}),{4:a,5:s,8:8,9:10,10:12,11:13,12:14,13:15,16:l,17:u,19:h,21:[1,68],22:f,24:d,25:p,26:m,27:g,28:y,29:v,32:25,33:x,35:b,37:w,38:C,42:T,45:E,48:A,49:S,50:_,51:I,54:D},t(k,[2,20],{20:[1,69]}),{31:[1,70]},{24:[1,71]},t(k,[2,32]),t(k,[2,33]),t(k,[2,34]),t(k,[2,35]),t(L,[2,44]),t(L,[2,45]),t(k,[2,15]),t(k,[2,19]),t(R,i,{7:72}),t(k,[2,26]),t(k,[2,27]),{4:a,5:s,8:8,9:10,10:12,11:13,12:14,13:15,16:l,17:u,19:h,21:[1,73],22:f,24:d,25:p,26:m,27:g,28:y,29:v,32:25,33:x,35:b,37:w,38:C,42:T,45:E,48:A,49:S,50:_,51:I,54:D},t(k,[2,21])],defaultActions:{5:[2,1],6:[2,2],46:[2,46],47:[2,47]},parseError:o(function(P,z){if(z.recoverable)this.trace(P);else{var $=new Error(P);throw $.hash=z,$}},"parseError"),parse:o(function(P){var z=this,$=[0],H=[],Q=[null],j=[],ie=this.table,ne="",le=0,he=0,K=0,X=2,te=1,J=j.slice.call(arguments,1),se=Object.create(this.lexer),ue={yy:{}};for(var Z in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Z)&&(ue.yy[Z]=this.yy[Z]);se.setInput(P,ue.yy),ue.yy.lexer=se,ue.yy.parser=this,typeof se.yylloc>"u"&&(se.yylloc={});var Se=se.yylloc;j.push(Se);var ce=se.options&&se.options.ranges;typeof ue.yy.parseError=="function"?this.parseError=ue.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function ae(xe){$.length=$.length-2*xe,Q.length=Q.length-xe,j.length=j.length-xe}o(ae,"popStack");function Oe(){var xe;return xe=H.pop()||se.lex()||te,typeof xe!="number"&&(xe instanceof Array&&(H=xe,xe=H.pop()),xe=z.symbols_[xe]||xe),xe}o(Oe,"lex");for(var ge,ze,He,$e,Re,Ie,be={},W,de,re,oe;;){if(He=$[$.length-1],this.defaultActions[He]?$e=this.defaultActions[He]:((ge===null||typeof ge>"u")&&(ge=Oe()),$e=ie[He]&&ie[He][ge]),typeof $e>"u"||!$e.length||!$e[0]){var V="";oe=[];for(W in ie[He])this.terminals_[W]&&W>X&&oe.push("'"+this.terminals_[W]+"'");se.showPosition?V="Parse error on line "+(le+1)+`:
+`+se.showPosition()+`
+Expecting `+oe.join(", ")+", got '"+(this.terminals_[ge]||ge)+"'":V="Parse error on line "+(le+1)+": Unexpected "+(ge==te?"end of input":"'"+(this.terminals_[ge]||ge)+"'"),this.parseError(V,{text:se.match,token:this.terminals_[ge]||ge,line:se.yylineno,loc:Se,expected:oe})}if($e[0]instanceof Array&&$e.length>1)throw new Error("Parse Error: multiple actions possible at state: "+He+", token: "+ge);switch($e[0]){case 1:$.push(ge),Q.push(se.yytext),j.push(se.yylloc),$.push($e[1]),ge=null,ze?(ge=ze,ze=null):(he=se.yyleng,ne=se.yytext,le=se.yylineno,Se=se.yylloc,K>0&&K--);break;case 2:if(de=this.productions_[$e[1]][1],be.$=Q[Q.length-de],be._$={first_line:j[j.length-(de||1)].first_line,last_line:j[j.length-1].last_line,first_column:j[j.length-(de||1)].first_column,last_column:j[j.length-1].last_column},ce&&(be._$.range=[j[j.length-(de||1)].range[0],j[j.length-1].range[1]]),Ie=this.performAction.apply(be,[ne,he,le,ue.yy,$e[1],Q,j].concat(J)),typeof Ie<"u")return Ie;de&&($=$.slice(0,-1*de*2),Q=Q.slice(0,-1*de),j=j.slice(0,-1*de)),$.push(this.productions_[$e[1]][0]),Q.push(be.$),j.push(be._$),re=ie[$[$.length-2]][$[$.length-1]],$.push(re);break;case 3:return!0}}return!0},"parse")},M=function(){var F={EOF:1,parseError:o(function(z,$){if(this.yy.parser)this.yy.parser.parseError(z,$);else throw new Error(z)},"parseError"),setInput:o(function(P,z){return this.yy=z||this.yy||{},this._input=P,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var P=this._input[0];this.yytext+=P,this.yyleng++,this.offset++,this.match+=P,this.matched+=P;var z=P.match(/(?:\r\n?|\n).*/g);return z?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),P},"input"),unput:o(function(P){var z=P.length,$=P.split(/(?:\r\n?|\n)/g);this._input=P+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-z),this.offset-=z;var H=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),$.length-1&&(this.yylineno-=$.length-1);var Q=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:$?($.length===H.length?this.yylloc.first_column:0)+H[H.length-$.length].length-$[0].length:this.yylloc.first_column-z},this.options.ranges&&(this.yylloc.range=[Q[0],Q[0]+this.yyleng-z]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
+`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(P){this.unput(this.match.slice(P))},"less"),pastInput:o(function(){var P=this.matched.substr(0,this.matched.length-this.match.length);return(P.length>20?"...":"")+P.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var P=this.match;return P.length<20&&(P+=this._input.substr(0,20-P.length)),(P.substr(0,20)+(P.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var P=this.pastInput(),z=new Array(P.length+1).join("-");return P+this.upcomingInput()+`
+`+z+"^"},"showPosition"),test_match:o(function(P,z){var $,H,Q;if(this.options.backtrack_lexer&&(Q={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(Q.yylloc.range=this.yylloc.range.slice(0))),H=P[0].match(/(?:\r\n?|\n).*/g),H&&(this.yylineno+=H.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:H?H[H.length-1].length-H[H.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+P[0].length},this.yytext+=P[0],this.match+=P[0],this.matches=P,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(P[0].length),this.matched+=P[0],$=this.performAction.call(this,this.yy,this,z,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),$)return $;if(this._backtrack){for(var j in Q)this[j]=Q[j];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var P,z,$,H;this._more||(this.yytext="",this.match="");for(var Q=this._currentRules(),j=0;j<Q.length;j++)if($=this._input.match(this.rules[Q[j]]),$&&(!z||$[0].length>z[0].length)){if(z=$,H=j,this.options.backtrack_lexer){if(P=this.test_match($,Q[j]),P!==!1)return P;if(this._backtrack){z=!1;continue}else return!1}else if(!this.options.flex)break}return z?(P=this.test_match(z,Q[H]),P!==!1?P:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text.
+`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var z=this.next();return z||this.lex()},"lex"),begin:o(function(z){this.conditionStack.push(z)},"begin"),popState:o(function(){var z=this.conditionStack.length-1;return z>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(z){return z=this.conditionStack.length-1-Math.abs(z||0),z>=0?this.conditionStack[z]:"INITIAL"},"topState"),pushState:o(function(z){this.begin(z)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(z,$,H,Q){var j=Q;switch(H){case 0:return 41;case 1:return 48;case 2:return 49;case 3:return 50;case 4:return 51;case 5:break;case 6:break;case 7:return 5;case 8:break;case 9:break;case 10:break;case 11:break;case 12:return this.pushState("SCALE"),17;break;case 13:return 18;case 14:this.popState();break;case 15:return this.begin("acc_title"),33;break;case 16:return this.popState(),"acc_title_value";break;case 17:return this.begin("acc_descr"),35;break;case 18:return this.popState(),"acc_descr_value";break;case 19:this.begin("acc_descr_multiline");break;case 20:this.popState();break;case 21:return"acc_descr_multiline_value";case 22:return this.pushState("CLASSDEF"),38;break;case 23:return this.popState(),this.pushState("CLASSDEFID"),"DEFAULT_CLASSDEF_ID";break;case 24:return this.popState(),this.pushState("CLASSDEFID"),39;break;case 25:return this.popState(),40;break;case 26:return this.pushState("CLASS"),45;break;case 27:return this.popState(),this.pushState("CLASS_STYLE"),46;break;case 28:return this.popState(),47;break;case 29:return this.pushState("STYLE"),42;break;case 30:return this.popState(),this.pushState("STYLEDEF_STYLES"),43;break;case 31:return this.popState(),44;break;case 32:return this.pushState("SCALE"),17;break;case 33:return 18;case 34:this.popState();break;case 35:this.pushState("STATE");break;case 36:return this.popState(),$.yytext=$.yytext.slice(0,-8).trim(),25;break;case 37:return this.popState(),$.yytext=$.yytext.slice(0,-8).trim(),26;break;case 38:return this.popState(),$.yytext=$.yytext.slice(0,-10).trim(),27;break;case 39:return this.popState(),$.yytext=$.yytext.slice(0,-8).trim(),25;break;case 40:return this.popState(),$.yytext=$.yytext.slice(0,-8).trim(),26;break;case 41:return this.popState(),$.yytext=$.yytext.slice(0,-10).trim(),27;break;case 42:return 48;case 43:return 49;case 44:return 50;case 45:return 51;case 46:this.pushState("STATE_STRING");break;case 47:return this.pushState("STATE_ID"),"AS";break;case 48:return this.popState(),"ID";break;case 49:this.popState();break;case 50:return"STATE_DESCR";case 51:return 19;case 52:this.popState();break;case 53:return this.popState(),this.pushState("struct"),20;break;case 54:break;case 55:return this.popState(),21;break;case 56:break;case 57:return this.begin("NOTE"),29;break;case 58:return this.popState(),this.pushState("NOTE_ID"),56;break;case 59:return this.popState(),this.pushState("NOTE_ID"),57;break;case 60:this.popState(),this.pushState("FLOATING_NOTE");break;case 61:return this.popState(),this.pushState("FLOATING_NOTE_ID"),"AS";break;case 62:break;case 63:return"NOTE_TEXT";case 64:return this.popState(),"ID";break;case 65:return this.popState(),this.pushState("NOTE_TEXT"),24;break;case 66:return this.popState(),$.yytext=$.yytext.substr(2).trim(),31;break;case 67:return this.popState(),$.yytext=$.yytext.slice(0,-8).trim(),31;break;case 68:return 6;case 69:return 6;case 70:return 16;case 71:return 54;case 72:return 24;case 73:return $.yytext=$.yytext.trim(),14;break;case 74:return 15;case 75:return 28;case 76:return 55;case 77:return 5;case 78:return"INVALID"}},"anonymous"),rules:[/^(?:default\b)/i,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:[\s]+)/i,/^(?:((?!\n)\s)+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:scale\s+)/i,/^(?:\d+)/i,/^(?:\s+width\b)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:classDef\s+)/i,/^(?:DEFAULT\s+)/i,/^(?:\w+\s+)/i,/^(?:[^\n]*)/i,/^(?:class\s+)/i,/^(?:(\w+)+((,\s*\w+)*))/i,/^(?:[^\n]*)/i,/^(?:style\s+)/i,/^(?:[\w,]+\s+)/i,/^(?:[^\n]*)/i,/^(?:scale\s+)/i,/^(?:\d+)/i,/^(?:\s+width\b)/i,/^(?:state\s+)/i,/^(?:.*<<fork>>)/i,/^(?:.*<<join>>)/i,/^(?:.*<<choice>>)/i,/^(?:.*\[\[fork\]\])/i,/^(?:.*\[\[join\]\])/i,/^(?:.*\[\[choice\]\])/i,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:["])/i,/^(?:\s*as\s+)/i,/^(?:[^\n\{]*)/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[^\n\s\{]+)/i,/^(?:\n)/i,/^(?:\{)/i,/^(?:%%(?!\{)[^\n]*)/i,/^(?:\})/i,/^(?:[\n])/i,/^(?:note\s+)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:")/i,/^(?:\s*as\s*)/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[^\n]*)/i,/^(?:\s*[^:\n\s\-]+)/i,/^(?:\s*:[^:\n;]+)/i,/^(?:[\s\S]*?end note\b)/i,/^(?:stateDiagram\s+)/i,/^(?:stateDiagram-v2\s+)/i,/^(?:hide empty description\b)/i,/^(?:\[\*\])/i,/^(?:[^:\n\s\-\{]+)/i,/^(?:\s*:[^:\n;]+)/i,/^(?:-->)/i,/^(?:--)/i,/^(?::::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{LINE:{rules:[9,10],inclusive:!1},struct:{rules:[9,10,22,26,29,35,42,43,44,45,54,55,56,57,71,72,73,74,75],inclusive:!1},FLOATING_NOTE_ID:{rules:[64],inclusive:!1},FLOATING_NOTE:{rules:[61,62,63],inclusive:!1},NOTE_TEXT:{rules:[66,67],inclusive:!1},NOTE_ID:{rules:[65],inclusive:!1},NOTE:{rules:[58,59,60],inclusive:!1},STYLEDEF_STYLEOPTS:{rules:[],inclusive:!1},STYLEDEF_STYLES:{rules:[31],inclusive:!1},STYLE_IDS:{rules:[],inclusive:!1},STYLE:{rules:[30],inclusive:!1},CLASS_STYLE:{rules:[28],inclusive:!1},CLASS:{rules:[27],inclusive:!1},CLASSDEFID:{rules:[25],inclusive:!1},CLASSDEF:{rules:[23,24],inclusive:!1},acc_descr_multiline:{rules:[20,21],inclusive:!1},acc_descr:{rules:[18],inclusive:!1},acc_title:{rules:[16],inclusive:!1},SCALE:{rules:[13,14,33,34],inclusive:!1},ALIAS:{rules:[],inclusive:!1},STATE_ID:{rules:[48],inclusive:!1},STATE_STRING:{rules:[49,50],inclusive:!1},FORK_STATE:{rules:[],inclusive:!1},STATE:{rules:[9,10,36,37,38,39,40,41,46,47,51,52,53],inclusive:!1},ID:{rules:[9,10],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,8,10,11,12,15,17,19,22,26,29,32,35,53,57,68,69,70,71,72,73,74,76,77,78],inclusive:!0}}};return F}();O.lexer=M;function B(){this.yy={}}return o(B,"Parser"),B.prototype=O,O.Parser=B,new B}();FO.parser=FO;I6=FO});var zfe,O6,zO,L1,Eb,Gfe,Vfe,Ufe,Rp,P6,GO,VO,UO,HO,WO,B6,F6,Hfe,Wfe,qO,YO,qfe,Yfe,R1,tUe,Xfe,XO,rUe,nUe,jfe,Kfe,iUe,Qfe,aUe,Zfe,jO,KO,Jfe,$6,ede,QO,z6=N(()=>{"use strict";zfe="TB",O6="TB",zO="dir",L1="state",Eb="relation",Gfe="classDef",Vfe="style",Ufe="applyClass",Rp="default",P6="divider",GO="fill:none",VO="fill: #333",UO="c",HO="text",WO="normal",B6="rect",F6="rectWithTitle",Hfe="stateStart",Wfe="stateEnd",qO="divider",YO="roundedWithTitle",qfe="note",Yfe="noteGroup",R1="statediagram",tUe="state",Xfe=`${R1}-${tUe}`,XO="transition",rUe="note",nUe="note-edge",jfe=`${XO} ${nUe}`,Kfe=`${R1}-${rUe}`,iUe="cluster",Qfe=`${R1}-${iUe}`,aUe="cluster-alt",Zfe=`${R1}-${aUe}`,jO="parent",KO="note",Jfe="state",$6="----",ede=`${$6}${KO}`,QO=`${$6}${jO}`});function ZO(t="",e=0,r="",n=$6){let i=r!==null&&r.length>0?`${n}${r}`:"";return`${Jfe}-${t}${i}-${e}`}function G6(t,e,r){if(!e.id||e.id==="</join></fork>"||e.id==="</choice>")return;e.cssClasses&&(Array.isArray(e.cssCompiledStyles)||(e.cssCompiledStyles=[]),e.cssClasses.split(" ").forEach(i=>{if(r.get(i)){let a=r.get(i);e.cssCompiledStyles=[...e.cssCompiledStyles,...a.styles]}}));let n=t.find(i=>i.id===e.id);n?Object.assign(n,e):t.push(e)}function oUe(t){return t?.classes?.join(" ")??""}function lUe(t){return t?.styles??[]}var V6,xf,sUe,tde,N1,rde,nde=N(()=>{"use strict";zt();vt();gr();z6();V6=new Map,xf=0;o(ZO,"stateDomId");sUe=o((t,e,r,n,i,a,s,l)=>{Y.trace("items",e),e.forEach(u=>{switch(u.stmt){case L1:N1(t,u,r,n,i,a,s,l);break;case Rp:N1(t,u,r,n,i,a,s,l);break;case Eb:{N1(t,u.state1,r,n,i,a,s,l),N1(t,u.state2,r,n,i,a,s,l);let h={id:"edge"+xf,start:u.state1.id,end:u.state2.id,arrowhead:"normal",arrowTypeEnd:"arrow_barb",style:GO,labelStyle:"",label:Ze.sanitizeText(u.description,me()),arrowheadStyle:VO,labelpos:UO,labelType:HO,thickness:WO,classes:XO,look:s};i.push(h),xf++}break}})},"setupDoc"),tde=o((t,e=O6)=>{let r=e;if(t.doc)for(let n of t.doc)n.stmt==="dir"&&(r=n.value);return r},"getDir");o(G6,"insertOrUpdateNode");o(oUe,"getClassesFromDbInfo");o(lUe,"getStylesFromDbInfo");N1=o((t,e,r,n,i,a,s,l)=>{let u=e.id,h=r.get(u),f=oUe(h),d=lUe(h);if(Y.info("dataFetcher parsedItem",e,h,d),u!=="root"){let p=B6;e.start===!0?p=Hfe:e.start===!1&&(p=Wfe),e.type!==Rp&&(p=e.type),V6.get(u)||V6.set(u,{id:u,shape:p,description:Ze.sanitizeText(u,me()),cssClasses:`${f} ${Xfe}`,cssStyles:d});let m=V6.get(u);e.description&&(Array.isArray(m.description)?(m.shape=F6,m.description.push(e.description)):m.description?.length>0?(m.shape=F6,m.description===u?m.description=[e.description]:m.description=[m.description,e.description]):(m.shape=B6,m.description=e.description),m.description=Ze.sanitizeTextOrArray(m.description,me())),m.description?.length===1&&m.shape===F6&&(m.type==="group"?m.shape=YO:m.shape=B6),!m.type&&e.doc&&(Y.info("Setting cluster for XCX",u,tde(e)),m.type="group",m.isGroup=!0,m.dir=tde(e),m.shape=e.type===P6?qO:YO,m.cssClasses=`${m.cssClasses} ${Qfe} ${a?Zfe:""}`);let g={labelStyle:"",shape:m.shape,label:m.description,cssClasses:m.cssClasses,cssCompiledStyles:[],cssStyles:m.cssStyles,id:u,dir:m.dir,domId:ZO(u,xf),type:m.type,isGroup:m.type==="group",padding:8,rx:10,ry:10,look:s};if(g.shape===qO&&(g.label=""),t&&t.id!=="root"&&(Y.trace("Setting node ",u," to be child of its parent ",t.id),g.parentId=t.id),g.centerLabel=!0,e.note){let y={labelStyle:"",shape:qfe,label:e.note.text,cssClasses:Kfe,cssStyles:[],cssCompilesStyles:[],id:u+ede+"-"+xf,domId:ZO(u,xf,KO),type:m.type,isGroup:m.type==="group",padding:me().flowchart.padding,look:s,position:e.note.position},v=u+QO,x={labelStyle:"",shape:Yfe,label:e.note.text,cssClasses:m.cssClasses,cssStyles:[],id:u+QO,domId:ZO(u,xf,jO),type:"group",isGroup:!0,padding:16,look:s,position:e.note.position};xf++,x.id=v,y.parentId=v,G6(n,x,l),G6(n,y,l),G6(n,g,l);let b=u,w=y.id;e.note.position==="left of"&&(b=y.id,w=u),i.push({id:b+"-"+w,start:b,end:w,arrowhead:"none",arrowTypeEnd:"",style:GO,labelStyle:"",classes:jfe,arrowheadStyle:VO,labelpos:UO,labelType:HO,thickness:WO,look:s})}else G6(n,g,l)}e.doc&&(Y.trace("Adding nodes children "),sUe(e,e.doc,r,n,i,!a,s,l))},"dataFetcher"),rde=o(()=>{V6.clear(),xf=0},"reset")});var JO,cUe,uUe,ide,eP=N(()=>{"use strict";zt();vt();gm();Yd();$m();ir();z6();JO=o((t,e=O6)=>{if(!t.doc)return e;let r=e;for(let n of t.doc)n.stmt==="dir"&&(r=n.value);return r},"getDir"),cUe=o(function(t,e){return e.db.getClasses()},"getClasses"),uUe=o(async function(t,e,r,n){Y.info("REF0:"),Y.info("Drawing state diagram (v2)",e);let{securityLevel:i,state:a,layout:s}=me();n.db.extract(n.db.getRootDocV2());let l=n.db.getData(),u=yc(e,i);l.type=n.type,l.layoutAlgorithm=s,l.nodeSpacing=a?.nodeSpacing||50,l.rankSpacing=a?.rankSpacing||50,l.markers=["barb"],l.diagramId=e,await Cc(l,u);let h=8;Gt.insertTitle(u,"statediagramTitleText",a?.titleTopMargin??25,n.db.getDiagramTitle()),Ac(u,h,R1,a?.useMaxWidth??!0)},"draw"),ide={getClasses:cUe,draw:uUe,getDir:JO}});function ude(){return new Map}var tP,ade,sde,ode,lde,cde,hUe,fUe,hde,U6,Qo,H6=N(()=>{"use strict";zt();vt();ir();gr();mi();nde();eP();z6();tP="[*]",ade="start",sde=tP,ode="end",lde="color",cde="fill",hUe="bgFill",fUe=",";o(ude,"newClassesList");hde=o(()=>({relations:[],states:new Map,documents:{}}),"newDoc"),U6=o(t=>JSON.parse(JSON.stringify(t)),"clone"),Qo=class{static{o(this,"StateDB")}constructor(e){this.clear(),this.version=e,this.setRootDoc=this.setRootDoc.bind(this),this.getDividerId=this.getDividerId.bind(this),this.setDirection=this.setDirection.bind(this),this.trimColon=this.trimColon.bind(this)}version;nodes=[];edges=[];rootDoc=[];classes=ude();documents={root:hde()};currentDocument=this.documents.root;startEndCount=0;dividerCnt=0;static relationType={AGGREGATION:0,EXTENSION:1,COMPOSITION:2,DEPENDENCY:3};setRootDoc(e){Y.info("Setting root doc",e),this.rootDoc=e,this.version===1?this.extract(e):this.extract(this.getRootDocV2())}getRootDoc(){return this.rootDoc}docTranslator(e,r,n){if(r.stmt===Eb)this.docTranslator(e,r.state1,!0),this.docTranslator(e,r.state2,!1);else if(r.stmt===L1&&(r.id==="[*]"?(r.id=n?e.id+"_start":e.id+"_end",r.start=n):r.id=r.id.trim()),r.doc){let i=[],a=[],s;for(s=0;s<r.doc.length;s++)if(r.doc[s].type===P6){let l=U6(r.doc[s]);l.doc=U6(a),i.push(l),a=[]}else a.push(r.doc[s]);if(i.length>0&&a.length>0){let l={stmt:L1,id:X9(),type:"divider",doc:U6(a)};i.push(U6(l)),r.doc=i}r.doc.forEach(l=>this.docTranslator(r,l,!0))}}getRootDocV2(){return this.docTranslator({id:"root"},{id:"root",doc:this.rootDoc},!0),{id:"root",doc:this.rootDoc}}extract(e){let r;e.doc?r=e.doc:r=e,Y.info(r),this.clear(!0),Y.info("Extract initial document:",r),r.forEach(s=>{switch(Y.warn("Statement",s.stmt),s.stmt){case L1:this.addState(s.id.trim(),s.type,s.doc,s.description,s.note,s.classes,s.styles,s.textStyles);break;case Eb:this.addRelation(s.state1,s.state2,s.description);break;case Gfe:this.addStyleClass(s.id.trim(),s.classes);break;case Vfe:{let l=s.id.trim().split(","),u=s.styleClass.split(",");l.forEach(h=>{let f=this.getState(h);if(f===void 0){let d=h.trim();this.addState(d),f=this.getState(d)}f.styles=u.map(d=>d.replace(/;/g,"")?.trim())})}break;case Ufe:this.setCssClass(s.id.trim(),s.styleClass);break}});let n=this.getStates(),a=me().look;rde(),N1(void 0,this.getRootDocV2(),n,this.nodes,this.edges,!0,a,this.classes),this.nodes.forEach(s=>{if(Array.isArray(s.label)){if(s.description=s.label.slice(1),s.isGroup&&s.description.length>0)throw new Error("Group nodes can only have label. Remove the additional description for node ["+s.id+"]");s.label=s.label[0]}})}addState(e,r=Rp,n=null,i=null,a=null,s=null,l=null,u=null){let h=e?.trim();if(this.currentDocument.states.has(h)?(this.currentDocument.states.get(h).doc||(this.currentDocument.states.get(h).doc=n),this.currentDocument.states.get(h).type||(this.currentDocument.states.get(h).type=r)):(Y.info("Adding state ",h,i),this.currentDocument.states.set(h,{id:h,descriptions:[],type:r,doc:n,note:a,classes:[],styles:[],textStyles:[]})),i&&(Y.info("Setting state description",h,i),typeof i=="string"&&this.addDescription(h,i.trim()),typeof i=="object"&&i.forEach(f=>this.addDescription(h,f.trim()))),a){let f=this.currentDocument.states.get(h);f.note=a,f.note.text=Ze.sanitizeText(f.note.text,me())}s&&(Y.info("Setting state classes",h,s),(typeof s=="string"?[s]:s).forEach(d=>this.setCssClass(h,d.trim()))),l&&(Y.info("Setting state styles",h,l),(typeof l=="string"?[l]:l).forEach(d=>this.setStyle(h,d.trim()))),u&&(Y.info("Setting state styles",h,l),(typeof u=="string"?[u]:u).forEach(d=>this.setTextStyle(h,d.trim())))}clear(e){this.nodes=[],this.edges=[],this.documents={root:hde()},this.currentDocument=this.documents.root,this.startEndCount=0,this.classes=ude(),e||Ar()}getState(e){return this.currentDocument.states.get(e)}getStates(){return this.currentDocument.states}logDocuments(){Y.info("Documents = ",this.documents)}getRelations(){return this.currentDocument.relations}startIdIfNeeded(e=""){let r=e;return e===tP&&(this.startEndCount++,r=`${ade}${this.startEndCount}`),r}startTypeIfNeeded(e="",r=Rp){return e===tP?ade:r}endIdIfNeeded(e=""){let r=e;return e===sde&&(this.startEndCount++,r=`${ode}${this.startEndCount}`),r}endTypeIfNeeded(e="",r=Rp){return e===sde?ode:r}addRelationObjs(e,r,n){let i=this.startIdIfNeeded(e.id.trim()),a=this.startTypeIfNeeded(e.id.trim(),e.type),s=this.startIdIfNeeded(r.id.trim()),l=this.startTypeIfNeeded(r.id.trim(),r.type);this.addState(i,a,e.doc,e.description,e.note,e.classes,e.styles,e.textStyles),this.addState(s,l,r.doc,r.description,r.note,r.classes,r.styles,r.textStyles),this.currentDocument.relations.push({id1:i,id2:s,relationTitle:Ze.sanitizeText(n,me())})}addRelation(e,r,n){if(typeof e=="object")this.addRelationObjs(e,r,n);else{let i=this.startIdIfNeeded(e.trim()),a=this.startTypeIfNeeded(e),s=this.endIdIfNeeded(r.trim()),l=this.endTypeIfNeeded(r);this.addState(i,a),this.addState(s,l),this.currentDocument.relations.push({id1:i,id2:s,title:Ze.sanitizeText(n,me())})}}addDescription(e,r){let n=this.currentDocument.states.get(e),i=r.startsWith(":")?r.replace(":","").trim():r;n.descriptions.push(Ze.sanitizeText(i,me()))}cleanupLabel(e){return e.substring(0,1)===":"?e.substr(2).trim():e.trim()}getDividerId(){return this.dividerCnt++,"divider-id-"+this.dividerCnt}addStyleClass(e,r=""){this.classes.has(e)||this.classes.set(e,{id:e,styles:[],textStyles:[]});let n=this.classes.get(e);r?.split(fUe).forEach(i=>{let a=i.replace(/([^;]*);/,"$1").trim();if(RegExp(lde).exec(i)){let l=a.replace(cde,hUe).replace(lde,cde);n.textStyles.push(l)}n.styles.push(a)})}getClasses(){return this.classes}setCssClass(e,r){e.split(",").forEach(n=>{let i=this.getState(n);if(i===void 0){let a=n.trim();this.addState(a),i=this.getState(a)}i.classes.push(r)})}setStyle(e,r){let n=this.getState(e);n!==void 0&&n.styles.push(r)}setTextStyle(e,r){let n=this.getState(e);n!==void 0&&n.textStyles.push(r)}getDirectionStatement(){return this.rootDoc.find(e=>e.stmt===zO)}getDirection(){return this.getDirectionStatement()?.value??zfe}setDirection(e){let r=this.getDirectionStatement();r?r.value=e:this.rootDoc.unshift({stmt:zO,value:e})}trimColon(e){return e&&e[0]===":"?e.substr(1).trim():e.trim()}getData(){let e=me();return{nodes:this.nodes,edges:this.edges,other:{},config:e,direction:JO(this.getRootDocV2())}}getConfig(){return me().state}getAccTitle=Rr;setAccTitle=Lr;getAccDescription=Mr;setAccDescription=Nr;setDiagramTitle=$r;getDiagramTitle=Ir}});var dUe,W6,rP=N(()=>{"use strict";dUe=o(t=>`
+defs #statediagram-barbEnd {
+    fill: ${t.transitionColor};
+    stroke: ${t.transitionColor};
+  }
+g.stateGroup text {
+  fill: ${t.nodeBorder};
+  stroke: none;
+  font-size: 10px;
+}
+g.stateGroup text {
+  fill: ${t.textColor};
+  stroke: none;
+  font-size: 10px;
+
+}
+g.stateGroup .state-title {
+  font-weight: bolder;
+  fill: ${t.stateLabelColor};
+}
+
+g.stateGroup rect {
+  fill: ${t.mainBkg};
+  stroke: ${t.nodeBorder};
+}
+
+g.stateGroup line {
+  stroke: ${t.lineColor};
+  stroke-width: 1;
+}
+
+.transition {
+  stroke: ${t.transitionColor};
+  stroke-width: 1;
+  fill: none;
+}
+
+.stateGroup .composit {
+  fill: ${t.background};
+  border-bottom: 1px
+}
+
+.stateGroup .alt-composit {
+  fill: #e0e0e0;
+  border-bottom: 1px
+}
+
+.state-note {
+  stroke: ${t.noteBorderColor};
+  fill: ${t.noteBkgColor};
+
+  text {
+    fill: ${t.noteTextColor};
+    stroke: none;
+    font-size: 10px;
+  }
+}
+
+.stateLabel .box {
+  stroke: none;
+  stroke-width: 0;
+  fill: ${t.mainBkg};
+  opacity: 0.5;
+}
+
+.edgeLabel .label rect {
+  fill: ${t.labelBackgroundColor};
+  opacity: 0.5;
+}
+.edgeLabel {
+  background-color: ${t.edgeLabelBackground};
+  p {
+    background-color: ${t.edgeLabelBackground};
+  }
+  rect {
+    opacity: 0.5;
+    background-color: ${t.edgeLabelBackground};
+    fill: ${t.edgeLabelBackground};
+  }
+  text-align: center;
+}
+.edgeLabel .label text {
+  fill: ${t.transitionLabelColor||t.tertiaryTextColor};
+}
+.label div .edgeLabel {
+  color: ${t.transitionLabelColor||t.tertiaryTextColor};
+}
+
+.stateLabel text {
+  fill: ${t.stateLabelColor};
+  font-size: 10px;
+  font-weight: bold;
+}
+
+.node circle.state-start {
+  fill: ${t.specialStateColor};
+  stroke: ${t.specialStateColor};
+}
+
+.node .fork-join {
+  fill: ${t.specialStateColor};
+  stroke: ${t.specialStateColor};
+}
+
+.node circle.state-end {
+  fill: ${t.innerEndBackground};
+  stroke: ${t.background};
+  stroke-width: 1.5
+}
+.end-state-inner {
+  fill: ${t.compositeBackground||t.background};
+  // stroke: ${t.background};
+  stroke-width: 1.5
+}
+
+.node rect {
+  fill: ${t.stateBkg||t.mainBkg};
+  stroke: ${t.stateBorder||t.nodeBorder};
+  stroke-width: 1px;
+}
+.node polygon {
+  fill: ${t.mainBkg};
+  stroke: ${t.stateBorder||t.nodeBorder};;
+  stroke-width: 1px;
+}
+#statediagram-barbEnd {
+  fill: ${t.lineColor};
+}
+
+.statediagram-cluster rect {
+  fill: ${t.compositeTitleBackground};
+  stroke: ${t.stateBorder||t.nodeBorder};
+  stroke-width: 1px;
+}
+
+.cluster-label, .nodeLabel {
+  color: ${t.stateLabelColor};
+  // line-height: 1;
+}
+
+.statediagram-cluster rect.outer {
+  rx: 5px;
+  ry: 5px;
+}
+.statediagram-state .divider {
+  stroke: ${t.stateBorder||t.nodeBorder};
+}
+
+.statediagram-state .title-state {
+  rx: 5px;
+  ry: 5px;
+}
+.statediagram-cluster.statediagram-cluster .inner {
+  fill: ${t.compositeBackground||t.background};
+}
+.statediagram-cluster.statediagram-cluster-alt .inner {
+  fill: ${t.altBackground?t.altBackground:"#efefef"};
+}
+
+.statediagram-cluster .inner {
+  rx:0;
+  ry:0;
+}
+
+.statediagram-state rect.basic {
+  rx: 5px;
+  ry: 5px;
+}
+.statediagram-state rect.divider {
+  stroke-dasharray: 10,10;
+  fill: ${t.altBackground?t.altBackground:"#efefef"};
+}
+
+.note-edge {
+  stroke-dasharray: 5;
+}
+
+.statediagram-note rect {
+  fill: ${t.noteBkgColor};
+  stroke: ${t.noteBorderColor};
+  stroke-width: 1px;
+  rx: 0;
+  ry: 0;
+}
+.statediagram-note rect {
+  fill: ${t.noteBkgColor};
+  stroke: ${t.noteBorderColor};
+  stroke-width: 1px;
+  rx: 0;
+  ry: 0;
+}
+
+.statediagram-note text {
+  fill: ${t.noteTextColor};
+}
+
+.statediagram-note .nodeLabel {
+  color: ${t.noteTextColor};
+}
+.statediagram .edgeLabel {
+  color: red; // ${t.noteTextColor};
+}
+
+#dependencyStart, #dependencyEnd {
+  fill: ${t.lineColor};
+  stroke: ${t.lineColor};
+  stroke-width: 1;
+}
+
+.statediagramTitleText {
+  text-anchor: middle;
+  font-size: 18px;
+  fill: ${t.textColor};
+}
+`,"getStyles"),W6=dUe});var nP,pUe,mUe,fde,gUe,dde,pde=N(()=>{"use strict";nP={},pUe=o((t,e)=>{nP[t]=e},"set"),mUe=o(t=>nP[t],"get"),fde=o(()=>Object.keys(nP),"keys"),gUe=o(()=>fde().length,"size"),dde={get:mUe,set:pUe,keys:fde,size:gUe}});var yUe,vUe,xUe,bUe,gde,wUe,TUe,kUe,EUe,iP,mde,yde,vde=N(()=>{"use strict";dr();pde();H6();ir();gr();zt();vt();yUe=o(t=>t.append("circle").attr("class","start-state").attr("r",me().state.sizeUnit).attr("cx",me().state.padding+me().state.sizeUnit).attr("cy",me().state.padding+me().state.sizeUnit),"drawStartState"),vUe=o(t=>t.append("line").style("stroke","grey").style("stroke-dasharray","3").attr("x1",me().state.textHeight).attr("class","divider").attr("x2",me().state.textHeight*2).attr("y1",0).attr("y2",0),"drawDivider"),xUe=o((t,e)=>{let r=t.append("text").attr("x",2*me().state.padding).attr("y",me().state.textHeight+2*me().state.padding).attr("font-size",me().state.fontSize).attr("class","state-title").text(e.id),n=r.node().getBBox();return t.insert("rect",":first-child").attr("x",me().state.padding).attr("y",me().state.padding).attr("width",n.width+2*me().state.padding).attr("height",n.height+2*me().state.padding).attr("rx",me().state.radius),r},"drawSimpleState"),bUe=o((t,e)=>{let r=o(function(p,m,g){let y=p.append("tspan").attr("x",2*me().state.padding).text(m);g||y.attr("dy",me().state.textHeight)},"addTspan"),i=t.append("text").attr("x",2*me().state.padding).attr("y",me().state.textHeight+1.3*me().state.padding).attr("font-size",me().state.fontSize).attr("class","state-title").text(e.descriptions[0]).node().getBBox(),a=i.height,s=t.append("text").attr("x",me().state.padding).attr("y",a+me().state.padding*.4+me().state.dividerMargin+me().state.textHeight).attr("class","state-description"),l=!0,u=!0;e.descriptions.forEach(function(p){l||(r(s,p,u),u=!1),l=!1});let h=t.append("line").attr("x1",me().state.padding).attr("y1",me().state.padding+a+me().state.dividerMargin/2).attr("y2",me().state.padding+a+me().state.dividerMargin/2).attr("class","descr-divider"),f=s.node().getBBox(),d=Math.max(f.width,i.width);return h.attr("x2",d+3*me().state.padding),t.insert("rect",":first-child").attr("x",me().state.padding).attr("y",me().state.padding).attr("width",d+2*me().state.padding).attr("height",f.height+a+2*me().state.padding).attr("rx",me().state.radius),t},"drawDescrState"),gde=o((t,e,r)=>{let n=me().state.padding,i=2*me().state.padding,a=t.node().getBBox(),s=a.width,l=a.x,u=t.append("text").attr("x",0).attr("y",me().state.titleShift).attr("font-size",me().state.fontSize).attr("class","state-title").text(e.id),f=u.node().getBBox().width+i,d=Math.max(f,s);d===s&&(d=d+i);let p,m=t.node().getBBox();e.doc,p=l-n,f>s&&(p=(s-d)/2+n),Math.abs(l-m.x)<n&&f>s&&(p=l-(f-s)/2);let g=1-me().state.textHeight;return t.insert("rect",":first-child").attr("x",p).attr("y",g).attr("class",r?"alt-composit":"composit").attr("width",d).attr("height",m.height+me().state.textHeight+me().state.titleShift+1).attr("rx","0"),u.attr("x",p+n),f<=s&&u.attr("x",l+(d-i)/2-f/2+n),t.insert("rect",":first-child").attr("x",p).attr("y",me().state.titleShift-me().state.textHeight-me().state.padding).attr("width",d).attr("height",me().state.textHeight*3).attr("rx",me().state.radius),t.insert("rect",":first-child").attr("x",p).attr("y",me().state.titleShift-me().state.textHeight-me().state.padding).attr("width",d).attr("height",m.height+3+2*me().state.textHeight).attr("rx",me().state.radius),t},"addTitleAndBox"),wUe=o(t=>(t.append("circle").attr("class","end-state-outer").attr("r",me().state.sizeUnit+me().state.miniPadding).attr("cx",me().state.padding+me().state.sizeUnit+me().state.miniPadding).attr("cy",me().state.padding+me().state.sizeUnit+me().state.miniPadding),t.append("circle").attr("class","end-state-inner").attr("r",me().state.sizeUnit).attr("cx",me().state.padding+me().state.sizeUnit+2).attr("cy",me().state.padding+me().state.sizeUnit+2)),"drawEndState"),TUe=o((t,e)=>{let r=me().state.forkWidth,n=me().state.forkHeight;if(e.parentId){let i=r;r=n,n=i}return t.append("rect").style("stroke","black").style("fill","black").attr("width",r).attr("height",n).attr("x",me().state.padding).attr("y",me().state.padding)},"drawForkJoinState"),kUe=o((t,e,r,n)=>{let i=0,a=n.append("text");a.style("text-anchor","start"),a.attr("class","noteText");let s=t.replace(/\r\n/g,"<br/>");s=s.replace(/\n/g,"<br/>");let l=s.split(Ze.lineBreakRegex),u=1.25*me().state.noteMargin;for(let h of l){let f=h.trim();if(f.length>0){let d=a.append("tspan");if(d.text(f),u===0){let p=d.node().getBBox();u+=p.height}i+=u,d.attr("x",e+me().state.noteMargin),d.attr("y",r+i+1.25*me().state.noteMargin)}}return{textWidth:a.node().getBBox().width,textHeight:i}},"_drawLongText"),EUe=o((t,e)=>{e.attr("class","state-note");let r=e.append("rect").attr("x",0).attr("y",me().state.padding),n=e.append("g"),{textWidth:i,textHeight:a}=kUe(t,0,0,n);return r.attr("height",a+2*me().state.noteMargin),r.attr("width",i+me().state.noteMargin*2),r},"drawNote"),iP=o(function(t,e){let r=e.id,n={id:r,label:e.id,width:0,height:0},i=t.append("g").attr("id",r).attr("class","stateGroup");e.type==="start"&&yUe(i),e.type==="end"&&wUe(i),(e.type==="fork"||e.type==="join")&&TUe(i,e),e.type==="note"&&EUe(e.note.text,i),e.type==="divider"&&vUe(i),e.type==="default"&&e.descriptions.length===0&&xUe(i,e),e.type==="default"&&e.descriptions.length>0&&bUe(i,e);let a=i.node().getBBox();return n.width=a.width+2*me().state.padding,n.height=a.height+2*me().state.padding,dde.set(r,n),n},"drawState"),mde=0,yde=o(function(t,e,r){let n=o(function(u){switch(u){case Qo.relationType.AGGREGATION:return"aggregation";case Qo.relationType.EXTENSION:return"extension";case Qo.relationType.COMPOSITION:return"composition";case Qo.relationType.DEPENDENCY:return"dependency"}},"getRelationType");e.points=e.points.filter(u=>!Number.isNaN(u.y));let i=e.points,a=wl().x(function(u){return u.x}).y(function(u){return u.y}).curve(Do),s=t.append("path").attr("d",a(i)).attr("id","edge"+mde).attr("class","transition"),l="";if(me().state.arrowMarkerAbsolute&&(l=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,l=l.replace(/\(/g,"\\("),l=l.replace(/\)/g,"\\)")),s.attr("marker-end","url("+l+"#"+n(Qo.relationType.DEPENDENCY)+"End)"),r.title!==void 0){let u=t.append("g").attr("class","stateLabel"),{x:h,y:f}=Gt.calcLabelPosition(e.points),d=Ze.getRows(r.title),p=0,m=[],g=0,y=0;for(let b=0;b<=d.length;b++){let w=u.append("text").attr("text-anchor","middle").text(d[b]).attr("x",h).attr("y",f+p),C=w.node().getBBox();g=Math.max(g,C.width),y=Math.min(y,C.x),Y.info(C.x,h,f+p),p===0&&(p=w.node().getBBox().height,Y.info("Title height",p,f)),m.push(w)}let v=p*d.length;if(d.length>1){let b=(d.length-1)*p*.5;m.forEach((w,C)=>w.attr("y",f+C*p-b)),v=p*d.length}let x=u.node().getBBox();u.insert("rect",":first-child").attr("class","box").attr("x",h-g/2-me().state.padding/2).attr("y",f-v/2-me().state.padding/2-3.5).attr("width",g+me().state.padding).attr("height",v+me().state.padding),Y.info(x)}mde++},"drawEdge")});var fo,aP,SUe,CUe,AUe,_Ue,xde,bde,wde=N(()=>{"use strict";dr();gR();Vo();vt();gr();vde();zt();Ei();aP={},SUe=o(function(){},"setConf"),CUe=o(function(t){t.append("defs").append("marker").attr("id","dependencyEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")},"insertMarkers"),AUe=o(function(t,e,r,n){fo=me().state;let i=me().securityLevel,a;i==="sandbox"&&(a=Ge("#i"+e));let s=i==="sandbox"?Ge(a.nodes()[0].contentDocument.body):Ge("body"),l=i==="sandbox"?a.nodes()[0].contentDocument:document;Y.debug("Rendering diagram "+t);let u=s.select(`[id='${e}']`);CUe(u);let h=n.db.getRootDoc();xde(h,u,void 0,!1,s,l,n);let f=fo.padding,d=u.node().getBBox(),p=d.width+f*2,m=d.height+f*2,g=p*1.75;vn(u,m,g,fo.useMaxWidth),u.attr("viewBox",`${d.x-fo.padding}  ${d.y-fo.padding} `+p+" "+m)},"draw"),_Ue=o(t=>t?t.length*fo.fontSizeFactor:1,"getLabelWidth"),xde=o((t,e,r,n,i,a,s)=>{let l=new sn({compound:!0,multigraph:!0}),u,h=!0;for(u=0;u<t.length;u++)if(t[u].stmt==="relation"){h=!1;break}r?l.setGraph({rankdir:"LR",multigraph:!0,compound:!0,ranker:"tight-tree",ranksep:h?1:fo.edgeLengthFactor,nodeSep:h?1:50,isMultiGraph:!0}):l.setGraph({rankdir:"TB",multigraph:!0,compound:!0,ranksep:h?1:fo.edgeLengthFactor,nodeSep:h?1:50,ranker:"tight-tree",isMultiGraph:!0}),l.setDefaultEdgeLabel(function(){return{}});let f=s.db.getStates(),d=s.db.getRelations(),p=Object.keys(f),m=!0;for(let b of p){let w=f[b];r&&(w.parentId=r);let C;if(w.doc){let T=e.append("g").attr("id",w.id).attr("class","stateGroup");if(C=xde(w.doc,T,w.id,!n,i,a,s),m){T=gde(T,w,n);let E=T.node().getBBox();C.width=E.width,C.height=E.height+fo.padding/2,aP[w.id]={y:fo.compositTitleSize}}else{let E=T.node().getBBox();C.width=E.width,C.height=E.height}}else C=iP(e,w,l);if(w.note){let T={descriptions:[],id:w.id+"-note",note:w.note,type:"note"},E=iP(e,T,l);w.note.position==="left of"?(l.setNode(C.id+"-note",E),l.setNode(C.id,C)):(l.setNode(C.id,C),l.setNode(C.id+"-note",E)),l.setParent(C.id,C.id+"-group"),l.setParent(C.id+"-note",C.id+"-group")}else l.setNode(C.id,C)}Y.debug("Count=",l.nodeCount(),l);let g=0;d.forEach(function(b){g++,Y.debug("Setting edge",b),l.setEdge(b.id1,b.id2,{relation:b,width:_Ue(b.title),height:fo.labelHeight*Ze.getRows(b.title).length,labelpos:"c"},"id"+g)}),R2(l),Y.debug("Graph after layout",l.nodes());let y=e.node();l.nodes().forEach(function(b){b!==void 0&&l.node(b)!==void 0?(Y.warn("Node "+b+": "+JSON.stringify(l.node(b))),i.select("#"+y.id+" #"+b).attr("transform","translate("+(l.node(b).x-l.node(b).width/2)+","+(l.node(b).y+(aP[b]?aP[b].y:0)-l.node(b).height/2)+" )"),i.select("#"+y.id+" #"+b).attr("data-x-shift",l.node(b).x-l.node(b).width/2),a.querySelectorAll("#"+y.id+" #"+b+" .divider").forEach(C=>{let T=C.parentElement,E=0,A=0;T&&(T.parentElement&&(E=T.parentElement.getBBox().width),A=parseInt(T.getAttribute("data-x-shift"),10),Number.isNaN(A)&&(A=0)),C.setAttribute("x1",0-A+8),C.setAttribute("x2",E-A-8)})):Y.debug("No Node "+b+": "+JSON.stringify(l.node(b)))});let v=y.getBBox();l.edges().forEach(function(b){b!==void 0&&l.edge(b)!==void 0&&(Y.debug("Edge "+b.v+" -> "+b.w+": "+JSON.stringify(l.edge(b))),yde(e,l.edge(b),l.edge(b).relation))}),v=y.getBBox();let x={id:r||"root",label:r||"root",width:0,height:0};return x.width=v.width+2*fo.padding,x.height=v.height+2*fo.padding,Y.debug("Doc rendered",x,l),x},"renderDoc"),bde={setConf:SUe,draw:AUe}});var Tde={};hr(Tde,{diagram:()=>DUe});var DUe,kde=N(()=>{"use strict";$O();H6();rP();wde();DUe={parser:I6,get db(){return new Qo(1)},renderer:bde,styles:W6,init:o(t=>{t.state||(t.state={}),t.state.arrowMarkerAbsolute=t.arrowMarkerAbsolute},"init")}});var Cde={};hr(Cde,{diagram:()=>MUe});var MUe,Ade=N(()=>{"use strict";$O();H6();rP();eP();MUe={parser:I6,get db(){return new Qo(2)},renderer:ide,styles:W6,init:o(t=>{t.state||(t.state={}),t.state.arrowMarkerAbsolute=t.arrowMarkerAbsolute},"init")}});var sP,Lde,Rde=N(()=>{"use strict";sP=function(){var t=o(function(d,p,m,g){for(m=m||{},g=d.length;g--;m[d[g]]=p);return m},"o"),e=[6,8,10,11,12,14,16,17,18],r=[1,9],n=[1,10],i=[1,11],a=[1,12],s=[1,13],l=[1,14],u={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,journey:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,title:11,acc_title:12,acc_title_value:13,acc_descr:14,acc_descr_value:15,acc_descr_multiline_value:16,section:17,taskName:18,taskData:19,$accept:0,$end:1},terminals_:{2:"error",4:"journey",6:"EOF",8:"SPACE",10:"NEWLINE",11:"title",12:"acc_title",13:"acc_title_value",14:"acc_descr",15:"acc_descr_value",16:"acc_descr_multiline_value",17:"section",18:"taskName",19:"taskData"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,2]],performAction:o(function(p,m,g,y,v,x,b){var w=x.length-1;switch(v){case 1:return x[w-1];case 2:this.$=[];break;case 3:x[w-1].push(x[w]),this.$=x[w-1];break;case 4:case 5:this.$=x[w];break;case 6:case 7:this.$=[];break;case 8:y.setDiagramTitle(x[w].substr(6)),this.$=x[w].substr(6);break;case 9:this.$=x[w].trim(),y.setAccTitle(this.$);break;case 10:case 11:this.$=x[w].trim(),y.setAccDescription(this.$);break;case 12:y.addSection(x[w].substr(8)),this.$=x[w].substr(8);break;case 13:y.addTask(x[w-1],x[w]),this.$="task";break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:r,12:n,14:i,16:a,17:s,18:l},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:15,11:r,12:n,14:i,16:a,17:s,18:l},t(e,[2,5]),t(e,[2,6]),t(e,[2,8]),{13:[1,16]},{15:[1,17]},t(e,[2,11]),t(e,[2,12]),{19:[1,18]},t(e,[2,4]),t(e,[2,9]),t(e,[2,10]),t(e,[2,13])],defaultActions:{},parseError:o(function(p,m){if(m.recoverable)this.trace(p);else{var g=new Error(p);throw g.hash=m,g}},"parseError"),parse:o(function(p){var m=this,g=[0],y=[],v=[null],x=[],b=this.table,w="",C=0,T=0,E=0,A=2,S=1,_=x.slice.call(arguments,1),I=Object.create(this.lexer),D={yy:{}};for(var k in this.yy)Object.prototype.hasOwnProperty.call(this.yy,k)&&(D.yy[k]=this.yy[k]);I.setInput(p,D.yy),D.yy.lexer=I,D.yy.parser=this,typeof I.yylloc>"u"&&(I.yylloc={});var L=I.yylloc;x.push(L);var R=I.options&&I.options.ranges;typeof D.yy.parseError=="function"?this.parseError=D.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function O(K){g.length=g.length-2*K,v.length=v.length-K,x.length=x.length-K}o(O,"popStack");function M(){var K;return K=y.pop()||I.lex()||S,typeof K!="number"&&(K instanceof Array&&(y=K,K=y.pop()),K=m.symbols_[K]||K),K}o(M,"lex");for(var B,F,P,z,$,H,Q={},j,ie,ne,le;;){if(P=g[g.length-1],this.defaultActions[P]?z=this.defaultActions[P]:((B===null||typeof B>"u")&&(B=M()),z=b[P]&&b[P][B]),typeof z>"u"||!z.length||!z[0]){var he="";le=[];for(j in b[P])this.terminals_[j]&&j>A&&le.push("'"+this.terminals_[j]+"'");I.showPosition?he="Parse error on line "+(C+1)+`:
+`+I.showPosition()+`
+Expecting `+le.join(", ")+", got '"+(this.terminals_[B]||B)+"'":he="Parse error on line "+(C+1)+": Unexpected "+(B==S?"end of input":"'"+(this.terminals_[B]||B)+"'"),this.parseError(he,{text:I.match,token:this.terminals_[B]||B,line:I.yylineno,loc:L,expected:le})}if(z[0]instanceof Array&&z.length>1)throw new Error("Parse Error: multiple actions possible at state: "+P+", token: "+B);switch(z[0]){case 1:g.push(B),v.push(I.yytext),x.push(I.yylloc),g.push(z[1]),B=null,F?(B=F,F=null):(T=I.yyleng,w=I.yytext,C=I.yylineno,L=I.yylloc,E>0&&E--);break;case 2:if(ie=this.productions_[z[1]][1],Q.$=v[v.length-ie],Q._$={first_line:x[x.length-(ie||1)].first_line,last_line:x[x.length-1].last_line,first_column:x[x.length-(ie||1)].first_column,last_column:x[x.length-1].last_column},R&&(Q._$.range=[x[x.length-(ie||1)].range[0],x[x.length-1].range[1]]),H=this.performAction.apply(Q,[w,T,C,D.yy,z[1],v,x].concat(_)),typeof H<"u")return H;ie&&(g=g.slice(0,-1*ie*2),v=v.slice(0,-1*ie),x=x.slice(0,-1*ie)),g.push(this.productions_[z[1]][0]),v.push(Q.$),x.push(Q._$),ne=b[g[g.length-2]][g[g.length-1]],g.push(ne);break;case 3:return!0}}return!0},"parse")},h=function(){var d={EOF:1,parseError:o(function(m,g){if(this.yy.parser)this.yy.parser.parseError(m,g);else throw new Error(m)},"parseError"),setInput:o(function(p,m){return this.yy=m||this.yy||{},this._input=p,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var p=this._input[0];this.yytext+=p,this.yyleng++,this.offset++,this.match+=p,this.matched+=p;var m=p.match(/(?:\r\n?|\n).*/g);return m?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),p},"input"),unput:o(function(p){var m=p.length,g=p.split(/(?:\r\n?|\n)/g);this._input=p+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-m),this.offset-=m;var y=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),g.length-1&&(this.yylineno-=g.length-1);var v=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:g?(g.length===y.length?this.yylloc.first_column:0)+y[y.length-g.length].length-g[0].length:this.yylloc.first_column-m},this.options.ranges&&(this.yylloc.range=[v[0],v[0]+this.yyleng-m]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
+`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(p){this.unput(this.match.slice(p))},"less"),pastInput:o(function(){var p=this.matched.substr(0,this.matched.length-this.match.length);return(p.length>20?"...":"")+p.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var p=this.match;return p.length<20&&(p+=this._input.substr(0,20-p.length)),(p.substr(0,20)+(p.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var p=this.pastInput(),m=new Array(p.length+1).join("-");return p+this.upcomingInput()+`
+`+m+"^"},"showPosition"),test_match:o(function(p,m){var g,y,v;if(this.options.backtrack_lexer&&(v={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(v.yylloc.range=this.yylloc.range.slice(0))),y=p[0].match(/(?:\r\n?|\n).*/g),y&&(this.yylineno+=y.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:y?y[y.length-1].length-y[y.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+p[0].length},this.yytext+=p[0],this.match+=p[0],this.matches=p,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(p[0].length),this.matched+=p[0],g=this.performAction.call(this,this.yy,this,m,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),g)return g;if(this._backtrack){for(var x in v)this[x]=v[x];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var p,m,g,y;this._more||(this.yytext="",this.match="");for(var v=this._currentRules(),x=0;x<v.length;x++)if(g=this._input.match(this.rules[v[x]]),g&&(!m||g[0].length>m[0].length)){if(m=g,y=x,this.options.backtrack_lexer){if(p=this.test_match(g,v[x]),p!==!1)return p;if(this._backtrack){m=!1;continue}else return!1}else if(!this.options.flex)break}return m?(p=this.test_match(m,v[y]),p!==!1?p:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text.
+`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var m=this.next();return m||this.lex()},"lex"),begin:o(function(m){this.conditionStack.push(m)},"begin"),popState:o(function(){var m=this.conditionStack.length-1;return m>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(m){return m=this.conditionStack.length-1-Math.abs(m||0),m>=0?this.conditionStack[m]:"INITIAL"},"topState"),pushState:o(function(m){this.begin(m)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(m,g,y,v){var x=v;switch(y){case 0:break;case 1:break;case 2:return 10;case 3:break;case 4:break;case 5:return 4;case 6:return 11;case 7:return this.begin("acc_title"),12;break;case 8:return this.popState(),"acc_title_value";break;case 9:return this.begin("acc_descr"),14;break;case 10:return this.popState(),"acc_descr_value";break;case 11:this.begin("acc_descr_multiline");break;case 12:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:return 17;case 15:return 18;case 16:return 19;case 17:return":";case 18:return 6;case 19:return"INVALID"}},"anonymous"),rules:[/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:journey\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:section\s[^#:\n;]+)/i,/^(?:[^#:\n;]+)/i,/^(?::[^#\n;]+)/i,/^(?::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,9,11,14,15,16,17,18,19],inclusive:!0}}};return d}();u.lexer=h;function f(){this.yy={}}return o(f,"Parser"),f.prototype=u,u.Parser=f,new f}();sP.parser=sP;Lde=sP});var M1,oP,Sb,Cb,BUe,FUe,$Ue,zUe,GUe,VUe,UUe,Nde,HUe,lP,Mde=N(()=>{"use strict";zt();mi();M1="",oP=[],Sb=[],Cb=[],BUe=o(function(){oP.length=0,Sb.length=0,M1="",Cb.length=0,Ar()},"clear"),FUe=o(function(t){M1=t,oP.push(t)},"addSection"),$Ue=o(function(){return oP},"getSections"),zUe=o(function(){let t=Nde(),e=100,r=0;for(;!t&&r<e;)t=Nde(),r++;return Sb.push(...Cb),Sb},"getTasks"),GUe=o(function(){let t=[];return Sb.forEach(r=>{r.people&&t.push(...r.people)}),[...new Set(t)].sort()},"updateActors"),VUe=o(function(t,e){let r=e.substr(1).split(":"),n=0,i=[];r.length===1?(n=Number(r[0]),i=[]):(n=Number(r[0]),i=r[1].split(","));let a=i.map(l=>l.trim()),s={section:M1,type:M1,people:a,task:t,score:n};Cb.push(s)},"addTask"),UUe=o(function(t){let e={section:M1,type:M1,description:t,task:t,classes:[]};Sb.push(e)},"addTaskOrg"),Nde=o(function(){let t=o(function(r){return Cb[r].processed},"compileTask"),e=!0;for(let[r,n]of Cb.entries())t(r),e=e&&n.processed;return e},"compileTasks"),HUe=o(function(){return GUe()},"getActors"),lP={getConfig:o(()=>me().journey,"getConfig"),clear:BUe,setDiagramTitle:$r,getDiagramTitle:Ir,setAccTitle:Lr,getAccTitle:Rr,setAccDescription:Nr,getAccDescription:Mr,addSection:FUe,getSections:$Ue,getTasks:zUe,addTask:VUe,addTaskOrg:UUe,getActors:HUe}});var WUe,Ide,Ode=N(()=>{"use strict";WUe=o(t=>`.label {
+    font-family: ${t.fontFamily};
+    color: ${t.textColor};
+  }
+  .mouth {
+    stroke: #666;
+  }
+
+  line {
+    stroke: ${t.textColor}
+  }
+
+  .legend {
+    fill: ${t.textColor};
+    font-family: ${t.fontFamily};
+  }
+
+  .label text {
+    fill: #333;
+  }
+  .label {
+    color: ${t.textColor}
+  }
+
+  .face {
+    ${t.faceColor?`fill: ${t.faceColor}`:"fill: #FFF8DC"};
+    stroke: #999;
+  }
+
+  .node rect,
+  .node circle,
+  .node ellipse,
+  .node polygon,
+  .node path {
+    fill: ${t.mainBkg};
+    stroke: ${t.nodeBorder};
+    stroke-width: 1px;
+  }
+
+  .node .label {
+    text-align: center;
+  }
+  .node.clickable {
+    cursor: pointer;
+  }
+
+  .arrowheadPath {
+    fill: ${t.arrowheadColor};
+  }
+
+  .edgePath .path {
+    stroke: ${t.lineColor};
+    stroke-width: 1.5px;
+  }
+
+  .flowchart-link {
+    stroke: ${t.lineColor};
+    fill: none;
+  }
+
+  .edgeLabel {
+    background-color: ${t.edgeLabelBackground};
+    rect {
+      opacity: 0.5;
+    }
+    text-align: center;
+  }
+
+  .cluster rect {
+  }
+
+  .cluster text {
+    fill: ${t.titleColor};
+  }
+
+  div.mermaidTooltip {
+    position: absolute;
+    text-align: center;
+    max-width: 200px;
+    padding: 2px;
+    font-family: ${t.fontFamily};
+    font-size: 12px;
+    background: ${t.tertiaryColor};
+    border: 1px solid ${t.border2};
+    border-radius: 2px;
+    pointer-events: none;
+    z-index: 100;
+  }
+
+  .task-type-0, .section-type-0  {
+    ${t.fillType0?`fill: ${t.fillType0}`:""};
+  }
+  .task-type-1, .section-type-1  {
+    ${t.fillType0?`fill: ${t.fillType1}`:""};
+  }
+  .task-type-2, .section-type-2  {
+    ${t.fillType0?`fill: ${t.fillType2}`:""};
+  }
+  .task-type-3, .section-type-3  {
+    ${t.fillType0?`fill: ${t.fillType3}`:""};
+  }
+  .task-type-4, .section-type-4  {
+    ${t.fillType0?`fill: ${t.fillType4}`:""};
+  }
+  .task-type-5, .section-type-5  {
+    ${t.fillType0?`fill: ${t.fillType5}`:""};
+  }
+  .task-type-6, .section-type-6  {
+    ${t.fillType0?`fill: ${t.fillType6}`:""};
+  }
+  .task-type-7, .section-type-7  {
+    ${t.fillType0?`fill: ${t.fillType7}`:""};
+  }
+
+  .actor-0 {
+    ${t.actor0?`fill: ${t.actor0}`:""};
+  }
+  .actor-1 {
+    ${t.actor1?`fill: ${t.actor1}`:""};
+  }
+  .actor-2 {
+    ${t.actor2?`fill: ${t.actor2}`:""};
+  }
+  .actor-3 {
+    ${t.actor3?`fill: ${t.actor3}`:""};
+  }
+  .actor-4 {
+    ${t.actor4?`fill: ${t.actor4}`:""};
+  }
+  .actor-5 {
+    ${t.actor5?`fill: ${t.actor5}`:""};
+  }
+`,"getStyles"),Ide=WUe});var cP,qUe,Bde,Fde,YUe,XUe,Pde,jUe,KUe,$de,QUe,I1,zde=N(()=>{"use strict";dr();Wv();cP=o(function(t,e){return kd(t,e)},"drawRect"),qUe=o(function(t,e){let n=t.append("circle").attr("cx",e.cx).attr("cy",e.cy).attr("class","face").attr("r",15).attr("stroke-width",2).attr("overflow","visible"),i=t.append("g");i.append("circle").attr("cx",e.cx-15/3).attr("cy",e.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666"),i.append("circle").attr("cx",e.cx+15/3).attr("cy",e.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666");function a(u){let h=bl().startAngle(Math.PI/2).endAngle(3*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);u.append("path").attr("class","mouth").attr("d",h).attr("transform","translate("+e.cx+","+(e.cy+2)+")")}o(a,"smile");function s(u){let h=bl().startAngle(3*Math.PI/2).endAngle(5*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);u.append("path").attr("class","mouth").attr("d",h).attr("transform","translate("+e.cx+","+(e.cy+7)+")")}o(s,"sad");function l(u){u.append("line").attr("class","mouth").attr("stroke",2).attr("x1",e.cx-5).attr("y1",e.cy+7).attr("x2",e.cx+5).attr("y2",e.cy+7).attr("class","mouth").attr("stroke-width","1px").attr("stroke","#666")}return o(l,"ambivalent"),e.score>3?a(i):e.score<3?s(i):l(i),n},"drawFace"),Bde=o(function(t,e){let r=t.append("circle");return r.attr("cx",e.cx),r.attr("cy",e.cy),r.attr("class","actor-"+e.pos),r.attr("fill",e.fill),r.attr("stroke",e.stroke),r.attr("r",e.r),r.class!==void 0&&r.attr("class",r.class),e.title!==void 0&&r.append("title").text(e.title),r},"drawCircle"),Fde=o(function(t,e){return Nq(t,e)},"drawText"),YUe=o(function(t,e){function r(i,a,s,l,u){return i+","+a+" "+(i+s)+","+a+" "+(i+s)+","+(a+l-u)+" "+(i+s-u*1.2)+","+(a+l)+" "+i+","+(a+l)}o(r,"genPoints");let n=t.append("polygon");n.attr("points",r(e.x,e.y,50,20,7)),n.attr("class","labelBox"),e.y=e.y+e.labelMargin,e.x=e.x+.5*e.labelMargin,Fde(t,e)},"drawLabel"),XUe=o(function(t,e,r){let n=t.append("g"),i=Tl();i.x=e.x,i.y=e.y,i.fill=e.fill,i.width=r.width*e.taskCount+r.diagramMarginX*(e.taskCount-1),i.height=r.height,i.class="journey-section section-type-"+e.num,i.rx=3,i.ry=3,cP(n,i),$de(r)(e.text,n,i.x,i.y,i.width,i.height,{class:"journey-section section-type-"+e.num},r,e.colour)},"drawSection"),Pde=-1,jUe=o(function(t,e,r){let n=e.x+r.width/2,i=t.append("g");Pde++;let a=300+5*30;i.append("line").attr("id","task"+Pde).attr("x1",n).attr("y1",e.y).attr("x2",n).attr("y2",a).attr("class","task-line").attr("stroke-width","1px").attr("stroke-dasharray","4 2").attr("stroke","#666"),qUe(i,{cx:n,cy:300+(5-e.score)*30,score:e.score});let s=Tl();s.x=e.x,s.y=e.y,s.fill=e.fill,s.width=r.width,s.height=r.height,s.class="task task-type-"+e.num,s.rx=3,s.ry=3,cP(i,s);let l=e.x+14;e.people.forEach(u=>{let h=e.actors[u].color,f={cx:l,cy:e.y,r:7,fill:h,stroke:"#000",title:u,pos:e.actors[u].position};Bde(i,f),l+=10}),$de(r)(e.task,i,s.x,s.y,s.width,s.height,{class:"task"},r,e.colour)},"drawTask"),KUe=o(function(t,e){q5(t,e)},"drawBackgroundRect"),$de=function(){function t(i,a,s,l,u,h,f,d){let p=a.append("text").attr("x",s+u/2).attr("y",l+h/2+5).style("font-color",d).style("text-anchor","middle").text(i);n(p,f)}o(t,"byText");function e(i,a,s,l,u,h,f,d,p){let{taskFontSize:m,taskFontFamily:g}=d,y=i.split(/<br\s*\/?>/gi);for(let v=0;v<y.length;v++){let x=v*m-m*(y.length-1)/2,b=a.append("text").attr("x",s+u/2).attr("y",l).attr("fill",p).style("text-anchor","middle").style("font-size",m).style("font-family",g);b.append("tspan").attr("x",s+u/2).attr("dy",x).text(y[v]),b.attr("y",l+h/2).attr("dominant-baseline","central").attr("alignment-baseline","central"),n(b,f)}}o(e,"byTspan");function r(i,a,s,l,u,h,f,d){let p=a.append("switch"),g=p.append("foreignObject").attr("x",s).attr("y",l).attr("width",u).attr("height",h).attr("position","fixed").append("xhtml:div").style("display","table").style("height","100%").style("width","100%");g.append("div").attr("class","label").style("display","table-cell").style("text-align","center").style("vertical-align","middle").text(i),e(i,p,s,l,u,h,f,d),n(g,f)}o(r,"byFo");function n(i,a){for(let s in a)s in a&&i.attr(s,a[s])}return o(n,"_setTextAttrs"),function(i){return i.textPlacement==="fo"?r:i.textPlacement==="old"?t:e}}(),QUe=o(function(t){t.append("defs").append("marker").attr("id","arrowhead").attr("refX",5).attr("refY",2).attr("markerWidth",6).attr("markerHeight",4).attr("orient","auto").append("path").attr("d","M 0,0 V 4 L6,2 Z")},"initGraphics"),I1={drawRect:cP,drawCircle:Bde,drawSection:XUe,drawText:Fde,drawLabel:YUe,drawTask:jUe,drawBackgroundRect:KUe,initGraphics:QUe}});function JUe(t){let e=me().journey,r=60;Object.keys(ju).forEach(n=>{let i=ju[n].color,a={cx:20,cy:r,r:7,fill:i,stroke:"#000",pos:ju[n].position};I1.drawCircle(t,a);let s={x:40,y:r+7,fill:"#666",text:n,textMargin:e.boxTextMargin|5};I1.drawText(t,s),r+=20})}var ZUe,ju,q6,Np,eHe,Zo,uP,Gde,tHe,hP,Vde=N(()=>{"use strict";dr();zde();zt();Ei();ZUe=o(function(t){Object.keys(t).forEach(function(r){q6[r]=t[r]})},"setConf"),ju={};o(JUe,"drawActorLegend");q6=me().journey,Np=q6.leftMargin,eHe=o(function(t,e,r,n){let i=me().journey,a=me().securityLevel,s;a==="sandbox"&&(s=Ge("#i"+e));let l=a==="sandbox"?Ge(s.nodes()[0].contentDocument.body):Ge("body");Zo.init();let u=l.select("#"+e);I1.initGraphics(u);let h=n.db.getTasks(),f=n.db.getDiagramTitle(),d=n.db.getActors();for(let x in ju)delete ju[x];let p=0;d.forEach(x=>{ju[x]={color:i.actorColours[p%i.actorColours.length],position:p},p++}),JUe(u),Zo.insert(0,0,Np,Object.keys(ju).length*50),tHe(u,h,0);let m=Zo.getBounds();f&&u.append("text").text(f).attr("x",Np).attr("font-size","4ex").attr("font-weight","bold").attr("y",25);let g=m.stopy-m.starty+2*i.diagramMarginY,y=Np+m.stopx+2*i.diagramMarginX;vn(u,g,y,i.useMaxWidth),u.append("line").attr("x1",Np).attr("y1",i.height*4).attr("x2",y-Np-4).attr("y2",i.height*4).attr("stroke-width",4).attr("stroke","black").attr("marker-end","url(#arrowhead)");let v=f?70:0;u.attr("viewBox",`${m.startx} -25 ${y} ${g+v}`),u.attr("preserveAspectRatio","xMinYMin meet"),u.attr("height",g+v+25)},"draw"),Zo={data:{startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},verticalPos:0,sequenceItems:[],init:o(function(){this.sequenceItems=[],this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},this.verticalPos=0},"init"),updateVal:o(function(t,e,r,n){t[e]===void 0?t[e]=r:t[e]=n(r,t[e])},"updateVal"),updateBounds:o(function(t,e,r,n){let i=me().journey,a=this,s=0;function l(u){return o(function(f){s++;let d=a.sequenceItems.length-s+1;a.updateVal(f,"starty",e-d*i.boxMargin,Math.min),a.updateVal(f,"stopy",n+d*i.boxMargin,Math.max),a.updateVal(Zo.data,"startx",t-d*i.boxMargin,Math.min),a.updateVal(Zo.data,"stopx",r+d*i.boxMargin,Math.max),u!=="activation"&&(a.updateVal(f,"startx",t-d*i.boxMargin,Math.min),a.updateVal(f,"stopx",r+d*i.boxMargin,Math.max),a.updateVal(Zo.data,"starty",e-d*i.boxMargin,Math.min),a.updateVal(Zo.data,"stopy",n+d*i.boxMargin,Math.max))},"updateItemBounds")}o(l,"updateFn"),this.sequenceItems.forEach(l())},"updateBounds"),insert:o(function(t,e,r,n){let i=Math.min(t,r),a=Math.max(t,r),s=Math.min(e,n),l=Math.max(e,n);this.updateVal(Zo.data,"startx",i,Math.min),this.updateVal(Zo.data,"starty",s,Math.min),this.updateVal(Zo.data,"stopx",a,Math.max),this.updateVal(Zo.data,"stopy",l,Math.max),this.updateBounds(i,s,a,l)},"insert"),bumpVerticalPos:o(function(t){this.verticalPos=this.verticalPos+t,this.data.stopy=this.verticalPos},"bumpVerticalPos"),getVerticalPos:o(function(){return this.verticalPos},"getVerticalPos"),getBounds:o(function(){return this.data},"getBounds")},uP=q6.sectionFills,Gde=q6.sectionColours,tHe=o(function(t,e,r){let n=me().journey,i="",a=n.height*2+n.diagramMarginY,s=r+a,l=0,u="#CCC",h="black",f=0;for(let[d,p]of e.entries()){if(i!==p.section){u=uP[l%uP.length],f=l%uP.length,h=Gde[l%Gde.length];let g=0,y=p.section;for(let x=d;x<e.length&&e[x].section==y;x++)g=g+1;let v={x:d*n.taskMargin+d*n.width+Np,y:50,text:p.section,fill:u,num:f,colour:h,taskCount:g};I1.drawSection(t,v,n),i=p.section,l++}let m=p.people.reduce((g,y)=>(ju[y]&&(g[y]=ju[y]),g),{});p.x=d*n.taskMargin+d*n.width+Np,p.y=s,p.width=n.diagramMarginX,p.height=n.diagramMarginY,p.colour=h,p.fill=u,p.num=f,p.actors=m,I1.drawTask(t,p,n),Zo.insert(p.x,p.y,p.x+p.width+n.taskMargin,300+5*30)}},"drawTasks"),hP={setConf:ZUe,draw:eHe}});var Ude={};hr(Ude,{diagram:()=>rHe});var rHe,Hde=N(()=>{"use strict";Rde();Mde();Ode();Vde();rHe={parser:Lde,db:lP,renderer:hP,styles:Ide,init:o(t=>{hP.setConf(t.journey),lP.clear()},"init")}});var dP,Qde,Zde=N(()=>{"use strict";dP=function(){var t=o(function(p,m,g,y){for(g=g||{},y=p.length;y--;g[p[y]]=m);return g},"o"),e=[6,8,10,11,12,14,16,17,20,21],r=[1,9],n=[1,10],i=[1,11],a=[1,12],s=[1,13],l=[1,16],u=[1,17],h={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,timeline:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,title:11,acc_title:12,acc_title_value:13,acc_descr:14,acc_descr_value:15,acc_descr_multiline_value:16,section:17,period_statement:18,event_statement:19,period:20,event:21,$accept:0,$end:1},terminals_:{2:"error",4:"timeline",6:"EOF",8:"SPACE",10:"NEWLINE",11:"title",12:"acc_title",13:"acc_title_value",14:"acc_descr",15:"acc_descr_value",16:"acc_descr_multiline_value",17:"section",20:"period",21:"event"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,1],[9,1],[18,1],[19,1]],performAction:o(function(m,g,y,v,x,b,w){var C=b.length-1;switch(x){case 1:return b[C-1];case 2:this.$=[];break;case 3:b[C-1].push(b[C]),this.$=b[C-1];break;case 4:case 5:this.$=b[C];break;case 6:case 7:this.$=[];break;case 8:v.getCommonDb().setDiagramTitle(b[C].substr(6)),this.$=b[C].substr(6);break;case 9:this.$=b[C].trim(),v.getCommonDb().setAccTitle(this.$);break;case 10:case 11:this.$=b[C].trim(),v.getCommonDb().setAccDescription(this.$);break;case 12:v.addSection(b[C].substr(8)),this.$=b[C].substr(8);break;case 15:v.addTask(b[C],0,""),this.$=b[C];break;case 16:v.addEvent(b[C].substr(2)),this.$=b[C];break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:r,12:n,14:i,16:a,17:s,18:14,19:15,20:l,21:u},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:18,11:r,12:n,14:i,16:a,17:s,18:14,19:15,20:l,21:u},t(e,[2,5]),t(e,[2,6]),t(e,[2,8]),{13:[1,19]},{15:[1,20]},t(e,[2,11]),t(e,[2,12]),t(e,[2,13]),t(e,[2,14]),t(e,[2,15]),t(e,[2,16]),t(e,[2,4]),t(e,[2,9]),t(e,[2,10])],defaultActions:{},parseError:o(function(m,g){if(g.recoverable)this.trace(m);else{var y=new Error(m);throw y.hash=g,y}},"parseError"),parse:o(function(m){var g=this,y=[0],v=[],x=[null],b=[],w=this.table,C="",T=0,E=0,A=0,S=2,_=1,I=b.slice.call(arguments,1),D=Object.create(this.lexer),k={yy:{}};for(var L in this.yy)Object.prototype.hasOwnProperty.call(this.yy,L)&&(k.yy[L]=this.yy[L]);D.setInput(m,k.yy),k.yy.lexer=D,k.yy.parser=this,typeof D.yylloc>"u"&&(D.yylloc={});var R=D.yylloc;b.push(R);var O=D.options&&D.options.ranges;typeof k.yy.parseError=="function"?this.parseError=k.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function M(X){y.length=y.length-2*X,x.length=x.length-X,b.length=b.length-X}o(M,"popStack");function B(){var X;return X=v.pop()||D.lex()||_,typeof X!="number"&&(X instanceof Array&&(v=X,X=v.pop()),X=g.symbols_[X]||X),X}o(B,"lex");for(var F,P,z,$,H,Q,j={},ie,ne,le,he;;){if(z=y[y.length-1],this.defaultActions[z]?$=this.defaultActions[z]:((F===null||typeof F>"u")&&(F=B()),$=w[z]&&w[z][F]),typeof $>"u"||!$.length||!$[0]){var K="";he=[];for(ie in w[z])this.terminals_[ie]&&ie>S&&he.push("'"+this.terminals_[ie]+"'");D.showPosition?K="Parse error on line "+(T+1)+`:
+`+D.showPosition()+`
+Expecting `+he.join(", ")+", got '"+(this.terminals_[F]||F)+"'":K="Parse error on line "+(T+1)+": Unexpected "+(F==_?"end of input":"'"+(this.terminals_[F]||F)+"'"),this.parseError(K,{text:D.match,token:this.terminals_[F]||F,line:D.yylineno,loc:R,expected:he})}if($[0]instanceof Array&&$.length>1)throw new Error("Parse Error: multiple actions possible at state: "+z+", token: "+F);switch($[0]){case 1:y.push(F),x.push(D.yytext),b.push(D.yylloc),y.push($[1]),F=null,P?(F=P,P=null):(E=D.yyleng,C=D.yytext,T=D.yylineno,R=D.yylloc,A>0&&A--);break;case 2:if(ne=this.productions_[$[1]][1],j.$=x[x.length-ne],j._$={first_line:b[b.length-(ne||1)].first_line,last_line:b[b.length-1].last_line,first_column:b[b.length-(ne||1)].first_column,last_column:b[b.length-1].last_column},O&&(j._$.range=[b[b.length-(ne||1)].range[0],b[b.length-1].range[1]]),Q=this.performAction.apply(j,[C,E,T,k.yy,$[1],x,b].concat(I)),typeof Q<"u")return Q;ne&&(y=y.slice(0,-1*ne*2),x=x.slice(0,-1*ne),b=b.slice(0,-1*ne)),y.push(this.productions_[$[1]][0]),x.push(j.$),b.push(j._$),le=w[y[y.length-2]][y[y.length-1]],y.push(le);break;case 3:return!0}}return!0},"parse")},f=function(){var p={EOF:1,parseError:o(function(g,y){if(this.yy.parser)this.yy.parser.parseError(g,y);else throw new Error(g)},"parseError"),setInput:o(function(m,g){return this.yy=g||this.yy||{},this._input=m,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var m=this._input[0];this.yytext+=m,this.yyleng++,this.offset++,this.match+=m,this.matched+=m;var g=m.match(/(?:\r\n?|\n).*/g);return g?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),m},"input"),unput:o(function(m){var g=m.length,y=m.split(/(?:\r\n?|\n)/g);this._input=m+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-g),this.offset-=g;var v=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),y.length-1&&(this.yylineno-=y.length-1);var x=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:y?(y.length===v.length?this.yylloc.first_column:0)+v[v.length-y.length].length-y[0].length:this.yylloc.first_column-g},this.options.ranges&&(this.yylloc.range=[x[0],x[0]+this.yyleng-g]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
+`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(m){this.unput(this.match.slice(m))},"less"),pastInput:o(function(){var m=this.matched.substr(0,this.matched.length-this.match.length);return(m.length>20?"...":"")+m.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var m=this.match;return m.length<20&&(m+=this._input.substr(0,20-m.length)),(m.substr(0,20)+(m.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var m=this.pastInput(),g=new Array(m.length+1).join("-");return m+this.upcomingInput()+`
+`+g+"^"},"showPosition"),test_match:o(function(m,g){var y,v,x;if(this.options.backtrack_lexer&&(x={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(x.yylloc.range=this.yylloc.range.slice(0))),v=m[0].match(/(?:\r\n?|\n).*/g),v&&(this.yylineno+=v.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:v?v[v.length-1].length-v[v.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+m[0].length},this.yytext+=m[0],this.match+=m[0],this.matches=m,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(m[0].length),this.matched+=m[0],y=this.performAction.call(this,this.yy,this,g,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),y)return y;if(this._backtrack){for(var b in x)this[b]=x[b];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var m,g,y,v;this._more||(this.yytext="",this.match="");for(var x=this._currentRules(),b=0;b<x.length;b++)if(y=this._input.match(this.rules[x[b]]),y&&(!g||y[0].length>g[0].length)){if(g=y,v=b,this.options.backtrack_lexer){if(m=this.test_match(y,x[b]),m!==!1)return m;if(this._backtrack){g=!1;continue}else return!1}else if(!this.options.flex)break}return g?(m=this.test_match(g,x[v]),m!==!1?m:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text.
+`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var g=this.next();return g||this.lex()},"lex"),begin:o(function(g){this.conditionStack.push(g)},"begin"),popState:o(function(){var g=this.conditionStack.length-1;return g>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(g){return g=this.conditionStack.length-1-Math.abs(g||0),g>=0?this.conditionStack[g]:"INITIAL"},"topState"),pushState:o(function(g){this.begin(g)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(g,y,v,x){var b=x;switch(v){case 0:break;case 1:break;case 2:return 10;case 3:break;case 4:break;case 5:return 4;case 6:return 11;case 7:return this.begin("acc_title"),12;break;case 8:return this.popState(),"acc_title_value";break;case 9:return this.begin("acc_descr"),14;break;case 10:return this.popState(),"acc_descr_value";break;case 11:this.begin("acc_descr_multiline");break;case 12:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:return 17;case 15:return 21;case 16:return 20;case 17:return 6;case 18:return"INVALID"}},"anonymous"),rules:[/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:timeline\b)/i,/^(?:title\s[^\n]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:section\s[^:\n]+)/i,/^(?::\s[^:\n]+)/i,/^(?:[^#:\n]+)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,9,11,14,15,16,17,18],inclusive:!0}}};return p}();h.lexer=f;function d(){this.yy={}}return o(d,"Parser"),d.prototype=h,h.Parser=d,new d}();dP.parser=dP;Qde=dP});var mP={};hr(mP,{addEvent:()=>ope,addSection:()=>npe,addTask:()=>spe,addTaskOrg:()=>lpe,clear:()=>rpe,default:()=>hHe,getCommonDb:()=>tpe,getSections:()=>ipe,getTasks:()=>ape});var O1,epe,pP,Y6,P1,tpe,rpe,npe,ipe,ape,spe,ope,lpe,Jde,hHe,cpe=N(()=>{"use strict";mi();O1="",epe=0,pP=[],Y6=[],P1=[],tpe=o(()=>qy,"getCommonDb"),rpe=o(function(){pP.length=0,Y6.length=0,O1="",P1.length=0,Ar()},"clear"),npe=o(function(t){O1=t,pP.push(t)},"addSection"),ipe=o(function(){return pP},"getSections"),ape=o(function(){let t=Jde(),e=100,r=0;for(;!t&&r<e;)t=Jde(),r++;return Y6.push(...P1),Y6},"getTasks"),spe=o(function(t,e,r){let n={id:epe++,section:O1,type:O1,task:t,score:e||0,events:r?[r]:[]};P1.push(n)},"addTask"),ope=o(function(t){P1.find(r=>r.id===epe-1).events.push(t)},"addEvent"),lpe=o(function(t){let e={section:O1,type:O1,description:t,task:t,classes:[]};Y6.push(e)},"addTaskOrg"),Jde=o(function(){let t=o(function(r){return P1[r].processed},"compileTask"),e=!0;for(let[r,n]of P1.entries())t(r),e=e&&n.processed;return e},"compileTasks"),hHe={clear:rpe,getCommonDb:tpe,addSection:npe,getSections:ipe,getTasks:ape,addTask:spe,addTaskOrg:lpe,addEvent:ope}});function dpe(t,e){t.each(function(){var r=Ge(this),n=r.text().split(/(\s+|<br>)/).reverse(),i,a=[],s=1.1,l=r.attr("y"),u=parseFloat(r.attr("dy")),h=r.text(null).append("tspan").attr("x",0).attr("y",l).attr("dy",u+"em");for(let f=0;f<n.length;f++)i=n[n.length-1-f],a.push(i),h.text(a.join(" ").trim()),(h.node().getComputedTextLength()>e||i==="<br>")&&(a.pop(),h.text(a.join(" ").trim()),i==="<br>"?a=[""]:a=[i],h=r.append("tspan").attr("x",0).attr("y",l).attr("dy",s+"em").text(i))})}var fHe,X6,dHe,pHe,hpe,mHe,gHe,upe,yHe,vHe,xHe,gP,fpe,bHe,wHe,THe,kHe,bf,ppe=N(()=>{"use strict";dr();fHe=12,X6=o(function(t,e){let r=t.append("rect");return r.attr("x",e.x),r.attr("y",e.y),r.attr("fill",e.fill),r.attr("stroke",e.stroke),r.attr("width",e.width),r.attr("height",e.height),r.attr("rx",e.rx),r.attr("ry",e.ry),e.class!==void 0&&r.attr("class",e.class),r},"drawRect"),dHe=o(function(t,e){let n=t.append("circle").attr("cx",e.cx).attr("cy",e.cy).attr("class","face").attr("r",15).attr("stroke-width",2).attr("overflow","visible"),i=t.append("g");i.append("circle").attr("cx",e.cx-15/3).attr("cy",e.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666"),i.append("circle").attr("cx",e.cx+15/3).attr("cy",e.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666");function a(u){let h=bl().startAngle(Math.PI/2).endAngle(3*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);u.append("path").attr("class","mouth").attr("d",h).attr("transform","translate("+e.cx+","+(e.cy+2)+")")}o(a,"smile");function s(u){let h=bl().startAngle(3*Math.PI/2).endAngle(5*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);u.append("path").attr("class","mouth").attr("d",h).attr("transform","translate("+e.cx+","+(e.cy+7)+")")}o(s,"sad");function l(u){u.append("line").attr("class","mouth").attr("stroke",2).attr("x1",e.cx-5).attr("y1",e.cy+7).attr("x2",e.cx+5).attr("y2",e.cy+7).attr("class","mouth").attr("stroke-width","1px").attr("stroke","#666")}return o(l,"ambivalent"),e.score>3?a(i):e.score<3?s(i):l(i),n},"drawFace"),pHe=o(function(t,e){let r=t.append("circle");return r.attr("cx",e.cx),r.attr("cy",e.cy),r.attr("class","actor-"+e.pos),r.attr("fill",e.fill),r.attr("stroke",e.stroke),r.attr("r",e.r),r.class!==void 0&&r.attr("class",r.class),e.title!==void 0&&r.append("title").text(e.title),r},"drawCircle"),hpe=o(function(t,e){let r=e.text.replace(/<br\s*\/?>/gi," "),n=t.append("text");n.attr("x",e.x),n.attr("y",e.y),n.attr("class","legend"),n.style("text-anchor",e.anchor),e.class!==void 0&&n.attr("class",e.class);let i=n.append("tspan");return i.attr("x",e.x+e.textMargin*2),i.text(r),n},"drawText"),mHe=o(function(t,e){function r(i,a,s,l,u){return i+","+a+" "+(i+s)+","+a+" "+(i+s)+","+(a+l-u)+" "+(i+s-u*1.2)+","+(a+l)+" "+i+","+(a+l)}o(r,"genPoints");let n=t.append("polygon");n.attr("points",r(e.x,e.y,50,20,7)),n.attr("class","labelBox"),e.y=e.y+e.labelMargin,e.x=e.x+.5*e.labelMargin,hpe(t,e)},"drawLabel"),gHe=o(function(t,e,r){let n=t.append("g"),i=gP();i.x=e.x,i.y=e.y,i.fill=e.fill,i.width=r.width,i.height=r.height,i.class="journey-section section-type-"+e.num,i.rx=3,i.ry=3,X6(n,i),fpe(r)(e.text,n,i.x,i.y,i.width,i.height,{class:"journey-section section-type-"+e.num},r,e.colour)},"drawSection"),upe=-1,yHe=o(function(t,e,r){let n=e.x+r.width/2,i=t.append("g");upe++;let a=300+5*30;i.append("line").attr("id","task"+upe).attr("x1",n).attr("y1",e.y).attr("x2",n).attr("y2",a).attr("class","task-line").attr("stroke-width","1px").attr("stroke-dasharray","4 2").attr("stroke","#666"),dHe(i,{cx:n,cy:300+(5-e.score)*30,score:e.score});let s=gP();s.x=e.x,s.y=e.y,s.fill=e.fill,s.width=r.width,s.height=r.height,s.class="task task-type-"+e.num,s.rx=3,s.ry=3,X6(i,s),fpe(r)(e.task,i,s.x,s.y,s.width,s.height,{class:"task"},r,e.colour)},"drawTask"),vHe=o(function(t,e){X6(t,{x:e.startx,y:e.starty,width:e.stopx-e.startx,height:e.stopy-e.starty,fill:e.fill,class:"rect"}).lower()},"drawBackgroundRect"),xHe=o(function(){return{x:0,y:0,fill:void 0,"text-anchor":"start",width:100,height:100,textMargin:0,rx:0,ry:0}},"getTextObj"),gP=o(function(){return{x:0,y:0,width:100,anchor:"start",height:100,rx:0,ry:0}},"getNoteRect"),fpe=function(){function t(i,a,s,l,u,h,f,d){let p=a.append("text").attr("x",s+u/2).attr("y",l+h/2+5).style("font-color",d).style("text-anchor","middle").text(i);n(p,f)}o(t,"byText");function e(i,a,s,l,u,h,f,d,p){let{taskFontSize:m,taskFontFamily:g}=d,y=i.split(/<br\s*\/?>/gi);for(let v=0;v<y.length;v++){let x=v*m-m*(y.length-1)/2,b=a.append("text").attr("x",s+u/2).attr("y",l).attr("fill",p).style("text-anchor","middle").style("font-size",m).style("font-family",g);b.append("tspan").attr("x",s+u/2).attr("dy",x).text(y[v]),b.attr("y",l+h/2).attr("dominant-baseline","central").attr("alignment-baseline","central"),n(b,f)}}o(e,"byTspan");function r(i,a,s,l,u,h,f,d){let p=a.append("switch"),g=p.append("foreignObject").attr("x",s).attr("y",l).attr("width",u).attr("height",h).attr("position","fixed").append("xhtml:div").style("display","table").style("height","100%").style("width","100%");g.append("div").attr("class","label").style("display","table-cell").style("text-align","center").style("vertical-align","middle").text(i),e(i,p,s,l,u,h,f,d),n(g,f)}o(r,"byFo");function n(i,a){for(let s in a)s in a&&i.attr(s,a[s])}return o(n,"_setTextAttrs"),function(i){return i.textPlacement==="fo"?r:i.textPlacement==="old"?t:e}}(),bHe=o(function(t){t.append("defs").append("marker").attr("id","arrowhead").attr("refX",5).attr("refY",2).attr("markerWidth",6).attr("markerHeight",4).attr("orient","auto").append("path").attr("d","M 0,0 V 4 L6,2 Z")},"initGraphics");o(dpe,"wrap");wHe=o(function(t,e,r,n){let i=r%fHe-1,a=t.append("g");e.section=i,a.attr("class",(e.class?e.class+" ":"")+"timeline-node "+("section-"+i));let s=a.append("g"),l=a.append("g"),h=l.append("text").text(e.descr).attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle").call(dpe,e.width).node().getBBox(),f=n.fontSize?.replace?n.fontSize.replace("px",""):n.fontSize;return e.height=h.height+f*1.1*.5+e.padding,e.height=Math.max(e.height,e.maxHeight),e.width=e.width+2*e.padding,l.attr("transform","translate("+e.width/2+", "+e.padding/2+")"),kHe(s,e,i,n),e},"drawNode"),THe=o(function(t,e,r){let n=t.append("g"),a=n.append("text").text(e.descr).attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle").call(dpe,e.width).node().getBBox(),s=r.fontSize?.replace?r.fontSize.replace("px",""):r.fontSize;return n.remove(),a.height+s*1.1*.5+e.padding},"getVirtualNodeHeight"),kHe=o(function(t,e,r){t.append("path").attr("id","node-"+e.id).attr("class","node-bkg node-"+e.type).attr("d",`M0 ${e.height-5} v${-e.height+2*5} q0,-5 5,-5 h${e.width-2*5} q5,0 5,5 v${e.height-5} H0 Z`),t.append("line").attr("class","node-line-"+r).attr("x1",0).attr("y1",e.height).attr("x2",e.width).attr("y2",e.height)},"defaultBkg"),bf={drawRect:X6,drawCircle:pHe,drawSection:gHe,drawText:hpe,drawLabel:mHe,drawTask:yHe,drawBackgroundRect:vHe,getTextObj:xHe,getNoteRect:gP,initGraphics:bHe,drawNode:wHe,getVirtualNodeHeight:THe}});var EHe,mpe,SHe,gpe,ype=N(()=>{"use strict";dr();ppe();vt();zt();Ei();EHe=o(function(t,e,r,n){let i=me(),a=i.leftMargin??50;Y.debug("timeline",n.db);let s=i.securityLevel,l;s==="sandbox"&&(l=Ge("#i"+e));let h=(s==="sandbox"?Ge(l.nodes()[0].contentDocument.body):Ge("body")).select("#"+e);h.append("g");let f=n.db.getTasks(),d=n.db.getCommonDb().getDiagramTitle();Y.debug("task",f),bf.initGraphics(h);let p=n.db.getSections();Y.debug("sections",p);let m=0,g=0,y=0,v=0,x=50+a,b=50;v=50;let w=0,C=!0;p.forEach(function(_){let I={number:w,descr:_,section:w,width:150,padding:20,maxHeight:m},D=bf.getVirtualNodeHeight(h,I,i);Y.debug("sectionHeight before draw",D),m=Math.max(m,D+20)});let T=0,E=0;Y.debug("tasks.length",f.length);for(let[_,I]of f.entries()){let D={number:_,descr:I,section:I.section,width:150,padding:20,maxHeight:g},k=bf.getVirtualNodeHeight(h,D,i);Y.debug("taskHeight before draw",k),g=Math.max(g,k+20),T=Math.max(T,I.events.length);let L=0;for(let R of I.events){let O={descr:R,section:I.section,number:I.section,width:150,padding:20,maxHeight:50};L+=bf.getVirtualNodeHeight(h,O,i)}E=Math.max(E,L)}Y.debug("maxSectionHeight before draw",m),Y.debug("maxTaskHeight before draw",g),p&&p.length>0?p.forEach(_=>{let I=f.filter(R=>R.section===_),D={number:w,descr:_,section:w,width:200*Math.max(I.length,1)-50,padding:20,maxHeight:m};Y.debug("sectionNode",D);let k=h.append("g"),L=bf.drawNode(k,D,w,i);Y.debug("sectionNode output",L),k.attr("transform",`translate(${x}, ${v})`),b+=m+50,I.length>0&&mpe(h,I,w,x,b,g,i,T,E,m,!1),x+=200*Math.max(I.length,1),b=v,w++}):(C=!1,mpe(h,f,w,x,b,g,i,T,E,m,!0));let A=h.node().getBBox();Y.debug("bounds",A),d&&h.append("text").text(d).attr("x",A.width/2-a).attr("font-size","4ex").attr("font-weight","bold").attr("y",20),y=C?m+g+150:g+100,h.append("g").attr("class","lineWrapper").append("line").attr("x1",a).attr("y1",y).attr("x2",A.width+3*a).attr("y2",y).attr("stroke-width",4).attr("stroke","black").attr("marker-end","url(#arrowhead)"),Ao(void 0,h,i.timeline?.padding??50,i.timeline?.useMaxWidth??!1)},"draw"),mpe=o(function(t,e,r,n,i,a,s,l,u,h,f){for(let d of e){let p={descr:d.task,section:r,number:r,width:150,padding:20,maxHeight:a};Y.debug("taskNode",p);let m=t.append("g").attr("class","taskWrapper"),y=bf.drawNode(m,p,r,s).height;if(Y.debug("taskHeight after draw",y),m.attr("transform",`translate(${n}, ${i})`),a=Math.max(a,y),d.events){let v=t.append("g").attr("class","lineWrapper"),x=a;i+=100,x=x+SHe(t,d.events,r,n,i,s),i-=100,v.append("line").attr("x1",n+190/2).attr("y1",i+a).attr("x2",n+190/2).attr("y2",i+a+(f?a:h)+u+120).attr("stroke-width",2).attr("stroke","black").attr("marker-end","url(#arrowhead)").attr("stroke-dasharray","5,5")}n=n+200,f&&!s.timeline?.disableMulticolor&&r++}i=i-10},"drawTasks"),SHe=o(function(t,e,r,n,i,a){let s=0,l=i;i=i+100;for(let u of e){let h={descr:u,section:r,number:r,width:150,padding:20,maxHeight:50};Y.debug("eventNode",h);let f=t.append("g").attr("class","eventWrapper"),p=bf.drawNode(f,h,r,a).height;s=s+p,f.attr("transform",`translate(${n}, ${i})`),i=i+10+p}return i=l,s},"drawEvents"),gpe={setConf:o(()=>{},"setConf"),draw:EHe}});var CHe,AHe,vpe,xpe=N(()=>{"use strict";Ys();CHe=o(t=>{let e="";for(let r=0;r<t.THEME_COLOR_LIMIT;r++)t["lineColor"+r]=t["lineColor"+r]||t["cScaleInv"+r],ca(t["lineColor"+r])?t["lineColor"+r]=Dt(t["lineColor"+r],20):t["lineColor"+r]=Ot(t["lineColor"+r],20);for(let r=0;r<t.THEME_COLOR_LIMIT;r++){let n=""+(17-3*r);e+=`
+    .section-${r-1} rect, .section-${r-1} path, .section-${r-1} circle, .section-${r-1} path  {
+      fill: ${t["cScale"+r]};
+    }
+    .section-${r-1} text {
+     fill: ${t["cScaleLabel"+r]};
+    }
+    .node-icon-${r-1} {
+      font-size: 40px;
+      color: ${t["cScaleLabel"+r]};
+    }
+    .section-edge-${r-1}{
+      stroke: ${t["cScale"+r]};
+    }
+    .edge-depth-${r-1}{
+      stroke-width: ${n};
+    }
+    .section-${r-1} line {
+      stroke: ${t["cScaleInv"+r]} ;
+      stroke-width: 3;
+    }
+
+    .lineWrapper line{
+      stroke: ${t["cScaleLabel"+r]} ;
+    }
+
+    .disabled, .disabled circle, .disabled text {
+      fill: lightgray;
+    }
+    .disabled text {
+      fill: #efefef;
+    }
+    `}return e},"genSections"),AHe=o(t=>`
+  .edge {
+    stroke-width: 3;
+  }
+  ${CHe(t)}
+  .section-root rect, .section-root path, .section-root circle  {
+    fill: ${t.git0};
+  }
+  .section-root text {
+    fill: ${t.gitBranchLabel0};
+  }
+  .icon-container {
+    height:100%;
+    display: flex;
+    justify-content: center;
+    align-items: center;
+  }
+  .edge {
+    fill: none;
+  }
+  .eventWrapper  {
+   filter: brightness(120%);
+  }
+`,"getStyles"),vpe=AHe});var bpe={};hr(bpe,{diagram:()=>_He});var _He,wpe=N(()=>{"use strict";Zde();cpe();ype();xpe();_He={db:mP,renderer:gpe,parser:Qde,styles:vpe}});var yP,Epe,Spe=N(()=>{"use strict";yP=function(){var t=o(function(C,T,E,A){for(E=E||{},A=C.length;A--;E[C[A]]=T);return E},"o"),e=[1,4],r=[1,13],n=[1,12],i=[1,15],a=[1,16],s=[1,20],l=[1,19],u=[6,7,8],h=[1,26],f=[1,24],d=[1,25],p=[6,7,11],m=[1,6,13,15,16,19,22],g=[1,33],y=[1,34],v=[1,6,7,11,13,15,16,19,22],x={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,mindMap:4,spaceLines:5,SPACELINE:6,NL:7,MINDMAP:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,node:14,ICON:15,CLASS:16,nodeWithId:17,nodeWithoutId:18,NODE_DSTART:19,NODE_DESCR:20,NODE_DEND:21,NODE_ID:22,$accept:0,$end:1},terminals_:{2:"error",6:"SPACELINE",7:"NL",8:"MINDMAP",11:"EOF",13:"SPACELIST",15:"ICON",16:"CLASS",19:"NODE_DSTART",20:"NODE_DESCR",21:"NODE_DEND",22:"NODE_ID"},productions_:[0,[3,1],[3,2],[5,1],[5,2],[5,2],[4,2],[4,3],[10,1],[10,1],[10,1],[10,2],[10,2],[9,3],[9,2],[12,2],[12,2],[12,2],[12,1],[12,1],[12,1],[12,1],[12,1],[14,1],[14,1],[18,3],[17,1],[17,4]],performAction:o(function(T,E,A,S,_,I,D){var k=I.length-1;switch(_){case 6:case 7:return S;case 8:S.getLogger().trace("Stop NL ");break;case 9:S.getLogger().trace("Stop EOF ");break;case 11:S.getLogger().trace("Stop NL2 ");break;case 12:S.getLogger().trace("Stop EOF2 ");break;case 15:S.getLogger().info("Node: ",I[k].id),S.addNode(I[k-1].length,I[k].id,I[k].descr,I[k].type);break;case 16:S.getLogger().trace("Icon: ",I[k]),S.decorateNode({icon:I[k]});break;case 17:case 21:S.decorateNode({class:I[k]});break;case 18:S.getLogger().trace("SPACELIST");break;case 19:S.getLogger().trace("Node: ",I[k].id),S.addNode(0,I[k].id,I[k].descr,I[k].type);break;case 20:S.decorateNode({icon:I[k]});break;case 25:S.getLogger().trace("node found ..",I[k-2]),this.$={id:I[k-1],descr:I[k-1],type:S.getType(I[k-2],I[k])};break;case 26:this.$={id:I[k],descr:I[k],type:S.nodeType.DEFAULT};break;case 27:S.getLogger().trace("node found ..",I[k-3]),this.$={id:I[k-3],descr:I[k-1],type:S.getType(I[k-2],I[k])};break}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],8:e},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:e},{6:r,7:[1,10],9:9,12:11,13:n,14:14,15:i,16:a,17:17,18:18,19:s,22:l},t(u,[2,3]),{1:[2,2]},t(u,[2,4]),t(u,[2,5]),{1:[2,6],6:r,12:21,13:n,14:14,15:i,16:a,17:17,18:18,19:s,22:l},{6:r,9:22,12:11,13:n,14:14,15:i,16:a,17:17,18:18,19:s,22:l},{6:h,7:f,10:23,11:d},t(p,[2,22],{17:17,18:18,14:27,15:[1,28],16:[1,29],19:s,22:l}),t(p,[2,18]),t(p,[2,19]),t(p,[2,20]),t(p,[2,21]),t(p,[2,23]),t(p,[2,24]),t(p,[2,26],{19:[1,30]}),{20:[1,31]},{6:h,7:f,10:32,11:d},{1:[2,7],6:r,12:21,13:n,14:14,15:i,16:a,17:17,18:18,19:s,22:l},t(m,[2,14],{7:g,11:y}),t(v,[2,8]),t(v,[2,9]),t(v,[2,10]),t(p,[2,15]),t(p,[2,16]),t(p,[2,17]),{20:[1,35]},{21:[1,36]},t(m,[2,13],{7:g,11:y}),t(v,[2,11]),t(v,[2,12]),{21:[1,37]},t(p,[2,25]),t(p,[2,27])],defaultActions:{2:[2,1],6:[2,2]},parseError:o(function(T,E){if(E.recoverable)this.trace(T);else{var A=new Error(T);throw A.hash=E,A}},"parseError"),parse:o(function(T){var E=this,A=[0],S=[],_=[null],I=[],D=this.table,k="",L=0,R=0,O=0,M=2,B=1,F=I.slice.call(arguments,1),P=Object.create(this.lexer),z={yy:{}};for(var $ in this.yy)Object.prototype.hasOwnProperty.call(this.yy,$)&&(z.yy[$]=this.yy[$]);P.setInput(T,z.yy),z.yy.lexer=P,z.yy.parser=this,typeof P.yylloc>"u"&&(P.yylloc={});var H=P.yylloc;I.push(H);var Q=P.options&&P.options.ranges;typeof z.yy.parseError=="function"?this.parseError=z.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function j(ae){A.length=A.length-2*ae,_.length=_.length-ae,I.length=I.length-ae}o(j,"popStack");function ie(){var ae;return ae=S.pop()||P.lex()||B,typeof ae!="number"&&(ae instanceof Array&&(S=ae,ae=S.pop()),ae=E.symbols_[ae]||ae),ae}o(ie,"lex");for(var ne,le,he,K,X,te,J={},se,ue,Z,Se;;){if(he=A[A.length-1],this.defaultActions[he]?K=this.defaultActions[he]:((ne===null||typeof ne>"u")&&(ne=ie()),K=D[he]&&D[he][ne]),typeof K>"u"||!K.length||!K[0]){var ce="";Se=[];for(se in D[he])this.terminals_[se]&&se>M&&Se.push("'"+this.terminals_[se]+"'");P.showPosition?ce="Parse error on line "+(L+1)+`:
+`+P.showPosition()+`
+Expecting `+Se.join(", ")+", got '"+(this.terminals_[ne]||ne)+"'":ce="Parse error on line "+(L+1)+": Unexpected "+(ne==B?"end of input":"'"+(this.terminals_[ne]||ne)+"'"),this.parseError(ce,{text:P.match,token:this.terminals_[ne]||ne,line:P.yylineno,loc:H,expected:Se})}if(K[0]instanceof Array&&K.length>1)throw new Error("Parse Error: multiple actions possible at state: "+he+", token: "+ne);switch(K[0]){case 1:A.push(ne),_.push(P.yytext),I.push(P.yylloc),A.push(K[1]),ne=null,le?(ne=le,le=null):(R=P.yyleng,k=P.yytext,L=P.yylineno,H=P.yylloc,O>0&&O--);break;case 2:if(ue=this.productions_[K[1]][1],J.$=_[_.length-ue],J._$={first_line:I[I.length-(ue||1)].first_line,last_line:I[I.length-1].last_line,first_column:I[I.length-(ue||1)].first_column,last_column:I[I.length-1].last_column},Q&&(J._$.range=[I[I.length-(ue||1)].range[0],I[I.length-1].range[1]]),te=this.performAction.apply(J,[k,R,L,z.yy,K[1],_,I].concat(F)),typeof te<"u")return te;ue&&(A=A.slice(0,-1*ue*2),_=_.slice(0,-1*ue),I=I.slice(0,-1*ue)),A.push(this.productions_[K[1]][0]),_.push(J.$),I.push(J._$),Z=D[A[A.length-2]][A[A.length-1]],A.push(Z);break;case 3:return!0}}return!0},"parse")},b=function(){var C={EOF:1,parseError:o(function(E,A){if(this.yy.parser)this.yy.parser.parseError(E,A);else throw new Error(E)},"parseError"),setInput:o(function(T,E){return this.yy=E||this.yy||{},this._input=T,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var T=this._input[0];this.yytext+=T,this.yyleng++,this.offset++,this.match+=T,this.matched+=T;var E=T.match(/(?:\r\n?|\n).*/g);return E?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),T},"input"),unput:o(function(T){var E=T.length,A=T.split(/(?:\r\n?|\n)/g);this._input=T+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-E),this.offset-=E;var S=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),A.length-1&&(this.yylineno-=A.length-1);var _=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:A?(A.length===S.length?this.yylloc.first_column:0)+S[S.length-A.length].length-A[0].length:this.yylloc.first_column-E},this.options.ranges&&(this.yylloc.range=[_[0],_[0]+this.yyleng-E]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
+`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(T){this.unput(this.match.slice(T))},"less"),pastInput:o(function(){var T=this.matched.substr(0,this.matched.length-this.match.length);return(T.length>20?"...":"")+T.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var T=this.match;return T.length<20&&(T+=this._input.substr(0,20-T.length)),(T.substr(0,20)+(T.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var T=this.pastInput(),E=new Array(T.length+1).join("-");return T+this.upcomingInput()+`
+`+E+"^"},"showPosition"),test_match:o(function(T,E){var A,S,_;if(this.options.backtrack_lexer&&(_={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(_.yylloc.range=this.yylloc.range.slice(0))),S=T[0].match(/(?:\r\n?|\n).*/g),S&&(this.yylineno+=S.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:S?S[S.length-1].length-S[S.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+T[0].length},this.yytext+=T[0],this.match+=T[0],this.matches=T,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(T[0].length),this.matched+=T[0],A=this.performAction.call(this,this.yy,this,E,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),A)return A;if(this._backtrack){for(var I in _)this[I]=_[I];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var T,E,A,S;this._more||(this.yytext="",this.match="");for(var _=this._currentRules(),I=0;I<_.length;I++)if(A=this._input.match(this.rules[_[I]]),A&&(!E||A[0].length>E[0].length)){if(E=A,S=I,this.options.backtrack_lexer){if(T=this.test_match(A,_[I]),T!==!1)return T;if(this._backtrack){E=!1;continue}else return!1}else if(!this.options.flex)break}return E?(T=this.test_match(E,_[S]),T!==!1?T:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text.
+`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var E=this.next();return E||this.lex()},"lex"),begin:o(function(E){this.conditionStack.push(E)},"begin"),popState:o(function(){var E=this.conditionStack.length-1;return E>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(E){return E=this.conditionStack.length-1-Math.abs(E||0),E>=0?this.conditionStack[E]:"INITIAL"},"topState"),pushState:o(function(E){this.begin(E)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(E,A,S,_){var I=_;switch(S){case 0:return E.getLogger().trace("Found comment",A.yytext),6;break;case 1:return 8;case 2:this.begin("CLASS");break;case 3:return this.popState(),16;break;case 4:this.popState();break;case 5:E.getLogger().trace("Begin icon"),this.begin("ICON");break;case 6:return E.getLogger().trace("SPACELINE"),6;break;case 7:return 7;case 8:return 15;case 9:E.getLogger().trace("end icon"),this.popState();break;case 10:return E.getLogger().trace("Exploding node"),this.begin("NODE"),19;break;case 11:return E.getLogger().trace("Cloud"),this.begin("NODE"),19;break;case 12:return E.getLogger().trace("Explosion Bang"),this.begin("NODE"),19;break;case 13:return E.getLogger().trace("Cloud Bang"),this.begin("NODE"),19;break;case 14:return this.begin("NODE"),19;break;case 15:return this.begin("NODE"),19;break;case 16:return this.begin("NODE"),19;break;case 17:return this.begin("NODE"),19;break;case 18:return 13;case 19:return 22;case 20:return 11;case 21:this.begin("NSTR2");break;case 22:return"NODE_DESCR";case 23:this.popState();break;case 24:E.getLogger().trace("Starting NSTR"),this.begin("NSTR");break;case 25:return E.getLogger().trace("description:",A.yytext),"NODE_DESCR";break;case 26:this.popState();break;case 27:return this.popState(),E.getLogger().trace("node end ))"),"NODE_DEND";break;case 28:return this.popState(),E.getLogger().trace("node end )"),"NODE_DEND";break;case 29:return this.popState(),E.getLogger().trace("node end ...",A.yytext),"NODE_DEND";break;case 30:return this.popState(),E.getLogger().trace("node end (("),"NODE_DEND";break;case 31:return this.popState(),E.getLogger().trace("node end (-"),"NODE_DEND";break;case 32:return this.popState(),E.getLogger().trace("node end (-"),"NODE_DEND";break;case 33:return this.popState(),E.getLogger().trace("node end (("),"NODE_DEND";break;case 34:return this.popState(),E.getLogger().trace("node end (("),"NODE_DEND";break;case 35:return E.getLogger().trace("Long description:",A.yytext),20;break;case 36:return E.getLogger().trace("Long description:",A.yytext),20;break}},"anonymous"),rules:[/^(?:\s*%%.*)/i,/^(?:mindmap\b)/i,/^(?::::)/i,/^(?:.+)/i,/^(?:\n)/i,/^(?:::icon\()/i,/^(?:[\s]+[\n])/i,/^(?:[\n]+)/i,/^(?:[^\)]+)/i,/^(?:\))/i,/^(?:-\))/i,/^(?:\(-)/i,/^(?:\)\))/i,/^(?:\))/i,/^(?:\(\()/i,/^(?:\{\{)/i,/^(?:\()/i,/^(?:\[)/i,/^(?:[\s]+)/i,/^(?:[^\(\[\n\)\{\}]+)/i,/^(?:$)/i,/^(?:["][`])/i,/^(?:[^`"]+)/i,/^(?:[`]["])/i,/^(?:["])/i,/^(?:[^"]+)/i,/^(?:["])/i,/^(?:[\)]\))/i,/^(?:[\)])/i,/^(?:[\]])/i,/^(?:\}\})/i,/^(?:\(-)/i,/^(?:-\))/i,/^(?:\(\()/i,/^(?:\()/i,/^(?:[^\)\]\(\}]+)/i,/^(?:.+(?!\(\())/i],conditions:{CLASS:{rules:[3,4],inclusive:!1},ICON:{rules:[8,9],inclusive:!1},NSTR2:{rules:[22,23],inclusive:!1},NSTR:{rules:[25,26],inclusive:!1},NODE:{rules:[21,24,27,28,29,30,31,32,33,34,35,36],inclusive:!1},INITIAL:{rules:[0,1,2,5,6,7,10,11,12,13,14,15,16,17,18,19,20],inclusive:!0}}};return C}();x.lexer=b;function w(){this.yy={}}return o(w,"Parser"),w.prototype=x,x.Parser=w,new w}();yP.parser=yP;Epe=yP});var $l,Cpe,vP,NHe,MHe,IHe,OHe,Vi,PHe,BHe,FHe,$He,zHe,GHe,VHe,Ape,_pe=N(()=>{"use strict";zt();gr();vt();Ya();$l=[],Cpe=0,vP={},NHe=o(()=>{$l=[],Cpe=0,vP={}},"clear"),MHe=o(function(t){for(let e=$l.length-1;e>=0;e--)if($l[e].level<t)return $l[e];return null},"getParent"),IHe=o(()=>$l.length>0?$l[0]:null,"getMindmap"),OHe=o((t,e,r,n)=>{Y.info("addNode",t,e,r,n);let i=me(),a=i.mindmap?.padding??or.mindmap.padding;switch(n){case Vi.ROUNDED_RECT:case Vi.RECT:case Vi.HEXAGON:a*=2}let s={id:Cpe++,nodeId:Tr(e,i),level:t,descr:Tr(r,i),type:n,children:[],width:i.mindmap?.maxNodeWidth??or.mindmap.maxNodeWidth,padding:a},l=MHe(t);if(l)l.children.push(s),$l.push(s);else if($l.length===0)$l.push(s);else throw new Error('There can be only one root. No parent could be found for ("'+s.descr+'")')},"addNode"),Vi={DEFAULT:0,NO_BORDER:0,ROUNDED_RECT:1,RECT:2,CIRCLE:3,CLOUD:4,BANG:5,HEXAGON:6},PHe=o((t,e)=>{switch(Y.debug("In get type",t,e),t){case"[":return Vi.RECT;case"(":return e===")"?Vi.ROUNDED_RECT:Vi.CLOUD;case"((":return Vi.CIRCLE;case")":return Vi.CLOUD;case"))":return Vi.BANG;case"{{":return Vi.HEXAGON;default:return Vi.DEFAULT}},"getType"),BHe=o((t,e)=>{vP[t]=e},"setElementForId"),FHe=o(t=>{if(!t)return;let e=me(),r=$l[$l.length-1];t.icon&&(r.icon=Tr(t.icon,e)),t.class&&(r.class=Tr(t.class,e))},"decorateNode"),$He=o(t=>{switch(t){case Vi.DEFAULT:return"no-border";case Vi.RECT:return"rect";case Vi.ROUNDED_RECT:return"rounded-rect";case Vi.CIRCLE:return"circle";case Vi.CLOUD:return"cloud";case Vi.BANG:return"bang";case Vi.HEXAGON:return"hexgon";default:return"no-border"}},"type2Str"),zHe=o(()=>Y,"getLogger"),GHe=o(t=>vP[t],"getElementById"),VHe={clear:NHe,addNode:OHe,getMindmap:IHe,nodeType:Vi,getType:PHe,setElementForId:BHe,decorateNode:FHe,type2Str:$He,getLogger:zHe,getElementById:GHe},Ape=VHe});function Wi(t){"@babel/helpers - typeof";return Wi=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Wi(t)}function Mf(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function Dpe(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function If(t,e,r){return e&&Dpe(t.prototype,e),r&&Dpe(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t}function X0e(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function _i(t,e){return HHe(t)||qHe(t,e)||ZP(t,e)||XHe()}function j0e(t){return UHe(t)||WHe(t)||ZP(t)||YHe()}function UHe(t){if(Array.isArray(t))return OP(t)}function HHe(t){if(Array.isArray(t))return t}function WHe(t){if(typeof Symbol<"u"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)}function qHe(t,e){var r=t==null?null:typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(r!=null){var n=[],i=!0,a=!1,s,l;try{for(r=r.call(t);!(i=(s=r.next()).done)&&(n.push(s.value),!(e&&n.length===e));i=!0);}catch(u){a=!0,l=u}finally{try{!i&&r.return!=null&&r.return()}finally{if(a)throw l}}return n}}function ZP(t,e){if(t){if(typeof t=="string")return OP(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);if(r==="Object"&&t.constructor&&(r=t.constructor.name),r==="Map"||r==="Set")return Array.from(t);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return OP(t,e)}}function OP(t,e){(e==null||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r<e;r++)n[r]=t[r];return n}function YHe(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function XHe(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function mo(t,e){var r=typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=ZP(t))||e&&t&&typeof t.length=="number"){r&&(t=r);var n=0,i=o(function(){},"F");return{s:i,n:o(function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},"n"),e:o(function(u){throw u},"e"),f:i}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var a=!0,s=!1,l;return{s:o(function(){r=r.call(t)},"s"),n:o(function(){var u=r.next();return a=u.done,u},"n"),e:o(function(u){s=!0,l=u},"e"),f:o(function(){try{!a&&r.return!=null&&r.return()}finally{if(s)throw l}},"f")}}function yWe(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}function vWe(t,e){return e={exports:{}},t(e,e.exports),e.exports}function SWe(t){for(var e=t.length;e--&&EWe.test(t.charAt(e)););return e}function _We(t){return t&&t.slice(0,CWe(t)+1).replace(AWe,"")}function MWe(t){var e=RWe.call(t,Ab),r=t[Ab];try{t[Ab]=void 0;var n=!0}catch{}var i=NWe.call(t);return n&&(e?t[Ab]=r:delete t[Ab]),i}function BWe(t){return PWe.call(t)}function GWe(t){return t==null?t===void 0?zWe:$We:Npe&&Npe in Object(t)?IWe(t):FWe(t)}function VWe(t){return t!=null&&typeof t=="object"}function WWe(t){return typeof t=="symbol"||UWe(t)&&ame(t)==HWe}function KWe(t){if(typeof t=="number")return t;if(r4(t))return Mpe;if(zp(t)){var e=typeof t.valueOf=="function"?t.valueOf():t;t=zp(e)?e+"":e}if(typeof t!="string")return t===0?t:+t;t=DWe(t);var r=YWe.test(t);return r||XWe.test(t)?jWe(t.slice(2),r?2:8):qWe.test(t)?Mpe:+t}function eqe(t,e,r){var n,i,a,s,l,u,h=0,f=!1,d=!1,p=!0;if(typeof t!="function")throw new TypeError(QWe);e=Ipe(e)||0,zp(r)&&(f=!!r.leading,d="maxWait"in r,a=d?ZWe(Ipe(r.maxWait)||0,e):a,p="trailing"in r?!!r.trailing:p);function m(E){var A=n,S=i;return n=i=void 0,h=E,s=t.apply(S,A),s}o(m,"invokeFunc");function g(E){return h=E,l=setTimeout(x,e),f?m(E):s}o(g,"leadingEdge");function y(E){var A=E-u,S=E-h,_=e-A;return d?JWe(_,a-S):_}o(y,"remainingWait");function v(E){var A=E-u,S=E-h;return u===void 0||A>=e||A<0||d&&S>=a}o(v,"shouldInvoke");function x(){var E=xP();if(v(E))return b(E);l=setTimeout(x,y(E))}o(x,"timerExpired");function b(E){return l=void 0,p&&n?m(E):(n=i=void 0,s)}o(b,"trailingEdge");function w(){l!==void 0&&clearTimeout(l),h=0,n=u=i=l=void 0}o(w,"cancel");function C(){return l===void 0?s:b(xP())}o(C,"flush");function T(){var E=xP(),A=v(E);if(n=arguments,i=this,u=E,A){if(l===void 0)return g(u);if(d)return clearTimeout(l),l=setTimeout(x,e),m(u)}return l===void 0&&(l=setTimeout(x,e)),s}return o(T,"debounced"),T.cancel=w,T.flush=C,T}function IS(t,e,r,n,i,a){var s;return si(t)?s=t:s=Q1[t]||Q1.euclidean,e===0&&si(t)?s(i,a):s(e,r,n,i,a)}function qYe(t,e){if(OS(t))return!1;var r=typeof t;return r=="number"||r=="symbol"||r=="boolean"||t==null||r4(t)?!0:WYe.test(t)||!HYe.test(t)||e!=null&&t in Object(e)}function ZYe(t){if(!zp(t))return!1;var e=ame(t);return e==jYe||e==KYe||e==XYe||e==QYe}function tXe(t){return!!e0e&&e0e in t}function aXe(t){if(t!=null){try{return iXe.call(t)}catch{}try{return t+""}catch{}}return""}function pXe(t){if(!zp(t)||rXe(t))return!1;var e=JYe(t)?dXe:lXe;return e.test(sXe(t))}function gXe(t,e){return t?.[e]}function vXe(t,e){var r=yXe(t,e);return mXe(r)?r:void 0}function bXe(){this.__data__=jb?jb(null):{},this.size=0}function TXe(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}function AXe(t){var e=this.__data__;if(jb){var r=e[t];return r===EXe?void 0:r}return CXe.call(e,t)?e[t]:void 0}function RXe(t){var e=this.__data__;return jb?e[t]!==void 0:LXe.call(e,t)}function IXe(t,e){var r=this.__data__;return this.size+=this.has(t)?0:1,r[t]=jb&&e===void 0?MXe:e,this}function ty(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}function PXe(){this.__data__=[],this.size=0}function FXe(t,e){return t===e||t!==t&&e!==e}function $Xe(t,e){for(var r=t.length;r--;)if(Lme(t[r][0],e))return r;return-1}function VXe(t){var e=this.__data__,r=PS(e,t);if(r<0)return!1;var n=e.length-1;return r==n?e.pop():GXe.call(e,r,1),--this.size,!0}function HXe(t){var e=this.__data__,r=PS(e,t);return r<0?void 0:e[r][1]}function qXe(t){return PS(this.__data__,t)>-1}function XXe(t,e){var r=this.__data__,n=PS(r,t);return n<0?(++this.size,r.push([t,e])):r[n][1]=e,this}function ry(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}function JXe(){this.size=0,this.__data__={hash:new t0e,map:new(ZXe||KXe),string:new t0e}}function tje(t){var e=typeof t;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?t!=="__proto__":t===null}function nje(t,e){var r=t.__data__;return rje(e)?r[typeof e=="string"?"string":"hash"]:r.map}function ije(t){var e=BS(this,t).delete(t);return this.size-=e?1:0,e}function sje(t){return BS(this,t).get(t)}function lje(t){return BS(this,t).has(t)}function uje(t,e){var r=BS(this,t),n=r.size;return r.set(t,e),this.size+=r.size==n?0:1,this}function ny(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}function cB(t,e){if(typeof t!="function"||e!=null&&typeof e!="function")throw new TypeError(fje);var r=o(function(){var n=arguments,i=e?e.apply(this,n):n[0],a=r.cache;if(a.has(i))return a.get(i);var s=t.apply(this,n);return r.cache=a.set(i,s)||a,s},"memoized");return r.cache=new(cB.Cache||Rme),r}function mje(t){var e=dje(t,function(n){return r.size===pje&&r.clear(),n}),r=e.cache;return e}function bje(t,e){for(var r=-1,n=t==null?0:t.length,i=Array(n);++r<n;)i[r]=e(t[r],r,t);return i}function Ime(t){if(typeof t=="string")return t;if(OS(t))return Mme(t,Ime)+"";if(r4(t))return n0e?n0e.call(t):"";var e=t+"";return e=="0"&&1/t==-wje?"-0":e}function kje(t){return t==null?"":Tje(t)}function Eje(t,e){return OS(t)?t:YYe(t,e)?[t]:Nme(Ome(t))}function Cje(t){if(typeof t=="string"||r4(t))return t;var e=t+"";return e=="0"&&1/t==-Sje?"-0":e}function Aje(t,e){e=Pme(e,t);for(var r=0,n=e.length;t!=null&&r<n;)t=t[uB(e[r++])];return r&&r==n?t:void 0}function Dje(t,e,r){var n=t==null?void 0:_je(t,e);return n===void 0?r:n}function Nje(t,e,r){e=="__proto__"&&i0e?i0e(t,e,{configurable:!0,enumerable:!0,value:r,writable:!0}):t[e]=r}function Pje(t,e,r){var n=t[e];(!(Oje.call(t,e)&&Lme(n,r))||r===void 0&&!(e in t))&&Mje(t,e,r)}function zje(t,e){var r=typeof t;return e=e??Fje,!!e&&(r=="number"||r!="symbol"&&$je.test(t))&&t>-1&&t%1==0&&t<e}function Vje(t,e,r,n){if(!zp(t))return t;e=Pme(e,t);for(var i=-1,a=e.length,s=a-1,l=t;l!=null&&++i<a;){var u=uB(e[i]),h=r;if(u==="__proto__"||u==="constructor"||u==="prototype")return t;if(i!=s){var f=l[u];h=n?n(f,u,l):void 0,h===void 0&&(h=zp(f)?f:Gje(e[i+1])?[]:{})}Bje(l,u,h),l=l[u]}return t}function Hje(t,e,r){return t==null?t:Uje(t,e,r)}function qje(t,e){var r=-1,n=t.length;for(e||(e=Array(n));++r<n;)e[r]=t[r];return e}function Xje(t){return OS(t)?Mme(t,uB):r4(t)?[t]:Yje(Nme(Ome(t)))}function fB(t,e,r,n){for(var i=[],a=new J1,s=t.cy(),l=s.hasCompoundNodes(),u=0;u<t.length;u++){var h=t[u];r?i.push(h):l&&n(i,a,h)}for(;i.length>0;){var f=i.shift();e(f),a.add(f.id()),l&&n(i,a,f)}return t}function Fme(t,e,r){if(r.isParent())for(var n=r._private.children,i=0;i<n.length;i++){var a=n[i];e.has(a.id())||t.push(a)}}function $me(t,e,r){if(r.isChild()){var n=r._private.parent;e.has(n.id())||t.push(n)}}function dKe(t,e,r){$me(t,e,r),Fme(t,e,r)}function SP(t){return function(e){var r=this;if(e===void 0&&(e=!0),r.length!==0)if(r.isNode()&&!r.removed()){for(var n=0,i=r[0],a=i._private.edges,s=0;s<a.length;s++){var l=a[s];!e&&l.isLoop()||(n+=t(i,l))}return n}else return}}function F1(t,e){return function(r){for(var n,i=this.nodes(),a=0;a<i.length;a++){var s=i[a],l=s[t](r);l!==void 0&&(n===void 0||e(l,n))&&(n=l)}return n}}function Lb(){return!1}function rS(){return!0}function $S(){for(var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:NKe,e=arguments.length>1?arguments[1]:void 0,r=0;r<u0e.length;r++){var n=u0e[r];this[n]=t[n]||Xme[n]}this.context=e||this.context,this.listeners=[],this.emitting=0}function Jme(t,e,r){var n=r._private,i=n.styleCache=n.styleCache||[],a;return(a=i[t])!=null||(a=i[t]=e(r)),a}function zS(t,e){return t=_f(t),o(function(n){return Jme(t,e,n)},"cachedStyleFunction")}function GS(t,e){t=_f(t);var r=o(function(i){return e.call(i)},"selfFn");return o(function(){var i=this[0];if(i)return Jme(t,r,i)},"cachedPrototypeStyleFunction")}function AP(t,e){var r=t._private,n=r.data.parent?t.parents():null;if(n)for(var i=0;i<n.length;i++){var a=n[i];if(!e(a))return!1}return!0}function dB(t){var e=t.ok,r=t.edgeOkViaNode||t.ok,n=t.parentOk||t.ok;return function(){var i=this.cy();if(!i.styleEnabled())return!0;var a=this[0],s=i.hasCompoundNodes();if(a){var l=a._private;if(!e(a))return!1;if(a.isNode())return!s||AP(a,n);var u=l.source,h=l.target;return r(u)&&(!s||AP(u,r))&&(u===h||r(h)&&(!s||AP(h,r)))}}}function f0e(t){return function(){var e=arguments,r=[];if(e.length===2){var n=e[0],i=e[1];this.on(t.event,n,i)}else if(e.length===1&&si(e[0])){var a=e[0];this.on(t.event,a)}else if(e.length===0||e.length===1&&En(e[0])){for(var s=e.length===1?e[0]:null,l=0;l<this.length;l++){var u=this[l],h=!t.ableField||u._private[t.ableField],f=u._private[t.field]!=t.value;if(t.overrideAble){var d=t.overrideAble(u);if(d!==void 0&&(h=d,!d))return this}h&&(u._private[t.field]=t.value,f&&r.push(u))}var p=this.spawn(r);p.updateStyle(),p.emit(t.event),s&&p.emit(s)}return this}}function ay(t){Cf[t.field]=function(){var e=this[0];if(e){if(t.overrideField){var r=t.overrideField(e);if(r!==void 0)return r}return e._private[t.field]}},Cf[t.on]=f0e({event:t.on,field:t.field,ableField:t.ableField,overrideAble:t.overrideAble,value:!0}),Cf[t.off]=f0e({event:t.off,field:t.field,ableField:t.ableField,overrideAble:t.overrideAble,value:!1})}function g0e(t){return o(function(r){for(var n=[],i=0;i<this.length;i++){var a=this[i],s=a._private[t.attr];s&&n.push(s)}return this.spawn(n,!0).filter(r)},"sourceImpl")}function y0e(t){return o(function(r){var n=[],i=this._private.cy,a=t||{};Zt(r)&&(r=i.$(r));for(var s=0;s<r.length;s++)for(var l=r[s]._private.edges,u=0;u<l.length;u++){var h=l[u],f=h._private.data,d=this.hasElementWithId(f.source)&&r.hasElementWithId(f.target),p=r.hasElementWithId(f.source)&&this.hasElementWithId(f.target),m=d||p;m&&((a.thisIsSrc||a.thisIsTgt)&&(a.thisIsSrc&&!d||a.thisIsTgt&&!p)||n.push(h))}return this.spawn(n,!0)},"edgesWithImpl")}function v0e(t){var e={codirected:!1};return t=rr({},e,t),o(function(n){for(var i=[],a=this.edges(),s=t,l=0;l<a.length;l++)for(var u=a[l],h=u._private,f=h.source,d=f._private.data.id,p=h.data.target,m=f._private.edges,g=0;g<m.length;g++){var y=m[g],v=y._private.data,x=v.target,b=v.source,w=x===p&&b===d,C=d===x&&p===b;(s.codirected&&w||!s.codirected&&(w||C))&&i.push(y)}return this.spawn(i,!0).filter(n)},"parallelEdgesImpl")}function UKe(t,e,r,n){var i=4,a=.001,s=1e-7,l=10,u=11,h=1/(u-1),f=typeof Float32Array<"u";if(arguments.length!==4)return!1;for(var d=0;d<4;++d)if(typeof arguments[d]!="number"||isNaN(arguments[d])||!isFinite(arguments[d]))return!1;t=Math.min(t,1),r=Math.min(r,1),t=Math.max(t,0),r=Math.max(r,0);var p=f?new Float32Array(u):new Array(u);function m(I,D){return 1-3*D+3*I}o(m,"A");function g(I,D){return 3*D-6*I}o(g,"B");function y(I){return 3*I}o(y,"C");function v(I,D,k){return((m(D,k)*I+g(D,k))*I+y(D))*I}o(v,"calcBezier");function x(I,D,k){return 3*m(D,k)*I*I+2*g(D,k)*I+y(D)}o(x,"getSlope");function b(I,D){for(var k=0;k<i;++k){var L=x(D,t,r);if(L===0)return D;var R=v(D,t,r)-I;D-=R/L}return D}o(b,"newtonRaphsonIterate");function w(){for(var I=0;I<u;++I)p[I]=v(I*h,t,r)}o(w,"calcSampleValues");function C(I,D,k){var L,R,O=0;do R=D+(k-D)/2,L=v(R,t,r)-I,L>0?k=R:D=R;while(Math.abs(L)>s&&++O<l);return R}o(C,"binarySubdivide");function T(I){for(var D=0,k=1,L=u-1;k!==L&&p[k]<=I;++k)D+=h;--k;var R=(I-p[k])/(p[k+1]-p[k]),O=D+R*h,M=x(O,t,r);return M>=a?b(I,O):M===0?O:C(I,D,D+h)}o(T,"getTForX");var E=!1;function A(){E=!0,(t!==e||r!==n)&&w()}o(A,"precompute");var S=o(function(D){return E||A(),t===e&&r===n?D:D===0?0:D===1?1:v(T(D),e,n)},"f");S.getControlPoints=function(){return[{x:t,y:e},{x:r,y:n}]};var _="generateBezier("+[t,e,r,n]+")";return S.toString=function(){return _},S}function x0e(t,e,r,n,i){if(n===1||e===r)return r;var a=i(e,r,n);return t==null||((t.roundValue||t.color)&&(a=Math.round(a)),t.min!==void 0&&(a=Math.max(a,t.min)),t.max!==void 0&&(a=Math.min(a,t.max))),a}function b0e(t,e){return t.pfValue!=null||t.value!=null?t.pfValue!=null&&(e==null||e.type.units!=="%")?t.pfValue:t.value:t}function $1(t,e,r,n,i){var a=i!=null?i.type:null;r<0?r=0:r>1&&(r=1);var s=b0e(t,i),l=b0e(e,i);if(Ct(s)&&Ct(l))return x0e(a,s,l,r,n);if(En(s)&&En(l)){for(var u=[],h=0;h<l.length;h++){var f=s[h],d=l[h];if(f!=null&&d!=null){var p=x0e(a,f,d,r,n);u.push(p)}else u.push(d)}return u}}function WKe(t,e,r,n){var i=!n,a=t._private,s=e._private,l=s.easing,u=s.startTime,h=n?t:t.cy(),f=h.style();if(!s.easingImpl)if(l==null)s.easingImpl=dS.linear;else{var d;if(Zt(l)){var p=f.parse("transition-timing-function",l);d=p.value}else d=l;var m,g;Zt(d)?(m=d,g=[]):(m=d[1],g=d.slice(2).map(function(P){return+P})),g.length>0?(m==="spring"&&g.push(s.duration),s.easingImpl=dS[m].apply(null,g)):s.easingImpl=dS[m]}var y=s.easingImpl,v;if(s.duration===0?v=1:v=(r-u)/s.duration,s.applying&&(v=s.progress),v<0?v=0:v>1&&(v=1),s.delay==null){var x=s.startPosition,b=s.position;if(b&&i&&!t.locked()){var w={};Rb(x.x,b.x)&&(w.x=$1(x.x,b.x,v,y)),Rb(x.y,b.y)&&(w.y=$1(x.y,b.y,v,y)),t.position(w)}var C=s.startPan,T=s.pan,E=a.pan,A=T!=null&&n;A&&(Rb(C.x,T.x)&&(E.x=$1(C.x,T.x,v,y)),Rb(C.y,T.y)&&(E.y=$1(C.y,T.y,v,y)),t.emit("pan"));var S=s.startZoom,_=s.zoom,I=_!=null&&n;I&&(Rb(S,_)&&(a.zoom=Yb(a.minZoom,$1(S,_,v,y),a.maxZoom)),t.emit("zoom")),(A||I)&&t.emit("viewport");var D=s.style;if(D&&D.length>0&&i){for(var k=0;k<D.length;k++){var L=D[k],R=L.name,O=L,M=s.startStyle[R],B=f.properties[M.name],F=$1(M,O,v,y,B);f.overrideBypass(t,R,F)}t.emit("style")}}return s.progress=v,v}function Rb(t,e){return t==null||e==null?!1:Ct(t)&&Ct(e)?!0:!!(t&&e)}function qKe(t,e,r,n){var i=e._private;i.started=!0,i.startTime=r-i.progress*i.duration}function w0e(t,e){var r=e._private.aniEles,n=[];function i(f,d){var p=f._private,m=p.animation.current,g=p.animation.queue,y=!1;if(m.length===0){var v=g.shift();v&&m.push(v)}for(var x=o(function(E){for(var A=E.length-1;A>=0;A--){var S=E[A];S()}E.splice(0,E.length)},"callbacks"),b=m.length-1;b>=0;b--){var w=m[b],C=w._private;if(C.stopped){m.splice(b,1),C.hooked=!1,C.playing=!1,C.started=!1,x(C.frames);continue}!C.playing&&!C.applying||(C.playing&&C.applying&&(C.applying=!1),C.started||qKe(f,w,t),WKe(f,w,t,d),C.applying&&(C.applying=!1),x(C.frames),C.step!=null&&C.step(t),w.completed()&&(m.splice(b,1),C.hooked=!1,C.playing=!1,C.started=!1,x(C.completes)),y=!0)}return!d&&m.length===0&&g.length===0&&n.push(f),y}o(i,"stepOne");for(var a=!1,s=0;s<r.length;s++){var l=r[s],u=i(l);a=a||u}var h=i(e,!0);(a||h)&&(r.length>0?e.notify("draw",r):e.notify("draw")),r.unmerge(n),e.emit("step")}function tge(t){this.options=rr({},eQe,tQe,t)}function rge(t){this.options=rr({},rQe,t)}function nge(t){this.options=rr({},nQe,t)}function HS(t){this.options=rr({},iQe,t),this.options.layout=this;var e=this.options.eles.nodes(),r=this.options.eles.edges(),n=r.filter(function(i){var a=i.source().data("id"),s=i.target().data("id"),l=e.some(function(h){return h.data("id")===a}),u=e.some(function(h){return h.data("id")===s});return!l||!u});this.options.eles=this.options.eles.not(n)}function age(t){this.options=rr({},wQe,t)}function gB(t){this.options=rr({},TQe,t)}function sge(t){this.options=rr({},kQe,t)}function oge(t){this.options=rr({},EQe,t)}function lge(t){this.options=t,this.notifications=0}function hge(t,e){e.radius===0?t.lineTo(e.cx,e.cy):t.arc(e.cx,e.cy,e.radius,e.startAngle,e.endAngle,e.counterClockwise)}function vB(t,e,r,n){var i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0;return n===0||e.radius===0?{cx:e.x,cy:e.y,radius:0,startX:e.x,startY:e.y,stopX:e.x,stopY:e.y,startAngle:void 0,endAngle:void 0,counterClockwise:void 0}:(AQe(t,e,r,n,i),{cx:HP,cy:WP,radius:Bp,startX:cge,startY:uge,stopX:qP,stopY:YP,startAngle:qc.ang+Math.PI/2*Fp,endAngle:Jo.ang-Math.PI/2*Fp,counterClockwise:gS})}function fge(t){var e=[];if(t!=null){for(var r=0;r<t.length;r+=2){var n=t[r],i=t[r+1];e.push({x:n,y:i})}return e}}function _Qe(t,e,r){for(var n=o(function(h,f,d,p){return oa(h,f,d,p)},"qbezierAt$1"),i=e._private,a=i.rstyle.bezierPts,s=0;s<t.bezierProjPcts.length;s++){var l=t.bezierProjPcts[s];a.push({x:n(r[0],r[2],r[4],l),y:n(r[1],r[3],r[5],l)})}}function iZe(t,e){for(var r=0;r<e.length;r++){var n=e[r];t.lineTo(n.x,n.y)}}function aZe(t,e,r){for(var n,i=0;i<e.length;i++){var a=e[i];i===0&&(n=a),t.lineTo(a.x,a.y)}t.quadraticCurveTo(r.x,r.y,n.x,n.y)}function $0e(t,e,r){t.beginPath&&t.beginPath();for(var n=e,i=0;i<n.length;i++){var a=n[i];t.lineTo(a.x,a.y)}var s=r,l=r[0];t.moveTo(l.x,l.y);for(var i=1;i<s.length;i++){var a=s[i];t.lineTo(a.x,a.y)}t.closePath&&t.closePath()}function sZe(t,e,r,n,i){t.beginPath&&t.beginPath(),t.arc(r,n,i,0,Math.PI*2,!1);var a=e,s=a[0];t.moveTo(s.x,s.y);for(var l=0;l<a.length;l++){var u=a[l];t.lineTo(u.x,u.y)}t.closePath&&t.closePath()}function oZe(t,e,r,n){t.arc(e,r,n,0,Math.PI*2,!1)}function RP(t,e,r,n,i){var a=arguments.length>5&&arguments[5]!==void 0?arguments[5]:5,s=arguments.length>6?arguments[6]:void 0;t.beginPath(),t.moveTo(e+a,r),t.lineTo(e+n-a,r),t.quadraticCurveTo(e+n,r,e+n,r+a),t.lineTo(e+n,r+i-a),t.quadraticCurveTo(e+n,r+i,e+n-a,r+i),t.lineTo(e+a,r+i),t.quadraticCurveTo(e,r+i,e,r+i-a),t.lineTo(e,r+a),t.quadraticCurveTo(e,r,e+a,r),t.closePath(),s?t.stroke():t.fill()}function z0e(t,e,r){var n=t.createShader(e);if(t.shaderSource(n,r),t.compileShader(n),!t.getShaderParameter(n,t.COMPILE_STATUS))throw new Error(t.getShaderInfoLog(n));return n}function pZe(t,e,r){var n=z0e(t,t.VERTEX_SHADER,e),i=z0e(t,t.FRAGMENT_SHADER,r),a=t.createProgram();if(t.attachShader(a,n),t.attachShader(a,i),t.linkProgram(a),!t.getProgramParameter(a,t.LINK_STATUS))throw new Error("Could not initialize shaders");return a}function mZe(t,e,r){r===void 0&&(r=e);var n=t.makeOffscreenCanvas(e,r),i=n.context=n.getContext("2d");return n.clear=function(){return i.clearRect(0,0,n.width,n.height)},n.clear(),n}function wB(t){var e=t.pixelRatio,r=t.cy.zoom(),n=t.cy.pan();return{zoom:r*e,pan:{x:n.x*e,y:n.y*e}}}function NP(t,e,r,n,i){var a=n*r+e.x,s=i*r+e.y;return s=Math.round(t.canvasHeight-s),[a,s]}function oS(t,e,r){var n=t[0]/255,i=t[1]/255,a=t[2]/255,s=e,l=r||new Array(4);return l[0]=n*s,l[1]=i*s,l[2]=a*s,l[3]=s,l}function lS(t,e){var r=e||new Array(4);return r[0]=(t>>0&255)/255,r[1]=(t>>8&255)/255,r[2]=(t>>16&255)/255,r[3]=(t>>24&255)/255,r}function gZe(t){return t[0]+(t[1]<<8)+(t[2]<<16)+(t[3]<<24)}function yZe(t,e){var r=t.createTexture();return r.buffer=function(n){t.bindTexture(t.TEXTURE_2D,r),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR_MIPMAP_NEAREST),t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,n),t.generateMipmap(t.TEXTURE_2D),t.bindTexture(t.TEXTURE_2D,null)},r.deleteTexture=function(){t.deleteTexture(r)},r}function Sge(t,e){switch(e){case"float":return[1,t.FLOAT,4];case"vec2":return[2,t.FLOAT,4];case"vec3":return[3,t.FLOAT,4];case"vec4":return[4,t.FLOAT,4];case"int":return[1,t.INT,4];case"ivec2":return[2,t.INT,4]}}function Cge(t,e,r){switch(e){case t.FLOAT:return new Float32Array(r);case t.INT:return new Int32Array(r)}}function vZe(t,e,r,n,i,a){switch(e){case t.FLOAT:return new Float32Array(r.buffer,a*n,i);case t.INT:return new Int32Array(r.buffer,a*n,i)}}function xZe(t,e,r,n){var i=Sge(t,e),a=_i(i,2),s=a[0],l=a[1],u=Cge(t,l,n),h=t.createBuffer();return t.bindBuffer(t.ARRAY_BUFFER,h),t.bufferData(t.ARRAY_BUFFER,u,t.STATIC_DRAW),l===t.FLOAT?t.vertexAttribPointer(r,s,l,!1,0,0):l===t.INT&&t.vertexAttribIPointer(r,s,l,0,0),t.enableVertexAttribArray(r),t.bindBuffer(t.ARRAY_BUFFER,null),h}function po(t,e,r,n){var i=Sge(t,r),a=_i(i,3),s=a[0],l=a[1],u=a[2],h=Cge(t,l,e*s),f=s*u,d=t.createBuffer();t.bindBuffer(t.ARRAY_BUFFER,d),t.bufferData(t.ARRAY_BUFFER,e*f,t.DYNAMIC_DRAW),t.enableVertexAttribArray(n),l===t.FLOAT?t.vertexAttribPointer(n,s,l,!1,f,0):l===t.INT&&t.vertexAttribIPointer(n,s,l,f,0),t.vertexAttribDivisor(n,1),t.bindBuffer(t.ARRAY_BUFFER,null);for(var p=new Array(e),m=0;m<e;m++)p[m]=vZe(t,l,h,f,s,m);return d.dataArray=h,d.stride=f,d.size=s,d.getView=function(g){return p[g]},d.setPoint=function(g,y,v){var x=p[g];x[0]=y,x[1]=v},d.bufferSubData=function(g){t.bindBuffer(t.ARRAY_BUFFER,d),g?t.bufferSubData(t.ARRAY_BUFFER,0,h,0,g*s):t.bufferSubData(t.ARRAY_BUFFER,0,h)},d}function bZe(t){var e=t.createFramebuffer();t.bindFramebuffer(t.FRAMEBUFFER,e);var r=t.createTexture();return t.bindTexture(t.TEXTURE_2D,r),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,r,0),t.bindFramebuffer(t.FRAMEBUFFER,null),e.setFramebufferAttachmentSizes=function(n,i){t.bindTexture(t.TEXTURE_2D,r),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,n,i,0,t.RGBA,t.UNSIGNED_BYTE,null)},e}function Gb(){var t=new G0e(9);return G0e!=Float32Array&&(t[1]=0,t[2]=0,t[3]=0,t[5]=0,t[6]=0,t[7]=0),t[0]=1,t[4]=1,t[8]=1,t}function Age(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t}function wZe(t,e,r){var n=e[0],i=e[1],a=e[2],s=e[3],l=e[4],u=e[5],h=e[6],f=e[7],d=e[8],p=r[0],m=r[1],g=r[2],y=r[3],v=r[4],x=r[5],b=r[6],w=r[7],C=r[8];return t[0]=p*n+m*s+g*h,t[1]=p*i+m*l+g*f,t[2]=p*a+m*u+g*d,t[3]=y*n+v*s+x*h,t[4]=y*i+v*l+x*f,t[5]=y*a+v*u+x*d,t[6]=b*n+w*s+C*h,t[7]=b*i+w*l+C*f,t[8]=b*a+w*u+C*d,t}function DS(t,e,r){var n=e[0],i=e[1],a=e[2],s=e[3],l=e[4],u=e[5],h=e[6],f=e[7],d=e[8],p=r[0],m=r[1];return t[0]=n,t[1]=i,t[2]=a,t[3]=s,t[4]=l,t[5]=u,t[6]=p*n+m*s+h,t[7]=p*i+m*l+f,t[8]=p*a+m*u+d,t}function _ge(t,e,r){var n=e[0],i=e[1],a=e[2],s=e[3],l=e[4],u=e[5],h=e[6],f=e[7],d=e[8],p=Math.sin(r),m=Math.cos(r);return t[0]=m*n+p*s,t[1]=m*i+p*l,t[2]=m*a+p*u,t[3]=m*s-p*n,t[4]=m*l-p*i,t[5]=m*u-p*a,t[6]=h,t[7]=f,t[8]=d,t}function TB(t,e,r){var n=r[0],i=r[1];return t[0]=n*e[0],t[1]=n*e[1],t[2]=n*e[2],t[3]=i*e[3],t[4]=i*e[4],t[5]=i*e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t}function TZe(t,e,r){return t[0]=2/e,t[1]=0,t[2]=0,t[3]=0,t[4]=-2/r,t[5]=0,t[6]=-1,t[7]=1,t[8]=1,t}function SZe(t,e){return t.intersection?t.intersection(e):new Set(j0e(t).filter(function(r){return e.has(r)}))}function H0e(t,e){return"rgba(".concat(t[0],", ").concat(t[1],", ").concat(t[2],", ").concat(e,")")}function DZe(t){var e=t&&t.style&&t.style.backgroundColor||"white";return tme(e)}function LZe(t){{var e=t.render;t.render=function(a){a=a||{};var s=t.cy;t.webgl&&(s.zoom()>bge?(RZe(t),e.call(t,a)):(NZe(t),Rge(t,a,Vb.SCREEN)))}}{var r=t.matchCanvasSize;t.matchCanvasSize=function(a){r.call(t,a),t.pickingFrameBuffer.setFramebufferAttachmentSizes(t.canvasWidth,t.canvasHeight),t.pickingFrameBuffer.needsDraw=!0}}t.findNearestElements=function(a,s,l,u){return FZe(t,a,s)};{var n=t.invalidateCachedZSortedEles;t.invalidateCachedZSortedEles=function(){n.call(t),t.pickingFrameBuffer.needsDraw=!0}}{var i=t.notify;t.notify=function(a,s){i.call(t,a,s),a==="viewport"||a==="bounds"?t.pickingFrameBuffer.needsDraw=!0:a==="background"&&t.eleDrawing.invalidate(s,{type:"node-body"})}}}function RZe(t){var e=t.data.contexts[t.WEBGL];e.clear(e.COLOR_BUFFER_BIT|e.DEPTH_BUFFER_BIT)}function NZe(t){var e=o(function(n){n.save(),n.setTransform(1,0,0,1,0,0),n.clearRect(0,0,t.canvasWidth,t.canvasHeight),n.restore()},"clear");e(t.data.contexts[t.NODE]),e(t.data.contexts[t.DRAG])}function MZe(t){var e=t.canvasWidth,r=t.canvasHeight,n=wB(t),i=n.pan,a=n.zoom,s=Gb();DS(s,s,[i.x,i.y]),TB(s,s,[a,a]);var l=Gb();TZe(l,e,r);var u=Gb();return wZe(u,l,s),u}function Lge(t,e){var r=t.canvasWidth,n=t.canvasHeight,i=wB(t),a=i.pan,s=i.zoom;e.setTransform(1,0,0,1,0,0),e.clearRect(0,0,r,n),e.translate(a.x,a.y),e.scale(s,s)}function IZe(t,e){t.drawSelectionRectangle(e,function(r){return Lge(t,r)})}function OZe(t){var e=t.data.contexts[t.NODE];e.save(),Lge(t,e),e.strokeStyle="rgba(0, 0, 0, 0.3)",e.beginPath(),e.moveTo(-1e3,0),e.lineTo(1e3,0),e.stroke(),e.beginPath(),e.moveTo(0,-1e3),e.lineTo(0,1e3),e.stroke(),e.restore()}function PZe(t){var e=o(function(i,a,s){for(var l=i.atlasManager.getRenderTypeOpts(a),u=t.data.contexts[t.NODE],h=.125,f=l.atlasCollection.atlases,d=0;d<f.length;d++){var p=f[d],m=p.canvas,g=m.width,y=m.height,v=g*d,x=m.height*s;u.save(),u.scale(h,h),u.drawImage(m,v,x),u.strokeStyle="black",u.rect(v,x,g,y),u.stroke(),u.restore()}},"draw"),r=0;e(t.eleDrawing,"node-body",r++),e(t.eleDrawing,"node-label",r++)}function BZe(t,e,r,n,i){var a,s,l,u,h=wB(t),f=h.pan,d=h.zoom;if(n===void 0||i===void 0){var p=NP(t,f,d,e,r),m=_i(p,2),g=m[0],y=m[1],v=6;a=g-v/2,s=y-v/2,l=v,u=v}else{var x=NP(t,f,d,e,r),b=_i(x,2),w=b[0],C=b[1],T=NP(t,f,d,n,i),E=_i(T,2),A=E[0],S=E[1];a=w,s=S,l=Math.abs(A-w),u=Math.abs(S-C)}if(l===0||u===0)return[];var _=t.data.contexts[t.WEBGL];_.bindFramebuffer(_.FRAMEBUFFER,t.pickingFrameBuffer),t.pickingFrameBuffer.needsDraw&&(_.viewport(0,0,_.canvas.width,_.canvas.height),Rge(t,null,Vb.PICKING),t.pickingFrameBuffer.needsDraw=!1);var I=l*u,D=new Uint8Array(I*4);_.readPixels(a,s,l,u,_.RGBA,_.UNSIGNED_BYTE,D),_.bindFramebuffer(_.FRAMEBUFFER,null);for(var k=new Set,L=0;L<I;L++){var R=D.slice(L*4,L*4+4),O=gZe(R)-1;O>=0&&k.add(O)}return k}function FZe(t,e,r){var n=BZe(t,e,r),i=t.getCachedZSortedEles(),a,s,l=mo(n),u;try{for(l.s();!(u=l.n()).done;){var h=u.value,f=i[h];if(!a&&f.isNode()&&(a=f),!s&&f.isEdge()&&(s=f),a&&s)break}}catch(d){l.e(d)}finally{l.f()}return[a,s].filter(Boolean)}function Rge(t,e,r){var n,i;t.webglDebug&&(i=[],n=performance.now());var a=t.eleDrawing,s=0;if(r.screen&&t.data.canvasNeedsRedraw[t.SELECT_BOX]&&IZe(t,e),t.data.canvasNeedsRedraw[t.NODE]||r.picking){var l=o(function(k,L){L+=1,k.isNode()?(a.drawTexture(k,L,"node-underlay"),a.drawTexture(k,L,"node-body"),a.drawTexture(k,L,"node-label"),a.drawTexture(k,L,"node-overlay")):(a.drawEdgeLine(k,L),a.drawEdgeArrow(k,L,"source"),a.drawEdgeArrow(k,L,"target"),a.drawTexture(k,L,"edge-label"))},"draw"),u=t.data.contexts[t.WEBGL];r.screen?(u.clearColor(0,0,0,0),u.enable(u.BLEND),u.blendFunc(u.ONE,u.ONE_MINUS_SRC_ALPHA)):u.disable(u.BLEND),u.clear(u.COLOR_BUFFER_BIT|u.DEPTH_BUFFER_BIT),u.viewport(0,0,u.canvas.width,u.canvas.height);var h=MZe(t),f=t.getCachedZSortedEles();if(s=f.length,a.startFrame(h,i,r),r.screen){for(var d=0;d<f.nondrag.length;d++)l(f.nondrag[d],d);for(var p=0;p<f.drag.length;p++)l(f.drag[p],-1)}else if(r.picking)for(var m=0;m<f.length;m++)l(f[m],m);a.endFrame(),t.data.gc&&(console.log("Garbage Collect!"),t.data.gc=!1,a.gc()),r.screen&&t.webglDebugShowAtlases&&(OZe(t),PZe(t)),t.data.canvasNeedsRedraw[t.NODE]=!1,t.data.canvasNeedsRedraw[t.DRAG]=!1}if(t.webglDebug){var g=performance.now(),y=!0,v=0,x=0,b=mo(i),w;try{for(b.s();!(w=b.n()).done;){var C=w.value;v++,x+=C.count}}catch(D){b.e(D)}finally{b.f()}var T=Math.ceil(g-n),E="".concat(s," elements, ").concat(x," rectangles, ").concat(v," batches");if(y)console.log("WebGL (".concat(r.name,") - ").concat(E));else{console.log("WebGL render (".concat(r.name,") - frame time ").concat(T,"ms")),console.log("  ".concat(E)),console.log("Texture Atlases Used:");var A=a.getAtlasDebugInfo(),S=mo(A),_;try{for(S.s();!(_=S.n()).done;){var I=_.value;console.log("  ".concat(I.type,": ").concat(I.keyCount," keys, ").concat(I.atlasCount," atlases"))}}catch(D){S.e(D)}finally{S.f()}console.log("")}}}function $Ze(t,e){for(var r=atob(t),n=new ArrayBuffer(r.length),i=new Uint8Array(n),a=0;a<r.length;a++)i[a]=r.charCodeAt(a);return new Blob([n],{type:e})}function Y0e(t){var e=t.indexOf(",");return t.substr(e+1)}function Mge(t,e,r){var n=o(function(){return e.toDataURL(r,t.quality)},"getB64Uri");switch(t.output){case"blob-promise":return new ey(function(i,a){try{e.toBlob(function(s){s!=null?i(s):a(new Error("`canvas.toBlob()` sent a null value in its callback"))},r,t.quality)}catch(s){a(s)}});case"blob":return $Ze(Y0e(n()),r);case"base64":return Y0e(n());case"base64uri":default:return n()}}function Oge(t){var e=this,r=e.cy.window(),n=r.document;t.webgl&&(Er.CANVAS_LAYERS=e.CANVAS_LAYERS=4,console.log("webgl rendering enabled")),e.data={canvases:new Array(Er.CANVAS_LAYERS),contexts:new Array(Er.CANVAS_LAYERS),canvasNeedsRedraw:new Array(Er.CANVAS_LAYERS),bufferCanvases:new Array(Er.BUFFER_COUNT),bufferContexts:new Array(Er.CANVAS_LAYERS)};var i="-webkit-tap-highlight-color",a="rgba(0,0,0,0)";e.data.canvasContainer=n.createElement("div");var s=e.data.canvasContainer.style;e.data.canvasContainer.style[i]=a,s.position="relative",s.zIndex="0",s.overflow="hidden";var l=t.cy.container();l.appendChild(e.data.canvasContainer),l.style[i]=a;var u={"-webkit-user-select":"none","-moz-user-select":"-moz-none","user-select":"none","-webkit-tap-highlight-color":"rgba(0,0,0,0)","outline-style":"none"};iWe()&&(u["-ms-touch-action"]="none",u["touch-action"]="none");for(var h=0;h<Er.CANVAS_LAYERS;h++){var f=e.data.canvases[h]=n.createElement("canvas"),d=Er.CANVAS_TYPES[h];e.data.contexts[h]=f.getContext(d),e.data.contexts[h]||ai("Could not create canvas of type "+d),Object.keys(u).forEach(function(K){f.style[K]=u[K]}),f.style.position="absolute",f.setAttribute("data-id","layer"+h),f.style.zIndex=String(Er.CANVAS_LAYERS-h),e.data.canvasContainer.appendChild(f),e.data.canvasNeedsRedraw[h]=!1}e.data.topCanvas=e.data.canvases[0],e.data.canvases[Er.NODE].setAttribute("data-id","layer"+Er.NODE+"-node"),e.data.canvases[Er.SELECT_BOX].setAttribute("data-id","layer"+Er.SELECT_BOX+"-selectbox"),e.data.canvases[Er.DRAG].setAttribute("data-id","layer"+Er.DRAG+"-drag"),e.data.canvases[Er.WEBGL]&&e.data.canvases[Er.WEBGL].setAttribute("data-id","layer"+Er.WEBGL+"-webgl");for(var h=0;h<Er.BUFFER_COUNT;h++)e.data.bufferCanvases[h]=n.createElement("canvas"),e.data.bufferContexts[h]=e.data.bufferCanvases[h].getContext("2d"),e.data.bufferCanvases[h].style.position="absolute",e.data.bufferCanvases[h].setAttribute("data-id","buffer"+h),e.data.bufferCanvases[h].style.zIndex=String(-h-1),e.data.bufferCanvases[h].style.visibility="hidden";e.pathsEnabled=!0;var p=Hs(),m=o(function(X){return{x:(X.x1+X.x2)/2,y:(X.y1+X.y2)/2}},"getBoxCenter"),g=o(function(X){return{x:-X.w/2,y:-X.h/2}},"getCenterOffset"),y=o(function(X){var te=X[0]._private,J=te.oldBackgroundTimestamp===te.backgroundTimestamp;return!J},"backgroundTimestampHasChanged"),v=o(function(X){return X[0]._private.nodeKey},"getStyleKey"),x=o(function(X){return X[0]._private.labelStyleKey},"getLabelKey"),b=o(function(X){return X[0]._private.sourceLabelStyleKey},"getSourceLabelKey"),w=o(function(X){return X[0]._private.targetLabelStyleKey},"getTargetLabelKey"),C=o(function(X,te,J,se,ue){return e.drawElement(X,te,J,!1,!1,ue)},"drawElement"),T=o(function(X,te,J,se,ue){return e.drawElementText(X,te,J,se,"main",ue)},"drawLabel"),E=o(function(X,te,J,se,ue){return e.drawElementText(X,te,J,se,"source",ue)},"drawSourceLabel"),A=o(function(X,te,J,se,ue){return e.drawElementText(X,te,J,se,"target",ue)},"drawTargetLabel"),S=o(function(X){return X.boundingBox(),X[0]._private.bodyBounds},"getElementBox"),_=o(function(X){return X.boundingBox(),X[0]._private.labelBounds.main||p},"getLabelBox"),I=o(function(X){return X.boundingBox(),X[0]._private.labelBounds.source||p},"getSourceLabelBox"),D=o(function(X){return X.boundingBox(),X[0]._private.labelBounds.target||p},"getTargetLabelBox"),k=o(function(X,te){return te},"isLabelVisibleAtScale"),L=o(function(X){return m(S(X))},"getElementRotationPoint"),R=o(function(X,te,J){var se=X?X+"-":"";return{x:te.x+J.pstyle(se+"text-margin-x").pfValue,y:te.y+J.pstyle(se+"text-margin-y").pfValue}},"addTextMargin"),O=o(function(X,te,J){var se=X[0]._private.rscratch;return{x:se[te],y:se[J]}},"getRsPt"),M=o(function(X){return R("",O(X,"labelX","labelY"),X)},"getLabelRotationPoint"),B=o(function(X){return R("source",O(X,"sourceLabelX","sourceLabelY"),X)},"getSourceLabelRotationPoint"),F=o(function(X){return R("target",O(X,"targetLabelX","targetLabelY"),X)},"getTargetLabelRotationPoint"),P=o(function(X){return g(S(X))},"getElementRotationOffset"),z=o(function(X){return g(I(X))},"getSourceLabelRotationOffset"),$=o(function(X){return g(D(X))},"getTargetLabelRotationOffset"),H=o(function(X){var te=_(X),J=g(_(X));if(X.isNode()){switch(X.pstyle("text-halign").value){case"left":J.x=-te.w-(te.leftPad||0);break;case"right":J.x=-(te.rightPad||0);break}switch(X.pstyle("text-valign").value){case"top":J.y=-te.h-(te.topPad||0);break;case"bottom":J.y=-(te.botPad||0);break}}return J},"getLabelRotationOffset"),Q=e.data.eleTxrCache=new Fb(e,{getKey:v,doesEleInvalidateKey:y,drawElement:C,getBoundingBox:S,getRotationPoint:L,getRotationOffset:P,allowEdgeTxrCaching:!1,allowParentTxrCaching:!1}),j=e.data.lblTxrCache=new Fb(e,{getKey:x,drawElement:T,getBoundingBox:_,getRotationPoint:M,getRotationOffset:H,isVisible:k}),ie=e.data.slbTxrCache=new Fb(e,{getKey:b,drawElement:E,getBoundingBox:I,getRotationPoint:B,getRotationOffset:z,isVisible:k}),ne=e.data.tlbTxrCache=new Fb(e,{getKey:w,drawElement:A,getBoundingBox:D,getRotationPoint:F,getRotationOffset:$,isVisible:k}),le=e.data.lyrTxrCache=new wge(e);e.onUpdateEleCalcs(o(function(X,te){Q.invalidateElements(te),j.invalidateElements(te),ie.invalidateElements(te),ne.invalidateElements(te),le.invalidateElements(te);for(var J=0;J<te.length;J++){var se=te[J]._private;se.oldBackgroundTimestamp=se.backgroundTimestamp}},"invalidateTextureCaches"));var he=o(function(X){for(var te=0;te<X.length;te++)le.enqueueElementRefinement(X[te].ele)},"refineInLayers");Q.onDequeue(he),j.onDequeue(he),ie.onDequeue(he),ne.onDequeue(he),t.webgl&&e.initWebgl(t,{getStyleKey:v,getLabelKey:x,drawElement:C,drawLabel:T,getElementBox:S,getLabelBox:_,getElementRotationPoint:L,getElementRotationOffset:P,getLabelRotationPoint:M,getLabelRotationOffset:H})}function Fge(t,e,r){var n=r,i=o(function(S){un("Can not register `"+e+"` for `"+t+"` since `"+S+"` already exists in the prototype and can not be overridden")},"overrideErr");if(t==="core"){if(Jb.prototype[e])return i(e);Jb.prototype[e]=r}else if(t==="collection"){if(ka.prototype[e])return i(e);ka.prototype[e]=r}else if(t==="layout"){for(var a=o(function(S){this.options=S,r.call(this,S),Ur(this._private)||(this._private={}),this._private.cy=S.cy,this._private.listeners=[],this.createEmitter()},"Layout"),s=a.prototype=Object.create(r.prototype),l=[],u=0;u<l.length;u++){var h=l[u];s[h]=s[h]||function(){return this}}s.start&&!s.run?s.run=function(){return this.start(),this}:!s.start&&s.run&&(s.start=function(){return this.run(),this});var f=r.prototype.stop;s.stop=function(){var A=this.options;if(A&&A.animate){var S=this.animations;if(S)for(var _=0;_<S.length;_++)S[_].stop()}return f?f.call(this):this.emit("layoutstop"),this},s.destroy||(s.destroy=function(){return this}),s.cy=function(){return this._private.cy};var d=o(function(S){return S._private.cy},"getCy"),p={addEventFields:o(function(S,_){_.layout=S,_.cy=d(S),_.target=S},"addEventFields"),bubble:o(function(){return!0},"bubble"),parent:o(function(S){return d(S)},"parent")};rr(s,{createEmitter:o(function(){return this._private.emitter=new $S(p,this),this},"createEmitter"),emitter:o(function(){return this._private.emitter},"emitter"),on:o(function(S,_){return this.emitter().on(S,_),this},"on"),one:o(function(S,_){return this.emitter().one(S,_),this},"one"),once:o(function(S,_){return this.emitter().one(S,_),this},"once"),removeListener:o(function(S,_){return this.emitter().removeListener(S,_),this},"removeListener"),removeAllListeners:o(function(){return this.emitter().removeAllListeners(),this},"removeAllListeners"),emit:o(function(S,_){return this.emitter().emit(S,_),this},"emit")}),cn.eventAliasesOn(s),n=a}else if(t==="renderer"&&e!=="null"&&e!=="base"){var m=$ge("renderer","base"),g=m.prototype,y=r,v=r.prototype,x=o(function(){m.apply(this,arguments),y.apply(this,arguments)},"Renderer"),b=x.prototype;for(var w in g){var C=g[w],T=v[w]!=null;if(T)return i(w);b[w]=C}for(var E in v)b[E]=v[E];g.clientFunctions.forEach(function(A){b[A]=b[A]||function(){ai("Renderer does not implement `renderer."+A+"()` on its prototype")}}),n=x}else if(t==="__proto__"||t==="constructor"||t==="prototype")return ai(t+" is an illegal type to be registered, possibly lead to prototype pollutions");return rme({map:Pge,keys:[t,e],value:n})}function $ge(t,e){return nme({map:Pge,keys:[t,e]})}function HZe(t,e,r,n,i){return rme({map:Bge,keys:[t,e,r,n],value:i})}function WZe(t,e,r,n){return nme({map:Bge,keys:[t,e,r,n]})}var Ui,Lpe,jHe,K0e,KHe,QHe,e4,Zt,si,En,Ur,ZHe,Ct,JHe,vS,go,t4,Q0e,JP,Z0e,eWe,Af,tWe,rWe,nWe,iWe,Ub,eB,LS,J0e,Rpe,Hi,aWe,sWe,oWe,lWe,cWe,uWe,eme,hWe,rr,fWe,dWe,pWe,mWe,tme,gWe,rme,nme,zp,Ib,xWe,bWe,wWe,TWe,RS,kWe,xP,EWe,CWe,AWe,DWe,LWe,j1,ime,RWe,NWe,Ab,IWe,OWe,PWe,FWe,$We,zWe,Npe,ame,UWe,HWe,r4,Mpe,qWe,YWe,XWe,jWe,Ipe,QWe,ZWe,JWe,n4,bP,sme,tqe,xS,Qu,V1,ome,Ob,lme,Hb,Wb,rqe,wf,j6,nqe,_f,cme,iqe,Ope,aqe,sqe,tB,ume,bS,Ppe,rB,ai,hme,un,oqe,Yc,lqe,fme,cqe,dme,la,Df,nB,uqe,Gl,kf,hqe,Xc,fqe,dqe,J1,NS,Bpe,qb,pqe,i4,mqe,gqe,yqe,vqe,xqe,bqe,wqe,Tqe,kqe,Eqe,Sqe,wP,Cqe,Aqe,MS,pme,U1,_qe,Dqe,Lqe,Rqe,Nqe,K6,iB,mme,Gp,Op,Mqe,oa,W1,Iqe,Yb,Hs,Oqe,Pqe,Bqe,gme,Fqe,cS,uS,Fpe,aB,K1,$qe,yme,vme,zqe,Gqe,Vqe,Uqe,Hqe,Wqe,Us,Zu,qqe,wS,TS,Yqe,$p,Pb,TP,Ef,Xb,Xqe,Q6,gs,xme,PP,Vp,bme,sB,jqe,BP,Kqe,Qqe,$pe,q1,zpe,Y1,Zqe,FP,Jqe,eYe,tYe,rYe,wme,nYe,iYe,aYe,sYe,oYe,lYe,cYe,Gpe,uYe,hYe,Tme,Vpe,Upe,fYe,dYe,_b,Q1,pYe,oB,kS,kP,kme,Eme,mYe,gYe,yYe,Hpe,Wpe,vYe,xYe,bYe,wYe,TYe,qpe,kYe,EYe,SYe,CYe,Ype,Z6,AYe,_Ye,Xpe,DYe,LYe,RYe,NYe,MYe,IYe,jpe,OYe,Kpe,PYe,BYe,FYe,J6,$Ye,eS,zYe,Sme,Cme,Ame,_me,Ju,Qpe,Dme,Zpe,Jpe,GYe,ey,$P,Up,VYe,UYe,OS,HYe,WYe,YYe,XYe,jYe,KYe,QYe,JYe,eXe,EP,e0e,rXe,nXe,iXe,sXe,oXe,lXe,cXe,uXe,hXe,fXe,dXe,mXe,yXe,lB,xXe,jb,wXe,kXe,EXe,SXe,CXe,_Xe,DXe,LXe,NXe,MXe,OXe,t0e,BXe,Lme,PS,zXe,GXe,UXe,WXe,YXe,jXe,KXe,QXe,ZXe,eje,rje,BS,aje,oje,cje,hje,Rme,fje,dje,pje,gje,yje,vje,xje,Nme,Mme,wje,r0e,n0e,Tje,Ome,Pme,Sje,uB,_je,Lje,Rje,i0e,Mje,Ije,Oje,Bje,Fje,$je,Gje,Uje,Wje,Yje,jje,Kje,Qje,cn,Zje,hS,Vr,mn,$t,zP,Jje,eKe,tKe,B1,Tf,GP,rKe,nKe,iKe,aKe,sKe,Bme,oKe,lKe,hB,cKe,fi,zn,uKe,hKe,fKe,Lf,Rf,Sf,tl,Z1,Kb,zme,pKe,FS,Vl,Gme,Vme,a0e,mKe,X1,Of,el,zl,Pp,Db,tS,CP,gKe,yKe,Ume,Hme,s0e,Qb,o0e,l0e,vKe,Bb,a4,Wme,xKe,bKe,wKe,TKe,kKe,EKe,SKe,CKe,AKe,c0e,_Ke,DKe,LKe,qme,Yme,RKe,Xme,u0e,NKe,Nf,jme,h0e,MKe,IKe,nS,Kme,Qme,Qr,OKe,Zme,ES,PKe,BKe,fS,Ta,iy,FKe,$Ke,zKe,GKe,Cf,$a,d0e,p0e,m0e,ka,Mn,VKe,HKe,Nn,dS,YKe,XKe,iS,ege,VP,pS,jKe,KKe,UP,mS,Ga,$b,QKe,s4,pB,jc,VS,mB,wa,US,Fa,za,ZKe,JKe,Hp,Zb,Jb,SS,eQe,tQe,z1,T0e,rQe,nQe,_P,iQe,aQe,sQe,oQe,lQe,cQe,ige,uQe,hQe,fQe,k0e,dQe,pQe,CS,mQe,gQe,yQe,vQe,xQe,bQe,E0e,wQe,TQe,kQe,EQe,SQe,S0e,C0e,yB,qp,AS,HP,WP,qc,Jo,A0e,_0e,Fp,gS,Ku,Mp,Bp,Wc,G1,aS,cge,uge,qP,YP,D0e,L0e,CQe,AQe,Va,o4,xB,Kc,dge,pge,DQe,mge,R0e,N0e,WS,qS,gge,yge,sy,eh,l4,M0e,LQe,vge,oy,DP,xge,RQe,I0e,sS,yS,XP,bge,NQe,MQe,IQe,OQe,PQe,BQe,FQe,$Qe,zQe,GQe,VQe,UQe,HQe,H1,WQe,Fb,qi,qQe,zb,_S,YQe,XQe,jQe,KQe,QQe,ZQe,JQe,eZe,O0e,tZe,P0e,rZe,wge,Ea,B0e,nZe,Tge,F0e,Qc,lZe,cZe,uZe,hZe,fZe,LP,th,kge,bB,Yp,ly,Ege,ys,dZe,Nb,G0e,Vb,Mb,kZe,EZe,CZe,MP,V0e,U0e,IP,AZe,_Ze,Dge,Pf,W0e,q0e,jP,KP,Nge,Ip,c4,Ige,zZe,Er,GZe,VZe,UZe,Pge,Bge,QP,zge,Wp,qZe,rl,kB=N(()=>{"use strict";o(Wi,"_typeof");o(Mf,"_classCallCheck");o(Dpe,"_defineProperties");o(If,"_createClass");o(X0e,"_defineProperty$1");o(_i,"_slicedToArray");o(j0e,"_toConsumableArray");o(UHe,"_arrayWithoutHoles");o(HHe,"_arrayWithHoles");o(WHe,"_iterableToArray");o(qHe,"_iterableToArrayLimit");o(ZP,"_unsupportedIterableToArray");o(OP,"_arrayLikeToArray");o(YHe,"_nonIterableSpread");o(XHe,"_nonIterableRest");o(mo,"_createForOfIteratorHelper");Ui=typeof window>"u"?null:window,Lpe=Ui?Ui.navigator:null;Ui&&Ui.document;jHe=Wi(""),K0e=Wi({}),KHe=Wi(function(){}),QHe=typeof HTMLElement>"u"?"undefined":Wi(HTMLElement),e4=o(function(e){return e&&e.instanceString&&si(e.instanceString)?e.instanceString():null},"instanceStr"),Zt=o(function(e){return e!=null&&Wi(e)==jHe},"string"),si=o(function(e){return e!=null&&Wi(e)===KHe},"fn"),En=o(function(e){return!go(e)&&(Array.isArray?Array.isArray(e):e!=null&&e instanceof Array)},"array"),Ur=o(function(e){return e!=null&&Wi(e)===K0e&&!En(e)&&e.constructor===Object},"plainObject"),ZHe=o(function(e){return e!=null&&Wi(e)===K0e},"object"),Ct=o(function(e){return e!=null&&Wi(e)===Wi(1)&&!isNaN(e)},"number"),JHe=o(function(e){return Ct(e)&&Math.floor(e)===e},"integer"),vS=o(function(e){if(QHe!=="undefined")return e!=null&&e instanceof HTMLElement},"htmlElement"),go=o(function(e){return t4(e)||Q0e(e)},"elementOrCollection"),t4=o(function(e){return e4(e)==="collection"&&e._private.single},"element"),Q0e=o(function(e){return e4(e)==="collection"&&!e._private.single},"collection"),JP=o(function(e){return e4(e)==="core"},"core"),Z0e=o(function(e){return e4(e)==="stylesheet"},"stylesheet"),eWe=o(function(e){return e4(e)==="event"},"event"),Af=o(function(e){return e==null?!0:!!(e===""||e.match(/^\s+$/))},"emptyString"),tWe=o(function(e){return typeof HTMLElement>"u"?!1:e instanceof HTMLElement},"domElement"),rWe=o(function(e){return Ur(e)&&Ct(e.x1)&&Ct(e.x2)&&Ct(e.y1)&&Ct(e.y2)},"boundingBox"),nWe=o(function(e){return ZHe(e)&&si(e.then)},"promise"),iWe=o(function(){return Lpe&&Lpe.userAgent.match(/msie|trident|edge/i)},"ms"),Ub=o(function(e,r){r||(r=o(function(){if(arguments.length===1)return arguments[0];if(arguments.length===0)return"undefined";for(var a=[],s=0;s<arguments.length;s++)a.push(arguments[s]);return a.join("$")},"keyFn"));var n=o(function i(){var a=this,s=arguments,l,u=r.apply(a,s),h=i.cache;return(l=h[u])||(l=h[u]=e.apply(a,s)),l},"memoizedFn");return n.cache={},n},"memoize"),eB=Ub(function(t){return t.replace(/([A-Z])/g,function(e){return"-"+e.toLowerCase()})}),LS=Ub(function(t){return t.replace(/(-\w)/g,function(e){return e[1].toUpperCase()})}),J0e=Ub(function(t,e){return t+e[0].toUpperCase()+e.substring(1)},function(t,e){return t+"$"+e}),Rpe=o(function(e){return Af(e)?e:e.charAt(0).toUpperCase()+e.substring(1)},"capitalize"),Hi="(?:[-+]?(?:(?:\\d+|\\d*\\.\\d+)(?:[Ee][+-]?\\d+)?))",aWe="rgb[a]?\\(("+Hi+"[%]?)\\s*,\\s*("+Hi+"[%]?)\\s*,\\s*("+Hi+"[%]?)(?:\\s*,\\s*("+Hi+"))?\\)",sWe="rgb[a]?\\((?:"+Hi+"[%]?)\\s*,\\s*(?:"+Hi+"[%]?)\\s*,\\s*(?:"+Hi+"[%]?)(?:\\s*,\\s*(?:"+Hi+"))?\\)",oWe="hsl[a]?\\(("+Hi+")\\s*,\\s*("+Hi+"[%])\\s*,\\s*("+Hi+"[%])(?:\\s*,\\s*("+Hi+"))?\\)",lWe="hsl[a]?\\((?:"+Hi+")\\s*,\\s*(?:"+Hi+"[%])\\s*,\\s*(?:"+Hi+"[%])(?:\\s*,\\s*(?:"+Hi+"))?\\)",cWe="\\#[0-9a-fA-F]{3}",uWe="\\#[0-9a-fA-F]{6}",eme=o(function(e,r){return e<r?-1:e>r?1:0},"ascending"),hWe=o(function(e,r){return-1*eme(e,r)},"descending"),rr=Object.assign!=null?Object.assign.bind(Object):function(t){for(var e=arguments,r=1;r<e.length;r++){var n=e[r];if(n!=null)for(var i=Object.keys(n),a=0;a<i.length;a++){var s=i[a];t[s]=n[s]}}return t},fWe=o(function(e){if(!(!(e.length===4||e.length===7)||e[0]!=="#")){var r=e.length===4,n,i,a,s=16;return r?(n=parseInt(e[1]+e[1],s),i=parseInt(e[2]+e[2],s),a=parseInt(e[3]+e[3],s)):(n=parseInt(e[1]+e[2],s),i=parseInt(e[3]+e[4],s),a=parseInt(e[5]+e[6],s)),[n,i,a]}},"hex2tuple"),dWe=o(function(e){var r,n,i,a,s,l,u,h;function f(g,y,v){return v<0&&(v+=1),v>1&&(v-=1),v<1/6?g+(y-g)*6*v:v<1/2?y:v<2/3?g+(y-g)*(2/3-v)*6:g}o(f,"hue2rgb");var d=new RegExp("^"+oWe+"$").exec(e);if(d){if(n=parseInt(d[1]),n<0?n=(360- -1*n%360)%360:n>360&&(n=n%360),n/=360,i=parseFloat(d[2]),i<0||i>100||(i=i/100,a=parseFloat(d[3]),a<0||a>100)||(a=a/100,s=d[4],s!==void 0&&(s=parseFloat(s),s<0||s>1)))return;if(i===0)l=u=h=Math.round(a*255);else{var p=a<.5?a*(1+i):a+i-a*i,m=2*a-p;l=Math.round(255*f(m,p,n+1/3)),u=Math.round(255*f(m,p,n)),h=Math.round(255*f(m,p,n-1/3))}r=[l,u,h,s]}return r},"hsl2tuple"),pWe=o(function(e){var r,n=new RegExp("^"+aWe+"$").exec(e);if(n){r=[];for(var i=[],a=1;a<=3;a++){var s=n[a];if(s[s.length-1]==="%"&&(i[a]=!0),s=parseFloat(s),i[a]&&(s=s/100*255),s<0||s>255)return;r.push(Math.floor(s))}var l=i[1]||i[2]||i[3],u=i[1]&&i[2]&&i[3];if(l&&!u)return;var h=n[4];if(h!==void 0){if(h=parseFloat(h),h<0||h>1)return;r.push(h)}}return r},"rgb2tuple"),mWe=o(function(e){return gWe[e.toLowerCase()]},"colorname2tuple"),tme=o(function(e){return(En(e)?e:null)||mWe(e)||fWe(e)||pWe(e)||dWe(e)},"color2tuple"),gWe={transparent:[0,0,0,0],aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],grey:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},rme=o(function(e){for(var r=e.map,n=e.keys,i=n.length,a=0;a<i;a++){var s=n[a];if(Ur(s))throw Error("Tried to set map with object key");a<n.length-1?(r[s]==null&&(r[s]={}),r=r[s]):r[s]=e.value}},"setMap"),nme=o(function(e){for(var r=e.map,n=e.keys,i=n.length,a=0;a<i;a++){var s=n[a];if(Ur(s))throw Error("Tried to get map with object key");if(r=r[s],r==null)return r}return r},"getMap");o(yWe,"isObject");zp=yWe,Ib=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};o(vWe,"createCommonjsModule");xWe=typeof Ib=="object"&&Ib&&Ib.Object===Object&&Ib,bWe=xWe,wWe=typeof self=="object"&&self&&self.Object===Object&&self,TWe=bWe||wWe||Function("return this")(),RS=TWe,kWe=o(function(){return RS.Date.now()},"now"),xP=kWe,EWe=/\s/;o(SWe,"trimmedEndIndex");CWe=SWe,AWe=/^\s+/;o(_We,"baseTrim");DWe=_We,LWe=RS.Symbol,j1=LWe,ime=Object.prototype,RWe=ime.hasOwnProperty,NWe=ime.toString,Ab=j1?j1.toStringTag:void 0;o(MWe,"getRawTag");IWe=MWe,OWe=Object.prototype,PWe=OWe.toString;o(BWe,"objectToString");FWe=BWe,$We="[object Null]",zWe="[object Undefined]",Npe=j1?j1.toStringTag:void 0;o(GWe,"baseGetTag");ame=GWe;o(VWe,"isObjectLike");UWe=VWe,HWe="[object Symbol]";o(WWe,"isSymbol");r4=WWe,Mpe=NaN,qWe=/^[-+]0x[0-9a-f]+$/i,YWe=/^0b[01]+$/i,XWe=/^0o[0-7]+$/i,jWe=parseInt;o(KWe,"toNumber");Ipe=KWe,QWe="Expected a function",ZWe=Math.max,JWe=Math.min;o(eqe,"debounce");n4=eqe,bP=Ui?Ui.performance:null,sme=bP&&bP.now?function(){return bP.now()}:function(){return Date.now()},tqe=function(){if(Ui){if(Ui.requestAnimationFrame)return function(t){Ui.requestAnimationFrame(t)};if(Ui.mozRequestAnimationFrame)return function(t){Ui.mozRequestAnimationFrame(t)};if(Ui.webkitRequestAnimationFrame)return function(t){Ui.webkitRequestAnimationFrame(t)};if(Ui.msRequestAnimationFrame)return function(t){Ui.msRequestAnimationFrame(t)}}return function(t){t&&setTimeout(function(){t(sme())},1e3/60)}}(),xS=o(function(e){return tqe(e)},"requestAnimationFrame"),Qu=sme,V1=9261,ome=65599,Ob=5381,lme=o(function(e){for(var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:V1,n=r,i;i=e.next(),!i.done;)n=n*ome+i.value|0;return n},"hashIterableInts"),Hb=o(function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:V1;return r*ome+e|0},"hashInt"),Wb=o(function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Ob;return(r<<5)+r+e|0},"hashIntAlt"),rqe=o(function(e,r){return e*2097152+r},"combineHashes"),wf=o(function(e){return e[0]*2097152+e[1]},"combineHashesArray"),j6=o(function(e,r){return[Hb(e[0],r[0]),Wb(e[1],r[1])]},"hashArrays"),nqe=o(function(e,r){var n={value:0,done:!1},i=0,a=e.length,s={next:o(function(){return i<a?n.value=e[i++]:n.done=!0,n},"next")};return lme(s,r)},"hashIntsArray"),_f=o(function(e,r){var n={value:0,done:!1},i=0,a=e.length,s={next:o(function(){return i<a?n.value=e.charCodeAt(i++):n.done=!0,n},"next")};return lme(s,r)},"hashString"),cme=o(function(){return iqe(arguments)},"hashStrings"),iqe=o(function(e){for(var r,n=0;n<e.length;n++){var i=e[n];n===0?r=_f(i):r=_f(i,r)}return r},"hashStringsArray"),Ope=!0,aqe=console.warn!=null,sqe=console.trace!=null,tB=Number.MAX_SAFE_INTEGER||9007199254740991,ume=o(function(){return!0},"trueify"),bS=o(function(){return!1},"falsify"),Ppe=o(function(){return 0},"zeroify"),rB=o(function(){},"noop"),ai=o(function(e){throw new Error(e)},"error"),hme=o(function(e){if(e!==void 0)Ope=!!e;else return Ope},"warnings"),un=o(function(e){hme()&&(aqe?console.warn(e):(console.log(e),sqe&&console.trace()))},"warn"),oqe=o(function(e){return rr({},e)},"clone"),Yc=o(function(e){return e==null?e:En(e)?e.slice():Ur(e)?oqe(e):e},"copy"),lqe=o(function(e){return e.slice()},"copyArray"),fme=o(function(e,r){for(r=e="";e++<36;r+=e*51&52?(e^15?8^Math.random()*(e^20?16:4):4).toString(16):"-");return r},"uuid"),cqe={},dme=o(function(){return cqe},"staticEmptyObject"),la=o(function(e){var r=Object.keys(e);return function(n){for(var i={},a=0;a<r.length;a++){var s=r[a],l=n?.[s];i[s]=l===void 0?e[s]:l}return i}},"defaults"),Df=o(function(e,r,n){for(var i=e.length-1;i>=0&&!(e[i]===r&&(e.splice(i,1),n));i--);},"removeFromArray"),nB=o(function(e){e.splice(0,e.length)},"clearArray"),uqe=o(function(e,r){for(var n=0;n<r.length;n++){var i=r[n];e.push(i)}},"push"),Gl=o(function(e,r,n){return n&&(r=J0e(n,r)),e[r]},"getPrefixedProperty"),kf=o(function(e,r,n,i){n&&(r=J0e(n,r)),e[r]=i},"setPrefixedProperty"),hqe=function(){function t(){Mf(this,t),this._obj={}}return o(t,"ObjectMap"),If(t,[{key:"set",value:o(function(r,n){return this._obj[r]=n,this},"set")},{key:"delete",value:o(function(r){return this._obj[r]=void 0,this},"_delete")},{key:"clear",value:o(function(){this._obj={}},"clear")},{key:"has",value:o(function(r){return this._obj[r]!==void 0},"has")},{key:"get",value:o(function(r){return this._obj[r]},"get")}]),t}(),Xc=typeof Map<"u"?Map:hqe,fqe="undefined",dqe=function(){function t(e){if(Mf(this,t),this._obj=Object.create(null),this.size=0,e!=null){var r;e.instanceString!=null&&e.instanceString()===this.instanceString()?r=e.toArray():r=e;for(var n=0;n<r.length;n++)this.add(r[n])}}return o(t,"ObjectSet"),If(t,[{key:"instanceString",value:o(function(){return"set"},"instanceString")},{key:"add",value:o(function(r){var n=this._obj;n[r]!==1&&(n[r]=1,this.size++)},"add")},{key:"delete",value:o(function(r){var n=this._obj;n[r]===1&&(n[r]=0,this.size--)},"_delete")},{key:"clear",value:o(function(){this._obj=Object.create(null)},"clear")},{key:"has",value:o(function(r){return this._obj[r]===1},"has")},{key:"toArray",value:o(function(){var r=this;return Object.keys(this._obj).filter(function(n){return r.has(n)})},"toArray")},{key:"forEach",value:o(function(r,n){return this.toArray().forEach(r,n)},"forEach")}]),t}(),J1=(typeof Set>"u"?"undefined":Wi(Set))!==fqe?Set:dqe,NS=o(function(e,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(e===void 0||r===void 0||!JP(e)){ai("An element must have a core reference and parameters set");return}var i=r.group;if(i==null&&(r.data&&r.data.source!=null&&r.data.target!=null?i="edges":i="nodes"),i!=="nodes"&&i!=="edges"){ai("An element must be of type `nodes` or `edges`; you specified `"+i+"`");return}this.length=1,this[0]=this;var a=this._private={cy:e,single:!0,data:r.data||{},position:r.position||{x:0,y:0},autoWidth:void 0,autoHeight:void 0,autoPadding:void 0,compoundBoundsClean:!1,listeners:[],group:i,style:{},rstyle:{},styleCxts:[],styleKeys:{},removed:!0,selected:!!r.selected,selectable:r.selectable===void 0?!0:!!r.selectable,locked:!!r.locked,grabbed:!1,grabbable:r.grabbable===void 0?!0:!!r.grabbable,pannable:r.pannable===void 0?i==="edges":!!r.pannable,active:!1,classes:new J1,animation:{current:[],queue:[]},rscratch:{},scratch:r.scratch||{},edges:[],children:[],parent:r.parent&&r.parent.isNode()?r.parent:null,traversalCache:{},backgrounding:!1,bbCache:null,bbCacheShift:{x:0,y:0},bodyBounds:null,overlayBounds:null,labelBounds:{all:null,source:null,target:null,main:null},arrowBounds:{source:null,target:null,"mid-source":null,"mid-target":null}};if(a.position.x==null&&(a.position.x=0),a.position.y==null&&(a.position.y=0),r.renderedPosition){var s=r.renderedPosition,l=e.pan(),u=e.zoom();a.position={x:(s.x-l.x)/u,y:(s.y-l.y)/u}}var h=[];En(r.classes)?h=r.classes:Zt(r.classes)&&(h=r.classes.split(/\s+/));for(var f=0,d=h.length;f<d;f++){var p=h[f];!p||p===""||a.classes.add(p)}this.createEmitter();var m=r.style||r.css;m&&(un("Setting a `style` bypass at element creation should be done only when absolutely necessary.  Try to use the stylesheet instead."),this.style(m)),(n===void 0||n)&&this.restore()},"Element"),Bpe=o(function(e){return e={bfs:e.bfs||!e.dfs,dfs:e.dfs||!e.bfs},o(function(n,i,a){var s;Ur(n)&&!go(n)&&(s=n,n=s.roots||s.root,i=s.visit,a=s.directed),a=arguments.length===2&&!si(i)?i:a,i=si(i)?i:function(){};for(var l=this._private.cy,u=n=Zt(n)?this.filter(n):n,h=[],f=[],d={},p={},m={},g=0,y,v=this.byGroup(),x=v.nodes,b=v.edges,w=0;w<u.length;w++){var C=u[w],T=C.id();C.isNode()&&(h.unshift(C),e.bfs&&(m[T]=!0,f.push(C)),p[T]=0)}for(var E=o(function(){var L=e.bfs?h.shift():h.pop(),R=L.id();if(e.dfs){if(m[R])return"continue";m[R]=!0,f.push(L)}var O=p[R],M=d[R],B=M!=null?M.source():null,F=M!=null?M.target():null,P=M==null?void 0:L.same(B)?F[0]:B[0],z=void 0;if(z=i(L,M,P,g++,O),z===!0)return y=L,"break";if(z===!1)return"break";for(var $=L.connectedEdges().filter(function(ne){return(!a||ne.source().same(L))&&b.has(ne)}),H=0;H<$.length;H++){var Q=$[H],j=Q.connectedNodes().filter(function(ne){return!ne.same(L)&&x.has(ne)}),ie=j.id();j.length!==0&&!m[ie]&&(j=j[0],h.push(j),e.bfs&&(m[ie]=!0,f.push(j)),d[ie]=Q,p[ie]=p[R]+1)}},"_loop");h.length!==0;){var A=E();if(A!=="continue"&&A==="break")break}for(var S=l.collection(),_=0;_<f.length;_++){var I=f[_],D=d[I.id()];D!=null&&S.push(D),S.push(I)}return{path:l.collection(S),found:l.collection(y)}},"searchFn")},"defineSearch"),qb={breadthFirstSearch:Bpe({bfs:!0}),depthFirstSearch:Bpe({dfs:!0})};qb.bfs=qb.breadthFirstSearch;qb.dfs=qb.depthFirstSearch;pqe=vWe(function(t,e){(function(){var r,n,i,a,s,l,u,h,f,d,p,m,g,y,v;i=Math.floor,d=Math.min,n=o(function(x,b){return x<b?-1:x>b?1:0},"defaultCmp"),f=o(function(x,b,w,C,T){var E;if(w==null&&(w=0),T==null&&(T=n),w<0)throw new Error("lo must be non-negative");for(C==null&&(C=x.length);w<C;)E=i((w+C)/2),T(b,x[E])<0?C=E:w=E+1;return[].splice.apply(x,[w,w-w].concat(b)),b},"insort"),l=o(function(x,b,w){return w==null&&(w=n),x.push(b),y(x,0,x.length-1,w)},"heappush"),s=o(function(x,b){var w,C;return b==null&&(b=n),w=x.pop(),x.length?(C=x[0],x[0]=w,v(x,0,b)):C=w,C},"heappop"),h=o(function(x,b,w){var C;return w==null&&(w=n),C=x[0],x[0]=b,v(x,0,w),C},"heapreplace"),u=o(function(x,b,w){var C;return w==null&&(w=n),x.length&&w(x[0],b)<0&&(C=[x[0],b],b=C[0],x[0]=C[1],v(x,0,w)),b},"heappushpop"),a=o(function(x,b){var w,C,T,E,A,S;for(b==null&&(b=n),E=function(){S=[];for(var _=0,I=i(x.length/2);0<=I?_<I:_>I;0<=I?_++:_--)S.push(_);return S}.apply(this).reverse(),A=[],C=0,T=E.length;C<T;C++)w=E[C],A.push(v(x,w,b));return A},"heapify"),g=o(function(x,b,w){var C;if(w==null&&(w=n),C=x.indexOf(b),C!==-1)return y(x,0,C,w),v(x,C,w)},"updateItem"),p=o(function(x,b,w){var C,T,E,A,S;if(w==null&&(w=n),T=x.slice(0,b),!T.length)return T;for(a(T,w),S=x.slice(b),E=0,A=S.length;E<A;E++)C=S[E],u(T,C,w);return T.sort(w).reverse()},"nlargest"),m=o(function(x,b,w){var C,T,E,A,S,_,I,D,k;if(w==null&&(w=n),b*10<=x.length){if(E=x.slice(0,b).sort(w),!E.length)return E;for(T=E[E.length-1],I=x.slice(b),A=0,_=I.length;A<_;A++)C=I[A],w(C,T)<0&&(f(E,C,0,null,w),E.pop(),T=E[E.length-1]);return E}for(a(x,w),k=[],S=0,D=d(b,x.length);0<=D?S<D:S>D;0<=D?++S:--S)k.push(s(x,w));return k},"nsmallest"),y=o(function(x,b,w,C){var T,E,A;for(C==null&&(C=n),T=x[w];w>b;){if(A=w-1>>1,E=x[A],C(T,E)<0){x[w]=E,w=A;continue}break}return x[w]=T},"_siftdown"),v=o(function(x,b,w){var C,T,E,A,S;for(w==null&&(w=n),T=x.length,S=b,E=x[b],C=2*b+1;C<T;)A=C+1,A<T&&!(w(x[C],x[A])<0)&&(C=A),x[b]=x[C],b=C,C=2*b+1;return x[b]=E,y(x,S,b,w)},"_siftup"),r=function(){x.push=l,x.pop=s,x.replace=h,x.pushpop=u,x.heapify=a,x.updateItem=g,x.nlargest=p,x.nsmallest=m;function x(b){this.cmp=b??n,this.nodes=[]}return o(x,"Heap"),x.prototype.push=function(b){return l(this.nodes,b,this.cmp)},x.prototype.pop=function(){return s(this.nodes,this.cmp)},x.prototype.peek=function(){return this.nodes[0]},x.prototype.contains=function(b){return this.nodes.indexOf(b)!==-1},x.prototype.replace=function(b){return h(this.nodes,b,this.cmp)},x.prototype.pushpop=function(b){return u(this.nodes,b,this.cmp)},x.prototype.heapify=function(){return a(this.nodes,this.cmp)},x.prototype.updateItem=function(b){return g(this.nodes,b,this.cmp)},x.prototype.clear=function(){return this.nodes=[]},x.prototype.empty=function(){return this.nodes.length===0},x.prototype.size=function(){return this.nodes.length},x.prototype.clone=function(){var b;return b=new x,b.nodes=this.nodes.slice(0),b},x.prototype.toArray=function(){return this.nodes.slice(0)},x.prototype.insert=x.prototype.push,x.prototype.top=x.prototype.peek,x.prototype.front=x.prototype.peek,x.prototype.has=x.prototype.contains,x.prototype.copy=x.prototype.clone,x}(),function(x,b){return t.exports=b()}(this,function(){return r})}).call(Ib)}),i4=pqe,mqe=la({root:null,weight:o(function(e){return 1},"weight"),directed:!1}),gqe={dijkstra:o(function(e){if(!Ur(e)){var r=arguments;e={root:r[0],weight:r[1],directed:r[2]}}var n=mqe(e),i=n.root,a=n.weight,s=n.directed,l=this,u=a,h=Zt(i)?this.filter(i)[0]:i[0],f={},d={},p={},m=this.byGroup(),g=m.nodes,y=m.edges;y.unmergeBy(function(O){return O.isLoop()});for(var v=o(function(M){return f[M.id()]},"getDist"),x=o(function(M,B){f[M.id()]=B,b.updateItem(M)},"setDist"),b=new i4(function(O,M){return v(O)-v(M)}),w=0;w<g.length;w++){var C=g[w];f[C.id()]=C.same(h)?0:1/0,b.push(C)}for(var T=o(function(M,B){for(var F=(s?M.edgesTo(B):M.edgesWith(B)).intersect(y),P=1/0,z,$=0;$<F.length;$++){var H=F[$],Q=u(H);(Q<P||!z)&&(P=Q,z=H)}return{edge:z,dist:P}},"distBetween");b.size()>0;){var E=b.pop(),A=v(E),S=E.id();if(p[S]=A,A!==1/0)for(var _=E.neighborhood().intersect(g),I=0;I<_.length;I++){var D=_[I],k=D.id(),L=T(E,D),R=A+L.dist;R<v(D)&&(x(D,R),d[k]={node:E,edge:L.edge})}}return{distanceTo:o(function(M){var B=Zt(M)?g.filter(M)[0]:M[0];return p[B.id()]},"distanceTo"),pathTo:o(function(M){var B=Zt(M)?g.filter(M)[0]:M[0],F=[],P=B,z=P.id();if(B.length>0)for(F.unshift(B);d[z];){var $=d[z];F.unshift($.edge),F.unshift($.node),P=$.node,z=P.id()}return l.spawn(F)},"pathTo")}},"dijkstra")},yqe={kruskal:o(function(e){e=e||function(w){return 1};for(var r=this.byGroup(),n=r.nodes,i=r.edges,a=n.length,s=new Array(a),l=n,u=o(function(C){for(var T=0;T<s.length;T++){var E=s[T];if(E.has(C))return T}},"findSetIndex"),h=0;h<a;h++)s[h]=this.spawn(n[h]);for(var f=i.sort(function(w,C){return e(w)-e(C)}),d=0;d<f.length;d++){var p=f[d],m=p.source()[0],g=p.target()[0],y=u(m),v=u(g),x=s[y],b=s[v];y!==v&&(l.merge(p),x.merge(b),s.splice(v,1))}return l},"kruskal")},vqe=la({root:null,goal:null,weight:o(function(e){return 1},"weight"),heuristic:o(function(e){return 0},"heuristic"),directed:!1}),xqe={aStar:o(function(e){var r=this.cy(),n=vqe(e),i=n.root,a=n.goal,s=n.heuristic,l=n.directed,u=n.weight;i=r.collection(i)[0],a=r.collection(a)[0];var h=i.id(),f=a.id(),d={},p={},m={},g=new i4(function(z,$){return p[z.id()]-p[$.id()]}),y=new J1,v={},x={},b=o(function($,H){g.push($),y.add(H)},"addToOpenSet"),w,C,T=o(function(){w=g.pop(),C=w.id(),y.delete(C)},"popFromOpenSet"),E=o(function($){return y.has($)},"isInOpenSet");b(i,h),d[h]=0,p[h]=s(i);for(var A=0;g.size()>0;){if(T(),A++,C===f){for(var S=[],_=a,I=f,D=x[I];S.unshift(_),D!=null&&S.unshift(D),_=v[I],_!=null;)I=_.id(),D=x[I];return{found:!0,distance:d[C],path:this.spawn(S),steps:A}}m[C]=!0;for(var k=w._private.edges,L=0;L<k.length;L++){var R=k[L];if(this.hasElementWithId(R.id())&&!(l&&R.data("source")!==C)){var O=R.source(),M=R.target(),B=O.id()!==C?O:M,F=B.id();if(this.hasElementWithId(F)&&!m[F]){var P=d[C]+u(R);if(!E(F)){d[F]=P,p[F]=P+s(B),b(B,F),v[F]=w,x[F]=R;continue}P<d[F]&&(d[F]=P,p[F]=P+s(B),v[F]=w,x[F]=R)}}}}return{found:!1,distance:void 0,path:void 0,steps:A}},"aStar")},bqe=la({weight:o(function(e){return 1},"weight"),directed:!1}),wqe={floydWarshall:o(function(e){for(var r=this.cy(),n=bqe(e),i=n.weight,a=n.directed,s=i,l=this.byGroup(),u=l.nodes,h=l.edges,f=u.length,d=f*f,p=o(function(Q){return u.indexOf(Q)},"indexOf"),m=o(function(Q){return u[Q]},"atIndex"),g=new Array(d),y=0;y<d;y++){var v=y%f,x=(y-v)/f;x===v?g[y]=0:g[y]=1/0}for(var b=new Array(d),w=new Array(d),C=0;C<h.length;C++){var T=h[C],E=T.source()[0],A=T.target()[0];if(E!==A){var S=p(E),_=p(A),I=S*f+_,D=s(T);if(g[I]>D&&(g[I]=D,b[I]=_,w[I]=T),!a){var k=_*f+S;!a&&g[k]>D&&(g[k]=D,b[k]=S,w[k]=T)}}}for(var L=0;L<f;L++)for(var R=0;R<f;R++)for(var O=R*f+L,M=0;M<f;M++){var B=R*f+M,F=L*f+M;g[O]+g[F]<g[B]&&(g[B]=g[O]+g[F],b[B]=b[O])}var P=o(function(Q){return(Zt(Q)?r.filter(Q):Q)[0]},"getArgEle"),z=o(function(Q){return p(P(Q))},"indexOfArgEle"),$={distance:o(function(Q,j){var ie=z(Q),ne=z(j);return g[ie*f+ne]},"distance"),path:o(function(Q,j){var ie=z(Q),ne=z(j),le=m(ie);if(ie===ne)return le.collection();if(b[ie*f+ne]==null)return r.collection();var he=r.collection(),K=ie,X;for(he.merge(le);ie!==ne;)K=ie,ie=b[ie*f+ne],X=w[K*f+ie],he.merge(X),he.merge(m(ie));return he},"path")};return $},"floydWarshall")},Tqe=la({weight:o(function(e){return 1},"weight"),directed:!1,root:null}),kqe={bellmanFord:o(function(e){var r=this,n=Tqe(e),i=n.weight,a=n.directed,s=n.root,l=i,u=this,h=this.cy(),f=this.byGroup(),d=f.edges,p=f.nodes,m=p.length,g=new Xc,y=!1,v=[];s=h.collection(s)[0],d.unmergeBy(function(ce){return ce.isLoop()});for(var x=d.length,b=o(function(ae){var Oe=g.get(ae.id());return Oe||(Oe={},g.set(ae.id(),Oe)),Oe},"getInfo"),w=o(function(ae){return(Zt(ae)?h.$(ae):ae)[0]},"getNodeFromTo"),C=o(function(ae){return b(w(ae)).dist},"distanceTo"),T=o(function(ae){for(var Oe=arguments.length>1&&arguments[1]!==void 0?arguments[1]:s,ge=w(ae),ze=[],He=ge;;){if(He==null)return r.spawn();var $e=b(He),Re=$e.edge,Ie=$e.pred;if(ze.unshift(He[0]),He.same(Oe)&&ze.length>0)break;Re!=null&&ze.unshift(Re),He=Ie}return u.spawn(ze)},"pathTo"),E=0;E<m;E++){var A=p[E],S=b(A);A.same(s)?S.dist=0:S.dist=1/0,S.pred=null,S.edge=null}for(var _=!1,I=o(function(ae,Oe,ge,ze,He,$e){var Re=ze.dist+$e;Re<He.dist&&!ge.same(ze.edge)&&(He.dist=Re,He.pred=ae,He.edge=ge,_=!0)},"checkForEdgeReplacement"),D=1;D<m;D++){_=!1;for(var k=0;k<x;k++){var L=d[k],R=L.source(),O=L.target(),M=l(L),B=b(R),F=b(O);I(R,O,L,B,F,M),a||I(O,R,L,F,B,M)}if(!_)break}if(_)for(var P=[],z=0;z<x;z++){var $=d[z],H=$.source(),Q=$.target(),j=l($),ie=b(H).dist,ne=b(Q).dist;if(ie+j<ne||!a&&ne+j<ie)if(y||(un("Graph contains a negative weight cycle for Bellman-Ford"),y=!0),e.findNegativeWeightCycles!==!1){var le=[];ie+j<ne&&le.push(H),!a&&ne+j<ie&&le.push(Q);for(var he=le.length,K=0;K<he;K++){var X=le[K],te=[X];te.push(b(X).edge);for(var J=b(X).pred;te.indexOf(J)===-1;)te.push(J),te.push(b(J).edge),J=b(J).pred;te=te.slice(te.indexOf(J));for(var se=te[0].id(),ue=0,Z=2;Z<te.length;Z+=2)te[Z].id()<se&&(se=te[Z].id(),ue=Z);te=te.slice(ue).concat(te.slice(0,ue)),te.push(te[0]);var Se=te.map(function(ce){return ce.id()}).join(",");P.indexOf(Se)===-1&&(v.push(u.spawn(te)),P.push(Se))}}else break}return{distanceTo:C,pathTo:T,hasNegativeWeightCycle:y,negativeWeightCycles:v}},"bellmanFord")},Eqe=Math.sqrt(2),Sqe=o(function(e,r,n){n.length===0&&ai("Karger-Stein must be run on a connected (sub)graph");for(var i=n[e],a=i[1],s=i[2],l=r[a],u=r[s],h=n,f=h.length-1;f>=0;f--){var d=h[f],p=d[1],m=d[2];(r[p]===l&&r[m]===u||r[p]===u&&r[m]===l)&&h.splice(f,1)}for(var g=0;g<h.length;g++){var y=h[g];y[1]===u?(h[g]=y.slice(),h[g][1]=l):y[2]===u&&(h[g]=y.slice(),h[g][2]=l)}for(var v=0;v<r.length;v++)r[v]===u&&(r[v]=l);return h},"collapse"),wP=o(function(e,r,n,i){for(;n>i;){var a=Math.floor(Math.random()*r.length);r=Sqe(a,e,r),n--}return r},"contractUntil"),Cqe={kargerStein:o(function(){var e=this,r=this.byGroup(),n=r.nodes,i=r.edges;i.unmergeBy(function(F){return F.isLoop()});var a=n.length,s=i.length,l=Math.ceil(Math.pow(Math.log(a)/Math.LN2,2)),u=Math.floor(a/Eqe);if(a<2){ai("At least 2 nodes are required for Karger-Stein algorithm");return}for(var h=[],f=0;f<s;f++){var d=i[f];h.push([f,n.indexOf(d.source()),n.indexOf(d.target())])}for(var p=1/0,m=[],g=new Array(a),y=new Array(a),v=new Array(a),x=o(function(P,z){for(var $=0;$<a;$++)z[$]=P[$]},"copyNodesMap"),b=0;b<=l;b++){for(var w=0;w<a;w++)y[w]=w;var C=wP(y,h.slice(),a,u),T=C.slice();x(y,v);var E=wP(y,C,u,2),A=wP(v,T,u,2);E.length<=A.length&&E.length<p?(p=E.length,m=E,x(y,g)):A.length<=E.length&&A.length<p&&(p=A.length,m=A,x(v,g))}for(var S=this.spawn(m.map(function(F){return i[F[0]]})),_=this.spawn(),I=this.spawn(),D=g[0],k=0;k<g.length;k++){var L=g[k],R=n[k];L===D?_.merge(R):I.merge(R)}var O=o(function(P){var z=e.spawn();return P.forEach(function($){z.merge($),$.connectedEdges().forEach(function(H){e.contains(H)&&!S.contains(H)&&z.merge(H)})}),z},"constructComponent"),M=[O(_),O(I)],B={cut:S,components:M,partition1:_,partition2:I};return B},"kargerStein")},Aqe=o(function(e){return{x:e.x,y:e.y}},"copyPosition"),MS=o(function(e,r,n){return{x:e.x*r+n.x,y:e.y*r+n.y}},"modelToRenderedPosition"),pme=o(function(e,r,n){return{x:(e.x-n.x)/r,y:(e.y-n.y)/r}},"renderedToModelPosition"),U1=o(function(e){return{x:e[0],y:e[1]}},"array2point"),_qe=o(function(e){for(var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.length,i=1/0,a=r;a<n;a++){var s=e[a];isFinite(s)&&(i=Math.min(s,i))}return i},"min"),Dqe=o(function(e){for(var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.length,i=-1/0,a=r;a<n;a++){var s=e[a];isFinite(s)&&(i=Math.max(s,i))}return i},"max"),Lqe=o(function(e){for(var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.length,i=0,a=0,s=r;s<n;s++){var l=e[s];isFinite(l)&&(i+=l,a++)}return i/a},"mean"),Rqe=o(function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.length,i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,s=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!0;i?e=e.slice(r,n):(n<e.length&&e.splice(n,e.length-n),r>0&&e.splice(0,r));for(var l=0,u=e.length-1;u>=0;u--){var h=e[u];s?isFinite(h)||(e[u]=-1/0,l++):e.splice(u,1)}a&&e.sort(function(p,m){return p-m});var f=e.length,d=Math.floor(f/2);return f%2!==0?e[d+1+l]:(e[d-1+l]+e[d+l])/2},"median"),Nqe=o(function(e){return Math.PI*e/180},"deg2rad"),K6=o(function(e,r){return Math.atan2(r,e)-Math.PI/2},"getAngleFromDisp"),iB=Math.log2||function(t){return Math.log(t)/Math.log(2)},mme=o(function(e){return e>0?1:e<0?-1:0},"signum"),Gp=o(function(e,r){return Math.sqrt(Op(e,r))},"dist"),Op=o(function(e,r){var n=r.x-e.x,i=r.y-e.y;return n*n+i*i},"sqdist"),Mqe=o(function(e){for(var r=e.length,n=0,i=0;i<r;i++)n+=e[i];for(var a=0;a<r;a++)e[a]=e[a]/n;return e},"inPlaceSumNormalize"),oa=o(function(e,r,n,i){return(1-i)*(1-i)*e+2*(1-i)*i*r+i*i*n},"qbezierAt"),W1=o(function(e,r,n,i){return{x:oa(e.x,r.x,n.x,i),y:oa(e.y,r.y,n.y,i)}},"qbezierPtAt"),Iqe=o(function(e,r,n,i){var a={x:r.x-e.x,y:r.y-e.y},s=Gp(e,r),l={x:a.x/s,y:a.y/s};return n=n??0,i=i??n*s,{x:e.x+l.x*i,y:e.y+l.y*i}},"lineAt"),Yb=o(function(e,r,n){return Math.max(e,Math.min(n,r))},"bound"),Hs=o(function(e){if(e==null)return{x1:1/0,y1:1/0,x2:-1/0,y2:-1/0,w:0,h:0};if(e.x1!=null&&e.y1!=null){if(e.x2!=null&&e.y2!=null&&e.x2>=e.x1&&e.y2>=e.y1)return{x1:e.x1,y1:e.y1,x2:e.x2,y2:e.y2,w:e.x2-e.x1,h:e.y2-e.y1};if(e.w!=null&&e.h!=null&&e.w>=0&&e.h>=0)return{x1:e.x1,y1:e.y1,x2:e.x1+e.w,y2:e.y1+e.h,w:e.w,h:e.h}}},"makeBoundingBox"),Oqe=o(function(e){return{x1:e.x1,x2:e.x2,w:e.w,y1:e.y1,y2:e.y2,h:e.h}},"copyBoundingBox"),Pqe=o(function(e){e.x1=1/0,e.y1=1/0,e.x2=-1/0,e.y2=-1/0,e.w=0,e.h=0},"clearBoundingBox"),Bqe=o(function(e,r,n){return{x1:e.x1+r,x2:e.x2+r,y1:e.y1+n,y2:e.y2+n,w:e.w,h:e.h}},"shiftBoundingBox"),gme=o(function(e,r){e.x1=Math.min(e.x1,r.x1),e.x2=Math.max(e.x2,r.x2),e.w=e.x2-e.x1,e.y1=Math.min(e.y1,r.y1),e.y2=Math.max(e.y2,r.y2),e.h=e.y2-e.y1},"updateBoundingBox"),Fqe=o(function(e,r,n){e.x1=Math.min(e.x1,r),e.x2=Math.max(e.x2,r),e.w=e.x2-e.x1,e.y1=Math.min(e.y1,n),e.y2=Math.max(e.y2,n),e.h=e.y2-e.y1},"expandBoundingBoxByPoint"),cS=o(function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return e.x1-=r,e.x2+=r,e.y1-=r,e.y2+=r,e.w=e.x2-e.x1,e.h=e.y2-e.y1,e},"expandBoundingBox"),uS=o(function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[0],n,i,a,s;if(r.length===1)n=i=a=s=r[0];else if(r.length===2)n=a=r[0],s=i=r[1];else if(r.length===4){var l=_i(r,4);n=l[0],i=l[1],a=l[2],s=l[3]}return e.x1-=s,e.x2+=i,e.y1-=n,e.y2+=a,e.w=e.x2-e.x1,e.h=e.y2-e.y1,e},"expandBoundingBoxSides"),Fpe=o(function(e,r){e.x1=r.x1,e.y1=r.y1,e.x2=r.x2,e.y2=r.y2,e.w=e.x2-e.x1,e.h=e.y2-e.y1},"assignBoundingBox"),aB=o(function(e,r){return!(e.x1>r.x2||r.x1>e.x2||e.x2<r.x1||r.x2<e.x1||e.y2<r.y1||r.y2<e.y1||e.y1>r.y2||r.y1>e.y2)},"boundingBoxesIntersect"),K1=o(function(e,r,n){return e.x1<=r&&r<=e.x2&&e.y1<=n&&n<=e.y2},"inBoundingBox"),$qe=o(function(e,r){return K1(e,r.x,r.y)},"pointInBoundingBox"),yme=o(function(e,r){return K1(e,r.x1,r.y1)&&K1(e,r.x2,r.y2)},"boundingBoxInBoundingBox"),vme=o(function(e,r,n,i,a,s,l){var u=arguments.length>7&&arguments[7]!==void 0?arguments[7]:"auto",h=u==="auto"?Vp(a,s):u,f=a/2,d=s/2;h=Math.min(h,f,d);var p=h!==f,m=h!==d,g;if(p){var y=n-f+h-l,v=i-d-l,x=n+f-h+l,b=v;if(g=Ef(e,r,n,i,y,v,x,b,!1),g.length>0)return g}if(m){var w=n+f+l,C=i-d+h-l,T=w,E=i+d-h+l;if(g=Ef(e,r,n,i,w,C,T,E,!1),g.length>0)return g}if(p){var A=n-f+h-l,S=i+d+l,_=n+f-h+l,I=S;if(g=Ef(e,r,n,i,A,S,_,I,!1),g.length>0)return g}if(m){var D=n-f-l,k=i-d+h-l,L=D,R=i+d-h+l;if(g=Ef(e,r,n,i,D,k,L,R,!1),g.length>0)return g}var O;{var M=n-f+h,B=i-d+h;if(O=Pb(e,r,n,i,M,B,h+l),O.length>0&&O[0]<=M&&O[1]<=B)return[O[0],O[1]]}{var F=n+f-h,P=i-d+h;if(O=Pb(e,r,n,i,F,P,h+l),O.length>0&&O[0]>=F&&O[1]<=P)return[O[0],O[1]]}{var z=n+f-h,$=i+d-h;if(O=Pb(e,r,n,i,z,$,h+l),O.length>0&&O[0]>=z&&O[1]>=$)return[O[0],O[1]]}{var H=n-f+h,Q=i+d-h;if(O=Pb(e,r,n,i,H,Q,h+l),O.length>0&&O[0]<=H&&O[1]>=Q)return[O[0],O[1]]}return[]},"roundRectangleIntersectLine"),zqe=o(function(e,r,n,i,a,s,l){var u=l,h=Math.min(n,a),f=Math.max(n,a),d=Math.min(i,s),p=Math.max(i,s);return h-u<=e&&e<=f+u&&d-u<=r&&r<=p+u},"inLineVicinity"),Gqe=o(function(e,r,n,i,a,s,l,u,h){var f={x1:Math.min(n,l,a)-h,x2:Math.max(n,l,a)+h,y1:Math.min(i,u,s)-h,y2:Math.max(i,u,s)+h};return!(e<f.x1||e>f.x2||r<f.y1||r>f.y2)},"inBezierVicinity"),Vqe=o(function(e,r,n,i){n-=i;var a=r*r-4*e*n;if(a<0)return[];var s=Math.sqrt(a),l=2*e,u=(-r+s)/l,h=(-r-s)/l;return[u,h]},"solveQuadratic"),Uqe=o(function(e,r,n,i,a){var s=1e-5;e===0&&(e=s),r/=e,n/=e,i/=e;var l,u,h,f,d,p,m,g;if(u=(3*n-r*r)/9,h=-(27*i)+r*(9*n-2*(r*r)),h/=54,l=u*u*u+h*h,a[1]=0,m=r/3,l>0){d=h+Math.sqrt(l),d=d<0?-Math.pow(-d,1/3):Math.pow(d,1/3),p=h-Math.sqrt(l),p=p<0?-Math.pow(-p,1/3):Math.pow(p,1/3),a[0]=-m+d+p,m+=(d+p)/2,a[4]=a[2]=-m,m=Math.sqrt(3)*(-p+d)/2,a[3]=m,a[5]=-m;return}if(a[5]=a[3]=0,l===0){g=h<0?-Math.pow(-h,1/3):Math.pow(h,1/3),a[0]=-m+2*g,a[4]=a[2]=-(g+m);return}u=-u,f=u*u*u,f=Math.acos(h/Math.sqrt(f)),g=2*Math.sqrt(u),a[0]=-m+g*Math.cos(f/3),a[2]=-m+g*Math.cos((f+2*Math.PI)/3),a[4]=-m+g*Math.cos((f+4*Math.PI)/3)},"solveCubic"),Hqe=o(function(e,r,n,i,a,s,l,u){var h=1*n*n-4*n*a+2*n*l+4*a*a-4*a*l+l*l+i*i-4*i*s+2*i*u+4*s*s-4*s*u+u*u,f=1*9*n*a-3*n*n-3*n*l-6*a*a+3*a*l+9*i*s-3*i*i-3*i*u-6*s*s+3*s*u,d=1*3*n*n-6*n*a+n*l-n*e+2*a*a+2*a*e-l*e+3*i*i-6*i*s+i*u-i*r+2*s*s+2*s*r-u*r,p=1*n*a-n*n+n*e-a*e+i*s-i*i+i*r-s*r,m=[];Uqe(h,f,d,p,m);for(var g=1e-7,y=[],v=0;v<6;v+=2)Math.abs(m[v+1])<g&&m[v]>=0&&m[v]<=1&&y.push(m[v]);y.push(1),y.push(0);for(var x=-1,b,w,C,T=0;T<y.length;T++)b=Math.pow(1-y[T],2)*n+2*(1-y[T])*y[T]*a+y[T]*y[T]*l,w=Math.pow(1-y[T],2)*i+2*(1-y[T])*y[T]*s+y[T]*y[T]*u,C=Math.pow(b-e,2)+Math.pow(w-r,2),x>=0?C<x&&(x=C):x=C;return x},"sqdistToQuadraticBezier"),Wqe=o(function(e,r,n,i,a,s){var l=[e-n,r-i],u=[a-n,s-i],h=u[0]*u[0]+u[1]*u[1],f=l[0]*l[0]+l[1]*l[1],d=l[0]*u[0]+l[1]*u[1],p=d*d/h;return d<0?f:p>h?(e-a)*(e-a)+(r-s)*(r-s):f-p},"sqdistToFiniteLine"),Us=o(function(e,r,n){for(var i,a,s,l,u,h=0,f=0;f<n.length/2;f++)if(i=n[f*2],a=n[f*2+1],f+1<n.length/2?(s=n[(f+1)*2],l=n[(f+1)*2+1]):(s=n[(f+1-n.length/2)*2],l=n[(f+1-n.length/2)*2+1]),!(i==e&&s==e))if(i>=e&&e>=s||i<=e&&e<=s)u=(e-i)/(s-i)*(l-a)+a,u>r&&h++;else continue;return h%2!==0},"pointInsidePolygonPoints"),Zu=o(function(e,r,n,i,a,s,l,u,h){var f=new Array(n.length),d;u[0]!=null?(d=Math.atan(u[1]/u[0]),u[0]<0?d=d+Math.PI/2:d=-d-Math.PI/2):d=u;for(var p=Math.cos(-d),m=Math.sin(-d),g=0;g<f.length/2;g++)f[g*2]=s/2*(n[g*2]*p-n[g*2+1]*m),f[g*2+1]=l/2*(n[g*2+1]*p+n[g*2]*m),f[g*2]+=i,f[g*2+1]+=a;var y;if(h>0){var v=TS(f,-h);y=wS(v)}else y=f;return Us(e,r,y)},"pointInsidePolygon"),qqe=o(function(e,r,n,i,a,s,l,u){for(var h=new Array(n.length*2),f=0;f<u.length;f++){var d=u[f];h[f*4+0]=d.startX,h[f*4+1]=d.startY,h[f*4+2]=d.stopX,h[f*4+3]=d.stopY;var p=Math.pow(d.cx-e,2)+Math.pow(d.cy-r,2);if(p<=Math.pow(d.radius,2))return!0}return Us(e,r,h)},"pointInsideRoundPolygon"),wS=o(function(e){for(var r=new Array(e.length/2),n,i,a,s,l,u,h,f,d=0;d<e.length/4;d++){n=e[d*4],i=e[d*4+1],a=e[d*4+2],s=e[d*4+3],d<e.length/4-1?(l=e[(d+1)*4],u=e[(d+1)*4+1],h=e[(d+1)*4+2],f=e[(d+1)*4+3]):(l=e[0],u=e[1],h=e[2],f=e[3]);var p=Ef(n,i,a,s,l,u,h,f,!0);r[d*2]=p[0],r[d*2+1]=p[1]}return r},"joinLines"),TS=o(function(e,r){for(var n=new Array(e.length*2),i,a,s,l,u=0;u<e.length/2;u++){i=e[u*2],a=e[u*2+1],u<e.length/2-1?(s=e[(u+1)*2],l=e[(u+1)*2+1]):(s=e[0],l=e[1]);var h=l-a,f=-(s-i),d=Math.sqrt(h*h+f*f),p=h/d,m=f/d;n[u*4]=i+p*r,n[u*4+1]=a+m*r,n[u*4+2]=s+p*r,n[u*4+3]=l+m*r}return n},"expandPolygon"),Yqe=o(function(e,r,n,i,a,s){var l=n-e,u=i-r;l/=a,u/=s;var h=Math.sqrt(l*l+u*u),f=h-1;if(f<0)return[];var d=f/h;return[(n-e)*d+e,(i-r)*d+r]},"intersectLineEllipse"),$p=o(function(e,r,n,i,a,s,l){return e-=a,r-=s,e/=n/2+l,r/=i/2+l,e*e+r*r<=1},"checkInEllipse"),Pb=o(function(e,r,n,i,a,s,l){var u=[n-e,i-r],h=[e-a,r-s],f=u[0]*u[0]+u[1]*u[1],d=2*(h[0]*u[0]+h[1]*u[1]),p=h[0]*h[0]+h[1]*h[1]-l*l,m=d*d-4*f*p;if(m<0)return[];var g=(-d+Math.sqrt(m))/(2*f),y=(-d-Math.sqrt(m))/(2*f),v=Math.min(g,y),x=Math.max(g,y),b=[];if(v>=0&&v<=1&&b.push(v),x>=0&&x<=1&&b.push(x),b.length===0)return[];var w=b[0]*u[0]+e,C=b[0]*u[1]+r;if(b.length>1){if(b[0]==b[1])return[w,C];var T=b[1]*u[0]+e,E=b[1]*u[1]+r;return[w,C,T,E]}else return[w,C]},"intersectLineCircle"),TP=o(function(e,r,n){return r<=e&&e<=n||n<=e&&e<=r?e:e<=r&&r<=n||n<=r&&r<=e?r:n},"midOfThree"),Ef=o(function(e,r,n,i,a,s,l,u,h){var f=e-a,d=n-e,p=l-a,m=r-s,g=i-r,y=u-s,v=p*m-y*f,x=d*m-g*f,b=y*d-p*g;if(b!==0){var w=v/b,C=x/b,T=.001,E=0-T,A=1+T;return E<=w&&w<=A&&E<=C&&C<=A?[e+w*d,r+w*g]:h?[e+w*d,r+w*g]:[]}else return v===0||x===0?TP(e,n,l)===l?[l,u]:TP(e,n,a)===a?[a,s]:TP(a,l,n)===n?[n,i]:[]:[]},"finiteLinesIntersect"),Xb=o(function(e,r,n,i,a,s,l,u){var h=[],f,d=new Array(n.length),p=!0;s==null&&(p=!1);var m;if(p){for(var g=0;g<d.length/2;g++)d[g*2]=n[g*2]*s+i,d[g*2+1]=n[g*2+1]*l+a;if(u>0){var y=TS(d,-u);m=wS(y)}else m=d}else m=n;for(var v,x,b,w,C=0;C<m.length/2;C++)v=m[C*2],x=m[C*2+1],C<m.length/2-1?(b=m[(C+1)*2],w=m[(C+1)*2+1]):(b=m[0],w=m[1]),f=Ef(e,r,i,a,v,x,b,w),f.length!==0&&h.push(f[0],f[1]);return h},"polygonIntersectLine"),Xqe=o(function(e,r,n,i,a,s,l,u,h){var f=[],d,p=new Array(n.length*2);h.forEach(function(b,w){w===0?(p[p.length-2]=b.startX,p[p.length-1]=b.startY):(p[w*4-2]=b.startX,p[w*4-1]=b.startY),p[w*4]=b.stopX,p[w*4+1]=b.stopY,d=Pb(e,r,i,a,b.cx,b.cy,b.radius),d.length!==0&&f.push(d[0],d[1])});for(var m=0;m<p.length/4;m++)d=Ef(e,r,i,a,p[m*4],p[m*4+1],p[m*4+2],p[m*4+3],!1),d.length!==0&&f.push(d[0],d[1]);if(f.length>2){for(var g=[f[0],f[1]],y=Math.pow(g[0]-e,2)+Math.pow(g[1]-r,2),v=1;v<f.length/2;v++){var x=Math.pow(f[v*2]-e,2)+Math.pow(f[v*2+1]-r,2);x<=y&&(g[0]=f[v*2],g[1]=f[v*2+1],y=x)}return g}return f},"roundPolygonIntersectLine"),Q6=o(function(e,r,n){var i=[e[0]-r[0],e[1]-r[1]],a=Math.sqrt(i[0]*i[0]+i[1]*i[1]),s=(a-n)/a;return s<0&&(s=1e-5),[r[0]+s*i[0],r[1]+s*i[1]]},"shortenIntersection"),gs=o(function(e,r){var n=PP(e,r);return n=xme(n),n},"generateUnitNgonPointsFitToSquare"),xme=o(function(e){for(var r,n,i=e.length/2,a=1/0,s=1/0,l=-1/0,u=-1/0,h=0;h<i;h++)r=e[2*h],n=e[2*h+1],a=Math.min(a,r),l=Math.max(l,r),s=Math.min(s,n),u=Math.max(u,n);for(var f=2/(l-a),d=2/(u-s),p=0;p<i;p++)r=e[2*p]=e[2*p]*f,n=e[2*p+1]=e[2*p+1]*d,a=Math.min(a,r),l=Math.max(l,r),s=Math.min(s,n),u=Math.max(u,n);if(s<-1)for(var m=0;m<i;m++)n=e[2*m+1]=e[2*m+1]+(-1-s);return e},"fitPolygonToSquare"),PP=o(function(e,r){var n=1/e*2*Math.PI,i=e%2===0?Math.PI/2+n/2:Math.PI/2;i+=r;for(var a=new Array(e*2),s,l=0;l<e;l++)s=l*n+i,a[2*l]=Math.cos(s),a[2*l+1]=Math.sin(-s);return a},"generateUnitNgonPoints"),Vp=o(function(e,r){return Math.min(e/4,r/4,8)},"getRoundRectangleRadius"),bme=o(function(e,r){return Math.min(e/10,r/10,8)},"getRoundPolygonRadius"),sB=o(function(){return 8},"getCutRectangleCornerLength"),jqe=o(function(e,r,n){return[e-2*r+n,2*(r-e),e]},"bezierPtsToQuadCoeff"),BP=o(function(e,r){return{heightOffset:Math.min(15,.05*r),widthOffset:Math.min(100,.25*e),ctrlPtOffsetPct:.05}},"getBarrelCurveConstants"),Kqe=la({dampingFactor:.8,precision:1e-6,iterations:200,weight:o(function(e){return 1},"weight")}),Qqe={pageRank:o(function(e){for(var r=Kqe(e),n=r.dampingFactor,i=r.precision,a=r.iterations,s=r.weight,l=this._private.cy,u=this.byGroup(),h=u.nodes,f=u.edges,d=h.length,p=d*d,m=f.length,g=new Array(p),y=new Array(d),v=(1-n)/d,x=0;x<d;x++){for(var b=0;b<d;b++){var w=x*d+b;g[w]=0}y[x]=0}for(var C=0;C<m;C++){var T=f[C],E=T.data("source"),A=T.data("target");if(E!==A){var S=h.indexOfId(E),_=h.indexOfId(A),I=s(T),D=_*d+S;g[D]+=I,y[S]+=I}}for(var k=1/d+v,L=0;L<d;L++)if(y[L]===0)for(var R=0;R<d;R++){var O=R*d+L;g[O]=k}else for(var M=0;M<d;M++){var B=M*d+L;g[B]=g[B]/y[L]+v}for(var F=new Array(d),P=new Array(d),z,$=0;$<d;$++)F[$]=1;for(var H=0;H<a;H++){for(var Q=0;Q<d;Q++)P[Q]=0;for(var j=0;j<d;j++)for(var ie=0;ie<d;ie++){var ne=j*d+ie;P[j]+=g[ne]*F[ie]}Mqe(P),z=F,F=P,P=z;for(var le=0,he=0;he<d;he++){var K=z[he]-F[he];le+=K*K}if(le<i)break}var X={rank:o(function(J){return J=l.collection(J)[0],F[h.indexOf(J)]},"rank")};return X},"pageRank")},$pe=la({root:null,weight:o(function(e){return 1},"weight"),directed:!1,alpha:0}),q1={degreeCentralityNormalized:o(function(e){e=$pe(e);var r=this.cy(),n=this.nodes(),i=n.length;if(e.directed){for(var f={},d={},p=0,m=0,g=0;g<i;g++){var y=n[g],v=y.id();e.root=y;var x=this.degreeCentrality(e);p<x.indegree&&(p=x.indegree),m<x.outdegree&&(m=x.outdegree),f[v]=x.indegree,d[v]=x.outdegree}return{indegree:o(function(w){return p==0?0:(Zt(w)&&(w=r.filter(w)),f[w.id()]/p)},"indegree"),outdegree:o(function(w){return m===0?0:(Zt(w)&&(w=r.filter(w)),d[w.id()]/m)},"outdegree")}}else{for(var a={},s=0,l=0;l<i;l++){var u=n[l];e.root=u;var h=this.degreeCentrality(e);s<h.degree&&(s=h.degree),a[u.id()]=h.degree}return{degree:o(function(w){return s===0?0:(Zt(w)&&(w=r.filter(w)),a[w.id()]/s)},"degree")}}},"degreeCentralityNormalized"),degreeCentrality:o(function(e){e=$pe(e);var r=this.cy(),n=this,i=e,a=i.root,s=i.weight,l=i.directed,u=i.alpha;if(a=r.collection(a)[0],l){for(var m=a.connectedEdges(),g=m.filter(function(E){return E.target().same(a)&&n.has(E)}),y=m.filter(function(E){return E.source().same(a)&&n.has(E)}),v=g.length,x=y.length,b=0,w=0,C=0;C<g.length;C++)b+=s(g[C]);for(var T=0;T<y.length;T++)w+=s(y[T]);return{indegree:Math.pow(v,1-u)*Math.pow(b,u),outdegree:Math.pow(x,1-u)*Math.pow(w,u)}}else{for(var h=a.connectedEdges().intersection(n),f=h.length,d=0,p=0;p<h.length;p++)d+=s(h[p]);return{degree:Math.pow(f,1-u)*Math.pow(d,u)}}},"degreeCentrality")};q1.dc=q1.degreeCentrality;q1.dcn=q1.degreeCentralityNormalised=q1.degreeCentralityNormalized;zpe=la({harmonic:!0,weight:o(function(){return 1},"weight"),directed:!1,root:null}),Y1={closenessCentralityNormalized:o(function(e){for(var r=zpe(e),n=r.harmonic,i=r.weight,a=r.directed,s=this.cy(),l={},u=0,h=this.nodes(),f=this.floydWarshall({weight:i,directed:a}),d=0;d<h.length;d++){for(var p=0,m=h[d],g=0;g<h.length;g++)if(d!==g){var y=f.distance(m,h[g]);n?p+=1/y:p+=y}n||(p=1/p),u<p&&(u=p),l[m.id()]=p}return{closeness:o(function(x){return u==0?0:(Zt(x)?x=s.filter(x)[0].id():x=x.id(),l[x]/u)},"closeness")}},"closenessCentralityNormalized"),closenessCentrality:o(function(e){var r=zpe(e),n=r.root,i=r.weight,a=r.directed,s=r.harmonic;n=this.filter(n)[0];for(var l=this.dijkstra({root:n,weight:i,directed:a}),u=0,h=this.nodes(),f=0;f<h.length;f++){var d=h[f];if(!d.same(n)){var p=l.distanceTo(d);s?u+=1/p:u+=p}}return s?u:1/u},"closenessCentrality")};Y1.cc=Y1.closenessCentrality;Y1.ccn=Y1.closenessCentralityNormalised=Y1.closenessCentralityNormalized;Zqe=la({weight:null,directed:!1}),FP={betweennessCentrality:o(function(e){for(var r=Zqe(e),n=r.directed,i=r.weight,a=i!=null,s=this.cy(),l=this.nodes(),u={},h={},f=0,d={set:o(function(w,C){h[w]=C,C>f&&(f=C)},"set"),get:o(function(w){return h[w]},"get")},p=0;p<l.length;p++){var m=l[p],g=m.id();n?u[g]=m.outgoers().nodes():u[g]=m.openNeighborhood().nodes(),d.set(g,0)}for(var y=o(function(w){for(var C=l[w].id(),T=[],E={},A={},S={},_=new i4(function(ie,ne){return S[ie]-S[ne]}),I=0;I<l.length;I++){var D=l[I].id();E[D]=[],A[D]=0,S[D]=1/0}for(A[C]=1,S[C]=0,_.push(C);!_.empty();){var k=_.pop();if(T.push(k),a)for(var L=0;L<u[k].length;L++){var R=u[k][L],O=s.getElementById(k),M=void 0;O.edgesTo(R).length>0?M=O.edgesTo(R)[0]:M=R.edgesTo(O)[0];var B=i(M);R=R.id(),S[R]>S[k]+B&&(S[R]=S[k]+B,_.nodes.indexOf(R)<0?_.push(R):_.updateItem(R),A[R]=0,E[R]=[]),S[R]==S[k]+B&&(A[R]=A[R]+A[k],E[R].push(k))}else for(var F=0;F<u[k].length;F++){var P=u[k][F].id();S[P]==1/0&&(_.push(P),S[P]=S[k]+1),S[P]==S[k]+1&&(A[P]=A[P]+A[k],E[P].push(k))}}for(var z={},$=0;$<l.length;$++)z[l[$].id()]=0;for(;T.length>0;){for(var H=T.pop(),Q=0;Q<E[H].length;Q++){var j=E[H][Q];z[j]=z[j]+A[j]/A[H]*(1+z[H])}H!=l[w].id()&&d.set(H,d.get(H)+z[H])}},"_loop"),v=0;v<l.length;v++)y(v);var x={betweenness:o(function(w){var C=s.collection(w).id();return d.get(C)},"betweenness"),betweennessNormalized:o(function(w){if(f==0)return 0;var C=s.collection(w).id();return d.get(C)/f},"betweennessNormalized")};return x.betweennessNormalised=x.betweennessNormalized,x},"betweennessCentrality")};FP.bc=FP.betweennessCentrality;Jqe=la({expandFactor:2,inflateFactor:2,multFactor:1,maxIterations:20,attributes:[function(t){return 1}]}),eYe=o(function(e){return Jqe(e)},"setOptions"),tYe=o(function(e,r){for(var n=0,i=0;i<r.length;i++)n+=r[i](e);return n},"getSimilarity"),rYe=o(function(e,r,n){for(var i=0;i<r;i++)e[i*r+i]=n},"addLoops"),wme=o(function(e,r){for(var n,i=0;i<r;i++){n=0;for(var a=0;a<r;a++)n+=e[a*r+i];for(var s=0;s<r;s++)e[s*r+i]=e[s*r+i]/n}},"normalize"),nYe=o(function(e,r,n){for(var i=new Array(n*n),a=0;a<n;a++){for(var s=0;s<n;s++)i[a*n+s]=0;for(var l=0;l<n;l++)for(var u=0;u<n;u++)i[a*n+u]+=e[a*n+l]*r[l*n+u]}return i},"mmult"),iYe=o(function(e,r,n){for(var i=e.slice(0),a=1;a<n;a++)e=nYe(e,i,r);return e},"expand"),aYe=o(function(e,r,n){for(var i=new Array(r*r),a=0;a<r*r;a++)i[a]=Math.pow(e[a],n);return wme(i,r),i},"inflate"),sYe=o(function(e,r,n,i){for(var a=0;a<n;a++){var s=Math.round(e[a]*Math.pow(10,i))/Math.pow(10,i),l=Math.round(r[a]*Math.pow(10,i))/Math.pow(10,i);if(s!==l)return!1}return!0},"hasConverged"),oYe=o(function(e,r,n,i){for(var a=[],s=0;s<r;s++){for(var l=[],u=0;u<r;u++)Math.round(e[s*r+u]*1e3)/1e3>0&&l.push(n[u]);l.length!==0&&a.push(i.collection(l))}return a},"assign"),lYe=o(function(e,r){for(var n=0;n<e.length;n++)if(!r[n]||e[n].id()!==r[n].id())return!1;return!0},"isDuplicate"),cYe=o(function(e){for(var r=0;r<e.length;r++)for(var n=0;n<e.length;n++)r!=n&&lYe(e[r],e[n])&&e.splice(n,1);return e},"removeDuplicates"),Gpe=o(function(e){for(var r=this.nodes(),n=this.edges(),i=this.cy(),a=eYe(e),s={},l=0;l<r.length;l++)s[r[l].id()]=l;for(var u=r.length,h=u*u,f=new Array(h),d,p=0;p<h;p++)f[p]=0;for(var m=0;m<n.length;m++){var g=n[m],y=s[g.source().id()],v=s[g.target().id()],x=tYe(g,a.attributes);f[y*u+v]+=x,f[v*u+y]+=x}rYe(f,u,a.multFactor),wme(f,u);for(var b=!0,w=0;b&&w<a.maxIterations;)b=!1,d=iYe(f,u,a.expandFactor),f=aYe(d,u,a.inflateFactor),sYe(f,d,h,4)||(b=!0),w++;var C=oYe(f,u,r,i);return C=cYe(C),C},"markovClustering"),uYe={markovClustering:Gpe,mcl:Gpe},hYe=o(function(e){return e},"identity"),Tme=o(function(e,r){return Math.abs(r-e)},"absDiff"),Vpe=o(function(e,r,n){return e+Tme(r,n)},"addAbsDiff"),Upe=o(function(e,r,n){return e+Math.pow(n-r,2)},"addSquaredDiff"),fYe=o(function(e){return Math.sqrt(e)},"sqrt"),dYe=o(function(e,r,n){return Math.max(e,Tme(r,n))},"maxAbsDiff"),_b=o(function(e,r,n,i,a){for(var s=arguments.length>5&&arguments[5]!==void 0?arguments[5]:hYe,l=i,u,h,f=0;f<e;f++)u=r(f),h=n(f),l=a(l,u,h);return s(l)},"getDistance"),Q1={euclidean:o(function(e,r,n){return e>=2?_b(e,r,n,0,Upe,fYe):_b(e,r,n,0,Vpe)},"euclidean"),squaredEuclidean:o(function(e,r,n){return _b(e,r,n,0,Upe)},"squaredEuclidean"),manhattan:o(function(e,r,n){return _b(e,r,n,0,Vpe)},"manhattan"),max:o(function(e,r,n){return _b(e,r,n,-1/0,dYe)},"max")};Q1["squared-euclidean"]=Q1.squaredEuclidean;Q1.squaredeuclidean=Q1.squaredEuclidean;o(IS,"clusteringDistance");pYe=la({k:2,m:2,sensitivityThreshold:1e-4,distance:"euclidean",maxIterations:10,attributes:[],testMode:!1,testCentroids:null}),oB=o(function(e){return pYe(e)},"setOptions"),kS=o(function(e,r,n,i,a){var s=a!=="kMedoids",l=s?function(d){return n[d]}:function(d){return i[d](n)},u=o(function(p){return i[p](r)},"getQ"),h=n,f=r;return IS(e,i.length,l,u,h,f)},"getDist"),kP=o(function(e,r,n){for(var i=n.length,a=new Array(i),s=new Array(i),l=new Array(r),u=null,h=0;h<i;h++)a[h]=e.min(n[h]).value,s[h]=e.max(n[h]).value;for(var f=0;f<r;f++){u=[];for(var d=0;d<i;d++)u[d]=Math.random()*(s[d]-a[d])+a[d];l[f]=u}return l},"randomCentroids"),kme=o(function(e,r,n,i,a){for(var s=1/0,l=0,u=0;u<r.length;u++){var h=kS(n,e,r[u],i,a);h<s&&(s=h,l=u)}return l},"classify"),Eme=o(function(e,r,n){for(var i=[],a=null,s=0;s<r.length;s++)a=r[s],n[a.id()]===e&&i.push(a);return i},"buildCluster"),mYe=o(function(e,r,n){return Math.abs(r-e)<=n},"haveValuesConverged"),gYe=o(function(e,r,n){for(var i=0;i<e.length;i++)for(var a=0;a<e[i].length;a++){var s=Math.abs(e[i][a]-r[i][a]);if(s>n)return!1}return!0},"haveMatricesConverged"),yYe=o(function(e,r,n){for(var i=0;i<n;i++)if(e===r[i])return!0;return!1},"seenBefore"),Hpe=o(function(e,r){var n=new Array(r);if(e.length<50)for(var i=0;i<r;i++){for(var a=e[Math.floor(Math.random()*e.length)];yYe(a,n,i);)a=e[Math.floor(Math.random()*e.length)];n[i]=a}else for(var s=0;s<r;s++)n[s]=e[Math.floor(Math.random()*e.length)];return n},"randomMedoids"),Wpe=o(function(e,r,n){for(var i=0,a=0;a<r.length;a++)i+=kS("manhattan",r[a],e,n,"kMedoids");return i},"findCost"),vYe=o(function(e){var r=this.cy(),n=this.nodes(),i=null,a=oB(e),s=new Array(a.k),l={},u;a.testMode?typeof a.testCentroids=="number"?(a.testCentroids,u=kP(n,a.k,a.attributes)):Wi(a.testCentroids)==="object"?u=a.testCentroids:u=kP(n,a.k,a.attributes):u=kP(n,a.k,a.attributes);for(var h=!0,f=0;h&&f<a.maxIterations;){for(var d=0;d<n.length;d++)i=n[d],l[i.id()]=kme(i,u,a.distance,a.attributes,"kMeans");h=!1;for(var p=0;p<a.k;p++){var m=Eme(p,n,l);if(m.length!==0){for(var g=a.attributes.length,y=u[p],v=new Array(g),x=new Array(g),b=0;b<g;b++){x[b]=0;for(var w=0;w<m.length;w++)i=m[w],x[b]+=a.attributes[b](i);v[b]=x[b]/m.length,mYe(v[b],y[b],a.sensitivityThreshold)||(h=!0)}u[p]=v,s[p]=r.collection(m)}}f++}return s},"kMeans"),xYe=o(function(e){var r=this.cy(),n=this.nodes(),i=null,a=oB(e),s=new Array(a.k),l,u={},h,f=new Array(a.k);a.testMode?typeof a.testCentroids=="number"||(Wi(a.testCentroids)==="object"?l=a.testCentroids:l=Hpe(n,a.k)):l=Hpe(n,a.k);for(var d=!0,p=0;d&&p<a.maxIterations;){for(var m=0;m<n.length;m++)i=n[m],u[i.id()]=kme(i,l,a.distance,a.attributes,"kMedoids");d=!1;for(var g=0;g<l.length;g++){var y=Eme(g,n,u);if(y.length!==0){f[g]=Wpe(l[g],y,a.attributes);for(var v=0;v<y.length;v++)h=Wpe(y[v],y,a.attributes),h<f[g]&&(f[g]=h,l[g]=y[v],d=!0);s[g]=r.collection(y)}}p++}return s},"kMedoids"),bYe=o(function(e,r,n,i,a){for(var s,l,u=0;u<r.length;u++)for(var h=0;h<e.length;h++)i[u][h]=Math.pow(n[u][h],a.m);for(var f=0;f<e.length;f++)for(var d=0;d<a.attributes.length;d++){s=0,l=0;for(var p=0;p<r.length;p++)s+=i[p][f]*a.attributes[d](r[p]),l+=i[p][f];e[f][d]=s/l}},"updateCentroids"),wYe=o(function(e,r,n,i,a){for(var s=0;s<e.length;s++)r[s]=e[s].slice();for(var l,u,h,f=2/(a.m-1),d=0;d<n.length;d++)for(var p=0;p<i.length;p++){l=0;for(var m=0;m<n.length;m++)u=kS(a.distance,i[p],n[d],a.attributes,"cmeans"),h=kS(a.distance,i[p],n[m],a.attributes,"cmeans"),l+=Math.pow(u/h,f);e[p][d]=1/l}},"updateMembership"),TYe=o(function(e,r,n,i){for(var a=new Array(n.k),s=0;s<a.length;s++)a[s]=[];for(var l,u,h=0;h<r.length;h++){l=-1/0,u=-1;for(var f=0;f<r[0].length;f++)r[h][f]>l&&(l=r[h][f],u=f);a[u].push(e[h])}for(var d=0;d<a.length;d++)a[d]=i.collection(a[d]);return a},"assign"),qpe=o(function(e){var r=this.cy(),n=this.nodes(),i=oB(e),a,s,l,u,h;u=new Array(n.length);for(var f=0;f<n.length;f++)u[f]=new Array(i.k);l=new Array(n.length);for(var d=0;d<n.length;d++)l[d]=new Array(i.k);for(var p=0;p<n.length;p++){for(var m=0,g=0;g<i.k;g++)l[p][g]=Math.random(),m+=l[p][g];for(var y=0;y<i.k;y++)l[p][y]=l[p][y]/m}s=new Array(i.k);for(var v=0;v<i.k;v++)s[v]=new Array(i.attributes.length);h=new Array(n.length);for(var x=0;x<n.length;x++)h[x]=new Array(i.k);for(var b=!0,w=0;b&&w<i.maxIterations;)b=!1,bYe(s,n,l,h,i),wYe(l,u,s,n,i),gYe(l,u,i.sensitivityThreshold)||(b=!0),w++;return a=TYe(n,l,i,r),{clusters:a,degreeOfMembership:l}},"fuzzyCMeans"),kYe={kMeans:vYe,kMedoids:xYe,fuzzyCMeans:qpe,fcm:qpe},EYe=la({distance:"euclidean",linkage:"min",mode:"threshold",threshold:1/0,addDendrogram:!1,dendrogramDepth:0,attributes:[]}),SYe={single:"min",complete:"max"},CYe=o(function(e){var r=EYe(e),n=SYe[r.linkage];return n!=null&&(r.linkage=n),r},"setOptions"),Ype=o(function(e,r,n,i,a){for(var s=0,l=1/0,u,h=a.attributes,f=o(function(_,I){return IS(a.distance,h.length,function(D){return h[D](_)},function(D){return h[D](I)},_,I)},"getDist"),d=0;d<e.length;d++){var p=e[d].key,m=n[p][i[p]];m<l&&(s=p,l=m)}if(a.mode==="threshold"&&l>=a.threshold||a.mode==="dendrogram"&&e.length===1)return!1;var g=r[s],y=r[i[s]],v;a.mode==="dendrogram"?v={left:g,right:y,key:g.key}:v={value:g.value.concat(y.value),key:g.key},e[g.index]=v,e.splice(y.index,1),r[g.key]=v;for(var x=0;x<e.length;x++){var b=e[x];g.key===b.key?u=1/0:a.linkage==="min"?(u=n[g.key][b.key],n[g.key][b.key]>n[y.key][b.key]&&(u=n[y.key][b.key])):a.linkage==="max"?(u=n[g.key][b.key],n[g.key][b.key]<n[y.key][b.key]&&(u=n[y.key][b.key])):a.linkage==="mean"?u=(n[g.key][b.key]*g.size+n[y.key][b.key]*y.size)/(g.size+y.size):a.mode==="dendrogram"?u=f(b.value,g.value):u=f(b.value[0],g.value[0]),n[g.key][b.key]=n[b.key][g.key]=u}for(var w=0;w<e.length;w++){var C=e[w].key;if(i[C]===g.key||i[C]===y.key){for(var T=C,E=0;E<e.length;E++){var A=e[E].key;n[C][A]<n[C][T]&&(T=A)}i[C]=T}e[w].index=w}return g.key=y.key=g.index=y.index=null,!0},"mergeClosest"),Z6=o(function t(e,r,n){e&&(e.value?r.push(e.value):(e.left&&t(e.left,r),e.right&&t(e.right,r)))},"getAllChildren"),AYe=o(function t(e,r){if(!e)return"";if(e.left&&e.right){var n=t(e.left,r),i=t(e.right,r),a=r.add({group:"nodes",data:{id:n+","+i}});return r.add({group:"edges",data:{source:n,target:a.id()}}),r.add({group:"edges",data:{source:i,target:a.id()}}),a.id()}else if(e.value)return e.value.id()},"buildDendrogram"),_Ye=o(function t(e,r,n){if(!e)return[];var i=[],a=[],s=[];return r===0?(e.left&&Z6(e.left,i),e.right&&Z6(e.right,a),s=i.concat(a),[n.collection(s)]):r===1?e.value?[n.collection(e.value)]:(e.left&&Z6(e.left,i),e.right&&Z6(e.right,a),[n.collection(i),n.collection(a)]):e.value?[n.collection(e.value)]:(e.left&&(i=t(e.left,r-1,n)),e.right&&(a=t(e.right,r-1,n)),i.concat(a))},"buildClustersFromTree"),Xpe=o(function(e){for(var r=this.cy(),n=this.nodes(),i=CYe(e),a=i.attributes,s=o(function(w,C){return IS(i.distance,a.length,function(T){return a[T](w)},function(T){return a[T](C)},w,C)},"getDist"),l=[],u=[],h=[],f=[],d=0;d<n.length;d++){var p={value:i.mode==="dendrogram"?n[d]:[n[d]],key:d,index:d};l[d]=p,f[d]=p,u[d]=[],h[d]=0}for(var m=0;m<l.length;m++)for(var g=0;g<=m;g++){var y=void 0;i.mode==="dendrogram"?y=m===g?1/0:s(l[m].value,l[g].value):y=m===g?1/0:s(l[m].value[0],l[g].value[0]),u[m][g]=y,u[g][m]=y,y<u[m][h[m]]&&(h[m]=g)}for(var v=Ype(l,f,u,h,i);v;)v=Ype(l,f,u,h,i);var x;return i.mode==="dendrogram"?(x=_Ye(l[0],i.dendrogramDepth,r),i.addDendrogram&&AYe(l[0],r)):(x=new Array(l.length),l.forEach(function(b,w){b.key=b.index=null,x[w]=r.collection(b.value)})),x},"hierarchicalClustering"),DYe={hierarchicalClustering:Xpe,hca:Xpe},LYe=la({distance:"euclidean",preference:"median",damping:.8,maxIterations:1e3,minIterations:100,attributes:[]}),RYe=o(function(e){var r=e.damping,n=e.preference;.5<=r&&r<1||ai("Damping must range on [0.5, 1).  Got: ".concat(r));var i=["median","mean","min","max"];return i.some(function(a){return a===n})||Ct(n)||ai("Preference must be one of [".concat(i.map(function(a){return"'".concat(a,"'")}).join(", "),"] or a number.  Got: ").concat(n)),LYe(e)},"setOptions"),NYe=o(function(e,r,n,i){var a=o(function(l,u){return i[u](l)},"attr");return-IS(e,i.length,function(s){return a(r,s)},function(s){return a(n,s)},r,n)},"getSimilarity"),MYe=o(function(e,r){var n=null;return r==="median"?n=Rqe(e):r==="mean"?n=Lqe(e):r==="min"?n=_qe(e):r==="max"?n=Dqe(e):n=r,n},"getPreference"),IYe=o(function(e,r,n){for(var i=[],a=0;a<e;a++)r[a*e+a]+n[a*e+a]>0&&i.push(a);return i},"findExemplars"),jpe=o(function(e,r,n){for(var i=[],a=0;a<e;a++){for(var s=-1,l=-1/0,u=0;u<n.length;u++){var h=n[u];r[a*e+h]>l&&(s=h,l=r[a*e+h])}s>0&&i.push(s)}for(var f=0;f<n.length;f++)i[n[f]]=n[f];return i},"assignClusters"),OYe=o(function(e,r,n){for(var i=jpe(e,r,n),a=0;a<n.length;a++){for(var s=[],l=0;l<i.length;l++)i[l]===n[a]&&s.push(l);for(var u=-1,h=-1/0,f=0;f<s.length;f++){for(var d=0,p=0;p<s.length;p++)d+=r[s[p]*e+s[f]];d>h&&(u=f,h=d)}n[a]=s[u]}return i=jpe(e,r,n),i},"assign"),Kpe=o(function(e){for(var r=this.cy(),n=this.nodes(),i=RYe(e),a={},s=0;s<n.length;s++)a[n[s].id()]=s;var l,u,h,f,d,p;l=n.length,u=l*l,h=new Array(u);for(var m=0;m<u;m++)h[m]=-1/0;for(var g=0;g<l;g++)for(var y=0;y<l;y++)g!==y&&(h[g*l+y]=NYe(i.distance,n[g],n[y],i.attributes));f=MYe(h,i.preference);for(var v=0;v<l;v++)h[v*l+v]=f;d=new Array(u);for(var x=0;x<u;x++)d[x]=0;p=new Array(u);for(var b=0;b<u;b++)p[b]=0;for(var w=new Array(l),C=new Array(l),T=new Array(l),E=0;E<l;E++)w[E]=0,C[E]=0,T[E]=0;for(var A=new Array(l*i.minIterations),S=0;S<A.length;S++)A[S]=0;var _;for(_=0;_<i.maxIterations;_++){for(var I=0;I<l;I++){for(var D=-1/0,k=-1/0,L=-1,R=0,O=0;O<l;O++)w[O]=d[I*l+O],R=p[I*l+O]+h[I*l+O],R>=D?(k=D,D=R,L=O):R>k&&(k=R);for(var M=0;M<l;M++)d[I*l+M]=(1-i.damping)*(h[I*l+M]-D)+i.damping*w[M];d[I*l+L]=(1-i.damping)*(h[I*l+L]-k)+i.damping*w[L]}for(var B=0;B<l;B++){for(var F=0,P=0;P<l;P++)w[P]=p[P*l+B],C[P]=Math.max(0,d[P*l+B]),F+=C[P];F-=C[B],C[B]=d[B*l+B],F+=C[B];for(var z=0;z<l;z++)p[z*l+B]=(1-i.damping)*Math.min(0,F-C[z])+i.damping*w[z];p[B*l+B]=(1-i.damping)*(F-C[B])+i.damping*w[B]}for(var $=0,H=0;H<l;H++){var Q=p[H*l+H]+d[H*l+H]>0?1:0;A[_%i.minIterations*l+H]=Q,$+=Q}if($>0&&(_>=i.minIterations-1||_==i.maxIterations-1)){for(var j=0,ie=0;ie<l;ie++){T[ie]=0;for(var ne=0;ne<i.minIterations;ne++)T[ie]+=A[ne*l+ie];(T[ie]===0||T[ie]===i.minIterations)&&j++}if(j===l)break}}for(var le=IYe(l,d,p),he=OYe(l,h,le),K={},X=0;X<le.length;X++)K[le[X]]=[];for(var te=0;te<n.length;te++){var J=a[n[te].id()],se=he[J];se!=null&&K[se].push(n[te])}for(var ue=new Array(le.length),Z=0;Z<le.length;Z++)ue[Z]=r.collection(K[le[Z]]);return ue},"affinityPropagation"),PYe={affinityPropagation:Kpe,ap:Kpe},BYe=la({root:void 0,directed:!1}),FYe={hierholzer:o(function(e){if(!Ur(e)){var r=arguments;e={root:r[0],directed:r[1]}}var n=BYe(e),i=n.root,a=n.directed,s=this,l=!1,u,h,f;i&&(f=Zt(i)?this.filter(i)[0].id():i[0].id());var d={},p={};a?s.forEach(function(b){var w=b.id();if(b.isNode()){var C=b.indegree(!0),T=b.outdegree(!0),E=C-T,A=T-C;E==1?u?l=!0:u=w:A==1?h?l=!0:h=w:(A>1||E>1)&&(l=!0),d[w]=[],b.outgoers().forEach(function(S){S.isEdge()&&d[w].push(S.id())})}else p[w]=[void 0,b.target().id()]}):s.forEach(function(b){var w=b.id();if(b.isNode()){var C=b.degree(!0);C%2&&(u?h?l=!0:h=w:u=w),d[w]=[],b.connectedEdges().forEach(function(T){return d[w].push(T.id())})}else p[w]=[b.source().id(),b.target().id()]});var m={found:!1,trail:void 0};if(l)return m;if(h&&u)if(a){if(f&&h!=f)return m;f=h}else{if(f&&h!=f&&u!=f)return m;f||(f=h)}else f||(f=s[0].id());var g=o(function(w){for(var C=w,T=[w],E,A,S;d[C].length;)E=d[C].shift(),A=p[E][0],S=p[E][1],C!=S?(d[S]=d[S].filter(function(_){return _!=E}),C=S):!a&&C!=A&&(d[A]=d[A].filter(function(_){return _!=E}),C=A),T.unshift(E),T.unshift(C);return T},"walk"),y=[],v=[];for(v=g(f);v.length!=1;)d[v[0]].length==0?(y.unshift(s.getElementById(v.shift())),y.unshift(s.getElementById(v.shift()))):v=g(v.shift()).concat(v);y.unshift(s.getElementById(v.shift()));for(var x in d)if(d[x].length)return m;return m.found=!0,m.trail=this.spawn(y,!0),m},"hierholzer")},J6=o(function(){var e=this,r={},n=0,i=0,a=[],s=[],l={},u=o(function(p,m){for(var g=s.length-1,y=[],v=e.spawn();s[g].x!=p||s[g].y!=m;)y.push(s.pop().edge),g--;y.push(s.pop().edge),y.forEach(function(x){var b=x.connectedNodes().intersection(e);v.merge(x),b.forEach(function(w){var C=w.id(),T=w.connectedEdges().intersection(e);v.merge(w),r[C].cutVertex?v.merge(T.filter(function(E){return E.isLoop()})):v.merge(T)})}),a.push(v)},"buildComponent"),h=o(function d(p,m,g){p===g&&(i+=1),r[m]={id:n,low:n++,cutVertex:!1};var y=e.getElementById(m).connectedEdges().intersection(e);if(y.size()===0)a.push(e.spawn(e.getElementById(m)));else{var v,x,b,w;y.forEach(function(C){v=C.source().id(),x=C.target().id(),b=v===m?x:v,b!==g&&(w=C.id(),l[w]||(l[w]=!0,s.push({x:m,y:b,edge:C})),b in r?r[m].low=Math.min(r[m].low,r[b].id):(d(p,b,m),r[m].low=Math.min(r[m].low,r[b].low),r[m].id<=r[b].low&&(r[m].cutVertex=!0,u(m,b))))})}},"biconnectedSearch");e.forEach(function(d){if(d.isNode()){var p=d.id();p in r||(i=0,h(p,p),r[p].cutVertex=i>1)}});var f=Object.keys(r).filter(function(d){return r[d].cutVertex}).map(function(d){return e.getElementById(d)});return{cut:e.spawn(f),components:a}},"hopcroftTarjanBiconnected"),$Ye={hopcroftTarjanBiconnected:J6,htbc:J6,htb:J6,hopcroftTarjanBiconnectedComponents:J6},eS=o(function(){var e=this,r={},n=0,i=[],a=[],s=e.spawn(e),l=o(function u(h){a.push(h),r[h]={index:n,low:n++,explored:!1};var f=e.getElementById(h).connectedEdges().intersection(e);if(f.forEach(function(y){var v=y.target().id();v!==h&&(v in r||u(v),r[v].explored||(r[h].low=Math.min(r[h].low,r[v].low)))}),r[h].index===r[h].low){for(var d=e.spawn();;){var p=a.pop();if(d.merge(e.getElementById(p)),r[p].low=r[h].index,r[p].explored=!0,p===h)break}var m=d.edgesWith(d),g=d.merge(m);i.push(g),s=s.difference(g)}},"stronglyConnectedSearch");return e.forEach(function(u){if(u.isNode()){var h=u.id();h in r||l(h)}}),{cut:s,components:i}},"tarjanStronglyConnected"),zYe={tarjanStronglyConnected:eS,tsc:eS,tscc:eS,tarjanStronglyConnectedComponents:eS},Sme={};[qb,gqe,yqe,xqe,wqe,kqe,Cqe,Qqe,q1,Y1,FP,uYe,kYe,DYe,PYe,FYe,$Ye,zYe].forEach(function(t){rr(Sme,t)});Cme=0,Ame=1,_me=2,Ju=o(function t(e){if(!(this instanceof t))return new t(e);this.id="Thenable/1.0.7",this.state=Cme,this.fulfillValue=void 0,this.rejectReason=void 0,this.onFulfilled=[],this.onRejected=[],this.proxy={then:this.then.bind(this)},typeof e=="function"&&e.call(this,this.fulfill.bind(this),this.reject.bind(this))},"api");Ju.prototype={fulfill:o(function(e){return Qpe(this,Ame,"fulfillValue",e)},"fulfill"),reject:o(function(e){return Qpe(this,_me,"rejectReason",e)},"reject"),then:o(function(e,r){var n=this,i=new Ju;return n.onFulfilled.push(Jpe(e,i,"fulfill")),n.onRejected.push(Jpe(r,i,"reject")),Dme(n),i.proxy},"then")};Qpe=o(function(e,r,n,i){return e.state===Cme&&(e.state=r,e[n]=i,Dme(e)),e},"deliver"),Dme=o(function(e){e.state===Ame?Zpe(e,"onFulfilled",e.fulfillValue):e.state===_me&&Zpe(e,"onRejected",e.rejectReason)},"execute"),Zpe=o(function(e,r,n){if(e[r].length!==0){var i=e[r];e[r]=[];var a=o(function(){for(var l=0;l<i.length;l++)i[l](n)},"func");typeof setImmediate=="function"?setImmediate(a):setTimeout(a,0)}},"execute_handlers"),Jpe=o(function(e,r,n){return function(i){if(typeof e!="function")r[n].call(r,i);else{var a;try{a=e(i)}catch(s){r.reject(s);return}GYe(r,a)}}},"resolver"),GYe=o(function t(e,r){if(e===r||e.proxy===r){e.reject(new TypeError("cannot resolve promise with itself"));return}var n;if(Wi(r)==="object"&&r!==null||typeof r=="function")try{n=r.then}catch(a){e.reject(a);return}if(typeof n=="function"){var i=!1;try{n.call(r,function(a){i||(i=!0,a===r?e.reject(new TypeError("circular thenable chain")):t(e,a))},function(a){i||(i=!0,e.reject(a))})}catch(a){i||e.reject(a)}return}e.fulfill(r)},"resolve");Ju.all=function(t){return new Ju(function(e,r){for(var n=new Array(t.length),i=0,a=o(function(u,h){n[u]=h,i++,i===t.length&&e(n)},"fulfill"),s=0;s<t.length;s++)(function(l){var u=t[l],h=u!=null&&u.then!=null;if(h)u.then(function(d){a(l,d)},function(d){r(d)});else{var f=u;a(l,f)}})(s)})};Ju.resolve=function(t){return new Ju(function(e,r){e(t)})};Ju.reject=function(t){return new Ju(function(e,r){r(t)})};ey=typeof Promise<"u"?Promise:Ju,$P=o(function(e,r,n){var i=JP(e),a=!i,s=this._private=rr({duration:1e3},r,n);if(s.target=e,s.style=s.style||s.css,s.started=!1,s.playing=!1,s.hooked=!1,s.applying=!1,s.progress=0,s.completes=[],s.frames=[],s.complete&&si(s.complete)&&s.completes.push(s.complete),a){var l=e.position();s.startPosition=s.startPosition||{x:l.x,y:l.y},s.startStyle=s.startStyle||e.cy().style().getAnimationStartStyle(e,s.style)}if(i){var u=e.pan();s.startPan={x:u.x,y:u.y},s.startZoom=e.zoom()}this.length=1,this[0]=this},"Animation"),Up=$P.prototype;rr(Up,{instanceString:o(function(){return"animation"},"instanceString"),hook:o(function(){var e=this._private;if(!e.hooked){var r,n=e.target._private.animation;e.queue?r=n.queue:r=n.current,r.push(this),go(e.target)&&e.target.cy().addToAnimationPool(e.target),e.hooked=!0}return this},"hook"),play:o(function(){var e=this._private;return e.progress===1&&(e.progress=0),e.playing=!0,e.started=!1,e.stopped=!1,this.hook(),this},"play"),playing:o(function(){return this._private.playing},"playing"),apply:o(function(){var e=this._private;return e.applying=!0,e.started=!1,e.stopped=!1,this.hook(),this},"apply"),applying:o(function(){return this._private.applying},"applying"),pause:o(function(){var e=this._private;return e.playing=!1,e.started=!1,this},"pause"),stop:o(function(){var e=this._private;return e.playing=!1,e.started=!1,e.stopped=!0,this},"stop"),rewind:o(function(){return this.progress(0)},"rewind"),fastforward:o(function(){return this.progress(1)},"fastforward"),time:o(function(e){var r=this._private;return e===void 0?r.progress*r.duration:this.progress(e/r.duration)},"time"),progress:o(function(e){var r=this._private,n=r.playing;return e===void 0?r.progress:(n&&this.pause(),r.progress=e,r.started=!1,n&&this.play(),this)},"progress"),completed:o(function(){return this._private.progress===1},"completed"),reverse:o(function(){var e=this._private,r=e.playing;r&&this.pause(),e.progress=1-e.progress,e.started=!1;var n=o(function(h,f){var d=e[h];d!=null&&(e[h]=e[f],e[f]=d)},"swap");if(n("zoom","startZoom"),n("pan","startPan"),n("position","startPosition"),e.style)for(var i=0;i<e.style.length;i++){var a=e.style[i],s=a.name,l=e.startStyle[s];e.startStyle[s]=a,e.style[i]=l}return r&&this.play(),this},"reverse"),promise:o(function(e){var r=this._private,n;switch(e){case"frame":n=r.frames;break;default:case"complete":case"completed":n=r.completes}return new ey(function(i,a){n.push(function(){i()})})},"promise")});Up.complete=Up.completed;Up.run=Up.play;Up.running=Up.playing;VYe={animated:o(function(){return o(function(){var r=this,n=r.length!==void 0,i=n?r:[r],a=this._private.cy||this;if(!a.styleEnabled())return!1;var s=i[0];if(s)return s._private.animation.current.length>0},"animatedImpl")},"animated"),clearQueue:o(function(){return o(function(){var r=this,n=r.length!==void 0,i=n?r:[r],a=this._private.cy||this;if(!a.styleEnabled())return this;for(var s=0;s<i.length;s++){var l=i[s];l._private.animation.queue=[]}return this},"clearQueueImpl")},"clearQueue"),delay:o(function(){return o(function(r,n){var i=this._private.cy||this;return i.styleEnabled()?this.animate({delay:r,duration:r,complete:n}):this},"delayImpl")},"delay"),delayAnimation:o(function(){return o(function(r,n){var i=this._private.cy||this;return i.styleEnabled()?this.animation({delay:r,duration:r,complete:n}):this},"delayAnimationImpl")},"delayAnimation"),animation:o(function(){return o(function(r,n){var i=this,a=i.length!==void 0,s=a?i:[i],l=this._private.cy||this,u=!a,h=!u;if(!l.styleEnabled())return this;var f=l.style();r=rr({},r,n);var d=Object.keys(r).length===0;if(d)return new $P(s[0],r);switch(r.duration===void 0&&(r.duration=400),r.duration){case"slow":r.duration=600;break;case"fast":r.duration=200;break}if(h&&(r.style=f.getPropsList(r.style||r.css),r.css=void 0),h&&r.renderedPosition!=null){var p=r.renderedPosition,m=l.pan(),g=l.zoom();r.position=pme(p,g,m)}if(u&&r.panBy!=null){var y=r.panBy,v=l.pan();r.pan={x:v.x+y.x,y:v.y+y.y}}var x=r.center||r.centre;if(u&&x!=null){var b=l.getCenterPan(x.eles,r.zoom);b!=null&&(r.pan=b)}if(u&&r.fit!=null){var w=r.fit,C=l.getFitViewport(w.eles||w.boundingBox,w.padding);C!=null&&(r.pan=C.pan,r.zoom=C.zoom)}if(u&&Ur(r.zoom)){var T=l.getZoomedViewport(r.zoom);T!=null?(T.zoomed&&(r.zoom=T.zoom),T.panned&&(r.pan=T.pan)):r.zoom=null}return new $P(s[0],r)},"animationImpl")},"animation"),animate:o(function(){return o(function(r,n){var i=this,a=i.length!==void 0,s=a?i:[i],l=this._private.cy||this;if(!l.styleEnabled())return this;n&&(r=rr({},r,n));for(var u=0;u<s.length;u++){var h=s[u],f=h.animated()&&(r.queue===void 0||r.queue),d=h.animation(r,f?{queue:!0}:void 0);d.play()}return this},"animateImpl")},"animate"),stop:o(function(){return o(function(r,n){var i=this,a=i.length!==void 0,s=a?i:[i],l=this._private.cy||this;if(!l.styleEnabled())return this;for(var u=0;u<s.length;u++){for(var h=s[u],f=h._private,d=f.animation.current,p=0;p<d.length;p++){var m=d[p],g=m._private;n&&(g.duration=0)}r&&(f.animation.queue=[]),n||(f.animation.current=[])}return l.notify("draw"),this},"stopImpl")},"stop")},UYe=Array.isArray,OS=UYe,HYe=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,WYe=/^\w*$/;o(qYe,"isKey");YYe=qYe,XYe="[object AsyncFunction]",jYe="[object Function]",KYe="[object GeneratorFunction]",QYe="[object Proxy]";o(ZYe,"isFunction");JYe=ZYe,eXe=RS["__core-js_shared__"],EP=eXe,e0e=function(){var t=/[^.]+$/.exec(EP&&EP.keys&&EP.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}();o(tXe,"isMasked");rXe=tXe,nXe=Function.prototype,iXe=nXe.toString;o(aXe,"toSource");sXe=aXe,oXe=/[\\^$.*+?()[\]{}|]/g,lXe=/^\[object .+?Constructor\]$/,cXe=Function.prototype,uXe=Object.prototype,hXe=cXe.toString,fXe=uXe.hasOwnProperty,dXe=RegExp("^"+hXe.call(fXe).replace(oXe,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");o(pXe,"baseIsNative");mXe=pXe;o(gXe,"getValue$1");yXe=gXe;o(vXe,"getNative");lB=vXe,xXe=lB(Object,"create"),jb=xXe;o(bXe,"hashClear");wXe=bXe;o(TXe,"hashDelete");kXe=TXe,EXe="__lodash_hash_undefined__",SXe=Object.prototype,CXe=SXe.hasOwnProperty;o(AXe,"hashGet");_Xe=AXe,DXe=Object.prototype,LXe=DXe.hasOwnProperty;o(RXe,"hashHas");NXe=RXe,MXe="__lodash_hash_undefined__";o(IXe,"hashSet");OXe=IXe;o(ty,"Hash");ty.prototype.clear=wXe;ty.prototype.delete=kXe;ty.prototype.get=_Xe;ty.prototype.has=NXe;ty.prototype.set=OXe;t0e=ty;o(PXe,"listCacheClear");BXe=PXe;o(FXe,"eq");Lme=FXe;o($Xe,"assocIndexOf");PS=$Xe,zXe=Array.prototype,GXe=zXe.splice;o(VXe,"listCacheDelete");UXe=VXe;o(HXe,"listCacheGet");WXe=HXe;o(qXe,"listCacheHas");YXe=qXe;o(XXe,"listCacheSet");jXe=XXe;o(ry,"ListCache");ry.prototype.clear=BXe;ry.prototype.delete=UXe;ry.prototype.get=WXe;ry.prototype.has=YXe;ry.prototype.set=jXe;KXe=ry,QXe=lB(RS,"Map"),ZXe=QXe;o(JXe,"mapCacheClear");eje=JXe;o(tje,"isKeyable");rje=tje;o(nje,"getMapData");BS=nje;o(ije,"mapCacheDelete");aje=ije;o(sje,"mapCacheGet");oje=sje;o(lje,"mapCacheHas");cje=lje;o(uje,"mapCacheSet");hje=uje;o(ny,"MapCache");ny.prototype.clear=eje;ny.prototype.delete=aje;ny.prototype.get=oje;ny.prototype.has=cje;ny.prototype.set=hje;Rme=ny,fje="Expected a function";o(cB,"memoize");cB.Cache=Rme;dje=cB,pje=500;o(mje,"memoizeCapped");gje=mje,yje=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,vje=/\\(\\)?/g,xje=gje(function(t){var e=[];return t.charCodeAt(0)===46&&e.push(""),t.replace(yje,function(r,n,i,a){e.push(i?a.replace(vje,"$1"):n||r)}),e}),Nme=xje;o(bje,"arrayMap");Mme=bje,wje=1/0,r0e=j1?j1.prototype:void 0,n0e=r0e?r0e.toString:void 0;o(Ime,"baseToString");Tje=Ime;o(kje,"toString$1");Ome=kje;o(Eje,"castPath");Pme=Eje,Sje=1/0;o(Cje,"toKey");uB=Cje;o(Aje,"baseGet");_je=Aje;o(Dje,"get");Lje=Dje,Rje=function(){try{var t=lB(Object,"defineProperty");return t({},"",{}),t}catch{}}(),i0e=Rje;o(Nje,"baseAssignValue");Mje=Nje,Ije=Object.prototype,Oje=Ije.hasOwnProperty;o(Pje,"assignValue");Bje=Pje,Fje=9007199254740991,$je=/^(?:0|[1-9]\d*)$/;o(zje,"isIndex");Gje=zje;o(Vje,"baseSet");Uje=Vje;o(Hje,"set");Wje=Hje;o(qje,"copyArray");Yje=qje;o(Xje,"toPath");jje=Xje,Kje={data:o(function(e){var r={field:"data",bindingEvent:"data",allowBinding:!1,allowSetting:!1,allowGetting:!1,settingEvent:"data",settingTriggersEvent:!1,triggerFnName:"trigger",immutableKeys:{},updateStyle:!1,beforeGet:o(function(i){},"beforeGet"),beforeSet:o(function(i,a){},"beforeSet"),onSet:o(function(i){},"onSet"),canSet:o(function(i){return!0},"canSet")};return e=rr({},r,e),o(function(i,a){var s=e,l=this,u=l.length!==void 0,h=u?l:[l],f=u?l[0]:l;if(Zt(i)){var d=i.indexOf(".")!==-1,p=d&&jje(i);if(s.allowGetting&&a===void 0){var m;return f&&(s.beforeGet(f),p&&f._private[s.field][i]===void 0?m=Lje(f._private[s.field],p):m=f._private[s.field][i]),m}else if(s.allowSetting&&a!==void 0){var g=!s.immutableKeys[i];if(g){var y=X0e({},i,a);s.beforeSet(l,y);for(var v=0,x=h.length;v<x;v++){var b=h[v];s.canSet(b)&&(p&&f._private[s.field][i]===void 0?Wje(b._private[s.field],p,a):b._private[s.field][i]=a)}s.updateStyle&&l.updateStyle(),s.onSet(l),s.settingTriggersEvent&&l[s.triggerFnName](s.settingEvent)}}}else if(s.allowSetting&&Ur(i)){var w=i,C,T,E=Object.keys(w);s.beforeSet(l,w);for(var A=0;A<E.length;A++){C=E[A],T=w[C];var S=!s.immutableKeys[C];if(S)for(var _=0;_<h.length;_++){var I=h[_];s.canSet(I)&&(I._private[s.field][C]=T)}}s.updateStyle&&l.updateStyle(),s.onSet(l),s.settingTriggersEvent&&l[s.triggerFnName](s.settingEvent)}else if(s.allowBinding&&si(i)){var D=i;l.on(s.bindingEvent,D)}else if(s.allowGetting&&i===void 0){var k;return f&&(s.beforeGet(f),k=f._private[s.field]),k}return l},"dataImpl")},"data"),removeData:o(function(e){var r={field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!1,immutableKeys:{}};return e=rr({},r,e),o(function(i){var a=e,s=this,l=s.length!==void 0,u=l?s:[s];if(Zt(i)){for(var h=i.split(/\s+/),f=h.length,d=0;d<f;d++){var p=h[d];if(!Af(p)){var m=!a.immutableKeys[p];if(m)for(var g=0,y=u.length;g<y;g++)u[g]._private[a.field][p]=void 0}}a.triggerEvent&&s[a.triggerFnName](a.event)}else if(i===void 0){for(var v=0,x=u.length;v<x;v++)for(var b=u[v]._private[a.field],w=Object.keys(b),C=0;C<w.length;C++){var T=w[C],E=!a.immutableKeys[T];E&&(b[T]=void 0)}a.triggerEvent&&s[a.triggerFnName](a.event)}return s},"removeDataImpl")},"removeData")},Qje={eventAliasesOn:o(function(e){var r=e;r.addListener=r.listen=r.bind=r.on,r.unlisten=r.unbind=r.off=r.removeListener,r.trigger=r.emit,r.pon=r.promiseOn=function(n,i){var a=this,s=Array.prototype.slice.call(arguments,0);return new ey(function(l,u){var h=o(function(m){a.off.apply(a,d),l(m)},"callback"),f=s.concat([h]),d=f.concat([]);a.on.apply(a,f)})}},"eventAliasesOn")},cn={};[VYe,Kje,Qje].forEach(function(t){rr(cn,t)});Zje={animate:cn.animate(),animation:cn.animation(),animated:cn.animated(),clearQueue:cn.clearQueue(),delay:cn.delay(),delayAnimation:cn.delayAnimation(),stop:cn.stop()},hS={classes:o(function(e){var r=this;if(e===void 0){var n=[];return r[0]._private.classes.forEach(function(g){return n.push(g)}),n}else En(e)||(e=(e||"").match(/\S+/g)||[]);for(var i=[],a=new J1(e),s=0;s<r.length;s++){for(var l=r[s],u=l._private,h=u.classes,f=!1,d=0;d<e.length;d++){var p=e[d],m=h.has(p);if(!m){f=!0;break}}f||(f=h.size!==e.length),f&&(u.classes=a,i.push(l))}return i.length>0&&this.spawn(i).updateStyle().emit("class"),r},"classes"),addClass:o(function(e){return this.toggleClass(e,!0)},"addClass"),hasClass:o(function(e){var r=this[0];return r!=null&&r._private.classes.has(e)},"hasClass"),toggleClass:o(function(e,r){En(e)||(e=e.match(/\S+/g)||[]);for(var n=this,i=r===void 0,a=[],s=0,l=n.length;s<l;s++)for(var u=n[s],h=u._private.classes,f=!1,d=0;d<e.length;d++){var p=e[d],m=h.has(p),g=!1;r||i&&!m?(h.add(p),g=!0):(!r||i&&m)&&(h.delete(p),g=!0),!f&&g&&(a.push(u),f=!0)}return a.length>0&&this.spawn(a).updateStyle().emit("class"),n},"toggleClass"),removeClass:o(function(e){return this.toggleClass(e,!1)},"removeClass"),flashClass:o(function(e,r){var n=this;if(r==null)r=250;else if(r===0)return n;return n.addClass(e),setTimeout(function(){n.removeClass(e)},r),n},"flashClass")};hS.className=hS.classNames=hS.classes;Vr={metaChar:"[\\!\\\"\\#\\$\\%\\&\\'\\(\\)\\*\\+\\,\\.\\/\\:\\;\\<\\=\\>\\?\\@\\[\\]\\^\\`\\{\\|\\}\\~]",comparatorOp:"=|\\!=|>|>=|<|<=|\\$=|\\^=|\\*=",boolOp:"\\?|\\!|\\^",string:`"(?:\\\\"|[^"])*"|'(?:\\\\'|[^'])*'`,number:Hi,meta:"degree|indegree|outdegree",separator:"\\s*,\\s*",descendant:"\\s+",child:"\\s+>\\s+",subject:"\\$",group:"node|edge|\\*",directedEdge:"\\s+->\\s+",undirectedEdge:"\\s+<->\\s+"};Vr.variable="(?:[\\w-.]|(?:\\\\"+Vr.metaChar+"))+";Vr.className="(?:[\\w-]|(?:\\\\"+Vr.metaChar+"))+";Vr.value=Vr.string+"|"+Vr.number;Vr.id=Vr.variable;(function(){var t,e,r;for(t=Vr.comparatorOp.split("|"),r=0;r<t.length;r++)e=t[r],Vr.comparatorOp+="|@"+e;for(t=Vr.comparatorOp.split("|"),r=0;r<t.length;r++)e=t[r],!(e.indexOf("!")>=0)&&e!=="="&&(Vr.comparatorOp+="|\\!"+e)})();mn=o(function(){return{checks:[]}},"newQuery"),$t={GROUP:0,COLLECTION:1,FILTER:2,DATA_COMPARE:3,DATA_EXIST:4,DATA_BOOL:5,META_COMPARE:6,STATE:7,ID:8,CLASS:9,UNDIRECTED_EDGE:10,DIRECTED_EDGE:11,NODE_SOURCE:12,NODE_TARGET:13,NODE_NEIGHBOR:14,CHILD:15,DESCENDANT:16,PARENT:17,ANCESTOR:18,COMPOUND_SPLIT:19,TRUE:20},zP=[{selector:":selected",matches:o(function(e){return e.selected()},"matches")},{selector:":unselected",matches:o(function(e){return!e.selected()},"matches")},{selector:":selectable",matches:o(function(e){return e.selectable()},"matches")},{selector:":unselectable",matches:o(function(e){return!e.selectable()},"matches")},{selector:":locked",matches:o(function(e){return e.locked()},"matches")},{selector:":unlocked",matches:o(function(e){return!e.locked()},"matches")},{selector:":visible",matches:o(function(e){return e.visible()},"matches")},{selector:":hidden",matches:o(function(e){return!e.visible()},"matches")},{selector:":transparent",matches:o(function(e){return e.transparent()},"matches")},{selector:":grabbed",matches:o(function(e){return e.grabbed()},"matches")},{selector:":free",matches:o(function(e){return!e.grabbed()},"matches")},{selector:":removed",matches:o(function(e){return e.removed()},"matches")},{selector:":inside",matches:o(function(e){return!e.removed()},"matches")},{selector:":grabbable",matches:o(function(e){return e.grabbable()},"matches")},{selector:":ungrabbable",matches:o(function(e){return!e.grabbable()},"matches")},{selector:":animated",matches:o(function(e){return e.animated()},"matches")},{selector:":unanimated",matches:o(function(e){return!e.animated()},"matches")},{selector:":parent",matches:o(function(e){return e.isParent()},"matches")},{selector:":childless",matches:o(function(e){return e.isChildless()},"matches")},{selector:":child",matches:o(function(e){return e.isChild()},"matches")},{selector:":orphan",matches:o(function(e){return e.isOrphan()},"matches")},{selector:":nonorphan",matches:o(function(e){return e.isChild()},"matches")},{selector:":compound",matches:o(function(e){return e.isNode()?e.isParent():e.source().isParent()||e.target().isParent()},"matches")},{selector:":loop",matches:o(function(e){return e.isLoop()},"matches")},{selector:":simple",matches:o(function(e){return e.isSimple()},"matches")},{selector:":active",matches:o(function(e){return e.active()},"matches")},{selector:":inactive",matches:o(function(e){return!e.active()},"matches")},{selector:":backgrounding",matches:o(function(e){return e.backgrounding()},"matches")},{selector:":nonbackgrounding",matches:o(function(e){return!e.backgrounding()},"matches")}].sort(function(t,e){return hWe(t.selector,e.selector)}),Jje=function(){for(var t={},e,r=0;r<zP.length;r++)e=zP[r],t[e.selector]=e.matches;return t}(),eKe=o(function(e,r){return Jje[e](r)},"stateSelectorMatches"),tKe="("+zP.map(function(t){return t.selector}).join("|")+")",B1=o(function(e){return e.replace(new RegExp("\\\\("+Vr.metaChar+")","g"),function(r,n){return n})},"cleanMetaChars"),Tf=o(function(e,r,n){e[e.length-1]=n},"replaceLastQuery"),GP=[{name:"group",query:!0,regex:"("+Vr.group+")",populate:o(function(e,r,n){var i=_i(n,1),a=i[0];r.checks.push({type:$t.GROUP,value:a==="*"?a:a+"s"})},"populate")},{name:"state",query:!0,regex:tKe,populate:o(function(e,r,n){var i=_i(n,1),a=i[0];r.checks.push({type:$t.STATE,value:a})},"populate")},{name:"id",query:!0,regex:"\\#("+Vr.id+")",populate:o(function(e,r,n){var i=_i(n,1),a=i[0];r.checks.push({type:$t.ID,value:B1(a)})},"populate")},{name:"className",query:!0,regex:"\\.("+Vr.className+")",populate:o(function(e,r,n){var i=_i(n,1),a=i[0];r.checks.push({type:$t.CLASS,value:B1(a)})},"populate")},{name:"dataExists",query:!0,regex:"\\[\\s*("+Vr.variable+")\\s*\\]",populate:o(function(e,r,n){var i=_i(n,1),a=i[0];r.checks.push({type:$t.DATA_EXIST,field:B1(a)})},"populate")},{name:"dataCompare",query:!0,regex:"\\[\\s*("+Vr.variable+")\\s*("+Vr.comparatorOp+")\\s*("+Vr.value+")\\s*\\]",populate:o(function(e,r,n){var i=_i(n,3),a=i[0],s=i[1],l=i[2],u=new RegExp("^"+Vr.string+"$").exec(l)!=null;u?l=l.substring(1,l.length-1):l=parseFloat(l),r.checks.push({type:$t.DATA_COMPARE,field:B1(a),operator:s,value:l})},"populate")},{name:"dataBool",query:!0,regex:"\\[\\s*("+Vr.boolOp+")\\s*("+Vr.variable+")\\s*\\]",populate:o(function(e,r,n){var i=_i(n,2),a=i[0],s=i[1];r.checks.push({type:$t.DATA_BOOL,field:B1(s),operator:a})},"populate")},{name:"metaCompare",query:!0,regex:"\\[\\[\\s*("+Vr.meta+")\\s*("+Vr.comparatorOp+")\\s*("+Vr.number+")\\s*\\]\\]",populate:o(function(e,r,n){var i=_i(n,3),a=i[0],s=i[1],l=i[2];r.checks.push({type:$t.META_COMPARE,field:B1(a),operator:s,value:parseFloat(l)})},"populate")},{name:"nextQuery",separator:!0,regex:Vr.separator,populate:o(function(e,r){var n=e.currentSubject,i=e.edgeCount,a=e.compoundCount,s=e[e.length-1];n!=null&&(s.subject=n,e.currentSubject=null),s.edgeCount=i,s.compoundCount=a,e.edgeCount=0,e.compoundCount=0;var l=e[e.length++]=mn();return l},"populate")},{name:"directedEdge",separator:!0,regex:Vr.directedEdge,populate:o(function(e,r){if(e.currentSubject==null){var n=mn(),i=r,a=mn();return n.checks.push({type:$t.DIRECTED_EDGE,source:i,target:a}),Tf(e,r,n),e.edgeCount++,a}else{var s=mn(),l=r,u=mn();return s.checks.push({type:$t.NODE_SOURCE,source:l,target:u}),Tf(e,r,s),e.edgeCount++,u}},"populate")},{name:"undirectedEdge",separator:!0,regex:Vr.undirectedEdge,populate:o(function(e,r){if(e.currentSubject==null){var n=mn(),i=r,a=mn();return n.checks.push({type:$t.UNDIRECTED_EDGE,nodes:[i,a]}),Tf(e,r,n),e.edgeCount++,a}else{var s=mn(),l=r,u=mn();return s.checks.push({type:$t.NODE_NEIGHBOR,node:l,neighbor:u}),Tf(e,r,s),u}},"populate")},{name:"child",separator:!0,regex:Vr.child,populate:o(function(e,r){if(e.currentSubject==null){var n=mn(),i=mn(),a=e[e.length-1];return n.checks.push({type:$t.CHILD,parent:a,child:i}),Tf(e,r,n),e.compoundCount++,i}else if(e.currentSubject===r){var s=mn(),l=e[e.length-1],u=mn(),h=mn(),f=mn(),d=mn();return s.checks.push({type:$t.COMPOUND_SPLIT,left:l,right:u,subject:h}),h.checks=r.checks,r.checks=[{type:$t.TRUE}],d.checks.push({type:$t.TRUE}),u.checks.push({type:$t.PARENT,parent:d,child:f}),Tf(e,l,s),e.currentSubject=h,e.compoundCount++,f}else{var p=mn(),m=mn(),g=[{type:$t.PARENT,parent:p,child:m}];return p.checks=r.checks,r.checks=g,e.compoundCount++,m}},"populate")},{name:"descendant",separator:!0,regex:Vr.descendant,populate:o(function(e,r){if(e.currentSubject==null){var n=mn(),i=mn(),a=e[e.length-1];return n.checks.push({type:$t.DESCENDANT,ancestor:a,descendant:i}),Tf(e,r,n),e.compoundCount++,i}else if(e.currentSubject===r){var s=mn(),l=e[e.length-1],u=mn(),h=mn(),f=mn(),d=mn();return s.checks.push({type:$t.COMPOUND_SPLIT,left:l,right:u,subject:h}),h.checks=r.checks,r.checks=[{type:$t.TRUE}],d.checks.push({type:$t.TRUE}),u.checks.push({type:$t.ANCESTOR,ancestor:d,descendant:f}),Tf(e,l,s),e.currentSubject=h,e.compoundCount++,f}else{var p=mn(),m=mn(),g=[{type:$t.ANCESTOR,ancestor:p,descendant:m}];return p.checks=r.checks,r.checks=g,e.compoundCount++,m}},"populate")},{name:"subject",modifier:!0,regex:Vr.subject,populate:o(function(e,r){if(e.currentSubject!=null&&e.currentSubject!==r)return un("Redefinition of subject in selector `"+e.toString()+"`"),!1;e.currentSubject=r;var n=e[e.length-1],i=n.checks[0],a=i==null?null:i.type;a===$t.DIRECTED_EDGE?i.type=$t.NODE_TARGET:a===$t.UNDIRECTED_EDGE&&(i.type=$t.NODE_NEIGHBOR,i.node=i.nodes[1],i.neighbor=i.nodes[0],i.nodes=null)},"populate")}];GP.forEach(function(t){return t.regexObj=new RegExp("^"+t.regex)});rKe=o(function(e){for(var r,n,i,a=0;a<GP.length;a++){var s=GP[a],l=s.name,u=e.match(s.regexObj);if(u!=null){n=u,r=s,i=l;var h=u[0];e=e.substring(h.length);break}}return{expr:r,match:n,name:i,remaining:e}},"consumeExpr"),nKe=o(function(e){var r=e.match(/^\s+/);if(r){var n=r[0];e=e.substring(n.length)}return e},"consumeWhitespace"),iKe=o(function(e){var r=this,n=r.inputText=e,i=r[0]=mn();for(r.length=1,n=nKe(n);;){var a=rKe(n);if(a.expr==null)return un("The selector `"+e+"`is invalid"),!1;var s=a.match.slice(1),l=a.expr.populate(r,i,s);if(l===!1)return!1;if(l!=null&&(i=l),n=a.remaining,n.match(/^\s*$/))break}var u=r[r.length-1];r.currentSubject!=null&&(u.subject=r.currentSubject),u.edgeCount=r.edgeCount,u.compoundCount=r.compoundCount;for(var h=0;h<r.length;h++){var f=r[h];if(f.compoundCount>0&&f.edgeCount>0)return un("The selector `"+e+"` is invalid because it uses both a compound selector and an edge selector"),!1;if(f.edgeCount>1)return un("The selector `"+e+"` is invalid because it uses multiple edge selectors"),!1;f.edgeCount===1&&un("The selector `"+e+"` is deprecated.  Edge selectors do not take effect on changes to source and target nodes after an edge is added, for performance reasons.  Use a class or data selector on edges instead, updating the class or data of an edge when your app detects a change in source or target nodes.")}return!0},"parse"),aKe=o(function(){if(this.toStringCache!=null)return this.toStringCache;for(var e=o(function(f){return f??""},"clean"),r=o(function(f){return Zt(f)?'"'+f+'"':e(f)},"cleanVal"),n=o(function(f){return" "+f+" "},"space"),i=o(function(f,d){var p=f.type,m=f.value;switch(p){case $t.GROUP:{var g=e(m);return g.substring(0,g.length-1)}case $t.DATA_COMPARE:{var y=f.field,v=f.operator;return"["+y+n(e(v))+r(m)+"]"}case $t.DATA_BOOL:{var x=f.operator,b=f.field;return"["+e(x)+b+"]"}case $t.DATA_EXIST:{var w=f.field;return"["+w+"]"}case $t.META_COMPARE:{var C=f.operator,T=f.field;return"[["+T+n(e(C))+r(m)+"]]"}case $t.STATE:return m;case $t.ID:return"#"+m;case $t.CLASS:return"."+m;case $t.PARENT:case $t.CHILD:return a(f.parent,d)+n(">")+a(f.child,d);case $t.ANCESTOR:case $t.DESCENDANT:return a(f.ancestor,d)+" "+a(f.descendant,d);case $t.COMPOUND_SPLIT:{var E=a(f.left,d),A=a(f.subject,d),S=a(f.right,d);return E+(E.length>0?" ":"")+A+S}case $t.TRUE:return""}},"checkToString"),a=o(function(f,d){return f.checks.reduce(function(p,m,g){return p+(d===f&&g===0?"$":"")+i(m,d)},"")},"queryToString"),s="",l=0;l<this.length;l++){var u=this[l];s+=a(u,u.subject),this.length>1&&l<this.length-1&&(s+=", ")}return this.toStringCache=s,s},"toString"),sKe={parse:iKe,toString:aKe},Bme=o(function(e,r,n){var i,a=Zt(e),s=Ct(e),l=Zt(n),u,h,f=!1,d=!1,p=!1;switch(r.indexOf("!")>=0&&(r=r.replace("!",""),d=!0),r.indexOf("@")>=0&&(r=r.replace("@",""),f=!0),(a||l||f)&&(u=!a&&!s?"":""+e,h=""+n),f&&(e=u=u.toLowerCase(),n=h=h.toLowerCase()),r){case"*=":i=u.indexOf(h)>=0;break;case"$=":i=u.indexOf(h,u.length-h.length)>=0;break;case"^=":i=u.indexOf(h)===0;break;case"=":i=e===n;break;case">":p=!0,i=e>n;break;case">=":p=!0,i=e>=n;break;case"<":p=!0,i=e<n;break;case"<=":p=!0,i=e<=n;break;default:i=!1;break}return d&&(e!=null||!p)&&(i=!i),i},"valCmp"),oKe=o(function(e,r){switch(r){case"?":return!!e;case"!":return!e;case"^":return e===void 0}},"boolCmp"),lKe=o(function(e){return e!==void 0},"existCmp"),hB=o(function(e,r){return e.data(r)},"data"),cKe=o(function(e,r){return e[r]()},"meta"),fi=[],zn=o(function(e,r){return e.checks.every(function(n){return fi[n.type](n,r)})},"matches");fi[$t.GROUP]=function(t,e){var r=t.value;return r==="*"||r===e.group()};fi[$t.STATE]=function(t,e){var r=t.value;return eKe(r,e)};fi[$t.ID]=function(t,e){var r=t.value;return e.id()===r};fi[$t.CLASS]=function(t,e){var r=t.value;return e.hasClass(r)};fi[$t.META_COMPARE]=function(t,e){var r=t.field,n=t.operator,i=t.value;return Bme(cKe(e,r),n,i)};fi[$t.DATA_COMPARE]=function(t,e){var r=t.field,n=t.operator,i=t.value;return Bme(hB(e,r),n,i)};fi[$t.DATA_BOOL]=function(t,e){var r=t.field,n=t.operator;return oKe(hB(e,r),n)};fi[$t.DATA_EXIST]=function(t,e){var r=t.field;return t.operator,lKe(hB(e,r))};fi[$t.UNDIRECTED_EDGE]=function(t,e){var r=t.nodes[0],n=t.nodes[1],i=e.source(),a=e.target();return zn(r,i)&&zn(n,a)||zn(n,i)&&zn(r,a)};fi[$t.NODE_NEIGHBOR]=function(t,e){return zn(t.node,e)&&e.neighborhood().some(function(r){return r.isNode()&&zn(t.neighbor,r)})};fi[$t.DIRECTED_EDGE]=function(t,e){return zn(t.source,e.source())&&zn(t.target,e.target())};fi[$t.NODE_SOURCE]=function(t,e){return zn(t.source,e)&&e.outgoers().some(function(r){return r.isNode()&&zn(t.target,r)})};fi[$t.NODE_TARGET]=function(t,e){return zn(t.target,e)&&e.incomers().some(function(r){return r.isNode()&&zn(t.source,r)})};fi[$t.CHILD]=function(t,e){return zn(t.child,e)&&zn(t.parent,e.parent())};fi[$t.PARENT]=function(t,e){return zn(t.parent,e)&&e.children().some(function(r){return zn(t.child,r)})};fi[$t.DESCENDANT]=function(t,e){return zn(t.descendant,e)&&e.ancestors().some(function(r){return zn(t.ancestor,r)})};fi[$t.ANCESTOR]=function(t,e){return zn(t.ancestor,e)&&e.descendants().some(function(r){return zn(t.descendant,r)})};fi[$t.COMPOUND_SPLIT]=function(t,e){return zn(t.subject,e)&&zn(t.left,e)&&zn(t.right,e)};fi[$t.TRUE]=function(){return!0};fi[$t.COLLECTION]=function(t,e){var r=t.value;return r.has(e)};fi[$t.FILTER]=function(t,e){var r=t.value;return r(e)};uKe=o(function(e){var r=this;if(r.length===1&&r[0].checks.length===1&&r[0].checks[0].type===$t.ID)return e.getElementById(r[0].checks[0].value).collection();var n=o(function(a){for(var s=0;s<r.length;s++){var l=r[s];if(zn(l,a))return!0}return!1},"selectorFunction");return r.text()==null&&(n=o(function(){return!0},"selectorFunction")),e.filter(n)},"filter"),hKe=o(function(e){for(var r=this,n=0;n<r.length;n++){var i=r[n];if(zn(i,e))return!0}return!1},"matches"),fKe={matches:hKe,filter:uKe},Lf=o(function(e){this.inputText=e,this.currentSubject=null,this.compoundCount=0,this.edgeCount=0,this.length=0,e==null||Zt(e)&&e.match(/^\s*$/)||(go(e)?this.addQuery({checks:[{type:$t.COLLECTION,value:e.collection()}]}):si(e)?this.addQuery({checks:[{type:$t.FILTER,value:e}]}):Zt(e)?this.parse(e)||(this.invalid=!0):ai("A selector must be created from a string; found "))},"Selector"),Rf=Lf.prototype;[sKe,fKe].forEach(function(t){return rr(Rf,t)});Rf.text=function(){return this.inputText};Rf.size=function(){return this.length};Rf.eq=function(t){return this[t]};Rf.sameText=function(t){return!this.invalid&&!t.invalid&&this.text()===t.text()};Rf.addQuery=function(t){this[this.length++]=t};Rf.selector=Rf.toString;Sf={allAre:o(function(e){var r=new Lf(e);return this.every(function(n){return r.matches(n)})},"allAre"),is:o(function(e){var r=new Lf(e);return this.some(function(n){return r.matches(n)})},"is"),some:o(function(e,r){for(var n=0;n<this.length;n++){var i=r?e.apply(r,[this[n],n,this]):e(this[n],n,this);if(i)return!0}return!1},"some"),every:o(function(e,r){for(var n=0;n<this.length;n++){var i=r?e.apply(r,[this[n],n,this]):e(this[n],n,this);if(!i)return!1}return!0},"every"),same:o(function(e){if(this===e)return!0;e=this.cy().collection(e);var r=this.length,n=e.length;return r!==n?!1:r===1?this[0]===e[0]:this.every(function(i){return e.hasElementWithId(i.id())})},"same"),anySame:o(function(e){return e=this.cy().collection(e),this.some(function(r){return e.hasElementWithId(r.id())})},"anySame"),allAreNeighbors:o(function(e){e=this.cy().collection(e);var r=this.neighborhood();return e.every(function(n){return r.hasElementWithId(n.id())})},"allAreNeighbors"),contains:o(function(e){e=this.cy().collection(e);var r=this;return e.every(function(n){return r.hasElementWithId(n.id())})},"contains")};Sf.allAreNeighbours=Sf.allAreNeighbors;Sf.has=Sf.contains;Sf.equal=Sf.equals=Sf.same;tl=o(function(e,r){return o(function(i,a,s,l){var u=i,h=this,f;if(u==null?f="":go(u)&&u.length===1&&(f=u.id()),h.length===1&&f){var d=h[0]._private,p=d.traversalCache=d.traversalCache||{},m=p[r]=p[r]||[],g=_f(f),y=m[g];return y||(m[g]=e.call(h,i,a,s,l))}else return e.call(h,i,a,s,l)},"traversalCache")},"cache"),Z1={parent:o(function(e){var r=[];if(this.length===1){var n=this[0]._private.parent;if(n)return n}for(var i=0;i<this.length;i++){var a=this[i],s=a._private.parent;s&&r.push(s)}return this.spawn(r,!0).filter(e)},"parent"),parents:o(function(e){for(var r=[],n=this.parent();n.nonempty();){for(var i=0;i<n.length;i++){var a=n[i];r.push(a)}n=n.parent()}return this.spawn(r,!0).filter(e)},"parents"),commonAncestors:o(function(e){for(var r,n=0;n<this.length;n++){var i=this[n],a=i.parents();r=r||a,r=r.intersect(a)}return r.filter(e)},"commonAncestors"),orphans:o(function(e){return this.stdFilter(function(r){return r.isOrphan()}).filter(e)},"orphans"),nonorphans:o(function(e){return this.stdFilter(function(r){return r.isChild()}).filter(e)},"nonorphans"),children:tl(function(t){for(var e=[],r=0;r<this.length;r++)for(var n=this[r],i=n._private.children,a=0;a<i.length;a++)e.push(i[a]);return this.spawn(e,!0).filter(t)},"children"),siblings:o(function(e){return this.parent().children().not(this).filter(e)},"siblings"),isParent:o(function(){var e=this[0];if(e)return e.isNode()&&e._private.children.length!==0},"isParent"),isChildless:o(function(){var e=this[0];if(e)return e.isNode()&&e._private.children.length===0},"isChildless"),isChild:o(function(){var e=this[0];if(e)return e.isNode()&&e._private.parent!=null},"isChild"),isOrphan:o(function(){var e=this[0];if(e)return e.isNode()&&e._private.parent==null},"isOrphan"),descendants:o(function(e){var r=[];function n(i){for(var a=0;a<i.length;a++){var s=i[a];r.push(s),s.children().nonempty()&&n(s.children())}}return o(n,"add"),n(this.children()),this.spawn(r,!0).filter(e)},"descendants")};o(fB,"forEachCompound");o(Fme,"addChildren");Z1.forEachDown=function(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return fB(this,t,e,Fme)};o($me,"addParent");Z1.forEachUp=function(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return fB(this,t,e,$me)};o(dKe,"addParentAndChildren");Z1.forEachUpAndDown=function(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return fB(this,t,e,dKe)};Z1.ancestors=Z1.parents;Kb=zme={data:cn.data({field:"data",bindingEvent:"data",allowBinding:!0,allowSetting:!0,settingEvent:"data",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,immutableKeys:{id:!0,source:!0,target:!0,parent:!0},updateStyle:!0}),removeData:cn.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0,immutableKeys:{id:!0,source:!0,target:!0,parent:!0},updateStyle:!0}),scratch:cn.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeScratch:cn.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0}),rscratch:cn.data({field:"rscratch",allowBinding:!1,allowSetting:!0,settingTriggersEvent:!1,allowGetting:!0}),removeRscratch:cn.removeData({field:"rscratch",triggerEvent:!1}),id:o(function(){var e=this[0];if(e)return e._private.data.id},"id")};Kb.attr=Kb.data;Kb.removeAttr=Kb.removeData;pKe=zme,FS={};o(SP,"defineDegreeFunction");rr(FS,{degree:SP(function(t,e){return e.source().same(e.target())?2:1}),indegree:SP(function(t,e){return e.target().same(t)?1:0}),outdegree:SP(function(t,e){return e.source().same(t)?1:0})});o(F1,"defineDegreeBoundsFunction");rr(FS,{minDegree:F1("degree",function(t,e){return t<e}),maxDegree:F1("degree",function(t,e){return t>e}),minIndegree:F1("indegree",function(t,e){return t<e}),maxIndegree:F1("indegree",function(t,e){return t>e}),minOutdegree:F1("outdegree",function(t,e){return t<e}),maxOutdegree:F1("outdegree",function(t,e){return t>e})});rr(FS,{totalDegree:o(function(e){for(var r=0,n=this.nodes(),i=0;i<n.length;i++)r+=n[i].degree(e);return r},"totalDegree")});Vme=o(function(e,r,n){for(var i=0;i<e.length;i++){var a=e[i];if(!a.locked()){var s=a._private.position,l={x:r.x!=null?r.x-s.x:0,y:r.y!=null?r.y-s.y:0};a.isParent()&&!(l.x===0&&l.y===0)&&a.children().shift(l,n),a.dirtyBoundingBoxCache()}}},"beforePositionSet"),a0e={field:"position",bindingEvent:"position",allowBinding:!0,allowSetting:!0,settingEvent:"position",settingTriggersEvent:!0,triggerFnName:"emitAndNotify",allowGetting:!0,validKeys:["x","y"],beforeGet:o(function(e){e.updateCompoundBounds()},"beforeGet"),beforeSet:o(function(e,r){Vme(e,r,!1)},"beforeSet"),onSet:o(function(e){e.dirtyCompoundBoundsCache()},"onSet"),canSet:o(function(e){return!e.locked()},"canSet")};Vl=Gme={position:cn.data(a0e),silentPosition:cn.data(rr({},a0e,{allowBinding:!1,allowSetting:!0,settingTriggersEvent:!1,allowGetting:!1,beforeSet:o(function(e,r){Vme(e,r,!0)},"beforeSet"),onSet:o(function(e){e.dirtyCompoundBoundsCache()},"onSet")})),positions:o(function(e,r){if(Ur(e))r?this.silentPosition(e):this.position(e);else if(si(e)){var n=e,i=this.cy();i.startBatch();for(var a=0;a<this.length;a++){var s=this[a],l=void 0;(l=n(s,a))&&(r?s.silentPosition(l):s.position(l))}i.endBatch()}return this},"positions"),silentPositions:o(function(e){return this.positions(e,!0)},"silentPositions"),shift:o(function(e,r,n){var i;if(Ur(e)?(i={x:Ct(e.x)?e.x:0,y:Ct(e.y)?e.y:0},n=r):Zt(e)&&Ct(r)&&(i={x:0,y:0},i[e]=r),i!=null){var a=this.cy();a.startBatch();for(var s=0;s<this.length;s++){var l=this[s];if(!(a.hasCompoundNodes()&&l.isChild()&&l.ancestors().anySame(this))){var u=l.position(),h={x:u.x+i.x,y:u.y+i.y};n?l.silentPosition(h):l.position(h)}}a.endBatch()}return this},"shift"),silentShift:o(function(e,r){return Ur(e)?this.shift(e,!0):Zt(e)&&Ct(r)&&this.shift(e,r,!0),this},"silentShift"),renderedPosition:o(function(e,r){var n=this[0],i=this.cy(),a=i.zoom(),s=i.pan(),l=Ur(e)?e:void 0,u=l!==void 0||r!==void 0&&Zt(e);if(n&&n.isNode())if(u)for(var h=0;h<this.length;h++){var f=this[h];r!==void 0?f.position(e,(r-s[e])/a):l!==void 0&&f.position(pme(l,a,s))}else{var d=n.position();return l=MS(d,a,s),e===void 0?l:l[e]}else if(!u)return;return this},"renderedPosition"),relativePosition:o(function(e,r){var n=this[0],i=this.cy(),a=Ur(e)?e:void 0,s=a!==void 0||r!==void 0&&Zt(e),l=i.hasCompoundNodes();if(n&&n.isNode())if(s)for(var u=0;u<this.length;u++){var h=this[u],f=l?h.parent():null,d=f&&f.length>0,p=d;d&&(f=f[0]);var m=p?f.position():{x:0,y:0};r!==void 0?h.position(e,r+m[e]):a!==void 0&&h.position({x:a.x+m.x,y:a.y+m.y})}else{var g=n.position(),y=l?n.parent():null,v=y&&y.length>0,x=v;v&&(y=y[0]);var b=x?y.position():{x:0,y:0};return a={x:g.x-b.x,y:g.y-b.y},e===void 0?a:a[e]}else if(!s)return;return this},"relativePosition")};Vl.modelPosition=Vl.point=Vl.position;Vl.modelPositions=Vl.points=Vl.positions;Vl.renderedPoint=Vl.renderedPosition;Vl.relativePoint=Vl.relativePosition;mKe=Gme;X1=Of={};Of.renderedBoundingBox=function(t){var e=this.boundingBox(t),r=this.cy(),n=r.zoom(),i=r.pan(),a=e.x1*n+i.x,s=e.x2*n+i.x,l=e.y1*n+i.y,u=e.y2*n+i.y;return{x1:a,x2:s,y1:l,y2:u,w:s-a,h:u-l}};Of.dirtyCompoundBoundsCache=function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,e=this.cy();return!e.styleEnabled()||!e.hasCompoundNodes()?this:(this.forEachUp(function(r){if(r.isParent()){var n=r._private;n.compoundBoundsClean=!1,n.bbCache=null,t||r.emitAndNotify("bounds")}}),this)};Of.updateCompoundBounds=function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,e=this.cy();if(!e.styleEnabled()||!e.hasCompoundNodes())return this;if(!t&&e.batching())return this;function r(s){if(!s.isParent())return;var l=s._private,u=s.children(),h=s.pstyle("compound-sizing-wrt-labels").value==="include",f={width:{val:s.pstyle("min-width").pfValue,left:s.pstyle("min-width-bias-left"),right:s.pstyle("min-width-bias-right")},height:{val:s.pstyle("min-height").pfValue,top:s.pstyle("min-height-bias-top"),bottom:s.pstyle("min-height-bias-bottom")}},d=u.boundingBox({includeLabels:h,includeOverlays:!1,useCache:!1}),p=l.position;(d.w===0||d.h===0)&&(d={w:s.pstyle("width").pfValue,h:s.pstyle("height").pfValue},d.x1=p.x-d.w/2,d.x2=p.x+d.w/2,d.y1=p.y-d.h/2,d.y2=p.y+d.h/2);function m(_,I,D){var k=0,L=0,R=I+D;return _>0&&R>0&&(k=I/R*_,L=D/R*_),{biasDiff:k,biasComplementDiff:L}}o(m,"computeBiasValues");function g(_,I,D,k){if(D.units==="%")switch(k){case"width":return _>0?D.pfValue*_:0;case"height":return I>0?D.pfValue*I:0;case"average":return _>0&&I>0?D.pfValue*(_+I)/2:0;case"min":return _>0&&I>0?_>I?D.pfValue*I:D.pfValue*_:0;case"max":return _>0&&I>0?_>I?D.pfValue*_:D.pfValue*I:0;default:return 0}else return D.units==="px"?D.pfValue:0}o(g,"computePaddingValues");var y=f.width.left.value;f.width.left.units==="px"&&f.width.val>0&&(y=y*100/f.width.val);var v=f.width.right.value;f.width.right.units==="px"&&f.width.val>0&&(v=v*100/f.width.val);var x=f.height.top.value;f.height.top.units==="px"&&f.height.val>0&&(x=x*100/f.height.val);var b=f.height.bottom.value;f.height.bottom.units==="px"&&f.height.val>0&&(b=b*100/f.height.val);var w=m(f.width.val-d.w,y,v),C=w.biasDiff,T=w.biasComplementDiff,E=m(f.height.val-d.h,x,b),A=E.biasDiff,S=E.biasComplementDiff;l.autoPadding=g(d.w,d.h,s.pstyle("padding"),s.pstyle("padding-relative-to").value),l.autoWidth=Math.max(d.w,f.width.val),p.x=(-C+d.x1+d.x2+T)/2,l.autoHeight=Math.max(d.h,f.height.val),p.y=(-A+d.y1+d.y2+S)/2}o(r,"update");for(var n=0;n<this.length;n++){var i=this[n],a=i._private;(!a.compoundBoundsClean||t)&&(r(i),e.batching()||(a.compoundBoundsClean=!0))}return this};el=o(function(e){return e===1/0||e===-1/0?0:e},"noninf"),zl=o(function(e,r,n,i,a){i-r===0||a-n===0||r==null||n==null||i==null||a==null||(e.x1=r<e.x1?r:e.x1,e.x2=i>e.x2?i:e.x2,e.y1=n<e.y1?n:e.y1,e.y2=a>e.y2?a:e.y2,e.w=e.x2-e.x1,e.h=e.y2-e.y1)},"updateBounds"),Pp=o(function(e,r){return r==null?e:zl(e,r.x1,r.y1,r.x2,r.y2)},"updateBoundsFromBox"),Db=o(function(e,r,n){return Gl(e,r,n)},"prefixedProperty"),tS=o(function(e,r,n){if(!r.cy().headless()){var i=r._private,a=i.rstyle,s=a.arrowWidth/2,l=r.pstyle(n+"-arrow-shape").value,u,h;if(l!=="none"){n==="source"?(u=a.srcX,h=a.srcY):n==="target"?(u=a.tgtX,h=a.tgtY):(u=a.midX,h=a.midY);var f=i.arrowBounds=i.arrowBounds||{},d=f[n]=f[n]||{};d.x1=u-s,d.y1=h-s,d.x2=u+s,d.y2=h+s,d.w=d.x2-d.x1,d.h=d.y2-d.y1,cS(d,1),zl(e,d.x1,d.y1,d.x2,d.y2)}}},"updateBoundsFromArrow"),CP=o(function(e,r,n){if(!r.cy().headless()){var i;n?i=n+"-":i="";var a=r._private,s=a.rstyle,l=r.pstyle(i+"label").strValue;if(l){var u=r.pstyle("text-halign"),h=r.pstyle("text-valign"),f=Db(s,"labelWidth",n),d=Db(s,"labelHeight",n),p=Db(s,"labelX",n),m=Db(s,"labelY",n),g=r.pstyle(i+"text-margin-x").pfValue,y=r.pstyle(i+"text-margin-y").pfValue,v=r.isEdge(),x=r.pstyle(i+"text-rotation"),b=r.pstyle("text-outline-width").pfValue,w=r.pstyle("text-border-width").pfValue,C=w/2,T=r.pstyle("text-background-padding").pfValue,E=2,A=d,S=f,_=S/2,I=A/2,D,k,L,R;if(v)D=p-_,k=p+_,L=m-I,R=m+I;else{switch(u.value){case"left":D=p-S,k=p;break;case"center":D=p-_,k=p+_;break;case"right":D=p,k=p+S;break}switch(h.value){case"top":L=m-A,R=m;break;case"center":L=m-I,R=m+I;break;case"bottom":L=m,R=m+A;break}}var O=g-Math.max(b,C)-T-E,M=g+Math.max(b,C)+T+E,B=y-Math.max(b,C)-T-E,F=y+Math.max(b,C)+T+E;D+=O,k+=M,L+=B,R+=F;var P=n||"main",z=a.labelBounds,$=z[P]=z[P]||{};$.x1=D,$.y1=L,$.x2=k,$.y2=R,$.w=k-D,$.h=R-L,$.leftPad=O,$.rightPad=M,$.topPad=B,$.botPad=F;var H=v&&x.strValue==="autorotate",Q=x.pfValue!=null&&x.pfValue!==0;if(H||Q){var j=H?Db(a.rstyle,"labelAngle",n):x.pfValue,ie=Math.cos(j),ne=Math.sin(j),le=(D+k)/2,he=(L+R)/2;if(!v){switch(u.value){case"left":le=k;break;case"right":le=D;break}switch(h.value){case"top":he=R;break;case"bottom":he=L;break}}var K=o(function(ce,ae){return ce=ce-le,ae=ae-he,{x:ce*ie-ae*ne+le,y:ce*ne+ae*ie+he}},"rotate"),X=K(D,L),te=K(D,R),J=K(k,L),se=K(k,R);D=Math.min(X.x,te.x,J.x,se.x),k=Math.max(X.x,te.x,J.x,se.x),L=Math.min(X.y,te.y,J.y,se.y),R=Math.max(X.y,te.y,J.y,se.y)}var ue=P+"Rot",Z=z[ue]=z[ue]||{};Z.x1=D,Z.y1=L,Z.x2=k,Z.y2=R,Z.w=k-D,Z.h=R-L,zl(e,D,L,k,R),zl(a.labelBounds.all,D,L,k,R)}return e}},"updateBoundsFromLabel"),gKe=o(function(e,r){if(!r.cy().headless()){var n=r.pstyle("outline-opacity").value,i=r.pstyle("outline-width").value;if(n>0&&i>0){var a=r.pstyle("outline-offset").value,s=r.pstyle("shape").value,l=i+a,u=(e.w+l*2)/e.w,h=(e.h+l*2)/e.h,f=0,d=0;["diamond","pentagon","round-triangle"].includes(s)?(u=(e.w+l*2.4)/e.w,d=-l/3.6):["concave-hexagon","rhomboid","right-rhomboid"].includes(s)?u=(e.w+l*2.4)/e.w:s==="star"?(u=(e.w+l*2.8)/e.w,h=(e.h+l*2.6)/e.h,d=-l/3.8):s==="triangle"?(u=(e.w+l*2.8)/e.w,h=(e.h+l*2.4)/e.h,d=-l/1.4):s==="vee"&&(u=(e.w+l*4.4)/e.w,h=(e.h+l*3.8)/e.h,d=-l*.5);var p=e.h*h-e.h,m=e.w*u-e.w;if(uS(e,[Math.ceil(p/2),Math.ceil(m/2)]),f!=0||d!==0){var g=Bqe(e,f,d);gme(e,g)}}}},"updateBoundsFromOutline"),yKe=o(function(e,r){var n=e._private.cy,i=n.styleEnabled(),a=n.headless(),s=Hs(),l=e._private,u=e.isNode(),h=e.isEdge(),f,d,p,m,g,y,v=l.rstyle,x=u&&i?e.pstyle("bounds-expansion").pfValue:[0],b=o(function(Se){return Se.pstyle("display").value!=="none"},"isDisplayed"),w=!i||b(e)&&(!h||b(e.source())&&b(e.target()));if(w){var C=0,T=0;i&&r.includeOverlays&&(C=e.pstyle("overlay-opacity").value,C!==0&&(T=e.pstyle("overlay-padding").value));var E=0,A=0;i&&r.includeUnderlays&&(E=e.pstyle("underlay-opacity").value,E!==0&&(A=e.pstyle("underlay-padding").value));var S=Math.max(T,A),_=0,I=0;if(i&&(_=e.pstyle("width").pfValue,I=_/2),u&&r.includeNodes){var D=e.position();g=D.x,y=D.y;var k=e.outerWidth(),L=k/2,R=e.outerHeight(),O=R/2;f=g-L,d=g+L,p=y-O,m=y+O,zl(s,f,p,d,m),i&&r.includeOutlines&&gKe(s,e)}else if(h&&r.includeEdges)if(i&&!a){var M=e.pstyle("curve-style").strValue;if(f=Math.min(v.srcX,v.midX,v.tgtX),d=Math.max(v.srcX,v.midX,v.tgtX),p=Math.min(v.srcY,v.midY,v.tgtY),m=Math.max(v.srcY,v.midY,v.tgtY),f-=I,d+=I,p-=I,m+=I,zl(s,f,p,d,m),M==="haystack"){var B=v.haystackPts;if(B&&B.length===2){if(f=B[0].x,p=B[0].y,d=B[1].x,m=B[1].y,f>d){var F=f;f=d,d=F}if(p>m){var P=p;p=m,m=P}zl(s,f-I,p-I,d+I,m+I)}}else if(M==="bezier"||M==="unbundled-bezier"||M.endsWith("segments")||M.endsWith("taxi")){var z;switch(M){case"bezier":case"unbundled-bezier":z=v.bezierPts;break;case"segments":case"taxi":case"round-segments":case"round-taxi":z=v.linePts;break}if(z!=null)for(var $=0;$<z.length;$++){var H=z[$];f=H.x-I,d=H.x+I,p=H.y-I,m=H.y+I,zl(s,f,p,d,m)}}}else{var Q=e.source(),j=Q.position(),ie=e.target(),ne=ie.position();if(f=j.x,d=ne.x,p=j.y,m=ne.y,f>d){var le=f;f=d,d=le}if(p>m){var he=p;p=m,m=he}f-=I,d+=I,p-=I,m+=I,zl(s,f,p,d,m)}if(i&&r.includeEdges&&h&&(tS(s,e,"mid-source"),tS(s,e,"mid-target"),tS(s,e,"source"),tS(s,e,"target")),i){var K=e.pstyle("ghost").value==="yes";if(K){var X=e.pstyle("ghost-offset-x").pfValue,te=e.pstyle("ghost-offset-y").pfValue;zl(s,s.x1+X,s.y1+te,s.x2+X,s.y2+te)}}var J=l.bodyBounds=l.bodyBounds||{};Fpe(J,s),uS(J,x),cS(J,1),i&&(f=s.x1,d=s.x2,p=s.y1,m=s.y2,zl(s,f-S,p-S,d+S,m+S));var se=l.overlayBounds=l.overlayBounds||{};Fpe(se,s),uS(se,x),cS(se,1);var ue=l.labelBounds=l.labelBounds||{};ue.all!=null?Pqe(ue.all):ue.all=Hs(),i&&r.includeLabels&&(r.includeMainLabels&&CP(s,e,null),h&&(r.includeSourceLabels&&CP(s,e,"source"),r.includeTargetLabels&&CP(s,e,"target")))}return s.x1=el(s.x1),s.y1=el(s.y1),s.x2=el(s.x2),s.y2=el(s.y2),s.w=el(s.x2-s.x1),s.h=el(s.y2-s.y1),s.w>0&&s.h>0&&w&&(uS(s,x),cS(s,1)),s},"boundingBoxImpl"),Ume=o(function(e){var r=0,n=o(function(s){return(s?1:0)<<r++},"tf"),i=0;return i+=n(e.incudeNodes),i+=n(e.includeEdges),i+=n(e.includeLabels),i+=n(e.includeMainLabels),i+=n(e.includeSourceLabels),i+=n(e.includeTargetLabels),i+=n(e.includeOverlays),i+=n(e.includeOutlines),i},"getKey"),Hme=o(function(e){if(e.isEdge()){var r=e.source().position(),n=e.target().position(),i=o(function(s){return Math.round(s)},"r");return nqe([i(r.x),i(r.y),i(n.x),i(n.y)])}else return 0},"getBoundingBoxPosKey"),s0e=o(function(e,r){var n=e._private,i,a=e.isEdge(),s=r==null?o0e:Ume(r),l=s===o0e,u=Hme(e),h=n.bbCachePosKey===u,f=r.useCache&&h,d=o(function(y){return y._private.bbCache==null||y._private.styleDirty},"isDirty"),p=!f||d(e)||a&&(d(e.source())||d(e.target()));if(p?(h||e.recalculateRenderedStyle(f),i=yKe(e,Qb),n.bbCache=i,n.bbCachePosKey=u):i=n.bbCache,!l){var m=e.isNode();i=Hs(),(r.includeNodes&&m||r.includeEdges&&!m)&&(r.includeOverlays?Pp(i,n.overlayBounds):Pp(i,n.bodyBounds)),r.includeLabels&&(r.includeMainLabels&&(!a||r.includeSourceLabels&&r.includeTargetLabels)?Pp(i,n.labelBounds.all):(r.includeMainLabels&&Pp(i,n.labelBounds.mainRot),r.includeSourceLabels&&Pp(i,n.labelBounds.sourceRot),r.includeTargetLabels&&Pp(i,n.labelBounds.targetRot))),i.w=i.x2-i.x1,i.h=i.y2-i.y1}return i},"cachedBoundingBoxImpl"),Qb={includeNodes:!0,includeEdges:!0,includeLabels:!0,includeMainLabels:!0,includeSourceLabels:!0,includeTargetLabels:!0,includeOverlays:!0,includeUnderlays:!0,includeOutlines:!0,useCache:!0},o0e=Ume(Qb),l0e=la(Qb);Of.boundingBox=function(t){var e;if(this.length===1&&this[0]._private.bbCache!=null&&!this[0]._private.styleDirty&&(t===void 0||t.useCache===void 0||t.useCache===!0))t===void 0?t=Qb:t=l0e(t),e=s0e(this[0],t);else{e=Hs(),t=t||Qb;var r=l0e(t),n=this,i=n.cy(),a=i.styleEnabled();if(a)for(var s=0;s<n.length;s++){var l=n[s],u=l._private,h=Hme(l),f=u.bbCachePosKey===h,d=r.useCache&&f&&!u.styleDirty;l.recalculateRenderedStyle(d)}this.updateCompoundBounds(!t.useCache);for(var p=0;p<n.length;p++){var m=n[p];Pp(e,s0e(m,r))}}return e.x1=el(e.x1),e.y1=el(e.y1),e.x2=el(e.x2),e.y2=el(e.y2),e.w=el(e.x2-e.x1),e.h=el(e.y2-e.y1),e};Of.dirtyBoundingBoxCache=function(){for(var t=0;t<this.length;t++){var e=this[t]._private;e.bbCache=null,e.bbCachePosKey=null,e.bodyBounds=null,e.overlayBounds=null,e.labelBounds.all=null,e.labelBounds.source=null,e.labelBounds.target=null,e.labelBounds.main=null,e.labelBounds.sourceRot=null,e.labelBounds.targetRot=null,e.labelBounds.mainRot=null,e.arrowBounds.source=null,e.arrowBounds.target=null,e.arrowBounds["mid-source"]=null,e.arrowBounds["mid-target"]=null}return this.emitAndNotify("bounds"),this};Of.boundingBoxAt=function(t){var e=this.nodes(),r=this.cy(),n=r.hasCompoundNodes(),i=r.collection();if(n&&(i=e.filter(function(h){return h.isParent()}),e=e.not(i)),Ur(t)){var a=t;t=o(function(){return a},"fn")}var s=o(function(f,d){return f._private.bbAtOldPos=t(f,d)},"storeOldPos"),l=o(function(f){return f._private.bbAtOldPos},"getOldPos");r.startBatch(),e.forEach(s).silentPositions(t),n&&(i.dirtyCompoundBoundsCache(),i.dirtyBoundingBoxCache(),i.updateCompoundBounds(!0));var u=Oqe(this.boundingBox({useCache:!1}));return e.silentPositions(l),n&&(i.dirtyCompoundBoundsCache(),i.dirtyBoundingBoxCache(),i.updateCompoundBounds(!0)),r.endBatch(),u};X1.boundingbox=X1.bb=X1.boundingBox;X1.renderedBoundingbox=X1.renderedBoundingBox;vKe=Of;Bb=a4={};Wme=o(function(e){e.uppercaseName=Rpe(e.name),e.autoName="auto"+e.uppercaseName,e.labelName="label"+e.uppercaseName,e.outerName="outer"+e.uppercaseName,e.uppercaseOuterName=Rpe(e.outerName),Bb[e.name]=o(function(){var n=this[0],i=n._private,a=i.cy,s=a._private.styleEnabled;if(n)if(s){if(n.isParent())return n.updateCompoundBounds(),i[e.autoName]||0;var l=n.pstyle(e.name);switch(l.strValue){case"label":return n.recalculateRenderedStyle(),i.rstyle[e.labelName]||0;default:return l.pfValue}}else return 1},"dimImpl"),Bb["outer"+e.uppercaseName]=o(function(){var n=this[0],i=n._private,a=i.cy,s=a._private.styleEnabled;if(n)if(s){var l=n[e.name](),u=n.pstyle("border-width").pfValue,h=2*n.padding();return l+u+h}else return 1},"outerDimImpl"),Bb["rendered"+e.uppercaseName]=o(function(){var n=this[0];if(n){var i=n[e.name]();return i*this.cy().zoom()}},"renderedDimImpl"),Bb["rendered"+e.uppercaseOuterName]=o(function(){var n=this[0];if(n){var i=n[e.outerName]();return i*this.cy().zoom()}},"renderedOuterDimImpl")},"defineDimFns");Wme({name:"width"});Wme({name:"height"});a4.padding=function(){var t=this[0],e=t._private;return t.isParent()?(t.updateCompoundBounds(),e.autoPadding!==void 0?e.autoPadding:t.pstyle("padding").pfValue):t.pstyle("padding").pfValue};a4.paddedHeight=function(){var t=this[0];return t.height()+2*t.padding()};a4.paddedWidth=function(){var t=this[0];return t.width()+2*t.padding()};xKe=a4,bKe=o(function(e,r){if(e.isEdge())return r(e)},"ifEdge"),wKe=o(function(e,r){if(e.isEdge()){var n=e.cy();return MS(r(e),n.zoom(),n.pan())}},"ifEdgeRenderedPosition"),TKe=o(function(e,r){if(e.isEdge()){var n=e.cy(),i=n.pan(),a=n.zoom();return r(e).map(function(s){return MS(s,a,i)})}},"ifEdgeRenderedPositions"),kKe=o(function(e){return e.renderer().getControlPoints(e)},"controlPoints"),EKe=o(function(e){return e.renderer().getSegmentPoints(e)},"segmentPoints"),SKe=o(function(e){return e.renderer().getSourceEndpoint(e)},"sourceEndpoint"),CKe=o(function(e){return e.renderer().getTargetEndpoint(e)},"targetEndpoint"),AKe=o(function(e){return e.renderer().getEdgeMidpoint(e)},"midpoint"),c0e={controlPoints:{get:kKe,mult:!0},segmentPoints:{get:EKe,mult:!0},sourceEndpoint:{get:SKe},targetEndpoint:{get:CKe},midpoint:{get:AKe}},_Ke=o(function(e){return"rendered"+e[0].toUpperCase()+e.substr(1)},"renderedName"),DKe=Object.keys(c0e).reduce(function(t,e){var r=c0e[e],n=_Ke(e);return t[e]=function(){return bKe(this,r.get)},r.mult?t[n]=function(){return TKe(this,r.get)}:t[n]=function(){return wKe(this,r.get)},t},{}),LKe=rr({},mKe,vKe,xKe,DKe);qme=o(function(e,r){this.recycle(e,r)},"Event");o(Lb,"returnFalse");o(rS,"returnTrue");qme.prototype={instanceString:o(function(){return"event"},"instanceString"),recycle:o(function(e,r){if(this.isImmediatePropagationStopped=this.isPropagationStopped=this.isDefaultPrevented=Lb,e!=null&&e.preventDefault?(this.type=e.type,this.isDefaultPrevented=e.defaultPrevented?rS:Lb):e!=null&&e.type?r=e:this.type=e,r!=null&&(this.originalEvent=r.originalEvent,this.type=r.type!=null?r.type:this.type,this.cy=r.cy,this.target=r.target,this.position=r.position,this.renderedPosition=r.renderedPosition,this.namespace=r.namespace,this.layout=r.layout),this.cy!=null&&this.position!=null&&this.renderedPosition==null){var n=this.position,i=this.cy.zoom(),a=this.cy.pan();this.renderedPosition={x:n.x*i+a.x,y:n.y*i+a.y}}this.timeStamp=e&&e.timeStamp||Date.now()},"recycle"),preventDefault:o(function(){this.isDefaultPrevented=rS;var e=this.originalEvent;e&&e.preventDefault&&e.preventDefault()},"preventDefault"),stopPropagation:o(function(){this.isPropagationStopped=rS;var e=this.originalEvent;e&&e.stopPropagation&&e.stopPropagation()},"stopPropagation"),stopImmediatePropagation:o(function(){this.isImmediatePropagationStopped=rS,this.stopPropagation()},"stopImmediatePropagation"),isDefaultPrevented:Lb,isPropagationStopped:Lb,isImmediatePropagationStopped:Lb};Yme=/^([^.]+)(\.(?:[^.]+))?$/,RKe=".*",Xme={qualifierCompare:o(function(e,r){return e===r},"qualifierCompare"),eventMatches:o(function(){return!0},"eventMatches"),addEventFields:o(function(){},"addEventFields"),callbackContext:o(function(e){return e},"callbackContext"),beforeEmit:o(function(){},"beforeEmit"),afterEmit:o(function(){},"afterEmit"),bubble:o(function(){return!1},"bubble"),parent:o(function(){return null},"parent"),context:null},u0e=Object.keys(Xme),NKe={};o($S,"Emitter");Nf=$S.prototype,jme=o(function(e,r,n,i,a,s,l){si(i)&&(a=i,i=null),l&&(s==null?s=l:s=rr({},s,l));for(var u=En(n)?n:n.split(/\s+/),h=0;h<u.length;h++){var f=u[h];if(!Af(f)){var d=f.match(Yme);if(d){var p=d[1],m=d[2]?d[2]:null,g=r(e,f,p,m,i,a,s);if(g===!1)break}}}},"forEachEvent"),h0e=o(function(e,r){return e.addEventFields(e.context,r),new qme(r.type,r)},"makeEventObj"),MKe=o(function(e,r,n){if(eWe(n)){r(e,n);return}else if(Ur(n)){r(e,h0e(e,n));return}for(var i=En(n)?n:n.split(/\s+/),a=0;a<i.length;a++){var s=i[a];if(!Af(s)){var l=s.match(Yme);if(l){var u=l[1],h=l[2]?l[2]:null,f=h0e(e,{type:u,namespace:h,target:e.context});r(e,f)}}}},"forEachEventObj");Nf.on=Nf.addListener=function(t,e,r,n,i){return jme(this,function(a,s,l,u,h,f,d){si(f)&&a.listeners.push({event:s,callback:f,type:l,namespace:u,qualifier:h,conf:d})},t,e,r,n,i),this};Nf.one=function(t,e,r,n){return this.on(t,e,r,n,{one:!0})};Nf.removeListener=Nf.off=function(t,e,r,n){var i=this;this.emitting!==0&&(this.listeners=lqe(this.listeners));for(var a=this.listeners,s=o(function(h){var f=a[h];jme(i,function(d,p,m,g,y,v){if((f.type===m||t==="*")&&(!g&&f.namespace!==".*"||f.namespace===g)&&(!y||d.qualifierCompare(f.qualifier,y))&&(!v||f.callback===v))return a.splice(h,1),!1},t,e,r,n)},"_loop"),l=a.length-1;l>=0;l--)s(l);return this};Nf.removeAllListeners=function(){return this.removeListener("*")};Nf.emit=Nf.trigger=function(t,e,r){var n=this.listeners,i=n.length;return this.emitting++,En(e)||(e=[e]),MKe(this,function(a,s){r!=null&&(n=[{event:s.event,type:s.type,namespace:s.namespace,callback:r}],i=n.length);for(var l=o(function(f){var d=n[f];if(d.type===s.type&&(!d.namespace||d.namespace===s.namespace||d.namespace===RKe)&&a.eventMatches(a.context,d,s)){var p=[s];e!=null&&uqe(p,e),a.beforeEmit(a.context,d,s),d.conf&&d.conf.one&&(a.listeners=a.listeners.filter(function(y){return y!==d}));var m=a.callbackContext(a.context,d,s),g=d.callback.apply(m,p);a.afterEmit(a.context,d,s),g===!1&&(s.stopPropagation(),s.preventDefault())}},"_loop2"),u=0;u<i;u++)l(u);a.bubble(a.context)&&!s.isPropagationStopped()&&a.parent(a.context).emit(s,e)},t),this.emitting--,this};IKe={qualifierCompare:o(function(e,r){return e==null||r==null?e==null&&r==null:e.sameText(r)},"qualifierCompare"),eventMatches:o(function(e,r,n){var i=r.qualifier;return i!=null?e!==n.target&&t4(n.target)&&i.matches(n.target):!0},"eventMatches"),addEventFields:o(function(e,r){r.cy=e.cy(),r.target=e},"addEventFields"),callbackContext:o(function(e,r,n){return r.qualifier!=null?n.target:e},"callbackContext"),beforeEmit:o(function(e,r){r.conf&&r.conf.once&&r.conf.onceCollection.removeListener(r.event,r.qualifier,r.callback)},"beforeEmit"),bubble:o(function(){return!0},"bubble"),parent:o(function(e){return e.isChild()?e.parent():e.cy()},"parent")},nS=o(function(e){return Zt(e)?new Lf(e):e},"argSelector"),Kme={createEmitter:o(function(){for(var e=0;e<this.length;e++){var r=this[e],n=r._private;n.emitter||(n.emitter=new $S(IKe,r))}return this},"createEmitter"),emitter:o(function(){return this._private.emitter},"emitter"),on:o(function(e,r,n){for(var i=nS(r),a=0;a<this.length;a++){var s=this[a];s.emitter().on(e,i,n)}return this},"on"),removeListener:o(function(e,r,n){for(var i=nS(r),a=0;a<this.length;a++){var s=this[a];s.emitter().removeListener(e,i,n)}return this},"removeListener"),removeAllListeners:o(function(){for(var e=0;e<this.length;e++){var r=this[e];r.emitter().removeAllListeners()}return this},"removeAllListeners"),one:o(function(e,r,n){for(var i=nS(r),a=0;a<this.length;a++){var s=this[a];s.emitter().one(e,i,n)}return this},"one"),once:o(function(e,r,n){for(var i=nS(r),a=0;a<this.length;a++){var s=this[a];s.emitter().on(e,i,n,{once:!0,onceCollection:this})}},"once"),emit:o(function(e,r){for(var n=0;n<this.length;n++){var i=this[n];i.emitter().emit(e,r)}return this},"emit"),emitAndNotify:o(function(e,r){if(this.length!==0)return this.cy().notify(e,this),this.emit(e,r),this},"emitAndNotify")};cn.eventAliasesOn(Kme);Qme={nodes:o(function(e){return this.filter(function(r){return r.isNode()}).filter(e)},"nodes"),edges:o(function(e){return this.filter(function(r){return r.isEdge()}).filter(e)},"edges"),byGroup:o(function(){for(var e=this.spawn(),r=this.spawn(),n=0;n<this.length;n++){var i=this[n];i.isNode()?e.push(i):r.push(i)}return{nodes:e,edges:r}},"byGroup"),filter:o(function(e,r){if(e===void 0)return this;if(Zt(e)||go(e))return new Lf(e).filter(this);if(si(e)){for(var n=this.spawn(),i=this,a=0;a<i.length;a++){var s=i[a],l=r?e.apply(r,[s,a,i]):e(s,a,i);l&&n.push(s)}return n}return this.spawn()},"filter"),not:o(function(e){if(e){Zt(e)&&(e=this.filter(e));for(var r=this.spawn(),n=0;n<this.length;n++){var i=this[n],a=e.has(i);a||r.push(i)}return r}else return this},"not"),absoluteComplement:o(function(){var e=this.cy();return e.mutableElements().not(this)},"absoluteComplement"),intersect:o(function(e){if(Zt(e)){var r=e;return this.filter(r)}for(var n=this.spawn(),i=this,a=e,s=this.length<e.length,l=s?i:a,u=s?a:i,h=0;h<l.length;h++){var f=l[h];u.has(f)&&n.push(f)}return n},"intersect"),xor:o(function(e){var r=this._private.cy;Zt(e)&&(e=r.$(e));var n=this.spawn(),i=this,a=e,s=o(function(u,h){for(var f=0;f<u.length;f++){var d=u[f],p=d._private.data.id,m=h.hasElementWithId(p);m||n.push(d)}},"add");return s(i,a),s(a,i),n},"xor"),diff:o(function(e){var r=this._private.cy;Zt(e)&&(e=r.$(e));var n=this.spawn(),i=this.spawn(),a=this.spawn(),s=this,l=e,u=o(function(f,d,p){for(var m=0;m<f.length;m++){var g=f[m],y=g._private.data.id,v=d.hasElementWithId(y);v?a.merge(g):p.push(g)}},"add");return u(s,l,n),u(l,s,i),{left:n,right:i,both:a}},"diff"),add:o(function(e){var r=this._private.cy;if(!e)return this;if(Zt(e)){var n=e;e=r.mutableElements().filter(n)}for(var i=this.spawnSelf(),a=0;a<e.length;a++){var s=e[a],l=!this.has(s);l&&i.push(s)}return i},"add"),merge:o(function(e){var r=this._private,n=r.cy;if(!e)return this;if(e&&Zt(e)){var i=e;e=n.mutableElements().filter(i)}for(var a=r.map,s=0;s<e.length;s++){var l=e[s],u=l._private.data.id,h=!a.has(u);if(h){var f=this.length++;this[f]=l,a.set(u,{ele:l,index:f})}}return this},"merge"),unmergeAt:o(function(e){var r=this[e],n=r.id(),i=this._private,a=i.map;this[e]=void 0,a.delete(n);var s=e===this.length-1;if(this.length>1&&!s){var l=this.length-1,u=this[l],h=u._private.data.id;this[l]=void 0,this[e]=u,a.set(h,{ele:u,index:e})}return this.length--,this},"unmergeAt"),unmergeOne:o(function(e){e=e[0];var r=this._private,n=e._private.data.id,i=r.map,a=i.get(n);if(!a)return this;var s=a.index;return this.unmergeAt(s),this},"unmergeOne"),unmerge:o(function(e){var r=this._private.cy;if(!e)return this;if(e&&Zt(e)){var n=e;e=r.mutableElements().filter(n)}for(var i=0;i<e.length;i++)this.unmergeOne(e[i]);return this},"unmerge"),unmergeBy:o(function(e){for(var r=this.length-1;r>=0;r--){var n=this[r];e(n)&&this.unmergeAt(r)}return this},"unmergeBy"),map:o(function(e,r){for(var n=[],i=this,a=0;a<i.length;a++){var s=i[a],l=r?e.apply(r,[s,a,i]):e(s,a,i);n.push(l)}return n},"map"),reduce:o(function(e,r){for(var n=r,i=this,a=0;a<i.length;a++)n=e(n,i[a],a,i);return n},"reduce"),max:o(function(e,r){for(var n=-1/0,i,a=this,s=0;s<a.length;s++){var l=a[s],u=r?e.apply(r,[l,s,a]):e(l,s,a);u>n&&(n=u,i=l)}return{value:n,ele:i}},"max"),min:o(function(e,r){for(var n=1/0,i,a=this,s=0;s<a.length;s++){var l=a[s],u=r?e.apply(r,[l,s,a]):e(l,s,a);u<n&&(n=u,i=l)}return{value:n,ele:i}},"min")},Qr=Qme;Qr.u=Qr["|"]=Qr["+"]=Qr.union=Qr.or=Qr.add;Qr["\\"]=Qr["!"]=Qr["-"]=Qr.difference=Qr.relativeComplement=Qr.subtract=Qr.not;Qr.n=Qr["&"]=Qr["."]=Qr.and=Qr.intersection=Qr.intersect;Qr["^"]=Qr["(+)"]=Qr["(-)"]=Qr.symmetricDifference=Qr.symdiff=Qr.xor;Qr.fnFilter=Qr.filterFn=Qr.stdFilter=Qr.filter;Qr.complement=Qr.abscomp=Qr.absoluteComplement;OKe={isNode:o(function(){return this.group()==="nodes"},"isNode"),isEdge:o(function(){return this.group()==="edges"},"isEdge"),isLoop:o(function(){return this.isEdge()&&this.source()[0]===this.target()[0]},"isLoop"),isSimple:o(function(){return this.isEdge()&&this.source()[0]!==this.target()[0]},"isSimple"),group:o(function(){var e=this[0];if(e)return e._private.group},"group")},Zme=o(function(e,r){var n=e.cy(),i=n.hasCompoundNodes();function a(f){var d=f.pstyle("z-compound-depth");return d.value==="auto"?i?f.zDepth():0:d.value==="bottom"?-1:d.value==="top"?tB:0}o(a,"getDepth");var s=a(e)-a(r);if(s!==0)return s;function l(f){var d=f.pstyle("z-index-compare");return d.value==="auto"&&f.isNode()?1:0}o(l,"getEleDepth");var u=l(e)-l(r);if(u!==0)return u;var h=e.pstyle("z-index").value-r.pstyle("z-index").value;return h!==0?h:e.poolIndex()-r.poolIndex()},"zIndexSort"),ES={forEach:o(function(e,r){if(si(e))for(var n=this.length,i=0;i<n;i++){var a=this[i],s=r?e.apply(r,[a,i,this]):e(a,i,this);if(s===!1)break}return this},"forEach"),toArray:o(function(){for(var e=[],r=0;r<this.length;r++)e.push(this[r]);return e},"toArray"),slice:o(function(e,r){var n=[],i=this.length;r==null&&(r=i),e==null&&(e=0),e<0&&(e=i+e),r<0&&(r=i+r);for(var a=e;a>=0&&a<r&&a<i;a++)n.push(this[a]);return this.spawn(n)},"slice"),size:o(function(){return this.length},"size"),eq:o(function(e){return this[e]||this.spawn()},"eq"),first:o(function(){return this[0]||this.spawn()},"first"),last:o(function(){return this[this.length-1]||this.spawn()},"last"),empty:o(function(){return this.length===0},"empty"),nonempty:o(function(){return!this.empty()},"nonempty"),sort:o(function(e){if(!si(e))return this;var r=this.toArray().sort(e);return this.spawn(r)},"sort"),sortByZIndex:o(function(){return this.sort(Zme)},"sortByZIndex"),zDepth:o(function(){var e=this[0];if(e){var r=e._private,n=r.group;if(n==="nodes"){var i=r.data.parent?e.parents().size():0;return e.isParent()?i:tB-1}else{var a=r.source,s=r.target,l=a.zDepth(),u=s.zDepth();return Math.max(l,u,0)}}},"zDepth")};ES.each=ES.forEach;PKe=o(function(){var e="undefined",r=(typeof Symbol>"u"?"undefined":Wi(Symbol))!=e&&Wi(Symbol.iterator)!=e;r&&(ES[Symbol.iterator]=function(){var n=this,i={value:void 0,done:!1},a=0,s=this.length;return X0e({next:o(function(){return a<s?i.value=n[a++]:(i.value=void 0,i.done=!0),i},"next")},Symbol.iterator,function(){return this})})},"defineSymbolIterator");PKe();BKe=la({nodeDimensionsIncludeLabels:!1}),fS={layoutDimensions:o(function(e){e=BKe(e);var r;if(!this.takesUpSpace())r={w:0,h:0};else if(e.nodeDimensionsIncludeLabels){var n=this.boundingBox();r={w:n.w,h:n.h}}else r={w:this.outerWidth(),h:this.outerHeight()};return(r.w===0||r.h===0)&&(r.w=r.h=1),r},"layoutDimensions"),layoutPositions:o(function(e,r,n){var i=this.nodes().filter(function(T){return!T.isParent()}),a=this.cy(),s=r.eles,l=o(function(E){return E.id()},"getMemoizeKey"),u=Ub(n,l);e.emit({type:"layoutstart",layout:e}),e.animations=[];var h=o(function(E,A,S){var _={x:A.x1+A.w/2,y:A.y1+A.h/2},I={x:(S.x-_.x)*E,y:(S.y-_.y)*E};return{x:_.x+I.x,y:_.y+I.y}},"calculateSpacing"),f=r.spacingFactor&&r.spacingFactor!==1,d=o(function(){if(!f)return null;for(var E=Hs(),A=0;A<i.length;A++){var S=i[A],_=u(S,A);Fqe(E,_.x,_.y)}return E},"spacingBb"),p=d(),m=Ub(function(T,E){var A=u(T,E);if(f){var S=Math.abs(r.spacingFactor);A=h(S,p,A)}return r.transform!=null&&(A=r.transform(T,A)),A},l);if(r.animate){for(var g=0;g<i.length;g++){var y=i[g],v=m(y,g),x=r.animateFilter==null||r.animateFilter(y,g);if(x){var b=y.animation({position:v,duration:r.animationDuration,easing:r.animationEasing});e.animations.push(b)}else y.position(v)}if(r.fit){var w=a.animation({fit:{boundingBox:s.boundingBoxAt(m),padding:r.padding},duration:r.animationDuration,easing:r.animationEasing});e.animations.push(w)}else if(r.zoom!==void 0&&r.pan!==void 0){var C=a.animation({zoom:r.zoom,pan:r.pan,duration:r.animationDuration,easing:r.animationEasing});e.animations.push(C)}e.animations.forEach(function(T){return T.play()}),e.one("layoutready",r.ready),e.emit({type:"layoutready",layout:e}),ey.all(e.animations.map(function(T){return T.promise()})).then(function(){e.one("layoutstop",r.stop),e.emit({type:"layoutstop",layout:e})})}else i.positions(m),r.fit&&a.fit(r.eles,r.padding),r.zoom!=null&&a.zoom(r.zoom),r.pan&&a.pan(r.pan),e.one("layoutready",r.ready),e.emit({type:"layoutready",layout:e}),e.one("layoutstop",r.stop),e.emit({type:"layoutstop",layout:e});return this},"layoutPositions"),layout:o(function(e){var r=this.cy();return r.makeLayout(rr({},e,{eles:this}))},"layout")};fS.createLayout=fS.makeLayout=fS.layout;o(Jme,"styleCache");o(zS,"cacheStyleFunction");o(GS,"cachePrototypeStyleFunction");Ta={recalculateRenderedStyle:o(function(e){var r=this.cy(),n=r.renderer(),i=r.styleEnabled();return n&&i&&n.recalculateRenderedStyle(this,e),this},"recalculateRenderedStyle"),dirtyStyleCache:o(function(){var e=this.cy(),r=o(function(a){return a._private.styleCache=null},"dirty");if(e.hasCompoundNodes()){var n;n=this.spawnSelf().merge(this.descendants()).merge(this.parents()),n.merge(n.connectedEdges()),n.forEach(r)}else this.forEach(function(i){r(i),i.connectedEdges().forEach(r)});return this},"dirtyStyleCache"),updateStyle:o(function(e){var r=this._private.cy;if(!r.styleEnabled())return this;if(r.batching()){var n=r._private.batchStyleEles;return n.merge(this),this}var i=r.hasCompoundNodes(),a=this;e=!!(e||e===void 0),i&&(a=this.spawnSelf().merge(this.descendants()).merge(this.parents()));var s=a;return e?s.emitAndNotify("style"):s.emit("style"),a.forEach(function(l){return l._private.styleDirty=!0}),this},"updateStyle"),cleanStyle:o(function(){var e=this.cy();if(e.styleEnabled())for(var r=0;r<this.length;r++){var n=this[r];n._private.styleDirty&&(n._private.styleDirty=!1,e.style().apply(n))}},"cleanStyle"),parsedStyle:o(function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,n=this[0],i=n.cy();if(i.styleEnabled()&&n){n._private.styleDirty&&(n._private.styleDirty=!1,i.style().apply(n));var a=n._private.style[e];return a??(r?i.style().getDefaultProperty(e):null)}},"parsedStyle"),numericStyle:o(function(e){var r=this[0];if(r.cy().styleEnabled()&&r){var n=r.pstyle(e);return n.pfValue!==void 0?n.pfValue:n.value}},"numericStyle"),numericStyleUnits:o(function(e){var r=this[0];if(r.cy().styleEnabled()&&r)return r.pstyle(e).units},"numericStyleUnits"),renderedStyle:o(function(e){var r=this.cy();if(!r.styleEnabled())return this;var n=this[0];if(n)return r.style().getRenderedStyle(n,e)},"renderedStyle"),style:o(function(e,r){var n=this.cy();if(!n.styleEnabled())return this;var i=!1,a=n.style();if(Ur(e)){var s=e;a.applyBypass(this,s,i),this.emitAndNotify("style")}else if(Zt(e))if(r===void 0){var l=this[0];return l?a.getStylePropertyValue(l,e):void 0}else a.applyBypass(this,e,r,i),this.emitAndNotify("style");else if(e===void 0){var u=this[0];return u?a.getRawStyle(u):void 0}return this},"style"),removeStyle:o(function(e){var r=this.cy();if(!r.styleEnabled())return this;var n=!1,i=r.style(),a=this;if(e===void 0)for(var s=0;s<a.length;s++){var l=a[s];i.removeAllBypasses(l,n)}else{e=e.split(/\s+/);for(var u=0;u<a.length;u++){var h=a[u];i.removeBypasses(h,e,n)}}return this.emitAndNotify("style"),this},"removeStyle"),show:o(function(){return this.css("display","element"),this},"show"),hide:o(function(){return this.css("display","none"),this},"hide"),effectiveOpacity:o(function(){var e=this.cy();if(!e.styleEnabled())return 1;var r=e.hasCompoundNodes(),n=this[0];if(n){var i=n._private,a=n.pstyle("opacity").value;if(!r)return a;var s=i.data.parent?n.parents():null;if(s)for(var l=0;l<s.length;l++){var u=s[l],h=u.pstyle("opacity").value;a=h*a}return a}},"effectiveOpacity"),transparent:o(function(){var e=this.cy();if(!e.styleEnabled())return!1;var r=this[0],n=r.cy().hasCompoundNodes();if(r)return n?r.effectiveOpacity()===0:r.pstyle("opacity").value===0},"transparent"),backgrounding:o(function(){var e=this.cy();if(!e.styleEnabled())return!1;var r=this[0];return!!r._private.backgrounding},"backgrounding")};o(AP,"checkCompound");o(dB,"defineDerivedStateFunction");iy=zS("eleTakesUpSpace",function(t){return t.pstyle("display").value==="element"&&t.width()!==0&&(t.isNode()?t.height()!==0:!0)});Ta.takesUpSpace=GS("takesUpSpace",dB({ok:iy}));FKe=zS("eleInteractive",function(t){return t.pstyle("events").value==="yes"&&t.pstyle("visibility").value==="visible"&&iy(t)}),$Ke=zS("parentInteractive",function(t){return t.pstyle("visibility").value==="visible"&&iy(t)});Ta.interactive=GS("interactive",dB({ok:FKe,parentOk:$Ke,edgeOkViaNode:iy}));Ta.noninteractive=function(){var t=this[0];if(t)return!t.interactive()};zKe=zS("eleVisible",function(t){return t.pstyle("visibility").value==="visible"&&t.pstyle("opacity").pfValue!==0&&iy(t)}),GKe=iy;Ta.visible=GS("visible",dB({ok:zKe,edgeOkViaNode:GKe}));Ta.hidden=function(){var t=this[0];if(t)return!t.visible()};Ta.isBundledBezier=GS("isBundledBezier",function(){return this.cy().styleEnabled()?!this.removed()&&this.pstyle("curve-style").value==="bezier"&&this.takesUpSpace():!1});Ta.bypass=Ta.css=Ta.style;Ta.renderedCss=Ta.renderedStyle;Ta.removeBypass=Ta.removeCss=Ta.removeStyle;Ta.pstyle=Ta.parsedStyle;Cf={};o(f0e,"defineSwitchFunction");o(ay,"defineSwitchSet");ay({field:"locked",overrideField:o(function(e){return e.cy().autolock()?!0:void 0},"overrideField"),on:"lock",off:"unlock"});ay({field:"grabbable",overrideField:o(function(e){return e.cy().autoungrabify()||e.pannable()?!1:void 0},"overrideField"),on:"grabify",off:"ungrabify"});ay({field:"selected",ableField:"selectable",overrideAble:o(function(e){return e.cy().autounselectify()?!1:void 0},"overrideAble"),on:"select",off:"unselect"});ay({field:"selectable",overrideField:o(function(e){return e.cy().autounselectify()?!1:void 0},"overrideField"),on:"selectify",off:"unselectify"});Cf.deselect=Cf.unselect;Cf.grabbed=function(){var t=this[0];if(t)return t._private.grabbed};ay({field:"active",on:"activate",off:"unactivate"});ay({field:"pannable",on:"panify",off:"unpanify"});Cf.inactive=function(){var t=this[0];if(t)return!t._private.active};$a={},d0e=o(function(e){return o(function(n){for(var i=this,a=[],s=0;s<i.length;s++){var l=i[s];if(l.isNode()){for(var u=!1,h=l.connectedEdges(),f=0;f<h.length;f++){var d=h[f],p=d.source(),m=d.target();if(e.noIncomingEdges&&m===l&&p!==l||e.noOutgoingEdges&&p===l&&m!==l){u=!0;break}}u||a.push(l)}}return this.spawn(a,!0).filter(n)},"dagExtremityImpl")},"defineDagExtremity"),p0e=o(function(e){return function(r){for(var n=this,i=[],a=0;a<n.length;a++){var s=n[a];if(s.isNode())for(var l=s.connectedEdges(),u=0;u<l.length;u++){var h=l[u],f=h.source(),d=h.target();e.outgoing&&f===s?(i.push(h),i.push(d)):e.incoming&&d===s&&(i.push(h),i.push(f))}}return this.spawn(i,!0).filter(r)}},"defineDagOneHop"),m0e=o(function(e){return function(r){for(var n=this,i=[],a={};;){var s=e.outgoing?n.outgoers():n.incomers();if(s.length===0)break;for(var l=!1,u=0;u<s.length;u++){var h=s[u],f=h.id();a[f]||(a[f]=!0,i.push(h),l=!0)}if(!l)break;n=s}return this.spawn(i,!0).filter(r)}},"defineDagAllHops");$a.clearTraversalCache=function(){for(var t=0;t<this.length;t++)this[t]._private.traversalCache=null};rr($a,{roots:d0e({noIncomingEdges:!0}),leaves:d0e({noOutgoingEdges:!0}),outgoers:tl(p0e({outgoing:!0}),"outgoers"),successors:m0e({outgoing:!0}),incomers:tl(p0e({incoming:!0}),"incomers"),predecessors:m0e({incoming:!0})});rr($a,{neighborhood:tl(function(t){for(var e=[],r=this.nodes(),n=0;n<r.length;n++)for(var i=r[n],a=i.connectedEdges(),s=0;s<a.length;s++){var l=a[s],u=l.source(),h=l.target(),f=i===u?h:u;f.length>0&&e.push(f[0]),e.push(l[0])}return this.spawn(e,!0).filter(t)},"neighborhood"),closedNeighborhood:o(function(e){return this.neighborhood().add(this).filter(e)},"closedNeighborhood"),openNeighborhood:o(function(e){return this.neighborhood(e)},"openNeighborhood")});$a.neighbourhood=$a.neighborhood;$a.closedNeighbourhood=$a.closedNeighborhood;$a.openNeighbourhood=$a.openNeighborhood;rr($a,{source:tl(o(function(e){var r=this[0],n;return r&&(n=r._private.source||r.cy().collection()),n&&e?n.filter(e):n},"sourceImpl"),"source"),target:tl(o(function(e){var r=this[0],n;return r&&(n=r._private.target||r.cy().collection()),n&&e?n.filter(e):n},"targetImpl"),"target"),sources:g0e({attr:"source"}),targets:g0e({attr:"target"})});o(g0e,"defineSourceFunction");rr($a,{edgesWith:tl(y0e(),"edgesWith"),edgesTo:tl(y0e({thisIsSrc:!0}),"edgesTo")});o(y0e,"defineEdgesWithFunction");rr($a,{connectedEdges:tl(function(t){for(var e=[],r=this,n=0;n<r.length;n++){var i=r[n];if(i.isNode())for(var a=i._private.edges,s=0;s<a.length;s++){var l=a[s];e.push(l)}}return this.spawn(e,!0).filter(t)},"connectedEdges"),connectedNodes:tl(function(t){for(var e=[],r=this,n=0;n<r.length;n++){var i=r[n];i.isEdge()&&(e.push(i.source()[0]),e.push(i.target()[0]))}return this.spawn(e,!0).filter(t)},"connectedNodes"),parallelEdges:tl(v0e(),"parallelEdges"),codirectedEdges:tl(v0e({codirected:!0}),"codirectedEdges")});o(v0e,"defineParallelEdgesFunction");rr($a,{components:o(function(e){var r=this,n=r.cy(),i=n.collection(),a=e==null?r.nodes():e.nodes(),s=[];e!=null&&a.empty()&&(a=e.sources());var l=o(function(f,d){i.merge(f),a.unmerge(f),d.merge(f)},"visitInComponent");if(a.empty())return r.spawn();var u=o(function(){var f=n.collection();s.push(f);var d=a[0];l(d,f),r.bfs({directed:!1,roots:d,visit:o(function(m){return l(m,f)},"visit")}),f.forEach(function(p){p.connectedEdges().forEach(function(m){r.has(m)&&f.has(m.source())&&f.has(m.target())&&f.merge(m)})})},"_loop");do u();while(a.length>0);return s},"components"),component:o(function(){var e=this[0];return e.cy().mutableElements().components(e)[0]},"component")});$a.componentsOf=$a.components;ka=o(function(e,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(e===void 0){ai("A collection must have a reference to the core");return}var a=new Xc,s=!1;if(!r)r=[];else if(r.length>0&&Ur(r[0])&&!t4(r[0])){s=!0;for(var l=[],u=new J1,h=0,f=r.length;h<f;h++){var d=r[h];d.data==null&&(d.data={});var p=d.data;if(p.id==null)p.id=fme();else if(e.hasElementWithId(p.id)||u.has(p.id))continue;var m=new NS(e,d,!1);l.push(m),u.add(p.id)}r=l}this.length=0;for(var g=0,y=r.length;g<y;g++){var v=r[g][0];if(v!=null){var x=v._private.data.id;(!n||!a.has(x))&&(n&&a.set(x,{index:this.length,ele:v}),this[this.length]=v,this.length++)}}this._private={eles:this,cy:e,get map(){return this.lazyMap==null&&this.rebuildMap(),this.lazyMap},set map(b){this.lazyMap=b},rebuildMap:o(function(){for(var w=this.lazyMap=new Xc,C=this.eles,T=0;T<C.length;T++){var E=C[T];w.set(E.id(),{index:T,ele:E})}},"rebuildMap")},n&&(this._private.map=a),s&&!i&&this.restore()},"Collection"),Mn=NS.prototype=ka.prototype=Object.create(Array.prototype);Mn.instanceString=function(){return"collection"};Mn.spawn=function(t,e){return new ka(this.cy(),t,e)};Mn.spawnSelf=function(){return this.spawn(this)};Mn.cy=function(){return this._private.cy};Mn.renderer=function(){return this._private.cy.renderer()};Mn.element=function(){return this[0]};Mn.collection=function(){return Q0e(this)?this:new ka(this._private.cy,[this])};Mn.unique=function(){return new ka(this._private.cy,this,!0)};Mn.hasElementWithId=function(t){return t=""+t,this._private.map.has(t)};Mn.getElementById=function(t){t=""+t;var e=this._private.cy,r=this._private.map.get(t);return r?r.ele:new ka(e)};Mn.$id=Mn.getElementById;Mn.poolIndex=function(){var t=this._private.cy,e=t._private.elements,r=this[0]._private.data.id;return e._private.map.get(r).index};Mn.indexOf=function(t){var e=t[0]._private.data.id;return this._private.map.get(e).index};Mn.indexOfId=function(t){return t=""+t,this._private.map.get(t).index};Mn.json=function(t){var e=this.element(),r=this.cy();if(e==null&&t)return this;if(e!=null){var n=e._private;if(Ur(t)){if(r.startBatch(),t.data){e.data(t.data);var i=n.data;if(e.isEdge()){var a=!1,s={},l=t.data.source,u=t.data.target;l!=null&&l!=i.source&&(s.source=""+l,a=!0),u!=null&&u!=i.target&&(s.target=""+u,a=!0),a&&(e=e.move(s))}else{var h="parent"in t.data,f=t.data.parent;h&&(f!=null||i.parent!=null)&&f!=i.parent&&(f===void 0&&(f=null),f!=null&&(f=""+f),e=e.move({parent:f}))}}t.position&&e.position(t.position);var d=o(function(y,v,x){var b=t[y];b!=null&&b!==n[y]&&(b?e[v]():e[x]())},"checkSwitch");return d("removed","remove","restore"),d("selected","select","unselect"),d("selectable","selectify","unselectify"),d("locked","lock","unlock"),d("grabbable","grabify","ungrabify"),d("pannable","panify","unpanify"),t.classes!=null&&e.classes(t.classes),r.endBatch(),this}else if(t===void 0){var p={data:Yc(n.data),position:Yc(n.position),group:n.group,removed:n.removed,selected:n.selected,selectable:n.selectable,locked:n.locked,grabbable:n.grabbable,pannable:n.pannable,classes:null};p.classes="";var m=0;return n.classes.forEach(function(g){return p.classes+=m++===0?g:" "+g}),p}}};Mn.jsons=function(){for(var t=[],e=0;e<this.length;e++){var r=this[e],n=r.json();t.push(n)}return t};Mn.clone=function(){for(var t=this.cy(),e=[],r=0;r<this.length;r++){var n=this[r],i=n.json(),a=new NS(t,i,!1);e.push(a)}return new ka(t,e)};Mn.copy=Mn.clone;Mn.restore=function(){for(var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0,e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,r=this,n=r.cy(),i=n._private,a=[],s=[],l,u=0,h=r.length;u<h;u++){var f=r[u];e&&!f.removed()||(f.isNode()?a.push(f):s.push(f))}l=a.concat(s);var d,p=o(function(){l.splice(d,1),d--},"removeFromElements");for(d=0;d<l.length;d++){var m=l[d],g=m._private,y=g.data;if(m.clearTraversalCache(),!(!e&&!g.removed)){if(y.id===void 0)y.id=fme();else if(Ct(y.id))y.id=""+y.id;else if(Af(y.id)||!Zt(y.id)){ai("Can not create element with invalid string ID `"+y.id+"`"),p();continue}else if(n.hasElementWithId(y.id)){ai("Can not create second element with ID `"+y.id+"`"),p();continue}}var v=y.id;if(m.isNode()){var x=g.position;x.x==null&&(x.x=0),x.y==null&&(x.y=0)}if(m.isEdge()){for(var b=m,w=["source","target"],C=w.length,T=!1,E=0;E<C;E++){var A=w[E],S=y[A];Ct(S)&&(S=y[A]=""+y[A]),S==null||S===""?(ai("Can not create edge `"+v+"` with unspecified "+A),T=!0):n.hasElementWithId(S)||(ai("Can not create edge `"+v+"` with nonexistant "+A+" `"+S+"`"),T=!0)}if(T){p();continue}var _=n.getElementById(y.source),I=n.getElementById(y.target);_.same(I)?_._private.edges.push(b):(_._private.edges.push(b),I._private.edges.push(b)),b._private.source=_,b._private.target=I}g.map=new Xc,g.map.set(v,{ele:m,index:0}),g.removed=!1,e&&n.addToPool(m)}for(var D=0;D<a.length;D++){var k=a[D],L=k._private.data;Ct(L.parent)&&(L.parent=""+L.parent);var R=L.parent,O=R!=null;if(O||k._private.parent){var M=k._private.parent?n.collection().merge(k._private.parent):n.getElementById(R);if(M.empty())L.parent=void 0;else if(M[0].removed())un("Node added with missing parent, reference to parent removed"),L.parent=void 0,k._private.parent=null;else{for(var B=!1,F=M;!F.empty();){if(k.same(F)){B=!0,L.parent=void 0;break}F=F.parent()}B||(M[0]._private.children.push(k),k._private.parent=M[0],i.hasCompoundNodes=!0)}}}if(l.length>0){for(var P=l.length===r.length?r:new ka(n,l),z=0;z<P.length;z++){var $=P[z];$.isNode()||($.parallelEdges().clearTraversalCache(),$.source().clearTraversalCache(),$.target().clearTraversalCache())}var H;i.hasCompoundNodes?H=n.collection().merge(P).merge(P.connectedNodes()).merge(P.parent()):H=P,H.dirtyCompoundBoundsCache().dirtyBoundingBoxCache().updateStyle(t),t?P.emitAndNotify("add"):e&&P.emit("add")}return r};Mn.removed=function(){var t=this[0];return t&&t._private.removed};Mn.inside=function(){var t=this[0];return t&&!t._private.removed};Mn.remove=function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0,e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,r=this,n=[],i={},a=r._private.cy;function s(R){for(var O=R._private.edges,M=0;M<O.length;M++)u(O[M])}o(s,"addConnectedEdges");function l(R){for(var O=R._private.children,M=0;M<O.length;M++)u(O[M])}o(l,"addChildren");function u(R){var O=i[R.id()];e&&R.removed()||O||(i[R.id()]=!0,R.isNode()?(n.push(R),s(R),l(R)):n.unshift(R))}o(u,"add");for(var h=0,f=r.length;h<f;h++){var d=r[h];u(d)}function p(R,O){var M=R._private.edges;Df(M,O),R.clearTraversalCache()}o(p,"removeEdgeRef");function m(R){R.clearTraversalCache()}o(m,"removeParallelRef");var g=[];g.ids={};function y(R,O){O=O[0],R=R[0];var M=R._private.children,B=R.id();Df(M,O),O._private.parent=null,g.ids[B]||(g.ids[B]=!0,g.push(R))}o(y,"removeChildRef"),r.dirtyCompoundBoundsCache(),e&&a.removeFromPool(n);for(var v=0;v<n.length;v++){var x=n[v];if(x.isEdge()){var b=x.source()[0],w=x.target()[0];p(b,x),p(w,x);for(var C=x.parallelEdges(),T=0;T<C.length;T++){var E=C[T];m(E),E.isBundledBezier()&&E.dirtyBoundingBoxCache()}}else{var A=x.parent();A.length!==0&&y(A,x)}e&&(x._private.removed=!0)}var S=a._private.elements;a._private.hasCompoundNodes=!1;for(var _=0;_<S.length;_++){var I=S[_];if(I.isParent()){a._private.hasCompoundNodes=!0;break}}var D=new ka(this.cy(),n);D.size()>0&&(t?D.emitAndNotify("remove"):e&&D.emit("remove"));for(var k=0;k<g.length;k++){var L=g[k];(!e||!L.removed())&&L.updateStyle()}return D};Mn.move=function(t){var e=this._private.cy,r=this,n=!1,i=!1,a=o(function(g){return g==null?g:""+g},"toString");if(t.source!==void 0||t.target!==void 0){var s=a(t.source),l=a(t.target),u=s!=null&&e.hasElementWithId(s),h=l!=null&&e.hasElementWithId(l);(u||h)&&(e.batch(function(){r.remove(n,i),r.emitAndNotify("moveout");for(var m=0;m<r.length;m++){var g=r[m],y=g._private.data;g.isEdge()&&(u&&(y.source=s),h&&(y.target=l))}r.restore(n,i)}),r.emitAndNotify("move"))}else if(t.parent!==void 0){var f=a(t.parent),d=f===null||e.hasElementWithId(f);if(d){var p=f===null?void 0:f;e.batch(function(){var m=r.remove(n,i);m.emitAndNotify("moveout");for(var g=0;g<r.length;g++){var y=r[g],v=y._private.data;y.isNode()&&(v.parent=p)}m.restore(n,i)}),r.emitAndNotify("move")}}return this};[Sme,Zje,hS,Sf,Z1,pKe,FS,LKe,Kme,Qme,OKe,ES,fS,Ta,Cf,$a].forEach(function(t){rr(Mn,t)});VKe={add:o(function(e){var r,n=this;if(go(e)){var i=e;if(i._private.cy===n)r=i.restore();else{for(var a=[],s=0;s<i.length;s++){var l=i[s];a.push(l.json())}r=new ka(n,a)}}else if(En(e)){var u=e;r=new ka(n,u)}else if(Ur(e)&&(En(e.nodes)||En(e.edges))){for(var h=e,f=[],d=["nodes","edges"],p=0,m=d.length;p<m;p++){var g=d[p],y=h[g];if(En(y))for(var v=0,x=y.length;v<x;v++){var b=rr({group:g},y[v]);f.push(b)}}r=new ka(n,f)}else{var w=e;r=new NS(n,w).collection()}return r},"add"),remove:o(function(e){if(!go(e)){if(Zt(e)){var r=e;e=this.$(r)}}return e.remove()},"remove")};o(UKe,"generateCubicBezier");HKe=function(){function t(n){return-n.tension*n.x-n.friction*n.v}o(t,"springAccelerationForState");function e(n,i,a){var s={x:n.x+a.dx*i,v:n.v+a.dv*i,tension:n.tension,friction:n.friction};return{dx:s.v,dv:t(s)}}o(e,"springEvaluateStateWithDerivative");function r(n,i){var a={dx:n.v,dv:t(n)},s=e(n,i*.5,a),l=e(n,i*.5,s),u=e(n,i,l),h=1/6*(a.dx+2*(s.dx+l.dx)+u.dx),f=1/6*(a.dv+2*(s.dv+l.dv)+u.dv);return n.x=n.x+h*i,n.v=n.v+f*i,n}return o(r,"springIntegrateState"),o(function n(i,a,s){var l={x:-1,v:0,tension:null,friction:null},u=[0],h=0,f=1/1e4,d=16/1e3,p,m,g;for(i=parseFloat(i)||500,a=parseFloat(a)||20,s=s||null,l.tension=i,l.friction=a,p=s!==null,p?(h=n(i,a),m=h/s*d):m=d;g=r(g||l,m),u.push(1+g.x),h+=16,Math.abs(g.x)>f&&Math.abs(g.v)>f;);return p?function(y){return u[y*(u.length-1)|0]}:h},"springRK4Factory")}(),Nn=o(function(e,r,n,i){var a=UKe(e,r,n,i);return function(s,l,u){return s+(l-s)*a(u)}},"cubicBezier"),dS={linear:o(function(e,r,n){return e+(r-e)*n},"linear"),ease:Nn(.25,.1,.25,1),"ease-in":Nn(.42,0,1,1),"ease-out":Nn(0,0,.58,1),"ease-in-out":Nn(.42,0,.58,1),"ease-in-sine":Nn(.47,0,.745,.715),"ease-out-sine":Nn(.39,.575,.565,1),"ease-in-out-sine":Nn(.445,.05,.55,.95),"ease-in-quad":Nn(.55,.085,.68,.53),"ease-out-quad":Nn(.25,.46,.45,.94),"ease-in-out-quad":Nn(.455,.03,.515,.955),"ease-in-cubic":Nn(.55,.055,.675,.19),"ease-out-cubic":Nn(.215,.61,.355,1),"ease-in-out-cubic":Nn(.645,.045,.355,1),"ease-in-quart":Nn(.895,.03,.685,.22),"ease-out-quart":Nn(.165,.84,.44,1),"ease-in-out-quart":Nn(.77,0,.175,1),"ease-in-quint":Nn(.755,.05,.855,.06),"ease-out-quint":Nn(.23,1,.32,1),"ease-in-out-quint":Nn(.86,0,.07,1),"ease-in-expo":Nn(.95,.05,.795,.035),"ease-out-expo":Nn(.19,1,.22,1),"ease-in-out-expo":Nn(1,0,0,1),"ease-in-circ":Nn(.6,.04,.98,.335),"ease-out-circ":Nn(.075,.82,.165,1),"ease-in-out-circ":Nn(.785,.135,.15,.86),spring:o(function(e,r,n){if(n===0)return dS.linear;var i=HKe(e,r,n);return function(a,s,l){return a+(s-a)*i(l)}},"spring"),"cubic-bezier":Nn};o(x0e,"getEasedValue");o(b0e,"getValue");o($1,"ease");o(WKe,"step$1");o(Rb,"valid");o(qKe,"startAnimation");o(w0e,"stepAll");YKe={animate:cn.animate(),animation:cn.animation(),animated:cn.animated(),clearQueue:cn.clearQueue(),delay:cn.delay(),delayAnimation:cn.delayAnimation(),stop:cn.stop(),addToAnimationPool:o(function(e){var r=this;r.styleEnabled()&&r._private.aniEles.merge(e)},"addToAnimationPool"),stopAnimationLoop:o(function(){this._private.animationsRunning=!1},"stopAnimationLoop"),startAnimationLoop:o(function(){var e=this;if(e._private.animationsRunning=!0,!e.styleEnabled())return;function r(){e._private.animationsRunning&&xS(o(function(a){w0e(a,e),r()},"animationStep"))}o(r,"headlessStep");var n=e.renderer();n&&n.beforeRender?n.beforeRender(o(function(a,s){w0e(s,e)},"rendererAnimationStep"),n.beforeRenderPriorities.animations):r()},"startAnimationLoop")},XKe={qualifierCompare:o(function(e,r){return e==null||r==null?e==null&&r==null:e.sameText(r)},"qualifierCompare"),eventMatches:o(function(e,r,n){var i=r.qualifier;return i!=null?e!==n.target&&t4(n.target)&&i.matches(n.target):!0},"eventMatches"),addEventFields:o(function(e,r){r.cy=e,r.target=e},"addEventFields"),callbackContext:o(function(e,r,n){return r.qualifier!=null?n.target:e},"callbackContext")},iS=o(function(e){return Zt(e)?new Lf(e):e},"argSelector"),ege={createEmitter:o(function(){var e=this._private;return e.emitter||(e.emitter=new $S(XKe,this)),this},"createEmitter"),emitter:o(function(){return this._private.emitter},"emitter"),on:o(function(e,r,n){return this.emitter().on(e,iS(r),n),this},"on"),removeListener:o(function(e,r,n){return this.emitter().removeListener(e,iS(r),n),this},"removeListener"),removeAllListeners:o(function(){return this.emitter().removeAllListeners(),this},"removeAllListeners"),one:o(function(e,r,n){return this.emitter().one(e,iS(r),n),this},"one"),once:o(function(e,r,n){return this.emitter().one(e,iS(r),n),this},"once"),emit:o(function(e,r){return this.emitter().emit(e,r),this},"emit"),emitAndNotify:o(function(e,r){return this.emit(e),this.notify(e,r),this},"emitAndNotify")};cn.eventAliasesOn(ege);VP={png:o(function(e){var r=this._private.renderer;return e=e||{},r.png(e)},"png"),jpg:o(function(e){var r=this._private.renderer;return e=e||{},e.bg=e.bg||"#fff",r.jpg(e)},"jpg")};VP.jpeg=VP.jpg;pS={layout:o(function(e){var r=this;if(e==null){ai("Layout options must be specified to make a layout");return}if(e.name==null){ai("A `name` must be specified to make a layout");return}var n=e.name,i=r.extension("layout",n);if(i==null){ai("No such layout `"+n+"` found.  Did you forget to import it and `cytoscape.use()` it?");return}var a;Zt(e.eles)?a=r.$(e.eles):a=e.eles!=null?e.eles:r.$();var s=new i(rr({},e,{cy:r,eles:a}));return s},"layout")};pS.createLayout=pS.makeLayout=pS.layout;jKe={notify:o(function(e,r){var n=this._private;if(this.batching()){n.batchNotifications=n.batchNotifications||{};var i=n.batchNotifications[e]=n.batchNotifications[e]||this.collection();r!=null&&i.merge(r);return}if(n.notificationsEnabled){var a=this.renderer();this.destroyed()||!a||a.notify(e,r)}},"notify"),notifications:o(function(e){var r=this._private;return e===void 0?r.notificationsEnabled:(r.notificationsEnabled=!!e,this)},"notifications"),noNotifications:o(function(e){this.notifications(!1),e(),this.notifications(!0)},"noNotifications"),batching:o(function(){return this._private.batchCount>0},"batching"),startBatch:o(function(){var e=this._private;return e.batchCount==null&&(e.batchCount=0),e.batchCount===0&&(e.batchStyleEles=this.collection(),e.batchNotifications={}),e.batchCount++,this},"startBatch"),endBatch:o(function(){var e=this._private;if(e.batchCount===0)return this;if(e.batchCount--,e.batchCount===0){e.batchStyleEles.updateStyle();var r=this.renderer();Object.keys(e.batchNotifications).forEach(function(n){var i=e.batchNotifications[n];i.empty()?r.notify(n):r.notify(n,i)})}return this},"endBatch"),batch:o(function(e){return this.startBatch(),e(),this.endBatch(),this},"batch"),batchData:o(function(e){var r=this;return this.batch(function(){for(var n=Object.keys(e),i=0;i<n.length;i++){var a=n[i],s=e[a],l=r.getElementById(a);l.data(s)}})},"batchData")},KKe=la({hideEdgesOnViewport:!1,textureOnViewport:!1,motionBlur:!1,motionBlurOpacity:.05,pixelRatio:void 0,desktopTapThreshold:4,touchTapThreshold:8,wheelSensitivity:1,debug:!1,showFps:!1,webgl:!1,webglDebug:!1,webglDebugShowAtlases:!1,webglTexSize:2048,webglTexRows:12,webglBatchSize:2048,webglTexPerBatch:14,webglBgColor:[255,255,255]}),UP={renderTo:o(function(e,r,n,i){var a=this._private.renderer;return a.renderTo(e,r,n,i),this},"renderTo"),renderer:o(function(){return this._private.renderer},"renderer"),forceRender:o(function(){return this.notify("draw"),this},"forceRender"),resize:o(function(){return this.invalidateSize(),this.emitAndNotify("resize"),this},"resize"),initRenderer:o(function(e){var r=this,n=r.extension("renderer",e.name);if(n==null){ai("Can not initialise: No such renderer `".concat(e.name,"` found. Did you forget to import it and `cytoscape.use()` it?"));return}e.wheelSensitivity!==void 0&&un("You have set a custom wheel sensitivity.  This will make your app zoom unnaturally when using mainstream mice.  You should change this value from the default only if you can guarantee that all your users will use the same hardware and OS configuration as your current machine.");var i=KKe(e);i.cy=r,r._private.renderer=new n(i),this.notify("init")},"initRenderer"),destroyRenderer:o(function(){var e=this;e.notify("destroy");var r=e.container();if(r)for(r._cyreg=null;r.childNodes.length>0;)r.removeChild(r.childNodes[0]);e._private.renderer=null,e.mutableElements().forEach(function(n){var i=n._private;i.rscratch={},i.rstyle={},i.animation.current=[],i.animation.queue=[]})},"destroyRenderer"),onRender:o(function(e){return this.on("render",e)},"onRender"),offRender:o(function(e){return this.off("render",e)},"offRender")};UP.invalidateDimensions=UP.resize;mS={collection:o(function(e,r){return Zt(e)?this.$(e):go(e)?e.collection():En(e)?(r||(r={}),new ka(this,e,r.unique,r.removed)):new ka(this)},"collection"),nodes:o(function(e){var r=this.$(function(n){return n.isNode()});return e?r.filter(e):r},"nodes"),edges:o(function(e){var r=this.$(function(n){return n.isEdge()});return e?r.filter(e):r},"edges"),$:o(function(e){var r=this._private.elements;return e?r.filter(e):r.spawnSelf()},"$"),mutableElements:o(function(){return this._private.elements},"mutableElements")};mS.elements=mS.filter=mS.$;Ga={},$b="t",QKe="f";Ga.apply=function(t){for(var e=this,r=e._private,n=r.cy,i=n.collection(),a=0;a<t.length;a++){var s=t[a],l=e.getContextMeta(s);if(!l.empty){var u=e.getContextStyle(l),h=e.applyContextStyle(l,u,s);s._private.appliedInitStyle?e.updateTransitions(s,h.diffProps):s._private.appliedInitStyle=!0;var f=e.updateStyleHints(s);f&&i.push(s)}}return i};Ga.getPropertiesDiff=function(t,e){var r=this,n=r._private.propDiffs=r._private.propDiffs||{},i=t+"-"+e,a=n[i];if(a)return a;for(var s=[],l={},u=0;u<r.length;u++){var h=r[u],f=t[u]===$b,d=e[u]===$b,p=f!==d,m=h.mappedProperties.length>0;if(p||d&&m){var g=void 0;p&&m||p?g=h.properties:m&&(g=h.mappedProperties);for(var y=0;y<g.length;y++){for(var v=g[y],x=v.name,b=!1,w=u+1;w<r.length;w++){var C=r[w],T=e[w]===$b;if(T&&(b=C.properties[v.name]!=null,b))break}!l[x]&&!b&&(l[x]=!0,s.push(x))}}}return n[i]=s,s};Ga.getContextMeta=function(t){for(var e=this,r="",n,i=t._private.styleCxtKey||"",a=0;a<e.length;a++){var s=e[a],l=s.selector&&s.selector.matches(t);l?r+=$b:r+=QKe}return n=e.getPropertiesDiff(i,r),t._private.styleCxtKey=r,{key:r,diffPropNames:n,empty:n.length===0}};Ga.getContextStyle=function(t){var e=t.key,r=this,n=this._private.contextStyles=this._private.contextStyles||{};if(n[e])return n[e];for(var i={_private:{key:e}},a=0;a<r.length;a++){var s=r[a],l=e[a]===$b;if(l)for(var u=0;u<s.properties.length;u++){var h=s.properties[u];i[h.name]=h}}return n[e]=i,i};Ga.applyContextStyle=function(t,e,r){for(var n=this,i=t.diffPropNames,a={},s=n.types,l=0;l<i.length;l++){var u=i[l],h=e[u],f=r.pstyle(u);if(!h)if(f)f.bypass?h={name:u,deleteBypassed:!0}:h={name:u,delete:!0};else continue;if(f!==h){if(h.mapped===s.fn&&f!=null&&f.mapping!=null&&f.mapping.value===h.value){var d=f.mapping,p=d.fnValue=h.value(r);if(p===d.prevFnValue)continue}var m=a[u]={prev:f};n.applyParsedProperty(r,h),m.next=r.pstyle(u),m.next&&m.next.bypass&&(m.next=m.next.bypassed)}}return{diffProps:a}};Ga.updateStyleHints=function(t){var e=t._private,r=this,n=r.propertyGroupNames,i=r.propertyGroupKeys,a=o(function(te,J,se){return r.getPropertiesHash(te,J,se)},"propHash"),s=e.styleKey;if(t.removed())return!1;var l=e.group==="nodes",u=t._private.style;n=Object.keys(u);for(var h=0;h<i.length;h++){var f=i[h];e.styleKeys[f]=[V1,Ob]}for(var d=o(function(te,J){return e.styleKeys[J][0]=Hb(te,e.styleKeys[J][0])},"updateGrKey1"),p=o(function(te,J){return e.styleKeys[J][1]=Wb(te,e.styleKeys[J][1])},"updateGrKey2"),m=o(function(te,J){d(te,J),p(te,J)},"updateGrKey"),g=o(function(te,J){for(var se=0;se<te.length;se++){var ue=te.charCodeAt(se);d(ue,J),p(ue,J)}},"updateGrKeyWStr"),y=2e9,v=o(function(te){return-128<te&&te<128&&Math.floor(te)!==te?y-(te*1024|0):te},"cleanNum"),x=0;x<n.length;x++){var b=n[x],w=u[b];if(w!=null){var C=this.properties[b],T=C.type,E=C.groupKey,A=void 0;C.hashOverride!=null?A=C.hashOverride(t,w):w.pfValue!=null&&(A=w.pfValue);var S=C.enums==null?w.value:null,_=A!=null,I=S!=null,D=_||I,k=w.units;if(T.number&&D&&!T.multiple){var L=_?A:S;m(v(L),E),!_&&k!=null&&g(k,E)}else g(w.strValue,E)}}for(var R=[V1,Ob],O=0;O<i.length;O++){var M=i[O],B=e.styleKeys[M];R[0]=Hb(B[0],R[0]),R[1]=Wb(B[1],R[1])}e.styleKey=rqe(R[0],R[1]);var F=e.styleKeys;e.labelDimsKey=wf(F.labelDimensions);var P=a(t,["label"],F.labelDimensions);if(e.labelKey=wf(P),e.labelStyleKey=wf(j6(F.commonLabel,P)),!l){var z=a(t,["source-label"],F.labelDimensions);e.sourceLabelKey=wf(z),e.sourceLabelStyleKey=wf(j6(F.commonLabel,z));var $=a(t,["target-label"],F.labelDimensions);e.targetLabelKey=wf($),e.targetLabelStyleKey=wf(j6(F.commonLabel,$))}if(l){var H=e.styleKeys,Q=H.nodeBody,j=H.nodeBorder,ie=H.nodeOutline,ne=H.backgroundImage,le=H.compound,he=H.pie,K=[Q,j,ie,ne,le,he].filter(function(X){return X!=null}).reduce(j6,[V1,Ob]);e.nodeKey=wf(K),e.hasPie=he!=null&&he[0]!==V1&&he[1]!==Ob}return s!==e.styleKey};Ga.clearStyleHints=function(t){var e=t._private;e.styleCxtKey="",e.styleKeys={},e.styleKey=null,e.labelKey=null,e.labelStyleKey=null,e.sourceLabelKey=null,e.sourceLabelStyleKey=null,e.targetLabelKey=null,e.targetLabelStyleKey=null,e.nodeKey=null,e.hasPie=null};Ga.applyParsedProperty=function(t,e){var r=this,n=e,i=t._private.style,a,s=r.types,l=r.properties[n.name].type,u=n.bypass,h=i[n.name],f=h&&h.bypass,d=t._private,p="mapping",m=o(function(Q){return Q==null?null:Q.pfValue!=null?Q.pfValue:Q.value},"getVal"),g=o(function(){var Q=m(h),j=m(n);r.checkTriggers(t,n.name,Q,j)},"checkTriggers");if(e.name==="curve-style"&&t.isEdge()&&(e.value!=="bezier"&&t.isLoop()||e.value==="haystack"&&(t.source().isParent()||t.target().isParent()))&&(n=e=this.parse(e.name,"bezier",u)),n.delete)return i[n.name]=void 0,g(),!0;if(n.deleteBypassed)return h?h.bypass?(h.bypassed=void 0,g(),!0):!1:(g(),!0);if(n.deleteBypass)return h?h.bypass?(i[n.name]=h.bypassed,g(),!0):!1:(g(),!0);var y=o(function(){un("Do not assign mappings to elements without corresponding data (i.e. ele `"+t.id()+"` has no mapping for property `"+n.name+"` with data field `"+n.field+"`); try a `["+n.field+"]` selector to limit scope to elements with `"+n.field+"` defined")},"printMappingErr");switch(n.mapped){case s.mapData:{for(var v=n.field.split("."),x=d.data,b=0;b<v.length&&x;b++){var w=v[b];x=x[w]}if(x==null)return y(),!1;var C;if(Ct(x)){var T=n.fieldMax-n.fieldMin;T===0?C=0:C=(x-n.fieldMin)/T}else return un("Do not use continuous mappers without specifying numeric data (i.e. `"+n.field+": "+x+"` for `"+t.id()+"` is non-numeric)"),!1;if(C<0?C=0:C>1&&(C=1),l.color){var E=n.valueMin[0],A=n.valueMax[0],S=n.valueMin[1],_=n.valueMax[1],I=n.valueMin[2],D=n.valueMax[2],k=n.valueMin[3]==null?1:n.valueMin[3],L=n.valueMax[3]==null?1:n.valueMax[3],R=[Math.round(E+(A-E)*C),Math.round(S+(_-S)*C),Math.round(I+(D-I)*C),Math.round(k+(L-k)*C)];a={bypass:n.bypass,name:n.name,value:R,strValue:"rgb("+R[0]+", "+R[1]+", "+R[2]+")"}}else if(l.number){var O=n.valueMin+(n.valueMax-n.valueMin)*C;a=this.parse(n.name,O,n.bypass,p)}else return!1;if(!a)return y(),!1;a.mapping=n,n=a;break}case s.data:{for(var M=n.field.split("."),B=d.data,F=0;F<M.length&&B;F++){var P=M[F];B=B[P]}if(B!=null&&(a=this.parse(n.name,B,n.bypass,p)),!a)return y(),!1;a.mapping=n,n=a;break}case s.fn:{var z=n.value,$=n.fnValue!=null?n.fnValue:z(t);if(n.prevFnValue=$,$==null)return un("Custom function mappers may not return null (i.e. `"+n.name+"` for ele `"+t.id()+"` is null)"),!1;if(a=this.parse(n.name,$,n.bypass,p),!a)return un("Custom function mappers may not return invalid values for the property type (i.e. `"+n.name+"` for ele `"+t.id()+"` is invalid)"),!1;a.mapping=Yc(n),n=a;break}case void 0:break;default:return!1}return u?(f?n.bypassed=h.bypassed:n.bypassed=h,i[n.name]=n):f?h.bypassed=n:i[n.name]=n,g(),!0};Ga.cleanElements=function(t,e){for(var r=0;r<t.length;r++){var n=t[r];if(this.clearStyleHints(n),n.dirtyCompoundBoundsCache(),n.dirtyBoundingBoxCache(),!e)n._private.style={};else for(var i=n._private.style,a=Object.keys(i),s=0;s<a.length;s++){var l=a[s],u=i[l];u!=null&&(u.bypass?u.bypassed=null:i[l]=null)}}};Ga.update=function(){var t=this._private.cy,e=t.mutableElements();e.updateStyle()};Ga.updateTransitions=function(t,e){var r=this,n=t._private,i=t.pstyle("transition-property").value,a=t.pstyle("transition-duration").pfValue,s=t.pstyle("transition-delay").pfValue;if(i.length>0&&a>0){for(var l={},u=!1,h=0;h<i.length;h++){var f=i[h],d=t.pstyle(f),p=e[f];if(p){var m=p.prev,g=m,y=p.next!=null?p.next:d,v=!1,x=void 0,b=1e-6;g&&(Ct(g.pfValue)&&Ct(y.pfValue)?(v=y.pfValue-g.pfValue,x=g.pfValue+b*v):Ct(g.value)&&Ct(y.value)?(v=y.value-g.value,x=g.value+b*v):En(g.value)&&En(y.value)&&(v=g.value[0]!==y.value[0]||g.value[1]!==y.value[1]||g.value[2]!==y.value[2],x=g.strValue),v&&(l[f]=y.strValue,this.applyBypass(t,f,x),u=!0))}}if(!u)return;n.transitioning=!0,new ey(function(w){s>0?t.delayAnimation(s).play().promise().then(w):w()}).then(function(){return t.animation({style:l,duration:a,easing:t.pstyle("transition-timing-function").value,queue:!1}).play().promise()}).then(function(){r.removeBypasses(t,i),t.emitAndNotify("style"),n.transitioning=!1})}else n.transitioning&&(this.removeBypasses(t,i),t.emitAndNotify("style"),n.transitioning=!1)};Ga.checkTrigger=function(t,e,r,n,i,a){var s=this.properties[e],l=i(s);l!=null&&l(r,n)&&a(s)};Ga.checkZOrderTrigger=function(t,e,r,n){var i=this;this.checkTrigger(t,e,r,n,function(a){return a.triggersZOrder},function(){i._private.cy.notify("zorder",t)})};Ga.checkBoundsTrigger=function(t,e,r,n){this.checkTrigger(t,e,r,n,function(i){return i.triggersBounds},function(i){t.dirtyCompoundBoundsCache(),t.dirtyBoundingBoxCache(),i.triggersBoundsOfParallelBeziers&&e==="curve-style"&&(r==="bezier"||n==="bezier")&&t.parallelEdges().forEach(function(a){a.dirtyBoundingBoxCache()}),i.triggersBoundsOfConnectedEdges&&e==="display"&&(r==="none"||n==="none")&&t.connectedEdges().forEach(function(a){a.dirtyBoundingBoxCache()})})};Ga.checkTriggers=function(t,e,r,n){t.dirtyStyleCache(),this.checkZOrderTrigger(t,e,r,n),this.checkBoundsTrigger(t,e,r,n)};s4={};s4.applyBypass=function(t,e,r,n){var i=this,a=[],s=!0;if(e==="*"||e==="**"){if(r!==void 0)for(var l=0;l<i.properties.length;l++){var u=i.properties[l],h=u.name,f=this.parse(h,r,!0);f&&a.push(f)}}else if(Zt(e)){var d=this.parse(e,r,!0);d&&a.push(d)}else if(Ur(e)){var p=e;n=r;for(var m=Object.keys(p),g=0;g<m.length;g++){var y=m[g],v=p[y];if(v===void 0&&(v=p[LS(y)]),v!==void 0){var x=this.parse(y,v,!0);x&&a.push(x)}}}else return!1;if(a.length===0)return!1;for(var b=!1,w=0;w<t.length;w++){for(var C=t[w],T={},E=void 0,A=0;A<a.length;A++){var S=a[A];if(n){var _=C.pstyle(S.name);E=T[S.name]={prev:_}}b=this.applyParsedProperty(C,Yc(S))||b,n&&(E.next=C.pstyle(S.name))}b&&this.updateStyleHints(C),n&&this.updateTransitions(C,T,s)}return b};s4.overrideBypass=function(t,e,r){e=eB(e);for(var n=0;n<t.length;n++){var i=t[n],a=i._private.style[e],s=this.properties[e].type,l=s.color,u=s.mutiple,h=a?a.pfValue!=null?a.pfValue:a.value:null;!a||!a.bypass?this.applyBypass(i,e,r):(a.value=r,a.pfValue!=null&&(a.pfValue=r),l?a.strValue="rgb("+r.join(",")+")":u?a.strValue=r.join(" "):a.strValue=""+r,this.updateStyleHints(i)),this.checkTriggers(i,e,h,r)}};s4.removeAllBypasses=function(t,e){return this.removeBypasses(t,this.propertyNames,e)};s4.removeBypasses=function(t,e,r){for(var n=!0,i=0;i<t.length;i++){for(var a=t[i],s={},l=0;l<e.length;l++){var u=e[l],h=this.properties[u],f=a.pstyle(h.name);if(!(!f||!f.bypass)){var d="",p=this.parse(u,d,!0),m=s[h.name]={prev:f};this.applyParsedProperty(a,p),m.next=a.pstyle(h.name)}}this.updateStyleHints(a),r&&this.updateTransitions(a,s,n)}};pB={};pB.getEmSizeInPixels=function(){var t=this.containerCss("font-size");return t!=null?parseFloat(t):1};pB.containerCss=function(t){var e=this._private.cy,r=e.container(),n=e.window();if(n&&r&&n.getComputedStyle)return n.getComputedStyle(r).getPropertyValue(t)};jc={};jc.getRenderedStyle=function(t,e){return e?this.getStylePropertyValue(t,e,!0):this.getRawStyle(t,!0)};jc.getRawStyle=function(t,e){var r=this;if(t=t[0],t){for(var n={},i=0;i<r.properties.length;i++){var a=r.properties[i],s=r.getStylePropertyValue(t,a.name,e);s!=null&&(n[a.name]=s,n[LS(a.name)]=s)}return n}};jc.getIndexedStyle=function(t,e,r,n){var i=t.pstyle(e)[r][n];return i??t.cy().style().getDefaultProperty(e)[r][0]};jc.getStylePropertyValue=function(t,e,r){var n=this;if(t=t[0],t){var i=n.properties[e];i.alias&&(i=i.pointsTo);var a=i.type,s=t.pstyle(i.name);if(s){var l=s.value,u=s.units,h=s.strValue;if(r&&a.number&&l!=null&&Ct(l)){var f=t.cy().zoom(),d=o(function(v){return v*f},"getRenderedValue"),p=o(function(v,x){return d(v)+x},"getValueStringWithUnits"),m=En(l),g=m?u.every(function(y){return y!=null}):u!=null;return g?m?l.map(function(y,v){return p(y,u[v])}).join(" "):p(l,u):m?l.map(function(y){return Zt(y)?y:""+d(y)}).join(" "):""+d(l)}else if(h!=null)return h}return null}};jc.getAnimationStartStyle=function(t,e){for(var r={},n=0;n<e.length;n++){var i=e[n],a=i.name,s=t.pstyle(a);s!==void 0&&(Ur(s)?s=this.parse(a,s.strValue):s=this.parse(a,s)),s&&(r[a]=s)}return r};jc.getPropsList=function(t){var e=this,r=[],n=t,i=e.properties;if(n)for(var a=Object.keys(n),s=0;s<a.length;s++){var l=a[s],u=n[l],h=i[l]||i[eB(l)],f=this.parse(h.name,u);f&&r.push(f)}return r};jc.getNonDefaultPropertiesHash=function(t,e,r){var n=r.slice(),i,a,s,l,u,h;for(u=0;u<e.length;u++)if(i=e[u],a=t.pstyle(i,!1),a!=null)if(a.pfValue!=null)n[0]=Hb(l,n[0]),n[1]=Wb(l,n[1]);else for(s=a.strValue,h=0;h<s.length;h++)l=s.charCodeAt(h),n[0]=Hb(l,n[0]),n[1]=Wb(l,n[1]);return n};jc.getPropertiesHash=jc.getNonDefaultPropertiesHash;VS={};VS.appendFromJson=function(t){for(var e=this,r=0;r<t.length;r++){var n=t[r],i=n.selector,a=n.style||n.css,s=Object.keys(a);e.selector(i);for(var l=0;l<s.length;l++){var u=s[l],h=a[u];e.css(u,h)}}return e};VS.fromJson=function(t){var e=this;return e.resetToDefault(),e.appendFromJson(t),e};VS.json=function(){for(var t=[],e=this.defaultLength;e<this.length;e++){for(var r=this[e],n=r.selector,i=r.properties,a={},s=0;s<i.length;s++){var l=i[s];a[l.name]=l.strValue}t.push({selector:n?n.toString():"core",style:a})}return t};mB={};mB.appendFromString=function(t){var e=this,r=this,n=""+t,i,a,s;n=n.replace(/[/][*](\s|.)+?[*][/]/g,"");function l(){n.length>i.length?n=n.substr(i.length):n=""}o(l,"removeSelAndBlockFromRemaining");function u(){a.length>s.length?a=a.substr(s.length):a=""}for(o(u,"removePropAndValFromRem");;){var h=n.match(/^\s*$/);if(h)break;var f=n.match(/^\s*((?:.|\s)+?)\s*\{((?:.|\s)+?)\}/);if(!f){un("Halting stylesheet parsing: String stylesheet contains more to parse but no selector and block found in: "+n);break}i=f[0];var d=f[1];if(d!=="core"){var p=new Lf(d);if(p.invalid){un("Skipping parsing of block: Invalid selector found in string stylesheet: "+d),l();continue}}var m=f[2],g=!1;a=m;for(var y=[];;){var v=a.match(/^\s*$/);if(v)break;var x=a.match(/^\s*(.+?)\s*:\s*(.+?)(?:\s*;|\s*$)/);if(!x){un("Skipping parsing of block: Invalid formatting of style property and value definitions found in:"+m),g=!0;break}s=x[0];var b=x[1],w=x[2],C=e.properties[b];if(!C){un("Skipping property: Invalid property name in: "+s),u();continue}var T=r.parse(b,w);if(!T){un("Skipping property: Invalid property definition in: "+s),u();continue}y.push({name:b,val:w}),u()}if(g){l();break}r.selector(d);for(var E=0;E<y.length;E++){var A=y[E];r.css(A.name,A.val)}l()}return r};mB.fromString=function(t){var e=this;return e.resetToDefault(),e.appendFromString(t),e};wa={};(function(){var t=Hi,e=sWe,r=lWe,n=cWe,i=uWe,a=o(function(K){return"^"+K+"\\s*\\(\\s*([\\w\\.]+)\\s*\\)$"},"data"),s=o(function(K){var X=t+"|\\w+|"+e+"|"+r+"|"+n+"|"+i;return"^"+K+"\\s*\\(([\\w\\.]+)\\s*\\,\\s*("+t+")\\s*\\,\\s*("+t+")\\s*,\\s*("+X+")\\s*\\,\\s*("+X+")\\)$"},"mapData"),l=[`^url\\s*\\(\\s*['"]?(.+?)['"]?\\s*\\)$`,"^(none)$","^(.+)$"];wa.types={time:{number:!0,min:0,units:"s|ms",implicitUnits:"ms"},percent:{number:!0,min:0,max:100,units:"%",implicitUnits:"%"},percentages:{number:!0,min:0,max:100,units:"%",implicitUnits:"%",multiple:!0},zeroOneNumber:{number:!0,min:0,max:1,unitless:!0},zeroOneNumbers:{number:!0,min:0,max:1,unitless:!0,multiple:!0},nOneOneNumber:{number:!0,min:-1,max:1,unitless:!0},nonNegativeInt:{number:!0,min:0,integer:!0,unitless:!0},nonNegativeNumber:{number:!0,min:0,unitless:!0},position:{enums:["parent","origin"]},nodeSize:{number:!0,min:0,enums:["label"]},number:{number:!0,unitless:!0},numbers:{number:!0,unitless:!0,multiple:!0},positiveNumber:{number:!0,unitless:!0,min:0,strictMin:!0},size:{number:!0,min:0},bidirectionalSize:{number:!0},bidirectionalSizeMaybePercent:{number:!0,allowPercent:!0},bidirectionalSizes:{number:!0,multiple:!0},sizeMaybePercent:{number:!0,min:0,allowPercent:!0},axisDirection:{enums:["horizontal","leftward","rightward","vertical","upward","downward","auto"]},paddingRelativeTo:{enums:["width","height","average","min","max"]},bgWH:{number:!0,min:0,allowPercent:!0,enums:["auto"],multiple:!0},bgPos:{number:!0,allowPercent:!0,multiple:!0},bgRelativeTo:{enums:["inner","include-padding"],multiple:!0},bgRepeat:{enums:["repeat","repeat-x","repeat-y","no-repeat"],multiple:!0},bgFit:{enums:["none","contain","cover"],multiple:!0},bgCrossOrigin:{enums:["anonymous","use-credentials","null"],multiple:!0},bgClip:{enums:["none","node"],multiple:!0},bgContainment:{enums:["inside","over"],multiple:!0},color:{color:!0},colors:{color:!0,multiple:!0},fill:{enums:["solid","linear-gradient","radial-gradient"]},bool:{enums:["yes","no"]},bools:{enums:["yes","no"],multiple:!0},lineStyle:{enums:["solid","dotted","dashed"]},lineCap:{enums:["butt","round","square"]},linePosition:{enums:["center","inside","outside"]},lineJoin:{enums:["round","bevel","miter"]},borderStyle:{enums:["solid","dotted","dashed","double"]},curveStyle:{enums:["bezier","unbundled-bezier","haystack","segments","straight","straight-triangle","taxi","round-segments","round-taxi"]},radiusType:{enums:["arc-radius","influence-radius"],multiple:!0},fontFamily:{regex:'^([\\w- \\"]+(?:\\s*,\\s*[\\w- \\"]+)*)$'},fontStyle:{enums:["italic","normal","oblique"]},fontWeight:{enums:["normal","bold","bolder","lighter","100","200","300","400","500","600","800","900",100,200,300,400,500,600,700,800,900]},textDecoration:{enums:["none","underline","overline","line-through"]},textTransform:{enums:["none","uppercase","lowercase"]},textWrap:{enums:["none","wrap","ellipsis"]},textOverflowWrap:{enums:["whitespace","anywhere"]},textBackgroundShape:{enums:["rectangle","roundrectangle","round-rectangle"]},nodeShape:{enums:["rectangle","roundrectangle","round-rectangle","cutrectangle","cut-rectangle","bottomroundrectangle","bottom-round-rectangle","barrel","ellipse","triangle","round-triangle","square","pentagon","round-pentagon","hexagon","round-hexagon","concavehexagon","concave-hexagon","heptagon","round-heptagon","octagon","round-octagon","tag","round-tag","star","diamond","round-diamond","vee","rhomboid","right-rhomboid","polygon"]},overlayShape:{enums:["roundrectangle","round-rectangle","ellipse"]},cornerRadius:{number:!0,min:0,units:"px|em",implicitUnits:"px",enums:["auto"]},compoundIncludeLabels:{enums:["include","exclude"]},arrowShape:{enums:["tee","triangle","triangle-tee","circle-triangle","triangle-cross","triangle-backcurve","vee","square","circle","diamond","chevron","none"]},arrowFill:{enums:["filled","hollow"]},arrowWidth:{number:!0,units:"%|px|em",implicitUnits:"px",enums:["match-line"]},display:{enums:["element","none"]},visibility:{enums:["hidden","visible"]},zCompoundDepth:{enums:["bottom","orphan","auto","top"]},zIndexCompare:{enums:["auto","manual"]},valign:{enums:["top","center","bottom"]},halign:{enums:["left","center","right"]},justification:{enums:["left","center","right","auto"]},text:{string:!0},data:{mapping:!0,regex:a("data")},layoutData:{mapping:!0,regex:a("layoutData")},scratch:{mapping:!0,regex:a("scratch")},mapData:{mapping:!0,regex:s("mapData")},mapLayoutData:{mapping:!0,regex:s("mapLayoutData")},mapScratch:{mapping:!0,regex:s("mapScratch")},fn:{mapping:!0,fn:!0},url:{regexes:l,singleRegexMatchValue:!0},urls:{regexes:l,singleRegexMatchValue:!0,multiple:!0},propList:{propList:!0},angle:{number:!0,units:"deg|rad",implicitUnits:"rad"},textRotation:{number:!0,units:"deg|rad",implicitUnits:"rad",enums:["none","autorotate"]},polygonPointList:{number:!0,multiple:!0,evenMultiple:!0,min:-1,max:1,unitless:!0},edgeDistances:{enums:["intersection","node-position","endpoints"]},edgeEndpoint:{number:!0,multiple:!0,units:"%|px|em|deg|rad",implicitUnits:"px",enums:["inside-to-node","outside-to-node","outside-to-node-or-label","outside-to-line","outside-to-line-or-label"],singleEnum:!0,validate:o(function(K,X){switch(K.length){case 2:return X[0]!=="deg"&&X[0]!=="rad"&&X[1]!=="deg"&&X[1]!=="rad";case 1:return Zt(K[0])||X[0]==="deg"||X[0]==="rad";default:return!1}},"validate")},easing:{regexes:["^(spring)\\s*\\(\\s*("+t+")\\s*,\\s*("+t+")\\s*\\)$","^(cubic-bezier)\\s*\\(\\s*("+t+")\\s*,\\s*("+t+")\\s*,\\s*("+t+")\\s*,\\s*("+t+")\\s*\\)$"],enums:["linear","ease","ease-in","ease-out","ease-in-out","ease-in-sine","ease-out-sine","ease-in-out-sine","ease-in-quad","ease-out-quad","ease-in-out-quad","ease-in-cubic","ease-out-cubic","ease-in-out-cubic","ease-in-quart","ease-out-quart","ease-in-out-quart","ease-in-quint","ease-out-quint","ease-in-out-quint","ease-in-expo","ease-out-expo","ease-in-out-expo","ease-in-circ","ease-out-circ","ease-in-out-circ"]},gradientDirection:{enums:["to-bottom","to-top","to-left","to-right","to-bottom-right","to-bottom-left","to-top-right","to-top-left","to-right-bottom","to-left-bottom","to-right-top","to-left-top"]},boundsExpansion:{number:!0,multiple:!0,min:0,validate:o(function(K){var X=K.length;return X===1||X===2||X===4},"validate")}};var u={zeroNonZero:o(function(K,X){return(K==null||X==null)&&K!==X||K==0&&X!=0?!0:K!=0&&X==0},"zeroNonZero"),any:o(function(K,X){return K!=X},"any"),emptyNonEmpty:o(function(K,X){var te=Af(K),J=Af(X);return te&&!J||!te&&J},"emptyNonEmpty")},h=wa.types,f=[{name:"label",type:h.text,triggersBounds:u.any,triggersZOrder:u.emptyNonEmpty},{name:"text-rotation",type:h.textRotation,triggersBounds:u.any},{name:"text-margin-x",type:h.bidirectionalSize,triggersBounds:u.any},{name:"text-margin-y",type:h.bidirectionalSize,triggersBounds:u.any}],d=[{name:"source-label",type:h.text,triggersBounds:u.any},{name:"source-text-rotation",type:h.textRotation,triggersBounds:u.any},{name:"source-text-margin-x",type:h.bidirectionalSize,triggersBounds:u.any},{name:"source-text-margin-y",type:h.bidirectionalSize,triggersBounds:u.any},{name:"source-text-offset",type:h.size,triggersBounds:u.any}],p=[{name:"target-label",type:h.text,triggersBounds:u.any},{name:"target-text-rotation",type:h.textRotation,triggersBounds:u.any},{name:"target-text-margin-x",type:h.bidirectionalSize,triggersBounds:u.any},{name:"target-text-margin-y",type:h.bidirectionalSize,triggersBounds:u.any},{name:"target-text-offset",type:h.size,triggersBounds:u.any}],m=[{name:"font-family",type:h.fontFamily,triggersBounds:u.any},{name:"font-style",type:h.fontStyle,triggersBounds:u.any},{name:"font-weight",type:h.fontWeight,triggersBounds:u.any},{name:"font-size",type:h.size,triggersBounds:u.any},{name:"text-transform",type:h.textTransform,triggersBounds:u.any},{name:"text-wrap",type:h.textWrap,triggersBounds:u.any},{name:"text-overflow-wrap",type:h.textOverflowWrap,triggersBounds:u.any},{name:"text-max-width",type:h.size,triggersBounds:u.any},{name:"text-outline-width",type:h.size,triggersBounds:u.any},{name:"line-height",type:h.positiveNumber,triggersBounds:u.any}],g=[{name:"text-valign",type:h.valign,triggersBounds:u.any},{name:"text-halign",type:h.halign,triggersBounds:u.any},{name:"color",type:h.color},{name:"text-outline-color",type:h.color},{name:"text-outline-opacity",type:h.zeroOneNumber},{name:"text-background-color",type:h.color},{name:"text-background-opacity",type:h.zeroOneNumber},{name:"text-background-padding",type:h.size,triggersBounds:u.any},{name:"text-border-opacity",type:h.zeroOneNumber},{name:"text-border-color",type:h.color},{name:"text-border-width",type:h.size,triggersBounds:u.any},{name:"text-border-style",type:h.borderStyle,triggersBounds:u.any},{name:"text-background-shape",type:h.textBackgroundShape,triggersBounds:u.any},{name:"text-justification",type:h.justification}],y=[{name:"events",type:h.bool,triggersZOrder:u.any},{name:"text-events",type:h.bool,triggersZOrder:u.any}],v=[{name:"display",type:h.display,triggersZOrder:u.any,triggersBounds:u.any,triggersBoundsOfConnectedEdges:!0},{name:"visibility",type:h.visibility,triggersZOrder:u.any},{name:"opacity",type:h.zeroOneNumber,triggersZOrder:u.zeroNonZero},{name:"text-opacity",type:h.zeroOneNumber},{name:"min-zoomed-font-size",type:h.size},{name:"z-compound-depth",type:h.zCompoundDepth,triggersZOrder:u.any},{name:"z-index-compare",type:h.zIndexCompare,triggersZOrder:u.any},{name:"z-index",type:h.number,triggersZOrder:u.any}],x=[{name:"overlay-padding",type:h.size,triggersBounds:u.any},{name:"overlay-color",type:h.color},{name:"overlay-opacity",type:h.zeroOneNumber,triggersBounds:u.zeroNonZero},{name:"overlay-shape",type:h.overlayShape,triggersBounds:u.any},{name:"overlay-corner-radius",type:h.cornerRadius}],b=[{name:"underlay-padding",type:h.size,triggersBounds:u.any},{name:"underlay-color",type:h.color},{name:"underlay-opacity",type:h.zeroOneNumber,triggersBounds:u.zeroNonZero},{name:"underlay-shape",type:h.overlayShape,triggersBounds:u.any},{name:"underlay-corner-radius",type:h.cornerRadius}],w=[{name:"transition-property",type:h.propList},{name:"transition-duration",type:h.time},{name:"transition-delay",type:h.time},{name:"transition-timing-function",type:h.easing}],C=o(function(K,X){return X.value==="label"?-K.poolIndex():X.pfValue},"nodeSizeHashOverride"),T=[{name:"height",type:h.nodeSize,triggersBounds:u.any,hashOverride:C},{name:"width",type:h.nodeSize,triggersBounds:u.any,hashOverride:C},{name:"shape",type:h.nodeShape,triggersBounds:u.any},{name:"shape-polygon-points",type:h.polygonPointList,triggersBounds:u.any},{name:"corner-radius",type:h.cornerRadius},{name:"background-color",type:h.color},{name:"background-fill",type:h.fill},{name:"background-opacity",type:h.zeroOneNumber},{name:"background-blacken",type:h.nOneOneNumber},{name:"background-gradient-stop-colors",type:h.colors},{name:"background-gradient-stop-positions",type:h.percentages},{name:"background-gradient-direction",type:h.gradientDirection},{name:"padding",type:h.sizeMaybePercent,triggersBounds:u.any},{name:"padding-relative-to",type:h.paddingRelativeTo,triggersBounds:u.any},{name:"bounds-expansion",type:h.boundsExpansion,triggersBounds:u.any}],E=[{name:"border-color",type:h.color},{name:"border-opacity",type:h.zeroOneNumber},{name:"border-width",type:h.size,triggersBounds:u.any},{name:"border-style",type:h.borderStyle},{name:"border-cap",type:h.lineCap},{name:"border-join",type:h.lineJoin},{name:"border-dash-pattern",type:h.numbers},{name:"border-dash-offset",type:h.number},{name:"border-position",type:h.linePosition}],A=[{name:"outline-color",type:h.color},{name:"outline-opacity",type:h.zeroOneNumber},{name:"outline-width",type:h.size,triggersBounds:u.any},{name:"outline-style",type:h.borderStyle},{name:"outline-offset",type:h.size,triggersBounds:u.any}],S=[{name:"background-image",type:h.urls},{name:"background-image-crossorigin",type:h.bgCrossOrigin},{name:"background-image-opacity",type:h.zeroOneNumbers},{name:"background-image-containment",type:h.bgContainment},{name:"background-image-smoothing",type:h.bools},{name:"background-position-x",type:h.bgPos},{name:"background-position-y",type:h.bgPos},{name:"background-width-relative-to",type:h.bgRelativeTo},{name:"background-height-relative-to",type:h.bgRelativeTo},{name:"background-repeat",type:h.bgRepeat},{name:"background-fit",type:h.bgFit},{name:"background-clip",type:h.bgClip},{name:"background-width",type:h.bgWH},{name:"background-height",type:h.bgWH},{name:"background-offset-x",type:h.bgPos},{name:"background-offset-y",type:h.bgPos}],_=[{name:"position",type:h.position,triggersBounds:u.any},{name:"compound-sizing-wrt-labels",type:h.compoundIncludeLabels,triggersBounds:u.any},{name:"min-width",type:h.size,triggersBounds:u.any},{name:"min-width-bias-left",type:h.sizeMaybePercent,triggersBounds:u.any},{name:"min-width-bias-right",type:h.sizeMaybePercent,triggersBounds:u.any},{name:"min-height",type:h.size,triggersBounds:u.any},{name:"min-height-bias-top",type:h.sizeMaybePercent,triggersBounds:u.any},{name:"min-height-bias-bottom",type:h.sizeMaybePercent,triggersBounds:u.any}],I=[{name:"line-style",type:h.lineStyle},{name:"line-color",type:h.color},{name:"line-fill",type:h.fill},{name:"line-cap",type:h.lineCap},{name:"line-opacity",type:h.zeroOneNumber},{name:"line-dash-pattern",type:h.numbers},{name:"line-dash-offset",type:h.number},{name:"line-outline-width",type:h.size},{name:"line-outline-color",type:h.color},{name:"line-gradient-stop-colors",type:h.colors},{name:"line-gradient-stop-positions",type:h.percentages},{name:"curve-style",type:h.curveStyle,triggersBounds:u.any,triggersBoundsOfParallelBeziers:!0},{name:"haystack-radius",type:h.zeroOneNumber,triggersBounds:u.any},{name:"source-endpoint",type:h.edgeEndpoint,triggersBounds:u.any},{name:"target-endpoint",type:h.edgeEndpoint,triggersBounds:u.any},{name:"control-point-step-size",type:h.size,triggersBounds:u.any},{name:"control-point-distances",type:h.bidirectionalSizes,triggersBounds:u.any},{name:"control-point-weights",type:h.numbers,triggersBounds:u.any},{name:"segment-distances",type:h.bidirectionalSizes,triggersBounds:u.any},{name:"segment-weights",type:h.numbers,triggersBounds:u.any},{name:"segment-radii",type:h.numbers,triggersBounds:u.any},{name:"radius-type",type:h.radiusType,triggersBounds:u.any},{name:"taxi-turn",type:h.bidirectionalSizeMaybePercent,triggersBounds:u.any},{name:"taxi-turn-min-distance",type:h.size,triggersBounds:u.any},{name:"taxi-direction",type:h.axisDirection,triggersBounds:u.any},{name:"taxi-radius",type:h.number,triggersBounds:u.any},{name:"edge-distances",type:h.edgeDistances,triggersBounds:u.any},{name:"arrow-scale",type:h.positiveNumber,triggersBounds:u.any},{name:"loop-direction",type:h.angle,triggersBounds:u.any},{name:"loop-sweep",type:h.angle,triggersBounds:u.any},{name:"source-distance-from-node",type:h.size,triggersBounds:u.any},{name:"target-distance-from-node",type:h.size,triggersBounds:u.any}],D=[{name:"ghost",type:h.bool,triggersBounds:u.any},{name:"ghost-offset-x",type:h.bidirectionalSize,triggersBounds:u.any},{name:"ghost-offset-y",type:h.bidirectionalSize,triggersBounds:u.any},{name:"ghost-opacity",type:h.zeroOneNumber}],k=[{name:"selection-box-color",type:h.color},{name:"selection-box-opacity",type:h.zeroOneNumber},{name:"selection-box-border-color",type:h.color},{name:"selection-box-border-width",type:h.size},{name:"active-bg-color",type:h.color},{name:"active-bg-opacity",type:h.zeroOneNumber},{name:"active-bg-size",type:h.size},{name:"outside-texture-bg-color",type:h.color},{name:"outside-texture-bg-opacity",type:h.zeroOneNumber}],L=[];wa.pieBackgroundN=16,L.push({name:"pie-size",type:h.sizeMaybePercent});for(var R=1;R<=wa.pieBackgroundN;R++)L.push({name:"pie-"+R+"-background-color",type:h.color}),L.push({name:"pie-"+R+"-background-size",type:h.percent}),L.push({name:"pie-"+R+"-background-opacity",type:h.zeroOneNumber});var O=[],M=wa.arrowPrefixes=["source","mid-source","target","mid-target"];[{name:"arrow-shape",type:h.arrowShape,triggersBounds:u.any},{name:"arrow-color",type:h.color},{name:"arrow-fill",type:h.arrowFill},{name:"arrow-width",type:h.arrowWidth}].forEach(function(he){M.forEach(function(K){var X=K+"-"+he.name,te=he.type,J=he.triggersBounds;O.push({name:X,type:te,triggersBounds:J})})},{});var B=wa.properties=[].concat(y,w,v,x,b,D,g,m,f,d,p,T,E,A,S,L,_,I,O,k),F=wa.propertyGroups={behavior:y,transition:w,visibility:v,overlay:x,underlay:b,ghost:D,commonLabel:g,labelDimensions:m,mainLabel:f,sourceLabel:d,targetLabel:p,nodeBody:T,nodeBorder:E,nodeOutline:A,backgroundImage:S,pie:L,compound:_,edgeLine:I,edgeArrow:O,core:k},P=wa.propertyGroupNames={},z=wa.propertyGroupKeys=Object.keys(F);z.forEach(function(he){P[he]=F[he].map(function(K){return K.name}),F[he].forEach(function(K){return K.groupKey=he})});var $=wa.aliases=[{name:"content",pointsTo:"label"},{name:"control-point-distance",pointsTo:"control-point-distances"},{name:"control-point-weight",pointsTo:"control-point-weights"},{name:"segment-distance",pointsTo:"segment-distances"},{name:"segment-weight",pointsTo:"segment-weights"},{name:"segment-radius",pointsTo:"segment-radii"},{name:"edge-text-rotation",pointsTo:"text-rotation"},{name:"padding-left",pointsTo:"padding"},{name:"padding-right",pointsTo:"padding"},{name:"padding-top",pointsTo:"padding"},{name:"padding-bottom",pointsTo:"padding"}];wa.propertyNames=B.map(function(he){return he.name});for(var H=0;H<B.length;H++){var Q=B[H];B[Q.name]=Q}for(var j=0;j<$.length;j++){var ie=$[j],ne=B[ie.pointsTo],le={name:ie.name,alias:!0,pointsTo:ne};B.push(le),B[ie.name]=le}})();wa.getDefaultProperty=function(t){return this.getDefaultProperties()[t]};wa.getDefaultProperties=function(){var t=this._private;if(t.defaultProperties!=null)return t.defaultProperties;for(var e=rr({"selection-box-color":"#ddd","selection-box-opacity":.65,"selection-box-border-color":"#aaa","selection-box-border-width":1,"active-bg-color":"black","active-bg-opacity":.15,"active-bg-size":30,"outside-texture-bg-color":"#000","outside-texture-bg-opacity":.125,events:"yes","text-events":"no","text-valign":"top","text-halign":"center","text-justification":"auto","line-height":1,color:"#000","text-outline-color":"#000","text-outline-width":0,"text-outline-opacity":1,"text-opacity":1,"text-decoration":"none","text-transform":"none","text-wrap":"none","text-overflow-wrap":"whitespace","text-max-width":9999,"text-background-color":"#000","text-background-opacity":0,"text-background-shape":"rectangle","text-background-padding":0,"text-border-opacity":0,"text-border-width":0,"text-border-style":"solid","text-border-color":"#000","font-family":"Helvetica Neue, Helvetica, sans-serif","font-style":"normal","font-weight":"normal","font-size":16,"min-zoomed-font-size":0,"text-rotation":"none","source-text-rotation":"none","target-text-rotation":"none",visibility:"visible",display:"element",opacity:1,"z-compound-depth":"auto","z-index-compare":"auto","z-index":0,label:"","text-margin-x":0,"text-margin-y":0,"source-label":"","source-text-offset":0,"source-text-margin-x":0,"source-text-margin-y":0,"target-label":"","target-text-offset":0,"target-text-margin-x":0,"target-text-margin-y":0,"overlay-opacity":0,"overlay-color":"#000","overlay-padding":10,"overlay-shape":"round-rectangle","overlay-corner-radius":"auto","underlay-opacity":0,"underlay-color":"#000","underlay-padding":10,"underlay-shape":"round-rectangle","underlay-corner-radius":"auto","transition-property":"none","transition-duration":0,"transition-delay":0,"transition-timing-function":"linear","background-blacken":0,"background-color":"#999","background-fill":"solid","background-opacity":1,"background-image":"none","background-image-crossorigin":"anonymous","background-image-opacity":1,"background-image-containment":"inside","background-image-smoothing":"yes","background-position-x":"50%","background-position-y":"50%","background-offset-x":0,"background-offset-y":0,"background-width-relative-to":"include-padding","background-height-relative-to":"include-padding","background-repeat":"no-repeat","background-fit":"none","background-clip":"node","background-width":"auto","background-height":"auto","border-color":"#000","border-opacity":1,"border-width":0,"border-style":"solid","border-dash-pattern":[4,2],"border-dash-offset":0,"border-cap":"butt","border-join":"miter","border-position":"center","outline-color":"#999","outline-opacity":1,"outline-width":0,"outline-offset":0,"outline-style":"solid",height:30,width:30,shape:"ellipse","shape-polygon-points":"-1, -1,   1, -1,   1, 1,   -1, 1","corner-radius":"auto","bounds-expansion":0,"background-gradient-direction":"to-bottom","background-gradient-stop-colors":"#999","background-gradient-stop-positions":"0%",ghost:"no","ghost-offset-y":0,"ghost-offset-x":0,"ghost-opacity":0,padding:0,"padding-relative-to":"width",position:"origin","compound-sizing-wrt-labels":"include","min-width":0,"min-width-bias-left":0,"min-width-bias-right":0,"min-height":0,"min-height-bias-top":0,"min-height-bias-bottom":0},{"pie-size":"100%"},[{name:"pie-{{i}}-background-color",value:"black"},{name:"pie-{{i}}-background-size",value:"0%"},{name:"pie-{{i}}-background-opacity",value:1}].reduce(function(u,h){for(var f=1;f<=wa.pieBackgroundN;f++){var d=h.name.replace("{{i}}",f),p=h.value;u[d]=p}return u},{}),{"line-style":"solid","line-color":"#999","line-fill":"solid","line-cap":"butt","line-opacity":1,"line-outline-width":0,"line-outline-color":"#000","line-gradient-stop-colors":"#999","line-gradient-stop-positions":"0%","control-point-step-size":40,"control-point-weights":.5,"segment-weights":.5,"segment-distances":20,"segment-radii":15,"radius-type":"arc-radius","taxi-turn":"50%","taxi-radius":15,"taxi-turn-min-distance":10,"taxi-direction":"auto","edge-distances":"intersection","curve-style":"haystack","haystack-radius":0,"arrow-scale":1,"loop-direction":"-45deg","loop-sweep":"-90deg","source-distance-from-node":0,"target-distance-from-node":0,"source-endpoint":"outside-to-node","target-endpoint":"outside-to-node","line-dash-pattern":[6,3],"line-dash-offset":0},[{name:"arrow-shape",value:"none"},{name:"arrow-color",value:"#999"},{name:"arrow-fill",value:"filled"},{name:"arrow-width",value:1}].reduce(function(u,h){return wa.arrowPrefixes.forEach(function(f){var d=f+"-"+h.name,p=h.value;u[d]=p}),u},{})),r={},n=0;n<this.properties.length;n++){var i=this.properties[n];if(!i.pointsTo){var a=i.name,s=e[a],l=this.parse(a,s);r[a]=l}}return t.defaultProperties=r,t.defaultProperties};wa.addDefaultStylesheet=function(){this.selector(":parent").css({shape:"rectangle",padding:10,"background-color":"#eee","border-color":"#ccc","border-width":1}).selector("edge").css({width:3}).selector(":loop").css({"curve-style":"bezier"}).selector("edge:compound").css({"curve-style":"bezier","source-endpoint":"outside-to-line","target-endpoint":"outside-to-line"}).selector(":selected").css({"background-color":"#0169D9","line-color":"#0169D9","source-arrow-color":"#0169D9","target-arrow-color":"#0169D9","mid-source-arrow-color":"#0169D9","mid-target-arrow-color":"#0169D9"}).selector(":parent:selected").css({"background-color":"#CCE1F9","border-color":"#aec8e5"}).selector(":active").css({"overlay-color":"black","overlay-padding":10,"overlay-opacity":.25}),this.defaultLength=this.length};US={};US.parse=function(t,e,r,n){var i=this;if(si(e))return i.parseImplWarn(t,e,r,n);var a=n==="mapping"||n===!0||n===!1||n==null?"dontcare":n,s=r?"t":"f",l=""+e,u=cme(t,l,s,a),h=i.propCache=i.propCache||[],f;return(f=h[u])||(f=h[u]=i.parseImplWarn(t,e,r,n)),(r||n==="mapping")&&(f=Yc(f),f&&(f.value=Yc(f.value))),f};US.parseImplWarn=function(t,e,r,n){var i=this.parseImpl(t,e,r,n);return!i&&e!=null&&un("The style property `".concat(t,": ").concat(e,"` is invalid")),i&&(i.name==="width"||i.name==="height")&&e==="label"&&un("The style value of `label` is deprecated for `"+i.name+"`"),i};US.parseImpl=function(t,e,r,n){var i=this;t=eB(t);var a=i.properties[t],s=e,l=i.types;if(!a||e===void 0)return null;a.alias&&(a=a.pointsTo,t=a.name);var u=Zt(e);u&&(e=e.trim());var h=a.type;if(!h)return null;if(r&&(e===""||e===null))return{name:t,value:e,bypass:!0,deleteBypass:!0};if(si(e))return{name:t,value:e,strValue:"fn",mapped:l.fn,bypass:r};var f,d;if(!(!u||n||e.length<7||e[1]!=="a")){if(e.length>=7&&e[0]==="d"&&(f=new RegExp(l.data.regex).exec(e))){if(r)return!1;var p=l.data;return{name:t,value:f,strValue:""+e,mapped:p,field:f[1],bypass:r}}else if(e.length>=10&&e[0]==="m"&&(d=new RegExp(l.mapData.regex).exec(e))){if(r||h.multiple)return!1;var m=l.mapData;if(!(h.color||h.number))return!1;var g=this.parse(t,d[4]);if(!g||g.mapped)return!1;var y=this.parse(t,d[5]);if(!y||y.mapped)return!1;if(g.pfValue===y.pfValue||g.strValue===y.strValue)return un("`"+t+": "+e+"` is not a valid mapper because the output range is zero; converting to `"+t+": "+g.strValue+"`"),this.parse(t,g.strValue);if(h.color){var v=g.value,x=y.value,b=v[0]===x[0]&&v[1]===x[1]&&v[2]===x[2]&&(v[3]===x[3]||(v[3]==null||v[3]===1)&&(x[3]==null||x[3]===1));if(b)return!1}return{name:t,value:d,strValue:""+e,mapped:m,field:d[1],fieldMin:parseFloat(d[2]),fieldMax:parseFloat(d[3]),valueMin:g.value,valueMax:y.value,bypass:r}}}if(h.multiple&&n!=="multiple"){var w;if(u?w=e.split(/\s+/):En(e)?w=e:w=[e],h.evenMultiple&&w.length%2!==0)return null;for(var C=[],T=[],E=[],A="",S=!1,_=0;_<w.length;_++){var I=i.parse(t,w[_],r,"multiple");S=S||Zt(I.value),C.push(I.value),E.push(I.pfValue!=null?I.pfValue:I.value),T.push(I.units),A+=(_>0?" ":"")+I.strValue}return h.validate&&!h.validate(C,T)?null:h.singleEnum&&S?C.length===1&&Zt(C[0])?{name:t,value:C[0],strValue:C[0],bypass:r}:null:{name:t,value:C,pfValue:E,strValue:A,bypass:r,units:T}}var D=o(function(){for(var K=0;K<h.enums.length;K++){var X=h.enums[K];if(X===e)return{name:t,value:e,strValue:""+e,bypass:r}}return null},"checkEnums");if(h.number){var k,L="px";if(h.units&&(k=h.units),h.implicitUnits&&(L=h.implicitUnits),!h.unitless)if(u){var R="px|em"+(h.allowPercent?"|\\%":"");k&&(R=k);var O=e.match("^("+Hi+")("+R+")?$");O&&(e=O[1],k=O[2]||L)}else(!k||h.implicitUnits)&&(k=L);if(e=parseFloat(e),isNaN(e)&&h.enums===void 0)return null;if(isNaN(e)&&h.enums!==void 0)return e=s,D();if(h.integer&&!JHe(e)||h.min!==void 0&&(e<h.min||h.strictMin&&e===h.min)||h.max!==void 0&&(e>h.max||h.strictMax&&e===h.max))return null;var M={name:t,value:e,strValue:""+e+(k||""),units:k,bypass:r};return h.unitless||k!=="px"&&k!=="em"?M.pfValue=e:M.pfValue=k==="px"||!k?e:this.getEmSizeInPixels()*e,(k==="ms"||k==="s")&&(M.pfValue=k==="ms"?e:1e3*e),(k==="deg"||k==="rad")&&(M.pfValue=k==="rad"?e:Nqe(e)),k==="%"&&(M.pfValue=e/100),M}else if(h.propList){var B=[],F=""+e;if(F!=="none"){for(var P=F.split(/\s*,\s*|\s+/),z=0;z<P.length;z++){var $=P[z].trim();i.properties[$]?B.push($):un("`"+$+"` is not a valid property name")}if(B.length===0)return null}return{name:t,value:B,strValue:B.length===0?"none":B.join(" "),bypass:r}}else if(h.color){var H=tme(e);return H?{name:t,value:H,pfValue:H,strValue:"rgb("+H[0]+","+H[1]+","+H[2]+")",bypass:r}:null}else if(h.regex||h.regexes){if(h.enums){var Q=D();if(Q)return Q}for(var j=h.regexes?h.regexes:[h.regex],ie=0;ie<j.length;ie++){var ne=new RegExp(j[ie]),le=ne.exec(e);if(le)return{name:t,value:h.singleRegexMatchValue?le[1]:le,strValue:""+e,bypass:r}}return null}else return h.string?{name:t,value:""+e,strValue:""+e,bypass:r}:h.enums?D():null};Fa=o(function t(e){if(!(this instanceof t))return new t(e);if(!JP(e)){ai("A style must have a core reference");return}this._private={cy:e,coreStyle:{}},this.length=0,this.resetToDefault()},"Style"),za=Fa.prototype;za.instanceString=function(){return"style"};za.clear=function(){for(var t=this._private,e=t.cy,r=e.elements(),n=0;n<this.length;n++)this[n]=void 0;return this.length=0,t.contextStyles={},t.propDiffs={},this.cleanElements(r,!0),r.forEach(function(i){var a=i[0]._private;a.styleDirty=!0,a.appliedInitStyle=!1}),this};za.resetToDefault=function(){return this.clear(),this.addDefaultStylesheet(),this};za.core=function(t){return this._private.coreStyle[t]||this.getDefaultProperty(t)};za.selector=function(t){var e=t==="core"?null:new Lf(t),r=this.length++;return this[r]={selector:e,properties:[],mappedProperties:[],index:r},this};za.css=function(){var t=this,e=arguments;if(e.length===1)for(var r=e[0],n=0;n<t.properties.length;n++){var i=t.properties[n],a=r[i.name];a===void 0&&(a=r[LS(i.name)]),a!==void 0&&this.cssRule(i.name,a)}else e.length===2&&this.cssRule(e[0],e[1]);return this};za.style=za.css;za.cssRule=function(t,e){var r=this.parse(t,e);if(r){var n=this.length-1;this[n].properties.push(r),this[n].properties[r.name]=r,r.name.match(/pie-(\d+)-background-size/)&&r.value&&(this._private.hasPie=!0),r.mapped&&this[n].mappedProperties.push(r);var i=!this[n].selector;i&&(this._private.coreStyle[r.name]=r)}return this};za.append=function(t){return Z0e(t)?t.appendToStyle(this):En(t)?this.appendFromJson(t):Zt(t)&&this.appendFromString(t),this};Fa.fromJson=function(t,e){var r=new Fa(t);return r.fromJson(e),r};Fa.fromString=function(t,e){return new Fa(t).fromString(e)};[Ga,s4,pB,jc,VS,mB,wa,US].forEach(function(t){rr(za,t)});Fa.types=za.types;Fa.properties=za.properties;Fa.propertyGroups=za.propertyGroups;Fa.propertyGroupNames=za.propertyGroupNames;Fa.propertyGroupKeys=za.propertyGroupKeys;ZKe={style:o(function(e){if(e){var r=this.setStyle(e);r.update()}return this._private.style},"style"),setStyle:o(function(e){var r=this._private;return Z0e(e)?r.style=e.generateStyle(this):En(e)?r.style=Fa.fromJson(this,e):Zt(e)?r.style=Fa.fromString(this,e):r.style=Fa(this),r.style},"setStyle"),updateStyle:o(function(){this.mutableElements().updateStyle()},"updateStyle")},JKe="single",Hp={autolock:o(function(e){if(e!==void 0)this._private.autolock=!!e;else return this._private.autolock;return this},"autolock"),autoungrabify:o(function(e){if(e!==void 0)this._private.autoungrabify=!!e;else return this._private.autoungrabify;return this},"autoungrabify"),autounselectify:o(function(e){if(e!==void 0)this._private.autounselectify=!!e;else return this._private.autounselectify;return this},"autounselectify"),selectionType:o(function(e){var r=this._private;if(r.selectionType==null&&(r.selectionType=JKe),e!==void 0)(e==="additive"||e==="single")&&(r.selectionType=e);else return r.selectionType;return this},"selectionType"),panningEnabled:o(function(e){if(e!==void 0)this._private.panningEnabled=!!e;else return this._private.panningEnabled;return this},"panningEnabled"),userPanningEnabled:o(function(e){if(e!==void 0)this._private.userPanningEnabled=!!e;else return this._private.userPanningEnabled;return this},"userPanningEnabled"),zoomingEnabled:o(function(e){if(e!==void 0)this._private.zoomingEnabled=!!e;else return this._private.zoomingEnabled;return this},"zoomingEnabled"),userZoomingEnabled:o(function(e){if(e!==void 0)this._private.userZoomingEnabled=!!e;else return this._private.userZoomingEnabled;return this},"userZoomingEnabled"),boxSelectionEnabled:o(function(e){if(e!==void 0)this._private.boxSelectionEnabled=!!e;else return this._private.boxSelectionEnabled;return this},"boxSelectionEnabled"),pan:o(function(){var e=arguments,r=this._private.pan,n,i,a,s,l;switch(e.length){case 0:return r;case 1:if(Zt(e[0]))return n=e[0],r[n];if(Ur(e[0])){if(!this._private.panningEnabled)return this;a=e[0],s=a.x,l=a.y,Ct(s)&&(r.x=s),Ct(l)&&(r.y=l),this.emit("pan viewport")}break;case 2:if(!this._private.panningEnabled)return this;n=e[0],i=e[1],(n==="x"||n==="y")&&Ct(i)&&(r[n]=i),this.emit("pan viewport");break}return this.notify("viewport"),this},"pan"),panBy:o(function(e,r){var n=arguments,i=this._private.pan,a,s,l,u,h;if(!this._private.panningEnabled)return this;switch(n.length){case 1:Ur(e)&&(l=n[0],u=l.x,h=l.y,Ct(u)&&(i.x+=u),Ct(h)&&(i.y+=h),this.emit("pan viewport"));break;case 2:a=e,s=r,(a==="x"||a==="y")&&Ct(s)&&(i[a]+=s),this.emit("pan viewport");break}return this.notify("viewport"),this},"panBy"),gc:o(function(){this.notify("gc")},"gc"),fit:o(function(e,r){var n=this.getFitViewport(e,r);if(n){var i=this._private;i.zoom=n.zoom,i.pan=n.pan,this.emit("pan zoom viewport"),this.notify("viewport")}return this},"fit"),getFitViewport:o(function(e,r){if(Ct(e)&&r===void 0&&(r=e,e=void 0),!(!this._private.panningEnabled||!this._private.zoomingEnabled)){var n;if(Zt(e)){var i=e;e=this.$(i)}else if(rWe(e)){var a=e;n={x1:a.x1,y1:a.y1,x2:a.x2,y2:a.y2},n.w=n.x2-n.x1,n.h=n.y2-n.y1}else go(e)||(e=this.mutableElements());if(!(go(e)&&e.empty())){n=n||e.boundingBox();var s=this.width(),l=this.height(),u;if(r=Ct(r)?r:0,!isNaN(s)&&!isNaN(l)&&s>0&&l>0&&!isNaN(n.w)&&!isNaN(n.h)&&n.w>0&&n.h>0){u=Math.min((s-2*r)/n.w,(l-2*r)/n.h),u=u>this._private.maxZoom?this._private.maxZoom:u,u=u<this._private.minZoom?this._private.minZoom:u;var h={x:(s-u*(n.x1+n.x2))/2,y:(l-u*(n.y1+n.y2))/2};return{zoom:u,pan:h}}}}},"getFitViewport"),zoomRange:o(function(e,r){var n=this._private;if(r==null){var i=e;e=i.min,r=i.max}return Ct(e)&&Ct(r)&&e<=r?(n.minZoom=e,n.maxZoom=r):Ct(e)&&r===void 0&&e<=n.maxZoom?n.minZoom=e:Ct(r)&&e===void 0&&r>=n.minZoom&&(n.maxZoom=r),this},"zoomRange"),minZoom:o(function(e){return e===void 0?this._private.minZoom:this.zoomRange({min:e})},"minZoom"),maxZoom:o(function(e){return e===void 0?this._private.maxZoom:this.zoomRange({max:e})},"maxZoom"),getZoomedViewport:o(function(e){var r=this._private,n=r.pan,i=r.zoom,a,s,l=!1;if(r.zoomingEnabled||(l=!0),Ct(e)?s=e:Ur(e)&&(s=e.level,e.position!=null?a=MS(e.position,i,n):e.renderedPosition!=null&&(a=e.renderedPosition),a!=null&&!r.panningEnabled&&(l=!0)),s=s>r.maxZoom?r.maxZoom:s,s=s<r.minZoom?r.minZoom:s,l||!Ct(s)||s===i||a!=null&&(!Ct(a.x)||!Ct(a.y)))return null;if(a!=null){var u=n,h=i,f=s,d={x:-f/h*(a.x-u.x)+a.x,y:-f/h*(a.y-u.y)+a.y};return{zoomed:!0,panned:!0,zoom:f,pan:d}}else return{zoomed:!0,panned:!1,zoom:s,pan:n}},"getZoomedViewport"),zoom:o(function(e){if(e===void 0)return this._private.zoom;var r=this.getZoomedViewport(e),n=this._private;return r==null||!r.zoomed?this:(n.zoom=r.zoom,r.panned&&(n.pan.x=r.pan.x,n.pan.y=r.pan.y),this.emit("zoom"+(r.panned?" pan":"")+" viewport"),this.notify("viewport"),this)},"zoom"),viewport:o(function(e){var r=this._private,n=!0,i=!0,a=[],s=!1,l=!1;if(!e)return this;if(Ct(e.zoom)||(n=!1),Ur(e.pan)||(i=!1),!n&&!i)return this;if(n){var u=e.zoom;u<r.minZoom||u>r.maxZoom||!r.zoomingEnabled?s=!0:(r.zoom=u,a.push("zoom"))}if(i&&(!s||!e.cancelOnFailedZoom)&&r.panningEnabled){var h=e.pan;Ct(h.x)&&(r.pan.x=h.x,l=!1),Ct(h.y)&&(r.pan.y=h.y,l=!1),l||a.push("pan")}return a.length>0&&(a.push("viewport"),this.emit(a.join(" ")),this.notify("viewport")),this},"viewport"),center:o(function(e){var r=this.getCenterPan(e);return r&&(this._private.pan=r,this.emit("pan viewport"),this.notify("viewport")),this},"center"),getCenterPan:o(function(e,r){if(this._private.panningEnabled){if(Zt(e)){var n=e;e=this.mutableElements().filter(n)}else go(e)||(e=this.mutableElements());if(e.length!==0){var i=e.boundingBox(),a=this.width(),s=this.height();r=r===void 0?this._private.zoom:r;var l={x:(a-r*(i.x1+i.x2))/2,y:(s-r*(i.y1+i.y2))/2};return l}}},"getCenterPan"),reset:o(function(){return!this._private.panningEnabled||!this._private.zoomingEnabled?this:(this.viewport({pan:{x:0,y:0},zoom:1}),this)},"reset"),invalidateSize:o(function(){this._private.sizeCache=null},"invalidateSize"),size:o(function(){var e=this._private,r=e.container,n=this;return e.sizeCache=e.sizeCache||(r?function(){var i=n.window().getComputedStyle(r),a=o(function(l){return parseFloat(i.getPropertyValue(l))},"val");return{width:r.clientWidth-a("padding-left")-a("padding-right"),height:r.clientHeight-a("padding-top")-a("padding-bottom")}}():{width:1,height:1})},"size"),width:o(function(){return this.size().width},"width"),height:o(function(){return this.size().height},"height"),extent:o(function(){var e=this._private.pan,r=this._private.zoom,n=this.renderedExtent(),i={x1:(n.x1-e.x)/r,x2:(n.x2-e.x)/r,y1:(n.y1-e.y)/r,y2:(n.y2-e.y)/r};return i.w=i.x2-i.x1,i.h=i.y2-i.y1,i},"extent"),renderedExtent:o(function(){var e=this.width(),r=this.height();return{x1:0,y1:0,x2:e,y2:r,w:e,h:r}},"renderedExtent"),multiClickDebounceTime:o(function(e){if(e)this._private.multiClickDebounceTime=e;else return this._private.multiClickDebounceTime;return this},"multiClickDebounceTime")};Hp.centre=Hp.center;Hp.autolockNodes=Hp.autolock;Hp.autoungrabifyNodes=Hp.autoungrabify;Zb={data:cn.data({field:"data",bindingEvent:"data",allowBinding:!0,allowSetting:!0,settingEvent:"data",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeData:cn.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0}),scratch:cn.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeScratch:cn.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0})};Zb.attr=Zb.data;Zb.removeAttr=Zb.removeData;Jb=o(function(e){var r=this;e=rr({},e);var n=e.container;n&&!vS(n)&&vS(n[0])&&(n=n[0]);var i=n?n._cyreg:null;i=i||{},i&&i.cy&&(i.cy.destroy(),i={});var a=i.readies=i.readies||[];n&&(n._cyreg=i),i.cy=r;var s=Ui!==void 0&&n!==void 0&&!e.headless,l=e;l.layout=rr({name:s?"grid":"null"},l.layout),l.renderer=rr({name:s?"canvas":"null"},l.renderer);var u=o(function(g,y,v){return y!==void 0?y:v!==void 0?v:g},"defVal"),h=this._private={container:n,ready:!1,options:l,elements:new ka(this),listeners:[],aniEles:new ka(this),data:l.data||{},scratch:{},layout:null,renderer:null,destroyed:!1,notificationsEnabled:!0,minZoom:1e-50,maxZoom:1e50,zoomingEnabled:u(!0,l.zoomingEnabled),userZoomingEnabled:u(!0,l.userZoomingEnabled),panningEnabled:u(!0,l.panningEnabled),userPanningEnabled:u(!0,l.userPanningEnabled),boxSelectionEnabled:u(!0,l.boxSelectionEnabled),autolock:u(!1,l.autolock,l.autolockNodes),autoungrabify:u(!1,l.autoungrabify,l.autoungrabifyNodes),autounselectify:u(!1,l.autounselectify),styleEnabled:l.styleEnabled===void 0?s:l.styleEnabled,zoom:Ct(l.zoom)?l.zoom:1,pan:{x:Ur(l.pan)&&Ct(l.pan.x)?l.pan.x:0,y:Ur(l.pan)&&Ct(l.pan.y)?l.pan.y:0},animation:{current:[],queue:[]},hasCompoundNodes:!1,multiClickDebounceTime:u(250,l.multiClickDebounceTime)};this.createEmitter(),this.selectionType(l.selectionType),this.zoomRange({min:l.minZoom,max:l.maxZoom});var f=o(function(g,y){var v=g.some(nWe);if(v)return ey.all(g).then(y);y(g)},"loadExtData");h.styleEnabled&&r.setStyle([]);var d=rr({},l,l.renderer);r.initRenderer(d);var p=o(function(g,y,v){r.notifications(!1);var x=r.mutableElements();x.length>0&&x.remove(),g!=null&&(Ur(g)||En(g))&&r.add(g),r.one("layoutready",function(w){r.notifications(!0),r.emit(w),r.one("load",y),r.emitAndNotify("load")}).one("layoutstop",function(){r.one("done",v),r.emit("done")});var b=rr({},r._private.options.layout);b.eles=r.elements(),r.layout(b).run()},"setElesAndLayout");f([l.style,l.elements],function(m){var g=m[0],y=m[1];h.styleEnabled&&r.style().append(g),p(y,function(){r.startAnimationLoop(),h.ready=!0,si(l.ready)&&r.on("ready",l.ready);for(var v=0;v<a.length;v++){var x=a[v];r.on("ready",x)}i&&(i.readies=[]),r.emit("ready")},l.done)})},"Core"),SS=Jb.prototype;rr(SS,{instanceString:o(function(){return"core"},"instanceString"),isReady:o(function(){return this._private.ready},"isReady"),destroyed:o(function(){return this._private.destroyed},"destroyed"),ready:o(function(e){return this.isReady()?this.emitter().emit("ready",[],e):this.on("ready",e),this},"ready"),destroy:o(function(){var e=this;if(!e.destroyed())return e.stopAnimationLoop(),e.destroyRenderer(),this.emit("destroy"),e._private.destroyed=!0,e},"destroy"),hasElementWithId:o(function(e){return this._private.elements.hasElementWithId(e)},"hasElementWithId"),getElementById:o(function(e){return this._private.elements.getElementById(e)},"getElementById"),hasCompoundNodes:o(function(){return this._private.hasCompoundNodes},"hasCompoundNodes"),headless:o(function(){return this._private.renderer.isHeadless()},"headless"),styleEnabled:o(function(){return this._private.styleEnabled},"styleEnabled"),addToPool:o(function(e){return this._private.elements.merge(e),this},"addToPool"),removeFromPool:o(function(e){return this._private.elements.unmerge(e),this},"removeFromPool"),container:o(function(){return this._private.container||null},"container"),window:o(function(){var e=this._private.container;if(e==null)return Ui;var r=this._private.container.ownerDocument;return r===void 0||r==null?Ui:r.defaultView||Ui},"window"),mount:o(function(e){if(e!=null){var r=this,n=r._private,i=n.options;return!vS(e)&&vS(e[0])&&(e=e[0]),r.stopAnimationLoop(),r.destroyRenderer(),n.container=e,n.styleEnabled=!0,r.invalidateSize(),r.initRenderer(rr({},i,i.renderer,{name:i.renderer.name==="null"?"canvas":i.renderer.name})),r.startAnimationLoop(),r.style(i.style),r.emit("mount"),r}},"mount"),unmount:o(function(){var e=this;return e.stopAnimationLoop(),e.destroyRenderer(),e.initRenderer({name:"null"}),e.emit("unmount"),e},"unmount"),options:o(function(){return Yc(this._private.options)},"options"),json:o(function(e){var r=this,n=r._private,i=r.mutableElements(),a=o(function(C){return r.getElementById(C.id())},"getFreshRef");if(Ur(e)){if(r.startBatch(),e.elements){var s={},l=o(function(C,T){for(var E=[],A=[],S=0;S<C.length;S++){var _=C[S];if(!_.data.id){un("cy.json() cannot handle elements without an ID attribute");continue}var I=""+_.data.id,D=r.getElementById(I);s[I]=!0,D.length!==0?A.push({ele:D,json:_}):(T&&(_.group=T),E.push(_))}r.add(E);for(var k=0;k<A.length;k++){var L=A[k],R=L.ele,O=L.json;R.json(O)}},"updateEles");if(En(e.elements))l(e.elements);else for(var u=["nodes","edges"],h=0;h<u.length;h++){var f=u[h],d=e.elements[f];En(d)&&l(d,f)}var p=r.collection();i.filter(function(w){return!s[w.id()]}).forEach(function(w){w.isParent()?p.merge(w):w.remove()}),p.forEach(function(w){return w.children().move({parent:null})}),p.forEach(function(w){return a(w).remove()})}e.style&&r.style(e.style),e.zoom!=null&&e.zoom!==n.zoom&&r.zoom(e.zoom),e.pan&&(e.pan.x!==n.pan.x||e.pan.y!==n.pan.y)&&r.pan(e.pan),e.data&&r.data(e.data);for(var m=["minZoom","maxZoom","zoomingEnabled","userZoomingEnabled","panningEnabled","userPanningEnabled","boxSelectionEnabled","autolock","autoungrabify","autounselectify","multiClickDebounceTime"],g=0;g<m.length;g++){var y=m[g];e[y]!=null&&r[y](e[y])}return r.endBatch(),this}else{var v=!!e,x={};v?x.elements=this.elements().map(function(w){return w.json()}):(x.elements={},i.forEach(function(w){var C=w.group();x.elements[C]||(x.elements[C]=[]),x.elements[C].push(w.json())})),this._private.styleEnabled&&(x.style=r.style().json()),x.data=Yc(r.data());var b=n.options;return x.zoomingEnabled=n.zoomingEnabled,x.userZoomingEnabled=n.userZoomingEnabled,x.zoom=n.zoom,x.minZoom=n.minZoom,x.maxZoom=n.maxZoom,x.panningEnabled=n.panningEnabled,x.userPanningEnabled=n.userPanningEnabled,x.pan=Yc(n.pan),x.boxSelectionEnabled=n.boxSelectionEnabled,x.renderer=Yc(b.renderer),x.hideEdgesOnViewport=b.hideEdgesOnViewport,x.textureOnViewport=b.textureOnViewport,x.wheelSensitivity=b.wheelSensitivity,x.motionBlur=b.motionBlur,x.multiClickDebounceTime=b.multiClickDebounceTime,x}},"json")});SS.$id=SS.getElementById;[VKe,YKe,ege,VP,pS,jKe,UP,mS,ZKe,Hp,Zb].forEach(function(t){rr(SS,t)});eQe={fit:!0,directed:!1,padding:30,circle:!1,grid:!1,spacingFactor:1.75,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,roots:void 0,depthSort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:o(function(e,r){return!0},"animateFilter"),ready:void 0,stop:void 0,transform:o(function(e,r){return r},"transform")},tQe={maximal:!1,acyclic:!1},z1=o(function(e){return e.scratch("breadthfirst")},"getInfo"),T0e=o(function(e,r){return e.scratch("breadthfirst",r)},"setInfo");o(tge,"BreadthFirstLayout");tge.prototype.run=function(){var t=this.options,e=t.cy,r=t.eles,n=r.nodes().filter(function(ae){return ae.isChildless()}),i=r,a=t.directed,s=t.acyclic||t.maximal||t.maximalAdjustments>0,l=!!t.boundingBox,u=e.extent(),h=Hs(l?t.boundingBox:{x1:u.x1,y1:u.y1,w:u.w,h:u.h}),f;if(go(t.roots))f=t.roots;else if(En(t.roots)){for(var d=[],p=0;p<t.roots.length;p++){var m=t.roots[p],g=e.getElementById(m);d.push(g)}f=e.collection(d)}else if(Zt(t.roots))f=e.$(t.roots);else if(a)f=n.roots();else{var y=r.components();f=e.collection();for(var v=o(function(Oe){var ge=y[Oe],ze=ge.maxDegree(!1),He=ge.filter(function($e){return $e.degree(!1)===ze});f=f.add(He)},"_loop"),x=0;x<y.length;x++)v(x)}var b=[],w={},C=o(function(Oe,ge){b[ge]==null&&(b[ge]=[]);var ze=b[ge].length;b[ge].push(Oe),T0e(Oe,{index:ze,depth:ge})},"addToDepth"),T=o(function(Oe,ge){var ze=z1(Oe),He=ze.depth,$e=ze.index;b[He][$e]=null,Oe.isChildless()&&C(Oe,ge)},"changeDepth");i.bfs({roots:f,directed:t.directed,visit:o(function(Oe,ge,ze,He,$e){var Re=Oe[0],Ie=Re.id();Re.isChildless()&&C(Re,$e),w[Ie]=!0},"visit")});for(var E=[],A=0;A<n.length;A++){var S=n[A];w[S.id()]||E.push(S)}var _=o(function(Oe){for(var ge=b[Oe],ze=0;ze<ge.length;ze++){var He=ge[ze];if(He==null){ge.splice(ze,1),ze--;continue}T0e(He,{depth:Oe,index:ze})}},"assignDepthsAt"),I=o(function(Oe,ge){for(var ze=z1(Oe),He=Oe.incomers().filter(function(re){return re.isNode()&&r.has(re)}),$e=-1,Re=Oe.id(),Ie=0;Ie<He.length;Ie++){var be=He[Ie],W=z1(be);$e=Math.max($e,W.depth)}if(ze.depth<=$e){if(!t.acyclic&&ge[Re])return null;var de=$e+1;return T(Oe,de),ge[Re]=de,!0}return!1},"adjustMaximally");if(a&&s){var D=[],k={},L=o(function(Oe){return D.push(Oe)},"enqueue"),R=o(function(){return D.shift()},"dequeue");for(n.forEach(function(ae){return D.push(ae)});D.length>0;){var O=R(),M=I(O,k);if(M)O.outgoers().filter(function(ae){return ae.isNode()&&r.has(ae)}).forEach(L);else if(M===null){un("Detected double maximal shift for node `"+O.id()+"`.  Bailing maximal adjustment due to cycle.  Use `options.maximal: true` only on DAGs.");break}}}var B=0;if(t.avoidOverlap)for(var F=0;F<n.length;F++){var P=n[F],z=P.layoutDimensions(t),$=z.w,H=z.h;B=Math.max(B,$,H)}var Q={},j=o(function(Oe){if(Q[Oe.id()])return Q[Oe.id()];for(var ge=z1(Oe).depth,ze=Oe.neighborhood(),He=0,$e=0,Re=0;Re<ze.length;Re++){var Ie=ze[Re];if(!(Ie.isEdge()||Ie.isParent()||!n.has(Ie))){var be=z1(Ie);if(be!=null){var W=be.index,de=be.depth;if(!(W==null||de==null)){var re=b[de].length;de<ge&&(He+=W/re,$e++)}}}}return $e=Math.max(1,$e),He=He/$e,$e===0&&(He=0),Q[Oe.id()]=He,He},"getWeightedPercent"),ie=o(function(Oe,ge){var ze=j(Oe),He=j(ge),$e=ze-He;return $e===0?eme(Oe.id(),ge.id()):$e},"sortFn");t.depthSort!==void 0&&(ie=t.depthSort);for(var ne=b.length,le=0;le<ne;le++)b[le].sort(ie),_(le);for(var he=[],K=0;K<E.length;K++)he.push(E[K]);var X=o(function(){for(var Oe=0;Oe<ne;Oe++)_(Oe)},"assignDepths");he.length&&(b.unshift(he),ne=b.length,X());for(var te=0,J=0;J<ne;J++)te=Math.max(b[J].length,te);var se={x:h.x1+h.w/2,y:h.y1+h.h/2},ue=n.reduce(function(ae,Oe){return function(ge){return{w:ae.w===-1?ge.w:(ae.w+ge.w)/2,h:ae.h===-1?ge.h:(ae.h+ge.h)/2}}(Oe.boundingBox({includeLabels:t.nodeDimensionsIncludeLabels}))},{w:-1,h:-1}),Z=Math.max(ne===1?0:l?(h.h-t.padding*2-ue.h)/(ne-1):(h.h-t.padding*2-ue.h)/(ne+1),B),Se=b.reduce(function(ae,Oe){return Math.max(ae,Oe.length)},0),ce=o(function(Oe){var ge=z1(Oe),ze=ge.depth,He=ge.index;if(t.circle){var $e=Math.min(h.w/2/ne,h.h/2/ne);$e=Math.max($e,B);var Re=$e*ze+$e-(ne>0&&b[0].length<=3?$e/2:0),Ie=2*Math.PI/b[ze].length*He;return ze===0&&b[0].length===1&&(Re=1),{x:se.x+Re*Math.cos(Ie),y:se.y+Re*Math.sin(Ie)}}else{var be=b[ze].length,W=Math.max(be===1?0:l?(h.w-t.padding*2-ue.w)/((t.grid?Se:be)-1):(h.w-t.padding*2-ue.w)/((t.grid?Se:be)+1),B),de={x:se.x+(He+1-(be+1)/2)*W,y:se.y+(ze+1-(ne+1)/2)*Z};return de}},"getPosition");return r.nodes().layoutPositions(this,t,ce),this};rQe={fit:!0,padding:30,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,spacingFactor:void 0,radius:void 0,startAngle:3/2*Math.PI,sweep:void 0,clockwise:!0,sort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:o(function(e,r){return!0},"animateFilter"),ready:void 0,stop:void 0,transform:o(function(e,r){return r},"transform")};o(rge,"CircleLayout");rge.prototype.run=function(){var t=this.options,e=t,r=t.cy,n=e.eles,i=e.counterclockwise!==void 0?!e.counterclockwise:e.clockwise,a=n.nodes().not(":parent");e.sort&&(a=a.sort(e.sort));for(var s=Hs(e.boundingBox?e.boundingBox:{x1:0,y1:0,w:r.width(),h:r.height()}),l={x:s.x1+s.w/2,y:s.y1+s.h/2},u=e.sweep===void 0?2*Math.PI-2*Math.PI/a.length:e.sweep,h=u/Math.max(1,a.length-1),f,d=0,p=0;p<a.length;p++){var m=a[p],g=m.layoutDimensions(e),y=g.w,v=g.h;d=Math.max(d,y,v)}if(Ct(e.radius)?f=e.radius:a.length<=1?f=0:f=Math.min(s.h,s.w)/2-d,a.length>1&&e.avoidOverlap){d*=1.75;var x=Math.cos(h)-Math.cos(0),b=Math.sin(h)-Math.sin(0),w=Math.sqrt(d*d/(x*x+b*b));f=Math.max(w,f)}var C=o(function(E,A){var S=e.startAngle+A*h*(i?1:-1),_=f*Math.cos(S),I=f*Math.sin(S),D={x:l.x+_,y:l.y+I};return D},"getPos");return n.nodes().layoutPositions(this,e,C),this};nQe={fit:!0,padding:30,startAngle:3/2*Math.PI,sweep:void 0,clockwise:!0,equidistant:!1,minNodeSpacing:10,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,height:void 0,width:void 0,spacingFactor:void 0,concentric:o(function(e){return e.degree()},"concentric"),levelWidth:o(function(e){return e.maxDegree()/4},"levelWidth"),animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:o(function(e,r){return!0},"animateFilter"),ready:void 0,stop:void 0,transform:o(function(e,r){return r},"transform")};o(nge,"ConcentricLayout");nge.prototype.run=function(){for(var t=this.options,e=t,r=e.counterclockwise!==void 0?!e.counterclockwise:e.clockwise,n=t.cy,i=e.eles,a=i.nodes().not(":parent"),s=Hs(e.boundingBox?e.boundingBox:{x1:0,y1:0,w:n.width(),h:n.height()}),l={x:s.x1+s.w/2,y:s.y1+s.h/2},u=[],h=0,f=0;f<a.length;f++){var d=a[f],p=void 0;p=e.concentric(d),u.push({value:p,node:d}),d._private.scratch.concentric=p}a.updateStyle();for(var m=0;m<a.length;m++){var g=a[m],y=g.layoutDimensions(e);h=Math.max(h,y.w,y.h)}u.sort(function(ue,Z){return Z.value-ue.value});for(var v=e.levelWidth(a),x=[[]],b=x[0],w=0;w<u.length;w++){var C=u[w];if(b.length>0){var T=Math.abs(b[0].value-C.value);T>=v&&(b=[],x.push(b))}b.push(C)}var E=h+e.minNodeSpacing;if(!e.avoidOverlap){var A=x.length>0&&x[0].length>1,S=Math.min(s.w,s.h)/2-E,_=S/(x.length+A?1:0);E=Math.min(E,_)}for(var I=0,D=0;D<x.length;D++){var k=x[D],L=e.sweep===void 0?2*Math.PI-2*Math.PI/k.length:e.sweep,R=k.dTheta=L/Math.max(1,k.length-1);if(k.length>1&&e.avoidOverlap){var O=Math.cos(R)-Math.cos(0),M=Math.sin(R)-Math.sin(0),B=Math.sqrt(E*E/(O*O+M*M));I=Math.max(B,I)}k.r=I,I+=E}if(e.equidistant){for(var F=0,P=0,z=0;z<x.length;z++){var $=x[z],H=$.r-P;F=Math.max(F,H)}P=0;for(var Q=0;Q<x.length;Q++){var j=x[Q];Q===0&&(P=j.r),j.r=P,P+=F}}for(var ie={},ne=0;ne<x.length;ne++)for(var le=x[ne],he=le.dTheta,K=le.r,X=0;X<le.length;X++){var te=le[X],J=e.startAngle+(r?1:-1)*he*X,se={x:l.x+K*Math.cos(J),y:l.y+K*Math.sin(J)};ie[te.node.id()]=se}return i.nodes().layoutPositions(this,e,function(ue){var Z=ue.id();return ie[Z]}),this};iQe={ready:o(function(){},"ready"),stop:o(function(){},"stop"),animate:!0,animationEasing:void 0,animationDuration:void 0,animateFilter:o(function(e,r){return!0},"animateFilter"),animationThreshold:250,refresh:20,fit:!0,padding:30,boundingBox:void 0,nodeDimensionsIncludeLabels:!1,randomize:!1,componentSpacing:40,nodeRepulsion:o(function(e){return 2048},"nodeRepulsion"),nodeOverlap:4,idealEdgeLength:o(function(e){return 32},"idealEdgeLength"),edgeElasticity:o(function(e){return 32},"edgeElasticity"),nestingFactor:1.2,gravity:1,numIter:1e3,initialTemp:1e3,coolingFactor:.99,minTemp:1};o(HS,"CoseLayout");HS.prototype.run=function(){var t=this.options,e=t.cy,r=this;r.stopped=!1,(t.animate===!0||t.animate===!1)&&r.emit({type:"layoutstart",layout:r}),t.debug===!0?_P=!0:_P=!1;var n=aQe(e,r,t);_P&&lQe(n),t.randomize&&cQe(n);var i=Qu(),a=o(function(){uQe(n,e,t),t.fit===!0&&e.fit(t.padding)},"refresh"),s=o(function(p){return!(r.stopped||p>=t.numIter||(hQe(n,t),n.temperature=n.temperature*t.coolingFactor,n.temperature<t.minTemp))},"mainLoop"),l=o(function(){if(t.animate===!0||t.animate===!1)a(),r.one("layoutstop",t.stop),r.emit({type:"layoutstop",layout:r});else{var p=t.eles.nodes(),m=ige(n,t,p);p.layoutPositions(r,t,m)}},"done"),u=0,h=!0;if(t.animate===!0){var f=o(function d(){for(var p=0;h&&p<t.refresh;)h=s(u),u++,p++;if(!h)E0e(n,t),l();else{var m=Qu();m-i>=t.animationThreshold&&a(),xS(d)}},"frame");f()}else{for(;h;)h=s(u),u++;E0e(n,t),l()}return this};HS.prototype.stop=function(){return this.stopped=!0,this.thread&&this.thread.stop(),this.emit("layoutstop"),this};HS.prototype.destroy=function(){return this.thread&&this.thread.stop(),this};aQe=o(function(e,r,n){for(var i=n.eles.edges(),a=n.eles.nodes(),s=Hs(n.boundingBox?n.boundingBox:{x1:0,y1:0,w:e.width(),h:e.height()}),l={isCompound:e.hasCompoundNodes(),layoutNodes:[],idToIndex:{},nodeSize:a.size(),graphSet:[],indexToGraph:[],layoutEdges:[],edgeSize:i.size(),temperature:n.initialTemp,clientWidth:s.w,clientHeight:s.h,boundingBox:s},u=n.eles.components(),h={},f=0;f<u.length;f++)for(var d=u[f],p=0;p<d.length;p++){var m=d[p];h[m.id()]=f}for(var f=0;f<l.nodeSize;f++){var g=a[f],y=g.layoutDimensions(n),v={};v.isLocked=g.locked(),v.id=g.data("id"),v.parentId=g.data("parent"),v.cmptId=h[g.id()],v.children=[],v.positionX=g.position("x"),v.positionY=g.position("y"),v.offsetX=0,v.offsetY=0,v.height=y.w,v.width=y.h,v.maxX=v.positionX+v.width/2,v.minX=v.positionX-v.width/2,v.maxY=v.positionY+v.height/2,v.minY=v.positionY-v.height/2,v.padLeft=parseFloat(g.style("padding")),v.padRight=parseFloat(g.style("padding")),v.padTop=parseFloat(g.style("padding")),v.padBottom=parseFloat(g.style("padding")),v.nodeRepulsion=si(n.nodeRepulsion)?n.nodeRepulsion(g):n.nodeRepulsion,l.layoutNodes.push(v),l.idToIndex[v.id]=f}for(var x=[],b=0,w=-1,C=[],f=0;f<l.nodeSize;f++){var g=l.layoutNodes[f],T=g.parentId;T!=null?l.layoutNodes[l.idToIndex[T]].children.push(g.id):(x[++w]=g.id,C.push(g.id))}for(l.graphSet.push(C);b<=w;){var E=x[b++],A=l.idToIndex[E],m=l.layoutNodes[A],S=m.children;if(S.length>0){l.graphSet.push(S);for(var f=0;f<S.length;f++)x[++w]=S[f]}}for(var f=0;f<l.graphSet.length;f++)for(var _=l.graphSet[f],p=0;p<_.length;p++){var I=l.idToIndex[_[p]];l.indexToGraph[I]=f}for(var f=0;f<l.edgeSize;f++){var D=i[f],k={};k.id=D.data("id"),k.sourceId=D.data("source"),k.targetId=D.data("target");var L=si(n.idealEdgeLength)?n.idealEdgeLength(D):n.idealEdgeLength,R=si(n.edgeElasticity)?n.edgeElasticity(D):n.edgeElasticity,O=l.idToIndex[k.sourceId],M=l.idToIndex[k.targetId],B=l.indexToGraph[O],F=l.indexToGraph[M];if(B!=F){for(var P=sQe(k.sourceId,k.targetId,l),z=l.graphSet[P],$=0,v=l.layoutNodes[O];z.indexOf(v.id)===-1;)v=l.layoutNodes[l.idToIndex[v.parentId]],$++;for(v=l.layoutNodes[M];z.indexOf(v.id)===-1;)v=l.layoutNodes[l.idToIndex[v.parentId]],$++;L*=$*n.nestingFactor}k.idealLength=L,k.elasticity=R,l.layoutEdges.push(k)}return l},"createLayoutInfo"),sQe=o(function(e,r,n){var i=oQe(e,r,0,n);return 2>i.count?0:i.graph},"findLCA"),oQe=o(function t(e,r,n,i){var a=i.graphSet[n];if(-1<a.indexOf(e)&&-1<a.indexOf(r))return{count:2,graph:n};for(var s=0,l=0;l<a.length;l++){var u=a[l],h=i.idToIndex[u],f=i.layoutNodes[h].children;if(f.length!==0){var d=i.indexToGraph[i.idToIndex[f[0]]],p=t(e,r,d,i);if(p.count!==0)if(p.count===1){if(s++,s===2)break}else return p}}return{count:s,graph:n}},"findLCA_aux"),cQe=o(function(e,r){for(var n=e.clientWidth,i=e.clientHeight,a=0;a<e.nodeSize;a++){var s=e.layoutNodes[a];s.children.length===0&&!s.isLocked&&(s.positionX=Math.random()*n,s.positionY=Math.random()*i)}},"randomizePositions"),ige=o(function(e,r,n){var i=e.boundingBox,a={x1:1/0,x2:-1/0,y1:1/0,y2:-1/0};return r.boundingBox&&(n.forEach(function(s){var l=e.layoutNodes[e.idToIndex[s.data("id")]];a.x1=Math.min(a.x1,l.positionX),a.x2=Math.max(a.x2,l.positionX),a.y1=Math.min(a.y1,l.positionY),a.y2=Math.max(a.y2,l.positionY)}),a.w=a.x2-a.x1,a.h=a.y2-a.y1),function(s,l){var u=e.layoutNodes[e.idToIndex[s.data("id")]];if(r.boundingBox){var h=(u.positionX-a.x1)/a.w,f=(u.positionY-a.y1)/a.h;return{x:i.x1+h*i.w,y:i.y1+f*i.h}}else return{x:u.positionX,y:u.positionY}}},"getScaleInBoundsFn"),uQe=o(function(e,r,n){var i=n.layout,a=n.eles.nodes(),s=ige(e,n,a);a.positions(s),e.ready!==!0&&(e.ready=!0,i.one("layoutready",n.ready),i.emit({type:"layoutready",layout:this}))},"refreshPositions"),hQe=o(function(e,r,n){fQe(e,r),mQe(e),gQe(e,r),yQe(e),vQe(e)},"step"),fQe=o(function(e,r){for(var n=0;n<e.graphSet.length;n++)for(var i=e.graphSet[n],a=i.length,s=0;s<a;s++)for(var l=e.layoutNodes[e.idToIndex[i[s]]],u=s+1;u<a;u++){var h=e.layoutNodes[e.idToIndex[i[u]]];dQe(l,h,e,r)}},"calculateNodeForces"),k0e=o(function(e){return-e+2*e*Math.random()},"randomDistance"),dQe=o(function(e,r,n,i){var a=e.cmptId,s=r.cmptId;if(!(a!==s&&!n.isCompound)){var l=r.positionX-e.positionX,u=r.positionY-e.positionY,h=1;l===0&&u===0&&(l=k0e(h),u=k0e(h));var f=pQe(e,r,l,u);if(f>0)var d=i.nodeOverlap*f,p=Math.sqrt(l*l+u*u),m=d*l/p,g=d*u/p;else var y=CS(e,l,u),v=CS(r,-1*l,-1*u),x=v.x-y.x,b=v.y-y.y,w=x*x+b*b,p=Math.sqrt(w),d=(e.nodeRepulsion+r.nodeRepulsion)/w,m=d*x/p,g=d*b/p;e.isLocked||(e.offsetX-=m,e.offsetY-=g),r.isLocked||(r.offsetX+=m,r.offsetY+=g)}},"nodeRepulsion"),pQe=o(function(e,r,n,i){if(n>0)var a=e.maxX-r.minX;else var a=r.maxX-e.minX;if(i>0)var s=e.maxY-r.minY;else var s=r.maxY-e.minY;return a>=0&&s>=0?Math.sqrt(a*a+s*s):0},"nodesOverlap"),CS=o(function(e,r,n){var i=e.positionX,a=e.positionY,s=e.height||1,l=e.width||1,u=n/r,h=s/l,f={};return r===0&&0<n||r===0&&0>n?(f.x=i,f.y=a+s/2,f):0<r&&-1*h<=u&&u<=h?(f.x=i+l/2,f.y=a+l*n/2/r,f):0>r&&-1*h<=u&&u<=h?(f.x=i-l/2,f.y=a-l*n/2/r,f):0<n&&(u<=-1*h||u>=h)?(f.x=i+s*r/2/n,f.y=a+s/2,f):(0>n&&(u<=-1*h||u>=h)&&(f.x=i-s*r/2/n,f.y=a-s/2),f)},"findClippingPoint"),mQe=o(function(e,r){for(var n=0;n<e.edgeSize;n++){var i=e.layoutEdges[n],a=e.idToIndex[i.sourceId],s=e.layoutNodes[a],l=e.idToIndex[i.targetId],u=e.layoutNodes[l],h=u.positionX-s.positionX,f=u.positionY-s.positionY;if(!(h===0&&f===0)){var d=CS(s,h,f),p=CS(u,-1*h,-1*f),m=p.x-d.x,g=p.y-d.y,y=Math.sqrt(m*m+g*g),v=Math.pow(i.idealLength-y,2)/i.elasticity;if(y!==0)var x=v*m/y,b=v*g/y;else var x=0,b=0;s.isLocked||(s.offsetX+=x,s.offsetY+=b),u.isLocked||(u.offsetX-=x,u.offsetY-=b)}}},"calculateEdgeForces"),gQe=o(function(e,r){if(r.gravity!==0)for(var n=1,i=0;i<e.graphSet.length;i++){var a=e.graphSet[i],s=a.length;if(i===0)var l=e.clientHeight/2,u=e.clientWidth/2;else var h=e.layoutNodes[e.idToIndex[a[0]]],f=e.layoutNodes[e.idToIndex[h.parentId]],l=f.positionX,u=f.positionY;for(var d=0;d<s;d++){var p=e.layoutNodes[e.idToIndex[a[d]]];if(!p.isLocked){var m=l-p.positionX,g=u-p.positionY,y=Math.sqrt(m*m+g*g);if(y>n){var v=r.gravity*m/y,x=r.gravity*g/y;p.offsetX+=v,p.offsetY+=x}}}}},"calculateGravityForces"),yQe=o(function(e,r){var n=[],i=0,a=-1;for(n.push.apply(n,e.graphSet[0]),a+=e.graphSet[0].length;i<=a;){var s=n[i++],l=e.idToIndex[s],u=e.layoutNodes[l],h=u.children;if(0<h.length&&!u.isLocked){for(var f=u.offsetX,d=u.offsetY,p=0;p<h.length;p++){var m=e.layoutNodes[e.idToIndex[h[p]]];m.offsetX+=f,m.offsetY+=d,n[++a]=h[p]}u.offsetX=0,u.offsetY=0}}},"propagateForces"),vQe=o(function(e,r){for(var n=0;n<e.nodeSize;n++){var i=e.layoutNodes[n];0<i.children.length&&(i.maxX=void 0,i.minX=void 0,i.maxY=void 0,i.minY=void 0)}for(var n=0;n<e.nodeSize;n++){var i=e.layoutNodes[n];if(!(0<i.children.length||i.isLocked)){var a=xQe(i.offsetX,i.offsetY,e.temperature);i.positionX+=a.x,i.positionY+=a.y,i.offsetX=0,i.offsetY=0,i.minX=i.positionX-i.width,i.maxX=i.positionX+i.width,i.minY=i.positionY-i.height,i.maxY=i.positionY+i.height,bQe(i,e)}}for(var n=0;n<e.nodeSize;n++){var i=e.layoutNodes[n];0<i.children.length&&!i.isLocked&&(i.positionX=(i.maxX+i.minX)/2,i.positionY=(i.maxY+i.minY)/2,i.width=i.maxX-i.minX,i.height=i.maxY-i.minY)}},"updatePositions"),xQe=o(function(e,r,n){var i=Math.sqrt(e*e+r*r);if(i>n)var a={x:n*e/i,y:n*r/i};else var a={x:e,y:r};return a},"limitForce"),bQe=o(function t(e,r){var n=e.parentId;if(n!=null){var i=r.layoutNodes[r.idToIndex[n]],a=!1;if((i.maxX==null||e.maxX+i.padRight>i.maxX)&&(i.maxX=e.maxX+i.padRight,a=!0),(i.minX==null||e.minX-i.padLeft<i.minX)&&(i.minX=e.minX-i.padLeft,a=!0),(i.maxY==null||e.maxY+i.padBottom>i.maxY)&&(i.maxY=e.maxY+i.padBottom,a=!0),(i.minY==null||e.minY-i.padTop<i.minY)&&(i.minY=e.minY-i.padTop,a=!0),a)return t(i,r)}},"updateAncestryBoundaries"),E0e=o(function(e,r){for(var n=e.layoutNodes,i=[],a=0;a<n.length;a++){var s=n[a],l=s.cmptId,u=i[l]=i[l]||[];u.push(s)}for(var h=0,a=0;a<i.length;a++){var f=i[a];if(f){f.x1=1/0,f.x2=-1/0,f.y1=1/0,f.y2=-1/0;for(var d=0;d<f.length;d++){var p=f[d];f.x1=Math.min(f.x1,p.positionX-p.width/2),f.x2=Math.max(f.x2,p.positionX+p.width/2),f.y1=Math.min(f.y1,p.positionY-p.height/2),f.y2=Math.max(f.y2,p.positionY+p.height/2)}f.w=f.x2-f.x1,f.h=f.y2-f.y1,h+=f.w*f.h}}i.sort(function(b,w){return w.w*w.h-b.w*b.h});for(var m=0,g=0,y=0,v=0,x=Math.sqrt(h)*e.clientWidth/e.clientHeight,a=0;a<i.length;a++){var f=i[a];if(f){for(var d=0;d<f.length;d++){var p=f[d];p.isLocked||(p.positionX+=m-f.x1,p.positionY+=g-f.y1)}m+=f.w+r.componentSpacing,y+=f.w+r.componentSpacing,v=Math.max(v,f.h),y>x&&(g+=v+r.componentSpacing,m=0,y=0,v=0)}}},"separateComponents"),wQe={fit:!0,padding:30,boundingBox:void 0,avoidOverlap:!0,avoidOverlapPadding:10,nodeDimensionsIncludeLabels:!1,spacingFactor:void 0,condense:!1,rows:void 0,cols:void 0,position:o(function(e){},"position"),sort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:o(function(e,r){return!0},"animateFilter"),ready:void 0,stop:void 0,transform:o(function(e,r){return r},"transform")};o(age,"GridLayout");age.prototype.run=function(){var t=this.options,e=t,r=t.cy,n=e.eles,i=n.nodes().not(":parent");e.sort&&(i=i.sort(e.sort));var a=Hs(e.boundingBox?e.boundingBox:{x1:0,y1:0,w:r.width(),h:r.height()});if(a.h===0||a.w===0)n.nodes().layoutPositions(this,e,function(Q){return{x:a.x1,y:a.y1}});else{var s=i.size(),l=Math.sqrt(s*a.h/a.w),u=Math.round(l),h=Math.round(a.w/a.h*l),f=o(function(j){if(j==null)return Math.min(u,h);var ie=Math.min(u,h);ie==u?u=j:h=j},"small"),d=o(function(j){if(j==null)return Math.max(u,h);var ie=Math.max(u,h);ie==u?u=j:h=j},"large"),p=e.rows,m=e.cols!=null?e.cols:e.columns;if(p!=null&&m!=null)u=p,h=m;else if(p!=null&&m==null)u=p,h=Math.ceil(s/u);else if(p==null&&m!=null)h=m,u=Math.ceil(s/h);else if(h*u>s){var g=f(),y=d();(g-1)*y>=s?f(g-1):(y-1)*g>=s&&d(y-1)}else for(;h*u<s;){var v=f(),x=d();(x+1)*v>=s?d(x+1):f(v+1)}var b=a.w/h,w=a.h/u;if(e.condense&&(b=0,w=0),e.avoidOverlap)for(var C=0;C<i.length;C++){var T=i[C],E=T._private.position;(E.x==null||E.y==null)&&(E.x=0,E.y=0);var A=T.layoutDimensions(e),S=e.avoidOverlapPadding,_=A.w+S,I=A.h+S;b=Math.max(b,_),w=Math.max(w,I)}for(var D={},k=o(function(j,ie){return!!D["c-"+j+"-"+ie]},"used"),L=o(function(j,ie){D["c-"+j+"-"+ie]=!0},"use"),R=0,O=0,M=o(function(){O++,O>=h&&(O=0,R++)},"moveToNextCell"),B={},F=0;F<i.length;F++){var P=i[F],z=e.position(P);if(z&&(z.row!==void 0||z.col!==void 0)){var $={row:z.row,col:z.col};if($.col===void 0)for($.col=0;k($.row,$.col);)$.col++;else if($.row===void 0)for($.row=0;k($.row,$.col);)$.row++;B[P.id()]=$,L($.row,$.col)}}var H=o(function(j,ie){var ne,le;if(j.locked()||j.isParent())return!1;var he=B[j.id()];if(he)ne=he.col*b+b/2+a.x1,le=he.row*w+w/2+a.y1;else{for(;k(R,O);)M();ne=O*b+b/2+a.x1,le=R*w+w/2+a.y1,L(R,O),M()}return{x:ne,y:le}},"getPos");i.layoutPositions(this,e,H)}return this};TQe={ready:o(function(){},"ready"),stop:o(function(){},"stop")};o(gB,"NullLayout");gB.prototype.run=function(){var t=this.options,e=t.eles,r=this;return t.cy,r.emit("layoutstart"),e.nodes().positions(function(){return{x:0,y:0}}),r.one("layoutready",t.ready),r.emit("layoutready"),r.one("layoutstop",t.stop),r.emit("layoutstop"),this};gB.prototype.stop=function(){return this};kQe={positions:void 0,zoom:void 0,pan:void 0,fit:!0,padding:30,spacingFactor:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:o(function(e,r){return!0},"animateFilter"),ready:void 0,stop:void 0,transform:o(function(e,r){return r},"transform")};o(sge,"PresetLayout");sge.prototype.run=function(){var t=this.options,e=t.eles,r=e.nodes(),n=si(t.positions);function i(a){if(t.positions==null)return Aqe(a.position());if(n)return t.positions(a);var s=t.positions[a._private.data.id];return s??null}return o(i,"getPosition"),r.layoutPositions(this,t,function(a,s){var l=i(a);return a.locked()||l==null?!1:l}),this};EQe={fit:!0,padding:30,boundingBox:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:o(function(e,r){return!0},"animateFilter"),ready:void 0,stop:void 0,transform:o(function(e,r){return r},"transform")};o(oge,"RandomLayout");oge.prototype.run=function(){var t=this.options,e=t.cy,r=t.eles,n=Hs(t.boundingBox?t.boundingBox:{x1:0,y1:0,w:e.width(),h:e.height()}),i=o(function(s,l){return{x:n.x1+Math.round(Math.random()*n.w),y:n.y1+Math.round(Math.random()*n.h)}},"getPos");return r.nodes().layoutPositions(this,t,i),this};SQe=[{name:"breadthfirst",impl:tge},{name:"circle",impl:rge},{name:"concentric",impl:nge},{name:"cose",impl:HS},{name:"grid",impl:age},{name:"null",impl:gB},{name:"preset",impl:sge},{name:"random",impl:oge}];o(lge,"NullRenderer");S0e=o(function(){},"noop"),C0e=o(function(){throw new Error("A headless instance can not render images")},"throwImgErr");lge.prototype={recalculateRenderedStyle:S0e,notify:o(function(){this.notifications++},"notify"),init:S0e,isHeadless:o(function(){return!0},"isHeadless"),png:C0e,jpg:C0e};yB={};yB.arrowShapeWidth=.3;yB.registerArrowShapes=function(){var t=this.arrowShapes={},e=this,r=o(function(h,f,d,p,m,g,y){var v=m.x-d/2-y,x=m.x+d/2+y,b=m.y-d/2-y,w=m.y+d/2+y,C=v<=h&&h<=x&&b<=f&&f<=w;return C},"bbCollide"),n=o(function(h,f,d,p,m){var g=h*Math.cos(p)-f*Math.sin(p),y=h*Math.sin(p)+f*Math.cos(p),v=g*d,x=y*d,b=v+m.x,w=x+m.y;return{x:b,y:w}},"transform"),i=o(function(h,f,d,p){for(var m=[],g=0;g<h.length;g+=2){var y=h[g],v=h[g+1];m.push(n(y,v,f,d,p))}return m},"transformPoints"),a=o(function(h){for(var f=[],d=0;d<h.length;d++){var p=h[d];f.push(p.x,p.y)}return f},"pointsToArr"),s=o(function(h){return h.pstyle("width").pfValue*h.pstyle("arrow-scale").pfValue*2},"standardGap"),l=o(function(h,f){Zt(f)&&(f=t[f]),t[h]=rr({name:h,points:[-.15,-.3,.15,-.3,.15,.3,-.15,.3],collide:o(function(p,m,g,y,v,x){var b=a(i(this.points,g+2*x,y,v)),w=Us(p,m,b);return w},"collide"),roughCollide:r,draw:o(function(p,m,g,y){var v=i(this.points,m,g,y);e.arrowShapeImpl("polygon")(p,v)},"draw"),spacing:o(function(p){return 0},"spacing"),gap:s},f)},"defineArrowShape");l("none",{collide:bS,roughCollide:bS,draw:rB,spacing:Ppe,gap:Ppe}),l("triangle",{points:[-.15,-.3,0,0,.15,-.3]}),l("arrow","triangle"),l("triangle-backcurve",{points:t.triangle.points,controlPoint:[0,-.15],roughCollide:r,draw:o(function(h,f,d,p,m){var g=i(this.points,f,d,p),y=this.controlPoint,v=n(y[0],y[1],f,d,p);e.arrowShapeImpl(this.name)(h,g,v)},"draw"),gap:o(function(h){return s(h)*.8},"gap")}),l("triangle-tee",{points:[0,0,.15,-.3,-.15,-.3,0,0],pointsTee:[-.15,-.4,-.15,-.5,.15,-.5,.15,-.4],collide:o(function(h,f,d,p,m,g,y){var v=a(i(this.points,d+2*y,p,m)),x=a(i(this.pointsTee,d+2*y,p,m)),b=Us(h,f,v)||Us(h,f,x);return b},"collide"),draw:o(function(h,f,d,p,m){var g=i(this.points,f,d,p),y=i(this.pointsTee,f,d,p);e.arrowShapeImpl(this.name)(h,g,y)},"draw")}),l("circle-triangle",{radius:.15,pointsTr:[0,-.15,.15,-.45,-.15,-.45,0,-.15],collide:o(function(h,f,d,p,m,g,y){var v=m,x=Math.pow(v.x-h,2)+Math.pow(v.y-f,2)<=Math.pow((d+2*y)*this.radius,2),b=a(i(this.points,d+2*y,p,m));return Us(h,f,b)||x},"collide"),draw:o(function(h,f,d,p,m){var g=i(this.pointsTr,f,d,p);e.arrowShapeImpl(this.name)(h,g,p.x,p.y,this.radius*f)},"draw"),spacing:o(function(h){return e.getArrowWidth(h.pstyle("width").pfValue,h.pstyle("arrow-scale").value)*this.radius},"spacing")}),l("triangle-cross",{points:[0,0,.15,-.3,-.15,-.3,0,0],baseCrossLinePts:[-.15,-.4,-.15,-.4,.15,-.4,.15,-.4],crossLinePts:o(function(h,f){var d=this.baseCrossLinePts.slice(),p=f/h,m=3,g=5;return d[m]=d[m]-p,d[g]=d[g]-p,d},"crossLinePts"),collide:o(function(h,f,d,p,m,g,y){var v=a(i(this.points,d+2*y,p,m)),x=a(i(this.crossLinePts(d,g),d+2*y,p,m)),b=Us(h,f,v)||Us(h,f,x);return b},"collide"),draw:o(function(h,f,d,p,m){var g=i(this.points,f,d,p),y=i(this.crossLinePts(f,m),f,d,p);e.arrowShapeImpl(this.name)(h,g,y)},"draw")}),l("vee",{points:[-.15,-.3,0,0,.15,-.3,0,-.15],gap:o(function(h){return s(h)*.525},"gap")}),l("circle",{radius:.15,collide:o(function(h,f,d,p,m,g,y){var v=m,x=Math.pow(v.x-h,2)+Math.pow(v.y-f,2)<=Math.pow((d+2*y)*this.radius,2);return x},"collide"),draw:o(function(h,f,d,p,m){e.arrowShapeImpl(this.name)(h,p.x,p.y,this.radius*f)},"draw"),spacing:o(function(h){return e.getArrowWidth(h.pstyle("width").pfValue,h.pstyle("arrow-scale").value)*this.radius},"spacing")}),l("tee",{points:[-.15,0,-.15,-.1,.15,-.1,.15,0],spacing:o(function(h){return 1},"spacing"),gap:o(function(h){return 1},"gap")}),l("square",{points:[-.15,0,.15,0,.15,-.3,-.15,-.3]}),l("diamond",{points:[-.15,-.15,0,-.3,.15,-.15,0,0],gap:o(function(h){return h.pstyle("width").pfValue*h.pstyle("arrow-scale").value},"gap")}),l("chevron",{points:[0,0,-.15,-.15,-.1,-.2,0,-.1,.1,-.2,.15,-.15],gap:o(function(h){return .95*h.pstyle("width").pfValue*h.pstyle("arrow-scale").value},"gap")})};qp={};qp.projectIntoViewport=function(t,e){var r=this.cy,n=this.findContainerClientCoords(),i=n[0],a=n[1],s=n[4],l=r.pan(),u=r.zoom(),h=((t-i)/s-l.x)/u,f=((e-a)/s-l.y)/u;return[h,f]};qp.findContainerClientCoords=function(){if(this.containerBB)return this.containerBB;var t=this.container,e=t.getBoundingClientRect(),r=this.cy.window().getComputedStyle(t),n=o(function(x){return parseFloat(r.getPropertyValue(x))},"styleValue"),i={left:n("padding-left"),right:n("padding-right"),top:n("padding-top"),bottom:n("padding-bottom")},a={left:n("border-left-width"),right:n("border-right-width"),top:n("border-top-width"),bottom:n("border-bottom-width")},s=t.clientWidth,l=t.clientHeight,u=i.left+i.right,h=i.top+i.bottom,f=a.left+a.right,d=e.width/(s+f),p=s-u,m=l-h,g=e.left+i.left+a.left,y=e.top+i.top+a.top;return this.containerBB=[g,y,p,m,d]};qp.invalidateContainerClientCoordsCache=function(){this.containerBB=null};qp.findNearestElement=function(t,e,r,n){return this.findNearestElements(t,e,r,n)[0]};qp.findNearestElements=function(t,e,r,n){var i=this,a=this,s=a.getCachedZSortedEles(),l=[],u=a.cy.zoom(),h=a.cy.hasCompoundNodes(),f=(n?24:8)/u,d=(n?8:2)/u,p=(n?8:2)/u,m=1/0,g,y;r&&(s=s.interactive);function v(A,S){if(A.isNode()){if(y)return;y=A,l.push(A)}if(A.isEdge()&&(S==null||S<m))if(g){if(g.pstyle("z-compound-depth").value===A.pstyle("z-compound-depth").value&&g.pstyle("z-compound-depth").value===A.pstyle("z-compound-depth").value){for(var _=0;_<l.length;_++)if(l[_].isEdge()){l[_]=A,g=A,m=S??m;break}}}else l.push(A),g=A,m=S??m}o(v,"addEle");function x(A){var S=A.outerWidth()+2*d,_=A.outerHeight()+2*d,I=S/2,D=_/2,k=A.position(),L=A.pstyle("corner-radius").value==="auto"?"auto":A.pstyle("corner-radius").pfValue,R=A._private.rscratch;if(k.x-I<=t&&t<=k.x+I&&k.y-D<=e&&e<=k.y+D){var O=a.nodeShapes[i.getNodeShape(A)];if(O.checkPoint(t,e,0,S,_,k.x,k.y,L,R))return v(A,0),!0}}o(x,"checkNode");function b(A){var S=A._private,_=S.rscratch,I=A.pstyle("width").pfValue,D=A.pstyle("arrow-scale").value,k=I/2+f,L=k*k,R=k*2,F=S.source,P=S.target,O;if(_.edgeType==="segments"||_.edgeType==="straight"||_.edgeType==="haystack"){for(var M=_.allpts,B=0;B+3<M.length;B+=2)if(zqe(t,e,M[B],M[B+1],M[B+2],M[B+3],R)&&L>(O=Wqe(t,e,M[B],M[B+1],M[B+2],M[B+3])))return v(A,O),!0}else if(_.edgeType==="bezier"||_.edgeType==="multibezier"||_.edgeType==="self"||_.edgeType==="compound"){for(var M=_.allpts,B=0;B+5<_.allpts.length;B+=4)if(Gqe(t,e,M[B],M[B+1],M[B+2],M[B+3],M[B+4],M[B+5],R)&&L>(O=Hqe(t,e,M[B],M[B+1],M[B+2],M[B+3],M[B+4],M[B+5])))return v(A,O),!0}for(var F=F||S.source,P=P||S.target,z=i.getArrowWidth(I,D),$=[{name:"source",x:_.arrowStartX,y:_.arrowStartY,angle:_.srcArrowAngle},{name:"target",x:_.arrowEndX,y:_.arrowEndY,angle:_.tgtArrowAngle},{name:"mid-source",x:_.midX,y:_.midY,angle:_.midsrcArrowAngle},{name:"mid-target",x:_.midX,y:_.midY,angle:_.midtgtArrowAngle}],B=0;B<$.length;B++){var H=$[B],Q=a.arrowShapes[A.pstyle(H.name+"-arrow-shape").value],j=A.pstyle("width").pfValue;if(Q.roughCollide(t,e,z,H.angle,{x:H.x,y:H.y},j,f)&&Q.collide(t,e,z,H.angle,{x:H.x,y:H.y},j,f))return v(A),!0}h&&l.length>0&&(x(F),x(P))}o(b,"checkEdge");function w(A,S,_){return Gl(A,S,_)}o(w,"preprop");function C(A,S){var _=A._private,I=p,D;S?D=S+"-":D="",A.boundingBox();var k=_.labelBounds[S||"main"],L=A.pstyle(D+"label").value,R=A.pstyle("text-events").strValue==="yes";if(!(!R||!L)){var O=w(_.rscratch,"labelX",S),M=w(_.rscratch,"labelY",S),B=w(_.rscratch,"labelAngle",S),F=A.pstyle(D+"text-margin-x").pfValue,P=A.pstyle(D+"text-margin-y").pfValue,z=k.x1-I-F,$=k.x2+I-F,H=k.y1-I-P,Q=k.y2+I-P;if(B){var j=Math.cos(B),ie=Math.sin(B),ne=o(function(se,ue){return se=se-O,ue=ue-M,{x:se*j-ue*ie+O,y:se*ie+ue*j+M}},"rotate"),le=ne(z,H),he=ne(z,Q),K=ne($,H),X=ne($,Q),te=[le.x+F,le.y+P,K.x+F,K.y+P,X.x+F,X.y+P,he.x+F,he.y+P];if(Us(t,e,te))return v(A),!0}else if(K1(k,t,e))return v(A),!0}}o(C,"checkLabel");for(var T=s.length-1;T>=0;T--){var E=s[T];E.isNode()?x(E)||C(E):b(E)||C(E)||C(E,"source")||C(E,"target")}return l};qp.getAllInBox=function(t,e,r,n){var i=this.getCachedZSortedEles().interactive,a=[],s=Math.min(t,r),l=Math.max(t,r),u=Math.min(e,n),h=Math.max(e,n);t=s,r=l,e=u,n=h;for(var f=Hs({x1:t,y1:e,x2:r,y2:n}),d=0;d<i.length;d++){var p=i[d];if(p.isNode()){var m=p,g=m.boundingBox({includeNodes:!0,includeEdges:!1,includeLabels:!1});aB(f,g)&&!yme(g,f)&&a.push(m)}else{var y=p,v=y._private,x=v.rscratch;if(x.startX!=null&&x.startY!=null&&!K1(f,x.startX,x.startY)||x.endX!=null&&x.endY!=null&&!K1(f,x.endX,x.endY))continue;if(x.edgeType==="bezier"||x.edgeType==="multibezier"||x.edgeType==="self"||x.edgeType==="compound"||x.edgeType==="segments"||x.edgeType==="haystack"){for(var b=v.rstyle.bezierPts||v.rstyle.linePts||v.rstyle.haystackPts,w=!0,C=0;C<b.length;C++)if(!$qe(f,b[C])){w=!1;break}w&&a.push(y)}else(x.edgeType==="haystack"||x.edgeType==="straight")&&a.push(y)}}return a};AS={};AS.calculateArrowAngles=function(t){var e=t._private.rscratch,r=e.edgeType==="haystack",n=e.edgeType==="bezier",i=e.edgeType==="multibezier",a=e.edgeType==="segments",s=e.edgeType==="compound",l=e.edgeType==="self",u,h,f,d,p,m,x,b;if(r?(f=e.haystackPts[0],d=e.haystackPts[1],p=e.haystackPts[2],m=e.haystackPts[3]):(f=e.arrowStartX,d=e.arrowStartY,p=e.arrowEndX,m=e.arrowEndY),x=e.midX,b=e.midY,a)u=f-e.segpts[0],h=d-e.segpts[1];else if(i||s||l||n){var g=e.allpts,y=oa(g[0],g[2],g[4],.1),v=oa(g[1],g[3],g[5],.1);u=f-y,h=d-v}else u=f-x,h=d-b;e.srcArrowAngle=K6(u,h);var x=e.midX,b=e.midY;if(r&&(x=(f+p)/2,b=(d+m)/2),u=p-f,h=m-d,a){var g=e.allpts;if(g.length/2%2===0){var w=g.length/2,C=w-2;u=g[w]-g[C],h=g[w+1]-g[C+1]}else if(e.isRound)u=e.midVector[1],h=-e.midVector[0];else{var w=g.length/2-1,C=w-2;u=g[w]-g[C],h=g[w+1]-g[C+1]}}else if(i||s||l){var g=e.allpts,T=e.ctrlpts,E,A,S,_;if(T.length/2%2===0){var I=g.length/2-1,D=I+2,k=D+2;E=oa(g[I],g[D],g[k],0),A=oa(g[I+1],g[D+1],g[k+1],0),S=oa(g[I],g[D],g[k],1e-4),_=oa(g[I+1],g[D+1],g[k+1],1e-4)}else{var D=g.length/2-1,I=D-2,k=D+2;E=oa(g[I],g[D],g[k],.4999),A=oa(g[I+1],g[D+1],g[k+1],.4999),S=oa(g[I],g[D],g[k],.5),_=oa(g[I+1],g[D+1],g[k+1],.5)}u=S-E,h=_-A}if(e.midtgtArrowAngle=K6(u,h),e.midDispX=u,e.midDispY=h,u*=-1,h*=-1,a){var g=e.allpts;if(g.length/2%2!==0){if(!e.isRound){var w=g.length/2-1,L=w+2;u=-(g[L]-g[w]),h=-(g[L+1]-g[w+1])}}}if(e.midsrcArrowAngle=K6(u,h),a)u=p-e.segpts[e.segpts.length-2],h=m-e.segpts[e.segpts.length-1];else if(i||s||l||n){var g=e.allpts,R=g.length,y=oa(g[R-6],g[R-4],g[R-2],.9),v=oa(g[R-5],g[R-3],g[R-1],.9);u=p-y,h=m-v}else u=p-x,h=m-b;e.tgtArrowAngle=K6(u,h)};AS.getArrowWidth=AS.getArrowHeight=function(t,e){var r=this.arrowWidthCache=this.arrowWidthCache||{},n=r[t+", "+e];return n||(n=Math.max(Math.pow(t*13.37,.9),29)*e,r[t+", "+e]=n,n)};qc={},Jo={},L0e=o(function(e,r,n){n.x=r.x-e.x,n.y=r.y-e.y,n.len=Math.sqrt(n.x*n.x+n.y*n.y),n.nx=n.x/n.len,n.ny=n.y/n.len,n.ang=Math.atan2(n.ny,n.nx)},"asVec"),CQe=o(function(e,r){r.x=e.x*-1,r.y=e.y*-1,r.nx=e.nx*-1,r.ny=e.ny*-1,r.ang=e.ang>0?-(Math.PI-e.ang):Math.PI+e.ang},"invertVec"),AQe=o(function(e,r,n,i,a){if(e!==D0e?L0e(r,e,qc):CQe(Jo,qc),L0e(r,n,Jo),A0e=qc.nx*Jo.ny-qc.ny*Jo.nx,_0e=qc.nx*Jo.nx-qc.ny*-Jo.ny,Ku=Math.asin(Math.max(-1,Math.min(1,A0e))),Math.abs(Ku)<1e-6){HP=r.x,WP=r.y,Bp=G1=0;return}Fp=1,gS=!1,_0e<0?Ku<0?Ku=Math.PI+Ku:(Ku=Math.PI-Ku,Fp=-1,gS=!0):Ku>0&&(Fp=-1,gS=!0),r.radius!==void 0?G1=r.radius:G1=i,Mp=Ku/2,aS=Math.min(qc.len/2,Jo.len/2),a?(Wc=Math.abs(Math.cos(Mp)*G1/Math.sin(Mp)),Wc>aS?(Wc=aS,Bp=Math.abs(Wc*Math.sin(Mp)/Math.cos(Mp))):Bp=G1):(Wc=Math.min(aS,G1),Bp=Math.abs(Wc*Math.sin(Mp)/Math.cos(Mp))),qP=r.x+Jo.nx*Wc,YP=r.y+Jo.ny*Wc,HP=qP-Jo.ny*Bp*Fp,WP=YP+Jo.nx*Bp*Fp,cge=r.x+qc.nx*Wc,uge=r.y+qc.ny*Wc,D0e=r},"calcCornerArc");o(hge,"drawPreparedRoundCorner");o(vB,"getRoundCorner");Va={};Va.findMidptPtsEtc=function(t,e){var r=e.posPts,n=e.intersectionPts,i=e.vectorNormInverse,a,s=t.pstyle("source-endpoint"),l=t.pstyle("target-endpoint"),u=s.units!=null&&l.units!=null,h=o(function(T,E,A,S){var _=S-E,I=A-T,D=Math.sqrt(I*I+_*_);return{x:-_/D,y:I/D}},"recalcVectorNormInverse"),f=t.pstyle("edge-distances").value;switch(f){case"node-position":a=r;break;case"intersection":a=n;break;case"endpoints":{if(u){var d=this.manualEndptToPx(t.source()[0],s),p=_i(d,2),m=p[0],g=p[1],y=this.manualEndptToPx(t.target()[0],l),v=_i(y,2),x=v[0],b=v[1],w={x1:m,y1:g,x2:x,y2:b};i=h(m,g,x,b),a=w}else un("Edge ".concat(t.id()," has edge-distances:endpoints specified without manual endpoints specified via source-endpoint and target-endpoint.  Falling back on edge-distances:intersection (default).")),a=n;break}}return{midptPts:a,vectorNormInverse:i}};Va.findHaystackPoints=function(t){for(var e=0;e<t.length;e++){var r=t[e],n=r._private,i=n.rscratch;if(!i.haystack){var a=Math.random()*2*Math.PI;i.source={x:Math.cos(a),y:Math.sin(a)},a=Math.random()*2*Math.PI,i.target={x:Math.cos(a),y:Math.sin(a)}}var s=n.source,l=n.target,u=s.position(),h=l.position(),f=s.width(),d=l.width(),p=s.height(),m=l.height(),g=r.pstyle("haystack-radius").value,y=g/2;i.haystackPts=i.allpts=[i.source.x*f*y+u.x,i.source.y*p*y+u.y,i.target.x*d*y+h.x,i.target.y*m*y+h.y],i.midX=(i.allpts[0]+i.allpts[2])/2,i.midY=(i.allpts[1]+i.allpts[3])/2,i.edgeType="haystack",i.haystack=!0,this.storeEdgeProjections(r),this.calculateArrowAngles(r),this.recalculateEdgeLabelProjections(r),this.calculateLabelAngles(r)}};Va.findSegmentsPoints=function(t,e){var r=t._private.rscratch,n=t.pstyle("segment-weights"),i=t.pstyle("segment-distances"),a=t.pstyle("segment-radii"),s=t.pstyle("radius-type"),l=Math.min(n.pfValue.length,i.pfValue.length),u=a.pfValue[a.pfValue.length-1],h=s.pfValue[s.pfValue.length-1];r.edgeType="segments",r.segpts=[],r.radii=[],r.isArcRadius=[];for(var f=0;f<l;f++){var d=n.pfValue[f],p=i.pfValue[f],m=1-d,g=d,y=this.findMidptPtsEtc(t,e),v=y.midptPts,x=y.vectorNormInverse,b={x:v.x1*m+v.x2*g,y:v.y1*m+v.y2*g};r.segpts.push(b.x+x.x*p,b.y+x.y*p),r.radii.push(a.pfValue[f]!==void 0?a.pfValue[f]:u),r.isArcRadius.push((s.pfValue[f]!==void 0?s.pfValue[f]:h)==="arc-radius")}};Va.findLoopPoints=function(t,e,r,n){var i=t._private.rscratch,a=e.dirCounts,s=e.srcPos,l=t.pstyle("control-point-distances"),u=l?l.pfValue[0]:void 0,h=t.pstyle("loop-direction").pfValue,f=t.pstyle("loop-sweep").pfValue,d=t.pstyle("control-point-step-size").pfValue;i.edgeType="self";var p=r,m=d;n&&(p=0,m=u);var g=h-Math.PI/2,y=g-f/2,v=g+f/2,x=h+"_"+f;p=a[x]===void 0?a[x]=0:++a[x],i.ctrlpts=[s.x+Math.cos(y)*1.4*m*(p/3+1),s.y+Math.sin(y)*1.4*m*(p/3+1),s.x+Math.cos(v)*1.4*m*(p/3+1),s.y+Math.sin(v)*1.4*m*(p/3+1)]};Va.findCompoundLoopPoints=function(t,e,r,n){var i=t._private.rscratch;i.edgeType="compound";var a=e.srcPos,s=e.tgtPos,l=e.srcW,u=e.srcH,h=e.tgtW,f=e.tgtH,d=t.pstyle("control-point-step-size").pfValue,p=t.pstyle("control-point-distances"),m=p?p.pfValue[0]:void 0,g=r,y=d;n&&(g=0,y=m);var v=50,x={x:a.x-l/2,y:a.y-u/2},b={x:s.x-h/2,y:s.y-f/2},w={x:Math.min(x.x,b.x),y:Math.min(x.y,b.y)},C=.5,T=Math.max(C,Math.log(l*.01)),E=Math.max(C,Math.log(h*.01));i.ctrlpts=[w.x,w.y-(1+Math.pow(v,1.12)/100)*y*(g/3+1)*T,w.x-(1+Math.pow(v,1.12)/100)*y*(g/3+1)*E,w.y]};Va.findStraightEdgePoints=function(t){t._private.rscratch.edgeType="straight"};Va.findBezierPoints=function(t,e,r,n,i){var a=t._private.rscratch,s=t.pstyle("control-point-step-size").pfValue,l=t.pstyle("control-point-distances"),u=t.pstyle("control-point-weights"),h=l&&u?Math.min(l.value.length,u.value.length):1,f=l?l.pfValue[0]:void 0,d=u.value[0],p=n;a.edgeType=p?"multibezier":"bezier",a.ctrlpts=[];for(var m=0;m<h;m++){var g=(.5-e.eles.length/2+r)*s*(i?-1:1),y=void 0,v=mme(g);p&&(f=l?l.pfValue[m]:s,d=u.value[m]),n?y=f:y=f!==void 0?v*f:void 0;var x=y!==void 0?y:g,b=1-d,w=d,C=this.findMidptPtsEtc(t,e),T=C.midptPts,E=C.vectorNormInverse,A={x:T.x1*b+T.x2*w,y:T.y1*b+T.y2*w};a.ctrlpts.push(A.x+E.x*x,A.y+E.y*x)}};Va.findTaxiPoints=function(t,e){var r=t._private.rscratch;r.edgeType="segments";var n="vertical",i="horizontal",a="leftward",s="rightward",l="downward",u="upward",h="auto",f=e.posPts,d=e.srcW,p=e.srcH,m=e.tgtW,g=e.tgtH,y=t.pstyle("edge-distances").value,v=y!=="node-position",x=t.pstyle("taxi-direction").value,b=x,w=t.pstyle("taxi-turn"),C=w.units==="%",T=w.pfValue,E=T<0,A=t.pstyle("taxi-turn-min-distance").pfValue,S=v?(d+m)/2:0,_=v?(p+g)/2:0,I=f.x2-f.x1,D=f.y2-f.y1,k=o(function(q,pe){return q>0?Math.max(q-pe,0):Math.min(q+pe,0)},"subDWH"),L=k(I,S),R=k(D,_),O=!1;b===h?x=Math.abs(L)>Math.abs(R)?i:n:b===u||b===l?(x=n,O=!0):(b===a||b===s)&&(x=i,O=!0);var M=x===n,B=M?R:L,F=M?D:I,P=mme(F),z=!1;!(O&&(C||E))&&(b===l&&F<0||b===u&&F>0||b===a&&F>0||b===s&&F<0)&&(P*=-1,B=P*Math.abs(B),z=!0);var $;if(C){var H=T<0?1+T:T;$=H*B}else{var Q=T<0?B:0;$=Q+T*P}var j=o(function(q){return Math.abs(q)<A||Math.abs(q)>=Math.abs(B)},"getIsTooClose"),ie=j($),ne=j(Math.abs(B)-Math.abs($)),le=ie||ne;if(le&&!z)if(M){var he=Math.abs(F)<=p/2,K=Math.abs(I)<=m/2;if(he){var X=(f.x1+f.x2)/2,te=f.y1,J=f.y2;r.segpts=[X,te,X,J]}else if(K){var se=(f.y1+f.y2)/2,ue=f.x1,Z=f.x2;r.segpts=[ue,se,Z,se]}else r.segpts=[f.x1,f.y2]}else{var Se=Math.abs(F)<=d/2,ce=Math.abs(D)<=g/2;if(Se){var ae=(f.y1+f.y2)/2,Oe=f.x1,ge=f.x2;r.segpts=[Oe,ae,ge,ae]}else if(ce){var ze=(f.x1+f.x2)/2,He=f.y1,$e=f.y2;r.segpts=[ze,He,ze,$e]}else r.segpts=[f.x2,f.y1]}else if(M){var Re=f.y1+$+(v?p/2*P:0),Ie=f.x1,be=f.x2;r.segpts=[Ie,Re,be,Re]}else{var W=f.x1+$+(v?d/2*P:0),de=f.y1,re=f.y2;r.segpts=[W,de,W,re]}if(r.isRound){var oe=t.pstyle("taxi-radius").value,V=t.pstyle("radius-type").value[0]==="arc-radius";r.radii=new Array(r.segpts.length/2).fill(oe),r.isArcRadius=new Array(r.segpts.length/2).fill(V)}};Va.tryToCorrectInvalidPoints=function(t,e){var r=t._private.rscratch;if(r.edgeType==="bezier"){var n=e.srcPos,i=e.tgtPos,a=e.srcW,s=e.srcH,l=e.tgtW,u=e.tgtH,h=e.srcShape,f=e.tgtShape,d=e.srcCornerRadius,p=e.tgtCornerRadius,m=e.srcRs,g=e.tgtRs,y=!Ct(r.startX)||!Ct(r.startY),v=!Ct(r.arrowStartX)||!Ct(r.arrowStartY),x=!Ct(r.endX)||!Ct(r.endY),b=!Ct(r.arrowEndX)||!Ct(r.arrowEndY),w=3,C=this.getArrowWidth(t.pstyle("width").pfValue,t.pstyle("arrow-scale").value)*this.arrowShapeWidth,T=w*C,E=Gp({x:r.ctrlpts[0],y:r.ctrlpts[1]},{x:r.startX,y:r.startY}),A=E<T,S=Gp({x:r.ctrlpts[0],y:r.ctrlpts[1]},{x:r.endX,y:r.endY}),_=S<T,I=!1;if(y||v||A){I=!0;var D={x:r.ctrlpts[0]-n.x,y:r.ctrlpts[1]-n.y},k=Math.sqrt(D.x*D.x+D.y*D.y),L={x:D.x/k,y:D.y/k},R=Math.max(a,s),O={x:r.ctrlpts[0]+L.x*2*R,y:r.ctrlpts[1]+L.y*2*R},M=h.intersectLine(n.x,n.y,a,s,O.x,O.y,0,d,m);A?(r.ctrlpts[0]=r.ctrlpts[0]+L.x*(T-E),r.ctrlpts[1]=r.ctrlpts[1]+L.y*(T-E)):(r.ctrlpts[0]=M[0]+L.x*T,r.ctrlpts[1]=M[1]+L.y*T)}if(x||b||_){I=!0;var B={x:r.ctrlpts[0]-i.x,y:r.ctrlpts[1]-i.y},F=Math.sqrt(B.x*B.x+B.y*B.y),P={x:B.x/F,y:B.y/F},z=Math.max(a,s),$={x:r.ctrlpts[0]+P.x*2*z,y:r.ctrlpts[1]+P.y*2*z},H=f.intersectLine(i.x,i.y,l,u,$.x,$.y,0,p,g);_?(r.ctrlpts[0]=r.ctrlpts[0]+P.x*(T-S),r.ctrlpts[1]=r.ctrlpts[1]+P.y*(T-S)):(r.ctrlpts[0]=H[0]+P.x*T,r.ctrlpts[1]=H[1]+P.y*T)}I&&this.findEndpoints(t)}};Va.storeAllpts=function(t){var e=t._private.rscratch;if(e.edgeType==="multibezier"||e.edgeType==="bezier"||e.edgeType==="self"||e.edgeType==="compound"){e.allpts=[],e.allpts.push(e.startX,e.startY);for(var r=0;r+1<e.ctrlpts.length;r+=2)e.allpts.push(e.ctrlpts[r],e.ctrlpts[r+1]),r+3<e.ctrlpts.length&&e.allpts.push((e.ctrlpts[r]+e.ctrlpts[r+2])/2,(e.ctrlpts[r+1]+e.ctrlpts[r+3])/2);e.allpts.push(e.endX,e.endY);var n,i;e.ctrlpts.length/2%2===0?(n=e.allpts.length/2-1,e.midX=e.allpts[n],e.midY=e.allpts[n+1]):(n=e.allpts.length/2-3,i=.5,e.midX=oa(e.allpts[n],e.allpts[n+2],e.allpts[n+4],i),e.midY=oa(e.allpts[n+1],e.allpts[n+3],e.allpts[n+5],i))}else if(e.edgeType==="straight")e.allpts=[e.startX,e.startY,e.endX,e.endY],e.midX=(e.startX+e.endX+e.arrowStartX+e.arrowEndX)/4,e.midY=(e.startY+e.endY+e.arrowStartY+e.arrowEndY)/4;else if(e.edgeType==="segments"){if(e.allpts=[],e.allpts.push(e.startX,e.startY),e.allpts.push.apply(e.allpts,e.segpts),e.allpts.push(e.endX,e.endY),e.isRound){e.roundCorners=[];for(var a=2;a+3<e.allpts.length;a+=2){var s=e.radii[a/2-1],l=e.isArcRadius[a/2-1];e.roundCorners.push(vB({x:e.allpts[a-2],y:e.allpts[a-1]},{x:e.allpts[a],y:e.allpts[a+1],radius:s},{x:e.allpts[a+2],y:e.allpts[a+3]},s,l))}}if(e.segpts.length%4===0){var u=e.segpts.length/2,h=u-2;e.midX=(e.segpts[h]+e.segpts[u])/2,e.midY=(e.segpts[h+1]+e.segpts[u+1])/2}else{var f=e.segpts.length/2-1;if(!e.isRound)e.midX=e.segpts[f],e.midY=e.segpts[f+1];else{var d={x:e.segpts[f],y:e.segpts[f+1]},p=e.roundCorners[f/2],m=[d.x-p.cx,d.y-p.cy],g=p.radius/Math.sqrt(Math.pow(m[0],2)+Math.pow(m[1],2));m=m.map(function(y){return y*g}),e.midX=p.cx+m[0],e.midY=p.cy+m[1],e.midVector=m}}}};Va.checkForInvalidEdgeWarning=function(t){var e=t[0]._private.rscratch;e.nodesOverlap||Ct(e.startX)&&Ct(e.startY)&&Ct(e.endX)&&Ct(e.endY)?e.loggedErr=!1:e.loggedErr||(e.loggedErr=!0,un("Edge `"+t.id()+"` has invalid endpoints and so it is impossible to draw.  Adjust your edge style (e.g. control points) accordingly or use an alternative edge type.  This is expected behaviour when the source node and the target node overlap."))};Va.findEdgeControlPoints=function(t){var e=this;if(!(!t||t.length===0)){for(var r=this,n=r.cy,i=n.hasCompoundNodes(),a={map:new Xc,get:o(function(A){var S=this.map.get(A[0]);return S!=null?S.get(A[1]):null},"get"),set:o(function(A,S){var _=this.map.get(A[0]);_==null&&(_=new Xc,this.map.set(A[0],_)),_.set(A[1],S)},"set")},s=[],l=[],u=0;u<t.length;u++){var h=t[u],f=h._private,d=h.pstyle("curve-style").value;if(!(h.removed()||!h.takesUpSpace())){if(d==="haystack"){l.push(h);continue}var p=d==="unbundled-bezier"||d.endsWith("segments")||d==="straight"||d==="straight-triangle"||d.endsWith("taxi"),m=d==="unbundled-bezier"||d==="bezier",g=f.source,y=f.target,v=g.poolIndex(),x=y.poolIndex(),b=[v,x].sort(),w=a.get(b);w==null&&(w={eles:[]},a.set(b,w),s.push(b)),w.eles.push(h),p&&(w.hasUnbundled=!0),m&&(w.hasBezier=!0)}}for(var C=o(function(A){var S=s[A],_=a.get(S),I=void 0;if(!_.hasUnbundled){var D=_.eles[0].parallelEdges().filter(function(W){return W.isBundledBezier()});nB(_.eles),D.forEach(function(W){return _.eles.push(W)}),_.eles.sort(function(W,de){return W.poolIndex()-de.poolIndex()})}var k=_.eles[0],L=k.source(),R=k.target();if(L.poolIndex()>R.poolIndex()){var O=L;L=R,R=O}var M=_.srcPos=L.position(),B=_.tgtPos=R.position(),F=_.srcW=L.outerWidth(),P=_.srcH=L.outerHeight(),z=_.tgtW=R.outerWidth(),$=_.tgtH=R.outerHeight(),H=_.srcShape=r.nodeShapes[e.getNodeShape(L)],Q=_.tgtShape=r.nodeShapes[e.getNodeShape(R)],j=_.srcCornerRadius=L.pstyle("corner-radius").value==="auto"?"auto":L.pstyle("corner-radius").pfValue,ie=_.tgtCornerRadius=R.pstyle("corner-radius").value==="auto"?"auto":R.pstyle("corner-radius").pfValue,ne=_.tgtRs=R._private.rscratch,le=_.srcRs=L._private.rscratch;_.dirCounts={north:0,west:0,south:0,east:0,northwest:0,southwest:0,northeast:0,southeast:0};for(var he=0;he<_.eles.length;he++){var K=_.eles[he],X=K[0]._private.rscratch,te=K.pstyle("curve-style").value,J=te==="unbundled-bezier"||te.endsWith("segments")||te.endsWith("taxi"),se=!L.same(K.source());if(!_.calculatedIntersection&&L!==R&&(_.hasBezier||_.hasUnbundled)){_.calculatedIntersection=!0;var ue=H.intersectLine(M.x,M.y,F,P,B.x,B.y,0,j,le),Z=_.srcIntn=ue,Se=Q.intersectLine(B.x,B.y,z,$,M.x,M.y,0,ie,ne),ce=_.tgtIntn=Se,ae=_.intersectionPts={x1:ue[0],x2:Se[0],y1:ue[1],y2:Se[1]},Oe=_.posPts={x1:M.x,x2:B.x,y1:M.y,y2:B.y},ge=Se[1]-ue[1],ze=Se[0]-ue[0],He=Math.sqrt(ze*ze+ge*ge),$e=_.vector={x:ze,y:ge},Re=_.vectorNorm={x:$e.x/He,y:$e.y/He},Ie={x:-Re.y,y:Re.x};_.nodesOverlap=!Ct(He)||Q.checkPoint(ue[0],ue[1],0,z,$,B.x,B.y,ie,ne)||H.checkPoint(Se[0],Se[1],0,F,P,M.x,M.y,j,le),_.vectorNormInverse=Ie,I={nodesOverlap:_.nodesOverlap,dirCounts:_.dirCounts,calculatedIntersection:!0,hasBezier:_.hasBezier,hasUnbundled:_.hasUnbundled,eles:_.eles,srcPos:B,srcRs:ne,tgtPos:M,tgtRs:le,srcW:z,srcH:$,tgtW:F,tgtH:P,srcIntn:ce,tgtIntn:Z,srcShape:Q,tgtShape:H,posPts:{x1:Oe.x2,y1:Oe.y2,x2:Oe.x1,y2:Oe.y1},intersectionPts:{x1:ae.x2,y1:ae.y2,x2:ae.x1,y2:ae.y1},vector:{x:-$e.x,y:-$e.y},vectorNorm:{x:-Re.x,y:-Re.y},vectorNormInverse:{x:-Ie.x,y:-Ie.y}}}var be=se?I:_;X.nodesOverlap=be.nodesOverlap,X.srcIntn=be.srcIntn,X.tgtIntn=be.tgtIntn,X.isRound=te.startsWith("round"),i&&(L.isParent()||L.isChild()||R.isParent()||R.isChild())&&(L.parents().anySame(R)||R.parents().anySame(L)||L.same(R)&&L.isParent())?e.findCompoundLoopPoints(K,be,he,J):L===R?e.findLoopPoints(K,be,he,J):te.endsWith("segments")?e.findSegmentsPoints(K,be):te.endsWith("taxi")?e.findTaxiPoints(K,be):te==="straight"||!J&&_.eles.length%2===1&&he===Math.floor(_.eles.length/2)?e.findStraightEdgePoints(K):e.findBezierPoints(K,be,he,J,se),e.findEndpoints(K),e.tryToCorrectInvalidPoints(K,be),e.checkForInvalidEdgeWarning(K),e.storeAllpts(K),e.storeEdgeProjections(K),e.calculateArrowAngles(K),e.recalculateEdgeLabelProjections(K),e.calculateLabelAngles(K)}},"_loop"),T=0;T<s.length;T++)C(T);this.findHaystackPoints(l)}};o(fge,"getPts");Va.getSegmentPoints=function(t){var e=t[0]._private.rscratch;this.recalculateRenderedStyle(t);var r=e.edgeType;if(r==="segments")return fge(e.segpts)};Va.getControlPoints=function(t){var e=t[0]._private.rscratch;this.recalculateRenderedStyle(t);var r=e.edgeType;if(r==="bezier"||r==="multibezier"||r==="self"||r==="compound")return fge(e.ctrlpts)};Va.getEdgeMidpoint=function(t){var e=t[0]._private.rscratch;return this.recalculateRenderedStyle(t),{x:e.midX,y:e.midY}};o4={};o4.manualEndptToPx=function(t,e){var r=this,n=t.position(),i=t.outerWidth(),a=t.outerHeight(),s=t._private.rscratch;if(e.value.length===2){var l=[e.pfValue[0],e.pfValue[1]];return e.units[0]==="%"&&(l[0]=l[0]*i),e.units[1]==="%"&&(l[1]=l[1]*a),l[0]+=n.x,l[1]+=n.y,l}else{var u=e.pfValue[0];u=-Math.PI/2+u;var h=2*Math.max(i,a),f=[n.x+Math.cos(u)*h,n.y+Math.sin(u)*h];return r.nodeShapes[this.getNodeShape(t)].intersectLine(n.x,n.y,i,a,f[0],f[1],0,t.pstyle("corner-radius").value==="auto"?"auto":t.pstyle("corner-radius").pfValue,s)}};o4.findEndpoints=function(t){var e=this,r,n=t.source()[0],i=t.target()[0],a=n.position(),s=i.position(),l=t.pstyle("target-arrow-shape").value,u=t.pstyle("source-arrow-shape").value,h=t.pstyle("target-distance-from-node").pfValue,f=t.pstyle("source-distance-from-node").pfValue,d=n._private.rscratch,p=i._private.rscratch,m=t.pstyle("curve-style").value,g=t._private.rscratch,y=g.edgeType,v=m==="taxi",x=y==="self"||y==="compound",b=y==="bezier"||y==="multibezier"||x,w=y!=="bezier",C=y==="straight"||y==="segments",T=y==="segments",E=b||w||C,A=x||v,S=t.pstyle("source-endpoint"),_=A?"outside-to-node":S.value,I=n.pstyle("corner-radius").value==="auto"?"auto":n.pstyle("corner-radius").pfValue,D=t.pstyle("target-endpoint"),k=A?"outside-to-node":D.value,L=i.pstyle("corner-radius").value==="auto"?"auto":i.pstyle("corner-radius").pfValue;g.srcManEndpt=S,g.tgtManEndpt=D;var R,O,M,B;if(b){var F=[g.ctrlpts[0],g.ctrlpts[1]],P=w?[g.ctrlpts[g.ctrlpts.length-2],g.ctrlpts[g.ctrlpts.length-1]]:F;R=P,O=F}else if(C){var z=T?g.segpts.slice(0,2):[s.x,s.y],$=T?g.segpts.slice(g.segpts.length-2):[a.x,a.y];R=$,O=z}if(k==="inside-to-node")r=[s.x,s.y];else if(D.units)r=this.manualEndptToPx(i,D);else if(k==="outside-to-line")r=g.tgtIntn;else if(k==="outside-to-node"||k==="outside-to-node-or-label"?M=R:(k==="outside-to-line"||k==="outside-to-line-or-label")&&(M=[a.x,a.y]),r=e.nodeShapes[this.getNodeShape(i)].intersectLine(s.x,s.y,i.outerWidth(),i.outerHeight(),M[0],M[1],0,L,p),k==="outside-to-node-or-label"||k==="outside-to-line-or-label"){var H=i._private.rscratch,Q=H.labelWidth,j=H.labelHeight,ie=H.labelX,ne=H.labelY,le=Q/2,he=j/2,K=i.pstyle("text-valign").value;K==="top"?ne-=he:K==="bottom"&&(ne+=he);var X=i.pstyle("text-halign").value;X==="left"?ie-=le:X==="right"&&(ie+=le);var te=Xb(M[0],M[1],[ie-le,ne-he,ie+le,ne-he,ie+le,ne+he,ie-le,ne+he],s.x,s.y);if(te.length>0){var J=a,se=Op(J,U1(r)),ue=Op(J,U1(te)),Z=se;if(ue<se&&(r=te,Z=ue),te.length>2){var Se=Op(J,{x:te[2],y:te[3]});Se<Z&&(r=[te[2],te[3]])}}}var ce=Q6(r,R,e.arrowShapes[l].spacing(t)+h),ae=Q6(r,R,e.arrowShapes[l].gap(t)+h);if(g.endX=ae[0],g.endY=ae[1],g.arrowEndX=ce[0],g.arrowEndY=ce[1],_==="inside-to-node")r=[a.x,a.y];else if(S.units)r=this.manualEndptToPx(n,S);else if(_==="outside-to-line")r=g.srcIntn;else if(_==="outside-to-node"||_==="outside-to-node-or-label"?B=O:(_==="outside-to-line"||_==="outside-to-line-or-label")&&(B=[s.x,s.y]),r=e.nodeShapes[this.getNodeShape(n)].intersectLine(a.x,a.y,n.outerWidth(),n.outerHeight(),B[0],B[1],0,I,d),_==="outside-to-node-or-label"||_==="outside-to-line-or-label"){var Oe=n._private.rscratch,ge=Oe.labelWidth,ze=Oe.labelHeight,He=Oe.labelX,$e=Oe.labelY,Re=ge/2,Ie=ze/2,be=n.pstyle("text-valign").value;be==="top"?$e-=Ie:be==="bottom"&&($e+=Ie);var W=n.pstyle("text-halign").value;W==="left"?He-=Re:W==="right"&&(He+=Re);var de=Xb(B[0],B[1],[He-Re,$e-Ie,He+Re,$e-Ie,He+Re,$e+Ie,He-Re,$e+Ie],a.x,a.y);if(de.length>0){var re=s,oe=Op(re,U1(r)),V=Op(re,U1(de)),xe=oe;if(V<oe&&(r=[de[0],de[1]],xe=V),de.length>2){var q=Op(re,{x:de[2],y:de[3]});q<xe&&(r=[de[2],de[3]])}}}var pe=Q6(r,O,e.arrowShapes[u].spacing(t)+f),ve=Q6(r,O,e.arrowShapes[u].gap(t)+f);g.startX=ve[0],g.startY=ve[1],g.arrowStartX=pe[0],g.arrowStartY=pe[1],E&&(!Ct(g.startX)||!Ct(g.startY)||!Ct(g.endX)||!Ct(g.endY)?g.badLine=!0:g.badLine=!1)};o4.getSourceEndpoint=function(t){var e=t[0]._private.rscratch;switch(this.recalculateRenderedStyle(t),e.edgeType){case"haystack":return{x:e.haystackPts[0],y:e.haystackPts[1]};default:return{x:e.arrowStartX,y:e.arrowStartY}}};o4.getTargetEndpoint=function(t){var e=t[0]._private.rscratch;switch(this.recalculateRenderedStyle(t),e.edgeType){case"haystack":return{x:e.haystackPts[2],y:e.haystackPts[3]};default:return{x:e.arrowEndX,y:e.arrowEndY}}};xB={};o(_Qe,"pushBezierPts");xB.storeEdgeProjections=function(t){var e=t._private,r=e.rscratch,n=r.edgeType;if(e.rstyle.bezierPts=null,e.rstyle.linePts=null,e.rstyle.haystackPts=null,n==="multibezier"||n==="bezier"||n==="self"||n==="compound"){e.rstyle.bezierPts=[];for(var i=0;i+5<r.allpts.length;i+=4)_Qe(this,t,r.allpts.slice(i,i+6))}else if(n==="segments")for(var a=e.rstyle.linePts=[],i=0;i+1<r.allpts.length;i+=2)a.push({x:r.allpts[i],y:r.allpts[i+1]});else if(n==="haystack"){var s=r.haystackPts;e.rstyle.haystackPts=[{x:s[0],y:s[1]},{x:s[2],y:s[3]}]}e.rstyle.arrowWidth=this.getArrowWidth(t.pstyle("width").pfValue,t.pstyle("arrow-scale").value)*this.arrowShapeWidth};xB.recalculateEdgeProjections=function(t){this.findEdgeControlPoints(t)};Kc={};Kc.recalculateNodeLabelProjection=function(t){var e=t.pstyle("label").strValue;if(!Af(e)){var r,n,i=t._private,a=t.width(),s=t.height(),l=t.padding(),u=t.position(),h=t.pstyle("text-halign").strValue,f=t.pstyle("text-valign").strValue,d=i.rscratch,p=i.rstyle;switch(h){case"left":r=u.x-a/2-l;break;case"right":r=u.x+a/2+l;break;default:r=u.x}switch(f){case"top":n=u.y-s/2-l;break;case"bottom":n=u.y+s/2+l;break;default:n=u.y}d.labelX=r,d.labelY=n,p.labelX=r,p.labelY=n,this.calculateLabelAngles(t),this.applyLabelDimensions(t)}};dge=o(function(e,r){var n=Math.atan(r/e);return e===0&&n<0&&(n=n*-1),n},"lineAngleFromDelta"),pge=o(function(e,r){var n=r.x-e.x,i=r.y-e.y;return dge(n,i)},"lineAngle"),DQe=o(function(e,r,n,i){var a=Yb(0,i-.001,1),s=Yb(0,i+.001,1),l=W1(e,r,n,a),u=W1(e,r,n,s);return pge(l,u)},"bezierAngle");Kc.recalculateEdgeLabelProjections=function(t){var e,r=t._private,n=r.rscratch,i=this,a={mid:t.pstyle("label").strValue,source:t.pstyle("source-label").strValue,target:t.pstyle("target-label").strValue};if(a.mid||a.source||a.target){e={x:n.midX,y:n.midY};var s=o(function(d,p,m){kf(r.rscratch,d,p,m),kf(r.rstyle,d,p,m)},"setRs");s("labelX",null,e.x),s("labelY",null,e.y);var l=dge(n.midDispX,n.midDispY);s("labelAutoAngle",null,l);var u=o(function f(){if(f.cache)return f.cache;for(var d=[],p=0;p+5<n.allpts.length;p+=4){var m={x:n.allpts[p],y:n.allpts[p+1]},g={x:n.allpts[p+2],y:n.allpts[p+3]},y={x:n.allpts[p+4],y:n.allpts[p+5]};d.push({p0:m,p1:g,p2:y,startDist:0,length:0,segments:[]})}var v=r.rstyle.bezierPts,x=i.bezierProjPcts.length;function b(A,S,_,I,D){var k=Gp(S,_),L=A.segments[A.segments.length-1],R={p0:S,p1:_,t0:I,t1:D,startDist:L?L.startDist+L.length:0,length:k};A.segments.push(R),A.length+=k}o(b,"addSegment");for(var w=0;w<d.length;w++){var C=d[w],T=d[w-1];T&&(C.startDist=T.startDist+T.length),b(C,C.p0,v[w*x],0,i.bezierProjPcts[0]);for(var E=0;E<x-1;E++)b(C,v[w*x+E],v[w*x+E+1],i.bezierProjPcts[E],i.bezierProjPcts[E+1]);b(C,v[w*x+x-1],C.p2,i.bezierProjPcts[x-1],1)}return f.cache=d},"createControlPointInfo"),h=o(function(d){var p,m=d==="source";if(a[d]){var g=t.pstyle(d+"-text-offset").pfValue;switch(n.edgeType){case"self":case"compound":case"bezier":case"multibezier":{for(var y=u(),v,x=0,b=0,w=0;w<y.length;w++){for(var C=y[m?w:y.length-1-w],T=0;T<C.segments.length;T++){var E=C.segments[m?T:C.segments.length-1-T],A=w===y.length-1&&T===C.segments.length-1;if(x=b,b+=E.length,b>=g||A){v={cp:C,segment:E};break}}if(v)break}var S=v.cp,_=v.segment,I=(g-x)/_.length,D=_.t1-_.t0,k=m?_.t0+D*I:_.t1-D*I;k=Yb(0,k,1),e=W1(S.p0,S.p1,S.p2,k),p=DQe(S.p0,S.p1,S.p2,k);break}case"straight":case"segments":case"haystack":{for(var L=0,R,O,M,B,F=n.allpts.length,P=0;P+3<F&&(m?(M={x:n.allpts[P],y:n.allpts[P+1]},B={x:n.allpts[P+2],y:n.allpts[P+3]}):(M={x:n.allpts[F-2-P],y:n.allpts[F-1-P]},B={x:n.allpts[F-4-P],y:n.allpts[F-3-P]}),R=Gp(M,B),O=L,L+=R,!(L>=g));P+=2);var z=g-O,$=z/R;$=Yb(0,$,1),e=Iqe(M,B,$),p=pge(M,B);break}}s("labelX",d,e.x),s("labelY",d,e.y),s("labelAutoAngle",d,p)}},"calculateEndProjection");h("source"),h("target"),this.applyLabelDimensions(t)}};Kc.applyLabelDimensions=function(t){this.applyPrefixedLabelDimensions(t),t.isEdge()&&(this.applyPrefixedLabelDimensions(t,"source"),this.applyPrefixedLabelDimensions(t,"target"))};Kc.applyPrefixedLabelDimensions=function(t,e){var r=t._private,n=this.getLabelText(t,e),i=this.calculateLabelDimensions(t,n),a=t.pstyle("line-height").pfValue,s=t.pstyle("text-wrap").strValue,l=Gl(r.rscratch,"labelWrapCachedLines",e)||[],u=s!=="wrap"?1:Math.max(l.length,1),h=i.height/u,f=h*a,d=i.width,p=i.height+(u-1)*(a-1)*h;kf(r.rstyle,"labelWidth",e,d),kf(r.rscratch,"labelWidth",e,d),kf(r.rstyle,"labelHeight",e,p),kf(r.rscratch,"labelHeight",e,p),kf(r.rscratch,"labelLineHeight",e,f)};Kc.getLabelText=function(t,e){var r=t._private,n=e?e+"-":"",i=t.pstyle(n+"label").strValue,a=t.pstyle("text-transform").value,s=o(function(Q,j){return j?(kf(r.rscratch,Q,e,j),j):Gl(r.rscratch,Q,e)},"rscratch");if(!i)return"";a=="none"||(a=="uppercase"?i=i.toUpperCase():a=="lowercase"&&(i=i.toLowerCase()));var l=t.pstyle("text-wrap").value;if(l==="wrap"){var u=s("labelKey");if(u!=null&&s("labelWrapKey")===u)return s("labelWrapCachedText");for(var h="\u200B",f=i.split(`
+`),d=t.pstyle("text-max-width").pfValue,p=t.pstyle("text-overflow-wrap").value,m=p==="anywhere",g=[],y=/[\s\u200b]+|$/g,v=0;v<f.length;v++){var x=f[v],b=this.calculateLabelDimensions(t,x),w=b.width;if(m){var C=x.split("").join(h);x=C}if(w>d){var T=x.matchAll(y),E="",A=0,S=mo(T),_;try{for(S.s();!(_=S.n()).done;){var I=_.value,D=I[0],k=x.substring(A,I.index);A=I.index+D.length;var L=E.length===0?k:E+k+D,R=this.calculateLabelDimensions(t,L),O=R.width;O<=d?E+=k+D:(E&&g.push(E),E=k+D)}}catch(H){S.e(H)}finally{S.f()}E.match(/^[\s\u200b]+$/)||g.push(E)}else g.push(x)}s("labelWrapCachedLines",g),i=s("labelWrapCachedText",g.join(`
+`)),s("labelWrapKey",u)}else if(l==="ellipsis"){var M=t.pstyle("text-max-width").pfValue,B="",F="\u2026",P=!1;if(this.calculateLabelDimensions(t,i).width<M)return i;for(var z=0;z<i.length;z++){var $=this.calculateLabelDimensions(t,B+i[z]+F).width;if($>M)break;B+=i[z],z===i.length-1&&(P=!0)}return P||(B+=F),B}return i};Kc.getLabelJustification=function(t){var e=t.pstyle("text-justification").strValue,r=t.pstyle("text-halign").strValue;if(e==="auto")if(t.isNode())switch(r){case"left":return"right";case"right":return"left";default:return"center"}else return"center";else return e};Kc.calculateLabelDimensions=function(t,e){var r=this,n=r.cy.window(),i=n.document,a=_f(e,t._private.labelDimsKey),s=r.labelDimCache||(r.labelDimCache=[]),l=s[a];if(l!=null)return l;var u=0,h=t.pstyle("font-style").strValue,f=t.pstyle("font-size").pfValue,d=t.pstyle("font-family").strValue,p=t.pstyle("font-weight").strValue,m=this.labelCalcCanvas,g=this.labelCalcCanvasContext;if(!m){m=this.labelCalcCanvas=i.createElement("canvas"),g=this.labelCalcCanvasContext=m.getContext("2d");var y=m.style;y.position="absolute",y.left="-9999px",y.top="-9999px",y.zIndex="-1",y.visibility="hidden",y.pointerEvents="none"}g.font="".concat(h," ").concat(p," ").concat(f,"px ").concat(d);for(var v=0,x=0,b=e.split(`
+`),w=0;w<b.length;w++){var C=b[w],T=g.measureText(C),E=Math.ceil(T.width),A=f;v=Math.max(E,v),x+=A}return v+=u,x+=u,s[a]={width:v,height:x}};Kc.calculateLabelAngle=function(t,e){var r=t._private,n=r.rscratch,i=t.isEdge(),a=e?e+"-":"",s=t.pstyle(a+"text-rotation"),l=s.strValue;return l==="none"?0:i&&l==="autorotate"?n.labelAutoAngle:l==="autorotate"?0:s.pfValue};Kc.calculateLabelAngles=function(t){var e=this,r=t.isEdge(),n=t._private,i=n.rscratch;i.labelAngle=e.calculateLabelAngle(t),r&&(i.sourceLabelAngle=e.calculateLabelAngle(t,"source"),i.targetLabelAngle=e.calculateLabelAngle(t,"target"))};mge={},R0e=28,N0e=!1;mge.getNodeShape=function(t){var e=this,r=t.pstyle("shape").value;if(r==="cutrectangle"&&(t.width()<R0e||t.height()<R0e))return N0e||(un("The `cutrectangle` node shape can not be used at small sizes so `rectangle` is used instead"),N0e=!0),"rectangle";if(t.isParent())return r==="rectangle"||r==="roundrectangle"||r==="round-rectangle"||r==="cutrectangle"||r==="cut-rectangle"||r==="barrel"?r:"rectangle";if(r==="polygon"){var n=t.pstyle("shape-polygon-points").value;return e.nodeShapes.makePolygon(n).name}return r};WS={};WS.registerCalculationListeners=function(){var t=this.cy,e=t.collection(),r=this,n=o(function(s){var l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;if(e.merge(s),l)for(var u=0;u<s.length;u++){var h=s[u],f=h._private,d=f.rstyle;d.clean=!1,d.cleanConnected=!1}},"enqueue");r.binder(t).on("bounds.* dirty.*",o(function(s){var l=s.target;n(l)},"onDirtyBounds")).on("style.* background.*",o(function(s){var l=s.target;n(l,!1)},"onDirtyStyle"));var i=o(function(s){if(s){var l=r.onUpdateEleCalcsFns;e.cleanStyle();for(var u=0;u<e.length;u++){var h=e[u],f=h._private.rstyle;h.isNode()&&!f.cleanConnected&&(n(h.connectedEdges()),f.cleanConnected=!0)}if(l)for(var d=0;d<l.length;d++){var p=l[d];p(s,e)}r.recalculateRenderedStyle(e),e=t.collection()}},"updateEleCalcs");r.flushRenderedStyleQueue=function(){i(!0)},r.beforeRender(i,r.beforeRenderPriorities.eleCalcs)};WS.onUpdateEleCalcs=function(t){var e=this.onUpdateEleCalcsFns=this.onUpdateEleCalcsFns||[];e.push(t)};WS.recalculateRenderedStyle=function(t,e){var r=o(function(C){return C._private.rstyle.cleanConnected},"isCleanConnected"),n=[],i=[];if(!this.destroyed){e===void 0&&(e=!0);for(var a=0;a<t.length;a++){var s=t[a],l=s._private,u=l.rstyle;s.isEdge()&&(!r(s.source())||!r(s.target()))&&(u.clean=!1),!(e&&u.clean||s.removed())&&s.pstyle("display").value!=="none"&&(l.group==="nodes"?i.push(s):n.push(s),u.clean=!0)}for(var h=0;h<i.length;h++){var f=i[h],d=f._private,p=d.rstyle,m=f.position();this.recalculateNodeLabelProjection(f),p.nodeX=m.x,p.nodeY=m.y,p.nodeW=f.pstyle("width").pfValue,p.nodeH=f.pstyle("height").pfValue}this.recalculateEdgeProjections(n);for(var g=0;g<n.length;g++){var y=n[g],v=y._private,x=v.rstyle,b=v.rscratch;x.srcX=b.arrowStartX,x.srcY=b.arrowStartY,x.tgtX=b.arrowEndX,x.tgtY=b.arrowEndY,x.midX=b.midX,x.midY=b.midY,x.labelAngle=b.labelAngle,x.sourceLabelAngle=b.sourceLabelAngle,x.targetLabelAngle=b.targetLabelAngle}}};qS={};qS.updateCachedGrabbedEles=function(){var t=this.cachedZSortedEles;if(t){t.drag=[],t.nondrag=[];for(var e=[],r=0;r<t.length;r++){var n=t[r],i=n._private.rscratch;n.grabbed()&&!n.isParent()?e.push(n):i.inDragLayer?t.drag.push(n):t.nondrag.push(n)}for(var r=0;r<e.length;r++){var n=e[r];t.drag.push(n)}}};qS.invalidateCachedZSortedEles=function(){this.cachedZSortedEles=null};qS.getCachedZSortedEles=function(t){if(t||!this.cachedZSortedEles){var e=this.cy.mutableElements().toArray();e.sort(Zme),e.interactive=e.filter(function(r){return r.interactive()}),this.cachedZSortedEles=e,this.updateCachedGrabbedEles()}else e=this.cachedZSortedEles;return e};gge={};[qp,AS,Va,o4,xB,Kc,mge,WS,qS].forEach(function(t){rr(gge,t)});yge={};yge.getCachedImage=function(t,e,r){var n=this,i=n.imageCache=n.imageCache||{},a=i[t];if(a)return a.image.complete||a.image.addEventListener("load",r),a.image;a=i[t]=i[t]||{};var s=a.image=new Image;s.addEventListener("load",r),s.addEventListener("error",function(){s.error=!0});var l="data:",u=t.substring(0,l.length).toLowerCase()===l;return u||(e=e==="null"?null:e,s.crossOrigin=e),s.src=t,s};sy={};sy.registerBinding=function(t,e,r,n){var i=Array.prototype.slice.apply(arguments,[1]);if(Array.isArray(t)){for(var a=[],s=0;s<t.length;s++){var l=t[s];if(l!==void 0){var u=this.binder(l);a.push(u.on.apply(u,i))}}return a}var u=this.binder(t);return u.on.apply(u,i)};sy.binder=function(t){var e=this,r=e.cy.window(),n=t===r||t===r.document||t===r.document.body||tWe(t);if(e.supportsPassiveEvents==null){var i=!1;try{var a=Object.defineProperty({},"passive",{get:o(function(){return i=!0,!0},"get")});r.addEventListener("test",null,a)}catch{}e.supportsPassiveEvents=i}var s=o(function(u,h,f){var d=Array.prototype.slice.call(arguments);return n&&e.supportsPassiveEvents&&(d[2]={capture:f??!1,passive:!1,once:!1}),e.bindings.push({target:t,args:d}),(t.addEventListener||t.on).apply(t,d),this},"on");return{on:s,addEventListener:s,addListener:s,bind:s}};sy.nodeIsDraggable=function(t){return t&&t.isNode()&&!t.locked()&&t.grabbable()};sy.nodeIsGrabbable=function(t){return this.nodeIsDraggable(t)&&t.interactive()};sy.load=function(){var t=this,e=t.cy.window(),r=o(function(W){return W.selected()},"isSelected"),n=o(function(W){var de=W.getRootNode();if(de&&de.nodeType===11&&de.host!==void 0)return de},"getShadowRoot"),i=o(function(W,de,re,oe){W==null&&(W=t.cy);for(var V=0;V<de.length;V++){var xe=de[V];W.emit({originalEvent:re,type:xe,position:oe})}},"triggerEvents"),a=o(function(W){return W.shiftKey||W.metaKey||W.ctrlKey},"isMultSelKeyDown"),s=o(function(W,de){var re=!0;if(t.cy.hasCompoundNodes()&&W&&W.pannable())for(var oe=0;de&&oe<de.length;oe++){var W=de[oe];if(W.isNode()&&W.isParent()&&!W.pannable()){re=!1;break}}else re=!0;return re},"allowPanningPassthrough"),l=o(function(W){W[0]._private.grabbed=!0},"setGrabbed"),u=o(function(W){W[0]._private.grabbed=!1},"setFreed"),h=o(function(W){W[0]._private.rscratch.inDragLayer=!0},"setInDragLayer"),f=o(function(W){W[0]._private.rscratch.inDragLayer=!1},"setOutDragLayer"),d=o(function(W){W[0]._private.rscratch.isGrabTarget=!0},"setGrabTarget"),p=o(function(W){W[0]._private.rscratch.isGrabTarget=!1},"removeGrabTarget"),m=o(function(W,de){var re=de.addToList,oe=re.has(W);!oe&&W.grabbable()&&!W.locked()&&(re.merge(W),l(W))},"addToDragList"),g=o(function(W,de){if(W.cy().hasCompoundNodes()&&!(de.inDragLayer==null&&de.addToList==null)){var re=W.descendants();de.inDragLayer&&(re.forEach(h),re.connectedEdges().forEach(h)),de.addToList&&m(re,de)}},"addDescendantsToDrag"),y=o(function(W,de){de=de||{};var re=W.cy().hasCompoundNodes();de.inDragLayer&&(W.forEach(h),W.neighborhood().stdFilter(function(oe){return!re||oe.isEdge()}).forEach(h)),de.addToList&&W.forEach(function(oe){m(oe,de)}),g(W,de),b(W,{inDragLayer:de.inDragLayer}),t.updateCachedGrabbedEles()},"addNodesToDrag"),v=y,x=o(function(W){W&&(t.getCachedZSortedEles().forEach(function(de){u(de),f(de),p(de)}),t.updateCachedGrabbedEles())},"freeDraggedElements"),b=o(function(W,de){if(!(de.inDragLayer==null&&de.addToList==null)&&W.cy().hasCompoundNodes()){var re=W.ancestors().orphans();if(!re.same(W)){var oe=re.descendants().spawnSelf().merge(re).unmerge(W).unmerge(W.descendants()),V=oe.connectedEdges();de.inDragLayer&&(V.forEach(h),oe.forEach(h)),de.addToList&&oe.forEach(function(xe){m(xe,de)})}}},"updateAncestorsInDragLayer"),w=o(function(){document.activeElement!=null&&document.activeElement.blur!=null&&document.activeElement.blur()},"blurActiveDomElement"),C=typeof MutationObserver<"u",T=typeof ResizeObserver<"u";C?(t.removeObserver=new MutationObserver(function(be){for(var W=0;W<be.length;W++){var de=be[W],re=de.removedNodes;if(re)for(var oe=0;oe<re.length;oe++){var V=re[oe];if(V===t.container){t.destroy();break}}}}),t.container.parentNode&&t.removeObserver.observe(t.container.parentNode,{childList:!0})):t.registerBinding(t.container,"DOMNodeRemoved",function(be){t.destroy()});var E=n4(function(){t.cy.resize()},100);C&&(t.styleObserver=new MutationObserver(E),t.styleObserver.observe(t.container,{attributes:!0})),t.registerBinding(e,"resize",E),T&&(t.resizeObserver=new ResizeObserver(E),t.resizeObserver.observe(t.container));var A=o(function(W,de){for(;W!=null;)de(W),W=W.parentNode},"forEachUp"),S=o(function(){t.invalidateContainerClientCoordsCache()},"invalidateCoords");A(t.container,function(be){t.registerBinding(be,"transitionend",S),t.registerBinding(be,"animationend",S),t.registerBinding(be,"scroll",S)}),t.registerBinding(t.container,"contextmenu",function(be){be.preventDefault()});var _=o(function(){return t.selection[4]!==0},"inBoxSelection"),I=o(function(W){for(var de=t.findContainerClientCoords(),re=de[0],oe=de[1],V=de[2],xe=de[3],q=W.touches?W.touches:[W],pe=!1,ve=0;ve<q.length;ve++){var Pe=q[ve];if(re<=Pe.clientX&&Pe.clientX<=re+V&&oe<=Pe.clientY&&Pe.clientY<=oe+xe){pe=!0;break}}if(!pe)return!1;for(var _e=t.container,we=W.target,Ve=we.parentNode,De=!1;Ve;){if(Ve===_e){De=!0;break}Ve=Ve.parentNode}return!!De},"eventInContainer");t.registerBinding(t.container,"mousedown",o(function(W){if(I(W)&&!(t.hoverData.which===1&&W.which!==1)){W.preventDefault(),w(),t.hoverData.capture=!0,t.hoverData.which=W.which;var de=t.cy,re=[W.clientX,W.clientY],oe=t.projectIntoViewport(re[0],re[1]),V=t.selection,xe=t.findNearestElements(oe[0],oe[1],!0,!1),q=xe[0],pe=t.dragData.possibleDragElements;t.hoverData.mdownPos=oe,t.hoverData.mdownGPos=re;var ve=o(function(){t.hoverData.tapholdCancelled=!1,clearTimeout(t.hoverData.tapholdTimeout),t.hoverData.tapholdTimeout=setTimeout(function(){if(!t.hoverData.tapholdCancelled){var qe=t.hoverData.down;qe?qe.emit({originalEvent:W,type:"taphold",position:{x:oe[0],y:oe[1]}}):de.emit({originalEvent:W,type:"taphold",position:{x:oe[0],y:oe[1]}})}},t.tapholdDuration)},"checkForTaphold");if(W.which==3){t.hoverData.cxtStarted=!0;var Pe={originalEvent:W,type:"cxttapstart",position:{x:oe[0],y:oe[1]}};q?(q.activate(),q.emit(Pe),t.hoverData.down=q):de.emit(Pe),t.hoverData.downTime=new Date().getTime(),t.hoverData.cxtDragged=!1}else if(W.which==1){q&&q.activate();{if(q!=null&&t.nodeIsGrabbable(q)){var _e=o(function(qe){return{originalEvent:W,type:qe,position:{x:oe[0],y:oe[1]}}},"makeEvent"),we=o(function(qe){qe.emit(_e("grab"))},"triggerGrab");if(d(q),!q.selected())pe=t.dragData.possibleDragElements=de.collection(),v(q,{addToList:pe}),q.emit(_e("grabon")).emit(_e("grab"));else{pe=t.dragData.possibleDragElements=de.collection();var Ve=de.$(function(De){return De.isNode()&&De.selected()&&t.nodeIsGrabbable(De)});y(Ve,{addToList:pe}),q.emit(_e("grabon")),Ve.forEach(we)}t.redrawHint("eles",!0),t.redrawHint("drag",!0)}t.hoverData.down=q,t.hoverData.downs=xe,t.hoverData.downTime=new Date().getTime()}i(q,["mousedown","tapstart","vmousedown"],W,{x:oe[0],y:oe[1]}),q==null?(V[4]=1,t.data.bgActivePosistion={x:oe[0],y:oe[1]},t.redrawHint("select",!0),t.redraw()):q.pannable()&&(V[4]=1),ve()}V[0]=V[2]=oe[0],V[1]=V[3]=oe[1]}},"mousedownHandler"),!1);var D=n(t.container);t.registerBinding([e,D],"mousemove",o(function(W){var de=t.hoverData.capture;if(!(!de&&!I(W))){var re=!1,oe=t.cy,V=oe.zoom(),xe=[W.clientX,W.clientY],q=t.projectIntoViewport(xe[0],xe[1]),pe=t.hoverData.mdownPos,ve=t.hoverData.mdownGPos,Pe=t.selection,_e=null;!t.hoverData.draggingEles&&!t.hoverData.dragging&&!t.hoverData.selecting&&(_e=t.findNearestElement(q[0],q[1],!0,!1));var we=t.hoverData.last,Ve=t.hoverData.down,De=[q[0]-Pe[2],q[1]-Pe[3]],qe=t.dragData.possibleDragElements,at;if(ve){var Rt=xe[0]-ve[0],st=Rt*Rt,Ue=xe[1]-ve[1],ct=Ue*Ue,We=st+ct;t.hoverData.isOverThresholdDrag=at=We>=t.desktopTapThreshold2}var ot=a(W);at&&(t.hoverData.tapholdCancelled=!0);var Yt=o(function(){var Tt=t.hoverData.dragDelta=t.hoverData.dragDelta||[];Tt.length===0?(Tt.push(De[0]),Tt.push(De[1])):(Tt[0]+=De[0],Tt[1]+=De[1])},"updateDragDelta");re=!0,i(_e,["mousemove","vmousemove","tapdrag"],W,{x:q[0],y:q[1]});var bt=o(function(){t.data.bgActivePosistion=void 0,t.hoverData.selecting||oe.emit({originalEvent:W,type:"boxstart",position:{x:q[0],y:q[1]}}),Pe[4]=1,t.hoverData.selecting=!0,t.redrawHint("select",!0),t.redraw()},"goIntoBoxMode");if(t.hoverData.which===3){if(at){var Mt={originalEvent:W,type:"cxtdrag",position:{x:q[0],y:q[1]}};Ve?Ve.emit(Mt):oe.emit(Mt),t.hoverData.cxtDragged=!0,(!t.hoverData.cxtOver||_e!==t.hoverData.cxtOver)&&(t.hoverData.cxtOver&&t.hoverData.cxtOver.emit({originalEvent:W,type:"cxtdragout",position:{x:q[0],y:q[1]}}),t.hoverData.cxtOver=_e,_e&&_e.emit({originalEvent:W,type:"cxtdragover",position:{x:q[0],y:q[1]}}))}}else if(t.hoverData.dragging){if(re=!0,oe.panningEnabled()&&oe.userPanningEnabled()){var xt;if(t.hoverData.justStartedPan){var ut=t.hoverData.mdownPos;xt={x:(q[0]-ut[0])*V,y:(q[1]-ut[1])*V},t.hoverData.justStartedPan=!1}else xt={x:De[0]*V,y:De[1]*V};oe.panBy(xt),oe.emit("dragpan"),t.hoverData.dragged=!0}q=t.projectIntoViewport(W.clientX,W.clientY)}else if(Pe[4]==1&&(Ve==null||Ve.pannable())){if(at){if(!t.hoverData.dragging&&oe.boxSelectionEnabled()&&(ot||!oe.panningEnabled()||!oe.userPanningEnabled()))bt();else if(!t.hoverData.selecting&&oe.panningEnabled()&&oe.userPanningEnabled()){var Et=s(Ve,t.hoverData.downs);Et&&(t.hoverData.dragging=!0,t.hoverData.justStartedPan=!0,Pe[4]=0,t.data.bgActivePosistion=U1(pe),t.redrawHint("select",!0),t.redraw())}Ve&&Ve.pannable()&&Ve.active()&&Ve.unactivate()}}else{if(Ve&&Ve.pannable()&&Ve.active()&&Ve.unactivate(),(!Ve||!Ve.grabbed())&&_e!=we&&(we&&i(we,["mouseout","tapdragout"],W,{x:q[0],y:q[1]}),_e&&i(_e,["mouseover","tapdragover"],W,{x:q[0],y:q[1]}),t.hoverData.last=_e),Ve)if(at){if(oe.boxSelectionEnabled()&&ot)Ve&&Ve.grabbed()&&(x(qe),Ve.emit("freeon"),qe.emit("free"),t.dragData.didDrag&&(Ve.emit("dragfreeon"),qe.emit("dragfree"))),bt();else if(Ve&&Ve.grabbed()&&t.nodeIsDraggable(Ve)){var ft=!t.dragData.didDrag;ft&&t.redrawHint("eles",!0),t.dragData.didDrag=!0,t.hoverData.draggingEles||y(qe,{inDragLayer:!0});var yt={x:0,y:0};if(Ct(De[0])&&Ct(De[1])&&(yt.x+=De[0],yt.y+=De[1],ft)){var nt=t.hoverData.dragDelta;nt&&Ct(nt[0])&&Ct(nt[1])&&(yt.x+=nt[0],yt.y+=nt[1])}t.hoverData.draggingEles=!0,qe.silentShift(yt).emit("position drag"),t.redrawHint("drag",!0),t.redraw()}}else Yt();re=!0}if(Pe[2]=q[0],Pe[3]=q[1],re)return W.stopPropagation&&W.stopPropagation(),W.preventDefault&&W.preventDefault(),!1}},"mousemoveHandler"),!1);var k,L,R;t.registerBinding(e,"mouseup",o(function(W){if(!(t.hoverData.which===1&&W.which!==1&&t.hoverData.capture)){var de=t.hoverData.capture;if(de){t.hoverData.capture=!1;var re=t.cy,oe=t.projectIntoViewport(W.clientX,W.clientY),V=t.selection,xe=t.findNearestElement(oe[0],oe[1],!0,!1),q=t.dragData.possibleDragElements,pe=t.hoverData.down,ve=a(W);if(t.data.bgActivePosistion&&(t.redrawHint("select",!0),t.redraw()),t.hoverData.tapholdCancelled=!0,t.data.bgActivePosistion=void 0,pe&&pe.unactivate(),t.hoverData.which===3){var Pe={originalEvent:W,type:"cxttapend",position:{x:oe[0],y:oe[1]}};if(pe?pe.emit(Pe):re.emit(Pe),!t.hoverData.cxtDragged){var _e={originalEvent:W,type:"cxttap",position:{x:oe[0],y:oe[1]}};pe?pe.emit(_e):re.emit(_e)}t.hoverData.cxtDragged=!1,t.hoverData.which=null}else if(t.hoverData.which===1){if(i(xe,["mouseup","tapend","vmouseup"],W,{x:oe[0],y:oe[1]}),!t.dragData.didDrag&&!t.hoverData.dragged&&!t.hoverData.selecting&&!t.hoverData.isOverThresholdDrag&&(i(pe,["click","tap","vclick"],W,{x:oe[0],y:oe[1]}),L=!1,W.timeStamp-R<=re.multiClickDebounceTime()?(k&&clearTimeout(k),L=!0,R=null,i(pe,["dblclick","dbltap","vdblclick"],W,{x:oe[0],y:oe[1]})):(k=setTimeout(function(){L||i(pe,["oneclick","onetap","voneclick"],W,{x:oe[0],y:oe[1]})},re.multiClickDebounceTime()),R=W.timeStamp)),pe==null&&!t.dragData.didDrag&&!t.hoverData.selecting&&!t.hoverData.dragged&&!a(W)&&(re.$(r).unselect(["tapunselect"]),q.length>0&&t.redrawHint("eles",!0),t.dragData.possibleDragElements=q=re.collection()),xe==pe&&!t.dragData.didDrag&&!t.hoverData.selecting&&xe!=null&&xe._private.selectable&&(t.hoverData.dragging||(re.selectionType()==="additive"||ve?xe.selected()?xe.unselect(["tapunselect"]):xe.select(["tapselect"]):ve||(re.$(r).unmerge(xe).unselect(["tapunselect"]),xe.select(["tapselect"]))),t.redrawHint("eles",!0)),t.hoverData.selecting){var we=re.collection(t.getAllInBox(V[0],V[1],V[2],V[3]));t.redrawHint("select",!0),we.length>0&&t.redrawHint("eles",!0),re.emit({type:"boxend",originalEvent:W,position:{x:oe[0],y:oe[1]}});var Ve=o(function(at){return at.selectable()&&!at.selected()},"eleWouldBeSelected");re.selectionType()==="additive"||ve||re.$(r).unmerge(we).unselect(),we.emit("box").stdFilter(Ve).select().emit("boxselect"),t.redraw()}if(t.hoverData.dragging&&(t.hoverData.dragging=!1,t.redrawHint("select",!0),t.redrawHint("eles",!0),t.redraw()),!V[4]){t.redrawHint("drag",!0),t.redrawHint("eles",!0);var De=pe&&pe.grabbed();x(q),De&&(pe.emit("freeon"),q.emit("free"),t.dragData.didDrag&&(pe.emit("dragfreeon"),q.emit("dragfree")))}}V[4]=0,t.hoverData.down=null,t.hoverData.cxtStarted=!1,t.hoverData.draggingEles=!1,t.hoverData.selecting=!1,t.hoverData.isOverThresholdDrag=!1,t.dragData.didDrag=!1,t.hoverData.dragged=!1,t.hoverData.dragDelta=[],t.hoverData.mdownPos=null,t.hoverData.mdownGPos=null,t.hoverData.which=null}}},"mouseupHandler"),!1);var O=o(function(W){if(!t.scrollingPage){var de=t.cy,re=de.zoom(),oe=de.pan(),V=t.projectIntoViewport(W.clientX,W.clientY),xe=[V[0]*re+oe.x,V[1]*re+oe.y];if(t.hoverData.draggingEles||t.hoverData.dragging||t.hoverData.cxtStarted||_()){W.preventDefault();return}if(de.panningEnabled()&&de.userPanningEnabled()&&de.zoomingEnabled()&&de.userZoomingEnabled()){W.preventDefault(),t.data.wheelZooming=!0,clearTimeout(t.data.wheelTimeout),t.data.wheelTimeout=setTimeout(function(){t.data.wheelZooming=!1,t.redrawHint("eles",!0),t.redraw()},150);var q;W.deltaY!=null?q=W.deltaY/-250:W.wheelDeltaY!=null?q=W.wheelDeltaY/1e3:q=W.wheelDelta/1e3,q=q*t.wheelSensitivity;var pe=W.deltaMode===1;pe&&(q*=33);var ve=de.zoom()*Math.pow(10,q);W.type==="gesturechange"&&(ve=t.gestureStartZoom*W.scale),de.zoom({level:ve,renderedPosition:{x:xe[0],y:xe[1]}}),de.emit(W.type==="gesturechange"?"pinchzoom":"scrollzoom")}}},"wheelHandler");t.registerBinding(t.container,"wheel",O,!0),t.registerBinding(e,"scroll",o(function(W){t.scrollingPage=!0,clearTimeout(t.scrollingPageTimeout),t.scrollingPageTimeout=setTimeout(function(){t.scrollingPage=!1},250)},"scrollHandler"),!0),t.registerBinding(t.container,"gesturestart",o(function(W){t.gestureStartZoom=t.cy.zoom(),t.hasTouchStarted||W.preventDefault()},"gestureStartHandler"),!0),t.registerBinding(t.container,"gesturechange",function(be){t.hasTouchStarted||O(be)},!0),t.registerBinding(t.container,"mouseout",o(function(W){var de=t.projectIntoViewport(W.clientX,W.clientY);t.cy.emit({originalEvent:W,type:"mouseout",position:{x:de[0],y:de[1]}})},"mouseOutHandler"),!1),t.registerBinding(t.container,"mouseover",o(function(W){var de=t.projectIntoViewport(W.clientX,W.clientY);t.cy.emit({originalEvent:W,type:"mouseover",position:{x:de[0],y:de[1]}})},"mouseOverHandler"),!1);var M,B,F,P,z,$,H,Q,j,ie,ne,le,he,K=o(function(W,de,re,oe){return Math.sqrt((re-W)*(re-W)+(oe-de)*(oe-de))},"distance"),X=o(function(W,de,re,oe){return(re-W)*(re-W)+(oe-de)*(oe-de)},"distanceSq"),te;t.registerBinding(t.container,"touchstart",te=o(function(W){if(t.hasTouchStarted=!0,!!I(W)){w(),t.touchData.capture=!0,t.data.bgActivePosistion=void 0;var de=t.cy,re=t.touchData.now,oe=t.touchData.earlier;if(W.touches[0]){var V=t.projectIntoViewport(W.touches[0].clientX,W.touches[0].clientY);re[0]=V[0],re[1]=V[1]}if(W.touches[1]){var V=t.projectIntoViewport(W.touches[1].clientX,W.touches[1].clientY);re[2]=V[0],re[3]=V[1]}if(W.touches[2]){var V=t.projectIntoViewport(W.touches[2].clientX,W.touches[2].clientY);re[4]=V[0],re[5]=V[1]}if(W.touches[1]){t.touchData.singleTouchMoved=!0,x(t.dragData.touchDragEles);var xe=t.findContainerClientCoords();j=xe[0],ie=xe[1],ne=xe[2],le=xe[3],M=W.touches[0].clientX-j,B=W.touches[0].clientY-ie,F=W.touches[1].clientX-j,P=W.touches[1].clientY-ie,he=0<=M&&M<=ne&&0<=F&&F<=ne&&0<=B&&B<=le&&0<=P&&P<=le;var q=de.pan(),pe=de.zoom();z=K(M,B,F,P),$=X(M,B,F,P),H=[(M+F)/2,(B+P)/2],Q=[(H[0]-q.x)/pe,(H[1]-q.y)/pe];var ve=200,Pe=ve*ve;if($<Pe&&!W.touches[2]){var _e=t.findNearestElement(re[0],re[1],!0,!0),we=t.findNearestElement(re[2],re[3],!0,!0);_e&&_e.isNode()?(_e.activate().emit({originalEvent:W,type:"cxttapstart",position:{x:re[0],y:re[1]}}),t.touchData.start=_e):we&&we.isNode()?(we.activate().emit({originalEvent:W,type:"cxttapstart",position:{x:re[0],y:re[1]}}),t.touchData.start=we):de.emit({originalEvent:W,type:"cxttapstart",position:{x:re[0],y:re[1]}}),t.touchData.start&&(t.touchData.start._private.grabbed=!1),t.touchData.cxt=!0,t.touchData.cxtDragged=!1,t.data.bgActivePosistion=void 0,t.redraw();return}}if(W.touches[2])de.boxSelectionEnabled()&&W.preventDefault();else if(!W.touches[1]){if(W.touches[0]){var Ve=t.findNearestElements(re[0],re[1],!0,!0),De=Ve[0];if(De!=null&&(De.activate(),t.touchData.start=De,t.touchData.starts=Ve,t.nodeIsGrabbable(De))){var qe=t.dragData.touchDragEles=de.collection(),at=null;t.redrawHint("eles",!0),t.redrawHint("drag",!0),De.selected()?(at=de.$(function(We){return We.selected()&&t.nodeIsGrabbable(We)}),y(at,{addToList:qe})):v(De,{addToList:qe}),d(De);var Rt=o(function(ot){return{originalEvent:W,type:ot,position:{x:re[0],y:re[1]}}},"makeEvent");De.emit(Rt("grabon")),at?at.forEach(function(We){We.emit(Rt("grab"))}):De.emit(Rt("grab"))}i(De,["touchstart","tapstart","vmousedown"],W,{x:re[0],y:re[1]}),De==null&&(t.data.bgActivePosistion={x:V[0],y:V[1]},t.redrawHint("select",!0),t.redraw()),t.touchData.singleTouchMoved=!1,t.touchData.singleTouchStartTime=+new Date,clearTimeout(t.touchData.tapholdTimeout),t.touchData.tapholdTimeout=setTimeout(function(){t.touchData.singleTouchMoved===!1&&!t.pinching&&!t.touchData.selecting&&i(t.touchData.start,["taphold"],W,{x:re[0],y:re[1]})},t.tapholdDuration)}}if(W.touches.length>=1){for(var st=t.touchData.startPosition=[null,null,null,null,null,null],Ue=0;Ue<re.length;Ue++)st[Ue]=oe[Ue]=re[Ue];var ct=W.touches[0];t.touchData.startGPosition=[ct.clientX,ct.clientY]}}},"touchstartHandler"),!1);var J;t.registerBinding(e,"touchmove",J=o(function(W){var de=t.touchData.capture;if(!(!de&&!I(W))){var re=t.selection,oe=t.cy,V=t.touchData.now,xe=t.touchData.earlier,q=oe.zoom();if(W.touches[0]){var pe=t.projectIntoViewport(W.touches[0].clientX,W.touches[0].clientY);V[0]=pe[0],V[1]=pe[1]}if(W.touches[1]){var pe=t.projectIntoViewport(W.touches[1].clientX,W.touches[1].clientY);V[2]=pe[0],V[3]=pe[1]}if(W.touches[2]){var pe=t.projectIntoViewport(W.touches[2].clientX,W.touches[2].clientY);V[4]=pe[0],V[5]=pe[1]}var ve=t.touchData.startGPosition,Pe;if(de&&W.touches[0]&&ve){for(var _e=[],we=0;we<V.length;we++)_e[we]=V[we]-xe[we];var Ve=W.touches[0].clientX-ve[0],De=Ve*Ve,qe=W.touches[0].clientY-ve[1],at=qe*qe,Rt=De+at;Pe=Rt>=t.touchTapThreshold2}if(de&&t.touchData.cxt){W.preventDefault();var st=W.touches[0].clientX-j,Ue=W.touches[0].clientY-ie,ct=W.touches[1].clientX-j,We=W.touches[1].clientY-ie,ot=X(st,Ue,ct,We),Yt=ot/$,bt=150,Mt=bt*bt,xt=1.5,ut=xt*xt;if(Yt>=ut||ot>=Mt){t.touchData.cxt=!1,t.data.bgActivePosistion=void 0,t.redrawHint("select",!0);var Et={originalEvent:W,type:"cxttapend",position:{x:V[0],y:V[1]}};t.touchData.start?(t.touchData.start.unactivate().emit(Et),t.touchData.start=null):oe.emit(Et)}}if(de&&t.touchData.cxt){var Et={originalEvent:W,type:"cxtdrag",position:{x:V[0],y:V[1]}};t.data.bgActivePosistion=void 0,t.redrawHint("select",!0),t.touchData.start?t.touchData.start.emit(Et):oe.emit(Et),t.touchData.start&&(t.touchData.start._private.grabbed=!1),t.touchData.cxtDragged=!0;var ft=t.findNearestElement(V[0],V[1],!0,!0);(!t.touchData.cxtOver||ft!==t.touchData.cxtOver)&&(t.touchData.cxtOver&&t.touchData.cxtOver.emit({originalEvent:W,type:"cxtdragout",position:{x:V[0],y:V[1]}}),t.touchData.cxtOver=ft,ft&&ft.emit({originalEvent:W,type:"cxtdragover",position:{x:V[0],y:V[1]}}))}else if(de&&W.touches[2]&&oe.boxSelectionEnabled())W.preventDefault(),t.data.bgActivePosistion=void 0,this.lastThreeTouch=+new Date,t.touchData.selecting||oe.emit({originalEvent:W,type:"boxstart",position:{x:V[0],y:V[1]}}),t.touchData.selecting=!0,t.touchData.didSelect=!0,re[4]=1,!re||re.length===0||re[0]===void 0?(re[0]=(V[0]+V[2]+V[4])/3,re[1]=(V[1]+V[3]+V[5])/3,re[2]=(V[0]+V[2]+V[4])/3+1,re[3]=(V[1]+V[3]+V[5])/3+1):(re[2]=(V[0]+V[2]+V[4])/3,re[3]=(V[1]+V[3]+V[5])/3),t.redrawHint("select",!0),t.redraw();else if(de&&W.touches[1]&&!t.touchData.didSelect&&oe.zoomingEnabled()&&oe.panningEnabled()&&oe.userZoomingEnabled()&&oe.userPanningEnabled()){W.preventDefault(),t.data.bgActivePosistion=void 0,t.redrawHint("select",!0);var yt=t.dragData.touchDragEles;if(yt){t.redrawHint("drag",!0);for(var nt=0;nt<yt.length;nt++){var dn=yt[nt]._private;dn.grabbed=!1,dn.rscratch.inDragLayer=!1}}var Tt=t.touchData.start,st=W.touches[0].clientX-j,Ue=W.touches[0].clientY-ie,ct=W.touches[1].clientX-j,We=W.touches[1].clientY-ie,On=K(st,Ue,ct,We),tn=On/z;if(he){var _r=st-M,Dr=Ue-B,Pn=ct-F,At=We-P,Ce=(_r+Pn)/2,tt=(Dr+At)/2,St=oe.zoom(),mr=St*tn,rn=oe.pan(),gn=Q[0]*St+rn.x,Zr=Q[1]*St+rn.y,Ni={x:-mr/St*(gn-rn.x-Ce)+gn,y:-mr/St*(Zr-rn.y-tt)+Zr};if(Tt&&Tt.active()){var yt=t.dragData.touchDragEles;x(yt),t.redrawHint("drag",!0),t.redrawHint("eles",!0),Tt.unactivate().emit("freeon"),yt.emit("free"),t.dragData.didDrag&&(Tt.emit("dragfreeon"),yt.emit("dragfree"))}oe.viewport({zoom:mr,pan:Ni,cancelOnFailedZoom:!0}),oe.emit("pinchzoom"),z=On,M=st,B=Ue,F=ct,P=We,t.pinching=!0}if(W.touches[0]){var pe=t.projectIntoViewport(W.touches[0].clientX,W.touches[0].clientY);V[0]=pe[0],V[1]=pe[1]}if(W.touches[1]){var pe=t.projectIntoViewport(W.touches[1].clientX,W.touches[1].clientY);V[2]=pe[0],V[3]=pe[1]}if(W.touches[2]){var pe=t.projectIntoViewport(W.touches[2].clientX,W.touches[2].clientY);V[4]=pe[0],V[5]=pe[1]}}else if(W.touches[0]&&!t.touchData.didSelect){var Zn=t.touchData.start,Sn=t.touchData.last,ft;if(!t.hoverData.draggingEles&&!t.swipePanning&&(ft=t.findNearestElement(V[0],V[1],!0,!0)),de&&Zn!=null&&W.preventDefault(),de&&Zn!=null&&t.nodeIsDraggable(Zn))if(Pe){var yt=t.dragData.touchDragEles,Hr=!t.dragData.didDrag;Hr&&y(yt,{inDragLayer:!0}),t.dragData.didDrag=!0;var et={x:0,y:0};if(Ct(_e[0])&&Ct(_e[1])&&(et.x+=_e[0],et.y+=_e[1],Hr)){t.redrawHint("eles",!0);var mt=t.touchData.dragDelta;mt&&Ct(mt[0])&&Ct(mt[1])&&(et.x+=mt[0],et.y+=mt[1])}t.hoverData.draggingEles=!0,yt.silentShift(et).emit("position drag"),t.redrawHint("drag",!0),t.touchData.startPosition[0]==xe[0]&&t.touchData.startPosition[1]==xe[1]&&t.redrawHint("eles",!0),t.redraw()}else{var mt=t.touchData.dragDelta=t.touchData.dragDelta||[];mt.length===0?(mt.push(_e[0]),mt.push(_e[1])):(mt[0]+=_e[0],mt[1]+=_e[1])}if(i(Zn||ft,["touchmove","tapdrag","vmousemove"],W,{x:V[0],y:V[1]}),(!Zn||!Zn.grabbed())&&ft!=Sn&&(Sn&&Sn.emit({originalEvent:W,type:"tapdragout",position:{x:V[0],y:V[1]}}),ft&&ft.emit({originalEvent:W,type:"tapdragover",position:{x:V[0],y:V[1]}})),t.touchData.last=ft,de)for(var nt=0;nt<V.length;nt++)V[nt]&&t.touchData.startPosition[nt]&&Pe&&(t.touchData.singleTouchMoved=!0);if(de&&(Zn==null||Zn.pannable())&&oe.panningEnabled()&&oe.userPanningEnabled()){var Kt=s(Zn,t.touchData.starts);Kt&&(W.preventDefault(),t.data.bgActivePosistion||(t.data.bgActivePosistion=U1(t.touchData.startPosition)),t.swipePanning?(oe.panBy({x:_e[0]*q,y:_e[1]*q}),oe.emit("dragpan")):Pe&&(t.swipePanning=!0,oe.panBy({x:Ve*q,y:qe*q}),oe.emit("dragpan"),Zn&&(Zn.unactivate(),t.redrawHint("select",!0),t.touchData.start=null)));var pe=t.projectIntoViewport(W.touches[0].clientX,W.touches[0].clientY);V[0]=pe[0],V[1]=pe[1]}}for(var we=0;we<V.length;we++)xe[we]=V[we];de&&W.touches.length>0&&!t.hoverData.draggingEles&&!t.swipePanning&&t.data.bgActivePosistion!=null&&(t.data.bgActivePosistion=void 0,t.redrawHint("select",!0),t.redraw())}},"touchmoveHandler"),!1);var se;t.registerBinding(e,"touchcancel",se=o(function(W){var de=t.touchData.start;t.touchData.capture=!1,de&&de.unactivate()},"touchcancelHandler"));var ue,Z,Se,ce;if(t.registerBinding(e,"touchend",ue=o(function(W){var de=t.touchData.start,re=t.touchData.capture;if(re)W.touches.length===0&&(t.touchData.capture=!1),W.preventDefault();else return;var oe=t.selection;t.swipePanning=!1,t.hoverData.draggingEles=!1;var V=t.cy,xe=V.zoom(),q=t.touchData.now,pe=t.touchData.earlier;if(W.touches[0]){var ve=t.projectIntoViewport(W.touches[0].clientX,W.touches[0].clientY);q[0]=ve[0],q[1]=ve[1]}if(W.touches[1]){var ve=t.projectIntoViewport(W.touches[1].clientX,W.touches[1].clientY);q[2]=ve[0],q[3]=ve[1]}if(W.touches[2]){var ve=t.projectIntoViewport(W.touches[2].clientX,W.touches[2].clientY);q[4]=ve[0],q[5]=ve[1]}de&&de.unactivate();var Pe;if(t.touchData.cxt){if(Pe={originalEvent:W,type:"cxttapend",position:{x:q[0],y:q[1]}},de?de.emit(Pe):V.emit(Pe),!t.touchData.cxtDragged){var _e={originalEvent:W,type:"cxttap",position:{x:q[0],y:q[1]}};de?de.emit(_e):V.emit(_e)}t.touchData.start&&(t.touchData.start._private.grabbed=!1),t.touchData.cxt=!1,t.touchData.start=null,t.redraw();return}if(!W.touches[2]&&V.boxSelectionEnabled()&&t.touchData.selecting){t.touchData.selecting=!1;var we=V.collection(t.getAllInBox(oe[0],oe[1],oe[2],oe[3]));oe[0]=void 0,oe[1]=void 0,oe[2]=void 0,oe[3]=void 0,oe[4]=0,t.redrawHint("select",!0),V.emit({type:"boxend",originalEvent:W,position:{x:q[0],y:q[1]}});var Ve=o(function(Mt){return Mt.selectable()&&!Mt.selected()},"eleWouldBeSelected");we.emit("box").stdFilter(Ve).select().emit("boxselect"),we.nonempty()&&t.redrawHint("eles",!0),t.redraw()}if(de?.unactivate(),W.touches[2])t.data.bgActivePosistion=void 0,t.redrawHint("select",!0);else if(!W.touches[1]){if(!W.touches[0]){if(!W.touches[0]){t.data.bgActivePosistion=void 0,t.redrawHint("select",!0);var De=t.dragData.touchDragEles;if(de!=null){var qe=de._private.grabbed;x(De),t.redrawHint("drag",!0),t.redrawHint("eles",!0),qe&&(de.emit("freeon"),De.emit("free"),t.dragData.didDrag&&(de.emit("dragfreeon"),De.emit("dragfree"))),i(de,["touchend","tapend","vmouseup","tapdragout"],W,{x:q[0],y:q[1]}),de.unactivate(),t.touchData.start=null}else{var at=t.findNearestElement(q[0],q[1],!0,!0);i(at,["touchend","tapend","vmouseup","tapdragout"],W,{x:q[0],y:q[1]})}var Rt=t.touchData.startPosition[0]-q[0],st=Rt*Rt,Ue=t.touchData.startPosition[1]-q[1],ct=Ue*Ue,We=st+ct,ot=We*xe*xe;t.touchData.singleTouchMoved||(de||V.$(":selected").unselect(["tapunselect"]),i(de,["tap","vclick"],W,{x:q[0],y:q[1]}),Z=!1,W.timeStamp-ce<=V.multiClickDebounceTime()?(Se&&clearTimeout(Se),Z=!0,ce=null,i(de,["dbltap","vdblclick"],W,{x:q[0],y:q[1]})):(Se=setTimeout(function(){Z||i(de,["onetap","voneclick"],W,{x:q[0],y:q[1]})},V.multiClickDebounceTime()),ce=W.timeStamp)),de!=null&&!t.dragData.didDrag&&de._private.selectable&&ot<t.touchTapThreshold2&&!t.pinching&&(V.selectionType()==="single"?(V.$(r).unmerge(de).unselect(["tapunselect"]),de.select(["tapselect"])):de.selected()?de.unselect(["tapunselect"]):de.select(["tapselect"]),t.redrawHint("eles",!0)),t.touchData.singleTouchMoved=!0}}}for(var Yt=0;Yt<q.length;Yt++)pe[Yt]=q[Yt];t.dragData.didDrag=!1,W.touches.length===0&&(t.touchData.dragDelta=[],t.touchData.startPosition=[null,null,null,null,null,null],t.touchData.startGPosition=null,t.touchData.didSelect=!1),W.touches.length<2&&(W.touches.length===1&&(t.touchData.startGPosition=[W.touches[0].clientX,W.touches[0].clientY]),t.pinching=!1,t.redrawHint("eles",!0),t.redraw())},"touchendHandler"),!1),typeof TouchEvent>"u"){var ae=[],Oe=o(function(W){return{clientX:W.clientX,clientY:W.clientY,force:1,identifier:W.pointerId,pageX:W.pageX,pageY:W.pageY,radiusX:W.width/2,radiusY:W.height/2,screenX:W.screenX,screenY:W.screenY,target:W.target}},"makeTouch"),ge=o(function(W){return{event:W,touch:Oe(W)}},"makePointer"),ze=o(function(W){ae.push(ge(W))},"addPointer"),He=o(function(W){for(var de=0;de<ae.length;de++){var re=ae[de];if(re.event.pointerId===W.pointerId){ae.splice(de,1);return}}},"removePointer"),$e=o(function(W){var de=ae.filter(function(re){return re.event.pointerId===W.pointerId})[0];de.event=W,de.touch=Oe(W)},"updatePointer"),Re=o(function(W){W.touches=ae.map(function(de){return de.touch})},"addTouchesToEvent"),Ie=o(function(W){return W.pointerType==="mouse"||W.pointerType===4},"pointerIsMouse");t.registerBinding(t.container,"pointerdown",function(be){Ie(be)||(be.preventDefault(),ze(be),Re(be),te(be))}),t.registerBinding(t.container,"pointerup",function(be){Ie(be)||(He(be),Re(be),ue(be))}),t.registerBinding(t.container,"pointercancel",function(be){Ie(be)||(He(be),Re(be),se(be))}),t.registerBinding(t.container,"pointermove",function(be){Ie(be)||(be.preventDefault(),$e(be),Re(be),J(be))})}};eh={};eh.generatePolygon=function(t,e){return this.nodeShapes[t]={renderer:this,name:t,points:e,draw:o(function(n,i,a,s,l,u){this.renderer.nodeShapeImpl("polygon",n,i,a,s,l,this.points)},"draw"),intersectLine:o(function(n,i,a,s,l,u,h,f){return Xb(l,u,this.points,n,i,a/2,s/2,h)},"intersectLine"),checkPoint:o(function(n,i,a,s,l,u,h,f){return Zu(n,i,this.points,u,h,s,l,[0,-1],a)},"checkPoint")}};eh.generateEllipse=function(){return this.nodeShapes.ellipse={renderer:this,name:"ellipse",draw:o(function(e,r,n,i,a,s){this.renderer.nodeShapeImpl(this.name,e,r,n,i,a)},"draw"),intersectLine:o(function(e,r,n,i,a,s,l,u){return Yqe(a,s,e,r,n/2+l,i/2+l)},"intersectLine"),checkPoint:o(function(e,r,n,i,a,s,l,u){return $p(e,r,i,a,s,l,n)},"checkPoint")}};eh.generateRoundPolygon=function(t,e){return this.nodeShapes[t]={renderer:this,name:t,points:e,getOrCreateCorners:o(function(n,i,a,s,l,u,h){if(u[h]!==void 0&&u[h+"-cx"]===n&&u[h+"-cy"]===i)return u[h];u[h]=new Array(e.length/2),u[h+"-cx"]=n,u[h+"-cy"]=i;var f=a/2,d=s/2;l=l==="auto"?bme(a,s):l;for(var p=new Array(e.length/2),m=0;m<e.length/2;m++)p[m]={x:n+f*e[m*2],y:i+d*e[m*2+1]};var g,y,v,x,b=p.length;for(y=p[b-1],g=0;g<b;g++)v=p[g%b],x=p[(g+1)%b],u[h][g]=vB(y,v,x,l),y=v,v=x;return u[h]},"getOrCreateCorners"),draw:o(function(n,i,a,s,l,u,h){this.renderer.nodeShapeImpl("round-polygon",n,i,a,s,l,this.points,this.getOrCreateCorners(i,a,s,l,u,h,"drawCorners"))},"draw"),intersectLine:o(function(n,i,a,s,l,u,h,f,d){return Xqe(l,u,this.points,n,i,a,s,h,this.getOrCreateCorners(n,i,a,s,f,d,"corners"))},"intersectLine"),checkPoint:o(function(n,i,a,s,l,u,h,f,d){return qqe(n,i,this.points,u,h,s,l,this.getOrCreateCorners(u,h,s,l,f,d,"corners"))},"checkPoint")}};eh.generateRoundRectangle=function(){return this.nodeShapes["round-rectangle"]=this.nodeShapes.roundrectangle={renderer:this,name:"round-rectangle",points:gs(4,0),draw:o(function(e,r,n,i,a,s){this.renderer.nodeShapeImpl(this.name,e,r,n,i,a,this.points,s)},"draw"),intersectLine:o(function(e,r,n,i,a,s,l,u){return vme(a,s,e,r,n,i,l,u)},"intersectLine"),checkPoint:o(function(e,r,n,i,a,s,l,u){var h=i/2,f=a/2;u=u==="auto"?Vp(i,a):u,u=Math.min(h,f,u);var d=u*2;return!!(Zu(e,r,this.points,s,l,i,a-d,[0,-1],n)||Zu(e,r,this.points,s,l,i-d,a,[0,-1],n)||$p(e,r,d,d,s-h+u,l-f+u,n)||$p(e,r,d,d,s+h-u,l-f+u,n)||$p(e,r,d,d,s+h-u,l+f-u,n)||$p(e,r,d,d,s-h+u,l+f-u,n))},"checkPoint")}};eh.generateCutRectangle=function(){return this.nodeShapes["cut-rectangle"]=this.nodeShapes.cutrectangle={renderer:this,name:"cut-rectangle",cornerLength:sB(),points:gs(4,0),draw:o(function(e,r,n,i,a,s){this.renderer.nodeShapeImpl(this.name,e,r,n,i,a,null,s)},"draw"),generateCutTrianglePts:o(function(e,r,n,i,a){var s=a==="auto"?this.cornerLength:a,l=r/2,u=e/2,h=n-u,f=n+u,d=i-l,p=i+l;return{topLeft:[h,d+s,h+s,d,h+s,d+s],topRight:[f-s,d,f,d+s,f-s,d+s],bottomRight:[f,p-s,f-s,p,f-s,p-s],bottomLeft:[h+s,p,h,p-s,h+s,p-s]}},"generateCutTrianglePts"),intersectLine:o(function(e,r,n,i,a,s,l,u){var h=this.generateCutTrianglePts(n+2*l,i+2*l,e,r,u),f=[].concat.apply([],[h.topLeft.splice(0,4),h.topRight.splice(0,4),h.bottomRight.splice(0,4),h.bottomLeft.splice(0,4)]);return Xb(a,s,f,e,r)},"intersectLine"),checkPoint:o(function(e,r,n,i,a,s,l,u){var h=u==="auto"?this.cornerLength:u;if(Zu(e,r,this.points,s,l,i,a-2*h,[0,-1],n)||Zu(e,r,this.points,s,l,i-2*h,a,[0,-1],n))return!0;var f=this.generateCutTrianglePts(i,a,s,l);return Us(e,r,f.topLeft)||Us(e,r,f.topRight)||Us(e,r,f.bottomRight)||Us(e,r,f.bottomLeft)},"checkPoint")}};eh.generateBarrel=function(){return this.nodeShapes.barrel={renderer:this,name:"barrel",points:gs(4,0),draw:o(function(e,r,n,i,a,s){this.renderer.nodeShapeImpl(this.name,e,r,n,i,a)},"draw"),intersectLine:o(function(e,r,n,i,a,s,l,u){var h=.15,f=.5,d=.85,p=this.generateBarrelBezierPts(n+2*l,i+2*l,e,r),m=o(function(v){var x=W1({x:v[0],y:v[1]},{x:v[2],y:v[3]},{x:v[4],y:v[5]},h),b=W1({x:v[0],y:v[1]},{x:v[2],y:v[3]},{x:v[4],y:v[5]},f),w=W1({x:v[0],y:v[1]},{x:v[2],y:v[3]},{x:v[4],y:v[5]},d);return[v[0],v[1],x.x,x.y,b.x,b.y,w.x,w.y,v[4],v[5]]},"approximateBarrelCurvePts"),g=[].concat(m(p.topLeft),m(p.topRight),m(p.bottomRight),m(p.bottomLeft));return Xb(a,s,g,e,r)},"intersectLine"),generateBarrelBezierPts:o(function(e,r,n,i){var a=r/2,s=e/2,l=n-s,u=n+s,h=i-a,f=i+a,d=BP(e,r),p=d.heightOffset,m=d.widthOffset,g=d.ctrlPtOffsetPct*e,y={topLeft:[l,h+p,l+g,h,l+m,h],topRight:[u-m,h,u-g,h,u,h+p],bottomRight:[u,f-p,u-g,f,u-m,f],bottomLeft:[l+m,f,l+g,f,l,f-p]};return y.topLeft.isTop=!0,y.topRight.isTop=!0,y.bottomLeft.isBottom=!0,y.bottomRight.isBottom=!0,y},"generateBarrelBezierPts"),checkPoint:o(function(e,r,n,i,a,s,l,u){var h=BP(i,a),f=h.heightOffset,d=h.widthOffset;if(Zu(e,r,this.points,s,l,i,a-2*f,[0,-1],n)||Zu(e,r,this.points,s,l,i-2*d,a,[0,-1],n))return!0;for(var p=this.generateBarrelBezierPts(i,a,s,l),m=o(function(S,_,I){var D=I[4],k=I[2],L=I[0],R=I[5],O=I[1],M=Math.min(D,L),B=Math.max(D,L),F=Math.min(R,O),P=Math.max(R,O);if(M<=S&&S<=B&&F<=_&&_<=P){var z=jqe(D,k,L),$=Vqe(z[0],z[1],z[2],S),H=$.filter(function(Q){return 0<=Q&&Q<=1});if(H.length>0)return H[0]}return null},"getCurveT"),g=Object.keys(p),y=0;y<g.length;y++){var v=g[y],x=p[v],b=m(e,r,x);if(b!=null){var w=x[5],C=x[3],T=x[1],E=oa(w,C,T,b);if(x.isTop&&E<=r||x.isBottom&&r<=E)return!0}}return!1},"checkPoint")}};eh.generateBottomRoundrectangle=function(){return this.nodeShapes["bottom-round-rectangle"]=this.nodeShapes.bottomroundrectangle={renderer:this,name:"bottom-round-rectangle",points:gs(4,0),draw:o(function(e,r,n,i,a,s){this.renderer.nodeShapeImpl(this.name,e,r,n,i,a,this.points,s)},"draw"),intersectLine:o(function(e,r,n,i,a,s,l,u){var h=e-(n/2+l),f=r-(i/2+l),d=f,p=e+(n/2+l),m=Ef(a,s,e,r,h,f,p,d,!1);return m.length>0?m:vme(a,s,e,r,n,i,l,u)},"intersectLine"),checkPoint:o(function(e,r,n,i,a,s,l,u){u=u==="auto"?Vp(i,a):u;var h=2*u;if(Zu(e,r,this.points,s,l,i,a-h,[0,-1],n)||Zu(e,r,this.points,s,l,i-h,a,[0,-1],n))return!0;var f=i/2+2*n,d=a/2+2*n,p=[s-f,l-d,s-f,l,s+f,l,s+f,l-d];return!!(Us(e,r,p)||$p(e,r,h,h,s+i/2-u,l+a/2-u,n)||$p(e,r,h,h,s-i/2+u,l+a/2-u,n))},"checkPoint")}};eh.registerNodeShapes=function(){var t=this.nodeShapes={},e=this;this.generateEllipse(),this.generatePolygon("triangle",gs(3,0)),this.generateRoundPolygon("round-triangle",gs(3,0)),this.generatePolygon("rectangle",gs(4,0)),t.square=t.rectangle,this.generateRoundRectangle(),this.generateCutRectangle(),this.generateBarrel(),this.generateBottomRoundrectangle();{var r=[0,1,1,0,0,-1,-1,0];this.generatePolygon("diamond",r),this.generateRoundPolygon("round-diamond",r)}this.generatePolygon("pentagon",gs(5,0)),this.generateRoundPolygon("round-pentagon",gs(5,0)),this.generatePolygon("hexagon",gs(6,0)),this.generateRoundPolygon("round-hexagon",gs(6,0)),this.generatePolygon("heptagon",gs(7,0)),this.generateRoundPolygon("round-heptagon",gs(7,0)),this.generatePolygon("octagon",gs(8,0)),this.generateRoundPolygon("round-octagon",gs(8,0));var n=new Array(20);{var i=PP(5,0),a=PP(5,Math.PI/5),s=.5*(3-Math.sqrt(5));s*=1.57;for(var l=0;l<a.length/2;l++)a[l*2]*=s,a[l*2+1]*=s;for(var l=0;l<20/4;l++)n[l*4]=i[l*2],n[l*4+1]=i[l*2+1],n[l*4+2]=a[l*2],n[l*4+3]=a[l*2+1]}n=xme(n),this.generatePolygon("star",n),this.generatePolygon("vee",[-1,-1,0,-.333,1,-1,0,1]),this.generatePolygon("rhomboid",[-1,-1,.333,-1,1,1,-.333,1]),this.generatePolygon("right-rhomboid",[-.333,-1,1,-1,.333,1,-1,1]),this.nodeShapes.concavehexagon=this.generatePolygon("concave-hexagon",[-1,-.95,-.75,0,-1,.95,1,.95,.75,0,1,-.95]);{var u=[-1,-1,.25,-1,1,0,.25,1,-1,1];this.generatePolygon("tag",u),this.generateRoundPolygon("round-tag",u)}t.makePolygon=function(h){var f=h.join("$"),d="polygon-"+f,p;return(p=this[d])?p:e.generatePolygon(d,h)}};l4={};l4.timeToRender=function(){return this.redrawTotalTime/this.redrawCount};l4.redraw=function(t){t=t||dme();var e=this;e.averageRedrawTime===void 0&&(e.averageRedrawTime=0),e.lastRedrawTime===void 0&&(e.lastRedrawTime=0),e.lastDrawTime===void 0&&(e.lastDrawTime=0),e.requestedFrame=!0,e.renderOptions=t};l4.beforeRender=function(t,e){if(!this.destroyed){e==null&&ai("Priority is not optional for beforeRender");var r=this.beforeRenderCallbacks;r.push({fn:t,priority:e}),r.sort(function(n,i){return i.priority-n.priority})}};M0e=o(function(e,r,n){for(var i=e.beforeRenderCallbacks,a=0;a<i.length;a++)i[a].fn(r,n)},"beforeRenderCallbacks");l4.startRenderLoop=function(){var t=this,e=t.cy;if(!t.renderLoopStarted){t.renderLoopStarted=!0;var r=o(function n(i){if(!t.destroyed){if(!e.batching())if(t.requestedFrame&&!t.skipFrame){M0e(t,!0,i);var a=Qu();t.render(t.renderOptions);var s=t.lastDrawTime=Qu();t.averageRedrawTime===void 0&&(t.averageRedrawTime=s-a),t.redrawCount===void 0&&(t.redrawCount=0),t.redrawCount++,t.redrawTotalTime===void 0&&(t.redrawTotalTime=0);var l=s-a;t.redrawTotalTime+=l,t.lastRedrawTime=l,t.averageRedrawTime=t.averageRedrawTime/2+l/2,t.requestedFrame=!1}else M0e(t,!1,i);t.skipFrame=!1,xS(n)}},"renderFn");xS(r)}};LQe=o(function(e){this.init(e)},"BaseRenderer"),vge=LQe,oy=vge.prototype;oy.clientFunctions=["redrawHint","render","renderTo","matchCanvasSize","nodeShapeImpl","arrowShapeImpl"];oy.init=function(t){var e=this;e.options=t,e.cy=t.cy;var r=e.container=t.cy.container(),n=e.cy.window();if(n){var i=n.document,a=i.head,s="__________cytoscape_stylesheet",l="__________cytoscape_container",u=i.getElementById(s)!=null;if(r.className.indexOf(l)<0&&(r.className=(r.className||"")+" "+l),!u){var h=i.createElement("style");h.id=s,h.textContent="."+l+" { position: relative; }",a.insertBefore(h,a.children[0])}var f=n.getComputedStyle(r),d=f.getPropertyValue("position");d==="static"&&un("A Cytoscape container has style position:static and so can not use UI extensions properly")}e.selection=[void 0,void 0,void 0,void 0,0],e.bezierProjPcts=[.05,.225,.4,.5,.6,.775,.95],e.hoverData={down:null,last:null,downTime:null,triggerMode:null,dragging:!1,initialPan:[null,null],capture:!1},e.dragData={possibleDragElements:[]},e.touchData={start:null,capture:!1,startPosition:[null,null,null,null,null,null],singleTouchStartTime:null,singleTouchMoved:!0,now:[null,null,null,null,null,null],earlier:[null,null,null,null,null,null]},e.redraws=0,e.showFps=t.showFps,e.debug=t.debug,e.webgl=t.webgl,e.hideEdgesOnViewport=t.hideEdgesOnViewport,e.textureOnViewport=t.textureOnViewport,e.wheelSensitivity=t.wheelSensitivity,e.motionBlurEnabled=t.motionBlur,e.forcedPixelRatio=Ct(t.pixelRatio)?t.pixelRatio:null,e.motionBlur=t.motionBlur,e.motionBlurOpacity=t.motionBlurOpacity,e.motionBlurTransparency=1-e.motionBlurOpacity,e.motionBlurPxRatio=1,e.mbPxRBlurry=1,e.minMbLowQualFrames=4,e.fullQualityMb=!1,e.clearedForMotionBlur=[],e.desktopTapThreshold=t.desktopTapThreshold,e.desktopTapThreshold2=t.desktopTapThreshold*t.desktopTapThreshold,e.touchTapThreshold=t.touchTapThreshold,e.touchTapThreshold2=t.touchTapThreshold*t.touchTapThreshold,e.tapholdDuration=500,e.bindings=[],e.beforeRenderCallbacks=[],e.beforeRenderPriorities={animations:400,eleCalcs:300,eleTxrDeq:200,lyrTxrDeq:150,lyrTxrSkip:100},e.registerNodeShapes(),e.registerArrowShapes(),e.registerCalculationListeners()};oy.notify=function(t,e){var r=this,n=r.cy;if(!this.destroyed){if(t==="init"){r.load();return}if(t==="destroy"){r.destroy();return}(t==="add"||t==="remove"||t==="move"&&n.hasCompoundNodes()||t==="load"||t==="zorder"||t==="mount")&&r.invalidateCachedZSortedEles(),t==="viewport"&&r.redrawHint("select",!0),t==="gc"&&r.redrawHint("gc",!0),(t==="load"||t==="resize"||t==="mount")&&(r.invalidateContainerClientCoordsCache(),r.matchCanvasSize(r.container)),r.redrawHint("eles",!0),r.redrawHint("drag",!0),this.startRenderLoop(),this.redraw()}};oy.destroy=function(){var t=this;t.destroyed=!0,t.cy.stopAnimationLoop();for(var e=0;e<t.bindings.length;e++){var r=t.bindings[e],n=r,i=n.target;(i.off||i.removeEventListener).apply(i,n.args)}if(t.bindings=[],t.beforeRenderCallbacks=[],t.onUpdateEleCalcsFns=[],t.removeObserver&&t.removeObserver.disconnect(),t.styleObserver&&t.styleObserver.disconnect(),t.resizeObserver&&t.resizeObserver.disconnect(),t.labelCalcDiv)try{document.body.removeChild(t.labelCalcDiv)}catch{}};oy.isHeadless=function(){return!1};[yB,gge,yge,sy,eh,l4].forEach(function(t){rr(oy,t)});DP=1e3/60,xge={setupDequeueing:o(function(e){return o(function(){var n=this,i=this.renderer;if(!n.dequeueingSetup){n.dequeueingSetup=!0;var a=n4(function(){i.redrawHint("eles",!0),i.redrawHint("drag",!0),i.redraw()},e.deqRedrawThreshold),s=o(function(h,f){var d=Qu(),p=i.averageRedrawTime,m=i.lastRedrawTime,g=[],y=i.cy.extent(),v=i.getPixelRatio();for(h||i.flushRenderedStyleQueue();;){var x=Qu(),b=x-d,w=x-f;if(m<DP){var C=DP-(h?p:0);if(w>=e.deqFastCost*C)break}else if(h){if(b>=e.deqCost*m||b>=e.deqAvgCost*p)break}else if(w>=e.deqNoDrawCost*DP)break;var T=e.deq(n,v,y);if(T.length>0)for(var E=0;E<T.length;E++)g.push(T[E]);else break}g.length>0&&(e.onDeqd(n,g),!h&&e.shouldRedraw(n,g,v,y)&&a())},"dequeue"),l=e.priority||rB;i.beforeRender(s,l(n))}},"setupDequeueingImpl")},"setupDequeueing")},RQe=function(){function t(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:bS;Mf(this,t),this.idsByKey=new Xc,this.keyForId=new Xc,this.cachesByLvl=new Xc,this.lvls=[],this.getKey=e,this.doesEleInvalidateKey=r}return o(t,"ElementTextureCacheLookup"),If(t,[{key:"getIdsFor",value:o(function(r){r==null&&ai("Can not get id list for null key");var n=this.idsByKey,i=this.idsByKey.get(r);return i||(i=new J1,n.set(r,i)),i},"getIdsFor")},{key:"addIdForKey",value:o(function(r,n){r!=null&&this.getIdsFor(r).add(n)},"addIdForKey")},{key:"deleteIdForKey",value:o(function(r,n){r!=null&&this.getIdsFor(r).delete(n)},"deleteIdForKey")},{key:"getNumberOfIdsForKey",value:o(function(r){return r==null?0:this.getIdsFor(r).size},"getNumberOfIdsForKey")},{key:"updateKeyMappingFor",value:o(function(r){var n=r.id(),i=this.keyForId.get(n),a=this.getKey(r);this.deleteIdForKey(i,n),this.addIdForKey(a,n),this.keyForId.set(n,a)},"updateKeyMappingFor")},{key:"deleteKeyMappingFor",value:o(function(r){var n=r.id(),i=this.keyForId.get(n);this.deleteIdForKey(i,n),this.keyForId.delete(n)},"deleteKeyMappingFor")},{key:"keyHasChangedFor",value:o(function(r){var n=r.id(),i=this.keyForId.get(n),a=this.getKey(r);return i!==a},"keyHasChangedFor")},{key:"isInvalid",value:o(function(r){return this.keyHasChangedFor(r)||this.doesEleInvalidateKey(r)},"isInvalid")},{key:"getCachesAt",value:o(function(r){var n=this.cachesByLvl,i=this.lvls,a=n.get(r);return a||(a=new Xc,n.set(r,a),i.push(r)),a},"getCachesAt")},{key:"getCache",value:o(function(r,n){return this.getCachesAt(n).get(r)},"getCache")},{key:"get",value:o(function(r,n){var i=this.getKey(r),a=this.getCache(i,n);return a!=null&&this.updateKeyMappingFor(r),a},"get")},{key:"getForCachedKey",value:o(function(r,n){var i=this.keyForId.get(r.id()),a=this.getCache(i,n);return a},"getForCachedKey")},{key:"hasCache",value:o(function(r,n){return this.getCachesAt(n).has(r)},"hasCache")},{key:"has",value:o(function(r,n){var i=this.getKey(r);return this.hasCache(i,n)},"has")},{key:"setCache",value:o(function(r,n,i){i.key=r,this.getCachesAt(n).set(r,i)},"setCache")},{key:"set",value:o(function(r,n,i){var a=this.getKey(r);this.setCache(a,n,i),this.updateKeyMappingFor(r)},"set")},{key:"deleteCache",value:o(function(r,n){this.getCachesAt(n).delete(r)},"deleteCache")},{key:"delete",value:o(function(r,n){var i=this.getKey(r);this.deleteCache(i,n)},"_delete")},{key:"invalidateKey",value:o(function(r){var n=this;this.lvls.forEach(function(i){return n.deleteCache(r,i)})},"invalidateKey")},{key:"invalidate",value:o(function(r){var n=r.id(),i=this.keyForId.get(n);this.deleteKeyMappingFor(r);var a=this.doesEleInvalidateKey(r);return a&&this.invalidateKey(i),a||this.getNumberOfIdsForKey(i)===0},"invalidate")}]),t}(),I0e=25,sS=50,yS=-4,XP=3,bge=7.99,NQe=8,MQe=1024,IQe=1024,OQe=1024,PQe=.2,BQe=.8,FQe=10,$Qe=.15,zQe=.1,GQe=.9,VQe=.9,UQe=100,HQe=1,H1={dequeue:"dequeue",downscale:"downscale",highQuality:"highQuality"},WQe=la({getKey:null,doesEleInvalidateKey:bS,drawElement:null,getBoundingBox:null,getRotationPoint:null,getRotationOffset:null,isVisible:ume,allowEdgeTxrCaching:!0,allowParentTxrCaching:!0}),Fb=o(function(e,r){var n=this;n.renderer=e,n.onDequeues=[];var i=WQe(r);rr(n,i),n.lookup=new RQe(i.getKey,i.doesEleInvalidateKey),n.setupDequeueing()},"ElementTextureCache"),qi=Fb.prototype;qi.reasons=H1;qi.getTextureQueue=function(t){var e=this;return e.eleImgCaches=e.eleImgCaches||{},e.eleImgCaches[t]=e.eleImgCaches[t]||[]};qi.getRetiredTextureQueue=function(t){var e=this,r=e.eleImgCaches.retired=e.eleImgCaches.retired||{},n=r[t]=r[t]||[];return n};qi.getElementQueue=function(){var t=this,e=t.eleCacheQueue=t.eleCacheQueue||new i4(function(r,n){return n.reqs-r.reqs});return e};qi.getElementKeyToQueue=function(){var t=this,e=t.eleKeyToCacheQueue=t.eleKeyToCacheQueue||{};return e};qi.getElement=function(t,e,r,n,i){var a=this,s=this.renderer,l=s.cy.zoom(),u=this.lookup;if(!e||e.w===0||e.h===0||isNaN(e.w)||isNaN(e.h)||!t.visible()||t.removed()||!a.allowEdgeTxrCaching&&t.isEdge()||!a.allowParentTxrCaching&&t.isParent())return null;if(n==null&&(n=Math.ceil(iB(l*r))),n<yS)n=yS;else if(l>=bge||n>XP)return null;var h=Math.pow(2,n),f=e.h*h,d=e.w*h,p=s.eleTextBiggerThanMin(t,h);if(!this.isVisible(t,p))return null;var m=u.get(t,n);if(m&&m.invalidated&&(m.invalidated=!1,m.texture.invalidatedWidth-=m.width),m)return m;var g;if(f<=I0e?g=I0e:f<=sS?g=sS:g=Math.ceil(f/sS)*sS,f>OQe||d>IQe)return null;var y=a.getTextureQueue(g),v=y[y.length-2],x=o(function(){return a.recycleTexture(g,d)||a.addTexture(g,d)},"addNewTxr");v||(v=y[y.length-1]),v||(v=x()),v.width-v.usedWidth<d&&(v=x());for(var b=o(function(M){return M&&M.scaledLabelShown===p},"scalableFrom"),w=i&&i===H1.dequeue,C=i&&i===H1.highQuality,T=i&&i===H1.downscale,E,A=n+1;A<=XP;A++){var S=u.get(t,A);if(S){E=S;break}}var _=E&&E.level===n+1?E:null,I=o(function(){v.context.drawImage(_.texture.canvas,_.x,0,_.width,_.height,v.usedWidth,0,d,f)},"downscale");if(v.context.setTransform(1,0,0,1,0,0),v.context.clearRect(v.usedWidth,0,d,g),b(_))I();else if(b(E))if(C){for(var D=E.level;D>n;D--)_=a.getElement(t,e,r,D,H1.downscale);I()}else return a.queueElement(t,E.level-1),E;else{var k;if(!w&&!C&&!T)for(var L=n-1;L>=yS;L--){var R=u.get(t,L);if(R){k=R;break}}if(b(k))return a.queueElement(t,n),k;v.context.translate(v.usedWidth,0),v.context.scale(h,h),this.drawElement(v.context,t,e,p,!1),v.context.scale(1/h,1/h),v.context.translate(-v.usedWidth,0)}return m={x:v.usedWidth,texture:v,level:n,scale:h,width:d,height:f,scaledLabelShown:p},v.usedWidth+=Math.ceil(d+NQe),v.eleCaches.push(m),u.set(t,n,m),a.checkTextureFullness(v),m};qi.invalidateElements=function(t){for(var e=0;e<t.length;e++)this.invalidateElement(t[e])};qi.invalidateElement=function(t){var e=this,r=e.lookup,n=[],i=r.isInvalid(t);if(i){for(var a=yS;a<=XP;a++){var s=r.getForCachedKey(t,a);s&&n.push(s)}var l=r.invalidate(t);if(l)for(var u=0;u<n.length;u++){var h=n[u],f=h.texture;f.invalidatedWidth+=h.width,h.invalidated=!0,e.checkTextureUtility(f)}e.removeFromQueue(t)}};qi.checkTextureUtility=function(t){t.invalidatedWidth>=PQe*t.width&&this.retireTexture(t)};qi.checkTextureFullness=function(t){var e=this,r=e.getTextureQueue(t.height);t.usedWidth/t.width>BQe&&t.fullnessChecks>=FQe?Df(r,t):t.fullnessChecks++};qi.retireTexture=function(t){var e=this,r=t.height,n=e.getTextureQueue(r),i=this.lookup;Df(n,t),t.retired=!0;for(var a=t.eleCaches,s=0;s<a.length;s++){var l=a[s];i.deleteCache(l.key,l.level)}nB(a);var u=e.getRetiredTextureQueue(r);u.push(t)};qi.addTexture=function(t,e){var r=this,n=r.getTextureQueue(t),i={};return n.push(i),i.eleCaches=[],i.height=t,i.width=Math.max(MQe,e),i.usedWidth=0,i.invalidatedWidth=0,i.fullnessChecks=0,i.canvas=r.renderer.makeOffscreenCanvas(i.width,i.height),i.context=i.canvas.getContext("2d"),i};qi.recycleTexture=function(t,e){for(var r=this,n=r.getTextureQueue(t),i=r.getRetiredTextureQueue(t),a=0;a<i.length;a++){var s=i[a];if(s.width>=e)return s.retired=!1,s.usedWidth=0,s.invalidatedWidth=0,s.fullnessChecks=0,nB(s.eleCaches),s.context.setTransform(1,0,0,1,0,0),s.context.clearRect(0,0,s.width,s.height),Df(i,s),n.push(s),s}};qi.queueElement=function(t,e){var r=this,n=r.getElementQueue(),i=r.getElementKeyToQueue(),a=this.getKey(t),s=i[a];if(s)s.level=Math.max(s.level,e),s.eles.merge(t),s.reqs++,n.updateItem(s);else{var l={eles:t.spawn().merge(t),level:e,reqs:1,key:a};n.push(l),i[a]=l}};qi.dequeue=function(t){for(var e=this,r=e.getElementQueue(),n=e.getElementKeyToQueue(),i=[],a=e.lookup,s=0;s<HQe&&r.size()>0;s++){var l=r.pop(),u=l.key,h=l.eles[0],f=a.hasCache(h,l.level);if(n[u]=null,f)continue;i.push(l);var d=e.getBoundingBox(h);e.getElement(h,d,t,l.level,H1.dequeue)}return i};qi.removeFromQueue=function(t){var e=this,r=e.getElementQueue(),n=e.getElementKeyToQueue(),i=this.getKey(t),a=n[i];a!=null&&(a.eles.length===1?(a.reqs=tB,r.updateItem(a),r.pop(),n[i]=null):a.eles.unmerge(t))};qi.onDequeue=function(t){this.onDequeues.push(t)};qi.offDequeue=function(t){Df(this.onDequeues,t)};qi.setupDequeueing=xge.setupDequeueing({deqRedrawThreshold:UQe,deqCost:$Qe,deqAvgCost:zQe,deqNoDrawCost:GQe,deqFastCost:VQe,deq:o(function(e,r,n){return e.dequeue(r,n)},"deq"),onDeqd:o(function(e,r){for(var n=0;n<e.onDequeues.length;n++){var i=e.onDequeues[n];i(r)}},"onDeqd"),shouldRedraw:o(function(e,r,n,i){for(var a=0;a<r.length;a++)for(var s=r[a].eles,l=0;l<s.length;l++){var u=s[l].boundingBox();if(aB(u,i))return!0}return!1},"shouldRedraw"),priority:o(function(e){return e.renderer.beforeRenderPriorities.eleTxrDeq},"priority")});qQe=1,zb=-4,_S=2,YQe=3.99,XQe=50,jQe=50,KQe=.15,QQe=.1,ZQe=.9,JQe=.9,eZe=1,O0e=250,tZe=4e3*4e3,P0e=32767,rZe=!0,wge=o(function(e){var r=this,n=r.renderer=e,i=n.cy;r.layersByLevel={},r.firstGet=!0,r.lastInvalidationTime=Qu()-2*O0e,r.skipping=!1,r.eleTxrDeqs=i.collection(),r.scheduleElementRefinement=n4(function(){r.refineElementTextures(r.eleTxrDeqs),r.eleTxrDeqs.unmerge(r.eleTxrDeqs)},jQe),n.beforeRender(function(s,l){l-r.lastInvalidationTime<=O0e?r.skipping=!0:r.skipping=!1},n.beforeRenderPriorities.lyrTxrSkip);var a=o(function(l,u){return u.reqs-l.reqs},"qSort");r.layersQueue=new i4(a),r.setupDequeueing()},"LayeredTextureCache"),Ea=wge.prototype,B0e=0,nZe=Math.pow(2,53)-1;Ea.makeLayer=function(t,e){var r=Math.pow(2,e),n=Math.ceil(t.w*r),i=Math.ceil(t.h*r),a=this.renderer.makeOffscreenCanvas(n,i),s={id:B0e=++B0e%nZe,bb:t,level:e,width:n,height:i,canvas:a,context:a.getContext("2d"),eles:[],elesQueue:[],reqs:0},l=s.context,u=-s.bb.x1,h=-s.bb.y1;return l.scale(r,r),l.translate(u,h),s};Ea.getLayers=function(t,e,r){var n=this,i=n.renderer,a=i.cy,s=a.zoom(),l=n.firstGet;if(n.firstGet=!1,r==null){if(r=Math.ceil(iB(s*e)),r<zb)r=zb;else if(s>=YQe||r>_S)return null}n.validateLayersElesOrdering(r,t);var u=n.layersByLevel,h=Math.pow(2,r),f=u[r]=u[r]||[],d,p=n.levelIsComplete(r,t),m,g=o(function(){var I=o(function(O){if(n.validateLayersElesOrdering(O,t),n.levelIsComplete(O,t))return m=u[O],!0},"canUseAsTmpLvl"),D=o(function(O){if(!m)for(var M=r+O;zb<=M&&M<=_S&&!I(M);M+=O);},"checkLvls");D(1),D(-1);for(var k=f.length-1;k>=0;k--){var L=f[k];L.invalid&&Df(f,L)}},"checkTempLevels");if(!p)g();else return f;var y=o(function(){if(!d){d=Hs();for(var I=0;I<t.length;I++)gme(d,t[I].boundingBox())}return d},"getBb"),v=o(function(I){I=I||{};var D=I.after;y();var k=Math.ceil(d.w*h),L=Math.ceil(d.h*h);if(k>P0e||L>P0e)return null;var R=k*L;if(R>tZe)return null;var O=n.makeLayer(d,r);if(D!=null){var M=f.indexOf(D)+1;f.splice(M,0,O)}else(I.insert===void 0||I.insert)&&f.unshift(O);return O},"makeLayer");if(n.skipping&&!l)return null;for(var x=null,b=t.length/qQe,w=!l,C=0;C<t.length;C++){var T=t[C],E=T._private.rscratch,A=E.imgLayerCaches=E.imgLayerCaches||{},S=A[r];if(S){x=S;continue}if((!x||x.eles.length>=b||!yme(x.bb,T.boundingBox()))&&(x=v({insert:!0,after:x}),!x))return null;m||w?n.queueLayer(x,T):n.drawEleInLayer(x,T,r,e),x.eles.push(T),A[r]=x}return m||(w?null:f)};Ea.getEleLevelForLayerLevel=function(t,e){return t};Ea.drawEleInLayer=function(t,e,r,n){var i=this,a=this.renderer,s=t.context,l=e.boundingBox();l.w===0||l.h===0||!e.visible()||(r=i.getEleLevelForLayerLevel(r,n),a.setImgSmoothing(s,!1),a.drawCachedElement(s,e,null,null,r,rZe),a.setImgSmoothing(s,!0))};Ea.levelIsComplete=function(t,e){var r=this,n=r.layersByLevel[t];if(!n||n.length===0)return!1;for(var i=0,a=0;a<n.length;a++){var s=n[a];if(s.reqs>0||s.invalid)return!1;i+=s.eles.length}return i===e.length};Ea.validateLayersElesOrdering=function(t,e){var r=this.layersByLevel[t];if(r)for(var n=0;n<r.length;n++){for(var i=r[n],a=-1,s=0;s<e.length;s++)if(i.eles[0]===e[s]){a=s;break}if(a<0){this.invalidateLayer(i);continue}for(var l=a,s=0;s<i.eles.length;s++)if(i.eles[s]!==e[l+s]){this.invalidateLayer(i);break}}};Ea.updateElementsInLayers=function(t,e){for(var r=this,n=t4(t[0]),i=0;i<t.length;i++)for(var a=n?null:t[i],s=n?t[i]:t[i].ele,l=s._private.rscratch,u=l.imgLayerCaches=l.imgLayerCaches||{},h=zb;h<=_S;h++){var f=u[h];f&&(a&&r.getEleLevelForLayerLevel(f.level)!==a.level||e(f,s,a))}};Ea.haveLayers=function(){for(var t=this,e=!1,r=zb;r<=_S;r++){var n=t.layersByLevel[r];if(n&&n.length>0){e=!0;break}}return e};Ea.invalidateElements=function(t){var e=this;t.length!==0&&(e.lastInvalidationTime=Qu(),!(t.length===0||!e.haveLayers())&&e.updateElementsInLayers(t,o(function(n,i,a){e.invalidateLayer(n)},"invalAssocLayers")))};Ea.invalidateLayer=function(t){if(this.lastInvalidationTime=Qu(),!t.invalid){var e=t.level,r=t.eles,n=this.layersByLevel[e];Df(n,t),t.elesQueue=[],t.invalid=!0,t.replacement&&(t.replacement.invalid=!0);for(var i=0;i<r.length;i++){var a=r[i]._private.rscratch.imgLayerCaches;a&&(a[e]=null)}}};Ea.refineElementTextures=function(t){var e=this;e.updateElementsInLayers(t,o(function(n,i,a){var s=n.replacement;if(s||(s=n.replacement=e.makeLayer(n.bb,n.level),s.replaces=n,s.eles=n.eles),!s.reqs)for(var l=0;l<s.eles.length;l++)e.queueLayer(s,s.eles[l])},"refineEachEle"))};Ea.enqueueElementRefinement=function(t){this.eleTxrDeqs.merge(t),this.scheduleElementRefinement()};Ea.queueLayer=function(t,e){var r=this,n=r.layersQueue,i=t.elesQueue,a=i.hasId=i.hasId||{};if(!t.replacement){if(e){if(a[e.id()])return;i.push(e),a[e.id()]=!0}t.reqs?(t.reqs++,n.updateItem(t)):(t.reqs=1,n.push(t))}};Ea.dequeue=function(t){for(var e=this,r=e.layersQueue,n=[],i=0;i<eZe&&r.size()!==0;){var a=r.peek();if(a.replacement){r.pop();continue}if(a.replaces&&a!==a.replaces.replacement){r.pop();continue}if(a.invalid){r.pop();continue}var s=a.elesQueue.shift();s&&(e.drawEleInLayer(a,s,a.level,t),i++),n.length===0&&n.push(!0),a.elesQueue.length===0&&(r.pop(),a.reqs=0,a.replaces&&e.applyLayerReplacement(a),e.requestRedraw())}return n};Ea.applyLayerReplacement=function(t){var e=this,r=e.layersByLevel[t.level],n=t.replaces,i=r.indexOf(n);if(!(i<0||n.invalid)){r[i]=t;for(var a=0;a<t.eles.length;a++){var s=t.eles[a]._private,l=s.imgLayerCaches=s.imgLayerCaches||{};l&&(l[t.level]=t)}e.requestRedraw()}};Ea.requestRedraw=n4(function(){var t=this.renderer;t.redrawHint("eles",!0),t.redrawHint("drag",!0),t.redraw()},100);Ea.setupDequeueing=xge.setupDequeueing({deqRedrawThreshold:XQe,deqCost:KQe,deqAvgCost:QQe,deqNoDrawCost:ZQe,deqFastCost:JQe,deq:o(function(e,r){return e.dequeue(r)},"deq"),onDeqd:rB,shouldRedraw:ume,priority:o(function(e){return e.renderer.beforeRenderPriorities.lyrTxrDeq},"priority")});Tge={};o(iZe,"polygon");o(aZe,"triangleBackcurve");o($0e,"triangleTee");o(sZe,"circleTriangle");o(oZe,"circle");Tge.arrowShapeImpl=function(t){return(F0e||(F0e={polygon:iZe,"triangle-backcurve":aZe,"triangle-tee":$0e,"circle-triangle":sZe,"triangle-cross":$0e,circle:oZe}))[t]};Qc={};Qc.drawElement=function(t,e,r,n,i,a){var s=this;e.isNode()?s.drawNode(t,e,r,n,i,a):s.drawEdge(t,e,r,n,i,a)};Qc.drawElementOverlay=function(t,e){var r=this;e.isNode()?r.drawNodeOverlay(t,e):r.drawEdgeOverlay(t,e)};Qc.drawElementUnderlay=function(t,e){var r=this;e.isNode()?r.drawNodeUnderlay(t,e):r.drawEdgeUnderlay(t,e)};Qc.drawCachedElementPortion=function(t,e,r,n,i,a,s,l){var u=this,h=r.getBoundingBox(e);if(!(h.w===0||h.h===0)){var f=r.getElement(e,h,n,i,a);if(f!=null){var d=l(u,e);if(d===0)return;var p=s(u,e),m=h.x1,g=h.y1,y=h.w,v=h.h,x,b,w,C,T;if(p!==0){var E=r.getRotationPoint(e);w=E.x,C=E.y,t.translate(w,C),t.rotate(p),T=u.getImgSmoothing(t),T||u.setImgSmoothing(t,!0);var A=r.getRotationOffset(e);x=A.x,b=A.y}else x=m,b=g;var S;d!==1&&(S=t.globalAlpha,t.globalAlpha=S*d),t.drawImage(f.texture.canvas,f.x,0,f.width,f.height,x,b,y,v),d!==1&&(t.globalAlpha=S),p!==0&&(t.rotate(-p),t.translate(-w,-C),T||u.setImgSmoothing(t,!1))}else r.drawElement(t,e)}};lZe=o(function(){return 0},"getZeroRotation"),cZe=o(function(e,r){return e.getTextAngle(r,null)},"getLabelRotation"),uZe=o(function(e,r){return e.getTextAngle(r,"source")},"getSourceLabelRotation"),hZe=o(function(e,r){return e.getTextAngle(r,"target")},"getTargetLabelRotation"),fZe=o(function(e,r){return r.effectiveOpacity()},"getOpacity"),LP=o(function(e,r){return r.pstyle("text-opacity").pfValue*r.effectiveOpacity()},"getTextOpacity");Qc.drawCachedElement=function(t,e,r,n,i,a){var s=this,l=s.data,u=l.eleTxrCache,h=l.lblTxrCache,f=l.slbTxrCache,d=l.tlbTxrCache,p=e.boundingBox(),m=a===!0?u.reasons.highQuality:null;if(!(p.w===0||p.h===0||!e.visible())&&(!n||aB(p,n))){var g=e.isEdge(),y=e.element()._private.rscratch.badLine;s.drawElementUnderlay(t,e),s.drawCachedElementPortion(t,e,u,r,i,m,lZe,fZe),(!g||!y)&&s.drawCachedElementPortion(t,e,h,r,i,m,cZe,LP),g&&!y&&(s.drawCachedElementPortion(t,e,f,r,i,m,uZe,LP),s.drawCachedElementPortion(t,e,d,r,i,m,hZe,LP)),s.drawElementOverlay(t,e)}};Qc.drawElements=function(t,e){for(var r=this,n=0;n<e.length;n++){var i=e[n];r.drawElement(t,i)}};Qc.drawCachedElements=function(t,e,r,n){for(var i=this,a=0;a<e.length;a++){var s=e[a];i.drawCachedElement(t,s,r,n)}};Qc.drawCachedNodes=function(t,e,r,n){for(var i=this,a=0;a<e.length;a++){var s=e[a];s.isNode()&&i.drawCachedElement(t,s,r,n)}};Qc.drawLayeredElements=function(t,e,r,n){var i=this,a=i.data.lyrTxrCache.getLayers(e,r);if(a)for(var s=0;s<a.length;s++){var l=a[s],u=l.bb;u.w===0||u.h===0||t.drawImage(l.canvas,u.x1,u.y1,u.w,u.h)}else i.drawCachedElements(t,e,r,n)};th={};th.drawEdge=function(t,e,r){var n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,a=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!0,s=this,l=e._private.rscratch;if(!(a&&!e.visible())&&!(l.badLine||l.allpts==null||isNaN(l.allpts[0]))){var u;r&&(u=r,t.translate(-u.x1,-u.y1));var h=a?e.pstyle("opacity").value:1,f=a?e.pstyle("line-opacity").value:1,d=e.pstyle("curve-style").value,p=e.pstyle("line-style").value,m=e.pstyle("width").pfValue,g=e.pstyle("line-cap").value,y=e.pstyle("line-outline-width").value,v=e.pstyle("line-outline-color").value,x=h*f,b=h*f,w=o(function(){var O=arguments.length>0&&arguments[0]!==void 0?arguments[0]:x;d==="straight-triangle"?(s.eleStrokeStyle(t,e,O),s.drawEdgeTrianglePath(e,t,l.allpts)):(t.lineWidth=m,t.lineCap=g,s.eleStrokeStyle(t,e,O),s.drawEdgePath(e,t,l.allpts,p),t.lineCap="butt")},"drawLine"),C=o(function(){var O=arguments.length>0&&arguments[0]!==void 0?arguments[0]:x;if(t.lineWidth=m+y,t.lineCap=g,y>0)s.colorStrokeStyle(t,v[0],v[1],v[2],O);else{t.lineCap="butt";return}d==="straight-triangle"?s.drawEdgeTrianglePath(e,t,l.allpts):(s.drawEdgePath(e,t,l.allpts,p),t.lineCap="butt")},"drawLineOutline"),T=o(function(){i&&s.drawEdgeOverlay(t,e)},"drawOverlay"),E=o(function(){i&&s.drawEdgeUnderlay(t,e)},"drawUnderlay"),A=o(function(){var O=arguments.length>0&&arguments[0]!==void 0?arguments[0]:b;s.drawArrowheads(t,e,O)},"drawArrows"),S=o(function(){s.drawElementText(t,e,null,n)},"drawText");t.lineJoin="round";var _=e.pstyle("ghost").value==="yes";if(_){var I=e.pstyle("ghost-offset-x").pfValue,D=e.pstyle("ghost-offset-y").pfValue,k=e.pstyle("ghost-opacity").value,L=x*k;t.translate(I,D),w(L),A(L),t.translate(-I,-D)}else C();E(),w(),A(),T(),S(),r&&t.translate(u.x1,u.y1)}};kge=o(function(e){if(!["overlay","underlay"].includes(e))throw new Error("Invalid state");return function(r,n){if(n.visible()){var i=n.pstyle("".concat(e,"-opacity")).value;if(i!==0){var a=this,s=a.usePaths(),l=n._private.rscratch,u=n.pstyle("".concat(e,"-padding")).pfValue,h=2*u,f=n.pstyle("".concat(e,"-color")).value;r.lineWidth=h,l.edgeType==="self"&&!s?r.lineCap="butt":r.lineCap="round",a.colorStrokeStyle(r,f[0],f[1],f[2],i),a.drawEdgePath(n,r,l.allpts,"solid")}}}},"drawEdgeOverlayUnderlay");th.drawEdgeOverlay=kge("overlay");th.drawEdgeUnderlay=kge("underlay");th.drawEdgePath=function(t,e,r,n){var i=t._private.rscratch,a=e,s,l=!1,u=this.usePaths(),h=t.pstyle("line-dash-pattern").pfValue,f=t.pstyle("line-dash-offset").pfValue;if(u){var d=r.join("$"),p=i.pathCacheKey&&i.pathCacheKey===d;p?(s=e=i.pathCache,l=!0):(s=e=new Path2D,i.pathCacheKey=d,i.pathCache=s)}if(a.setLineDash)switch(n){case"dotted":a.setLineDash([1,1]);break;case"dashed":a.setLineDash(h),a.lineDashOffset=f;break;case"solid":a.setLineDash([]);break}if(!l&&!i.badLine)switch(e.beginPath&&e.beginPath(),e.moveTo(r[0],r[1]),i.edgeType){case"bezier":case"self":case"compound":case"multibezier":for(var m=2;m+3<r.length;m+=4)e.quadraticCurveTo(r[m],r[m+1],r[m+2],r[m+3]);break;case"straight":case"haystack":for(var g=2;g+1<r.length;g+=2)e.lineTo(r[g],r[g+1]);break;case"segments":if(i.isRound){var y=mo(i.roundCorners),v;try{for(y.s();!(v=y.n()).done;){var x=v.value;hge(e,x)}}catch(w){y.e(w)}finally{y.f()}e.lineTo(r[r.length-2],r[r.length-1])}else for(var b=2;b+1<r.length;b+=2)e.lineTo(r[b],r[b+1]);break}e=a,u?e.stroke(s):e.stroke(),e.setLineDash&&e.setLineDash([])};th.drawEdgeTrianglePath=function(t,e,r){e.fillStyle=e.strokeStyle;for(var n=t.pstyle("width").pfValue,i=0;i+1<r.length;i+=2){var a=[r[i+2]-r[i],r[i+3]-r[i+1]],s=Math.sqrt(a[0]*a[0]+a[1]*a[1]),l=[a[1]/s,-a[0]/s],u=[l[0]*n/2,l[1]*n/2];e.beginPath(),e.moveTo(r[i]-u[0],r[i+1]-u[1]),e.lineTo(r[i]+u[0],r[i+1]+u[1]),e.lineTo(r[i+2],r[i+3]),e.closePath(),e.fill()}};th.drawArrowheads=function(t,e,r){var n=e._private.rscratch,i=n.edgeType==="haystack";i||this.drawArrowhead(t,e,"source",n.arrowStartX,n.arrowStartY,n.srcArrowAngle,r),this.drawArrowhead(t,e,"mid-target",n.midX,n.midY,n.midtgtArrowAngle,r),this.drawArrowhead(t,e,"mid-source",n.midX,n.midY,n.midsrcArrowAngle,r),i||this.drawArrowhead(t,e,"target",n.arrowEndX,n.arrowEndY,n.tgtArrowAngle,r)};th.drawArrowhead=function(t,e,r,n,i,a,s){if(!(isNaN(n)||n==null||isNaN(i)||i==null||isNaN(a)||a==null)){var l=this,u=e.pstyle(r+"-arrow-shape").value;if(u!=="none"){var h=e.pstyle(r+"-arrow-fill").value==="hollow"?"both":"filled",f=e.pstyle(r+"-arrow-fill").value,d=e.pstyle("width").pfValue,p=e.pstyle(r+"-arrow-width"),m=p.value==="match-line"?d:p.pfValue;p.units==="%"&&(m*=d);var g=e.pstyle("opacity").value;s===void 0&&(s=g);var y=t.globalCompositeOperation;(s!==1||f==="hollow")&&(t.globalCompositeOperation="destination-out",l.colorFillStyle(t,255,255,255,1),l.colorStrokeStyle(t,255,255,255,1),l.drawArrowShape(e,t,h,d,u,m,n,i,a),t.globalCompositeOperation=y);var v=e.pstyle(r+"-arrow-color").value;l.colorFillStyle(t,v[0],v[1],v[2],s),l.colorStrokeStyle(t,v[0],v[1],v[2],s),l.drawArrowShape(e,t,f,d,u,m,n,i,a)}}};th.drawArrowShape=function(t,e,r,n,i,a,s,l,u){var h=this,f=this.usePaths()&&i!=="triangle-cross",d=!1,p,m=e,g={x:s,y:l},y=t.pstyle("arrow-scale").value,v=this.getArrowWidth(n,y),x=h.arrowShapes[i];if(f){var b=h.arrowPathCache=h.arrowPathCache||[],w=_f(i),C=b[w];C!=null?(p=e=C,d=!0):(p=e=new Path2D,b[w]=p)}d||(e.beginPath&&e.beginPath(),f?x.draw(e,1,0,{x:0,y:0},1):x.draw(e,v,u,g,n),e.closePath&&e.closePath()),e=m,f&&(e.translate(s,l),e.rotate(u),e.scale(v,v)),(r==="filled"||r==="both")&&(f?e.fill(p):e.fill()),(r==="hollow"||r==="both")&&(e.lineWidth=a/(f?v:1),e.lineJoin="miter",f?e.stroke(p):e.stroke()),f&&(e.scale(1/v,1/v),e.rotate(-u),e.translate(-s,-l))};bB={};bB.safeDrawImage=function(t,e,r,n,i,a,s,l,u,h){if(!(i<=0||a<=0||u<=0||h<=0))try{t.drawImage(e,r,n,i,a,s,l,u,h)}catch(f){un(f)}};bB.drawInscribedImage=function(t,e,r,n,i){var a=this,s=r.position(),l=s.x,u=s.y,h=r.cy().style(),f=h.getIndexedStyle.bind(h),d=f(r,"background-fit","value",n),p=f(r,"background-repeat","value",n),m=r.width(),g=r.height(),y=r.padding()*2,v=m+(f(r,"background-width-relative-to","value",n)==="inner"?0:y),x=g+(f(r,"background-height-relative-to","value",n)==="inner"?0:y),b=r._private.rscratch,w=f(r,"background-clip","value",n),C=w==="node",T=f(r,"background-image-opacity","value",n)*i,E=f(r,"background-image-smoothing","value",n),A=r.pstyle("corner-radius").value;A!=="auto"&&(A=r.pstyle("corner-radius").pfValue);var S=e.width||e.cachedW,_=e.height||e.cachedH;(S==null||_==null)&&(document.body.appendChild(e),S=e.cachedW=e.width||e.offsetWidth,_=e.cachedH=e.height||e.offsetHeight,document.body.removeChild(e));var I=S,D=_;if(f(r,"background-width","value",n)!=="auto"&&(f(r,"background-width","units",n)==="%"?I=f(r,"background-width","pfValue",n)*v:I=f(r,"background-width","pfValue",n)),f(r,"background-height","value",n)!=="auto"&&(f(r,"background-height","units",n)==="%"?D=f(r,"background-height","pfValue",n)*x:D=f(r,"background-height","pfValue",n)),!(I===0||D===0)){if(d==="contain"){var k=Math.min(v/I,x/D);I*=k,D*=k}else if(d==="cover"){var k=Math.max(v/I,x/D);I*=k,D*=k}var L=l-v/2,R=f(r,"background-position-x","units",n),O=f(r,"background-position-x","pfValue",n);R==="%"?L+=(v-I)*O:L+=O;var M=f(r,"background-offset-x","units",n),B=f(r,"background-offset-x","pfValue",n);M==="%"?L+=(v-I)*B:L+=B;var F=u-x/2,P=f(r,"background-position-y","units",n),z=f(r,"background-position-y","pfValue",n);P==="%"?F+=(x-D)*z:F+=z;var $=f(r,"background-offset-y","units",n),H=f(r,"background-offset-y","pfValue",n);$==="%"?F+=(x-D)*H:F+=H,b.pathCache&&(L-=l,F-=u,l=0,u=0);var Q=t.globalAlpha;t.globalAlpha=T;var j=a.getImgSmoothing(t),ie=!1;if(E==="no"&&j?(a.setImgSmoothing(t,!1),ie=!0):E==="yes"&&!j&&(a.setImgSmoothing(t,!0),ie=!0),p==="no-repeat")C&&(t.save(),b.pathCache?t.clip(b.pathCache):(a.nodeShapes[a.getNodeShape(r)].draw(t,l,u,v,x,A,b),t.clip())),a.safeDrawImage(t,e,0,0,S,_,L,F,I,D),C&&t.restore();else{var ne=t.createPattern(e,p);t.fillStyle=ne,a.nodeShapes[a.getNodeShape(r)].draw(t,l,u,v,x,A,b),t.translate(L,F),t.fill(),t.translate(-L,-F)}t.globalAlpha=Q,ie&&a.setImgSmoothing(t,j)}};Yp={};Yp.eleTextBiggerThanMin=function(t,e){if(!e){var r=t.cy().zoom(),n=this.getPixelRatio(),i=Math.ceil(iB(r*n));e=Math.pow(2,i)}var a=t.pstyle("font-size").pfValue*e,s=t.pstyle("min-zoomed-font-size").pfValue;return!(a<s)};Yp.drawElementText=function(t,e,r,n,i){var a=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!0,s=this;if(n==null){if(a&&!s.eleTextBiggerThanMin(e))return}else if(n===!1)return;if(e.isNode()){var l=e.pstyle("label");if(!l||!l.value)return;var u=s.getLabelJustification(e);t.textAlign=u,t.textBaseline="bottom"}else{var h=e.element()._private.rscratch.badLine,f=e.pstyle("label"),d=e.pstyle("source-label"),p=e.pstyle("target-label");if(h||(!f||!f.value)&&(!d||!d.value)&&(!p||!p.value))return;t.textAlign="center",t.textBaseline="bottom"}var m=!r,g;r&&(g=r,t.translate(-g.x1,-g.y1)),i==null?(s.drawText(t,e,null,m,a),e.isEdge()&&(s.drawText(t,e,"source",m,a),s.drawText(t,e,"target",m,a))):s.drawText(t,e,i,m,a),r&&t.translate(g.x1,g.y1)};Yp.getFontCache=function(t){var e;this.fontCaches=this.fontCaches||[];for(var r=0;r<this.fontCaches.length;r++)if(e=this.fontCaches[r],e.context===t)return e;return e={context:t},this.fontCaches.push(e),e};Yp.setupTextStyle=function(t,e){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,n=e.pstyle("font-style").strValue,i=e.pstyle("font-size").pfValue+"px",a=e.pstyle("font-family").strValue,s=e.pstyle("font-weight").strValue,l=r?e.effectiveOpacity()*e.pstyle("text-opacity").value:1,u=e.pstyle("text-outline-opacity").value*l,h=e.pstyle("color").value,f=e.pstyle("text-outline-color").value;t.font=n+" "+s+" "+i+" "+a,t.lineJoin="round",this.colorFillStyle(t,h[0],h[1],h[2],l),this.colorStrokeStyle(t,f[0],f[1],f[2],u)};o(RP,"roundRect");Yp.getTextAngle=function(t,e){var r,n=t._private,i=n.rscratch,a=e?e+"-":"",s=t.pstyle(a+"text-rotation");if(s.strValue==="autorotate"){var l=Gl(i,"labelAngle",e);r=t.isEdge()?l:0}else s.strValue==="none"?r=0:r=s.pfValue;return r};Yp.drawText=function(t,e,r){var n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,a=e._private,s=a.rscratch,l=i?e.effectiveOpacity():1;if(!(i&&(l===0||e.pstyle("text-opacity").value===0))){r==="main"&&(r=null);var u=Gl(s,"labelX",r),h=Gl(s,"labelY",r),f,d,p=this.getLabelText(e,r);if(p!=null&&p!==""&&!isNaN(u)&&!isNaN(h)){this.setupTextStyle(t,e,i);var m=r?r+"-":"",g=Gl(s,"labelWidth",r),y=Gl(s,"labelHeight",r),v=e.pstyle(m+"text-margin-x").pfValue,x=e.pstyle(m+"text-margin-y").pfValue,b=e.isEdge(),w=e.pstyle("text-halign").value,C=e.pstyle("text-valign").value;b&&(w="center",C="center"),u+=v,h+=x;var T;switch(n?T=this.getTextAngle(e,r):T=0,T!==0&&(f=u,d=h,t.translate(f,d),t.rotate(T),u=0,h=0),C){case"top":break;case"center":h+=y/2;break;case"bottom":h+=y;break}var E=e.pstyle("text-background-opacity").value,A=e.pstyle("text-border-opacity").value,S=e.pstyle("text-border-width").pfValue,_=e.pstyle("text-background-padding").pfValue,I=e.pstyle("text-background-shape").strValue,D=I.indexOf("round")===0,k=2;if(E>0||S>0&&A>0){var L=u-_;switch(w){case"left":L-=g;break;case"center":L-=g/2;break}var R=h-y-_,O=g+2*_,M=y+2*_;if(E>0){var B=t.fillStyle,F=e.pstyle("text-background-color").value;t.fillStyle="rgba("+F[0]+","+F[1]+","+F[2]+","+E*l+")",D?RP(t,L,R,O,M,k):t.fillRect(L,R,O,M),t.fillStyle=B}if(S>0&&A>0){var P=t.strokeStyle,z=t.lineWidth,$=e.pstyle("text-border-color").value,H=e.pstyle("text-border-style").value;if(t.strokeStyle="rgba("+$[0]+","+$[1]+","+$[2]+","+A*l+")",t.lineWidth=S,t.setLineDash)switch(H){case"dotted":t.setLineDash([1,1]);break;case"dashed":t.setLineDash([4,2]);break;case"double":t.lineWidth=S/4,t.setLineDash([]);break;case"solid":t.setLineDash([]);break}if(D?RP(t,L,R,O,M,k,"stroke"):t.strokeRect(L,R,O,M),H==="double"){var Q=S/2;D?RP(t,L+Q,R+Q,O-Q*2,M-Q*2,k,"stroke"):t.strokeRect(L+Q,R+Q,O-Q*2,M-Q*2)}t.setLineDash&&t.setLineDash([]),t.lineWidth=z,t.strokeStyle=P}}var j=2*e.pstyle("text-outline-width").pfValue;if(j>0&&(t.lineWidth=j),e.pstyle("text-wrap").value==="wrap"){var ie=Gl(s,"labelWrapCachedLines",r),ne=Gl(s,"labelLineHeight",r),le=g/2,he=this.getLabelJustification(e);switch(he==="auto"||(w==="left"?he==="left"?u+=-g:he==="center"&&(u+=-le):w==="center"?he==="left"?u+=-le:he==="right"&&(u+=le):w==="right"&&(he==="center"?u+=le:he==="right"&&(u+=g))),C){case"top":h-=(ie.length-1)*ne;break;case"center":case"bottom":h-=(ie.length-1)*ne;break}for(var K=0;K<ie.length;K++)j>0&&t.strokeText(ie[K],u,h),t.fillText(ie[K],u,h),h+=ne}else j>0&&t.strokeText(p,u,h),t.fillText(p,u,h);T!==0&&(t.rotate(-T),t.translate(-f,-d))}}};ly={};ly.drawNode=function(t,e,r){var n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,a=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!0,s=this,l,u,h=e._private,f=h.rscratch,d=e.position();if(!(!Ct(d.x)||!Ct(d.y))&&!(a&&!e.visible())){var p=a?e.effectiveOpacity():1,m=s.usePaths(),g,y=!1,v=e.padding();l=e.width()+2*v,u=e.height()+2*v;var x;r&&(x=r,t.translate(-x.x1,-x.y1));for(var b=e.pstyle("background-image"),w=b.value,C=new Array(w.length),T=new Array(w.length),E=0,A=0;A<w.length;A++){var S=w[A],_=C[A]=S!=null&&S!=="none";if(_){var I=e.cy().style().getIndexedStyle(e,"background-image-crossorigin","value",A);E++,T[A]=s.getCachedImage(S,I,function(){h.backgroundTimestamp=Date.now(),e.emitAndNotify("background")})}}var D=e.pstyle("background-blacken").value,k=e.pstyle("border-width").pfValue,L=e.pstyle("background-opacity").value*p,R=e.pstyle("border-color").value,O=e.pstyle("border-style").value,M=e.pstyle("border-join").value,B=e.pstyle("border-cap").value,F=e.pstyle("border-position").value,P=e.pstyle("border-dash-pattern").pfValue,z=e.pstyle("border-dash-offset").pfValue,$=e.pstyle("border-opacity").value*p,H=e.pstyle("outline-width").pfValue,Q=e.pstyle("outline-color").value,j=e.pstyle("outline-style").value,ie=e.pstyle("outline-opacity").value*p,ne=e.pstyle("outline-offset").value,le=e.pstyle("corner-radius").value;le!=="auto"&&(le=e.pstyle("corner-radius").pfValue);var he=o(function(){var oe=arguments.length>0&&arguments[0]!==void 0?arguments[0]:L;s.eleFillStyle(t,e,oe)},"setupShapeColor"),K=o(function(){var oe=arguments.length>0&&arguments[0]!==void 0?arguments[0]:$;s.colorStrokeStyle(t,R[0],R[1],R[2],oe)},"setupBorderColor"),X=o(function(){var oe=arguments.length>0&&arguments[0]!==void 0?arguments[0]:ie;s.colorStrokeStyle(t,Q[0],Q[1],Q[2],oe)},"setupOutlineColor"),te=o(function(oe,V,xe,q){var pe=s.nodePathCache=s.nodePathCache||[],ve=cme(xe==="polygon"?xe+","+q.join(","):xe,""+V,""+oe,""+le),Pe=pe[ve],_e,we=!1;return Pe!=null?(_e=Pe,we=!0,f.pathCache=_e):(_e=new Path2D,pe[ve]=f.pathCache=_e),{path:_e,cacheHit:we}},"getPath"),J=e.pstyle("shape").strValue,se=e.pstyle("shape-polygon-points").pfValue;if(m){t.translate(d.x,d.y);var ue=te(l,u,J,se);g=ue.path,y=ue.cacheHit}var Z=o(function(){if(!y){var oe=d;m&&(oe={x:0,y:0}),s.nodeShapes[s.getNodeShape(e)].draw(g||t,oe.x,oe.y,l,u,le,f)}m?t.fill(g):t.fill()},"drawShape"),Se=o(function(){for(var oe=arguments.length>0&&arguments[0]!==void 0?arguments[0]:p,V=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,xe=h.backgrounding,q=0,pe=0;pe<T.length;pe++){var ve=e.cy().style().getIndexedStyle(e,"background-image-containment","value",pe);if(V&&ve==="over"||!V&&ve==="inside"){q++;continue}C[pe]&&T[pe].complete&&!T[pe].error&&(q++,s.drawInscribedImage(t,T[pe],e,pe,oe))}h.backgrounding=q!==E,xe!==h.backgrounding&&e.updateStyle(!1)},"drawImages"),ce=o(function(){var oe=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,V=arguments.length>1&&arguments[1]!==void 0?arguments[1]:p;s.hasPie(e)&&(s.drawPie(t,e,V),oe&&(m||s.nodeShapes[s.getNodeShape(e)].draw(t,d.x,d.y,l,u,le,f)))},"drawPie"),ae=o(function(){var oe=arguments.length>0&&arguments[0]!==void 0?arguments[0]:p,V=(D>0?D:-D)*oe,xe=D>0?0:255;D!==0&&(s.colorFillStyle(t,xe,xe,xe,V),m?t.fill(g):t.fill())},"darken"),Oe=o(function(){if(k>0){if(t.lineWidth=k,t.lineCap=B,t.lineJoin=M,t.setLineDash)switch(O){case"dotted":t.setLineDash([1,1]);break;case"dashed":t.setLineDash(P),t.lineDashOffset=z;break;case"solid":case"double":t.setLineDash([]);break}if(F!=="center"){if(t.save(),t.lineWidth*=2,F==="inside")m?t.clip(g):t.clip();else{var oe=new Path2D;oe.rect(-l/2-k,-u/2-k,l+2*k,u+2*k),oe.addPath(g),t.clip(oe,"evenodd")}m?t.stroke(g):t.stroke(),t.restore()}else m?t.stroke(g):t.stroke();if(O==="double"){t.lineWidth=k/3;var V=t.globalCompositeOperation;t.globalCompositeOperation="destination-out",m?t.stroke(g):t.stroke(),t.globalCompositeOperation=V}t.setLineDash&&t.setLineDash([])}},"drawBorder"),ge=o(function(){if(H>0){if(t.lineWidth=H,t.lineCap="butt",t.setLineDash)switch(j){case"dotted":t.setLineDash([1,1]);break;case"dashed":t.setLineDash([4,2]);break;case"solid":case"double":t.setLineDash([]);break}var oe=d;m&&(oe={x:0,y:0});var V=s.getNodeShape(e),xe=k;F==="inside"&&(xe=0),F==="outside"&&(xe*=2);var q=(l+xe+(H+ne))/l,pe=(u+xe+(H+ne))/u,ve=l*q,Pe=u*pe,_e=s.nodeShapes[V].points,we;if(m){var Ve=te(ve,Pe,V,_e);we=Ve.path}if(V==="ellipse")s.drawEllipsePath(we||t,oe.x,oe.y,ve,Pe);else if(["round-diamond","round-heptagon","round-hexagon","round-octagon","round-pentagon","round-polygon","round-triangle","round-tag"].includes(V)){var De=0,qe=0,at=0;V==="round-diamond"?De=(xe+ne+H)*1.4:V==="round-heptagon"?(De=(xe+ne+H)*1.075,at=-(xe/2+ne+H)/35):V==="round-hexagon"?De=(xe+ne+H)*1.12:V==="round-pentagon"?(De=(xe+ne+H)*1.13,at=-(xe/2+ne+H)/15):V==="round-tag"?(De=(xe+ne+H)*1.12,qe=(xe/2+H+ne)*.07):V==="round-triangle"&&(De=(xe+ne+H)*(Math.PI/2),at=-(xe+ne/2+H)/Math.PI),De!==0&&(q=(l+De)/l,ve=l*q,["round-hexagon","round-tag"].includes(V)||(pe=(u+De)/u,Pe=u*pe)),le=le==="auto"?bme(ve,Pe):le;for(var Rt=ve/2,st=Pe/2,Ue=le+(xe+H+ne)/2,ct=new Array(_e.length/2),We=new Array(_e.length/2),ot=0;ot<_e.length/2;ot++)ct[ot]={x:oe.x+qe+Rt*_e[ot*2],y:oe.y+at+st*_e[ot*2+1]};var Yt,bt,Mt,xt,ut=ct.length;for(bt=ct[ut-1],Yt=0;Yt<ut;Yt++)Mt=ct[Yt%ut],xt=ct[(Yt+1)%ut],We[Yt]=vB(bt,Mt,xt,Ue),bt=Mt,Mt=xt;s.drawRoundPolygonPath(we||t,oe.x+qe,oe.y+at,l*q,u*pe,_e,We)}else if(["roundrectangle","round-rectangle"].includes(V))le=le==="auto"?Vp(ve,Pe):le,s.drawRoundRectanglePath(we||t,oe.x,oe.y,ve,Pe,le+(xe+H+ne)/2);else if(["cutrectangle","cut-rectangle"].includes(V))le=le==="auto"?sB():le,s.drawCutRectanglePath(we||t,oe.x,oe.y,ve,Pe,null,le+(xe+H+ne)/4);else if(["bottomroundrectangle","bottom-round-rectangle"].includes(V))le=le==="auto"?Vp(ve,Pe):le,s.drawBottomRoundRectanglePath(we||t,oe.x,oe.y,ve,Pe,le+(xe+H+ne)/2);else if(V==="barrel")s.drawBarrelPath(we||t,oe.x,oe.y,ve,Pe);else if(V.startsWith("polygon")||["rhomboid","right-rhomboid","round-tag","tag","vee"].includes(V)){var Et=(xe+H+ne)/l;_e=wS(TS(_e,Et)),s.drawPolygonPath(we||t,oe.x,oe.y,l,u,_e)}else{var ft=(xe+H+ne)/l;_e=wS(TS(_e,-ft)),s.drawPolygonPath(we||t,oe.x,oe.y,l,u,_e)}if(m?t.stroke(we):t.stroke(),j==="double"){t.lineWidth=xe/3;var yt=t.globalCompositeOperation;t.globalCompositeOperation="destination-out",m?t.stroke(we):t.stroke(),t.globalCompositeOperation=yt}t.setLineDash&&t.setLineDash([])}},"drawOutline"),ze=o(function(){i&&s.drawNodeOverlay(t,e,d,l,u)},"drawOverlay"),He=o(function(){i&&s.drawNodeUnderlay(t,e,d,l,u)},"drawUnderlay"),$e=o(function(){s.drawElementText(t,e,null,n)},"drawText"),Re=e.pstyle("ghost").value==="yes";if(Re){var Ie=e.pstyle("ghost-offset-x").pfValue,be=e.pstyle("ghost-offset-y").pfValue,W=e.pstyle("ghost-opacity").value,de=W*p;t.translate(Ie,be),X(),ge(),he(W*L),Z(),Se(de,!0),K(W*$),Oe(),ce(D!==0||k!==0),Se(de,!1),ae(de),t.translate(-Ie,-be)}m&&t.translate(-d.x,-d.y),He(),m&&t.translate(d.x,d.y),X(),ge(),he(),Z(),Se(p,!0),K(),Oe(),ce(D!==0||k!==0),Se(p,!1),ae(),m&&t.translate(-d.x,-d.y),$e(),ze(),r&&t.translate(x.x1,x.y1)}};Ege=o(function(e){if(!["overlay","underlay"].includes(e))throw new Error("Invalid state");return function(r,n,i,a,s){var l=this;if(n.visible()){var u=n.pstyle("".concat(e,"-padding")).pfValue,h=n.pstyle("".concat(e,"-opacity")).value,f=n.pstyle("".concat(e,"-color")).value,d=n.pstyle("".concat(e,"-shape")).value,p=n.pstyle("".concat(e,"-corner-radius")).value;if(h>0){if(i=i||n.position(),a==null||s==null){var m=n.padding();a=n.width()+2*m,s=n.height()+2*m}l.colorFillStyle(r,f[0],f[1],f[2],h),l.nodeShapes[d].draw(r,i.x,i.y,a+u*2,s+u*2,p),r.fill()}}}},"drawNodeOverlayUnderlay");ly.drawNodeOverlay=Ege("overlay");ly.drawNodeUnderlay=Ege("underlay");ly.hasPie=function(t){return t=t[0],t._private.hasPie};ly.drawPie=function(t,e,r,n){e=e[0],n=n||e.position();var i=e.cy().style(),a=e.pstyle("pie-size"),s=n.x,l=n.y,u=e.width(),h=e.height(),f=Math.min(u,h)/2,d=0,p=this.usePaths();p&&(s=0,l=0),a.units==="%"?f=f*a.pfValue:a.pfValue!==void 0&&(f=a.pfValue/2);for(var m=1;m<=i.pieBackgroundN;m++){var g=e.pstyle("pie-"+m+"-background-size").value,y=e.pstyle("pie-"+m+"-background-color").value,v=e.pstyle("pie-"+m+"-background-opacity").value*r,x=g/100;x+d>1&&(x=1-d);var b=1.5*Math.PI+2*Math.PI*d,w=2*Math.PI*x,C=b+w;g===0||d>=1||d+x>1||(t.beginPath(),t.moveTo(s,l),t.arc(s,l,f,b,C),t.closePath(),this.colorFillStyle(t,y[0],y[1],y[2],v),t.fill(),d+=x)}};ys={},dZe=100;ys.getPixelRatio=function(){var t=this.data.contexts[0];if(this.forcedPixelRatio!=null)return this.forcedPixelRatio;var e=this.cy.window(),r=t.backingStorePixelRatio||t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1;return(e.devicePixelRatio||1)/r};ys.paintCache=function(t){for(var e=this.paintCaches=this.paintCaches||[],r=!0,n,i=0;i<e.length;i++)if(n=e[i],n.context===t){r=!1;break}return r&&(n={context:t},e.push(n)),n};ys.createGradientStyleFor=function(t,e,r,n,i){var a,s=this.usePaths(),l=r.pstyle(e+"-gradient-stop-colors").value,u=r.pstyle(e+"-gradient-stop-positions").pfValue;if(n==="radial-gradient")if(r.isEdge()){var h=r.sourceEndpoint(),f=r.targetEndpoint(),d=r.midpoint(),p=Gp(h,d),m=Gp(f,d);a=t.createRadialGradient(d.x,d.y,0,d.x,d.y,Math.max(p,m))}else{var g=s?{x:0,y:0}:r.position(),y=r.paddedWidth(),v=r.paddedHeight();a=t.createRadialGradient(g.x,g.y,0,g.x,g.y,Math.max(y,v))}else if(r.isEdge()){var x=r.sourceEndpoint(),b=r.targetEndpoint();a=t.createLinearGradient(x.x,x.y,b.x,b.y)}else{var w=s?{x:0,y:0}:r.position(),C=r.paddedWidth(),T=r.paddedHeight(),E=C/2,A=T/2,S=r.pstyle("background-gradient-direction").value;switch(S){case"to-bottom":a=t.createLinearGradient(w.x,w.y-A,w.x,w.y+A);break;case"to-top":a=t.createLinearGradient(w.x,w.y+A,w.x,w.y-A);break;case"to-left":a=t.createLinearGradient(w.x+E,w.y,w.x-E,w.y);break;case"to-right":a=t.createLinearGradient(w.x-E,w.y,w.x+E,w.y);break;case"to-bottom-right":case"to-right-bottom":a=t.createLinearGradient(w.x-E,w.y-A,w.x+E,w.y+A);break;case"to-top-right":case"to-right-top":a=t.createLinearGradient(w.x-E,w.y+A,w.x+E,w.y-A);break;case"to-bottom-left":case"to-left-bottom":a=t.createLinearGradient(w.x+E,w.y-A,w.x-E,w.y+A);break;case"to-top-left":case"to-left-top":a=t.createLinearGradient(w.x+E,w.y+A,w.x-E,w.y-A);break}}if(!a)return null;for(var _=u.length===l.length,I=l.length,D=0;D<I;D++)a.addColorStop(_?u[D]:D/(I-1),"rgba("+l[D][0]+","+l[D][1]+","+l[D][2]+","+i+")");return a};ys.gradientFillStyle=function(t,e,r,n){var i=this.createGradientStyleFor(t,"background",e,r,n);if(!i)return null;t.fillStyle=i};ys.colorFillStyle=function(t,e,r,n,i){t.fillStyle="rgba("+e+","+r+","+n+","+i+")"};ys.eleFillStyle=function(t,e,r){var n=e.pstyle("background-fill").value;if(n==="linear-gradient"||n==="radial-gradient")this.gradientFillStyle(t,e,n,r);else{var i=e.pstyle("background-color").value;this.colorFillStyle(t,i[0],i[1],i[2],r)}};ys.gradientStrokeStyle=function(t,e,r,n){var i=this.createGradientStyleFor(t,"line",e,r,n);if(!i)return null;t.strokeStyle=i};ys.colorStrokeStyle=function(t,e,r,n,i){t.strokeStyle="rgba("+e+","+r+","+n+","+i+")"};ys.eleStrokeStyle=function(t,e,r){var n=e.pstyle("line-fill").value;if(n==="linear-gradient"||n==="radial-gradient")this.gradientStrokeStyle(t,e,n,r);else{var i=e.pstyle("line-color").value;this.colorStrokeStyle(t,i[0],i[1],i[2],r)}};ys.matchCanvasSize=function(t){var e=this,r=e.data,n=e.findContainerClientCoords(),i=n[2],a=n[3],s=e.getPixelRatio(),l=e.motionBlurPxRatio;(t===e.data.bufferCanvases[e.MOTIONBLUR_BUFFER_NODE]||t===e.data.bufferCanvases[e.MOTIONBLUR_BUFFER_DRAG])&&(s=l);var u=i*s,h=a*s,f;if(!(u===e.canvasWidth&&h===e.canvasHeight)){e.fontCaches=null;var d=r.canvasContainer;d.style.width=i+"px",d.style.height=a+"px";for(var p=0;p<e.CANVAS_LAYERS;p++)f=r.canvases[p],f.width=u,f.height=h,f.style.width=i+"px",f.style.height=a+"px";for(var p=0;p<e.BUFFER_COUNT;p++)f=r.bufferCanvases[p],f.width=u,f.height=h,f.style.width=i+"px",f.style.height=a+"px";e.textureMult=1,s<=1&&(f=r.bufferCanvases[e.TEXTURE_BUFFER],e.textureMult=2,f.width=u*e.textureMult,f.height=h*e.textureMult),e.canvasWidth=u,e.canvasHeight=h,e.pixelRatio=s}};ys.renderTo=function(t,e,r,n){this.render({forcedContext:t,forcedZoom:e,forcedPan:r,drawAllLayers:!0,forcedPxRatio:n})};ys.clearCanvas=function(){var t=this,e=t.data;function r(n){n.clearRect(0,0,t.canvasWidth,t.canvasHeight)}o(r,"clear"),r(e.contexts[t.NODE]),r(e.contexts[t.DRAG])};ys.render=function(t){var e=this;t=t||dme();var r=e.cy,n=t.forcedContext,i=t.drawAllLayers,a=t.drawOnlyNodeLayer,s=t.forcedZoom,l=t.forcedPan,u=t.forcedPxRatio===void 0?this.getPixelRatio():t.forcedPxRatio,h=e.data,f=h.canvasNeedsRedraw,d=e.textureOnViewport&&!n&&(e.pinching||e.hoverData.dragging||e.swipePanning||e.data.wheelZooming),p=t.motionBlur!==void 0?t.motionBlur:e.motionBlur,m=e.motionBlurPxRatio,g=r.hasCompoundNodes(),y=e.hoverData.draggingEles,v=!!(e.hoverData.selecting||e.touchData.selecting);p=p&&!n&&e.motionBlurEnabled&&!v;var x=p;n||(e.prevPxRatio!==u&&(e.invalidateContainerClientCoordsCache(),e.matchCanvasSize(e.container),e.redrawHint("eles",!0),e.redrawHint("drag",!0)),e.prevPxRatio=u),!n&&e.motionBlurTimeout&&clearTimeout(e.motionBlurTimeout),p&&(e.mbFrames==null&&(e.mbFrames=0),e.mbFrames++,e.mbFrames<3&&(x=!1),e.mbFrames>e.minMbLowQualFrames&&(e.motionBlurPxRatio=e.mbPxRBlurry)),e.clearingMotionBlur&&(e.motionBlurPxRatio=1),e.textureDrawLastFrame&&!d&&(f[e.NODE]=!0,f[e.SELECT_BOX]=!0);var b=r.style(),w=r.zoom(),C=s!==void 0?s:w,T=r.pan(),E={x:T.x,y:T.y},A={zoom:w,pan:{x:T.x,y:T.y}},S=e.prevViewport,_=S===void 0||A.zoom!==S.zoom||A.pan.x!==S.pan.x||A.pan.y!==S.pan.y;!_&&!(y&&!g)&&(e.motionBlurPxRatio=1),l&&(E=l),C*=u,E.x*=u,E.y*=u;var I=e.getCachedZSortedEles();function D(K,X,te,J,se){var ue=K.globalCompositeOperation;K.globalCompositeOperation="destination-out",e.colorFillStyle(K,255,255,255,e.motionBlurTransparency),K.fillRect(X,te,J,se),K.globalCompositeOperation=ue}o(D,"mbclear");function k(K,X){var te,J,se,ue;!e.clearingMotionBlur&&(K===h.bufferContexts[e.MOTIONBLUR_BUFFER_NODE]||K===h.bufferContexts[e.MOTIONBLUR_BUFFER_DRAG])?(te={x:T.x*m,y:T.y*m},J=w*m,se=e.canvasWidth*m,ue=e.canvasHeight*m):(te=E,J=C,se=e.canvasWidth,ue=e.canvasHeight),K.setTransform(1,0,0,1,0,0),X==="motionBlur"?D(K,0,0,se,ue):!n&&(X===void 0||X)&&K.clearRect(0,0,se,ue),i||(K.translate(te.x,te.y),K.scale(J,J)),l&&K.translate(l.x,l.y),s&&K.scale(s,s)}if(o(k,"setContextTransform"),d||(e.textureDrawLastFrame=!1),d){if(e.textureDrawLastFrame=!0,!e.textureCache){e.textureCache={},e.textureCache.bb=r.mutableElements().boundingBox(),e.textureCache.texture=e.data.bufferCanvases[e.TEXTURE_BUFFER];var L=e.data.bufferContexts[e.TEXTURE_BUFFER];L.setTransform(1,0,0,1,0,0),L.clearRect(0,0,e.canvasWidth*e.textureMult,e.canvasHeight*e.textureMult),e.render({forcedContext:L,drawOnlyNodeLayer:!0,forcedPxRatio:u*e.textureMult});var A=e.textureCache.viewport={zoom:r.zoom(),pan:r.pan(),width:e.canvasWidth,height:e.canvasHeight};A.mpan={x:(0-A.pan.x)/A.zoom,y:(0-A.pan.y)/A.zoom}}f[e.DRAG]=!1,f[e.NODE]=!1;var R=h.contexts[e.NODE],O=e.textureCache.texture,A=e.textureCache.viewport;R.setTransform(1,0,0,1,0,0),p?D(R,0,0,A.width,A.height):R.clearRect(0,0,A.width,A.height);var M=b.core("outside-texture-bg-color").value,B=b.core("outside-texture-bg-opacity").value;e.colorFillStyle(R,M[0],M[1],M[2],B),R.fillRect(0,0,A.width,A.height);var w=r.zoom();k(R,!1),R.clearRect(A.mpan.x,A.mpan.y,A.width/A.zoom/u,A.height/A.zoom/u),R.drawImage(O,A.mpan.x,A.mpan.y,A.width/A.zoom/u,A.height/A.zoom/u)}else e.textureOnViewport&&!n&&(e.textureCache=null);var F=r.extent(),P=e.pinching||e.hoverData.dragging||e.swipePanning||e.data.wheelZooming||e.hoverData.draggingEles||e.cy.animated(),z=e.hideEdgesOnViewport&&P,$=[];if($[e.NODE]=!f[e.NODE]&&p&&!e.clearedForMotionBlur[e.NODE]||e.clearingMotionBlur,$[e.NODE]&&(e.clearedForMotionBlur[e.NODE]=!0),$[e.DRAG]=!f[e.DRAG]&&p&&!e.clearedForMotionBlur[e.DRAG]||e.clearingMotionBlur,$[e.DRAG]&&(e.clearedForMotionBlur[e.DRAG]=!0),f[e.NODE]||i||a||$[e.NODE]){var H=p&&!$[e.NODE]&&m!==1,R=n||(H?e.data.bufferContexts[e.MOTIONBLUR_BUFFER_NODE]:h.contexts[e.NODE]),Q=p&&!H?"motionBlur":void 0;k(R,Q),z?e.drawCachedNodes(R,I.nondrag,u,F):e.drawLayeredElements(R,I.nondrag,u,F),e.debug&&e.drawDebugPoints(R,I.nondrag),!i&&!p&&(f[e.NODE]=!1)}if(!a&&(f[e.DRAG]||i||$[e.DRAG])){var H=p&&!$[e.DRAG]&&m!==1,R=n||(H?e.data.bufferContexts[e.MOTIONBLUR_BUFFER_DRAG]:h.contexts[e.DRAG]);k(R,p&&!H?"motionBlur":void 0),z?e.drawCachedNodes(R,I.drag,u,F):e.drawCachedElements(R,I.drag,u,F),e.debug&&e.drawDebugPoints(R,I.drag),!i&&!p&&(f[e.DRAG]=!1)}if(this.drawSelectionRectangle(t,k),p&&m!==1){var j=h.contexts[e.NODE],ie=e.data.bufferCanvases[e.MOTIONBLUR_BUFFER_NODE],ne=h.contexts[e.DRAG],le=e.data.bufferCanvases[e.MOTIONBLUR_BUFFER_DRAG],he=o(function(X,te,J){X.setTransform(1,0,0,1,0,0),J||!x?X.clearRect(0,0,e.canvasWidth,e.canvasHeight):D(X,0,0,e.canvasWidth,e.canvasHeight);var se=m;X.drawImage(te,0,0,e.canvasWidth*se,e.canvasHeight*se,0,0,e.canvasWidth,e.canvasHeight)},"drawMotionBlur");(f[e.NODE]||$[e.NODE])&&(he(j,ie,$[e.NODE]),f[e.NODE]=!1),(f[e.DRAG]||$[e.DRAG])&&(he(ne,le,$[e.DRAG]),f[e.DRAG]=!1)}e.prevViewport=A,e.clearingMotionBlur&&(e.clearingMotionBlur=!1,e.motionBlurCleared=!0,e.motionBlur=!0),p&&(e.motionBlurTimeout=setTimeout(function(){e.motionBlurTimeout=null,e.clearedForMotionBlur[e.NODE]=!1,e.clearedForMotionBlur[e.DRAG]=!1,e.motionBlur=!1,e.clearingMotionBlur=!d,e.mbFrames=0,f[e.NODE]=!0,f[e.DRAG]=!0,e.redraw()},dZe)),n||r.emit("render")};ys.drawSelectionRectangle=function(t,e){var r=this,n=r.cy,i=r.data,a=n.style(),s=t.drawOnlyNodeLayer,l=t.drawAllLayers,u=i.canvasNeedsRedraw,h=t.forcedContext;if(r.showFps||!s&&u[r.SELECT_BOX]&&!l){var f=h||i.contexts[r.SELECT_BOX];if(e(f),r.selection[4]==1&&(r.hoverData.selecting||r.touchData.selecting)){var d=r.cy.zoom(),p=a.core("selection-box-border-width").value/d;f.lineWidth=p,f.fillStyle="rgba("+a.core("selection-box-color").value[0]+","+a.core("selection-box-color").value[1]+","+a.core("selection-box-color").value[2]+","+a.core("selection-box-opacity").value+")",f.fillRect(r.selection[0],r.selection[1],r.selection[2]-r.selection[0],r.selection[3]-r.selection[1]),p>0&&(f.strokeStyle="rgba("+a.core("selection-box-border-color").value[0]+","+a.core("selection-box-border-color").value[1]+","+a.core("selection-box-border-color").value[2]+","+a.core("selection-box-opacity").value+")",f.strokeRect(r.selection[0],r.selection[1],r.selection[2]-r.selection[0],r.selection[3]-r.selection[1]))}if(i.bgActivePosistion&&!r.hoverData.selecting){var d=r.cy.zoom(),m=i.bgActivePosistion;f.fillStyle="rgba("+a.core("active-bg-color").value[0]+","+a.core("active-bg-color").value[1]+","+a.core("active-bg-color").value[2]+","+a.core("active-bg-opacity").value+")",f.beginPath(),f.arc(m.x,m.y,a.core("active-bg-size").pfValue/d,0,2*Math.PI),f.fill()}var g=r.lastRedrawTime;if(r.showFps&&g){g=Math.round(g);var y=Math.round(1e3/g),v="1 frame = "+g+" ms = "+y+" fps";if(f.setTransform(1,0,0,1,0,0),f.fillStyle="rgba(255, 0, 0, 0.75)",f.strokeStyle="rgba(255, 0, 0, 0.75)",f.font="30px Arial",!Nb){var x=f.measureText(v);Nb=x.actualBoundingBoxAscent}f.fillText(v,0,Nb);var b=60;f.strokeRect(0,Nb+10,250,20),f.fillRect(0,Nb+10,250*Math.min(y/b,1),20)}l||(u[r.SELECT_BOX]=!1)}};o(z0e,"compileShader");o(pZe,"createProgram");o(mZe,"createTextureCanvas");o(wB,"getEffectivePanZoom");o(NP,"modelToRenderedPosition");o(oS,"toWebGLColor");o(lS,"indexToVec4");o(gZe,"vec4ToIndex");o(yZe,"createTexture");o(Sge,"getTypeInfo");o(Cge,"createTypedArray");o(vZe,"createTypedArrayView");o(xZe,"createBufferStaticDraw");o(po,"createBufferDynamicDraw");o(bZe,"createPickingFrameBuffer");G0e=typeof Float32Array<"u"?Float32Array:Array;Math.hypot||(Math.hypot=function(){for(var t=0,e=arguments.length;e--;)t+=arguments[e]*arguments[e];return Math.sqrt(t)});o(Gb,"create");o(Age,"identity");o(wZe,"multiply");o(DS,"translate");o(_ge,"rotate");o(TB,"scale");o(TZe,"projection");Vb={SCREEN:{name:"screen",screen:!0},PICKING:{name:"picking",picking:!0}},Mb=la({getKey:null,drawElement:null,getBoundingBox:null,getRotation:null,getRotationPoint:null,getRotationOffset:null,isVisible:null,getPadding:null}),kZe=function(){function t(e,r){Mf(this,t),this.debugID=Math.floor(Math.random()*1e4),this.r=e,this.atlasSize=r.webglTexSize,this.rows=r.webglTexRows,this.enableWrapping=r.enableWrapping,this.texHeight=Math.floor(this.atlasSize/this.rows),this.maxTexWidth=this.atlasSize,this.texture=null,this.canvas=null,this.needsBuffer=!0,this.freePointer={x:0,row:0},this.keyToLocation=new Map,this.canvas=r.createTextureCanvas(e,this.atlasSize,this.atlasSize),this.scratch=r.createTextureCanvas(e,this.atlasSize,this.texHeight,"scratch")}return o(t,"Atlas"),If(t,[{key:"getKeys",value:o(function(){return new Set(this.keyToLocation.keys())},"getKeys")},{key:"getScale",value:o(function(r){var n=r.w,i=r.h,a=this.texHeight,s=this.maxTexWidth,l=a/i,u=n*l,h=i*l;return u>s&&(l=s/n,u=n*l,h=i*l),{scale:l,texW:u,texH:h}},"getScale")},{key:"draw",value:o(function(r,n,i){var a=this,s=this.atlasSize,l=this.rows,u=this.texHeight,h=this.getScale(n),f=h.scale,d=h.texW,p=h.texH,m=[null,null],g=o(function(w,C){if(i&&C){var T=C.context,E=w.x,A=w.row,S=E,_=u*A;T.save(),T.translate(S,_),T.scale(f,f),i(T,n),T.restore()}},"drawAt"),y=o(function(){g(a.freePointer,a.canvas),m[0]={x:a.freePointer.x,y:a.freePointer.row*u,w:d,h:p},m[1]={x:a.freePointer.x+d,y:a.freePointer.row*u,w:0,h:p},a.freePointer.x+=d,a.freePointer.x==s&&(a.freePointer.x=0,a.freePointer.row++)},"drawNormal"),v=o(function(){var w=a.scratch,C=a.canvas;w.clear(),g({x:0,row:0},w);var T=s-a.freePointer.x,E=d-T,A=u;{var S=a.freePointer.x,_=a.freePointer.row*u,I=T;C.context.drawImage(w,0,0,I,A,S,_,I,A),m[0]={x:S,y:_,w:I,h:p}}{var D=T,k=(a.freePointer.row+1)*u,L=E;C&&C.context.drawImage(w,D,0,L,A,0,k,L,A),m[1]={x:0,y:k,w:L,h:p}}a.freePointer.x=E,a.freePointer.row++},"drawWrapped"),x=o(function(){a.freePointer.x=0,a.freePointer.row++},"moveToStartOfNextRow");if(this.freePointer.x+d<=s)y();else{if(this.freePointer.row>=l-1)return!1;this.freePointer.x===s?(x(),y()):this.enableWrapping?v():(x(),y())}return this.keyToLocation.set(r,m),this.needsBuffer=!0,m},"draw")},{key:"getOffsets",value:o(function(r){return this.keyToLocation.get(r)},"getOffsets")},{key:"isEmpty",value:o(function(){return this.freePointer.x===0&&this.freePointer.row===0},"isEmpty")},{key:"canFit",value:o(function(r){var n=this.atlasSize,i=this.rows,a=this.getScale(r),s=a.texW;return this.freePointer.x+s>n?this.freePointer.row<i-1:!0},"canFit")},{key:"bufferIfNeeded",value:o(function(r){this.texture||(this.texture=yZe(r,this.debugID)),this.needsBuffer&&(this.texture.buffer(this.canvas),this.needsBuffer=!1)},"bufferIfNeeded")},{key:"dispose",value:o(function(){this.texture&&(this.texture.deleteTexture(),this.texture=null,this.needsBuffer=!0)},"dispose")}]),t}(),EZe=function(){function t(e,r){Mf(this,t),this.r=e,this.opts=r,this.keyToIds=new Map,this.idToKey=new Map,this.atlases=[],this.styleKeyToAtlas=new Map,this.styleKeyNeedsRedraw=new Set,this.forceGC=!1}return o(t,"AtlasCollection"),If(t,[{key:"getKeys",value:o(function(){return new Set(this.styleKeyToAtlas.keys())},"getKeys")},{key:"getIdsFor",value:o(function(r){var n=this.keyToIds.get(r);return n||(n=new Set,this.keyToIds.set(r,n)),n},"getIdsFor")},{key:"_createAtlas",value:o(function(){var r=this.r,n=this.opts;return new kZe(r,n)},"_createAtlas")},{key:"_getScratchCanvas",value:o(function(){if(!this.scratch){var r=this.r,n=this.opts,i=n.webglTexSize,a=Math.floor(i/n.webglTexRows);this.scratch=n.createTextureCanvas(r,i,a,"scratch")}return this.scratch},"_getScratchCanvas")},{key:"draw",value:o(function(r,n,i,a){if(this.styleKeyNeedsRedraw.has(n)){this.styleKeyNeedsRedraw.delete(n),this.deleteKey(r,n);var s=this.styleKeyToAtlas.get(n);s&&(s.forceGC=!0),this.styleKeyToAtlas.delete(n)}var l=this.styleKeyToAtlas.get(n);return l||(l=this.atlases[this.atlases.length-1],(!l||!l.canFit(i))&&(l=this._createAtlas(),this.atlases.push(l)),l.draw(n,i,a),this.styleKeyToAtlas.set(n,l),this.getIdsFor(n).add(r),this.idToKey.set(r,n)),l},"draw")},{key:"getAtlas",value:o(function(r){return this.styleKeyToAtlas.get(r)},"getAtlas")},{key:"hasAtlas",value:o(function(r){return this.styleKeyToAtlas.has(r)},"hasAtlas")},{key:"deleteKey",value:o(function(r,n){this.idToKey.delete(r),this.getIdsFor(n).delete(r)},"deleteKey")},{key:"checkKeyIsInvalid",value:o(function(r,n){if(!this.idToKey.has(r))return!1;var i=this.idToKey.get(r);return i!=n?(this.deleteKey(r,i),!0):!1},"checkKeyIsInvalid")},{key:"_getKeysToCollect",value:o(function(){var r=new Set,n=mo(this.styleKeyToAtlas.keys()),i;try{for(n.s();!(i=n.n()).done;){var a=i.value;this.getIdsFor(a).size==0&&r.add(a)}}catch(s){n.e(s)}finally{n.f()}return r},"_getKeysToCollect")},{key:"gc",value:o(function(){var r=this,n=this.atlases.some(function(p){return p.forceGC}),i=this._getKeysToCollect();if(i.size===0&&!n){console.log("nothing to garbage collect");return}var a=[],s=new Map,l=null,u=mo(this.atlases),h;try{var f=o(function(){var m=h.value,g=m.getKeys(),y=SZe(i,g);if(y.size===0&&!m.forceGC)return a.push(m),g.forEach(function(A){return s.set(A,m)}),"continue";l||(l=r._createAtlas(),a.push(l));var v=mo(g),x;try{for(v.s();!(x=v.n()).done;){var b=x.value;if(!y.has(b)){var w=m.getOffsets(b),C=_i(w,2),T=C[0],E=C[1];l.canFit({w:T.w+E.w,h:T.h})||(l=r._createAtlas(),a.push(l)),r._copyTextureToNewAtlas(b,m,l),s.set(b,l)}}}catch(A){v.e(A)}finally{v.f()}},"_loop");for(u.s();!(h=u.n()).done;)var d=f()}catch(p){u.e(p)}finally{u.f()}this.atlases=a,this.styleKeyToAtlas=s},"gc")},{key:"_copyTextureToNewAtlas",value:o(function(r,n,i){var a=n.getOffsets(r),s=_i(a,2),l=s[0],u=s[1];if(u.w===0)i.draw(r,l,function(p){p.drawImage(n.canvas,l.x,l.y,l.w,l.h,0,0,l.w,l.h)});else{var h=this._getScratchCanvas();h.clear(),h.context.drawImage(n.canvas,l.x,l.y,l.w,l.h,0,0,l.w,l.h),h.context.drawImage(n.canvas,u.x,u.y,u.w,u.h,l.w,0,u.w,u.h);var f=l.w+u.w,d=l.h;i.draw(r,{w:f,h:d},function(p){p.drawImage(h,0,0,f,d,0,0,f,d)})}},"_copyTextureToNewAtlas")},{key:"getCounts",value:o(function(){return{keyCount:this.styleKeyToAtlas.size,atlasCount:new Set(this.styleKeyToAtlas.values()).size}},"getCounts")}]),t}();o(SZe,"intersection");CZe=function(){function t(e,r){Mf(this,t),this.r=e;var n=r;this.globalOptions=n,this.maxAtlases=n.webglTexPerBatch,this.atlasSize=n.webglTexSize,this.renderTypes=new Map,this.maxAtlasesPerBatch=r.webglTexPerBatch,this.batchAtlases=[],this._cacheScratchCanvas(n)}return o(t,"AtlasManager"),If(t,[{key:"_cacheScratchCanvas",value:o(function(r){var n=-1,i=-1,a=null,s=r.createTextureCanvas;r.createTextureCanvas=function(l,u,h,f){return f?((!a||u!=n||h!=i)&&(n=u,i=h,a=s(l,u,h)),a):s(l,u,h)}},"_cacheScratchCanvas")},{key:"addRenderType",value:o(function(r,n){var i=new EZe(this.r,this.globalOptions),a=n;this.renderTypes.set(r,rr({type:r,atlasCollection:i},a))},"addRenderType")},{key:"getRenderTypes",value:o(function(){return j0e(this.renderTypes.values())},"getRenderTypes")},{key:"getRenderTypeOpts",value:o(function(r){return this.renderTypes.get(r)},"getRenderTypeOpts")},{key:"invalidate",value:o(function(r){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=n.forceRedraw,a=i===void 0?!1:i,s=n.filterEle,l=s===void 0?function(){return!0}:s,u=n.filterType,h=u===void 0?function(){return!0}:u,f=!1,d=mo(r),p;try{for(d.s();!(p=d.n()).done;){var m=p.value;if(l(m)){var g=m.id(),y=mo(this.getRenderTypes()),v;try{for(y.s();!(v=y.n()).done;){var x=v.value;if(h(x.type)){var b=x.getKey(m);a?(x.atlasCollection.deleteKey(g,b),x.atlasCollection.styleKeyNeedsRedraw.add(b),f=!0):f|=x.atlasCollection.checkKeyIsInvalid(g,b)}}}catch(w){y.e(w)}finally{y.f()}}}}catch(w){d.e(w)}finally{d.f()}return f},"invalidate")},{key:"gc",value:o(function(){var r=mo(this.getRenderTypes()),n;try{for(r.s();!(n=r.n()).done;){var i=n.value;i.atlasCollection.gc()}}catch(a){r.e(a)}finally{r.f()}},"gc")},{key:"isRenderable",value:o(function(r,n){var i=this.getRenderTypeOpts(n);return i&&i.isVisible(r)},"isRenderable")},{key:"startBatch",value:o(function(){this.batchAtlases=[]},"startBatch")},{key:"getAtlasCount",value:o(function(){return this.batchAtlases.length},"getAtlasCount")},{key:"getAtlases",value:o(function(){return this.batchAtlases},"getAtlases")},{key:"getOrCreateAtlas",value:o(function(r,n,i){var a=this.renderTypes.get(i),s=a.getKey(r),l=r.id();return a.atlasCollection.draw(l,s,n,function(u){a.drawElement(u,r,n,!0,!0)})},"getOrCreateAtlas")},{key:"getAtlasIndexForBatch",value:o(function(r){var n=this.batchAtlases.indexOf(r);if(n<0){if(this.batchAtlases.length===this.maxAtlasesPerBatch)return;this.batchAtlases.push(r),n=this.batchAtlases.length-1}return n},"getAtlasIndexForBatch")},{key:"getIndexArray",value:o(function(){return Array.from({length:this.maxAtlases},function(r,n){return n})},"getIndexArray")},{key:"getAtlasInfo",value:o(function(r,n){var i=this.renderTypes.get(n),a=i.getBoundingBox(r),s=this.getOrCreateAtlas(r,a,n),l=this.getAtlasIndexForBatch(s);if(l!==void 0){var u=i.getKey(r),h=s.getOffsets(u),f=_i(h,2),d=f[0],p=f[1];return{atlasID:l,tex:d,tex1:d,tex2:p,bb:a,type:n,styleKey:u}}},"getAtlasInfo")},{key:"canAddToCurrentBatch",value:o(function(r,n){if(this.batchAtlases.length===this.maxAtlasesPerBatch){var i=this.renderTypes.get(n),a=i.getKey(r),s=i.atlasCollection.getAtlas(a);return s&&this.batchAtlases.includes(s)}return!0},"canAddToCurrentBatch")},{key:"setTransformMatrix",value:o(function(r,n,i){var a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,s=n.bb,l=n.type,u=n.tex1,h=n.tex2,f=this.getRenderTypeOpts(l),d=f.getPadding?f.getPadding(i):0,p=u.w/(u.w+h.w);a||(p=1-p);var m=this.getAdjustedBB(s,d,a,p),g,y;Age(r);var v=f.getRotation?f.getRotation(i):0;if(v!==0){var x=f.getRotationPoint(i),b=x.x,w=x.y;DS(r,r,[b,w]),_ge(r,r,v);var C=f.getRotationOffset(i);g=C.x+m.xOffset,y=C.y}else g=m.x1,y=m.y1;DS(r,r,[g,y]),TB(r,r,[m.w,m.h])},"setTransformMatrix")},{key:"getTransformMatrix",value:o(function(r,n){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,a=Gb();return this.setTransformMatrix(a,r,n,i),a},"getTransformMatrix")},{key:"getAdjustedBB",value:o(function(r,n,i,a){var s=r.x1,l=r.y1,u=r.w,h=r.h;n&&(s-=n,l-=n,u+=2*n,h+=2*n);var f=0,d=u*a;return i&&a<1?u=d:!i&&a<1&&(f=u-d,s+=f,u=d),{x1:s,y1:l,w:u,h,xOffset:f}},"getAdjustedBB")},{key:"getDebugInfo",value:o(function(){var r=[],n=mo(this.renderTypes),i;try{for(n.s();!(i=n.n()).done;){var a=_i(i.value,2),s=a[0],l=a[1],u=l.atlasCollection.getCounts(),h=u.keyCount,f=u.atlasCount;r.push({type:s,keyCount:h,atlasCount:f})}}catch(d){n.e(d)}finally{n.f()}return r},"getDebugInfo")}]),t}(),MP=0,V0e=1,U0e=2,IP=3,AZe=function(){function t(e,r,n){Mf(this,t),this.r=e,this.gl=r,this.maxInstances=n.webglBatchSize,this.maxAtlases=n.webglTexPerBatch,this.atlasSize=n.webglTexSize,this.bgColor=n.bgColor,n.enableWrapping=!0,n.createTextureCanvas=mZe,this.atlasManager=new CZe(e,n),this.program=this.createShaderProgram(Vb.SCREEN),this.pickingProgram=this.createShaderProgram(Vb.PICKING),this.vao=this.createVAO(),this.debugInfo=[]}return o(t,"ElementDrawingWebGL"),If(t,[{key:"addTextureRenderType",value:o(function(r,n){this.atlasManager.addRenderType(r,n)},"addTextureRenderType")},{key:"invalidate",value:o(function(r){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=n.type,a=this.atlasManager;return i?a.invalidate(r,{filterType:o(function(l){return l===i},"filterType"),forceRedraw:!0}):a.invalidate(r)},"invalidate")},{key:"gc",value:o(function(){this.atlasManager.gc()},"gc")},{key:"createShaderProgram",value:o(function(r){var n=this.gl,i=`#version 300 es
+      precision highp float;
+
+      uniform mat3 uPanZoomMatrix;
+      uniform int  uAtlasSize;
+      
+      // instanced
+      in vec2 aPosition; 
+
+      // what are we rendering?
+      in int aVertType;
+
+      // for picking
+      in vec4 aIndex;
+      
+      // For textures
+      in int aAtlasId; // which shader unit/atlas to use
+      in vec4 aTex1; // x/y/w/h of texture in atlas
+      in vec4 aTex2; 
+
+      // for any transforms that are needed
+      in vec4 aScaleRotate1;  // vectors use fewer attributes than matrices
+      in vec2 aTranslate1;
+      in vec4 aScaleRotate2;
+      in vec2 aTranslate2;
+
+      // for edges
+      in vec4 aPointAPointB;
+      in vec4 aPointCPointD;
+      in float aLineWidth;
+      in vec4 aEdgeColor;
+
+      out vec2 vTexCoord;
+      out vec4 vEdgeColor;
+      flat out int vAtlasId;
+      flat out vec4 vIndex;
+      flat out int vVertType;
+
+      void main(void) {
+        int vid = gl_VertexID;
+        vec2 position = aPosition;
+
+        if(aVertType == `.concat(MP,`) {
+          float texX;
+          float texY;
+          float texW;
+          float texH;
+          mat3  texMatrix;
+
+          int vid = gl_VertexID;
+          if(vid <= 5) {
+            texX = aTex1.x;
+            texY = aTex1.y;
+            texW = aTex1.z;
+            texH = aTex1.w;
+            texMatrix = mat3(
+              vec3(aScaleRotate1.xy, 0.0),
+              vec3(aScaleRotate2.zw, 0.0),
+              vec3(aTranslate1,      1.0)
+            );
+          } else {
+            texX = aTex2.x;
+            texY = aTex2.y;
+            texW = aTex2.z;
+            texH = aTex2.w;
+            texMatrix = mat3(
+              vec3(aScaleRotate2.xy, 0.0),
+              vec3(aScaleRotate2.zw, 0.0),
+              vec3(aTranslate2,      1.0)
+            );
+          }
+
+          if(vid == 1 || vid == 2 || vid == 4 || vid == 7 || vid == 8 || vid == 10) {
+            texX += texW;
+          }
+          if(vid == 2 || vid == 4 || vid == 5 || vid == 8 || vid == 10 || vid == 11) {
+            texY += texH;
+          }
+
+          float d = float(uAtlasSize);
+          vTexCoord = vec2(texX / d, texY / d); // tex coords must be between 0 and 1
+
+          gl_Position = vec4(uPanZoomMatrix * texMatrix * vec3(position, 1.0), 1.0);
+        } 
+        else if(aVertType == `).concat(V0e,` && vid < 6) {
+          vec2 source = aPointAPointB.xy;
+          vec2 target = aPointAPointB.zw;
+
+          // adjust the geometry so that the line is centered on the edge
+          position.y = position.y - 0.5;
+
+          vec2 xBasis = target - source;
+          vec2 yBasis = normalize(vec2(-xBasis.y, xBasis.x));
+          vec2 point = source + xBasis * position.x + yBasis * aLineWidth * position.y;
+
+          gl_Position = vec4(uPanZoomMatrix * vec3(point, 1.0), 1.0);
+          vEdgeColor = aEdgeColor;
+        } 
+        else if(aVertType == `).concat(U0e,` && vid < 6) {
+          vec2 pointA = aPointAPointB.xy;
+          vec2 pointB = aPointAPointB.zw;
+          vec2 pointC = aPointCPointD.xy;
+          vec2 pointD = aPointCPointD.zw;
+
+          // adjust the geometry so that the line is centered on the edge
+          position.y = position.y - 0.5;
+
+          vec2 p0 = pointA;
+          vec2 p1 = pointB;
+          vec2 p2 = pointC;
+          vec2 pos = position;
+          if(position.x == 1.0) {
+            p0 = pointD;
+            p1 = pointC;
+            p2 = pointB;
+            pos = vec2(0.0, -position.y);
+          }
+
+          vec2 p01 = p1 - p0;
+          vec2 p12 = p2 - p1;
+          vec2 p21 = p1 - p2;
+
+          // Find the normal vector.
+          vec2 tangent = normalize(normalize(p12) + normalize(p01));
+          vec2 normal = vec2(-tangent.y, tangent.x);
+
+          // Find the vector perpendicular to p0 -> p1.
+          vec2 p01Norm = normalize(vec2(-p01.y, p01.x));
+
+          // Determine the bend direction.
+          float sigma = sign(dot(p01 + p21, normal));
+          float width = aLineWidth;
+
+          if(sign(pos.y) == -sigma) {
+            // This is an intersecting vertex. Adjust the position so that there's no overlap.
+            vec2 point = 0.5 * width * normal * -sigma / dot(normal, p01Norm);
+            gl_Position = vec4(uPanZoomMatrix * vec3(p1 + point, 1.0), 1.0);
+          } else {
+            // This is a non-intersecting vertex. Treat it like a mitre join.
+            vec2 point = 0.5 * width * normal * sigma * dot(normal, p01Norm);
+            gl_Position = vec4(uPanZoomMatrix * vec3(p1 + point, 1.0), 1.0);
+          }
+
+          vEdgeColor = aEdgeColor;
+        } 
+        else if(aVertType == `).concat(IP,` && vid < 3) {
+          // massage the first triangle into an edge arrow
+          if(vid == 0)
+            position = vec2(-0.15, -0.3);
+          if(vid == 1)
+            position = vec2( 0.0,   0.0);
+          if(vid == 2)
+            position = vec2( 0.15, -0.3);
+
+          mat3 transform = mat3(
+            vec3(aScaleRotate1.xy, 0.0),
+            vec3(aScaleRotate1.zw, 0.0),
+            vec3(aTranslate1,      1.0)
+          );
+          gl_Position = vec4(uPanZoomMatrix * transform * vec3(position, 1.0), 1.0);
+          vEdgeColor = aEdgeColor;
+        } else {
+          gl_Position = vec4(2.0, 0.0, 0.0, 1.0); // discard vertex by putting it outside webgl clip space
+        }
+
+        vAtlasId = aAtlasId;
+        vIndex = aIndex;
+        vVertType = aVertType;
+      }
+    `),a=this.atlasManager.getIndexArray(),s=`#version 300 es
+      precision highp float;
+
+      // define texture unit for each node in the batch
+      `.concat(a.map(function(h){return"uniform sampler2D uTexture".concat(h,";")}).join(`
+	`),`
+
+      uniform vec4 uBGColor;
+
+      in vec2 vTexCoord;
+      in vec4 vEdgeColor;
+      flat in int vAtlasId;
+      flat in vec4 vIndex;
+      flat in int vVertType;
+
+      out vec4 outColor;
+
+      void main(void) {
+        if(vVertType == `).concat(MP,`) {
+          `).concat(a.map(function(h){return"if(vAtlasId == ".concat(h,") outColor = texture(uTexture").concat(h,", vTexCoord);")}).join(`
+	else `),`
+        } else if(vVertType == `).concat(IP,`) {
+          // blend arrow color with background (using premultiplied alpha)
+          outColor.rgb = vEdgeColor.rgb + (uBGColor.rgb * (1.0 - vEdgeColor.a)); 
+          outColor.a = 1.0; // make opaque, masks out line under arrow
+        } else {
+          outColor = vEdgeColor;
+        }
+
+        `).concat(r.picking?`if(outColor.a == 0.0) discard;
+             else outColor = vIndex;`:"",`
+      }
+    `),l=pZe(n,i,s);l.aPosition=n.getAttribLocation(l,"aPosition"),l.aIndex=n.getAttribLocation(l,"aIndex"),l.aVertType=n.getAttribLocation(l,"aVertType"),l.aAtlasId=n.getAttribLocation(l,"aAtlasId"),l.aTex1=n.getAttribLocation(l,"aTex1"),l.aTex2=n.getAttribLocation(l,"aTex2"),l.aScaleRotate1=n.getAttribLocation(l,"aScaleRotate1"),l.aTranslate1=n.getAttribLocation(l,"aTranslate1"),l.aScaleRotate2=n.getAttribLocation(l,"aScaleRotate2"),l.aTranslate2=n.getAttribLocation(l,"aTranslate2"),l.aPointAPointB=n.getAttribLocation(l,"aPointAPointB"),l.aPointCPointD=n.getAttribLocation(l,"aPointCPointD"),l.aLineWidth=n.getAttribLocation(l,"aLineWidth"),l.aEdgeColor=n.getAttribLocation(l,"aEdgeColor"),l.uPanZoomMatrix=n.getUniformLocation(l,"uPanZoomMatrix"),l.uAtlasSize=n.getUniformLocation(l,"uAtlasSize"),l.uBGColor=n.getUniformLocation(l,"uBGColor"),l.uTextures=[];for(var u=0;u<this.atlasManager.maxAtlases;u++)l.uTextures.push(n.getUniformLocation(l,"uTexture".concat(u)));return l},"createShaderProgram")},{key:"createVAO",value:o(function(){var r=[0,0,1,0,1,1,0,0,1,1,0,1],n=[].concat(r,r);this.vertexCount=n.length/2;var i=this.maxInstances,a=this.gl,s=this.program,l=a.createVertexArray();return a.bindVertexArray(l),xZe(a,"vec2",s.aPosition,n),this.indexBuffer=po(a,i,"vec4",s.aIndex),this.vertTypeBuffer=po(a,i,"int",s.aVertType),this.atlasIdBuffer=po(a,i,"int",s.aAtlasId),this.tex1Buffer=po(a,i,"vec4",s.aTex1),this.tex2Buffer=po(a,i,"vec4",s.aTex2),this.scaleRotate1Buffer=po(a,i,"vec4",s.aScaleRotate1),this.translate1Buffer=po(a,i,"vec2",s.aTranslate1),this.scaleRotate2Buffer=po(a,i,"vec4",s.aScaleRotate2),this.translate2Buffer=po(a,i,"vec2",s.aTranslate2),this.pointAPointBBuffer=po(a,i,"vec4",s.aPointAPointB),this.pointCPointDBuffer=po(a,i,"vec4",s.aPointCPointD),this.lineWidthBuffer=po(a,i,"float",s.aLineWidth),this.edgeColorBuffer=po(a,i,"vec4",s.aEdgeColor),a.bindVertexArray(null),l},"createVAO")},{key:"buffers",get:o(function(){var r=this;return this._buffers||(this._buffers=Object.keys(this).filter(function(n){return n.endsWith("Buffer")}).map(function(n){return r[n]})),this._buffers},"get")},{key:"startFrame",value:o(function(r,n){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:Vb.SCREEN;this.panZoomMatrix=r,this.debugInfo=n,this.renderTarget=i,this.startBatch()},"startFrame")},{key:"startBatch",value:o(function(){this.instanceCount=0,this.atlasManager.startBatch()},"startBatch")},{key:"endFrame",value:o(function(){this.endBatch()},"endFrame")},{key:"getTempMatrix",value:o(function(){return this.tempMatrix=this.tempMatrix||Gb()},"getTempMatrix")},{key:"drawTexture",value:o(function(r,n,i){var a=this.atlasManager;if(a.isRenderable(r,i)){a.canAddToCurrentBatch(r,i)||this.endBatch();var s=this.instanceCount;this.vertTypeBuffer.getView(s)[0]=MP;var l=this.indexBuffer.getView(s);lS(n,l);var u=a.getAtlasInfo(r,i,u),h=u.atlasID,f=u.tex1,d=u.tex2,p=this.atlasIdBuffer.getView(s);p[0]=h;var m=this.tex1Buffer.getView(s);m[0]=f.x,m[1]=f.y,m[2]=f.w,m[3]=f.h;var g=this.tex2Buffer.getView(s);g[0]=d.x,g[1]=d.y,g[2]=d.w,g[3]=d.h;for(var y=this.getTempMatrix(),v=0,x=[1,2];v<x.length;v++){var b=x[v];a.setTransformMatrix(y,u,r,b===1);var w=this["scaleRotate".concat(b,"Buffer")].getView(s);w[0]=y[0],w[1]=y[1],w[2]=y[3],w[3]=y[4];var C=this["translate".concat(b,"Buffer")].getView(s);C[0]=y[6],C[1]=y[7]}this.instanceCount++,this.instanceCount>=this.maxInstances&&this.endBatch()}},"drawTexture")},{key:"drawEdgeArrow",value:o(function(r,n,i){var a=r._private.rscratch,s,l,u;if(i==="source"?(s=a.arrowStartX,l=a.arrowStartY,u=a.srcArrowAngle):(s=a.arrowEndX,l=a.arrowEndY,u=a.tgtArrowAngle),!(isNaN(s)||s==null||isNaN(l)||l==null||isNaN(u)||u==null)){var h=r.pstyle(i+"-arrow-shape").value;if(h!=="none"){var f=r.pstyle(i+"-arrow-color").value,d=r.pstyle("opacity").value,p=r.pstyle("line-opacity").value,m=d*p,g=r.pstyle("width").pfValue,y=r.pstyle("arrow-scale").value,v=this.r.getArrowWidth(g,y),x=this.getTempMatrix();Age(x),DS(x,x,[s,l]),TB(x,x,[v,v]),_ge(x,x,u);var b=this.instanceCount;this.vertTypeBuffer.getView(b)[0]=IP;var w=this.indexBuffer.getView(b);lS(n,w);var C=this.edgeColorBuffer.getView(b);oS(f,m,C);var T=this.scaleRotate1Buffer.getView(b);T[0]=x[0],T[1]=x[1],T[2]=x[3],T[3]=x[4];var E=this.translate1Buffer.getView(b);E[0]=x[6],E[1]=x[7],this.instanceCount++,this.instanceCount>=this.maxInstances&&this.endBatch()}}},"drawEdgeArrow")},{key:"drawEdgeLine",value:o(function(r,n){var i=r.pstyle("opacity").value,a=r.pstyle("line-opacity").value,s=r.pstyle("width").pfValue,l=r.pstyle("line-color").value,u=i*a,h=this.getEdgePoints(r);if(h.length/2+this.instanceCount>this.maxInstances&&this.endBatch(),h.length==4){var f=this.instanceCount;this.vertTypeBuffer.getView(f)[0]=V0e;var d=this.indexBuffer.getView(f);lS(n,d);var p=this.edgeColorBuffer.getView(f);oS(l,u,p);var m=this.lineWidthBuffer.getView(f);m[0]=s;var g=this.pointAPointBBuffer.getView(f);g[0]=h[0],g[1]=h[1],g[2]=h[2],g[3]=h[3],this.instanceCount++,this.instanceCount>=this.maxInstances&&this.endBatch()}else for(var y=0;y<h.length-2;y+=2){var v=this.instanceCount;this.vertTypeBuffer.getView(v)[0]=U0e;var x=this.indexBuffer.getView(v);lS(n,x);var b=this.edgeColorBuffer.getView(v);oS(l,u,b);var w=this.lineWidthBuffer.getView(v);w[0]=s;var C=h[y-2],T=h[y-1],E=h[y],A=h[y+1],S=h[y+2],_=h[y+3],I=h[y+4],D=h[y+5];y==0&&(C=2*E-S+.001,T=2*A-_+.001),y==h.length-4&&(I=2*S-E+.001,D=2*_-A+.001);var k=this.pointAPointBBuffer.getView(v);k[0]=C,k[1]=T,k[2]=E,k[3]=A;var L=this.pointCPointDBuffer.getView(v);L[0]=S,L[1]=_,L[2]=I,L[3]=D,this.instanceCount++,this.instanceCount>=this.maxInstances&&this.endBatch()}},"drawEdgeLine")},{key:"getEdgePoints",value:o(function(r){var n=r._private.rscratch,i=n.allpts;if(i.length==4)return i;var a=this.getNumSegments(r);return this.getCurveSegmentPoints(i,a)},"getEdgePoints")},{key:"getNumSegments",value:o(function(r){var n=15;return Math.min(Math.max(n,5),this.maxInstances)},"getNumSegments")},{key:"getCurveSegmentPoints",value:o(function(r,n){if(r.length==4)return r;for(var i=Array((n+1)*2),a=0;a<=n;a++)if(a==0)i[0]=r[0],i[1]=r[1];else if(a==n)i[a*2]=r[r.length-2],i[a*2+1]=r[r.length-1];else{var s=a/n;this.setCurvePoint(r,s,i,a*2)}return i},"getCurveSegmentPoints")},{key:"setCurvePoint",value:o(function(r,n,i,a){if(r.length<=2)i[a]=r[0],i[a+1]=r[1];else{for(var s=Array(r.length-2),l=0;l<s.length;l+=2){var u=(1-n)*r[l]+n*r[l+2],h=(1-n)*r[l+1]+n*r[l+3];s[l]=u,s[l+1]=h}return this.setCurvePoint(s,n,i,a)}},"setCurvePoint")},{key:"endBatch",value:o(function(){var r=this.gl,n=this.vao,i=this.vertexCount,a=this.instanceCount;if(a!==0){var s=this.renderTarget.picking?this.pickingProgram:this.program;r.useProgram(s),r.bindVertexArray(n);var l=mo(this.buffers),u;try{for(l.s();!(u=l.n()).done;){var h=u.value;h.bufferSubData(a)}}catch(g){l.e(g)}finally{l.f()}for(var f=this.atlasManager.getAtlases(),d=0;d<f.length;d++)f[d].bufferIfNeeded(r);for(var p=0;p<f.length;p++)r.activeTexture(r.TEXTURE0+p),r.bindTexture(r.TEXTURE_2D,f[p].texture),r.uniform1i(s.uTextures[p],p);r.uniformMatrix3fv(s.uPanZoomMatrix,!1,this.panZoomMatrix),r.uniform1i(s.uAtlasSize,this.atlasManager.atlasSize);var m=oS(this.bgColor,1);r.uniform4fv(s.uBGColor,m),r.drawArraysInstanced(r.TRIANGLES,0,i,a),r.bindVertexArray(null),r.bindTexture(r.TEXTURE_2D,null),this.debugInfo&&this.debugInfo.push({count:a,atlasCount:f.length}),this.startBatch()}},"endBatch")},{key:"getDebugInfo",value:o(function(){return this.debugInfo},"getDebugInfo")},{key:"getAtlasDebugInfo",value:o(function(){return this.atlasManager.getDebugInfo()},"getAtlasDebugInfo")}]),t}();o(H0e,"fillStyle");_Ze=function(){function t(e){Mf(this,t),this.r=e}return o(t,"OverlayUnderlayRenderer"),If(t,[{key:"getStyleKey",value:o(function(r,n){var i=this.getStyle(r,n),a=i.shape,s=i.opacity,l=i.color;if(!a)return null;var u=n.width(),h=n.height(),f=H0e(l,s);return _f("".concat(a,"-").concat(u,"-").concat(h,"-").concat(f))},"getStyleKey")},{key:"isVisible",value:o(function(r,n){var i=n.pstyle("".concat(r,"-opacity")).value;return i>0},"isVisible")},{key:"getStyle",value:o(function(r,n){var i=n.pstyle("".concat(r,"-opacity")).value,a=n.pstyle("".concat(r,"-color")).value,s=n.pstyle("".concat(r,"-shape")).value;return{opacity:i,color:a,shape:s}},"getStyle")},{key:"getPadding",value:o(function(r,n){return n.pstyle("".concat(r,"-padding")).pfValue},"getPadding")},{key:"draw",value:o(function(r,n,i,a){if(this.isVisible(r,i)){var s=this.r,l=a.w,u=a.h,h=l/2,f=u/2,d=this.getStyle(r,i),p=d.shape,m=d.color,g=d.opacity;n.save(),n.fillStyle=H0e(m,g),p==="round-rectangle"||p==="roundrectangle"?s.drawRoundRectanglePath(n,h,f,l,u,"auto"):p==="ellipse"&&s.drawEllipsePath(n,h,f,l,u),n.fill(),n.restore()}},"draw")}]),t}();o(DZe,"getBGColor");Dge={};Dge.initWebgl=function(t,e){var r=this,n=r.data.contexts[r.WEBGL],i=t.cy.container();t.bgColor=DZe(i),t.webglTexSize=Math.min(t.webglTexSize,n.getParameter(n.MAX_TEXTURE_SIZE)),t.webglTexRows=Math.min(t.webglTexRows,54),t.webglBatchSize=Math.min(t.webglBatchSize,16384),t.webglTexPerBatch=Math.min(t.webglTexPerBatch,n.getParameter(n.MAX_TEXTURE_IMAGE_UNITS)),r.webglDebug=t.webglDebug,r.webglDebugShowAtlases=t.webglDebugShowAtlases,console.log("max texture units",n.getParameter(n.MAX_TEXTURE_IMAGE_UNITS)),console.log("max texture size",n.getParameter(n.MAX_TEXTURE_SIZE)),console.log("webgl options",t),r.pickingFrameBuffer=bZe(n),r.pickingFrameBuffer.needsDraw=!0;var a=o(function(f){return r.getTextAngle(f,null)},"getLabelRotation"),s=o(function(f){var d=f.pstyle("label");return d&&d.value},"isLabelVisible");r.eleDrawing=new AZe(r,n,t);var l=new _Ze(r);r.eleDrawing.addTextureRenderType("node-body",Mb({getKey:e.getStyleKey,getBoundingBox:e.getElementBox,drawElement:e.drawElement,isVisible:o(function(f){return f.visible()},"isVisible")})),r.eleDrawing.addTextureRenderType("node-label",Mb({getKey:e.getLabelKey,getBoundingBox:e.getLabelBox,drawElement:e.drawLabel,getRotation:a,getRotationPoint:e.getLabelRotationPoint,getRotationOffset:e.getLabelRotationOffset,isVisible:s})),r.eleDrawing.addTextureRenderType("node-overlay",Mb({getBoundingBox:e.getElementBox,getKey:o(function(f){return l.getStyleKey("overlay",f)},"getKey"),drawElement:o(function(f,d,p){return l.draw("overlay",f,d,p)},"drawElement"),isVisible:o(function(f){return l.isVisible("overlay",f)},"isVisible"),getPadding:o(function(f){return l.getPadding("overlay",f)},"getPadding")})),r.eleDrawing.addTextureRenderType("node-underlay",Mb({getBoundingBox:e.getElementBox,getKey:o(function(f){return l.getStyleKey("underlay",f)},"getKey"),drawElement:o(function(f,d,p){return l.draw("underlay",f,d,p)},"drawElement"),isVisible:o(function(f){return l.isVisible("underlay",f)},"isVisible"),getPadding:o(function(f){return l.getPadding("underlay",f)},"getPadding")})),r.eleDrawing.addTextureRenderType("edge-label",Mb({getKey:e.getLabelKey,getBoundingBox:e.getLabelBox,drawElement:e.drawLabel,getRotation:a,getRotationPoint:e.getLabelRotationPoint,getRotationOffset:e.getLabelRotationOffset,isVisible:s}));var u=n4(function(){console.log("garbage collect flag set"),r.data.gc=!0},1e4);r.onUpdateEleCalcs(function(h,f){var d=!1;f&&f.length>0&&(d|=r.eleDrawing.invalidate(f)),d&&u()}),LZe(r)};o(LZe,"overrideCanvasRendererFunctions");o(RZe,"clearWebgl");o(NZe,"clearCanvas");o(MZe,"createPanZoomMatrix");o(Lge,"setContextTransform");o(IZe,"drawSelectionRectangle");o(OZe,"drawAxes");o(PZe,"drawAtlases");o(BZe,"getPickingIndexes");o(FZe,"findNearestElementsWebgl");o(Rge,"renderWebgl");Pf={};Pf.drawPolygonPath=function(t,e,r,n,i,a){var s=n/2,l=i/2;t.beginPath&&t.beginPath(),t.moveTo(e+s*a[0],r+l*a[1]);for(var u=1;u<a.length/2;u++)t.lineTo(e+s*a[u*2],r+l*a[u*2+1]);t.closePath()};Pf.drawRoundPolygonPath=function(t,e,r,n,i,a,s){s.forEach(function(l){return hge(t,l)}),t.closePath()};Pf.drawRoundRectanglePath=function(t,e,r,n,i,a){var s=n/2,l=i/2,u=a==="auto"?Vp(n,i):Math.min(a,l,s);t.beginPath&&t.beginPath(),t.moveTo(e,r-l),t.arcTo(e+s,r-l,e+s,r,u),t.arcTo(e+s,r+l,e,r+l,u),t.arcTo(e-s,r+l,e-s,r,u),t.arcTo(e-s,r-l,e,r-l,u),t.lineTo(e,r-l),t.closePath()};Pf.drawBottomRoundRectanglePath=function(t,e,r,n,i,a){var s=n/2,l=i/2,u=a==="auto"?Vp(n,i):a;t.beginPath&&t.beginPath(),t.moveTo(e,r-l),t.lineTo(e+s,r-l),t.lineTo(e+s,r),t.arcTo(e+s,r+l,e,r+l,u),t.arcTo(e-s,r+l,e-s,r,u),t.lineTo(e-s,r-l),t.lineTo(e,r-l),t.closePath()};Pf.drawCutRectanglePath=function(t,e,r,n,i,a,s){var l=n/2,u=i/2,h=s==="auto"?sB():s;t.beginPath&&t.beginPath(),t.moveTo(e-l+h,r-u),t.lineTo(e+l-h,r-u),t.lineTo(e+l,r-u+h),t.lineTo(e+l,r+u-h),t.lineTo(e+l-h,r+u),t.lineTo(e-l+h,r+u),t.lineTo(e-l,r+u-h),t.lineTo(e-l,r-u+h),t.closePath()};Pf.drawBarrelPath=function(t,e,r,n,i){var a=n/2,s=i/2,l=e-a,u=e+a,h=r-s,f=r+s,d=BP(n,i),p=d.widthOffset,m=d.heightOffset,g=d.ctrlPtOffsetPct*p;t.beginPath&&t.beginPath(),t.moveTo(l,h+m),t.lineTo(l,f-m),t.quadraticCurveTo(l+g,f,l+p,f),t.lineTo(u-p,f),t.quadraticCurveTo(u-g,f,u,f-m),t.lineTo(u,h+m),t.quadraticCurveTo(u-g,h,u-p,h),t.lineTo(l+p,h),t.quadraticCurveTo(l+g,h,l,h+m),t.closePath()};W0e=Math.sin(0),q0e=Math.cos(0),jP={},KP={},Nge=Math.PI/40;for(Ip=0*Math.PI;Ip<2*Math.PI;Ip+=Nge)jP[Ip]=Math.sin(Ip),KP[Ip]=Math.cos(Ip);Pf.drawEllipsePath=function(t,e,r,n,i){if(t.beginPath&&t.beginPath(),t.ellipse)t.ellipse(e,r,n/2,i/2,0,0,2*Math.PI);else for(var a,s,l=n/2,u=i/2,h=0*Math.PI;h<2*Math.PI;h+=Nge)a=e-l*jP[h]*W0e+l*KP[h]*q0e,s=r+u*KP[h]*W0e+u*jP[h]*q0e,h===0?t.moveTo(a,s):t.lineTo(a,s);t.closePath()};c4={};c4.createBuffer=function(t,e){var r=document.createElement("canvas");return r.width=t,r.height=e,[r,r.getContext("2d")]};c4.bufferCanvasImage=function(t){var e=this.cy,r=e.mutableElements(),n=r.boundingBox(),i=this.findContainerClientCoords(),a=t.full?Math.ceil(n.w):i[2],s=t.full?Math.ceil(n.h):i[3],l=Ct(t.maxWidth)||Ct(t.maxHeight),u=this.getPixelRatio(),h=1;if(t.scale!==void 0)a*=t.scale,s*=t.scale,h=t.scale;else if(l){var f=1/0,d=1/0;Ct(t.maxWidth)&&(f=h*t.maxWidth/a),Ct(t.maxHeight)&&(d=h*t.maxHeight/s),h=Math.min(f,d),a*=h,s*=h}l||(a*=u,s*=u,h*=u);var p=document.createElement("canvas");p.width=a,p.height=s,p.style.width=a+"px",p.style.height=s+"px";var m=p.getContext("2d");if(a>0&&s>0){m.clearRect(0,0,a,s),m.globalCompositeOperation="source-over";var g=this.getCachedZSortedEles();if(t.full)m.translate(-n.x1*h,-n.y1*h),m.scale(h,h),this.drawElements(m,g),m.scale(1/h,1/h),m.translate(n.x1*h,n.y1*h);else{var y=e.pan(),v={x:y.x*h,y:y.y*h};h*=e.zoom(),m.translate(v.x,v.y),m.scale(h,h),this.drawElements(m,g),m.scale(1/h,1/h),m.translate(-v.x,-v.y)}t.bg&&(m.globalCompositeOperation="destination-over",m.fillStyle=t.bg,m.rect(0,0,a,s),m.fill())}return p};o($Ze,"b64ToBlob");o(Y0e,"b64UriToB64");o(Mge,"output");c4.png=function(t){return Mge(t,this.bufferCanvasImage(t),"image/png")};c4.jpg=function(t){return Mge(t,this.bufferCanvasImage(t),"image/jpeg")};Ige={};Ige.nodeShapeImpl=function(t,e,r,n,i,a,s,l){switch(t){case"ellipse":return this.drawEllipsePath(e,r,n,i,a);case"polygon":return this.drawPolygonPath(e,r,n,i,a,s);case"round-polygon":return this.drawRoundPolygonPath(e,r,n,i,a,s,l);case"roundrectangle":case"round-rectangle":return this.drawRoundRectanglePath(e,r,n,i,a,l);case"cutrectangle":case"cut-rectangle":return this.drawCutRectanglePath(e,r,n,i,a,s,l);case"bottomroundrectangle":case"bottom-round-rectangle":return this.drawBottomRoundRectanglePath(e,r,n,i,a,l);case"barrel":return this.drawBarrelPath(e,r,n,i,a)}};zZe=Oge,Er=Oge.prototype;Er.CANVAS_LAYERS=3;Er.SELECT_BOX=0;Er.DRAG=1;Er.NODE=2;Er.WEBGL=3;Er.CANVAS_TYPES=["2d","2d","2d","webgl2"];Er.BUFFER_COUNT=3;Er.TEXTURE_BUFFER=0;Er.MOTIONBLUR_BUFFER_NODE=1;Er.MOTIONBLUR_BUFFER_DRAG=2;o(Oge,"CanvasRenderer");Er.redrawHint=function(t,e){var r=this;switch(t){case"eles":r.data.canvasNeedsRedraw[Er.NODE]=e;break;case"drag":r.data.canvasNeedsRedraw[Er.DRAG]=e;break;case"select":r.data.canvasNeedsRedraw[Er.SELECT_BOX]=e;break;case"gc":r.data.gc=!0;break}};GZe=typeof Path2D<"u";Er.path2dEnabled=function(t){if(t===void 0)return this.pathsEnabled;this.pathsEnabled=!!t};Er.usePaths=function(){return GZe&&this.pathsEnabled};Er.setImgSmoothing=function(t,e){t.imageSmoothingEnabled!=null?t.imageSmoothingEnabled=e:(t.webkitImageSmoothingEnabled=e,t.mozImageSmoothingEnabled=e,t.msImageSmoothingEnabled=e)};Er.getImgSmoothing=function(t){return t.imageSmoothingEnabled!=null?t.imageSmoothingEnabled:t.webkitImageSmoothingEnabled||t.mozImageSmoothingEnabled||t.msImageSmoothingEnabled};Er.makeOffscreenCanvas=function(t,e){var r;if((typeof OffscreenCanvas>"u"?"undefined":Wi(OffscreenCanvas))!=="undefined")r=new OffscreenCanvas(t,e);else{var n=this.cy.window(),i=n.document;r=i.createElement("canvas"),r.width=t,r.height=e}return r};[Tge,Qc,th,bB,Yp,ly,ys,Dge,Pf,c4,Ige].forEach(function(t){rr(Er,t)});VZe=[{name:"null",impl:lge},{name:"base",impl:vge},{name:"canvas",impl:zZe}],UZe=[{type:"layout",extensions:SQe},{type:"renderer",extensions:VZe}],Pge={},Bge={};o(Fge,"setExtension");o($ge,"getExtension");o(HZe,"setModule");o(WZe,"getModule");QP=o(function(){if(arguments.length===2)return $ge.apply(null,arguments);if(arguments.length===3)return Fge.apply(null,arguments);if(arguments.length===4)return WZe.apply(null,arguments);if(arguments.length===5)return HZe.apply(null,arguments);ai("Invalid extension access syntax")},"extension");Jb.prototype.extension=QP;UZe.forEach(function(t){t.extensions.forEach(function(e){Fge(t.type,e.name,e.impl)})});zge=o(function t(){if(!(this instanceof t))return new t;this.length=0},"Stylesheet"),Wp=zge.prototype;Wp.instanceString=function(){return"stylesheet"};Wp.selector=function(t){var e=this.length++;return this[e]={selector:t,properties:[]},this};Wp.css=function(t,e){var r=this.length-1;if(Zt(t))this[r].properties.push({name:t,value:e});else if(Ur(t))for(var n=t,i=Object.keys(n),a=0;a<i.length;a++){var s=i[a],l=n[s];if(l!=null){var u=Fa.properties[s]||Fa.properties[LS(s)];if(u!=null){var h=u.name,f=l;this[r].properties.push({name:h,value:f})}}}return this};Wp.style=Wp.css;Wp.generateStyle=function(t){var e=new Fa(t);return this.appendToStyle(e)};Wp.appendToStyle=function(t){for(var e=0;e<this.length;e++){var r=this[e],n=r.selector,i=r.properties;t.selector(n);for(var a=0;a<i.length;a++){var s=i[a];t.css(s.name,s.value)}}return t};qZe="3.31.0",rl=o(function(e){if(e===void 0&&(e={}),Ur(e))return new Jb(e);if(Zt(e))return QP.apply(QP,arguments)},"cytoscape");rl.use=function(t){var e=Array.prototype.slice.call(arguments,1);return e.unshift(rl),t.apply(null,e),this};rl.warnings=function(t){return hme(t)};rl.version=qZe;rl.stylesheet=rl.Stylesheet=zge});var SB=Mi((u4,EB)=>{"use strict";o(function(e,r){typeof u4=="object"&&typeof EB=="object"?EB.exports=r():typeof define=="function"&&define.amd?define([],r):typeof u4=="object"?u4.layoutBase=r():e.layoutBase=r()},"webpackUniversalModuleDefinition")(u4,function(){return function(t){var e={};function r(n){if(e[n])return e[n].exports;var i=e[n]={i:n,l:!1,exports:{}};return t[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return o(r,"__webpack_require__"),r.m=t,r.c=e,r.i=function(n){return n},r.d=function(n,i,a){r.o(n,i)||Object.defineProperty(n,i,{configurable:!1,enumerable:!0,get:a})},r.n=function(n){var i=n&&n.__esModule?o(function(){return n.default},"getDefault"):o(function(){return n},"getModuleExports");return r.d(i,"a",i),i},r.o=function(n,i){return Object.prototype.hasOwnProperty.call(n,i)},r.p="",r(r.s=26)}([function(t,e,r){"use strict";function n(){}o(n,"LayoutConstants"),n.QUALITY=1,n.DEFAULT_CREATE_BENDS_AS_NEEDED=!1,n.DEFAULT_INCREMENTAL=!1,n.DEFAULT_ANIMATION_ON_LAYOUT=!0,n.DEFAULT_ANIMATION_DURING_LAYOUT=!1,n.DEFAULT_ANIMATION_PERIOD=50,n.DEFAULT_UNIFORM_LEAF_NODE_SIZES=!1,n.DEFAULT_GRAPH_MARGIN=15,n.NODE_DIMENSIONS_INCLUDE_LABELS=!1,n.SIMPLE_NODE_SIZE=40,n.SIMPLE_NODE_HALF_SIZE=n.SIMPLE_NODE_SIZE/2,n.EMPTY_COMPOUND_NODE_SIZE=40,n.MIN_EDGE_LENGTH=1,n.WORLD_BOUNDARY=1e6,n.INITIAL_WORLD_BOUNDARY=n.WORLD_BOUNDARY/1e3,n.WORLD_CENTER_X=1200,n.WORLD_CENTER_Y=900,t.exports=n},function(t,e,r){"use strict";var n=r(2),i=r(8),a=r(9);function s(u,h,f){n.call(this,f),this.isOverlapingSourceAndTarget=!1,this.vGraphObject=f,this.bendpoints=[],this.source=u,this.target=h}o(s,"LEdge"),s.prototype=Object.create(n.prototype);for(var l in n)s[l]=n[l];s.prototype.getSource=function(){return this.source},s.prototype.getTarget=function(){return this.target},s.prototype.isInterGraph=function(){return this.isInterGraph},s.prototype.getLength=function(){return this.length},s.prototype.isOverlapingSourceAndTarget=function(){return this.isOverlapingSourceAndTarget},s.prototype.getBendpoints=function(){return this.bendpoints},s.prototype.getLca=function(){return this.lca},s.prototype.getSourceInLca=function(){return this.sourceInLca},s.prototype.getTargetInLca=function(){return this.targetInLca},s.prototype.getOtherEnd=function(u){if(this.source===u)return this.target;if(this.target===u)return this.source;throw"Node is not incident with this edge"},s.prototype.getOtherEndInGraph=function(u,h){for(var f=this.getOtherEnd(u),d=h.getGraphManager().getRoot();;){if(f.getOwner()==h)return f;if(f.getOwner()==d)break;f=f.getOwner().getParent()}return null},s.prototype.updateLength=function(){var u=new Array(4);this.isOverlapingSourceAndTarget=i.getIntersection(this.target.getRect(),this.source.getRect(),u),this.isOverlapingSourceAndTarget||(this.lengthX=u[0]-u[2],this.lengthY=u[1]-u[3],Math.abs(this.lengthX)<1&&(this.lengthX=a.sign(this.lengthX)),Math.abs(this.lengthY)<1&&(this.lengthY=a.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY))},s.prototype.updateLengthSimple=function(){this.lengthX=this.target.getCenterX()-this.source.getCenterX(),this.lengthY=this.target.getCenterY()-this.source.getCenterY(),Math.abs(this.lengthX)<1&&(this.lengthX=a.sign(this.lengthX)),Math.abs(this.lengthY)<1&&(this.lengthY=a.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY)},t.exports=s},function(t,e,r){"use strict";function n(i){this.vGraphObject=i}o(n,"LGraphObject"),t.exports=n},function(t,e,r){"use strict";var n=r(2),i=r(10),a=r(13),s=r(0),l=r(16),u=r(4);function h(d,p,m,g){m==null&&g==null&&(g=p),n.call(this,g),d.graphManager!=null&&(d=d.graphManager),this.estimatedSize=i.MIN_VALUE,this.inclusionTreeDepth=i.MAX_VALUE,this.vGraphObject=g,this.edges=[],this.graphManager=d,m!=null&&p!=null?this.rect=new a(p.x,p.y,m.width,m.height):this.rect=new a}o(h,"LNode"),h.prototype=Object.create(n.prototype);for(var f in n)h[f]=n[f];h.prototype.getEdges=function(){return this.edges},h.prototype.getChild=function(){return this.child},h.prototype.getOwner=function(){return this.owner},h.prototype.getWidth=function(){return this.rect.width},h.prototype.setWidth=function(d){this.rect.width=d},h.prototype.getHeight=function(){return this.rect.height},h.prototype.setHeight=function(d){this.rect.height=d},h.prototype.getCenterX=function(){return this.rect.x+this.rect.width/2},h.prototype.getCenterY=function(){return this.rect.y+this.rect.height/2},h.prototype.getCenter=function(){return new u(this.rect.x+this.rect.width/2,this.rect.y+this.rect.height/2)},h.prototype.getLocation=function(){return new u(this.rect.x,this.rect.y)},h.prototype.getRect=function(){return this.rect},h.prototype.getDiagonal=function(){return Math.sqrt(this.rect.width*this.rect.width+this.rect.height*this.rect.height)},h.prototype.getHalfTheDiagonal=function(){return Math.sqrt(this.rect.height*this.rect.height+this.rect.width*this.rect.width)/2},h.prototype.setRect=function(d,p){this.rect.x=d.x,this.rect.y=d.y,this.rect.width=p.width,this.rect.height=p.height},h.prototype.setCenter=function(d,p){this.rect.x=d-this.rect.width/2,this.rect.y=p-this.rect.height/2},h.prototype.setLocation=function(d,p){this.rect.x=d,this.rect.y=p},h.prototype.moveBy=function(d,p){this.rect.x+=d,this.rect.y+=p},h.prototype.getEdgeListToNode=function(d){var p=[],m,g=this;return g.edges.forEach(function(y){if(y.target==d){if(y.source!=g)throw"Incorrect edge source!";p.push(y)}}),p},h.prototype.getEdgesBetween=function(d){var p=[],m,g=this;return g.edges.forEach(function(y){if(!(y.source==g||y.target==g))throw"Incorrect edge source and/or target";(y.target==d||y.source==d)&&p.push(y)}),p},h.prototype.getNeighborsList=function(){var d=new Set,p=this;return p.edges.forEach(function(m){if(m.source==p)d.add(m.target);else{if(m.target!=p)throw"Incorrect incidency!";d.add(m.source)}}),d},h.prototype.withChildren=function(){var d=new Set,p,m;if(d.add(this),this.child!=null)for(var g=this.child.getNodes(),y=0;y<g.length;y++)p=g[y],m=p.withChildren(),m.forEach(function(v){d.add(v)});return d},h.prototype.getNoOfChildren=function(){var d=0,p;if(this.child==null)d=1;else for(var m=this.child.getNodes(),g=0;g<m.length;g++)p=m[g],d+=p.getNoOfChildren();return d==0&&(d=1),d},h.prototype.getEstimatedSize=function(){if(this.estimatedSize==i.MIN_VALUE)throw"assert failed";return this.estimatedSize},h.prototype.calcEstimatedSize=function(){return this.child==null?this.estimatedSize=(this.rect.width+this.rect.height)/2:(this.estimatedSize=this.child.calcEstimatedSize(),this.rect.width=this.estimatedSize,this.rect.height=this.estimatedSize,this.estimatedSize)},h.prototype.scatter=function(){var d,p,m=-s.INITIAL_WORLD_BOUNDARY,g=s.INITIAL_WORLD_BOUNDARY;d=s.WORLD_CENTER_X+l.nextDouble()*(g-m)+m;var y=-s.INITIAL_WORLD_BOUNDARY,v=s.INITIAL_WORLD_BOUNDARY;p=s.WORLD_CENTER_Y+l.nextDouble()*(v-y)+y,this.rect.x=d,this.rect.y=p},h.prototype.updateBounds=function(){if(this.getChild()==null)throw"assert failed";if(this.getChild().getNodes().length!=0){var d=this.getChild();if(d.updateBounds(!0),this.rect.x=d.getLeft(),this.rect.y=d.getTop(),this.setWidth(d.getRight()-d.getLeft()),this.setHeight(d.getBottom()-d.getTop()),s.NODE_DIMENSIONS_INCLUDE_LABELS){var p=d.getRight()-d.getLeft(),m=d.getBottom()-d.getTop();this.labelWidth>p&&(this.rect.x-=(this.labelWidth-p)/2,this.setWidth(this.labelWidth)),this.labelHeight>m&&(this.labelPos=="center"?this.rect.y-=(this.labelHeight-m)/2:this.labelPos=="top"&&(this.rect.y-=this.labelHeight-m),this.setHeight(this.labelHeight))}}},h.prototype.getInclusionTreeDepth=function(){if(this.inclusionTreeDepth==i.MAX_VALUE)throw"assert failed";return this.inclusionTreeDepth},h.prototype.transform=function(d){var p=this.rect.x;p>s.WORLD_BOUNDARY?p=s.WORLD_BOUNDARY:p<-s.WORLD_BOUNDARY&&(p=-s.WORLD_BOUNDARY);var m=this.rect.y;m>s.WORLD_BOUNDARY?m=s.WORLD_BOUNDARY:m<-s.WORLD_BOUNDARY&&(m=-s.WORLD_BOUNDARY);var g=new u(p,m),y=d.inverseTransformPoint(g);this.setLocation(y.x,y.y)},h.prototype.getLeft=function(){return this.rect.x},h.prototype.getRight=function(){return this.rect.x+this.rect.width},h.prototype.getTop=function(){return this.rect.y},h.prototype.getBottom=function(){return this.rect.y+this.rect.height},h.prototype.getParent=function(){return this.owner==null?null:this.owner.getParent()},t.exports=h},function(t,e,r){"use strict";function n(i,a){i==null&&a==null?(this.x=0,this.y=0):(this.x=i,this.y=a)}o(n,"PointD"),n.prototype.getX=function(){return this.x},n.prototype.getY=function(){return this.y},n.prototype.setX=function(i){this.x=i},n.prototype.setY=function(i){this.y=i},n.prototype.getDifference=function(i){return new DimensionD(this.x-i.x,this.y-i.y)},n.prototype.getCopy=function(){return new n(this.x,this.y)},n.prototype.translate=function(i){return this.x+=i.width,this.y+=i.height,this},t.exports=n},function(t,e,r){"use strict";var n=r(2),i=r(10),a=r(0),s=r(6),l=r(3),u=r(1),h=r(13),f=r(12),d=r(11);function p(g,y,v){n.call(this,v),this.estimatedSize=i.MIN_VALUE,this.margin=a.DEFAULT_GRAPH_MARGIN,this.edges=[],this.nodes=[],this.isConnected=!1,this.parent=g,y!=null&&y instanceof s?this.graphManager=y:y!=null&&y instanceof Layout&&(this.graphManager=y.graphManager)}o(p,"LGraph"),p.prototype=Object.create(n.prototype);for(var m in n)p[m]=n[m];p.prototype.getNodes=function(){return this.nodes},p.prototype.getEdges=function(){return this.edges},p.prototype.getGraphManager=function(){return this.graphManager},p.prototype.getParent=function(){return this.parent},p.prototype.getLeft=function(){return this.left},p.prototype.getRight=function(){return this.right},p.prototype.getTop=function(){return this.top},p.prototype.getBottom=function(){return this.bottom},p.prototype.isConnected=function(){return this.isConnected},p.prototype.add=function(g,y,v){if(y==null&&v==null){var x=g;if(this.graphManager==null)throw"Graph has no graph mgr!";if(this.getNodes().indexOf(x)>-1)throw"Node already in graph!";return x.owner=this,this.getNodes().push(x),x}else{var b=g;if(!(this.getNodes().indexOf(y)>-1&&this.getNodes().indexOf(v)>-1))throw"Source or target not in graph!";if(!(y.owner==v.owner&&y.owner==this))throw"Both owners must be this graph!";return y.owner!=v.owner?null:(b.source=y,b.target=v,b.isInterGraph=!1,this.getEdges().push(b),y.edges.push(b),v!=y&&v.edges.push(b),b)}},p.prototype.remove=function(g){var y=g;if(g instanceof l){if(y==null)throw"Node is null!";if(!(y.owner!=null&&y.owner==this))throw"Owner graph is invalid!";if(this.graphManager==null)throw"Owner graph manager is invalid!";for(var v=y.edges.slice(),x,b=v.length,w=0;w<b;w++)x=v[w],x.isInterGraph?this.graphManager.remove(x):x.source.owner.remove(x);var C=this.nodes.indexOf(y);if(C==-1)throw"Node not in owner node list!";this.nodes.splice(C,1)}else if(g instanceof u){var x=g;if(x==null)throw"Edge is null!";if(!(x.source!=null&&x.target!=null))throw"Source and/or target is null!";if(!(x.source.owner!=null&&x.target.owner!=null&&x.source.owner==this&&x.target.owner==this))throw"Source and/or target owner is invalid!";var T=x.source.edges.indexOf(x),E=x.target.edges.indexOf(x);if(!(T>-1&&E>-1))throw"Source and/or target doesn't know this edge!";x.source.edges.splice(T,1),x.target!=x.source&&x.target.edges.splice(E,1);var C=x.source.owner.getEdges().indexOf(x);if(C==-1)throw"Not in owner's edge list!";x.source.owner.getEdges().splice(C,1)}},p.prototype.updateLeftTop=function(){for(var g=i.MAX_VALUE,y=i.MAX_VALUE,v,x,b,w=this.getNodes(),C=w.length,T=0;T<C;T++){var E=w[T];v=E.getTop(),x=E.getLeft(),g>v&&(g=v),y>x&&(y=x)}return g==i.MAX_VALUE?null:(w[0].getParent().paddingLeft!=null?b=w[0].getParent().paddingLeft:b=this.margin,this.left=y-b,this.top=g-b,new f(this.left,this.top))},p.prototype.updateBounds=function(g){for(var y=i.MAX_VALUE,v=-i.MAX_VALUE,x=i.MAX_VALUE,b=-i.MAX_VALUE,w,C,T,E,A,S=this.nodes,_=S.length,I=0;I<_;I++){var D=S[I];g&&D.child!=null&&D.updateBounds(),w=D.getLeft(),C=D.getRight(),T=D.getTop(),E=D.getBottom(),y>w&&(y=w),v<C&&(v=C),x>T&&(x=T),b<E&&(b=E)}var k=new h(y,x,v-y,b-x);y==i.MAX_VALUE&&(this.left=this.parent.getLeft(),this.right=this.parent.getRight(),this.top=this.parent.getTop(),this.bottom=this.parent.getBottom()),S[0].getParent().paddingLeft!=null?A=S[0].getParent().paddingLeft:A=this.margin,this.left=k.x-A,this.right=k.x+k.width+A,this.top=k.y-A,this.bottom=k.y+k.height+A},p.calculateBounds=function(g){for(var y=i.MAX_VALUE,v=-i.MAX_VALUE,x=i.MAX_VALUE,b=-i.MAX_VALUE,w,C,T,E,A=g.length,S=0;S<A;S++){var _=g[S];w=_.getLeft(),C=_.getRight(),T=_.getTop(),E=_.getBottom(),y>w&&(y=w),v<C&&(v=C),x>T&&(x=T),b<E&&(b=E)}var I=new h(y,x,v-y,b-x);return I},p.prototype.getInclusionTreeDepth=function(){return this==this.graphManager.getRoot()?1:this.parent.getInclusionTreeDepth()},p.prototype.getEstimatedSize=function(){if(this.estimatedSize==i.MIN_VALUE)throw"assert failed";return this.estimatedSize},p.prototype.calcEstimatedSize=function(){for(var g=0,y=this.nodes,v=y.length,x=0;x<v;x++){var b=y[x];g+=b.calcEstimatedSize()}return g==0?this.estimatedSize=a.EMPTY_COMPOUND_NODE_SIZE:this.estimatedSize=g/Math.sqrt(this.nodes.length),this.estimatedSize},p.prototype.updateConnected=function(){var g=this;if(this.nodes.length==0){this.isConnected=!0;return}var y=new d,v=new Set,x=this.nodes[0],b,w,C=x.withChildren();for(C.forEach(function(I){y.push(I),v.add(I)});y.length!==0;){x=y.shift(),b=x.getEdges();for(var T=b.length,E=0;E<T;E++){var A=b[E];if(w=A.getOtherEndInGraph(x,this),w!=null&&!v.has(w)){var S=w.withChildren();S.forEach(function(I){y.push(I),v.add(I)})}}}if(this.isConnected=!1,v.size>=this.nodes.length){var _=0;v.forEach(function(I){I.owner==g&&_++}),_==this.nodes.length&&(this.isConnected=!0)}},t.exports=p},function(t,e,r){"use strict";var n,i=r(1);function a(s){n=r(5),this.layout=s,this.graphs=[],this.edges=[]}o(a,"LGraphManager"),a.prototype.addRoot=function(){var s=this.layout.newGraph(),l=this.layout.newNode(null),u=this.add(s,l);return this.setRootGraph(u),this.rootGraph},a.prototype.add=function(s,l,u,h,f){if(u==null&&h==null&&f==null){if(s==null)throw"Graph is null!";if(l==null)throw"Parent node is null!";if(this.graphs.indexOf(s)>-1)throw"Graph already in this graph mgr!";if(this.graphs.push(s),s.parent!=null)throw"Already has a parent!";if(l.child!=null)throw"Already has a child!";return s.parent=l,l.child=s,s}else{f=u,h=l,u=s;var d=h.getOwner(),p=f.getOwner();if(!(d!=null&&d.getGraphManager()==this))throw"Source not in this graph mgr!";if(!(p!=null&&p.getGraphManager()==this))throw"Target not in this graph mgr!";if(d==p)return u.isInterGraph=!1,d.add(u,h,f);if(u.isInterGraph=!0,u.source=h,u.target=f,this.edges.indexOf(u)>-1)throw"Edge already in inter-graph edge list!";if(this.edges.push(u),!(u.source!=null&&u.target!=null))throw"Edge source and/or target is null!";if(!(u.source.edges.indexOf(u)==-1&&u.target.edges.indexOf(u)==-1))throw"Edge already in source and/or target incidency list!";return u.source.edges.push(u),u.target.edges.push(u),u}},a.prototype.remove=function(s){if(s instanceof n){var l=s;if(l.getGraphManager()!=this)throw"Graph not in this graph mgr";if(!(l==this.rootGraph||l.parent!=null&&l.parent.graphManager==this))throw"Invalid parent node!";var u=[];u=u.concat(l.getEdges());for(var h,f=u.length,d=0;d<f;d++)h=u[d],l.remove(h);var p=[];p=p.concat(l.getNodes());var m;f=p.length;for(var d=0;d<f;d++)m=p[d],l.remove(m);l==this.rootGraph&&this.setRootGraph(null);var g=this.graphs.indexOf(l);this.graphs.splice(g,1),l.parent=null}else if(s instanceof i){if(h=s,h==null)throw"Edge is null!";if(!h.isInterGraph)throw"Not an inter-graph edge!";if(!(h.source!=null&&h.target!=null))throw"Source and/or target is null!";if(!(h.source.edges.indexOf(h)!=-1&&h.target.edges.indexOf(h)!=-1))throw"Source and/or target doesn't know this edge!";var g=h.source.edges.indexOf(h);if(h.source.edges.splice(g,1),g=h.target.edges.indexOf(h),h.target.edges.splice(g,1),!(h.source.owner!=null&&h.source.owner.getGraphManager()!=null))throw"Edge owner graph or owner graph manager is null!";if(h.source.owner.getGraphManager().edges.indexOf(h)==-1)throw"Not in owner graph manager's edge list!";var g=h.source.owner.getGraphManager().edges.indexOf(h);h.source.owner.getGraphManager().edges.splice(g,1)}},a.prototype.updateBounds=function(){this.rootGraph.updateBounds(!0)},a.prototype.getGraphs=function(){return this.graphs},a.prototype.getAllNodes=function(){if(this.allNodes==null){for(var s=[],l=this.getGraphs(),u=l.length,h=0;h<u;h++)s=s.concat(l[h].getNodes());this.allNodes=s}return this.allNodes},a.prototype.resetAllNodes=function(){this.allNodes=null},a.prototype.resetAllEdges=function(){this.allEdges=null},a.prototype.resetAllNodesToApplyGravitation=function(){this.allNodesToApplyGravitation=null},a.prototype.getAllEdges=function(){if(this.allEdges==null){for(var s=[],l=this.getGraphs(),u=l.length,h=0;h<l.length;h++)s=s.concat(l[h].getEdges());s=s.concat(this.edges),this.allEdges=s}return this.allEdges},a.prototype.getAllNodesToApplyGravitation=function(){return this.allNodesToApplyGravitation},a.prototype.setAllNodesToApplyGravitation=function(s){if(this.allNodesToApplyGravitation!=null)throw"assert failed";this.allNodesToApplyGravitation=s},a.prototype.getRoot=function(){return this.rootGraph},a.prototype.setRootGraph=function(s){if(s.getGraphManager()!=this)throw"Root not in this graph mgr!";this.rootGraph=s,s.parent==null&&(s.parent=this.layout.newNode("Root node"))},a.prototype.getLayout=function(){return this.layout},a.prototype.isOneAncestorOfOther=function(s,l){if(!(s!=null&&l!=null))throw"assert failed";if(s==l)return!0;var u=s.getOwner(),h;do{if(h=u.getParent(),h==null)break;if(h==l)return!0;if(u=h.getOwner(),u==null)break}while(!0);u=l.getOwner();do{if(h=u.getParent(),h==null)break;if(h==s)return!0;if(u=h.getOwner(),u==null)break}while(!0);return!1},a.prototype.calcLowestCommonAncestors=function(){for(var s,l,u,h,f,d=this.getAllEdges(),p=d.length,m=0;m<p;m++){if(s=d[m],l=s.source,u=s.target,s.lca=null,s.sourceInLca=l,s.targetInLca=u,l==u){s.lca=l.getOwner();continue}for(h=l.getOwner();s.lca==null;){for(s.targetInLca=u,f=u.getOwner();s.lca==null;){if(f==h){s.lca=f;break}if(f==this.rootGraph)break;if(s.lca!=null)throw"assert failed";s.targetInLca=f.getParent(),f=s.targetInLca.getOwner()}if(h==this.rootGraph)break;s.lca==null&&(s.sourceInLca=h.getParent(),h=s.sourceInLca.getOwner())}if(s.lca==null)throw"assert failed"}},a.prototype.calcLowestCommonAncestor=function(s,l){if(s==l)return s.getOwner();var u=s.getOwner();do{if(u==null)break;var h=l.getOwner();do{if(h==null)break;if(h==u)return h;h=h.getParent().getOwner()}while(!0);u=u.getParent().getOwner()}while(!0);return u},a.prototype.calcInclusionTreeDepths=function(s,l){s==null&&l==null&&(s=this.rootGraph,l=1);for(var u,h=s.getNodes(),f=h.length,d=0;d<f;d++)u=h[d],u.inclusionTreeDepth=l,u.child!=null&&this.calcInclusionTreeDepths(u.child,l+1)},a.prototype.includesInvalidEdge=function(){for(var s,l=this.edges.length,u=0;u<l;u++)if(s=this.edges[u],this.isOneAncestorOfOther(s.source,s.target))return!0;return!1},t.exports=a},function(t,e,r){"use strict";var n=r(0);function i(){}o(i,"FDLayoutConstants");for(var a in n)i[a]=n[a];i.MAX_ITERATIONS=2500,i.DEFAULT_EDGE_LENGTH=50,i.DEFAULT_SPRING_STRENGTH=.45,i.DEFAULT_REPULSION_STRENGTH=4500,i.DEFAULT_GRAVITY_STRENGTH=.4,i.DEFAULT_COMPOUND_GRAVITY_STRENGTH=1,i.DEFAULT_GRAVITY_RANGE_FACTOR=3.8,i.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=1.5,i.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION=!0,i.DEFAULT_USE_SMART_REPULSION_RANGE_CALCULATION=!0,i.DEFAULT_COOLING_FACTOR_INCREMENTAL=.3,i.COOLING_ADAPTATION_FACTOR=.33,i.ADAPTATION_LOWER_NODE_LIMIT=1e3,i.ADAPTATION_UPPER_NODE_LIMIT=5e3,i.MAX_NODE_DISPLACEMENT_INCREMENTAL=100,i.MAX_NODE_DISPLACEMENT=i.MAX_NODE_DISPLACEMENT_INCREMENTAL*3,i.MIN_REPULSION_DIST=i.DEFAULT_EDGE_LENGTH/10,i.CONVERGENCE_CHECK_PERIOD=100,i.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=.1,i.MIN_EDGE_LENGTH=1,i.GRID_CALCULATION_CHECK_PERIOD=10,t.exports=i},function(t,e,r){"use strict";var n=r(12);function i(){}o(i,"IGeometry"),i.calcSeparationAmount=function(a,s,l,u){if(!a.intersects(s))throw"assert failed";var h=new Array(2);this.decideDirectionsForOverlappingNodes(a,s,h),l[0]=Math.min(a.getRight(),s.getRight())-Math.max(a.x,s.x),l[1]=Math.min(a.getBottom(),s.getBottom())-Math.max(a.y,s.y),a.getX()<=s.getX()&&a.getRight()>=s.getRight()?l[0]+=Math.min(s.getX()-a.getX(),a.getRight()-s.getRight()):s.getX()<=a.getX()&&s.getRight()>=a.getRight()&&(l[0]+=Math.min(a.getX()-s.getX(),s.getRight()-a.getRight())),a.getY()<=s.getY()&&a.getBottom()>=s.getBottom()?l[1]+=Math.min(s.getY()-a.getY(),a.getBottom()-s.getBottom()):s.getY()<=a.getY()&&s.getBottom()>=a.getBottom()&&(l[1]+=Math.min(a.getY()-s.getY(),s.getBottom()-a.getBottom()));var f=Math.abs((s.getCenterY()-a.getCenterY())/(s.getCenterX()-a.getCenterX()));s.getCenterY()===a.getCenterY()&&s.getCenterX()===a.getCenterX()&&(f=1);var d=f*l[0],p=l[1]/f;l[0]<p?p=l[0]:d=l[1],l[0]=-1*h[0]*(p/2+u),l[1]=-1*h[1]*(d/2+u)},i.decideDirectionsForOverlappingNodes=function(a,s,l){a.getCenterX()<s.getCenterX()?l[0]=-1:l[0]=1,a.getCenterY()<s.getCenterY()?l[1]=-1:l[1]=1},i.getIntersection2=function(a,s,l){var u=a.getCenterX(),h=a.getCenterY(),f=s.getCenterX(),d=s.getCenterY();if(a.intersects(s))return l[0]=u,l[1]=h,l[2]=f,l[3]=d,!0;var p=a.getX(),m=a.getY(),g=a.getRight(),y=a.getX(),v=a.getBottom(),x=a.getRight(),b=a.getWidthHalf(),w=a.getHeightHalf(),C=s.getX(),T=s.getY(),E=s.getRight(),A=s.getX(),S=s.getBottom(),_=s.getRight(),I=s.getWidthHalf(),D=s.getHeightHalf(),k=!1,L=!1;if(u===f){if(h>d)return l[0]=u,l[1]=m,l[2]=f,l[3]=S,!1;if(h<d)return l[0]=u,l[1]=v,l[2]=f,l[3]=T,!1}else if(h===d){if(u>f)return l[0]=p,l[1]=h,l[2]=E,l[3]=d,!1;if(u<f)return l[0]=g,l[1]=h,l[2]=C,l[3]=d,!1}else{var R=a.height/a.width,O=s.height/s.width,M=(d-h)/(f-u),B=void 0,F=void 0,P=void 0,z=void 0,$=void 0,H=void 0;if(-R===M?u>f?(l[0]=y,l[1]=v,k=!0):(l[0]=g,l[1]=m,k=!0):R===M&&(u>f?(l[0]=p,l[1]=m,k=!0):(l[0]=x,l[1]=v,k=!0)),-O===M?f>u?(l[2]=A,l[3]=S,L=!0):(l[2]=E,l[3]=T,L=!0):O===M&&(f>u?(l[2]=C,l[3]=T,L=!0):(l[2]=_,l[3]=S,L=!0)),k&&L)return!1;if(u>f?h>d?(B=this.getCardinalDirection(R,M,4),F=this.getCardinalDirection(O,M,2)):(B=this.getCardinalDirection(-R,M,3),F=this.getCardinalDirection(-O,M,1)):h>d?(B=this.getCardinalDirection(-R,M,1),F=this.getCardinalDirection(-O,M,3)):(B=this.getCardinalDirection(R,M,2),F=this.getCardinalDirection(O,M,4)),!k)switch(B){case 1:z=m,P=u+-w/M,l[0]=P,l[1]=z;break;case 2:P=x,z=h+b*M,l[0]=P,l[1]=z;break;case 3:z=v,P=u+w/M,l[0]=P,l[1]=z;break;case 4:P=y,z=h+-b*M,l[0]=P,l[1]=z;break}if(!L)switch(F){case 1:H=T,$=f+-D/M,l[2]=$,l[3]=H;break;case 2:$=_,H=d+I*M,l[2]=$,l[3]=H;break;case 3:H=S,$=f+D/M,l[2]=$,l[3]=H;break;case 4:$=A,H=d+-I*M,l[2]=$,l[3]=H;break}}return!1},i.getCardinalDirection=function(a,s,l){return a>s?l:1+l%4},i.getIntersection=function(a,s,l,u){if(u==null)return this.getIntersection2(a,s,l);var h=a.x,f=a.y,d=s.x,p=s.y,m=l.x,g=l.y,y=u.x,v=u.y,x=void 0,b=void 0,w=void 0,C=void 0,T=void 0,E=void 0,A=void 0,S=void 0,_=void 0;return w=p-f,T=h-d,A=d*f-h*p,C=v-g,E=m-y,S=y*g-m*v,_=w*E-C*T,_===0?null:(x=(T*S-E*A)/_,b=(C*A-w*S)/_,new n(x,b))},i.angleOfVector=function(a,s,l,u){var h=void 0;return a!==l?(h=Math.atan((u-s)/(l-a)),l<a?h+=Math.PI:u<s&&(h+=this.TWO_PI)):u<s?h=this.ONE_AND_HALF_PI:h=this.HALF_PI,h},i.doIntersect=function(a,s,l,u){var h=a.x,f=a.y,d=s.x,p=s.y,m=l.x,g=l.y,y=u.x,v=u.y,x=(d-h)*(v-g)-(y-m)*(p-f);if(x===0)return!1;var b=((v-g)*(y-h)+(m-y)*(v-f))/x,w=((f-p)*(y-h)+(d-h)*(v-f))/x;return 0<b&&b<1&&0<w&&w<1},i.HALF_PI=.5*Math.PI,i.ONE_AND_HALF_PI=1.5*Math.PI,i.TWO_PI=2*Math.PI,i.THREE_PI=3*Math.PI,t.exports=i},function(t,e,r){"use strict";function n(){}o(n,"IMath"),n.sign=function(i){return i>0?1:i<0?-1:0},n.floor=function(i){return i<0?Math.ceil(i):Math.floor(i)},n.ceil=function(i){return i<0?Math.floor(i):Math.ceil(i)},t.exports=n},function(t,e,r){"use strict";function n(){}o(n,"Integer"),n.MAX_VALUE=2147483647,n.MIN_VALUE=-2147483648,t.exports=n},function(t,e,r){"use strict";var n=function(){function h(f,d){for(var p=0;p<d.length;p++){var m=d[p];m.enumerable=m.enumerable||!1,m.configurable=!0,"value"in m&&(m.writable=!0),Object.defineProperty(f,m.key,m)}}return o(h,"defineProperties"),function(f,d,p){return d&&h(f.prototype,d),p&&h(f,p),f}}();function i(h,f){if(!(h instanceof f))throw new TypeError("Cannot call a class as a function")}o(i,"_classCallCheck");var a=o(function(f){return{value:f,next:null,prev:null}},"nodeFrom"),s=o(function(f,d,p,m){return f!==null?f.next=d:m.head=d,p!==null?p.prev=d:m.tail=d,d.prev=f,d.next=p,m.length++,d},"add"),l=o(function(f,d){var p=f.prev,m=f.next;return p!==null?p.next=m:d.head=m,m!==null?m.prev=p:d.tail=p,f.prev=f.next=null,d.length--,f},"_remove"),u=function(){function h(f){var d=this;i(this,h),this.length=0,this.head=null,this.tail=null,f?.forEach(function(p){return d.push(p)})}return o(h,"LinkedList"),n(h,[{key:"size",value:o(function(){return this.length},"size")},{key:"insertBefore",value:o(function(d,p){return s(p.prev,a(d),p,this)},"insertBefore")},{key:"insertAfter",value:o(function(d,p){return s(p,a(d),p.next,this)},"insertAfter")},{key:"insertNodeBefore",value:o(function(d,p){return s(p.prev,d,p,this)},"insertNodeBefore")},{key:"insertNodeAfter",value:o(function(d,p){return s(p,d,p.next,this)},"insertNodeAfter")},{key:"push",value:o(function(d){return s(this.tail,a(d),null,this)},"push")},{key:"unshift",value:o(function(d){return s(null,a(d),this.head,this)},"unshift")},{key:"remove",value:o(function(d){return l(d,this)},"remove")},{key:"pop",value:o(function(){return l(this.tail,this).value},"pop")},{key:"popNode",value:o(function(){return l(this.tail,this)},"popNode")},{key:"shift",value:o(function(){return l(this.head,this).value},"shift")},{key:"shiftNode",value:o(function(){return l(this.head,this)},"shiftNode")},{key:"get_object_at",value:o(function(d){if(d<=this.length()){for(var p=1,m=this.head;p<d;)m=m.next,p++;return m.value}},"get_object_at")},{key:"set_object_at",value:o(function(d,p){if(d<=this.length()){for(var m=1,g=this.head;m<d;)g=g.next,m++;g.value=p}},"set_object_at")}]),h}();t.exports=u},function(t,e,r){"use strict";function n(i,a,s){this.x=null,this.y=null,i==null&&a==null&&s==null?(this.x=0,this.y=0):typeof i=="number"&&typeof a=="number"&&s==null?(this.x=i,this.y=a):i.constructor.name=="Point"&&a==null&&s==null&&(s=i,this.x=s.x,this.y=s.y)}o(n,"Point"),n.prototype.getX=function(){return this.x},n.prototype.getY=function(){return this.y},n.prototype.getLocation=function(){return new n(this.x,this.y)},n.prototype.setLocation=function(i,a,s){i.constructor.name=="Point"&&a==null&&s==null?(s=i,this.setLocation(s.x,s.y)):typeof i=="number"&&typeof a=="number"&&s==null&&(parseInt(i)==i&&parseInt(a)==a?this.move(i,a):(this.x=Math.floor(i+.5),this.y=Math.floor(a+.5)))},n.prototype.move=function(i,a){this.x=i,this.y=a},n.prototype.translate=function(i,a){this.x+=i,this.y+=a},n.prototype.equals=function(i){if(i.constructor.name=="Point"){var a=i;return this.x==a.x&&this.y==a.y}return this==i},n.prototype.toString=function(){return new n().constructor.name+"[x="+this.x+",y="+this.y+"]"},t.exports=n},function(t,e,r){"use strict";function n(i,a,s,l){this.x=0,this.y=0,this.width=0,this.height=0,i!=null&&a!=null&&s!=null&&l!=null&&(this.x=i,this.y=a,this.width=s,this.height=l)}o(n,"RectangleD"),n.prototype.getX=function(){return this.x},n.prototype.setX=function(i){this.x=i},n.prototype.getY=function(){return this.y},n.prototype.setY=function(i){this.y=i},n.prototype.getWidth=function(){return this.width},n.prototype.setWidth=function(i){this.width=i},n.prototype.getHeight=function(){return this.height},n.prototype.setHeight=function(i){this.height=i},n.prototype.getRight=function(){return this.x+this.width},n.prototype.getBottom=function(){return this.y+this.height},n.prototype.intersects=function(i){return!(this.getRight()<i.x||this.getBottom()<i.y||i.getRight()<this.x||i.getBottom()<this.y)},n.prototype.getCenterX=function(){return this.x+this.width/2},n.prototype.getMinX=function(){return this.getX()},n.prototype.getMaxX=function(){return this.getX()+this.width},n.prototype.getCenterY=function(){return this.y+this.height/2},n.prototype.getMinY=function(){return this.getY()},n.prototype.getMaxY=function(){return this.getY()+this.height},n.prototype.getWidthHalf=function(){return this.width/2},n.prototype.getHeightHalf=function(){return this.height/2},t.exports=n},function(t,e,r){"use strict";var n=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(a){return typeof a}:function(a){return a&&typeof Symbol=="function"&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a};function i(){}o(i,"UniqueIDGeneretor"),i.lastID=0,i.createID=function(a){return i.isPrimitive(a)?a:(a.uniqueID!=null||(a.uniqueID=i.getString(),i.lastID++),a.uniqueID)},i.getString=function(a){return a==null&&(a=i.lastID),"Object#"+a},i.isPrimitive=function(a){var s=typeof a>"u"?"undefined":n(a);return a==null||s!="object"&&s!="function"},t.exports=i},function(t,e,r){"use strict";function n(m){if(Array.isArray(m)){for(var g=0,y=Array(m.length);g<m.length;g++)y[g]=m[g];return y}else return Array.from(m)}o(n,"_toConsumableArray");var i=r(0),a=r(6),s=r(3),l=r(1),u=r(5),h=r(4),f=r(17),d=r(27);function p(m){d.call(this),this.layoutQuality=i.QUALITY,this.createBendsAsNeeded=i.DEFAULT_CREATE_BENDS_AS_NEEDED,this.incremental=i.DEFAULT_INCREMENTAL,this.animationOnLayout=i.DEFAULT_ANIMATION_ON_LAYOUT,this.animationDuringLayout=i.DEFAULT_ANIMATION_DURING_LAYOUT,this.animationPeriod=i.DEFAULT_ANIMATION_PERIOD,this.uniformLeafNodeSizes=i.DEFAULT_UNIFORM_LEAF_NODE_SIZES,this.edgeToDummyNodes=new Map,this.graphManager=new a(this),this.isLayoutFinished=!1,this.isSubLayout=!1,this.isRemoteUse=!1,m!=null&&(this.isRemoteUse=m)}o(p,"Layout"),p.RANDOM_SEED=1,p.prototype=Object.create(d.prototype),p.prototype.getGraphManager=function(){return this.graphManager},p.prototype.getAllNodes=function(){return this.graphManager.getAllNodes()},p.prototype.getAllEdges=function(){return this.graphManager.getAllEdges()},p.prototype.getAllNodesToApplyGravitation=function(){return this.graphManager.getAllNodesToApplyGravitation()},p.prototype.newGraphManager=function(){var m=new a(this);return this.graphManager=m,m},p.prototype.newGraph=function(m){return new u(null,this.graphManager,m)},p.prototype.newNode=function(m){return new s(this.graphManager,m)},p.prototype.newEdge=function(m){return new l(null,null,m)},p.prototype.checkLayoutSuccess=function(){return this.graphManager.getRoot()==null||this.graphManager.getRoot().getNodes().length==0||this.graphManager.includesInvalidEdge()},p.prototype.runLayout=function(){this.isLayoutFinished=!1,this.tilingPreLayout&&this.tilingPreLayout(),this.initParameters();var m;return this.checkLayoutSuccess()?m=!1:m=this.layout(),i.ANIMATE==="during"?!1:(m&&(this.isSubLayout||this.doPostLayout()),this.tilingPostLayout&&this.tilingPostLayout(),this.isLayoutFinished=!0,m)},p.prototype.doPostLayout=function(){this.incremental||this.transform(),this.update()},p.prototype.update2=function(){if(this.createBendsAsNeeded&&(this.createBendpointsFromDummyNodes(),this.graphManager.resetAllEdges()),!this.isRemoteUse){for(var m,g=this.graphManager.getAllEdges(),y=0;y<g.length;y++)m=g[y];for(var v,x=this.graphManager.getRoot().getNodes(),y=0;y<x.length;y++)v=x[y];this.update(this.graphManager.getRoot())}},p.prototype.update=function(m){if(m==null)this.update2();else if(m instanceof s){var g=m;if(g.getChild()!=null)for(var y=g.getChild().getNodes(),v=0;v<y.length;v++)update(y[v]);if(g.vGraphObject!=null){var x=g.vGraphObject;x.update(g)}}else if(m instanceof l){var b=m;if(b.vGraphObject!=null){var w=b.vGraphObject;w.update(b)}}else if(m instanceof u){var C=m;if(C.vGraphObject!=null){var T=C.vGraphObject;T.update(C)}}},p.prototype.initParameters=function(){this.isSubLayout||(this.layoutQuality=i.QUALITY,this.animationDuringLayout=i.DEFAULT_ANIMATION_DURING_LAYOUT,this.animationPeriod=i.DEFAULT_ANIMATION_PERIOD,this.animationOnLayout=i.DEFAULT_ANIMATION_ON_LAYOUT,this.incremental=i.DEFAULT_INCREMENTAL,this.createBendsAsNeeded=i.DEFAULT_CREATE_BENDS_AS_NEEDED,this.uniformLeafNodeSizes=i.DEFAULT_UNIFORM_LEAF_NODE_SIZES),this.animationDuringLayout&&(this.animationOnLayout=!1)},p.prototype.transform=function(m){if(m==null)this.transform(new h(0,0));else{var g=new f,y=this.graphManager.getRoot().updateLeftTop();if(y!=null){g.setWorldOrgX(m.x),g.setWorldOrgY(m.y),g.setDeviceOrgX(y.x),g.setDeviceOrgY(y.y);for(var v=this.getAllNodes(),x,b=0;b<v.length;b++)x=v[b],x.transform(g)}}},p.prototype.positionNodesRandomly=function(m){if(m==null)this.positionNodesRandomly(this.getGraphManager().getRoot()),this.getGraphManager().getRoot().updateBounds(!0);else for(var g,y,v=m.getNodes(),x=0;x<v.length;x++)g=v[x],y=g.getChild(),y==null||y.getNodes().length==0?g.scatter():(this.positionNodesRandomly(y),g.updateBounds())},p.prototype.getFlatForest=function(){for(var m=[],g=!0,y=this.graphManager.getRoot().getNodes(),v=!0,x=0;x<y.length;x++)y[x].getChild()!=null&&(v=!1);if(!v)return m;var b=new Set,w=[],C=new Map,T=[];for(T=T.concat(y);T.length>0&&g;){for(w.push(T[0]);w.length>0&&g;){var E=w[0];w.splice(0,1),b.add(E);for(var A=E.getEdges(),x=0;x<A.length;x++){var S=A[x].getOtherEnd(E);if(C.get(E)!=S)if(!b.has(S))w.push(S),C.set(S,E);else{g=!1;break}}}if(!g)m=[];else{var _=[].concat(n(b));m.push(_);for(var x=0;x<_.length;x++){var I=_[x],D=T.indexOf(I);D>-1&&T.splice(D,1)}b=new Set,C=new Map}}return m},p.prototype.createDummyNodesForBendpoints=function(m){for(var g=[],y=m.source,v=this.graphManager.calcLowestCommonAncestor(m.source,m.target),x=0;x<m.bendpoints.length;x++){var b=this.newNode(null);b.setRect(new Point(0,0),new Dimension(1,1)),v.add(b);var w=this.newEdge(null);this.graphManager.add(w,y,b),g.add(b),y=b}var w=this.newEdge(null);return this.graphManager.add(w,y,m.target),this.edgeToDummyNodes.set(m,g),m.isInterGraph()?this.graphManager.remove(m):v.remove(m),g},p.prototype.createBendpointsFromDummyNodes=function(){var m=[];m=m.concat(this.graphManager.getAllEdges()),m=[].concat(n(this.edgeToDummyNodes.keys())).concat(m);for(var g=0;g<m.length;g++){var y=m[g];if(y.bendpoints.length>0){for(var v=this.edgeToDummyNodes.get(y),x=0;x<v.length;x++){var b=v[x],w=new h(b.getCenterX(),b.getCenterY()),C=y.bendpoints.get(x);C.x=w.x,C.y=w.y,b.getOwner().remove(b)}this.graphManager.add(y,y.source,y.target)}}},p.transform=function(m,g,y,v){if(y!=null&&v!=null){var x=g;if(m<=50){var b=g/y;x-=(g-b)/50*(50-m)}else{var w=g*v;x+=(w-g)/50*(m-50)}return x}else{var C,T;return m<=50?(C=9*g/500,T=g/10):(C=9*g/50,T=-8*g),C*m+T}},p.findCenterOfTree=function(m){var g=[];g=g.concat(m);var y=[],v=new Map,x=!1,b=null;(g.length==1||g.length==2)&&(x=!0,b=g[0]);for(var w=0;w<g.length;w++){var C=g[w],T=C.getNeighborsList().size;v.set(C,C.getNeighborsList().size),T==1&&y.push(C)}var E=[];for(E=E.concat(y);!x;){var A=[];A=A.concat(E),E=[];for(var w=0;w<g.length;w++){var C=g[w],S=g.indexOf(C);S>=0&&g.splice(S,1);var _=C.getNeighborsList();_.forEach(function(k){if(y.indexOf(k)<0){var L=v.get(k),R=L-1;R==1&&E.push(k),v.set(k,R)}})}y=y.concat(E),(g.length==1||g.length==2)&&(x=!0,b=g[0])}return b},p.prototype.setGraphManager=function(m){this.graphManager=m},t.exports=p},function(t,e,r){"use strict";function n(){}o(n,"RandomSeed"),n.seed=1,n.x=0,n.nextDouble=function(){return n.x=Math.sin(n.seed++)*1e4,n.x-Math.floor(n.x)},t.exports=n},function(t,e,r){"use strict";var n=r(4);function i(a,s){this.lworldOrgX=0,this.lworldOrgY=0,this.ldeviceOrgX=0,this.ldeviceOrgY=0,this.lworldExtX=1,this.lworldExtY=1,this.ldeviceExtX=1,this.ldeviceExtY=1}o(i,"Transform"),i.prototype.getWorldOrgX=function(){return this.lworldOrgX},i.prototype.setWorldOrgX=function(a){this.lworldOrgX=a},i.prototype.getWorldOrgY=function(){return this.lworldOrgY},i.prototype.setWorldOrgY=function(a){this.lworldOrgY=a},i.prototype.getWorldExtX=function(){return this.lworldExtX},i.prototype.setWorldExtX=function(a){this.lworldExtX=a},i.prototype.getWorldExtY=function(){return this.lworldExtY},i.prototype.setWorldExtY=function(a){this.lworldExtY=a},i.prototype.getDeviceOrgX=function(){return this.ldeviceOrgX},i.prototype.setDeviceOrgX=function(a){this.ldeviceOrgX=a},i.prototype.getDeviceOrgY=function(){return this.ldeviceOrgY},i.prototype.setDeviceOrgY=function(a){this.ldeviceOrgY=a},i.prototype.getDeviceExtX=function(){return this.ldeviceExtX},i.prototype.setDeviceExtX=function(a){this.ldeviceExtX=a},i.prototype.getDeviceExtY=function(){return this.ldeviceExtY},i.prototype.setDeviceExtY=function(a){this.ldeviceExtY=a},i.prototype.transformX=function(a){var s=0,l=this.lworldExtX;return l!=0&&(s=this.ldeviceOrgX+(a-this.lworldOrgX)*this.ldeviceExtX/l),s},i.prototype.transformY=function(a){var s=0,l=this.lworldExtY;return l!=0&&(s=this.ldeviceOrgY+(a-this.lworldOrgY)*this.ldeviceExtY/l),s},i.prototype.inverseTransformX=function(a){var s=0,l=this.ldeviceExtX;return l!=0&&(s=this.lworldOrgX+(a-this.ldeviceOrgX)*this.lworldExtX/l),s},i.prototype.inverseTransformY=function(a){var s=0,l=this.ldeviceExtY;return l!=0&&(s=this.lworldOrgY+(a-this.ldeviceOrgY)*this.lworldExtY/l),s},i.prototype.inverseTransformPoint=function(a){var s=new n(this.inverseTransformX(a.x),this.inverseTransformY(a.y));return s},t.exports=i},function(t,e,r){"use strict";function n(d){if(Array.isArray(d)){for(var p=0,m=Array(d.length);p<d.length;p++)m[p]=d[p];return m}else return Array.from(d)}o(n,"_toConsumableArray");var i=r(15),a=r(7),s=r(0),l=r(8),u=r(9);function h(){i.call(this),this.useSmartIdealEdgeLengthCalculation=a.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION,this.idealEdgeLength=a.DEFAULT_EDGE_LENGTH,this.springConstant=a.DEFAULT_SPRING_STRENGTH,this.repulsionConstant=a.DEFAULT_REPULSION_STRENGTH,this.gravityConstant=a.DEFAULT_GRAVITY_STRENGTH,this.compoundGravityConstant=a.DEFAULT_COMPOUND_GRAVITY_STRENGTH,this.gravityRangeFactor=a.DEFAULT_GRAVITY_RANGE_FACTOR,this.compoundGravityRangeFactor=a.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR,this.displacementThresholdPerNode=3*a.DEFAULT_EDGE_LENGTH/100,this.coolingFactor=a.DEFAULT_COOLING_FACTOR_INCREMENTAL,this.initialCoolingFactor=a.DEFAULT_COOLING_FACTOR_INCREMENTAL,this.totalDisplacement=0,this.oldTotalDisplacement=0,this.maxIterations=a.MAX_ITERATIONS}o(h,"FDLayout"),h.prototype=Object.create(i.prototype);for(var f in i)h[f]=i[f];h.prototype.initParameters=function(){i.prototype.initParameters.call(this,arguments),this.totalIterations=0,this.notAnimatedIterations=0,this.useFRGridVariant=a.DEFAULT_USE_SMART_REPULSION_RANGE_CALCULATION,this.grid=[]},h.prototype.calcIdealEdgeLengths=function(){for(var d,p,m,g,y,v,x=this.getGraphManager().getAllEdges(),b=0;b<x.length;b++)d=x[b],d.idealLength=this.idealEdgeLength,d.isInterGraph&&(m=d.getSource(),g=d.getTarget(),y=d.getSourceInLca().getEstimatedSize(),v=d.getTargetInLca().getEstimatedSize(),this.useSmartIdealEdgeLengthCalculation&&(d.idealLength+=y+v-2*s.SIMPLE_NODE_SIZE),p=d.getLca().getInclusionTreeDepth(),d.idealLength+=a.DEFAULT_EDGE_LENGTH*a.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR*(m.getInclusionTreeDepth()+g.getInclusionTreeDepth()-2*p))},h.prototype.initSpringEmbedder=function(){var d=this.getAllNodes().length;this.incremental?(d>a.ADAPTATION_LOWER_NODE_LIMIT&&(this.coolingFactor=Math.max(this.coolingFactor*a.COOLING_ADAPTATION_FACTOR,this.coolingFactor-(d-a.ADAPTATION_LOWER_NODE_LIMIT)/(a.ADAPTATION_UPPER_NODE_LIMIT-a.ADAPTATION_LOWER_NODE_LIMIT)*this.coolingFactor*(1-a.COOLING_ADAPTATION_FACTOR))),this.maxNodeDisplacement=a.MAX_NODE_DISPLACEMENT_INCREMENTAL):(d>a.ADAPTATION_LOWER_NODE_LIMIT?this.coolingFactor=Math.max(a.COOLING_ADAPTATION_FACTOR,1-(d-a.ADAPTATION_LOWER_NODE_LIMIT)/(a.ADAPTATION_UPPER_NODE_LIMIT-a.ADAPTATION_LOWER_NODE_LIMIT)*(1-a.COOLING_ADAPTATION_FACTOR)):this.coolingFactor=1,this.initialCoolingFactor=this.coolingFactor,this.maxNodeDisplacement=a.MAX_NODE_DISPLACEMENT),this.maxIterations=Math.max(this.getAllNodes().length*5,this.maxIterations),this.totalDisplacementThreshold=this.displacementThresholdPerNode*this.getAllNodes().length,this.repulsionRange=this.calcRepulsionRange()},h.prototype.calcSpringForces=function(){for(var d=this.getAllEdges(),p,m=0;m<d.length;m++)p=d[m],this.calcSpringForce(p,p.idealLength)},h.prototype.calcRepulsionForces=function(){var d=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0,p=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,m,g,y,v,x=this.getAllNodes(),b;if(this.useFRGridVariant)for(this.totalIterations%a.GRID_CALCULATION_CHECK_PERIOD==1&&d&&this.updateGrid(),b=new Set,m=0;m<x.length;m++)y=x[m],this.calculateRepulsionForceOfANode(y,b,d,p),b.add(y);else for(m=0;m<x.length;m++)for(y=x[m],g=m+1;g<x.length;g++)v=x[g],y.getOwner()==v.getOwner()&&this.calcRepulsionForce(y,v)},h.prototype.calcGravitationalForces=function(){for(var d,p=this.getAllNodesToApplyGravitation(),m=0;m<p.length;m++)d=p[m],this.calcGravitationalForce(d)},h.prototype.moveNodes=function(){for(var d=this.getAllNodes(),p,m=0;m<d.length;m++)p=d[m],p.move()},h.prototype.calcSpringForce=function(d,p){var m=d.getSource(),g=d.getTarget(),y,v,x,b;if(this.uniformLeafNodeSizes&&m.getChild()==null&&g.getChild()==null)d.updateLengthSimple();else if(d.updateLength(),d.isOverlapingSourceAndTarget)return;y=d.getLength(),y!=0&&(v=this.springConstant*(y-p),x=v*(d.lengthX/y),b=v*(d.lengthY/y),m.springForceX+=x,m.springForceY+=b,g.springForceX-=x,g.springForceY-=b)},h.prototype.calcRepulsionForce=function(d,p){var m=d.getRect(),g=p.getRect(),y=new Array(2),v=new Array(4),x,b,w,C,T,E,A;if(m.intersects(g)){l.calcSeparationAmount(m,g,y,a.DEFAULT_EDGE_LENGTH/2),E=2*y[0],A=2*y[1];var S=d.noOfChildren*p.noOfChildren/(d.noOfChildren+p.noOfChildren);d.repulsionForceX-=S*E,d.repulsionForceY-=S*A,p.repulsionForceX+=S*E,p.repulsionForceY+=S*A}else this.uniformLeafNodeSizes&&d.getChild()==null&&p.getChild()==null?(x=g.getCenterX()-m.getCenterX(),b=g.getCenterY()-m.getCenterY()):(l.getIntersection(m,g,v),x=v[2]-v[0],b=v[3]-v[1]),Math.abs(x)<a.MIN_REPULSION_DIST&&(x=u.sign(x)*a.MIN_REPULSION_DIST),Math.abs(b)<a.MIN_REPULSION_DIST&&(b=u.sign(b)*a.MIN_REPULSION_DIST),w=x*x+b*b,C=Math.sqrt(w),T=this.repulsionConstant*d.noOfChildren*p.noOfChildren/w,E=T*x/C,A=T*b/C,d.repulsionForceX-=E,d.repulsionForceY-=A,p.repulsionForceX+=E,p.repulsionForceY+=A},h.prototype.calcGravitationalForce=function(d){var p,m,g,y,v,x,b,w;p=d.getOwner(),m=(p.getRight()+p.getLeft())/2,g=(p.getTop()+p.getBottom())/2,y=d.getCenterX()-m,v=d.getCenterY()-g,x=Math.abs(y)+d.getWidth()/2,b=Math.abs(v)+d.getHeight()/2,d.getOwner()==this.graphManager.getRoot()?(w=p.getEstimatedSize()*this.gravityRangeFactor,(x>w||b>w)&&(d.gravitationForceX=-this.gravityConstant*y,d.gravitationForceY=-this.gravityConstant*v)):(w=p.getEstimatedSize()*this.compoundGravityRangeFactor,(x>w||b>w)&&(d.gravitationForceX=-this.gravityConstant*y*this.compoundGravityConstant,d.gravitationForceY=-this.gravityConstant*v*this.compoundGravityConstant))},h.prototype.isConverged=function(){var d,p=!1;return this.totalIterations>this.maxIterations/3&&(p=Math.abs(this.totalDisplacement-this.oldTotalDisplacement)<2),d=this.totalDisplacement<this.totalDisplacementThreshold,this.oldTotalDisplacement=this.totalDisplacement,d||p},h.prototype.animate=function(){this.animationDuringLayout&&!this.isSubLayout&&(this.notAnimatedIterations==this.animationPeriod?(this.update(),this.notAnimatedIterations=0):this.notAnimatedIterations++)},h.prototype.calcNoOfChildrenForAllNodes=function(){for(var d,p=this.graphManager.getAllNodes(),m=0;m<p.length;m++)d=p[m],d.noOfChildren=d.getNoOfChildren()},h.prototype.calcGrid=function(d){var p=0,m=0;p=parseInt(Math.ceil((d.getRight()-d.getLeft())/this.repulsionRange)),m=parseInt(Math.ceil((d.getBottom()-d.getTop())/this.repulsionRange));for(var g=new Array(p),y=0;y<p;y++)g[y]=new Array(m);for(var y=0;y<p;y++)for(var v=0;v<m;v++)g[y][v]=new Array;return g},h.prototype.addNodeToGrid=function(d,p,m){var g=0,y=0,v=0,x=0;g=parseInt(Math.floor((d.getRect().x-p)/this.repulsionRange)),y=parseInt(Math.floor((d.getRect().width+d.getRect().x-p)/this.repulsionRange)),v=parseInt(Math.floor((d.getRect().y-m)/this.repulsionRange)),x=parseInt(Math.floor((d.getRect().height+d.getRect().y-m)/this.repulsionRange));for(var b=g;b<=y;b++)for(var w=v;w<=x;w++)this.grid[b][w].push(d),d.setGridCoordinates(g,y,v,x)},h.prototype.updateGrid=function(){var d,p,m=this.getAllNodes();for(this.grid=this.calcGrid(this.graphManager.getRoot()),d=0;d<m.length;d++)p=m[d],this.addNodeToGrid(p,this.graphManager.getRoot().getLeft(),this.graphManager.getRoot().getTop())},h.prototype.calculateRepulsionForceOfANode=function(d,p,m,g){if(this.totalIterations%a.GRID_CALCULATION_CHECK_PERIOD==1&&m||g){var y=new Set;d.surrounding=new Array;for(var v,x=this.grid,b=d.startX-1;b<d.finishX+2;b++)for(var w=d.startY-1;w<d.finishY+2;w++)if(!(b<0||w<0||b>=x.length||w>=x[0].length)){for(var C=0;C<x[b][w].length;C++)if(v=x[b][w][C],!(d.getOwner()!=v.getOwner()||d==v)&&!p.has(v)&&!y.has(v)){var T=Math.abs(d.getCenterX()-v.getCenterX())-(d.getWidth()/2+v.getWidth()/2),E=Math.abs(d.getCenterY()-v.getCenterY())-(d.getHeight()/2+v.getHeight()/2);T<=this.repulsionRange&&E<=this.repulsionRange&&y.add(v)}}d.surrounding=[].concat(n(y))}for(b=0;b<d.surrounding.length;b++)this.calcRepulsionForce(d,d.surrounding[b])},h.prototype.calcRepulsionRange=function(){return 0},t.exports=h},function(t,e,r){"use strict";var n=r(1),i=r(7);function a(l,u,h){n.call(this,l,u,h),this.idealLength=i.DEFAULT_EDGE_LENGTH}o(a,"FDLayoutEdge"),a.prototype=Object.create(n.prototype);for(var s in n)a[s]=n[s];t.exports=a},function(t,e,r){"use strict";var n=r(3);function i(s,l,u,h){n.call(this,s,l,u,h),this.springForceX=0,this.springForceY=0,this.repulsionForceX=0,this.repulsionForceY=0,this.gravitationForceX=0,this.gravitationForceY=0,this.displacementX=0,this.displacementY=0,this.startX=0,this.finishX=0,this.startY=0,this.finishY=0,this.surrounding=[]}o(i,"FDLayoutNode"),i.prototype=Object.create(n.prototype);for(var a in n)i[a]=n[a];i.prototype.setGridCoordinates=function(s,l,u,h){this.startX=s,this.finishX=l,this.startY=u,this.finishY=h},t.exports=i},function(t,e,r){"use strict";function n(i,a){this.width=0,this.height=0,i!==null&&a!==null&&(this.height=a,this.width=i)}o(n,"DimensionD"),n.prototype.getWidth=function(){return this.width},n.prototype.setWidth=function(i){this.width=i},n.prototype.getHeight=function(){return this.height},n.prototype.setHeight=function(i){this.height=i},t.exports=n},function(t,e,r){"use strict";var n=r(14);function i(){this.map={},this.keys=[]}o(i,"HashMap"),i.prototype.put=function(a,s){var l=n.createID(a);this.contains(l)||(this.map[l]=s,this.keys.push(a))},i.prototype.contains=function(a){var s=n.createID(a);return this.map[a]!=null},i.prototype.get=function(a){var s=n.createID(a);return this.map[s]},i.prototype.keySet=function(){return this.keys},t.exports=i},function(t,e,r){"use strict";var n=r(14);function i(){this.set={}}o(i,"HashSet"),i.prototype.add=function(a){var s=n.createID(a);this.contains(s)||(this.set[s]=a)},i.prototype.remove=function(a){delete this.set[n.createID(a)]},i.prototype.clear=function(){this.set={}},i.prototype.contains=function(a){return this.set[n.createID(a)]==a},i.prototype.isEmpty=function(){return this.size()===0},i.prototype.size=function(){return Object.keys(this.set).length},i.prototype.addAllTo=function(a){for(var s=Object.keys(this.set),l=s.length,u=0;u<l;u++)a.push(this.set[s[u]])},i.prototype.size=function(){return Object.keys(this.set).length},i.prototype.addAll=function(a){for(var s=a.length,l=0;l<s;l++){var u=a[l];this.add(u)}},t.exports=i},function(t,e,r){"use strict";var n=function(){function l(u,h){for(var f=0;f<h.length;f++){var d=h[f];d.enumerable=d.enumerable||!1,d.configurable=!0,"value"in d&&(d.writable=!0),Object.defineProperty(u,d.key,d)}}return o(l,"defineProperties"),function(u,h,f){return h&&l(u.prototype,h),f&&l(u,f),u}}();function i(l,u){if(!(l instanceof u))throw new TypeError("Cannot call a class as a function")}o(i,"_classCallCheck");var a=r(11),s=function(){function l(u,h){i(this,l),(h!==null||h!==void 0)&&(this.compareFunction=this._defaultCompareFunction);var f=void 0;u instanceof a?f=u.size():f=u.length,this._quicksort(u,0,f-1)}return o(l,"Quicksort"),n(l,[{key:"_quicksort",value:o(function(h,f,d){if(f<d){var p=this._partition(h,f,d);this._quicksort(h,f,p),this._quicksort(h,p+1,d)}},"_quicksort")},{key:"_partition",value:o(function(h,f,d){for(var p=this._get(h,f),m=f,g=d;;){for(;this.compareFunction(p,this._get(h,g));)g--;for(;this.compareFunction(this._get(h,m),p);)m++;if(m<g)this._swap(h,m,g),m++,g--;else return g}},"_partition")},{key:"_get",value:o(function(h,f){return h instanceof a?h.get_object_at(f):h[f]},"_get")},{key:"_set",value:o(function(h,f,d){h instanceof a?h.set_object_at(f,d):h[f]=d},"_set")},{key:"_swap",value:o(function(h,f,d){var p=this._get(h,f);this._set(h,f,this._get(h,d)),this._set(h,d,p)},"_swap")},{key:"_defaultCompareFunction",value:o(function(h,f){return f>h},"_defaultCompareFunction")}]),l}();t.exports=s},function(t,e,r){"use strict";var n=function(){function s(l,u){for(var h=0;h<u.length;h++){var f=u[h];f.enumerable=f.enumerable||!1,f.configurable=!0,"value"in f&&(f.writable=!0),Object.defineProperty(l,f.key,f)}}return o(s,"defineProperties"),function(l,u,h){return u&&s(l.prototype,u),h&&s(l,h),l}}();function i(s,l){if(!(s instanceof l))throw new TypeError("Cannot call a class as a function")}o(i,"_classCallCheck");var a=function(){function s(l,u){var h=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,f=arguments.length>3&&arguments[3]!==void 0?arguments[3]:-1,d=arguments.length>4&&arguments[4]!==void 0?arguments[4]:-1;i(this,s),this.sequence1=l,this.sequence2=u,this.match_score=h,this.mismatch_penalty=f,this.gap_penalty=d,this.iMax=l.length+1,this.jMax=u.length+1,this.grid=new Array(this.iMax);for(var p=0;p<this.iMax;p++){this.grid[p]=new Array(this.jMax);for(var m=0;m<this.jMax;m++)this.grid[p][m]=0}this.tracebackGrid=new Array(this.iMax);for(var g=0;g<this.iMax;g++){this.tracebackGrid[g]=new Array(this.jMax);for(var y=0;y<this.jMax;y++)this.tracebackGrid[g][y]=[null,null,null]}this.alignments=[],this.score=-1,this.computeGrids()}return o(s,"NeedlemanWunsch"),n(s,[{key:"getScore",value:o(function(){return this.score},"getScore")},{key:"getAlignments",value:o(function(){return this.alignments},"getAlignments")},{key:"computeGrids",value:o(function(){for(var u=1;u<this.jMax;u++)this.grid[0][u]=this.grid[0][u-1]+this.gap_penalty,this.tracebackGrid[0][u]=[!1,!1,!0];for(var h=1;h<this.iMax;h++)this.grid[h][0]=this.grid[h-1][0]+this.gap_penalty,this.tracebackGrid[h][0]=[!1,!0,!1];for(var f=1;f<this.iMax;f++)for(var d=1;d<this.jMax;d++){var p=void 0;this.sequence1[f-1]===this.sequence2[d-1]?p=this.grid[f-1][d-1]+this.match_score:p=this.grid[f-1][d-1]+this.mismatch_penalty;var m=this.grid[f-1][d]+this.gap_penalty,g=this.grid[f][d-1]+this.gap_penalty,y=[p,m,g],v=this.arrayAllMaxIndexes(y);this.grid[f][d]=y[v[0]],this.tracebackGrid[f][d]=[v.includes(0),v.includes(1),v.includes(2)]}this.score=this.grid[this.iMax-1][this.jMax-1]},"computeGrids")},{key:"alignmentTraceback",value:o(function(){var u=[];for(u.push({pos:[this.sequence1.length,this.sequence2.length],seq1:"",seq2:""});u[0];){var h=u[0],f=this.tracebackGrid[h.pos[0]][h.pos[1]];f[0]&&u.push({pos:[h.pos[0]-1,h.pos[1]-1],seq1:this.sequence1[h.pos[0]-1]+h.seq1,seq2:this.sequence2[h.pos[1]-1]+h.seq2}),f[1]&&u.push({pos:[h.pos[0]-1,h.pos[1]],seq1:this.sequence1[h.pos[0]-1]+h.seq1,seq2:"-"+h.seq2}),f[2]&&u.push({pos:[h.pos[0],h.pos[1]-1],seq1:"-"+h.seq1,seq2:this.sequence2[h.pos[1]-1]+h.seq2}),h.pos[0]===0&&h.pos[1]===0&&this.alignments.push({sequence1:h.seq1,sequence2:h.seq2}),u.shift()}return this.alignments},"alignmentTraceback")},{key:"getAllIndexes",value:o(function(u,h){for(var f=[],d=-1;(d=u.indexOf(h,d+1))!==-1;)f.push(d);return f},"getAllIndexes")},{key:"arrayAllMaxIndexes",value:o(function(u){return this.getAllIndexes(u,Math.max.apply(null,u))},"arrayAllMaxIndexes")}]),s}();t.exports=a},function(t,e,r){"use strict";var n=o(function(){},"layoutBase");n.FDLayout=r(18),n.FDLayoutConstants=r(7),n.FDLayoutEdge=r(19),n.FDLayoutNode=r(20),n.DimensionD=r(21),n.HashMap=r(22),n.HashSet=r(23),n.IGeometry=r(8),n.IMath=r(9),n.Integer=r(10),n.Point=r(12),n.PointD=r(4),n.RandomSeed=r(16),n.RectangleD=r(13),n.Transform=r(17),n.UniqueIDGeneretor=r(14),n.Quicksort=r(24),n.LinkedList=r(11),n.LGraphObject=r(2),n.LGraph=r(5),n.LEdge=r(1),n.LGraphManager=r(6),n.LNode=r(3),n.Layout=r(15),n.LayoutConstants=r(0),n.NeedlemanWunsch=r(25),t.exports=n},function(t,e,r){"use strict";function n(){this.listeners=[]}o(n,"Emitter");var i=n.prototype;i.addListener=function(a,s){this.listeners.push({event:a,callback:s})},i.removeListener=function(a,s){for(var l=this.listeners.length;l>=0;l--){var u=this.listeners[l];u.event===a&&u.callback===s&&this.listeners.splice(l,1)}},i.emit=function(a,s){for(var l=0;l<this.listeners.length;l++){var u=this.listeners[l];a===u.event&&u.callback(s)}},t.exports=n}])})});var AB=Mi((h4,CB)=>{"use strict";o(function(e,r){typeof h4=="object"&&typeof CB=="object"?CB.exports=r(SB()):typeof define=="function"&&define.amd?define(["layout-base"],r):typeof h4=="object"?h4.coseBase=r(SB()):e.coseBase=r(e.layoutBase)},"webpackUniversalModuleDefinition")(h4,function(t){return function(e){var r={};function n(i){if(r[i])return r[i].exports;var a=r[i]={i,l:!1,exports:{}};return e[i].call(a.exports,a,a.exports,n),a.l=!0,a.exports}return o(n,"__webpack_require__"),n.m=e,n.c=r,n.i=function(i){return i},n.d=function(i,a,s){n.o(i,a)||Object.defineProperty(i,a,{configurable:!1,enumerable:!0,get:s})},n.n=function(i){var a=i&&i.__esModule?o(function(){return i.default},"getDefault"):o(function(){return i},"getModuleExports");return n.d(a,"a",a),a},n.o=function(i,a){return Object.prototype.hasOwnProperty.call(i,a)},n.p="",n(n.s=7)}([function(e,r){e.exports=t},function(e,r,n){"use strict";var i=n(0).FDLayoutConstants;function a(){}o(a,"CoSEConstants");for(var s in i)a[s]=i[s];a.DEFAULT_USE_MULTI_LEVEL_SCALING=!1,a.DEFAULT_RADIAL_SEPARATION=i.DEFAULT_EDGE_LENGTH,a.DEFAULT_COMPONENT_SEPERATION=60,a.TILE=!0,a.TILING_PADDING_VERTICAL=10,a.TILING_PADDING_HORIZONTAL=10,a.TREE_REDUCTION_ON_INCREMENTAL=!1,e.exports=a},function(e,r,n){"use strict";var i=n(0).FDLayoutEdge;function a(l,u,h){i.call(this,l,u,h)}o(a,"CoSEEdge"),a.prototype=Object.create(i.prototype);for(var s in i)a[s]=i[s];e.exports=a},function(e,r,n){"use strict";var i=n(0).LGraph;function a(l,u,h){i.call(this,l,u,h)}o(a,"CoSEGraph"),a.prototype=Object.create(i.prototype);for(var s in i)a[s]=i[s];e.exports=a},function(e,r,n){"use strict";var i=n(0).LGraphManager;function a(l){i.call(this,l)}o(a,"CoSEGraphManager"),a.prototype=Object.create(i.prototype);for(var s in i)a[s]=i[s];e.exports=a},function(e,r,n){"use strict";var i=n(0).FDLayoutNode,a=n(0).IMath;function s(u,h,f,d){i.call(this,u,h,f,d)}o(s,"CoSENode"),s.prototype=Object.create(i.prototype);for(var l in i)s[l]=i[l];s.prototype.move=function(){var u=this.graphManager.getLayout();this.displacementX=u.coolingFactor*(this.springForceX+this.repulsionForceX+this.gravitationForceX)/this.noOfChildren,this.displacementY=u.coolingFactor*(this.springForceY+this.repulsionForceY+this.gravitationForceY)/this.noOfChildren,Math.abs(this.displacementX)>u.coolingFactor*u.maxNodeDisplacement&&(this.displacementX=u.coolingFactor*u.maxNodeDisplacement*a.sign(this.displacementX)),Math.abs(this.displacementY)>u.coolingFactor*u.maxNodeDisplacement&&(this.displacementY=u.coolingFactor*u.maxNodeDisplacement*a.sign(this.displacementY)),this.child==null?this.moveBy(this.displacementX,this.displacementY):this.child.getNodes().length==0?this.moveBy(this.displacementX,this.displacementY):this.propogateDisplacementToChildren(this.displacementX,this.displacementY),u.totalDisplacement+=Math.abs(this.displacementX)+Math.abs(this.displacementY),this.springForceX=0,this.springForceY=0,this.repulsionForceX=0,this.repulsionForceY=0,this.gravitationForceX=0,this.gravitationForceY=0,this.displacementX=0,this.displacementY=0},s.prototype.propogateDisplacementToChildren=function(u,h){for(var f=this.getChild().getNodes(),d,p=0;p<f.length;p++)d=f[p],d.getChild()==null?(d.moveBy(u,h),d.displacementX+=u,d.displacementY+=h):d.propogateDisplacementToChildren(u,h)},s.prototype.setPred1=function(u){this.pred1=u},s.prototype.getPred1=function(){return pred1},s.prototype.getPred2=function(){return pred2},s.prototype.setNext=function(u){this.next=u},s.prototype.getNext=function(){return next},s.prototype.setProcessed=function(u){this.processed=u},s.prototype.isProcessed=function(){return processed},e.exports=s},function(e,r,n){"use strict";var i=n(0).FDLayout,a=n(4),s=n(3),l=n(5),u=n(2),h=n(1),f=n(0).FDLayoutConstants,d=n(0).LayoutConstants,p=n(0).Point,m=n(0).PointD,g=n(0).Layout,y=n(0).Integer,v=n(0).IGeometry,x=n(0).LGraph,b=n(0).Transform;function w(){i.call(this),this.toBeTiled={}}o(w,"CoSELayout"),w.prototype=Object.create(i.prototype);for(var C in i)w[C]=i[C];w.prototype.newGraphManager=function(){var T=new a(this);return this.graphManager=T,T},w.prototype.newGraph=function(T){return new s(null,this.graphManager,T)},w.prototype.newNode=function(T){return new l(this.graphManager,T)},w.prototype.newEdge=function(T){return new u(null,null,T)},w.prototype.initParameters=function(){i.prototype.initParameters.call(this,arguments),this.isSubLayout||(h.DEFAULT_EDGE_LENGTH<10?this.idealEdgeLength=10:this.idealEdgeLength=h.DEFAULT_EDGE_LENGTH,this.useSmartIdealEdgeLengthCalculation=h.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION,this.springConstant=f.DEFAULT_SPRING_STRENGTH,this.repulsionConstant=f.DEFAULT_REPULSION_STRENGTH,this.gravityConstant=f.DEFAULT_GRAVITY_STRENGTH,this.compoundGravityConstant=f.DEFAULT_COMPOUND_GRAVITY_STRENGTH,this.gravityRangeFactor=f.DEFAULT_GRAVITY_RANGE_FACTOR,this.compoundGravityRangeFactor=f.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR,this.prunedNodesAll=[],this.growTreeIterations=0,this.afterGrowthIterations=0,this.isTreeGrowing=!1,this.isGrowthFinished=!1,this.coolingCycle=0,this.maxCoolingCycle=this.maxIterations/f.CONVERGENCE_CHECK_PERIOD,this.finalTemperature=f.CONVERGENCE_CHECK_PERIOD/this.maxIterations,this.coolingAdjuster=1)},w.prototype.layout=function(){var T=d.DEFAULT_CREATE_BENDS_AS_NEEDED;return T&&(this.createBendpoints(),this.graphManager.resetAllEdges()),this.level=0,this.classicLayout()},w.prototype.classicLayout=function(){if(this.nodesWithGravity=this.calculateNodesToApplyGravitationTo(),this.graphManager.setAllNodesToApplyGravitation(this.nodesWithGravity),this.calcNoOfChildrenForAllNodes(),this.graphManager.calcLowestCommonAncestors(),this.graphManager.calcInclusionTreeDepths(),this.graphManager.getRoot().calcEstimatedSize(),this.calcIdealEdgeLengths(),this.incremental){if(h.TREE_REDUCTION_ON_INCREMENTAL){this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation();var E=new Set(this.getAllNodes()),A=this.nodesWithGravity.filter(function(I){return E.has(I)});this.graphManager.setAllNodesToApplyGravitation(A)}}else{var T=this.getFlatForest();if(T.length>0)this.positionNodesRadially(T);else{this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation();var E=new Set(this.getAllNodes()),A=this.nodesWithGravity.filter(function(S){return E.has(S)});this.graphManager.setAllNodesToApplyGravitation(A),this.positionNodesRandomly()}}return this.initSpringEmbedder(),this.runSpringEmbedder(),!0},w.prototype.tick=function(){if(this.totalIterations++,this.totalIterations===this.maxIterations&&!this.isTreeGrowing&&!this.isGrowthFinished)if(this.prunedNodesAll.length>0)this.isTreeGrowing=!0;else return!0;if(this.totalIterations%f.CONVERGENCE_CHECK_PERIOD==0&&!this.isTreeGrowing&&!this.isGrowthFinished){if(this.isConverged())if(this.prunedNodesAll.length>0)this.isTreeGrowing=!0;else return!0;this.coolingCycle++,this.layoutQuality==0?this.coolingAdjuster=this.coolingCycle:this.layoutQuality==1&&(this.coolingAdjuster=this.coolingCycle/3),this.coolingFactor=Math.max(this.initialCoolingFactor-Math.pow(this.coolingCycle,Math.log(100*(this.initialCoolingFactor-this.finalTemperature))/Math.log(this.maxCoolingCycle))/100*this.coolingAdjuster,this.finalTemperature),this.animationPeriod=Math.ceil(this.initialAnimationPeriod*Math.sqrt(this.coolingFactor))}if(this.isTreeGrowing){if(this.growTreeIterations%10==0)if(this.prunedNodesAll.length>0){this.graphManager.updateBounds(),this.updateGrid(),this.growTree(this.prunedNodesAll),this.graphManager.resetAllNodesToApplyGravitation();var T=new Set(this.getAllNodes()),E=this.nodesWithGravity.filter(function(_){return T.has(_)});this.graphManager.setAllNodesToApplyGravitation(E),this.graphManager.updateBounds(),this.updateGrid(),this.coolingFactor=f.DEFAULT_COOLING_FACTOR_INCREMENTAL}else this.isTreeGrowing=!1,this.isGrowthFinished=!0;this.growTreeIterations++}if(this.isGrowthFinished){if(this.isConverged())return!0;this.afterGrowthIterations%10==0&&(this.graphManager.updateBounds(),this.updateGrid()),this.coolingFactor=f.DEFAULT_COOLING_FACTOR_INCREMENTAL*((100-this.afterGrowthIterations)/100),this.afterGrowthIterations++}var A=!this.isTreeGrowing&&!this.isGrowthFinished,S=this.growTreeIterations%10==1&&this.isTreeGrowing||this.afterGrowthIterations%10==1&&this.isGrowthFinished;return this.totalDisplacement=0,this.graphManager.updateBounds(),this.calcSpringForces(),this.calcRepulsionForces(A,S),this.calcGravitationalForces(),this.moveNodes(),this.animate(),!1},w.prototype.getPositionsData=function(){for(var T=this.graphManager.getAllNodes(),E={},A=0;A<T.length;A++){var S=T[A].rect,_=T[A].id;E[_]={id:_,x:S.getCenterX(),y:S.getCenterY(),w:S.width,h:S.height}}return E},w.prototype.runSpringEmbedder=function(){this.initialAnimationPeriod=25,this.animationPeriod=this.initialAnimationPeriod;var T=!1;if(f.ANIMATE==="during")this.emit("layoutstarted");else{for(;!T;)T=this.tick();this.graphManager.updateBounds()}},w.prototype.calculateNodesToApplyGravitationTo=function(){var T=[],E,A=this.graphManager.getGraphs(),S=A.length,_;for(_=0;_<S;_++)E=A[_],E.updateConnected(),E.isConnected||(T=T.concat(E.getNodes()));return T},w.prototype.createBendpoints=function(){var T=[];T=T.concat(this.graphManager.getAllEdges());var E=new Set,A;for(A=0;A<T.length;A++){var S=T[A];if(!E.has(S)){var _=S.getSource(),I=S.getTarget();if(_==I)S.getBendpoints().push(new m),S.getBendpoints().push(new m),this.createDummyNodesForBendpoints(S),E.add(S);else{var D=[];if(D=D.concat(_.getEdgeListToNode(I)),D=D.concat(I.getEdgeListToNode(_)),!E.has(D[0])){if(D.length>1){var k;for(k=0;k<D.length;k++){var L=D[k];L.getBendpoints().push(new m),this.createDummyNodesForBendpoints(L)}}D.forEach(function(R){E.add(R)})}}}if(E.size==T.length)break}},w.prototype.positionNodesRadially=function(T){for(var E=new p(0,0),A=Math.ceil(Math.sqrt(T.length)),S=0,_=0,I=0,D=new m(0,0),k=0;k<T.length;k++){k%A==0&&(I=0,_=S,k!=0&&(_+=h.DEFAULT_COMPONENT_SEPERATION),S=0);var L=T[k],R=g.findCenterOfTree(L);E.x=I,E.y=_,D=w.radialLayout(L,R,E),D.y>S&&(S=Math.floor(D.y)),I=Math.floor(D.x+h.DEFAULT_COMPONENT_SEPERATION)}this.transform(new m(d.WORLD_CENTER_X-D.x/2,d.WORLD_CENTER_Y-D.y/2))},w.radialLayout=function(T,E,A){var S=Math.max(this.maxDiagonalInTree(T),h.DEFAULT_RADIAL_SEPARATION);w.branchRadialLayout(E,null,0,359,0,S);var _=x.calculateBounds(T),I=new b;I.setDeviceOrgX(_.getMinX()),I.setDeviceOrgY(_.getMinY()),I.setWorldOrgX(A.x),I.setWorldOrgY(A.y);for(var D=0;D<T.length;D++){var k=T[D];k.transform(I)}var L=new m(_.getMaxX(),_.getMaxY());return I.inverseTransformPoint(L)},w.branchRadialLayout=function(T,E,A,S,_,I){var D=(S-A+1)/2;D<0&&(D+=180);var k=(D+A)%360,L=k*v.TWO_PI/360,R=Math.cos(L),O=_*Math.cos(L),M=_*Math.sin(L);T.setCenter(O,M);var B=[];B=B.concat(T.getEdges());var F=B.length;E!=null&&F--;for(var P=0,z=B.length,$,H=T.getEdgesBetween(E);H.length>1;){var Q=H[0];H.splice(0,1);var j=B.indexOf(Q);j>=0&&B.splice(j,1),z--,F--}E!=null?$=(B.indexOf(H[0])+1)%z:$=0;for(var ie=Math.abs(S-A)/F,ne=$;P!=F;ne=++ne%z){var le=B[ne].getOtherEnd(T);if(le!=E){var he=(A+P*ie)%360,K=(he+ie)%360;w.branchRadialLayout(le,T,he,K,_+I,I),P++}}},w.maxDiagonalInTree=function(T){for(var E=y.MIN_VALUE,A=0;A<T.length;A++){var S=T[A],_=S.getDiagonal();_>E&&(E=_)}return E},w.prototype.calcRepulsionRange=function(){return 2*(this.level+1)*this.idealEdgeLength},w.prototype.groupZeroDegreeMembers=function(){var T=this,E={};this.memberGroups={},this.idToDummyNode={};for(var A=[],S=this.graphManager.getAllNodes(),_=0;_<S.length;_++){var I=S[_],D=I.getParent();this.getNodeDegreeWithChildren(I)===0&&(D.id==null||!this.getToBeTiled(D))&&A.push(I)}for(var _=0;_<A.length;_++){var I=A[_],k=I.getParent().id;typeof E[k]>"u"&&(E[k]=[]),E[k]=E[k].concat(I)}Object.keys(E).forEach(function(L){if(E[L].length>1){var R="DummyCompound_"+L;T.memberGroups[R]=E[L];var O=E[L][0].getParent(),M=new l(T.graphManager);M.id=R,M.paddingLeft=O.paddingLeft||0,M.paddingRight=O.paddingRight||0,M.paddingBottom=O.paddingBottom||0,M.paddingTop=O.paddingTop||0,T.idToDummyNode[R]=M;var B=T.getGraphManager().add(T.newGraph(),M),F=O.getChild();F.add(M);for(var P=0;P<E[L].length;P++){var z=E[L][P];F.remove(z),B.add(z)}}})},w.prototype.clearCompounds=function(){var T={},E={};this.performDFSOnCompounds();for(var A=0;A<this.compoundOrder.length;A++)E[this.compoundOrder[A].id]=this.compoundOrder[A],T[this.compoundOrder[A].id]=[].concat(this.compoundOrder[A].getChild().getNodes()),this.graphManager.remove(this.compoundOrder[A].getChild()),this.compoundOrder[A].child=null;this.graphManager.resetAllNodes(),this.tileCompoundMembers(T,E)},w.prototype.clearZeroDegreeMembers=function(){var T=this,E=this.tiledZeroDegreePack=[];Object.keys(this.memberGroups).forEach(function(A){var S=T.idToDummyNode[A];E[A]=T.tileNodes(T.memberGroups[A],S.paddingLeft+S.paddingRight),S.rect.width=E[A].width,S.rect.height=E[A].height})},w.prototype.repopulateCompounds=function(){for(var T=this.compoundOrder.length-1;T>=0;T--){var E=this.compoundOrder[T],A=E.id,S=E.paddingLeft,_=E.paddingTop;this.adjustLocations(this.tiledMemberPack[A],E.rect.x,E.rect.y,S,_)}},w.prototype.repopulateZeroDegreeMembers=function(){var T=this,E=this.tiledZeroDegreePack;Object.keys(E).forEach(function(A){var S=T.idToDummyNode[A],_=S.paddingLeft,I=S.paddingTop;T.adjustLocations(E[A],S.rect.x,S.rect.y,_,I)})},w.prototype.getToBeTiled=function(T){var E=T.id;if(this.toBeTiled[E]!=null)return this.toBeTiled[E];var A=T.getChild();if(A==null)return this.toBeTiled[E]=!1,!1;for(var S=A.getNodes(),_=0;_<S.length;_++){var I=S[_];if(this.getNodeDegree(I)>0)return this.toBeTiled[E]=!1,!1;if(I.getChild()==null){this.toBeTiled[I.id]=!1;continue}if(!this.getToBeTiled(I))return this.toBeTiled[E]=!1,!1}return this.toBeTiled[E]=!0,!0},w.prototype.getNodeDegree=function(T){for(var E=T.id,A=T.getEdges(),S=0,_=0;_<A.length;_++){var I=A[_];I.getSource().id!==I.getTarget().id&&(S=S+1)}return S},w.prototype.getNodeDegreeWithChildren=function(T){var E=this.getNodeDegree(T);if(T.getChild()==null)return E;for(var A=T.getChild().getNodes(),S=0;S<A.length;S++){var _=A[S];E+=this.getNodeDegreeWithChildren(_)}return E},w.prototype.performDFSOnCompounds=function(){this.compoundOrder=[],this.fillCompexOrderByDFS(this.graphManager.getRoot().getNodes())},w.prototype.fillCompexOrderByDFS=function(T){for(var E=0;E<T.length;E++){var A=T[E];A.getChild()!=null&&this.fillCompexOrderByDFS(A.getChild().getNodes()),this.getToBeTiled(A)&&this.compoundOrder.push(A)}},w.prototype.adjustLocations=function(T,E,A,S,_){E+=S,A+=_;for(var I=E,D=0;D<T.rows.length;D++){var k=T.rows[D];E=I;for(var L=0,R=0;R<k.length;R++){var O=k[R];O.rect.x=E,O.rect.y=A,E+=O.rect.width+T.horizontalPadding,O.rect.height>L&&(L=O.rect.height)}A+=L+T.verticalPadding}},w.prototype.tileCompoundMembers=function(T,E){var A=this;this.tiledMemberPack=[],Object.keys(T).forEach(function(S){var _=E[S];A.tiledMemberPack[S]=A.tileNodes(T[S],_.paddingLeft+_.paddingRight),_.rect.width=A.tiledMemberPack[S].width,_.rect.height=A.tiledMemberPack[S].height})},w.prototype.tileNodes=function(T,E){var A=h.TILING_PADDING_VERTICAL,S=h.TILING_PADDING_HORIZONTAL,_={rows:[],rowWidth:[],rowHeight:[],width:0,height:E,verticalPadding:A,horizontalPadding:S};T.sort(function(k,L){return k.rect.width*k.rect.height>L.rect.width*L.rect.height?-1:k.rect.width*k.rect.height<L.rect.width*L.rect.height?1:0});for(var I=0;I<T.length;I++){var D=T[I];_.rows.length==0?this.insertNodeToRow(_,D,0,E):this.canAddHorizontal(_,D.rect.width,D.rect.height)?this.insertNodeToRow(_,D,this.getShortestRowIndex(_),E):this.insertNodeToRow(_,D,_.rows.length,E),this.shiftToLastRow(_)}return _},w.prototype.insertNodeToRow=function(T,E,A,S){var _=S;if(A==T.rows.length){var I=[];T.rows.push(I),T.rowWidth.push(_),T.rowHeight.push(0)}var D=T.rowWidth[A]+E.rect.width;T.rows[A].length>0&&(D+=T.horizontalPadding),T.rowWidth[A]=D,T.width<D&&(T.width=D);var k=E.rect.height;A>0&&(k+=T.verticalPadding);var L=0;k>T.rowHeight[A]&&(L=T.rowHeight[A],T.rowHeight[A]=k,L=T.rowHeight[A]-L),T.height+=L,T.rows[A].push(E)},w.prototype.getShortestRowIndex=function(T){for(var E=-1,A=Number.MAX_VALUE,S=0;S<T.rows.length;S++)T.rowWidth[S]<A&&(E=S,A=T.rowWidth[S]);return E},w.prototype.getLongestRowIndex=function(T){for(var E=-1,A=Number.MIN_VALUE,S=0;S<T.rows.length;S++)T.rowWidth[S]>A&&(E=S,A=T.rowWidth[S]);return E},w.prototype.canAddHorizontal=function(T,E,A){var S=this.getShortestRowIndex(T);if(S<0)return!0;var _=T.rowWidth[S];if(_+T.horizontalPadding+E<=T.width)return!0;var I=0;T.rowHeight[S]<A&&S>0&&(I=A+T.verticalPadding-T.rowHeight[S]);var D;T.width-_>=E+T.horizontalPadding?D=(T.height+I)/(_+E+T.horizontalPadding):D=(T.height+I)/T.width,I=A+T.verticalPadding;var k;return T.width<E?k=(T.height+I)/E:k=(T.height+I)/T.width,k<1&&(k=1/k),D<1&&(D=1/D),D<k},w.prototype.shiftToLastRow=function(T){var E=this.getLongestRowIndex(T),A=T.rowWidth.length-1,S=T.rows[E],_=S[S.length-1],I=_.width+T.horizontalPadding;if(T.width-T.rowWidth[A]>I&&E!=A){S.splice(-1,1),T.rows[A].push(_),T.rowWidth[E]=T.rowWidth[E]-I,T.rowWidth[A]=T.rowWidth[A]+I,T.width=T.rowWidth[instance.getLongestRowIndex(T)];for(var D=Number.MIN_VALUE,k=0;k<S.length;k++)S[k].height>D&&(D=S[k].height);E>0&&(D+=T.verticalPadding);var L=T.rowHeight[E]+T.rowHeight[A];T.rowHeight[E]=D,T.rowHeight[A]<_.height+T.verticalPadding&&(T.rowHeight[A]=_.height+T.verticalPadding);var R=T.rowHeight[E]+T.rowHeight[A];T.height+=R-L,this.shiftToLastRow(T)}},w.prototype.tilingPreLayout=function(){h.TILE&&(this.groupZeroDegreeMembers(),this.clearCompounds(),this.clearZeroDegreeMembers())},w.prototype.tilingPostLayout=function(){h.TILE&&(this.repopulateZeroDegreeMembers(),this.repopulateCompounds())},w.prototype.reduceTrees=function(){for(var T=[],E=!0,A;E;){var S=this.graphManager.getAllNodes(),_=[];E=!1;for(var I=0;I<S.length;I++)A=S[I],A.getEdges().length==1&&!A.getEdges()[0].isInterGraph&&A.getChild()==null&&(_.push([A,A.getEdges()[0],A.getOwner()]),E=!0);if(E==!0){for(var D=[],k=0;k<_.length;k++)_[k][0].getEdges().length==1&&(D.push(_[k]),_[k][0].getOwner().remove(_[k][0]));T.push(D),this.graphManager.resetAllNodes(),this.graphManager.resetAllEdges()}}this.prunedNodesAll=T},w.prototype.growTree=function(T){for(var E=T.length,A=T[E-1],S,_=0;_<A.length;_++)S=A[_],this.findPlaceforPrunedNode(S),S[2].add(S[0]),S[2].add(S[1],S[1].source,S[1].target);T.splice(T.length-1,1),this.graphManager.resetAllNodes(),this.graphManager.resetAllEdges()},w.prototype.findPlaceforPrunedNode=function(T){var E,A,S=T[0];S==T[1].source?A=T[1].target:A=T[1].source;var _=A.startX,I=A.finishX,D=A.startY,k=A.finishY,L=0,R=0,O=0,M=0,B=[L,O,R,M];if(D>0)for(var F=_;F<=I;F++)B[0]+=this.grid[F][D-1].length+this.grid[F][D].length-1;if(I<this.grid.length-1)for(var F=D;F<=k;F++)B[1]+=this.grid[I+1][F].length+this.grid[I][F].length-1;if(k<this.grid[0].length-1)for(var F=_;F<=I;F++)B[2]+=this.grid[F][k+1].length+this.grid[F][k].length-1;if(_>0)for(var F=D;F<=k;F++)B[3]+=this.grid[_-1][F].length+this.grid[_][F].length-1;for(var P=y.MAX_VALUE,z,$,H=0;H<B.length;H++)B[H]<P?(P=B[H],z=1,$=H):B[H]==P&&z++;if(z==3&&P==0)B[0]==0&&B[1]==0&&B[2]==0?E=1:B[0]==0&&B[1]==0&&B[3]==0?E=0:B[0]==0&&B[2]==0&&B[3]==0?E=3:B[1]==0&&B[2]==0&&B[3]==0&&(E=2);else if(z==2&&P==0){var Q=Math.floor(Math.random()*2);B[0]==0&&B[1]==0?Q==0?E=0:E=1:B[0]==0&&B[2]==0?Q==0?E=0:E=2:B[0]==0&&B[3]==0?Q==0?E=0:E=3:B[1]==0&&B[2]==0?Q==0?E=1:E=2:B[1]==0&&B[3]==0?Q==0?E=1:E=3:Q==0?E=2:E=3}else if(z==4&&P==0){var Q=Math.floor(Math.random()*4);E=Q}else E=$;E==0?S.setCenter(A.getCenterX(),A.getCenterY()-A.getHeight()/2-f.DEFAULT_EDGE_LENGTH-S.getHeight()/2):E==1?S.setCenter(A.getCenterX()+A.getWidth()/2+f.DEFAULT_EDGE_LENGTH+S.getWidth()/2,A.getCenterY()):E==2?S.setCenter(A.getCenterX(),A.getCenterY()+A.getHeight()/2+f.DEFAULT_EDGE_LENGTH+S.getHeight()/2):S.setCenter(A.getCenterX()-A.getWidth()/2-f.DEFAULT_EDGE_LENGTH-S.getWidth()/2,A.getCenterY())},e.exports=w},function(e,r,n){"use strict";var i={};i.layoutBase=n(0),i.CoSEConstants=n(1),i.CoSEEdge=n(2),i.CoSEGraph=n(3),i.CoSEGraphManager=n(4),i.CoSELayout=n(6),i.CoSENode=n(5),e.exports=i}])})});var Gge=Mi((f4,_B)=>{"use strict";o(function(e,r){typeof f4=="object"&&typeof _B=="object"?_B.exports=r(AB()):typeof define=="function"&&define.amd?define(["cose-base"],r):typeof f4=="object"?f4.cytoscapeCoseBilkent=r(AB()):e.cytoscapeCoseBilkent=r(e.coseBase)},"webpackUniversalModuleDefinition")(f4,function(t){return function(e){var r={};function n(i){if(r[i])return r[i].exports;var a=r[i]={i,l:!1,exports:{}};return e[i].call(a.exports,a,a.exports,n),a.l=!0,a.exports}return o(n,"__webpack_require__"),n.m=e,n.c=r,n.i=function(i){return i},n.d=function(i,a,s){n.o(i,a)||Object.defineProperty(i,a,{configurable:!1,enumerable:!0,get:s})},n.n=function(i){var a=i&&i.__esModule?o(function(){return i.default},"getDefault"):o(function(){return i},"getModuleExports");return n.d(a,"a",a),a},n.o=function(i,a){return Object.prototype.hasOwnProperty.call(i,a)},n.p="",n(n.s=1)}([function(e,r){e.exports=t},function(e,r,n){"use strict";var i=n(0).layoutBase.LayoutConstants,a=n(0).layoutBase.FDLayoutConstants,s=n(0).CoSEConstants,l=n(0).CoSELayout,u=n(0).CoSENode,h=n(0).layoutBase.PointD,f=n(0).layoutBase.DimensionD,d={ready:o(function(){},"ready"),stop:o(function(){},"stop"),quality:"default",nodeDimensionsIncludeLabels:!1,refresh:30,fit:!0,padding:10,randomize:!0,nodeRepulsion:4500,idealEdgeLength:50,edgeElasticity:.45,nestingFactor:.1,gravity:.25,numIter:2500,tile:!0,animate:"end",animationDuration:500,tilingPaddingVertical:10,tilingPaddingHorizontal:10,gravityRangeCompound:1.5,gravityCompound:1,gravityRange:3.8,initialEnergyOnIncremental:.5};function p(v,x){var b={};for(var w in v)b[w]=v[w];for(var w in x)b[w]=x[w];return b}o(p,"extend");function m(v){this.options=p(d,v),g(this.options)}o(m,"_CoSELayout");var g=o(function(x){x.nodeRepulsion!=null&&(s.DEFAULT_REPULSION_STRENGTH=a.DEFAULT_REPULSION_STRENGTH=x.nodeRepulsion),x.idealEdgeLength!=null&&(s.DEFAULT_EDGE_LENGTH=a.DEFAULT_EDGE_LENGTH=x.idealEdgeLength),x.edgeElasticity!=null&&(s.DEFAULT_SPRING_STRENGTH=a.DEFAULT_SPRING_STRENGTH=x.edgeElasticity),x.nestingFactor!=null&&(s.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=a.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=x.nestingFactor),x.gravity!=null&&(s.DEFAULT_GRAVITY_STRENGTH=a.DEFAULT_GRAVITY_STRENGTH=x.gravity),x.numIter!=null&&(s.MAX_ITERATIONS=a.MAX_ITERATIONS=x.numIter),x.gravityRange!=null&&(s.DEFAULT_GRAVITY_RANGE_FACTOR=a.DEFAULT_GRAVITY_RANGE_FACTOR=x.gravityRange),x.gravityCompound!=null&&(s.DEFAULT_COMPOUND_GRAVITY_STRENGTH=a.DEFAULT_COMPOUND_GRAVITY_STRENGTH=x.gravityCompound),x.gravityRangeCompound!=null&&(s.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=a.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=x.gravityRangeCompound),x.initialEnergyOnIncremental!=null&&(s.DEFAULT_COOLING_FACTOR_INCREMENTAL=a.DEFAULT_COOLING_FACTOR_INCREMENTAL=x.initialEnergyOnIncremental),x.quality=="draft"?i.QUALITY=0:x.quality=="proof"?i.QUALITY=2:i.QUALITY=1,s.NODE_DIMENSIONS_INCLUDE_LABELS=a.NODE_DIMENSIONS_INCLUDE_LABELS=i.NODE_DIMENSIONS_INCLUDE_LABELS=x.nodeDimensionsIncludeLabels,s.DEFAULT_INCREMENTAL=a.DEFAULT_INCREMENTAL=i.DEFAULT_INCREMENTAL=!x.randomize,s.ANIMATE=a.ANIMATE=i.ANIMATE=x.animate,s.TILE=x.tile,s.TILING_PADDING_VERTICAL=typeof x.tilingPaddingVertical=="function"?x.tilingPaddingVertical.call():x.tilingPaddingVertical,s.TILING_PADDING_HORIZONTAL=typeof x.tilingPaddingHorizontal=="function"?x.tilingPaddingHorizontal.call():x.tilingPaddingHorizontal},"getUserOptions");m.prototype.run=function(){var v,x,b=this.options,w=this.idToLNode={},C=this.layout=new l,T=this;T.stopped=!1,this.cy=this.options.cy,this.cy.trigger({type:"layoutstart",layout:this});var E=C.newGraphManager();this.gm=E;var A=this.options.eles.nodes(),S=this.options.eles.edges();this.root=E.addRoot(),this.processChildrenList(this.root,this.getTopMostNodes(A),C);for(var _=0;_<S.length;_++){var I=S[_],D=this.idToLNode[I.data("source")],k=this.idToLNode[I.data("target")];if(D!==k&&D.getEdgesBetween(k).length==0){var L=E.add(C.newEdge(),D,k);L.id=I.id()}}var R=o(function(B,F){typeof B=="number"&&(B=F);var P=B.data("id"),z=T.idToLNode[P];return{x:z.getRect().getCenterX(),y:z.getRect().getCenterY()}},"getPositions"),O=o(function M(){for(var B=o(function(){b.fit&&b.cy.fit(b.eles,b.padding),v||(v=!0,T.cy.one("layoutready",b.ready),T.cy.trigger({type:"layoutready",layout:T}))},"afterReposition"),F=T.options.refresh,P,z=0;z<F&&!P;z++)P=T.stopped||T.layout.tick();if(P){C.checkLayoutSuccess()&&!C.isSubLayout&&C.doPostLayout(),C.tilingPostLayout&&C.tilingPostLayout(),C.isLayoutFinished=!0,T.options.eles.nodes().positions(R),B(),T.cy.one("layoutstop",T.options.stop),T.cy.trigger({type:"layoutstop",layout:T}),x&&cancelAnimationFrame(x),v=!1;return}var $=T.layout.getPositionsData();b.eles.nodes().positions(function(H,Q){if(typeof H=="number"&&(H=Q),!H.isParent()){for(var j=H.id(),ie=$[j],ne=H;ie==null&&(ie=$[ne.data("parent")]||$["DummyCompound_"+ne.data("parent")],$[j]=ie,ne=ne.parent()[0],ne!=null););return ie!=null?{x:ie.x,y:ie.y}:{x:H.position("x"),y:H.position("y")}}}),B(),x=requestAnimationFrame(M)},"iterateAnimated");return C.addListener("layoutstarted",function(){T.options.animate==="during"&&(x=requestAnimationFrame(O))}),C.runLayout(),this.options.animate!=="during"&&(T.options.eles.nodes().not(":parent").layoutPositions(T,T.options,R),v=!1),this},m.prototype.getTopMostNodes=function(v){for(var x={},b=0;b<v.length;b++)x[v[b].id()]=!0;var w=v.filter(function(C,T){typeof C=="number"&&(C=T);for(var E=C.parent()[0];E!=null;){if(x[E.id()])return!1;E=E.parent()[0]}return!0});return w},m.prototype.processChildrenList=function(v,x,b){for(var w=x.length,C=0;C<w;C++){var T=x[C],E=T.children(),A,S=T.layoutDimensions({nodeDimensionsIncludeLabels:this.options.nodeDimensionsIncludeLabels});if(T.outerWidth()!=null&&T.outerHeight()!=null?A=v.add(new u(b.graphManager,new h(T.position("x")-S.w/2,T.position("y")-S.h/2),new f(parseFloat(S.w),parseFloat(S.h)))):A=v.add(new u(this.graphManager)),A.id=T.data("id"),A.paddingLeft=parseInt(T.css("padding")),A.paddingTop=parseInt(T.css("padding")),A.paddingRight=parseInt(T.css("padding")),A.paddingBottom=parseInt(T.css("padding")),this.options.nodeDimensionsIncludeLabels&&T.isParent()){var _=T.boundingBox({includeLabels:!0,includeNodes:!1}).w,I=T.boundingBox({includeLabels:!0,includeNodes:!1}).h,D=T.css("text-halign");A.labelWidth=_,A.labelHeight=I,A.labelPos=D}if(this.idToLNode[T.data("id")]=A,isNaN(A.rect.x)&&(A.rect.x=0),isNaN(A.rect.y)&&(A.rect.y=0),E!=null&&E.length>0){var k;k=b.getGraphManager().add(b.newGraph(),A),this.processChildrenList(k,E,b)}}},m.prototype.stop=function(){return this.stopped=!0,this};var y=o(function(x){x("layout","cose-bilkent",m)},"register");typeof cytoscape<"u"&&y(cytoscape),e.exports=y}])})});function JZe(t,e,r,n,i){return t.insert("polygon",":first-child").attr("points",n.map(function(a){return a.x+","+a.y}).join(" ")).attr("transform","translate("+(i.width-e)/2+", "+r+")")}var YZe,XZe,jZe,KZe,QZe,ZZe,eJe,tJe,Vge,Uge,Hge=N(()=>{"use strict";to();ir();YZe=12,XZe=o(function(t,e,r,n){e.append("path").attr("id","node-"+r.id).attr("class","node-bkg node-"+t.type2Str(r.type)).attr("d",`M0 ${r.height-5} v${-r.height+2*5} q0,-5 5,-5 h${r.width-2*5} q5,0 5,5 v${r.height-5} H0 Z`),e.append("line").attr("class","node-line-"+n).attr("x1",0).attr("y1",r.height).attr("x2",r.width).attr("y2",r.height)},"defaultBkg"),jZe=o(function(t,e,r){e.append("rect").attr("id","node-"+r.id).attr("class","node-bkg node-"+t.type2Str(r.type)).attr("height",r.height).attr("width",r.width)},"rectBkg"),KZe=o(function(t,e,r){let n=r.width,i=r.height,a=.15*n,s=.25*n,l=.35*n,u=.2*n;e.append("path").attr("id","node-"+r.id).attr("class","node-bkg node-"+t.type2Str(r.type)).attr("d",`M0 0 a${a},${a} 0 0,1 ${n*.25},${-1*n*.1}
+      a${l},${l} 1 0,1 ${n*.4},${-1*n*.1}
+      a${s},${s} 1 0,1 ${n*.35},${1*n*.2}
+
+      a${a},${a} 1 0,1 ${n*.15},${1*i*.35}
+      a${u},${u} 1 0,1 ${-1*n*.15},${1*i*.65}
+
+      a${s},${a} 1 0,1 ${-1*n*.25},${n*.15}
+      a${l},${l} 1 0,1 ${-1*n*.5},0
+      a${a},${a} 1 0,1 ${-1*n*.25},${-1*n*.15}
+
+      a${a},${a} 1 0,1 ${-1*n*.1},${-1*i*.35}
+      a${u},${u} 1 0,1 ${n*.1},${-1*i*.65}
+
+    H0 V0 Z`)},"cloudBkg"),QZe=o(function(t,e,r){let n=r.width,i=r.height,a=.15*n;e.append("path").attr("id","node-"+r.id).attr("class","node-bkg node-"+t.type2Str(r.type)).attr("d",`M0 0 a${a},${a} 1 0,0 ${n*.25},${-1*i*.1}
+      a${a},${a} 1 0,0 ${n*.25},0
+      a${a},${a} 1 0,0 ${n*.25},0
+      a${a},${a} 1 0,0 ${n*.25},${1*i*.1}
+
+      a${a},${a} 1 0,0 ${n*.15},${1*i*.33}
+      a${a*.8},${a*.8} 1 0,0 0,${1*i*.34}
+      a${a},${a} 1 0,0 ${-1*n*.15},${1*i*.33}
+
+      a${a},${a} 1 0,0 ${-1*n*.25},${i*.15}
+      a${a},${a} 1 0,0 ${-1*n*.25},0
+      a${a},${a} 1 0,0 ${-1*n*.25},0
+      a${a},${a} 1 0,0 ${-1*n*.25},${-1*i*.15}
+
+      a${a},${a} 1 0,0 ${-1*n*.1},${-1*i*.33}
+      a${a*.8},${a*.8} 1 0,0 0,${-1*i*.34}
+      a${a},${a} 1 0,0 ${n*.1},${-1*i*.33}
+
+    H0 V0 Z`)},"bangBkg"),ZZe=o(function(t,e,r){e.append("circle").attr("id","node-"+r.id).attr("class","node-bkg node-"+t.type2Str(r.type)).attr("r",r.width/2)},"circleBkg");o(JZe,"insertPolygonShape");eJe=o(function(t,e,r){let n=r.height,a=n/4,s=r.width-r.padding+2*a,l=[{x:a,y:0},{x:s-a,y:0},{x:s,y:-n/2},{x:s-a,y:-n},{x:a,y:-n},{x:0,y:-n/2}];JZe(e,s,n,l,r)},"hexagonBkg"),tJe=o(function(t,e,r){e.append("rect").attr("id","node-"+r.id).attr("class","node-bkg node-"+t.type2Str(r.type)).attr("height",r.height).attr("rx",r.padding).attr("ry",r.padding).attr("width",r.width)},"roundedRectBkg"),Vge=o(async function(t,e,r,n,i){let a=i.htmlLabels,s=n%(YZe-1),l=e.append("g");r.section=s;let u="section-"+s;s<0&&(u+=" section-root"),l.attr("class",(r.class?r.class+" ":"")+"mindmap-node "+u);let h=l.append("g"),f=l.append("g"),d=r.descr.replace(/(<br\/*>)/g,`
+`);await Hn(f,d,{useHtmlLabels:a,width:r.width,classes:"mindmap-node-label"},i),a||f.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle");let p=f.node().getBBox(),[m]=Bo(i.fontSize);if(r.height=p.height+m*1.1*.5+r.padding,r.width=p.width+2*r.padding,r.icon)if(r.type===t.nodeType.CIRCLE)r.height+=50,r.width+=50,l.append("foreignObject").attr("height","50px").attr("width",r.width).attr("style","text-align: center;").append("div").attr("class","icon-container").append("i").attr("class","node-icon-"+s+" "+r.icon),f.attr("transform","translate("+r.width/2+", "+(r.height/2-1.5*r.padding)+")");else{r.width+=50;let g=r.height;r.height=Math.max(g,60);let y=Math.abs(r.height-g);l.append("foreignObject").attr("width","60px").attr("height",r.height).attr("style","text-align: center;margin-top:"+y/2+"px;").append("div").attr("class","icon-container").append("i").attr("class","node-icon-"+s+" "+r.icon),f.attr("transform","translate("+(25+r.width/2)+", "+(y/2+r.padding/2)+")")}else if(a){let g=(r.width-p.width)/2,y=(r.height-p.height)/2;f.attr("transform","translate("+g+", "+y+")")}else{let g=r.width/2,y=r.padding/2;f.attr("transform","translate("+g+", "+y+")")}switch(r.type){case t.nodeType.DEFAULT:XZe(t,h,r,s);break;case t.nodeType.ROUNDED_RECT:tJe(t,h,r,s);break;case t.nodeType.RECT:jZe(t,h,r,s);break;case t.nodeType.CIRCLE:h.attr("transform","translate("+r.width/2+", "+ +r.height/2+")"),ZZe(t,h,r,s);break;case t.nodeType.CLOUD:KZe(t,h,r,s);break;case t.nodeType.BANG:QZe(t,h,r,s);break;case t.nodeType.HEXAGON:eJe(t,h,r,s);break}return t.setElementForId(r.id,l),r.height},"drawNode"),Uge=o(function(t,e){let r=t.getElementById(e.id),n=e.x||0,i=e.y||0;r.attr("transform","translate("+n+","+i+")")},"positionNode")});async function qge(t,e,r,n,i){await Vge(t,e,r,n,i),r.children&&await Promise.all(r.children.map((a,s)=>qge(t,e,a,n<0?s:n,i)))}function rJe(t,e){e.edges().map((r,n)=>{let i=r.data();if(r[0]._private.bodyBounds){let a=r[0]._private.rscratch;Y.trace("Edge: ",n,i),t.insert("path").attr("d",`M ${a.startX},${a.startY} L ${a.midX},${a.midY} L${a.endX},${a.endY} `).attr("class","edge section-edge-"+i.section+" edge-depth-"+i.depth)}})}function Yge(t,e,r,n){e.add({group:"nodes",data:{id:t.id.toString(),labelText:t.descr,height:t.height,width:t.width,level:n,nodeId:t.id,padding:t.padding,type:t.type},position:{x:t.x,y:t.y}}),t.children&&t.children.forEach(i=>{Yge(i,e,r,n+1),e.add({group:"edges",data:{id:`${t.id}_${i.id}`,source:t.id,target:i.id,depth:n,section:i.section}})})}function nJe(t,e){return new Promise(r=>{let n=Ge("body").append("div").attr("id","cy").attr("style","display:none"),i=rl({container:document.getElementById("cy"),style:[{selector:"edge",style:{"curve-style":"bezier"}}]});n.remove(),Yge(t,i,e,0),i.nodes().forEach(function(a){a.layoutDimensions=()=>{let s=a.data();return{w:s.width,h:s.height}}}),i.layout({name:"cose-bilkent",quality:"proof",styleEnabled:!1,animate:!1}).run(),i.ready(a=>{Y.info("Ready",a),r(i)})})}function iJe(t,e){e.nodes().map((r,n)=>{let i=r.data();i.x=r.position().x,i.y=r.position().y,Uge(t,i);let a=t.getElementById(i.nodeId);Y.info("Id:",n,"Position: (",r.position().x,", ",r.position().y,")",i),a.attr("transform",`translate(${r.position().x-i.width/2}, ${r.position().y-i.height/2})`),a.attr("attr",`apa-${n})`)})}var Wge,aJe,Xge,jge=N(()=>{"use strict";kB();Wge=Sa(Gge(),1);dr();zt();vt();Vc();Ei();Hge();Ya();rl.use(Wge.default);o(qge,"drawNodes");o(rJe,"drawEdges");o(Yge,"addNodes");o(nJe,"layoutMindmap");o(iJe,"positionNodes");aJe=o(async(t,e,r,n)=>{Y.debug(`Rendering mindmap diagram
+`+t);let i=n.db,a=i.getMindmap();if(!a)return;let s=me();s.htmlLabels=!1;let l=sa(e),u=l.append("g");u.attr("class","mindmap-edges");let h=l.append("g");h.attr("class","mindmap-nodes"),await qge(i,h,a,-1,s);let f=await nJe(a,s);rJe(u,f),iJe(i,f),Ao(void 0,l,s.mindmap?.padding??or.mindmap.padding,s.mindmap?.useMaxWidth??or.mindmap.useMaxWidth)},"draw"),Xge={draw:aJe}});var sJe,oJe,Kge,Qge=N(()=>{"use strict";Ys();sJe=o(t=>{let e="";for(let r=0;r<t.THEME_COLOR_LIMIT;r++)t["lineColor"+r]=t["lineColor"+r]||t["cScaleInv"+r],ca(t["lineColor"+r])?t["lineColor"+r]=Dt(t["lineColor"+r],20):t["lineColor"+r]=Ot(t["lineColor"+r],20);for(let r=0;r<t.THEME_COLOR_LIMIT;r++){let n=""+(17-3*r);e+=`
+    .section-${r-1} rect, .section-${r-1} path, .section-${r-1} circle, .section-${r-1} polygon, .section-${r-1} path  {
+      fill: ${t["cScale"+r]};
+    }
+    .section-${r-1} text {
+     fill: ${t["cScaleLabel"+r]};
+    }
+    .node-icon-${r-1} {
+      font-size: 40px;
+      color: ${t["cScaleLabel"+r]};
+    }
+    .section-edge-${r-1}{
+      stroke: ${t["cScale"+r]};
+    }
+    .edge-depth-${r-1}{
+      stroke-width: ${n};
+    }
+    .section-${r-1} line {
+      stroke: ${t["cScaleInv"+r]} ;
+      stroke-width: 3;
+    }
+
+    .disabled, .disabled circle, .disabled text {
+      fill: lightgray;
+    }
+    .disabled text {
+      fill: #efefef;
+    }
+    `}return e},"genSections"),oJe=o(t=>`
+  .edge {
+    stroke-width: 3;
+  }
+  ${sJe(t)}
+  .section-root rect, .section-root path, .section-root circle, .section-root polygon  {
+    fill: ${t.git0};
+  }
+  .section-root text {
+    fill: ${t.gitBranchLabel0};
+  }
+  .icon-container {
+    height:100%;
+    display: flex;
+    justify-content: center;
+    align-items: center;
+  }
+  .edge {
+    fill: none;
+  }
+  .mindmap-node-label {
+    dy: 1em;
+    alignment-baseline: middle;
+    text-anchor: middle;
+    dominant-baseline: middle;
+    text-align: center;
+  }
+`,"getStyles"),Kge=oJe});var Zge={};hr(Zge,{diagram:()=>lJe});var lJe,Jge=N(()=>{"use strict";Spe();_pe();jge();Qge();lJe={db:Ape,renderer:Xge,parser:Epe,styles:Kge}});var DB,r1e,n1e=N(()=>{"use strict";DB=function(){var t=o(function(A,S,_,I){for(_=_||{},I=A.length;I--;_[A[I]]=S);return _},"o"),e=[1,4],r=[1,13],n=[1,12],i=[1,15],a=[1,16],s=[1,20],l=[1,19],u=[6,7,8],h=[1,26],f=[1,24],d=[1,25],p=[6,7,11],m=[1,31],g=[6,7,11,24],y=[1,6,13,16,17,20,23],v=[1,35],x=[1,36],b=[1,6,7,11,13,16,17,20,23],w=[1,38],C={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,mindMap:4,spaceLines:5,SPACELINE:6,NL:7,KANBAN:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,node:14,shapeData:15,ICON:16,CLASS:17,nodeWithId:18,nodeWithoutId:19,NODE_DSTART:20,NODE_DESCR:21,NODE_DEND:22,NODE_ID:23,SHAPE_DATA:24,$accept:0,$end:1},terminals_:{2:"error",6:"SPACELINE",7:"NL",8:"KANBAN",11:"EOF",13:"SPACELIST",16:"ICON",17:"CLASS",20:"NODE_DSTART",21:"NODE_DESCR",22:"NODE_DEND",23:"NODE_ID",24:"SHAPE_DATA"},productions_:[0,[3,1],[3,2],[5,1],[5,2],[5,2],[4,2],[4,3],[10,1],[10,1],[10,1],[10,2],[10,2],[9,3],[9,2],[12,3],[12,2],[12,2],[12,2],[12,1],[12,2],[12,1],[12,1],[12,1],[12,1],[14,1],[14,1],[19,3],[18,1],[18,4],[15,2],[15,1]],performAction:o(function(S,_,I,D,k,L,R){var O=L.length-1;switch(k){case 6:case 7:return D;case 8:D.getLogger().trace("Stop NL ");break;case 9:D.getLogger().trace("Stop EOF ");break;case 11:D.getLogger().trace("Stop NL2 ");break;case 12:D.getLogger().trace("Stop EOF2 ");break;case 15:D.getLogger().info("Node: ",L[O-1].id),D.addNode(L[O-2].length,L[O-1].id,L[O-1].descr,L[O-1].type,L[O]);break;case 16:D.getLogger().info("Node: ",L[O].id),D.addNode(L[O-1].length,L[O].id,L[O].descr,L[O].type);break;case 17:D.getLogger().trace("Icon: ",L[O]),D.decorateNode({icon:L[O]});break;case 18:case 23:D.decorateNode({class:L[O]});break;case 19:D.getLogger().trace("SPACELIST");break;case 20:D.getLogger().trace("Node: ",L[O-1].id),D.addNode(0,L[O-1].id,L[O-1].descr,L[O-1].type,L[O]);break;case 21:D.getLogger().trace("Node: ",L[O].id),D.addNode(0,L[O].id,L[O].descr,L[O].type);break;case 22:D.decorateNode({icon:L[O]});break;case 27:D.getLogger().trace("node found ..",L[O-2]),this.$={id:L[O-1],descr:L[O-1],type:D.getType(L[O-2],L[O])};break;case 28:this.$={id:L[O],descr:L[O],type:0};break;case 29:D.getLogger().trace("node found ..",L[O-3]),this.$={id:L[O-3],descr:L[O-1],type:D.getType(L[O-2],L[O])};break;case 30:this.$=L[O-1]+L[O];break;case 31:this.$=L[O];break}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],8:e},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:e},{6:r,7:[1,10],9:9,12:11,13:n,14:14,16:i,17:a,18:17,19:18,20:s,23:l},t(u,[2,3]),{1:[2,2]},t(u,[2,4]),t(u,[2,5]),{1:[2,6],6:r,12:21,13:n,14:14,16:i,17:a,18:17,19:18,20:s,23:l},{6:r,9:22,12:11,13:n,14:14,16:i,17:a,18:17,19:18,20:s,23:l},{6:h,7:f,10:23,11:d},t(p,[2,24],{18:17,19:18,14:27,16:[1,28],17:[1,29],20:s,23:l}),t(p,[2,19]),t(p,[2,21],{15:30,24:m}),t(p,[2,22]),t(p,[2,23]),t(g,[2,25]),t(g,[2,26]),t(g,[2,28],{20:[1,32]}),{21:[1,33]},{6:h,7:f,10:34,11:d},{1:[2,7],6:r,12:21,13:n,14:14,16:i,17:a,18:17,19:18,20:s,23:l},t(y,[2,14],{7:v,11:x}),t(b,[2,8]),t(b,[2,9]),t(b,[2,10]),t(p,[2,16],{15:37,24:m}),t(p,[2,17]),t(p,[2,18]),t(p,[2,20],{24:w}),t(g,[2,31]),{21:[1,39]},{22:[1,40]},t(y,[2,13],{7:v,11:x}),t(b,[2,11]),t(b,[2,12]),t(p,[2,15],{24:w}),t(g,[2,30]),{22:[1,41]},t(g,[2,27]),t(g,[2,29])],defaultActions:{2:[2,1],6:[2,2]},parseError:o(function(S,_){if(_.recoverable)this.trace(S);else{var I=new Error(S);throw I.hash=_,I}},"parseError"),parse:o(function(S){var _=this,I=[0],D=[],k=[null],L=[],R=this.table,O="",M=0,B=0,F=0,P=2,z=1,$=L.slice.call(arguments,1),H=Object.create(this.lexer),Q={yy:{}};for(var j in this.yy)Object.prototype.hasOwnProperty.call(this.yy,j)&&(Q.yy[j]=this.yy[j]);H.setInput(S,Q.yy),Q.yy.lexer=H,Q.yy.parser=this,typeof H.yylloc>"u"&&(H.yylloc={});var ie=H.yylloc;L.push(ie);var ne=H.options&&H.options.ranges;typeof Q.yy.parseError=="function"?this.parseError=Q.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function le(ze){I.length=I.length-2*ze,k.length=k.length-ze,L.length=L.length-ze}o(le,"popStack");function he(){var ze;return ze=D.pop()||H.lex()||z,typeof ze!="number"&&(ze instanceof Array&&(D=ze,ze=D.pop()),ze=_.symbols_[ze]||ze),ze}o(he,"lex");for(var K,X,te,J,se,ue,Z={},Se,ce,ae,Oe;;){if(te=I[I.length-1],this.defaultActions[te]?J=this.defaultActions[te]:((K===null||typeof K>"u")&&(K=he()),J=R[te]&&R[te][K]),typeof J>"u"||!J.length||!J[0]){var ge="";Oe=[];for(Se in R[te])this.terminals_[Se]&&Se>P&&Oe.push("'"+this.terminals_[Se]+"'");H.showPosition?ge="Parse error on line "+(M+1)+`:
+`+H.showPosition()+`
+Expecting `+Oe.join(", ")+", got '"+(this.terminals_[K]||K)+"'":ge="Parse error on line "+(M+1)+": Unexpected "+(K==z?"end of input":"'"+(this.terminals_[K]||K)+"'"),this.parseError(ge,{text:H.match,token:this.terminals_[K]||K,line:H.yylineno,loc:ie,expected:Oe})}if(J[0]instanceof Array&&J.length>1)throw new Error("Parse Error: multiple actions possible at state: "+te+", token: "+K);switch(J[0]){case 1:I.push(K),k.push(H.yytext),L.push(H.yylloc),I.push(J[1]),K=null,X?(K=X,X=null):(B=H.yyleng,O=H.yytext,M=H.yylineno,ie=H.yylloc,F>0&&F--);break;case 2:if(ce=this.productions_[J[1]][1],Z.$=k[k.length-ce],Z._$={first_line:L[L.length-(ce||1)].first_line,last_line:L[L.length-1].last_line,first_column:L[L.length-(ce||1)].first_column,last_column:L[L.length-1].last_column},ne&&(Z._$.range=[L[L.length-(ce||1)].range[0],L[L.length-1].range[1]]),ue=this.performAction.apply(Z,[O,B,M,Q.yy,J[1],k,L].concat($)),typeof ue<"u")return ue;ce&&(I=I.slice(0,-1*ce*2),k=k.slice(0,-1*ce),L=L.slice(0,-1*ce)),I.push(this.productions_[J[1]][0]),k.push(Z.$),L.push(Z._$),ae=R[I[I.length-2]][I[I.length-1]],I.push(ae);break;case 3:return!0}}return!0},"parse")},T=function(){var A={EOF:1,parseError:o(function(_,I){if(this.yy.parser)this.yy.parser.parseError(_,I);else throw new Error(_)},"parseError"),setInput:o(function(S,_){return this.yy=_||this.yy||{},this._input=S,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var S=this._input[0];this.yytext+=S,this.yyleng++,this.offset++,this.match+=S,this.matched+=S;var _=S.match(/(?:\r\n?|\n).*/g);return _?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),S},"input"),unput:o(function(S){var _=S.length,I=S.split(/(?:\r\n?|\n)/g);this._input=S+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-_),this.offset-=_;var D=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),I.length-1&&(this.yylineno-=I.length-1);var k=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:I?(I.length===D.length?this.yylloc.first_column:0)+D[D.length-I.length].length-I[0].length:this.yylloc.first_column-_},this.options.ranges&&(this.yylloc.range=[k[0],k[0]+this.yyleng-_]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
+`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(S){this.unput(this.match.slice(S))},"less"),pastInput:o(function(){var S=this.matched.substr(0,this.matched.length-this.match.length);return(S.length>20?"...":"")+S.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var S=this.match;return S.length<20&&(S+=this._input.substr(0,20-S.length)),(S.substr(0,20)+(S.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var S=this.pastInput(),_=new Array(S.length+1).join("-");return S+this.upcomingInput()+`
+`+_+"^"},"showPosition"),test_match:o(function(S,_){var I,D,k;if(this.options.backtrack_lexer&&(k={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(k.yylloc.range=this.yylloc.range.slice(0))),D=S[0].match(/(?:\r\n?|\n).*/g),D&&(this.yylineno+=D.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:D?D[D.length-1].length-D[D.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+S[0].length},this.yytext+=S[0],this.match+=S[0],this.matches=S,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(S[0].length),this.matched+=S[0],I=this.performAction.call(this,this.yy,this,_,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),I)return I;if(this._backtrack){for(var L in k)this[L]=k[L];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var S,_,I,D;this._more||(this.yytext="",this.match="");for(var k=this._currentRules(),L=0;L<k.length;L++)if(I=this._input.match(this.rules[k[L]]),I&&(!_||I[0].length>_[0].length)){if(_=I,D=L,this.options.backtrack_lexer){if(S=this.test_match(I,k[L]),S!==!1)return S;if(this._backtrack){_=!1;continue}else return!1}else if(!this.options.flex)break}return _?(S=this.test_match(_,k[D]),S!==!1?S:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text.
+`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var _=this.next();return _||this.lex()},"lex"),begin:o(function(_){this.conditionStack.push(_)},"begin"),popState:o(function(){var _=this.conditionStack.length-1;return _>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(_){return _=this.conditionStack.length-1-Math.abs(_||0),_>=0?this.conditionStack[_]:"INITIAL"},"topState"),pushState:o(function(_){this.begin(_)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(_,I,D,k){var L=k;switch(D){case 0:return this.pushState("shapeData"),I.yytext="",24;break;case 1:return this.pushState("shapeDataStr"),24;break;case 2:return this.popState(),24;break;case 3:let R=/\n\s*/g;return I.yytext=I.yytext.replace(R,"<br/>"),24;break;case 4:return 24;case 5:this.popState();break;case 6:return _.getLogger().trace("Found comment",I.yytext),6;break;case 7:return 8;case 8:this.begin("CLASS");break;case 9:return this.popState(),17;break;case 10:this.popState();break;case 11:_.getLogger().trace("Begin icon"),this.begin("ICON");break;case 12:return _.getLogger().trace("SPACELINE"),6;break;case 13:return 7;case 14:return 16;case 15:_.getLogger().trace("end icon"),this.popState();break;case 16:return _.getLogger().trace("Exploding node"),this.begin("NODE"),20;break;case 17:return _.getLogger().trace("Cloud"),this.begin("NODE"),20;break;case 18:return _.getLogger().trace("Explosion Bang"),this.begin("NODE"),20;break;case 19:return _.getLogger().trace("Cloud Bang"),this.begin("NODE"),20;break;case 20:return this.begin("NODE"),20;break;case 21:return this.begin("NODE"),20;break;case 22:return this.begin("NODE"),20;break;case 23:return this.begin("NODE"),20;break;case 24:return 13;case 25:return 23;case 26:return 11;case 27:this.begin("NSTR2");break;case 28:return"NODE_DESCR";case 29:this.popState();break;case 30:_.getLogger().trace("Starting NSTR"),this.begin("NSTR");break;case 31:return _.getLogger().trace("description:",I.yytext),"NODE_DESCR";break;case 32:this.popState();break;case 33:return this.popState(),_.getLogger().trace("node end ))"),"NODE_DEND";break;case 34:return this.popState(),_.getLogger().trace("node end )"),"NODE_DEND";break;case 35:return this.popState(),_.getLogger().trace("node end ...",I.yytext),"NODE_DEND";break;case 36:return this.popState(),_.getLogger().trace("node end (("),"NODE_DEND";break;case 37:return this.popState(),_.getLogger().trace("node end (-"),"NODE_DEND";break;case 38:return this.popState(),_.getLogger().trace("node end (-"),"NODE_DEND";break;case 39:return this.popState(),_.getLogger().trace("node end (("),"NODE_DEND";break;case 40:return this.popState(),_.getLogger().trace("node end (("),"NODE_DEND";break;case 41:return _.getLogger().trace("Long description:",I.yytext),21;break;case 42:return _.getLogger().trace("Long description:",I.yytext),21;break}},"anonymous"),rules:[/^(?:@\{)/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^\"]+)/i,/^(?:[^}^"]+)/i,/^(?:\})/i,/^(?:\s*%%.*)/i,/^(?:kanban\b)/i,/^(?::::)/i,/^(?:.+)/i,/^(?:\n)/i,/^(?:::icon\()/i,/^(?:[\s]+[\n])/i,/^(?:[\n]+)/i,/^(?:[^\)]+)/i,/^(?:\))/i,/^(?:-\))/i,/^(?:\(-)/i,/^(?:\)\))/i,/^(?:\))/i,/^(?:\(\()/i,/^(?:\{\{)/i,/^(?:\()/i,/^(?:\[)/i,/^(?:[\s]+)/i,/^(?:[^\(\[\n\)\{\}@]+)/i,/^(?:$)/i,/^(?:["][`])/i,/^(?:[^`"]+)/i,/^(?:[`]["])/i,/^(?:["])/i,/^(?:[^"]+)/i,/^(?:["])/i,/^(?:[\)]\))/i,/^(?:[\)])/i,/^(?:[\]])/i,/^(?:\}\})/i,/^(?:\(-)/i,/^(?:-\))/i,/^(?:\(\()/i,/^(?:\()/i,/^(?:[^\)\]\(\}]+)/i,/^(?:.+(?!\(\())/i],conditions:{shapeDataEndBracket:{rules:[],inclusive:!1},shapeDataStr:{rules:[2,3],inclusive:!1},shapeData:{rules:[1,4,5],inclusive:!1},CLASS:{rules:[9,10],inclusive:!1},ICON:{rules:[14,15],inclusive:!1},NSTR2:{rules:[28,29],inclusive:!1},NSTR:{rules:[31,32],inclusive:!1},NODE:{rules:[27,30,33,34,35,36,37,38,39,40,41,42],inclusive:!1},INITIAL:{rules:[0,6,7,8,11,12,13,16,17,18,19,20,21,22,23,24,25,26],inclusive:!0}}};return A}();C.lexer=T;function E(){this.yy={}}return o(E,"Parser"),E.prototype=C,C.Parser=E,new E}();DB.parser=DB;r1e=DB});var nl,RB,LB,NB,fJe,dJe,i1e,pJe,mJe,Yi,gJe,yJe,vJe,xJe,bJe,wJe,TJe,a1e,s1e=N(()=>{"use strict";zt();gr();vt();Ya();Ew();nl=[],RB=[],LB=0,NB={},fJe=o(()=>{nl=[],RB=[],LB=0,NB={}},"clear"),dJe=o(t=>{if(nl.length===0)return null;let e=nl[0].level,r=null;for(let n=nl.length-1;n>=0;n--)if(nl[n].level===e&&!r&&(r=nl[n]),nl[n].level<e)throw new Error('Items without section detected, found section ("'+nl[n].label+'")');return t===r?.level?null:r},"getSection"),i1e=o(function(){return RB},"getSections"),pJe=o(function(){let t=[],e=[],r=i1e(),n=me();for(let i of r){let a={id:i.id,label:Tr(i.label??"",n),isGroup:!0,ticket:i.ticket,shape:"kanbanSection",level:i.level,look:n.look};e.push(a);let s=nl.filter(l=>l.parentId===i.id);for(let l of s){let u={id:l.id,parentId:i.id,label:Tr(l.label??"",n),isGroup:!1,ticket:l?.ticket,priority:l?.priority,assigned:l?.assigned,icon:l?.icon,shape:"kanbanItem",level:l.level,rx:5,ry:5,cssStyles:["text-align: left"]};e.push(u)}}return{nodes:e,edges:t,other:{},config:me()}},"getData"),mJe=o((t,e,r,n,i)=>{let a=me(),s=a.mindmap?.padding??or.mindmap.padding;switch(n){case Yi.ROUNDED_RECT:case Yi.RECT:case Yi.HEXAGON:s*=2}let l={id:Tr(e,a)||"kbn"+LB++,level:t,label:Tr(r,a),width:a.mindmap?.maxNodeWidth??or.mindmap.maxNodeWidth,padding:s,isGroup:!1};if(i!==void 0){let h;i.includes(`
+`)?h=i+`
+`:h=`{
+`+i+`
+}`;let f=cm(h,{schema:lm});if(f.shape&&(f.shape!==f.shape.toLowerCase()||f.shape.includes("_")))throw new Error(`No such shape: ${f.shape}. Shape names should be lowercase.`);f?.shape&&f.shape==="kanbanItem"&&(l.shape=f?.shape),f?.label&&(l.label=f?.label),f?.icon&&(l.icon=f?.icon.toString()),f?.assigned&&(l.assigned=f?.assigned.toString()),f?.ticket&&(l.ticket=f?.ticket.toString()),f?.priority&&(l.priority=f?.priority)}let u=dJe(t);u?l.parentId=u.id||"kbn"+LB++:RB.push(l),nl.push(l)},"addNode"),Yi={DEFAULT:0,NO_BORDER:0,ROUNDED_RECT:1,RECT:2,CIRCLE:3,CLOUD:4,BANG:5,HEXAGON:6},gJe=o((t,e)=>{switch(Y.debug("In get type",t,e),t){case"[":return Yi.RECT;case"(":return e===")"?Yi.ROUNDED_RECT:Yi.CLOUD;case"((":return Yi.CIRCLE;case")":return Yi.CLOUD;case"))":return Yi.BANG;case"{{":return Yi.HEXAGON;default:return Yi.DEFAULT}},"getType"),yJe=o((t,e)=>{NB[t]=e},"setElementForId"),vJe=o(t=>{if(!t)return;let e=me(),r=nl[nl.length-1];t.icon&&(r.icon=Tr(t.icon,e)),t.class&&(r.cssClasses=Tr(t.class,e))},"decorateNode"),xJe=o(t=>{switch(t){case Yi.DEFAULT:return"no-border";case Yi.RECT:return"rect";case Yi.ROUNDED_RECT:return"rounded-rect";case Yi.CIRCLE:return"circle";case Yi.CLOUD:return"cloud";case Yi.BANG:return"bang";case Yi.HEXAGON:return"hexgon";default:return"no-border"}},"type2Str"),bJe=o(()=>Y,"getLogger"),wJe=o(t=>NB[t],"getElementById"),TJe={clear:fJe,addNode:mJe,getSections:i1e,getData:pJe,nodeType:Yi,getType:gJe,setElementForId:yJe,decorateNode:vJe,type2Str:xJe,getLogger:bJe,getElementById:wJe},a1e=TJe});var kJe,o1e,l1e=N(()=>{"use strict";zt();vt();Vc();Ei();Ya();Hw();eT();kJe=o(async(t,e,r,n)=>{Y.debug(`Rendering kanban diagram
+`+t);let a=n.db.getData(),s=me();s.htmlLabels=!1;let l=sa(e),u=l.append("g");u.attr("class","sections");let h=l.append("g");h.attr("class","items");let f=a.nodes.filter(v=>v.isGroup),d=0,p=10,m=[],g=25;for(let v of f){let x=s?.kanban?.sectionWidth||200;d=d+1,v.x=x*d+(d-1)*p/2,v.width=x,v.y=0,v.height=x*3,v.rx=5,v.ry=5,v.cssClasses=v.cssClasses+" section-"+d;let b=await ym(u,v);g=Math.max(g,b?.labelBBox?.height),m.push(b)}let y=0;for(let v of f){let x=m[y];y=y+1;let b=s?.kanban?.sectionWidth||200,w=-b*3/2+g,C=w,T=a.nodes.filter(S=>S.parentId===v.id);for(let S of T){if(S.isGroup)throw new Error("Groups within groups are not allowed in Kanban diagrams");S.x=v.x,S.width=b-1.5*p;let I=(await vm(h,S,{config:s})).node().getBBox();S.y=C+I.height/2,await k2(S),C=S.y+I.height/2+p/2}let E=x.cluster.select("rect"),A=Math.max(C-w+3*p,50)+(g-25);E.attr("height",A)}Ao(void 0,l,s.mindmap?.padding??or.kanban.padding,s.mindmap?.useMaxWidth??or.kanban.useMaxWidth)},"draw"),o1e={draw:kJe}});var EJe,SJe,c1e,u1e=N(()=>{"use strict";Ys();EJe=o(t=>{let e="";for(let n=0;n<t.THEME_COLOR_LIMIT;n++)t["lineColor"+n]=t["lineColor"+n]||t["cScaleInv"+n],ca(t["lineColor"+n])?t["lineColor"+n]=Dt(t["lineColor"+n],20):t["lineColor"+n]=Ot(t["lineColor"+n],20);let r=o((n,i)=>t.darkMode?Ot(n,i):Dt(n,i),"adjuster");for(let n=0;n<t.THEME_COLOR_LIMIT;n++){let i=""+(17-3*n);e+=`
+    .section-${n-1} rect, .section-${n-1} path, .section-${n-1} circle, .section-${n-1} polygon, .section-${n-1} path  {
+      fill: ${r(t["cScale"+n],10)};
+      stroke: ${r(t["cScale"+n],10)};
+
+    }
+    .section-${n-1} text {
+     fill: ${t["cScaleLabel"+n]};
+    }
+    .node-icon-${n-1} {
+      font-size: 40px;
+      color: ${t["cScaleLabel"+n]};
+    }
+    .section-edge-${n-1}{
+      stroke: ${t["cScale"+n]};
+    }
+    .edge-depth-${n-1}{
+      stroke-width: ${i};
+    }
+    .section-${n-1} line {
+      stroke: ${t["cScaleInv"+n]} ;
+      stroke-width: 3;
+    }
+
+    .disabled, .disabled circle, .disabled text {
+      fill: lightgray;
+    }
+    .disabled text {
+      fill: #efefef;
+    }
+
+  .node rect,
+  .node circle,
+  .node ellipse,
+  .node polygon,
+  .node path {
+    fill: ${t.background};
+    stroke: ${t.nodeBorder};
+    stroke-width: 1px;
+  }
+
+  .kanban-ticket-link {
+    fill: ${t.background};
+    stroke: ${t.nodeBorder};
+    text-decoration: underline;
+  }
+    `}return e},"genSections"),SJe=o(t=>`
+  .edge {
+    stroke-width: 3;
+  }
+  ${EJe(t)}
+  .section-root rect, .section-root path, .section-root circle, .section-root polygon  {
+    fill: ${t.git0};
+  }
+  .section-root text {
+    fill: ${t.gitBranchLabel0};
+  }
+  .icon-container {
+    height:100%;
+    display: flex;
+    justify-content: center;
+    align-items: center;
+  }
+  .edge {
+    fill: none;
+  }
+  .cluster-label, .label {
+    color: ${t.textColor};
+    fill: ${t.textColor};
+    }
+  .kanban-label {
+    dy: 1em;
+    alignment-baseline: middle;
+    text-anchor: middle;
+    dominant-baseline: middle;
+    text-align: center;
+  }
+`,"getStyles"),c1e=SJe});var h1e={};hr(h1e,{diagram:()=>CJe});var CJe,f1e=N(()=>{"use strict";n1e();s1e();l1e();u1e();CJe={db:a1e,renderer:o1e,parser:r1e,styles:c1e}});var MB,d4,m1e=N(()=>{"use strict";MB=function(){var t=o(function(l,u,h,f){for(h=h||{},f=l.length;f--;h[l[f]]=u);return h},"o"),e=[1,9],r=[1,10],n=[1,5,10,12],i={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,SANKEY:4,NEWLINE:5,csv:6,opt_eof:7,record:8,csv_tail:9,EOF:10,"field[source]":11,COMMA:12,"field[target]":13,"field[value]":14,field:15,escaped:16,non_escaped:17,DQUOTE:18,ESCAPED_TEXT:19,NON_ESCAPED_TEXT:20,$accept:0,$end:1},terminals_:{2:"error",4:"SANKEY",5:"NEWLINE",10:"EOF",11:"field[source]",12:"COMMA",13:"field[target]",14:"field[value]",18:"DQUOTE",19:"ESCAPED_TEXT",20:"NON_ESCAPED_TEXT"},productions_:[0,[3,4],[6,2],[9,2],[9,0],[7,1],[7,0],[8,5],[15,1],[15,1],[16,3],[17,1]],performAction:o(function(u,h,f,d,p,m,g){var y=m.length-1;switch(p){case 7:let v=d.findOrCreateNode(m[y-4].trim().replaceAll('""','"')),x=d.findOrCreateNode(m[y-2].trim().replaceAll('""','"')),b=parseFloat(m[y].trim());d.addLink(v,x,b);break;case 8:case 9:case 11:this.$=m[y];break;case 10:this.$=m[y-1];break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},{5:[1,3]},{6:4,8:5,15:6,16:7,17:8,18:e,20:r},{1:[2,6],7:11,10:[1,12]},t(r,[2,4],{9:13,5:[1,14]}),{12:[1,15]},t(n,[2,8]),t(n,[2,9]),{19:[1,16]},t(n,[2,11]),{1:[2,1]},{1:[2,5]},t(r,[2,2]),{6:17,8:5,15:6,16:7,17:8,18:e,20:r},{15:18,16:7,17:8,18:e,20:r},{18:[1,19]},t(r,[2,3]),{12:[1,20]},t(n,[2,10]),{15:21,16:7,17:8,18:e,20:r},t([1,5,10],[2,7])],defaultActions:{11:[2,1],12:[2,5]},parseError:o(function(u,h){if(h.recoverable)this.trace(u);else{var f=new Error(u);throw f.hash=h,f}},"parseError"),parse:o(function(u){var h=this,f=[0],d=[],p=[null],m=[],g=this.table,y="",v=0,x=0,b=0,w=2,C=1,T=m.slice.call(arguments,1),E=Object.create(this.lexer),A={yy:{}};for(var S in this.yy)Object.prototype.hasOwnProperty.call(this.yy,S)&&(A.yy[S]=this.yy[S]);E.setInput(u,A.yy),A.yy.lexer=E,A.yy.parser=this,typeof E.yylloc>"u"&&(E.yylloc={});var _=E.yylloc;m.push(_);var I=E.options&&E.options.ranges;typeof A.yy.parseError=="function"?this.parseError=A.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function D(ie){f.length=f.length-2*ie,p.length=p.length-ie,m.length=m.length-ie}o(D,"popStack");function k(){var ie;return ie=d.pop()||E.lex()||C,typeof ie!="number"&&(ie instanceof Array&&(d=ie,ie=d.pop()),ie=h.symbols_[ie]||ie),ie}o(k,"lex");for(var L,R,O,M,B,F,P={},z,$,H,Q;;){if(O=f[f.length-1],this.defaultActions[O]?M=this.defaultActions[O]:((L===null||typeof L>"u")&&(L=k()),M=g[O]&&g[O][L]),typeof M>"u"||!M.length||!M[0]){var j="";Q=[];for(z in g[O])this.terminals_[z]&&z>w&&Q.push("'"+this.terminals_[z]+"'");E.showPosition?j="Parse error on line "+(v+1)+`:
+`+E.showPosition()+`
+Expecting `+Q.join(", ")+", got '"+(this.terminals_[L]||L)+"'":j="Parse error on line "+(v+1)+": Unexpected "+(L==C?"end of input":"'"+(this.terminals_[L]||L)+"'"),this.parseError(j,{text:E.match,token:this.terminals_[L]||L,line:E.yylineno,loc:_,expected:Q})}if(M[0]instanceof Array&&M.length>1)throw new Error("Parse Error: multiple actions possible at state: "+O+", token: "+L);switch(M[0]){case 1:f.push(L),p.push(E.yytext),m.push(E.yylloc),f.push(M[1]),L=null,R?(L=R,R=null):(x=E.yyleng,y=E.yytext,v=E.yylineno,_=E.yylloc,b>0&&b--);break;case 2:if($=this.productions_[M[1]][1],P.$=p[p.length-$],P._$={first_line:m[m.length-($||1)].first_line,last_line:m[m.length-1].last_line,first_column:m[m.length-($||1)].first_column,last_column:m[m.length-1].last_column},I&&(P._$.range=[m[m.length-($||1)].range[0],m[m.length-1].range[1]]),F=this.performAction.apply(P,[y,x,v,A.yy,M[1],p,m].concat(T)),typeof F<"u")return F;$&&(f=f.slice(0,-1*$*2),p=p.slice(0,-1*$),m=m.slice(0,-1*$)),f.push(this.productions_[M[1]][0]),p.push(P.$),m.push(P._$),H=g[f[f.length-2]][f[f.length-1]],f.push(H);break;case 3:return!0}}return!0},"parse")},a=function(){var l={EOF:1,parseError:o(function(h,f){if(this.yy.parser)this.yy.parser.parseError(h,f);else throw new Error(h)},"parseError"),setInput:o(function(u,h){return this.yy=h||this.yy||{},this._input=u,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var u=this._input[0];this.yytext+=u,this.yyleng++,this.offset++,this.match+=u,this.matched+=u;var h=u.match(/(?:\r\n?|\n).*/g);return h?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),u},"input"),unput:o(function(u){var h=u.length,f=u.split(/(?:\r\n?|\n)/g);this._input=u+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-h),this.offset-=h;var d=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),f.length-1&&(this.yylineno-=f.length-1);var p=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:f?(f.length===d.length?this.yylloc.first_column:0)+d[d.length-f.length].length-f[0].length:this.yylloc.first_column-h},this.options.ranges&&(this.yylloc.range=[p[0],p[0]+this.yyleng-h]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
+`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(u){this.unput(this.match.slice(u))},"less"),pastInput:o(function(){var u=this.matched.substr(0,this.matched.length-this.match.length);return(u.length>20?"...":"")+u.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var u=this.match;return u.length<20&&(u+=this._input.substr(0,20-u.length)),(u.substr(0,20)+(u.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var u=this.pastInput(),h=new Array(u.length+1).join("-");return u+this.upcomingInput()+`
+`+h+"^"},"showPosition"),test_match:o(function(u,h){var f,d,p;if(this.options.backtrack_lexer&&(p={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(p.yylloc.range=this.yylloc.range.slice(0))),d=u[0].match(/(?:\r\n?|\n).*/g),d&&(this.yylineno+=d.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:d?d[d.length-1].length-d[d.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+u[0].length},this.yytext+=u[0],this.match+=u[0],this.matches=u,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(u[0].length),this.matched+=u[0],f=this.performAction.call(this,this.yy,this,h,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),f)return f;if(this._backtrack){for(var m in p)this[m]=p[m];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var u,h,f,d;this._more||(this.yytext="",this.match="");for(var p=this._currentRules(),m=0;m<p.length;m++)if(f=this._input.match(this.rules[p[m]]),f&&(!h||f[0].length>h[0].length)){if(h=f,d=m,this.options.backtrack_lexer){if(u=this.test_match(f,p[m]),u!==!1)return u;if(this._backtrack){h=!1;continue}else return!1}else if(!this.options.flex)break}return h?(u=this.test_match(h,p[d]),u!==!1?u:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text.
+`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var h=this.next();return h||this.lex()},"lex"),begin:o(function(h){this.conditionStack.push(h)},"begin"),popState:o(function(){var h=this.conditionStack.length-1;return h>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(h){return h=this.conditionStack.length-1-Math.abs(h||0),h>=0?this.conditionStack[h]:"INITIAL"},"topState"),pushState:o(function(h){this.begin(h)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(h,f,d,p){var m=p;switch(d){case 0:return this.pushState("csv"),4;break;case 1:return 10;case 2:return 5;case 3:return 12;case 4:return this.pushState("escaped_text"),18;break;case 5:return 20;case 6:return this.popState("escaped_text"),18;break;case 7:return 19}},"anonymous"),rules:[/^(?:sankey-beta\b)/i,/^(?:$)/i,/^(?:((\u000D\u000A)|(\u000A)))/i,/^(?:(\u002C))/i,/^(?:(\u0022))/i,/^(?:([\u0020-\u0021\u0023-\u002B\u002D-\u007E])*)/i,/^(?:(\u0022)(?!(\u0022)))/i,/^(?:(([\u0020-\u0021\u0023-\u002B\u002D-\u007E])|(\u002C)|(\u000D)|(\u000A)|(\u0022)(\u0022))*)/i],conditions:{csv:{rules:[1,2,3,4,5,6,7],inclusive:!1},escaped_text:{rules:[6,7],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7],inclusive:!0}}};return l}();i.lexer=a;function s(){this.yy={}}return o(s,"Parser"),s.prototype=i,i.Parser=s,new s}();MB.parser=MB;d4=MB});var XS,jS,YS,LJe,IB,RJe,OB,NJe,MJe,IJe,OJe,g1e,y1e=N(()=>{"use strict";zt();gr();mi();XS=[],jS=[],YS=new Map,LJe=o(()=>{XS=[],jS=[],YS=new Map,Ar()},"clear"),IB=class{constructor(e,r,n=0){this.source=e;this.target=r;this.value=n}static{o(this,"SankeyLink")}},RJe=o((t,e,r)=>{XS.push(new IB(t,e,r))},"addLink"),OB=class{constructor(e){this.ID=e}static{o(this,"SankeyNode")}},NJe=o(t=>{t=Ze.sanitizeText(t,me());let e=YS.get(t);return e===void 0&&(e=new OB(t),YS.set(t,e),jS.push(e)),e},"findOrCreateNode"),MJe=o(()=>jS,"getNodes"),IJe=o(()=>XS,"getLinks"),OJe=o(()=>({nodes:jS.map(t=>({id:t.ID})),links:XS.map(t=>({source:t.source.ID,target:t.target.ID,value:t.value}))}),"getGraph"),g1e={nodesMap:YS,getConfig:o(()=>me().sankey,"getConfig"),getNodes:MJe,getLinks:IJe,getGraph:OJe,addLink:RJe,findOrCreateNode:NJe,getAccTitle:Rr,setAccTitle:Lr,getAccDescription:Mr,setAccDescription:Nr,getDiagramTitle:Ir,setDiagramTitle:$r,clear:LJe}});function p4(t,e){let r;if(e===void 0)for(let n of t)n!=null&&(r<n||r===void 0&&n>=n)&&(r=n);else{let n=-1;for(let i of t)(i=e(i,++n,t))!=null&&(r<i||r===void 0&&i>=i)&&(r=i)}return r}var v1e=N(()=>{"use strict";o(p4,"max")});function cy(t,e){let r;if(e===void 0)for(let n of t)n!=null&&(r>n||r===void 0&&n>=n)&&(r=n);else{let n=-1;for(let i of t)(i=e(i,++n,t))!=null&&(r>i||r===void 0&&i>=i)&&(r=i)}return r}var x1e=N(()=>{"use strict";o(cy,"min")});function uy(t,e){let r=0;if(e===void 0)for(let n of t)(n=+n)&&(r+=n);else{let n=-1;for(let i of t)(i=+e(i,++n,t))&&(r+=i)}return r}var b1e=N(()=>{"use strict";o(uy,"sum")});var PB=N(()=>{"use strict";v1e();x1e();b1e()});function PJe(t){return t.target.depth}function BB(t){return t.depth}function FB(t,e){return e-1-t.height}function m4(t,e){return t.sourceLinks.length?t.depth:e-1}function $B(t){return t.targetLinks.length?t.depth:t.sourceLinks.length?cy(t.sourceLinks,PJe)-1:0}var zB=N(()=>{"use strict";PB();o(PJe,"targetDepth");o(BB,"left");o(FB,"right");o(m4,"justify");o($B,"center")});function hy(t){return function(){return t}}var w1e=N(()=>{"use strict";o(hy,"constant")});function T1e(t,e){return KS(t.source,e.source)||t.index-e.index}function k1e(t,e){return KS(t.target,e.target)||t.index-e.index}function KS(t,e){return t.y0-e.y0}function GB(t){return t.value}function BJe(t){return t.index}function FJe(t){return t.nodes}function $Je(t){return t.links}function E1e(t,e){let r=t.get(e);if(!r)throw new Error("missing: "+e);return r}function S1e({nodes:t}){for(let e of t){let r=e.y0,n=r;for(let i of e.sourceLinks)i.y0=r+i.width/2,r+=i.width;for(let i of e.targetLinks)i.y1=n+i.width/2,n+=i.width}}function QS(){let t=0,e=0,r=1,n=1,i=24,a=8,s,l=BJe,u=m4,h,f,d=FJe,p=$Je,m=6;function g(){let O={nodes:d.apply(null,arguments),links:p.apply(null,arguments)};return y(O),v(O),x(O),b(O),T(O),S1e(O),O}o(g,"sankey"),g.update=function(O){return S1e(O),O},g.nodeId=function(O){return arguments.length?(l=typeof O=="function"?O:hy(O),g):l},g.nodeAlign=function(O){return arguments.length?(u=typeof O=="function"?O:hy(O),g):u},g.nodeSort=function(O){return arguments.length?(h=O,g):h},g.nodeWidth=function(O){return arguments.length?(i=+O,g):i},g.nodePadding=function(O){return arguments.length?(a=s=+O,g):a},g.nodes=function(O){return arguments.length?(d=typeof O=="function"?O:hy(O),g):d},g.links=function(O){return arguments.length?(p=typeof O=="function"?O:hy(O),g):p},g.linkSort=function(O){return arguments.length?(f=O,g):f},g.size=function(O){return arguments.length?(t=e=0,r=+O[0],n=+O[1],g):[r-t,n-e]},g.extent=function(O){return arguments.length?(t=+O[0][0],r=+O[1][0],e=+O[0][1],n=+O[1][1],g):[[t,e],[r,n]]},g.iterations=function(O){return arguments.length?(m=+O,g):m};function y({nodes:O,links:M}){for(let[F,P]of O.entries())P.index=F,P.sourceLinks=[],P.targetLinks=[];let B=new Map(O.map((F,P)=>[l(F,P,O),F]));for(let[F,P]of M.entries()){P.index=F;let{source:z,target:$}=P;typeof z!="object"&&(z=P.source=E1e(B,z)),typeof $!="object"&&($=P.target=E1e(B,$)),z.sourceLinks.push(P),$.targetLinks.push(P)}if(f!=null)for(let{sourceLinks:F,targetLinks:P}of O)F.sort(f),P.sort(f)}o(y,"computeNodeLinks");function v({nodes:O}){for(let M of O)M.value=M.fixedValue===void 0?Math.max(uy(M.sourceLinks,GB),uy(M.targetLinks,GB)):M.fixedValue}o(v,"computeNodeValues");function x({nodes:O}){let M=O.length,B=new Set(O),F=new Set,P=0;for(;B.size;){for(let z of B){z.depth=P;for(let{target:$}of z.sourceLinks)F.add($)}if(++P>M)throw new Error("circular link");B=F,F=new Set}}o(x,"computeNodeDepths");function b({nodes:O}){let M=O.length,B=new Set(O),F=new Set,P=0;for(;B.size;){for(let z of B){z.height=P;for(let{source:$}of z.targetLinks)F.add($)}if(++P>M)throw new Error("circular link");B=F,F=new Set}}o(b,"computeNodeHeights");function w({nodes:O}){let M=p4(O,P=>P.depth)+1,B=(r-t-i)/(M-1),F=new Array(M);for(let P of O){let z=Math.max(0,Math.min(M-1,Math.floor(u.call(null,P,M))));P.layer=z,P.x0=t+z*B,P.x1=P.x0+i,F[z]?F[z].push(P):F[z]=[P]}if(h)for(let P of F)P.sort(h);return F}o(w,"computeNodeLayers");function C(O){let M=cy(O,B=>(n-e-(B.length-1)*s)/uy(B,GB));for(let B of O){let F=e;for(let P of B){P.y0=F,P.y1=F+P.value*M,F=P.y1+s;for(let z of P.sourceLinks)z.width=z.value*M}F=(n-F+s)/(B.length+1);for(let P=0;P<B.length;++P){let z=B[P];z.y0+=F*(P+1),z.y1+=F*(P+1)}k(B)}}o(C,"initializeNodeBreadths");function T(O){let M=w(O);s=Math.min(a,(n-e)/(p4(M,B=>B.length)-1)),C(M);for(let B=0;B<m;++B){let F=Math.pow(.99,B),P=Math.max(1-F,(B+1)/m);A(M,F,P),E(M,F,P)}}o(T,"computeNodeBreadths");function E(O,M,B){for(let F=1,P=O.length;F<P;++F){let z=O[F];for(let $ of z){let H=0,Q=0;for(let{source:ie,value:ne}of $.targetLinks){let le=ne*($.layer-ie.layer);H+=L(ie,$)*le,Q+=le}if(!(Q>0))continue;let j=(H/Q-$.y0)*M;$.y0+=j,$.y1+=j,D($)}h===void 0&&z.sort(KS),S(z,B)}}o(E,"relaxLeftToRight");function A(O,M,B){for(let F=O.length,P=F-2;P>=0;--P){let z=O[P];for(let $ of z){let H=0,Q=0;for(let{target:ie,value:ne}of $.sourceLinks){let le=ne*(ie.layer-$.layer);H+=R($,ie)*le,Q+=le}if(!(Q>0))continue;let j=(H/Q-$.y0)*M;$.y0+=j,$.y1+=j,D($)}h===void 0&&z.sort(KS),S(z,B)}}o(A,"relaxRightToLeft");function S(O,M){let B=O.length>>1,F=O[B];I(O,F.y0-s,B-1,M),_(O,F.y1+s,B+1,M),I(O,n,O.length-1,M),_(O,e,0,M)}o(S,"resolveCollisions");function _(O,M,B,F){for(;B<O.length;++B){let P=O[B],z=(M-P.y0)*F;z>1e-6&&(P.y0+=z,P.y1+=z),M=P.y1+s}}o(_,"resolveCollisionsTopToBottom");function I(O,M,B,F){for(;B>=0;--B){let P=O[B],z=(P.y1-M)*F;z>1e-6&&(P.y0-=z,P.y1-=z),M=P.y0-s}}o(I,"resolveCollisionsBottomToTop");function D({sourceLinks:O,targetLinks:M}){if(f===void 0){for(let{source:{sourceLinks:B}}of M)B.sort(k1e);for(let{target:{targetLinks:B}}of O)B.sort(T1e)}}o(D,"reorderNodeLinks");function k(O){if(f===void 0)for(let{sourceLinks:M,targetLinks:B}of O)M.sort(k1e),B.sort(T1e)}o(k,"reorderLinks");function L(O,M){let B=O.y0-(O.sourceLinks.length-1)*s/2;for(let{target:F,width:P}of O.sourceLinks){if(F===M)break;B+=P+s}for(let{source:F,width:P}of M.targetLinks){if(F===O)break;B-=P}return B}o(L,"targetTop");function R(O,M){let B=M.y0-(M.targetLinks.length-1)*s/2;for(let{source:F,width:P}of M.targetLinks){if(F===O)break;B+=P+s}for(let{target:F,width:P}of O.sourceLinks){if(F===M)break;B-=P}return B}return o(R,"sourceTop"),g}var C1e=N(()=>{"use strict";PB();zB();w1e();o(T1e,"ascendingSourceBreadth");o(k1e,"ascendingTargetBreadth");o(KS,"ascendingBreadth");o(GB,"value");o(BJe,"defaultId");o(FJe,"defaultNodes");o($Je,"defaultLinks");o(E1e,"find");o(S1e,"computeLinkBreadths");o(QS,"Sankey")});function HB(){this._x0=this._y0=this._x1=this._y1=null,this._=""}function A1e(){return new HB}var VB,UB,Xp,zJe,WB,_1e=N(()=>{"use strict";VB=Math.PI,UB=2*VB,Xp=1e-6,zJe=UB-Xp;o(HB,"Path");o(A1e,"path");HB.prototype=A1e.prototype={constructor:HB,moveTo:o(function(t,e){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+e)},"moveTo"),closePath:o(function(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")},"closePath"),lineTo:o(function(t,e){this._+="L"+(this._x1=+t)+","+(this._y1=+e)},"lineTo"),quadraticCurveTo:o(function(t,e,r,n){this._+="Q"+ +t+","+ +e+","+(this._x1=+r)+","+(this._y1=+n)},"quadraticCurveTo"),bezierCurveTo:o(function(t,e,r,n,i,a){this._+="C"+ +t+","+ +e+","+ +r+","+ +n+","+(this._x1=+i)+","+(this._y1=+a)},"bezierCurveTo"),arcTo:o(function(t,e,r,n,i){t=+t,e=+e,r=+r,n=+n,i=+i;var a=this._x1,s=this._y1,l=r-t,u=n-e,h=a-t,f=s-e,d=h*h+f*f;if(i<0)throw new Error("negative radius: "+i);if(this._x1===null)this._+="M"+(this._x1=t)+","+(this._y1=e);else if(d>Xp)if(!(Math.abs(f*l-u*h)>Xp)||!i)this._+="L"+(this._x1=t)+","+(this._y1=e);else{var p=r-a,m=n-s,g=l*l+u*u,y=p*p+m*m,v=Math.sqrt(g),x=Math.sqrt(d),b=i*Math.tan((VB-Math.acos((g+d-y)/(2*v*x)))/2),w=b/x,C=b/v;Math.abs(w-1)>Xp&&(this._+="L"+(t+w*h)+","+(e+w*f)),this._+="A"+i+","+i+",0,0,"+ +(f*p>h*m)+","+(this._x1=t+C*l)+","+(this._y1=e+C*u)}},"arcTo"),arc:o(function(t,e,r,n,i,a){t=+t,e=+e,r=+r,a=!!a;var s=r*Math.cos(n),l=r*Math.sin(n),u=t+s,h=e+l,f=1^a,d=a?n-i:i-n;if(r<0)throw new Error("negative radius: "+r);this._x1===null?this._+="M"+u+","+h:(Math.abs(this._x1-u)>Xp||Math.abs(this._y1-h)>Xp)&&(this._+="L"+u+","+h),r&&(d<0&&(d=d%UB+UB),d>zJe?this._+="A"+r+","+r+",0,1,"+f+","+(t-s)+","+(e-l)+"A"+r+","+r+",0,1,"+f+","+(this._x1=u)+","+(this._y1=h):d>Xp&&(this._+="A"+r+","+r+",0,"+ +(d>=VB)+","+f+","+(this._x1=t+r*Math.cos(i))+","+(this._y1=e+r*Math.sin(i))))},"arc"),rect:o(function(t,e,r,n){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+e)+"h"+ +r+"v"+ +n+"h"+-r+"Z"},"rect"),toString:o(function(){return this._},"toString")};WB=A1e});var D1e=N(()=>{"use strict";_1e()});function ZS(t){return o(function(){return t},"constant")}var L1e=N(()=>{"use strict";o(ZS,"default")});function R1e(t){return t[0]}function N1e(t){return t[1]}var M1e=N(()=>{"use strict";o(R1e,"x");o(N1e,"y")});var I1e,O1e=N(()=>{"use strict";I1e=Array.prototype.slice});function GJe(t){return t.source}function VJe(t){return t.target}function UJe(t){var e=GJe,r=VJe,n=R1e,i=N1e,a=null;function s(){var l,u=I1e.call(arguments),h=e.apply(this,u),f=r.apply(this,u);if(a||(a=l=WB()),t(a,+n.apply(this,(u[0]=h,u)),+i.apply(this,u),+n.apply(this,(u[0]=f,u)),+i.apply(this,u)),l)return a=null,l+""||null}return o(s,"link"),s.source=function(l){return arguments.length?(e=l,s):e},s.target=function(l){return arguments.length?(r=l,s):r},s.x=function(l){return arguments.length?(n=typeof l=="function"?l:ZS(+l),s):n},s.y=function(l){return arguments.length?(i=typeof l=="function"?l:ZS(+l),s):i},s.context=function(l){return arguments.length?(a=l??null,s):a},s}function HJe(t,e,r,n,i){t.moveTo(e,r),t.bezierCurveTo(e=(e+n)/2,r,e,i,n,i)}function qB(){return UJe(HJe)}var P1e=N(()=>{"use strict";D1e();O1e();L1e();M1e();o(GJe,"linkSource");o(VJe,"linkTarget");o(UJe,"link");o(HJe,"curveHorizontal");o(qB,"linkHorizontal")});var B1e=N(()=>{"use strict";P1e()});function WJe(t){return[t.source.x1,t.y0]}function qJe(t){return[t.target.x0,t.y1]}function JS(){return qB().source(WJe).target(qJe)}var F1e=N(()=>{"use strict";B1e();o(WJe,"horizontalSource");o(qJe,"horizontalTarget");o(JS,"default")});var $1e=N(()=>{"use strict";C1e();zB();F1e()});var g4,z1e=N(()=>{"use strict";g4=class t{static{o(this,"Uid")}static{this.count=0}static next(e){return new t(e+ ++t.count)}constructor(e){this.id=e,this.href=`#${e}`}toString(){return"url("+this.href+")"}}});var YJe,XJe,G1e,V1e=N(()=>{"use strict";zt();dr();$1e();Ei();z1e();YJe={left:BB,right:FB,center:$B,justify:m4},XJe=o(function(t,e,r,n){let{securityLevel:i,sankey:a}=me(),s=A3.sankey,l;i==="sandbox"&&(l=Ge("#i"+e));let u=i==="sandbox"?Ge(l.nodes()[0].contentDocument.body):Ge("body"),h=i==="sandbox"?u.select(`[id="${e}"]`):Ge(`[id="${e}"]`),f=a?.width??s.width,d=a?.height??s.width,p=a?.useMaxWidth??s.useMaxWidth,m=a?.nodeAlignment??s.nodeAlignment,g=a?.prefix??s.prefix,y=a?.suffix??s.suffix,v=a?.showValues??s.showValues,x=n.db.getGraph(),b=YJe[m];QS().nodeId(I=>I.id).nodeWidth(10).nodePadding(10+(v?15:0)).nodeAlign(b).extent([[0,0],[f,d]])(x);let T=gu(e9);h.append("g").attr("class","nodes").selectAll(".node").data(x.nodes).join("g").attr("class","node").attr("id",I=>(I.uid=g4.next("node-")).id).attr("transform",function(I){return"translate("+I.x0+","+I.y0+")"}).attr("x",I=>I.x0).attr("y",I=>I.y0).append("rect").attr("height",I=>I.y1-I.y0).attr("width",I=>I.x1-I.x0).attr("fill",I=>T(I.id));let E=o(({id:I,value:D})=>v?`${I}
+${g}${Math.round(D*100)/100}${y}`:I,"getText");h.append("g").attr("class","node-labels").attr("font-size",14).selectAll("text").data(x.nodes).join("text").attr("x",I=>I.x0<f/2?I.x1+6:I.x0-6).attr("y",I=>(I.y1+I.y0)/2).attr("dy",`${v?"0":"0.35"}em`).attr("text-anchor",I=>I.x0<f/2?"start":"end").text(E);let A=h.append("g").attr("class","links").attr("fill","none").attr("stroke-opacity",.5).selectAll(".link").data(x.links).join("g").attr("class","link").style("mix-blend-mode","multiply"),S=a?.linkColor??"gradient";if(S==="gradient"){let I=A.append("linearGradient").attr("id",D=>(D.uid=g4.next("linearGradient-")).id).attr("gradientUnits","userSpaceOnUse").attr("x1",D=>D.source.x1).attr("x2",D=>D.target.x0);I.append("stop").attr("offset","0%").attr("stop-color",D=>T(D.source.id)),I.append("stop").attr("offset","100%").attr("stop-color",D=>T(D.target.id))}let _;switch(S){case"gradient":_=o(I=>I.uid,"coloring");break;case"source":_=o(I=>T(I.source.id),"coloring");break;case"target":_=o(I=>T(I.target.id),"coloring");break;default:_=S}A.append("path").attr("d",JS()).attr("stroke",_).attr("stroke-width",I=>Math.max(1,I.width)),Ao(void 0,h,0,p)},"draw"),G1e={draw:XJe}});var U1e,H1e=N(()=>{"use strict";U1e=o(t=>t.replaceAll(/^[^\S\n\r]+|[^\S\n\r]+$/g,"").replaceAll(/([\n\r])+/g,`
+`).trim(),"prepareTextForParsing")});var jJe,W1e,q1e=N(()=>{"use strict";jJe=o(t=>`.label {
+      font-family: ${t.fontFamily};
+    }`,"getStyles"),W1e=jJe});var Y1e={};hr(Y1e,{diagram:()=>QJe});var KJe,QJe,X1e=N(()=>{"use strict";m1e();y1e();V1e();H1e();q1e();KJe=d4.parse.bind(d4);d4.parse=t=>KJe(U1e(t));QJe={styles:W1e,parser:d4,db:g1e,renderer:G1e}});var Q1e,YB,tet,ret,net,iet,aet,Bf,XB=N(()=>{"use strict";ji();Ya();ir();mi();Q1e={packet:[]},YB=structuredClone(Q1e),tet=or.packet,ret=o(()=>{let t=Fi({...tet,...cr().packet});return t.showBits&&(t.paddingY+=10),t},"getConfig"),net=o(()=>YB.packet,"getPacket"),iet=o(t=>{t.length>0&&YB.packet.push(t)},"pushWord"),aet=o(()=>{Ar(),YB=structuredClone(Q1e)},"clear"),Bf={pushWord:iet,getPacket:net,getConfig:ret,clear:aet,setAccTitle:Lr,getAccTitle:Rr,setDiagramTitle:$r,getDiagramTitle:Ir,getAccDescription:Mr,setAccDescription:Nr}});var set,oet,cet,Z1e,J1e=N(()=>{"use strict";kp();vt();T1();XB();set=1e4,oet=o(t=>{$c(t,Bf);let e=-1,r=[],n=1,{bitsPerRow:i}=Bf.getConfig();for(let{start:a,end:s,label:l}of t.blocks){if(s&&s<a)throw new Error(`Packet block ${a} - ${s} is invalid. End must be greater than start.`);if(a!==e+1)throw new Error(`Packet block ${a} - ${s??a} is not contiguous. It should start from ${e+1}.`);for(e=s??a,Y.debug(`Packet block ${a} - ${e} with label ${l}`);r.length<=i+1&&Bf.getPacket().length<set;){let[u,h]=cet({start:a,end:s,label:l},n,i);if(r.push(u),u.end+1===n*i&&(Bf.pushWord(r),r=[],n++),!h)break;({start:a,end:s,label:l}=h)}}Bf.pushWord(r)},"populate"),cet=o((t,e,r)=>{if(t.end===void 0&&(t.end=t.start),t.start>t.end)throw new Error(`Block start ${t.start} is greater than block end ${t.end}.`);return t.end+1<=e*r?[t,void 0]:[{start:t.start,end:e*r-1,label:t.label},{start:e*r,end:t.end,label:t.label}]},"getNextFittingBlock"),Z1e={parse:o(async t=>{let e=await uo("packet",t);Y.debug(e),oet(e)},"parse")}});var uet,het,eye,tye=N(()=>{"use strict";Vc();Ei();uet=o((t,e,r,n)=>{let i=n.db,a=i.getConfig(),{rowHeight:s,paddingY:l,bitWidth:u,bitsPerRow:h}=a,f=i.getPacket(),d=i.getDiagramTitle(),p=s+l,m=p*(f.length+1)-(d?0:s),g=u*h+2,y=sa(e);y.attr("viewbox",`0 0 ${g} ${m}`),vn(y,m,g,a.useMaxWidth);for(let[v,x]of f.entries())het(y,x,v,a);y.append("text").text(d).attr("x",g/2).attr("y",m-p/2).attr("dominant-baseline","middle").attr("text-anchor","middle").attr("class","packetTitle")},"draw"),het=o((t,e,r,{rowHeight:n,paddingX:i,paddingY:a,bitWidth:s,bitsPerRow:l,showBits:u})=>{let h=t.append("g"),f=r*(n+a)+a;for(let d of e){let p=d.start%l*s+1,m=(d.end-d.start+1)*s-i;if(h.append("rect").attr("x",p).attr("y",f).attr("width",m).attr("height",n).attr("class","packetBlock"),h.append("text").attr("x",p+m/2).attr("y",f+n/2).attr("class","packetLabel").attr("dominant-baseline","middle").attr("text-anchor","middle").text(d.label),!u)continue;let g=d.end===d.start,y=f-2;h.append("text").attr("x",p+(g?m/2:0)).attr("y",y).attr("class","packetByte start").attr("dominant-baseline","auto").attr("text-anchor",g?"middle":"start").text(d.start),g||h.append("text").attr("x",p+m).attr("y",y).attr("class","packetByte end").attr("dominant-baseline","auto").attr("text-anchor","end").text(d.end)}},"drawWord"),eye={draw:uet}});var fet,rye,nye=N(()=>{"use strict";ir();fet={byteFontSize:"10px",startByteColor:"black",endByteColor:"black",labelColor:"black",labelFontSize:"12px",titleColor:"black",titleFontSize:"14px",blockStrokeColor:"black",blockStrokeWidth:"1",blockFillColor:"#efefef"},rye=o(({packet:t}={})=>{let e=Fi(fet,t);return`
+	.packetByte {
+		font-size: ${e.byteFontSize};
+	}
+	.packetByte.start {
+		fill: ${e.startByteColor};
+	}
+	.packetByte.end {
+		fill: ${e.endByteColor};
+	}
+	.packetLabel {
+		fill: ${e.labelColor};
+		font-size: ${e.labelFontSize};
+	}
+	.packetTitle {
+		fill: ${e.titleColor};
+		font-size: ${e.titleFontSize};
+	}
+	.packetBlock {
+		stroke: ${e.blockStrokeColor};
+		stroke-width: ${e.blockStrokeWidth};
+		fill: ${e.blockFillColor};
+	}
+	`},"styles")});var iye={};hr(iye,{diagram:()=>det});var det,aye=N(()=>{"use strict";XB();J1e();tye();nye();det={parser:Z1e,db:Bf,renderer:eye,styles:rye}});var fy,lye,jp,get,yet,cye,vet,xet,bet,wet,Tet,ket,Eet,Kp,jB=N(()=>{"use strict";ji();Ya();ir();mi();fy={showLegend:!0,ticks:5,max:null,min:0,graticule:"circle"},lye={axes:[],curves:[],options:fy},jp=structuredClone(lye),get=or.radar,yet=o(()=>Fi({...get,...cr().radar}),"getConfig"),cye=o(()=>jp.axes,"getAxes"),vet=o(()=>jp.curves,"getCurves"),xet=o(()=>jp.options,"getOptions"),bet=o(t=>{jp.axes=t.map(e=>({name:e.name,label:e.label??e.name}))},"setAxes"),wet=o(t=>{jp.curves=t.map(e=>({name:e.name,label:e.label??e.name,entries:Tet(e.entries)}))},"setCurves"),Tet=o(t=>{if(t[0].axis==null)return t.map(r=>r.value);let e=cye();if(e.length===0)throw new Error("Axes must be populated before curves for reference entries");return e.map(r=>{let n=t.find(i=>i.axis?.$refText===r.name);if(n===void 0)throw new Error("Missing entry for axis "+r.label);return n.value})},"computeCurveEntries"),ket=o(t=>{let e=t.reduce((r,n)=>(r[n.name]=n,r),{});jp.options={showLegend:e.showLegend?.value??fy.showLegend,ticks:e.ticks?.value??fy.ticks,max:e.max?.value??fy.max,min:e.min?.value??fy.min,graticule:e.graticule?.value??fy.graticule}},"setOptions"),Eet=o(()=>{Ar(),jp=structuredClone(lye)},"clear"),Kp={getAxes:cye,getCurves:vet,getOptions:xet,setAxes:bet,setCurves:wet,setOptions:ket,getConfig:yet,clear:Eet,setAccTitle:Lr,getAccTitle:Rr,setDiagramTitle:$r,getDiagramTitle:Ir,getAccDescription:Mr,setAccDescription:Nr}});var Cet,uye,hye=N(()=>{"use strict";kp();vt();T1();jB();Cet=o(t=>{$c(t,Kp);let{axes:e,curves:r,options:n}=t;Kp.setAxes(e),Kp.setCurves(r),Kp.setOptions(n)},"populate"),uye={parse:o(async t=>{let e=await uo("radar",t);Y.debug(e),Cet(e)},"parse")}});function Ret(t,e,r,n,i,a,s){let l=e.length,u=Math.min(s.width,s.height)/2;r.forEach((h,f)=>{if(h.entries.length!==l)return;let d=h.entries.map((p,m)=>{let g=2*Math.PI*m/l-Math.PI/2,y=Net(p,n,i,u),v=y*Math.cos(g),x=y*Math.sin(g);return{x:v,y:x}});a==="circle"?t.append("path").attr("d",Met(d,s.curveTension)).attr("class",`radarCurve-${f}`):a==="polygon"&&t.append("polygon").attr("points",d.map(p=>`${p.x},${p.y}`).join(" ")).attr("class",`radarCurve-${f}`)})}function Net(t,e,r,n){let i=Math.min(Math.max(t,e),r);return n*(i-e)/(r-e)}function Met(t,e){let r=t.length,n=`M${t[0].x},${t[0].y}`;for(let i=0;i<r;i++){let a=t[(i-1+r)%r],s=t[i],l=t[(i+1)%r],u=t[(i+2)%r],h={x:s.x+(l.x-a.x)*e,y:s.y+(l.y-a.y)*e},f={x:l.x-(u.x-s.x)*e,y:l.y-(u.y-s.y)*e};n+=` C${h.x},${h.y} ${f.x},${f.y} ${l.x},${l.y}`}return`${n} Z`}function Iet(t,e,r,n){if(!r)return;let i=(n.width/2+n.marginRight)*3/4,a=-(n.height/2+n.marginTop)*3/4,s=20;e.forEach((l,u)=>{let h=t.append("g").attr("transform",`translate(${i}, ${a+u*s})`);h.append("rect").attr("width",12).attr("height",12).attr("class",`radarLegendBox-${u}`),h.append("text").attr("x",16).attr("y",0).attr("class","radarLegendText").text(l.label)})}var Aet,_et,Det,Let,fye,dye=N(()=>{"use strict";Vc();Aet=o((t,e,r,n)=>{let i=n.db,a=i.getAxes(),s=i.getCurves(),l=i.getOptions(),u=i.getConfig(),h=i.getDiagramTitle(),f=sa(e),d=_et(f,u),p=l.max??Math.max(...s.map(y=>Math.max(...y.entries))),m=l.min,g=Math.min(u.width,u.height)/2;Det(d,a,g,l.ticks,l.graticule),Let(d,a,g,u),Ret(d,a,s,m,p,l.graticule,u),Iet(d,s,l.showLegend,u),d.append("text").attr("class","radarTitle").text(h).attr("x",0).attr("y",-u.height/2-u.marginTop)},"draw"),_et=o((t,e)=>{let r=e.width+e.marginLeft+e.marginRight,n=e.height+e.marginTop+e.marginBottom,i={x:e.marginLeft+e.width/2,y:e.marginTop+e.height/2};return t.attr("viewbox",`0 0 ${r} ${n}`).attr("width",r).attr("height",n),t.append("g").attr("transform",`translate(${i.x}, ${i.y})`)},"drawFrame"),Det=o((t,e,r,n,i)=>{if(i==="circle")for(let a=0;a<n;a++){let s=r*(a+1)/n;t.append("circle").attr("r",s).attr("class","radarGraticule")}else if(i==="polygon"){let a=e.length;for(let s=0;s<n;s++){let l=r*(s+1)/n,u=e.map((h,f)=>{let d=2*f*Math.PI/a-Math.PI/2,p=l*Math.cos(d),m=l*Math.sin(d);return`${p},${m}`}).join(" ");t.append("polygon").attr("points",u).attr("class","radarGraticule")}}},"drawGraticule"),Let=o((t,e,r,n)=>{let i=e.length;for(let a=0;a<i;a++){let s=e[a].label,l=2*a*Math.PI/i-Math.PI/2;t.append("line").attr("x1",0).attr("y1",0).attr("x2",r*n.axisScaleFactor*Math.cos(l)).attr("y2",r*n.axisScaleFactor*Math.sin(l)).attr("class","radarAxisLine"),t.append("text").text(s).attr("x",r*n.axisLabelFactor*Math.cos(l)).attr("y",r*n.axisLabelFactor*Math.sin(l)).attr("class","radarAxisLabel")}},"drawAxes");o(Ret,"drawCurves");o(Net,"relativeRadius");o(Met,"closedRoundCurve");o(Iet,"drawLegend");fye={draw:Aet}});var Oet,Pet,pye,mye=N(()=>{"use strict";ir();_y();ji();Oet=o((t,e)=>{let r="";for(let n=0;n<t.THEME_COLOR_LIMIT;n++){let i=t[`cScale${n}`];r+=`
+		.radarCurve-${n} {
+			color: ${i};
+			fill: ${i};
+			fill-opacity: ${e.curveOpacity};
+			stroke: ${i};
+			stroke-width: ${e.curveStrokeWidth};
+		}
+		.radarLegendBox-${n} {
+			fill: ${i};
+			fill-opacity: ${e.curveOpacity};
+			stroke: ${i};
+		}
+		`}return r},"genIndexStyles"),Pet=o(t=>{let e=oh(),r=cr(),n=Fi(e,r.themeVariables),i=Fi(n.radar,t);return{themeVariables:n,radarOptions:i}},"buildRadarStyleOptions"),pye=o(({radar:t}={})=>{let{themeVariables:e,radarOptions:r}=Pet(t);return`
+	.radarTitle {
+		font-size: ${e.fontSize};
+		color: ${e.titleColor};
+		dominant-baseline: hanging;
+		text-anchor: middle;
+	}
+	.radarAxisLine {
+		stroke: ${r.axisColor};
+		stroke-width: ${r.axisStrokeWidth};
+	}
+	.radarAxisLabel {
+		dominant-baseline: middle;
+		text-anchor: middle;
+		font-size: ${r.axisLabelFontSize}px;
+		color: ${r.axisColor};
+	}
+	.radarGraticule {
+		fill: ${r.graticuleColor};
+		fill-opacity: ${r.graticuleOpacity};
+		stroke: ${r.graticuleColor};
+		stroke-width: ${r.graticuleStrokeWidth};
+	}
+	.radarLegendText {
+		text-anchor: start;
+		font-size: ${r.legendFontSize}px;
+		dominant-baseline: hanging;
+	}
+	${Oet(e,r)}
+	`},"styles")});var gye={};hr(gye,{diagram:()=>Bet});var Bet,yye=N(()=>{"use strict";jB();hye();dye();mye();Bet={parser:uye,db:Kp,renderer:fye,styles:pye}});var KB,bye,wye=N(()=>{"use strict";KB=function(){var t=o(function(w,C,T,E){for(T=T||{},E=w.length;E--;T[w[E]]=C);return T},"o"),e=[1,7],r=[1,13],n=[1,14],i=[1,15],a=[1,19],s=[1,16],l=[1,17],u=[1,18],h=[8,30],f=[8,21,28,29,30,31,32,40,44,47],d=[1,23],p=[1,24],m=[8,15,16,21,28,29,30,31,32,40,44,47],g=[8,15,16,21,27,28,29,30,31,32,40,44,47],y=[1,49],v={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,spaceLines:3,SPACELINE:4,NL:5,separator:6,SPACE:7,EOF:8,start:9,BLOCK_DIAGRAM_KEY:10,document:11,stop:12,statement:13,link:14,LINK:15,START_LINK:16,LINK_LABEL:17,STR:18,nodeStatement:19,columnsStatement:20,SPACE_BLOCK:21,blockStatement:22,classDefStatement:23,cssClassStatement:24,styleStatement:25,node:26,SIZE:27,COLUMNS:28,"id-block":29,end:30,block:31,NODE_ID:32,nodeShapeNLabel:33,dirList:34,DIR:35,NODE_DSTART:36,NODE_DEND:37,BLOCK_ARROW_START:38,BLOCK_ARROW_END:39,classDef:40,CLASSDEF_ID:41,CLASSDEF_STYLEOPTS:42,DEFAULT:43,class:44,CLASSENTITY_IDS:45,STYLECLASS:46,style:47,STYLE_ENTITY_IDS:48,STYLE_DEFINITION_DATA:49,$accept:0,$end:1},terminals_:{2:"error",4:"SPACELINE",5:"NL",7:"SPACE",8:"EOF",10:"BLOCK_DIAGRAM_KEY",15:"LINK",16:"START_LINK",17:"LINK_LABEL",18:"STR",21:"SPACE_BLOCK",27:"SIZE",28:"COLUMNS",29:"id-block",30:"end",31:"block",32:"NODE_ID",35:"DIR",36:"NODE_DSTART",37:"NODE_DEND",38:"BLOCK_ARROW_START",39:"BLOCK_ARROW_END",40:"classDef",41:"CLASSDEF_ID",42:"CLASSDEF_STYLEOPTS",43:"DEFAULT",44:"class",45:"CLASSENTITY_IDS",46:"STYLECLASS",47:"style",48:"STYLE_ENTITY_IDS",49:"STYLE_DEFINITION_DATA"},productions_:[0,[3,1],[3,2],[3,2],[6,1],[6,1],[6,1],[9,3],[12,1],[12,1],[12,2],[12,2],[11,1],[11,2],[14,1],[14,4],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[19,3],[19,2],[19,1],[20,1],[22,4],[22,3],[26,1],[26,2],[34,1],[34,2],[33,3],[33,4],[23,3],[23,3],[24,3],[25,3]],performAction:o(function(C,T,E,A,S,_,I){var D=_.length-1;switch(S){case 4:A.getLogger().debug("Rule: separator (NL) ");break;case 5:A.getLogger().debug("Rule: separator (Space) ");break;case 6:A.getLogger().debug("Rule: separator (EOF) ");break;case 7:A.getLogger().debug("Rule: hierarchy: ",_[D-1]),A.setHierarchy(_[D-1]);break;case 8:A.getLogger().debug("Stop NL ");break;case 9:A.getLogger().debug("Stop EOF ");break;case 10:A.getLogger().debug("Stop NL2 ");break;case 11:A.getLogger().debug("Stop EOF2 ");break;case 12:A.getLogger().debug("Rule: statement: ",_[D]),typeof _[D].length=="number"?this.$=_[D]:this.$=[_[D]];break;case 13:A.getLogger().debug("Rule: statement #2: ",_[D-1]),this.$=[_[D-1]].concat(_[D]);break;case 14:A.getLogger().debug("Rule: link: ",_[D],C),this.$={edgeTypeStr:_[D],label:""};break;case 15:A.getLogger().debug("Rule: LABEL link: ",_[D-3],_[D-1],_[D]),this.$={edgeTypeStr:_[D],label:_[D-1]};break;case 18:let k=parseInt(_[D]),L=A.generateId();this.$={id:L,type:"space",label:"",width:k,children:[]};break;case 23:A.getLogger().debug("Rule: (nodeStatement link node) ",_[D-2],_[D-1],_[D]," typestr: ",_[D-1].edgeTypeStr);let R=A.edgeStrToEdgeData(_[D-1].edgeTypeStr);this.$=[{id:_[D-2].id,label:_[D-2].label,type:_[D-2].type,directions:_[D-2].directions},{id:_[D-2].id+"-"+_[D].id,start:_[D-2].id,end:_[D].id,label:_[D-1].label,type:"edge",directions:_[D].directions,arrowTypeEnd:R,arrowTypeStart:"arrow_open"},{id:_[D].id,label:_[D].label,type:A.typeStr2Type(_[D].typeStr),directions:_[D].directions}];break;case 24:A.getLogger().debug("Rule: nodeStatement (abc88 node size) ",_[D-1],_[D]),this.$={id:_[D-1].id,label:_[D-1].label,type:A.typeStr2Type(_[D-1].typeStr),directions:_[D-1].directions,widthInColumns:parseInt(_[D],10)};break;case 25:A.getLogger().debug("Rule: nodeStatement (node) ",_[D]),this.$={id:_[D].id,label:_[D].label,type:A.typeStr2Type(_[D].typeStr),directions:_[D].directions,widthInColumns:1};break;case 26:A.getLogger().debug("APA123",this?this:"na"),A.getLogger().debug("COLUMNS: ",_[D]),this.$={type:"column-setting",columns:_[D]==="auto"?-1:parseInt(_[D])};break;case 27:A.getLogger().debug("Rule: id-block statement : ",_[D-2],_[D-1]);let O=A.generateId();this.$={..._[D-2],type:"composite",children:_[D-1]};break;case 28:A.getLogger().debug("Rule: blockStatement : ",_[D-2],_[D-1],_[D]);let M=A.generateId();this.$={id:M,type:"composite",label:"",children:_[D-1]};break;case 29:A.getLogger().debug("Rule: node (NODE_ID separator): ",_[D]),this.$={id:_[D]};break;case 30:A.getLogger().debug("Rule: node (NODE_ID nodeShapeNLabel separator): ",_[D-1],_[D]),this.$={id:_[D-1],label:_[D].label,typeStr:_[D].typeStr,directions:_[D].directions};break;case 31:A.getLogger().debug("Rule: dirList: ",_[D]),this.$=[_[D]];break;case 32:A.getLogger().debug("Rule: dirList: ",_[D-1],_[D]),this.$=[_[D-1]].concat(_[D]);break;case 33:A.getLogger().debug("Rule: nodeShapeNLabel: ",_[D-2],_[D-1],_[D]),this.$={typeStr:_[D-2]+_[D],label:_[D-1]};break;case 34:A.getLogger().debug("Rule: BLOCK_ARROW nodeShapeNLabel: ",_[D-3],_[D-2]," #3:",_[D-1],_[D]),this.$={typeStr:_[D-3]+_[D],label:_[D-2],directions:_[D-1]};break;case 35:case 36:this.$={type:"classDef",id:_[D-1].trim(),css:_[D].trim()};break;case 37:this.$={type:"applyClass",id:_[D-1].trim(),styleClass:_[D].trim()};break;case 38:this.$={type:"applyStyles",id:_[D-1].trim(),stylesStr:_[D].trim()};break}},"anonymous"),table:[{9:1,10:[1,2]},{1:[3]},{11:3,13:4,19:5,20:6,21:e,22:8,23:9,24:10,25:11,26:12,28:r,29:n,31:i,32:a,40:s,44:l,47:u},{8:[1,20]},t(h,[2,12],{13:4,19:5,20:6,22:8,23:9,24:10,25:11,26:12,11:21,21:e,28:r,29:n,31:i,32:a,40:s,44:l,47:u}),t(f,[2,16],{14:22,15:d,16:p}),t(f,[2,17]),t(f,[2,18]),t(f,[2,19]),t(f,[2,20]),t(f,[2,21]),t(f,[2,22]),t(m,[2,25],{27:[1,25]}),t(f,[2,26]),{19:26,26:12,32:a},{11:27,13:4,19:5,20:6,21:e,22:8,23:9,24:10,25:11,26:12,28:r,29:n,31:i,32:a,40:s,44:l,47:u},{41:[1,28],43:[1,29]},{45:[1,30]},{48:[1,31]},t(g,[2,29],{33:32,36:[1,33],38:[1,34]}),{1:[2,7]},t(h,[2,13]),{26:35,32:a},{32:[2,14]},{17:[1,36]},t(m,[2,24]),{11:37,13:4,14:22,15:d,16:p,19:5,20:6,21:e,22:8,23:9,24:10,25:11,26:12,28:r,29:n,31:i,32:a,40:s,44:l,47:u},{30:[1,38]},{42:[1,39]},{42:[1,40]},{46:[1,41]},{49:[1,42]},t(g,[2,30]),{18:[1,43]},{18:[1,44]},t(m,[2,23]),{18:[1,45]},{30:[1,46]},t(f,[2,28]),t(f,[2,35]),t(f,[2,36]),t(f,[2,37]),t(f,[2,38]),{37:[1,47]},{34:48,35:y},{15:[1,50]},t(f,[2,27]),t(g,[2,33]),{39:[1,51]},{34:52,35:y,39:[2,31]},{32:[2,15]},t(g,[2,34]),{39:[2,32]}],defaultActions:{20:[2,7],23:[2,14],50:[2,15],52:[2,32]},parseError:o(function(C,T){if(T.recoverable)this.trace(C);else{var E=new Error(C);throw E.hash=T,E}},"parseError"),parse:o(function(C){var T=this,E=[0],A=[],S=[null],_=[],I=this.table,D="",k=0,L=0,R=0,O=2,M=1,B=_.slice.call(arguments,1),F=Object.create(this.lexer),P={yy:{}};for(var z in this.yy)Object.prototype.hasOwnProperty.call(this.yy,z)&&(P.yy[z]=this.yy[z]);F.setInput(C,P.yy),P.yy.lexer=F,P.yy.parser=this,typeof F.yylloc>"u"&&(F.yylloc={});var $=F.yylloc;_.push($);var H=F.options&&F.options.ranges;typeof P.yy.parseError=="function"?this.parseError=P.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Q(ce){E.length=E.length-2*ce,S.length=S.length-ce,_.length=_.length-ce}o(Q,"popStack");function j(){var ce;return ce=A.pop()||F.lex()||M,typeof ce!="number"&&(ce instanceof Array&&(A=ce,ce=A.pop()),ce=T.symbols_[ce]||ce),ce}o(j,"lex");for(var ie,ne,le,he,K,X,te={},J,se,ue,Z;;){if(le=E[E.length-1],this.defaultActions[le]?he=this.defaultActions[le]:((ie===null||typeof ie>"u")&&(ie=j()),he=I[le]&&I[le][ie]),typeof he>"u"||!he.length||!he[0]){var Se="";Z=[];for(J in I[le])this.terminals_[J]&&J>O&&Z.push("'"+this.terminals_[J]+"'");F.showPosition?Se="Parse error on line "+(k+1)+`:
+`+F.showPosition()+`
+Expecting `+Z.join(", ")+", got '"+(this.terminals_[ie]||ie)+"'":Se="Parse error on line "+(k+1)+": Unexpected "+(ie==M?"end of input":"'"+(this.terminals_[ie]||ie)+"'"),this.parseError(Se,{text:F.match,token:this.terminals_[ie]||ie,line:F.yylineno,loc:$,expected:Z})}if(he[0]instanceof Array&&he.length>1)throw new Error("Parse Error: multiple actions possible at state: "+le+", token: "+ie);switch(he[0]){case 1:E.push(ie),S.push(F.yytext),_.push(F.yylloc),E.push(he[1]),ie=null,ne?(ie=ne,ne=null):(L=F.yyleng,D=F.yytext,k=F.yylineno,$=F.yylloc,R>0&&R--);break;case 2:if(se=this.productions_[he[1]][1],te.$=S[S.length-se],te._$={first_line:_[_.length-(se||1)].first_line,last_line:_[_.length-1].last_line,first_column:_[_.length-(se||1)].first_column,last_column:_[_.length-1].last_column},H&&(te._$.range=[_[_.length-(se||1)].range[0],_[_.length-1].range[1]]),X=this.performAction.apply(te,[D,L,k,P.yy,he[1],S,_].concat(B)),typeof X<"u")return X;se&&(E=E.slice(0,-1*se*2),S=S.slice(0,-1*se),_=_.slice(0,-1*se)),E.push(this.productions_[he[1]][0]),S.push(te.$),_.push(te._$),ue=I[E[E.length-2]][E[E.length-1]],E.push(ue);break;case 3:return!0}}return!0},"parse")},x=function(){var w={EOF:1,parseError:o(function(T,E){if(this.yy.parser)this.yy.parser.parseError(T,E);else throw new Error(T)},"parseError"),setInput:o(function(C,T){return this.yy=T||this.yy||{},this._input=C,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var C=this._input[0];this.yytext+=C,this.yyleng++,this.offset++,this.match+=C,this.matched+=C;var T=C.match(/(?:\r\n?|\n).*/g);return T?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),C},"input"),unput:o(function(C){var T=C.length,E=C.split(/(?:\r\n?|\n)/g);this._input=C+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-T),this.offset-=T;var A=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),E.length-1&&(this.yylineno-=E.length-1);var S=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:E?(E.length===A.length?this.yylloc.first_column:0)+A[A.length-E.length].length-E[0].length:this.yylloc.first_column-T},this.options.ranges&&(this.yylloc.range=[S[0],S[0]+this.yyleng-T]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
+`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(C){this.unput(this.match.slice(C))},"less"),pastInput:o(function(){var C=this.matched.substr(0,this.matched.length-this.match.length);return(C.length>20?"...":"")+C.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var C=this.match;return C.length<20&&(C+=this._input.substr(0,20-C.length)),(C.substr(0,20)+(C.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var C=this.pastInput(),T=new Array(C.length+1).join("-");return C+this.upcomingInput()+`
+`+T+"^"},"showPosition"),test_match:o(function(C,T){var E,A,S;if(this.options.backtrack_lexer&&(S={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(S.yylloc.range=this.yylloc.range.slice(0))),A=C[0].match(/(?:\r\n?|\n).*/g),A&&(this.yylineno+=A.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:A?A[A.length-1].length-A[A.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+C[0].length},this.yytext+=C[0],this.match+=C[0],this.matches=C,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(C[0].length),this.matched+=C[0],E=this.performAction.call(this,this.yy,this,T,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),E)return E;if(this._backtrack){for(var _ in S)this[_]=S[_];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var C,T,E,A;this._more||(this.yytext="",this.match="");for(var S=this._currentRules(),_=0;_<S.length;_++)if(E=this._input.match(this.rules[S[_]]),E&&(!T||E[0].length>T[0].length)){if(T=E,A=_,this.options.backtrack_lexer){if(C=this.test_match(E,S[_]),C!==!1)return C;if(this._backtrack){T=!1;continue}else return!1}else if(!this.options.flex)break}return T?(C=this.test_match(T,S[A]),C!==!1?C:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text.
+`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var T=this.next();return T||this.lex()},"lex"),begin:o(function(T){this.conditionStack.push(T)},"begin"),popState:o(function(){var T=this.conditionStack.length-1;return T>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(T){return T=this.conditionStack.length-1-Math.abs(T||0),T>=0?this.conditionStack[T]:"INITIAL"},"topState"),pushState:o(function(T){this.begin(T)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{},performAction:o(function(T,E,A,S){var _=S;switch(A){case 0:return 10;case 1:return T.getLogger().debug("Found space-block"),31;break;case 2:return T.getLogger().debug("Found nl-block"),31;break;case 3:return T.getLogger().debug("Found space-block"),29;break;case 4:T.getLogger().debug(".",E.yytext);break;case 5:T.getLogger().debug("_",E.yytext);break;case 6:return 5;case 7:return E.yytext=-1,28;break;case 8:return E.yytext=E.yytext.replace(/columns\s+/,""),T.getLogger().debug("COLUMNS (LEX)",E.yytext),28;break;case 9:this.pushState("md_string");break;case 10:return"MD_STR";case 11:this.popState();break;case 12:this.pushState("string");break;case 13:T.getLogger().debug("LEX: POPPING STR:",E.yytext),this.popState();break;case 14:return T.getLogger().debug("LEX: STR end:",E.yytext),"STR";break;case 15:return E.yytext=E.yytext.replace(/space\:/,""),T.getLogger().debug("SPACE NUM (LEX)",E.yytext),21;break;case 16:return E.yytext="1",T.getLogger().debug("COLUMNS (LEX)",E.yytext),21;break;case 17:return 43;case 18:return"LINKSTYLE";case 19:return"INTERPOLATE";case 20:return this.pushState("CLASSDEF"),40;break;case 21:return this.popState(),this.pushState("CLASSDEFID"),"DEFAULT_CLASSDEF_ID";break;case 22:return this.popState(),this.pushState("CLASSDEFID"),41;break;case 23:return this.popState(),42;break;case 24:return this.pushState("CLASS"),44;break;case 25:return this.popState(),this.pushState("CLASS_STYLE"),45;break;case 26:return this.popState(),46;break;case 27:return this.pushState("STYLE_STMNT"),47;break;case 28:return this.popState(),this.pushState("STYLE_DEFINITION"),48;break;case 29:return this.popState(),49;break;case 30:return this.pushState("acc_title"),"acc_title";break;case 31:return this.popState(),"acc_title_value";break;case 32:return this.pushState("acc_descr"),"acc_descr";break;case 33:return this.popState(),"acc_descr_value";break;case 34:this.pushState("acc_descr_multiline");break;case 35:this.popState();break;case 36:return"acc_descr_multiline_value";case 37:return 30;case 38:return this.popState(),T.getLogger().debug("Lex: (("),"NODE_DEND";break;case 39:return this.popState(),T.getLogger().debug("Lex: (("),"NODE_DEND";break;case 40:return this.popState(),T.getLogger().debug("Lex: ))"),"NODE_DEND";break;case 41:return this.popState(),T.getLogger().debug("Lex: (("),"NODE_DEND";break;case 42:return this.popState(),T.getLogger().debug("Lex: (("),"NODE_DEND";break;case 43:return this.popState(),T.getLogger().debug("Lex: (-"),"NODE_DEND";break;case 44:return this.popState(),T.getLogger().debug("Lex: -)"),"NODE_DEND";break;case 45:return this.popState(),T.getLogger().debug("Lex: (("),"NODE_DEND";break;case 46:return this.popState(),T.getLogger().debug("Lex: ]]"),"NODE_DEND";break;case 47:return this.popState(),T.getLogger().debug("Lex: ("),"NODE_DEND";break;case 48:return this.popState(),T.getLogger().debug("Lex: ])"),"NODE_DEND";break;case 49:return this.popState(),T.getLogger().debug("Lex: /]"),"NODE_DEND";break;case 50:return this.popState(),T.getLogger().debug("Lex: /]"),"NODE_DEND";break;case 51:return this.popState(),T.getLogger().debug("Lex: )]"),"NODE_DEND";break;case 52:return this.popState(),T.getLogger().debug("Lex: )"),"NODE_DEND";break;case 53:return this.popState(),T.getLogger().debug("Lex: ]>"),"NODE_DEND";break;case 54:return this.popState(),T.getLogger().debug("Lex: ]"),"NODE_DEND";break;case 55:return T.getLogger().debug("Lexa: -)"),this.pushState("NODE"),36;break;case 56:return T.getLogger().debug("Lexa: (-"),this.pushState("NODE"),36;break;case 57:return T.getLogger().debug("Lexa: ))"),this.pushState("NODE"),36;break;case 58:return T.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;break;case 59:return T.getLogger().debug("Lex: ((("),this.pushState("NODE"),36;break;case 60:return T.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;break;case 61:return T.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;break;case 62:return T.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;break;case 63:return T.getLogger().debug("Lexc: >"),this.pushState("NODE"),36;break;case 64:return T.getLogger().debug("Lexa: (["),this.pushState("NODE"),36;break;case 65:return T.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;break;case 66:return this.pushState("NODE"),36;break;case 67:return this.pushState("NODE"),36;break;case 68:return this.pushState("NODE"),36;break;case 69:return this.pushState("NODE"),36;break;case 70:return this.pushState("NODE"),36;break;case 71:return this.pushState("NODE"),36;break;case 72:return this.pushState("NODE"),36;break;case 73:return T.getLogger().debug("Lexa: ["),this.pushState("NODE"),36;break;case 74:return this.pushState("BLOCK_ARROW"),T.getLogger().debug("LEX ARR START"),38;break;case 75:return T.getLogger().debug("Lex: NODE_ID",E.yytext),32;break;case 76:return T.getLogger().debug("Lex: EOF",E.yytext),8;break;case 77:this.pushState("md_string");break;case 78:this.pushState("md_string");break;case 79:return"NODE_DESCR";case 80:this.popState();break;case 81:T.getLogger().debug("Lex: Starting string"),this.pushState("string");break;case 82:T.getLogger().debug("LEX ARR: Starting string"),this.pushState("string");break;case 83:return T.getLogger().debug("LEX: NODE_DESCR:",E.yytext),"NODE_DESCR";break;case 84:T.getLogger().debug("LEX POPPING"),this.popState();break;case 85:T.getLogger().debug("Lex: =>BAE"),this.pushState("ARROW_DIR");break;case 86:return E.yytext=E.yytext.replace(/^,\s*/,""),T.getLogger().debug("Lex (right): dir:",E.yytext),"DIR";break;case 87:return E.yytext=E.yytext.replace(/^,\s*/,""),T.getLogger().debug("Lex (left):",E.yytext),"DIR";break;case 88:return E.yytext=E.yytext.replace(/^,\s*/,""),T.getLogger().debug("Lex (x):",E.yytext),"DIR";break;case 89:return E.yytext=E.yytext.replace(/^,\s*/,""),T.getLogger().debug("Lex (y):",E.yytext),"DIR";break;case 90:return E.yytext=E.yytext.replace(/^,\s*/,""),T.getLogger().debug("Lex (up):",E.yytext),"DIR";break;case 91:return E.yytext=E.yytext.replace(/^,\s*/,""),T.getLogger().debug("Lex (down):",E.yytext),"DIR";break;case 92:return E.yytext="]>",T.getLogger().debug("Lex (ARROW_DIR end):",E.yytext),this.popState(),this.popState(),"BLOCK_ARROW_END";break;case 93:return T.getLogger().debug("Lex: LINK","#"+E.yytext+"#"),15;break;case 94:return T.getLogger().debug("Lex: LINK",E.yytext),15;break;case 95:return T.getLogger().debug("Lex: LINK",E.yytext),15;break;case 96:return T.getLogger().debug("Lex: LINK",E.yytext),15;break;case 97:return T.getLogger().debug("Lex: START_LINK",E.yytext),this.pushState("LLABEL"),16;break;case 98:return T.getLogger().debug("Lex: START_LINK",E.yytext),this.pushState("LLABEL"),16;break;case 99:return T.getLogger().debug("Lex: START_LINK",E.yytext),this.pushState("LLABEL"),16;break;case 100:this.pushState("md_string");break;case 101:return T.getLogger().debug("Lex: Starting string"),this.pushState("string"),"LINK_LABEL";break;case 102:return this.popState(),T.getLogger().debug("Lex: LINK","#"+E.yytext+"#"),15;break;case 103:return this.popState(),T.getLogger().debug("Lex: LINK",E.yytext),15;break;case 104:return this.popState(),T.getLogger().debug("Lex: LINK",E.yytext),15;break;case 105:return T.getLogger().debug("Lex: COLON",E.yytext),E.yytext=E.yytext.slice(1),27;break}},"anonymous"),rules:[/^(?:block-beta\b)/,/^(?:block\s+)/,/^(?:block\n+)/,/^(?:block:)/,/^(?:[\s]+)/,/^(?:[\n]+)/,/^(?:((\u000D\u000A)|(\u000A)))/,/^(?:columns\s+auto\b)/,/^(?:columns\s+[\d]+)/,/^(?:["][`])/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:space[:]\d+)/,/^(?:space\b)/,/^(?:default\b)/,/^(?:linkStyle\b)/,/^(?:interpolate\b)/,/^(?:classDef\s+)/,/^(?:DEFAULT\s+)/,/^(?:\w+\s+)/,/^(?:[^\n]*)/,/^(?:class\s+)/,/^(?:(\w+)+((,\s*\w+)*))/,/^(?:[^\n]*)/,/^(?:style\s+)/,/^(?:(\w+)+((,\s*\w+)*))/,/^(?:[^\n]*)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:end\b\s*)/,/^(?:\(\(\()/,/^(?:\)\)\))/,/^(?:[\)]\))/,/^(?:\}\})/,/^(?:\})/,/^(?:\(-)/,/^(?:-\))/,/^(?:\(\()/,/^(?:\]\])/,/^(?:\()/,/^(?:\]\))/,/^(?:\\\])/,/^(?:\/\])/,/^(?:\)\])/,/^(?:[\)])/,/^(?:\]>)/,/^(?:[\]])/,/^(?:-\))/,/^(?:\(-)/,/^(?:\)\))/,/^(?:\))/,/^(?:\(\(\()/,/^(?:\(\()/,/^(?:\{\{)/,/^(?:\{)/,/^(?:>)/,/^(?:\(\[)/,/^(?:\()/,/^(?:\[\[)/,/^(?:\[\|)/,/^(?:\[\()/,/^(?:\)\)\))/,/^(?:\[\\)/,/^(?:\[\/)/,/^(?:\[\\)/,/^(?:\[)/,/^(?:<\[)/,/^(?:[^\(\[\n\-\)\{\}\s\<\>:]+)/,/^(?:$)/,/^(?:["][`])/,/^(?:["][`])/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["])/,/^(?:["])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:\]>\s*\()/,/^(?:,?\s*right\s*)/,/^(?:,?\s*left\s*)/,/^(?:,?\s*x\s*)/,/^(?:,?\s*y\s*)/,/^(?:,?\s*up\s*)/,/^(?:,?\s*down\s*)/,/^(?:\)\s*)/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?:\s*~~[\~]+\s*)/,/^(?:\s*[xo<]?--\s*)/,/^(?:\s*[xo<]?==\s*)/,/^(?:\s*[xo<]?-\.\s*)/,/^(?:["][`])/,/^(?:["])/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?::\d+)/],conditions:{STYLE_DEFINITION:{rules:[29],inclusive:!1},STYLE_STMNT:{rules:[28],inclusive:!1},CLASSDEFID:{rules:[23],inclusive:!1},CLASSDEF:{rules:[21,22],inclusive:!1},CLASS_STYLE:{rules:[26],inclusive:!1},CLASS:{rules:[25],inclusive:!1},LLABEL:{rules:[100,101,102,103,104],inclusive:!1},ARROW_DIR:{rules:[86,87,88,89,90,91,92],inclusive:!1},BLOCK_ARROW:{rules:[77,82,85],inclusive:!1},NODE:{rules:[38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,78,81],inclusive:!1},md_string:{rules:[10,11,79,80],inclusive:!1},space:{rules:[],inclusive:!1},string:{rules:[13,14,83,84],inclusive:!1},acc_descr_multiline:{rules:[35,36],inclusive:!1},acc_descr:{rules:[33],inclusive:!1},acc_title:{rules:[31],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,12,15,16,17,18,19,20,24,27,30,32,34,37,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,93,94,95,96,97,98,99,105],inclusive:!0}}};return w}();v.lexer=x;function b(){this.yy={}}return o(b,"Parser"),b.prototype=v,v.Parser=b,new b}();KB.parser=KB;bye=KB});function Yet(t){switch(Y.debug("typeStr2Type",t),t){case"[]":return"square";case"()":return Y.debug("we have a round"),"round";case"(())":return"circle";case">]":return"rect_left_inv_arrow";case"{}":return"diamond";case"{{}}":return"hexagon";case"([])":return"stadium";case"[[]]":return"subroutine";case"[()]":return"cylinder";case"((()))":return"doublecircle";case"[//]":return"lean_right";case"[\\\\]":return"lean_left";case"[/\\]":return"trapezoid";case"[\\/]":return"inv_trapezoid";case"<[]>":return"block_arrow";default:return"na"}}function Xet(t){switch(Y.debug("typeStr2Type",t),t){case"==":return"thick";default:return"normal"}}function jet(t){switch(t.trim()){case"--x":return"arrow_cross";case"--o":return"arrow_circle";default:return"arrow_point"}}var Ul,ZB,QB,Tye,kye,zet,Sye,Get,eC,Vet,Uet,Het,Wet,Cye,JB,y4,qet,Eye,Ket,Qet,Zet,Jet,ett,ttt,rtt,ntt,itt,att,stt,Aye,_ye=N(()=>{"use strict";gL();ji();zt();vt();gr();mi();Ul=new Map,ZB=[],QB=new Map,Tye="color",kye="fill",zet="bgFill",Sye=",",Get=me(),eC=new Map,Vet=o(t=>Ze.sanitizeText(t,Get),"sanitizeText"),Uet=o(function(t,e=""){let r=eC.get(t);r||(r={id:t,styles:[],textStyles:[]},eC.set(t,r)),e?.split(Sye).forEach(n=>{let i=n.replace(/([^;]*);/,"$1").trim();if(RegExp(Tye).exec(n)){let s=i.replace(kye,zet).replace(Tye,kye);r.textStyles.push(s)}r.styles.push(i)})},"addStyleClass"),Het=o(function(t,e=""){let r=Ul.get(t);e!=null&&(r.styles=e.split(Sye))},"addStyle2Node"),Wet=o(function(t,e){t.split(",").forEach(function(r){let n=Ul.get(r);if(n===void 0){let i=r.trim();n={id:i,type:"na",children:[]},Ul.set(i,n)}n.classes||(n.classes=[]),n.classes.push(e)})},"setCssClass"),Cye=o((t,e)=>{let r=t.flat(),n=[];for(let i of r){if(i.label&&(i.label=Vet(i.label)),i.type==="classDef"){Uet(i.id,i.css);continue}if(i.type==="applyClass"){Wet(i.id,i?.styleClass??"");continue}if(i.type==="applyStyles"){i?.stylesStr&&Het(i.id,i?.stylesStr);continue}if(i.type==="column-setting")e.columns=i.columns??-1;else if(i.type==="edge"){let a=(QB.get(i.id)??0)+1;QB.set(i.id,a),i.id=a+"-"+i.id,ZB.push(i)}else{i.label||(i.type==="composite"?i.label="":i.label=i.id);let a=Ul.get(i.id);if(a===void 0?Ul.set(i.id,i):(i.type!=="na"&&(a.type=i.type),i.label!==i.id&&(a.label=i.label)),i.children&&Cye(i.children,i),i.type==="space"){let s=i.width??1;for(let l=0;l<s;l++){let u=an(i);u.id=u.id+"-"+l,Ul.set(u.id,u),n.push(u)}}else a===void 0&&n.push(i)}}e.children=n},"populateBlockDatabase"),JB=[],y4={id:"root",type:"composite",children:[],columns:-1},qet=o(()=>{Y.debug("Clear called"),Ar(),y4={id:"root",type:"composite",children:[],columns:-1},Ul=new Map([["root",y4]]),JB=[],eC=new Map,ZB=[],QB=new Map},"clear");o(Yet,"typeStr2Type");o(Xet,"edgeTypeStr2Type");o(jet,"edgeStrToEdgeData");Eye=0,Ket=o(()=>(Eye++,"id-"+Math.random().toString(36).substr(2,12)+"-"+Eye),"generateId"),Qet=o(t=>{y4.children=t,Cye(t,y4),JB=y4.children},"setHierarchy"),Zet=o(t=>{let e=Ul.get(t);return e?e.columns?e.columns:e.children?e.children.length:-1:-1},"getColumns"),Jet=o(()=>[...Ul.values()],"getBlocksFlat"),ett=o(()=>JB||[],"getBlocks"),ttt=o(()=>ZB,"getEdges"),rtt=o(t=>Ul.get(t),"getBlock"),ntt=o(t=>{Ul.set(t.id,t)},"setBlock"),itt=o(()=>console,"getLogger"),att=o(function(){return eC},"getClasses"),stt={getConfig:o(()=>cr().block,"getConfig"),typeStr2Type:Yet,edgeTypeStr2Type:Xet,edgeStrToEdgeData:jet,getLogger:itt,getBlocksFlat:Jet,getBlocks:ett,getEdges:ttt,setHierarchy:Qet,getBlock:rtt,setBlock:ntt,getColumns:Zet,getClasses:att,clear:qet,generateId:Ket},Aye=stt});var tC,ott,Dye,Lye=N(()=>{"use strict";Ys();tC=o((t,e)=>{let r=Kf,n=r(t,"r"),i=r(t,"g"),a=r(t,"b");return qa(n,i,a,e)},"fade"),ott=o(t=>`.label {
+    font-family: ${t.fontFamily};
+    color: ${t.nodeTextColor||t.textColor};
+  }
+  .cluster-label text {
+    fill: ${t.titleColor};
+  }
+  .cluster-label span,p {
+    color: ${t.titleColor};
+  }
+
+
+
+  .label text,span,p {
+    fill: ${t.nodeTextColor||t.textColor};
+    color: ${t.nodeTextColor||t.textColor};
+  }
+
+  .node rect,
+  .node circle,
+  .node ellipse,
+  .node polygon,
+  .node path {
+    fill: ${t.mainBkg};
+    stroke: ${t.nodeBorder};
+    stroke-width: 1px;
+  }
+  .flowchart-label text {
+    text-anchor: middle;
+  }
+  // .flowchart-label .text-outer-tspan {
+  //   text-anchor: middle;
+  // }
+  // .flowchart-label .text-inner-tspan {
+  //   text-anchor: start;
+  // }
+
+  .node .label {
+    text-align: center;
+  }
+  .node.clickable {
+    cursor: pointer;
+  }
+
+  .arrowheadPath {
+    fill: ${t.arrowheadColor};
+  }
+
+  .edgePath .path {
+    stroke: ${t.lineColor};
+    stroke-width: 2.0px;
+  }
+
+  .flowchart-link {
+    stroke: ${t.lineColor};
+    fill: none;
+  }
+
+  .edgeLabel {
+    background-color: ${t.edgeLabelBackground};
+    rect {
+      opacity: 0.5;
+      background-color: ${t.edgeLabelBackground};
+      fill: ${t.edgeLabelBackground};
+    }
+    text-align: center;
+  }
+
+  /* For html labels only */
+  .labelBkg {
+    background-color: ${tC(t.edgeLabelBackground,.5)};
+    // background-color:
+  }
+
+  .node .cluster {
+    // fill: ${tC(t.mainBkg,.5)};
+    fill: ${tC(t.clusterBkg,.5)};
+    stroke: ${tC(t.clusterBorder,.2)};
+    box-shadow: rgba(50, 50, 93, 0.25) 0px 13px 27px -5px, rgba(0, 0, 0, 0.3) 0px 8px 16px -8px;
+    stroke-width: 1px;
+  }
+
+  .cluster text {
+    fill: ${t.titleColor};
+  }
+
+  .cluster span,p {
+    color: ${t.titleColor};
+  }
+  /* .cluster div {
+    color: ${t.titleColor};
+  } */
+
+  div.mermaidTooltip {
+    position: absolute;
+    text-align: center;
+    max-width: 200px;
+    padding: 2px;
+    font-family: ${t.fontFamily};
+    font-size: 12px;
+    background: ${t.tertiaryColor};
+    border: 1px solid ${t.border2};
+    border-radius: 2px;
+    pointer-events: none;
+    z-index: 100;
+  }
+
+  .flowchartTitleText {
+    text-anchor: middle;
+    font-size: 18px;
+    fill: ${t.textColor};
+  }
+`,"getStyles"),Dye=ott});var ltt,ctt,utt,htt,ftt,dtt,ptt,mtt,gtt,ytt,vtt,Rye,Nye=N(()=>{"use strict";vt();ltt=o((t,e,r,n)=>{e.forEach(i=>{vtt[i](t,r,n)})},"insertMarkers"),ctt=o((t,e,r)=>{Y.trace("Making markers for ",r),t.append("defs").append("marker").attr("id",r+"_"+e+"-extensionStart").attr("class","marker extension "+e).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 1,7 L18,13 V 1 Z"),t.append("defs").append("marker").attr("id",r+"_"+e+"-extensionEnd").attr("class","marker extension "+e).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 1,1 V 13 L18,7 Z")},"extension"),utt=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-compositionStart").attr("class","marker composition "+e).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",r+"_"+e+"-compositionEnd").attr("class","marker composition "+e).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},"composition"),htt=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-aggregationStart").attr("class","marker aggregation "+e).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",r+"_"+e+"-aggregationEnd").attr("class","marker aggregation "+e).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},"aggregation"),ftt=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-dependencyStart").attr("class","marker dependency "+e).attr("refX",6).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 5,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",r+"_"+e+"-dependencyEnd").attr("class","marker dependency "+e).attr("refX",13).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},"dependency"),dtt=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-lollipopStart").attr("class","marker lollipop "+e).attr("refX",13).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6),t.append("defs").append("marker").attr("id",r+"_"+e+"-lollipopEnd").attr("class","marker lollipop "+e).attr("refX",1).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6)},"lollipop"),ptt=o((t,e,r)=>{t.append("marker").attr("id",r+"_"+e+"-pointEnd").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",6).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),t.append("marker").attr("id",r+"_"+e+"-pointStart").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",4.5).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 5 L 10 10 L 10 0 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},"point"),mtt=o((t,e,r)=>{t.append("marker").attr("id",r+"_"+e+"-circleEnd").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",11).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),t.append("marker").attr("id",r+"_"+e+"-circleStart").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",-1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},"circle"),gtt=o((t,e,r)=>{t.append("marker").attr("id",r+"_"+e+"-crossEnd").attr("class","marker cross "+e).attr("viewBox","0 0 11 11").attr("refX",12).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0"),t.append("marker").attr("id",r+"_"+e+"-crossStart").attr("class","marker cross "+e).attr("viewBox","0 0 11 11").attr("refX",-1).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0")},"cross"),ytt=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-barbEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",14).attr("markerUnits","strokeWidth").attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")},"barb"),vtt={extension:ctt,composition:utt,aggregation:htt,dependency:ftt,lollipop:dtt,point:ptt,circle:mtt,cross:gtt,barb:ytt},Rye=ltt});function xtt(t,e){if(t===0||!Number.isInteger(t))throw new Error("Columns must be an integer !== 0.");if(e<0||!Number.isInteger(e))throw new Error("Position must be a non-negative integer."+e);if(t<0)return{px:e,py:0};if(t===1)return{px:0,py:e};let r=e%t,n=Math.floor(e/t);return{px:r,py:n}}function eF(t,e,r=0,n=0){Y.debug("setBlockSizes abc95 (start)",t.id,t?.size?.x,"block width =",t?.size,"sieblingWidth",r),t?.size?.width||(t.size={width:r,height:n,x:0,y:0});let i=0,a=0;if(t.children?.length>0){for(let m of t.children)eF(m,e);let s=btt(t);i=s.width,a=s.height,Y.debug("setBlockSizes abc95 maxWidth of",t.id,":s children is ",i,a);for(let m of t.children)m.size&&(Y.debug(`abc95 Setting size of children of ${t.id} id=${m.id} ${i} ${a} ${JSON.stringify(m.size)}`),m.size.width=i*(m.widthInColumns??1)+bi*((m.widthInColumns??1)-1),m.size.height=a,m.size.x=0,m.size.y=0,Y.debug(`abc95 updating size of ${t.id} children child:${m.id} maxWidth:${i} maxHeight:${a}`));for(let m of t.children)eF(m,e,i,a);let l=t.columns??-1,u=0;for(let m of t.children)u+=m.widthInColumns??1;let h=t.children.length;l>0&&l<u&&(h=l);let f=Math.ceil(u/h),d=h*(i+bi)+bi,p=f*(a+bi)+bi;if(d<r){Y.debug(`Detected to small siebling: abc95 ${t.id} sieblingWidth ${r} sieblingHeight ${n} width ${d}`),d=r,p=n;let m=(r-h*bi-bi)/h,g=(n-f*bi-bi)/f;Y.debug("Size indata abc88",t.id,"childWidth",m,"maxWidth",i),Y.debug("Size indata abc88",t.id,"childHeight",g,"maxHeight",a),Y.debug("Size indata abc88 xSize",h,"padding",bi);for(let y of t.children)y.size&&(y.size.width=m,y.size.height=g,y.size.x=0,y.size.y=0)}if(Y.debug(`abc95 (finale calc) ${t.id} xSize ${h} ySize ${f} columns ${l}${t.children.length} width=${Math.max(d,t.size?.width||0)}`),d<(t?.size?.width||0)){d=t?.size?.width||0;let m=l>0?Math.min(t.children.length,l):t.children.length;if(m>0){let g=(d-m*bi-bi)/m;Y.debug("abc95 (growing to fit) width",t.id,d,t.size?.width,g);for(let y of t.children)y.size&&(y.size.width=g)}}t.size={width:d,height:p,x:0,y:0}}Y.debug("setBlockSizes abc94 (done)",t.id,t?.size?.x,t?.size?.width,t?.size?.y,t?.size?.height)}function Mye(t,e){Y.debug(`abc85 layout blocks (=>layoutBlocks) ${t.id} x: ${t?.size?.x} y: ${t?.size?.y} width: ${t?.size?.width}`);let r=t.columns??-1;if(Y.debug("layoutBlocks columns abc95",t.id,"=>",r,t),t.children&&t.children.length>0){let n=t?.children[0]?.size?.width??0,i=t.children.length*n+(t.children.length-1)*bi;Y.debug("widthOfChildren 88",i,"posX");let a=0;Y.debug("abc91 block?.size?.x",t.id,t?.size?.x);let s=t?.size?.x?t?.size?.x+(-t?.size?.width/2||0):-bi,l=0;for(let u of t.children){let h=t;if(!u.size)continue;let{width:f,height:d}=u.size,{px:p,py:m}=xtt(r,a);if(m!=l&&(l=m,s=t?.size?.x?t?.size?.x+(-t?.size?.width/2||0):-bi,Y.debug("New row in layout for block",t.id," and child ",u.id,l)),Y.debug(`abc89 layout blocks (child) id: ${u.id} Pos: ${a} (px, py) ${p},${m} (${h?.size?.x},${h?.size?.y}) parent: ${h.id} width: ${f}${bi}`),h.size){let g=f/2;u.size.x=s+bi+g,Y.debug(`abc91 layout blocks (calc) px, pyid:${u.id} startingPos=X${s} new startingPosX${u.size.x} ${g} padding=${bi} width=${f} halfWidth=${g} => x:${u.size.x} y:${u.size.y} ${u.widthInColumns} (width * (child?.w || 1)) / 2 ${f*(u?.widthInColumns??1)/2}`),s=u.size.x+g,u.size.y=h.size.y-h.size.height/2+m*(d+bi)+d/2+bi,Y.debug(`abc88 layout blocks (calc) px, pyid:${u.id}startingPosX${s}${bi}${g}=>x:${u.size.x}y:${u.size.y}${u.widthInColumns}(width * (child?.w || 1)) / 2${f*(u?.widthInColumns??1)/2}`)}u.children&&Mye(u,e),a+=u?.widthInColumns??1,Y.debug("abc88 columnsPos",u,a)}}Y.debug(`layout blocks (<==layoutBlocks) ${t.id} x: ${t?.size?.x} y: ${t?.size?.y} width: ${t?.size?.width}`)}function Iye(t,{minX:e,minY:r,maxX:n,maxY:i}={minX:0,minY:0,maxX:0,maxY:0}){if(t.size&&t.id!=="root"){let{x:a,y:s,width:l,height:u}=t.size;a-l/2<e&&(e=a-l/2),s-u/2<r&&(r=s-u/2),a+l/2>n&&(n=a+l/2),s+u/2>i&&(i=s+u/2)}if(t.children)for(let a of t.children)({minX:e,minY:r,maxX:n,maxY:i}=Iye(a,{minX:e,minY:r,maxX:n,maxY:i}));return{minX:e,minY:r,maxX:n,maxY:i}}function Oye(t){let e=t.getBlock("root");if(!e)return;eF(e,t,0,0),Mye(e,t),Y.debug("getBlocks",JSON.stringify(e,null,2));let{minX:r,minY:n,maxX:i,maxY:a}=Iye(e),s=a-n,l=i-r;return{x:r,y:n,width:l,height:s}}var bi,btt,Pye=N(()=>{"use strict";vt();zt();bi=me()?.block?.padding??8;o(xtt,"calculateBlockPosition");btt=o(t=>{let e=0,r=0;for(let n of t.children){let{width:i,height:a,x:s,y:l}=n.size??{width:0,height:0,x:0,y:0};Y.debug("getMaxChildSize abc95 child:",n.id,"width:",i,"height:",a,"x:",s,"y:",l,n.type),n.type!=="space"&&(i>e&&(e=i/(t.widthInColumns??1)),a>r&&(r=a))}return{width:e,height:r}},"getMaxChildSize");o(eF,"setBlockSizes");o(Mye,"layoutBlocks");o(Iye,"findBounds");o(Oye,"layout")});function Bye(t,e){e&&t.attr("style",e)}function wtt(t){let e=Ge(document.createElementNS("http://www.w3.org/2000/svg","foreignObject")),r=e.append("xhtml:div"),n=t.label,i=t.isNode?"nodeLabel":"edgeLabel",a=r.append("span");return a.html(n),Bye(a,t.labelStyle),a.attr("class",i),Bye(r,t.labelStyle),r.style("display","inline-block"),r.style("white-space","nowrap"),r.attr("xmlns","http://www.w3.org/1999/xhtml"),e.node()}var Ttt,vs,rC=N(()=>{"use strict";dr();vt();zt();gr();ir();to();o(Bye,"applyStyle");o(wtt,"addHtmlLabel");Ttt=o((t,e,r,n)=>{let i=t||"";if(typeof i=="object"&&(i=i[0]),fr(me().flowchart.htmlLabels)){i=i.replace(/\\n|\n/g,"<br />"),Y.debug("vertexText"+i);let a={isNode:n,label:DD(na(i)),labelStyle:e.replace("fill:","color:")};return wtt(a)}else{let a=document.createElementNS("http://www.w3.org/2000/svg","text");a.setAttribute("style",e.replace("color:","fill:"));let s=[];typeof i=="string"?s=i.split(/\\n|\n|<br\s*\/?>/gi):Array.isArray(i)?s=i:s=[];for(let l of s){let u=document.createElementNS("http://www.w3.org/2000/svg","tspan");u.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),u.setAttribute("dy","1em"),u.setAttribute("x","0"),r?u.setAttribute("class","title-row"):u.setAttribute("class","row"),u.textContent=l.trim(),a.appendChild(u)}return a}},"createLabel"),vs=Ttt});var $ye,ktt,Fye,zye=N(()=>{"use strict";vt();$ye=o((t,e,r,n,i)=>{e.arrowTypeStart&&Fye(t,"start",e.arrowTypeStart,r,n,i),e.arrowTypeEnd&&Fye(t,"end",e.arrowTypeEnd,r,n,i)},"addEdgeMarkers"),ktt={arrow_cross:"cross",arrow_point:"point",arrow_barb:"barb",arrow_circle:"circle",aggregation:"aggregation",extension:"extension",composition:"composition",dependency:"dependency",lollipop:"lollipop"},Fye=o((t,e,r,n,i,a)=>{let s=ktt[r];if(!s){Y.warn(`Unknown arrow type: ${r}`);return}let l=e==="start"?"Start":"End";t.attr(`marker-${e}`,`url(${n}#${i}_${a}-${s}${l})`)},"addEdgeMarker")});function nC(t,e){me().flowchart.htmlLabels&&t&&(t.style.width=e.length*9+"px",t.style.height="12px")}var tF,Ua,Vye,Uye,Ett,Stt,Gye,Hye,Wye=N(()=>{"use strict";vt();rC();to();dr();zt();ir();gr();JD();w2();zye();tF={},Ua={},Vye=o((t,e)=>{let r=me(),n=fr(r.flowchart.htmlLabels),i=e.labelType==="markdown"?Hn(t,e.label,{style:e.labelStyle,useHtmlLabels:n,addSvgBackground:!0},r):vs(e.label,e.labelStyle),a=t.insert("g").attr("class","edgeLabel"),s=a.insert("g").attr("class","label");s.node().appendChild(i);let l=i.getBBox();if(n){let h=i.children[0],f=Ge(i);l=h.getBoundingClientRect(),f.attr("width",l.width),f.attr("height",l.height)}s.attr("transform","translate("+-l.width/2+", "+-l.height/2+")"),tF[e.id]=a,e.width=l.width,e.height=l.height;let u;if(e.startLabelLeft){let h=vs(e.startLabelLeft,e.labelStyle),f=t.insert("g").attr("class","edgeTerminals"),d=f.insert("g").attr("class","inner");u=d.node().appendChild(h);let p=h.getBBox();d.attr("transform","translate("+-p.width/2+", "+-p.height/2+")"),Ua[e.id]||(Ua[e.id]={}),Ua[e.id].startLeft=f,nC(u,e.startLabelLeft)}if(e.startLabelRight){let h=vs(e.startLabelRight,e.labelStyle),f=t.insert("g").attr("class","edgeTerminals"),d=f.insert("g").attr("class","inner");u=f.node().appendChild(h),d.node().appendChild(h);let p=h.getBBox();d.attr("transform","translate("+-p.width/2+", "+-p.height/2+")"),Ua[e.id]||(Ua[e.id]={}),Ua[e.id].startRight=f,nC(u,e.startLabelRight)}if(e.endLabelLeft){let h=vs(e.endLabelLeft,e.labelStyle),f=t.insert("g").attr("class","edgeTerminals"),d=f.insert("g").attr("class","inner");u=d.node().appendChild(h);let p=h.getBBox();d.attr("transform","translate("+-p.width/2+", "+-p.height/2+")"),f.node().appendChild(h),Ua[e.id]||(Ua[e.id]={}),Ua[e.id].endLeft=f,nC(u,e.endLabelLeft)}if(e.endLabelRight){let h=vs(e.endLabelRight,e.labelStyle),f=t.insert("g").attr("class","edgeTerminals"),d=f.insert("g").attr("class","inner");u=d.node().appendChild(h);let p=h.getBBox();d.attr("transform","translate("+-p.width/2+", "+-p.height/2+")"),f.node().appendChild(h),Ua[e.id]||(Ua[e.id]={}),Ua[e.id].endRight=f,nC(u,e.endLabelRight)}return i},"insertEdgeLabel");o(nC,"setTerminalWidth");Uye=o((t,e)=>{Y.debug("Moving label abc88 ",t.id,t.label,tF[t.id],e);let r=e.updatedPath?e.updatedPath:e.originalPath,n=me(),{subGraphTitleTotalMargin:i}=Ru(n);if(t.label){let a=tF[t.id],s=t.x,l=t.y;if(r){let u=Gt.calcLabelPosition(r);Y.debug("Moving label "+t.label+" from (",s,",",l,") to (",u.x,",",u.y,") abc88"),e.updatedPath&&(s=u.x,l=u.y)}a.attr("transform",`translate(${s}, ${l+i/2})`)}if(t.startLabelLeft){let a=Ua[t.id].startLeft,s=t.x,l=t.y;if(r){let u=Gt.calcTerminalLabelPosition(t.arrowTypeStart?10:0,"start_left",r);s=u.x,l=u.y}a.attr("transform",`translate(${s}, ${l})`)}if(t.startLabelRight){let a=Ua[t.id].startRight,s=t.x,l=t.y;if(r){let u=Gt.calcTerminalLabelPosition(t.arrowTypeStart?10:0,"start_right",r);s=u.x,l=u.y}a.attr("transform",`translate(${s}, ${l})`)}if(t.endLabelLeft){let a=Ua[t.id].endLeft,s=t.x,l=t.y;if(r){let u=Gt.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,"end_left",r);s=u.x,l=u.y}a.attr("transform",`translate(${s}, ${l})`)}if(t.endLabelRight){let a=Ua[t.id].endRight,s=t.x,l=t.y;if(r){let u=Gt.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,"end_right",r);s=u.x,l=u.y}a.attr("transform",`translate(${s}, ${l})`)}},"positionEdgeLabel"),Ett=o((t,e)=>{let r=t.x,n=t.y,i=Math.abs(e.x-r),a=Math.abs(e.y-n),s=t.width/2,l=t.height/2;return i>=s||a>=l},"outsideNode"),Stt=o((t,e,r)=>{Y.debug(`intersection calc abc89:
+  outsidePoint: ${JSON.stringify(e)}
+  insidePoint : ${JSON.stringify(r)}
+  node        : x:${t.x} y:${t.y} w:${t.width} h:${t.height}`);let n=t.x,i=t.y,a=Math.abs(n-r.x),s=t.width/2,l=r.x<e.x?s-a:s+a,u=t.height/2,h=Math.abs(e.y-r.y),f=Math.abs(e.x-r.x);if(Math.abs(i-e.y)*s>Math.abs(n-e.x)*u){let d=r.y<e.y?e.y-u-i:i-u-e.y;l=f*d/h;let p={x:r.x<e.x?r.x+l:r.x-f+l,y:r.y<e.y?r.y+h-d:r.y-h+d};return l===0&&(p.x=e.x,p.y=e.y),f===0&&(p.x=e.x),h===0&&(p.y=e.y),Y.debug(`abc89 topp/bott calc, Q ${h}, q ${d}, R ${f}, r ${l}`,p),p}else{r.x<e.x?l=e.x-s-n:l=n-s-e.x;let d=h*l/f,p=r.x<e.x?r.x+f-l:r.x-f+l,m=r.y<e.y?r.y+d:r.y-d;return Y.debug(`sides calc abc89, Q ${h}, q ${d}, R ${f}, r ${l}`,{_x:p,_y:m}),l===0&&(p=e.x,m=e.y),f===0&&(p=e.x),h===0&&(m=e.y),{x:p,y:m}}},"intersection"),Gye=o((t,e)=>{Y.debug("abc88 cutPathAtIntersect",t,e);let r=[],n=t[0],i=!1;return t.forEach(a=>{if(!Ett(e,a)&&!i){let s=Stt(e,n,a),l=!1;r.forEach(u=>{l=l||u.x===s.x&&u.y===s.y}),r.some(u=>u.x===s.x&&u.y===s.y)||r.push(s),i=!0}else n=a,i||r.push(a)}),r},"cutPathAtIntersect"),Hye=o(function(t,e,r,n,i,a,s){let l=r.points;Y.debug("abc88 InsertEdge: edge=",r,"e=",e);let u=!1,h=a.node(e.v);var f=a.node(e.w);f?.intersect&&h?.intersect&&(l=l.slice(1,r.points.length-1),l.unshift(h.intersect(l[0])),l.push(f.intersect(l[l.length-1]))),r.toCluster&&(Y.debug("to cluster abc88",n[r.toCluster]),l=Gye(r.points,n[r.toCluster].node),u=!0),r.fromCluster&&(Y.debug("from cluster abc88",n[r.fromCluster]),l=Gye(l.reverse(),n[r.fromCluster].node).reverse(),u=!0);let d=l.filter(C=>!Number.isNaN(C.y)),p=Do;r.curve&&(i==="graph"||i==="flowchart")&&(p=r.curve);let{x:m,y:g}=qw(r),y=wl().x(m).y(g).curve(p),v;switch(r.thickness){case"normal":v="edge-thickness-normal";break;case"thick":v="edge-thickness-thick";break;case"invisible":v="edge-thickness-thick";break;default:v=""}switch(r.pattern){case"solid":v+=" edge-pattern-solid";break;case"dotted":v+=" edge-pattern-dotted";break;case"dashed":v+=" edge-pattern-dashed";break}let x=t.append("path").attr("d",y(d)).attr("id",r.id).attr("class"," "+v+(r.classes?" "+r.classes:"")).attr("style",r.style),b="";(me().flowchart.arrowMarkerAbsolute||me().state.arrowMarkerAbsolute)&&(b=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,b=b.replace(/\(/g,"\\("),b=b.replace(/\)/g,"\\)")),$ye(x,r,b,s,i);let w={};return u&&(w.updatedPath=l),w.originalPath=r.points,w},"insertEdge")});var Ctt,qye,Yye=N(()=>{"use strict";Ctt=o(t=>{let e=new Set;for(let r of t)switch(r){case"x":e.add("right"),e.add("left");break;case"y":e.add("up"),e.add("down");break;default:e.add(r);break}return e},"expandAndDeduplicateDirections"),qye=o((t,e,r)=>{let n=Ctt(t),i=2,a=e.height+2*r.padding,s=a/i,l=e.width+2*s+r.padding,u=r.padding/2;return n.has("right")&&n.has("left")&&n.has("up")&&n.has("down")?[{x:0,y:0},{x:s,y:0},{x:l/2,y:2*u},{x:l-s,y:0},{x:l,y:0},{x:l,y:-a/3},{x:l+2*u,y:-a/2},{x:l,y:-2*a/3},{x:l,y:-a},{x:l-s,y:-a},{x:l/2,y:-a-2*u},{x:s,y:-a},{x:0,y:-a},{x:0,y:-2*a/3},{x:-2*u,y:-a/2},{x:0,y:-a/3}]:n.has("right")&&n.has("left")&&n.has("up")?[{x:s,y:0},{x:l-s,y:0},{x:l,y:-a/2},{x:l-s,y:-a},{x:s,y:-a},{x:0,y:-a/2}]:n.has("right")&&n.has("left")&&n.has("down")?[{x:0,y:0},{x:s,y:-a},{x:l-s,y:-a},{x:l,y:0}]:n.has("right")&&n.has("up")&&n.has("down")?[{x:0,y:0},{x:l,y:-s},{x:l,y:-a+s},{x:0,y:-a}]:n.has("left")&&n.has("up")&&n.has("down")?[{x:l,y:0},{x:0,y:-s},{x:0,y:-a+s},{x:l,y:-a}]:n.has("right")&&n.has("left")?[{x:s,y:0},{x:s,y:-u},{x:l-s,y:-u},{x:l-s,y:0},{x:l,y:-a/2},{x:l-s,y:-a},{x:l-s,y:-a+u},{x:s,y:-a+u},{x:s,y:-a},{x:0,y:-a/2}]:n.has("up")&&n.has("down")?[{x:l/2,y:0},{x:0,y:-u},{x:s,y:-u},{x:s,y:-a+u},{x:0,y:-a+u},{x:l/2,y:-a},{x:l,y:-a+u},{x:l-s,y:-a+u},{x:l-s,y:-u},{x:l,y:-u}]:n.has("right")&&n.has("up")?[{x:0,y:0},{x:l,y:-s},{x:0,y:-a}]:n.has("right")&&n.has("down")?[{x:0,y:0},{x:l,y:0},{x:0,y:-a}]:n.has("left")&&n.has("up")?[{x:l,y:0},{x:0,y:-s},{x:l,y:-a}]:n.has("left")&&n.has("down")?[{x:l,y:0},{x:0,y:0},{x:l,y:-a}]:n.has("right")?[{x:s,y:-u},{x:s,y:-u},{x:l-s,y:-u},{x:l-s,y:0},{x:l,y:-a/2},{x:l-s,y:-a},{x:l-s,y:-a+u},{x:s,y:-a+u},{x:s,y:-a+u}]:n.has("left")?[{x:s,y:0},{x:s,y:-u},{x:l-s,y:-u},{x:l-s,y:-a+u},{x:s,y:-a+u},{x:s,y:-a},{x:0,y:-a/2}]:n.has("up")?[{x:s,y:-u},{x:s,y:-a+u},{x:0,y:-a+u},{x:l/2,y:-a},{x:l,y:-a+u},{x:l-s,y:-a+u},{x:l-s,y:-u}]:n.has("down")?[{x:l/2,y:0},{x:0,y:-u},{x:s,y:-u},{x:s,y:-a+u},{x:l-s,y:-a+u},{x:l-s,y:-u},{x:l,y:-u}]:[{x:0,y:0}]},"getArrowPoints")});function Att(t,e){return t.intersect(e)}var Xye,jye=N(()=>{"use strict";o(Att,"intersectNode");Xye=Att});function _tt(t,e,r,n){var i=t.x,a=t.y,s=i-n.x,l=a-n.y,u=Math.sqrt(e*e*l*l+r*r*s*s),h=Math.abs(e*r*s/u);n.x<i&&(h=-h);var f=Math.abs(e*r*l/u);return n.y<a&&(f=-f),{x:i+h,y:a+f}}var iC,rF=N(()=>{"use strict";o(_tt,"intersectEllipse");iC=_tt});function Dtt(t,e,r){return iC(t,e,e,r)}var Kye,Qye=N(()=>{"use strict";rF();o(Dtt,"intersectCircle");Kye=Dtt});function Ltt(t,e,r,n){var i,a,s,l,u,h,f,d,p,m,g,y,v,x,b;if(i=e.y-t.y,s=t.x-e.x,u=e.x*t.y-t.x*e.y,p=i*r.x+s*r.y+u,m=i*n.x+s*n.y+u,!(p!==0&&m!==0&&Zye(p,m))&&(a=n.y-r.y,l=r.x-n.x,h=n.x*r.y-r.x*n.y,f=a*t.x+l*t.y+h,d=a*e.x+l*e.y+h,!(f!==0&&d!==0&&Zye(f,d))&&(g=i*l-a*s,g!==0)))return y=Math.abs(g/2),v=s*h-l*u,x=v<0?(v-y)/g:(v+y)/g,v=a*u-i*h,b=v<0?(v-y)/g:(v+y)/g,{x,y:b}}function Zye(t,e){return t*e>0}var Jye,eve=N(()=>{"use strict";o(Ltt,"intersectLine");o(Zye,"sameSign");Jye=Ltt});function Rtt(t,e,r){var n=t.x,i=t.y,a=[],s=Number.POSITIVE_INFINITY,l=Number.POSITIVE_INFINITY;typeof e.forEach=="function"?e.forEach(function(g){s=Math.min(s,g.x),l=Math.min(l,g.y)}):(s=Math.min(s,e.x),l=Math.min(l,e.y));for(var u=n-t.width/2-s,h=i-t.height/2-l,f=0;f<e.length;f++){var d=e[f],p=e[f<e.length-1?f+1:0],m=Jye(t,r,{x:u+d.x,y:h+d.y},{x:u+p.x,y:h+p.y});m&&a.push(m)}return a.length?(a.length>1&&a.sort(function(g,y){var v=g.x-r.x,x=g.y-r.y,b=Math.sqrt(v*v+x*x),w=y.x-r.x,C=y.y-r.y,T=Math.sqrt(w*w+C*C);return b<T?-1:b===T?0:1}),a[0]):t}var tve,rve=N(()=>{"use strict";eve();tve=Rtt;o(Rtt,"intersectPolygon")});var Ntt,nve,ive=N(()=>{"use strict";Ntt=o((t,e)=>{var r=t.x,n=t.y,i=e.x-r,a=e.y-n,s=t.width/2,l=t.height/2,u,h;return Math.abs(a)*s>Math.abs(i)*l?(a<0&&(l=-l),u=a===0?0:l*i/a,h=l):(i<0&&(s=-s),u=s,h=i===0?0:s*a/i),{x:r+u,y:n+h}},"intersectRect"),nve=Ntt});var In,nF=N(()=>{"use strict";jye();Qye();rF();rve();ive();In={node:Xye,circle:Kye,ellipse:iC,polygon:tve,rect:nve}});function Hl(t,e,r,n){return t.insert("polygon",":first-child").attr("points",n.map(function(i){return i.x+","+i.y}).join(" ")).attr("class","label-container").attr("transform","translate("+-e/2+","+r/2+")")}var Di,Qn,iF=N(()=>{"use strict";rC();to();zt();dr();gr();ir();Di=o(async(t,e,r,n)=>{let i=me(),a,s=e.useHtmlLabels||fr(i.flowchart.htmlLabels);r?a=r:a="node default";let l=t.insert("g").attr("class",a).attr("id",e.domId||e.id),u=l.insert("g").attr("class","label").attr("style",e.labelStyle),h;e.labelText===void 0?h="":h=typeof e.labelText=="string"?e.labelText:e.labelText[0];let f=u.node(),d;e.labelType==="markdown"?d=Hn(u,Tr(na(h),i),{useHtmlLabels:s,width:e.width||i.flowchart.wrappingWidth,classes:"markdown-node-label"},i):d=f.appendChild(vs(Tr(na(h),i),e.labelStyle,!1,n));let p=d.getBBox(),m=e.padding/2;if(fr(i.flowchart.htmlLabels)){let g=d.children[0],y=Ge(d),v=g.getElementsByTagName("img");if(v){let x=h.replace(/<img[^>]*>/g,"").trim()==="";await Promise.all([...v].map(b=>new Promise(w=>{function C(){if(b.style.display="flex",b.style.flexDirection="column",x){let T=i.fontSize?i.fontSize:window.getComputedStyle(document.body).fontSize,A=parseInt(T,10)*5+"px";b.style.minWidth=A,b.style.maxWidth=A}else b.style.width="100%";w(b)}o(C,"setupImage"),setTimeout(()=>{b.complete&&C()}),b.addEventListener("error",C),b.addEventListener("load",C)})))}p=g.getBoundingClientRect(),y.attr("width",p.width),y.attr("height",p.height)}return s?u.attr("transform","translate("+-p.width/2+", "+-p.height/2+")"):u.attr("transform","translate(0, "+-p.height/2+")"),e.centerLabel&&u.attr("transform","translate("+-p.width/2+", "+-p.height/2+")"),u.insert("rect",":first-child"),{shapeSvg:l,bbox:p,halfPadding:m,label:u}},"labelHelper"),Qn=o((t,e)=>{let r=e.node().getBBox();t.width=r.width,t.height=r.height},"updateNodeBounds");o(Hl,"insertPolygonShape")});var Mtt,ave,sve=N(()=>{"use strict";iF();vt();zt();nF();Mtt=o(async(t,e)=>{e.useHtmlLabels||me().flowchart.htmlLabels||(e.centerLabel=!0);let{shapeSvg:n,bbox:i,halfPadding:a}=await Di(t,e,"node "+e.classes,!0);Y.info("Classes = ",e.classes);let s=n.insert("rect",":first-child");return s.attr("rx",e.rx).attr("ry",e.ry).attr("x",-i.width/2-a).attr("y",-i.height/2-a).attr("width",i.width+e.padding).attr("height",i.height+e.padding),Qn(e,s),e.intersect=function(l){return In.rect(e,l)},n},"note"),ave=Mtt});function aF(t,e,r,n){let i=[],a=o(l=>{i.push(l,0)},"addBorder"),s=o(l=>{i.push(0,l)},"skipBorder");e.includes("t")?(Y.debug("add top border"),a(r)):s(r),e.includes("r")?(Y.debug("add right border"),a(n)):s(n),e.includes("b")?(Y.debug("add bottom border"),a(r)):s(r),e.includes("l")?(Y.debug("add left border"),a(n)):s(n),t.attr("stroke-dasharray",i.join(" "))}var ove,yo,lve,Itt,Ott,Ptt,Btt,Ftt,$tt,ztt,Gtt,Vtt,Utt,Htt,Wtt,qtt,Ytt,Xtt,jtt,Ktt,Qtt,Ztt,cve,Jtt,ert,uve,aC,sF,hve,fve=N(()=>{"use strict";dr();zt();gr();vt();Yye();rC();nF();sve();iF();ove=o(t=>t?" "+t:"","formatClass"),yo=o((t,e)=>`${e||"node default"}${ove(t.classes)} ${ove(t.class)}`,"getClassesFromNode"),lve=o(async(t,e)=>{let{shapeSvg:r,bbox:n}=await Di(t,e,yo(e,void 0),!0),i=n.width+e.padding,a=n.height+e.padding,s=i+a,l=[{x:s/2,y:0},{x:s,y:-s/2},{x:s/2,y:-s},{x:0,y:-s/2}];Y.info("Question main (Circle)");let u=Hl(r,s,s,l);return u.attr("style",e.style),Qn(e,u),e.intersect=function(h){return Y.warn("Intersect called"),In.polygon(e,l,h)},r},"question"),Itt=o((t,e)=>{let r=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),n=28,i=[{x:0,y:n/2},{x:n/2,y:0},{x:0,y:-n/2},{x:-n/2,y:0}];return r.insert("polygon",":first-child").attr("points",i.map(function(s){return s.x+","+s.y}).join(" ")).attr("class","state-start").attr("r",7).attr("width",28).attr("height",28),e.width=28,e.height=28,e.intersect=function(s){return In.circle(e,14,s)},r},"choice"),Ott=o(async(t,e)=>{let{shapeSvg:r,bbox:n}=await Di(t,e,yo(e,void 0),!0),i=4,a=n.height+e.padding,s=a/i,l=n.width+2*s+e.padding,u=[{x:s,y:0},{x:l-s,y:0},{x:l,y:-a/2},{x:l-s,y:-a},{x:s,y:-a},{x:0,y:-a/2}],h=Hl(r,l,a,u);return h.attr("style",e.style),Qn(e,h),e.intersect=function(f){return In.polygon(e,u,f)},r},"hexagon"),Ptt=o(async(t,e)=>{let{shapeSvg:r,bbox:n}=await Di(t,e,void 0,!0),i=2,a=n.height+2*e.padding,s=a/i,l=n.width+2*s+e.padding,u=qye(e.directions,n,e),h=Hl(r,l,a,u);return h.attr("style",e.style),Qn(e,h),e.intersect=function(f){return In.polygon(e,u,f)},r},"block_arrow"),Btt=o(async(t,e)=>{let{shapeSvg:r,bbox:n}=await Di(t,e,yo(e,void 0),!0),i=n.width+e.padding,a=n.height+e.padding,s=[{x:-a/2,y:0},{x:i,y:0},{x:i,y:-a},{x:-a/2,y:-a},{x:0,y:-a/2}];return Hl(r,i,a,s).attr("style",e.style),e.width=i+a,e.height=a,e.intersect=function(u){return In.polygon(e,s,u)},r},"rect_left_inv_arrow"),Ftt=o(async(t,e)=>{let{shapeSvg:r,bbox:n}=await Di(t,e,yo(e),!0),i=n.width+e.padding,a=n.height+e.padding,s=[{x:-2*a/6,y:0},{x:i-a/6,y:0},{x:i+2*a/6,y:-a},{x:a/6,y:-a}],l=Hl(r,i,a,s);return l.attr("style",e.style),Qn(e,l),e.intersect=function(u){return In.polygon(e,s,u)},r},"lean_right"),$tt=o(async(t,e)=>{let{shapeSvg:r,bbox:n}=await Di(t,e,yo(e,void 0),!0),i=n.width+e.padding,a=n.height+e.padding,s=[{x:2*a/6,y:0},{x:i+a/6,y:0},{x:i-2*a/6,y:-a},{x:-a/6,y:-a}],l=Hl(r,i,a,s);return l.attr("style",e.style),Qn(e,l),e.intersect=function(u){return In.polygon(e,s,u)},r},"lean_left"),ztt=o(async(t,e)=>{let{shapeSvg:r,bbox:n}=await Di(t,e,yo(e,void 0),!0),i=n.width+e.padding,a=n.height+e.padding,s=[{x:-2*a/6,y:0},{x:i+2*a/6,y:0},{x:i-a/6,y:-a},{x:a/6,y:-a}],l=Hl(r,i,a,s);return l.attr("style",e.style),Qn(e,l),e.intersect=function(u){return In.polygon(e,s,u)},r},"trapezoid"),Gtt=o(async(t,e)=>{let{shapeSvg:r,bbox:n}=await Di(t,e,yo(e,void 0),!0),i=n.width+e.padding,a=n.height+e.padding,s=[{x:a/6,y:0},{x:i-a/6,y:0},{x:i+2*a/6,y:-a},{x:-2*a/6,y:-a}],l=Hl(r,i,a,s);return l.attr("style",e.style),Qn(e,l),e.intersect=function(u){return In.polygon(e,s,u)},r},"inv_trapezoid"),Vtt=o(async(t,e)=>{let{shapeSvg:r,bbox:n}=await Di(t,e,yo(e,void 0),!0),i=n.width+e.padding,a=n.height+e.padding,s=[{x:0,y:0},{x:i+a/2,y:0},{x:i,y:-a/2},{x:i+a/2,y:-a},{x:0,y:-a}],l=Hl(r,i,a,s);return l.attr("style",e.style),Qn(e,l),e.intersect=function(u){return In.polygon(e,s,u)},r},"rect_right_inv_arrow"),Utt=o(async(t,e)=>{let{shapeSvg:r,bbox:n}=await Di(t,e,yo(e,void 0),!0),i=n.width+e.padding,a=i/2,s=a/(2.5+i/50),l=n.height+s+e.padding,u="M 0,"+s+" a "+a+","+s+" 0,0,0 "+i+" 0 a "+a+","+s+" 0,0,0 "+-i+" 0 l 0,"+l+" a "+a+","+s+" 0,0,0 "+i+" 0 l 0,"+-l,h=r.attr("label-offset-y",s).insert("path",":first-child").attr("style",e.style).attr("d",u).attr("transform","translate("+-i/2+","+-(l/2+s)+")");return Qn(e,h),e.intersect=function(f){let d=In.rect(e,f),p=d.x-e.x;if(a!=0&&(Math.abs(p)<e.width/2||Math.abs(p)==e.width/2&&Math.abs(d.y-e.y)>e.height/2-s)){let m=s*s*(1-p*p/(a*a));m!=0&&(m=Math.sqrt(m)),m=s-m,f.y-e.y>0&&(m=-m),d.y+=m}return d},r},"cylinder"),Htt=o(async(t,e)=>{let{shapeSvg:r,bbox:n,halfPadding:i}=await Di(t,e,"node "+e.classes+" "+e.class,!0),a=r.insert("rect",":first-child"),s=e.positioned?e.width:n.width+e.padding,l=e.positioned?e.height:n.height+e.padding,u=e.positioned?-s/2:-n.width/2-i,h=e.positioned?-l/2:-n.height/2-i;if(a.attr("class","basic label-container").attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("x",u).attr("y",h).attr("width",s).attr("height",l),e.props){let f=new Set(Object.keys(e.props));e.props.borders&&(aF(a,e.props.borders,s,l),f.delete("borders")),f.forEach(d=>{Y.warn(`Unknown node property ${d}`)})}return Qn(e,a),e.intersect=function(f){return In.rect(e,f)},r},"rect"),Wtt=o(async(t,e)=>{let{shapeSvg:r,bbox:n,halfPadding:i}=await Di(t,e,"node "+e.classes,!0),a=r.insert("rect",":first-child"),s=e.positioned?e.width:n.width+e.padding,l=e.positioned?e.height:n.height+e.padding,u=e.positioned?-s/2:-n.width/2-i,h=e.positioned?-l/2:-n.height/2-i;if(a.attr("class","basic cluster composite label-container").attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("x",u).attr("y",h).attr("width",s).attr("height",l),e.props){let f=new Set(Object.keys(e.props));e.props.borders&&(aF(a,e.props.borders,s,l),f.delete("borders")),f.forEach(d=>{Y.warn(`Unknown node property ${d}`)})}return Qn(e,a),e.intersect=function(f){return In.rect(e,f)},r},"composite"),qtt=o(async(t,e)=>{let{shapeSvg:r}=await Di(t,e,"label",!0);Y.trace("Classes = ",e.class);let n=r.insert("rect",":first-child"),i=0,a=0;if(n.attr("width",i).attr("height",a),r.attr("class","label edgeLabel"),e.props){let s=new Set(Object.keys(e.props));e.props.borders&&(aF(n,e.props.borders,i,a),s.delete("borders")),s.forEach(l=>{Y.warn(`Unknown node property ${l}`)})}return Qn(e,n),e.intersect=function(s){return In.rect(e,s)},r},"labelRect");o(aF,"applyNodePropertyBorders");Ytt=o((t,e)=>{let r;e.classes?r="node "+e.classes:r="node default";let n=t.insert("g").attr("class",r).attr("id",e.domId||e.id),i=n.insert("rect",":first-child"),a=n.insert("line"),s=n.insert("g").attr("class","label"),l=e.labelText.flat?e.labelText.flat():e.labelText,u="";typeof l=="object"?u=l[0]:u=l,Y.info("Label text abc79",u,l,typeof l=="object");let h=s.node().appendChild(vs(u,e.labelStyle,!0,!0)),f={width:0,height:0};if(fr(me().flowchart.htmlLabels)){let y=h.children[0],v=Ge(h);f=y.getBoundingClientRect(),v.attr("width",f.width),v.attr("height",f.height)}Y.info("Text 2",l);let d=l.slice(1,l.length),p=h.getBBox(),m=s.node().appendChild(vs(d.join?d.join("<br/>"):d,e.labelStyle,!0,!0));if(fr(me().flowchart.htmlLabels)){let y=m.children[0],v=Ge(m);f=y.getBoundingClientRect(),v.attr("width",f.width),v.attr("height",f.height)}let g=e.padding/2;return Ge(m).attr("transform","translate( "+(f.width>p.width?0:(p.width-f.width)/2)+", "+(p.height+g+5)+")"),Ge(h).attr("transform","translate( "+(f.width<p.width?0:-(p.width-f.width)/2)+", 0)"),f=s.node().getBBox(),s.attr("transform","translate("+-f.width/2+", "+(-f.height/2-g+3)+")"),i.attr("class","outer title-state").attr("x",-f.width/2-g).attr("y",-f.height/2-g).attr("width",f.width+e.padding).attr("height",f.height+e.padding),a.attr("class","divider").attr("x1",-f.width/2-g).attr("x2",f.width/2+g).attr("y1",-f.height/2-g+p.height+g).attr("y2",-f.height/2-g+p.height+g),Qn(e,i),e.intersect=function(y){return In.rect(e,y)},n},"rectWithTitle"),Xtt=o(async(t,e)=>{let{shapeSvg:r,bbox:n}=await Di(t,e,yo(e,void 0),!0),i=n.height+e.padding,a=n.width+i/4+e.padding,s=r.insert("rect",":first-child").attr("style",e.style).attr("rx",i/2).attr("ry",i/2).attr("x",-a/2).attr("y",-i/2).attr("width",a).attr("height",i);return Qn(e,s),e.intersect=function(l){return In.rect(e,l)},r},"stadium"),jtt=o(async(t,e)=>{let{shapeSvg:r,bbox:n,halfPadding:i}=await Di(t,e,yo(e,void 0),!0),a=r.insert("circle",":first-child");return a.attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("r",n.width/2+i).attr("width",n.width+e.padding).attr("height",n.height+e.padding),Y.info("Circle main"),Qn(e,a),e.intersect=function(s){return Y.info("Circle intersect",e,n.width/2+i,s),In.circle(e,n.width/2+i,s)},r},"circle"),Ktt=o(async(t,e)=>{let{shapeSvg:r,bbox:n,halfPadding:i}=await Di(t,e,yo(e,void 0),!0),a=5,s=r.insert("g",":first-child"),l=s.insert("circle"),u=s.insert("circle");return s.attr("class",e.class),l.attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("r",n.width/2+i+a).attr("width",n.width+e.padding+a*2).attr("height",n.height+e.padding+a*2),u.attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("r",n.width/2+i).attr("width",n.width+e.padding).attr("height",n.height+e.padding),Y.info("DoubleCircle main"),Qn(e,l),e.intersect=function(h){return Y.info("DoubleCircle intersect",e,n.width/2+i+a,h),In.circle(e,n.width/2+i+a,h)},r},"doublecircle"),Qtt=o(async(t,e)=>{let{shapeSvg:r,bbox:n}=await Di(t,e,yo(e,void 0),!0),i=n.width+e.padding,a=n.height+e.padding,s=[{x:0,y:0},{x:i,y:0},{x:i,y:-a},{x:0,y:-a},{x:0,y:0},{x:-8,y:0},{x:i+8,y:0},{x:i+8,y:-a},{x:-8,y:-a},{x:-8,y:0}],l=Hl(r,i,a,s);return l.attr("style",e.style),Qn(e,l),e.intersect=function(u){return In.polygon(e,s,u)},r},"subroutine"),Ztt=o((t,e)=>{let r=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),n=r.insert("circle",":first-child");return n.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),Qn(e,n),e.intersect=function(i){return In.circle(e,7,i)},r},"start"),cve=o((t,e,r)=>{let n=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),i=70,a=10;r==="LR"&&(i=10,a=70);let s=n.append("rect").attr("x",-1*i/2).attr("y",-1*a/2).attr("width",i).attr("height",a).attr("class","fork-join");return Qn(e,s),e.height=e.height+e.padding/2,e.width=e.width+e.padding/2,e.intersect=function(l){return In.rect(e,l)},n},"forkJoin"),Jtt=o((t,e)=>{let r=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),n=r.insert("circle",":first-child"),i=r.insert("circle",":first-child");return i.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),n.attr("class","state-end").attr("r",5).attr("width",10).attr("height",10),Qn(e,i),e.intersect=function(a){return In.circle(e,7,a)},r},"end"),ert=o((t,e)=>{let r=e.padding/2,n=4,i=8,a;e.classes?a="node "+e.classes:a="node default";let s=t.insert("g").attr("class",a).attr("id",e.domId||e.id),l=s.insert("rect",":first-child"),u=s.insert("line"),h=s.insert("line"),f=0,d=n,p=s.insert("g").attr("class","label"),m=0,g=e.classData.annotations?.[0],y=e.classData.annotations[0]?"\xAB"+e.classData.annotations[0]+"\xBB":"",v=p.node().appendChild(vs(y,e.labelStyle,!0,!0)),x=v.getBBox();if(fr(me().flowchart.htmlLabels)){let S=v.children[0],_=Ge(v);x=S.getBoundingClientRect(),_.attr("width",x.width),_.attr("height",x.height)}e.classData.annotations[0]&&(d+=x.height+n,f+=x.width);let b=e.classData.label;e.classData.type!==void 0&&e.classData.type!==""&&(me().flowchart.htmlLabels?b+="&lt;"+e.classData.type+"&gt;":b+="<"+e.classData.type+">");let w=p.node().appendChild(vs(b,e.labelStyle,!0,!0));Ge(w).attr("class","classTitle");let C=w.getBBox();if(fr(me().flowchart.htmlLabels)){let S=w.children[0],_=Ge(w);C=S.getBoundingClientRect(),_.attr("width",C.width),_.attr("height",C.height)}d+=C.height+n,C.width>f&&(f=C.width);let T=[];e.classData.members.forEach(S=>{let _=S.getDisplayDetails(),I=_.displayText;me().flowchart.htmlLabels&&(I=I.replace(/</g,"&lt;").replace(/>/g,"&gt;"));let D=p.node().appendChild(vs(I,_.cssStyle?_.cssStyle:e.labelStyle,!0,!0)),k=D.getBBox();if(fr(me().flowchart.htmlLabels)){let L=D.children[0],R=Ge(D);k=L.getBoundingClientRect(),R.attr("width",k.width),R.attr("height",k.height)}k.width>f&&(f=k.width),d+=k.height+n,T.push(D)}),d+=i;let E=[];if(e.classData.methods.forEach(S=>{let _=S.getDisplayDetails(),I=_.displayText;me().flowchart.htmlLabels&&(I=I.replace(/</g,"&lt;").replace(/>/g,"&gt;"));let D=p.node().appendChild(vs(I,_.cssStyle?_.cssStyle:e.labelStyle,!0,!0)),k=D.getBBox();if(fr(me().flowchart.htmlLabels)){let L=D.children[0],R=Ge(D);k=L.getBoundingClientRect(),R.attr("width",k.width),R.attr("height",k.height)}k.width>f&&(f=k.width),d+=k.height+n,E.push(D)}),d+=i,g){let S=(f-x.width)/2;Ge(v).attr("transform","translate( "+(-1*f/2+S)+", "+-1*d/2+")"),m=x.height+n}let A=(f-C.width)/2;return Ge(w).attr("transform","translate( "+(-1*f/2+A)+", "+(-1*d/2+m)+")"),m+=C.height+n,u.attr("class","divider").attr("x1",-f/2-r).attr("x2",f/2+r).attr("y1",-d/2-r+i+m).attr("y2",-d/2-r+i+m),m+=i,T.forEach(S=>{Ge(S).attr("transform","translate( "+-f/2+", "+(-1*d/2+m+i/2)+")");let _=S?.getBBox();m+=(_?.height??0)+n}),m+=i,h.attr("class","divider").attr("x1",-f/2-r).attr("x2",f/2+r).attr("y1",-d/2-r+i+m).attr("y2",-d/2-r+i+m),m+=i,E.forEach(S=>{Ge(S).attr("transform","translate( "+-f/2+", "+(-1*d/2+m)+")");let _=S?.getBBox();m+=(_?.height??0)+n}),l.attr("style",e.style).attr("class","outer title-state").attr("x",-f/2-r).attr("y",-(d/2)-r).attr("width",f+e.padding).attr("height",d+e.padding),Qn(e,l),e.intersect=function(S){return In.rect(e,S)},s},"class_box"),uve={rhombus:lve,composite:Wtt,question:lve,rect:Htt,labelRect:qtt,rectWithTitle:Ytt,choice:Itt,circle:jtt,doublecircle:Ktt,stadium:Xtt,hexagon:Ott,block_arrow:Ptt,rect_left_inv_arrow:Btt,lean_right:Ftt,lean_left:$tt,trapezoid:ztt,inv_trapezoid:Gtt,rect_right_inv_arrow:Vtt,cylinder:Utt,start:Ztt,end:Jtt,note:ave,subroutine:Qtt,fork:cve,join:cve,class_box:ert},aC={},sF=o(async(t,e,r)=>{let n,i;if(e.link){let a;me().securityLevel==="sandbox"?a="_top":e.linkTarget&&(a=e.linkTarget||"_blank"),n=t.insert("svg:a").attr("xlink:href",e.link).attr("target",a),i=await uve[e.shape](n,e,r)}else i=await uve[e.shape](t,e,r),n=i;return e.tooltip&&i.attr("title",e.tooltip),e.class&&i.attr("class","node default "+e.class),aC[e.id]=n,e.haveCallback&&aC[e.id].attr("class",aC[e.id].attr("class")+" clickable"),n},"insertNode"),hve=o(t=>{let e=aC[t.id];Y.trace("Transforming node",t.diff,t,"translate("+(t.x-t.width/2-5)+", "+t.width/2+")");let r=8,n=t.diff||0;return t.clusterNode?e.attr("transform","translate("+(t.x+n-t.width/2)+", "+(t.y-t.height/2-r)+")"):e.attr("transform","translate("+t.x+", "+t.y+")"),n},"positionNode")});function dve(t,e,r=!1){let n=t,i="default";(n?.classes?.length||0)>0&&(i=(n?.classes??[]).join(" ")),i=i+" flowchart-label";let a=0,s="",l;switch(n.type){case"round":a=5,s="rect";break;case"composite":a=0,s="composite",l=0;break;case"square":s="rect";break;case"diamond":s="question";break;case"hexagon":s="hexagon";break;case"block_arrow":s="block_arrow";break;case"odd":s="rect_left_inv_arrow";break;case"lean_right":s="lean_right";break;case"lean_left":s="lean_left";break;case"trapezoid":s="trapezoid";break;case"inv_trapezoid":s="inv_trapezoid";break;case"rect_left_inv_arrow":s="rect_left_inv_arrow";break;case"circle":s="circle";break;case"ellipse":s="ellipse";break;case"stadium":s="stadium";break;case"subroutine":s="subroutine";break;case"cylinder":s="cylinder";break;case"group":s="rect";break;case"doublecircle":s="doublecircle";break;default:s="rect"}let u=Y9(n?.styles??[]),h=n.label,f=n.size??{width:0,height:0,x:0,y:0};return{labelStyle:u.labelStyle,shape:s,labelText:h,rx:a,ry:a,class:i,style:u.style,id:n.id,directions:n.directions,width:f.width,height:f.height,x:f.x,y:f.y,positioned:r,intersect:void 0,type:n.type,padding:l??cr()?.block?.padding??0}}async function trt(t,e,r){let n=dve(e,r,!1);if(n.type==="group")return;let i=cr(),a=await sF(t,n,{config:i}),s=a.node().getBBox(),l=r.getBlock(n.id);l.size={width:s.width,height:s.height,x:0,y:0,node:a},r.setBlock(l),a.remove()}async function rrt(t,e,r){let n=dve(e,r,!0);if(r.getBlock(n.id).type!=="space"){let a=cr();await sF(t,n,{config:a}),e.intersect=n?.intersect,hve(n)}}async function oF(t,e,r,n){for(let i of e)await n(t,i,r),i.children&&await oF(t,i.children,r,n)}async function pve(t,e,r){await oF(t,e,r,trt)}async function mve(t,e,r){await oF(t,e,r,rrt)}async function gve(t,e,r,n,i){let a=new sn({multigraph:!0,compound:!0});a.setGraph({rankdir:"TB",nodesep:10,ranksep:10,marginx:8,marginy:8});for(let s of r)s.size&&a.setNode(s.id,{width:s.size.width,height:s.size.height,intersect:s.intersect});for(let s of e)if(s.start&&s.end){let l=n.getBlock(s.start),u=n.getBlock(s.end);if(l?.size&&u?.size){let h=l.size,f=u.size,d=[{x:h.x,y:h.y},{x:h.x+(f.x-h.x)/2,y:h.y+(f.y-h.y)/2},{x:f.x,y:f.y}];Hye(t,{v:s.start,w:s.end,name:s.id},{...s,arrowTypeEnd:s.arrowTypeEnd,arrowTypeStart:s.arrowTypeStart,points:d,classes:"edge-thickness-normal edge-pattern-solid flowchart-link LS-a1 LE-b1"},void 0,"block",a,i),s.label&&(await Vye(t,{...s,label:s.label,labelStyle:"stroke: #333; stroke-width: 1.5px;fill:none;",arrowTypeEnd:s.arrowTypeEnd,arrowTypeStart:s.arrowTypeStart,points:d,classes:"edge-thickness-normal edge-pattern-solid flowchart-link LS-a1 LE-b1"}),Uye({...s,x:d[1].x,y:d[1].y},{originalPath:d}))}}}var yve=N(()=>{"use strict";Vo();ji();Wye();fve();ir();o(dve,"getNodeFromBlock");o(trt,"calculateBlockSize");o(rrt,"insertBlockPositioned");o(oF,"performOperations");o(pve,"calculateBlockSizes");o(mve,"insertBlocks");o(gve,"insertEdges")});var nrt,irt,vve,xve=N(()=>{"use strict";dr();ji();Nye();vt();Ei();Pye();yve();nrt=o(function(t,e){return e.db.getClasses()},"getClasses"),irt=o(async function(t,e,r,n){let{securityLevel:i,block:a}=cr(),s=n.db,l;i==="sandbox"&&(l=Ge("#i"+e));let u=i==="sandbox"?Ge(l.nodes()[0].contentDocument.body):Ge("body"),h=i==="sandbox"?u.select(`[id="${e}"]`):Ge(`[id="${e}"]`);Rye(h,["point","circle","cross"],n.type,e);let d=s.getBlocks(),p=s.getBlocksFlat(),m=s.getEdges(),g=h.insert("g").attr("class","block");await pve(g,d,s);let y=Oye(s);if(await mve(g,d,s),await gve(g,m,p,s,e),y){let v=y,x=Math.max(1,Math.round(.125*(v.width/v.height))),b=v.height+x+10,w=v.width+10,{useMaxWidth:C}=a;vn(h,b,w,!!C),Y.debug("Here Bounds",y,v),h.attr("viewBox",`${v.x-5} ${v.y-5} ${v.width+10} ${v.height+10}`)}},"draw"),vve={draw:irt,getClasses:nrt}});var bve={};hr(bve,{diagram:()=>art});var art,wve=N(()=>{"use strict";wye();_ye();Lye();xve();art={parser:bye,db:Aye,renderer:vve,styles:Dye}});var lF,cF,v4,Eve,uF,Ha,Zc,x4,Sve,crt,b4,Cve,Ave,_ve,Dve,Lve,sC,Ff,oC=N(()=>{"use strict";lF={L:"left",R:"right",T:"top",B:"bottom"},cF={L:o(t=>`${t},${t/2} 0,${t} 0,0`,"L"),R:o(t=>`0,${t/2} ${t},0 ${t},${t}`,"R"),T:o(t=>`0,0 ${t},0 ${t/2},${t}`,"T"),B:o(t=>`${t/2},0 ${t},${t} 0,${t}`,"B")},v4={L:o((t,e)=>t-e+2,"L"),R:o((t,e)=>t-2,"R"),T:o((t,e)=>t-e+2,"T"),B:o((t,e)=>t-2,"B")},Eve=o(function(t){return Ha(t)?t==="L"?"R":"L":t==="T"?"B":"T"},"getOppositeArchitectureDirection"),uF=o(function(t){let e=t;return e==="L"||e==="R"||e==="T"||e==="B"},"isArchitectureDirection"),Ha=o(function(t){let e=t;return e==="L"||e==="R"},"isArchitectureDirectionX"),Zc=o(function(t){let e=t;return e==="T"||e==="B"},"isArchitectureDirectionY"),x4=o(function(t,e){let r=Ha(t)&&Zc(e),n=Zc(t)&&Ha(e);return r||n},"isArchitectureDirectionXY"),Sve=o(function(t){let e=t[0],r=t[1],n=Ha(e)&&Zc(r),i=Zc(e)&&Ha(r);return n||i},"isArchitecturePairXY"),crt=o(function(t){return t!=="LL"&&t!=="RR"&&t!=="TT"&&t!=="BB"},"isValidArchitectureDirectionPair"),b4=o(function(t,e){let r=`${t}${e}`;return crt(r)?r:void 0},"getArchitectureDirectionPair"),Cve=o(function([t,e],r){let n=r[0],i=r[1];return Ha(n)?Zc(i)?[t+(n==="L"?-1:1),e+(i==="T"?1:-1)]:[t+(n==="L"?-1:1),e]:Ha(i)?[t+(i==="L"?1:-1),e+(n==="T"?1:-1)]:[t,e+(n==="T"?1:-1)]},"shiftPositionByArchitectureDirectionPair"),Ave=o(function(t){return t==="LT"||t==="TL"?[1,1]:t==="BL"||t==="LB"?[1,-1]:t==="BR"||t==="RB"?[-1,-1]:[-1,1]},"getArchitectureDirectionXYFactors"),_ve=o(function(t,e){return x4(t,e)?"bend":Ha(t)?"horizontal":"vertical"},"getArchitectureDirectionAlignment"),Dve=o(function(t){return t.type==="service"},"isArchitectureService"),Lve=o(function(t){return t.type==="junction"},"isArchitectureJunction"),sC=o(t=>t.data(),"edgeData"),Ff=o(t=>t.data(),"nodeData")});function Li(t){let e=me().architecture;return e?.[t]?e[t]:Rve[t]}var Rve,vr,urt,hrt,frt,drt,prt,mrt,hF,grt,yrt,vrt,xrt,brt,wrt,Trt,Qp,w4=N(()=>{"use strict";Ya();zt();s6();mi();oC();Rve=or.architecture,vr=new pf(()=>({nodes:{},groups:{},edges:[],registeredIds:{},config:Rve,dataStructures:void 0,elements:{}})),urt=o(()=>{vr.reset(),Ar()},"clear"),hrt=o(function({id:t,icon:e,in:r,title:n,iconText:i}){if(vr.records.registeredIds[t]!==void 0)throw new Error(`The service id [${t}] is already in use by another ${vr.records.registeredIds[t]}`);if(r!==void 0){if(t===r)throw new Error(`The service [${t}] cannot be placed within itself`);if(vr.records.registeredIds[r]===void 0)throw new Error(`The service [${t}]'s parent does not exist. Please make sure the parent is created before this service`);if(vr.records.registeredIds[r]==="node")throw new Error(`The service [${t}]'s parent is not a group`)}vr.records.registeredIds[t]="node",vr.records.nodes[t]={id:t,type:"service",icon:e,iconText:i,title:n,edges:[],in:r}},"addService"),frt=o(()=>Object.values(vr.records.nodes).filter(Dve),"getServices"),drt=o(function({id:t,in:e}){vr.records.registeredIds[t]="node",vr.records.nodes[t]={id:t,type:"junction",edges:[],in:e}},"addJunction"),prt=o(()=>Object.values(vr.records.nodes).filter(Lve),"getJunctions"),mrt=o(()=>Object.values(vr.records.nodes),"getNodes"),hF=o(t=>vr.records.nodes[t],"getNode"),grt=o(function({id:t,icon:e,in:r,title:n}){if(vr.records.registeredIds[t]!==void 0)throw new Error(`The group id [${t}] is already in use by another ${vr.records.registeredIds[t]}`);if(r!==void 0){if(t===r)throw new Error(`The group [${t}] cannot be placed within itself`);if(vr.records.registeredIds[r]===void 0)throw new Error(`The group [${t}]'s parent does not exist. Please make sure the parent is created before this group`);if(vr.records.registeredIds[r]==="node")throw new Error(`The group [${t}]'s parent is not a group`)}vr.records.registeredIds[t]="group",vr.records.groups[t]={id:t,icon:e,title:n,in:r}},"addGroup"),yrt=o(()=>Object.values(vr.records.groups),"getGroups"),vrt=o(function({lhsId:t,rhsId:e,lhsDir:r,rhsDir:n,lhsInto:i,rhsInto:a,lhsGroup:s,rhsGroup:l,title:u}){if(!uF(r))throw new Error(`Invalid direction given for left hand side of edge ${t}--${e}. Expected (L,R,T,B) got ${r}`);if(!uF(n))throw new Error(`Invalid direction given for right hand side of edge ${t}--${e}. Expected (L,R,T,B) got ${n}`);if(vr.records.nodes[t]===void 0&&vr.records.groups[t]===void 0)throw new Error(`The left-hand id [${t}] does not yet exist. Please create the service/group before declaring an edge to it.`);if(vr.records.nodes[e]===void 0&&vr.records.groups[t]===void 0)throw new Error(`The right-hand id [${e}] does not yet exist. Please create the service/group before declaring an edge to it.`);let h=vr.records.nodes[t].in,f=vr.records.nodes[e].in;if(s&&h&&f&&h==f)throw new Error(`The left-hand id [${t}] is modified to traverse the group boundary, but the edge does not pass through two groups.`);if(l&&h&&f&&h==f)throw new Error(`The right-hand id [${e}] is modified to traverse the group boundary, but the edge does not pass through two groups.`);let d={lhsId:t,lhsDir:r,lhsInto:i,lhsGroup:s,rhsId:e,rhsDir:n,rhsInto:a,rhsGroup:l,title:u};vr.records.edges.push(d),vr.records.nodes[t]&&vr.records.nodes[e]&&(vr.records.nodes[t].edges.push(vr.records.edges[vr.records.edges.length-1]),vr.records.nodes[e].edges.push(vr.records.edges[vr.records.edges.length-1]))},"addEdge"),xrt=o(()=>vr.records.edges,"getEdges"),brt=o(()=>{if(vr.records.dataStructures===void 0){let t={},e=Object.entries(vr.records.nodes).reduce((l,[u,h])=>(l[u]=h.edges.reduce((f,d)=>{let p=hF(d.lhsId)?.in,m=hF(d.rhsId)?.in;if(p&&m&&p!==m){let g=_ve(d.lhsDir,d.rhsDir);g!=="bend"&&(t[p]??={},t[p][m]=g,t[m]??={},t[m][p]=g)}if(d.lhsId===u){let g=b4(d.lhsDir,d.rhsDir);g&&(f[g]=d.rhsId)}else{let g=b4(d.rhsDir,d.lhsDir);g&&(f[g]=d.lhsId)}return f},{}),l),{}),r=Object.keys(e)[0],n={[r]:1},i=Object.keys(e).reduce((l,u)=>u===r?l:{...l,[u]:1},{}),a=o(l=>{let u={[l]:[0,0]},h=[l];for(;h.length>0;){let f=h.shift();if(f){n[f]=1,delete i[f];let d=e[f],[p,m]=u[f];Object.entries(d).forEach(([g,y])=>{n[y]||(u[y]=Cve([p,m],g),h.push(y))})}}return u},"BFS"),s=[a(r)];for(;Object.keys(i).length>0;)s.push(a(Object.keys(i)[0]));vr.records.dataStructures={adjList:e,spatialMaps:s,groupAlignments:t}}return vr.records.dataStructures},"getDataStructures"),wrt=o((t,e)=>{vr.records.elements[t]=e},"setElementForId"),Trt=o(t=>vr.records.elements[t],"getElementById"),Qp={clear:urt,setDiagramTitle:$r,getDiagramTitle:Ir,setAccTitle:Lr,getAccTitle:Rr,setAccDescription:Nr,getAccDescription:Mr,addService:hrt,getServices:frt,addJunction:drt,getJunctions:prt,getNodes:mrt,getNode:hF,addGroup:grt,getGroups:yrt,addEdge:vrt,getEdges:xrt,setElementForId:wrt,getElementById:Trt,getDataStructures:brt};o(Li,"getConfigField")});var krt,Nve,Mve=N(()=>{"use strict";kp();vt();T1();w4();krt=o((t,e)=>{$c(t,e),t.groups.map(e.addGroup),t.services.map(r=>e.addService({...r,type:"service"})),t.junctions.map(r=>e.addJunction({...r,type:"junction"})),t.edges.map(e.addEdge)},"populateDb"),Nve={parse:o(async t=>{let e=await uo("architecture",t);Y.debug(e),krt(e,Qp)},"parse")}});var Ert,Ive,Ove=N(()=>{"use strict";Ert=o(t=>`
+  .edge {
+    stroke-width: ${t.archEdgeWidth};
+    stroke: ${t.archEdgeColor};
+    fill: none;
+  }
+
+  .arrow {
+    fill: ${t.archEdgeArrowColor};
+  }
+
+  .node-bkg {
+    fill: none;
+    stroke: ${t.archGroupBorderColor};
+    stroke-width: ${t.archGroupBorderWidth};
+    stroke-dasharray: 8;
+  }
+  .node-icon-text {
+    display: flex; 
+    align-items: center;
+  }
+  
+  .node-icon-text > div {
+    color: #fff;
+    margin: 1px;
+    height: fit-content;
+    text-align: center;
+    overflow: hidden;
+    display: -webkit-box;
+    -webkit-box-orient: vertical;
+  }
+`,"getStyles"),Ive=Ert});var dF=Mi((T4,fF)=>{"use strict";o(function(e,r){typeof T4=="object"&&typeof fF=="object"?fF.exports=r():typeof define=="function"&&define.amd?define([],r):typeof T4=="object"?T4.layoutBase=r():e.layoutBase=r()},"webpackUniversalModuleDefinition")(T4,function(){return function(t){var e={};function r(n){if(e[n])return e[n].exports;var i=e[n]={i:n,l:!1,exports:{}};return t[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return o(r,"__webpack_require__"),r.m=t,r.c=e,r.i=function(n){return n},r.d=function(n,i,a){r.o(n,i)||Object.defineProperty(n,i,{configurable:!1,enumerable:!0,get:a})},r.n=function(n){var i=n&&n.__esModule?o(function(){return n.default},"getDefault"):o(function(){return n},"getModuleExports");return r.d(i,"a",i),i},r.o=function(n,i){return Object.prototype.hasOwnProperty.call(n,i)},r.p="",r(r.s=28)}([function(t,e,r){"use strict";function n(){}o(n,"LayoutConstants"),n.QUALITY=1,n.DEFAULT_CREATE_BENDS_AS_NEEDED=!1,n.DEFAULT_INCREMENTAL=!1,n.DEFAULT_ANIMATION_ON_LAYOUT=!0,n.DEFAULT_ANIMATION_DURING_LAYOUT=!1,n.DEFAULT_ANIMATION_PERIOD=50,n.DEFAULT_UNIFORM_LEAF_NODE_SIZES=!1,n.DEFAULT_GRAPH_MARGIN=15,n.NODE_DIMENSIONS_INCLUDE_LABELS=!1,n.SIMPLE_NODE_SIZE=40,n.SIMPLE_NODE_HALF_SIZE=n.SIMPLE_NODE_SIZE/2,n.EMPTY_COMPOUND_NODE_SIZE=40,n.MIN_EDGE_LENGTH=1,n.WORLD_BOUNDARY=1e6,n.INITIAL_WORLD_BOUNDARY=n.WORLD_BOUNDARY/1e3,n.WORLD_CENTER_X=1200,n.WORLD_CENTER_Y=900,t.exports=n},function(t,e,r){"use strict";var n=r(2),i=r(8),a=r(9);function s(u,h,f){n.call(this,f),this.isOverlapingSourceAndTarget=!1,this.vGraphObject=f,this.bendpoints=[],this.source=u,this.target=h}o(s,"LEdge"),s.prototype=Object.create(n.prototype);for(var l in n)s[l]=n[l];s.prototype.getSource=function(){return this.source},s.prototype.getTarget=function(){return this.target},s.prototype.isInterGraph=function(){return this.isInterGraph},s.prototype.getLength=function(){return this.length},s.prototype.isOverlapingSourceAndTarget=function(){return this.isOverlapingSourceAndTarget},s.prototype.getBendpoints=function(){return this.bendpoints},s.prototype.getLca=function(){return this.lca},s.prototype.getSourceInLca=function(){return this.sourceInLca},s.prototype.getTargetInLca=function(){return this.targetInLca},s.prototype.getOtherEnd=function(u){if(this.source===u)return this.target;if(this.target===u)return this.source;throw"Node is not incident with this edge"},s.prototype.getOtherEndInGraph=function(u,h){for(var f=this.getOtherEnd(u),d=h.getGraphManager().getRoot();;){if(f.getOwner()==h)return f;if(f.getOwner()==d)break;f=f.getOwner().getParent()}return null},s.prototype.updateLength=function(){var u=new Array(4);this.isOverlapingSourceAndTarget=i.getIntersection(this.target.getRect(),this.source.getRect(),u),this.isOverlapingSourceAndTarget||(this.lengthX=u[0]-u[2],this.lengthY=u[1]-u[3],Math.abs(this.lengthX)<1&&(this.lengthX=a.sign(this.lengthX)),Math.abs(this.lengthY)<1&&(this.lengthY=a.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY))},s.prototype.updateLengthSimple=function(){this.lengthX=this.target.getCenterX()-this.source.getCenterX(),this.lengthY=this.target.getCenterY()-this.source.getCenterY(),Math.abs(this.lengthX)<1&&(this.lengthX=a.sign(this.lengthX)),Math.abs(this.lengthY)<1&&(this.lengthY=a.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY)},t.exports=s},function(t,e,r){"use strict";function n(i){this.vGraphObject=i}o(n,"LGraphObject"),t.exports=n},function(t,e,r){"use strict";var n=r(2),i=r(10),a=r(13),s=r(0),l=r(16),u=r(5);function h(d,p,m,g){m==null&&g==null&&(g=p),n.call(this,g),d.graphManager!=null&&(d=d.graphManager),this.estimatedSize=i.MIN_VALUE,this.inclusionTreeDepth=i.MAX_VALUE,this.vGraphObject=g,this.edges=[],this.graphManager=d,m!=null&&p!=null?this.rect=new a(p.x,p.y,m.width,m.height):this.rect=new a}o(h,"LNode"),h.prototype=Object.create(n.prototype);for(var f in n)h[f]=n[f];h.prototype.getEdges=function(){return this.edges},h.prototype.getChild=function(){return this.child},h.prototype.getOwner=function(){return this.owner},h.prototype.getWidth=function(){return this.rect.width},h.prototype.setWidth=function(d){this.rect.width=d},h.prototype.getHeight=function(){return this.rect.height},h.prototype.setHeight=function(d){this.rect.height=d},h.prototype.getCenterX=function(){return this.rect.x+this.rect.width/2},h.prototype.getCenterY=function(){return this.rect.y+this.rect.height/2},h.prototype.getCenter=function(){return new u(this.rect.x+this.rect.width/2,this.rect.y+this.rect.height/2)},h.prototype.getLocation=function(){return new u(this.rect.x,this.rect.y)},h.prototype.getRect=function(){return this.rect},h.prototype.getDiagonal=function(){return Math.sqrt(this.rect.width*this.rect.width+this.rect.height*this.rect.height)},h.prototype.getHalfTheDiagonal=function(){return Math.sqrt(this.rect.height*this.rect.height+this.rect.width*this.rect.width)/2},h.prototype.setRect=function(d,p){this.rect.x=d.x,this.rect.y=d.y,this.rect.width=p.width,this.rect.height=p.height},h.prototype.setCenter=function(d,p){this.rect.x=d-this.rect.width/2,this.rect.y=p-this.rect.height/2},h.prototype.setLocation=function(d,p){this.rect.x=d,this.rect.y=p},h.prototype.moveBy=function(d,p){this.rect.x+=d,this.rect.y+=p},h.prototype.getEdgeListToNode=function(d){var p=[],m,g=this;return g.edges.forEach(function(y){if(y.target==d){if(y.source!=g)throw"Incorrect edge source!";p.push(y)}}),p},h.prototype.getEdgesBetween=function(d){var p=[],m,g=this;return g.edges.forEach(function(y){if(!(y.source==g||y.target==g))throw"Incorrect edge source and/or target";(y.target==d||y.source==d)&&p.push(y)}),p},h.prototype.getNeighborsList=function(){var d=new Set,p=this;return p.edges.forEach(function(m){if(m.source==p)d.add(m.target);else{if(m.target!=p)throw"Incorrect incidency!";d.add(m.source)}}),d},h.prototype.withChildren=function(){var d=new Set,p,m;if(d.add(this),this.child!=null)for(var g=this.child.getNodes(),y=0;y<g.length;y++)p=g[y],m=p.withChildren(),m.forEach(function(v){d.add(v)});return d},h.prototype.getNoOfChildren=function(){var d=0,p;if(this.child==null)d=1;else for(var m=this.child.getNodes(),g=0;g<m.length;g++)p=m[g],d+=p.getNoOfChildren();return d==0&&(d=1),d},h.prototype.getEstimatedSize=function(){if(this.estimatedSize==i.MIN_VALUE)throw"assert failed";return this.estimatedSize},h.prototype.calcEstimatedSize=function(){return this.child==null?this.estimatedSize=(this.rect.width+this.rect.height)/2:(this.estimatedSize=this.child.calcEstimatedSize(),this.rect.width=this.estimatedSize,this.rect.height=this.estimatedSize,this.estimatedSize)},h.prototype.scatter=function(){var d,p,m=-s.INITIAL_WORLD_BOUNDARY,g=s.INITIAL_WORLD_BOUNDARY;d=s.WORLD_CENTER_X+l.nextDouble()*(g-m)+m;var y=-s.INITIAL_WORLD_BOUNDARY,v=s.INITIAL_WORLD_BOUNDARY;p=s.WORLD_CENTER_Y+l.nextDouble()*(v-y)+y,this.rect.x=d,this.rect.y=p},h.prototype.updateBounds=function(){if(this.getChild()==null)throw"assert failed";if(this.getChild().getNodes().length!=0){var d=this.getChild();if(d.updateBounds(!0),this.rect.x=d.getLeft(),this.rect.y=d.getTop(),this.setWidth(d.getRight()-d.getLeft()),this.setHeight(d.getBottom()-d.getTop()),s.NODE_DIMENSIONS_INCLUDE_LABELS){var p=d.getRight()-d.getLeft(),m=d.getBottom()-d.getTop();this.labelWidth&&(this.labelPosHorizontal=="left"?(this.rect.x-=this.labelWidth,this.setWidth(p+this.labelWidth)):this.labelPosHorizontal=="center"&&this.labelWidth>p?(this.rect.x-=(this.labelWidth-p)/2,this.setWidth(this.labelWidth)):this.labelPosHorizontal=="right"&&this.setWidth(p+this.labelWidth)),this.labelHeight&&(this.labelPosVertical=="top"?(this.rect.y-=this.labelHeight,this.setHeight(m+this.labelHeight)):this.labelPosVertical=="center"&&this.labelHeight>m?(this.rect.y-=(this.labelHeight-m)/2,this.setHeight(this.labelHeight)):this.labelPosVertical=="bottom"&&this.setHeight(m+this.labelHeight))}}},h.prototype.getInclusionTreeDepth=function(){if(this.inclusionTreeDepth==i.MAX_VALUE)throw"assert failed";return this.inclusionTreeDepth},h.prototype.transform=function(d){var p=this.rect.x;p>s.WORLD_BOUNDARY?p=s.WORLD_BOUNDARY:p<-s.WORLD_BOUNDARY&&(p=-s.WORLD_BOUNDARY);var m=this.rect.y;m>s.WORLD_BOUNDARY?m=s.WORLD_BOUNDARY:m<-s.WORLD_BOUNDARY&&(m=-s.WORLD_BOUNDARY);var g=new u(p,m),y=d.inverseTransformPoint(g);this.setLocation(y.x,y.y)},h.prototype.getLeft=function(){return this.rect.x},h.prototype.getRight=function(){return this.rect.x+this.rect.width},h.prototype.getTop=function(){return this.rect.y},h.prototype.getBottom=function(){return this.rect.y+this.rect.height},h.prototype.getParent=function(){return this.owner==null?null:this.owner.getParent()},t.exports=h},function(t,e,r){"use strict";var n=r(0);function i(){}o(i,"FDLayoutConstants");for(var a in n)i[a]=n[a];i.MAX_ITERATIONS=2500,i.DEFAULT_EDGE_LENGTH=50,i.DEFAULT_SPRING_STRENGTH=.45,i.DEFAULT_REPULSION_STRENGTH=4500,i.DEFAULT_GRAVITY_STRENGTH=.4,i.DEFAULT_COMPOUND_GRAVITY_STRENGTH=1,i.DEFAULT_GRAVITY_RANGE_FACTOR=3.8,i.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=1.5,i.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION=!0,i.DEFAULT_USE_SMART_REPULSION_RANGE_CALCULATION=!0,i.DEFAULT_COOLING_FACTOR_INCREMENTAL=.3,i.COOLING_ADAPTATION_FACTOR=.33,i.ADAPTATION_LOWER_NODE_LIMIT=1e3,i.ADAPTATION_UPPER_NODE_LIMIT=5e3,i.MAX_NODE_DISPLACEMENT_INCREMENTAL=100,i.MAX_NODE_DISPLACEMENT=i.MAX_NODE_DISPLACEMENT_INCREMENTAL*3,i.MIN_REPULSION_DIST=i.DEFAULT_EDGE_LENGTH/10,i.CONVERGENCE_CHECK_PERIOD=100,i.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=.1,i.MIN_EDGE_LENGTH=1,i.GRID_CALCULATION_CHECK_PERIOD=10,t.exports=i},function(t,e,r){"use strict";function n(i,a){i==null&&a==null?(this.x=0,this.y=0):(this.x=i,this.y=a)}o(n,"PointD"),n.prototype.getX=function(){return this.x},n.prototype.getY=function(){return this.y},n.prototype.setX=function(i){this.x=i},n.prototype.setY=function(i){this.y=i},n.prototype.getDifference=function(i){return new DimensionD(this.x-i.x,this.y-i.y)},n.prototype.getCopy=function(){return new n(this.x,this.y)},n.prototype.translate=function(i){return this.x+=i.width,this.y+=i.height,this},t.exports=n},function(t,e,r){"use strict";var n=r(2),i=r(10),a=r(0),s=r(7),l=r(3),u=r(1),h=r(13),f=r(12),d=r(11);function p(g,y,v){n.call(this,v),this.estimatedSize=i.MIN_VALUE,this.margin=a.DEFAULT_GRAPH_MARGIN,this.edges=[],this.nodes=[],this.isConnected=!1,this.parent=g,y!=null&&y instanceof s?this.graphManager=y:y!=null&&y instanceof Layout&&(this.graphManager=y.graphManager)}o(p,"LGraph"),p.prototype=Object.create(n.prototype);for(var m in n)p[m]=n[m];p.prototype.getNodes=function(){return this.nodes},p.prototype.getEdges=function(){return this.edges},p.prototype.getGraphManager=function(){return this.graphManager},p.prototype.getParent=function(){return this.parent},p.prototype.getLeft=function(){return this.left},p.prototype.getRight=function(){return this.right},p.prototype.getTop=function(){return this.top},p.prototype.getBottom=function(){return this.bottom},p.prototype.isConnected=function(){return this.isConnected},p.prototype.add=function(g,y,v){if(y==null&&v==null){var x=g;if(this.graphManager==null)throw"Graph has no graph mgr!";if(this.getNodes().indexOf(x)>-1)throw"Node already in graph!";return x.owner=this,this.getNodes().push(x),x}else{var b=g;if(!(this.getNodes().indexOf(y)>-1&&this.getNodes().indexOf(v)>-1))throw"Source or target not in graph!";if(!(y.owner==v.owner&&y.owner==this))throw"Both owners must be this graph!";return y.owner!=v.owner?null:(b.source=y,b.target=v,b.isInterGraph=!1,this.getEdges().push(b),y.edges.push(b),v!=y&&v.edges.push(b),b)}},p.prototype.remove=function(g){var y=g;if(g instanceof l){if(y==null)throw"Node is null!";if(!(y.owner!=null&&y.owner==this))throw"Owner graph is invalid!";if(this.graphManager==null)throw"Owner graph manager is invalid!";for(var v=y.edges.slice(),x,b=v.length,w=0;w<b;w++)x=v[w],x.isInterGraph?this.graphManager.remove(x):x.source.owner.remove(x);var C=this.nodes.indexOf(y);if(C==-1)throw"Node not in owner node list!";this.nodes.splice(C,1)}else if(g instanceof u){var x=g;if(x==null)throw"Edge is null!";if(!(x.source!=null&&x.target!=null))throw"Source and/or target is null!";if(!(x.source.owner!=null&&x.target.owner!=null&&x.source.owner==this&&x.target.owner==this))throw"Source and/or target owner is invalid!";var T=x.source.edges.indexOf(x),E=x.target.edges.indexOf(x);if(!(T>-1&&E>-1))throw"Source and/or target doesn't know this edge!";x.source.edges.splice(T,1),x.target!=x.source&&x.target.edges.splice(E,1);var C=x.source.owner.getEdges().indexOf(x);if(C==-1)throw"Not in owner's edge list!";x.source.owner.getEdges().splice(C,1)}},p.prototype.updateLeftTop=function(){for(var g=i.MAX_VALUE,y=i.MAX_VALUE,v,x,b,w=this.getNodes(),C=w.length,T=0;T<C;T++){var E=w[T];v=E.getTop(),x=E.getLeft(),g>v&&(g=v),y>x&&(y=x)}return g==i.MAX_VALUE?null:(w[0].getParent().paddingLeft!=null?b=w[0].getParent().paddingLeft:b=this.margin,this.left=y-b,this.top=g-b,new f(this.left,this.top))},p.prototype.updateBounds=function(g){for(var y=i.MAX_VALUE,v=-i.MAX_VALUE,x=i.MAX_VALUE,b=-i.MAX_VALUE,w,C,T,E,A,S=this.nodes,_=S.length,I=0;I<_;I++){var D=S[I];g&&D.child!=null&&D.updateBounds(),w=D.getLeft(),C=D.getRight(),T=D.getTop(),E=D.getBottom(),y>w&&(y=w),v<C&&(v=C),x>T&&(x=T),b<E&&(b=E)}var k=new h(y,x,v-y,b-x);y==i.MAX_VALUE&&(this.left=this.parent.getLeft(),this.right=this.parent.getRight(),this.top=this.parent.getTop(),this.bottom=this.parent.getBottom()),S[0].getParent().paddingLeft!=null?A=S[0].getParent().paddingLeft:A=this.margin,this.left=k.x-A,this.right=k.x+k.width+A,this.top=k.y-A,this.bottom=k.y+k.height+A},p.calculateBounds=function(g){for(var y=i.MAX_VALUE,v=-i.MAX_VALUE,x=i.MAX_VALUE,b=-i.MAX_VALUE,w,C,T,E,A=g.length,S=0;S<A;S++){var _=g[S];w=_.getLeft(),C=_.getRight(),T=_.getTop(),E=_.getBottom(),y>w&&(y=w),v<C&&(v=C),x>T&&(x=T),b<E&&(b=E)}var I=new h(y,x,v-y,b-x);return I},p.prototype.getInclusionTreeDepth=function(){return this==this.graphManager.getRoot()?1:this.parent.getInclusionTreeDepth()},p.prototype.getEstimatedSize=function(){if(this.estimatedSize==i.MIN_VALUE)throw"assert failed";return this.estimatedSize},p.prototype.calcEstimatedSize=function(){for(var g=0,y=this.nodes,v=y.length,x=0;x<v;x++){var b=y[x];g+=b.calcEstimatedSize()}return g==0?this.estimatedSize=a.EMPTY_COMPOUND_NODE_SIZE:this.estimatedSize=g/Math.sqrt(this.nodes.length),this.estimatedSize},p.prototype.updateConnected=function(){var g=this;if(this.nodes.length==0){this.isConnected=!0;return}var y=new d,v=new Set,x=this.nodes[0],b,w,C=x.withChildren();for(C.forEach(function(I){y.push(I),v.add(I)});y.length!==0;){x=y.shift(),b=x.getEdges();for(var T=b.length,E=0;E<T;E++){var A=b[E];if(w=A.getOtherEndInGraph(x,this),w!=null&&!v.has(w)){var S=w.withChildren();S.forEach(function(I){y.push(I),v.add(I)})}}}if(this.isConnected=!1,v.size>=this.nodes.length){var _=0;v.forEach(function(I){I.owner==g&&_++}),_==this.nodes.length&&(this.isConnected=!0)}},t.exports=p},function(t,e,r){"use strict";var n,i=r(1);function a(s){n=r(6),this.layout=s,this.graphs=[],this.edges=[]}o(a,"LGraphManager"),a.prototype.addRoot=function(){var s=this.layout.newGraph(),l=this.layout.newNode(null),u=this.add(s,l);return this.setRootGraph(u),this.rootGraph},a.prototype.add=function(s,l,u,h,f){if(u==null&&h==null&&f==null){if(s==null)throw"Graph is null!";if(l==null)throw"Parent node is null!";if(this.graphs.indexOf(s)>-1)throw"Graph already in this graph mgr!";if(this.graphs.push(s),s.parent!=null)throw"Already has a parent!";if(l.child!=null)throw"Already has a child!";return s.parent=l,l.child=s,s}else{f=u,h=l,u=s;var d=h.getOwner(),p=f.getOwner();if(!(d!=null&&d.getGraphManager()==this))throw"Source not in this graph mgr!";if(!(p!=null&&p.getGraphManager()==this))throw"Target not in this graph mgr!";if(d==p)return u.isInterGraph=!1,d.add(u,h,f);if(u.isInterGraph=!0,u.source=h,u.target=f,this.edges.indexOf(u)>-1)throw"Edge already in inter-graph edge list!";if(this.edges.push(u),!(u.source!=null&&u.target!=null))throw"Edge source and/or target is null!";if(!(u.source.edges.indexOf(u)==-1&&u.target.edges.indexOf(u)==-1))throw"Edge already in source and/or target incidency list!";return u.source.edges.push(u),u.target.edges.push(u),u}},a.prototype.remove=function(s){if(s instanceof n){var l=s;if(l.getGraphManager()!=this)throw"Graph not in this graph mgr";if(!(l==this.rootGraph||l.parent!=null&&l.parent.graphManager==this))throw"Invalid parent node!";var u=[];u=u.concat(l.getEdges());for(var h,f=u.length,d=0;d<f;d++)h=u[d],l.remove(h);var p=[];p=p.concat(l.getNodes());var m;f=p.length;for(var d=0;d<f;d++)m=p[d],l.remove(m);l==this.rootGraph&&this.setRootGraph(null);var g=this.graphs.indexOf(l);this.graphs.splice(g,1),l.parent=null}else if(s instanceof i){if(h=s,h==null)throw"Edge is null!";if(!h.isInterGraph)throw"Not an inter-graph edge!";if(!(h.source!=null&&h.target!=null))throw"Source and/or target is null!";if(!(h.source.edges.indexOf(h)!=-1&&h.target.edges.indexOf(h)!=-1))throw"Source and/or target doesn't know this edge!";var g=h.source.edges.indexOf(h);if(h.source.edges.splice(g,1),g=h.target.edges.indexOf(h),h.target.edges.splice(g,1),!(h.source.owner!=null&&h.source.owner.getGraphManager()!=null))throw"Edge owner graph or owner graph manager is null!";if(h.source.owner.getGraphManager().edges.indexOf(h)==-1)throw"Not in owner graph manager's edge list!";var g=h.source.owner.getGraphManager().edges.indexOf(h);h.source.owner.getGraphManager().edges.splice(g,1)}},a.prototype.updateBounds=function(){this.rootGraph.updateBounds(!0)},a.prototype.getGraphs=function(){return this.graphs},a.prototype.getAllNodes=function(){if(this.allNodes==null){for(var s=[],l=this.getGraphs(),u=l.length,h=0;h<u;h++)s=s.concat(l[h].getNodes());this.allNodes=s}return this.allNodes},a.prototype.resetAllNodes=function(){this.allNodes=null},a.prototype.resetAllEdges=function(){this.allEdges=null},a.prototype.resetAllNodesToApplyGravitation=function(){this.allNodesToApplyGravitation=null},a.prototype.getAllEdges=function(){if(this.allEdges==null){for(var s=[],l=this.getGraphs(),u=l.length,h=0;h<l.length;h++)s=s.concat(l[h].getEdges());s=s.concat(this.edges),this.allEdges=s}return this.allEdges},a.prototype.getAllNodesToApplyGravitation=function(){return this.allNodesToApplyGravitation},a.prototype.setAllNodesToApplyGravitation=function(s){if(this.allNodesToApplyGravitation!=null)throw"assert failed";this.allNodesToApplyGravitation=s},a.prototype.getRoot=function(){return this.rootGraph},a.prototype.setRootGraph=function(s){if(s.getGraphManager()!=this)throw"Root not in this graph mgr!";this.rootGraph=s,s.parent==null&&(s.parent=this.layout.newNode("Root node"))},a.prototype.getLayout=function(){return this.layout},a.prototype.isOneAncestorOfOther=function(s,l){if(!(s!=null&&l!=null))throw"assert failed";if(s==l)return!0;var u=s.getOwner(),h;do{if(h=u.getParent(),h==null)break;if(h==l)return!0;if(u=h.getOwner(),u==null)break}while(!0);u=l.getOwner();do{if(h=u.getParent(),h==null)break;if(h==s)return!0;if(u=h.getOwner(),u==null)break}while(!0);return!1},a.prototype.calcLowestCommonAncestors=function(){for(var s,l,u,h,f,d=this.getAllEdges(),p=d.length,m=0;m<p;m++){if(s=d[m],l=s.source,u=s.target,s.lca=null,s.sourceInLca=l,s.targetInLca=u,l==u){s.lca=l.getOwner();continue}for(h=l.getOwner();s.lca==null;){for(s.targetInLca=u,f=u.getOwner();s.lca==null;){if(f==h){s.lca=f;break}if(f==this.rootGraph)break;if(s.lca!=null)throw"assert failed";s.targetInLca=f.getParent(),f=s.targetInLca.getOwner()}if(h==this.rootGraph)break;s.lca==null&&(s.sourceInLca=h.getParent(),h=s.sourceInLca.getOwner())}if(s.lca==null)throw"assert failed"}},a.prototype.calcLowestCommonAncestor=function(s,l){if(s==l)return s.getOwner();var u=s.getOwner();do{if(u==null)break;var h=l.getOwner();do{if(h==null)break;if(h==u)return h;h=h.getParent().getOwner()}while(!0);u=u.getParent().getOwner()}while(!0);return u},a.prototype.calcInclusionTreeDepths=function(s,l){s==null&&l==null&&(s=this.rootGraph,l=1);for(var u,h=s.getNodes(),f=h.length,d=0;d<f;d++)u=h[d],u.inclusionTreeDepth=l,u.child!=null&&this.calcInclusionTreeDepths(u.child,l+1)},a.prototype.includesInvalidEdge=function(){for(var s,l=[],u=this.edges.length,h=0;h<u;h++)s=this.edges[h],this.isOneAncestorOfOther(s.source,s.target)&&l.push(s);for(var h=0;h<l.length;h++)this.remove(l[h]);return!1},t.exports=a},function(t,e,r){"use strict";var n=r(12);function i(){}o(i,"IGeometry"),i.calcSeparationAmount=function(a,s,l,u){if(!a.intersects(s))throw"assert failed";var h=new Array(2);this.decideDirectionsForOverlappingNodes(a,s,h),l[0]=Math.min(a.getRight(),s.getRight())-Math.max(a.x,s.x),l[1]=Math.min(a.getBottom(),s.getBottom())-Math.max(a.y,s.y),a.getX()<=s.getX()&&a.getRight()>=s.getRight()?l[0]+=Math.min(s.getX()-a.getX(),a.getRight()-s.getRight()):s.getX()<=a.getX()&&s.getRight()>=a.getRight()&&(l[0]+=Math.min(a.getX()-s.getX(),s.getRight()-a.getRight())),a.getY()<=s.getY()&&a.getBottom()>=s.getBottom()?l[1]+=Math.min(s.getY()-a.getY(),a.getBottom()-s.getBottom()):s.getY()<=a.getY()&&s.getBottom()>=a.getBottom()&&(l[1]+=Math.min(a.getY()-s.getY(),s.getBottom()-a.getBottom()));var f=Math.abs((s.getCenterY()-a.getCenterY())/(s.getCenterX()-a.getCenterX()));s.getCenterY()===a.getCenterY()&&s.getCenterX()===a.getCenterX()&&(f=1);var d=f*l[0],p=l[1]/f;l[0]<p?p=l[0]:d=l[1],l[0]=-1*h[0]*(p/2+u),l[1]=-1*h[1]*(d/2+u)},i.decideDirectionsForOverlappingNodes=function(a,s,l){a.getCenterX()<s.getCenterX()?l[0]=-1:l[0]=1,a.getCenterY()<s.getCenterY()?l[1]=-1:l[1]=1},i.getIntersection2=function(a,s,l){var u=a.getCenterX(),h=a.getCenterY(),f=s.getCenterX(),d=s.getCenterY();if(a.intersects(s))return l[0]=u,l[1]=h,l[2]=f,l[3]=d,!0;var p=a.getX(),m=a.getY(),g=a.getRight(),y=a.getX(),v=a.getBottom(),x=a.getRight(),b=a.getWidthHalf(),w=a.getHeightHalf(),C=s.getX(),T=s.getY(),E=s.getRight(),A=s.getX(),S=s.getBottom(),_=s.getRight(),I=s.getWidthHalf(),D=s.getHeightHalf(),k=!1,L=!1;if(u===f){if(h>d)return l[0]=u,l[1]=m,l[2]=f,l[3]=S,!1;if(h<d)return l[0]=u,l[1]=v,l[2]=f,l[3]=T,!1}else if(h===d){if(u>f)return l[0]=p,l[1]=h,l[2]=E,l[3]=d,!1;if(u<f)return l[0]=g,l[1]=h,l[2]=C,l[3]=d,!1}else{var R=a.height/a.width,O=s.height/s.width,M=(d-h)/(f-u),B=void 0,F=void 0,P=void 0,z=void 0,$=void 0,H=void 0;if(-R===M?u>f?(l[0]=y,l[1]=v,k=!0):(l[0]=g,l[1]=m,k=!0):R===M&&(u>f?(l[0]=p,l[1]=m,k=!0):(l[0]=x,l[1]=v,k=!0)),-O===M?f>u?(l[2]=A,l[3]=S,L=!0):(l[2]=E,l[3]=T,L=!0):O===M&&(f>u?(l[2]=C,l[3]=T,L=!0):(l[2]=_,l[3]=S,L=!0)),k&&L)return!1;if(u>f?h>d?(B=this.getCardinalDirection(R,M,4),F=this.getCardinalDirection(O,M,2)):(B=this.getCardinalDirection(-R,M,3),F=this.getCardinalDirection(-O,M,1)):h>d?(B=this.getCardinalDirection(-R,M,1),F=this.getCardinalDirection(-O,M,3)):(B=this.getCardinalDirection(R,M,2),F=this.getCardinalDirection(O,M,4)),!k)switch(B){case 1:z=m,P=u+-w/M,l[0]=P,l[1]=z;break;case 2:P=x,z=h+b*M,l[0]=P,l[1]=z;break;case 3:z=v,P=u+w/M,l[0]=P,l[1]=z;break;case 4:P=y,z=h+-b*M,l[0]=P,l[1]=z;break}if(!L)switch(F){case 1:H=T,$=f+-D/M,l[2]=$,l[3]=H;break;case 2:$=_,H=d+I*M,l[2]=$,l[3]=H;break;case 3:H=S,$=f+D/M,l[2]=$,l[3]=H;break;case 4:$=A,H=d+-I*M,l[2]=$,l[3]=H;break}}return!1},i.getCardinalDirection=function(a,s,l){return a>s?l:1+l%4},i.getIntersection=function(a,s,l,u){if(u==null)return this.getIntersection2(a,s,l);var h=a.x,f=a.y,d=s.x,p=s.y,m=l.x,g=l.y,y=u.x,v=u.y,x=void 0,b=void 0,w=void 0,C=void 0,T=void 0,E=void 0,A=void 0,S=void 0,_=void 0;return w=p-f,T=h-d,A=d*f-h*p,C=v-g,E=m-y,S=y*g-m*v,_=w*E-C*T,_===0?null:(x=(T*S-E*A)/_,b=(C*A-w*S)/_,new n(x,b))},i.angleOfVector=function(a,s,l,u){var h=void 0;return a!==l?(h=Math.atan((u-s)/(l-a)),l<a?h+=Math.PI:u<s&&(h+=this.TWO_PI)):u<s?h=this.ONE_AND_HALF_PI:h=this.HALF_PI,h},i.doIntersect=function(a,s,l,u){var h=a.x,f=a.y,d=s.x,p=s.y,m=l.x,g=l.y,y=u.x,v=u.y,x=(d-h)*(v-g)-(y-m)*(p-f);if(x===0)return!1;var b=((v-g)*(y-h)+(m-y)*(v-f))/x,w=((f-p)*(y-h)+(d-h)*(v-f))/x;return 0<b&&b<1&&0<w&&w<1},i.findCircleLineIntersections=function(a,s,l,u,h,f,d){var p=(l-a)*(l-a)+(u-s)*(u-s),m=2*((a-h)*(l-a)+(s-f)*(u-s)),g=(a-h)*(a-h)+(s-f)*(s-f)-d*d,y=m*m-4*p*g;if(y>=0){var v=(-m+Math.sqrt(m*m-4*p*g))/(2*p),x=(-m-Math.sqrt(m*m-4*p*g))/(2*p),b=null;return v>=0&&v<=1?[v]:x>=0&&x<=1?[x]:b}else return null},i.HALF_PI=.5*Math.PI,i.ONE_AND_HALF_PI=1.5*Math.PI,i.TWO_PI=2*Math.PI,i.THREE_PI=3*Math.PI,t.exports=i},function(t,e,r){"use strict";function n(){}o(n,"IMath"),n.sign=function(i){return i>0?1:i<0?-1:0},n.floor=function(i){return i<0?Math.ceil(i):Math.floor(i)},n.ceil=function(i){return i<0?Math.floor(i):Math.ceil(i)},t.exports=n},function(t,e,r){"use strict";function n(){}o(n,"Integer"),n.MAX_VALUE=2147483647,n.MIN_VALUE=-2147483648,t.exports=n},function(t,e,r){"use strict";var n=function(){function h(f,d){for(var p=0;p<d.length;p++){var m=d[p];m.enumerable=m.enumerable||!1,m.configurable=!0,"value"in m&&(m.writable=!0),Object.defineProperty(f,m.key,m)}}return o(h,"defineProperties"),function(f,d,p){return d&&h(f.prototype,d),p&&h(f,p),f}}();function i(h,f){if(!(h instanceof f))throw new TypeError("Cannot call a class as a function")}o(i,"_classCallCheck");var a=o(function(f){return{value:f,next:null,prev:null}},"nodeFrom"),s=o(function(f,d,p,m){return f!==null?f.next=d:m.head=d,p!==null?p.prev=d:m.tail=d,d.prev=f,d.next=p,m.length++,d},"add"),l=o(function(f,d){var p=f.prev,m=f.next;return p!==null?p.next=m:d.head=m,m!==null?m.prev=p:d.tail=p,f.prev=f.next=null,d.length--,f},"_remove"),u=function(){function h(f){var d=this;i(this,h),this.length=0,this.head=null,this.tail=null,f?.forEach(function(p){return d.push(p)})}return o(h,"LinkedList"),n(h,[{key:"size",value:o(function(){return this.length},"size")},{key:"insertBefore",value:o(function(d,p){return s(p.prev,a(d),p,this)},"insertBefore")},{key:"insertAfter",value:o(function(d,p){return s(p,a(d),p.next,this)},"insertAfter")},{key:"insertNodeBefore",value:o(function(d,p){return s(p.prev,d,p,this)},"insertNodeBefore")},{key:"insertNodeAfter",value:o(function(d,p){return s(p,d,p.next,this)},"insertNodeAfter")},{key:"push",value:o(function(d){return s(this.tail,a(d),null,this)},"push")},{key:"unshift",value:o(function(d){return s(null,a(d),this.head,this)},"unshift")},{key:"remove",value:o(function(d){return l(d,this)},"remove")},{key:"pop",value:o(function(){return l(this.tail,this).value},"pop")},{key:"popNode",value:o(function(){return l(this.tail,this)},"popNode")},{key:"shift",value:o(function(){return l(this.head,this).value},"shift")},{key:"shiftNode",value:o(function(){return l(this.head,this)},"shiftNode")},{key:"get_object_at",value:o(function(d){if(d<=this.length()){for(var p=1,m=this.head;p<d;)m=m.next,p++;return m.value}},"get_object_at")},{key:"set_object_at",value:o(function(d,p){if(d<=this.length()){for(var m=1,g=this.head;m<d;)g=g.next,m++;g.value=p}},"set_object_at")}]),h}();t.exports=u},function(t,e,r){"use strict";function n(i,a,s){this.x=null,this.y=null,i==null&&a==null&&s==null?(this.x=0,this.y=0):typeof i=="number"&&typeof a=="number"&&s==null?(this.x=i,this.y=a):i.constructor.name=="Point"&&a==null&&s==null&&(s=i,this.x=s.x,this.y=s.y)}o(n,"Point"),n.prototype.getX=function(){return this.x},n.prototype.getY=function(){return this.y},n.prototype.getLocation=function(){return new n(this.x,this.y)},n.prototype.setLocation=function(i,a,s){i.constructor.name=="Point"&&a==null&&s==null?(s=i,this.setLocation(s.x,s.y)):typeof i=="number"&&typeof a=="number"&&s==null&&(parseInt(i)==i&&parseInt(a)==a?this.move(i,a):(this.x=Math.floor(i+.5),this.y=Math.floor(a+.5)))},n.prototype.move=function(i,a){this.x=i,this.y=a},n.prototype.translate=function(i,a){this.x+=i,this.y+=a},n.prototype.equals=function(i){if(i.constructor.name=="Point"){var a=i;return this.x==a.x&&this.y==a.y}return this==i},n.prototype.toString=function(){return new n().constructor.name+"[x="+this.x+",y="+this.y+"]"},t.exports=n},function(t,e,r){"use strict";function n(i,a,s,l){this.x=0,this.y=0,this.width=0,this.height=0,i!=null&&a!=null&&s!=null&&l!=null&&(this.x=i,this.y=a,this.width=s,this.height=l)}o(n,"RectangleD"),n.prototype.getX=function(){return this.x},n.prototype.setX=function(i){this.x=i},n.prototype.getY=function(){return this.y},n.prototype.setY=function(i){this.y=i},n.prototype.getWidth=function(){return this.width},n.prototype.setWidth=function(i){this.width=i},n.prototype.getHeight=function(){return this.height},n.prototype.setHeight=function(i){this.height=i},n.prototype.getRight=function(){return this.x+this.width},n.prototype.getBottom=function(){return this.y+this.height},n.prototype.intersects=function(i){return!(this.getRight()<i.x||this.getBottom()<i.y||i.getRight()<this.x||i.getBottom()<this.y)},n.prototype.getCenterX=function(){return this.x+this.width/2},n.prototype.getMinX=function(){return this.getX()},n.prototype.getMaxX=function(){return this.getX()+this.width},n.prototype.getCenterY=function(){return this.y+this.height/2},n.prototype.getMinY=function(){return this.getY()},n.prototype.getMaxY=function(){return this.getY()+this.height},n.prototype.getWidthHalf=function(){return this.width/2},n.prototype.getHeightHalf=function(){return this.height/2},t.exports=n},function(t,e,r){"use strict";var n=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(a){return typeof a}:function(a){return a&&typeof Symbol=="function"&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a};function i(){}o(i,"UniqueIDGeneretor"),i.lastID=0,i.createID=function(a){return i.isPrimitive(a)?a:(a.uniqueID!=null||(a.uniqueID=i.getString(),i.lastID++),a.uniqueID)},i.getString=function(a){return a==null&&(a=i.lastID),"Object#"+a},i.isPrimitive=function(a){var s=typeof a>"u"?"undefined":n(a);return a==null||s!="object"&&s!="function"},t.exports=i},function(t,e,r){"use strict";function n(m){if(Array.isArray(m)){for(var g=0,y=Array(m.length);g<m.length;g++)y[g]=m[g];return y}else return Array.from(m)}o(n,"_toConsumableArray");var i=r(0),a=r(7),s=r(3),l=r(1),u=r(6),h=r(5),f=r(17),d=r(29);function p(m){d.call(this),this.layoutQuality=i.QUALITY,this.createBendsAsNeeded=i.DEFAULT_CREATE_BENDS_AS_NEEDED,this.incremental=i.DEFAULT_INCREMENTAL,this.animationOnLayout=i.DEFAULT_ANIMATION_ON_LAYOUT,this.animationDuringLayout=i.DEFAULT_ANIMATION_DURING_LAYOUT,this.animationPeriod=i.DEFAULT_ANIMATION_PERIOD,this.uniformLeafNodeSizes=i.DEFAULT_UNIFORM_LEAF_NODE_SIZES,this.edgeToDummyNodes=new Map,this.graphManager=new a(this),this.isLayoutFinished=!1,this.isSubLayout=!1,this.isRemoteUse=!1,m!=null&&(this.isRemoteUse=m)}o(p,"Layout"),p.RANDOM_SEED=1,p.prototype=Object.create(d.prototype),p.prototype.getGraphManager=function(){return this.graphManager},p.prototype.getAllNodes=function(){return this.graphManager.getAllNodes()},p.prototype.getAllEdges=function(){return this.graphManager.getAllEdges()},p.prototype.getAllNodesToApplyGravitation=function(){return this.graphManager.getAllNodesToApplyGravitation()},p.prototype.newGraphManager=function(){var m=new a(this);return this.graphManager=m,m},p.prototype.newGraph=function(m){return new u(null,this.graphManager,m)},p.prototype.newNode=function(m){return new s(this.graphManager,m)},p.prototype.newEdge=function(m){return new l(null,null,m)},p.prototype.checkLayoutSuccess=function(){return this.graphManager.getRoot()==null||this.graphManager.getRoot().getNodes().length==0||this.graphManager.includesInvalidEdge()},p.prototype.runLayout=function(){this.isLayoutFinished=!1,this.tilingPreLayout&&this.tilingPreLayout(),this.initParameters();var m;return this.checkLayoutSuccess()?m=!1:m=this.layout(),i.ANIMATE==="during"?!1:(m&&(this.isSubLayout||this.doPostLayout()),this.tilingPostLayout&&this.tilingPostLayout(),this.isLayoutFinished=!0,m)},p.prototype.doPostLayout=function(){this.incremental||this.transform(),this.update()},p.prototype.update2=function(){if(this.createBendsAsNeeded&&(this.createBendpointsFromDummyNodes(),this.graphManager.resetAllEdges()),!this.isRemoteUse){for(var m,g=this.graphManager.getAllEdges(),y=0;y<g.length;y++)m=g[y];for(var v,x=this.graphManager.getRoot().getNodes(),y=0;y<x.length;y++)v=x[y];this.update(this.graphManager.getRoot())}},p.prototype.update=function(m){if(m==null)this.update2();else if(m instanceof s){var g=m;if(g.getChild()!=null)for(var y=g.getChild().getNodes(),v=0;v<y.length;v++)update(y[v]);if(g.vGraphObject!=null){var x=g.vGraphObject;x.update(g)}}else if(m instanceof l){var b=m;if(b.vGraphObject!=null){var w=b.vGraphObject;w.update(b)}}else if(m instanceof u){var C=m;if(C.vGraphObject!=null){var T=C.vGraphObject;T.update(C)}}},p.prototype.initParameters=function(){this.isSubLayout||(this.layoutQuality=i.QUALITY,this.animationDuringLayout=i.DEFAULT_ANIMATION_DURING_LAYOUT,this.animationPeriod=i.DEFAULT_ANIMATION_PERIOD,this.animationOnLayout=i.DEFAULT_ANIMATION_ON_LAYOUT,this.incremental=i.DEFAULT_INCREMENTAL,this.createBendsAsNeeded=i.DEFAULT_CREATE_BENDS_AS_NEEDED,this.uniformLeafNodeSizes=i.DEFAULT_UNIFORM_LEAF_NODE_SIZES),this.animationDuringLayout&&(this.animationOnLayout=!1)},p.prototype.transform=function(m){if(m==null)this.transform(new h(0,0));else{var g=new f,y=this.graphManager.getRoot().updateLeftTop();if(y!=null){g.setWorldOrgX(m.x),g.setWorldOrgY(m.y),g.setDeviceOrgX(y.x),g.setDeviceOrgY(y.y);for(var v=this.getAllNodes(),x,b=0;b<v.length;b++)x=v[b],x.transform(g)}}},p.prototype.positionNodesRandomly=function(m){if(m==null)this.positionNodesRandomly(this.getGraphManager().getRoot()),this.getGraphManager().getRoot().updateBounds(!0);else for(var g,y,v=m.getNodes(),x=0;x<v.length;x++)g=v[x],y=g.getChild(),y==null||y.getNodes().length==0?g.scatter():(this.positionNodesRandomly(y),g.updateBounds())},p.prototype.getFlatForest=function(){for(var m=[],g=!0,y=this.graphManager.getRoot().getNodes(),v=!0,x=0;x<y.length;x++)y[x].getChild()!=null&&(v=!1);if(!v)return m;var b=new Set,w=[],C=new Map,T=[];for(T=T.concat(y);T.length>0&&g;){for(w.push(T[0]);w.length>0&&g;){var E=w[0];w.splice(0,1),b.add(E);for(var A=E.getEdges(),x=0;x<A.length;x++){var S=A[x].getOtherEnd(E);if(C.get(E)!=S)if(!b.has(S))w.push(S),C.set(S,E);else{g=!1;break}}}if(!g)m=[];else{var _=[].concat(n(b));m.push(_);for(var x=0;x<_.length;x++){var I=_[x],D=T.indexOf(I);D>-1&&T.splice(D,1)}b=new Set,C=new Map}}return m},p.prototype.createDummyNodesForBendpoints=function(m){for(var g=[],y=m.source,v=this.graphManager.calcLowestCommonAncestor(m.source,m.target),x=0;x<m.bendpoints.length;x++){var b=this.newNode(null);b.setRect(new Point(0,0),new Dimension(1,1)),v.add(b);var w=this.newEdge(null);this.graphManager.add(w,y,b),g.add(b),y=b}var w=this.newEdge(null);return this.graphManager.add(w,y,m.target),this.edgeToDummyNodes.set(m,g),m.isInterGraph()?this.graphManager.remove(m):v.remove(m),g},p.prototype.createBendpointsFromDummyNodes=function(){var m=[];m=m.concat(this.graphManager.getAllEdges()),m=[].concat(n(this.edgeToDummyNodes.keys())).concat(m);for(var g=0;g<m.length;g++){var y=m[g];if(y.bendpoints.length>0){for(var v=this.edgeToDummyNodes.get(y),x=0;x<v.length;x++){var b=v[x],w=new h(b.getCenterX(),b.getCenterY()),C=y.bendpoints.get(x);C.x=w.x,C.y=w.y,b.getOwner().remove(b)}this.graphManager.add(y,y.source,y.target)}}},p.transform=function(m,g,y,v){if(y!=null&&v!=null){var x=g;if(m<=50){var b=g/y;x-=(g-b)/50*(50-m)}else{var w=g*v;x+=(w-g)/50*(m-50)}return x}else{var C,T;return m<=50?(C=9*g/500,T=g/10):(C=9*g/50,T=-8*g),C*m+T}},p.findCenterOfTree=function(m){var g=[];g=g.concat(m);var y=[],v=new Map,x=!1,b=null;(g.length==1||g.length==2)&&(x=!0,b=g[0]);for(var w=0;w<g.length;w++){var C=g[w],T=C.getNeighborsList().size;v.set(C,C.getNeighborsList().size),T==1&&y.push(C)}var E=[];for(E=E.concat(y);!x;){var A=[];A=A.concat(E),E=[];for(var w=0;w<g.length;w++){var C=g[w],S=g.indexOf(C);S>=0&&g.splice(S,1);var _=C.getNeighborsList();_.forEach(function(k){if(y.indexOf(k)<0){var L=v.get(k),R=L-1;R==1&&E.push(k),v.set(k,R)}})}y=y.concat(E),(g.length==1||g.length==2)&&(x=!0,b=g[0])}return b},p.prototype.setGraphManager=function(m){this.graphManager=m},t.exports=p},function(t,e,r){"use strict";function n(){}o(n,"RandomSeed"),n.seed=1,n.x=0,n.nextDouble=function(){return n.x=Math.sin(n.seed++)*1e4,n.x-Math.floor(n.x)},t.exports=n},function(t,e,r){"use strict";var n=r(5);function i(a,s){this.lworldOrgX=0,this.lworldOrgY=0,this.ldeviceOrgX=0,this.ldeviceOrgY=0,this.lworldExtX=1,this.lworldExtY=1,this.ldeviceExtX=1,this.ldeviceExtY=1}o(i,"Transform"),i.prototype.getWorldOrgX=function(){return this.lworldOrgX},i.prototype.setWorldOrgX=function(a){this.lworldOrgX=a},i.prototype.getWorldOrgY=function(){return this.lworldOrgY},i.prototype.setWorldOrgY=function(a){this.lworldOrgY=a},i.prototype.getWorldExtX=function(){return this.lworldExtX},i.prototype.setWorldExtX=function(a){this.lworldExtX=a},i.prototype.getWorldExtY=function(){return this.lworldExtY},i.prototype.setWorldExtY=function(a){this.lworldExtY=a},i.prototype.getDeviceOrgX=function(){return this.ldeviceOrgX},i.prototype.setDeviceOrgX=function(a){this.ldeviceOrgX=a},i.prototype.getDeviceOrgY=function(){return this.ldeviceOrgY},i.prototype.setDeviceOrgY=function(a){this.ldeviceOrgY=a},i.prototype.getDeviceExtX=function(){return this.ldeviceExtX},i.prototype.setDeviceExtX=function(a){this.ldeviceExtX=a},i.prototype.getDeviceExtY=function(){return this.ldeviceExtY},i.prototype.setDeviceExtY=function(a){this.ldeviceExtY=a},i.prototype.transformX=function(a){var s=0,l=this.lworldExtX;return l!=0&&(s=this.ldeviceOrgX+(a-this.lworldOrgX)*this.ldeviceExtX/l),s},i.prototype.transformY=function(a){var s=0,l=this.lworldExtY;return l!=0&&(s=this.ldeviceOrgY+(a-this.lworldOrgY)*this.ldeviceExtY/l),s},i.prototype.inverseTransformX=function(a){var s=0,l=this.ldeviceExtX;return l!=0&&(s=this.lworldOrgX+(a-this.ldeviceOrgX)*this.lworldExtX/l),s},i.prototype.inverseTransformY=function(a){var s=0,l=this.ldeviceExtY;return l!=0&&(s=this.lworldOrgY+(a-this.ldeviceOrgY)*this.lworldExtY/l),s},i.prototype.inverseTransformPoint=function(a){var s=new n(this.inverseTransformX(a.x),this.inverseTransformY(a.y));return s},t.exports=i},function(t,e,r){"use strict";function n(d){if(Array.isArray(d)){for(var p=0,m=Array(d.length);p<d.length;p++)m[p]=d[p];return m}else return Array.from(d)}o(n,"_toConsumableArray");var i=r(15),a=r(4),s=r(0),l=r(8),u=r(9);function h(){i.call(this),this.useSmartIdealEdgeLengthCalculation=a.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION,this.gravityConstant=a.DEFAULT_GRAVITY_STRENGTH,this.compoundGravityConstant=a.DEFAULT_COMPOUND_GRAVITY_STRENGTH,this.gravityRangeFactor=a.DEFAULT_GRAVITY_RANGE_FACTOR,this.compoundGravityRangeFactor=a.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR,this.displacementThresholdPerNode=3*a.DEFAULT_EDGE_LENGTH/100,this.coolingFactor=a.DEFAULT_COOLING_FACTOR_INCREMENTAL,this.initialCoolingFactor=a.DEFAULT_COOLING_FACTOR_INCREMENTAL,this.totalDisplacement=0,this.oldTotalDisplacement=0,this.maxIterations=a.MAX_ITERATIONS}o(h,"FDLayout"),h.prototype=Object.create(i.prototype);for(var f in i)h[f]=i[f];h.prototype.initParameters=function(){i.prototype.initParameters.call(this,arguments),this.totalIterations=0,this.notAnimatedIterations=0,this.useFRGridVariant=a.DEFAULT_USE_SMART_REPULSION_RANGE_CALCULATION,this.grid=[]},h.prototype.calcIdealEdgeLengths=function(){for(var d,p,m,g,y,v,x,b=this.getGraphManager().getAllEdges(),w=0;w<b.length;w++)d=b[w],p=d.idealLength,d.isInterGraph&&(g=d.getSource(),y=d.getTarget(),v=d.getSourceInLca().getEstimatedSize(),x=d.getTargetInLca().getEstimatedSize(),this.useSmartIdealEdgeLengthCalculation&&(d.idealLength+=v+x-2*s.SIMPLE_NODE_SIZE),m=d.getLca().getInclusionTreeDepth(),d.idealLength+=p*a.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR*(g.getInclusionTreeDepth()+y.getInclusionTreeDepth()-2*m))},h.prototype.initSpringEmbedder=function(){var d=this.getAllNodes().length;this.incremental?(d>a.ADAPTATION_LOWER_NODE_LIMIT&&(this.coolingFactor=Math.max(this.coolingFactor*a.COOLING_ADAPTATION_FACTOR,this.coolingFactor-(d-a.ADAPTATION_LOWER_NODE_LIMIT)/(a.ADAPTATION_UPPER_NODE_LIMIT-a.ADAPTATION_LOWER_NODE_LIMIT)*this.coolingFactor*(1-a.COOLING_ADAPTATION_FACTOR))),this.maxNodeDisplacement=a.MAX_NODE_DISPLACEMENT_INCREMENTAL):(d>a.ADAPTATION_LOWER_NODE_LIMIT?this.coolingFactor=Math.max(a.COOLING_ADAPTATION_FACTOR,1-(d-a.ADAPTATION_LOWER_NODE_LIMIT)/(a.ADAPTATION_UPPER_NODE_LIMIT-a.ADAPTATION_LOWER_NODE_LIMIT)*(1-a.COOLING_ADAPTATION_FACTOR)):this.coolingFactor=1,this.initialCoolingFactor=this.coolingFactor,this.maxNodeDisplacement=a.MAX_NODE_DISPLACEMENT),this.maxIterations=Math.max(this.getAllNodes().length*5,this.maxIterations),this.displacementThresholdPerNode=3*a.DEFAULT_EDGE_LENGTH/100,this.totalDisplacementThreshold=this.displacementThresholdPerNode*this.getAllNodes().length,this.repulsionRange=this.calcRepulsionRange()},h.prototype.calcSpringForces=function(){for(var d=this.getAllEdges(),p,m=0;m<d.length;m++)p=d[m],this.calcSpringForce(p,p.idealLength)},h.prototype.calcRepulsionForces=function(){var d=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0,p=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,m,g,y,v,x=this.getAllNodes(),b;if(this.useFRGridVariant)for(this.totalIterations%a.GRID_CALCULATION_CHECK_PERIOD==1&&d&&this.updateGrid(),b=new Set,m=0;m<x.length;m++)y=x[m],this.calculateRepulsionForceOfANode(y,b,d,p),b.add(y);else for(m=0;m<x.length;m++)for(y=x[m],g=m+1;g<x.length;g++)v=x[g],y.getOwner()==v.getOwner()&&this.calcRepulsionForce(y,v)},h.prototype.calcGravitationalForces=function(){for(var d,p=this.getAllNodesToApplyGravitation(),m=0;m<p.length;m++)d=p[m],this.calcGravitationalForce(d)},h.prototype.moveNodes=function(){for(var d=this.getAllNodes(),p,m=0;m<d.length;m++)p=d[m],p.move()},h.prototype.calcSpringForce=function(d,p){var m=d.getSource(),g=d.getTarget(),y,v,x,b;if(this.uniformLeafNodeSizes&&m.getChild()==null&&g.getChild()==null)d.updateLengthSimple();else if(d.updateLength(),d.isOverlapingSourceAndTarget)return;y=d.getLength(),y!=0&&(v=d.edgeElasticity*(y-p),x=v*(d.lengthX/y),b=v*(d.lengthY/y),m.springForceX+=x,m.springForceY+=b,g.springForceX-=x,g.springForceY-=b)},h.prototype.calcRepulsionForce=function(d,p){var m=d.getRect(),g=p.getRect(),y=new Array(2),v=new Array(4),x,b,w,C,T,E,A;if(m.intersects(g)){l.calcSeparationAmount(m,g,y,a.DEFAULT_EDGE_LENGTH/2),E=2*y[0],A=2*y[1];var S=d.noOfChildren*p.noOfChildren/(d.noOfChildren+p.noOfChildren);d.repulsionForceX-=S*E,d.repulsionForceY-=S*A,p.repulsionForceX+=S*E,p.repulsionForceY+=S*A}else this.uniformLeafNodeSizes&&d.getChild()==null&&p.getChild()==null?(x=g.getCenterX()-m.getCenterX(),b=g.getCenterY()-m.getCenterY()):(l.getIntersection(m,g,v),x=v[2]-v[0],b=v[3]-v[1]),Math.abs(x)<a.MIN_REPULSION_DIST&&(x=u.sign(x)*a.MIN_REPULSION_DIST),Math.abs(b)<a.MIN_REPULSION_DIST&&(b=u.sign(b)*a.MIN_REPULSION_DIST),w=x*x+b*b,C=Math.sqrt(w),T=(d.nodeRepulsion/2+p.nodeRepulsion/2)*d.noOfChildren*p.noOfChildren/w,E=T*x/C,A=T*b/C,d.repulsionForceX-=E,d.repulsionForceY-=A,p.repulsionForceX+=E,p.repulsionForceY+=A},h.prototype.calcGravitationalForce=function(d){var p,m,g,y,v,x,b,w;p=d.getOwner(),m=(p.getRight()+p.getLeft())/2,g=(p.getTop()+p.getBottom())/2,y=d.getCenterX()-m,v=d.getCenterY()-g,x=Math.abs(y)+d.getWidth()/2,b=Math.abs(v)+d.getHeight()/2,d.getOwner()==this.graphManager.getRoot()?(w=p.getEstimatedSize()*this.gravityRangeFactor,(x>w||b>w)&&(d.gravitationForceX=-this.gravityConstant*y,d.gravitationForceY=-this.gravityConstant*v)):(w=p.getEstimatedSize()*this.compoundGravityRangeFactor,(x>w||b>w)&&(d.gravitationForceX=-this.gravityConstant*y*this.compoundGravityConstant,d.gravitationForceY=-this.gravityConstant*v*this.compoundGravityConstant))},h.prototype.isConverged=function(){var d,p=!1;return this.totalIterations>this.maxIterations/3&&(p=Math.abs(this.totalDisplacement-this.oldTotalDisplacement)<2),d=this.totalDisplacement<this.totalDisplacementThreshold,this.oldTotalDisplacement=this.totalDisplacement,d||p},h.prototype.animate=function(){this.animationDuringLayout&&!this.isSubLayout&&(this.notAnimatedIterations==this.animationPeriod?(this.update(),this.notAnimatedIterations=0):this.notAnimatedIterations++)},h.prototype.calcNoOfChildrenForAllNodes=function(){for(var d,p=this.graphManager.getAllNodes(),m=0;m<p.length;m++)d=p[m],d.noOfChildren=d.getNoOfChildren()},h.prototype.calcGrid=function(d){var p=0,m=0;p=parseInt(Math.ceil((d.getRight()-d.getLeft())/this.repulsionRange)),m=parseInt(Math.ceil((d.getBottom()-d.getTop())/this.repulsionRange));for(var g=new Array(p),y=0;y<p;y++)g[y]=new Array(m);for(var y=0;y<p;y++)for(var v=0;v<m;v++)g[y][v]=new Array;return g},h.prototype.addNodeToGrid=function(d,p,m){var g=0,y=0,v=0,x=0;g=parseInt(Math.floor((d.getRect().x-p)/this.repulsionRange)),y=parseInt(Math.floor((d.getRect().width+d.getRect().x-p)/this.repulsionRange)),v=parseInt(Math.floor((d.getRect().y-m)/this.repulsionRange)),x=parseInt(Math.floor((d.getRect().height+d.getRect().y-m)/this.repulsionRange));for(var b=g;b<=y;b++)for(var w=v;w<=x;w++)this.grid[b][w].push(d),d.setGridCoordinates(g,y,v,x)},h.prototype.updateGrid=function(){var d,p,m=this.getAllNodes();for(this.grid=this.calcGrid(this.graphManager.getRoot()),d=0;d<m.length;d++)p=m[d],this.addNodeToGrid(p,this.graphManager.getRoot().getLeft(),this.graphManager.getRoot().getTop())},h.prototype.calculateRepulsionForceOfANode=function(d,p,m,g){if(this.totalIterations%a.GRID_CALCULATION_CHECK_PERIOD==1&&m||g){var y=new Set;d.surrounding=new Array;for(var v,x=this.grid,b=d.startX-1;b<d.finishX+2;b++)for(var w=d.startY-1;w<d.finishY+2;w++)if(!(b<0||w<0||b>=x.length||w>=x[0].length)){for(var C=0;C<x[b][w].length;C++)if(v=x[b][w][C],!(d.getOwner()!=v.getOwner()||d==v)&&!p.has(v)&&!y.has(v)){var T=Math.abs(d.getCenterX()-v.getCenterX())-(d.getWidth()/2+v.getWidth()/2),E=Math.abs(d.getCenterY()-v.getCenterY())-(d.getHeight()/2+v.getHeight()/2);T<=this.repulsionRange&&E<=this.repulsionRange&&y.add(v)}}d.surrounding=[].concat(n(y))}for(b=0;b<d.surrounding.length;b++)this.calcRepulsionForce(d,d.surrounding[b])},h.prototype.calcRepulsionRange=function(){return 0},t.exports=h},function(t,e,r){"use strict";var n=r(1),i=r(4);function a(l,u,h){n.call(this,l,u,h),this.idealLength=i.DEFAULT_EDGE_LENGTH,this.edgeElasticity=i.DEFAULT_SPRING_STRENGTH}o(a,"FDLayoutEdge"),a.prototype=Object.create(n.prototype);for(var s in n)a[s]=n[s];t.exports=a},function(t,e,r){"use strict";var n=r(3),i=r(4);function a(l,u,h,f){n.call(this,l,u,h,f),this.nodeRepulsion=i.DEFAULT_REPULSION_STRENGTH,this.springForceX=0,this.springForceY=0,this.repulsionForceX=0,this.repulsionForceY=0,this.gravitationForceX=0,this.gravitationForceY=0,this.displacementX=0,this.displacementY=0,this.startX=0,this.finishX=0,this.startY=0,this.finishY=0,this.surrounding=[]}o(a,"FDLayoutNode"),a.prototype=Object.create(n.prototype);for(var s in n)a[s]=n[s];a.prototype.setGridCoordinates=function(l,u,h,f){this.startX=l,this.finishX=u,this.startY=h,this.finishY=f},t.exports=a},function(t,e,r){"use strict";function n(i,a){this.width=0,this.height=0,i!==null&&a!==null&&(this.height=a,this.width=i)}o(n,"DimensionD"),n.prototype.getWidth=function(){return this.width},n.prototype.setWidth=function(i){this.width=i},n.prototype.getHeight=function(){return this.height},n.prototype.setHeight=function(i){this.height=i},t.exports=n},function(t,e,r){"use strict";var n=r(14);function i(){this.map={},this.keys=[]}o(i,"HashMap"),i.prototype.put=function(a,s){var l=n.createID(a);this.contains(l)||(this.map[l]=s,this.keys.push(a))},i.prototype.contains=function(a){var s=n.createID(a);return this.map[a]!=null},i.prototype.get=function(a){var s=n.createID(a);return this.map[s]},i.prototype.keySet=function(){return this.keys},t.exports=i},function(t,e,r){"use strict";var n=r(14);function i(){this.set={}}o(i,"HashSet"),i.prototype.add=function(a){var s=n.createID(a);this.contains(s)||(this.set[s]=a)},i.prototype.remove=function(a){delete this.set[n.createID(a)]},i.prototype.clear=function(){this.set={}},i.prototype.contains=function(a){return this.set[n.createID(a)]==a},i.prototype.isEmpty=function(){return this.size()===0},i.prototype.size=function(){return Object.keys(this.set).length},i.prototype.addAllTo=function(a){for(var s=Object.keys(this.set),l=s.length,u=0;u<l;u++)a.push(this.set[s[u]])},i.prototype.size=function(){return Object.keys(this.set).length},i.prototype.addAll=function(a){for(var s=a.length,l=0;l<s;l++){var u=a[l];this.add(u)}},t.exports=i},function(t,e,r){"use strict";function n(){}o(n,"Matrix"),n.multMat=function(i,a){for(var s=[],l=0;l<i.length;l++){s[l]=[];for(var u=0;u<a[0].length;u++){s[l][u]=0;for(var h=0;h<i[0].length;h++)s[l][u]+=i[l][h]*a[h][u]}}return s},n.transpose=function(i){for(var a=[],s=0;s<i[0].length;s++){a[s]=[];for(var l=0;l<i.length;l++)a[s][l]=i[l][s]}return a},n.multCons=function(i,a){for(var s=[],l=0;l<i.length;l++)s[l]=i[l]*a;return s},n.minusOp=function(i,a){for(var s=[],l=0;l<i.length;l++)s[l]=i[l]-a[l];return s},n.dotProduct=function(i,a){for(var s=0,l=0;l<i.length;l++)s+=i[l]*a[l];return s},n.mag=function(i){return Math.sqrt(this.dotProduct(i,i))},n.normalize=function(i){for(var a=[],s=this.mag(i),l=0;l<i.length;l++)a[l]=i[l]/s;return a},n.multGamma=function(i){for(var a=[],s=0,l=0;l<i.length;l++)s+=i[l];s*=-1/i.length;for(var u=0;u<i.length;u++)a[u]=s+i[u];return a},n.multL=function(i,a,s){for(var l=[],u=[],h=[],f=0;f<a[0].length;f++){for(var d=0,p=0;p<a.length;p++)d+=-.5*a[p][f]*i[p];u[f]=d}for(var m=0;m<s.length;m++){for(var g=0,y=0;y<s.length;y++)g+=s[m][y]*u[y];h[m]=g}for(var v=0;v<a.length;v++){for(var x=0,b=0;b<a[0].length;b++)x+=a[v][b]*h[b];l[v]=x}return l},t.exports=n},function(t,e,r){"use strict";var n=function(){function l(u,h){for(var f=0;f<h.length;f++){var d=h[f];d.enumerable=d.enumerable||!1,d.configurable=!0,"value"in d&&(d.writable=!0),Object.defineProperty(u,d.key,d)}}return o(l,"defineProperties"),function(u,h,f){return h&&l(u.prototype,h),f&&l(u,f),u}}();function i(l,u){if(!(l instanceof u))throw new TypeError("Cannot call a class as a function")}o(i,"_classCallCheck");var a=r(11),s=function(){function l(u,h){i(this,l),(h!==null||h!==void 0)&&(this.compareFunction=this._defaultCompareFunction);var f=void 0;u instanceof a?f=u.size():f=u.length,this._quicksort(u,0,f-1)}return o(l,"Quicksort"),n(l,[{key:"_quicksort",value:o(function(h,f,d){if(f<d){var p=this._partition(h,f,d);this._quicksort(h,f,p),this._quicksort(h,p+1,d)}},"_quicksort")},{key:"_partition",value:o(function(h,f,d){for(var p=this._get(h,f),m=f,g=d;;){for(;this.compareFunction(p,this._get(h,g));)g--;for(;this.compareFunction(this._get(h,m),p);)m++;if(m<g)this._swap(h,m,g),m++,g--;else return g}},"_partition")},{key:"_get",value:o(function(h,f){return h instanceof a?h.get_object_at(f):h[f]},"_get")},{key:"_set",value:o(function(h,f,d){h instanceof a?h.set_object_at(f,d):h[f]=d},"_set")},{key:"_swap",value:o(function(h,f,d){var p=this._get(h,f);this._set(h,f,this._get(h,d)),this._set(h,d,p)},"_swap")},{key:"_defaultCompareFunction",value:o(function(h,f){return f>h},"_defaultCompareFunction")}]),l}();t.exports=s},function(t,e,r){"use strict";function n(){}o(n,"SVD"),n.svd=function(i){this.U=null,this.V=null,this.s=null,this.m=0,this.n=0,this.m=i.length,this.n=i[0].length;var a=Math.min(this.m,this.n);this.s=function(xt){for(var ut=[];xt-- >0;)ut.push(0);return ut}(Math.min(this.m+1,this.n)),this.U=function(xt){var ut=o(function Et(ft){if(ft.length==0)return 0;for(var yt=[],nt=0;nt<ft[0];nt++)yt.push(Et(ft.slice(1)));return yt},"allocate");return ut(xt)}([this.m,a]),this.V=function(xt){var ut=o(function Et(ft){if(ft.length==0)return 0;for(var yt=[],nt=0;nt<ft[0];nt++)yt.push(Et(ft.slice(1)));return yt},"allocate");return ut(xt)}([this.n,this.n]);for(var s=function(xt){for(var ut=[];xt-- >0;)ut.push(0);return ut}(this.n),l=function(xt){for(var ut=[];xt-- >0;)ut.push(0);return ut}(this.m),u=!0,h=!0,f=Math.min(this.m-1,this.n),d=Math.max(0,Math.min(this.n-2,this.m)),p=0;p<Math.max(f,d);p++){if(p<f){this.s[p]=0;for(var m=p;m<this.m;m++)this.s[p]=n.hypot(this.s[p],i[m][p]);if(this.s[p]!==0){i[p][p]<0&&(this.s[p]=-this.s[p]);for(var g=p;g<this.m;g++)i[g][p]/=this.s[p];i[p][p]+=1}this.s[p]=-this.s[p]}for(var y=p+1;y<this.n;y++){if(function(xt,ut){return xt&&ut}(p<f,this.s[p]!==0)){for(var v=0,x=p;x<this.m;x++)v+=i[x][p]*i[x][y];v=-v/i[p][p];for(var b=p;b<this.m;b++)i[b][y]+=v*i[b][p]}s[y]=i[p][y]}if(function(xt,ut){return xt&&ut}(u,p<f))for(var w=p;w<this.m;w++)this.U[w][p]=i[w][p];if(p<d){s[p]=0;for(var C=p+1;C<this.n;C++)s[p]=n.hypot(s[p],s[C]);if(s[p]!==0){s[p+1]<0&&(s[p]=-s[p]);for(var T=p+1;T<this.n;T++)s[T]/=s[p];s[p+1]+=1}if(s[p]=-s[p],function(xt,ut){return xt&&ut}(p+1<this.m,s[p]!==0)){for(var E=p+1;E<this.m;E++)l[E]=0;for(var A=p+1;A<this.n;A++)for(var S=p+1;S<this.m;S++)l[S]+=s[A]*i[S][A];for(var _=p+1;_<this.n;_++)for(var I=-s[_]/s[p+1],D=p+1;D<this.m;D++)i[D][_]+=I*l[D]}if(h)for(var k=p+1;k<this.n;k++)this.V[k][p]=s[k]}}var L=Math.min(this.n,this.m+1);if(f<this.n&&(this.s[f]=i[f][f]),this.m<L&&(this.s[L-1]=0),d+1<L&&(s[d]=i[d][L-1]),s[L-1]=0,u){for(var R=f;R<a;R++){for(var O=0;O<this.m;O++)this.U[O][R]=0;this.U[R][R]=1}for(var M=f-1;M>=0;M--)if(this.s[M]!==0){for(var B=M+1;B<a;B++){for(var F=0,P=M;P<this.m;P++)F+=this.U[P][M]*this.U[P][B];F=-F/this.U[M][M];for(var z=M;z<this.m;z++)this.U[z][B]+=F*this.U[z][M]}for(var $=M;$<this.m;$++)this.U[$][M]=-this.U[$][M];this.U[M][M]=1+this.U[M][M];for(var H=0;H<M-1;H++)this.U[H][M]=0}else{for(var Q=0;Q<this.m;Q++)this.U[Q][M]=0;this.U[M][M]=1}}if(h)for(var j=this.n-1;j>=0;j--){if(function(xt,ut){return xt&&ut}(j<d,s[j]!==0))for(var ie=j+1;ie<a;ie++){for(var ne=0,le=j+1;le<this.n;le++)ne+=this.V[le][j]*this.V[le][ie];ne=-ne/this.V[j+1][j];for(var he=j+1;he<this.n;he++)this.V[he][ie]+=ne*this.V[he][j]}for(var K=0;K<this.n;K++)this.V[K][j]=0;this.V[j][j]=1}for(var X=L-1,te=0,J=Math.pow(2,-52),se=Math.pow(2,-966);L>0;){var ue=void 0,Z=void 0;for(ue=L-2;ue>=-1&&ue!==-1;ue--)if(Math.abs(s[ue])<=se+J*(Math.abs(this.s[ue])+Math.abs(this.s[ue+1]))){s[ue]=0;break}if(ue===L-2)Z=4;else{var Se=void 0;for(Se=L-1;Se>=ue&&Se!==ue;Se--){var ce=(Se!==L?Math.abs(s[Se]):0)+(Se!==ue+1?Math.abs(s[Se-1]):0);if(Math.abs(this.s[Se])<=se+J*ce){this.s[Se]=0;break}}Se===ue?Z=3:Se===L-1?Z=1:(Z=2,ue=Se)}switch(ue++,Z){case 1:{var ae=s[L-2];s[L-2]=0;for(var Oe=L-2;Oe>=ue;Oe--){var ge=n.hypot(this.s[Oe],ae),ze=this.s[Oe]/ge,He=ae/ge;if(this.s[Oe]=ge,Oe!==ue&&(ae=-He*s[Oe-1],s[Oe-1]=ze*s[Oe-1]),h)for(var $e=0;$e<this.n;$e++)ge=ze*this.V[$e][Oe]+He*this.V[$e][L-1],this.V[$e][L-1]=-He*this.V[$e][Oe]+ze*this.V[$e][L-1],this.V[$e][Oe]=ge}}break;case 2:{var Re=s[ue-1];s[ue-1]=0;for(var Ie=ue;Ie<L;Ie++){var be=n.hypot(this.s[Ie],Re),W=this.s[Ie]/be,de=Re/be;if(this.s[Ie]=be,Re=-de*s[Ie],s[Ie]=W*s[Ie],u)for(var re=0;re<this.m;re++)be=W*this.U[re][Ie]+de*this.U[re][ue-1],this.U[re][ue-1]=-de*this.U[re][Ie]+W*this.U[re][ue-1],this.U[re][Ie]=be}}break;case 3:{var oe=Math.max(Math.max(Math.max(Math.max(Math.abs(this.s[L-1]),Math.abs(this.s[L-2])),Math.abs(s[L-2])),Math.abs(this.s[ue])),Math.abs(s[ue])),V=this.s[L-1]/oe,xe=this.s[L-2]/oe,q=s[L-2]/oe,pe=this.s[ue]/oe,ve=s[ue]/oe,Pe=((xe+V)*(xe-V)+q*q)/2,_e=V*q*(V*q),we=0;(function(xt,ut){return xt||ut})(Pe!==0,_e!==0)&&(we=Math.sqrt(Pe*Pe+_e),Pe<0&&(we=-we),we=_e/(Pe+we));for(var Ve=(pe+V)*(pe-V)+we,De=pe*ve,qe=ue;qe<L-1;qe++){var at=n.hypot(Ve,De),Rt=Ve/at,st=De/at;if(qe!==ue&&(s[qe-1]=at),Ve=Rt*this.s[qe]+st*s[qe],s[qe]=Rt*s[qe]-st*this.s[qe],De=st*this.s[qe+1],this.s[qe+1]=Rt*this.s[qe+1],h)for(var Ue=0;Ue<this.n;Ue++)at=Rt*this.V[Ue][qe]+st*this.V[Ue][qe+1],this.V[Ue][qe+1]=-st*this.V[Ue][qe]+Rt*this.V[Ue][qe+1],this.V[Ue][qe]=at;if(at=n.hypot(Ve,De),Rt=Ve/at,st=De/at,this.s[qe]=at,Ve=Rt*s[qe]+st*this.s[qe+1],this.s[qe+1]=-st*s[qe]+Rt*this.s[qe+1],De=st*s[qe+1],s[qe+1]=Rt*s[qe+1],u&&qe<this.m-1)for(var ct=0;ct<this.m;ct++)at=Rt*this.U[ct][qe]+st*this.U[ct][qe+1],this.U[ct][qe+1]=-st*this.U[ct][qe]+Rt*this.U[ct][qe+1],this.U[ct][qe]=at}s[L-2]=Ve,te=te+1}break;case 4:{if(this.s[ue]<=0&&(this.s[ue]=this.s[ue]<0?-this.s[ue]:0,h))for(var We=0;We<=X;We++)this.V[We][ue]=-this.V[We][ue];for(;ue<X&&!(this.s[ue]>=this.s[ue+1]);){var ot=this.s[ue];if(this.s[ue]=this.s[ue+1],this.s[ue+1]=ot,h&&ue<this.n-1)for(var Yt=0;Yt<this.n;Yt++)ot=this.V[Yt][ue+1],this.V[Yt][ue+1]=this.V[Yt][ue],this.V[Yt][ue]=ot;if(u&&ue<this.m-1)for(var bt=0;bt<this.m;bt++)ot=this.U[bt][ue+1],this.U[bt][ue+1]=this.U[bt][ue],this.U[bt][ue]=ot;ue++}te=0,L--}break}}var Mt={U:this.U,V:this.V,S:this.s};return Mt},n.hypot=function(i,a){var s=void 0;return Math.abs(i)>Math.abs(a)?(s=a/i,s=Math.abs(i)*Math.sqrt(1+s*s)):a!=0?(s=i/a,s=Math.abs(a)*Math.sqrt(1+s*s)):s=0,s},t.exports=n},function(t,e,r){"use strict";var n=function(){function s(l,u){for(var h=0;h<u.length;h++){var f=u[h];f.enumerable=f.enumerable||!1,f.configurable=!0,"value"in f&&(f.writable=!0),Object.defineProperty(l,f.key,f)}}return o(s,"defineProperties"),function(l,u,h){return u&&s(l.prototype,u),h&&s(l,h),l}}();function i(s,l){if(!(s instanceof l))throw new TypeError("Cannot call a class as a function")}o(i,"_classCallCheck");var a=function(){function s(l,u){var h=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,f=arguments.length>3&&arguments[3]!==void 0?arguments[3]:-1,d=arguments.length>4&&arguments[4]!==void 0?arguments[4]:-1;i(this,s),this.sequence1=l,this.sequence2=u,this.match_score=h,this.mismatch_penalty=f,this.gap_penalty=d,this.iMax=l.length+1,this.jMax=u.length+1,this.grid=new Array(this.iMax);for(var p=0;p<this.iMax;p++){this.grid[p]=new Array(this.jMax);for(var m=0;m<this.jMax;m++)this.grid[p][m]=0}this.tracebackGrid=new Array(this.iMax);for(var g=0;g<this.iMax;g++){this.tracebackGrid[g]=new Array(this.jMax);for(var y=0;y<this.jMax;y++)this.tracebackGrid[g][y]=[null,null,null]}this.alignments=[],this.score=-1,this.computeGrids()}return o(s,"NeedlemanWunsch"),n(s,[{key:"getScore",value:o(function(){return this.score},"getScore")},{key:"getAlignments",value:o(function(){return this.alignments},"getAlignments")},{key:"computeGrids",value:o(function(){for(var u=1;u<this.jMax;u++)this.grid[0][u]=this.grid[0][u-1]+this.gap_penalty,this.tracebackGrid[0][u]=[!1,!1,!0];for(var h=1;h<this.iMax;h++)this.grid[h][0]=this.grid[h-1][0]+this.gap_penalty,this.tracebackGrid[h][0]=[!1,!0,!1];for(var f=1;f<this.iMax;f++)for(var d=1;d<this.jMax;d++){var p=void 0;this.sequence1[f-1]===this.sequence2[d-1]?p=this.grid[f-1][d-1]+this.match_score:p=this.grid[f-1][d-1]+this.mismatch_penalty;var m=this.grid[f-1][d]+this.gap_penalty,g=this.grid[f][d-1]+this.gap_penalty,y=[p,m,g],v=this.arrayAllMaxIndexes(y);this.grid[f][d]=y[v[0]],this.tracebackGrid[f][d]=[v.includes(0),v.includes(1),v.includes(2)]}this.score=this.grid[this.iMax-1][this.jMax-1]},"computeGrids")},{key:"alignmentTraceback",value:o(function(){var u=[];for(u.push({pos:[this.sequence1.length,this.sequence2.length],seq1:"",seq2:""});u[0];){var h=u[0],f=this.tracebackGrid[h.pos[0]][h.pos[1]];f[0]&&u.push({pos:[h.pos[0]-1,h.pos[1]-1],seq1:this.sequence1[h.pos[0]-1]+h.seq1,seq2:this.sequence2[h.pos[1]-1]+h.seq2}),f[1]&&u.push({pos:[h.pos[0]-1,h.pos[1]],seq1:this.sequence1[h.pos[0]-1]+h.seq1,seq2:"-"+h.seq2}),f[2]&&u.push({pos:[h.pos[0],h.pos[1]-1],seq1:"-"+h.seq1,seq2:this.sequence2[h.pos[1]-1]+h.seq2}),h.pos[0]===0&&h.pos[1]===0&&this.alignments.push({sequence1:h.seq1,sequence2:h.seq2}),u.shift()}return this.alignments},"alignmentTraceback")},{key:"getAllIndexes",value:o(function(u,h){for(var f=[],d=-1;(d=u.indexOf(h,d+1))!==-1;)f.push(d);return f},"getAllIndexes")},{key:"arrayAllMaxIndexes",value:o(function(u){return this.getAllIndexes(u,Math.max.apply(null,u))},"arrayAllMaxIndexes")}]),s}();t.exports=a},function(t,e,r){"use strict";var n=o(function(){},"layoutBase");n.FDLayout=r(18),n.FDLayoutConstants=r(4),n.FDLayoutEdge=r(19),n.FDLayoutNode=r(20),n.DimensionD=r(21),n.HashMap=r(22),n.HashSet=r(23),n.IGeometry=r(8),n.IMath=r(9),n.Integer=r(10),n.Point=r(12),n.PointD=r(5),n.RandomSeed=r(16),n.RectangleD=r(13),n.Transform=r(17),n.UniqueIDGeneretor=r(14),n.Quicksort=r(25),n.LinkedList=r(11),n.LGraphObject=r(2),n.LGraph=r(6),n.LEdge=r(1),n.LGraphManager=r(7),n.LNode=r(3),n.Layout=r(15),n.LayoutConstants=r(0),n.NeedlemanWunsch=r(27),n.Matrix=r(24),n.SVD=r(26),t.exports=n},function(t,e,r){"use strict";function n(){this.listeners=[]}o(n,"Emitter");var i=n.prototype;i.addListener=function(a,s){this.listeners.push({event:a,callback:s})},i.removeListener=function(a,s){for(var l=this.listeners.length;l>=0;l--){var u=this.listeners[l];u.event===a&&u.callback===s&&this.listeners.splice(l,1)}},i.emit=function(a,s){for(var l=0;l<this.listeners.length;l++){var u=this.listeners[l];a===u.event&&u.callback(s)}},t.exports=n}])})});var mF=Mi((k4,pF)=>{"use strict";o(function(e,r){typeof k4=="object"&&typeof pF=="object"?pF.exports=r(dF()):typeof define=="function"&&define.amd?define(["layout-base"],r):typeof k4=="object"?k4.coseBase=r(dF()):e.coseBase=r(e.layoutBase)},"webpackUniversalModuleDefinition")(k4,function(t){return(()=>{"use strict";var e={45:(a,s,l)=>{var u={};u.layoutBase=l(551),u.CoSEConstants=l(806),u.CoSEEdge=l(767),u.CoSEGraph=l(880),u.CoSEGraphManager=l(578),u.CoSELayout=l(765),u.CoSENode=l(991),u.ConstraintHandler=l(902),a.exports=u},806:(a,s,l)=>{var u=l(551).FDLayoutConstants;function h(){}o(h,"CoSEConstants");for(var f in u)h[f]=u[f];h.DEFAULT_USE_MULTI_LEVEL_SCALING=!1,h.DEFAULT_RADIAL_SEPARATION=u.DEFAULT_EDGE_LENGTH,h.DEFAULT_COMPONENT_SEPERATION=60,h.TILE=!0,h.TILING_PADDING_VERTICAL=10,h.TILING_PADDING_HORIZONTAL=10,h.TRANSFORM_ON_CONSTRAINT_HANDLING=!0,h.ENFORCE_CONSTRAINTS=!0,h.APPLY_LAYOUT=!0,h.RELAX_MOVEMENT_ON_CONSTRAINTS=!0,h.TREE_REDUCTION_ON_INCREMENTAL=!0,h.PURE_INCREMENTAL=h.DEFAULT_INCREMENTAL,a.exports=h},767:(a,s,l)=>{var u=l(551).FDLayoutEdge;function h(d,p,m){u.call(this,d,p,m)}o(h,"CoSEEdge"),h.prototype=Object.create(u.prototype);for(var f in u)h[f]=u[f];a.exports=h},880:(a,s,l)=>{var u=l(551).LGraph;function h(d,p,m){u.call(this,d,p,m)}o(h,"CoSEGraph"),h.prototype=Object.create(u.prototype);for(var f in u)h[f]=u[f];a.exports=h},578:(a,s,l)=>{var u=l(551).LGraphManager;function h(d){u.call(this,d)}o(h,"CoSEGraphManager"),h.prototype=Object.create(u.prototype);for(var f in u)h[f]=u[f];a.exports=h},765:(a,s,l)=>{var u=l(551).FDLayout,h=l(578),f=l(880),d=l(991),p=l(767),m=l(806),g=l(902),y=l(551).FDLayoutConstants,v=l(551).LayoutConstants,x=l(551).Point,b=l(551).PointD,w=l(551).DimensionD,C=l(551).Layout,T=l(551).Integer,E=l(551).IGeometry,A=l(551).LGraph,S=l(551).Transform,_=l(551).LinkedList;function I(){u.call(this),this.toBeTiled={},this.constraints={}}o(I,"CoSELayout"),I.prototype=Object.create(u.prototype);for(var D in u)I[D]=u[D];I.prototype.newGraphManager=function(){var k=new h(this);return this.graphManager=k,k},I.prototype.newGraph=function(k){return new f(null,this.graphManager,k)},I.prototype.newNode=function(k){return new d(this.graphManager,k)},I.prototype.newEdge=function(k){return new p(null,null,k)},I.prototype.initParameters=function(){u.prototype.initParameters.call(this,arguments),this.isSubLayout||(m.DEFAULT_EDGE_LENGTH<10?this.idealEdgeLength=10:this.idealEdgeLength=m.DEFAULT_EDGE_LENGTH,this.useSmartIdealEdgeLengthCalculation=m.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION,this.gravityConstant=y.DEFAULT_GRAVITY_STRENGTH,this.compoundGravityConstant=y.DEFAULT_COMPOUND_GRAVITY_STRENGTH,this.gravityRangeFactor=y.DEFAULT_GRAVITY_RANGE_FACTOR,this.compoundGravityRangeFactor=y.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR,this.prunedNodesAll=[],this.growTreeIterations=0,this.afterGrowthIterations=0,this.isTreeGrowing=!1,this.isGrowthFinished=!1)},I.prototype.initSpringEmbedder=function(){u.prototype.initSpringEmbedder.call(this),this.coolingCycle=0,this.maxCoolingCycle=this.maxIterations/y.CONVERGENCE_CHECK_PERIOD,this.finalTemperature=.04,this.coolingAdjuster=1},I.prototype.layout=function(){var k=v.DEFAULT_CREATE_BENDS_AS_NEEDED;return k&&(this.createBendpoints(),this.graphManager.resetAllEdges()),this.level=0,this.classicLayout()},I.prototype.classicLayout=function(){if(this.nodesWithGravity=this.calculateNodesToApplyGravitationTo(),this.graphManager.setAllNodesToApplyGravitation(this.nodesWithGravity),this.calcNoOfChildrenForAllNodes(),this.graphManager.calcLowestCommonAncestors(),this.graphManager.calcInclusionTreeDepths(),this.graphManager.getRoot().calcEstimatedSize(),this.calcIdealEdgeLengths(),this.incremental){if(m.TREE_REDUCTION_ON_INCREMENTAL){this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation();var L=new Set(this.getAllNodes()),R=this.nodesWithGravity.filter(function(B){return L.has(B)});this.graphManager.setAllNodesToApplyGravitation(R)}}else{var k=this.getFlatForest();if(k.length>0)this.positionNodesRadially(k);else{this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation();var L=new Set(this.getAllNodes()),R=this.nodesWithGravity.filter(function(O){return L.has(O)});this.graphManager.setAllNodesToApplyGravitation(R),this.positionNodesRandomly()}}return Object.keys(this.constraints).length>0&&(g.handleConstraints(this),this.initConstraintVariables()),this.initSpringEmbedder(),m.APPLY_LAYOUT&&this.runSpringEmbedder(),!0},I.prototype.tick=function(){if(this.totalIterations++,this.totalIterations===this.maxIterations&&!this.isTreeGrowing&&!this.isGrowthFinished)if(this.prunedNodesAll.length>0)this.isTreeGrowing=!0;else return!0;if(this.totalIterations%y.CONVERGENCE_CHECK_PERIOD==0&&!this.isTreeGrowing&&!this.isGrowthFinished){if(this.isConverged())if(this.prunedNodesAll.length>0)this.isTreeGrowing=!0;else return!0;this.coolingCycle++,this.layoutQuality==0?this.coolingAdjuster=this.coolingCycle:this.layoutQuality==1&&(this.coolingAdjuster=this.coolingCycle/3),this.coolingFactor=Math.max(this.initialCoolingFactor-Math.pow(this.coolingCycle,Math.log(100*(this.initialCoolingFactor-this.finalTemperature))/Math.log(this.maxCoolingCycle))/100*this.coolingAdjuster,this.finalTemperature),this.animationPeriod=Math.ceil(this.initialAnimationPeriod*Math.sqrt(this.coolingFactor))}if(this.isTreeGrowing){if(this.growTreeIterations%10==0)if(this.prunedNodesAll.length>0){this.graphManager.updateBounds(),this.updateGrid(),this.growTree(this.prunedNodesAll),this.graphManager.resetAllNodesToApplyGravitation();var k=new Set(this.getAllNodes()),L=this.nodesWithGravity.filter(function(M){return k.has(M)});this.graphManager.setAllNodesToApplyGravitation(L),this.graphManager.updateBounds(),this.updateGrid(),m.PURE_INCREMENTAL?this.coolingFactor=y.DEFAULT_COOLING_FACTOR_INCREMENTAL/2:this.coolingFactor=y.DEFAULT_COOLING_FACTOR_INCREMENTAL}else this.isTreeGrowing=!1,this.isGrowthFinished=!0;this.growTreeIterations++}if(this.isGrowthFinished){if(this.isConverged())return!0;this.afterGrowthIterations%10==0&&(this.graphManager.updateBounds(),this.updateGrid()),m.PURE_INCREMENTAL?this.coolingFactor=y.DEFAULT_COOLING_FACTOR_INCREMENTAL/2*((100-this.afterGrowthIterations)/100):this.coolingFactor=y.DEFAULT_COOLING_FACTOR_INCREMENTAL*((100-this.afterGrowthIterations)/100),this.afterGrowthIterations++}var R=!this.isTreeGrowing&&!this.isGrowthFinished,O=this.growTreeIterations%10==1&&this.isTreeGrowing||this.afterGrowthIterations%10==1&&this.isGrowthFinished;return this.totalDisplacement=0,this.graphManager.updateBounds(),this.calcSpringForces(),this.calcRepulsionForces(R,O),this.calcGravitationalForces(),this.moveNodes(),this.animate(),!1},I.prototype.getPositionsData=function(){for(var k=this.graphManager.getAllNodes(),L={},R=0;R<k.length;R++){var O=k[R].rect,M=k[R].id;L[M]={id:M,x:O.getCenterX(),y:O.getCenterY(),w:O.width,h:O.height}}return L},I.prototype.runSpringEmbedder=function(){this.initialAnimationPeriod=25,this.animationPeriod=this.initialAnimationPeriod;var k=!1;if(y.ANIMATE==="during")this.emit("layoutstarted");else{for(;!k;)k=this.tick();this.graphManager.updateBounds()}},I.prototype.moveNodes=function(){for(var k=this.getAllNodes(),L,R=0;R<k.length;R++)L=k[R],L.calculateDisplacement();Object.keys(this.constraints).length>0&&this.updateDisplacements();for(var R=0;R<k.length;R++)L=k[R],L.move()},I.prototype.initConstraintVariables=function(){var k=this;this.idToNodeMap=new Map,this.fixedNodeSet=new Set;for(var L=this.graphManager.getAllNodes(),R=0;R<L.length;R++){var O=L[R];this.idToNodeMap.set(O.id,O)}var M=o(function le(he){for(var K=he.getChild().getNodes(),X,te=0,J=0;J<K.length;J++)X=K[J],X.getChild()==null?k.fixedNodeSet.has(X.id)&&(te+=100):te+=le(X);return te},"calculateCompoundWeight");if(this.constraints.fixedNodeConstraint){this.constraints.fixedNodeConstraint.forEach(function(K){k.fixedNodeSet.add(K.nodeId)});for(var L=this.graphManager.getAllNodes(),O,R=0;R<L.length;R++)if(O=L[R],O.getChild()!=null){var B=M(O);B>0&&(O.fixedNodeWeight=B)}}if(this.constraints.relativePlacementConstraint){var F=new Map,P=new Map;if(this.dummyToNodeForVerticalAlignment=new Map,this.dummyToNodeForHorizontalAlignment=new Map,this.fixedNodesOnHorizontal=new Set,this.fixedNodesOnVertical=new Set,this.fixedNodeSet.forEach(function(le){k.fixedNodesOnHorizontal.add(le),k.fixedNodesOnVertical.add(le)}),this.constraints.alignmentConstraint){if(this.constraints.alignmentConstraint.vertical)for(var z=this.constraints.alignmentConstraint.vertical,R=0;R<z.length;R++)this.dummyToNodeForVerticalAlignment.set("dummy"+R,[]),z[R].forEach(function(he){F.set(he,"dummy"+R),k.dummyToNodeForVerticalAlignment.get("dummy"+R).push(he),k.fixedNodeSet.has(he)&&k.fixedNodesOnHorizontal.add("dummy"+R)});if(this.constraints.alignmentConstraint.horizontal)for(var $=this.constraints.alignmentConstraint.horizontal,R=0;R<$.length;R++)this.dummyToNodeForHorizontalAlignment.set("dummy"+R,[]),$[R].forEach(function(he){P.set(he,"dummy"+R),k.dummyToNodeForHorizontalAlignment.get("dummy"+R).push(he),k.fixedNodeSet.has(he)&&k.fixedNodesOnVertical.add("dummy"+R)})}if(m.RELAX_MOVEMENT_ON_CONSTRAINTS)this.shuffle=function(le){var he,K,X;for(X=le.length-1;X>=2*le.length/3;X--)he=Math.floor(Math.random()*(X+1)),K=le[X],le[X]=le[he],le[he]=K;return le},this.nodesInRelativeHorizontal=[],this.nodesInRelativeVertical=[],this.nodeToRelativeConstraintMapHorizontal=new Map,this.nodeToRelativeConstraintMapVertical=new Map,this.nodeToTempPositionMapHorizontal=new Map,this.nodeToTempPositionMapVertical=new Map,this.constraints.relativePlacementConstraint.forEach(function(le){if(le.left){var he=F.has(le.left)?F.get(le.left):le.left,K=F.has(le.right)?F.get(le.right):le.right;k.nodesInRelativeHorizontal.includes(he)||(k.nodesInRelativeHorizontal.push(he),k.nodeToRelativeConstraintMapHorizontal.set(he,[]),k.dummyToNodeForVerticalAlignment.has(he)?k.nodeToTempPositionMapHorizontal.set(he,k.idToNodeMap.get(k.dummyToNodeForVerticalAlignment.get(he)[0]).getCenterX()):k.nodeToTempPositionMapHorizontal.set(he,k.idToNodeMap.get(he).getCenterX())),k.nodesInRelativeHorizontal.includes(K)||(k.nodesInRelativeHorizontal.push(K),k.nodeToRelativeConstraintMapHorizontal.set(K,[]),k.dummyToNodeForVerticalAlignment.has(K)?k.nodeToTempPositionMapHorizontal.set(K,k.idToNodeMap.get(k.dummyToNodeForVerticalAlignment.get(K)[0]).getCenterX()):k.nodeToTempPositionMapHorizontal.set(K,k.idToNodeMap.get(K).getCenterX())),k.nodeToRelativeConstraintMapHorizontal.get(he).push({right:K,gap:le.gap}),k.nodeToRelativeConstraintMapHorizontal.get(K).push({left:he,gap:le.gap})}else{var X=P.has(le.top)?P.get(le.top):le.top,te=P.has(le.bottom)?P.get(le.bottom):le.bottom;k.nodesInRelativeVertical.includes(X)||(k.nodesInRelativeVertical.push(X),k.nodeToRelativeConstraintMapVertical.set(X,[]),k.dummyToNodeForHorizontalAlignment.has(X)?k.nodeToTempPositionMapVertical.set(X,k.idToNodeMap.get(k.dummyToNodeForHorizontalAlignment.get(X)[0]).getCenterY()):k.nodeToTempPositionMapVertical.set(X,k.idToNodeMap.get(X).getCenterY())),k.nodesInRelativeVertical.includes(te)||(k.nodesInRelativeVertical.push(te),k.nodeToRelativeConstraintMapVertical.set(te,[]),k.dummyToNodeForHorizontalAlignment.has(te)?k.nodeToTempPositionMapVertical.set(te,k.idToNodeMap.get(k.dummyToNodeForHorizontalAlignment.get(te)[0]).getCenterY()):k.nodeToTempPositionMapVertical.set(te,k.idToNodeMap.get(te).getCenterY())),k.nodeToRelativeConstraintMapVertical.get(X).push({bottom:te,gap:le.gap}),k.nodeToRelativeConstraintMapVertical.get(te).push({top:X,gap:le.gap})}});else{var H=new Map,Q=new Map;this.constraints.relativePlacementConstraint.forEach(function(le){if(le.left){var he=F.has(le.left)?F.get(le.left):le.left,K=F.has(le.right)?F.get(le.right):le.right;H.has(he)?H.get(he).push(K):H.set(he,[K]),H.has(K)?H.get(K).push(he):H.set(K,[he])}else{var X=P.has(le.top)?P.get(le.top):le.top,te=P.has(le.bottom)?P.get(le.bottom):le.bottom;Q.has(X)?Q.get(X).push(te):Q.set(X,[te]),Q.has(te)?Q.get(te).push(X):Q.set(te,[X])}});var j=o(function(he,K){var X=[],te=[],J=new _,se=new Set,ue=0;return he.forEach(function(Z,Se){if(!se.has(Se)){X[ue]=[],te[ue]=!1;var ce=Se;for(J.push(ce),se.add(ce),X[ue].push(ce);J.length!=0;){ce=J.shift(),K.has(ce)&&(te[ue]=!0);var ae=he.get(ce);ae.forEach(function(Oe){se.has(Oe)||(J.push(Oe),se.add(Oe),X[ue].push(Oe))})}ue++}}),{components:X,isFixed:te}},"constructComponents"),ie=j(H,k.fixedNodesOnHorizontal);this.componentsOnHorizontal=ie.components,this.fixedComponentsOnHorizontal=ie.isFixed;var ne=j(Q,k.fixedNodesOnVertical);this.componentsOnVertical=ne.components,this.fixedComponentsOnVertical=ne.isFixed}}},I.prototype.updateDisplacements=function(){var k=this;if(this.constraints.fixedNodeConstraint&&this.constraints.fixedNodeConstraint.forEach(function(ne){var le=k.idToNodeMap.get(ne.nodeId);le.displacementX=0,le.displacementY=0}),this.constraints.alignmentConstraint){if(this.constraints.alignmentConstraint.vertical)for(var L=this.constraints.alignmentConstraint.vertical,R=0;R<L.length;R++){for(var O=0,M=0;M<L[R].length;M++){if(this.fixedNodeSet.has(L[R][M])){O=0;break}O+=this.idToNodeMap.get(L[R][M]).displacementX}for(var B=O/L[R].length,M=0;M<L[R].length;M++)this.idToNodeMap.get(L[R][M]).displacementX=B}if(this.constraints.alignmentConstraint.horizontal)for(var F=this.constraints.alignmentConstraint.horizontal,R=0;R<F.length;R++){for(var P=0,M=0;M<F[R].length;M++){if(this.fixedNodeSet.has(F[R][M])){P=0;break}P+=this.idToNodeMap.get(F[R][M]).displacementY}for(var z=P/F[R].length,M=0;M<F[R].length;M++)this.idToNodeMap.get(F[R][M]).displacementY=z}}if(this.constraints.relativePlacementConstraint)if(m.RELAX_MOVEMENT_ON_CONSTRAINTS)this.totalIterations%10==0&&(this.shuffle(this.nodesInRelativeHorizontal),this.shuffle(this.nodesInRelativeVertical)),this.nodesInRelativeHorizontal.forEach(function(ne){if(!k.fixedNodesOnHorizontal.has(ne)){var le=0;k.dummyToNodeForVerticalAlignment.has(ne)?le=k.idToNodeMap.get(k.dummyToNodeForVerticalAlignment.get(ne)[0]).displacementX:le=k.idToNodeMap.get(ne).displacementX,k.nodeToRelativeConstraintMapHorizontal.get(ne).forEach(function(he){if(he.right){var K=k.nodeToTempPositionMapHorizontal.get(he.right)-k.nodeToTempPositionMapHorizontal.get(ne)-le;K<he.gap&&(le-=he.gap-K)}else{var K=k.nodeToTempPositionMapHorizontal.get(ne)-k.nodeToTempPositionMapHorizontal.get(he.left)+le;K<he.gap&&(le+=he.gap-K)}}),k.nodeToTempPositionMapHorizontal.set(ne,k.nodeToTempPositionMapHorizontal.get(ne)+le),k.dummyToNodeForVerticalAlignment.has(ne)?k.dummyToNodeForVerticalAlignment.get(ne).forEach(function(he){k.idToNodeMap.get(he).displacementX=le}):k.idToNodeMap.get(ne).displacementX=le}}),this.nodesInRelativeVertical.forEach(function(ne){if(!k.fixedNodesOnHorizontal.has(ne)){var le=0;k.dummyToNodeForHorizontalAlignment.has(ne)?le=k.idToNodeMap.get(k.dummyToNodeForHorizontalAlignment.get(ne)[0]).displacementY:le=k.idToNodeMap.get(ne).displacementY,k.nodeToRelativeConstraintMapVertical.get(ne).forEach(function(he){if(he.bottom){var K=k.nodeToTempPositionMapVertical.get(he.bottom)-k.nodeToTempPositionMapVertical.get(ne)-le;K<he.gap&&(le-=he.gap-K)}else{var K=k.nodeToTempPositionMapVertical.get(ne)-k.nodeToTempPositionMapVertical.get(he.top)+le;K<he.gap&&(le+=he.gap-K)}}),k.nodeToTempPositionMapVertical.set(ne,k.nodeToTempPositionMapVertical.get(ne)+le),k.dummyToNodeForHorizontalAlignment.has(ne)?k.dummyToNodeForHorizontalAlignment.get(ne).forEach(function(he){k.idToNodeMap.get(he).displacementY=le}):k.idToNodeMap.get(ne).displacementY=le}});else{for(var R=0;R<this.componentsOnHorizontal.length;R++){var $=this.componentsOnHorizontal[R];if(this.fixedComponentsOnHorizontal[R])for(var M=0;M<$.length;M++)this.dummyToNodeForVerticalAlignment.has($[M])?this.dummyToNodeForVerticalAlignment.get($[M]).forEach(function(he){k.idToNodeMap.get(he).displacementX=0}):this.idToNodeMap.get($[M]).displacementX=0;else{for(var H=0,Q=0,M=0;M<$.length;M++)if(this.dummyToNodeForVerticalAlignment.has($[M])){var j=this.dummyToNodeForVerticalAlignment.get($[M]);H+=j.length*this.idToNodeMap.get(j[0]).displacementX,Q+=j.length}else H+=this.idToNodeMap.get($[M]).displacementX,Q++;for(var ie=H/Q,M=0;M<$.length;M++)this.dummyToNodeForVerticalAlignment.has($[M])?this.dummyToNodeForVerticalAlignment.get($[M]).forEach(function(he){k.idToNodeMap.get(he).displacementX=ie}):this.idToNodeMap.get($[M]).displacementX=ie}}for(var R=0;R<this.componentsOnVertical.length;R++){var $=this.componentsOnVertical[R];if(this.fixedComponentsOnVertical[R])for(var M=0;M<$.length;M++)this.dummyToNodeForHorizontalAlignment.has($[M])?this.dummyToNodeForHorizontalAlignment.get($[M]).forEach(function(K){k.idToNodeMap.get(K).displacementY=0}):this.idToNodeMap.get($[M]).displacementY=0;else{for(var H=0,Q=0,M=0;M<$.length;M++)if(this.dummyToNodeForHorizontalAlignment.has($[M])){var j=this.dummyToNodeForHorizontalAlignment.get($[M]);H+=j.length*this.idToNodeMap.get(j[0]).displacementY,Q+=j.length}else H+=this.idToNodeMap.get($[M]).displacementY,Q++;for(var ie=H/Q,M=0;M<$.length;M++)this.dummyToNodeForHorizontalAlignment.has($[M])?this.dummyToNodeForHorizontalAlignment.get($[M]).forEach(function(J){k.idToNodeMap.get(J).displacementY=ie}):this.idToNodeMap.get($[M]).displacementY=ie}}}},I.prototype.calculateNodesToApplyGravitationTo=function(){var k=[],L,R=this.graphManager.getGraphs(),O=R.length,M;for(M=0;M<O;M++)L=R[M],L.updateConnected(),L.isConnected||(k=k.concat(L.getNodes()));return k},I.prototype.createBendpoints=function(){var k=[];k=k.concat(this.graphManager.getAllEdges());var L=new Set,R;for(R=0;R<k.length;R++){var O=k[R];if(!L.has(O)){var M=O.getSource(),B=O.getTarget();if(M==B)O.getBendpoints().push(new b),O.getBendpoints().push(new b),this.createDummyNodesForBendpoints(O),L.add(O);else{var F=[];if(F=F.concat(M.getEdgeListToNode(B)),F=F.concat(B.getEdgeListToNode(M)),!L.has(F[0])){if(F.length>1){var P;for(P=0;P<F.length;P++){var z=F[P];z.getBendpoints().push(new b),this.createDummyNodesForBendpoints(z)}}F.forEach(function($){L.add($)})}}}if(L.size==k.length)break}},I.prototype.positionNodesRadially=function(k){for(var L=new x(0,0),R=Math.ceil(Math.sqrt(k.length)),O=0,M=0,B=0,F=new b(0,0),P=0;P<k.length;P++){P%R==0&&(B=0,M=O,P!=0&&(M+=m.DEFAULT_COMPONENT_SEPERATION),O=0);var z=k[P],$=C.findCenterOfTree(z);L.x=B,L.y=M,F=I.radialLayout(z,$,L),F.y>O&&(O=Math.floor(F.y)),B=Math.floor(F.x+m.DEFAULT_COMPONENT_SEPERATION)}this.transform(new b(v.WORLD_CENTER_X-F.x/2,v.WORLD_CENTER_Y-F.y/2))},I.radialLayout=function(k,L,R){var O=Math.max(this.maxDiagonalInTree(k),m.DEFAULT_RADIAL_SEPARATION);I.branchRadialLayout(L,null,0,359,0,O);var M=A.calculateBounds(k),B=new S;B.setDeviceOrgX(M.getMinX()),B.setDeviceOrgY(M.getMinY()),B.setWorldOrgX(R.x),B.setWorldOrgY(R.y);for(var F=0;F<k.length;F++){var P=k[F];P.transform(B)}var z=new b(M.getMaxX(),M.getMaxY());return B.inverseTransformPoint(z)},I.branchRadialLayout=function(k,L,R,O,M,B){var F=(O-R+1)/2;F<0&&(F+=180);var P=(F+R)%360,z=P*E.TWO_PI/360,$=Math.cos(z),H=M*Math.cos(z),Q=M*Math.sin(z);k.setCenter(H,Q);var j=[];j=j.concat(k.getEdges());var ie=j.length;L!=null&&ie--;for(var ne=0,le=j.length,he,K=k.getEdgesBetween(L);K.length>1;){var X=K[0];K.splice(0,1);var te=j.indexOf(X);te>=0&&j.splice(te,1),le--,ie--}L!=null?he=(j.indexOf(K[0])+1)%le:he=0;for(var J=Math.abs(O-R)/ie,se=he;ne!=ie;se=++se%le){var ue=j[se].getOtherEnd(k);if(ue!=L){var Z=(R+ne*J)%360,Se=(Z+J)%360;I.branchRadialLayout(ue,k,Z,Se,M+B,B),ne++}}},I.maxDiagonalInTree=function(k){for(var L=T.MIN_VALUE,R=0;R<k.length;R++){var O=k[R],M=O.getDiagonal();M>L&&(L=M)}return L},I.prototype.calcRepulsionRange=function(){return 2*(this.level+1)*this.idealEdgeLength},I.prototype.groupZeroDegreeMembers=function(){var k=this,L={};this.memberGroups={},this.idToDummyNode={};for(var R=[],O=this.graphManager.getAllNodes(),M=0;M<O.length;M++){var B=O[M],F=B.getParent();this.getNodeDegreeWithChildren(B)===0&&(F.id==null||!this.getToBeTiled(F))&&R.push(B)}for(var M=0;M<R.length;M++){var B=R[M],P=B.getParent().id;typeof L[P]>"u"&&(L[P]=[]),L[P]=L[P].concat(B)}Object.keys(L).forEach(function(z){if(L[z].length>1){var $="DummyCompound_"+z;k.memberGroups[$]=L[z];var H=L[z][0].getParent(),Q=new d(k.graphManager);Q.id=$,Q.paddingLeft=H.paddingLeft||0,Q.paddingRight=H.paddingRight||0,Q.paddingBottom=H.paddingBottom||0,Q.paddingTop=H.paddingTop||0,k.idToDummyNode[$]=Q;var j=k.getGraphManager().add(k.newGraph(),Q),ie=H.getChild();ie.add(Q);for(var ne=0;ne<L[z].length;ne++){var le=L[z][ne];ie.remove(le),j.add(le)}}})},I.prototype.clearCompounds=function(){var k={},L={};this.performDFSOnCompounds();for(var R=0;R<this.compoundOrder.length;R++)L[this.compoundOrder[R].id]=this.compoundOrder[R],k[this.compoundOrder[R].id]=[].concat(this.compoundOrder[R].getChild().getNodes()),this.graphManager.remove(this.compoundOrder[R].getChild()),this.compoundOrder[R].child=null;this.graphManager.resetAllNodes(),this.tileCompoundMembers(k,L)},I.prototype.clearZeroDegreeMembers=function(){var k=this,L=this.tiledZeroDegreePack=[];Object.keys(this.memberGroups).forEach(function(R){var O=k.idToDummyNode[R];if(L[R]=k.tileNodes(k.memberGroups[R],O.paddingLeft+O.paddingRight),O.rect.width=L[R].width,O.rect.height=L[R].height,O.setCenter(L[R].centerX,L[R].centerY),O.labelMarginLeft=0,O.labelMarginTop=0,m.NODE_DIMENSIONS_INCLUDE_LABELS){var M=O.rect.width,B=O.rect.height;O.labelWidth&&(O.labelPosHorizontal=="left"?(O.rect.x-=O.labelWidth,O.setWidth(M+O.labelWidth),O.labelMarginLeft=O.labelWidth):O.labelPosHorizontal=="center"&&O.labelWidth>M?(O.rect.x-=(O.labelWidth-M)/2,O.setWidth(O.labelWidth),O.labelMarginLeft=(O.labelWidth-M)/2):O.labelPosHorizontal=="right"&&O.setWidth(M+O.labelWidth)),O.labelHeight&&(O.labelPosVertical=="top"?(O.rect.y-=O.labelHeight,O.setHeight(B+O.labelHeight),O.labelMarginTop=O.labelHeight):O.labelPosVertical=="center"&&O.labelHeight>B?(O.rect.y-=(O.labelHeight-B)/2,O.setHeight(O.labelHeight),O.labelMarginTop=(O.labelHeight-B)/2):O.labelPosVertical=="bottom"&&O.setHeight(B+O.labelHeight))}})},I.prototype.repopulateCompounds=function(){for(var k=this.compoundOrder.length-1;k>=0;k--){var L=this.compoundOrder[k],R=L.id,O=L.paddingLeft,M=L.paddingTop,B=L.labelMarginLeft,F=L.labelMarginTop;this.adjustLocations(this.tiledMemberPack[R],L.rect.x,L.rect.y,O,M,B,F)}},I.prototype.repopulateZeroDegreeMembers=function(){var k=this,L=this.tiledZeroDegreePack;Object.keys(L).forEach(function(R){var O=k.idToDummyNode[R],M=O.paddingLeft,B=O.paddingTop,F=O.labelMarginLeft,P=O.labelMarginTop;k.adjustLocations(L[R],O.rect.x,O.rect.y,M,B,F,P)})},I.prototype.getToBeTiled=function(k){var L=k.id;if(this.toBeTiled[L]!=null)return this.toBeTiled[L];var R=k.getChild();if(R==null)return this.toBeTiled[L]=!1,!1;for(var O=R.getNodes(),M=0;M<O.length;M++){var B=O[M];if(this.getNodeDegree(B)>0)return this.toBeTiled[L]=!1,!1;if(B.getChild()==null){this.toBeTiled[B.id]=!1;continue}if(!this.getToBeTiled(B))return this.toBeTiled[L]=!1,!1}return this.toBeTiled[L]=!0,!0},I.prototype.getNodeDegree=function(k){for(var L=k.id,R=k.getEdges(),O=0,M=0;M<R.length;M++){var B=R[M];B.getSource().id!==B.getTarget().id&&(O=O+1)}return O},I.prototype.getNodeDegreeWithChildren=function(k){var L=this.getNodeDegree(k);if(k.getChild()==null)return L;for(var R=k.getChild().getNodes(),O=0;O<R.length;O++){var M=R[O];L+=this.getNodeDegreeWithChildren(M)}return L},I.prototype.performDFSOnCompounds=function(){this.compoundOrder=[],this.fillCompexOrderByDFS(this.graphManager.getRoot().getNodes())},I.prototype.fillCompexOrderByDFS=function(k){for(var L=0;L<k.length;L++){var R=k[L];R.getChild()!=null&&this.fillCompexOrderByDFS(R.getChild().getNodes()),this.getToBeTiled(R)&&this.compoundOrder.push(R)}},I.prototype.adjustLocations=function(k,L,R,O,M,B,F){L+=O+B,R+=M+F;for(var P=L,z=0;z<k.rows.length;z++){var $=k.rows[z];L=P;for(var H=0,Q=0;Q<$.length;Q++){var j=$[Q];j.rect.x=L,j.rect.y=R,L+=j.rect.width+k.horizontalPadding,j.rect.height>H&&(H=j.rect.height)}R+=H+k.verticalPadding}},I.prototype.tileCompoundMembers=function(k,L){var R=this;this.tiledMemberPack=[],Object.keys(k).forEach(function(O){var M=L[O];if(R.tiledMemberPack[O]=R.tileNodes(k[O],M.paddingLeft+M.paddingRight),M.rect.width=R.tiledMemberPack[O].width,M.rect.height=R.tiledMemberPack[O].height,M.setCenter(R.tiledMemberPack[O].centerX,R.tiledMemberPack[O].centerY),M.labelMarginLeft=0,M.labelMarginTop=0,m.NODE_DIMENSIONS_INCLUDE_LABELS){var B=M.rect.width,F=M.rect.height;M.labelWidth&&(M.labelPosHorizontal=="left"?(M.rect.x-=M.labelWidth,M.setWidth(B+M.labelWidth),M.labelMarginLeft=M.labelWidth):M.labelPosHorizontal=="center"&&M.labelWidth>B?(M.rect.x-=(M.labelWidth-B)/2,M.setWidth(M.labelWidth),M.labelMarginLeft=(M.labelWidth-B)/2):M.labelPosHorizontal=="right"&&M.setWidth(B+M.labelWidth)),M.labelHeight&&(M.labelPosVertical=="top"?(M.rect.y-=M.labelHeight,M.setHeight(F+M.labelHeight),M.labelMarginTop=M.labelHeight):M.labelPosVertical=="center"&&M.labelHeight>F?(M.rect.y-=(M.labelHeight-F)/2,M.setHeight(M.labelHeight),M.labelMarginTop=(M.labelHeight-F)/2):M.labelPosVertical=="bottom"&&M.setHeight(F+M.labelHeight))}})},I.prototype.tileNodes=function(k,L){var R=this.tileNodesByFavoringDim(k,L,!0),O=this.tileNodesByFavoringDim(k,L,!1),M=this.getOrgRatio(R),B=this.getOrgRatio(O),F;return B<M?F=O:F=R,F},I.prototype.getOrgRatio=function(k){var L=k.width,R=k.height,O=L/R;return O<1&&(O=1/O),O},I.prototype.calcIdealRowWidth=function(k,L){var R=m.TILING_PADDING_VERTICAL,O=m.TILING_PADDING_HORIZONTAL,M=k.length,B=0,F=0,P=0;k.forEach(function(ne){B+=ne.getWidth(),F+=ne.getHeight(),ne.getWidth()>P&&(P=ne.getWidth())});var z=B/M,$=F/M,H=Math.pow(R-O,2)+4*(z+O)*($+R)*M,Q=(O-R+Math.sqrt(H))/(2*(z+O)),j;L?(j=Math.ceil(Q),j==Q&&j++):j=Math.floor(Q);var ie=j*(z+O)-O;return P>ie&&(ie=P),ie+=O*2,ie},I.prototype.tileNodesByFavoringDim=function(k,L,R){var O=m.TILING_PADDING_VERTICAL,M=m.TILING_PADDING_HORIZONTAL,B=m.TILING_COMPARE_BY,F={rows:[],rowWidth:[],rowHeight:[],width:0,height:L,verticalPadding:O,horizontalPadding:M,centerX:0,centerY:0};B&&(F.idealRowWidth=this.calcIdealRowWidth(k,R));var P=o(function(le){return le.rect.width*le.rect.height},"getNodeArea"),z=o(function(le,he){return P(he)-P(le)},"areaCompareFcn");k.sort(function(ne,le){var he=z;return F.idealRowWidth?(he=B,he(ne.id,le.id)):he(ne,le)});for(var $=0,H=0,Q=0;Q<k.length;Q++){var j=k[Q];$+=j.getCenterX(),H+=j.getCenterY()}F.centerX=$/k.length,F.centerY=H/k.length;for(var Q=0;Q<k.length;Q++){var j=k[Q];if(F.rows.length==0)this.insertNodeToRow(F,j,0,L);else if(this.canAddHorizontal(F,j.rect.width,j.rect.height)){var ie=F.rows.length-1;F.idealRowWidth||(ie=this.getShortestRowIndex(F)),this.insertNodeToRow(F,j,ie,L)}else this.insertNodeToRow(F,j,F.rows.length,L);this.shiftToLastRow(F)}return F},I.prototype.insertNodeToRow=function(k,L,R,O){var M=O;if(R==k.rows.length){var B=[];k.rows.push(B),k.rowWidth.push(M),k.rowHeight.push(0)}var F=k.rowWidth[R]+L.rect.width;k.rows[R].length>0&&(F+=k.horizontalPadding),k.rowWidth[R]=F,k.width<F&&(k.width=F);var P=L.rect.height;R>0&&(P+=k.verticalPadding);var z=0;P>k.rowHeight[R]&&(z=k.rowHeight[R],k.rowHeight[R]=P,z=k.rowHeight[R]-z),k.height+=z,k.rows[R].push(L)},I.prototype.getShortestRowIndex=function(k){for(var L=-1,R=Number.MAX_VALUE,O=0;O<k.rows.length;O++)k.rowWidth[O]<R&&(L=O,R=k.rowWidth[O]);return L},I.prototype.getLongestRowIndex=function(k){for(var L=-1,R=Number.MIN_VALUE,O=0;O<k.rows.length;O++)k.rowWidth[O]>R&&(L=O,R=k.rowWidth[O]);return L},I.prototype.canAddHorizontal=function(k,L,R){if(k.idealRowWidth){var O=k.rows.length-1,M=k.rowWidth[O];return M+L+k.horizontalPadding<=k.idealRowWidth}var B=this.getShortestRowIndex(k);if(B<0)return!0;var F=k.rowWidth[B];if(F+k.horizontalPadding+L<=k.width)return!0;var P=0;k.rowHeight[B]<R&&B>0&&(P=R+k.verticalPadding-k.rowHeight[B]);var z;k.width-F>=L+k.horizontalPadding?z=(k.height+P)/(F+L+k.horizontalPadding):z=(k.height+P)/k.width,P=R+k.verticalPadding;var $;return k.width<L?$=(k.height+P)/L:$=(k.height+P)/k.width,$<1&&($=1/$),z<1&&(z=1/z),z<$},I.prototype.shiftToLastRow=function(k){var L=this.getLongestRowIndex(k),R=k.rowWidth.length-1,O=k.rows[L],M=O[O.length-1],B=M.width+k.horizontalPadding;if(k.width-k.rowWidth[R]>B&&L!=R){O.splice(-1,1),k.rows[R].push(M),k.rowWidth[L]=k.rowWidth[L]-B,k.rowWidth[R]=k.rowWidth[R]+B,k.width=k.rowWidth[instance.getLongestRowIndex(k)];for(var F=Number.MIN_VALUE,P=0;P<O.length;P++)O[P].height>F&&(F=O[P].height);L>0&&(F+=k.verticalPadding);var z=k.rowHeight[L]+k.rowHeight[R];k.rowHeight[L]=F,k.rowHeight[R]<M.height+k.verticalPadding&&(k.rowHeight[R]=M.height+k.verticalPadding);var $=k.rowHeight[L]+k.rowHeight[R];k.height+=$-z,this.shiftToLastRow(k)}},I.prototype.tilingPreLayout=function(){m.TILE&&(this.groupZeroDegreeMembers(),this.clearCompounds(),this.clearZeroDegreeMembers())},I.prototype.tilingPostLayout=function(){m.TILE&&(this.repopulateZeroDegreeMembers(),this.repopulateCompounds())},I.prototype.reduceTrees=function(){for(var k=[],L=!0,R;L;){var O=this.graphManager.getAllNodes(),M=[];L=!1;for(var B=0;B<O.length;B++)if(R=O[B],R.getEdges().length==1&&!R.getEdges()[0].isInterGraph&&R.getChild()==null){if(m.PURE_INCREMENTAL){var F=R.getEdges()[0].getOtherEnd(R),P=new w(R.getCenterX()-F.getCenterX(),R.getCenterY()-F.getCenterY());M.push([R,R.getEdges()[0],R.getOwner(),P])}else M.push([R,R.getEdges()[0],R.getOwner()]);L=!0}if(L==!0){for(var z=[],$=0;$<M.length;$++)M[$][0].getEdges().length==1&&(z.push(M[$]),M[$][0].getOwner().remove(M[$][0]));k.push(z),this.graphManager.resetAllNodes(),this.graphManager.resetAllEdges()}}this.prunedNodesAll=k},I.prototype.growTree=function(k){for(var L=k.length,R=k[L-1],O,M=0;M<R.length;M++)O=R[M],this.findPlaceforPrunedNode(O),O[2].add(O[0]),O[2].add(O[1],O[1].source,O[1].target);k.splice(k.length-1,1),this.graphManager.resetAllNodes(),this.graphManager.resetAllEdges()},I.prototype.findPlaceforPrunedNode=function(k){var L,R,O=k[0];if(O==k[1].source?R=k[1].target:R=k[1].source,m.PURE_INCREMENTAL)O.setCenter(R.getCenterX()+k[3].getWidth(),R.getCenterY()+k[3].getHeight());else{var M=R.startX,B=R.finishX,F=R.startY,P=R.finishY,z=0,$=0,H=0,Q=0,j=[z,H,$,Q];if(F>0)for(var ie=M;ie<=B;ie++)j[0]+=this.grid[ie][F-1].length+this.grid[ie][F].length-1;if(B<this.grid.length-1)for(var ie=F;ie<=P;ie++)j[1]+=this.grid[B+1][ie].length+this.grid[B][ie].length-1;if(P<this.grid[0].length-1)for(var ie=M;ie<=B;ie++)j[2]+=this.grid[ie][P+1].length+this.grid[ie][P].length-1;if(M>0)for(var ie=F;ie<=P;ie++)j[3]+=this.grid[M-1][ie].length+this.grid[M][ie].length-1;for(var ne=T.MAX_VALUE,le,he,K=0;K<j.length;K++)j[K]<ne?(ne=j[K],le=1,he=K):j[K]==ne&&le++;if(le==3&&ne==0)j[0]==0&&j[1]==0&&j[2]==0?L=1:j[0]==0&&j[1]==0&&j[3]==0?L=0:j[0]==0&&j[2]==0&&j[3]==0?L=3:j[1]==0&&j[2]==0&&j[3]==0&&(L=2);else if(le==2&&ne==0){var X=Math.floor(Math.random()*2);j[0]==0&&j[1]==0?X==0?L=0:L=1:j[0]==0&&j[2]==0?X==0?L=0:L=2:j[0]==0&&j[3]==0?X==0?L=0:L=3:j[1]==0&&j[2]==0?X==0?L=1:L=2:j[1]==0&&j[3]==0?X==0?L=1:L=3:X==0?L=2:L=3}else if(le==4&&ne==0){var X=Math.floor(Math.random()*4);L=X}else L=he;L==0?O.setCenter(R.getCenterX(),R.getCenterY()-R.getHeight()/2-y.DEFAULT_EDGE_LENGTH-O.getHeight()/2):L==1?O.setCenter(R.getCenterX()+R.getWidth()/2+y.DEFAULT_EDGE_LENGTH+O.getWidth()/2,R.getCenterY()):L==2?O.setCenter(R.getCenterX(),R.getCenterY()+R.getHeight()/2+y.DEFAULT_EDGE_LENGTH+O.getHeight()/2):O.setCenter(R.getCenterX()-R.getWidth()/2-y.DEFAULT_EDGE_LENGTH-O.getWidth()/2,R.getCenterY())}},a.exports=I},991:(a,s,l)=>{var u=l(551).FDLayoutNode,h=l(551).IMath;function f(p,m,g,y){u.call(this,p,m,g,y)}o(f,"CoSENode"),f.prototype=Object.create(u.prototype);for(var d in u)f[d]=u[d];f.prototype.calculateDisplacement=function(){var p=this.graphManager.getLayout();this.getChild()!=null&&this.fixedNodeWeight?(this.displacementX+=p.coolingFactor*(this.springForceX+this.repulsionForceX+this.gravitationForceX)/this.fixedNodeWeight,this.displacementY+=p.coolingFactor*(this.springForceY+this.repulsionForceY+this.gravitationForceY)/this.fixedNodeWeight):(this.displacementX+=p.coolingFactor*(this.springForceX+this.repulsionForceX+this.gravitationForceX)/this.noOfChildren,this.displacementY+=p.coolingFactor*(this.springForceY+this.repulsionForceY+this.gravitationForceY)/this.noOfChildren),Math.abs(this.displacementX)>p.coolingFactor*p.maxNodeDisplacement&&(this.displacementX=p.coolingFactor*p.maxNodeDisplacement*h.sign(this.displacementX)),Math.abs(this.displacementY)>p.coolingFactor*p.maxNodeDisplacement&&(this.displacementY=p.coolingFactor*p.maxNodeDisplacement*h.sign(this.displacementY)),this.child&&this.child.getNodes().length>0&&this.propogateDisplacementToChildren(this.displacementX,this.displacementY)},f.prototype.propogateDisplacementToChildren=function(p,m){for(var g=this.getChild().getNodes(),y,v=0;v<g.length;v++)y=g[v],y.getChild()==null?(y.displacementX+=p,y.displacementY+=m):y.propogateDisplacementToChildren(p,m)},f.prototype.move=function(){var p=this.graphManager.getLayout();(this.child==null||this.child.getNodes().length==0)&&(this.moveBy(this.displacementX,this.displacementY),p.totalDisplacement+=Math.abs(this.displacementX)+Math.abs(this.displacementY)),this.springForceX=0,this.springForceY=0,this.repulsionForceX=0,this.repulsionForceY=0,this.gravitationForceX=0,this.gravitationForceY=0,this.displacementX=0,this.displacementY=0},f.prototype.setPred1=function(p){this.pred1=p},f.prototype.getPred1=function(){return pred1},f.prototype.getPred2=function(){return pred2},f.prototype.setNext=function(p){this.next=p},f.prototype.getNext=function(){return next},f.prototype.setProcessed=function(p){this.processed=p},f.prototype.isProcessed=function(){return processed},a.exports=f},902:(a,s,l)=>{function u(g){if(Array.isArray(g)){for(var y=0,v=Array(g.length);y<g.length;y++)v[y]=g[y];return v}else return Array.from(g)}o(u,"_toConsumableArray");var h=l(806),f=l(551).LinkedList,d=l(551).Matrix,p=l(551).SVD;function m(){}o(m,"ConstraintHandler"),m.handleConstraints=function(g){var y={};y.fixedNodeConstraint=g.constraints.fixedNodeConstraint,y.alignmentConstraint=g.constraints.alignmentConstraint,y.relativePlacementConstraint=g.constraints.relativePlacementConstraint;for(var v=new Map,x=new Map,b=[],w=[],C=g.getAllNodes(),T=0,E=0;E<C.length;E++){var A=C[E];A.getChild()==null&&(x.set(A.id,T++),b.push(A.getCenterX()),w.push(A.getCenterY()),v.set(A.id,A))}y.relativePlacementConstraint&&y.relativePlacementConstraint.forEach(function(oe){!oe.gap&&oe.gap!=0&&(oe.left?oe.gap=h.DEFAULT_EDGE_LENGTH+v.get(oe.left).getWidth()/2+v.get(oe.right).getWidth()/2:oe.gap=h.DEFAULT_EDGE_LENGTH+v.get(oe.top).getHeight()/2+v.get(oe.bottom).getHeight()/2)});var S=o(function(V,xe){return{x:V.x-xe.x,y:V.y-xe.y}},"calculatePositionDiff"),_=o(function(V){var xe=0,q=0;return V.forEach(function(pe){xe+=b[x.get(pe)],q+=w[x.get(pe)]}),{x:xe/V.size,y:q/V.size}},"calculateAvgPosition"),I=o(function(V,xe,q,pe,ve){function Pe(st,Ue){var ct=new Set(st),We=!0,ot=!1,Yt=void 0;try{for(var bt=Ue[Symbol.iterator](),Mt;!(We=(Mt=bt.next()).done);We=!0){var xt=Mt.value;ct.add(xt)}}catch(ut){ot=!0,Yt=ut}finally{try{!We&&bt.return&&bt.return()}finally{if(ot)throw Yt}}return ct}o(Pe,"setUnion");var _e=new Map;V.forEach(function(st,Ue){_e.set(Ue,0)}),V.forEach(function(st,Ue){st.forEach(function(ct){_e.set(ct.id,_e.get(ct.id)+1)})});var we=new Map,Ve=new Map,De=new f;_e.forEach(function(st,Ue){st==0?(De.push(Ue),q||(xe=="horizontal"?we.set(Ue,x.has(Ue)?b[x.get(Ue)]:pe.get(Ue)):we.set(Ue,x.has(Ue)?w[x.get(Ue)]:pe.get(Ue)))):we.set(Ue,Number.NEGATIVE_INFINITY),q&&Ve.set(Ue,new Set([Ue]))}),q&&ve.forEach(function(st){var Ue=[];if(st.forEach(function(ot){q.has(ot)&&Ue.push(ot)}),Ue.length>0){var ct=0;Ue.forEach(function(ot){xe=="horizontal"?(we.set(ot,x.has(ot)?b[x.get(ot)]:pe.get(ot)),ct+=we.get(ot)):(we.set(ot,x.has(ot)?w[x.get(ot)]:pe.get(ot)),ct+=we.get(ot))}),ct=ct/Ue.length,st.forEach(function(ot){q.has(ot)||we.set(ot,ct)})}else{var We=0;st.forEach(function(ot){xe=="horizontal"?We+=x.has(ot)?b[x.get(ot)]:pe.get(ot):We+=x.has(ot)?w[x.get(ot)]:pe.get(ot)}),We=We/st.length,st.forEach(function(ot){we.set(ot,We)})}});for(var qe=o(function(){var Ue=De.shift(),ct=V.get(Ue);ct.forEach(function(We){if(we.get(We.id)<we.get(Ue)+We.gap)if(q&&q.has(We.id)){var ot=void 0;if(xe=="horizontal"?ot=x.has(We.id)?b[x.get(We.id)]:pe.get(We.id):ot=x.has(We.id)?w[x.get(We.id)]:pe.get(We.id),we.set(We.id,ot),ot<we.get(Ue)+We.gap){var Yt=we.get(Ue)+We.gap-ot;Ve.get(Ue).forEach(function(bt){we.set(bt,we.get(bt)-Yt)})}}else we.set(We.id,we.get(Ue)+We.gap);_e.set(We.id,_e.get(We.id)-1),_e.get(We.id)==0&&De.push(We.id),q&&Ve.set(We.id,Pe(Ve.get(Ue),Ve.get(We.id)))})},"_loop");De.length!=0;)qe();if(q){var at=new Set;V.forEach(function(st,Ue){st.length==0&&at.add(Ue)});var Rt=[];Ve.forEach(function(st,Ue){if(at.has(Ue)){var ct=!1,We=!0,ot=!1,Yt=void 0;try{for(var bt=st[Symbol.iterator](),Mt;!(We=(Mt=bt.next()).done);We=!0){var xt=Mt.value;q.has(xt)&&(ct=!0)}}catch(ft){ot=!0,Yt=ft}finally{try{!We&&bt.return&&bt.return()}finally{if(ot)throw Yt}}if(!ct){var ut=!1,Et=void 0;Rt.forEach(function(ft,yt){ft.has([].concat(u(st))[0])&&(ut=!0,Et=yt)}),ut?st.forEach(function(ft){Rt[Et].add(ft)}):Rt.push(new Set(st))}}}),Rt.forEach(function(st,Ue){var ct=Number.POSITIVE_INFINITY,We=Number.POSITIVE_INFINITY,ot=Number.NEGATIVE_INFINITY,Yt=Number.NEGATIVE_INFINITY,bt=!0,Mt=!1,xt=void 0;try{for(var ut=st[Symbol.iterator](),Et;!(bt=(Et=ut.next()).done);bt=!0){var ft=Et.value,yt=void 0;xe=="horizontal"?yt=x.has(ft)?b[x.get(ft)]:pe.get(ft):yt=x.has(ft)?w[x.get(ft)]:pe.get(ft);var nt=we.get(ft);yt<ct&&(ct=yt),yt>ot&&(ot=yt),nt<We&&(We=nt),nt>Yt&&(Yt=nt)}}catch(At){Mt=!0,xt=At}finally{try{!bt&&ut.return&&ut.return()}finally{if(Mt)throw xt}}var dn=(ct+ot)/2-(We+Yt)/2,Tt=!0,On=!1,tn=void 0;try{for(var _r=st[Symbol.iterator](),Dr;!(Tt=(Dr=_r.next()).done);Tt=!0){var Pn=Dr.value;we.set(Pn,we.get(Pn)+dn)}}catch(At){On=!0,tn=At}finally{try{!Tt&&_r.return&&_r.return()}finally{if(On)throw tn}}})}return we},"findAppropriatePositionForRelativePlacement"),D=o(function(V){var xe=0,q=0,pe=0,ve=0;if(V.forEach(function(Ve){Ve.left?b[x.get(Ve.left)]-b[x.get(Ve.right)]>=0?xe++:q++:w[x.get(Ve.top)]-w[x.get(Ve.bottom)]>=0?pe++:ve++}),xe>q&&pe>ve)for(var Pe=0;Pe<x.size;Pe++)b[Pe]=-1*b[Pe],w[Pe]=-1*w[Pe];else if(xe>q)for(var _e=0;_e<x.size;_e++)b[_e]=-1*b[_e];else if(pe>ve)for(var we=0;we<x.size;we++)w[we]=-1*w[we]},"applyReflectionForRelativePlacement"),k=o(function(V){var xe=[],q=new f,pe=new Set,ve=0;return V.forEach(function(Pe,_e){if(!pe.has(_e)){xe[ve]=[];var we=_e;for(q.push(we),pe.add(we),xe[ve].push(we);q.length!=0;){we=q.shift();var Ve=V.get(we);Ve.forEach(function(De){pe.has(De.id)||(q.push(De.id),pe.add(De.id),xe[ve].push(De.id))})}ve++}}),xe},"findComponents"),L=o(function(V){var xe=new Map;return V.forEach(function(q,pe){xe.set(pe,[])}),V.forEach(function(q,pe){q.forEach(function(ve){xe.get(pe).push(ve),xe.get(ve.id).push({id:pe,gap:ve.gap,direction:ve.direction})})}),xe},"dagToUndirected"),R=o(function(V){var xe=new Map;return V.forEach(function(q,pe){xe.set(pe,[])}),V.forEach(function(q,pe){q.forEach(function(ve){xe.get(ve.id).push({id:pe,gap:ve.gap,direction:ve.direction})})}),xe},"dagToReversed"),O=[],M=[],B=!1,F=!1,P=new Set,z=new Map,$=new Map,H=[];if(y.fixedNodeConstraint&&y.fixedNodeConstraint.forEach(function(oe){P.add(oe.nodeId)}),y.relativePlacementConstraint&&(y.relativePlacementConstraint.forEach(function(oe){oe.left?(z.has(oe.left)?z.get(oe.left).push({id:oe.right,gap:oe.gap,direction:"horizontal"}):z.set(oe.left,[{id:oe.right,gap:oe.gap,direction:"horizontal"}]),z.has(oe.right)||z.set(oe.right,[])):(z.has(oe.top)?z.get(oe.top).push({id:oe.bottom,gap:oe.gap,direction:"vertical"}):z.set(oe.top,[{id:oe.bottom,gap:oe.gap,direction:"vertical"}]),z.has(oe.bottom)||z.set(oe.bottom,[]))}),$=L(z),H=k($)),h.TRANSFORM_ON_CONSTRAINT_HANDLING){if(y.fixedNodeConstraint&&y.fixedNodeConstraint.length>1)y.fixedNodeConstraint.forEach(function(oe,V){O[V]=[oe.position.x,oe.position.y],M[V]=[b[x.get(oe.nodeId)],w[x.get(oe.nodeId)]]}),B=!0;else if(y.alignmentConstraint)(function(){var oe=0;if(y.alignmentConstraint.vertical){for(var V=y.alignmentConstraint.vertical,xe=o(function(we){var Ve=new Set;V[we].forEach(function(at){Ve.add(at)});var De=new Set([].concat(u(Ve)).filter(function(at){return P.has(at)})),qe=void 0;De.size>0?qe=b[x.get(De.values().next().value)]:qe=_(Ve).x,V[we].forEach(function(at){O[oe]=[qe,w[x.get(at)]],M[oe]=[b[x.get(at)],w[x.get(at)]],oe++})},"_loop2"),q=0;q<V.length;q++)xe(q);B=!0}if(y.alignmentConstraint.horizontal){for(var pe=y.alignmentConstraint.horizontal,ve=o(function(we){var Ve=new Set;pe[we].forEach(function(at){Ve.add(at)});var De=new Set([].concat(u(Ve)).filter(function(at){return P.has(at)})),qe=void 0;De.size>0?qe=b[x.get(De.values().next().value)]:qe=_(Ve).y,pe[we].forEach(function(at){O[oe]=[b[x.get(at)],qe],M[oe]=[b[x.get(at)],w[x.get(at)]],oe++})},"_loop3"),Pe=0;Pe<pe.length;Pe++)ve(Pe);B=!0}y.relativePlacementConstraint&&(F=!0)})();else if(y.relativePlacementConstraint){for(var Q=0,j=0,ie=0;ie<H.length;ie++)H[ie].length>Q&&(Q=H[ie].length,j=ie);if(Q<$.size/2)D(y.relativePlacementConstraint),B=!1,F=!1;else{var ne=new Map,le=new Map,he=[];H[j].forEach(function(oe){z.get(oe).forEach(function(V){V.direction=="horizontal"?(ne.has(oe)?ne.get(oe).push(V):ne.set(oe,[V]),ne.has(V.id)||ne.set(V.id,[]),he.push({left:oe,right:V.id})):(le.has(oe)?le.get(oe).push(V):le.set(oe,[V]),le.has(V.id)||le.set(V.id,[]),he.push({top:oe,bottom:V.id}))})}),D(he),F=!1;var K=I(ne,"horizontal"),X=I(le,"vertical");H[j].forEach(function(oe,V){M[V]=[b[x.get(oe)],w[x.get(oe)]],O[V]=[],K.has(oe)?O[V][0]=K.get(oe):O[V][0]=b[x.get(oe)],X.has(oe)?O[V][1]=X.get(oe):O[V][1]=w[x.get(oe)]}),B=!0}}if(B){for(var te=void 0,J=d.transpose(O),se=d.transpose(M),ue=0;ue<J.length;ue++)J[ue]=d.multGamma(J[ue]),se[ue]=d.multGamma(se[ue]);var Z=d.multMat(J,d.transpose(se)),Se=p.svd(Z);te=d.multMat(Se.V,d.transpose(Se.U));for(var ce=0;ce<x.size;ce++){var ae=[b[ce],w[ce]],Oe=[te[0][0],te[1][0]],ge=[te[0][1],te[1][1]];b[ce]=d.dotProduct(ae,Oe),w[ce]=d.dotProduct(ae,ge)}F&&D(y.relativePlacementConstraint)}}if(h.ENFORCE_CONSTRAINTS){if(y.fixedNodeConstraint&&y.fixedNodeConstraint.length>0){var ze={x:0,y:0};y.fixedNodeConstraint.forEach(function(oe,V){var xe={x:b[x.get(oe.nodeId)],y:w[x.get(oe.nodeId)]},q=oe.position,pe=S(q,xe);ze.x+=pe.x,ze.y+=pe.y}),ze.x/=y.fixedNodeConstraint.length,ze.y/=y.fixedNodeConstraint.length,b.forEach(function(oe,V){b[V]+=ze.x}),w.forEach(function(oe,V){w[V]+=ze.y}),y.fixedNodeConstraint.forEach(function(oe){b[x.get(oe.nodeId)]=oe.position.x,w[x.get(oe.nodeId)]=oe.position.y})}if(y.alignmentConstraint){if(y.alignmentConstraint.vertical)for(var He=y.alignmentConstraint.vertical,$e=o(function(V){var xe=new Set;He[V].forEach(function(ve){xe.add(ve)});var q=new Set([].concat(u(xe)).filter(function(ve){return P.has(ve)})),pe=void 0;q.size>0?pe=b[x.get(q.values().next().value)]:pe=_(xe).x,xe.forEach(function(ve){P.has(ve)||(b[x.get(ve)]=pe)})},"_loop4"),Re=0;Re<He.length;Re++)$e(Re);if(y.alignmentConstraint.horizontal)for(var Ie=y.alignmentConstraint.horizontal,be=o(function(V){var xe=new Set;Ie[V].forEach(function(ve){xe.add(ve)});var q=new Set([].concat(u(xe)).filter(function(ve){return P.has(ve)})),pe=void 0;q.size>0?pe=w[x.get(q.values().next().value)]:pe=_(xe).y,xe.forEach(function(ve){P.has(ve)||(w[x.get(ve)]=pe)})},"_loop5"),W=0;W<Ie.length;W++)be(W)}y.relativePlacementConstraint&&function(){var oe=new Map,V=new Map,xe=new Map,q=new Map,pe=new Map,ve=new Map,Pe=new Set,_e=new Set;if(P.forEach(function(Hr){Pe.add(Hr),_e.add(Hr)}),y.alignmentConstraint){if(y.alignmentConstraint.vertical)for(var we=y.alignmentConstraint.vertical,Ve=o(function(et){xe.set("dummy"+et,[]),we[et].forEach(function(mt){oe.set(mt,"dummy"+et),xe.get("dummy"+et).push(mt),P.has(mt)&&Pe.add("dummy"+et)}),pe.set("dummy"+et,b[x.get(we[et][0])])},"_loop6"),De=0;De<we.length;De++)Ve(De);if(y.alignmentConstraint.horizontal)for(var qe=y.alignmentConstraint.horizontal,at=o(function(et){q.set("dummy"+et,[]),qe[et].forEach(function(mt){V.set(mt,"dummy"+et),q.get("dummy"+et).push(mt),P.has(mt)&&_e.add("dummy"+et)}),ve.set("dummy"+et,w[x.get(qe[et][0])])},"_loop7"),Rt=0;Rt<qe.length;Rt++)at(Rt)}var st=new Map,Ue=new Map,ct=o(function(et){z.get(et).forEach(function(mt){var Kt=void 0,lt=void 0;mt.direction=="horizontal"?(Kt=oe.get(et)?oe.get(et):et,oe.get(mt.id)?lt={id:oe.get(mt.id),gap:mt.gap,direction:mt.direction}:lt=mt,st.has(Kt)?st.get(Kt).push(lt):st.set(Kt,[lt]),st.has(lt.id)||st.set(lt.id,[])):(Kt=V.get(et)?V.get(et):et,V.get(mt.id)?lt={id:V.get(mt.id),gap:mt.gap,direction:mt.direction}:lt=mt,Ue.has(Kt)?Ue.get(Kt).push(lt):Ue.set(Kt,[lt]),Ue.has(lt.id)||Ue.set(lt.id,[]))})},"_loop8"),We=!0,ot=!1,Yt=void 0;try{for(var bt=z.keys()[Symbol.iterator](),Mt;!(We=(Mt=bt.next()).done);We=!0){var xt=Mt.value;ct(xt)}}catch(Hr){ot=!0,Yt=Hr}finally{try{!We&&bt.return&&bt.return()}finally{if(ot)throw Yt}}var ut=L(st),Et=L(Ue),ft=k(ut),yt=k(Et),nt=R(st),dn=R(Ue),Tt=[],On=[];ft.forEach(function(Hr,et){Tt[et]=[],Hr.forEach(function(mt){nt.get(mt).length==0&&Tt[et].push(mt)})}),yt.forEach(function(Hr,et){On[et]=[],Hr.forEach(function(mt){dn.get(mt).length==0&&On[et].push(mt)})});var tn=I(st,"horizontal",Pe,pe,Tt),_r=I(Ue,"vertical",_e,ve,On),Dr=o(function(et){xe.get(et)?xe.get(et).forEach(function(mt){b[x.get(mt)]=tn.get(et)}):b[x.get(et)]=tn.get(et)},"_loop9"),Pn=!0,At=!1,Ce=void 0;try{for(var tt=tn.keys()[Symbol.iterator](),St;!(Pn=(St=tt.next()).done);Pn=!0){var mr=St.value;Dr(mr)}}catch(Hr){At=!0,Ce=Hr}finally{try{!Pn&&tt.return&&tt.return()}finally{if(At)throw Ce}}var rn=o(function(et){q.get(et)?q.get(et).forEach(function(mt){w[x.get(mt)]=_r.get(et)}):w[x.get(et)]=_r.get(et)},"_loop10"),gn=!0,Zr=!1,Ni=void 0;try{for(var Zn=_r.keys()[Symbol.iterator](),Sn;!(gn=(Sn=Zn.next()).done);gn=!0){var mr=Sn.value;rn(mr)}}catch(Hr){Zr=!0,Ni=Hr}finally{try{!gn&&Zn.return&&Zn.return()}finally{if(Zr)throw Ni}}}()}for(var de=0;de<C.length;de++){var re=C[de];re.getChild()==null&&re.setCenter(b[x.get(re.id)],w[x.get(re.id)])}},a.exports=m},551:a=>{a.exports=t}},r={};function n(a){var s=r[a];if(s!==void 0)return s.exports;var l=r[a]={exports:{}};return e[a](l,l.exports,n),l.exports}o(n,"__webpack_require__");var i=n(45);return i})()})});var Pve=Mi((E4,gF)=>{"use strict";o(function(e,r){typeof E4=="object"&&typeof gF=="object"?gF.exports=r(mF()):typeof define=="function"&&define.amd?define(["cose-base"],r):typeof E4=="object"?E4.cytoscapeFcose=r(mF()):e.cytoscapeFcose=r(e.coseBase)},"webpackUniversalModuleDefinition")(E4,function(t){return(()=>{"use strict";var e={658:a=>{a.exports=Object.assign!=null?Object.assign.bind(Object):function(s){for(var l=arguments.length,u=Array(l>1?l-1:0),h=1;h<l;h++)u[h-1]=arguments[h];return u.forEach(function(f){Object.keys(f).forEach(function(d){return s[d]=f[d]})}),s}},548:(a,s,l)=>{var u=function(){function d(p,m){var g=[],y=!0,v=!1,x=void 0;try{for(var b=p[Symbol.iterator](),w;!(y=(w=b.next()).done)&&(g.push(w.value),!(m&&g.length===m));y=!0);}catch(C){v=!0,x=C}finally{try{!y&&b.return&&b.return()}finally{if(v)throw x}}return g}return o(d,"sliceIterator"),function(p,m){if(Array.isArray(p))return p;if(Symbol.iterator in Object(p))return d(p,m);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),h=l(140).layoutBase.LinkedList,f={};f.getTopMostNodes=function(d){for(var p={},m=0;m<d.length;m++)p[d[m].id()]=!0;var g=d.filter(function(y,v){typeof y=="number"&&(y=v);for(var x=y.parent()[0];x!=null;){if(p[x.id()])return!1;x=x.parent()[0]}return!0});return g},f.connectComponents=function(d,p,m,g){var y=new h,v=new Set,x=[],b=void 0,w=void 0,C=void 0,T=!1,E=1,A=[],S=[],_=o(function(){var D=d.collection();S.push(D);var k=m[0],L=d.collection();L.merge(k).merge(k.descendants().intersection(p)),x.push(k),L.forEach(function(M){y.push(M),v.add(M),D.merge(M)});for(var R=o(function(){k=y.shift();var B=d.collection();k.neighborhood().nodes().forEach(function($){p.intersection(k.edgesWith($)).length>0&&B.merge($)});for(var F=0;F<B.length;F++){var P=B[F];if(b=m.intersection(P.union(P.ancestors())),b!=null&&!v.has(b[0])){var z=b.union(b.descendants());z.forEach(function($){y.push($),v.add($),D.merge($),m.has($)&&x.push($)})}}},"_loop2");y.length!=0;)R();if(D.forEach(function(M){p.intersection(M.connectedEdges()).forEach(function(B){D.has(B.source())&&D.has(B.target())&&D.merge(B)})}),x.length==m.length&&(T=!0),!T||T&&E>1){w=x[0],C=w.connectedEdges().length,x.forEach(function(M){M.connectedEdges().length<C&&(C=M.connectedEdges().length,w=M)}),A.push(w.id());var O=d.collection();O.merge(x[0]),x.forEach(function(M){O.merge(M)}),x=[],m=m.difference(O),E++}},"_loop");do _();while(!T);return g&&A.length>0&&g.set("dummy"+(g.size+1),A),S},f.relocateComponent=function(d,p,m){if(!m.fixedNodeConstraint){var g=Number.POSITIVE_INFINITY,y=Number.NEGATIVE_INFINITY,v=Number.POSITIVE_INFINITY,x=Number.NEGATIVE_INFINITY;if(m.quality=="draft"){var b=!0,w=!1,C=void 0;try{for(var T=p.nodeIndexes[Symbol.iterator](),E;!(b=(E=T.next()).done);b=!0){var A=E.value,S=u(A,2),_=S[0],I=S[1],D=m.cy.getElementById(_);if(D){var k=D.boundingBox(),L=p.xCoords[I]-k.w/2,R=p.xCoords[I]+k.w/2,O=p.yCoords[I]-k.h/2,M=p.yCoords[I]+k.h/2;L<g&&(g=L),R>y&&(y=R),O<v&&(v=O),M>x&&(x=M)}}}catch($){w=!0,C=$}finally{try{!b&&T.return&&T.return()}finally{if(w)throw C}}var B=d.x-(y+g)/2,F=d.y-(x+v)/2;p.xCoords=p.xCoords.map(function($){return $+B}),p.yCoords=p.yCoords.map(function($){return $+F})}else{Object.keys(p).forEach(function($){var H=p[$],Q=H.getRect().x,j=H.getRect().x+H.getRect().width,ie=H.getRect().y,ne=H.getRect().y+H.getRect().height;Q<g&&(g=Q),j>y&&(y=j),ie<v&&(v=ie),ne>x&&(x=ne)});var P=d.x-(y+g)/2,z=d.y-(x+v)/2;Object.keys(p).forEach(function($){var H=p[$];H.setCenter(H.getCenterX()+P,H.getCenterY()+z)})}}},f.calcBoundingBox=function(d,p,m,g){for(var y=Number.MAX_SAFE_INTEGER,v=Number.MIN_SAFE_INTEGER,x=Number.MAX_SAFE_INTEGER,b=Number.MIN_SAFE_INTEGER,w=void 0,C=void 0,T=void 0,E=void 0,A=d.descendants().not(":parent"),S=A.length,_=0;_<S;_++){var I=A[_];w=p[g.get(I.id())]-I.width()/2,C=p[g.get(I.id())]+I.width()/2,T=m[g.get(I.id())]-I.height()/2,E=m[g.get(I.id())]+I.height()/2,y>w&&(y=w),v<C&&(v=C),x>T&&(x=T),b<E&&(b=E)}var D={};return D.topLeftX=y,D.topLeftY=x,D.width=v-y,D.height=b-x,D},f.calcParentsWithoutChildren=function(d,p){var m=d.collection();return p.nodes(":parent").forEach(function(g){var y=!1;g.children().forEach(function(v){v.css("display")!="none"&&(y=!0)}),y||m.merge(g)}),m},a.exports=f},816:(a,s,l)=>{var u=l(548),h=l(140).CoSELayout,f=l(140).CoSENode,d=l(140).layoutBase.PointD,p=l(140).layoutBase.DimensionD,m=l(140).layoutBase.LayoutConstants,g=l(140).layoutBase.FDLayoutConstants,y=l(140).CoSEConstants,v=o(function(b,w){var C=b.cy,T=b.eles,E=T.nodes(),A=T.edges(),S=void 0,_=void 0,I=void 0,D={};b.randomize&&(S=w.nodeIndexes,_=w.xCoords,I=w.yCoords);var k=o(function($){return typeof $=="function"},"isFn"),L=o(function($,H){return k($)?$(H):$},"optFn"),R=u.calcParentsWithoutChildren(C,T),O=o(function z($,H,Q,j){for(var ie=H.length,ne=0;ne<ie;ne++){var le=H[ne],he=null;le.intersection(R).length==0&&(he=le.children());var K=void 0,X=le.layoutDimensions({nodeDimensionsIncludeLabels:j.nodeDimensionsIncludeLabels});if(le.outerWidth()!=null&&le.outerHeight()!=null)if(j.randomize)if(!le.isParent())K=$.add(new f(Q.graphManager,new d(_[S.get(le.id())]-X.w/2,I[S.get(le.id())]-X.h/2),new p(parseFloat(X.w),parseFloat(X.h))));else{var te=u.calcBoundingBox(le,_,I,S);le.intersection(R).length==0?K=$.add(new f(Q.graphManager,new d(te.topLeftX,te.topLeftY),new p(te.width,te.height))):K=$.add(new f(Q.graphManager,new d(te.topLeftX,te.topLeftY),new p(parseFloat(X.w),parseFloat(X.h))))}else K=$.add(new f(Q.graphManager,new d(le.position("x")-X.w/2,le.position("y")-X.h/2),new p(parseFloat(X.w),parseFloat(X.h))));else K=$.add(new f(this.graphManager));if(K.id=le.data("id"),K.nodeRepulsion=L(j.nodeRepulsion,le),K.paddingLeft=parseInt(le.css("padding")),K.paddingTop=parseInt(le.css("padding")),K.paddingRight=parseInt(le.css("padding")),K.paddingBottom=parseInt(le.css("padding")),j.nodeDimensionsIncludeLabels&&(K.labelWidth=le.boundingBox({includeLabels:!0,includeNodes:!1,includeOverlays:!1}).w,K.labelHeight=le.boundingBox({includeLabels:!0,includeNodes:!1,includeOverlays:!1}).h,K.labelPosVertical=le.css("text-valign"),K.labelPosHorizontal=le.css("text-halign")),D[le.data("id")]=K,isNaN(K.rect.x)&&(K.rect.x=0),isNaN(K.rect.y)&&(K.rect.y=0),he!=null&&he.length>0){var J=void 0;J=Q.getGraphManager().add(Q.newGraph(),K),z(J,he,Q,j)}}},"processChildrenList"),M=o(function($,H,Q){for(var j=0,ie=0,ne=0;ne<Q.length;ne++){var le=Q[ne],he=D[le.data("source")],K=D[le.data("target")];if(he&&K&&he!==K&&he.getEdgesBetween(K).length==0){var X=H.add($.newEdge(),he,K);X.id=le.id(),X.idealLength=L(b.idealEdgeLength,le),X.edgeElasticity=L(b.edgeElasticity,le),j+=X.idealLength,ie++}}b.idealEdgeLength!=null&&(ie>0?y.DEFAULT_EDGE_LENGTH=g.DEFAULT_EDGE_LENGTH=j/ie:k(b.idealEdgeLength)?y.DEFAULT_EDGE_LENGTH=g.DEFAULT_EDGE_LENGTH=50:y.DEFAULT_EDGE_LENGTH=g.DEFAULT_EDGE_LENGTH=b.idealEdgeLength,y.MIN_REPULSION_DIST=g.MIN_REPULSION_DIST=g.DEFAULT_EDGE_LENGTH/10,y.DEFAULT_RADIAL_SEPARATION=g.DEFAULT_EDGE_LENGTH)},"processEdges"),B=o(function($,H){H.fixedNodeConstraint&&($.constraints.fixedNodeConstraint=H.fixedNodeConstraint),H.alignmentConstraint&&($.constraints.alignmentConstraint=H.alignmentConstraint),H.relativePlacementConstraint&&($.constraints.relativePlacementConstraint=H.relativePlacementConstraint)},"processConstraints");b.nestingFactor!=null&&(y.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=g.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=b.nestingFactor),b.gravity!=null&&(y.DEFAULT_GRAVITY_STRENGTH=g.DEFAULT_GRAVITY_STRENGTH=b.gravity),b.numIter!=null&&(y.MAX_ITERATIONS=g.MAX_ITERATIONS=b.numIter),b.gravityRange!=null&&(y.DEFAULT_GRAVITY_RANGE_FACTOR=g.DEFAULT_GRAVITY_RANGE_FACTOR=b.gravityRange),b.gravityCompound!=null&&(y.DEFAULT_COMPOUND_GRAVITY_STRENGTH=g.DEFAULT_COMPOUND_GRAVITY_STRENGTH=b.gravityCompound),b.gravityRangeCompound!=null&&(y.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=g.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=b.gravityRangeCompound),b.initialEnergyOnIncremental!=null&&(y.DEFAULT_COOLING_FACTOR_INCREMENTAL=g.DEFAULT_COOLING_FACTOR_INCREMENTAL=b.initialEnergyOnIncremental),b.tilingCompareBy!=null&&(y.TILING_COMPARE_BY=b.tilingCompareBy),b.quality=="proof"?m.QUALITY=2:m.QUALITY=0,y.NODE_DIMENSIONS_INCLUDE_LABELS=g.NODE_DIMENSIONS_INCLUDE_LABELS=m.NODE_DIMENSIONS_INCLUDE_LABELS=b.nodeDimensionsIncludeLabels,y.DEFAULT_INCREMENTAL=g.DEFAULT_INCREMENTAL=m.DEFAULT_INCREMENTAL=!b.randomize,y.ANIMATE=g.ANIMATE=m.ANIMATE=b.animate,y.TILE=b.tile,y.TILING_PADDING_VERTICAL=typeof b.tilingPaddingVertical=="function"?b.tilingPaddingVertical.call():b.tilingPaddingVertical,y.TILING_PADDING_HORIZONTAL=typeof b.tilingPaddingHorizontal=="function"?b.tilingPaddingHorizontal.call():b.tilingPaddingHorizontal,y.DEFAULT_INCREMENTAL=g.DEFAULT_INCREMENTAL=m.DEFAULT_INCREMENTAL=!0,y.PURE_INCREMENTAL=!b.randomize,m.DEFAULT_UNIFORM_LEAF_NODE_SIZES=b.uniformNodeDimensions,b.step=="transformed"&&(y.TRANSFORM_ON_CONSTRAINT_HANDLING=!0,y.ENFORCE_CONSTRAINTS=!1,y.APPLY_LAYOUT=!1),b.step=="enforced"&&(y.TRANSFORM_ON_CONSTRAINT_HANDLING=!1,y.ENFORCE_CONSTRAINTS=!0,y.APPLY_LAYOUT=!1),b.step=="cose"&&(y.TRANSFORM_ON_CONSTRAINT_HANDLING=!1,y.ENFORCE_CONSTRAINTS=!1,y.APPLY_LAYOUT=!0),b.step=="all"&&(b.randomize?y.TRANSFORM_ON_CONSTRAINT_HANDLING=!0:y.TRANSFORM_ON_CONSTRAINT_HANDLING=!1,y.ENFORCE_CONSTRAINTS=!0,y.APPLY_LAYOUT=!0),b.fixedNodeConstraint||b.alignmentConstraint||b.relativePlacementConstraint?y.TREE_REDUCTION_ON_INCREMENTAL=!1:y.TREE_REDUCTION_ON_INCREMENTAL=!0;var F=new h,P=F.newGraphManager();return O(P.addRoot(),u.getTopMostNodes(E),F,b),M(F,P,A),B(F,b),F.runLayout(),D},"coseLayout");a.exports={coseLayout:v}},212:(a,s,l)=>{var u=function(){function b(w,C){for(var T=0;T<C.length;T++){var E=C[T];E.enumerable=E.enumerable||!1,E.configurable=!0,"value"in E&&(E.writable=!0),Object.defineProperty(w,E.key,E)}}return o(b,"defineProperties"),function(w,C,T){return C&&b(w.prototype,C),T&&b(w,T),w}}();function h(b,w){if(!(b instanceof w))throw new TypeError("Cannot call a class as a function")}o(h,"_classCallCheck");var f=l(658),d=l(548),p=l(657),m=p.spectralLayout,g=l(816),y=g.coseLayout,v=Object.freeze({quality:"default",randomize:!0,animate:!0,animationDuration:1e3,animationEasing:void 0,fit:!0,padding:30,nodeDimensionsIncludeLabels:!1,uniformNodeDimensions:!1,packComponents:!0,step:"all",samplingType:!0,sampleSize:25,nodeSeparation:75,piTol:1e-7,nodeRepulsion:o(function(w){return 4500},"nodeRepulsion"),idealEdgeLength:o(function(w){return 50},"idealEdgeLength"),edgeElasticity:o(function(w){return .45},"edgeElasticity"),nestingFactor:.1,gravity:.25,numIter:2500,tile:!0,tilingCompareBy:void 0,tilingPaddingVertical:10,tilingPaddingHorizontal:10,gravityRangeCompound:1.5,gravityCompound:1,gravityRange:3.8,initialEnergyOnIncremental:.3,fixedNodeConstraint:void 0,alignmentConstraint:void 0,relativePlacementConstraint:void 0,ready:o(function(){},"ready"),stop:o(function(){},"stop")}),x=function(){function b(w){h(this,b),this.options=f({},v,w)}return o(b,"Layout"),u(b,[{key:"run",value:o(function(){var C=this,T=this.options,E=T.cy,A=T.eles,S=[],_=void 0,I=void 0,D=[],k=void 0,L=[];T.fixedNodeConstraint&&(!Array.isArray(T.fixedNodeConstraint)||T.fixedNodeConstraint.length==0)&&(T.fixedNodeConstraint=void 0),T.alignmentConstraint&&(T.alignmentConstraint.vertical&&(!Array.isArray(T.alignmentConstraint.vertical)||T.alignmentConstraint.vertical.length==0)&&(T.alignmentConstraint.vertical=void 0),T.alignmentConstraint.horizontal&&(!Array.isArray(T.alignmentConstraint.horizontal)||T.alignmentConstraint.horizontal.length==0)&&(T.alignmentConstraint.horizontal=void 0)),T.relativePlacementConstraint&&(!Array.isArray(T.relativePlacementConstraint)||T.relativePlacementConstraint.length==0)&&(T.relativePlacementConstraint=void 0);var R=T.fixedNodeConstraint||T.alignmentConstraint||T.relativePlacementConstraint;R&&(T.tile=!1,T.packComponents=!1);var O=void 0,M=!1;if(E.layoutUtilities&&T.packComponents&&(O=E.layoutUtilities("get"),O||(O=E.layoutUtilities()),M=!0),A.nodes().length>0)if(M){var P=d.getTopMostNodes(T.eles.nodes());if(k=d.connectComponents(E,T.eles,P),k.forEach(function(ce){var ae=ce.boundingBox();L.push({x:ae.x1+ae.w/2,y:ae.y1+ae.h/2})}),T.randomize&&k.forEach(function(ce){T.eles=ce,S.push(m(T))}),T.quality=="default"||T.quality=="proof"){var z=E.collection();if(T.tile){var $=new Map,H=[],Q=[],j=0,ie={nodeIndexes:$,xCoords:H,yCoords:Q},ne=[];if(k.forEach(function(ce,ae){ce.edges().length==0&&(ce.nodes().forEach(function(Oe,ge){z.merge(ce.nodes()[ge]),Oe.isParent()||(ie.nodeIndexes.set(ce.nodes()[ge].id(),j++),ie.xCoords.push(ce.nodes()[0].position().x),ie.yCoords.push(ce.nodes()[0].position().y))}),ne.push(ae))}),z.length>1){var le=z.boundingBox();L.push({x:le.x1+le.w/2,y:le.y1+le.h/2}),k.push(z),S.push(ie);for(var he=ne.length-1;he>=0;he--)k.splice(ne[he],1),S.splice(ne[he],1),L.splice(ne[he],1)}}k.forEach(function(ce,ae){T.eles=ce,D.push(y(T,S[ae])),d.relocateComponent(L[ae],D[ae],T)})}else k.forEach(function(ce,ae){d.relocateComponent(L[ae],S[ae],T)});var K=new Set;if(k.length>1){var X=[],te=A.filter(function(ce){return ce.css("display")=="none"});k.forEach(function(ce,ae){var Oe=void 0;if(T.quality=="draft"&&(Oe=S[ae].nodeIndexes),ce.nodes().not(te).length>0){var ge={};ge.edges=[],ge.nodes=[];var ze=void 0;ce.nodes().not(te).forEach(function(He){if(T.quality=="draft")if(!He.isParent())ze=Oe.get(He.id()),ge.nodes.push({x:S[ae].xCoords[ze]-He.boundingbox().w/2,y:S[ae].yCoords[ze]-He.boundingbox().h/2,width:He.boundingbox().w,height:He.boundingbox().h});else{var $e=d.calcBoundingBox(He,S[ae].xCoords,S[ae].yCoords,Oe);ge.nodes.push({x:$e.topLeftX,y:$e.topLeftY,width:$e.width,height:$e.height})}else D[ae][He.id()]&&ge.nodes.push({x:D[ae][He.id()].getLeft(),y:D[ae][He.id()].getTop(),width:D[ae][He.id()].getWidth(),height:D[ae][He.id()].getHeight()})}),ce.edges().forEach(function(He){var $e=He.source(),Re=He.target();if($e.css("display")!="none"&&Re.css("display")!="none")if(T.quality=="draft"){var Ie=Oe.get($e.id()),be=Oe.get(Re.id()),W=[],de=[];if($e.isParent()){var re=d.calcBoundingBox($e,S[ae].xCoords,S[ae].yCoords,Oe);W.push(re.topLeftX+re.width/2),W.push(re.topLeftY+re.height/2)}else W.push(S[ae].xCoords[Ie]),W.push(S[ae].yCoords[Ie]);if(Re.isParent()){var oe=d.calcBoundingBox(Re,S[ae].xCoords,S[ae].yCoords,Oe);de.push(oe.topLeftX+oe.width/2),de.push(oe.topLeftY+oe.height/2)}else de.push(S[ae].xCoords[be]),de.push(S[ae].yCoords[be]);ge.edges.push({startX:W[0],startY:W[1],endX:de[0],endY:de[1]})}else D[ae][$e.id()]&&D[ae][Re.id()]&&ge.edges.push({startX:D[ae][$e.id()].getCenterX(),startY:D[ae][$e.id()].getCenterY(),endX:D[ae][Re.id()].getCenterX(),endY:D[ae][Re.id()].getCenterY()})}),ge.nodes.length>0&&(X.push(ge),K.add(ae))}});var J=O.packComponents(X,T.randomize).shifts;if(T.quality=="draft")S.forEach(function(ce,ae){var Oe=ce.xCoords.map(function(ze){return ze+J[ae].dx}),ge=ce.yCoords.map(function(ze){return ze+J[ae].dy});ce.xCoords=Oe,ce.yCoords=ge});else{var se=0;K.forEach(function(ce){Object.keys(D[ce]).forEach(function(ae){var Oe=D[ce][ae];Oe.setCenter(Oe.getCenterX()+J[se].dx,Oe.getCenterY()+J[se].dy)}),se++})}}}else{var B=T.eles.boundingBox();if(L.push({x:B.x1+B.w/2,y:B.y1+B.h/2}),T.randomize){var F=m(T);S.push(F)}T.quality=="default"||T.quality=="proof"?(D.push(y(T,S[0])),d.relocateComponent(L[0],D[0],T)):d.relocateComponent(L[0],S[0],T)}var ue=o(function(ae,Oe){if(T.quality=="default"||T.quality=="proof"){typeof ae=="number"&&(ae=Oe);var ge=void 0,ze=void 0,He=ae.data("id");return D.forEach(function(Re){He in Re&&(ge={x:Re[He].getRect().getCenterX(),y:Re[He].getRect().getCenterY()},ze=Re[He])}),T.nodeDimensionsIncludeLabels&&(ze.labelWidth&&(ze.labelPosHorizontal=="left"?ge.x+=ze.labelWidth/2:ze.labelPosHorizontal=="right"&&(ge.x-=ze.labelWidth/2)),ze.labelHeight&&(ze.labelPosVertical=="top"?ge.y+=ze.labelHeight/2:ze.labelPosVertical=="bottom"&&(ge.y-=ze.labelHeight/2))),ge==null&&(ge={x:ae.position("x"),y:ae.position("y")}),{x:ge.x,y:ge.y}}else{var $e=void 0;return S.forEach(function(Re){var Ie=Re.nodeIndexes.get(ae.id());Ie!=null&&($e={x:Re.xCoords[Ie],y:Re.yCoords[Ie]})}),$e==null&&($e={x:ae.position("x"),y:ae.position("y")}),{x:$e.x,y:$e.y}}},"getPositions");if(T.quality=="default"||T.quality=="proof"||T.randomize){var Z=d.calcParentsWithoutChildren(E,A),Se=A.filter(function(ce){return ce.css("display")=="none"});T.eles=A.not(Se),A.nodes().not(":parent").not(Se).layoutPositions(C,T,ue),Z.length>0&&Z.forEach(function(ce){ce.position(ue(ce))})}else console.log("If randomize option is set to false, then quality option must be 'default' or 'proof'.")},"run")}]),b}();a.exports=x},657:(a,s,l)=>{var u=l(548),h=l(140).layoutBase.Matrix,f=l(140).layoutBase.SVD,d=o(function(m){var g=m.cy,y=m.eles,v=y.nodes(),x=y.nodes(":parent"),b=new Map,w=new Map,C=new Map,T=[],E=[],A=[],S=[],_=[],I=[],D=[],k=[],L=void 0,R=void 0,O=1e8,M=1e-9,B=m.piTol,F=m.samplingType,P=m.nodeSeparation,z=void 0,$=o(function(){for(var xe=0,q=0,pe=!1;q<z;){xe=Math.floor(Math.random()*R),pe=!1;for(var ve=0;ve<q;ve++)if(S[ve]==xe){pe=!0;break}if(!pe)S[q]=xe,q++;else continue}},"randomSampleCR"),H=o(function(xe,q,pe){for(var ve=[],Pe=0,_e=0,we=0,Ve=void 0,De=[],qe=0,at=1,Rt=0;Rt<R;Rt++)De[Rt]=O;for(ve[_e]=xe,De[xe]=0;_e>=Pe;){we=ve[Pe++];for(var st=T[we],Ue=0;Ue<st.length;Ue++)Ve=w.get(st[Ue]),De[Ve]==O&&(De[Ve]=De[we]+1,ve[++_e]=Ve);I[we][q]=De[we]*P}if(pe){for(var ct=0;ct<R;ct++)I[ct][q]<_[ct]&&(_[ct]=I[ct][q]);for(var We=0;We<R;We++)_[We]>qe&&(qe=_[We],at=We)}return at},"BFS"),Q=o(function(xe){var q=void 0;if(xe){q=Math.floor(Math.random()*R),L=q;for(var ve=0;ve<R;ve++)_[ve]=O;for(var Pe=0;Pe<z;Pe++)S[Pe]=q,q=H(q,Pe,xe)}else{$();for(var pe=0;pe<z;pe++)H(S[pe],pe,xe,!1)}for(var _e=0;_e<R;_e++)for(var we=0;we<z;we++)I[_e][we]*=I[_e][we];for(var Ve=0;Ve<z;Ve++)D[Ve]=[];for(var De=0;De<z;De++)for(var qe=0;qe<z;qe++)D[De][qe]=I[S[qe]][De]},"allBFS"),j=o(function(){for(var xe=f.svd(D),q=xe.S,pe=xe.U,ve=xe.V,Pe=q[0]*q[0]*q[0],_e=[],we=0;we<z;we++){_e[we]=[];for(var Ve=0;Ve<z;Ve++)_e[we][Ve]=0,we==Ve&&(_e[we][Ve]=q[we]/(q[we]*q[we]+Pe/(q[we]*q[we])))}k=h.multMat(h.multMat(ve,_e),h.transpose(pe))},"sample"),ie=o(function(){for(var xe=void 0,q=void 0,pe=[],ve=[],Pe=[],_e=[],we=0;we<R;we++)pe[we]=Math.random(),ve[we]=Math.random();pe=h.normalize(pe),ve=h.normalize(ve);for(var Ve=0,De=M,qe=M,at=void 0;;){Ve++;for(var Rt=0;Rt<R;Rt++)Pe[Rt]=pe[Rt];if(pe=h.multGamma(h.multL(h.multGamma(Pe),I,k)),xe=h.dotProduct(Pe,pe),pe=h.normalize(pe),De=h.dotProduct(Pe,pe),at=Math.abs(De/qe),at<=1+B&&at>=1)break;qe=De}for(var st=0;st<R;st++)Pe[st]=pe[st];for(Ve=0,qe=M;;){Ve++;for(var Ue=0;Ue<R;Ue++)_e[Ue]=ve[Ue];if(_e=h.minusOp(_e,h.multCons(Pe,h.dotProduct(Pe,_e))),ve=h.multGamma(h.multL(h.multGamma(_e),I,k)),q=h.dotProduct(_e,ve),ve=h.normalize(ve),De=h.dotProduct(_e,ve),at=Math.abs(De/qe),at<=1+B&&at>=1)break;qe=De}for(var ct=0;ct<R;ct++)_e[ct]=ve[ct];E=h.multCons(Pe,Math.sqrt(Math.abs(xe))),A=h.multCons(_e,Math.sqrt(Math.abs(q)))},"powerIteration");u.connectComponents(g,y,u.getTopMostNodes(v),b),x.forEach(function(V){u.connectComponents(g,y,u.getTopMostNodes(V.descendants().intersection(y)),b)});for(var ne=0,le=0;le<v.length;le++)v[le].isParent()||w.set(v[le].id(),ne++);var he=!0,K=!1,X=void 0;try{for(var te=b.keys()[Symbol.iterator](),J;!(he=(J=te.next()).done);he=!0){var se=J.value;w.set(se,ne++)}}catch(V){K=!0,X=V}finally{try{!he&&te.return&&te.return()}finally{if(K)throw X}}for(var ue=0;ue<w.size;ue++)T[ue]=[];x.forEach(function(V){for(var xe=V.children().intersection(y);xe.nodes(":childless").length==0;)xe=xe.nodes()[0].children().intersection(y);var q=0,pe=xe.nodes(":childless")[0].connectedEdges().length;xe.nodes(":childless").forEach(function(ve,Pe){ve.connectedEdges().length<pe&&(pe=ve.connectedEdges().length,q=Pe)}),C.set(V.id(),xe.nodes(":childless")[q].id())}),v.forEach(function(V){var xe=void 0;V.isParent()?xe=w.get(C.get(V.id())):xe=w.get(V.id()),V.neighborhood().nodes().forEach(function(q){y.intersection(V.edgesWith(q)).length>0&&(q.isParent()?T[xe].push(C.get(q.id())):T[xe].push(q.id()))})});var Z=o(function(xe){var q=w.get(xe),pe=void 0;b.get(xe).forEach(function(ve){g.getElementById(ve).isParent()?pe=C.get(ve):pe=ve,T[q].push(pe),T[w.get(pe)].push(xe)})},"_loop"),Se=!0,ce=!1,ae=void 0;try{for(var Oe=b.keys()[Symbol.iterator](),ge;!(Se=(ge=Oe.next()).done);Se=!0){var ze=ge.value;Z(ze)}}catch(V){ce=!0,ae=V}finally{try{!Se&&Oe.return&&Oe.return()}finally{if(ce)throw ae}}R=w.size;var He=void 0;if(R>2){z=R<m.sampleSize?R:m.sampleSize;for(var $e=0;$e<R;$e++)I[$e]=[];for(var Re=0;Re<z;Re++)k[Re]=[];return m.quality=="draft"||m.step=="all"?(Q(F),j(),ie(),He={nodeIndexes:w,xCoords:E,yCoords:A}):(w.forEach(function(V,xe){E.push(g.getElementById(xe).position("x")),A.push(g.getElementById(xe).position("y"))}),He={nodeIndexes:w,xCoords:E,yCoords:A}),He}else{var Ie=w.keys(),be=g.getElementById(Ie.next().value),W=be.position(),de=be.outerWidth();if(E.push(W.x),A.push(W.y),R==2){var re=g.getElementById(Ie.next().value),oe=re.outerWidth();E.push(W.x+de/2+oe/2+m.idealEdgeLength),A.push(W.y)}return He={nodeIndexes:w,xCoords:E,yCoords:A},He}},"spectralLayout");a.exports={spectralLayout:d}},579:(a,s,l)=>{var u=l(212),h=o(function(d){d&&d("layout","fcose",u)},"register");typeof cytoscape<"u"&&h(cytoscape),a.exports=h},140:a=>{a.exports=t}},r={};function n(a){var s=r[a];if(s!==void 0)return s.exports;var l=r[a]={exports:{}};return e[a](l,l.exports,n),l.exports}o(n,"__webpack_require__");var i=n(579);return i})()})});var dy,Zp,yF=N(()=>{"use strict";tu();dy=o(t=>`<g><rect width="80" height="80" style="fill: #087ebf; stroke-width: 0px;"/>${t}</g>`,"wrapIcon"),Zp={prefix:"mermaid-architecture",height:80,width:80,icons:{database:{body:dy('<path id="b" data-name="4" d="m20,57.86c0,3.94,8.95,7.14,20,7.14s20-3.2,20-7.14" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 2px;"/><path id="c" data-name="3" d="m20,45.95c0,3.94,8.95,7.14,20,7.14s20-3.2,20-7.14" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 2px;"/><path id="d" data-name="2" d="m20,34.05c0,3.94,8.95,7.14,20,7.14s20-3.2,20-7.14" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 2px;"/><ellipse id="e" data-name="1" cx="40" cy="22.14" rx="20" ry="7.14" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 2px;"/><line x1="20" y1="57.86" x2="20" y2="22.14" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 2px;"/><line x1="60" y1="57.86" x2="60" y2="22.14" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 2px;"/>')},server:{body:dy('<rect x="17.5" y="17.5" width="45" height="45" rx="2" ry="2" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 2px;"/><line x1="17.5" y1="32.5" x2="62.5" y2="32.5" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 2px;"/><line x1="17.5" y1="47.5" x2="62.5" y2="47.5" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 2px;"/><g><path d="m56.25,25c0,.27-.45.5-1,.5h-10.5c-.55,0-1-.23-1-.5s.45-.5,1-.5h10.5c.55,0,1,.23,1,.5Z" style="fill: #fff; stroke-width: 0px;"/><path d="m56.25,25c0,.27-.45.5-1,.5h-10.5c-.55,0-1-.23-1-.5s.45-.5,1-.5h10.5c.55,0,1,.23,1,.5Z" style="fill: none; stroke: #fff; stroke-miterlimit: 10;"/></g><g><path d="m56.25,40c0,.27-.45.5-1,.5h-10.5c-.55,0-1-.23-1-.5s.45-.5,1-.5h10.5c.55,0,1,.23,1,.5Z" style="fill: #fff; stroke-width: 0px;"/><path d="m56.25,40c0,.27-.45.5-1,.5h-10.5c-.55,0-1-.23-1-.5s.45-.5,1-.5h10.5c.55,0,1,.23,1,.5Z" style="fill: none; stroke: #fff; stroke-miterlimit: 10;"/></g><g><path d="m56.25,55c0,.27-.45.5-1,.5h-10.5c-.55,0-1-.23-1-.5s.45-.5,1-.5h10.5c.55,0,1,.23,1,.5Z" style="fill: #fff; stroke-width: 0px;"/><path d="m56.25,55c0,.27-.45.5-1,.5h-10.5c-.55,0-1-.23-1-.5s.45-.5,1-.5h10.5c.55,0,1,.23,1,.5Z" style="fill: none; stroke: #fff; stroke-miterlimit: 10;"/></g><g><circle cx="32.5" cy="25" r=".75" style="fill: #fff; stroke: #fff; stroke-miterlimit: 10;"/><circle cx="27.5" cy="25" r=".75" style="fill: #fff; stroke: #fff; stroke-miterlimit: 10;"/><circle cx="22.5" cy="25" r=".75" style="fill: #fff; stroke: #fff; stroke-miterlimit: 10;"/></g><g><circle cx="32.5" cy="40" r=".75" style="fill: #fff; stroke: #fff; stroke-miterlimit: 10;"/><circle cx="27.5" cy="40" r=".75" style="fill: #fff; stroke: #fff; stroke-miterlimit: 10;"/><circle cx="22.5" cy="40" r=".75" style="fill: #fff; stroke: #fff; stroke-miterlimit: 10;"/></g><g><circle cx="32.5" cy="55" r=".75" style="fill: #fff; stroke: #fff; stroke-miterlimit: 10;"/><circle cx="27.5" cy="55" r=".75" style="fill: #fff; stroke: #fff; stroke-miterlimit: 10;"/><circle cx="22.5" cy="55" r=".75" style="fill: #fff; stroke: #fff; stroke-miterlimit: 10;"/></g>')},disk:{body:dy('<rect x="20" y="15" width="40" height="50" rx="1" ry="1" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 2px;"/><ellipse cx="24" cy="19.17" rx=".8" ry=".83" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 2px;"/><ellipse cx="56" cy="19.17" rx=".8" ry=".83" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 2px;"/><ellipse cx="24" cy="60.83" rx=".8" ry=".83" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 2px;"/><ellipse cx="56" cy="60.83" rx=".8" ry=".83" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 2px;"/><ellipse cx="40" cy="33.75" rx="14" ry="14.58" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 2px;"/><ellipse cx="40" cy="33.75" rx="4" ry="4.17" style="fill: #fff; stroke: #fff; stroke-miterlimit: 10; stroke-width: 2px;"/><path d="m37.51,42.52l-4.83,13.22c-.26.71-1.1,1.02-1.76.64l-4.18-2.42c-.66-.38-.81-1.26-.33-1.84l9.01-10.8c.88-1.05,2.56-.08,2.09,1.2Z" style="fill: #fff; stroke-width: 0px;"/>')},internet:{body:dy('<circle cx="40" cy="40" r="22.5" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 2px;"/><line x1="40" y1="17.5" x2="40" y2="62.5" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 2px;"/><line x1="17.5" y1="40" x2="62.5" y2="40" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 2px;"/><path d="m39.99,17.51c-15.28,11.1-15.28,33.88,0,44.98" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 2px;"/><path d="m40.01,17.51c15.28,11.1,15.28,33.88,0,44.98" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 2px;"/><line x1="19.75" y1="30.1" x2="60.25" y2="30.1" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 2px;"/><line x1="19.75" y1="49.9" x2="60.25" y2="49.9" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 2px;"/>')},cloud:{body:dy('<path d="m65,47.5c0,2.76-2.24,5-5,5H20c-2.76,0-5-2.24-5-5,0-1.87,1.03-3.51,2.56-4.36-.04-.21-.06-.42-.06-.64,0-2.6,2.48-4.74,5.65-4.97,1.65-4.51,6.34-7.76,11.85-7.76.86,0,1.69.08,2.5.23,2.09-1.57,4.69-2.5,7.5-2.5,6.1,0,11.19,4.38,12.28,10.17,2.14.56,3.72,2.51,3.72,4.83,0,.03,0,.07-.01.1,2.29.46,4.01,2.48,4.01,4.9Z" style="fill: none; stroke: #fff; stroke-miterlimit: 10; stroke-width: 2px;"/>')},unknown:OC,blank:{body:dy("")}}}});var Bve,Fve,$ve,zve,Gve=N(()=>{"use strict";tu();zt();to();w4();yF();oC();Bve=o(async function(t,e){let r=Li("padding"),n=Li("iconSize"),i=n/2,a=n/6,s=a/2;await Promise.all(e.edges().map(async l=>{let{source:u,sourceDir:h,sourceArrow:f,sourceGroup:d,target:p,targetDir:m,targetArrow:g,targetGroup:y,label:v}=sC(l),{x,y:b}=l[0].sourceEndpoint(),{x:w,y:C}=l[0].midpoint(),{x:T,y:E}=l[0].targetEndpoint(),A=r+4;if(d&&(Ha(h)?x+=h==="L"?-A:A:b+=h==="T"?-A:A+18),y&&(Ha(m)?T+=m==="L"?-A:A:E+=m==="T"?-A:A+18),!d&&Qp.getNode(u)?.type==="junction"&&(Ha(h)?x+=h==="L"?i:-i:b+=h==="T"?i:-i),!y&&Qp.getNode(p)?.type==="junction"&&(Ha(m)?T+=m==="L"?i:-i:E+=m==="T"?i:-i),l[0]._private.rscratch){let S=t.insert("g");if(S.insert("path").attr("d",`M ${x},${b} L ${w},${C} L${T},${E} `).attr("class","edge"),f){let _=Ha(h)?v4[h](x,a):x-s,I=Zc(h)?v4[h](b,a):b-s;S.insert("polygon").attr("points",cF[h](a)).attr("transform",`translate(${_},${I})`).attr("class","arrow")}if(g){let _=Ha(m)?v4[m](T,a):T-s,I=Zc(m)?v4[m](E,a):E-s;S.insert("polygon").attr("points",cF[m](a)).attr("transform",`translate(${_},${I})`).attr("class","arrow")}if(v){let _=x4(h,m)?"XY":Ha(h)?"X":"Y",I=0;_==="X"?I=Math.abs(x-T):_==="Y"?I=Math.abs(b-E)/1.5:I=Math.abs(x-T)/2;let D=S.append("g");if(await Hn(D,v,{useHtmlLabels:!1,width:I,classes:"architecture-service-label"},me()),D.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle"),_==="X")D.attr("transform","translate("+w+", "+C+")");else if(_==="Y")D.attr("transform","translate("+w+", "+C+") rotate(-90)");else if(_==="XY"){let k=b4(h,m);if(k&&Sve(k)){let L=D.node().getBoundingClientRect(),[R,O]=Ave(k);D.attr("dominant-baseline","auto").attr("transform",`rotate(${-1*R*O*45})`);let M=D.node().getBoundingClientRect();D.attr("transform",`
+                translate(${w}, ${C-L.height/2})
+                translate(${R*M.width/2}, ${O*M.height/2})
+                rotate(${-1*R*O*45}, 0, ${L.height/2})
+              `)}}}}}))},"drawEdges"),Fve=o(async function(t,e){let n=Li("padding")*.75,i=Li("fontSize"),s=Li("iconSize")/2;await Promise.all(e.nodes().map(async l=>{let u=Ff(l);if(u.type==="group"){let{h,w:f,x1:d,y1:p}=l.boundingBox();t.append("rect").attr("x",d+s).attr("y",p+s).attr("width",f).attr("height",h).attr("class","node-bkg");let m=t.append("g"),g=d,y=p;if(u.icon){let v=m.append("g");v.html(`<g>${await wo(u.icon,{height:n,width:n,fallbackPrefix:Zp.prefix})}</g>`),v.attr("transform","translate("+(g+s+1)+", "+(y+s+1)+")"),g+=n,y+=i/2-1-2}if(u.label){let v=m.append("g");await Hn(v,u.label,{useHtmlLabels:!1,width:f,classes:"architecture-service-label"},me()),v.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","start").attr("text-anchor","start"),v.attr("transform","translate("+(g+s+4)+", "+(y+s+2)+")")}}}))},"drawGroups"),$ve=o(async function(t,e,r){for(let n of r){let i=e.append("g"),a=Li("iconSize");if(n.title){let h=i.append("g");await Hn(h,n.title,{useHtmlLabels:!1,width:a*1.5,classes:"architecture-service-label"},me()),h.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle"),h.attr("transform","translate("+a/2+", "+a+")")}let s=i.append("g");if(n.icon)s.html(`<g>${await wo(n.icon,{height:a,width:a,fallbackPrefix:Zp.prefix})}</g>`);else if(n.iconText){s.html(`<g>${await wo("blank",{height:a,width:a,fallbackPrefix:Zp.prefix})}</g>`);let d=s.append("g").append("foreignObject").attr("width",a).attr("height",a).append("div").attr("class","node-icon-text").attr("style",`height: ${a}px;`).append("div").html(n.iconText),p=parseInt(window.getComputedStyle(d.node(),null).getPropertyValue("font-size").replace(/\D/g,""))??16;d.attr("style",`-webkit-line-clamp: ${Math.floor((a-2)/p)};`)}else s.append("path").attr("class","node-bkg").attr("id","node-"+n.id).attr("d",`M0 ${a} v${-a} q0,-5 5,-5 h${a} q5,0 5,5 v${a} H0 Z`);i.attr("class","architecture-service");let{width:l,height:u}=i._groups[0][0].getBBox();n.width=l,n.height=u,t.setElementForId(n.id,i)}return 0},"drawServices"),zve=o(function(t,e,r){r.forEach(n=>{let i=e.append("g"),a=Li("iconSize");i.append("g").append("rect").attr("id","node-"+n.id).attr("fill-opacity","0").attr("width",a).attr("height",a),i.attr("class","architecture-junction");let{width:l,height:u}=i._groups[0][0].getBBox();i.width=l,i.height=u,t.setElementForId(n.id,i)})},"drawJunctions")});function Srt(t,e){t.forEach(r=>{e.add({group:"nodes",data:{type:"service",id:r.id,icon:r.icon,label:r.title,parent:r.in,width:Li("iconSize"),height:Li("iconSize")},classes:"node-service"})})}function Crt(t,e){t.forEach(r=>{e.add({group:"nodes",data:{type:"junction",id:r.id,parent:r.in,width:Li("iconSize"),height:Li("iconSize")},classes:"node-junction"})})}function Art(t,e){e.nodes().map(r=>{let n=Ff(r);if(n.type==="group")return;n.x=r.position().x,n.y=r.position().y,t.getElementById(n.id).attr("transform","translate("+(n.x||0)+","+(n.y||0)+")")})}function _rt(t,e){t.forEach(r=>{e.add({group:"nodes",data:{type:"group",id:r.id,icon:r.icon,label:r.title,parent:r.in},classes:"node-group"})})}function Drt(t,e){t.forEach(r=>{let{lhsId:n,rhsId:i,lhsInto:a,lhsGroup:s,rhsInto:l,lhsDir:u,rhsDir:h,rhsGroup:f,title:d}=r,p=x4(r.lhsDir,r.rhsDir)?"segments":"straight",m={id:`${n}-${i}`,label:d,source:n,sourceDir:u,sourceArrow:a,sourceGroup:s,sourceEndpoint:u==="L"?"0 50%":u==="R"?"100% 50%":u==="T"?"50% 0":"50% 100%",target:i,targetDir:h,targetArrow:l,targetGroup:f,targetEndpoint:h==="L"?"0 50%":h==="R"?"100% 50%":h==="T"?"50% 0":"50% 100%"};e.add({group:"edges",data:m,classes:p})})}function Lrt(t,e,r){let n=o((l,u)=>Object.entries(l).reduce((h,[f,d])=>{let p=0,m=Object.entries(d);if(m.length===1)return h[f]=m[0][1],h;for(let g=0;g<m.length-1;g++)for(let y=g+1;y<m.length;y++){let[v,x]=m[g],[b,w]=m[y];if(r[v]?.[b]===u)h[f]??=[],h[f]=[...h[f],...x,...w];else if(v==="default"||b==="default")h[f]??=[],h[f]=[...h[f],...x,...w];else{let T=`${f}-${p++}`;h[T]=x;let E=`${f}-${p++}`;h[E]=w}}return h},{}),"flattenAlignments"),i=e.map(l=>{let u={},h={};return Object.entries(l).forEach(([f,[d,p]])=>{let m=t.getNode(f)?.in??"default";u[p]??={},u[p][m]??=[],u[p][m].push(f),h[d]??={},h[d][m]??=[],h[d][m].push(f)}),{horiz:Object.values(n(u,"horizontal")).filter(f=>f.length>1),vert:Object.values(n(h,"vertical")).filter(f=>f.length>1)}}),[a,s]=i.reduce(([l,u],{horiz:h,vert:f})=>[[...l,...h],[...u,...f]],[[],[]]);return{horizontal:a,vertical:s}}function Rrt(t){let e=[],r=o(i=>`${i[0]},${i[1]}`,"posToStr"),n=o(i=>i.split(",").map(a=>parseInt(a)),"strToPos");return t.forEach(i=>{let a=Object.fromEntries(Object.entries(i).map(([h,f])=>[r(f),h])),s=[r([0,0])],l={},u={L:[-1,0],R:[1,0],T:[0,1],B:[0,-1]};for(;s.length>0;){let h=s.shift();if(h){l[h]=1;let f=a[h];if(f){let d=n(h);Object.entries(u).forEach(([p,m])=>{let g=r([d[0]+m[0],d[1]+m[1]]),y=a[g];y&&!l[g]&&(s.push(g),e.push({[lF[p]]:y,[lF[Eve(p)]]:f,gap:1.5*Li("iconSize")}))})}}}}),e}function Nrt(t,e,r,n,i,{spatialMaps:a,groupAlignments:s}){return new Promise(l=>{let u=Ge("body").append("div").attr("id","cy").attr("style","display:none"),h=rl({container:document.getElementById("cy"),style:[{selector:"edge",style:{"curve-style":"straight",label:"data(label)","source-endpoint":"data(sourceEndpoint)","target-endpoint":"data(targetEndpoint)"}},{selector:"edge.segments",style:{"curve-style":"segments","segment-weights":"0","segment-distances":[.5],"edge-distances":"endpoints","source-endpoint":"data(sourceEndpoint)","target-endpoint":"data(targetEndpoint)"}},{selector:"node",style:{"compound-sizing-wrt-labels":"include"}},{selector:"node[label]",style:{"text-valign":"bottom","text-halign":"center","font-size":`${Li("fontSize")}px`}},{selector:".node-service",style:{label:"data(label)",width:"data(width)",height:"data(height)"}},{selector:".node-junction",style:{width:"data(width)",height:"data(height)"}},{selector:".node-group",style:{padding:`${Li("padding")}px`}}]});u.remove(),_rt(r,h),Srt(t,h),Crt(e,h),Drt(n,h);let f=Lrt(i,a,s),d=Rrt(a),p=h.layout({name:"fcose",quality:"proof",styleEnabled:!1,animate:!1,nodeDimensionsIncludeLabels:!1,idealEdgeLength(m){let[g,y]=m.connectedNodes(),{parent:v}=Ff(g),{parent:x}=Ff(y);return v===x?1.5*Li("iconSize"):.5*Li("iconSize")},edgeElasticity(m){let[g,y]=m.connectedNodes(),{parent:v}=Ff(g),{parent:x}=Ff(y);return v===x?.45:.001},alignmentConstraint:f,relativePlacementConstraint:d});p.one("layoutstop",()=>{function m(g,y,v,x){let b,w,{x:C,y:T}=g,{x:E,y:A}=y;w=(x-T+(C-v)*(T-A)/(C-E))/Math.sqrt(1+Math.pow((T-A)/(C-E),2)),b=Math.sqrt(Math.pow(x-T,2)+Math.pow(v-C,2)-Math.pow(w,2));let S=Math.sqrt(Math.pow(E-C,2)+Math.pow(A-T,2));b=b/S;let _=(E-C)*(x-T)-(A-T)*(v-C);switch(!0){case _>=0:_=1;break;case _<0:_=-1;break}let I=(E-C)*(v-C)+(A-T)*(x-T);switch(!0){case I>=0:I=1;break;case I<0:I=-1;break}return w=Math.abs(w)*_,b=b*I,{distances:w,weights:b}}o(m,"getSegmentWeights"),h.startBatch();for(let g of Object.values(h.edges()))if(g.data?.()){let{x:y,y:v}=g.source().position(),{x,y:b}=g.target().position();if(y!==x&&v!==b){let w=g.sourceEndpoint(),C=g.targetEndpoint(),{sourceDir:T}=sC(g),[E,A]=Zc(T)?[w.x,C.y]:[C.x,w.y],{weights:S,distances:_}=m(w,C,E,A);g.style("segment-distances",_),g.style("segment-weights",S)}}h.endBatch(),p.run()}),p.run(),h.ready(m=>{Y.info("Ready",m),l(h)})})}var Vve,Mrt,Uve,Hve=N(()=>{"use strict";tu();kB();Vve=Sa(Pve(),1);dr();vt();Vc();Ei();w4();yF();oC();Gve();P4([{name:Zp.prefix,icons:Zp}]);rl.use(Vve.default);o(Srt,"addServices");o(Crt,"addJunctions");o(Art,"positionNodes");o(_rt,"addGroups");o(Drt,"addEdges");o(Lrt,"getAlignments");o(Rrt,"getRelativeConstraints");o(Nrt,"layoutArchitecture");Mrt=o(async(t,e,r,n)=>{let i=n.db,a=i.getServices(),s=i.getJunctions(),l=i.getGroups(),u=i.getEdges(),h=i.getDataStructures(),f=sa(e),d=f.append("g");d.attr("class","architecture-edges");let p=f.append("g");p.attr("class","architecture-services");let m=f.append("g");m.attr("class","architecture-groups"),await $ve(i,p,a),zve(i,p,s);let g=await Nrt(a,s,l,u,i,h);await Bve(d,g),await Fve(m,g),Art(i,g),Ao(void 0,f,Li("padding"),Li("useMaxWidth"))},"draw"),Uve={draw:Mrt}});var Wve={};hr(Wve,{diagram:()=>Irt});var Irt,qve=N(()=>{"use strict";Mve();w4();Ove();Hve();Irt={parser:Nve,db:Qp,renderer:Uve,styles:Ive}});var bnt={};hr(bnt,{default:()=>xnt});tu();PC();Xf();var YX="c4",PCe=o(t=>/^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/.test(t),"detector"),BCe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(qX(),WX));return{id:YX,diagram:t}},"loader"),FCe={id:YX,detector:PCe,loader:BCe},XX=FCe;var Xie="flowchart",xOe=o((t,e)=>e?.flowchart?.defaultRenderer==="dagre-wrapper"||e?.flowchart?.defaultRenderer==="elk"?!1:/^\s*graph/.test(t),"detector"),bOe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(ak(),ik));return{id:Xie,diagram:t}},"loader"),wOe={id:Xie,detector:xOe,loader:bOe},jie=wOe;var Kie="flowchart-v2",TOe=o((t,e)=>e?.flowchart?.defaultRenderer==="dagre-d3"?!1:(e?.flowchart?.defaultRenderer==="elk"&&(e.layout="elk"),/^\s*graph/.test(t)&&e?.flowchart?.defaultRenderer==="dagre-wrapper"?!0:/^\s*flowchart/.test(t)),"detector"),kOe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(ak(),ik));return{id:Kie,diagram:t}},"loader"),EOe={id:Kie,detector:TOe,loader:kOe},Qie=EOe;var sae="er",DOe=o(t=>/^\s*erDiagram/.test(t),"detector"),LOe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(aae(),iae));return{id:sae,diagram:t}},"loader"),ROe={id:sae,detector:DOe,loader:LOe},oae=ROe;var uue="gitGraph",tze=o(t=>/^\s*gitGraph/.test(t),"detector"),rze=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(cue(),lue));return{id:uue,diagram:t}},"loader"),nze={id:uue,detector:tze,loader:rze},hue=nze;var Gue="gantt",Hze=o(t=>/^\s*gantt/.test(t),"detector"),Wze=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(zue(),$ue));return{id:Gue,diagram:t}},"loader"),qze={id:Gue,detector:Hze,loader:Wze},Vue=qze;var Que="info",Zze=o(t=>/^\s*info/.test(t),"detector"),Jze=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(Kue(),jue));return{id:Que,diagram:t}},"loader"),Zue={id:Que,detector:Zze,loader:Jze};var lhe="pie",fGe=o(t=>/^\s*pie/.test(t),"detector"),dGe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(ohe(),she));return{id:lhe,diagram:t}},"loader"),che={id:lhe,detector:fGe,loader:dGe};var The="quadrantChart",RGe=o(t=>/^\s*quadrantChart/.test(t),"detector"),NGe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(whe(),bhe));return{id:The,diagram:t}},"loader"),MGe={id:The,detector:RGe,loader:NGe},khe=MGe;var Khe="xychart",jGe=o(t=>/^\s*xychart-beta/.test(t),"detector"),KGe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(jhe(),Xhe));return{id:Khe,diagram:t}},"loader"),QGe={id:Khe,detector:jGe,loader:KGe},Qhe=QGe;var sfe="requirement",tVe=o(t=>/^\s*requirement(Diagram)?/.test(t),"detector"),rVe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(afe(),ife));return{id:sfe,diagram:t}},"loader"),nVe={id:sfe,detector:tVe,loader:rVe},ofe=nVe;var Afe="sequence",zVe=o(t=>/^\s*sequenceDiagram/.test(t),"detector"),GVe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(Cfe(),Sfe));return{id:Afe,diagram:t}},"loader"),VVe={id:Afe,detector:zVe,loader:GVe},_fe=VVe;var Ife="class",XVe=o((t,e)=>e?.class?.defaultRenderer==="dagre-wrapper"?!1:/^\s*classDiagram/.test(t),"detector"),jVe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(Mfe(),Nfe));return{id:Ife,diagram:t}},"loader"),KVe={id:Ife,detector:XVe,loader:jVe},Ofe=KVe;var Ffe="classDiagram",ZVe=o((t,e)=>/^\s*classDiagram/.test(t)&&e?.class?.defaultRenderer==="dagre-wrapper"?!0:/^\s*classDiagram-v2/.test(t),"detector"),JVe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(Bfe(),Pfe));return{id:Ffe,diagram:t}},"loader"),eUe={id:Ffe,detector:ZVe,loader:JVe},$fe=eUe;var Ede="state",LUe=o((t,e)=>e?.state?.defaultRenderer==="dagre-wrapper"?!1:/^\s*stateDiagram/.test(t),"detector"),RUe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(kde(),Tde));return{id:Ede,diagram:t}},"loader"),NUe={id:Ede,detector:LUe,loader:RUe},Sde=NUe;var _de="stateDiagram",IUe=o((t,e)=>!!(/^\s*stateDiagram-v2/.test(t)||/^\s*stateDiagram/.test(t)&&e?.state?.defaultRenderer==="dagre-wrapper"),"detector"),OUe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(Ade(),Cde));return{id:_de,diagram:t}},"loader"),PUe={id:_de,detector:IUe,loader:OUe},Dde=PUe;var Wde="journey",nHe=o(t=>/^\s*journey/.test(t),"detector"),iHe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(Hde(),Ude));return{id:Wde,diagram:t}},"loader"),aHe={id:Wde,detector:nHe,loader:iHe},qde=aHe;vt();Vc();Ei();var sHe=o((t,e,r)=>{Y.debug(`rendering svg for syntax error
+`);let n=sa(e),i=n.append("g");n.attr("viewBox","0 0 2412 512"),vn(n,100,512,!0),i.append("path").attr("class","error-icon").attr("d","m411.313,123.313c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32-9.375,9.375-20.688-20.688c-12.484-12.5-32.766-12.5-45.25,0l-16,16c-1.261,1.261-2.304,2.648-3.31,4.051-21.739-8.561-45.324-13.426-70.065-13.426-105.867,0-192,86.133-192,192s86.133,192 192,192 192-86.133 192-192c0-24.741-4.864-48.327-13.426-70.065 1.402-1.007 2.79-2.049 4.051-3.31l16-16c12.5-12.492 12.5-32.758 0-45.25l-20.688-20.688 9.375-9.375 32.001-31.999zm-219.313,100.687c-52.938,0-96,43.063-96,96 0,8.836-7.164,16-16,16s-16-7.164-16-16c0-70.578 57.422-128 128-128 8.836,0 16,7.164 16,16s-7.164,16-16,16z"),i.append("path").attr("class","error-icon").attr("d","m459.02,148.98c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l16,16c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16.001-16z"),i.append("path").attr("class","error-icon").attr("d","m340.395,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16-16c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l15.999,16z"),i.append("path").attr("class","error-icon").attr("d","m400,64c8.844,0 16-7.164 16-16v-32c0-8.836-7.156-16-16-16-8.844,0-16,7.164-16,16v32c0,8.836 7.156,16 16,16z"),i.append("path").attr("class","error-icon").attr("d","m496,96.586h-32c-8.844,0-16,7.164-16,16 0,8.836 7.156,16 16,16h32c8.844,0 16-7.164 16-16 0-8.836-7.156-16-16-16z"),i.append("path").attr("class","error-icon").attr("d","m436.98,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688l32-32c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32c-6.251,6.25-6.251,16.375-0.001,22.625z"),i.append("text").attr("class","error-text").attr("x",1440).attr("y",250).attr("font-size","150px").style("text-anchor","middle").text("Syntax error in text"),i.append("text").attr("class","error-text").attr("x",1250).attr("y",400).attr("font-size","100px").style("text-anchor","middle").text(`mermaid version ${r}`)},"draw"),fP={draw:sHe},Yde=fP;var oHe={db:{},renderer:fP,parser:{parse:o(()=>{},"parse")}},Xde=oHe;var jde="flowchart-elk",lHe=o((t,e={})=>/^\s*flowchart-elk/.test(t)||/^\s*flowchart|graph/.test(t)&&e?.flowchart?.defaultRenderer==="elk"?(e.layout="elk",!0):!1,"detector"),cHe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(ak(),ik));return{id:jde,diagram:t}},"loader"),uHe={id:jde,detector:lHe,loader:cHe},Kde=uHe;var Tpe="timeline",DHe=o(t=>/^\s*timeline/.test(t),"detector"),LHe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(wpe(),bpe));return{id:Tpe,diagram:t}},"loader"),RHe={id:Tpe,detector:DHe,loader:LHe},kpe=RHe;var e1e="mindmap",cJe=o(t=>/^\s*mindmap/.test(t),"detector"),uJe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(Jge(),Zge));return{id:e1e,diagram:t}},"loader"),hJe={id:e1e,detector:cJe,loader:uJe},t1e=hJe;var d1e="kanban",AJe=o(t=>/^\s*kanban/.test(t),"detector"),_Je=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(f1e(),h1e));return{id:d1e,diagram:t}},"loader"),DJe={id:d1e,detector:AJe,loader:_Je},p1e=DJe;var j1e="sankey",ZJe=o(t=>/^\s*sankey-beta/.test(t),"detector"),JJe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(X1e(),Y1e));return{id:j1e,diagram:t}},"loader"),eet={id:j1e,detector:ZJe,loader:JJe},K1e=eet;var sye="packet",pet=o(t=>/^\s*packet-beta/.test(t),"detector"),met=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(aye(),iye));return{id:sye,diagram:t}},"loader"),oye={id:sye,detector:pet,loader:met};var vye="radar",Fet=o(t=>/^\s*radar-beta/.test(t),"detector"),$et=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(yye(),gye));return{id:vye,diagram:t}},"loader"),xye={id:vye,detector:Fet,loader:$et};var Tve="block",srt=o(t=>/^\s*block-beta/.test(t),"detector"),ort=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(wve(),bve));return{id:Tve,diagram:t}},"loader"),lrt={id:Tve,detector:srt,loader:ort},kve=lrt;var Yve="architecture",Ort=o(t=>/^\s*architecture/.test(t),"detector"),Prt=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(qve(),Wve));return{id:Yve,diagram:t}},"loader"),Brt={id:Yve,detector:Ort,loader:Prt},Xve=Brt;Xf();zt();var jve=!1,py=o(()=>{jve||(jve=!0,ad("error",Xde,t=>t.toLowerCase().trim()==="error"),ad("---",{db:{clear:o(()=>{},"clear")},styles:{},renderer:{draw:o(()=>{},"draw")},parser:{parse:o(()=>{throw new Error("Diagrams beginning with --- are not valid. If you were trying to use a YAML front-matter, please ensure that you've correctly opened and closed the YAML front-matter with un-indented `---` blocks")},"parse")},init:o(()=>null,"init")},t=>t.toLowerCase().trimStart().startsWith("---")),z4(XX,p1e,$fe,Ofe,oae,Vue,Zue,che,ofe,_fe,Kde,Qie,jie,t1e,kpe,hue,Dde,Sde,qde,khe,K1e,oye,Qhe,kve,Xve,xye))},"addDiagrams");vt();Xf();zt();var Kve=o(async()=>{Y.debug("Loading registered diagrams");let e=(await Promise.allSettled(Object.entries(Yf).map(async([r,{detector:n,loader:i}])=>{if(i)try{jy(r)}catch{try{let{diagram:a,id:s}=await i();ad(s,a,n)}catch(a){throw Y.error(`Failed to load external diagram with key ${r}. Removing from detectors.`),delete Yf[r],a}}}))).filter(r=>r.status==="rejected");if(e.length>0){Y.error(`Failed to load ${e.length} external diagrams`);for(let r of e)Y.error(r);throw new Error(`Failed to load ${e.length} external diagrams`)}},"loadRegisteredDiagrams");vt();dr();var lC="comm",cC="rule",uC="decl";var Qve="@import";var Zve="@namespace",Jve="@keyframes";var e2e="@layer";var vF=Math.abs,S4=String.fromCharCode;function hC(t){return t.trim()}o(hC,"trim");function C4(t,e,r){return t.replace(e,r)}o(C4,"replace");function t2e(t,e,r){return t.indexOf(e,r)}o(t2e,"indexof");function $f(t,e){return t.charCodeAt(e)|0}o($f,"charat");function zf(t,e,r){return t.slice(e,r)}o(zf,"substr");function vo(t){return t.length}o(vo,"strlen");function r2e(t){return t.length}o(r2e,"sizeof");function my(t,e){return e.push(t),t}o(my,"append");var fC=1,gy=1,n2e=0,il=0,Ri=0,vy="";function dC(t,e,r,n,i,a,s,l){return{value:t,root:e,parent:r,type:n,props:i,children:a,line:fC,column:gy,length:s,return:"",siblings:l}}o(dC,"node");function i2e(){return Ri}o(i2e,"char");function a2e(){return Ri=il>0?$f(vy,--il):0,gy--,Ri===10&&(gy=1,fC--),Ri}o(a2e,"prev");function al(){return Ri=il<n2e?$f(vy,il++):0,gy++,Ri===10&&(gy=1,fC++),Ri}o(al,"next");function rh(){return $f(vy,il)}o(rh,"peek");function A4(){return il}o(A4,"caret");function pC(t,e){return zf(vy,t,e)}o(pC,"slice");function yy(t){switch(t){case 0:case 9:case 10:case 13:case 32:return 5;case 33:case 43:case 44:case 47:case 62:case 64:case 126:case 59:case 123:case 125:return 4;case 58:return 3;case 34:case 39:case 40:case 91:return 2;case 41:case 93:return 1}return 0}o(yy,"token");function s2e(t){return fC=gy=1,n2e=vo(vy=t),il=0,[]}o(s2e,"alloc");function o2e(t){return vy="",t}o(o2e,"dealloc");function mC(t){return hC(pC(il-1,xF(t===91?t+2:t===40?t+1:t)))}o(mC,"delimit");function l2e(t){for(;(Ri=rh())&&Ri<33;)al();return yy(t)>2||yy(Ri)>3?"":" "}o(l2e,"whitespace");function c2e(t,e){for(;--e&&al()&&!(Ri<48||Ri>102||Ri>57&&Ri<65||Ri>70&&Ri<97););return pC(t,A4()+(e<6&&rh()==32&&al()==32))}o(c2e,"escaping");function xF(t){for(;al();)switch(Ri){case t:return il;case 34:case 39:t!==34&&t!==39&&xF(Ri);break;case 40:t===41&&xF(t);break;case 92:al();break}return il}o(xF,"delimiter");function u2e(t,e){for(;al()&&t+Ri!==57;)if(t+Ri===84&&rh()===47)break;return"/*"+pC(e,il-1)+"*"+S4(t===47?t:al())}o(u2e,"commenter");function h2e(t){for(;!yy(rh());)al();return pC(t,il)}o(h2e,"identifier");function p2e(t){return o2e(gC("",null,null,null,[""],t=s2e(t),0,[0],t))}o(p2e,"compile");function gC(t,e,r,n,i,a,s,l,u){for(var h=0,f=0,d=s,p=0,m=0,g=0,y=1,v=1,x=1,b=0,w="",C=i,T=a,E=n,A=w;v;)switch(g=b,b=al()){case 40:if(g!=108&&$f(A,d-1)==58){t2e(A+=C4(mC(b),"&","&\f"),"&\f",vF(h?l[h-1]:0))!=-1&&(x=-1);break}case 34:case 39:case 91:A+=mC(b);break;case 9:case 10:case 13:case 32:A+=l2e(g);break;case 92:A+=c2e(A4()-1,7);continue;case 47:switch(rh()){case 42:case 47:my(Frt(u2e(al(),A4()),e,r,u),u),(yy(g||1)==5||yy(rh()||1)==5)&&vo(A)&&zf(A,-1,void 0)!==" "&&(A+=" ");break;default:A+="/"}break;case 123*y:l[h++]=vo(A)*x;case 125*y:case 59:case 0:switch(b){case 0:case 125:v=0;case 59+f:x==-1&&(A=C4(A,/\f/g,"")),m>0&&(vo(A)-d||y===0&&g===47)&&my(m>32?d2e(A+";",n,r,d-1,u):d2e(C4(A," ","")+";",n,r,d-2,u),u);break;case 59:A+=";";default:if(my(E=f2e(A,e,r,h,f,i,l,w,C=[],T=[],d,a),a),b===123)if(f===0)gC(A,e,E,E,C,a,d,l,T);else{switch(p){case 99:if($f(A,3)===110)break;case 108:if($f(A,2)===97)break;default:f=0;case 100:case 109:case 115:}f?gC(t,E,E,n&&my(f2e(t,E,E,0,0,i,l,w,i,C=[],d,T),T),i,T,d,l,n?C:T):gC(A,E,E,E,[""],T,0,l,T)}}h=f=m=0,y=x=1,w=A="",d=s;break;case 58:d=1+vo(A),m=g;default:if(y<1){if(b==123)--y;else if(b==125&&y++==0&&a2e()==125)continue}switch(A+=S4(b),b*y){case 38:x=f>0?1:(A+="\f",-1);break;case 44:l[h++]=(vo(A)-1)*x,x=1;break;case 64:rh()===45&&(A+=mC(al())),p=rh(),f=d=vo(w=A+=h2e(A4())),b++;break;case 45:g===45&&vo(A)==2&&(y=0)}}return a}o(gC,"parse");function f2e(t,e,r,n,i,a,s,l,u,h,f,d){for(var p=i-1,m=i===0?a:[""],g=r2e(m),y=0,v=0,x=0;y<n;++y)for(var b=0,w=zf(t,p+1,p=vF(v=s[y])),C=t;b<g;++b)(C=hC(v>0?m[b]+" "+w:C4(w,/&\f/g,m[b])))&&(u[x++]=C);return dC(t,e,r,i===0?cC:l,u,h,f,d)}o(f2e,"ruleset");function Frt(t,e,r,n){return dC(t,e,r,lC,S4(i2e()),zf(t,2,-2),0,n)}o(Frt,"comment");function d2e(t,e,r,n,i){return dC(t,e,r,uC,zf(t,0,n),zf(t,n+1,-1),n,i)}o(d2e,"declaration");function yC(t,e){for(var r="",n=0;n<t.length;n++)r+=e(t[n],n,t,e)||"";return r}o(yC,"serialize");function m2e(t,e,r,n){switch(t.type){case e2e:if(t.children.length)break;case Qve:case Zve:case uC:return t.return=t.return||t.value;case lC:return"";case Jve:return t.return=t.value+"{"+yC(t.children,n)+"}";case cC:if(!vo(t.value=t.props.join(",")))return""}return vo(r=yC(t.children,n))?t.return=t.value+"{"+r+"}":""}o(m2e,"stringify");u7();HT();oO();var $rt="graphics-document document";function g2e(t,e){t.attr("role",$rt),e!==""&&t.attr("aria-roledescription",e)}o(g2e,"setA11yDiagramInfo");function y2e(t,e,r,n){if(t.insert!==void 0){if(r){let i=`chart-desc-${n}`;t.attr("aria-describedby",i),t.insert("desc",":first-child").attr("id",i).text(r)}if(e){let i=`chart-title-${n}`;t.attr("aria-labelledby",i),t.insert("title",":first-child").attr("id",i).text(e)}}}o(y2e,"addSVGa11yTitleDescription");s0();ji();ji();zt();Xf();BC();ir();var xy=class t{constructor(e,r,n,i,a){this.type=e;this.text=r;this.db=n;this.parser=i;this.renderer=a}static{o(this,"Diagram")}static async fromText(e,r={}){let n=cr(),i=a0(e,n);e=PX(e)+`
+`;try{jy(i)}catch{let h=ZF(i);if(!h)throw new i0(`Diagram ${i} not found.`);let{id:f,diagram:d}=await h();ad(f,d)}let{db:a,parser:s,renderer:l,init:u}=jy(i);return s.parser&&(s.parser.yy=a),a.clear?.(),u?.(n),r.title&&a.setDiagramTitle?.(r.title),await s.parse(e),new t(i,e,a,s,l)}async render(e,r){await this.renderer.draw(this.text,e,r,this)}getParser(){return this.parser}getType(){return this.type}};gr();var v2e=[];var x2e=o(()=>{v2e.forEach(t=>{t()}),v2e=[]},"attachFunctions");vt();var b2e=o(t=>t.replace(/^\s*%%(?!{)[^\n]+\n?/gm,"").trimStart(),"cleanupComments");$4();Ew();function w2e(t){let e=t.match(F4);if(!e)return{text:t,metadata:{}};let r=cm(e[1],{schema:lm})??{};r=typeof r=="object"&&!Array.isArray(r)?r:{};let n={};return r.displayMode&&(n.displayMode=r.displayMode.toString()),r.title&&(n.title=r.title.toString()),r.config&&(n.config=r.config),{text:t.slice(e[0].length),metadata:n}}o(w2e,"extractFrontMatter");ir();var zrt=o(t=>t.replace(/\r\n?/g,`
+`).replace(/<(\w+)([^>]*)>/g,(e,r,n)=>"<"+r+n.replace(/="([^"]*)"/g,"='$1'")+">"),"cleanupText"),Grt=o(t=>{let{text:e,metadata:r}=w2e(t),{displayMode:n,title:i,config:a={}}=r;return n&&(a.gantt||(a.gantt={}),a.gantt.displayMode=n),{title:i,config:a,text:e}},"processFrontmatter"),Vrt=o(t=>{let e=Gt.detectInit(t)??{},r=Gt.detectDirective(t,"wrap");return Array.isArray(r)?e.wrap=r.some(({type:n})=>n==="wrap"):r?.type==="wrap"&&(e.wrap=!0),{text:IX(t),directive:e}},"processDirectives");function bF(t){let e=zrt(t),r=Grt(e),n=Vrt(r.text),i=Fi(r.config,n.directive);return t=b2e(n.text),{code:t,title:r.title,config:i}}o(bF,"preprocessDiagram");tA();q4();ir();function T2e(t){let e=new TextEncoder().encode(t),r=Array.from(e,n=>String.fromCodePoint(n)).join("");return btoa(r)}o(T2e,"toBase64");var Urt=5e4,Hrt="graph TB;a[Maximum text size in diagram exceeded];style a fill:#faa",Wrt="sandbox",qrt="loose",Yrt="http://www.w3.org/2000/svg",Xrt="http://www.w3.org/1999/xlink",jrt="http://www.w3.org/1999/xhtml",Krt="100%",Qrt="100%",Zrt="border:0;margin:0;",Jrt="margin:0",ent="allow-top-navigation-by-user-activation allow-popups",tnt='The "iframe" tag is not supported by your browser.',rnt=["foreignobject"],nnt=["dominant-baseline"];function C2e(t){let e=bF(t);return Ly(),W$(e.config??{}),e}o(C2e,"processAndSetConfigs");async function int(t,e){py();try{let{code:r,config:n}=C2e(t);return{diagramType:(await A2e(r)).type,config:n}}catch(r){if(e?.suppressErrors)return!1;throw r}}o(int,"parse");var k2e=o((t,e,r=[])=>`
+.${t} ${e} { ${r.join(" !important; ")} !important; }`,"cssImportantStyles"),ant=o((t,e=new Map)=>{let r="";if(t.themeCSS!==void 0&&(r+=`
+${t.themeCSS}`),t.fontFamily!==void 0&&(r+=`
+:root { --mermaid-font-family: ${t.fontFamily}}`),t.altFontFamily!==void 0&&(r+=`
+:root { --mermaid-alt-font-family: ${t.altFontFamily}}`),e instanceof Map){let s=t.htmlLabels??t.flowchart?.htmlLabels?["> *","span"]:["rect","polygon","ellipse","circle","path"];e.forEach(l=>{ur(l.styles)||s.forEach(u=>{r+=k2e(l.id,u,l.styles)}),ur(l.textStyles)||(r+=k2e(l.id,"tspan",(l?.textStyles||[]).map(u=>u.replace("color","fill"))))})}return r},"createCssStyles"),snt=o((t,e,r,n)=>{let i=ant(t,r),a=zG(e,i,t.themeVariables);return yC(p2e(`${n}{${a}}`),m2e)},"createUserStyles"),ont=o((t="",e,r)=>{let n=t;return!r&&!e&&(n=n.replace(/marker-end="url\([\d+./:=?A-Za-z-]*?#/g,'marker-end="url(#')),n=na(n),n=n.replace(/<br>/g,"<br/>"),n},"cleanUpSvgCode"),lnt=o((t="",e)=>{let r=e?.viewBox?.baseVal?.height?e.viewBox.baseVal.height+"px":Qrt,n=T2e(`<body style="${Jrt}">${t}</body>`);return`<iframe style="width:${Krt};height:${r};${Zrt}" src="data:text/html;charset=UTF-8;base64,${n}" sandbox="${ent}">
+  ${tnt}
+</iframe>`},"putIntoIFrame"),E2e=o((t,e,r,n,i)=>{let a=t.append("div");a.attr("id",r),n&&a.attr("style",n);let s=a.append("svg").attr("id",e).attr("width","100%").attr("xmlns",Yrt);return i&&s.attr("xmlns:xlink",i),s.append("g"),t},"appendDivSvgG");function S2e(t,e){return t.append("iframe").attr("id",e).attr("style","width: 100%; height: 100%;").attr("sandbox","")}o(S2e,"sandboxedIframe");var cnt=o((t,e,r,n)=>{t.getElementById(e)?.remove(),t.getElementById(r)?.remove(),t.getElementById(n)?.remove()},"removeExistingElements"),unt=o(async function(t,e,r){py();let n=C2e(e);e=n.code;let i=cr();Y.debug(i),e.length>(i?.maxTextSize??Urt)&&(e=Hrt);let a="#"+t,s="i"+t,l="#"+s,u="d"+t,h="#"+u,f=o(()=>{let L=Ge(p?l:h).node();L&&"remove"in L&&L.remove()},"removeTempElements"),d=Ge("body"),p=i.securityLevel===Wrt,m=i.securityLevel===qrt,g=i.fontFamily;if(r!==void 0){if(r&&(r.innerHTML=""),p){let k=S2e(Ge(r),s);d=Ge(k.nodes()[0].contentDocument.body),d.node().style.margin=0}else d=Ge(r);E2e(d,t,u,`font-family: ${g}`,Xrt)}else{if(cnt(document,t,u,s),p){let k=S2e(Ge("body"),s);d=Ge(k.nodes()[0].contentDocument.body),d.node().style.margin=0}else d=Ge("body");E2e(d,t,u)}let y,v;try{y=await xy.fromText(e,{title:n.title})}catch(k){if(i.suppressErrorRendering)throw f(),k;y=await xy.fromText("error"),v=k}let x=d.select(h).node(),b=y.type,w=x.firstChild,C=w.firstChild,T=y.renderer.getClasses?.(e,y),E=snt(i,b,T,a),A=document.createElement("style");A.innerHTML=E,w.insertBefore(A,C);try{await y.renderer.draw(e,t,vb.version,y)}catch(k){throw i.suppressErrorRendering?f():Yde.draw(e,t,vb.version),k}let S=d.select(`${h} svg`),_=y.db.getAccTitle?.(),I=y.db.getAccDescription?.();fnt(b,S,_,I),d.select(`[id="${t}"]`).selectAll("foreignobject > *").attr("xmlns",jrt);let D=d.select(h).node().innerHTML;if(Y.debug("config.arrowMarkerAbsolute",i.arrowMarkerAbsolute),D=ont(D,p,fr(i.arrowMarkerAbsolute)),p){let k=d.select(h+" svg").node();D=lnt(D,k)}else m||(D=ch.sanitize(D,{ADD_TAGS:rnt,ADD_ATTR:nnt,HTML_INTEGRATION_POINTS:{foreignobject:!0}}));if(x2e(),v)throw v;return f(),{diagramType:b,svg:D,bindFunctions:y.db.bindFunctions}},"render");function hnt(t={}){let e=Gn({},t);e?.fontFamily&&!e.themeVariables?.fontFamily&&(e.themeVariables||(e.themeVariables={}),e.themeVariables.fontFamily=e.fontFamily),V$(e),e?.theme&&e.theme in To?e.themeVariables=To[e.theme].getThemeVariables(e.themeVariables):e&&(e.themeVariables=To.default.getThemeVariables(e.themeVariables));let r=typeof e=="object"?t7(e):r7();wy(r.logLevel),py()}o(hnt,"initialize");var A2e=o((t,e={})=>{let{code:r}=bF(t);return xy.fromText(r,e)},"getDiagramFromText");function fnt(t,e,r,n){g2e(e,t),y2e(e,r,n,e.attr("id"))}o(fnt,"addA11yInfo");var Gf=Object.freeze({render:unt,parse:int,getDiagramFromText:A2e,initialize:hnt,getConfig:cr,setConfig:X4,getSiteConfig:r7,updateSiteConfig:U$,reset:o(()=>{Ly()},"reset"),globalReset:o(()=>{Ly(lh)},"globalReset"),defaultConfig:lh});wy(cr().logLevel);Ly(cr());Yd();ir();var dnt=o((t,e,r)=>{Y.warn(t),Z9(t)?(r&&r(t.str,t.hash),e.push({...t,message:t.str,error:t})):(r&&r(t),t instanceof Error&&e.push({str:t.message,message:t.message,hash:t.name,error:t}))},"handleError"),_2e=o(async function(t={querySelector:".mermaid"}){try{await pnt(t)}catch(e){if(Z9(e)&&Y.error(e.str),nh.parseError&&nh.parseError(e),!t.suppressErrors)throw Y.error("Use the suppressErrors option to suppress these errors"),e}},"run"),pnt=o(async function({postRenderCallback:t,querySelector:e,nodes:r}={querySelector:".mermaid"}){let n=Gf.getConfig();Y.debug(`${t?"":"No "}Callback function found`);let i;if(r)i=r;else if(e)i=document.querySelectorAll(e);else throw new Error("Nodes and querySelector are both undefined");Y.debug(`Found ${i.length} diagrams`),n?.startOnLoad!==void 0&&(Y.debug("Start On Load: "+n?.startOnLoad),Gf.updateSiteConfig({startOnLoad:n?.startOnLoad}));let a=new Gt.InitIDGenerator(n.deterministicIds,n.deterministicIDSeed),s,l=[];for(let u of Array.from(i)){Y.info("Rendering diagram: "+u.id);if(u.getAttribute("data-processed"))continue;u.setAttribute("data-processed","true");let h=`mermaid-${a.next()}`;s=u.innerHTML,s=B4(Gt.entityDecode(s)).trim().replace(/<br\s*\/?>/gi,"<br/>");let f=Gt.detectInit(s);f&&Y.debug("Detected early reinit: ",f);try{let{svg:d,bindFunctions:p}=await N2e(h,s,u);u.innerHTML=d,t&&await t(h),p&&p(u)}catch(d){dnt(d,l,nh.parseError)}}if(l.length>0)throw l[0]},"runThrowsErrors"),D2e=o(function(t){Gf.initialize(t)},"initialize"),mnt=o(async function(t,e,r){Y.warn("mermaid.init is deprecated. Please use run instead."),t&&D2e(t);let n={postRenderCallback:r,querySelector:".mermaid"};typeof e=="string"?n.querySelector=e:e&&(e instanceof HTMLElement?n.nodes=[e]:n.nodes=e),await _2e(n)},"init"),gnt=o(async(t,{lazyLoad:e=!0}={})=>{py(),z4(...t),e===!1&&await Kve()},"registerExternalDiagrams"),L2e=o(function(){if(nh.startOnLoad){let{startOnLoad:t}=Gf.getConfig();t&&nh.run().catch(e=>Y.error("Mermaid failed to initialize",e))}},"contentLoaded");if(typeof document<"u"){window.addEventListener("load",L2e,!1)}var ynt=o(function(t){nh.parseError=t},"setParseErrorHandler"),vC=[],wF=!1,R2e=o(async()=>{if(!wF){for(wF=!0;vC.length>0;){let t=vC.shift();if(t)try{await t()}catch(e){Y.error("Error executing queue",e)}}wF=!1}},"executeQueue"),vnt=o(async(t,e)=>new Promise((r,n)=>{let i=o(()=>new Promise((a,s)=>{Gf.parse(t,e).then(l=>{a(l),r(l)},l=>{Y.error("Error parsing",l),nh.parseError?.(l),s(l),n(l)})}),"performCall");vC.push(i),R2e().catch(n)}),"parse"),N2e=o((t,e,r)=>new Promise((n,i)=>{let a=o(()=>new Promise((s,l)=>{Gf.render(t,e,r).then(u=>{s(u),n(u)},u=>{Y.error("Error parsing",u),nh.parseError?.(u),l(u),i(u)})}),"performCall");vC.push(a),R2e().catch(i)}),"render"),nh={startOnLoad:!0,mermaidAPI:Gf,parse:vnt,render:N2e,init:mnt,run:_2e,registerExternalDiagrams:gnt,registerLayoutLoaders:vR,initialize:D2e,parseError:void 0,contentLoaded:L2e,setParseErrorHandler:ynt,detectType:a0,registerIconPacks:P4},xnt=nh;return V2e(bnt);})();
+/*! Check if previously processed */
+/*!
+ * Wait for document loaded before starting the execution
+ */
+/*! Bundled license information:
+
+dompurify/dist/purify.es.mjs:
+  (*! @license DOMPurify 3.2.4 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.2.4/LICENSE *)
+
+js-yaml/dist/js-yaml.mjs:
+  (*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT *)
+
+lodash-es/lodash.js:
+  (**
+   * @license
+   * Lodash (Custom Build) <https://lodash.com/>
+   * Build: `lodash modularize exports="es" -o ./`
+   * Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
+   * Released under MIT license <https://lodash.com/license>
+   * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
+   * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+   *)
+
+cytoscape/dist/cytoscape.esm.mjs:
+  (*!
+  Embeddable Minimum Strictly-Compliant Promises/A+ 1.1.1 Thenable
+  Copyright (c) 2013-2014 Ralf S. Engelschall (http://engelschall.com)
+  Licensed under The MIT License (http://opensource.org/licenses/MIT)
+  *)
+  (*!
+  Event object based on jQuery events, MIT license
+  
+  https://jquery.org/license/
+  https://tldrlegal.com/license/mit-license
+  https://github.com/jquery/jquery/blob/master/src/event.js
+  *)
+  (*! Bezier curve function generator. Copyright Gaetan Renaudeau. MIT License: http://en.wikipedia.org/wiki/MIT_License *)
+  (*! Runge-Kutta spring physics function generator. Adapted from Framer.js, copyright Koen Bok. MIT License: http://en.wikipedia.org/wiki/MIT_License *)
+*/
+globalThis.mermaid = globalThis.__esbuild_esm_mermaid.default;
diff --git a/html/merfolk/panzoom.min.js b/html/merfolk/panzoom.min.js
new file mode 100644
index 0000000..017def2
--- /dev/null
+++ b/html/merfolk/panzoom.min.js
@@ -0,0 +1 @@
+(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.panzoom=f()}})(function(){var define,module,exports;return function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r}()({1:[function(require,module,exports){"use strict";var wheel=require("wheel");var animate=require("amator");var eventify=require("ngraph.events");var kinetic=require("./lib/kinetic.js");var createTextSelectionInterceptor=require("./lib/createTextSelectionInterceptor.js");var domTextSelectionInterceptor=createTextSelectionInterceptor();var fakeTextSelectorInterceptor=createTextSelectionInterceptor(true);var Transform=require("./lib/transform.js");var makeSvgController=require("./lib/svgController.js");var makeDomController=require("./lib/domController.js");var defaultZoomSpeed=1;var defaultDoubleTapZoomSpeed=1.75;var doubleTapSpeedInMS=300;module.exports=createPanZoom;function createPanZoom(domElement,options){options=options||{};var panController=options.controller;if(!panController){if(makeSvgController.canAttach(domElement)){panController=makeSvgController(domElement,options)}else if(makeDomController.canAttach(domElement)){panController=makeDomController(domElement,options)}}if(!panController){throw new Error("Cannot create panzoom for the current type of dom element")}var owner=panController.getOwner();var storedCTMResult={x:0,y:0};var isDirty=false;var transform=new Transform;if(panController.initTransform){panController.initTransform(transform)}var filterKey=typeof options.filterKey==="function"?options.filterKey:noop;var pinchSpeed=typeof options.pinchSpeed==="number"?options.pinchSpeed:1;var bounds=options.bounds;var maxZoom=typeof options.maxZoom==="number"?options.maxZoom:Number.POSITIVE_INFINITY;var minZoom=typeof options.minZoom==="number"?options.minZoom:0;var boundsPadding=typeof options.boundsPadding==="number"?options.boundsPadding:.05;var zoomDoubleClickSpeed=typeof options.zoomDoubleClickSpeed==="number"?options.zoomDoubleClickSpeed:defaultDoubleTapZoomSpeed;var beforeWheel=options.beforeWheel||noop;var beforeMouseDown=options.beforeMouseDown||noop;var speed=typeof options.zoomSpeed==="number"?options.zoomSpeed:defaultZoomSpeed;var transformOrigin=parseTransformOrigin(options.transformOrigin);var textSelection=options.enableTextSelection?fakeTextSelectorInterceptor:domTextSelectionInterceptor;validateBounds(bounds);if(options.autocenter){autocenter()}var frameAnimation;var lastTouchEndTime=0;var lastSingleFingerOffset;var touchInProgress=false;var panstartFired=false;var mouseX;var mouseY;var pinchZoomLength;var smoothScroll;if("smoothScroll"in options&&!options.smoothScroll){smoothScroll=rigidScroll()}else{smoothScroll=kinetic(getPoint,scroll,options.smoothScroll)}var moveByAnimation;var zoomToAnimation;var multiTouch;var paused=false;listenForEvents();var api={dispose:dispose,moveBy:internalMoveBy,moveTo:moveTo,smoothMoveTo:smoothMoveTo,centerOn:centerOn,zoomTo:publicZoomTo,zoomAbs:zoomAbs,smoothZoom:smoothZoom,smoothZoomAbs:smoothZoomAbs,showRectangle:showRectangle,pause:pause,resume:resume,isPaused:isPaused,getTransform:getTransformModel,getMinZoom:getMinZoom,setMinZoom:setMinZoom,getMaxZoom:getMaxZoom,setMaxZoom:setMaxZoom,getTransformOrigin:getTransformOrigin,setTransformOrigin:setTransformOrigin,getZoomSpeed:getZoomSpeed,setZoomSpeed:setZoomSpeed};eventify(api);var initialX=typeof options.initialX==="number"?options.initialX:transform.x;var initialY=typeof options.initialY==="number"?options.initialY:transform.y;var initialZoom=typeof options.initialZoom==="number"?options.initialZoom:transform.scale;if(initialX!=transform.x||initialY!=transform.y||initialZoom!=transform.Scale){zoomAbs(initialX,initialY,initialZoom)}return api;function pause(){releaseEvents();paused=true}function resume(){if(paused){listenForEvents();paused=false}}function isPaused(){return paused}function showRectangle(rect){var clientRect=owner.getBoundingClientRect();var size=transformToScreen(clientRect.width,clientRect.height);var rectWidth=rect.right-rect.left;var rectHeight=rect.bottom-rect.top;if(!Number.isFinite(rectWidth)||!Number.isFinite(rectHeight)){throw new Error("Invalid rectangle")}var dw=size.x/rectWidth;var dh=size.y/rectHeight;var scale=Math.min(dw,dh);transform.x=-(rect.left+rectWidth/2)*scale+size.x/2;transform.y=-(rect.top+rectHeight/2)*scale+size.y/2;transform.scale=scale}function transformToScreen(x,y){if(panController.getScreenCTM){var parentCTM=panController.getScreenCTM();var parentScaleX=parentCTM.a;var parentScaleY=parentCTM.d;var parentOffsetX=parentCTM.e;var parentOffsetY=parentCTM.f;storedCTMResult.x=x*parentScaleX-parentOffsetX;storedCTMResult.y=y*parentScaleY-parentOffsetY}else{storedCTMResult.x=x;storedCTMResult.y=y}return storedCTMResult}function autocenter(){var w;var h;var left=0;var top=0;var sceneBoundingBox=getBoundingBox();if(sceneBoundingBox){left=sceneBoundingBox.left;top=sceneBoundingBox.top;w=sceneBoundingBox.right-sceneBoundingBox.left;h=sceneBoundingBox.bottom-sceneBoundingBox.top}else{var ownerRect=owner.getBoundingClientRect();w=ownerRect.width;h=ownerRect.height}var bbox=panController.getBBox();if(bbox.width===0||bbox.height===0){return}var dh=h/bbox.height;var dw=w/bbox.width;var scale=Math.min(dw,dh);transform.x=-(bbox.left+bbox.width/2)*scale+w/2+left;transform.y=-(bbox.top+bbox.height/2)*scale+h/2+top;transform.scale=scale}function getTransformModel(){return transform}function getMinZoom(){return minZoom}function setMinZoom(newMinZoom){minZoom=newMinZoom}function getMaxZoom(){return maxZoom}function setMaxZoom(newMaxZoom){maxZoom=newMaxZoom}function getTransformOrigin(){return transformOrigin}function setTransformOrigin(newTransformOrigin){transformOrigin=parseTransformOrigin(newTransformOrigin)}function getZoomSpeed(){return speed}function setZoomSpeed(newSpeed){if(!Number.isFinite(newSpeed)){throw new Error("Zoom speed should be a number")}speed=newSpeed}function getPoint(){return{x:transform.x,y:transform.y}}function moveTo(x,y){transform.x=x;transform.y=y;keepTransformInsideBounds();triggerEvent("pan");makeDirty()}function moveBy(dx,dy){moveTo(transform.x+dx,transform.y+dy)}function keepTransformInsideBounds(){var boundingBox=getBoundingBox();if(!boundingBox)return;var adjusted=false;var clientRect=getClientRect();var diff=boundingBox.left-clientRect.right;if(diff>0){transform.x+=diff;adjusted=true}diff=boundingBox.right-clientRect.left;if(diff<0){transform.x+=diff;adjusted=true}diff=boundingBox.top-clientRect.bottom;if(diff>0){transform.y+=diff;adjusted=true}diff=boundingBox.bottom-clientRect.top;if(diff<0){transform.y+=diff;adjusted=true}return adjusted}function getBoundingBox(){if(!bounds)return;if(typeof bounds==="boolean"){var ownerRect=owner.getBoundingClientRect();var sceneWidth=ownerRect.width;var sceneHeight=ownerRect.height;return{left:sceneWidth*boundsPadding,top:sceneHeight*boundsPadding,right:sceneWidth*(1-boundsPadding),bottom:sceneHeight*(1-boundsPadding)}}return bounds}function getClientRect(){var bbox=panController.getBBox();var leftTop=client(bbox.left,bbox.top);return{left:leftTop.x,top:leftTop.y,right:bbox.width*transform.scale+leftTop.x,bottom:bbox.height*transform.scale+leftTop.y}}function client(x,y){return{x:x*transform.scale+transform.x,y:y*transform.scale+transform.y}}function makeDirty(){isDirty=true;frameAnimation=window.requestAnimationFrame(frame)}function zoomByRatio(clientX,clientY,ratio){if(isNaN(clientX)||isNaN(clientY)||isNaN(ratio)){throw new Error("zoom requires valid numbers")}var newScale=transform.scale*ratio;if(newScale<minZoom){if(transform.scale===minZoom)return;ratio=minZoom/transform.scale}if(newScale>maxZoom){if(transform.scale===maxZoom)return;ratio=maxZoom/transform.scale}var size=transformToScreen(clientX,clientY);transform.x=size.x-ratio*(size.x-transform.x);transform.y=size.y-ratio*(size.y-transform.y);if(bounds&&boundsPadding===1&&minZoom===1){transform.scale*=ratio;keepTransformInsideBounds()}else{var transformAdjusted=keepTransformInsideBounds();if(!transformAdjusted)transform.scale*=ratio}triggerEvent("zoom");makeDirty()}function zoomAbs(clientX,clientY,zoomLevel){var ratio=zoomLevel/transform.scale;zoomByRatio(clientX,clientY,ratio)}function centerOn(ui){var parent=ui.ownerSVGElement;if(!parent)throw new Error("ui element is required to be within the scene");var clientRect=ui.getBoundingClientRect();var cx=clientRect.left+clientRect.width/2;var cy=clientRect.top+clientRect.height/2;var container=parent.getBoundingClientRect();var dx=container.width/2-cx;var dy=container.height/2-cy;internalMoveBy(dx,dy,true)}function smoothMoveTo(x,y){internalMoveBy(x-transform.x,y-transform.y,true)}function internalMoveBy(dx,dy,smooth){if(!smooth){return moveBy(dx,dy)}if(moveByAnimation)moveByAnimation.cancel();var from={x:0,y:0};var to={x:dx,y:dy};var lastX=0;var lastY=0;moveByAnimation=animate(from,to,{step:function(v){moveBy(v.x-lastX,v.y-lastY);lastX=v.x;lastY=v.y}})}function scroll(x,y){cancelZoomAnimation();moveTo(x,y)}function dispose(){releaseEvents()}function listenForEvents(){owner.addEventListener("mousedown",onMouseDown,{passive:false});owner.addEventListener("dblclick",onDoubleClick,{passive:false});owner.addEventListener("touchstart",onTouch,{passive:false});owner.addEventListener("keydown",onKeyDown,{passive:false});wheel.addWheelListener(owner,onMouseWheel,{passive:false});makeDirty()}function releaseEvents(){wheel.removeWheelListener(owner,onMouseWheel);owner.removeEventListener("mousedown",onMouseDown);owner.removeEventListener("keydown",onKeyDown);owner.removeEventListener("dblclick",onDoubleClick);owner.removeEventListener("touchstart",onTouch);if(frameAnimation){window.cancelAnimationFrame(frameAnimation);frameAnimation=0}smoothScroll.cancel();releaseDocumentMouse();releaseTouches();textSelection.release();triggerPanEnd()}function frame(){if(isDirty)applyTransform()}function applyTransform(){isDirty=false;panController.applyTransform(transform);triggerEvent("transform");frameAnimation=0}function onKeyDown(e){var x=0,y=0,z=0;if(e.keyCode===38){y=1}else if(e.keyCode===40){y=-1}else if(e.keyCode===37){x=1}else if(e.keyCode===39){x=-1}else if(e.keyCode===189||e.keyCode===109){z=1}else if(e.keyCode===187||e.keyCode===107){z=-1}if(filterKey(e,x,y,z)){return}if(x||y){e.preventDefault();e.stopPropagation();var clientRect=owner.getBoundingClientRect();var offset=Math.min(clientRect.width,clientRect.height);var moveSpeedRatio=.05;var dx=offset*moveSpeedRatio*x;var dy=offset*moveSpeedRatio*y;internalMoveBy(dx,dy)}if(z){var scaleMultiplier=getScaleMultiplier(z*100);var offset=transformOrigin?getTransformOriginOffset():midPoint();publicZoomTo(offset.x,offset.y,scaleMultiplier)}}function midPoint(){var ownerRect=owner.getBoundingClientRect();return{x:ownerRect.width/2,y:ownerRect.height/2}}function onTouch(e){beforeTouch(e);if(e.touches.length===1){return handleSingleFingerTouch(e,e.touches[0])}else if(e.touches.length===2){pinchZoomLength=getPinchZoomLength(e.touches[0],e.touches[1]);multiTouch=true;startTouchListenerIfNeeded()}}function beforeTouch(e){if(options.onTouch&&!options.onTouch(e)){return}e.stopPropagation();e.preventDefault()}function beforeDoubleClick(e){if(options.onDoubleClick&&!options.onDoubleClick(e)){return}e.preventDefault();e.stopPropagation()}function handleSingleFingerTouch(e){var touch=e.touches[0];var offset=getOffsetXY(touch);lastSingleFingerOffset=offset;var point=transformToScreen(offset.x,offset.y);mouseX=point.x;mouseY=point.y;smoothScroll.cancel();startTouchListenerIfNeeded()}function startTouchListenerIfNeeded(){if(touchInProgress){return}touchInProgress=true;document.addEventListener("touchmove",handleTouchMove);document.addEventListener("touchend",handleTouchEnd);document.addEventListener("touchcancel",handleTouchEnd)}function handleTouchMove(e){if(e.touches.length===1){e.stopPropagation();var touch=e.touches[0];var offset=getOffsetXY(touch);var point=transformToScreen(offset.x,offset.y);var dx=point.x-mouseX;var dy=point.y-mouseY;if(dx!==0&&dy!==0){triggerPanStart()}mouseX=point.x;mouseY=point.y;internalMoveBy(dx,dy)}else if(e.touches.length===2){multiTouch=true;var t1=e.touches[0];var t2=e.touches[1];var currentPinchLength=getPinchZoomLength(t1,t2);var scaleMultiplier=1+(currentPinchLength/pinchZoomLength-1)*pinchSpeed;var firstTouchPoint=getOffsetXY(t1);var secondTouchPoint=getOffsetXY(t2);mouseX=(firstTouchPoint.x+secondTouchPoint.x)/2;mouseY=(firstTouchPoint.y+secondTouchPoint.y)/2;if(transformOrigin){var offset=getTransformOriginOffset();mouseX=offset.x;mouseY=offset.y}publicZoomTo(mouseX,mouseY,scaleMultiplier);pinchZoomLength=currentPinchLength;e.stopPropagation();e.preventDefault()}}function handleTouchEnd(e){if(e.touches.length>0){var offset=getOffsetXY(e.touches[0]);var point=transformToScreen(offset.x,offset.y);mouseX=point.x;mouseY=point.y}else{var now=new Date;if(now-lastTouchEndTime<doubleTapSpeedInMS){if(transformOrigin){var offset=getTransformOriginOffset();smoothZoom(offset.x,offset.y,zoomDoubleClickSpeed)}else{smoothZoom(lastSingleFingerOffset.x,lastSingleFingerOffset.y,zoomDoubleClickSpeed)}}lastTouchEndTime=now;triggerPanEnd();releaseTouches()}}function getPinchZoomLength(finger1,finger2){var dx=finger1.clientX-finger2.clientX;var dy=finger1.clientY-finger2.clientY;return Math.sqrt(dx*dx+dy*dy)}function onDoubleClick(e){beforeDoubleClick(e);var offset=getOffsetXY(e);if(transformOrigin){offset=getTransformOriginOffset()}smoothZoom(offset.x,offset.y,zoomDoubleClickSpeed)}function onMouseDown(e){if(beforeMouseDown(e))return;if(touchInProgress){e.stopPropagation();return false}var isLeftButton=e.button===1&&window.event!==null||e.button===0;if(!isLeftButton)return;smoothScroll.cancel();var offset=getOffsetXY(e);var point=transformToScreen(offset.x,offset.y);mouseX=point.x;mouseY=point.y;document.addEventListener("mousemove",onMouseMove);document.addEventListener("mouseup",onMouseUp);textSelection.capture(e.target||e.srcElement);return false}function onMouseMove(e){if(touchInProgress)return;triggerPanStart();var offset=getOffsetXY(e);var point=transformToScreen(offset.x,offset.y);var dx=point.x-mouseX;var dy=point.y-mouseY;mouseX=point.x;mouseY=point.y;internalMoveBy(dx,dy)}function onMouseUp(){textSelection.release();triggerPanEnd();releaseDocumentMouse()}function releaseDocumentMouse(){document.removeEventListener("mousemove",onMouseMove);document.removeEventListener("mouseup",onMouseUp);panstartFired=false}function releaseTouches(){document.removeEventListener("touchmove",handleTouchMove);document.removeEventListener("touchend",handleTouchEnd);document.removeEventListener("touchcancel",handleTouchEnd);panstartFired=false;multiTouch=false;touchInProgress=false}function onMouseWheel(e){if(beforeWheel(e))return;smoothScroll.cancel();var delta=e.deltaY;if(e.deltaMode>0)delta*=100;var scaleMultiplier=getScaleMultiplier(delta);if(scaleMultiplier!==1){var offset=transformOrigin?getTransformOriginOffset():getOffsetXY(e);publicZoomTo(offset.x,offset.y,scaleMultiplier);e.preventDefault()}}function getOffsetXY(e){var offsetX,offsetY;var ownerRect=owner.getBoundingClientRect();offsetX=e.clientX-ownerRect.left;offsetY=e.clientY-ownerRect.top;return{x:offsetX,y:offsetY}}function smoothZoom(clientX,clientY,scaleMultiplier){var fromValue=transform.scale;var from={scale:fromValue};var to={scale:scaleMultiplier*fromValue};smoothScroll.cancel();cancelZoomAnimation();zoomToAnimation=animate(from,to,{step:function(v){zoomAbs(clientX,clientY,v.scale)},done:triggerZoomEnd})}function smoothZoomAbs(clientX,clientY,toScaleValue){var fromValue=transform.scale;var from={scale:fromValue};var to={scale:toScaleValue};smoothScroll.cancel();cancelZoomAnimation();zoomToAnimation=animate(from,to,{step:function(v){zoomAbs(clientX,clientY,v.scale)}})}function getTransformOriginOffset(){var ownerRect=owner.getBoundingClientRect();return{x:ownerRect.width*transformOrigin.x,y:ownerRect.height*transformOrigin.y}}function publicZoomTo(clientX,clientY,scaleMultiplier){smoothScroll.cancel();cancelZoomAnimation();return zoomByRatio(clientX,clientY,scaleMultiplier)}function cancelZoomAnimation(){if(zoomToAnimation){zoomToAnimation.cancel();zoomToAnimation=null}}function getScaleMultiplier(delta){var sign=Math.sign(delta);var deltaAdjustedSpeed=Math.min(.25,Math.abs(speed*delta/128));return 1-sign*deltaAdjustedSpeed}function triggerPanStart(){if(!panstartFired){triggerEvent("panstart");panstartFired=true;smoothScroll.start()}}function triggerPanEnd(){if(panstartFired){if(!multiTouch)smoothScroll.stop();triggerEvent("panend")}}function triggerZoomEnd(){triggerEvent("zoomend")}function triggerEvent(name){api.fire(name,api)}}function parseTransformOrigin(options){if(!options)return;if(typeof options==="object"){if(!isNumber(options.x)||!isNumber(options.y))failTransformOrigin(options);return options}failTransformOrigin()}function failTransformOrigin(options){console.error(options);throw new Error(["Cannot parse transform origin.","Some good examples:",'  "center center" can be achieved with {x: 0.5, y: 0.5}','  "top center" can be achieved with {x: 0.5, y: 0}','  "bottom right" can be achieved with {x: 1, y: 1}'].join("\n"))}function noop(){}function validateBounds(bounds){var boundsType=typeof bounds;if(boundsType==="undefined"||boundsType==="boolean")return;var validBounds=isNumber(bounds.left)&&isNumber(bounds.top)&&isNumber(bounds.bottom)&&isNumber(bounds.right);if(!validBounds)throw new Error("Bounds object is not valid. It can be: "+"undefined, boolean (true|false) or an object {left, top, right, bottom}")}function isNumber(x){return Number.isFinite(x)}function isNaN(value){if(Number.isNaN){return Number.isNaN(value)}return value!==value}function rigidScroll(){return{start:noop,stop:noop,cancel:noop}}function autoRun(){if(typeof document==="undefined")return;var scripts=document.getElementsByTagName("script");if(!scripts)return;var panzoomScript;for(var i=0;i<scripts.length;++i){var x=scripts[i];if(x.src&&x.src.match(/\bpanzoom(\.min)?\.js/)){panzoomScript=x;break}}if(!panzoomScript)return;var query=panzoomScript.getAttribute("query");if(!query)return;var globalName=panzoomScript.getAttribute("name")||"pz";var started=Date.now();tryAttach();function tryAttach(){var el=document.querySelector(query);if(!el){var now=Date.now();var elapsed=now-started;if(elapsed<2e3){setTimeout(tryAttach,100);return}console.error("Cannot find the panzoom element",globalName);return}var options=collectOptions(panzoomScript);console.log(options);window[globalName]=createPanZoom(el,options)}function collectOptions(script){var attrs=script.attributes;var options={};for(var i=0;i<attrs.length;++i){var attr=attrs[i];var nameValue=getPanzoomAttributeNameValue(attr);if(nameValue){options[nameValue.name]=nameValue.value}}return options}function getPanzoomAttributeNameValue(attr){if(!attr.name)return;var isPanZoomAttribute=attr.name[0]==="p"&&attr.name[1]==="z"&&attr.name[2]==="-";if(!isPanZoomAttribute)return;var name=attr.name.substr(3);var value=JSON.parse(attr.value);return{name:name,value:value}}}autoRun()},{"./lib/createTextSelectionInterceptor.js":2,"./lib/domController.js":3,"./lib/kinetic.js":4,"./lib/svgController.js":5,"./lib/transform.js":6,amator:7,"ngraph.events":9,wheel:10}],2:[function(require,module,exports){module.exports=createTextSelectionInterceptor;function createTextSelectionInterceptor(useFake){if(useFake){return{capture:noop,release:noop}}var dragObject;var prevSelectStart;var prevDragStart;var wasCaptured=false;return{capture:capture,release:release};function capture(domObject){wasCaptured=true;prevSelectStart=window.document.onselectstart;prevDragStart=window.document.ondragstart;window.document.onselectstart=disabled;dragObject=domObject;dragObject.ondragstart=disabled}function release(){if(!wasCaptured)return;wasCaptured=false;window.document.onselectstart=prevSelectStart;if(dragObject)dragObject.ondragstart=prevDragStart}}function disabled(e){e.stopPropagation();return false}function noop(){}},{}],3:[function(require,module,exports){module.exports=makeDomController;module.exports.canAttach=isDomElement;function makeDomController(domElement,options){var elementValid=isDomElement(domElement);if(!elementValid){throw new Error("panzoom requires DOM element to be attached to the DOM tree")}var owner=domElement.parentElement;domElement.scrollTop=0;if(!options.disableKeyboardInteraction){owner.setAttribute("tabindex",0)}var api={getBBox:getBBox,getOwner:getOwner,applyTransform:applyTransform};return api;function getOwner(){return owner}function getBBox(){return{left:0,top:0,width:domElement.clientWidth,height:domElement.clientHeight}}function applyTransform(transform){domElement.style.transformOrigin="0 0 0";domElement.style.transform="matrix("+transform.scale+", 0, 0, "+transform.scale+", "+transform.x+", "+transform.y+")"}}function isDomElement(element){return element&&element.parentElement&&element.style}},{}],4:[function(require,module,exports){module.exports=kinetic;function kinetic(getPoint,scroll,settings){if(typeof settings!=="object"){settings={}}var minVelocity=typeof settings.minVelocity==="number"?settings.minVelocity:5;var amplitude=typeof settings.amplitude==="number"?settings.amplitude:.25;var cancelAnimationFrame=typeof settings.cancelAnimationFrame==="function"?settings.cancelAnimationFrame:getCancelAnimationFrame();var requestAnimationFrame=typeof settings.requestAnimationFrame==="function"?settings.requestAnimationFrame:getRequestAnimationFrame();var lastPoint;var timestamp;var timeConstant=342;var ticker;var vx,targetX,ax;var vy,targetY,ay;var raf;return{start:start,stop:stop,cancel:dispose};function dispose(){cancelAnimationFrame(ticker);cancelAnimationFrame(raf)}function start(){lastPoint=getPoint();ax=ay=vx=vy=0;timestamp=new Date;cancelAnimationFrame(ticker);cancelAnimationFrame(raf);ticker=requestAnimationFrame(track)}function track(){var now=Date.now();var elapsed=now-timestamp;timestamp=now;var currentPoint=getPoint();var dx=currentPoint.x-lastPoint.x;var dy=currentPoint.y-lastPoint.y;lastPoint=currentPoint;var dt=1e3/(1+elapsed);vx=.8*dx*dt+.2*vx;vy=.8*dy*dt+.2*vy;ticker=requestAnimationFrame(track)}function stop(){cancelAnimationFrame(ticker);cancelAnimationFrame(raf);var currentPoint=getPoint();targetX=currentPoint.x;targetY=currentPoint.y;timestamp=Date.now();if(vx<-minVelocity||vx>minVelocity){ax=amplitude*vx;targetX+=ax}if(vy<-minVelocity||vy>minVelocity){ay=amplitude*vy;targetY+=ay}raf=requestAnimationFrame(autoScroll)}function autoScroll(){var elapsed=Date.now()-timestamp;var moving=false;var dx=0;var dy=0;if(ax){dx=-ax*Math.exp(-elapsed/timeConstant);if(dx>.5||dx<-.5)moving=true;else dx=ax=0}if(ay){dy=-ay*Math.exp(-elapsed/timeConstant);if(dy>.5||dy<-.5)moving=true;else dy=ay=0}if(moving){scroll(targetX+dx,targetY+dy);raf=requestAnimationFrame(autoScroll)}}}function getCancelAnimationFrame(){if(typeof cancelAnimationFrame==="function")return cancelAnimationFrame;return clearTimeout}function getRequestAnimationFrame(){if(typeof requestAnimationFrame==="function")return requestAnimationFrame;return function(handler){return setTimeout(handler,16)}}},{}],5:[function(require,module,exports){module.exports=makeSvgController;module.exports.canAttach=isSVGElement;function makeSvgController(svgElement,options){if(!isSVGElement(svgElement)){throw new Error("svg element is required for svg.panzoom to work")}var owner=svgElement.ownerSVGElement;if(!owner){throw new Error("Do not apply panzoom to the root <svg> element. "+"Use its child instead (e.g. <g></g>). "+"As of March 2016 only FireFox supported transform on the root element")}if(!options.disableKeyboardInteraction){owner.setAttribute("tabindex",0)}var api={getBBox:getBBox,getScreenCTM:getScreenCTM,getOwner:getOwner,applyTransform:applyTransform,initTransform:initTransform};return api;function getOwner(){return owner}function getBBox(){var bbox=svgElement.getBBox();return{left:bbox.x,top:bbox.y,width:bbox.width,height:bbox.height}}function getScreenCTM(){var ctm=owner.getCTM();if(!ctm){return owner.getScreenCTM()}return ctm}function initTransform(transform){var screenCTM=svgElement.getCTM();if(screenCTM===null){screenCTM=document.createElementNS("http://www.w3.org/2000/svg","svg").createSVGMatrix()}transform.x=screenCTM.e;transform.y=screenCTM.f;transform.scale=screenCTM.a;owner.removeAttributeNS(null,"viewBox")}function applyTransform(transform){svgElement.setAttribute("transform","matrix("+transform.scale+" 0 0 "+transform.scale+" "+transform.x+" "+transform.y+")")}}function isSVGElement(element){return element&&element.ownerSVGElement&&element.getCTM}},{}],6:[function(require,module,exports){module.exports=Transform;function Transform(){this.x=0;this.y=0;this.scale=1}},{}],7:[function(require,module,exports){var BezierEasing=require("bezier-easing");var animations={ease:BezierEasing(.25,.1,.25,1),easeIn:BezierEasing(.42,0,1,1),easeOut:BezierEasing(0,0,.58,1),easeInOut:BezierEasing(.42,0,.58,1),linear:BezierEasing(0,0,1,1)};module.exports=animate;module.exports.makeAggregateRaf=makeAggregateRaf;module.exports.sharedScheduler=makeAggregateRaf();function animate(source,target,options){var start=Object.create(null);var diff=Object.create(null);options=options||{};var easing=typeof options.easing==="function"?options.easing:animations[options.easing];if(!easing){if(options.easing){console.warn("Unknown easing function in amator: "+options.easing)}easing=animations.ease}var step=typeof options.step==="function"?options.step:noop;var done=typeof options.done==="function"?options.done:noop;var scheduler=getScheduler(options.scheduler);var keys=Object.keys(target);keys.forEach(function(key){start[key]=source[key];diff[key]=target[key]-source[key]});var durationInMs=typeof options.duration==="number"?options.duration:400;var durationInFrames=Math.max(1,durationInMs*.06);var previousAnimationId;var frame=0;previousAnimationId=scheduler.next(loop);return{cancel:cancel};function cancel(){scheduler.cancel(previousAnimationId);previousAnimationId=0}function loop(){var t=easing(frame/durationInFrames);frame+=1;setValues(t);if(frame<=durationInFrames){previousAnimationId=scheduler.next(loop);step(source)}else{previousAnimationId=0;setTimeout(function(){done(source)},0)}}function setValues(t){keys.forEach(function(key){source[key]=diff[key]*t+start[key]})}}function noop(){}function getScheduler(scheduler){if(!scheduler){var canRaf=typeof window!=="undefined"&&window.requestAnimationFrame;return canRaf?rafScheduler():timeoutScheduler()}if(typeof scheduler.next!=="function")throw new Error("Scheduler is supposed to have next(cb) function");if(typeof scheduler.cancel!=="function")throw new Error("Scheduler is supposed to have cancel(handle) function");return scheduler}function rafScheduler(){return{next:window.requestAnimationFrame.bind(window),cancel:window.cancelAnimationFrame.bind(window)}}function timeoutScheduler(){return{next:function(cb){return setTimeout(cb,1e3/60)},cancel:function(id){return clearTimeout(id)}}}function makeAggregateRaf(){var frontBuffer=new Set;var backBuffer=new Set;var frameToken=0;return{next:next,cancel:next,clearAll:clearAll};function clearAll(){frontBuffer.clear();backBuffer.clear();cancelAnimationFrame(frameToken);frameToken=0}function next(callback){backBuffer.add(callback);renderNextFrame()}function renderNextFrame(){if(!frameToken)frameToken=requestAnimationFrame(renderFrame)}function renderFrame(){frameToken=0;var t=backBuffer;backBuffer=frontBuffer;frontBuffer=t;frontBuffer.forEach(function(callback){callback()});frontBuffer.clear()}function cancel(callback){backBuffer.delete(callback)}}},{"bezier-easing":8}],8:[function(require,module,exports){var NEWTON_ITERATIONS=4;var NEWTON_MIN_SLOPE=.001;var SUBDIVISION_PRECISION=1e-7;var SUBDIVISION_MAX_ITERATIONS=10;var kSplineTableSize=11;var kSampleStepSize=1/(kSplineTableSize-1);var float32ArraySupported=typeof Float32Array==="function";function A(aA1,aA2){return 1-3*aA2+3*aA1}function B(aA1,aA2){return 3*aA2-6*aA1}function C(aA1){return 3*aA1}function calcBezier(aT,aA1,aA2){return((A(aA1,aA2)*aT+B(aA1,aA2))*aT+C(aA1))*aT}function getSlope(aT,aA1,aA2){return 3*A(aA1,aA2)*aT*aT+2*B(aA1,aA2)*aT+C(aA1)}function binarySubdivide(aX,aA,aB,mX1,mX2){var currentX,currentT,i=0;do{currentT=aA+(aB-aA)/2;currentX=calcBezier(currentT,mX1,mX2)-aX;if(currentX>0){aB=currentT}else{aA=currentT}}while(Math.abs(currentX)>SUBDIVISION_PRECISION&&++i<SUBDIVISION_MAX_ITERATIONS);return currentT}function newtonRaphsonIterate(aX,aGuessT,mX1,mX2){for(var i=0;i<NEWTON_ITERATIONS;++i){var currentSlope=getSlope(aGuessT,mX1,mX2);if(currentSlope===0){return aGuessT}var currentX=calcBezier(aGuessT,mX1,mX2)-aX;aGuessT-=currentX/currentSlope}return aGuessT}function LinearEasing(x){return x}module.exports=function bezier(mX1,mY1,mX2,mY2){if(!(0<=mX1&&mX1<=1&&0<=mX2&&mX2<=1)){throw new Error("bezier x values must be in [0, 1] range")}if(mX1===mY1&&mX2===mY2){return LinearEasing}var sampleValues=float32ArraySupported?new Float32Array(kSplineTableSize):new Array(kSplineTableSize);for(var i=0;i<kSplineTableSize;++i){sampleValues[i]=calcBezier(i*kSampleStepSize,mX1,mX2)}function getTForX(aX){var intervalStart=0;var currentSample=1;var lastSample=kSplineTableSize-1;for(;currentSample!==lastSample&&sampleValues[currentSample]<=aX;++currentSample){intervalStart+=kSampleStepSize}--currentSample;var dist=(aX-sampleValues[currentSample])/(sampleValues[currentSample+1]-sampleValues[currentSample]);var guessForT=intervalStart+dist*kSampleStepSize;var initialSlope=getSlope(guessForT,mX1,mX2);if(initialSlope>=NEWTON_MIN_SLOPE){return newtonRaphsonIterate(aX,guessForT,mX1,mX2)}else if(initialSlope===0){return guessForT}else{return binarySubdivide(aX,intervalStart,intervalStart+kSampleStepSize,mX1,mX2)}}return function BezierEasing(x){if(x===0){return 0}if(x===1){return 1}return calcBezier(getTForX(x),mY1,mY2)}}},{}],9:[function(require,module,exports){module.exports=function eventify(subject){validateSubject(subject);var eventsStorage=createEventsStorage(subject);subject.on=eventsStorage.on;subject.off=eventsStorage.off;subject.fire=eventsStorage.fire;return subject};function createEventsStorage(subject){var registeredEvents=Object.create(null);return{on:function(eventName,callback,ctx){if(typeof callback!=="function"){throw new Error("callback is expected to be a function")}var handlers=registeredEvents[eventName];if(!handlers){handlers=registeredEvents[eventName]=[]}handlers.push({callback:callback,ctx:ctx});return subject},off:function(eventName,callback){var wantToRemoveAll=typeof eventName==="undefined";if(wantToRemoveAll){registeredEvents=Object.create(null);return subject}if(registeredEvents[eventName]){var deleteAllCallbacksForEvent=typeof callback!=="function";if(deleteAllCallbacksForEvent){delete registeredEvents[eventName]}else{var callbacks=registeredEvents[eventName];for(var i=0;i<callbacks.length;++i){if(callbacks[i].callback===callback){callbacks.splice(i,1)}}}}return subject},fire:function(eventName){var callbacks=registeredEvents[eventName];if(!callbacks){return subject}var fireArguments;if(arguments.length>1){fireArguments=Array.prototype.splice.call(arguments,1)}for(var i=0;i<callbacks.length;++i){var callbackInfo=callbacks[i];callbackInfo.callback.apply(callbackInfo.ctx,fireArguments)}return subject}}}function validateSubject(subject){if(!subject){throw new Error("Eventify cannot use falsy object as events subject")}var reservedWords=["on","fire","off"];for(var i=0;i<reservedWords.length;++i){if(subject.hasOwnProperty(reservedWords[i])){throw new Error("Subject cannot be eventified, since it already has property '"+reservedWords[i]+"'")}}}},{}],10:[function(require,module,exports){module.exports=addWheelListener;module.exports.addWheelListener=addWheelListener;module.exports.removeWheelListener=removeWheelListener;function addWheelListener(element,listener,useCapture){element.addEventListener("wheel",listener,useCapture)}function removeWheelListener(element,listener,useCapture){element.removeEventListener("wheel",listener,useCapture)}},{}]},{},[1])(1)});
diff --git a/html/merfolk/styles.css b/html/merfolk/styles.css
new file mode 100644
index 0000000..3b4e2b5
--- /dev/null
+++ b/html/merfolk/styles.css
@@ -0,0 +1,160 @@
+* {
+    box-sizing: border-box;
+    margin: 0;
+    padding: 0;
+}
+
+body {
+    font-family: 'Inter', Arial, sans-serif;
+    background: #fff;
+    color: #111;
+    padding: 32px;
+}
+
+.container {
+    max-width: 1200px;
+    margin: 0 auto;
+    border: 4px solid #111;
+    padding: 32px;
+    background: #fff;
+    display: flex;
+    gap: 32px;
+}
+
+.editor-section, .preview-section {
+    flex: 1;
+    min-width: 0;
+    display: flex;
+    flex-direction: column;
+    background: #fff;
+    min-height: 400px;
+    height: 80vh;
+}
+
+#mermaid-input {
+    flex: 1;
+    min-height: 300px;
+    resize: vertical;
+}
+
+#mermaid-preview {
+    min-height: 300px;
+    background: #fff;
+    border: none;
+    margin-top: 0;
+    margin-bottom: 0;
+    padding: 0;
+    box-shadow: none;
+    border-radius: 0;
+    flex: 1;
+    overflow: hidden;
+    position: relative;
+    width: 100%;
+    height: 100%;
+    display: flex;
+    align-items: center;
+    justify-content: center;
+}
+
+#mermaid-preview svg {
+    max-width: 100%;
+    max-height: 100%;
+    display: block;
+}
+
+h1, .main-title {
+    font-size: 2rem;
+    font-weight: 700;
+    text-transform: uppercase;
+    letter-spacing: 2px;
+    margin-bottom: 16px;
+    margin-top: 0;
+}
+
+hr, .main-title-underline {
+    border: none;
+    border-top: 4px solid #111;
+    margin: 0 0 32px 0;
+}
+
+.section-box {
+    border: 3px solid #111;
+    padding: 24px;
+    margin-bottom: 32px;
+    background: #fff;
+}
+
+.section-title {
+    font-size: 1rem;
+    font-weight: 700;
+    text-transform: uppercase;
+    margin-bottom: 12px;
+    letter-spacing: 1px;
+}
+
+input[type="text"], textarea {
+    width: 100%;
+    font-size: 1.2rem;
+    padding: 16px;
+    border: 3px solid #111;
+    background: #fff;
+    color: #111;
+    margin-top: 8px;
+    margin-bottom: 0;
+    outline: none;
+    font-family: inherit;
+    font-weight: 400;
+    box-shadow: none;
+    border-radius: 0;
+}
+
+input[type="text"]::placeholder, textarea::placeholder {
+    color: #bbb;
+    font-weight: 400;
+}
+
+#error-message {
+    min-height: 20px;
+    color: #dc3545;
+    font-size: 14px;
+    margin-top: 10px;
+}
+
+.button-group {
+    display: flex;
+    gap: 16px;
+    margin-bottom: 32px;
+}
+
+#export-btn, #export-svg-btn, #reset-btn {
+    flex: 1;
+    margin: 0;
+    padding: 12px;
+    font-size: 1rem;
+    font-weight: 700;
+    text-transform: uppercase;
+    border: 3px solid #111;
+    background: #fff;
+    color: #111;
+    cursor: pointer;
+    border-radius: 0;
+    box-shadow: none;
+    transition: background 0.1s;
+}
+
+#export-btn:hover, #export-svg-btn:hover, #reset-btn:hover {
+    background: #f5f5f5;
+}
+
+@media (max-width: 900px) {
+    .container {
+        flex-direction: column;
+        gap: 0;
+        padding: 12px;
+    }
+    .editor-section, .preview-section {
+        min-height: 200px;
+        padding: 12px;
+        margin-bottom: 24px;
+    }
+} 
\ No newline at end of file
diff --git a/html/playground/index.html b/html/playground/index.html
index 680f022..a236d2f 100644
--- a/html/playground/index.html
+++ b/html/playground/index.html
@@ -6,238 +6,243 @@
     <title>JavaScript Playground</title>
     <meta name="description" content="A JavaScript jungle-gym for doing experiments and sharing scrappy fiddles.">
     <style>
-        body {
-            display: flex;
-            flex-direction: column;
-            align-items: center;
-            background-color: #ddd;
-            padding: 10px;
-            height: 100vh;
-            margin: 0;
-        }
-
-        textarea {
-            width: 100%;
-            height: 64%;
-            font-family: monospace;
-            background-color: #FFFEEC;
-            border: 2px solid #000;
-            scrollbar-width: none;            
-            font-size: 1rem;
-            margin-bottom: 10px;
-            padding: 10px;
-            box-sizing: border-box;
-            resize: none;
-            border-bottom: 12px solid teal;
-            -webkit-user-modify: read-write-plaintext-only;
-        }
-
-        textarea::-webkit-scrollbar {
-            display: none;
-        }
-
-        textarea::selection {
-            background-color: #EFECA7;
-        }
-
-        textarea:focus {
-            outline: none;
-        }
-
-        #console {
-            width: 100%;
-            height: 22%;
-            background-color: #000;
-            color: #0fc;
-            font-family: monospace;
-            font-size: 1rem;
-            overflow-y: auto;
-            padding: 10px;
-            box-sizing: border-box;
-            white-space: pre-wrap;
-        }
-
-        .button-container {
-            width: 100%;
-            display: flex;
-            justify-content: flex-end;
-            margin-bottom: 10px;
-        }
-
-        button {
-            padding: 10px 20px;
-            font-size: 1rem;
-            margin-left: 10px;
-            cursor: pointer;
-            border: none;
-            transition: background-color 0.3s ease;
-        }
-
-        button:hover, button:focus {
-            outline: none; 
-        }
-
-        button.run {
-            background-color: teal;
-            color: #FFFFFF;
-        }
+        html, body { height: 100%; margin: 0; padding: 0; }
+        body { display: flex; flex-direction: column; background-color: #ddd; }
+        #app { display: flex; flex-direction: column; padding: 10px; height: 100%; box-sizing: border-box; }
+        .button-container { width: 100%; display: flex; justify-content: flex-end; margin-bottom: 10px; flex-shrink: 0; }
+        button { padding: 10px 20px; font-size: 1rem; margin-left: 10px; cursor: pointer; border: none; transition: background-color 0.3s ease; }
+        button:hover, button:focus { outline: none; }
+        button:disabled { background-color: #999; cursor: not-allowed; }
+        button.run { background-color: teal; color: #FFFFFF; }
+        textarea { width: 100%; height: 64%; font-family: monospace; background-color: #FFFEEC; border: 2px solid #000; scrollbar-width: none; font-size: 1rem; margin-bottom: 10px; padding: 10px; box-sizing: border-box; resize: none; border-bottom: 12px solid teal; -webkit-user-modify: read-write-plaintext-only; flex-shrink: 0; }
+        textarea::-webkit-scrollbar { display: none; }
+        textarea::selection { background-color: #EFECA7; }
+        textarea:focus { outline: none; }
+        #console { width: 100%; height: 22%; background-color: #000; color: #0fc; font-family: monospace; font-size: 1rem; overflow-y: auto; padding: 10px; box-sizing: border-box; white-space: pre-wrap; flex-grow: 1; }
+        #console .log-item { margin-bottom: 5px; border-bottom: 1px solid #333; }
+        #console details { cursor: pointer; }
+        #console summary { outline: none; }
     </style>
 </head>
 <body>
+    <div id="app"></div>
 
-    <div class="playground" id="playground">    
-        <div class="seesaw" id="seesaw"></div>
-        <div class="slide" id="slide"></div>
-    </div>
-
-    <div class="button-container">
-        <button onclick="clearEverything()">Clear</button>
-        <button onclick="downloadCodeAndEditor()">Download</button>
-        <button onclick="shareCode()">Share</button>
-        <button onclick="evaluateCode()" class="run">Run Code</button>
-    </div>
-    <textarea id="codeInput" placeholder="Enter JavaScript..." spellcheck="false"></textarea>
-    <div id="console"></div>
+    <iframe id="sandbox" style="display: none;" title="JavaScript Sandbox"></iframe>
 
     <script>
-        function evaluateCode() {
-            const code = document.getElementById('codeInput').value;
-            const consoleDiv = document.getElementById('console');
-            consoleDiv.innerHTML = '';
-
-            // Custom console.log function to output to the console div
-            const originalConsoleLog = console.log;
-            console.log = function(...args) {
-                args.forEach(arg => {
-                    const output = document.createElement('div');
-                    output.textContent = typeof arg === 'object' ? JSON.stringify(arg, null, 2) : arg;
-                    consoleDiv.appendChild(output);
-                });
-                originalConsoleLog.apply(console, args);
-            };
-
-            try {
-                eval(code);
-            } catch (error) {
-                const errorOutput = document.createElement('div');
-                errorOutput.textContent = error;
-                errorOutput.style.color = 'red';
-                consoleDiv.appendChild(errorOutput);
+        /**
+         * ----------------------------------------------------------------
+         * Functional Utilities
+         * ----------------------------------------------------------------
+         */
+
+        const pipe = (...fns) => (initialValue) => fns.reduce((acc, fn) => fn(acc), initialValue);
+        const compose = (...fns) => (initialValue) => fns.reduceRight((acc, fn) => fn(acc), initialValue);
+
+        /**
+         * ----------------------------------------------------------------
+         * The Elm Architecture (Model, View, Update) Implementation
+         * ----------------------------------------------------------------
+         */
+
+        const init = {
+            code: `
+            const add = (a, b) => a + b;
+            const multiply = (a, b) => a * b;
+
+            const addAndMultiply = pipe(add, multiply);
+
+            console.log(addAndMultiply(2, 3));
+`,
+            consoleOutput: [],
+            sandboxReady: false,
+        };
+
+        const view = (model) => `
+            <div class="button-container">
+                <button onclick="dispatch({ type: 'CLEAR' })">Clear</button>
+                <button onclick="dispatch({ type: 'DOWNLOAD' })">Download</button>
+                <button onclick="dispatch({ type: 'SHARE' })">Share</button>
+                <button onclick="dispatch({ type: 'RUN_CODE' })" class="run" ${!model.sandboxReady ? 'disabled title="Sandbox is loading..."' : ''}>Run Code</button>
+            </div>
+            <textarea id="codeInput" oninput="dispatch({ type: 'CODE_CHANGED', payload: this.value })" onkeydown="handleKeyDown(event)">${model.code}</textarea>
+            <div id="console">
+                ${model.consoleOutput.map(log => {
+                    if (typeof log === 'object' && log !== null) {
+                        return `<div class="log-item"><details><summary>${Object.prototype.toString.call(log)}</summary><pre>${JSON.stringify(log, null, 2)}</pre></details></div>`;
+                    }
+                    return `<div class="log-item">${log}</div>`;
+                }).join('')}
+            </div>
+        `;
+
+        const update = (msg, model) => {
+            switch (msg.type) {
+                case 'CODE_CHANGED':
+                    return { ...model, code: msg.payload };
+                
+                case 'RUN_CODE':
+                    return model;
+
+                case 'CONSOLE_LOG':
+                    return { ...model, consoleOutput: [...model.consoleOutput, ...msg.payload] };
+
+                case 'CLEAR':
+                    if (confirm('Are you sure you want to reset the playground?')) {
+                        window.location.hash = '';
+                        window.location.reload();
+                    }
+                    return model;
+
+                case 'CLEAR_CONSOLE':
+                     return { ...model, consoleOutput: [] };
+                
+                case 'SHARE':
+                case 'DOWNLOAD':
+                    return model;
+
+                case 'SANDBOX_READY':
+                    return { ...model, sandboxReady: true };
+
+                default:
+                    return model;
             }
-
-            // Restore browser's console.log
-            console.log = originalConsoleLog;
-        }
-
-        function downloadCodeAndEditor() {
-            const codeInput = document.getElementById('codeInput').value;
-            const htmlContent = document.documentElement.outerHTML.replace(
-                /<textarea id="codeInput"[^>]*>.*<\/textarea>/,
-                `<textarea id="codeInput">${codeInput}</textarea>`
-            );
-
-            const blob = new Blob([htmlContent], { type: 'text/html' });
-            const url = URL.createObjectURL(blob);
-            const a = document.createElement('a');
-            a.href = url;
-            a.download = 'code_editor.html';
-            document.body.appendChild(a);
-            a.click();
-            document.body.removeChild(a);
-            URL.revokeObjectURL(url);
-        }
-
-        function shareCode() {
-            const code = document.getElementById('codeInput').value;
-            const encodedCode = btoa(encodeURIComponent(code));
-            window.location.hash = encodedCode;
-            window.prompt("Copy the URL to share.\nBe warned! Very long URLs don't share wicked well, sometimes.", window.location.href);
-        }
-
-        function clearEverything() {
-            if (!confirm('Are you sure you want to reset the playground?')) {
-                return;
-            } else {               
-                window.location.hash = '';
-                window.location.reload();
+        };
+
+        /**
+         * ----------------------------------------------------------------
+         * Application Core & Side-Effect Handling
+         * ----------------------------------------------------------------
+         */
+
+        let model = null;
+        const appContainer = document.getElementById('app');
+        const sandbox = document.getElementById('sandbox');
+
+        const dispatch = (msg) => {
+            const newModel = update(msg, model);
+            handleSideEffects(msg, newModel);
+            model = newModel;
+            render(model);
+        };
+
+        const handleSideEffects = (msg, model) => {
+             if (msg.type === 'RUN_CODE') {
+                if (!model.sandboxReady) return;
+                dispatch({ type: 'CLEAR_CONSOLE' });
+                sandbox.contentWindow.postMessage({ code: model.code }, '*');
+            } else if (msg.type === 'SHARE') {
+                const encodedCode = btoa(encodeURIComponent(model.code));
+                window.location.hash = encodedCode;
+                window.prompt("Copy the URL to share.", window.location.href);
+            } else if (msg.type === 'DOWNLOAD') {
+                const htmlContent = document.documentElement.outerHTML.replace(
+                    /<textarea id="codeInput"[^>]*>.*<\/textarea>/,
+                    `<textarea id="codeInput">${model.code}</textarea>`
+                );
+                const blob = new Blob([htmlContent], { type: 'text/html' });
+                const url = URL.createObjectURL(blob);
+                const a = document.createElement('a');
+                a.href = url;
+                a.download = 'playground.html';
+                a.click();
+                URL.revokeObjectURL(url);
             }
-        }
-
-        function loadCodeFromHash() {
-            const hash = window.location.hash.substring(1);
-            if (hash) {
-                try {
-                    const decodedCode = decodeURIComponent(atob(hash));
-                    document.getElementById('codeInput').value = decodedCode;
-                } catch (error) {
-                    console.error('Failed to decode the URL hash:', error);
+        };
+
+        const render = (model) => {
+            const focusedElementId = document.activeElement?.id;
+            const selectionStart = document.activeElement?.selectionStart;
+            const selectionEnd = document.activeElement?.selectionEnd;
+
+            appContainer.innerHTML = view(model);
+
+            if (focusedElementId === 'codeInput') {
+                const focusedElement = document.getElementById(focusedElementId);
+                if (focusedElement) {
+                    focusedElement.focus();
+                    if (typeof selectionStart === 'number') {
+                       focusedElement.selectionStart = selectionStart;
+                       focusedElement.selectionEnd = selectionEnd;
+                    }
                 }
             }
-        }
+        };
 
-        function help() {
-            const helpText = `
-            Welcome to the JavaScript Playground! Here are some tips to get you started:
-
-            1. Enter your JavaScript code in the textarea.
-            2. Click the "Run Code" button to execute your code.
-            3. The console output will be displayed below the textarea.
-            4. Click the "Clear" button to reset the playground.
-            5. Click the "Download" button to save your code and editor as an HTML file.
-            6. Click the "Share" button to generate a URL to share your code with others.
-            7. You can also press "Cmd + Enter" to run your code.
-            8. There's an empty div above the buttons with the id "playground"
-            9. You can mount stuff to it using the "mount" function, for more info run "mountHelp()"
-            10. You can use the "clear()" function to clear the content's of the console.
-
-            Go nuts! Share scrappy fiddles!
-            `;
-            console.log(helpText);
-        }
-
-        function clear() {
-            document.getElementById('console').innerHTML = '';
-        }
-
-        function mountHelp() {
-            console.log(`
-            The mount function is used to mount stuff to the playground div.
-            It takes a function as an argument, which in turn receives the playground div as an argument.
-            Before mounting, it clears the playground div.
-            Here's an example of how to use the mount function:
-
-            mount(playground => {
-                const h1 = document.createElement('h1');
-                h1.textContent = 'Hell is empty and all the devils are here.';
-                playground.appendChild(h1);
-            });
-
-            This will add an h1 element to the playground div.
-            `);
-        }
-
-        function mount(mountFunction) {
-            const playground = document.getElementById('playground');
-            if (!playground) {
-                console.error("Couldn't find a div with the id 'playground'! You may need to reload the page.");
-                return;
+        const handleKeyDown = (event) => {
+            if (event.key === 'Tab') {
+                event.preventDefault();
+                const start = event.target.selectionStart;
+                const end = event.target.selectionEnd;
+                event.target.value = event.target.value.substring(0, start) + "  " + event.target.value.substring(end);
+                dispatch({ type: 'CODE_CHANGED', payload: event.target.value });
+                event.target.selectionStart = event.target.selectionEnd = start + 2;
             }
+            if (event.metaKey && event.key === 'Enter') {
+                event.preventDefault();
+                dispatch({ type: 'RUN_CODE' });
+            }
+        };
+        
+        /**
+         * ----------------------------------------------------------------
+         * Sandbox Initialization
+         * ----------------------------------------------------------------
+         */
+         
+        const sandboxSrc = `
+            <script>
+                const pipe = ${pipe.toString()};
+                const compose = ${compose.toString()};
+            
+                const originalConsoleLog = console.log;
+                console.log = (...args) => {
+                    parent.postMessage({ type: 'CONSOLE_LOG', payload: args }, '*');
+                };
+
+                window.addEventListener('message', (event) => {
+                    try {
+                        eval(event.data.code);
+                    } catch (e) {
+                        console.log(e.toString());
+                    }
+                });
+            <\/script>
+        `;
 
-            if (playground.innerHTML.trim() !== "") {
-                playground.innerHTML = "";
+        window.addEventListener('message', (event) => {
+            if (event.source === sandbox.contentWindow && event.data.type === 'CONSOLE_LOG') {
+                dispatch(event.data);
             }
-            mountFunction(playground);
+        });
+        
+        /**
+         * ----------------------------------------------------------------
+         * Application Entry Point
+         * ----------------------------------------------------------------
+         */
+        
+        const hash = window.location.hash.substring(1);
+        if (hash) {
+            try {
+                const decodedCode = decodeURIComponent(atob(hash));
+                model = { ...init, code: decodedCode };
+            } catch (error) {
+                console.error('Failed to decode the URL hash:', error);
+                model = init;
+            }
+        } else {
+            model = init;
         }
 
+        render(model);
 
-        document.getElementById('codeInput').addEventListener('keydown', function(event) {
-            if (event.metaKey && event.key === 'Enter') {
-                event.preventDefault();
-                evaluateCode();
-            }
-        });
+        sandbox.onload = () => {
+            dispatch({ type: 'SANDBOX_READY' });
+        };
+
+        sandbox.srcdoc = sandboxSrc;
 
-        window.onload = loadCodeFromHash;
     </script>
 </body>
-</html>
+</html>
\ No newline at end of file
diff --git a/html/read-write/index.html b/html/read-write/index.html
new file mode 100644
index 0000000..0dd75b5
--- /dev/null
+++ b/html/read-write/index.html
@@ -0,0 +1,198 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>For Akkartik & Konrad</title>
+    <style>
+        body {
+            font-family: Arial, sans-serif;
+            max-width: 800px;
+            margin: 0 auto;
+            padding: 20px;
+            background-color: beige;
+        }
+        #imagePreview {
+            max-width: 100%;
+            margin: 20px 0;
+        }
+        .controls {
+            margin: 20px 0;
+        }
+        button {
+            padding: 10px 20px;
+            margin: 5px;
+        }
+        button:hover {
+            cursor: pointer;
+        }
+    </style>
+</head>
+<body>
+    <h1>For Akkartik & Konrad</h1>
+    <p>A demo of how to edit a file in place using the <a href="https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API">File System Access API</a>.</p>
+    <p>At a quick glance, it doesn't seem to be available in Firefox or WebKit, just Chromium browsers.</p>
+    <div class="controls">
+        <button id="selectFile">Select a png</button>
+        <button id="saveChanges" disabled>Save changes</button>
+        <input type="file" id="fileInput" accept=".png" style="display: none;">
+    </div>
+
+    <img id="imagePreview" alt="Preview">
+
+    <div class="controls">
+        <button id="invertColors" disabled>Invert colors</button>
+        <button id="grayscale" disabled>Convert to greyscale</button>
+    </div>
+
+    <script>
+        // Store the file handle for later
+        let fileHandle = null;
+        let currentImageData = null;
+
+        // Get DOM elements
+        const selectButton = document.getElementById('selectFile');
+        const saveButton = document.getElementById('saveChanges');
+        const invertButton = document.getElementById('invertColors');
+        const grayscaleButton = document.getElementById('grayscale');
+        const imagePreview = document.getElementById('imagePreview');
+
+        selectButton.addEventListener('click', async () => {
+            try {
+                if ('showOpenFilePicker' in window) {
+                    // Modern File System Access API approach for browsers that support it
+                    // This will open a file picker and return a file handle
+                    fileHandle = await window.showOpenFilePicker({
+                        types: [{
+                            description: 'PNG Files',
+                            accept: {
+                                'image/png': ['.png']
+                            }
+                        }]
+                    });
+
+                    // Get the file object from the handle
+                    const file = await fileHandle[0].getFile();
+                    handleSelectedFile(file);
+                } else {
+                    // Fallback for browsers that don't support the API
+                    document.getElementById('fileInput').click();
+                }
+            } catch (err) {
+                console.error('Error selecting file:', err);
+            }
+        });
+
+        // Event listener for the fallback file input
+        document.getElementById('fileInput').addEventListener('change', async (e) => {
+            const file = e.target.files[0];
+            if (file) {
+                handleSelectedFile(file);
+                // When in fallback mode, we download a new file, rather than saving in place
+                saveButton.textContent = 'Download edited image';
+            }
+        });
+
+        async function handleSelectedFile(file) {
+            // Create a URL for the image preview
+            const imageUrl = URL.createObjectURL(file);
+            imagePreview.src = imageUrl;
+
+            // Load the image data into a canvas for editing
+            await loadImageData(file);
+
+            // Enable the editing buttons
+            invertButton.disabled = false;
+            grayscaleButton.disabled = false;
+            saveButton.disabled = false;
+        }
+
+        // Load image data into canvas
+        async function loadImageData(file) {
+            return new Promise((resolve) => {
+                const img = new Image();
+                img.onload = () => {
+                    const canvas = document.createElement('canvas');
+                    canvas.width = img.width;
+                    canvas.height = img.height;
+                    const ctx = canvas.getContext('2d');
+                    ctx.drawImage(img, 0, 0);
+                    currentImageData = ctx.getImageData(0, 0, canvas.width, canvas.height);
+                    resolve();
+                };
+                img.src = URL.createObjectURL(file);
+            });
+        }
+
+        // Invert colors
+        invertButton.addEventListener('click', () => {
+            const data = currentImageData.data;
+            for (let i = 0; i < data.length; i += 4) {
+                data[i] = 255 - data[i];         // Red
+                data[i + 1] = 255 - data[i + 1]; // Green
+                data[i + 2] = 255 - data[i + 2]; // Blue
+            }
+            updatePreview();
+        });
+
+        // Convert to grayscale
+        grayscaleButton.addEventListener('click', () => {
+            const data = currentImageData.data;
+            for (let i = 0; i < data.length; i += 4) {
+                const avg = (data[i] + data[i + 1] + data[i + 2]) / 3;
+                data[i] = avg;
+                data[i + 1] = avg;
+                data[i + 2] = avg;
+            }
+            updatePreview();
+        });
+
+        function updatePreview() {
+            const canvas = document.createElement('canvas');
+            canvas.width = currentImageData.width;
+            canvas.height = currentImageData.height;
+            const ctx = canvas.getContext('2d');
+            ctx.putImageData(currentImageData, 0, 0);
+            imagePreview.src = canvas.toDataURL('image/png');
+        }
+
+        saveButton.addEventListener('click', async () => {
+            try {
+                if (fileHandle) {
+                    // Using the File System Access API
+                    const writable = await fileHandle[0].createWritable();
+                    const blob = await getImageBlob();
+                    await writable.write(blob);
+                    await writable.close();
+                    alert('Changes saved successfully!');
+                } else {
+                    // Download the edited image as a new file, if the API is not supported
+                    const blob = await getImageBlob();
+                    const downloadUrl = URL.createObjectURL(blob);
+                    const a = document.createElement('a');
+                    a.href = downloadUrl;
+                    a.download = 'edited-image.png';
+                    document.body.appendChild(a);
+                    a.click();
+                    document.body.removeChild(a);
+                    URL.revokeObjectURL(downloadUrl);
+                }
+            } catch (err) {
+                console.error('Error saving the file:', err);
+            }
+        });
+
+        async function getImageBlob() {
+            const canvas = document.createElement('canvas');
+            canvas.width = currentImageData.width;
+            canvas.height = currentImageData.height;
+            const ctx = canvas.getContext('2d');
+            ctx.putImageData(currentImageData, 0, 0);
+            
+            return new Promise(resolve => {
+                canvas.toBlob(resolve, 'image/png');
+            });
+        }
+    </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/html/rogue/assets/home/goblin-01.png b/html/rogue/assets/home/goblin-01.png
new file mode 100644
index 0000000..c70d2fd
--- /dev/null
+++ b/html/rogue/assets/home/goblin-01.png
Binary files differdiff --git a/html/rogue/assets/home/goblin-02.png b/html/rogue/assets/home/goblin-02.png
new file mode 100644
index 0000000..19411c8
--- /dev/null
+++ b/html/rogue/assets/home/goblin-02.png
Binary files differdiff --git a/html/rogue/assets/home/goblin.json b/html/rogue/assets/home/goblin.json
new file mode 100644
index 0000000..8b0e418
--- /dev/null
+++ b/html/rogue/assets/home/goblin.json
@@ -0,0 +1,617 @@
+{
+  "__projectHeader": "pppppp_v1",
+  "timestamp": "2024-12-28T22:11:34.632Z",
+  "data": {
+    "gridWidth": 16,
+    "gridHeight": 16,
+    "cellSize": 29.296875,
+    "colorHistory": [
+      "#eeb243",
+      "#ffbe47",
+      "#ff5eeb",
+      "#ff5feb",
+      "#9db13a",
+      "#000000",
+      "#e7ad41",
+      "#f5fff6",
+      "#af2866",
+      "#a87d2e"
+    ],
+    "currentColor": "#9db13a",
+    "canvases": [
+      {
+        "grid": [
+          [
+            null,
+            null,
+            null,
+            null,
+            null,
+            null,
+            null,
+            null,
+            null,
+            null,
+            null,
+            null,
+            null,
+            null,
+            null,
+            null
+          ],
+          [
+            null,
+            null,
+            null,
+            "#000000",
+            "#000000",
+            null,
+            null,
+            null,
+            null,
+            null,
+            null,
+            null,
+            null,
+            null,
+            null,
+            null
+          ],
+          [
+            null,
+            null,
+            "#000000",
+            "#9db13a",
+            "#99b213",
+            "#000000",
+            null,
+            null,
+            null,
+            null,
+            null,
+            null,
+            null,
+            "#000000",
+            "#000000",
+            null
+          ],
+          [
+            null,
+            null,
+            "#000000",
+            "#9db13a",
+            "#ff5feb",
+            "#99b213",
+            "#000000",
+            "#000000",
+            "#000000",
+            "#000000",
+            null,
+            null,
+            "#000000",
+            "#99b213",
+            "#000000",
+            null
+          ],
+          [
+            null,
+            "#000000",
+            "#99b213",
+            "#99b213",
+            "#99b213",
+            "#99b213",
+            "#99b213",
+            "#99b213",
+            "#99b213",
+            "#99b213",
+            "#000000",
+            null,
+            "#000000",
+            "#99b213",
+            "#000000",
+            null
+          ],
+          [
+            null,
+            "#000000",
+            "#99b213",
+            "#99b213",
+            "#99b213",
+            "#99b213",
+            "#99b213",
+            "#99b213",
+            "#99b213",
+            "#99b213",
+            "#99b213",
+            "#000000",
+            "#c00f68",
+            "#c00f68",
+            "#b07b12",
+            "#000000"
+          ],
+          [
+            null,
+            "#000000",
+            "#99b213",
+            "#99b213",
+            "#99b213",
+            "#000000",
+            "#000000",
+            "#99b213",
+            "#f5fff6",
+            "#f5fff6",
+            "#99b213",
+            "#000000",
+            "#c00f68",
+            "#c00f68",
+            "#b07b12",
+            "#000000"
+          ],
+          [
+            null,
+            "#000000",
+            "#99b213",
+            "#99b213",
+            "#99b213",
+            "#99b213",
+            "#99b213",
+            "#99b213",
+            "#99b213",
+            "#000000",
+            "#99b213",
+            "#000000",
+            "#c00f68",
+            "#c00f68",
+            "#000000",
+            null
+          ],
+          [
+            null,
+            "#000000",
+            "#99b213",
+            "#99b213",
+            "#99b213",
+            "#99b213",
+            "#99b213",
+            "#99b213",
+            "#99b213",
+            "#000000",
+            "#99b213",
+            "#000000",
+            "#c00f68",
+            "#c00f68",
+            "#000000",
+            null
+          ],
+          [
+            null,
+            "#000000",
+            "#99b213",
+            "#99b213",
+            "#99b213",
+            "#000000",
+            "#000000",
+            "#99b213",
+            "#99b213",
+            "#f5fff6",
+            "#99b213",
+            "#000000",
+            "#c00f68",
+            "#c00f68",
+            "#b07b12",
+            "#000000"
+          ],
+          [
+            null,
+            "#000000",
+            "#99b213",
+            "#99b213",
+            "#99b213",
+            "#99b213",
+            "#99b213",
+            "#99b213",
+            "#99b213",
+            "#99b213",
+            "#99b213",
+            "#000000",
+            "#c00f68",
+            "#c00f68",
+            "#b07b12",
+            "#000000"
+          ],
+          [
+            null,
+            "#000000",
+            "#99b213",
+            "#99b213",
+            "#99b213",
+            "#99b213",
+            "#99b213",
+            "#99b213",
+            "#99b213",
+            "#99b213",
+            "#000000",
+            null,
+            "#000000",
+            "#99b213",
+            "#000000",
+            null
+          ],
+          [
+            null,
+            null,
+            "#000000",
+            "#9db13a",
+            "#ff5feb",
+            "#99b213",
+            "#000000",
+            "#000000",
+            "#000000",
+            "#000000",
+            null,
+            null,
+            "#000000",
+            "#99b213",
+            "#000000",
+            null
+          ],
+          [
+            null,
+            null,
+            "#000000",
+            "#9db13a",
+            "#99b213",
+            "#000000",
+            null,
+            null,
+            null,
+            null,
+            null,
+            null,
+            null,
+            "#000000",
+            "#000000",
+            null
+          ],
+          [
+            null,
+            null,
+            null,
+            "#000000",
+            "#000000",
+            null,
+            null,
+            null,
+            null,
+            null,
+            null,
+            null,
+            null,
+            null,
+            null,
+            null
+          ],
+          [
+            null,
+            null,
+            null,
+            null,
+            null,
+            null,
+            null,
+            null,
+            null,
+            null,
+            null,
+            null,
+            null,
+            null,
+            null,
+            null
+          ]
+        ],
+        "offsetX": 143.1015625,
+        "offsetY": 218.625,
+        "hasPixels": false
+      },
+      {
+        "grid": [
+          [
+            null,
+            null,
+            null,
+            null,
+            null,
+            null,
+            null,
+            null,
+            null,
+            null,
+            null,
+            null,
+            null,
+            null,
+            null,
+            null
+          ],
+          [
+            null,
+            null,
+            null,
+            "#000000",
+            "#000000",
+            null,
+            null,
+            null,
+            null,
+            null,
+            null,
+            null,
+            null,
+            null,
+            null,
+            null
+          ],
+          [
+            null,
+            null,
+            "#000000",
+            "#9db13a",
+            "#9db13a",
+            "#000000",
+            null,
+            null,
+            null,
+            null,
+            null,
+            "#000000",
+            "#000000",
+            null,
+            null,
+            null
+          ],
+          [
+            null,
+            null,
+            "#000000",
+            "#9db13a",
+            "#ff5eeb",
+            "#9db13a",
+            "#000000",
+            "#000000",
+            "#000000",
+            "#000000",
+            null,
+            "#000000",
+            "#9db13a",
+            "#000000",
+            null,
+            null
+          ],
+          [
+            null,
+            "#000000",
+            "#9db13a",
+            "#9db13a",
+            "#9db13a",
+            "#9db13a",
+            "#9db13a",
+            "#9db13a",
+            "#9db13a",
+            "#9db13a",
+            "#000000",
+            "#000000",
+            "#9db13a",
+            "#000000",
+            "#000000",
+            null
+          ],
+          [
+            null,
+            "#000000",
+            "#9db13a",
+            "#9db13a",
+            "#9db13a",
+            "#9db13a",
+            "#9db13a",
+            "#9db13a",
+            "#9db13a",
+            "#9db13a",
+            "#9db13a",
+            "#000000",
+            "#af2866",
+            "#af2866",
+            "#a87d2e",
+            "#000000"
+          ],
+          [
+            null,
+            "#000000",
+            "#9db13a",
+            "#9db13a",
+            "#9db13a",
+            "#000000",
+            "#000000",
+            "#9db13a",
+            "#f5fff6",
+            "#f5fff6",
+            "#9db13a",
+            "#000000",
+            "#af2866",
+            "#af2866",
+            "#a87d2e",
+            "#000000"
+          ],
+          [
+            null,
+            "#000000",
+            "#9db13a",
+            "#9db13a",
+            "#9db13a",
+            "#9db13a",
+            "#9db13a",
+            "#9db13a",
+            "#9db13a",
+            "#000000",
+            "#9db13a",
+            "#000000",
+            "#af2866",
+            "#af2866",
+            "#000000",
+            null
+          ],
+          [
+            null,
+            "#000000",
+            "#9db13a",
+            "#9db13a",
+            "#9db13a",
+            "#9db13a",
+            "#9db13a",
+            "#9db13a",
+            "#9db13a",
+            "#000000",
+            "#9db13a",
+            "#000000",
+            "#af2866",
+            "#af2866",
+            "#000000",
+            null
+          ],
+          [
+            null,
+            "#000000",
+            "#9db13a",
+            "#9db13a",
+            "#9db13a",
+            "#000000",
+            "#000000",
+            "#9db13a",
+            "#9db13a",
+            "#f5fff6",
+            "#9db13a",
+            "#000000",
+            "#af2866",
+            "#af2866",
+            "#a87d2e",
+            "#000000"
+          ],
+          [
+            null,
+            "#000000",
+            "#9db13a",
+            "#9db13a",
+            "#9db13a",
+            "#9db13a",
+            "#9db13a",
+            "#9db13a",
+            "#9db13a",
+            "#9db13a",
+            "#9db13a",
+            "#000000",
+            "#af2866",
+            "#af2866",
+            "#a87d2e",
+            "#000000"
+          ],
+          [
+            null,
+            "#000000",
+            "#9db13a",
+            "#9db13a",
+            "#9db13a",
+            "#9db13a",
+            "#9db13a",
+            "#9db13a",
+            "#9db13a",
+            "#9db13a",
+            "#000000",
+            "#000000",
+            "#9db13a",
+            "#000000",
+            "#000000",
+            null
+          ],
+          [
+            null,
+            null,
+            "#000000",
+            "#9db13a",
+            "#ff5eeb",
+            "#9db13a",
+            "#000000",
+            "#000000",
+            "#000000",
+            "#000000",
+            null,
+            "#000000",
+            "#9db13a",
+            "#000000",
+            null,
+            null
+          ],
+          [
+            null,
+            null,
+            "#000000",
+            "#9db13a",
+            "#9db13a",
+            "#000000",
+            null,
+            null,
+            null,
+            null,
+            null,
+            "#000000",
+            "#000000",
+            null,
+            null,
+            null
+          ],
+          [
+            null,
+            null,
+            null,
+            "#000000",
+            "#000000",
+            null,
+            null,
+            null,
+            null,
+            null,
+            null,
+            null,
+            null,
+            null,
+            null,
+            null
+          ],
+          [
+            null,
+            null,
+            null,
+            null,
+            null,
+            null,
+            null,
+            null,
+            null,
+            null,
+            null,
+            null,
+            null,
+            null,
+            null,
+            null
+          ]
+        ],
+        "offsetX": 641.1484375,
+        "offsetY": 218.625,
+        "hasPixels": false
+      }
+    ],
+    "isPaletteVisible": true,
+    "globalOffsetX": -87.890625,
+    "globalOffsetY": 0
+  }
+}
\ No newline at end of file
diff --git a/html/rogue/assets/itch/FreeCatCharacterAnimations/1_Cat_Idle-Sheet.png b/html/rogue/assets/itch/FreeCatCharacterAnimations/1_Cat_Idle-Sheet.png
new file mode 100644
index 0000000..466ce64
--- /dev/null
+++ b/html/rogue/assets/itch/FreeCatCharacterAnimations/1_Cat_Idle-Sheet.png
Binary files differdiff --git a/html/rogue/assets/itch/FreeCatCharacterAnimations/2_Cat_Run-Sheet.png b/html/rogue/assets/itch/FreeCatCharacterAnimations/2_Cat_Run-Sheet.png
new file mode 100644
index 0000000..65dd33c
--- /dev/null
+++ b/html/rogue/assets/itch/FreeCatCharacterAnimations/2_Cat_Run-Sheet.png
Binary files differdiff --git a/html/rogue/assets/itch/FreeCatCharacterAnimations/3_Cat_Jump-Sheet.png b/html/rogue/assets/itch/FreeCatCharacterAnimations/3_Cat_Jump-Sheet.png
new file mode 100644
index 0000000..2d8d026
--- /dev/null
+++ b/html/rogue/assets/itch/FreeCatCharacterAnimations/3_Cat_Jump-Sheet.png
Binary files differdiff --git a/html/rogue/assets/itch/FreeCatCharacterAnimations/4_Cat_Fall-Sheet.png b/html/rogue/assets/itch/FreeCatCharacterAnimations/4_Cat_Fall-Sheet.png
new file mode 100644
index 0000000..83d8e1f
--- /dev/null
+++ b/html/rogue/assets/itch/FreeCatCharacterAnimations/4_Cat_Fall-Sheet.png
Binary files differdiff --git a/html/rogue/assets/itch/FreeCatCharacterAnimations/Contact.txt b/html/rogue/assets/itch/FreeCatCharacterAnimations/Contact.txt
new file mode 100644
index 0000000..b5d14c7
--- /dev/null
+++ b/html/rogue/assets/itch/FreeCatCharacterAnimations/Contact.txt
@@ -0,0 +1,4 @@
+You can contact me at:

+

+email

+	oboropixelart@gmail.com
\ No newline at end of file
diff --git a/html/rogue/assets/itch/FreeCatCharacterAnimations/License.txt b/html/rogue/assets/itch/FreeCatCharacterAnimations/License.txt
new file mode 100644
index 0000000..f6c32f2
--- /dev/null
+++ b/html/rogue/assets/itch/FreeCatCharacterAnimations/License.txt
@@ -0,0 +1,5 @@
+You can use this asset for personal and commercial purpose,

+you can modify this object to your needs.

+Credit is not required but would be appreciated

+

+You can NOT redistribute or resell it.
\ No newline at end of file
diff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/FreeLicense.txt b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/FreeLicense.txt
new file mode 100644
index 0000000..704fccf
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/FreeLicense.txt
@@ -0,0 +1,33 @@
+*** Minifantasy - Creatures v3.2 Free Version ***

+

+Minifantasy is an original idea by Krishna Palacio

+

+---

+

+By acquiring this asset pack:

+

+

+1) You are allowed to:

+

+a) Use all the assets included in this pack only in your own non-commercial projects. 

+

+b) Edit and alter the assets included in this pack with the purpose of including them in your own non-commercial projects.

+

+

+2) You are not allowed to:

+

+a) Use any of the assets included in this pack in any kind of commercial projects.

+

+b) Re-distribute or re-sell any of the assets included in this pack, or any altered versions of them, as games assets, images or NFTs.

+

+

+3) You must:

+

+a) Credit me (Krishna Palacio) in your video game or audio-visual digital project credits.

+

+b) Send me a link to the project upon completion.

+

+---

+

+Thank you for your support!

+

diff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/DwarfAttack.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/DwarfAttack.png
new file mode 100644
index 0000000..76cfe45
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/DwarfAttack.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/DwarfChargedAttack.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/DwarfChargedAttack.png
new file mode 100644
index 0000000..dc98630
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/DwarfChargedAttack.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/DwarfDmg.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/DwarfDmg.png
new file mode 100644
index 0000000..887954e
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/DwarfDmg.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/DwarfIdle.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/DwarfIdle.png
new file mode 100644
index 0000000..d768f93
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/DwarfIdle.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/DwarfJump.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/DwarfJump.png
new file mode 100644
index 0000000..46d801d
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/DwarfJump.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/DwarfSpinDie.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/DwarfSpinDie.png
new file mode 100644
index 0000000..fa9d347
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/DwarfSpinDie.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/DwarfWalk.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/DwarfWalk.png
new file mode 100644
index 0000000..9141c24
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/DwarfWalk.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/_AnimationInfo.txt b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/_AnimationInfo.txt
new file mode 100644
index 0000000..624520c
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/_AnimationInfo.txt
@@ -0,0 +1,10 @@
+*Frame size* 

+

+- 32x32px: For all the animations.

+

+

+*Frame Duration*

+

+- 100ms: Attack, Jump, Die and Dmg.

+

+- 200ms: Idle and Walk.
\ No newline at end of file
diff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/_GIFs/DwarfAttack.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/_GIFs/DwarfAttack.gif
new file mode 100644
index 0000000..45e20d6
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/_GIFs/DwarfAttack.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/_GIFs/DwarfChargedAttack.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/_GIFs/DwarfChargedAttack.gif
new file mode 100644
index 0000000..2140d14
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/_GIFs/DwarfChargedAttack.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/_GIFs/DwarfDmg.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/_GIFs/DwarfDmg.gif
new file mode 100644
index 0000000..db685d9
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/_GIFs/DwarfDmg.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/_GIFs/DwarfIdle.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/_GIFs/DwarfIdle.gif
new file mode 100644
index 0000000..e5cc76d
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/_GIFs/DwarfIdle.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/_GIFs/DwarfJump.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/_GIFs/DwarfJump.gif
new file mode 100644
index 0000000..4de3af5
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/_GIFs/DwarfJump.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/_GIFs/DwarfSpinDie.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/_GIFs/DwarfSpinDie.gif
new file mode 100644
index 0000000..05ed4ce
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/_GIFs/DwarfSpinDie.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/_GIFs/DwarfWalk.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/_GIFs/DwarfWalk.gif
new file mode 100644
index 0000000..1b9b91e
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/_GIFs/DwarfWalk.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/_Shadows/ShadowDwarJump.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/_Shadows/ShadowDwarJump.png
new file mode 100644
index 0000000..8f6b381
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/_Shadows/ShadowDwarJump.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/_Shadows/ShadowDwarSpinDie.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/_Shadows/ShadowDwarSpinDie.png
new file mode 100644
index 0000000..df7f507
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/_Shadows/ShadowDwarSpinDie.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/_Shadows/ShadowDwarWalk.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/_Shadows/ShadowDwarWalk.png
new file mode 100644
index 0000000..d08d4a4
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/_Shadows/ShadowDwarWalk.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/_Shadows/ShadowDwarfAttack.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/_Shadows/ShadowDwarfAttack.png
new file mode 100644
index 0000000..1b37fe1
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/_Shadows/ShadowDwarfAttack.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/_Shadows/ShadowDwarfChargedAttack.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/_Shadows/ShadowDwarfChargedAttack.png
new file mode 100644
index 0000000..fadd77f
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/_Shadows/ShadowDwarfChargedAttack.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/_Shadows/ShadowDwarfDmg.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/_Shadows/ShadowDwarfDmg.png
new file mode 100644
index 0000000..b7b43c2
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/_Shadows/ShadowDwarfDmg.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/_Shadows/ShadowDwarfIdle.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/_Shadows/ShadowDwarfIdle.png
new file mode 100644
index 0000000..a621f10
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Base_Dwarf/_Shadows/ShadowDwarfIdle.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/YellowBearAttack.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/YellowBearAttack.png
new file mode 100644
index 0000000..de1e4ea
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/YellowBearAttack.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/YellowBearChargedAttack.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/YellowBearChargedAttack.png
new file mode 100644
index 0000000..b468464
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/YellowBearChargedAttack.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/YellowBearDmg.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/YellowBearDmg.png
new file mode 100644
index 0000000..d76c19f
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/YellowBearDmg.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/YellowBearJump.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/YellowBearJump.png
new file mode 100644
index 0000000..3f1cef5
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/YellowBearJump.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/YellowBearSpinDie.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/YellowBearSpinDie.png
new file mode 100644
index 0000000..c577955
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/YellowBearSpinDie.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/YellowBearWalk.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/YellowBearWalk.png
new file mode 100644
index 0000000..d069626
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/YellowBearWalk.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/YellowBeardIdle.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/YellowBeardIdle.png
new file mode 100644
index 0000000..dc565d8
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/YellowBeardIdle.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/_AnimationInfo.txt b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/_AnimationInfo.txt
new file mode 100644
index 0000000..624520c
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/_AnimationInfo.txt
@@ -0,0 +1,10 @@
+*Frame size* 

+

+- 32x32px: For all the animations.

+

+

+*Frame Duration*

+

+- 100ms: Attack, Jump, Die and Dmg.

+

+- 200ms: Idle and Walk.
\ No newline at end of file
diff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/_GIFs/YellowBearAttack.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/_GIFs/YellowBearAttack.gif
new file mode 100644
index 0000000..461c4f0
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/_GIFs/YellowBearAttack.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/_GIFs/YellowBearChargedAttack.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/_GIFs/YellowBearChargedAttack.gif
new file mode 100644
index 0000000..f1d0469
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/_GIFs/YellowBearChargedAttack.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/_GIFs/YellowBearDmg.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/_GIFs/YellowBearDmg.gif
new file mode 100644
index 0000000..1da234a
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/_GIFs/YellowBearDmg.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/_GIFs/YellowBearJump.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/_GIFs/YellowBearJump.gif
new file mode 100644
index 0000000..ab88b0f
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/_GIFs/YellowBearJump.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/_GIFs/YellowBearSpinDie.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/_GIFs/YellowBearSpinDie.gif
new file mode 100644
index 0000000..8914429
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/_GIFs/YellowBearSpinDie.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/_GIFs/YellowBearWalk.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/_GIFs/YellowBearWalk.gif
new file mode 100644
index 0000000..d595301
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/_GIFs/YellowBearWalk.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/_GIFs/YellowBeardIdle.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/_GIFs/YellowBeardIdle.gif
new file mode 100644
index 0000000..3379ad9
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/_GIFs/YellowBeardIdle.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/_Shadows/ShadowDwarJump.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/_Shadows/ShadowDwarJump.png
new file mode 100644
index 0000000..8f6b381
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/_Shadows/ShadowDwarJump.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/_Shadows/ShadowDwarSpinDie.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/_Shadows/ShadowDwarSpinDie.png
new file mode 100644
index 0000000..df7f507
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/_Shadows/ShadowDwarSpinDie.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/_Shadows/ShadowDwarWalk.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/_Shadows/ShadowDwarWalk.png
new file mode 100644
index 0000000..d08d4a4
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/_Shadows/ShadowDwarWalk.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/_Shadows/ShadowDwarfAttack.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/_Shadows/ShadowDwarfAttack.png
new file mode 100644
index 0000000..1b37fe1
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/_Shadows/ShadowDwarfAttack.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/_Shadows/ShadowDwarfChargedAttack.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/_Shadows/ShadowDwarfChargedAttack.png
new file mode 100644
index 0000000..fadd77f
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/_Shadows/ShadowDwarfChargedAttack.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/_Shadows/ShadowDwarfDmg.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/_Shadows/ShadowDwarfDmg.png
new file mode 100644
index 0000000..b7b43c2
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/_Shadows/ShadowDwarfDmg.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/_Shadows/ShadowDwarfIdle.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/_Shadows/ShadowDwarfIdle.png
new file mode 100644
index 0000000..a621f10
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Dwarf/Dwarf_Yellow_Beard/_Shadows/ShadowDwarfIdle.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/ElfAttack.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/ElfAttack.png
new file mode 100644
index 0000000..8cdfe3b
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/ElfAttack.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/ElfChargedAttack.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/ElfChargedAttack.png
new file mode 100644
index 0000000..a52d6a2
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/ElfChargedAttack.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/ElfDmg.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/ElfDmg.png
new file mode 100644
index 0000000..4e6a119
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/ElfDmg.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/ElfIdle.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/ElfIdle.png
new file mode 100644
index 0000000..9634058
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/ElfIdle.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/ElfJump.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/ElfJump.png
new file mode 100644
index 0000000..ed438b0
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/ElfJump.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/ElfSpinDie.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/ElfSpinDie.png
new file mode 100644
index 0000000..a942555
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/ElfSpinDie.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/ElfWalk.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/ElfWalk.png
new file mode 100644
index 0000000..22124be
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/ElfWalk.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/_AnimationInfo.txt b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/_AnimationInfo.txt
new file mode 100644
index 0000000..624520c
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/_AnimationInfo.txt
@@ -0,0 +1,10 @@
+*Frame size* 

+

+- 32x32px: For all the animations.

+

+

+*Frame Duration*

+

+- 100ms: Attack, Jump, Die and Dmg.

+

+- 200ms: Idle and Walk.
\ No newline at end of file
diff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/_GIFs/ElfAttack.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/_GIFs/ElfAttack.gif
new file mode 100644
index 0000000..1390338
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/_GIFs/ElfAttack.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/_GIFs/ElfChargedAttack.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/_GIFs/ElfChargedAttack.gif
new file mode 100644
index 0000000..ec78efb
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/_GIFs/ElfChargedAttack.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/_GIFs/ElfDmg.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/_GIFs/ElfDmg.gif
new file mode 100644
index 0000000..c837303
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/_GIFs/ElfDmg.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/_GIFs/ElfIdle.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/_GIFs/ElfIdle.gif
new file mode 100644
index 0000000..b3423a0
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/_GIFs/ElfIdle.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/_GIFs/ElfJump.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/_GIFs/ElfJump.gif
new file mode 100644
index 0000000..7ad0122
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/_GIFs/ElfJump.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/_GIFs/ElfSpinDie.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/_GIFs/ElfSpinDie.gif
new file mode 100644
index 0000000..f5f5a21
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/_GIFs/ElfSpinDie.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/_GIFs/ElfWalk.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/_GIFs/ElfWalk.gif
new file mode 100644
index 0000000..4c16bff
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/_GIFs/ElfWalk.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/_Shadows/ShadowHumanoidAttack.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/_Shadows/ShadowHumanoidAttack.png
new file mode 100644
index 0000000..ce032fc
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/_Shadows/ShadowHumanoidAttack.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/_Shadows/ShadowHumanoidChargedAttack.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/_Shadows/ShadowHumanoidChargedAttack.png
new file mode 100644
index 0000000..0ba2ebd
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/_Shadows/ShadowHumanoidChargedAttack.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/_Shadows/ShadowHumanoidDmg.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/_Shadows/ShadowHumanoidDmg.png
new file mode 100644
index 0000000..040baaa
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/_Shadows/ShadowHumanoidDmg.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/_Shadows/ShadowHumanoidIdle.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/_Shadows/ShadowHumanoidIdle.png
new file mode 100644
index 0000000..73cbbb1
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/_Shadows/ShadowHumanoidIdle.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/_Shadows/ShadowHumanoidJump.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/_Shadows/ShadowHumanoidJump.png
new file mode 100644
index 0000000..6e017f6
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/_Shadows/ShadowHumanoidJump.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/_Shadows/ShadowHumanoidSoulDie.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/_Shadows/ShadowHumanoidSoulDie.png
new file mode 100644
index 0000000..5b72667
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/_Shadows/ShadowHumanoidSoulDie.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/_Shadows/ShadowHumanoidSpinDie.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/_Shadows/ShadowHumanoidSpinDie.png
new file mode 100644
index 0000000..5a66f39
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/_Shadows/ShadowHumanoidSpinDie.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/_Shadows/ShadowHumanoidWalk.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/_Shadows/ShadowHumanoidWalk.png
new file mode 100644
index 0000000..23d1fe0
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Elf/_Shadows/ShadowHumanoidWalk.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/GoblinAttack.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/GoblinAttack.png
new file mode 100644
index 0000000..49dcf49
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/GoblinAttack.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/GoblinChargedAttack.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/GoblinChargedAttack.png
new file mode 100644
index 0000000..8c7c949
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/GoblinChargedAttack.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/GoblinDmg.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/GoblinDmg.png
new file mode 100644
index 0000000..3b84b0a
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/GoblinDmg.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/GoblinIdle.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/GoblinIdle.png
new file mode 100644
index 0000000..de8d38d
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/GoblinIdle.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/GoblinJump.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/GoblinJump.png
new file mode 100644
index 0000000..4d97d49
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/GoblinJump.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/GoblinSpinDie.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/GoblinSpinDie.png
new file mode 100644
index 0000000..bdd45f9
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/GoblinSpinDie.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/GoblinWalk.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/GoblinWalk.png
new file mode 100644
index 0000000..b9c382d
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/GoblinWalk.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/_AnimationInfo.txt b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/_AnimationInfo.txt
new file mode 100644
index 0000000..624520c
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/_AnimationInfo.txt
@@ -0,0 +1,10 @@
+*Frame size* 

+

+- 32x32px: For all the animations.

+

+

+*Frame Duration*

+

+- 100ms: Attack, Jump, Die and Dmg.

+

+- 200ms: Idle and Walk.
\ No newline at end of file
diff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/_GIFs/GoblinAttack.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/_GIFs/GoblinAttack.gif
new file mode 100644
index 0000000..e6983c3
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/_GIFs/GoblinAttack.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/_GIFs/GoblinChargedAttack.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/_GIFs/GoblinChargedAttack.gif
new file mode 100644
index 0000000..4d83d78
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/_GIFs/GoblinChargedAttack.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/_GIFs/GoblinDmg.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/_GIFs/GoblinDmg.gif
new file mode 100644
index 0000000..243c6f3
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/_GIFs/GoblinDmg.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/_GIFs/GoblinIdle.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/_GIFs/GoblinIdle.gif
new file mode 100644
index 0000000..37edffe
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/_GIFs/GoblinIdle.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/_GIFs/GoblinJump.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/_GIFs/GoblinJump.gif
new file mode 100644
index 0000000..4832431
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/_GIFs/GoblinJump.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/_GIFs/GoblinSpinDie.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/_GIFs/GoblinSpinDie.gif
new file mode 100644
index 0000000..be64b79
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/_GIFs/GoblinSpinDie.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/_GIFs/GoblinWalk.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/_GIFs/GoblinWalk.gif
new file mode 100644
index 0000000..6304060
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/_GIFs/GoblinWalk.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/_Shadows/ShadowHumanoidAttack.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/_Shadows/ShadowHumanoidAttack.png
new file mode 100644
index 0000000..ce032fc
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/_Shadows/ShadowHumanoidAttack.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/_Shadows/ShadowHumanoidChargedAttack.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/_Shadows/ShadowHumanoidChargedAttack.png
new file mode 100644
index 0000000..0ba2ebd
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/_Shadows/ShadowHumanoidChargedAttack.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/_Shadows/ShadowHumanoidDmg.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/_Shadows/ShadowHumanoidDmg.png
new file mode 100644
index 0000000..040baaa
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/_Shadows/ShadowHumanoidDmg.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/_Shadows/ShadowHumanoidIdle.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/_Shadows/ShadowHumanoidIdle.png
new file mode 100644
index 0000000..73cbbb1
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/_Shadows/ShadowHumanoidIdle.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/_Shadows/ShadowHumanoidJump.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/_Shadows/ShadowHumanoidJump.png
new file mode 100644
index 0000000..6e017f6
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/_Shadows/ShadowHumanoidJump.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/_Shadows/ShadowHumanoidSoulDie.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/_Shadows/ShadowHumanoidSoulDie.png
new file mode 100644
index 0000000..5b72667
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/_Shadows/ShadowHumanoidSoulDie.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/_Shadows/ShadowHumanoidSpinDie.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/_Shadows/ShadowHumanoidSpinDie.png
new file mode 100644
index 0000000..5a66f39
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/_Shadows/ShadowHumanoidSpinDie.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/_Shadows/ShadowHumanoidWalk.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/_Shadows/ShadowHumanoidWalk.png
new file mode 100644
index 0000000..23d1fe0
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Goblin/_Shadows/ShadowHumanoidWalk.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/HalflingAttack.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/HalflingAttack.png
new file mode 100644
index 0000000..b343859
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/HalflingAttack.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/HalflingChargedAttack.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/HalflingChargedAttack.png
new file mode 100644
index 0000000..a601328
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/HalflingChargedAttack.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/HalflingDmg.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/HalflingDmg.png
new file mode 100644
index 0000000..1fc3d1f
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/HalflingDmg.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/HalflingIdle.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/HalflingIdle.png
new file mode 100644
index 0000000..ab8001a
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/HalflingIdle.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/HalflingJump.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/HalflingJump.png
new file mode 100644
index 0000000..c961c78
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/HalflingJump.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/HalflingSpinDie.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/HalflingSpinDie.png
new file mode 100644
index 0000000..0351398
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/HalflingSpinDie.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/HalflingWalk.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/HalflingWalk.png
new file mode 100644
index 0000000..1ff88d5
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/HalflingWalk.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/_AnimationInfo.txt b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/_AnimationInfo.txt
new file mode 100644
index 0000000..624520c
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/_AnimationInfo.txt
@@ -0,0 +1,10 @@
+*Frame size* 

+

+- 32x32px: For all the animations.

+

+

+*Frame Duration*

+

+- 100ms: Attack, Jump, Die and Dmg.

+

+- 200ms: Idle and Walk.
\ No newline at end of file
diff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/_GIFs/HalflingAttack.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/_GIFs/HalflingAttack.gif
new file mode 100644
index 0000000..4e4ac00
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/_GIFs/HalflingAttack.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/_GIFs/HalflingChargedAttack.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/_GIFs/HalflingChargedAttack.gif
new file mode 100644
index 0000000..54bbda2
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/_GIFs/HalflingChargedAttack.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/_GIFs/HalflingDmg.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/_GIFs/HalflingDmg.gif
new file mode 100644
index 0000000..fd4f7a8
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/_GIFs/HalflingDmg.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/_GIFs/HalflingIdle.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/_GIFs/HalflingIdle.gif
new file mode 100644
index 0000000..22ba62a
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/_GIFs/HalflingIdle.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/_GIFs/HalflingJump.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/_GIFs/HalflingJump.gif
new file mode 100644
index 0000000..0efbc8a
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/_GIFs/HalflingJump.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/_GIFs/HalflingSpinDie.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/_GIFs/HalflingSpinDie.gif
new file mode 100644
index 0000000..4646eaf
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/_GIFs/HalflingSpinDie.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/_GIFs/HalflingWalk.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/_GIFs/HalflingWalk.gif
new file mode 100644
index 0000000..59753f9
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/_GIFs/HalflingWalk.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/_Shadows/ShadowHumanoidAttack.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/_Shadows/ShadowHumanoidAttack.png
new file mode 100644
index 0000000..ce032fc
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/_Shadows/ShadowHumanoidAttack.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/_Shadows/ShadowHumanoidChargedAttack.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/_Shadows/ShadowHumanoidChargedAttack.png
new file mode 100644
index 0000000..0ba2ebd
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/_Shadows/ShadowHumanoidChargedAttack.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/_Shadows/ShadowHumanoidDmg.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/_Shadows/ShadowHumanoidDmg.png
new file mode 100644
index 0000000..040baaa
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/_Shadows/ShadowHumanoidDmg.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/_Shadows/ShadowHumanoidIdle.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/_Shadows/ShadowHumanoidIdle.png
new file mode 100644
index 0000000..73cbbb1
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/_Shadows/ShadowHumanoidIdle.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/_Shadows/ShadowHumanoidJump.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/_Shadows/ShadowHumanoidJump.png
new file mode 100644
index 0000000..6e017f6
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/_Shadows/ShadowHumanoidJump.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/_Shadows/ShadowHumanoidSoulDie.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/_Shadows/ShadowHumanoidSoulDie.png
new file mode 100644
index 0000000..5b72667
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/_Shadows/ShadowHumanoidSoulDie.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/_Shadows/ShadowHumanoidSpinDie.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/_Shadows/ShadowHumanoidSpinDie.png
new file mode 100644
index 0000000..5a66f39
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/_Shadows/ShadowHumanoidSpinDie.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/_Shadows/ShadowHumanoidWalk.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/_Shadows/ShadowHumanoidWalk.png
new file mode 100644
index 0000000..23d1fe0
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Halfling/_Shadows/ShadowHumanoidWalk.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/HumanAttack.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/HumanAttack.png
new file mode 100644
index 0000000..f8ec5a0
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/HumanAttack.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/HumanChargedAttack.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/HumanChargedAttack.png
new file mode 100644
index 0000000..524a350
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/HumanChargedAttack.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/HumanDmg.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/HumanDmg.png
new file mode 100644
index 0000000..763ee55
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/HumanDmg.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/HumanIdle.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/HumanIdle.png
new file mode 100644
index 0000000..49b4ecd
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/HumanIdle.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/HumanJump.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/HumanJump.png
new file mode 100644
index 0000000..810784d
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/HumanJump.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/HumanSoulDie.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/HumanSoulDie.png
new file mode 100644
index 0000000..baf4adc
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/HumanSoulDie.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/HumanSpinDie.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/HumanSpinDie.png
new file mode 100644
index 0000000..f844bdb
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/HumanSpinDie.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/HumanWalk.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/HumanWalk.png
new file mode 100644
index 0000000..02cf0d8
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/HumanWalk.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/_AnimationInfo.txt b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/_AnimationInfo.txt
new file mode 100644
index 0000000..624520c
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/_AnimationInfo.txt
@@ -0,0 +1,10 @@
+*Frame size* 

+

+- 32x32px: For all the animations.

+

+

+*Frame Duration*

+

+- 100ms: Attack, Jump, Die and Dmg.

+

+- 200ms: Idle and Walk.
\ No newline at end of file
diff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/_GIFs/HumanAttack.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/_GIFs/HumanAttack.gif
new file mode 100644
index 0000000..a6d63e3
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/_GIFs/HumanAttack.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/_GIFs/HumanChargedAttack.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/_GIFs/HumanChargedAttack.gif
new file mode 100644
index 0000000..507b135
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/_GIFs/HumanChargedAttack.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/_GIFs/HumanDmg.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/_GIFs/HumanDmg.gif
new file mode 100644
index 0000000..b7e0339
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/_GIFs/HumanDmg.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/_GIFs/HumanIdle.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/_GIFs/HumanIdle.gif
new file mode 100644
index 0000000..59d3b56
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/_GIFs/HumanIdle.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/_GIFs/HumanJump.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/_GIFs/HumanJump.gif
new file mode 100644
index 0000000..98e423c
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/_GIFs/HumanJump.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/_GIFs/HumanSoulDie.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/_GIFs/HumanSoulDie.gif
new file mode 100644
index 0000000..2a0afa8
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/_GIFs/HumanSoulDie.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/_GIFs/HumanSpinDie.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/_GIFs/HumanSpinDie.gif
new file mode 100644
index 0000000..a1749e9
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/_GIFs/HumanSpinDie.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/_GIFs/HumanWalk.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/_GIFs/HumanWalk.gif
new file mode 100644
index 0000000..ca476cd
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/_GIFs/HumanWalk.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/_Shadows/ShadowHumanoidAttack.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/_Shadows/ShadowHumanoidAttack.png
new file mode 100644
index 0000000..ce032fc
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/_Shadows/ShadowHumanoidAttack.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/_Shadows/ShadowHumanoidChargedAttack.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/_Shadows/ShadowHumanoidChargedAttack.png
new file mode 100644
index 0000000..0ba2ebd
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/_Shadows/ShadowHumanoidChargedAttack.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/_Shadows/ShadowHumanoidDmg.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/_Shadows/ShadowHumanoidDmg.png
new file mode 100644
index 0000000..040baaa
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/_Shadows/ShadowHumanoidDmg.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/_Shadows/ShadowHumanoidIdle.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/_Shadows/ShadowHumanoidIdle.png
new file mode 100644
index 0000000..73cbbb1
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/_Shadows/ShadowHumanoidIdle.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/_Shadows/ShadowHumanoidJump.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/_Shadows/ShadowHumanoidJump.png
new file mode 100644
index 0000000..6e017f6
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/_Shadows/ShadowHumanoidJump.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/_Shadows/ShadowHumanoidSoulDie.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/_Shadows/ShadowHumanoidSoulDie.png
new file mode 100644
index 0000000..5b72667
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/_Shadows/ShadowHumanoidSoulDie.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/_Shadows/ShadowHumanoidSpinDie.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/_Shadows/ShadowHumanoidSpinDie.png
new file mode 100644
index 0000000..5a66f39
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/_Shadows/ShadowHumanoidSpinDie.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/_Shadows/ShadowHumanoidWalk.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/_Shadows/ShadowHumanoidWalk.png
new file mode 100644
index 0000000..23d1fe0
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Base_Human/_Shadows/ShadowHumanoidWalk.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/AmazonAttack.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/AmazonAttack.png
new file mode 100644
index 0000000..ebf98aa
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/AmazonAttack.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/AmazonChargedAttack.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/AmazonChargedAttack.png
new file mode 100644
index 0000000..ba10793
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/AmazonChargedAttack.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/AmazonDie.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/AmazonDie.png
new file mode 100644
index 0000000..f32259e
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/AmazonDie.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/AmazonDmg.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/AmazonDmg.png
new file mode 100644
index 0000000..e4a50c9
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/AmazonDmg.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/AmazonIdle.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/AmazonIdle.png
new file mode 100644
index 0000000..8a54c31
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/AmazonIdle.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/AmazonJump.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/AmazonJump.png
new file mode 100644
index 0000000..686cd2c
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/AmazonJump.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/AmazonWalk.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/AmazonWalk.png
new file mode 100644
index 0000000..ae3230c
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/AmazonWalk.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/_AnimationInfo.txt b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/_AnimationInfo.txt
new file mode 100644
index 0000000..624520c
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/_AnimationInfo.txt
@@ -0,0 +1,10 @@
+*Frame size* 

+

+- 32x32px: For all the animations.

+

+

+*Frame Duration*

+

+- 100ms: Attack, Jump, Die and Dmg.

+

+- 200ms: Idle and Walk.
\ No newline at end of file
diff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/_GIFs/AmazonAttack.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/_GIFs/AmazonAttack.gif
new file mode 100644
index 0000000..567ff52
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/_GIFs/AmazonAttack.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/_GIFs/AmazonChargedAttack.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/_GIFs/AmazonChargedAttack.gif
new file mode 100644
index 0000000..0f74539
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/_GIFs/AmazonChargedAttack.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/_GIFs/AmazonDie.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/_GIFs/AmazonDie.gif
new file mode 100644
index 0000000..120de46
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/_GIFs/AmazonDie.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/_GIFs/AmazonDmg.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/_GIFs/AmazonDmg.gif
new file mode 100644
index 0000000..f85c8cb
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/_GIFs/AmazonDmg.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/_GIFs/AmazonIdle.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/_GIFs/AmazonIdle.gif
new file mode 100644
index 0000000..b90973b
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/_GIFs/AmazonIdle.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/_GIFs/AmazonJump.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/_GIFs/AmazonJump.gif
new file mode 100644
index 0000000..e70d824
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/_GIFs/AmazonJump.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/_GIFs/AmazonWalk.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/_GIFs/AmazonWalk.gif
new file mode 100644
index 0000000..c076260
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/_GIFs/AmazonWalk.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/_Shadows/ShadowHumanoidAttack.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/_Shadows/ShadowHumanoidAttack.png
new file mode 100644
index 0000000..ce032fc
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/_Shadows/ShadowHumanoidAttack.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/_Shadows/ShadowHumanoidChargedAttack.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/_Shadows/ShadowHumanoidChargedAttack.png
new file mode 100644
index 0000000..0ba2ebd
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/_Shadows/ShadowHumanoidChargedAttack.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/_Shadows/ShadowHumanoidDmg.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/_Shadows/ShadowHumanoidDmg.png
new file mode 100644
index 0000000..040baaa
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/_Shadows/ShadowHumanoidDmg.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/_Shadows/ShadowHumanoidIdle.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/_Shadows/ShadowHumanoidIdle.png
new file mode 100644
index 0000000..73cbbb1
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/_Shadows/ShadowHumanoidIdle.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/_Shadows/ShadowHumanoidJump.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/_Shadows/ShadowHumanoidJump.png
new file mode 100644
index 0000000..6e017f6
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/_Shadows/ShadowHumanoidJump.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/_Shadows/ShadowHumanoidSoulDie.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/_Shadows/ShadowHumanoidSoulDie.png
new file mode 100644
index 0000000..5b72667
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/_Shadows/ShadowHumanoidSoulDie.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/_Shadows/ShadowHumanoidSpinDie.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/_Shadows/ShadowHumanoidSpinDie.png
new file mode 100644
index 0000000..5a66f39
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/_Shadows/ShadowHumanoidSpinDie.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/_Shadows/ShadowHumanoidWalk.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/_Shadows/ShadowHumanoidWalk.png
new file mode 100644
index 0000000..23d1fe0
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Amazon/_Shadows/ShadowHumanoidWalk.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/HumanTownsfolkAttack.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/HumanTownsfolkAttack.png
new file mode 100644
index 0000000..9c77c0c
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/HumanTownsfolkAttack.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/HumanTownsfolkChargedAttack.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/HumanTownsfolkChargedAttack.png
new file mode 100644
index 0000000..4236aec
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/HumanTownsfolkChargedAttack.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/HumanTownsfolkDmg.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/HumanTownsfolkDmg.png
new file mode 100644
index 0000000..a4e8eeb
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/HumanTownsfolkDmg.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/HumanTownsfolkIdle.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/HumanTownsfolkIdle.png
new file mode 100644
index 0000000..06a6524
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/HumanTownsfolkIdle.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/HumanTownsfolkJump.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/HumanTownsfolkJump.png
new file mode 100644
index 0000000..132a091
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/HumanTownsfolkJump.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/HumanTownsfolkSpinDie.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/HumanTownsfolkSpinDie.png
new file mode 100644
index 0000000..2888826
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/HumanTownsfolkSpinDie.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/HumanTownsfolkWalk.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/HumanTownsfolkWalk.png
new file mode 100644
index 0000000..37f200d
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/HumanTownsfolkWalk.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/_AnimationInfo.txt b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/_AnimationInfo.txt
new file mode 100644
index 0000000..624520c
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/_AnimationInfo.txt
@@ -0,0 +1,10 @@
+*Frame size* 

+

+- 32x32px: For all the animations.

+

+

+*Frame Duration*

+

+- 100ms: Attack, Jump, Die and Dmg.

+

+- 200ms: Idle and Walk.
\ No newline at end of file
diff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/_GIFs/HumanTownsfolkAttack.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/_GIFs/HumanTownsfolkAttack.gif
new file mode 100644
index 0000000..1946d60
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/_GIFs/HumanTownsfolkAttack.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/_GIFs/HumanTownsfolkChargedAttack.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/_GIFs/HumanTownsfolkChargedAttack.gif
new file mode 100644
index 0000000..bc4caab
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/_GIFs/HumanTownsfolkChargedAttack.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/_GIFs/HumanTownsfolkDmg.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/_GIFs/HumanTownsfolkDmg.gif
new file mode 100644
index 0000000..7ff41f5
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/_GIFs/HumanTownsfolkDmg.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/_GIFs/HumanTownsfolkIdle.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/_GIFs/HumanTownsfolkIdle.gif
new file mode 100644
index 0000000..abbcfb8
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/_GIFs/HumanTownsfolkIdle.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/_GIFs/HumanTownsfolkJump.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/_GIFs/HumanTownsfolkJump.gif
new file mode 100644
index 0000000..0b38947
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/_GIFs/HumanTownsfolkJump.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/_GIFs/HumanTownsfolkSpinDie.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/_GIFs/HumanTownsfolkSpinDie.gif
new file mode 100644
index 0000000..6aba261
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/_GIFs/HumanTownsfolkSpinDie.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/_GIFs/HumanTownsfolkWalk.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/_GIFs/HumanTownsfolkWalk.gif
new file mode 100644
index 0000000..fabb68a
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/_GIFs/HumanTownsfolkWalk.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/_Shadows/ShadowHumanoidAttack.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/_Shadows/ShadowHumanoidAttack.png
new file mode 100644
index 0000000..ce032fc
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/_Shadows/ShadowHumanoidAttack.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/_Shadows/ShadowHumanoidChargedAttack.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/_Shadows/ShadowHumanoidChargedAttack.png
new file mode 100644
index 0000000..0ba2ebd
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/_Shadows/ShadowHumanoidChargedAttack.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/_Shadows/ShadowHumanoidDmg.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/_Shadows/ShadowHumanoidDmg.png
new file mode 100644
index 0000000..040baaa
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/_Shadows/ShadowHumanoidDmg.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/_Shadows/ShadowHumanoidIdle.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/_Shadows/ShadowHumanoidIdle.png
new file mode 100644
index 0000000..73cbbb1
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/_Shadows/ShadowHumanoidIdle.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/_Shadows/ShadowHumanoidJump.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/_Shadows/ShadowHumanoidJump.png
new file mode 100644
index 0000000..6e017f6
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/_Shadows/ShadowHumanoidJump.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/_Shadows/ShadowHumanoidSoulDie.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/_Shadows/ShadowHumanoidSoulDie.png
new file mode 100644
index 0000000..5b72667
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/_Shadows/ShadowHumanoidSoulDie.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/_Shadows/ShadowHumanoidSpinDie.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/_Shadows/ShadowHumanoidSpinDie.png
new file mode 100644
index 0000000..5a66f39
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/_Shadows/ShadowHumanoidSpinDie.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/_Shadows/ShadowHumanoidWalk.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/_Shadows/ShadowHumanoidWalk.png
new file mode 100644
index 0000000..23d1fe0
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Human/Human_Townsfolk/_Shadows/ShadowHumanoidWalk.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/OrcBaseAttack.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/OrcBaseAttack.png
new file mode 100644
index 0000000..a49efda
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/OrcBaseAttack.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/OrcChargedAttack.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/OrcChargedAttack.png
new file mode 100644
index 0000000..691a3d5
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/OrcChargedAttack.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/OrcDie.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/OrcDie.png
new file mode 100644
index 0000000..c369213
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/OrcDie.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/OrcDmg.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/OrcDmg.png
new file mode 100644
index 0000000..ddf9f53
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/OrcDmg.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/OrcIdle.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/OrcIdle.png
new file mode 100644
index 0000000..ec572c6
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/OrcIdle.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/OrcJump.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/OrcJump.png
new file mode 100644
index 0000000..98c9ed9
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/OrcJump.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/OrcWalk.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/OrcWalk.png
new file mode 100644
index 0000000..c43a6fa
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/OrcWalk.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/_AnimationInfo.txt b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/_AnimationInfo.txt
new file mode 100644
index 0000000..624520c
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/_AnimationInfo.txt
@@ -0,0 +1,10 @@
+*Frame size* 

+

+- 32x32px: For all the animations.

+

+

+*Frame Duration*

+

+- 100ms: Attack, Jump, Die and Dmg.

+

+- 200ms: Idle and Walk.
\ No newline at end of file
diff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/_GIFs/OrcBaseAttack.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/_GIFs/OrcBaseAttack.gif
new file mode 100644
index 0000000..28bd89c
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/_GIFs/OrcBaseAttack.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/_GIFs/OrcChargedAttack.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/_GIFs/OrcChargedAttack.gif
new file mode 100644
index 0000000..62c3963
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/_GIFs/OrcChargedAttack.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/_GIFs/OrcDie.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/_GIFs/OrcDie.gif
new file mode 100644
index 0000000..dff271c
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/_GIFs/OrcDie.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/_GIFs/OrcDmg.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/_GIFs/OrcDmg.gif
new file mode 100644
index 0000000..8a89506
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/_GIFs/OrcDmg.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/_GIFs/OrcIdle.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/_GIFs/OrcIdle.gif
new file mode 100644
index 0000000..2ca1b59
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/_GIFs/OrcIdle.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/_GIFs/OrcJump.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/_GIFs/OrcJump.gif
new file mode 100644
index 0000000..d8cb195
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/_GIFs/OrcJump.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/_GIFs/OrcWalk.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/_GIFs/OrcWalk.gif
new file mode 100644
index 0000000..ffc49c8
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/_GIFs/OrcWalk.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/_Shadows/ShadowHumanoidAttack.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/_Shadows/ShadowHumanoidAttack.png
new file mode 100644
index 0000000..ce032fc
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/_Shadows/ShadowHumanoidAttack.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/_Shadows/ShadowHumanoidChargedAttack.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/_Shadows/ShadowHumanoidChargedAttack.png
new file mode 100644
index 0000000..0ba2ebd
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/_Shadows/ShadowHumanoidChargedAttack.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/_Shadows/ShadowHumanoidDmg.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/_Shadows/ShadowHumanoidDmg.png
new file mode 100644
index 0000000..040baaa
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/_Shadows/ShadowHumanoidDmg.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/_Shadows/ShadowHumanoidIdle.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/_Shadows/ShadowHumanoidIdle.png
new file mode 100644
index 0000000..73cbbb1
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/_Shadows/ShadowHumanoidIdle.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/_Shadows/ShadowHumanoidJump.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/_Shadows/ShadowHumanoidJump.png
new file mode 100644
index 0000000..6e017f6
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/_Shadows/ShadowHumanoidJump.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/_Shadows/ShadowHumanoidSoulDie.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/_Shadows/ShadowHumanoidSoulDie.png
new file mode 100644
index 0000000..5b72667
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/_Shadows/ShadowHumanoidSoulDie.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/_Shadows/ShadowHumanoidSpinDie.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/_Shadows/ShadowHumanoidSpinDie.png
new file mode 100644
index 0000000..5a66f39
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/_Shadows/ShadowHumanoidSpinDie.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/_Shadows/ShadowHumanoidWalk.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/_Shadows/ShadowHumanoidWalk.png
new file mode 100644
index 0000000..23d1fe0
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Base_Orc/_Shadows/ShadowHumanoidWalk.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/WildOrcAttack.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/WildOrcAttack.png
new file mode 100644
index 0000000..d83a833
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/WildOrcAttack.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/WildOrcChargedAttack.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/WildOrcChargedAttack.png
new file mode 100644
index 0000000..ad6aebc
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/WildOrcChargedAttack.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/WildOrcDie.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/WildOrcDie.png
new file mode 100644
index 0000000..3266e11
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/WildOrcDie.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/WildOrcDmg.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/WildOrcDmg.png
new file mode 100644
index 0000000..8027c28
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/WildOrcDmg.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/WildOrcIdle.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/WildOrcIdle.png
new file mode 100644
index 0000000..c5905c0
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/WildOrcIdle.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/WildOrcJump.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/WildOrcJump.png
new file mode 100644
index 0000000..5ecd0af
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/WildOrcJump.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/WildOrcWalk.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/WildOrcWalk.png
new file mode 100644
index 0000000..64592f8
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/WildOrcWalk.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/_AnimationInfo.txt b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/_AnimationInfo.txt
new file mode 100644
index 0000000..624520c
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/_AnimationInfo.txt
@@ -0,0 +1,10 @@
+*Frame size* 

+

+- 32x32px: For all the animations.

+

+

+*Frame Duration*

+

+- 100ms: Attack, Jump, Die and Dmg.

+

+- 200ms: Idle and Walk.
\ No newline at end of file
diff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/_GIFs/WildOrcAttack.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/_GIFs/WildOrcAttack.gif
new file mode 100644
index 0000000..7a5e20a
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/_GIFs/WildOrcAttack.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/_GIFs/WildOrcChargedAttack.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/_GIFs/WildOrcChargedAttack.gif
new file mode 100644
index 0000000..45e37f9
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/_GIFs/WildOrcChargedAttack.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/_GIFs/WildOrcDie.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/_GIFs/WildOrcDie.gif
new file mode 100644
index 0000000..f4fdf3d
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/_GIFs/WildOrcDie.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/_GIFs/WildOrcDmg.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/_GIFs/WildOrcDmg.gif
new file mode 100644
index 0000000..0a04ba2
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/_GIFs/WildOrcDmg.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/_GIFs/WildOrcIdle.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/_GIFs/WildOrcIdle.gif
new file mode 100644
index 0000000..acbc896
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/_GIFs/WildOrcIdle.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/_GIFs/WildOrcJump.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/_GIFs/WildOrcJump.gif
new file mode 100644
index 0000000..485eeb9
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/_GIFs/WildOrcJump.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/_GIFs/WildOrcWalk.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/_GIFs/WildOrcWalk.gif
new file mode 100644
index 0000000..067a96b
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/_GIFs/WildOrcWalk.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/_Shadows/ShadowHumanoidAttack.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/_Shadows/ShadowHumanoidAttack.png
new file mode 100644
index 0000000..ce032fc
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/_Shadows/ShadowHumanoidAttack.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/_Shadows/ShadowHumanoidChargedAttack.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/_Shadows/ShadowHumanoidChargedAttack.png
new file mode 100644
index 0000000..0ba2ebd
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/_Shadows/ShadowHumanoidChargedAttack.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/_Shadows/ShadowHumanoidDmg.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/_Shadows/ShadowHumanoidDmg.png
new file mode 100644
index 0000000..040baaa
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/_Shadows/ShadowHumanoidDmg.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/_Shadows/ShadowHumanoidIdle.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/_Shadows/ShadowHumanoidIdle.png
new file mode 100644
index 0000000..73cbbb1
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/_Shadows/ShadowHumanoidIdle.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/_Shadows/ShadowHumanoidJump.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/_Shadows/ShadowHumanoidJump.png
new file mode 100644
index 0000000..6e017f6
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/_Shadows/ShadowHumanoidJump.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/_Shadows/ShadowHumanoidSoulDie.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/_Shadows/ShadowHumanoidSoulDie.png
new file mode 100644
index 0000000..5b72667
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/_Shadows/ShadowHumanoidSoulDie.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/_Shadows/ShadowHumanoidSpinDie.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/_Shadows/ShadowHumanoidSpinDie.png
new file mode 100644
index 0000000..5a66f39
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/_Shadows/ShadowHumanoidSpinDie.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/_Shadows/ShadowHumanoidWalk.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/_Shadows/ShadowHumanoidWalk.png
new file mode 100644
index 0000000..23d1fe0
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Base_Humanoids/Orc/Wild Orc/_Shadows/ShadowHumanoidWalk.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Bat/BatAttack.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Bat/BatAttack.png
new file mode 100644
index 0000000..bc17f46
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Bat/BatAttack.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Bat/BatDie.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Bat/BatDie.png
new file mode 100644
index 0000000..4e2ba6b
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Bat/BatDie.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Bat/BatDmg.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Bat/BatDmg.png
new file mode 100644
index 0000000..846a91a
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Bat/BatDmg.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Bat/BatFlyIdle.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Bat/BatFlyIdle.png
new file mode 100644
index 0000000..20c24ef
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Bat/BatFlyIdle.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Bat/BatSleep.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Bat/BatSleep.png
new file mode 100644
index 0000000..ecd2e0b
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Bat/BatSleep.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Bat/_AnimationInfo.txt b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Bat/_AnimationInfo.txt
new file mode 100644
index 0000000..70a6ad5
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Bat/_AnimationInfo.txt
@@ -0,0 +1,10 @@
+*Frame size* 

+

+- 32x32px: For all the animations.

+

+

+*Frame Duration*

+

+- 100ms: Attack, Die and Dmg.

+

+- 200ms: Idle and Fly.
\ No newline at end of file
diff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Bat/_GIFs/BatAttack.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Bat/_GIFs/BatAttack.gif
new file mode 100644
index 0000000..c580c4f
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Bat/_GIFs/BatAttack.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Bat/_GIFs/BatDie.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Bat/_GIFs/BatDie.gif
new file mode 100644
index 0000000..f60b631
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Bat/_GIFs/BatDie.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Bat/_GIFs/BatDmg.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Bat/_GIFs/BatDmg.gif
new file mode 100644
index 0000000..7e7ea8e
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Bat/_GIFs/BatDmg.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Bat/_GIFs/BatFlyIdle.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Bat/_GIFs/BatFlyIdle.gif
new file mode 100644
index 0000000..f9bbe7a
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Bat/_GIFs/BatFlyIdle.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Bat/_GIFs/BatSleep.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Bat/_GIFs/BatSleep.gif
new file mode 100644
index 0000000..87feb09
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Bat/_GIFs/BatSleep.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Bat/_Shadows/ShadowBatAttack.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Bat/_Shadows/ShadowBatAttack.png
new file mode 100644
index 0000000..364bc36
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Bat/_Shadows/ShadowBatAttack.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Bat/_Shadows/ShadowBatDie.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Bat/_Shadows/ShadowBatDie.png
new file mode 100644
index 0000000..7c35dc1
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Bat/_Shadows/ShadowBatDie.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Bat/_Shadows/ShadowBatDmg.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Bat/_Shadows/ShadowBatDmg.png
new file mode 100644
index 0000000..768dbc9
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Bat/_Shadows/ShadowBatDmg.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Bat/_Shadows/ShadowBatFly.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Bat/_Shadows/ShadowBatFly.png
new file mode 100644
index 0000000..fb76607
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Bat/_Shadows/ShadowBatFly.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Bat/_Shadows/ShadowBatSleep.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Bat/_Shadows/ShadowBatSleep.png
new file mode 100644
index 0000000..35d7b9b
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Bat/_Shadows/ShadowBatSleep.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Warg/WargAttack.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Warg/WargAttack.png
new file mode 100644
index 0000000..425c120
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Warg/WargAttack.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Warg/WargDie.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Warg/WargDie.png
new file mode 100644
index 0000000..4f332f3
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Warg/WargDie.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Warg/WargDmg.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Warg/WargDmg.png
new file mode 100644
index 0000000..abef8a0
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Warg/WargDmg.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Warg/WargIdle.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Warg/WargIdle.png
new file mode 100644
index 0000000..50af8dc
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Warg/WargIdle.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Warg/WargJump.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Warg/WargJump.png
new file mode 100644
index 0000000..2e90f69
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Warg/WargJump.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Warg/WargWalk.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Warg/WargWalk.png
new file mode 100644
index 0000000..a389098
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Warg/WargWalk.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Warg/_AnimationInfo.txt b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Warg/_AnimationInfo.txt
new file mode 100644
index 0000000..624520c
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Warg/_AnimationInfo.txt
@@ -0,0 +1,10 @@
+*Frame size* 

+

+- 32x32px: For all the animations.

+

+

+*Frame Duration*

+

+- 100ms: Attack, Jump, Die and Dmg.

+

+- 200ms: Idle and Walk.
\ No newline at end of file
diff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Warg/_GIFs/WargAttack.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Warg/_GIFs/WargAttack.gif
new file mode 100644
index 0000000..4d32d8f
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Warg/_GIFs/WargAttack.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Warg/_GIFs/WargDie.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Warg/_GIFs/WargDie.gif
new file mode 100644
index 0000000..e784db8
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Warg/_GIFs/WargDie.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Warg/_GIFs/WargDmg.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Warg/_GIFs/WargDmg.gif
new file mode 100644
index 0000000..1aeb7b2
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Warg/_GIFs/WargDmg.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Warg/_GIFs/WargIdle.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Warg/_GIFs/WargIdle.gif
new file mode 100644
index 0000000..3be5a9c
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Warg/_GIFs/WargIdle.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Warg/_GIFs/WargJump.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Warg/_GIFs/WargJump.gif
new file mode 100644
index 0000000..f243eeb
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Warg/_GIFs/WargJump.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Warg/_GIFs/WargWalk.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Warg/_GIFs/WargWalk.gif
new file mode 100644
index 0000000..0d575c4
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Warg/_GIFs/WargWalk.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Warg/_Shadows/ShadowWargAttack.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Warg/_Shadows/ShadowWargAttack.png
new file mode 100644
index 0000000..ee0050d
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Warg/_Shadows/ShadowWargAttack.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Warg/_Shadows/ShadowWargDie.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Warg/_Shadows/ShadowWargDie.png
new file mode 100644
index 0000000..6d9b8c9
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Warg/_Shadows/ShadowWargDie.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Warg/_Shadows/ShadowWargDmg.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Warg/_Shadows/ShadowWargDmg.png
new file mode 100644
index 0000000..e6431cb
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Warg/_Shadows/ShadowWargDmg.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Warg/_Shadows/ShadowWargIdle.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Warg/_Shadows/ShadowWargIdle.png
new file mode 100644
index 0000000..490a181
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Warg/_Shadows/ShadowWargIdle.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Warg/_Shadows/ShadowWargJump.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Warg/_Shadows/ShadowWargJump.png
new file mode 100644
index 0000000..8d6f9e3
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Warg/_Shadows/ShadowWargJump.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Warg/_Shadows/ShadowWargWalk.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Warg/_Shadows/ShadowWargWalk.png
new file mode 100644
index 0000000..871252c
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Warg/_Shadows/ShadowWargWalk.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Wolf/WolfAttack.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Wolf/WolfAttack.png
new file mode 100644
index 0000000..4d4cad3
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Wolf/WolfAttack.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Wolf/WolfDie.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Wolf/WolfDie.png
new file mode 100644
index 0000000..842c180
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Wolf/WolfDie.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Wolf/WolfDmg.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Wolf/WolfDmg.png
new file mode 100644
index 0000000..3b326c1
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Wolf/WolfDmg.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Wolf/WolfIdle.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Wolf/WolfIdle.png
new file mode 100644
index 0000000..b6cc35a
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Wolf/WolfIdle.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Wolf/WolfJump.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Wolf/WolfJump.png
new file mode 100644
index 0000000..6a7e364
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Wolf/WolfJump.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Wolf/WolfWalk.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Wolf/WolfWalk.png
new file mode 100644
index 0000000..1bd024c
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Wolf/WolfWalk.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Wolf/_AnimationInfo.txt b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Wolf/_AnimationInfo.txt
new file mode 100644
index 0000000..624520c
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Wolf/_AnimationInfo.txt
@@ -0,0 +1,10 @@
+*Frame size* 

+

+- 32x32px: For all the animations.

+

+

+*Frame Duration*

+

+- 100ms: Attack, Jump, Die and Dmg.

+

+- 200ms: Idle and Walk.
\ No newline at end of file
diff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Wolf/_GIFs/WolfAttack.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Wolf/_GIFs/WolfAttack.gif
new file mode 100644
index 0000000..e10a4e8
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Wolf/_GIFs/WolfAttack.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Wolf/_GIFs/WolfDie.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Wolf/_GIFs/WolfDie.gif
new file mode 100644
index 0000000..050d618
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Wolf/_GIFs/WolfDie.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Wolf/_GIFs/WolfDmg.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Wolf/_GIFs/WolfDmg.gif
new file mode 100644
index 0000000..3069d73
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Wolf/_GIFs/WolfDmg.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Wolf/_GIFs/WolfIdle.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Wolf/_GIFs/WolfIdle.gif
new file mode 100644
index 0000000..60a5c98
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Wolf/_GIFs/WolfIdle.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Wolf/_GIFs/WolfJump.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Wolf/_GIFs/WolfJump.gif
new file mode 100644
index 0000000..6213a46
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Wolf/_GIFs/WolfJump.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Wolf/_GIFs/WolfWalk.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Wolf/_GIFs/WolfWalk.gif
new file mode 100644
index 0000000..5046827
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Wolf/_GIFs/WolfWalk.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Wolf/_Shadows/ShadowWolfAttack.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Wolf/_Shadows/ShadowWolfAttack.png
new file mode 100644
index 0000000..ebe8527
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Wolf/_Shadows/ShadowWolfAttack.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Wolf/_Shadows/ShadowWolfDie.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Wolf/_Shadows/ShadowWolfDie.png
new file mode 100644
index 0000000..f08d4f1
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Wolf/_Shadows/ShadowWolfDie.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Wolf/_Shadows/ShadowWolfDmg.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Wolf/_Shadows/ShadowWolfDmg.png
new file mode 100644
index 0000000..edda646
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Wolf/_Shadows/ShadowWolfDmg.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Wolf/_Shadows/ShadowWolfIdle.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Wolf/_Shadows/ShadowWolfIdle.png
new file mode 100644
index 0000000..bf262d9
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Wolf/_Shadows/ShadowWolfIdle.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Wolf/_Shadows/ShadowWolfJump.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Wolf/_Shadows/ShadowWolfJump.png
new file mode 100644
index 0000000..a587cc3
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Wolf/_Shadows/ShadowWolfJump.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Wolf/_Shadows/ShadowWolfWalk.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Wolf/_Shadows/ShadowWolfWalk.png
new file mode 100644
index 0000000..b703968
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Beasts/Wolf/_Shadows/ShadowWolfWalk.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Centaur/CentaurAttack.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Centaur/CentaurAttack.png
new file mode 100644
index 0000000..c57c026
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Centaur/CentaurAttack.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Centaur/CentaurDie.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Centaur/CentaurDie.png
new file mode 100644
index 0000000..305a308
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Centaur/CentaurDie.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Centaur/CentaurDmg.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Centaur/CentaurDmg.png
new file mode 100644
index 0000000..2165e72
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Centaur/CentaurDmg.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Centaur/CentaurIdle.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Centaur/CentaurIdle.png
new file mode 100644
index 0000000..1a59da6
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Centaur/CentaurIdle.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Centaur/CentaurJump.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Centaur/CentaurJump.png
new file mode 100644
index 0000000..f8bf75b
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Centaur/CentaurJump.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Centaur/CentaurWalk.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Centaur/CentaurWalk.png
new file mode 100644
index 0000000..8aaf86b
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Centaur/CentaurWalk.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Centaur/_AnimationInfo.txt b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Centaur/_AnimationInfo.txt
new file mode 100644
index 0000000..624520c
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Centaur/_AnimationInfo.txt
@@ -0,0 +1,10 @@
+*Frame size* 

+

+- 32x32px: For all the animations.

+

+

+*Frame Duration*

+

+- 100ms: Attack, Jump, Die and Dmg.

+

+- 200ms: Idle and Walk.
\ No newline at end of file
diff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Centaur/_GIFs/CentaurAttack.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Centaur/_GIFs/CentaurAttack.gif
new file mode 100644
index 0000000..954a898
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Centaur/_GIFs/CentaurAttack.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Centaur/_GIFs/CentaurDie.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Centaur/_GIFs/CentaurDie.gif
new file mode 100644
index 0000000..4ca6921
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Centaur/_GIFs/CentaurDie.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Centaur/_GIFs/CentaurDmg.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Centaur/_GIFs/CentaurDmg.gif
new file mode 100644
index 0000000..0eb3c8a
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Centaur/_GIFs/CentaurDmg.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Centaur/_GIFs/CentaurIdle.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Centaur/_GIFs/CentaurIdle.gif
new file mode 100644
index 0000000..c48fb89
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Centaur/_GIFs/CentaurIdle.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Centaur/_GIFs/CentaurJump.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Centaur/_GIFs/CentaurJump.gif
new file mode 100644
index 0000000..e89396a
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Centaur/_GIFs/CentaurJump.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Centaur/_GIFs/CentaurWalk.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Centaur/_GIFs/CentaurWalk.gif
new file mode 100644
index 0000000..1ee5ae7
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Centaur/_GIFs/CentaurWalk.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Centaur/_Shadow/ShadowCentaurAttack.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Centaur/_Shadow/ShadowCentaurAttack.png
new file mode 100644
index 0000000..4afe96d
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Centaur/_Shadow/ShadowCentaurAttack.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Centaur/_Shadow/ShadowCentaurDie.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Centaur/_Shadow/ShadowCentaurDie.png
new file mode 100644
index 0000000..d49b0d0
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Centaur/_Shadow/ShadowCentaurDie.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Centaur/_Shadow/ShadowCentaurDmg.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Centaur/_Shadow/ShadowCentaurDmg.png
new file mode 100644
index 0000000..0eba738
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Centaur/_Shadow/ShadowCentaurDmg.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Centaur/_Shadow/ShadowCentaurIdle.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Centaur/_Shadow/ShadowCentaurIdle.png
new file mode 100644
index 0000000..d2cd612
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Centaur/_Shadow/ShadowCentaurIdle.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Centaur/_Shadow/ShadowCentaurJump.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Centaur/_Shadow/ShadowCentaurJump.png
new file mode 100644
index 0000000..619396b
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Centaur/_Shadow/ShadowCentaurJump.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Centaur/_Shadow/ShadowCentaurWalk.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Centaur/_Shadow/ShadowCentaurWalk.png
new file mode 100644
index 0000000..131a9e1
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Centaur/_Shadow/ShadowCentaurWalk.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Cyclop/CyclopAttack.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Cyclop/CyclopAttack.png
new file mode 100644
index 0000000..14e112d
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Cyclop/CyclopAttack.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Cyclop/CyclopDie.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Cyclop/CyclopDie.png
new file mode 100644
index 0000000..e2a8091
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Cyclop/CyclopDie.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Cyclop/CyclopDmg.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Cyclop/CyclopDmg.png
new file mode 100644
index 0000000..54e32e1
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Cyclop/CyclopDmg.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Cyclop/CyclopIdle.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Cyclop/CyclopIdle.png
new file mode 100644
index 0000000..bb357c9
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Cyclop/CyclopIdle.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Cyclop/CyclopJump.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Cyclop/CyclopJump.png
new file mode 100644
index 0000000..dc0b2dd
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Cyclop/CyclopJump.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Cyclop/CyclopWalk.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Cyclop/CyclopWalk.png
new file mode 100644
index 0000000..512696d
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Cyclop/CyclopWalk.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Cyclop/_AnimationInfo.txt b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Cyclop/_AnimationInfo.txt
new file mode 100644
index 0000000..624520c
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Cyclop/_AnimationInfo.txt
@@ -0,0 +1,10 @@
+*Frame size* 

+

+- 32x32px: For all the animations.

+

+

+*Frame Duration*

+

+- 100ms: Attack, Jump, Die and Dmg.

+

+- 200ms: Idle and Walk.
\ No newline at end of file
diff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Cyclop/_GIFs/CyclopAttack.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Cyclop/_GIFs/CyclopAttack.gif
new file mode 100644
index 0000000..f051587
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Cyclop/_GIFs/CyclopAttack.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Cyclop/_GIFs/CyclopDie.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Cyclop/_GIFs/CyclopDie.gif
new file mode 100644
index 0000000..dc55b73
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Cyclop/_GIFs/CyclopDie.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Cyclop/_GIFs/CyclopDmg.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Cyclop/_GIFs/CyclopDmg.gif
new file mode 100644
index 0000000..4a640c5
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Cyclop/_GIFs/CyclopDmg.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Cyclop/_GIFs/CyclopIdle.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Cyclop/_GIFs/CyclopIdle.gif
new file mode 100644
index 0000000..614257f
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Cyclop/_GIFs/CyclopIdle.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Cyclop/_GIFs/CyclopJump.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Cyclop/_GIFs/CyclopJump.gif
new file mode 100644
index 0000000..dbdcda7
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Cyclop/_GIFs/CyclopJump.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Cyclop/_GIFs/CyclopWalk.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Cyclop/_GIFs/CyclopWalk.gif
new file mode 100644
index 0000000..9fd8d92
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Cyclop/_GIFs/CyclopWalk.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Cyclop/_Shadows/ShadowAttack.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Cyclop/_Shadows/ShadowAttack.png
new file mode 100644
index 0000000..dd1496f
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Cyclop/_Shadows/ShadowAttack.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Cyclop/_Shadows/ShadowDie.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Cyclop/_Shadows/ShadowDie.png
new file mode 100644
index 0000000..76ac698
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Cyclop/_Shadows/ShadowDie.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Cyclop/_Shadows/ShadowDmg.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Cyclop/_Shadows/ShadowDmg.png
new file mode 100644
index 0000000..87972b8
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Cyclop/_Shadows/ShadowDmg.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Cyclop/_Shadows/ShadowIdle.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Cyclop/_Shadows/ShadowIdle.png
new file mode 100644
index 0000000..0adafa5
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Cyclop/_Shadows/ShadowIdle.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Cyclop/_Shadows/ShadowJump.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Cyclop/_Shadows/ShadowJump.png
new file mode 100644
index 0000000..60839f6
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Cyclop/_Shadows/ShadowJump.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Cyclop/_Shadows/ShadowWalk.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Cyclop/_Shadows/ShadowWalk.png
new file mode 100644
index 0000000..7c27736
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Cyclop/_Shadows/ShadowWalk.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Evil_Snowman/EvilSnowmanActivation.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Evil_Snowman/EvilSnowmanActivation.png
new file mode 100644
index 0000000..fa943e0
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Evil_Snowman/EvilSnowmanActivation.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Evil_Snowman/EvilSnowmanAttack.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Evil_Snowman/EvilSnowmanAttack.png
new file mode 100644
index 0000000..3958842
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Evil_Snowman/EvilSnowmanAttack.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Evil_Snowman/SnowBall.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Evil_Snowman/SnowBall.png
new file mode 100644
index 0000000..846b3de
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Evil_Snowman/SnowBall.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Evil_Snowman/_GIFs/EvilSnowmanActivation.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Evil_Snowman/_GIFs/EvilSnowmanActivation.gif
new file mode 100644
index 0000000..16ace36
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Evil_Snowman/_GIFs/EvilSnowmanActivation.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Evil_Snowman/_GIFs/EvilSnowmanAttack.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Evil_Snowman/_GIFs/EvilSnowmanAttack.gif
new file mode 100644
index 0000000..6b22664
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Evil_Snowman/_GIFs/EvilSnowmanAttack.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Evil_Snowman/_Shadows/EvilSnowmanActivationShadows.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Evil_Snowman/_Shadows/EvilSnowmanActivationShadows.png
new file mode 100644
index 0000000..7d7fbe5
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Evil_Snowman/_Shadows/EvilSnowmanActivationShadows.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Evil_Snowman/_Shadows/EvilSnowmanAttackShadows.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Evil_Snowman/_Shadows/EvilSnowmanAttackShadows.png
new file mode 100644
index 0000000..8856f2b
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Evil_Snowman/_Shadows/EvilSnowmanAttackShadows.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Minotaur/MinotaurAttack.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Minotaur/MinotaurAttack.png
new file mode 100644
index 0000000..01949a3
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Minotaur/MinotaurAttack.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Minotaur/MinotaurDie.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Minotaur/MinotaurDie.png
new file mode 100644
index 0000000..9d2e7f7
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Minotaur/MinotaurDie.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Minotaur/MinotaurDmg.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Minotaur/MinotaurDmg.png
new file mode 100644
index 0000000..e05c592
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Minotaur/MinotaurDmg.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Minotaur/MinotaurIdle.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Minotaur/MinotaurIdle.png
new file mode 100644
index 0000000..887dff0
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Minotaur/MinotaurIdle.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Minotaur/MinotaurJump.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Minotaur/MinotaurJump.png
new file mode 100644
index 0000000..62f08d8
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Minotaur/MinotaurJump.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Minotaur/MinotaurWalk.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Minotaur/MinotaurWalk.png
new file mode 100644
index 0000000..4dd190f
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Minotaur/MinotaurWalk.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Minotaur/_AnimationInfo.txt b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Minotaur/_AnimationInfo.txt
new file mode 100644
index 0000000..624520c
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Minotaur/_AnimationInfo.txt
@@ -0,0 +1,10 @@
+*Frame size* 

+

+- 32x32px: For all the animations.

+

+

+*Frame Duration*

+

+- 100ms: Attack, Jump, Die and Dmg.

+

+- 200ms: Idle and Walk.
\ No newline at end of file
diff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Minotaur/_GIFs/MinotaurAttack.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Minotaur/_GIFs/MinotaurAttack.gif
new file mode 100644
index 0000000..f86792a
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Minotaur/_GIFs/MinotaurAttack.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Minotaur/_GIFs/MinotaurDie.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Minotaur/_GIFs/MinotaurDie.gif
new file mode 100644
index 0000000..c48d651
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Minotaur/_GIFs/MinotaurDie.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Minotaur/_GIFs/MinotaurDmg.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Minotaur/_GIFs/MinotaurDmg.gif
new file mode 100644
index 0000000..dcafc0b
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Minotaur/_GIFs/MinotaurDmg.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Minotaur/_GIFs/MinotaurIdle.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Minotaur/_GIFs/MinotaurIdle.gif
new file mode 100644
index 0000000..4620159
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Minotaur/_GIFs/MinotaurIdle.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Minotaur/_GIFs/MinotaurJump.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Minotaur/_GIFs/MinotaurJump.gif
new file mode 100644
index 0000000..1994f22
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Minotaur/_GIFs/MinotaurJump.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Minotaur/_GIFs/MinotaurWalk.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Minotaur/_GIFs/MinotaurWalk.gif
new file mode 100644
index 0000000..bbd9304
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Minotaur/_GIFs/MinotaurWalk.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Minotaur/_Shadows/ShadowAttack.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Minotaur/_Shadows/ShadowAttack.png
new file mode 100644
index 0000000..24c95e1
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Minotaur/_Shadows/ShadowAttack.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Minotaur/_Shadows/ShadowDie.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Minotaur/_Shadows/ShadowDie.png
new file mode 100644
index 0000000..af9a132
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Minotaur/_Shadows/ShadowDie.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Minotaur/_Shadows/ShadowDmg.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Minotaur/_Shadows/ShadowDmg.png
new file mode 100644
index 0000000..87972b8
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Minotaur/_Shadows/ShadowDmg.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Minotaur/_Shadows/ShadowIdle.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Minotaur/_Shadows/ShadowIdle.png
new file mode 100644
index 0000000..0adafa5
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Minotaur/_Shadows/ShadowIdle.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Minotaur/_Shadows/ShadowJump.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Minotaur/_Shadows/ShadowJump.png
new file mode 100644
index 0000000..60839f6
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Minotaur/_Shadows/ShadowJump.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Minotaur/_Shadows/ShadowWalk.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Minotaur/_Shadows/ShadowWalk.png
new file mode 100644
index 0000000..7c27736
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Minotaur/_Shadows/ShadowWalk.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Pumpkin_Horror/PumpkinHorrorBaseAttack.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Pumpkin_Horror/PumpkinHorrorBaseAttack.png
new file mode 100644
index 0000000..7bc0500
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Pumpkin_Horror/PumpkinHorrorBaseAttack.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Pumpkin_Horror/PumpkinHorrorBaseDie.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Pumpkin_Horror/PumpkinHorrorBaseDie.png
new file mode 100644
index 0000000..f47cd7b
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Pumpkin_Horror/PumpkinHorrorBaseDie.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Pumpkin_Horror/PumpkinHorrorBaseDmg.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Pumpkin_Horror/PumpkinHorrorBaseDmg.png
new file mode 100644
index 0000000..96b3435
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Pumpkin_Horror/PumpkinHorrorBaseDmg.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Pumpkin_Horror/PumpkinHorrorBaseIdleActivation.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Pumpkin_Horror/PumpkinHorrorBaseIdleActivation.png
new file mode 100644
index 0000000..8a597e1
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Pumpkin_Horror/PumpkinHorrorBaseIdleActivation.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Pumpkin_Horror/PumpkinHorrorBaseWalk.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Pumpkin_Horror/PumpkinHorrorBaseWalk.png
new file mode 100644
index 0000000..41f5148
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Pumpkin_Horror/PumpkinHorrorBaseWalk.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Pumpkin_Horror/_AnimationInfo.txt b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Pumpkin_Horror/_AnimationInfo.txt
new file mode 100644
index 0000000..624520c
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Pumpkin_Horror/_AnimationInfo.txt
@@ -0,0 +1,10 @@
+*Frame size* 

+

+- 32x32px: For all the animations.

+

+

+*Frame Duration*

+

+- 100ms: Attack, Jump, Die and Dmg.

+

+- 200ms: Idle and Walk.
\ No newline at end of file
diff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Pumpkin_Horror/_GIFs/PumpkinHorrorBaseAttack.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Pumpkin_Horror/_GIFs/PumpkinHorrorBaseAttack.gif
new file mode 100644
index 0000000..7e0ad5b
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Pumpkin_Horror/_GIFs/PumpkinHorrorBaseAttack.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Pumpkin_Horror/_GIFs/PumpkinHorrorBaseDie.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Pumpkin_Horror/_GIFs/PumpkinHorrorBaseDie.gif
new file mode 100644
index 0000000..970c67c
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Pumpkin_Horror/_GIFs/PumpkinHorrorBaseDie.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Pumpkin_Horror/_GIFs/PumpkinHorrorBaseDmg.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Pumpkin_Horror/_GIFs/PumpkinHorrorBaseDmg.gif
new file mode 100644
index 0000000..406b8fc
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Pumpkin_Horror/_GIFs/PumpkinHorrorBaseDmg.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Pumpkin_Horror/_GIFs/PumpkinHorrorBaseIdleActivation.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Pumpkin_Horror/_GIFs/PumpkinHorrorBaseIdleActivation.gif
new file mode 100644
index 0000000..6528d5f
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Pumpkin_Horror/_GIFs/PumpkinHorrorBaseIdleActivation.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Pumpkin_Horror/_GIFs/PumpkinHorrorBaseWalk.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Pumpkin_Horror/_GIFs/PumpkinHorrorBaseWalk.gif
new file mode 100644
index 0000000..090a1b2
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Pumpkin_Horror/_GIFs/PumpkinHorrorBaseWalk.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Pumpkin_Horror/_Shadows/ShadowPumkinHorrorAttack.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Pumpkin_Horror/_Shadows/ShadowPumkinHorrorAttack.png
new file mode 100644
index 0000000..e79ec8c
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Pumpkin_Horror/_Shadows/ShadowPumkinHorrorAttack.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Pumpkin_Horror/_Shadows/ShadowPumkinHorrorDmg.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Pumpkin_Horror/_Shadows/ShadowPumkinHorrorDmg.png
new file mode 100644
index 0000000..eaf5bc3
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Pumpkin_Horror/_Shadows/ShadowPumkinHorrorDmg.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Pumpkin_Horror/_Shadows/ShadowPumkinHorrorIdle.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Pumpkin_Horror/_Shadows/ShadowPumkinHorrorIdle.png
new file mode 100644
index 0000000..026e01b
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Pumpkin_Horror/_Shadows/ShadowPumkinHorrorIdle.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Pumpkin_Horror/_Shadows/ShadowPumkinHorrorWalk.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Pumpkin_Horror/_Shadows/ShadowPumkinHorrorWalk.png
new file mode 100644
index 0000000..0cd8f0e
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Pumpkin_Horror/_Shadows/ShadowPumkinHorrorWalk.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Pumpkin_Horror/_Shadows/ShadowPumpkinHorrorDie.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Pumpkin_Horror/_Shadows/ShadowPumpkinHorrorDie.png
new file mode 100644
index 0000000..9c025fa
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Pumpkin_Horror/_Shadows/ShadowPumpkinHorrorDie.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/AnimationInfo.txt b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/AnimationInfo.txt
new file mode 100644
index 0000000..624520c
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/AnimationInfo.txt
@@ -0,0 +1,10 @@
+*Frame size* 

+

+- 32x32px: For all the animations.

+

+

+*Frame Duration*

+

+- 100ms: Attack, Jump, Die and Dmg.

+

+- 200ms: Idle and Walk.
\ No newline at end of file
diff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/TrasgoAttack.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/TrasgoAttack.png
new file mode 100644
index 0000000..6f7b1b4
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/TrasgoAttack.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/TrasgoChargedAttack.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/TrasgoChargedAttack.png
new file mode 100644
index 0000000..9590365
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/TrasgoChargedAttack.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/TrasgoDmg.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/TrasgoDmg.png
new file mode 100644
index 0000000..a7c174a
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/TrasgoDmg.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/TrasgoIdle.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/TrasgoIdle.png
new file mode 100644
index 0000000..d4c18de
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/TrasgoIdle.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/TrasgoJump.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/TrasgoJump.png
new file mode 100644
index 0000000..6392e7e
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/TrasgoJump.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/TrasgoSpinDie.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/TrasgoSpinDie.png
new file mode 100644
index 0000000..35b09cd
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/TrasgoSpinDie.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/TrasgoWalk.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/TrasgoWalk.png
new file mode 100644
index 0000000..89d0ac4
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/TrasgoWalk.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/_GIFs/TrasgoAttack.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/_GIFs/TrasgoAttack.gif
new file mode 100644
index 0000000..70e5b34
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/_GIFs/TrasgoAttack.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/_GIFs/TrasgoChargedAttack.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/_GIFs/TrasgoChargedAttack.gif
new file mode 100644
index 0000000..f94e096
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/_GIFs/TrasgoChargedAttack.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/_GIFs/TrasgoDmg.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/_GIFs/TrasgoDmg.gif
new file mode 100644
index 0000000..3384432
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/_GIFs/TrasgoDmg.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/_GIFs/TrasgoIdle.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/_GIFs/TrasgoIdle.gif
new file mode 100644
index 0000000..46ff363
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/_GIFs/TrasgoIdle.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/_GIFs/TrasgoJump.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/_GIFs/TrasgoJump.gif
new file mode 100644
index 0000000..3c7499f
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/_GIFs/TrasgoJump.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/_GIFs/TrasgoSpinDie.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/_GIFs/TrasgoSpinDie.gif
new file mode 100644
index 0000000..549c04e
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/_GIFs/TrasgoSpinDie.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/_GIFs/TrasgoWalk.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/_GIFs/TrasgoWalk.gif
new file mode 100644
index 0000000..d14d1a2
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/_GIFs/TrasgoWalk.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/_Shadows/ShadowTrasgoAttack.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/_Shadows/ShadowTrasgoAttack.png
new file mode 100644
index 0000000..1b37fe1
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/_Shadows/ShadowTrasgoAttack.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/_Shadows/ShadowTrasgoChargedAttack.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/_Shadows/ShadowTrasgoChargedAttack.png
new file mode 100644
index 0000000..fadd77f
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/_Shadows/ShadowTrasgoChargedAttack.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/_Shadows/ShadowTrasgoDmg.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/_Shadows/ShadowTrasgoDmg.png
new file mode 100644
index 0000000..b7b43c2
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/_Shadows/ShadowTrasgoDmg.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/_Shadows/ShadowTrasgoIdle.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/_Shadows/ShadowTrasgoIdle.png
new file mode 100644
index 0000000..a621f10
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/_Shadows/ShadowTrasgoIdle.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/_Shadows/ShadowTrasgoJump.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/_Shadows/ShadowTrasgoJump.png
new file mode 100644
index 0000000..8f6b381
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/_Shadows/ShadowTrasgoJump.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/_Shadows/ShadowTrasgoSpinDie.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/_Shadows/ShadowTrasgoSpinDie.png
new file mode 100644
index 0000000..df7f507
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/_Shadows/ShadowTrasgoSpinDie.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/_Shadows/ShadowTrasgoWalk.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/_Shadows/ShadowTrasgoWalk.png
new file mode 100644
index 0000000..d08d4a4
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Trasgo/_Shadows/ShadowTrasgoWalk.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Troll/TrollAttack.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Troll/TrollAttack.png
new file mode 100644
index 0000000..e96021d
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Troll/TrollAttack.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Troll/TrollDie.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Troll/TrollDie.png
new file mode 100644
index 0000000..369791e
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Troll/TrollDie.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Troll/TrollDmg.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Troll/TrollDmg.png
new file mode 100644
index 0000000..15cffd4
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Troll/TrollDmg.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Troll/TrollIdle.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Troll/TrollIdle.png
new file mode 100644
index 0000000..c2dac40
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Troll/TrollIdle.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Troll/TrollJump.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Troll/TrollJump.png
new file mode 100644
index 0000000..ea10196
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Troll/TrollJump.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Troll/TrollWalk.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Troll/TrollWalk.png
new file mode 100644
index 0000000..38d42ea
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Troll/TrollWalk.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Troll/_AnimationInfo.txt b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Troll/_AnimationInfo.txt
new file mode 100644
index 0000000..624520c
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Troll/_AnimationInfo.txt
@@ -0,0 +1,10 @@
+*Frame size* 

+

+- 32x32px: For all the animations.

+

+

+*Frame Duration*

+

+- 100ms: Attack, Jump, Die and Dmg.

+

+- 200ms: Idle and Walk.
\ No newline at end of file
diff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Troll/_GIFs/TrollAttack.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Troll/_GIFs/TrollAttack.gif
new file mode 100644
index 0000000..2367ae8
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Troll/_GIFs/TrollAttack.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Troll/_GIFs/TrollDie.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Troll/_GIFs/TrollDie.gif
new file mode 100644
index 0000000..3217eab
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Troll/_GIFs/TrollDie.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Troll/_GIFs/TrollDmg.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Troll/_GIFs/TrollDmg.gif
new file mode 100644
index 0000000..9753172
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Troll/_GIFs/TrollDmg.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Troll/_GIFs/TrollIdle.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Troll/_GIFs/TrollIdle.gif
new file mode 100644
index 0000000..3a10b92
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Troll/_GIFs/TrollIdle.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Troll/_GIFs/TrollJump.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Troll/_GIFs/TrollJump.gif
new file mode 100644
index 0000000..c2017b3
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Troll/_GIFs/TrollJump.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Troll/_GIFs/TrollWalk.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Troll/_GIFs/TrollWalk.gif
new file mode 100644
index 0000000..273e139
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Troll/_GIFs/TrollWalk.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Troll/_Shadows/ShadowAttack.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Troll/_Shadows/ShadowAttack.png
new file mode 100644
index 0000000..dd1496f
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Troll/_Shadows/ShadowAttack.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Troll/_Shadows/ShadowDie.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Troll/_Shadows/ShadowDie.png
new file mode 100644
index 0000000..76ac698
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Troll/_Shadows/ShadowDie.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Troll/_Shadows/ShadowDmg.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Troll/_Shadows/ShadowDmg.png
new file mode 100644
index 0000000..87972b8
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Troll/_Shadows/ShadowDmg.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Troll/_Shadows/ShadowIdle.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Troll/_Shadows/ShadowIdle.png
new file mode 100644
index 0000000..0adafa5
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Troll/_Shadows/ShadowIdle.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Troll/_Shadows/ShadowJump.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Troll/_Shadows/ShadowJump.png
new file mode 100644
index 0000000..60839f6
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Troll/_Shadows/ShadowJump.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Troll/_Shadows/ShadowWalk.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Troll/_Shadows/ShadowWalk.png
new file mode 100644
index 0000000..7c27736
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Troll/_Shadows/ShadowWalk.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Yeti/YetiAttack.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Yeti/YetiAttack.png
new file mode 100644
index 0000000..3579e34
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Yeti/YetiAttack.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Yeti/YetiDie.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Yeti/YetiDie.png
new file mode 100644
index 0000000..83a39f1
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Yeti/YetiDie.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Yeti/YetiDmg.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Yeti/YetiDmg.png
new file mode 100644
index 0000000..5666aff
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Yeti/YetiDmg.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Yeti/YetiIdle.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Yeti/YetiIdle.png
new file mode 100644
index 0000000..ff07ed7
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Yeti/YetiIdle.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Yeti/YetiJump.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Yeti/YetiJump.png
new file mode 100644
index 0000000..60a1ac8
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Yeti/YetiJump.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Yeti/YetiWalk.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Yeti/YetiWalk.png
new file mode 100644
index 0000000..91a09d0
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Yeti/YetiWalk.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Yeti/_AnimationInfo.txt b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Yeti/_AnimationInfo.txt
new file mode 100644
index 0000000..624520c
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Yeti/_AnimationInfo.txt
@@ -0,0 +1,10 @@
+*Frame size* 

+

+- 32x32px: For all the animations.

+

+

+*Frame Duration*

+

+- 100ms: Attack, Jump, Die and Dmg.

+

+- 200ms: Idle and Walk.
\ No newline at end of file
diff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Yeti/_GIFs/YetiAttack.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Yeti/_GIFs/YetiAttack.gif
new file mode 100644
index 0000000..29ce7bf
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Yeti/_GIFs/YetiAttack.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Yeti/_GIFs/YetiDie.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Yeti/_GIFs/YetiDie.gif
new file mode 100644
index 0000000..c06ceb3
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Yeti/_GIFs/YetiDie.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Yeti/_GIFs/YetiDmg.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Yeti/_GIFs/YetiDmg.gif
new file mode 100644
index 0000000..56b7df1
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Yeti/_GIFs/YetiDmg.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Yeti/_GIFs/YetiIdle.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Yeti/_GIFs/YetiIdle.gif
new file mode 100644
index 0000000..84bf624
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Yeti/_GIFs/YetiIdle.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Yeti/_GIFs/YetiJump.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Yeti/_GIFs/YetiJump.gif
new file mode 100644
index 0000000..bf4d9a0
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Yeti/_GIFs/YetiJump.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Yeti/_GIFs/YetiWalk.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Yeti/_GIFs/YetiWalk.gif
new file mode 100644
index 0000000..f137ca6
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Yeti/_GIFs/YetiWalk.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Yeti/_Shadows/ShadowAttack.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Yeti/_Shadows/ShadowAttack.png
new file mode 100644
index 0000000..dd1496f
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Yeti/_Shadows/ShadowAttack.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Yeti/_Shadows/ShadowDie.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Yeti/_Shadows/ShadowDie.png
new file mode 100644
index 0000000..76ac698
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Yeti/_Shadows/ShadowDie.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Yeti/_Shadows/ShadowDmg.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Yeti/_Shadows/ShadowDmg.png
new file mode 100644
index 0000000..87972b8
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Yeti/_Shadows/ShadowDmg.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Yeti/_Shadows/ShadowIdle.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Yeti/_Shadows/ShadowIdle.png
new file mode 100644
index 0000000..0adafa5
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Yeti/_Shadows/ShadowIdle.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Yeti/_Shadows/ShadowJump.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Yeti/_Shadows/ShadowJump.png
new file mode 100644
index 0000000..60839f6
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Yeti/_Shadows/ShadowJump.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Yeti/_Shadows/ShadowWalk.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Yeti/_Shadows/ShadowWalk.png
new file mode 100644
index 0000000..7c27736
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Monsters/Yeti/_Shadows/ShadowWalk.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue _Slime/BlueSlimeDie.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue _Slime/BlueSlimeDie.png
new file mode 100644
index 0000000..4c1de2d
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue _Slime/BlueSlimeDie.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue _Slime/BlueSlimeDmg.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue _Slime/BlueSlimeDmg.png
new file mode 100644
index 0000000..4dd18df
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue _Slime/BlueSlimeDmg.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue _Slime/BlueSlimeIdle.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue _Slime/BlueSlimeIdle.png
new file mode 100644
index 0000000..9d856c4
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue _Slime/BlueSlimeIdle.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue _Slime/BlueSlimeJumpAttack.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue _Slime/BlueSlimeJumpAttack.png
new file mode 100644
index 0000000..377ccd3
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue _Slime/BlueSlimeJumpAttack.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue _Slime/_AnimationInfo.txt b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue _Slime/_AnimationInfo.txt
new file mode 100644
index 0000000..00d06c0
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue _Slime/_AnimationInfo.txt
@@ -0,0 +1,10 @@
+*Frame size* 

+

+- 32x32px: For all the animations.

+

+

+*Frame Duration*

+

+- 100ms: Die and Dmg.

+

+- 200ms: Jump and Idle
\ No newline at end of file
diff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue _Slime/_GIFs/BlueSlimeDie.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue _Slime/_GIFs/BlueSlimeDie.gif
new file mode 100644
index 0000000..81b02a1
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue _Slime/_GIFs/BlueSlimeDie.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue _Slime/_GIFs/BlueSlimeDmg.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue _Slime/_GIFs/BlueSlimeDmg.gif
new file mode 100644
index 0000000..b5515c5
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue _Slime/_GIFs/BlueSlimeDmg.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue _Slime/_GIFs/BlueSlimeIdle.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue _Slime/_GIFs/BlueSlimeIdle.gif
new file mode 100644
index 0000000..8b3e00e
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue _Slime/_GIFs/BlueSlimeIdle.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue _Slime/_GIFs/BlueSlimeJumpAttack.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue _Slime/_GIFs/BlueSlimeJumpAttack.gif
new file mode 100644
index 0000000..63eb6e3
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue _Slime/_GIFs/BlueSlimeJumpAttack.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue _Slime/_Shadow/ShadowBlueSlimeDie.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue _Slime/_Shadow/ShadowBlueSlimeDie.png
new file mode 100644
index 0000000..8d6bbe8
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue _Slime/_Shadow/ShadowBlueSlimeDie.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue _Slime/_Shadow/ShadowBlueSlimeDmg.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue _Slime/_Shadow/ShadowBlueSlimeDmg.png
new file mode 100644
index 0000000..f50d3db
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue _Slime/_Shadow/ShadowBlueSlimeDmg.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue _Slime/_Shadow/ShadowBlueSlimeIdle.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue _Slime/_Shadow/ShadowBlueSlimeIdle.png
new file mode 100644
index 0000000..0fab8c6
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue _Slime/_Shadow/ShadowBlueSlimeIdle.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue _Slime/_Shadow/ShadowBlueSlimeJump.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue _Slime/_Shadow/ShadowBlueSlimeJump.png
new file mode 100644
index 0000000..f0b2a44
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue _Slime/_Shadow/ShadowBlueSlimeJump.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue_Mother_Slime/BlueMotherSlimeDie.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue_Mother_Slime/BlueMotherSlimeDie.png
new file mode 100644
index 0000000..34d4217
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue_Mother_Slime/BlueMotherSlimeDie.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue_Mother_Slime/BlueMotherSlimeDmg.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue_Mother_Slime/BlueMotherSlimeDmg.png
new file mode 100644
index 0000000..3c775d5
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue_Mother_Slime/BlueMotherSlimeDmg.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue_Mother_Slime/BlueMotherSlimeIdle.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue_Mother_Slime/BlueMotherSlimeIdle.png
new file mode 100644
index 0000000..9fe6e3d
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue_Mother_Slime/BlueMotherSlimeIdle.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue_Mother_Slime/BlueMotherSlimeJumpAttack.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue_Mother_Slime/BlueMotherSlimeJumpAttack.png
new file mode 100644
index 0000000..75b6a10
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue_Mother_Slime/BlueMotherSlimeJumpAttack.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue_Mother_Slime/_AnimationInfo.txt b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue_Mother_Slime/_AnimationInfo.txt
new file mode 100644
index 0000000..00d06c0
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue_Mother_Slime/_AnimationInfo.txt
@@ -0,0 +1,10 @@
+*Frame size* 

+

+- 32x32px: For all the animations.

+

+

+*Frame Duration*

+

+- 100ms: Die and Dmg.

+

+- 200ms: Jump and Idle
\ No newline at end of file
diff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue_Mother_Slime/_GIFs/BlueMotherSlimeDie.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue_Mother_Slime/_GIFs/BlueMotherSlimeDie.gif
new file mode 100644
index 0000000..c3ab3b6
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue_Mother_Slime/_GIFs/BlueMotherSlimeDie.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue_Mother_Slime/_GIFs/BlueMotherSlimeDmg.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue_Mother_Slime/_GIFs/BlueMotherSlimeDmg.gif
new file mode 100644
index 0000000..a3147c5
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue_Mother_Slime/_GIFs/BlueMotherSlimeDmg.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue_Mother_Slime/_GIFs/BlueMotherSlimeIdle.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue_Mother_Slime/_GIFs/BlueMotherSlimeIdle.gif
new file mode 100644
index 0000000..a57589a
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue_Mother_Slime/_GIFs/BlueMotherSlimeIdle.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue_Mother_Slime/_GIFs/BlueMotherSlimeJumpAttack.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue_Mother_Slime/_GIFs/BlueMotherSlimeJumpAttack.gif
new file mode 100644
index 0000000..210dad4
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue_Mother_Slime/_GIFs/BlueMotherSlimeJumpAttack.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue_Mother_Slime/_Shadows/ShadowBlueMotherSlimeDie.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue_Mother_Slime/_Shadows/ShadowBlueMotherSlimeDie.png
new file mode 100644
index 0000000..2f02406
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue_Mother_Slime/_Shadows/ShadowBlueMotherSlimeDie.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue_Mother_Slime/_Shadows/ShadowBlueMotherSlimeDmg.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue_Mother_Slime/_Shadows/ShadowBlueMotherSlimeDmg.png
new file mode 100644
index 0000000..44fb8c6
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue_Mother_Slime/_Shadows/ShadowBlueMotherSlimeDmg.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue_Mother_Slime/_Shadows/ShadowBlueMotherSlimeIdle.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue_Mother_Slime/_Shadows/ShadowBlueMotherSlimeIdle.png
new file mode 100644
index 0000000..0d2cdf4
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue_Mother_Slime/_Shadows/ShadowBlueMotherSlimeIdle.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue_Mother_Slime/_Shadows/ShadowBlueMotherSlimeJump.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue_Mother_Slime/_Shadows/ShadowBlueMotherSlimeJump.png
new file mode 100644
index 0000000..48f3670
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Blue_Mother_Slime/_Shadows/ShadowBlueMotherSlimeJump.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Mother_Slime/MotherSlimeGreenDie.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Mother_Slime/MotherSlimeGreenDie.png
new file mode 100644
index 0000000..a3f6946
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Mother_Slime/MotherSlimeGreenDie.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Mother_Slime/MotherSlimeGreenDmg.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Mother_Slime/MotherSlimeGreenDmg.png
new file mode 100644
index 0000000..9b1402b
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Mother_Slime/MotherSlimeGreenDmg.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Mother_Slime/MotherSlimeGreenIdle.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Mother_Slime/MotherSlimeGreenIdle.png
new file mode 100644
index 0000000..b92197c
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Mother_Slime/MotherSlimeGreenIdle.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Mother_Slime/MotherSlimeGreenJumpAttack.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Mother_Slime/MotherSlimeGreenJumpAttack.png
new file mode 100644
index 0000000..922fd77
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Mother_Slime/MotherSlimeGreenJumpAttack.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Mother_Slime/_AnimationInfo.txt b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Mother_Slime/_AnimationInfo.txt
new file mode 100644
index 0000000..00d06c0
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Mother_Slime/_AnimationInfo.txt
@@ -0,0 +1,10 @@
+*Frame size* 

+

+- 32x32px: For all the animations.

+

+

+*Frame Duration*

+

+- 100ms: Die and Dmg.

+

+- 200ms: Jump and Idle
\ No newline at end of file
diff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Mother_Slime/_GIFs/MotherSlimeGreenDie.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Mother_Slime/_GIFs/MotherSlimeGreenDie.gif
new file mode 100644
index 0000000..8eed1a8
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Mother_Slime/_GIFs/MotherSlimeGreenDie.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Mother_Slime/_GIFs/MotherSlimeGreenDmg.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Mother_Slime/_GIFs/MotherSlimeGreenDmg.gif
new file mode 100644
index 0000000..f59d927
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Mother_Slime/_GIFs/MotherSlimeGreenDmg.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Mother_Slime/_GIFs/MotherSlimeGreenIdle.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Mother_Slime/_GIFs/MotherSlimeGreenIdle.gif
new file mode 100644
index 0000000..e729639
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Mother_Slime/_GIFs/MotherSlimeGreenIdle.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Mother_Slime/_GIFs/MotherSlimeGreenJumpAttack.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Mother_Slime/_GIFs/MotherSlimeGreenJumpAttack.gif
new file mode 100644
index 0000000..64e0810
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Mother_Slime/_GIFs/MotherSlimeGreenJumpAttack.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Mother_Slime/_Shadows/ShadowMotherSlimeDie.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Mother_Slime/_Shadows/ShadowMotherSlimeDie.png
new file mode 100644
index 0000000..d87507f
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Mother_Slime/_Shadows/ShadowMotherSlimeDie.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Mother_Slime/_Shadows/ShadowMotherSlimeDmg.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Mother_Slime/_Shadows/ShadowMotherSlimeDmg.png
new file mode 100644
index 0000000..fdef742
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Mother_Slime/_Shadows/ShadowMotherSlimeDmg.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Mother_Slime/_Shadows/ShadowMotherSlimeIdle.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Mother_Slime/_Shadows/ShadowMotherSlimeIdle.png
new file mode 100644
index 0000000..a5154fd
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Mother_Slime/_Shadows/ShadowMotherSlimeIdle.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Mother_Slime/_Shadows/ShadowMotherSlimeJump.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Mother_Slime/_Shadows/ShadowMotherSlimeJump.png
new file mode 100644
index 0000000..f42081a
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Mother_Slime/_Shadows/ShadowMotherSlimeJump.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Slime/SlimeGreenDie.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Slime/SlimeGreenDie.png
new file mode 100644
index 0000000..a93fcc1
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Slime/SlimeGreenDie.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Slime/SlimeGreenDmg.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Slime/SlimeGreenDmg.png
new file mode 100644
index 0000000..b15b771
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Slime/SlimeGreenDmg.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Slime/SlimeGreenIdle.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Slime/SlimeGreenIdle.png
new file mode 100644
index 0000000..20cb0ef
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Slime/SlimeGreenIdle.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Slime/SlimeGreenJumpAttack.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Slime/SlimeGreenJumpAttack.png
new file mode 100644
index 0000000..29d2c02
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Slime/SlimeGreenJumpAttack.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Slime/_AnimationInfo.txt b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Slime/_AnimationInfo.txt
new file mode 100644
index 0000000..00d06c0
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Slime/_AnimationInfo.txt
@@ -0,0 +1,10 @@
+*Frame size* 

+

+- 32x32px: For all the animations.

+

+

+*Frame Duration*

+

+- 100ms: Die and Dmg.

+

+- 200ms: Jump and Idle
\ No newline at end of file
diff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Slime/_GIFs/SlimeGreenDie.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Slime/_GIFs/SlimeGreenDie.gif
new file mode 100644
index 0000000..be0cb8b
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Slime/_GIFs/SlimeGreenDie.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Slime/_GIFs/SlimeGreenDmg.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Slime/_GIFs/SlimeGreenDmg.gif
new file mode 100644
index 0000000..7d228a4
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Slime/_GIFs/SlimeGreenDmg.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Slime/_GIFs/SlimeGreenIdle.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Slime/_GIFs/SlimeGreenIdle.gif
new file mode 100644
index 0000000..3be101e
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Slime/_GIFs/SlimeGreenIdle.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Slime/_GIFs/SlimeGreenJumpAttack.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Slime/_GIFs/SlimeGreenJumpAttack.gif
new file mode 100644
index 0000000..3786e7b
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Slime/_GIFs/SlimeGreenJumpAttack.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Slime/_Shadows/ShadowSlimeDie.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Slime/_Shadows/ShadowSlimeDie.png
new file mode 100644
index 0000000..df27ccb
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Slime/_Shadows/ShadowSlimeDie.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Slime/_Shadows/ShadowSlimeDmg.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Slime/_Shadows/ShadowSlimeDmg.png
new file mode 100644
index 0000000..c8e6f6f
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Slime/_Shadows/ShadowSlimeDmg.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Slime/_Shadows/ShadowSlimeIdle.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Slime/_Shadows/ShadowSlimeIdle.png
new file mode 100644
index 0000000..2eeef7a
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Slime/_Shadows/ShadowSlimeIdle.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Slime/_Shadows/ShadowSlimeJump.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Slime/_Shadows/ShadowSlimeJump.png
new file mode 100644
index 0000000..e74d906
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Slimes/Green_Slime/_Shadows/ShadowSlimeJump.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Skeleton/SkeletonAttack.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Skeleton/SkeletonAttack.png
new file mode 100644
index 0000000..e09fe7c
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Skeleton/SkeletonAttack.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Skeleton/SkeletonDie.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Skeleton/SkeletonDie.png
new file mode 100644
index 0000000..1b89440
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Skeleton/SkeletonDie.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Skeleton/SkeletonDmg.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Skeleton/SkeletonDmg.png
new file mode 100644
index 0000000..52c0879
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Skeleton/SkeletonDmg.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Skeleton/SkeletonIdle.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Skeleton/SkeletonIdle.png
new file mode 100644
index 0000000..29c7165
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Skeleton/SkeletonIdle.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Skeleton/SkeletonWalk.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Skeleton/SkeletonWalk.png
new file mode 100644
index 0000000..bc4b105
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Skeleton/SkeletonWalk.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Skeleton/_AnimationInfo.txt b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Skeleton/_AnimationInfo.txt
new file mode 100644
index 0000000..624520c
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Skeleton/_AnimationInfo.txt
@@ -0,0 +1,10 @@
+*Frame size* 

+

+- 32x32px: For all the animations.

+

+

+*Frame Duration*

+

+- 100ms: Attack, Jump, Die and Dmg.

+

+- 200ms: Idle and Walk.
\ No newline at end of file
diff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Skeleton/_GIFs/SkeletonAttack.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Skeleton/_GIFs/SkeletonAttack.gif
new file mode 100644
index 0000000..564c2d9
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Skeleton/_GIFs/SkeletonAttack.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Skeleton/_GIFs/SkeletonDie.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Skeleton/_GIFs/SkeletonDie.gif
new file mode 100644
index 0000000..94ee90e
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Skeleton/_GIFs/SkeletonDie.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Skeleton/_GIFs/SkeletonDmg.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Skeleton/_GIFs/SkeletonDmg.gif
new file mode 100644
index 0000000..a6d0869
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Skeleton/_GIFs/SkeletonDmg.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Skeleton/_GIFs/SkeletonIdle.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Skeleton/_GIFs/SkeletonIdle.gif
new file mode 100644
index 0000000..4b72a13
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Skeleton/_GIFs/SkeletonIdle.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Skeleton/_GIFs/SkeletonWalk.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Skeleton/_GIFs/SkeletonWalk.gif
new file mode 100644
index 0000000..2f4c093
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Skeleton/_GIFs/SkeletonWalk.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Skeleton/_Shadows/ShadowSkeletonAttack.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Skeleton/_Shadows/ShadowSkeletonAttack.png
new file mode 100644
index 0000000..e79ec8c
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Skeleton/_Shadows/ShadowSkeletonAttack.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Skeleton/_Shadows/ShadowSkeletonDie.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Skeleton/_Shadows/ShadowSkeletonDie.png
new file mode 100644
index 0000000..f624b61
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Skeleton/_Shadows/ShadowSkeletonDie.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Skeleton/_Shadows/ShadowSkeletonDmg.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Skeleton/_Shadows/ShadowSkeletonDmg.png
new file mode 100644
index 0000000..eaf5bc3
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Skeleton/_Shadows/ShadowSkeletonDmg.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Skeleton/_Shadows/ShadowSkeletonIdle.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Skeleton/_Shadows/ShadowSkeletonIdle.png
new file mode 100644
index 0000000..982767a
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Skeleton/_Shadows/ShadowSkeletonIdle.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Skeleton/_Shadows/ShadowSkeletonWalk.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Skeleton/_Shadows/ShadowSkeletonWalk.png
new file mode 100644
index 0000000..0cd8f0e
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Skeleton/_Shadows/ShadowSkeletonWalk.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Wildfire/WildfireDie.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Wildfire/WildfireDie.png
new file mode 100644
index 0000000..0bdf771
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Wildfire/WildfireDie.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Wildfire/WildfireDmg.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Wildfire/WildfireDmg.png
new file mode 100644
index 0000000..aa730db
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Wildfire/WildfireDmg.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Wildfire/WildfireFly.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Wildfire/WildfireFly.png
new file mode 100644
index 0000000..b73604c
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Wildfire/WildfireFly.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Wildfire/WildfireIdle.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Wildfire/WildfireIdle.png
new file mode 100644
index 0000000..3a23aea
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Wildfire/WildfireIdle.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Wildfire/_AnimationInfo.txt b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Wildfire/_AnimationInfo.txt
new file mode 100644
index 0000000..05df967
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Wildfire/_AnimationInfo.txt
@@ -0,0 +1,10 @@
+*Frame size* 

+

+- 32x32px: For all the animations.

+

+

+*Frame Duration*

+

+- 100ms: Die and Dmg.

+

+- 200ms: Idle and Fly.
\ No newline at end of file
diff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Wildfire/_GIFs/WildfireDie.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Wildfire/_GIFs/WildfireDie.gif
new file mode 100644
index 0000000..271eec3
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Wildfire/_GIFs/WildfireDie.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Wildfire/_GIFs/WildfireDmg.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Wildfire/_GIFs/WildfireDmg.gif
new file mode 100644
index 0000000..fd75a7e
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Wildfire/_GIFs/WildfireDmg.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Wildfire/_GIFs/WildfireFly.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Wildfire/_GIFs/WildfireFly.gif
new file mode 100644
index 0000000..db87538
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Wildfire/_GIFs/WildfireFly.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Wildfire/_GIFs/WildfireIdle.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Wildfire/_GIFs/WildfireIdle.gif
new file mode 100644
index 0000000..e41b84e
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Wildfire/_GIFs/WildfireIdle.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Wildfire/_Shadows/ShadowWildfireDie.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Wildfire/_Shadows/ShadowWildfireDie.png
new file mode 100644
index 0000000..94a0820
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Wildfire/_Shadows/ShadowWildfireDie.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Wildfire/_Shadows/ShadowWildfireDmg.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Wildfire/_Shadows/ShadowWildfireDmg.png
new file mode 100644
index 0000000..665af5c
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Wildfire/_Shadows/ShadowWildfireDmg.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Wildfire/_Shadows/ShadowWildfireFly.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Wildfire/_Shadows/ShadowWildfireFly.png
new file mode 100644
index 0000000..ffdacfe
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Wildfire/_Shadows/ShadowWildfireFly.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Wildfire/_Shadows/ShadowWildfireIdle.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Wildfire/_Shadows/ShadowWildfireIdle.png
new file mode 100644
index 0000000..8dfc69c
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Wildfire/_Shadows/ShadowWildfireIdle.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Zombie/ZombieAttack.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Zombie/ZombieAttack.png
new file mode 100644
index 0000000..50a0e35
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Zombie/ZombieAttack.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Zombie/ZombieDie.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Zombie/ZombieDie.png
new file mode 100644
index 0000000..41ce475
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Zombie/ZombieDie.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Zombie/ZombieDmg.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Zombie/ZombieDmg.png
new file mode 100644
index 0000000..1579f55
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Zombie/ZombieDmg.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Zombie/ZombieIdle.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Zombie/ZombieIdle.png
new file mode 100644
index 0000000..c006d09
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Zombie/ZombieIdle.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Zombie/ZombieWalk.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Zombie/ZombieWalk.png
new file mode 100644
index 0000000..796ecc9
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Zombie/ZombieWalk.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Zombie/_AnimationInfo.txt b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Zombie/_AnimationInfo.txt
new file mode 100644
index 0000000..819b312
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Zombie/_AnimationInfo.txt
@@ -0,0 +1,10 @@
+*Frame size* 

+

+- 32x32px: For all the animations.

+

+

+*Frame Duration*

+

+- 100ms: Attack, Die and Dmg.

+

+- 200ms: Idle and Walk.
\ No newline at end of file
diff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Zombie/_GIFs/ZombieAttack.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Zombie/_GIFs/ZombieAttack.gif
new file mode 100644
index 0000000..7577c7e
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Zombie/_GIFs/ZombieAttack.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Zombie/_GIFs/ZombieDie.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Zombie/_GIFs/ZombieDie.gif
new file mode 100644
index 0000000..d766494
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Zombie/_GIFs/ZombieDie.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Zombie/_GIFs/ZombieDmg.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Zombie/_GIFs/ZombieDmg.gif
new file mode 100644
index 0000000..158253a
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Zombie/_GIFs/ZombieDmg.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Zombie/_GIFs/ZombieIdle.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Zombie/_GIFs/ZombieIdle.gif
new file mode 100644
index 0000000..a5916c7
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Zombie/_GIFs/ZombieIdle.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Zombie/_GIFs/ZombieWalk.gif b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Zombie/_GIFs/ZombieWalk.gif
new file mode 100644
index 0000000..aca0264
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Zombie/_GIFs/ZombieWalk.gif
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Zombie/_Shadows/ZombieAttackShadow.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Zombie/_Shadows/ZombieAttackShadow.png
new file mode 100644
index 0000000..4213e9c
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Zombie/_Shadows/ZombieAttackShadow.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Zombie/_Shadows/ZombieDieShadow.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Zombie/_Shadows/ZombieDieShadow.png
new file mode 100644
index 0000000..5c76614
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Zombie/_Shadows/ZombieDieShadow.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Zombie/_Shadows/ZombieDmgShadow.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Zombie/_Shadows/ZombieDmgShadow.png
new file mode 100644
index 0000000..040baaa
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Zombie/_Shadows/ZombieDmgShadow.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Zombie/_Shadows/ZombieIdleShadow.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Zombie/_Shadows/ZombieIdleShadow.png
new file mode 100644
index 0000000..b703bc8
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Zombie/_Shadows/ZombieIdleShadow.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Zombie/_Shadows/ZombieWalkShadow.png b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Zombie/_Shadows/ZombieWalkShadow.png
new file mode 100644
index 0000000..b363aa1
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Minifantasy_Creatures_Assets/Undead/Zombie/_Shadows/ZombieWalkShadow.png
Binary files differdiff --git a/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Patreon_Minifantasy.url b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Patreon_Minifantasy.url
new file mode 100644
index 0000000..5c5e0c9
--- /dev/null
+++ b/html/rogue/assets/itch/Minifantasy_Creatures_v3.2_Free_Version/Patreon_Minifantasy.url
@@ -0,0 +1,5 @@
+[{000214A0-0000-0000-C000-000000000046}]

+Prop3=19,11

+[InternetShortcut]

+IDList=

+URL=https://www.patreon.com/krishna_palacio

diff --git a/html/rogue/index.html b/html/rogue/index.html
index ef37885..655c4cb 100644
--- a/html/rogue/index.html
+++ b/html/rogue/index.html
@@ -1,10 +1,15 @@
 <!DOCTYPE html>
-<html>
+<html lang="en">
 <head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
     <title>Rogue</title>
     <style>
-        body {
+        body, html {
             margin: 0;
+            padding: 0;
+            width: 100%;
+            height: 100%;
             overflow: hidden;
         }
         canvas {
@@ -14,13 +19,19 @@
 </head>
 <body>
     <canvas id="gameCanvas"></canvas>
-    <!-- Load config first since other files depend on it -->
     <script src="js/config.js"></script>
-    <script src="js/renderer.js"></script>
-    <script src="js/input.js"></script>
-    <script src="js/world.js"></script>
-    <script src="js/player.js"></script>
+    <script src="js/animation.js"></script>
+    <script src="js/hex.js"></script>
     <script src="js/camera.js"></script>
-    <script src="js/rogue.js"></script>
+    <script src="js/fow.js"></script>
+    <script src="js/items.js"></script>
+    <script src="js/inventory-ui.js"></script>
+    <script src="js/player.js"></script>
+    <script src="js/debug.js"></script>
+    <script src="js/game.js"></script>
+    <script src="js/utils.js"></script>
+    <script src="js/state.js"></script>
+    <script src="js/renderer.js"></script>
+    <script src="js/events.js"></script>
 </body>
-</html>
+</html>
\ No newline at end of file
diff --git a/html/rogue/js/animation.js b/html/rogue/js/animation.js
new file mode 100644
index 0000000..d682b01
--- /dev/null
+++ b/html/rogue/js/animation.js
@@ -0,0 +1,53 @@
+const Animation = {
+    // Track loaded images with their paths as keys
+    images: new Map(),
+    
+    // Load an image and return a promise
+    loadImage(path) {
+        if (this.images.has(path)) {
+            return Promise.resolve(this.images.get(path));
+        }
+        
+        return new Promise((resolve, reject) => {
+            const img = new Image();
+            img.onload = () => {
+                this.images.set(path, img);
+                resolve(img);
+            };
+            img.onerror = () => reject(new Error(`Failed to load image: ${path}`));
+            img.src = path;
+        });
+    },
+    
+    // Animation class to handle sprite animations
+    createAnimation(frames, frameTime) {
+        return {
+            frames,
+            frameTime,
+            currentFrame: 0,
+            lastFrameTime: 0,
+            
+            update(currentTime) {
+                if (currentTime - this.lastFrameTime >= this.frameTime) {
+                    this.currentFrame = (this.currentFrame + 1) % this.frames.length;
+                    this.lastFrameTime = currentTime;
+                }
+                return this.frames[this.currentFrame];
+            }
+        };
+    },
+    
+    // Add this new method to scale sprites to fit within bounds
+    scaleToFit(image, maxWidth, maxHeight) {
+        const scale = Math.min(
+            maxWidth / image.width,
+            maxHeight / image.height
+        );
+        
+        return {
+            width: image.width * scale,
+            height: image.height * scale,
+            scale
+        };
+    }
+}; 
\ No newline at end of file
diff --git a/html/rogue/js/camera.js b/html/rogue/js/camera.js
index e5d5d14..05e0f28 100644
--- a/html/rogue/js/camera.js
+++ b/html/rogue/js/camera.js
@@ -1,56 +1,93 @@
-const createCamera = (x, y) => ({
-    x,
-    y,
-    width: window.innerWidth,
-    height: window.innerHeight,
-    // Define the dead zone (the area where camera won't move)
-    deadZone: {
-        x: window.innerWidth * 0.3, // 30% of screen width
-        y: window.innerHeight * 0.3, // 30% of screen height
-    }
-});
-
-const updateCamera = (camera, target) => {
-    // Calculate the center point of the screen
-    const screenCenterX = camera.x + camera.width / 2;
-    const screenCenterY = camera.y + camera.height / 2;
-
-    // Calculate the distance from the target to the screen center
-    const distanceX = target.x - screenCenterX;
-    const distanceY = target.y - screenCenterY;
-
-    // Calculate the dead zone boundaries
-    const deadZoneLeft = -camera.deadZone.x / 2;
-    const deadZoneRight = camera.deadZone.x / 2;
-    const deadZoneTop = -camera.deadZone.y / 2;
-    const deadZoneBottom = camera.deadZone.y / 2;
-
-    // Calculate new camera position with smooth following
-    let newX = camera.x;
-    let newY = camera.y;
+const Camera = {
+    x: 0,
+    y: 0,
+    
+    centerOn(hex) {
+        const pixelCoord = HexGrid.toPixel(hex);
+        
+        // Calculate desired camera position
+        this.x = pixelCoord.x - state.canvas.width / 2;
+        this.y = pixelCoord.y - state.canvas.height / 2;
+        
+        // Calculate grid dimensions
+        const gridPixelWidth = Config.hex.GRID_SIZE * Config.hex.WIDTH;
+        const gridPixelHeight = Config.hex.GRID_SIZE * Config.hex.HEIGHT;
+        
+        // Calculate grid bounds (accounting for centered grid)
+        const minX = -gridPixelWidth / 2;
+        const maxX = gridPixelWidth / 2 - state.canvas.width;
+        const minY = -gridPixelHeight / 2;
+        const maxY = gridPixelHeight / 2 - state.canvas.height;
+        
+        // Keep camera within grid bounds
+        this.x = Math.max(minX, Math.min(this.x, maxX));
+        this.y = Math.max(minY, Math.min(this.y, maxY));
+        
+        // Round to prevent sub-pixel rendering
+        this.x = Math.round(this.x);
+        this.y = Math.round(this.y);
+    },
 
-    // Horizontal camera movement
-    if (distanceX < deadZoneLeft) {
-        newX += distanceX - deadZoneLeft;
-    } else if (distanceX > deadZoneRight) {
-        newX += distanceX - deadZoneRight;
+    smoothFollow(target) {
+        const targetPixel = HexGrid.toPixel(target);
+        const screenX = Math.round(targetPixel.x - this.x);
+        const screenY = Math.round(targetPixel.y - this.y);
+        
+        const centerX = state.canvas.width / 2;
+        const centerY = state.canvas.height / 2;
+        
+        // Determine if we're on a narrow screen
+        const isNarrowScreen = state.canvas.width <= Config.camera.NARROW_SCREEN_THRESHOLD;
+        
+        // Calculate dynamic deadzones based on screen size
+        const deadzoneX = Math.min(
+            Math.max(
+                state.canvas.width * (
+                    isNarrowScreen ? 
+                    Config.camera.DEADZONE_RATIO_X.NARROW : 
+                    Config.camera.DEADZONE_RATIO_X.WIDE
+                ),
+                Config.camera.MIN_DEADZONE
+            ),
+            Config.camera.MAX_DEADZONE
+        );
+        
+        const deadzoneY = Math.min(
+            Math.max(state.canvas.height * Config.camera.DEADZONE_RATIO_Y, 
+                Config.camera.MIN_DEADZONE
+            ),
+            Config.camera.MAX_DEADZONE
+        );
+        
+        const deltaX = screenX - centerX;
+        const deltaY = screenY - centerY;
+        
+        // Use more aggressive follow speed for narrow screens
+        const followSpeed = isNarrowScreen ? 
+            Config.camera.FOLLOW_SPEED * 1.5 : 
+            Config.camera.FOLLOW_SPEED;
+        
+        // Ensure camera moves if player is near screen edges
+        if (Math.abs(deltaX) > deadzoneX) {
+            const adjustX = deltaX - (deltaX > 0 ? deadzoneX : -deadzoneX);
+            this.x += Math.round(adjustX * followSpeed);
+        }
+        
+        if (Math.abs(deltaY) > deadzoneY) {
+            const adjustY = deltaY - (deltaY > 0 ? deadzoneY : -deadzoneY);
+            this.y += Math.round(adjustY * followSpeed);
+        }
+        
+        // Calculate grid bounds (accounting for centered grid)
+        const gridPixelWidth = Config.hex.GRID_SIZE * Config.hex.WIDTH;
+        const gridPixelHeight = Config.hex.GRID_SIZE * Config.hex.HEIGHT;
+        const minX = -gridPixelWidth / 2;
+        const maxX = gridPixelWidth / 2 - state.canvas.width;
+        const minY = -gridPixelHeight / 2;
+        const maxY = gridPixelHeight / 2 - state.canvas.height;
+        
+        // Keep camera within grid bounds
+        this.x = Math.max(minX, Math.min(this.x, maxX));
+        this.y = Math.max(minY, Math.min(this.y, maxY));
     }
-
-    // Vertical camera movement
-    if (distanceY < deadZoneTop) {
-        newY += distanceY - deadZoneTop;
-    } else if (distanceY > deadZoneBottom) {
-        newY += distanceY - deadZoneBottom;
-    }
-
-    // Add subtle smoothing to camera movement
-    const smoothing = 0.1;
-    newX = camera.x + (newX - camera.x) * smoothing;
-    newY = camera.y + (newY - camera.y) * smoothing;
-
-    return {
-        ...camera,
-        x: newX,
-        y: newY
-    };
-};
+}; 
\ No newline at end of file
diff --git a/html/rogue/js/config.js b/html/rogue/js/config.js
index 77100e1..6ed925f 100644
--- a/html/rogue/js/config.js
+++ b/html/rogue/js/config.js
@@ -1,32 +1,97 @@
-const CONFIG = {
+const Config = {
+    colors: {
+        BACKGROUND: 'rgba(135, 207, 235, 1)',
+        GRID: 'rgba(0, 0, 0, 0.25)',
+        PLAYER: 'red',
+        HEX_FILL: '#ffffff',
+        FOG: {
+            HIDDEN: 'rgba(0, 0, 0, 1)',
+            REVEALED: 'rgba(0, 0, 0, 0.25)',
+            GRID_DIM: 'rgba(0, 0, 0, 0.0)'
+        },
+        UI: {
+            INVENTORY: {
+                BACKGROUND: 'rgba(0, 0, 0, 0.7)',
+                WINDOW: '#ffffff',
+                TEXT: '#000000'
+            }
+        },
+        ITEMS: {
+            COIN: '#FFD700',
+            GEM: '#50C878'
+        }
+    },
+    
+    hex: {
+        SIZE: 40, // Size of a single hex
+        GRID_SIZE: 30, // Number of hexes in the grid (width/height)
+        get WIDTH() { // Computed hex width
+            return this.SIZE * 2;
+        },
+        get HEIGHT() { // Computed hex height
+            return Math.sqrt(3) * this.SIZE;
+        }
+    },
+
+    game: {
+        FPS: 60,
+        get FRAME_TIME() {
+            return 1000 / this.FPS;
+        }
+    },
+
     player: {
-        width: 32,
-        height: 48,
-        speed: 5,
-        jumpForce: 12,
-        gravity: 0.5,
-        color: '#ff0000'
+        MOVE_SPEED: 0.1,
+        SIZE_RATIO: 1/3,
+        VISION_RANGE: 3,
+        SPRITE_SCALE: 0.8,
+        ANIMATION_SPEED: 500
     },
-    world: {
-        groundHeight: 12,
-        wilderness: {
-            vegetation: {
-                grass: {
-                    colors: ['#3a5', '#294'],
-                    hatch: {
-                        angle: Math.PI / 4,
-                        variation: Math.PI / 6,
-                        spacing: 4,
-                        length: 8,
-                        margin: 2
-                    }
-                }
+
+    camera: {
+        FOLLOW_SPEED: 0.1,
+        DEADZONE_RATIO_X: {
+            NARROW: 0.1,
+            WIDE: 0.2
+        },
+        DEADZONE_RATIO_Y: 0.2,
+        MIN_DEADZONE: 30,
+        MAX_DEADZONE: 200,
+        NARROW_SCREEN_THRESHOLD: 600
+    },
+
+    ui: {
+        inventory: {
+            PADDING: 20,
+            WIDTH: 300,
+            HEIGHT: 400,
+            TITLE_FONT: '20px Arial',
+            ITEM_FONT: '16px Arial',
+            ITEM_SPACING: 30,
+            TITLE_OFFSET: 20,
+            ITEMS_START_OFFSET: 60
+        }
+    },
+    
+    items: {
+        SPAWN_COUNT: 10,
+        types: {
+            COIN: {
+                name: 'Coin',
+                size: 0.2
+            },
+            GEM: {
+                name: 'Gem',
+                size: 0.25
             }
         }
     },
-    camera: {
-        width: window.innerWidth,
-        height: window.innerHeight,
-        followSpeed: 0.1
+
+    fog: {
+        states: {
+            HIDDEN: { alpha: 1.0 },
+            REVEALED: { alpha: 0.5 },
+            VISIBLE: { alpha: 0 }
+        }
     }
 }; 
\ No newline at end of file
diff --git a/html/rogue/js/debug.js b/html/rogue/js/debug.js
new file mode 100644
index 0000000..f2e0b02
--- /dev/null
+++ b/html/rogue/js/debug.js
@@ -0,0 +1,113 @@
+const Debug = {
+    isEnabled: false,
+    lastFrameTime: performance.now(),
+    frameCount: 0,
+    fps: 0,
+    fpsUpdateInterval: 500, // Update FPS display every 500ms
+    lastFpsUpdate: 0,
+    
+    init() {
+        // Add keyboard listener for debug toggle
+        window.addEventListener('keydown', (e) => {
+            if (e.key.toLowerCase() === 'd') {
+                this.isEnabled = !this.isEnabled;
+            }
+        });
+    },
+    
+    update(currentTime) {
+        if (!this.isEnabled) return;
+        
+        this.frameCount++;
+        
+        // Update FPS counter every 500ms
+        if (currentTime - this.lastFpsUpdate >= this.fpsUpdateInterval) {
+            this.fps = Math.round((this.frameCount * 1000) / (currentTime - this.lastFpsUpdate));
+            this.frameCount = 0;
+            this.lastFpsUpdate = currentTime;
+        }
+        
+        this.lastFrameTime = currentTime;
+    },
+    
+    draw(ctx) {
+        if (!this.isEnabled) return;
+        
+        const padding = 30;
+        const lineHeight = 20;
+        let y = padding;
+        
+        // Save context state
+        ctx.save();
+        
+        // Set up debug text style
+        ctx.fillStyle = 'rgba(0, 0, 0, 0.7)';
+        ctx.fillRect(0, 0, 300, 200);
+        ctx.font = '14px monospace';
+        ctx.fillStyle = '#00FF00';
+        
+        // Display debug information
+        const debugInfo = [
+            `FPS: ${this.fps}`,
+            `Camera: (${Math.round(Camera.x)}, ${Math.round(Camera.y)})`,
+            `Player Hex: (${player.position.q}, ${player.position.r})`,
+            `Screen: ${state.canvas.width}x${state.canvas.height}`,
+            `Inventory Items: ${player.inventory.length}`,
+            `Revealed Hexes: ${FogOfWar.revealed.size}`,
+            `Moving: ${player.target ? 'Yes' : 'No'}`,
+            `Narrow Screen: ${state.canvas.width <= Config.camera.NARROW_SCREEN_THRESHOLD}`
+        ];
+        
+        debugInfo.forEach(info => {
+            ctx.fillText(info, padding, y);
+            y += lineHeight;
+        });
+        
+        // Draw deadzone visualization
+        if (player.target) {
+            const isNarrowScreen = state.canvas.width <= Config.camera.NARROW_SCREEN_THRESHOLD;
+            const deadzoneX = Math.min(
+                Math.max(
+                    state.canvas.width * (
+                        isNarrowScreen ? 
+                        Config.camera.DEADZONE_RATIO_X.NARROW : 
+                        Config.camera.DEADZONE_RATIO_X.WIDE
+                    ),
+                    Config.camera.MIN_DEADZONE
+                ),
+                Config.camera.MAX_DEADZONE
+            );
+            const deadzoneY = Math.min(
+                Math.max(state.canvas.height * Config.camera.DEADZONE_RATIO_Y, 
+                    Config.camera.MIN_DEADZONE
+                ),
+                Config.camera.MAX_DEADZONE
+            );
+            
+            // Draw camera deadzone
+            ctx.strokeStyle = 'rgba(255, 162, 0, 1)';
+            ctx.lineWidth = 2;
+            ctx.strokeRect(
+                state.canvas.width/2 - deadzoneX,
+                state.canvas.height/2 - deadzoneY,
+                deadzoneX * 2,
+                deadzoneY * 2
+            );
+
+            // Draw a small cross at the center of the camera deadzone
+            const centerX = state.canvas.width / 2;
+            const centerY = state.canvas.height / 2;
+            const crossSize = 10; // Size of the cross arms
+
+            ctx.beginPath();
+            ctx.moveTo(centerX - crossSize, centerY);
+            ctx.lineTo(centerX + crossSize, centerY);
+            ctx.moveTo(centerX, centerY - crossSize);
+            ctx.lineTo(centerX, centerY + crossSize);
+            ctx.stroke();
+        }
+        
+        // Restore context state
+        ctx.restore();
+    }
+}; 
\ No newline at end of file
diff --git a/html/rogue/js/events.js b/html/rogue/js/events.js
new file mode 100644
index 0000000..9ae8241
--- /dev/null
+++ b/html/rogue/js/events.js
@@ -0,0 +1,16 @@
+const EventSystem = {
+    listeners: new Map(),
+    
+    on(event, callback) {
+        if (!this.listeners.has(event)) {
+            this.listeners.set(event, new Set());
+        }
+        this.listeners.get(event).add(callback);
+    },
+    
+    emit(event, data) {
+        if (this.listeners.has(event)) {
+            this.listeners.get(event).forEach(callback => callback(data));
+        }
+    }
+}; 
\ No newline at end of file
diff --git a/html/rogue/js/fow.js b/html/rogue/js/fow.js
new file mode 100644
index 0000000..291c862
--- /dev/null
+++ b/html/rogue/js/fow.js
@@ -0,0 +1,85 @@
+const FogOfWar = {
+    // Set of revealed hex coordinates (as strings)
+    revealed: new Set(),
+    
+    // Configuration
+    VISION_RANGE: Config.player.VISION_RANGE,
+    
+    init() {
+        this.revealed.clear();
+        this.updateVisibility(player.position);
+    },
+    
+    // Convert hex to string key for Set storage
+    hexToKey(hex) {
+        return `${hex.q},${hex.r}`;
+    },
+    
+    // Check if a hex is currently visible
+    isVisible(hex) {
+        const playerPos = player.getCurrentPosition();
+        const distance = this.getHexDistance(hex, playerPos);
+        return distance <= this.VISION_RANGE;
+    },
+    
+    // Check if a hex has been revealed
+    isRevealed(hex) {
+        return this.revealed.has(this.hexToKey(hex));
+    },
+    
+    // Calculate distance between two hexes
+    getHexDistance(a, b) {
+        return Math.max(
+            Math.abs(a.q - b.q),
+            Math.abs(a.r - b.r),
+            Math.abs((a.q + a.r) - (b.q + b.r))
+        );
+    },
+    
+    // Update visibility based on player position
+    updateVisibility(center) {
+        // Get all hexes within vision range
+        for (let q = -this.VISION_RANGE; q <= this.VISION_RANGE; q++) {
+            for (let r = -this.VISION_RANGE; r <= this.VISION_RANGE; r++) {
+                const hex = {
+                    q: center.q + q,
+                    r: center.r + r
+                };
+                
+                if (this.getHexDistance(center, hex) <= this.VISION_RANGE) {
+                    this.revealed.add(this.hexToKey(hex));
+                }
+            }
+        }
+    },
+    
+    getFogState(hex) {
+        if (!this.isRevealed(hex)) return Config.fog.states.HIDDEN;
+        if (!this.isVisible(hex)) return Config.fog.states.REVEALED;
+        return Config.fog.states.VISIBLE;
+    },
+    
+    // Draw fog of war effect
+    draw(ctx) {
+        HexGrid.getViewportHexes().forEach(hex => {
+            const fogState = this.getFogState(hex);
+            if (fogState.alpha > 0) {
+                const screen = HexGrid.toScreenCoordinates(hex, Camera);
+                
+                // Draw fog fill
+                ctx.fillStyle = fogState === Config.fog.states.HIDDEN ? 
+                    Config.colors.FOG.HIDDEN : 
+                    Config.colors.FOG.REVEALED;
+                HexGrid.drawHexPath(ctx, screen.x, screen.y, HexGrid.SIZE, 1);
+                ctx.fill();
+                
+                // Draw grid lines only for revealed but not visible hexes
+                if (fogState === Config.fog.states.REVEALED) {
+                    ctx.strokeStyle = Config.colors.FOG.GRID_DIM;
+                    ctx.lineWidth = 1;
+                    ctx.stroke();
+                }
+            }
+        });
+    }
+}; 
\ No newline at end of file
diff --git a/html/rogue/js/game.js b/html/rogue/js/game.js
new file mode 100644
index 0000000..48133d8
--- /dev/null
+++ b/html/rogue/js/game.js
@@ -0,0 +1,121 @@
+const FPS = 60;
+const FRAME_TIME = 1000 / FPS;
+let lastFrameTime = 0;
+
+const state = {
+    canvas: null,
+    ctx: null
+};
+
+async function init() {
+    state.canvas = document.getElementById('gameCanvas');
+    state.ctx = state.canvas.getContext('2d');
+    
+    await player.init();
+    Debug.init();
+    
+    function resize() {
+        state.canvas.width = window.innerWidth;
+        state.canvas.height = window.innerHeight;
+        Camera.centerOn(player.position);
+    }
+    
+    window.addEventListener('resize', resize);
+    resize();
+    state.canvas.addEventListener('click', handleClick);
+    
+    requestAnimationFrame(gameLoop);
+    FogOfWar.init();
+    Items.init();
+}
+
+function drawHex(ctx, x, y, hex) {
+    const screen = HexGrid.toScreenCoordinates(hex, Camera);
+    
+    // Only draw if hex is visible on screen (with padding)
+    if (!HexGrid.isInViewport(screen.x, screen.y, state.canvas)) {
+        return;
+    }
+    
+    // Skip drawing completely if hex hasn't been revealed
+    if (!FogOfWar.isRevealed(hex)) {
+        return;
+    }
+    
+    // Draw the hex fill
+    HexGrid.drawHexPath(ctx, screen.x, screen.y);
+    ctx.fillStyle = Config.colors.HEX_FILL;
+    ctx.fill();
+    
+    // Only draw grid lines for currently visible hexes
+    // (fog of war will handle the grid lines for revealed but not visible hexes)
+    if (FogOfWar.isVisible(hex)) {
+        ctx.strokeStyle = Config.colors.GRID;
+        ctx.lineWidth = 1;
+        ctx.stroke();
+    }
+}
+
+function gameLoop(currentTime) {
+    requestAnimationFrame(gameLoop);
+    
+    if (currentTime - lastFrameTime < Config.game.FRAME_TIME) {
+        return;
+    }
+    
+    const deltaTime = Math.min(currentTime - lastFrameTime, Config.game.FRAME_TIME * 2);
+    lastFrameTime = currentTime;
+
+    // Update debug information
+    Debug.update(currentTime);
+
+    // Clear with background
+    state.ctx.fillStyle = Config.colors.BACKGROUND;
+    state.ctx.fillRect(0, 0, state.canvas.width, state.canvas.height);
+    
+    // Round camera position to prevent sub-pixel rendering
+    Camera.x = Math.round(Camera.x);
+    Camera.y = Math.round(Camera.y);
+    
+    player.update();
+    Camera.smoothFollow(player.getCurrentPosition());
+    
+    if (player.hasMoved) {
+        FogOfWar.updateVisibility(player.position);
+        player.hasMoved = false;
+    }
+    
+    // Draw everything in one pass to prevent flicker
+    HexGrid.getViewportHexes().forEach(hex => {
+        const pixel = HexGrid.toPixel(hex);
+        drawHex(state.ctx, Math.round(pixel.x), Math.round(pixel.y), hex);
+    });
+    
+    Items.draw(state.ctx, HexGrid.toPixel.bind(HexGrid), Camera, HexGrid.SIZE);
+    player.draw(state.ctx, HexGrid.toPixel.bind(HexGrid), Camera, HexGrid.SIZE);
+    FogOfWar.draw(state.ctx);
+    InventoryUI.draw(state.ctx);
+    Debug.draw(state.ctx);
+}
+
+function handleClick(event) {
+    if (InventoryUI.isOpen) {
+        InventoryUI.toggleInventory();
+        return;
+    }
+    
+    const rect = state.canvas.getBoundingClientRect();
+    const x = event.clientX - rect.left;
+    const y = event.clientY - rect.top;
+    
+    const hexCoord = HexGrid.fromPixel(x + Camera.x, y + Camera.y);
+    
+    // Check if clicking on player's position
+    if (hexCoord.q === player.position.q && hexCoord.r === player.position.r) {
+        InventoryUI.toggleInventory();
+    } else {
+        player.moveTo(hexCoord);
+    }
+}
+
+init().catch(console.error);
\ No newline at end of file
diff --git a/html/rogue/js/hex.js b/html/rogue/js/hex.js
new file mode 100644
index 0000000..fa08e3d
--- /dev/null
+++ b/html/rogue/js/hex.js
@@ -0,0 +1,98 @@
+// This that witchy shit -- we be hexin!
+
+const HexGrid = {
+    get SIZE() { return Config.hex.SIZE },
+    get WIDTH() { return Config.hex.WIDTH },
+    get HEIGHT() { return Config.hex.HEIGHT },
+    get GRID_SIZE() { return Config.hex.GRID_SIZE },
+    COLOR: Config.colors.GRID,
+
+    // hex to pixel
+    toPixel(hex) {
+        const x = this.SIZE * (3/2 * hex.q);
+        const y = this.SIZE * (Math.sqrt(3)/2 * hex.q + Math.sqrt(3) * hex.r);
+        return {x, y};
+    },
+
+    // pixel to hex
+    fromPixel(x, y) {
+        const q = (2/3 * x) / this.SIZE;
+        const r = (-1/3 * x + Math.sqrt(3)/3 * y) / this.SIZE;
+        return this.round(q, r);
+    },
+
+    // Round hex coordinates to nearest hex
+    round(q, r) {
+        let x = q;
+        let z = r;
+        let y = -x-z;
+
+        let rx = Math.round(x);
+        let ry = Math.round(y);
+        let rz = Math.round(z);
+
+        const x_diff = Math.abs(rx - x);
+        const y_diff = Math.abs(ry - y);
+        const z_diff = Math.abs(rz - z);
+
+        if (x_diff > y_diff && x_diff > z_diff) {
+            rx = -ry-rz;
+        } else if (y_diff > z_diff) {
+            ry = -rx-rz;
+        } else {
+            rz = -rx-ry;
+        }
+
+        return {q: rx, r: rz};
+    },
+
+    // Is this hex in the viewport?
+    getViewportHexes() {
+        const hexes = [];
+        const halfGrid = Math.floor(this.GRID_SIZE / 2);
+        
+        for (let r = -halfGrid; r < halfGrid; r++) {
+            for (let q = -halfGrid; q < halfGrid; q++) {
+                hexes.push({q, r});
+            }
+        }
+        return hexes;
+    },
+
+    // Check if a hex is passable
+    isPassable(hex) {
+        const halfGrid = Math.floor(this.GRID_SIZE / 2);
+        return Math.abs(hex.q) <= halfGrid && Math.abs(hex.r) <= halfGrid;
+    },
+
+    // Centralized hex drawing function
+    drawHexPath(ctx, x, y, size = this.SIZE, padding = 0) {
+        ctx.beginPath();
+        for (let i = 0; i < 6; i++) {
+            const angle = 2 * Math.PI / 6 * i;
+            const xPos = Math.round(x + (size + padding) * Math.cos(angle));
+            const yPos = Math.round(y + (size + padding) * Math.sin(angle));
+            if (i === 0) {
+                ctx.moveTo(xPos, yPos);
+            } else {
+                ctx.lineTo(xPos, yPos);
+            }
+        }
+        ctx.closePath();
+    },
+
+    toScreenCoordinates(hex, camera) {
+        const pixel = this.toPixel(hex);
+        return {
+            x: Math.round(pixel.x - camera.x),
+            y: Math.round(pixel.y - camera.y)
+        };
+    },
+
+    isInViewport(screenX, screenY, canvas) {
+        return !(screenX < -this.WIDTH || 
+                screenX > canvas.width + this.WIDTH ||
+                screenY < -this.HEIGHT || 
+                screenY > canvas.height + this.HEIGHT);
+    }
+}; 
\ No newline at end of file
diff --git a/html/rogue/js/inventory-ui.js b/html/rogue/js/inventory-ui.js
new file mode 100644
index 0000000..c7ce63c
--- /dev/null
+++ b/html/rogue/js/inventory-ui.js
@@ -0,0 +1,63 @@
+const InventoryUI = {
+    isOpen: false,
+    
+    toggleInventory() {
+        this.isOpen = !this.isOpen;
+    },
+    
+    // Helper function to count items by type
+    getItemCounts() {
+        const counts = new Map();
+        
+        player.inventory.forEach(item => {
+            const itemName = item.type.name;
+            counts.set(itemName, (counts.get(itemName) || 0) + 1);
+        });
+        
+        return counts;
+    },
+    
+    draw(ctx) {
+        if (!this.isOpen) return;
+        
+        // Draw semi-transparent background
+        ctx.fillStyle = Config.colors.UI.INVENTORY.BACKGROUND;
+        ctx.fillRect(0, 0, state.canvas.width, state.canvas.height);
+        
+        // Calculate positions ensuring integer values
+        const padding = Config.ui.inventory.PADDING;
+        const width = Config.ui.inventory.WIDTH;
+        const height = Config.ui.inventory.HEIGHT;
+        const x = Math.round((state.canvas.width - width) / 2);
+        const y = Math.round((state.canvas.height - height) / 2);
+        
+        // Draw window background
+        ctx.fillStyle = Config.colors.UI.INVENTORY.WINDOW;
+        ctx.fillRect(x, y, width, height);
+        
+        // Set text rendering properties for sharper text
+        ctx.textBaseline = 'top';
+        ctx.textAlign = 'left';
+        ctx.imageSmoothingEnabled = false;
+        
+        // Draw title
+        ctx.fillStyle = Config.colors.UI.INVENTORY.TEXT;
+        ctx.font = Config.ui.inventory.TITLE_FONT;
+        const titleX = Math.round(x + padding);
+        const titleY = Math.round(y + padding);
+        ctx.fillText('Inventory', titleX, titleY);
+        
+        // Get item counts and draw items with quantities
+        const itemCounts = this.getItemCounts();
+        let index = 0;
+        
+        itemCounts.forEach((count, itemName) => {
+            const itemX = Math.round(x + padding);
+            const itemY = Math.round(y + Config.ui.inventory.ITEMS_START_OFFSET + 
+                                   (index * Config.ui.inventory.ITEM_SPACING));
+            ctx.font = Config.ui.inventory.ITEM_FONT;
+            ctx.fillText(`${itemName} x${count}`, itemX, itemY);
+            index++;
+        });
+    }
+}; 
\ No newline at end of file
diff --git a/html/rogue/js/items.js b/html/rogue/js/items.js
new file mode 100644
index 0000000..dc6dc1e
--- /dev/null
+++ b/html/rogue/js/items.js
@@ -0,0 +1,63 @@
+const Items = {
+    items: new Map(), // Map of items on the grid, key is "q,r"
+    
+    // Item types
+    TYPES: {
+        COIN: {
+            name: 'Coin',
+            color: '#FFD700',
+            size: 0.2 // Size relative to hex
+        },
+        GEM: {
+            name: 'Gem',
+            color: '#50C878',
+            size: 0.25
+        }
+    },
+    
+    // Initialize items on the map
+    init() {
+        this.items.clear();
+        
+        // Add some random items
+        for (let i = 0; i < 10; i++) {
+            const q = Math.floor(Math.random() * HexGrid.GRID_SIZE - HexGrid.GRID_SIZE/2);
+            const r = Math.floor(Math.random() * HexGrid.GRID_SIZE - HexGrid.GRID_SIZE/2);
+            
+            // Don't place items at player start position
+            if (q !== 0 || r !== 0) {
+                const type = Math.random() < 0.5 ? this.TYPES.COIN : this.TYPES.GEM;
+                this.addItem(q, r, type);
+            }
+        }
+    },
+    
+    // Add an item to the map
+    addItem(q, r, type) {
+        this.items.set(`${q},${r}`, { type, q, r });
+    },
+    
+    // Remove an item from the map
+    removeItem(q, r) {
+        return this.items.delete(`${q},${r}`);
+    },
+    
+    // Get item at position
+    getItem(q, r) {
+        return this.items.get(`${q},${r}`);
+    },
+    
+    // Draw all items
+    draw(ctx, hexToPixel, camera, HEX_SIZE) {
+        this.items.forEach(item => {
+            const pixelPos = hexToPixel({ q: item.q, r: item.r });
+            const screenX = pixelPos.x - camera.x;
+            const screenY = pixelPos.y - camera.y;
+            
+            ctx.fillStyle = item.type.color;
+            ctx.beginPath();
+            ctx.arc(screenX, screenY, HEX_SIZE * item.type.size, 0, Math.PI * 2);
+            ctx.fill();
+        });
+    }
+}; 
\ No newline at end of file
diff --git a/html/rogue/js/player.js b/html/rogue/js/player.js
index 270b26f..efecbdf 100644
--- a/html/rogue/js/player.js
+++ b/html/rogue/js/player.js
@@ -1,64 +1,241 @@
-const createPlayer = (x, y) => ({
-    x,
-    y,
-    width: 32,
-    height: 32,
-    velocityX: 0,
-    velocityY: 0,
-    speed: 300,
-    jumping: false
-});
+// Player state and controls
+const player = {
+    position: { q: 0, r: 0 },    // Current hex position
+    target: null,                 // Target hex to move to
+    path: [],                     // Array of hex coordinates to follow
+    movementProgress: 0,          // Progress of current movement (0 to 1)
+    moveSpeed: Config.player.MOVE_SPEED,              // Movement speed (0 to 1 per frame)
+    inventory: [],
+    
+    // Animation properties
+    animation: null,
+    sprites: [],
+    
+    // Initialize player
+    async init() {
+        this.position = { q: 0, r: 0 };
+        this.target = null;
+        this.path = [];
+        this.inventory = [];
+        
+        // Load sprites
+        try {
+            const [sprite1, sprite2] = await Promise.all([
+                Animation.loadImage('assets/home/goblin-01.png'),
+                Animation.loadImage('assets/home/goblin-02.png')
+            ]);
+            
+            this.sprites = [sprite1, sprite2];
+            this.animation = Animation.createAnimation(this.sprites, 500); // 500ms per frame
+        } catch (error) {
+            console.error('Failed to load player sprites:', error);
+        }
+        
+        return this;
+    },
 
-const updatePlayer = (player, deltaTime) => {
-    const keys = getKeys();
-    const seconds = deltaTime / 1000;
+    // Check if a hex coordinate is within grid bounds
+    isValidHex(hex) {
+        const halfGrid = Math.floor(HexGrid.GRID_SIZE / 2);
+        return Math.abs(hex.q) <= halfGrid && Math.abs(hex.r) <= halfGrid;
+    },
 
-    let velocityX = 0;
-    let velocityY = player.velocityY;
+    // Get neighbors that share an edge with the given hex
+    getEdgeNeighbors(hex) {
+        const directions = [
+            {q: 1, r: 0},   // East
+            {q: 0, r: 1},   // Southeast
+            {q: -1, r: 1},  // Southwest
+            {q: -1, r: 0},  // West
+            {q: 0, r: -1},  // Northwest
+            {q: 1, r: -1}   // Northeast
+        ];
+        
+        // Only return neighbors that are within grid bounds
+        return directions
+            .map(dir => ({
+                q: hex.q + dir.q,
+                r: hex.r + dir.r
+            }))
+            .filter(hex => this.isValidHex(hex));
+    },
 
-    // Horizontal movement
-    if (keys.ArrowLeft) velocityX -= player.speed;
-    if (keys.ArrowRight) velocityX += player.speed;
+    // Find path from current position to target
+    findPath(targetHex) {
+        const start = this.position;
+        const goal = targetHex;
+        
+        // Simple breadth-first search
+        const queue = [[start]];
+        const visited = new Set();
+        const key = hex => `${hex.q},${hex.r}`;
+        visited.add(key(start));
+        
+        while (queue.length > 0) {
+            const path = queue.shift();
+            const current = path[path.length - 1];
+            
+            if (current.q === goal.q && current.r === goal.r) {
+                return path;
+            }
+            
+            const neighbors = this.getEdgeNeighbors(current);
+            for (const neighbor of neighbors) {
+                const neighborKey = key(neighbor);
+                if (!visited.has(neighborKey)) {
+                    visited.add(neighborKey);
+                    queue.push([...path, neighbor]);
+                }
+            }
+        }
+        
+        return null; // No path found
+    },
 
-    // Simple jumping (can be improved)
-    if (keys.ArrowUp && !player.jumping) {
-        velocityY = -500;
-    }
-
-    // Apply gravity
-    velocityY += 980 * seconds; // 980 pixels/second²
+    // Start moving to a target hex
+    moveTo(targetHex) {
+        // Only start new movement if we're not already moving and target is valid
+        if (!this.target) {
+            // Check if target is within grid bounds
+            if (!this.isValidHex(targetHex)) {
+                return; // Ignore movement request if target is out of bounds
+            }
 
-    // Update position
-    const x = player.x + velocityX * seconds;
-    const y = player.y + velocityY * seconds;
+            const path = this.findPath(targetHex);
+            if (path) {
+                // Filter out any path points that would go out of bounds
+                this.path = path.slice(1).filter(hex => this.isValidHex(hex));
+                if (this.path.length > 0) {
+                    this.target = this.path.shift();
+                    this.movementProgress = 0;
+                }
+            }
+        }
+    },
 
-    // Create updated player state
-    let updatedPlayer = {
-        ...player,
-        x,
-        y,
-        velocityX,
-        velocityY
-    };
+    // Add item to inventory
+    addToInventory(item) {
+        this.inventory.push(item);
+    },
 
-    // Handle collisions with the world
-    return handleWorldCollisions(updatedPlayer, window.gameState.world);
-};
+    // Check for and collect items
+    checkForItems() {
+        const item = Items.getItem(this.position.q, this.position.r);
+        if (item) {
+            Items.removeItem(this.position.q, this.position.r);
+            this.addToInventory(item);
+        }
+    },
 
-const renderPlayer = (ctx, player) => {
-    ctx.fillStyle = '#f00';
-    ctx.fillRect(player.x, player.y, player.width, player.height);
-};
+    // Update player position
+    update() {
+        if (this.target) {
+            this.movementProgress += this.moveSpeed;
+            
+            if (this.movementProgress >= 1) {
+                this.position = this.target;
+                this.target = null;
+                this.movementProgress = 0;
+                this.hasMoved = true;
+                
+                // Check for items when reaching new position
+                this.checkForItems();
+                
+                if (this.path.length > 0) {
+                    this.target = this.path.shift();
+                    this.movementProgress = 0;
+                }
+            }
+        }
+    },
 
-// Key handling
-const keys = {};
+    // Get current interpolated position
+    getCurrentPosition() {
+        if (!this.target) {
+            return this.position;
+        }
 
-window.addEventListener('keydown', (e) => {
-    keys[e.key] = true;
-});
+        // Interpolate between current position and target
+        return {
+            q: this.position.q + (this.target.q - this.position.q) * this.movementProgress,
+            r: this.position.r + (this.target.r - this.position.r) * this.movementProgress
+        };
+    },
 
-window.addEventListener('keyup', (e) => {
-    keys[e.key] = false;
-});
+    // Draw the player
+    draw(ctx, hexToPixel, camera, HEX_SIZE) {
+        const currentPos = this.getCurrentPosition();
+        const pixelPos = hexToPixel(currentPos);
+        const screenX = pixelPos.x - camera.x;
+        const screenY = pixelPos.y - camera.y;
 
-const getKeys = () => ({...keys});
+        if (this.animation && this.sprites.length > 0) {
+            // Get current sprite from animation
+            const currentSprite = this.animation.update(performance.now());
+            
+            // Scale sprite to fit within hex
+            // Use slightly smaller than hex size to ensure it fits visually
+            const hexInnerSize = HEX_SIZE * 0.8; // 80% of hex size
+            const { width, height, scale } = Animation.scaleToFit(
+                currentSprite, 
+                hexInnerSize * 2, // width
+                hexInnerSize * Math.sqrt(3) // height (hex height)
+            );
+            
+            // Calculate position to center the sprite in the hex
+            const spriteX = screenX - width / 2;
+            const spriteY = screenY - height / 2;
+            
+            // Save context state
+            ctx.save();
+            
+            // Optional: add a small bounce effect when moving
+            if (this.target) {
+                const bounce = Math.sin(performance.now() / 100) * 2;
+                ctx.translate(spriteX, spriteY + bounce);
+            } else {
+                ctx.translate(spriteX, spriteY);
+            }
+            
+            // Draw the sprite
+            ctx.drawImage(
+                currentSprite,
+                0, 0,
+                width,
+                height
+            );
+            
+            // Restore context state
+            ctx.restore();
+            
+            // Debug: draw hex bounds if debug is enabled
+            if (Debug.isEnabled) {
+                ctx.strokeStyle = 'rgba(255, 0, 0, 0.5)';
+                ctx.beginPath();
+                HexGrid.drawHexPath(ctx, screenX, screenY, HEX_SIZE * 0.8);
+                ctx.stroke();
+            }
+        } else {
+            // Fallback to circle if sprites aren't loaded
+            ctx.fillStyle = Config.colors.PLAYER;
+            ctx.beginPath();
+            ctx.arc(screenX, screenY, HEX_SIZE * Config.player.SIZE_RATIO, 0, Math.PI * 2);
+            ctx.fill();
+        }
+        
+        // Draw path if needed
+        if (this.path.length > 0) {
+            ctx.strokeStyle = Config.colors.PLAYER + '4D';
+            ctx.beginPath();
+            let lastPos = this.target || this.position;
+            this.path.forEach(point => {
+                const from = hexToPixel(lastPos);
+                const to = hexToPixel(point);
+                ctx.moveTo(from.x - camera.x, from.y - camera.y);
+                ctx.lineTo(to.x - camera.x, to.y - camera.y);
+                lastPos = point;
+            });
+            ctx.stroke();
+        }
+    }
+}; 
\ No newline at end of file
diff --git a/html/rogue/js/renderer.js b/html/rogue/js/renderer.js
index 617b4c7..3e64666 100644
--- a/html/rogue/js/renderer.js
+++ b/html/rogue/js/renderer.js
@@ -1,97 +1,29 @@
-// Rendering constants
-const RENDER_CONSTANTS = {
-    VIEWPORT_BUFFER: 100,
-    SKY_COLORS: {
-        TOP: '#1a1a2e',
-        UPPER_MID: '#2d1b3d',
-        LOWER_MID: '#462639',
-        BOTTOM: '#1f1f2f'
+const Renderer = {
+    drawHex(ctx, hex, x, y, size, fillStyle, strokeStyle) {
+        ctx.beginPath();
+        for (let i = 0; i < 6; i++) {
+            const angle = 2 * Math.PI / 6 * i;
+            const xPos = x + size * Math.cos(angle);
+            const yPos = y + size * Math.sin(angle);
+            if (i === 0) ctx.moveTo(xPos, yPos);
+            else ctx.lineTo(xPos, yPos);
+        }
+        ctx.closePath();
+        
+        if (fillStyle) {
+            ctx.fillStyle = fillStyle;
+            ctx.fill();
+        }
+        if (strokeStyle) {
+            ctx.strokeStyle = strokeStyle;
+            ctx.stroke();
+        }
     },
-    GROUND_COLOR: '#4a4',
-    DEBUG_FONT: '14px monospace',
-    DEBUG_COLOR: '#ffffff'
-};
-
-// Helper functions for rendering
-const createSkyGradient = (ctx, groundY) => {
-    const gradient = ctx.createLinearGradient(0, 0, 0, groundY);
-    gradient.addColorStop(0, RENDER_CONSTANTS.SKY_COLORS.TOP);
-    gradient.addColorStop(0.4, RENDER_CONSTANTS.SKY_COLORS.UPPER_MID);
-    gradient.addColorStop(0.7, RENDER_CONSTANTS.SKY_COLORS.LOWER_MID);
-    gradient.addColorStop(1, RENDER_CONSTANTS.SKY_COLORS.BOTTOM);
-    return gradient;
-};
-
-const getViewBounds = (camera) => ({
-    left: camera.x - RENDER_CONSTANTS.VIEWPORT_BUFFER,
-    right: camera.x + camera.width + RENDER_CONSTANTS.VIEWPORT_BUFFER,
-    top: camera.y - RENDER_CONSTANTS.VIEWPORT_BUFFER,
-    bottom: camera.y + camera.height + RENDER_CONSTANTS.VIEWPORT_BUFFER
-});
-
-const isInView = (x, viewBounds) => 
-    x > viewBounds.left && x < viewBounds.right;
-
-// Layer rendering functions
-const renderBackground = (ctx, state, groundY, viewBounds) => {
-    // Save the current transform
-    ctx.save();
     
-    // Reset transform for viewport-fixed sky and initial black fill
-    ctx.setTransform(1, 0, 0, 1, 0, 0);
-    
-    // Sky (fixed to viewport)
-    ctx.fillStyle = state.cachedGradient;
-    ctx.fillRect(0, 0, ctx.canvas.width, groundY);
-
-    // Initial black fill for the bottom of the viewport
-    ctx.fillStyle = '#000000';
-    ctx.fillRect(0, groundY, ctx.canvas.width, ctx.canvas.height - groundY + 1);
-
-    // Restore transform for world-space rendering
-    ctx.restore();
-    
-    // Additional black fill that follows the camera (extends far to left and right)
-    ctx.fillStyle = '#000000';
-    ctx.fillRect(
-        viewBounds.left - 2000,
-        groundY,
-        viewBounds.right - viewBounds.left + 4000,
-        ctx.canvas.height
-    );
-};
-
-const renderBackgroundObjects = (ctx, state, groundY, viewBounds) => {
-    state.world.backgroundTrees
-        .filter(tree => isInView(tree.x, viewBounds))
-        .forEach(tree => renderTree(ctx, tree, groundY));
-    
-    state.world.backgroundRocks
-        .filter(rock => isInView(rock.x, viewBounds))
-        .forEach(rock => renderRock(ctx, rock, groundY));
-    
-    state.world.backgroundGrass
-        .filter(grass => isInView(grass.x, viewBounds))
-        .forEach(grass => renderGrass(ctx, grass, groundY, state.time));
-};
-
-const renderForegroundObjects = (ctx, state, groundY, viewBounds) => {
-    state.world.foregroundTrees
-        .filter(tree => isInView(tree.x, viewBounds))
-        .forEach(tree => renderTree(ctx, tree, groundY));
-    
-    state.world.foregroundRocks
-        .filter(rock => isInView(rock.x, viewBounds))
-        .forEach(rock => renderRock(ctx, rock, groundY));
-    
-    state.world.foregroundGrass
-        .filter(grass => isInView(grass.x, viewBounds))
-        .forEach(grass => renderGrass(ctx, grass, groundY, state.time));
-};
-
-const renderDebugInfo = (ctx, state) => {
-    ctx.fillStyle = RENDER_CONSTANTS.DEBUG_COLOR;
-    ctx.font = RENDER_CONSTANTS.DEBUG_FONT;
-    const text = `x: ${Math.round(state.debug.mouseX)}, y: ${Math.round(state.debug.mouseY)}`;
-    ctx.fillText(text, 10, ctx.canvas.height - 20);
+    drawCircle(ctx, x, y, radius, fillStyle) {
+        ctx.fillStyle = fillStyle;
+        ctx.beginPath();
+        ctx.arc(x, y, radius, 0, Math.PI * 2);
+        ctx.fill();
+    }
 }; 
\ No newline at end of file
diff --git a/html/rogue/js/state.js b/html/rogue/js/state.js
new file mode 100644
index 0000000..f5c713d
--- /dev/null
+++ b/html/rogue/js/state.js
@@ -0,0 +1,17 @@
+const GameState = {
+    canvas: null,
+    ctx: null,
+    lastFrameTime: 0,
+    
+    init() {
+        this.canvas = document.getElementById('gameCanvas');
+        this.ctx = this.canvas.getContext('2d');
+        this.lastFrameTime = 0;
+    },
+    
+    resize() {
+        this.canvas.width = window.innerWidth;
+        this.canvas.height = window.innerHeight;
+        Camera.centerOn(player.position);
+    }
+}; 
\ No newline at end of file
diff --git a/html/rogue/js/utils.js b/html/rogue/js/utils.js
new file mode 100644
index 0000000..bd329fb
--- /dev/null
+++ b/html/rogue/js/utils.js
@@ -0,0 +1,25 @@
+const Utils = {
+    hexToKey(hex) {
+        return `${hex.q},${hex.r}`;
+    },
+    
+    keyToHex(key) {
+        const [q, r] = key.split(',').map(Number);
+        return { q, r };
+    },
+    
+    // Screen/canvas coordinate utilities
+    screenToCanvas(x, y, camera) {
+        return {
+            x: x + camera.x,
+            y: y + camera.y
+        };
+    },
+    
+    canvasToScreen(x, y, camera) {
+        return {
+            x: x - camera.x,
+            y: y - camera.y
+        };
+    }
+}; 
\ No newline at end of file
diff --git a/html/side-scrolling-rogue-thing/index.html b/html/side-scrolling-rogue-thing/index.html
new file mode 100644
index 0000000..ef37885
--- /dev/null
+++ b/html/side-scrolling-rogue-thing/index.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <title>Rogue</title>
+    <style>
+        body {
+            margin: 0;
+            overflow: hidden;
+        }
+        canvas {
+            display: block;
+        }
+    </style>
+</head>
+<body>
+    <canvas id="gameCanvas"></canvas>
+    <!-- Load config first since other files depend on it -->
+    <script src="js/config.js"></script>
+    <script src="js/renderer.js"></script>
+    <script src="js/input.js"></script>
+    <script src="js/world.js"></script>
+    <script src="js/player.js"></script>
+    <script src="js/camera.js"></script>
+    <script src="js/rogue.js"></script>
+</body>
+</html>
diff --git a/html/side-scrolling-rogue-thing/js/camera.js b/html/side-scrolling-rogue-thing/js/camera.js
new file mode 100644
index 0000000..e5d5d14
--- /dev/null
+++ b/html/side-scrolling-rogue-thing/js/camera.js
@@ -0,0 +1,56 @@
+const createCamera = (x, y) => ({
+    x,
+    y,
+    width: window.innerWidth,
+    height: window.innerHeight,
+    // Define the dead zone (the area where camera won't move)
+    deadZone: {
+        x: window.innerWidth * 0.3, // 30% of screen width
+        y: window.innerHeight * 0.3, // 30% of screen height
+    }
+});
+
+const updateCamera = (camera, target) => {
+    // Calculate the center point of the screen
+    const screenCenterX = camera.x + camera.width / 2;
+    const screenCenterY = camera.y + camera.height / 2;
+
+    // Calculate the distance from the target to the screen center
+    const distanceX = target.x - screenCenterX;
+    const distanceY = target.y - screenCenterY;
+
+    // Calculate the dead zone boundaries
+    const deadZoneLeft = -camera.deadZone.x / 2;
+    const deadZoneRight = camera.deadZone.x / 2;
+    const deadZoneTop = -camera.deadZone.y / 2;
+    const deadZoneBottom = camera.deadZone.y / 2;
+
+    // Calculate new camera position with smooth following
+    let newX = camera.x;
+    let newY = camera.y;
+
+    // Horizontal camera movement
+    if (distanceX < deadZoneLeft) {
+        newX += distanceX - deadZoneLeft;
+    } else if (distanceX > deadZoneRight) {
+        newX += distanceX - deadZoneRight;
+    }
+
+    // Vertical camera movement
+    if (distanceY < deadZoneTop) {
+        newY += distanceY - deadZoneTop;
+    } else if (distanceY > deadZoneBottom) {
+        newY += distanceY - deadZoneBottom;
+    }
+
+    // Add subtle smoothing to camera movement
+    const smoothing = 0.1;
+    newX = camera.x + (newX - camera.x) * smoothing;
+    newY = camera.y + (newY - camera.y) * smoothing;
+
+    return {
+        ...camera,
+        x: newX,
+        y: newY
+    };
+};
diff --git a/html/side-scrolling-rogue-thing/js/config.js b/html/side-scrolling-rogue-thing/js/config.js
new file mode 100644
index 0000000..77100e1
--- /dev/null
+++ b/html/side-scrolling-rogue-thing/js/config.js
@@ -0,0 +1,32 @@
+const CONFIG = {
+    player: {
+        width: 32,
+        height: 48,
+        speed: 5,
+        jumpForce: 12,
+        gravity: 0.5,
+        color: '#ff0000'
+    },
+    world: {
+        groundHeight: 12,
+        wilderness: {
+            vegetation: {
+                grass: {
+                    colors: ['#3a5', '#294'],
+                    hatch: {
+                        angle: Math.PI / 4,
+                        variation: Math.PI / 6,
+                        spacing: 4,
+                        length: 8,
+                        margin: 2
+                    }
+                }
+            }
+        }
+    },
+    camera: {
+        width: window.innerWidth,
+        height: window.innerHeight,
+        followSpeed: 0.1
+    }
+}; 
\ No newline at end of file
diff --git a/html/rogue/js/input.js b/html/side-scrolling-rogue-thing/js/input.js
index 047321c..047321c 100644
--- a/html/rogue/js/input.js
+++ b/html/side-scrolling-rogue-thing/js/input.js
diff --git a/html/side-scrolling-rogue-thing/js/player.js b/html/side-scrolling-rogue-thing/js/player.js
new file mode 100644
index 0000000..270b26f
--- /dev/null
+++ b/html/side-scrolling-rogue-thing/js/player.js
@@ -0,0 +1,64 @@
+const createPlayer = (x, y) => ({
+    x,
+    y,
+    width: 32,
+    height: 32,
+    velocityX: 0,
+    velocityY: 0,
+    speed: 300,
+    jumping: false
+});
+
+const updatePlayer = (player, deltaTime) => {
+    const keys = getKeys();
+    const seconds = deltaTime / 1000;
+
+    let velocityX = 0;
+    let velocityY = player.velocityY;
+
+    // Horizontal movement
+    if (keys.ArrowLeft) velocityX -= player.speed;
+    if (keys.ArrowRight) velocityX += player.speed;
+
+    // Simple jumping (can be improved)
+    if (keys.ArrowUp && !player.jumping) {
+        velocityY = -500;
+    }
+
+    // Apply gravity
+    velocityY += 980 * seconds; // 980 pixels/second²
+
+    // Update position
+    const x = player.x + velocityX * seconds;
+    const y = player.y + velocityY * seconds;
+
+    // Create updated player state
+    let updatedPlayer = {
+        ...player,
+        x,
+        y,
+        velocityX,
+        velocityY
+    };
+
+    // Handle collisions with the world
+    return handleWorldCollisions(updatedPlayer, window.gameState.world);
+};
+
+const renderPlayer = (ctx, player) => {
+    ctx.fillStyle = '#f00';
+    ctx.fillRect(player.x, player.y, player.width, player.height);
+};
+
+// Key handling
+const keys = {};
+
+window.addEventListener('keydown', (e) => {
+    keys[e.key] = true;
+});
+
+window.addEventListener('keyup', (e) => {
+    keys[e.key] = false;
+});
+
+const getKeys = () => ({...keys});
diff --git a/html/side-scrolling-rogue-thing/js/renderer.js b/html/side-scrolling-rogue-thing/js/renderer.js
new file mode 100644
index 0000000..617b4c7
--- /dev/null
+++ b/html/side-scrolling-rogue-thing/js/renderer.js
@@ -0,0 +1,97 @@
+// Rendering constants
+const RENDER_CONSTANTS = {
+    VIEWPORT_BUFFER: 100,
+    SKY_COLORS: {
+        TOP: '#1a1a2e',
+        UPPER_MID: '#2d1b3d',
+        LOWER_MID: '#462639',
+        BOTTOM: '#1f1f2f'
+    },
+    GROUND_COLOR: '#4a4',
+    DEBUG_FONT: '14px monospace',
+    DEBUG_COLOR: '#ffffff'
+};
+
+// Helper functions for rendering
+const createSkyGradient = (ctx, groundY) => {
+    const gradient = ctx.createLinearGradient(0, 0, 0, groundY);
+    gradient.addColorStop(0, RENDER_CONSTANTS.SKY_COLORS.TOP);
+    gradient.addColorStop(0.4, RENDER_CONSTANTS.SKY_COLORS.UPPER_MID);
+    gradient.addColorStop(0.7, RENDER_CONSTANTS.SKY_COLORS.LOWER_MID);
+    gradient.addColorStop(1, RENDER_CONSTANTS.SKY_COLORS.BOTTOM);
+    return gradient;
+};
+
+const getViewBounds = (camera) => ({
+    left: camera.x - RENDER_CONSTANTS.VIEWPORT_BUFFER,
+    right: camera.x + camera.width + RENDER_CONSTANTS.VIEWPORT_BUFFER,
+    top: camera.y - RENDER_CONSTANTS.VIEWPORT_BUFFER,
+    bottom: camera.y + camera.height + RENDER_CONSTANTS.VIEWPORT_BUFFER
+});
+
+const isInView = (x, viewBounds) => 
+    x > viewBounds.left && x < viewBounds.right;
+
+// Layer rendering functions
+const renderBackground = (ctx, state, groundY, viewBounds) => {
+    // Save the current transform
+    ctx.save();
+    
+    // Reset transform for viewport-fixed sky and initial black fill
+    ctx.setTransform(1, 0, 0, 1, 0, 0);
+    
+    // Sky (fixed to viewport)
+    ctx.fillStyle = state.cachedGradient;
+    ctx.fillRect(0, 0, ctx.canvas.width, groundY);
+
+    // Initial black fill for the bottom of the viewport
+    ctx.fillStyle = '#000000';
+    ctx.fillRect(0, groundY, ctx.canvas.width, ctx.canvas.height - groundY + 1);
+
+    // Restore transform for world-space rendering
+    ctx.restore();
+    
+    // Additional black fill that follows the camera (extends far to left and right)
+    ctx.fillStyle = '#000000';
+    ctx.fillRect(
+        viewBounds.left - 2000,
+        groundY,
+        viewBounds.right - viewBounds.left + 4000,
+        ctx.canvas.height
+    );
+};
+
+const renderBackgroundObjects = (ctx, state, groundY, viewBounds) => {
+    state.world.backgroundTrees
+        .filter(tree => isInView(tree.x, viewBounds))
+        .forEach(tree => renderTree(ctx, tree, groundY));
+    
+    state.world.backgroundRocks
+        .filter(rock => isInView(rock.x, viewBounds))
+        .forEach(rock => renderRock(ctx, rock, groundY));
+    
+    state.world.backgroundGrass
+        .filter(grass => isInView(grass.x, viewBounds))
+        .forEach(grass => renderGrass(ctx, grass, groundY, state.time));
+};
+
+const renderForegroundObjects = (ctx, state, groundY, viewBounds) => {
+    state.world.foregroundTrees
+        .filter(tree => isInView(tree.x, viewBounds))
+        .forEach(tree => renderTree(ctx, tree, groundY));
+    
+    state.world.foregroundRocks
+        .filter(rock => isInView(rock.x, viewBounds))
+        .forEach(rock => renderRock(ctx, rock, groundY));
+    
+    state.world.foregroundGrass
+        .filter(grass => isInView(grass.x, viewBounds))
+        .forEach(grass => renderGrass(ctx, grass, groundY, state.time));
+};
+
+const renderDebugInfo = (ctx, state) => {
+    ctx.fillStyle = RENDER_CONSTANTS.DEBUG_COLOR;
+    ctx.font = RENDER_CONSTANTS.DEBUG_FONT;
+    const text = `x: ${Math.round(state.debug.mouseX)}, y: ${Math.round(state.debug.mouseY)}`;
+    ctx.fillText(text, 10, ctx.canvas.height - 20);
+}; 
\ No newline at end of file
diff --git a/html/rogue/js/rogue.js b/html/side-scrolling-rogue-thing/js/rogue.js
index 64716a4..64716a4 100644
--- a/html/rogue/js/rogue.js
+++ b/html/side-scrolling-rogue-thing/js/rogue.js
diff --git a/html/rogue/js/world.js b/html/side-scrolling-rogue-thing/js/world.js
index 2b2529a..2b2529a 100644
--- a/html/rogue/js/world.js
+++ b/html/side-scrolling-rogue-thing/js/world.js
diff --git a/html/simple-shape/app.js b/html/simple-shape/app.js
new file mode 100644
index 0000000..b5260aa
--- /dev/null
+++ b/html/simple-shape/app.js
@@ -0,0 +1,464 @@
+/**
+ * Configuration object for application-wide settings
+ * Centralizes magic numbers and configuration values
+ * @constant {Object}
+ */
+const CONFIG = {
+    canvas: {
+        dpi: 300,
+        width: 8.5 * 300, // 8.5in at 300dpi
+        height: 11 * 300, // 11in at 300dpi
+    },
+    grid: {
+        rows: 4,
+        columns: 5,
+        topMargin: 100,
+        bottomMargin: 300,
+        patternSize: 400,
+        gutterRatio: 0.1, // 10% of pattern size
+        patternRatio: 0.8  // 80% of space for pattern
+    },
+    style: {
+        strokeWidth: 4,
+        strokeColor: '#000'
+    }
+};
+
+/**
+ * Canvas Setup and Configuration
+ * This section initializes a high-resolution canvas optimized for both screen display and printing.
+ */
+const canvas = document.getElementById('canvas');
+const ctx = canvas.getContext('2d');
+
+canvas.width = CONFIG.canvas.width;
+canvas.height = CONFIG.canvas.height;
+
+/**
+ * Utility Functions Module
+ * Pure functions for common operations
+ * @namespace Utils
+ */
+const Utils = {
+    /**
+     * Generates a random number within a range
+     * @param {number} min - Minimum value
+     * @param {number} max - Maximum value
+     * @returns {number}
+     */
+    random: (min, max) => Math.random() * (max - min) + min,
+    
+    /**
+     * Generates a random integer within a range
+     * @param {number} min - Minimum value
+     * @param {number} max - Maximum value
+     * @returns {number}
+     */
+    randomInt: (min, max) => Math.floor(Utils.random(min, max)),
+    
+    /**
+     * Randomly selects an item from an array
+     * @param {Array} arr - Source array
+     * @returns {*}
+     */
+    randomChoice: arr => arr[Math.floor(Math.random() * arr.length)],
+    
+    /**
+     * Fisher-Yates shuffle implementation
+     * @param {Array} arr - Array to shuffle
+     * @returns {Array} New shuffled array
+     */
+    shuffle: arr => [...arr].sort(() => Math.random() - 0.5),
+    
+    /**
+     * Creates a range array of numbers
+     * @param {number} start - Start value
+     * @param {number} end - End value
+     * @returns {Array<number>}
+     */
+    range: (start, end) => Array.from(
+        { length: end - start }, 
+        (_, i) => start + i
+    )
+};
+
+/**
+ * Drawing Context Manager
+ * Handles canvas context state management using functional composition
+ * @namespace ContextManager
+ */
+const ContextManager = {
+    /**
+     * Executes a drawing operation with saved context state
+     * @param {Function} drawFn - Drawing function to execute
+     * @returns {Function}
+     */
+    withContext: drawFn => (...args) => {
+        ctx.save();
+        drawFn(...args);
+        ctx.restore();
+    },
+
+    /**
+     * Applies a translation transformation
+     * @param {number} x - X translation
+     * @param {number} y - Y translation
+     * @returns {Function}
+     */
+    withTranslation: (x, y) => drawFn => (...args) => {
+        ctx.translate(x, y);
+        drawFn(...args);
+    },
+
+    /**
+     * Applies a rotation transformation around a point
+     * @param {number} angle - Rotation angle in radians
+     * @param {number} x - Center X coordinate
+     * @param {number} y - Center Y coordinate
+     * @returns {Function}
+     */
+    withRotation: (angle, x, y) => drawFn => (...args) => {
+        ctx.translate(x, y);
+        ctx.rotate(angle);
+        ctx.translate(-x, -y);
+        drawFn(...args);
+    }
+};
+
+/**
+ * Shape Factory Pattern
+ * @namespace Shapes
+ */
+const Shapes = {
+    /**
+     * Creates a circle with optional fill
+     * @param {number} x - Center X coordinate
+     * @param {number} y - Center Y coordinate
+     * @param {number} size - Reference size for radius calculation
+     * @param {Object} params - Optional parameters for customization
+     * @param {number} [params.radius] - Optional explicit radius
+     * @param {boolean} [params.fill] - Whether to fill the circle
+     */
+    circle: (x, y, size, params = {}) => {
+        const radius = params.radius || size/3;
+        ctx.beginPath();
+        ctx.arc(x, y, radius, 0, Math.PI * 2);
+        params.fill ? ctx.fill() : ctx.stroke();
+    },
+    
+    line: (x1, y1, x2, y2) => {
+        ctx.beginPath();
+        ctx.moveTo(x1, y1);
+        ctx.lineTo(x2, y2);
+        ctx.stroke();
+    },
+    
+    triangle: (x, y, size) => {
+        ctx.beginPath();
+        ctx.moveTo(x, y + size);
+        ctx.lineTo(x + size/2, y);
+        ctx.lineTo(x + size, y + size);
+        ctx.closePath();
+        ctx.stroke();
+    },
+
+    square: (x, y, size) => {
+        ctx.strokeRect(x, y, size, size);
+    }
+};
+
+/**
+ * Pattern Generator System
+ * @namespace Patterns
+ */
+const Patterns = {
+    /**
+     * Creates a pattern generator with transformation capabilities
+     * @param {Function} patternFn - Base pattern drawing function
+     * @returns {Function} Enhanced pattern generator
+     */
+    createGenerator: patternFn => {
+        return ContextManager.withContext((x, y, size) => {
+            const rotation = Math.PI/2 * Utils.randomInt(0, 4);
+            if (rotation > 0) {
+                ContextManager.withRotation(
+                    rotation,
+                    x + size/2,
+                    y + size/2
+                )(patternFn)(x, y, size);
+            } else {
+                patternFn(x, y, size);
+            }
+        });
+    },
+
+    /**
+     * Collection of base pattern implementations
+     * @type {Array<Function>}
+     */
+    types: [
+        /**
+         * Grid-based pattern strategy
+         * Demonstrates use of nested loops for regular grid generation
+         * @param {number} x - Starting X coordinate
+         * @param {number} y - Starting Y coordinate
+         * @param {number} size - Pattern size
+         */
+        (x, y, size) => {
+            const spacing = size/3;
+            for(let i = 0; i < 3; i++) {
+                for(let j = 0; j < 3; j++) {
+                    if((i + j) % 2 === 0) { // Checkerboard pattern
+                        Shapes.circle(
+                            x + spacing/2 + i * spacing,
+                            y + spacing/2 + j * spacing,
+                            spacing/2
+                        );
+                    }
+                }
+            }
+        },
+
+        // Nested squares
+        (x, y, size) => {
+            for(let i = 3; i > 0; i--) {
+                const offset = (3 - i) * size/6;
+                const squareSize = size - offset * 2;
+                Shapes.square(x + offset, y + offset, squareSize);
+            }
+        },
+
+        // Simple flower pattern
+        (x, y, size) => {
+            const center = size/2;
+            const radius = size/4;
+            
+            // Center circle
+            Shapes.circle(x + center, y + center, size/6);
+            
+            // Petals
+            for(let i = 0; i < 6; i++) {
+                const angle = (i / 6) * Math.PI * 2;
+                const petalX = x + center + Math.cos(angle) * radius;
+                const petalY = y + center + Math.sin(angle) * radius;
+                Shapes.circle(petalX, petalY, size/6);
+            }
+        },
+
+        // Triangles in a row
+        (x, y, size) => {
+            const triSize = size/3;
+            for(let i = 0; i < 3; i++) {
+                Shapes.triangle(
+                    x + i * triSize,
+                    y + (i % 2) * triSize/2,
+                    triSize
+                );
+            }
+        },
+
+        // Simple grid of squares
+        (x, y, size) => {
+            const gridSize = size/2;
+            for(let i = 0; i < 2; i++) {
+                for(let j = 0; j < 2; j++) {
+                    Shapes.square(
+                        x + i * gridSize + size/8,
+                        y + j * gridSize + size/8,
+                        gridSize * 0.75
+                    );
+                }
+            }
+        },
+
+        // Alternating circles and squares
+        (x, y, size) => {
+            const spacing = size/2;
+            for(let i = 0; i < 2; i++) {
+                for(let j = 0; j < 2; j++) {
+                    if((i + j) % 2 === 0) {
+                        Shapes.circle(
+                            x + spacing/2 + i * spacing,
+                            y + spacing/2 + j * spacing,
+                            spacing/3
+                        );
+                    } else {
+                        Shapes.square(
+                            x + i * spacing + spacing/6,
+                            y + j * spacing + spacing/6,
+                            spacing * 2/3
+                        );
+                    }
+                }
+            }
+        },
+
+        // Simple star pattern
+        (x, y, size) => {
+            const center = size/2;
+            // Horizontal and vertical lines
+            Shapes.line(x, y + center, x + size, y + center);
+            Shapes.line(x + center, y, x + center, y + size);
+            // Diagonal lines
+            Shapes.line(x, y, x + size, y + size);
+            Shapes.line(x + size, y, x, y + size);
+        },
+
+        // Nested arcs
+        (x, y, size) => {
+            const center = size/2;
+            for(let i = 1; i <= 4; i++) {
+                const radius = (size/2) * (i/4);
+                ctx.beginPath();
+                ctx.arc(x + center, y + center, radius, 0, Math.PI);
+                ctx.stroke();
+            }
+        },
+
+        // Quarter circles in corners
+        (x, y, size) => {
+            const radius = size/2;
+            // Top left
+            ctx.beginPath();
+            ctx.arc(x, y, radius, 0, Math.PI/2);
+            ctx.stroke();
+            // Top right
+            ctx.beginPath();
+            ctx.arc(x + size, y, radius, Math.PI/2, Math.PI);
+            ctx.stroke();
+            // Bottom right
+            ctx.beginPath();
+            ctx.arc(x + size, y + size, radius, Math.PI, Math.PI * 3/2);
+            ctx.stroke();
+            // Bottom left
+            ctx.beginPath();
+            ctx.arc(x, y + size, radius, Math.PI * 3/2, Math.PI * 2);
+            ctx.stroke();
+        },
+
+        // Concentric circles
+        (x, y, size) => {
+            const center = size/2;
+            for(let i = 1; i <= 3; i++) {
+                Shapes.circle(
+                    x + center,
+                    y + center,
+                    size,
+                    {radius: (size/2) * (i/3)}
+                );
+            }
+        },
+
+        // Nested diamonds
+        (x, y, size) => {
+            const center = size/2;
+            for(let i = 1; i <= 3; i++) {
+                const offset = (size/2) * (i/3);
+                ctx.beginPath();
+                ctx.moveTo(x + center, y + center - offset);
+                ctx.lineTo(x + center + offset, y + center);
+                ctx.lineTo(x + center, y + center + offset);
+                ctx.lineTo(x + center - offset, y + center);
+                ctx.closePath();
+                ctx.stroke();
+            }
+        },
+
+        // Radiating arcs
+        (x, y, size) => {
+            const center = size/2;
+            const radius = size/3;
+            for(let i = 0; i < 4; i++) {
+                const startAngle = (Math.PI/2) * i;
+                ctx.beginPath();
+                ctx.arc(x + center, y + center, radius, startAngle, startAngle + Math.PI/2);
+                ctx.stroke();
+            }
+        },
+
+        // Stacked semicircles
+        (x, y, size) => {
+            const width = size * 0.8;
+            for(let i = 0; i < 3; i++) {
+                ctx.beginPath();
+                ctx.arc(
+                    x + size/2,
+                    y + (size/3) * (i + 1),
+                    width/2,
+                    0,
+                    Math.PI,
+                    i % 2 === 0
+                );
+                ctx.stroke();
+            }
+        }
+    ]
+};
+
+/**
+ * Layout System
+ * Handles grid layout and composition
+ * @namespace Layout
+ */
+const Layout = {
+    /**
+     * Calculates layout metrics for the grid
+     * @returns {Object} Layout calculations
+     */
+    calculateMetrics: () => {
+        const availableHeight = CONFIG.canvas.height - 
+            (CONFIG.grid.topMargin + CONFIG.grid.bottomMargin);
+        
+        const totalPatternHeight = CONFIG.grid.rows * CONFIG.grid.patternSize;
+        const totalGapHeight = availableHeight - totalPatternHeight;
+        const rowGap = totalGapHeight / (CONFIG.grid.rows - 1);
+        
+        const totalWidth = CONFIG.grid.patternSize * CONFIG.grid.columns;
+        const xOffset = (CONFIG.canvas.width - totalWidth) / 2;
+        
+        return { rowGap, xOffset };
+    },
+
+    /**
+     * Draws a row of patterns
+     */
+    drawRow: (xOffset, y, size) => {
+        const gutter = size * CONFIG.grid.gutterRatio;
+        const patternSize = size * CONFIG.grid.patternRatio;
+        
+        const patterns = Utils.shuffle(patternGenerators);
+        Utils.range(0, CONFIG.grid.columns).forEach(i => {
+            const xPos = xOffset + i * size + gutter;
+            const yPos = y + gutter;
+            patterns[i](xPos, yPos, patternSize);
+        });
+    },
+
+    /**
+     * Draws the complete grid
+     */
+    drawGrid: () => {
+        ctx.clearRect(0, 0, CONFIG.canvas.width, CONFIG.canvas.height);
+        
+        ctx.strokeStyle = CONFIG.style.strokeColor;
+        ctx.lineWidth = CONFIG.style.strokeWidth;
+        
+        const { rowGap, xOffset } = Layout.calculateMetrics();
+        
+        Utils.range(0, CONFIG.grid.rows).forEach(i => {
+            const y = CONFIG.grid.topMargin + 
+                i * (CONFIG.grid.patternSize + rowGap);
+            Layout.drawRow(xOffset, y, CONFIG.grid.patternSize);
+        });
+    }
+};
+
+// Generate pattern instances
+const patternGenerators = Utils.range(0, 10)
+    .map(() => Patterns.createGenerator(
+        Utils.randomChoice(Patterns.types)
+    ));
+
+// Initialize and set up interaction
+Layout.drawGrid();
+canvas.addEventListener('click', Layout.drawGrid);
\ No newline at end of file
diff --git a/html/simple-shape/docs/ContextManager.html b/html/simple-shape/docs/ContextManager.html
new file mode 100644
index 0000000..186b90b
--- /dev/null
+++ b/html/simple-shape/docs/ContextManager.html
@@ -0,0 +1,671 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Namespace: ContextManager</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Namespace: ContextManager</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2>ContextManager</h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+            <div class="description">Drawing Context Manager
+Handles canvas context state management using functional composition</div>
+        
+
+        
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="app.js.html">app.js</a>, <a href="app.js.html#line85">line 85</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+        
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id=".withContext"><span class="type-signature">(static) </span>withContext<span class="signature">(drawFn)</span><span class="type-signature"> &rarr; {function}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Executes a drawing operation with saved context state
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>drawFn</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">function</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Drawing function to execute</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="app.js.html">app.js</a>, <a href="app.js.html#line96">line 96</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">function</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id=".withRotation"><span class="type-signature">(static) </span>withRotation<span class="signature">(angle, x, y)</span><span class="type-signature"> &rarr; {function}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Applies a rotation transformation around a point
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>angle</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Rotation angle in radians</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Center X coordinate</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Center Y coordinate</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="app.js.html">app.js</a>, <a href="app.js.html#line120">line 120</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">function</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id=".withTranslation"><span class="type-signature">(static) </span>withTranslation<span class="signature">(x, y)</span><span class="type-signature"> &rarr; {function}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Applies a translation transformation
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">X translation</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Y translation</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="app.js.html">app.js</a>, <a href="app.js.html#line108">line 108</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">function</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+    
+
+    
+
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="ContextManager.html">ContextManager</a></li><li><a href="Layout.html">Layout</a></li><li><a href="Patterns.html">Patterns</a></li><li><a href="Shapes.html">Shapes</a></li><li><a href="Utils.html">Utils</a></li></ul><h3>Global</h3><ul><li><a href="global.html#CONFIG">CONFIG</a></li><li><a href="global.html#canvas">canvas</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.3</a> on Mon Feb 17 2025 15:13:39 GMT-0500 (Eastern Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/html/simple-shape/docs/Layout.html b/html/simple-shape/docs/Layout.html
new file mode 100644
index 0000000..344b4df
--- /dev/null
+++ b/html/simple-shape/docs/Layout.html
@@ -0,0 +1,423 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Namespace: Layout</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Namespace: Layout</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2>Layout</h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+            <div class="description">Layout System
+Handles grid layout and composition</div>
+        
+
+        
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="app.js.html">app.js</a>, <a href="app.js.html#line398">line 398</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+        
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id=".calculateMetrics"><span class="type-signature">(static) </span>calculateMetrics<span class="signature">()</span><span class="type-signature"> &rarr; {Object}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Calculates layout metrics for the grid
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="app.js.html">app.js</a>, <a href="app.js.html#line408">line 408</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    Layout calculations
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Object</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id=".drawGrid"><span class="type-signature">(static) </span>drawGrid<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Draws the complete grid
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="app.js.html">app.js</a>, <a href="app.js.html#line440">line 440</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id=".drawRow"><span class="type-signature">(static) </span>drawRow<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Draws a row of patterns
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="app.js.html">app.js</a>, <a href="app.js.html#line425">line 425</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="ContextManager.html">ContextManager</a></li><li><a href="Layout.html">Layout</a></li><li><a href="Patterns.html">Patterns</a></li><li><a href="Shapes.html">Shapes</a></li><li><a href="Utils.html">Utils</a></li></ul><h3>Global</h3><ul><li><a href="global.html#CONFIG">CONFIG</a></li><li><a href="global.html#canvas">canvas</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.3</a> on Mon Feb 17 2025 15:13:39 GMT-0500 (Eastern Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/html/simple-shape/docs/Patterns.html b/html/simple-shape/docs/Patterns.html
new file mode 100644
index 0000000..829041f
--- /dev/null
+++ b/html/simple-shape/docs/Patterns.html
@@ -0,0 +1,371 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Namespace: Patterns</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Namespace: Patterns</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2>Patterns</h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+            <div class="description">Pattern Generator System</div>
+        
+
+        
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="app.js.html">app.js</a>, <a href="app.js.html#line170">line 170</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+        
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id=".types"><span class="type-signature">(static) </span>types<span class="type-signature"> :Array.&lt;function()></span></h4>
+
+
+
+
+<div class="description">
+    Collection of base pattern implementations
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Array.&lt;function()></span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="app.js.html">app.js</a>, <a href="app.js.html#line199">line 199</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id=".createGenerator"><span class="type-signature">(static) </span>createGenerator<span class="signature">(patternFn)</span><span class="type-signature"> &rarr; {function}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Creates a pattern generator with transformation capabilities
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>patternFn</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">function</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Base pattern drawing function</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="app.js.html">app.js</a>, <a href="app.js.html#line180">line 180</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    Enhanced pattern generator
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">function</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+    
+
+    
+
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="ContextManager.html">ContextManager</a></li><li><a href="Layout.html">Layout</a></li><li><a href="Patterns.html">Patterns</a></li><li><a href="Shapes.html">Shapes</a></li><li><a href="Utils.html">Utils</a></li></ul><h3>Global</h3><ul><li><a href="global.html#CONFIG">CONFIG</a></li><li><a href="global.html#canvas">canvas</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.3</a> on Mon Feb 17 2025 15:13:39 GMT-0500 (Eastern Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/html/simple-shape/docs/Shapes.html b/html/simple-shape/docs/Shapes.html
new file mode 100644
index 0000000..716e63a
--- /dev/null
+++ b/html/simple-shape/docs/Shapes.html
@@ -0,0 +1,436 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Namespace: Shapes</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Namespace: Shapes</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2>Shapes</h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+            <div class="description">Shape Factory Pattern</div>
+        
+
+        
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="app.js.html">app.js</a>, <a href="app.js.html#line128">line 128</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+        
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id=".circle"><span class="type-signature">(static) </span>circle<span class="signature">(x, y, size, params)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Creates a circle with optional fill
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Center X coordinate</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Center Y coordinate</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>size</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Reference size for radius calculation</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>params</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Object</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Optional parameters for customization
+                <h6>Properties</h6>
+                
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+        <th>Attributes</th>
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>radius</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+
+            
+                <td class="attributes">
+                
+                    &lt;optional><br>
+                
+
+                
+
+                
+                </td>
+            
+
+            
+
+            <td class="description last">Optional explicit radius</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>fill</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">boolean</span>
+
+
+            
+            </td>
+
+            
+                <td class="attributes">
+                
+                    &lt;optional><br>
+                
+
+                
+
+                
+                </td>
+            
+
+            
+
+            <td class="description last">Whether to fill the circle</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+            </td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="app.js.html">app.js</a>, <a href="app.js.html#line142">line 142</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="ContextManager.html">ContextManager</a></li><li><a href="Layout.html">Layout</a></li><li><a href="Patterns.html">Patterns</a></li><li><a href="Shapes.html">Shapes</a></li><li><a href="Utils.html">Utils</a></li></ul><h3>Global</h3><ul><li><a href="global.html#CONFIG">CONFIG</a></li><li><a href="global.html#canvas">canvas</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.3</a> on Mon Feb 17 2025 15:13:39 GMT-0500 (Eastern Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/html/simple-shape/docs/Utils.html b/html/simple-shape/docs/Utils.html
new file mode 100644
index 0000000..367387e
--- /dev/null
+++ b/html/simple-shape/docs/Utils.html
@@ -0,0 +1,985 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Namespace: Utils</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Namespace: Utils</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2>Utils</h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+            <div class="description">Utility Functions Module
+Pure functions for common operations</div>
+        
+
+        
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="app.js.html">app.js</a>, <a href="app.js.html#line37">line 37</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+        
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id=".random"><span class="type-signature">(static) </span>random<span class="signature">(min, max)</span><span class="type-signature"> &rarr; {number}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Generates a random number within a range
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>min</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Minimum value</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>max</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Maximum value</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="app.js.html">app.js</a>, <a href="app.js.html#line49">line 49</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">number</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id=".randomChoice"><span class="type-signature">(static) </span>randomChoice<span class="signature">(arr)</span><span class="type-signature"> &rarr; {*}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Randomly selects an item from an array
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>arr</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Array</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Source array</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="app.js.html">app.js</a>, <a href="app.js.html#line64">line 64</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">*</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id=".randomInt"><span class="type-signature">(static) </span>randomInt<span class="signature">(min, max)</span><span class="type-signature"> &rarr; {number}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Generates a random integer within a range
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>min</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Minimum value</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>max</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Maximum value</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="app.js.html">app.js</a>, <a href="app.js.html#line57">line 57</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">number</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id=".range"><span class="type-signature">(static) </span>range<span class="signature">(start, end)</span><span class="type-signature"> &rarr; {Array.&lt;number>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Creates a range array of numbers
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>start</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Start value</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>end</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">End value</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="app.js.html">app.js</a>, <a href="app.js.html#line79">line 79</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Array.&lt;number></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id=".shuffle"><span class="type-signature">(static) </span>shuffle<span class="signature">(arr)</span><span class="type-signature"> &rarr; {Array}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fisher-Yates shuffle implementation
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>arr</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Array</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Array to shuffle</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="app.js.html">app.js</a>, <a href="app.js.html#line71">line 71</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    New shuffled array
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Array</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+    
+
+    
+
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="ContextManager.html">ContextManager</a></li><li><a href="Layout.html">Layout</a></li><li><a href="Patterns.html">Patterns</a></li><li><a href="Shapes.html">Shapes</a></li><li><a href="Utils.html">Utils</a></li></ul><h3>Global</h3><ul><li><a href="global.html#CONFIG">CONFIG</a></li><li><a href="global.html#canvas">canvas</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.3</a> on Mon Feb 17 2025 15:13:39 GMT-0500 (Eastern Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/html/simple-shape/docs/app.js.html b/html/simple-shape/docs/app.js.html
new file mode 100644
index 0000000..613c89f
--- /dev/null
+++ b/html/simple-shape/docs/app.js.html
@@ -0,0 +1,514 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: app.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: app.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/**
+ * Configuration object for application-wide settings
+ * Centralizes magic numbers and configuration values
+ * @constant {Object}
+ */
+const CONFIG = {
+    canvas: {
+        dpi: 300,
+        width: 8.5 * 300, // 8.5in at 300dpi
+        height: 11 * 300, // 11in at 300dpi
+    },
+    grid: {
+        rows: 4,
+        columns: 5,
+        topMargin: 100,
+        bottomMargin: 300,
+        patternSize: 400,
+        gutterRatio: 0.1, // 10% of pattern size
+        patternRatio: 0.8  // 80% of space for pattern
+    },
+    style: {
+        strokeWidth: 4,
+        strokeColor: '#000'
+    }
+};
+
+/**
+ * Canvas Setup and Configuration
+ * This section initializes a high-resolution canvas optimized for both screen display and printing.
+ */
+const canvas = document.getElementById('canvas');
+const ctx = canvas.getContext('2d');
+
+canvas.width = CONFIG.canvas.width;
+canvas.height = CONFIG.canvas.height;
+
+/**
+ * Utility Functions Module
+ * Pure functions for common operations
+ * @namespace Utils
+ */
+const Utils = {
+    /**
+     * Generates a random number within a range
+     * @param {number} min - Minimum value
+     * @param {number} max - Maximum value
+     * @returns {number}
+     */
+    random: (min, max) => Math.random() * (max - min) + min,
+    
+    /**
+     * Generates a random integer within a range
+     * @param {number} min - Minimum value
+     * @param {number} max - Maximum value
+     * @returns {number}
+     */
+    randomInt: (min, max) => Math.floor(Utils.random(min, max)),
+    
+    /**
+     * Randomly selects an item from an array
+     * @param {Array} arr - Source array
+     * @returns {*}
+     */
+    randomChoice: arr => arr[Math.floor(Math.random() * arr.length)],
+    
+    /**
+     * Fisher-Yates shuffle implementation
+     * @param {Array} arr - Array to shuffle
+     * @returns {Array} New shuffled array
+     */
+    shuffle: arr => [...arr].sort(() => Math.random() - 0.5),
+    
+    /**
+     * Creates a range array of numbers
+     * @param {number} start - Start value
+     * @param {number} end - End value
+     * @returns {Array&lt;number>}
+     */
+    range: (start, end) => Array.from(
+        { length: end - start }, 
+        (_, i) => start + i
+    )
+};
+
+/**
+ * Drawing Context Manager
+ * Handles canvas context state management using functional composition
+ * @namespace ContextManager
+ */
+const ContextManager = {
+    /**
+     * Executes a drawing operation with saved context state
+     * @param {Function} drawFn - Drawing function to execute
+     * @returns {Function}
+     */
+    withContext: drawFn => (...args) => {
+        ctx.save();
+        drawFn(...args);
+        ctx.restore();
+    },
+
+    /**
+     * Applies a translation transformation
+     * @param {number} x - X translation
+     * @param {number} y - Y translation
+     * @returns {Function}
+     */
+    withTranslation: (x, y) => drawFn => (...args) => {
+        ctx.translate(x, y);
+        drawFn(...args);
+    },
+
+    /**
+     * Applies a rotation transformation around a point
+     * @param {number} angle - Rotation angle in radians
+     * @param {number} x - Center X coordinate
+     * @param {number} y - Center Y coordinate
+     * @returns {Function}
+     */
+    withRotation: (angle, x, y) => drawFn => (...args) => {
+        ctx.translate(x, y);
+        ctx.rotate(angle);
+        ctx.translate(-x, -y);
+        drawFn(...args);
+    }
+};
+
+/**
+ * Shape Factory Pattern
+ * @namespace Shapes
+ */
+const Shapes = {
+    /**
+     * Creates a circle with optional fill
+     * @param {number} x - Center X coordinate
+     * @param {number} y - Center Y coordinate
+     * @param {number} size - Reference size for radius calculation
+     * @param {Object} params - Optional parameters for customization
+     * @param {number} [params.radius] - Optional explicit radius
+     * @param {boolean} [params.fill] - Whether to fill the circle
+     */
+    circle: (x, y, size, params = {}) => {
+        const radius = params.radius || size/3;
+        ctx.beginPath();
+        ctx.arc(x, y, radius, 0, Math.PI * 2);
+        params.fill ? ctx.fill() : ctx.stroke();
+    },
+    
+    line: (x1, y1, x2, y2) => {
+        ctx.beginPath();
+        ctx.moveTo(x1, y1);
+        ctx.lineTo(x2, y2);
+        ctx.stroke();
+    },
+    
+    triangle: (x, y, size) => {
+        ctx.beginPath();
+        ctx.moveTo(x, y + size);
+        ctx.lineTo(x + size/2, y);
+        ctx.lineTo(x + size, y + size);
+        ctx.closePath();
+        ctx.stroke();
+    },
+
+    square: (x, y, size) => {
+        ctx.strokeRect(x, y, size, size);
+    }
+};
+
+/**
+ * Pattern Generator System
+ * @namespace Patterns
+ */
+const Patterns = {
+    /**
+     * Creates a pattern generator with transformation capabilities
+     * @param {Function} patternFn - Base pattern drawing function
+     * @returns {Function} Enhanced pattern generator
+     */
+    createGenerator: patternFn => {
+        return ContextManager.withContext((x, y, size) => {
+            const rotation = Math.PI/2 * Utils.randomInt(0, 4);
+            if (rotation > 0) {
+                ContextManager.withRotation(
+                    rotation,
+                    x + size/2,
+                    y + size/2
+                )(patternFn)(x, y, size);
+            } else {
+                patternFn(x, y, size);
+            }
+        });
+    },
+
+    /**
+     * Collection of base pattern implementations
+     * @type {Array&lt;Function>}
+     */
+    types: [
+        /**
+         * Grid-based pattern strategy
+         * Demonstrates use of nested loops for regular grid generation
+         * @param {number} x - Starting X coordinate
+         * @param {number} y - Starting Y coordinate
+         * @param {number} size - Pattern size
+         */
+        (x, y, size) => {
+            const spacing = size/3;
+            for(let i = 0; i &lt; 3; i++) {
+                for(let j = 0; j &lt; 3; j++) {
+                    if((i + j) % 2 === 0) { // Checkerboard pattern
+                        Shapes.circle(
+                            x + spacing/2 + i * spacing,
+                            y + spacing/2 + j * spacing,
+                            spacing/2
+                        );
+                    }
+                }
+            }
+        },
+
+        // Nested squares
+        (x, y, size) => {
+            for(let i = 3; i > 0; i--) {
+                const offset = (3 - i) * size/6;
+                const squareSize = size - offset * 2;
+                Shapes.square(x + offset, y + offset, squareSize);
+            }
+        },
+
+        // Simple flower pattern
+        (x, y, size) => {
+            const center = size/2;
+            const radius = size/4;
+            
+            // Center circle
+            Shapes.circle(x + center, y + center, size/6);
+            
+            // Petals
+            for(let i = 0; i &lt; 6; i++) {
+                const angle = (i / 6) * Math.PI * 2;
+                const petalX = x + center + Math.cos(angle) * radius;
+                const petalY = y + center + Math.sin(angle) * radius;
+                Shapes.circle(petalX, petalY, size/6);
+            }
+        },
+
+        // Triangles in a row
+        (x, y, size) => {
+            const triSize = size/3;
+            for(let i = 0; i &lt; 3; i++) {
+                Shapes.triangle(
+                    x + i * triSize,
+                    y + (i % 2) * triSize/2,
+                    triSize
+                );
+            }
+        },
+
+        // Simple grid of squares
+        (x, y, size) => {
+            const gridSize = size/2;
+            for(let i = 0; i &lt; 2; i++) {
+                for(let j = 0; j &lt; 2; j++) {
+                    Shapes.square(
+                        x + i * gridSize + size/8,
+                        y + j * gridSize + size/8,
+                        gridSize * 0.75
+                    );
+                }
+            }
+        },
+
+        // Alternating circles and squares
+        (x, y, size) => {
+            const spacing = size/2;
+            for(let i = 0; i &lt; 2; i++) {
+                for(let j = 0; j &lt; 2; j++) {
+                    if((i + j) % 2 === 0) {
+                        Shapes.circle(
+                            x + spacing/2 + i * spacing,
+                            y + spacing/2 + j * spacing,
+                            spacing/3
+                        );
+                    } else {
+                        Shapes.square(
+                            x + i * spacing + spacing/6,
+                            y + j * spacing + spacing/6,
+                            spacing * 2/3
+                        );
+                    }
+                }
+            }
+        },
+
+        // Simple star pattern
+        (x, y, size) => {
+            const center = size/2;
+            // Horizontal and vertical lines
+            Shapes.line(x, y + center, x + size, y + center);
+            Shapes.line(x + center, y, x + center, y + size);
+            // Diagonal lines
+            Shapes.line(x, y, x + size, y + size);
+            Shapes.line(x + size, y, x, y + size);
+        },
+
+        // Nested arcs
+        (x, y, size) => {
+            const center = size/2;
+            for(let i = 1; i &lt;= 4; i++) {
+                const radius = (size/2) * (i/4);
+                ctx.beginPath();
+                ctx.arc(x + center, y + center, radius, 0, Math.PI);
+                ctx.stroke();
+            }
+        },
+
+        // Quarter circles in corners
+        (x, y, size) => {
+            const radius = size/2;
+            // Top left
+            ctx.beginPath();
+            ctx.arc(x, y, radius, 0, Math.PI/2);
+            ctx.stroke();
+            // Top right
+            ctx.beginPath();
+            ctx.arc(x + size, y, radius, Math.PI/2, Math.PI);
+            ctx.stroke();
+            // Bottom right
+            ctx.beginPath();
+            ctx.arc(x + size, y + size, radius, Math.PI, Math.PI * 3/2);
+            ctx.stroke();
+            // Bottom left
+            ctx.beginPath();
+            ctx.arc(x, y + size, radius, Math.PI * 3/2, Math.PI * 2);
+            ctx.stroke();
+        },
+
+        // Concentric circles
+        (x, y, size) => {
+            const center = size/2;
+            for(let i = 1; i &lt;= 3; i++) {
+                Shapes.circle(
+                    x + center,
+                    y + center,
+                    size,
+                    {radius: (size/2) * (i/3)}
+                );
+            }
+        },
+
+        // Nested diamonds
+        (x, y, size) => {
+            const center = size/2;
+            for(let i = 1; i &lt;= 3; i++) {
+                const offset = (size/2) * (i/3);
+                ctx.beginPath();
+                ctx.moveTo(x + center, y + center - offset);
+                ctx.lineTo(x + center + offset, y + center);
+                ctx.lineTo(x + center, y + center + offset);
+                ctx.lineTo(x + center - offset, y + center);
+                ctx.closePath();
+                ctx.stroke();
+            }
+        },
+
+        // Radiating arcs
+        (x, y, size) => {
+            const center = size/2;
+            const radius = size/3;
+            for(let i = 0; i &lt; 4; i++) {
+                const startAngle = (Math.PI/2) * i;
+                ctx.beginPath();
+                ctx.arc(x + center, y + center, radius, startAngle, startAngle + Math.PI/2);
+                ctx.stroke();
+            }
+        },
+
+        // Stacked semicircles
+        (x, y, size) => {
+            const width = size * 0.8;
+            for(let i = 0; i &lt; 3; i++) {
+                ctx.beginPath();
+                ctx.arc(
+                    x + size/2,
+                    y + (size/3) * (i + 1),
+                    width/2,
+                    0,
+                    Math.PI,
+                    i % 2 === 0
+                );
+                ctx.stroke();
+            }
+        }
+    ]
+};
+
+/**
+ * Layout System
+ * Handles grid layout and composition
+ * @namespace Layout
+ */
+const Layout = {
+    /**
+     * Calculates layout metrics for the grid
+     * @returns {Object} Layout calculations
+     */
+    calculateMetrics: () => {
+        const availableHeight = CONFIG.canvas.height - 
+            (CONFIG.grid.topMargin + CONFIG.grid.bottomMargin);
+        
+        const totalPatternHeight = CONFIG.grid.rows * CONFIG.grid.patternSize;
+        const totalGapHeight = availableHeight - totalPatternHeight;
+        const rowGap = totalGapHeight / (CONFIG.grid.rows - 1);
+        
+        const totalWidth = CONFIG.grid.patternSize * CONFIG.grid.columns;
+        const xOffset = (CONFIG.canvas.width - totalWidth) / 2;
+        
+        return { rowGap, xOffset };
+    },
+
+    /**
+     * Draws a row of patterns
+     */
+    drawRow: (xOffset, y, size) => {
+        const gutter = size * CONFIG.grid.gutterRatio;
+        const patternSize = size * CONFIG.grid.patternRatio;
+        
+        const patterns = Utils.shuffle(patternGenerators);
+        Utils.range(0, CONFIG.grid.columns).forEach(i => {
+            const xPos = xOffset + i * size + gutter;
+            const yPos = y + gutter;
+            patterns[i](xPos, yPos, patternSize);
+        });
+    },
+
+    /**
+     * Draws the complete grid
+     */
+    drawGrid: () => {
+        ctx.clearRect(0, 0, CONFIG.canvas.width, CONFIG.canvas.height);
+        
+        ctx.strokeStyle = CONFIG.style.strokeColor;
+        ctx.lineWidth = CONFIG.style.strokeWidth;
+        
+        const { rowGap, xOffset } = Layout.calculateMetrics();
+        
+        Utils.range(0, CONFIG.grid.rows).forEach(i => {
+            const y = CONFIG.grid.topMargin + 
+                i * (CONFIG.grid.patternSize + rowGap);
+            Layout.drawRow(xOffset, y, CONFIG.grid.patternSize);
+        });
+    }
+};
+
+// Generate pattern instances
+const patternGenerators = Utils.range(0, 10)
+    .map(() => Patterns.createGenerator(
+        Utils.randomChoice(Patterns.types)
+    ));
+
+// Initialize and set up interaction
+Layout.drawGrid();
+canvas.addEventListener('click', Layout.drawGrid);</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="ContextManager.html">ContextManager</a></li><li><a href="Layout.html">Layout</a></li><li><a href="Patterns.html">Patterns</a></li><li><a href="Shapes.html">Shapes</a></li><li><a href="Utils.html">Utils</a></li></ul><h3>Global</h3><ul><li><a href="global.html#CONFIG">CONFIG</a></li><li><a href="global.html#canvas">canvas</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.3</a> on Mon Feb 17 2025 15:13:39 GMT-0500 (Eastern Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
diff --git a/html/simple-shape/docs/fonts/OpenSans-Bold-webfont.eot b/html/simple-shape/docs/fonts/OpenSans-Bold-webfont.eot
new file mode 100644
index 0000000..5d20d91
--- /dev/null
+++ b/html/simple-shape/docs/fonts/OpenSans-Bold-webfont.eot
Binary files differdiff --git a/html/simple-shape/docs/fonts/OpenSans-Bold-webfont.svg b/html/simple-shape/docs/fonts/OpenSans-Bold-webfont.svg
new file mode 100644
index 0000000..3ed7be4
--- /dev/null
+++ b/html/simple-shape/docs/fonts/OpenSans-Bold-webfont.svg
@@ -0,0 +1,1830 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata></metadata>
+<defs>
+<font id="open_sansbold" horiz-adv-x="1169" >
+<font-face units-per-em="2048" ascent="1638" descent="-410" />
+<missing-glyph horiz-adv-x="532" />
+<glyph unicode="&#xfb01;" horiz-adv-x="1417" d="M41 0zM778 889h-264v-889h-305v889h-168v147l168 82v82q0 191 94 279t301 88q158 0 281 -47l-78 -224q-92 29 -170 29q-65 0 -94 -38.5t-29 -98.5v-70h264v-229zM940 1407q0 149 166 149t166 -149q0 -71 -41.5 -110.5t-124.5 -39.5q-166 0 -166 150zM1258 0h-305v1118 h305v-1118z" />
+<glyph unicode="&#xfb02;" horiz-adv-x="1417" d="M41 0zM778 889h-264v-889h-305v889h-168v147l168 82v82q0 191 94 279t301 88q158 0 281 -47l-78 -224q-92 29 -170 29q-65 0 -94 -38.5t-29 -98.5v-70h264v-229zM1258 0h-305v1556h305v-1556z" />
+<glyph unicode="&#xfb03;" horiz-adv-x="2208" d="M41 0zM778 889h-264v-889h-305v889h-168v147l168 82v82q0 191 94 279t301 88q158 0 281 -47l-78 -224q-92 29 -170 29q-65 0 -94 -38.5t-29 -98.5v-70h264v-229zM1571 889h-264v-889h-305v889h-168v147l168 82v82q0 191 94 279t301 88q158 0 281 -47l-78 -224 q-92 29 -170 29q-65 0 -94 -38.5t-29 -98.5v-70h264v-229zM1730 1407q0 149 166 149t166 -149q0 -71 -41.5 -110.5t-124.5 -39.5q-166 0 -166 150zM2048 0h-305v1118h305v-1118z" />
+<glyph unicode="&#xfb04;" horiz-adv-x="2208" d="M41 0zM778 889h-264v-889h-305v889h-168v147l168 82v82q0 191 94 279t301 88q158 0 281 -47l-78 -224q-92 29 -170 29q-65 0 -94 -38.5t-29 -98.5v-70h264v-229zM1571 889h-264v-889h-305v889h-168v147l168 82v82q0 191 94 279t301 88q158 0 281 -47l-78 -224 q-92 29 -170 29q-65 0 -94 -38.5t-29 -98.5v-70h264v-229zM2048 0h-305v1556h305v-1556z" />
+<glyph horiz-adv-x="2048" />
+<glyph horiz-adv-x="2048" />
+<glyph unicode="&#xd;" horiz-adv-x="1044" />
+<glyph unicode=" "  horiz-adv-x="532" />
+<glyph unicode="&#x09;" horiz-adv-x="532" />
+<glyph unicode="&#xa0;" horiz-adv-x="532" />
+<glyph unicode="!" horiz-adv-x="586" d="M416 485h-244l-51 977h346zM117 143q0 84 45 127t131 43q83 0 128.5 -44t45.5 -126q0 -79 -46 -124.5t-128 -45.5q-84 0 -130 44.5t-46 125.5z" />
+<glyph unicode="&#x22;" horiz-adv-x="967" d="M412 1462l-41 -528h-197l-41 528h279zM834 1462l-41 -528h-197l-41 528h279z" />
+<glyph unicode="#" horiz-adv-x="1323" d="M999 844l-47 -232h258v-206h-297l-77 -406h-220l78 406h-194l-76 -406h-215l74 406h-238v206h277l47 232h-252v209h289l77 407h219l-77 -407h198l78 407h215l-78 -407h240v-209h-279zM539 612h196l47 232h-196z" />
+<glyph unicode="$" d="M1092 457q0 -159 -115 -255.5t-322 -115.5v-205h-137v201q-244 5 -428 86v264q87 -43 209.5 -76t218.5 -39v310l-67 26q-198 78 -280.5 169.5t-82.5 226.5q0 145 113.5 238.5t316.5 113.5v153h137v-149q229 -10 414 -92l-94 -234q-156 64 -320 78v-295 q195 -75 277.5 -130t121 -121t38.5 -154zM791 442q0 42 -34 71t-102 60v-249q136 23 136 118zM389 1049q0 -44 30.5 -72.5t98.5 -58.5v235q-129 -19 -129 -104z" />
+<glyph unicode="%" horiz-adv-x="1845" d="M315 1024q0 -127 22.5 -189.5t72.5 -62.5q96 0 96 252q0 250 -96 250q-50 0 -72.5 -61.5t-22.5 -188.5zM758 1026q0 -230 -89 -345.5t-261 -115.5q-165 0 -255 118.5t-90 342.5q0 457 345 457q169 0 259.5 -118.5t90.5 -338.5zM1446 1462l-811 -1462h-240l811 1462h240z M1339 440q0 -127 22.5 -189.5t72.5 -62.5q96 0 96 252q0 250 -96 250q-50 0 -72.5 -61.5t-22.5 -188.5zM1782 442q0 -229 -89 -344.5t-261 -115.5q-165 0 -255 118.5t-90 341.5q0 457 345 457q169 0 259.5 -118.5t90.5 -338.5z" />
+<glyph unicode="&#x26;" horiz-adv-x="1536" d="M1536 0h-377l-115 113q-191 -133 -432 -133q-244 0 -387 112t-143 303q0 137 60.5 233.5t207.5 180.5q-75 86 -109 164.5t-34 171.5q0 152 116.5 245t311.5 93q186 0 297.5 -86.5t111.5 -231.5q0 -119 -69 -217.5t-223 -187.5l284 -277q71 117 123 301h318 q-36 -135 -99 -263.5t-143 -227.5zM403 424q0 -86 64.5 -137t165.5 -51q126 0 227 61l-332 330q-58 -44 -91.5 -92t-33.5 -111zM762 1133q0 53 -36 83.5t-93 30.5q-67 0 -105.5 -32t-38.5 -91q0 -88 95 -194q86 48 132 94.5t46 108.5z" />
+<glyph unicode="'" horiz-adv-x="545" d="M412 1462l-41 -528h-197l-41 528h279z" />
+<glyph unicode="(" horiz-adv-x="694" d="M82 561q0 265 77.5 496t223.5 405h250q-141 -193 -213 -424t-72 -475q0 -245 73.5 -473.5t209.5 -413.5h-248q-147 170 -224 397t-77 488z" />
+<glyph unicode=")" horiz-adv-x="694" d="M612 561q0 -263 -77.5 -490t-223.5 -395h-248q135 184 209 412.5t74 474.5q0 244 -72 475t-213 424h250q147 -175 224 -406.5t77 -494.5z" />
+<glyph unicode="*" horiz-adv-x="1116" d="M688 1556l-41 -368l373 104l33 -252l-340 -24l223 -297l-227 -121l-156 313l-137 -311l-236 119l221 297l-338 26l39 250l365 -104l-41 368h262z" />
+<glyph unicode="+" d="M475 612h-387v219h387v390h219v-390h387v-219h-387v-385h-219v385z" />
+<glyph unicode="," horiz-adv-x="594" d="M459 215q-52 -202 -176 -479h-220q65 266 101 502h280z" />
+<glyph unicode="-" horiz-adv-x="659" d="M61 424v250h537v-250h-537z" />
+<glyph unicode="." horiz-adv-x="584" d="M117 143q0 84 45 127t131 43q83 0 128.5 -44t45.5 -126q0 -79 -46 -124.5t-128 -45.5q-84 0 -130 44.5t-46 125.5z" />
+<glyph unicode="/" horiz-adv-x="846" d="M836 1462l-545 -1462h-277l545 1462h277z" />
+<glyph unicode="0" d="M1096 731q0 -383 -125.5 -567t-386.5 -184q-253 0 -381.5 190t-128.5 561q0 387 125 570.5t385 183.5q253 0 382.5 -192t129.5 -562zM381 731q0 -269 46.5 -385.5t156.5 -116.5q108 0 156 118t48 384q0 269 -48.5 386.5t-155.5 117.5q-109 0 -156 -117.5t-47 -386.5z" />
+<glyph unicode="1" d="M846 0h-309v846l3 139l5 152q-77 -77 -107 -101l-168 -135l-149 186l471 375h254v-1462z" />
+<glyph unicode="2" d="M1104 0h-1022v215l367 371q163 167 213 231.5t72 119.5t22 114q0 88 -48.5 131t-129.5 43q-85 0 -165 -39t-167 -111l-168 199q108 92 179 130t155 58.5t188 20.5q137 0 242 -50t163 -140t58 -206q0 -101 -35.5 -189.5t-110 -181.5t-262.5 -265l-188 -177v-14h637v-260z " />
+<glyph unicode="3" d="M1047 1135q0 -137 -83 -233t-233 -132v-6q177 -22 268 -107.5t91 -230.5q0 -211 -153 -328.5t-437 -117.5q-238 0 -422 79v263q85 -43 187 -70t202 -27q153 0 226 52t73 167q0 103 -84 146t-268 43h-111v237h113q170 0 248.5 44.5t78.5 152.5q0 166 -208 166 q-72 0 -146.5 -24t-165.5 -83l-143 213q200 144 477 144q227 0 358.5 -92t131.5 -256z" />
+<glyph unicode="4" d="M1137 303h-176v-303h-302v303h-624v215l641 944h285v-919h176v-240zM659 543v248q0 62 5 180t8 137h-8q-37 -82 -89 -160l-268 -405h352z" />
+<glyph unicode="5" d="M614 934q212 0 337.5 -119t125.5 -326q0 -245 -151 -377t-432 -132q-244 0 -394 79v267q79 -42 184 -68.5t199 -26.5q283 0 283 232q0 221 -293 221q-53 0 -117 -10.5t-104 -22.5l-123 66l55 745h793v-262h-522l-27 -287l35 7q61 14 151 14z" />
+<glyph unicode="6" d="M72 621q0 434 183.5 646t549.5 212q125 0 196 -15v-247q-89 20 -176 20q-159 0 -259.5 -48t-150.5 -142t-59 -267h13q99 170 317 170q196 0 307 -123t111 -340q0 -234 -132 -370.5t-366 -136.5q-162 0 -282.5 75t-186 219t-65.5 347zM600 227q99 0 152 66.5t53 189.5 q0 107 -49.5 168.5t-149.5 61.5q-94 0 -160.5 -61t-66.5 -142q0 -119 62.5 -201t158.5 -82z" />
+<glyph unicode="7" d="M227 0l549 1200h-721v260h1049v-194l-553 -1266h-324z" />
+<glyph unicode="8" d="M586 1481q210 0 338.5 -95.5t128.5 -257.5q0 -112 -62 -199.5t-200 -156.5q164 -88 235.5 -183.5t71.5 -209.5q0 -180 -141 -289.5t-371 -109.5q-240 0 -377 102t-137 289q0 125 66.5 222t213.5 171q-125 79 -180 169t-55 197q0 157 130 254t339 97zM358 389 q0 -86 60 -134t164 -48q115 0 172 49.5t57 130.5q0 67 -56.5 125.5t-183.5 124.5q-213 -98 -213 -248zM584 1255q-79 0 -127.5 -40.5t-48.5 -108.5q0 -60 38.5 -107.5t139.5 -97.5q98 46 137 94t39 111q0 69 -50 109t-128 40z" />
+<glyph unicode="9" d="M1098 838q0 -432 -182 -645t-551 -213q-130 0 -197 14v248q84 -21 176 -21q155 0 255 45.5t153 143t61 268.5h-12q-58 -94 -134 -132t-190 -38q-191 0 -301 122.5t-110 340.5q0 235 133.5 371.5t363.5 136.5q162 0 283.5 -76t186.5 -220.5t65 -344.5zM569 1231 q-96 0 -150 -66t-54 -190q0 -106 49 -168t149 -62q94 0 161 61.5t67 141.5q0 119 -62.5 201t-159.5 82z" />
+<glyph unicode=":" horiz-adv-x="584" d="M117 143q0 84 45 127t131 43q83 0 128.5 -44t45.5 -126q0 -79 -46 -124.5t-128 -45.5q-84 0 -130 44.5t-46 125.5zM117 969q0 84 45 127t131 43q83 0 128.5 -44t45.5 -126q0 -81 -46.5 -125.5t-127.5 -44.5q-84 0 -130 44t-46 126z" />
+<glyph unicode=";" horiz-adv-x="594" d="M444 238l15 -23q-52 -202 -176 -479h-220q65 266 101 502h280zM117 969q0 84 45 127t131 43q83 0 128.5 -44t45.5 -126q0 -81 -46.5 -125.5t-127.5 -44.5q-84 0 -130 44t-46 126z" />
+<glyph unicode="&#x3c;" d="M1081 203l-993 438v143l993 496v-240l-684 -317l684 -281v-239z" />
+<glyph unicode="=" d="M88 805v219h993v-219h-993zM88 418v219h993v-219h-993z" />
+<glyph unicode="&#x3e;" d="M88 442l684 281l-684 317v240l993 -496v-143l-993 -438v239z" />
+<glyph unicode="?" horiz-adv-x="977" d="M276 485v74q0 96 41 167t150 151q105 75 138.5 122t33.5 105q0 65 -48 99t-134 34q-150 0 -342 -98l-109 219q223 125 473 125q206 0 327.5 -99t121.5 -264q0 -110 -50 -190t-190 -180q-96 -71 -121.5 -108t-25.5 -97v-60h-265zM244 143q0 84 45 127t131 43 q83 0 128.5 -44t45.5 -126q0 -79 -46 -124.5t-128 -45.5q-84 0 -130 44.5t-46 125.5z" />
+<glyph unicode="@" horiz-adv-x="1837" d="M1735 752q0 -144 -46 -263.5t-130 -187.5t-195 -68q-74 0 -131 35.5t-82 93.5h-16q-108 -129 -275 -129q-177 0 -279 106.5t-102 291.5q0 211 134 340t350 129q86 0 189.5 -16.5t170.5 -39.5l-23 -489q0 -139 76 -139q64 0 102 93.5t38 244.5q0 161 -67 284.5 t-188.5 188.5t-277.5 65q-202 0 -351 -83t-228.5 -239.5t-79.5 -361.5q0 -276 147.5 -423.5t427.5 -147.5q106 0 233 23.5t250 68.5v-192q-214 -91 -475 -91q-380 0 -592.5 200t-212.5 556q0 247 108.5 448.5t309 316t461.5 114.5q220 0 393 -90t267 -256t94 -383zM711 627 q0 -211 172 -211q90 0 137 63.5t57 206.5l13 221q-51 11 -115 11q-125 0 -194.5 -78t-69.5 -213z" />
+<glyph unicode="A" horiz-adv-x="1413" d="M1079 0l-106 348h-533l-106 -348h-334l516 1468h379l518 -1468h-334zM899 608q-147 473 -165.5 535t-26.5 98q-33 -128 -189 -633h381z" />
+<glyph unicode="B" horiz-adv-x="1376" d="M184 1462h455q311 0 451.5 -88.5t140.5 -281.5q0 -131 -61.5 -215t-163.5 -101v-10q139 -31 200.5 -116t61.5 -226q0 -200 -144.5 -312t-392.5 -112h-547v1462zM494 883h180q126 0 182.5 39t56.5 129q0 84 -61.5 120.5t-194.5 36.5h-163v-325zM494 637v-381h202 q128 0 189 49t61 150q0 182 -260 182h-192z" />
+<glyph unicode="C" horiz-adv-x="1305" d="M805 1225q-175 0 -271 -131.5t-96 -366.5q0 -489 367 -489q154 0 373 77v-260q-180 -75 -402 -75q-319 0 -488 193.5t-169 555.5q0 228 83 399.5t238.5 263t364.5 91.5q213 0 428 -103l-100 -252q-82 39 -165 68t-163 29z" />
+<glyph unicode="D" horiz-adv-x="1516" d="M1397 745q0 -361 -205.5 -553t-593.5 -192h-414v1462h459q358 0 556 -189t198 -528zM1075 737q0 471 -416 471h-165v-952h133q448 0 448 481z" />
+<glyph unicode="E" horiz-adv-x="1147" d="M1026 0h-842v1462h842v-254h-532v-321h495v-254h-495v-377h532v-256z" />
+<glyph unicode="F" horiz-adv-x="1124" d="M489 0h-305v1462h838v-254h-533v-377h496v-253h-496v-578z" />
+<glyph unicode="G" horiz-adv-x="1483" d="M739 821h580v-758q-141 -46 -265.5 -64.5t-254.5 -18.5q-331 0 -505.5 194.5t-174.5 558.5q0 354 202.5 552t561.5 198q225 0 434 -90l-103 -248q-160 80 -333 80q-201 0 -322 -135t-121 -363q0 -238 97.5 -363.5t283.5 -125.5q97 0 197 20v305h-277v258z" />
+<glyph unicode="H" horiz-adv-x="1567" d="M1382 0h-309v631h-579v-631h-310v1462h310v-573h579v573h309v-1462z" />
+<glyph unicode="I" horiz-adv-x="678" d="M184 0v1462h310v-1462h-310z" />
+<glyph unicode="J" horiz-adv-x="678" d="M31 -430q-105 0 -183 22v258q80 -20 146 -20q102 0 146 63.5t44 198.5v1370h310v-1368q0 -256 -117 -390t-346 -134z" />
+<glyph unicode="K" horiz-adv-x="1360" d="M1360 0h-352l-383 616l-131 -94v-522h-310v1462h310v-669l122 172l396 497h344l-510 -647z" />
+<glyph unicode="L" horiz-adv-x="1157" d="M184 0v1462h310v-1206h593v-256h-903z" />
+<glyph unicode="M" horiz-adv-x="1931" d="M803 0l-352 1147h-9q19 -350 19 -467v-680h-277v1462h422l346 -1118h6l367 1118h422v-1462h-289v692q0 49 1.5 113t13.5 340h-9l-377 -1145h-284z" />
+<glyph unicode="N" horiz-adv-x="1665" d="M1481 0h-394l-636 1106h-9q19 -293 19 -418v-688h-277v1462h391l635 -1095h7q-15 285 -15 403v692h279v-1462z" />
+<glyph unicode="O" horiz-adv-x="1630" d="M1511 733q0 -363 -180 -558t-516 -195t-516 195t-180 560t180.5 557.5t517.5 192.5t515.5 -194t178.5 -558zM444 733q0 -245 93 -369t278 -124q371 0 371 493q0 494 -369 494q-185 0 -279 -124.5t-94 -369.5z" />
+<glyph unicode="P" horiz-adv-x="1286" d="M494 774h102q143 0 214 56.5t71 164.5q0 109 -59.5 161t-186.5 52h-141v-434zM1194 1006q0 -236 -147.5 -361t-419.5 -125h-133v-520h-310v1462h467q266 0 404.5 -114.5t138.5 -341.5z" />
+<glyph unicode="Q" horiz-adv-x="1630" d="M1511 733q0 -258 -91.5 -432.5t-268.5 -255.5l352 -393h-397l-268 328h-23q-336 0 -516 195t-180 560t180.5 557.5t517.5 192.5t515.5 -194t178.5 -558zM444 733q0 -245 93 -369t278 -124q371 0 371 493q0 494 -369 494q-185 0 -279 -124.5t-94 -369.5z" />
+<glyph unicode="R" horiz-adv-x="1352" d="M494 813h100q147 0 217 49t70 154q0 104 -71.5 148t-221.5 44h-94v-395zM494 561v-561h-310v1462h426q298 0 441 -108.5t143 -329.5q0 -129 -71 -229.5t-201 -157.5q330 -493 430 -637h-344l-349 561h-165z" />
+<glyph unicode="S" horiz-adv-x="1128" d="M1047 406q0 -198 -142.5 -312t-396.5 -114q-234 0 -414 88v288q148 -66 250.5 -93t187.5 -27q102 0 156.5 39t54.5 116q0 43 -24 76.5t-70.5 64.5t-189.5 99q-134 63 -201 121t-107 135t-40 180q0 194 131.5 305t363.5 111q114 0 217.5 -27t216.5 -76l-100 -241 q-117 48 -193.5 67t-150.5 19q-88 0 -135 -41t-47 -107q0 -41 19 -71.5t60.5 -59t196.5 -102.5q205 -98 281 -196.5t76 -241.5z" />
+<glyph unicode="T" horiz-adv-x="1186" d="M748 0h-310v1204h-397v258h1104v-258h-397v-1204z" />
+<glyph unicode="U" horiz-adv-x="1548" d="M1374 1462v-946q0 -162 -72.5 -284t-209.5 -187t-324 -65q-282 0 -438 144.5t-156 395.5v942h309v-895q0 -169 68 -248t225 -79q152 0 220.5 79.5t68.5 249.5v893h309z" />
+<glyph unicode="V" horiz-adv-x="1331" d="M1018 1462h313l-497 -1462h-338l-496 1462h313l275 -870q23 -77 47.5 -179.5t30.5 -142.5q11 92 75 322z" />
+<glyph unicode="W" horiz-adv-x="1980" d="M1608 0h-353l-198 768q-11 41 -37.5 169.5t-30.5 172.5q-6 -54 -30 -173.5t-37 -170.5l-197 -766h-352l-373 1462h305l187 -798q49 -221 71 -383q6 57 27.5 176.5t40.5 185.5l213 819h293l213 -819q14 -55 35 -168t32 -194q10 78 32 194.5t40 188.5l186 798h305z" />
+<glyph unicode="X" horiz-adv-x="1366" d="M1366 0h-354l-340 553l-340 -553h-332l485 754l-454 708h342l315 -526l309 526h334l-459 -725z" />
+<glyph unicode="Y" horiz-adv-x="1278" d="M639 860l305 602h334l-485 -893v-569h-308v559l-485 903h336z" />
+<glyph unicode="Z" horiz-adv-x="1186" d="M1137 0h-1088v201l701 1005h-682v256h1050v-200l-700 -1006h719v-256z" />
+<glyph unicode="[" horiz-adv-x="678" d="M627 -324h-484v1786h484v-211h-224v-1364h224v-211z" />
+<glyph unicode="\" horiz-adv-x="846" d="M289 1462l545 -1462h-277l-545 1462h277z" />
+<glyph unicode="]" horiz-adv-x="678" d="M51 -113h223v1364h-223v211h484v-1786h-484v211z" />
+<glyph unicode="^" horiz-adv-x="1090" d="M8 520l438 950h144l495 -950h-239l-322 643l-280 -643h-236z" />
+<glyph unicode="_" horiz-adv-x="842" d="M846 -324h-850v140h850v-140z" />
+<glyph unicode="`" horiz-adv-x="1243" d="M707 1241q-63 44 -185 142.5t-190 164.5v21h342q63 -101 235 -301v-27h-202z" />
+<glyph unicode="a" horiz-adv-x="1237" d="M870 0l-59 152h-8q-77 -97 -158.5 -134.5t-212.5 -37.5q-161 0 -253.5 92t-92.5 262q0 178 124.5 262.5t375.5 93.5l194 6v49q0 170 -174 170q-134 0 -315 -81l-101 206q193 101 428 101q225 0 345 -98t120 -298v-745h-213zM780 518l-118 -4q-133 -4 -198 -48t-65 -134 q0 -129 148 -129q106 0 169.5 61t63.5 162v92z" />
+<glyph unicode="b" horiz-adv-x="1296" d="M782 1139q198 0 310 -154.5t112 -423.5q0 -277 -115.5 -429t-314.5 -152q-197 0 -309 143h-21l-51 -123h-233v1556h305v-362q0 -69 -12 -221h12q107 166 317 166zM684 895q-113 0 -165 -69.5t-54 -229.5v-33q0 -180 53.5 -258t169.5 -78q94 0 149.5 86.5t55.5 251.5 t-56 247.5t-153 82.5z" />
+<glyph unicode="c" horiz-adv-x="1053" d="M614 -20q-522 0 -522 573q0 285 142 435.5t407 150.5q194 0 348 -76l-90 -236q-72 29 -134 47.5t-124 18.5q-238 0 -238 -338q0 -328 238 -328q88 0 163 23.5t150 73.5v-261q-74 -47 -149.5 -65t-190.5 -18z" />
+<glyph unicode="d" horiz-adv-x="1296" d="M514 -20q-197 0 -309.5 153t-112.5 424q0 275 114.5 428.5t315.5 153.5q211 0 322 -164h10q-23 125 -23 223v358h306v-1556h-234l-59 145h-13q-104 -165 -317 -165zM621 223q117 0 171.5 68t59.5 231v33q0 180 -55.5 258t-180.5 78q-102 0 -158.5 -86.5t-56.5 -251.5 t57 -247.5t163 -82.5z" />
+<glyph unicode="e" horiz-adv-x="1210" d="M623 922q-97 0 -152 -61.5t-63 -174.5h428q-2 113 -59 174.5t-154 61.5zM666 -20q-270 0 -422 149t-152 422q0 281 140.5 434.5t388.5 153.5q237 0 369 -135t132 -373v-148h-721q5 -130 77 -203t202 -73q101 0 191 21t188 67v-236q-80 -40 -171 -59.5t-222 -19.5z" />
+<glyph unicode="f" horiz-adv-x="793" d="M778 889h-264v-889h-305v889h-168v147l168 82v82q0 191 94 279t301 88q158 0 281 -47l-78 -224q-92 29 -170 29q-65 0 -94 -38.5t-29 -98.5v-70h264v-229z" />
+<glyph unicode="g" horiz-adv-x="1157" d="M1133 1118v-155l-175 -45q48 -75 48 -168q0 -180 -125.5 -280.5t-348.5 -100.5l-55 3l-45 5q-47 -36 -47 -80q0 -66 168 -66h190q184 0 280.5 -79t96.5 -232q0 -196 -163.5 -304t-469.5 -108q-234 0 -357.5 81.5t-123.5 228.5q0 101 63 169t185 97q-47 20 -82 65.5 t-35 96.5q0 64 37 106.5t107 83.5q-88 38 -139.5 122t-51.5 198q0 183 119 283t340 100q47 0 111.5 -8.5t82.5 -12.5h390zM270 -158q0 -63 60.5 -99t169.5 -36q164 0 257 45t93 123q0 63 -55 87t-170 24h-158q-84 0 -140.5 -39.5t-56.5 -104.5zM381 752q0 -91 41.5 -144 t126.5 -53q86 0 126 53t40 144q0 202 -166 202q-168 0 -168 -202z" />
+<glyph unicode="h" horiz-adv-x="1346" d="M1192 0h-305v653q0 242 -180 242q-128 0 -185 -87t-57 -282v-526h-305v1556h305v-317q0 -37 -7 -174l-7 -90h16q102 164 324 164q197 0 299 -106t102 -304v-729z" />
+<glyph unicode="i" horiz-adv-x="625" d="M147 1407q0 149 166 149t166 -149q0 -71 -41.5 -110.5t-124.5 -39.5q-166 0 -166 150zM465 0h-305v1118h305v-1118z" />
+<glyph unicode="j" horiz-adv-x="625" d="M70 -492q-117 0 -201 25v240q70 -19 143 -19q77 0 112.5 43t35.5 127v1194h305v-1239q0 -178 -103 -274.5t-292 -96.5zM147 1407q0 149 166 149t166 -149q0 -71 -41.5 -110.5t-124.5 -39.5q-166 0 -166 150z" />
+<glyph unicode="k" horiz-adv-x="1270" d="M453 608l133 170l313 340h344l-444 -485l471 -633h-352l-322 453l-131 -105v-348h-305v1556h305v-694l-16 -254h4z" />
+<glyph unicode="l" horiz-adv-x="625" d="M465 0h-305v1556h305v-1556z" />
+<glyph unicode="m" horiz-adv-x="2011" d="M1161 0h-305v653q0 121 -40.5 181.5t-127.5 60.5q-117 0 -170 -86t-53 -283v-526h-305v1118h233l41 -143h17q45 77 130 120.5t195 43.5q251 0 340 -164h27q45 78 132.5 121t197.5 43q190 0 287.5 -97.5t97.5 -312.5v-729h-306v653q0 121 -40.5 181.5t-127.5 60.5 q-112 0 -167.5 -80t-55.5 -254v-561z" />
+<glyph unicode="n" horiz-adv-x="1346" d="M1192 0h-305v653q0 121 -43 181.5t-137 60.5q-128 0 -185 -85.5t-57 -283.5v-526h-305v1118h233l41 -143h17q51 81 140.5 122.5t203.5 41.5q195 0 296 -105.5t101 -304.5v-729z" />
+<glyph unicode="o" horiz-adv-x="1268" d="M403 561q0 -166 54.5 -251t177.5 -85q122 0 175.5 84.5t53.5 251.5q0 166 -54 249t-177 83q-122 0 -176 -82.5t-54 -249.5zM1176 561q0 -273 -144 -427t-401 -154q-161 0 -284 70.5t-189 202.5t-66 308q0 274 143 426t402 152q161 0 284 -70t189 -201t66 -307z" />
+<glyph unicode="p" horiz-adv-x="1296" d="M774 -20q-197 0 -309 143h-16q16 -140 16 -162v-453h-305v1610h248l43 -145h14q107 166 317 166q198 0 310 -153t112 -425q0 -179 -52.5 -311t-149.5 -201t-228 -69zM684 895q-113 0 -165 -69.5t-54 -229.5v-33q0 -180 53.5 -258t169.5 -78q205 0 205 338 q0 165 -50.5 247.5t-158.5 82.5z" />
+<glyph unicode="q" horiz-adv-x="1296" d="M623 219q116 0 170 66.5t59 232.5v37q0 180 -55.5 258t-178.5 78q-215 0 -215 -338q0 -168 53.5 -251t166.5 -83zM514 -20q-198 0 -310 152.5t-112 424.5q0 274 114.5 428t313.5 154q106 0 185 -40t139 -124h8l27 143h258v-1610h-306v469q0 61 13 168h-13 q-49 -81 -130 -123t-187 -42z" />
+<glyph unicode="r" horiz-adv-x="930" d="M784 1139q62 0 103 -9l-23 -286q-37 10 -90 10q-146 0 -227.5 -75t-81.5 -210v-569h-305v1118h231l45 -188h15q52 94 140.5 151.5t192.5 57.5z" />
+<glyph unicode="s" horiz-adv-x="1018" d="M940 332q0 -172 -119.5 -262t-357.5 -90q-122 0 -208 16.5t-161 48.5v252q85 -40 191.5 -67t187.5 -27q166 0 166 96q0 36 -22 58.5t-76 51t-144 66.5q-129 54 -189.5 100t-88 105.5t-27.5 146.5q0 149 115.5 230.5t327.5 81.5q202 0 393 -88l-92 -220q-84 36 -157 59 t-149 23q-135 0 -135 -73q0 -41 43.5 -71t190.5 -89q131 -53 192 -99t90 -106t29 -143z" />
+<glyph unicode="t" horiz-adv-x="889" d="M631 223q80 0 192 35v-227q-114 -51 -280 -51q-183 0 -266.5 92.5t-83.5 277.5v539h-146v129l168 102l88 236h195v-238h313v-229h-313v-539q0 -65 36.5 -96t96.5 -31z" />
+<glyph unicode="u" horiz-adv-x="1346" d="M952 0l-41 143h-16q-49 -78 -139 -120.5t-205 -42.5q-197 0 -297 105.5t-100 303.5v729h305v-653q0 -121 43 -181.5t137 -60.5q128 0 185 85.5t57 283.5v526h305v-1118h-234z" />
+<glyph unicode="v" horiz-adv-x="1165" d="M426 0l-426 1118h319l216 -637q36 -121 45 -229h6q5 96 45 229l215 637h319l-426 -1118h-313z" />
+<glyph unicode="w" horiz-adv-x="1753" d="M1079 0l-86 391l-116 494h-7l-204 -885h-328l-318 1118h304l129 -495q31 -133 63 -367h6q4 76 35 241l16 85l138 536h336l131 -536q4 -22 12.5 -65t16.5 -91.5t14.5 -95t7.5 -74.5h6q9 72 32 197.5t33 169.5l134 495h299l-322 -1118h-332z" />
+<glyph unicode="x" horiz-adv-x="1184" d="M389 571l-360 547h346l217 -356l219 356h346l-364 -547l381 -571h-347l-235 383l-236 -383h-346z" />
+<glyph unicode="y" horiz-adv-x="1165" d="M0 1118h334l211 -629q27 -82 37 -194h6q11 103 43 194l207 629h327l-473 -1261q-65 -175 -185.5 -262t-281.5 -87q-79 0 -155 17v242q55 -13 120 -13q81 0 141.5 49.5t94.5 149.5l18 55z" />
+<glyph unicode="z" horiz-adv-x="999" d="M938 0h-883v180l518 705h-487v233h834v-198l-504 -687h522v-233z" />
+<glyph unicode="{" horiz-adv-x="807" d="M287 270q0 87 -65.5 133t-190.5 46v239q126 0 191 44t65 126v8v318q0 153 97 215.5t341 62.5v-225q-99 -3 -136.5 -38t-37.5 -103v-299q-6 -188 -234 -222v-12q234 -35 234 -212v-9v-299q0 -68 37 -103t137 -38v-226q-244 0 -341 62.5t-97 216.5v315z" />
+<glyph unicode="|" horiz-adv-x="1128" d="M455 1550h219v-2015h-219v2015z" />
+<glyph unicode="}" horiz-adv-x="807" d="M520 -45q0 -112 -41 -169t-135.5 -83.5t-261.5 -26.5v226q99 2 136.5 36t37.5 105v299v11q0 86 59 139.5t174 70.5v12q-227 34 -233 222v299q0 70 -37 104t-137 37v225q167 0 262 -26.5t135.5 -84t40.5 -167.5v-318v-10q0 -84 61.5 -126t194.5 -42v-239 q-125 0 -190.5 -41t-65.5 -138v-315z" />
+<glyph unicode="~" d="M322 672q-55 0 -117.5 -33.5t-116.5 -87.5v231q103 109 256 109q73 0 137.5 -16t139.5 -48q129 -55 227 -55q53 0 116 32t117 89v-231q-101 -109 -256 -109q-66 0 -126 13t-150 50q-131 56 -227 56z" />
+<glyph unicode="&#xa1;" horiz-adv-x="586" d="M168 606h244l51 -975h-346zM467 948q0 -84 -45 -127t-131 -43q-83 0 -128.5 44t-45.5 126q0 81 46.5 125.5t127.5 44.5q84 0 130 -44t46 -126z" />
+<glyph unicode="&#xa2;" d="M563 176q-420 59 -420 565q0 261 104.5 403t315.5 173v166h178v-158q166 -9 299 -74l-90 -235q-72 29 -134 47t-124 18q-121 0 -179 -83.5t-58 -254.5q0 -327 237 -327q82 0 148 15.5t166 60.5v-254q-127 -61 -265 -70v-188h-178v196z" />
+<glyph unicode="&#xa3;" d="M700 1483q195 0 390 -82l-93 -230q-157 64 -272 64q-78 0 -120 -44.5t-42 -127.5v-193h375v-219h-375v-143q0 -170 -151 -248h718v-260h-1048v248q103 44 141.5 101t38.5 157v145h-178v219h178v195q0 201 114.5 309.5t323.5 108.5z" />
+<glyph unicode="&#xa4;" d="M188 723q0 102 54 197l-129 127l147 147l127 -127q91 53 197 53q105 0 196 -55l127 129l150 -143l-129 -129q53 -89 53 -199q0 -107 -53 -199l125 -125l-146 -145l-127 125q-95 -51 -196 -51q-115 0 -199 51l-125 -123l-145 145l127 125q-54 93 -54 197zM395 723 q0 -77 54.5 -132.5t134.5 -55.5q81 0 136.5 55t55.5 133q0 80 -56.5 135t-135.5 55q-78 0 -133.5 -56t-55.5 -134z" />
+<glyph unicode="&#xa5;" d="M584 860l264 602h313l-383 -747h195v-178h-246v-138h246v-178h-246v-221h-287v221h-247v178h247v138h-247v178h190l-377 747h316z" />
+<glyph unicode="&#xa6;" horiz-adv-x="1128" d="M455 1550h219v-815h-219v815zM455 350h219v-815h-219v815z" />
+<glyph unicode="&#xa7;" horiz-adv-x="995" d="M121 805q0 79 36 144.5t97 105.5q-133 84 -133 233q0 131 111.5 210t293.5 79q170 0 363 -84l-82 -190q-68 32 -138.5 57.5t-148.5 25.5q-81 0 -118 -23t-37 -71q0 -49 49.5 -86t163.5 -82q163 -64 240 -148.5t77 -193.5q0 -177 -125 -260q62 -40 93.5 -92.5t31.5 -126.5 q0 -148 -119.5 -235.5t-320.5 -87.5q-203 0 -349 79v207q81 -41 180 -69.5t169 -28.5q194 0 194 117q0 39 -18.5 63t-63.5 49.5t-125 59.5q-183 74 -252 152.5t-69 195.5zM344 827q0 -67 65 -119t181 -98q78 57 78 146q0 68 -50.5 115t-183.5 96q-37 -14 -63.5 -53.5 t-26.5 -86.5z" />
+<glyph unicode="&#xa8;" horiz-adv-x="1243" d="M279 1405q0 65 37.5 100t101.5 35q66 0 103.5 -37t37.5 -98q0 -60 -38 -96.5t-103 -36.5q-64 0 -101.5 35t-37.5 98zM682 1405q0 70 40.5 102.5t100.5 32.5q65 0 103.5 -36t38.5 -99q0 -61 -39 -97t-103 -36q-60 0 -100.5 32.5t-40.5 100.5z" />
+<glyph unicode="&#xa9;" horiz-adv-x="1704" d="M895 1010q-97 0 -150 -74t-53 -205q0 -280 203 -280q57 0 123 15t123 44v-191q-120 -57 -252 -57q-204 0 -316 125t-112 346q0 220 110.5 342.5t309.5 122.5q149 0 305 -78l-74 -168q-113 58 -217 58zM100 731q0 200 100 375t275 276t377 101q200 0 375 -100t276 -275 t101 -377q0 -197 -97 -370t-272 -277t-383 -104q-207 0 -382 103.5t-272.5 276.5t-97.5 371zM242 731q0 -164 82 -305.5t224 -223t304 -81.5q164 0 305.5 82t223 224t81.5 304q0 164 -82 305.5t-224 223t-304 81.5q-164 0 -305.5 -82t-223 -224t-81.5 -304z" />
+<glyph unicode="&#xaa;" horiz-adv-x="784" d="M561 764l-31 110q-43 -58 -105 -90t-136 -32q-117 0 -179.5 58.5t-62.5 164.5q0 109 82.5 163.5t267.5 63.5l99 4q0 117 -127 117q-81 0 -217 -61l-66 135q66 32 145.5 57t178.5 25q137 0 211.5 -71t74.5 -202v-442h-135zM252 977q0 -38 23 -56t55 -18q77 0 121.5 41.5 t44.5 106.5v36l-99 -6q-145 -10 -145 -104z" />
+<glyph unicode="&#xab;" horiz-adv-x="1260" d="M82 573l371 455l219 -119l-279 -348l279 -348l-219 -119l-371 453v26zM588 573l370 455l220 -119l-279 -348l279 -348l-220 -119l-370 453v26z" />
+<glyph unicode="&#xac;" d="M1081 248h-219v364h-774v219h993v-583z" />
+<glyph unicode="&#xad;" horiz-adv-x="659" d="M61 424zM61 424v250h537v-250h-537z" />
+<glyph unicode="&#xae;" horiz-adv-x="1704" d="M1157 905q0 -170 -143 -233l237 -400h-254l-178 338h-47v-338h-229v916h264q181 0 265.5 -70t84.5 -213zM772 778h31q66 0 94.5 28.5t28.5 94.5q0 65 -28 92t-97 27h-29v-242zM100 731q0 200 100 375t275 276t377 101q200 0 375 -100t276 -275t101 -377q0 -197 -97 -370 t-272 -277t-383 -104q-207 0 -382 103.5t-272.5 276.5t-97.5 371zM242 731q0 -164 82 -305.5t224 -223t304 -81.5q164 0 305.5 82t223 224t81.5 304q0 164 -82 305.5t-224 223t-304 81.5q-164 0 -305.5 -82t-223 -224t-81.5 -304z" />
+<glyph unicode="&#xaf;" horiz-adv-x="1024" d="M1030 1556h-1036v201h1036v-201z" />
+<glyph unicode="&#xb0;" horiz-adv-x="877" d="M92 1137q0 92 46 172t126 127t174 47q92 0 172.5 -46t127 -127t46.5 -173q0 -93 -46.5 -173.5t-126.5 -125.5t-173 -45q-145 0 -245.5 99.5t-100.5 244.5zM283 1137q0 -64 44.5 -109t110.5 -45t111 46t45 108q0 63 -45.5 110t-110.5 47q-64 0 -109.5 -46t-45.5 -111z" />
+<glyph unicode="&#xb1;" d="M475 674h-387v219h387v389h219v-389h387v-219h-387v-385h-219v385zM88 0v219h993v-219h-993z" />
+<glyph unicode="&#xb2;" horiz-adv-x="776" d="M702 586h-647v168l224 219q102 100 130.5 144.5t28.5 94.5q0 38 -24 58t-64 20q-81 0 -180 -88l-123 152q147 129 336 129q137 0 216 -66.5t79 -183.5q0 -85 -47 -160t-176 -192l-105 -95h352v-200z" />
+<glyph unicode="&#xb3;" horiz-adv-x="776" d="M666 1249q0 -143 -170 -198v-13q94 -20 146 -75t52 -134q0 -121 -88 -190.5t-274 -69.5q-143 0 -273 70v190q148 -90 271 -90q143 0 143 107q0 53 -44 79.5t-122 26.5h-112v160h92q83 0 123.5 26t40.5 83q0 38 -25 63t-76 25q-47 0 -89 -19t-99 -59l-101 141 q62 47 137.5 78t178.5 31q127 0 208 -64t81 -168z" />
+<glyph unicode="&#xb4;" horiz-adv-x="1243" d="M332 1241v27q172 200 235 301h342v-21q-52 -52 -177.5 -154.5t-196.5 -152.5h-203z" />
+<glyph unicode="&#xb5;" horiz-adv-x="1352" d="M465 465q0 -121 44 -181.5t138 -60.5q126 0 183 86.5t57 282.5v526h305v-1118h-231l-43 150h-15q-42 -85 -102 -127.5t-148 -42.5q-62 0 -114 23t-84 67l5 -85l5 -157v-320h-305v1610h305v-653z" />
+<glyph unicode="&#xb6;" horiz-adv-x="1341" d="M1167 -260h-161v1616h-166v-1616h-162v819q-62 -18 -146 -18q-216 0 -317.5 125t-101.5 376q0 260 109 387t341 127h604v-1816z" />
+<glyph unicode="&#xb7;" horiz-adv-x="584" d="M117 723q0 84 45 127t131 43q83 0 128.5 -44t45.5 -126q0 -81 -46.5 -125.5t-127.5 -44.5q-84 0 -130 44t-46 126z" />
+<glyph unicode="&#xb8;" horiz-adv-x="420" d="M418 -250q0 -128 -75.5 -185t-233.5 -57q-78 0 -146 21v168q27 -7 72.5 -14t70.5 -7q72 0 72 62q0 83 -166 108l78 154h193l-27 -61q74 -24 118 -74.5t44 -114.5z" />
+<glyph unicode="&#xb9;" horiz-adv-x="776" d="M584 586h-238v446l3 112l5 95q-27 -36 -75 -78l-78 -61l-109 127l301 235h191v-876z" />
+<glyph unicode="&#xba;" horiz-adv-x="795" d="M737 1116q0 -171 -91.5 -267.5t-250.5 -96.5q-153 0 -245.5 98.5t-92.5 265.5q0 169 89.5 266t252.5 97q152 0 245 -98.5t93 -264.5zM260 1116q0 -100 32.5 -150.5t104.5 -50.5t103.5 50.5t31.5 150.5t-31.5 149.5t-103.5 49.5t-104.5 -49.5t-32.5 -149.5z" />
+<glyph unicode="&#xbb;" horiz-adv-x="1260" d="M1178 547l-371 -453l-219 119l278 348l-278 348l219 119l371 -455v-26zM672 547l-371 -453l-219 119l278 348l-278 348l219 119l371 -455v-26z" />
+<glyph unicode="&#xbc;" horiz-adv-x="1804" d="M46 0zM538 586h-238v446l3 112l5 95q-27 -36 -75 -78l-78 -61l-109 127l301 235h191v-876zM1370 1462l-811 -1462h-239l811 1462h239zM1682 152h-125v-151h-238v151h-383v154l385 577h236v-563h125v-168zM1319 320v164q0 86 6 184q-9 -26 -35.5 -80t-41.5 -77l-127 -191 h198z" />
+<glyph unicode="&#xbd;" horiz-adv-x="1804" d="M46 0zM538 586h-238v446l3 112l5 95q-27 -36 -75 -78l-78 -61l-109 127l301 235h191v-876zM1370 1462l-811 -1462h-239l811 1462h239zM1716 1h-647v168l224 219q102 100 130.5 144.5t28.5 94.5q0 38 -24 58t-64 20q-81 0 -180 -88l-123 152q147 129 336 129 q137 0 216 -66.5t79 -183.5q0 -85 -47 -160t-176 -192l-105 -95h352v-200z" />
+<glyph unicode="&#xbe;" horiz-adv-x="1804" d="M90 0zM697 1249q0 -143 -170 -198v-13q94 -20 146 -75t52 -134q0 -121 -88 -190.5t-274 -69.5q-143 0 -273 70v190q148 -90 271 -90q143 0 143 107q0 53 -44 79.5t-122 26.5h-112v160h92q83 0 123.5 26t40.5 83q0 38 -25 63t-76 25q-47 0 -89 -19t-99 -59l-101 141 q62 47 137.5 78t178.5 31q127 0 208 -64t81 -168zM1441 1462l-811 -1462h-239l811 1462h239zM1712 152h-125v-151h-238v151h-383v154l385 577h236v-563h125v-168zM1349 320v164q0 86 6 184q-9 -26 -35.5 -80t-41.5 -77l-127 -191h198z" />
+<glyph unicode="&#xbf;" horiz-adv-x="977" d="M713 606v-74q0 -98 -44.5 -169t-152.5 -148q-109 -78 -137.5 -122t-28.5 -107q0 -57 43.5 -94t132.5 -37q79 0 169 29t186 71l102 -221q-98 -56 -221.5 -90.5t-229.5 -34.5q-220 0 -345.5 96.5t-125.5 265.5q0 108 48.5 187t191.5 184q95 70 121.5 107t26.5 98v59h264z M745 948q0 -84 -45 -127t-131 -43q-83 0 -128.5 44t-45.5 126q0 81 46.5 125.5t127.5 44.5q84 0 130 -44t46 -126z" />
+<glyph unicode="&#xc0;" horiz-adv-x="1413" d="M0 0zM1079 0l-106 348h-533l-106 -348h-334l516 1468h379l518 -1468h-334zM899 608q-147 473 -165.5 535t-26.5 98q-33 -128 -189 -633h381zM713 1579q-63 44 -185 142.5t-190 164.5v21h342q63 -101 235 -301v-27h-202z" />
+<glyph unicode="&#xc1;" horiz-adv-x="1413" d="M0 0zM1079 0l-106 348h-533l-106 -348h-334l516 1468h379l518 -1468h-334zM899 608q-147 473 -165.5 535t-26.5 98q-33 -128 -189 -633h381zM541 1579v27q172 200 235 301h342v-21q-52 -52 -177.5 -154.5t-196.5 -152.5h-203z" />
+<glyph unicode="&#xc2;" horiz-adv-x="1413" d="M0 0zM1079 0l-106 348h-533l-106 -348h-334l516 1468h379l518 -1468h-334zM899 608q-147 473 -165.5 535t-26.5 98q-33 -128 -189 -633h381zM938 1579q-157 93 -234 176q-78 -81 -229 -176h-203v27q189 189 256 301h357q31 -52 107.5 -141.5t148.5 -159.5v-27h-203z" />
+<glyph unicode="&#xc3;" horiz-adv-x="1413" d="M0 0zM1079 0l-106 348h-533l-106 -348h-334l516 1468h379l518 -1468h-334zM899 608q-147 473 -165.5 535t-26.5 98q-33 -128 -189 -633h381zM543 1684q-31 0 -59.5 -26.5t-41.5 -80.5h-149q11 145 82.5 227t189.5 82q41 0 80.5 -16.5t78 -36t75.5 -35.5t73 -16 q31 0 59.5 26t41.5 80h149q-11 -145 -83.5 -227t-188.5 -82q-41 0 -80.5 16.5t-78 36t-75.5 36t-73 16.5z" />
+<glyph unicode="&#xc4;" horiz-adv-x="1413" d="M0 0zM1079 0l-106 348h-533l-106 -348h-334l516 1468h379l518 -1468h-334zM899 608q-147 473 -165.5 535t-26.5 98q-33 -128 -189 -633h381zM365 1743q0 65 37.5 100t101.5 35q66 0 103.5 -37t37.5 -98q0 -60 -38 -96.5t-103 -36.5q-64 0 -101.5 35t-37.5 98zM768 1743 q0 70 40.5 102.5t100.5 32.5q65 0 103.5 -36t38.5 -99q0 -61 -39 -97t-103 -36q-60 0 -100.5 32.5t-40.5 100.5z" />
+<glyph unicode="&#xc5;" horiz-adv-x="1413" d="M0 0zM1079 0l-106 348h-533l-106 -348h-334l516 1468h379l518 -1468h-334zM899 608q-147 473 -165.5 535t-26.5 98q-33 -128 -189 -633h381zM959 1567q0 -108 -71 -174t-183 -66t-180 64t-68 174q0 108 67.5 172.5t180.5 64.5q110 0 182 -66t72 -169zM801 1565 q0 45 -27 70.5t-69 25.5t-69 -25.5t-27 -70.5t24 -71t72 -26q42 0 69 26t27 71z" />
+<glyph unicode="&#xc6;" horiz-adv-x="1950" d="M1829 0h-873v348h-491l-150 -348h-315l655 1462h1174v-254h-563v-321h526v-254h-526v-377h563v-256zM578 608h378v590h-127z" />
+<glyph unicode="&#xc7;" horiz-adv-x="1305" d="M119 0zM805 1225q-175 0 -271 -131.5t-96 -366.5q0 -489 367 -489q154 0 373 77v-260q-180 -75 -402 -75q-319 0 -488 193.5t-169 555.5q0 228 83 399.5t238.5 263t364.5 91.5q213 0 428 -103l-100 -252q-82 39 -165 68t-163 29zM959 -250q0 -128 -75.5 -185t-233.5 -57 q-78 0 -146 21v168q27 -7 72.5 -14t70.5 -7q72 0 72 62q0 83 -166 108l78 154h193l-27 -61q74 -24 118 -74.5t44 -114.5z" />
+<glyph unicode="&#xc8;" horiz-adv-x="1147" d="M184 0zM1026 0h-842v1462h842v-254h-532v-321h495v-254h-495v-377h532v-256zM634 1579q-63 44 -185 142.5t-190 164.5v21h342q63 -101 235 -301v-27h-202z" />
+<glyph unicode="&#xc9;" horiz-adv-x="1147" d="M184 0zM1026 0h-842v1462h842v-254h-532v-321h495v-254h-495v-377h532v-256zM424 1579v27q172 200 235 301h342v-21q-52 -52 -177.5 -154.5t-196.5 -152.5h-203z" />
+<glyph unicode="&#xca;" horiz-adv-x="1147" d="M175 0zM1026 0h-842v1462h842v-254h-532v-321h495v-254h-495v-377h532v-256zM841 1579q-157 93 -234 176q-78 -81 -229 -176h-203v27q189 189 256 301h357q31 -52 107.5 -141.5t148.5 -159.5v-27h-203z" />
+<glyph unicode="&#xcb;" horiz-adv-x="1147" d="M184 0zM1026 0h-842v1462h842v-254h-532v-321h495v-254h-495v-377h532v-256zM272 1743q0 65 37.5 100t101.5 35q66 0 103.5 -37t37.5 -98q0 -60 -38 -96.5t-103 -36.5q-64 0 -101.5 35t-37.5 98zM675 1743q0 70 40.5 102.5t100.5 32.5q65 0 103.5 -36t38.5 -99 q0 -61 -39 -97t-103 -36q-60 0 -100.5 32.5t-40.5 100.5z" />
+<glyph unicode="&#xcc;" horiz-adv-x="678" d="M0 0zM184 0v1462h310v-1462h-310zM317 1579q-63 44 -185 142.5t-190 164.5v21h342q63 -101 235 -301v-27h-202z" />
+<glyph unicode="&#xcd;" horiz-adv-x="678" d="M167 0zM184 0v1462h310v-1462h-310zM167 1579v27q172 200 235 301h342v-21q-52 -52 -177.5 -154.5t-196.5 -152.5h-203z" />
+<glyph unicode="&#xce;" horiz-adv-x="678" d="M0 0zM184 0v1462h310v-1462h-310zM570 1579q-157 93 -234 176q-78 -81 -229 -176h-203v27q189 189 256 301h357q31 -52 107.5 -141.5t148.5 -159.5v-27h-203z" />
+<glyph unicode="&#xcf;" horiz-adv-x="678" d="M0 0zM184 0v1462h310v-1462h-310zM-3 1743q0 65 37.5 100t101.5 35q66 0 103.5 -37t37.5 -98q0 -60 -38 -96.5t-103 -36.5q-64 0 -101.5 35t-37.5 98zM400 1743q0 70 40.5 102.5t100.5 32.5q65 0 103.5 -36t38.5 -99q0 -61 -39 -97t-103 -36q-60 0 -100.5 32.5 t-40.5 100.5z" />
+<glyph unicode="&#xd0;" horiz-adv-x="1516" d="M47 850h137v612h459q358 0 556 -189t198 -528q0 -361 -205.5 -553t-593.5 -192h-414v596h-137v254zM1075 737q0 232 -104 351.5t-314 119.5h-163v-358h237v-254h-237v-340h131q450 0 450 481z" />
+<glyph unicode="&#xd1;" horiz-adv-x="1665" d="M184 0zM1481 0h-394l-636 1106h-9q19 -293 19 -418v-688h-277v1462h391l635 -1095h7q-15 285 -15 403v692h279v-1462zM668 1684q-31 0 -59.5 -26.5t-41.5 -80.5h-149q11 145 82.5 227t189.5 82q41 0 80.5 -16.5t78 -36t75.5 -35.5t73 -16q31 0 59.5 26t41.5 80h149 q-11 -145 -83.5 -227t-188.5 -82q-41 0 -80.5 16.5t-78 36t-75.5 36t-73 16.5z" />
+<glyph unicode="&#xd2;" horiz-adv-x="1630" d="M119 0zM1511 733q0 -363 -180 -558t-516 -195t-516 195t-180 560t180.5 557.5t517.5 192.5t515.5 -194t178.5 -558zM444 733q0 -245 93 -369t278 -124q371 0 371 493q0 494 -369 494q-185 0 -279 -124.5t-94 -369.5zM824 1579q-63 44 -185 142.5t-190 164.5v21h342 q63 -101 235 -301v-27h-202z" />
+<glyph unicode="&#xd3;" horiz-adv-x="1630" d="M119 0zM1511 733q0 -363 -180 -558t-516 -195t-516 195t-180 560t180.5 557.5t517.5 192.5t515.5 -194t178.5 -558zM444 733q0 -245 93 -369t278 -124q371 0 371 493q0 494 -369 494q-185 0 -279 -124.5t-94 -369.5zM658 1579v27q172 200 235 301h342v-21 q-52 -52 -177.5 -154.5t-196.5 -152.5h-203z" />
+<glyph unicode="&#xd4;" horiz-adv-x="1630" d="M119 0zM1511 733q0 -363 -180 -558t-516 -195t-516 195t-180 560t180.5 557.5t517.5 192.5t515.5 -194t178.5 -558zM444 733q0 -245 93 -369t278 -124q371 0 371 493q0 494 -369 494q-185 0 -279 -124.5t-94 -369.5zM1047 1579q-157 93 -234 176q-78 -81 -229 -176h-203 v27q189 189 256 301h357q31 -52 107.5 -141.5t148.5 -159.5v-27h-203z" />
+<glyph unicode="&#xd5;" horiz-adv-x="1630" d="M119 0zM1511 733q0 -363 -180 -558t-516 -195t-516 195t-180 560t180.5 557.5t517.5 192.5t515.5 -194t178.5 -558zM444 733q0 -245 93 -369t278 -124q371 0 371 493q0 494 -369 494q-185 0 -279 -124.5t-94 -369.5zM652 1684q-31 0 -59.5 -26.5t-41.5 -80.5h-149 q11 145 82.5 227t189.5 82q41 0 80.5 -16.5t78 -36t75.5 -35.5t73 -16q31 0 59.5 26t41.5 80h149q-11 -145 -83.5 -227t-188.5 -82q-41 0 -80.5 16.5t-78 36t-75.5 36t-73 16.5z" />
+<glyph unicode="&#xd6;" horiz-adv-x="1630" d="M119 0zM1511 733q0 -363 -180 -558t-516 -195t-516 195t-180 560t180.5 557.5t517.5 192.5t515.5 -194t178.5 -558zM444 733q0 -245 93 -369t278 -124q371 0 371 493q0 494 -369 494q-185 0 -279 -124.5t-94 -369.5zM474 1743q0 65 37.5 100t101.5 35q66 0 103.5 -37 t37.5 -98q0 -60 -38 -96.5t-103 -36.5q-64 0 -101.5 35t-37.5 98zM877 1743q0 70 40.5 102.5t100.5 32.5q65 0 103.5 -36t38.5 -99q0 -61 -39 -97t-103 -36q-60 0 -100.5 32.5t-40.5 100.5z" />
+<glyph unicode="&#xd7;" d="M428 723l-299 301l152 154l301 -299l305 299l153 -150l-305 -305l301 -303l-149 -152l-305 301l-301 -299l-150 152z" />
+<glyph unicode="&#xd8;" horiz-adv-x="1630" d="M1511 733q0 -363 -180 -558t-516 -195q-197 0 -336 65l-90 -135l-162 108l90 136q-198 194 -198 581q0 365 180.5 557.5t517.5 192.5q198 0 344 -70l84 125l160 -104l-88 -131q194 -194 194 -572zM444 733q0 -191 56 -307l506 756q-84 45 -189 45q-185 0 -279 -124.5 t-94 -369.5zM1186 733q0 180 -51 297l-500 -751q76 -39 180 -39q371 0 371 493z" />
+<glyph unicode="&#xd9;" horiz-adv-x="1548" d="M174 0zM1374 1462v-946q0 -162 -72.5 -284t-209.5 -187t-324 -65q-282 0 -438 144.5t-156 395.5v942h309v-895q0 -169 68 -248t225 -79q152 0 220.5 79.5t68.5 249.5v893h309zM750 1579q-63 44 -185 142.5t-190 164.5v21h342q63 -101 235 -301v-27h-202z" />
+<glyph unicode="&#xda;" horiz-adv-x="1548" d="M174 0zM1374 1462v-946q0 -162 -72.5 -284t-209.5 -187t-324 -65q-282 0 -438 144.5t-156 395.5v942h309v-895q0 -169 68 -248t225 -79q152 0 220.5 79.5t68.5 249.5v893h309zM602 1579v27q172 200 235 301h342v-21q-52 -52 -177.5 -154.5t-196.5 -152.5h-203z" />
+<glyph unicode="&#xdb;" horiz-adv-x="1548" d="M174 0zM1374 1462v-946q0 -162 -72.5 -284t-209.5 -187t-324 -65q-282 0 -438 144.5t-156 395.5v942h309v-895q0 -169 68 -248t225 -79q152 0 220.5 79.5t68.5 249.5v893h309zM1006 1579q-157 93 -234 176q-78 -81 -229 -176h-203v27q189 189 256 301h357 q31 -52 107.5 -141.5t148.5 -159.5v-27h-203z" />
+<glyph unicode="&#xdc;" horiz-adv-x="1548" d="M174 0zM1374 1462v-946q0 -162 -72.5 -284t-209.5 -187t-324 -65q-282 0 -438 144.5t-156 395.5v942h309v-895q0 -169 68 -248t225 -79q152 0 220.5 79.5t68.5 249.5v893h309zM433 1743q0 65 37.5 100t101.5 35q66 0 103.5 -37t37.5 -98q0 -60 -38 -96.5t-103 -36.5 q-64 0 -101.5 35t-37.5 98zM836 1743q0 70 40.5 102.5t100.5 32.5q65 0 103.5 -36t38.5 -99q0 -61 -39 -97t-103 -36q-60 0 -100.5 32.5t-40.5 100.5z" />
+<glyph unicode="&#xdd;" horiz-adv-x="1278" d="M0 0zM639 860l305 602h334l-485 -893v-569h-308v559l-485 903h336zM461 1579v27q172 200 235 301h342v-21q-52 -52 -177.5 -154.5t-196.5 -152.5h-203z" />
+<glyph unicode="&#xde;" horiz-adv-x="1286" d="M1194 770q0 -229 -142.5 -353t-404.5 -124h-153v-293h-310v1462h310v-229h178q254 0 388 -119t134 -344zM494 543h100q145 0 216 52.5t71 174.5q0 107 -63.5 159t-199.5 52h-124v-438z" />
+<glyph unicode="&#xdf;" horiz-adv-x="1456" d="M1249 1241q0 -64 -21 -112.5t-53 -86.5t-69 -67t-69 -53t-53 -45t-21 -43q0 -27 26.5 -53t92.5 -66q146 -91 198.5 -140t78 -110t25.5 -139q0 -172 -116.5 -259t-343.5 -87q-99 0 -171 14.5t-132 48.5v242q53 -36 135.5 -61t146.5 -25q168 0 168 123q0 41 -16 66.5 t-57 55.5t-115 72q-126 72 -175 131.5t-49 140.5q0 64 35 117t105 102q77 55 108 95t31 86q0 60 -63.5 100.5t-163.5 40.5q-116 0 -181 -52.5t-65 -148.5v-1128h-305v1139q0 201 146.5 314.5t404.5 113.5q244 0 391 -88.5t147 -237.5z" />
+<glyph unicode="&#xe0;" horiz-adv-x="1237" d="M86 0zM870 0l-59 152h-8q-77 -97 -158.5 -134.5t-212.5 -37.5q-161 0 -253.5 92t-92.5 262q0 178 124.5 262.5t375.5 93.5l194 6v49q0 170 -174 170q-134 0 -315 -81l-101 206q193 101 428 101q225 0 345 -98t120 -298v-745h-213zM780 518l-118 -4q-133 -4 -198 -48 t-65 -134q0 -129 148 -129q106 0 169.5 61t63.5 162v92zM614 1241q-63 44 -185 142.5t-190 164.5v21h342q63 -101 235 -301v-27h-202z" />
+<glyph unicode="&#xe1;" horiz-adv-x="1237" d="M86 0zM870 0l-59 152h-8q-77 -97 -158.5 -134.5t-212.5 -37.5q-161 0 -253.5 92t-92.5 262q0 178 124.5 262.5t375.5 93.5l194 6v49q0 170 -174 170q-134 0 -315 -81l-101 206q193 101 428 101q225 0 345 -98t120 -298v-745h-213zM780 518l-118 -4q-133 -4 -198 -48 t-65 -134q0 -129 148 -129q106 0 169.5 61t63.5 162v92zM441 1241v27q172 200 235 301h342v-21q-52 -52 -177.5 -154.5t-196.5 -152.5h-203z" />
+<glyph unicode="&#xe2;" horiz-adv-x="1237" d="M86 0zM870 0l-59 152h-8q-77 -97 -158.5 -134.5t-212.5 -37.5q-161 0 -253.5 92t-92.5 262q0 178 124.5 262.5t375.5 93.5l194 6v49q0 170 -174 170q-134 0 -315 -81l-101 206q193 101 428 101q225 0 345 -98t120 -298v-745h-213zM780 518l-118 -4q-133 -4 -198 -48 t-65 -134q0 -129 148 -129q106 0 169.5 61t63.5 162v92zM843 1240q-157 93 -234 176q-78 -81 -229 -176h-203v27q189 189 256 301h357q31 -52 107.5 -141.5t148.5 -159.5v-27h-203z" />
+<glyph unicode="&#xe3;" horiz-adv-x="1237" d="M86 0zM870 0l-59 152h-8q-77 -97 -158.5 -134.5t-212.5 -37.5q-161 0 -253.5 92t-92.5 262q0 178 124.5 262.5t375.5 93.5l194 6v49q0 170 -174 170q-134 0 -315 -81l-101 206q193 101 428 101q225 0 345 -98t120 -298v-745h-213zM780 518l-118 -4q-133 -4 -198 -48 t-65 -134q0 -129 148 -129q106 0 169.5 61t63.5 162v92zM467 1346q-31 0 -59.5 -26.5t-41.5 -80.5h-149q11 145 82.5 227t189.5 82q41 0 80.5 -16.5t78 -36t75.5 -35.5t73 -16q31 0 59.5 26t41.5 80h149q-11 -145 -83.5 -227t-188.5 -82q-41 0 -80.5 16.5t-78 36t-75.5 36 t-73 16.5z" />
+<glyph unicode="&#xe4;" horiz-adv-x="1237" d="M86 0zM870 0l-59 152h-8q-77 -97 -158.5 -134.5t-212.5 -37.5q-161 0 -253.5 92t-92.5 262q0 178 124.5 262.5t375.5 93.5l194 6v49q0 170 -174 170q-134 0 -315 -81l-101 206q193 101 428 101q225 0 345 -98t120 -298v-745h-213zM780 518l-118 -4q-133 -4 -198 -48 t-65 -134q0 -129 148 -129q106 0 169.5 61t63.5 162v92zM285 1405q0 65 37.5 100t101.5 35q66 0 103.5 -37t37.5 -98q0 -60 -38 -96.5t-103 -36.5q-64 0 -101.5 35t-37.5 98zM688 1405q0 70 40.5 102.5t100.5 32.5q65 0 103.5 -36t38.5 -99q0 -61 -39 -97t-103 -36 q-60 0 -100.5 32.5t-40.5 100.5z" />
+<glyph unicode="&#xe5;" horiz-adv-x="1237" d="M86 0zM870 0l-59 152h-8q-77 -97 -158.5 -134.5t-212.5 -37.5q-161 0 -253.5 92t-92.5 262q0 178 124.5 262.5t375.5 93.5l194 6v49q0 170 -174 170q-134 0 -315 -81l-101 206q193 101 428 101q225 0 345 -98t120 -298v-745h-213zM780 518l-118 -4q-133 -4 -198 -48 t-65 -134q0 -129 148 -129q106 0 169.5 61t63.5 162v92zM883 1479q0 -108 -71 -174t-183 -66t-180 64t-68 174q0 108 67.5 172.5t180.5 64.5q110 0 182 -66t72 -169zM725 1477q0 45 -27 70.5t-69 25.5t-69 -25.5t-27 -70.5t24 -71t72 -26q42 0 69 26t27 71z" />
+<glyph unicode="&#xe6;" horiz-adv-x="1878" d="M1329 -20q-137 0 -249.5 50.5t-184.5 155.5q-98 -117 -196.5 -161.5t-256.5 -44.5q-161 0 -258.5 94.5t-97.5 259.5q0 178 121 262.5t362 93.5l191 6v84q0 69 -44.5 102t-121.5 33q-140 0 -305 -77l-99 202q189 101 422 101q227 0 342 -131q66 64 152.5 96.5t206.5 32.5 q221 0 349 -137.5t128 -370.5v-148h-723q5 -130 77 -203t202 -73q196 0 380 88v-236q-79 -39 -171 -59t-226 -20zM760 518l-113 -4q-124 -4 -186 -47.5t-62 -134.5q0 -129 140 -129q101 0 161 61t60 162v92zM1307 922q-217 0 -234 -236h430q-2 112 -55 174t-141 62z" />
+<glyph unicode="&#xe7;" horiz-adv-x="1053" d="M92 0zM614 -20q-522 0 -522 573q0 285 142 435.5t407 150.5q194 0 348 -76l-90 -236q-72 29 -134 47.5t-124 18.5q-238 0 -238 -338q0 -328 238 -328q88 0 163 23.5t150 73.5v-261q-74 -47 -149.5 -65t-190.5 -18zM805 -250q0 -128 -75.5 -185t-233.5 -57q-78 0 -146 21 v168q27 -7 72.5 -14t70.5 -7q72 0 72 62q0 83 -166 108l78 154h193l-27 -61q74 -24 118 -74.5t44 -114.5z" />
+<glyph unicode="&#xe8;" horiz-adv-x="1210" d="M92 0zM623 922q-97 0 -152 -61.5t-63 -174.5h428q-2 113 -59 174.5t-154 61.5zM666 -20q-270 0 -422 149t-152 422q0 281 140.5 434.5t388.5 153.5q237 0 369 -135t132 -373v-148h-721q5 -130 77 -203t202 -73q101 0 191 21t188 67v-236q-80 -40 -171 -59.5t-222 -19.5z M620 1241q-63 44 -185 142.5t-190 164.5v21h342q63 -101 235 -301v-27h-202z" />
+<glyph unicode="&#xe9;" horiz-adv-x="1210" d="M92 0zM623 922q-97 0 -152 -61.5t-63 -174.5h428q-2 113 -59 174.5t-154 61.5zM666 -20q-270 0 -422 149t-152 422q0 281 140.5 434.5t388.5 153.5q237 0 369 -135t132 -373v-148h-721q5 -130 77 -203t202 -73q101 0 191 21t188 67v-236q-80 -40 -171 -59.5t-222 -19.5z M447 1241v27q172 200 235 301h342v-21q-52 -52 -177.5 -154.5t-196.5 -152.5h-203z" />
+<glyph unicode="&#xea;" horiz-adv-x="1210" d="M92 0zM623 922q-97 0 -152 -61.5t-63 -174.5h428q-2 113 -59 174.5t-154 61.5zM666 -20q-270 0 -422 149t-152 422q0 281 140.5 434.5t388.5 153.5q237 0 369 -135t132 -373v-148h-721q5 -130 77 -203t202 -73q101 0 191 21t188 67v-236q-80 -40 -171 -59.5t-222 -19.5z M860 1241q-157 93 -234 176q-78 -81 -229 -176h-203v27q189 189 256 301h357q31 -52 107.5 -141.5t148.5 -159.5v-27h-203z" />
+<glyph unicode="&#xeb;" horiz-adv-x="1210" d="M92 0zM623 922q-97 0 -152 -61.5t-63 -174.5h428q-2 113 -59 174.5t-154 61.5zM666 -20q-270 0 -422 149t-152 422q0 281 140.5 434.5t388.5 153.5q237 0 369 -135t132 -373v-148h-721q5 -130 77 -203t202 -73q101 0 191 21t188 67v-236q-80 -40 -171 -59.5t-222 -19.5z M297 1405q0 65 37.5 100t101.5 35q66 0 103.5 -37t37.5 -98q0 -60 -38 -96.5t-103 -36.5q-64 0 -101.5 35t-37.5 98zM700 1405q0 70 40.5 102.5t100.5 32.5q65 0 103.5 -36t38.5 -99q0 -61 -39 -97t-103 -36q-60 0 -100.5 32.5t-40.5 100.5z" />
+<glyph unicode="&#xec;" horiz-adv-x="625" d="M0 0zM465 0h-305v1118h305v-1118zM274 1241q-63 44 -185 142.5t-190 164.5v21h342q63 -101 235 -301v-27h-202z" />
+<glyph unicode="&#xed;" horiz-adv-x="625" d="M145 0zM465 0h-305v1118h305v-1118zM145 1241v27q172 200 235 301h342v-21q-52 -52 -177.5 -154.5t-196.5 -152.5h-203z" />
+<glyph unicode="&#xee;" horiz-adv-x="625" d="M0 0zM465 0h-305v1118h305v-1118zM544 1241q-157 93 -234 176q-78 -81 -229 -176h-203v27q189 189 256 301h357q31 -52 107.5 -141.5t148.5 -159.5v-27h-203z" />
+<glyph unicode="&#xef;" horiz-adv-x="625" d="M0 0zM465 0h-305v1118h305v-1118zM-29 1405q0 65 37.5 100t101.5 35q66 0 103.5 -37t37.5 -98q0 -60 -38 -96.5t-103 -36.5q-64 0 -101.5 35t-37.5 98zM374 1405q0 70 40.5 102.5t100.5 32.5q65 0 103.5 -36t38.5 -99q0 -61 -39 -97t-103 -36q-60 0 -100.5 32.5 t-40.5 100.5z" />
+<glyph unicode="&#xf0;" horiz-adv-x="1268" d="M510 1303q-80 53 -152 92l101 176q144 -65 258 -141l225 139l100 -154l-170 -104q156 -143 230 -324.5t74 -413.5q0 -280 -145 -436.5t-400 -156.5q-245 0 -392 137t-147 372q0 233 130 369.5t351 136.5q205 0 275 -98l8 4q-67 162 -192 281l-230 -142l-100 156zM864 532 q0 108 -61 173t-168 65q-121 0 -176.5 -68.5t-55.5 -214.5q0 -140 60 -211t172 -71q123 0 176 82t53 245z" />
+<glyph unicode="&#xf1;" horiz-adv-x="1346" d="M160 0zM1192 0h-305v653q0 121 -43 181.5t-137 60.5q-128 0 -185 -85.5t-57 -283.5v-526h-305v1118h233l41 -143h17q51 81 140.5 122.5t203.5 41.5q195 0 296 -105.5t101 -304.5v-729zM508 1346q-31 0 -59.5 -26.5t-41.5 -80.5h-149q11 145 82.5 227t189.5 82 q41 0 80.5 -16.5t78 -36t75.5 -35.5t73 -16q31 0 59.5 26t41.5 80h149q-11 -145 -83.5 -227t-188.5 -82q-41 0 -80.5 16.5t-78 36t-75.5 36t-73 16.5z" />
+<glyph unicode="&#xf2;" horiz-adv-x="1268" d="M92 0zM403 561q0 -166 54.5 -251t177.5 -85q122 0 175.5 84.5t53.5 251.5q0 166 -54 249t-177 83q-122 0 -176 -82.5t-54 -249.5zM1176 561q0 -273 -144 -427t-401 -154q-161 0 -284 70.5t-189 202.5t-66 308q0 274 143 426t402 152q161 0 284 -70t189 -201t66 -307z M612 1241q-63 44 -185 142.5t-190 164.5v21h342q63 -101 235 -301v-27h-202z" />
+<glyph unicode="&#xf3;" horiz-adv-x="1268" d="M92 0zM403 561q0 -166 54.5 -251t177.5 -85q122 0 175.5 84.5t53.5 251.5q0 166 -54 249t-177 83q-122 0 -176 -82.5t-54 -249.5zM1176 561q0 -273 -144 -427t-401 -154q-161 0 -284 70.5t-189 202.5t-66 308q0 274 143 426t402 152q161 0 284 -70t189 -201t66 -307z M467 1241v27q172 200 235 301h342v-21q-52 -52 -177.5 -154.5t-196.5 -152.5h-203z" />
+<glyph unicode="&#xf4;" horiz-adv-x="1268" d="M92 0zM403 561q0 -166 54.5 -251t177.5 -85q122 0 175.5 84.5t53.5 251.5q0 166 -54 249t-177 83q-122 0 -176 -82.5t-54 -249.5zM1176 561q0 -273 -144 -427t-401 -154q-161 0 -284 70.5t-189 202.5t-66 308q0 274 143 426t402 152q161 0 284 -70t189 -201t66 -307z M864 1241q-157 93 -234 176q-78 -81 -229 -176h-203v27q189 189 256 301h357q31 -52 107.5 -141.5t148.5 -159.5v-27h-203z" />
+<glyph unicode="&#xf5;" horiz-adv-x="1268" d="M92 0zM403 561q0 -166 54.5 -251t177.5 -85q122 0 175.5 84.5t53.5 251.5q0 166 -54 249t-177 83q-122 0 -176 -82.5t-54 -249.5zM1176 561q0 -273 -144 -427t-401 -154q-161 0 -284 70.5t-189 202.5t-66 308q0 274 143 426t402 152q161 0 284 -70t189 -201t66 -307z M469 1346q-31 0 -59.5 -26.5t-41.5 -80.5h-149q11 145 82.5 227t189.5 82q41 0 80.5 -16.5t78 -36t75.5 -35.5t73 -16q31 0 59.5 26t41.5 80h149q-11 -145 -83.5 -227t-188.5 -82q-41 0 -80.5 16.5t-78 36t-75.5 36t-73 16.5z" />
+<glyph unicode="&#xf6;" horiz-adv-x="1268" d="M92 0zM403 561q0 -166 54.5 -251t177.5 -85q122 0 175.5 84.5t53.5 251.5q0 166 -54 249t-177 83q-122 0 -176 -82.5t-54 -249.5zM1176 561q0 -273 -144 -427t-401 -154q-161 0 -284 70.5t-189 202.5t-66 308q0 274 143 426t402 152q161 0 284 -70t189 -201t66 -307z M291 1405q0 65 37.5 100t101.5 35q66 0 103.5 -37t37.5 -98q0 -60 -38 -96.5t-103 -36.5q-64 0 -101.5 35t-37.5 98zM694 1405q0 70 40.5 102.5t100.5 32.5q65 0 103.5 -36t38.5 -99q0 -61 -39 -97t-103 -36q-60 0 -100.5 32.5t-40.5 100.5z" />
+<glyph unicode="&#xf7;" d="M88 612v219h993v-219h-993zM444 373q0 76 37 113.5t103 37.5t102.5 -39t36.5 -112q0 -70 -37 -111t-102 -41t-102.5 39t-37.5 113zM444 1071q0 75 37 113.5t103 38.5q67 0 103 -40.5t36 -111.5q0 -70 -37 -110.5t-102 -40.5t-102.5 39t-37.5 112z" />
+<glyph unicode="&#xf8;" horiz-adv-x="1268" d="M1176 561q0 -273 -144 -427t-401 -154q-126 0 -234 45l-67 -101l-154 105l68 100q-152 156 -152 432q0 274 143 426t402 152q132 0 248 -52l55 82l152 -108l-58 -84q142 -155 142 -416zM403 561q0 -94 19 -166l317 475q-43 23 -106 23q-122 0 -176 -82.5t-54 -249.5z M864 561q0 81 -12 141l-309 -462q38 -15 92 -15q122 0 175.5 84.5t53.5 251.5z" />
+<glyph unicode="&#xf9;" horiz-adv-x="1346" d="M154 0zM952 0l-41 143h-16q-49 -78 -139 -120.5t-205 -42.5q-197 0 -297 105.5t-100 303.5v729h305v-653q0 -121 43 -181.5t137 -60.5q128 0 185 85.5t57 283.5v526h305v-1118h-234zM620 1241q-63 44 -185 142.5t-190 164.5v21h342q63 -101 235 -301v-27h-202z" />
+<glyph unicode="&#xfa;" horiz-adv-x="1346" d="M154 0zM952 0l-41 143h-16q-49 -78 -139 -120.5t-205 -42.5q-197 0 -297 105.5t-100 303.5v729h305v-653q0 -121 43 -181.5t137 -60.5q128 0 185 85.5t57 283.5v526h305v-1118h-234zM498 1241v27q172 200 235 301h342v-21q-52 -52 -177.5 -154.5t-196.5 -152.5h-203z" />
+<glyph unicode="&#xfb;" horiz-adv-x="1346" d="M154 0zM952 0l-41 143h-16q-49 -78 -139 -120.5t-205 -42.5q-197 0 -297 105.5t-100 303.5v729h305v-653q0 -121 43 -181.5t137 -60.5q128 0 185 85.5t57 283.5v526h305v-1118h-234zM901 1241q-157 93 -234 176q-78 -81 -229 -176h-203v27q189 189 256 301h357 q31 -52 107.5 -141.5t148.5 -159.5v-27h-203z" />
+<glyph unicode="&#xfc;" horiz-adv-x="1346" d="M154 0zM952 0l-41 143h-16q-49 -78 -139 -120.5t-205 -42.5q-197 0 -297 105.5t-100 303.5v729h305v-653q0 -121 43 -181.5t137 -60.5q128 0 185 85.5t57 283.5v526h305v-1118h-234zM326 1405q0 65 37.5 100t101.5 35q66 0 103.5 -37t37.5 -98q0 -60 -38 -96.5 t-103 -36.5q-64 0 -101.5 35t-37.5 98zM729 1405q0 70 40.5 102.5t100.5 32.5q65 0 103.5 -36t38.5 -99q0 -61 -39 -97t-103 -36q-60 0 -100.5 32.5t-40.5 100.5z" />
+<glyph unicode="&#xfd;" horiz-adv-x="1165" d="M0 0zM0 1118h334l211 -629q27 -82 37 -194h6q11 103 43 194l207 629h327l-473 -1261q-65 -175 -185.5 -262t-281.5 -87q-79 0 -155 17v242q55 -13 120 -13q81 0 141.5 49.5t94.5 149.5l18 55zM393 1241v27q172 200 235 301h342v-21q-52 -52 -177.5 -154.5t-196.5 -152.5 h-203z" />
+<glyph unicode="&#xfe;" horiz-adv-x="1296" d="M465 973q50 81 131 123.5t186 42.5q198 0 310 -154.5t112 -423.5q0 -273 -111.5 -427t-310.5 -154q-213 0 -317 137h-14l7 -62l7 -94v-453h-305v2048h305v-391l-7 -120l-7 -72h14zM684 895q-113 0 -165 -69.5t-54 -229.5v-33q0 -180 53.5 -258t169.5 -78q205 0 205 338 q0 165 -50.5 247.5t-158.5 82.5z" />
+<glyph unicode="&#xff;" horiz-adv-x="1165" d="M0 0zM0 1118h334l211 -629q27 -82 37 -194h6q11 103 43 194l207 629h327l-473 -1261q-65 -175 -185.5 -262t-281.5 -87q-79 0 -155 17v242q55 -13 120 -13q81 0 141.5 49.5t94.5 149.5l18 55zM243 1405q0 65 37.5 100t101.5 35q66 0 103.5 -37t37.5 -98q0 -60 -38 -96.5 t-103 -36.5q-64 0 -101.5 35t-37.5 98zM646 1405q0 70 40.5 102.5t100.5 32.5q65 0 103.5 -36t38.5 -99q0 -61 -39 -97t-103 -36q-60 0 -100.5 32.5t-40.5 100.5z" />
+<glyph unicode="&#x131;" horiz-adv-x="625" d="M465 0h-305v1118h305v-1118z" />
+<glyph unicode="&#x152;" horiz-adv-x="1993" d="M1872 0h-873q-38 -9 -109 -14.5t-116 -5.5q-319 0 -487 197t-168 558q0 363 169.5 556.5t487.5 193.5q61 0 127 -7t101 -16h868v-254h-563v-321h526v-254h-526v-377h563v-256zM776 1227q-166 0 -252 -125.5t-86 -368.5q0 -244 86 -368.5t250 -124.5q65 0 126 10.5 t99 28.5v907q-35 19 -101.5 30t-121.5 11z" />
+<glyph unicode="&#x153;" horiz-adv-x="2003" d="M1446 -20q-271 0 -420 155q-141 -155 -391 -155q-162 0 -286 70t-190.5 202t-66.5 309q0 277 141.5 427.5t399.5 150.5q112 0 212 -39.5t171 -116.5q144 156 383 156q244 0 380 -135t136 -373v-148h-746v-8q7 -127 81.5 -197.5t207.5 -70.5q107 0 200 21t193 67v-236 q-81 -39 -175.5 -59t-229.5 -20zM403 561q0 -166 54.5 -251t177.5 -85q122 0 175.5 84.5t53.5 251.5q0 166 -54 249t-177 83q-122 0 -176 -82.5t-54 -249.5zM1405 922q-94 0 -156 -57.5t-71 -178.5h450q-2 111 -60.5 173.5t-162.5 62.5z" />
+<glyph unicode="&#x178;" horiz-adv-x="1278" d="M0 0zM639 860l305 602h334l-485 -893v-569h-308v559l-485 903h336zM297 1743q0 65 37.5 100t101.5 35q66 0 103.5 -37t37.5 -98q0 -60 -38 -96.5t-103 -36.5q-64 0 -101.5 35t-37.5 98zM700 1743q0 70 40.5 102.5t100.5 32.5q65 0 103.5 -36t38.5 -99q0 -61 -39 -97 t-103 -36q-60 0 -100.5 32.5t-40.5 100.5z" />
+<glyph unicode="&#x2c6;" horiz-adv-x="1243" d="M852 1241q-157 93 -234 176q-78 -81 -229 -176h-203v27q189 189 256 301h357q31 -52 107.5 -141.5t148.5 -159.5v-27h-203z" />
+<glyph unicode="&#x2da;" horiz-adv-x="1182" d="M842 1479q0 -108 -71 -174t-183 -66t-180 64t-68 174q0 108 67.5 172.5t180.5 64.5q110 0 182 -66t72 -169zM684 1477q0 45 -27 70.5t-69 25.5t-69 -25.5t-27 -70.5t24 -71t72 -26q42 0 69 26t27 71z" />
+<glyph unicode="&#x2dc;" horiz-adv-x="1243" d="M457 1346q-31 0 -59.5 -26.5t-41.5 -80.5h-149q11 145 82.5 227t189.5 82q41 0 80.5 -16.5t78 -36t75.5 -35.5t73 -16q31 0 59.5 26t41.5 80h149q-11 -145 -83.5 -227t-188.5 -82q-41 0 -80.5 16.5t-78 36t-75.5 36t-73 16.5z" />
+<glyph unicode="&#x2000;" horiz-adv-x="953" />
+<glyph unicode="&#x2001;" horiz-adv-x="1907" />
+<glyph unicode="&#x2002;" horiz-adv-x="953" />
+<glyph unicode="&#x2003;" horiz-adv-x="1907" />
+<glyph unicode="&#x2004;" horiz-adv-x="635" />
+<glyph unicode="&#x2005;" horiz-adv-x="476" />
+<glyph unicode="&#x2006;" horiz-adv-x="317" />
+<glyph unicode="&#x2007;" horiz-adv-x="317" />
+<glyph unicode="&#x2008;" horiz-adv-x="238" />
+<glyph unicode="&#x2009;" horiz-adv-x="381" />
+<glyph unicode="&#x200a;" horiz-adv-x="105" />
+<glyph unicode="&#x2010;" horiz-adv-x="659" d="M61 424v250h537v-250h-537z" />
+<glyph unicode="&#x2011;" horiz-adv-x="659" d="M61 424v250h537v-250h-537z" />
+<glyph unicode="&#x2012;" horiz-adv-x="659" d="M61 424v250h537v-250h-537z" />
+<glyph unicode="&#x2013;" horiz-adv-x="1024" d="M82 436v230h860v-230h-860z" />
+<glyph unicode="&#x2014;" horiz-adv-x="2048" d="M82 436v230h1884v-230h-1884z" />
+<glyph unicode="&#x2018;" horiz-adv-x="444" d="M39 961l-14 22q22 91 72.5 228.5t103.5 250.5h219q-66 -267 -101 -501h-280z" />
+<glyph unicode="&#x2019;" horiz-adv-x="444" d="M406 1462l14 -22q-50 -197 -176 -479h-219q69 296 100 501h281z" />
+<glyph unicode="&#x201a;" horiz-adv-x="596" d="M459 215q-52 -202 -176 -479h-220q65 266 101 502h280z" />
+<glyph unicode="&#x201c;" horiz-adv-x="911" d="M492 983q22 91 72.5 228.5t103.5 250.5h219q-66 -267 -101 -501h-280zM25 983q22 91 72.5 228.5t103.5 250.5h219q-66 -267 -101 -501h-280z" />
+<glyph unicode="&#x201d;" horiz-adv-x="911" d="M420 1440q-50 -197 -176 -479h-219q69 296 100 501h281zM887 1440q-50 -197 -176 -479h-219q69 296 100 501h280z" />
+<glyph unicode="&#x201e;" horiz-adv-x="1061" d="M459 215q-52 -202 -176 -479h-220q65 266 101 502h280zM926 215q-52 -202 -176 -479h-220q65 266 101 502h280z" />
+<glyph unicode="&#x2022;" horiz-adv-x="770" d="M98 748q0 154 74 235.5t213 81.5q137 0 212 -82t75 -235q0 -152 -75.5 -235t-211.5 -83q-138 0 -212.5 83t-74.5 235z" />
+<glyph unicode="&#x2026;" horiz-adv-x="1751" d="M117 143q0 84 45 127t131 43q83 0 128.5 -44t45.5 -126q0 -79 -46 -124.5t-128 -45.5q-84 0 -130 44.5t-46 125.5zM700 143q0 84 45 127t132 43q83 0 128.5 -44t45.5 -126q0 -79 -46 -124.5t-128 -45.5q-85 0 -131 44.5t-46 125.5zM1284 143q0 84 45 127t131 43 q83 0 128.5 -44t45.5 -126q0 -79 -46 -124.5t-128 -45.5q-84 0 -130 44.5t-46 125.5z" />
+<glyph unicode="&#x202f;" horiz-adv-x="381" />
+<glyph unicode="&#x2039;" horiz-adv-x="754" d="M82 573l371 455l219 -119l-279 -348l279 -348l-219 -119l-371 453v26z" />
+<glyph unicode="&#x203a;" horiz-adv-x="754" d="M672 547l-371 -453l-219 119l278 348l-278 348l219 119l371 -455v-26z" />
+<glyph unicode="&#x2044;" horiz-adv-x="266" d="M657 1462l-811 -1462h-239l811 1462h239z" />
+<glyph unicode="&#x205f;" horiz-adv-x="476" />
+<glyph unicode="&#x2074;" horiz-adv-x="776" d="M758 737h-125v-151h-238v151h-383v154l385 577h236v-563h125v-168zM395 905v164q0 86 6 184q-9 -26 -35.5 -80t-41.5 -77l-127 -191h198z" />
+<glyph unicode="&#x20ac;" d="M803 1225q-122 0 -201 -70.5t-102 -204.5h403v-176h-418l-2 -35v-47l2 -33h355v-178h-338q51 -243 321 -243q143 0 275 57v-256q-116 -59 -293 -59q-245 0 -403 133t-199 368h-137v178h118q-4 23 -4 62l2 53h-116v176h133q37 242 199 382.5t405 140.5q188 0 352 -82 l-98 -232q-69 31 -129 48.5t-125 17.5z" />
+<glyph unicode="&#x2122;" horiz-adv-x="1534" d="M381 741h-168v572h-197v149h564v-149h-199v-572zM956 741l-165 529h-7l4 -111v-418h-163v721h247l160 -510l170 510h240v-721h-168v408l4 121h-6l-174 -529h-142z" />
+<glyph unicode="&#xe000;" horiz-adv-x="1120" d="M0 1120h1120v-1120h-1120v1120z" />
+<glyph horiz-adv-x="1296" d="M0 0z" />
+<hkern u1="&#x22;" u2="&#x178;" k="-20" />
+<hkern u1="&#x22;" u2="&#x153;" k="123" />
+<hkern u1="&#x22;" u2="&#xfc;" k="61" />
+<hkern u1="&#x22;" u2="&#xfb;" k="61" />
+<hkern u1="&#x22;" u2="&#xfa;" k="61" />
+<hkern u1="&#x22;" u2="&#xf9;" k="61" />
+<hkern u1="&#x22;" u2="&#xf8;" k="123" />
+<hkern u1="&#x22;" u2="&#xf6;" k="123" />
+<hkern u1="&#x22;" u2="&#xf5;" k="123" />
+<hkern u1="&#x22;" u2="&#xf4;" k="123" />
+<hkern u1="&#x22;" u2="&#xf3;" k="123" />
+<hkern u1="&#x22;" u2="&#xf2;" k="123" />
+<hkern u1="&#x22;" u2="&#xeb;" k="123" />
+<hkern u1="&#x22;" u2="&#xea;" k="123" />
+<hkern u1="&#x22;" u2="&#xe9;" k="123" />
+<hkern u1="&#x22;" u2="&#xe8;" k="123" />
+<hkern u1="&#x22;" u2="&#xe7;" k="123" />
+<hkern u1="&#x22;" u2="&#xe6;" k="82" />
+<hkern u1="&#x22;" u2="&#xe5;" k="82" />
+<hkern u1="&#x22;" u2="&#xe4;" k="82" />
+<hkern u1="&#x22;" u2="&#xe3;" k="82" />
+<hkern u1="&#x22;" u2="&#xe2;" k="82" />
+<hkern u1="&#x22;" u2="&#xe1;" k="82" />
+<hkern u1="&#x22;" u2="&#xe0;" k="123" />
+<hkern u1="&#x22;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x22;" u2="&#xc5;" k="143" />
+<hkern u1="&#x22;" u2="&#xc4;" k="143" />
+<hkern u1="&#x22;" u2="&#xc3;" k="143" />
+<hkern u1="&#x22;" u2="&#xc2;" k="143" />
+<hkern u1="&#x22;" u2="&#xc1;" k="143" />
+<hkern u1="&#x22;" u2="&#xc0;" k="143" />
+<hkern u1="&#x22;" u2="u" k="61" />
+<hkern u1="&#x22;" u2="s" k="61" />
+<hkern u1="&#x22;" u2="r" k="61" />
+<hkern u1="&#x22;" u2="q" k="123" />
+<hkern u1="&#x22;" u2="p" k="61" />
+<hkern u1="&#x22;" u2="o" k="123" />
+<hkern u1="&#x22;" u2="n" k="61" />
+<hkern u1="&#x22;" u2="m" k="61" />
+<hkern u1="&#x22;" u2="g" k="61" />
+<hkern u1="&#x22;" u2="e" k="123" />
+<hkern u1="&#x22;" u2="d" k="123" />
+<hkern u1="&#x22;" u2="c" k="123" />
+<hkern u1="&#x22;" u2="a" k="82" />
+<hkern u1="&#x22;" u2="Y" k="-20" />
+<hkern u1="&#x22;" u2="W" k="-41" />
+<hkern u1="&#x22;" u2="V" k="-41" />
+<hkern u1="&#x22;" u2="T" k="-41" />
+<hkern u1="&#x22;" u2="A" k="143" />
+<hkern u1="&#x27;" u2="&#x178;" k="-20" />
+<hkern u1="&#x27;" u2="&#x153;" k="123" />
+<hkern u1="&#x27;" u2="&#xfc;" k="61" />
+<hkern u1="&#x27;" u2="&#xfb;" k="61" />
+<hkern u1="&#x27;" u2="&#xfa;" k="61" />
+<hkern u1="&#x27;" u2="&#xf9;" k="61" />
+<hkern u1="&#x27;" u2="&#xf8;" k="123" />
+<hkern u1="&#x27;" u2="&#xf6;" k="123" />
+<hkern u1="&#x27;" u2="&#xf5;" k="123" />
+<hkern u1="&#x27;" u2="&#xf4;" k="123" />
+<hkern u1="&#x27;" u2="&#xf3;" k="123" />
+<hkern u1="&#x27;" u2="&#xf2;" k="123" />
+<hkern u1="&#x27;" u2="&#xeb;" k="123" />
+<hkern u1="&#x27;" u2="&#xea;" k="123" />
+<hkern u1="&#x27;" u2="&#xe9;" k="123" />
+<hkern u1="&#x27;" u2="&#xe8;" k="123" />
+<hkern u1="&#x27;" u2="&#xe7;" k="123" />
+<hkern u1="&#x27;" u2="&#xe6;" k="82" />
+<hkern u1="&#x27;" u2="&#xe5;" k="82" />
+<hkern u1="&#x27;" u2="&#xe4;" k="82" />
+<hkern u1="&#x27;" u2="&#xe3;" k="82" />
+<hkern u1="&#x27;" u2="&#xe2;" k="82" />
+<hkern u1="&#x27;" u2="&#xe1;" k="82" />
+<hkern u1="&#x27;" u2="&#xe0;" k="123" />
+<hkern u1="&#x27;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x27;" u2="&#xc5;" k="143" />
+<hkern u1="&#x27;" u2="&#xc4;" k="143" />
+<hkern u1="&#x27;" u2="&#xc3;" k="143" />
+<hkern u1="&#x27;" u2="&#xc2;" k="143" />
+<hkern u1="&#x27;" u2="&#xc1;" k="143" />
+<hkern u1="&#x27;" u2="&#xc0;" k="143" />
+<hkern u1="&#x27;" u2="u" k="61" />
+<hkern u1="&#x27;" u2="s" k="61" />
+<hkern u1="&#x27;" u2="r" k="61" />
+<hkern u1="&#x27;" u2="q" k="123" />
+<hkern u1="&#x27;" u2="p" k="61" />
+<hkern u1="&#x27;" u2="o" k="123" />
+<hkern u1="&#x27;" u2="n" k="61" />
+<hkern u1="&#x27;" u2="m" k="61" />
+<hkern u1="&#x27;" u2="g" k="61" />
+<hkern u1="&#x27;" u2="e" k="123" />
+<hkern u1="&#x27;" u2="d" k="123" />
+<hkern u1="&#x27;" u2="c" k="123" />
+<hkern u1="&#x27;" u2="a" k="82" />
+<hkern u1="&#x27;" u2="Y" k="-20" />
+<hkern u1="&#x27;" u2="W" k="-41" />
+<hkern u1="&#x27;" u2="V" k="-41" />
+<hkern u1="&#x27;" u2="T" k="-41" />
+<hkern u1="&#x27;" u2="A" k="143" />
+<hkern u1="&#x28;" u2="J" k="-184" />
+<hkern u1="&#x2c;" u2="&#x178;" k="123" />
+<hkern u1="&#x2c;" u2="&#x152;" k="102" />
+<hkern u1="&#x2c;" u2="&#xdd;" k="123" />
+<hkern u1="&#x2c;" u2="&#xdc;" k="41" />
+<hkern u1="&#x2c;" u2="&#xdb;" k="41" />
+<hkern u1="&#x2c;" u2="&#xda;" k="41" />
+<hkern u1="&#x2c;" u2="&#xd9;" k="41" />
+<hkern u1="&#x2c;" u2="&#xd8;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd6;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd5;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd4;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd3;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd2;" k="102" />
+<hkern u1="&#x2c;" u2="&#xc7;" k="102" />
+<hkern u1="&#x2c;" u2="Y" k="123" />
+<hkern u1="&#x2c;" u2="W" k="123" />
+<hkern u1="&#x2c;" u2="V" k="123" />
+<hkern u1="&#x2c;" u2="U" k="41" />
+<hkern u1="&#x2c;" u2="T" k="143" />
+<hkern u1="&#x2c;" u2="Q" k="102" />
+<hkern u1="&#x2c;" u2="O" k="102" />
+<hkern u1="&#x2c;" u2="G" k="102" />
+<hkern u1="&#x2c;" u2="C" k="102" />
+<hkern u1="&#x2d;" u2="T" k="82" />
+<hkern u1="&#x2e;" u2="&#x178;" k="123" />
+<hkern u1="&#x2e;" u2="&#x152;" k="102" />
+<hkern u1="&#x2e;" u2="&#xdd;" k="123" />
+<hkern u1="&#x2e;" u2="&#xdc;" k="41" />
+<hkern u1="&#x2e;" u2="&#xdb;" k="41" />
+<hkern u1="&#x2e;" u2="&#xda;" k="41" />
+<hkern u1="&#x2e;" u2="&#xd9;" k="41" />
+<hkern u1="&#x2e;" u2="&#xd8;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd6;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd5;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd4;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd3;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd2;" k="102" />
+<hkern u1="&#x2e;" u2="&#xc7;" k="102" />
+<hkern u1="&#x2e;" u2="Y" k="123" />
+<hkern u1="&#x2e;" u2="W" k="123" />
+<hkern u1="&#x2e;" u2="V" k="123" />
+<hkern u1="&#x2e;" u2="U" k="41" />
+<hkern u1="&#x2e;" u2="T" k="143" />
+<hkern u1="&#x2e;" u2="Q" k="102" />
+<hkern u1="&#x2e;" u2="O" k="102" />
+<hkern u1="&#x2e;" u2="G" k="102" />
+<hkern u1="&#x2e;" u2="C" k="102" />
+<hkern u1="A" u2="&#x201d;" k="143" />
+<hkern u1="A" u2="&#x2019;" k="143" />
+<hkern u1="A" u2="&#x178;" k="123" />
+<hkern u1="A" u2="&#x152;" k="41" />
+<hkern u1="A" u2="&#xdd;" k="123" />
+<hkern u1="A" u2="&#xd8;" k="41" />
+<hkern u1="A" u2="&#xd6;" k="41" />
+<hkern u1="A" u2="&#xd5;" k="41" />
+<hkern u1="A" u2="&#xd4;" k="41" />
+<hkern u1="A" u2="&#xd3;" k="41" />
+<hkern u1="A" u2="&#xd2;" k="41" />
+<hkern u1="A" u2="&#xc7;" k="41" />
+<hkern u1="A" u2="Y" k="123" />
+<hkern u1="A" u2="W" k="82" />
+<hkern u1="A" u2="V" k="82" />
+<hkern u1="A" u2="T" k="143" />
+<hkern u1="A" u2="Q" k="41" />
+<hkern u1="A" u2="O" k="41" />
+<hkern u1="A" u2="J" k="-266" />
+<hkern u1="A" u2="G" k="41" />
+<hkern u1="A" u2="C" k="41" />
+<hkern u1="A" u2="&#x27;" k="143" />
+<hkern u1="A" u2="&#x22;" k="143" />
+<hkern u1="B" u2="&#x201e;" k="82" />
+<hkern u1="B" u2="&#x201a;" k="82" />
+<hkern u1="B" u2="&#x178;" k="20" />
+<hkern u1="B" u2="&#xdd;" k="20" />
+<hkern u1="B" u2="&#xc5;" k="41" />
+<hkern u1="B" u2="&#xc4;" k="41" />
+<hkern u1="B" u2="&#xc3;" k="41" />
+<hkern u1="B" u2="&#xc2;" k="41" />
+<hkern u1="B" u2="&#xc1;" k="41" />
+<hkern u1="B" u2="&#xc0;" k="41" />
+<hkern u1="B" u2="Z" k="20" />
+<hkern u1="B" u2="Y" k="20" />
+<hkern u1="B" u2="X" k="41" />
+<hkern u1="B" u2="W" k="20" />
+<hkern u1="B" u2="V" k="20" />
+<hkern u1="B" u2="T" k="61" />
+<hkern u1="B" u2="A" k="41" />
+<hkern u1="B" u2="&#x2e;" k="82" />
+<hkern u1="B" u2="&#x2c;" k="82" />
+<hkern u1="C" u2="&#x152;" k="41" />
+<hkern u1="C" u2="&#xd8;" k="41" />
+<hkern u1="C" u2="&#xd6;" k="41" />
+<hkern u1="C" u2="&#xd5;" k="41" />
+<hkern u1="C" u2="&#xd4;" k="41" />
+<hkern u1="C" u2="&#xd3;" k="41" />
+<hkern u1="C" u2="&#xd2;" k="41" />
+<hkern u1="C" u2="&#xc7;" k="41" />
+<hkern u1="C" u2="Q" k="41" />
+<hkern u1="C" u2="O" k="41" />
+<hkern u1="C" u2="G" k="41" />
+<hkern u1="C" u2="C" k="41" />
+<hkern u1="D" u2="&#x201e;" k="82" />
+<hkern u1="D" u2="&#x201a;" k="82" />
+<hkern u1="D" u2="&#x178;" k="20" />
+<hkern u1="D" u2="&#xdd;" k="20" />
+<hkern u1="D" u2="&#xc5;" k="41" />
+<hkern u1="D" u2="&#xc4;" k="41" />
+<hkern u1="D" u2="&#xc3;" k="41" />
+<hkern u1="D" u2="&#xc2;" k="41" />
+<hkern u1="D" u2="&#xc1;" k="41" />
+<hkern u1="D" u2="&#xc0;" k="41" />
+<hkern u1="D" u2="Z" k="20" />
+<hkern u1="D" u2="Y" k="20" />
+<hkern u1="D" u2="X" k="41" />
+<hkern u1="D" u2="W" k="20" />
+<hkern u1="D" u2="V" k="20" />
+<hkern u1="D" u2="T" k="61" />
+<hkern u1="D" u2="A" k="41" />
+<hkern u1="D" u2="&#x2e;" k="82" />
+<hkern u1="D" u2="&#x2c;" k="82" />
+<hkern u1="E" u2="J" k="-123" />
+<hkern u1="F" u2="&#x201e;" k="123" />
+<hkern u1="F" u2="&#x201a;" k="123" />
+<hkern u1="F" u2="&#xc5;" k="41" />
+<hkern u1="F" u2="&#xc4;" k="41" />
+<hkern u1="F" u2="&#xc3;" k="41" />
+<hkern u1="F" u2="&#xc2;" k="41" />
+<hkern u1="F" u2="&#xc1;" k="41" />
+<hkern u1="F" u2="&#xc0;" k="41" />
+<hkern u1="F" u2="A" k="41" />
+<hkern u1="F" u2="&#x3f;" k="-41" />
+<hkern u1="F" u2="&#x2e;" k="123" />
+<hkern u1="F" u2="&#x2c;" k="123" />
+<hkern u1="K" u2="&#x152;" k="41" />
+<hkern u1="K" u2="&#xd8;" k="41" />
+<hkern u1="K" u2="&#xd6;" k="41" />
+<hkern u1="K" u2="&#xd5;" k="41" />
+<hkern u1="K" u2="&#xd4;" k="41" />
+<hkern u1="K" u2="&#xd3;" k="41" />
+<hkern u1="K" u2="&#xd2;" k="41" />
+<hkern u1="K" u2="&#xc7;" k="41" />
+<hkern u1="K" u2="Q" k="41" />
+<hkern u1="K" u2="O" k="41" />
+<hkern u1="K" u2="G" k="41" />
+<hkern u1="K" u2="C" k="41" />
+<hkern u1="L" u2="&#x201d;" k="164" />
+<hkern u1="L" u2="&#x2019;" k="164" />
+<hkern u1="L" u2="&#x178;" k="61" />
+<hkern u1="L" u2="&#x152;" k="41" />
+<hkern u1="L" u2="&#xdd;" k="61" />
+<hkern u1="L" u2="&#xdc;" k="20" />
+<hkern u1="L" u2="&#xdb;" k="20" />
+<hkern u1="L" u2="&#xda;" k="20" />
+<hkern u1="L" u2="&#xd9;" k="20" />
+<hkern u1="L" u2="&#xd8;" k="41" />
+<hkern u1="L" u2="&#xd6;" k="41" />
+<hkern u1="L" u2="&#xd5;" k="41" />
+<hkern u1="L" u2="&#xd4;" k="41" />
+<hkern u1="L" u2="&#xd3;" k="41" />
+<hkern u1="L" u2="&#xd2;" k="41" />
+<hkern u1="L" u2="&#xc7;" k="41" />
+<hkern u1="L" u2="Y" k="61" />
+<hkern u1="L" u2="W" k="41" />
+<hkern u1="L" u2="V" k="41" />
+<hkern u1="L" u2="U" k="20" />
+<hkern u1="L" u2="T" k="41" />
+<hkern u1="L" u2="Q" k="41" />
+<hkern u1="L" u2="O" k="41" />
+<hkern u1="L" u2="G" k="41" />
+<hkern u1="L" u2="C" k="41" />
+<hkern u1="L" u2="&#x27;" k="164" />
+<hkern u1="L" u2="&#x22;" k="164" />
+<hkern u1="O" u2="&#x201e;" k="82" />
+<hkern u1="O" u2="&#x201a;" k="82" />
+<hkern u1="O" u2="&#x178;" k="20" />
+<hkern u1="O" u2="&#xdd;" k="20" />
+<hkern u1="O" u2="&#xc5;" k="41" />
+<hkern u1="O" u2="&#xc4;" k="41" />
+<hkern u1="O" u2="&#xc3;" k="41" />
+<hkern u1="O" u2="&#xc2;" k="41" />
+<hkern u1="O" u2="&#xc1;" k="41" />
+<hkern u1="O" u2="&#xc0;" k="41" />
+<hkern u1="O" u2="Z" k="20" />
+<hkern u1="O" u2="Y" k="20" />
+<hkern u1="O" u2="X" k="41" />
+<hkern u1="O" u2="W" k="20" />
+<hkern u1="O" u2="V" k="20" />
+<hkern u1="O" u2="T" k="61" />
+<hkern u1="O" u2="A" k="41" />
+<hkern u1="O" u2="&#x2e;" k="82" />
+<hkern u1="O" u2="&#x2c;" k="82" />
+<hkern u1="P" u2="&#x201e;" k="266" />
+<hkern u1="P" u2="&#x201a;" k="266" />
+<hkern u1="P" u2="&#xc5;" k="102" />
+<hkern u1="P" u2="&#xc4;" k="102" />
+<hkern u1="P" u2="&#xc3;" k="102" />
+<hkern u1="P" u2="&#xc2;" k="102" />
+<hkern u1="P" u2="&#xc1;" k="102" />
+<hkern u1="P" u2="&#xc0;" k="102" />
+<hkern u1="P" u2="Z" k="20" />
+<hkern u1="P" u2="X" k="41" />
+<hkern u1="P" u2="A" k="102" />
+<hkern u1="P" u2="&#x2e;" k="266" />
+<hkern u1="P" u2="&#x2c;" k="266" />
+<hkern u1="Q" u2="&#x201e;" k="82" />
+<hkern u1="Q" u2="&#x201a;" k="82" />
+<hkern u1="Q" u2="&#x178;" k="20" />
+<hkern u1="Q" u2="&#xdd;" k="20" />
+<hkern u1="Q" u2="&#xc5;" k="41" />
+<hkern u1="Q" u2="&#xc4;" k="41" />
+<hkern u1="Q" u2="&#xc3;" k="41" />
+<hkern u1="Q" u2="&#xc2;" k="41" />
+<hkern u1="Q" u2="&#xc1;" k="41" />
+<hkern u1="Q" u2="&#xc0;" k="41" />
+<hkern u1="Q" u2="Z" k="20" />
+<hkern u1="Q" u2="Y" k="20" />
+<hkern u1="Q" u2="X" k="41" />
+<hkern u1="Q" u2="W" k="20" />
+<hkern u1="Q" u2="V" k="20" />
+<hkern u1="Q" u2="T" k="61" />
+<hkern u1="Q" u2="A" k="41" />
+<hkern u1="Q" u2="&#x2e;" k="82" />
+<hkern u1="Q" u2="&#x2c;" k="82" />
+<hkern u1="T" u2="&#x201e;" k="123" />
+<hkern u1="T" u2="&#x201a;" k="123" />
+<hkern u1="T" u2="&#x2014;" k="82" />
+<hkern u1="T" u2="&#x2013;" k="82" />
+<hkern u1="T" u2="&#x153;" k="143" />
+<hkern u1="T" u2="&#x152;" k="41" />
+<hkern u1="T" u2="&#xfd;" k="41" />
+<hkern u1="T" u2="&#xfc;" k="102" />
+<hkern u1="T" u2="&#xfb;" k="102" />
+<hkern u1="T" u2="&#xfa;" k="102" />
+<hkern u1="T" u2="&#xf9;" k="102" />
+<hkern u1="T" u2="&#xf8;" k="143" />
+<hkern u1="T" u2="&#xf6;" k="143" />
+<hkern u1="T" u2="&#xf5;" k="143" />
+<hkern u1="T" u2="&#xf4;" k="143" />
+<hkern u1="T" u2="&#xf3;" k="143" />
+<hkern u1="T" u2="&#xf2;" k="143" />
+<hkern u1="T" u2="&#xeb;" k="143" />
+<hkern u1="T" u2="&#xea;" k="143" />
+<hkern u1="T" u2="&#xe9;" k="143" />
+<hkern u1="T" u2="&#xe8;" k="143" />
+<hkern u1="T" u2="&#xe7;" k="143" />
+<hkern u1="T" u2="&#xe6;" k="164" />
+<hkern u1="T" u2="&#xe5;" k="164" />
+<hkern u1="T" u2="&#xe4;" k="164" />
+<hkern u1="T" u2="&#xe3;" k="164" />
+<hkern u1="T" u2="&#xe2;" k="164" />
+<hkern u1="T" u2="&#xe1;" k="164" />
+<hkern u1="T" u2="&#xe0;" k="143" />
+<hkern u1="T" u2="&#xd8;" k="41" />
+<hkern u1="T" u2="&#xd6;" k="41" />
+<hkern u1="T" u2="&#xd5;" k="41" />
+<hkern u1="T" u2="&#xd4;" k="41" />
+<hkern u1="T" u2="&#xd3;" k="41" />
+<hkern u1="T" u2="&#xd2;" k="41" />
+<hkern u1="T" u2="&#xc7;" k="41" />
+<hkern u1="T" u2="&#xc5;" k="143" />
+<hkern u1="T" u2="&#xc4;" k="143" />
+<hkern u1="T" u2="&#xc3;" k="143" />
+<hkern u1="T" u2="&#xc2;" k="143" />
+<hkern u1="T" u2="&#xc1;" k="143" />
+<hkern u1="T" u2="&#xc0;" k="143" />
+<hkern u1="T" u2="z" k="82" />
+<hkern u1="T" u2="y" k="41" />
+<hkern u1="T" u2="x" k="41" />
+<hkern u1="T" u2="w" k="41" />
+<hkern u1="T" u2="v" k="41" />
+<hkern u1="T" u2="u" k="102" />
+<hkern u1="T" u2="s" k="123" />
+<hkern u1="T" u2="r" k="102" />
+<hkern u1="T" u2="q" k="143" />
+<hkern u1="T" u2="p" k="102" />
+<hkern u1="T" u2="o" k="143" />
+<hkern u1="T" u2="n" k="102" />
+<hkern u1="T" u2="m" k="102" />
+<hkern u1="T" u2="g" k="143" />
+<hkern u1="T" u2="e" k="143" />
+<hkern u1="T" u2="d" k="143" />
+<hkern u1="T" u2="c" k="143" />
+<hkern u1="T" u2="a" k="164" />
+<hkern u1="T" u2="T" k="-41" />
+<hkern u1="T" u2="Q" k="41" />
+<hkern u1="T" u2="O" k="41" />
+<hkern u1="T" u2="G" k="41" />
+<hkern u1="T" u2="C" k="41" />
+<hkern u1="T" u2="A" k="143" />
+<hkern u1="T" u2="&#x3f;" k="-41" />
+<hkern u1="T" u2="&#x2e;" k="123" />
+<hkern u1="T" u2="&#x2d;" k="82" />
+<hkern u1="T" u2="&#x2c;" k="123" />
+<hkern u1="U" u2="&#x201e;" k="41" />
+<hkern u1="U" u2="&#x201a;" k="41" />
+<hkern u1="U" u2="&#xc5;" k="20" />
+<hkern u1="U" u2="&#xc4;" k="20" />
+<hkern u1="U" u2="&#xc3;" k="20" />
+<hkern u1="U" u2="&#xc2;" k="20" />
+<hkern u1="U" u2="&#xc1;" k="20" />
+<hkern u1="U" u2="&#xc0;" k="20" />
+<hkern u1="U" u2="A" k="20" />
+<hkern u1="U" u2="&#x2e;" k="41" />
+<hkern u1="U" u2="&#x2c;" k="41" />
+<hkern u1="V" u2="&#x201e;" k="102" />
+<hkern u1="V" u2="&#x201a;" k="102" />
+<hkern u1="V" u2="&#x153;" k="41" />
+<hkern u1="V" u2="&#x152;" k="20" />
+<hkern u1="V" u2="&#xfc;" k="20" />
+<hkern u1="V" u2="&#xfb;" k="20" />
+<hkern u1="V" u2="&#xfa;" k="20" />
+<hkern u1="V" u2="&#xf9;" k="20" />
+<hkern u1="V" u2="&#xf8;" k="41" />
+<hkern u1="V" u2="&#xf6;" k="41" />
+<hkern u1="V" u2="&#xf5;" k="41" />
+<hkern u1="V" u2="&#xf4;" k="41" />
+<hkern u1="V" u2="&#xf3;" k="41" />
+<hkern u1="V" u2="&#xf2;" k="41" />
+<hkern u1="V" u2="&#xeb;" k="41" />
+<hkern u1="V" u2="&#xea;" k="41" />
+<hkern u1="V" u2="&#xe9;" k="41" />
+<hkern u1="V" u2="&#xe8;" k="41" />
+<hkern u1="V" u2="&#xe7;" k="41" />
+<hkern u1="V" u2="&#xe6;" k="41" />
+<hkern u1="V" u2="&#xe5;" k="41" />
+<hkern u1="V" u2="&#xe4;" k="41" />
+<hkern u1="V" u2="&#xe3;" k="41" />
+<hkern u1="V" u2="&#xe2;" k="41" />
+<hkern u1="V" u2="&#xe1;" k="41" />
+<hkern u1="V" u2="&#xe0;" k="41" />
+<hkern u1="V" u2="&#xd8;" k="20" />
+<hkern u1="V" u2="&#xd6;" k="20" />
+<hkern u1="V" u2="&#xd5;" k="20" />
+<hkern u1="V" u2="&#xd4;" k="20" />
+<hkern u1="V" u2="&#xd3;" k="20" />
+<hkern u1="V" u2="&#xd2;" k="20" />
+<hkern u1="V" u2="&#xc7;" k="20" />
+<hkern u1="V" u2="&#xc5;" k="82" />
+<hkern u1="V" u2="&#xc4;" k="82" />
+<hkern u1="V" u2="&#xc3;" k="82" />
+<hkern u1="V" u2="&#xc2;" k="82" />
+<hkern u1="V" u2="&#xc1;" k="82" />
+<hkern u1="V" u2="&#xc0;" k="82" />
+<hkern u1="V" u2="u" k="20" />
+<hkern u1="V" u2="s" k="20" />
+<hkern u1="V" u2="r" k="20" />
+<hkern u1="V" u2="q" k="41" />
+<hkern u1="V" u2="p" k="20" />
+<hkern u1="V" u2="o" k="41" />
+<hkern u1="V" u2="n" k="20" />
+<hkern u1="V" u2="m" k="20" />
+<hkern u1="V" u2="g" k="20" />
+<hkern u1="V" u2="e" k="41" />
+<hkern u1="V" u2="d" k="41" />
+<hkern u1="V" u2="c" k="41" />
+<hkern u1="V" u2="a" k="41" />
+<hkern u1="V" u2="Q" k="20" />
+<hkern u1="V" u2="O" k="20" />
+<hkern u1="V" u2="G" k="20" />
+<hkern u1="V" u2="C" k="20" />
+<hkern u1="V" u2="A" k="82" />
+<hkern u1="V" u2="&#x3f;" k="-41" />
+<hkern u1="V" u2="&#x2e;" k="102" />
+<hkern u1="V" u2="&#x2c;" k="102" />
+<hkern u1="W" u2="&#x201e;" k="102" />
+<hkern u1="W" u2="&#x201a;" k="102" />
+<hkern u1="W" u2="&#x153;" k="41" />
+<hkern u1="W" u2="&#x152;" k="20" />
+<hkern u1="W" u2="&#xfc;" k="20" />
+<hkern u1="W" u2="&#xfb;" k="20" />
+<hkern u1="W" u2="&#xfa;" k="20" />
+<hkern u1="W" u2="&#xf9;" k="20" />
+<hkern u1="W" u2="&#xf8;" k="41" />
+<hkern u1="W" u2="&#xf6;" k="41" />
+<hkern u1="W" u2="&#xf5;" k="41" />
+<hkern u1="W" u2="&#xf4;" k="41" />
+<hkern u1="W" u2="&#xf3;" k="41" />
+<hkern u1="W" u2="&#xf2;" k="41" />
+<hkern u1="W" u2="&#xeb;" k="41" />
+<hkern u1="W" u2="&#xea;" k="41" />
+<hkern u1="W" u2="&#xe9;" k="41" />
+<hkern u1="W" u2="&#xe8;" k="41" />
+<hkern u1="W" u2="&#xe7;" k="41" />
+<hkern u1="W" u2="&#xe6;" k="41" />
+<hkern u1="W" u2="&#xe5;" k="41" />
+<hkern u1="W" u2="&#xe4;" k="41" />
+<hkern u1="W" u2="&#xe3;" k="41" />
+<hkern u1="W" u2="&#xe2;" k="41" />
+<hkern u1="W" u2="&#xe1;" k="41" />
+<hkern u1="W" u2="&#xe0;" k="41" />
+<hkern u1="W" u2="&#xd8;" k="20" />
+<hkern u1="W" u2="&#xd6;" k="20" />
+<hkern u1="W" u2="&#xd5;" k="20" />
+<hkern u1="W" u2="&#xd4;" k="20" />
+<hkern u1="W" u2="&#xd3;" k="20" />
+<hkern u1="W" u2="&#xd2;" k="20" />
+<hkern u1="W" u2="&#xc7;" k="20" />
+<hkern u1="W" u2="&#xc5;" k="82" />
+<hkern u1="W" u2="&#xc4;" k="82" />
+<hkern u1="W" u2="&#xc3;" k="82" />
+<hkern u1="W" u2="&#xc2;" k="82" />
+<hkern u1="W" u2="&#xc1;" k="82" />
+<hkern u1="W" u2="&#xc0;" k="82" />
+<hkern u1="W" u2="u" k="20" />
+<hkern u1="W" u2="s" k="20" />
+<hkern u1="W" u2="r" k="20" />
+<hkern u1="W" u2="q" k="41" />
+<hkern u1="W" u2="p" k="20" />
+<hkern u1="W" u2="o" k="41" />
+<hkern u1="W" u2="n" k="20" />
+<hkern u1="W" u2="m" k="20" />
+<hkern u1="W" u2="g" k="20" />
+<hkern u1="W" u2="e" k="41" />
+<hkern u1="W" u2="d" k="41" />
+<hkern u1="W" u2="c" k="41" />
+<hkern u1="W" u2="a" k="41" />
+<hkern u1="W" u2="Q" k="20" />
+<hkern u1="W" u2="O" k="20" />
+<hkern u1="W" u2="G" k="20" />
+<hkern u1="W" u2="C" k="20" />
+<hkern u1="W" u2="A" k="82" />
+<hkern u1="W" u2="&#x3f;" k="-41" />
+<hkern u1="W" u2="&#x2e;" k="102" />
+<hkern u1="W" u2="&#x2c;" k="102" />
+<hkern u1="X" u2="&#x152;" k="41" />
+<hkern u1="X" u2="&#xd8;" k="41" />
+<hkern u1="X" u2="&#xd6;" k="41" />
+<hkern u1="X" u2="&#xd5;" k="41" />
+<hkern u1="X" u2="&#xd4;" k="41" />
+<hkern u1="X" u2="&#xd3;" k="41" />
+<hkern u1="X" u2="&#xd2;" k="41" />
+<hkern u1="X" u2="&#xc7;" k="41" />
+<hkern u1="X" u2="Q" k="41" />
+<hkern u1="X" u2="O" k="41" />
+<hkern u1="X" u2="G" k="41" />
+<hkern u1="X" u2="C" k="41" />
+<hkern u1="Y" u2="&#x201e;" k="123" />
+<hkern u1="Y" u2="&#x201a;" k="123" />
+<hkern u1="Y" u2="&#x153;" k="102" />
+<hkern u1="Y" u2="&#x152;" k="41" />
+<hkern u1="Y" u2="&#xfc;" k="61" />
+<hkern u1="Y" u2="&#xfb;" k="61" />
+<hkern u1="Y" u2="&#xfa;" k="61" />
+<hkern u1="Y" u2="&#xf9;" k="61" />
+<hkern u1="Y" u2="&#xf8;" k="102" />
+<hkern u1="Y" u2="&#xf6;" k="102" />
+<hkern u1="Y" u2="&#xf5;" k="102" />
+<hkern u1="Y" u2="&#xf4;" k="102" />
+<hkern u1="Y" u2="&#xf3;" k="102" />
+<hkern u1="Y" u2="&#xf2;" k="102" />
+<hkern u1="Y" u2="&#xeb;" k="102" />
+<hkern u1="Y" u2="&#xea;" k="102" />
+<hkern u1="Y" u2="&#xe9;" k="102" />
+<hkern u1="Y" u2="&#xe8;" k="102" />
+<hkern u1="Y" u2="&#xe7;" k="102" />
+<hkern u1="Y" u2="&#xe6;" k="102" />
+<hkern u1="Y" u2="&#xe5;" k="102" />
+<hkern u1="Y" u2="&#xe4;" k="102" />
+<hkern u1="Y" u2="&#xe3;" k="102" />
+<hkern u1="Y" u2="&#xe2;" k="102" />
+<hkern u1="Y" u2="&#xe1;" k="102" />
+<hkern u1="Y" u2="&#xe0;" k="102" />
+<hkern u1="Y" u2="&#xd8;" k="41" />
+<hkern u1="Y" u2="&#xd6;" k="41" />
+<hkern u1="Y" u2="&#xd5;" k="41" />
+<hkern u1="Y" u2="&#xd4;" k="41" />
+<hkern u1="Y" u2="&#xd3;" k="41" />
+<hkern u1="Y" u2="&#xd2;" k="41" />
+<hkern u1="Y" u2="&#xc7;" k="41" />
+<hkern u1="Y" u2="&#xc5;" k="123" />
+<hkern u1="Y" u2="&#xc4;" k="123" />
+<hkern u1="Y" u2="&#xc3;" k="123" />
+<hkern u1="Y" u2="&#xc2;" k="123" />
+<hkern u1="Y" u2="&#xc1;" k="123" />
+<hkern u1="Y" u2="&#xc0;" k="123" />
+<hkern u1="Y" u2="z" k="41" />
+<hkern u1="Y" u2="u" k="61" />
+<hkern u1="Y" u2="s" k="82" />
+<hkern u1="Y" u2="r" k="61" />
+<hkern u1="Y" u2="q" k="102" />
+<hkern u1="Y" u2="p" k="61" />
+<hkern u1="Y" u2="o" k="102" />
+<hkern u1="Y" u2="n" k="61" />
+<hkern u1="Y" u2="m" k="61" />
+<hkern u1="Y" u2="g" k="41" />
+<hkern u1="Y" u2="e" k="102" />
+<hkern u1="Y" u2="d" k="102" />
+<hkern u1="Y" u2="c" k="102" />
+<hkern u1="Y" u2="a" k="102" />
+<hkern u1="Y" u2="Q" k="41" />
+<hkern u1="Y" u2="O" k="41" />
+<hkern u1="Y" u2="G" k="41" />
+<hkern u1="Y" u2="C" k="41" />
+<hkern u1="Y" u2="A" k="123" />
+<hkern u1="Y" u2="&#x3f;" k="-41" />
+<hkern u1="Y" u2="&#x2e;" k="123" />
+<hkern u1="Y" u2="&#x2c;" k="123" />
+<hkern u1="Z" u2="&#x152;" k="20" />
+<hkern u1="Z" u2="&#xd8;" k="20" />
+<hkern u1="Z" u2="&#xd6;" k="20" />
+<hkern u1="Z" u2="&#xd5;" k="20" />
+<hkern u1="Z" u2="&#xd4;" k="20" />
+<hkern u1="Z" u2="&#xd3;" k="20" />
+<hkern u1="Z" u2="&#xd2;" k="20" />
+<hkern u1="Z" u2="&#xc7;" k="20" />
+<hkern u1="Z" u2="Q" k="20" />
+<hkern u1="Z" u2="O" k="20" />
+<hkern u1="Z" u2="G" k="20" />
+<hkern u1="Z" u2="C" k="20" />
+<hkern u1="[" u2="J" k="-184" />
+<hkern u1="a" u2="&#x201d;" k="20" />
+<hkern u1="a" u2="&#x2019;" k="20" />
+<hkern u1="a" u2="&#x27;" k="20" />
+<hkern u1="a" u2="&#x22;" k="20" />
+<hkern u1="b" u2="&#x201d;" k="20" />
+<hkern u1="b" u2="&#x2019;" k="20" />
+<hkern u1="b" u2="&#xfd;" k="41" />
+<hkern u1="b" u2="z" k="20" />
+<hkern u1="b" u2="y" k="41" />
+<hkern u1="b" u2="x" k="41" />
+<hkern u1="b" u2="w" k="41" />
+<hkern u1="b" u2="v" k="41" />
+<hkern u1="b" u2="&#x27;" k="20" />
+<hkern u1="b" u2="&#x22;" k="20" />
+<hkern u1="c" u2="&#x201d;" k="-41" />
+<hkern u1="c" u2="&#x2019;" k="-41" />
+<hkern u1="c" u2="&#x27;" k="-41" />
+<hkern u1="c" u2="&#x22;" k="-41" />
+<hkern u1="e" u2="&#x201d;" k="20" />
+<hkern u1="e" u2="&#x2019;" k="20" />
+<hkern u1="e" u2="&#xfd;" k="41" />
+<hkern u1="e" u2="z" k="20" />
+<hkern u1="e" u2="y" k="41" />
+<hkern u1="e" u2="x" k="41" />
+<hkern u1="e" u2="w" k="41" />
+<hkern u1="e" u2="v" k="41" />
+<hkern u1="e" u2="&#x27;" k="20" />
+<hkern u1="e" u2="&#x22;" k="20" />
+<hkern u1="f" u2="&#x201d;" k="-123" />
+<hkern u1="f" u2="&#x2019;" k="-123" />
+<hkern u1="f" u2="&#x27;" k="-123" />
+<hkern u1="f" u2="&#x22;" k="-123" />
+<hkern u1="h" u2="&#x201d;" k="20" />
+<hkern u1="h" u2="&#x2019;" k="20" />
+<hkern u1="h" u2="&#x27;" k="20" />
+<hkern u1="h" u2="&#x22;" k="20" />
+<hkern u1="k" u2="&#x153;" k="41" />
+<hkern u1="k" u2="&#xf8;" k="41" />
+<hkern u1="k" u2="&#xf6;" k="41" />
+<hkern u1="k" u2="&#xf5;" k="41" />
+<hkern u1="k" u2="&#xf4;" k="41" />
+<hkern u1="k" u2="&#xf3;" k="41" />
+<hkern u1="k" u2="&#xf2;" k="41" />
+<hkern u1="k" u2="&#xeb;" k="41" />
+<hkern u1="k" u2="&#xea;" k="41" />
+<hkern u1="k" u2="&#xe9;" k="41" />
+<hkern u1="k" u2="&#xe8;" k="41" />
+<hkern u1="k" u2="&#xe7;" k="41" />
+<hkern u1="k" u2="&#xe0;" k="41" />
+<hkern u1="k" u2="q" k="41" />
+<hkern u1="k" u2="o" k="41" />
+<hkern u1="k" u2="e" k="41" />
+<hkern u1="k" u2="d" k="41" />
+<hkern u1="k" u2="c" k="41" />
+<hkern u1="m" u2="&#x201d;" k="20" />
+<hkern u1="m" u2="&#x2019;" k="20" />
+<hkern u1="m" u2="&#x27;" k="20" />
+<hkern u1="m" u2="&#x22;" k="20" />
+<hkern u1="n" u2="&#x201d;" k="20" />
+<hkern u1="n" u2="&#x2019;" k="20" />
+<hkern u1="n" u2="&#x27;" k="20" />
+<hkern u1="n" u2="&#x22;" k="20" />
+<hkern u1="o" u2="&#x201d;" k="20" />
+<hkern u1="o" u2="&#x2019;" k="20" />
+<hkern u1="o" u2="&#xfd;" k="41" />
+<hkern u1="o" u2="z" k="20" />
+<hkern u1="o" u2="y" k="41" />
+<hkern u1="o" u2="x" k="41" />
+<hkern u1="o" u2="w" k="41" />
+<hkern u1="o" u2="v" k="41" />
+<hkern u1="o" u2="&#x27;" k="20" />
+<hkern u1="o" u2="&#x22;" k="20" />
+<hkern u1="p" u2="&#x201d;" k="20" />
+<hkern u1="p" u2="&#x2019;" k="20" />
+<hkern u1="p" u2="&#xfd;" k="41" />
+<hkern u1="p" u2="z" k="20" />
+<hkern u1="p" u2="y" k="41" />
+<hkern u1="p" u2="x" k="41" />
+<hkern u1="p" u2="w" k="41" />
+<hkern u1="p" u2="v" k="41" />
+<hkern u1="p" u2="&#x27;" k="20" />
+<hkern u1="p" u2="&#x22;" k="20" />
+<hkern u1="r" u2="&#x201d;" k="-82" />
+<hkern u1="r" u2="&#x2019;" k="-82" />
+<hkern u1="r" u2="&#x153;" k="41" />
+<hkern u1="r" u2="&#xf8;" k="41" />
+<hkern u1="r" u2="&#xf6;" k="41" />
+<hkern u1="r" u2="&#xf5;" k="41" />
+<hkern u1="r" u2="&#xf4;" k="41" />
+<hkern u1="r" u2="&#xf3;" k="41" />
+<hkern u1="r" u2="&#xf2;" k="41" />
+<hkern u1="r" u2="&#xeb;" k="41" />
+<hkern u1="r" u2="&#xea;" k="41" />
+<hkern u1="r" u2="&#xe9;" k="41" />
+<hkern u1="r" u2="&#xe8;" k="41" />
+<hkern u1="r" u2="&#xe7;" k="41" />
+<hkern u1="r" u2="&#xe6;" k="41" />
+<hkern u1="r" u2="&#xe5;" k="41" />
+<hkern u1="r" u2="&#xe4;" k="41" />
+<hkern u1="r" u2="&#xe3;" k="41" />
+<hkern u1="r" u2="&#xe2;" k="41" />
+<hkern u1="r" u2="&#xe1;" k="41" />
+<hkern u1="r" u2="&#xe0;" k="41" />
+<hkern u1="r" u2="q" k="41" />
+<hkern u1="r" u2="o" k="41" />
+<hkern u1="r" u2="g" k="20" />
+<hkern u1="r" u2="e" k="41" />
+<hkern u1="r" u2="d" k="41" />
+<hkern u1="r" u2="c" k="41" />
+<hkern u1="r" u2="a" k="41" />
+<hkern u1="r" u2="&#x27;" k="-82" />
+<hkern u1="r" u2="&#x22;" k="-82" />
+<hkern u1="t" u2="&#x201d;" k="-41" />
+<hkern u1="t" u2="&#x2019;" k="-41" />
+<hkern u1="t" u2="&#x27;" k="-41" />
+<hkern u1="t" u2="&#x22;" k="-41" />
+<hkern u1="v" u2="&#x201e;" k="82" />
+<hkern u1="v" u2="&#x201d;" k="-82" />
+<hkern u1="v" u2="&#x201a;" k="82" />
+<hkern u1="v" u2="&#x2019;" k="-82" />
+<hkern u1="v" u2="&#x3f;" k="-41" />
+<hkern u1="v" u2="&#x2e;" k="82" />
+<hkern u1="v" u2="&#x2c;" k="82" />
+<hkern u1="v" u2="&#x27;" k="-82" />
+<hkern u1="v" u2="&#x22;" k="-82" />
+<hkern u1="w" u2="&#x201e;" k="82" />
+<hkern u1="w" u2="&#x201d;" k="-82" />
+<hkern u1="w" u2="&#x201a;" k="82" />
+<hkern u1="w" u2="&#x2019;" k="-82" />
+<hkern u1="w" u2="&#x3f;" k="-41" />
+<hkern u1="w" u2="&#x2e;" k="82" />
+<hkern u1="w" u2="&#x2c;" k="82" />
+<hkern u1="w" u2="&#x27;" k="-82" />
+<hkern u1="w" u2="&#x22;" k="-82" />
+<hkern u1="x" u2="&#x153;" k="41" />
+<hkern u1="x" u2="&#xf8;" k="41" />
+<hkern u1="x" u2="&#xf6;" k="41" />
+<hkern u1="x" u2="&#xf5;" k="41" />
+<hkern u1="x" u2="&#xf4;" k="41" />
+<hkern u1="x" u2="&#xf3;" k="41" />
+<hkern u1="x" u2="&#xf2;" k="41" />
+<hkern u1="x" u2="&#xeb;" k="41" />
+<hkern u1="x" u2="&#xea;" k="41" />
+<hkern u1="x" u2="&#xe9;" k="41" />
+<hkern u1="x" u2="&#xe8;" k="41" />
+<hkern u1="x" u2="&#xe7;" k="41" />
+<hkern u1="x" u2="&#xe0;" k="41" />
+<hkern u1="x" u2="q" k="41" />
+<hkern u1="x" u2="o" k="41" />
+<hkern u1="x" u2="e" k="41" />
+<hkern u1="x" u2="d" k="41" />
+<hkern u1="x" u2="c" k="41" />
+<hkern u1="y" u2="&#x201e;" k="82" />
+<hkern u1="y" u2="&#x201d;" k="-82" />
+<hkern u1="y" u2="&#x201a;" k="82" />
+<hkern u1="y" u2="&#x2019;" k="-82" />
+<hkern u1="y" u2="&#x3f;" k="-41" />
+<hkern u1="y" u2="&#x2e;" k="82" />
+<hkern u1="y" u2="&#x2c;" k="82" />
+<hkern u1="y" u2="&#x27;" k="-82" />
+<hkern u1="y" u2="&#x22;" k="-82" />
+<hkern u1="&#x7b;" u2="J" k="-184" />
+<hkern u1="&#xc0;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc0;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc0;" u2="&#x178;" k="123" />
+<hkern u1="&#xc0;" u2="&#x152;" k="41" />
+<hkern u1="&#xc0;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc0;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc0;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc0;" u2="Y" k="123" />
+<hkern u1="&#xc0;" u2="W" k="82" />
+<hkern u1="&#xc0;" u2="V" k="82" />
+<hkern u1="&#xc0;" u2="T" k="143" />
+<hkern u1="&#xc0;" u2="Q" k="41" />
+<hkern u1="&#xc0;" u2="O" k="41" />
+<hkern u1="&#xc0;" u2="J" k="-266" />
+<hkern u1="&#xc0;" u2="G" k="41" />
+<hkern u1="&#xc0;" u2="C" k="41" />
+<hkern u1="&#xc0;" u2="&#x27;" k="143" />
+<hkern u1="&#xc0;" u2="&#x22;" k="143" />
+<hkern u1="&#xc1;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc1;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc1;" u2="&#x178;" k="123" />
+<hkern u1="&#xc1;" u2="&#x152;" k="41" />
+<hkern u1="&#xc1;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc1;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc1;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc1;" u2="Y" k="123" />
+<hkern u1="&#xc1;" u2="W" k="82" />
+<hkern u1="&#xc1;" u2="V" k="82" />
+<hkern u1="&#xc1;" u2="T" k="143" />
+<hkern u1="&#xc1;" u2="Q" k="41" />
+<hkern u1="&#xc1;" u2="O" k="41" />
+<hkern u1="&#xc1;" u2="J" k="-266" />
+<hkern u1="&#xc1;" u2="G" k="41" />
+<hkern u1="&#xc1;" u2="C" k="41" />
+<hkern u1="&#xc1;" u2="&#x27;" k="143" />
+<hkern u1="&#xc1;" u2="&#x22;" k="143" />
+<hkern u1="&#xc2;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc2;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc2;" u2="&#x178;" k="123" />
+<hkern u1="&#xc2;" u2="&#x152;" k="41" />
+<hkern u1="&#xc2;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc2;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc2;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc2;" u2="Y" k="123" />
+<hkern u1="&#xc2;" u2="W" k="82" />
+<hkern u1="&#xc2;" u2="V" k="82" />
+<hkern u1="&#xc2;" u2="T" k="143" />
+<hkern u1="&#xc2;" u2="Q" k="41" />
+<hkern u1="&#xc2;" u2="O" k="41" />
+<hkern u1="&#xc2;" u2="J" k="-266" />
+<hkern u1="&#xc2;" u2="G" k="41" />
+<hkern u1="&#xc2;" u2="C" k="41" />
+<hkern u1="&#xc2;" u2="&#x27;" k="143" />
+<hkern u1="&#xc2;" u2="&#x22;" k="143" />
+<hkern u1="&#xc3;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc3;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc3;" u2="&#x178;" k="123" />
+<hkern u1="&#xc3;" u2="&#x152;" k="41" />
+<hkern u1="&#xc3;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc3;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc3;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc3;" u2="Y" k="123" />
+<hkern u1="&#xc3;" u2="W" k="82" />
+<hkern u1="&#xc3;" u2="V" k="82" />
+<hkern u1="&#xc3;" u2="T" k="143" />
+<hkern u1="&#xc3;" u2="Q" k="41" />
+<hkern u1="&#xc3;" u2="O" k="41" />
+<hkern u1="&#xc3;" u2="J" k="-266" />
+<hkern u1="&#xc3;" u2="G" k="41" />
+<hkern u1="&#xc3;" u2="C" k="41" />
+<hkern u1="&#xc3;" u2="&#x27;" k="143" />
+<hkern u1="&#xc3;" u2="&#x22;" k="143" />
+<hkern u1="&#xc4;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc4;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc4;" u2="&#x178;" k="123" />
+<hkern u1="&#xc4;" u2="&#x152;" k="41" />
+<hkern u1="&#xc4;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc4;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc4;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc4;" u2="Y" k="123" />
+<hkern u1="&#xc4;" u2="W" k="82" />
+<hkern u1="&#xc4;" u2="V" k="82" />
+<hkern u1="&#xc4;" u2="T" k="143" />
+<hkern u1="&#xc4;" u2="Q" k="41" />
+<hkern u1="&#xc4;" u2="O" k="41" />
+<hkern u1="&#xc4;" u2="J" k="-266" />
+<hkern u1="&#xc4;" u2="G" k="41" />
+<hkern u1="&#xc4;" u2="C" k="41" />
+<hkern u1="&#xc4;" u2="&#x27;" k="143" />
+<hkern u1="&#xc4;" u2="&#x22;" k="143" />
+<hkern u1="&#xc5;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc5;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc5;" u2="&#x178;" k="123" />
+<hkern u1="&#xc5;" u2="&#x152;" k="41" />
+<hkern u1="&#xc5;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc5;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc5;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc5;" u2="Y" k="123" />
+<hkern u1="&#xc5;" u2="W" k="82" />
+<hkern u1="&#xc5;" u2="V" k="82" />
+<hkern u1="&#xc5;" u2="T" k="143" />
+<hkern u1="&#xc5;" u2="Q" k="41" />
+<hkern u1="&#xc5;" u2="O" k="41" />
+<hkern u1="&#xc5;" u2="J" k="-266" />
+<hkern u1="&#xc5;" u2="G" k="41" />
+<hkern u1="&#xc5;" u2="C" k="41" />
+<hkern u1="&#xc5;" u2="&#x27;" k="143" />
+<hkern u1="&#xc5;" u2="&#x22;" k="143" />
+<hkern u1="&#xc6;" u2="J" k="-123" />
+<hkern u1="&#xc7;" u2="&#x152;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc7;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc7;" u2="Q" k="41" />
+<hkern u1="&#xc7;" u2="O" k="41" />
+<hkern u1="&#xc7;" u2="G" k="41" />
+<hkern u1="&#xc7;" u2="C" k="41" />
+<hkern u1="&#xc8;" u2="J" k="-123" />
+<hkern u1="&#xc9;" u2="J" k="-123" />
+<hkern u1="&#xca;" u2="J" k="-123" />
+<hkern u1="&#xcb;" u2="J" k="-123" />
+<hkern u1="&#xd0;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd0;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd0;" u2="&#x178;" k="20" />
+<hkern u1="&#xd0;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd0;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd0;" u2="Z" k="20" />
+<hkern u1="&#xd0;" u2="Y" k="20" />
+<hkern u1="&#xd0;" u2="X" k="41" />
+<hkern u1="&#xd0;" u2="W" k="20" />
+<hkern u1="&#xd0;" u2="V" k="20" />
+<hkern u1="&#xd0;" u2="T" k="61" />
+<hkern u1="&#xd0;" u2="A" k="41" />
+<hkern u1="&#xd0;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd0;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd2;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd2;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd2;" u2="&#x178;" k="20" />
+<hkern u1="&#xd2;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd2;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd2;" u2="Z" k="20" />
+<hkern u1="&#xd2;" u2="Y" k="20" />
+<hkern u1="&#xd2;" u2="X" k="41" />
+<hkern u1="&#xd2;" u2="W" k="20" />
+<hkern u1="&#xd2;" u2="V" k="20" />
+<hkern u1="&#xd2;" u2="T" k="61" />
+<hkern u1="&#xd2;" u2="A" k="41" />
+<hkern u1="&#xd2;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd2;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd3;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd3;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd3;" u2="&#x178;" k="20" />
+<hkern u1="&#xd3;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd3;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd3;" u2="Z" k="20" />
+<hkern u1="&#xd3;" u2="Y" k="20" />
+<hkern u1="&#xd3;" u2="X" k="41" />
+<hkern u1="&#xd3;" u2="W" k="20" />
+<hkern u1="&#xd3;" u2="V" k="20" />
+<hkern u1="&#xd3;" u2="T" k="61" />
+<hkern u1="&#xd3;" u2="A" k="41" />
+<hkern u1="&#xd3;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd3;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd4;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd4;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd4;" u2="&#x178;" k="20" />
+<hkern u1="&#xd4;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd4;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd4;" u2="Z" k="20" />
+<hkern u1="&#xd4;" u2="Y" k="20" />
+<hkern u1="&#xd4;" u2="X" k="41" />
+<hkern u1="&#xd4;" u2="W" k="20" />
+<hkern u1="&#xd4;" u2="V" k="20" />
+<hkern u1="&#xd4;" u2="T" k="61" />
+<hkern u1="&#xd4;" u2="A" k="41" />
+<hkern u1="&#xd4;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd4;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd5;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd5;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd5;" u2="&#x178;" k="20" />
+<hkern u1="&#xd5;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd5;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd5;" u2="Z" k="20" />
+<hkern u1="&#xd5;" u2="Y" k="20" />
+<hkern u1="&#xd5;" u2="X" k="41" />
+<hkern u1="&#xd5;" u2="W" k="20" />
+<hkern u1="&#xd5;" u2="V" k="20" />
+<hkern u1="&#xd5;" u2="T" k="61" />
+<hkern u1="&#xd5;" u2="A" k="41" />
+<hkern u1="&#xd5;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd5;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd6;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd6;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd6;" u2="&#x178;" k="20" />
+<hkern u1="&#xd6;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd6;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd6;" u2="Z" k="20" />
+<hkern u1="&#xd6;" u2="Y" k="20" />
+<hkern u1="&#xd6;" u2="X" k="41" />
+<hkern u1="&#xd6;" u2="W" k="20" />
+<hkern u1="&#xd6;" u2="V" k="20" />
+<hkern u1="&#xd6;" u2="T" k="61" />
+<hkern u1="&#xd6;" u2="A" k="41" />
+<hkern u1="&#xd6;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd6;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd8;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd8;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd8;" u2="&#x178;" k="20" />
+<hkern u1="&#xd8;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd8;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd8;" u2="Z" k="20" />
+<hkern u1="&#xd8;" u2="Y" k="20" />
+<hkern u1="&#xd8;" u2="X" k="41" />
+<hkern u1="&#xd8;" u2="W" k="20" />
+<hkern u1="&#xd8;" u2="V" k="20" />
+<hkern u1="&#xd8;" u2="T" k="61" />
+<hkern u1="&#xd8;" u2="A" k="41" />
+<hkern u1="&#xd8;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd8;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd9;" u2="&#x201e;" k="41" />
+<hkern u1="&#xd9;" u2="&#x201a;" k="41" />
+<hkern u1="&#xd9;" u2="&#xc5;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc4;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc3;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc2;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc1;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc0;" k="20" />
+<hkern u1="&#xd9;" u2="A" k="20" />
+<hkern u1="&#xd9;" u2="&#x2e;" k="41" />
+<hkern u1="&#xd9;" u2="&#x2c;" k="41" />
+<hkern u1="&#xda;" u2="&#x201e;" k="41" />
+<hkern u1="&#xda;" u2="&#x201a;" k="41" />
+<hkern u1="&#xda;" u2="&#xc5;" k="20" />
+<hkern u1="&#xda;" u2="&#xc4;" k="20" />
+<hkern u1="&#xda;" u2="&#xc3;" k="20" />
+<hkern u1="&#xda;" u2="&#xc2;" k="20" />
+<hkern u1="&#xda;" u2="&#xc1;" k="20" />
+<hkern u1="&#xda;" u2="&#xc0;" k="20" />
+<hkern u1="&#xda;" u2="A" k="20" />
+<hkern u1="&#xda;" u2="&#x2e;" k="41" />
+<hkern u1="&#xda;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdb;" u2="&#x201e;" k="41" />
+<hkern u1="&#xdb;" u2="&#x201a;" k="41" />
+<hkern u1="&#xdb;" u2="&#xc5;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc4;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc3;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc2;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc1;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc0;" k="20" />
+<hkern u1="&#xdb;" u2="A" k="20" />
+<hkern u1="&#xdb;" u2="&#x2e;" k="41" />
+<hkern u1="&#xdb;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdc;" u2="&#x201e;" k="41" />
+<hkern u1="&#xdc;" u2="&#x201a;" k="41" />
+<hkern u1="&#xdc;" u2="&#xc5;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc4;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc3;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc2;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc1;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc0;" k="20" />
+<hkern u1="&#xdc;" u2="A" k="20" />
+<hkern u1="&#xdc;" u2="&#x2e;" k="41" />
+<hkern u1="&#xdc;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdd;" u2="&#x201e;" k="123" />
+<hkern u1="&#xdd;" u2="&#x201a;" k="123" />
+<hkern u1="&#xdd;" u2="&#x153;" k="102" />
+<hkern u1="&#xdd;" u2="&#x152;" k="41" />
+<hkern u1="&#xdd;" u2="&#xfc;" k="61" />
+<hkern u1="&#xdd;" u2="&#xfb;" k="61" />
+<hkern u1="&#xdd;" u2="&#xfa;" k="61" />
+<hkern u1="&#xdd;" u2="&#xf9;" k="61" />
+<hkern u1="&#xdd;" u2="&#xf8;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf6;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf5;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf4;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf3;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf2;" k="102" />
+<hkern u1="&#xdd;" u2="&#xeb;" k="102" />
+<hkern u1="&#xdd;" u2="&#xea;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe9;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe8;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe7;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe6;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe5;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe4;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe3;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe2;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe1;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe0;" k="102" />
+<hkern u1="&#xdd;" u2="&#xd8;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd6;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd5;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd4;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd3;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd2;" k="41" />
+<hkern u1="&#xdd;" u2="&#xc7;" k="41" />
+<hkern u1="&#xdd;" u2="&#xc5;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc4;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc3;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc2;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc1;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc0;" k="123" />
+<hkern u1="&#xdd;" u2="z" k="41" />
+<hkern u1="&#xdd;" u2="u" k="61" />
+<hkern u1="&#xdd;" u2="s" k="82" />
+<hkern u1="&#xdd;" u2="r" k="61" />
+<hkern u1="&#xdd;" u2="q" k="102" />
+<hkern u1="&#xdd;" u2="p" k="61" />
+<hkern u1="&#xdd;" u2="o" k="102" />
+<hkern u1="&#xdd;" u2="n" k="61" />
+<hkern u1="&#xdd;" u2="m" k="61" />
+<hkern u1="&#xdd;" u2="g" k="41" />
+<hkern u1="&#xdd;" u2="e" k="102" />
+<hkern u1="&#xdd;" u2="d" k="102" />
+<hkern u1="&#xdd;" u2="c" k="102" />
+<hkern u1="&#xdd;" u2="a" k="102" />
+<hkern u1="&#xdd;" u2="Q" k="41" />
+<hkern u1="&#xdd;" u2="O" k="41" />
+<hkern u1="&#xdd;" u2="G" k="41" />
+<hkern u1="&#xdd;" u2="C" k="41" />
+<hkern u1="&#xdd;" u2="A" k="123" />
+<hkern u1="&#xdd;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xdd;" u2="&#x2e;" k="123" />
+<hkern u1="&#xdd;" u2="&#x2c;" k="123" />
+<hkern u1="&#xde;" u2="&#x201e;" k="266" />
+<hkern u1="&#xde;" u2="&#x201a;" k="266" />
+<hkern u1="&#xde;" u2="&#xc5;" k="102" />
+<hkern u1="&#xde;" u2="&#xc4;" k="102" />
+<hkern u1="&#xde;" u2="&#xc3;" k="102" />
+<hkern u1="&#xde;" u2="&#xc2;" k="102" />
+<hkern u1="&#xde;" u2="&#xc1;" k="102" />
+<hkern u1="&#xde;" u2="&#xc0;" k="102" />
+<hkern u1="&#xde;" u2="Z" k="20" />
+<hkern u1="&#xde;" u2="X" k="41" />
+<hkern u1="&#xde;" u2="A" k="102" />
+<hkern u1="&#xde;" u2="&#x2e;" k="266" />
+<hkern u1="&#xde;" u2="&#x2c;" k="266" />
+<hkern u1="&#xe0;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe0;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe0;" u2="&#x27;" k="20" />
+<hkern u1="&#xe0;" u2="&#x22;" k="20" />
+<hkern u1="&#xe1;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe1;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe1;" u2="&#x27;" k="20" />
+<hkern u1="&#xe1;" u2="&#x22;" k="20" />
+<hkern u1="&#xe2;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe2;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe2;" u2="&#x27;" k="20" />
+<hkern u1="&#xe2;" u2="&#x22;" k="20" />
+<hkern u1="&#xe3;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe3;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe3;" u2="&#x27;" k="20" />
+<hkern u1="&#xe3;" u2="&#x22;" k="20" />
+<hkern u1="&#xe4;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe4;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe4;" u2="&#x27;" k="20" />
+<hkern u1="&#xe4;" u2="&#x22;" k="20" />
+<hkern u1="&#xe5;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe5;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe5;" u2="&#x27;" k="20" />
+<hkern u1="&#xe5;" u2="&#x22;" k="20" />
+<hkern u1="&#xe8;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe8;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe8;" u2="&#xfd;" k="41" />
+<hkern u1="&#xe8;" u2="z" k="20" />
+<hkern u1="&#xe8;" u2="y" k="41" />
+<hkern u1="&#xe8;" u2="x" k="41" />
+<hkern u1="&#xe8;" u2="w" k="41" />
+<hkern u1="&#xe8;" u2="v" k="41" />
+<hkern u1="&#xe8;" u2="&#x27;" k="20" />
+<hkern u1="&#xe8;" u2="&#x22;" k="20" />
+<hkern u1="&#xe9;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe9;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe9;" u2="&#xfd;" k="41" />
+<hkern u1="&#xe9;" u2="z" k="20" />
+<hkern u1="&#xe9;" u2="y" k="41" />
+<hkern u1="&#xe9;" u2="x" k="41" />
+<hkern u1="&#xe9;" u2="w" k="41" />
+<hkern u1="&#xe9;" u2="v" k="41" />
+<hkern u1="&#xe9;" u2="&#x27;" k="20" />
+<hkern u1="&#xe9;" u2="&#x22;" k="20" />
+<hkern u1="&#xea;" u2="&#x201d;" k="20" />
+<hkern u1="&#xea;" u2="&#x2019;" k="20" />
+<hkern u1="&#xea;" u2="&#xfd;" k="41" />
+<hkern u1="&#xea;" u2="z" k="20" />
+<hkern u1="&#xea;" u2="y" k="41" />
+<hkern u1="&#xea;" u2="x" k="41" />
+<hkern u1="&#xea;" u2="w" k="41" />
+<hkern u1="&#xea;" u2="v" k="41" />
+<hkern u1="&#xea;" u2="&#x27;" k="20" />
+<hkern u1="&#xea;" u2="&#x22;" k="20" />
+<hkern u1="&#xeb;" u2="&#x201d;" k="20" />
+<hkern u1="&#xeb;" u2="&#x2019;" k="20" />
+<hkern u1="&#xeb;" u2="&#xfd;" k="41" />
+<hkern u1="&#xeb;" u2="z" k="20" />
+<hkern u1="&#xeb;" u2="y" k="41" />
+<hkern u1="&#xeb;" u2="x" k="41" />
+<hkern u1="&#xeb;" u2="w" k="41" />
+<hkern u1="&#xeb;" u2="v" k="41" />
+<hkern u1="&#xeb;" u2="&#x27;" k="20" />
+<hkern u1="&#xeb;" u2="&#x22;" k="20" />
+<hkern u1="&#xf0;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf0;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf0;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf0;" u2="z" k="20" />
+<hkern u1="&#xf0;" u2="y" k="41" />
+<hkern u1="&#xf0;" u2="x" k="41" />
+<hkern u1="&#xf0;" u2="w" k="41" />
+<hkern u1="&#xf0;" u2="v" k="41" />
+<hkern u1="&#xf0;" u2="&#x27;" k="20" />
+<hkern u1="&#xf0;" u2="&#x22;" k="20" />
+<hkern u1="&#xf2;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf2;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf2;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf2;" u2="z" k="20" />
+<hkern u1="&#xf2;" u2="y" k="41" />
+<hkern u1="&#xf2;" u2="x" k="41" />
+<hkern u1="&#xf2;" u2="w" k="41" />
+<hkern u1="&#xf2;" u2="v" k="41" />
+<hkern u1="&#xf2;" u2="&#x27;" k="20" />
+<hkern u1="&#xf2;" u2="&#x22;" k="20" />
+<hkern u1="&#xf3;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf3;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf3;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf3;" u2="z" k="20" />
+<hkern u1="&#xf3;" u2="y" k="41" />
+<hkern u1="&#xf3;" u2="x" k="41" />
+<hkern u1="&#xf3;" u2="w" k="41" />
+<hkern u1="&#xf3;" u2="v" k="41" />
+<hkern u1="&#xf3;" u2="&#x27;" k="20" />
+<hkern u1="&#xf3;" u2="&#x22;" k="20" />
+<hkern u1="&#xf4;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf4;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf4;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf4;" u2="z" k="20" />
+<hkern u1="&#xf4;" u2="y" k="41" />
+<hkern u1="&#xf4;" u2="x" k="41" />
+<hkern u1="&#xf4;" u2="w" k="41" />
+<hkern u1="&#xf4;" u2="v" k="41" />
+<hkern u1="&#xf4;" u2="&#x27;" k="20" />
+<hkern u1="&#xf4;" u2="&#x22;" k="20" />
+<hkern u1="&#xf6;" u2="&#x201d;" k="41" />
+<hkern u1="&#xf6;" u2="&#x2019;" k="41" />
+<hkern u1="&#xf6;" u2="&#x27;" k="41" />
+<hkern u1="&#xf6;" u2="&#x22;" k="41" />
+<hkern u1="&#xf8;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf8;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf8;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf8;" u2="z" k="20" />
+<hkern u1="&#xf8;" u2="y" k="41" />
+<hkern u1="&#xf8;" u2="x" k="41" />
+<hkern u1="&#xf8;" u2="w" k="41" />
+<hkern u1="&#xf8;" u2="v" k="41" />
+<hkern u1="&#xf8;" u2="&#x27;" k="20" />
+<hkern u1="&#xf8;" u2="&#x22;" k="20" />
+<hkern u1="&#xfd;" u2="&#x201e;" k="82" />
+<hkern u1="&#xfd;" u2="&#x201d;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x201a;" k="82" />
+<hkern u1="&#xfd;" u2="&#x2019;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xfd;" u2="&#x2e;" k="82" />
+<hkern u1="&#xfd;" u2="&#x2c;" k="82" />
+<hkern u1="&#xfd;" u2="&#x27;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x22;" k="-82" />
+<hkern u1="&#xfe;" u2="&#x201d;" k="20" />
+<hkern u1="&#xfe;" u2="&#x2019;" k="20" />
+<hkern u1="&#xfe;" u2="&#xfd;" k="41" />
+<hkern u1="&#xfe;" u2="z" k="20" />
+<hkern u1="&#xfe;" u2="y" k="41" />
+<hkern u1="&#xfe;" u2="x" k="41" />
+<hkern u1="&#xfe;" u2="w" k="41" />
+<hkern u1="&#xfe;" u2="v" k="41" />
+<hkern u1="&#xfe;" u2="&#x27;" k="20" />
+<hkern u1="&#xfe;" u2="&#x22;" k="20" />
+<hkern u1="&#xff;" u2="&#x201e;" k="82" />
+<hkern u1="&#xff;" u2="&#x201d;" k="-82" />
+<hkern u1="&#xff;" u2="&#x201a;" k="82" />
+<hkern u1="&#xff;" u2="&#x2019;" k="-82" />
+<hkern u1="&#xff;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xff;" u2="&#x2e;" k="82" />
+<hkern u1="&#xff;" u2="&#x2c;" k="82" />
+<hkern u1="&#xff;" u2="&#x27;" k="-82" />
+<hkern u1="&#xff;" u2="&#x22;" k="-82" />
+<hkern u1="&#x152;" u2="J" k="-123" />
+<hkern u1="&#x178;" u2="&#x201e;" k="123" />
+<hkern u1="&#x178;" u2="&#x201a;" k="123" />
+<hkern u1="&#x178;" u2="&#x153;" k="102" />
+<hkern u1="&#x178;" u2="&#x152;" k="41" />
+<hkern u1="&#x178;" u2="&#xfc;" k="61" />
+<hkern u1="&#x178;" u2="&#xfb;" k="61" />
+<hkern u1="&#x178;" u2="&#xfa;" k="61" />
+<hkern u1="&#x178;" u2="&#xf9;" k="61" />
+<hkern u1="&#x178;" u2="&#xf8;" k="102" />
+<hkern u1="&#x178;" u2="&#xf6;" k="102" />
+<hkern u1="&#x178;" u2="&#xf5;" k="102" />
+<hkern u1="&#x178;" u2="&#xf4;" k="102" />
+<hkern u1="&#x178;" u2="&#xf3;" k="102" />
+<hkern u1="&#x178;" u2="&#xf2;" k="102" />
+<hkern u1="&#x178;" u2="&#xeb;" k="102" />
+<hkern u1="&#x178;" u2="&#xea;" k="102" />
+<hkern u1="&#x178;" u2="&#xe9;" k="102" />
+<hkern u1="&#x178;" u2="&#xe8;" k="102" />
+<hkern u1="&#x178;" u2="&#xe7;" k="102" />
+<hkern u1="&#x178;" u2="&#xe6;" k="102" />
+<hkern u1="&#x178;" u2="&#xe5;" k="102" />
+<hkern u1="&#x178;" u2="&#xe4;" k="102" />
+<hkern u1="&#x178;" u2="&#xe3;" k="102" />
+<hkern u1="&#x178;" u2="&#xe2;" k="102" />
+<hkern u1="&#x178;" u2="&#xe1;" k="102" />
+<hkern u1="&#x178;" u2="&#xe0;" k="102" />
+<hkern u1="&#x178;" u2="&#xd8;" k="41" />
+<hkern u1="&#x178;" u2="&#xd6;" k="41" />
+<hkern u1="&#x178;" u2="&#xd5;" k="41" />
+<hkern u1="&#x178;" u2="&#xd4;" k="41" />
+<hkern u1="&#x178;" u2="&#xd3;" k="41" />
+<hkern u1="&#x178;" u2="&#xd2;" k="41" />
+<hkern u1="&#x178;" u2="&#xc7;" k="41" />
+<hkern u1="&#x178;" u2="&#xc5;" k="123" />
+<hkern u1="&#x178;" u2="&#xc4;" k="123" />
+<hkern u1="&#x178;" u2="&#xc3;" k="123" />
+<hkern u1="&#x178;" u2="&#xc2;" k="123" />
+<hkern u1="&#x178;" u2="&#xc1;" k="123" />
+<hkern u1="&#x178;" u2="&#xc0;" k="123" />
+<hkern u1="&#x178;" u2="z" k="41" />
+<hkern u1="&#x178;" u2="u" k="61" />
+<hkern u1="&#x178;" u2="s" k="82" />
+<hkern u1="&#x178;" u2="r" k="61" />
+<hkern u1="&#x178;" u2="q" k="102" />
+<hkern u1="&#x178;" u2="p" k="61" />
+<hkern u1="&#x178;" u2="o" k="102" />
+<hkern u1="&#x178;" u2="n" k="61" />
+<hkern u1="&#x178;" u2="m" k="61" />
+<hkern u1="&#x178;" u2="g" k="41" />
+<hkern u1="&#x178;" u2="e" k="102" />
+<hkern u1="&#x178;" u2="d" k="102" />
+<hkern u1="&#x178;" u2="c" k="102" />
+<hkern u1="&#x178;" u2="a" k="102" />
+<hkern u1="&#x178;" u2="Q" k="41" />
+<hkern u1="&#x178;" u2="O" k="41" />
+<hkern u1="&#x178;" u2="G" k="41" />
+<hkern u1="&#x178;" u2="C" k="41" />
+<hkern u1="&#x178;" u2="A" k="123" />
+<hkern u1="&#x178;" u2="&#x3f;" k="-41" />
+<hkern u1="&#x178;" u2="&#x2e;" k="123" />
+<hkern u1="&#x178;" u2="&#x2c;" k="123" />
+<hkern u1="&#x2013;" u2="T" k="82" />
+<hkern u1="&#x2014;" u2="T" k="82" />
+<hkern u1="&#x2018;" u2="&#x178;" k="-20" />
+<hkern u1="&#x2018;" u2="&#x153;" k="123" />
+<hkern u1="&#x2018;" u2="&#xfc;" k="61" />
+<hkern u1="&#x2018;" u2="&#xfb;" k="61" />
+<hkern u1="&#x2018;" u2="&#xfa;" k="61" />
+<hkern u1="&#x2018;" u2="&#xf9;" k="61" />
+<hkern u1="&#x2018;" u2="&#xf8;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf6;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf5;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf4;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf3;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf2;" k="123" />
+<hkern u1="&#x2018;" u2="&#xeb;" k="123" />
+<hkern u1="&#x2018;" u2="&#xea;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe9;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe8;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe7;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe6;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe5;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe4;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe3;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe2;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe1;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe0;" k="123" />
+<hkern u1="&#x2018;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x2018;" u2="&#xc5;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc4;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc3;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc2;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc1;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc0;" k="143" />
+<hkern u1="&#x2018;" u2="u" k="61" />
+<hkern u1="&#x2018;" u2="s" k="61" />
+<hkern u1="&#x2018;" u2="r" k="61" />
+<hkern u1="&#x2018;" u2="q" k="123" />
+<hkern u1="&#x2018;" u2="p" k="61" />
+<hkern u1="&#x2018;" u2="o" k="123" />
+<hkern u1="&#x2018;" u2="n" k="61" />
+<hkern u1="&#x2018;" u2="m" k="61" />
+<hkern u1="&#x2018;" u2="g" k="61" />
+<hkern u1="&#x2018;" u2="e" k="123" />
+<hkern u1="&#x2018;" u2="d" k="123" />
+<hkern u1="&#x2018;" u2="c" k="123" />
+<hkern u1="&#x2018;" u2="a" k="82" />
+<hkern u1="&#x2018;" u2="Y" k="-20" />
+<hkern u1="&#x2018;" u2="W" k="-41" />
+<hkern u1="&#x2018;" u2="V" k="-41" />
+<hkern u1="&#x2018;" u2="T" k="-41" />
+<hkern u1="&#x2018;" u2="A" k="143" />
+<hkern u1="&#x2019;" u2="&#x178;" k="-20" />
+<hkern u1="&#x2019;" u2="&#x153;" k="123" />
+<hkern u1="&#x2019;" u2="&#xfc;" k="61" />
+<hkern u1="&#x2019;" u2="&#xfb;" k="61" />
+<hkern u1="&#x2019;" u2="&#xfa;" k="61" />
+<hkern u1="&#x2019;" u2="&#xf9;" k="61" />
+<hkern u1="&#x2019;" u2="&#xf8;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf6;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf5;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf4;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf3;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf2;" k="123" />
+<hkern u1="&#x2019;" u2="&#xeb;" k="123" />
+<hkern u1="&#x2019;" u2="&#xea;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe9;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe8;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe7;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe6;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe5;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe4;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe3;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe2;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe1;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe0;" k="123" />
+<hkern u1="&#x2019;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x2019;" u2="&#xc5;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc4;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc3;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc2;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc1;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc0;" k="143" />
+<hkern u1="&#x2019;" u2="u" k="61" />
+<hkern u1="&#x2019;" u2="s" k="61" />
+<hkern u1="&#x2019;" u2="r" k="61" />
+<hkern u1="&#x2019;" u2="q" k="123" />
+<hkern u1="&#x2019;" u2="p" k="61" />
+<hkern u1="&#x2019;" u2="o" k="123" />
+<hkern u1="&#x2019;" u2="n" k="61" />
+<hkern u1="&#x2019;" u2="m" k="61" />
+<hkern u1="&#x2019;" u2="g" k="61" />
+<hkern u1="&#x2019;" u2="e" k="123" />
+<hkern u1="&#x2019;" u2="d" k="123" />
+<hkern u1="&#x2019;" u2="c" k="123" />
+<hkern u1="&#x2019;" u2="a" k="82" />
+<hkern u1="&#x2019;" u2="Y" k="-20" />
+<hkern u1="&#x2019;" u2="W" k="-41" />
+<hkern u1="&#x2019;" u2="V" k="-41" />
+<hkern u1="&#x2019;" u2="T" k="-41" />
+<hkern u1="&#x2019;" u2="A" k="143" />
+<hkern u1="&#x201a;" u2="&#x178;" k="123" />
+<hkern u1="&#x201a;" u2="&#x152;" k="102" />
+<hkern u1="&#x201a;" u2="&#xdd;" k="123" />
+<hkern u1="&#x201a;" u2="&#xdc;" k="41" />
+<hkern u1="&#x201a;" u2="&#xdb;" k="41" />
+<hkern u1="&#x201a;" u2="&#xda;" k="41" />
+<hkern u1="&#x201a;" u2="&#xd9;" k="41" />
+<hkern u1="&#x201a;" u2="&#xd8;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd6;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd5;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd4;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd3;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd2;" k="102" />
+<hkern u1="&#x201a;" u2="&#xc7;" k="102" />
+<hkern u1="&#x201a;" u2="Y" k="123" />
+<hkern u1="&#x201a;" u2="W" k="123" />
+<hkern u1="&#x201a;" u2="V" k="123" />
+<hkern u1="&#x201a;" u2="U" k="41" />
+<hkern u1="&#x201a;" u2="T" k="143" />
+<hkern u1="&#x201a;" u2="Q" k="102" />
+<hkern u1="&#x201a;" u2="O" k="102" />
+<hkern u1="&#x201a;" u2="G" k="102" />
+<hkern u1="&#x201a;" u2="C" k="102" />
+<hkern u1="&#x201c;" u2="&#x178;" k="-20" />
+<hkern u1="&#x201c;" u2="&#x153;" k="123" />
+<hkern u1="&#x201c;" u2="&#xfc;" k="61" />
+<hkern u1="&#x201c;" u2="&#xfb;" k="61" />
+<hkern u1="&#x201c;" u2="&#xfa;" k="61" />
+<hkern u1="&#x201c;" u2="&#xf9;" k="61" />
+<hkern u1="&#x201c;" u2="&#xf8;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf6;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf5;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf4;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf3;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf2;" k="123" />
+<hkern u1="&#x201c;" u2="&#xeb;" k="123" />
+<hkern u1="&#x201c;" u2="&#xea;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe9;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe8;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe7;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe6;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe5;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe4;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe3;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe2;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe1;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe0;" k="123" />
+<hkern u1="&#x201c;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x201c;" u2="&#xc5;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc4;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc3;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc2;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc1;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc0;" k="143" />
+<hkern u1="&#x201c;" u2="u" k="61" />
+<hkern u1="&#x201c;" u2="s" k="61" />
+<hkern u1="&#x201c;" u2="r" k="61" />
+<hkern u1="&#x201c;" u2="q" k="123" />
+<hkern u1="&#x201c;" u2="p" k="61" />
+<hkern u1="&#x201c;" u2="o" k="123" />
+<hkern u1="&#x201c;" u2="n" k="61" />
+<hkern u1="&#x201c;" u2="m" k="61" />
+<hkern u1="&#x201c;" u2="g" k="61" />
+<hkern u1="&#x201c;" u2="e" k="123" />
+<hkern u1="&#x201c;" u2="d" k="123" />
+<hkern u1="&#x201c;" u2="c" k="123" />
+<hkern u1="&#x201c;" u2="a" k="82" />
+<hkern u1="&#x201c;" u2="Y" k="-20" />
+<hkern u1="&#x201c;" u2="W" k="-41" />
+<hkern u1="&#x201c;" u2="V" k="-41" />
+<hkern u1="&#x201c;" u2="T" k="-41" />
+<hkern u1="&#x201c;" u2="A" k="143" />
+<hkern u1="&#x201e;" u2="&#x178;" k="123" />
+<hkern u1="&#x201e;" u2="&#x152;" k="102" />
+<hkern u1="&#x201e;" u2="&#xdd;" k="123" />
+<hkern u1="&#x201e;" u2="&#xdc;" k="41" />
+<hkern u1="&#x201e;" u2="&#xdb;" k="41" />
+<hkern u1="&#x201e;" u2="&#xda;" k="41" />
+<hkern u1="&#x201e;" u2="&#xd9;" k="41" />
+<hkern u1="&#x201e;" u2="&#xd8;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd6;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd5;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd4;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd3;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd2;" k="102" />
+<hkern u1="&#x201e;" u2="&#xc7;" k="102" />
+<hkern u1="&#x201e;" u2="Y" k="123" />
+<hkern u1="&#x201e;" u2="W" k="123" />
+<hkern u1="&#x201e;" u2="V" k="123" />
+<hkern u1="&#x201e;" u2="U" k="41" />
+<hkern u1="&#x201e;" u2="T" k="143" />
+<hkern u1="&#x201e;" u2="Q" k="102" />
+<hkern u1="&#x201e;" u2="O" k="102" />
+<hkern u1="&#x201e;" u2="G" k="102" />
+<hkern u1="&#x201e;" u2="C" k="102" />
+</font>
+</defs></svg> 
\ No newline at end of file
diff --git a/html/simple-shape/docs/fonts/OpenSans-Bold-webfont.woff b/html/simple-shape/docs/fonts/OpenSans-Bold-webfont.woff
new file mode 100644
index 0000000..1205787
--- /dev/null
+++ b/html/simple-shape/docs/fonts/OpenSans-Bold-webfont.woff
Binary files differdiff --git a/html/simple-shape/docs/fonts/OpenSans-BoldItalic-webfont.eot b/html/simple-shape/docs/fonts/OpenSans-BoldItalic-webfont.eot
new file mode 100644
index 0000000..1f639a1
--- /dev/null
+++ b/html/simple-shape/docs/fonts/OpenSans-BoldItalic-webfont.eot
Binary files differdiff --git a/html/simple-shape/docs/fonts/OpenSans-BoldItalic-webfont.svg b/html/simple-shape/docs/fonts/OpenSans-BoldItalic-webfont.svg
new file mode 100644
index 0000000..6a2607b
--- /dev/null
+++ b/html/simple-shape/docs/fonts/OpenSans-BoldItalic-webfont.svg
@@ -0,0 +1,1830 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata></metadata>
+<defs>
+<font id="open_sansbold_italic" horiz-adv-x="1128" >
+<font-face units-per-em="2048" ascent="1638" descent="-410" />
+<missing-glyph horiz-adv-x="532" />
+<glyph unicode="&#xfb01;" horiz-adv-x="1352" d="M0 0zM-45 -492q-104 0 -174 25v242q61 -21 115 -21q61 0 107 40t65 130l204 965h-163l30 145l183 84l18 84q41 190 138.5 277.5t273.5 87.5q131 0 235 -49l-80 -224q-69 31 -133 31q-57 0 -92 -40t-47 -105l-12 -62h219l-49 -229h-220l-215 -1010q-77 -371 -403 -371z M1065 1380q0 87 47.5 131.5t134.5 44.5q73 0 111 -31t38 -89q0 -80 -44 -129.5t-136 -49.5q-151 0 -151 123zM1081 0h-301l237 1118h301z" />
+<glyph unicode="&#xfb02;" horiz-adv-x="1352" d="M0 0zM-45 -492q-104 0 -174 25v242q61 -21 115 -21q61 0 107 40t65 130l204 965h-163l30 145l183 84l18 84q41 190 138.5 277.5t273.5 87.5q131 0 235 -49l-80 -224q-69 31 -133 31q-57 0 -92 -40t-47 -105l-12 -62h219l-49 -229h-220l-215 -1010q-77 -371 -403 -371z M1081 0h-301l330 1556h301z" />
+<glyph unicode="&#xfb03;" horiz-adv-x="2048" d="M-45 -492q-104 0 -174 25v242q61 -21 115 -21q61 0 107 40t65 130l204 965h-163l30 145l183 84l18 84q41 190 138.5 277.5t273.5 87.5q131 0 235 -49l-80 -224q-69 31 -133 31q-57 0 -92 -40t-47 -105l-12 -62h395l18 84q41 190 138.5 277.5t273.5 87.5q131 0 235 -49 l-79 -224q-69 31 -134 31q-57 0 -91.5 -40t-47.5 -105l-12 -62h219l-49 -229h-219l-215 -1010q-77 -371 -404 -371q-104 0 -174 25v242q61 -21 115 -21q136 0 172 170l205 965h-396l-215 -1010q-77 -371 -403 -371zM1778 0h-301l237 1118h301zM1761 1380q0 87 48 131.5 t135 44.5q73 0 111 -31t38 -89q0 -80 -44 -129.5t-136 -49.5q-152 0 -152 123z" />
+<glyph unicode="&#xfb04;" horiz-adv-x="2048" d="M-45 -492q-104 0 -174 25v242q61 -21 115 -21q61 0 107 40t65 130l204 965h-163l30 145l183 84l18 84q41 190 138.5 277.5t273.5 87.5q131 0 235 -49l-80 -224q-69 31 -133 31q-57 0 -92 -40t-47 -105l-12 -62h395l18 84q41 190 138.5 277.5t273.5 87.5q131 0 235 -49 l-79 -224q-69 31 -134 31q-57 0 -91.5 -40t-47.5 -105l-12 -62h219l-49 -229h-219l-215 -1010q-77 -371 -404 -371q-104 0 -174 25v242q61 -21 115 -21q136 0 172 170l205 965h-396l-215 -1010q-77 -371 -403 -371zM1778 0h-301l329 1556h301z" />
+<glyph horiz-adv-x="2048" />
+<glyph horiz-adv-x="2048" />
+<glyph unicode="&#xd;" horiz-adv-x="1044" />
+<glyph unicode=" "  horiz-adv-x="532" />
+<glyph unicode="&#x09;" horiz-adv-x="532" />
+<glyph unicode="&#xa0;" horiz-adv-x="532" />
+<glyph unicode="!" horiz-adv-x="586" d="M391 485h-241l157 977h340zM25 115q0 90 53.5 144t150.5 54q68 0 109 -38t41 -107q0 -87 -55 -141t-144 -54q-73 0 -114 37.5t-41 104.5z" />
+<glyph unicode="&#x22;" horiz-adv-x="928" d="M549 1462l-152 -528h-196l71 528h277zM954 1462l-151 -528h-199l74 528h276z" />
+<glyph unicode="#" horiz-adv-x="1323" d="M1036 846l-69 -232h258l-19 -206h-297l-116 -408h-220l117 408h-194l-115 -408h-215l113 408h-238l18 206h277l70 232h-252l18 209h289l119 407h217l-117 -407h199l116 407h215l-116 -407h239l-18 -209h-279zM553 614h197l69 232h-196z" />
+<glyph unicode="$" d="M1034 496q0 -184 -125.5 -291.5t-367.5 -124.5l-39 -199h-140l44 201q-209 12 -355 86v266q198 -107 404 -117l71 322q-163 61 -241 151t-78 214q0 173 127 279.5t350 121.5l35 151h139l-33 -151q166 -22 295 -90l-106 -232q-132 65 -242 74l-63 -299q131 -51 195 -99.5 t97 -113t33 -149.5zM594 322q63 9 102 45t39 98q0 46 -24.5 75.5t-59.5 43.5zM633 1157q-62 -7 -96.5 -41t-34.5 -94q0 -79 80 -111z" />
+<glyph unicode="%" horiz-adv-x="1753" d="M518 1274q-63 0 -110.5 -128.5t-47.5 -277.5q0 -96 56 -96q65 0 112 131t47 275q0 96 -57 96zM821 1165q0 -166 -56 -310t-151 -217t-217 -73q-139 0 -210.5 83.5t-71.5 236.5q0 169 55.5 311.5t148.5 214.5t216 72q137 0 211.5 -80t74.5 -238zM1554 1462l-1083 -1462 h-240l1088 1462h235zM1376 690q-39 0 -75 -56t-59 -154t-23 -195t55 -97q41 0 77 55t59.5 154.5t23.5 196.5q0 96 -58 96zM1679 590q0 -167 -54 -313.5t-148 -220.5t-215 -74q-144 0 -216.5 78.5t-72.5 222.5q0 177 53 322.5t148 219.5t219 74q137 0 211.5 -78.5 t74.5 -230.5z" />
+<glyph unicode="&#x26;" horiz-adv-x="1450" d="M1325 0h-350l-72 98q-175 -118 -403 -118q-209 0 -320.5 97.5t-111.5 280.5q0 145 78.5 248.5t273.5 200.5q-76 130 -76 258q0 195 117.5 307.5t316.5 112.5q169 0 266 -82.5t97 -224.5q0 -280 -365 -426l195 -263q44 57 80.5 121.5t78.5 173.5h300q-133 -313 -310 -497z M541 623q-88 -51 -123 -104.5t-35 -131.5q0 -65 45.5 -108t116.5 -43q115 0 221 59zM662 920q113 59 155.5 111t42.5 112q0 57 -30 82.5t-70 25.5q-66 0 -102.5 -46.5t-36.5 -119.5q0 -46 12 -92t29 -73z" />
+<glyph unicode="'" horiz-adv-x="522" d="M549 1462l-152 -528h-196l71 528h277z" />
+<glyph unicode="(" horiz-adv-x="694" d="M74 281q0 339 122.5 626.5t381.5 554.5h262q-255 -278 -377.5 -573.5t-122.5 -618.5q0 -308 117 -594h-234q-149 266 -149 605z" />
+<glyph unicode=")" horiz-adv-x="694" d="M618 858q0 -342 -124 -630.5t-379 -551.5h-262q499 545 499 1192q0 307 -116 594h233q149 -264 149 -604z" />
+<glyph unicode="*" horiz-adv-x="1116" d="M885 1522l-113 -353l387 29l-18 -254l-338 43l160 -336l-246 -73l-90 337l-197 -278l-207 164l275 248l-326 92l86 237l338 -174l33 369z" />
+<glyph unicode="+" d="M475 612h-366v219h366v369h219v-369h367v-219h-367v-364h-219v364z" />
+<glyph unicode="," horiz-adv-x="569" d="M377 238l8 -23q-118 -255 -262 -479h-225q74 167 194 502h285z" />
+<glyph unicode="-" horiz-adv-x="659" d="M41 424l53 250h524l-53 -250h-524z" />
+<glyph unicode="." horiz-adv-x="584" d="M25 115q0 90 53.5 144t150.5 54q68 0 109 -38t41 -107q0 -87 -55 -141t-144 -54q-73 0 -114 37.5t-41 104.5z" />
+<glyph unicode="/" horiz-adv-x="862" d="M1014 1462l-809 -1462h-295l809 1462h295z" />
+<glyph unicode="0" d="M1110 1012q0 -470 -168.5 -751t-472.5 -281q-198 0 -300.5 122t-102.5 365q0 297 84 537t228 360.5t333 120.5q399 0 399 -473zM684 1235q-80 0 -149.5 -104t-117.5 -302t-48 -368q0 -115 27.5 -173.5t97.5 -58.5q81 0 150.5 106t116 301t46.5 386q0 111 -30.5 162 t-92.5 51z" />
+<glyph unicode="1" d="M688 0h-305l180 829q35 152 76 287q-9 -8 -61.5 -47t-262.5 -170l-133 215l566 348h249z" />
+<glyph unicode="2" d="M913 0h-962l43 213l477 424q180 159 248.5 254.5t68.5 179.5q0 75 -41 114.5t-110 39.5q-66 0 -135.5 -33.5t-171.5 -118.5l-146 203q132 112 252 159.5t250 47.5q190 0 301 -98t111 -259q0 -107 -41 -201t-122.5 -188t-266.5 -245l-269 -222v-10h568z" />
+<glyph unicode="3" d="M1104 1149q0 -156 -94.5 -262t-261.5 -135v-4q131 -26 198.5 -106.5t67.5 -201.5q0 -133 -74 -238t-212 -163.5t-327 -58.5q-239 0 -387 79v267q84 -50 182 -75.5t191 -25.5q158 0 243 63.5t85 176.5q0 172 -258 172h-138l46 221h73q167 0 263 62t96 172q0 67 -43 104 t-121 37q-134 0 -287 -100l-127 204q124 81 232.5 113.5t246.5 32.5q190 0 298 -90.5t108 -243.5z" />
+<glyph unicode="4" d="M1028 303h-170l-63 -303h-293l63 303h-590l48 234l770 925h311l-195 -919h170zM616 543l58 248q12 58 40 164t42 141h-6q-35 -63 -132 -181l-313 -372h311z" />
+<glyph unicode="5" d="M623 922q183 0 289 -103t106 -287q0 -167 -71.5 -292t-208.5 -192.5t-330 -67.5q-117 0 -218.5 23t-162.5 58v269q174 -99 352 -99q154 0 241 71t87 194q0 94 -57.5 141t-166.5 47q-102 0 -213 -33l-104 78l207 733h755l-55 -262h-489l-88 -293q72 15 127 15z" />
+<glyph unicode="6" d="M88 469q0 202 61 395.5t167.5 335t256.5 213.5t357 72q125 0 223 -27l-51 -246q-84 25 -191 25q-194 0 -313.5 -108t-185.5 -345h4q115 166 311 166q157 0 242.5 -97t85.5 -273q0 -169 -71 -313.5t-190.5 -215.5t-277.5 -71q-212 0 -320 127t-108 362zM530 227 q99 0 161.5 94t62.5 236q0 71 -33.5 113.5t-102.5 42.5q-60 0 -114.5 -35.5t-87.5 -95.5t-33 -160q0 -91 40 -143t107 -52z" />
+<glyph unicode="7" d="M78 0l737 1202h-629l56 260h975l-41 -194l-752 -1268h-346z" />
+<glyph unicode="8" d="M721 1485q123 0 215.5 -42t141 -118t48.5 -174q0 -134 -80.5 -233.5t-230.5 -151.5q217 -141 217 -365q0 -122 -63.5 -218.5t-181 -149.5t-273.5 -53q-214 0 -336.5 100t-122.5 270q0 298 348 426q-165 132 -165 299q0 119 58 212.5t168 145.5t257 52zM582 643 q-116 -45 -173 -107t-57 -153q0 -81 50 -128.5t135 -47.5q93 0 147.5 53.5t54.5 138.5q0 73 -36.5 131.5t-120.5 112.5zM694 1260q-76 0 -121 -46.5t-45 -119.5q0 -132 123 -201q185 72 185 221q0 68 -39.5 107t-102.5 39z" />
+<glyph unicode="9" d="M1092 1001q0 -280 -99 -533t-264 -370.5t-403 -117.5q-128 0 -240 32v256q111 -41 227 -41q121 0 207.5 49t144 138.5t99.5 257.5h-4q-111 -158 -295 -158q-163 0 -252.5 103.5t-89.5 285.5q0 166 73 305.5t196 208t286 68.5q203 0 308.5 -123t105.5 -361zM645 1237 q-65 0 -115.5 -42t-78 -114t-27.5 -153q0 -87 37.5 -131.5t105.5 -44.5q60 0 111.5 36.5t82 100t30.5 158.5q0 84 -35.5 137t-110.5 53z" />
+<glyph unicode=":" horiz-adv-x="584" d="M207 940q0 92 55.5 145.5t149.5 53.5q68 0 108.5 -38.5t40.5 -107.5q0 -86 -54.5 -140t-144.5 -54q-72 0 -113.5 36.5t-41.5 104.5zM25 115q0 90 53.5 144t150.5 54q68 0 109 -38t41 -107q0 -87 -55 -141t-144 -54q-73 0 -114 37.5t-41 104.5z" />
+<glyph unicode=";" horiz-adv-x="584" d="M385 215q-118 -255 -262 -479h-225q74 167 194 502h285zM207 940q0 92 55.5 145.5t149.5 53.5q68 0 108.5 -38.5t40.5 -107.5q0 -86 -54.5 -140t-144.5 -54q-72 0 -113.5 36.5t-41.5 104.5z" />
+<glyph unicode="&#x3c;" d="M1061 203l-952 438v143l952 496v-240l-643 -317l643 -281v-239z" />
+<glyph unicode="=" d="M109 807v217h952v-217h-952zM109 418v219h952v-219h-952z" />
+<glyph unicode="&#x3e;" d="M109 442l643 281l-643 317v240l952 -496v-143l-952 -438v239z" />
+<glyph unicode="?" horiz-adv-x="940" d="M260 485l14 78q19 103 73.5 177t172.5 155q124 84 157.5 127t33.5 96q0 119 -133 119q-50 0 -106.5 -16t-201.5 -84l-92 221q230 125 445 125q177 0 280 -87.5t103 -244.5q0 -83 -28.5 -149.5t-82.5 -123t-190 -147.5q-64 -43 -96.5 -73t-52.5 -64.5t-38 -108.5h-258z M166 115q0 91 55 144.5t150 53.5q68 0 108.5 -38t40.5 -107q0 -87 -55 -141t-143 -54q-74 0 -115 38t-41 104z" />
+<glyph unicode="@" horiz-adv-x="1753" d="M1733 840q0 -173 -64 -321t-177.5 -231t-254.5 -83q-88 0 -144.5 38.5t-72.5 108.5h-6q-50 -77 -113 -112t-147 -35q-127 0 -198 79.5t-71 229.5q0 147 67.5 276.5t187.5 205t268 75.5q185 0 327 -55l-106 -420q-11 -44 -19 -76.5t-8 -64.5q0 -68 58 -68q66 0 124 64 t92.5 171t34.5 214q0 213 -123.5 325.5t-359.5 112.5q-203 0 -366.5 -94t-255 -266t-91.5 -392q0 -243 134 -380.5t376 -137.5q117 0 219.5 20t221.5 66v-186q-230 -90 -465 -90q-217 0 -378 85.5t-246 241.5t-85 359q0 279 120.5 497t343 341.5t497.5 123.5 q318 0 499 -163.5t181 -458.5zM995 889q-82 0 -145.5 -51.5t-100 -137t-36.5 -174.5q0 -65 24.5 -102t69.5 -37q141 0 213 270l57 222q-36 10 -82 10z" />
+<glyph unicode="A" horiz-adv-x="1286" d="M842 348h-473l-172 -348h-320l766 1468h373l147 -1468h-297zM827 608l-26 350q-10 131 -10 253v36q-44 -120 -109 -254l-188 -385h333z" />
+<glyph unicode="B" horiz-adv-x="1270" d="M788 1462q229 0 346 -81.5t117 -243.5q0 -150 -83 -247.5t-236 -129.5v-6q100 -26 159.5 -96.5t59.5 -180.5q0 -229 -153 -353t-423 -124h-522l309 1462h426zM545 883h149q121 0 181.5 48.5t60.5 139.5q0 137 -170 137h-152zM412 256h180q117 0 183.5 58t66.5 161 q0 162 -183 162h-165z" />
+<glyph unicode="C" horiz-adv-x="1253" d="M905 1227q-132 0 -237.5 -81t-169.5 -238.5t-64 -338.5q0 -167 68.5 -248t218.5 -81q146 0 338 77v-260q-199 -77 -400 -77q-254 0 -395 149.5t-141 423.5q0 262 104 482.5t278 335t400 114.5q125 0 222 -22.5t208 -82.5l-118 -250q-106 59 -175 78t-137 19z" />
+<glyph unicode="D" horiz-adv-x="1386" d="M1323 909q0 -280 -98 -486.5t-283.5 -314.5t-437.5 -108h-451l309 1462h396q270 0 417.5 -143t147.5 -410zM518 256q148 0 258 76t172 223.5t62 337.5q0 154 -72.5 234.5t-208.5 80.5h-115l-202 -952h106z" />
+<glyph unicode="E" horiz-adv-x="1110" d="M870 0h-817l309 1462h818l-54 -254h-512l-67 -321h477l-55 -254h-477l-80 -377h512z" />
+<glyph unicode="F" horiz-adv-x="1087" d="M358 0h-305l309 1462h814l-54 -254h-508l-79 -377h473l-56 -253h-473z" />
+<glyph unicode="G" horiz-adv-x="1413" d="M754 821h563l-162 -762q-134 -46 -248.5 -62.5t-242.5 -16.5q-259 0 -400 147t-141 422q0 268 107 484.5t301 334t448 117.5q218 0 410 -99l-115 -251q-74 40 -148 64t-161 24q-153 0 -273.5 -83t-189 -236.5t-68.5 -330.5q0 -172 72.5 -252.5t222.5 -80.5q76 0 170 24 l66 299h-267z" />
+<glyph unicode="H" horiz-adv-x="1434" d="M1135 0h-306l134 631h-471l-134 -631h-305l309 1462h306l-121 -573h471l121 573h305z" />
+<glyph unicode="I" horiz-adv-x="659" d="M53 0l312 1462h305l-312 -1462h-305z" />
+<glyph unicode="J" horiz-adv-x="678" d="M-135 -430q-94 0 -187 27v253q88 -20 164 -20q99 0 160.5 60.5t89.5 191.5l293 1380h305l-303 -1423q-52 -245 -175.5 -357t-346.5 -112z" />
+<glyph unicode="K" horiz-adv-x="1255" d="M1141 0h-338l-211 592l-125 -70l-109 -522h-305l309 1462h306l-152 -702l158 205l409 497h361l-594 -700z" />
+<glyph unicode="L" horiz-adv-x="1061" d="M53 0l309 1462h306l-256 -1206h512l-54 -256h-817z" />
+<glyph unicode="M" horiz-adv-x="1802" d="M838 369l551 1093h423l-309 -1462h-280l145 692q53 247 105 441h-5l-569 -1133h-281l-61 1133h-4q-11 -88 -38 -231t-187 -902h-275l309 1462h404l68 -1093h4z" />
+<glyph unicode="N" horiz-adv-x="1546" d="M1247 0h-342l-356 1106h-6l-4 -32q-32 -216 -66 -386l-145 -688h-275l309 1462h357l340 -1077h4q12 76 39 217t180 860h274z" />
+<glyph unicode="O" horiz-adv-x="1495" d="M1432 938q0 -283 -99 -506.5t-271 -337.5t-396 -114q-256 0 -399.5 147.5t-143.5 409.5q0 265 99 487.5t273 341.5t402 119q255 0 395 -144t140 -403zM872 1227q-121 0 -222 -91.5t-158.5 -251.5t-57.5 -347q0 -147 66.5 -222t187.5 -75t220.5 87t155.5 246t56 357 q0 142 -65 219.5t-183 77.5z" />
+<glyph unicode="P" horiz-adv-x="1188" d="M522 774h56q142 0 223.5 69t81.5 185q0 180 -195 180h-74zM1190 1036q0 -241 -169.5 -378.5t-467.5 -137.5h-86l-109 -520h-305l309 1462h338q242 0 366 -106.5t124 -319.5z" />
+<glyph unicode="Q" horiz-adv-x="1495" d="M1432 938q0 -316 -122.5 -555.5t-334.5 -337.5l254 -393h-359l-178 328h-26q-256 0 -399.5 147.5t-143.5 409.5q0 265 99 487.5t273 341.5t402 119q255 0 395 -144t140 -403zM872 1227q-121 0 -222 -91.5t-158.5 -251.5t-57.5 -347q0 -147 66.5 -222t187.5 -75t220.5 87 t155.5 246t56 357q0 142 -65 219.5t-183 77.5z" />
+<glyph unicode="R" horiz-adv-x="1247" d="M530 813h78q131 0 204 57t73 174q0 82 -47.5 123t-149.5 41h-74zM477 561l-119 -561h-305l309 1462h359q237 0 356 -102t119 -299q0 -158 -83 -271.5t-239 -168.5l261 -621h-332l-207 561h-119z" />
+<glyph unicode="S" horiz-adv-x="1085" d="M946 432q0 -209 -148 -330.5t-401 -121.5q-221 0 -356 90v274q193 -108 358 -108q112 0 175 42.5t63 116.5q0 43 -13.5 75.5t-38.5 60.5t-124 102q-138 99 -194 196t-56 209q0 129 62 230.5t176.5 158t263.5 56.5q217 0 397 -99l-109 -233q-156 74 -288 74 q-83 0 -136 -45t-53 -119q0 -61 33 -106.5t148 -120.5q121 -80 181 -176.5t60 -225.5z" />
+<glyph unicode="T" horiz-adv-x="1087" d="M571 0h-305l254 1204h-352l55 258h1010l-55 -258h-353z" />
+<glyph unicode="U" horiz-adv-x="1415" d="M1434 1462l-201 -946q-57 -266 -218 -401t-419 -135q-212 0 -333.5 113.5t-121.5 307.5q0 72 15 138l196 923h305l-194 -919q-17 -74 -17 -125q0 -178 189 -178q123 0 195 76.5t104 228.5l194 917h306z" />
+<glyph unicode="V" horiz-adv-x="1208" d="M535 299q78 221 110 283l432 880h316l-748 -1462h-334l-127 1462h295l51 -880q4 -45 4 -133q-2 -103 -6 -150h7z" />
+<glyph unicode="W" horiz-adv-x="1831" d="M1006 1018q-46 -146 -115 -299l-324 -719h-338l-45 1462h287l6 -798q0 -52 -4 -173t-10 -174h6q22 64 67 180.5t60 145.5l369 819h270l21 -873q0 -146 -9 -272h6q43 129 131 349l330 796h309l-647 -1462h-346l-22 721l-2 139q0 88 4 158h-4z" />
+<glyph unicode="X" horiz-adv-x="1241" d="M1124 0h-331l-172 543l-396 -543h-342l576 764l-238 698h320l153 -518l363 518h344l-545 -725z" />
+<glyph unicode="Y" horiz-adv-x="1155" d="M627 870l374 592h342l-618 -903l-119 -559h-303l119 559l-236 903h312z" />
+<glyph unicode="Z" horiz-adv-x="1098" d="M920 0h-981l38 201l777 1005h-543l53 256h936l-41 -202l-782 -1004h596z" />
+<glyph unicode="[" horiz-adv-x="678" d="M436 -324h-473l381 1786h473l-45 -211h-215l-291 -1364h215z" />
+<glyph unicode="\" horiz-adv-x="862" d="M481 1462l224 -1462h-267l-217 1462h260z" />
+<glyph unicode="]" horiz-adv-x="678" d="M-92 -113h213l291 1364h-215l45 211h473l-381 -1786h-471z" />
+<glyph unicode="^" horiz-adv-x="1081" d="M20 520l619 950h147l277 -950h-223l-174 633l-402 -633h-244z" />
+<glyph unicode="_" horiz-adv-x="819" d="M635 -324h-821l30 140h822z" />
+<glyph unicode="`" horiz-adv-x="1135" d="M934 1241h-184q-71 69 -138.5 153.5t-103.5 153.5v21h311q36 -148 115 -303v-25z" />
+<glyph unicode="a" horiz-adv-x="1217" d="M406 -20q-147 0 -231.5 106.5t-84.5 298.5q0 198 72 377.5t189 278t257 98.5q97 0 167.5 -42t109.5 -122h8l57 143h232l-238 -1118h-229l14 145h-4q-134 -165 -319 -165zM524 223q69 0 133 67t103 181.5t39 259.5q0 71 -38.5 117.5t-101.5 46.5q-68 0 -129.5 -72 t-98 -190t-36.5 -234q0 -88 33.5 -132t95.5 -44z" />
+<glyph unicode="b" horiz-adv-x="1219" d="M813 1139q146 0 230.5 -108t84.5 -298t-68 -367.5t-187 -281.5t-263 -104q-194 0 -276 163h-8l-58 -143h-231l330 1556h301l-62 -288q-41 -182 -84 -299h8q78 98 142.5 134t140.5 36zM692 895q-68 0 -130 -65t-102 -180.5t-40 -250.5q0 -80 37 -128t102 -48q67 0 128 69 t98.5 189.5t37.5 237.5q0 176 -131 176z" />
+<glyph unicode="c" horiz-adv-x="989" d="M506 -20q-201 0 -308.5 107.5t-107.5 303.5q0 212 74.5 385.5t209.5 268t308 94.5q182 0 328 -72l-92 -229q-54 23 -106 40t-118 17q-85 0 -153.5 -64t-107 -175.5t-38.5 -239.5q0 -96 45.5 -144.5t126.5 -48.5q76 0 141 23.5t134 58.5v-246q-152 -79 -336 -79z" />
+<glyph unicode="d" horiz-adv-x="1217" d="M406 -20q-147 0 -231.5 107t-84.5 300q0 196 71.5 374.5t188.5 278t258 99.5q82 0 141.5 -37t112.5 -127h8l2 28q6 110 25 195l76 358h301l-330 -1556h-229l14 145h-4q-71 -87 -148.5 -126t-170.5 -39zM532 223q66 0 128.5 68.5t100.5 182.5t38 245q0 80 -37.5 128 t-102.5 48q-68 0 -129.5 -72t-98 -190t-36.5 -234q0 -176 137 -176z" />
+<glyph unicode="e" horiz-adv-x="1141" d="M696 922q-88 0 -166 -80t-102 -195h45q155 0 241.5 48.5t86.5 131.5q0 95 -105 95zM532 -20q-210 0 -326 113t-116 319q0 207 82.5 377.5t223.5 260t319 89.5q177 0 276 -81.5t99 -223.5q0 -187 -167 -288.5t-477 -101.5h-51l-2 -21v-20q0 -91 51.5 -143.5t147.5 -52.5 q87 0 158 19t172 67v-227q-172 -86 -390 -86z" />
+<glyph unicode="f" horiz-adv-x="764" d="M-45 -492q-104 0 -174 25v242q61 -21 115 -21q61 0 107 40t65 130l204 965h-163l30 145l183 84l18 84q41 190 138.5 277.5t273.5 87.5q131 0 235 -49l-80 -224q-69 31 -133 31q-57 0 -92 -40t-47 -105l-12 -62h219l-49 -229h-220l-215 -1010q-77 -371 -403 -371z" />
+<glyph unicode="g" horiz-adv-x="1108" d="M1186 1116l-35 -166l-174 -41q16 -52 16 -118q0 -195 -121 -308.5t-329 -113.5q-59 0 -99 10q-84 -27 -84 -78q0 -34 30 -49t89 -23l137 -18q163 -21 237.5 -84.5t74.5 -183.5q0 -211 -156 -323t-446 -112q-208 0 -324.5 75.5t-116.5 207.5q0 102 68.5 175.5t214.5 121.5 q-74 47 -74 133q0 71 44.5 122.5t146.5 98.5q-65 49 -96 112t-31 153q0 199 125.5 315.5t341.5 116.5q83 0 166 -23h395zM365 -6q-106 -14 -160.5 -57t-54.5 -109q0 -115 194 -115q151 0 228 45t77 127q0 39 -32.5 60t-137.5 35zM614 948q-77 0 -124.5 -76.5t-47.5 -191.5 q0 -119 103 -119q75 0 121.5 76.5t46.5 193.5t-99 117z" />
+<glyph unicode="h" horiz-adv-x="1237" d="M977 0h-301l137 653q16 68 16 119q0 123 -108 123q-92 0 -167 -114t-118 -318l-98 -463h-301l330 1556h301q-39 -181 -60 -278t-86 -309h8q62 77 138 123.5t176 46.5q138 0 213.5 -83.5t75.5 -238.5q0 -73 -23 -180z" />
+<glyph unicode="i" horiz-adv-x="608" d="M322 1380q0 87 47.5 131.5t134.5 44.5q73 0 111 -31t38 -89q0 -80 -44 -129.5t-136 -49.5q-151 0 -151 123zM338 0h-301l237 1118h301z" />
+<glyph unicode="j" horiz-adv-x="608" d="M-90 -492q-104 0 -174 25v242q61 -21 114 -21q137 0 173 170l253 1194h302l-265 -1239q-77 -371 -403 -371zM324 1380q0 87 47.5 131.5t134.5 44.5q73 0 111 -31t38 -89q0 -80 -44 -129.5t-136 -49.5q-151 0 -151 123z" />
+<glyph unicode="k" horiz-adv-x="1163" d="M920 1118h344l-498 -504l285 -614h-336l-183 420l-120 -72l-74 -348h-301l330 1556h301l-148 -694q-8 -41 -29 -117l-28 -102h4z" />
+<glyph unicode="l" horiz-adv-x="608" d="M338 0h-301l330 1556h301z" />
+<glyph unicode="m" horiz-adv-x="1853" d="M844 1139q219 0 262 -228h6q68 110 160.5 169t197.5 59q136 0 207.5 -85t71.5 -237q0 -76 -23 -180l-133 -637h-301l138 653q16 68 16 119q0 123 -98 123q-92 0 -166.5 -112t-118.5 -318l-96 -465h-301l137 653q16 68 16 119q0 123 -98 123q-92 0 -167 -114t-118 -318 l-98 -463h-301l237 1118h230l-21 -207h6q146 228 355 228z" />
+<glyph unicode="n" horiz-adv-x="1237" d="M977 0h-301l137 653q16 68 16 119q0 123 -108 123q-92 0 -167 -114t-118 -318l-98 -463h-301l237 1118h230l-21 -207h6q146 228 355 228q138 0 213.5 -83.5t75.5 -238.5q0 -73 -23 -180z" />
+<glyph unicode="o" horiz-adv-x="1198" d="M805 696q0 197 -143 197q-75 0 -134.5 -61t-97 -179t-37.5 -243q0 -185 150 -185q75 0 135 61.5t93.5 171t33.5 238.5zM1108 696q0 -211 -70.5 -374t-203.5 -252.5t-316 -89.5q-195 0 -311.5 117.5t-116.5 312.5q0 213 71.5 379.5t206.5 258t316 91.5q196 0 310 -118 t114 -325z" />
+<glyph unicode="p" horiz-adv-x="1219" d="M813 1139q146 0 230.5 -107.5t84.5 -300.5q0 -191 -68.5 -367.5t-187.5 -280t-262 -103.5q-83 0 -143 37t-111 126h-8q-12 -159 -43 -295l-72 -340h-301l342 1610h230l-17 -170h9q138 191 317 191zM692 895q-68 0 -131.5 -67.5t-102 -180t-38.5 -248.5q0 -80 37 -128 t102 -48q67 0 128 69t98.5 189.5t37.5 237.5q0 176 -131 176z" />
+<glyph unicode="q" horiz-adv-x="1217" d="M391 -20q-88 0 -156 47.5t-106.5 138.5t-38.5 219q0 198 72 377.5t189 278t257 98.5q86 0 152.5 -37.5t124.5 -126.5h8l57 143h232l-342 -1610h-301q47 218 73 337.5t84 304.5h-8q-72 -94 -143 -132t-154 -38zM535 223q64 0 127.5 70t100 181t36.5 245q0 80 -37.5 128 t-102.5 48q-68 0 -129.5 -72t-98 -190t-36.5 -234q0 -88 36.5 -132t103.5 -44z" />
+<glyph unicode="r" horiz-adv-x="862" d="M842 1139q59 0 96 -11l-66 -290q-45 16 -100 16q-116 0 -203.5 -91.5t-124.5 -262.5l-106 -500h-301l237 1118h230l-21 -207h6q147 228 353 228z" />
+<glyph unicode="s" horiz-adv-x="969" d="M829 369q0 -188 -124.5 -288.5t-346.5 -100.5q-107 0 -186.5 15t-148.5 50v248q157 -90 319 -90q80 0 131 32.5t51 88.5q0 43 -37 77t-131 86q-121 68 -169 135.5t-48 159.5q0 170 110.5 263.5t315.5 93.5q201 0 363 -95l-99 -215q-140 84 -258 84q-57 0 -92 -25.5 t-35 -68.5q0 -39 32 -68.5t120 -74.5q123 -63 178 -137t55 -170z" />
+<glyph unicode="t" horiz-adv-x="840" d="M514 223q65 0 162 35v-225q-111 -53 -266 -53q-150 0 -220.5 63t-70.5 195q0 50 12 112l115 539h-152l29 147l196 84l132 236h194l-49 -238h283l-50 -229h-282l-115 -539q-6 -30 -6 -53q0 -74 88 -74z" />
+<glyph unicode="u" horiz-adv-x="1237" d="M262 1118h301l-137 -653q-16 -68 -16 -119q0 -123 108 -123q92 0 167 114t118 318l98 463h301l-237 -1118h-230l21 207h-6q-145 -227 -355 -227q-138 0 -211 82.5t-73 238.5q0 93 24 213z" />
+<glyph unicode="v" horiz-adv-x="1049" d="M455 301q55 153 92 223l297 594h323l-604 -1118h-323l-138 1118h295l45 -586q7 -133 7 -231h6z" />
+<glyph unicode="w" horiz-adv-x="1614" d="M856 860q-62 -178 -123 -319l-233 -541h-324l-51 1118h281l4 -495l-4 -167l-7 -171h4q6 20 14 41.5t51 136.5t46 119l231 536h328v-536q0 -142 -10 -297h6l28 80q73 208 95 258l219 495h307l-530 -1118h-330l-6 520q0 155 10 340h-6z" />
+<glyph unicode="x" horiz-adv-x="1087" d="M379 573l-225 545h321l115 -334l244 334h354l-467 -561l244 -557h-326l-125 342l-264 -342h-350z" />
+<glyph unicode="y" horiz-adv-x="1063" d="M102 1118h295l56 -518q14 -122 14 -293h6q20 51 44 119.5t65 153.5l260 538h327l-680 -1278q-177 -332 -483 -332q-90 0 -147 19v240q68 -13 116 -13q84 0 147.5 48t117.5 149l26 49z" />
+<glyph unicode="z" horiz-adv-x="932" d="M748 0h-795l35 180l575 705h-397l51 233h750l-43 -200l-566 -685h439z" />
+<glyph unicode="{" horiz-adv-x="727" d="M201 319q0 140 -209 140l45 229q122 0 192.5 41.5t92.5 138.5l61 285q38 170 131 239.5t270 69.5h84l-49 -225q-90 -2 -130.5 -34.5t-55.5 -106.5l-66 -297q-45 -207 -276 -236v-8q85 -26 126.5 -82.5t41.5 -134.5q0 -44 -15 -113l-36 -178q-7 -28 -7 -51q0 -54 33.5 -74 t91.5 -20v-226h-53q-167 0 -253.5 63.5t-86.5 184.5q0 57 14 125l39 184q15 69 15 86z" />
+<glyph unicode="|" d="M455 1550h219v-2015h-219v2015z" />
+<glyph unicode="}" horiz-adv-x="727" d="M256 1462q340 0 340 -248q0 -56 -14 -124l-39 -185q-15 -69 -15 -86q0 -139 209 -139l-45 -229q-122 0 -192.5 -42t-91.5 -139l-62 -284q-37 -170 -130.5 -240t-270.5 -70h-45v226q93 3 137 35.5t59 105.5l66 297q25 111 95 166t181 69v9q-168 51 -168 217q0 43 15 112 l37 179q6 30 6 51q0 54 -36.5 74t-109.5 20l41 225h33z" />
+<glyph unicode="~" d="M342 672q-54 0 -116.5 -33t-116.5 -88v231q101 109 256 109q64 0 117 -14t139 -50q64 -27 111 -41t95 -14q51 0 112 30.5t122 90.5v-231q-103 -109 -256 -109q-59 0 -109 11.5t-147 51.5q-89 38 -127 47t-80 9z" />
+<glyph unicode="&#xa1;" horiz-adv-x="586" d="M182 606h242l-158 -977h-340zM549 977q0 -92 -55.5 -145.5t-149.5 -53.5q-68 0 -108.5 38t-40.5 108q0 85 54 139.5t144 54.5q73 0 114.5 -37t41.5 -104z" />
+<glyph unicode="&#xa2;" d="M575 -20h-188l49 210q-134 36 -203 136t-69 258q0 193 62.5 355t178 262.5t267.5 123.5l33 158h188l-35 -158q118 -14 225 -65l-92 -230q-53 23 -105 40t-118 17q-133 0 -216 -143t-83 -336q0 -96 45 -144t127 -48q75 0 140 23.5t134 58.5v-246q-136 -71 -299 -80z" />
+<glyph unicode="&#xa3;" d="M872 1485q195 0 369 -86l-113 -232q-141 68 -237 68q-75 0 -123 -39.5t-68 -132.5l-47 -229h299l-45 -220h-299l-18 -84q-42 -195 -209 -270h655l-55 -260h-993l49 246q196 48 244 264l22 104h-192l45 220h192l49 247q41 197 162 300.5t313 103.5z" />
+<glyph unicode="&#xa4;" d="M190 723q0 102 54 197l-129 127l147 147l127 -127q91 53 197 53q105 0 196 -55l127 129l150 -143l-129 -129q53 -89 53 -199q0 -107 -53 -199l125 -125l-146 -145l-127 125q-95 -51 -196 -51q-115 0 -199 51l-125 -123l-145 145l127 125q-54 93 -54 197zM397 723 q0 -77 54.5 -132.5t134.5 -55.5q81 0 136.5 55t55.5 133q0 80 -56.5 135t-135.5 55q-78 0 -133.5 -56t-55.5 -134z" />
+<glyph unicode="&#xa5;" d="M608 872l371 590h311l-506 -747h203l-39 -178h-252l-28 -138h252l-37 -178h-252l-47 -221h-291l47 221h-252l37 178h252l29 138h-252l39 178h196l-192 747h297z" />
+<glyph unicode="&#xa6;" d="M455 1550h219v-815h-219v815zM455 350h219v-815h-219v815z" />
+<glyph unicode="&#xa7;" horiz-adv-x="995" d="M150 760q0 89 47.5 163t154.5 142q-42 34 -70 84.5t-28 107.5q0 149 117 234.5t313 85.5q172 0 344 -88l-82 -193q-147 84 -282 84q-144 0 -144 -106q0 -43 40.5 -76t127.5 -72q242 -106 242 -303q0 -188 -193 -303q38 -35 64 -85.5t26 -108.5q0 -161 -126 -253.5 t-345 -92.5q-204 0 -336 75v224q172 -105 345 -105q99 0 144.5 35t45.5 92q0 39 -33 72.5t-127 79.5q-117 57 -181 131t-64 176zM506 967q-51 -25 -82 -70.5t-31 -99.5t43.5 -96.5t143.5 -88.5q49 31 75.5 78.5t26.5 95.5q0 109 -176 181z" />
+<glyph unicode="&#xa8;" horiz-adv-x="1135" d="M397 1382q0 78 42.5 118t119.5 40q133 0 133 -108q0 -73 -39 -116.5t-121 -43.5q-135 0 -135 110zM799 1382q0 78 42 118t120 40q65 0 99 -28t34 -80q0 -73 -39.5 -116.5t-120.5 -43.5q-135 0 -135 110z" />
+<glyph unicode="&#xa9;" horiz-adv-x="1704" d="M932 1010q-111 0 -163 -73t-52 -214q0 -134 55.5 -203t159.5 -69q43 0 108.5 15.5t124.5 43.5v-191q-131 -57 -262 -57q-196 0 -307 122.5t-111 336.5q0 225 117.5 351t325.5 126q142 0 284 -72l-75 -174q-114 58 -205 58zM125 731q0 200 100 375t275 276t377 101 q199 0 373.5 -99t276 -275.5t101.5 -377.5q0 -199 -98.5 -373t-272.5 -276t-380 -102q-207 0 -382 103.5t-272.5 276.5t-97.5 371zM266 731q0 -164 81.5 -305t224 -223t305.5 -82q167 0 308 83t221.5 223.5t80.5 303.5t-80.5 303.5t-222 223.5t-307.5 83 q-164 0 -306.5 -82.5t-223.5 -223.5t-81 -304z" />
+<glyph unicode="&#xaa;" horiz-adv-x="772" d="M369 752q-103 0 -160 70t-57 198q0 117 46 228t123 171t177 60q120 0 180 -103h6l39 90h154l-158 -702h-154l8 92h-2q-80 -104 -202 -104zM442 903q45 0 84 41.5t65.5 120t26.5 154.5q0 106 -88 106q-73 0 -123.5 -96t-50.5 -215q0 -111 86 -111z" />
+<glyph unicode="&#xab;" horiz-adv-x="1151" d="M72 569l401 463l191 -155l-279 -334l135 -350l-246 -103l-202 461v18zM559 569l402 463l190 -155l-279 -334l136 -350l-246 -103l-203 461v18z" />
+<glyph unicode="&#xac;" d="M1061 248h-219v364h-733v219h952v-583z" />
+<glyph unicode="&#xad;" horiz-adv-x="659" d="M41 424zM41 424l53 250h524l-53 -250h-524z" />
+<glyph unicode="&#xae;" horiz-adv-x="1704" d="M1237 899q0 -86 -44 -149.5t-130 -96.5l197 -360h-254l-138 297h-67v-297h-230v874h308q173 0 265.5 -67.5t92.5 -200.5zM801 758h51q72 0 113 31t41 92q0 59 -35.5 88.5t-116.5 29.5h-53v-241zM125 731q0 200 100 375t275 276t377 101q199 0 373.5 -99t276 -275.5 t101.5 -377.5q0 -199 -98.5 -373t-272.5 -276t-380 -102q-207 0 -382 103.5t-272.5 276.5t-97.5 371zM266 731q0 -164 81.5 -305t224 -223t305.5 -82q167 0 308 83t221.5 223.5t80.5 303.5t-80.5 303.5t-222 223.5t-307.5 83q-164 0 -306.5 -82.5t-223.5 -223.5t-81 -304z " />
+<glyph unicode="&#xaf;" horiz-adv-x="1024" d="M1030 1556h-1036l45 201h1036z" />
+<glyph unicode="&#xb0;" horiz-adv-x="877" d="M164 1137q0 93 46.5 173.5t127.5 126.5t172 46q93 0 173.5 -47t126.5 -127t46 -172q0 -93 -46 -173t-126 -125.5t-174 -45.5q-93 0 -173 45t-126.5 125t-46.5 174zM354 1137q0 -63 45.5 -108.5t110.5 -45.5q66 0 111 46t45 108q0 63 -45.5 110t-110.5 47t-110.5 -47.5 t-45.5 -109.5z" />
+<glyph unicode="&#xb1;" d="M475 674h-366v219h366v369h219v-369h367v-219h-367v-365h-219v365zM109 0v219h952v-219h-952z" />
+<glyph unicode="&#xb2;" horiz-adv-x="776" d="M707 586h-648l35 166l273 219q111 91 141 122t44.5 59t14.5 56q0 42 -25.5 62t-60.5 20q-86 0 -188 -82l-100 158q74 57 156 87t192 30q123 0 196.5 -63t73.5 -160q0 -70 -22 -123t-70 -103.5t-189 -152.5l-129 -95h347z" />
+<glyph unicode="&#xb3;" horiz-adv-x="776" d="M813 1270q0 -87 -51 -145.5t-166 -88.5v-4q154 -33 154 -176q0 -131 -107 -209t-285 -78q-75 0 -145.5 15.5t-120.5 40.5v192q125 -72 254 -72q76 0 125 30.5t49 88.5q0 37 -26 62.5t-88 25.5h-127l34 160h90q84 0 132.5 28t48.5 85q0 40 -26 60t-71 20q-86 0 -188 -66 l-82 150q142 92 313 92q130 0 206.5 -55.5t76.5 -155.5z" />
+<glyph unicode="&#xb4;" horiz-adv-x="1135" d="M483 1266q79 88 222 303h335v-17q-46 -56 -154 -152.5t-194 -158.5h-209v25z" />
+<glyph unicode="&#xb5;" horiz-adv-x="1249" d="M424 348q0 -60 31.5 -92.5t79.5 -32.5q90 0 162.5 106.5t117.5 319.5l98 469h301l-237 -1118h-229l18 176h-6q-117 -196 -266 -196q-51 0 -89.5 19.5t-58.5 47.5h-6q-8 -66 -21.5 -139t-82.5 -400h-304l342 1610h301l-135 -645q-16 -70 -16 -125z" />
+<glyph unicode="&#xb6;" horiz-adv-x="1341" d="M1202 -260h-162v1616h-166v-1616h-161v819q-62 -18 -146 -18q-216 0 -318 125t-102 376q0 256 107.5 385t343.5 129h604v-1816z" />
+<glyph unicode="&#xb7;" horiz-adv-x="584" d="M131 553zM131 695q0 90 53.5 144t150.5 54q68 0 109 -38t41 -107q0 -87 -55 -141t-144 -54q-73 0 -114 37.5t-41 104.5z" />
+<glyph unicode="&#xb8;" horiz-adv-x="420" d="M262 -250q0 -116 -83 -179t-234 -63q-86 0 -152 23v168q63 -23 125 -23q102 0 102 82q0 34 -31 56.5t-110 31.5l96 154h185l-39 -72q141 -49 141 -178z" />
+<glyph unicode="&#xb9;" horiz-adv-x="776" d="M528 1462h207l-186 -876h-246l84 397q24 109 55 207q-16 -15 -80 -60l-131 -81l-102 165z" />
+<glyph unicode="&#xba;" horiz-adv-x="754" d="M809 1194q0 -128 -48.5 -232.5t-132.5 -157t-196 -52.5q-134 0 -202 75t-68 211q0 197 104 319t277 122q129 0 197.5 -73.5t68.5 -211.5zM522 1315q-64 0 -107.5 -89.5t-43.5 -199.5q0 -111 80 -111q63 0 105 85.5t42 207.5q0 107 -76 107z" />
+<glyph unicode="&#xbb;" horiz-adv-x="1151" d="M1079 535l-401 -463l-191 155l279 334l-135 350l246 103l202 -461v-18zM592 535l-402 -463l-190 155l279 334l-136 350l246 103l203 -461v-18z" />
+<glyph unicode="&#xbc;" horiz-adv-x="1804" d="M97 0zM1500 1462l-1084 -1462h-239l1087 1462h236zM496 1462h207l-186 -876h-246l84 397q24 109 55 207q-16 -15 -80 -60l-131 -81l-102 165zM1573 152h-119l-32 -151h-238l33 151h-373l31 174l475 557h260l-121 -563h119zM1252 320l58 231l22 74q-13 -20 -43 -58 t-211 -247h174z" />
+<glyph unicode="&#xbd;" horiz-adv-x="1804" d="M97 0zM1588 1h-648l35 166l273 219q111 91 141 122t44.5 59t14.5 56q0 42 -25.5 62t-60.5 20q-86 0 -188 -82l-100 158q74 57 156 87t192 30q123 0 196.5 -63t73.5 -160q0 -70 -22 -123t-70 -103.5t-189 -152.5l-129 -95h347zM496 1462h207l-186 -876h-246l84 397 q24 109 55 207q-16 -15 -80 -60l-131 -81l-102 165zM1500 1462l-1084 -1462h-239l1087 1462h236z" />
+<glyph unicode="&#xbe;" horiz-adv-x="1804" d="M133 0zM1633 1462l-1084 -1462h-239l1087 1462h236zM1634 152h-119l-32 -151h-238l33 151h-373l31 174l475 557h260l-121 -563h119zM1313 320l58 231l22 74q-13 -20 -43 -58t-211 -247h174zM854 1270q0 -87 -51 -145.5t-166 -88.5v-4q154 -33 154 -176q0 -131 -107 -209 t-285 -78q-75 0 -145.5 15.5t-120.5 40.5v192q125 -72 254 -72q76 0 125 30.5t49 88.5q0 37 -26 62.5t-88 25.5h-127l34 160h90q84 0 132.5 28t48.5 85q0 40 -26 60t-71 20q-86 0 -188 -66l-82 150q142 92 313 92q130 0 206.5 -55.5t76.5 -155.5z" />
+<glyph unicode="&#xbf;" horiz-adv-x="940" d="M678 606l-14 -78q-19 -105 -76.5 -180t-169.5 -151q-122 -83 -156.5 -126t-34.5 -98q0 -118 133 -118q50 0 106.5 16t201.5 84l92 -221q-221 -125 -445 -125q-177 0 -280 87.5t-103 244.5q0 82 28.5 148.5t83.5 124t189 146.5q93 62 128 106.5t51 106.5l8 33h258z M772 977q0 -92 -55.5 -145.5t-149.5 -53.5q-68 0 -108.5 38t-40.5 108q0 86 54.5 140t143.5 54q73 0 114.5 -37t41.5 -104z" />
+<glyph unicode="&#xc0;" horiz-adv-x="1286" d="M0 0zM842 348h-473l-172 -348h-320l766 1468h373l147 -1468h-297zM827 608l-26 350q-10 131 -10 253v36q-44 -120 -109 -254l-188 -385h333zM965 1579h-184q-71 69 -138.5 153.5t-103.5 153.5v21h311q36 -148 115 -303v-25z" />
+<glyph unicode="&#xc1;" horiz-adv-x="1286" d="M0 0zM842 348h-473l-172 -348h-320l766 1468h373l147 -1468h-297zM827 608l-26 350q-10 131 -10 253v36q-44 -120 -109 -254l-188 -385h333zM735 1604q79 88 222 303h335v-17q-46 -56 -154 -152.5t-194 -158.5h-209v25z" />
+<glyph unicode="&#xc2;" horiz-adv-x="1286" d="M0 0zM842 348h-473l-172 -348h-320l766 1468h373l147 -1468h-297zM827 608l-26 350q-10 131 -10 253v36q-44 -120 -109 -254l-188 -385h333zM1235 1579h-198q-63 53 -162 168q-105 -88 -232 -168h-217v25q63 57 153 147t142 156h338q22 -54 74 -142.5t102 -160.5v-25z " />
+<glyph unicode="&#xc3;" horiz-adv-x="1286" d="M0 0zM842 348h-473l-172 -348h-320l766 1468h373l147 -1468h-297zM827 608l-26 350q-10 131 -10 253v36q-44 -120 -109 -254l-188 -385h333zM999 1579q-49 0 -86.5 16.5t-69.5 36t-61.5 36t-62.5 16.5q-31 0 -55.5 -28t-38.5 -79h-177q59 309 281 309q49 0 87.5 -16.5 t71.5 -36t62 -35.5t60 -16q34 0 58 25.5t46 80.5h172q-66 -309 -287 -309z" />
+<glyph unicode="&#xc4;" horiz-adv-x="1286" d="M0 0zM842 348h-473l-172 -348h-320l766 1468h373l147 -1468h-297zM827 608l-26 350q-10 131 -10 253v36q-44 -120 -109 -254l-188 -385h333zM516 1720q0 78 42.5 118t119.5 40q133 0 133 -108q0 -73 -39 -116.5t-121 -43.5q-135 0 -135 110zM918 1720q0 78 42 118t120 40 q65 0 99 -28t34 -80q0 -73 -39.5 -116.5t-120.5 -43.5q-135 0 -135 110z" />
+<glyph unicode="&#xc5;" horiz-adv-x="1286" d="M0 0zM842 348h-473l-172 -348h-320l766 1468h373l147 -1468h-297zM827 608l-26 350q-10 131 -10 253v36q-44 -120 -109 -254l-188 -385h333zM1087 1567q0 -107 -70 -173.5t-184 -66.5q-110 0 -179 63.5t-69 174.5q0 109 68.5 173t179.5 64q110 0 182 -65t72 -170z M930 1565q0 45 -27.5 70.5t-69.5 25.5t-69 -25.5t-27 -70.5t24 -71t72 -26q42 0 69.5 26t27.5 71z" />
+<glyph unicode="&#xc6;" horiz-adv-x="1833" d="M1593 0h-817l74 348h-426l-219 -348h-328l922 1462h1104l-54 -254h-512l-67 -321h477l-55 -254h-478l-79 -377h512zM905 608l127 600h-80l-364 -600h317z" />
+<glyph unicode="&#xc7;" horiz-adv-x="1253" d="M123 0zM905 1227q-132 0 -237.5 -81t-169.5 -238.5t-64 -338.5q0 -167 68.5 -248t218.5 -81q146 0 338 77v-260q-199 -77 -400 -77q-254 0 -395 149.5t-141 423.5q0 262 104 482.5t278 335t400 114.5q125 0 222 -22.5t208 -82.5l-118 -250q-106 59 -175 78t-137 19z M825 -250q0 -116 -83 -179t-234 -63q-86 0 -152 23v168q63 -23 125 -23q102 0 102 82q0 34 -31 56.5t-110 31.5l96 154h185l-39 -72q141 -49 141 -178z" />
+<glyph unicode="&#xc8;" horiz-adv-x="1110" d="M53 0zM870 0h-817l309 1462h818l-54 -254h-512l-67 -321h477l-55 -254h-477l-80 -377h512zM906 1579h-184q-71 69 -138.5 153.5t-103.5 153.5v21h311q36 -148 115 -303v-25z" />
+<glyph unicode="&#xc9;" horiz-adv-x="1110" d="M53 0zM870 0h-817l309 1462h818l-54 -254h-512l-67 -321h477l-55 -254h-477l-80 -377h512zM608 1604q79 88 222 303h335v-17q-46 -56 -154 -152.5t-194 -158.5h-209v25z" />
+<glyph unicode="&#xca;" horiz-adv-x="1110" d="M53 0zM870 0h-817l309 1462h818l-54 -254h-512l-67 -321h477l-55 -254h-477l-80 -377h512zM1177 1579h-198q-63 53 -162 168q-105 -88 -232 -168h-217v25q63 57 153 147t142 156h338q22 -54 74 -142.5t102 -160.5v-25z" />
+<glyph unicode="&#xcb;" horiz-adv-x="1110" d="M53 0zM870 0h-817l309 1462h818l-54 -254h-512l-67 -321h477l-55 -254h-477l-80 -377h512zM438 1720q0 78 42.5 118t119.5 40q133 0 133 -108q0 -73 -39 -116.5t-121 -43.5q-135 0 -135 110zM840 1720q0 78 42 118t120 40q65 0 99 -28t34 -80q0 -73 -39.5 -116.5 t-120.5 -43.5q-135 0 -135 110z" />
+<glyph unicode="&#xcc;" horiz-adv-x="659" d="M53 0zM53 0l312 1462h305l-312 -1462h-305zM667 1579h-184q-71 69 -138.5 153.5t-103.5 153.5v21h311q36 -148 115 -303v-25z" />
+<glyph unicode="&#xcd;" horiz-adv-x="659" d="M53 0zM53 0l312 1462h305l-312 -1462h-305zM414 1604q79 88 222 303h335v-17q-46 -56 -154 -152.5t-194 -158.5h-209v25z" />
+<glyph unicode="&#xce;" horiz-adv-x="659" d="M53 0zM53 0l312 1462h305l-312 -1462h-305zM937 1579h-198q-63 53 -162 168q-105 -88 -232 -168h-217v25q63 57 153 147t142 156h338q22 -54 74 -142.5t102 -160.5v-25z" />
+<glyph unicode="&#xcf;" horiz-adv-x="659" d="M53 0zM53 0l312 1462h305l-312 -1462h-305zM222 1720q0 78 42.5 118t119.5 40q133 0 133 -108q0 -73 -39 -116.5t-121 -43.5q-135 0 -135 110zM624 1720q0 78 42 118t120 40q65 0 99 -28t34 -80q0 -73 -39.5 -116.5t-120.5 -43.5q-135 0 -135 110z" />
+<glyph unicode="&#xd0;" horiz-adv-x="1386" d="M1323 909q0 -280 -98 -486.5t-283.5 -314.5t-437.5 -108h-451l125 596h-141l55 254h139l131 612h396q270 0 417.5 -143t147.5 -410zM518 256q148 0 258 76t172 223.5t62 337.5q0 154 -72.5 234.5t-208.5 80.5h-115l-75 -358h237l-55 -254h-238l-71 -340h106z" />
+<glyph unicode="&#xd1;" horiz-adv-x="1546" d="M53 0zM1247 0h-342l-356 1106h-6l-4 -32q-32 -216 -66 -386l-145 -688h-275l309 1462h357l340 -1077h4q12 76 39 217t180 860h274zM1114 1579q-49 0 -86.5 16.5t-69.5 36t-61.5 36t-62.5 16.5q-31 0 -55.5 -28t-38.5 -79h-177q59 309 281 309q49 0 87.5 -16.5t71.5 -36 t62 -35.5t60 -16q34 0 58 25.5t46 80.5h172q-66 -309 -287 -309z" />
+<glyph unicode="&#xd2;" horiz-adv-x="1495" d="M123 0zM1432 938q0 -283 -99 -506.5t-271 -337.5t-396 -114q-256 0 -399.5 147.5t-143.5 409.5q0 265 99 487.5t273 341.5t402 119q255 0 395 -144t140 -403zM872 1227q-121 0 -222 -91.5t-158.5 -251.5t-57.5 -347q0 -147 66.5 -222t187.5 -75t220.5 87t155.5 246 t56 357q0 142 -65 219.5t-183 77.5zM1053 1579h-184q-71 69 -138.5 153.5t-103.5 153.5v21h311q36 -148 115 -303v-25z" />
+<glyph unicode="&#xd3;" horiz-adv-x="1495" d="M123 0zM1432 938q0 -283 -99 -506.5t-271 -337.5t-396 -114q-256 0 -399.5 147.5t-143.5 409.5q0 265 99 487.5t273 341.5t402 119q255 0 395 -144t140 -403zM872 1227q-121 0 -222 -91.5t-158.5 -251.5t-57.5 -347q0 -147 66.5 -222t187.5 -75t220.5 87t155.5 246 t56 357q0 142 -65 219.5t-183 77.5zM753 1604q79 88 222 303h335v-17q-46 -56 -154 -152.5t-194 -158.5h-209v25z" />
+<glyph unicode="&#xd4;" horiz-adv-x="1495" d="M123 0zM1432 938q0 -283 -99 -506.5t-271 -337.5t-396 -114q-256 0 -399.5 147.5t-143.5 409.5q0 265 99 487.5t273 341.5t402 119q255 0 395 -144t140 -403zM872 1227q-121 0 -222 -91.5t-158.5 -251.5t-57.5 -347q0 -147 66.5 -222t187.5 -75t220.5 87t155.5 246 t56 357q0 142 -65 219.5t-183 77.5zM1308 1579h-198q-63 53 -162 168q-105 -88 -232 -168h-217v25q63 57 153 147t142 156h338q22 -54 74 -142.5t102 -160.5v-25z" />
+<glyph unicode="&#xd5;" horiz-adv-x="1495" d="M123 0zM1432 938q0 -283 -99 -506.5t-271 -337.5t-396 -114q-256 0 -399.5 147.5t-143.5 409.5q0 265 99 487.5t273 341.5t402 119q255 0 395 -144t140 -403zM872 1227q-121 0 -222 -91.5t-158.5 -251.5t-57.5 -347q0 -147 66.5 -222t187.5 -75t220.5 87t155.5 246 t56 357q0 142 -65 219.5t-183 77.5zM1071 1579q-49 0 -86.5 16.5t-69.5 36t-61.5 36t-62.5 16.5q-31 0 -55.5 -28t-38.5 -79h-177q59 309 281 309q49 0 87.5 -16.5t71.5 -36t62 -35.5t60 -16q34 0 58 25.5t46 80.5h172q-66 -309 -287 -309z" />
+<glyph unicode="&#xd6;" horiz-adv-x="1495" d="M123 0zM1432 938q0 -283 -99 -506.5t-271 -337.5t-396 -114q-256 0 -399.5 147.5t-143.5 409.5q0 265 99 487.5t273 341.5t402 119q255 0 395 -144t140 -403zM872 1227q-121 0 -222 -91.5t-158.5 -251.5t-57.5 -347q0 -147 66.5 -222t187.5 -75t220.5 87t155.5 246 t56 357q0 142 -65 219.5t-183 77.5zM585 1720q0 78 42.5 118t119.5 40q133 0 133 -108q0 -73 -39 -116.5t-121 -43.5q-135 0 -135 110zM987 1720q0 78 42 118t120 40q65 0 99 -28t34 -80q0 -73 -39.5 -116.5t-120.5 -43.5q-135 0 -135 110z" />
+<glyph unicode="&#xd7;" d="M428 723l-299 301l152 154l301 -299l305 299l153 -150l-305 -305l301 -303l-149 -152l-305 301l-301 -299l-150 152z" />
+<glyph unicode="&#xd8;" horiz-adv-x="1495" d="M1432 938q0 -283 -99 -506.5t-271 -337.5t-396 -114q-180 0 -304 71l-108 -137l-154 115l121 151q-98 138 -98 357q0 265 99 487.5t273 341.5t402 119q182 0 305 -76l105 131l151 -117l-117 -145q91 -134 91 -340zM870 1233q-126 0 -229 -91.5t-160 -252.5t-57 -352 q0 -32 8 -101l596 754q-69 43 -158 43zM1133 930l-5 80l-589 -740q59 -37 153 -37q124 0 226 89t158.5 247.5t56.5 360.5z" />
+<glyph unicode="&#xd9;" horiz-adv-x="1415" d="M141 0zM1434 1462l-201 -946q-57 -266 -218 -401t-419 -135q-212 0 -333.5 113.5t-121.5 307.5q0 72 15 138l196 923h305l-194 -919q-17 -74 -17 -125q0 -178 189 -178q123 0 195 76.5t104 228.5l194 917h306zM1002 1579h-184q-71 69 -138.5 153.5t-103.5 153.5v21h311 q36 -148 115 -303v-25z" />
+<glyph unicode="&#xda;" horiz-adv-x="1415" d="M141 0zM1434 1462l-201 -946q-57 -266 -218 -401t-419 -135q-212 0 -333.5 113.5t-121.5 307.5q0 72 15 138l196 923h305l-194 -919q-17 -74 -17 -125q0 -178 189 -178q123 0 195 76.5t104 228.5l194 917h306zM757 1604q79 88 222 303h335v-17q-46 -56 -154 -152.5 t-194 -158.5h-209v25z" />
+<glyph unicode="&#xdb;" horiz-adv-x="1415" d="M141 0zM1434 1462l-201 -946q-57 -266 -218 -401t-419 -135q-212 0 -333.5 113.5t-121.5 307.5q0 72 15 138l196 923h305l-194 -919q-17 -74 -17 -125q0 -178 189 -178q123 0 195 76.5t104 228.5l194 917h306zM1284 1579h-198q-63 53 -162 168q-105 -88 -232 -168h-217 v25q63 57 153 147t142 156h338q22 -54 74 -142.5t102 -160.5v-25z" />
+<glyph unicode="&#xdc;" horiz-adv-x="1415" d="M141 0zM1434 1462l-201 -946q-57 -266 -218 -401t-419 -135q-212 0 -333.5 113.5t-121.5 307.5q0 72 15 138l196 923h305l-194 -919q-17 -74 -17 -125q0 -178 189 -178q123 0 195 76.5t104 228.5l194 917h306zM565 1720q0 78 42.5 118t119.5 40q133 0 133 -108 q0 -73 -39 -116.5t-121 -43.5q-135 0 -135 110zM967 1720q0 78 42 118t120 40q65 0 99 -28t34 -80q0 -73 -39.5 -116.5t-120.5 -43.5q-135 0 -135 110z" />
+<glyph unicode="&#xdd;" horiz-adv-x="1155" d="M186 0zM627 870l374 592h342l-618 -903l-119 -559h-303l119 559l-236 903h312zM606 1604q79 88 222 303h335v-17q-46 -56 -154 -152.5t-194 -158.5h-209v25z" />
+<glyph unicode="&#xde;" horiz-adv-x="1188" d="M1143 807q0 -243 -170.5 -378.5t-466.5 -135.5h-86l-62 -293h-305l309 1462h306l-50 -229h35q242 0 366 -106.5t124 -319.5zM475 547h55q139 0 222.5 66.5t83.5 185.5q0 180 -195 180h-74z" />
+<glyph unicode="&#xdf;" horiz-adv-x="1350" d="M846 1567q208 0 331 -90t123 -240q0 -114 -49 -192t-178 -152q-73 -42 -96 -68.5t-23 -54.5q0 -23 22 -49.5t79 -69.5q107 -83 144.5 -150.5t37.5 -150.5q0 -170 -123.5 -270t-337.5 -100q-187 0 -297 61v240q128 -78 258 -78q101 0 148 33t47 86q0 40 -26.5 75 t-108.5 97q-94 72 -129 130t-35 126q0 84 45 145t162 127q66 37 104.5 76t38.5 96q0 62 -39.5 98.5t-124.5 36.5q-96 0 -156 -51.5t-85 -171.5l-254 -1219q-43 -198 -147 -288.5t-277 -90.5q-90 0 -160 25v242q61 -21 115 -21q133 0 170 178l254 1207q47 224 182 326 t385 102z" />
+<glyph unicode="&#xe0;" horiz-adv-x="1217" d="M90 0zM406 -20q-147 0 -231.5 106.5t-84.5 298.5q0 198 72 377.5t189 278t257 98.5q97 0 167.5 -42t109.5 -122h8l57 143h232l-238 -1118h-229l14 145h-4q-134 -165 -319 -165zM524 223q69 0 133 67t103 181.5t39 259.5q0 71 -38.5 117.5t-101.5 46.5q-68 0 -129.5 -72 t-98 -190t-36.5 -234q0 -88 33.5 -132t95.5 -44zM869 1241h-184q-71 69 -138.5 153.5t-103.5 153.5v21h311q36 -148 115 -303v-25z" />
+<glyph unicode="&#xe1;" horiz-adv-x="1217" d="M90 0zM406 -20q-147 0 -231.5 106.5t-84.5 298.5q0 198 72 377.5t189 278t257 98.5q97 0 167.5 -42t109.5 -122h8l57 143h232l-238 -1118h-229l14 145h-4q-134 -165 -319 -165zM524 223q69 0 133 67t103 181.5t39 259.5q0 71 -38.5 117.5t-101.5 46.5q-68 0 -129.5 -72 t-98 -190t-36.5 -234q0 -88 33.5 -132t95.5 -44zM598 1266q79 88 222 303h335v-17q-46 -56 -154 -152.5t-194 -158.5h-209v25z" />
+<glyph unicode="&#xe2;" horiz-adv-x="1217" d="M90 0zM406 -20q-147 0 -231.5 106.5t-84.5 298.5q0 198 72 377.5t189 278t257 98.5q97 0 167.5 -42t109.5 -122h8l57 143h232l-238 -1118h-229l14 145h-4q-134 -165 -319 -165zM524 223q69 0 133 67t103 181.5t39 259.5q0 71 -38.5 117.5t-101.5 46.5q-68 0 -129.5 -72 t-98 -190t-36.5 -234q0 -88 33.5 -132t95.5 -44zM1120 1240h-198q-63 53 -162 168q-105 -88 -232 -168h-217v25q63 57 153 147t142 156h338q22 -54 74 -142.5t102 -160.5v-25z" />
+<glyph unicode="&#xe3;" horiz-adv-x="1217" d="M90 0zM406 -20q-147 0 -231.5 106.5t-84.5 298.5q0 198 72 377.5t189 278t257 98.5q97 0 167.5 -42t109.5 -122h8l57 143h232l-238 -1118h-229l14 145h-4q-134 -165 -319 -165zM524 223q69 0 133 67t103 181.5t39 259.5q0 71 -38.5 117.5t-101.5 46.5q-68 0 -129.5 -72 t-98 -190t-36.5 -234q0 -88 33.5 -132t95.5 -44zM884 1241q-49 0 -86.5 16.5t-69.5 36t-61.5 36t-62.5 16.5q-31 0 -55.5 -28t-38.5 -79h-177q59 309 281 309q49 0 87.5 -16.5t71.5 -36t62 -35.5t60 -16q34 0 58 25.5t46 80.5h172q-66 -309 -287 -309z" />
+<glyph unicode="&#xe4;" horiz-adv-x="1217" d="M90 0zM406 -20q-147 0 -231.5 106.5t-84.5 298.5q0 198 72 377.5t189 278t257 98.5q97 0 167.5 -42t109.5 -122h8l57 143h232l-238 -1118h-229l14 145h-4q-134 -165 -319 -165zM524 223q69 0 133 67t103 181.5t39 259.5q0 71 -38.5 117.5t-101.5 46.5q-68 0 -129.5 -72 t-98 -190t-36.5 -234q0 -88 33.5 -132t95.5 -44zM397 1382q0 78 42.5 118t119.5 40q133 0 133 -108q0 -73 -39 -116.5t-121 -43.5q-135 0 -135 110zM799 1382q0 78 42 118t120 40q65 0 99 -28t34 -80q0 -73 -39.5 -116.5t-120.5 -43.5q-135 0 -135 110z" />
+<glyph unicode="&#xe5;" horiz-adv-x="1217" d="M90 0zM406 -20q-147 0 -231.5 106.5t-84.5 298.5q0 198 72 377.5t189 278t257 98.5q97 0 167.5 -42t109.5 -122h8l57 143h232l-238 -1118h-229l14 145h-4q-134 -165 -319 -165zM524 223q69 0 133 67t103 181.5t39 259.5q0 71 -38.5 117.5t-101.5 46.5q-68 0 -129.5 -72 t-98 -190t-36.5 -234q0 -88 33.5 -132t95.5 -44zM1023 1479q0 -107 -70 -173.5t-184 -66.5q-110 0 -179 63.5t-69 174.5q0 109 68.5 173t179.5 64q110 0 182 -65t72 -170zM866 1477q0 45 -27.5 70.5t-69.5 25.5t-69 -25.5t-27 -70.5t24 -71t72 -26q42 0 69.5 26t27.5 71z " />
+<glyph unicode="&#xe6;" horiz-adv-x="1786" d="M1206 -20q-109 0 -179.5 27t-117.5 87l-16 -94h-188l14 145h-6q-71 -88 -146.5 -126.5t-167.5 -38.5q-146 0 -227.5 109t-81.5 296q0 200 68.5 375.5t185 277t258.5 101.5q96 0 160.5 -38.5t114.5 -125.5h6l57 143h188l-18 -90q44 49 120.5 80t168.5 31 q157 0 246.5 -83.5t89.5 -221.5q0 -187 -167 -288.5t-476 -101.5h-52l-2 -19v-19q0 -96 55.5 -147.5t159.5 -51.5q66 0 152 23t162 63v-227q-179 -86 -361 -86zM518 223q72 0 134 68t99 184.5t37 243.5q0 80 -33 128t-102 48q-68 0 -128 -69t-95 -185.5t-35 -241.5 q0 -84 32.5 -130t90.5 -46zM1341 922q-88 0 -166 -80t-102 -195h45q155 0 241.5 48.5t86.5 131.5q0 95 -105 95z" />
+<glyph unicode="&#xe7;" horiz-adv-x="989" d="M90 0zM506 -20q-201 0 -308.5 107.5t-107.5 303.5q0 212 74.5 385.5t209.5 268t308 94.5q182 0 328 -72l-92 -229q-54 23 -106 40t-118 17q-85 0 -153.5 -64t-107 -175.5t-38.5 -239.5q0 -96 45.5 -144.5t126.5 -48.5q76 0 141 23.5t134 58.5v-246q-152 -79 -336 -79z M653 -250q0 -116 -83 -179t-234 -63q-86 0 -152 23v168q63 -23 125 -23q102 0 102 82q0 34 -31 56.5t-110 31.5l96 154h185l-39 -72q141 -49 141 -178z" />
+<glyph unicode="&#xe8;" horiz-adv-x="1141" d="M90 0zM696 922q-88 0 -166 -80t-102 -195h45q155 0 241.5 48.5t86.5 131.5q0 95 -105 95zM532 -20q-210 0 -326 113t-116 319q0 207 82.5 377.5t223.5 260t319 89.5q177 0 276 -81.5t99 -223.5q0 -187 -167 -288.5t-477 -101.5h-51l-2 -21v-20q0 -91 51.5 -143.5 t147.5 -52.5q87 0 158 19t172 67v-227q-172 -86 -390 -86zM849 1241h-184q-71 69 -138.5 153.5t-103.5 153.5v21h311q36 -148 115 -303v-25z" />
+<glyph unicode="&#xe9;" horiz-adv-x="1141" d="M90 0zM696 922q-88 0 -166 -80t-102 -195h45q155 0 241.5 48.5t86.5 131.5q0 95 -105 95zM532 -20q-210 0 -326 113t-116 319q0 207 82.5 377.5t223.5 260t319 89.5q177 0 276 -81.5t99 -223.5q0 -187 -167 -288.5t-477 -101.5h-51l-2 -21v-20q0 -91 51.5 -143.5 t147.5 -52.5q87 0 158 19t172 67v-227q-172 -86 -390 -86zM528 1266q79 88 222 303h335v-17q-46 -56 -154 -152.5t-194 -158.5h-209v25z" />
+<glyph unicode="&#xea;" horiz-adv-x="1141" d="M90 0zM696 922q-88 0 -166 -80t-102 -195h45q155 0 241.5 48.5t86.5 131.5q0 95 -105 95zM532 -20q-210 0 -326 113t-116 319q0 207 82.5 377.5t223.5 260t319 89.5q177 0 276 -81.5t99 -223.5q0 -187 -167 -288.5t-477 -101.5h-51l-2 -21v-20q0 -91 51.5 -143.5 t147.5 -52.5q87 0 158 19t172 67v-227q-172 -86 -390 -86zM1101 1241h-198q-63 53 -162 168q-105 -88 -232 -168h-217v25q63 57 153 147t142 156h338q22 -54 74 -142.5t102 -160.5v-25z" />
+<glyph unicode="&#xeb;" horiz-adv-x="1141" d="M90 0zM696 922q-88 0 -166 -80t-102 -195h45q155 0 241.5 48.5t86.5 131.5q0 95 -105 95zM532 -20q-210 0 -326 113t-116 319q0 207 82.5 377.5t223.5 260t319 89.5q177 0 276 -81.5t99 -223.5q0 -187 -167 -288.5t-477 -101.5h-51l-2 -21v-20q0 -91 51.5 -143.5 t147.5 -52.5q87 0 158 19t172 67v-227q-172 -86 -390 -86zM365 1382q0 78 42.5 118t119.5 40q133 0 133 -108q0 -73 -39 -116.5t-121 -43.5q-135 0 -135 110zM767 1382q0 78 42 118t120 40q65 0 99 -28t34 -80q0 -73 -39.5 -116.5t-120.5 -43.5q-135 0 -135 110z" />
+<glyph unicode="&#xec;" horiz-adv-x="608" d="M37 0zM338 0h-301l237 1118h301zM579 1241h-184q-71 69 -138.5 153.5t-103.5 153.5v21h311q36 -148 115 -303v-25z" />
+<glyph unicode="&#xed;" horiz-adv-x="608" d="M37 0zM338 0h-301l237 1118h301zM291 1266q79 88 222 303h335v-17q-46 -56 -154 -152.5t-194 -158.5h-209v25z" />
+<glyph unicode="&#xee;" horiz-adv-x="608" d="M36 0zM338 0h-301l237 1118h301zM845 1241h-198q-63 53 -162 168q-105 -88 -232 -168h-217v25q63 57 153 147t142 156h338q22 -54 74 -142.5t102 -160.5v-25z" />
+<glyph unicode="&#xef;" horiz-adv-x="608" d="M37 0zM338 0h-301l237 1118h301zM126 1382q0 78 42.5 118t119.5 40q133 0 133 -108q0 -73 -39 -116.5t-121 -43.5q-135 0 -135 110zM528 1382q0 78 42 118t120 40q65 0 99 -28t34 -80q0 -73 -39.5 -116.5t-120.5 -43.5q-135 0 -135 110z" />
+<glyph unicode="&#xf0;" horiz-adv-x="1182" d="M618 1309q-34 34 -124 80l118 186q134 -61 232 -139l237 131l76 -152l-192 -106q81 -107 113 -235t32 -279q0 -249 -69.5 -432.5t-203.5 -283t-323 -99.5q-216 0 -329 110t-113 316q0 165 64.5 301t180.5 212t265 76q83 0 151.5 -31t114.5 -94h6q-20 213 -117 310 l-231 -131l-88 147zM528 205q66 0 122.5 55.5t89 148.5t32.5 193q0 77 -38.5 122.5t-108.5 45.5q-73 0 -130 -53t-88.5 -143t-31.5 -197q0 -81 39 -126.5t114 -45.5z" />
+<glyph unicode="&#xf1;" horiz-adv-x="1237" d="M37 0zM977 0h-301l137 653q16 68 16 119q0 123 -108 123q-92 0 -167 -114t-118 -318l-98 -463h-301l237 1118h230l-21 -207h6q146 228 355 228q138 0 213.5 -83.5t75.5 -238.5q0 -73 -23 -180zM909 1241q-49 0 -86.5 16.5t-69.5 36t-61.5 36t-62.5 16.5q-31 0 -55.5 -28 t-38.5 -79h-177q59 309 281 309q49 0 87.5 -16.5t71.5 -36t62 -35.5t60 -16q34 0 58 25.5t46 80.5h172q-66 -309 -287 -309z" />
+<glyph unicode="&#xf2;" horiz-adv-x="1198" d="M90 0zM805 696q0 197 -143 197q-75 0 -134.5 -61t-97 -179t-37.5 -243q0 -185 150 -185q75 0 135 61.5t93.5 171t33.5 238.5zM1108 696q0 -211 -70.5 -374t-203.5 -252.5t-316 -89.5q-195 0 -311.5 117.5t-116.5 312.5q0 213 71.5 379.5t206.5 258t316 91.5 q196 0 310 -118t114 -325zM845 1241h-184q-71 69 -138.5 153.5t-103.5 153.5v21h311q36 -148 115 -303v-25z" />
+<glyph unicode="&#xf3;" horiz-adv-x="1198" d="M90 0zM805 696q0 197 -143 197q-75 0 -134.5 -61t-97 -179t-37.5 -243q0 -185 150 -185q75 0 135 61.5t93.5 171t33.5 238.5zM1108 696q0 -211 -70.5 -374t-203.5 -252.5t-316 -89.5q-195 0 -311.5 117.5t-116.5 312.5q0 213 71.5 379.5t206.5 258t316 91.5 q196 0 310 -118t114 -325zM571 1266q79 88 222 303h335v-17q-46 -56 -154 -152.5t-194 -158.5h-209v25z" />
+<glyph unicode="&#xf4;" horiz-adv-x="1198" d="M90 0zM805 696q0 197 -143 197q-75 0 -134.5 -61t-97 -179t-37.5 -243q0 -185 150 -185q75 0 135 61.5t93.5 171t33.5 238.5zM1108 696q0 -211 -70.5 -374t-203.5 -252.5t-316 -89.5q-195 0 -311.5 117.5t-116.5 312.5q0 213 71.5 379.5t206.5 258t316 91.5 q196 0 310 -118t114 -325zM1109 1241h-198q-63 53 -162 168q-105 -88 -232 -168h-217v25q63 57 153 147t142 156h338q22 -54 74 -142.5t102 -160.5v-25z" />
+<glyph unicode="&#xf5;" horiz-adv-x="1198" d="M90 0zM805 696q0 197 -143 197q-75 0 -134.5 -61t-97 -179t-37.5 -243q0 -185 150 -185q75 0 135 61.5t93.5 171t33.5 238.5zM1108 696q0 -211 -70.5 -374t-203.5 -252.5t-316 -89.5q-195 0 -311.5 117.5t-116.5 312.5q0 213 71.5 379.5t206.5 258t316 91.5 q196 0 310 -118t114 -325zM865 1241q-49 0 -86.5 16.5t-69.5 36t-61.5 36t-62.5 16.5q-31 0 -55.5 -28t-38.5 -79h-177q59 309 281 309q49 0 87.5 -16.5t71.5 -36t62 -35.5t60 -16q34 0 58 25.5t46 80.5h172q-66 -309 -287 -309z" />
+<glyph unicode="&#xf6;" horiz-adv-x="1198" d="M90 0zM805 696q0 197 -143 197q-75 0 -134.5 -61t-97 -179t-37.5 -243q0 -185 150 -185q75 0 135 61.5t93.5 171t33.5 238.5zM1108 696q0 -211 -70.5 -374t-203.5 -252.5t-316 -89.5q-195 0 -311.5 117.5t-116.5 312.5q0 213 71.5 379.5t206.5 258t316 91.5 q196 0 310 -118t114 -325zM386 1382q0 78 42.5 118t119.5 40q133 0 133 -108q0 -73 -39 -116.5t-121 -43.5q-135 0 -135 110zM788 1382q0 78 42 118t120 40q65 0 99 -28t34 -80q0 -73 -39.5 -116.5t-120.5 -43.5q-135 0 -135 110z" />
+<glyph unicode="&#xf7;" d="M109 612v219h952v-219h-952zM444 373q0 76 37 113.5t103 37.5t102.5 -39t36.5 -112q0 -70 -37 -111t-102 -41t-102.5 39t-37.5 113zM444 1071q0 75 37 113.5t103 38.5q67 0 103 -40.5t36 -111.5q0 -70 -37 -110.5t-102 -40.5t-102.5 39t-37.5 112z" />
+<glyph unicode="&#xf8;" horiz-adv-x="1198" d="M1108 696q0 -211 -70.5 -374t-203.5 -252.5t-316 -89.5q-123 0 -225 53l-109 -135l-141 108l119 148q-72 107 -72 256q0 213 71.5 379.5t206.5 258t316 91.5q131 0 227 -56l70 88l145 -110l-84 -105q66 -107 66 -260zM662 903q-81 0 -144.5 -62.5t-98 -169.5t-34.5 -233 v-12l365 453q-35 24 -88 24zM543 215q114 0 193 133t79 318v16l-358 -444q11 -8 35.5 -15.5t50.5 -7.5z" />
+<glyph unicode="&#xf9;" horiz-adv-x="1237" d="M111 0zM262 1118h301l-137 -653q-16 -68 -16 -119q0 -123 108 -123q92 0 167 114t118 318l98 463h301l-237 -1118h-230l21 207h-6q-145 -227 -355 -227q-138 0 -211 82.5t-73 238.5q0 93 24 213zM845 1241h-184q-71 69 -138.5 153.5t-103.5 153.5v21h311 q36 -148 115 -303v-25z" />
+<glyph unicode="&#xfa;" horiz-adv-x="1237" d="M111 0zM262 1118h301l-137 -653q-16 -68 -16 -119q0 -123 108 -123q92 0 167 114t118 318l98 463h301l-237 -1118h-230l21 207h-6q-145 -227 -355 -227q-138 0 -211 82.5t-73 238.5q0 93 24 213zM610 1266q79 88 222 303h335v-17q-46 -56 -154 -152.5t-194 -158.5h-209 v25z" />
+<glyph unicode="&#xfb;" horiz-adv-x="1237" d="M111 0zM262 1118h301l-137 -653q-16 -68 -16 -119q0 -123 108 -123q92 0 167 114t118 318l98 463h301l-237 -1118h-230l21 207h-6q-145 -227 -355 -227q-138 0 -211 82.5t-73 238.5q0 93 24 213zM1143 1241h-198q-63 53 -162 168q-105 -88 -232 -168h-217v25 q63 57 153 147t142 156h338q22 -54 74 -142.5t102 -160.5v-25z" />
+<glyph unicode="&#xfc;" horiz-adv-x="1237" d="M111 0zM262 1118h301l-137 -653q-16 -68 -16 -119q0 -123 108 -123q92 0 167 114t118 318l98 463h301l-237 -1118h-230l21 207h-6q-145 -227 -355 -227q-138 0 -211 82.5t-73 238.5q0 93 24 213zM411 1382q0 78 42.5 118t119.5 40q133 0 133 -108q0 -73 -39 -116.5 t-121 -43.5q-135 0 -135 110zM813 1382q0 78 42 118t120 40q65 0 99 -28t34 -80q0 -73 -39.5 -116.5t-120.5 -43.5q-135 0 -135 110z" />
+<glyph unicode="&#xfd;" horiz-adv-x="1063" d="M0 0zM102 1118h295l56 -518q14 -122 14 -293h6q20 51 44 119.5t65 153.5l260 538h327l-680 -1278q-177 -332 -483 -332q-90 0 -147 19v240q68 -13 116 -13q84 0 147.5 48t117.5 149l26 49zM497 1266q79 88 222 303h335v-17q-46 -56 -154 -152.5t-194 -158.5h-209v25z" />
+<glyph unicode="&#xfe;" horiz-adv-x="1219" d="M813 1139q150 0 232.5 -106.5t82.5 -301.5q0 -199 -69 -381t-182 -276t-250 -94q-178 0 -271 163h-8q-12 -159 -43 -295l-72 -340h-301l435 2048h301l-66 -307q-29 -131 -80 -280h8q131 170 283 170zM682 895q-71 0 -130 -65t-95.5 -184.5t-36.5 -246.5q0 -80 33.5 -128 t105.5 -48q69 0 129 65t97.5 183.5t37.5 247.5q0 88 -37.5 132t-103.5 44z" />
+<glyph unicode="&#xff;" horiz-adv-x="1063" d="M0 0zM102 1118h295l56 -518q14 -122 14 -293h6q20 51 44 119.5t65 153.5l260 538h327l-680 -1278q-177 -332 -483 -332q-90 0 -147 19v240q68 -13 116 -13q84 0 147.5 48t117.5 149l26 49zM310 1382q0 78 42.5 118t119.5 40q133 0 133 -108q0 -73 -39 -116.5t-121 -43.5 q-135 0 -135 110zM712 1382q0 78 42 118t120 40q65 0 99 -28t34 -80q0 -73 -39.5 -116.5t-120.5 -43.5q-135 0 -135 110z" />
+<glyph unicode="&#x131;" horiz-adv-x="608" d="M338 0h-301l237 1118h301z" />
+<glyph unicode="&#x152;" horiz-adv-x="1845" d="M1606 0h-760q-93 -20 -180 -20q-256 0 -399.5 147.5t-143.5 409.5q0 265 99 487.5t273 341.5t402 119q140 0 209 -23h809l-53 -254h-512l-68 -321h477l-55 -254h-477l-80 -377h512zM688 240q88 0 158 32l194 916q-62 39 -168 39q-121 0 -222 -91.5t-158.5 -251.5 t-57.5 -347q0 -147 66.5 -222t187.5 -75z" />
+<glyph unicode="&#x153;" horiz-adv-x="1806" d="M1198 -20q-116 0 -208 38.5t-138 106.5q-63 -68 -147 -106.5t-207 -38.5q-187 0 -297.5 117t-110.5 317q0 216 69 380.5t200 254.5t309 90q209 0 313 -160q154 160 399 160q177 0 276 -81.5t99 -223.5q0 -187 -167 -288.5t-476 -101.5h-51l-2 -21v-20q0 -91 51 -143.5 t147 -52.5q87 0 158 19t172 67v-227q-93 -46 -185.5 -66t-203.5 -20zM645 893q-71 0 -127 -60.5t-90.5 -176.5t-34.5 -242q0 -91 36.5 -140t109.5 -49q109 0 179 134.5t70 336.5q0 96 -37 146.5t-106 50.5zM1362 922q-88 0 -165.5 -78.5t-102.5 -196.5h45q155 0 241 48.5 t86 131.5q0 95 -104 95z" />
+<glyph unicode="&#x178;" horiz-adv-x="1155" d="M186 0zM627 870l374 592h342l-618 -903l-119 -559h-303l119 559l-236 903h312zM432 1720q0 78 42.5 118t119.5 40q133 0 133 -108q0 -73 -39 -116.5t-121 -43.5q-135 0 -135 110zM834 1720q0 78 42 118t120 40q65 0 99 -28t34 -80q0 -73 -39.5 -116.5t-120.5 -43.5 q-135 0 -135 110z" />
+<glyph unicode="&#x2c6;" horiz-adv-x="1135" d="M1120 1241h-198q-63 53 -162 168q-105 -88 -232 -168h-217v25q63 57 153 147t142 156h338q22 -54 74 -142.5t102 -160.5v-25z" />
+<glyph unicode="&#x2da;" horiz-adv-x="1182" d="M1034 1479q0 -107 -70 -173.5t-184 -66.5q-110 0 -179 63.5t-69 174.5q0 109 68.5 173t179.5 64q110 0 182 -65t72 -170zM877 1477q0 45 -27.5 70.5t-69.5 25.5t-69 -25.5t-27 -70.5t24 -71t72 -26q42 0 69.5 26t27.5 71z" />
+<glyph unicode="&#x2dc;" horiz-adv-x="1135" d="M866 1241q-49 0 -86.5 16.5t-69.5 36t-61.5 36t-62.5 16.5q-31 0 -55.5 -28t-38.5 -79h-177q59 309 281 309q49 0 87.5 -16.5t71.5 -36t62 -35.5t60 -16q34 0 58 25.5t46 80.5h172q-66 -309 -287 -309z" />
+<glyph unicode="&#x2000;" horiz-adv-x="953" />
+<glyph unicode="&#x2001;" horiz-adv-x="1907" />
+<glyph unicode="&#x2002;" horiz-adv-x="953" />
+<glyph unicode="&#x2003;" horiz-adv-x="1907" />
+<glyph unicode="&#x2004;" horiz-adv-x="635" />
+<glyph unicode="&#x2005;" horiz-adv-x="476" />
+<glyph unicode="&#x2006;" horiz-adv-x="317" />
+<glyph unicode="&#x2007;" horiz-adv-x="317" />
+<glyph unicode="&#x2008;" horiz-adv-x="238" />
+<glyph unicode="&#x2009;" horiz-adv-x="381" />
+<glyph unicode="&#x200a;" horiz-adv-x="105" />
+<glyph unicode="&#x2010;" horiz-adv-x="659" d="M41 424l53 250h524l-53 -250h-524z" />
+<glyph unicode="&#x2011;" horiz-adv-x="659" d="M41 424l53 250h524l-53 -250h-524z" />
+<glyph unicode="&#x2012;" horiz-adv-x="659" d="M41 424l53 250h524l-53 -250h-524z" />
+<glyph unicode="&#x2013;" horiz-adv-x="983" d="M41 436l49 230h852l-49 -230h-852z" />
+<glyph unicode="&#x2014;" horiz-adv-x="1966" d="M41 436l49 230h1835l-49 -230h-1835z" />
+<glyph unicode="&#x2018;" horiz-adv-x="440" d="M123 961l-8 22q103 227 262 479h225q-91 -213 -194 -501h-285z" />
+<glyph unicode="&#x2019;" horiz-adv-x="440" d="M586 1462l8 -22q-103 -227 -262 -479h-226q89 206 195 501h285z" />
+<glyph unicode="&#x201a;" horiz-adv-x="569" d="M377 238l8 -23q-103 -227 -262 -479h-225q88 207 194 502h285z" />
+<glyph unicode="&#x201c;" horiz-adv-x="887" d="M569 961l-8 22q103 227 262 479h226q-97 -227 -195 -501h-285zM123 961l-8 22q103 227 262 479h225q-91 -213 -194 -501h-285z" />
+<glyph unicode="&#x201d;" horiz-adv-x="887" d="M586 1462l8 -22q-103 -227 -262 -479h-226q89 206 195 501h285zM1032 1462l8 -22q-103 -227 -262 -479h-225q23 53 46.5 111t148.5 390h284z" />
+<glyph unicode="&#x201e;" horiz-adv-x="1018" d="M377 238l8 -23q-103 -227 -262 -479h-225q88 207 194 502h285zM825 238l9 -23q-100 -221 -263 -479h-225q24 57 49 118.5t146 383.5h284z" />
+<glyph unicode="&#x2022;" horiz-adv-x="739" d="M104 686q0 106 42.5 194t120 136.5t182.5 48.5q120 0 182.5 -67t62.5 -191q0 -177 -91.5 -277t-248.5 -100q-117 0 -183.5 67t-66.5 189z" />
+<glyph unicode="&#x2026;" horiz-adv-x="1706" d="M25 0zM25 115q0 90 53.5 144t150.5 54q68 0 109 -38t41 -107q0 -87 -55 -141t-144 -54q-73 0 -114 37.5t-41 104.5zM586 115q0 90 53.5 144t150.5 54q68 0 109 -38t41 -107q0 -87 -55 -141t-144 -54q-73 0 -114 37.5t-41 104.5zM1147 115q0 90 53.5 144t150.5 54 q68 0 109 -38t41 -107q0 -87 -55 -141t-144 -54q-73 0 -114 37.5t-41 104.5z" />
+<glyph unicode="&#x202f;" horiz-adv-x="381" />
+<glyph unicode="&#x2039;" horiz-adv-x="664" d="M72 569l401 463l191 -155l-279 -334l135 -350l-246 -103l-202 461v18z" />
+<glyph unicode="&#x203a;" horiz-adv-x="664" d="M592 535l-402 -463l-190 155l279 334l-136 350l246 103l203 -461v-18z" />
+<glyph unicode="&#x2044;" horiz-adv-x="256" d="M791 1462l-1084 -1462h-239l1087 1462h236z" />
+<glyph unicode="&#x205f;" horiz-adv-x="476" />
+<glyph unicode="&#x2074;" horiz-adv-x="776" d="M776 737h-119l-32 -151h-238l33 151h-373l31 174l475 557h260l-121 -563h119zM455 905l58 231l22 74q-13 -20 -43 -58t-211 -247h174z" />
+<glyph unicode="&#x20ac;" d="M899 1237q-97 0 -176 -74.5t-135 -212.5h348l-39 -176h-360q-11 -34 -25 -115h299l-37 -178h-280q0 -120 44.5 -181.5t147.5 -61.5q133 0 283 63v-258q-126 -63 -330 -63q-446 0 -446 501h-152l37 178h127q9 67 22 115h-125l39 176h135q87 252 250.5 393.5t374.5 141.5 q100 0 179 -23t165 -80l-125 -223q-87 49 -131 63.5t-90 14.5z" />
+<glyph unicode="&#x2122;" horiz-adv-x="1534" d="M471 741h-168v572h-197v149h564v-149h-199v-572zM1047 741l-166 529h-7l5 -111v-418h-164v721h248l159 -510l170 510h240v-721h-168v408l4 121h-6l-174 -529h-141z" />
+<glyph unicode="&#xe000;" horiz-adv-x="1120" d="M0 1120h1120v-1120h-1120v1120z" />
+<glyph horiz-adv-x="1217" d="M0 0z" />
+<hkern u1="&#x22;" u2="&#x178;" k="-20" />
+<hkern u1="&#x22;" u2="&#x153;" k="123" />
+<hkern u1="&#x22;" u2="&#xfc;" k="61" />
+<hkern u1="&#x22;" u2="&#xfb;" k="61" />
+<hkern u1="&#x22;" u2="&#xfa;" k="61" />
+<hkern u1="&#x22;" u2="&#xf9;" k="61" />
+<hkern u1="&#x22;" u2="&#xf8;" k="123" />
+<hkern u1="&#x22;" u2="&#xf6;" k="123" />
+<hkern u1="&#x22;" u2="&#xf5;" k="123" />
+<hkern u1="&#x22;" u2="&#xf4;" k="123" />
+<hkern u1="&#x22;" u2="&#xf3;" k="123" />
+<hkern u1="&#x22;" u2="&#xf2;" k="123" />
+<hkern u1="&#x22;" u2="&#xeb;" k="123" />
+<hkern u1="&#x22;" u2="&#xea;" k="123" />
+<hkern u1="&#x22;" u2="&#xe9;" k="123" />
+<hkern u1="&#x22;" u2="&#xe8;" k="123" />
+<hkern u1="&#x22;" u2="&#xe7;" k="123" />
+<hkern u1="&#x22;" u2="&#xe6;" k="82" />
+<hkern u1="&#x22;" u2="&#xe5;" k="82" />
+<hkern u1="&#x22;" u2="&#xe4;" k="82" />
+<hkern u1="&#x22;" u2="&#xe3;" k="82" />
+<hkern u1="&#x22;" u2="&#xe2;" k="82" />
+<hkern u1="&#x22;" u2="&#xe1;" k="82" />
+<hkern u1="&#x22;" u2="&#xe0;" k="123" />
+<hkern u1="&#x22;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x22;" u2="&#xc5;" k="143" />
+<hkern u1="&#x22;" u2="&#xc4;" k="143" />
+<hkern u1="&#x22;" u2="&#xc3;" k="143" />
+<hkern u1="&#x22;" u2="&#xc2;" k="143" />
+<hkern u1="&#x22;" u2="&#xc1;" k="143" />
+<hkern u1="&#x22;" u2="&#xc0;" k="143" />
+<hkern u1="&#x22;" u2="u" k="61" />
+<hkern u1="&#x22;" u2="s" k="61" />
+<hkern u1="&#x22;" u2="r" k="61" />
+<hkern u1="&#x22;" u2="q" k="123" />
+<hkern u1="&#x22;" u2="p" k="61" />
+<hkern u1="&#x22;" u2="o" k="123" />
+<hkern u1="&#x22;" u2="n" k="61" />
+<hkern u1="&#x22;" u2="m" k="61" />
+<hkern u1="&#x22;" u2="g" k="61" />
+<hkern u1="&#x22;" u2="e" k="123" />
+<hkern u1="&#x22;" u2="d" k="123" />
+<hkern u1="&#x22;" u2="c" k="123" />
+<hkern u1="&#x22;" u2="a" k="82" />
+<hkern u1="&#x22;" u2="Y" k="-20" />
+<hkern u1="&#x22;" u2="W" k="-41" />
+<hkern u1="&#x22;" u2="V" k="-41" />
+<hkern u1="&#x22;" u2="T" k="-41" />
+<hkern u1="&#x22;" u2="A" k="143" />
+<hkern u1="&#x27;" u2="&#x178;" k="-20" />
+<hkern u1="&#x27;" u2="&#x153;" k="123" />
+<hkern u1="&#x27;" u2="&#xfc;" k="61" />
+<hkern u1="&#x27;" u2="&#xfb;" k="61" />
+<hkern u1="&#x27;" u2="&#xfa;" k="61" />
+<hkern u1="&#x27;" u2="&#xf9;" k="61" />
+<hkern u1="&#x27;" u2="&#xf8;" k="123" />
+<hkern u1="&#x27;" u2="&#xf6;" k="123" />
+<hkern u1="&#x27;" u2="&#xf5;" k="123" />
+<hkern u1="&#x27;" u2="&#xf4;" k="123" />
+<hkern u1="&#x27;" u2="&#xf3;" k="123" />
+<hkern u1="&#x27;" u2="&#xf2;" k="123" />
+<hkern u1="&#x27;" u2="&#xeb;" k="123" />
+<hkern u1="&#x27;" u2="&#xea;" k="123" />
+<hkern u1="&#x27;" u2="&#xe9;" k="123" />
+<hkern u1="&#x27;" u2="&#xe8;" k="123" />
+<hkern u1="&#x27;" u2="&#xe7;" k="123" />
+<hkern u1="&#x27;" u2="&#xe6;" k="82" />
+<hkern u1="&#x27;" u2="&#xe5;" k="82" />
+<hkern u1="&#x27;" u2="&#xe4;" k="82" />
+<hkern u1="&#x27;" u2="&#xe3;" k="82" />
+<hkern u1="&#x27;" u2="&#xe2;" k="82" />
+<hkern u1="&#x27;" u2="&#xe1;" k="82" />
+<hkern u1="&#x27;" u2="&#xe0;" k="123" />
+<hkern u1="&#x27;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x27;" u2="&#xc5;" k="143" />
+<hkern u1="&#x27;" u2="&#xc4;" k="143" />
+<hkern u1="&#x27;" u2="&#xc3;" k="143" />
+<hkern u1="&#x27;" u2="&#xc2;" k="143" />
+<hkern u1="&#x27;" u2="&#xc1;" k="143" />
+<hkern u1="&#x27;" u2="&#xc0;" k="143" />
+<hkern u1="&#x27;" u2="u" k="61" />
+<hkern u1="&#x27;" u2="s" k="61" />
+<hkern u1="&#x27;" u2="r" k="61" />
+<hkern u1="&#x27;" u2="q" k="123" />
+<hkern u1="&#x27;" u2="p" k="61" />
+<hkern u1="&#x27;" u2="o" k="123" />
+<hkern u1="&#x27;" u2="n" k="61" />
+<hkern u1="&#x27;" u2="m" k="61" />
+<hkern u1="&#x27;" u2="g" k="61" />
+<hkern u1="&#x27;" u2="e" k="123" />
+<hkern u1="&#x27;" u2="d" k="123" />
+<hkern u1="&#x27;" u2="c" k="123" />
+<hkern u1="&#x27;" u2="a" k="82" />
+<hkern u1="&#x27;" u2="Y" k="-20" />
+<hkern u1="&#x27;" u2="W" k="-41" />
+<hkern u1="&#x27;" u2="V" k="-41" />
+<hkern u1="&#x27;" u2="T" k="-41" />
+<hkern u1="&#x27;" u2="A" k="143" />
+<hkern u1="&#x28;" u2="J" k="-184" />
+<hkern u1="&#x2c;" u2="&#x178;" k="123" />
+<hkern u1="&#x2c;" u2="&#x152;" k="102" />
+<hkern u1="&#x2c;" u2="&#xdd;" k="123" />
+<hkern u1="&#x2c;" u2="&#xdc;" k="41" />
+<hkern u1="&#x2c;" u2="&#xdb;" k="41" />
+<hkern u1="&#x2c;" u2="&#xda;" k="41" />
+<hkern u1="&#x2c;" u2="&#xd9;" k="41" />
+<hkern u1="&#x2c;" u2="&#xd8;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd6;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd5;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd4;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd3;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd2;" k="102" />
+<hkern u1="&#x2c;" u2="&#xc7;" k="102" />
+<hkern u1="&#x2c;" u2="Y" k="123" />
+<hkern u1="&#x2c;" u2="W" k="123" />
+<hkern u1="&#x2c;" u2="V" k="123" />
+<hkern u1="&#x2c;" u2="U" k="41" />
+<hkern u1="&#x2c;" u2="T" k="143" />
+<hkern u1="&#x2c;" u2="Q" k="102" />
+<hkern u1="&#x2c;" u2="O" k="102" />
+<hkern u1="&#x2c;" u2="G" k="102" />
+<hkern u1="&#x2c;" u2="C" k="102" />
+<hkern u1="&#x2d;" u2="T" k="82" />
+<hkern u1="&#x2e;" u2="&#x178;" k="123" />
+<hkern u1="&#x2e;" u2="&#x152;" k="102" />
+<hkern u1="&#x2e;" u2="&#xdd;" k="123" />
+<hkern u1="&#x2e;" u2="&#xdc;" k="41" />
+<hkern u1="&#x2e;" u2="&#xdb;" k="41" />
+<hkern u1="&#x2e;" u2="&#xda;" k="41" />
+<hkern u1="&#x2e;" u2="&#xd9;" k="41" />
+<hkern u1="&#x2e;" u2="&#xd8;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd6;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd5;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd4;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd3;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd2;" k="102" />
+<hkern u1="&#x2e;" u2="&#xc7;" k="102" />
+<hkern u1="&#x2e;" u2="Y" k="123" />
+<hkern u1="&#x2e;" u2="W" k="123" />
+<hkern u1="&#x2e;" u2="V" k="123" />
+<hkern u1="&#x2e;" u2="U" k="41" />
+<hkern u1="&#x2e;" u2="T" k="143" />
+<hkern u1="&#x2e;" u2="Q" k="102" />
+<hkern u1="&#x2e;" u2="O" k="102" />
+<hkern u1="&#x2e;" u2="G" k="102" />
+<hkern u1="&#x2e;" u2="C" k="102" />
+<hkern u1="A" u2="&#x201d;" k="143" />
+<hkern u1="A" u2="&#x2019;" k="143" />
+<hkern u1="A" u2="&#x178;" k="123" />
+<hkern u1="A" u2="&#x152;" k="41" />
+<hkern u1="A" u2="&#xdd;" k="123" />
+<hkern u1="A" u2="&#xd8;" k="41" />
+<hkern u1="A" u2="&#xd6;" k="41" />
+<hkern u1="A" u2="&#xd5;" k="41" />
+<hkern u1="A" u2="&#xd4;" k="41" />
+<hkern u1="A" u2="&#xd3;" k="41" />
+<hkern u1="A" u2="&#xd2;" k="41" />
+<hkern u1="A" u2="&#xc7;" k="41" />
+<hkern u1="A" u2="Y" k="123" />
+<hkern u1="A" u2="W" k="82" />
+<hkern u1="A" u2="V" k="82" />
+<hkern u1="A" u2="T" k="143" />
+<hkern u1="A" u2="Q" k="41" />
+<hkern u1="A" u2="O" k="41" />
+<hkern u1="A" u2="J" k="-266" />
+<hkern u1="A" u2="G" k="41" />
+<hkern u1="A" u2="C" k="41" />
+<hkern u1="A" u2="&#x27;" k="143" />
+<hkern u1="A" u2="&#x22;" k="143" />
+<hkern u1="B" u2="&#x201e;" k="82" />
+<hkern u1="B" u2="&#x201a;" k="82" />
+<hkern u1="B" u2="&#x178;" k="20" />
+<hkern u1="B" u2="&#xdd;" k="20" />
+<hkern u1="B" u2="&#xc5;" k="41" />
+<hkern u1="B" u2="&#xc4;" k="41" />
+<hkern u1="B" u2="&#xc3;" k="41" />
+<hkern u1="B" u2="&#xc2;" k="41" />
+<hkern u1="B" u2="&#xc1;" k="41" />
+<hkern u1="B" u2="&#xc0;" k="41" />
+<hkern u1="B" u2="Z" k="20" />
+<hkern u1="B" u2="Y" k="20" />
+<hkern u1="B" u2="X" k="41" />
+<hkern u1="B" u2="W" k="20" />
+<hkern u1="B" u2="V" k="20" />
+<hkern u1="B" u2="T" k="61" />
+<hkern u1="B" u2="A" k="41" />
+<hkern u1="B" u2="&#x2e;" k="82" />
+<hkern u1="B" u2="&#x2c;" k="82" />
+<hkern u1="C" u2="&#x152;" k="41" />
+<hkern u1="C" u2="&#xd8;" k="41" />
+<hkern u1="C" u2="&#xd6;" k="41" />
+<hkern u1="C" u2="&#xd5;" k="41" />
+<hkern u1="C" u2="&#xd4;" k="41" />
+<hkern u1="C" u2="&#xd3;" k="41" />
+<hkern u1="C" u2="&#xd2;" k="41" />
+<hkern u1="C" u2="&#xc7;" k="41" />
+<hkern u1="C" u2="Q" k="41" />
+<hkern u1="C" u2="O" k="41" />
+<hkern u1="C" u2="G" k="41" />
+<hkern u1="C" u2="C" k="41" />
+<hkern u1="D" u2="&#x201e;" k="82" />
+<hkern u1="D" u2="&#x201a;" k="82" />
+<hkern u1="D" u2="&#x178;" k="20" />
+<hkern u1="D" u2="&#xdd;" k="20" />
+<hkern u1="D" u2="&#xc5;" k="41" />
+<hkern u1="D" u2="&#xc4;" k="41" />
+<hkern u1="D" u2="&#xc3;" k="41" />
+<hkern u1="D" u2="&#xc2;" k="41" />
+<hkern u1="D" u2="&#xc1;" k="41" />
+<hkern u1="D" u2="&#xc0;" k="41" />
+<hkern u1="D" u2="Z" k="20" />
+<hkern u1="D" u2="Y" k="20" />
+<hkern u1="D" u2="X" k="41" />
+<hkern u1="D" u2="W" k="20" />
+<hkern u1="D" u2="V" k="20" />
+<hkern u1="D" u2="T" k="61" />
+<hkern u1="D" u2="A" k="41" />
+<hkern u1="D" u2="&#x2e;" k="82" />
+<hkern u1="D" u2="&#x2c;" k="82" />
+<hkern u1="E" u2="J" k="-123" />
+<hkern u1="F" u2="&#x201e;" k="123" />
+<hkern u1="F" u2="&#x201a;" k="123" />
+<hkern u1="F" u2="&#xc5;" k="41" />
+<hkern u1="F" u2="&#xc4;" k="41" />
+<hkern u1="F" u2="&#xc3;" k="41" />
+<hkern u1="F" u2="&#xc2;" k="41" />
+<hkern u1="F" u2="&#xc1;" k="41" />
+<hkern u1="F" u2="&#xc0;" k="41" />
+<hkern u1="F" u2="A" k="41" />
+<hkern u1="F" u2="&#x3f;" k="-41" />
+<hkern u1="F" u2="&#x2e;" k="123" />
+<hkern u1="F" u2="&#x2c;" k="123" />
+<hkern u1="K" u2="&#x152;" k="41" />
+<hkern u1="K" u2="&#xd8;" k="41" />
+<hkern u1="K" u2="&#xd6;" k="41" />
+<hkern u1="K" u2="&#xd5;" k="41" />
+<hkern u1="K" u2="&#xd4;" k="41" />
+<hkern u1="K" u2="&#xd3;" k="41" />
+<hkern u1="K" u2="&#xd2;" k="41" />
+<hkern u1="K" u2="&#xc7;" k="41" />
+<hkern u1="K" u2="Q" k="41" />
+<hkern u1="K" u2="O" k="41" />
+<hkern u1="K" u2="G" k="41" />
+<hkern u1="K" u2="C" k="41" />
+<hkern u1="L" u2="&#x201d;" k="164" />
+<hkern u1="L" u2="&#x2019;" k="164" />
+<hkern u1="L" u2="&#x178;" k="61" />
+<hkern u1="L" u2="&#x152;" k="41" />
+<hkern u1="L" u2="&#xdd;" k="61" />
+<hkern u1="L" u2="&#xdc;" k="20" />
+<hkern u1="L" u2="&#xdb;" k="20" />
+<hkern u1="L" u2="&#xda;" k="20" />
+<hkern u1="L" u2="&#xd9;" k="20" />
+<hkern u1="L" u2="&#xd8;" k="41" />
+<hkern u1="L" u2="&#xd6;" k="41" />
+<hkern u1="L" u2="&#xd5;" k="41" />
+<hkern u1="L" u2="&#xd4;" k="41" />
+<hkern u1="L" u2="&#xd3;" k="41" />
+<hkern u1="L" u2="&#xd2;" k="41" />
+<hkern u1="L" u2="&#xc7;" k="41" />
+<hkern u1="L" u2="Y" k="61" />
+<hkern u1="L" u2="W" k="41" />
+<hkern u1="L" u2="V" k="41" />
+<hkern u1="L" u2="U" k="20" />
+<hkern u1="L" u2="T" k="41" />
+<hkern u1="L" u2="Q" k="41" />
+<hkern u1="L" u2="O" k="41" />
+<hkern u1="L" u2="G" k="41" />
+<hkern u1="L" u2="C" k="41" />
+<hkern u1="L" u2="&#x27;" k="164" />
+<hkern u1="L" u2="&#x22;" k="164" />
+<hkern u1="O" u2="&#x201e;" k="82" />
+<hkern u1="O" u2="&#x201a;" k="82" />
+<hkern u1="O" u2="&#x178;" k="20" />
+<hkern u1="O" u2="&#xdd;" k="20" />
+<hkern u1="O" u2="&#xc5;" k="41" />
+<hkern u1="O" u2="&#xc4;" k="41" />
+<hkern u1="O" u2="&#xc3;" k="41" />
+<hkern u1="O" u2="&#xc2;" k="41" />
+<hkern u1="O" u2="&#xc1;" k="41" />
+<hkern u1="O" u2="&#xc0;" k="41" />
+<hkern u1="O" u2="Z" k="20" />
+<hkern u1="O" u2="Y" k="20" />
+<hkern u1="O" u2="X" k="41" />
+<hkern u1="O" u2="W" k="20" />
+<hkern u1="O" u2="V" k="20" />
+<hkern u1="O" u2="T" k="61" />
+<hkern u1="O" u2="A" k="41" />
+<hkern u1="O" u2="&#x2e;" k="82" />
+<hkern u1="O" u2="&#x2c;" k="82" />
+<hkern u1="P" u2="&#x201e;" k="266" />
+<hkern u1="P" u2="&#x201a;" k="266" />
+<hkern u1="P" u2="&#xc5;" k="102" />
+<hkern u1="P" u2="&#xc4;" k="102" />
+<hkern u1="P" u2="&#xc3;" k="102" />
+<hkern u1="P" u2="&#xc2;" k="102" />
+<hkern u1="P" u2="&#xc1;" k="102" />
+<hkern u1="P" u2="&#xc0;" k="102" />
+<hkern u1="P" u2="Z" k="20" />
+<hkern u1="P" u2="X" k="41" />
+<hkern u1="P" u2="A" k="102" />
+<hkern u1="P" u2="&#x2e;" k="266" />
+<hkern u1="P" u2="&#x2c;" k="266" />
+<hkern u1="Q" u2="&#x201e;" k="82" />
+<hkern u1="Q" u2="&#x201a;" k="82" />
+<hkern u1="Q" u2="&#x178;" k="20" />
+<hkern u1="Q" u2="&#xdd;" k="20" />
+<hkern u1="Q" u2="&#xc5;" k="41" />
+<hkern u1="Q" u2="&#xc4;" k="41" />
+<hkern u1="Q" u2="&#xc3;" k="41" />
+<hkern u1="Q" u2="&#xc2;" k="41" />
+<hkern u1="Q" u2="&#xc1;" k="41" />
+<hkern u1="Q" u2="&#xc0;" k="41" />
+<hkern u1="Q" u2="Z" k="20" />
+<hkern u1="Q" u2="Y" k="20" />
+<hkern u1="Q" u2="X" k="41" />
+<hkern u1="Q" u2="W" k="20" />
+<hkern u1="Q" u2="V" k="20" />
+<hkern u1="Q" u2="T" k="61" />
+<hkern u1="Q" u2="A" k="41" />
+<hkern u1="Q" u2="&#x2e;" k="82" />
+<hkern u1="Q" u2="&#x2c;" k="82" />
+<hkern u1="T" u2="&#x201e;" k="123" />
+<hkern u1="T" u2="&#x201a;" k="123" />
+<hkern u1="T" u2="&#x2014;" k="82" />
+<hkern u1="T" u2="&#x2013;" k="82" />
+<hkern u1="T" u2="&#x153;" k="143" />
+<hkern u1="T" u2="&#x152;" k="41" />
+<hkern u1="T" u2="&#xfd;" k="41" />
+<hkern u1="T" u2="&#xfc;" k="102" />
+<hkern u1="T" u2="&#xfb;" k="102" />
+<hkern u1="T" u2="&#xfa;" k="102" />
+<hkern u1="T" u2="&#xf9;" k="102" />
+<hkern u1="T" u2="&#xf8;" k="143" />
+<hkern u1="T" u2="&#xf6;" k="143" />
+<hkern u1="T" u2="&#xf5;" k="143" />
+<hkern u1="T" u2="&#xf4;" k="143" />
+<hkern u1="T" u2="&#xf3;" k="143" />
+<hkern u1="T" u2="&#xf2;" k="143" />
+<hkern u1="T" u2="&#xeb;" k="143" />
+<hkern u1="T" u2="&#xea;" k="143" />
+<hkern u1="T" u2="&#xe9;" k="143" />
+<hkern u1="T" u2="&#xe8;" k="143" />
+<hkern u1="T" u2="&#xe7;" k="143" />
+<hkern u1="T" u2="&#xe6;" k="164" />
+<hkern u1="T" u2="&#xe5;" k="164" />
+<hkern u1="T" u2="&#xe4;" k="164" />
+<hkern u1="T" u2="&#xe3;" k="164" />
+<hkern u1="T" u2="&#xe2;" k="164" />
+<hkern u1="T" u2="&#xe1;" k="164" />
+<hkern u1="T" u2="&#xe0;" k="143" />
+<hkern u1="T" u2="&#xd8;" k="41" />
+<hkern u1="T" u2="&#xd6;" k="41" />
+<hkern u1="T" u2="&#xd5;" k="41" />
+<hkern u1="T" u2="&#xd4;" k="41" />
+<hkern u1="T" u2="&#xd3;" k="41" />
+<hkern u1="T" u2="&#xd2;" k="41" />
+<hkern u1="T" u2="&#xc7;" k="41" />
+<hkern u1="T" u2="&#xc5;" k="143" />
+<hkern u1="T" u2="&#xc4;" k="143" />
+<hkern u1="T" u2="&#xc3;" k="143" />
+<hkern u1="T" u2="&#xc2;" k="143" />
+<hkern u1="T" u2="&#xc1;" k="143" />
+<hkern u1="T" u2="&#xc0;" k="143" />
+<hkern u1="T" u2="z" k="82" />
+<hkern u1="T" u2="y" k="41" />
+<hkern u1="T" u2="x" k="41" />
+<hkern u1="T" u2="w" k="41" />
+<hkern u1="T" u2="v" k="41" />
+<hkern u1="T" u2="u" k="102" />
+<hkern u1="T" u2="s" k="123" />
+<hkern u1="T" u2="r" k="102" />
+<hkern u1="T" u2="q" k="143" />
+<hkern u1="T" u2="p" k="102" />
+<hkern u1="T" u2="o" k="143" />
+<hkern u1="T" u2="n" k="102" />
+<hkern u1="T" u2="m" k="102" />
+<hkern u1="T" u2="g" k="143" />
+<hkern u1="T" u2="e" k="143" />
+<hkern u1="T" u2="d" k="143" />
+<hkern u1="T" u2="c" k="143" />
+<hkern u1="T" u2="a" k="164" />
+<hkern u1="T" u2="T" k="-41" />
+<hkern u1="T" u2="Q" k="41" />
+<hkern u1="T" u2="O" k="41" />
+<hkern u1="T" u2="G" k="41" />
+<hkern u1="T" u2="C" k="41" />
+<hkern u1="T" u2="A" k="143" />
+<hkern u1="T" u2="&#x3f;" k="-41" />
+<hkern u1="T" u2="&#x2e;" k="123" />
+<hkern u1="T" u2="&#x2d;" k="82" />
+<hkern u1="T" u2="&#x2c;" k="123" />
+<hkern u1="U" u2="&#x201e;" k="41" />
+<hkern u1="U" u2="&#x201a;" k="41" />
+<hkern u1="U" u2="&#xc5;" k="20" />
+<hkern u1="U" u2="&#xc4;" k="20" />
+<hkern u1="U" u2="&#xc3;" k="20" />
+<hkern u1="U" u2="&#xc2;" k="20" />
+<hkern u1="U" u2="&#xc1;" k="20" />
+<hkern u1="U" u2="&#xc0;" k="20" />
+<hkern u1="U" u2="A" k="20" />
+<hkern u1="U" u2="&#x2e;" k="41" />
+<hkern u1="U" u2="&#x2c;" k="41" />
+<hkern u1="V" u2="&#x201e;" k="102" />
+<hkern u1="V" u2="&#x201a;" k="102" />
+<hkern u1="V" u2="&#x153;" k="41" />
+<hkern u1="V" u2="&#x152;" k="20" />
+<hkern u1="V" u2="&#xfc;" k="20" />
+<hkern u1="V" u2="&#xfb;" k="20" />
+<hkern u1="V" u2="&#xfa;" k="20" />
+<hkern u1="V" u2="&#xf9;" k="20" />
+<hkern u1="V" u2="&#xf8;" k="41" />
+<hkern u1="V" u2="&#xf6;" k="41" />
+<hkern u1="V" u2="&#xf5;" k="41" />
+<hkern u1="V" u2="&#xf4;" k="41" />
+<hkern u1="V" u2="&#xf3;" k="41" />
+<hkern u1="V" u2="&#xf2;" k="41" />
+<hkern u1="V" u2="&#xeb;" k="41" />
+<hkern u1="V" u2="&#xea;" k="41" />
+<hkern u1="V" u2="&#xe9;" k="41" />
+<hkern u1="V" u2="&#xe8;" k="41" />
+<hkern u1="V" u2="&#xe7;" k="41" />
+<hkern u1="V" u2="&#xe6;" k="41" />
+<hkern u1="V" u2="&#xe5;" k="41" />
+<hkern u1="V" u2="&#xe4;" k="41" />
+<hkern u1="V" u2="&#xe3;" k="41" />
+<hkern u1="V" u2="&#xe2;" k="41" />
+<hkern u1="V" u2="&#xe1;" k="41" />
+<hkern u1="V" u2="&#xe0;" k="41" />
+<hkern u1="V" u2="&#xd8;" k="20" />
+<hkern u1="V" u2="&#xd6;" k="20" />
+<hkern u1="V" u2="&#xd5;" k="20" />
+<hkern u1="V" u2="&#xd4;" k="20" />
+<hkern u1="V" u2="&#xd3;" k="20" />
+<hkern u1="V" u2="&#xd2;" k="20" />
+<hkern u1="V" u2="&#xc7;" k="20" />
+<hkern u1="V" u2="&#xc5;" k="82" />
+<hkern u1="V" u2="&#xc4;" k="82" />
+<hkern u1="V" u2="&#xc3;" k="82" />
+<hkern u1="V" u2="&#xc2;" k="82" />
+<hkern u1="V" u2="&#xc1;" k="82" />
+<hkern u1="V" u2="&#xc0;" k="82" />
+<hkern u1="V" u2="u" k="20" />
+<hkern u1="V" u2="s" k="20" />
+<hkern u1="V" u2="r" k="20" />
+<hkern u1="V" u2="q" k="41" />
+<hkern u1="V" u2="p" k="20" />
+<hkern u1="V" u2="o" k="41" />
+<hkern u1="V" u2="n" k="20" />
+<hkern u1="V" u2="m" k="20" />
+<hkern u1="V" u2="g" k="20" />
+<hkern u1="V" u2="e" k="41" />
+<hkern u1="V" u2="d" k="41" />
+<hkern u1="V" u2="c" k="41" />
+<hkern u1="V" u2="a" k="41" />
+<hkern u1="V" u2="Q" k="20" />
+<hkern u1="V" u2="O" k="20" />
+<hkern u1="V" u2="G" k="20" />
+<hkern u1="V" u2="C" k="20" />
+<hkern u1="V" u2="A" k="82" />
+<hkern u1="V" u2="&#x3f;" k="-41" />
+<hkern u1="V" u2="&#x2e;" k="102" />
+<hkern u1="V" u2="&#x2c;" k="102" />
+<hkern u1="W" u2="&#x201e;" k="102" />
+<hkern u1="W" u2="&#x201a;" k="102" />
+<hkern u1="W" u2="&#x153;" k="41" />
+<hkern u1="W" u2="&#x152;" k="20" />
+<hkern u1="W" u2="&#xfc;" k="20" />
+<hkern u1="W" u2="&#xfb;" k="20" />
+<hkern u1="W" u2="&#xfa;" k="20" />
+<hkern u1="W" u2="&#xf9;" k="20" />
+<hkern u1="W" u2="&#xf8;" k="41" />
+<hkern u1="W" u2="&#xf6;" k="41" />
+<hkern u1="W" u2="&#xf5;" k="41" />
+<hkern u1="W" u2="&#xf4;" k="41" />
+<hkern u1="W" u2="&#xf3;" k="41" />
+<hkern u1="W" u2="&#xf2;" k="41" />
+<hkern u1="W" u2="&#xeb;" k="41" />
+<hkern u1="W" u2="&#xea;" k="41" />
+<hkern u1="W" u2="&#xe9;" k="41" />
+<hkern u1="W" u2="&#xe8;" k="41" />
+<hkern u1="W" u2="&#xe7;" k="41" />
+<hkern u1="W" u2="&#xe6;" k="41" />
+<hkern u1="W" u2="&#xe5;" k="41" />
+<hkern u1="W" u2="&#xe4;" k="41" />
+<hkern u1="W" u2="&#xe3;" k="41" />
+<hkern u1="W" u2="&#xe2;" k="41" />
+<hkern u1="W" u2="&#xe1;" k="41" />
+<hkern u1="W" u2="&#xe0;" k="41" />
+<hkern u1="W" u2="&#xd8;" k="20" />
+<hkern u1="W" u2="&#xd6;" k="20" />
+<hkern u1="W" u2="&#xd5;" k="20" />
+<hkern u1="W" u2="&#xd4;" k="20" />
+<hkern u1="W" u2="&#xd3;" k="20" />
+<hkern u1="W" u2="&#xd2;" k="20" />
+<hkern u1="W" u2="&#xc7;" k="20" />
+<hkern u1="W" u2="&#xc5;" k="82" />
+<hkern u1="W" u2="&#xc4;" k="82" />
+<hkern u1="W" u2="&#xc3;" k="82" />
+<hkern u1="W" u2="&#xc2;" k="82" />
+<hkern u1="W" u2="&#xc1;" k="82" />
+<hkern u1="W" u2="&#xc0;" k="82" />
+<hkern u1="W" u2="u" k="20" />
+<hkern u1="W" u2="s" k="20" />
+<hkern u1="W" u2="r" k="20" />
+<hkern u1="W" u2="q" k="41" />
+<hkern u1="W" u2="p" k="20" />
+<hkern u1="W" u2="o" k="41" />
+<hkern u1="W" u2="n" k="20" />
+<hkern u1="W" u2="m" k="20" />
+<hkern u1="W" u2="g" k="20" />
+<hkern u1="W" u2="e" k="41" />
+<hkern u1="W" u2="d" k="41" />
+<hkern u1="W" u2="c" k="41" />
+<hkern u1="W" u2="a" k="41" />
+<hkern u1="W" u2="Q" k="20" />
+<hkern u1="W" u2="O" k="20" />
+<hkern u1="W" u2="G" k="20" />
+<hkern u1="W" u2="C" k="20" />
+<hkern u1="W" u2="A" k="82" />
+<hkern u1="W" u2="&#x3f;" k="-41" />
+<hkern u1="W" u2="&#x2e;" k="102" />
+<hkern u1="W" u2="&#x2c;" k="102" />
+<hkern u1="X" u2="&#x152;" k="41" />
+<hkern u1="X" u2="&#xd8;" k="41" />
+<hkern u1="X" u2="&#xd6;" k="41" />
+<hkern u1="X" u2="&#xd5;" k="41" />
+<hkern u1="X" u2="&#xd4;" k="41" />
+<hkern u1="X" u2="&#xd3;" k="41" />
+<hkern u1="X" u2="&#xd2;" k="41" />
+<hkern u1="X" u2="&#xc7;" k="41" />
+<hkern u1="X" u2="Q" k="41" />
+<hkern u1="X" u2="O" k="41" />
+<hkern u1="X" u2="G" k="41" />
+<hkern u1="X" u2="C" k="41" />
+<hkern u1="Y" u2="&#x201e;" k="123" />
+<hkern u1="Y" u2="&#x201a;" k="123" />
+<hkern u1="Y" u2="&#x153;" k="102" />
+<hkern u1="Y" u2="&#x152;" k="41" />
+<hkern u1="Y" u2="&#xfc;" k="61" />
+<hkern u1="Y" u2="&#xfb;" k="61" />
+<hkern u1="Y" u2="&#xfa;" k="61" />
+<hkern u1="Y" u2="&#xf9;" k="61" />
+<hkern u1="Y" u2="&#xf8;" k="102" />
+<hkern u1="Y" u2="&#xf6;" k="102" />
+<hkern u1="Y" u2="&#xf5;" k="102" />
+<hkern u1="Y" u2="&#xf4;" k="102" />
+<hkern u1="Y" u2="&#xf3;" k="102" />
+<hkern u1="Y" u2="&#xf2;" k="102" />
+<hkern u1="Y" u2="&#xeb;" k="102" />
+<hkern u1="Y" u2="&#xea;" k="102" />
+<hkern u1="Y" u2="&#xe9;" k="102" />
+<hkern u1="Y" u2="&#xe8;" k="102" />
+<hkern u1="Y" u2="&#xe7;" k="102" />
+<hkern u1="Y" u2="&#xe6;" k="102" />
+<hkern u1="Y" u2="&#xe5;" k="102" />
+<hkern u1="Y" u2="&#xe4;" k="102" />
+<hkern u1="Y" u2="&#xe3;" k="102" />
+<hkern u1="Y" u2="&#xe2;" k="102" />
+<hkern u1="Y" u2="&#xe1;" k="102" />
+<hkern u1="Y" u2="&#xe0;" k="102" />
+<hkern u1="Y" u2="&#xd8;" k="41" />
+<hkern u1="Y" u2="&#xd6;" k="41" />
+<hkern u1="Y" u2="&#xd5;" k="41" />
+<hkern u1="Y" u2="&#xd4;" k="41" />
+<hkern u1="Y" u2="&#xd3;" k="41" />
+<hkern u1="Y" u2="&#xd2;" k="41" />
+<hkern u1="Y" u2="&#xc7;" k="41" />
+<hkern u1="Y" u2="&#xc5;" k="123" />
+<hkern u1="Y" u2="&#xc4;" k="123" />
+<hkern u1="Y" u2="&#xc3;" k="123" />
+<hkern u1="Y" u2="&#xc2;" k="123" />
+<hkern u1="Y" u2="&#xc1;" k="123" />
+<hkern u1="Y" u2="&#xc0;" k="123" />
+<hkern u1="Y" u2="z" k="41" />
+<hkern u1="Y" u2="u" k="61" />
+<hkern u1="Y" u2="s" k="82" />
+<hkern u1="Y" u2="r" k="61" />
+<hkern u1="Y" u2="q" k="102" />
+<hkern u1="Y" u2="p" k="61" />
+<hkern u1="Y" u2="o" k="102" />
+<hkern u1="Y" u2="n" k="61" />
+<hkern u1="Y" u2="m" k="61" />
+<hkern u1="Y" u2="g" k="41" />
+<hkern u1="Y" u2="e" k="102" />
+<hkern u1="Y" u2="d" k="102" />
+<hkern u1="Y" u2="c" k="102" />
+<hkern u1="Y" u2="a" k="102" />
+<hkern u1="Y" u2="Q" k="41" />
+<hkern u1="Y" u2="O" k="41" />
+<hkern u1="Y" u2="G" k="41" />
+<hkern u1="Y" u2="C" k="41" />
+<hkern u1="Y" u2="A" k="123" />
+<hkern u1="Y" u2="&#x3f;" k="-41" />
+<hkern u1="Y" u2="&#x2e;" k="123" />
+<hkern u1="Y" u2="&#x2c;" k="123" />
+<hkern u1="Z" u2="&#x152;" k="20" />
+<hkern u1="Z" u2="&#xd8;" k="20" />
+<hkern u1="Z" u2="&#xd6;" k="20" />
+<hkern u1="Z" u2="&#xd5;" k="20" />
+<hkern u1="Z" u2="&#xd4;" k="20" />
+<hkern u1="Z" u2="&#xd3;" k="20" />
+<hkern u1="Z" u2="&#xd2;" k="20" />
+<hkern u1="Z" u2="&#xc7;" k="20" />
+<hkern u1="Z" u2="Q" k="20" />
+<hkern u1="Z" u2="O" k="20" />
+<hkern u1="Z" u2="G" k="20" />
+<hkern u1="Z" u2="C" k="20" />
+<hkern u1="[" u2="J" k="-184" />
+<hkern u1="a" u2="&#x201d;" k="20" />
+<hkern u1="a" u2="&#x2019;" k="20" />
+<hkern u1="a" u2="&#x27;" k="20" />
+<hkern u1="a" u2="&#x22;" k="20" />
+<hkern u1="b" u2="&#x201d;" k="20" />
+<hkern u1="b" u2="&#x2019;" k="20" />
+<hkern u1="b" u2="&#xfd;" k="41" />
+<hkern u1="b" u2="z" k="20" />
+<hkern u1="b" u2="y" k="41" />
+<hkern u1="b" u2="x" k="41" />
+<hkern u1="b" u2="w" k="41" />
+<hkern u1="b" u2="v" k="41" />
+<hkern u1="b" u2="&#x27;" k="20" />
+<hkern u1="b" u2="&#x22;" k="20" />
+<hkern u1="c" u2="&#x201d;" k="-41" />
+<hkern u1="c" u2="&#x2019;" k="-41" />
+<hkern u1="c" u2="&#x27;" k="-41" />
+<hkern u1="c" u2="&#x22;" k="-41" />
+<hkern u1="e" u2="&#x201d;" k="20" />
+<hkern u1="e" u2="&#x2019;" k="20" />
+<hkern u1="e" u2="&#xfd;" k="41" />
+<hkern u1="e" u2="z" k="20" />
+<hkern u1="e" u2="y" k="41" />
+<hkern u1="e" u2="x" k="41" />
+<hkern u1="e" u2="w" k="41" />
+<hkern u1="e" u2="v" k="41" />
+<hkern u1="e" u2="&#x27;" k="20" />
+<hkern u1="e" u2="&#x22;" k="20" />
+<hkern u1="f" u2="&#x201d;" k="-123" />
+<hkern u1="f" u2="&#x2019;" k="-123" />
+<hkern u1="f" u2="&#x27;" k="-123" />
+<hkern u1="f" u2="&#x22;" k="-123" />
+<hkern u1="h" u2="&#x201d;" k="20" />
+<hkern u1="h" u2="&#x2019;" k="20" />
+<hkern u1="h" u2="&#x27;" k="20" />
+<hkern u1="h" u2="&#x22;" k="20" />
+<hkern u1="k" u2="&#x153;" k="41" />
+<hkern u1="k" u2="&#xf8;" k="41" />
+<hkern u1="k" u2="&#xf6;" k="41" />
+<hkern u1="k" u2="&#xf5;" k="41" />
+<hkern u1="k" u2="&#xf4;" k="41" />
+<hkern u1="k" u2="&#xf3;" k="41" />
+<hkern u1="k" u2="&#xf2;" k="41" />
+<hkern u1="k" u2="&#xeb;" k="41" />
+<hkern u1="k" u2="&#xea;" k="41" />
+<hkern u1="k" u2="&#xe9;" k="41" />
+<hkern u1="k" u2="&#xe8;" k="41" />
+<hkern u1="k" u2="&#xe7;" k="41" />
+<hkern u1="k" u2="&#xe0;" k="41" />
+<hkern u1="k" u2="q" k="41" />
+<hkern u1="k" u2="o" k="41" />
+<hkern u1="k" u2="e" k="41" />
+<hkern u1="k" u2="d" k="41" />
+<hkern u1="k" u2="c" k="41" />
+<hkern u1="m" u2="&#x201d;" k="20" />
+<hkern u1="m" u2="&#x2019;" k="20" />
+<hkern u1="m" u2="&#x27;" k="20" />
+<hkern u1="m" u2="&#x22;" k="20" />
+<hkern u1="n" u2="&#x201d;" k="20" />
+<hkern u1="n" u2="&#x2019;" k="20" />
+<hkern u1="n" u2="&#x27;" k="20" />
+<hkern u1="n" u2="&#x22;" k="20" />
+<hkern u1="o" u2="&#x201d;" k="20" />
+<hkern u1="o" u2="&#x2019;" k="20" />
+<hkern u1="o" u2="&#xfd;" k="41" />
+<hkern u1="o" u2="z" k="20" />
+<hkern u1="o" u2="y" k="41" />
+<hkern u1="o" u2="x" k="41" />
+<hkern u1="o" u2="w" k="41" />
+<hkern u1="o" u2="v" k="41" />
+<hkern u1="o" u2="&#x27;" k="20" />
+<hkern u1="o" u2="&#x22;" k="20" />
+<hkern u1="p" u2="&#x201d;" k="20" />
+<hkern u1="p" u2="&#x2019;" k="20" />
+<hkern u1="p" u2="&#xfd;" k="41" />
+<hkern u1="p" u2="z" k="20" />
+<hkern u1="p" u2="y" k="41" />
+<hkern u1="p" u2="x" k="41" />
+<hkern u1="p" u2="w" k="41" />
+<hkern u1="p" u2="v" k="41" />
+<hkern u1="p" u2="&#x27;" k="20" />
+<hkern u1="p" u2="&#x22;" k="20" />
+<hkern u1="r" u2="&#x201d;" k="-82" />
+<hkern u1="r" u2="&#x2019;" k="-82" />
+<hkern u1="r" u2="&#x153;" k="41" />
+<hkern u1="r" u2="&#xf8;" k="41" />
+<hkern u1="r" u2="&#xf6;" k="41" />
+<hkern u1="r" u2="&#xf5;" k="41" />
+<hkern u1="r" u2="&#xf4;" k="41" />
+<hkern u1="r" u2="&#xf3;" k="41" />
+<hkern u1="r" u2="&#xf2;" k="41" />
+<hkern u1="r" u2="&#xeb;" k="41" />
+<hkern u1="r" u2="&#xea;" k="41" />
+<hkern u1="r" u2="&#xe9;" k="41" />
+<hkern u1="r" u2="&#xe8;" k="41" />
+<hkern u1="r" u2="&#xe7;" k="41" />
+<hkern u1="r" u2="&#xe6;" k="41" />
+<hkern u1="r" u2="&#xe5;" k="41" />
+<hkern u1="r" u2="&#xe4;" k="41" />
+<hkern u1="r" u2="&#xe3;" k="41" />
+<hkern u1="r" u2="&#xe2;" k="41" />
+<hkern u1="r" u2="&#xe1;" k="41" />
+<hkern u1="r" u2="&#xe0;" k="41" />
+<hkern u1="r" u2="q" k="41" />
+<hkern u1="r" u2="o" k="41" />
+<hkern u1="r" u2="g" k="20" />
+<hkern u1="r" u2="e" k="41" />
+<hkern u1="r" u2="d" k="41" />
+<hkern u1="r" u2="c" k="41" />
+<hkern u1="r" u2="a" k="41" />
+<hkern u1="r" u2="&#x27;" k="-82" />
+<hkern u1="r" u2="&#x22;" k="-82" />
+<hkern u1="t" u2="&#x201d;" k="-41" />
+<hkern u1="t" u2="&#x2019;" k="-41" />
+<hkern u1="t" u2="&#x27;" k="-41" />
+<hkern u1="t" u2="&#x22;" k="-41" />
+<hkern u1="v" u2="&#x201e;" k="82" />
+<hkern u1="v" u2="&#x201d;" k="-82" />
+<hkern u1="v" u2="&#x201a;" k="82" />
+<hkern u1="v" u2="&#x2019;" k="-82" />
+<hkern u1="v" u2="&#x3f;" k="-41" />
+<hkern u1="v" u2="&#x2e;" k="82" />
+<hkern u1="v" u2="&#x2c;" k="82" />
+<hkern u1="v" u2="&#x27;" k="-82" />
+<hkern u1="v" u2="&#x22;" k="-82" />
+<hkern u1="w" u2="&#x201e;" k="82" />
+<hkern u1="w" u2="&#x201d;" k="-82" />
+<hkern u1="w" u2="&#x201a;" k="82" />
+<hkern u1="w" u2="&#x2019;" k="-82" />
+<hkern u1="w" u2="&#x3f;" k="-41" />
+<hkern u1="w" u2="&#x2e;" k="82" />
+<hkern u1="w" u2="&#x2c;" k="82" />
+<hkern u1="w" u2="&#x27;" k="-82" />
+<hkern u1="w" u2="&#x22;" k="-82" />
+<hkern u1="x" u2="&#x153;" k="41" />
+<hkern u1="x" u2="&#xf8;" k="41" />
+<hkern u1="x" u2="&#xf6;" k="41" />
+<hkern u1="x" u2="&#xf5;" k="41" />
+<hkern u1="x" u2="&#xf4;" k="41" />
+<hkern u1="x" u2="&#xf3;" k="41" />
+<hkern u1="x" u2="&#xf2;" k="41" />
+<hkern u1="x" u2="&#xeb;" k="41" />
+<hkern u1="x" u2="&#xea;" k="41" />
+<hkern u1="x" u2="&#xe9;" k="41" />
+<hkern u1="x" u2="&#xe8;" k="41" />
+<hkern u1="x" u2="&#xe7;" k="41" />
+<hkern u1="x" u2="&#xe0;" k="41" />
+<hkern u1="x" u2="q" k="41" />
+<hkern u1="x" u2="o" k="41" />
+<hkern u1="x" u2="e" k="41" />
+<hkern u1="x" u2="d" k="41" />
+<hkern u1="x" u2="c" k="41" />
+<hkern u1="y" u2="&#x201e;" k="82" />
+<hkern u1="y" u2="&#x201d;" k="-82" />
+<hkern u1="y" u2="&#x201a;" k="82" />
+<hkern u1="y" u2="&#x2019;" k="-82" />
+<hkern u1="y" u2="&#x3f;" k="-41" />
+<hkern u1="y" u2="&#x2e;" k="82" />
+<hkern u1="y" u2="&#x2c;" k="82" />
+<hkern u1="y" u2="&#x27;" k="-82" />
+<hkern u1="y" u2="&#x22;" k="-82" />
+<hkern u1="&#x7b;" u2="J" k="-184" />
+<hkern u1="&#xc0;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc0;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc0;" u2="&#x178;" k="123" />
+<hkern u1="&#xc0;" u2="&#x152;" k="41" />
+<hkern u1="&#xc0;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc0;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc0;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc0;" u2="Y" k="123" />
+<hkern u1="&#xc0;" u2="W" k="82" />
+<hkern u1="&#xc0;" u2="V" k="82" />
+<hkern u1="&#xc0;" u2="T" k="143" />
+<hkern u1="&#xc0;" u2="Q" k="41" />
+<hkern u1="&#xc0;" u2="O" k="41" />
+<hkern u1="&#xc0;" u2="J" k="-266" />
+<hkern u1="&#xc0;" u2="G" k="41" />
+<hkern u1="&#xc0;" u2="C" k="41" />
+<hkern u1="&#xc0;" u2="&#x27;" k="143" />
+<hkern u1="&#xc0;" u2="&#x22;" k="143" />
+<hkern u1="&#xc1;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc1;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc1;" u2="&#x178;" k="123" />
+<hkern u1="&#xc1;" u2="&#x152;" k="41" />
+<hkern u1="&#xc1;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc1;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc1;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc1;" u2="Y" k="123" />
+<hkern u1="&#xc1;" u2="W" k="82" />
+<hkern u1="&#xc1;" u2="V" k="82" />
+<hkern u1="&#xc1;" u2="T" k="143" />
+<hkern u1="&#xc1;" u2="Q" k="41" />
+<hkern u1="&#xc1;" u2="O" k="41" />
+<hkern u1="&#xc1;" u2="J" k="-266" />
+<hkern u1="&#xc1;" u2="G" k="41" />
+<hkern u1="&#xc1;" u2="C" k="41" />
+<hkern u1="&#xc1;" u2="&#x27;" k="143" />
+<hkern u1="&#xc1;" u2="&#x22;" k="143" />
+<hkern u1="&#xc2;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc2;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc2;" u2="&#x178;" k="123" />
+<hkern u1="&#xc2;" u2="&#x152;" k="41" />
+<hkern u1="&#xc2;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc2;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc2;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc2;" u2="Y" k="123" />
+<hkern u1="&#xc2;" u2="W" k="82" />
+<hkern u1="&#xc2;" u2="V" k="82" />
+<hkern u1="&#xc2;" u2="T" k="143" />
+<hkern u1="&#xc2;" u2="Q" k="41" />
+<hkern u1="&#xc2;" u2="O" k="41" />
+<hkern u1="&#xc2;" u2="J" k="-266" />
+<hkern u1="&#xc2;" u2="G" k="41" />
+<hkern u1="&#xc2;" u2="C" k="41" />
+<hkern u1="&#xc2;" u2="&#x27;" k="143" />
+<hkern u1="&#xc2;" u2="&#x22;" k="143" />
+<hkern u1="&#xc3;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc3;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc3;" u2="&#x178;" k="123" />
+<hkern u1="&#xc3;" u2="&#x152;" k="41" />
+<hkern u1="&#xc3;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc3;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc3;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc3;" u2="Y" k="123" />
+<hkern u1="&#xc3;" u2="W" k="82" />
+<hkern u1="&#xc3;" u2="V" k="82" />
+<hkern u1="&#xc3;" u2="T" k="143" />
+<hkern u1="&#xc3;" u2="Q" k="41" />
+<hkern u1="&#xc3;" u2="O" k="41" />
+<hkern u1="&#xc3;" u2="J" k="-266" />
+<hkern u1="&#xc3;" u2="G" k="41" />
+<hkern u1="&#xc3;" u2="C" k="41" />
+<hkern u1="&#xc3;" u2="&#x27;" k="143" />
+<hkern u1="&#xc3;" u2="&#x22;" k="143" />
+<hkern u1="&#xc4;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc4;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc4;" u2="&#x178;" k="123" />
+<hkern u1="&#xc4;" u2="&#x152;" k="41" />
+<hkern u1="&#xc4;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc4;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc4;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc4;" u2="Y" k="123" />
+<hkern u1="&#xc4;" u2="W" k="82" />
+<hkern u1="&#xc4;" u2="V" k="82" />
+<hkern u1="&#xc4;" u2="T" k="143" />
+<hkern u1="&#xc4;" u2="Q" k="41" />
+<hkern u1="&#xc4;" u2="O" k="41" />
+<hkern u1="&#xc4;" u2="J" k="-266" />
+<hkern u1="&#xc4;" u2="G" k="41" />
+<hkern u1="&#xc4;" u2="C" k="41" />
+<hkern u1="&#xc4;" u2="&#x27;" k="143" />
+<hkern u1="&#xc4;" u2="&#x22;" k="143" />
+<hkern u1="&#xc5;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc5;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc5;" u2="&#x178;" k="123" />
+<hkern u1="&#xc5;" u2="&#x152;" k="41" />
+<hkern u1="&#xc5;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc5;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc5;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc5;" u2="Y" k="123" />
+<hkern u1="&#xc5;" u2="W" k="82" />
+<hkern u1="&#xc5;" u2="V" k="82" />
+<hkern u1="&#xc5;" u2="T" k="143" />
+<hkern u1="&#xc5;" u2="Q" k="41" />
+<hkern u1="&#xc5;" u2="O" k="41" />
+<hkern u1="&#xc5;" u2="J" k="-266" />
+<hkern u1="&#xc5;" u2="G" k="41" />
+<hkern u1="&#xc5;" u2="C" k="41" />
+<hkern u1="&#xc5;" u2="&#x27;" k="143" />
+<hkern u1="&#xc5;" u2="&#x22;" k="143" />
+<hkern u1="&#xc6;" u2="J" k="-123" />
+<hkern u1="&#xc7;" u2="&#x152;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc7;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc7;" u2="Q" k="41" />
+<hkern u1="&#xc7;" u2="O" k="41" />
+<hkern u1="&#xc7;" u2="G" k="41" />
+<hkern u1="&#xc7;" u2="C" k="41" />
+<hkern u1="&#xc8;" u2="J" k="-123" />
+<hkern u1="&#xc9;" u2="J" k="-123" />
+<hkern u1="&#xca;" u2="J" k="-123" />
+<hkern u1="&#xcb;" u2="J" k="-123" />
+<hkern u1="&#xd0;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd0;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd0;" u2="&#x178;" k="20" />
+<hkern u1="&#xd0;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd0;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd0;" u2="Z" k="20" />
+<hkern u1="&#xd0;" u2="Y" k="20" />
+<hkern u1="&#xd0;" u2="X" k="41" />
+<hkern u1="&#xd0;" u2="W" k="20" />
+<hkern u1="&#xd0;" u2="V" k="20" />
+<hkern u1="&#xd0;" u2="T" k="61" />
+<hkern u1="&#xd0;" u2="A" k="41" />
+<hkern u1="&#xd0;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd0;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd2;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd2;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd2;" u2="&#x178;" k="20" />
+<hkern u1="&#xd2;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd2;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd2;" u2="Z" k="20" />
+<hkern u1="&#xd2;" u2="Y" k="20" />
+<hkern u1="&#xd2;" u2="X" k="41" />
+<hkern u1="&#xd2;" u2="W" k="20" />
+<hkern u1="&#xd2;" u2="V" k="20" />
+<hkern u1="&#xd2;" u2="T" k="61" />
+<hkern u1="&#xd2;" u2="A" k="41" />
+<hkern u1="&#xd2;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd2;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd3;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd3;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd3;" u2="&#x178;" k="20" />
+<hkern u1="&#xd3;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd3;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd3;" u2="Z" k="20" />
+<hkern u1="&#xd3;" u2="Y" k="20" />
+<hkern u1="&#xd3;" u2="X" k="41" />
+<hkern u1="&#xd3;" u2="W" k="20" />
+<hkern u1="&#xd3;" u2="V" k="20" />
+<hkern u1="&#xd3;" u2="T" k="61" />
+<hkern u1="&#xd3;" u2="A" k="41" />
+<hkern u1="&#xd3;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd3;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd4;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd4;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd4;" u2="&#x178;" k="20" />
+<hkern u1="&#xd4;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd4;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd4;" u2="Z" k="20" />
+<hkern u1="&#xd4;" u2="Y" k="20" />
+<hkern u1="&#xd4;" u2="X" k="41" />
+<hkern u1="&#xd4;" u2="W" k="20" />
+<hkern u1="&#xd4;" u2="V" k="20" />
+<hkern u1="&#xd4;" u2="T" k="61" />
+<hkern u1="&#xd4;" u2="A" k="41" />
+<hkern u1="&#xd4;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd4;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd5;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd5;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd5;" u2="&#x178;" k="20" />
+<hkern u1="&#xd5;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd5;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd5;" u2="Z" k="20" />
+<hkern u1="&#xd5;" u2="Y" k="20" />
+<hkern u1="&#xd5;" u2="X" k="41" />
+<hkern u1="&#xd5;" u2="W" k="20" />
+<hkern u1="&#xd5;" u2="V" k="20" />
+<hkern u1="&#xd5;" u2="T" k="61" />
+<hkern u1="&#xd5;" u2="A" k="41" />
+<hkern u1="&#xd5;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd5;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd6;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd6;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd6;" u2="&#x178;" k="20" />
+<hkern u1="&#xd6;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd6;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd6;" u2="Z" k="20" />
+<hkern u1="&#xd6;" u2="Y" k="20" />
+<hkern u1="&#xd6;" u2="X" k="41" />
+<hkern u1="&#xd6;" u2="W" k="20" />
+<hkern u1="&#xd6;" u2="V" k="20" />
+<hkern u1="&#xd6;" u2="T" k="61" />
+<hkern u1="&#xd6;" u2="A" k="41" />
+<hkern u1="&#xd6;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd6;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd8;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd8;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd8;" u2="&#x178;" k="20" />
+<hkern u1="&#xd8;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd8;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd8;" u2="Z" k="20" />
+<hkern u1="&#xd8;" u2="Y" k="20" />
+<hkern u1="&#xd8;" u2="X" k="41" />
+<hkern u1="&#xd8;" u2="W" k="20" />
+<hkern u1="&#xd8;" u2="V" k="20" />
+<hkern u1="&#xd8;" u2="T" k="61" />
+<hkern u1="&#xd8;" u2="A" k="41" />
+<hkern u1="&#xd8;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd8;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd9;" u2="&#x201e;" k="41" />
+<hkern u1="&#xd9;" u2="&#x201a;" k="41" />
+<hkern u1="&#xd9;" u2="&#xc5;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc4;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc3;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc2;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc1;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc0;" k="20" />
+<hkern u1="&#xd9;" u2="A" k="20" />
+<hkern u1="&#xd9;" u2="&#x2e;" k="41" />
+<hkern u1="&#xd9;" u2="&#x2c;" k="41" />
+<hkern u1="&#xda;" u2="&#x201e;" k="41" />
+<hkern u1="&#xda;" u2="&#x201a;" k="41" />
+<hkern u1="&#xda;" u2="&#xc5;" k="20" />
+<hkern u1="&#xda;" u2="&#xc4;" k="20" />
+<hkern u1="&#xda;" u2="&#xc3;" k="20" />
+<hkern u1="&#xda;" u2="&#xc2;" k="20" />
+<hkern u1="&#xda;" u2="&#xc1;" k="20" />
+<hkern u1="&#xda;" u2="&#xc0;" k="20" />
+<hkern u1="&#xda;" u2="A" k="20" />
+<hkern u1="&#xda;" u2="&#x2e;" k="41" />
+<hkern u1="&#xda;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdb;" u2="&#x201e;" k="41" />
+<hkern u1="&#xdb;" u2="&#x201a;" k="41" />
+<hkern u1="&#xdb;" u2="&#xc5;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc4;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc3;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc2;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc1;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc0;" k="20" />
+<hkern u1="&#xdb;" u2="A" k="20" />
+<hkern u1="&#xdb;" u2="&#x2e;" k="41" />
+<hkern u1="&#xdb;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdc;" u2="&#x201e;" k="41" />
+<hkern u1="&#xdc;" u2="&#x201a;" k="41" />
+<hkern u1="&#xdc;" u2="&#xc5;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc4;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc3;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc2;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc1;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc0;" k="20" />
+<hkern u1="&#xdc;" u2="A" k="20" />
+<hkern u1="&#xdc;" u2="&#x2e;" k="41" />
+<hkern u1="&#xdc;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdd;" u2="&#x201e;" k="123" />
+<hkern u1="&#xdd;" u2="&#x201a;" k="123" />
+<hkern u1="&#xdd;" u2="&#x153;" k="102" />
+<hkern u1="&#xdd;" u2="&#x152;" k="41" />
+<hkern u1="&#xdd;" u2="&#xfc;" k="61" />
+<hkern u1="&#xdd;" u2="&#xfb;" k="61" />
+<hkern u1="&#xdd;" u2="&#xfa;" k="61" />
+<hkern u1="&#xdd;" u2="&#xf9;" k="61" />
+<hkern u1="&#xdd;" u2="&#xf8;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf6;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf5;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf4;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf3;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf2;" k="102" />
+<hkern u1="&#xdd;" u2="&#xeb;" k="102" />
+<hkern u1="&#xdd;" u2="&#xea;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe9;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe8;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe7;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe6;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe5;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe4;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe3;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe2;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe1;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe0;" k="102" />
+<hkern u1="&#xdd;" u2="&#xd8;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd6;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd5;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd4;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd3;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd2;" k="41" />
+<hkern u1="&#xdd;" u2="&#xc7;" k="41" />
+<hkern u1="&#xdd;" u2="&#xc5;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc4;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc3;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc2;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc1;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc0;" k="123" />
+<hkern u1="&#xdd;" u2="z" k="41" />
+<hkern u1="&#xdd;" u2="u" k="61" />
+<hkern u1="&#xdd;" u2="s" k="82" />
+<hkern u1="&#xdd;" u2="r" k="61" />
+<hkern u1="&#xdd;" u2="q" k="102" />
+<hkern u1="&#xdd;" u2="p" k="61" />
+<hkern u1="&#xdd;" u2="o" k="102" />
+<hkern u1="&#xdd;" u2="n" k="61" />
+<hkern u1="&#xdd;" u2="m" k="61" />
+<hkern u1="&#xdd;" u2="g" k="41" />
+<hkern u1="&#xdd;" u2="e" k="102" />
+<hkern u1="&#xdd;" u2="d" k="102" />
+<hkern u1="&#xdd;" u2="c" k="102" />
+<hkern u1="&#xdd;" u2="a" k="102" />
+<hkern u1="&#xdd;" u2="Q" k="41" />
+<hkern u1="&#xdd;" u2="O" k="41" />
+<hkern u1="&#xdd;" u2="G" k="41" />
+<hkern u1="&#xdd;" u2="C" k="41" />
+<hkern u1="&#xdd;" u2="A" k="123" />
+<hkern u1="&#xdd;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xdd;" u2="&#x2e;" k="123" />
+<hkern u1="&#xdd;" u2="&#x2c;" k="123" />
+<hkern u1="&#xde;" u2="&#x201e;" k="266" />
+<hkern u1="&#xde;" u2="&#x201a;" k="266" />
+<hkern u1="&#xde;" u2="&#xc5;" k="102" />
+<hkern u1="&#xde;" u2="&#xc4;" k="102" />
+<hkern u1="&#xde;" u2="&#xc3;" k="102" />
+<hkern u1="&#xde;" u2="&#xc2;" k="102" />
+<hkern u1="&#xde;" u2="&#xc1;" k="102" />
+<hkern u1="&#xde;" u2="&#xc0;" k="102" />
+<hkern u1="&#xde;" u2="Z" k="20" />
+<hkern u1="&#xde;" u2="X" k="41" />
+<hkern u1="&#xde;" u2="A" k="102" />
+<hkern u1="&#xde;" u2="&#x2e;" k="266" />
+<hkern u1="&#xde;" u2="&#x2c;" k="266" />
+<hkern u1="&#xe0;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe0;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe0;" u2="&#x27;" k="20" />
+<hkern u1="&#xe0;" u2="&#x22;" k="20" />
+<hkern u1="&#xe1;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe1;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe1;" u2="&#x27;" k="20" />
+<hkern u1="&#xe1;" u2="&#x22;" k="20" />
+<hkern u1="&#xe2;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe2;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe2;" u2="&#x27;" k="20" />
+<hkern u1="&#xe2;" u2="&#x22;" k="20" />
+<hkern u1="&#xe3;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe3;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe3;" u2="&#x27;" k="20" />
+<hkern u1="&#xe3;" u2="&#x22;" k="20" />
+<hkern u1="&#xe4;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe4;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe4;" u2="&#x27;" k="20" />
+<hkern u1="&#xe4;" u2="&#x22;" k="20" />
+<hkern u1="&#xe5;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe5;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe5;" u2="&#x27;" k="20" />
+<hkern u1="&#xe5;" u2="&#x22;" k="20" />
+<hkern u1="&#xe8;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe8;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe8;" u2="&#xfd;" k="41" />
+<hkern u1="&#xe8;" u2="z" k="20" />
+<hkern u1="&#xe8;" u2="y" k="41" />
+<hkern u1="&#xe8;" u2="x" k="41" />
+<hkern u1="&#xe8;" u2="w" k="41" />
+<hkern u1="&#xe8;" u2="v" k="41" />
+<hkern u1="&#xe8;" u2="&#x27;" k="20" />
+<hkern u1="&#xe8;" u2="&#x22;" k="20" />
+<hkern u1="&#xe9;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe9;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe9;" u2="&#xfd;" k="41" />
+<hkern u1="&#xe9;" u2="z" k="20" />
+<hkern u1="&#xe9;" u2="y" k="41" />
+<hkern u1="&#xe9;" u2="x" k="41" />
+<hkern u1="&#xe9;" u2="w" k="41" />
+<hkern u1="&#xe9;" u2="v" k="41" />
+<hkern u1="&#xe9;" u2="&#x27;" k="20" />
+<hkern u1="&#xe9;" u2="&#x22;" k="20" />
+<hkern u1="&#xea;" u2="&#x201d;" k="20" />
+<hkern u1="&#xea;" u2="&#x2019;" k="20" />
+<hkern u1="&#xea;" u2="&#xfd;" k="41" />
+<hkern u1="&#xea;" u2="z" k="20" />
+<hkern u1="&#xea;" u2="y" k="41" />
+<hkern u1="&#xea;" u2="x" k="41" />
+<hkern u1="&#xea;" u2="w" k="41" />
+<hkern u1="&#xea;" u2="v" k="41" />
+<hkern u1="&#xea;" u2="&#x27;" k="20" />
+<hkern u1="&#xea;" u2="&#x22;" k="20" />
+<hkern u1="&#xeb;" u2="&#x201d;" k="20" />
+<hkern u1="&#xeb;" u2="&#x2019;" k="20" />
+<hkern u1="&#xeb;" u2="&#xfd;" k="41" />
+<hkern u1="&#xeb;" u2="z" k="20" />
+<hkern u1="&#xeb;" u2="y" k="41" />
+<hkern u1="&#xeb;" u2="x" k="41" />
+<hkern u1="&#xeb;" u2="w" k="41" />
+<hkern u1="&#xeb;" u2="v" k="41" />
+<hkern u1="&#xeb;" u2="&#x27;" k="20" />
+<hkern u1="&#xeb;" u2="&#x22;" k="20" />
+<hkern u1="&#xf0;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf0;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf0;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf0;" u2="z" k="20" />
+<hkern u1="&#xf0;" u2="y" k="41" />
+<hkern u1="&#xf0;" u2="x" k="41" />
+<hkern u1="&#xf0;" u2="w" k="41" />
+<hkern u1="&#xf0;" u2="v" k="41" />
+<hkern u1="&#xf0;" u2="&#x27;" k="20" />
+<hkern u1="&#xf0;" u2="&#x22;" k="20" />
+<hkern u1="&#xf2;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf2;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf2;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf2;" u2="z" k="20" />
+<hkern u1="&#xf2;" u2="y" k="41" />
+<hkern u1="&#xf2;" u2="x" k="41" />
+<hkern u1="&#xf2;" u2="w" k="41" />
+<hkern u1="&#xf2;" u2="v" k="41" />
+<hkern u1="&#xf2;" u2="&#x27;" k="20" />
+<hkern u1="&#xf2;" u2="&#x22;" k="20" />
+<hkern u1="&#xf3;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf3;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf3;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf3;" u2="z" k="20" />
+<hkern u1="&#xf3;" u2="y" k="41" />
+<hkern u1="&#xf3;" u2="x" k="41" />
+<hkern u1="&#xf3;" u2="w" k="41" />
+<hkern u1="&#xf3;" u2="v" k="41" />
+<hkern u1="&#xf3;" u2="&#x27;" k="20" />
+<hkern u1="&#xf3;" u2="&#x22;" k="20" />
+<hkern u1="&#xf4;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf4;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf4;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf4;" u2="z" k="20" />
+<hkern u1="&#xf4;" u2="y" k="41" />
+<hkern u1="&#xf4;" u2="x" k="41" />
+<hkern u1="&#xf4;" u2="w" k="41" />
+<hkern u1="&#xf4;" u2="v" k="41" />
+<hkern u1="&#xf4;" u2="&#x27;" k="20" />
+<hkern u1="&#xf4;" u2="&#x22;" k="20" />
+<hkern u1="&#xf6;" u2="&#x201d;" k="41" />
+<hkern u1="&#xf6;" u2="&#x2019;" k="41" />
+<hkern u1="&#xf6;" u2="&#x27;" k="41" />
+<hkern u1="&#xf6;" u2="&#x22;" k="41" />
+<hkern u1="&#xf8;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf8;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf8;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf8;" u2="z" k="20" />
+<hkern u1="&#xf8;" u2="y" k="41" />
+<hkern u1="&#xf8;" u2="x" k="41" />
+<hkern u1="&#xf8;" u2="w" k="41" />
+<hkern u1="&#xf8;" u2="v" k="41" />
+<hkern u1="&#xf8;" u2="&#x27;" k="20" />
+<hkern u1="&#xf8;" u2="&#x22;" k="20" />
+<hkern u1="&#xfd;" u2="&#x201e;" k="82" />
+<hkern u1="&#xfd;" u2="&#x201d;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x201a;" k="82" />
+<hkern u1="&#xfd;" u2="&#x2019;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xfd;" u2="&#x2e;" k="82" />
+<hkern u1="&#xfd;" u2="&#x2c;" k="82" />
+<hkern u1="&#xfd;" u2="&#x27;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x22;" k="-82" />
+<hkern u1="&#xfe;" u2="&#x201d;" k="20" />
+<hkern u1="&#xfe;" u2="&#x2019;" k="20" />
+<hkern u1="&#xfe;" u2="&#xfd;" k="41" />
+<hkern u1="&#xfe;" u2="z" k="20" />
+<hkern u1="&#xfe;" u2="y" k="41" />
+<hkern u1="&#xfe;" u2="x" k="41" />
+<hkern u1="&#xfe;" u2="w" k="41" />
+<hkern u1="&#xfe;" u2="v" k="41" />
+<hkern u1="&#xfe;" u2="&#x27;" k="20" />
+<hkern u1="&#xfe;" u2="&#x22;" k="20" />
+<hkern u1="&#xff;" u2="&#x201e;" k="82" />
+<hkern u1="&#xff;" u2="&#x201d;" k="-82" />
+<hkern u1="&#xff;" u2="&#x201a;" k="82" />
+<hkern u1="&#xff;" u2="&#x2019;" k="-82" />
+<hkern u1="&#xff;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xff;" u2="&#x2e;" k="82" />
+<hkern u1="&#xff;" u2="&#x2c;" k="82" />
+<hkern u1="&#xff;" u2="&#x27;" k="-82" />
+<hkern u1="&#xff;" u2="&#x22;" k="-82" />
+<hkern u1="&#x152;" u2="J" k="-123" />
+<hkern u1="&#x178;" u2="&#x201e;" k="123" />
+<hkern u1="&#x178;" u2="&#x201a;" k="123" />
+<hkern u1="&#x178;" u2="&#x153;" k="102" />
+<hkern u1="&#x178;" u2="&#x152;" k="41" />
+<hkern u1="&#x178;" u2="&#xfc;" k="61" />
+<hkern u1="&#x178;" u2="&#xfb;" k="61" />
+<hkern u1="&#x178;" u2="&#xfa;" k="61" />
+<hkern u1="&#x178;" u2="&#xf9;" k="61" />
+<hkern u1="&#x178;" u2="&#xf8;" k="102" />
+<hkern u1="&#x178;" u2="&#xf6;" k="102" />
+<hkern u1="&#x178;" u2="&#xf5;" k="102" />
+<hkern u1="&#x178;" u2="&#xf4;" k="102" />
+<hkern u1="&#x178;" u2="&#xf3;" k="102" />
+<hkern u1="&#x178;" u2="&#xf2;" k="102" />
+<hkern u1="&#x178;" u2="&#xeb;" k="102" />
+<hkern u1="&#x178;" u2="&#xea;" k="102" />
+<hkern u1="&#x178;" u2="&#xe9;" k="102" />
+<hkern u1="&#x178;" u2="&#xe8;" k="102" />
+<hkern u1="&#x178;" u2="&#xe7;" k="102" />
+<hkern u1="&#x178;" u2="&#xe6;" k="102" />
+<hkern u1="&#x178;" u2="&#xe5;" k="102" />
+<hkern u1="&#x178;" u2="&#xe4;" k="102" />
+<hkern u1="&#x178;" u2="&#xe3;" k="102" />
+<hkern u1="&#x178;" u2="&#xe2;" k="102" />
+<hkern u1="&#x178;" u2="&#xe1;" k="102" />
+<hkern u1="&#x178;" u2="&#xe0;" k="102" />
+<hkern u1="&#x178;" u2="&#xd8;" k="41" />
+<hkern u1="&#x178;" u2="&#xd6;" k="41" />
+<hkern u1="&#x178;" u2="&#xd5;" k="41" />
+<hkern u1="&#x178;" u2="&#xd4;" k="41" />
+<hkern u1="&#x178;" u2="&#xd3;" k="41" />
+<hkern u1="&#x178;" u2="&#xd2;" k="41" />
+<hkern u1="&#x178;" u2="&#xc7;" k="41" />
+<hkern u1="&#x178;" u2="&#xc5;" k="123" />
+<hkern u1="&#x178;" u2="&#xc4;" k="123" />
+<hkern u1="&#x178;" u2="&#xc3;" k="123" />
+<hkern u1="&#x178;" u2="&#xc2;" k="123" />
+<hkern u1="&#x178;" u2="&#xc1;" k="123" />
+<hkern u1="&#x178;" u2="&#xc0;" k="123" />
+<hkern u1="&#x178;" u2="z" k="41" />
+<hkern u1="&#x178;" u2="u" k="61" />
+<hkern u1="&#x178;" u2="s" k="82" />
+<hkern u1="&#x178;" u2="r" k="61" />
+<hkern u1="&#x178;" u2="q" k="102" />
+<hkern u1="&#x178;" u2="p" k="61" />
+<hkern u1="&#x178;" u2="o" k="102" />
+<hkern u1="&#x178;" u2="n" k="61" />
+<hkern u1="&#x178;" u2="m" k="61" />
+<hkern u1="&#x178;" u2="g" k="41" />
+<hkern u1="&#x178;" u2="e" k="102" />
+<hkern u1="&#x178;" u2="d" k="102" />
+<hkern u1="&#x178;" u2="c" k="102" />
+<hkern u1="&#x178;" u2="a" k="102" />
+<hkern u1="&#x178;" u2="Q" k="41" />
+<hkern u1="&#x178;" u2="O" k="41" />
+<hkern u1="&#x178;" u2="G" k="41" />
+<hkern u1="&#x178;" u2="C" k="41" />
+<hkern u1="&#x178;" u2="A" k="123" />
+<hkern u1="&#x178;" u2="&#x3f;" k="-41" />
+<hkern u1="&#x178;" u2="&#x2e;" k="123" />
+<hkern u1="&#x178;" u2="&#x2c;" k="123" />
+<hkern u1="&#x2013;" u2="T" k="82" />
+<hkern u1="&#x2014;" u2="T" k="82" />
+<hkern u1="&#x2018;" u2="&#x178;" k="-20" />
+<hkern u1="&#x2018;" u2="&#x153;" k="123" />
+<hkern u1="&#x2018;" u2="&#xfc;" k="61" />
+<hkern u1="&#x2018;" u2="&#xfb;" k="61" />
+<hkern u1="&#x2018;" u2="&#xfa;" k="61" />
+<hkern u1="&#x2018;" u2="&#xf9;" k="61" />
+<hkern u1="&#x2018;" u2="&#xf8;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf6;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf5;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf4;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf3;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf2;" k="123" />
+<hkern u1="&#x2018;" u2="&#xeb;" k="123" />
+<hkern u1="&#x2018;" u2="&#xea;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe9;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe8;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe7;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe6;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe5;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe4;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe3;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe2;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe1;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe0;" k="123" />
+<hkern u1="&#x2018;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x2018;" u2="&#xc5;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc4;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc3;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc2;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc1;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc0;" k="143" />
+<hkern u1="&#x2018;" u2="u" k="61" />
+<hkern u1="&#x2018;" u2="s" k="61" />
+<hkern u1="&#x2018;" u2="r" k="61" />
+<hkern u1="&#x2018;" u2="q" k="123" />
+<hkern u1="&#x2018;" u2="p" k="61" />
+<hkern u1="&#x2018;" u2="o" k="123" />
+<hkern u1="&#x2018;" u2="n" k="61" />
+<hkern u1="&#x2018;" u2="m" k="61" />
+<hkern u1="&#x2018;" u2="g" k="61" />
+<hkern u1="&#x2018;" u2="e" k="123" />
+<hkern u1="&#x2018;" u2="d" k="123" />
+<hkern u1="&#x2018;" u2="c" k="123" />
+<hkern u1="&#x2018;" u2="a" k="82" />
+<hkern u1="&#x2018;" u2="Y" k="-20" />
+<hkern u1="&#x2018;" u2="W" k="-41" />
+<hkern u1="&#x2018;" u2="V" k="-41" />
+<hkern u1="&#x2018;" u2="T" k="-41" />
+<hkern u1="&#x2018;" u2="A" k="143" />
+<hkern u1="&#x2019;" u2="&#x178;" k="-20" />
+<hkern u1="&#x2019;" u2="&#x153;" k="123" />
+<hkern u1="&#x2019;" u2="&#xfc;" k="61" />
+<hkern u1="&#x2019;" u2="&#xfb;" k="61" />
+<hkern u1="&#x2019;" u2="&#xfa;" k="61" />
+<hkern u1="&#x2019;" u2="&#xf9;" k="61" />
+<hkern u1="&#x2019;" u2="&#xf8;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf6;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf5;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf4;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf3;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf2;" k="123" />
+<hkern u1="&#x2019;" u2="&#xeb;" k="123" />
+<hkern u1="&#x2019;" u2="&#xea;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe9;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe8;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe7;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe6;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe5;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe4;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe3;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe2;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe1;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe0;" k="123" />
+<hkern u1="&#x2019;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x2019;" u2="&#xc5;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc4;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc3;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc2;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc1;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc0;" k="143" />
+<hkern u1="&#x2019;" u2="u" k="61" />
+<hkern u1="&#x2019;" u2="s" k="61" />
+<hkern u1="&#x2019;" u2="r" k="61" />
+<hkern u1="&#x2019;" u2="q" k="123" />
+<hkern u1="&#x2019;" u2="p" k="61" />
+<hkern u1="&#x2019;" u2="o" k="123" />
+<hkern u1="&#x2019;" u2="n" k="61" />
+<hkern u1="&#x2019;" u2="m" k="61" />
+<hkern u1="&#x2019;" u2="g" k="61" />
+<hkern u1="&#x2019;" u2="e" k="123" />
+<hkern u1="&#x2019;" u2="d" k="123" />
+<hkern u1="&#x2019;" u2="c" k="123" />
+<hkern u1="&#x2019;" u2="a" k="82" />
+<hkern u1="&#x2019;" u2="Y" k="-20" />
+<hkern u1="&#x2019;" u2="W" k="-41" />
+<hkern u1="&#x2019;" u2="V" k="-41" />
+<hkern u1="&#x2019;" u2="T" k="-41" />
+<hkern u1="&#x2019;" u2="A" k="143" />
+<hkern u1="&#x201a;" u2="&#x178;" k="123" />
+<hkern u1="&#x201a;" u2="&#x152;" k="102" />
+<hkern u1="&#x201a;" u2="&#xdd;" k="123" />
+<hkern u1="&#x201a;" u2="&#xdc;" k="41" />
+<hkern u1="&#x201a;" u2="&#xdb;" k="41" />
+<hkern u1="&#x201a;" u2="&#xda;" k="41" />
+<hkern u1="&#x201a;" u2="&#xd9;" k="41" />
+<hkern u1="&#x201a;" u2="&#xd8;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd6;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd5;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd4;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd3;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd2;" k="102" />
+<hkern u1="&#x201a;" u2="&#xc7;" k="102" />
+<hkern u1="&#x201a;" u2="Y" k="123" />
+<hkern u1="&#x201a;" u2="W" k="123" />
+<hkern u1="&#x201a;" u2="V" k="123" />
+<hkern u1="&#x201a;" u2="U" k="41" />
+<hkern u1="&#x201a;" u2="T" k="143" />
+<hkern u1="&#x201a;" u2="Q" k="102" />
+<hkern u1="&#x201a;" u2="O" k="102" />
+<hkern u1="&#x201a;" u2="G" k="102" />
+<hkern u1="&#x201a;" u2="C" k="102" />
+<hkern u1="&#x201c;" u2="&#x178;" k="-20" />
+<hkern u1="&#x201c;" u2="&#x153;" k="123" />
+<hkern u1="&#x201c;" u2="&#xfc;" k="61" />
+<hkern u1="&#x201c;" u2="&#xfb;" k="61" />
+<hkern u1="&#x201c;" u2="&#xfa;" k="61" />
+<hkern u1="&#x201c;" u2="&#xf9;" k="61" />
+<hkern u1="&#x201c;" u2="&#xf8;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf6;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf5;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf4;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf3;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf2;" k="123" />
+<hkern u1="&#x201c;" u2="&#xeb;" k="123" />
+<hkern u1="&#x201c;" u2="&#xea;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe9;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe8;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe7;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe6;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe5;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe4;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe3;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe2;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe1;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe0;" k="123" />
+<hkern u1="&#x201c;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x201c;" u2="&#xc5;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc4;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc3;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc2;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc1;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc0;" k="143" />
+<hkern u1="&#x201c;" u2="u" k="61" />
+<hkern u1="&#x201c;" u2="s" k="61" />
+<hkern u1="&#x201c;" u2="r" k="61" />
+<hkern u1="&#x201c;" u2="q" k="123" />
+<hkern u1="&#x201c;" u2="p" k="61" />
+<hkern u1="&#x201c;" u2="o" k="123" />
+<hkern u1="&#x201c;" u2="n" k="61" />
+<hkern u1="&#x201c;" u2="m" k="61" />
+<hkern u1="&#x201c;" u2="g" k="61" />
+<hkern u1="&#x201c;" u2="e" k="123" />
+<hkern u1="&#x201c;" u2="d" k="123" />
+<hkern u1="&#x201c;" u2="c" k="123" />
+<hkern u1="&#x201c;" u2="a" k="82" />
+<hkern u1="&#x201c;" u2="Y" k="-20" />
+<hkern u1="&#x201c;" u2="W" k="-41" />
+<hkern u1="&#x201c;" u2="V" k="-41" />
+<hkern u1="&#x201c;" u2="T" k="-41" />
+<hkern u1="&#x201c;" u2="A" k="143" />
+<hkern u1="&#x201e;" u2="&#x178;" k="123" />
+<hkern u1="&#x201e;" u2="&#x152;" k="102" />
+<hkern u1="&#x201e;" u2="&#xdd;" k="123" />
+<hkern u1="&#x201e;" u2="&#xdc;" k="41" />
+<hkern u1="&#x201e;" u2="&#xdb;" k="41" />
+<hkern u1="&#x201e;" u2="&#xda;" k="41" />
+<hkern u1="&#x201e;" u2="&#xd9;" k="41" />
+<hkern u1="&#x201e;" u2="&#xd8;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd6;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd5;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd4;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd3;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd2;" k="102" />
+<hkern u1="&#x201e;" u2="&#xc7;" k="102" />
+<hkern u1="&#x201e;" u2="Y" k="123" />
+<hkern u1="&#x201e;" u2="W" k="123" />
+<hkern u1="&#x201e;" u2="V" k="123" />
+<hkern u1="&#x201e;" u2="U" k="41" />
+<hkern u1="&#x201e;" u2="T" k="143" />
+<hkern u1="&#x201e;" u2="Q" k="102" />
+<hkern u1="&#x201e;" u2="O" k="102" />
+<hkern u1="&#x201e;" u2="G" k="102" />
+<hkern u1="&#x201e;" u2="C" k="102" />
+</font>
+</defs></svg> 
\ No newline at end of file
diff --git a/html/simple-shape/docs/fonts/OpenSans-BoldItalic-webfont.woff b/html/simple-shape/docs/fonts/OpenSans-BoldItalic-webfont.woff
new file mode 100644
index 0000000..ed760c0
--- /dev/null
+++ b/html/simple-shape/docs/fonts/OpenSans-BoldItalic-webfont.woff
Binary files differdiff --git a/html/simple-shape/docs/fonts/OpenSans-Italic-webfont.eot b/html/simple-shape/docs/fonts/OpenSans-Italic-webfont.eot
new file mode 100644
index 0000000..0c8a0ae
--- /dev/null
+++ b/html/simple-shape/docs/fonts/OpenSans-Italic-webfont.eot
Binary files differdiff --git a/html/simple-shape/docs/fonts/OpenSans-Italic-webfont.svg b/html/simple-shape/docs/fonts/OpenSans-Italic-webfont.svg
new file mode 100644
index 0000000..e1075dc
--- /dev/null
+++ b/html/simple-shape/docs/fonts/OpenSans-Italic-webfont.svg
@@ -0,0 +1,1830 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata></metadata>
+<defs>
+<font id="open_sansitalic" horiz-adv-x="1128" >
+<font-face units-per-em="2048" ascent="1638" descent="-410" />
+<missing-glyph horiz-adv-x="532" />
+<glyph unicode="&#xfb01;" horiz-adv-x="1165" d="M0 0zM-104 -492q-69 0 -125 21v141q64 -22 112 -22q76 0 117 62t66 177l227 1082h-193l13 67l206 66l23 100q46 200 127.5 282.5t241.5 82.5q40 0 98 -11.5t90 -25.5l-43 -129q-76 29 -137 29q-87 0 -133.5 -48.5t-75.5 -177.5l-25 -108h238l-25 -127h-237l-232 -1098 q-39 -189 -120 -276t-213 -87zM870 0h-168l234 1096h168zM983 1376q0 56 32 91.5t83 35.5q88 0 88 -90q0 -55 -33.5 -93t-77.5 -38q-40 0 -66 24.5t-26 69.5z" />
+<glyph unicode="&#xfb02;" horiz-adv-x="1165" d="M0 0zM-104 -492q-69 0 -125 21v141q64 -22 112 -22q76 0 117 62t66 177l227 1082h-193l13 67l206 66l23 100q46 200 127.5 282.5t241.5 82.5q40 0 98 -11.5t90 -25.5l-43 -129q-76 29 -137 29q-87 0 -133.5 -48.5t-75.5 -177.5l-25 -108h238l-25 -127h-237l-232 -1098 q-39 -189 -120 -276t-213 -87zM868 0h-168l332 1556h168z" />
+<glyph unicode="&#xfb03;" horiz-adv-x="1815" d="M545 -492q-71 0 -125 21v141q61 -22 115 -22q68 0 111 57.5t69 181.5l227 1082h-481l-232 -1098q-39 -189 -120 -276t-213 -87q-69 0 -125 21v141q64 -22 112 -22q70 0 114 58t69 181l227 1082h-193l13 67l206 66l23 100q46 200 127.5 282.5t241.5 82.5q40 0 98 -11.5 t90 -25.5l-43 -129q-76 29 -137 29q-87 0 -133.5 -48.5t-75.5 -177.5l-25 -108h482l24 108q45 197 126 280t243 83q41 0 97.5 -11t92.5 -26l-45 -129q-76 29 -137 29q-89 0 -135 -51t-74 -175l-24 -108h239l-26 -127h-238l-231 -1098q-43 -195 -123.5 -279t-210.5 -84z M1522 0h-168l233 1096h168zM1634 1376q0 54 32 90.5t83 36.5q88 0 88 -90q0 -55 -33.5 -93t-77.5 -38q-38 0 -65 24.5t-27 69.5z" />
+<glyph unicode="&#xfb04;" horiz-adv-x="1815" d="M1520 0h-168l331 1556h168zM545 -492q-71 0 -125 21v141q61 -22 115 -22q68 0 111 57.5t69 181.5l227 1082h-481l-232 -1098q-39 -189 -120 -276t-213 -87q-69 0 -125 21v141q64 -22 112 -22q70 0 114 58t69 181l227 1082h-193l13 67l206 66l23 100q46 200 127.5 282.5 t241.5 82.5q40 0 98 -11.5t90 -25.5l-43 -129q-76 29 -137 29q-87 0 -133.5 -48.5t-75.5 -177.5l-25 -108h482l24 108q45 197 126 280t243 83q41 0 97.5 -11t92.5 -26l-45 -129q-76 29 -137 29q-89 0 -135 -51t-74 -175l-24 -108h239l-26 -127h-238l-231 -1098 q-43 -195 -123.5 -279t-210.5 -84z" />
+<glyph horiz-adv-x="2048" />
+<glyph horiz-adv-x="2048" />
+<glyph unicode="&#xd;" horiz-adv-x="1044" />
+<glyph unicode=" "  horiz-adv-x="532" />
+<glyph unicode="&#x09;" horiz-adv-x="532" />
+<glyph unicode="&#xa0;" horiz-adv-x="532" />
+<glyph unicode="!" horiz-adv-x="530" d="M555 1462l-274 -1059h-109q49 307 176 1059h207zM43 78q0 76 39.5 120t107.5 44q45 0 73 -27.5t28 -81.5q0 -68 -39 -115t-105 -47q-49 0 -76.5 28t-27.5 79z" />
+<glyph unicode="&#x22;" horiz-adv-x="791" d="M485 1462l-153 -528h-107l72 528h188zM834 1462l-154 -528h-107l72 528h189z" />
+<glyph unicode="#" horiz-adv-x="1323" d="M1036 899l-98 -340h285l-13 -129h-309l-125 -430h-139l129 430h-303l-127 -430h-133l121 430h-261l13 129h284l101 340h-277l13 127h301l123 436h139l-125 -436h305l127 436h133l-125 -436h264l-12 -127h-291zM500 559h303l96 340h-303z" />
+<glyph unicode="$" d="M942 492q0 -162 -112.5 -263t-309.5 -123l-49 -225h-133l49 223q-195 14 -315 72v154q82 -41 175.5 -63.5t166.5 -22.5l98 452q-139 49 -201.5 123.5t-62.5 188.5q0 159 108 255t299 113l39 176h133l-39 -178q159 -12 283 -76l-63 -135q-121 63 -248 72l-94 -440 q149 -55 212.5 -125t63.5 -178zM549 250q107 13 170 75t63 154q0 54 -33 96t-114 74zM627 1235q-108 -11 -167 -69t-59 -156q0 -53 34.5 -97.5t107.5 -70.5z" />
+<glyph unicode="%" horiz-adv-x="1624" d="M1468 1462l-1085 -1462h-152l1086 1462h151zM1284 772q-67 0 -119.5 -64.5t-84 -188.5t-31.5 -240q0 -173 106 -173q65 0 117 65t86.5 198.5t34.5 236.5q0 166 -109 166zM1532 621q0 -107 -31.5 -236t-82 -217.5t-121 -138t-156.5 -49.5q-110 0 -171 74.5t-61 219.5 q0 166 50.5 318.5t136.5 228.5t200 76q116 0 176 -71.5t60 -204.5zM543 1358q-66 0 -119 -63t-85 -187.5t-32 -243.5q0 -172 107 -172q52 0 94 39.5t73.5 114t50.5 175t19 171.5q0 166 -108 166zM791 1206q0 -108 -32 -237.5t-82.5 -217.5t-120.5 -137t-157 -49 q-109 0 -170 75t-61 220q0 166 50.5 318.5t136.5 228.5t200 76q116 0 176 -72t60 -205z" />
+<glyph unicode="&#x26;" horiz-adv-x="1372" d="M737 1348q-105 0 -163 -60t-58 -170q0 -120 82 -235q139 71 191 110t83 85t31 104q0 77 -42.5 121.5t-123.5 44.5zM471 119q87 0 168 33t195 124l-306 433q-128 -67 -184 -116t-85.5 -107.5t-29.5 -131.5q0 -106 66.5 -170.5t175.5 -64.5zM66 342q0 148 90 257.5 t303 211.5q-103 165 -103 309q0 164 106 264.5t281 100.5q149 0 236.5 -79t87.5 -212q0 -78 -32.5 -137t-87.5 -108t-127.5 -90t-153.5 -83l278 -389q127 110 199 295h168q-101 -236 -283 -412l203 -270h-201l-117 166q-120 -100 -230 -143t-247 -43q-168 0 -269 96 t-101 266z" />
+<glyph unicode="'" horiz-adv-x="444" d="M485 1462l-153 -528h-107l72 528h188z" />
+<glyph unicode="(" horiz-adv-x="584" d="M82 272q0 339 120 627t384 563h157q-246 -270 -371.5 -570t-125.5 -618q0 -339 114 -598h-131q-147 266 -147 596z" />
+<glyph unicode=")" horiz-adv-x="584" d="M500 864q0 -341 -121.5 -629.5t-382.5 -558.5h-156q496 551 496 1188q0 341 -113 598h131q146 -269 146 -598z" />
+<glyph unicode="*" horiz-adv-x="1130" d="M854 1528l-123 -383l422 18l-8 -157l-393 47l180 -383l-166 -52l-113 406l-258 -344l-116 121l309 284l-373 109l55 154l371 -185l41 400z" />
+<glyph unicode="+" d="M516 651h-389v142h389v391h141v-391h390v-142h-390v-387h-141v387z" />
+<glyph unicode="," horiz-adv-x="492" d="M291 238l8 -23q-113 -235 -270 -479h-129q126 286 204 502h187z" />
+<glyph unicode="-" horiz-adv-x="639" d="M55 469l35 158h479l-34 -158h-480z" />
+<glyph unicode="." horiz-adv-x="518" d="M43 74q0 77 40.5 122.5t111.5 45.5q43 0 69.5 -26t26.5 -79q0 -71 -40 -118.5t-108 -47.5q-46 0 -73 26t-27 77z" />
+<glyph unicode="/" horiz-adv-x="717" d="M893 1462l-813 -1462h-174l813 1462h174z" />
+<glyph unicode="0" d="M1092 1014q0 -295 -78.5 -539t-214 -369.5t-314.5 -125.5q-176 0 -270 127.5t-94 369.5q0 270 82 514.5t216.5 369t307.5 124.5q365 0 365 -471zM717 1341q-113 0 -209 -115.5t-155.5 -323t-59.5 -423.5q0 -172 50 -264t161 -92q115 0 209 114t150.5 328t56.5 453 q0 323 -203 323z" />
+<glyph unicode="1" d="M588 0h-172l196 913q59 261 88 359q-50 -53 -139 -111l-178 -110l-80 127l449 284h149z" />
+<glyph unicode="2" d="M911 0h-899l31 147l465 420q102 93 176.5 163.5t123 133t72 124t23.5 136.5q0 99 -60 157t-163 58q-77 0 -150.5 -28.5t-162.5 -96.5l-82 115q191 154 413 154q176 0 278.5 -88.5t102.5 -243.5q0 -111 -39.5 -204t-131 -197t-294.5 -281l-352 -307v-8h678z" />
+<glyph unicode="3" d="M1073 1159q0 -156 -101 -264.5t-280 -140.5v-9q124 -23 195 -106.5t71 -208.5q0 -133 -62 -234.5t-181 -158.5t-283 -57q-210 0 -385 79v164q94 -49 199 -75.5t190 -26.5q162 0 252 79.5t90 217.5q0 131 -79 198.5t-220 67.5h-131l31 143h139q165 0 274 87t109 227 q0 92 -58 146t-157 54q-80 0 -157 -27t-175 -93l-80 118q195 144 424 144q179 0 277 -87t98 -237z" />
+<glyph unicode="4" d="M1067 334h-233l-72 -334h-164l74 334h-656l29 158l834 978h196l-207 -983h232zM705 487q46 220 78 373t116 445h-8q-17 -29 -66.5 -96.5t-72.5 -96.5l-533 -625h486z" />
+<glyph unicode="5" d="M598 893q182 0 289.5 -104.5t107.5 -282.5q0 -161 -73 -283t-204 -182.5t-308 -60.5q-193 0 -330 79v164q164 -102 334 -102q191 0 298 96t107 268q0 126 -73.5 199.5t-204.5 73.5q-48 0 -97 -6.5t-139 -30.5l-74 57l197 684h668l-33 -153h-522l-127 -439q87 23 184 23z " />
+<glyph unicode="6" d="M133 424q0 209 60.5 415t163.5 351.5t246 219t327 73.5q111 0 184 -23l-35 -145q-68 22 -170 22q-212 0 -356.5 -149t-212.5 -443h8q59 79 146.5 126t193.5 47q154 0 244 -98.5t90 -270.5q0 -161 -66.5 -294.5t-180.5 -204t-261 -70.5q-182 0 -281.5 115t-99.5 329z M532 121q94 0 167.5 54t114 149t40.5 208q0 248 -221 248q-66 0 -128 -28.5t-110 -76t-72 -104.5t-24 -155q0 -137 60.5 -216t172.5 -79z" />
+<glyph unicode="7" d="M174 0l768 1313h-719l31 149h891l-27 -139l-764 -1323h-180z" />
+<glyph unicode="8" d="M741 1485q174 0 271.5 -86.5t97.5 -235.5q0 -129 -78 -225t-266 -176q127 -78 180 -165t53 -202q0 -122 -60 -217.5t-172.5 -146.5t-264.5 -51q-190 0 -298 98.5t-108 267.5q0 148 95 256t296 184q-95 69 -135.5 144.5t-40.5 171.5q0 111 54.5 198.5t153.5 136t222 48.5z M608 700q-185 -60 -261.5 -143.5t-76.5 -202.5q0 -107 69 -170t181 -63q139 0 222 74t83 196q0 99 -52 174t-165 135zM729 1341q-114 0 -182 -65.5t-68 -175.5q0 -82 39 -144t127 -116q161 60 228 131.5t67 173.5q0 90 -57.5 143t-153.5 53z" />
+<glyph unicode="9" d="M1067 1034q0 -194 -56 -406.5t-147.5 -360t-221.5 -217.5t-302 -70q-136 0 -242 34v158q134 -47 246 -47q202 0 327 141t189 441h-10q-51 -75 -132.5 -118.5t-180.5 -43.5q-169 0 -261 98.5t-92 288.5q0 153 64.5 280.5t180 199t259.5 71.5q180 0 279.5 -114.5 t99.5 -334.5zM682 1341q-150 0 -241 -113t-91 -290q0 -124 54.5 -190t162.5 -66q76 0 140 28.5t108.5 81.5t65 114t20.5 151q0 131 -59 207.5t-160 76.5z" />
+<glyph unicode=":" horiz-adv-x="518" d="M43 74q0 77 40.5 122.5t111.5 45.5q43 0 69.5 -26t26.5 -79q0 -71 -40 -118.5t-108 -47.5q-46 0 -73 26t-27 77zM203 956q0 77 40 122.5t111 45.5q97 0 97 -104q0 -73 -41.5 -119.5t-106.5 -46.5q-46 0 -73 26.5t-27 75.5z" />
+<glyph unicode=";" horiz-adv-x="518" d="M291 238l8 -23q-113 -235 -270 -479h-129q126 286 204 502h187zM203 956q0 77 40 122.5t111 45.5q97 0 97 -104q0 -73 -41.5 -119.5t-106.5 -46.5q-46 0 -73 26.5t-27 75.5z" />
+<glyph unicode="&#x3c;" d="M1040 242l-919 422v98l919 479v-149l-747 -371l747 -328v-151z" />
+<glyph unicode="=" d="M127 858v139h920v-139h-920zM127 444v142h920v-142h-920z" />
+<glyph unicode="&#x3e;" d="M121 393l745 328l-745 371v149l919 -479v-98l-919 -422v151z" />
+<glyph unicode="?" horiz-adv-x="874" d="M260 403q22 130 72.5 213.5t165.5 174.5q128 100 168 144t63 94t23 112q0 93 -51.5 143.5t-147.5 50.5q-81 0 -155 -25.5t-140 -56.5l-61 129q92 51 192 76t182 25q167 0 259 -84t92 -238q0 -123 -65.5 -226.5t-225.5 -223.5q-125 -91 -169 -147.5t-67 -160.5h-135z M158 74q0 77 40 122.5t111 45.5q44 0 70.5 -26t26.5 -79q0 -73 -41.5 -119.5t-106.5 -46.5q-46 0 -73 26t-27 77z" />
+<glyph unicode="@" horiz-adv-x="1735" d="M1679 852q0 -179 -55 -324t-155 -227t-222 -82q-197 0 -213 184h-8q-111 -184 -291 -184q-115 0 -180.5 75.5t-65.5 209.5q0 157 68 284t188.5 199t260.5 72q65 0 127.5 -12t150.5 -48q-64 -242 -98 -368t-31 -172q0 -117 102 -117q78 0 141.5 67t100.5 183.5t37 243.5 q0 239 -128 367t-370 128q-228 0 -406.5 -107t-277 -295.5t-98.5 -416.5q0 -270 143.5 -418.5t409.5 -148.5q197 0 420 86v-127q-219 -90 -443 -90q-314 0 -494.5 184.5t-180.5 505.5q0 261 126.5 485.5t343.5 347.5t486 123q191 0 329 -75.5t210.5 -213.5t72.5 -319z M985 938q-94 0 -174 -55t-126 -153t-46 -212q0 -93 33 -134.5t98 -41.5q187 0 272 315l70 258q-63 23 -127 23z" />
+<glyph unicode="A" horiz-adv-x="1137" d="M813 465h-496l-245 -465h-189l799 1462h174l184 -1462h-170zM795 621l-35 299q-24 179 -29 350q-37 -88 -80.5 -175t-249.5 -474h394z" />
+<glyph unicode="B" horiz-adv-x="1225" d="M770 1462q432 0 432 -336q0 -141 -87 -238t-245 -126v-10q115 -32 176.5 -110.5t61.5 -188.5q0 -212 -152 -332.5t-407 -120.5h-463l309 1462h375zM434 836h248q156 0 249 73t93 199q0 104 -66.5 155.5t-209.5 51.5h-211zM287 145h266q181 0 278 80.5t97 227.5 q0 116 -74.5 177.5t-214.5 61.5h-236z" />
+<glyph unicode="C" horiz-adv-x="1198" d="M942 1331q-174 0 -311.5 -97t-218 -284.5t-80.5 -408.5q0 -187 97.5 -298.5t268.5 -111.5q139 0 322 57v-149q-86 -31 -164 -45t-188 -14q-242 0 -380 149.5t-138 407.5q0 261 105.5 485.5t283.5 342.5t403 118q197 0 348 -80l-69 -141q-138 69 -279 69z" />
+<glyph unicode="D" horiz-adv-x="1364" d="M1300 877q0 -261 -105 -461t-300 -308t-457 -108h-352l309 1462h342q276 0 419.5 -149.5t143.5 -435.5zM449 147q202 0 355 91.5t234.5 258.5t81.5 382t-103 325.5t-302 110.5h-178l-250 -1168h162z" />
+<glyph unicode="E" horiz-adv-x="1047" d="M821 0h-735l309 1462h735l-32 -153h-566l-98 -469h527l-29 -152h-529l-114 -536h565z" />
+<glyph unicode="F" horiz-adv-x="967" d="M258 0h-172l309 1462h735l-30 -153h-568l-110 -533h528l-32 -153h-529z" />
+<glyph unicode="G" horiz-adv-x="1386" d="M821 766h459l-154 -711q-216 -75 -419 -75q-264 0 -410.5 144.5t-146.5 403.5q0 269 101.5 489.5t281.5 343t399 122.5q117 0 219.5 -20t206.5 -64l-66 -152q-77 34 -165.5 59t-194.5 25q-169 0 -307.5 -101.5t-215.5 -283.5t-77 -407q0 -190 102.5 -299t286.5 -109 q154 0 260 39l96 444h-289z" />
+<glyph unicode="H" horiz-adv-x="1389" d="M1085 0h-167l143 688h-660l-145 -688h-170l309 1462h170l-131 -622h660l133 622h168z" />
+<glyph unicode="I" horiz-adv-x="559" d="M86 0l311 1462h168l-311 -1462h-168z" />
+<glyph unicode="J" horiz-adv-x="547" d="M-166 -385q-105 0 -153 25l6 147q69 -20 145 -20q100 0 165.5 62.5t90.5 182.5l307 1450h170l-309 -1468q-79 -379 -422 -379z" />
+<glyph unicode="K" horiz-adv-x="1141" d="M1034 0h-186q-72 181 -146.5 359.5t-146.5 361.5l-174 -131l-125 -590h-170l309 1462h170l-151 -710l700 710h209l-639 -637z" />
+<glyph unicode="L" horiz-adv-x="971" d="M86 0l309 1462h170l-276 -1308h565l-33 -154h-735z" />
+<glyph unicode="M" horiz-adv-x="1714" d="M676 0l-166 1296h-8q-7 -72 -28.5 -197.5t-37.5 -199.5l-190 -899h-162l309 1462h244l149 -1204h9l659 1204h266l-303 -1462h-174q126 590 193 905.5t94 392.5h-6l-717 -1298h-131z" />
+<glyph unicode="N" horiz-adv-x="1438" d="M1139 0h-181l-460 1223h-6q-32 -221 -74 -418l-172 -805h-162l309 1462h180l459 -1220h6q30 224 72 405l174 815h164z" />
+<glyph unicode="O" horiz-adv-x="1475" d="M1411 907q0 -269 -88 -481.5t-252 -329t-379 -116.5q-256 0 -399 149.5t-143 419.5q0 264 96 482t263.5 336t377.5 118q244 0 384 -154t140 -424zM874 1333q-157 0 -281 -101t-192.5 -281t-68.5 -398q0 -199 98 -310.5t266 -111.5q152 0 272.5 97.5t190.5 279.5t70 403 q0 199 -94 310.5t-261 111.5z" />
+<glyph unicode="P" horiz-adv-x="1159" d="M1159 1085q0 -248 -164 -379t-481 -131h-135l-123 -575h-170l309 1462h330q214 0 324 -94.5t110 -282.5zM410 721h133q216 0 328 91t112 267q0 125 -69.5 180.5t-213.5 55.5h-163z" />
+<glyph unicode="Q" horiz-adv-x="1475" d="M874 1333q-157 0 -281 -101t-192.5 -281t-68.5 -398q0 -199 98 -310.5t266 -111.5q158 0 279 100t187.5 280.5t66.5 399.5q0 199 -94 310.5t-261 111.5zM725 -18l-17 -2h-16q-256 0 -399 149.5t-143 419.5q0 264 96 482t263.5 336t377.5 118q244 0 384 -154t140 -424 q0 -333 -139 -576t-375 -321l274 -358h-219z" />
+<glyph unicode="R" horiz-adv-x="1165" d="M385 608l-129 -608h-170l309 1462h320q446 0 446 -366q0 -348 -368 -449l239 -647h-186l-209 608h-252zM532 1313q-102 -494 -116 -559h168q193 0 297 85t104 244q0 121 -67.5 175.5t-219.5 54.5h-166z" />
+<glyph unicode="S" horiz-adv-x="1028" d="M913 424q0 -211 -140.5 -327.5t-395.5 -116.5q-106 0 -186.5 14.5t-151.5 48.5v170q162 -84 340 -84q162 0 257 75.5t95 207.5q0 78 -52.5 137.5t-195.5 140.5q-151 85 -209.5 170t-58.5 201q0 187 132 304.5t347 117.5q99 0 184.5 -19t180.5 -65l-66 -150 q-66 38 -148 60t-151 22q-134 0 -215.5 -69.5t-81.5 -188.5q0 -54 17 -92.5t54 -72.5t142 -95q147 -88 198.5 -138t78 -110.5t26.5 -140.5z" />
+<glyph unicode="T" horiz-adv-x="1020" d="M487 0h-172l277 1311h-406l33 151h985l-30 -151h-408z" />
+<glyph unicode="U" horiz-adv-x="1384" d="M1407 1462l-205 -966q-55 -263 -197.5 -389.5t-388.5 -126.5q-230 0 -341 104t-111 299q0 81 24 201l189 878h170l-191 -891q-22 -106 -22 -188q0 -117 73 -184.5t218 -67.5q172 0 267.5 87.5t139.5 289.5l205 954h170z" />
+<glyph unicode="V" horiz-adv-x="1122" d="M479 197q61 144 162 338l479 927h191l-781 -1462h-180l-162 1462h170l97 -930q20 -196 20 -335h4z" />
+<glyph unicode="W" horiz-adv-x="1745" d="M1257 0h-170l-49 965q-8 136 -8 282h-6q-25 -72 -61 -154.5t-504 -1092.5h-174l-62 1462h170l31 -901l2 -88q0 -98 -10 -258h6q89 243 156 383l405 864h178l43 -860q9 -153 9 -304l-1 -83h9q75 224 131 354l387 893h182z" />
+<glyph unicode="X" horiz-adv-x="1063" d="M956 0h-180l-213 641l-481 -641h-186l596 776l-263 686h172l203 -563l443 563h186l-555 -694z" />
+<glyph unicode="Y" horiz-adv-x="1030" d="M537 715l489 747h193l-627 -921l-113 -541h-172l119 549l-238 913h170z" />
+<glyph unicode="Z" horiz-adv-x="1087" d="M885 0h-901l28 137l924 1170h-655l32 155h858l-26 -139l-924 -1169h697z" />
+<glyph unicode="[" horiz-adv-x="586" d="M371 -324h-387l381 1786h387l-31 -141h-227l-318 -1503h227z" />
+<glyph unicode="\" horiz-adv-x="717" d="M375 1462l217 -1462h-154l-217 1462h154z" />
+<glyph unicode="]" horiz-adv-x="586" d="M-119 -182h225l320 1503h-227l30 141h389l-380 -1786h-388z" />
+<glyph unicode="^" horiz-adv-x="1059" d="M53 553l598 920h109l266 -920h-145l-201 747l-467 -747h-160z" />
+<glyph unicode="_" horiz-adv-x="807" d="M623 -324h-811l30 140h811z" />
+<glyph unicode="`" horiz-adv-x="1135" d="M903 1241h-104q-61 61 -128.5 154t-95.5 153v21h181q43 -136 147 -303v-25z" />
+<glyph unicode="a" horiz-adv-x="1157" d="M639 1116q92 0 164 -49.5t112 -142.5h11l67 172h127l-233 -1096h-133l26 209h-8q-179 -229 -377 -229q-139 0 -218 99t-79 271q0 208 71 386t196 279t274 101zM449 119q97 0 193 92.5t156 241t60 297.5q0 103 -56 164t-147 61q-104 0 -193.5 -86t-140.5 -233t-51 -310 q0 -114 47 -170.5t132 -56.5z" />
+<glyph unicode="b" horiz-adv-x="1182" d="M545 -20q-97 0 -170.5 51t-110.5 139h-10l-70 -170h-125l330 1556h168q-51 -242 -78.5 -370.5t-75.5 -300.5h9q93 118 183.5 173.5t186.5 55.5q141 0 220 -99t79 -272q0 -209 -68.5 -386.5t-191 -277t-276.5 -99.5zM731 975q-96 0 -195.5 -95t-158 -239t-58.5 -295 q0 -110 55.5 -168.5t160.5 -58.5q99 0 184.5 81t137.5 230.5t52 317.5q0 227 -178 227z" />
+<glyph unicode="c" horiz-adv-x="922" d="M506 -20q-194 0 -301 107t-107 302q0 200 74 369t204.5 263.5t293.5 94.5q137 0 268 -51l-47 -141q-120 51 -219 51q-112 0 -204.5 -76.5t-145 -213t-52.5 -296.5q0 -128 66.5 -199t183.5 -71q72 0 136 20t126 47v-143q-124 -63 -276 -63z" />
+<glyph unicode="d" horiz-adv-x="1182" d="M639 1114q194 0 281 -190h10q17 155 45 274l78 358h166l-330 -1556h-139l22 209h-8q-101 -125 -189 -177t-182 -52q-139 0 -217 98t-78 272q0 214 72 392t194.5 275t274.5 97zM449 119q94 0 194 93.5t158.5 239t58.5 296.5q0 111 -54 169t-157 58q-101 0 -187.5 -82.5 t-139 -232t-52.5 -314.5q0 -227 179 -227z" />
+<glyph unicode="e" horiz-adv-x="1010" d="M492 -20q-184 0 -289 109t-105 302q0 188 74.5 360.5t197.5 268.5t271 96q153 0 230 -66.5t77 -185.5q0 -180 -166 -282.5t-475 -102.5h-33l-4 -80q0 -131 61.5 -204.5t190.5 -73.5q63 0 129.5 18t165.5 66v-146q-94 -44 -166 -61.5t-159 -17.5zM631 973 q-103 0 -193.5 -94t-138.5 -261h12q228 0 349.5 59.5t121.5 172.5q0 53 -36.5 88t-114.5 35z" />
+<glyph unicode="f" horiz-adv-x="641" d="M-104 -492q-69 0 -125 21v141q64 -22 112 -22q76 0 117 62t66 177l227 1082h-193l13 67l206 66l23 100q46 200 127.5 282.5t241.5 82.5q40 0 98 -11.5t90 -25.5l-43 -129q-76 29 -137 29q-87 0 -133.5 -48.5t-75.5 -177.5l-25 -108h238l-25 -127h-237l-232 -1098 q-39 -189 -120 -276t-213 -87z" />
+<glyph unicode="g" horiz-adv-x="1026" d="M1100 1096l-25 -107l-211 -24q41 -62 41 -158q0 -191 -116.5 -304.5t-311.5 -113.5q-55 0 -84 8q-139 -53 -139 -131q0 -41 33 -54.5t96 -21.5l117 -14q181 -22 262.5 -88t81.5 -194q0 -184 -146 -285t-411 -101q-194 0 -304 73.5t-110 207.5q0 105 72 182t233 131 q-78 41 -78 121q0 69 51 118.5t142 92.5q-63 32 -103 94.5t-40 145.5q0 194 119.5 318t305.5 124q78 0 154 -20h371zM35 -195q0 -77 65 -122t193 -45q182 0 284.5 63.5t102.5 179.5q0 62 -54 98t-184 50l-159 16q-120 -25 -184 -88t-64 -152zM313 680q0 -85 45 -129.5 t125 -44.5q79 0 138 42t90.5 115.5t31.5 159.5q0 82 -44 125t-126 43q-78 0 -136.5 -40.5t-91 -113t-32.5 -157.5z" />
+<glyph unicode="h" horiz-adv-x="1182" d="M729 0l148 692q18 94 18 135q0 148 -147 148q-89 0 -173.5 -59t-149 -171.5t-97.5 -271.5l-101 -473h-168l330 1556h168q-18 -82 -34.5 -159t-34 -156.5t-38 -166.5t-47.5 -189h11q94 123 185.5 176t191.5 53q131 0 202.5 -72t71.5 -204q0 -62 -23 -166 q-39 -193 -145 -672h-168z" />
+<glyph unicode="i" horiz-adv-x="520" d="M227 0h-168l234 1096h168zM340 1376q0 56 32 91.5t83 35.5q88 0 88 -90q0 -55 -33.5 -93t-77.5 -38q-40 0 -66 24.5t-26 69.5z" />
+<glyph unicode="j" horiz-adv-x="520" d="M-135 -492q-69 0 -123 21v141q61 -22 119 -22q125 0 168 205l264 1243h166l-266 -1258q-36 -171 -114.5 -250.5t-213.5 -79.5zM340 1376q0 56 32 91.5t83 35.5q86 0 86 -90q0 -55 -33.5 -93t-77.5 -38q-38 0 -64 24.5t-26 69.5z" />
+<glyph unicode="k" horiz-adv-x="999" d="M330 559l526 537h201l-469 -467l295 -629h-187l-235 524l-152 -123l-82 -401h-170l330 1556h170l-129 -602t-102 -395h4z" />
+<glyph unicode="l" horiz-adv-x="520" d="M225 0h-168l332 1556h168z" />
+<glyph unicode="m" horiz-adv-x="1786" d="M696 0l148 692q18 94 18 135q0 70 -31 109t-106 39q-84 0 -163.5 -60t-140 -171.5t-93.5 -268.5l-101 -475h-168l234 1096h139l-22 -203h10q87 119 173.5 171t178.5 52q113 0 174 -65t72 -181h8q86 125 183 185.5t196 60.5q127 0 196.5 -68t69.5 -198q0 -68 -22 -178 l-144 -672h-170l148 692q20 104 20 146q0 62 -34.5 99.5t-108.5 37.5q-81 0 -160 -58t-138.5 -164.5t-90.5 -252.5l-107 -500h-168z" />
+<glyph unicode="n" horiz-adv-x="1182" d="M729 0l148 692q20 104 20 144q0 63 -35.5 101t-113.5 38q-89 0 -173.5 -60t-149 -171t-97.5 -269l-101 -475h-168l234 1096h139l-22 -203h10q96 122 185.5 172.5t185.5 50.5q127 0 200.5 -69.5t73.5 -194.5q0 -79 -23 -180l-143 -672h-170z" />
+<glyph unicode="o" horiz-adv-x="1149" d="M643 1110q190 0 300 -112.5t110 -309.5q0 -188 -72 -355t-195 -258t-278 -91q-192 0 -301 113t-109 309q0 190 73 357.5t197 257t275 89.5zM879 711q0 115 -62.5 186.5t-169.5 71.5q-109 0 -195.5 -74t-134 -205.5t-47.5 -292.5q0 -131 63.5 -202.5t182.5 -71.5 q104 0 187 73t129.5 207.5t46.5 307.5z" />
+<glyph unicode="p" horiz-adv-x="1182" d="M545 -20q-97 0 -170 50t-113 140h-10l-4 -38q-3 -25 -10.5 -70t-114.5 -554h-166l336 1588h139l-26 -209h8q179 227 372 227q137 0 216 -97.5t79 -273.5q0 -212 -69 -389t-191 -275.5t-276 -98.5zM731 975q-96 0 -195.5 -95t-158 -239t-58.5 -295q0 -110 55.5 -168.5 t160.5 -58.5q99 0 184.5 81t137.5 230.5t52 317.5q0 227 -178 227z" />
+<glyph unicode="q" horiz-adv-x="1182" d="M641 1116q94 0 165.5 -50.5t108.5 -141.5h13l67 172h125l-336 -1588h-166l101 480q9 45 57 221h-8q-95 -121 -185 -175t-186 -54q-140 0 -219.5 97.5t-79.5 272.5q0 212 72.5 392t196 277t274.5 97zM449 119q92 0 190 92t158.5 237t60.5 300q0 105 -54.5 166t-152.5 61 q-101 0 -189 -84.5t-140 -233t-52 -311.5q0 -227 179 -227z" />
+<glyph unicode="r" horiz-adv-x="811" d="M752 1116q69 0 120 -14l-36 -150q-53 13 -105 13q-91 0 -170.5 -60t-139 -166.5t-87.5 -236.5l-107 -502h-168l234 1096h139l-22 -203h10q72 95 119 136.5t98.5 64t114.5 22.5z" />
+<glyph unicode="s" horiz-adv-x="877" d="M735 311q0 -156 -110.5 -243.5t-311.5 -87.5q-169 0 -305 69v158q70 -42 151 -65t150 -23q126 0 190 50t64 128q0 57 -35 96t-151 107q-130 73 -184 143t-54 166q0 138 101 222.5t266 84.5q171 0 330 -74l-54 -137l-56 25q-101 43 -220 43q-93 0 -146 -43.5t-53 -112.5 q0 -56 35.5 -96t146.5 -103q107 -60 153.5 -103t69.5 -92.5t23 -111.5z" />
+<glyph unicode="t" horiz-adv-x="664" d="M395 117q55 0 144 26v-129q-34 -14 -84 -24t-80 -10q-125 0 -191.5 59.5t-66.5 177.5q0 66 18 150l127 602h-172l14 73l185 78l125 228h98l-55 -252h274l-26 -127h-273l-129 -604q-18 -87 -18 -132q0 -56 29 -86t81 -30z" />
+<glyph unicode="u" horiz-adv-x="1182" d="M451 1096l-150 -695q-18 -89 -18 -139q0 -143 147 -143q88 0 173 60t150 172t99 270l100 475h166l-231 -1096h-139l22 203h-12q-98 -125 -187 -174t-184 -49q-128 0 -201 69.5t-73 198.5q0 62 22 172l146 676h170z" />
+<glyph unicode="v" horiz-adv-x="946" d="M223 0l-125 1096h168l64 -613q24 -258 24 -362h6q127 275 179 371l325 604h178l-591 -1096h-228z" />
+<glyph unicode="w" horiz-adv-x="1468" d="M831 0l-32 602q-4 94 -4 172v156h-9l-50 -118l-83 -189l-291 -623h-202l-43 1096h164l18 -594v-88q0 -147 -8 -269h6q47 124 137 322l295 629h182l37 -594q6 -168 6 -262v-53l-2 -42h6q28 86 83 218.5t323 732.5h178l-506 -1096h-205z" />
+<glyph unicode="x" horiz-adv-x="979" d="M467 434l-346 -434h-195l475 565l-239 531h170l174 -412l330 412h194l-455 -539l252 -557h-168z" />
+<glyph unicode="y" horiz-adv-x="946" d="M98 1096h168l74 -545q10 -69 19.5 -203.5t9.5 -216.5h6q35 87 87 200t77 156l325 609h178l-696 -1282q-93 -172 -184 -239t-219 -67q-72 0 -140 21v135q63 -18 131 -18q82 0 140.5 50.5t113.5 149.5l76 136z" />
+<glyph unicode="z" horiz-adv-x="909" d="M690 0h-719l23 117l694 854h-479l27 125h657l-29 -140l-680 -831h531z" />
+<glyph unicode="{" horiz-adv-x="715" d="M442 -324q-141 0 -216.5 52.5t-75.5 171.5q0 52 20 141q33 146 51.5 227.5t14.5 102.5q0 143 -209 143l32 143q118 0 189.5 43.5t93.5 147.5l68 326q34 160 117.5 224t254.5 64h33l-31 -141q-105 0 -151 -36.5t-66 -123.5l-71 -321q-28 -123 -91 -184t-167 -78v-5 q151 -41 151 -213q0 -59 -18 -131l-47 -211q-15 -58 -15 -98q0 -53 36.5 -77.5t119.5 -24.5v-142h-23z" />
+<glyph unicode="|" d="M541 1556h139v-2052h-139v2052z" />
+<glyph unicode="}" horiz-adv-x="715" d="M285 1462q144 0 220.5 -52.5t76.5 -170.5q0 -48 -21 -141l-49 -219q-16 -68 -16 -111q0 -143 209 -143l-33 -144q-119 0 -190 -43t-93 -147l-67 -326q-36 -164 -119 -226.5t-264 -62.5h-13v142q115 0 167 36t71 123l72 322q25 117 88 179.5t170 80.5v6q-150 42 -150 211 q0 59 18 131l50 213q14 65 14 99q0 53 -40.5 77.5t-139.5 24.5l28 141h11z" />
+<glyph unicode="~" d="M348 713q-54 0 -118.5 -34.5t-114.5 -86.5v151q98 109 243 109q69 0 127 -14.5t144 -51.5q64 -27 112.5 -41t98.5 -14q55 0 119.5 33t115.5 88v-150q-100 -110 -244 -110q-72 0 -135 16.5t-135 48.5q-75 32 -120 44t-93 12z" />
+<glyph unicode="&#xa1;" horiz-adv-x="530" d="M260 684h109l-176 -1057h-207zM250 950q0 76 40.5 122t110.5 46q44 0 70.5 -26t26.5 -80q0 -71 -40.5 -117.5t-105.5 -46.5q-48 0 -75 25.5t-27 76.5z" />
+<glyph unicode="&#xa2;" d="M582 -20h-125l43 215q-132 34 -203.5 137.5t-71.5 257.5q0 185 63.5 344t178.5 258.5t260 120.5l35 170h123l-37 -168q119 -9 217 -49l-47 -142q-109 52 -219 52q-112 0 -204.5 -76.5t-145 -213t-52.5 -296.5q0 -125 66 -198t184 -73q72 0 136 20t126 48v-143 q-123 -62 -286 -66z" />
+<glyph unicode="&#xa3;" d="M842 1481q184 0 336 -86l-66 -133q-146 79 -278 79q-213 0 -263 -237l-69 -326h370l-26 -127h-371l-47 -219q-22 -98 -66 -166.5t-124 -111.5h725l-33 -154h-953l27 141q205 46 258 289l47 221h-200l26 127h201l76 350q75 353 430 353z" />
+<glyph unicode="&#xa4;" d="M229 723q0 117 68 215l-129 129l92 92l127 -129q103 70 217 70t215 -70l129 129l92 -90l-129 -129q70 -104 70 -217q0 -119 -70 -217l127 -127l-90 -90l-129 127q-98 -68 -215 -68q-119 0 -217 70l-127 -127l-90 90l127 127q-68 96 -68 215zM358 723q0 -103 71.5 -174.5 t174.5 -71.5q104 0 177 71.5t73 174.5q0 104 -73 177t-177 73q-102 0 -174 -72.5t-72 -177.5z" />
+<glyph unicode="&#xa5;" d="M582 715l491 747h187l-533 -770h231l-28 -133h-297l-33 -160h297l-29 -133h-295l-57 -266h-154l56 266h-291l29 133h290l33 160h-291l29 133h225l-202 770h163z" />
+<glyph unicode="&#xa6;" d="M541 1556h139v-776h-139v776zM541 281h139v-777h-139v777z" />
+<glyph unicode="&#xa7;" horiz-adv-x="995" d="M174 770q0 201 238 307q-119 70 -119 203q0 127 103.5 206t279.5 79q189 0 321 -68l-53 -123q-148 60 -266 60q-102 0 -162.5 -40.5t-60.5 -109.5q0 -49 38 -83.5t162 -90.5q100 -44 149 -83.5t75 -89.5t26 -114q0 -97 -61 -180t-172 -139q114 -71 114 -189 q0 -152 -114 -237.5t-318 -85.5q-176 0 -295 61v148q56 -34 136.5 -56t156.5 -22q133 0 204 44.5t71 129.5q0 48 -50.5 89t-152.5 87q-138 61 -194 130.5t-56 166.5zM514 1010q-82 -26 -135 -87.5t-53 -131.5t50.5 -117t198.5 -111q80 44 127.5 107t47.5 131 q0 60 -49.5 105.5t-186.5 103.5z" />
+<glyph unicode="&#xa8;" horiz-adv-x="1135" d="M457 1378q0 46 28 79.5t74 33.5q78 0 78 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62zM821 1378q0 46 28 79.5t75 33.5q77 0 77 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62z" />
+<glyph unicode="&#xa9;" horiz-adv-x="1704" d="M928 1059q-125 0 -191.5 -87t-66.5 -241q0 -169 65 -249.5t193 -80.5q82 0 211 43v-122q-66 -28 -113 -38t-104 -10q-192 0 -297 119.5t-105 339.5q0 208 110 330.5t300 122.5q130 0 248 -60l-60 -120q-106 53 -190 53zM139 731q0 200 100 375t275 276t377 101 q197 0 370 -97t277 -272t104 -383q0 -204 -100.5 -376.5t-273 -273.5t-377.5 -101q-207 0 -382 103.5t-272.5 276.5t-97.5 371zM244 731q0 -173 87 -323.5t237.5 -237t322.5 -86.5q174 0 323 87t236.5 235.5t87.5 324.5q0 174 -87 323t-235.5 236.5t-324.5 87.5 q-174 0 -323 -87t-236.5 -235.5t-87.5 -324.5z" />
+<glyph unicode="&#xaa;" horiz-adv-x="686" d="M498 1479q114 0 153 -103h6l37 90h86l-139 -665h-92l14 117h-4q-40 -56 -90 -93t-123 -37q-77 0 -126.5 60t-49.5 166q0 127 41.5 234.5t116.5 169t170 61.5zM381 891q61 0 112.5 49t86 137.5t34.5 167.5q0 62 -28.5 96.5t-85.5 34.5q-92 0 -154.5 -103t-62.5 -243 q0 -139 98 -139z" />
+<glyph unicode="&#xab;" horiz-adv-x="958" d="M88 584l391 374l78 -81l-297 -328l172 -387l-113 -49l-231 442v29zM483 541l367 405l86 -69l-283 -365l158 -350l-113 -49l-215 397v31z" />
+<glyph unicode="&#xac;" d="M1047 793v-529h-140v387h-780v142h920z" />
+<glyph unicode="&#xad;" horiz-adv-x="639" d="M55 469zM55 469l35 158h479l-34 -158h-480z" />
+<glyph unicode="&#xae;" horiz-adv-x="1704" d="M139 731q0 200 100 375t275 276t377 101q197 0 370 -97t277 -272t104 -383q0 -204 -100.5 -376.5t-273 -273.5t-377.5 -101q-207 0 -382 103.5t-272.5 276.5t-97.5 371zM244 731q0 -173 87 -323.5t237.5 -237t322.5 -86.5q174 0 323 87t236.5 235.5t87.5 324.5 q0 174 -87 323t-235.5 236.5t-324.5 87.5q-174 0 -323 -87t-236.5 -235.5t-87.5 -324.5zM1194 915q0 -78 -47.5 -141t-132.5 -98l227 -385h-149l-207 352h-113v-352h-127v880h229q163 0 241.5 -63t78.5 -193zM772 762h92q195 0 195 149q0 76 -47.5 107t-149.5 31h-90v-287z " />
+<glyph unicode="&#xaf;" horiz-adv-x="782" d="M1012 1556h-785l33 132h787z" />
+<glyph unicode="&#xb0;" horiz-adv-x="877" d="M215 1171q0 128 90.5 220t220.5 92q83 0 155.5 -41.5t114.5 -114t42 -156.5q0 -128 -90.5 -218.5t-221.5 -90.5t-221 90.5t-90 218.5zM328 1171q0 -80 58 -138t140 -58q83 0 140 58.5t57 137.5q0 82 -57.5 140.5t-139.5 58.5q-80 0 -139 -58.5t-59 -140.5z" />
+<glyph unicode="&#xb1;" d="M516 643h-389v141h389v392h141v-392h390v-141h-390v-387h-141v387zM127 0v141h920v-141h-920z" />
+<glyph unicode="&#xb2;" horiz-adv-x="717" d="M657 586h-561l23 106l264 228q115 100 158.5 149.5t63.5 93t20 90.5q0 53 -31 85t-90 32q-90 0 -195 -80l-59 90q125 101 274 101q109 0 171.5 -56.5t62.5 -150.5q0 -99 -52.5 -179.5t-197.5 -205.5l-221 -187h395z" />
+<glyph unicode="&#xb3;" horiz-adv-x="717" d="M549 1036q69 -17 108 -68t39 -120q0 -132 -91 -205.5t-253 -73.5q-125 0 -233 56v127q125 -72 239 -72q205 0 205 170q0 137 -178 137h-90l22 107h95q97 0 155 41t58 112q0 60 -34.5 90.5t-93.5 30.5q-102 0 -196 -68l-55 93q109 88 268 88q114 0 178 -56t64 -151 q0 -180 -207 -234v-4z" />
+<glyph unicode="&#xb4;" horiz-adv-x="1135" d="M532 1268q56 60 125.5 151.5t106.5 149.5h190v-21q-38 -49 -140 -151t-177 -156h-105v27z" />
+<glyph unicode="&#xb5;" horiz-adv-x="1194" d="M295 266q0 -147 147 -147q89 0 172 59t148.5 171t99.5 269l105 478h163l-233 -1096h-139l24 205h-12q-93 -121 -183 -173t-188 -52q-112 0 -163 96h-9q-11 -78 -22.5 -148t-83.5 -420h-164l336 1588h168l-148 -695q-18 -92 -18 -135z" />
+<glyph unicode="&#xb6;" horiz-adv-x="1341" d="M1206 -260h-114v1661h-213v-1661h-115v819q-62 -18 -146 -18q-216 0 -317.5 125t-101.5 376q0 260 109 387t341 127h557v-1816z" />
+<glyph unicode="&#xb7;" horiz-adv-x="518" d="M170 587zM170 690q0 77 40.5 122.5t111.5 45.5q43 0 69.5 -26t26.5 -79q0 -71 -40 -118.5t-108 -47.5q-46 0 -73 26t-27 77z" />
+<glyph unicode="&#xb8;" horiz-adv-x="420" d="M211 -276q0 -98 -81 -157t-214 -59q-41 0 -86 9v100q38 -6 68 -6q174 0 174 110q0 46 -39 67.5t-99 29.5l101 182h106l-61 -121q131 -38 131 -155z" />
+<glyph unicode="&#xb9;" horiz-adv-x="717" d="M537 1462h118l-186 -876h-135l112 526q25 103 58 225q-25 -25 -50 -46.5t-145 -100.5l-51 90z" />
+<glyph unicode="&#xba;" horiz-adv-x="688" d="M745 1219q0 -191 -88.5 -311t-240.5 -120q-113 0 -180.5 71t-67.5 196q0 117 42 215.5t117.5 153.5t174.5 55q117 0 180 -67t63 -193zM500 1376q-102 0 -160.5 -87.5t-58.5 -229.5q0 -85 38 -127.5t107 -42.5q94 0 152.5 88.5t58.5 232.5q0 166 -137 166z" />
+<glyph unicode="&#xbb;" horiz-adv-x="958" d="M872 485l-393 -370l-78 82l297 323l-172 391l113 50l233 -447v-29zM477 528l-368 -401l-86 70l282 360l-158 354l113 50l217 -402v-31z" />
+<glyph unicode="&#xbc;" horiz-adv-x="1518" d="M123 0zM1362 1462l-1086 -1462h-153l1085 1462h154zM483 1462h118l-186 -876h-135l112 526q25 103 58 225q-25 -25 -50 -46.5t-145 -100.5l-51 90zM1327 203h-129l-43 -202h-127l43 202h-365l23 101l481 579h133l-121 -563h127zM1095 320q69 322 90 395 q-20 -36 -110 -149l-205 -246h225z" />
+<glyph unicode="&#xbd;" horiz-adv-x="1518" d="M66 0zM427 1462h118l-186 -876h-135l112 526q25 103 58 225q-25 -25 -50 -46.5t-145 -100.5l-51 90zM1305 1462l-1086 -1462h-153l1085 1462h154zM1343 1h-561l23 106l264 228q115 100 158.5 149.5t63.5 93t20 90.5q0 53 -31 85t-90 32q-90 0 -195 -80l-59 90 q125 101 274 101q109 0 171.5 -56.5t62.5 -150.5q0 -99 -52.5 -179.5t-197.5 -205.5l-221 -187h395z" />
+<glyph unicode="&#xbe;" horiz-adv-x="1565" d="M87 0zM517 1036q69 -17 108 -68t39 -120q0 -132 -91 -205.5t-253 -73.5q-125 0 -233 56v127q125 -72 239 -72q205 0 205 170q0 137 -178 137h-90l22 107h95q97 0 155 41t58 112q0 60 -34.5 90.5t-93.5 30.5q-102 0 -196 -68l-55 93q109 88 268 88q114 0 178 -56t64 -151 q0 -180 -207 -234v-4zM1512 1462l-1086 -1462h-153l1085 1462h154zM1477 203h-129l-43 -202h-127l43 202h-365l23 101l481 579h133l-121 -563h127zM1245 320q69 322 90 395q-20 -36 -110 -149l-205 -246h225z" />
+<glyph unicode="&#xbf;" horiz-adv-x="874" d="M657 680q-22 -130 -72 -212t-165 -175l-95 -75q-159 -127 -159 -275q0 -93 51.5 -144t147.5 -51q80 0 154 25.5t140 56.5l62 -129q-90 -48 -189 -74t-186 -26q-168 0 -259 83.5t-91 237.5q0 124 66 228t225 223q132 98 172.5 152.5t62.5 154.5h135zM760 1010 q0 -77 -40.5 -122.5t-111.5 -45.5q-43 0 -69.5 26t-26.5 78q0 71 40 118.5t107 47.5q47 0 74 -25.5t27 -76.5z" />
+<glyph unicode="&#xc0;" horiz-adv-x="1137" d="M0 0zM813 465h-496l-245 -465h-189l799 1462h174l184 -1462h-170zM795 621l-35 299q-24 179 -29 350q-37 -88 -80.5 -175t-249.5 -474h394zM863 1579h-104q-61 61 -128.5 154t-95.5 153v21h181q43 -136 147 -303v-25z" />
+<glyph unicode="&#xc1;" horiz-adv-x="1137" d="M0 0zM813 465h-496l-245 -465h-189l799 1462h174l184 -1462h-170zM795 621l-35 299q-24 179 -29 350q-37 -88 -80.5 -175t-249.5 -474h394zM679 1606q56 60 125.5 151.5t106.5 149.5h190v-21q-38 -49 -140 -151t-177 -156h-105v27z" />
+<glyph unicode="&#xc2;" horiz-adv-x="1137" d="M0 0zM813 465h-496l-245 -465h-189l799 1462h174l184 -1462h-170zM795 621l-35 299q-24 179 -29 350q-37 -88 -80.5 -175t-249.5 -474h394zM1080 1579h-103q-57 48 -161 189q-134 -119 -242 -189h-109v27q145 133 204.5 197.5t82.5 103.5h158q37 -99 128 -235l42 -66v-27 z" />
+<glyph unicode="&#xc3;" horiz-adv-x="1137" d="M0 0zM813 465h-496l-245 -465h-189l799 1462h174l184 -1462h-170zM795 621l-35 299q-24 179 -29 350q-37 -88 -80.5 -175t-249.5 -474h394zM934 1581q-40 0 -77.5 17.5t-73 39t-69 39t-65.5 17.5q-44 0 -69.5 -28.5t-47.5 -86.5h-100q58 258 231 258q44 0 83.5 -18 t75 -39.5t66.5 -39.5t58 -18q44 0 69.5 27t51.5 90h100q-66 -258 -233 -258z" />
+<glyph unicode="&#xc4;" horiz-adv-x="1137" d="M0 0zM813 465h-496l-245 -465h-189l799 1462h174l184 -1462h-170zM795 621l-35 299q-24 179 -29 350q-37 -88 -80.5 -175t-249.5 -474h394zM523 1716q0 46 28 79.5t74 33.5q78 0 78 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62zM887 1716q0 46 28 79.5 t75 33.5q77 0 77 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62z" />
+<glyph unicode="&#xc5;" horiz-adv-x="1137" d="M0 0zM813 465h-496l-245 -465h-189l799 1462h174l184 -1462h-170zM795 621l-35 299q-24 179 -29 350q-37 -88 -80.5 -175t-249.5 -474h394zM991 1585q0 -99 -60 -157t-159 -58q-101 0 -160 57.5t-59 155.5q0 94 62 152.5t157 58.5q101 0 160 -57t59 -152zM887 1583 q0 53 -32 84t-83 31q-49 0 -82 -31t-33 -84q0 -54 29.5 -84.5t85.5 -30.5q51 0 83 30.5t32 84.5z" />
+<glyph unicode="&#xc6;" horiz-adv-x="1673" d="M1448 0h-737l98 465h-438l-293 -465h-197l938 1462h938l-33 -153h-565l-100 -469h528l-28 -150h-529l-115 -538h566zM840 621l147 688h-84l-434 -688h371z" />
+<glyph unicode="&#xc7;" horiz-adv-x="1198" d="M150 0zM942 1331q-174 0 -311.5 -97t-218 -284.5t-80.5 -408.5q0 -187 97.5 -298.5t268.5 -111.5q139 0 322 57v-149q-86 -31 -164 -45t-188 -14q-242 0 -380 149.5t-138 407.5q0 261 105.5 485.5t283.5 342.5t403 118q197 0 348 -80l-69 -141q-138 69 -279 69zM758 -276 q0 -98 -81 -157t-214 -59q-41 0 -86 9v100q38 -6 68 -6q174 0 174 110q0 46 -39 67.5t-99 29.5l101 182h106l-61 -121q131 -38 131 -155z" />
+<glyph unicode="&#xc8;" horiz-adv-x="1047" d="M86 0zM821 0h-735l309 1462h735l-32 -153h-566l-98 -469h527l-29 -152h-529l-114 -536h565zM898 1579h-104q-61 61 -128.5 154t-95.5 153v21h181q43 -136 147 -303v-25z" />
+<glyph unicode="&#xc9;" horiz-adv-x="1047" d="M86 0zM821 0h-735l309 1462h735l-32 -153h-566l-98 -469h527l-29 -152h-529l-114 -536h565zM657 1606q56 60 125.5 151.5t106.5 149.5h190v-21q-38 -49 -140 -151t-177 -156h-105v27z" />
+<glyph unicode="&#xca;" horiz-adv-x="1047" d="M86 0zM821 0h-735l309 1462h735l-32 -153h-566l-98 -469h527l-29 -152h-529l-114 -536h565zM1084 1579h-103q-57 48 -161 189q-134 -119 -242 -189h-109v27q145 133 204.5 197.5t82.5 103.5h158q37 -99 128 -235l42 -66v-27z" />
+<glyph unicode="&#xcb;" horiz-adv-x="1047" d="M86 0zM821 0h-735l309 1462h735l-32 -153h-566l-98 -469h527l-29 -152h-529l-114 -536h565zM523 1716q0 46 28 79.5t74 33.5q78 0 78 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62zM887 1716q0 46 28 79.5t75 33.5q77 0 77 -80q0 -49 -29.5 -83t-68.5 -34 q-35 0 -58.5 22t-23.5 62z" />
+<glyph unicode="&#xcc;" horiz-adv-x="559" d="M86 0zM86 0l311 1462h168l-311 -1462h-168zM593 1579h-104q-61 61 -128.5 154t-95.5 153v21h181q43 -136 147 -303v-25z" />
+<glyph unicode="&#xcd;" horiz-adv-x="559" d="M86 0zM86 0l311 1462h168l-311 -1462h-168zM412 1606q56 60 125.5 151.5t106.5 149.5h190v-21q-38 -49 -140 -151t-177 -156h-105v27z" />
+<glyph unicode="&#xce;" horiz-adv-x="559" d="M86 0zM86 0l311 1462h168l-311 -1462h-168zM808 1579h-103q-57 48 -161 189q-134 -119 -242 -189h-109v27q145 133 204.5 197.5t82.5 103.5h158q37 -99 128 -235l42 -66v-27z" />
+<glyph unicode="&#xcf;" horiz-adv-x="559" d="M86 0zM86 0l311 1462h168l-311 -1462h-168zM265 1716q0 46 28 79.5t74 33.5q78 0 78 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62zM629 1716q0 46 28 79.5t75 33.5q77 0 77 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62z" />
+<glyph unicode="&#xd0;" horiz-adv-x="1364" d="M1300 877q0 -261 -105 -461t-300 -308t-457 -108h-352l135 649h-149l32 150h150l141 663h342q276 0 419.5 -149.5t143.5 -435.5zM449 147q202 0 355 91.5t234.5 258.5t81.5 382t-103 325.5t-302 110.5h-178l-111 -516h330l-33 -150h-330l-106 -502h162z" />
+<glyph unicode="&#xd1;" horiz-adv-x="1438" d="M84 0zM1139 0h-181l-460 1223h-6q-32 -221 -74 -418l-172 -805h-162l309 1462h180l459 -1220h6q30 224 72 405l174 815h164zM1102 1581q-40 0 -77.5 17.5t-73 39t-69 39t-65.5 17.5q-44 0 -69.5 -28.5t-47.5 -86.5h-100q58 258 231 258q44 0 83.5 -18t75 -39.5 t66.5 -39.5t58 -18q44 0 69.5 27t51.5 90h100q-66 -258 -233 -258z" />
+<glyph unicode="&#xd2;" horiz-adv-x="1475" d="M150 0zM1411 907q0 -269 -88 -481.5t-252 -329t-379 -116.5q-256 0 -399 149.5t-143 419.5q0 264 96 482t263.5 336t377.5 118q244 0 384 -154t140 -424zM874 1333q-157 0 -281 -101t-192.5 -281t-68.5 -398q0 -199 98 -310.5t266 -111.5q152 0 272.5 97.5t190.5 279.5 t70 403q0 199 -94 310.5t-261 111.5zM1007 1579h-104q-61 61 -128.5 154t-95.5 153v21h181q43 -136 147 -303v-25z" />
+<glyph unicode="&#xd3;" horiz-adv-x="1475" d="M150 0zM1411 907q0 -269 -88 -481.5t-252 -329t-379 -116.5q-256 0 -399 149.5t-143 419.5q0 264 96 482t263.5 336t377.5 118q244 0 384 -154t140 -424zM874 1333q-157 0 -281 -101t-192.5 -281t-68.5 -398q0 -199 98 -310.5t266 -111.5q152 0 272.5 97.5t190.5 279.5 t70 403q0 199 -94 310.5t-261 111.5zM821 1606q56 60 125.5 151.5t106.5 149.5h190v-21q-38 -49 -140 -151t-177 -156h-105v27z" />
+<glyph unicode="&#xd4;" horiz-adv-x="1475" d="M150 0zM1411 907q0 -269 -88 -481.5t-252 -329t-379 -116.5q-256 0 -399 149.5t-143 419.5q0 264 96 482t263.5 336t377.5 118q244 0 384 -154t140 -424zM874 1333q-157 0 -281 -101t-192.5 -281t-68.5 -398q0 -199 98 -310.5t266 -111.5q152 0 272.5 97.5t190.5 279.5 t70 403q0 199 -94 310.5t-261 111.5zM1227 1579h-103q-57 48 -161 189q-134 -119 -242 -189h-109v27q145 133 204.5 197.5t82.5 103.5h158q37 -99 128 -235l42 -66v-27z" />
+<glyph unicode="&#xd5;" horiz-adv-x="1475" d="M150 0zM1411 907q0 -269 -88 -481.5t-252 -329t-379 -116.5q-256 0 -399 149.5t-143 419.5q0 264 96 482t263.5 336t377.5 118q244 0 384 -154t140 -424zM874 1333q-157 0 -281 -101t-192.5 -281t-68.5 -398q0 -199 98 -310.5t266 -111.5q152 0 272.5 97.5t190.5 279.5 t70 403q0 199 -94 310.5t-261 111.5zM1067 1581q-40 0 -77.5 17.5t-73 39t-69 39t-65.5 17.5q-44 0 -69.5 -28.5t-47.5 -86.5h-100q58 258 231 258q44 0 83.5 -18t75 -39.5t66.5 -39.5t58 -18q44 0 69.5 27t51.5 90h100q-66 -258 -233 -258z" />
+<glyph unicode="&#xd6;" horiz-adv-x="1475" d="M150 0zM1411 907q0 -269 -88 -481.5t-252 -329t-379 -116.5q-256 0 -399 149.5t-143 419.5q0 264 96 482t263.5 336t377.5 118q244 0 384 -154t140 -424zM874 1333q-157 0 -281 -101t-192.5 -281t-68.5 -398q0 -199 98 -310.5t266 -111.5q152 0 272.5 97.5t190.5 279.5 t70 403q0 199 -94 310.5t-261 111.5zM664 1716q0 46 28 79.5t74 33.5q78 0 78 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62zM1028 1716q0 46 28 79.5t75 33.5q77 0 77 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62z" />
+<glyph unicode="&#xd7;" d="M487 723l-319 321l98 99l320 -320l323 320l99 -96l-324 -324l322 -322l-97 -96l-323 320l-320 -318l-96 96z" />
+<glyph unicode="&#xd8;" horiz-adv-x="1475" d="M1411 907q0 -269 -88 -481.5t-252 -329t-379 -116.5q-200 0 -332 96l-129 -160l-112 92l137 170q-106 136 -106 371q0 264 96 482t263.5 336t377.5 118q99 0 178.5 -27t151.5 -84l131 166l114 -92l-149 -184q48 -62 73 -156t25 -201zM874 1333q-157 0 -281 -101 t-192.5 -281t-68.5 -398q0 -135 41 -227l737 919q-90 88 -236 88zM1229 911q0 118 -33 205l-733 -911q91 -74 233 -74q152 0 272.5 97.5t190.5 279.5t70 403z" />
+<glyph unicode="&#xd9;" horiz-adv-x="1384" d="M164 0zM1407 1462l-205 -966q-55 -263 -197.5 -389.5t-388.5 -126.5q-230 0 -341 104t-111 299q0 81 24 201l189 878h170l-191 -891q-22 -106 -22 -188q0 -117 73 -184.5t218 -67.5q172 0 267.5 87.5t139.5 289.5l205 954h170zM991 1579h-104q-61 61 -128.5 154 t-95.5 153v21h181q43 -136 147 -303v-25z" />
+<glyph unicode="&#xda;" horiz-adv-x="1384" d="M164 0zM1407 1462l-205 -966q-55 -263 -197.5 -389.5t-388.5 -126.5q-230 0 -341 104t-111 299q0 81 24 201l189 878h170l-191 -891q-22 -106 -22 -188q0 -117 73 -184.5t218 -67.5q172 0 267.5 87.5t139.5 289.5l205 954h170zM823 1606q56 60 125.5 151.5t106.5 149.5 h190v-21q-38 -49 -140 -151t-177 -156h-105v27z" />
+<glyph unicode="&#xdb;" horiz-adv-x="1384" d="M164 0zM1407 1462l-205 -966q-55 -263 -197.5 -389.5t-388.5 -126.5q-230 0 -341 104t-111 299q0 81 24 201l189 878h170l-191 -891q-22 -106 -22 -188q0 -117 73 -184.5t218 -67.5q172 0 267.5 87.5t139.5 289.5l205 954h170zM1217 1579h-103q-57 48 -161 189 q-134 -119 -242 -189h-109v27q145 133 204.5 197.5t82.5 103.5h158q37 -99 128 -235l42 -66v-27z" />
+<glyph unicode="&#xdc;" horiz-adv-x="1384" d="M164 0zM1407 1462l-205 -966q-55 -263 -197.5 -389.5t-388.5 -126.5q-230 0 -341 104t-111 299q0 81 24 201l189 878h170l-191 -891q-22 -106 -22 -188q0 -117 73 -184.5t218 -67.5q172 0 267.5 87.5t139.5 289.5l205 954h170zM643 1716q0 46 28 79.5t74 33.5 q78 0 78 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62zM1007 1716q0 46 28 79.5t75 33.5q77 0 77 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62z" />
+<glyph unicode="&#xdd;" horiz-adv-x="1030" d="M188 0zM537 715l489 747h193l-627 -921l-113 -541h-172l119 549l-238 913h170zM616 1606q56 60 125.5 151.5t106.5 149.5h190v-21q-38 -49 -140 -151t-177 -156h-105v27z" />
+<glyph unicode="&#xde;" horiz-adv-x="1159" d="M1106 829q0 -248 -164 -379t-483 -131h-133l-70 -319h-170l309 1462h170l-53 -256h160q213 0 323.5 -95t110.5 -282zM354 465h135q215 0 328 91t113 267q0 126 -70 181t-215 55h-166z" />
+<glyph unicode="&#xdf;" horiz-adv-x="1182" d="M-133 -492q-69 0 -123 21v143q61 -22 111 -22q65 0 107 47.5t65 157.5l280 1314q43 200 156 299t307 99q162 0 252 -71t90 -196q0 -57 -21 -106.5t-61.5 -95t-178.5 -150.5q-110 -83 -110 -151q0 -56 95 -122q47 -34 101 -87.5t79.5 -110t25.5 -123.5 q0 -175 -108.5 -274.5t-292.5 -99.5q-175 0 -268 71v160q51 -41 118.5 -66.5t129.5 -25.5q113 0 181 58t68 159q0 40 -10.5 71t-33.5 59t-89 83q-88 69 -122.5 124t-34.5 115q0 53 18.5 96t49.5 78.5t124 104.5q80 56 111 87.5t48 65t17 70.5q0 64 -52.5 100.5t-141.5 36.5 q-119 0 -186 -62.5t-95 -190.5l-274 -1303q-40 -189 -121 -276t-211 -87z" />
+<glyph unicode="&#xe0;" horiz-adv-x="1157" d="M98 0zM639 1116q92 0 164 -49.5t112 -142.5h11l67 172h127l-233 -1096h-133l26 209h-8q-179 -229 -377 -229q-139 0 -218 99t-79 271q0 208 71 386t196 279t274 101zM449 119q97 0 193 92.5t156 241t60 297.5q0 103 -56 164t-147 61q-104 0 -193.5 -86t-140.5 -233 t-51 -310q0 -114 47 -170.5t132 -56.5zM824 1241h-104q-61 61 -128.5 154t-95.5 153v21h181q43 -136 147 -303v-25z" />
+<glyph unicode="&#xe1;" horiz-adv-x="1157" d="M98 0zM639 1116q92 0 164 -49.5t112 -142.5h11l67 172h127l-233 -1096h-133l26 209h-8q-179 -229 -377 -229q-139 0 -218 99t-79 271q0 208 71 386t196 279t274 101zM449 119q97 0 193 92.5t156 241t60 297.5q0 103 -56 164t-147 61q-104 0 -193.5 -86t-140.5 -233 t-51 -310q0 -114 47 -170.5t132 -56.5zM600 1268q56 60 125.5 151.5t106.5 149.5h190v-21q-38 -49 -140 -151t-177 -156h-105v27z" />
+<glyph unicode="&#xe2;" horiz-adv-x="1157" d="M98 0zM639 1116q92 0 164 -49.5t112 -142.5h11l67 172h127l-233 -1096h-133l26 209h-8q-179 -229 -377 -229q-139 0 -218 99t-79 271q0 208 71 386t196 279t274 101zM449 119q97 0 193 92.5t156 241t60 297.5q0 103 -56 164t-147 61q-104 0 -193.5 -86t-140.5 -233 t-51 -310q0 -114 47 -170.5t132 -56.5zM1005 1241h-103q-57 48 -161 189q-134 -119 -242 -189h-109v27q145 133 204.5 197.5t82.5 103.5h158q37 -99 128 -235l42 -66v-27z" />
+<glyph unicode="&#xe3;" horiz-adv-x="1157" d="M98 0zM639 1116q92 0 164 -49.5t112 -142.5h11l67 172h127l-233 -1096h-133l26 209h-8q-179 -229 -377 -229q-139 0 -218 99t-79 271q0 208 71 386t196 279t274 101zM449 119q97 0 193 92.5t156 241t60 297.5q0 103 -56 164t-147 61q-104 0 -193.5 -86t-140.5 -233 t-51 -310q0 -114 47 -170.5t132 -56.5zM856 1243q-40 0 -77.5 17.5t-73 39t-69 39t-65.5 17.5q-44 0 -69.5 -28.5t-47.5 -86.5h-100q58 258 231 258q44 0 83.5 -18t75 -39.5t66.5 -39.5t58 -18q44 0 69.5 27t51.5 90h100q-66 -258 -233 -258z" />
+<glyph unicode="&#xe4;" horiz-adv-x="1157" d="M98 0zM639 1116q92 0 164 -49.5t112 -142.5h11l67 172h127l-233 -1096h-133l26 209h-8q-179 -229 -377 -229q-139 0 -218 99t-79 271q0 208 71 386t196 279t274 101zM449 119q97 0 193 92.5t156 241t60 297.5q0 103 -56 164t-147 61q-104 0 -193.5 -86t-140.5 -233 t-51 -310q0 -114 47 -170.5t132 -56.5zM454 1378q0 46 28 79.5t74 33.5q78 0 78 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62zM818 1378q0 46 28 79.5t75 33.5q77 0 77 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62z" />
+<glyph unicode="&#xe5;" horiz-adv-x="1157" d="M98 0zM639 1116q92 0 164 -49.5t112 -142.5h11l67 172h127l-233 -1096h-133l26 209h-8q-179 -229 -377 -229q-139 0 -218 99t-79 271q0 208 71 386t196 279t274 101zM449 119q97 0 193 92.5t156 241t60 297.5q0 103 -56 164t-147 61q-104 0 -193.5 -86t-140.5 -233 t-51 -310q0 -114 47 -170.5t132 -56.5zM951 1456q0 -99 -60 -157t-159 -58q-101 0 -160 57.5t-59 155.5q0 94 62 152.5t157 58.5q101 0 160 -57t59 -152zM847 1454q0 53 -32 84t-83 31q-49 0 -82 -31t-33 -84q0 -54 29.5 -84.5t85.5 -30.5q51 0 83 30.5t32 84.5z" />
+<glyph unicode="&#xe6;" horiz-adv-x="1669" d="M1165 -20q-108 0 -189.5 39.5t-121.5 119.5l-31 -139h-114l26 209h-8q-109 -132 -191.5 -180.5t-177.5 -48.5q-122 0 -191 99t-69 269q0 206 70.5 385t191.5 281t263 102q82 0 145 -48.5t102 -143.5h11l67 172h109l-31 -146q123 166 332 166q119 0 192.5 -68t73.5 -184 q0 -182 -166.5 -283.5t-472.5 -101.5h-39l-4 -80q0 -131 62.5 -204.5t193.5 -73.5q55 0 116.5 16.5t178.5 67.5v-150q-164 -75 -328 -75zM412 119q95 0 188.5 91.5t153 240.5t59.5 299q0 103 -45.5 164t-122.5 61q-99 0 -187 -86.5t-138 -231.5t-50 -309q0 -114 37 -171.5 t105 -57.5zM1325 973q-117 0 -211 -94.5t-141 -260.5h14q226 0 348.5 58.5t122.5 169.5q0 61 -35 94t-98 33z" />
+<glyph unicode="&#xe7;" horiz-adv-x="922" d="M98 0zM506 -20q-194 0 -301 107t-107 302q0 200 74 369t204.5 263.5t293.5 94.5q137 0 268 -51l-47 -141q-120 51 -219 51q-112 0 -204.5 -76.5t-145 -213t-52.5 -296.5q0 -128 66.5 -199t183.5 -71q72 0 136 20t126 47v-143q-124 -63 -276 -63zM592 -276q0 -98 -81 -157 t-214 -59q-41 0 -86 9v100q38 -6 68 -6q174 0 174 110q0 46 -39 67.5t-99 29.5l101 182h106l-61 -121q131 -38 131 -155z" />
+<glyph unicode="&#xe8;" horiz-adv-x="1010" d="M98 0zM492 -20q-184 0 -289 109t-105 302q0 188 74.5 360.5t197.5 268.5t271 96q153 0 230 -66.5t77 -185.5q0 -180 -166 -282.5t-475 -102.5h-33l-4 -80q0 -131 61.5 -204.5t190.5 -73.5q63 0 129.5 18t165.5 66v-146q-94 -44 -166 -61.5t-159 -17.5zM631 973 q-103 0 -193.5 -94t-138.5 -261h12q228 0 349.5 59.5t121.5 172.5q0 53 -36.5 88t-114.5 35zM777 1241h-104q-61 61 -128.5 154t-95.5 153v21h181q43 -136 147 -303v-25z" />
+<glyph unicode="&#xe9;" horiz-adv-x="1010" d="M98 0zM492 -20q-184 0 -289 109t-105 302q0 188 74.5 360.5t197.5 268.5t271 96q153 0 230 -66.5t77 -185.5q0 -180 -166 -282.5t-475 -102.5h-33l-4 -80q0 -131 61.5 -204.5t190.5 -73.5q63 0 129.5 18t165.5 66v-146q-94 -44 -166 -61.5t-159 -17.5zM631 973 q-103 0 -193.5 -94t-138.5 -261h12q228 0 349.5 59.5t121.5 172.5q0 53 -36.5 88t-114.5 35zM585 1268q56 60 125.5 151.5t106.5 149.5h190v-21q-38 -49 -140 -151t-177 -156h-105v27z" />
+<glyph unicode="&#xea;" horiz-adv-x="1010" d="M98 0zM492 -20q-184 0 -289 109t-105 302q0 188 74.5 360.5t197.5 268.5t271 96q153 0 230 -66.5t77 -185.5q0 -180 -166 -282.5t-475 -102.5h-33l-4 -80q0 -131 61.5 -204.5t190.5 -73.5q63 0 129.5 18t165.5 66v-146q-94 -44 -166 -61.5t-159 -17.5zM631 973 q-103 0 -193.5 -94t-138.5 -261h12q228 0 349.5 59.5t121.5 172.5q0 53 -36.5 88t-114.5 35zM966 1241h-103q-57 48 -161 189q-134 -119 -242 -189h-109v27q145 133 204.5 197.5t82.5 103.5h158q37 -99 128 -235l42 -66v-27z" />
+<glyph unicode="&#xeb;" horiz-adv-x="1010" d="M98 0zM492 -20q-184 0 -289 109t-105 302q0 188 74.5 360.5t197.5 268.5t271 96q153 0 230 -66.5t77 -185.5q0 -180 -166 -282.5t-475 -102.5h-33l-4 -80q0 -131 61.5 -204.5t190.5 -73.5q63 0 129.5 18t165.5 66v-146q-94 -44 -166 -61.5t-159 -17.5zM631 973 q-103 0 -193.5 -94t-138.5 -261h12q228 0 349.5 59.5t121.5 172.5q0 53 -36.5 88t-114.5 35zM413 1378q0 46 28 79.5t74 33.5q78 0 78 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62zM777 1378q0 46 28 79.5t75 33.5q77 0 77 -80q0 -49 -29.5 -83t-68.5 -34 q-35 0 -58.5 22t-23.5 62z" />
+<glyph unicode="&#xec;" horiz-adv-x="520" d="M59 0zM227 0h-168l234 1096h168zM492 1241h-104q-61 61 -128.5 154t-95.5 153v21h181q43 -136 147 -303v-25z" />
+<glyph unicode="&#xed;" horiz-adv-x="520" d="M59 0zM227 0h-168l234 1096h168zM324 1268q56 60 125.5 151.5t106.5 149.5h190v-21q-38 -49 -140 -151t-177 -156h-105v27z" />
+<glyph unicode="&#xee;" horiz-adv-x="520" d="M59 0zM227 0h-168l234 1096h168zM708 1241h-103q-57 48 -161 189q-134 -119 -242 -189h-109v27q145 133 204.5 197.5t82.5 103.5h158q37 -99 128 -235l42 -66v-27z" />
+<glyph unicode="&#xef;" horiz-adv-x="520" d="M59 0zM227 0h-168l234 1096h168zM161 1378q0 46 28 79.5t74 33.5q78 0 78 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62zM525 1378q0 46 28 79.5t75 33.5q77 0 77 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62z" />
+<glyph unicode="&#xf0;" horiz-adv-x="1165" d="M676 1343q-66 58 -146 113l95 117q118 -84 188 -154l260 146l64 -105l-240 -133q87 -115 126.5 -240.5t39.5 -269.5q0 -253 -71.5 -447t-203 -292t-311.5 -98q-182 0 -284.5 104t-102.5 289q0 160 67.5 298t187 217t267.5 79q105 0 181.5 -45.5t111.5 -124.5l6 2v17 q0 136 -36.5 240t-110.5 197l-270 -149l-56 108zM487 121q107 0 190 56t134 168t51 226q0 118 -65.5 187t-178.5 69q-109 0 -189 -57.5t-123.5 -161t-43.5 -231.5q0 -126 57.5 -191t167.5 -65z" />
+<glyph unicode="&#xf1;" horiz-adv-x="1182" d="M59 0zM729 0l148 692q20 104 20 144q0 63 -35.5 101t-113.5 38q-89 0 -173.5 -60t-149 -171t-97.5 -269l-101 -475h-168l234 1096h139l-22 -203h10q96 122 185.5 172.5t185.5 50.5q127 0 200.5 -69.5t73.5 -194.5q0 -79 -23 -180l-143 -672h-170zM871 1243 q-40 0 -77.5 17.5t-73 39t-69 39t-65.5 17.5q-44 0 -69.5 -28.5t-47.5 -86.5h-100q58 258 231 258q44 0 83.5 -18t75 -39.5t66.5 -39.5t58 -18q44 0 69.5 27t51.5 90h100q-66 -258 -233 -258z" />
+<glyph unicode="&#xf2;" horiz-adv-x="1149" d="M98 0zM643 1110q190 0 300 -112.5t110 -309.5q0 -188 -72 -355t-195 -258t-278 -91q-192 0 -301 113t-109 309q0 190 73 357.5t197 257t275 89.5zM879 711q0 115 -62.5 186.5t-169.5 71.5q-109 0 -195.5 -74t-134 -205.5t-47.5 -292.5q0 -131 63.5 -202.5t182.5 -71.5 q104 0 187 73t129.5 207.5t46.5 307.5zM798 1241h-104q-61 61 -128.5 154t-95.5 153v21h181q43 -136 147 -303v-25z" />
+<glyph unicode="&#xf3;" horiz-adv-x="1149" d="M98 0zM643 1110q190 0 300 -112.5t110 -309.5q0 -188 -72 -355t-195 -258t-278 -91q-192 0 -301 113t-109 309q0 190 73 357.5t197 257t275 89.5zM879 711q0 115 -62.5 186.5t-169.5 71.5q-109 0 -195.5 -74t-134 -205.5t-47.5 -292.5q0 -131 63.5 -202.5t182.5 -71.5 q104 0 187 73t129.5 207.5t46.5 307.5zM589 1268q56 60 125.5 151.5t106.5 149.5h190v-21q-38 -49 -140 -151t-177 -156h-105v27z" />
+<glyph unicode="&#xf4;" horiz-adv-x="1149" d="M98 0zM643 1110q190 0 300 -112.5t110 -309.5q0 -188 -72 -355t-195 -258t-278 -91q-192 0 -301 113t-109 309q0 190 73 357.5t197 257t275 89.5zM879 711q0 115 -62.5 186.5t-169.5 71.5q-109 0 -195.5 -74t-134 -205.5t-47.5 -292.5q0 -131 63.5 -202.5t182.5 -71.5 q104 0 187 73t129.5 207.5t46.5 307.5zM997 1241h-103q-57 48 -161 189q-134 -119 -242 -189h-109v27q145 133 204.5 197.5t82.5 103.5h158q37 -99 128 -235l42 -66v-27z" />
+<glyph unicode="&#xf5;" horiz-adv-x="1149" d="M98 0zM643 1110q190 0 300 -112.5t110 -309.5q0 -188 -72 -355t-195 -258t-278 -91q-192 0 -301 113t-109 309q0 190 73 357.5t197 257t275 89.5zM879 711q0 115 -62.5 186.5t-169.5 71.5q-109 0 -195.5 -74t-134 -205.5t-47.5 -292.5q0 -131 63.5 -202.5t182.5 -71.5 q104 0 187 73t129.5 207.5t46.5 307.5zM844 1243q-40 0 -77.5 17.5t-73 39t-69 39t-65.5 17.5q-44 0 -69.5 -28.5t-47.5 -86.5h-100q58 258 231 258q44 0 83.5 -18t75 -39.5t66.5 -39.5t58 -18q44 0 69.5 27t51.5 90h100q-66 -258 -233 -258z" />
+<glyph unicode="&#xf6;" horiz-adv-x="1149" d="M98 0zM643 1110q190 0 300 -112.5t110 -309.5q0 -188 -72 -355t-195 -258t-278 -91q-192 0 -301 113t-109 309q0 190 73 357.5t197 257t275 89.5zM879 711q0 115 -62.5 186.5t-169.5 71.5q-109 0 -195.5 -74t-134 -205.5t-47.5 -292.5q0 -131 63.5 -202.5t182.5 -71.5 q104 0 187 73t129.5 207.5t46.5 307.5zM433 1378q0 46 28 79.5t74 33.5q78 0 78 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62zM797 1378q0 46 28 79.5t75 33.5q77 0 77 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62z" />
+<glyph unicode="&#xf7;" d="M127 651v142h920v-142h-920zM475 373q0 121 111 121q53 0 82.5 -30.5t29.5 -90.5q0 -58 -30 -89.5t-82 -31.5t-81.5 31t-29.5 90zM475 1071q0 121 111 121q53 0 82.5 -30.5t29.5 -90.5q0 -58 -30 -89.5t-82 -31.5t-81.5 31t-29.5 90z" />
+<glyph unicode="&#xf8;" horiz-adv-x="1149" d="M1047 705q0 -189 -69.5 -360t-191.5 -266t-276 -95q-146 0 -246 65l-98 -125l-105 82l109 135q-68 103 -68 265q0 194 73.5 361t195.5 255t272 88q146 0 252 -68l104 129l105 -79l-119 -129q62 -97 62 -258zM647 971q-108 0 -195.5 -73t-137.5 -202t-50 -280 q0 -92 17 -137l518 645q-54 47 -152 47zM885 688q0 84 -13 119l-514 -641q57 -45 158 -45q103 0 188.5 71.5t133 200.5t47.5 295z" />
+<glyph unicode="&#xf9;" horiz-adv-x="1182" d="M113 0zM451 1096l-150 -695q-18 -89 -18 -139q0 -143 147 -143q88 0 173 60t150 172t99 270l100 475h166l-231 -1096h-139l22 203h-12q-98 -125 -187 -174t-184 -49q-128 0 -201 69.5t-73 198.5q0 62 22 172l146 676h170zM800 1241h-104q-61 61 -128.5 154t-95.5 153v21 h181q43 -136 147 -303v-25z" />
+<glyph unicode="&#xfa;" horiz-adv-x="1182" d="M113 0zM451 1096l-150 -695q-18 -89 -18 -139q0 -143 147 -143q88 0 173 60t150 172t99 270l100 475h166l-231 -1096h-139l22 203h-12q-98 -125 -187 -174t-184 -49q-128 0 -201 69.5t-73 198.5q0 62 22 172l146 676h170zM636 1268q56 60 125.5 151.5t106.5 149.5h190 v-21q-38 -49 -140 -151t-177 -156h-105v27z" />
+<glyph unicode="&#xfb;" horiz-adv-x="1182" d="M113 0zM451 1096l-150 -695q-18 -89 -18 -139q0 -143 147 -143q88 0 173 60t150 172t99 270l100 475h166l-231 -1096h-139l22 203h-12q-98 -125 -187 -174t-184 -49q-128 0 -201 69.5t-73 198.5q0 62 22 172l146 676h170zM1024 1241h-103q-57 48 -161 189 q-134 -119 -242 -189h-109v27q145 133 204.5 197.5t82.5 103.5h158q37 -99 128 -235l42 -66v-27z" />
+<glyph unicode="&#xfc;" horiz-adv-x="1182" d="M113 0zM451 1096l-150 -695q-18 -89 -18 -139q0 -143 147 -143q88 0 173 60t150 172t99 270l100 475h166l-231 -1096h-139l22 203h-12q-98 -125 -187 -174t-184 -49q-128 0 -201 69.5t-73 198.5q0 62 22 172l146 676h170zM457 1378q0 46 28 79.5t74 33.5q78 0 78 -80 q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62zM821 1378q0 46 28 79.5t75 33.5q77 0 77 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62z" />
+<glyph unicode="&#xfd;" horiz-adv-x="946" d="M0 0zM98 1096h168l74 -545q10 -69 19.5 -203.5t9.5 -216.5h6q35 87 87 200t77 156l325 609h178l-696 -1282q-93 -172 -184 -239t-219 -67q-72 0 -140 21v135q63 -18 131 -18q82 0 140.5 50.5t113.5 149.5l76 136zM500 1268q56 60 125.5 151.5t106.5 149.5h190v-21 q-38 -49 -140 -151t-177 -156h-105v27z" />
+<glyph unicode="&#xfe;" horiz-adv-x="1182" d="M545 -20q-98 0 -172 51t-113 139h-10q-8 -104 -25 -176l-102 -486h-166l432 2048h168q-95 -441 -115 -522t-39 -149h9q101 125 189 177t183 52q139 0 218 -97.5t79 -273.5q0 -212 -69 -389t-191 -275.5t-276 -98.5zM731 975q-96 0 -195.5 -95t-158 -239t-58.5 -295 q0 -110 55.5 -168.5t160.5 -58.5q99 0 184.5 81t137.5 230.5t52 317.5q0 227 -178 227z" />
+<glyph unicode="&#xff;" horiz-adv-x="946" d="M0 0zM98 1096h168l74 -545q10 -69 19.5 -203.5t9.5 -216.5h6q35 87 87 200t77 156l325 609h178l-696 -1282q-93 -172 -184 -239t-219 -67q-72 0 -140 21v135q63 -18 131 -18q82 0 140.5 50.5t113.5 149.5l76 136zM335 1378q0 46 28 79.5t74 33.5q78 0 78 -80 q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62zM699 1378q0 46 28 79.5t75 33.5q77 0 77 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62z" />
+<glyph unicode="&#x131;" horiz-adv-x="520" d="M227 0h-168l234 1096h168z" />
+<glyph unicode="&#x152;" horiz-adv-x="1751" d="M1524 0h-674q-78 -20 -158 -20q-256 0 -399 149.5t-143 419.5q0 264 96 482t263.5 336t377.5 118q152 0 237 -23h709l-31 -153h-565l-100 -469h528l-31 -150h-528l-115 -538h565zM696 131q69 0 123 19l246 1161q-76 22 -191 22q-157 0 -281 -101t-192.5 -281t-68.5 -398 q0 -199 98 -310.5t266 -111.5z" />
+<glyph unicode="&#x153;" horiz-adv-x="1769" d="M1251 -20q-270 0 -356 225q-69 -107 -171.5 -164t-225.5 -57q-184 0 -292 114t-108 308q0 193 75 360t201 255.5t281 88.5q270 0 359 -225q75 109 177.5 170t221.5 61q139 0 217 -65.5t78 -186.5q0 -183 -164.5 -284t-468.5 -101h-41l-4 -80q0 -131 61.5 -204.5 t190.5 -73.5q75 0 145 24.5t150 59.5v-150q-162 -75 -326 -75zM649 969q-109 0 -196 -73t-135 -202t-48 -284q0 -141 62 -214t172 -73q177 0 278 160.5t101 427.5q0 124 -59.5 191t-174.5 67zM1413 973q-125 0 -220.5 -94.5t-139.5 -260.5h18q231 0 351 61t120 177 q0 48 -32 82.5t-97 34.5z" />
+<glyph unicode="&#x178;" horiz-adv-x="1030" d="M188 0zM537 715l489 747h193l-627 -921l-113 -541h-172l119 549l-238 913h170zM452 1716q0 46 28 79.5t74 33.5q78 0 78 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62zM816 1716q0 46 28 79.5t75 33.5q77 0 77 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22 t-23.5 62z" />
+<glyph unicode="&#x2c6;" horiz-adv-x="1135" d="M1014 1241h-103q-57 48 -161 189q-134 -119 -242 -189h-109v27q145 133 204.5 197.5t82.5 103.5h158q37 -99 128 -235l42 -66v-27z" />
+<glyph unicode="&#x2da;" horiz-adv-x="1182" d="M989 1456q0 -99 -60 -157t-159 -58q-101 0 -160 57.5t-59 155.5q0 94 62 152.5t157 58.5q101 0 160 -57t59 -152zM885 1454q0 53 -32 84t-83 31q-49 0 -82 -31t-33 -84q0 -54 29.5 -84.5t85.5 -30.5q51 0 83 30.5t32 84.5z" />
+<glyph unicode="&#x2dc;" horiz-adv-x="1135" d="M838 1243q-40 0 -77.5 17.5t-73 39t-69 39t-65.5 17.5q-44 0 -69.5 -28.5t-47.5 -86.5h-100q58 258 231 258q44 0 83.5 -18t75 -39.5t66.5 -39.5t58 -18q44 0 69.5 27t51.5 90h100q-66 -258 -233 -258z" />
+<glyph unicode="&#x2000;" horiz-adv-x="953" />
+<glyph unicode="&#x2001;" horiz-adv-x="1907" />
+<glyph unicode="&#x2002;" horiz-adv-x="953" />
+<glyph unicode="&#x2003;" horiz-adv-x="1907" />
+<glyph unicode="&#x2004;" horiz-adv-x="635" />
+<glyph unicode="&#x2005;" horiz-adv-x="476" />
+<glyph unicode="&#x2006;" horiz-adv-x="317" />
+<glyph unicode="&#x2007;" horiz-adv-x="317" />
+<glyph unicode="&#x2008;" horiz-adv-x="238" />
+<glyph unicode="&#x2009;" horiz-adv-x="381" />
+<glyph unicode="&#x200a;" horiz-adv-x="105" />
+<glyph unicode="&#x2010;" horiz-adv-x="639" d="M55 469l35 158h479l-34 -158h-480z" />
+<glyph unicode="&#x2011;" horiz-adv-x="639" d="M55 469l35 158h479l-34 -158h-480z" />
+<glyph unicode="&#x2012;" horiz-adv-x="639" d="M55 469l35 158h479l-34 -158h-480z" />
+<glyph unicode="&#x2013;" horiz-adv-x="983" d="M55 469l35 160h823l-34 -160h-824z" />
+<glyph unicode="&#x2014;" horiz-adv-x="1966" d="M55 469l35 160h1806l-34 -160h-1807z" />
+<glyph unicode="&#x2018;" horiz-adv-x="348" d="M129 961l-6 22q98 211 270 479h127q-147 -345 -203 -501h-188z" />
+<glyph unicode="&#x2019;" horiz-adv-x="348" d="M516 1462l8 -22q-40 -91 -111 -218.5t-159 -260.5h-129q134 298 203 501h188z" />
+<glyph unicode="&#x201a;" horiz-adv-x="492" d="M291 238l8 -23q-113 -235 -270 -479h-129q126 286 204 502h187z" />
+<glyph unicode="&#x201c;" horiz-adv-x="719" d="M500 961l-8 22q80 181 272 479h127q-162 -379 -203 -501h-188zM129 961l-6 22q98 211 270 479h127q-147 -345 -203 -501h-188z" />
+<glyph unicode="&#x201d;" horiz-adv-x="719" d="M516 1462l8 -22q-40 -91 -111 -218.5t-159 -260.5h-129q134 298 203 501h188zM885 1462l10 -22q-94 -206 -274 -479h-127q57 126 115.5 272.5t86.5 228.5h189z" />
+<glyph unicode="&#x201e;" horiz-adv-x="858" d="M291 238l8 -23q-113 -235 -270 -479h-129q126 286 204 502h187zM659 238l9 -23q-95 -205 -271 -479h-129q140 316 203 502h188z" />
+<glyph unicode="&#x2022;" horiz-adv-x="774" d="M199 684q0 145 73.5 231t198.5 86q92 0 139 -49t47 -141q0 -141 -74 -230t-202 -89q-89 0 -135.5 49.5t-46.5 142.5z" />
+<glyph unicode="&#x2026;" horiz-adv-x="1563" d="M43 0zM563 74q0 77 40.5 122.5t111.5 45.5q43 0 69.5 -26t26.5 -79q0 -71 -40 -118.5t-108 -47.5q-46 0 -73 26t-27 77zM1085 74q0 77 40.5 122.5t111.5 45.5q43 0 69.5 -26t26.5 -79q0 -71 -40 -118.5t-108 -47.5q-46 0 -73 26t-27 77zM43 74q0 77 40.5 122.5 t111.5 45.5q43 0 69.5 -26t26.5 -79q0 -71 -40 -118.5t-108 -47.5q-46 0 -73 26t-27 77z" />
+<glyph unicode="&#x202f;" horiz-adv-x="381" />
+<glyph unicode="&#x2039;" horiz-adv-x="580" d="M88 578l391 380l78 -81l-297 -334l172 -381l-113 -49l-231 436v29z" />
+<glyph unicode="&#x203a;" horiz-adv-x="580" d="M492 496l-392 -381l-77 82l296 333l-172 381l113 50l232 -437v-28z" />
+<glyph unicode="&#x2044;" horiz-adv-x="268" d="M752 1462l-1086 -1462h-153l1085 1462h154z" />
+<glyph unicode="&#x205f;" horiz-adv-x="476" />
+<glyph unicode="&#x2074;" horiz-adv-x="717" d="M713 788h-129l-43 -202h-127l43 202h-365l23 101l481 579h133l-121 -563h127zM481 905q69 322 90 395q-20 -36 -110 -149l-205 -246h225z" />
+<glyph unicode="&#x20ac;" d="M928 1329q-140 0 -254 -99t-189 -298h426l-26 -133h-441q-21 -65 -32 -164h381l-29 -131h-361q0 -373 297 -373q123 0 256 55v-147q-127 -59 -278 -59q-212 0 -328.5 133.5t-116.5 378.5v12h-170l27 131h154q8 80 30 164h-151l27 133h159q97 267 259.5 408t369.5 141 q89 0 160 -21.5t141 -70.5l-80 -138q-113 78 -231 78z" />
+<glyph unicode="&#x2122;" horiz-adv-x="1534" d="M438 741h-121v617h-196v104h516v-104h-199v-617zM1014 741l-189 551h-6q4 -52 4 -121v-430h-118v721h180l182 -557l193 557h170v-721h-121v430q0 73 4 121h-6l-197 -551h-96z" />
+<glyph unicode="&#xe000;" horiz-adv-x="1095" d="M0 1095h1095v-1095h-1095v1095z" />
+<glyph horiz-adv-x="1182" d="M0 0z" />
+<hkern u1="&#x22;" u2="&#x178;" k="-20" />
+<hkern u1="&#x22;" u2="&#x153;" k="123" />
+<hkern u1="&#x22;" u2="&#xfc;" k="61" />
+<hkern u1="&#x22;" u2="&#xfb;" k="61" />
+<hkern u1="&#x22;" u2="&#xfa;" k="61" />
+<hkern u1="&#x22;" u2="&#xf9;" k="61" />
+<hkern u1="&#x22;" u2="&#xf8;" k="123" />
+<hkern u1="&#x22;" u2="&#xf6;" k="123" />
+<hkern u1="&#x22;" u2="&#xf5;" k="123" />
+<hkern u1="&#x22;" u2="&#xf4;" k="123" />
+<hkern u1="&#x22;" u2="&#xf3;" k="123" />
+<hkern u1="&#x22;" u2="&#xf2;" k="123" />
+<hkern u1="&#x22;" u2="&#xeb;" k="123" />
+<hkern u1="&#x22;" u2="&#xea;" k="123" />
+<hkern u1="&#x22;" u2="&#xe9;" k="123" />
+<hkern u1="&#x22;" u2="&#xe8;" k="123" />
+<hkern u1="&#x22;" u2="&#xe7;" k="123" />
+<hkern u1="&#x22;" u2="&#xe6;" k="82" />
+<hkern u1="&#x22;" u2="&#xe5;" k="82" />
+<hkern u1="&#x22;" u2="&#xe4;" k="82" />
+<hkern u1="&#x22;" u2="&#xe3;" k="82" />
+<hkern u1="&#x22;" u2="&#xe2;" k="82" />
+<hkern u1="&#x22;" u2="&#xe1;" k="82" />
+<hkern u1="&#x22;" u2="&#xe0;" k="123" />
+<hkern u1="&#x22;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x22;" u2="&#xc5;" k="143" />
+<hkern u1="&#x22;" u2="&#xc4;" k="143" />
+<hkern u1="&#x22;" u2="&#xc3;" k="143" />
+<hkern u1="&#x22;" u2="&#xc2;" k="143" />
+<hkern u1="&#x22;" u2="&#xc1;" k="143" />
+<hkern u1="&#x22;" u2="&#xc0;" k="143" />
+<hkern u1="&#x22;" u2="u" k="61" />
+<hkern u1="&#x22;" u2="s" k="61" />
+<hkern u1="&#x22;" u2="r" k="61" />
+<hkern u1="&#x22;" u2="q" k="123" />
+<hkern u1="&#x22;" u2="p" k="61" />
+<hkern u1="&#x22;" u2="o" k="123" />
+<hkern u1="&#x22;" u2="n" k="61" />
+<hkern u1="&#x22;" u2="m" k="61" />
+<hkern u1="&#x22;" u2="g" k="61" />
+<hkern u1="&#x22;" u2="e" k="123" />
+<hkern u1="&#x22;" u2="d" k="123" />
+<hkern u1="&#x22;" u2="c" k="123" />
+<hkern u1="&#x22;" u2="a" k="82" />
+<hkern u1="&#x22;" u2="Y" k="-20" />
+<hkern u1="&#x22;" u2="W" k="-41" />
+<hkern u1="&#x22;" u2="V" k="-41" />
+<hkern u1="&#x22;" u2="T" k="-41" />
+<hkern u1="&#x22;" u2="A" k="143" />
+<hkern u1="&#x27;" u2="&#x178;" k="-20" />
+<hkern u1="&#x27;" u2="&#x153;" k="123" />
+<hkern u1="&#x27;" u2="&#xfc;" k="61" />
+<hkern u1="&#x27;" u2="&#xfb;" k="61" />
+<hkern u1="&#x27;" u2="&#xfa;" k="61" />
+<hkern u1="&#x27;" u2="&#xf9;" k="61" />
+<hkern u1="&#x27;" u2="&#xf8;" k="123" />
+<hkern u1="&#x27;" u2="&#xf6;" k="123" />
+<hkern u1="&#x27;" u2="&#xf5;" k="123" />
+<hkern u1="&#x27;" u2="&#xf4;" k="123" />
+<hkern u1="&#x27;" u2="&#xf3;" k="123" />
+<hkern u1="&#x27;" u2="&#xf2;" k="123" />
+<hkern u1="&#x27;" u2="&#xeb;" k="123" />
+<hkern u1="&#x27;" u2="&#xea;" k="123" />
+<hkern u1="&#x27;" u2="&#xe9;" k="123" />
+<hkern u1="&#x27;" u2="&#xe8;" k="123" />
+<hkern u1="&#x27;" u2="&#xe7;" k="123" />
+<hkern u1="&#x27;" u2="&#xe6;" k="82" />
+<hkern u1="&#x27;" u2="&#xe5;" k="82" />
+<hkern u1="&#x27;" u2="&#xe4;" k="82" />
+<hkern u1="&#x27;" u2="&#xe3;" k="82" />
+<hkern u1="&#x27;" u2="&#xe2;" k="82" />
+<hkern u1="&#x27;" u2="&#xe1;" k="82" />
+<hkern u1="&#x27;" u2="&#xe0;" k="123" />
+<hkern u1="&#x27;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x27;" u2="&#xc5;" k="143" />
+<hkern u1="&#x27;" u2="&#xc4;" k="143" />
+<hkern u1="&#x27;" u2="&#xc3;" k="143" />
+<hkern u1="&#x27;" u2="&#xc2;" k="143" />
+<hkern u1="&#x27;" u2="&#xc1;" k="143" />
+<hkern u1="&#x27;" u2="&#xc0;" k="143" />
+<hkern u1="&#x27;" u2="u" k="61" />
+<hkern u1="&#x27;" u2="s" k="61" />
+<hkern u1="&#x27;" u2="r" k="61" />
+<hkern u1="&#x27;" u2="q" k="123" />
+<hkern u1="&#x27;" u2="p" k="61" />
+<hkern u1="&#x27;" u2="o" k="123" />
+<hkern u1="&#x27;" u2="n" k="61" />
+<hkern u1="&#x27;" u2="m" k="61" />
+<hkern u1="&#x27;" u2="g" k="61" />
+<hkern u1="&#x27;" u2="e" k="123" />
+<hkern u1="&#x27;" u2="d" k="123" />
+<hkern u1="&#x27;" u2="c" k="123" />
+<hkern u1="&#x27;" u2="a" k="82" />
+<hkern u1="&#x27;" u2="Y" k="-20" />
+<hkern u1="&#x27;" u2="W" k="-41" />
+<hkern u1="&#x27;" u2="V" k="-41" />
+<hkern u1="&#x27;" u2="T" k="-41" />
+<hkern u1="&#x27;" u2="A" k="143" />
+<hkern u1="&#x28;" u2="J" k="-184" />
+<hkern u1="&#x2c;" u2="&#x178;" k="123" />
+<hkern u1="&#x2c;" u2="&#x152;" k="102" />
+<hkern u1="&#x2c;" u2="&#xdd;" k="123" />
+<hkern u1="&#x2c;" u2="&#xdc;" k="41" />
+<hkern u1="&#x2c;" u2="&#xdb;" k="41" />
+<hkern u1="&#x2c;" u2="&#xda;" k="41" />
+<hkern u1="&#x2c;" u2="&#xd9;" k="41" />
+<hkern u1="&#x2c;" u2="&#xd8;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd6;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd5;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd4;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd3;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd2;" k="102" />
+<hkern u1="&#x2c;" u2="&#xc7;" k="102" />
+<hkern u1="&#x2c;" u2="Y" k="123" />
+<hkern u1="&#x2c;" u2="W" k="123" />
+<hkern u1="&#x2c;" u2="V" k="123" />
+<hkern u1="&#x2c;" u2="U" k="41" />
+<hkern u1="&#x2c;" u2="T" k="143" />
+<hkern u1="&#x2c;" u2="Q" k="102" />
+<hkern u1="&#x2c;" u2="O" k="102" />
+<hkern u1="&#x2c;" u2="G" k="102" />
+<hkern u1="&#x2c;" u2="C" k="102" />
+<hkern u1="&#x2d;" u2="T" k="82" />
+<hkern u1="&#x2e;" u2="&#x178;" k="123" />
+<hkern u1="&#x2e;" u2="&#x152;" k="102" />
+<hkern u1="&#x2e;" u2="&#xdd;" k="123" />
+<hkern u1="&#x2e;" u2="&#xdc;" k="41" />
+<hkern u1="&#x2e;" u2="&#xdb;" k="41" />
+<hkern u1="&#x2e;" u2="&#xda;" k="41" />
+<hkern u1="&#x2e;" u2="&#xd9;" k="41" />
+<hkern u1="&#x2e;" u2="&#xd8;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd6;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd5;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd4;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd3;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd2;" k="102" />
+<hkern u1="&#x2e;" u2="&#xc7;" k="102" />
+<hkern u1="&#x2e;" u2="Y" k="123" />
+<hkern u1="&#x2e;" u2="W" k="123" />
+<hkern u1="&#x2e;" u2="V" k="123" />
+<hkern u1="&#x2e;" u2="U" k="41" />
+<hkern u1="&#x2e;" u2="T" k="143" />
+<hkern u1="&#x2e;" u2="Q" k="102" />
+<hkern u1="&#x2e;" u2="O" k="102" />
+<hkern u1="&#x2e;" u2="G" k="102" />
+<hkern u1="&#x2e;" u2="C" k="102" />
+<hkern u1="A" u2="&#x201d;" k="143" />
+<hkern u1="A" u2="&#x2019;" k="143" />
+<hkern u1="A" u2="&#x178;" k="123" />
+<hkern u1="A" u2="&#x152;" k="41" />
+<hkern u1="A" u2="&#xdd;" k="123" />
+<hkern u1="A" u2="&#xd8;" k="41" />
+<hkern u1="A" u2="&#xd6;" k="41" />
+<hkern u1="A" u2="&#xd5;" k="41" />
+<hkern u1="A" u2="&#xd4;" k="41" />
+<hkern u1="A" u2="&#xd3;" k="41" />
+<hkern u1="A" u2="&#xd2;" k="41" />
+<hkern u1="A" u2="&#xc7;" k="41" />
+<hkern u1="A" u2="Y" k="123" />
+<hkern u1="A" u2="W" k="82" />
+<hkern u1="A" u2="V" k="82" />
+<hkern u1="A" u2="T" k="143" />
+<hkern u1="A" u2="Q" k="41" />
+<hkern u1="A" u2="O" k="41" />
+<hkern u1="A" u2="J" k="-266" />
+<hkern u1="A" u2="G" k="41" />
+<hkern u1="A" u2="C" k="41" />
+<hkern u1="A" u2="&#x27;" k="143" />
+<hkern u1="A" u2="&#x22;" k="143" />
+<hkern u1="B" u2="&#x201e;" k="82" />
+<hkern u1="B" u2="&#x201a;" k="82" />
+<hkern u1="B" u2="&#x178;" k="20" />
+<hkern u1="B" u2="&#xdd;" k="20" />
+<hkern u1="B" u2="&#xc5;" k="41" />
+<hkern u1="B" u2="&#xc4;" k="41" />
+<hkern u1="B" u2="&#xc3;" k="41" />
+<hkern u1="B" u2="&#xc2;" k="41" />
+<hkern u1="B" u2="&#xc1;" k="41" />
+<hkern u1="B" u2="&#xc0;" k="41" />
+<hkern u1="B" u2="Z" k="20" />
+<hkern u1="B" u2="Y" k="20" />
+<hkern u1="B" u2="X" k="41" />
+<hkern u1="B" u2="W" k="20" />
+<hkern u1="B" u2="V" k="20" />
+<hkern u1="B" u2="T" k="61" />
+<hkern u1="B" u2="A" k="41" />
+<hkern u1="B" u2="&#x2e;" k="82" />
+<hkern u1="B" u2="&#x2c;" k="82" />
+<hkern u1="C" u2="&#x152;" k="41" />
+<hkern u1="C" u2="&#xd8;" k="41" />
+<hkern u1="C" u2="&#xd6;" k="41" />
+<hkern u1="C" u2="&#xd5;" k="41" />
+<hkern u1="C" u2="&#xd4;" k="41" />
+<hkern u1="C" u2="&#xd3;" k="41" />
+<hkern u1="C" u2="&#xd2;" k="41" />
+<hkern u1="C" u2="&#xc7;" k="41" />
+<hkern u1="C" u2="Q" k="41" />
+<hkern u1="C" u2="O" k="41" />
+<hkern u1="C" u2="G" k="41" />
+<hkern u1="C" u2="C" k="41" />
+<hkern u1="D" u2="&#x201e;" k="82" />
+<hkern u1="D" u2="&#x201a;" k="82" />
+<hkern u1="D" u2="&#x178;" k="20" />
+<hkern u1="D" u2="&#xdd;" k="20" />
+<hkern u1="D" u2="&#xc5;" k="41" />
+<hkern u1="D" u2="&#xc4;" k="41" />
+<hkern u1="D" u2="&#xc3;" k="41" />
+<hkern u1="D" u2="&#xc2;" k="41" />
+<hkern u1="D" u2="&#xc1;" k="41" />
+<hkern u1="D" u2="&#xc0;" k="41" />
+<hkern u1="D" u2="Z" k="20" />
+<hkern u1="D" u2="Y" k="20" />
+<hkern u1="D" u2="X" k="41" />
+<hkern u1="D" u2="W" k="20" />
+<hkern u1="D" u2="V" k="20" />
+<hkern u1="D" u2="T" k="61" />
+<hkern u1="D" u2="A" k="41" />
+<hkern u1="D" u2="&#x2e;" k="82" />
+<hkern u1="D" u2="&#x2c;" k="82" />
+<hkern u1="E" u2="J" k="-123" />
+<hkern u1="F" u2="&#x201e;" k="123" />
+<hkern u1="F" u2="&#x201a;" k="123" />
+<hkern u1="F" u2="&#xc5;" k="41" />
+<hkern u1="F" u2="&#xc4;" k="41" />
+<hkern u1="F" u2="&#xc3;" k="41" />
+<hkern u1="F" u2="&#xc2;" k="41" />
+<hkern u1="F" u2="&#xc1;" k="41" />
+<hkern u1="F" u2="&#xc0;" k="41" />
+<hkern u1="F" u2="A" k="41" />
+<hkern u1="F" u2="&#x3f;" k="-41" />
+<hkern u1="F" u2="&#x2e;" k="123" />
+<hkern u1="F" u2="&#x2c;" k="123" />
+<hkern u1="K" u2="&#x152;" k="41" />
+<hkern u1="K" u2="&#xd8;" k="41" />
+<hkern u1="K" u2="&#xd6;" k="41" />
+<hkern u1="K" u2="&#xd5;" k="41" />
+<hkern u1="K" u2="&#xd4;" k="41" />
+<hkern u1="K" u2="&#xd3;" k="41" />
+<hkern u1="K" u2="&#xd2;" k="41" />
+<hkern u1="K" u2="&#xc7;" k="41" />
+<hkern u1="K" u2="Q" k="41" />
+<hkern u1="K" u2="O" k="41" />
+<hkern u1="K" u2="G" k="41" />
+<hkern u1="K" u2="C" k="41" />
+<hkern u1="L" u2="&#x201d;" k="164" />
+<hkern u1="L" u2="&#x2019;" k="164" />
+<hkern u1="L" u2="&#x178;" k="61" />
+<hkern u1="L" u2="&#x152;" k="41" />
+<hkern u1="L" u2="&#xdd;" k="61" />
+<hkern u1="L" u2="&#xdc;" k="20" />
+<hkern u1="L" u2="&#xdb;" k="20" />
+<hkern u1="L" u2="&#xda;" k="20" />
+<hkern u1="L" u2="&#xd9;" k="20" />
+<hkern u1="L" u2="&#xd8;" k="41" />
+<hkern u1="L" u2="&#xd6;" k="41" />
+<hkern u1="L" u2="&#xd5;" k="41" />
+<hkern u1="L" u2="&#xd4;" k="41" />
+<hkern u1="L" u2="&#xd3;" k="41" />
+<hkern u1="L" u2="&#xd2;" k="41" />
+<hkern u1="L" u2="&#xc7;" k="41" />
+<hkern u1="L" u2="Y" k="61" />
+<hkern u1="L" u2="W" k="41" />
+<hkern u1="L" u2="V" k="41" />
+<hkern u1="L" u2="U" k="20" />
+<hkern u1="L" u2="T" k="41" />
+<hkern u1="L" u2="Q" k="41" />
+<hkern u1="L" u2="O" k="41" />
+<hkern u1="L" u2="G" k="41" />
+<hkern u1="L" u2="C" k="41" />
+<hkern u1="L" u2="&#x27;" k="164" />
+<hkern u1="L" u2="&#x22;" k="164" />
+<hkern u1="O" u2="&#x201e;" k="82" />
+<hkern u1="O" u2="&#x201a;" k="82" />
+<hkern u1="O" u2="&#x178;" k="20" />
+<hkern u1="O" u2="&#xdd;" k="20" />
+<hkern u1="O" u2="&#xc5;" k="41" />
+<hkern u1="O" u2="&#xc4;" k="41" />
+<hkern u1="O" u2="&#xc3;" k="41" />
+<hkern u1="O" u2="&#xc2;" k="41" />
+<hkern u1="O" u2="&#xc1;" k="41" />
+<hkern u1="O" u2="&#xc0;" k="41" />
+<hkern u1="O" u2="Z" k="20" />
+<hkern u1="O" u2="Y" k="20" />
+<hkern u1="O" u2="X" k="41" />
+<hkern u1="O" u2="W" k="20" />
+<hkern u1="O" u2="V" k="20" />
+<hkern u1="O" u2="T" k="61" />
+<hkern u1="O" u2="A" k="41" />
+<hkern u1="O" u2="&#x2e;" k="82" />
+<hkern u1="O" u2="&#x2c;" k="82" />
+<hkern u1="P" u2="&#x201e;" k="266" />
+<hkern u1="P" u2="&#x201a;" k="266" />
+<hkern u1="P" u2="&#xc5;" k="102" />
+<hkern u1="P" u2="&#xc4;" k="102" />
+<hkern u1="P" u2="&#xc3;" k="102" />
+<hkern u1="P" u2="&#xc2;" k="102" />
+<hkern u1="P" u2="&#xc1;" k="102" />
+<hkern u1="P" u2="&#xc0;" k="102" />
+<hkern u1="P" u2="Z" k="20" />
+<hkern u1="P" u2="X" k="41" />
+<hkern u1="P" u2="A" k="102" />
+<hkern u1="P" u2="&#x2e;" k="266" />
+<hkern u1="P" u2="&#x2c;" k="266" />
+<hkern u1="Q" u2="&#x201e;" k="82" />
+<hkern u1="Q" u2="&#x201a;" k="82" />
+<hkern u1="Q" u2="&#x178;" k="20" />
+<hkern u1="Q" u2="&#xdd;" k="20" />
+<hkern u1="Q" u2="&#xc5;" k="41" />
+<hkern u1="Q" u2="&#xc4;" k="41" />
+<hkern u1="Q" u2="&#xc3;" k="41" />
+<hkern u1="Q" u2="&#xc2;" k="41" />
+<hkern u1="Q" u2="&#xc1;" k="41" />
+<hkern u1="Q" u2="&#xc0;" k="41" />
+<hkern u1="Q" u2="Z" k="20" />
+<hkern u1="Q" u2="Y" k="20" />
+<hkern u1="Q" u2="X" k="41" />
+<hkern u1="Q" u2="W" k="20" />
+<hkern u1="Q" u2="V" k="20" />
+<hkern u1="Q" u2="T" k="61" />
+<hkern u1="Q" u2="A" k="41" />
+<hkern u1="Q" u2="&#x2e;" k="82" />
+<hkern u1="Q" u2="&#x2c;" k="82" />
+<hkern u1="T" u2="&#x201e;" k="123" />
+<hkern u1="T" u2="&#x201a;" k="123" />
+<hkern u1="T" u2="&#x2014;" k="82" />
+<hkern u1="T" u2="&#x2013;" k="82" />
+<hkern u1="T" u2="&#x153;" k="143" />
+<hkern u1="T" u2="&#x152;" k="41" />
+<hkern u1="T" u2="&#xfd;" k="41" />
+<hkern u1="T" u2="&#xfc;" k="102" />
+<hkern u1="T" u2="&#xfb;" k="102" />
+<hkern u1="T" u2="&#xfa;" k="102" />
+<hkern u1="T" u2="&#xf9;" k="102" />
+<hkern u1="T" u2="&#xf8;" k="143" />
+<hkern u1="T" u2="&#xf6;" k="143" />
+<hkern u1="T" u2="&#xf5;" k="143" />
+<hkern u1="T" u2="&#xf4;" k="143" />
+<hkern u1="T" u2="&#xf3;" k="143" />
+<hkern u1="T" u2="&#xf2;" k="143" />
+<hkern u1="T" u2="&#xeb;" k="143" />
+<hkern u1="T" u2="&#xea;" k="143" />
+<hkern u1="T" u2="&#xe9;" k="143" />
+<hkern u1="T" u2="&#xe8;" k="143" />
+<hkern u1="T" u2="&#xe7;" k="143" />
+<hkern u1="T" u2="&#xe6;" k="164" />
+<hkern u1="T" u2="&#xe5;" k="164" />
+<hkern u1="T" u2="&#xe4;" k="164" />
+<hkern u1="T" u2="&#xe3;" k="164" />
+<hkern u1="T" u2="&#xe2;" k="164" />
+<hkern u1="T" u2="&#xe1;" k="164" />
+<hkern u1="T" u2="&#xe0;" k="143" />
+<hkern u1="T" u2="&#xd8;" k="41" />
+<hkern u1="T" u2="&#xd6;" k="41" />
+<hkern u1="T" u2="&#xd5;" k="41" />
+<hkern u1="T" u2="&#xd4;" k="41" />
+<hkern u1="T" u2="&#xd3;" k="41" />
+<hkern u1="T" u2="&#xd2;" k="41" />
+<hkern u1="T" u2="&#xc7;" k="41" />
+<hkern u1="T" u2="&#xc5;" k="143" />
+<hkern u1="T" u2="&#xc4;" k="143" />
+<hkern u1="T" u2="&#xc3;" k="143" />
+<hkern u1="T" u2="&#xc2;" k="143" />
+<hkern u1="T" u2="&#xc1;" k="143" />
+<hkern u1="T" u2="&#xc0;" k="143" />
+<hkern u1="T" u2="z" k="82" />
+<hkern u1="T" u2="y" k="41" />
+<hkern u1="T" u2="x" k="41" />
+<hkern u1="T" u2="w" k="41" />
+<hkern u1="T" u2="v" k="41" />
+<hkern u1="T" u2="u" k="102" />
+<hkern u1="T" u2="s" k="123" />
+<hkern u1="T" u2="r" k="102" />
+<hkern u1="T" u2="q" k="143" />
+<hkern u1="T" u2="p" k="102" />
+<hkern u1="T" u2="o" k="143" />
+<hkern u1="T" u2="n" k="102" />
+<hkern u1="T" u2="m" k="102" />
+<hkern u1="T" u2="g" k="143" />
+<hkern u1="T" u2="e" k="143" />
+<hkern u1="T" u2="d" k="143" />
+<hkern u1="T" u2="c" k="143" />
+<hkern u1="T" u2="a" k="164" />
+<hkern u1="T" u2="T" k="-41" />
+<hkern u1="T" u2="Q" k="41" />
+<hkern u1="T" u2="O" k="41" />
+<hkern u1="T" u2="G" k="41" />
+<hkern u1="T" u2="C" k="41" />
+<hkern u1="T" u2="A" k="143" />
+<hkern u1="T" u2="&#x3f;" k="-41" />
+<hkern u1="T" u2="&#x2e;" k="123" />
+<hkern u1="T" u2="&#x2d;" k="82" />
+<hkern u1="T" u2="&#x2c;" k="123" />
+<hkern u1="U" u2="&#x201e;" k="41" />
+<hkern u1="U" u2="&#x201a;" k="41" />
+<hkern u1="U" u2="&#xc5;" k="20" />
+<hkern u1="U" u2="&#xc4;" k="20" />
+<hkern u1="U" u2="&#xc3;" k="20" />
+<hkern u1="U" u2="&#xc2;" k="20" />
+<hkern u1="U" u2="&#xc1;" k="20" />
+<hkern u1="U" u2="&#xc0;" k="20" />
+<hkern u1="U" u2="A" k="20" />
+<hkern u1="U" u2="&#x2e;" k="41" />
+<hkern u1="U" u2="&#x2c;" k="41" />
+<hkern u1="V" u2="&#x201e;" k="102" />
+<hkern u1="V" u2="&#x201a;" k="102" />
+<hkern u1="V" u2="&#x153;" k="41" />
+<hkern u1="V" u2="&#x152;" k="20" />
+<hkern u1="V" u2="&#xfc;" k="20" />
+<hkern u1="V" u2="&#xfb;" k="20" />
+<hkern u1="V" u2="&#xfa;" k="20" />
+<hkern u1="V" u2="&#xf9;" k="20" />
+<hkern u1="V" u2="&#xf8;" k="41" />
+<hkern u1="V" u2="&#xf6;" k="41" />
+<hkern u1="V" u2="&#xf5;" k="41" />
+<hkern u1="V" u2="&#xf4;" k="41" />
+<hkern u1="V" u2="&#xf3;" k="41" />
+<hkern u1="V" u2="&#xf2;" k="41" />
+<hkern u1="V" u2="&#xeb;" k="41" />
+<hkern u1="V" u2="&#xea;" k="41" />
+<hkern u1="V" u2="&#xe9;" k="41" />
+<hkern u1="V" u2="&#xe8;" k="41" />
+<hkern u1="V" u2="&#xe7;" k="41" />
+<hkern u1="V" u2="&#xe6;" k="41" />
+<hkern u1="V" u2="&#xe5;" k="41" />
+<hkern u1="V" u2="&#xe4;" k="41" />
+<hkern u1="V" u2="&#xe3;" k="41" />
+<hkern u1="V" u2="&#xe2;" k="41" />
+<hkern u1="V" u2="&#xe1;" k="41" />
+<hkern u1="V" u2="&#xe0;" k="41" />
+<hkern u1="V" u2="&#xd8;" k="20" />
+<hkern u1="V" u2="&#xd6;" k="20" />
+<hkern u1="V" u2="&#xd5;" k="20" />
+<hkern u1="V" u2="&#xd4;" k="20" />
+<hkern u1="V" u2="&#xd3;" k="20" />
+<hkern u1="V" u2="&#xd2;" k="20" />
+<hkern u1="V" u2="&#xc7;" k="20" />
+<hkern u1="V" u2="&#xc5;" k="82" />
+<hkern u1="V" u2="&#xc4;" k="82" />
+<hkern u1="V" u2="&#xc3;" k="82" />
+<hkern u1="V" u2="&#xc2;" k="82" />
+<hkern u1="V" u2="&#xc1;" k="82" />
+<hkern u1="V" u2="&#xc0;" k="82" />
+<hkern u1="V" u2="u" k="20" />
+<hkern u1="V" u2="s" k="20" />
+<hkern u1="V" u2="r" k="20" />
+<hkern u1="V" u2="q" k="41" />
+<hkern u1="V" u2="p" k="20" />
+<hkern u1="V" u2="o" k="41" />
+<hkern u1="V" u2="n" k="20" />
+<hkern u1="V" u2="m" k="20" />
+<hkern u1="V" u2="g" k="20" />
+<hkern u1="V" u2="e" k="41" />
+<hkern u1="V" u2="d" k="41" />
+<hkern u1="V" u2="c" k="41" />
+<hkern u1="V" u2="a" k="41" />
+<hkern u1="V" u2="Q" k="20" />
+<hkern u1="V" u2="O" k="20" />
+<hkern u1="V" u2="G" k="20" />
+<hkern u1="V" u2="C" k="20" />
+<hkern u1="V" u2="A" k="82" />
+<hkern u1="V" u2="&#x3f;" k="-41" />
+<hkern u1="V" u2="&#x2e;" k="102" />
+<hkern u1="V" u2="&#x2c;" k="102" />
+<hkern u1="W" u2="&#x201e;" k="102" />
+<hkern u1="W" u2="&#x201a;" k="102" />
+<hkern u1="W" u2="&#x153;" k="41" />
+<hkern u1="W" u2="&#x152;" k="20" />
+<hkern u1="W" u2="&#xfc;" k="20" />
+<hkern u1="W" u2="&#xfb;" k="20" />
+<hkern u1="W" u2="&#xfa;" k="20" />
+<hkern u1="W" u2="&#xf9;" k="20" />
+<hkern u1="W" u2="&#xf8;" k="41" />
+<hkern u1="W" u2="&#xf6;" k="41" />
+<hkern u1="W" u2="&#xf5;" k="41" />
+<hkern u1="W" u2="&#xf4;" k="41" />
+<hkern u1="W" u2="&#xf3;" k="41" />
+<hkern u1="W" u2="&#xf2;" k="41" />
+<hkern u1="W" u2="&#xeb;" k="41" />
+<hkern u1="W" u2="&#xea;" k="41" />
+<hkern u1="W" u2="&#xe9;" k="41" />
+<hkern u1="W" u2="&#xe8;" k="41" />
+<hkern u1="W" u2="&#xe7;" k="41" />
+<hkern u1="W" u2="&#xe6;" k="41" />
+<hkern u1="W" u2="&#xe5;" k="41" />
+<hkern u1="W" u2="&#xe4;" k="41" />
+<hkern u1="W" u2="&#xe3;" k="41" />
+<hkern u1="W" u2="&#xe2;" k="41" />
+<hkern u1="W" u2="&#xe1;" k="41" />
+<hkern u1="W" u2="&#xe0;" k="41" />
+<hkern u1="W" u2="&#xd8;" k="20" />
+<hkern u1="W" u2="&#xd6;" k="20" />
+<hkern u1="W" u2="&#xd5;" k="20" />
+<hkern u1="W" u2="&#xd4;" k="20" />
+<hkern u1="W" u2="&#xd3;" k="20" />
+<hkern u1="W" u2="&#xd2;" k="20" />
+<hkern u1="W" u2="&#xc7;" k="20" />
+<hkern u1="W" u2="&#xc5;" k="82" />
+<hkern u1="W" u2="&#xc4;" k="82" />
+<hkern u1="W" u2="&#xc3;" k="82" />
+<hkern u1="W" u2="&#xc2;" k="82" />
+<hkern u1="W" u2="&#xc1;" k="82" />
+<hkern u1="W" u2="&#xc0;" k="82" />
+<hkern u1="W" u2="u" k="20" />
+<hkern u1="W" u2="s" k="20" />
+<hkern u1="W" u2="r" k="20" />
+<hkern u1="W" u2="q" k="41" />
+<hkern u1="W" u2="p" k="20" />
+<hkern u1="W" u2="o" k="41" />
+<hkern u1="W" u2="n" k="20" />
+<hkern u1="W" u2="m" k="20" />
+<hkern u1="W" u2="g" k="20" />
+<hkern u1="W" u2="e" k="41" />
+<hkern u1="W" u2="d" k="41" />
+<hkern u1="W" u2="c" k="41" />
+<hkern u1="W" u2="a" k="41" />
+<hkern u1="W" u2="Q" k="20" />
+<hkern u1="W" u2="O" k="20" />
+<hkern u1="W" u2="G" k="20" />
+<hkern u1="W" u2="C" k="20" />
+<hkern u1="W" u2="A" k="82" />
+<hkern u1="W" u2="&#x3f;" k="-41" />
+<hkern u1="W" u2="&#x2e;" k="102" />
+<hkern u1="W" u2="&#x2c;" k="102" />
+<hkern u1="X" u2="&#x152;" k="41" />
+<hkern u1="X" u2="&#xd8;" k="41" />
+<hkern u1="X" u2="&#xd6;" k="41" />
+<hkern u1="X" u2="&#xd5;" k="41" />
+<hkern u1="X" u2="&#xd4;" k="41" />
+<hkern u1="X" u2="&#xd3;" k="41" />
+<hkern u1="X" u2="&#xd2;" k="41" />
+<hkern u1="X" u2="&#xc7;" k="41" />
+<hkern u1="X" u2="Q" k="41" />
+<hkern u1="X" u2="O" k="41" />
+<hkern u1="X" u2="G" k="41" />
+<hkern u1="X" u2="C" k="41" />
+<hkern u1="Y" u2="&#x201e;" k="123" />
+<hkern u1="Y" u2="&#x201a;" k="123" />
+<hkern u1="Y" u2="&#x153;" k="102" />
+<hkern u1="Y" u2="&#x152;" k="41" />
+<hkern u1="Y" u2="&#xfc;" k="61" />
+<hkern u1="Y" u2="&#xfb;" k="61" />
+<hkern u1="Y" u2="&#xfa;" k="61" />
+<hkern u1="Y" u2="&#xf9;" k="61" />
+<hkern u1="Y" u2="&#xf8;" k="102" />
+<hkern u1="Y" u2="&#xf6;" k="102" />
+<hkern u1="Y" u2="&#xf5;" k="102" />
+<hkern u1="Y" u2="&#xf4;" k="102" />
+<hkern u1="Y" u2="&#xf3;" k="102" />
+<hkern u1="Y" u2="&#xf2;" k="102" />
+<hkern u1="Y" u2="&#xeb;" k="102" />
+<hkern u1="Y" u2="&#xea;" k="102" />
+<hkern u1="Y" u2="&#xe9;" k="102" />
+<hkern u1="Y" u2="&#xe8;" k="102" />
+<hkern u1="Y" u2="&#xe7;" k="102" />
+<hkern u1="Y" u2="&#xe6;" k="102" />
+<hkern u1="Y" u2="&#xe5;" k="102" />
+<hkern u1="Y" u2="&#xe4;" k="102" />
+<hkern u1="Y" u2="&#xe3;" k="102" />
+<hkern u1="Y" u2="&#xe2;" k="102" />
+<hkern u1="Y" u2="&#xe1;" k="102" />
+<hkern u1="Y" u2="&#xe0;" k="102" />
+<hkern u1="Y" u2="&#xd8;" k="41" />
+<hkern u1="Y" u2="&#xd6;" k="41" />
+<hkern u1="Y" u2="&#xd5;" k="41" />
+<hkern u1="Y" u2="&#xd4;" k="41" />
+<hkern u1="Y" u2="&#xd3;" k="41" />
+<hkern u1="Y" u2="&#xd2;" k="41" />
+<hkern u1="Y" u2="&#xc7;" k="41" />
+<hkern u1="Y" u2="&#xc5;" k="123" />
+<hkern u1="Y" u2="&#xc4;" k="123" />
+<hkern u1="Y" u2="&#xc3;" k="123" />
+<hkern u1="Y" u2="&#xc2;" k="123" />
+<hkern u1="Y" u2="&#xc1;" k="123" />
+<hkern u1="Y" u2="&#xc0;" k="123" />
+<hkern u1="Y" u2="z" k="41" />
+<hkern u1="Y" u2="u" k="61" />
+<hkern u1="Y" u2="s" k="82" />
+<hkern u1="Y" u2="r" k="61" />
+<hkern u1="Y" u2="q" k="102" />
+<hkern u1="Y" u2="p" k="61" />
+<hkern u1="Y" u2="o" k="102" />
+<hkern u1="Y" u2="n" k="61" />
+<hkern u1="Y" u2="m" k="61" />
+<hkern u1="Y" u2="g" k="41" />
+<hkern u1="Y" u2="e" k="102" />
+<hkern u1="Y" u2="d" k="102" />
+<hkern u1="Y" u2="c" k="102" />
+<hkern u1="Y" u2="a" k="102" />
+<hkern u1="Y" u2="Q" k="41" />
+<hkern u1="Y" u2="O" k="41" />
+<hkern u1="Y" u2="G" k="41" />
+<hkern u1="Y" u2="C" k="41" />
+<hkern u1="Y" u2="A" k="123" />
+<hkern u1="Y" u2="&#x3f;" k="-41" />
+<hkern u1="Y" u2="&#x2e;" k="123" />
+<hkern u1="Y" u2="&#x2c;" k="123" />
+<hkern u1="Z" u2="&#x152;" k="20" />
+<hkern u1="Z" u2="&#xd8;" k="20" />
+<hkern u1="Z" u2="&#xd6;" k="20" />
+<hkern u1="Z" u2="&#xd5;" k="20" />
+<hkern u1="Z" u2="&#xd4;" k="20" />
+<hkern u1="Z" u2="&#xd3;" k="20" />
+<hkern u1="Z" u2="&#xd2;" k="20" />
+<hkern u1="Z" u2="&#xc7;" k="20" />
+<hkern u1="Z" u2="Q" k="20" />
+<hkern u1="Z" u2="O" k="20" />
+<hkern u1="Z" u2="G" k="20" />
+<hkern u1="Z" u2="C" k="20" />
+<hkern u1="[" u2="J" k="-184" />
+<hkern u1="a" u2="&#x201d;" k="20" />
+<hkern u1="a" u2="&#x2019;" k="20" />
+<hkern u1="a" u2="&#x27;" k="20" />
+<hkern u1="a" u2="&#x22;" k="20" />
+<hkern u1="b" u2="&#x201d;" k="20" />
+<hkern u1="b" u2="&#x2019;" k="20" />
+<hkern u1="b" u2="&#xfd;" k="41" />
+<hkern u1="b" u2="z" k="20" />
+<hkern u1="b" u2="y" k="41" />
+<hkern u1="b" u2="x" k="41" />
+<hkern u1="b" u2="w" k="41" />
+<hkern u1="b" u2="v" k="41" />
+<hkern u1="b" u2="&#x27;" k="20" />
+<hkern u1="b" u2="&#x22;" k="20" />
+<hkern u1="c" u2="&#x201d;" k="-41" />
+<hkern u1="c" u2="&#x2019;" k="-41" />
+<hkern u1="c" u2="&#x27;" k="-41" />
+<hkern u1="c" u2="&#x22;" k="-41" />
+<hkern u1="e" u2="&#x201d;" k="20" />
+<hkern u1="e" u2="&#x2019;" k="20" />
+<hkern u1="e" u2="&#xfd;" k="41" />
+<hkern u1="e" u2="z" k="20" />
+<hkern u1="e" u2="y" k="41" />
+<hkern u1="e" u2="x" k="41" />
+<hkern u1="e" u2="w" k="41" />
+<hkern u1="e" u2="v" k="41" />
+<hkern u1="e" u2="&#x27;" k="20" />
+<hkern u1="e" u2="&#x22;" k="20" />
+<hkern u1="f" u2="&#x201d;" k="-123" />
+<hkern u1="f" u2="&#x2019;" k="-123" />
+<hkern u1="f" u2="&#x27;" k="-123" />
+<hkern u1="f" u2="&#x22;" k="-123" />
+<hkern u1="h" u2="&#x201d;" k="20" />
+<hkern u1="h" u2="&#x2019;" k="20" />
+<hkern u1="h" u2="&#x27;" k="20" />
+<hkern u1="h" u2="&#x22;" k="20" />
+<hkern u1="k" u2="&#x153;" k="41" />
+<hkern u1="k" u2="&#xf8;" k="41" />
+<hkern u1="k" u2="&#xf6;" k="41" />
+<hkern u1="k" u2="&#xf5;" k="41" />
+<hkern u1="k" u2="&#xf4;" k="41" />
+<hkern u1="k" u2="&#xf3;" k="41" />
+<hkern u1="k" u2="&#xf2;" k="41" />
+<hkern u1="k" u2="&#xeb;" k="41" />
+<hkern u1="k" u2="&#xea;" k="41" />
+<hkern u1="k" u2="&#xe9;" k="41" />
+<hkern u1="k" u2="&#xe8;" k="41" />
+<hkern u1="k" u2="&#xe7;" k="41" />
+<hkern u1="k" u2="&#xe0;" k="41" />
+<hkern u1="k" u2="q" k="41" />
+<hkern u1="k" u2="o" k="41" />
+<hkern u1="k" u2="e" k="41" />
+<hkern u1="k" u2="d" k="41" />
+<hkern u1="k" u2="c" k="41" />
+<hkern u1="m" u2="&#x201d;" k="20" />
+<hkern u1="m" u2="&#x2019;" k="20" />
+<hkern u1="m" u2="&#x27;" k="20" />
+<hkern u1="m" u2="&#x22;" k="20" />
+<hkern u1="n" u2="&#x201d;" k="20" />
+<hkern u1="n" u2="&#x2019;" k="20" />
+<hkern u1="n" u2="&#x27;" k="20" />
+<hkern u1="n" u2="&#x22;" k="20" />
+<hkern u1="o" u2="&#x201d;" k="20" />
+<hkern u1="o" u2="&#x2019;" k="20" />
+<hkern u1="o" u2="&#xfd;" k="41" />
+<hkern u1="o" u2="z" k="20" />
+<hkern u1="o" u2="y" k="41" />
+<hkern u1="o" u2="x" k="41" />
+<hkern u1="o" u2="w" k="41" />
+<hkern u1="o" u2="v" k="41" />
+<hkern u1="o" u2="&#x27;" k="20" />
+<hkern u1="o" u2="&#x22;" k="20" />
+<hkern u1="p" u2="&#x201d;" k="20" />
+<hkern u1="p" u2="&#x2019;" k="20" />
+<hkern u1="p" u2="&#xfd;" k="41" />
+<hkern u1="p" u2="z" k="20" />
+<hkern u1="p" u2="y" k="41" />
+<hkern u1="p" u2="x" k="41" />
+<hkern u1="p" u2="w" k="41" />
+<hkern u1="p" u2="v" k="41" />
+<hkern u1="p" u2="&#x27;" k="20" />
+<hkern u1="p" u2="&#x22;" k="20" />
+<hkern u1="r" u2="&#x201d;" k="-82" />
+<hkern u1="r" u2="&#x2019;" k="-82" />
+<hkern u1="r" u2="&#x153;" k="41" />
+<hkern u1="r" u2="&#xf8;" k="41" />
+<hkern u1="r" u2="&#xf6;" k="41" />
+<hkern u1="r" u2="&#xf5;" k="41" />
+<hkern u1="r" u2="&#xf4;" k="41" />
+<hkern u1="r" u2="&#xf3;" k="41" />
+<hkern u1="r" u2="&#xf2;" k="41" />
+<hkern u1="r" u2="&#xeb;" k="41" />
+<hkern u1="r" u2="&#xea;" k="41" />
+<hkern u1="r" u2="&#xe9;" k="41" />
+<hkern u1="r" u2="&#xe8;" k="41" />
+<hkern u1="r" u2="&#xe7;" k="41" />
+<hkern u1="r" u2="&#xe6;" k="41" />
+<hkern u1="r" u2="&#xe5;" k="41" />
+<hkern u1="r" u2="&#xe4;" k="41" />
+<hkern u1="r" u2="&#xe3;" k="41" />
+<hkern u1="r" u2="&#xe2;" k="41" />
+<hkern u1="r" u2="&#xe1;" k="41" />
+<hkern u1="r" u2="&#xe0;" k="41" />
+<hkern u1="r" u2="q" k="41" />
+<hkern u1="r" u2="o" k="41" />
+<hkern u1="r" u2="g" k="20" />
+<hkern u1="r" u2="e" k="41" />
+<hkern u1="r" u2="d" k="41" />
+<hkern u1="r" u2="c" k="41" />
+<hkern u1="r" u2="a" k="41" />
+<hkern u1="r" u2="&#x27;" k="-82" />
+<hkern u1="r" u2="&#x22;" k="-82" />
+<hkern u1="t" u2="&#x201d;" k="-41" />
+<hkern u1="t" u2="&#x2019;" k="-41" />
+<hkern u1="t" u2="&#x27;" k="-41" />
+<hkern u1="t" u2="&#x22;" k="-41" />
+<hkern u1="v" u2="&#x201e;" k="82" />
+<hkern u1="v" u2="&#x201d;" k="-82" />
+<hkern u1="v" u2="&#x201a;" k="82" />
+<hkern u1="v" u2="&#x2019;" k="-82" />
+<hkern u1="v" u2="&#x3f;" k="-41" />
+<hkern u1="v" u2="&#x2e;" k="82" />
+<hkern u1="v" u2="&#x2c;" k="82" />
+<hkern u1="v" u2="&#x27;" k="-82" />
+<hkern u1="v" u2="&#x22;" k="-82" />
+<hkern u1="w" u2="&#x201e;" k="82" />
+<hkern u1="w" u2="&#x201d;" k="-82" />
+<hkern u1="w" u2="&#x201a;" k="82" />
+<hkern u1="w" u2="&#x2019;" k="-82" />
+<hkern u1="w" u2="&#x3f;" k="-41" />
+<hkern u1="w" u2="&#x2e;" k="82" />
+<hkern u1="w" u2="&#x2c;" k="82" />
+<hkern u1="w" u2="&#x27;" k="-82" />
+<hkern u1="w" u2="&#x22;" k="-82" />
+<hkern u1="x" u2="&#x153;" k="41" />
+<hkern u1="x" u2="&#xf8;" k="41" />
+<hkern u1="x" u2="&#xf6;" k="41" />
+<hkern u1="x" u2="&#xf5;" k="41" />
+<hkern u1="x" u2="&#xf4;" k="41" />
+<hkern u1="x" u2="&#xf3;" k="41" />
+<hkern u1="x" u2="&#xf2;" k="41" />
+<hkern u1="x" u2="&#xeb;" k="41" />
+<hkern u1="x" u2="&#xea;" k="41" />
+<hkern u1="x" u2="&#xe9;" k="41" />
+<hkern u1="x" u2="&#xe8;" k="41" />
+<hkern u1="x" u2="&#xe7;" k="41" />
+<hkern u1="x" u2="&#xe0;" k="41" />
+<hkern u1="x" u2="q" k="41" />
+<hkern u1="x" u2="o" k="41" />
+<hkern u1="x" u2="e" k="41" />
+<hkern u1="x" u2="d" k="41" />
+<hkern u1="x" u2="c" k="41" />
+<hkern u1="y" u2="&#x201e;" k="82" />
+<hkern u1="y" u2="&#x201d;" k="-82" />
+<hkern u1="y" u2="&#x201a;" k="82" />
+<hkern u1="y" u2="&#x2019;" k="-82" />
+<hkern u1="y" u2="&#x3f;" k="-41" />
+<hkern u1="y" u2="&#x2e;" k="82" />
+<hkern u1="y" u2="&#x2c;" k="82" />
+<hkern u1="y" u2="&#x27;" k="-82" />
+<hkern u1="y" u2="&#x22;" k="-82" />
+<hkern u1="&#x7b;" u2="J" k="-184" />
+<hkern u1="&#xc0;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc0;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc0;" u2="&#x178;" k="123" />
+<hkern u1="&#xc0;" u2="&#x152;" k="41" />
+<hkern u1="&#xc0;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc0;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc0;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc0;" u2="Y" k="123" />
+<hkern u1="&#xc0;" u2="W" k="82" />
+<hkern u1="&#xc0;" u2="V" k="82" />
+<hkern u1="&#xc0;" u2="T" k="143" />
+<hkern u1="&#xc0;" u2="Q" k="41" />
+<hkern u1="&#xc0;" u2="O" k="41" />
+<hkern u1="&#xc0;" u2="J" k="-266" />
+<hkern u1="&#xc0;" u2="G" k="41" />
+<hkern u1="&#xc0;" u2="C" k="41" />
+<hkern u1="&#xc0;" u2="&#x27;" k="143" />
+<hkern u1="&#xc0;" u2="&#x22;" k="143" />
+<hkern u1="&#xc1;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc1;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc1;" u2="&#x178;" k="123" />
+<hkern u1="&#xc1;" u2="&#x152;" k="41" />
+<hkern u1="&#xc1;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc1;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc1;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc1;" u2="Y" k="123" />
+<hkern u1="&#xc1;" u2="W" k="82" />
+<hkern u1="&#xc1;" u2="V" k="82" />
+<hkern u1="&#xc1;" u2="T" k="143" />
+<hkern u1="&#xc1;" u2="Q" k="41" />
+<hkern u1="&#xc1;" u2="O" k="41" />
+<hkern u1="&#xc1;" u2="J" k="-266" />
+<hkern u1="&#xc1;" u2="G" k="41" />
+<hkern u1="&#xc1;" u2="C" k="41" />
+<hkern u1="&#xc1;" u2="&#x27;" k="143" />
+<hkern u1="&#xc1;" u2="&#x22;" k="143" />
+<hkern u1="&#xc2;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc2;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc2;" u2="&#x178;" k="123" />
+<hkern u1="&#xc2;" u2="&#x152;" k="41" />
+<hkern u1="&#xc2;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc2;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc2;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc2;" u2="Y" k="123" />
+<hkern u1="&#xc2;" u2="W" k="82" />
+<hkern u1="&#xc2;" u2="V" k="82" />
+<hkern u1="&#xc2;" u2="T" k="143" />
+<hkern u1="&#xc2;" u2="Q" k="41" />
+<hkern u1="&#xc2;" u2="O" k="41" />
+<hkern u1="&#xc2;" u2="J" k="-266" />
+<hkern u1="&#xc2;" u2="G" k="41" />
+<hkern u1="&#xc2;" u2="C" k="41" />
+<hkern u1="&#xc2;" u2="&#x27;" k="143" />
+<hkern u1="&#xc2;" u2="&#x22;" k="143" />
+<hkern u1="&#xc3;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc3;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc3;" u2="&#x178;" k="123" />
+<hkern u1="&#xc3;" u2="&#x152;" k="41" />
+<hkern u1="&#xc3;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc3;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc3;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc3;" u2="Y" k="123" />
+<hkern u1="&#xc3;" u2="W" k="82" />
+<hkern u1="&#xc3;" u2="V" k="82" />
+<hkern u1="&#xc3;" u2="T" k="143" />
+<hkern u1="&#xc3;" u2="Q" k="41" />
+<hkern u1="&#xc3;" u2="O" k="41" />
+<hkern u1="&#xc3;" u2="J" k="-266" />
+<hkern u1="&#xc3;" u2="G" k="41" />
+<hkern u1="&#xc3;" u2="C" k="41" />
+<hkern u1="&#xc3;" u2="&#x27;" k="143" />
+<hkern u1="&#xc3;" u2="&#x22;" k="143" />
+<hkern u1="&#xc4;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc4;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc4;" u2="&#x178;" k="123" />
+<hkern u1="&#xc4;" u2="&#x152;" k="41" />
+<hkern u1="&#xc4;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc4;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc4;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc4;" u2="Y" k="123" />
+<hkern u1="&#xc4;" u2="W" k="82" />
+<hkern u1="&#xc4;" u2="V" k="82" />
+<hkern u1="&#xc4;" u2="T" k="143" />
+<hkern u1="&#xc4;" u2="Q" k="41" />
+<hkern u1="&#xc4;" u2="O" k="41" />
+<hkern u1="&#xc4;" u2="J" k="-266" />
+<hkern u1="&#xc4;" u2="G" k="41" />
+<hkern u1="&#xc4;" u2="C" k="41" />
+<hkern u1="&#xc4;" u2="&#x27;" k="143" />
+<hkern u1="&#xc4;" u2="&#x22;" k="143" />
+<hkern u1="&#xc5;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc5;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc5;" u2="&#x178;" k="123" />
+<hkern u1="&#xc5;" u2="&#x152;" k="41" />
+<hkern u1="&#xc5;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc5;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc5;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc5;" u2="Y" k="123" />
+<hkern u1="&#xc5;" u2="W" k="82" />
+<hkern u1="&#xc5;" u2="V" k="82" />
+<hkern u1="&#xc5;" u2="T" k="143" />
+<hkern u1="&#xc5;" u2="Q" k="41" />
+<hkern u1="&#xc5;" u2="O" k="41" />
+<hkern u1="&#xc5;" u2="J" k="-266" />
+<hkern u1="&#xc5;" u2="G" k="41" />
+<hkern u1="&#xc5;" u2="C" k="41" />
+<hkern u1="&#xc5;" u2="&#x27;" k="143" />
+<hkern u1="&#xc5;" u2="&#x22;" k="143" />
+<hkern u1="&#xc6;" u2="J" k="-123" />
+<hkern u1="&#xc7;" u2="&#x152;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc7;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc7;" u2="Q" k="41" />
+<hkern u1="&#xc7;" u2="O" k="41" />
+<hkern u1="&#xc7;" u2="G" k="41" />
+<hkern u1="&#xc7;" u2="C" k="41" />
+<hkern u1="&#xc8;" u2="J" k="-123" />
+<hkern u1="&#xc9;" u2="J" k="-123" />
+<hkern u1="&#xca;" u2="J" k="-123" />
+<hkern u1="&#xcb;" u2="J" k="-123" />
+<hkern u1="&#xd0;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd0;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd0;" u2="&#x178;" k="20" />
+<hkern u1="&#xd0;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd0;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd0;" u2="Z" k="20" />
+<hkern u1="&#xd0;" u2="Y" k="20" />
+<hkern u1="&#xd0;" u2="X" k="41" />
+<hkern u1="&#xd0;" u2="W" k="20" />
+<hkern u1="&#xd0;" u2="V" k="20" />
+<hkern u1="&#xd0;" u2="T" k="61" />
+<hkern u1="&#xd0;" u2="A" k="41" />
+<hkern u1="&#xd0;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd0;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd2;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd2;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd2;" u2="&#x178;" k="20" />
+<hkern u1="&#xd2;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd2;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd2;" u2="Z" k="20" />
+<hkern u1="&#xd2;" u2="Y" k="20" />
+<hkern u1="&#xd2;" u2="X" k="41" />
+<hkern u1="&#xd2;" u2="W" k="20" />
+<hkern u1="&#xd2;" u2="V" k="20" />
+<hkern u1="&#xd2;" u2="T" k="61" />
+<hkern u1="&#xd2;" u2="A" k="41" />
+<hkern u1="&#xd2;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd2;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd3;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd3;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd3;" u2="&#x178;" k="20" />
+<hkern u1="&#xd3;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd3;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd3;" u2="Z" k="20" />
+<hkern u1="&#xd3;" u2="Y" k="20" />
+<hkern u1="&#xd3;" u2="X" k="41" />
+<hkern u1="&#xd3;" u2="W" k="20" />
+<hkern u1="&#xd3;" u2="V" k="20" />
+<hkern u1="&#xd3;" u2="T" k="61" />
+<hkern u1="&#xd3;" u2="A" k="41" />
+<hkern u1="&#xd3;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd3;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd4;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd4;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd4;" u2="&#x178;" k="20" />
+<hkern u1="&#xd4;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd4;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd4;" u2="Z" k="20" />
+<hkern u1="&#xd4;" u2="Y" k="20" />
+<hkern u1="&#xd4;" u2="X" k="41" />
+<hkern u1="&#xd4;" u2="W" k="20" />
+<hkern u1="&#xd4;" u2="V" k="20" />
+<hkern u1="&#xd4;" u2="T" k="61" />
+<hkern u1="&#xd4;" u2="A" k="41" />
+<hkern u1="&#xd4;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd4;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd5;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd5;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd5;" u2="&#x178;" k="20" />
+<hkern u1="&#xd5;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd5;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd5;" u2="Z" k="20" />
+<hkern u1="&#xd5;" u2="Y" k="20" />
+<hkern u1="&#xd5;" u2="X" k="41" />
+<hkern u1="&#xd5;" u2="W" k="20" />
+<hkern u1="&#xd5;" u2="V" k="20" />
+<hkern u1="&#xd5;" u2="T" k="61" />
+<hkern u1="&#xd5;" u2="A" k="41" />
+<hkern u1="&#xd5;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd5;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd6;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd6;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd6;" u2="&#x178;" k="20" />
+<hkern u1="&#xd6;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd6;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd6;" u2="Z" k="20" />
+<hkern u1="&#xd6;" u2="Y" k="20" />
+<hkern u1="&#xd6;" u2="X" k="41" />
+<hkern u1="&#xd6;" u2="W" k="20" />
+<hkern u1="&#xd6;" u2="V" k="20" />
+<hkern u1="&#xd6;" u2="T" k="61" />
+<hkern u1="&#xd6;" u2="A" k="41" />
+<hkern u1="&#xd6;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd6;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd8;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd8;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd8;" u2="&#x178;" k="20" />
+<hkern u1="&#xd8;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd8;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd8;" u2="Z" k="20" />
+<hkern u1="&#xd8;" u2="Y" k="20" />
+<hkern u1="&#xd8;" u2="X" k="41" />
+<hkern u1="&#xd8;" u2="W" k="20" />
+<hkern u1="&#xd8;" u2="V" k="20" />
+<hkern u1="&#xd8;" u2="T" k="61" />
+<hkern u1="&#xd8;" u2="A" k="41" />
+<hkern u1="&#xd8;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd8;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd9;" u2="&#x201e;" k="41" />
+<hkern u1="&#xd9;" u2="&#x201a;" k="41" />
+<hkern u1="&#xd9;" u2="&#xc5;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc4;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc3;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc2;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc1;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc0;" k="20" />
+<hkern u1="&#xd9;" u2="A" k="20" />
+<hkern u1="&#xd9;" u2="&#x2e;" k="41" />
+<hkern u1="&#xd9;" u2="&#x2c;" k="41" />
+<hkern u1="&#xda;" u2="&#x201e;" k="41" />
+<hkern u1="&#xda;" u2="&#x201a;" k="41" />
+<hkern u1="&#xda;" u2="&#xc5;" k="20" />
+<hkern u1="&#xda;" u2="&#xc4;" k="20" />
+<hkern u1="&#xda;" u2="&#xc3;" k="20" />
+<hkern u1="&#xda;" u2="&#xc2;" k="20" />
+<hkern u1="&#xda;" u2="&#xc1;" k="20" />
+<hkern u1="&#xda;" u2="&#xc0;" k="20" />
+<hkern u1="&#xda;" u2="A" k="20" />
+<hkern u1="&#xda;" u2="&#x2e;" k="41" />
+<hkern u1="&#xda;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdb;" u2="&#x201e;" k="41" />
+<hkern u1="&#xdb;" u2="&#x201a;" k="41" />
+<hkern u1="&#xdb;" u2="&#xc5;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc4;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc3;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc2;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc1;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc0;" k="20" />
+<hkern u1="&#xdb;" u2="A" k="20" />
+<hkern u1="&#xdb;" u2="&#x2e;" k="41" />
+<hkern u1="&#xdb;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdc;" u2="&#x201e;" k="41" />
+<hkern u1="&#xdc;" u2="&#x201a;" k="41" />
+<hkern u1="&#xdc;" u2="&#xc5;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc4;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc3;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc2;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc1;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc0;" k="20" />
+<hkern u1="&#xdc;" u2="A" k="20" />
+<hkern u1="&#xdc;" u2="&#x2e;" k="41" />
+<hkern u1="&#xdc;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdd;" u2="&#x201e;" k="123" />
+<hkern u1="&#xdd;" u2="&#x201a;" k="123" />
+<hkern u1="&#xdd;" u2="&#x153;" k="102" />
+<hkern u1="&#xdd;" u2="&#x152;" k="41" />
+<hkern u1="&#xdd;" u2="&#xfc;" k="61" />
+<hkern u1="&#xdd;" u2="&#xfb;" k="61" />
+<hkern u1="&#xdd;" u2="&#xfa;" k="61" />
+<hkern u1="&#xdd;" u2="&#xf9;" k="61" />
+<hkern u1="&#xdd;" u2="&#xf8;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf6;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf5;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf4;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf3;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf2;" k="102" />
+<hkern u1="&#xdd;" u2="&#xeb;" k="102" />
+<hkern u1="&#xdd;" u2="&#xea;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe9;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe8;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe7;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe6;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe5;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe4;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe3;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe2;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe1;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe0;" k="102" />
+<hkern u1="&#xdd;" u2="&#xd8;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd6;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd5;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd4;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd3;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd2;" k="41" />
+<hkern u1="&#xdd;" u2="&#xc7;" k="41" />
+<hkern u1="&#xdd;" u2="&#xc5;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc4;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc3;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc2;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc1;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc0;" k="123" />
+<hkern u1="&#xdd;" u2="z" k="41" />
+<hkern u1="&#xdd;" u2="u" k="61" />
+<hkern u1="&#xdd;" u2="s" k="82" />
+<hkern u1="&#xdd;" u2="r" k="61" />
+<hkern u1="&#xdd;" u2="q" k="102" />
+<hkern u1="&#xdd;" u2="p" k="61" />
+<hkern u1="&#xdd;" u2="o" k="102" />
+<hkern u1="&#xdd;" u2="n" k="61" />
+<hkern u1="&#xdd;" u2="m" k="61" />
+<hkern u1="&#xdd;" u2="g" k="41" />
+<hkern u1="&#xdd;" u2="e" k="102" />
+<hkern u1="&#xdd;" u2="d" k="102" />
+<hkern u1="&#xdd;" u2="c" k="102" />
+<hkern u1="&#xdd;" u2="a" k="102" />
+<hkern u1="&#xdd;" u2="Q" k="41" />
+<hkern u1="&#xdd;" u2="O" k="41" />
+<hkern u1="&#xdd;" u2="G" k="41" />
+<hkern u1="&#xdd;" u2="C" k="41" />
+<hkern u1="&#xdd;" u2="A" k="123" />
+<hkern u1="&#xdd;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xdd;" u2="&#x2e;" k="123" />
+<hkern u1="&#xdd;" u2="&#x2c;" k="123" />
+<hkern u1="&#xde;" u2="&#x201e;" k="266" />
+<hkern u1="&#xde;" u2="&#x201a;" k="266" />
+<hkern u1="&#xde;" u2="&#xc5;" k="102" />
+<hkern u1="&#xde;" u2="&#xc4;" k="102" />
+<hkern u1="&#xde;" u2="&#xc3;" k="102" />
+<hkern u1="&#xde;" u2="&#xc2;" k="102" />
+<hkern u1="&#xde;" u2="&#xc1;" k="102" />
+<hkern u1="&#xde;" u2="&#xc0;" k="102" />
+<hkern u1="&#xde;" u2="Z" k="20" />
+<hkern u1="&#xde;" u2="X" k="41" />
+<hkern u1="&#xde;" u2="A" k="102" />
+<hkern u1="&#xde;" u2="&#x2e;" k="266" />
+<hkern u1="&#xde;" u2="&#x2c;" k="266" />
+<hkern u1="&#xe0;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe0;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe0;" u2="&#x27;" k="20" />
+<hkern u1="&#xe0;" u2="&#x22;" k="20" />
+<hkern u1="&#xe1;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe1;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe1;" u2="&#x27;" k="20" />
+<hkern u1="&#xe1;" u2="&#x22;" k="20" />
+<hkern u1="&#xe2;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe2;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe2;" u2="&#x27;" k="20" />
+<hkern u1="&#xe2;" u2="&#x22;" k="20" />
+<hkern u1="&#xe3;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe3;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe3;" u2="&#x27;" k="20" />
+<hkern u1="&#xe3;" u2="&#x22;" k="20" />
+<hkern u1="&#xe4;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe4;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe4;" u2="&#x27;" k="20" />
+<hkern u1="&#xe4;" u2="&#x22;" k="20" />
+<hkern u1="&#xe5;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe5;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe5;" u2="&#x27;" k="20" />
+<hkern u1="&#xe5;" u2="&#x22;" k="20" />
+<hkern u1="&#xe8;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe8;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe8;" u2="&#xfd;" k="41" />
+<hkern u1="&#xe8;" u2="z" k="20" />
+<hkern u1="&#xe8;" u2="y" k="41" />
+<hkern u1="&#xe8;" u2="x" k="41" />
+<hkern u1="&#xe8;" u2="w" k="41" />
+<hkern u1="&#xe8;" u2="v" k="41" />
+<hkern u1="&#xe8;" u2="&#x27;" k="20" />
+<hkern u1="&#xe8;" u2="&#x22;" k="20" />
+<hkern u1="&#xe9;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe9;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe9;" u2="&#xfd;" k="41" />
+<hkern u1="&#xe9;" u2="z" k="20" />
+<hkern u1="&#xe9;" u2="y" k="41" />
+<hkern u1="&#xe9;" u2="x" k="41" />
+<hkern u1="&#xe9;" u2="w" k="41" />
+<hkern u1="&#xe9;" u2="v" k="41" />
+<hkern u1="&#xe9;" u2="&#x27;" k="20" />
+<hkern u1="&#xe9;" u2="&#x22;" k="20" />
+<hkern u1="&#xea;" u2="&#x201d;" k="20" />
+<hkern u1="&#xea;" u2="&#x2019;" k="20" />
+<hkern u1="&#xea;" u2="&#xfd;" k="41" />
+<hkern u1="&#xea;" u2="z" k="20" />
+<hkern u1="&#xea;" u2="y" k="41" />
+<hkern u1="&#xea;" u2="x" k="41" />
+<hkern u1="&#xea;" u2="w" k="41" />
+<hkern u1="&#xea;" u2="v" k="41" />
+<hkern u1="&#xea;" u2="&#x27;" k="20" />
+<hkern u1="&#xea;" u2="&#x22;" k="20" />
+<hkern u1="&#xeb;" u2="&#x201d;" k="20" />
+<hkern u1="&#xeb;" u2="&#x2019;" k="20" />
+<hkern u1="&#xeb;" u2="&#xfd;" k="41" />
+<hkern u1="&#xeb;" u2="z" k="20" />
+<hkern u1="&#xeb;" u2="y" k="41" />
+<hkern u1="&#xeb;" u2="x" k="41" />
+<hkern u1="&#xeb;" u2="w" k="41" />
+<hkern u1="&#xeb;" u2="v" k="41" />
+<hkern u1="&#xeb;" u2="&#x27;" k="20" />
+<hkern u1="&#xeb;" u2="&#x22;" k="20" />
+<hkern u1="&#xf0;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf0;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf0;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf0;" u2="z" k="20" />
+<hkern u1="&#xf0;" u2="y" k="41" />
+<hkern u1="&#xf0;" u2="x" k="41" />
+<hkern u1="&#xf0;" u2="w" k="41" />
+<hkern u1="&#xf0;" u2="v" k="41" />
+<hkern u1="&#xf0;" u2="&#x27;" k="20" />
+<hkern u1="&#xf0;" u2="&#x22;" k="20" />
+<hkern u1="&#xf2;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf2;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf2;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf2;" u2="z" k="20" />
+<hkern u1="&#xf2;" u2="y" k="41" />
+<hkern u1="&#xf2;" u2="x" k="41" />
+<hkern u1="&#xf2;" u2="w" k="41" />
+<hkern u1="&#xf2;" u2="v" k="41" />
+<hkern u1="&#xf2;" u2="&#x27;" k="20" />
+<hkern u1="&#xf2;" u2="&#x22;" k="20" />
+<hkern u1="&#xf3;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf3;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf3;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf3;" u2="z" k="20" />
+<hkern u1="&#xf3;" u2="y" k="41" />
+<hkern u1="&#xf3;" u2="x" k="41" />
+<hkern u1="&#xf3;" u2="w" k="41" />
+<hkern u1="&#xf3;" u2="v" k="41" />
+<hkern u1="&#xf3;" u2="&#x27;" k="20" />
+<hkern u1="&#xf3;" u2="&#x22;" k="20" />
+<hkern u1="&#xf4;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf4;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf4;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf4;" u2="z" k="20" />
+<hkern u1="&#xf4;" u2="y" k="41" />
+<hkern u1="&#xf4;" u2="x" k="41" />
+<hkern u1="&#xf4;" u2="w" k="41" />
+<hkern u1="&#xf4;" u2="v" k="41" />
+<hkern u1="&#xf4;" u2="&#x27;" k="20" />
+<hkern u1="&#xf4;" u2="&#x22;" k="20" />
+<hkern u1="&#xf6;" u2="&#x201d;" k="41" />
+<hkern u1="&#xf6;" u2="&#x2019;" k="41" />
+<hkern u1="&#xf6;" u2="&#x27;" k="41" />
+<hkern u1="&#xf6;" u2="&#x22;" k="41" />
+<hkern u1="&#xf8;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf8;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf8;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf8;" u2="z" k="20" />
+<hkern u1="&#xf8;" u2="y" k="41" />
+<hkern u1="&#xf8;" u2="x" k="41" />
+<hkern u1="&#xf8;" u2="w" k="41" />
+<hkern u1="&#xf8;" u2="v" k="41" />
+<hkern u1="&#xf8;" u2="&#x27;" k="20" />
+<hkern u1="&#xf8;" u2="&#x22;" k="20" />
+<hkern u1="&#xfd;" u2="&#x201e;" k="82" />
+<hkern u1="&#xfd;" u2="&#x201d;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x201a;" k="82" />
+<hkern u1="&#xfd;" u2="&#x2019;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xfd;" u2="&#x2e;" k="82" />
+<hkern u1="&#xfd;" u2="&#x2c;" k="82" />
+<hkern u1="&#xfd;" u2="&#x27;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x22;" k="-82" />
+<hkern u1="&#xfe;" u2="&#x201d;" k="20" />
+<hkern u1="&#xfe;" u2="&#x2019;" k="20" />
+<hkern u1="&#xfe;" u2="&#xfd;" k="41" />
+<hkern u1="&#xfe;" u2="z" k="20" />
+<hkern u1="&#xfe;" u2="y" k="41" />
+<hkern u1="&#xfe;" u2="x" k="41" />
+<hkern u1="&#xfe;" u2="w" k="41" />
+<hkern u1="&#xfe;" u2="v" k="41" />
+<hkern u1="&#xfe;" u2="&#x27;" k="20" />
+<hkern u1="&#xfe;" u2="&#x22;" k="20" />
+<hkern u1="&#xff;" u2="&#x201e;" k="82" />
+<hkern u1="&#xff;" u2="&#x201d;" k="-82" />
+<hkern u1="&#xff;" u2="&#x201a;" k="82" />
+<hkern u1="&#xff;" u2="&#x2019;" k="-82" />
+<hkern u1="&#xff;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xff;" u2="&#x2e;" k="82" />
+<hkern u1="&#xff;" u2="&#x2c;" k="82" />
+<hkern u1="&#xff;" u2="&#x27;" k="-82" />
+<hkern u1="&#xff;" u2="&#x22;" k="-82" />
+<hkern u1="&#x152;" u2="J" k="-123" />
+<hkern u1="&#x178;" u2="&#x201e;" k="123" />
+<hkern u1="&#x178;" u2="&#x201a;" k="123" />
+<hkern u1="&#x178;" u2="&#x153;" k="102" />
+<hkern u1="&#x178;" u2="&#x152;" k="41" />
+<hkern u1="&#x178;" u2="&#xfc;" k="61" />
+<hkern u1="&#x178;" u2="&#xfb;" k="61" />
+<hkern u1="&#x178;" u2="&#xfa;" k="61" />
+<hkern u1="&#x178;" u2="&#xf9;" k="61" />
+<hkern u1="&#x178;" u2="&#xf8;" k="102" />
+<hkern u1="&#x178;" u2="&#xf6;" k="102" />
+<hkern u1="&#x178;" u2="&#xf5;" k="102" />
+<hkern u1="&#x178;" u2="&#xf4;" k="102" />
+<hkern u1="&#x178;" u2="&#xf3;" k="102" />
+<hkern u1="&#x178;" u2="&#xf2;" k="102" />
+<hkern u1="&#x178;" u2="&#xeb;" k="102" />
+<hkern u1="&#x178;" u2="&#xea;" k="102" />
+<hkern u1="&#x178;" u2="&#xe9;" k="102" />
+<hkern u1="&#x178;" u2="&#xe8;" k="102" />
+<hkern u1="&#x178;" u2="&#xe7;" k="102" />
+<hkern u1="&#x178;" u2="&#xe6;" k="102" />
+<hkern u1="&#x178;" u2="&#xe5;" k="102" />
+<hkern u1="&#x178;" u2="&#xe4;" k="102" />
+<hkern u1="&#x178;" u2="&#xe3;" k="102" />
+<hkern u1="&#x178;" u2="&#xe2;" k="102" />
+<hkern u1="&#x178;" u2="&#xe1;" k="102" />
+<hkern u1="&#x178;" u2="&#xe0;" k="102" />
+<hkern u1="&#x178;" u2="&#xd8;" k="41" />
+<hkern u1="&#x178;" u2="&#xd6;" k="41" />
+<hkern u1="&#x178;" u2="&#xd5;" k="41" />
+<hkern u1="&#x178;" u2="&#xd4;" k="41" />
+<hkern u1="&#x178;" u2="&#xd3;" k="41" />
+<hkern u1="&#x178;" u2="&#xd2;" k="41" />
+<hkern u1="&#x178;" u2="&#xc7;" k="41" />
+<hkern u1="&#x178;" u2="&#xc5;" k="123" />
+<hkern u1="&#x178;" u2="&#xc4;" k="123" />
+<hkern u1="&#x178;" u2="&#xc3;" k="123" />
+<hkern u1="&#x178;" u2="&#xc2;" k="123" />
+<hkern u1="&#x178;" u2="&#xc1;" k="123" />
+<hkern u1="&#x178;" u2="&#xc0;" k="123" />
+<hkern u1="&#x178;" u2="z" k="41" />
+<hkern u1="&#x178;" u2="u" k="61" />
+<hkern u1="&#x178;" u2="s" k="82" />
+<hkern u1="&#x178;" u2="r" k="61" />
+<hkern u1="&#x178;" u2="q" k="102" />
+<hkern u1="&#x178;" u2="p" k="61" />
+<hkern u1="&#x178;" u2="o" k="102" />
+<hkern u1="&#x178;" u2="n" k="61" />
+<hkern u1="&#x178;" u2="m" k="61" />
+<hkern u1="&#x178;" u2="g" k="41" />
+<hkern u1="&#x178;" u2="e" k="102" />
+<hkern u1="&#x178;" u2="d" k="102" />
+<hkern u1="&#x178;" u2="c" k="102" />
+<hkern u1="&#x178;" u2="a" k="102" />
+<hkern u1="&#x178;" u2="Q" k="41" />
+<hkern u1="&#x178;" u2="O" k="41" />
+<hkern u1="&#x178;" u2="G" k="41" />
+<hkern u1="&#x178;" u2="C" k="41" />
+<hkern u1="&#x178;" u2="A" k="123" />
+<hkern u1="&#x178;" u2="&#x3f;" k="-41" />
+<hkern u1="&#x178;" u2="&#x2e;" k="123" />
+<hkern u1="&#x178;" u2="&#x2c;" k="123" />
+<hkern u1="&#x2013;" u2="T" k="82" />
+<hkern u1="&#x2014;" u2="T" k="82" />
+<hkern u1="&#x2018;" u2="&#x178;" k="-20" />
+<hkern u1="&#x2018;" u2="&#x153;" k="123" />
+<hkern u1="&#x2018;" u2="&#xfc;" k="61" />
+<hkern u1="&#x2018;" u2="&#xfb;" k="61" />
+<hkern u1="&#x2018;" u2="&#xfa;" k="61" />
+<hkern u1="&#x2018;" u2="&#xf9;" k="61" />
+<hkern u1="&#x2018;" u2="&#xf8;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf6;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf5;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf4;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf3;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf2;" k="123" />
+<hkern u1="&#x2018;" u2="&#xeb;" k="123" />
+<hkern u1="&#x2018;" u2="&#xea;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe9;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe8;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe7;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe6;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe5;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe4;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe3;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe2;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe1;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe0;" k="123" />
+<hkern u1="&#x2018;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x2018;" u2="&#xc5;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc4;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc3;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc2;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc1;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc0;" k="143" />
+<hkern u1="&#x2018;" u2="u" k="61" />
+<hkern u1="&#x2018;" u2="s" k="61" />
+<hkern u1="&#x2018;" u2="r" k="61" />
+<hkern u1="&#x2018;" u2="q" k="123" />
+<hkern u1="&#x2018;" u2="p" k="61" />
+<hkern u1="&#x2018;" u2="o" k="123" />
+<hkern u1="&#x2018;" u2="n" k="61" />
+<hkern u1="&#x2018;" u2="m" k="61" />
+<hkern u1="&#x2018;" u2="g" k="61" />
+<hkern u1="&#x2018;" u2="e" k="123" />
+<hkern u1="&#x2018;" u2="d" k="123" />
+<hkern u1="&#x2018;" u2="c" k="123" />
+<hkern u1="&#x2018;" u2="a" k="82" />
+<hkern u1="&#x2018;" u2="Y" k="-20" />
+<hkern u1="&#x2018;" u2="W" k="-41" />
+<hkern u1="&#x2018;" u2="V" k="-41" />
+<hkern u1="&#x2018;" u2="T" k="-41" />
+<hkern u1="&#x2018;" u2="A" k="143" />
+<hkern u1="&#x2019;" u2="&#x178;" k="-20" />
+<hkern u1="&#x2019;" u2="&#x153;" k="123" />
+<hkern u1="&#x2019;" u2="&#xfc;" k="61" />
+<hkern u1="&#x2019;" u2="&#xfb;" k="61" />
+<hkern u1="&#x2019;" u2="&#xfa;" k="61" />
+<hkern u1="&#x2019;" u2="&#xf9;" k="61" />
+<hkern u1="&#x2019;" u2="&#xf8;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf6;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf5;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf4;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf3;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf2;" k="123" />
+<hkern u1="&#x2019;" u2="&#xeb;" k="123" />
+<hkern u1="&#x2019;" u2="&#xea;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe9;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe8;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe7;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe6;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe5;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe4;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe3;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe2;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe1;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe0;" k="123" />
+<hkern u1="&#x2019;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x2019;" u2="&#xc5;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc4;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc3;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc2;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc1;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc0;" k="143" />
+<hkern u1="&#x2019;" u2="u" k="61" />
+<hkern u1="&#x2019;" u2="s" k="61" />
+<hkern u1="&#x2019;" u2="r" k="61" />
+<hkern u1="&#x2019;" u2="q" k="123" />
+<hkern u1="&#x2019;" u2="p" k="61" />
+<hkern u1="&#x2019;" u2="o" k="123" />
+<hkern u1="&#x2019;" u2="n" k="61" />
+<hkern u1="&#x2019;" u2="m" k="61" />
+<hkern u1="&#x2019;" u2="g" k="61" />
+<hkern u1="&#x2019;" u2="e" k="123" />
+<hkern u1="&#x2019;" u2="d" k="123" />
+<hkern u1="&#x2019;" u2="c" k="123" />
+<hkern u1="&#x2019;" u2="a" k="82" />
+<hkern u1="&#x2019;" u2="Y" k="-20" />
+<hkern u1="&#x2019;" u2="W" k="-41" />
+<hkern u1="&#x2019;" u2="V" k="-41" />
+<hkern u1="&#x2019;" u2="T" k="-41" />
+<hkern u1="&#x2019;" u2="A" k="143" />
+<hkern u1="&#x201a;" u2="&#x178;" k="123" />
+<hkern u1="&#x201a;" u2="&#x152;" k="102" />
+<hkern u1="&#x201a;" u2="&#xdd;" k="123" />
+<hkern u1="&#x201a;" u2="&#xdc;" k="41" />
+<hkern u1="&#x201a;" u2="&#xdb;" k="41" />
+<hkern u1="&#x201a;" u2="&#xda;" k="41" />
+<hkern u1="&#x201a;" u2="&#xd9;" k="41" />
+<hkern u1="&#x201a;" u2="&#xd8;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd6;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd5;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd4;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd3;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd2;" k="102" />
+<hkern u1="&#x201a;" u2="&#xc7;" k="102" />
+<hkern u1="&#x201a;" u2="Y" k="123" />
+<hkern u1="&#x201a;" u2="W" k="123" />
+<hkern u1="&#x201a;" u2="V" k="123" />
+<hkern u1="&#x201a;" u2="U" k="41" />
+<hkern u1="&#x201a;" u2="T" k="143" />
+<hkern u1="&#x201a;" u2="Q" k="102" />
+<hkern u1="&#x201a;" u2="O" k="102" />
+<hkern u1="&#x201a;" u2="G" k="102" />
+<hkern u1="&#x201a;" u2="C" k="102" />
+<hkern u1="&#x201c;" u2="&#x178;" k="-20" />
+<hkern u1="&#x201c;" u2="&#x153;" k="123" />
+<hkern u1="&#x201c;" u2="&#xfc;" k="61" />
+<hkern u1="&#x201c;" u2="&#xfb;" k="61" />
+<hkern u1="&#x201c;" u2="&#xfa;" k="61" />
+<hkern u1="&#x201c;" u2="&#xf9;" k="61" />
+<hkern u1="&#x201c;" u2="&#xf8;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf6;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf5;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf4;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf3;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf2;" k="123" />
+<hkern u1="&#x201c;" u2="&#xeb;" k="123" />
+<hkern u1="&#x201c;" u2="&#xea;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe9;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe8;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe7;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe6;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe5;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe4;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe3;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe2;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe1;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe0;" k="123" />
+<hkern u1="&#x201c;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x201c;" u2="&#xc5;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc4;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc3;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc2;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc1;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc0;" k="143" />
+<hkern u1="&#x201c;" u2="u" k="61" />
+<hkern u1="&#x201c;" u2="s" k="61" />
+<hkern u1="&#x201c;" u2="r" k="61" />
+<hkern u1="&#x201c;" u2="q" k="123" />
+<hkern u1="&#x201c;" u2="p" k="61" />
+<hkern u1="&#x201c;" u2="o" k="123" />
+<hkern u1="&#x201c;" u2="n" k="61" />
+<hkern u1="&#x201c;" u2="m" k="61" />
+<hkern u1="&#x201c;" u2="g" k="61" />
+<hkern u1="&#x201c;" u2="e" k="123" />
+<hkern u1="&#x201c;" u2="d" k="123" />
+<hkern u1="&#x201c;" u2="c" k="123" />
+<hkern u1="&#x201c;" u2="a" k="82" />
+<hkern u1="&#x201c;" u2="Y" k="-20" />
+<hkern u1="&#x201c;" u2="W" k="-41" />
+<hkern u1="&#x201c;" u2="V" k="-41" />
+<hkern u1="&#x201c;" u2="T" k="-41" />
+<hkern u1="&#x201c;" u2="A" k="143" />
+<hkern u1="&#x201e;" u2="&#x178;" k="123" />
+<hkern u1="&#x201e;" u2="&#x152;" k="102" />
+<hkern u1="&#x201e;" u2="&#xdd;" k="123" />
+<hkern u1="&#x201e;" u2="&#xdc;" k="41" />
+<hkern u1="&#x201e;" u2="&#xdb;" k="41" />
+<hkern u1="&#x201e;" u2="&#xda;" k="41" />
+<hkern u1="&#x201e;" u2="&#xd9;" k="41" />
+<hkern u1="&#x201e;" u2="&#xd8;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd6;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd5;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd4;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd3;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd2;" k="102" />
+<hkern u1="&#x201e;" u2="&#xc7;" k="102" />
+<hkern u1="&#x201e;" u2="Y" k="123" />
+<hkern u1="&#x201e;" u2="W" k="123" />
+<hkern u1="&#x201e;" u2="V" k="123" />
+<hkern u1="&#x201e;" u2="U" k="41" />
+<hkern u1="&#x201e;" u2="T" k="143" />
+<hkern u1="&#x201e;" u2="Q" k="102" />
+<hkern u1="&#x201e;" u2="O" k="102" />
+<hkern u1="&#x201e;" u2="G" k="102" />
+<hkern u1="&#x201e;" u2="C" k="102" />
+</font>
+</defs></svg> 
\ No newline at end of file
diff --git a/html/simple-shape/docs/fonts/OpenSans-Italic-webfont.woff b/html/simple-shape/docs/fonts/OpenSans-Italic-webfont.woff
new file mode 100644
index 0000000..ff652e6
--- /dev/null
+++ b/html/simple-shape/docs/fonts/OpenSans-Italic-webfont.woff
Binary files differdiff --git a/html/simple-shape/docs/fonts/OpenSans-Light-webfont.eot b/html/simple-shape/docs/fonts/OpenSans-Light-webfont.eot
new file mode 100644
index 0000000..1486840
--- /dev/null
+++ b/html/simple-shape/docs/fonts/OpenSans-Light-webfont.eot
Binary files differdiff --git a/html/simple-shape/docs/fonts/OpenSans-Light-webfont.svg b/html/simple-shape/docs/fonts/OpenSans-Light-webfont.svg
new file mode 100644
index 0000000..11a472c
--- /dev/null
+++ b/html/simple-shape/docs/fonts/OpenSans-Light-webfont.svg
@@ -0,0 +1,1831 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata></metadata>
+<defs>
+<font id="open_sanslight" horiz-adv-x="1169" >
+<font-face units-per-em="2048" ascent="1638" descent="-410" />
+<missing-glyph horiz-adv-x="532" />
+<glyph unicode="&#xfb01;" horiz-adv-x="1077" d="M29 0zM586 1001h-256v-1001h-99v1001h-202v58l202 37v84q0 200 73.5 293.5t240.5 93.5q90 0 180 -27l-23 -86q-80 25 -159 25q-116 0 -164.5 -68.5t-48.5 -222.5v-101h256v-86zM895 0h-99v1087h99v-1087zM782 1389q0 96 63 96q31 0 48.5 -25t17.5 -71q0 -45 -17.5 -71 t-48.5 -26q-63 0 -63 97z" />
+<glyph unicode="&#xfb02;" horiz-adv-x="1077" d="M29 0zM586 1001h-256v-1001h-99v1001h-202v58l202 37v84q0 200 73.5 293.5t240.5 93.5q90 0 180 -27l-23 -86q-80 25 -159 25q-116 0 -164.5 -68.5t-48.5 -222.5v-101h256v-86zM895 0h-99v1556h99v-1556z" />
+<glyph unicode="&#xfb03;" horiz-adv-x="1692" d="M29 0zM586 1001h-256v-1001h-99v1001h-202v58l202 37v84q0 200 73.5 293.5t240.5 93.5q90 0 180 -27l-23 -86q-80 25 -159 25q-116 0 -164.5 -68.5t-48.5 -222.5v-101h256v-86zM1200 1001h-256v-1001h-99v1001h-202v58l202 37v84q0 200 73.5 293.5t240.5 93.5 q90 0 180 -27l-23 -86q-80 25 -159 25q-116 0 -164.5 -68.5t-48.5 -222.5v-101h256v-86zM1510 0h-99v1087h99v-1087zM1397 1389q0 96 63 96q31 0 48.5 -25t17.5 -71q0 -45 -17.5 -71t-48.5 -26q-63 0 -63 97z" />
+<glyph unicode="&#xfb04;" horiz-adv-x="1692" d="M29 0zM586 1001h-256v-1001h-99v1001h-202v58l202 37v84q0 200 73.5 293.5t240.5 93.5q90 0 180 -27l-23 -86q-80 25 -159 25q-116 0 -164.5 -68.5t-48.5 -222.5v-101h256v-86zM1200 1001h-256v-1001h-99v1001h-202v58l202 37v84q0 200 73.5 293.5t240.5 93.5 q90 0 180 -27l-23 -86q-80 25 -159 25q-116 0 -164.5 -68.5t-48.5 -222.5v-101h256v-86zM1510 0h-99v1556h99v-1556z" />
+<glyph horiz-adv-x="2048" />
+<glyph horiz-adv-x="2048" />
+<glyph unicode="&#xd;" horiz-adv-x="1044" />
+<glyph unicode=" "  horiz-adv-x="532" />
+<glyph unicode="&#x09;" horiz-adv-x="532" />
+<glyph unicode="&#xa0;" horiz-adv-x="532" />
+<glyph unicode="!" horiz-adv-x="492" d="M276 377h-61l-29 1085h119zM164 78q0 98 80 98q82 0 82 -98t-82 -98q-80 0 -80 98z" />
+<glyph unicode="&#x22;" horiz-adv-x="723" d="M260 1462l-33 -528h-61l-33 528h127zM590 1462l-33 -528h-61l-33 528h127z" />
+<glyph unicode="#" horiz-adv-x="1323" d="M967 928l-76 -398h303v-79h-320l-86 -451h-90l88 451h-360l-86 -451h-88l86 451h-283v79h299l76 398h-297v80h311l86 454h91l-89 -454h365l88 454h86l-88 -454h285v-80h-301zM440 530h363l78 398h-363z" />
+<glyph unicode="$" d="M991 440q0 -133 -99 -217t-274 -106v-236h-81v232q-92 2 -200.5 22.5t-172.5 50.5v103q75 -36 179.5 -61t193.5 -25v508q-145 44 -215 88t-102 104t-32 146q0 124 94.5 208.5t254.5 104.5v192h81v-190q197 -9 351 -72l-33 -90q-141 62 -318 72v-486q213 -66 293 -144 t80 -204zM881 444q0 85 -63 140.5t-200 95.5v-471q122 13 192.5 75t70.5 160zM297 1049q0 -86 57 -141t183 -93v453q-119 -16 -179.5 -76t-60.5 -143z" />
+<glyph unicode="%" horiz-adv-x="1653" d="M211 1026q0 -186 45 -279.5t141 -93.5q193 0 193 373q0 184 -49.5 276.5t-143.5 92.5q-96 0 -141 -92.5t-45 -276.5zM688 1026q0 -226 -75 -343.5t-216 -117.5q-133 0 -208.5 120.5t-75.5 340.5q0 223 72 340t212 117q139 0 215 -120.5t76 -336.5zM1063 438 q0 -185 45 -277.5t141 -92.5q193 0 193 370q0 369 -193 369q-96 0 -141 -91.5t-45 -277.5zM1540 438q0 -226 -74 -343.5t-215 -117.5q-136 0 -211 121.5t-75 339.5q0 225 73.5 341t212.5 116q137 0 213 -120t76 -337zM1280 1462l-811 -1462h-96l811 1462h96z" />
+<glyph unicode="&#x26;" horiz-adv-x="1460" d="M123 371q0 138 73.5 235t274.5 205l-75 82q-66 71 -98 139t-32 142q0 143 95.5 227t256.5 84q155 0 245.5 -81t90.5 -224q0 -105 -70 -192.5t-253 -194.5l452 -457q61 72 104 157t75 201h96q-63 -246 -209 -426l266 -268h-135l-193 197q-92 -90 -164 -131.5t-157.5 -63.5 t-194.5 -22q-209 0 -328.5 103t-119.5 288zM578 70q128 0 234.5 43.5t209.5 146.5l-483 485q-136 -72 -196.5 -122.5t-88 -109.5t-27.5 -138q0 -143 93 -224t258 -81zM373 1176q0 -79 40 -146t152 -174q159 85 221 159t62 169q0 94 -62 152.5t-168 58.5q-114 0 -179.5 -58 t-65.5 -161z" />
+<glyph unicode="'" horiz-adv-x="393" d="M260 1462l-33 -528h-61l-33 528h127z" />
+<glyph unicode="(" horiz-adv-x="557" d="M82 561q0 265 77.5 496t223.5 405h113q-148 -182 -227 -412.5t-79 -486.5q0 -483 304 -887h-111q-147 170 -224 397t-77 488z" />
+<glyph unicode=")" horiz-adv-x="557" d="M475 561q0 -263 -77.5 -490t-223.5 -395h-111q304 404 304 887q0 257 -79 487.5t-227 411.5h113q147 -175 224 -406.5t77 -494.5z" />
+<glyph unicode="*" horiz-adv-x="1128" d="M631 1556l-37 -405l405 104l21 -131l-395 -39l247 -340l-124 -71l-191 379l-180 -379l-125 71l242 340l-390 39l19 131l401 -104l-39 405h146z" />
+<glyph unicode="+" d="M625 764h434v-82h-434v-432h-82v432h-432v82h432v434h82v-434z" />
+<glyph unicode="," horiz-adv-x="440" d="M295 238l12 -21q-75 -265 -174 -481h-65q77 275 110 502h117z" />
+<glyph unicode="-" horiz-adv-x="659" d="M92 512v82h475v-82h-475z" />
+<glyph unicode="." horiz-adv-x="487" d="M162 78q0 98 80 98q82 0 82 -98t-82 -98q-80 0 -80 98z" />
+<glyph unicode="/" horiz-adv-x="698" d="M674 1462l-545 -1462h-104l544 1462h105z" />
+<glyph unicode="0" d="M1055 735q0 -385 -117.5 -570t-355.5 -185q-229 0 -348 190.5t-119 564.5q0 382 115.5 566t351.5 184q231 0 352 -190.5t121 -559.5zM223 735q0 -340 89 -502.5t270 -162.5q189 0 275.5 168t86.5 497q0 324 -86.5 492t-275.5 168t-274 -168t-85 -492z" />
+<glyph unicode="1" d="M682 0h-98v1065q0 145 12 301q-15 -15 -31 -29t-309 -243l-57 71l397 297h86v-1462z" />
+<glyph unicode="2" d="M1028 0h-915v88l389 406q164 170 230 260t97 172t31 172q0 131 -86 213t-223 82q-183 0 -350 -133l-54 69q183 154 406 154q191 0 300.5 -102t109.5 -281q0 -145 -73.5 -280.5t-268.5 -334.5l-375 -385v-4h782v-96z" />
+<glyph unicode="3" d="M979 1118q0 -136 -85.5 -229t-229.5 -119v-6q176 -22 268 -112t92 -242q0 -205 -139.5 -317.5t-401.5 -112.5q-223 0 -389 83v99q84 -44 188.5 -69t196.5 -25q221 0 332 89.5t111 252.5q0 145 -113.5 223t-333.5 78h-158v96h160q182 0 288.5 86.5t106.5 234.5 q0 122 -86.5 195.5t-226.5 73.5q-109 0 -199 -30.5t-202 -104.5l-49 67q85 71 205 112.5t243 41.5q202 0 312 -95.5t110 -269.5z" />
+<glyph unicode="4" d="M1141 373h-252v-373h-94v373h-752v67l725 1030h121v-1011h252v-86zM795 459v418q0 302 14 507h-8q-20 -37 -123 -188l-516 -737h633z" />
+<glyph unicode="5" d="M537 879q234 0 368.5 -113t134.5 -311q0 -225 -140 -350t-386 -125q-109 0 -207 21.5t-164 61.5v103q108 -55 192 -76.5t179 -21.5q192 0 308 101.5t116 274.5q0 163 -113 256t-307 93q-130 0 -272 -39l-60 39l58 669h704v-96h-610l-45 -516q156 29 244 29z" />
+<glyph unicode="6" d="M131 623q0 285 77.5 479.5t220 288.5t343.5 94q94 0 172 -23v-88q-73 27 -176 27q-247 0 -384.5 -178t-154.5 -518h13q76 98 174 148t207 50q205 0 320.5 -117t115.5 -323q0 -224 -121.5 -353.5t-327.5 -129.5q-222 0 -350.5 169.5t-128.5 473.5zM610 68q164 0 255 103 t91 294q0 168 -90 262t-245 94q-102 0 -189.5 -45t-139.5 -119.5t-52 -152.5q0 -111 49.5 -213.5t134 -162.5t186.5 -60z" />
+<glyph unicode="7" d="M334 0l602 1366h-827v96h946v-73l-604 -1389h-117z" />
+<glyph unicode="8" d="M582 1487q186 0 299.5 -95t113.5 -257q0 -112 -70.5 -198t-228.5 -159q192 -79 270 -173t78 -228q0 -181 -126.5 -289t-339.5 -108q-221 0 -339 101t-118 294q0 131 83 230t257 169q-161 76 -227 160.5t-66 202.5q0 105 53 184.5t148.5 122.5t212.5 43zM223 360 q0 -138 93.5 -214t261.5 -76q164 0 264 80.5t100 218.5q0 124 -78.5 201.5t-302.5 162.5q-184 -71 -261 -157t-77 -216zM580 1397q-141 0 -226.5 -69.5t-85.5 -190.5q0 -70 31.5 -123.5t91 -97t199.5 -101.5q163 63 234 139t71 183q0 120 -84.5 190t-230.5 70z" />
+<glyph unicode="9" d="M1036 842q0 -288 -75.5 -482t-220 -287t-349.5 -93q-104 0 -192 26v86q43 -14 103.5 -21.5t92.5 -7.5q247 0 387 178.5t156 520.5h-12q-73 -96 -174 -147.5t-211 -51.5q-203 0 -316.5 112t-113.5 318q0 220 124.5 356t323.5 136q144 0 252 -75.5t166.5 -221.5t58.5 -346z M559 1397q-158 0 -252 -106.5t-94 -291.5q0 -174 87 -264t249 -90q101 0 188.5 45t139 119.5t51.5 151.5q0 117 -46.5 219t-130 159.5t-192.5 57.5z" />
+<glyph unicode=":" horiz-adv-x="487" d="M162 78q0 98 80 98q82 0 82 -98t-82 -98q-80 0 -80 98zM162 971q0 98 80 98q82 0 82 -98q0 -53 -23.5 -76t-58.5 -23q-34 0 -57 23t-23 76z" />
+<glyph unicode=";" horiz-adv-x="487" d="M303 238l12 -21q-75 -265 -174 -481h-65q29 97 62 245.5t48 256.5h117zM162 971q0 98 80 98q82 0 82 -98q0 -53 -23.5 -76t-58.5 -23q-34 0 -57 23t-23 76z" />
+<glyph unicode="&#x3c;" d="M1059 266l-948 416v61l948 474v-95l-823 -405l823 -355v-96z" />
+<glyph unicode="=" d="M111 885v82h948v-82h-948zM111 477v82h948v-82h-948z" />
+<glyph unicode="&#x3e;" d="M111 362l823 355l-823 405v95l948 -474v-61l-948 -416v96z" />
+<glyph unicode="?" horiz-adv-x="862" d="M293 377v37q0 123 37.5 201t138.5 167l91 79q72 61 103 121t31 138q0 127 -83.5 202t-219.5 75q-79 0 -148 -17.5t-149 -56.5l-37 80q110 48 184.5 64t153.5 16q183 0 288 -98.5t105 -270.5q0 -68 -18 -119t-50.5 -94.5t-78.5 -84t-102 -87.5q-64 -54 -98.5 -98.5 t-50 -93.5t-15.5 -146v-14h-82zM260 78q0 98 80 98q82 0 82 -98t-82 -98q-80 0 -80 98z" />
+<glyph unicode="@" horiz-adv-x="1815" d="M1702 725q0 -228 -90.5 -366t-245.5 -138q-89 0 -144.5 54t-64.5 147h-4q-43 -100 -124 -150.5t-189 -50.5q-148 0 -229 96.5t-81 270.5q0 202 120.5 330.5t314.5 128.5q138 0 286 -41l-22 -464v-30q0 -104 35 -156.5t116 -52.5q103 0 168.5 116.5t65.5 303.5 q0 194 -79 340t-225.5 224.5t-334.5 78.5q-230 0 -405.5 -99.5t-270 -281.5t-94.5 -418q0 -322 167 -497.5t474 -175.5q93 0 188.5 18t231.5 70v-99q-203 -80 -414 -80q-349 0 -544 200.5t-195 557.5q0 256 108.5 460.5t307 317.5t448.5 113q215 0 380.5 -89t255 -254.5 t89.5 -383.5zM633 590q0 -143 55 -215t174 -72q255 0 273 346l16 291q-79 27 -193 27q-149 0 -237 -102.5t-88 -274.5z" />
+<glyph unicode="A" horiz-adv-x="1229" d="M911 516h-594l-204 -516h-113l588 1468h65l576 -1468h-115zM354 608h523l-199 527q-25 62 -60 172q-27 -96 -59 -174z" />
+<glyph unicode="B" horiz-adv-x="1284" d="M207 1462h401q271 0 398 -92t127 -278q0 -127 -77.5 -211.5t-226.5 -108.5v-6q175 -26 257.5 -110.5t82.5 -235.5q0 -202 -134 -311t-380 -109h-448v1462zM309 811h322q206 0 299.5 68.5t93.5 214.5t-105.5 212t-314.5 66h-295v-561zM309 721v-631h344q406 0 406 330 q0 301 -428 301h-322z" />
+<glyph unicode="C" horiz-adv-x="1272" d="M831 1391q-275 0 -433 -176t-158 -482q0 -313 149 -486t426 -173q184 0 338 47v-90q-145 -51 -362 -51q-308 0 -485 199t-177 556q0 223 84.5 393t243 262.5t368.5 92.5q214 0 383 -80l-41 -92q-160 80 -336 80z" />
+<glyph unicode="D" horiz-adv-x="1446" d="M1317 745q0 -368 -193 -556.5t-567 -188.5h-350v1462h395q350 0 532.5 -183t182.5 -534zM1206 741q0 314 -159.5 472.5t-468.5 158.5h-269v-1282h242q655 0 655 651z" />
+<glyph unicode="E" horiz-adv-x="1130" d="M1006 0h-799v1462h799v-94h-697v-553h658v-94h-658v-627h697v-94z" />
+<glyph unicode="F" horiz-adv-x="1028" d="M309 0h-102v1462h801v-94h-699v-620h660v-95h-660v-653z" />
+<glyph unicode="G" horiz-adv-x="1481" d="M782 737h539v-667q-212 -90 -477 -90q-346 0 -530.5 195.5t-184.5 553.5q0 223 91.5 395.5t262 266.5t391.5 94q239 0 429 -88l-41 -92q-190 88 -394 88q-289 0 -458.5 -178.5t-169.5 -481.5q0 -330 161 -496.5t473 -166.5q202 0 343 57v514h-435v96z" />
+<glyph unicode="H" horiz-adv-x="1473" d="M1266 0h-103v719h-854v-719h-102v1462h102v-649h854v649h103v-1462z" />
+<glyph unicode="I" horiz-adv-x="516" d="M207 0v1462h102v-1462h-102z" />
+<glyph unicode="J" horiz-adv-x="506" d="M-33 -369q-92 0 -151 27v88q78 -20 149 -20q242 0 242 264v1472h102v-1462q0 -369 -342 -369z" />
+<glyph unicode="K" horiz-adv-x="1190" d="M1190 0h-125l-561 772l-195 -172v-600h-102v1462h102v-760l162 162l573 598h130l-599 -618z" />
+<glyph unicode="L" horiz-adv-x="1051" d="M207 0v1462h102v-1366h697v-96h-799z" />
+<glyph unicode="M" horiz-adv-x="1767" d="M850 0l-545 1350h-8q8 -124 8 -254v-1096h-98v1462h158l518 -1286h6l518 1286h154v-1462h-103v1108q0 116 12 240h-8l-547 -1348h-65z" />
+<glyph unicode="N" horiz-adv-x="1477" d="M1270 0h-103l-866 1298h-8q12 -232 12 -350v-948h-98v1462h102l865 -1296h6q-9 180 -9 342v954h99v-1462z" />
+<glyph unicode="O" horiz-adv-x="1565" d="M1436 733q0 -348 -174 -550.5t-480 -202.5q-305 0 -479 202.5t-174 552.5q0 349 175.5 549.5t479.5 200.5q306 0 479 -201.5t173 -550.5zM240 733q0 -314 140 -485.5t402 -171.5q264 0 403.5 170t139.5 487q0 316 -139.5 484.5t-401.5 168.5q-261 0 -402.5 -170 t-141.5 -483z" />
+<glyph unicode="P" horiz-adv-x="1198" d="M1087 1042q0 -212 -144 -325t-408 -113h-226v-604h-102v1462h358q522 0 522 -420zM309 692h201q247 0 357 81.5t110 264.5q0 169 -104 250.5t-322 81.5h-242v-678z" />
+<glyph unicode="Q" horiz-adv-x="1565" d="M1436 733q0 -294 -126 -486.5t-349 -246.5l333 -348h-166l-282 330l-33 -2h-31q-305 0 -479 202.5t-174 552.5q0 349 175.5 549.5t479.5 200.5q306 0 479 -201.5t173 -550.5zM240 733q0 -314 140 -485.5t402 -171.5q264 0 403.5 170t139.5 487q0 316 -139.5 484.5 t-401.5 168.5q-261 0 -402.5 -170t-141.5 -483z" />
+<glyph unicode="R" horiz-adv-x="1217" d="M309 637v-637h-102v1462h348q272 0 402 -100.5t130 -302.5q0 -147 -77.5 -248t-235.5 -145l397 -666h-122l-377 637h-363zM309 725h279q185 0 287 82.5t102 243.5q0 167 -100 243t-326 76h-242v-645z" />
+<glyph unicode="S" horiz-adv-x="1116" d="M1014 377q0 -183 -134.5 -290t-357.5 -107q-268 0 -411 59v102q158 -67 403 -67q180 0 285.5 82.5t105.5 216.5q0 83 -35 137.5t-114 99.5t-232 97q-224 77 -309.5 166.5t-85.5 238.5q0 164 128.5 267.5t330.5 103.5q206 0 387 -78l-37 -88q-182 76 -348 76 q-162 0 -258 -75t-96 -204q0 -81 29.5 -133t96.5 -93.5t230 -99.5q171 -59 257 -114.5t125.5 -126t39.5 -170.5z" />
+<glyph unicode="T" horiz-adv-x="1073" d="M588 0h-103v1366h-475v96h1053v-96h-475v-1366z" />
+<glyph unicode="U" horiz-adv-x="1473" d="M1282 1462v-946q0 -252 -146 -394t-407 -142q-254 0 -396.5 142.5t-142.5 397.5v942h103v-946q0 -211 117 -328.5t331 -117.5q209 0 324 115.5t115 320.5v956h102z" />
+<glyph unicode="V" horiz-adv-x="1182" d="M1071 1462h111l-547 -1462h-90l-545 1462h109l368 -995q84 -225 113 -338q20 75 79 233z" />
+<glyph unicode="W" horiz-adv-x="1827" d="M1372 0h-84l-321 1128q-40 139 -60 228q-16 -87 -45.5 -200t-322.5 -1156h-86l-402 1462h107l256 -942q15 -57 28 -105.5t23.5 -91t19 -82t15.5 -79.5q24 136 102 413l250 887h113l293 -1018q51 -176 73 -284q13 72 33.5 153t308.5 1149h103z" />
+<glyph unicode="X" horiz-adv-x="1102" d="M1102 0h-117l-432 682l-440 -682h-113l492 762l-447 700h115l395 -626l401 626h109l-453 -698z" />
+<glyph unicode="Y" horiz-adv-x="1081" d="M543 662l428 800h110l-487 -897v-565h-105v557l-489 905h117z" />
+<glyph unicode="Z" horiz-adv-x="1180" d="M1098 0h-1016v76l856 1290h-817v96h954v-76l-858 -1290h881v-96z" />
+<glyph unicode="[" horiz-adv-x="653" d="M602 -324h-428v1786h428v-94h-330v-1597h330v-95z" />
+<glyph unicode="\" horiz-adv-x="698" d="M127 1462l547 -1462h-103l-546 1462h102z" />
+<glyph unicode="]" horiz-adv-x="653" d="M51 -229h330v1597h-330v94h428v-1786h-428v95z" />
+<glyph unicode="^" d="M88 561l465 912h68l460 -912h-100l-395 791l-398 -791h-100z" />
+<glyph unicode="_" horiz-adv-x="842" d="M846 -266h-850v82h850v-82z" />
+<glyph unicode="`" horiz-adv-x="1182" d="M776 1241h-69q-96 79 -188.5 171.5t-125.5 139.5v17h142q26 -48 98.5 -142t142.5 -170v-16z" />
+<glyph unicode="a" horiz-adv-x="1085" d="M842 0l-25 172h-8q-82 -105 -168.5 -148.5t-204.5 -43.5q-160 0 -249 82t-89 227q0 159 132.5 247t383.5 93l207 6v72q0 155 -63 234t-203 79q-151 0 -313 -84l-37 86q179 84 354 84q179 0 267.5 -93t88.5 -290v-723h-73zM442 70q174 0 274.5 99.5t100.5 276.5v107 l-190 -8q-229 -11 -326.5 -71.5t-97.5 -188.5q0 -102 62.5 -158.5t176.5 -56.5z" />
+<glyph unicode="b" horiz-adv-x="1219" d="M641 1108q228 0 343.5 -143.5t115.5 -419.5q0 -271 -121.5 -418t-341.5 -147q-116 0 -209 48t-147 136h-9l-28 -164h-62v1556h99v-391q0 -88 -4 -162l-3 -85h7q62 98 149.5 144t210.5 46zM639 1018q-192 0 -275 -110t-83 -363v-17q0 -246 86.5 -353t269.5 -107 q178 0 268 124.5t90 354.5q0 471 -356 471z" />
+<glyph unicode="c" horiz-adv-x="973" d="M616 -20q-233 0 -365 147t-132 410q0 270 137 420.5t375 150.5q141 0 270 -49l-27 -88q-141 47 -245 47q-200 0 -303 -123.5t-103 -355.5q0 -220 103 -344.5t288 -124.5q148 0 275 53v-92q-104 -51 -273 -51z" />
+<glyph unicode="d" horiz-adv-x="1219" d="M580 1108q118 0 204 -43t154 -147h6q-6 126 -6 247v391h98v-1556h-65l-25 166h-8q-124 -186 -356 -186q-225 0 -344 140t-119 408q0 282 118 431t343 149zM580 1018q-178 0 -267.5 -125t-89.5 -363q0 -462 359 -462q184 0 270 107t86 353v17q0 252 -84.5 362.5 t-273.5 110.5z" />
+<glyph unicode="e" horiz-adv-x="1124" d="M621 -20q-237 0 -369.5 146t-132.5 409q0 260 128 416.5t345 156.5q192 0 303 -134t111 -364v-80h-783q2 -224 104.5 -342t293.5 -118q93 0 163.5 13t178.5 56v-90q-92 -40 -170 -54.5t-172 -14.5zM592 1020q-157 0 -252 -103.5t-111 -298.5h672q0 189 -82 295.5 t-227 106.5z" />
+<glyph unicode="f" horiz-adv-x="614" d="M586 1001h-256v-1001h-99v1001h-202v58l202 37v84q0 200 73.5 293.5t240.5 93.5q90 0 180 -27l-23 -86q-80 25 -159 25q-116 0 -164.5 -68.5t-48.5 -222.5v-101h256v-86z" />
+<glyph unicode="g" horiz-adv-x="1071" d="M1030 1087v-69l-225 -14q90 -112 90 -246q0 -157 -104.5 -254.5t-280.5 -97.5q-74 0 -104 6q-59 -31 -90 -73t-31 -89q0 -52 39.5 -76t132.5 -24h190q177 0 271 -71.5t94 -211.5q0 -172 -139.5 -265.5t-397.5 -93.5q-205 0 -317.5 79t-112.5 220q0 112 69.5 186 t188.5 101q-49 21 -78.5 59.5t-29.5 88.5q0 109 139 192q-95 39 -148 122.5t-53 191.5q0 163 103.5 261.5t279.5 98.5q107 0 166 -21h348zM150 -184q0 -224 333 -224q428 0 428 273q0 98 -67 142t-217 44h-178q-299 0 -299 -235zM233 748q0 -126 76.5 -195.5t204.5 -69.5 q136 0 208.5 69t72.5 200q0 139 -74.5 208.5t-208.5 69.5q-130 0 -204.5 -74.5t-74.5 -207.5z" />
+<glyph unicode="h" horiz-adv-x="1208" d="M940 0v705q0 164 -69 238.5t-214 74.5q-195 0 -285.5 -98.5t-90.5 -319.5v-600h-99v1556h99v-495l-5 -139h7q61 98 154 142t231 44q370 0 370 -397v-711h-98z" />
+<glyph unicode="i" horiz-adv-x="463" d="M281 0h-99v1087h99v-1087zM168 1389q0 96 63 96q31 0 48.5 -25t17.5 -71q0 -45 -17.5 -71t-48.5 -26q-63 0 -63 97z" />
+<glyph unicode="j" horiz-adv-x="463" d="M37 -492q-80 0 -135 25v86q69 -20 129 -20q151 0 151 176v1312h99v-1298q0 -135 -63.5 -208t-180.5 -73zM168 1389q0 96 63 96q31 0 48.5 -25t17.5 -71q0 -45 -17.5 -71t-48.5 -26q-63 0 -63 97z" />
+<glyph unicode="k" horiz-adv-x="991" d="M279 477l555 610h120l-428 -464l465 -623h-119l-413 549l-178 -162v-387h-99v1556h99v-780l-7 -299h5z" />
+<glyph unicode="l" horiz-adv-x="463" d="M281 0h-99v1556h99v-1556z" />
+<glyph unicode="m" horiz-adv-x="1808" d="M1540 0v713q0 159 -62 232t-190 73q-167 0 -247 -92t-80 -289v-637h-101v743q0 275 -252 275q-171 0 -249 -99.5t-78 -318.5v-600h-99v1087h82l21 -149h6q45 81 128 125.5t183 44.5q257 0 330 -193h4q53 93 142.5 143t203.5 50q178 0 267 -95t89 -302v-711h-98z" />
+<glyph unicode="n" horiz-adv-x="1208" d="M940 0v705q0 164 -69 238.5t-214 74.5q-195 0 -285.5 -98.5t-90.5 -319.5v-600h-99v1087h84l19 -149h6q106 170 377 170q370 0 370 -397v-711h-98z" />
+<glyph unicode="o" horiz-adv-x="1200" d="M1081 545q0 -266 -129 -415.5t-356 -149.5q-143 0 -252 69t-167 198t-58 298q0 266 129 414.5t354 148.5q224 0 351.5 -150.5t127.5 -412.5zM223 545q0 -224 98.5 -349.5t278.5 -125.5t278.5 125.5t98.5 349.5q0 225 -99.5 349t-279.5 124t-277.5 -123.5t-97.5 -349.5z " />
+<glyph unicode="p" horiz-adv-x="1219" d="M647 -20q-251 0 -366 188h-7l3 -84q4 -74 4 -162v-414h-99v1579h84l19 -155h6q112 176 358 176q220 0 335.5 -144.5t115.5 -420.5q0 -268 -121.5 -415.5t-331.5 -147.5zM645 68q167 0 258.5 124t91.5 347q0 479 -346 479q-190 0 -279 -104.5t-89 -340.5v-32 q0 -255 85.5 -364t278.5 -109z" />
+<glyph unicode="q" horiz-adv-x="1219" d="M569 -20q-214 0 -332 142t-118 410q0 275 118 425.5t338 150.5q236 0 353 -174h6l18 153h84v-1579h-98v414q0 122 6 248h-6q-118 -190 -369 -190zM571 68q198 0 282.5 109t84.5 366v12q0 245 -85 354t-271 109q-176 0 -267.5 -124t-91.5 -364q0 -229 89.5 -345.5 t258.5 -116.5z" />
+<glyph unicode="r" horiz-adv-x="797" d="M610 1108q69 0 148 -14l-19 -95q-68 17 -141 17q-139 0 -228 -118t-89 -298v-600h-99v1087h84l10 -196h7q67 120 143 168.5t184 48.5z" />
+<glyph unicode="s" horiz-adv-x="954" d="M856 283q0 -146 -111 -224.5t-315 -78.5q-218 0 -346 67v107q164 -82 346 -82q161 0 244.5 53.5t83.5 142.5q0 82 -66.5 138t-218.5 110q-163 59 -229 101.5t-99.5 96t-33.5 130.5q0 122 102.5 193t286.5 71q176 0 334 -66l-37 -90q-160 66 -297 66q-133 0 -211 -44 t-78 -122q0 -85 60.5 -136t236.5 -114q147 -53 214 -95.5t100.5 -96.5t33.5 -127z" />
+<glyph unicode="t" horiz-adv-x="686" d="M469 68q94 0 164 16v-80q-72 -24 -166 -24q-144 0 -212.5 77t-68.5 242v702h-161v58l161 45l50 246h51v-263h319v-86h-319v-688q0 -125 44 -185t138 -60z" />
+<glyph unicode="u" horiz-adv-x="1208" d="M268 1087v-704q0 -164 69 -238.5t214 -74.5q194 0 285.5 98t91.5 319v600h98v-1087h-84l-18 150h-6q-106 -170 -377 -170q-371 0 -371 397v710h98z" />
+<glyph unicode="v" horiz-adv-x="940" d="M420 0l-420 1087h102l281 -739q56 -142 84 -248h6q41 136 84 250l281 737h102l-420 -1087h-100z" />
+<glyph unicode="w" horiz-adv-x="1481" d="M1051 0l-238 727q-23 74 -59 217h-6l-21 -74l-45 -145l-242 -725h-98l-311 1087h106l174 -630q61 -234 80 -344h6q59 234 86 311l224 663h90l213 -661q72 -235 88 -311h6q8 65 80 348l166 624h100l-295 -1087h-104z" />
+<glyph unicode="x" horiz-adv-x="1020" d="M449 559l-379 528h114l324 -458l321 458h109l-373 -528l400 -559h-115l-342 485l-344 -485h-109z" />
+<glyph unicode="y" horiz-adv-x="940" d="M0 1087h102l230 -610q105 -281 133 -379h6q42 129 137 385l230 604h102l-487 -1263q-59 -154 -99 -208t-93.5 -81t-129.5 -27q-57 0 -127 21v86q58 -16 125 -16q51 0 90 24t70.5 74.5t73 160t53.5 142.5z" />
+<glyph unicode="z" horiz-adv-x="944" d="M858 0h-776v63l645 936h-598v88h727v-63l-649 -936h651v-88z" />
+<glyph unicode="{" horiz-adv-x="723" d="M389 -27q0 -102 59.5 -152.5t202.5 -53.5v-91q-195 0 -277.5 75t-82.5 231v337q0 205 -230 209v80q122 2 176 51t54 148v350q0 299 360 305v-90q-138 -5 -200 -58t-62 -157v-305q0 -130 -44 -194t-142 -85v-8q97 -20 141.5 -83.5t44.5 -186.5v-322z" />
+<glyph unicode="|" horiz-adv-x="1108" d="M508 1561h92v-2067h-92v2067z" />
+<glyph unicode="}" horiz-adv-x="723" d="M334 295q0 123 44.5 186.5t141.5 83.5v8q-97 20 -141.5 84t-44.5 195v305q0 103 -61.5 156.5t-200.5 58.5v90q174 0 267 -77.5t93 -227.5v-350q0 -100 54.5 -148.5t175.5 -50.5v-80q-230 -4 -230 -209v-337q0 -155 -82.5 -230.5t-277.5 -75.5v91q141 2 201.5 52.5 t60.5 153.5v322z" />
+<glyph unicode="~" d="M334 745q-49 0 -108 -30.5t-115 -89.5v94q108 110 233 110q61 0 115 -13.5t155 -57.5q126 -58 220 -58q56 0 109.5 30.5t115.5 94.5v-96q-48 -49 -104.5 -81t-129.5 -32q-116 0 -270 72q-124 57 -221 57z" />
+<glyph unicode="&#xa1;" horiz-adv-x="492" d="M215 711h61l29 -1086h-119zM166 1010q0 98 80 98q82 0 82 -98q0 -53 -23.5 -76t-58.5 -23q-34 0 -57 23t-23 76z" />
+<glyph unicode="&#xa2;" d="M602 190q-186 30 -288.5 175t-102.5 380q0 232 102.5 381.5t288.5 182.5v174h82v-166h14q131 0 275 -55l-31 -84q-134 51 -237 51q-187 0 -288.5 -122.5t-101.5 -358.5q0 -225 100.5 -349.5t280.5 -124.5q131 0 267 58v-92q-110 -56 -267 -56h-12v-204h-82v210z" />
+<glyph unicode="&#xa3;" d="M412 676v-256q0 -116 -35 -196t-113 -128h809v-96h-995v84q110 21 171.5 110t61.5 224v258h-211v82h211v297q0 204 98 315t281 111q175 0 330 -68l-35 -86q-157 66 -295 66q-141 0 -209.5 -81t-68.5 -253v-301h411v-82h-411z" />
+<glyph unicode="&#xa4;" d="M991 723q0 -151 -90 -256l139 -141l-59 -60l-137 142q-110 -93 -260 -93q-153 0 -260 93l-138 -142l-59 60l139 141q-90 106 -90 256q0 147 90 258l-139 141l59 60l138 -142q103 93 260 93q155 0 260 -93l137 142l59 -60l-139 -141q90 -111 90 -258zM584 395 q134 0 228.5 95.5t94.5 232.5q0 136 -95 233t-228 97q-134 0 -229 -97t-95 -233t94.5 -232t229.5 -96z" />
+<glyph unicode="&#xa5;" d="M586 666l428 796h110l-432 -788h283v-82h-338v-205h338v-82h-338v-305h-105v305h-337v82h337v205h-337v82h278l-430 788h117z" />
+<glyph unicode="&#xa6;" horiz-adv-x="1108" d="M508 1561h92v-764h-92v764zM508 258h92v-764h-92v764z" />
+<glyph unicode="&#xa7;" horiz-adv-x="1057" d="M145 813q0 83 50.5 152.5t138.5 107.5q-86 47 -125 102t-39 136q0 117 101.5 183.5t275.5 66.5q175 0 336 -64l-35 -80q-91 34 -158.5 47t-144.5 13q-134 0 -205.5 -44.5t-71.5 -119.5q0 -54 25.5 -88.5t85.5 -65.5t188 -74q192 -64 264 -132.5t72 -170.5 q0 -173 -186 -274q86 -42 129 -96t43 -136q0 -135 -113 -207.5t-311 -72.5q-92 0 -171 15t-165 52v95q182 -78 332 -78q162 0 247 49.5t85 140.5q0 55 -25 87.5t-88.5 65.5t-190.5 79q-200 73 -272 141.5t-72 169.5zM246 825q0 -65 31.5 -104t105.5 -75t250 -99 q82 41 126 98t44 121q0 62 -32 102t-108.5 77t-236.5 87q-81 -23 -130.5 -79t-49.5 -128z" />
+<glyph unicode="&#xa8;" horiz-adv-x="1182" d="M336 1389q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86zM717 1389q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86z" />
+<glyph unicode="&#xa9;" horiz-adv-x="1704" d="M897 1092q-142 0 -222.5 -94.5t-80.5 -264.5q0 -186 74.5 -275t220.5 -89q84 0 198 43v-88q-102 -45 -208 -45q-187 0 -288.5 115t-101.5 331q0 208 111 332.5t297 124.5q119 0 227 -52l-37 -83q-98 45 -190 45zM100 731q0 200 100 375t275 276t377 101q200 0 375 -100 t276 -275t101 -377q0 -197 -97 -370t-272 -277t-383 -104q-207 0 -382 103.5t-272.5 276.5t-97.5 371zM193 731q0 -178 88.5 -329.5t240.5 -240.5t330 -89t329.5 88.5t240.5 240.5t89 330q0 174 -85.5 325t-239 243t-334.5 92q-176 0 -328.5 -88.5t-241.5 -242.5t-89 -329z " />
+<glyph unicode="&#xaa;" horiz-adv-x="686" d="M512 813l-25 72q-84 -84 -202 -84q-95 0 -151 49t-56 139q0 100 80 151.5t241 59.5l95 4v43q0 77 -38 114.5t-106 37.5q-87 0 -196 -49l-33 73q117 56 231 56q228 0 228 -215v-451h-68zM168 993q0 -54 35 -85t96 -31q90 0 142.5 50t52.5 142v64l-88 -5 q-116 -6 -177 -36.5t-61 -98.5z" />
+<glyph unicode="&#xab;" horiz-adv-x="885" d="M82 543l309 393l62 -43l-254 -363l254 -362l-62 -43l-309 391v27zM442 543l310 393l61 -43l-254 -363l254 -362l-61 -43l-310 391v27z" />
+<glyph unicode="&#xac;" d="M1038 764v-494h-82v412h-845v82h927z" />
+<glyph unicode="&#xad;" horiz-adv-x="659" d="M92 512zM92 512v82h475v-82h-475z" />
+<glyph unicode="&#xae;" horiz-adv-x="1704" d="M709 731h112q91 0 143 46.5t52 135.5q0 172 -197 172h-110v-354zM1120 918q0 -79 -38.5 -139.5t-110.5 -94.5l237 -393h-121l-210 360h-168v-360h-101v880h211q143 0 222 -62t79 -191zM100 731q0 200 100 375t275 276t377 101q200 0 375 -100t276 -275t101 -377 q0 -197 -97 -370t-272 -277t-383 -104q-207 0 -382 103.5t-272.5 276.5t-97.5 371zM193 731q0 -178 88.5 -329.5t240.5 -240.5t330 -89t329.5 88.5t240.5 240.5t89 330q0 174 -85.5 325t-239 243t-334.5 92q-176 0 -328.5 -88.5t-241.5 -242.5t-89 -329z" />
+<glyph unicode="&#xaf;" horiz-adv-x="1024" d="M1030 1556h-1036v82h1036v-82z" />
+<glyph unicode="&#xb0;" horiz-adv-x="877" d="M139 1184q0 132 86.5 215.5t212.5 83.5t212.5 -83.5t86.5 -215.5t-86.5 -215.5t-212.5 -83.5q-130 0 -214.5 83t-84.5 216zM229 1184q0 -91 61 -154t148 -63q86 0 147.5 62t61.5 155q0 92 -60 154.5t-149 62.5q-90 0 -149.5 -64t-59.5 -153z" />
+<glyph unicode="&#xb1;" d="M111 1zM111 1v82h948v-82h-948zM625 764h434v-82h-434v-432h-82v432h-432v82h432v434h82v-434z" />
+<glyph unicode="&#xb2;" horiz-adv-x="688" d="M629 586h-576v78l242 237q125 121 172 193t47 149q0 71 -46.5 112.5t-123.5 41.5q-108 0 -217 -82l-49 65q119 103 270 103q124 0 194 -63.5t70 -174.5q0 -47 -13 -89t-40 -85.5t-68.5 -90t-308.5 -306.5h447v-88z" />
+<glyph unicode="&#xb3;" horiz-adv-x="688" d="M616 1260q0 -78 -44 -131.5t-117 -75.5q186 -45 186 -211q0 -130 -88.5 -201.5t-247.5 -71.5q-144 0 -264 60v88q136 -62 266 -62q115 0 174.5 49t59.5 136q0 83 -59.5 122t-178.5 39h-131v84h135q105 0 158 43.5t53 120.5q0 67 -47 107.5t-127 40.5q-128 0 -246 -78 l-47 70q130 94 293 94q127 0 199.5 -60t72.5 -163z" />
+<glyph unicode="&#xb4;" horiz-adv-x="1182" d="M393 1257q73 79 144.5 171.5t97.5 140.5h141v-17q-36 -52 -122.5 -138t-190.5 -173h-70v16z" />
+<glyph unicode="&#xb5;" horiz-adv-x="1221" d="M281 1087v-704q0 -164 69 -238.5t213 -74.5q194 0 285.5 98t91.5 319v600h98v-1087h-84l-18 150h-6q-50 -77 -150 -123.5t-217 -46.5q-99 0 -167.5 27.5t-119.5 84.5q5 -92 5 -170v-414h-99v1579h99z" />
+<glyph unicode="&#xb6;" horiz-adv-x="1341" d="M1106 -260h-100v1722h-228v-1722h-100v819q-64 -18 -146 -18q-216 0 -317.5 125t-101.5 376q0 260 109 387t341 127h543v-1816z" />
+<glyph unicode="&#xb7;" horiz-adv-x="487" d="M162 623zM162 721q0 98 80 98q82 0 82 -98t-82 -98q-80 0 -80 98z" />
+<glyph unicode="&#xb8;" horiz-adv-x="420" d="M393 -291q0 -100 -67.5 -150.5t-188.5 -50.5q-68 0 -94 11v88q30 -10 92 -10q78 0 119 28t41 80q0 94 -193 121l93 174h96l-66 -117q168 -37 168 -174z" />
+<glyph unicode="&#xb9;" horiz-adv-x="688" d="M350 1462h92v-876h-98v547q0 99 12 233q-26 -23 -233 -145l-47 77z" />
+<glyph unicode="&#xba;" horiz-adv-x="739" d="M670 1141q0 -161 -80 -250.5t-223 -89.5t-220 86t-77 254q0 162 78 250t223 88q142 0 220.5 -87t78.5 -251zM160 1141q0 -264 209 -264t209 264q0 131 -50 194.5t-159 63.5t-159 -63.5t-50 -194.5z" />
+<glyph unicode="&#xbb;" horiz-adv-x="885" d="M803 518l-309 -393l-62 43l254 362l-254 363l62 43l309 -391v-27zM442 518l-309 -393l-61 43l254 362l-254 363l61 43l309 -391v-27z" />
+<glyph unicode="&#xbc;" horiz-adv-x="1516" d="M59 0zM333 1462h92v-876h-98v547q0 99 12 233q-26 -23 -233 -145l-47 77zM1148 1462l-811 -1462h-94l811 1462h94zM1392 242h-129v-241h-90v241h-413v60l407 581h96v-563h129v-78zM1173 320v221q0 132 8 232q-6 -12 -21.5 -35.5t-295.5 -417.5h309z" />
+<glyph unicode="&#xbd;" horiz-adv-x="1516" d="M11 0zM285 1462h92v-876h-98v547q0 99 12 233q-26 -23 -233 -145l-47 77zM1073 1462l-811 -1462h-94l811 1462h94zM1403 1h-576v78l242 237q125 121 172 193t47 149q0 71 -46.5 112.5t-123.5 41.5q-108 0 -217 -82l-49 65q119 103 270 103q124 0 194 -63.5t70 -174.5 q0 -47 -13 -89t-40 -85.5t-68.5 -90t-308.5 -306.5h447v-88z" />
+<glyph unicode="&#xbe;" horiz-adv-x="1516" d="M41 0zM616 1260q0 -78 -44 -131.5t-117 -75.5q186 -45 186 -211q0 -130 -88.5 -201.5t-247.5 -71.5q-144 0 -264 60v88q136 -62 266 -62q115 0 174.5 49t59.5 136q0 83 -59.5 122t-178.5 39h-131v84h135q105 0 158 43.5t53 120.5q0 67 -47 107.5t-127 40.5 q-128 0 -246 -78l-47 70q130 94 293 94q127 0 199.5 -60t72.5 -163zM1300 1462l-811 -1462h-94l811 1462h94zM1495 242h-129v-241h-90v241h-413v60l407 581h96v-563h129v-78zM1276 320v221q0 132 8 232q-6 -12 -21.5 -35.5t-295.5 -417.5h309z" />
+<glyph unicode="&#xbf;" horiz-adv-x="862" d="M569 711v-37q0 -125 -39.5 -204.5t-136.5 -164.5l-90 -79q-73 -61 -104 -120.5t-31 -138.5q0 -124 82 -200t221 -76q125 0 233 46l64 27l37 -79q-111 -48 -185.5 -64t-152.5 -16q-184 0 -288.5 99t-104.5 269q0 70 20 124t58.5 102t171.5 159q64 53 98.5 98.5t49.5 94 t15 145.5v15h82zM440 1010q0 98 80 98q82 0 82 -98q0 -53 -23.5 -76t-58.5 -23q-34 0 -57 23t-23 76z" />
+<glyph unicode="&#xc0;" horiz-adv-x="1229" d="M0 0zM911 516h-594l-204 -516h-113l588 1468h65l576 -1468h-115zM354 608h523l-199 527q-25 62 -60 172q-27 -96 -59 -174zM720 1579h-69q-96 79 -188.5 171.5t-125.5 139.5v17h142q26 -48 98.5 -142t142.5 -170v-16z" />
+<glyph unicode="&#xc1;" horiz-adv-x="1229" d="M0 0zM911 516h-594l-204 -516h-113l588 1468h65l576 -1468h-115zM354 608h523l-199 527q-25 62 -60 172q-27 -96 -59 -174zM504 1595q73 79 144.5 171.5t97.5 140.5h141v-17q-36 -52 -122.5 -138t-190.5 -173h-70v16z" />
+<glyph unicode="&#xc2;" horiz-adv-x="1229" d="M0 0zM911 516h-594l-204 -516h-113l588 1468h65l576 -1468h-115zM354 608h523l-199 527q-25 62 -60 172q-27 -96 -59 -174zM328 1595q62 67 131.5 156t110.5 156h98q68 -120 242 -312v-16h-70q-122 101 -221 207q-108 -114 -221 -207h-70v16z" />
+<glyph unicode="&#xc3;" horiz-adv-x="1229" d="M0 0zM911 516h-594l-204 -516h-113l588 1468h65l576 -1468h-115zM354 608h523l-199 527q-25 62 -60 172q-27 -96 -59 -174zM784 1581q-36 0 -75 18.5t-101 71.5q-32 26 -62.5 46t-62.5 20q-45 0 -75 -34.5t-48 -121.5h-73q10 111 63 174.5t137 63.5q48 0 88 -25t82 -59 q34 -28 66 -50t61 -22q46 0 77 36.5t48 119.5h76q-16 -116 -69 -177t-132 -61z" />
+<glyph unicode="&#xc4;" horiz-adv-x="1229" d="M0 0zM911 516h-594l-204 -516h-113l588 1468h65l576 -1468h-115zM354 608h523l-199 527q-25 62 -60 172q-27 -96 -59 -174zM367 1727q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86zM748 1727q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86z" />
+<glyph unicode="&#xc5;" horiz-adv-x="1229" d="M0 0zM911 516h-594l-204 -516h-113l588 1468h65l576 -1468h-115zM354 608h523l-199 527q-25 62 -60 172q-27 -96 -59 -174zM836 1610q0 -97 -60 -155t-157 -58t-157 58t-60 155q0 94 60 152.5t157 58.5t157 -59t60 -152zM482 1610q0 -66 37.5 -103.5t99.5 -37.5 t99.5 37.5t37.5 103.5q0 64 -39 101.5t-98 37.5q-62 0 -99.5 -38t-37.5 -101z" />
+<glyph unicode="&#xc6;" horiz-adv-x="1653" d="M1528 0h-717v516h-475l-227 -516h-111l653 1462h877v-94h-615v-553h576v-94h-576v-627h615v-94zM377 608h434v760h-100z" />
+<glyph unicode="&#xc7;" horiz-adv-x="1272" d="M129 0zM831 1391q-275 0 -433 -176t-158 -482q0 -313 149 -486t426 -173q184 0 338 47v-90q-145 -51 -362 -51q-308 0 -485 199t-177 556q0 223 84.5 393t243 262.5t368.5 92.5q214 0 383 -80l-41 -92q-160 80 -336 80zM911 -291q0 -100 -67.5 -150.5t-188.5 -50.5 q-68 0 -94 11v88q30 -10 92 -10q78 0 119 28t41 80q0 94 -193 121l93 174h96l-66 -117q168 -37 168 -174z" />
+<glyph unicode="&#xc8;" horiz-adv-x="1130" d="M207 0zM1006 0h-799v1462h799v-94h-697v-553h658v-94h-658v-627h697v-94zM697 1579h-69q-96 79 -188.5 171.5t-125.5 139.5v17h142q26 -48 98.5 -142t142.5 -170v-16z" />
+<glyph unicode="&#xc9;" horiz-adv-x="1130" d="M207 0zM1006 0h-799v1462h799v-94h-697v-553h658v-94h-658v-627h697v-94zM463 1595q73 79 144.5 171.5t97.5 140.5h141v-17q-36 -52 -122.5 -138t-190.5 -173h-70v16z" />
+<glyph unicode="&#xca;" horiz-adv-x="1130" d="M207 0zM1006 0h-799v1462h799v-94h-697v-553h658v-94h-658v-627h697v-94zM315 1595q62 67 131.5 156t110.5 156h98q68 -120 242 -312v-16h-70q-122 101 -221 207q-108 -114 -221 -207h-70v16z" />
+<glyph unicode="&#xcb;" horiz-adv-x="1130" d="M207 0zM1006 0h-799v1462h799v-94h-697v-553h658v-94h-658v-627h697v-94zM354 1727q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86zM735 1727q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86z" />
+<glyph unicode="&#xcc;" horiz-adv-x="516" d="M0 0zM207 0v1462h102v-1462h-102zM320 1579h-69q-96 79 -188.5 171.5t-125.5 139.5v17h142q26 -48 98.5 -142t142.5 -170v-16z" />
+<glyph unicode="&#xcd;" horiz-adv-x="516" d="M191 0zM207 0v1462h102v-1462h-102zM191 1595q73 79 144.5 171.5t97.5 140.5h141v-17q-36 -52 -122.5 -138t-190.5 -173h-70v16z" />
+<glyph unicode="&#xce;" horiz-adv-x="516" d="M0 0zM207 0v1462h102v-1462h-102zM-32 1595q62 67 131.5 156t110.5 156h98q68 -120 242 -312v-16h-70q-122 101 -221 207q-108 -114 -221 -207h-70v16z" />
+<glyph unicode="&#xcf;" horiz-adv-x="516" d="M5 0zM207 0v1462h102v-1462h-102zM5 1727q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86zM386 1727q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86z" />
+<glyph unicode="&#xd0;" horiz-adv-x="1466" d="M1317 745q0 -368 -193 -556.5t-567 -188.5h-350v678h-160v94h160v690h395q350 0 532.5 -183t182.5 -534zM1206 741q0 314 -159.5 472.5t-468.5 158.5h-269v-600h406v-94h-406v-588h242q655 0 655 651z" />
+<glyph unicode="&#xd1;" horiz-adv-x="1477" d="M207 0zM1270 0h-103l-866 1298h-8q12 -232 12 -350v-948h-98v1462h102l865 -1296h6q-9 180 -9 342v954h99v-1462zM897 1581q-36 0 -75 18.5t-101 71.5q-32 26 -62.5 46t-62.5 20q-45 0 -75 -34.5t-48 -121.5h-73q10 111 63 174.5t137 63.5q48 0 88 -25t82 -59 q34 -28 66 -50t61 -22q46 0 77 36.5t48 119.5h76q-16 -116 -69 -177t-132 -61z" />
+<glyph unicode="&#xd2;" horiz-adv-x="1565" d="M129 0zM1436 733q0 -348 -174 -550.5t-480 -202.5q-305 0 -479 202.5t-174 552.5q0 349 175.5 549.5t479.5 200.5q306 0 479 -201.5t173 -550.5zM240 733q0 -314 140 -485.5t402 -171.5q264 0 403.5 170t139.5 487q0 316 -139.5 484.5t-401.5 168.5q-261 0 -402.5 -170 t-141.5 -483zM885 1579h-69q-96 79 -188.5 171.5t-125.5 139.5v17h142q26 -48 98.5 -142t142.5 -170v-16z" />
+<glyph unicode="&#xd3;" horiz-adv-x="1565" d="M129 0zM1436 733q0 -348 -174 -550.5t-480 -202.5q-305 0 -479 202.5t-174 552.5q0 349 175.5 549.5t479.5 200.5q306 0 479 -201.5t173 -550.5zM240 733q0 -314 140 -485.5t402 -171.5q264 0 403.5 170t139.5 487q0 316 -139.5 484.5t-401.5 168.5q-261 0 -402.5 -170 t-141.5 -483zM686 1595q73 79 144.5 171.5t97.5 140.5h141v-17q-36 -52 -122.5 -138t-190.5 -173h-70v16z" />
+<glyph unicode="&#xd4;" horiz-adv-x="1565" d="M129 0zM1436 733q0 -348 -174 -550.5t-480 -202.5q-305 0 -479 202.5t-174 552.5q0 349 175.5 549.5t479.5 200.5q306 0 479 -201.5t173 -550.5zM240 733q0 -314 140 -485.5t402 -171.5q264 0 403.5 170t139.5 487q0 316 -139.5 484.5t-401.5 168.5q-261 0 -402.5 -170 t-141.5 -483zM492 1595q62 67 131.5 156t110.5 156h98q68 -120 242 -312v-16h-70q-122 101 -221 207q-108 -114 -221 -207h-70v16z" />
+<glyph unicode="&#xd5;" horiz-adv-x="1565" d="M129 0zM1436 733q0 -348 -174 -550.5t-480 -202.5q-305 0 -479 202.5t-174 552.5q0 349 175.5 549.5t479.5 200.5q306 0 479 -201.5t173 -550.5zM240 733q0 -314 140 -485.5t402 -171.5q264 0 403.5 170t139.5 487q0 316 -139.5 484.5t-401.5 168.5q-261 0 -402.5 -170 t-141.5 -483zM940 1581q-36 0 -75 18.5t-101 71.5q-32 26 -62.5 46t-62.5 20q-45 0 -75 -34.5t-48 -121.5h-73q10 111 63 174.5t137 63.5q48 0 88 -25t82 -59q34 -28 66 -50t61 -22q46 0 77 36.5t48 119.5h76q-16 -116 -69 -177t-132 -61z" />
+<glyph unicode="&#xd6;" horiz-adv-x="1565" d="M129 0zM1436 733q0 -348 -174 -550.5t-480 -202.5q-305 0 -479 202.5t-174 552.5q0 349 175.5 549.5t479.5 200.5q306 0 479 -201.5t173 -550.5zM240 733q0 -314 140 -485.5t402 -171.5q264 0 403.5 170t139.5 487q0 316 -139.5 484.5t-401.5 168.5q-261 0 -402.5 -170 t-141.5 -483zM529 1727q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86zM910 1727q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86z" />
+<glyph unicode="&#xd7;" d="M584 780l409 408l58 -58l-408 -407l406 -408l-58 -57l-407 408l-406 -408l-57 57l405 408l-407 407l57 58z" />
+<glyph unicode="&#xd8;" horiz-adv-x="1565" d="M1436 733q0 -348 -174 -550.5t-480 -202.5q-236 0 -395 120l-86 -120l-74 59l90 127q-188 200 -188 569q0 349 175.5 549.5t479.5 200.5q232 0 392 -121l108 152l72 -60l-111 -153q191 -207 191 -570zM1325 733q0 315 -139 486l-742 -1037q133 -106 338 -106 q264 0 403.5 170t139.5 487zM240 733q0 -312 139 -483l739 1034q-133 102 -334 102q-261 0 -402.5 -170t-141.5 -483z" />
+<glyph unicode="&#xd9;" horiz-adv-x="1473" d="M190 0zM1282 1462v-946q0 -252 -146 -394t-407 -142q-254 0 -396.5 142.5t-142.5 397.5v942h103v-946q0 -211 117 -328.5t331 -117.5q209 0 324 115.5t115 320.5v956h102zM833 1579h-69q-96 79 -188.5 171.5t-125.5 139.5v17h142q26 -48 98.5 -142t142.5 -170v-16z" />
+<glyph unicode="&#xda;" horiz-adv-x="1473" d="M190 0zM1282 1462v-946q0 -252 -146 -394t-407 -142q-254 0 -396.5 142.5t-142.5 397.5v942h103v-946q0 -211 117 -328.5t331 -117.5q209 0 324 115.5t115 320.5v956h102zM633 1595q73 79 144.5 171.5t97.5 140.5h141v-17q-36 -52 -122.5 -138t-190.5 -173h-70v16z" />
+<glyph unicode="&#xdb;" horiz-adv-x="1473" d="M190 0zM1282 1462v-946q0 -252 -146 -394t-407 -142q-254 0 -396.5 142.5t-142.5 397.5v942h103v-946q0 -211 117 -328.5t331 -117.5q209 0 324 115.5t115 320.5v956h102zM444 1595q62 67 131.5 156t110.5 156h98q68 -120 242 -312v-16h-70q-122 101 -221 207 q-108 -114 -221 -207h-70v16z" />
+<glyph unicode="&#xdc;" horiz-adv-x="1473" d="M190 0zM1282 1462v-946q0 -252 -146 -394t-407 -142q-254 0 -396.5 142.5t-142.5 397.5v942h103v-946q0 -211 117 -328.5t331 -117.5q209 0 324 115.5t115 320.5v956h102zM481 1727q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86zM862 1727q0 46 15.5 66 t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86z" />
+<glyph unicode="&#xdd;" horiz-adv-x="1081" d="M0 0zM543 662l428 800h110l-487 -897v-565h-105v557l-489 905h117zM434 1595q73 79 144.5 171.5t97.5 140.5h141v-17q-36 -52 -122.5 -138t-190.5 -173h-70v16z" />
+<glyph unicode="&#xde;" horiz-adv-x="1198" d="M1087 778q0 -212 -144 -325t-408 -113h-226v-340h-102v1462h102v-264h256q522 0 522 -420zM309 428h201q247 0 357 81.5t110 264.5q0 169 -104 250.5t-322 81.5h-242v-678z" />
+<glyph unicode="&#xdf;" horiz-adv-x="1194" d="M961 1284q0 -139 -139 -250q-81 -64 -110.5 -100.5t-29.5 -75.5q0 -44 14.5 -68t51.5 -57t102 -78q106 -75 151.5 -124.5t68 -103t22.5 -120.5q0 -156 -88 -241.5t-246 -85.5q-95 0 -174.5 18.5t-126.5 48.5v107q65 -38 148.5 -62t152.5 -24q114 0 174.5 54.5t60.5 160.5 q0 83 -39 144t-149 136q-127 87 -175 147t-48 146q0 60 32.5 110t106.5 108q74 57 106.5 105.5t32.5 106.5q0 93 -70 143t-202 50q-145 0 -226 -69t-81 -196v-1214h-99v1206q0 173 103.5 267t292.5 94q188 0 285.5 -72.5t97.5 -210.5z" />
+<glyph unicode="&#xe0;" horiz-adv-x="1085" d="M98 0zM842 0l-25 172h-8q-82 -105 -168.5 -148.5t-204.5 -43.5q-160 0 -249 82t-89 227q0 159 132.5 247t383.5 93l207 6v72q0 155 -63 234t-203 79q-151 0 -313 -84l-37 86q179 84 354 84q179 0 267.5 -93t88.5 -290v-723h-73zM442 70q174 0 274.5 99.5t100.5 276.5v107 l-190 -8q-229 -11 -326.5 -71.5t-97.5 -188.5q0 -102 62.5 -158.5t176.5 -56.5zM638 1241h-69q-96 79 -188.5 171.5t-125.5 139.5v17h142q26 -48 98.5 -142t142.5 -170v-16z" />
+<glyph unicode="&#xe1;" horiz-adv-x="1085" d="M98 0zM842 0l-25 172h-8q-82 -105 -168.5 -148.5t-204.5 -43.5q-160 0 -249 82t-89 227q0 159 132.5 247t383.5 93l207 6v72q0 155 -63 234t-203 79q-151 0 -313 -84l-37 86q179 84 354 84q179 0 267.5 -93t88.5 -290v-723h-73zM442 70q174 0 274.5 99.5t100.5 276.5v107 l-190 -8q-229 -11 -326.5 -71.5t-97.5 -188.5q0 -102 62.5 -158.5t176.5 -56.5zM422 1257q73 79 144.5 171.5t97.5 140.5h141v-17q-36 -52 -122.5 -138t-190.5 -173h-70v16z" />
+<glyph unicode="&#xe2;" horiz-adv-x="1085" d="M98 0zM842 0l-25 172h-8q-82 -105 -168.5 -148.5t-204.5 -43.5q-160 0 -249 82t-89 227q0 159 132.5 247t383.5 93l207 6v72q0 155 -63 234t-203 79q-151 0 -313 -84l-37 86q179 84 354 84q179 0 267.5 -93t88.5 -290v-723h-73zM442 70q174 0 274.5 99.5t100.5 276.5v107 l-190 -8q-229 -11 -326.5 -71.5t-97.5 -188.5q0 -102 62.5 -158.5t176.5 -56.5zM251 1257q62 67 131.5 156t110.5 156h98q68 -120 242 -312v-16h-70q-122 101 -221 207q-108 -114 -221 -207h-70v16z" />
+<glyph unicode="&#xe3;" horiz-adv-x="1085" d="M98 0zM842 0l-25 172h-8q-82 -105 -168.5 -148.5t-204.5 -43.5q-160 0 -249 82t-89 227q0 159 132.5 247t383.5 93l207 6v72q0 155 -63 234t-203 79q-151 0 -313 -84l-37 86q179 84 354 84q179 0 267.5 -93t88.5 -290v-723h-73zM442 70q174 0 274.5 99.5t100.5 276.5v107 l-190 -8q-229 -11 -326.5 -71.5t-97.5 -188.5q0 -102 62.5 -158.5t176.5 -56.5zM697 1243q-36 0 -75 18.5t-101 71.5q-32 26 -62.5 46t-62.5 20q-45 0 -75 -34.5t-48 -121.5h-73q10 111 63 174.5t137 63.5q48 0 88 -25t82 -59q34 -28 66 -50t61 -22q46 0 77 36.5t48 119.5 h76q-16 -116 -69 -177t-132 -61z" />
+<glyph unicode="&#xe4;" horiz-adv-x="1085" d="M98 0zM842 0l-25 172h-8q-82 -105 -168.5 -148.5t-204.5 -43.5q-160 0 -249 82t-89 227q0 159 132.5 247t383.5 93l207 6v72q0 155 -63 234t-203 79q-151 0 -313 -84l-37 86q179 84 354 84q179 0 267.5 -93t88.5 -290v-723h-73zM442 70q174 0 274.5 99.5t100.5 276.5v107 l-190 -8q-229 -11 -326.5 -71.5t-97.5 -188.5q0 -102 62.5 -158.5t176.5 -56.5zM282 1389q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86zM663 1389q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86z" />
+<glyph unicode="&#xe5;" horiz-adv-x="1085" d="M98 0zM842 0l-25 172h-8q-82 -105 -168.5 -148.5t-204.5 -43.5q-160 0 -249 82t-89 227q0 159 132.5 247t383.5 93l207 6v72q0 155 -63 234t-203 79q-151 0 -313 -84l-37 86q179 84 354 84q179 0 267.5 -93t88.5 -290v-723h-73zM442 70q174 0 274.5 99.5t100.5 276.5v107 l-190 -8q-229 -11 -326.5 -71.5t-97.5 -188.5q0 -102 62.5 -158.5t176.5 -56.5zM759 1456q0 -97 -60 -155t-157 -58t-157 58t-60 155q0 94 60 152.5t157 58.5t157 -59t60 -152zM405 1456q0 -66 37.5 -103.5t99.5 -37.5t99.5 37.5t37.5 103.5q0 64 -39 101.5t-98 37.5 q-62 0 -99.5 -38t-37.5 -101z" />
+<glyph unicode="&#xe6;" horiz-adv-x="1731" d="M1243 -20q-295 0 -397 256q-68 -133 -168 -194.5t-252 -61.5q-156 0 -242 82.5t-86 226.5q0 154 125 243t377 97l201 6v72q0 155 -61.5 234t-198.5 79q-148 0 -305 -84l-37 86q173 84 346 84q261 0 325 -211q111 213 347 213q184 0 289.5 -134.5t105.5 -363.5v-80h-715 q0 -460 348 -460q85 0 150 12t174 57v-90q-92 -41 -165 -55t-161 -14zM434 70q169 0 266 99.5t97 276.5v107l-187 -8q-219 -11 -313 -71.5t-94 -188.5q0 -102 61 -158.5t170 -56.5zM1217 1020q-284 0 -314 -402h604q0 188 -77.5 295t-212.5 107z" />
+<glyph unicode="&#xe7;" horiz-adv-x="973" d="M119 0zM616 -20q-233 0 -365 147t-132 410q0 270 137 420.5t375 150.5q141 0 270 -49l-27 -88q-141 47 -245 47q-200 0 -303 -123.5t-103 -355.5q0 -220 103 -344.5t288 -124.5q148 0 275 53v-92q-104 -51 -273 -51zM723 -291q0 -100 -67.5 -150.5t-188.5 -50.5 q-68 0 -94 11v88q30 -10 92 -10q78 0 119 28t41 80q0 94 -193 121l93 174h96l-66 -117q168 -37 168 -174z" />
+<glyph unicode="&#xe8;" horiz-adv-x="1124" d="M119 0zM621 -20q-237 0 -369.5 146t-132.5 409q0 260 128 416.5t345 156.5q192 0 303 -134t111 -364v-80h-783q2 -224 104.5 -342t293.5 -118q93 0 163.5 13t178.5 56v-90q-92 -40 -170 -54.5t-172 -14.5zM592 1020q-157 0 -252 -103.5t-111 -298.5h672q0 189 -82 295.5 t-227 106.5zM685 1241h-69q-96 79 -188.5 171.5t-125.5 139.5v17h142q26 -48 98.5 -142t142.5 -170v-16z" />
+<glyph unicode="&#xe9;" horiz-adv-x="1124" d="M119 0zM621 -20q-237 0 -369.5 146t-132.5 409q0 260 128 416.5t345 156.5q192 0 303 -134t111 -364v-80h-783q2 -224 104.5 -342t293.5 -118q93 0 163.5 13t178.5 56v-90q-92 -40 -170 -54.5t-172 -14.5zM592 1020q-157 0 -252 -103.5t-111 -298.5h672q0 189 -82 295.5 t-227 106.5zM452 1257q73 79 144.5 171.5t97.5 140.5h141v-17q-36 -52 -122.5 -138t-190.5 -173h-70v16z" />
+<glyph unicode="&#xea;" horiz-adv-x="1124" d="M119 0zM621 -20q-237 0 -369.5 146t-132.5 409q0 260 128 416.5t345 156.5q192 0 303 -134t111 -364v-80h-783q2 -224 104.5 -342t293.5 -118q93 0 163.5 13t178.5 56v-90q-92 -40 -170 -54.5t-172 -14.5zM592 1020q-157 0 -252 -103.5t-111 -298.5h672q0 189 -82 295.5 t-227 106.5zM290 1257q62 67 131.5 156t110.5 156h98q68 -120 242 -312v-16h-70q-122 101 -221 207q-108 -114 -221 -207h-70v16z" />
+<glyph unicode="&#xeb;" horiz-adv-x="1124" d="M119 0zM621 -20q-237 0 -369.5 146t-132.5 409q0 260 128 416.5t345 156.5q192 0 303 -134t111 -364v-80h-783q2 -224 104.5 -342t293.5 -118q93 0 163.5 13t178.5 56v-90q-92 -40 -170 -54.5t-172 -14.5zM592 1020q-157 0 -252 -103.5t-111 -298.5h672q0 189 -82 295.5 t-227 106.5zM331 1389q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86zM712 1389q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86z" />
+<glyph unicode="&#xec;" horiz-adv-x="463" d="M0 0zM281 0h-99v1087h99v-1087zM349 1241h-69q-96 79 -188.5 171.5t-125.5 139.5v17h142q26 -48 98.5 -142t142.5 -170v-16z" />
+<glyph unicode="&#xed;" horiz-adv-x="463" d="M107 0zM281 0h-99v1087h99v-1087zM107 1257q73 79 144.5 171.5t97.5 140.5h141v-17q-36 -52 -122.5 -138t-190.5 -173h-70v16z" />
+<glyph unicode="&#xee;" horiz-adv-x="463" d="M0 0zM281 0h-99v1087h99v-1087zM-58 1257q62 67 131.5 156t110.5 156h98q68 -120 242 -312v-16h-70q-122 101 -221 207q-108 -114 -221 -207h-70v16z" />
+<glyph unicode="&#xef;" horiz-adv-x="463" d="M0 0zM281 0h-99v1087h99v-1087zM-21 1389q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86zM360 1389q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86z" />
+<glyph unicode="&#xf0;" horiz-adv-x="1174" d="M1055 559q0 -276 -124 -427.5t-349 -151.5q-214 0 -339.5 130t-125.5 361q0 228 126.5 357.5t342.5 129.5q108 0 187.5 -33t148.5 -96l4 2q-64 270 -269 459l-270 -157l-49 77l244 146q-86 62 -199 119l45 81q147 -69 248 -145l225 137l49 -84l-202 -121 q154 -151 230.5 -353t76.5 -431zM950 557q0 146 -97 228.5t-267 82.5q-185 0 -275 -100.5t-90 -304.5q0 -186 94.5 -289.5t268.5 -103.5q179 0 272.5 123t93.5 364z" />
+<glyph unicode="&#xf1;" horiz-adv-x="1208" d="M182 0zM940 0v705q0 164 -69 238.5t-214 74.5q-195 0 -285.5 -98.5t-90.5 -319.5v-600h-99v1087h84l19 -149h6q106 170 377 170q370 0 370 -397v-711h-98zM779 1243q-36 0 -75 18.5t-101 71.5q-32 26 -62.5 46t-62.5 20q-45 0 -75 -34.5t-48 -121.5h-73q10 111 63 174.5 t137 63.5q48 0 88 -25t82 -59q34 -28 66 -50t61 -22q46 0 77 36.5t48 119.5h76q-16 -116 -69 -177t-132 -61z" />
+<glyph unicode="&#xf2;" horiz-adv-x="1200" d="M119 0zM1081 545q0 -266 -129 -415.5t-356 -149.5q-143 0 -252 69t-167 198t-58 298q0 266 129 414.5t354 148.5q224 0 351.5 -150.5t127.5 -412.5zM223 545q0 -224 98.5 -349.5t278.5 -125.5t278.5 125.5t98.5 349.5q0 225 -99.5 349t-279.5 124t-277.5 -123.5 t-97.5 -349.5zM718 1241h-69q-96 79 -188.5 171.5t-125.5 139.5v17h142q26 -48 98.5 -142t142.5 -170v-16z" />
+<glyph unicode="&#xf3;" horiz-adv-x="1200" d="M119 0zM1081 545q0 -266 -129 -415.5t-356 -149.5q-143 0 -252 69t-167 198t-58 298q0 266 129 414.5t354 148.5q224 0 351.5 -150.5t127.5 -412.5zM223 545q0 -224 98.5 -349.5t278.5 -125.5t278.5 125.5t98.5 349.5q0 225 -99.5 349t-279.5 124t-277.5 -123.5 t-97.5 -349.5zM499 1257q73 79 144.5 171.5t97.5 140.5h141v-17q-36 -52 -122.5 -138t-190.5 -173h-70v16z" />
+<glyph unicode="&#xf4;" horiz-adv-x="1200" d="M119 0zM1081 545q0 -266 -129 -415.5t-356 -149.5q-143 0 -252 69t-167 198t-58 298q0 266 129 414.5t354 148.5q224 0 351.5 -150.5t127.5 -412.5zM223 545q0 -224 98.5 -349.5t278.5 -125.5t278.5 125.5t98.5 349.5q0 225 -99.5 349t-279.5 124t-277.5 -123.5 t-97.5 -349.5zM309 1257q62 67 131.5 156t110.5 156h98q68 -120 242 -312v-16h-70q-122 101 -221 207q-108 -114 -221 -207h-70v16z" />
+<glyph unicode="&#xf5;" horiz-adv-x="1200" d="M119 0zM1081 545q0 -266 -129 -415.5t-356 -149.5q-143 0 -252 69t-167 198t-58 298q0 266 129 414.5t354 148.5q224 0 351.5 -150.5t127.5 -412.5zM223 545q0 -224 98.5 -349.5t278.5 -125.5t278.5 125.5t98.5 349.5q0 225 -99.5 349t-279.5 124t-277.5 -123.5 t-97.5 -349.5zM761 1243q-36 0 -75 18.5t-101 71.5q-32 26 -62.5 46t-62.5 20q-45 0 -75 -34.5t-48 -121.5h-73q10 111 63 174.5t137 63.5q48 0 88 -25t82 -59q34 -28 66 -50t61 -22q46 0 77 36.5t48 119.5h76q-16 -116 -69 -177t-132 -61z" />
+<glyph unicode="&#xf6;" horiz-adv-x="1200" d="M119 0zM1081 545q0 -266 -129 -415.5t-356 -149.5q-143 0 -252 69t-167 198t-58 298q0 266 129 414.5t354 148.5q224 0 351.5 -150.5t127.5 -412.5zM223 545q0 -224 98.5 -349.5t278.5 -125.5t278.5 125.5t98.5 349.5q0 225 -99.5 349t-279.5 124t-277.5 -123.5 t-97.5 -349.5zM346 1389q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86zM727 1389q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86z" />
+<glyph unicode="&#xf7;" d="M111 682v82h948v-82h-948zM504 1075q0 99 80 99q82 0 82 -99q0 -52 -23.5 -75t-58.5 -23q-34 0 -57 23t-23 75zM504 371q0 98 80 98q82 0 82 -98q0 -53 -23.5 -76t-58.5 -23q-34 0 -57 23t-23 76z" />
+<glyph unicode="&#xf8;" horiz-adv-x="1200" d="M1081 545q0 -266 -129 -415.5t-356 -149.5q-173 0 -291 98l-86 -113l-72 58l93 120q-121 153 -121 402q0 266 129 414.5t354 148.5q179 0 301 -104l96 124l74 -55l-104 -137q112 -147 112 -391zM223 545q0 -200 78 -322l543 705q-98 90 -246 90q-180 0 -277.5 -123.5 t-97.5 -349.5zM977 545q0 190 -72 309l-543 -702q94 -82 238 -82q180 0 278.5 125.5t98.5 349.5z" />
+<glyph unicode="&#xf9;" horiz-adv-x="1208" d="M170 0zM268 1087v-704q0 -164 69 -238.5t214 -74.5q194 0 285.5 98t91.5 319v600h98v-1087h-84l-18 150h-6q-106 -170 -377 -170q-371 0 -371 397v710h98zM687 1241h-69q-96 79 -188.5 171.5t-125.5 139.5v17h142q26 -48 98.5 -142t142.5 -170v-16z" />
+<glyph unicode="&#xfa;" horiz-adv-x="1208" d="M170 0zM268 1087v-704q0 -164 69 -238.5t214 -74.5q194 0 285.5 98t91.5 319v600h98v-1087h-84l-18 150h-6q-106 -170 -377 -170q-371 0 -371 397v710h98zM495 1257q73 79 144.5 171.5t97.5 140.5h141v-17q-36 -52 -122.5 -138t-190.5 -173h-70v16z" />
+<glyph unicode="&#xfb;" horiz-adv-x="1208" d="M170 0zM268 1087v-704q0 -164 69 -238.5t214 -74.5q194 0 285.5 98t91.5 319v600h98v-1087h-84l-18 150h-6q-106 -170 -377 -170q-371 0 -371 397v710h98zM313 1257q62 67 131.5 156t110.5 156h98q68 -120 242 -312v-16h-70q-122 101 -221 207q-108 -114 -221 -207h-70 v16z" />
+<glyph unicode="&#xfc;" horiz-adv-x="1208" d="M170 0zM268 1087v-704q0 -164 69 -238.5t214 -74.5q194 0 285.5 98t91.5 319v600h98v-1087h-84l-18 150h-6q-106 -170 -377 -170q-371 0 -371 397v710h98zM350 1389q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86zM731 1389q0 46 15.5 66t47.5 20q64 0 64 -86 t-64 -86q-63 0 -63 86z" />
+<glyph unicode="&#xfd;" horiz-adv-x="940" d="M0 0zM0 1087h102l230 -610q105 -281 133 -379h6q42 129 137 385l230 604h102l-487 -1263q-59 -154 -99 -208t-93.5 -81t-129.5 -27q-57 0 -127 21v86q58 -16 125 -16q51 0 90 24t70.5 74.5t73 160t53.5 142.5zM361 1257q73 79 144.5 171.5t97.5 140.5h141v-17 q-36 -52 -122.5 -138t-190.5 -173h-70v16z" />
+<glyph unicode="&#xfe;" horiz-adv-x="1219" d="M281 918q114 190 368 190q220 0 335.5 -144.5t115.5 -420.5q0 -268 -121.5 -415.5t-331.5 -147.5q-251 0 -366 188h-7l3 -84q4 -74 4 -162v-414h-99v2048h99v-391l-7 -247h7zM645 68q167 0 258.5 124t91.5 347q0 479 -348 479q-193 0 -279.5 -105t-86.5 -354v-18 q0 -255 85.5 -364t278.5 -109z" />
+<glyph unicode="&#xff;" horiz-adv-x="940" d="M0 0zM0 1087h102l230 -610q105 -281 133 -379h6q42 129 137 385l230 604h102l-487 -1263q-59 -154 -99 -208t-93.5 -81t-129.5 -27q-57 0 -127 21v86q58 -16 125 -16q51 0 90 24t70.5 74.5t73 160t53.5 142.5zM214 1389q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86 q-63 0 -63 86zM595 1389q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86z" />
+<glyph unicode="&#x131;" horiz-adv-x="463" d="M281 0h-99v1087h99v-1087z" />
+<glyph unicode="&#x152;" horiz-adv-x="1839" d="M1714 0h-756q-76 -16 -176 -16q-305 0 -479 200t-174 551q0 347 174.5 545.5t480.5 198.5q78 0 183 -17h747v-94h-655v-553h616v-94h-616v-627h655v-94zM782 80q109 0 174 18v1266q-62 16 -172 16q-262 0 -403 -167.5t-141 -479.5q0 -315 140.5 -484t401.5 -169z" />
+<glyph unicode="&#x153;" horiz-adv-x="1942" d="M1438 -20q-156 0 -266.5 67.5t-165.5 198.5q-59 -128 -158 -197t-252 -69q-143 0 -252 69t-167 198t-58 298q0 266 129 414.5t354 148.5q151 0 251 -70t157 -209q110 279 399 279q192 0 303 -134t111 -364v-80h-762q2 -230 100.5 -345t276.5 -115q93 0 163.5 13t178.5 56 v-90q-92 -40 -170 -54.5t-172 -14.5zM223 545q0 -224 98.5 -349.5t278.5 -125.5q174 0 265 122.5t91 352.5q0 224 -93 348.5t-265 124.5q-180 0 -277.5 -123.5t-97.5 -349.5zM1409 1020q-155 0 -242 -104t-102 -298h653q0 189 -82 295.5t-227 106.5z" />
+<glyph unicode="&#x178;" horiz-adv-x="1081" d="M0 0zM543 662l428 800h110l-487 -897v-565h-105v557l-489 905h117zM288 1727q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86zM669 1727q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86z" />
+<glyph unicode="&#x2c6;" horiz-adv-x="1182" d="M299 1257q62 67 131.5 156t110.5 156h98q68 -120 242 -312v-16h-70q-122 101 -221 207q-108 -114 -221 -207h-70v16z" />
+<glyph unicode="&#x2da;" horiz-adv-x="1182" d="M805 1456q0 -97 -60 -155t-157 -58t-157 58t-60 155q0 94 60 152.5t157 58.5t157 -59t60 -152zM451 1456q0 -66 37.5 -103.5t99.5 -37.5t99.5 37.5t37.5 103.5q0 64 -39 101.5t-98 37.5q-62 0 -99.5 -38t-37.5 -101z" />
+<glyph unicode="&#x2dc;" horiz-adv-x="1182" d="M780 1243q-36 0 -75 18.5t-101 71.5q-32 26 -62.5 46t-62.5 20q-45 0 -75 -34.5t-48 -121.5h-73q10 111 63 174.5t137 63.5q48 0 88 -25t82 -59q34 -28 66 -50t61 -22q46 0 77 36.5t48 119.5h76q-16 -116 -69 -177t-132 -61z" />
+<glyph unicode="&#x2000;" horiz-adv-x="953" />
+<glyph unicode="&#x2001;" horiz-adv-x="1907" />
+<glyph unicode="&#x2002;" horiz-adv-x="953" />
+<glyph unicode="&#x2003;" horiz-adv-x="1907" />
+<glyph unicode="&#x2004;" horiz-adv-x="635" />
+<glyph unicode="&#x2005;" horiz-adv-x="476" />
+<glyph unicode="&#x2006;" horiz-adv-x="317" />
+<glyph unicode="&#x2007;" horiz-adv-x="317" />
+<glyph unicode="&#x2008;" horiz-adv-x="238" />
+<glyph unicode="&#x2009;" horiz-adv-x="381" />
+<glyph unicode="&#x200a;" horiz-adv-x="105" />
+<glyph unicode="&#x2010;" horiz-adv-x="659" d="M92 512v82h475v-82h-475z" />
+<glyph unicode="&#x2011;" horiz-adv-x="659" d="M92 512v82h475v-82h-475z" />
+<glyph unicode="&#x2012;" horiz-adv-x="659" d="M92 512v82h475v-82h-475z" />
+<glyph unicode="&#x2013;" horiz-adv-x="1024" d="M82 512v82h860v-82h-860z" />
+<glyph unicode="&#x2014;" horiz-adv-x="2048" d="M82 512v82h1884v-82h-1884z" />
+<glyph unicode="&#x2018;" horiz-adv-x="297" d="M41 961l-12 20q32 112 81.5 251t92.5 230h65q-30 -101 -64.5 -257t-45.5 -244h-117z" />
+<glyph unicode="&#x2019;" horiz-adv-x="297" d="M256 1462l12 -20q-75 -265 -174 -481h-65q29 96 61 241.5t49 259.5h117z" />
+<glyph unicode="&#x201a;" horiz-adv-x="451" d="M68 0zM295 238l12 -20q-75 -265 -174 -481h-65q29 96 61 241.5t49 259.5h117z" />
+<glyph unicode="&#x201c;" horiz-adv-x="614" d="M358 961l-12 20q34 120 83 255t91 226h66q-30 -98 -63 -248.5t-48 -252.5h-117zM41 961l-12 20q32 112 81.5 251t92.5 230h65q-30 -101 -64.5 -257t-45.5 -244h-117z" />
+<glyph unicode="&#x201d;" horiz-adv-x="614" d="M256 1462l12 -20q-75 -265 -174 -481h-65q29 96 61 241.5t49 259.5h117zM573 1462l13 -20q-36 -128 -85 -261t-89 -220h-66q30 98 63 248.5t48 252.5h116z" />
+<glyph unicode="&#x201e;" horiz-adv-x="768" d="M68 0zM295 238l12 -20q-75 -265 -174 -481h-65q29 96 61 241.5t49 259.5h117zM612 238l13 -20q-36 -128 -85 -261t-89 -220h-66q30 98 63 248.5t48 252.5h116z" />
+<glyph unicode="&#x2022;" horiz-adv-x="770" d="M231 748q0 89 40.5 134.5t113.5 45.5t113.5 -47t40.5 -133q0 -85 -41 -133t-113 -48t-113 47t-41 134z" />
+<glyph unicode="&#x2026;" horiz-adv-x="1466" d="M162 0zM162 78q0 98 80 98q82 0 82 -98t-82 -98q-80 0 -80 98zM651 78q0 98 80 98q82 0 82 -98t-82 -98q-80 0 -80 98zM1141 78q0 98 80 98q82 0 82 -98t-82 -98q-80 0 -80 98z" />
+<glyph unicode="&#x202f;" horiz-adv-x="381" />
+<glyph unicode="&#x2039;" horiz-adv-x="524" d="M82 543l309 393l62 -43l-254 -363l254 -362l-62 -43l-309 391v27z" />
+<glyph unicode="&#x203a;" horiz-adv-x="524" d="M442 518l-309 -393l-61 43l254 362l-254 363l61 43l309 -391v-27z" />
+<glyph unicode="&#x2044;" horiz-adv-x="246" d="M573 1462l-811 -1462h-94l811 1462h94z" />
+<glyph unicode="&#x205f;" horiz-adv-x="476" />
+<glyph unicode="&#x2074;" horiz-adv-x="688" d="M657 827h-129v-241h-90v241h-413v60l407 581h96v-563h129v-78zM438 905v221q0 132 8 232q-6 -12 -21.5 -35.5t-295.5 -417.5h309z" />
+<glyph unicode="&#x20ac;" d="M803 1397q-174 0 -288 -125.5t-155 -364.5h502v-82h-510l-4 -104v-24q0 -65 4 -87h449v-82h-443q30 -217 147.5 -338.5t301.5 -121.5q148 0 287 65v-94q-81 -34 -150.5 -46.5t-140.5 -12.5q-228 0 -367.5 140t-181.5 408h-180v82h172q-4 38 -4 113l4 102h-172v82h184 q39 272 183 425t362 153q88 0 161 -17t148 -57l-39 -86q-132 72 -270 72z" />
+<glyph unicode="&#x2122;" horiz-adv-x="1485" d="M313 741h-86v643h-217v78h522v-78h-219v-643zM913 741l-221 609h-6l4 -201v-408h-82v721h125l221 -606l224 606h125v-721h-86v398l4 207h-7l-227 -605h-74z" />
+<glyph unicode="&#x2212;" d="M111 682v82h948v-82h-948z" />
+<glyph unicode="&#xe000;" horiz-adv-x="1085" d="M0 1085h1085v-1085h-1085v1085z" />
+<glyph horiz-adv-x="1219" d="M0 0z" />
+<hkern u1="&#x22;" u2="&#x178;" k="-20" />
+<hkern u1="&#x22;" u2="&#x153;" k="123" />
+<hkern u1="&#x22;" u2="&#xfc;" k="61" />
+<hkern u1="&#x22;" u2="&#xfb;" k="61" />
+<hkern u1="&#x22;" u2="&#xfa;" k="61" />
+<hkern u1="&#x22;" u2="&#xf9;" k="61" />
+<hkern u1="&#x22;" u2="&#xf8;" k="123" />
+<hkern u1="&#x22;" u2="&#xf6;" k="123" />
+<hkern u1="&#x22;" u2="&#xf5;" k="123" />
+<hkern u1="&#x22;" u2="&#xf4;" k="123" />
+<hkern u1="&#x22;" u2="&#xf3;" k="123" />
+<hkern u1="&#x22;" u2="&#xf2;" k="123" />
+<hkern u1="&#x22;" u2="&#xeb;" k="123" />
+<hkern u1="&#x22;" u2="&#xea;" k="123" />
+<hkern u1="&#x22;" u2="&#xe9;" k="123" />
+<hkern u1="&#x22;" u2="&#xe8;" k="123" />
+<hkern u1="&#x22;" u2="&#xe7;" k="123" />
+<hkern u1="&#x22;" u2="&#xe6;" k="82" />
+<hkern u1="&#x22;" u2="&#xe5;" k="82" />
+<hkern u1="&#x22;" u2="&#xe4;" k="82" />
+<hkern u1="&#x22;" u2="&#xe3;" k="82" />
+<hkern u1="&#x22;" u2="&#xe2;" k="82" />
+<hkern u1="&#x22;" u2="&#xe1;" k="82" />
+<hkern u1="&#x22;" u2="&#xe0;" k="123" />
+<hkern u1="&#x22;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x22;" u2="&#xc5;" k="143" />
+<hkern u1="&#x22;" u2="&#xc4;" k="143" />
+<hkern u1="&#x22;" u2="&#xc3;" k="143" />
+<hkern u1="&#x22;" u2="&#xc2;" k="143" />
+<hkern u1="&#x22;" u2="&#xc1;" k="143" />
+<hkern u1="&#x22;" u2="&#xc0;" k="143" />
+<hkern u1="&#x22;" u2="u" k="61" />
+<hkern u1="&#x22;" u2="s" k="61" />
+<hkern u1="&#x22;" u2="r" k="61" />
+<hkern u1="&#x22;" u2="q" k="123" />
+<hkern u1="&#x22;" u2="p" k="61" />
+<hkern u1="&#x22;" u2="o" k="123" />
+<hkern u1="&#x22;" u2="n" k="61" />
+<hkern u1="&#x22;" u2="m" k="61" />
+<hkern u1="&#x22;" u2="g" k="61" />
+<hkern u1="&#x22;" u2="e" k="123" />
+<hkern u1="&#x22;" u2="d" k="123" />
+<hkern u1="&#x22;" u2="c" k="123" />
+<hkern u1="&#x22;" u2="a" k="82" />
+<hkern u1="&#x22;" u2="Y" k="-20" />
+<hkern u1="&#x22;" u2="W" k="-41" />
+<hkern u1="&#x22;" u2="V" k="-41" />
+<hkern u1="&#x22;" u2="T" k="-41" />
+<hkern u1="&#x22;" u2="A" k="143" />
+<hkern u1="&#x27;" u2="&#x178;" k="-20" />
+<hkern u1="&#x27;" u2="&#x153;" k="123" />
+<hkern u1="&#x27;" u2="&#xfc;" k="61" />
+<hkern u1="&#x27;" u2="&#xfb;" k="61" />
+<hkern u1="&#x27;" u2="&#xfa;" k="61" />
+<hkern u1="&#x27;" u2="&#xf9;" k="61" />
+<hkern u1="&#x27;" u2="&#xf8;" k="123" />
+<hkern u1="&#x27;" u2="&#xf6;" k="123" />
+<hkern u1="&#x27;" u2="&#xf5;" k="123" />
+<hkern u1="&#x27;" u2="&#xf4;" k="123" />
+<hkern u1="&#x27;" u2="&#xf3;" k="123" />
+<hkern u1="&#x27;" u2="&#xf2;" k="123" />
+<hkern u1="&#x27;" u2="&#xeb;" k="123" />
+<hkern u1="&#x27;" u2="&#xea;" k="123" />
+<hkern u1="&#x27;" u2="&#xe9;" k="123" />
+<hkern u1="&#x27;" u2="&#xe8;" k="123" />
+<hkern u1="&#x27;" u2="&#xe7;" k="123" />
+<hkern u1="&#x27;" u2="&#xe6;" k="82" />
+<hkern u1="&#x27;" u2="&#xe5;" k="82" />
+<hkern u1="&#x27;" u2="&#xe4;" k="82" />
+<hkern u1="&#x27;" u2="&#xe3;" k="82" />
+<hkern u1="&#x27;" u2="&#xe2;" k="82" />
+<hkern u1="&#x27;" u2="&#xe1;" k="82" />
+<hkern u1="&#x27;" u2="&#xe0;" k="123" />
+<hkern u1="&#x27;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x27;" u2="&#xc5;" k="143" />
+<hkern u1="&#x27;" u2="&#xc4;" k="143" />
+<hkern u1="&#x27;" u2="&#xc3;" k="143" />
+<hkern u1="&#x27;" u2="&#xc2;" k="143" />
+<hkern u1="&#x27;" u2="&#xc1;" k="143" />
+<hkern u1="&#x27;" u2="&#xc0;" k="143" />
+<hkern u1="&#x27;" u2="u" k="61" />
+<hkern u1="&#x27;" u2="s" k="61" />
+<hkern u1="&#x27;" u2="r" k="61" />
+<hkern u1="&#x27;" u2="q" k="123" />
+<hkern u1="&#x27;" u2="p" k="61" />
+<hkern u1="&#x27;" u2="o" k="123" />
+<hkern u1="&#x27;" u2="n" k="61" />
+<hkern u1="&#x27;" u2="m" k="61" />
+<hkern u1="&#x27;" u2="g" k="61" />
+<hkern u1="&#x27;" u2="e" k="123" />
+<hkern u1="&#x27;" u2="d" k="123" />
+<hkern u1="&#x27;" u2="c" k="123" />
+<hkern u1="&#x27;" u2="a" k="82" />
+<hkern u1="&#x27;" u2="Y" k="-20" />
+<hkern u1="&#x27;" u2="W" k="-41" />
+<hkern u1="&#x27;" u2="V" k="-41" />
+<hkern u1="&#x27;" u2="T" k="-41" />
+<hkern u1="&#x27;" u2="A" k="143" />
+<hkern u1="&#x28;" u2="J" k="-184" />
+<hkern u1="&#x2c;" u2="&#x178;" k="123" />
+<hkern u1="&#x2c;" u2="&#x152;" k="102" />
+<hkern u1="&#x2c;" u2="&#xdd;" k="123" />
+<hkern u1="&#x2c;" u2="&#xdc;" k="41" />
+<hkern u1="&#x2c;" u2="&#xdb;" k="41" />
+<hkern u1="&#x2c;" u2="&#xda;" k="41" />
+<hkern u1="&#x2c;" u2="&#xd9;" k="41" />
+<hkern u1="&#x2c;" u2="&#xd8;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd6;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd5;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd4;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd3;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd2;" k="102" />
+<hkern u1="&#x2c;" u2="&#xc7;" k="102" />
+<hkern u1="&#x2c;" u2="Y" k="123" />
+<hkern u1="&#x2c;" u2="W" k="123" />
+<hkern u1="&#x2c;" u2="V" k="123" />
+<hkern u1="&#x2c;" u2="U" k="41" />
+<hkern u1="&#x2c;" u2="T" k="143" />
+<hkern u1="&#x2c;" u2="Q" k="102" />
+<hkern u1="&#x2c;" u2="O" k="102" />
+<hkern u1="&#x2c;" u2="G" k="102" />
+<hkern u1="&#x2c;" u2="C" k="102" />
+<hkern u1="&#x2d;" u2="T" k="82" />
+<hkern u1="&#x2e;" u2="&#x178;" k="123" />
+<hkern u1="&#x2e;" u2="&#x152;" k="102" />
+<hkern u1="&#x2e;" u2="&#xdd;" k="123" />
+<hkern u1="&#x2e;" u2="&#xdc;" k="41" />
+<hkern u1="&#x2e;" u2="&#xdb;" k="41" />
+<hkern u1="&#x2e;" u2="&#xda;" k="41" />
+<hkern u1="&#x2e;" u2="&#xd9;" k="41" />
+<hkern u1="&#x2e;" u2="&#xd8;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd6;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd5;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd4;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd3;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd2;" k="102" />
+<hkern u1="&#x2e;" u2="&#xc7;" k="102" />
+<hkern u1="&#x2e;" u2="Y" k="123" />
+<hkern u1="&#x2e;" u2="W" k="123" />
+<hkern u1="&#x2e;" u2="V" k="123" />
+<hkern u1="&#x2e;" u2="U" k="41" />
+<hkern u1="&#x2e;" u2="T" k="143" />
+<hkern u1="&#x2e;" u2="Q" k="102" />
+<hkern u1="&#x2e;" u2="O" k="102" />
+<hkern u1="&#x2e;" u2="G" k="102" />
+<hkern u1="&#x2e;" u2="C" k="102" />
+<hkern u1="A" u2="&#x201d;" k="143" />
+<hkern u1="A" u2="&#x2019;" k="143" />
+<hkern u1="A" u2="&#x178;" k="123" />
+<hkern u1="A" u2="&#x152;" k="41" />
+<hkern u1="A" u2="&#xdd;" k="123" />
+<hkern u1="A" u2="&#xd8;" k="41" />
+<hkern u1="A" u2="&#xd6;" k="41" />
+<hkern u1="A" u2="&#xd5;" k="41" />
+<hkern u1="A" u2="&#xd4;" k="41" />
+<hkern u1="A" u2="&#xd3;" k="41" />
+<hkern u1="A" u2="&#xd2;" k="41" />
+<hkern u1="A" u2="&#xc7;" k="41" />
+<hkern u1="A" u2="Y" k="123" />
+<hkern u1="A" u2="W" k="82" />
+<hkern u1="A" u2="V" k="82" />
+<hkern u1="A" u2="T" k="143" />
+<hkern u1="A" u2="Q" k="41" />
+<hkern u1="A" u2="O" k="41" />
+<hkern u1="A" u2="J" k="-266" />
+<hkern u1="A" u2="G" k="41" />
+<hkern u1="A" u2="C" k="41" />
+<hkern u1="A" u2="&#x27;" k="143" />
+<hkern u1="A" u2="&#x22;" k="143" />
+<hkern u1="B" u2="&#x201e;" k="82" />
+<hkern u1="B" u2="&#x201a;" k="82" />
+<hkern u1="B" u2="&#x178;" k="20" />
+<hkern u1="B" u2="&#xdd;" k="20" />
+<hkern u1="B" u2="&#xc5;" k="41" />
+<hkern u1="B" u2="&#xc4;" k="41" />
+<hkern u1="B" u2="&#xc3;" k="41" />
+<hkern u1="B" u2="&#xc2;" k="41" />
+<hkern u1="B" u2="&#xc1;" k="41" />
+<hkern u1="B" u2="&#xc0;" k="41" />
+<hkern u1="B" u2="Z" k="20" />
+<hkern u1="B" u2="Y" k="20" />
+<hkern u1="B" u2="X" k="41" />
+<hkern u1="B" u2="W" k="20" />
+<hkern u1="B" u2="V" k="20" />
+<hkern u1="B" u2="T" k="61" />
+<hkern u1="B" u2="A" k="41" />
+<hkern u1="B" u2="&#x2e;" k="82" />
+<hkern u1="B" u2="&#x2c;" k="82" />
+<hkern u1="C" u2="&#x152;" k="41" />
+<hkern u1="C" u2="&#xd8;" k="41" />
+<hkern u1="C" u2="&#xd6;" k="41" />
+<hkern u1="C" u2="&#xd5;" k="41" />
+<hkern u1="C" u2="&#xd4;" k="41" />
+<hkern u1="C" u2="&#xd3;" k="41" />
+<hkern u1="C" u2="&#xd2;" k="41" />
+<hkern u1="C" u2="&#xc7;" k="41" />
+<hkern u1="C" u2="Q" k="41" />
+<hkern u1="C" u2="O" k="41" />
+<hkern u1="C" u2="G" k="41" />
+<hkern u1="C" u2="C" k="41" />
+<hkern u1="D" u2="&#x201e;" k="82" />
+<hkern u1="D" u2="&#x201a;" k="82" />
+<hkern u1="D" u2="&#x178;" k="20" />
+<hkern u1="D" u2="&#xdd;" k="20" />
+<hkern u1="D" u2="&#xc5;" k="41" />
+<hkern u1="D" u2="&#xc4;" k="41" />
+<hkern u1="D" u2="&#xc3;" k="41" />
+<hkern u1="D" u2="&#xc2;" k="41" />
+<hkern u1="D" u2="&#xc1;" k="41" />
+<hkern u1="D" u2="&#xc0;" k="41" />
+<hkern u1="D" u2="Z" k="20" />
+<hkern u1="D" u2="Y" k="20" />
+<hkern u1="D" u2="X" k="41" />
+<hkern u1="D" u2="W" k="20" />
+<hkern u1="D" u2="V" k="20" />
+<hkern u1="D" u2="T" k="61" />
+<hkern u1="D" u2="A" k="41" />
+<hkern u1="D" u2="&#x2e;" k="82" />
+<hkern u1="D" u2="&#x2c;" k="82" />
+<hkern u1="E" u2="J" k="-123" />
+<hkern u1="F" u2="&#x201e;" k="123" />
+<hkern u1="F" u2="&#x201a;" k="123" />
+<hkern u1="F" u2="&#xc5;" k="41" />
+<hkern u1="F" u2="&#xc4;" k="41" />
+<hkern u1="F" u2="&#xc3;" k="41" />
+<hkern u1="F" u2="&#xc2;" k="41" />
+<hkern u1="F" u2="&#xc1;" k="41" />
+<hkern u1="F" u2="&#xc0;" k="41" />
+<hkern u1="F" u2="A" k="41" />
+<hkern u1="F" u2="&#x3f;" k="-41" />
+<hkern u1="F" u2="&#x2e;" k="123" />
+<hkern u1="F" u2="&#x2c;" k="123" />
+<hkern u1="K" u2="&#x152;" k="41" />
+<hkern u1="K" u2="&#xd8;" k="41" />
+<hkern u1="K" u2="&#xd6;" k="41" />
+<hkern u1="K" u2="&#xd5;" k="41" />
+<hkern u1="K" u2="&#xd4;" k="41" />
+<hkern u1="K" u2="&#xd3;" k="41" />
+<hkern u1="K" u2="&#xd2;" k="41" />
+<hkern u1="K" u2="&#xc7;" k="41" />
+<hkern u1="K" u2="Q" k="41" />
+<hkern u1="K" u2="O" k="41" />
+<hkern u1="K" u2="G" k="41" />
+<hkern u1="K" u2="C" k="41" />
+<hkern u1="L" u2="&#x201d;" k="164" />
+<hkern u1="L" u2="&#x2019;" k="164" />
+<hkern u1="L" u2="&#x178;" k="61" />
+<hkern u1="L" u2="&#x152;" k="41" />
+<hkern u1="L" u2="&#xdd;" k="61" />
+<hkern u1="L" u2="&#xdc;" k="20" />
+<hkern u1="L" u2="&#xdb;" k="20" />
+<hkern u1="L" u2="&#xda;" k="20" />
+<hkern u1="L" u2="&#xd9;" k="20" />
+<hkern u1="L" u2="&#xd8;" k="41" />
+<hkern u1="L" u2="&#xd6;" k="41" />
+<hkern u1="L" u2="&#xd5;" k="41" />
+<hkern u1="L" u2="&#xd4;" k="41" />
+<hkern u1="L" u2="&#xd3;" k="41" />
+<hkern u1="L" u2="&#xd2;" k="41" />
+<hkern u1="L" u2="&#xc7;" k="41" />
+<hkern u1="L" u2="Y" k="61" />
+<hkern u1="L" u2="W" k="41" />
+<hkern u1="L" u2="V" k="41" />
+<hkern u1="L" u2="U" k="20" />
+<hkern u1="L" u2="T" k="41" />
+<hkern u1="L" u2="Q" k="41" />
+<hkern u1="L" u2="O" k="41" />
+<hkern u1="L" u2="G" k="41" />
+<hkern u1="L" u2="C" k="41" />
+<hkern u1="L" u2="&#x27;" k="164" />
+<hkern u1="L" u2="&#x22;" k="164" />
+<hkern u1="O" u2="&#x201e;" k="82" />
+<hkern u1="O" u2="&#x201a;" k="82" />
+<hkern u1="O" u2="&#x178;" k="20" />
+<hkern u1="O" u2="&#xdd;" k="20" />
+<hkern u1="O" u2="&#xc5;" k="41" />
+<hkern u1="O" u2="&#xc4;" k="41" />
+<hkern u1="O" u2="&#xc3;" k="41" />
+<hkern u1="O" u2="&#xc2;" k="41" />
+<hkern u1="O" u2="&#xc1;" k="41" />
+<hkern u1="O" u2="&#xc0;" k="41" />
+<hkern u1="O" u2="Z" k="20" />
+<hkern u1="O" u2="Y" k="20" />
+<hkern u1="O" u2="X" k="41" />
+<hkern u1="O" u2="W" k="20" />
+<hkern u1="O" u2="V" k="20" />
+<hkern u1="O" u2="T" k="61" />
+<hkern u1="O" u2="A" k="41" />
+<hkern u1="O" u2="&#x2e;" k="82" />
+<hkern u1="O" u2="&#x2c;" k="82" />
+<hkern u1="P" u2="&#x201e;" k="266" />
+<hkern u1="P" u2="&#x201a;" k="266" />
+<hkern u1="P" u2="&#xc5;" k="102" />
+<hkern u1="P" u2="&#xc4;" k="102" />
+<hkern u1="P" u2="&#xc3;" k="102" />
+<hkern u1="P" u2="&#xc2;" k="102" />
+<hkern u1="P" u2="&#xc1;" k="102" />
+<hkern u1="P" u2="&#xc0;" k="102" />
+<hkern u1="P" u2="Z" k="20" />
+<hkern u1="P" u2="X" k="41" />
+<hkern u1="P" u2="A" k="102" />
+<hkern u1="P" u2="&#x2e;" k="266" />
+<hkern u1="P" u2="&#x2c;" k="266" />
+<hkern u1="Q" u2="&#x201e;" k="82" />
+<hkern u1="Q" u2="&#x201a;" k="82" />
+<hkern u1="Q" u2="&#x178;" k="20" />
+<hkern u1="Q" u2="&#xdd;" k="20" />
+<hkern u1="Q" u2="&#xc5;" k="41" />
+<hkern u1="Q" u2="&#xc4;" k="41" />
+<hkern u1="Q" u2="&#xc3;" k="41" />
+<hkern u1="Q" u2="&#xc2;" k="41" />
+<hkern u1="Q" u2="&#xc1;" k="41" />
+<hkern u1="Q" u2="&#xc0;" k="41" />
+<hkern u1="Q" u2="Z" k="20" />
+<hkern u1="Q" u2="Y" k="20" />
+<hkern u1="Q" u2="X" k="41" />
+<hkern u1="Q" u2="W" k="20" />
+<hkern u1="Q" u2="V" k="20" />
+<hkern u1="Q" u2="T" k="61" />
+<hkern u1="Q" u2="A" k="41" />
+<hkern u1="Q" u2="&#x2e;" k="82" />
+<hkern u1="Q" u2="&#x2c;" k="82" />
+<hkern u1="T" u2="&#x201e;" k="123" />
+<hkern u1="T" u2="&#x201a;" k="123" />
+<hkern u1="T" u2="&#x2014;" k="82" />
+<hkern u1="T" u2="&#x2013;" k="82" />
+<hkern u1="T" u2="&#x153;" k="143" />
+<hkern u1="T" u2="&#x152;" k="41" />
+<hkern u1="T" u2="&#xfd;" k="41" />
+<hkern u1="T" u2="&#xfc;" k="102" />
+<hkern u1="T" u2="&#xfb;" k="102" />
+<hkern u1="T" u2="&#xfa;" k="102" />
+<hkern u1="T" u2="&#xf9;" k="102" />
+<hkern u1="T" u2="&#xf8;" k="143" />
+<hkern u1="T" u2="&#xf6;" k="143" />
+<hkern u1="T" u2="&#xf5;" k="143" />
+<hkern u1="T" u2="&#xf4;" k="143" />
+<hkern u1="T" u2="&#xf3;" k="143" />
+<hkern u1="T" u2="&#xf2;" k="143" />
+<hkern u1="T" u2="&#xeb;" k="143" />
+<hkern u1="T" u2="&#xea;" k="143" />
+<hkern u1="T" u2="&#xe9;" k="143" />
+<hkern u1="T" u2="&#xe8;" k="143" />
+<hkern u1="T" u2="&#xe7;" k="143" />
+<hkern u1="T" u2="&#xe6;" k="164" />
+<hkern u1="T" u2="&#xe5;" k="164" />
+<hkern u1="T" u2="&#xe4;" k="164" />
+<hkern u1="T" u2="&#xe3;" k="164" />
+<hkern u1="T" u2="&#xe2;" k="164" />
+<hkern u1="T" u2="&#xe1;" k="164" />
+<hkern u1="T" u2="&#xe0;" k="143" />
+<hkern u1="T" u2="&#xd8;" k="41" />
+<hkern u1="T" u2="&#xd6;" k="41" />
+<hkern u1="T" u2="&#xd5;" k="41" />
+<hkern u1="T" u2="&#xd4;" k="41" />
+<hkern u1="T" u2="&#xd3;" k="41" />
+<hkern u1="T" u2="&#xd2;" k="41" />
+<hkern u1="T" u2="&#xc7;" k="41" />
+<hkern u1="T" u2="&#xc5;" k="143" />
+<hkern u1="T" u2="&#xc4;" k="143" />
+<hkern u1="T" u2="&#xc3;" k="143" />
+<hkern u1="T" u2="&#xc2;" k="143" />
+<hkern u1="T" u2="&#xc1;" k="143" />
+<hkern u1="T" u2="&#xc0;" k="143" />
+<hkern u1="T" u2="z" k="82" />
+<hkern u1="T" u2="y" k="41" />
+<hkern u1="T" u2="x" k="41" />
+<hkern u1="T" u2="w" k="41" />
+<hkern u1="T" u2="v" k="41" />
+<hkern u1="T" u2="u" k="102" />
+<hkern u1="T" u2="s" k="123" />
+<hkern u1="T" u2="r" k="102" />
+<hkern u1="T" u2="q" k="143" />
+<hkern u1="T" u2="p" k="102" />
+<hkern u1="T" u2="o" k="143" />
+<hkern u1="T" u2="n" k="102" />
+<hkern u1="T" u2="m" k="102" />
+<hkern u1="T" u2="g" k="143" />
+<hkern u1="T" u2="e" k="143" />
+<hkern u1="T" u2="d" k="143" />
+<hkern u1="T" u2="c" k="143" />
+<hkern u1="T" u2="a" k="164" />
+<hkern u1="T" u2="T" k="-41" />
+<hkern u1="T" u2="Q" k="41" />
+<hkern u1="T" u2="O" k="41" />
+<hkern u1="T" u2="G" k="41" />
+<hkern u1="T" u2="C" k="41" />
+<hkern u1="T" u2="A" k="143" />
+<hkern u1="T" u2="&#x3f;" k="-41" />
+<hkern u1="T" u2="&#x2e;" k="123" />
+<hkern u1="T" u2="&#x2d;" k="82" />
+<hkern u1="T" u2="&#x2c;" k="123" />
+<hkern u1="U" u2="&#x201e;" k="41" />
+<hkern u1="U" u2="&#x201a;" k="41" />
+<hkern u1="U" u2="&#xc5;" k="20" />
+<hkern u1="U" u2="&#xc4;" k="20" />
+<hkern u1="U" u2="&#xc3;" k="20" />
+<hkern u1="U" u2="&#xc2;" k="20" />
+<hkern u1="U" u2="&#xc1;" k="20" />
+<hkern u1="U" u2="&#xc0;" k="20" />
+<hkern u1="U" u2="A" k="20" />
+<hkern u1="U" u2="&#x2e;" k="41" />
+<hkern u1="U" u2="&#x2c;" k="41" />
+<hkern u1="V" u2="&#x201e;" k="102" />
+<hkern u1="V" u2="&#x201a;" k="102" />
+<hkern u1="V" u2="&#x153;" k="41" />
+<hkern u1="V" u2="&#x152;" k="20" />
+<hkern u1="V" u2="&#xfc;" k="20" />
+<hkern u1="V" u2="&#xfb;" k="20" />
+<hkern u1="V" u2="&#xfa;" k="20" />
+<hkern u1="V" u2="&#xf9;" k="20" />
+<hkern u1="V" u2="&#xf8;" k="41" />
+<hkern u1="V" u2="&#xf6;" k="41" />
+<hkern u1="V" u2="&#xf5;" k="41" />
+<hkern u1="V" u2="&#xf4;" k="41" />
+<hkern u1="V" u2="&#xf3;" k="41" />
+<hkern u1="V" u2="&#xf2;" k="41" />
+<hkern u1="V" u2="&#xeb;" k="41" />
+<hkern u1="V" u2="&#xea;" k="41" />
+<hkern u1="V" u2="&#xe9;" k="41" />
+<hkern u1="V" u2="&#xe8;" k="41" />
+<hkern u1="V" u2="&#xe7;" k="41" />
+<hkern u1="V" u2="&#xe6;" k="41" />
+<hkern u1="V" u2="&#xe5;" k="41" />
+<hkern u1="V" u2="&#xe4;" k="41" />
+<hkern u1="V" u2="&#xe3;" k="41" />
+<hkern u1="V" u2="&#xe2;" k="41" />
+<hkern u1="V" u2="&#xe1;" k="41" />
+<hkern u1="V" u2="&#xe0;" k="41" />
+<hkern u1="V" u2="&#xd8;" k="20" />
+<hkern u1="V" u2="&#xd6;" k="20" />
+<hkern u1="V" u2="&#xd5;" k="20" />
+<hkern u1="V" u2="&#xd4;" k="20" />
+<hkern u1="V" u2="&#xd3;" k="20" />
+<hkern u1="V" u2="&#xd2;" k="20" />
+<hkern u1="V" u2="&#xc7;" k="20" />
+<hkern u1="V" u2="&#xc5;" k="82" />
+<hkern u1="V" u2="&#xc4;" k="82" />
+<hkern u1="V" u2="&#xc3;" k="82" />
+<hkern u1="V" u2="&#xc2;" k="82" />
+<hkern u1="V" u2="&#xc1;" k="82" />
+<hkern u1="V" u2="&#xc0;" k="82" />
+<hkern u1="V" u2="u" k="20" />
+<hkern u1="V" u2="s" k="20" />
+<hkern u1="V" u2="r" k="20" />
+<hkern u1="V" u2="q" k="41" />
+<hkern u1="V" u2="p" k="20" />
+<hkern u1="V" u2="o" k="41" />
+<hkern u1="V" u2="n" k="20" />
+<hkern u1="V" u2="m" k="20" />
+<hkern u1="V" u2="g" k="20" />
+<hkern u1="V" u2="e" k="41" />
+<hkern u1="V" u2="d" k="41" />
+<hkern u1="V" u2="c" k="41" />
+<hkern u1="V" u2="a" k="41" />
+<hkern u1="V" u2="Q" k="20" />
+<hkern u1="V" u2="O" k="20" />
+<hkern u1="V" u2="G" k="20" />
+<hkern u1="V" u2="C" k="20" />
+<hkern u1="V" u2="A" k="82" />
+<hkern u1="V" u2="&#x3f;" k="-41" />
+<hkern u1="V" u2="&#x2e;" k="102" />
+<hkern u1="V" u2="&#x2c;" k="102" />
+<hkern u1="W" u2="&#x201e;" k="102" />
+<hkern u1="W" u2="&#x201a;" k="102" />
+<hkern u1="W" u2="&#x153;" k="41" />
+<hkern u1="W" u2="&#x152;" k="20" />
+<hkern u1="W" u2="&#xfc;" k="20" />
+<hkern u1="W" u2="&#xfb;" k="20" />
+<hkern u1="W" u2="&#xfa;" k="20" />
+<hkern u1="W" u2="&#xf9;" k="20" />
+<hkern u1="W" u2="&#xf8;" k="41" />
+<hkern u1="W" u2="&#xf6;" k="41" />
+<hkern u1="W" u2="&#xf5;" k="41" />
+<hkern u1="W" u2="&#xf4;" k="41" />
+<hkern u1="W" u2="&#xf3;" k="41" />
+<hkern u1="W" u2="&#xf2;" k="41" />
+<hkern u1="W" u2="&#xeb;" k="41" />
+<hkern u1="W" u2="&#xea;" k="41" />
+<hkern u1="W" u2="&#xe9;" k="41" />
+<hkern u1="W" u2="&#xe8;" k="41" />
+<hkern u1="W" u2="&#xe7;" k="41" />
+<hkern u1="W" u2="&#xe6;" k="41" />
+<hkern u1="W" u2="&#xe5;" k="41" />
+<hkern u1="W" u2="&#xe4;" k="41" />
+<hkern u1="W" u2="&#xe3;" k="41" />
+<hkern u1="W" u2="&#xe2;" k="41" />
+<hkern u1="W" u2="&#xe1;" k="41" />
+<hkern u1="W" u2="&#xe0;" k="41" />
+<hkern u1="W" u2="&#xd8;" k="20" />
+<hkern u1="W" u2="&#xd6;" k="20" />
+<hkern u1="W" u2="&#xd5;" k="20" />
+<hkern u1="W" u2="&#xd4;" k="20" />
+<hkern u1="W" u2="&#xd3;" k="20" />
+<hkern u1="W" u2="&#xd2;" k="20" />
+<hkern u1="W" u2="&#xc7;" k="20" />
+<hkern u1="W" u2="&#xc5;" k="82" />
+<hkern u1="W" u2="&#xc4;" k="82" />
+<hkern u1="W" u2="&#xc3;" k="82" />
+<hkern u1="W" u2="&#xc2;" k="82" />
+<hkern u1="W" u2="&#xc1;" k="82" />
+<hkern u1="W" u2="&#xc0;" k="82" />
+<hkern u1="W" u2="u" k="20" />
+<hkern u1="W" u2="s" k="20" />
+<hkern u1="W" u2="r" k="20" />
+<hkern u1="W" u2="q" k="41" />
+<hkern u1="W" u2="p" k="20" />
+<hkern u1="W" u2="o" k="41" />
+<hkern u1="W" u2="n" k="20" />
+<hkern u1="W" u2="m" k="20" />
+<hkern u1="W" u2="g" k="20" />
+<hkern u1="W" u2="e" k="41" />
+<hkern u1="W" u2="d" k="41" />
+<hkern u1="W" u2="c" k="41" />
+<hkern u1="W" u2="a" k="41" />
+<hkern u1="W" u2="Q" k="20" />
+<hkern u1="W" u2="O" k="20" />
+<hkern u1="W" u2="G" k="20" />
+<hkern u1="W" u2="C" k="20" />
+<hkern u1="W" u2="A" k="82" />
+<hkern u1="W" u2="&#x3f;" k="-41" />
+<hkern u1="W" u2="&#x2e;" k="102" />
+<hkern u1="W" u2="&#x2c;" k="102" />
+<hkern u1="X" u2="&#x152;" k="41" />
+<hkern u1="X" u2="&#xd8;" k="41" />
+<hkern u1="X" u2="&#xd6;" k="41" />
+<hkern u1="X" u2="&#xd5;" k="41" />
+<hkern u1="X" u2="&#xd4;" k="41" />
+<hkern u1="X" u2="&#xd3;" k="41" />
+<hkern u1="X" u2="&#xd2;" k="41" />
+<hkern u1="X" u2="&#xc7;" k="41" />
+<hkern u1="X" u2="Q" k="41" />
+<hkern u1="X" u2="O" k="41" />
+<hkern u1="X" u2="G" k="41" />
+<hkern u1="X" u2="C" k="41" />
+<hkern u1="Y" u2="&#x201e;" k="123" />
+<hkern u1="Y" u2="&#x201a;" k="123" />
+<hkern u1="Y" u2="&#x153;" k="102" />
+<hkern u1="Y" u2="&#x152;" k="41" />
+<hkern u1="Y" u2="&#xfc;" k="61" />
+<hkern u1="Y" u2="&#xfb;" k="61" />
+<hkern u1="Y" u2="&#xfa;" k="61" />
+<hkern u1="Y" u2="&#xf9;" k="61" />
+<hkern u1="Y" u2="&#xf8;" k="102" />
+<hkern u1="Y" u2="&#xf6;" k="102" />
+<hkern u1="Y" u2="&#xf5;" k="102" />
+<hkern u1="Y" u2="&#xf4;" k="102" />
+<hkern u1="Y" u2="&#xf3;" k="102" />
+<hkern u1="Y" u2="&#xf2;" k="102" />
+<hkern u1="Y" u2="&#xeb;" k="102" />
+<hkern u1="Y" u2="&#xea;" k="102" />
+<hkern u1="Y" u2="&#xe9;" k="102" />
+<hkern u1="Y" u2="&#xe8;" k="102" />
+<hkern u1="Y" u2="&#xe7;" k="102" />
+<hkern u1="Y" u2="&#xe6;" k="102" />
+<hkern u1="Y" u2="&#xe5;" k="102" />
+<hkern u1="Y" u2="&#xe4;" k="102" />
+<hkern u1="Y" u2="&#xe3;" k="102" />
+<hkern u1="Y" u2="&#xe2;" k="102" />
+<hkern u1="Y" u2="&#xe1;" k="102" />
+<hkern u1="Y" u2="&#xe0;" k="102" />
+<hkern u1="Y" u2="&#xd8;" k="41" />
+<hkern u1="Y" u2="&#xd6;" k="41" />
+<hkern u1="Y" u2="&#xd5;" k="41" />
+<hkern u1="Y" u2="&#xd4;" k="41" />
+<hkern u1="Y" u2="&#xd3;" k="41" />
+<hkern u1="Y" u2="&#xd2;" k="41" />
+<hkern u1="Y" u2="&#xc7;" k="41" />
+<hkern u1="Y" u2="&#xc5;" k="123" />
+<hkern u1="Y" u2="&#xc4;" k="123" />
+<hkern u1="Y" u2="&#xc3;" k="123" />
+<hkern u1="Y" u2="&#xc2;" k="123" />
+<hkern u1="Y" u2="&#xc1;" k="123" />
+<hkern u1="Y" u2="&#xc0;" k="123" />
+<hkern u1="Y" u2="z" k="41" />
+<hkern u1="Y" u2="u" k="61" />
+<hkern u1="Y" u2="s" k="82" />
+<hkern u1="Y" u2="r" k="61" />
+<hkern u1="Y" u2="q" k="102" />
+<hkern u1="Y" u2="p" k="61" />
+<hkern u1="Y" u2="o" k="102" />
+<hkern u1="Y" u2="n" k="61" />
+<hkern u1="Y" u2="m" k="61" />
+<hkern u1="Y" u2="g" k="41" />
+<hkern u1="Y" u2="e" k="102" />
+<hkern u1="Y" u2="d" k="102" />
+<hkern u1="Y" u2="c" k="102" />
+<hkern u1="Y" u2="a" k="102" />
+<hkern u1="Y" u2="Q" k="41" />
+<hkern u1="Y" u2="O" k="41" />
+<hkern u1="Y" u2="G" k="41" />
+<hkern u1="Y" u2="C" k="41" />
+<hkern u1="Y" u2="A" k="123" />
+<hkern u1="Y" u2="&#x3f;" k="-41" />
+<hkern u1="Y" u2="&#x2e;" k="123" />
+<hkern u1="Y" u2="&#x2c;" k="123" />
+<hkern u1="Z" u2="&#x152;" k="20" />
+<hkern u1="Z" u2="&#xd8;" k="20" />
+<hkern u1="Z" u2="&#xd6;" k="20" />
+<hkern u1="Z" u2="&#xd5;" k="20" />
+<hkern u1="Z" u2="&#xd4;" k="20" />
+<hkern u1="Z" u2="&#xd3;" k="20" />
+<hkern u1="Z" u2="&#xd2;" k="20" />
+<hkern u1="Z" u2="&#xc7;" k="20" />
+<hkern u1="Z" u2="Q" k="20" />
+<hkern u1="Z" u2="O" k="20" />
+<hkern u1="Z" u2="G" k="20" />
+<hkern u1="Z" u2="C" k="20" />
+<hkern u1="[" u2="J" k="-184" />
+<hkern u1="a" u2="&#x201d;" k="20" />
+<hkern u1="a" u2="&#x2019;" k="20" />
+<hkern u1="a" u2="&#x27;" k="20" />
+<hkern u1="a" u2="&#x22;" k="20" />
+<hkern u1="b" u2="&#x201d;" k="20" />
+<hkern u1="b" u2="&#x2019;" k="20" />
+<hkern u1="b" u2="&#xfd;" k="41" />
+<hkern u1="b" u2="z" k="20" />
+<hkern u1="b" u2="y" k="41" />
+<hkern u1="b" u2="x" k="41" />
+<hkern u1="b" u2="w" k="41" />
+<hkern u1="b" u2="v" k="41" />
+<hkern u1="b" u2="&#x27;" k="20" />
+<hkern u1="b" u2="&#x22;" k="20" />
+<hkern u1="c" u2="&#x201d;" k="-41" />
+<hkern u1="c" u2="&#x2019;" k="-41" />
+<hkern u1="c" u2="&#x27;" k="-41" />
+<hkern u1="c" u2="&#x22;" k="-41" />
+<hkern u1="e" u2="&#x201d;" k="20" />
+<hkern u1="e" u2="&#x2019;" k="20" />
+<hkern u1="e" u2="&#xfd;" k="41" />
+<hkern u1="e" u2="z" k="20" />
+<hkern u1="e" u2="y" k="41" />
+<hkern u1="e" u2="x" k="41" />
+<hkern u1="e" u2="w" k="41" />
+<hkern u1="e" u2="v" k="41" />
+<hkern u1="e" u2="&#x27;" k="20" />
+<hkern u1="e" u2="&#x22;" k="20" />
+<hkern u1="f" u2="&#x201d;" k="-123" />
+<hkern u1="f" u2="&#x2019;" k="-123" />
+<hkern u1="f" u2="&#x27;" k="-123" />
+<hkern u1="f" u2="&#x22;" k="-123" />
+<hkern u1="h" u2="&#x201d;" k="20" />
+<hkern u1="h" u2="&#x2019;" k="20" />
+<hkern u1="h" u2="&#x27;" k="20" />
+<hkern u1="h" u2="&#x22;" k="20" />
+<hkern u1="k" u2="&#x153;" k="41" />
+<hkern u1="k" u2="&#xf8;" k="41" />
+<hkern u1="k" u2="&#xf6;" k="41" />
+<hkern u1="k" u2="&#xf5;" k="41" />
+<hkern u1="k" u2="&#xf4;" k="41" />
+<hkern u1="k" u2="&#xf3;" k="41" />
+<hkern u1="k" u2="&#xf2;" k="41" />
+<hkern u1="k" u2="&#xeb;" k="41" />
+<hkern u1="k" u2="&#xea;" k="41" />
+<hkern u1="k" u2="&#xe9;" k="41" />
+<hkern u1="k" u2="&#xe8;" k="41" />
+<hkern u1="k" u2="&#xe7;" k="41" />
+<hkern u1="k" u2="&#xe0;" k="41" />
+<hkern u1="k" u2="q" k="41" />
+<hkern u1="k" u2="o" k="41" />
+<hkern u1="k" u2="e" k="41" />
+<hkern u1="k" u2="d" k="41" />
+<hkern u1="k" u2="c" k="41" />
+<hkern u1="m" u2="&#x201d;" k="20" />
+<hkern u1="m" u2="&#x2019;" k="20" />
+<hkern u1="m" u2="&#x27;" k="20" />
+<hkern u1="m" u2="&#x22;" k="20" />
+<hkern u1="n" u2="&#x201d;" k="20" />
+<hkern u1="n" u2="&#x2019;" k="20" />
+<hkern u1="n" u2="&#x27;" k="20" />
+<hkern u1="n" u2="&#x22;" k="20" />
+<hkern u1="o" u2="&#x201d;" k="20" />
+<hkern u1="o" u2="&#x2019;" k="20" />
+<hkern u1="o" u2="&#xfd;" k="41" />
+<hkern u1="o" u2="z" k="20" />
+<hkern u1="o" u2="y" k="41" />
+<hkern u1="o" u2="x" k="41" />
+<hkern u1="o" u2="w" k="41" />
+<hkern u1="o" u2="v" k="41" />
+<hkern u1="o" u2="&#x27;" k="20" />
+<hkern u1="o" u2="&#x22;" k="20" />
+<hkern u1="p" u2="&#x201d;" k="20" />
+<hkern u1="p" u2="&#x2019;" k="20" />
+<hkern u1="p" u2="&#xfd;" k="41" />
+<hkern u1="p" u2="z" k="20" />
+<hkern u1="p" u2="y" k="41" />
+<hkern u1="p" u2="x" k="41" />
+<hkern u1="p" u2="w" k="41" />
+<hkern u1="p" u2="v" k="41" />
+<hkern u1="p" u2="&#x27;" k="20" />
+<hkern u1="p" u2="&#x22;" k="20" />
+<hkern u1="r" u2="&#x201d;" k="-82" />
+<hkern u1="r" u2="&#x2019;" k="-82" />
+<hkern u1="r" u2="&#x153;" k="41" />
+<hkern u1="r" u2="&#xf8;" k="41" />
+<hkern u1="r" u2="&#xf6;" k="41" />
+<hkern u1="r" u2="&#xf5;" k="41" />
+<hkern u1="r" u2="&#xf4;" k="41" />
+<hkern u1="r" u2="&#xf3;" k="41" />
+<hkern u1="r" u2="&#xf2;" k="41" />
+<hkern u1="r" u2="&#xeb;" k="41" />
+<hkern u1="r" u2="&#xea;" k="41" />
+<hkern u1="r" u2="&#xe9;" k="41" />
+<hkern u1="r" u2="&#xe8;" k="41" />
+<hkern u1="r" u2="&#xe7;" k="41" />
+<hkern u1="r" u2="&#xe6;" k="41" />
+<hkern u1="r" u2="&#xe5;" k="41" />
+<hkern u1="r" u2="&#xe4;" k="41" />
+<hkern u1="r" u2="&#xe3;" k="41" />
+<hkern u1="r" u2="&#xe2;" k="41" />
+<hkern u1="r" u2="&#xe1;" k="41" />
+<hkern u1="r" u2="&#xe0;" k="41" />
+<hkern u1="r" u2="q" k="41" />
+<hkern u1="r" u2="o" k="41" />
+<hkern u1="r" u2="g" k="20" />
+<hkern u1="r" u2="e" k="41" />
+<hkern u1="r" u2="d" k="41" />
+<hkern u1="r" u2="c" k="41" />
+<hkern u1="r" u2="a" k="41" />
+<hkern u1="r" u2="&#x27;" k="-82" />
+<hkern u1="r" u2="&#x22;" k="-82" />
+<hkern u1="t" u2="&#x201d;" k="-41" />
+<hkern u1="t" u2="&#x2019;" k="-41" />
+<hkern u1="t" u2="&#x27;" k="-41" />
+<hkern u1="t" u2="&#x22;" k="-41" />
+<hkern u1="v" u2="&#x201e;" k="82" />
+<hkern u1="v" u2="&#x201d;" k="-82" />
+<hkern u1="v" u2="&#x201a;" k="82" />
+<hkern u1="v" u2="&#x2019;" k="-82" />
+<hkern u1="v" u2="&#x3f;" k="-41" />
+<hkern u1="v" u2="&#x2e;" k="82" />
+<hkern u1="v" u2="&#x2c;" k="82" />
+<hkern u1="v" u2="&#x27;" k="-82" />
+<hkern u1="v" u2="&#x22;" k="-82" />
+<hkern u1="w" u2="&#x201e;" k="82" />
+<hkern u1="w" u2="&#x201d;" k="-82" />
+<hkern u1="w" u2="&#x201a;" k="82" />
+<hkern u1="w" u2="&#x2019;" k="-82" />
+<hkern u1="w" u2="&#x3f;" k="-41" />
+<hkern u1="w" u2="&#x2e;" k="82" />
+<hkern u1="w" u2="&#x2c;" k="82" />
+<hkern u1="w" u2="&#x27;" k="-82" />
+<hkern u1="w" u2="&#x22;" k="-82" />
+<hkern u1="x" u2="&#x153;" k="41" />
+<hkern u1="x" u2="&#xf8;" k="41" />
+<hkern u1="x" u2="&#xf6;" k="41" />
+<hkern u1="x" u2="&#xf5;" k="41" />
+<hkern u1="x" u2="&#xf4;" k="41" />
+<hkern u1="x" u2="&#xf3;" k="41" />
+<hkern u1="x" u2="&#xf2;" k="41" />
+<hkern u1="x" u2="&#xeb;" k="41" />
+<hkern u1="x" u2="&#xea;" k="41" />
+<hkern u1="x" u2="&#xe9;" k="41" />
+<hkern u1="x" u2="&#xe8;" k="41" />
+<hkern u1="x" u2="&#xe7;" k="41" />
+<hkern u1="x" u2="&#xe0;" k="41" />
+<hkern u1="x" u2="q" k="41" />
+<hkern u1="x" u2="o" k="41" />
+<hkern u1="x" u2="e" k="41" />
+<hkern u1="x" u2="d" k="41" />
+<hkern u1="x" u2="c" k="41" />
+<hkern u1="y" u2="&#x201e;" k="82" />
+<hkern u1="y" u2="&#x201d;" k="-82" />
+<hkern u1="y" u2="&#x201a;" k="82" />
+<hkern u1="y" u2="&#x2019;" k="-82" />
+<hkern u1="y" u2="&#x3f;" k="-41" />
+<hkern u1="y" u2="&#x2e;" k="82" />
+<hkern u1="y" u2="&#x2c;" k="82" />
+<hkern u1="y" u2="&#x27;" k="-82" />
+<hkern u1="y" u2="&#x22;" k="-82" />
+<hkern u1="&#x7b;" u2="J" k="-184" />
+<hkern u1="&#xc0;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc0;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc0;" u2="&#x178;" k="123" />
+<hkern u1="&#xc0;" u2="&#x152;" k="41" />
+<hkern u1="&#xc0;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc0;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc0;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc0;" u2="Y" k="123" />
+<hkern u1="&#xc0;" u2="W" k="82" />
+<hkern u1="&#xc0;" u2="V" k="82" />
+<hkern u1="&#xc0;" u2="T" k="143" />
+<hkern u1="&#xc0;" u2="Q" k="41" />
+<hkern u1="&#xc0;" u2="O" k="41" />
+<hkern u1="&#xc0;" u2="J" k="-266" />
+<hkern u1="&#xc0;" u2="G" k="41" />
+<hkern u1="&#xc0;" u2="C" k="41" />
+<hkern u1="&#xc0;" u2="&#x27;" k="143" />
+<hkern u1="&#xc0;" u2="&#x22;" k="143" />
+<hkern u1="&#xc1;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc1;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc1;" u2="&#x178;" k="123" />
+<hkern u1="&#xc1;" u2="&#x152;" k="41" />
+<hkern u1="&#xc1;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc1;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc1;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc1;" u2="Y" k="123" />
+<hkern u1="&#xc1;" u2="W" k="82" />
+<hkern u1="&#xc1;" u2="V" k="82" />
+<hkern u1="&#xc1;" u2="T" k="143" />
+<hkern u1="&#xc1;" u2="Q" k="41" />
+<hkern u1="&#xc1;" u2="O" k="41" />
+<hkern u1="&#xc1;" u2="J" k="-266" />
+<hkern u1="&#xc1;" u2="G" k="41" />
+<hkern u1="&#xc1;" u2="C" k="41" />
+<hkern u1="&#xc1;" u2="&#x27;" k="143" />
+<hkern u1="&#xc1;" u2="&#x22;" k="143" />
+<hkern u1="&#xc2;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc2;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc2;" u2="&#x178;" k="123" />
+<hkern u1="&#xc2;" u2="&#x152;" k="41" />
+<hkern u1="&#xc2;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc2;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc2;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc2;" u2="Y" k="123" />
+<hkern u1="&#xc2;" u2="W" k="82" />
+<hkern u1="&#xc2;" u2="V" k="82" />
+<hkern u1="&#xc2;" u2="T" k="143" />
+<hkern u1="&#xc2;" u2="Q" k="41" />
+<hkern u1="&#xc2;" u2="O" k="41" />
+<hkern u1="&#xc2;" u2="J" k="-266" />
+<hkern u1="&#xc2;" u2="G" k="41" />
+<hkern u1="&#xc2;" u2="C" k="41" />
+<hkern u1="&#xc2;" u2="&#x27;" k="143" />
+<hkern u1="&#xc2;" u2="&#x22;" k="143" />
+<hkern u1="&#xc3;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc3;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc3;" u2="&#x178;" k="123" />
+<hkern u1="&#xc3;" u2="&#x152;" k="41" />
+<hkern u1="&#xc3;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc3;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc3;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc3;" u2="Y" k="123" />
+<hkern u1="&#xc3;" u2="W" k="82" />
+<hkern u1="&#xc3;" u2="V" k="82" />
+<hkern u1="&#xc3;" u2="T" k="143" />
+<hkern u1="&#xc3;" u2="Q" k="41" />
+<hkern u1="&#xc3;" u2="O" k="41" />
+<hkern u1="&#xc3;" u2="J" k="-266" />
+<hkern u1="&#xc3;" u2="G" k="41" />
+<hkern u1="&#xc3;" u2="C" k="41" />
+<hkern u1="&#xc3;" u2="&#x27;" k="143" />
+<hkern u1="&#xc3;" u2="&#x22;" k="143" />
+<hkern u1="&#xc4;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc4;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc4;" u2="&#x178;" k="123" />
+<hkern u1="&#xc4;" u2="&#x152;" k="41" />
+<hkern u1="&#xc4;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc4;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc4;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc4;" u2="Y" k="123" />
+<hkern u1="&#xc4;" u2="W" k="82" />
+<hkern u1="&#xc4;" u2="V" k="82" />
+<hkern u1="&#xc4;" u2="T" k="143" />
+<hkern u1="&#xc4;" u2="Q" k="41" />
+<hkern u1="&#xc4;" u2="O" k="41" />
+<hkern u1="&#xc4;" u2="J" k="-266" />
+<hkern u1="&#xc4;" u2="G" k="41" />
+<hkern u1="&#xc4;" u2="C" k="41" />
+<hkern u1="&#xc4;" u2="&#x27;" k="143" />
+<hkern u1="&#xc4;" u2="&#x22;" k="143" />
+<hkern u1="&#xc5;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc5;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc5;" u2="&#x178;" k="123" />
+<hkern u1="&#xc5;" u2="&#x152;" k="41" />
+<hkern u1="&#xc5;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc5;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc5;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc5;" u2="Y" k="123" />
+<hkern u1="&#xc5;" u2="W" k="82" />
+<hkern u1="&#xc5;" u2="V" k="82" />
+<hkern u1="&#xc5;" u2="T" k="143" />
+<hkern u1="&#xc5;" u2="Q" k="41" />
+<hkern u1="&#xc5;" u2="O" k="41" />
+<hkern u1="&#xc5;" u2="J" k="-266" />
+<hkern u1="&#xc5;" u2="G" k="41" />
+<hkern u1="&#xc5;" u2="C" k="41" />
+<hkern u1="&#xc5;" u2="&#x27;" k="143" />
+<hkern u1="&#xc5;" u2="&#x22;" k="143" />
+<hkern u1="&#xc6;" u2="J" k="-123" />
+<hkern u1="&#xc7;" u2="&#x152;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc7;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc7;" u2="Q" k="41" />
+<hkern u1="&#xc7;" u2="O" k="41" />
+<hkern u1="&#xc7;" u2="G" k="41" />
+<hkern u1="&#xc7;" u2="C" k="41" />
+<hkern u1="&#xc8;" u2="J" k="-123" />
+<hkern u1="&#xc9;" u2="J" k="-123" />
+<hkern u1="&#xca;" u2="J" k="-123" />
+<hkern u1="&#xcb;" u2="J" k="-123" />
+<hkern u1="&#xd0;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd0;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd0;" u2="&#x178;" k="20" />
+<hkern u1="&#xd0;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd0;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd0;" u2="Z" k="20" />
+<hkern u1="&#xd0;" u2="Y" k="20" />
+<hkern u1="&#xd0;" u2="X" k="41" />
+<hkern u1="&#xd0;" u2="W" k="20" />
+<hkern u1="&#xd0;" u2="V" k="20" />
+<hkern u1="&#xd0;" u2="T" k="61" />
+<hkern u1="&#xd0;" u2="A" k="41" />
+<hkern u1="&#xd0;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd0;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd2;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd2;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd2;" u2="&#x178;" k="20" />
+<hkern u1="&#xd2;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd2;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd2;" u2="Z" k="20" />
+<hkern u1="&#xd2;" u2="Y" k="20" />
+<hkern u1="&#xd2;" u2="X" k="41" />
+<hkern u1="&#xd2;" u2="W" k="20" />
+<hkern u1="&#xd2;" u2="V" k="20" />
+<hkern u1="&#xd2;" u2="T" k="61" />
+<hkern u1="&#xd2;" u2="A" k="41" />
+<hkern u1="&#xd2;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd2;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd3;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd3;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd3;" u2="&#x178;" k="20" />
+<hkern u1="&#xd3;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd3;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd3;" u2="Z" k="20" />
+<hkern u1="&#xd3;" u2="Y" k="20" />
+<hkern u1="&#xd3;" u2="X" k="41" />
+<hkern u1="&#xd3;" u2="W" k="20" />
+<hkern u1="&#xd3;" u2="V" k="20" />
+<hkern u1="&#xd3;" u2="T" k="61" />
+<hkern u1="&#xd3;" u2="A" k="41" />
+<hkern u1="&#xd3;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd3;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd4;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd4;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd4;" u2="&#x178;" k="20" />
+<hkern u1="&#xd4;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd4;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd4;" u2="Z" k="20" />
+<hkern u1="&#xd4;" u2="Y" k="20" />
+<hkern u1="&#xd4;" u2="X" k="41" />
+<hkern u1="&#xd4;" u2="W" k="20" />
+<hkern u1="&#xd4;" u2="V" k="20" />
+<hkern u1="&#xd4;" u2="T" k="61" />
+<hkern u1="&#xd4;" u2="A" k="41" />
+<hkern u1="&#xd4;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd4;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd5;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd5;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd5;" u2="&#x178;" k="20" />
+<hkern u1="&#xd5;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd5;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd5;" u2="Z" k="20" />
+<hkern u1="&#xd5;" u2="Y" k="20" />
+<hkern u1="&#xd5;" u2="X" k="41" />
+<hkern u1="&#xd5;" u2="W" k="20" />
+<hkern u1="&#xd5;" u2="V" k="20" />
+<hkern u1="&#xd5;" u2="T" k="61" />
+<hkern u1="&#xd5;" u2="A" k="41" />
+<hkern u1="&#xd5;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd5;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd6;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd6;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd6;" u2="&#x178;" k="20" />
+<hkern u1="&#xd6;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd6;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd6;" u2="Z" k="20" />
+<hkern u1="&#xd6;" u2="Y" k="20" />
+<hkern u1="&#xd6;" u2="X" k="41" />
+<hkern u1="&#xd6;" u2="W" k="20" />
+<hkern u1="&#xd6;" u2="V" k="20" />
+<hkern u1="&#xd6;" u2="T" k="61" />
+<hkern u1="&#xd6;" u2="A" k="41" />
+<hkern u1="&#xd6;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd6;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd8;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd8;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd8;" u2="&#x178;" k="20" />
+<hkern u1="&#xd8;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd8;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd8;" u2="Z" k="20" />
+<hkern u1="&#xd8;" u2="Y" k="20" />
+<hkern u1="&#xd8;" u2="X" k="41" />
+<hkern u1="&#xd8;" u2="W" k="20" />
+<hkern u1="&#xd8;" u2="V" k="20" />
+<hkern u1="&#xd8;" u2="T" k="61" />
+<hkern u1="&#xd8;" u2="A" k="41" />
+<hkern u1="&#xd8;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd8;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd9;" u2="&#x201e;" k="41" />
+<hkern u1="&#xd9;" u2="&#x201a;" k="41" />
+<hkern u1="&#xd9;" u2="&#xc5;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc4;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc3;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc2;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc1;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc0;" k="20" />
+<hkern u1="&#xd9;" u2="A" k="20" />
+<hkern u1="&#xd9;" u2="&#x2e;" k="41" />
+<hkern u1="&#xd9;" u2="&#x2c;" k="41" />
+<hkern u1="&#xda;" u2="&#x201e;" k="41" />
+<hkern u1="&#xda;" u2="&#x201a;" k="41" />
+<hkern u1="&#xda;" u2="&#xc5;" k="20" />
+<hkern u1="&#xda;" u2="&#xc4;" k="20" />
+<hkern u1="&#xda;" u2="&#xc3;" k="20" />
+<hkern u1="&#xda;" u2="&#xc2;" k="20" />
+<hkern u1="&#xda;" u2="&#xc1;" k="20" />
+<hkern u1="&#xda;" u2="&#xc0;" k="20" />
+<hkern u1="&#xda;" u2="A" k="20" />
+<hkern u1="&#xda;" u2="&#x2e;" k="41" />
+<hkern u1="&#xda;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdb;" u2="&#x201e;" k="41" />
+<hkern u1="&#xdb;" u2="&#x201a;" k="41" />
+<hkern u1="&#xdb;" u2="&#xc5;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc4;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc3;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc2;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc1;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc0;" k="20" />
+<hkern u1="&#xdb;" u2="A" k="20" />
+<hkern u1="&#xdb;" u2="&#x2e;" k="41" />
+<hkern u1="&#xdb;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdc;" u2="&#x201e;" k="41" />
+<hkern u1="&#xdc;" u2="&#x201a;" k="41" />
+<hkern u1="&#xdc;" u2="&#xc5;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc4;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc3;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc2;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc1;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc0;" k="20" />
+<hkern u1="&#xdc;" u2="A" k="20" />
+<hkern u1="&#xdc;" u2="&#x2e;" k="41" />
+<hkern u1="&#xdc;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdd;" u2="&#x201e;" k="123" />
+<hkern u1="&#xdd;" u2="&#x201a;" k="123" />
+<hkern u1="&#xdd;" u2="&#x153;" k="102" />
+<hkern u1="&#xdd;" u2="&#x152;" k="41" />
+<hkern u1="&#xdd;" u2="&#xfc;" k="61" />
+<hkern u1="&#xdd;" u2="&#xfb;" k="61" />
+<hkern u1="&#xdd;" u2="&#xfa;" k="61" />
+<hkern u1="&#xdd;" u2="&#xf9;" k="61" />
+<hkern u1="&#xdd;" u2="&#xf8;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf6;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf5;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf4;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf3;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf2;" k="102" />
+<hkern u1="&#xdd;" u2="&#xeb;" k="102" />
+<hkern u1="&#xdd;" u2="&#xea;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe9;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe8;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe7;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe6;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe5;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe4;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe3;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe2;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe1;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe0;" k="102" />
+<hkern u1="&#xdd;" u2="&#xd8;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd6;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd5;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd4;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd3;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd2;" k="41" />
+<hkern u1="&#xdd;" u2="&#xc7;" k="41" />
+<hkern u1="&#xdd;" u2="&#xc5;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc4;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc3;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc2;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc1;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc0;" k="123" />
+<hkern u1="&#xdd;" u2="z" k="41" />
+<hkern u1="&#xdd;" u2="u" k="61" />
+<hkern u1="&#xdd;" u2="s" k="82" />
+<hkern u1="&#xdd;" u2="r" k="61" />
+<hkern u1="&#xdd;" u2="q" k="102" />
+<hkern u1="&#xdd;" u2="p" k="61" />
+<hkern u1="&#xdd;" u2="o" k="102" />
+<hkern u1="&#xdd;" u2="n" k="61" />
+<hkern u1="&#xdd;" u2="m" k="61" />
+<hkern u1="&#xdd;" u2="g" k="41" />
+<hkern u1="&#xdd;" u2="e" k="102" />
+<hkern u1="&#xdd;" u2="d" k="102" />
+<hkern u1="&#xdd;" u2="c" k="102" />
+<hkern u1="&#xdd;" u2="a" k="102" />
+<hkern u1="&#xdd;" u2="Q" k="41" />
+<hkern u1="&#xdd;" u2="O" k="41" />
+<hkern u1="&#xdd;" u2="G" k="41" />
+<hkern u1="&#xdd;" u2="C" k="41" />
+<hkern u1="&#xdd;" u2="A" k="123" />
+<hkern u1="&#xdd;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xdd;" u2="&#x2e;" k="123" />
+<hkern u1="&#xdd;" u2="&#x2c;" k="123" />
+<hkern u1="&#xde;" u2="&#x201e;" k="266" />
+<hkern u1="&#xde;" u2="&#x201a;" k="266" />
+<hkern u1="&#xde;" u2="&#xc5;" k="102" />
+<hkern u1="&#xde;" u2="&#xc4;" k="102" />
+<hkern u1="&#xde;" u2="&#xc3;" k="102" />
+<hkern u1="&#xde;" u2="&#xc2;" k="102" />
+<hkern u1="&#xde;" u2="&#xc1;" k="102" />
+<hkern u1="&#xde;" u2="&#xc0;" k="102" />
+<hkern u1="&#xde;" u2="Z" k="20" />
+<hkern u1="&#xde;" u2="X" k="41" />
+<hkern u1="&#xde;" u2="A" k="102" />
+<hkern u1="&#xde;" u2="&#x2e;" k="266" />
+<hkern u1="&#xde;" u2="&#x2c;" k="266" />
+<hkern u1="&#xe0;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe0;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe0;" u2="&#x27;" k="20" />
+<hkern u1="&#xe0;" u2="&#x22;" k="20" />
+<hkern u1="&#xe1;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe1;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe1;" u2="&#x27;" k="20" />
+<hkern u1="&#xe1;" u2="&#x22;" k="20" />
+<hkern u1="&#xe2;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe2;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe2;" u2="&#x27;" k="20" />
+<hkern u1="&#xe2;" u2="&#x22;" k="20" />
+<hkern u1="&#xe3;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe3;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe3;" u2="&#x27;" k="20" />
+<hkern u1="&#xe3;" u2="&#x22;" k="20" />
+<hkern u1="&#xe4;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe4;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe4;" u2="&#x27;" k="20" />
+<hkern u1="&#xe4;" u2="&#x22;" k="20" />
+<hkern u1="&#xe5;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe5;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe5;" u2="&#x27;" k="20" />
+<hkern u1="&#xe5;" u2="&#x22;" k="20" />
+<hkern u1="&#xe8;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe8;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe8;" u2="&#xfd;" k="41" />
+<hkern u1="&#xe8;" u2="z" k="20" />
+<hkern u1="&#xe8;" u2="y" k="41" />
+<hkern u1="&#xe8;" u2="x" k="41" />
+<hkern u1="&#xe8;" u2="w" k="41" />
+<hkern u1="&#xe8;" u2="v" k="41" />
+<hkern u1="&#xe8;" u2="&#x27;" k="20" />
+<hkern u1="&#xe8;" u2="&#x22;" k="20" />
+<hkern u1="&#xe9;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe9;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe9;" u2="&#xfd;" k="41" />
+<hkern u1="&#xe9;" u2="z" k="20" />
+<hkern u1="&#xe9;" u2="y" k="41" />
+<hkern u1="&#xe9;" u2="x" k="41" />
+<hkern u1="&#xe9;" u2="w" k="41" />
+<hkern u1="&#xe9;" u2="v" k="41" />
+<hkern u1="&#xe9;" u2="&#x27;" k="20" />
+<hkern u1="&#xe9;" u2="&#x22;" k="20" />
+<hkern u1="&#xea;" u2="&#x201d;" k="20" />
+<hkern u1="&#xea;" u2="&#x2019;" k="20" />
+<hkern u1="&#xea;" u2="&#xfd;" k="41" />
+<hkern u1="&#xea;" u2="z" k="20" />
+<hkern u1="&#xea;" u2="y" k="41" />
+<hkern u1="&#xea;" u2="x" k="41" />
+<hkern u1="&#xea;" u2="w" k="41" />
+<hkern u1="&#xea;" u2="v" k="41" />
+<hkern u1="&#xea;" u2="&#x27;" k="20" />
+<hkern u1="&#xea;" u2="&#x22;" k="20" />
+<hkern u1="&#xeb;" u2="&#x201d;" k="20" />
+<hkern u1="&#xeb;" u2="&#x2019;" k="20" />
+<hkern u1="&#xeb;" u2="&#xfd;" k="41" />
+<hkern u1="&#xeb;" u2="z" k="20" />
+<hkern u1="&#xeb;" u2="y" k="41" />
+<hkern u1="&#xeb;" u2="x" k="41" />
+<hkern u1="&#xeb;" u2="w" k="41" />
+<hkern u1="&#xeb;" u2="v" k="41" />
+<hkern u1="&#xeb;" u2="&#x27;" k="20" />
+<hkern u1="&#xeb;" u2="&#x22;" k="20" />
+<hkern u1="&#xf0;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf0;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf0;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf0;" u2="z" k="20" />
+<hkern u1="&#xf0;" u2="y" k="41" />
+<hkern u1="&#xf0;" u2="x" k="41" />
+<hkern u1="&#xf0;" u2="w" k="41" />
+<hkern u1="&#xf0;" u2="v" k="41" />
+<hkern u1="&#xf0;" u2="&#x27;" k="20" />
+<hkern u1="&#xf0;" u2="&#x22;" k="20" />
+<hkern u1="&#xf2;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf2;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf2;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf2;" u2="z" k="20" />
+<hkern u1="&#xf2;" u2="y" k="41" />
+<hkern u1="&#xf2;" u2="x" k="41" />
+<hkern u1="&#xf2;" u2="w" k="41" />
+<hkern u1="&#xf2;" u2="v" k="41" />
+<hkern u1="&#xf2;" u2="&#x27;" k="20" />
+<hkern u1="&#xf2;" u2="&#x22;" k="20" />
+<hkern u1="&#xf3;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf3;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf3;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf3;" u2="z" k="20" />
+<hkern u1="&#xf3;" u2="y" k="41" />
+<hkern u1="&#xf3;" u2="x" k="41" />
+<hkern u1="&#xf3;" u2="w" k="41" />
+<hkern u1="&#xf3;" u2="v" k="41" />
+<hkern u1="&#xf3;" u2="&#x27;" k="20" />
+<hkern u1="&#xf3;" u2="&#x22;" k="20" />
+<hkern u1="&#xf4;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf4;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf4;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf4;" u2="z" k="20" />
+<hkern u1="&#xf4;" u2="y" k="41" />
+<hkern u1="&#xf4;" u2="x" k="41" />
+<hkern u1="&#xf4;" u2="w" k="41" />
+<hkern u1="&#xf4;" u2="v" k="41" />
+<hkern u1="&#xf4;" u2="&#x27;" k="20" />
+<hkern u1="&#xf4;" u2="&#x22;" k="20" />
+<hkern u1="&#xf6;" u2="&#x201d;" k="41" />
+<hkern u1="&#xf6;" u2="&#x2019;" k="41" />
+<hkern u1="&#xf6;" u2="&#x27;" k="41" />
+<hkern u1="&#xf6;" u2="&#x22;" k="41" />
+<hkern u1="&#xf8;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf8;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf8;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf8;" u2="z" k="20" />
+<hkern u1="&#xf8;" u2="y" k="41" />
+<hkern u1="&#xf8;" u2="x" k="41" />
+<hkern u1="&#xf8;" u2="w" k="41" />
+<hkern u1="&#xf8;" u2="v" k="41" />
+<hkern u1="&#xf8;" u2="&#x27;" k="20" />
+<hkern u1="&#xf8;" u2="&#x22;" k="20" />
+<hkern u1="&#xfd;" u2="&#x201e;" k="82" />
+<hkern u1="&#xfd;" u2="&#x201d;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x201a;" k="82" />
+<hkern u1="&#xfd;" u2="&#x2019;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xfd;" u2="&#x2e;" k="82" />
+<hkern u1="&#xfd;" u2="&#x2c;" k="82" />
+<hkern u1="&#xfd;" u2="&#x27;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x22;" k="-82" />
+<hkern u1="&#xfe;" u2="&#x201d;" k="20" />
+<hkern u1="&#xfe;" u2="&#x2019;" k="20" />
+<hkern u1="&#xfe;" u2="&#xfd;" k="41" />
+<hkern u1="&#xfe;" u2="z" k="20" />
+<hkern u1="&#xfe;" u2="y" k="41" />
+<hkern u1="&#xfe;" u2="x" k="41" />
+<hkern u1="&#xfe;" u2="w" k="41" />
+<hkern u1="&#xfe;" u2="v" k="41" />
+<hkern u1="&#xfe;" u2="&#x27;" k="20" />
+<hkern u1="&#xfe;" u2="&#x22;" k="20" />
+<hkern u1="&#xff;" u2="&#x201e;" k="82" />
+<hkern u1="&#xff;" u2="&#x201d;" k="-82" />
+<hkern u1="&#xff;" u2="&#x201a;" k="82" />
+<hkern u1="&#xff;" u2="&#x2019;" k="-82" />
+<hkern u1="&#xff;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xff;" u2="&#x2e;" k="82" />
+<hkern u1="&#xff;" u2="&#x2c;" k="82" />
+<hkern u1="&#xff;" u2="&#x27;" k="-82" />
+<hkern u1="&#xff;" u2="&#x22;" k="-82" />
+<hkern u1="&#x152;" u2="J" k="-123" />
+<hkern u1="&#x178;" u2="&#x201e;" k="123" />
+<hkern u1="&#x178;" u2="&#x201a;" k="123" />
+<hkern u1="&#x178;" u2="&#x153;" k="102" />
+<hkern u1="&#x178;" u2="&#x152;" k="41" />
+<hkern u1="&#x178;" u2="&#xfc;" k="61" />
+<hkern u1="&#x178;" u2="&#xfb;" k="61" />
+<hkern u1="&#x178;" u2="&#xfa;" k="61" />
+<hkern u1="&#x178;" u2="&#xf9;" k="61" />
+<hkern u1="&#x178;" u2="&#xf8;" k="102" />
+<hkern u1="&#x178;" u2="&#xf6;" k="102" />
+<hkern u1="&#x178;" u2="&#xf5;" k="102" />
+<hkern u1="&#x178;" u2="&#xf4;" k="102" />
+<hkern u1="&#x178;" u2="&#xf3;" k="102" />
+<hkern u1="&#x178;" u2="&#xf2;" k="102" />
+<hkern u1="&#x178;" u2="&#xeb;" k="102" />
+<hkern u1="&#x178;" u2="&#xea;" k="102" />
+<hkern u1="&#x178;" u2="&#xe9;" k="102" />
+<hkern u1="&#x178;" u2="&#xe8;" k="102" />
+<hkern u1="&#x178;" u2="&#xe7;" k="102" />
+<hkern u1="&#x178;" u2="&#xe6;" k="102" />
+<hkern u1="&#x178;" u2="&#xe5;" k="102" />
+<hkern u1="&#x178;" u2="&#xe4;" k="102" />
+<hkern u1="&#x178;" u2="&#xe3;" k="102" />
+<hkern u1="&#x178;" u2="&#xe2;" k="102" />
+<hkern u1="&#x178;" u2="&#xe1;" k="102" />
+<hkern u1="&#x178;" u2="&#xe0;" k="102" />
+<hkern u1="&#x178;" u2="&#xd8;" k="41" />
+<hkern u1="&#x178;" u2="&#xd6;" k="41" />
+<hkern u1="&#x178;" u2="&#xd5;" k="41" />
+<hkern u1="&#x178;" u2="&#xd4;" k="41" />
+<hkern u1="&#x178;" u2="&#xd3;" k="41" />
+<hkern u1="&#x178;" u2="&#xd2;" k="41" />
+<hkern u1="&#x178;" u2="&#xc7;" k="41" />
+<hkern u1="&#x178;" u2="&#xc5;" k="123" />
+<hkern u1="&#x178;" u2="&#xc4;" k="123" />
+<hkern u1="&#x178;" u2="&#xc3;" k="123" />
+<hkern u1="&#x178;" u2="&#xc2;" k="123" />
+<hkern u1="&#x178;" u2="&#xc1;" k="123" />
+<hkern u1="&#x178;" u2="&#xc0;" k="123" />
+<hkern u1="&#x178;" u2="z" k="41" />
+<hkern u1="&#x178;" u2="u" k="61" />
+<hkern u1="&#x178;" u2="s" k="82" />
+<hkern u1="&#x178;" u2="r" k="61" />
+<hkern u1="&#x178;" u2="q" k="102" />
+<hkern u1="&#x178;" u2="p" k="61" />
+<hkern u1="&#x178;" u2="o" k="102" />
+<hkern u1="&#x178;" u2="n" k="61" />
+<hkern u1="&#x178;" u2="m" k="61" />
+<hkern u1="&#x178;" u2="g" k="41" />
+<hkern u1="&#x178;" u2="e" k="102" />
+<hkern u1="&#x178;" u2="d" k="102" />
+<hkern u1="&#x178;" u2="c" k="102" />
+<hkern u1="&#x178;" u2="a" k="102" />
+<hkern u1="&#x178;" u2="Q" k="41" />
+<hkern u1="&#x178;" u2="O" k="41" />
+<hkern u1="&#x178;" u2="G" k="41" />
+<hkern u1="&#x178;" u2="C" k="41" />
+<hkern u1="&#x178;" u2="A" k="123" />
+<hkern u1="&#x178;" u2="&#x3f;" k="-41" />
+<hkern u1="&#x178;" u2="&#x2e;" k="123" />
+<hkern u1="&#x178;" u2="&#x2c;" k="123" />
+<hkern u1="&#x2013;" u2="T" k="82" />
+<hkern u1="&#x2014;" u2="T" k="82" />
+<hkern u1="&#x2018;" u2="&#x178;" k="-20" />
+<hkern u1="&#x2018;" u2="&#x153;" k="123" />
+<hkern u1="&#x2018;" u2="&#xfc;" k="61" />
+<hkern u1="&#x2018;" u2="&#xfb;" k="61" />
+<hkern u1="&#x2018;" u2="&#xfa;" k="61" />
+<hkern u1="&#x2018;" u2="&#xf9;" k="61" />
+<hkern u1="&#x2018;" u2="&#xf8;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf6;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf5;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf4;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf3;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf2;" k="123" />
+<hkern u1="&#x2018;" u2="&#xeb;" k="123" />
+<hkern u1="&#x2018;" u2="&#xea;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe9;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe8;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe7;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe6;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe5;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe4;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe3;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe2;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe1;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe0;" k="123" />
+<hkern u1="&#x2018;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x2018;" u2="&#xc5;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc4;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc3;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc2;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc1;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc0;" k="143" />
+<hkern u1="&#x2018;" u2="u" k="61" />
+<hkern u1="&#x2018;" u2="s" k="61" />
+<hkern u1="&#x2018;" u2="r" k="61" />
+<hkern u1="&#x2018;" u2="q" k="123" />
+<hkern u1="&#x2018;" u2="p" k="61" />
+<hkern u1="&#x2018;" u2="o" k="123" />
+<hkern u1="&#x2018;" u2="n" k="61" />
+<hkern u1="&#x2018;" u2="m" k="61" />
+<hkern u1="&#x2018;" u2="g" k="61" />
+<hkern u1="&#x2018;" u2="e" k="123" />
+<hkern u1="&#x2018;" u2="d" k="123" />
+<hkern u1="&#x2018;" u2="c" k="123" />
+<hkern u1="&#x2018;" u2="a" k="82" />
+<hkern u1="&#x2018;" u2="Y" k="-20" />
+<hkern u1="&#x2018;" u2="W" k="-41" />
+<hkern u1="&#x2018;" u2="V" k="-41" />
+<hkern u1="&#x2018;" u2="T" k="-41" />
+<hkern u1="&#x2018;" u2="A" k="143" />
+<hkern u1="&#x2019;" u2="&#x178;" k="-20" />
+<hkern u1="&#x2019;" u2="&#x153;" k="123" />
+<hkern u1="&#x2019;" u2="&#xfc;" k="61" />
+<hkern u1="&#x2019;" u2="&#xfb;" k="61" />
+<hkern u1="&#x2019;" u2="&#xfa;" k="61" />
+<hkern u1="&#x2019;" u2="&#xf9;" k="61" />
+<hkern u1="&#x2019;" u2="&#xf8;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf6;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf5;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf4;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf3;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf2;" k="123" />
+<hkern u1="&#x2019;" u2="&#xeb;" k="123" />
+<hkern u1="&#x2019;" u2="&#xea;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe9;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe8;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe7;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe6;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe5;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe4;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe3;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe2;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe1;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe0;" k="123" />
+<hkern u1="&#x2019;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x2019;" u2="&#xc5;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc4;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc3;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc2;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc1;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc0;" k="143" />
+<hkern u1="&#x2019;" u2="u" k="61" />
+<hkern u1="&#x2019;" u2="s" k="61" />
+<hkern u1="&#x2019;" u2="r" k="61" />
+<hkern u1="&#x2019;" u2="q" k="123" />
+<hkern u1="&#x2019;" u2="p" k="61" />
+<hkern u1="&#x2019;" u2="o" k="123" />
+<hkern u1="&#x2019;" u2="n" k="61" />
+<hkern u1="&#x2019;" u2="m" k="61" />
+<hkern u1="&#x2019;" u2="g" k="61" />
+<hkern u1="&#x2019;" u2="e" k="123" />
+<hkern u1="&#x2019;" u2="d" k="123" />
+<hkern u1="&#x2019;" u2="c" k="123" />
+<hkern u1="&#x2019;" u2="a" k="82" />
+<hkern u1="&#x2019;" u2="Y" k="-20" />
+<hkern u1="&#x2019;" u2="W" k="-41" />
+<hkern u1="&#x2019;" u2="V" k="-41" />
+<hkern u1="&#x2019;" u2="T" k="-41" />
+<hkern u1="&#x2019;" u2="A" k="143" />
+<hkern u1="&#x201a;" u2="&#x178;" k="123" />
+<hkern u1="&#x201a;" u2="&#x152;" k="102" />
+<hkern u1="&#x201a;" u2="&#xdd;" k="123" />
+<hkern u1="&#x201a;" u2="&#xdc;" k="41" />
+<hkern u1="&#x201a;" u2="&#xdb;" k="41" />
+<hkern u1="&#x201a;" u2="&#xda;" k="41" />
+<hkern u1="&#x201a;" u2="&#xd9;" k="41" />
+<hkern u1="&#x201a;" u2="&#xd8;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd6;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd5;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd4;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd3;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd2;" k="102" />
+<hkern u1="&#x201a;" u2="&#xc7;" k="102" />
+<hkern u1="&#x201a;" u2="Y" k="123" />
+<hkern u1="&#x201a;" u2="W" k="123" />
+<hkern u1="&#x201a;" u2="V" k="123" />
+<hkern u1="&#x201a;" u2="U" k="41" />
+<hkern u1="&#x201a;" u2="T" k="143" />
+<hkern u1="&#x201a;" u2="Q" k="102" />
+<hkern u1="&#x201a;" u2="O" k="102" />
+<hkern u1="&#x201a;" u2="G" k="102" />
+<hkern u1="&#x201a;" u2="C" k="102" />
+<hkern u1="&#x201c;" u2="&#x178;" k="-20" />
+<hkern u1="&#x201c;" u2="&#x153;" k="123" />
+<hkern u1="&#x201c;" u2="&#xfc;" k="61" />
+<hkern u1="&#x201c;" u2="&#xfb;" k="61" />
+<hkern u1="&#x201c;" u2="&#xfa;" k="61" />
+<hkern u1="&#x201c;" u2="&#xf9;" k="61" />
+<hkern u1="&#x201c;" u2="&#xf8;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf6;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf5;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf4;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf3;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf2;" k="123" />
+<hkern u1="&#x201c;" u2="&#xeb;" k="123" />
+<hkern u1="&#x201c;" u2="&#xea;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe9;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe8;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe7;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe6;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe5;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe4;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe3;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe2;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe1;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe0;" k="123" />
+<hkern u1="&#x201c;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x201c;" u2="&#xc5;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc4;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc3;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc2;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc1;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc0;" k="143" />
+<hkern u1="&#x201c;" u2="u" k="61" />
+<hkern u1="&#x201c;" u2="s" k="61" />
+<hkern u1="&#x201c;" u2="r" k="61" />
+<hkern u1="&#x201c;" u2="q" k="123" />
+<hkern u1="&#x201c;" u2="p" k="61" />
+<hkern u1="&#x201c;" u2="o" k="123" />
+<hkern u1="&#x201c;" u2="n" k="61" />
+<hkern u1="&#x201c;" u2="m" k="61" />
+<hkern u1="&#x201c;" u2="g" k="61" />
+<hkern u1="&#x201c;" u2="e" k="123" />
+<hkern u1="&#x201c;" u2="d" k="123" />
+<hkern u1="&#x201c;" u2="c" k="123" />
+<hkern u1="&#x201c;" u2="a" k="82" />
+<hkern u1="&#x201c;" u2="Y" k="-20" />
+<hkern u1="&#x201c;" u2="W" k="-41" />
+<hkern u1="&#x201c;" u2="V" k="-41" />
+<hkern u1="&#x201c;" u2="T" k="-41" />
+<hkern u1="&#x201c;" u2="A" k="143" />
+<hkern u1="&#x201e;" u2="&#x178;" k="123" />
+<hkern u1="&#x201e;" u2="&#x152;" k="102" />
+<hkern u1="&#x201e;" u2="&#xdd;" k="123" />
+<hkern u1="&#x201e;" u2="&#xdc;" k="41" />
+<hkern u1="&#x201e;" u2="&#xdb;" k="41" />
+<hkern u1="&#x201e;" u2="&#xda;" k="41" />
+<hkern u1="&#x201e;" u2="&#xd9;" k="41" />
+<hkern u1="&#x201e;" u2="&#xd8;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd6;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd5;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd4;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd3;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd2;" k="102" />
+<hkern u1="&#x201e;" u2="&#xc7;" k="102" />
+<hkern u1="&#x201e;" u2="Y" k="123" />
+<hkern u1="&#x201e;" u2="W" k="123" />
+<hkern u1="&#x201e;" u2="V" k="123" />
+<hkern u1="&#x201e;" u2="U" k="41" />
+<hkern u1="&#x201e;" u2="T" k="143" />
+<hkern u1="&#x201e;" u2="Q" k="102" />
+<hkern u1="&#x201e;" u2="O" k="102" />
+<hkern u1="&#x201e;" u2="G" k="102" />
+<hkern u1="&#x201e;" u2="C" k="102" />
+</font>
+</defs></svg> 
\ No newline at end of file
diff --git a/html/simple-shape/docs/fonts/OpenSans-Light-webfont.woff b/html/simple-shape/docs/fonts/OpenSans-Light-webfont.woff
new file mode 100644
index 0000000..e786074
--- /dev/null
+++ b/html/simple-shape/docs/fonts/OpenSans-Light-webfont.woff
Binary files differdiff --git a/html/simple-shape/docs/fonts/OpenSans-LightItalic-webfont.eot b/html/simple-shape/docs/fonts/OpenSans-LightItalic-webfont.eot
new file mode 100644
index 0000000..8f44592
--- /dev/null
+++ b/html/simple-shape/docs/fonts/OpenSans-LightItalic-webfont.eot
Binary files differdiff --git a/html/simple-shape/docs/fonts/OpenSans-LightItalic-webfont.svg b/html/simple-shape/docs/fonts/OpenSans-LightItalic-webfont.svg
new file mode 100644
index 0000000..431d7e3
--- /dev/null
+++ b/html/simple-shape/docs/fonts/OpenSans-LightItalic-webfont.svg
@@ -0,0 +1,1835 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata></metadata>
+<defs>
+<font id="open_sanslight_italic" horiz-adv-x="1128" >
+<font-face units-per-em="2048" ascent="1638" descent="-410" />
+<missing-glyph horiz-adv-x="532" />
+<glyph unicode="&#xfb00;" horiz-adv-x="1155" d="M-131 -492q-48 0 -102 19v90q53 -16 100 -16q88 0 134 53t75 186l246 1166h-205l14 67l205 14l35 160q35 168 116.5 244t227.5 76q73 0 166 -31l-25 -80q-87 27 -147 27q-96 0 -153.5 -53.5t-84.5 -178.5l-35 -164h477l35 160q35 168 116.5 244t227.5 76q73 0 166 -31 l-24 -80q-87 27 -148 27q-97 0 -154.5 -54.5t-82.5 -177.5l-35 -164h248l-17 -81h-248l-252 -1190q-34 -165 -105.5 -236.5t-193.5 -71.5q-48 0 -102 19v90q53 -16 100 -16q88 0 134 53t75 186l244 1166h-477l-252 -1190q-33 -161 -104 -234.5t-195 -73.5z" />
+<glyph unicode="&#xfb01;" horiz-adv-x="1040" d="M0 0zM739 0h-98l231 1087h96zM915 1366q0 55 22 88t60 33q57 0 57 -72q0 -57 -22 -90t-57 -33q-29 0 -44.5 19.5t-15.5 54.5zM-148 -492q-48 0 -102 19v90q53 -16 100 -16q88 0 134 53t75 186l246 1166h-205l14 67l205 14l35 160q35 168 116.5 244t227.5 76q73 0 166 -31 l-25 -80q-87 27 -147 27q-96 0 -153.5 -53.5t-84.5 -178.5l-35 -164h248l-16 -81h-248l-252 -1190q-33 -161 -104 -234.5t-195 -73.5z" />
+<glyph unicode="&#xfb02;" horiz-adv-x="1042" d="M0 0zM737 0h-94l334 1556h94zM-148 -492q-48 0 -102 19v90q53 -16 100 -16q88 0 134 53t75 186l246 1166h-205l14 67l205 14l35 160q35 168 116.5 244t227.5 76q73 0 166 -31l-25 -80q-87 27 -147 27q-96 0 -153.5 -53.5t-84.5 -178.5l-35 -164h248l-16 -81h-248 l-252 -1190q-33 -161 -104 -234.5t-195 -73.5z" />
+<glyph unicode="&#xfb03;" horiz-adv-x="1616" d="M0 0zM-148 -492q-48 0 -102 19v90q53 -16 100 -16q88 0 134 53t75 186l246 1166h-205l14 67l205 14l35 160q35 168 116.5 244t227.5 76q73 0 166 -31l-25 -80q-87 27 -147 27q-96 0 -153.5 -53.5t-84.5 -178.5l-35 -164h477l35 160q35 168 116.5 244t227.5 76 q73 0 166 -31l-24 -80q-87 27 -148 27q-97 0 -154.5 -54.5t-82.5 -177.5l-35 -164h248l-17 -81h-248l-252 -1190q-34 -165 -105.5 -236.5t-193.5 -71.5q-48 0 -102 19v90q53 -16 100 -16q88 0 134 53t75 186l244 1166h-477l-252 -1190q-33 -161 -104 -234.5t-195 -73.5z M1315 0h-98l231 1087h96zM1491 1366q0 55 22 88t60 33q57 0 57 -72q0 -57 -22 -90t-57 -33q-29 0 -44.5 19.5t-15.5 54.5z" />
+<glyph unicode="&#xfb04;" horiz-adv-x="1626" d="M0 0zM-148 -492q-48 0 -102 19v90q53 -16 100 -16q88 0 134 53t75 186l246 1166h-205l14 67l205 14l35 160q35 168 116.5 244t227.5 76q73 0 166 -31l-25 -80q-87 27 -147 27q-96 0 -153.5 -53.5t-84.5 -178.5l-35 -164h477l35 160q35 168 116.5 244t227.5 76 q73 0 166 -31l-24 -80q-87 27 -148 27q-97 0 -154.5 -54.5t-82.5 -177.5l-35 -164h248l-17 -81h-248l-252 -1190q-34 -165 -105.5 -236.5t-193.5 -71.5q-48 0 -102 19v90q53 -16 100 -16q88 0 134 53t75 186l244 1166h-477l-252 -1190q-33 -161 -104 -234.5t-195 -73.5z M1321 0h-94l334 1556h94z" />
+<glyph horiz-adv-x="2048" />
+<glyph horiz-adv-x="2048" />
+<glyph unicode="&#xd;" horiz-adv-x="1044" />
+<glyph unicode=" "  horiz-adv-x="532" />
+<glyph unicode="&#x09;" horiz-adv-x="532" />
+<glyph unicode="&#xa0;" horiz-adv-x="532" />
+<glyph unicode="!" horiz-adv-x="502" d="M248 377h-62l203 1085h119zM80 57q0 56 25 88.5t69 32.5q66 0 66 -72q0 -53 -25 -87.5t-68 -34.5q-67 0 -67 73z" />
+<glyph unicode="&#x22;" horiz-adv-x="721" d="M455 1462l-146 -528h-61l80 528h127zM784 1462l-145 -528h-61l79 528h127z" />
+<glyph unicode="#" horiz-adv-x="1323" d="M389 530l119 398h-297l8 80h311l134 454h90l-136 -454h365l135 454h86l-135 -454h285l-8 -80h-302l-118 -398h303l-8 -79h-320l-133 -451h-90l135 451h-360l-134 -451h-88l134 451h-283l8 79h299zM475 530h363l120 398h-362z" />
+<glyph unicode="$" d="M928 467q0 -151 -110.5 -243t-297.5 -103l-53 -240h-82l51 240q-79 2 -158 18t-137 43v94q65 -34 153.5 -53.5t160.5 -19.5l110 512q-110 53 -153 91t-66.5 87.5t-23.5 116.5q0 155 105.5 250.5t272.5 99.5l41 192h80l-41 -192q149 -5 277 -68l-35 -78q-110 61 -256 70 l-109 -514q124 -60 172.5 -99.5t73.5 -88.5t25 -115zM537 203q142 7 223.5 74.5t81.5 183.5q0 76 -48 129.5t-157 97.5zM686 1284q-134 -9 -205 -80t-71 -186q0 -78 37 -128.5t137 -96.5z" />
+<glyph unicode="%" horiz-adv-x="1556" d="M1458 1462l-1139 -1462h-106l1135 1462h110zM1520 612q0 -175 -50 -327t-136 -230t-197 -78q-112 0 -172 75.5t-60 223.5q0 160 52 312t138 229.5t193 77.5q121 0 176.5 -71.5t55.5 -211.5zM1284 821q-80 0 -146.5 -72.5t-106.5 -202.5t-40 -263q0 -116 41 -174t113 -58 q130 0 209.5 166.5t79.5 386.5q0 109 -36 163t-114 54zM760 1198q0 -175 -50 -327t-136 -230t-197 -78q-112 0 -172 75.5t-60 223.5q0 160 52 312t138 229.5t193 77.5q232 0 232 -283zM524 1407q-79 0 -145 -71.5t-107 -203t-41 -264.5q0 -115 41 -173t113 -58 q84 0 148.5 72t102.5 204t38 277q0 109 -36 163t-114 54z" />
+<glyph unicode="&#x26;" horiz-adv-x="1331" d="M748 1395q-125 0 -194 -68t-69 -192q0 -132 109 -281q203 89 279.5 163.5t76.5 182.5q0 91 -56.5 143t-145.5 52zM465 63q108 0 211.5 42.5t222.5 146.5l-352 493q-164 -79 -232 -134.5t-103.5 -124t-35.5 -158.5q0 -119 78 -192t211 -73zM78 324q0 162 99 277.5 t325 215.5l-41 67q-78 128 -78 251q0 157 101 253.5t264 96.5q145 0 227 -76.5t82 -206.5q0 -85 -41 -154t-121 -128t-256 -138l330 -463q73 75 135.5 176.5t91.5 186.5h111q-102 -247 -285 -436l184 -246h-123l-131 184q-121 -108 -242 -156t-266 -48q-167 0 -266.5 94 t-99.5 250z" />
+<glyph unicode="'" horiz-adv-x="403" d="M461 1462l-146 -528h-61l80 528h127z" />
+<glyph unicode="(" horiz-adv-x="526" d="M104 270q0 343 122 633t382 559h105q-259 -276 -384.5 -568t-125.5 -618q0 -317 127 -600h-80q-146 262 -146 594z" />
+<glyph unicode=")" horiz-adv-x="526" d="M453 868q0 -345 -123.5 -636t-380.5 -556h-105q257 274 383.5 566.5t126.5 619.5q0 148 -28.5 294t-98.5 306h80q146 -262 146 -594z" />
+<glyph unicode="*" horiz-adv-x="1137" d="M834 1540l-109 -405l438 8l-8 -107l-416 29l181 -401l-115 -37l-135 417l-285 -348l-78 78l318 318l-392 125l39 102l394 -168l47 408z" />
+<glyph unicode="+" d="M563 672h-401v100h401v404h101v-404h401v-100h-401v-400h-101v400z" />
+<glyph unicode="," horiz-adv-x="451" d="M250 238l8 -23q-34 -92 -114 -233.5t-160 -245.5h-74q79 132 141 271t88 231h111z" />
+<glyph unicode="-" horiz-adv-x="629" d="M82 502l18 90h457l-16 -90h-459z" />
+<glyph unicode="." horiz-adv-x="485" d="M82 55q0 56 25 88.5t69 32.5q66 0 66 -72q0 -53 -25 -87.5t-67 -34.5q-68 0 -68 73z" />
+<glyph unicode="/" horiz-adv-x="641" d="M827 1462l-817 -1462h-110l815 1462h112z" />
+<glyph unicode="0" d="M1075 1016q0 -201 -41 -405t-116.5 -346t-183.5 -213.5t-242 -71.5q-176 0 -264.5 126.5t-88.5 387.5q0 186 44.5 381.5t124 334t187 207t240.5 68.5q340 0 340 -469zM723 1397q-134 0 -241.5 -113t-173.5 -329t-66 -451q0 -222 62.5 -329t197.5 -107q139 0 244 112 t166 337t61 489q0 199 -59.5 295t-190.5 96z" />
+<glyph unicode="1" d="M537 0h-105l225 1055q19 92 74 293q-42 -36 -75.5 -61t-249.5 -161l-52 78l406 258h90z" />
+<glyph unicode="2" d="M909 0h-870l22 104l449 402q198 177 284 276.5t126.5 186.5t40.5 180q0 112 -66 178t-197 66q-176 0 -333 -129l-54 73q180 146 394 146q173 0 268.5 -85t95.5 -237q0 -110 -43.5 -208.5t-141.5 -211.5t-311 -303l-383 -338v-4h736z" />
+<glyph unicode="3" d="M1049 1174q0 -162 -106 -275t-286 -143v-4q117 -24 185.5 -115.5t68.5 -226.5q0 -134 -64 -233t-179.5 -148t-274.5 -49q-96 0 -184.5 20.5t-153.5 52.5v101q172 -86 344 -86q197 0 303.5 89.5t106.5 252.5q0 145 -89 223t-247 78h-117l21 96h110q209 0 333 95.5 t124 258.5q0 114 -63.5 175t-188.5 61q-167 0 -344 -131l-49 75q84 67 188 104.5t218 37.5q161 0 252.5 -82.5t91.5 -226.5z" />
+<glyph unicode="4" d="M1071 371h-264l-80 -371h-96l80 371h-688l20 96l881 1010h118l-215 -1018h265zM729 459q79 369 119 558.5t86 354.5h-4q-66 -91 -129 -166l-651 -747h579z" />
+<glyph unicode="5" d="M582 879q188 0 292.5 -102t104.5 -279q0 -237 -148 -377.5t-407 -140.5q-84 0 -177.5 20t-158.5 51v107q170 -90 340 -90q208 0 328.5 114.5t120.5 313.5q0 140 -85 219.5t-225 79.5q-133 0 -243 -41l-66 49l193 659h624l-18 -96h-541l-149 -516q98 29 215 29z" />
+<glyph unicode="6" d="M170 428q0 283 105 544.5t269.5 385t383.5 123.5q123 0 182 -21l-18 -90q-86 23 -170 23q-233 0 -393.5 -174t-233.5 -502h8q68 94 164 143t211 49q161 0 250.5 -100.5t89.5 -282.5q0 -156 -60 -281t-171 -195t-257 -70q-171 0 -265.5 119t-94.5 329zM543 68 q112 0 196.5 58.5t130 162t45.5 229.5q0 146 -67 224.5t-195 78.5q-81 0 -154 -31.5t-129 -87t-78 -115t-22 -173.5q0 -164 72.5 -255t200.5 -91z" />
+<glyph unicode="7" d="M244 0l796 1366h-766l23 96h858l-20 -110l-779 -1352h-112z" />
+<glyph unicode="8" d="M737 1485q163 0 258 -85t95 -229q0 -138 -84 -234.5t-285 -172.5q130 -78 190 -170.5t60 -208.5t-58 -208t-165.5 -144.5t-260.5 -52.5q-178 0 -283.5 92.5t-105.5 253.5q0 159 100.5 268.5t321.5 187.5q-100 72 -144 152t-44 180q0 159 114 265t291 106zM610 733 q-218 -73 -313.5 -167.5t-95.5 -225.5q0 -136 77.5 -206.5t219.5 -70.5q168 0 270 91t102 233q0 104 -62 189t-198 157zM727 1399q-130 0 -214.5 -82t-84.5 -203q0 -91 41.5 -159t157.5 -142q192 62 279 144t87 206q0 109 -70.5 172.5t-195.5 63.5z" />
+<glyph unicode="9" d="M1059 1032q0 -288 -101.5 -548t-263.5 -382t-393 -122q-114 0 -186 22v90q87 -29 192 -29q474 0 627 674h-8q-140 -192 -367 -192q-162 0 -255 105t-93 284q0 155 59.5 281t170.5 196t257 70q174 0 267.5 -115.5t93.5 -333.5zM686 1393q-112 0 -197.5 -58.5 t-130.5 -162.5t-45 -230q0 -145 67.5 -225t192.5 -80q83 0 157.5 32.5t129 87.5t76.5 114t22 176q0 166 -71 256t-201 90z" />
+<glyph unicode=":" horiz-adv-x="485" d="M260 989q0 57 25.5 89t68.5 32q66 0 66 -72q0 -55 -25 -89t-67 -34q-68 0 -68 74zM102 55q0 56 25.5 88.5t69.5 32.5q65 0 65 -72q0 -55 -25.5 -88.5t-66.5 -33.5q-68 0 -68 73z" />
+<glyph unicode=";" horiz-adv-x="485" d="M287 238l8 -23q-35 -96 -118.5 -242t-156.5 -237h-73q79 132 141 271t88 231h111zM266 989q0 57 25.5 89t68.5 32q66 0 66 -72q0 -55 -25 -89t-67 -34q-68 0 -68 74z" />
+<glyph unicode="&#x3c;" d="M1051 262l-914 414v74l914 471v-103l-801 -399l801 -350v-107z" />
+<glyph unicode="=" d="M168 885v100h903v-100h-903zM168 461v98h903v-98h-903z" />
+<glyph unicode="&#x3e;" d="M170 369l801 350l-801 399v103l915 -471v-74l-915 -414v107z" />
+<glyph unicode="?" horiz-adv-x="799" d="M242 362l6 29q29 132 82 206.5t157 147.5q118 84 175 145.5t86.5 127.5t29.5 141q0 108 -67.5 170t-182.5 62q-139 0 -307 -101l-39 86q85 49 171.5 78t187.5 29q159 0 250.5 -84.5t91.5 -229.5q0 -127 -66 -234t-231 -226q-85 -61 -132.5 -108.5t-73 -95t-46.5 -143.5 h-92zM170 59q0 56 25 88.5t69 32.5q66 0 66 -71q0 -54 -24.5 -88.5t-67.5 -34.5q-68 0 -68 73z" />
+<glyph unicode="@" horiz-adv-x="1724" d="M1688 858q0 -179 -56 -323.5t-154.5 -227t-211.5 -82.5q-98 0 -154.5 55t-56.5 144h-4q-54 -97 -132.5 -148t-168.5 -51q-112 0 -178 73t-66 202q0 156 63 283t178 198.5t261 71.5q122 0 252 -52l-84 -315q-39 -140 -39 -221q0 -71 34.5 -111.5t100.5 -40.5 q86 0 160 73.5t117.5 198t43.5 251.5q0 156 -65 277t-187 188t-292 67q-235 0 -424.5 -108.5t-295.5 -304t-106 -439.5q0 -288 155 -449t435 -161q207 0 420 82v-90q-210 -82 -428 -82q-203 0 -357.5 82.5t-238.5 239t-84 370.5q0 276 121.5 493.5t337 337t473.5 119.5 q189 0 330.5 -72.5t221 -213t79.5 -314.5zM1008 969q-113 0 -204.5 -59t-142.5 -165.5t-51 -238.5q0 -92 40.5 -142.5t113.5 -50.5q101 0 180.5 89t124.5 255l78 289q-66 23 -139 23z" />
+<glyph unicode="A" horiz-adv-x="1059" d="M805 520h-512l-287 -520h-117l822 1468h67l201 -1468h-105zM793 612l-39 291q-31 242 -39 402q-30 -63 -64.5 -130t-306.5 -563h449z" />
+<glyph unicode="B" horiz-adv-x="1202" d="M412 1462h379q190 0 290.5 -84t100.5 -241q0 -153 -90 -249t-254 -124v-4q125 -31 188.5 -113.5t63.5 -204.5q0 -205 -140.5 -323.5t-390.5 -118.5h-457zM377 811h278q206 0 313 81t107 238q0 119 -78 180.5t-229 61.5h-272zM358 721l-135 -631h342q201 0 309.5 87.5 t108.5 256.5q0 145 -90 216t-275 71h-260z" />
+<glyph unicode="C" horiz-adv-x="1169" d="M961 1389q-197 0 -351.5 -104.5t-245 -304.5t-90.5 -441q0 -225 110.5 -346t317.5 -121q140 0 304 51v-94q-156 -49 -316 -49q-252 0 -386 145t-134 410q0 266 104.5 488t284.5 341t402 119q177 0 307 -68l-45 -90q-55 30 -124.5 47t-137.5 17z" />
+<glyph unicode="D" horiz-adv-x="1350" d="M1288 879q0 -253 -109.5 -461.5t-300.5 -313t-446 -104.5h-330l310 1462h305q282 0 426.5 -147.5t144.5 -435.5zM430 90q226 0 394.5 94.5t261 275.5t92.5 412q0 498 -476 498h-206l-275 -1280h209z" />
+<glyph unicode="E" horiz-adv-x="1067" d="M829 0h-727l310 1462h727l-21 -94h-624l-117 -553h590l-21 -94h-588l-135 -627h627z" />
+<glyph unicode="F" horiz-adv-x="981" d="M205 0h-103l310 1462h708l-20 -94h-604l-134 -620h570l-21 -95h-569z" />
+<glyph unicode="G" horiz-adv-x="1374" d="M856 735h406l-150 -682q-211 -73 -405 -73q-257 0 -397 146t-140 421q0 265 105 483.5t283.5 335.5t395.5 117q113 0 203 -19t184 -59l-38 -94q-110 46 -189.5 62t-167.5 16q-184 0 -339 -107.5t-244 -301.5t-89 -433q0 -229 114.5 -352t326.5 -123q155 0 309 47l117 526 h-303z" />
+<glyph unicode="H" horiz-adv-x="1366" d="M1063 0h-100l151 719h-760l-149 -719h-103l310 1462h102l-139 -649h760l137 649h100z" />
+<glyph unicode="I" horiz-adv-x="504" d="M102 0l310 1462h98l-309 -1462h-99z" />
+<glyph unicode="J" horiz-adv-x="477" d="M-180 -360q-48 0 -88 8t-56 16l11 92q57 -20 137 -20q213 0 262 241l309 1485h105l-314 -1491q-35 -170 -125 -250.5t-241 -80.5z" />
+<glyph unicode="K" horiz-adv-x="1122" d="M979 0h-111l-342 788l-190 -153l-131 -635h-103l310 1462h102l-158 -723l133 121l680 602h138l-699 -610z" />
+<glyph unicode="L" horiz-adv-x="938" d="M102 0l310 1462h102l-289 -1366h621l-23 -96h-721z" />
+<glyph unicode="M" horiz-adv-x="1669" d="M772 205l733 1257h150l-301 -1462h-101l191 901q79 369 100 447h-6l-780 -1348h-51l-222 1348h-6q-20 -154 -78 -426l-196 -922h-96l309 1462h143l205 -1257h6z" />
+<glyph unicode="N" horiz-adv-x="1372" d="M1069 0h-86l-516 1284h-8q-23 -149 -48 -273t-214 -1011h-95l310 1462h80l522 -1294h8q23 176 74 416l188 878h94z" />
+<glyph unicode="O" horiz-adv-x="1464" d="M1403 911q0 -255 -94 -481.5t-252 -338t-365 -111.5q-250 0 -385 149t-135 430q0 262 93 477.5t255 331t373 115.5q247 0 378.5 -148.5t131.5 -423.5zM879 1389q-174 0 -308.5 -101t-214.5 -298t-80 -417q0 -245 109.5 -373t319.5 -128q169 0 300 98.5t210 300t79 430.5 q0 240 -104.5 364t-310.5 124z" />
+<glyph unicode="P" horiz-adv-x="1145" d="M1145 1102q0 -500 -610 -500h-201l-129 -602h-103l310 1462h315q202 0 310 -92.5t108 -267.5zM350 694h191q252 0 373.5 96.5t121.5 305.5q0 274 -329 274h-211z" />
+<glyph unicode="Q" horiz-adv-x="1464" d="M1403 911q0 -216 -70 -418t-186.5 -324t-274.5 -167l267 -350h-142l-231 332l-74 -4q-250 0 -385 149t-135 430q0 262 93 477.5t255 331t373 115.5q247 0 378.5 -148.5t131.5 -423.5zM879 1389q-174 0 -308.5 -101t-214.5 -298t-80 -417q0 -245 109.5 -373t319.5 -128 q169 0 300 98.5t210 300t79 430.5q0 240 -104.5 364t-310.5 124z" />
+<glyph unicode="R" horiz-adv-x="1145" d="M336 633l-131 -633h-103l310 1462h303q430 0 430 -360q0 -182 -103.5 -303t-281.5 -152q201 -591 221 -647h-111l-211 633h-323zM358 725h252q208 0 317 95.5t109 281.5q0 268 -329 268h-211z" />
+<glyph unicode="S" horiz-adv-x="1020" d="M895 403q0 -126 -65.5 -224.5t-179.5 -148.5t-269 -50q-88 0 -172.5 17t-171.5 58v109q163 -92 348 -92q188 0 295.5 86.5t107.5 232.5q0 61 -17 104.5t-52.5 78.5t-91 68t-131.5 75q-150 76 -209.5 164t-59.5 206t59 207.5t165 139t237 49.5q99 0 180 -17.5t168 -60.5 l-32 -94q-66 40 -151.5 63t-164.5 23q-163 0 -259.5 -82.5t-96.5 -218.5q0 -103 49 -170t182 -133q154 -79 213.5 -130t89 -113t29.5 -147z" />
+<glyph unicode="T" horiz-adv-x="985" d="M438 0h-102l289 1368h-432l20 94h973l-19 -94h-440z" />
+<glyph unicode="U" horiz-adv-x="1370" d="M1395 1462l-207 -977q-58 -270 -197 -387.5t-375 -117.5q-440 0 -440 401q0 83 27 201l186 880h103l-193 -899q-20 -89 -20 -184q0 -309 342 -309q195 0 307.5 96.5t158.5 318.5l207 977h101z" />
+<glyph unicode="V" horiz-adv-x="1079" d="M457 147q51 111 124 247l572 1068h117l-799 -1462h-88l-182 1462h100l117 -950q26 -217 35 -365h4z" />
+<glyph unicode="W" horiz-adv-x="1702" d="M1018 1341q-27 -76 -62 -153.5t-563 -1187.5h-82l-73 1462h100l47 -1031l4 -165l-2 -86h6q85 226 170 398l434 884h105l61 -878q19 -266 19 -410h6q30 86 61.5 163t493.5 1125h108q-169 -365 -330.5 -731t-328.5 -731h-78l-78 1075q-11 142 -11 219l1 47h-8z" />
+<glyph unicode="X" horiz-adv-x="971" d="M879 0h-107l-254 678l-526 -678h-127l608 766l-272 696h106l240 -626l483 626h119l-555 -719z" />
+<glyph unicode="Y" horiz-adv-x="965" d="M494 645l544 817h117l-631 -932l-108 -530h-105l119 545l-237 917h100z" />
+<glyph unicode="Z" d="M913 0h-925l22 92l1069 1276h-764l23 94h887l-19 -88l-1069 -1280h799z" />
+<glyph unicode="[" horiz-adv-x="537" d="M369 -324h-426l376 1786h429l-19 -90h-330l-340 -1605h330z" />
+<glyph unicode="\" horiz-adv-x="641" d="M295 1462l242 -1462h-82l-246 1462h86z" />
+<glyph unicode="]" horiz-adv-x="537" d="M203 1462h426l-377 -1786h-428l18 91h330l340 1605h-330z" />
+<glyph unicode="^" horiz-adv-x="1047" d="M70 569l587 906h91l260 -906h-105l-217 809l-500 -809h-116z" />
+<glyph unicode="_" horiz-adv-x="801" d="M625 -291h-807l18 86h807z" />
+<glyph unicode="`" horiz-adv-x="1135" d="M766 1241h-66q-50 52 -114 144.5t-99 162.5v21h115q46 -129 164 -303v-25z" />
+<glyph unicode="a" horiz-adv-x="1133" d="M655 1104q232 0 279 -219h6l59 202h80l-229 -1087h-82l45 274h-6q-84 -142 -187 -218t-237 -76q-281 0 -281 374q0 197 75 376t200.5 276.5t277.5 97.5zM406 70q89 0 177.5 62t159 166t107.5 230t37 213q0 79 -26 141.5t-77 99t-127 36.5q-124 0 -224 -82t-164 -245.5 t-64 -325.5q0 -152 50 -223.5t151 -71.5z" />
+<glyph unicode="b" horiz-adv-x="1151" d="M500 -16q-113 0 -186 59t-97 166h-6l-55 -209h-80l327 1556h95q-131 -628 -162 -751h6q93 156 199 229.5t231 73.5q281 0 281 -375q0 -203 -76 -380t-201 -273t-276 -96zM750 1018q-91 0 -180 -61.5t-160.5 -169.5t-106.5 -235t-35 -206q0 -129 64 -202.5t166 -73.5 q124 0 224 83t164 245t64 325q0 152 -49 223.5t-151 71.5z" />
+<glyph unicode="c" horiz-adv-x="887" d="M477 -20q-174 0 -274.5 110.5t-100.5 306.5q0 193 73.5 361.5t198.5 257t290 88.5q134 0 241 -43l-28 -90q-107 47 -218 47q-129 0 -232.5 -77t-162.5 -222t-59 -320q0 -158 73.5 -243.5t208.5 -85.5q71 0 131.5 13t131.5 46v-92q-116 -57 -273 -57z" />
+<glyph unicode="d" horiz-adv-x="1133" d="M655 1104q230 0 279 -219h4q12 66 143 671h99l-330 -1556h-82l45 274h-6q-173 -294 -424 -294q-281 0 -281 374q0 193 71.5 370t197.5 278.5t284 101.5zM406 70q89 0 178.5 62.5t160 168t106.5 231t36 209.5q0 126 -61.5 201.5t-168.5 75.5q-124 0 -224 -83t-164 -242.5 t-64 -327.5q0 -295 201 -295z" />
+<glyph unicode="e" horiz-adv-x="928" d="M469 -20q-173 0 -270 109.5t-97 305.5q0 181 71 347t195.5 264t274.5 98q114 0 182 -61t68 -166q0 -181 -163.5 -276t-485.5 -95h-33q-6 -44 -6 -98q0 -165 74 -251.5t213 -86.5q132 0 276 73v-94q-140 -69 -299 -69zM631 1018q-131 0 -243.5 -115.5t-162.5 -308.5h49 q517 0 517 270q0 67 -43.5 110.5t-116.5 43.5z" />
+<glyph unicode="f" horiz-adv-x="578" d="M-131 -492q-48 0 -102 19v90q53 -16 100 -16q88 0 134 53t75 186l246 1166h-205l14 67l205 14l35 160q35 168 116.5 244t227.5 76q73 0 166 -31l-25 -80q-87 27 -147 27q-96 0 -153.5 -53.5t-84.5 -178.5l-35 -164h248l-16 -81h-248l-252 -1190q-33 -161 -104 -234.5 t-195 -73.5z" />
+<glyph unicode="g" horiz-adv-x="1040" d="M1100 1087l-17 -79l-243 -11q26 -28 43.5 -84t17.5 -114q0 -109 -54.5 -206.5t-148 -145.5t-213.5 -48q-63 0 -77 9q-80 -33 -124 -73t-44 -81t31.5 -64.5t113.5 -31.5l121 -11q346 -31 346 -264q0 -112 -65 -197.5t-187 -131.5t-291 -46q-186 0 -291.5 72t-105.5 203 q0 236 309 334q-78 42 -78 123q0 123 191 202q-71 36 -110.5 105.5t-39.5 157.5q0 111 53.5 204t148 146t206.5 53q69 0 147 -21h361zM14 -207q0 -101 81 -150t224 -49q203 0 317 74.5t114 204.5q0 85 -62.5 130.5t-218.5 57.5l-160 15q-157 -45 -226 -114.5t-69 -168.5z M285 711q0 -112 58.5 -170t164.5 -58q88 0 154 37t102.5 114t36.5 169q0 104 -56 161.5t-157 57.5q-93 0 -161 -43t-105 -116t-37 -152z" />
+<glyph unicode="h" horiz-adv-x="1143" d="M764 0l149 692q21 92 21 156q0 80 -43.5 125t-134.5 45q-112 0 -210.5 -67t-166 -188t-103.5 -286l-102 -477h-98l332 1556h96l-86 -411q-44 -200 -66 -279h6q78 113 186.5 175.5t229.5 62.5q124 0 192 -65t68 -183q0 -70 -24 -182l-148 -674h-98z" />
+<glyph unicode="i" horiz-adv-x="475" d="M174 0h-98l231 1087h96zM350 1366q0 55 22 88t60 33q57 0 57 -72q0 -57 -22 -90t-57 -33q-29 0 -44.5 19.5t-15.5 54.5z" />
+<glyph unicode="j" horiz-adv-x="475" d="M-166 -492q-62 0 -113 19v92q47 -22 113 -22q82 0 128.5 51.5t72.5 177.5l266 1261h96l-268 -1271q-35 -165 -106.5 -236.5t-188.5 -71.5zM350 1366q0 55 22 88t60 33q57 0 57 -72q0 -57 -22 -90t-57 -33q-29 0 -44.5 19.5t-15.5 54.5z" />
+<glyph unicode="k" horiz-adv-x="944" d="M270 477l609 610h125l-474 -469l297 -618h-106l-264 559l-205 -188l-80 -371h-96l330 1556h96l-166 -780l-70 -299h4z" />
+<glyph unicode="l" horiz-adv-x="475" d="M170 0h-94l334 1556h94z" />
+<glyph unicode="m" horiz-adv-x="1751" d="M711 0l147 674q25 125 25 162q0 182 -154 182q-106 0 -200 -67.5t-159 -188.5t-100 -287l-100 -475h-98l231 1087h80l-33 -210h6q80 113 181.5 170t212.5 57q106 0 163 -67t60 -195h6q77 129 181 195.5t222 66.5q117 0 182.5 -61.5t65.5 -176.5q0 -29 -2.5 -56.5 t-19.5 -119.5l-152 -690h-100l149 680q25 120 25 176q0 77 -43 119.5t-119 42.5q-157 0 -277.5 -137.5t-168.5 -362.5l-109 -518h-102z" />
+<glyph unicode="n" horiz-adv-x="1143" d="M764 0l149 692q21 92 21 156q0 80 -43.5 125t-134.5 45q-112 0 -210.5 -67t-166 -187.5t-103.5 -286.5l-102 -477h-98l231 1087h82l-37 -221h6q164 238 416 238q130 0 195 -64t65 -184q0 -70 -24 -182l-148 -674h-98z" />
+<glyph unicode="o" horiz-adv-x="1124" d="M649 1108q180 0 278.5 -108.5t98.5 -299.5q0 -197 -71.5 -368.5t-195.5 -261.5t-286 -90q-184 0 -279.5 109.5t-95.5 313.5q0 191 73 358t197 257t281 90zM641 1022q-124 0 -223 -78.5t-158 -225t-59 -310.5q0 -342 282 -342q127 0 225.5 77.5t157 228t58.5 330.5 q0 154 -73 237t-210 83z" />
+<glyph unicode="p" horiz-adv-x="1149" d="M498 -16q-230 0 -279 219h-4q-13 -72 -149 -695h-99l336 1579h82l-45 -274h6q91 153 195.5 224t228.5 71q135 0 208 -92.5t73 -282.5q0 -195 -72 -371t-197.5 -277t-283.5 -101zM748 1018q-87 0 -174 -58.5t-161.5 -167.5t-110.5 -237.5t-36 -208.5q0 -125 61.5 -200.5 t168.5 -75.5q124 0 225 84t164 243.5t63 325.5q0 295 -200 295z" />
+<glyph unicode="q" horiz-adv-x="1157" d="M651 1104q109 0 183.5 -58t99.5 -167h6l55 208h80l-327 -1556h-95l98 470l64 282h-6q-93 -156 -199 -229.5t-231 -73.5q-281 0 -281 374q0 201 75.5 379t200.5 274.5t277 96.5zM401 70q92 0 182 62.5t160.5 171.5t105 236.5t34.5 200.5q0 130 -63.5 203.5t-166.5 73.5 q-124 0 -224 -83t-164 -245t-64 -325q0 -143 45.5 -219t154.5 -76z" />
+<glyph unicode="r" horiz-adv-x="752" d="M713 1106q69 0 123 -14l-21 -93q-47 15 -113 15q-94 0 -179 -64t-153 -192t-100 -277l-100 -481h-98l231 1087h80l-29 -204h6q73 94 123 135.5t106.5 64.5t123.5 23z" />
+<glyph unicode="s" horiz-adv-x="827" d="M713 295q0 -144 -103 -229.5t-280 -85.5q-173 0 -305 75v107q74 -46 153 -71t148 -25q138 0 211 57.5t73 163.5q0 42 -15.5 74t-50 61.5t-132.5 85.5q-148 80 -200 145.5t-52 159.5q0 128 98.5 209.5t259.5 81.5q75 0 158.5 -17.5t140.5 -46.5l-35 -88q-136 64 -264 64 q-116 0 -186 -53t-70 -138q0 -55 17 -88t60.5 -68.5t119.5 -76.5q114 -63 161.5 -103.5t70 -86.5t22.5 -107z" />
+<glyph unicode="t" horiz-adv-x="616" d="M694 1087l-18 -81h-283l-135 -635q-22 -99 -22 -164q0 -139 126 -139q68 0 152 26v-86q-101 -28 -170 -28q-99 0 -153 54.5t-54 158.5q0 73 29 206l129 607h-182l14 67l184 17l97 253h55l-55 -256h286z" />
+<glyph unicode="u" horiz-adv-x="1143" d="M381 1087l-152 -698q-22 -106 -22 -158q0 -74 47.5 -117.5t138.5 -43.5q110 0 207.5 65.5t164 187t99.5 279.5l105 485h98l-231 -1087h-80l28 205h-6q-167 -221 -403 -221q-131 0 -198.5 62t-67.5 181q0 60 22 170l150 690h100z" />
+<glyph unicode="v" horiz-adv-x="895" d="M276 0l-172 1087h101l108 -735q26 -165 33 -254h6q51 115 129 256l406 733h102l-600 -1087h-113z" />
+<glyph unicode="w" horiz-adv-x="1393" d="M838 0l-60 686q-14 224 -14 266h-6q-34 -92 -144 -290l-356 -662h-117l-20 1087h92l13 -821l-3 -157h6q61 134 150 297l373 681h77l64 -681q14 -147 14 -297h6l24 61l101 236l320 681h96l-508 -1087h-108z" />
+<glyph unicode="x" horiz-adv-x="922" d="M442 483l-393 -483h-121l471 559l-245 528h100l207 -462l373 462h120l-448 -534l258 -553h-98z" />
+<glyph unicode="y" horiz-adv-x="920" d="M123 1087h100l82 -548q51 -351 55 -449h11q43 105 186 367l348 630h103l-713 -1290q-72 -127 -122.5 -178t-114 -81t-146.5 -30q-68 0 -129 21v92q71 -27 137 -27q80 0 147 49.5t130 164.5t100 184z" />
+<glyph unicode="z" horiz-adv-x="887" d="M700 0h-729l15 72l776 932h-543l17 83h659l-18 -83l-762 -920h602z" />
+<glyph unicode="{" horiz-adv-x="709" d="M424 -324q-256 0 -256 199q0 45 16 115l56 252q18 90 18 127q0 159 -199 159l21 78q126 0 191 49t89 158l89 393q30 135 106 195.5t215 60.5h29l-17 -86q-86 -2 -129 -20.5t-69.5 -61.5t-44.5 -120l-74 -338q-30 -134 -91.5 -194.5t-164.5 -78.5v-4q68 -18 105.5 -68.5 t37.5 -121.5q0 -52 -24 -164l-47 -225q-13 -58 -13 -101q0 -61 37.5 -89t138.5 -28v-86h-20z" />
+<glyph unicode="|" d="M584 1561h100v-2071h-100v2071z" />
+<glyph unicode="}" horiz-adv-x="709" d="M332 1462q131 0 189.5 -51t58.5 -147q0 -41 -17 -115l-55 -252q-19 -95 -19 -127q0 -77 49.5 -118.5t149.5 -41.5l-20 -78q-125 0 -191 -48.5t-90 -157.5l-88 -394q-32 -139 -108.5 -197.5t-213.5 -58.5h-18v86q96 2 138 21t68.5 61t43.5 121l74 338q27 126 87.5 189.5 t168.5 82.5v5q-75 20 -109.5 72.5t-34.5 117.5q0 55 18 131l54 258q12 61 12 101q0 44 -18 69t-54 36t-116 11l20 86h21z" />
+<glyph unicode="~" d="M350 745q-49 0 -108 -30.5t-115 -89.5v94q108 110 233 110q61 0 115 -13.5t156 -57.5q126 -58 219 -58q54 0 107.5 29t117.5 96v-96q-111 -113 -233 -113q-117 0 -271 72q-62 29 -112.5 43t-108.5 14z" />
+<glyph unicode="&#xa1;" horiz-adv-x="502" d="M264 711h62l-203 -1086h-119zM432 1030q0 -56 -25 -88.5t-69 -32.5q-66 0 -66 72q0 55 25 89t68 34q67 0 67 -74z" />
+<glyph unicode="&#xa2;" d="M578 -20h-93l45 215q-132 25 -206 132.5t-74 272.5q0 184 63.5 341t178 253t256.5 111l36 178h90l-38 -176q116 -4 217 -43l-29 -90q-107 47 -217 47q-130 0 -233 -76t-162.5 -221t-59.5 -322q0 -164 74.5 -247t208.5 -83q127 0 264 60v-92q-118 -58 -281 -58z" />
+<glyph unicode="&#xa3;" d="M879 1479q170 0 313 -78l-39 -84l-54 26q-108 50 -231 50q-134 0 -220.5 -74.5t-117.5 -220.5l-73 -340h409l-18 -82h-408l-57 -268q-50 -225 -188 -314h759l-20 -94h-938l16 84q93 11 165.5 95.5t107.5 236.5l57 260h-199l17 82h198l76 350q41 187 155 279t290 92z" />
+<glyph unicode="&#xa4;" d="M262 723q0 118 74 225l-129 129l63 64l127 -129q105 78 230 78q118 0 223 -78l131 129l61 -62l-129 -129q78 -106 78 -227q0 -135 -78 -227l129 -127l-61 -62l-131 127q-104 -76 -223 -76q-126 0 -228 80l-129 -129l-61 62l127 127q-74 98 -74 225zM350 723 q0 -116 80 -196.5t197 -80.5t198.5 81t81.5 196q0 75 -36.5 140t-102.5 104t-141 39q-114 0 -195.5 -82t-81.5 -201z" />
+<glyph unicode="&#xa5;" d="M584 645l544 817h117l-559 -823h266l-16 -76h-315l-39 -190h317l-18 -84h-316l-59 -289h-105l64 289h-299l18 84h299l41 190h-301l17 76h258l-215 823h100z" />
+<glyph unicode="&#xa6;" d="M578 1561h100v-756h-100v756zM578 246h100v-756h-100v756z" />
+<glyph unicode="&#xa7;" horiz-adv-x="995" d="M211 778q0 101 69.5 182t198.5 130q-64 31 -103.5 85.5t-39.5 120.5q0 74 46 134.5t132.5 94.5t202.5 34q163 0 289 -58l-31 -80q-138 54 -264 54q-124 0 -202.5 -46.5t-78.5 -123.5q0 -59 46 -104.5t183 -106.5q112 -52 158.5 -89.5t71 -85t24.5 -110.5 q0 -197 -249 -317q122 -64 122 -197q0 -86 -48 -153.5t-139.5 -105.5t-221.5 -38q-157 0 -275 53v99q47 -27 126 -46.5t153 -19.5q149 0 228 52.5t79 150.5q0 62 -42.5 106t-166.5 96q-155 65 -211.5 130t-56.5 159zM559 1038q-119 -30 -187.5 -97.5t-68.5 -154.5 q0 -57 24.5 -96.5t81 -73t187.5 -81.5q103 49 162 113.5t59 156.5q0 72 -57.5 126t-200.5 107z" />
+<glyph unicode="&#xa8;" horiz-adv-x="1135" d="M836 1366q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63zM492 1366q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63z" />
+<glyph unicode="&#xa9;" horiz-adv-x="1704" d="M944 1092q-142 0 -222.5 -94.5t-80.5 -264.5q0 -186 74.5 -275t220.5 -89q85 0 199 43v-88q-104 -45 -209 -45q-187 0 -288 116t-101 330q0 207 110 332t297 125q119 0 227 -52l-36 -83q-99 45 -191 45zM147 731q0 200 100 375t275 276t377 101q200 0 375 -100t276 -275 t101 -377q0 -197 -97 -370t-272 -277t-383 -104q-207 0 -382 103.5t-272.5 276.5t-97.5 371zM240 731q0 -178 88.5 -329.5t240.5 -240.5t330 -89q174 0 325 85.5t243 239t92 334.5q0 178 -89 330t-240.5 241t-330.5 89q-182 0 -335 -92t-238.5 -243t-85.5 -325z" />
+<glyph unicode="&#xaa;" horiz-adv-x="643" d="M487 1485q55 0 97.5 -29t66.5 -86h6l35 103h66l-137 -650h-72l22 125h-4q-96 -137 -223 -137q-80 0 -127 56.5t-47 164.5q0 189 90.5 321t226.5 132zM369 885q66 0 133.5 75.5t97.5 184.5q16 51 16 123q0 58 -36 100.5t-93 42.5q-94 0 -161.5 -111.5t-67.5 -271.5 q0 -143 111 -143z" />
+<glyph unicode="&#xab;" horiz-adv-x="860" d="M426 932l57 -49l-317 -336l213 -385l-64 -39l-254 418l2 26zM786 932l58 -49l-314 -336l209 -385l-63 -39l-254 418l2 26z" />
+<glyph unicode="&#xac;" d="M1028 772v-500h-100v400h-803v100h903z" />
+<glyph unicode="&#xad;" horiz-adv-x="629" d="M77 502zM77 502l18 90h457l-16 -90h-459z" />
+<glyph unicode="&#xae;" horiz-adv-x="1704" d="M758 731h112q93 0 144 46.5t51 135.5q0 172 -197 172h-110v-354zM1169 918q0 -80 -39.5 -141t-109.5 -93l237 -393h-120l-211 360h-168v-360h-101v880h211q143 0 222 -62t79 -191zM150 731q0 207 103.5 382t276.5 272.5t371 97.5q200 0 375 -100t276 -275t101 -377 q0 -197 -97 -370t-272 -277t-383 -104q-204 0 -376.5 100.5t-273.5 273t-101 377.5zM242 731q0 -178 88.5 -329.5t240.5 -240.5t330 -89q174 0 325 85.5t243 239t92 334.5q0 178 -89 330t-240.5 241t-330.5 89q-182 0 -335 -92t-238.5 -243t-85.5 -325z" />
+<glyph unicode="&#xaf;" horiz-adv-x="655" d="M1001 1556h-653l53 97h654z" />
+<glyph unicode="&#xb0;" horiz-adv-x="877" d="M242 1190q0 120 85 206.5t208 86.5q122 0 207 -86.5t85 -206.5q0 -122 -85.5 -207.5t-206.5 -85.5q-122 0 -207.5 85.5t-85.5 207.5zM315 1190q0 -89 64.5 -153t155.5 -64q92 0 155.5 64t63.5 153q0 90 -64 155.5t-155 65.5q-90 0 -155 -65.5t-65 -155.5z" />
+<glyph unicode="&#xb1;" d="M528 629h-401v98h401v406h101v-406h401v-98h-401v-400h-101v400zM127 0v100h903v-100h-903z" />
+<glyph unicode="&#xb2;" horiz-adv-x="643" d="M604 586h-522l16 80l297 258q137 118 182.5 190.5t45.5 153.5q0 59 -38.5 97t-105.5 38q-95 0 -194 -76l-41 62q108 90 239 90q73 0 125 -27t78.5 -72t26.5 -100q0 -106 -59 -198.5t-183 -194.5l-266 -223h416z" />
+<glyph unicode="&#xb3;" horiz-adv-x="643" d="M705 1276q0 -85 -48.5 -148t-154.5 -88v-4q66 -16 105.5 -68t39.5 -124q0 -77 -39 -141t-109 -99t-161 -35q-59 0 -123.5 15.5t-105.5 40.5v90q46 -28 108 -48t125 -20q99 0 159 52.5t60 142.5q0 162 -196 162h-84l16 79h86q102 0 168.5 49.5t66.5 129.5 q0 68 -37.5 102.5t-105.5 34.5q-100 0 -199 -68l-40 64q109 86 251 86q100 0 159 -56.5t59 -148.5z" />
+<glyph unicode="&#xb4;" horiz-adv-x="1135" d="M580 1262q66 51 150.5 142t129.5 165h137v-23q-51 -66 -157.5 -158.5t-192.5 -146.5h-67v21z" />
+<glyph unicode="&#xb5;" horiz-adv-x="1171" d="M238 242q0 -82 48.5 -127t135.5 -45q110 0 207 64.5t162.5 182.5t101.5 285l104 485h99l-234 -1087h-78l29 205h-6q-164 -221 -404 -221q-85 0 -139 32.5t-76 89.5h-6q-18 -132 -51 -284l-63 -314h-97l338 1579h101l-152 -698q-20 -96 -20 -147z" />
+<glyph unicode="&#xb6;" horiz-adv-x="1341" d="M1208 -260h-100v1722h-227v-1722h-101v819q-64 -18 -145 -18q-216 0 -318 125t-102 376q0 260 109 387t342 127h542v-1816z" />
+<glyph unicode="&#xb7;" horiz-adv-x="485" d="M207 625zM207 698q0 56 25 88.5t69 32.5q66 0 66 -72q0 -53 -25 -87.5t-67 -34.5q-68 0 -68 73z" />
+<glyph unicode="&#xb8;" horiz-adv-x="420" d="M197 -289q0 -94 -75.5 -148.5t-217.5 -54.5q-46 0 -78 7v79q30 -6 72 -6q198 0 198 115q0 97 -151 107l110 190h80l-78 -137q140 -30 140 -152z" />
+<glyph unicode="&#xb9;" horiz-adv-x="643" d="M512 1462h80l-186 -876h-84l118 569q5 21 11.5 50.5t14 60t15.5 59t15 49.5q-34 -31 -60 -51.5t-143 -93.5l-39 59z" />
+<glyph unicode="&#xba;" horiz-adv-x="655" d="M518 1479q105 0 165 -64t60 -180q0 -115 -40 -214t-114 -156.5t-175 -57.5q-114 0 -169 67.5t-55 184.5q0 112 41.5 209.5t116 154t170.5 56.5zM508 1405q-70 0 -124 -46.5t-84 -124.5t-30 -167q0 -186 156 -186q73 0 125.5 46.5t81.5 127.5t29 176q0 83 -39 128.5 t-115 45.5z" />
+<glyph unicode="&#xbb;" horiz-adv-x="860" d="M451 123l-58 49l314 336l-209 385l63 39l254 -418l-2 -27zM90 123l-57 49l313 336l-209 385l64 39l254 -418l-2 -27z" />
+<glyph unicode="&#xbc;" horiz-adv-x="1481" d="M129 0zM1319 230h-131l-49 -229h-82l49 229h-391l21 76l506 577h86l-125 -581h133zM1121 302q61 294 79 365.5t29 105.5q-10 -16 -61 -79t-338 -392h291zM1323 1462l-1087 -1462h-107l1086 1462h108zM509 1462h80l-186 -876h-84l118 569q5 21 11.5 50.5t14 60t15.5 59 t15 49.5q-34 -31 -60 -51.5t-143 -93.5l-39 59z" />
+<glyph unicode="&#xbd;" horiz-adv-x="1458" d="M53 0zM1278 1h-522l16 80l297 258q137 118 182.5 190.5t45.5 153.5q0 59 -38.5 97t-105.5 38q-95 0 -194 -76l-41 62q108 90 239 90q73 0 125 -27t78.5 -72t26.5 -100q0 -106 -59 -198.5t-183 -194.5l-266 -223h416zM431 1462h80l-186 -876h-84l118 569q5 21 11.5 50.5 t14 60t15.5 59t15 49.5q-34 -31 -60 -51.5t-143 -93.5l-39 59zM1247 1462l-1087 -1462h-107l1086 1462h108z" />
+<glyph unicode="&#xbe;" horiz-adv-x="1458" d="M71 0zM1380 230h-131l-49 -229h-82l49 229h-391l21 76l506 577h86l-125 -581h133zM1182 302q61 294 79 365.5t29 105.5q-10 -16 -61 -79t-338 -392h291zM667 1276q0 -85 -48.5 -148t-154.5 -88v-4q66 -16 105.5 -68t39.5 -124q0 -77 -39 -141t-109 -99t-161 -35 q-59 0 -123.5 15.5t-105.5 40.5v90q46 -28 108 -48t125 -20q99 0 159 52.5t60 142.5q0 162 -196 162h-84l16 79h86q102 0 168.5 49.5t66.5 129.5q0 68 -37.5 102.5t-105.5 34.5q-100 0 -199 -68l-40 64q109 86 251 86q100 0 159 -56.5t59 -148.5zM1407 1462l-1087 -1462 h-107l1086 1462h108z" />
+<glyph unicode="&#xbf;" horiz-adv-x="799" d="M641 717l-6 -29q-28 -127 -79 -200t-161 -154q-118 -84 -175 -145.5t-86.5 -127.5t-29.5 -141q0 -106 65.5 -168.5t184.5 -62.5q141 0 308 100l38 -86q-85 -49 -170.5 -77.5t-187.5 -28.5q-159 0 -250.5 84.5t-91.5 228.5q0 133 70 240.5t227 220.5q85 61 133.5 109 t73 95t45.5 142h92zM713 1020q0 -56 -25.5 -88.5t-69.5 -32.5q-65 0 -65 72q0 56 25 89.5t67 33.5q68 0 68 -74z" />
+<glyph unicode="&#xc0;" horiz-adv-x="1059" d="M0 0zM805 520h-512l-287 -520h-117l822 1468h67l201 -1468h-105zM793 612l-39 291q-31 242 -39 402q-30 -63 -64.5 -130t-306.5 -563h449zM815 1579h-66q-50 52 -114 144.5t-99 162.5v21h115q46 -129 164 -303v-25z" />
+<glyph unicode="&#xc1;" horiz-adv-x="1059" d="M0 0zM805 520h-512l-287 -520h-117l822 1468h67l201 -1468h-105zM793 612l-39 291q-31 242 -39 402q-30 -63 -64.5 -130t-306.5 -563h449zM668 1600q66 51 150.5 142t129.5 165h137v-23q-51 -66 -157.5 -158.5t-192.5 -146.5h-67v21z" />
+<glyph unicode="&#xc2;" horiz-adv-x="1059" d="M0 0zM805 520h-512l-287 -520h-117l822 1468h67l201 -1468h-105zM793 612l-39 291q-31 242 -39 402q-30 -63 -64.5 -130t-306.5 -563h449zM1007 1579h-49q-70 60 -161 207q-55 -57 -125 -114.5t-125 -92.5h-54v29q68 56 157.5 148.5t127.5 150.5h64q23 -64 72.5 -152.5 t92.5 -146.5v-29z" />
+<glyph unicode="&#xc3;" horiz-adv-x="1059" d="M0 0zM805 520h-512l-287 -520h-117l822 1468h67l201 -1468h-105zM793 612l-39 291q-31 242 -39 402q-30 -63 -64.5 -130t-306.5 -563h449zM911 1587q-40 0 -77.5 19t-75.5 45q-34 23 -64.5 41t-68.5 18q-45 0 -74 -28.5t-51 -100.5h-74q19 108 71 166.5t134 58.5 q41 0 73.5 -14t117.5 -72q52 -36 94 -36q43 0 71.5 30.5t46.5 100.5h76q-26 -118 -74.5 -173t-124.5 -55z" />
+<glyph unicode="&#xc4;" horiz-adv-x="1059" d="M0 0zM805 520h-512l-287 -520h-117l822 1468h67l201 -1468h-105zM793 612l-39 291q-31 242 -39 402q-30 -63 -64.5 -130t-306.5 -563h449zM879 1704q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63zM535 1704q0 49 20.5 78t56.5 29q54 0 54 -64 q0 -48 -21 -77t-55 -29q-55 0 -55 63z" />
+<glyph unicode="&#xc5;" horiz-adv-x="1059" d="M0 0zM805 520h-512l-287 -520h-117l822 1468h67l201 -1468h-105zM793 612l-39 291q-31 242 -39 402q-30 -63 -64.5 -130t-306.5 -563h449zM945 1600q0 -92 -57.5 -148.5t-145.5 -56.5q-93 0 -148 52t-55 145q0 88 59.5 144t149.5 56q88 0 142.5 -50t54.5 -142zM867 1598 q0 57 -33.5 90t-87.5 33q-60 0 -93.5 -36t-33.5 -93t33 -90t90 -33q56 0 90.5 36t34.5 93z" />
+<glyph unicode="&#xc6;" horiz-adv-x="1640" d="M1403 0h-727l110 522h-444l-328 -522h-131l946 1462h883l-20 -94h-625l-117 -553h590l-20 -94h-588l-135 -627h626zM408 627h401l156 741h-88z" />
+<glyph unicode="&#xc7;" horiz-adv-x="1169" d="M170 0zM961 1389q-197 0 -351.5 -104.5t-245 -304.5t-90.5 -441q0 -225 110.5 -346t317.5 -121q140 0 304 51v-94q-156 -49 -316 -49q-252 0 -386 145t-134 410q0 266 104.5 488t284.5 341t402 119q177 0 307 -68l-45 -90q-55 30 -124.5 47t-137.5 17zM752 -289 q0 -94 -75.5 -148.5t-217.5 -54.5q-46 0 -78 7v79q30 -6 72 -6q198 0 198 115q0 97 -151 107l110 190h80l-78 -137q140 -30 140 -152z" />
+<glyph unicode="&#xc8;" horiz-adv-x="1067" d="M102 0zM829 0h-727l310 1462h727l-21 -94h-624l-117 -553h590l-21 -94h-588l-135 -627h627zM891 1579h-66q-50 52 -114 144.5t-99 162.5v21h115q46 -129 164 -303v-25z" />
+<glyph unicode="&#xc9;" horiz-adv-x="1067" d="M102 0zM829 0h-727l310 1462h727l-21 -94h-624l-117 -553h590l-21 -94h-588l-135 -627h627zM654 1600q66 51 150.5 142t129.5 165h137v-23q-51 -66 -157.5 -158.5t-192.5 -146.5h-67v21z" />
+<glyph unicode="&#xca;" horiz-adv-x="1067" d="M102 0zM829 0h-727l310 1462h727l-21 -94h-624l-117 -553h590l-21 -94h-588l-135 -627h627zM1036 1579h-49q-70 60 -161 207q-55 -57 -125 -114.5t-125 -92.5h-54v29q68 56 157.5 148.5t127.5 150.5h64q23 -64 72.5 -152.5t92.5 -146.5v-29z" />
+<glyph unicode="&#xcb;" horiz-adv-x="1067" d="M102 0zM829 0h-727l310 1462h727l-21 -94h-624l-117 -553h590l-21 -94h-588l-135 -627h627zM902 1704q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63zM558 1704q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63z" />
+<glyph unicode="&#xcc;" horiz-adv-x="504" d="M102 0zM102 0l310 1462h98l-309 -1462h-99zM525 1579h-66q-50 52 -114 144.5t-99 162.5v21h115q46 -129 164 -303v-25z" />
+<glyph unicode="&#xcd;" horiz-adv-x="504" d="M102 0zM102 0l310 1462h98l-309 -1462h-99zM419 1600q66 51 150.5 142t129.5 165h137v-23q-51 -66 -157.5 -158.5t-192.5 -146.5h-67v21z" />
+<glyph unicode="&#xce;" horiz-adv-x="504" d="M102 0zM102 0l310 1462h98l-309 -1462h-99zM738 1579h-49q-70 60 -161 207q-55 -57 -125 -114.5t-125 -92.5h-54v29q68 56 157.5 148.5t127.5 150.5h64q23 -64 72.5 -152.5t92.5 -146.5v-29z" />
+<glyph unicode="&#xcf;" horiz-adv-x="504" d="M102 0zM102 0l310 1462h98l-309 -1462h-99zM604 1704q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63zM260 1704q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63z" />
+<glyph unicode="&#xd0;" horiz-adv-x="1352" d="M1288 879q0 -253 -109.5 -461.5t-300.5 -313t-446 -104.5h-330l144 676h-156l21 96h155l146 690h305q282 0 426.5 -147.5t144.5 -435.5zM430 90q226 0 394.5 94.5t261 275.5t92.5 412q0 498 -476 498h-206l-129 -598h378l-20 -96h-379l-125 -586h209z" />
+<glyph unicode="&#xd1;" horiz-adv-x="1372" d="M102 0zM1069 0h-86l-516 1284h-8q-23 -149 -48 -273t-214 -1011h-95l310 1462h80l522 -1294h8q23 176 74 416l188 878h94zM1062 1587q-40 0 -77.5 19t-75.5 45q-34 23 -64.5 41t-68.5 18q-45 0 -74 -28.5t-51 -100.5h-74q19 108 71 166.5t134 58.5q41 0 73.5 -14 t117.5 -72q52 -36 94 -36q43 0 71.5 30.5t46.5 100.5h76q-26 -118 -74.5 -173t-124.5 -55z" />
+<glyph unicode="&#xd2;" horiz-adv-x="1464" d="M172 0zM1403 911q0 -255 -94 -481.5t-252 -338t-365 -111.5q-250 0 -385 149t-135 430q0 262 93 477.5t255 331t373 115.5q247 0 378.5 -148.5t131.5 -423.5zM879 1389q-174 0 -308.5 -101t-214.5 -298t-80 -417q0 -245 109.5 -373t319.5 -128q169 0 300 98.5t210 300 t79 430.5q0 240 -104.5 364t-310.5 124zM989 1579h-66q-50 52 -114 144.5t-99 162.5v21h115q46 -129 164 -303v-25z" />
+<glyph unicode="&#xd3;" horiz-adv-x="1464" d="M172 0zM1403 911q0 -255 -94 -481.5t-252 -338t-365 -111.5q-250 0 -385 149t-135 430q0 262 93 477.5t255 331t373 115.5q247 0 378.5 -148.5t131.5 -423.5zM879 1389q-174 0 -308.5 -101t-214.5 -298t-80 -417q0 -245 109.5 -373t319.5 -128q169 0 300 98.5t210 300 t79 430.5q0 240 -104.5 364t-310.5 124zM844 1600q66 51 150.5 142t129.5 165h137v-23q-51 -66 -157.5 -158.5t-192.5 -146.5h-67v21z" />
+<glyph unicode="&#xd4;" horiz-adv-x="1464" d="M172 0zM1403 911q0 -255 -94 -481.5t-252 -338t-365 -111.5q-250 0 -385 149t-135 430q0 262 93 477.5t255 331t373 115.5q247 0 378.5 -148.5t131.5 -423.5zM879 1389q-174 0 -308.5 -101t-214.5 -298t-80 -417q0 -245 109.5 -373t319.5 -128q169 0 300 98.5t210 300 t79 430.5q0 240 -104.5 364t-310.5 124zM1171 1579h-49q-70 60 -161 207q-55 -57 -125 -114.5t-125 -92.5h-54v29q68 56 157.5 148.5t127.5 150.5h64q23 -64 72.5 -152.5t92.5 -146.5v-29z" />
+<glyph unicode="&#xd5;" horiz-adv-x="1464" d="M172 0zM1403 911q0 -255 -94 -481.5t-252 -338t-365 -111.5q-250 0 -385 149t-135 430q0 262 93 477.5t255 331t373 115.5q247 0 378.5 -148.5t131.5 -423.5zM879 1389q-174 0 -308.5 -101t-214.5 -298t-80 -417q0 -245 109.5 -373t319.5 -128q169 0 300 98.5t210 300 t79 430.5q0 240 -104.5 364t-310.5 124zM1077 1587q-40 0 -77.5 19t-75.5 45q-34 23 -64.5 41t-68.5 18q-45 0 -74 -28.5t-51 -100.5h-74q19 108 71 166.5t134 58.5q41 0 73.5 -14t117.5 -72q52 -36 94 -36q43 0 71.5 30.5t46.5 100.5h76q-26 -118 -74.5 -173t-124.5 -55z " />
+<glyph unicode="&#xd6;" horiz-adv-x="1464" d="M172 0zM1403 911q0 -255 -94 -481.5t-252 -338t-365 -111.5q-250 0 -385 149t-135 430q0 262 93 477.5t255 331t373 115.5q247 0 378.5 -148.5t131.5 -423.5zM879 1389q-174 0 -308.5 -101t-214.5 -298t-80 -417q0 -245 109.5 -373t319.5 -128q169 0 300 98.5t210 300 t79 430.5q0 240 -104.5 364t-310.5 124zM1031 1704q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63zM687 1704q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63z" />
+<glyph unicode="&#xd7;" d="M551 723l-330 332l70 69l330 -329l333 329l68 -67l-332 -334l332 -332l-68 -67l-333 329l-330 -327l-68 67z" />
+<glyph unicode="&#xd8;" horiz-adv-x="1464" d="M1403 911q0 -187 -52 -365.5t-144.5 -304.5t-223 -193.5t-291.5 -67.5q-215 0 -348 112l-139 -170l-66 64l146 172q-113 149 -113 401q0 263 94 479.5t256.5 330.5t370.5 114q219 0 352 -121l133 168l70 -53l-145 -183q45 -51 72.5 -161t27.5 -222zM879 1389 q-134 0 -244 -59.5t-188.5 -170t-124.5 -267.5t-46 -319q0 -105 21.5 -191t56.5 -138l826 1032q-107 113 -301 113zM1294 901q0 85 -17.5 172t-43.5 129l-821 -1030q107 -100 293 -100q170 0 301 100t209.5 296.5t78.5 432.5z" />
+<glyph unicode="&#xd9;" horiz-adv-x="1370" d="M176 0zM1395 1462l-207 -977q-58 -270 -197 -387.5t-375 -117.5q-440 0 -440 401q0 83 27 201l186 880h103l-193 -899q-20 -89 -20 -184q0 -309 342 -309q195 0 307.5 96.5t158.5 318.5l207 977h101zM946 1579h-66q-50 52 -114 144.5t-99 162.5v21h115q46 -129 164 -303 v-25z" />
+<glyph unicode="&#xda;" horiz-adv-x="1370" d="M176 0zM1395 1462l-207 -977q-58 -270 -197 -387.5t-375 -117.5q-440 0 -440 401q0 83 27 201l186 880h103l-193 -899q-20 -89 -20 -184q0 -309 342 -309q195 0 307.5 96.5t158.5 318.5l207 977h101zM838 1600q66 51 150.5 142t129.5 165h137v-23q-51 -66 -157.5 -158.5 t-192.5 -146.5h-67v21z" />
+<glyph unicode="&#xdb;" horiz-adv-x="1370" d="M176 0zM1395 1462l-207 -977q-58 -270 -197 -387.5t-375 -117.5q-440 0 -440 401q0 83 27 201l186 880h103l-193 -899q-20 -89 -20 -184q0 -309 342 -309q195 0 307.5 96.5t158.5 318.5l207 977h101zM1148 1579h-49q-70 60 -161 207q-55 -57 -125 -114.5t-125 -92.5h-54 v29q68 56 157.5 148.5t127.5 150.5h64q23 -64 72.5 -152.5t92.5 -146.5v-29z" />
+<glyph unicode="&#xdc;" horiz-adv-x="1370" d="M176 0zM1395 1462l-207 -977q-58 -270 -197 -387.5t-375 -117.5q-440 0 -440 401q0 83 27 201l186 880h103l-193 -899q-20 -89 -20 -184q0 -309 342 -309q195 0 307.5 96.5t158.5 318.5l207 977h101zM1022 1704q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29 q-55 0 -55 63zM678 1704q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63z" />
+<glyph unicode="&#xdd;" horiz-adv-x="965" d="M193 0zM494 645l544 817h117l-631 -932l-108 -530h-105l119 545l-237 917h100zM563 1600q66 51 150.5 142t129.5 165h137v-23q-51 -66 -157.5 -158.5t-192.5 -146.5h-67v21z" />
+<glyph unicode="&#xde;" horiz-adv-x="1145" d="M1087 836q0 -247 -153 -373.5t-457 -126.5h-201l-71 -336h-103l310 1462h102l-57 -266h213q200 0 308.5 -92.5t108.5 -267.5zM293 428h190q256 0 376 98.5t120 302.5q0 275 -330 275h-211z" />
+<glyph unicode="&#xdf;" horiz-adv-x="1094" d="M-162 -492q-73 0 -119 23v90q53 -24 115 -24q79 0 123 50.5t66 153.5l305 1409q80 357 405 357q137 0 215 -61.5t78 -174.5q0 -75 -44.5 -140.5t-166.5 -148.5q-107 -76 -141.5 -124.5t-34.5 -106.5q0 -51 34 -88.5t93 -75.5q96 -63 138 -133.5t42 -165.5 q0 -170 -106.5 -269t-286.5 -99q-143 0 -234 65v109q45 -36 112.5 -59t129.5 -23q132 0 208.5 71t76.5 195q0 75 -31.5 129t-109.5 108q-82 58 -119 110.5t-37 121.5q0 57 21 103t60.5 88.5t137.5 113.5q101 70 131.5 116t30.5 101q0 70 -55 110t-150 40q-129 0 -205 -76 t-108 -229l-291 -1377q-33 -152 -103.5 -220.5t-179.5 -68.5z" />
+<glyph unicode="&#xe0;" horiz-adv-x="1133" d="M102 0zM655 1104q232 0 279 -219h6l59 202h80l-229 -1087h-82l45 274h-6q-84 -142 -187 -218t-237 -76q-281 0 -281 374q0 197 75 376t200.5 276.5t277.5 97.5zM406 70q89 0 177.5 62t159 166t107.5 230t37 213q0 79 -26 141.5t-77 99t-127 36.5q-124 0 -224 -82 t-164 -245.5t-64 -325.5q0 -152 50 -223.5t151 -71.5zM809 1241h-66q-50 52 -114 144.5t-99 162.5v21h115q46 -129 164 -303v-25z" />
+<glyph unicode="&#xe1;" horiz-adv-x="1133" d="M102 0zM655 1104q232 0 279 -219h6l59 202h80l-229 -1087h-82l45 274h-6q-84 -142 -187 -218t-237 -76q-281 0 -281 374q0 197 75 376t200.5 276.5t277.5 97.5zM406 70q89 0 177.5 62t159 166t107.5 230t37 213q0 79 -26 141.5t-77 99t-127 36.5q-124 0 -224 -82 t-164 -245.5t-64 -325.5q0 -152 50 -223.5t151 -71.5zM586 1262q66 51 150.5 142t129.5 165h137v-23q-51 -66 -157.5 -158.5t-192.5 -146.5h-67v21z" />
+<glyph unicode="&#xe2;" horiz-adv-x="1133" d="M102 0zM655 1104q232 0 279 -219h6l59 202h80l-229 -1087h-82l45 274h-6q-84 -142 -187 -218t-237 -76q-281 0 -281 374q0 197 75 376t200.5 276.5t277.5 97.5zM406 70q89 0 177.5 62t159 166t107.5 230t37 213q0 79 -26 141.5t-77 99t-127 36.5q-124 0 -224 -82 t-164 -245.5t-64 -325.5q0 -152 50 -223.5t151 -71.5zM955 1243h-49q-70 60 -161 207q-55 -57 -125 -114.5t-125 -92.5h-54v29q68 56 157.5 148.5t127.5 150.5h64q23 -64 72.5 -152.5t92.5 -146.5v-29z" />
+<glyph unicode="&#xe3;" horiz-adv-x="1133" d="M102 0zM655 1104q232 0 279 -219h6l59 202h80l-229 -1087h-82l45 274h-6q-84 -142 -187 -218t-237 -76q-281 0 -281 374q0 197 75 376t200.5 276.5t277.5 97.5zM406 70q89 0 177.5 62t159 166t107.5 230t37 213q0 79 -26 141.5t-77 99t-127 36.5q-124 0 -224 -82 t-164 -245.5t-64 -325.5q0 -152 50 -223.5t151 -71.5zM858 1249q-40 0 -77.5 19t-75.5 45q-34 23 -64.5 41t-68.5 18q-45 0 -74 -28.5t-51 -100.5h-74q19 108 71 166.5t134 58.5q41 0 73.5 -14t117.5 -72q52 -36 94 -36q43 0 71.5 30.5t46.5 100.5h76q-26 -118 -74.5 -173 t-124.5 -55z" />
+<glyph unicode="&#xe4;" horiz-adv-x="1133" d="M102 0zM655 1104q232 0 279 -219h6l59 202h80l-229 -1087h-82l45 274h-6q-84 -142 -187 -218t-237 -76q-281 0 -281 374q0 197 75 376t200.5 276.5t277.5 97.5zM406 70q89 0 177.5 62t159 166t107.5 230t37 213q0 79 -26 141.5t-77 99t-127 36.5q-124 0 -224 -82 t-164 -245.5t-64 -325.5q0 -152 50 -223.5t151 -71.5zM835 1366q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63zM491 1366q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63z" />
+<glyph unicode="&#xe5;" horiz-adv-x="1133" d="M102 0zM655 1104q232 0 279 -219h6l59 202h80l-229 -1087h-82l45 274h-6q-84 -142 -187 -218t-237 -76q-281 0 -281 374q0 197 75 376t200.5 276.5t277.5 97.5zM406 70q89 0 177.5 62t159 166t107.5 230t37 213q0 79 -26 141.5t-77 99t-127 36.5q-124 0 -224 -82 t-164 -245.5t-64 -325.5q0 -152 50 -223.5t151 -71.5zM927 1448q0 -92 -57.5 -148.5t-145.5 -56.5q-93 0 -148 52t-55 145q0 88 59.5 144t149.5 56q88 0 142.5 -50t54.5 -142zM849 1446q0 57 -33.5 90t-87.5 33q-60 0 -93.5 -36t-33.5 -93t33 -90t90 -33q56 0 90.5 36 t34.5 93z" />
+<glyph unicode="&#xe6;" horiz-adv-x="1602" d="M1155 -20q-123 0 -211 60t-117 165l-39 -205h-77l41 254h-9q-94 -142 -189 -208t-208 -66q-120 0 -182 94t-62 270q0 206 70.5 384.5t192.5 277t274 98.5q106 0 166 -56.5t74 -156.5h10l59 192h66l-35 -186q139 207 350 207q112 0 175 -61.5t63 -172.5 q0 -179 -158.5 -271.5t-470.5 -92.5h-39q-8 -51 -8 -96q0 -161 69.5 -250.5t217.5 -89.5q69 0 133.5 21t130.5 52v-94q-80 -37 -147 -53t-140 -16zM369 70q67 0 138.5 42t134 117.5t106 170.5t63.5 199t20 165q0 118 -49 186t-141 68q-123 0 -223 -86t-156.5 -240 t-56.5 -340q0 -150 42.5 -216t121.5 -66zM1317 1018q-119 0 -232 -115.5t-172 -308.5h48q263 0 383 67t120 203q0 71 -38.5 112.5t-108.5 41.5z" />
+<glyph unicode="&#xe7;" horiz-adv-x="887" d="M102 0zM477 -20q-174 0 -274.5 110.5t-100.5 306.5q0 193 73.5 361.5t198.5 257t290 88.5q134 0 241 -43l-28 -90q-107 47 -218 47q-129 0 -232.5 -77t-162.5 -222t-59 -320q0 -158 73.5 -243.5t208.5 -85.5q71 0 131.5 13t131.5 46v-92q-116 -57 -273 -57zM574 -289 q0 -94 -75.5 -148.5t-217.5 -54.5q-46 0 -78 7v79q30 -6 72 -6q198 0 198 115q0 97 -151 107l110 190h80l-78 -137q140 -30 140 -152z" />
+<glyph unicode="&#xe8;" horiz-adv-x="928" d="M102 0zM469 -20q-173 0 -270 109.5t-97 305.5q0 181 71 347t195.5 264t274.5 98q114 0 182 -61t68 -166q0 -181 -163.5 -276t-485.5 -95h-33q-6 -44 -6 -98q0 -165 74 -251.5t213 -86.5q132 0 276 73v-94q-140 -69 -299 -69zM631 1018q-131 0 -243.5 -115.5 t-162.5 -308.5h49q517 0 517 270q0 67 -43.5 110.5t-116.5 43.5zM751 1241h-66q-50 52 -114 144.5t-99 162.5v21h115q46 -129 164 -303v-25z" />
+<glyph unicode="&#xe9;" horiz-adv-x="928" d="M102 0zM469 -20q-173 0 -270 109.5t-97 305.5q0 181 71 347t195.5 264t274.5 98q114 0 182 -61t68 -166q0 -181 -163.5 -276t-485.5 -95h-33q-6 -44 -6 -98q0 -165 74 -251.5t213 -86.5q132 0 276 73v-94q-140 -69 -299 -69zM631 1018q-131 0 -243.5 -115.5 t-162.5 -308.5h49q517 0 517 270q0 67 -43.5 110.5t-116.5 43.5zM532 1262q66 51 150.5 142t129.5 165h137v-23q-51 -66 -157.5 -158.5t-192.5 -146.5h-67v21z" />
+<glyph unicode="&#xea;" horiz-adv-x="928" d="M102 0zM469 -20q-173 0 -270 109.5t-97 305.5q0 181 71 347t195.5 264t274.5 98q114 0 182 -61t68 -166q0 -181 -163.5 -276t-485.5 -95h-33q-6 -44 -6 -98q0 -165 74 -251.5t213 -86.5q132 0 276 73v-94q-140 -69 -299 -69zM631 1018q-131 0 -243.5 -115.5 t-162.5 -308.5h49q517 0 517 270q0 67 -43.5 110.5t-116.5 43.5zM904 1241h-49q-70 60 -161 207q-55 -57 -125 -114.5t-125 -92.5h-54v29q68 56 157.5 148.5t127.5 150.5h64q23 -64 72.5 -152.5t92.5 -146.5v-29z" />
+<glyph unicode="&#xeb;" horiz-adv-x="928" d="M102 0zM469 -20q-173 0 -270 109.5t-97 305.5q0 181 71 347t195.5 264t274.5 98q114 0 182 -61t68 -166q0 -181 -163.5 -276t-485.5 -95h-33q-6 -44 -6 -98q0 -165 74 -251.5t213 -86.5q132 0 276 73v-94q-140 -69 -299 -69zM631 1018q-131 0 -243.5 -115.5 t-162.5 -308.5h49q517 0 517 270q0 67 -43.5 110.5t-116.5 43.5zM780 1366q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63zM436 1366q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63z" />
+<glyph unicode="&#xec;" horiz-adv-x="475" d="M76 0zM174 0h-98l231 1087h96zM454 1241h-66q-50 52 -114 144.5t-99 162.5v21h115q46 -129 164 -303v-25z" />
+<glyph unicode="&#xed;" horiz-adv-x="475" d="M76 0zM174 0h-98l231 1087h96zM284 1262q66 51 150.5 142t129.5 165h137v-23q-51 -66 -157.5 -158.5t-192.5 -146.5h-67v21z" />
+<glyph unicode="&#xee;" horiz-adv-x="475" d="M76 0zM174 0h-98l231 1087h96zM642 1241h-49q-70 60 -161 207q-55 -57 -125 -114.5t-125 -92.5h-54v29q68 56 157.5 148.5t127.5 150.5h64q23 -64 72.5 -152.5t92.5 -146.5v-29z" />
+<glyph unicode="&#xef;" horiz-adv-x="475" d="M76 0zM174 0h-98l231 1087h96zM515 1366q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63zM171 1366q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63z" />
+<glyph unicode="&#xf0;" horiz-adv-x="1124" d="M713 1364q-54 60 -158 139l59 68q32 -26 81 -66t100 -94l266 150l39 -74l-256 -141q87 -116 131.5 -276t44.5 -335q0 -355 -141.5 -555t-399.5 -200q-177 0 -277 106.5t-100 294.5q0 170 63 301.5t178.5 203.5t262.5 72q107 0 188 -49.5t121 -142.5h5q0 139 -43 289 t-115 243l-295 -163l-39 73zM489 70q118 0 208.5 61t144 186.5t53.5 270.5q0 77 -35 142t-100 101.5t-156 36.5q-124 0 -213.5 -61.5t-137.5 -169.5t-48 -248q0 -153 73.5 -236t210.5 -83z" />
+<glyph unicode="&#xf1;" horiz-adv-x="1143" d="M76 0zM764 0l149 692q21 92 21 156q0 80 -43.5 125t-134.5 45q-112 0 -210.5 -67t-166 -187.5t-103.5 -286.5l-102 -477h-98l231 1087h82l-37 -221h6q164 238 416 238q130 0 195 -64t65 -184q0 -70 -24 -182l-148 -674h-98zM874 1249q-40 0 -77.5 19t-75.5 45 q-34 23 -64.5 41t-68.5 18q-45 0 -74 -28.5t-51 -100.5h-74q19 108 71 166.5t134 58.5q41 0 73.5 -14t117.5 -72q52 -36 94 -36q43 0 71.5 30.5t46.5 100.5h76q-26 -118 -74.5 -173t-124.5 -55z" />
+<glyph unicode="&#xf2;" horiz-adv-x="1124" d="M98 0zM649 1108q180 0 278.5 -108.5t98.5 -299.5q0 -197 -71.5 -368.5t-195.5 -261.5t-286 -90q-184 0 -279.5 109.5t-95.5 313.5q0 191 73 358t197 257t281 90zM641 1022q-124 0 -223 -78.5t-158 -225t-59 -310.5q0 -342 282 -342q127 0 225.5 77.5t157 228t58.5 330.5 q0 154 -73 237t-210 83zM744 1241h-66q-50 52 -114 144.5t-99 162.5v21h115q46 -129 164 -303v-25z" />
+<glyph unicode="&#xf3;" horiz-adv-x="1124" d="M98 0zM649 1108q180 0 278.5 -108.5t98.5 -299.5q0 -197 -71.5 -368.5t-195.5 -261.5t-286 -90q-184 0 -279.5 109.5t-95.5 313.5q0 191 73 358t197 257t281 90zM641 1022q-124 0 -223 -78.5t-158 -225t-59 -310.5q0 -342 282 -342q127 0 225.5 77.5t157 228t58.5 330.5 q0 154 -73 237t-210 83zM573 1262q66 51 150.5 142t129.5 165h137v-23q-51 -66 -157.5 -158.5t-192.5 -146.5h-67v21z" />
+<glyph unicode="&#xf4;" horiz-adv-x="1124" d="M98 0zM649 1108q180 0 278.5 -108.5t98.5 -299.5q0 -197 -71.5 -368.5t-195.5 -261.5t-286 -90q-184 0 -279.5 109.5t-95.5 313.5q0 191 73 358t197 257t281 90zM641 1022q-124 0 -223 -78.5t-158 -225t-59 -310.5q0 -342 282 -342q127 0 225.5 77.5t157 228t58.5 330.5 q0 154 -73 237t-210 83zM941 1241h-49q-70 60 -161 207q-55 -57 -125 -114.5t-125 -92.5h-54v29q68 56 157.5 148.5t127.5 150.5h64q23 -64 72.5 -152.5t92.5 -146.5v-29z" />
+<glyph unicode="&#xf5;" horiz-adv-x="1124" d="M98 0zM649 1108q180 0 278.5 -108.5t98.5 -299.5q0 -197 -71.5 -368.5t-195.5 -261.5t-286 -90q-184 0 -279.5 109.5t-95.5 313.5q0 191 73 358t197 257t281 90zM641 1022q-124 0 -223 -78.5t-158 -225t-59 -310.5q0 -342 282 -342q127 0 225.5 77.5t157 228t58.5 330.5 q0 154 -73 237t-210 83zM839 1249q-40 0 -77.5 19t-75.5 45q-34 23 -64.5 41t-68.5 18q-45 0 -74 -28.5t-51 -100.5h-74q19 108 71 166.5t134 58.5q41 0 73.5 -14t117.5 -72q52 -36 94 -36q43 0 71.5 30.5t46.5 100.5h76q-26 -118 -74.5 -173t-124.5 -55z" />
+<glyph unicode="&#xf6;" horiz-adv-x="1124" d="M98 0zM649 1108q180 0 278.5 -108.5t98.5 -299.5q0 -197 -71.5 -368.5t-195.5 -261.5t-286 -90q-184 0 -279.5 109.5t-95.5 313.5q0 191 73 358t197 257t281 90zM641 1022q-124 0 -223 -78.5t-158 -225t-59 -310.5q0 -342 282 -342q127 0 225.5 77.5t157 228t58.5 330.5 q0 154 -73 237t-210 83zM812 1366q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63zM468 1366q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63z" />
+<glyph unicode="&#xf7;" d="M168 672v100h903v-100h-903zM522 373q0 106 96 106q48 0 73.5 -27.5t25.5 -78.5q0 -57 -29 -82t-70 -25q-96 0 -96 107zM522 1071q0 107 96 107q46 0 72.5 -27.5t26.5 -79.5q0 -57 -29 -81.5t-70 -24.5q-96 0 -96 106z" />
+<glyph unicode="&#xf8;" horiz-adv-x="1124" d="M164 127q-66 106 -66 276q0 191 73 358t197 257t281 90q150 0 250 -82l109 133l65 -53l-117 -143q70 -105 70 -263q0 -197 -71.5 -368.5t-195.5 -261.5t-286 -90q-163 0 -254 83l-110 -135l-64 54zM924 702q0 101 -35 179l-608 -742q67 -73 202 -73q127 0 225.5 77.5 t157 228t58.5 330.5zM641 1022q-124 0 -223 -78.5t-158 -225t-59 -310.5q0 -125 32 -197l605 739q-74 72 -197 72z" />
+<glyph unicode="&#xf9;" horiz-adv-x="1143" d="M109 0zM381 1087l-152 -698q-22 -106 -22 -158q0 -74 47.5 -117.5t138.5 -43.5q110 0 207.5 65.5t164 187t99.5 279.5l105 485h98l-231 -1087h-80l28 205h-6q-167 -221 -403 -221q-131 0 -198.5 62t-67.5 181q0 60 22 170l150 690h100zM774 1241h-66q-50 52 -114 144.5 t-99 162.5v21h115q46 -129 164 -303v-25z" />
+<glyph unicode="&#xfa;" horiz-adv-x="1143" d="M109 0zM381 1087l-152 -698q-22 -106 -22 -158q0 -74 47.5 -117.5t138.5 -43.5q110 0 207.5 65.5t164 187t99.5 279.5l105 485h98l-231 -1087h-80l28 205h-6q-167 -221 -403 -221q-131 0 -198.5 62t-67.5 181q0 60 22 170l150 690h100zM627 1262q66 51 150.5 142 t129.5 165h137v-23q-51 -66 -157.5 -158.5t-192.5 -146.5h-67v21z" />
+<glyph unicode="&#xfb;" horiz-adv-x="1143" d="M109 0zM381 1087l-152 -698q-22 -106 -22 -158q0 -74 47.5 -117.5t138.5 -43.5q110 0 207.5 65.5t164 187t99.5 279.5l105 485h98l-231 -1087h-80l28 205h-6q-167 -221 -403 -221q-131 0 -198.5 62t-67.5 181q0 60 22 170l150 690h100zM957 1241h-49q-70 60 -161 207 q-55 -57 -125 -114.5t-125 -92.5h-54v29q68 56 157.5 148.5t127.5 150.5h64q23 -64 72.5 -152.5t92.5 -146.5v-29z" />
+<glyph unicode="&#xfc;" horiz-adv-x="1143" d="M109 0zM381 1087l-152 -698q-22 -106 -22 -158q0 -74 47.5 -117.5t138.5 -43.5q110 0 207.5 65.5t164 187t99.5 279.5l105 485h98l-231 -1087h-80l28 205h-6q-167 -221 -403 -221q-131 0 -198.5 62t-67.5 181q0 60 22 170l150 690h100zM827 1366q0 49 20.5 78t56.5 29 q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63zM483 1366q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63z" />
+<glyph unicode="&#xfd;" horiz-adv-x="920" d="M0 0zM123 1087h100l82 -548q51 -351 55 -449h11q43 105 186 367l348 630h103l-713 -1290q-72 -127 -122.5 -178t-114 -81t-146.5 -30q-68 0 -129 21v92q71 -27 137 -27q80 0 147 49.5t130 164.5t100 184zM505 1262q66 51 150.5 142t129.5 165h137v-23 q-51 -66 -157.5 -158.5t-192.5 -146.5h-67v21z" />
+<glyph unicode="&#xfe;" horiz-adv-x="1163" d="M498 -16q-230 0 -279 219h-4q-13 -72 -149 -695h-99l434 2048h99q-114 -535 -164 -751h6q93 156 199 229.5t231 73.5q133 0 206 -92.5t73 -282.5q0 -195 -72 -371t-197.5 -277t-283.5 -101zM748 1018q-86 0 -172.5 -57.5t-162.5 -169.5t-111.5 -238t-35.5 -207 q0 -125 61.5 -200.5t168.5 -75.5q124 0 225 84t164 243.5t63 325.5q0 295 -200 295z" />
+<glyph unicode="&#xff;" horiz-adv-x="920" d="M0 0zM123 1087h100l82 -548q51 -351 55 -449h11q43 105 186 367l348 630h103l-713 -1290q-72 -127 -122.5 -178t-114 -81t-146.5 -30q-68 0 -129 21v92q71 -27 137 -27q80 0 147 49.5t130 164.5t100 184zM698 1366q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77 t-55 -29q-55 0 -55 63zM354 1366q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63z" />
+<glyph unicode="&#x131;" horiz-adv-x="475" d="M174 0h-98l231 1087h96z" />
+<glyph unicode="&#x152;" horiz-adv-x="1767" d="M1530 0h-666q-25 -6 -77.5 -13t-94.5 -7q-251 0 -385.5 149.5t-134.5 429.5q0 263 96 482t262 330.5t381 111.5q130 0 240 -21h688l-20 -94h-625l-117 -553h590l-20 -94h-588l-135 -627h626zM705 72q68 0 116 12l271 1290q-110 15 -189 15q-182 0 -321.5 -98.5 t-222.5 -293.5t-83 -424q0 -245 109 -373t320 -128z" />
+<glyph unicode="&#x153;" horiz-adv-x="1720" d="M1262 -20q-135 0 -228 69t-125 201q-65 -127 -179 -198.5t-257 -71.5q-184 0 -279.5 109.5t-95.5 313.5q0 191 73 358t197 257t281 90q141 0 237 -74.5t126 -212.5q70 132 182.5 207.5t241.5 75.5q114 0 182 -61t68 -166q0 -181 -163.5 -276t-486.5 -95h-32 q-7 -38 -7 -98q0 -165 74 -251.5t213 -86.5q133 0 277 73v-94q-140 -69 -299 -69zM641 1022q-124 0 -223 -78.5t-158 -225t-59 -310.5q0 -342 282 -342q127 0 225.5 77.5t157 228t58.5 330.5q0 154 -73 237t-210 83zM1423 1018q-131 0 -243 -115t-162 -309h49q516 0 516 270 q0 70 -44.5 112t-115.5 42z" />
+<glyph unicode="&#x178;" horiz-adv-x="965" d="M193 0zM494 645l544 817h117l-631 -932l-108 -530h-105l119 545l-237 917h100zM798 1704q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63zM454 1704q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63z" />
+<glyph unicode="&#x2c6;" horiz-adv-x="1135" d="M958 1241h-49q-70 60 -161 207q-55 -57 -125 -114.5t-125 -92.5h-54v29q68 56 157.5 148.5t127.5 150.5h64q23 -64 72.5 -152.5t92.5 -146.5v-29z" />
+<glyph unicode="&#x2da;" horiz-adv-x="1182" d="M967 1448q0 -92 -57.5 -148.5t-145.5 -56.5q-93 0 -148 52t-55 145q0 88 59.5 144t149.5 56q88 0 142.5 -50t54.5 -142zM889 1446q0 57 -33.5 90t-87.5 33q-60 0 -93.5 -36t-33.5 -93t33 -90t90 -33q56 0 90.5 36t34.5 93z" />
+<glyph unicode="&#x2dc;" horiz-adv-x="1135" d="M831 1249q-40 0 -77.5 19t-75.5 45q-34 23 -64.5 41t-68.5 18q-45 0 -74 -28.5t-51 -100.5h-74q19 108 71 166.5t134 58.5q41 0 73.5 -14t117.5 -72q52 -36 94 -36q43 0 71.5 30.5t46.5 100.5h76q-26 -118 -74.5 -173t-124.5 -55z" />
+<glyph unicode="&#x2000;" horiz-adv-x="953" />
+<glyph unicode="&#x2001;" horiz-adv-x="1907" />
+<glyph unicode="&#x2002;" horiz-adv-x="953" />
+<glyph unicode="&#x2003;" horiz-adv-x="1907" />
+<glyph unicode="&#x2004;" horiz-adv-x="635" />
+<glyph unicode="&#x2005;" horiz-adv-x="476" />
+<glyph unicode="&#x2006;" horiz-adv-x="317" />
+<glyph unicode="&#x2007;" horiz-adv-x="317" />
+<glyph unicode="&#x2008;" horiz-adv-x="238" />
+<glyph unicode="&#x2009;" horiz-adv-x="381" />
+<glyph unicode="&#x200a;" horiz-adv-x="105" />
+<glyph unicode="&#x2010;" horiz-adv-x="629" d="M82 502l18 90h457l-16 -90h-459z" />
+<glyph unicode="&#x2011;" horiz-adv-x="629" d="M82 502l18 90h457l-16 -90h-459z" />
+<glyph unicode="&#x2012;" horiz-adv-x="629" d="M82 502l18 90h457l-16 -90h-459z" />
+<glyph unicode="&#x2013;" horiz-adv-x="983" d="M66 502l18 90h807l-17 -90h-808z" />
+<glyph unicode="&#x2014;" horiz-adv-x="1966" d="M68 502l18 90h1788l-16 -90h-1790z" />
+<glyph unicode="&#x2018;" horiz-adv-x="299" d="M133 961l-4 22q41 100 116 231t161 248h73q-66 -106 -129.5 -242.5t-103.5 -258.5h-113z" />
+<glyph unicode="&#x2019;" horiz-adv-x="299" d="M475 1462l4 -22q-43 -105 -117.5 -235.5t-158.5 -243.5h-74q66 106 129.5 242.5t103.5 258.5h113z" />
+<glyph unicode="&#x201a;" horiz-adv-x="451" d="M246 238l4 -23q-40 -97 -115.5 -230t-161.5 -249h-73q68 110 131.5 248t101.5 254h113z" />
+<glyph unicode="&#x201c;" horiz-adv-x="631" d="M133 961l-4 22q41 100 116 231t161 248h73q-66 -106 -129.5 -242.5t-103.5 -258.5h-113zM467 961l-4 22q43 104 120 238.5t156 240.5h74q-66 -106 -129.5 -242.5t-103.5 -258.5h-113z" />
+<glyph unicode="&#x201d;" horiz-adv-x="631" d="M809 1462l4 -22q-43 -105 -117.5 -235.5t-158.5 -243.5h-74q66 106 129.5 242.5t103.5 258.5h113zM475 1462l4 -22q-43 -105 -117.5 -235.5t-158.5 -243.5h-74q66 106 129.5 242.5t103.5 258.5h113z" />
+<glyph unicode="&#x201e;" horiz-adv-x="776" d="M561 238l4 -23q-43 -105 -117.5 -235.5t-158.5 -243.5h-74q66 108 129 242.5t105 259.5h112zM227 238l4 -23q-43 -105 -117.5 -235.5t-158.5 -243.5h-74q73 119 135.5 254.5t98.5 247.5h112z" />
+<glyph unicode="&#x2022;" horiz-adv-x="793" d="M248 682q0 137 63 213t172 76q76 0 116 -39.5t40 -118.5q0 -125 -66 -207t-176 -82q-149 0 -149 158z" />
+<glyph unicode="&#x2026;" horiz-adv-x="1489" d="M69 0zM69 55q0 56 25 88.5t69 32.5q66 0 66 -72q0 -53 -25 -87.5t-67 -34.5q-68 0 -68 73zM569 55q0 56 25 88.5t69 32.5q66 0 66 -72q0 -53 -25 -87.5t-67 -34.5q-68 0 -68 73zM1071 55q0 56 25 88.5t69 32.5q66 0 66 -72q0 -53 -25 -87.5t-67 -34.5q-68 0 -68 73z" />
+<glyph unicode="&#x202f;" horiz-adv-x="381" />
+<glyph unicode="&#x2039;" horiz-adv-x="537" d="M451 932l57 -49l-318 -336l213 -385l-63 -39l-254 418l2 26z" />
+<glyph unicode="&#x203a;" horiz-adv-x="537" d="M94 123l-57 49l317 336l-213 385l64 39l254 -418l-2 -27z" />
+<glyph unicode="&#x2044;" horiz-adv-x="274" d="M731 1462l-1087 -1462h-107l1086 1462h108z" />
+<glyph unicode="&#x205f;" horiz-adv-x="476" />
+<glyph unicode="&#x2074;" horiz-adv-x="643" d="M657 815h-131l-49 -229h-82l49 229h-391l21 76l506 577h86l-125 -581h133zM459 887q61 294 79 365.5t29 105.5q-10 -16 -61 -79t-338 -392h291z" />
+<glyph unicode="&#x20ac;" d="M991 1389q-186 0 -330.5 -120.5t-226.5 -346.5h457l-21 -82h-460q-30 -98 -39 -217h442l-20 -82h-424q0 -243 89 -356t265 -113q115 0 252 57v-94q-129 -55 -270 -55q-209 0 -325 139.5t-116 394.5v27h-184l16 82h172q5 101 35 217h-170l19 82h174q95 273 270 417 t399 144q166 0 287 -90l-53 -82q-102 78 -238 78z" />
+<glyph unicode="&#x2122;" horiz-adv-x="1534" d="M477 741h-86v643h-217v78h522v-78h-219v-643zM1077 741l-221 609h-6l4 -201v-408h-82v721h125l221 -606l223 606h125v-721h-86v398l4 207h-6l-227 -605h-74z" />
+<glyph unicode="&#xe000;" horiz-adv-x="1085" d="M0 1085h1085v-1085h-1085v1085z" />
+<glyph horiz-adv-x="1133" d="M0 0z" />
+<hkern u1="&#x22;" u2="&#x178;" k="-20" />
+<hkern u1="&#x22;" u2="&#x153;" k="123" />
+<hkern u1="&#x22;" u2="&#xfc;" k="61" />
+<hkern u1="&#x22;" u2="&#xfb;" k="61" />
+<hkern u1="&#x22;" u2="&#xfa;" k="61" />
+<hkern u1="&#x22;" u2="&#xf9;" k="61" />
+<hkern u1="&#x22;" u2="&#xf8;" k="123" />
+<hkern u1="&#x22;" u2="&#xf6;" k="123" />
+<hkern u1="&#x22;" u2="&#xf5;" k="123" />
+<hkern u1="&#x22;" u2="&#xf4;" k="123" />
+<hkern u1="&#x22;" u2="&#xf3;" k="123" />
+<hkern u1="&#x22;" u2="&#xf2;" k="123" />
+<hkern u1="&#x22;" u2="&#xeb;" k="123" />
+<hkern u1="&#x22;" u2="&#xea;" k="123" />
+<hkern u1="&#x22;" u2="&#xe9;" k="123" />
+<hkern u1="&#x22;" u2="&#xe8;" k="123" />
+<hkern u1="&#x22;" u2="&#xe7;" k="123" />
+<hkern u1="&#x22;" u2="&#xe6;" k="82" />
+<hkern u1="&#x22;" u2="&#xe5;" k="82" />
+<hkern u1="&#x22;" u2="&#xe4;" k="82" />
+<hkern u1="&#x22;" u2="&#xe3;" k="82" />
+<hkern u1="&#x22;" u2="&#xe2;" k="82" />
+<hkern u1="&#x22;" u2="&#xe1;" k="82" />
+<hkern u1="&#x22;" u2="&#xe0;" k="123" />
+<hkern u1="&#x22;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x22;" u2="&#xc5;" k="143" />
+<hkern u1="&#x22;" u2="&#xc4;" k="143" />
+<hkern u1="&#x22;" u2="&#xc3;" k="143" />
+<hkern u1="&#x22;" u2="&#xc2;" k="143" />
+<hkern u1="&#x22;" u2="&#xc1;" k="143" />
+<hkern u1="&#x22;" u2="&#xc0;" k="143" />
+<hkern u1="&#x22;" u2="u" k="61" />
+<hkern u1="&#x22;" u2="s" k="61" />
+<hkern u1="&#x22;" u2="r" k="61" />
+<hkern u1="&#x22;" u2="q" k="123" />
+<hkern u1="&#x22;" u2="p" k="61" />
+<hkern u1="&#x22;" u2="o" k="123" />
+<hkern u1="&#x22;" u2="n" k="61" />
+<hkern u1="&#x22;" u2="m" k="61" />
+<hkern u1="&#x22;" u2="g" k="61" />
+<hkern u1="&#x22;" u2="e" k="123" />
+<hkern u1="&#x22;" u2="d" k="123" />
+<hkern u1="&#x22;" u2="c" k="123" />
+<hkern u1="&#x22;" u2="a" k="82" />
+<hkern u1="&#x22;" u2="Y" k="-20" />
+<hkern u1="&#x22;" u2="W" k="-41" />
+<hkern u1="&#x22;" u2="V" k="-41" />
+<hkern u1="&#x22;" u2="T" k="-41" />
+<hkern u1="&#x22;" u2="A" k="143" />
+<hkern u1="&#x27;" u2="&#x178;" k="-20" />
+<hkern u1="&#x27;" u2="&#x153;" k="123" />
+<hkern u1="&#x27;" u2="&#xfc;" k="61" />
+<hkern u1="&#x27;" u2="&#xfb;" k="61" />
+<hkern u1="&#x27;" u2="&#xfa;" k="61" />
+<hkern u1="&#x27;" u2="&#xf9;" k="61" />
+<hkern u1="&#x27;" u2="&#xf8;" k="123" />
+<hkern u1="&#x27;" u2="&#xf6;" k="123" />
+<hkern u1="&#x27;" u2="&#xf5;" k="123" />
+<hkern u1="&#x27;" u2="&#xf4;" k="123" />
+<hkern u1="&#x27;" u2="&#xf3;" k="123" />
+<hkern u1="&#x27;" u2="&#xf2;" k="123" />
+<hkern u1="&#x27;" u2="&#xeb;" k="123" />
+<hkern u1="&#x27;" u2="&#xea;" k="123" />
+<hkern u1="&#x27;" u2="&#xe9;" k="123" />
+<hkern u1="&#x27;" u2="&#xe8;" k="123" />
+<hkern u1="&#x27;" u2="&#xe7;" k="123" />
+<hkern u1="&#x27;" u2="&#xe6;" k="82" />
+<hkern u1="&#x27;" u2="&#xe5;" k="82" />
+<hkern u1="&#x27;" u2="&#xe4;" k="82" />
+<hkern u1="&#x27;" u2="&#xe3;" k="82" />
+<hkern u1="&#x27;" u2="&#xe2;" k="82" />
+<hkern u1="&#x27;" u2="&#xe1;" k="82" />
+<hkern u1="&#x27;" u2="&#xe0;" k="123" />
+<hkern u1="&#x27;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x27;" u2="&#xc5;" k="143" />
+<hkern u1="&#x27;" u2="&#xc4;" k="143" />
+<hkern u1="&#x27;" u2="&#xc3;" k="143" />
+<hkern u1="&#x27;" u2="&#xc2;" k="143" />
+<hkern u1="&#x27;" u2="&#xc1;" k="143" />
+<hkern u1="&#x27;" u2="&#xc0;" k="143" />
+<hkern u1="&#x27;" u2="u" k="61" />
+<hkern u1="&#x27;" u2="s" k="61" />
+<hkern u1="&#x27;" u2="r" k="61" />
+<hkern u1="&#x27;" u2="q" k="123" />
+<hkern u1="&#x27;" u2="p" k="61" />
+<hkern u1="&#x27;" u2="o" k="123" />
+<hkern u1="&#x27;" u2="n" k="61" />
+<hkern u1="&#x27;" u2="m" k="61" />
+<hkern u1="&#x27;" u2="g" k="61" />
+<hkern u1="&#x27;" u2="e" k="123" />
+<hkern u1="&#x27;" u2="d" k="123" />
+<hkern u1="&#x27;" u2="c" k="123" />
+<hkern u1="&#x27;" u2="a" k="82" />
+<hkern u1="&#x27;" u2="Y" k="-20" />
+<hkern u1="&#x27;" u2="W" k="-41" />
+<hkern u1="&#x27;" u2="V" k="-41" />
+<hkern u1="&#x27;" u2="T" k="-41" />
+<hkern u1="&#x27;" u2="A" k="143" />
+<hkern u1="&#x28;" u2="J" k="-184" />
+<hkern u1="&#x2c;" u2="&#x178;" k="123" />
+<hkern u1="&#x2c;" u2="&#x152;" k="102" />
+<hkern u1="&#x2c;" u2="&#xdd;" k="123" />
+<hkern u1="&#x2c;" u2="&#xdc;" k="41" />
+<hkern u1="&#x2c;" u2="&#xdb;" k="41" />
+<hkern u1="&#x2c;" u2="&#xda;" k="41" />
+<hkern u1="&#x2c;" u2="&#xd9;" k="41" />
+<hkern u1="&#x2c;" u2="&#xd8;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd6;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd5;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd4;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd3;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd2;" k="102" />
+<hkern u1="&#x2c;" u2="&#xc7;" k="102" />
+<hkern u1="&#x2c;" u2="Y" k="123" />
+<hkern u1="&#x2c;" u2="W" k="123" />
+<hkern u1="&#x2c;" u2="V" k="123" />
+<hkern u1="&#x2c;" u2="U" k="41" />
+<hkern u1="&#x2c;" u2="T" k="143" />
+<hkern u1="&#x2c;" u2="Q" k="102" />
+<hkern u1="&#x2c;" u2="O" k="102" />
+<hkern u1="&#x2c;" u2="G" k="102" />
+<hkern u1="&#x2c;" u2="C" k="102" />
+<hkern u1="&#x2d;" u2="T" k="82" />
+<hkern u1="&#x2e;" u2="&#x178;" k="123" />
+<hkern u1="&#x2e;" u2="&#x152;" k="102" />
+<hkern u1="&#x2e;" u2="&#xdd;" k="123" />
+<hkern u1="&#x2e;" u2="&#xdc;" k="41" />
+<hkern u1="&#x2e;" u2="&#xdb;" k="41" />
+<hkern u1="&#x2e;" u2="&#xda;" k="41" />
+<hkern u1="&#x2e;" u2="&#xd9;" k="41" />
+<hkern u1="&#x2e;" u2="&#xd8;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd6;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd5;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd4;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd3;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd2;" k="102" />
+<hkern u1="&#x2e;" u2="&#xc7;" k="102" />
+<hkern u1="&#x2e;" u2="Y" k="123" />
+<hkern u1="&#x2e;" u2="W" k="123" />
+<hkern u1="&#x2e;" u2="V" k="123" />
+<hkern u1="&#x2e;" u2="U" k="41" />
+<hkern u1="&#x2e;" u2="T" k="143" />
+<hkern u1="&#x2e;" u2="Q" k="102" />
+<hkern u1="&#x2e;" u2="O" k="102" />
+<hkern u1="&#x2e;" u2="G" k="102" />
+<hkern u1="&#x2e;" u2="C" k="102" />
+<hkern u1="A" u2="&#x201d;" k="143" />
+<hkern u1="A" u2="&#x2019;" k="143" />
+<hkern u1="A" u2="&#x178;" k="123" />
+<hkern u1="A" u2="&#x152;" k="41" />
+<hkern u1="A" u2="&#xdd;" k="123" />
+<hkern u1="A" u2="&#xd8;" k="41" />
+<hkern u1="A" u2="&#xd6;" k="41" />
+<hkern u1="A" u2="&#xd5;" k="41" />
+<hkern u1="A" u2="&#xd4;" k="41" />
+<hkern u1="A" u2="&#xd3;" k="41" />
+<hkern u1="A" u2="&#xd2;" k="41" />
+<hkern u1="A" u2="&#xc7;" k="41" />
+<hkern u1="A" u2="Y" k="123" />
+<hkern u1="A" u2="W" k="82" />
+<hkern u1="A" u2="V" k="82" />
+<hkern u1="A" u2="T" k="143" />
+<hkern u1="A" u2="Q" k="41" />
+<hkern u1="A" u2="O" k="41" />
+<hkern u1="A" u2="J" k="-266" />
+<hkern u1="A" u2="G" k="41" />
+<hkern u1="A" u2="C" k="41" />
+<hkern u1="A" u2="&#x27;" k="143" />
+<hkern u1="A" u2="&#x22;" k="143" />
+<hkern u1="B" u2="&#x201e;" k="82" />
+<hkern u1="B" u2="&#x201a;" k="82" />
+<hkern u1="B" u2="&#x178;" k="20" />
+<hkern u1="B" u2="&#xdd;" k="20" />
+<hkern u1="B" u2="&#xc5;" k="41" />
+<hkern u1="B" u2="&#xc4;" k="41" />
+<hkern u1="B" u2="&#xc3;" k="41" />
+<hkern u1="B" u2="&#xc2;" k="41" />
+<hkern u1="B" u2="&#xc1;" k="41" />
+<hkern u1="B" u2="&#xc0;" k="41" />
+<hkern u1="B" u2="Z" k="20" />
+<hkern u1="B" u2="Y" k="20" />
+<hkern u1="B" u2="X" k="41" />
+<hkern u1="B" u2="W" k="20" />
+<hkern u1="B" u2="V" k="20" />
+<hkern u1="B" u2="T" k="61" />
+<hkern u1="B" u2="A" k="41" />
+<hkern u1="B" u2="&#x2e;" k="82" />
+<hkern u1="B" u2="&#x2c;" k="82" />
+<hkern u1="C" u2="&#x152;" k="41" />
+<hkern u1="C" u2="&#xd8;" k="41" />
+<hkern u1="C" u2="&#xd6;" k="41" />
+<hkern u1="C" u2="&#xd5;" k="41" />
+<hkern u1="C" u2="&#xd4;" k="41" />
+<hkern u1="C" u2="&#xd3;" k="41" />
+<hkern u1="C" u2="&#xd2;" k="41" />
+<hkern u1="C" u2="&#xc7;" k="41" />
+<hkern u1="C" u2="Q" k="41" />
+<hkern u1="C" u2="O" k="41" />
+<hkern u1="C" u2="G" k="41" />
+<hkern u1="C" u2="C" k="41" />
+<hkern u1="D" u2="&#x201e;" k="82" />
+<hkern u1="D" u2="&#x201a;" k="82" />
+<hkern u1="D" u2="&#x178;" k="20" />
+<hkern u1="D" u2="&#xdd;" k="20" />
+<hkern u1="D" u2="&#xc5;" k="41" />
+<hkern u1="D" u2="&#xc4;" k="41" />
+<hkern u1="D" u2="&#xc3;" k="41" />
+<hkern u1="D" u2="&#xc2;" k="41" />
+<hkern u1="D" u2="&#xc1;" k="41" />
+<hkern u1="D" u2="&#xc0;" k="41" />
+<hkern u1="D" u2="Z" k="20" />
+<hkern u1="D" u2="Y" k="20" />
+<hkern u1="D" u2="X" k="41" />
+<hkern u1="D" u2="W" k="20" />
+<hkern u1="D" u2="V" k="20" />
+<hkern u1="D" u2="T" k="61" />
+<hkern u1="D" u2="A" k="41" />
+<hkern u1="D" u2="&#x2e;" k="82" />
+<hkern u1="D" u2="&#x2c;" k="82" />
+<hkern u1="E" u2="J" k="-123" />
+<hkern u1="F" u2="&#x201e;" k="123" />
+<hkern u1="F" u2="&#x201a;" k="123" />
+<hkern u1="F" u2="&#xc5;" k="41" />
+<hkern u1="F" u2="&#xc4;" k="41" />
+<hkern u1="F" u2="&#xc3;" k="41" />
+<hkern u1="F" u2="&#xc2;" k="41" />
+<hkern u1="F" u2="&#xc1;" k="41" />
+<hkern u1="F" u2="&#xc0;" k="41" />
+<hkern u1="F" u2="A" k="41" />
+<hkern u1="F" u2="&#x3f;" k="-41" />
+<hkern u1="F" u2="&#x2e;" k="123" />
+<hkern u1="F" u2="&#x2c;" k="123" />
+<hkern u1="K" u2="&#x152;" k="41" />
+<hkern u1="K" u2="&#xd8;" k="41" />
+<hkern u1="K" u2="&#xd6;" k="41" />
+<hkern u1="K" u2="&#xd5;" k="41" />
+<hkern u1="K" u2="&#xd4;" k="41" />
+<hkern u1="K" u2="&#xd3;" k="41" />
+<hkern u1="K" u2="&#xd2;" k="41" />
+<hkern u1="K" u2="&#xc7;" k="41" />
+<hkern u1="K" u2="Q" k="41" />
+<hkern u1="K" u2="O" k="41" />
+<hkern u1="K" u2="G" k="41" />
+<hkern u1="K" u2="C" k="41" />
+<hkern u1="L" u2="&#x201d;" k="164" />
+<hkern u1="L" u2="&#x2019;" k="164" />
+<hkern u1="L" u2="&#x178;" k="61" />
+<hkern u1="L" u2="&#x152;" k="41" />
+<hkern u1="L" u2="&#xdd;" k="61" />
+<hkern u1="L" u2="&#xdc;" k="20" />
+<hkern u1="L" u2="&#xdb;" k="20" />
+<hkern u1="L" u2="&#xda;" k="20" />
+<hkern u1="L" u2="&#xd9;" k="20" />
+<hkern u1="L" u2="&#xd8;" k="41" />
+<hkern u1="L" u2="&#xd6;" k="41" />
+<hkern u1="L" u2="&#xd5;" k="41" />
+<hkern u1="L" u2="&#xd4;" k="41" />
+<hkern u1="L" u2="&#xd3;" k="41" />
+<hkern u1="L" u2="&#xd2;" k="41" />
+<hkern u1="L" u2="&#xc7;" k="41" />
+<hkern u1="L" u2="Y" k="61" />
+<hkern u1="L" u2="W" k="41" />
+<hkern u1="L" u2="V" k="41" />
+<hkern u1="L" u2="U" k="20" />
+<hkern u1="L" u2="T" k="41" />
+<hkern u1="L" u2="Q" k="41" />
+<hkern u1="L" u2="O" k="41" />
+<hkern u1="L" u2="G" k="41" />
+<hkern u1="L" u2="C" k="41" />
+<hkern u1="L" u2="&#x27;" k="164" />
+<hkern u1="L" u2="&#x22;" k="164" />
+<hkern u1="O" u2="&#x201e;" k="82" />
+<hkern u1="O" u2="&#x201a;" k="82" />
+<hkern u1="O" u2="&#x178;" k="20" />
+<hkern u1="O" u2="&#xdd;" k="20" />
+<hkern u1="O" u2="&#xc5;" k="41" />
+<hkern u1="O" u2="&#xc4;" k="41" />
+<hkern u1="O" u2="&#xc3;" k="41" />
+<hkern u1="O" u2="&#xc2;" k="41" />
+<hkern u1="O" u2="&#xc1;" k="41" />
+<hkern u1="O" u2="&#xc0;" k="41" />
+<hkern u1="O" u2="Z" k="20" />
+<hkern u1="O" u2="Y" k="20" />
+<hkern u1="O" u2="X" k="41" />
+<hkern u1="O" u2="W" k="20" />
+<hkern u1="O" u2="V" k="20" />
+<hkern u1="O" u2="T" k="61" />
+<hkern u1="O" u2="A" k="41" />
+<hkern u1="O" u2="&#x2e;" k="82" />
+<hkern u1="O" u2="&#x2c;" k="82" />
+<hkern u1="P" u2="&#x201e;" k="266" />
+<hkern u1="P" u2="&#x201a;" k="266" />
+<hkern u1="P" u2="&#xc5;" k="102" />
+<hkern u1="P" u2="&#xc4;" k="102" />
+<hkern u1="P" u2="&#xc3;" k="102" />
+<hkern u1="P" u2="&#xc2;" k="102" />
+<hkern u1="P" u2="&#xc1;" k="102" />
+<hkern u1="P" u2="&#xc0;" k="102" />
+<hkern u1="P" u2="Z" k="20" />
+<hkern u1="P" u2="X" k="41" />
+<hkern u1="P" u2="A" k="102" />
+<hkern u1="P" u2="&#x2e;" k="266" />
+<hkern u1="P" u2="&#x2c;" k="266" />
+<hkern u1="Q" u2="&#x201e;" k="82" />
+<hkern u1="Q" u2="&#x201a;" k="82" />
+<hkern u1="Q" u2="&#x178;" k="20" />
+<hkern u1="Q" u2="&#xdd;" k="20" />
+<hkern u1="Q" u2="&#xc5;" k="41" />
+<hkern u1="Q" u2="&#xc4;" k="41" />
+<hkern u1="Q" u2="&#xc3;" k="41" />
+<hkern u1="Q" u2="&#xc2;" k="41" />
+<hkern u1="Q" u2="&#xc1;" k="41" />
+<hkern u1="Q" u2="&#xc0;" k="41" />
+<hkern u1="Q" u2="Z" k="20" />
+<hkern u1="Q" u2="Y" k="20" />
+<hkern u1="Q" u2="X" k="41" />
+<hkern u1="Q" u2="W" k="20" />
+<hkern u1="Q" u2="V" k="20" />
+<hkern u1="Q" u2="T" k="61" />
+<hkern u1="Q" u2="A" k="41" />
+<hkern u1="Q" u2="&#x2e;" k="82" />
+<hkern u1="Q" u2="&#x2c;" k="82" />
+<hkern u1="T" u2="&#x201e;" k="123" />
+<hkern u1="T" u2="&#x201a;" k="123" />
+<hkern u1="T" u2="&#x2014;" k="82" />
+<hkern u1="T" u2="&#x2013;" k="82" />
+<hkern u1="T" u2="&#x153;" k="143" />
+<hkern u1="T" u2="&#x152;" k="41" />
+<hkern u1="T" u2="&#xfd;" k="41" />
+<hkern u1="T" u2="&#xfc;" k="102" />
+<hkern u1="T" u2="&#xfb;" k="102" />
+<hkern u1="T" u2="&#xfa;" k="102" />
+<hkern u1="T" u2="&#xf9;" k="102" />
+<hkern u1="T" u2="&#xf8;" k="143" />
+<hkern u1="T" u2="&#xf6;" k="143" />
+<hkern u1="T" u2="&#xf5;" k="143" />
+<hkern u1="T" u2="&#xf4;" k="143" />
+<hkern u1="T" u2="&#xf3;" k="143" />
+<hkern u1="T" u2="&#xf2;" k="143" />
+<hkern u1="T" u2="&#xeb;" k="143" />
+<hkern u1="T" u2="&#xea;" k="143" />
+<hkern u1="T" u2="&#xe9;" k="143" />
+<hkern u1="T" u2="&#xe8;" k="143" />
+<hkern u1="T" u2="&#xe7;" k="143" />
+<hkern u1="T" u2="&#xe6;" k="164" />
+<hkern u1="T" u2="&#xe5;" k="164" />
+<hkern u1="T" u2="&#xe4;" k="164" />
+<hkern u1="T" u2="&#xe3;" k="164" />
+<hkern u1="T" u2="&#xe2;" k="164" />
+<hkern u1="T" u2="&#xe1;" k="164" />
+<hkern u1="T" u2="&#xe0;" k="143" />
+<hkern u1="T" u2="&#xd8;" k="41" />
+<hkern u1="T" u2="&#xd6;" k="41" />
+<hkern u1="T" u2="&#xd5;" k="41" />
+<hkern u1="T" u2="&#xd4;" k="41" />
+<hkern u1="T" u2="&#xd3;" k="41" />
+<hkern u1="T" u2="&#xd2;" k="41" />
+<hkern u1="T" u2="&#xc7;" k="41" />
+<hkern u1="T" u2="&#xc5;" k="143" />
+<hkern u1="T" u2="&#xc4;" k="143" />
+<hkern u1="T" u2="&#xc3;" k="143" />
+<hkern u1="T" u2="&#xc2;" k="143" />
+<hkern u1="T" u2="&#xc1;" k="143" />
+<hkern u1="T" u2="&#xc0;" k="143" />
+<hkern u1="T" u2="z" k="82" />
+<hkern u1="T" u2="y" k="41" />
+<hkern u1="T" u2="x" k="41" />
+<hkern u1="T" u2="w" k="41" />
+<hkern u1="T" u2="v" k="41" />
+<hkern u1="T" u2="u" k="102" />
+<hkern u1="T" u2="s" k="123" />
+<hkern u1="T" u2="r" k="102" />
+<hkern u1="T" u2="q" k="143" />
+<hkern u1="T" u2="p" k="102" />
+<hkern u1="T" u2="o" k="143" />
+<hkern u1="T" u2="n" k="102" />
+<hkern u1="T" u2="m" k="102" />
+<hkern u1="T" u2="g" k="143" />
+<hkern u1="T" u2="e" k="143" />
+<hkern u1="T" u2="d" k="143" />
+<hkern u1="T" u2="c" k="143" />
+<hkern u1="T" u2="a" k="164" />
+<hkern u1="T" u2="T" k="-41" />
+<hkern u1="T" u2="Q" k="41" />
+<hkern u1="T" u2="O" k="41" />
+<hkern u1="T" u2="G" k="41" />
+<hkern u1="T" u2="C" k="41" />
+<hkern u1="T" u2="A" k="143" />
+<hkern u1="T" u2="&#x3f;" k="-41" />
+<hkern u1="T" u2="&#x2e;" k="123" />
+<hkern u1="T" u2="&#x2d;" k="82" />
+<hkern u1="T" u2="&#x2c;" k="123" />
+<hkern u1="U" u2="&#x201e;" k="41" />
+<hkern u1="U" u2="&#x201a;" k="41" />
+<hkern u1="U" u2="&#xc5;" k="20" />
+<hkern u1="U" u2="&#xc4;" k="20" />
+<hkern u1="U" u2="&#xc3;" k="20" />
+<hkern u1="U" u2="&#xc2;" k="20" />
+<hkern u1="U" u2="&#xc1;" k="20" />
+<hkern u1="U" u2="&#xc0;" k="20" />
+<hkern u1="U" u2="A" k="20" />
+<hkern u1="U" u2="&#x2e;" k="41" />
+<hkern u1="U" u2="&#x2c;" k="41" />
+<hkern u1="V" u2="&#x201e;" k="102" />
+<hkern u1="V" u2="&#x201a;" k="102" />
+<hkern u1="V" u2="&#x153;" k="41" />
+<hkern u1="V" u2="&#x152;" k="20" />
+<hkern u1="V" u2="&#xfc;" k="20" />
+<hkern u1="V" u2="&#xfb;" k="20" />
+<hkern u1="V" u2="&#xfa;" k="20" />
+<hkern u1="V" u2="&#xf9;" k="20" />
+<hkern u1="V" u2="&#xf8;" k="41" />
+<hkern u1="V" u2="&#xf6;" k="41" />
+<hkern u1="V" u2="&#xf5;" k="41" />
+<hkern u1="V" u2="&#xf4;" k="41" />
+<hkern u1="V" u2="&#xf3;" k="41" />
+<hkern u1="V" u2="&#xf2;" k="41" />
+<hkern u1="V" u2="&#xeb;" k="41" />
+<hkern u1="V" u2="&#xea;" k="41" />
+<hkern u1="V" u2="&#xe9;" k="41" />
+<hkern u1="V" u2="&#xe8;" k="41" />
+<hkern u1="V" u2="&#xe7;" k="41" />
+<hkern u1="V" u2="&#xe6;" k="41" />
+<hkern u1="V" u2="&#xe5;" k="41" />
+<hkern u1="V" u2="&#xe4;" k="41" />
+<hkern u1="V" u2="&#xe3;" k="41" />
+<hkern u1="V" u2="&#xe2;" k="41" />
+<hkern u1="V" u2="&#xe1;" k="41" />
+<hkern u1="V" u2="&#xe0;" k="41" />
+<hkern u1="V" u2="&#xd8;" k="20" />
+<hkern u1="V" u2="&#xd6;" k="20" />
+<hkern u1="V" u2="&#xd5;" k="20" />
+<hkern u1="V" u2="&#xd4;" k="20" />
+<hkern u1="V" u2="&#xd3;" k="20" />
+<hkern u1="V" u2="&#xd2;" k="20" />
+<hkern u1="V" u2="&#xc7;" k="20" />
+<hkern u1="V" u2="&#xc5;" k="82" />
+<hkern u1="V" u2="&#xc4;" k="82" />
+<hkern u1="V" u2="&#xc3;" k="82" />
+<hkern u1="V" u2="&#xc2;" k="82" />
+<hkern u1="V" u2="&#xc1;" k="82" />
+<hkern u1="V" u2="&#xc0;" k="82" />
+<hkern u1="V" u2="u" k="20" />
+<hkern u1="V" u2="s" k="20" />
+<hkern u1="V" u2="r" k="20" />
+<hkern u1="V" u2="q" k="41" />
+<hkern u1="V" u2="p" k="20" />
+<hkern u1="V" u2="o" k="41" />
+<hkern u1="V" u2="n" k="20" />
+<hkern u1="V" u2="m" k="20" />
+<hkern u1="V" u2="g" k="20" />
+<hkern u1="V" u2="e" k="41" />
+<hkern u1="V" u2="d" k="41" />
+<hkern u1="V" u2="c" k="41" />
+<hkern u1="V" u2="a" k="41" />
+<hkern u1="V" u2="Q" k="20" />
+<hkern u1="V" u2="O" k="20" />
+<hkern u1="V" u2="G" k="20" />
+<hkern u1="V" u2="C" k="20" />
+<hkern u1="V" u2="A" k="82" />
+<hkern u1="V" u2="&#x3f;" k="-41" />
+<hkern u1="V" u2="&#x2e;" k="102" />
+<hkern u1="V" u2="&#x2c;" k="102" />
+<hkern u1="W" u2="&#x201e;" k="102" />
+<hkern u1="W" u2="&#x201a;" k="102" />
+<hkern u1="W" u2="&#x153;" k="41" />
+<hkern u1="W" u2="&#x152;" k="20" />
+<hkern u1="W" u2="&#xfc;" k="20" />
+<hkern u1="W" u2="&#xfb;" k="20" />
+<hkern u1="W" u2="&#xfa;" k="20" />
+<hkern u1="W" u2="&#xf9;" k="20" />
+<hkern u1="W" u2="&#xf8;" k="41" />
+<hkern u1="W" u2="&#xf6;" k="41" />
+<hkern u1="W" u2="&#xf5;" k="41" />
+<hkern u1="W" u2="&#xf4;" k="41" />
+<hkern u1="W" u2="&#xf3;" k="41" />
+<hkern u1="W" u2="&#xf2;" k="41" />
+<hkern u1="W" u2="&#xeb;" k="41" />
+<hkern u1="W" u2="&#xea;" k="41" />
+<hkern u1="W" u2="&#xe9;" k="41" />
+<hkern u1="W" u2="&#xe8;" k="41" />
+<hkern u1="W" u2="&#xe7;" k="41" />
+<hkern u1="W" u2="&#xe6;" k="41" />
+<hkern u1="W" u2="&#xe5;" k="41" />
+<hkern u1="W" u2="&#xe4;" k="41" />
+<hkern u1="W" u2="&#xe3;" k="41" />
+<hkern u1="W" u2="&#xe2;" k="41" />
+<hkern u1="W" u2="&#xe1;" k="41" />
+<hkern u1="W" u2="&#xe0;" k="41" />
+<hkern u1="W" u2="&#xd8;" k="20" />
+<hkern u1="W" u2="&#xd6;" k="20" />
+<hkern u1="W" u2="&#xd5;" k="20" />
+<hkern u1="W" u2="&#xd4;" k="20" />
+<hkern u1="W" u2="&#xd3;" k="20" />
+<hkern u1="W" u2="&#xd2;" k="20" />
+<hkern u1="W" u2="&#xc7;" k="20" />
+<hkern u1="W" u2="&#xc5;" k="82" />
+<hkern u1="W" u2="&#xc4;" k="82" />
+<hkern u1="W" u2="&#xc3;" k="82" />
+<hkern u1="W" u2="&#xc2;" k="82" />
+<hkern u1="W" u2="&#xc1;" k="82" />
+<hkern u1="W" u2="&#xc0;" k="82" />
+<hkern u1="W" u2="u" k="20" />
+<hkern u1="W" u2="s" k="20" />
+<hkern u1="W" u2="r" k="20" />
+<hkern u1="W" u2="q" k="41" />
+<hkern u1="W" u2="p" k="20" />
+<hkern u1="W" u2="o" k="41" />
+<hkern u1="W" u2="n" k="20" />
+<hkern u1="W" u2="m" k="20" />
+<hkern u1="W" u2="g" k="20" />
+<hkern u1="W" u2="e" k="41" />
+<hkern u1="W" u2="d" k="41" />
+<hkern u1="W" u2="c" k="41" />
+<hkern u1="W" u2="a" k="41" />
+<hkern u1="W" u2="Q" k="20" />
+<hkern u1="W" u2="O" k="20" />
+<hkern u1="W" u2="G" k="20" />
+<hkern u1="W" u2="C" k="20" />
+<hkern u1="W" u2="A" k="82" />
+<hkern u1="W" u2="&#x3f;" k="-41" />
+<hkern u1="W" u2="&#x2e;" k="102" />
+<hkern u1="W" u2="&#x2c;" k="102" />
+<hkern u1="X" u2="&#x152;" k="41" />
+<hkern u1="X" u2="&#xd8;" k="41" />
+<hkern u1="X" u2="&#xd6;" k="41" />
+<hkern u1="X" u2="&#xd5;" k="41" />
+<hkern u1="X" u2="&#xd4;" k="41" />
+<hkern u1="X" u2="&#xd3;" k="41" />
+<hkern u1="X" u2="&#xd2;" k="41" />
+<hkern u1="X" u2="&#xc7;" k="41" />
+<hkern u1="X" u2="Q" k="41" />
+<hkern u1="X" u2="O" k="41" />
+<hkern u1="X" u2="G" k="41" />
+<hkern u1="X" u2="C" k="41" />
+<hkern u1="Y" u2="&#x201e;" k="123" />
+<hkern u1="Y" u2="&#x201a;" k="123" />
+<hkern u1="Y" u2="&#x153;" k="102" />
+<hkern u1="Y" u2="&#x152;" k="41" />
+<hkern u1="Y" u2="&#xfc;" k="61" />
+<hkern u1="Y" u2="&#xfb;" k="61" />
+<hkern u1="Y" u2="&#xfa;" k="61" />
+<hkern u1="Y" u2="&#xf9;" k="61" />
+<hkern u1="Y" u2="&#xf8;" k="102" />
+<hkern u1="Y" u2="&#xf6;" k="102" />
+<hkern u1="Y" u2="&#xf5;" k="102" />
+<hkern u1="Y" u2="&#xf4;" k="102" />
+<hkern u1="Y" u2="&#xf3;" k="102" />
+<hkern u1="Y" u2="&#xf2;" k="102" />
+<hkern u1="Y" u2="&#xeb;" k="102" />
+<hkern u1="Y" u2="&#xea;" k="102" />
+<hkern u1="Y" u2="&#xe9;" k="102" />
+<hkern u1="Y" u2="&#xe8;" k="102" />
+<hkern u1="Y" u2="&#xe7;" k="102" />
+<hkern u1="Y" u2="&#xe6;" k="102" />
+<hkern u1="Y" u2="&#xe5;" k="102" />
+<hkern u1="Y" u2="&#xe4;" k="102" />
+<hkern u1="Y" u2="&#xe3;" k="102" />
+<hkern u1="Y" u2="&#xe2;" k="102" />
+<hkern u1="Y" u2="&#xe1;" k="102" />
+<hkern u1="Y" u2="&#xe0;" k="102" />
+<hkern u1="Y" u2="&#xd8;" k="41" />
+<hkern u1="Y" u2="&#xd6;" k="41" />
+<hkern u1="Y" u2="&#xd5;" k="41" />
+<hkern u1="Y" u2="&#xd4;" k="41" />
+<hkern u1="Y" u2="&#xd3;" k="41" />
+<hkern u1="Y" u2="&#xd2;" k="41" />
+<hkern u1="Y" u2="&#xc7;" k="41" />
+<hkern u1="Y" u2="&#xc5;" k="123" />
+<hkern u1="Y" u2="&#xc4;" k="123" />
+<hkern u1="Y" u2="&#xc3;" k="123" />
+<hkern u1="Y" u2="&#xc2;" k="123" />
+<hkern u1="Y" u2="&#xc1;" k="123" />
+<hkern u1="Y" u2="&#xc0;" k="123" />
+<hkern u1="Y" u2="z" k="41" />
+<hkern u1="Y" u2="u" k="61" />
+<hkern u1="Y" u2="s" k="82" />
+<hkern u1="Y" u2="r" k="61" />
+<hkern u1="Y" u2="q" k="102" />
+<hkern u1="Y" u2="p" k="61" />
+<hkern u1="Y" u2="o" k="102" />
+<hkern u1="Y" u2="n" k="61" />
+<hkern u1="Y" u2="m" k="61" />
+<hkern u1="Y" u2="g" k="41" />
+<hkern u1="Y" u2="e" k="102" />
+<hkern u1="Y" u2="d" k="102" />
+<hkern u1="Y" u2="c" k="102" />
+<hkern u1="Y" u2="a" k="102" />
+<hkern u1="Y" u2="Q" k="41" />
+<hkern u1="Y" u2="O" k="41" />
+<hkern u1="Y" u2="G" k="41" />
+<hkern u1="Y" u2="C" k="41" />
+<hkern u1="Y" u2="A" k="123" />
+<hkern u1="Y" u2="&#x3f;" k="-41" />
+<hkern u1="Y" u2="&#x2e;" k="123" />
+<hkern u1="Y" u2="&#x2c;" k="123" />
+<hkern u1="Z" u2="&#x152;" k="20" />
+<hkern u1="Z" u2="&#xd8;" k="20" />
+<hkern u1="Z" u2="&#xd6;" k="20" />
+<hkern u1="Z" u2="&#xd5;" k="20" />
+<hkern u1="Z" u2="&#xd4;" k="20" />
+<hkern u1="Z" u2="&#xd3;" k="20" />
+<hkern u1="Z" u2="&#xd2;" k="20" />
+<hkern u1="Z" u2="&#xc7;" k="20" />
+<hkern u1="Z" u2="Q" k="20" />
+<hkern u1="Z" u2="O" k="20" />
+<hkern u1="Z" u2="G" k="20" />
+<hkern u1="Z" u2="C" k="20" />
+<hkern u1="[" u2="J" k="-184" />
+<hkern u1="a" u2="&#x201d;" k="20" />
+<hkern u1="a" u2="&#x2019;" k="20" />
+<hkern u1="a" u2="&#x27;" k="20" />
+<hkern u1="a" u2="&#x22;" k="20" />
+<hkern u1="b" u2="&#x201d;" k="20" />
+<hkern u1="b" u2="&#x2019;" k="20" />
+<hkern u1="b" u2="&#xfd;" k="41" />
+<hkern u1="b" u2="z" k="20" />
+<hkern u1="b" u2="y" k="41" />
+<hkern u1="b" u2="x" k="41" />
+<hkern u1="b" u2="w" k="41" />
+<hkern u1="b" u2="v" k="41" />
+<hkern u1="b" u2="&#x27;" k="20" />
+<hkern u1="b" u2="&#x22;" k="20" />
+<hkern u1="c" u2="&#x201d;" k="-41" />
+<hkern u1="c" u2="&#x2019;" k="-41" />
+<hkern u1="c" u2="&#x27;" k="-41" />
+<hkern u1="c" u2="&#x22;" k="-41" />
+<hkern u1="e" u2="&#x201d;" k="20" />
+<hkern u1="e" u2="&#x2019;" k="20" />
+<hkern u1="e" u2="&#xfd;" k="41" />
+<hkern u1="e" u2="z" k="20" />
+<hkern u1="e" u2="y" k="41" />
+<hkern u1="e" u2="x" k="41" />
+<hkern u1="e" u2="w" k="41" />
+<hkern u1="e" u2="v" k="41" />
+<hkern u1="e" u2="&#x27;" k="20" />
+<hkern u1="e" u2="&#x22;" k="20" />
+<hkern u1="f" u2="&#x201d;" k="-123" />
+<hkern u1="f" u2="&#x2019;" k="-123" />
+<hkern u1="f" u2="&#x27;" k="-123" />
+<hkern u1="f" u2="&#x22;" k="-123" />
+<hkern u1="h" u2="&#x201d;" k="20" />
+<hkern u1="h" u2="&#x2019;" k="20" />
+<hkern u1="h" u2="&#x27;" k="20" />
+<hkern u1="h" u2="&#x22;" k="20" />
+<hkern u1="k" u2="&#x153;" k="41" />
+<hkern u1="k" u2="&#xf8;" k="41" />
+<hkern u1="k" u2="&#xf6;" k="41" />
+<hkern u1="k" u2="&#xf5;" k="41" />
+<hkern u1="k" u2="&#xf4;" k="41" />
+<hkern u1="k" u2="&#xf3;" k="41" />
+<hkern u1="k" u2="&#xf2;" k="41" />
+<hkern u1="k" u2="&#xeb;" k="41" />
+<hkern u1="k" u2="&#xea;" k="41" />
+<hkern u1="k" u2="&#xe9;" k="41" />
+<hkern u1="k" u2="&#xe8;" k="41" />
+<hkern u1="k" u2="&#xe7;" k="41" />
+<hkern u1="k" u2="&#xe0;" k="41" />
+<hkern u1="k" u2="q" k="41" />
+<hkern u1="k" u2="o" k="41" />
+<hkern u1="k" u2="e" k="41" />
+<hkern u1="k" u2="d" k="41" />
+<hkern u1="k" u2="c" k="41" />
+<hkern u1="m" u2="&#x201d;" k="20" />
+<hkern u1="m" u2="&#x2019;" k="20" />
+<hkern u1="m" u2="&#x27;" k="20" />
+<hkern u1="m" u2="&#x22;" k="20" />
+<hkern u1="n" u2="&#x201d;" k="20" />
+<hkern u1="n" u2="&#x2019;" k="20" />
+<hkern u1="n" u2="&#x27;" k="20" />
+<hkern u1="n" u2="&#x22;" k="20" />
+<hkern u1="o" u2="&#x201d;" k="20" />
+<hkern u1="o" u2="&#x2019;" k="20" />
+<hkern u1="o" u2="&#xfd;" k="41" />
+<hkern u1="o" u2="z" k="20" />
+<hkern u1="o" u2="y" k="41" />
+<hkern u1="o" u2="x" k="41" />
+<hkern u1="o" u2="w" k="41" />
+<hkern u1="o" u2="v" k="41" />
+<hkern u1="o" u2="&#x27;" k="20" />
+<hkern u1="o" u2="&#x22;" k="20" />
+<hkern u1="p" u2="&#x201d;" k="20" />
+<hkern u1="p" u2="&#x2019;" k="20" />
+<hkern u1="p" u2="&#xfd;" k="41" />
+<hkern u1="p" u2="z" k="20" />
+<hkern u1="p" u2="y" k="41" />
+<hkern u1="p" u2="x" k="41" />
+<hkern u1="p" u2="w" k="41" />
+<hkern u1="p" u2="v" k="41" />
+<hkern u1="p" u2="&#x27;" k="20" />
+<hkern u1="p" u2="&#x22;" k="20" />
+<hkern u1="r" u2="&#x201d;" k="-82" />
+<hkern u1="r" u2="&#x2019;" k="-82" />
+<hkern u1="r" u2="&#x153;" k="41" />
+<hkern u1="r" u2="&#xf8;" k="41" />
+<hkern u1="r" u2="&#xf6;" k="41" />
+<hkern u1="r" u2="&#xf5;" k="41" />
+<hkern u1="r" u2="&#xf4;" k="41" />
+<hkern u1="r" u2="&#xf3;" k="41" />
+<hkern u1="r" u2="&#xf2;" k="41" />
+<hkern u1="r" u2="&#xeb;" k="41" />
+<hkern u1="r" u2="&#xea;" k="41" />
+<hkern u1="r" u2="&#xe9;" k="41" />
+<hkern u1="r" u2="&#xe8;" k="41" />
+<hkern u1="r" u2="&#xe7;" k="41" />
+<hkern u1="r" u2="&#xe6;" k="41" />
+<hkern u1="r" u2="&#xe5;" k="41" />
+<hkern u1="r" u2="&#xe4;" k="41" />
+<hkern u1="r" u2="&#xe3;" k="41" />
+<hkern u1="r" u2="&#xe2;" k="41" />
+<hkern u1="r" u2="&#xe1;" k="41" />
+<hkern u1="r" u2="&#xe0;" k="41" />
+<hkern u1="r" u2="q" k="41" />
+<hkern u1="r" u2="o" k="41" />
+<hkern u1="r" u2="g" k="20" />
+<hkern u1="r" u2="e" k="41" />
+<hkern u1="r" u2="d" k="41" />
+<hkern u1="r" u2="c" k="41" />
+<hkern u1="r" u2="a" k="41" />
+<hkern u1="r" u2="&#x27;" k="-82" />
+<hkern u1="r" u2="&#x22;" k="-82" />
+<hkern u1="t" u2="&#x201d;" k="-41" />
+<hkern u1="t" u2="&#x2019;" k="-41" />
+<hkern u1="t" u2="&#x27;" k="-41" />
+<hkern u1="t" u2="&#x22;" k="-41" />
+<hkern u1="v" u2="&#x201e;" k="82" />
+<hkern u1="v" u2="&#x201d;" k="-82" />
+<hkern u1="v" u2="&#x201a;" k="82" />
+<hkern u1="v" u2="&#x2019;" k="-82" />
+<hkern u1="v" u2="&#x3f;" k="-41" />
+<hkern u1="v" u2="&#x2e;" k="82" />
+<hkern u1="v" u2="&#x2c;" k="82" />
+<hkern u1="v" u2="&#x27;" k="-82" />
+<hkern u1="v" u2="&#x22;" k="-82" />
+<hkern u1="w" u2="&#x201e;" k="82" />
+<hkern u1="w" u2="&#x201d;" k="-82" />
+<hkern u1="w" u2="&#x201a;" k="82" />
+<hkern u1="w" u2="&#x2019;" k="-82" />
+<hkern u1="w" u2="&#x3f;" k="-41" />
+<hkern u1="w" u2="&#x2e;" k="82" />
+<hkern u1="w" u2="&#x2c;" k="82" />
+<hkern u1="w" u2="&#x27;" k="-82" />
+<hkern u1="w" u2="&#x22;" k="-82" />
+<hkern u1="x" u2="&#x153;" k="41" />
+<hkern u1="x" u2="&#xf8;" k="41" />
+<hkern u1="x" u2="&#xf6;" k="41" />
+<hkern u1="x" u2="&#xf5;" k="41" />
+<hkern u1="x" u2="&#xf4;" k="41" />
+<hkern u1="x" u2="&#xf3;" k="41" />
+<hkern u1="x" u2="&#xf2;" k="41" />
+<hkern u1="x" u2="&#xeb;" k="41" />
+<hkern u1="x" u2="&#xea;" k="41" />
+<hkern u1="x" u2="&#xe9;" k="41" />
+<hkern u1="x" u2="&#xe8;" k="41" />
+<hkern u1="x" u2="&#xe7;" k="41" />
+<hkern u1="x" u2="&#xe0;" k="41" />
+<hkern u1="x" u2="q" k="41" />
+<hkern u1="x" u2="o" k="41" />
+<hkern u1="x" u2="e" k="41" />
+<hkern u1="x" u2="d" k="41" />
+<hkern u1="x" u2="c" k="41" />
+<hkern u1="y" u2="&#x201e;" k="82" />
+<hkern u1="y" u2="&#x201d;" k="-82" />
+<hkern u1="y" u2="&#x201a;" k="82" />
+<hkern u1="y" u2="&#x2019;" k="-82" />
+<hkern u1="y" u2="&#x3f;" k="-41" />
+<hkern u1="y" u2="&#x2e;" k="82" />
+<hkern u1="y" u2="&#x2c;" k="82" />
+<hkern u1="y" u2="&#x27;" k="-82" />
+<hkern u1="y" u2="&#x22;" k="-82" />
+<hkern u1="&#x7b;" u2="J" k="-184" />
+<hkern u1="&#xc0;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc0;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc0;" u2="&#x178;" k="123" />
+<hkern u1="&#xc0;" u2="&#x152;" k="41" />
+<hkern u1="&#xc0;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc0;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc0;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc0;" u2="Y" k="123" />
+<hkern u1="&#xc0;" u2="W" k="82" />
+<hkern u1="&#xc0;" u2="V" k="82" />
+<hkern u1="&#xc0;" u2="T" k="143" />
+<hkern u1="&#xc0;" u2="Q" k="41" />
+<hkern u1="&#xc0;" u2="O" k="41" />
+<hkern u1="&#xc0;" u2="J" k="-266" />
+<hkern u1="&#xc0;" u2="G" k="41" />
+<hkern u1="&#xc0;" u2="C" k="41" />
+<hkern u1="&#xc0;" u2="&#x27;" k="143" />
+<hkern u1="&#xc0;" u2="&#x22;" k="143" />
+<hkern u1="&#xc1;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc1;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc1;" u2="&#x178;" k="123" />
+<hkern u1="&#xc1;" u2="&#x152;" k="41" />
+<hkern u1="&#xc1;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc1;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc1;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc1;" u2="Y" k="123" />
+<hkern u1="&#xc1;" u2="W" k="82" />
+<hkern u1="&#xc1;" u2="V" k="82" />
+<hkern u1="&#xc1;" u2="T" k="143" />
+<hkern u1="&#xc1;" u2="Q" k="41" />
+<hkern u1="&#xc1;" u2="O" k="41" />
+<hkern u1="&#xc1;" u2="J" k="-266" />
+<hkern u1="&#xc1;" u2="G" k="41" />
+<hkern u1="&#xc1;" u2="C" k="41" />
+<hkern u1="&#xc1;" u2="&#x27;" k="143" />
+<hkern u1="&#xc1;" u2="&#x22;" k="143" />
+<hkern u1="&#xc2;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc2;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc2;" u2="&#x178;" k="123" />
+<hkern u1="&#xc2;" u2="&#x152;" k="41" />
+<hkern u1="&#xc2;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc2;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc2;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc2;" u2="Y" k="123" />
+<hkern u1="&#xc2;" u2="W" k="82" />
+<hkern u1="&#xc2;" u2="V" k="82" />
+<hkern u1="&#xc2;" u2="T" k="143" />
+<hkern u1="&#xc2;" u2="Q" k="41" />
+<hkern u1="&#xc2;" u2="O" k="41" />
+<hkern u1="&#xc2;" u2="J" k="-266" />
+<hkern u1="&#xc2;" u2="G" k="41" />
+<hkern u1="&#xc2;" u2="C" k="41" />
+<hkern u1="&#xc2;" u2="&#x27;" k="143" />
+<hkern u1="&#xc2;" u2="&#x22;" k="143" />
+<hkern u1="&#xc3;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc3;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc3;" u2="&#x178;" k="123" />
+<hkern u1="&#xc3;" u2="&#x152;" k="41" />
+<hkern u1="&#xc3;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc3;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc3;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc3;" u2="Y" k="123" />
+<hkern u1="&#xc3;" u2="W" k="82" />
+<hkern u1="&#xc3;" u2="V" k="82" />
+<hkern u1="&#xc3;" u2="T" k="143" />
+<hkern u1="&#xc3;" u2="Q" k="41" />
+<hkern u1="&#xc3;" u2="O" k="41" />
+<hkern u1="&#xc3;" u2="J" k="-266" />
+<hkern u1="&#xc3;" u2="G" k="41" />
+<hkern u1="&#xc3;" u2="C" k="41" />
+<hkern u1="&#xc3;" u2="&#x27;" k="143" />
+<hkern u1="&#xc3;" u2="&#x22;" k="143" />
+<hkern u1="&#xc4;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc4;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc4;" u2="&#x178;" k="123" />
+<hkern u1="&#xc4;" u2="&#x152;" k="41" />
+<hkern u1="&#xc4;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc4;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc4;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc4;" u2="Y" k="123" />
+<hkern u1="&#xc4;" u2="W" k="82" />
+<hkern u1="&#xc4;" u2="V" k="82" />
+<hkern u1="&#xc4;" u2="T" k="143" />
+<hkern u1="&#xc4;" u2="Q" k="41" />
+<hkern u1="&#xc4;" u2="O" k="41" />
+<hkern u1="&#xc4;" u2="J" k="-266" />
+<hkern u1="&#xc4;" u2="G" k="41" />
+<hkern u1="&#xc4;" u2="C" k="41" />
+<hkern u1="&#xc4;" u2="&#x27;" k="143" />
+<hkern u1="&#xc4;" u2="&#x22;" k="143" />
+<hkern u1="&#xc5;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc5;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc5;" u2="&#x178;" k="123" />
+<hkern u1="&#xc5;" u2="&#x152;" k="41" />
+<hkern u1="&#xc5;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc5;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc5;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc5;" u2="Y" k="123" />
+<hkern u1="&#xc5;" u2="W" k="82" />
+<hkern u1="&#xc5;" u2="V" k="82" />
+<hkern u1="&#xc5;" u2="T" k="143" />
+<hkern u1="&#xc5;" u2="Q" k="41" />
+<hkern u1="&#xc5;" u2="O" k="41" />
+<hkern u1="&#xc5;" u2="J" k="-266" />
+<hkern u1="&#xc5;" u2="G" k="41" />
+<hkern u1="&#xc5;" u2="C" k="41" />
+<hkern u1="&#xc5;" u2="&#x27;" k="143" />
+<hkern u1="&#xc5;" u2="&#x22;" k="143" />
+<hkern u1="&#xc6;" u2="J" k="-123" />
+<hkern u1="&#xc7;" u2="&#x152;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc7;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc7;" u2="Q" k="41" />
+<hkern u1="&#xc7;" u2="O" k="41" />
+<hkern u1="&#xc7;" u2="G" k="41" />
+<hkern u1="&#xc7;" u2="C" k="41" />
+<hkern u1="&#xc8;" u2="J" k="-123" />
+<hkern u1="&#xc9;" u2="J" k="-123" />
+<hkern u1="&#xca;" u2="J" k="-123" />
+<hkern u1="&#xcb;" u2="J" k="-123" />
+<hkern u1="&#xd0;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd0;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd0;" u2="&#x178;" k="20" />
+<hkern u1="&#xd0;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd0;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd0;" u2="Z" k="20" />
+<hkern u1="&#xd0;" u2="Y" k="20" />
+<hkern u1="&#xd0;" u2="X" k="41" />
+<hkern u1="&#xd0;" u2="W" k="20" />
+<hkern u1="&#xd0;" u2="V" k="20" />
+<hkern u1="&#xd0;" u2="T" k="61" />
+<hkern u1="&#xd0;" u2="A" k="41" />
+<hkern u1="&#xd0;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd0;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd2;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd2;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd2;" u2="&#x178;" k="20" />
+<hkern u1="&#xd2;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd2;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd2;" u2="Z" k="20" />
+<hkern u1="&#xd2;" u2="Y" k="20" />
+<hkern u1="&#xd2;" u2="X" k="41" />
+<hkern u1="&#xd2;" u2="W" k="20" />
+<hkern u1="&#xd2;" u2="V" k="20" />
+<hkern u1="&#xd2;" u2="T" k="61" />
+<hkern u1="&#xd2;" u2="A" k="41" />
+<hkern u1="&#xd2;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd2;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd3;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd3;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd3;" u2="&#x178;" k="20" />
+<hkern u1="&#xd3;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd3;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd3;" u2="Z" k="20" />
+<hkern u1="&#xd3;" u2="Y" k="20" />
+<hkern u1="&#xd3;" u2="X" k="41" />
+<hkern u1="&#xd3;" u2="W" k="20" />
+<hkern u1="&#xd3;" u2="V" k="20" />
+<hkern u1="&#xd3;" u2="T" k="61" />
+<hkern u1="&#xd3;" u2="A" k="41" />
+<hkern u1="&#xd3;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd3;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd4;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd4;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd4;" u2="&#x178;" k="20" />
+<hkern u1="&#xd4;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd4;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd4;" u2="Z" k="20" />
+<hkern u1="&#xd4;" u2="Y" k="20" />
+<hkern u1="&#xd4;" u2="X" k="41" />
+<hkern u1="&#xd4;" u2="W" k="20" />
+<hkern u1="&#xd4;" u2="V" k="20" />
+<hkern u1="&#xd4;" u2="T" k="61" />
+<hkern u1="&#xd4;" u2="A" k="41" />
+<hkern u1="&#xd4;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd4;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd5;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd5;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd5;" u2="&#x178;" k="20" />
+<hkern u1="&#xd5;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd5;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd5;" u2="Z" k="20" />
+<hkern u1="&#xd5;" u2="Y" k="20" />
+<hkern u1="&#xd5;" u2="X" k="41" />
+<hkern u1="&#xd5;" u2="W" k="20" />
+<hkern u1="&#xd5;" u2="V" k="20" />
+<hkern u1="&#xd5;" u2="T" k="61" />
+<hkern u1="&#xd5;" u2="A" k="41" />
+<hkern u1="&#xd5;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd5;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd6;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd6;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd6;" u2="&#x178;" k="20" />
+<hkern u1="&#xd6;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd6;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd6;" u2="Z" k="20" />
+<hkern u1="&#xd6;" u2="Y" k="20" />
+<hkern u1="&#xd6;" u2="X" k="41" />
+<hkern u1="&#xd6;" u2="W" k="20" />
+<hkern u1="&#xd6;" u2="V" k="20" />
+<hkern u1="&#xd6;" u2="T" k="61" />
+<hkern u1="&#xd6;" u2="A" k="41" />
+<hkern u1="&#xd6;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd6;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd8;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd8;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd8;" u2="&#x178;" k="20" />
+<hkern u1="&#xd8;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd8;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd8;" u2="Z" k="20" />
+<hkern u1="&#xd8;" u2="Y" k="20" />
+<hkern u1="&#xd8;" u2="X" k="41" />
+<hkern u1="&#xd8;" u2="W" k="20" />
+<hkern u1="&#xd8;" u2="V" k="20" />
+<hkern u1="&#xd8;" u2="T" k="61" />
+<hkern u1="&#xd8;" u2="A" k="41" />
+<hkern u1="&#xd8;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd8;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd9;" u2="&#x201e;" k="41" />
+<hkern u1="&#xd9;" u2="&#x201a;" k="41" />
+<hkern u1="&#xd9;" u2="&#xc5;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc4;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc3;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc2;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc1;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc0;" k="20" />
+<hkern u1="&#xd9;" u2="A" k="20" />
+<hkern u1="&#xd9;" u2="&#x2e;" k="41" />
+<hkern u1="&#xd9;" u2="&#x2c;" k="41" />
+<hkern u1="&#xda;" u2="&#x201e;" k="41" />
+<hkern u1="&#xda;" u2="&#x201a;" k="41" />
+<hkern u1="&#xda;" u2="&#xc5;" k="20" />
+<hkern u1="&#xda;" u2="&#xc4;" k="20" />
+<hkern u1="&#xda;" u2="&#xc3;" k="20" />
+<hkern u1="&#xda;" u2="&#xc2;" k="20" />
+<hkern u1="&#xda;" u2="&#xc1;" k="20" />
+<hkern u1="&#xda;" u2="&#xc0;" k="20" />
+<hkern u1="&#xda;" u2="A" k="20" />
+<hkern u1="&#xda;" u2="&#x2e;" k="41" />
+<hkern u1="&#xda;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdb;" u2="&#x201e;" k="41" />
+<hkern u1="&#xdb;" u2="&#x201a;" k="41" />
+<hkern u1="&#xdb;" u2="&#xc5;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc4;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc3;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc2;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc1;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc0;" k="20" />
+<hkern u1="&#xdb;" u2="A" k="20" />
+<hkern u1="&#xdb;" u2="&#x2e;" k="41" />
+<hkern u1="&#xdb;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdc;" u2="&#x201e;" k="41" />
+<hkern u1="&#xdc;" u2="&#x201a;" k="41" />
+<hkern u1="&#xdc;" u2="&#xc5;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc4;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc3;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc2;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc1;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc0;" k="20" />
+<hkern u1="&#xdc;" u2="A" k="20" />
+<hkern u1="&#xdc;" u2="&#x2e;" k="41" />
+<hkern u1="&#xdc;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdd;" u2="&#x201e;" k="123" />
+<hkern u1="&#xdd;" u2="&#x201a;" k="123" />
+<hkern u1="&#xdd;" u2="&#x153;" k="102" />
+<hkern u1="&#xdd;" u2="&#x152;" k="41" />
+<hkern u1="&#xdd;" u2="&#xfc;" k="61" />
+<hkern u1="&#xdd;" u2="&#xfb;" k="61" />
+<hkern u1="&#xdd;" u2="&#xfa;" k="61" />
+<hkern u1="&#xdd;" u2="&#xf9;" k="61" />
+<hkern u1="&#xdd;" u2="&#xf8;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf6;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf5;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf4;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf3;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf2;" k="102" />
+<hkern u1="&#xdd;" u2="&#xeb;" k="102" />
+<hkern u1="&#xdd;" u2="&#xea;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe9;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe8;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe7;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe6;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe5;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe4;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe3;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe2;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe1;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe0;" k="102" />
+<hkern u1="&#xdd;" u2="&#xd8;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd6;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd5;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd4;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd3;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd2;" k="41" />
+<hkern u1="&#xdd;" u2="&#xc7;" k="41" />
+<hkern u1="&#xdd;" u2="&#xc5;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc4;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc3;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc2;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc1;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc0;" k="123" />
+<hkern u1="&#xdd;" u2="z" k="41" />
+<hkern u1="&#xdd;" u2="u" k="61" />
+<hkern u1="&#xdd;" u2="s" k="82" />
+<hkern u1="&#xdd;" u2="r" k="61" />
+<hkern u1="&#xdd;" u2="q" k="102" />
+<hkern u1="&#xdd;" u2="p" k="61" />
+<hkern u1="&#xdd;" u2="o" k="102" />
+<hkern u1="&#xdd;" u2="n" k="61" />
+<hkern u1="&#xdd;" u2="m" k="61" />
+<hkern u1="&#xdd;" u2="g" k="41" />
+<hkern u1="&#xdd;" u2="e" k="102" />
+<hkern u1="&#xdd;" u2="d" k="102" />
+<hkern u1="&#xdd;" u2="c" k="102" />
+<hkern u1="&#xdd;" u2="a" k="102" />
+<hkern u1="&#xdd;" u2="Q" k="41" />
+<hkern u1="&#xdd;" u2="O" k="41" />
+<hkern u1="&#xdd;" u2="G" k="41" />
+<hkern u1="&#xdd;" u2="C" k="41" />
+<hkern u1="&#xdd;" u2="A" k="123" />
+<hkern u1="&#xdd;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xdd;" u2="&#x2e;" k="123" />
+<hkern u1="&#xdd;" u2="&#x2c;" k="123" />
+<hkern u1="&#xde;" u2="&#x201e;" k="266" />
+<hkern u1="&#xde;" u2="&#x201a;" k="266" />
+<hkern u1="&#xde;" u2="&#xc5;" k="102" />
+<hkern u1="&#xde;" u2="&#xc4;" k="102" />
+<hkern u1="&#xde;" u2="&#xc3;" k="102" />
+<hkern u1="&#xde;" u2="&#xc2;" k="102" />
+<hkern u1="&#xde;" u2="&#xc1;" k="102" />
+<hkern u1="&#xde;" u2="&#xc0;" k="102" />
+<hkern u1="&#xde;" u2="Z" k="20" />
+<hkern u1="&#xde;" u2="X" k="41" />
+<hkern u1="&#xde;" u2="A" k="102" />
+<hkern u1="&#xde;" u2="&#x2e;" k="266" />
+<hkern u1="&#xde;" u2="&#x2c;" k="266" />
+<hkern u1="&#xe0;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe0;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe0;" u2="&#x27;" k="20" />
+<hkern u1="&#xe0;" u2="&#x22;" k="20" />
+<hkern u1="&#xe1;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe1;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe1;" u2="&#x27;" k="20" />
+<hkern u1="&#xe1;" u2="&#x22;" k="20" />
+<hkern u1="&#xe2;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe2;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe2;" u2="&#x27;" k="20" />
+<hkern u1="&#xe2;" u2="&#x22;" k="20" />
+<hkern u1="&#xe3;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe3;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe3;" u2="&#x27;" k="20" />
+<hkern u1="&#xe3;" u2="&#x22;" k="20" />
+<hkern u1="&#xe4;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe4;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe4;" u2="&#x27;" k="20" />
+<hkern u1="&#xe4;" u2="&#x22;" k="20" />
+<hkern u1="&#xe5;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe5;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe5;" u2="&#x27;" k="20" />
+<hkern u1="&#xe5;" u2="&#x22;" k="20" />
+<hkern u1="&#xe8;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe8;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe8;" u2="&#xfd;" k="41" />
+<hkern u1="&#xe8;" u2="z" k="20" />
+<hkern u1="&#xe8;" u2="y" k="41" />
+<hkern u1="&#xe8;" u2="x" k="41" />
+<hkern u1="&#xe8;" u2="w" k="41" />
+<hkern u1="&#xe8;" u2="v" k="41" />
+<hkern u1="&#xe8;" u2="&#x27;" k="20" />
+<hkern u1="&#xe8;" u2="&#x22;" k="20" />
+<hkern u1="&#xe9;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe9;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe9;" u2="&#xfd;" k="41" />
+<hkern u1="&#xe9;" u2="z" k="20" />
+<hkern u1="&#xe9;" u2="y" k="41" />
+<hkern u1="&#xe9;" u2="x" k="41" />
+<hkern u1="&#xe9;" u2="w" k="41" />
+<hkern u1="&#xe9;" u2="v" k="41" />
+<hkern u1="&#xe9;" u2="&#x27;" k="20" />
+<hkern u1="&#xe9;" u2="&#x22;" k="20" />
+<hkern u1="&#xea;" u2="&#x201d;" k="20" />
+<hkern u1="&#xea;" u2="&#x2019;" k="20" />
+<hkern u1="&#xea;" u2="&#xfd;" k="41" />
+<hkern u1="&#xea;" u2="z" k="20" />
+<hkern u1="&#xea;" u2="y" k="41" />
+<hkern u1="&#xea;" u2="x" k="41" />
+<hkern u1="&#xea;" u2="w" k="41" />
+<hkern u1="&#xea;" u2="v" k="41" />
+<hkern u1="&#xea;" u2="&#x27;" k="20" />
+<hkern u1="&#xea;" u2="&#x22;" k="20" />
+<hkern u1="&#xeb;" u2="&#x201d;" k="20" />
+<hkern u1="&#xeb;" u2="&#x2019;" k="20" />
+<hkern u1="&#xeb;" u2="&#xfd;" k="41" />
+<hkern u1="&#xeb;" u2="z" k="20" />
+<hkern u1="&#xeb;" u2="y" k="41" />
+<hkern u1="&#xeb;" u2="x" k="41" />
+<hkern u1="&#xeb;" u2="w" k="41" />
+<hkern u1="&#xeb;" u2="v" k="41" />
+<hkern u1="&#xeb;" u2="&#x27;" k="20" />
+<hkern u1="&#xeb;" u2="&#x22;" k="20" />
+<hkern u1="&#xf0;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf0;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf0;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf0;" u2="z" k="20" />
+<hkern u1="&#xf0;" u2="y" k="41" />
+<hkern u1="&#xf0;" u2="x" k="41" />
+<hkern u1="&#xf0;" u2="w" k="41" />
+<hkern u1="&#xf0;" u2="v" k="41" />
+<hkern u1="&#xf0;" u2="&#x27;" k="20" />
+<hkern u1="&#xf0;" u2="&#x22;" k="20" />
+<hkern u1="&#xf2;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf2;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf2;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf2;" u2="z" k="20" />
+<hkern u1="&#xf2;" u2="y" k="41" />
+<hkern u1="&#xf2;" u2="x" k="41" />
+<hkern u1="&#xf2;" u2="w" k="41" />
+<hkern u1="&#xf2;" u2="v" k="41" />
+<hkern u1="&#xf2;" u2="&#x27;" k="20" />
+<hkern u1="&#xf2;" u2="&#x22;" k="20" />
+<hkern u1="&#xf3;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf3;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf3;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf3;" u2="z" k="20" />
+<hkern u1="&#xf3;" u2="y" k="41" />
+<hkern u1="&#xf3;" u2="x" k="41" />
+<hkern u1="&#xf3;" u2="w" k="41" />
+<hkern u1="&#xf3;" u2="v" k="41" />
+<hkern u1="&#xf3;" u2="&#x27;" k="20" />
+<hkern u1="&#xf3;" u2="&#x22;" k="20" />
+<hkern u1="&#xf4;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf4;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf4;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf4;" u2="z" k="20" />
+<hkern u1="&#xf4;" u2="y" k="41" />
+<hkern u1="&#xf4;" u2="x" k="41" />
+<hkern u1="&#xf4;" u2="w" k="41" />
+<hkern u1="&#xf4;" u2="v" k="41" />
+<hkern u1="&#xf4;" u2="&#x27;" k="20" />
+<hkern u1="&#xf4;" u2="&#x22;" k="20" />
+<hkern u1="&#xf6;" u2="&#x201d;" k="41" />
+<hkern u1="&#xf6;" u2="&#x2019;" k="41" />
+<hkern u1="&#xf6;" u2="&#x27;" k="41" />
+<hkern u1="&#xf6;" u2="&#x22;" k="41" />
+<hkern u1="&#xf8;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf8;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf8;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf8;" u2="z" k="20" />
+<hkern u1="&#xf8;" u2="y" k="41" />
+<hkern u1="&#xf8;" u2="x" k="41" />
+<hkern u1="&#xf8;" u2="w" k="41" />
+<hkern u1="&#xf8;" u2="v" k="41" />
+<hkern u1="&#xf8;" u2="&#x27;" k="20" />
+<hkern u1="&#xf8;" u2="&#x22;" k="20" />
+<hkern u1="&#xfd;" u2="&#x201e;" k="82" />
+<hkern u1="&#xfd;" u2="&#x201d;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x201a;" k="82" />
+<hkern u1="&#xfd;" u2="&#x2019;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xfd;" u2="&#x2e;" k="82" />
+<hkern u1="&#xfd;" u2="&#x2c;" k="82" />
+<hkern u1="&#xfd;" u2="&#x27;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x22;" k="-82" />
+<hkern u1="&#xfe;" u2="&#x201d;" k="20" />
+<hkern u1="&#xfe;" u2="&#x2019;" k="20" />
+<hkern u1="&#xfe;" u2="&#xfd;" k="41" />
+<hkern u1="&#xfe;" u2="z" k="20" />
+<hkern u1="&#xfe;" u2="y" k="41" />
+<hkern u1="&#xfe;" u2="x" k="41" />
+<hkern u1="&#xfe;" u2="w" k="41" />
+<hkern u1="&#xfe;" u2="v" k="41" />
+<hkern u1="&#xfe;" u2="&#x27;" k="20" />
+<hkern u1="&#xfe;" u2="&#x22;" k="20" />
+<hkern u1="&#xff;" u2="&#x201e;" k="82" />
+<hkern u1="&#xff;" u2="&#x201d;" k="-82" />
+<hkern u1="&#xff;" u2="&#x201a;" k="82" />
+<hkern u1="&#xff;" u2="&#x2019;" k="-82" />
+<hkern u1="&#xff;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xff;" u2="&#x2e;" k="82" />
+<hkern u1="&#xff;" u2="&#x2c;" k="82" />
+<hkern u1="&#xff;" u2="&#x27;" k="-82" />
+<hkern u1="&#xff;" u2="&#x22;" k="-82" />
+<hkern u1="&#x152;" u2="J" k="-123" />
+<hkern u1="&#x178;" u2="&#x201e;" k="123" />
+<hkern u1="&#x178;" u2="&#x201a;" k="123" />
+<hkern u1="&#x178;" u2="&#x153;" k="102" />
+<hkern u1="&#x178;" u2="&#x152;" k="41" />
+<hkern u1="&#x178;" u2="&#xfc;" k="61" />
+<hkern u1="&#x178;" u2="&#xfb;" k="61" />
+<hkern u1="&#x178;" u2="&#xfa;" k="61" />
+<hkern u1="&#x178;" u2="&#xf9;" k="61" />
+<hkern u1="&#x178;" u2="&#xf8;" k="102" />
+<hkern u1="&#x178;" u2="&#xf6;" k="102" />
+<hkern u1="&#x178;" u2="&#xf5;" k="102" />
+<hkern u1="&#x178;" u2="&#xf4;" k="102" />
+<hkern u1="&#x178;" u2="&#xf3;" k="102" />
+<hkern u1="&#x178;" u2="&#xf2;" k="102" />
+<hkern u1="&#x178;" u2="&#xeb;" k="102" />
+<hkern u1="&#x178;" u2="&#xea;" k="102" />
+<hkern u1="&#x178;" u2="&#xe9;" k="102" />
+<hkern u1="&#x178;" u2="&#xe8;" k="102" />
+<hkern u1="&#x178;" u2="&#xe7;" k="102" />
+<hkern u1="&#x178;" u2="&#xe6;" k="102" />
+<hkern u1="&#x178;" u2="&#xe5;" k="102" />
+<hkern u1="&#x178;" u2="&#xe4;" k="102" />
+<hkern u1="&#x178;" u2="&#xe3;" k="102" />
+<hkern u1="&#x178;" u2="&#xe2;" k="102" />
+<hkern u1="&#x178;" u2="&#xe1;" k="102" />
+<hkern u1="&#x178;" u2="&#xe0;" k="102" />
+<hkern u1="&#x178;" u2="&#xd8;" k="41" />
+<hkern u1="&#x178;" u2="&#xd6;" k="41" />
+<hkern u1="&#x178;" u2="&#xd5;" k="41" />
+<hkern u1="&#x178;" u2="&#xd4;" k="41" />
+<hkern u1="&#x178;" u2="&#xd3;" k="41" />
+<hkern u1="&#x178;" u2="&#xd2;" k="41" />
+<hkern u1="&#x178;" u2="&#xc7;" k="41" />
+<hkern u1="&#x178;" u2="&#xc5;" k="123" />
+<hkern u1="&#x178;" u2="&#xc4;" k="123" />
+<hkern u1="&#x178;" u2="&#xc3;" k="123" />
+<hkern u1="&#x178;" u2="&#xc2;" k="123" />
+<hkern u1="&#x178;" u2="&#xc1;" k="123" />
+<hkern u1="&#x178;" u2="&#xc0;" k="123" />
+<hkern u1="&#x178;" u2="z" k="41" />
+<hkern u1="&#x178;" u2="u" k="61" />
+<hkern u1="&#x178;" u2="s" k="82" />
+<hkern u1="&#x178;" u2="r" k="61" />
+<hkern u1="&#x178;" u2="q" k="102" />
+<hkern u1="&#x178;" u2="p" k="61" />
+<hkern u1="&#x178;" u2="o" k="102" />
+<hkern u1="&#x178;" u2="n" k="61" />
+<hkern u1="&#x178;" u2="m" k="61" />
+<hkern u1="&#x178;" u2="g" k="41" />
+<hkern u1="&#x178;" u2="e" k="102" />
+<hkern u1="&#x178;" u2="d" k="102" />
+<hkern u1="&#x178;" u2="c" k="102" />
+<hkern u1="&#x178;" u2="a" k="102" />
+<hkern u1="&#x178;" u2="Q" k="41" />
+<hkern u1="&#x178;" u2="O" k="41" />
+<hkern u1="&#x178;" u2="G" k="41" />
+<hkern u1="&#x178;" u2="C" k="41" />
+<hkern u1="&#x178;" u2="A" k="123" />
+<hkern u1="&#x178;" u2="&#x3f;" k="-41" />
+<hkern u1="&#x178;" u2="&#x2e;" k="123" />
+<hkern u1="&#x178;" u2="&#x2c;" k="123" />
+<hkern u1="&#x2013;" u2="T" k="82" />
+<hkern u1="&#x2014;" u2="T" k="82" />
+<hkern u1="&#x2018;" u2="&#x178;" k="-20" />
+<hkern u1="&#x2018;" u2="&#x153;" k="123" />
+<hkern u1="&#x2018;" u2="&#xfc;" k="61" />
+<hkern u1="&#x2018;" u2="&#xfb;" k="61" />
+<hkern u1="&#x2018;" u2="&#xfa;" k="61" />
+<hkern u1="&#x2018;" u2="&#xf9;" k="61" />
+<hkern u1="&#x2018;" u2="&#xf8;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf6;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf5;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf4;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf3;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf2;" k="123" />
+<hkern u1="&#x2018;" u2="&#xeb;" k="123" />
+<hkern u1="&#x2018;" u2="&#xea;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe9;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe8;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe7;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe6;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe5;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe4;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe3;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe2;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe1;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe0;" k="123" />
+<hkern u1="&#x2018;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x2018;" u2="&#xc5;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc4;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc3;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc2;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc1;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc0;" k="143" />
+<hkern u1="&#x2018;" u2="u" k="61" />
+<hkern u1="&#x2018;" u2="s" k="61" />
+<hkern u1="&#x2018;" u2="r" k="61" />
+<hkern u1="&#x2018;" u2="q" k="123" />
+<hkern u1="&#x2018;" u2="p" k="61" />
+<hkern u1="&#x2018;" u2="o" k="123" />
+<hkern u1="&#x2018;" u2="n" k="61" />
+<hkern u1="&#x2018;" u2="m" k="61" />
+<hkern u1="&#x2018;" u2="g" k="61" />
+<hkern u1="&#x2018;" u2="e" k="123" />
+<hkern u1="&#x2018;" u2="d" k="123" />
+<hkern u1="&#x2018;" u2="c" k="123" />
+<hkern u1="&#x2018;" u2="a" k="82" />
+<hkern u1="&#x2018;" u2="Y" k="-20" />
+<hkern u1="&#x2018;" u2="W" k="-41" />
+<hkern u1="&#x2018;" u2="V" k="-41" />
+<hkern u1="&#x2018;" u2="T" k="-41" />
+<hkern u1="&#x2018;" u2="A" k="143" />
+<hkern u1="&#x2019;" u2="&#x178;" k="-20" />
+<hkern u1="&#x2019;" u2="&#x153;" k="123" />
+<hkern u1="&#x2019;" u2="&#xfc;" k="61" />
+<hkern u1="&#x2019;" u2="&#xfb;" k="61" />
+<hkern u1="&#x2019;" u2="&#xfa;" k="61" />
+<hkern u1="&#x2019;" u2="&#xf9;" k="61" />
+<hkern u1="&#x2019;" u2="&#xf8;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf6;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf5;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf4;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf3;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf2;" k="123" />
+<hkern u1="&#x2019;" u2="&#xeb;" k="123" />
+<hkern u1="&#x2019;" u2="&#xea;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe9;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe8;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe7;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe6;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe5;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe4;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe3;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe2;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe1;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe0;" k="123" />
+<hkern u1="&#x2019;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x2019;" u2="&#xc5;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc4;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc3;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc2;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc1;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc0;" k="143" />
+<hkern u1="&#x2019;" u2="u" k="61" />
+<hkern u1="&#x2019;" u2="s" k="61" />
+<hkern u1="&#x2019;" u2="r" k="61" />
+<hkern u1="&#x2019;" u2="q" k="123" />
+<hkern u1="&#x2019;" u2="p" k="61" />
+<hkern u1="&#x2019;" u2="o" k="123" />
+<hkern u1="&#x2019;" u2="n" k="61" />
+<hkern u1="&#x2019;" u2="m" k="61" />
+<hkern u1="&#x2019;" u2="g" k="61" />
+<hkern u1="&#x2019;" u2="e" k="123" />
+<hkern u1="&#x2019;" u2="d" k="123" />
+<hkern u1="&#x2019;" u2="c" k="123" />
+<hkern u1="&#x2019;" u2="a" k="82" />
+<hkern u1="&#x2019;" u2="Y" k="-20" />
+<hkern u1="&#x2019;" u2="W" k="-41" />
+<hkern u1="&#x2019;" u2="V" k="-41" />
+<hkern u1="&#x2019;" u2="T" k="-41" />
+<hkern u1="&#x2019;" u2="A" k="143" />
+<hkern u1="&#x201a;" u2="&#x178;" k="123" />
+<hkern u1="&#x201a;" u2="&#x152;" k="102" />
+<hkern u1="&#x201a;" u2="&#xdd;" k="123" />
+<hkern u1="&#x201a;" u2="&#xdc;" k="41" />
+<hkern u1="&#x201a;" u2="&#xdb;" k="41" />
+<hkern u1="&#x201a;" u2="&#xda;" k="41" />
+<hkern u1="&#x201a;" u2="&#xd9;" k="41" />
+<hkern u1="&#x201a;" u2="&#xd8;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd6;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd5;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd4;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd3;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd2;" k="102" />
+<hkern u1="&#x201a;" u2="&#xc7;" k="102" />
+<hkern u1="&#x201a;" u2="Y" k="123" />
+<hkern u1="&#x201a;" u2="W" k="123" />
+<hkern u1="&#x201a;" u2="V" k="123" />
+<hkern u1="&#x201a;" u2="U" k="41" />
+<hkern u1="&#x201a;" u2="T" k="143" />
+<hkern u1="&#x201a;" u2="Q" k="102" />
+<hkern u1="&#x201a;" u2="O" k="102" />
+<hkern u1="&#x201a;" u2="G" k="102" />
+<hkern u1="&#x201a;" u2="C" k="102" />
+<hkern u1="&#x201c;" u2="&#x178;" k="-20" />
+<hkern u1="&#x201c;" u2="&#x153;" k="123" />
+<hkern u1="&#x201c;" u2="&#xfc;" k="61" />
+<hkern u1="&#x201c;" u2="&#xfb;" k="61" />
+<hkern u1="&#x201c;" u2="&#xfa;" k="61" />
+<hkern u1="&#x201c;" u2="&#xf9;" k="61" />
+<hkern u1="&#x201c;" u2="&#xf8;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf6;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf5;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf4;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf3;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf2;" k="123" />
+<hkern u1="&#x201c;" u2="&#xeb;" k="123" />
+<hkern u1="&#x201c;" u2="&#xea;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe9;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe8;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe7;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe6;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe5;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe4;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe3;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe2;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe1;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe0;" k="123" />
+<hkern u1="&#x201c;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x201c;" u2="&#xc5;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc4;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc3;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc2;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc1;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc0;" k="143" />
+<hkern u1="&#x201c;" u2="u" k="61" />
+<hkern u1="&#x201c;" u2="s" k="61" />
+<hkern u1="&#x201c;" u2="r" k="61" />
+<hkern u1="&#x201c;" u2="q" k="123" />
+<hkern u1="&#x201c;" u2="p" k="61" />
+<hkern u1="&#x201c;" u2="o" k="123" />
+<hkern u1="&#x201c;" u2="n" k="61" />
+<hkern u1="&#x201c;" u2="m" k="61" />
+<hkern u1="&#x201c;" u2="g" k="61" />
+<hkern u1="&#x201c;" u2="e" k="123" />
+<hkern u1="&#x201c;" u2="d" k="123" />
+<hkern u1="&#x201c;" u2="c" k="123" />
+<hkern u1="&#x201c;" u2="a" k="82" />
+<hkern u1="&#x201c;" u2="Y" k="-20" />
+<hkern u1="&#x201c;" u2="W" k="-41" />
+<hkern u1="&#x201c;" u2="V" k="-41" />
+<hkern u1="&#x201c;" u2="T" k="-41" />
+<hkern u1="&#x201c;" u2="A" k="143" />
+<hkern u1="&#x201e;" u2="&#x178;" k="123" />
+<hkern u1="&#x201e;" u2="&#x152;" k="102" />
+<hkern u1="&#x201e;" u2="&#xdd;" k="123" />
+<hkern u1="&#x201e;" u2="&#xdc;" k="41" />
+<hkern u1="&#x201e;" u2="&#xdb;" k="41" />
+<hkern u1="&#x201e;" u2="&#xda;" k="41" />
+<hkern u1="&#x201e;" u2="&#xd9;" k="41" />
+<hkern u1="&#x201e;" u2="&#xd8;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd6;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd5;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd4;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd3;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd2;" k="102" />
+<hkern u1="&#x201e;" u2="&#xc7;" k="102" />
+<hkern u1="&#x201e;" u2="Y" k="123" />
+<hkern u1="&#x201e;" u2="W" k="123" />
+<hkern u1="&#x201e;" u2="V" k="123" />
+<hkern u1="&#x201e;" u2="U" k="41" />
+<hkern u1="&#x201e;" u2="T" k="143" />
+<hkern u1="&#x201e;" u2="Q" k="102" />
+<hkern u1="&#x201e;" u2="O" k="102" />
+<hkern u1="&#x201e;" u2="G" k="102" />
+<hkern u1="&#x201e;" u2="C" k="102" />
+<hkern g1="uniFB00" u2="&#x201d;" k="-123" />
+<hkern g1="uniFB00" u2="&#x2019;" k="-123" />
+<hkern g1="uniFB00" u2="&#x27;" k="-123" />
+<hkern g1="uniFB00" u2="&#x22;" k="-123" />
+</font>
+</defs></svg> 
\ No newline at end of file
diff --git a/html/simple-shape/docs/fonts/OpenSans-LightItalic-webfont.woff b/html/simple-shape/docs/fonts/OpenSans-LightItalic-webfont.woff
new file mode 100644
index 0000000..43e8b9e
--- /dev/null
+++ b/html/simple-shape/docs/fonts/OpenSans-LightItalic-webfont.woff
Binary files differdiff --git a/html/simple-shape/docs/fonts/OpenSans-Regular-webfont.eot b/html/simple-shape/docs/fonts/OpenSans-Regular-webfont.eot
new file mode 100644
index 0000000..6bbc3cf
--- /dev/null
+++ b/html/simple-shape/docs/fonts/OpenSans-Regular-webfont.eot
Binary files differdiff --git a/html/simple-shape/docs/fonts/OpenSans-Regular-webfont.svg b/html/simple-shape/docs/fonts/OpenSans-Regular-webfont.svg
new file mode 100644
index 0000000..25a3952
--- /dev/null
+++ b/html/simple-shape/docs/fonts/OpenSans-Regular-webfont.svg
@@ -0,0 +1,1831 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata></metadata>
+<defs>
+<font id="open_sansregular" horiz-adv-x="1171" >
+<font-face units-per-em="2048" ascent="1638" descent="-410" />
+<missing-glyph horiz-adv-x="532" />
+<glyph unicode="&#xfb01;" horiz-adv-x="1212" d="M29 0zM670 967h-279v-967h-166v967h-196v75l196 60v61q0 404 353 404q87 0 204 -35l-43 -133q-96 31 -164 31q-94 0 -139 -62.5t-45 -200.5v-71h279v-129zM1036 0h-166v1096h166v-1096zM856 1393q0 57 28 83.5t70 26.5q40 0 69 -27t29 -83t-29 -83.5t-69 -27.5 q-42 0 -70 27.5t-28 83.5z" />
+<glyph unicode="&#xfb02;" horiz-adv-x="1212" d="M29 0zM670 967h-279v-967h-166v967h-196v75l196 60v61q0 404 353 404q87 0 204 -35l-43 -133q-96 31 -164 31q-94 0 -139 -62.5t-45 -200.5v-71h279v-129zM1036 0h-166v1556h166v-1556z" />
+<glyph unicode="&#xfb03;" horiz-adv-x="1909" d="M29 0zM1358 967h-279v-967h-166v967h-196v75l196 60v61q0 404 353 404q87 0 204 -35l-43 -133q-96 31 -164 31q-94 0 -139 -62.5t-45 -200.5v-71h279v-129zM670 967h-279v-967h-166v967h-196v75l196 60v61q0 404 353 404q87 0 204 -35l-43 -133q-96 31 -164 31 q-94 0 -139 -62.5t-45 -200.5v-71h279v-129zM1731 0h-166v1096h166v-1096zM1551 1393q0 57 28 83.5t70 26.5q40 0 69 -27t29 -83t-29 -83.5t-69 -27.5q-42 0 -70 27.5t-28 83.5z" />
+<glyph unicode="&#xfb04;" horiz-adv-x="1909" d="M29 0zM1358 967h-279v-967h-166v967h-196v75l196 60v61q0 404 353 404q87 0 204 -35l-43 -133q-96 31 -164 31q-94 0 -139 -62.5t-45 -200.5v-71h279v-129zM670 967h-279v-967h-166v967h-196v75l196 60v61q0 404 353 404q87 0 204 -35l-43 -133q-96 31 -164 31 q-94 0 -139 -62.5t-45 -200.5v-71h279v-129zM1731 0h-166v1556h166v-1556z" />
+<glyph horiz-adv-x="2048" />
+<glyph horiz-adv-x="2048" />
+<glyph unicode="&#xd;" horiz-adv-x="1044" />
+<glyph unicode=" "  horiz-adv-x="532" />
+<glyph unicode="&#x09;" horiz-adv-x="532" />
+<glyph unicode="&#xa0;" horiz-adv-x="532" />
+<glyph unicode="!" horiz-adv-x="547" d="M326 403h-105l-51 1059h207zM152 106q0 136 120 136q58 0 89.5 -35t31.5 -101q0 -64 -32 -99.5t-89 -35.5q-52 0 -86 31.5t-34 103.5z" />
+<glyph unicode="&#x22;" horiz-adv-x="821" d="M319 1462l-40 -528h-105l-41 528h186zM688 1462l-41 -528h-104l-41 528h186z" />
+<glyph unicode="#" horiz-adv-x="1323" d="M981 899l-66 -340h283v-129h-307l-84 -430h-137l84 430h-303l-82 -430h-136l80 430h-262v129h287l68 340h-277v127h299l82 436h139l-82 -436h305l84 436h134l-84 -436h264v-127h-289zM475 559h303l66 340h-303z" />
+<glyph unicode="$" d="M1036 449q0 -136 -102 -224.5t-285 -111.5v-232h-129v223q-112 0 -217 17.5t-172 48.5v156q83 -37 191.5 -60.5t197.5 -23.5v440q-205 65 -287.5 151t-82.5 222q0 131 101.5 215t268.5 102v182h129v-180q184 -5 355 -74l-52 -131q-149 59 -303 70v-434q157 -50 235 -97.5 t115 -109t37 -149.5zM866 436q0 72 -44.5 116.5t-172.5 88.5v-389q217 30 217 184zM319 1057q0 -76 45 -122t156 -87v387q-99 -16 -150 -62.5t-51 -115.5z" />
+<glyph unicode="%" horiz-adv-x="1686" d="M242 1026q0 -170 37 -255t120 -85q164 0 164 340q0 338 -164 338q-83 0 -120 -84t-37 -254zM700 1026q0 -228 -76.5 -344.5t-224.5 -116.5q-140 0 -217.5 119t-77.5 342q0 227 74.5 342t220.5 115q145 0 223 -119t78 -338zM1122 440q0 -171 37 -255.5t121 -84.5t124 83.5 t40 256.5q0 171 -40 253.5t-124 82.5t-121 -82.5t-37 -253.5zM1581 440q0 -227 -76.5 -343.5t-224.5 -116.5q-142 0 -218.5 119t-76.5 341q0 227 74.5 342t220.5 115q142 0 221.5 -117.5t79.5 -339.5zM1323 1462l-811 -1462h-147l811 1462h147z" />
+<glyph unicode="&#x26;" horiz-adv-x="1495" d="M414 1171q0 -69 36 -131.5t123 -150.5q129 75 179.5 138.5t50.5 146.5q0 77 -51.5 125.5t-137.5 48.5q-89 0 -144.5 -48t-55.5 -129zM569 129q241 0 400 154l-437 424q-111 -68 -157 -112.5t-68 -95.5t-22 -116q0 -117 77.5 -185.5t206.5 -68.5zM113 379q0 130 69.5 230 t249.5 202q-85 95 -115.5 144t-48.5 102t-18 110q0 150 98 234t273 84q162 0 255 -83.5t93 -232.5q0 -107 -68 -197.5t-225 -183.5l407 -391q56 62 89.5 145.5t56.5 182.5h168q-68 -286 -205 -434l299 -291h-229l-185 178q-118 -106 -240 -152t-272 -46q-215 0 -333.5 106 t-118.5 293z" />
+<glyph unicode="'" horiz-adv-x="453" d="M319 1462l-40 -528h-105l-41 528h186z" />
+<glyph unicode="(" horiz-adv-x="606" d="M82 561q0 265 77.5 496t223.5 405h162q-144 -193 -216.5 -424t-72.5 -475q0 -240 74 -469t213 -418h-160q-147 170 -224 397t-77 488z" />
+<glyph unicode=")" horiz-adv-x="606" d="M524 561q0 -263 -77.5 -490t-223.5 -395h-160q139 188 213 417.5t74 469.5q0 244 -72.5 475t-216.5 424h162q147 -175 224 -406.5t77 -494.5z" />
+<glyph unicode="*" horiz-adv-x="1130" d="M657 1556l-43 -395l398 111l26 -182l-381 -31l248 -326l-172 -94l-176 362l-160 -362l-176 94l242 326l-377 31l29 182l391 -111l-43 395h194z" />
+<glyph unicode="+" d="M653 791h412v-138h-412v-426h-139v426h-410v138h410v428h139v-428z" />
+<glyph unicode="," horiz-adv-x="502" d="M350 238l15 -23q-26 -100 -75 -232.5t-102 -246.5h-125q27 104 59.5 257t45.5 245h182z" />
+<glyph unicode="-" horiz-adv-x="659" d="M84 473v152h491v-152h-491z" />
+<glyph unicode="." horiz-adv-x="545" d="M152 106q0 67 30.5 101.5t87.5 34.5q58 0 90.5 -34.5t32.5 -101.5q0 -65 -33 -100t-90 -35q-51 0 -84.5 31.5t-33.5 103.5z" />
+<glyph unicode="/" horiz-adv-x="752" d="M731 1462l-545 -1462h-166l545 1462h166z" />
+<glyph unicode="0" d="M1069 733q0 -379 -119.5 -566t-365.5 -187q-236 0 -359 191.5t-123 561.5q0 382 119 567t363 185q238 0 361.5 -193t123.5 -559zM270 733q0 -319 75 -464.5t239 -145.5q166 0 240.5 147.5t74.5 462.5t-74.5 461.5t-240.5 146.5q-164 0 -239 -144.5t-75 -463.5z" />
+<glyph unicode="1" d="M715 0h-162v1042q0 130 8 246q-21 -21 -47 -44t-238 -195l-88 114l387 299h140v-1462z" />
+<glyph unicode="2" d="M1061 0h-961v143l385 387q176 178 232 254t84 148t28 155q0 117 -71 185.5t-197 68.5q-91 0 -172.5 -30t-181.5 -109l-88 113q202 168 440 168q206 0 323 -105.5t117 -283.5q0 -139 -78 -275t-292 -344l-320 -313v-8h752v-154z" />
+<glyph unicode="3" d="M1006 1118q0 -140 -78.5 -229t-222.5 -119v-8q176 -22 261 -112t85 -236q0 -209 -145 -321.5t-412 -112.5q-116 0 -212.5 17.5t-187.5 61.5v158q95 -47 202.5 -71.5t203.5 -24.5q379 0 379 297q0 266 -418 266h-144v143h146q171 0 271 75.5t100 209.5q0 107 -73.5 168 t-199.5 61q-96 0 -181 -26t-194 -96l-84 112q90 71 207.5 111.5t247.5 40.5q213 0 331 -97.5t118 -267.5z" />
+<glyph unicode="4" d="M1130 336h-217v-336h-159v336h-711v145l694 989h176v-983h217v-151zM754 487v486q0 143 10 323h-8q-48 -96 -90 -159l-457 -650h545z" />
+<glyph unicode="5" d="M557 893q231 0 363.5 -114.5t132.5 -313.5q0 -227 -144.5 -356t-398.5 -129q-247 0 -377 79v160q70 -45 174 -70.5t205 -25.5q176 0 273.5 83t97.5 240q0 306 -375 306q-95 0 -254 -29l-86 55l55 684h727v-153h-585l-37 -439q115 23 229 23z" />
+<glyph unicode="6" d="M117 625q0 431 167.5 644.5t495.5 213.5q113 0 178 -19v-143q-77 25 -176 25q-235 0 -359 -146.5t-136 -460.5h12q110 172 348 172q197 0 310.5 -119t113.5 -323q0 -228 -124.5 -358.5t-336.5 -130.5q-227 0 -360 170.5t-133 474.5zM608 121q142 0 220.5 89.5t78.5 258.5 q0 145 -73 228t-218 83q-90 0 -165 -37t-119.5 -102t-44.5 -135q0 -103 40 -192t113.5 -141t167.5 -52z" />
+<glyph unicode="7" d="M285 0l606 1309h-797v153h973v-133l-598 -1329h-184z" />
+<glyph unicode="8" d="M584 1483q200 0 317 -93t117 -257q0 -108 -67 -197t-214 -162q178 -85 253 -178.5t75 -216.5q0 -182 -127 -290.5t-348 -108.5q-234 0 -360 102.5t-126 290.5q0 251 306 391q-138 78 -198 168.5t-60 202.5q0 159 117.5 253.5t314.5 94.5zM268 369q0 -120 83.5 -187 t234.5 -67q149 0 232 70t83 192q0 97 -78 172.5t-272 146.5q-149 -64 -216 -141.5t-67 -185.5zM582 1348q-125 0 -196 -60t-71 -160q0 -92 59 -158t218 -132q143 60 202.5 129t59.5 161q0 101 -72.5 160.5t-199.5 59.5z" />
+<glyph unicode="9" d="M1061 838q0 -858 -664 -858q-116 0 -184 20v143q80 -26 182 -26q240 0 362.5 148.5t133.5 455.5h-12q-55 -83 -146 -126.5t-205 -43.5q-194 0 -308 116t-114 324q0 228 127.5 360t335.5 132q149 0 260.5 -76.5t171.5 -223t60 -345.5zM569 1341q-143 0 -221 -92t-78 -256 q0 -144 72 -226.5t219 -82.5q91 0 167.5 37t120.5 101t44 134q0 105 -41 194t-114.5 140t-168.5 51z" />
+<glyph unicode=":" horiz-adv-x="545" d="M152 106q0 67 30.5 101.5t87.5 34.5q58 0 90.5 -34.5t32.5 -101.5q0 -65 -33 -100t-90 -35q-51 0 -84.5 31.5t-33.5 103.5zM152 989q0 135 118 135q123 0 123 -135q0 -65 -33 -100t-90 -35q-51 0 -84.5 31.5t-33.5 103.5z" />
+<glyph unicode=";" horiz-adv-x="545" d="M350 238l15 -23q-26 -100 -75 -232.5t-102 -246.5h-125q27 104 59.5 257t45.5 245h182zM147 989q0 135 119 135q123 0 123 -135q0 -65 -33 -100t-90 -35q-58 0 -88.5 35t-30.5 100z" />
+<glyph unicode="&#x3c;" d="M1065 242l-961 422v98l961 479v-149l-782 -371l782 -328v-151z" />
+<glyph unicode="=" d="M119 858v137h930v-137h-930zM119 449v137h930v-137h-930z" />
+<glyph unicode="&#x3e;" d="M104 393l783 326l-783 373v149l961 -479v-98l-961 -422v151z" />
+<glyph unicode="?" horiz-adv-x="879" d="M289 403v54q0 117 36 192.5t134 159.5q136 115 171.5 173t35.5 140q0 102 -65.5 157.5t-188.5 55.5q-79 0 -154 -18.5t-172 -67.5l-59 135q189 99 395 99q191 0 297 -94t106 -265q0 -73 -19.5 -128.5t-57.5 -105t-164 -159.5q-101 -86 -133.5 -143t-32.5 -152v-33h-129z M240 106q0 136 120 136q58 0 89.5 -35t31.5 -101q0 -64 -32 -99.5t-89 -35.5q-52 0 -86 31.5t-34 103.5z" />
+<glyph unicode="@" horiz-adv-x="1841" d="M1720 729q0 -142 -44 -260t-124 -183t-184 -65q-86 0 -145 52t-70 133h-8q-40 -87 -114.5 -136t-176.5 -49q-150 0 -234.5 102.5t-84.5 278.5q0 204 118 331.5t310 127.5q68 0 154 -12.5t155 -34.5l-25 -470v-22q0 -178 133 -178q91 0 148 107.5t57 279.5q0 181 -74 317 t-210.5 209.5t-313.5 73.5q-223 0 -388 -92.5t-252 -264t-87 -396.5q0 -305 161 -469t464 -164q210 0 436 86v-133q-192 -84 -436 -84q-363 0 -563.5 199.5t-200.5 557.5q0 260 107 463t305 314.5t454 111.5q215 0 382.5 -90.5t259 -257t91.5 -383.5zM686 598 q0 -254 195 -254q207 0 225 313l14 261q-72 20 -157 20q-130 0 -203.5 -90t-73.5 -250z" />
+<glyph unicode="A" horiz-adv-x="1296" d="M1120 0l-182 465h-586l-180 -465h-172l578 1468h143l575 -1468h-176zM885 618l-170 453q-33 86 -68 211q-22 -96 -63 -211l-172 -453h473z" />
+<glyph unicode="B" horiz-adv-x="1327" d="M201 1462h413q291 0 421 -87t130 -275q0 -130 -72.5 -214.5t-211.5 -109.5v-10q333 -57 333 -350q0 -196 -132.5 -306t-370.5 -110h-510v1462zM371 836h280q180 0 259 56.5t79 190.5q0 123 -88 177.5t-280 54.5h-250v-479zM371 692v-547h305q177 0 266.5 68.5t89.5 214.5 q0 136 -91.5 200t-278.5 64h-291z" />
+<glyph unicode="C" horiz-adv-x="1292" d="M827 1331q-241 0 -380.5 -160.5t-139.5 -439.5q0 -287 134.5 -443.5t383.5 -156.5q153 0 349 55v-149q-152 -57 -375 -57q-323 0 -498.5 196t-175.5 557q0 226 84.5 396t244 262t375.5 92q230 0 402 -84l-72 -146q-166 78 -332 78z" />
+<glyph unicode="D" horiz-adv-x="1493" d="M1368 745q0 -362 -196.5 -553.5t-565.5 -191.5h-405v1462h448q341 0 530 -189t189 -528zM1188 739q0 286 -143.5 431t-426.5 145h-247v-1168h207q304 0 457 149.5t153 442.5z" />
+<glyph unicode="E" horiz-adv-x="1139" d="M1016 0h-815v1462h815v-151h-645v-471h606v-150h-606v-538h645v-152z" />
+<glyph unicode="F" horiz-adv-x="1057" d="M371 0h-170v1462h815v-151h-645v-535h606v-151h-606v-625z" />
+<glyph unicode="G" horiz-adv-x="1491" d="M844 766h497v-711q-116 -37 -236 -56t-278 -19q-332 0 -517 197.5t-185 553.5q0 228 91.5 399.5t263.5 262t403 90.5q234 0 436 -86l-66 -150q-198 84 -381 84q-267 0 -417 -159t-150 -441q0 -296 144.5 -449t424.5 -153q152 0 297 35v450h-327v152z" />
+<glyph unicode="H" horiz-adv-x="1511" d="M1311 0h-170v688h-770v-688h-170v1462h170v-622h770v622h170v-1462z" />
+<glyph unicode="I" horiz-adv-x="571" d="M201 0v1462h170v-1462h-170z" />
+<glyph unicode="J" horiz-adv-x="547" d="M-12 -385q-94 0 -148 27v145q71 -20 148 -20q99 0 150.5 60t51.5 173v1462h170v-1448q0 -190 -96 -294.5t-276 -104.5z" />
+<glyph unicode="K" horiz-adv-x="1257" d="M1257 0h-200l-533 709l-153 -136v-573h-170v1462h170v-725l663 725h201l-588 -635z" />
+<glyph unicode="L" horiz-adv-x="1063" d="M201 0v1462h170v-1308h645v-154h-815z" />
+<glyph unicode="M" horiz-adv-x="1849" d="M848 0l-496 1296h-8q14 -154 14 -366v-930h-157v1462h256l463 -1206h8l467 1206h254v-1462h-170v942q0 162 14 352h-8l-500 -1294h-137z" />
+<glyph unicode="N" horiz-adv-x="1544" d="M1343 0h-194l-799 1227h-8q16 -216 16 -396v-831h-157v1462h192l797 -1222h8q-2 27 -9 173.5t-5 209.5v839h159v-1462z" />
+<glyph unicode="O" horiz-adv-x="1595" d="M1470 733q0 -351 -177.5 -552t-493.5 -201q-323 0 -498.5 197.5t-175.5 557.5q0 357 176 553.5t500 196.5q315 0 492 -200t177 -552zM305 733q0 -297 126.5 -450.5t367.5 -153.5q243 0 367 153t124 451q0 295 -123.5 447.5t-365.5 152.5q-243 0 -369.5 -153.5 t-126.5 -446.5z" />
+<glyph unicode="P" horiz-adv-x="1233" d="M1128 1036q0 -222 -151.5 -341.5t-433.5 -119.5h-172v-575h-170v1462h379q548 0 548 -426zM371 721h153q226 0 327 73t101 234q0 145 -95 216t-296 71h-190v-594z" />
+<glyph unicode="Q" horiz-adv-x="1595" d="M1470 733q0 -281 -113 -467t-319 -252l348 -362h-247l-285 330l-55 -2q-323 0 -498.5 197.5t-175.5 557.5q0 357 176 553.5t500 196.5q315 0 492 -200t177 -552zM305 733q0 -297 126.5 -450.5t367.5 -153.5q243 0 367 153t124 451q0 295 -123.5 447.5t-365.5 152.5 q-243 0 -369.5 -153.5t-126.5 -446.5z" />
+<glyph unicode="R" horiz-adv-x="1266" d="M371 608v-608h-170v1462h401q269 0 397.5 -103t128.5 -310q0 -290 -294 -392l397 -657h-201l-354 608h-305zM371 754h233q180 0 264 71.5t84 214.5q0 145 -85.5 209t-274.5 64h-221v-559z" />
+<glyph unicode="S" horiz-adv-x="1124" d="M1026 389q0 -193 -140 -301t-380 -108q-260 0 -400 67v164q90 -38 196 -60t210 -22q170 0 256 64.5t86 179.5q0 76 -30.5 124.5t-102 89.5t-217.5 93q-204 73 -291.5 173t-87.5 261q0 169 127 269t336 100q218 0 401 -80l-53 -148q-181 76 -352 76q-135 0 -211 -58 t-76 -161q0 -76 28 -124.5t94.5 -89t203.5 -89.5q230 -82 316.5 -176t86.5 -244z" />
+<glyph unicode="T" horiz-adv-x="1133" d="M651 0h-170v1311h-463v151h1096v-151h-463v-1311z" />
+<glyph unicode="U" horiz-adv-x="1491" d="M1305 1462v-946q0 -250 -151 -393t-415 -143t-408.5 144t-144.5 396v942h170v-954q0 -183 100 -281t294 -98q185 0 285 98.5t100 282.5v952h170z" />
+<glyph unicode="V" horiz-adv-x="1219" d="M1036 1462h183l-527 -1462h-168l-524 1462h180l336 -946q58 -163 92 -317q36 162 94 323z" />
+<glyph unicode="W" horiz-adv-x="1896" d="M1477 0h-168l-295 979q-21 65 -47 164t-27 119q-22 -132 -70 -289l-286 -973h-168l-389 1462h180l231 -903q48 -190 70 -344q27 183 80 358l262 889h180l275 -897q48 -155 81 -350q19 142 72 346l230 901h180z" />
+<glyph unicode="X" horiz-adv-x="1182" d="M1174 0h-193l-393 643l-400 -643h-180l486 764l-453 698h188l363 -579l366 579h181l-453 -692z" />
+<glyph unicode="Y" horiz-adv-x="1147" d="M573 731l390 731h184l-488 -895v-567h-172v559l-487 903h186z" />
+<glyph unicode="Z" horiz-adv-x="1169" d="M1087 0h-1005v133l776 1176h-752v153h959v-133l-776 -1175h798v-154z" />
+<glyph unicode="[" horiz-adv-x="674" d="M623 -324h-457v1786h457v-141h-289v-1503h289v-142z" />
+<glyph unicode="\" horiz-adv-x="752" d="M186 1462l547 -1462h-166l-544 1462h163z" />
+<glyph unicode="]" horiz-adv-x="674" d="M51 -182h289v1503h-289v141h457v-1786h-457v142z" />
+<glyph unicode="^" horiz-adv-x="1110" d="M49 551l434 922h99l477 -922h-152l-372 745l-334 -745h-152z" />
+<glyph unicode="_" horiz-adv-x="918" d="M922 -315h-926v131h926v-131z" />
+<glyph unicode="`" horiz-adv-x="1182" d="M786 1241h-110q-65 52 -154 148t-129 159v21h203q32 -69 89 -159.5t101 -143.5v-25z" />
+<glyph unicode="a" horiz-adv-x="1139" d="M850 0l-33 156h-8q-82 -103 -163.5 -139.5t-203.5 -36.5q-163 0 -255.5 84t-92.5 239q0 332 531 348l186 6v68q0 129 -55.5 190.5t-177.5 61.5q-137 0 -310 -84l-51 127q81 44 177.5 69t193.5 25q196 0 290.5 -87t94.5 -279v-748h-123zM475 117q155 0 243.5 85t88.5 238 v99l-166 -7q-198 -7 -285.5 -61.5t-87.5 -169.5q0 -90 54.5 -137t152.5 -47z" />
+<glyph unicode="b" horiz-adv-x="1255" d="M686 1114q216 0 335.5 -147.5t119.5 -417.5t-120.5 -419.5t-334.5 -149.5q-107 0 -195.5 39.5t-148.5 121.5h-12l-35 -141h-119v1556h166v-378q0 -127 -8 -228h8q116 164 344 164zM662 975q-170 0 -245 -97.5t-75 -328.5t77 -330.5t247 -99.5q153 0 228 111.5t75 320.5 q0 214 -75 319t-232 105z" />
+<glyph unicode="c" horiz-adv-x="975" d="M614 -20q-238 0 -368.5 146.5t-130.5 414.5q0 275 132.5 425t377.5 150q79 0 158 -17t124 -40l-51 -141q-55 22 -120 36.5t-115 14.5q-334 0 -334 -426q0 -202 81.5 -310t241.5 -108q137 0 281 59v-147q-110 -57 -277 -57z" />
+<glyph unicode="d" horiz-adv-x="1255" d="M922 147h-9q-115 -167 -344 -167q-215 0 -334.5 147t-119.5 418t120 421t334 150q223 0 342 -162h13l-7 79l-4 77v446h166v-1556h-135zM590 119q170 0 246.5 92.5t76.5 298.5v35q0 233 -77.5 332.5t-247.5 99.5q-146 0 -223.5 -113.5t-77.5 -320.5q0 -210 77 -317 t226 -107z" />
+<glyph unicode="e" horiz-adv-x="1149" d="M639 -20q-243 0 -383.5 148t-140.5 411q0 265 130.5 421t350.5 156q206 0 326 -135.5t120 -357.5v-105h-755q5 -193 97.5 -293t260.5 -100q177 0 350 74v-148q-88 -38 -166.5 -54.5t-189.5 -16.5zM594 977q-132 0 -210.5 -86t-92.5 -238h573q0 157 -70 240.5t-200 83.5z " />
+<glyph unicode="f" horiz-adv-x="694" d="M670 967h-279v-967h-166v967h-196v75l196 60v61q0 404 353 404q87 0 204 -35l-43 -133q-96 31 -164 31q-94 0 -139 -62.5t-45 -200.5v-71h279v-129z" />
+<glyph unicode="g" horiz-adv-x="1122" d="M1073 1096v-105l-203 -24q28 -35 50 -91.5t22 -127.5q0 -161 -110 -257t-302 -96q-49 0 -92 8q-106 -56 -106 -141q0 -45 37 -66.5t127 -21.5h194q178 0 273.5 -75t95.5 -218q0 -182 -146 -277.5t-426 -95.5q-215 0 -331.5 80t-116.5 226q0 100 64 173t180 99 q-42 19 -70.5 59t-28.5 93q0 60 32 105t101 87q-85 35 -138.5 119t-53.5 192q0 180 108 277.5t306 97.5q86 0 155 -20h379zM199 -184q0 -89 75 -135t215 -46q209 0 309.5 62.5t100.5 169.5q0 89 -55 123.5t-207 34.5h-199q-113 0 -176 -54t-63 -155zM289 745q0 -115 65 -174 t181 -59q243 0 243 236q0 247 -246 247q-117 0 -180 -63t-63 -187z" />
+<glyph unicode="h" horiz-adv-x="1257" d="M926 0v709q0 134 -61 200t-191 66q-173 0 -252.5 -94t-79.5 -308v-573h-166v1556h166v-471q0 -85 -8 -141h10q49 79 139.5 124.5t206.5 45.5q201 0 301.5 -95.5t100.5 -303.5v-715h-166z" />
+<glyph unicode="i" horiz-adv-x="518" d="M342 0h-166v1096h166v-1096zM162 1393q0 57 28 83.5t70 26.5q40 0 69 -27t29 -83t-29 -83.5t-69 -27.5q-42 0 -70 27.5t-28 83.5z" />
+<glyph unicode="j" horiz-adv-x="518" d="M43 -492q-95 0 -154 25v135q69 -20 136 -20q78 0 114.5 42.5t36.5 129.5v1276h166v-1264q0 -324 -299 -324zM162 1393q0 57 28 83.5t70 26.5q40 0 69 -27t29 -83t-29 -83.5t-69 -27.5q-42 0 -70 27.5t-28 83.5z" />
+<glyph unicode="k" horiz-adv-x="1075" d="M340 561q43 61 131 160l354 375h197l-444 -467l475 -629h-201l-387 518l-125 -108v-410h-164v1556h164v-825q0 -55 -8 -170h8z" />
+<glyph unicode="l" horiz-adv-x="518" d="M342 0h-166v1556h166v-1556z" />
+<glyph unicode="m" horiz-adv-x="1905" d="M1573 0v713q0 131 -56 196.5t-174 65.5q-155 0 -229 -89t-74 -274v-612h-166v713q0 131 -56 196.5t-175 65.5q-156 0 -228.5 -93.5t-72.5 -306.5v-575h-166v1096h135l27 -150h8q47 80 132.5 125t191.5 45q257 0 336 -186h8q49 86 142 136t212 50q186 0 278.5 -95.5 t92.5 -305.5v-715h-166z" />
+<glyph unicode="n" horiz-adv-x="1257" d="M926 0v709q0 134 -61 200t-191 66q-172 0 -252 -93t-80 -307v-575h-166v1096h135l27 -150h8q51 81 143 125.5t205 44.5q198 0 298 -95.5t100 -305.5v-715h-166z" />
+<glyph unicode="o" horiz-adv-x="1237" d="M1122 549q0 -268 -135 -418.5t-373 -150.5q-147 0 -261 69t-176 198t-62 302q0 268 134 417.5t372 149.5q230 0 365.5 -153t135.5 -414zM287 549q0 -210 84 -320t247 -110t247.5 109.5t84.5 320.5q0 209 -84.5 317.5t-249.5 108.5q-163 0 -246 -107t-83 -319z" />
+<glyph unicode="p" horiz-adv-x="1255" d="M686 -20q-107 0 -195.5 39.5t-148.5 121.5h-12q12 -96 12 -182v-451h-166v1588h135l23 -150h8q64 90 149 130t195 40q218 0 336.5 -149t118.5 -418q0 -270 -120.5 -419.5t-334.5 -149.5zM662 975q-168 0 -243 -93t-77 -296v-37q0 -231 77 -330.5t247 -99.5 q142 0 222.5 115t80.5 317q0 205 -80.5 314.5t-226.5 109.5z" />
+<glyph unicode="q" horiz-adv-x="1255" d="M590 119q166 0 242 89t81 300v37q0 230 -78 331t-247 101q-146 0 -223.5 -113.5t-77.5 -320.5t76.5 -315.5t226.5 -108.5zM565 -20q-212 0 -331 149t-119 416q0 269 120 420t334 151q225 0 346 -170h9l24 150h131v-1588h-166v469q0 100 11 170h-13q-115 -167 -346 -167z " />
+<glyph unicode="r" horiz-adv-x="836" d="M676 1116q73 0 131 -12l-23 -154q-68 15 -120 15q-133 0 -227.5 -108t-94.5 -269v-588h-166v1096h137l19 -203h8q61 107 147 165t189 58z" />
+<glyph unicode="s" horiz-adv-x="977" d="M883 299q0 -153 -114 -236t-320 -83q-218 0 -340 69v154q79 -40 169.5 -63t174.5 -23q130 0 200 41.5t70 126.5q0 64 -55.5 109.5t-216.5 107.5q-153 57 -217.5 99.5t-96 96.5t-31.5 129q0 134 109 211.5t299 77.5q177 0 346 -72l-59 -135q-165 68 -299 68 q-118 0 -178 -37t-60 -102q0 -44 22.5 -75t72.5 -59t192 -81q195 -71 263.5 -143t68.5 -181z" />
+<glyph unicode="t" horiz-adv-x="723" d="M530 117q44 0 85 6.5t65 13.5v-127q-27 -13 -79.5 -21.5t-94.5 -8.5q-318 0 -318 335v652h-157v80l157 69l70 234h96v-254h318v-129h-318v-645q0 -99 47 -152t129 -53z" />
+<glyph unicode="u" horiz-adv-x="1257" d="M332 1096v-711q0 -134 61 -200t191 -66q172 0 251.5 94t79.5 307v576h166v-1096h-137l-24 147h-9q-51 -81 -141.5 -124t-206.5 -43q-200 0 -299.5 95t-99.5 304v717h168z" />
+<glyph unicode="v" horiz-adv-x="1026" d="M416 0l-416 1096h178l236 -650q80 -228 94 -296h8q11 53 69.5 219.5t262.5 726.5h178l-416 -1096h-194z" />
+<glyph unicode="w" horiz-adv-x="1593" d="M1071 0l-201 643q-19 59 -71 268h-8q-40 -175 -70 -270l-207 -641h-192l-299 1096h174q106 -413 161.5 -629t63.5 -291h8q11 57 35.5 147.5t42.5 143.5l201 629h180l196 -629q56 -172 76 -289h8q4 36 21.5 111t208.5 807h172l-303 -1096h-197z" />
+<glyph unicode="x" horiz-adv-x="1073" d="M440 561l-381 535h189l289 -420l288 420h187l-381 -535l401 -561h-188l-307 444l-310 -444h-188z" />
+<glyph unicode="y" horiz-adv-x="1032" d="M2 1096h178l240 -625q79 -214 98 -309h8q13 51 54.5 174.5t271.5 759.5h178l-471 -1248q-70 -185 -163.5 -262.5t-229.5 -77.5q-76 0 -150 17v133q55 -12 123 -12q171 0 244 192l61 156z" />
+<glyph unicode="z" horiz-adv-x="958" d="M877 0h-795v113l598 854h-561v129h743v-129l-590 -838h605v-129z" />
+<glyph unicode="{" horiz-adv-x="776" d="M475 12q0 -102 58.5 -148t171.5 -48v-140q-190 2 -294 87t-104 239v303q0 104 -63 148.5t-183 44.5v141q130 2 188 48t58 142v306q0 155 108 241t290 86v-139q-230 -6 -230 -199v-295q0 -215 -223 -254v-12q223 -39 223 -254v-297z" />
+<glyph unicode="|" horiz-adv-x="1128" d="M494 1556h141v-2052h-141v2052z" />
+<glyph unicode="}" horiz-adv-x="776" d="M522 575q-223 39 -223 254v295q0 193 -227 199v139q184 0 289.5 -87t105.5 -240v-306q0 -97 59 -142.5t189 -47.5v-141q-122 0 -185 -44.5t-63 -148.5v-303q0 -153 -102.5 -238.5t-292.5 -87.5v140q111 2 169 48t58 148v297q0 114 55 174t168 80v12z" />
+<glyph unicode="~" d="M338 713q-53 0 -116.5 -33.5t-117.5 -87.5v151q100 109 244 109q68 0 124.5 -14t145.5 -52q66 -28 115 -41.5t96 -13.5q54 0 118 32t118 89v-150q-102 -110 -244 -110q-72 0 -135 16.5t-135 48.5q-75 32 -120 44t-93 12z" />
+<glyph unicode="&#xa1;" horiz-adv-x="547" d="M219 684h105l51 -1057h-207zM393 983q0 -135 -121 -135q-60 0 -90 35.5t-30 99.5q0 63 31.5 99t88.5 36q51 0 86 -32t35 -103z" />
+<glyph unicode="&#xa2;" d="M971 240q-105 -54 -252 -60v-200h-133v206q-203 32 -299.5 168.5t-96.5 386.5q0 508 396 570v172h135v-164q75 -3 146 -19.5t120 -39.5l-49 -140q-133 51 -242 51q-172 0 -253 -105.5t-81 -322.5q0 -212 79.5 -313.5t246.5 -101.5q141 0 283 59v-147z" />
+<glyph unicode="&#xa3;" d="M682 1481q190 0 360 -84l-61 -133q-154 77 -297 77q-123 0 -185.5 -62t-62.5 -202v-295h422v-127h-422v-221q0 -100 -32.5 -168t-106.5 -112h795v-154h-1029v141q205 47 205 291v223h-198v127h198v316q0 178 112 280.5t302 102.5z" />
+<glyph unicode="&#xa4;" d="M184 723q0 122 74 229l-135 140l94 92l135 -133q104 73 234 73q127 0 229 -73l137 133l95 -92l-134 -138q74 -113 74 -231q0 -131 -74 -234l131 -135l-92 -92l-137 133q-102 -71 -229 -71q-134 0 -234 73l-135 -133l-92 92l133 136q-74 107 -74 231zM313 723 q0 -112 78.5 -192t194.5 -80t195 79.5t79 192.5q0 114 -80 195t-194 81q-116 0 -194.5 -82t-78.5 -194z" />
+<glyph unicode="&#xa5;" d="M584 735l379 727h174l-416 -770h262v-127h-317v-170h317v-127h-317v-268h-164v268h-316v127h316v170h-316v127h256l-411 770h178z" />
+<glyph unicode="&#xa6;" horiz-adv-x="1128" d="M494 1556h141v-776h-141v776zM494 281h141v-777h-141v777z" />
+<glyph unicode="&#xa7;" horiz-adv-x="1057" d="M139 809q0 86 43 154.5t121 105.5q-74 40 -116 95.5t-42 140.5q0 121 103.5 190.5t300.5 69.5q94 0 173.5 -14.5t176.5 -53.5l-53 -131q-98 39 -165.5 52.5t-143.5 13.5q-116 0 -174 -29.5t-58 -93.5q0 -60 61.5 -102t215.5 -97q186 -68 261 -143.5t75 -182.5 q0 -90 -41 -160.5t-115 -111.5q153 -81 153 -227q0 -140 -117 -216.5t-329 -76.5q-218 0 -346 65v148q78 -37 175 -59.5t179 -22.5q134 0 204.5 38t70.5 109q0 46 -24 75t-78 58t-169 72q-142 52 -209 97t-100 102t-33 135zM285 829q0 -77 66 -129.5t233 -113.5l49 -19 q137 80 137 191q0 83 -73.5 139t-258.5 113q-68 -19 -110.5 -69t-42.5 -112z" />
+<glyph unicode="&#xa8;" horiz-adv-x="1182" d="M309 1393q0 52 26.5 75t63.5 23q38 0 65.5 -23t27.5 -75q0 -50 -27.5 -74.5t-65.5 -24.5q-37 0 -63.5 24.5t-26.5 74.5zM690 1393q0 52 26.5 75t63.5 23t64.5 -23t27.5 -75q0 -50 -27.5 -74.5t-64.5 -24.5t-63.5 24.5t-26.5 74.5z" />
+<glyph unicode="&#xa9;" horiz-adv-x="1704" d="M893 1059q-125 0 -192.5 -87t-67.5 -241q0 -168 63.5 -249t194.5 -81q86 0 211 45v-124q-48 -20 -98.5 -34t-120.5 -14q-194 0 -298 120.5t-104 336.5q0 209 110.5 332t301.5 123q128 0 246 -60l-58 -118q-108 51 -188 51zM100 731q0 200 100 375t275 276t377 101 q200 0 375 -100t276 -275t101 -377q0 -197 -97 -370t-272 -277t-383 -104q-207 0 -382 103.5t-272.5 276.5t-97.5 371zM205 731q0 -173 87 -323.5t237.5 -237t322.5 -86.5q174 0 323 87t236.5 235.5t87.5 324.5q0 174 -87 323t-235.5 236.5t-324.5 87.5q-174 0 -323 -87 t-236.5 -235.5t-87.5 -324.5z" />
+<glyph unicode="&#xaa;" horiz-adv-x="725" d="M532 801l-24 84q-92 -97 -232 -97q-95 0 -150.5 49.5t-55.5 151.5t77 154.5t242 58.5l117 4v39q0 133 -148 133q-100 0 -204 -51l-43 96q114 56 247 56q130 0 198.5 -52.5t68.5 -173.5v-452h-93zM193 989q0 -100 112 -100q201 0 201 180v49l-98 -4q-112 -4 -163.5 -32.5 t-51.5 -92.5z" />
+<glyph unicode="&#xab;" horiz-adv-x="1018" d="M82 551l342 407l119 -69l-289 -350l289 -351l-119 -71l-342 407v27zM477 551l344 407l117 -69l-287 -350l287 -351l-117 -71l-344 407v27z" />
+<glyph unicode="&#xac;" d="M1065 791v-527h-137v389h-824v138h961z" />
+<glyph unicode="&#xad;" horiz-adv-x="659" d="M84 473zM84 473v152h491v-152h-491z" />
+<glyph unicode="&#xae;" horiz-adv-x="1704" d="M723 762h108q80 0 128.5 41.5t48.5 105.5q0 75 -43 107.5t-136 32.5h-106v-287zM1157 913q0 -80 -42.5 -141.5t-119.5 -91.5l238 -395h-168l-207 354h-135v-354h-148v891h261q166 0 243.5 -65t77.5 -198zM100 731q0 200 100 375t275 276t377 101q200 0 375 -100t276 -275 t101 -377q0 -197 -97 -370t-272 -277t-383 -104q-207 0 -382 103.5t-272.5 276.5t-97.5 371zM205 731q0 -173 87 -323.5t237.5 -237t322.5 -86.5q174 0 323 87t236.5 235.5t87.5 324.5q0 174 -87 323t-235.5 236.5t-324.5 87.5q-174 0 -323 -87t-236.5 -235.5t-87.5 -324.5z " />
+<glyph unicode="&#xaf;" horiz-adv-x="1024" d="M1030 1556h-1036v127h1036v-127z" />
+<glyph unicode="&#xb0;" horiz-adv-x="877" d="M127 1171q0 130 90.5 221t220.5 91t221 -90.5t91 -221.5q0 -84 -41 -155.5t-114 -113.5t-157 -42q-130 0 -220.5 90t-90.5 221zM242 1171q0 -82 58.5 -139t139.5 -57q80 0 137.5 56.5t57.5 139.5q0 84 -56.5 140.5t-138.5 56.5q-83 0 -140.5 -57t-57.5 -140z" />
+<glyph unicode="&#xb1;" d="M104 1zM653 791h412v-138h-412v-426h-139v426h-410v138h410v428h139v-428zM104 1v138h961v-138h-961z" />
+<glyph unicode="&#xb2;" horiz-adv-x="711" d="M653 586h-604v104l236 230q89 86 130 134.5t57.5 86.5t16.5 92q0 68 -40 102.5t-103 34.5q-52 0 -101 -19t-118 -69l-66 88q131 111 283 111q132 0 205.5 -65t73.5 -177q0 -80 -44.5 -155.5t-191.5 -213.5l-174 -165h440v-119z" />
+<glyph unicode="&#xb3;" horiz-adv-x="711" d="M627 1255q0 -80 -41 -131.5t-109 -74.5q176 -47 176 -209q0 -128 -92 -199.5t-260 -71.5q-152 0 -268 56v123q147 -68 270 -68q211 0 211 162q0 145 -231 145h-117v107h119q103 0 152.5 39.5t49.5 107.5q0 61 -40 95t-107 34q-66 0 -122 -21.5t-112 -56.5l-69 90 q63 45 133 72t164 27q136 0 214.5 -59.5t78.5 -166.5z" />
+<glyph unicode="&#xb4;" horiz-adv-x="1182" d="M393 1266q48 62 103.5 150t87.5 153h202v-21q-44 -65 -131 -160t-151 -147h-111v25z" />
+<glyph unicode="&#xb5;" horiz-adv-x="1268" d="M342 381q0 -262 254 -262q171 0 250.5 94.5t79.5 306.5v576h166v-1096h-136l-26 147h-10q-111 -167 -340 -167q-150 0 -238 92h-10q10 -84 10 -244v-320h-166v1588h166v-715z" />
+<glyph unicode="&#xb6;" horiz-adv-x="1341" d="M1120 -260h-114v1712h-213v-1712h-115v819q-62 -18 -146 -18q-216 0 -317.5 125t-101.5 376q0 260 109 387t341 127h557v-1816z" />
+<glyph unicode="&#xb7;" horiz-adv-x="545" d="M152 723q0 66 31 100.5t87 34.5q58 0 90.5 -34.5t32.5 -100.5q0 -65 -33 -100t-90 -35q-51 0 -84.5 31.5t-33.5 103.5z" />
+<glyph unicode="&#xb8;" horiz-adv-x="465" d="M436 -289q0 -97 -76.5 -150t-226.5 -53q-51 0 -96 9v106q45 -8 104 -8q79 0 119.5 20t40.5 74q0 43 -39.5 69.5t-148.5 43.5l88 178h110l-55 -115q180 -39 180 -174z" />
+<glyph unicode="&#xb9;" horiz-adv-x="711" d="M338 1462h143v-876h-133v579q0 91 6 181q-22 -22 -49 -44.5t-162 -117.5l-67 96z" />
+<glyph unicode="&#xba;" horiz-adv-x="768" d="M702 1135q0 -164 -85.5 -255.5t-235.5 -91.5q-146 0 -230.5 93t-84.5 254q0 163 84 253.5t235 90.5q152 0 234.5 -91t82.5 -253zM188 1135q0 -122 45.5 -183t149.5 -61q105 0 151 61t46 183q0 123 -46 182t-151 59q-103 0 -149 -59t-46 -182z" />
+<glyph unicode="&#xbb;" horiz-adv-x="1018" d="M936 524l-344 -407l-117 71l287 351l-287 350l117 69l344 -407v-27zM541 524l-344 -407l-117 71l287 351l-287 350l117 69l344 -407v-27z" />
+<glyph unicode="&#xbc;" horiz-adv-x="1597" d="M75 0zM1298 1462l-903 -1462h-143l903 1462h143zM337 1462h143v-876h-133v579q0 91 6 181q-22 -22 -49 -44.5t-162 -117.5l-67 96zM1489 203h-125v-202h-145v202h-402v101l408 579h139v-563h125v-117zM1219 320v195q0 134 6 209q-5 -12 -17 -31.5t-27 -42l-30 -45 t-26 -39.5l-168 -246h262z" />
+<glyph unicode="&#xbd;" horiz-adv-x="1597" d="M46 0zM1230 1462l-903 -1462h-143l903 1462h143zM308 1462h143v-876h-133v579q0 91 6 181q-22 -22 -49 -44.5t-162 -117.5l-67 96zM1499 1h-604v104l236 230q89 86 130 134.5t57.5 86.5t16.5 92q0 68 -40 102.5t-103 34.5q-52 0 -101 -19t-118 -69l-66 88 q131 111 283 111q132 0 205.5 -65t73.5 -177q0 -80 -44.5 -155.5t-191.5 -213.5l-174 -165h440v-119z" />
+<glyph unicode="&#xbe;" horiz-adv-x="1597" d="M26 0zM620 1255q0 -80 -41 -131.5t-109 -74.5q176 -47 176 -209q0 -128 -92 -199.5t-260 -71.5q-152 0 -268 56v123q147 -68 270 -68q211 0 211 162q0 145 -231 145h-117v107h119q103 0 152.5 39.5t49.5 107.5q0 61 -40 95t-107 34q-66 0 -122 -21.5t-112 -56.5l-69 90 q63 45 133 72t164 27q136 0 214.5 -59.5t78.5 -166.5zM1390 1462l-903 -1462h-143l903 1462h143zM1569 203h-125v-202h-145v202h-402v101l408 579h139v-563h125v-117zM1299 320v195q0 134 6 209q-5 -12 -17 -31.5t-27 -42l-30 -45t-26 -39.5l-168 -246h262z" />
+<glyph unicode="&#xbf;" horiz-adv-x="879" d="M590 684v-51q0 -122 -37.5 -196t-134.5 -158q-121 -106 -151.5 -143.5t-43 -76t-12.5 -94.5q0 -100 66 -156.5t188 -56.5q80 0 155 19t173 67l59 -135q-197 -96 -395 -96q-190 0 -298 93t-108 263q0 70 17.5 122.5t49.5 97t76.5 85.5t98.5 88q101 88 133.5 146t32.5 151 v31h131zM639 983q0 -135 -121 -135q-59 0 -90 34.5t-31 100.5q0 64 33 99.5t88 35.5q51 0 86 -32t35 -103z" />
+<glyph unicode="&#xc0;" horiz-adv-x="1296" d="M0 0zM1120 0l-182 465h-586l-180 -465h-172l578 1468h143l575 -1468h-176zM885 618l-170 453q-33 86 -68 211q-22 -96 -63 -211l-172 -453h473zM724 1579h-110q-65 52 -154 148t-129 159v21h203q32 -69 89 -159.5t101 -143.5v-25z" />
+<glyph unicode="&#xc1;" horiz-adv-x="1296" d="M0 0zM1120 0l-182 465h-586l-180 -465h-172l578 1468h143l575 -1468h-176zM885 618l-170 453q-33 86 -68 211q-22 -96 -63 -211l-172 -453h473zM526 1604q48 62 103.5 150t87.5 153h202v-21q-44 -65 -131 -160t-151 -147h-111v25z" />
+<glyph unicode="&#xc2;" horiz-adv-x="1296" d="M0 0zM1120 0l-182 465h-586l-180 -465h-172l578 1468h143l575 -1468h-176zM885 618l-170 453q-33 86 -68 211q-22 -96 -63 -211l-172 -453h473zM303 1602q127 136 178 200t74 105h166q22 -42 76.5 -108.5t179.5 -196.5v-23h-119q-88 55 -221 186q-136 -134 -219 -186 h-115v23z" />
+<glyph unicode="&#xc3;" horiz-adv-x="1296" d="M0 0zM1120 0l-182 465h-586l-180 -465h-172l578 1468h143l575 -1468h-176zM885 618l-170 453q-33 86 -68 211q-22 -96 -63 -211l-172 -453h473zM792 1581q-43 0 -84 18.5t-80.5 41t-76 41t-70.5 18.5q-50 0 -75.5 -30t-39.5 -91h-98q13 121 70.5 189.5t148.5 68.5 q46 0 89 -18.5t82 -41t75 -41t68 -18.5q49 0 73 29.5t39 91.5h99q-13 -121 -69.5 -189.5t-150.5 -68.5z" />
+<glyph unicode="&#xc4;" horiz-adv-x="1296" d="M0 0zM1120 0l-182 465h-586l-180 -465h-172l578 1468h143l575 -1468h-176zM885 618l-170 453q-33 86 -68 211q-22 -96 -63 -211l-172 -453h473zM364 1731q0 52 26.5 75t63.5 23q38 0 65.5 -23t27.5 -75q0 -50 -27.5 -74.5t-65.5 -24.5q-37 0 -63.5 24.5t-26.5 74.5z M745 1731q0 52 26.5 75t63.5 23t64.5 -23t27.5 -75q0 -50 -27.5 -74.5t-64.5 -24.5t-63.5 24.5t-26.5 74.5z" />
+<glyph unicode="&#xc5;" horiz-adv-x="1296" d="M0 0zM1120 0l-182 465h-586l-180 -465h-172l578 1468h143l575 -1468h-176zM885 618l-170 453q-33 86 -68 211q-22 -96 -63 -211l-172 -453h473zM870 1587q0 -98 -61.5 -157.5t-163.5 -59.5q-101 0 -161 58.5t-60 156.5t60.5 155.5t160.5 57.5q101 0 163 -59.5t62 -151.5z M762 1585q0 56 -33 86.5t-84 30.5t-84 -30.5t-33 -86.5t30 -86.5t87 -30.5q52 0 84.5 30.5t32.5 86.5z" />
+<glyph unicode="&#xc6;" horiz-adv-x="1788" d="M1665 0h-750v465h-514l-227 -465h-176l698 1462h969v-151h-580v-471h541v-150h-541v-538h580v-152zM469 618h446v693h-118z" />
+<glyph unicode="&#xc7;" horiz-adv-x="1292" d="M125 0zM827 1331q-241 0 -380.5 -160.5t-139.5 -439.5q0 -287 134.5 -443.5t383.5 -156.5q153 0 349 55v-149q-152 -57 -375 -57q-323 0 -498.5 196t-175.5 557q0 226 84.5 396t244 262t375.5 92q230 0 402 -84l-72 -146q-166 78 -332 78zM950 -289q0 -97 -76.5 -150 t-226.5 -53q-51 0 -96 9v106q45 -8 104 -8q79 0 119.5 20t40.5 74q0 43 -39.5 69.5t-148.5 43.5l88 178h110l-55 -115q180 -39 180 -174z" />
+<glyph unicode="&#xc8;" horiz-adv-x="1139" d="M201 0zM1016 0h-815v1462h815v-151h-645v-471h606v-150h-606v-538h645v-152zM713 1579h-110q-65 52 -154 148t-129 159v21h203q32 -69 89 -159.5t101 -143.5v-25z" />
+<glyph unicode="&#xc9;" horiz-adv-x="1139" d="M201 0zM1016 0h-815v1462h815v-151h-645v-471h606v-150h-606v-538h645v-152zM456 1604q48 62 103.5 150t87.5 153h202v-21q-44 -65 -131 -160t-151 -147h-111v25z" />
+<glyph unicode="&#xca;" horiz-adv-x="1139" d="M201 0zM1016 0h-815v1462h815v-151h-645v-471h606v-150h-606v-538h645v-152zM263 1602q127 136 178 200t74 105h166q22 -42 76.5 -108.5t179.5 -196.5v-23h-119q-88 55 -221 186q-136 -134 -219 -186h-115v23z" />
+<glyph unicode="&#xcb;" horiz-adv-x="1139" d="M201 0zM1016 0h-815v1462h815v-151h-645v-471h606v-150h-606v-538h645v-152zM327 1731q0 52 26.5 75t63.5 23q38 0 65.5 -23t27.5 -75q0 -50 -27.5 -74.5t-65.5 -24.5q-37 0 -63.5 24.5t-26.5 74.5zM708 1731q0 52 26.5 75t63.5 23t64.5 -23t27.5 -75q0 -50 -27.5 -74.5 t-64.5 -24.5t-63.5 24.5t-26.5 74.5z" />
+<glyph unicode="&#xcc;" horiz-adv-x="571" d="M5 0zM201 0v1462h170v-1462h-170zM398 1579h-110q-65 52 -154 148t-129 159v21h203q32 -69 89 -159.5t101 -143.5v-25z" />
+<glyph unicode="&#xcd;" horiz-adv-x="571" d="M179 0zM201 0v1462h170v-1462h-170zM179 1604q48 62 103.5 150t87.5 153h202v-21q-44 -65 -131 -160t-151 -147h-111v25z" />
+<glyph unicode="&#xce;" horiz-adv-x="571" d="M0 0zM201 0v1462h170v-1462h-170zM-57 1602q127 136 178 200t74 105h166q22 -42 76.5 -108.5t179.5 -196.5v-23h-119q-88 55 -221 186q-136 -134 -219 -186h-115v23z" />
+<glyph unicode="&#xcf;" horiz-adv-x="571" d="M5 0zM201 0v1462h170v-1462h-170zM5 1731q0 52 26.5 75t63.5 23q38 0 65.5 -23t27.5 -75q0 -50 -27.5 -74.5t-65.5 -24.5q-37 0 -63.5 24.5t-26.5 74.5zM386 1731q0 52 26.5 75t63.5 23t64.5 -23t27.5 -75q0 -50 -27.5 -74.5t-64.5 -24.5t-63.5 24.5t-26.5 74.5z" />
+<glyph unicode="&#xd0;" horiz-adv-x="1479" d="M1352 745q0 -362 -196.5 -553.5t-565.5 -191.5h-389v649h-154v150h154v663h434q337 0 527 -187.5t190 -529.5zM1171 739q0 576 -569 576h-231v-516h379v-150h-379v-502h190q610 0 610 592z" />
+<glyph unicode="&#xd1;" horiz-adv-x="1544" d="M201 0zM1343 0h-194l-799 1227h-8q16 -216 16 -396v-831h-157v1462h192l797 -1222h8q-2 27 -9 173.5t-5 209.5v839h159v-1462zM935 1581q-43 0 -84 18.5t-80.5 41t-76 41t-70.5 18.5q-50 0 -75.5 -30t-39.5 -91h-98q13 121 70.5 189.5t148.5 68.5q46 0 89 -18.5t82 -41 t75 -41t68 -18.5q49 0 73 29.5t39 91.5h99q-13 -121 -69.5 -189.5t-150.5 -68.5z" />
+<glyph unicode="&#xd2;" horiz-adv-x="1595" d="M125 0zM1470 733q0 -351 -177.5 -552t-493.5 -201q-323 0 -498.5 197.5t-175.5 557.5q0 357 176 553.5t500 196.5q315 0 492 -200t177 -552zM305 733q0 -297 126.5 -450.5t367.5 -153.5q243 0 367 153t124 451q0 295 -123.5 447.5t-365.5 152.5q-243 0 -369.5 -153.5 t-126.5 -446.5zM907 1579h-110q-65 52 -154 148t-129 159v21h203q32 -69 89 -159.5t101 -143.5v-25z" />
+<glyph unicode="&#xd3;" horiz-adv-x="1595" d="M125 0zM1470 733q0 -351 -177.5 -552t-493.5 -201q-323 0 -498.5 197.5t-175.5 557.5q0 357 176 553.5t500 196.5q315 0 492 -200t177 -552zM305 733q0 -297 126.5 -450.5t367.5 -153.5q243 0 367 153t124 451q0 295 -123.5 447.5t-365.5 152.5q-243 0 -369.5 -153.5 t-126.5 -446.5zM659 1604q48 62 103.5 150t87.5 153h202v-21q-44 -65 -131 -160t-151 -147h-111v25z" />
+<glyph unicode="&#xd4;" horiz-adv-x="1595" d="M125 0zM1470 733q0 -351 -177.5 -552t-493.5 -201q-323 0 -498.5 197.5t-175.5 557.5q0 357 176 553.5t500 196.5q315 0 492 -200t177 -552zM305 733q0 -297 126.5 -450.5t367.5 -153.5q243 0 367 153t124 451q0 295 -123.5 447.5t-365.5 152.5q-243 0 -369.5 -153.5 t-126.5 -446.5zM448 1602q127 136 178 200t74 105h166q22 -42 76.5 -108.5t179.5 -196.5v-23h-119q-88 55 -221 186q-136 -134 -219 -186h-115v23z" />
+<glyph unicode="&#xd5;" horiz-adv-x="1595" d="M125 0zM1470 733q0 -351 -177.5 -552t-493.5 -201q-323 0 -498.5 197.5t-175.5 557.5q0 357 176 553.5t500 196.5q315 0 492 -200t177 -552zM305 733q0 -297 126.5 -450.5t367.5 -153.5q243 0 367 153t124 451q0 295 -123.5 447.5t-365.5 152.5q-243 0 -369.5 -153.5 t-126.5 -446.5zM942 1581q-43 0 -84 18.5t-80.5 41t-76 41t-70.5 18.5q-50 0 -75.5 -30t-39.5 -91h-98q13 121 70.5 189.5t148.5 68.5q46 0 89 -18.5t82 -41t75 -41t68 -18.5q49 0 73 29.5t39 91.5h99q-13 -121 -69.5 -189.5t-150.5 -68.5z" />
+<glyph unicode="&#xd6;" horiz-adv-x="1595" d="M125 0zM1470 733q0 -351 -177.5 -552t-493.5 -201q-323 0 -498.5 197.5t-175.5 557.5q0 357 176 553.5t500 196.5q315 0 492 -200t177 -552zM305 733q0 -297 126.5 -450.5t367.5 -153.5q243 0 367 153t124 451q0 295 -123.5 447.5t-365.5 152.5q-243 0 -369.5 -153.5 t-126.5 -446.5zM522 1731q0 52 26.5 75t63.5 23q38 0 65.5 -23t27.5 -75q0 -50 -27.5 -74.5t-65.5 -24.5q-37 0 -63.5 24.5t-26.5 74.5zM903 1731q0 52 26.5 75t63.5 23t64.5 -23t27.5 -75q0 -50 -27.5 -74.5t-64.5 -24.5t-63.5 24.5t-26.5 74.5z" />
+<glyph unicode="&#xd7;" d="M940 1176l96 -99l-352 -354l350 -352l-96 -99l-354 351l-348 -351l-101 99l350 352l-352 352l100 101l353 -355z" />
+<glyph unicode="&#xd8;" horiz-adv-x="1595" d="M1470 733q0 -351 -177.5 -552t-493.5 -201q-235 0 -383 100l-101 -141l-120 79l108 154q-178 198 -178 563q0 357 176 553.5t500 196.5q209 0 366 -94l97 135l120 -80l-106 -148q192 -202 192 -565zM1290 733q0 272 -110 426l-672 -948q115 -82 291 -82q243 0 367 153 t124 451zM305 733q0 -262 101 -416l669 943q-106 73 -274 73q-243 0 -369.5 -153.5t-126.5 -446.5z" />
+<glyph unicode="&#xd9;" horiz-adv-x="1491" d="M186 0zM1305 1462v-946q0 -250 -151 -393t-415 -143t-408.5 144t-144.5 396v942h170v-954q0 -183 100 -281t294 -98q185 0 285 98.5t100 282.5v952h170zM856 1579h-110q-65 52 -154 148t-129 159v21h203q32 -69 89 -159.5t101 -143.5v-25z" />
+<glyph unicode="&#xda;" horiz-adv-x="1491" d="M186 0zM1305 1462v-946q0 -250 -151 -393t-415 -143t-408.5 144t-144.5 396v942h170v-954q0 -183 100 -281t294 -98q185 0 285 98.5t100 282.5v952h170zM600 1604q48 62 103.5 150t87.5 153h202v-21q-44 -65 -131 -160t-151 -147h-111v25z" />
+<glyph unicode="&#xdb;" horiz-adv-x="1491" d="M186 0zM1305 1462v-946q0 -250 -151 -393t-415 -143t-408.5 144t-144.5 396v942h170v-954q0 -183 100 -281t294 -98q185 0 285 98.5t100 282.5v952h170zM393 1602q127 136 178 200t74 105h166q22 -42 76.5 -108.5t179.5 -196.5v-23h-119q-88 55 -221 186 q-136 -134 -219 -186h-115v23z" />
+<glyph unicode="&#xdc;" horiz-adv-x="1491" d="M186 0zM1305 1462v-946q0 -250 -151 -393t-415 -143t-408.5 144t-144.5 396v942h170v-954q0 -183 100 -281t294 -98q185 0 285 98.5t100 282.5v952h170zM461 1731q0 52 26.5 75t63.5 23q38 0 65.5 -23t27.5 -75q0 -50 -27.5 -74.5t-65.5 -24.5q-37 0 -63.5 24.5 t-26.5 74.5zM842 1731q0 52 26.5 75t63.5 23t64.5 -23t27.5 -75q0 -50 -27.5 -74.5t-64.5 -24.5t-63.5 24.5t-26.5 74.5z" />
+<glyph unicode="&#xdd;" horiz-adv-x="1147" d="M0 0zM573 731l390 731h184l-488 -895v-567h-172v559l-487 903h186zM442 1604q48 62 103.5 150t87.5 153h202v-21q-44 -65 -131 -160t-151 -147h-111v25z" />
+<glyph unicode="&#xde;" horiz-adv-x="1251" d="M1145 784q0 -227 -151.5 -346t-438.5 -119h-184v-319h-170v1462h170v-256h215q281 0 420 -103.5t139 -318.5zM371 465h168q226 0 327 71.5t101 235.5q0 149 -95 218t-297 69h-204v-594z" />
+<glyph unicode="&#xdf;" horiz-adv-x="1274" d="M1049 1266q0 -135 -143 -250q-88 -70 -116 -103.5t-28 -66.5q0 -32 13.5 -53t49 -49.5t113.5 -79.5q140 -95 191 -173.5t51 -179.5q0 -160 -97 -245.5t-276 -85.5q-188 0 -295 69v154q63 -39 141 -62.5t150 -23.5q215 0 215 182q0 75 -41.5 128.5t-151.5 123.5 q-127 82 -175 143.5t-48 145.5q0 63 34.5 116t105.5 106q75 57 107 102t32 98q0 80 -68 122.5t-195 42.5q-276 0 -276 -223v-1204h-166v1202q0 178 110 271.5t332 93.5q206 0 318.5 -78.5t112.5 -222.5z" />
+<glyph unicode="&#xe0;" horiz-adv-x="1139" d="M94 0zM850 0l-33 156h-8q-82 -103 -163.5 -139.5t-203.5 -36.5q-163 0 -255.5 84t-92.5 239q0 332 531 348l186 6v68q0 129 -55.5 190.5t-177.5 61.5q-137 0 -310 -84l-51 127q81 44 177.5 69t193.5 25q196 0 290.5 -87t94.5 -279v-748h-123zM475 117q155 0 243.5 85 t88.5 238v99l-166 -7q-198 -7 -285.5 -61.5t-87.5 -169.5q0 -90 54.5 -137t152.5 -47zM672 1241h-110q-65 52 -154 148t-129 159v21h203q32 -69 89 -159.5t101 -143.5v-25z" />
+<glyph unicode="&#xe1;" horiz-adv-x="1139" d="M94 0zM850 0l-33 156h-8q-82 -103 -163.5 -139.5t-203.5 -36.5q-163 0 -255.5 84t-92.5 239q0 332 531 348l186 6v68q0 129 -55.5 190.5t-177.5 61.5q-137 0 -310 -84l-51 127q81 44 177.5 69t193.5 25q196 0 290.5 -87t94.5 -279v-748h-123zM475 117q155 0 243.5 85 t88.5 238v99l-166 -7q-198 -7 -285.5 -61.5t-87.5 -169.5q0 -90 54.5 -137t152.5 -47zM436 1266q48 62 103.5 150t87.5 153h202v-21q-44 -65 -131 -160t-151 -147h-111v25z" />
+<glyph unicode="&#xe2;" horiz-adv-x="1139" d="M94 0zM850 0l-33 156h-8q-82 -103 -163.5 -139.5t-203.5 -36.5q-163 0 -255.5 84t-92.5 239q0 332 531 348l186 6v68q0 129 -55.5 190.5t-177.5 61.5q-137 0 -310 -84l-51 127q81 44 177.5 69t193.5 25q196 0 290.5 -87t94.5 -279v-748h-123zM475 117q155 0 243.5 85 t88.5 238v99l-166 -7q-198 -7 -285.5 -61.5t-87.5 -169.5q0 -90 54.5 -137t152.5 -47zM228 1264q127 136 178 200t74 105h166q22 -42 76.5 -108.5t179.5 -196.5v-23h-119q-88 55 -221 186q-136 -134 -219 -186h-115v23z" />
+<glyph unicode="&#xe3;" horiz-adv-x="1139" d="M94 0zM850 0l-33 156h-8q-82 -103 -163.5 -139.5t-203.5 -36.5q-163 0 -255.5 84t-92.5 239q0 332 531 348l186 6v68q0 129 -55.5 190.5t-177.5 61.5q-137 0 -310 -84l-51 127q81 44 177.5 69t193.5 25q196 0 290.5 -87t94.5 -279v-748h-123zM475 117q155 0 243.5 85 t88.5 238v99l-166 -7q-198 -7 -285.5 -61.5t-87.5 -169.5q0 -90 54.5 -137t152.5 -47zM721 1243q-43 0 -84 18.5t-80.5 41t-76 41t-70.5 18.5q-50 0 -75.5 -30t-39.5 -91h-98q13 121 70.5 189.5t148.5 68.5q46 0 89 -18.5t82 -41t75 -41t68 -18.5q49 0 73 29.5t39 91.5h99 q-13 -121 -69.5 -189.5t-150.5 -68.5z" />
+<glyph unicode="&#xe4;" horiz-adv-x="1139" d="M94 0zM850 0l-33 156h-8q-82 -103 -163.5 -139.5t-203.5 -36.5q-163 0 -255.5 84t-92.5 239q0 332 531 348l186 6v68q0 129 -55.5 190.5t-177.5 61.5q-137 0 -310 -84l-51 127q81 44 177.5 69t193.5 25q196 0 290.5 -87t94.5 -279v-748h-123zM475 117q155 0 243.5 85 t88.5 238v99l-166 -7q-198 -7 -285.5 -61.5t-87.5 -169.5q0 -90 54.5 -137t152.5 -47zM279 1393q0 52 26.5 75t63.5 23q38 0 65.5 -23t27.5 -75q0 -50 -27.5 -74.5t-65.5 -24.5q-37 0 -63.5 24.5t-26.5 74.5zM660 1393q0 52 26.5 75t63.5 23t64.5 -23t27.5 -75 q0 -50 -27.5 -74.5t-64.5 -24.5t-63.5 24.5t-26.5 74.5z" />
+<glyph unicode="&#xe5;" horiz-adv-x="1139" d="M94 0zM850 0l-33 156h-8q-82 -103 -163.5 -139.5t-203.5 -36.5q-163 0 -255.5 84t-92.5 239q0 332 531 348l186 6v68q0 129 -55.5 190.5t-177.5 61.5q-137 0 -310 -84l-51 127q81 44 177.5 69t193.5 25q196 0 290.5 -87t94.5 -279v-748h-123zM475 117q155 0 243.5 85 t88.5 238v99l-166 -7q-198 -7 -285.5 -61.5t-87.5 -169.5q0 -90 54.5 -137t152.5 -47zM804 1458q0 -98 -61.5 -157.5t-163.5 -59.5q-101 0 -161 58.5t-60 156.5t60.5 155.5t160.5 57.5q101 0 163 -59.5t62 -151.5zM696 1456q0 56 -33 86.5t-84 30.5t-84 -30.5t-33 -86.5 t30 -86.5t87 -30.5q52 0 84.5 30.5t32.5 86.5z" />
+<glyph unicode="&#xe6;" horiz-adv-x="1757" d="M94 303q0 161 124 250.5t378 97.5l184 6v68q0 129 -58 190.5t-177 61.5q-144 0 -307 -84l-52 127q74 41 173.5 67.5t197.5 26.5q130 0 212.5 -43.5t123.5 -138.5q53 88 138.5 136t195.5 48q192 0 308 -133.5t116 -355.5v-107h-701q8 -395 322 -395q91 0 169.5 17.5 t162.5 56.5v-148q-86 -38 -160.5 -54.5t-175.5 -16.5q-289 0 -414 233q-81 -127 -179.5 -180t-232.5 -53q-163 0 -255.5 85t-92.5 238zM268 301q0 -95 53.5 -139.5t141.5 -44.5q145 0 229 84.5t84 238.5v99l-158 -7q-186 -8 -268 -62.5t-82 -168.5zM1225 977 q-121 0 -190.5 -83t-80.5 -241h519q0 156 -64 240t-184 84z" />
+<glyph unicode="&#xe7;" horiz-adv-x="975" d="M115 0zM614 -20q-238 0 -368.5 146.5t-130.5 414.5q0 275 132.5 425t377.5 150q79 0 158 -17t124 -40l-51 -141q-55 22 -120 36.5t-115 14.5q-334 0 -334 -426q0 -202 81.5 -310t241.5 -108q137 0 281 59v-147q-110 -57 -277 -57zM762 -289q0 -97 -76.5 -150t-226.5 -53 q-51 0 -96 9v106q45 -8 104 -8q79 0 119.5 20t40.5 74q0 43 -39.5 69.5t-148.5 43.5l88 178h110l-55 -115q180 -39 180 -174z" />
+<glyph unicode="&#xe8;" horiz-adv-x="1149" d="M115 0zM639 -20q-243 0 -383.5 148t-140.5 411q0 265 130.5 421t350.5 156q206 0 326 -135.5t120 -357.5v-105h-755q5 -193 97.5 -293t260.5 -100q177 0 350 74v-148q-88 -38 -166.5 -54.5t-189.5 -16.5zM594 977q-132 0 -210.5 -86t-92.5 -238h573q0 157 -70 240.5 t-200 83.5zM711 1241h-110q-65 52 -154 148t-129 159v21h203q32 -69 89 -159.5t101 -143.5v-25z" />
+<glyph unicode="&#xe9;" horiz-adv-x="1149" d="M115 0zM639 -20q-243 0 -383.5 148t-140.5 411q0 265 130.5 421t350.5 156q206 0 326 -135.5t120 -357.5v-105h-755q5 -193 97.5 -293t260.5 -100q177 0 350 74v-148q-88 -38 -166.5 -54.5t-189.5 -16.5zM594 977q-132 0 -210.5 -86t-92.5 -238h573q0 157 -70 240.5 t-200 83.5zM471 1266q48 62 103.5 150t87.5 153h202v-21q-44 -65 -131 -160t-151 -147h-111v25z" />
+<glyph unicode="&#xea;" horiz-adv-x="1149" d="M115 0zM639 -20q-243 0 -383.5 148t-140.5 411q0 265 130.5 421t350.5 156q206 0 326 -135.5t120 -357.5v-105h-755q5 -193 97.5 -293t260.5 -100q177 0 350 74v-148q-88 -38 -166.5 -54.5t-189.5 -16.5zM594 977q-132 0 -210.5 -86t-92.5 -238h573q0 157 -70 240.5 t-200 83.5zM259 1264q127 136 178 200t74 105h166q22 -42 76.5 -108.5t179.5 -196.5v-23h-119q-88 55 -221 186q-136 -134 -219 -186h-115v23z" />
+<glyph unicode="&#xeb;" horiz-adv-x="1149" d="M115 0zM639 -20q-243 0 -383.5 148t-140.5 411q0 265 130.5 421t350.5 156q206 0 326 -135.5t120 -357.5v-105h-755q5 -193 97.5 -293t260.5 -100q177 0 350 74v-148q-88 -38 -166.5 -54.5t-189.5 -16.5zM594 977q-132 0 -210.5 -86t-92.5 -238h573q0 157 -70 240.5 t-200 83.5zM319 1393q0 52 26.5 75t63.5 23q38 0 65.5 -23t27.5 -75q0 -50 -27.5 -74.5t-65.5 -24.5q-37 0 -63.5 24.5t-26.5 74.5zM700 1393q0 52 26.5 75t63.5 23t64.5 -23t27.5 -75q0 -50 -27.5 -74.5t-64.5 -24.5t-63.5 24.5t-26.5 74.5z" />
+<glyph unicode="&#xec;" horiz-adv-x="518" d="M0 0zM342 0h-166v1096h166v-1096zM355 1241h-110q-65 52 -154 148t-129 159v21h203q32 -69 89 -159.5t101 -143.5v-25z" />
+<glyph unicode="&#xed;" horiz-adv-x="518" d="M169 0zM342 0h-166v1096h166v-1096zM169 1266q48 62 103.5 150t87.5 153h202v-21q-44 -65 -131 -160t-151 -147h-111v25z" />
+<glyph unicode="&#xee;" horiz-adv-x="518" d="M0 0zM342 0h-166v1096h166v-1096zM-77 1264q127 136 178 200t74 105h166q22 -42 76.5 -108.5t179.5 -196.5v-23h-119q-88 55 -221 186q-136 -134 -219 -186h-115v23z" />
+<glyph unicode="&#xef;" horiz-adv-x="518" d="M0 0zM342 0h-166v1096h166v-1096zM-20 1393q0 52 26.5 75t63.5 23q38 0 65.5 -23t27.5 -75q0 -50 -27.5 -74.5t-65.5 -24.5q-37 0 -63.5 24.5t-26.5 74.5zM361 1393q0 52 26.5 75t63.5 23t64.5 -23t27.5 -75q0 -50 -27.5 -74.5t-64.5 -24.5t-63.5 24.5t-26.5 74.5z" />
+<glyph unicode="&#xf0;" horiz-adv-x="1221" d="M1122 563q0 -281 -130.5 -432t-377.5 -151q-222 0 -361.5 134.5t-139.5 360.5q0 230 131.5 361t351.5 131q226 0 326 -121l8 4q-57 214 -262 405l-271 -155l-73 108l233 133q-92 62 -186 111l69 117q156 -73 258 -148l238 138l76 -107l-207 -119q152 -143 234.5 -342 t82.5 -428zM954 512q0 147 -90 232t-246 85q-337 0 -337 -360q0 -167 87.5 -258.5t249.5 -91.5q175 0 255.5 100.5t80.5 292.5z" />
+<glyph unicode="&#xf1;" horiz-adv-x="1257" d="M176 0zM926 0v709q0 134 -61 200t-191 66q-172 0 -252 -93t-80 -307v-575h-166v1096h135l27 -150h8q51 81 143 125.5t205 44.5q198 0 298 -95.5t100 -305.5v-715h-166zM802 1243q-43 0 -84 18.5t-80.5 41t-76 41t-70.5 18.5q-50 0 -75.5 -30t-39.5 -91h-98 q13 121 70.5 189.5t148.5 68.5q46 0 89 -18.5t82 -41t75 -41t68 -18.5q49 0 73 29.5t39 91.5h99q-13 -121 -69.5 -189.5t-150.5 -68.5z" />
+<glyph unicode="&#xf2;" horiz-adv-x="1237" d="M115 0zM1122 549q0 -268 -135 -418.5t-373 -150.5q-147 0 -261 69t-176 198t-62 302q0 268 134 417.5t372 149.5q230 0 365.5 -153t135.5 -414zM287 549q0 -210 84 -320t247 -110t247.5 109.5t84.5 320.5q0 209 -84.5 317.5t-249.5 108.5q-163 0 -246 -107t-83 -319z M742 1241h-110q-65 52 -154 148t-129 159v21h203q32 -69 89 -159.5t101 -143.5v-25z" />
+<glyph unicode="&#xf3;" horiz-adv-x="1237" d="M115 0zM1122 549q0 -268 -135 -418.5t-373 -150.5q-147 0 -261 69t-176 198t-62 302q0 268 134 417.5t372 149.5q230 0 365.5 -153t135.5 -414zM287 549q0 -210 84 -320t247 -110t247.5 109.5t84.5 320.5q0 209 -84.5 317.5t-249.5 108.5q-163 0 -246 -107t-83 -319z M479 1266q48 62 103.5 150t87.5 153h202v-21q-44 -65 -131 -160t-151 -147h-111v25z" />
+<glyph unicode="&#xf4;" horiz-adv-x="1237" d="M115 0zM1122 549q0 -268 -135 -418.5t-373 -150.5q-147 0 -261 69t-176 198t-62 302q0 268 134 417.5t372 149.5q230 0 365.5 -153t135.5 -414zM287 549q0 -210 84 -320t247 -110t247.5 109.5t84.5 320.5q0 209 -84.5 317.5t-249.5 108.5q-163 0 -246 -107t-83 -319z M282 1264q127 136 178 200t74 105h166q22 -42 76.5 -108.5t179.5 -196.5v-23h-119q-88 55 -221 186q-136 -134 -219 -186h-115v23z" />
+<glyph unicode="&#xf5;" horiz-adv-x="1237" d="M115 0zM1122 549q0 -268 -135 -418.5t-373 -150.5q-147 0 -261 69t-176 198t-62 302q0 268 134 417.5t372 149.5q230 0 365.5 -153t135.5 -414zM287 549q0 -210 84 -320t247 -110t247.5 109.5t84.5 320.5q0 209 -84.5 317.5t-249.5 108.5q-163 0 -246 -107t-83 -319z M773 1243q-43 0 -84 18.5t-80.5 41t-76 41t-70.5 18.5q-50 0 -75.5 -30t-39.5 -91h-98q13 121 70.5 189.5t148.5 68.5q46 0 89 -18.5t82 -41t75 -41t68 -18.5q49 0 73 29.5t39 91.5h99q-13 -121 -69.5 -189.5t-150.5 -68.5z" />
+<glyph unicode="&#xf6;" horiz-adv-x="1237" d="M115 0zM1122 549q0 -268 -135 -418.5t-373 -150.5q-147 0 -261 69t-176 198t-62 302q0 268 134 417.5t372 149.5q230 0 365.5 -153t135.5 -414zM287 549q0 -210 84 -320t247 -110t247.5 109.5t84.5 320.5q0 209 -84.5 317.5t-249.5 108.5q-163 0 -246 -107t-83 -319z M336 1393q0 52 26.5 75t63.5 23q38 0 65.5 -23t27.5 -75q0 -50 -27.5 -74.5t-65.5 -24.5q-37 0 -63.5 24.5t-26.5 74.5zM717 1393q0 52 26.5 75t63.5 23t64.5 -23t27.5 -75q0 -50 -27.5 -74.5t-64.5 -24.5t-63.5 24.5t-26.5 74.5z" />
+<glyph unicode="&#xf7;" d="M104 653v138h961v-138h-961zM471 373q0 60 29.5 90.5t83.5 30.5q52 0 81 -31.5t29 -89.5q0 -57 -29.5 -89t-80.5 -32q-52 0 -82.5 31.5t-30.5 89.5zM471 1071q0 60 29.5 90.5t83.5 30.5q52 0 81 -31.5t29 -89.5q0 -57 -29.5 -89t-80.5 -32q-52 0 -82.5 31.5t-30.5 89.5z " />
+<glyph unicode="&#xf8;" horiz-adv-x="1237" d="M1122 549q0 -268 -135 -418.5t-373 -150.5q-154 0 -266 69l-84 -117l-114 78l94 131q-129 152 -129 408q0 268 134 417.5t372 149.5q154 0 270 -76l84 119l117 -76l-97 -133q127 -152 127 -401zM287 549q0 -171 53 -273l465 646q-75 53 -189 53q-163 0 -246 -107 t-83 -319zM950 549q0 164 -51 264l-465 -643q71 -51 184 -51q163 0 247.5 109.5t84.5 320.5z" />
+<glyph unicode="&#xf9;" horiz-adv-x="1257" d="M164 0zM332 1096v-711q0 -134 61 -200t191 -66q172 0 251.5 94t79.5 307v576h166v-1096h-137l-24 147h-9q-51 -81 -141.5 -124t-206.5 -43q-200 0 -299.5 95t-99.5 304v717h168zM726 1241h-110q-65 52 -154 148t-129 159v21h203q32 -69 89 -159.5t101 -143.5v-25z" />
+<glyph unicode="&#xfa;" horiz-adv-x="1257" d="M164 0zM332 1096v-711q0 -134 61 -200t191 -66q172 0 251.5 94t79.5 307v576h166v-1096h-137l-24 147h-9q-51 -81 -141.5 -124t-206.5 -43q-200 0 -299.5 95t-99.5 304v717h168zM506 1266q48 62 103.5 150t87.5 153h202v-21q-44 -65 -131 -160t-151 -147h-111v25z" />
+<glyph unicode="&#xfb;" horiz-adv-x="1257" d="M164 0zM332 1096v-711q0 -134 61 -200t191 -66q172 0 251.5 94t79.5 307v576h166v-1096h-137l-24 147h-9q-51 -81 -141.5 -124t-206.5 -43q-200 0 -299.5 95t-99.5 304v717h168zM286 1264q127 136 178 200t74 105h166q22 -42 76.5 -108.5t179.5 -196.5v-23h-119 q-88 55 -221 186q-136 -134 -219 -186h-115v23z" />
+<glyph unicode="&#xfc;" horiz-adv-x="1257" d="M164 0zM332 1096v-711q0 -134 61 -200t191 -66q172 0 251.5 94t79.5 307v576h166v-1096h-137l-24 147h-9q-51 -81 -141.5 -124t-206.5 -43q-200 0 -299.5 95t-99.5 304v717h168zM342 1393q0 52 26.5 75t63.5 23q38 0 65.5 -23t27.5 -75q0 -50 -27.5 -74.5t-65.5 -24.5 q-37 0 -63.5 24.5t-26.5 74.5zM723 1393q0 52 26.5 75t63.5 23t64.5 -23t27.5 -75q0 -50 -27.5 -74.5t-64.5 -24.5t-63.5 24.5t-26.5 74.5z" />
+<glyph unicode="&#xfd;" horiz-adv-x="1032" d="M2 0zM2 1096h178l240 -625q79 -214 98 -309h8q13 51 54.5 174.5t271.5 759.5h178l-471 -1248q-70 -185 -163.5 -262.5t-229.5 -77.5q-76 0 -150 17v133q55 -12 123 -12q171 0 244 192l61 156zM411 1266q48 62 103.5 150t87.5 153h202v-21q-44 -65 -131 -160t-151 -147 h-111v25z" />
+<glyph unicode="&#xfe;" horiz-adv-x="1255" d="M344 948q66 89 151 128.5t191 39.5q215 0 335 -150t120 -417q0 -268 -120.5 -418.5t-334.5 -150.5q-222 0 -344 161h-12l4 -34q8 -77 8 -140v-459h-166v2048h166v-466q0 -52 -6 -142h8zM664 975q-168 0 -244 -92t-78 -293v-41q0 -231 77 -330.5t247 -99.5q303 0 303 432 q0 215 -74 319.5t-231 104.5z" />
+<glyph unicode="&#xff;" horiz-adv-x="1032" d="M2 0zM2 1096h178l240 -625q79 -214 98 -309h8q13 51 54.5 174.5t271.5 759.5h178l-471 -1248q-70 -185 -163.5 -262.5t-229.5 -77.5q-76 0 -150 17v133q55 -12 123 -12q171 0 244 192l61 156zM234 1393q0 52 26.5 75t63.5 23q38 0 65.5 -23t27.5 -75q0 -50 -27.5 -74.5 t-65.5 -24.5q-37 0 -63.5 24.5t-26.5 74.5zM615 1393q0 52 26.5 75t63.5 23t64.5 -23t27.5 -75q0 -50 -27.5 -74.5t-64.5 -24.5t-63.5 24.5t-26.5 74.5z" />
+<glyph unicode="&#x131;" horiz-adv-x="518" d="M342 0h-166v1096h166v-1096z" />
+<glyph unicode="&#x152;" horiz-adv-x="1890" d="M1767 0h-768q-102 -20 -194 -20q-327 0 -503.5 196.5t-176.5 558.5q0 360 174 555t494 195q102 0 192 -23h782v-151h-589v-471h551v-150h-551v-538h589v-152zM811 1333q-249 0 -377.5 -152.5t-128.5 -447.5q0 -297 128.5 -450.5t375.5 -153.5q112 0 199 33v1141 q-87 30 -197 30z" />
+<glyph unicode="&#x153;" horiz-adv-x="1929" d="M1430 -20q-293 0 -418 235q-62 -116 -166.5 -175.5t-241.5 -59.5q-223 0 -357 152.5t-134 416.5q0 265 131 415t366 150q131 0 233.5 -59.5t164.5 -173.5q58 112 154 172.5t222 60.5q201 0 320 -132.5t119 -358.5v-105h-729q8 -393 338 -393q94 0 174.5 17.5t167.5 56.5 v-148q-88 -39 -164 -55t-180 -16zM287 549q0 -211 76 -320.5t243 -109.5q163 0 239.5 106.5t76.5 315.5q0 221 -77.5 327.5t-242.5 106.5q-166 0 -240.5 -108t-74.5 -318zM1382 975q-127 0 -199.5 -82t-84.5 -240h544q0 158 -66 240t-194 82z" />
+<glyph unicode="&#x178;" horiz-adv-x="1147" d="M0 0zM573 731l390 731h184l-488 -895v-567h-172v559l-487 903h186zM294 1731q0 52 26.5 75t63.5 23q38 0 65.5 -23t27.5 -75q0 -50 -27.5 -74.5t-65.5 -24.5q-37 0 -63.5 24.5t-26.5 74.5zM675 1731q0 52 26.5 75t63.5 23t64.5 -23t27.5 -75q0 -50 -27.5 -74.5 t-64.5 -24.5t-63.5 24.5t-26.5 74.5z" />
+<glyph unicode="&#x2c6;" horiz-adv-x="1212" d="M268 1264q127 136 178 200t74 105h166q22 -42 76.5 -108.5t179.5 -196.5v-23h-119q-88 55 -221 186q-136 -134 -219 -186h-115v23z" />
+<glyph unicode="&#x2da;" horiz-adv-x="1182" d="M813 1458q0 -98 -61.5 -157.5t-163.5 -59.5q-101 0 -161 58.5t-60 156.5t60.5 155.5t160.5 57.5q101 0 163 -59.5t62 -151.5zM705 1456q0 56 -33 86.5t-84 30.5t-84 -30.5t-33 -86.5t30 -86.5t87 -30.5q52 0 84.5 30.5t32.5 86.5z" />
+<glyph unicode="&#x2dc;" horiz-adv-x="1212" d="M788 1243q-43 0 -84 18.5t-80.5 41t-76 41t-70.5 18.5q-50 0 -75.5 -30t-39.5 -91h-98q13 121 70.5 189.5t148.5 68.5q46 0 89 -18.5t82 -41t75 -41t68 -18.5q49 0 73 29.5t39 91.5h99q-13 -121 -69.5 -189.5t-150.5 -68.5z" />
+<glyph unicode="&#x2000;" horiz-adv-x="953" />
+<glyph unicode="&#x2001;" horiz-adv-x="1907" />
+<glyph unicode="&#x2002;" horiz-adv-x="953" />
+<glyph unicode="&#x2003;" horiz-adv-x="1907" />
+<glyph unicode="&#x2004;" horiz-adv-x="635" />
+<glyph unicode="&#x2005;" horiz-adv-x="476" />
+<glyph unicode="&#x2006;" horiz-adv-x="317" />
+<glyph unicode="&#x2007;" horiz-adv-x="317" />
+<glyph unicode="&#x2008;" horiz-adv-x="238" />
+<glyph unicode="&#x2009;" horiz-adv-x="381" />
+<glyph unicode="&#x200a;" horiz-adv-x="105" />
+<glyph unicode="&#x2010;" horiz-adv-x="659" d="M84 473v152h491v-152h-491z" />
+<glyph unicode="&#x2011;" horiz-adv-x="659" d="M84 473v152h491v-152h-491z" />
+<glyph unicode="&#x2012;" horiz-adv-x="659" d="M84 473v152h491v-152h-491z" />
+<glyph unicode="&#x2013;" horiz-adv-x="1024" d="M82 473v152h860v-152h-860z" />
+<glyph unicode="&#x2014;" horiz-adv-x="2048" d="M82 473v152h1884v-152h-1884z" />
+<glyph unicode="&#x2018;" horiz-adv-x="348" d="M37 961l-12 22q22 90 71 224t105 255h123q-66 -254 -103 -501h-184z" />
+<glyph unicode="&#x2019;" horiz-adv-x="348" d="M309 1462l15 -22q-26 -100 -75 -232.5t-102 -246.5h-122q70 285 102 501h182z" />
+<glyph unicode="&#x201a;" horiz-adv-x="502" d="M63 0zM350 238l15 -23q-26 -100 -75 -232.5t-102 -246.5h-125q27 104 59.5 257t45.5 245h182z" />
+<glyph unicode="&#x201c;" horiz-adv-x="717" d="M406 961l-15 22q56 215 178 479h123q-30 -115 -59.5 -259.5t-42.5 -241.5h-184zM37 961l-12 22q22 90 71 224t105 255h123q-66 -254 -103 -501h-184z" />
+<glyph unicode="&#x201d;" horiz-adv-x="717" d="M309 1462l15 -22q-26 -100 -75 -232.5t-102 -246.5h-122q70 285 102 501h182zM678 1462l14 -22q-24 -91 -72 -224t-104 -255h-125q26 100 59 254t46 247h182z" />
+<glyph unicode="&#x201e;" horiz-adv-x="829" d="M25 0zM309 238l15 -22q-26 -100 -75 -232.5t-102 -246.5h-122q70 285 102 501h182zM678 238l14 -22q-24 -91 -72 -224t-104 -255h-125q26 100 59 254t46 247h182z" />
+<glyph unicode="&#x2022;" horiz-adv-x="770" d="M164 748q0 121 56.5 184t164.5 63q105 0 163 -62t58 -185q0 -119 -57.5 -183.5t-163.5 -64.5q-107 0 -164 65.5t-57 182.5z" />
+<glyph unicode="&#x2026;" horiz-adv-x="1606" d="M152 0zM152 106q0 67 30.5 101.5t87.5 34.5q58 0 90.5 -34.5t32.5 -101.5q0 -65 -33 -100t-90 -35q-51 0 -84.5 31.5t-33.5 103.5zM682 106q0 67 30.5 101.5t87.5 34.5q58 0 90.5 -34.5t32.5 -101.5q0 -65 -33 -100t-90 -35q-51 0 -84.5 31.5t-33.5 103.5zM1213 106 q0 67 30.5 101.5t87.5 34.5q58 0 90.5 -34.5t32.5 -101.5q0 -65 -33 -100t-90 -35q-51 0 -84.5 31.5t-33.5 103.5z" />
+<glyph unicode="&#x202f;" horiz-adv-x="381" />
+<glyph unicode="&#x2039;" horiz-adv-x="623" d="M82 551l342 407l119 -69l-289 -350l289 -351l-119 -71l-342 407v27z" />
+<glyph unicode="&#x203a;" horiz-adv-x="623" d="M541 524l-344 -407l-117 71l287 351l-287 350l117 69l344 -407v-27z" />
+<glyph unicode="&#x2044;" horiz-adv-x="266" d="M655 1462l-903 -1462h-143l903 1462h143z" />
+<glyph unicode="&#x205f;" horiz-adv-x="476" />
+<glyph unicode="&#x2074;" horiz-adv-x="711" d="M692 788h-125v-202h-145v202h-402v101l408 579h139v-563h125v-117zM422 905v195q0 134 6 209q-5 -12 -17 -31.5t-27 -42l-30 -45t-26 -39.5l-168 -246h262z" />
+<glyph unicode="&#x20ac;" horiz-adv-x="1208" d="M795 1333q-319 0 -398 -403h510v-129h-524l-2 -57v-64l2 -45h463v-129h-447q37 -180 138.5 -278.5t271.5 -98.5q156 0 309 66v-150q-146 -65 -317 -65q-237 0 -381.5 134.5t-190.5 391.5h-166v129h152l-2 42v44l2 80h-152v129h164q39 261 185 407t383 146q201 0 366 -97 l-71 -139q-166 86 -295 86z" />
+<glyph unicode="&#x2122;" horiz-adv-x="1589" d="M369 741h-123v615h-209v106h543v-106h-211v-615zM969 741l-201 559h-8l6 -129v-430h-119v721h187l196 -559l203 559h180v-721h-127v420l6 137h-8l-211 -557h-104z" />
+<glyph unicode="&#x2212;" d="M104 653v138h961v-138h-961z" />
+<glyph unicode="&#xe000;" horiz-adv-x="1095" d="M0 1095h1095v-1095h-1095v1095z" />
+<glyph horiz-adv-x="1255" d="M0 0z" />
+<hkern u1="&#x22;" u2="&#x178;" k="-20" />
+<hkern u1="&#x22;" u2="&#x153;" k="123" />
+<hkern u1="&#x22;" u2="&#xfc;" k="61" />
+<hkern u1="&#x22;" u2="&#xfb;" k="61" />
+<hkern u1="&#x22;" u2="&#xfa;" k="61" />
+<hkern u1="&#x22;" u2="&#xf9;" k="61" />
+<hkern u1="&#x22;" u2="&#xf8;" k="123" />
+<hkern u1="&#x22;" u2="&#xf6;" k="123" />
+<hkern u1="&#x22;" u2="&#xf5;" k="123" />
+<hkern u1="&#x22;" u2="&#xf4;" k="123" />
+<hkern u1="&#x22;" u2="&#xf3;" k="123" />
+<hkern u1="&#x22;" u2="&#xf2;" k="123" />
+<hkern u1="&#x22;" u2="&#xeb;" k="123" />
+<hkern u1="&#x22;" u2="&#xea;" k="123" />
+<hkern u1="&#x22;" u2="&#xe9;" k="123" />
+<hkern u1="&#x22;" u2="&#xe8;" k="123" />
+<hkern u1="&#x22;" u2="&#xe7;" k="123" />
+<hkern u1="&#x22;" u2="&#xe6;" k="82" />
+<hkern u1="&#x22;" u2="&#xe5;" k="82" />
+<hkern u1="&#x22;" u2="&#xe4;" k="82" />
+<hkern u1="&#x22;" u2="&#xe3;" k="82" />
+<hkern u1="&#x22;" u2="&#xe2;" k="82" />
+<hkern u1="&#x22;" u2="&#xe1;" k="82" />
+<hkern u1="&#x22;" u2="&#xe0;" k="123" />
+<hkern u1="&#x22;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x22;" u2="&#xc5;" k="143" />
+<hkern u1="&#x22;" u2="&#xc4;" k="143" />
+<hkern u1="&#x22;" u2="&#xc3;" k="143" />
+<hkern u1="&#x22;" u2="&#xc2;" k="143" />
+<hkern u1="&#x22;" u2="&#xc1;" k="143" />
+<hkern u1="&#x22;" u2="&#xc0;" k="143" />
+<hkern u1="&#x22;" u2="u" k="61" />
+<hkern u1="&#x22;" u2="s" k="61" />
+<hkern u1="&#x22;" u2="r" k="61" />
+<hkern u1="&#x22;" u2="q" k="123" />
+<hkern u1="&#x22;" u2="p" k="61" />
+<hkern u1="&#x22;" u2="o" k="123" />
+<hkern u1="&#x22;" u2="n" k="61" />
+<hkern u1="&#x22;" u2="m" k="61" />
+<hkern u1="&#x22;" u2="g" k="61" />
+<hkern u1="&#x22;" u2="e" k="123" />
+<hkern u1="&#x22;" u2="d" k="123" />
+<hkern u1="&#x22;" u2="c" k="123" />
+<hkern u1="&#x22;" u2="a" k="82" />
+<hkern u1="&#x22;" u2="Y" k="-20" />
+<hkern u1="&#x22;" u2="W" k="-41" />
+<hkern u1="&#x22;" u2="V" k="-41" />
+<hkern u1="&#x22;" u2="T" k="-41" />
+<hkern u1="&#x22;" u2="A" k="143" />
+<hkern u1="&#x27;" u2="&#x178;" k="-20" />
+<hkern u1="&#x27;" u2="&#x153;" k="123" />
+<hkern u1="&#x27;" u2="&#xfc;" k="61" />
+<hkern u1="&#x27;" u2="&#xfb;" k="61" />
+<hkern u1="&#x27;" u2="&#xfa;" k="61" />
+<hkern u1="&#x27;" u2="&#xf9;" k="61" />
+<hkern u1="&#x27;" u2="&#xf8;" k="123" />
+<hkern u1="&#x27;" u2="&#xf6;" k="123" />
+<hkern u1="&#x27;" u2="&#xf5;" k="123" />
+<hkern u1="&#x27;" u2="&#xf4;" k="123" />
+<hkern u1="&#x27;" u2="&#xf3;" k="123" />
+<hkern u1="&#x27;" u2="&#xf2;" k="123" />
+<hkern u1="&#x27;" u2="&#xeb;" k="123" />
+<hkern u1="&#x27;" u2="&#xea;" k="123" />
+<hkern u1="&#x27;" u2="&#xe9;" k="123" />
+<hkern u1="&#x27;" u2="&#xe8;" k="123" />
+<hkern u1="&#x27;" u2="&#xe7;" k="123" />
+<hkern u1="&#x27;" u2="&#xe6;" k="82" />
+<hkern u1="&#x27;" u2="&#xe5;" k="82" />
+<hkern u1="&#x27;" u2="&#xe4;" k="82" />
+<hkern u1="&#x27;" u2="&#xe3;" k="82" />
+<hkern u1="&#x27;" u2="&#xe2;" k="82" />
+<hkern u1="&#x27;" u2="&#xe1;" k="82" />
+<hkern u1="&#x27;" u2="&#xe0;" k="123" />
+<hkern u1="&#x27;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x27;" u2="&#xc5;" k="143" />
+<hkern u1="&#x27;" u2="&#xc4;" k="143" />
+<hkern u1="&#x27;" u2="&#xc3;" k="143" />
+<hkern u1="&#x27;" u2="&#xc2;" k="143" />
+<hkern u1="&#x27;" u2="&#xc1;" k="143" />
+<hkern u1="&#x27;" u2="&#xc0;" k="143" />
+<hkern u1="&#x27;" u2="u" k="61" />
+<hkern u1="&#x27;" u2="s" k="61" />
+<hkern u1="&#x27;" u2="r" k="61" />
+<hkern u1="&#x27;" u2="q" k="123" />
+<hkern u1="&#x27;" u2="p" k="61" />
+<hkern u1="&#x27;" u2="o" k="123" />
+<hkern u1="&#x27;" u2="n" k="61" />
+<hkern u1="&#x27;" u2="m" k="61" />
+<hkern u1="&#x27;" u2="g" k="61" />
+<hkern u1="&#x27;" u2="e" k="123" />
+<hkern u1="&#x27;" u2="d" k="123" />
+<hkern u1="&#x27;" u2="c" k="123" />
+<hkern u1="&#x27;" u2="a" k="82" />
+<hkern u1="&#x27;" u2="Y" k="-20" />
+<hkern u1="&#x27;" u2="W" k="-41" />
+<hkern u1="&#x27;" u2="V" k="-41" />
+<hkern u1="&#x27;" u2="T" k="-41" />
+<hkern u1="&#x27;" u2="A" k="143" />
+<hkern u1="&#x28;" u2="J" k="-184" />
+<hkern u1="&#x2c;" u2="&#x178;" k="123" />
+<hkern u1="&#x2c;" u2="&#x152;" k="102" />
+<hkern u1="&#x2c;" u2="&#xdd;" k="123" />
+<hkern u1="&#x2c;" u2="&#xdc;" k="41" />
+<hkern u1="&#x2c;" u2="&#xdb;" k="41" />
+<hkern u1="&#x2c;" u2="&#xda;" k="41" />
+<hkern u1="&#x2c;" u2="&#xd9;" k="41" />
+<hkern u1="&#x2c;" u2="&#xd8;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd6;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd5;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd4;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd3;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd2;" k="102" />
+<hkern u1="&#x2c;" u2="&#xc7;" k="102" />
+<hkern u1="&#x2c;" u2="Y" k="123" />
+<hkern u1="&#x2c;" u2="W" k="123" />
+<hkern u1="&#x2c;" u2="V" k="123" />
+<hkern u1="&#x2c;" u2="U" k="41" />
+<hkern u1="&#x2c;" u2="T" k="143" />
+<hkern u1="&#x2c;" u2="Q" k="102" />
+<hkern u1="&#x2c;" u2="O" k="102" />
+<hkern u1="&#x2c;" u2="G" k="102" />
+<hkern u1="&#x2c;" u2="C" k="102" />
+<hkern u1="&#x2d;" u2="T" k="82" />
+<hkern u1="&#x2e;" u2="&#x178;" k="123" />
+<hkern u1="&#x2e;" u2="&#x152;" k="102" />
+<hkern u1="&#x2e;" u2="&#xdd;" k="123" />
+<hkern u1="&#x2e;" u2="&#xdc;" k="41" />
+<hkern u1="&#x2e;" u2="&#xdb;" k="41" />
+<hkern u1="&#x2e;" u2="&#xda;" k="41" />
+<hkern u1="&#x2e;" u2="&#xd9;" k="41" />
+<hkern u1="&#x2e;" u2="&#xd8;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd6;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd5;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd4;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd3;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd2;" k="102" />
+<hkern u1="&#x2e;" u2="&#xc7;" k="102" />
+<hkern u1="&#x2e;" u2="Y" k="123" />
+<hkern u1="&#x2e;" u2="W" k="123" />
+<hkern u1="&#x2e;" u2="V" k="123" />
+<hkern u1="&#x2e;" u2="U" k="41" />
+<hkern u1="&#x2e;" u2="T" k="143" />
+<hkern u1="&#x2e;" u2="Q" k="102" />
+<hkern u1="&#x2e;" u2="O" k="102" />
+<hkern u1="&#x2e;" u2="G" k="102" />
+<hkern u1="&#x2e;" u2="C" k="102" />
+<hkern u1="A" u2="&#x201d;" k="143" />
+<hkern u1="A" u2="&#x2019;" k="143" />
+<hkern u1="A" u2="&#x178;" k="123" />
+<hkern u1="A" u2="&#x152;" k="41" />
+<hkern u1="A" u2="&#xdd;" k="123" />
+<hkern u1="A" u2="&#xd8;" k="41" />
+<hkern u1="A" u2="&#xd6;" k="41" />
+<hkern u1="A" u2="&#xd5;" k="41" />
+<hkern u1="A" u2="&#xd4;" k="41" />
+<hkern u1="A" u2="&#xd3;" k="41" />
+<hkern u1="A" u2="&#xd2;" k="41" />
+<hkern u1="A" u2="&#xc7;" k="41" />
+<hkern u1="A" u2="Y" k="123" />
+<hkern u1="A" u2="W" k="82" />
+<hkern u1="A" u2="V" k="82" />
+<hkern u1="A" u2="T" k="143" />
+<hkern u1="A" u2="Q" k="41" />
+<hkern u1="A" u2="O" k="41" />
+<hkern u1="A" u2="J" k="-266" />
+<hkern u1="A" u2="G" k="41" />
+<hkern u1="A" u2="C" k="41" />
+<hkern u1="A" u2="&#x27;" k="143" />
+<hkern u1="A" u2="&#x22;" k="143" />
+<hkern u1="B" u2="&#x201e;" k="82" />
+<hkern u1="B" u2="&#x201a;" k="82" />
+<hkern u1="B" u2="&#x178;" k="20" />
+<hkern u1="B" u2="&#xdd;" k="20" />
+<hkern u1="B" u2="&#xc5;" k="41" />
+<hkern u1="B" u2="&#xc4;" k="41" />
+<hkern u1="B" u2="&#xc3;" k="41" />
+<hkern u1="B" u2="&#xc2;" k="41" />
+<hkern u1="B" u2="&#xc1;" k="41" />
+<hkern u1="B" u2="&#xc0;" k="41" />
+<hkern u1="B" u2="Z" k="20" />
+<hkern u1="B" u2="Y" k="20" />
+<hkern u1="B" u2="X" k="41" />
+<hkern u1="B" u2="W" k="20" />
+<hkern u1="B" u2="V" k="20" />
+<hkern u1="B" u2="T" k="61" />
+<hkern u1="B" u2="A" k="41" />
+<hkern u1="B" u2="&#x2e;" k="82" />
+<hkern u1="B" u2="&#x2c;" k="82" />
+<hkern u1="C" u2="&#x152;" k="41" />
+<hkern u1="C" u2="&#xd8;" k="41" />
+<hkern u1="C" u2="&#xd6;" k="41" />
+<hkern u1="C" u2="&#xd5;" k="41" />
+<hkern u1="C" u2="&#xd4;" k="41" />
+<hkern u1="C" u2="&#xd3;" k="41" />
+<hkern u1="C" u2="&#xd2;" k="41" />
+<hkern u1="C" u2="&#xc7;" k="41" />
+<hkern u1="C" u2="Q" k="41" />
+<hkern u1="C" u2="O" k="41" />
+<hkern u1="C" u2="G" k="41" />
+<hkern u1="C" u2="C" k="41" />
+<hkern u1="D" u2="&#x201e;" k="82" />
+<hkern u1="D" u2="&#x201a;" k="82" />
+<hkern u1="D" u2="&#x178;" k="20" />
+<hkern u1="D" u2="&#xdd;" k="20" />
+<hkern u1="D" u2="&#xc5;" k="41" />
+<hkern u1="D" u2="&#xc4;" k="41" />
+<hkern u1="D" u2="&#xc3;" k="41" />
+<hkern u1="D" u2="&#xc2;" k="41" />
+<hkern u1="D" u2="&#xc1;" k="41" />
+<hkern u1="D" u2="&#xc0;" k="41" />
+<hkern u1="D" u2="Z" k="20" />
+<hkern u1="D" u2="Y" k="20" />
+<hkern u1="D" u2="X" k="41" />
+<hkern u1="D" u2="W" k="20" />
+<hkern u1="D" u2="V" k="20" />
+<hkern u1="D" u2="T" k="61" />
+<hkern u1="D" u2="A" k="41" />
+<hkern u1="D" u2="&#x2e;" k="82" />
+<hkern u1="D" u2="&#x2c;" k="82" />
+<hkern u1="E" u2="J" k="-123" />
+<hkern u1="F" u2="&#x201e;" k="123" />
+<hkern u1="F" u2="&#x201a;" k="123" />
+<hkern u1="F" u2="&#xc5;" k="41" />
+<hkern u1="F" u2="&#xc4;" k="41" />
+<hkern u1="F" u2="&#xc3;" k="41" />
+<hkern u1="F" u2="&#xc2;" k="41" />
+<hkern u1="F" u2="&#xc1;" k="41" />
+<hkern u1="F" u2="&#xc0;" k="41" />
+<hkern u1="F" u2="A" k="41" />
+<hkern u1="F" u2="&#x3f;" k="-41" />
+<hkern u1="F" u2="&#x2e;" k="123" />
+<hkern u1="F" u2="&#x2c;" k="123" />
+<hkern u1="K" u2="&#x152;" k="41" />
+<hkern u1="K" u2="&#xd8;" k="41" />
+<hkern u1="K" u2="&#xd6;" k="41" />
+<hkern u1="K" u2="&#xd5;" k="41" />
+<hkern u1="K" u2="&#xd4;" k="41" />
+<hkern u1="K" u2="&#xd3;" k="41" />
+<hkern u1="K" u2="&#xd2;" k="41" />
+<hkern u1="K" u2="&#xc7;" k="41" />
+<hkern u1="K" u2="Q" k="41" />
+<hkern u1="K" u2="O" k="41" />
+<hkern u1="K" u2="G" k="41" />
+<hkern u1="K" u2="C" k="41" />
+<hkern u1="L" u2="&#x201d;" k="164" />
+<hkern u1="L" u2="&#x2019;" k="164" />
+<hkern u1="L" u2="&#x178;" k="61" />
+<hkern u1="L" u2="&#x152;" k="41" />
+<hkern u1="L" u2="&#xdd;" k="61" />
+<hkern u1="L" u2="&#xdc;" k="20" />
+<hkern u1="L" u2="&#xdb;" k="20" />
+<hkern u1="L" u2="&#xda;" k="20" />
+<hkern u1="L" u2="&#xd9;" k="20" />
+<hkern u1="L" u2="&#xd8;" k="41" />
+<hkern u1="L" u2="&#xd6;" k="41" />
+<hkern u1="L" u2="&#xd5;" k="41" />
+<hkern u1="L" u2="&#xd4;" k="41" />
+<hkern u1="L" u2="&#xd3;" k="41" />
+<hkern u1="L" u2="&#xd2;" k="41" />
+<hkern u1="L" u2="&#xc7;" k="41" />
+<hkern u1="L" u2="Y" k="61" />
+<hkern u1="L" u2="W" k="41" />
+<hkern u1="L" u2="V" k="41" />
+<hkern u1="L" u2="U" k="20" />
+<hkern u1="L" u2="T" k="41" />
+<hkern u1="L" u2="Q" k="41" />
+<hkern u1="L" u2="O" k="41" />
+<hkern u1="L" u2="G" k="41" />
+<hkern u1="L" u2="C" k="41" />
+<hkern u1="L" u2="&#x27;" k="164" />
+<hkern u1="L" u2="&#x22;" k="164" />
+<hkern u1="O" u2="&#x201e;" k="82" />
+<hkern u1="O" u2="&#x201a;" k="82" />
+<hkern u1="O" u2="&#x178;" k="20" />
+<hkern u1="O" u2="&#xdd;" k="20" />
+<hkern u1="O" u2="&#xc5;" k="41" />
+<hkern u1="O" u2="&#xc4;" k="41" />
+<hkern u1="O" u2="&#xc3;" k="41" />
+<hkern u1="O" u2="&#xc2;" k="41" />
+<hkern u1="O" u2="&#xc1;" k="41" />
+<hkern u1="O" u2="&#xc0;" k="41" />
+<hkern u1="O" u2="Z" k="20" />
+<hkern u1="O" u2="Y" k="20" />
+<hkern u1="O" u2="X" k="41" />
+<hkern u1="O" u2="W" k="20" />
+<hkern u1="O" u2="V" k="20" />
+<hkern u1="O" u2="T" k="61" />
+<hkern u1="O" u2="A" k="41" />
+<hkern u1="O" u2="&#x2e;" k="82" />
+<hkern u1="O" u2="&#x2c;" k="82" />
+<hkern u1="P" u2="&#x201e;" k="266" />
+<hkern u1="P" u2="&#x201a;" k="266" />
+<hkern u1="P" u2="&#xc5;" k="102" />
+<hkern u1="P" u2="&#xc4;" k="102" />
+<hkern u1="P" u2="&#xc3;" k="102" />
+<hkern u1="P" u2="&#xc2;" k="102" />
+<hkern u1="P" u2="&#xc1;" k="102" />
+<hkern u1="P" u2="&#xc0;" k="102" />
+<hkern u1="P" u2="Z" k="20" />
+<hkern u1="P" u2="X" k="41" />
+<hkern u1="P" u2="A" k="102" />
+<hkern u1="P" u2="&#x2e;" k="266" />
+<hkern u1="P" u2="&#x2c;" k="266" />
+<hkern u1="Q" u2="&#x201e;" k="82" />
+<hkern u1="Q" u2="&#x201a;" k="82" />
+<hkern u1="Q" u2="&#x178;" k="20" />
+<hkern u1="Q" u2="&#xdd;" k="20" />
+<hkern u1="Q" u2="&#xc5;" k="41" />
+<hkern u1="Q" u2="&#xc4;" k="41" />
+<hkern u1="Q" u2="&#xc3;" k="41" />
+<hkern u1="Q" u2="&#xc2;" k="41" />
+<hkern u1="Q" u2="&#xc1;" k="41" />
+<hkern u1="Q" u2="&#xc0;" k="41" />
+<hkern u1="Q" u2="Z" k="20" />
+<hkern u1="Q" u2="Y" k="20" />
+<hkern u1="Q" u2="X" k="41" />
+<hkern u1="Q" u2="W" k="20" />
+<hkern u1="Q" u2="V" k="20" />
+<hkern u1="Q" u2="T" k="61" />
+<hkern u1="Q" u2="A" k="41" />
+<hkern u1="Q" u2="&#x2e;" k="82" />
+<hkern u1="Q" u2="&#x2c;" k="82" />
+<hkern u1="T" u2="&#x201e;" k="123" />
+<hkern u1="T" u2="&#x201a;" k="123" />
+<hkern u1="T" u2="&#x2014;" k="82" />
+<hkern u1="T" u2="&#x2013;" k="82" />
+<hkern u1="T" u2="&#x153;" k="143" />
+<hkern u1="T" u2="&#x152;" k="41" />
+<hkern u1="T" u2="&#xfd;" k="41" />
+<hkern u1="T" u2="&#xfc;" k="102" />
+<hkern u1="T" u2="&#xfb;" k="102" />
+<hkern u1="T" u2="&#xfa;" k="102" />
+<hkern u1="T" u2="&#xf9;" k="102" />
+<hkern u1="T" u2="&#xf8;" k="143" />
+<hkern u1="T" u2="&#xf6;" k="143" />
+<hkern u1="T" u2="&#xf5;" k="143" />
+<hkern u1="T" u2="&#xf4;" k="143" />
+<hkern u1="T" u2="&#xf3;" k="143" />
+<hkern u1="T" u2="&#xf2;" k="143" />
+<hkern u1="T" u2="&#xeb;" k="143" />
+<hkern u1="T" u2="&#xea;" k="143" />
+<hkern u1="T" u2="&#xe9;" k="143" />
+<hkern u1="T" u2="&#xe8;" k="143" />
+<hkern u1="T" u2="&#xe7;" k="143" />
+<hkern u1="T" u2="&#xe6;" k="164" />
+<hkern u1="T" u2="&#xe5;" k="164" />
+<hkern u1="T" u2="&#xe4;" k="164" />
+<hkern u1="T" u2="&#xe3;" k="164" />
+<hkern u1="T" u2="&#xe2;" k="164" />
+<hkern u1="T" u2="&#xe1;" k="164" />
+<hkern u1="T" u2="&#xe0;" k="143" />
+<hkern u1="T" u2="&#xd8;" k="41" />
+<hkern u1="T" u2="&#xd6;" k="41" />
+<hkern u1="T" u2="&#xd5;" k="41" />
+<hkern u1="T" u2="&#xd4;" k="41" />
+<hkern u1="T" u2="&#xd3;" k="41" />
+<hkern u1="T" u2="&#xd2;" k="41" />
+<hkern u1="T" u2="&#xc7;" k="41" />
+<hkern u1="T" u2="&#xc5;" k="143" />
+<hkern u1="T" u2="&#xc4;" k="143" />
+<hkern u1="T" u2="&#xc3;" k="143" />
+<hkern u1="T" u2="&#xc2;" k="143" />
+<hkern u1="T" u2="&#xc1;" k="143" />
+<hkern u1="T" u2="&#xc0;" k="143" />
+<hkern u1="T" u2="z" k="82" />
+<hkern u1="T" u2="y" k="41" />
+<hkern u1="T" u2="x" k="41" />
+<hkern u1="T" u2="w" k="41" />
+<hkern u1="T" u2="v" k="41" />
+<hkern u1="T" u2="u" k="102" />
+<hkern u1="T" u2="s" k="123" />
+<hkern u1="T" u2="r" k="102" />
+<hkern u1="T" u2="q" k="143" />
+<hkern u1="T" u2="p" k="102" />
+<hkern u1="T" u2="o" k="143" />
+<hkern u1="T" u2="n" k="102" />
+<hkern u1="T" u2="m" k="102" />
+<hkern u1="T" u2="g" k="143" />
+<hkern u1="T" u2="e" k="143" />
+<hkern u1="T" u2="d" k="143" />
+<hkern u1="T" u2="c" k="143" />
+<hkern u1="T" u2="a" k="164" />
+<hkern u1="T" u2="T" k="-41" />
+<hkern u1="T" u2="Q" k="41" />
+<hkern u1="T" u2="O" k="41" />
+<hkern u1="T" u2="G" k="41" />
+<hkern u1="T" u2="C" k="41" />
+<hkern u1="T" u2="A" k="143" />
+<hkern u1="T" u2="&#x3f;" k="-41" />
+<hkern u1="T" u2="&#x2e;" k="123" />
+<hkern u1="T" u2="&#x2d;" k="82" />
+<hkern u1="T" u2="&#x2c;" k="123" />
+<hkern u1="U" u2="&#x201e;" k="41" />
+<hkern u1="U" u2="&#x201a;" k="41" />
+<hkern u1="U" u2="&#xc5;" k="20" />
+<hkern u1="U" u2="&#xc4;" k="20" />
+<hkern u1="U" u2="&#xc3;" k="20" />
+<hkern u1="U" u2="&#xc2;" k="20" />
+<hkern u1="U" u2="&#xc1;" k="20" />
+<hkern u1="U" u2="&#xc0;" k="20" />
+<hkern u1="U" u2="A" k="20" />
+<hkern u1="U" u2="&#x2e;" k="41" />
+<hkern u1="U" u2="&#x2c;" k="41" />
+<hkern u1="V" u2="&#x201e;" k="102" />
+<hkern u1="V" u2="&#x201a;" k="102" />
+<hkern u1="V" u2="&#x153;" k="41" />
+<hkern u1="V" u2="&#x152;" k="20" />
+<hkern u1="V" u2="&#xfc;" k="20" />
+<hkern u1="V" u2="&#xfb;" k="20" />
+<hkern u1="V" u2="&#xfa;" k="20" />
+<hkern u1="V" u2="&#xf9;" k="20" />
+<hkern u1="V" u2="&#xf8;" k="41" />
+<hkern u1="V" u2="&#xf6;" k="41" />
+<hkern u1="V" u2="&#xf5;" k="41" />
+<hkern u1="V" u2="&#xf4;" k="41" />
+<hkern u1="V" u2="&#xf3;" k="41" />
+<hkern u1="V" u2="&#xf2;" k="41" />
+<hkern u1="V" u2="&#xeb;" k="41" />
+<hkern u1="V" u2="&#xea;" k="41" />
+<hkern u1="V" u2="&#xe9;" k="41" />
+<hkern u1="V" u2="&#xe8;" k="41" />
+<hkern u1="V" u2="&#xe7;" k="41" />
+<hkern u1="V" u2="&#xe6;" k="41" />
+<hkern u1="V" u2="&#xe5;" k="41" />
+<hkern u1="V" u2="&#xe4;" k="41" />
+<hkern u1="V" u2="&#xe3;" k="41" />
+<hkern u1="V" u2="&#xe2;" k="41" />
+<hkern u1="V" u2="&#xe1;" k="41" />
+<hkern u1="V" u2="&#xe0;" k="41" />
+<hkern u1="V" u2="&#xd8;" k="20" />
+<hkern u1="V" u2="&#xd6;" k="20" />
+<hkern u1="V" u2="&#xd5;" k="20" />
+<hkern u1="V" u2="&#xd4;" k="20" />
+<hkern u1="V" u2="&#xd3;" k="20" />
+<hkern u1="V" u2="&#xd2;" k="20" />
+<hkern u1="V" u2="&#xc7;" k="20" />
+<hkern u1="V" u2="&#xc5;" k="82" />
+<hkern u1="V" u2="&#xc4;" k="82" />
+<hkern u1="V" u2="&#xc3;" k="82" />
+<hkern u1="V" u2="&#xc2;" k="82" />
+<hkern u1="V" u2="&#xc1;" k="82" />
+<hkern u1="V" u2="&#xc0;" k="82" />
+<hkern u1="V" u2="u" k="20" />
+<hkern u1="V" u2="s" k="20" />
+<hkern u1="V" u2="r" k="20" />
+<hkern u1="V" u2="q" k="41" />
+<hkern u1="V" u2="p" k="20" />
+<hkern u1="V" u2="o" k="41" />
+<hkern u1="V" u2="n" k="20" />
+<hkern u1="V" u2="m" k="20" />
+<hkern u1="V" u2="g" k="20" />
+<hkern u1="V" u2="e" k="41" />
+<hkern u1="V" u2="d" k="41" />
+<hkern u1="V" u2="c" k="41" />
+<hkern u1="V" u2="a" k="41" />
+<hkern u1="V" u2="Q" k="20" />
+<hkern u1="V" u2="O" k="20" />
+<hkern u1="V" u2="G" k="20" />
+<hkern u1="V" u2="C" k="20" />
+<hkern u1="V" u2="A" k="82" />
+<hkern u1="V" u2="&#x3f;" k="-41" />
+<hkern u1="V" u2="&#x2e;" k="102" />
+<hkern u1="V" u2="&#x2c;" k="102" />
+<hkern u1="W" u2="&#x201e;" k="102" />
+<hkern u1="W" u2="&#x201a;" k="102" />
+<hkern u1="W" u2="&#x153;" k="41" />
+<hkern u1="W" u2="&#x152;" k="20" />
+<hkern u1="W" u2="&#xfc;" k="20" />
+<hkern u1="W" u2="&#xfb;" k="20" />
+<hkern u1="W" u2="&#xfa;" k="20" />
+<hkern u1="W" u2="&#xf9;" k="20" />
+<hkern u1="W" u2="&#xf8;" k="41" />
+<hkern u1="W" u2="&#xf6;" k="41" />
+<hkern u1="W" u2="&#xf5;" k="41" />
+<hkern u1="W" u2="&#xf4;" k="41" />
+<hkern u1="W" u2="&#xf3;" k="41" />
+<hkern u1="W" u2="&#xf2;" k="41" />
+<hkern u1="W" u2="&#xeb;" k="41" />
+<hkern u1="W" u2="&#xea;" k="41" />
+<hkern u1="W" u2="&#xe9;" k="41" />
+<hkern u1="W" u2="&#xe8;" k="41" />
+<hkern u1="W" u2="&#xe7;" k="41" />
+<hkern u1="W" u2="&#xe6;" k="41" />
+<hkern u1="W" u2="&#xe5;" k="41" />
+<hkern u1="W" u2="&#xe4;" k="41" />
+<hkern u1="W" u2="&#xe3;" k="41" />
+<hkern u1="W" u2="&#xe2;" k="41" />
+<hkern u1="W" u2="&#xe1;" k="41" />
+<hkern u1="W" u2="&#xe0;" k="41" />
+<hkern u1="W" u2="&#xd8;" k="20" />
+<hkern u1="W" u2="&#xd6;" k="20" />
+<hkern u1="W" u2="&#xd5;" k="20" />
+<hkern u1="W" u2="&#xd4;" k="20" />
+<hkern u1="W" u2="&#xd3;" k="20" />
+<hkern u1="W" u2="&#xd2;" k="20" />
+<hkern u1="W" u2="&#xc7;" k="20" />
+<hkern u1="W" u2="&#xc5;" k="82" />
+<hkern u1="W" u2="&#xc4;" k="82" />
+<hkern u1="W" u2="&#xc3;" k="82" />
+<hkern u1="W" u2="&#xc2;" k="82" />
+<hkern u1="W" u2="&#xc1;" k="82" />
+<hkern u1="W" u2="&#xc0;" k="82" />
+<hkern u1="W" u2="u" k="20" />
+<hkern u1="W" u2="s" k="20" />
+<hkern u1="W" u2="r" k="20" />
+<hkern u1="W" u2="q" k="41" />
+<hkern u1="W" u2="p" k="20" />
+<hkern u1="W" u2="o" k="41" />
+<hkern u1="W" u2="n" k="20" />
+<hkern u1="W" u2="m" k="20" />
+<hkern u1="W" u2="g" k="20" />
+<hkern u1="W" u2="e" k="41" />
+<hkern u1="W" u2="d" k="41" />
+<hkern u1="W" u2="c" k="41" />
+<hkern u1="W" u2="a" k="41" />
+<hkern u1="W" u2="Q" k="20" />
+<hkern u1="W" u2="O" k="20" />
+<hkern u1="W" u2="G" k="20" />
+<hkern u1="W" u2="C" k="20" />
+<hkern u1="W" u2="A" k="82" />
+<hkern u1="W" u2="&#x3f;" k="-41" />
+<hkern u1="W" u2="&#x2e;" k="102" />
+<hkern u1="W" u2="&#x2c;" k="102" />
+<hkern u1="X" u2="&#x152;" k="41" />
+<hkern u1="X" u2="&#xd8;" k="41" />
+<hkern u1="X" u2="&#xd6;" k="41" />
+<hkern u1="X" u2="&#xd5;" k="41" />
+<hkern u1="X" u2="&#xd4;" k="41" />
+<hkern u1="X" u2="&#xd3;" k="41" />
+<hkern u1="X" u2="&#xd2;" k="41" />
+<hkern u1="X" u2="&#xc7;" k="41" />
+<hkern u1="X" u2="Q" k="41" />
+<hkern u1="X" u2="O" k="41" />
+<hkern u1="X" u2="G" k="41" />
+<hkern u1="X" u2="C" k="41" />
+<hkern u1="Y" u2="&#x201e;" k="123" />
+<hkern u1="Y" u2="&#x201a;" k="123" />
+<hkern u1="Y" u2="&#x153;" k="102" />
+<hkern u1="Y" u2="&#x152;" k="41" />
+<hkern u1="Y" u2="&#xfc;" k="61" />
+<hkern u1="Y" u2="&#xfb;" k="61" />
+<hkern u1="Y" u2="&#xfa;" k="61" />
+<hkern u1="Y" u2="&#xf9;" k="61" />
+<hkern u1="Y" u2="&#xf8;" k="102" />
+<hkern u1="Y" u2="&#xf6;" k="102" />
+<hkern u1="Y" u2="&#xf5;" k="102" />
+<hkern u1="Y" u2="&#xf4;" k="102" />
+<hkern u1="Y" u2="&#xf3;" k="102" />
+<hkern u1="Y" u2="&#xf2;" k="102" />
+<hkern u1="Y" u2="&#xeb;" k="102" />
+<hkern u1="Y" u2="&#xea;" k="102" />
+<hkern u1="Y" u2="&#xe9;" k="102" />
+<hkern u1="Y" u2="&#xe8;" k="102" />
+<hkern u1="Y" u2="&#xe7;" k="102" />
+<hkern u1="Y" u2="&#xe6;" k="102" />
+<hkern u1="Y" u2="&#xe5;" k="102" />
+<hkern u1="Y" u2="&#xe4;" k="102" />
+<hkern u1="Y" u2="&#xe3;" k="102" />
+<hkern u1="Y" u2="&#xe2;" k="102" />
+<hkern u1="Y" u2="&#xe1;" k="102" />
+<hkern u1="Y" u2="&#xe0;" k="102" />
+<hkern u1="Y" u2="&#xd8;" k="41" />
+<hkern u1="Y" u2="&#xd6;" k="41" />
+<hkern u1="Y" u2="&#xd5;" k="41" />
+<hkern u1="Y" u2="&#xd4;" k="41" />
+<hkern u1="Y" u2="&#xd3;" k="41" />
+<hkern u1="Y" u2="&#xd2;" k="41" />
+<hkern u1="Y" u2="&#xc7;" k="41" />
+<hkern u1="Y" u2="&#xc5;" k="123" />
+<hkern u1="Y" u2="&#xc4;" k="123" />
+<hkern u1="Y" u2="&#xc3;" k="123" />
+<hkern u1="Y" u2="&#xc2;" k="123" />
+<hkern u1="Y" u2="&#xc1;" k="123" />
+<hkern u1="Y" u2="&#xc0;" k="123" />
+<hkern u1="Y" u2="z" k="41" />
+<hkern u1="Y" u2="u" k="61" />
+<hkern u1="Y" u2="s" k="82" />
+<hkern u1="Y" u2="r" k="61" />
+<hkern u1="Y" u2="q" k="102" />
+<hkern u1="Y" u2="p" k="61" />
+<hkern u1="Y" u2="o" k="102" />
+<hkern u1="Y" u2="n" k="61" />
+<hkern u1="Y" u2="m" k="61" />
+<hkern u1="Y" u2="g" k="41" />
+<hkern u1="Y" u2="e" k="102" />
+<hkern u1="Y" u2="d" k="102" />
+<hkern u1="Y" u2="c" k="102" />
+<hkern u1="Y" u2="a" k="102" />
+<hkern u1="Y" u2="Q" k="41" />
+<hkern u1="Y" u2="O" k="41" />
+<hkern u1="Y" u2="G" k="41" />
+<hkern u1="Y" u2="C" k="41" />
+<hkern u1="Y" u2="A" k="123" />
+<hkern u1="Y" u2="&#x3f;" k="-41" />
+<hkern u1="Y" u2="&#x2e;" k="123" />
+<hkern u1="Y" u2="&#x2c;" k="123" />
+<hkern u1="Z" u2="&#x152;" k="20" />
+<hkern u1="Z" u2="&#xd8;" k="20" />
+<hkern u1="Z" u2="&#xd6;" k="20" />
+<hkern u1="Z" u2="&#xd5;" k="20" />
+<hkern u1="Z" u2="&#xd4;" k="20" />
+<hkern u1="Z" u2="&#xd3;" k="20" />
+<hkern u1="Z" u2="&#xd2;" k="20" />
+<hkern u1="Z" u2="&#xc7;" k="20" />
+<hkern u1="Z" u2="Q" k="20" />
+<hkern u1="Z" u2="O" k="20" />
+<hkern u1="Z" u2="G" k="20" />
+<hkern u1="Z" u2="C" k="20" />
+<hkern u1="[" u2="J" k="-184" />
+<hkern u1="a" u2="&#x201d;" k="20" />
+<hkern u1="a" u2="&#x2019;" k="20" />
+<hkern u1="a" u2="&#x27;" k="20" />
+<hkern u1="a" u2="&#x22;" k="20" />
+<hkern u1="b" u2="&#x201d;" k="20" />
+<hkern u1="b" u2="&#x2019;" k="20" />
+<hkern u1="b" u2="&#xfd;" k="41" />
+<hkern u1="b" u2="z" k="20" />
+<hkern u1="b" u2="y" k="41" />
+<hkern u1="b" u2="x" k="41" />
+<hkern u1="b" u2="w" k="41" />
+<hkern u1="b" u2="v" k="41" />
+<hkern u1="b" u2="&#x27;" k="20" />
+<hkern u1="b" u2="&#x22;" k="20" />
+<hkern u1="c" u2="&#x201d;" k="-41" />
+<hkern u1="c" u2="&#x2019;" k="-41" />
+<hkern u1="c" u2="&#x27;" k="-41" />
+<hkern u1="c" u2="&#x22;" k="-41" />
+<hkern u1="e" u2="&#x201d;" k="20" />
+<hkern u1="e" u2="&#x2019;" k="20" />
+<hkern u1="e" u2="&#xfd;" k="41" />
+<hkern u1="e" u2="z" k="20" />
+<hkern u1="e" u2="y" k="41" />
+<hkern u1="e" u2="x" k="41" />
+<hkern u1="e" u2="w" k="41" />
+<hkern u1="e" u2="v" k="41" />
+<hkern u1="e" u2="&#x27;" k="20" />
+<hkern u1="e" u2="&#x22;" k="20" />
+<hkern u1="f" u2="&#x201d;" k="-123" />
+<hkern u1="f" u2="&#x2019;" k="-123" />
+<hkern u1="f" u2="&#x27;" k="-123" />
+<hkern u1="f" u2="&#x22;" k="-123" />
+<hkern u1="h" u2="&#x201d;" k="20" />
+<hkern u1="h" u2="&#x2019;" k="20" />
+<hkern u1="h" u2="&#x27;" k="20" />
+<hkern u1="h" u2="&#x22;" k="20" />
+<hkern u1="k" u2="&#x153;" k="41" />
+<hkern u1="k" u2="&#xf8;" k="41" />
+<hkern u1="k" u2="&#xf6;" k="41" />
+<hkern u1="k" u2="&#xf5;" k="41" />
+<hkern u1="k" u2="&#xf4;" k="41" />
+<hkern u1="k" u2="&#xf3;" k="41" />
+<hkern u1="k" u2="&#xf2;" k="41" />
+<hkern u1="k" u2="&#xeb;" k="41" />
+<hkern u1="k" u2="&#xea;" k="41" />
+<hkern u1="k" u2="&#xe9;" k="41" />
+<hkern u1="k" u2="&#xe8;" k="41" />
+<hkern u1="k" u2="&#xe7;" k="41" />
+<hkern u1="k" u2="&#xe0;" k="41" />
+<hkern u1="k" u2="q" k="41" />
+<hkern u1="k" u2="o" k="41" />
+<hkern u1="k" u2="e" k="41" />
+<hkern u1="k" u2="d" k="41" />
+<hkern u1="k" u2="c" k="41" />
+<hkern u1="m" u2="&#x201d;" k="20" />
+<hkern u1="m" u2="&#x2019;" k="20" />
+<hkern u1="m" u2="&#x27;" k="20" />
+<hkern u1="m" u2="&#x22;" k="20" />
+<hkern u1="n" u2="&#x201d;" k="20" />
+<hkern u1="n" u2="&#x2019;" k="20" />
+<hkern u1="n" u2="&#x27;" k="20" />
+<hkern u1="n" u2="&#x22;" k="20" />
+<hkern u1="o" u2="&#x201d;" k="20" />
+<hkern u1="o" u2="&#x2019;" k="20" />
+<hkern u1="o" u2="&#xfd;" k="41" />
+<hkern u1="o" u2="z" k="20" />
+<hkern u1="o" u2="y" k="41" />
+<hkern u1="o" u2="x" k="41" />
+<hkern u1="o" u2="w" k="41" />
+<hkern u1="o" u2="v" k="41" />
+<hkern u1="o" u2="&#x27;" k="20" />
+<hkern u1="o" u2="&#x22;" k="20" />
+<hkern u1="p" u2="&#x201d;" k="20" />
+<hkern u1="p" u2="&#x2019;" k="20" />
+<hkern u1="p" u2="&#xfd;" k="41" />
+<hkern u1="p" u2="z" k="20" />
+<hkern u1="p" u2="y" k="41" />
+<hkern u1="p" u2="x" k="41" />
+<hkern u1="p" u2="w" k="41" />
+<hkern u1="p" u2="v" k="41" />
+<hkern u1="p" u2="&#x27;" k="20" />
+<hkern u1="p" u2="&#x22;" k="20" />
+<hkern u1="r" u2="&#x201d;" k="-82" />
+<hkern u1="r" u2="&#x2019;" k="-82" />
+<hkern u1="r" u2="&#x153;" k="41" />
+<hkern u1="r" u2="&#xf8;" k="41" />
+<hkern u1="r" u2="&#xf6;" k="41" />
+<hkern u1="r" u2="&#xf5;" k="41" />
+<hkern u1="r" u2="&#xf4;" k="41" />
+<hkern u1="r" u2="&#xf3;" k="41" />
+<hkern u1="r" u2="&#xf2;" k="41" />
+<hkern u1="r" u2="&#xeb;" k="41" />
+<hkern u1="r" u2="&#xea;" k="41" />
+<hkern u1="r" u2="&#xe9;" k="41" />
+<hkern u1="r" u2="&#xe8;" k="41" />
+<hkern u1="r" u2="&#xe7;" k="41" />
+<hkern u1="r" u2="&#xe6;" k="41" />
+<hkern u1="r" u2="&#xe5;" k="41" />
+<hkern u1="r" u2="&#xe4;" k="41" />
+<hkern u1="r" u2="&#xe3;" k="41" />
+<hkern u1="r" u2="&#xe2;" k="41" />
+<hkern u1="r" u2="&#xe1;" k="41" />
+<hkern u1="r" u2="&#xe0;" k="41" />
+<hkern u1="r" u2="q" k="41" />
+<hkern u1="r" u2="o" k="41" />
+<hkern u1="r" u2="g" k="20" />
+<hkern u1="r" u2="e" k="41" />
+<hkern u1="r" u2="d" k="41" />
+<hkern u1="r" u2="c" k="41" />
+<hkern u1="r" u2="a" k="41" />
+<hkern u1="r" u2="&#x27;" k="-82" />
+<hkern u1="r" u2="&#x22;" k="-82" />
+<hkern u1="t" u2="&#x201d;" k="-41" />
+<hkern u1="t" u2="&#x2019;" k="-41" />
+<hkern u1="t" u2="&#x27;" k="-41" />
+<hkern u1="t" u2="&#x22;" k="-41" />
+<hkern u1="v" u2="&#x201e;" k="82" />
+<hkern u1="v" u2="&#x201d;" k="-82" />
+<hkern u1="v" u2="&#x201a;" k="82" />
+<hkern u1="v" u2="&#x2019;" k="-82" />
+<hkern u1="v" u2="&#x3f;" k="-41" />
+<hkern u1="v" u2="&#x2e;" k="82" />
+<hkern u1="v" u2="&#x2c;" k="82" />
+<hkern u1="v" u2="&#x27;" k="-82" />
+<hkern u1="v" u2="&#x22;" k="-82" />
+<hkern u1="w" u2="&#x201e;" k="82" />
+<hkern u1="w" u2="&#x201d;" k="-82" />
+<hkern u1="w" u2="&#x201a;" k="82" />
+<hkern u1="w" u2="&#x2019;" k="-82" />
+<hkern u1="w" u2="&#x3f;" k="-41" />
+<hkern u1="w" u2="&#x2e;" k="82" />
+<hkern u1="w" u2="&#x2c;" k="82" />
+<hkern u1="w" u2="&#x27;" k="-82" />
+<hkern u1="w" u2="&#x22;" k="-82" />
+<hkern u1="x" u2="&#x153;" k="41" />
+<hkern u1="x" u2="&#xf8;" k="41" />
+<hkern u1="x" u2="&#xf6;" k="41" />
+<hkern u1="x" u2="&#xf5;" k="41" />
+<hkern u1="x" u2="&#xf4;" k="41" />
+<hkern u1="x" u2="&#xf3;" k="41" />
+<hkern u1="x" u2="&#xf2;" k="41" />
+<hkern u1="x" u2="&#xeb;" k="41" />
+<hkern u1="x" u2="&#xea;" k="41" />
+<hkern u1="x" u2="&#xe9;" k="41" />
+<hkern u1="x" u2="&#xe8;" k="41" />
+<hkern u1="x" u2="&#xe7;" k="41" />
+<hkern u1="x" u2="&#xe0;" k="41" />
+<hkern u1="x" u2="q" k="41" />
+<hkern u1="x" u2="o" k="41" />
+<hkern u1="x" u2="e" k="41" />
+<hkern u1="x" u2="d" k="41" />
+<hkern u1="x" u2="c" k="41" />
+<hkern u1="y" u2="&#x201e;" k="82" />
+<hkern u1="y" u2="&#x201d;" k="-82" />
+<hkern u1="y" u2="&#x201a;" k="82" />
+<hkern u1="y" u2="&#x2019;" k="-82" />
+<hkern u1="y" u2="&#x3f;" k="-41" />
+<hkern u1="y" u2="&#x2e;" k="82" />
+<hkern u1="y" u2="&#x2c;" k="82" />
+<hkern u1="y" u2="&#x27;" k="-82" />
+<hkern u1="y" u2="&#x22;" k="-82" />
+<hkern u1="&#x7b;" u2="J" k="-184" />
+<hkern u1="&#xc0;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc0;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc0;" u2="&#x178;" k="123" />
+<hkern u1="&#xc0;" u2="&#x152;" k="41" />
+<hkern u1="&#xc0;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc0;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc0;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc0;" u2="Y" k="123" />
+<hkern u1="&#xc0;" u2="W" k="82" />
+<hkern u1="&#xc0;" u2="V" k="82" />
+<hkern u1="&#xc0;" u2="T" k="143" />
+<hkern u1="&#xc0;" u2="Q" k="41" />
+<hkern u1="&#xc0;" u2="O" k="41" />
+<hkern u1="&#xc0;" u2="J" k="-266" />
+<hkern u1="&#xc0;" u2="G" k="41" />
+<hkern u1="&#xc0;" u2="C" k="41" />
+<hkern u1="&#xc0;" u2="&#x27;" k="143" />
+<hkern u1="&#xc0;" u2="&#x22;" k="143" />
+<hkern u1="&#xc1;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc1;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc1;" u2="&#x178;" k="123" />
+<hkern u1="&#xc1;" u2="&#x152;" k="41" />
+<hkern u1="&#xc1;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc1;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc1;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc1;" u2="Y" k="123" />
+<hkern u1="&#xc1;" u2="W" k="82" />
+<hkern u1="&#xc1;" u2="V" k="82" />
+<hkern u1="&#xc1;" u2="T" k="143" />
+<hkern u1="&#xc1;" u2="Q" k="41" />
+<hkern u1="&#xc1;" u2="O" k="41" />
+<hkern u1="&#xc1;" u2="J" k="-266" />
+<hkern u1="&#xc1;" u2="G" k="41" />
+<hkern u1="&#xc1;" u2="C" k="41" />
+<hkern u1="&#xc1;" u2="&#x27;" k="143" />
+<hkern u1="&#xc1;" u2="&#x22;" k="143" />
+<hkern u1="&#xc2;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc2;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc2;" u2="&#x178;" k="123" />
+<hkern u1="&#xc2;" u2="&#x152;" k="41" />
+<hkern u1="&#xc2;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc2;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc2;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc2;" u2="Y" k="123" />
+<hkern u1="&#xc2;" u2="W" k="82" />
+<hkern u1="&#xc2;" u2="V" k="82" />
+<hkern u1="&#xc2;" u2="T" k="143" />
+<hkern u1="&#xc2;" u2="Q" k="41" />
+<hkern u1="&#xc2;" u2="O" k="41" />
+<hkern u1="&#xc2;" u2="J" k="-266" />
+<hkern u1="&#xc2;" u2="G" k="41" />
+<hkern u1="&#xc2;" u2="C" k="41" />
+<hkern u1="&#xc2;" u2="&#x27;" k="143" />
+<hkern u1="&#xc2;" u2="&#x22;" k="143" />
+<hkern u1="&#xc3;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc3;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc3;" u2="&#x178;" k="123" />
+<hkern u1="&#xc3;" u2="&#x152;" k="41" />
+<hkern u1="&#xc3;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc3;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc3;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc3;" u2="Y" k="123" />
+<hkern u1="&#xc3;" u2="W" k="82" />
+<hkern u1="&#xc3;" u2="V" k="82" />
+<hkern u1="&#xc3;" u2="T" k="143" />
+<hkern u1="&#xc3;" u2="Q" k="41" />
+<hkern u1="&#xc3;" u2="O" k="41" />
+<hkern u1="&#xc3;" u2="J" k="-266" />
+<hkern u1="&#xc3;" u2="G" k="41" />
+<hkern u1="&#xc3;" u2="C" k="41" />
+<hkern u1="&#xc3;" u2="&#x27;" k="143" />
+<hkern u1="&#xc3;" u2="&#x22;" k="143" />
+<hkern u1="&#xc4;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc4;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc4;" u2="&#x178;" k="123" />
+<hkern u1="&#xc4;" u2="&#x152;" k="41" />
+<hkern u1="&#xc4;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc4;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc4;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc4;" u2="Y" k="123" />
+<hkern u1="&#xc4;" u2="W" k="82" />
+<hkern u1="&#xc4;" u2="V" k="82" />
+<hkern u1="&#xc4;" u2="T" k="143" />
+<hkern u1="&#xc4;" u2="Q" k="41" />
+<hkern u1="&#xc4;" u2="O" k="41" />
+<hkern u1="&#xc4;" u2="J" k="-266" />
+<hkern u1="&#xc4;" u2="G" k="41" />
+<hkern u1="&#xc4;" u2="C" k="41" />
+<hkern u1="&#xc4;" u2="&#x27;" k="143" />
+<hkern u1="&#xc4;" u2="&#x22;" k="143" />
+<hkern u1="&#xc5;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc5;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc5;" u2="&#x178;" k="123" />
+<hkern u1="&#xc5;" u2="&#x152;" k="41" />
+<hkern u1="&#xc5;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc5;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc5;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc5;" u2="Y" k="123" />
+<hkern u1="&#xc5;" u2="W" k="82" />
+<hkern u1="&#xc5;" u2="V" k="82" />
+<hkern u1="&#xc5;" u2="T" k="143" />
+<hkern u1="&#xc5;" u2="Q" k="41" />
+<hkern u1="&#xc5;" u2="O" k="41" />
+<hkern u1="&#xc5;" u2="J" k="-266" />
+<hkern u1="&#xc5;" u2="G" k="41" />
+<hkern u1="&#xc5;" u2="C" k="41" />
+<hkern u1="&#xc5;" u2="&#x27;" k="143" />
+<hkern u1="&#xc5;" u2="&#x22;" k="143" />
+<hkern u1="&#xc6;" u2="J" k="-123" />
+<hkern u1="&#xc7;" u2="&#x152;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc7;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc7;" u2="Q" k="41" />
+<hkern u1="&#xc7;" u2="O" k="41" />
+<hkern u1="&#xc7;" u2="G" k="41" />
+<hkern u1="&#xc7;" u2="C" k="41" />
+<hkern u1="&#xc8;" u2="J" k="-123" />
+<hkern u1="&#xc9;" u2="J" k="-123" />
+<hkern u1="&#xca;" u2="J" k="-123" />
+<hkern u1="&#xcb;" u2="J" k="-123" />
+<hkern u1="&#xd0;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd0;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd0;" u2="&#x178;" k="20" />
+<hkern u1="&#xd0;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd0;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd0;" u2="Z" k="20" />
+<hkern u1="&#xd0;" u2="Y" k="20" />
+<hkern u1="&#xd0;" u2="X" k="41" />
+<hkern u1="&#xd0;" u2="W" k="20" />
+<hkern u1="&#xd0;" u2="V" k="20" />
+<hkern u1="&#xd0;" u2="T" k="61" />
+<hkern u1="&#xd0;" u2="A" k="41" />
+<hkern u1="&#xd0;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd0;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd2;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd2;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd2;" u2="&#x178;" k="20" />
+<hkern u1="&#xd2;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd2;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd2;" u2="Z" k="20" />
+<hkern u1="&#xd2;" u2="Y" k="20" />
+<hkern u1="&#xd2;" u2="X" k="41" />
+<hkern u1="&#xd2;" u2="W" k="20" />
+<hkern u1="&#xd2;" u2="V" k="20" />
+<hkern u1="&#xd2;" u2="T" k="61" />
+<hkern u1="&#xd2;" u2="A" k="41" />
+<hkern u1="&#xd2;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd2;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd3;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd3;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd3;" u2="&#x178;" k="20" />
+<hkern u1="&#xd3;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd3;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd3;" u2="Z" k="20" />
+<hkern u1="&#xd3;" u2="Y" k="20" />
+<hkern u1="&#xd3;" u2="X" k="41" />
+<hkern u1="&#xd3;" u2="W" k="20" />
+<hkern u1="&#xd3;" u2="V" k="20" />
+<hkern u1="&#xd3;" u2="T" k="61" />
+<hkern u1="&#xd3;" u2="A" k="41" />
+<hkern u1="&#xd3;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd3;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd4;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd4;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd4;" u2="&#x178;" k="20" />
+<hkern u1="&#xd4;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd4;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd4;" u2="Z" k="20" />
+<hkern u1="&#xd4;" u2="Y" k="20" />
+<hkern u1="&#xd4;" u2="X" k="41" />
+<hkern u1="&#xd4;" u2="W" k="20" />
+<hkern u1="&#xd4;" u2="V" k="20" />
+<hkern u1="&#xd4;" u2="T" k="61" />
+<hkern u1="&#xd4;" u2="A" k="41" />
+<hkern u1="&#xd4;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd4;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd5;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd5;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd5;" u2="&#x178;" k="20" />
+<hkern u1="&#xd5;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd5;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd5;" u2="Z" k="20" />
+<hkern u1="&#xd5;" u2="Y" k="20" />
+<hkern u1="&#xd5;" u2="X" k="41" />
+<hkern u1="&#xd5;" u2="W" k="20" />
+<hkern u1="&#xd5;" u2="V" k="20" />
+<hkern u1="&#xd5;" u2="T" k="61" />
+<hkern u1="&#xd5;" u2="A" k="41" />
+<hkern u1="&#xd5;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd5;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd6;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd6;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd6;" u2="&#x178;" k="20" />
+<hkern u1="&#xd6;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd6;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd6;" u2="Z" k="20" />
+<hkern u1="&#xd6;" u2="Y" k="20" />
+<hkern u1="&#xd6;" u2="X" k="41" />
+<hkern u1="&#xd6;" u2="W" k="20" />
+<hkern u1="&#xd6;" u2="V" k="20" />
+<hkern u1="&#xd6;" u2="T" k="61" />
+<hkern u1="&#xd6;" u2="A" k="41" />
+<hkern u1="&#xd6;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd6;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd8;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd8;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd8;" u2="&#x178;" k="20" />
+<hkern u1="&#xd8;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd8;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd8;" u2="Z" k="20" />
+<hkern u1="&#xd8;" u2="Y" k="20" />
+<hkern u1="&#xd8;" u2="X" k="41" />
+<hkern u1="&#xd8;" u2="W" k="20" />
+<hkern u1="&#xd8;" u2="V" k="20" />
+<hkern u1="&#xd8;" u2="T" k="61" />
+<hkern u1="&#xd8;" u2="A" k="41" />
+<hkern u1="&#xd8;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd8;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd9;" u2="&#x201e;" k="41" />
+<hkern u1="&#xd9;" u2="&#x201a;" k="41" />
+<hkern u1="&#xd9;" u2="&#xc5;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc4;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc3;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc2;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc1;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc0;" k="20" />
+<hkern u1="&#xd9;" u2="A" k="20" />
+<hkern u1="&#xd9;" u2="&#x2e;" k="41" />
+<hkern u1="&#xd9;" u2="&#x2c;" k="41" />
+<hkern u1="&#xda;" u2="&#x201e;" k="41" />
+<hkern u1="&#xda;" u2="&#x201a;" k="41" />
+<hkern u1="&#xda;" u2="&#xc5;" k="20" />
+<hkern u1="&#xda;" u2="&#xc4;" k="20" />
+<hkern u1="&#xda;" u2="&#xc3;" k="20" />
+<hkern u1="&#xda;" u2="&#xc2;" k="20" />
+<hkern u1="&#xda;" u2="&#xc1;" k="20" />
+<hkern u1="&#xda;" u2="&#xc0;" k="20" />
+<hkern u1="&#xda;" u2="A" k="20" />
+<hkern u1="&#xda;" u2="&#x2e;" k="41" />
+<hkern u1="&#xda;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdb;" u2="&#x201e;" k="41" />
+<hkern u1="&#xdb;" u2="&#x201a;" k="41" />
+<hkern u1="&#xdb;" u2="&#xc5;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc4;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc3;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc2;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc1;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc0;" k="20" />
+<hkern u1="&#xdb;" u2="A" k="20" />
+<hkern u1="&#xdb;" u2="&#x2e;" k="41" />
+<hkern u1="&#xdb;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdc;" u2="&#x201e;" k="41" />
+<hkern u1="&#xdc;" u2="&#x201a;" k="41" />
+<hkern u1="&#xdc;" u2="&#xc5;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc4;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc3;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc2;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc1;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc0;" k="20" />
+<hkern u1="&#xdc;" u2="A" k="20" />
+<hkern u1="&#xdc;" u2="&#x2e;" k="41" />
+<hkern u1="&#xdc;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdd;" u2="&#x201e;" k="123" />
+<hkern u1="&#xdd;" u2="&#x201a;" k="123" />
+<hkern u1="&#xdd;" u2="&#x153;" k="102" />
+<hkern u1="&#xdd;" u2="&#x152;" k="41" />
+<hkern u1="&#xdd;" u2="&#xfc;" k="61" />
+<hkern u1="&#xdd;" u2="&#xfb;" k="61" />
+<hkern u1="&#xdd;" u2="&#xfa;" k="61" />
+<hkern u1="&#xdd;" u2="&#xf9;" k="61" />
+<hkern u1="&#xdd;" u2="&#xf8;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf6;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf5;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf4;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf3;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf2;" k="102" />
+<hkern u1="&#xdd;" u2="&#xeb;" k="102" />
+<hkern u1="&#xdd;" u2="&#xea;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe9;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe8;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe7;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe6;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe5;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe4;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe3;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe2;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe1;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe0;" k="102" />
+<hkern u1="&#xdd;" u2="&#xd8;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd6;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd5;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd4;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd3;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd2;" k="41" />
+<hkern u1="&#xdd;" u2="&#xc7;" k="41" />
+<hkern u1="&#xdd;" u2="&#xc5;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc4;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc3;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc2;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc1;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc0;" k="123" />
+<hkern u1="&#xdd;" u2="z" k="41" />
+<hkern u1="&#xdd;" u2="u" k="61" />
+<hkern u1="&#xdd;" u2="s" k="82" />
+<hkern u1="&#xdd;" u2="r" k="61" />
+<hkern u1="&#xdd;" u2="q" k="102" />
+<hkern u1="&#xdd;" u2="p" k="61" />
+<hkern u1="&#xdd;" u2="o" k="102" />
+<hkern u1="&#xdd;" u2="n" k="61" />
+<hkern u1="&#xdd;" u2="m" k="61" />
+<hkern u1="&#xdd;" u2="g" k="41" />
+<hkern u1="&#xdd;" u2="e" k="102" />
+<hkern u1="&#xdd;" u2="d" k="102" />
+<hkern u1="&#xdd;" u2="c" k="102" />
+<hkern u1="&#xdd;" u2="a" k="102" />
+<hkern u1="&#xdd;" u2="Q" k="41" />
+<hkern u1="&#xdd;" u2="O" k="41" />
+<hkern u1="&#xdd;" u2="G" k="41" />
+<hkern u1="&#xdd;" u2="C" k="41" />
+<hkern u1="&#xdd;" u2="A" k="123" />
+<hkern u1="&#xdd;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xdd;" u2="&#x2e;" k="123" />
+<hkern u1="&#xdd;" u2="&#x2c;" k="123" />
+<hkern u1="&#xde;" u2="&#x201e;" k="266" />
+<hkern u1="&#xde;" u2="&#x201a;" k="266" />
+<hkern u1="&#xde;" u2="&#xc5;" k="102" />
+<hkern u1="&#xde;" u2="&#xc4;" k="102" />
+<hkern u1="&#xde;" u2="&#xc3;" k="102" />
+<hkern u1="&#xde;" u2="&#xc2;" k="102" />
+<hkern u1="&#xde;" u2="&#xc1;" k="102" />
+<hkern u1="&#xde;" u2="&#xc0;" k="102" />
+<hkern u1="&#xde;" u2="Z" k="20" />
+<hkern u1="&#xde;" u2="X" k="41" />
+<hkern u1="&#xde;" u2="A" k="102" />
+<hkern u1="&#xde;" u2="&#x2e;" k="266" />
+<hkern u1="&#xde;" u2="&#x2c;" k="266" />
+<hkern u1="&#xe0;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe0;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe0;" u2="&#x27;" k="20" />
+<hkern u1="&#xe0;" u2="&#x22;" k="20" />
+<hkern u1="&#xe1;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe1;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe1;" u2="&#x27;" k="20" />
+<hkern u1="&#xe1;" u2="&#x22;" k="20" />
+<hkern u1="&#xe2;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe2;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe2;" u2="&#x27;" k="20" />
+<hkern u1="&#xe2;" u2="&#x22;" k="20" />
+<hkern u1="&#xe3;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe3;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe3;" u2="&#x27;" k="20" />
+<hkern u1="&#xe3;" u2="&#x22;" k="20" />
+<hkern u1="&#xe4;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe4;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe4;" u2="&#x27;" k="20" />
+<hkern u1="&#xe4;" u2="&#x22;" k="20" />
+<hkern u1="&#xe5;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe5;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe5;" u2="&#x27;" k="20" />
+<hkern u1="&#xe5;" u2="&#x22;" k="20" />
+<hkern u1="&#xe8;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe8;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe8;" u2="&#xfd;" k="41" />
+<hkern u1="&#xe8;" u2="z" k="20" />
+<hkern u1="&#xe8;" u2="y" k="41" />
+<hkern u1="&#xe8;" u2="x" k="41" />
+<hkern u1="&#xe8;" u2="w" k="41" />
+<hkern u1="&#xe8;" u2="v" k="41" />
+<hkern u1="&#xe8;" u2="&#x27;" k="20" />
+<hkern u1="&#xe8;" u2="&#x22;" k="20" />
+<hkern u1="&#xe9;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe9;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe9;" u2="&#xfd;" k="41" />
+<hkern u1="&#xe9;" u2="z" k="20" />
+<hkern u1="&#xe9;" u2="y" k="41" />
+<hkern u1="&#xe9;" u2="x" k="41" />
+<hkern u1="&#xe9;" u2="w" k="41" />
+<hkern u1="&#xe9;" u2="v" k="41" />
+<hkern u1="&#xe9;" u2="&#x27;" k="20" />
+<hkern u1="&#xe9;" u2="&#x22;" k="20" />
+<hkern u1="&#xea;" u2="&#x201d;" k="20" />
+<hkern u1="&#xea;" u2="&#x2019;" k="20" />
+<hkern u1="&#xea;" u2="&#xfd;" k="41" />
+<hkern u1="&#xea;" u2="z" k="20" />
+<hkern u1="&#xea;" u2="y" k="41" />
+<hkern u1="&#xea;" u2="x" k="41" />
+<hkern u1="&#xea;" u2="w" k="41" />
+<hkern u1="&#xea;" u2="v" k="41" />
+<hkern u1="&#xea;" u2="&#x27;" k="20" />
+<hkern u1="&#xea;" u2="&#x22;" k="20" />
+<hkern u1="&#xeb;" u2="&#x201d;" k="20" />
+<hkern u1="&#xeb;" u2="&#x2019;" k="20" />
+<hkern u1="&#xeb;" u2="&#xfd;" k="41" />
+<hkern u1="&#xeb;" u2="z" k="20" />
+<hkern u1="&#xeb;" u2="y" k="41" />
+<hkern u1="&#xeb;" u2="x" k="41" />
+<hkern u1="&#xeb;" u2="w" k="41" />
+<hkern u1="&#xeb;" u2="v" k="41" />
+<hkern u1="&#xeb;" u2="&#x27;" k="20" />
+<hkern u1="&#xeb;" u2="&#x22;" k="20" />
+<hkern u1="&#xf0;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf0;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf0;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf0;" u2="z" k="20" />
+<hkern u1="&#xf0;" u2="y" k="41" />
+<hkern u1="&#xf0;" u2="x" k="41" />
+<hkern u1="&#xf0;" u2="w" k="41" />
+<hkern u1="&#xf0;" u2="v" k="41" />
+<hkern u1="&#xf0;" u2="&#x27;" k="20" />
+<hkern u1="&#xf0;" u2="&#x22;" k="20" />
+<hkern u1="&#xf2;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf2;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf2;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf2;" u2="z" k="20" />
+<hkern u1="&#xf2;" u2="y" k="41" />
+<hkern u1="&#xf2;" u2="x" k="41" />
+<hkern u1="&#xf2;" u2="w" k="41" />
+<hkern u1="&#xf2;" u2="v" k="41" />
+<hkern u1="&#xf2;" u2="&#x27;" k="20" />
+<hkern u1="&#xf2;" u2="&#x22;" k="20" />
+<hkern u1="&#xf3;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf3;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf3;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf3;" u2="z" k="20" />
+<hkern u1="&#xf3;" u2="y" k="41" />
+<hkern u1="&#xf3;" u2="x" k="41" />
+<hkern u1="&#xf3;" u2="w" k="41" />
+<hkern u1="&#xf3;" u2="v" k="41" />
+<hkern u1="&#xf3;" u2="&#x27;" k="20" />
+<hkern u1="&#xf3;" u2="&#x22;" k="20" />
+<hkern u1="&#xf4;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf4;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf4;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf4;" u2="z" k="20" />
+<hkern u1="&#xf4;" u2="y" k="41" />
+<hkern u1="&#xf4;" u2="x" k="41" />
+<hkern u1="&#xf4;" u2="w" k="41" />
+<hkern u1="&#xf4;" u2="v" k="41" />
+<hkern u1="&#xf4;" u2="&#x27;" k="20" />
+<hkern u1="&#xf4;" u2="&#x22;" k="20" />
+<hkern u1="&#xf6;" u2="&#x201d;" k="41" />
+<hkern u1="&#xf6;" u2="&#x2019;" k="41" />
+<hkern u1="&#xf6;" u2="&#x27;" k="41" />
+<hkern u1="&#xf6;" u2="&#x22;" k="41" />
+<hkern u1="&#xf8;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf8;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf8;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf8;" u2="z" k="20" />
+<hkern u1="&#xf8;" u2="y" k="41" />
+<hkern u1="&#xf8;" u2="x" k="41" />
+<hkern u1="&#xf8;" u2="w" k="41" />
+<hkern u1="&#xf8;" u2="v" k="41" />
+<hkern u1="&#xf8;" u2="&#x27;" k="20" />
+<hkern u1="&#xf8;" u2="&#x22;" k="20" />
+<hkern u1="&#xfd;" u2="&#x201e;" k="82" />
+<hkern u1="&#xfd;" u2="&#x201d;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x201a;" k="82" />
+<hkern u1="&#xfd;" u2="&#x2019;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xfd;" u2="&#x2e;" k="82" />
+<hkern u1="&#xfd;" u2="&#x2c;" k="82" />
+<hkern u1="&#xfd;" u2="&#x27;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x22;" k="-82" />
+<hkern u1="&#xfe;" u2="&#x201d;" k="20" />
+<hkern u1="&#xfe;" u2="&#x2019;" k="20" />
+<hkern u1="&#xfe;" u2="&#xfd;" k="41" />
+<hkern u1="&#xfe;" u2="z" k="20" />
+<hkern u1="&#xfe;" u2="y" k="41" />
+<hkern u1="&#xfe;" u2="x" k="41" />
+<hkern u1="&#xfe;" u2="w" k="41" />
+<hkern u1="&#xfe;" u2="v" k="41" />
+<hkern u1="&#xfe;" u2="&#x27;" k="20" />
+<hkern u1="&#xfe;" u2="&#x22;" k="20" />
+<hkern u1="&#xff;" u2="&#x201e;" k="82" />
+<hkern u1="&#xff;" u2="&#x201d;" k="-82" />
+<hkern u1="&#xff;" u2="&#x201a;" k="82" />
+<hkern u1="&#xff;" u2="&#x2019;" k="-82" />
+<hkern u1="&#xff;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xff;" u2="&#x2e;" k="82" />
+<hkern u1="&#xff;" u2="&#x2c;" k="82" />
+<hkern u1="&#xff;" u2="&#x27;" k="-82" />
+<hkern u1="&#xff;" u2="&#x22;" k="-82" />
+<hkern u1="&#x152;" u2="J" k="-123" />
+<hkern u1="&#x178;" u2="&#x201e;" k="123" />
+<hkern u1="&#x178;" u2="&#x201a;" k="123" />
+<hkern u1="&#x178;" u2="&#x153;" k="102" />
+<hkern u1="&#x178;" u2="&#x152;" k="41" />
+<hkern u1="&#x178;" u2="&#xfc;" k="61" />
+<hkern u1="&#x178;" u2="&#xfb;" k="61" />
+<hkern u1="&#x178;" u2="&#xfa;" k="61" />
+<hkern u1="&#x178;" u2="&#xf9;" k="61" />
+<hkern u1="&#x178;" u2="&#xf8;" k="102" />
+<hkern u1="&#x178;" u2="&#xf6;" k="102" />
+<hkern u1="&#x178;" u2="&#xf5;" k="102" />
+<hkern u1="&#x178;" u2="&#xf4;" k="102" />
+<hkern u1="&#x178;" u2="&#xf3;" k="102" />
+<hkern u1="&#x178;" u2="&#xf2;" k="102" />
+<hkern u1="&#x178;" u2="&#xeb;" k="102" />
+<hkern u1="&#x178;" u2="&#xea;" k="102" />
+<hkern u1="&#x178;" u2="&#xe9;" k="102" />
+<hkern u1="&#x178;" u2="&#xe8;" k="102" />
+<hkern u1="&#x178;" u2="&#xe7;" k="102" />
+<hkern u1="&#x178;" u2="&#xe6;" k="102" />
+<hkern u1="&#x178;" u2="&#xe5;" k="102" />
+<hkern u1="&#x178;" u2="&#xe4;" k="102" />
+<hkern u1="&#x178;" u2="&#xe3;" k="102" />
+<hkern u1="&#x178;" u2="&#xe2;" k="102" />
+<hkern u1="&#x178;" u2="&#xe1;" k="102" />
+<hkern u1="&#x178;" u2="&#xe0;" k="102" />
+<hkern u1="&#x178;" u2="&#xd8;" k="41" />
+<hkern u1="&#x178;" u2="&#xd6;" k="41" />
+<hkern u1="&#x178;" u2="&#xd5;" k="41" />
+<hkern u1="&#x178;" u2="&#xd4;" k="41" />
+<hkern u1="&#x178;" u2="&#xd3;" k="41" />
+<hkern u1="&#x178;" u2="&#xd2;" k="41" />
+<hkern u1="&#x178;" u2="&#xc7;" k="41" />
+<hkern u1="&#x178;" u2="&#xc5;" k="123" />
+<hkern u1="&#x178;" u2="&#xc4;" k="123" />
+<hkern u1="&#x178;" u2="&#xc3;" k="123" />
+<hkern u1="&#x178;" u2="&#xc2;" k="123" />
+<hkern u1="&#x178;" u2="&#xc1;" k="123" />
+<hkern u1="&#x178;" u2="&#xc0;" k="123" />
+<hkern u1="&#x178;" u2="z" k="41" />
+<hkern u1="&#x178;" u2="u" k="61" />
+<hkern u1="&#x178;" u2="s" k="82" />
+<hkern u1="&#x178;" u2="r" k="61" />
+<hkern u1="&#x178;" u2="q" k="102" />
+<hkern u1="&#x178;" u2="p" k="61" />
+<hkern u1="&#x178;" u2="o" k="102" />
+<hkern u1="&#x178;" u2="n" k="61" />
+<hkern u1="&#x178;" u2="m" k="61" />
+<hkern u1="&#x178;" u2="g" k="41" />
+<hkern u1="&#x178;" u2="e" k="102" />
+<hkern u1="&#x178;" u2="d" k="102" />
+<hkern u1="&#x178;" u2="c" k="102" />
+<hkern u1="&#x178;" u2="a" k="102" />
+<hkern u1="&#x178;" u2="Q" k="41" />
+<hkern u1="&#x178;" u2="O" k="41" />
+<hkern u1="&#x178;" u2="G" k="41" />
+<hkern u1="&#x178;" u2="C" k="41" />
+<hkern u1="&#x178;" u2="A" k="123" />
+<hkern u1="&#x178;" u2="&#x3f;" k="-41" />
+<hkern u1="&#x178;" u2="&#x2e;" k="123" />
+<hkern u1="&#x178;" u2="&#x2c;" k="123" />
+<hkern u1="&#x2013;" u2="T" k="82" />
+<hkern u1="&#x2014;" u2="T" k="82" />
+<hkern u1="&#x2018;" u2="&#x178;" k="-20" />
+<hkern u1="&#x2018;" u2="&#x153;" k="123" />
+<hkern u1="&#x2018;" u2="&#xfc;" k="61" />
+<hkern u1="&#x2018;" u2="&#xfb;" k="61" />
+<hkern u1="&#x2018;" u2="&#xfa;" k="61" />
+<hkern u1="&#x2018;" u2="&#xf9;" k="61" />
+<hkern u1="&#x2018;" u2="&#xf8;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf6;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf5;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf4;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf3;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf2;" k="123" />
+<hkern u1="&#x2018;" u2="&#xeb;" k="123" />
+<hkern u1="&#x2018;" u2="&#xea;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe9;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe8;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe7;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe6;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe5;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe4;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe3;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe2;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe1;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe0;" k="123" />
+<hkern u1="&#x2018;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x2018;" u2="&#xc5;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc4;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc3;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc2;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc1;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc0;" k="143" />
+<hkern u1="&#x2018;" u2="u" k="61" />
+<hkern u1="&#x2018;" u2="s" k="61" />
+<hkern u1="&#x2018;" u2="r" k="61" />
+<hkern u1="&#x2018;" u2="q" k="123" />
+<hkern u1="&#x2018;" u2="p" k="61" />
+<hkern u1="&#x2018;" u2="o" k="123" />
+<hkern u1="&#x2018;" u2="n" k="61" />
+<hkern u1="&#x2018;" u2="m" k="61" />
+<hkern u1="&#x2018;" u2="g" k="61" />
+<hkern u1="&#x2018;" u2="e" k="123" />
+<hkern u1="&#x2018;" u2="d" k="123" />
+<hkern u1="&#x2018;" u2="c" k="123" />
+<hkern u1="&#x2018;" u2="a" k="82" />
+<hkern u1="&#x2018;" u2="Y" k="-20" />
+<hkern u1="&#x2018;" u2="W" k="-41" />
+<hkern u1="&#x2018;" u2="V" k="-41" />
+<hkern u1="&#x2018;" u2="T" k="-41" />
+<hkern u1="&#x2018;" u2="A" k="143" />
+<hkern u1="&#x2019;" u2="&#x178;" k="-20" />
+<hkern u1="&#x2019;" u2="&#x153;" k="123" />
+<hkern u1="&#x2019;" u2="&#xfc;" k="61" />
+<hkern u1="&#x2019;" u2="&#xfb;" k="61" />
+<hkern u1="&#x2019;" u2="&#xfa;" k="61" />
+<hkern u1="&#x2019;" u2="&#xf9;" k="61" />
+<hkern u1="&#x2019;" u2="&#xf8;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf6;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf5;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf4;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf3;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf2;" k="123" />
+<hkern u1="&#x2019;" u2="&#xeb;" k="123" />
+<hkern u1="&#x2019;" u2="&#xea;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe9;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe8;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe7;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe6;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe5;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe4;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe3;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe2;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe1;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe0;" k="123" />
+<hkern u1="&#x2019;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x2019;" u2="&#xc5;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc4;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc3;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc2;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc1;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc0;" k="143" />
+<hkern u1="&#x2019;" u2="u" k="61" />
+<hkern u1="&#x2019;" u2="s" k="61" />
+<hkern u1="&#x2019;" u2="r" k="61" />
+<hkern u1="&#x2019;" u2="q" k="123" />
+<hkern u1="&#x2019;" u2="p" k="61" />
+<hkern u1="&#x2019;" u2="o" k="123" />
+<hkern u1="&#x2019;" u2="n" k="61" />
+<hkern u1="&#x2019;" u2="m" k="61" />
+<hkern u1="&#x2019;" u2="g" k="61" />
+<hkern u1="&#x2019;" u2="e" k="123" />
+<hkern u1="&#x2019;" u2="d" k="123" />
+<hkern u1="&#x2019;" u2="c" k="123" />
+<hkern u1="&#x2019;" u2="a" k="82" />
+<hkern u1="&#x2019;" u2="Y" k="-20" />
+<hkern u1="&#x2019;" u2="W" k="-41" />
+<hkern u1="&#x2019;" u2="V" k="-41" />
+<hkern u1="&#x2019;" u2="T" k="-41" />
+<hkern u1="&#x2019;" u2="A" k="143" />
+<hkern u1="&#x201a;" u2="&#x178;" k="123" />
+<hkern u1="&#x201a;" u2="&#x152;" k="102" />
+<hkern u1="&#x201a;" u2="&#xdd;" k="123" />
+<hkern u1="&#x201a;" u2="&#xdc;" k="41" />
+<hkern u1="&#x201a;" u2="&#xdb;" k="41" />
+<hkern u1="&#x201a;" u2="&#xda;" k="41" />
+<hkern u1="&#x201a;" u2="&#xd9;" k="41" />
+<hkern u1="&#x201a;" u2="&#xd8;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd6;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd5;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd4;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd3;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd2;" k="102" />
+<hkern u1="&#x201a;" u2="&#xc7;" k="102" />
+<hkern u1="&#x201a;" u2="Y" k="123" />
+<hkern u1="&#x201a;" u2="W" k="123" />
+<hkern u1="&#x201a;" u2="V" k="123" />
+<hkern u1="&#x201a;" u2="U" k="41" />
+<hkern u1="&#x201a;" u2="T" k="143" />
+<hkern u1="&#x201a;" u2="Q" k="102" />
+<hkern u1="&#x201a;" u2="O" k="102" />
+<hkern u1="&#x201a;" u2="G" k="102" />
+<hkern u1="&#x201a;" u2="C" k="102" />
+<hkern u1="&#x201c;" u2="&#x178;" k="-20" />
+<hkern u1="&#x201c;" u2="&#x153;" k="123" />
+<hkern u1="&#x201c;" u2="&#xfc;" k="61" />
+<hkern u1="&#x201c;" u2="&#xfb;" k="61" />
+<hkern u1="&#x201c;" u2="&#xfa;" k="61" />
+<hkern u1="&#x201c;" u2="&#xf9;" k="61" />
+<hkern u1="&#x201c;" u2="&#xf8;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf6;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf5;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf4;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf3;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf2;" k="123" />
+<hkern u1="&#x201c;" u2="&#xeb;" k="123" />
+<hkern u1="&#x201c;" u2="&#xea;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe9;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe8;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe7;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe6;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe5;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe4;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe3;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe2;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe1;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe0;" k="123" />
+<hkern u1="&#x201c;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x201c;" u2="&#xc5;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc4;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc3;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc2;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc1;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc0;" k="143" />
+<hkern u1="&#x201c;" u2="u" k="61" />
+<hkern u1="&#x201c;" u2="s" k="61" />
+<hkern u1="&#x201c;" u2="r" k="61" />
+<hkern u1="&#x201c;" u2="q" k="123" />
+<hkern u1="&#x201c;" u2="p" k="61" />
+<hkern u1="&#x201c;" u2="o" k="123" />
+<hkern u1="&#x201c;" u2="n" k="61" />
+<hkern u1="&#x201c;" u2="m" k="61" />
+<hkern u1="&#x201c;" u2="g" k="61" />
+<hkern u1="&#x201c;" u2="e" k="123" />
+<hkern u1="&#x201c;" u2="d" k="123" />
+<hkern u1="&#x201c;" u2="c" k="123" />
+<hkern u1="&#x201c;" u2="a" k="82" />
+<hkern u1="&#x201c;" u2="Y" k="-20" />
+<hkern u1="&#x201c;" u2="W" k="-41" />
+<hkern u1="&#x201c;" u2="V" k="-41" />
+<hkern u1="&#x201c;" u2="T" k="-41" />
+<hkern u1="&#x201c;" u2="A" k="143" />
+<hkern u1="&#x201e;" u2="&#x178;" k="123" />
+<hkern u1="&#x201e;" u2="&#x152;" k="102" />
+<hkern u1="&#x201e;" u2="&#xdd;" k="123" />
+<hkern u1="&#x201e;" u2="&#xdc;" k="41" />
+<hkern u1="&#x201e;" u2="&#xdb;" k="41" />
+<hkern u1="&#x201e;" u2="&#xda;" k="41" />
+<hkern u1="&#x201e;" u2="&#xd9;" k="41" />
+<hkern u1="&#x201e;" u2="&#xd8;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd6;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd5;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd4;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd3;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd2;" k="102" />
+<hkern u1="&#x201e;" u2="&#xc7;" k="102" />
+<hkern u1="&#x201e;" u2="Y" k="123" />
+<hkern u1="&#x201e;" u2="W" k="123" />
+<hkern u1="&#x201e;" u2="V" k="123" />
+<hkern u1="&#x201e;" u2="U" k="41" />
+<hkern u1="&#x201e;" u2="T" k="143" />
+<hkern u1="&#x201e;" u2="Q" k="102" />
+<hkern u1="&#x201e;" u2="O" k="102" />
+<hkern u1="&#x201e;" u2="G" k="102" />
+<hkern u1="&#x201e;" u2="C" k="102" />
+</font>
+</defs></svg> 
\ No newline at end of file
diff --git a/html/simple-shape/docs/fonts/OpenSans-Regular-webfont.woff b/html/simple-shape/docs/fonts/OpenSans-Regular-webfont.woff
new file mode 100644
index 0000000..e231183
--- /dev/null
+++ b/html/simple-shape/docs/fonts/OpenSans-Regular-webfont.woff
Binary files differdiff --git a/html/simple-shape/docs/global.html b/html/simple-shape/docs/global.html
new file mode 100644
index 0000000..852af9d
--- /dev/null
+++ b/html/simple-shape/docs/global.html
@@ -0,0 +1,265 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Global</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Global</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+        
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+        
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id="CONFIG"><span class="type-signature">(constant) </span>CONFIG<span class="type-signature"> :Object</span></h4>
+
+
+
+
+<div class="description">
+    Configuration object for application-wide settings
+Centralizes magic numbers and configuration values
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Object</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="app.js.html">app.js</a>, <a href="app.js.html#line6">line 6</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="canvas"><span class="type-signature">(constant) </span>canvas<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    Canvas Setup and Configuration
+This section initializes a high-resolution canvas optimized for both screen display and printing.
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="app.js.html">app.js</a>, <a href="app.js.html#line31">line 31</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="ContextManager.html">ContextManager</a></li><li><a href="Layout.html">Layout</a></li><li><a href="Patterns.html">Patterns</a></li><li><a href="Shapes.html">Shapes</a></li><li><a href="Utils.html">Utils</a></li></ul><h3>Global</h3><ul><li><a href="global.html#CONFIG">CONFIG</a></li><li><a href="global.html#canvas">canvas</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.3</a> on Mon Feb 17 2025 15:13:39 GMT-0500 (Eastern Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/html/simple-shape/docs/index.html b/html/simple-shape/docs/index.html
new file mode 100644
index 0000000..c8415cd
--- /dev/null
+++ b/html/simple-shape/docs/index.html
@@ -0,0 +1,65 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Home</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Home</h1>
+
+    
+
+
+
+    
+
+
+    <h3> </h3>
+
+
+
+
+
+
+
+
+
+
+    
+
+
+
+
+
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="ContextManager.html">ContextManager</a></li><li><a href="Layout.html">Layout</a></li><li><a href="Patterns.html">Patterns</a></li><li><a href="Shapes.html">Shapes</a></li><li><a href="Utils.html">Utils</a></li></ul><h3>Global</h3><ul><li><a href="global.html#CONFIG">CONFIG</a></li><li><a href="global.html#canvas">canvas</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.3</a> on Mon Feb 17 2025 15:13:39 GMT-0500 (Eastern Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/html/simple-shape/docs/scripts/linenumber.js b/html/simple-shape/docs/scripts/linenumber.js
new file mode 100644
index 0000000..4354785
--- /dev/null
+++ b/html/simple-shape/docs/scripts/linenumber.js
@@ -0,0 +1,25 @@
+/*global document */
+(() => {
+    const source = document.getElementsByClassName('prettyprint source linenums');
+    let i = 0;
+    let lineNumber = 0;
+    let lineId;
+    let lines;
+    let totalLines;
+    let anchorHash;
+
+    if (source && source[0]) {
+        anchorHash = document.location.hash.substring(1);
+        lines = source[0].getElementsByTagName('li');
+        totalLines = lines.length;
+
+        for (; i < totalLines; i++) {
+            lineNumber++;
+            lineId = `line${lineNumber}`;
+            lines[i].id = lineId;
+            if (lineId === anchorHash) {
+                lines[i].className += ' selected';
+            }
+        }
+    }
+})();
diff --git a/html/simple-shape/docs/scripts/prettify/Apache-License-2.0.txt b/html/simple-shape/docs/scripts/prettify/Apache-License-2.0.txt
new file mode 100644
index 0000000..d645695
--- /dev/null
+++ b/html/simple-shape/docs/scripts/prettify/Apache-License-2.0.txt
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
diff --git a/html/simple-shape/docs/scripts/prettify/lang-css.js b/html/simple-shape/docs/scripts/prettify/lang-css.js
new file mode 100644
index 0000000..041e1f5
--- /dev/null
+++ b/html/simple-shape/docs/scripts/prettify/lang-css.js
@@ -0,0 +1,2 @@
+PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\f\r ]+/,null," \t\r\n"]],[["str",/^"(?:[^\n\f\r"\\]|\\(?:\r\n?|\n|\f)|\\[\S\s])*"/,null],["str",/^'(?:[^\n\f\r'\\]|\\(?:\r\n?|\n|\f)|\\[\S\s])*'/,null],["lang-css-str",/^url\(([^"')]*)\)/i],["kwd",/^(?:url|rgb|!important|@import|@page|@media|@charset|inherit)(?=[^\w-]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*)\s*:/i],["com",/^\/\*[^*]*\*+(?:[^*/][^*]*\*+)*\//],["com",
+/^(?:<\!--|--\>)/],["lit",/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],["lit",/^#[\da-f]{3,6}/i],["pln",/^-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*/i],["pun",/^[^\s\w"']+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[["kwd",/^-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[["str",/^[^"')]+/]]),["css-str"]);
diff --git a/html/simple-shape/docs/scripts/prettify/prettify.js b/html/simple-shape/docs/scripts/prettify/prettify.js
new file mode 100644
index 0000000..eef5ad7
--- /dev/null
+++ b/html/simple-shape/docs/scripts/prettify/prettify.js
@@ -0,0 +1,28 @@
+var q=null;window.PR_SHOULD_USE_CONTINUATION=!0;
+(function(){function L(a){function m(a){var f=a.charCodeAt(0);if(f!==92)return f;var b=a.charAt(1);return(f=r[b])?f:"0"<=b&&b<="7"?parseInt(a.substring(1),8):b==="u"||b==="x"?parseInt(a.substring(2),16):a.charCodeAt(1)}function e(a){if(a<32)return(a<16?"\\x0":"\\x")+a.toString(16);a=String.fromCharCode(a);if(a==="\\"||a==="-"||a==="["||a==="]")a="\\"+a;return a}function h(a){for(var f=a.substring(1,a.length-1).match(/\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\[0-3][0-7]{0,2}|\\[0-7]{1,2}|\\[\S\s]|[^\\]/g),a=
+[],b=[],o=f[0]==="^",c=o?1:0,i=f.length;c<i;++c){var j=f[c];if(/\\[bdsw]/i.test(j))a.push(j);else{var j=m(j),d;c+2<i&&"-"===f[c+1]?(d=m(f[c+2]),c+=2):d=j;b.push([j,d]);d<65||j>122||(d<65||j>90||b.push([Math.max(65,j)|32,Math.min(d,90)|32]),d<97||j>122||b.push([Math.max(97,j)&-33,Math.min(d,122)&-33]))}}b.sort(function(a,f){return a[0]-f[0]||f[1]-a[1]});f=[];j=[NaN,NaN];for(c=0;c<b.length;++c)i=b[c],i[0]<=j[1]+1?j[1]=Math.max(j[1],i[1]):f.push(j=i);b=["["];o&&b.push("^");b.push.apply(b,a);for(c=0;c<
+f.length;++c)i=f[c],b.push(e(i[0])),i[1]>i[0]&&(i[1]+1>i[0]&&b.push("-"),b.push(e(i[1])));b.push("]");return b.join("")}function y(a){for(var f=a.source.match(/\[(?:[^\\\]]|\\[\S\s])*]|\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\\d+|\\[^\dux]|\(\?[!:=]|[()^]|[^()[\\^]+/g),b=f.length,d=[],c=0,i=0;c<b;++c){var j=f[c];j==="("?++i:"\\"===j.charAt(0)&&(j=+j.substring(1))&&j<=i&&(d[j]=-1)}for(c=1;c<d.length;++c)-1===d[c]&&(d[c]=++t);for(i=c=0;c<b;++c)j=f[c],j==="("?(++i,d[i]===void 0&&(f[c]="(?:")):"\\"===j.charAt(0)&&
+(j=+j.substring(1))&&j<=i&&(f[c]="\\"+d[i]);for(i=c=0;c<b;++c)"^"===f[c]&&"^"!==f[c+1]&&(f[c]="");if(a.ignoreCase&&s)for(c=0;c<b;++c)j=f[c],a=j.charAt(0),j.length>=2&&a==="["?f[c]=h(j):a!=="\\"&&(f[c]=j.replace(/[A-Za-z]/g,function(a){a=a.charCodeAt(0);return"["+String.fromCharCode(a&-33,a|32)+"]"}));return f.join("")}for(var t=0,s=!1,l=!1,p=0,d=a.length;p<d;++p){var g=a[p];if(g.ignoreCase)l=!0;else if(/[a-z]/i.test(g.source.replace(/\\u[\da-f]{4}|\\x[\da-f]{2}|\\[^UXux]/gi,""))){s=!0;l=!1;break}}for(var r=
+{b:8,t:9,n:10,v:11,f:12,r:13},n=[],p=0,d=a.length;p<d;++p){g=a[p];if(g.global||g.multiline)throw Error(""+g);n.push("(?:"+y(g)+")")}return RegExp(n.join("|"),l?"gi":"g")}function M(a){function m(a){switch(a.nodeType){case 1:if(e.test(a.className))break;for(var g=a.firstChild;g;g=g.nextSibling)m(g);g=a.nodeName;if("BR"===g||"LI"===g)h[s]="\n",t[s<<1]=y++,t[s++<<1|1]=a;break;case 3:case 4:g=a.nodeValue,g.length&&(g=p?g.replace(/\r\n?/g,"\n"):g.replace(/[\t\n\r ]+/g," "),h[s]=g,t[s<<1]=y,y+=g.length,
+t[s++<<1|1]=a)}}var e=/(?:^|\s)nocode(?:\s|$)/,h=[],y=0,t=[],s=0,l;a.currentStyle?l=a.currentStyle.whiteSpace:window.getComputedStyle&&(l=document.defaultView.getComputedStyle(a,q).getPropertyValue("white-space"));var p=l&&"pre"===l.substring(0,3);m(a);return{a:h.join("").replace(/\n$/,""),c:t}}function B(a,m,e,h){m&&(a={a:m,d:a},e(a),h.push.apply(h,a.e))}function x(a,m){function e(a){for(var l=a.d,p=[l,"pln"],d=0,g=a.a.match(y)||[],r={},n=0,z=g.length;n<z;++n){var f=g[n],b=r[f],o=void 0,c;if(typeof b===
+"string")c=!1;else{var i=h[f.charAt(0)];if(i)o=f.match(i[1]),b=i[0];else{for(c=0;c<t;++c)if(i=m[c],o=f.match(i[1])){b=i[0];break}o||(b="pln")}if((c=b.length>=5&&"lang-"===b.substring(0,5))&&!(o&&typeof o[1]==="string"))c=!1,b="src";c||(r[f]=b)}i=d;d+=f.length;if(c){c=o[1];var j=f.indexOf(c),k=j+c.length;o[2]&&(k=f.length-o[2].length,j=k-c.length);b=b.substring(5);B(l+i,f.substring(0,j),e,p);B(l+i+j,c,C(b,c),p);B(l+i+k,f.substring(k),e,p)}else p.push(l+i,b)}a.e=p}var h={},y;(function(){for(var e=a.concat(m),
+l=[],p={},d=0,g=e.length;d<g;++d){var r=e[d],n=r[3];if(n)for(var k=n.length;--k>=0;)h[n.charAt(k)]=r;r=r[1];n=""+r;p.hasOwnProperty(n)||(l.push(r),p[n]=q)}l.push(/[\S\s]/);y=L(l)})();var t=m.length;return e}function u(a){var m=[],e=[];a.tripleQuotedStrings?m.push(["str",/^(?:'''(?:[^'\\]|\\[\S\s]|''?(?=[^']))*(?:'''|$)|"""(?:[^"\\]|\\[\S\s]|""?(?=[^"]))*(?:"""|$)|'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$))/,q,"'\""]):a.multiLineStrings?m.push(["str",/^(?:'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$)|`(?:[^\\`]|\\[\S\s])*(?:`|$))/,
+q,"'\"`"]):m.push(["str",/^(?:'(?:[^\n\r'\\]|\\.)*(?:'|$)|"(?:[^\n\r"\\]|\\.)*(?:"|$))/,q,"\"'"]);a.verbatimStrings&&e.push(["str",/^@"(?:[^"]|"")*(?:"|$)/,q]);var h=a.hashComments;h&&(a.cStyleComments?(h>1?m.push(["com",/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,q,"#"]):m.push(["com",/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\n\r]*)/,q,"#"]),e.push(["str",/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,q])):m.push(["com",/^#[^\n\r]*/,
+q,"#"]));a.cStyleComments&&(e.push(["com",/^\/\/[^\n\r]*/,q]),e.push(["com",/^\/\*[\S\s]*?(?:\*\/|$)/,q]));a.regexLiterals&&e.push(["lang-regex",/^(?:^^\.?|[!+-]|!=|!==|#|%|%=|&|&&|&&=|&=|\(|\*|\*=|\+=|,|-=|->|\/|\/=|:|::|;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|[?@[^]|\^=|\^\^|\^\^=|{|\||\|=|\|\||\|\|=|~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\s*(\/(?=[^*/])(?:[^/[\\]|\\[\S\s]|\[(?:[^\\\]]|\\[\S\s])*(?:]|$))+\/)/]);(h=a.types)&&e.push(["typ",h]);a=(""+a.keywords).replace(/^ | $/g,
+"");a.length&&e.push(["kwd",RegExp("^(?:"+a.replace(/[\s,]+/g,"|")+")\\b"),q]);m.push(["pln",/^\s+/,q," \r\n\t\xa0"]);e.push(["lit",/^@[$_a-z][\w$@]*/i,q],["typ",/^(?:[@_]?[A-Z]+[a-z][\w$@]*|\w+_t\b)/,q],["pln",/^[$_a-z][\w$@]*/i,q],["lit",/^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i,q,"0123456789"],["pln",/^\\[\S\s]?/,q],["pun",/^.[^\s\w"-$'./@\\`]*/,q]);return x(m,e)}function D(a,m){function e(a){switch(a.nodeType){case 1:if(k.test(a.className))break;if("BR"===a.nodeName)h(a),
+a.parentNode&&a.parentNode.removeChild(a);else for(a=a.firstChild;a;a=a.nextSibling)e(a);break;case 3:case 4:if(p){var b=a.nodeValue,d=b.match(t);if(d){var c=b.substring(0,d.index);a.nodeValue=c;(b=b.substring(d.index+d[0].length))&&a.parentNode.insertBefore(s.createTextNode(b),a.nextSibling);h(a);c||a.parentNode.removeChild(a)}}}}function h(a){function b(a,d){var e=d?a.cloneNode(!1):a,f=a.parentNode;if(f){var f=b(f,1),g=a.nextSibling;f.appendChild(e);for(var h=g;h;h=g)g=h.nextSibling,f.appendChild(h)}return e}
+for(;!a.nextSibling;)if(a=a.parentNode,!a)return;for(var a=b(a.nextSibling,0),e;(e=a.parentNode)&&e.nodeType===1;)a=e;d.push(a)}var k=/(?:^|\s)nocode(?:\s|$)/,t=/\r\n?|\n/,s=a.ownerDocument,l;a.currentStyle?l=a.currentStyle.whiteSpace:window.getComputedStyle&&(l=s.defaultView.getComputedStyle(a,q).getPropertyValue("white-space"));var p=l&&"pre"===l.substring(0,3);for(l=s.createElement("LI");a.firstChild;)l.appendChild(a.firstChild);for(var d=[l],g=0;g<d.length;++g)e(d[g]);m===(m|0)&&d[0].setAttribute("value",
+m);var r=s.createElement("OL");r.className="linenums";for(var n=Math.max(0,m-1|0)||0,g=0,z=d.length;g<z;++g)l=d[g],l.className="L"+(g+n)%10,l.firstChild||l.appendChild(s.createTextNode("\xa0")),r.appendChild(l);a.appendChild(r)}function k(a,m){for(var e=m.length;--e>=0;){var h=m[e];A.hasOwnProperty(h)?window.console&&console.warn("cannot override language handler %s",h):A[h]=a}}function C(a,m){if(!a||!A.hasOwnProperty(a))a=/^\s*</.test(m)?"default-markup":"default-code";return A[a]}function E(a){var m=
+a.g;try{var e=M(a.h),h=e.a;a.a=h;a.c=e.c;a.d=0;C(m,h)(a);var k=/\bMSIE\b/.test(navigator.userAgent),m=/\n/g,t=a.a,s=t.length,e=0,l=a.c,p=l.length,h=0,d=a.e,g=d.length,a=0;d[g]=s;var r,n;for(n=r=0;n<g;)d[n]!==d[n+2]?(d[r++]=d[n++],d[r++]=d[n++]):n+=2;g=r;for(n=r=0;n<g;){for(var z=d[n],f=d[n+1],b=n+2;b+2<=g&&d[b+1]===f;)b+=2;d[r++]=z;d[r++]=f;n=b}for(d.length=r;h<p;){var o=l[h+2]||s,c=d[a+2]||s,b=Math.min(o,c),i=l[h+1],j;if(i.nodeType!==1&&(j=t.substring(e,b))){k&&(j=j.replace(m,"\r"));i.nodeValue=
+j;var u=i.ownerDocument,v=u.createElement("SPAN");v.className=d[a+1];var x=i.parentNode;x.replaceChild(v,i);v.appendChild(i);e<o&&(l[h+1]=i=u.createTextNode(t.substring(b,o)),x.insertBefore(i,v.nextSibling))}e=b;e>=o&&(h+=2);e>=c&&(a+=2)}}catch(w){"console"in window&&console.log(w&&w.stack?w.stack:w)}}var v=["break,continue,do,else,for,if,return,while"],w=[[v,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"],
+"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"],F=[w,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"],G=[w,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"],
+H=[G,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"],w=[w,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"],I=[v,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"],
+J=[v,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],v=[v,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"],K=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/,N=/\S/,O=u({keywords:[F,H,w,"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END"+
+I,J,v],hashComments:!0,cStyleComments:!0,multiLineStrings:!0,regexLiterals:!0}),A={};k(O,["default-code"]);k(x([],[["pln",/^[^<?]+/],["dec",/^<!\w[^>]*(?:>|$)/],["com",/^<\!--[\S\s]*?(?:--\>|$)/],["lang-",/^<\?([\S\s]+?)(?:\?>|$)/],["lang-",/^<%([\S\s]+?)(?:%>|$)/],["pun",/^(?:<[%?]|[%?]>)/],["lang-",/^<xmp\b[^>]*>([\S\s]+?)<\/xmp\b[^>]*>/i],["lang-js",/^<script\b[^>]*>([\S\s]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\S\s]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),
+["default-markup","htm","html","mxml","xhtml","xml","xsl"]);k(x([["pln",/^\s+/,q," \t\r\n"],["atv",/^(?:"[^"]*"?|'[^']*'?)/,q,"\"'"]],[["tag",/^^<\/?[a-z](?:[\w-.:]*\w)?|\/?>$/i],["atn",/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^\s"'>]*(?:[^\s"'/>]|\/(?=\s)))/],["pun",/^[/<->]+/],["lang-js",/^on\w+\s*=\s*"([^"]+)"/i],["lang-js",/^on\w+\s*=\s*'([^']+)'/i],["lang-js",/^on\w+\s*=\s*([^\s"'>]+)/i],["lang-css",/^style\s*=\s*"([^"]+)"/i],["lang-css",/^style\s*=\s*'([^']+)'/i],["lang-css",
+/^style\s*=\s*([^\s"'>]+)/i]]),["in.tag"]);k(x([],[["atv",/^[\S\s]+/]]),["uq.val"]);k(u({keywords:F,hashComments:!0,cStyleComments:!0,types:K}),["c","cc","cpp","cxx","cyc","m"]);k(u({keywords:"null,true,false"}),["json"]);k(u({keywords:H,hashComments:!0,cStyleComments:!0,verbatimStrings:!0,types:K}),["cs"]);k(u({keywords:G,cStyleComments:!0}),["java"]);k(u({keywords:v,hashComments:!0,multiLineStrings:!0}),["bsh","csh","sh"]);k(u({keywords:I,hashComments:!0,multiLineStrings:!0,tripleQuotedStrings:!0}),
+["cv","py"]);k(u({keywords:"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["perl","pl","pm"]);k(u({keywords:J,hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["rb"]);k(u({keywords:w,cStyleComments:!0,regexLiterals:!0}),["js"]);k(u({keywords:"all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes",
+hashComments:3,cStyleComments:!0,multilineStrings:!0,tripleQuotedStrings:!0,regexLiterals:!0}),["coffee"]);k(x([],[["str",/^[\S\s]+/]]),["regex"]);window.prettyPrintOne=function(a,m,e){var h=document.createElement("PRE");h.innerHTML=a;e&&D(h,e);E({g:m,i:e,h:h});return h.innerHTML};window.prettyPrint=function(a){function m(){for(var e=window.PR_SHOULD_USE_CONTINUATION?l.now()+250:Infinity;p<h.length&&l.now()<e;p++){var n=h[p],k=n.className;if(k.indexOf("prettyprint")>=0){var k=k.match(g),f,b;if(b=
+!k){b=n;for(var o=void 0,c=b.firstChild;c;c=c.nextSibling)var i=c.nodeType,o=i===1?o?b:c:i===3?N.test(c.nodeValue)?b:o:o;b=(f=o===b?void 0:o)&&"CODE"===f.tagName}b&&(k=f.className.match(g));k&&(k=k[1]);b=!1;for(o=n.parentNode;o;o=o.parentNode)if((o.tagName==="pre"||o.tagName==="code"||o.tagName==="xmp")&&o.className&&o.className.indexOf("prettyprint")>=0){b=!0;break}b||((b=(b=n.className.match(/\blinenums\b(?::(\d+))?/))?b[1]&&b[1].length?+b[1]:!0:!1)&&D(n,b),d={g:k,h:n,i:b},E(d))}}p<h.length?setTimeout(m,
+250):a&&a()}for(var e=[document.getElementsByTagName("pre"),document.getElementsByTagName("code"),document.getElementsByTagName("xmp")],h=[],k=0;k<e.length;++k)for(var t=0,s=e[k].length;t<s;++t)h.push(e[k][t]);var e=q,l=Date;l.now||(l={now:function(){return+new Date}});var p=0,d,g=/\blang(?:uage)?-([\w.]+)(?!\S)/;m()};window.PR={createSimpleLexer:x,registerLangHandler:k,sourceDecorator:u,PR_ATTRIB_NAME:"atn",PR_ATTRIB_VALUE:"atv",PR_COMMENT:"com",PR_DECLARATION:"dec",PR_KEYWORD:"kwd",PR_LITERAL:"lit",
+PR_NOCODE:"nocode",PR_PLAIN:"pln",PR_PUNCTUATION:"pun",PR_SOURCE:"src",PR_STRING:"str",PR_TAG:"tag",PR_TYPE:"typ"}})();
diff --git a/html/simple-shape/docs/styles/jsdoc-default.css b/html/simple-shape/docs/styles/jsdoc-default.css
new file mode 100644
index 0000000..7d1729d
--- /dev/null
+++ b/html/simple-shape/docs/styles/jsdoc-default.css
@@ -0,0 +1,358 @@
+@font-face {
+    font-family: 'Open Sans';
+    font-weight: normal;
+    font-style: normal;
+    src: url('../fonts/OpenSans-Regular-webfont.eot');
+    src:
+        local('Open Sans'),
+        local('OpenSans'),
+        url('../fonts/OpenSans-Regular-webfont.eot?#iefix') format('embedded-opentype'),
+        url('../fonts/OpenSans-Regular-webfont.woff') format('woff'),
+        url('../fonts/OpenSans-Regular-webfont.svg#open_sansregular') format('svg');
+}
+
+@font-face {
+    font-family: 'Open Sans Light';
+    font-weight: normal;
+    font-style: normal;
+    src: url('../fonts/OpenSans-Light-webfont.eot');
+    src:
+        local('Open Sans Light'),
+        local('OpenSans Light'),
+        url('../fonts/OpenSans-Light-webfont.eot?#iefix') format('embedded-opentype'),
+        url('../fonts/OpenSans-Light-webfont.woff') format('woff'),
+        url('../fonts/OpenSans-Light-webfont.svg#open_sanslight') format('svg');
+}
+
+html
+{
+    overflow: auto;
+    background-color: #fff;
+    font-size: 14px;
+}
+
+body
+{
+    font-family: 'Open Sans', sans-serif;
+    line-height: 1.5;
+    color: #4d4e53;
+    background-color: white;
+}
+
+a, a:visited, a:active {
+    color: #0095dd;
+    text-decoration: none;
+}
+
+a:hover {
+    text-decoration: underline;
+}
+
+header
+{
+    display: block;
+    padding: 0px 4px;
+}
+
+tt, code, kbd, samp {
+    font-family: Consolas, Monaco, 'Andale Mono', monospace;
+}
+
+.class-description {
+    font-size: 130%;
+    line-height: 140%;
+    margin-bottom: 1em;
+    margin-top: 1em;
+}
+
+.class-description:empty {
+    margin: 0;
+}
+
+#main {
+    float: left;
+    width: 70%;
+}
+
+article dl {
+    margin-bottom: 40px;
+}
+
+article img {
+  max-width: 100%;
+}
+
+section
+{
+    display: block;
+    background-color: #fff;
+    padding: 12px 24px;
+    border-bottom: 1px solid #ccc;
+    margin-right: 30px;
+}
+
+.variation {
+    display: none;
+}
+
+.signature-attributes {
+    font-size: 60%;
+    color: #aaa;
+    font-style: italic;
+    font-weight: lighter;
+}
+
+nav
+{
+    display: block;
+    float: right;
+    margin-top: 28px;
+    width: 30%;
+    box-sizing: border-box;
+    border-left: 1px solid #ccc;
+    padding-left: 16px;
+}
+
+nav ul {
+    font-family: 'Lucida Grande', 'Lucida Sans Unicode', arial, sans-serif;
+    font-size: 100%;
+    line-height: 17px;
+    padding: 0;
+    margin: 0;
+    list-style-type: none;
+}
+
+nav ul a, nav ul a:visited, nav ul a:active {
+    font-family: Consolas, Monaco, 'Andale Mono', monospace;
+    line-height: 18px;
+    color: #4D4E53;
+}
+
+nav h3 {
+    margin-top: 12px;
+}
+
+nav li {
+    margin-top: 6px;
+}
+
+footer {
+    display: block;
+    padding: 6px;
+    margin-top: 12px;
+    font-style: italic;
+    font-size: 90%;
+}
+
+h1, h2, h3, h4 {
+    font-weight: 200;
+    margin: 0;
+}
+
+h1
+{
+    font-family: 'Open Sans Light', sans-serif;
+    font-size: 48px;
+    letter-spacing: -2px;
+    margin: 12px 24px 20px;
+}
+
+h2, h3.subsection-title
+{
+    font-size: 30px;
+    font-weight: 700;
+    letter-spacing: -1px;
+    margin-bottom: 12px;
+}
+
+h3
+{
+    font-size: 24px;
+    letter-spacing: -0.5px;
+    margin-bottom: 12px;
+}
+
+h4
+{
+    font-size: 18px;
+    letter-spacing: -0.33px;
+    margin-bottom: 12px;
+    color: #4d4e53;
+}
+
+h5, .container-overview .subsection-title
+{
+    font-size: 120%;
+    font-weight: bold;
+    letter-spacing: -0.01em;
+    margin: 8px 0 3px 0;
+}
+
+h6
+{
+    font-size: 100%;
+    letter-spacing: -0.01em;
+    margin: 6px 0 3px 0;
+    font-style: italic;
+}
+
+table
+{
+    border-spacing: 0;
+    border: 0;
+    border-collapse: collapse;
+}
+
+td, th
+{
+    border: 1px solid #ddd;
+    margin: 0px;
+    text-align: left;
+    vertical-align: top;
+    padding: 4px 6px;
+    display: table-cell;
+}
+
+thead tr
+{
+    background-color: #ddd;
+    font-weight: bold;
+}
+
+th { border-right: 1px solid #aaa; }
+tr > th:last-child { border-right: 1px solid #ddd; }
+
+.ancestors, .attribs { color: #999; }
+.ancestors a, .attribs a
+{
+    color: #999 !important;
+    text-decoration: none;
+}
+
+.clear
+{
+    clear: both;
+}
+
+.important
+{
+    font-weight: bold;
+    color: #950B02;
+}
+
+.yes-def {
+    text-indent: -1000px;
+}
+
+.type-signature {
+    color: #aaa;
+}
+
+.name, .signature {
+    font-family: Consolas, Monaco, 'Andale Mono', monospace;
+}
+
+.details { margin-top: 14px; border-left: 2px solid #DDD; }
+.details dt { width: 120px; float: left; padding-left: 10px;  padding-top: 6px; }
+.details dd { margin-left: 70px; }
+.details ul { margin: 0; }
+.details ul { list-style-type: none; }
+.details li { margin-left: 30px; padding-top: 6px; }
+.details pre.prettyprint { margin: 0 }
+.details .object-value { padding-top: 0; }
+
+.description {
+    margin-bottom: 1em;
+    margin-top: 1em;
+}
+
+.code-caption
+{
+    font-style: italic;
+    font-size: 107%;
+    margin: 0;
+}
+
+.source
+{
+    border: 1px solid #ddd;
+    width: 80%;
+    overflow: auto;
+}
+
+.prettyprint.source {
+    width: inherit;
+}
+
+.source code
+{
+    font-size: 100%;
+    line-height: 18px;
+    display: block;
+    padding: 4px 12px;
+    margin: 0;
+    background-color: #fff;
+    color: #4D4E53;
+}
+
+.prettyprint code span.line
+{
+  display: inline-block;
+}
+
+.prettyprint.linenums
+{
+  padding-left: 70px;
+  -webkit-user-select: none;
+  -moz-user-select: none;
+  -ms-user-select: none;
+  user-select: none;
+}
+
+.prettyprint.linenums ol
+{
+  padding-left: 0;
+}
+
+.prettyprint.linenums li
+{
+  border-left: 3px #ddd solid;
+}
+
+.prettyprint.linenums li.selected,
+.prettyprint.linenums li.selected *
+{
+  background-color: lightyellow;
+}
+
+.prettyprint.linenums li *
+{
+  -webkit-user-select: text;
+  -moz-user-select: text;
+  -ms-user-select: text;
+  user-select: text;
+}
+
+.params .name, .props .name, .name code {
+    color: #4D4E53;
+    font-family: Consolas, Monaco, 'Andale Mono', monospace;
+    font-size: 100%;
+}
+
+.params td.description > p:first-child,
+.props td.description > p:first-child
+{
+    margin-top: 0;
+    padding-top: 0;
+}
+
+.params td.description > p:last-child,
+.props td.description > p:last-child
+{
+    margin-bottom: 0;
+    padding-bottom: 0;
+}
+
+.disabled {
+    color: #454545;
+}
diff --git a/html/simple-shape/docs/styles/prettify-jsdoc.css b/html/simple-shape/docs/styles/prettify-jsdoc.css
new file mode 100644
index 0000000..5a2526e
--- /dev/null
+++ b/html/simple-shape/docs/styles/prettify-jsdoc.css
@@ -0,0 +1,111 @@
+/* JSDoc prettify.js theme */
+
+/* plain text */
+.pln {
+  color: #000000;
+  font-weight: normal;
+  font-style: normal;
+}
+
+/* string content */
+.str {
+  color: #006400;
+  font-weight: normal;
+  font-style: normal;
+}
+
+/* a keyword */
+.kwd {
+  color: #000000;
+  font-weight: bold;
+  font-style: normal;
+}
+
+/* a comment */
+.com {
+  font-weight: normal;
+  font-style: italic;
+}
+
+/* a type name */
+.typ {
+  color: #000000;
+  font-weight: normal;
+  font-style: normal;
+}
+
+/* a literal value */
+.lit {
+  color: #006400;
+  font-weight: normal;
+  font-style: normal;
+}
+
+/* punctuation */
+.pun {
+  color: #000000;
+  font-weight: bold;
+  font-style: normal;
+}
+
+/* lisp open bracket */
+.opn {
+  color: #000000;
+  font-weight: bold;
+  font-style: normal;
+}
+
+/* lisp close bracket */
+.clo {
+  color: #000000;
+  font-weight: bold;
+  font-style: normal;
+}
+
+/* a markup tag name */
+.tag {
+  color: #006400;
+  font-weight: normal;
+  font-style: normal;
+}
+
+/* a markup attribute name */
+.atn {
+  color: #006400;
+  font-weight: normal;
+  font-style: normal;
+}
+
+/* a markup attribute value */
+.atv {
+  color: #006400;
+  font-weight: normal;
+  font-style: normal;
+}
+
+/* a declaration */
+.dec {
+  color: #000000;
+  font-weight: bold;
+  font-style: normal;
+}
+
+/* a variable name */
+.var {
+  color: #000000;
+  font-weight: normal;
+  font-style: normal;
+}
+
+/* a function name */
+.fun {
+  color: #000000;
+  font-weight: bold;
+  font-style: normal;
+}
+
+/* Specify class=linenums on a pre to get line numbering */
+ol.linenums {
+  margin-top: 0;
+  margin-bottom: 0;
+}
diff --git a/html/simple-shape/docs/styles/prettify-tomorrow.css b/html/simple-shape/docs/styles/prettify-tomorrow.css
new file mode 100644
index 0000000..b6f92a7
--- /dev/null
+++ b/html/simple-shape/docs/styles/prettify-tomorrow.css
@@ -0,0 +1,132 @@
+/* Tomorrow Theme */
+/* Original theme - https://github.com/chriskempson/tomorrow-theme */
+/* Pretty printing styles. Used with prettify.js. */
+/* SPAN elements with the classes below are added by prettyprint. */
+/* plain text */
+.pln {
+  color: #4d4d4c; }
+
+@media screen {
+  /* string content */
+  .str {
+    color: #718c00; }
+
+  /* a keyword */
+  .kwd {
+    color: #8959a8; }
+
+  /* a comment */
+  .com {
+    color: #8e908c; }
+
+  /* a type name */
+  .typ {
+    color: #4271ae; }
+
+  /* a literal value */
+  .lit {
+    color: #f5871f; }
+
+  /* punctuation */
+  .pun {
+    color: #4d4d4c; }
+
+  /* lisp open bracket */
+  .opn {
+    color: #4d4d4c; }
+
+  /* lisp close bracket */
+  .clo {
+    color: #4d4d4c; }
+
+  /* a markup tag name */
+  .tag {
+    color: #c82829; }
+
+  /* a markup attribute name */
+  .atn {
+    color: #f5871f; }
+
+  /* a markup attribute value */
+  .atv {
+    color: #3e999f; }
+
+  /* a declaration */
+  .dec {
+    color: #f5871f; }
+
+  /* a variable name */
+  .var {
+    color: #c82829; }
+
+  /* a function name */
+  .fun {
+    color: #4271ae; } }
+/* Use higher contrast and text-weight for printable form. */
+@media print, projection {
+  .str {
+    color: #060; }
+
+  .kwd {
+    color: #006;
+    font-weight: bold; }
+
+  .com {
+    color: #600;
+    font-style: italic; }
+
+  .typ {
+    color: #404;
+    font-weight: bold; }
+
+  .lit {
+    color: #044; }
+
+  .pun, .opn, .clo {
+    color: #440; }
+
+  .tag {
+    color: #006;
+    font-weight: bold; }
+
+  .atn {
+    color: #404; }
+
+  .atv {
+    color: #060; } }
+/* Style */
+/*
+pre.prettyprint {
+  background: white;
+  font-family: Consolas, Monaco, 'Andale Mono', monospace;
+  font-size: 12px;
+  line-height: 1.5;
+  border: 1px solid #ccc;
+  padding: 10px; }
+*/
+
+/* Specify class=linenums on a pre to get line numbering */
+ol.linenums {
+  margin-top: 0;
+  margin-bottom: 0; }
+
+/* IE indents via margin-left */
+li.L0,
+li.L1,
+li.L2,
+li.L3,
+li.L4,
+li.L5,
+li.L6,
+li.L7,
+li.L8,
+li.L9 {
+  /* */ }
+
+/* Alternate shading for lines */
+li.L1,
+li.L3,
+li.L5,
+li.L7,
+li.L9 {
+  /* */ }
diff --git a/html/simple-shape/index.html b/html/simple-shape/index.html
new file mode 100644
index 0000000..3eda1f7
--- /dev/null
+++ b/html/simple-shape/index.html
@@ -0,0 +1,58 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>Simple Shapes</title>
+    <meta name="description" content="Simple shapes. Draw them, riff on them.">
+    <style>
+        body {
+            margin: 0;
+            display: flex;
+            justify-content: center;
+            align-items: center;
+            min-height: 100vh;
+            background: #f0f0f0;
+            padding: 40px;
+        }
+        .canvas-container {
+            width: 100%;
+            max-width: 800px;
+            margin: 20px;
+            padding: 40px;
+            background: white;
+            box-shadow: 0 0 20px rgba(0,0,0,0.1);
+        }
+        canvas {
+            width: 100%;
+            height: auto;
+            background: white;
+        }
+        /* Print styles */
+        @media print {
+            body { 
+                background: none;
+                padding: 0;
+            }
+            .canvas-container {
+                max-width: none;
+                width: 8.5in;
+                margin: 0;
+                padding: 0;
+                box-shadow: none;
+            }
+            canvas {
+                width: 8.5in;
+                height: 11in;
+                border: none;
+            }
+        }
+    </style>
+</head>
+<body>
+    <div class="canvas-container">
+        <canvas id="canvas"></canvas>
+    </div>
+    <script src="app.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/html/space/game.js b/html/space/game.js
new file mode 100644
index 0000000..ecd7abc
--- /dev/null
+++ b/html/space/game.js
@@ -0,0 +1,45 @@
+// Main game entry point
+import { initRenderer, render } from './renderer.js';
+import { initInput, updateInput } from './input.js';
+import { initPhysics, updatePhysics } from './physics.js';
+import { initGameState, updateGameState } from './gameState.js';
+
+// Game state
+let lastTime = 0;
+let isRunning = true;
+
+// Initialize all systems
+function init() {
+    console.log('Initializing game...');
+    initRenderer();
+    initInput();
+    initPhysics();
+    initGameState();
+    console.log('Game initialized');
+}
+
+// Main game loop using requestAnimationFrame
+function gameLoop(timestamp) {
+    if (!isRunning) return;
+
+    const deltaTime = timestamp - lastTime;
+    lastTime = timestamp;
+
+    // Update game systems
+    updateInput();
+    updatePhysics(deltaTime);
+    updateGameState(deltaTime);
+    render();
+
+    // Debug output
+    if (Math.random() < 0.01) { // Only log occasionally to avoid spam
+        console.log('Game loop running, deltaTime:', deltaTime);
+    }
+
+    requestAnimationFrame(gameLoop);
+}
+
+// Start the game
+console.log('Starting game...');
+init();
+requestAnimationFrame(gameLoop);
\ No newline at end of file
diff --git a/html/space/gameState.js b/html/space/gameState.js
new file mode 100644
index 0000000..620bc1f
--- /dev/null
+++ b/html/space/gameState.js
@@ -0,0 +1,169 @@
+// Game state module for managing game objects and logic
+import { inputState } from './input.js';
+import { getPlayerState } from './physics.js';
+
+// Game objects
+const planets = [];
+const enemyShips = [];
+const projectiles = [];
+let lastEnemySpawn = 0;
+
+// Space dimensions
+const SPACE_SIZE = 10000;  // Increased from implicit 2000
+const PLANET_DISTANCE = 5000;  // Increased from 1000
+const ENEMY_SPAWN_DISTANCE = 3000;  // Increased from 500
+const ENEMY_SPAWN_INTERVAL = 5000; // 5 seconds
+const MAX_ENEMIES = 5;
+
+// Initialize game state
+export function initGameState() {
+    // Create planets
+    planets.push({
+        position: { x: PLANET_DISTANCE, y: 0, z: 0 },
+        radius: 500,  // Increased from 200
+        color: '#3498db'
+    });
+    
+    planets.push({
+        position: { x: -PLANET_DISTANCE, y: PLANET_DISTANCE/2, z: -PLANET_DISTANCE },
+        radius: 400,  // Increased from 150
+        color: '#e74c3c'
+    });
+
+    // Reset other state
+    enemyShips.length = 0;
+    projectiles.length = 0;
+    lastEnemySpawn = Date.now();
+
+    // Create initial enemy ships
+    for (let i = 0; i < 5; i++) {
+        createEnemyShip();
+    }
+}
+
+// Create a new enemy ship
+function createEnemyShip() {
+    const distance = ENEMY_SPAWN_DISTANCE + Math.random() * ENEMY_SPAWN_DISTANCE;
+    const angle = Math.random() * Math.PI * 2;
+    const height = (Math.random() - 0.5) * ENEMY_SPAWN_DISTANCE;
+
+    enemyShips.push({
+        position: {
+            x: Math.cos(angle) * distance,
+            y: height,
+            z: Math.sin(angle) * distance
+        },
+        velocity: {
+            x: (Math.random() - 0.5) * 0.5,  // Reduced from 2
+            y: (Math.random() - 0.5) * 0.5,  // Reduced from 2
+            z: (Math.random() - 0.5) * 0.5   // Reduced from 2
+        },
+        health: 100
+    });
+}
+
+// Update game state
+export function updateGameState(deltaTime) {
+    const currentTime = Date.now();
+    const player = getPlayerState();
+    
+    // Spawn enemies
+    if (currentTime - lastEnemySpawn > ENEMY_SPAWN_INTERVAL && 
+        enemyShips.length < MAX_ENEMIES) {
+        spawnEnemy();
+        lastEnemySpawn = currentTime;
+    }
+    
+    // Update projectiles
+    projectiles.forEach((projectile, index) => {
+        projectile.position.x += projectile.velocity.x * deltaTime;
+        projectile.position.y += projectile.velocity.y * deltaTime;
+        projectile.position.z += projectile.velocity.z * deltaTime;
+
+        // Remove if too old
+        if (currentTime - projectile.createdAt > 5000) {
+            projectiles.splice(index, 1);
+        }
+    });
+    
+    // Update enemy ships
+    enemyShips.forEach((ship, index) => {
+        // Move ships
+        ship.position.x += ship.velocity.x * deltaTime;
+        ship.position.y += ship.velocity.y * deltaTime;
+        ship.position.z += ship.velocity.z * deltaTime;
+
+        // Check if ship is too far away
+        const distance = Math.sqrt(
+            Math.pow(ship.position.x - player.position.x, 2) +
+            Math.pow(ship.position.y - player.position.y, 2) +
+            Math.pow(ship.position.z - player.position.z, 2)
+        );
+
+        if (distance > SPACE_SIZE) {
+            enemyShips.splice(index, 1);
+            createEnemyShip();
+        }
+    });
+
+    // Handle firing
+    if (inputState.firePrimary) {
+        createProjectile('primary');
+    }
+    if (inputState.fireSecondary) {
+        createProjectile('secondary');
+    }
+}
+
+// Create a new projectile
+export function createProjectile(type) {
+    const player = getPlayerState();
+    const speed = type === 'primary' ? 10 : 7.5;  // Reduced from 20/15
+    const damage = type === 'primary' ? 25 : 10;
+
+    const cosY = Math.cos(player.rotation.y);
+    const sinY = Math.sin(player.rotation.y);
+    const cosX = Math.cos(player.rotation.x);
+    const sinX = Math.sin(player.rotation.x);
+
+    projectiles.push({
+        type,
+        position: { ...player.position },
+        velocity: {
+            x: sinY * cosX * speed,
+            y: sinX * speed,
+            z: cosY * cosX * speed
+        },
+        damage,
+        createdAt: Date.now()
+    });
+}
+
+// Spawn a new enemy ship
+function spawnEnemy() {
+    const angle = Math.random() * Math.PI * 2;
+    const distance = ENEMY_SPAWN_DISTANCE;
+    
+    enemyShips.push({
+        position: {
+            x: Math.cos(angle) * distance,
+            y: 0,
+            z: Math.sin(angle) * distance
+        },
+        velocity: {
+            x: (Math.random() - 0.5) * 0.5,
+            y: (Math.random() - 0.5) * 0.5,
+            z: (Math.random() - 0.5) * 0.5
+        },
+        health: 100
+    });
+}
+
+// Get game state for rendering
+export function getGameState() {
+    return {
+        planets: [...planets],
+        enemyShips: [...enemyShips],
+        projectiles: [...projectiles]
+    };
+} 
\ No newline at end of file
diff --git a/html/space/index.html b/html/space/index.html
new file mode 100644
index 0000000..9db977d
--- /dev/null
+++ b/html/space/index.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>Space</title>
+    <style>
+        body {
+            margin: 0;
+            overflow: hidden;
+            background: black;
+        }
+        canvas {
+            display: block;
+        }
+    </style>
+</head>
+<body>
+    <canvas id="gameCanvas"></canvas>
+    <script type="module" src="game.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/html/space/input.js b/html/space/input.js
new file mode 100644
index 0000000..19ea56c
--- /dev/null
+++ b/html/space/input.js
@@ -0,0 +1,83 @@
+// Input handling module
+import { updatePlayerControls } from './physics.js';
+
+let keys = {};
+let mouseX = 0;
+let mouseY = 0;
+
+// Input state that other modules can read
+export const inputState = {
+    thrust: 0,     // forward/backward thrust (W/S)
+    strafe: 0,     // left/right strafe (A/D)
+    yaw: 0,        // left/right rotation (arrow keys)
+    pitch: 0,      // up/down rotation (arrow keys)
+    firePrimary: false,
+    fireSecondary: false
+};
+
+// Initialize input handlers
+export function initInput() {
+    // Keyboard event listeners
+    document.addEventListener('keydown', (e) => {
+        keys[e.key.toLowerCase()] = true;
+    });
+
+    document.addEventListener('keyup', (e) => {
+        keys[e.key.toLowerCase()] = false;
+    });
+
+    // Mouse movement for heading
+    document.addEventListener('mousemove', (e) => {
+        // Calculate mouse position relative to center of canvas
+        const canvas = document.querySelector('canvas');
+        const rect = canvas.getBoundingClientRect();
+        const centerX = rect.left + rect.width / 2;
+        const centerY = rect.top + rect.height / 2;
+        
+        mouseX = (e.clientX - centerX) / (rect.width / 2);
+        mouseY = (e.clientY - centerY) / (rect.height / 2);
+    });
+
+    // Mouse click for primary weapon
+    document.addEventListener('mousedown', (e) => {
+        if (e.button === 0) { // Left click
+            keys['fire'] = true;
+        }
+    });
+
+    document.addEventListener('mouseup', (e) => {
+        if (e.button === 0) { // Left click
+            keys['fire'] = false;
+        }
+    });
+
+    // E key for secondary weapon
+    document.addEventListener('keydown', (e) => {
+        if (e.key.toLowerCase() === 'e') {
+            keys['secondary'] = true;
+        }
+    });
+
+    document.addEventListener('keyup', (e) => {
+        if (e.key.toLowerCase() === 'e') {
+            keys['secondary'] = false;
+        }
+    });
+}
+
+// Update controls based on current input state
+export function updateInput() {
+    const controls = {
+        thrust: keys[' '] || false, // Space bar for thrust
+        up: keys['w'] || false,     // W for upward strafe
+        down: keys['s'] || false,   // S for downward strafe
+        left: keys['a'] || false,   // A for left strafe
+        right: keys['d'] || false,  // D for right strafe
+        fire: keys['fire'] || false,
+        secondary: keys['secondary'] || false,
+        mouseX,
+        mouseY
+    };
+
+    updatePlayerControls(controls);
+} 
\ No newline at end of file
diff --git a/html/space/physics.js b/html/space/physics.js
new file mode 100644
index 0000000..d4dfe55
--- /dev/null
+++ b/html/space/physics.js
@@ -0,0 +1,253 @@
+// Physics module for handling movement and collisions
+import { inputState } from './input.js';
+import { createProjectile } from './gameState.js';
+
+// Constants
+const MAX_THRUST = 0.5;        // Reduced from 2
+const THRUST_ACCELERATION = 0.01;  // Reduced from 0.05
+const DECELERATION = 0.001;    // Reduced from 0.01
+const BASE_ROTATION_SPEED = 0.001;  // Reduced from 0.005
+const ROTATION_ACCELERATION = 0.0005; // Reduced from 0.002
+const ROTATION_DECELERATION = 0.0002; // Reduced from 0.001
+const MOUSE_SENSITIVITY = 0.03; // Increased from 0.01 for sharper turns
+const MAX_SPEED = 1.0; // Maximum speed in any direction
+
+// Weapon constants
+export const PRIMARY_COOLDOWN = 100; // ms between primary shots
+export const SECONDARY_COOLDOWN = 2000; // ms between secondary shots
+export const PRIMARY_BURST_COUNT = 3; // Number of shots in primary burst
+export const PRIMARY_BURST_DELAY = 50; // ms between burst shots
+
+// Player state
+let playerState = {
+    position: { x: 0, y: 0, z: 0 },
+    velocity: { x: 0, y: 0, z: 0 },
+    rotation: { x: 0, y: 0 },
+    thrust: 0,
+    strafe: 0,
+    weapons: {
+        primary: {
+            lastFired: 0,
+            burstCount: 0,
+            burstTimer: 0
+        },
+        secondary: {
+            lastFired: 0
+        }
+    }
+};
+
+// Initialize physics
+export function initPhysics() {
+    // Reset player state
+    playerState.position = { x: 0, y: 0, z: 0 };
+    playerState.velocity = { x: 0, y: 0, z: 0 };
+    playerState.rotation = { x: 0, y: 0 };
+    playerState.thrust = 0;
+    playerState.strafe = 0;
+}
+
+// Helper function to limit speed in a direction
+function limitSpeed(velocity, maxSpeed) {
+    const speed = Math.sqrt(velocity.x * velocity.x + velocity.y * velocity.y + velocity.z * velocity.z);
+    if (speed > maxSpeed) {
+        const scale = maxSpeed / speed;
+        velocity.x *= scale;
+        velocity.y *= scale;
+        velocity.z *= scale;
+    }
+}
+
+// Update player controls
+export function updatePlayerControls(controls) {
+    // Handle thrust (space bar)
+    if (controls.thrust) {
+        playerState.thrust = Math.min(playerState.thrust + THRUST_ACCELERATION, MAX_THRUST);
+    } else {
+        // Apply deceleration when no thrust input
+        if (playerState.thrust > 0) {
+            playerState.thrust = Math.max(playerState.thrust - DECELERATION, 0);
+        }
+    }
+
+    // Handle vertical strafing (W/S)
+    if (controls.up) {
+        playerState.verticalStrafe = Math.min(playerState.verticalStrafe + THRUST_ACCELERATION, MAX_THRUST);
+    } else if (controls.down) {
+        playerState.verticalStrafe = Math.max(playerState.verticalStrafe - THRUST_ACCELERATION, -MAX_THRUST);
+    } else {
+        // Apply deceleration when no vertical strafe input
+        if (playerState.verticalStrafe > 0) {
+            playerState.verticalStrafe = Math.max(playerState.verticalStrafe - DECELERATION, 0);
+        } else if (playerState.verticalStrafe < 0) {
+            playerState.verticalStrafe = Math.min(playerState.verticalStrafe + DECELERATION, 0);
+        }
+    }
+
+    // Handle horizontal strafing (A/D)
+    if (controls.left) {
+        playerState.horizontalStrafe = Math.min(playerState.horizontalStrafe + THRUST_ACCELERATION, MAX_THRUST);
+    } else if (controls.right) {
+        playerState.horizontalStrafe = Math.max(playerState.horizontalStrafe - THRUST_ACCELERATION, -MAX_THRUST);
+    } else {
+        // Apply deceleration when no horizontal strafe input
+        if (playerState.horizontalStrafe > 0) {
+            playerState.horizontalStrafe = Math.max(playerState.horizontalStrafe - DECELERATION, 0);
+        } else if (playerState.horizontalStrafe < 0) {
+            playerState.horizontalStrafe = Math.min(playerState.horizontalStrafe + DECELERATION, 0);
+        }
+    }
+
+    // Handle mouse-based rotation with smoothing
+    const targetRotationY = controls.mouseX * MOUSE_SENSITIVITY;
+    const targetRotationX = controls.mouseY * MOUSE_SENSITIVITY;
+    
+    // Smooth rotation using lerp with faster response
+    playerState.rotation.y += (targetRotationY - playerState.rotation.y) * 0.2;
+    playerState.rotation.x += (targetRotationX - playerState.rotation.x) * 0.2;
+
+    // Clamp pitch rotation
+    playerState.rotation.x = Math.max(-Math.PI/2, Math.min(Math.PI/2, playerState.rotation.x));
+
+    // Handle weapons with cooldowns
+    const currentTime = Date.now();
+    
+    // Primary weapon (burst fire)
+    if (controls.fire) {
+        const primary = playerState.weapons.primary;
+        if (currentTime - primary.lastFired >= PRIMARY_COOLDOWN && primary.burstCount === 0) {
+            primary.burstCount = PRIMARY_BURST_COUNT;
+            primary.burstTimer = currentTime;
+            firePrimaryWeapon();
+            primary.lastFired = currentTime;
+        }
+    }
+
+    // Secondary weapon (single shot with cooldown)
+    if (controls.secondary && currentTime - playerState.weapons.secondary.lastFired >= SECONDARY_COOLDOWN) {
+        fireSecondaryWeapon();
+        playerState.weapons.secondary.lastFired = currentTime;
+    }
+
+    // Handle burst fire timing
+    const primary = playerState.weapons.primary;
+    if (primary.burstCount > 0 && currentTime - primary.burstTimer >= PRIMARY_BURST_DELAY) {
+        firePrimaryWeapon();
+        primary.burstCount--;
+        primary.burstTimer = currentTime;
+    }
+}
+
+// Update physics
+export function updatePhysics(deltaTime) {
+    // Calculate forward and right vectors based on rotation
+    const forward = {
+        x: Math.sin(playerState.rotation.y) * Math.cos(playerState.rotation.x),
+        y: -Math.sin(playerState.rotation.x),
+        z: Math.cos(playerState.rotation.y) * Math.cos(playerState.rotation.x)
+    };
+
+    const right = {
+        x: Math.cos(playerState.rotation.y),
+        y: 0,
+        z: -Math.sin(playerState.rotation.y)
+    };
+
+    const up = { x: 0, y: 1, z: 0 };
+
+    // Apply thrust in forward direction
+    const thrustVelocity = {
+        x: forward.x * playerState.thrust * deltaTime,
+        y: forward.y * playerState.thrust * deltaTime,
+        z: forward.z * playerState.thrust * deltaTime
+    };
+
+    // Apply horizontal strafe
+    const horizontalStrafeVelocity = {
+        x: right.x * playerState.horizontalStrafe * deltaTime,
+        y: 0,
+        z: right.z * playerState.horizontalStrafe * deltaTime
+    };
+
+    // Apply vertical strafe
+    const verticalStrafeVelocity = {
+        x: 0,
+        y: up.y * playerState.verticalStrafe * deltaTime,
+        z: 0
+    };
+
+    // Add velocities
+    playerState.velocity.x += thrustVelocity.x + horizontalStrafeVelocity.x + verticalStrafeVelocity.x;
+    playerState.velocity.y += thrustVelocity.y + horizontalStrafeVelocity.y + verticalStrafeVelocity.y;
+    playerState.velocity.z += thrustVelocity.z + horizontalStrafeVelocity.z + verticalStrafeVelocity.z;
+
+    // Limit total speed
+    limitSpeed(playerState.velocity, MAX_SPEED);
+
+    // Apply velocity to position
+    playerState.position.x += playerState.velocity.x * deltaTime;
+    playerState.position.y += playerState.velocity.y * deltaTime;
+    playerState.position.z += playerState.velocity.z * deltaTime;
+
+    // Apply friction/drag
+    const drag = 0.99;
+    playerState.velocity.x *= drag;
+    playerState.velocity.y *= drag;
+    playerState.velocity.z *= drag;
+}
+
+// Weapon firing
+function firePrimaryWeapon() {
+    const forward = {
+        x: Math.sin(playerState.rotation.y) * Math.cos(playerState.rotation.x),
+        y: -Math.sin(playerState.rotation.x),
+        z: Math.cos(playerState.rotation.y) * Math.cos(playerState.rotation.x)
+    };
+
+    createProjectile({
+        position: { ...playerState.position },
+        velocity: {
+            x: forward.x * 10 + playerState.velocity.x,
+            y: forward.y * 10 + playerState.velocity.y,
+            z: forward.z * 10 + playerState.velocity.z
+        },
+        type: 'primary'
+    });
+}
+
+function fireSecondaryWeapon() {
+    const forward = {
+        x: Math.sin(playerState.rotation.y) * Math.cos(playerState.rotation.x),
+        y: -Math.sin(playerState.rotation.x),
+        z: Math.cos(playerState.rotation.y) * Math.cos(playerState.rotation.x)
+    };
+
+    createProjectile({
+        position: { ...playerState.position },
+        velocity: {
+            x: forward.x * 5 + playerState.velocity.x,
+            y: forward.y * 5 + playerState.velocity.y,
+            z: forward.z * 5 + playerState.velocity.z
+        },
+        type: 'secondary'
+    });
+}
+
+// Get current player state
+export function getPlayerState() {
+    return playerState;
+}
+
+// Get weapon cooldown states
+export function getWeaponStates() {
+    const currentTime = Date.now();
+    return {
+        primary: {
+            cooldown: Math.max(0, PRIMARY_COOLDOWN - (currentTime - playerState.weapons.primary.lastFired)),
+            burstCount: playerState.weapons.primary.burstCount
+        },
+        secondary: {
+            cooldown: Math.max(0, SECONDARY_COOLDOWN - (currentTime - playerState.weapons.secondary.lastFired))
+        }
+    };
+} 
\ No newline at end of file
diff --git a/html/space/renderer.js b/html/space/renderer.js
new file mode 100644
index 0000000..04646cf
--- /dev/null
+++ b/html/space/renderer.js
@@ -0,0 +1,358 @@
+// Renderer module using HTML5 Canvas
+import { getPlayerState, getWeaponStates } from './physics.js';
+import { getGameState } from './gameState.js';
+
+// Import weapon constants
+import {
+    PRIMARY_COOLDOWN,
+    SECONDARY_COOLDOWN,
+    PRIMARY_BURST_COUNT,
+    PRIMARY_BURST_DELAY
+} from './physics.js';
+
+let canvas;
+let ctx;
+let width;
+let height;
+
+// Star field
+let starfield = [];  // Declare starfield array
+const NUM_STARS = 2000;  // Increased from 1000
+const STAR_FIELD_DEPTH = 20000;  // Increased from 2000
+
+// HUD constants
+const HUD_COLOR = '#00ff00';
+const HUD_ALPHA = 0.7;
+const RADAR_RADIUS = 100;
+const RADAR_CENTER_X = 100;
+const RADAR_CENTER_Y = 100;
+const RADAR_SCALE = 0.1; // Scale factor for radar display
+const TARGET_LOCK_COLOR = '#ff0000';
+const TARGET_LOCK_THRESHOLD = 20; // Pixels from center to consider locked
+
+// Initialize the renderer
+export function initRenderer() {
+    console.log('Initializing renderer...');
+    canvas = document.getElementById('gameCanvas');
+    ctx = canvas.getContext('2d');
+    
+    // Set canvas size
+    width = canvas.width = window.innerWidth;
+    height = canvas.height = window.innerHeight;
+    
+    // Initialize starfield
+    console.log('Creating starfield with', NUM_STARS, 'stars...');
+    starfield = Array.from({ length: NUM_STARS }, () => ({
+        x: (Math.random() - 0.5) * STAR_FIELD_DEPTH,
+        y: (Math.random() - 0.5) * STAR_FIELD_DEPTH,
+        z: Math.random() * STAR_FIELD_DEPTH,
+        size: Math.random() * 2 + 1
+    }));
+    console.log('Starfield initialized');
+}
+
+// Project 3D point to 2D screen coordinates
+function projectPoint(x, y, z) {
+    if (z <= 0) return null; // Behind camera
+    
+    const scale = 2000 / z; // Increased scale factor
+    return {
+        x: width/2 + x * scale,
+        y: height/2 + y * scale,
+        scale
+    };
+}
+
+// Check if any enemy ship is in targeting range
+function getTargetLock(player, gameState) {
+    const centerX = width / 2;
+    const centerY = height / 2;
+    
+    for (const ship of gameState.enemyShips) {
+        const projected = projectPoint(ship.x - player.x, ship.y - player.y, ship.z - player.z);
+        if (projected) {
+            const distance = Math.sqrt(
+                Math.pow(projected.x - centerX, 2) +
+                Math.pow(projected.y - centerY, 2)
+            );
+            
+            if (distance < TARGET_LOCK_THRESHOLD) {
+                return {
+                    ship,
+                    distance
+                };
+            }
+        }
+    }
+    return null;
+}
+
+// Draw radar/minimap
+function drawRadar(player, gameState, targetLock) {
+    // Save context
+    ctx.save();
+    
+    // Set radar style
+    ctx.strokeStyle = targetLock ? TARGET_LOCK_COLOR : HUD_COLOR;
+    ctx.fillStyle = 'rgba(0, 0, 0, 0.5)';
+    ctx.lineWidth = 1;
+    
+    // Draw radar background
+    ctx.beginPath();
+    ctx.arc(RADAR_CENTER_X, RADAR_CENTER_Y, RADAR_RADIUS, 0, Math.PI * 2);
+    ctx.fill();
+    ctx.stroke();
+    
+    // Draw radar grid
+    ctx.beginPath();
+    ctx.moveTo(RADAR_CENTER_X - RADAR_RADIUS, RADAR_CENTER_Y);
+    ctx.lineTo(RADAR_CENTER_X + RADAR_RADIUS, RADAR_CENTER_Y);
+    ctx.moveTo(RADAR_CENTER_X, RADAR_CENTER_Y - RADAR_RADIUS);
+    ctx.lineTo(RADAR_CENTER_X, RADAR_CENTER_Y + RADAR_RADIUS);
+    ctx.stroke();
+    
+    // Draw objects on radar
+    ctx.fillStyle = HUD_COLOR;
+    
+    // Draw planets
+    gameState.planets.forEach(planet => {
+        const dx = (planet.x - player.x) * RADAR_SCALE;
+        const dy = (planet.z - player.z) * RADAR_SCALE;
+        const distance = Math.sqrt(dx * dx + dy * dy);
+        
+        if (distance < RADAR_RADIUS) {
+            ctx.beginPath();
+            ctx.arc(
+                RADAR_CENTER_X + dx,
+                RADAR_CENTER_Y + dy,
+                5,
+                0,
+                Math.PI * 2
+            );
+            ctx.fill();
+        }
+    });
+    
+    // Draw enemy ships
+    gameState.enemyShips.forEach(ship => {
+        const dx = (ship.x - player.x) * RADAR_SCALE;
+        const dy = (ship.z - player.z) * RADAR_SCALE;
+        const distance = Math.sqrt(dx * dx + dy * dy);
+        
+        if (distance < RADAR_RADIUS) {
+            ctx.beginPath();
+            ctx.arc(
+                RADAR_CENTER_X + dx,
+                RADAR_CENTER_Y + dy,
+                4,
+                0,
+                Math.PI * 2
+            );
+            ctx.fill();
+        }
+    });
+    
+    // Restore context
+    ctx.restore();
+}
+
+// Draw speed and direction indicators
+function drawSpeedIndicator(player, targetLock) {
+    ctx.save();
+    ctx.fillStyle = targetLock ? TARGET_LOCK_COLOR : HUD_COLOR;
+    ctx.font = '14px monospace';
+    
+    // Calculate speed from velocity components
+    const speed = Math.sqrt(
+        player.vx * player.vx +
+        player.vy * player.vy +
+        player.vz * player.vz
+    );
+    
+    // Draw speed
+    ctx.fillText(`Speed: ${speed.toFixed(2)}`, 20, height - 40);
+    
+    // Draw direction (using x and z components for heading)
+    const direction = Math.atan2(player.vx, player.vz);
+    ctx.fillText(`Heading: ${(direction * 180 / Math.PI).toFixed(1)}°`, 20, height - 20);
+    
+    ctx.restore();
+}
+
+// Draw enhanced targeting reticle
+function drawTargetingReticle(player, gameState) {
+    ctx.save();
+    
+    // Check for target lock
+    const targetLock = getTargetLock(player, gameState);
+    const currentColor = targetLock ? TARGET_LOCK_COLOR : HUD_COLOR;
+    
+    ctx.strokeStyle = currentColor;
+    ctx.lineWidth = 1;
+    
+    // Outer circle
+    ctx.beginPath();
+    ctx.arc(width/2, height/2, 20, 0, Math.PI * 2);
+    ctx.stroke();
+    
+    // Inner crosshair
+    ctx.beginPath();
+    ctx.moveTo(width/2 - 10, height/2);
+    ctx.lineTo(width/2 + 10, height/2);
+    ctx.moveTo(width/2, height/2 - 10);
+    ctx.lineTo(width/2, height/2 + 10);
+    ctx.stroke();
+    
+    // Target brackets
+    ctx.beginPath();
+    ctx.moveTo(width/2 - 30, height/2 - 30);
+    ctx.lineTo(width/2 - 20, height/2 - 30);
+    ctx.lineTo(width/2 - 20, height/2 - 20);
+    ctx.moveTo(width/2 + 30, height/2 - 30);
+    ctx.lineTo(width/2 + 20, height/2 - 30);
+    ctx.lineTo(width/2 + 20, height/2 - 20);
+    ctx.moveTo(width/2 - 30, height/2 + 30);
+    ctx.lineTo(width/2 - 20, height/2 + 30);
+    ctx.lineTo(width/2 - 20, height/2 + 20);
+    ctx.moveTo(width/2 + 30, height/2 + 30);
+    ctx.lineTo(width/2 + 20, height/2 + 30);
+    ctx.lineTo(width/2 + 20, height/2 + 20);
+    ctx.stroke();
+    
+    // Draw target lock indicator if locked
+    if (targetLock) {
+        // Draw pulsing circle around target
+        const pulseSize = 30 + Math.sin(Date.now() * 0.01) * 5;
+        ctx.beginPath();
+        ctx.arc(width/2, height/2, pulseSize, 0, Math.PI * 2);
+        ctx.stroke();
+        
+        // Draw target distance
+        ctx.fillStyle = currentColor;
+        ctx.font = '14px monospace';
+        ctx.fillText(`Target Lock: ${targetLock.distance.toFixed(1)}`, width/2 - 50, height/2 + 50);
+    }
+    
+    ctx.restore();
+}
+
+// Draw weapon cooldown indicators
+function drawWeaponCooldowns() {
+    const weaponStates = getWeaponStates();
+    ctx.save();
+    ctx.fillStyle = HUD_COLOR;
+    ctx.font = '14px monospace';
+
+    // Primary weapon cooldown (bottom left)
+    const primaryCooldown = weaponStates.primary.cooldown / PRIMARY_COOLDOWN;
+    ctx.fillText('Primary:', 20, height - 80);
+    ctx.fillStyle = `rgba(0, 255, 0, ${primaryCooldown})`;
+    ctx.fillRect(20, height - 70, 100, 10);
+    ctx.strokeStyle = HUD_COLOR;
+    ctx.strokeRect(20, height - 70, 100, 10);
+
+    // Secondary weapon cooldown (bottom left, below primary)
+    const secondaryCooldown = weaponStates.secondary.cooldown / SECONDARY_COOLDOWN;
+    ctx.fillStyle = HUD_COLOR;
+    ctx.fillText('Secondary:', 20, height - 50);
+    ctx.fillStyle = `rgba(0, 255, 0, ${secondaryCooldown})`;
+    ctx.fillRect(20, height - 40, 100, 10);
+    ctx.strokeStyle = HUD_COLOR;
+    ctx.strokeRect(20, height - 40, 100, 10);
+
+    // Draw burst indicator for primary weapon
+    if (weaponStates.primary.burstCount > 0) {
+        ctx.fillStyle = HUD_COLOR;
+        ctx.fillText(`Burst: ${weaponStates.primary.burstCount}`, 20, height - 20);
+    }
+
+    ctx.restore();
+}
+
+// Main render function
+export function render() {
+    const player = getPlayerState();
+    const gameState = getGameState();
+    const targetLock = getTargetLock(player, gameState);
+
+    // Clear canvas
+    ctx.fillStyle = '#000000';
+    ctx.fillRect(0, 0, canvas.width, canvas.height);
+    
+    // Draw starfield
+    let starsRendered = 0;
+    starfield.forEach(star => {
+        // Calculate star position relative to player
+        let relativeX = star.x - player.x;
+        let relativeY = star.y - player.y;
+        let relativeZ = star.z - player.z;
+        
+        // Apply player rotation
+        let rotatedX = relativeX * Math.cos(player.rotation) - relativeY * Math.sin(player.rotation);
+        let rotatedY = relativeX * Math.sin(player.rotation) + relativeY * Math.cos(player.rotation);
+        let rotatedZ = relativeZ;
+        
+        // Project to screen coordinates
+        if (rotatedZ > 0) {
+            const projected = projectPoint(rotatedX, rotatedY, rotatedZ);
+            if (projected) {
+                const brightness = Math.min(1, 2000 / rotatedZ);
+                ctx.fillStyle = `rgba(255, 255, 255, ${brightness})`;
+                ctx.beginPath();
+                ctx.arc(projected.x, projected.y, star.size * brightness, 0, Math.PI * 2);
+                ctx.fill();
+                starsRendered++;
+            }
+        }
+    });
+    
+    // Debug output
+    if (Math.random() < 0.01) { // Only log occasionally to avoid spam
+        console.log('Stars rendered:', starsRendered);
+    }
+
+    // Draw planets
+    gameState.planets.forEach(planet => {
+        const projected = projectPoint(planet.x - player.x, planet.y - player.y, planet.z - player.z);
+        if (projected) {
+            const radius = planet.radius * projected.scale;
+            ctx.fillStyle = planet.color;
+            ctx.beginPath();
+            ctx.arc(projected.x, projected.y, radius, 0, Math.PI * 2);
+            ctx.fill();
+        }
+    });
+
+    // Draw enemy ships
+    gameState.enemyShips.forEach(ship => {
+        const projected = projectPoint(ship.x - player.x, ship.y - player.y, ship.z - player.z);
+        if (projected) {
+            const size = 20 * projected.scale;
+            ctx.fillStyle = '#ff0000';
+            ctx.beginPath();
+            ctx.moveTo(projected.x, projected.y - size);
+            ctx.lineTo(projected.x + size, projected.y + size);
+            ctx.lineTo(projected.x - size, projected.y + size);
+            ctx.closePath();
+            ctx.fill();
+        }
+    });
+
+    // Draw projectiles
+    gameState.projectiles.forEach(projectile => {
+        const projected = projectPoint(projectile.x - player.x, projectile.y - player.y, projectile.z - player.z);
+        if (projected) {
+            const size = 3 * projected.scale;
+            ctx.fillStyle = projectile.type === 'primary' ? '#ffff00' : '#00ffff';
+            ctx.beginPath();
+            ctx.arc(projected.x, projected.y, size, 0, Math.PI * 2);
+            ctx.fill();
+        }
+    });
+
+    // Draw HUD elements
+    drawRadar(player, gameState, targetLock);
+    drawSpeedIndicator(player, targetLock);
+    drawTargetingReticle(player, gameState);
+    drawWeaponCooldowns();
+} 
\ No newline at end of file
diff --git a/html/svg-viewer/index.html b/html/svg-viewer/index.html
new file mode 100644
index 0000000..232e96b
--- /dev/null
+++ b/html/svg-viewer/index.html
@@ -0,0 +1,522 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover">
+    <title>SVG viewer</title>
+    <style>
+        body {
+            margin: 0;
+            padding: 10px;
+            font-family: system-ui, -apple-system, sans-serif;
+            min-height: 100vh;
+            /* Prevent content shift on mobile when keyboard appears */
+            min-height: -webkit-fill-available;
+        }
+
+        .container {
+            display: flex;
+            gap: 10px;
+            height: calc(100vh - 20px);
+            /* Support for mobile browsers */
+            height: calc(100vh - 20px - env(safe-area-inset-bottom));
+        }
+
+        .editor, .preview {
+            flex: 1;
+            display: flex;
+            flex-direction: column;
+            min-height: 200px; /* Ensure minimum height on mobile */
+        }
+
+        textarea {
+            flex: 1;
+            resize: none;
+            padding: 10px;
+            font-family: monospace;
+            font-size: 14px;
+            border: 1px solid #ccc;
+            border-radius: 4px;
+            /* Improve mobile experience */
+            -webkit-overflow-scrolling: touch;
+            /* Prevent zoom on mobile devices */
+            font-size: 16px;
+        }
+
+        canvas {
+            flex: 1;
+            border: 1px solid #ccc;
+            border-radius: 4px;
+            background: white;
+        }
+
+        h2 {
+            margin-top: 0;
+            margin-bottom: 10px;
+            font-size: 16px;
+        }
+
+        .toolbar {
+            display: flex;
+            gap: 8px;
+            margin-bottom: 16px; /* Increased margin for more space below */
+            flex-wrap: wrap;
+            justify-content: space-between; /* Align error message to the right */
+        }
+
+        .toolbar button {
+            /* Improve touch targets */
+            min-height: 44px;
+            padding: 8px 16px;
+            /* Prevent text wrapping inside button */
+            white-space: nowrap;
+            /* Add visual feedback for touch */
+            transition: background-color 0.2s;
+            -webkit-touch-callout: none;
+            user-select: none;
+            border: 1px solid #ccc;
+            border-radius: 6px;
+            background: #f8f8f8;
+        }
+
+        .toolbar button:active {
+            background-color: #e0e0e0;
+        }
+
+        @media (min-width: 1024px) {
+            .toolbar {
+                flex-wrap: nowrap;
+                overflow-x: auto;
+                -webkit-overflow-scrolling: touch;
+                scrollbar-width: none;
+                -ms-overflow-style: none;
+                scroll-snap-type: x mandatory;
+            }
+
+            .toolbar::-webkit-scrollbar {
+                display: none;
+            }
+
+            .toolbar button {
+                scroll-snap-align: start;
+            }
+        }
+
+        /* Medium and small screens - stacked buttons */
+        @media (max-width: 1023px) {
+            .toolbar {
+                flex-direction: column;
+                width: 100%;
+                gap: 4px;
+            }
+
+            .toolbar button {
+                width: 100%;
+                text-align: left;
+                justify-content: flex-start;
+                padding: 12px 16px;
+            }
+        }
+
+        /* Small mobile optimization */
+        @media (max-width: 480px) {
+            .toolbar button {
+                padding: 10px 14px;
+                font-size: 14px;
+            }
+        }
+
+        /* Landscape mode optimization */
+        @media (orientation: landscape) and (max-height: 500px) {
+            .toolbar {
+                /* Revert to horizontal scroll for landscape */
+                flex-direction: row;
+                flex-wrap: nowrap;
+                overflow-x: auto;
+            }
+
+            .toolbar button {
+                width: auto;
+                padding: 8px 16px;
+                background-image: none;
+            }
+        }
+
+        /* Media query for mobile devices */
+        @media (max-width: 768px) {
+            .container {
+                flex-direction: column;
+                height: auto;
+                min-height: 100vh;
+            }
+
+            .editor, .preview {
+                flex: none;
+                height: calc(50vh - 30px); /* Half viewport minus some spacing */
+                overflow: hidden; /* Contain scrolling children */
+                display: flex;
+                flex-direction: column;
+            }
+
+            .toolbar {
+                flex-direction: column;
+                width: 100%;
+                gap: 12px; /* Increased gap for more space between buttons */
+            }
+
+            textarea, canvas {
+                min-height: 200px; /* Minimum height */
+                height: 100%;
+                overflow-y: auto; /* Enable vertical scrolling */
+            }
+
+            h2 {
+                font-size: 14px;
+                margin-bottom: 8px;
+                flex-shrink: 0; /* Prevent header from shrinking */
+            }
+        }
+
+        /* Landscape mode optimization */
+        @media (orientation: landscape) {
+            .container {
+                flex-direction: row;
+                height: calc(100vh - 20px);
+            }
+
+            .editor, .preview {
+                width: 50%;
+                height: 100%;
+                overflow: hidden; /* Contain scrolling children */
+            }
+
+            .toolbar {
+                flex-direction: row;
+                flex-wrap: wrap;
+                flex-shrink: 0; /* Prevent toolbar from shrinking */
+            }
+        }
+
+        /* Support for notched phones */
+        @supports (padding: max(0px)) {
+            body {
+                padding-left: max(10px, env(safe-area-inset-left));
+                padding-right: max(10px, env(safe-area-inset-right));
+                padding-bottom: max(10px, env(safe-area-inset-bottom));
+            }
+        }
+
+        /* Focus styles for better keyboard navigation */
+        .toolbar button:focus {
+            outline: 2px solid #0066cc;
+            outline-offset: 2px;
+        }
+
+        /* High contrast focus indicator for canvas */
+        canvas:focus {
+            outline: 3px solid #0066cc;
+        }
+
+        /* Error message styling */
+        .error-message {
+            color: #cc0000;
+            font-size: 14px;
+            margin-top: 4px;
+            display: none;
+            flex-grow: 1; /* Allow error message to take available space */
+            text-align: right; /* Align text to the right */
+        }
+
+        /* Enhance focus visibility for WCAG 2.4.7 */
+        *:focus {
+            outline: 3px solid #0066cc;
+            outline-offset: 2px;
+        }
+
+        /* Add focus-visible for modern browsers */
+        *:focus:not(:focus-visible) {
+            outline: none;
+        }
+        
+        *:focus-visible {
+            outline: 3px solid #0066cc;
+            outline-offset: 2px;
+        }
+
+        /* High contrast mode support */
+        @media (forced-colors: active) {
+            .toolbar button {
+                border: 1px solid ButtonBorder;
+                background: ButtonFace;
+                color: ButtonText;
+            }
+            
+            canvas, textarea {
+                border: 1px solid ButtonBorder;
+            }
+        }
+
+        .export-buttons {
+            display: flex;
+            gap: 8px;
+            margin-top: 8px;
+        }
+
+        .export-buttons button {
+            min-height: 44px;
+            padding: 8px 16px;
+            white-space: nowrap;
+            transition: background-color 0.2s;
+            -webkit-touch-callout: none;
+            user-select: none;
+            border: 1px solid #ccc;
+            border-radius: 6px;
+            background: #f8f8f8;
+        }
+
+        .export-buttons button:active {
+            background-color: #e0e0e0;
+        }
+    </style>
+</head>
+<body>
+    <main>
+        <div class="container" role="application" aria-label="SVG Editor Application">
+            <div class="editor">
+                <h2 id="editor-label">SVG Editor</h2>
+                <div class="toolbar" role="toolbar" aria-label="Error message">
+                    <div id="error-message" class="error-message" role="alert"></div>
+                </div>
+                <textarea 
+                    id="svgInput" 
+                    spellcheck="false"
+                    aria-labelledby="editor-label"
+                    aria-describedby="editor-desc error-message"
+                    role="textbox"
+                >&lt;svg width="200" height="200" xmlns="http://www.w3.org/2000/svg"&gt;
+    &lt;circle cx="100" cy="100" r="50" fill="blue" /&gt;
+&lt;/svg&gt;</textarea>
+                <div class="export-buttons">
+                    <button onclick="exportSVG()" aria-label="Export as SVG file">Export SVG</button>
+                    <button onclick="exportPNG()" aria-label="Export as PNG image">Export PNG</button>
+                </div>
+            </div>
+            <div class="preview">
+                <h2 id="preview-label">Preview</h2>
+                <canvas 
+                    id="preview" 
+                    role="img" 
+                    aria-labelledby="preview-label"
+                    tabindex="0"
+                ></canvas>
+            </div>
+        </div>
+    </main>
+
+    <script>
+        const textarea = document.getElementById('svgInput');
+        const canvas = document.getElementById('preview');
+        const ctx = canvas.getContext('2d');
+
+        // Function to convert SVG string to image data
+        const svgToImage = (svgString) => {
+            const blob = new Blob([svgString], { type: 'image/svg+xml' });
+            const url = URL.createObjectURL(blob);
+            return new Promise((resolve, reject) => {
+                const img = new Image();
+                img.onload = () => {
+                    URL.revokeObjectURL(url);
+                    resolve(img);
+                };
+                img.onerror = () => {
+                    URL.revokeObjectURL(url);
+                    reject(new Error('Failed to load SVG'));
+                };
+                img.src = url;
+            });
+        };
+
+        // Function to parse SVG and check for syntax errors
+        const checkSVG = (svgString) => {
+            const parser = new DOMParser();
+            const doc = parser.parseFromString(svgString, 'image/svg+xml');
+            const errorNode = doc.querySelector('parsererror');
+            return errorNode ? errorNode.textContent : null;
+        };
+
+        // Function to update the preview
+        const updatePreview = async () => {
+            const errorMessage = document.getElementById('error-message');
+            const svgString = textarea.value;
+            const error = checkSVG(svgString);
+
+            if (error) {
+                errorMessage.style.display = 'block';
+                errorMessage.textContent = `SVG Syntax Error: ${error}`;
+                canvas.setAttribute('aria-label', 'Preview unavailable due to SVG error');
+                return;
+            }
+
+            try {
+                const img = await svgToImage(svgString);
+                
+                // Set canvas size to match its display size
+                const rect = canvas.getBoundingClientRect();
+                canvas.width = rect.width;
+                canvas.height = rect.height;
+                
+                // Clear canvas
+                ctx.clearRect(0, 0, canvas.width, canvas.height);
+                
+                // Calculate scaling to fit SVG while maintaining aspect ratio
+                const scale = Math.min(
+                    canvas.width / img.width,
+                    canvas.height / img.height
+                );
+                
+                // Center the image
+                const x = (canvas.width - img.width * scale) / 2;
+                const y = (canvas.height - img.height * scale) / 2;
+                
+                // Draw scaled image
+                ctx.drawImage(img, x, y, img.width * scale, img.height * scale);
+
+                errorMessage.style.display = 'none';
+                errorMessage.textContent = '';
+                canvas.setAttribute('aria-label', 'SVG preview showing current editor content');
+            } catch (error) {
+                console.error('Error updating preview:', error);
+                errorMessage.style.display = 'block';
+                errorMessage.textContent = 'Error in SVG syntax. Please check your markup.';
+                canvas.setAttribute('aria-label', 'Preview unavailable due to SVG error');
+            }
+        };
+
+        // Update preview when text changes
+        textarea.addEventListener('input', () => {
+            updatePreview();
+        });
+
+        // Handle window resize
+        window.addEventListener('resize', () => {
+            updatePreview();
+        });
+
+        // Initial preview
+        updatePreview();
+
+        // Template functions for SVG shapes
+        const shapeTemplates = {
+            rect: '    <rect x="10" y="10" width="100" height="80" fill="red" />\n',
+            circle: '    <circle cx="100" cy="100" r="50" fill="blue" />\n',
+            ellipse: '    <ellipse cx="100" cy="100" rx="80" ry="50" fill="green" />\n',
+            line: '    <line x1="10" y1="10" x2="190" y2="190" stroke="black" stroke-width="2" />\n',
+            path: '    <path d="M 10,10 L 100,10 L 100,100 Z" fill="purple" />\n',
+            text: '    <text x="100" y="100" text-anchor="middle">Hello SVG</text>\n'
+        };
+
+        // Function to insert template at cursor position
+        const insertShape = (shapeType) => {
+            const template = shapeTemplates[shapeType];
+            const start = textarea.selectionStart;
+            const end = textarea.selectionEnd;
+            const text = textarea.value;
+            
+            // Find the closing </svg> tag
+            const closingTag = '</svg>';
+            const closingTagIndex = text.lastIndexOf(closingTag);
+            
+            if (closingTagIndex !== -1) {
+                // Insert the new shape before the closing tag
+                const newText = 
+                    text.substring(0, closingTagIndex) +
+                    template +
+                    text.substring(closingTagIndex);
+                
+                textarea.value = newText;
+                updatePreview();
+                
+                // Set cursor after inserted template
+                const newPosition = closingTagIndex + template.length;
+                textarea.setSelectionRange(newPosition, newPosition);
+                textarea.focus();
+            }
+        };
+
+        // Keyboard handling for toolbar
+        document.querySelector('.toolbar').addEventListener('keydown', (e) => {
+            const buttons = Array.from(e.currentTarget.querySelectorAll('button'));
+            const currentIndex = buttons.indexOf(document.activeElement);
+            
+            switch(e.key) {
+                case 'ArrowRight':
+                case 'ArrowDown':
+                    e.preventDefault();
+                    buttons[(currentIndex + 1) % buttons.length].focus();
+                    break;
+                case 'ArrowLeft':
+                case 'ArrowUp':
+                    e.preventDefault();
+                    buttons[(currentIndex - 1 + buttons.length) % buttons.length].focus();
+                    break;
+            }
+        });
+
+        // Announce successful exports
+        const announceExport = (format) => {
+            const message = `${format} file exported successfully`;
+            const announcement = document.createElement('div');
+            announcement.setAttribute('role', 'status');
+            announcement.setAttribute('aria-live', 'polite');
+            announcement.style.position = 'absolute';
+            announcement.style.width = '1px';
+            announcement.style.height = '1px';
+            announcement.style.overflow = 'hidden';
+            announcement.textContent = message;
+            document.body.appendChild(announcement);
+            setTimeout(() => document.body.removeChild(announcement), 1000);
+        };
+
+        // Update export functions
+        const exportSVG = () => {
+            const svgBlob = new Blob([textarea.value], { type: 'image/svg+xml' });
+            const url = URL.createObjectURL(svgBlob);
+            const link = document.createElement('a');
+            link.href = url;
+            link.download = 'drawing.svg';
+            document.body.appendChild(link);
+            link.click();
+            document.body.removeChild(link);
+            URL.revokeObjectURL(url);
+            announceExport('SVG');
+        };
+
+        const exportPNG = () => {
+            const tempCanvas = document.createElement('canvas');
+            const tempCtx = tempCanvas.getContext('2d');
+            
+            // Create image from SVG
+            svgToImage(textarea.value).then(img => {
+                // Set canvas to SVG's native size
+                tempCanvas.width = img.width;
+                tempCanvas.height = img.height;
+                
+                // Draw with white background
+                tempCtx.fillStyle = 'white';
+                tempCtx.fillRect(0, 0, tempCanvas.width, tempCanvas.height);
+                tempCtx.drawImage(img, 0, 0);
+                
+                // Export
+                const url = tempCanvas.toDataURL('image/png');
+                const link = document.createElement('a');
+                link.href = url;
+                link.download = 'drawing.png';
+                document.body.appendChild(link);
+                link.click();
+                document.body.removeChild(link);
+                announceExport('PNG');
+            });
+        };
+    </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/html/text-world/index.html b/html/text-world/index.html
new file mode 100644
index 0000000..42f4984
--- /dev/null
+++ b/html/text-world/index.html
@@ -0,0 +1,41 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>Text Adventure</title>
+    <style>
+        #game-container {
+            max-width: 800px;
+            margin: 20px auto;
+            font-family: monospace;
+        }
+        #output {
+            background: #1a1a1a;
+            color: #fff;
+            padding: 20px;
+            min-height: 300px;
+            max-height: 500px;
+            overflow-y: auto;
+            margin-bottom: 10px;
+        }
+        #input {
+            width: 100%;
+            padding: 10px;
+            box-sizing: border-box;
+        }
+    </style>
+</head>
+<body>
+    <div id="game-container">
+        <div id="output"></div>
+        <input type="text" id="input" placeholder="Enter your command..." autocomplete="off">
+    </div>
+   
+    <script src="js/b.js"></script>
+    <script src="js/where.js"></script>
+    <script src="js/ecs.js"></script>
+    <script src="js/worldgen.js"></script>
+    <script src="js/game.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/html/text-world/js/b.js b/html/text-world/js/b.js
new file mode 100644
index 0000000..3869f62
--- /dev/null
+++ b/html/text-world/js/b.js
@@ -0,0 +1,126 @@
+/*
+//
+//  # The Witch in the Glass
+//  
+//  My mother says I must not pass
+//  Too near that glass;
+//  She is afraid that I will see
+//  A little witch that looks like me,
+//  With a red, red mouth to whisper low
+//  The very thing I should not know!
+//  
+//  Alack for all your mother's care!
+//  A bird of the air,
+//  A wistful wind, or (I suppose
+//  Sent by some hapless boy) a rose,
+//  With breath too sweet, will whisper low
+//  The very thing you should not know!
+//  
+//  - Sarah Morgan Bryan Piatt
+//
+*/
+
+// b is for useful stuff
+
+// curry: Converts a function to its curried form, allowing for partial application.
+// pipe: Runs functions from left to right, passing the result of one to the next.
+// compose: Runs functions from right to left, passing the result of one to the next.
+// identity: Returns whatever you give it as is. Useful for composition...sometimes.
+// match: Creates a curried function to match a regular expression in a string.
+// replace: Creates a curried function to replace parts of a string, based on a regex or substring.
+// filter: Curried array filtering by a predicate function.
+// map: Curried array mapping.
+// deepMap: Curried recursive mapping for nested arrays or matrices, of any shape.
+
+'use strict'
+
+const b = {
+  /**
+   * Converts a function into a curried function, allowing for partial application.
+   * A curried function can be partially applied and will return a new function until all arguments are provided.
+   * @param {Function} fn - The function to curry.
+   * @returns {Function} - The curried function.
+   */
+  curry: function (fn) {
+    const curried = (...args) => {
+      if (args.length >= fn.length)
+        return fn(...args)
+      else
+        return (...rest) => curried(...args, ...rest)
+    }
+    return curried
+  },
+
+  /**
+   * Composes functions from left to right.
+   * Takes any number of functions as arguments and returns a function that applies them in sequence to a supplied value.
+   * @param {...Function} fns - The functions to be composed.
+   * @returns {Function} - A function that takes an initial value and applies the composed functions from left to right.
+   */
+  pipe: (...fns) => (value) => fns.reduce((acc, fn) => fn(acc), value),
+
+  /**
+   * Composes functions from right to left.
+   * Takes any number of functions as arguments and returns a function that applies them in sequence from right to left.
+   * @param {...Function} fns - The functions to be composed.
+   * @returns {Function} - A function that applies the composed functions from right to left.
+   */
+  compose: (...fns) => (...args) => fns.reduceRight((res, fn) => fn(...[].concat(res)), args),
+
+  /**
+   * A function that returns its input totally and completely unchanged.
+   * @param {*} x - The input value.
+   * @returns {*} - The same input value.
+   */
+  identity: x => x,
+
+  /**
+   * Curried function that matches a regular expression against a string.
+   * @returns {Function} - A curried function that takes a regex and a string and returns the match result.
+   */
+  match: function () {
+    return this.curry((what, s) => s.match(what));
+  },
+
+  /**
+   * Curried function that replaces parts of a string based on a regex or substring.
+   * @returns {Function} - A curried function that takes a regex or substring, a replacement, and a string, and returns the replaced string.
+   */
+  replace: function () {
+    return this.curry((what, replacement, s) => s.replace(what, replacement));
+  },
+
+  /**
+   * Curried function that filters an array based on a predicate function.
+   * @returns {Function} - A curried function that takes a predicate function and an array, and returns the filtered array.
+   */
+  filter: function () {
+    return this.curry((f, xs) => xs.filter(f));
+  },
+
+  /**
+   * Curried function that maps a function over an array.
+   * @returns {Function} - A curried function that takes a mapping function and an array, and returns the mapped array.
+   */
+  map: function () {
+    return this.curry((f, xs) => xs.map(f));
+  },
+
+  /**
+   * Curried function that recursively maps a function over an array or matrix of any shape.
+   * @returns {Function} - A curried function that takes a mapping function and a nested array, and returns the deeply mapped array.
+   */
+  deepMap: function () {
+    return this.curry(function deepMap(f, xs) {
+      return Array.isArray(xs)
+        ? xs.map((x) => deepMap(f, x))
+        : f(xs);
+    });
+  },
+};
+
+
+
+if (typeof module !== 'undefined' && module.exports) {
+  module.exports = b;
+}
diff --git a/html/text-world/js/ecs.js b/html/text-world/js/ecs.js
new file mode 100644
index 0000000..c2c5add
--- /dev/null
+++ b/html/text-world/js/ecs.js
@@ -0,0 +1,93 @@
+'use strict';
+
+// Components remain as simple data structures
+class Component {
+    constructor(data = {}) {
+        Object.assign(this, data);
+    }
+}
+
+class Position extends Component {
+    constructor(x = 0, y = 0) {
+        super({ x, y });
+    }
+}
+
+class Description extends Component {
+    constructor(short = "", long = "", explorable = {}) {
+        super({ short, long, explorable });
+    }
+}
+
+class Inventory extends Component {
+    constructor(items = []) {
+        super({ items });
+    }
+}
+
+class Messages extends Component {
+    constructor(messages = []) {
+        super({ messages });
+    }
+}
+
+class Item extends Component {
+    constructor(name, description, collectable = true) {
+        super({ name, description, collectable });
+    }
+}
+
+// World becomes a pure functional interface
+const World = {
+    create() {
+        return {
+            entities: new Map(),
+            nextEntityId: 1
+        };
+    },
+
+    createEntity(world) {
+        const id = world.nextEntityId;
+        const newEntities = new Map(world.entities);
+        newEntities.set(id, new Map());
+        
+        return {
+            ...world,
+            entities: newEntities,
+            nextEntityId: id + 1
+        };
+    },
+
+    addComponent(world, entityId, component) {
+        if (!world.entities.has(entityId)) return world;
+        
+        const newEntities = new Map(world.entities);
+        const entityComponents = new Map(world.entities.get(entityId));
+        entityComponents.set(component.constructor.name, component);
+        newEntities.set(entityId, entityComponents);
+        
+        return {
+            ...world,
+            entities: newEntities
+        };
+    },
+
+    getComponent(world, entityId, componentType) {
+        if (!world.entities.has(entityId)) return null;
+        return world.entities.get(entityId).get(componentType);
+    },
+
+    removeComponent(world, entityId, componentType) {
+        if (!world.entities.has(entityId)) return world;
+        
+        const newEntities = new Map(world.entities);
+        const entityComponents = new Map(world.entities.get(entityId));
+        entityComponents.delete(componentType);
+        newEntities.set(entityId, entityComponents);
+        
+        return {
+            ...world,
+            entities: newEntities
+        };
+    }
+};
diff --git a/html/text-world/js/game.js b/html/text-world/js/game.js
new file mode 100644
index 0000000..8f2d4d6
--- /dev/null
+++ b/html/text-world/js/game.js
@@ -0,0 +1,239 @@
+class Game {
+    constructor() {
+        const generated = WorldGenerator.generate();
+        this.state = {
+            world: generated.world,
+            playerId: generated.playerId
+        };
+        
+        this.setupUI();
+        this.print("Welcome to the Text Adventure!");
+        this.describeCurrentLocation();
+    }
+
+    setState(newState) {
+        this.state = newState;
+    }
+
+    setupUI() {
+        this.output = document.getElementById('output');
+        this.input = document.getElementById('input');
+        
+        this.input.addEventListener('keypress', (e) => {
+            if (e.key === 'Enter') {
+                const command = this.input.value.toLowerCase();
+                this.input.value = '';
+                this.handleCommand(command);
+            }
+        });
+    }
+
+    print(text) {
+        const line = document.createElement('div');
+        line.textContent = text;
+        this.output.appendChild(line);
+        this.output.scrollTop = this.output.scrollHeight;
+    }
+
+    handleCommand(command) {
+        this.print(`> ${command}`);
+
+        if (command.match(/^(where am i|look around)$/)) {
+            this.describeCurrentLocation();
+        }
+        else if (command.startsWith('move ')) {
+            const newState = this.handleMove(command.split(' ')[1]);
+            if (newState) {
+                this.setState(newState);
+                this.describeCurrentLocation();
+            }
+        }
+        else if (command.startsWith('explore ') || command.startsWith('look at ')) {
+            const target = command.replace(/^(explore|look at) /, '');
+            this.exploreTarget(target);
+        }
+        else if (command === 'phone') {
+            this.checkMessages();
+        }
+        else if (command === 'inventory') {
+            this.checkInventory();
+        }
+        else if (command.startsWith('get ') || command.startsWith('take ')) {
+            const itemName = command.replace(/^(get|take) /, '');
+            const newState = this.collectItem(itemName);
+            if (newState) {
+                this.setState(newState);
+            }
+        }
+        else {
+            this.print("I don't understand that command.");
+        }
+    }
+
+    getCurrentLocation() {
+        const playerPos = World.getComponent(this.state.world, this.state.playerId, 'Position');
+        
+        if (!playerPos) {
+            console.error('Player position not found');
+            return null;
+        }
+        
+        // Find the environment at the player's position
+        const locationEntity = Array.from(this.state.world.entities.entries()).find(([entityId, _]) => {
+            if (entityId === this.state.playerId) return false;
+            
+            const pos = World.getComponent(this.state.world, entityId, 'Position');
+            return pos && pos.x === playerPos.x && pos.y === playerPos.y;
+        });
+
+        if (!locationEntity) return null;
+
+        const [entityId, _] = locationEntity;
+        const desc = World.getComponent(this.state.world, entityId, 'Description');
+        
+        // Add items to the location description
+        const items = this.getItemsAtLocation(playerPos);
+        return { entityId, desc, items };
+    }
+
+    getItemsAtLocation(pos) {
+        return Array.from(this.state.world.entities.entries())
+            .filter(([entityId, _]) => {
+                const itemPos = World.getComponent(this.state.world, entityId, 'Position');
+                const item = World.getComponent(this.state.world, entityId, 'Item');
+                return itemPos && item && 
+                       itemPos.x === pos.x && 
+                       itemPos.y === pos.y;
+            })
+            .map(([entityId, _]) => ({
+                entityId,
+                item: World.getComponent(this.state.world, entityId, 'Item')
+            }));
+    }
+
+    describeCurrentLocation() {
+        const location = this.getCurrentLocation();
+        if (location) {
+            this.print(`You are in: ${location.desc.short}`);
+            this.print(location.desc.long);
+            
+            if (location.items.length > 0) {
+                this.print("\nYou can see:");
+                location.items.forEach(({ item }) => {
+                    this.print(`- ${item.name}`);
+                });
+            }
+        }
+    }
+
+    handleMove(direction) {
+        const playerPos = World.getComponent(this.state.world, this.state.playerId, 'Position');
+        
+        if (!playerPos) {
+            console.error('Player position not found');
+            return null;
+        }
+
+        const moves = {
+            'north': { x: 0, y: -1 },
+            'south': { x: 0, y: 1 },
+            'east': { x: 1, y: 0 },
+            'west': { x: -1, y: 0 }
+        };
+
+        if (!moves[direction]) {
+            this.print("Invalid direction. Use north, south, east, or west.");
+            return null;
+        }
+
+        const newX = playerPos.x + moves[direction].x;
+        const newY = playerPos.y + moves[direction].y;
+
+        if (newX < 0 || newX >= 10 || newY < 0 || newY >= 10) {
+            this.print("You can't go that way - you've reached the edge of the world.");
+            return null;
+        }
+
+        const newWorld = World.addComponent(
+            this.state.world,
+            this.state.playerId,
+            new Position(newX, newY)
+        );
+
+        this.print(`You move ${direction}.`);
+        
+        return {
+            ...this.state,
+            world: newWorld
+        };
+    }
+
+    exploreTarget(target) {
+        const location = this.getCurrentLocation();
+        if (location && location.desc.explorable[target]) {
+            this.print(location.desc.explorable[target]);
+        } else {
+            this.print("There's nothing special about that.");
+        }
+    }
+
+    checkMessages() {
+        const messages = World.getComponent(this.state.world, this.state.playerId, 'Messages');
+        if (messages.messages.length === 0) {
+            this.print("You have no messages.");
+        } else {
+            this.print("Your messages:");
+            messages.messages.forEach(msg => this.print(`- ${msg}`));
+        }
+    }
+
+    collectItem(itemName) {
+        const playerPos = World.getComponent(this.state.world, this.state.playerId, 'Position');
+        const items = this.getItemsAtLocation(playerPos);
+        
+        const itemEntry = items.find(({ item }) => 
+            item.name.toLowerCase() === itemName.toLowerCase()
+        );
+
+        if (!itemEntry) {
+            this.print(`There is no ${itemName} here.`);
+            return null;
+        }
+
+        if (!itemEntry.item.collectable) {
+            this.print(`You can't take the ${itemName}.`);
+            return null;
+        }
+
+        // Add to inventory
+        const inventory = World.getComponent(this.state.world, this.state.playerId, 'Inventory');
+        const updatedInventory = new Inventory([...inventory.items, itemEntry.item]);
+        
+        // Remove from world and update inventory
+        let newWorld = World.removeComponent(this.state.world, itemEntry.entityId, 'Position');
+        newWorld = World.addComponent(newWorld, this.state.playerId, updatedInventory);
+
+        this.print(`You take the ${itemName}.`);
+        return {
+            ...this.state,
+            world: newWorld
+        };
+    }
+
+    checkInventory() {
+        const inventory = World.getComponent(this.state.world, this.state.playerId, 'Inventory');
+        if (inventory.items.length === 0) {
+            this.print("Your inventory is empty.");
+        } else {
+            this.print("Your inventory contains:");
+            inventory.items.forEach(item => {
+                this.print(`- ${item.name}`);
+            });
+        }
+    }
+}
+
+// Start the game when the page loads
+window.addEventListener('load', () => {
+    window.game = new Game();
+});
diff --git a/html/text-world/js/where.js b/html/text-world/js/where.js
new file mode 100644
index 0000000..60e3797
--- /dev/null
+++ b/html/text-world/js/where.js
@@ -0,0 +1,82 @@
+/**
+ * A mostly functional query filter similar to SQL's WHERE
+ * @param {Array} collection - Array of objects to filter
+ * @param {Object} properties - Object containing properties to match against
+ * @returns {Array} - Filtered array of objects
+ */
+const where = (collection, properties) => {
+
+    if (!collection || !properties) {
+        return [];
+    }
+
+    const propertyPaths = Object.entries(properties).map(([key, value]) => ({
+        path: key,
+        parts: key.split('.'),
+        value
+    }));
+
+    const getNestedValue = (() => {
+        const cache = new WeakMap();
+        
+        return (obj, parts) => {
+            if (!obj) return undefined;
+            
+            let cached = cache.get(obj);
+            if (!cached) {
+                cached = new Map();
+                cache.set(obj, cached);
+            }
+            
+            const pathKey = parts.join('.');
+            if (cached.has(pathKey)) {
+                return cached.get(pathKey);
+            }
+
+            const value = parts.reduce((current, key) => 
+                current && current[key] !== undefined ? current[key] : undefined, 
+                obj
+            );
+            
+            cached.set(pathKey, value);
+            return value;
+        };
+    })();
+
+    const isEqual = (value1, value2) => {
+
+        if (value2 === undefined) return true;
+        if (value1 === value2) return true;
+        if (value1 === null || value2 === null) return false;
+
+        if (Array.isArray(value1) && Array.isArray(value2)) {
+            return value1.length === value2.length &&
+                   value1.every((val, idx) => isEqual(val, value2[idx]));
+        }
+
+        if (typeof value2 === 'object') {
+            return Object.entries(value2).every(([key, val]) => 
+                value1 && isEqual(value1[key], val)
+            );
+        }
+
+        return false;
+    };
+
+    const matchesProperties = item => 
+        propertyPaths.every(({ parts, value }) => 
+            isEqual(getNestedValue(item, parts), value)
+        );
+
+    if (!Array.isArray(collection) || typeof properties !== 'object') {
+        return [];
+    }
+
+    return collection.filter(matchesProperties);
+};
+
+
+
+if (typeof module !== 'undefined' && module.exports) {
+    module.exports = where;
+}
diff --git a/html/text-world/js/worldgen.js b/html/text-world/js/worldgen.js
new file mode 100644
index 0000000..c8f5778
--- /dev/null
+++ b/html/text-world/js/worldgen.js
@@ -0,0 +1,130 @@
+'use strict';
+
+const WorldGenerator = {
+    generate() {
+        let world = World.create();
+        
+        // Create player
+        let result = WorldGenerator.createPlayer(world);
+        world = result.world;
+        const playerId = result.entityId;
+
+        // Generate environments
+        world = WorldGenerator.generateEnvironments(world);
+
+        return { world, playerId };
+    },
+
+    createPlayer(world) {
+        const newWorld = World.createEntity(world);
+        const entityId = newWorld.nextEntityId - 1;
+        
+        return {
+            world: World.addComponent(
+                World.addComponent(
+                    World.addComponent(
+                        newWorld,
+                        entityId,
+                        new Position(0, 0)
+                    ),
+                    entityId,
+                    new Inventory([])
+                ),
+                entityId,
+                new Messages([])
+            ),
+            entityId
+        };
+    },
+
+    generateEnvironments(world) {
+        let newWorld = world;
+        
+        for (let x = 0; x < 10; x++) {
+            for (let y = 0; y < 10; y++) {
+                newWorld = WorldGenerator.createEnvironment(newWorld, x, y);
+            }
+        }
+        
+        return newWorld;
+    },
+
+    createEnvironment(world, x, y) {
+        const newWorld = World.createEntity(world);
+        const entityId = newWorld.nextEntityId - 1;
+        
+        // Add basic components
+        let updatedWorld = World.addComponent(
+            World.addComponent(
+                newWorld,
+                entityId,
+                new Position(x, y)
+            ),
+            entityId,
+            this.generateEnvironmentDescription(x, y)
+        );
+
+        // Add items based on environment type
+        const items = this.generateItems(x, y);
+        items.forEach(item => {
+            const itemEntity = World.createEntity(updatedWorld);
+            updatedWorld = World.addComponent(
+                World.addComponent(
+                    updatedWorld,
+                    itemEntity,
+                    new Position(x, y)
+                ),
+                itemEntity,
+                item
+            );
+        });
+
+        return updatedWorld;
+    },
+
+    generateEnvironmentDescription(x, y) {
+        const environments = [
+            {
+                short: "Forest Clearing",
+                long: "A peaceful clearing surrounded by tall trees. Sunlight filters through the canopy above.",
+                explorable: {
+                    "trees": "The trees here are ancient oaks, their bark rough and weathered.",
+                    "ground": "The forest floor is covered in soft moss and fallen leaves."
+                }
+            },
+            {
+                short: "Rocky Outcrop",
+                long: "A rocky area with large boulders scattered about. Some seem to hide small caves.",
+                explorable: {
+                    "boulders": "The boulders are covered in colorful lichens.",
+                    "caves": "Small openings that could shelter wildlife."
+                }
+            }
+        ];
+
+        const index = (x * 7 + y * 13) % environments.length;
+        return new Description(
+            environments[index].short,
+            environments[index].long,
+            environments[index].explorable
+        );
+    },
+
+    generateItems(x, y) {
+        const items = [
+            new Item("mushroom", "A small, colorful mushroom that might be edible."),
+            new Item("stone", "A smooth, flat stone that catches your eye."),
+            new Item("stick", "A sturdy wooden stick."),
+            new Item("flower", "A beautiful wildflower with vibrant petals."),
+            new Item("feather", "A delicate feather from some unknown bird.")
+        ];
+
+        // Use coordinates to deterministically generate items
+        const numItems = ((x * 3 + y * 5) % 3) + 1; // 1-3 items per location
+        const startIndex = (x * 7 + y * 11) % items.length;
+        
+        return Array.from({ length: numItems }, (_, i) => 
+            items[(startIndex + i) % items.length]
+        );
+    }
+};
diff --git a/html/tower/docs/fonts/OpenSans-Bold-webfont.eot b/html/tower/docs/fonts/OpenSans-Bold-webfont.eot
new file mode 100644
index 0000000..5d20d91
--- /dev/null
+++ b/html/tower/docs/fonts/OpenSans-Bold-webfont.eot
Binary files differdiff --git a/html/tower/docs/fonts/OpenSans-Bold-webfont.svg b/html/tower/docs/fonts/OpenSans-Bold-webfont.svg
new file mode 100644
index 0000000..3ed7be4
--- /dev/null
+++ b/html/tower/docs/fonts/OpenSans-Bold-webfont.svg
@@ -0,0 +1,1830 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata></metadata>
+<defs>
+<font id="open_sansbold" horiz-adv-x="1169" >
+<font-face units-per-em="2048" ascent="1638" descent="-410" />
+<missing-glyph horiz-adv-x="532" />
+<glyph unicode="&#xfb01;" horiz-adv-x="1417" d="M41 0zM778 889h-264v-889h-305v889h-168v147l168 82v82q0 191 94 279t301 88q158 0 281 -47l-78 -224q-92 29 -170 29q-65 0 -94 -38.5t-29 -98.5v-70h264v-229zM940 1407q0 149 166 149t166 -149q0 -71 -41.5 -110.5t-124.5 -39.5q-166 0 -166 150zM1258 0h-305v1118 h305v-1118z" />
+<glyph unicode="&#xfb02;" horiz-adv-x="1417" d="M41 0zM778 889h-264v-889h-305v889h-168v147l168 82v82q0 191 94 279t301 88q158 0 281 -47l-78 -224q-92 29 -170 29q-65 0 -94 -38.5t-29 -98.5v-70h264v-229zM1258 0h-305v1556h305v-1556z" />
+<glyph unicode="&#xfb03;" horiz-adv-x="2208" d="M41 0zM778 889h-264v-889h-305v889h-168v147l168 82v82q0 191 94 279t301 88q158 0 281 -47l-78 -224q-92 29 -170 29q-65 0 -94 -38.5t-29 -98.5v-70h264v-229zM1571 889h-264v-889h-305v889h-168v147l168 82v82q0 191 94 279t301 88q158 0 281 -47l-78 -224 q-92 29 -170 29q-65 0 -94 -38.5t-29 -98.5v-70h264v-229zM1730 1407q0 149 166 149t166 -149q0 -71 -41.5 -110.5t-124.5 -39.5q-166 0 -166 150zM2048 0h-305v1118h305v-1118z" />
+<glyph unicode="&#xfb04;" horiz-adv-x="2208" d="M41 0zM778 889h-264v-889h-305v889h-168v147l168 82v82q0 191 94 279t301 88q158 0 281 -47l-78 -224q-92 29 -170 29q-65 0 -94 -38.5t-29 -98.5v-70h264v-229zM1571 889h-264v-889h-305v889h-168v147l168 82v82q0 191 94 279t301 88q158 0 281 -47l-78 -224 q-92 29 -170 29q-65 0 -94 -38.5t-29 -98.5v-70h264v-229zM2048 0h-305v1556h305v-1556z" />
+<glyph horiz-adv-x="2048" />
+<glyph horiz-adv-x="2048" />
+<glyph unicode="&#xd;" horiz-adv-x="1044" />
+<glyph unicode=" "  horiz-adv-x="532" />
+<glyph unicode="&#x09;" horiz-adv-x="532" />
+<glyph unicode="&#xa0;" horiz-adv-x="532" />
+<glyph unicode="!" horiz-adv-x="586" d="M416 485h-244l-51 977h346zM117 143q0 84 45 127t131 43q83 0 128.5 -44t45.5 -126q0 -79 -46 -124.5t-128 -45.5q-84 0 -130 44.5t-46 125.5z" />
+<glyph unicode="&#x22;" horiz-adv-x="967" d="M412 1462l-41 -528h-197l-41 528h279zM834 1462l-41 -528h-197l-41 528h279z" />
+<glyph unicode="#" horiz-adv-x="1323" d="M999 844l-47 -232h258v-206h-297l-77 -406h-220l78 406h-194l-76 -406h-215l74 406h-238v206h277l47 232h-252v209h289l77 407h219l-77 -407h198l78 407h215l-78 -407h240v-209h-279zM539 612h196l47 232h-196z" />
+<glyph unicode="$" d="M1092 457q0 -159 -115 -255.5t-322 -115.5v-205h-137v201q-244 5 -428 86v264q87 -43 209.5 -76t218.5 -39v310l-67 26q-198 78 -280.5 169.5t-82.5 226.5q0 145 113.5 238.5t316.5 113.5v153h137v-149q229 -10 414 -92l-94 -234q-156 64 -320 78v-295 q195 -75 277.5 -130t121 -121t38.5 -154zM791 442q0 42 -34 71t-102 60v-249q136 23 136 118zM389 1049q0 -44 30.5 -72.5t98.5 -58.5v235q-129 -19 -129 -104z" />
+<glyph unicode="%" horiz-adv-x="1845" d="M315 1024q0 -127 22.5 -189.5t72.5 -62.5q96 0 96 252q0 250 -96 250q-50 0 -72.5 -61.5t-22.5 -188.5zM758 1026q0 -230 -89 -345.5t-261 -115.5q-165 0 -255 118.5t-90 342.5q0 457 345 457q169 0 259.5 -118.5t90.5 -338.5zM1446 1462l-811 -1462h-240l811 1462h240z M1339 440q0 -127 22.5 -189.5t72.5 -62.5q96 0 96 252q0 250 -96 250q-50 0 -72.5 -61.5t-22.5 -188.5zM1782 442q0 -229 -89 -344.5t-261 -115.5q-165 0 -255 118.5t-90 341.5q0 457 345 457q169 0 259.5 -118.5t90.5 -338.5z" />
+<glyph unicode="&#x26;" horiz-adv-x="1536" d="M1536 0h-377l-115 113q-191 -133 -432 -133q-244 0 -387 112t-143 303q0 137 60.5 233.5t207.5 180.5q-75 86 -109 164.5t-34 171.5q0 152 116.5 245t311.5 93q186 0 297.5 -86.5t111.5 -231.5q0 -119 -69 -217.5t-223 -187.5l284 -277q71 117 123 301h318 q-36 -135 -99 -263.5t-143 -227.5zM403 424q0 -86 64.5 -137t165.5 -51q126 0 227 61l-332 330q-58 -44 -91.5 -92t-33.5 -111zM762 1133q0 53 -36 83.5t-93 30.5q-67 0 -105.5 -32t-38.5 -91q0 -88 95 -194q86 48 132 94.5t46 108.5z" />
+<glyph unicode="'" horiz-adv-x="545" d="M412 1462l-41 -528h-197l-41 528h279z" />
+<glyph unicode="(" horiz-adv-x="694" d="M82 561q0 265 77.5 496t223.5 405h250q-141 -193 -213 -424t-72 -475q0 -245 73.5 -473.5t209.5 -413.5h-248q-147 170 -224 397t-77 488z" />
+<glyph unicode=")" horiz-adv-x="694" d="M612 561q0 -263 -77.5 -490t-223.5 -395h-248q135 184 209 412.5t74 474.5q0 244 -72 475t-213 424h250q147 -175 224 -406.5t77 -494.5z" />
+<glyph unicode="*" horiz-adv-x="1116" d="M688 1556l-41 -368l373 104l33 -252l-340 -24l223 -297l-227 -121l-156 313l-137 -311l-236 119l221 297l-338 26l39 250l365 -104l-41 368h262z" />
+<glyph unicode="+" d="M475 612h-387v219h387v390h219v-390h387v-219h-387v-385h-219v385z" />
+<glyph unicode="," horiz-adv-x="594" d="M459 215q-52 -202 -176 -479h-220q65 266 101 502h280z" />
+<glyph unicode="-" horiz-adv-x="659" d="M61 424v250h537v-250h-537z" />
+<glyph unicode="." horiz-adv-x="584" d="M117 143q0 84 45 127t131 43q83 0 128.5 -44t45.5 -126q0 -79 -46 -124.5t-128 -45.5q-84 0 -130 44.5t-46 125.5z" />
+<glyph unicode="/" horiz-adv-x="846" d="M836 1462l-545 -1462h-277l545 1462h277z" />
+<glyph unicode="0" d="M1096 731q0 -383 -125.5 -567t-386.5 -184q-253 0 -381.5 190t-128.5 561q0 387 125 570.5t385 183.5q253 0 382.5 -192t129.5 -562zM381 731q0 -269 46.5 -385.5t156.5 -116.5q108 0 156 118t48 384q0 269 -48.5 386.5t-155.5 117.5q-109 0 -156 -117.5t-47 -386.5z" />
+<glyph unicode="1" d="M846 0h-309v846l3 139l5 152q-77 -77 -107 -101l-168 -135l-149 186l471 375h254v-1462z" />
+<glyph unicode="2" d="M1104 0h-1022v215l367 371q163 167 213 231.5t72 119.5t22 114q0 88 -48.5 131t-129.5 43q-85 0 -165 -39t-167 -111l-168 199q108 92 179 130t155 58.5t188 20.5q137 0 242 -50t163 -140t58 -206q0 -101 -35.5 -189.5t-110 -181.5t-262.5 -265l-188 -177v-14h637v-260z " />
+<glyph unicode="3" d="M1047 1135q0 -137 -83 -233t-233 -132v-6q177 -22 268 -107.5t91 -230.5q0 -211 -153 -328.5t-437 -117.5q-238 0 -422 79v263q85 -43 187 -70t202 -27q153 0 226 52t73 167q0 103 -84 146t-268 43h-111v237h113q170 0 248.5 44.5t78.5 152.5q0 166 -208 166 q-72 0 -146.5 -24t-165.5 -83l-143 213q200 144 477 144q227 0 358.5 -92t131.5 -256z" />
+<glyph unicode="4" d="M1137 303h-176v-303h-302v303h-624v215l641 944h285v-919h176v-240zM659 543v248q0 62 5 180t8 137h-8q-37 -82 -89 -160l-268 -405h352z" />
+<glyph unicode="5" d="M614 934q212 0 337.5 -119t125.5 -326q0 -245 -151 -377t-432 -132q-244 0 -394 79v267q79 -42 184 -68.5t199 -26.5q283 0 283 232q0 221 -293 221q-53 0 -117 -10.5t-104 -22.5l-123 66l55 745h793v-262h-522l-27 -287l35 7q61 14 151 14z" />
+<glyph unicode="6" d="M72 621q0 434 183.5 646t549.5 212q125 0 196 -15v-247q-89 20 -176 20q-159 0 -259.5 -48t-150.5 -142t-59 -267h13q99 170 317 170q196 0 307 -123t111 -340q0 -234 -132 -370.5t-366 -136.5q-162 0 -282.5 75t-186 219t-65.5 347zM600 227q99 0 152 66.5t53 189.5 q0 107 -49.5 168.5t-149.5 61.5q-94 0 -160.5 -61t-66.5 -142q0 -119 62.5 -201t158.5 -82z" />
+<glyph unicode="7" d="M227 0l549 1200h-721v260h1049v-194l-553 -1266h-324z" />
+<glyph unicode="8" d="M586 1481q210 0 338.5 -95.5t128.5 -257.5q0 -112 -62 -199.5t-200 -156.5q164 -88 235.5 -183.5t71.5 -209.5q0 -180 -141 -289.5t-371 -109.5q-240 0 -377 102t-137 289q0 125 66.5 222t213.5 171q-125 79 -180 169t-55 197q0 157 130 254t339 97zM358 389 q0 -86 60 -134t164 -48q115 0 172 49.5t57 130.5q0 67 -56.5 125.5t-183.5 124.5q-213 -98 -213 -248zM584 1255q-79 0 -127.5 -40.5t-48.5 -108.5q0 -60 38.5 -107.5t139.5 -97.5q98 46 137 94t39 111q0 69 -50 109t-128 40z" />
+<glyph unicode="9" d="M1098 838q0 -432 -182 -645t-551 -213q-130 0 -197 14v248q84 -21 176 -21q155 0 255 45.5t153 143t61 268.5h-12q-58 -94 -134 -132t-190 -38q-191 0 -301 122.5t-110 340.5q0 235 133.5 371.5t363.5 136.5q162 0 283.5 -76t186.5 -220.5t65 -344.5zM569 1231 q-96 0 -150 -66t-54 -190q0 -106 49 -168t149 -62q94 0 161 61.5t67 141.5q0 119 -62.5 201t-159.5 82z" />
+<glyph unicode=":" horiz-adv-x="584" d="M117 143q0 84 45 127t131 43q83 0 128.5 -44t45.5 -126q0 -79 -46 -124.5t-128 -45.5q-84 0 -130 44.5t-46 125.5zM117 969q0 84 45 127t131 43q83 0 128.5 -44t45.5 -126q0 -81 -46.5 -125.5t-127.5 -44.5q-84 0 -130 44t-46 126z" />
+<glyph unicode=";" horiz-adv-x="594" d="M444 238l15 -23q-52 -202 -176 -479h-220q65 266 101 502h280zM117 969q0 84 45 127t131 43q83 0 128.5 -44t45.5 -126q0 -81 -46.5 -125.5t-127.5 -44.5q-84 0 -130 44t-46 126z" />
+<glyph unicode="&#x3c;" d="M1081 203l-993 438v143l993 496v-240l-684 -317l684 -281v-239z" />
+<glyph unicode="=" d="M88 805v219h993v-219h-993zM88 418v219h993v-219h-993z" />
+<glyph unicode="&#x3e;" d="M88 442l684 281l-684 317v240l993 -496v-143l-993 -438v239z" />
+<glyph unicode="?" horiz-adv-x="977" d="M276 485v74q0 96 41 167t150 151q105 75 138.5 122t33.5 105q0 65 -48 99t-134 34q-150 0 -342 -98l-109 219q223 125 473 125q206 0 327.5 -99t121.5 -264q0 -110 -50 -190t-190 -180q-96 -71 -121.5 -108t-25.5 -97v-60h-265zM244 143q0 84 45 127t131 43 q83 0 128.5 -44t45.5 -126q0 -79 -46 -124.5t-128 -45.5q-84 0 -130 44.5t-46 125.5z" />
+<glyph unicode="@" horiz-adv-x="1837" d="M1735 752q0 -144 -46 -263.5t-130 -187.5t-195 -68q-74 0 -131 35.5t-82 93.5h-16q-108 -129 -275 -129q-177 0 -279 106.5t-102 291.5q0 211 134 340t350 129q86 0 189.5 -16.5t170.5 -39.5l-23 -489q0 -139 76 -139q64 0 102 93.5t38 244.5q0 161 -67 284.5 t-188.5 188.5t-277.5 65q-202 0 -351 -83t-228.5 -239.5t-79.5 -361.5q0 -276 147.5 -423.5t427.5 -147.5q106 0 233 23.5t250 68.5v-192q-214 -91 -475 -91q-380 0 -592.5 200t-212.5 556q0 247 108.5 448.5t309 316t461.5 114.5q220 0 393 -90t267 -256t94 -383zM711 627 q0 -211 172 -211q90 0 137 63.5t57 206.5l13 221q-51 11 -115 11q-125 0 -194.5 -78t-69.5 -213z" />
+<glyph unicode="A" horiz-adv-x="1413" d="M1079 0l-106 348h-533l-106 -348h-334l516 1468h379l518 -1468h-334zM899 608q-147 473 -165.5 535t-26.5 98q-33 -128 -189 -633h381z" />
+<glyph unicode="B" horiz-adv-x="1376" d="M184 1462h455q311 0 451.5 -88.5t140.5 -281.5q0 -131 -61.5 -215t-163.5 -101v-10q139 -31 200.5 -116t61.5 -226q0 -200 -144.5 -312t-392.5 -112h-547v1462zM494 883h180q126 0 182.5 39t56.5 129q0 84 -61.5 120.5t-194.5 36.5h-163v-325zM494 637v-381h202 q128 0 189 49t61 150q0 182 -260 182h-192z" />
+<glyph unicode="C" horiz-adv-x="1305" d="M805 1225q-175 0 -271 -131.5t-96 -366.5q0 -489 367 -489q154 0 373 77v-260q-180 -75 -402 -75q-319 0 -488 193.5t-169 555.5q0 228 83 399.5t238.5 263t364.5 91.5q213 0 428 -103l-100 -252q-82 39 -165 68t-163 29z" />
+<glyph unicode="D" horiz-adv-x="1516" d="M1397 745q0 -361 -205.5 -553t-593.5 -192h-414v1462h459q358 0 556 -189t198 -528zM1075 737q0 471 -416 471h-165v-952h133q448 0 448 481z" />
+<glyph unicode="E" horiz-adv-x="1147" d="M1026 0h-842v1462h842v-254h-532v-321h495v-254h-495v-377h532v-256z" />
+<glyph unicode="F" horiz-adv-x="1124" d="M489 0h-305v1462h838v-254h-533v-377h496v-253h-496v-578z" />
+<glyph unicode="G" horiz-adv-x="1483" d="M739 821h580v-758q-141 -46 -265.5 -64.5t-254.5 -18.5q-331 0 -505.5 194.5t-174.5 558.5q0 354 202.5 552t561.5 198q225 0 434 -90l-103 -248q-160 80 -333 80q-201 0 -322 -135t-121 -363q0 -238 97.5 -363.5t283.5 -125.5q97 0 197 20v305h-277v258z" />
+<glyph unicode="H" horiz-adv-x="1567" d="M1382 0h-309v631h-579v-631h-310v1462h310v-573h579v573h309v-1462z" />
+<glyph unicode="I" horiz-adv-x="678" d="M184 0v1462h310v-1462h-310z" />
+<glyph unicode="J" horiz-adv-x="678" d="M31 -430q-105 0 -183 22v258q80 -20 146 -20q102 0 146 63.5t44 198.5v1370h310v-1368q0 -256 -117 -390t-346 -134z" />
+<glyph unicode="K" horiz-adv-x="1360" d="M1360 0h-352l-383 616l-131 -94v-522h-310v1462h310v-669l122 172l396 497h344l-510 -647z" />
+<glyph unicode="L" horiz-adv-x="1157" d="M184 0v1462h310v-1206h593v-256h-903z" />
+<glyph unicode="M" horiz-adv-x="1931" d="M803 0l-352 1147h-9q19 -350 19 -467v-680h-277v1462h422l346 -1118h6l367 1118h422v-1462h-289v692q0 49 1.5 113t13.5 340h-9l-377 -1145h-284z" />
+<glyph unicode="N" horiz-adv-x="1665" d="M1481 0h-394l-636 1106h-9q19 -293 19 -418v-688h-277v1462h391l635 -1095h7q-15 285 -15 403v692h279v-1462z" />
+<glyph unicode="O" horiz-adv-x="1630" d="M1511 733q0 -363 -180 -558t-516 -195t-516 195t-180 560t180.5 557.5t517.5 192.5t515.5 -194t178.5 -558zM444 733q0 -245 93 -369t278 -124q371 0 371 493q0 494 -369 494q-185 0 -279 -124.5t-94 -369.5z" />
+<glyph unicode="P" horiz-adv-x="1286" d="M494 774h102q143 0 214 56.5t71 164.5q0 109 -59.5 161t-186.5 52h-141v-434zM1194 1006q0 -236 -147.5 -361t-419.5 -125h-133v-520h-310v1462h467q266 0 404.5 -114.5t138.5 -341.5z" />
+<glyph unicode="Q" horiz-adv-x="1630" d="M1511 733q0 -258 -91.5 -432.5t-268.5 -255.5l352 -393h-397l-268 328h-23q-336 0 -516 195t-180 560t180.5 557.5t517.5 192.5t515.5 -194t178.5 -558zM444 733q0 -245 93 -369t278 -124q371 0 371 493q0 494 -369 494q-185 0 -279 -124.5t-94 -369.5z" />
+<glyph unicode="R" horiz-adv-x="1352" d="M494 813h100q147 0 217 49t70 154q0 104 -71.5 148t-221.5 44h-94v-395zM494 561v-561h-310v1462h426q298 0 441 -108.5t143 -329.5q0 -129 -71 -229.5t-201 -157.5q330 -493 430 -637h-344l-349 561h-165z" />
+<glyph unicode="S" horiz-adv-x="1128" d="M1047 406q0 -198 -142.5 -312t-396.5 -114q-234 0 -414 88v288q148 -66 250.5 -93t187.5 -27q102 0 156.5 39t54.5 116q0 43 -24 76.5t-70.5 64.5t-189.5 99q-134 63 -201 121t-107 135t-40 180q0 194 131.5 305t363.5 111q114 0 217.5 -27t216.5 -76l-100 -241 q-117 48 -193.5 67t-150.5 19q-88 0 -135 -41t-47 -107q0 -41 19 -71.5t60.5 -59t196.5 -102.5q205 -98 281 -196.5t76 -241.5z" />
+<glyph unicode="T" horiz-adv-x="1186" d="M748 0h-310v1204h-397v258h1104v-258h-397v-1204z" />
+<glyph unicode="U" horiz-adv-x="1548" d="M1374 1462v-946q0 -162 -72.5 -284t-209.5 -187t-324 -65q-282 0 -438 144.5t-156 395.5v942h309v-895q0 -169 68 -248t225 -79q152 0 220.5 79.5t68.5 249.5v893h309z" />
+<glyph unicode="V" horiz-adv-x="1331" d="M1018 1462h313l-497 -1462h-338l-496 1462h313l275 -870q23 -77 47.5 -179.5t30.5 -142.5q11 92 75 322z" />
+<glyph unicode="W" horiz-adv-x="1980" d="M1608 0h-353l-198 768q-11 41 -37.5 169.5t-30.5 172.5q-6 -54 -30 -173.5t-37 -170.5l-197 -766h-352l-373 1462h305l187 -798q49 -221 71 -383q6 57 27.5 176.5t40.5 185.5l213 819h293l213 -819q14 -55 35 -168t32 -194q10 78 32 194.5t40 188.5l186 798h305z" />
+<glyph unicode="X" horiz-adv-x="1366" d="M1366 0h-354l-340 553l-340 -553h-332l485 754l-454 708h342l315 -526l309 526h334l-459 -725z" />
+<glyph unicode="Y" horiz-adv-x="1278" d="M639 860l305 602h334l-485 -893v-569h-308v559l-485 903h336z" />
+<glyph unicode="Z" horiz-adv-x="1186" d="M1137 0h-1088v201l701 1005h-682v256h1050v-200l-700 -1006h719v-256z" />
+<glyph unicode="[" horiz-adv-x="678" d="M627 -324h-484v1786h484v-211h-224v-1364h224v-211z" />
+<glyph unicode="\" horiz-adv-x="846" d="M289 1462l545 -1462h-277l-545 1462h277z" />
+<glyph unicode="]" horiz-adv-x="678" d="M51 -113h223v1364h-223v211h484v-1786h-484v211z" />
+<glyph unicode="^" horiz-adv-x="1090" d="M8 520l438 950h144l495 -950h-239l-322 643l-280 -643h-236z" />
+<glyph unicode="_" horiz-adv-x="842" d="M846 -324h-850v140h850v-140z" />
+<glyph unicode="`" horiz-adv-x="1243" d="M707 1241q-63 44 -185 142.5t-190 164.5v21h342q63 -101 235 -301v-27h-202z" />
+<glyph unicode="a" horiz-adv-x="1237" d="M870 0l-59 152h-8q-77 -97 -158.5 -134.5t-212.5 -37.5q-161 0 -253.5 92t-92.5 262q0 178 124.5 262.5t375.5 93.5l194 6v49q0 170 -174 170q-134 0 -315 -81l-101 206q193 101 428 101q225 0 345 -98t120 -298v-745h-213zM780 518l-118 -4q-133 -4 -198 -48t-65 -134 q0 -129 148 -129q106 0 169.5 61t63.5 162v92z" />
+<glyph unicode="b" horiz-adv-x="1296" d="M782 1139q198 0 310 -154.5t112 -423.5q0 -277 -115.5 -429t-314.5 -152q-197 0 -309 143h-21l-51 -123h-233v1556h305v-362q0 -69 -12 -221h12q107 166 317 166zM684 895q-113 0 -165 -69.5t-54 -229.5v-33q0 -180 53.5 -258t169.5 -78q94 0 149.5 86.5t55.5 251.5 t-56 247.5t-153 82.5z" />
+<glyph unicode="c" horiz-adv-x="1053" d="M614 -20q-522 0 -522 573q0 285 142 435.5t407 150.5q194 0 348 -76l-90 -236q-72 29 -134 47.5t-124 18.5q-238 0 -238 -338q0 -328 238 -328q88 0 163 23.5t150 73.5v-261q-74 -47 -149.5 -65t-190.5 -18z" />
+<glyph unicode="d" horiz-adv-x="1296" d="M514 -20q-197 0 -309.5 153t-112.5 424q0 275 114.5 428.5t315.5 153.5q211 0 322 -164h10q-23 125 -23 223v358h306v-1556h-234l-59 145h-13q-104 -165 -317 -165zM621 223q117 0 171.5 68t59.5 231v33q0 180 -55.5 258t-180.5 78q-102 0 -158.5 -86.5t-56.5 -251.5 t57 -247.5t163 -82.5z" />
+<glyph unicode="e" horiz-adv-x="1210" d="M623 922q-97 0 -152 -61.5t-63 -174.5h428q-2 113 -59 174.5t-154 61.5zM666 -20q-270 0 -422 149t-152 422q0 281 140.5 434.5t388.5 153.5q237 0 369 -135t132 -373v-148h-721q5 -130 77 -203t202 -73q101 0 191 21t188 67v-236q-80 -40 -171 -59.5t-222 -19.5z" />
+<glyph unicode="f" horiz-adv-x="793" d="M778 889h-264v-889h-305v889h-168v147l168 82v82q0 191 94 279t301 88q158 0 281 -47l-78 -224q-92 29 -170 29q-65 0 -94 -38.5t-29 -98.5v-70h264v-229z" />
+<glyph unicode="g" horiz-adv-x="1157" d="M1133 1118v-155l-175 -45q48 -75 48 -168q0 -180 -125.5 -280.5t-348.5 -100.5l-55 3l-45 5q-47 -36 -47 -80q0 -66 168 -66h190q184 0 280.5 -79t96.5 -232q0 -196 -163.5 -304t-469.5 -108q-234 0 -357.5 81.5t-123.5 228.5q0 101 63 169t185 97q-47 20 -82 65.5 t-35 96.5q0 64 37 106.5t107 83.5q-88 38 -139.5 122t-51.5 198q0 183 119 283t340 100q47 0 111.5 -8.5t82.5 -12.5h390zM270 -158q0 -63 60.5 -99t169.5 -36q164 0 257 45t93 123q0 63 -55 87t-170 24h-158q-84 0 -140.5 -39.5t-56.5 -104.5zM381 752q0 -91 41.5 -144 t126.5 -53q86 0 126 53t40 144q0 202 -166 202q-168 0 -168 -202z" />
+<glyph unicode="h" horiz-adv-x="1346" d="M1192 0h-305v653q0 242 -180 242q-128 0 -185 -87t-57 -282v-526h-305v1556h305v-317q0 -37 -7 -174l-7 -90h16q102 164 324 164q197 0 299 -106t102 -304v-729z" />
+<glyph unicode="i" horiz-adv-x="625" d="M147 1407q0 149 166 149t166 -149q0 -71 -41.5 -110.5t-124.5 -39.5q-166 0 -166 150zM465 0h-305v1118h305v-1118z" />
+<glyph unicode="j" horiz-adv-x="625" d="M70 -492q-117 0 -201 25v240q70 -19 143 -19q77 0 112.5 43t35.5 127v1194h305v-1239q0 -178 -103 -274.5t-292 -96.5zM147 1407q0 149 166 149t166 -149q0 -71 -41.5 -110.5t-124.5 -39.5q-166 0 -166 150z" />
+<glyph unicode="k" horiz-adv-x="1270" d="M453 608l133 170l313 340h344l-444 -485l471 -633h-352l-322 453l-131 -105v-348h-305v1556h305v-694l-16 -254h4z" />
+<glyph unicode="l" horiz-adv-x="625" d="M465 0h-305v1556h305v-1556z" />
+<glyph unicode="m" horiz-adv-x="2011" d="M1161 0h-305v653q0 121 -40.5 181.5t-127.5 60.5q-117 0 -170 -86t-53 -283v-526h-305v1118h233l41 -143h17q45 77 130 120.5t195 43.5q251 0 340 -164h27q45 78 132.5 121t197.5 43q190 0 287.5 -97.5t97.5 -312.5v-729h-306v653q0 121 -40.5 181.5t-127.5 60.5 q-112 0 -167.5 -80t-55.5 -254v-561z" />
+<glyph unicode="n" horiz-adv-x="1346" d="M1192 0h-305v653q0 121 -43 181.5t-137 60.5q-128 0 -185 -85.5t-57 -283.5v-526h-305v1118h233l41 -143h17q51 81 140.5 122.5t203.5 41.5q195 0 296 -105.5t101 -304.5v-729z" />
+<glyph unicode="o" horiz-adv-x="1268" d="M403 561q0 -166 54.5 -251t177.5 -85q122 0 175.5 84.5t53.5 251.5q0 166 -54 249t-177 83q-122 0 -176 -82.5t-54 -249.5zM1176 561q0 -273 -144 -427t-401 -154q-161 0 -284 70.5t-189 202.5t-66 308q0 274 143 426t402 152q161 0 284 -70t189 -201t66 -307z" />
+<glyph unicode="p" horiz-adv-x="1296" d="M774 -20q-197 0 -309 143h-16q16 -140 16 -162v-453h-305v1610h248l43 -145h14q107 166 317 166q198 0 310 -153t112 -425q0 -179 -52.5 -311t-149.5 -201t-228 -69zM684 895q-113 0 -165 -69.5t-54 -229.5v-33q0 -180 53.5 -258t169.5 -78q205 0 205 338 q0 165 -50.5 247.5t-158.5 82.5z" />
+<glyph unicode="q" horiz-adv-x="1296" d="M623 219q116 0 170 66.5t59 232.5v37q0 180 -55.5 258t-178.5 78q-215 0 -215 -338q0 -168 53.5 -251t166.5 -83zM514 -20q-198 0 -310 152.5t-112 424.5q0 274 114.5 428t313.5 154q106 0 185 -40t139 -124h8l27 143h258v-1610h-306v469q0 61 13 168h-13 q-49 -81 -130 -123t-187 -42z" />
+<glyph unicode="r" horiz-adv-x="930" d="M784 1139q62 0 103 -9l-23 -286q-37 10 -90 10q-146 0 -227.5 -75t-81.5 -210v-569h-305v1118h231l45 -188h15q52 94 140.5 151.5t192.5 57.5z" />
+<glyph unicode="s" horiz-adv-x="1018" d="M940 332q0 -172 -119.5 -262t-357.5 -90q-122 0 -208 16.5t-161 48.5v252q85 -40 191.5 -67t187.5 -27q166 0 166 96q0 36 -22 58.5t-76 51t-144 66.5q-129 54 -189.5 100t-88 105.5t-27.5 146.5q0 149 115.5 230.5t327.5 81.5q202 0 393 -88l-92 -220q-84 36 -157 59 t-149 23q-135 0 -135 -73q0 -41 43.5 -71t190.5 -89q131 -53 192 -99t90 -106t29 -143z" />
+<glyph unicode="t" horiz-adv-x="889" d="M631 223q80 0 192 35v-227q-114 -51 -280 -51q-183 0 -266.5 92.5t-83.5 277.5v539h-146v129l168 102l88 236h195v-238h313v-229h-313v-539q0 -65 36.5 -96t96.5 -31z" />
+<glyph unicode="u" horiz-adv-x="1346" d="M952 0l-41 143h-16q-49 -78 -139 -120.5t-205 -42.5q-197 0 -297 105.5t-100 303.5v729h305v-653q0 -121 43 -181.5t137 -60.5q128 0 185 85.5t57 283.5v526h305v-1118h-234z" />
+<glyph unicode="v" horiz-adv-x="1165" d="M426 0l-426 1118h319l216 -637q36 -121 45 -229h6q5 96 45 229l215 637h319l-426 -1118h-313z" />
+<glyph unicode="w" horiz-adv-x="1753" d="M1079 0l-86 391l-116 494h-7l-204 -885h-328l-318 1118h304l129 -495q31 -133 63 -367h6q4 76 35 241l16 85l138 536h336l131 -536q4 -22 12.5 -65t16.5 -91.5t14.5 -95t7.5 -74.5h6q9 72 32 197.5t33 169.5l134 495h299l-322 -1118h-332z" />
+<glyph unicode="x" horiz-adv-x="1184" d="M389 571l-360 547h346l217 -356l219 356h346l-364 -547l381 -571h-347l-235 383l-236 -383h-346z" />
+<glyph unicode="y" horiz-adv-x="1165" d="M0 1118h334l211 -629q27 -82 37 -194h6q11 103 43 194l207 629h327l-473 -1261q-65 -175 -185.5 -262t-281.5 -87q-79 0 -155 17v242q55 -13 120 -13q81 0 141.5 49.5t94.5 149.5l18 55z" />
+<glyph unicode="z" horiz-adv-x="999" d="M938 0h-883v180l518 705h-487v233h834v-198l-504 -687h522v-233z" />
+<glyph unicode="{" horiz-adv-x="807" d="M287 270q0 87 -65.5 133t-190.5 46v239q126 0 191 44t65 126v8v318q0 153 97 215.5t341 62.5v-225q-99 -3 -136.5 -38t-37.5 -103v-299q-6 -188 -234 -222v-12q234 -35 234 -212v-9v-299q0 -68 37 -103t137 -38v-226q-244 0 -341 62.5t-97 216.5v315z" />
+<glyph unicode="|" horiz-adv-x="1128" d="M455 1550h219v-2015h-219v2015z" />
+<glyph unicode="}" horiz-adv-x="807" d="M520 -45q0 -112 -41 -169t-135.5 -83.5t-261.5 -26.5v226q99 2 136.5 36t37.5 105v299v11q0 86 59 139.5t174 70.5v12q-227 34 -233 222v299q0 70 -37 104t-137 37v225q167 0 262 -26.5t135.5 -84t40.5 -167.5v-318v-10q0 -84 61.5 -126t194.5 -42v-239 q-125 0 -190.5 -41t-65.5 -138v-315z" />
+<glyph unicode="~" d="M322 672q-55 0 -117.5 -33.5t-116.5 -87.5v231q103 109 256 109q73 0 137.5 -16t139.5 -48q129 -55 227 -55q53 0 116 32t117 89v-231q-101 -109 -256 -109q-66 0 -126 13t-150 50q-131 56 -227 56z" />
+<glyph unicode="&#xa1;" horiz-adv-x="586" d="M168 606h244l51 -975h-346zM467 948q0 -84 -45 -127t-131 -43q-83 0 -128.5 44t-45.5 126q0 81 46.5 125.5t127.5 44.5q84 0 130 -44t46 -126z" />
+<glyph unicode="&#xa2;" d="M563 176q-420 59 -420 565q0 261 104.5 403t315.5 173v166h178v-158q166 -9 299 -74l-90 -235q-72 29 -134 47t-124 18q-121 0 -179 -83.5t-58 -254.5q0 -327 237 -327q82 0 148 15.5t166 60.5v-254q-127 -61 -265 -70v-188h-178v196z" />
+<glyph unicode="&#xa3;" d="M700 1483q195 0 390 -82l-93 -230q-157 64 -272 64q-78 0 -120 -44.5t-42 -127.5v-193h375v-219h-375v-143q0 -170 -151 -248h718v-260h-1048v248q103 44 141.5 101t38.5 157v145h-178v219h178v195q0 201 114.5 309.5t323.5 108.5z" />
+<glyph unicode="&#xa4;" d="M188 723q0 102 54 197l-129 127l147 147l127 -127q91 53 197 53q105 0 196 -55l127 129l150 -143l-129 -129q53 -89 53 -199q0 -107 -53 -199l125 -125l-146 -145l-127 125q-95 -51 -196 -51q-115 0 -199 51l-125 -123l-145 145l127 125q-54 93 -54 197zM395 723 q0 -77 54.5 -132.5t134.5 -55.5q81 0 136.5 55t55.5 133q0 80 -56.5 135t-135.5 55q-78 0 -133.5 -56t-55.5 -134z" />
+<glyph unicode="&#xa5;" d="M584 860l264 602h313l-383 -747h195v-178h-246v-138h246v-178h-246v-221h-287v221h-247v178h247v138h-247v178h190l-377 747h316z" />
+<glyph unicode="&#xa6;" horiz-adv-x="1128" d="M455 1550h219v-815h-219v815zM455 350h219v-815h-219v815z" />
+<glyph unicode="&#xa7;" horiz-adv-x="995" d="M121 805q0 79 36 144.5t97 105.5q-133 84 -133 233q0 131 111.5 210t293.5 79q170 0 363 -84l-82 -190q-68 32 -138.5 57.5t-148.5 25.5q-81 0 -118 -23t-37 -71q0 -49 49.5 -86t163.5 -82q163 -64 240 -148.5t77 -193.5q0 -177 -125 -260q62 -40 93.5 -92.5t31.5 -126.5 q0 -148 -119.5 -235.5t-320.5 -87.5q-203 0 -349 79v207q81 -41 180 -69.5t169 -28.5q194 0 194 117q0 39 -18.5 63t-63.5 49.5t-125 59.5q-183 74 -252 152.5t-69 195.5zM344 827q0 -67 65 -119t181 -98q78 57 78 146q0 68 -50.5 115t-183.5 96q-37 -14 -63.5 -53.5 t-26.5 -86.5z" />
+<glyph unicode="&#xa8;" horiz-adv-x="1243" d="M279 1405q0 65 37.5 100t101.5 35q66 0 103.5 -37t37.5 -98q0 -60 -38 -96.5t-103 -36.5q-64 0 -101.5 35t-37.5 98zM682 1405q0 70 40.5 102.5t100.5 32.5q65 0 103.5 -36t38.5 -99q0 -61 -39 -97t-103 -36q-60 0 -100.5 32.5t-40.5 100.5z" />
+<glyph unicode="&#xa9;" horiz-adv-x="1704" d="M895 1010q-97 0 -150 -74t-53 -205q0 -280 203 -280q57 0 123 15t123 44v-191q-120 -57 -252 -57q-204 0 -316 125t-112 346q0 220 110.5 342.5t309.5 122.5q149 0 305 -78l-74 -168q-113 58 -217 58zM100 731q0 200 100 375t275 276t377 101q200 0 375 -100t276 -275 t101 -377q0 -197 -97 -370t-272 -277t-383 -104q-207 0 -382 103.5t-272.5 276.5t-97.5 371zM242 731q0 -164 82 -305.5t224 -223t304 -81.5q164 0 305.5 82t223 224t81.5 304q0 164 -82 305.5t-224 223t-304 81.5q-164 0 -305.5 -82t-223 -224t-81.5 -304z" />
+<glyph unicode="&#xaa;" horiz-adv-x="784" d="M561 764l-31 110q-43 -58 -105 -90t-136 -32q-117 0 -179.5 58.5t-62.5 164.5q0 109 82.5 163.5t267.5 63.5l99 4q0 117 -127 117q-81 0 -217 -61l-66 135q66 32 145.5 57t178.5 25q137 0 211.5 -71t74.5 -202v-442h-135zM252 977q0 -38 23 -56t55 -18q77 0 121.5 41.5 t44.5 106.5v36l-99 -6q-145 -10 -145 -104z" />
+<glyph unicode="&#xab;" horiz-adv-x="1260" d="M82 573l371 455l219 -119l-279 -348l279 -348l-219 -119l-371 453v26zM588 573l370 455l220 -119l-279 -348l279 -348l-220 -119l-370 453v26z" />
+<glyph unicode="&#xac;" d="M1081 248h-219v364h-774v219h993v-583z" />
+<glyph unicode="&#xad;" horiz-adv-x="659" d="M61 424zM61 424v250h537v-250h-537z" />
+<glyph unicode="&#xae;" horiz-adv-x="1704" d="M1157 905q0 -170 -143 -233l237 -400h-254l-178 338h-47v-338h-229v916h264q181 0 265.5 -70t84.5 -213zM772 778h31q66 0 94.5 28.5t28.5 94.5q0 65 -28 92t-97 27h-29v-242zM100 731q0 200 100 375t275 276t377 101q200 0 375 -100t276 -275t101 -377q0 -197 -97 -370 t-272 -277t-383 -104q-207 0 -382 103.5t-272.5 276.5t-97.5 371zM242 731q0 -164 82 -305.5t224 -223t304 -81.5q164 0 305.5 82t223 224t81.5 304q0 164 -82 305.5t-224 223t-304 81.5q-164 0 -305.5 -82t-223 -224t-81.5 -304z" />
+<glyph unicode="&#xaf;" horiz-adv-x="1024" d="M1030 1556h-1036v201h1036v-201z" />
+<glyph unicode="&#xb0;" horiz-adv-x="877" d="M92 1137q0 92 46 172t126 127t174 47q92 0 172.5 -46t127 -127t46.5 -173q0 -93 -46.5 -173.5t-126.5 -125.5t-173 -45q-145 0 -245.5 99.5t-100.5 244.5zM283 1137q0 -64 44.5 -109t110.5 -45t111 46t45 108q0 63 -45.5 110t-110.5 47q-64 0 -109.5 -46t-45.5 -111z" />
+<glyph unicode="&#xb1;" d="M475 674h-387v219h387v389h219v-389h387v-219h-387v-385h-219v385zM88 0v219h993v-219h-993z" />
+<glyph unicode="&#xb2;" horiz-adv-x="776" d="M702 586h-647v168l224 219q102 100 130.5 144.5t28.5 94.5q0 38 -24 58t-64 20q-81 0 -180 -88l-123 152q147 129 336 129q137 0 216 -66.5t79 -183.5q0 -85 -47 -160t-176 -192l-105 -95h352v-200z" />
+<glyph unicode="&#xb3;" horiz-adv-x="776" d="M666 1249q0 -143 -170 -198v-13q94 -20 146 -75t52 -134q0 -121 -88 -190.5t-274 -69.5q-143 0 -273 70v190q148 -90 271 -90q143 0 143 107q0 53 -44 79.5t-122 26.5h-112v160h92q83 0 123.5 26t40.5 83q0 38 -25 63t-76 25q-47 0 -89 -19t-99 -59l-101 141 q62 47 137.5 78t178.5 31q127 0 208 -64t81 -168z" />
+<glyph unicode="&#xb4;" horiz-adv-x="1243" d="M332 1241v27q172 200 235 301h342v-21q-52 -52 -177.5 -154.5t-196.5 -152.5h-203z" />
+<glyph unicode="&#xb5;" horiz-adv-x="1352" d="M465 465q0 -121 44 -181.5t138 -60.5q126 0 183 86.5t57 282.5v526h305v-1118h-231l-43 150h-15q-42 -85 -102 -127.5t-148 -42.5q-62 0 -114 23t-84 67l5 -85l5 -157v-320h-305v1610h305v-653z" />
+<glyph unicode="&#xb6;" horiz-adv-x="1341" d="M1167 -260h-161v1616h-166v-1616h-162v819q-62 -18 -146 -18q-216 0 -317.5 125t-101.5 376q0 260 109 387t341 127h604v-1816z" />
+<glyph unicode="&#xb7;" horiz-adv-x="584" d="M117 723q0 84 45 127t131 43q83 0 128.5 -44t45.5 -126q0 -81 -46.5 -125.5t-127.5 -44.5q-84 0 -130 44t-46 126z" />
+<glyph unicode="&#xb8;" horiz-adv-x="420" d="M418 -250q0 -128 -75.5 -185t-233.5 -57q-78 0 -146 21v168q27 -7 72.5 -14t70.5 -7q72 0 72 62q0 83 -166 108l78 154h193l-27 -61q74 -24 118 -74.5t44 -114.5z" />
+<glyph unicode="&#xb9;" horiz-adv-x="776" d="M584 586h-238v446l3 112l5 95q-27 -36 -75 -78l-78 -61l-109 127l301 235h191v-876z" />
+<glyph unicode="&#xba;" horiz-adv-x="795" d="M737 1116q0 -171 -91.5 -267.5t-250.5 -96.5q-153 0 -245.5 98.5t-92.5 265.5q0 169 89.5 266t252.5 97q152 0 245 -98.5t93 -264.5zM260 1116q0 -100 32.5 -150.5t104.5 -50.5t103.5 50.5t31.5 150.5t-31.5 149.5t-103.5 49.5t-104.5 -49.5t-32.5 -149.5z" />
+<glyph unicode="&#xbb;" horiz-adv-x="1260" d="M1178 547l-371 -453l-219 119l278 348l-278 348l219 119l371 -455v-26zM672 547l-371 -453l-219 119l278 348l-278 348l219 119l371 -455v-26z" />
+<glyph unicode="&#xbc;" horiz-adv-x="1804" d="M46 0zM538 586h-238v446l3 112l5 95q-27 -36 -75 -78l-78 -61l-109 127l301 235h191v-876zM1370 1462l-811 -1462h-239l811 1462h239zM1682 152h-125v-151h-238v151h-383v154l385 577h236v-563h125v-168zM1319 320v164q0 86 6 184q-9 -26 -35.5 -80t-41.5 -77l-127 -191 h198z" />
+<glyph unicode="&#xbd;" horiz-adv-x="1804" d="M46 0zM538 586h-238v446l3 112l5 95q-27 -36 -75 -78l-78 -61l-109 127l301 235h191v-876zM1370 1462l-811 -1462h-239l811 1462h239zM1716 1h-647v168l224 219q102 100 130.5 144.5t28.5 94.5q0 38 -24 58t-64 20q-81 0 -180 -88l-123 152q147 129 336 129 q137 0 216 -66.5t79 -183.5q0 -85 -47 -160t-176 -192l-105 -95h352v-200z" />
+<glyph unicode="&#xbe;" horiz-adv-x="1804" d="M90 0zM697 1249q0 -143 -170 -198v-13q94 -20 146 -75t52 -134q0 -121 -88 -190.5t-274 -69.5q-143 0 -273 70v190q148 -90 271 -90q143 0 143 107q0 53 -44 79.5t-122 26.5h-112v160h92q83 0 123.5 26t40.5 83q0 38 -25 63t-76 25q-47 0 -89 -19t-99 -59l-101 141 q62 47 137.5 78t178.5 31q127 0 208 -64t81 -168zM1441 1462l-811 -1462h-239l811 1462h239zM1712 152h-125v-151h-238v151h-383v154l385 577h236v-563h125v-168zM1349 320v164q0 86 6 184q-9 -26 -35.5 -80t-41.5 -77l-127 -191h198z" />
+<glyph unicode="&#xbf;" horiz-adv-x="977" d="M713 606v-74q0 -98 -44.5 -169t-152.5 -148q-109 -78 -137.5 -122t-28.5 -107q0 -57 43.5 -94t132.5 -37q79 0 169 29t186 71l102 -221q-98 -56 -221.5 -90.5t-229.5 -34.5q-220 0 -345.5 96.5t-125.5 265.5q0 108 48.5 187t191.5 184q95 70 121.5 107t26.5 98v59h264z M745 948q0 -84 -45 -127t-131 -43q-83 0 -128.5 44t-45.5 126q0 81 46.5 125.5t127.5 44.5q84 0 130 -44t46 -126z" />
+<glyph unicode="&#xc0;" horiz-adv-x="1413" d="M0 0zM1079 0l-106 348h-533l-106 -348h-334l516 1468h379l518 -1468h-334zM899 608q-147 473 -165.5 535t-26.5 98q-33 -128 -189 -633h381zM713 1579q-63 44 -185 142.5t-190 164.5v21h342q63 -101 235 -301v-27h-202z" />
+<glyph unicode="&#xc1;" horiz-adv-x="1413" d="M0 0zM1079 0l-106 348h-533l-106 -348h-334l516 1468h379l518 -1468h-334zM899 608q-147 473 -165.5 535t-26.5 98q-33 -128 -189 -633h381zM541 1579v27q172 200 235 301h342v-21q-52 -52 -177.5 -154.5t-196.5 -152.5h-203z" />
+<glyph unicode="&#xc2;" horiz-adv-x="1413" d="M0 0zM1079 0l-106 348h-533l-106 -348h-334l516 1468h379l518 -1468h-334zM899 608q-147 473 -165.5 535t-26.5 98q-33 -128 -189 -633h381zM938 1579q-157 93 -234 176q-78 -81 -229 -176h-203v27q189 189 256 301h357q31 -52 107.5 -141.5t148.5 -159.5v-27h-203z" />
+<glyph unicode="&#xc3;" horiz-adv-x="1413" d="M0 0zM1079 0l-106 348h-533l-106 -348h-334l516 1468h379l518 -1468h-334zM899 608q-147 473 -165.5 535t-26.5 98q-33 -128 -189 -633h381zM543 1684q-31 0 -59.5 -26.5t-41.5 -80.5h-149q11 145 82.5 227t189.5 82q41 0 80.5 -16.5t78 -36t75.5 -35.5t73 -16 q31 0 59.5 26t41.5 80h149q-11 -145 -83.5 -227t-188.5 -82q-41 0 -80.5 16.5t-78 36t-75.5 36t-73 16.5z" />
+<glyph unicode="&#xc4;" horiz-adv-x="1413" d="M0 0zM1079 0l-106 348h-533l-106 -348h-334l516 1468h379l518 -1468h-334zM899 608q-147 473 -165.5 535t-26.5 98q-33 -128 -189 -633h381zM365 1743q0 65 37.5 100t101.5 35q66 0 103.5 -37t37.5 -98q0 -60 -38 -96.5t-103 -36.5q-64 0 -101.5 35t-37.5 98zM768 1743 q0 70 40.5 102.5t100.5 32.5q65 0 103.5 -36t38.5 -99q0 -61 -39 -97t-103 -36q-60 0 -100.5 32.5t-40.5 100.5z" />
+<glyph unicode="&#xc5;" horiz-adv-x="1413" d="M0 0zM1079 0l-106 348h-533l-106 -348h-334l516 1468h379l518 -1468h-334zM899 608q-147 473 -165.5 535t-26.5 98q-33 -128 -189 -633h381zM959 1567q0 -108 -71 -174t-183 -66t-180 64t-68 174q0 108 67.5 172.5t180.5 64.5q110 0 182 -66t72 -169zM801 1565 q0 45 -27 70.5t-69 25.5t-69 -25.5t-27 -70.5t24 -71t72 -26q42 0 69 26t27 71z" />
+<glyph unicode="&#xc6;" horiz-adv-x="1950" d="M1829 0h-873v348h-491l-150 -348h-315l655 1462h1174v-254h-563v-321h526v-254h-526v-377h563v-256zM578 608h378v590h-127z" />
+<glyph unicode="&#xc7;" horiz-adv-x="1305" d="M119 0zM805 1225q-175 0 -271 -131.5t-96 -366.5q0 -489 367 -489q154 0 373 77v-260q-180 -75 -402 -75q-319 0 -488 193.5t-169 555.5q0 228 83 399.5t238.5 263t364.5 91.5q213 0 428 -103l-100 -252q-82 39 -165 68t-163 29zM959 -250q0 -128 -75.5 -185t-233.5 -57 q-78 0 -146 21v168q27 -7 72.5 -14t70.5 -7q72 0 72 62q0 83 -166 108l78 154h193l-27 -61q74 -24 118 -74.5t44 -114.5z" />
+<glyph unicode="&#xc8;" horiz-adv-x="1147" d="M184 0zM1026 0h-842v1462h842v-254h-532v-321h495v-254h-495v-377h532v-256zM634 1579q-63 44 -185 142.5t-190 164.5v21h342q63 -101 235 -301v-27h-202z" />
+<glyph unicode="&#xc9;" horiz-adv-x="1147" d="M184 0zM1026 0h-842v1462h842v-254h-532v-321h495v-254h-495v-377h532v-256zM424 1579v27q172 200 235 301h342v-21q-52 -52 -177.5 -154.5t-196.5 -152.5h-203z" />
+<glyph unicode="&#xca;" horiz-adv-x="1147" d="M175 0zM1026 0h-842v1462h842v-254h-532v-321h495v-254h-495v-377h532v-256zM841 1579q-157 93 -234 176q-78 -81 -229 -176h-203v27q189 189 256 301h357q31 -52 107.5 -141.5t148.5 -159.5v-27h-203z" />
+<glyph unicode="&#xcb;" horiz-adv-x="1147" d="M184 0zM1026 0h-842v1462h842v-254h-532v-321h495v-254h-495v-377h532v-256zM272 1743q0 65 37.5 100t101.5 35q66 0 103.5 -37t37.5 -98q0 -60 -38 -96.5t-103 -36.5q-64 0 -101.5 35t-37.5 98zM675 1743q0 70 40.5 102.5t100.5 32.5q65 0 103.5 -36t38.5 -99 q0 -61 -39 -97t-103 -36q-60 0 -100.5 32.5t-40.5 100.5z" />
+<glyph unicode="&#xcc;" horiz-adv-x="678" d="M0 0zM184 0v1462h310v-1462h-310zM317 1579q-63 44 -185 142.5t-190 164.5v21h342q63 -101 235 -301v-27h-202z" />
+<glyph unicode="&#xcd;" horiz-adv-x="678" d="M167 0zM184 0v1462h310v-1462h-310zM167 1579v27q172 200 235 301h342v-21q-52 -52 -177.5 -154.5t-196.5 -152.5h-203z" />
+<glyph unicode="&#xce;" horiz-adv-x="678" d="M0 0zM184 0v1462h310v-1462h-310zM570 1579q-157 93 -234 176q-78 -81 -229 -176h-203v27q189 189 256 301h357q31 -52 107.5 -141.5t148.5 -159.5v-27h-203z" />
+<glyph unicode="&#xcf;" horiz-adv-x="678" d="M0 0zM184 0v1462h310v-1462h-310zM-3 1743q0 65 37.5 100t101.5 35q66 0 103.5 -37t37.5 -98q0 -60 -38 -96.5t-103 -36.5q-64 0 -101.5 35t-37.5 98zM400 1743q0 70 40.5 102.5t100.5 32.5q65 0 103.5 -36t38.5 -99q0 -61 -39 -97t-103 -36q-60 0 -100.5 32.5 t-40.5 100.5z" />
+<glyph unicode="&#xd0;" horiz-adv-x="1516" d="M47 850h137v612h459q358 0 556 -189t198 -528q0 -361 -205.5 -553t-593.5 -192h-414v596h-137v254zM1075 737q0 232 -104 351.5t-314 119.5h-163v-358h237v-254h-237v-340h131q450 0 450 481z" />
+<glyph unicode="&#xd1;" horiz-adv-x="1665" d="M184 0zM1481 0h-394l-636 1106h-9q19 -293 19 -418v-688h-277v1462h391l635 -1095h7q-15 285 -15 403v692h279v-1462zM668 1684q-31 0 -59.5 -26.5t-41.5 -80.5h-149q11 145 82.5 227t189.5 82q41 0 80.5 -16.5t78 -36t75.5 -35.5t73 -16q31 0 59.5 26t41.5 80h149 q-11 -145 -83.5 -227t-188.5 -82q-41 0 -80.5 16.5t-78 36t-75.5 36t-73 16.5z" />
+<glyph unicode="&#xd2;" horiz-adv-x="1630" d="M119 0zM1511 733q0 -363 -180 -558t-516 -195t-516 195t-180 560t180.5 557.5t517.5 192.5t515.5 -194t178.5 -558zM444 733q0 -245 93 -369t278 -124q371 0 371 493q0 494 -369 494q-185 0 -279 -124.5t-94 -369.5zM824 1579q-63 44 -185 142.5t-190 164.5v21h342 q63 -101 235 -301v-27h-202z" />
+<glyph unicode="&#xd3;" horiz-adv-x="1630" d="M119 0zM1511 733q0 -363 -180 -558t-516 -195t-516 195t-180 560t180.5 557.5t517.5 192.5t515.5 -194t178.5 -558zM444 733q0 -245 93 -369t278 -124q371 0 371 493q0 494 -369 494q-185 0 -279 -124.5t-94 -369.5zM658 1579v27q172 200 235 301h342v-21 q-52 -52 -177.5 -154.5t-196.5 -152.5h-203z" />
+<glyph unicode="&#xd4;" horiz-adv-x="1630" d="M119 0zM1511 733q0 -363 -180 -558t-516 -195t-516 195t-180 560t180.5 557.5t517.5 192.5t515.5 -194t178.5 -558zM444 733q0 -245 93 -369t278 -124q371 0 371 493q0 494 -369 494q-185 0 -279 -124.5t-94 -369.5zM1047 1579q-157 93 -234 176q-78 -81 -229 -176h-203 v27q189 189 256 301h357q31 -52 107.5 -141.5t148.5 -159.5v-27h-203z" />
+<glyph unicode="&#xd5;" horiz-adv-x="1630" d="M119 0zM1511 733q0 -363 -180 -558t-516 -195t-516 195t-180 560t180.5 557.5t517.5 192.5t515.5 -194t178.5 -558zM444 733q0 -245 93 -369t278 -124q371 0 371 493q0 494 -369 494q-185 0 -279 -124.5t-94 -369.5zM652 1684q-31 0 -59.5 -26.5t-41.5 -80.5h-149 q11 145 82.5 227t189.5 82q41 0 80.5 -16.5t78 -36t75.5 -35.5t73 -16q31 0 59.5 26t41.5 80h149q-11 -145 -83.5 -227t-188.5 -82q-41 0 -80.5 16.5t-78 36t-75.5 36t-73 16.5z" />
+<glyph unicode="&#xd6;" horiz-adv-x="1630" d="M119 0zM1511 733q0 -363 -180 -558t-516 -195t-516 195t-180 560t180.5 557.5t517.5 192.5t515.5 -194t178.5 -558zM444 733q0 -245 93 -369t278 -124q371 0 371 493q0 494 -369 494q-185 0 -279 -124.5t-94 -369.5zM474 1743q0 65 37.5 100t101.5 35q66 0 103.5 -37 t37.5 -98q0 -60 -38 -96.5t-103 -36.5q-64 0 -101.5 35t-37.5 98zM877 1743q0 70 40.5 102.5t100.5 32.5q65 0 103.5 -36t38.5 -99q0 -61 -39 -97t-103 -36q-60 0 -100.5 32.5t-40.5 100.5z" />
+<glyph unicode="&#xd7;" d="M428 723l-299 301l152 154l301 -299l305 299l153 -150l-305 -305l301 -303l-149 -152l-305 301l-301 -299l-150 152z" />
+<glyph unicode="&#xd8;" horiz-adv-x="1630" d="M1511 733q0 -363 -180 -558t-516 -195q-197 0 -336 65l-90 -135l-162 108l90 136q-198 194 -198 581q0 365 180.5 557.5t517.5 192.5q198 0 344 -70l84 125l160 -104l-88 -131q194 -194 194 -572zM444 733q0 -191 56 -307l506 756q-84 45 -189 45q-185 0 -279 -124.5 t-94 -369.5zM1186 733q0 180 -51 297l-500 -751q76 -39 180 -39q371 0 371 493z" />
+<glyph unicode="&#xd9;" horiz-adv-x="1548" d="M174 0zM1374 1462v-946q0 -162 -72.5 -284t-209.5 -187t-324 -65q-282 0 -438 144.5t-156 395.5v942h309v-895q0 -169 68 -248t225 -79q152 0 220.5 79.5t68.5 249.5v893h309zM750 1579q-63 44 -185 142.5t-190 164.5v21h342q63 -101 235 -301v-27h-202z" />
+<glyph unicode="&#xda;" horiz-adv-x="1548" d="M174 0zM1374 1462v-946q0 -162 -72.5 -284t-209.5 -187t-324 -65q-282 0 -438 144.5t-156 395.5v942h309v-895q0 -169 68 -248t225 -79q152 0 220.5 79.5t68.5 249.5v893h309zM602 1579v27q172 200 235 301h342v-21q-52 -52 -177.5 -154.5t-196.5 -152.5h-203z" />
+<glyph unicode="&#xdb;" horiz-adv-x="1548" d="M174 0zM1374 1462v-946q0 -162 -72.5 -284t-209.5 -187t-324 -65q-282 0 -438 144.5t-156 395.5v942h309v-895q0 -169 68 -248t225 -79q152 0 220.5 79.5t68.5 249.5v893h309zM1006 1579q-157 93 -234 176q-78 -81 -229 -176h-203v27q189 189 256 301h357 q31 -52 107.5 -141.5t148.5 -159.5v-27h-203z" />
+<glyph unicode="&#xdc;" horiz-adv-x="1548" d="M174 0zM1374 1462v-946q0 -162 -72.5 -284t-209.5 -187t-324 -65q-282 0 -438 144.5t-156 395.5v942h309v-895q0 -169 68 -248t225 -79q152 0 220.5 79.5t68.5 249.5v893h309zM433 1743q0 65 37.5 100t101.5 35q66 0 103.5 -37t37.5 -98q0 -60 -38 -96.5t-103 -36.5 q-64 0 -101.5 35t-37.5 98zM836 1743q0 70 40.5 102.5t100.5 32.5q65 0 103.5 -36t38.5 -99q0 -61 -39 -97t-103 -36q-60 0 -100.5 32.5t-40.5 100.5z" />
+<glyph unicode="&#xdd;" horiz-adv-x="1278" d="M0 0zM639 860l305 602h334l-485 -893v-569h-308v559l-485 903h336zM461 1579v27q172 200 235 301h342v-21q-52 -52 -177.5 -154.5t-196.5 -152.5h-203z" />
+<glyph unicode="&#xde;" horiz-adv-x="1286" d="M1194 770q0 -229 -142.5 -353t-404.5 -124h-153v-293h-310v1462h310v-229h178q254 0 388 -119t134 -344zM494 543h100q145 0 216 52.5t71 174.5q0 107 -63.5 159t-199.5 52h-124v-438z" />
+<glyph unicode="&#xdf;" horiz-adv-x="1456" d="M1249 1241q0 -64 -21 -112.5t-53 -86.5t-69 -67t-69 -53t-53 -45t-21 -43q0 -27 26.5 -53t92.5 -66q146 -91 198.5 -140t78 -110t25.5 -139q0 -172 -116.5 -259t-343.5 -87q-99 0 -171 14.5t-132 48.5v242q53 -36 135.5 -61t146.5 -25q168 0 168 123q0 41 -16 66.5 t-57 55.5t-115 72q-126 72 -175 131.5t-49 140.5q0 64 35 117t105 102q77 55 108 95t31 86q0 60 -63.5 100.5t-163.5 40.5q-116 0 -181 -52.5t-65 -148.5v-1128h-305v1139q0 201 146.5 314.5t404.5 113.5q244 0 391 -88.5t147 -237.5z" />
+<glyph unicode="&#xe0;" horiz-adv-x="1237" d="M86 0zM870 0l-59 152h-8q-77 -97 -158.5 -134.5t-212.5 -37.5q-161 0 -253.5 92t-92.5 262q0 178 124.5 262.5t375.5 93.5l194 6v49q0 170 -174 170q-134 0 -315 -81l-101 206q193 101 428 101q225 0 345 -98t120 -298v-745h-213zM780 518l-118 -4q-133 -4 -198 -48 t-65 -134q0 -129 148 -129q106 0 169.5 61t63.5 162v92zM614 1241q-63 44 -185 142.5t-190 164.5v21h342q63 -101 235 -301v-27h-202z" />
+<glyph unicode="&#xe1;" horiz-adv-x="1237" d="M86 0zM870 0l-59 152h-8q-77 -97 -158.5 -134.5t-212.5 -37.5q-161 0 -253.5 92t-92.5 262q0 178 124.5 262.5t375.5 93.5l194 6v49q0 170 -174 170q-134 0 -315 -81l-101 206q193 101 428 101q225 0 345 -98t120 -298v-745h-213zM780 518l-118 -4q-133 -4 -198 -48 t-65 -134q0 -129 148 -129q106 0 169.5 61t63.5 162v92zM441 1241v27q172 200 235 301h342v-21q-52 -52 -177.5 -154.5t-196.5 -152.5h-203z" />
+<glyph unicode="&#xe2;" horiz-adv-x="1237" d="M86 0zM870 0l-59 152h-8q-77 -97 -158.5 -134.5t-212.5 -37.5q-161 0 -253.5 92t-92.5 262q0 178 124.5 262.5t375.5 93.5l194 6v49q0 170 -174 170q-134 0 -315 -81l-101 206q193 101 428 101q225 0 345 -98t120 -298v-745h-213zM780 518l-118 -4q-133 -4 -198 -48 t-65 -134q0 -129 148 -129q106 0 169.5 61t63.5 162v92zM843 1240q-157 93 -234 176q-78 -81 -229 -176h-203v27q189 189 256 301h357q31 -52 107.5 -141.5t148.5 -159.5v-27h-203z" />
+<glyph unicode="&#xe3;" horiz-adv-x="1237" d="M86 0zM870 0l-59 152h-8q-77 -97 -158.5 -134.5t-212.5 -37.5q-161 0 -253.5 92t-92.5 262q0 178 124.5 262.5t375.5 93.5l194 6v49q0 170 -174 170q-134 0 -315 -81l-101 206q193 101 428 101q225 0 345 -98t120 -298v-745h-213zM780 518l-118 -4q-133 -4 -198 -48 t-65 -134q0 -129 148 -129q106 0 169.5 61t63.5 162v92zM467 1346q-31 0 -59.5 -26.5t-41.5 -80.5h-149q11 145 82.5 227t189.5 82q41 0 80.5 -16.5t78 -36t75.5 -35.5t73 -16q31 0 59.5 26t41.5 80h149q-11 -145 -83.5 -227t-188.5 -82q-41 0 -80.5 16.5t-78 36t-75.5 36 t-73 16.5z" />
+<glyph unicode="&#xe4;" horiz-adv-x="1237" d="M86 0zM870 0l-59 152h-8q-77 -97 -158.5 -134.5t-212.5 -37.5q-161 0 -253.5 92t-92.5 262q0 178 124.5 262.5t375.5 93.5l194 6v49q0 170 -174 170q-134 0 -315 -81l-101 206q193 101 428 101q225 0 345 -98t120 -298v-745h-213zM780 518l-118 -4q-133 -4 -198 -48 t-65 -134q0 -129 148 -129q106 0 169.5 61t63.5 162v92zM285 1405q0 65 37.5 100t101.5 35q66 0 103.5 -37t37.5 -98q0 -60 -38 -96.5t-103 -36.5q-64 0 -101.5 35t-37.5 98zM688 1405q0 70 40.5 102.5t100.5 32.5q65 0 103.5 -36t38.5 -99q0 -61 -39 -97t-103 -36 q-60 0 -100.5 32.5t-40.5 100.5z" />
+<glyph unicode="&#xe5;" horiz-adv-x="1237" d="M86 0zM870 0l-59 152h-8q-77 -97 -158.5 -134.5t-212.5 -37.5q-161 0 -253.5 92t-92.5 262q0 178 124.5 262.5t375.5 93.5l194 6v49q0 170 -174 170q-134 0 -315 -81l-101 206q193 101 428 101q225 0 345 -98t120 -298v-745h-213zM780 518l-118 -4q-133 -4 -198 -48 t-65 -134q0 -129 148 -129q106 0 169.5 61t63.5 162v92zM883 1479q0 -108 -71 -174t-183 -66t-180 64t-68 174q0 108 67.5 172.5t180.5 64.5q110 0 182 -66t72 -169zM725 1477q0 45 -27 70.5t-69 25.5t-69 -25.5t-27 -70.5t24 -71t72 -26q42 0 69 26t27 71z" />
+<glyph unicode="&#xe6;" horiz-adv-x="1878" d="M1329 -20q-137 0 -249.5 50.5t-184.5 155.5q-98 -117 -196.5 -161.5t-256.5 -44.5q-161 0 -258.5 94.5t-97.5 259.5q0 178 121 262.5t362 93.5l191 6v84q0 69 -44.5 102t-121.5 33q-140 0 -305 -77l-99 202q189 101 422 101q227 0 342 -131q66 64 152.5 96.5t206.5 32.5 q221 0 349 -137.5t128 -370.5v-148h-723q5 -130 77 -203t202 -73q196 0 380 88v-236q-79 -39 -171 -59t-226 -20zM760 518l-113 -4q-124 -4 -186 -47.5t-62 -134.5q0 -129 140 -129q101 0 161 61t60 162v92zM1307 922q-217 0 -234 -236h430q-2 112 -55 174t-141 62z" />
+<glyph unicode="&#xe7;" horiz-adv-x="1053" d="M92 0zM614 -20q-522 0 -522 573q0 285 142 435.5t407 150.5q194 0 348 -76l-90 -236q-72 29 -134 47.5t-124 18.5q-238 0 -238 -338q0 -328 238 -328q88 0 163 23.5t150 73.5v-261q-74 -47 -149.5 -65t-190.5 -18zM805 -250q0 -128 -75.5 -185t-233.5 -57q-78 0 -146 21 v168q27 -7 72.5 -14t70.5 -7q72 0 72 62q0 83 -166 108l78 154h193l-27 -61q74 -24 118 -74.5t44 -114.5z" />
+<glyph unicode="&#xe8;" horiz-adv-x="1210" d="M92 0zM623 922q-97 0 -152 -61.5t-63 -174.5h428q-2 113 -59 174.5t-154 61.5zM666 -20q-270 0 -422 149t-152 422q0 281 140.5 434.5t388.5 153.5q237 0 369 -135t132 -373v-148h-721q5 -130 77 -203t202 -73q101 0 191 21t188 67v-236q-80 -40 -171 -59.5t-222 -19.5z M620 1241q-63 44 -185 142.5t-190 164.5v21h342q63 -101 235 -301v-27h-202z" />
+<glyph unicode="&#xe9;" horiz-adv-x="1210" d="M92 0zM623 922q-97 0 -152 -61.5t-63 -174.5h428q-2 113 -59 174.5t-154 61.5zM666 -20q-270 0 -422 149t-152 422q0 281 140.5 434.5t388.5 153.5q237 0 369 -135t132 -373v-148h-721q5 -130 77 -203t202 -73q101 0 191 21t188 67v-236q-80 -40 -171 -59.5t-222 -19.5z M447 1241v27q172 200 235 301h342v-21q-52 -52 -177.5 -154.5t-196.5 -152.5h-203z" />
+<glyph unicode="&#xea;" horiz-adv-x="1210" d="M92 0zM623 922q-97 0 -152 -61.5t-63 -174.5h428q-2 113 -59 174.5t-154 61.5zM666 -20q-270 0 -422 149t-152 422q0 281 140.5 434.5t388.5 153.5q237 0 369 -135t132 -373v-148h-721q5 -130 77 -203t202 -73q101 0 191 21t188 67v-236q-80 -40 -171 -59.5t-222 -19.5z M860 1241q-157 93 -234 176q-78 -81 -229 -176h-203v27q189 189 256 301h357q31 -52 107.5 -141.5t148.5 -159.5v-27h-203z" />
+<glyph unicode="&#xeb;" horiz-adv-x="1210" d="M92 0zM623 922q-97 0 -152 -61.5t-63 -174.5h428q-2 113 -59 174.5t-154 61.5zM666 -20q-270 0 -422 149t-152 422q0 281 140.5 434.5t388.5 153.5q237 0 369 -135t132 -373v-148h-721q5 -130 77 -203t202 -73q101 0 191 21t188 67v-236q-80 -40 -171 -59.5t-222 -19.5z M297 1405q0 65 37.5 100t101.5 35q66 0 103.5 -37t37.5 -98q0 -60 -38 -96.5t-103 -36.5q-64 0 -101.5 35t-37.5 98zM700 1405q0 70 40.5 102.5t100.5 32.5q65 0 103.5 -36t38.5 -99q0 -61 -39 -97t-103 -36q-60 0 -100.5 32.5t-40.5 100.5z" />
+<glyph unicode="&#xec;" horiz-adv-x="625" d="M0 0zM465 0h-305v1118h305v-1118zM274 1241q-63 44 -185 142.5t-190 164.5v21h342q63 -101 235 -301v-27h-202z" />
+<glyph unicode="&#xed;" horiz-adv-x="625" d="M145 0zM465 0h-305v1118h305v-1118zM145 1241v27q172 200 235 301h342v-21q-52 -52 -177.5 -154.5t-196.5 -152.5h-203z" />
+<glyph unicode="&#xee;" horiz-adv-x="625" d="M0 0zM465 0h-305v1118h305v-1118zM544 1241q-157 93 -234 176q-78 -81 -229 -176h-203v27q189 189 256 301h357q31 -52 107.5 -141.5t148.5 -159.5v-27h-203z" />
+<glyph unicode="&#xef;" horiz-adv-x="625" d="M0 0zM465 0h-305v1118h305v-1118zM-29 1405q0 65 37.5 100t101.5 35q66 0 103.5 -37t37.5 -98q0 -60 -38 -96.5t-103 -36.5q-64 0 -101.5 35t-37.5 98zM374 1405q0 70 40.5 102.5t100.5 32.5q65 0 103.5 -36t38.5 -99q0 -61 -39 -97t-103 -36q-60 0 -100.5 32.5 t-40.5 100.5z" />
+<glyph unicode="&#xf0;" horiz-adv-x="1268" d="M510 1303q-80 53 -152 92l101 176q144 -65 258 -141l225 139l100 -154l-170 -104q156 -143 230 -324.5t74 -413.5q0 -280 -145 -436.5t-400 -156.5q-245 0 -392 137t-147 372q0 233 130 369.5t351 136.5q205 0 275 -98l8 4q-67 162 -192 281l-230 -142l-100 156zM864 532 q0 108 -61 173t-168 65q-121 0 -176.5 -68.5t-55.5 -214.5q0 -140 60 -211t172 -71q123 0 176 82t53 245z" />
+<glyph unicode="&#xf1;" horiz-adv-x="1346" d="M160 0zM1192 0h-305v653q0 121 -43 181.5t-137 60.5q-128 0 -185 -85.5t-57 -283.5v-526h-305v1118h233l41 -143h17q51 81 140.5 122.5t203.5 41.5q195 0 296 -105.5t101 -304.5v-729zM508 1346q-31 0 -59.5 -26.5t-41.5 -80.5h-149q11 145 82.5 227t189.5 82 q41 0 80.5 -16.5t78 -36t75.5 -35.5t73 -16q31 0 59.5 26t41.5 80h149q-11 -145 -83.5 -227t-188.5 -82q-41 0 -80.5 16.5t-78 36t-75.5 36t-73 16.5z" />
+<glyph unicode="&#xf2;" horiz-adv-x="1268" d="M92 0zM403 561q0 -166 54.5 -251t177.5 -85q122 0 175.5 84.5t53.5 251.5q0 166 -54 249t-177 83q-122 0 -176 -82.5t-54 -249.5zM1176 561q0 -273 -144 -427t-401 -154q-161 0 -284 70.5t-189 202.5t-66 308q0 274 143 426t402 152q161 0 284 -70t189 -201t66 -307z M612 1241q-63 44 -185 142.5t-190 164.5v21h342q63 -101 235 -301v-27h-202z" />
+<glyph unicode="&#xf3;" horiz-adv-x="1268" d="M92 0zM403 561q0 -166 54.5 -251t177.5 -85q122 0 175.5 84.5t53.5 251.5q0 166 -54 249t-177 83q-122 0 -176 -82.5t-54 -249.5zM1176 561q0 -273 -144 -427t-401 -154q-161 0 -284 70.5t-189 202.5t-66 308q0 274 143 426t402 152q161 0 284 -70t189 -201t66 -307z M467 1241v27q172 200 235 301h342v-21q-52 -52 -177.5 -154.5t-196.5 -152.5h-203z" />
+<glyph unicode="&#xf4;" horiz-adv-x="1268" d="M92 0zM403 561q0 -166 54.5 -251t177.5 -85q122 0 175.5 84.5t53.5 251.5q0 166 -54 249t-177 83q-122 0 -176 -82.5t-54 -249.5zM1176 561q0 -273 -144 -427t-401 -154q-161 0 -284 70.5t-189 202.5t-66 308q0 274 143 426t402 152q161 0 284 -70t189 -201t66 -307z M864 1241q-157 93 -234 176q-78 -81 -229 -176h-203v27q189 189 256 301h357q31 -52 107.5 -141.5t148.5 -159.5v-27h-203z" />
+<glyph unicode="&#xf5;" horiz-adv-x="1268" d="M92 0zM403 561q0 -166 54.5 -251t177.5 -85q122 0 175.5 84.5t53.5 251.5q0 166 -54 249t-177 83q-122 0 -176 -82.5t-54 -249.5zM1176 561q0 -273 -144 -427t-401 -154q-161 0 -284 70.5t-189 202.5t-66 308q0 274 143 426t402 152q161 0 284 -70t189 -201t66 -307z M469 1346q-31 0 -59.5 -26.5t-41.5 -80.5h-149q11 145 82.5 227t189.5 82q41 0 80.5 -16.5t78 -36t75.5 -35.5t73 -16q31 0 59.5 26t41.5 80h149q-11 -145 -83.5 -227t-188.5 -82q-41 0 -80.5 16.5t-78 36t-75.5 36t-73 16.5z" />
+<glyph unicode="&#xf6;" horiz-adv-x="1268" d="M92 0zM403 561q0 -166 54.5 -251t177.5 -85q122 0 175.5 84.5t53.5 251.5q0 166 -54 249t-177 83q-122 0 -176 -82.5t-54 -249.5zM1176 561q0 -273 -144 -427t-401 -154q-161 0 -284 70.5t-189 202.5t-66 308q0 274 143 426t402 152q161 0 284 -70t189 -201t66 -307z M291 1405q0 65 37.5 100t101.5 35q66 0 103.5 -37t37.5 -98q0 -60 -38 -96.5t-103 -36.5q-64 0 -101.5 35t-37.5 98zM694 1405q0 70 40.5 102.5t100.5 32.5q65 0 103.5 -36t38.5 -99q0 -61 -39 -97t-103 -36q-60 0 -100.5 32.5t-40.5 100.5z" />
+<glyph unicode="&#xf7;" d="M88 612v219h993v-219h-993zM444 373q0 76 37 113.5t103 37.5t102.5 -39t36.5 -112q0 -70 -37 -111t-102 -41t-102.5 39t-37.5 113zM444 1071q0 75 37 113.5t103 38.5q67 0 103 -40.5t36 -111.5q0 -70 -37 -110.5t-102 -40.5t-102.5 39t-37.5 112z" />
+<glyph unicode="&#xf8;" horiz-adv-x="1268" d="M1176 561q0 -273 -144 -427t-401 -154q-126 0 -234 45l-67 -101l-154 105l68 100q-152 156 -152 432q0 274 143 426t402 152q132 0 248 -52l55 82l152 -108l-58 -84q142 -155 142 -416zM403 561q0 -94 19 -166l317 475q-43 23 -106 23q-122 0 -176 -82.5t-54 -249.5z M864 561q0 81 -12 141l-309 -462q38 -15 92 -15q122 0 175.5 84.5t53.5 251.5z" />
+<glyph unicode="&#xf9;" horiz-adv-x="1346" d="M154 0zM952 0l-41 143h-16q-49 -78 -139 -120.5t-205 -42.5q-197 0 -297 105.5t-100 303.5v729h305v-653q0 -121 43 -181.5t137 -60.5q128 0 185 85.5t57 283.5v526h305v-1118h-234zM620 1241q-63 44 -185 142.5t-190 164.5v21h342q63 -101 235 -301v-27h-202z" />
+<glyph unicode="&#xfa;" horiz-adv-x="1346" d="M154 0zM952 0l-41 143h-16q-49 -78 -139 -120.5t-205 -42.5q-197 0 -297 105.5t-100 303.5v729h305v-653q0 -121 43 -181.5t137 -60.5q128 0 185 85.5t57 283.5v526h305v-1118h-234zM498 1241v27q172 200 235 301h342v-21q-52 -52 -177.5 -154.5t-196.5 -152.5h-203z" />
+<glyph unicode="&#xfb;" horiz-adv-x="1346" d="M154 0zM952 0l-41 143h-16q-49 -78 -139 -120.5t-205 -42.5q-197 0 -297 105.5t-100 303.5v729h305v-653q0 -121 43 -181.5t137 -60.5q128 0 185 85.5t57 283.5v526h305v-1118h-234zM901 1241q-157 93 -234 176q-78 -81 -229 -176h-203v27q189 189 256 301h357 q31 -52 107.5 -141.5t148.5 -159.5v-27h-203z" />
+<glyph unicode="&#xfc;" horiz-adv-x="1346" d="M154 0zM952 0l-41 143h-16q-49 -78 -139 -120.5t-205 -42.5q-197 0 -297 105.5t-100 303.5v729h305v-653q0 -121 43 -181.5t137 -60.5q128 0 185 85.5t57 283.5v526h305v-1118h-234zM326 1405q0 65 37.5 100t101.5 35q66 0 103.5 -37t37.5 -98q0 -60 -38 -96.5 t-103 -36.5q-64 0 -101.5 35t-37.5 98zM729 1405q0 70 40.5 102.5t100.5 32.5q65 0 103.5 -36t38.5 -99q0 -61 -39 -97t-103 -36q-60 0 -100.5 32.5t-40.5 100.5z" />
+<glyph unicode="&#xfd;" horiz-adv-x="1165" d="M0 0zM0 1118h334l211 -629q27 -82 37 -194h6q11 103 43 194l207 629h327l-473 -1261q-65 -175 -185.5 -262t-281.5 -87q-79 0 -155 17v242q55 -13 120 -13q81 0 141.5 49.5t94.5 149.5l18 55zM393 1241v27q172 200 235 301h342v-21q-52 -52 -177.5 -154.5t-196.5 -152.5 h-203z" />
+<glyph unicode="&#xfe;" horiz-adv-x="1296" d="M465 973q50 81 131 123.5t186 42.5q198 0 310 -154.5t112 -423.5q0 -273 -111.5 -427t-310.5 -154q-213 0 -317 137h-14l7 -62l7 -94v-453h-305v2048h305v-391l-7 -120l-7 -72h14zM684 895q-113 0 -165 -69.5t-54 -229.5v-33q0 -180 53.5 -258t169.5 -78q205 0 205 338 q0 165 -50.5 247.5t-158.5 82.5z" />
+<glyph unicode="&#xff;" horiz-adv-x="1165" d="M0 0zM0 1118h334l211 -629q27 -82 37 -194h6q11 103 43 194l207 629h327l-473 -1261q-65 -175 -185.5 -262t-281.5 -87q-79 0 -155 17v242q55 -13 120 -13q81 0 141.5 49.5t94.5 149.5l18 55zM243 1405q0 65 37.5 100t101.5 35q66 0 103.5 -37t37.5 -98q0 -60 -38 -96.5 t-103 -36.5q-64 0 -101.5 35t-37.5 98zM646 1405q0 70 40.5 102.5t100.5 32.5q65 0 103.5 -36t38.5 -99q0 -61 -39 -97t-103 -36q-60 0 -100.5 32.5t-40.5 100.5z" />
+<glyph unicode="&#x131;" horiz-adv-x="625" d="M465 0h-305v1118h305v-1118z" />
+<glyph unicode="&#x152;" horiz-adv-x="1993" d="M1872 0h-873q-38 -9 -109 -14.5t-116 -5.5q-319 0 -487 197t-168 558q0 363 169.5 556.5t487.5 193.5q61 0 127 -7t101 -16h868v-254h-563v-321h526v-254h-526v-377h563v-256zM776 1227q-166 0 -252 -125.5t-86 -368.5q0 -244 86 -368.5t250 -124.5q65 0 126 10.5 t99 28.5v907q-35 19 -101.5 30t-121.5 11z" />
+<glyph unicode="&#x153;" horiz-adv-x="2003" d="M1446 -20q-271 0 -420 155q-141 -155 -391 -155q-162 0 -286 70t-190.5 202t-66.5 309q0 277 141.5 427.5t399.5 150.5q112 0 212 -39.5t171 -116.5q144 156 383 156q244 0 380 -135t136 -373v-148h-746v-8q7 -127 81.5 -197.5t207.5 -70.5q107 0 200 21t193 67v-236 q-81 -39 -175.5 -59t-229.5 -20zM403 561q0 -166 54.5 -251t177.5 -85q122 0 175.5 84.5t53.5 251.5q0 166 -54 249t-177 83q-122 0 -176 -82.5t-54 -249.5zM1405 922q-94 0 -156 -57.5t-71 -178.5h450q-2 111 -60.5 173.5t-162.5 62.5z" />
+<glyph unicode="&#x178;" horiz-adv-x="1278" d="M0 0zM639 860l305 602h334l-485 -893v-569h-308v559l-485 903h336zM297 1743q0 65 37.5 100t101.5 35q66 0 103.5 -37t37.5 -98q0 -60 -38 -96.5t-103 -36.5q-64 0 -101.5 35t-37.5 98zM700 1743q0 70 40.5 102.5t100.5 32.5q65 0 103.5 -36t38.5 -99q0 -61 -39 -97 t-103 -36q-60 0 -100.5 32.5t-40.5 100.5z" />
+<glyph unicode="&#x2c6;" horiz-adv-x="1243" d="M852 1241q-157 93 -234 176q-78 -81 -229 -176h-203v27q189 189 256 301h357q31 -52 107.5 -141.5t148.5 -159.5v-27h-203z" />
+<glyph unicode="&#x2da;" horiz-adv-x="1182" d="M842 1479q0 -108 -71 -174t-183 -66t-180 64t-68 174q0 108 67.5 172.5t180.5 64.5q110 0 182 -66t72 -169zM684 1477q0 45 -27 70.5t-69 25.5t-69 -25.5t-27 -70.5t24 -71t72 -26q42 0 69 26t27 71z" />
+<glyph unicode="&#x2dc;" horiz-adv-x="1243" d="M457 1346q-31 0 -59.5 -26.5t-41.5 -80.5h-149q11 145 82.5 227t189.5 82q41 0 80.5 -16.5t78 -36t75.5 -35.5t73 -16q31 0 59.5 26t41.5 80h149q-11 -145 -83.5 -227t-188.5 -82q-41 0 -80.5 16.5t-78 36t-75.5 36t-73 16.5z" />
+<glyph unicode="&#x2000;" horiz-adv-x="953" />
+<glyph unicode="&#x2001;" horiz-adv-x="1907" />
+<glyph unicode="&#x2002;" horiz-adv-x="953" />
+<glyph unicode="&#x2003;" horiz-adv-x="1907" />
+<glyph unicode="&#x2004;" horiz-adv-x="635" />
+<glyph unicode="&#x2005;" horiz-adv-x="476" />
+<glyph unicode="&#x2006;" horiz-adv-x="317" />
+<glyph unicode="&#x2007;" horiz-adv-x="317" />
+<glyph unicode="&#x2008;" horiz-adv-x="238" />
+<glyph unicode="&#x2009;" horiz-adv-x="381" />
+<glyph unicode="&#x200a;" horiz-adv-x="105" />
+<glyph unicode="&#x2010;" horiz-adv-x="659" d="M61 424v250h537v-250h-537z" />
+<glyph unicode="&#x2011;" horiz-adv-x="659" d="M61 424v250h537v-250h-537z" />
+<glyph unicode="&#x2012;" horiz-adv-x="659" d="M61 424v250h537v-250h-537z" />
+<glyph unicode="&#x2013;" horiz-adv-x="1024" d="M82 436v230h860v-230h-860z" />
+<glyph unicode="&#x2014;" horiz-adv-x="2048" d="M82 436v230h1884v-230h-1884z" />
+<glyph unicode="&#x2018;" horiz-adv-x="444" d="M39 961l-14 22q22 91 72.5 228.5t103.5 250.5h219q-66 -267 -101 -501h-280z" />
+<glyph unicode="&#x2019;" horiz-adv-x="444" d="M406 1462l14 -22q-50 -197 -176 -479h-219q69 296 100 501h281z" />
+<glyph unicode="&#x201a;" horiz-adv-x="596" d="M459 215q-52 -202 -176 -479h-220q65 266 101 502h280z" />
+<glyph unicode="&#x201c;" horiz-adv-x="911" d="M492 983q22 91 72.5 228.5t103.5 250.5h219q-66 -267 -101 -501h-280zM25 983q22 91 72.5 228.5t103.5 250.5h219q-66 -267 -101 -501h-280z" />
+<glyph unicode="&#x201d;" horiz-adv-x="911" d="M420 1440q-50 -197 -176 -479h-219q69 296 100 501h281zM887 1440q-50 -197 -176 -479h-219q69 296 100 501h280z" />
+<glyph unicode="&#x201e;" horiz-adv-x="1061" d="M459 215q-52 -202 -176 -479h-220q65 266 101 502h280zM926 215q-52 -202 -176 -479h-220q65 266 101 502h280z" />
+<glyph unicode="&#x2022;" horiz-adv-x="770" d="M98 748q0 154 74 235.5t213 81.5q137 0 212 -82t75 -235q0 -152 -75.5 -235t-211.5 -83q-138 0 -212.5 83t-74.5 235z" />
+<glyph unicode="&#x2026;" horiz-adv-x="1751" d="M117 143q0 84 45 127t131 43q83 0 128.5 -44t45.5 -126q0 -79 -46 -124.5t-128 -45.5q-84 0 -130 44.5t-46 125.5zM700 143q0 84 45 127t132 43q83 0 128.5 -44t45.5 -126q0 -79 -46 -124.5t-128 -45.5q-85 0 -131 44.5t-46 125.5zM1284 143q0 84 45 127t131 43 q83 0 128.5 -44t45.5 -126q0 -79 -46 -124.5t-128 -45.5q-84 0 -130 44.5t-46 125.5z" />
+<glyph unicode="&#x202f;" horiz-adv-x="381" />
+<glyph unicode="&#x2039;" horiz-adv-x="754" d="M82 573l371 455l219 -119l-279 -348l279 -348l-219 -119l-371 453v26z" />
+<glyph unicode="&#x203a;" horiz-adv-x="754" d="M672 547l-371 -453l-219 119l278 348l-278 348l219 119l371 -455v-26z" />
+<glyph unicode="&#x2044;" horiz-adv-x="266" d="M657 1462l-811 -1462h-239l811 1462h239z" />
+<glyph unicode="&#x205f;" horiz-adv-x="476" />
+<glyph unicode="&#x2074;" horiz-adv-x="776" d="M758 737h-125v-151h-238v151h-383v154l385 577h236v-563h125v-168zM395 905v164q0 86 6 184q-9 -26 -35.5 -80t-41.5 -77l-127 -191h198z" />
+<glyph unicode="&#x20ac;" d="M803 1225q-122 0 -201 -70.5t-102 -204.5h403v-176h-418l-2 -35v-47l2 -33h355v-178h-338q51 -243 321 -243q143 0 275 57v-256q-116 -59 -293 -59q-245 0 -403 133t-199 368h-137v178h118q-4 23 -4 62l2 53h-116v176h133q37 242 199 382.5t405 140.5q188 0 352 -82 l-98 -232q-69 31 -129 48.5t-125 17.5z" />
+<glyph unicode="&#x2122;" horiz-adv-x="1534" d="M381 741h-168v572h-197v149h564v-149h-199v-572zM956 741l-165 529h-7l4 -111v-418h-163v721h247l160 -510l170 510h240v-721h-168v408l4 121h-6l-174 -529h-142z" />
+<glyph unicode="&#xe000;" horiz-adv-x="1120" d="M0 1120h1120v-1120h-1120v1120z" />
+<glyph horiz-adv-x="1296" d="M0 0z" />
+<hkern u1="&#x22;" u2="&#x178;" k="-20" />
+<hkern u1="&#x22;" u2="&#x153;" k="123" />
+<hkern u1="&#x22;" u2="&#xfc;" k="61" />
+<hkern u1="&#x22;" u2="&#xfb;" k="61" />
+<hkern u1="&#x22;" u2="&#xfa;" k="61" />
+<hkern u1="&#x22;" u2="&#xf9;" k="61" />
+<hkern u1="&#x22;" u2="&#xf8;" k="123" />
+<hkern u1="&#x22;" u2="&#xf6;" k="123" />
+<hkern u1="&#x22;" u2="&#xf5;" k="123" />
+<hkern u1="&#x22;" u2="&#xf4;" k="123" />
+<hkern u1="&#x22;" u2="&#xf3;" k="123" />
+<hkern u1="&#x22;" u2="&#xf2;" k="123" />
+<hkern u1="&#x22;" u2="&#xeb;" k="123" />
+<hkern u1="&#x22;" u2="&#xea;" k="123" />
+<hkern u1="&#x22;" u2="&#xe9;" k="123" />
+<hkern u1="&#x22;" u2="&#xe8;" k="123" />
+<hkern u1="&#x22;" u2="&#xe7;" k="123" />
+<hkern u1="&#x22;" u2="&#xe6;" k="82" />
+<hkern u1="&#x22;" u2="&#xe5;" k="82" />
+<hkern u1="&#x22;" u2="&#xe4;" k="82" />
+<hkern u1="&#x22;" u2="&#xe3;" k="82" />
+<hkern u1="&#x22;" u2="&#xe2;" k="82" />
+<hkern u1="&#x22;" u2="&#xe1;" k="82" />
+<hkern u1="&#x22;" u2="&#xe0;" k="123" />
+<hkern u1="&#x22;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x22;" u2="&#xc5;" k="143" />
+<hkern u1="&#x22;" u2="&#xc4;" k="143" />
+<hkern u1="&#x22;" u2="&#xc3;" k="143" />
+<hkern u1="&#x22;" u2="&#xc2;" k="143" />
+<hkern u1="&#x22;" u2="&#xc1;" k="143" />
+<hkern u1="&#x22;" u2="&#xc0;" k="143" />
+<hkern u1="&#x22;" u2="u" k="61" />
+<hkern u1="&#x22;" u2="s" k="61" />
+<hkern u1="&#x22;" u2="r" k="61" />
+<hkern u1="&#x22;" u2="q" k="123" />
+<hkern u1="&#x22;" u2="p" k="61" />
+<hkern u1="&#x22;" u2="o" k="123" />
+<hkern u1="&#x22;" u2="n" k="61" />
+<hkern u1="&#x22;" u2="m" k="61" />
+<hkern u1="&#x22;" u2="g" k="61" />
+<hkern u1="&#x22;" u2="e" k="123" />
+<hkern u1="&#x22;" u2="d" k="123" />
+<hkern u1="&#x22;" u2="c" k="123" />
+<hkern u1="&#x22;" u2="a" k="82" />
+<hkern u1="&#x22;" u2="Y" k="-20" />
+<hkern u1="&#x22;" u2="W" k="-41" />
+<hkern u1="&#x22;" u2="V" k="-41" />
+<hkern u1="&#x22;" u2="T" k="-41" />
+<hkern u1="&#x22;" u2="A" k="143" />
+<hkern u1="&#x27;" u2="&#x178;" k="-20" />
+<hkern u1="&#x27;" u2="&#x153;" k="123" />
+<hkern u1="&#x27;" u2="&#xfc;" k="61" />
+<hkern u1="&#x27;" u2="&#xfb;" k="61" />
+<hkern u1="&#x27;" u2="&#xfa;" k="61" />
+<hkern u1="&#x27;" u2="&#xf9;" k="61" />
+<hkern u1="&#x27;" u2="&#xf8;" k="123" />
+<hkern u1="&#x27;" u2="&#xf6;" k="123" />
+<hkern u1="&#x27;" u2="&#xf5;" k="123" />
+<hkern u1="&#x27;" u2="&#xf4;" k="123" />
+<hkern u1="&#x27;" u2="&#xf3;" k="123" />
+<hkern u1="&#x27;" u2="&#xf2;" k="123" />
+<hkern u1="&#x27;" u2="&#xeb;" k="123" />
+<hkern u1="&#x27;" u2="&#xea;" k="123" />
+<hkern u1="&#x27;" u2="&#xe9;" k="123" />
+<hkern u1="&#x27;" u2="&#xe8;" k="123" />
+<hkern u1="&#x27;" u2="&#xe7;" k="123" />
+<hkern u1="&#x27;" u2="&#xe6;" k="82" />
+<hkern u1="&#x27;" u2="&#xe5;" k="82" />
+<hkern u1="&#x27;" u2="&#xe4;" k="82" />
+<hkern u1="&#x27;" u2="&#xe3;" k="82" />
+<hkern u1="&#x27;" u2="&#xe2;" k="82" />
+<hkern u1="&#x27;" u2="&#xe1;" k="82" />
+<hkern u1="&#x27;" u2="&#xe0;" k="123" />
+<hkern u1="&#x27;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x27;" u2="&#xc5;" k="143" />
+<hkern u1="&#x27;" u2="&#xc4;" k="143" />
+<hkern u1="&#x27;" u2="&#xc3;" k="143" />
+<hkern u1="&#x27;" u2="&#xc2;" k="143" />
+<hkern u1="&#x27;" u2="&#xc1;" k="143" />
+<hkern u1="&#x27;" u2="&#xc0;" k="143" />
+<hkern u1="&#x27;" u2="u" k="61" />
+<hkern u1="&#x27;" u2="s" k="61" />
+<hkern u1="&#x27;" u2="r" k="61" />
+<hkern u1="&#x27;" u2="q" k="123" />
+<hkern u1="&#x27;" u2="p" k="61" />
+<hkern u1="&#x27;" u2="o" k="123" />
+<hkern u1="&#x27;" u2="n" k="61" />
+<hkern u1="&#x27;" u2="m" k="61" />
+<hkern u1="&#x27;" u2="g" k="61" />
+<hkern u1="&#x27;" u2="e" k="123" />
+<hkern u1="&#x27;" u2="d" k="123" />
+<hkern u1="&#x27;" u2="c" k="123" />
+<hkern u1="&#x27;" u2="a" k="82" />
+<hkern u1="&#x27;" u2="Y" k="-20" />
+<hkern u1="&#x27;" u2="W" k="-41" />
+<hkern u1="&#x27;" u2="V" k="-41" />
+<hkern u1="&#x27;" u2="T" k="-41" />
+<hkern u1="&#x27;" u2="A" k="143" />
+<hkern u1="&#x28;" u2="J" k="-184" />
+<hkern u1="&#x2c;" u2="&#x178;" k="123" />
+<hkern u1="&#x2c;" u2="&#x152;" k="102" />
+<hkern u1="&#x2c;" u2="&#xdd;" k="123" />
+<hkern u1="&#x2c;" u2="&#xdc;" k="41" />
+<hkern u1="&#x2c;" u2="&#xdb;" k="41" />
+<hkern u1="&#x2c;" u2="&#xda;" k="41" />
+<hkern u1="&#x2c;" u2="&#xd9;" k="41" />
+<hkern u1="&#x2c;" u2="&#xd8;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd6;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd5;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd4;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd3;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd2;" k="102" />
+<hkern u1="&#x2c;" u2="&#xc7;" k="102" />
+<hkern u1="&#x2c;" u2="Y" k="123" />
+<hkern u1="&#x2c;" u2="W" k="123" />
+<hkern u1="&#x2c;" u2="V" k="123" />
+<hkern u1="&#x2c;" u2="U" k="41" />
+<hkern u1="&#x2c;" u2="T" k="143" />
+<hkern u1="&#x2c;" u2="Q" k="102" />
+<hkern u1="&#x2c;" u2="O" k="102" />
+<hkern u1="&#x2c;" u2="G" k="102" />
+<hkern u1="&#x2c;" u2="C" k="102" />
+<hkern u1="&#x2d;" u2="T" k="82" />
+<hkern u1="&#x2e;" u2="&#x178;" k="123" />
+<hkern u1="&#x2e;" u2="&#x152;" k="102" />
+<hkern u1="&#x2e;" u2="&#xdd;" k="123" />
+<hkern u1="&#x2e;" u2="&#xdc;" k="41" />
+<hkern u1="&#x2e;" u2="&#xdb;" k="41" />
+<hkern u1="&#x2e;" u2="&#xda;" k="41" />
+<hkern u1="&#x2e;" u2="&#xd9;" k="41" />
+<hkern u1="&#x2e;" u2="&#xd8;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd6;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd5;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd4;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd3;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd2;" k="102" />
+<hkern u1="&#x2e;" u2="&#xc7;" k="102" />
+<hkern u1="&#x2e;" u2="Y" k="123" />
+<hkern u1="&#x2e;" u2="W" k="123" />
+<hkern u1="&#x2e;" u2="V" k="123" />
+<hkern u1="&#x2e;" u2="U" k="41" />
+<hkern u1="&#x2e;" u2="T" k="143" />
+<hkern u1="&#x2e;" u2="Q" k="102" />
+<hkern u1="&#x2e;" u2="O" k="102" />
+<hkern u1="&#x2e;" u2="G" k="102" />
+<hkern u1="&#x2e;" u2="C" k="102" />
+<hkern u1="A" u2="&#x201d;" k="143" />
+<hkern u1="A" u2="&#x2019;" k="143" />
+<hkern u1="A" u2="&#x178;" k="123" />
+<hkern u1="A" u2="&#x152;" k="41" />
+<hkern u1="A" u2="&#xdd;" k="123" />
+<hkern u1="A" u2="&#xd8;" k="41" />
+<hkern u1="A" u2="&#xd6;" k="41" />
+<hkern u1="A" u2="&#xd5;" k="41" />
+<hkern u1="A" u2="&#xd4;" k="41" />
+<hkern u1="A" u2="&#xd3;" k="41" />
+<hkern u1="A" u2="&#xd2;" k="41" />
+<hkern u1="A" u2="&#xc7;" k="41" />
+<hkern u1="A" u2="Y" k="123" />
+<hkern u1="A" u2="W" k="82" />
+<hkern u1="A" u2="V" k="82" />
+<hkern u1="A" u2="T" k="143" />
+<hkern u1="A" u2="Q" k="41" />
+<hkern u1="A" u2="O" k="41" />
+<hkern u1="A" u2="J" k="-266" />
+<hkern u1="A" u2="G" k="41" />
+<hkern u1="A" u2="C" k="41" />
+<hkern u1="A" u2="&#x27;" k="143" />
+<hkern u1="A" u2="&#x22;" k="143" />
+<hkern u1="B" u2="&#x201e;" k="82" />
+<hkern u1="B" u2="&#x201a;" k="82" />
+<hkern u1="B" u2="&#x178;" k="20" />
+<hkern u1="B" u2="&#xdd;" k="20" />
+<hkern u1="B" u2="&#xc5;" k="41" />
+<hkern u1="B" u2="&#xc4;" k="41" />
+<hkern u1="B" u2="&#xc3;" k="41" />
+<hkern u1="B" u2="&#xc2;" k="41" />
+<hkern u1="B" u2="&#xc1;" k="41" />
+<hkern u1="B" u2="&#xc0;" k="41" />
+<hkern u1="B" u2="Z" k="20" />
+<hkern u1="B" u2="Y" k="20" />
+<hkern u1="B" u2="X" k="41" />
+<hkern u1="B" u2="W" k="20" />
+<hkern u1="B" u2="V" k="20" />
+<hkern u1="B" u2="T" k="61" />
+<hkern u1="B" u2="A" k="41" />
+<hkern u1="B" u2="&#x2e;" k="82" />
+<hkern u1="B" u2="&#x2c;" k="82" />
+<hkern u1="C" u2="&#x152;" k="41" />
+<hkern u1="C" u2="&#xd8;" k="41" />
+<hkern u1="C" u2="&#xd6;" k="41" />
+<hkern u1="C" u2="&#xd5;" k="41" />
+<hkern u1="C" u2="&#xd4;" k="41" />
+<hkern u1="C" u2="&#xd3;" k="41" />
+<hkern u1="C" u2="&#xd2;" k="41" />
+<hkern u1="C" u2="&#xc7;" k="41" />
+<hkern u1="C" u2="Q" k="41" />
+<hkern u1="C" u2="O" k="41" />
+<hkern u1="C" u2="G" k="41" />
+<hkern u1="C" u2="C" k="41" />
+<hkern u1="D" u2="&#x201e;" k="82" />
+<hkern u1="D" u2="&#x201a;" k="82" />
+<hkern u1="D" u2="&#x178;" k="20" />
+<hkern u1="D" u2="&#xdd;" k="20" />
+<hkern u1="D" u2="&#xc5;" k="41" />
+<hkern u1="D" u2="&#xc4;" k="41" />
+<hkern u1="D" u2="&#xc3;" k="41" />
+<hkern u1="D" u2="&#xc2;" k="41" />
+<hkern u1="D" u2="&#xc1;" k="41" />
+<hkern u1="D" u2="&#xc0;" k="41" />
+<hkern u1="D" u2="Z" k="20" />
+<hkern u1="D" u2="Y" k="20" />
+<hkern u1="D" u2="X" k="41" />
+<hkern u1="D" u2="W" k="20" />
+<hkern u1="D" u2="V" k="20" />
+<hkern u1="D" u2="T" k="61" />
+<hkern u1="D" u2="A" k="41" />
+<hkern u1="D" u2="&#x2e;" k="82" />
+<hkern u1="D" u2="&#x2c;" k="82" />
+<hkern u1="E" u2="J" k="-123" />
+<hkern u1="F" u2="&#x201e;" k="123" />
+<hkern u1="F" u2="&#x201a;" k="123" />
+<hkern u1="F" u2="&#xc5;" k="41" />
+<hkern u1="F" u2="&#xc4;" k="41" />
+<hkern u1="F" u2="&#xc3;" k="41" />
+<hkern u1="F" u2="&#xc2;" k="41" />
+<hkern u1="F" u2="&#xc1;" k="41" />
+<hkern u1="F" u2="&#xc0;" k="41" />
+<hkern u1="F" u2="A" k="41" />
+<hkern u1="F" u2="&#x3f;" k="-41" />
+<hkern u1="F" u2="&#x2e;" k="123" />
+<hkern u1="F" u2="&#x2c;" k="123" />
+<hkern u1="K" u2="&#x152;" k="41" />
+<hkern u1="K" u2="&#xd8;" k="41" />
+<hkern u1="K" u2="&#xd6;" k="41" />
+<hkern u1="K" u2="&#xd5;" k="41" />
+<hkern u1="K" u2="&#xd4;" k="41" />
+<hkern u1="K" u2="&#xd3;" k="41" />
+<hkern u1="K" u2="&#xd2;" k="41" />
+<hkern u1="K" u2="&#xc7;" k="41" />
+<hkern u1="K" u2="Q" k="41" />
+<hkern u1="K" u2="O" k="41" />
+<hkern u1="K" u2="G" k="41" />
+<hkern u1="K" u2="C" k="41" />
+<hkern u1="L" u2="&#x201d;" k="164" />
+<hkern u1="L" u2="&#x2019;" k="164" />
+<hkern u1="L" u2="&#x178;" k="61" />
+<hkern u1="L" u2="&#x152;" k="41" />
+<hkern u1="L" u2="&#xdd;" k="61" />
+<hkern u1="L" u2="&#xdc;" k="20" />
+<hkern u1="L" u2="&#xdb;" k="20" />
+<hkern u1="L" u2="&#xda;" k="20" />
+<hkern u1="L" u2="&#xd9;" k="20" />
+<hkern u1="L" u2="&#xd8;" k="41" />
+<hkern u1="L" u2="&#xd6;" k="41" />
+<hkern u1="L" u2="&#xd5;" k="41" />
+<hkern u1="L" u2="&#xd4;" k="41" />
+<hkern u1="L" u2="&#xd3;" k="41" />
+<hkern u1="L" u2="&#xd2;" k="41" />
+<hkern u1="L" u2="&#xc7;" k="41" />
+<hkern u1="L" u2="Y" k="61" />
+<hkern u1="L" u2="W" k="41" />
+<hkern u1="L" u2="V" k="41" />
+<hkern u1="L" u2="U" k="20" />
+<hkern u1="L" u2="T" k="41" />
+<hkern u1="L" u2="Q" k="41" />
+<hkern u1="L" u2="O" k="41" />
+<hkern u1="L" u2="G" k="41" />
+<hkern u1="L" u2="C" k="41" />
+<hkern u1="L" u2="&#x27;" k="164" />
+<hkern u1="L" u2="&#x22;" k="164" />
+<hkern u1="O" u2="&#x201e;" k="82" />
+<hkern u1="O" u2="&#x201a;" k="82" />
+<hkern u1="O" u2="&#x178;" k="20" />
+<hkern u1="O" u2="&#xdd;" k="20" />
+<hkern u1="O" u2="&#xc5;" k="41" />
+<hkern u1="O" u2="&#xc4;" k="41" />
+<hkern u1="O" u2="&#xc3;" k="41" />
+<hkern u1="O" u2="&#xc2;" k="41" />
+<hkern u1="O" u2="&#xc1;" k="41" />
+<hkern u1="O" u2="&#xc0;" k="41" />
+<hkern u1="O" u2="Z" k="20" />
+<hkern u1="O" u2="Y" k="20" />
+<hkern u1="O" u2="X" k="41" />
+<hkern u1="O" u2="W" k="20" />
+<hkern u1="O" u2="V" k="20" />
+<hkern u1="O" u2="T" k="61" />
+<hkern u1="O" u2="A" k="41" />
+<hkern u1="O" u2="&#x2e;" k="82" />
+<hkern u1="O" u2="&#x2c;" k="82" />
+<hkern u1="P" u2="&#x201e;" k="266" />
+<hkern u1="P" u2="&#x201a;" k="266" />
+<hkern u1="P" u2="&#xc5;" k="102" />
+<hkern u1="P" u2="&#xc4;" k="102" />
+<hkern u1="P" u2="&#xc3;" k="102" />
+<hkern u1="P" u2="&#xc2;" k="102" />
+<hkern u1="P" u2="&#xc1;" k="102" />
+<hkern u1="P" u2="&#xc0;" k="102" />
+<hkern u1="P" u2="Z" k="20" />
+<hkern u1="P" u2="X" k="41" />
+<hkern u1="P" u2="A" k="102" />
+<hkern u1="P" u2="&#x2e;" k="266" />
+<hkern u1="P" u2="&#x2c;" k="266" />
+<hkern u1="Q" u2="&#x201e;" k="82" />
+<hkern u1="Q" u2="&#x201a;" k="82" />
+<hkern u1="Q" u2="&#x178;" k="20" />
+<hkern u1="Q" u2="&#xdd;" k="20" />
+<hkern u1="Q" u2="&#xc5;" k="41" />
+<hkern u1="Q" u2="&#xc4;" k="41" />
+<hkern u1="Q" u2="&#xc3;" k="41" />
+<hkern u1="Q" u2="&#xc2;" k="41" />
+<hkern u1="Q" u2="&#xc1;" k="41" />
+<hkern u1="Q" u2="&#xc0;" k="41" />
+<hkern u1="Q" u2="Z" k="20" />
+<hkern u1="Q" u2="Y" k="20" />
+<hkern u1="Q" u2="X" k="41" />
+<hkern u1="Q" u2="W" k="20" />
+<hkern u1="Q" u2="V" k="20" />
+<hkern u1="Q" u2="T" k="61" />
+<hkern u1="Q" u2="A" k="41" />
+<hkern u1="Q" u2="&#x2e;" k="82" />
+<hkern u1="Q" u2="&#x2c;" k="82" />
+<hkern u1="T" u2="&#x201e;" k="123" />
+<hkern u1="T" u2="&#x201a;" k="123" />
+<hkern u1="T" u2="&#x2014;" k="82" />
+<hkern u1="T" u2="&#x2013;" k="82" />
+<hkern u1="T" u2="&#x153;" k="143" />
+<hkern u1="T" u2="&#x152;" k="41" />
+<hkern u1="T" u2="&#xfd;" k="41" />
+<hkern u1="T" u2="&#xfc;" k="102" />
+<hkern u1="T" u2="&#xfb;" k="102" />
+<hkern u1="T" u2="&#xfa;" k="102" />
+<hkern u1="T" u2="&#xf9;" k="102" />
+<hkern u1="T" u2="&#xf8;" k="143" />
+<hkern u1="T" u2="&#xf6;" k="143" />
+<hkern u1="T" u2="&#xf5;" k="143" />
+<hkern u1="T" u2="&#xf4;" k="143" />
+<hkern u1="T" u2="&#xf3;" k="143" />
+<hkern u1="T" u2="&#xf2;" k="143" />
+<hkern u1="T" u2="&#xeb;" k="143" />
+<hkern u1="T" u2="&#xea;" k="143" />
+<hkern u1="T" u2="&#xe9;" k="143" />
+<hkern u1="T" u2="&#xe8;" k="143" />
+<hkern u1="T" u2="&#xe7;" k="143" />
+<hkern u1="T" u2="&#xe6;" k="164" />
+<hkern u1="T" u2="&#xe5;" k="164" />
+<hkern u1="T" u2="&#xe4;" k="164" />
+<hkern u1="T" u2="&#xe3;" k="164" />
+<hkern u1="T" u2="&#xe2;" k="164" />
+<hkern u1="T" u2="&#xe1;" k="164" />
+<hkern u1="T" u2="&#xe0;" k="143" />
+<hkern u1="T" u2="&#xd8;" k="41" />
+<hkern u1="T" u2="&#xd6;" k="41" />
+<hkern u1="T" u2="&#xd5;" k="41" />
+<hkern u1="T" u2="&#xd4;" k="41" />
+<hkern u1="T" u2="&#xd3;" k="41" />
+<hkern u1="T" u2="&#xd2;" k="41" />
+<hkern u1="T" u2="&#xc7;" k="41" />
+<hkern u1="T" u2="&#xc5;" k="143" />
+<hkern u1="T" u2="&#xc4;" k="143" />
+<hkern u1="T" u2="&#xc3;" k="143" />
+<hkern u1="T" u2="&#xc2;" k="143" />
+<hkern u1="T" u2="&#xc1;" k="143" />
+<hkern u1="T" u2="&#xc0;" k="143" />
+<hkern u1="T" u2="z" k="82" />
+<hkern u1="T" u2="y" k="41" />
+<hkern u1="T" u2="x" k="41" />
+<hkern u1="T" u2="w" k="41" />
+<hkern u1="T" u2="v" k="41" />
+<hkern u1="T" u2="u" k="102" />
+<hkern u1="T" u2="s" k="123" />
+<hkern u1="T" u2="r" k="102" />
+<hkern u1="T" u2="q" k="143" />
+<hkern u1="T" u2="p" k="102" />
+<hkern u1="T" u2="o" k="143" />
+<hkern u1="T" u2="n" k="102" />
+<hkern u1="T" u2="m" k="102" />
+<hkern u1="T" u2="g" k="143" />
+<hkern u1="T" u2="e" k="143" />
+<hkern u1="T" u2="d" k="143" />
+<hkern u1="T" u2="c" k="143" />
+<hkern u1="T" u2="a" k="164" />
+<hkern u1="T" u2="T" k="-41" />
+<hkern u1="T" u2="Q" k="41" />
+<hkern u1="T" u2="O" k="41" />
+<hkern u1="T" u2="G" k="41" />
+<hkern u1="T" u2="C" k="41" />
+<hkern u1="T" u2="A" k="143" />
+<hkern u1="T" u2="&#x3f;" k="-41" />
+<hkern u1="T" u2="&#x2e;" k="123" />
+<hkern u1="T" u2="&#x2d;" k="82" />
+<hkern u1="T" u2="&#x2c;" k="123" />
+<hkern u1="U" u2="&#x201e;" k="41" />
+<hkern u1="U" u2="&#x201a;" k="41" />
+<hkern u1="U" u2="&#xc5;" k="20" />
+<hkern u1="U" u2="&#xc4;" k="20" />
+<hkern u1="U" u2="&#xc3;" k="20" />
+<hkern u1="U" u2="&#xc2;" k="20" />
+<hkern u1="U" u2="&#xc1;" k="20" />
+<hkern u1="U" u2="&#xc0;" k="20" />
+<hkern u1="U" u2="A" k="20" />
+<hkern u1="U" u2="&#x2e;" k="41" />
+<hkern u1="U" u2="&#x2c;" k="41" />
+<hkern u1="V" u2="&#x201e;" k="102" />
+<hkern u1="V" u2="&#x201a;" k="102" />
+<hkern u1="V" u2="&#x153;" k="41" />
+<hkern u1="V" u2="&#x152;" k="20" />
+<hkern u1="V" u2="&#xfc;" k="20" />
+<hkern u1="V" u2="&#xfb;" k="20" />
+<hkern u1="V" u2="&#xfa;" k="20" />
+<hkern u1="V" u2="&#xf9;" k="20" />
+<hkern u1="V" u2="&#xf8;" k="41" />
+<hkern u1="V" u2="&#xf6;" k="41" />
+<hkern u1="V" u2="&#xf5;" k="41" />
+<hkern u1="V" u2="&#xf4;" k="41" />
+<hkern u1="V" u2="&#xf3;" k="41" />
+<hkern u1="V" u2="&#xf2;" k="41" />
+<hkern u1="V" u2="&#xeb;" k="41" />
+<hkern u1="V" u2="&#xea;" k="41" />
+<hkern u1="V" u2="&#xe9;" k="41" />
+<hkern u1="V" u2="&#xe8;" k="41" />
+<hkern u1="V" u2="&#xe7;" k="41" />
+<hkern u1="V" u2="&#xe6;" k="41" />
+<hkern u1="V" u2="&#xe5;" k="41" />
+<hkern u1="V" u2="&#xe4;" k="41" />
+<hkern u1="V" u2="&#xe3;" k="41" />
+<hkern u1="V" u2="&#xe2;" k="41" />
+<hkern u1="V" u2="&#xe1;" k="41" />
+<hkern u1="V" u2="&#xe0;" k="41" />
+<hkern u1="V" u2="&#xd8;" k="20" />
+<hkern u1="V" u2="&#xd6;" k="20" />
+<hkern u1="V" u2="&#xd5;" k="20" />
+<hkern u1="V" u2="&#xd4;" k="20" />
+<hkern u1="V" u2="&#xd3;" k="20" />
+<hkern u1="V" u2="&#xd2;" k="20" />
+<hkern u1="V" u2="&#xc7;" k="20" />
+<hkern u1="V" u2="&#xc5;" k="82" />
+<hkern u1="V" u2="&#xc4;" k="82" />
+<hkern u1="V" u2="&#xc3;" k="82" />
+<hkern u1="V" u2="&#xc2;" k="82" />
+<hkern u1="V" u2="&#xc1;" k="82" />
+<hkern u1="V" u2="&#xc0;" k="82" />
+<hkern u1="V" u2="u" k="20" />
+<hkern u1="V" u2="s" k="20" />
+<hkern u1="V" u2="r" k="20" />
+<hkern u1="V" u2="q" k="41" />
+<hkern u1="V" u2="p" k="20" />
+<hkern u1="V" u2="o" k="41" />
+<hkern u1="V" u2="n" k="20" />
+<hkern u1="V" u2="m" k="20" />
+<hkern u1="V" u2="g" k="20" />
+<hkern u1="V" u2="e" k="41" />
+<hkern u1="V" u2="d" k="41" />
+<hkern u1="V" u2="c" k="41" />
+<hkern u1="V" u2="a" k="41" />
+<hkern u1="V" u2="Q" k="20" />
+<hkern u1="V" u2="O" k="20" />
+<hkern u1="V" u2="G" k="20" />
+<hkern u1="V" u2="C" k="20" />
+<hkern u1="V" u2="A" k="82" />
+<hkern u1="V" u2="&#x3f;" k="-41" />
+<hkern u1="V" u2="&#x2e;" k="102" />
+<hkern u1="V" u2="&#x2c;" k="102" />
+<hkern u1="W" u2="&#x201e;" k="102" />
+<hkern u1="W" u2="&#x201a;" k="102" />
+<hkern u1="W" u2="&#x153;" k="41" />
+<hkern u1="W" u2="&#x152;" k="20" />
+<hkern u1="W" u2="&#xfc;" k="20" />
+<hkern u1="W" u2="&#xfb;" k="20" />
+<hkern u1="W" u2="&#xfa;" k="20" />
+<hkern u1="W" u2="&#xf9;" k="20" />
+<hkern u1="W" u2="&#xf8;" k="41" />
+<hkern u1="W" u2="&#xf6;" k="41" />
+<hkern u1="W" u2="&#xf5;" k="41" />
+<hkern u1="W" u2="&#xf4;" k="41" />
+<hkern u1="W" u2="&#xf3;" k="41" />
+<hkern u1="W" u2="&#xf2;" k="41" />
+<hkern u1="W" u2="&#xeb;" k="41" />
+<hkern u1="W" u2="&#xea;" k="41" />
+<hkern u1="W" u2="&#xe9;" k="41" />
+<hkern u1="W" u2="&#xe8;" k="41" />
+<hkern u1="W" u2="&#xe7;" k="41" />
+<hkern u1="W" u2="&#xe6;" k="41" />
+<hkern u1="W" u2="&#xe5;" k="41" />
+<hkern u1="W" u2="&#xe4;" k="41" />
+<hkern u1="W" u2="&#xe3;" k="41" />
+<hkern u1="W" u2="&#xe2;" k="41" />
+<hkern u1="W" u2="&#xe1;" k="41" />
+<hkern u1="W" u2="&#xe0;" k="41" />
+<hkern u1="W" u2="&#xd8;" k="20" />
+<hkern u1="W" u2="&#xd6;" k="20" />
+<hkern u1="W" u2="&#xd5;" k="20" />
+<hkern u1="W" u2="&#xd4;" k="20" />
+<hkern u1="W" u2="&#xd3;" k="20" />
+<hkern u1="W" u2="&#xd2;" k="20" />
+<hkern u1="W" u2="&#xc7;" k="20" />
+<hkern u1="W" u2="&#xc5;" k="82" />
+<hkern u1="W" u2="&#xc4;" k="82" />
+<hkern u1="W" u2="&#xc3;" k="82" />
+<hkern u1="W" u2="&#xc2;" k="82" />
+<hkern u1="W" u2="&#xc1;" k="82" />
+<hkern u1="W" u2="&#xc0;" k="82" />
+<hkern u1="W" u2="u" k="20" />
+<hkern u1="W" u2="s" k="20" />
+<hkern u1="W" u2="r" k="20" />
+<hkern u1="W" u2="q" k="41" />
+<hkern u1="W" u2="p" k="20" />
+<hkern u1="W" u2="o" k="41" />
+<hkern u1="W" u2="n" k="20" />
+<hkern u1="W" u2="m" k="20" />
+<hkern u1="W" u2="g" k="20" />
+<hkern u1="W" u2="e" k="41" />
+<hkern u1="W" u2="d" k="41" />
+<hkern u1="W" u2="c" k="41" />
+<hkern u1="W" u2="a" k="41" />
+<hkern u1="W" u2="Q" k="20" />
+<hkern u1="W" u2="O" k="20" />
+<hkern u1="W" u2="G" k="20" />
+<hkern u1="W" u2="C" k="20" />
+<hkern u1="W" u2="A" k="82" />
+<hkern u1="W" u2="&#x3f;" k="-41" />
+<hkern u1="W" u2="&#x2e;" k="102" />
+<hkern u1="W" u2="&#x2c;" k="102" />
+<hkern u1="X" u2="&#x152;" k="41" />
+<hkern u1="X" u2="&#xd8;" k="41" />
+<hkern u1="X" u2="&#xd6;" k="41" />
+<hkern u1="X" u2="&#xd5;" k="41" />
+<hkern u1="X" u2="&#xd4;" k="41" />
+<hkern u1="X" u2="&#xd3;" k="41" />
+<hkern u1="X" u2="&#xd2;" k="41" />
+<hkern u1="X" u2="&#xc7;" k="41" />
+<hkern u1="X" u2="Q" k="41" />
+<hkern u1="X" u2="O" k="41" />
+<hkern u1="X" u2="G" k="41" />
+<hkern u1="X" u2="C" k="41" />
+<hkern u1="Y" u2="&#x201e;" k="123" />
+<hkern u1="Y" u2="&#x201a;" k="123" />
+<hkern u1="Y" u2="&#x153;" k="102" />
+<hkern u1="Y" u2="&#x152;" k="41" />
+<hkern u1="Y" u2="&#xfc;" k="61" />
+<hkern u1="Y" u2="&#xfb;" k="61" />
+<hkern u1="Y" u2="&#xfa;" k="61" />
+<hkern u1="Y" u2="&#xf9;" k="61" />
+<hkern u1="Y" u2="&#xf8;" k="102" />
+<hkern u1="Y" u2="&#xf6;" k="102" />
+<hkern u1="Y" u2="&#xf5;" k="102" />
+<hkern u1="Y" u2="&#xf4;" k="102" />
+<hkern u1="Y" u2="&#xf3;" k="102" />
+<hkern u1="Y" u2="&#xf2;" k="102" />
+<hkern u1="Y" u2="&#xeb;" k="102" />
+<hkern u1="Y" u2="&#xea;" k="102" />
+<hkern u1="Y" u2="&#xe9;" k="102" />
+<hkern u1="Y" u2="&#xe8;" k="102" />
+<hkern u1="Y" u2="&#xe7;" k="102" />
+<hkern u1="Y" u2="&#xe6;" k="102" />
+<hkern u1="Y" u2="&#xe5;" k="102" />
+<hkern u1="Y" u2="&#xe4;" k="102" />
+<hkern u1="Y" u2="&#xe3;" k="102" />
+<hkern u1="Y" u2="&#xe2;" k="102" />
+<hkern u1="Y" u2="&#xe1;" k="102" />
+<hkern u1="Y" u2="&#xe0;" k="102" />
+<hkern u1="Y" u2="&#xd8;" k="41" />
+<hkern u1="Y" u2="&#xd6;" k="41" />
+<hkern u1="Y" u2="&#xd5;" k="41" />
+<hkern u1="Y" u2="&#xd4;" k="41" />
+<hkern u1="Y" u2="&#xd3;" k="41" />
+<hkern u1="Y" u2="&#xd2;" k="41" />
+<hkern u1="Y" u2="&#xc7;" k="41" />
+<hkern u1="Y" u2="&#xc5;" k="123" />
+<hkern u1="Y" u2="&#xc4;" k="123" />
+<hkern u1="Y" u2="&#xc3;" k="123" />
+<hkern u1="Y" u2="&#xc2;" k="123" />
+<hkern u1="Y" u2="&#xc1;" k="123" />
+<hkern u1="Y" u2="&#xc0;" k="123" />
+<hkern u1="Y" u2="z" k="41" />
+<hkern u1="Y" u2="u" k="61" />
+<hkern u1="Y" u2="s" k="82" />
+<hkern u1="Y" u2="r" k="61" />
+<hkern u1="Y" u2="q" k="102" />
+<hkern u1="Y" u2="p" k="61" />
+<hkern u1="Y" u2="o" k="102" />
+<hkern u1="Y" u2="n" k="61" />
+<hkern u1="Y" u2="m" k="61" />
+<hkern u1="Y" u2="g" k="41" />
+<hkern u1="Y" u2="e" k="102" />
+<hkern u1="Y" u2="d" k="102" />
+<hkern u1="Y" u2="c" k="102" />
+<hkern u1="Y" u2="a" k="102" />
+<hkern u1="Y" u2="Q" k="41" />
+<hkern u1="Y" u2="O" k="41" />
+<hkern u1="Y" u2="G" k="41" />
+<hkern u1="Y" u2="C" k="41" />
+<hkern u1="Y" u2="A" k="123" />
+<hkern u1="Y" u2="&#x3f;" k="-41" />
+<hkern u1="Y" u2="&#x2e;" k="123" />
+<hkern u1="Y" u2="&#x2c;" k="123" />
+<hkern u1="Z" u2="&#x152;" k="20" />
+<hkern u1="Z" u2="&#xd8;" k="20" />
+<hkern u1="Z" u2="&#xd6;" k="20" />
+<hkern u1="Z" u2="&#xd5;" k="20" />
+<hkern u1="Z" u2="&#xd4;" k="20" />
+<hkern u1="Z" u2="&#xd3;" k="20" />
+<hkern u1="Z" u2="&#xd2;" k="20" />
+<hkern u1="Z" u2="&#xc7;" k="20" />
+<hkern u1="Z" u2="Q" k="20" />
+<hkern u1="Z" u2="O" k="20" />
+<hkern u1="Z" u2="G" k="20" />
+<hkern u1="Z" u2="C" k="20" />
+<hkern u1="[" u2="J" k="-184" />
+<hkern u1="a" u2="&#x201d;" k="20" />
+<hkern u1="a" u2="&#x2019;" k="20" />
+<hkern u1="a" u2="&#x27;" k="20" />
+<hkern u1="a" u2="&#x22;" k="20" />
+<hkern u1="b" u2="&#x201d;" k="20" />
+<hkern u1="b" u2="&#x2019;" k="20" />
+<hkern u1="b" u2="&#xfd;" k="41" />
+<hkern u1="b" u2="z" k="20" />
+<hkern u1="b" u2="y" k="41" />
+<hkern u1="b" u2="x" k="41" />
+<hkern u1="b" u2="w" k="41" />
+<hkern u1="b" u2="v" k="41" />
+<hkern u1="b" u2="&#x27;" k="20" />
+<hkern u1="b" u2="&#x22;" k="20" />
+<hkern u1="c" u2="&#x201d;" k="-41" />
+<hkern u1="c" u2="&#x2019;" k="-41" />
+<hkern u1="c" u2="&#x27;" k="-41" />
+<hkern u1="c" u2="&#x22;" k="-41" />
+<hkern u1="e" u2="&#x201d;" k="20" />
+<hkern u1="e" u2="&#x2019;" k="20" />
+<hkern u1="e" u2="&#xfd;" k="41" />
+<hkern u1="e" u2="z" k="20" />
+<hkern u1="e" u2="y" k="41" />
+<hkern u1="e" u2="x" k="41" />
+<hkern u1="e" u2="w" k="41" />
+<hkern u1="e" u2="v" k="41" />
+<hkern u1="e" u2="&#x27;" k="20" />
+<hkern u1="e" u2="&#x22;" k="20" />
+<hkern u1="f" u2="&#x201d;" k="-123" />
+<hkern u1="f" u2="&#x2019;" k="-123" />
+<hkern u1="f" u2="&#x27;" k="-123" />
+<hkern u1="f" u2="&#x22;" k="-123" />
+<hkern u1="h" u2="&#x201d;" k="20" />
+<hkern u1="h" u2="&#x2019;" k="20" />
+<hkern u1="h" u2="&#x27;" k="20" />
+<hkern u1="h" u2="&#x22;" k="20" />
+<hkern u1="k" u2="&#x153;" k="41" />
+<hkern u1="k" u2="&#xf8;" k="41" />
+<hkern u1="k" u2="&#xf6;" k="41" />
+<hkern u1="k" u2="&#xf5;" k="41" />
+<hkern u1="k" u2="&#xf4;" k="41" />
+<hkern u1="k" u2="&#xf3;" k="41" />
+<hkern u1="k" u2="&#xf2;" k="41" />
+<hkern u1="k" u2="&#xeb;" k="41" />
+<hkern u1="k" u2="&#xea;" k="41" />
+<hkern u1="k" u2="&#xe9;" k="41" />
+<hkern u1="k" u2="&#xe8;" k="41" />
+<hkern u1="k" u2="&#xe7;" k="41" />
+<hkern u1="k" u2="&#xe0;" k="41" />
+<hkern u1="k" u2="q" k="41" />
+<hkern u1="k" u2="o" k="41" />
+<hkern u1="k" u2="e" k="41" />
+<hkern u1="k" u2="d" k="41" />
+<hkern u1="k" u2="c" k="41" />
+<hkern u1="m" u2="&#x201d;" k="20" />
+<hkern u1="m" u2="&#x2019;" k="20" />
+<hkern u1="m" u2="&#x27;" k="20" />
+<hkern u1="m" u2="&#x22;" k="20" />
+<hkern u1="n" u2="&#x201d;" k="20" />
+<hkern u1="n" u2="&#x2019;" k="20" />
+<hkern u1="n" u2="&#x27;" k="20" />
+<hkern u1="n" u2="&#x22;" k="20" />
+<hkern u1="o" u2="&#x201d;" k="20" />
+<hkern u1="o" u2="&#x2019;" k="20" />
+<hkern u1="o" u2="&#xfd;" k="41" />
+<hkern u1="o" u2="z" k="20" />
+<hkern u1="o" u2="y" k="41" />
+<hkern u1="o" u2="x" k="41" />
+<hkern u1="o" u2="w" k="41" />
+<hkern u1="o" u2="v" k="41" />
+<hkern u1="o" u2="&#x27;" k="20" />
+<hkern u1="o" u2="&#x22;" k="20" />
+<hkern u1="p" u2="&#x201d;" k="20" />
+<hkern u1="p" u2="&#x2019;" k="20" />
+<hkern u1="p" u2="&#xfd;" k="41" />
+<hkern u1="p" u2="z" k="20" />
+<hkern u1="p" u2="y" k="41" />
+<hkern u1="p" u2="x" k="41" />
+<hkern u1="p" u2="w" k="41" />
+<hkern u1="p" u2="v" k="41" />
+<hkern u1="p" u2="&#x27;" k="20" />
+<hkern u1="p" u2="&#x22;" k="20" />
+<hkern u1="r" u2="&#x201d;" k="-82" />
+<hkern u1="r" u2="&#x2019;" k="-82" />
+<hkern u1="r" u2="&#x153;" k="41" />
+<hkern u1="r" u2="&#xf8;" k="41" />
+<hkern u1="r" u2="&#xf6;" k="41" />
+<hkern u1="r" u2="&#xf5;" k="41" />
+<hkern u1="r" u2="&#xf4;" k="41" />
+<hkern u1="r" u2="&#xf3;" k="41" />
+<hkern u1="r" u2="&#xf2;" k="41" />
+<hkern u1="r" u2="&#xeb;" k="41" />
+<hkern u1="r" u2="&#xea;" k="41" />
+<hkern u1="r" u2="&#xe9;" k="41" />
+<hkern u1="r" u2="&#xe8;" k="41" />
+<hkern u1="r" u2="&#xe7;" k="41" />
+<hkern u1="r" u2="&#xe6;" k="41" />
+<hkern u1="r" u2="&#xe5;" k="41" />
+<hkern u1="r" u2="&#xe4;" k="41" />
+<hkern u1="r" u2="&#xe3;" k="41" />
+<hkern u1="r" u2="&#xe2;" k="41" />
+<hkern u1="r" u2="&#xe1;" k="41" />
+<hkern u1="r" u2="&#xe0;" k="41" />
+<hkern u1="r" u2="q" k="41" />
+<hkern u1="r" u2="o" k="41" />
+<hkern u1="r" u2="g" k="20" />
+<hkern u1="r" u2="e" k="41" />
+<hkern u1="r" u2="d" k="41" />
+<hkern u1="r" u2="c" k="41" />
+<hkern u1="r" u2="a" k="41" />
+<hkern u1="r" u2="&#x27;" k="-82" />
+<hkern u1="r" u2="&#x22;" k="-82" />
+<hkern u1="t" u2="&#x201d;" k="-41" />
+<hkern u1="t" u2="&#x2019;" k="-41" />
+<hkern u1="t" u2="&#x27;" k="-41" />
+<hkern u1="t" u2="&#x22;" k="-41" />
+<hkern u1="v" u2="&#x201e;" k="82" />
+<hkern u1="v" u2="&#x201d;" k="-82" />
+<hkern u1="v" u2="&#x201a;" k="82" />
+<hkern u1="v" u2="&#x2019;" k="-82" />
+<hkern u1="v" u2="&#x3f;" k="-41" />
+<hkern u1="v" u2="&#x2e;" k="82" />
+<hkern u1="v" u2="&#x2c;" k="82" />
+<hkern u1="v" u2="&#x27;" k="-82" />
+<hkern u1="v" u2="&#x22;" k="-82" />
+<hkern u1="w" u2="&#x201e;" k="82" />
+<hkern u1="w" u2="&#x201d;" k="-82" />
+<hkern u1="w" u2="&#x201a;" k="82" />
+<hkern u1="w" u2="&#x2019;" k="-82" />
+<hkern u1="w" u2="&#x3f;" k="-41" />
+<hkern u1="w" u2="&#x2e;" k="82" />
+<hkern u1="w" u2="&#x2c;" k="82" />
+<hkern u1="w" u2="&#x27;" k="-82" />
+<hkern u1="w" u2="&#x22;" k="-82" />
+<hkern u1="x" u2="&#x153;" k="41" />
+<hkern u1="x" u2="&#xf8;" k="41" />
+<hkern u1="x" u2="&#xf6;" k="41" />
+<hkern u1="x" u2="&#xf5;" k="41" />
+<hkern u1="x" u2="&#xf4;" k="41" />
+<hkern u1="x" u2="&#xf3;" k="41" />
+<hkern u1="x" u2="&#xf2;" k="41" />
+<hkern u1="x" u2="&#xeb;" k="41" />
+<hkern u1="x" u2="&#xea;" k="41" />
+<hkern u1="x" u2="&#xe9;" k="41" />
+<hkern u1="x" u2="&#xe8;" k="41" />
+<hkern u1="x" u2="&#xe7;" k="41" />
+<hkern u1="x" u2="&#xe0;" k="41" />
+<hkern u1="x" u2="q" k="41" />
+<hkern u1="x" u2="o" k="41" />
+<hkern u1="x" u2="e" k="41" />
+<hkern u1="x" u2="d" k="41" />
+<hkern u1="x" u2="c" k="41" />
+<hkern u1="y" u2="&#x201e;" k="82" />
+<hkern u1="y" u2="&#x201d;" k="-82" />
+<hkern u1="y" u2="&#x201a;" k="82" />
+<hkern u1="y" u2="&#x2019;" k="-82" />
+<hkern u1="y" u2="&#x3f;" k="-41" />
+<hkern u1="y" u2="&#x2e;" k="82" />
+<hkern u1="y" u2="&#x2c;" k="82" />
+<hkern u1="y" u2="&#x27;" k="-82" />
+<hkern u1="y" u2="&#x22;" k="-82" />
+<hkern u1="&#x7b;" u2="J" k="-184" />
+<hkern u1="&#xc0;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc0;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc0;" u2="&#x178;" k="123" />
+<hkern u1="&#xc0;" u2="&#x152;" k="41" />
+<hkern u1="&#xc0;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc0;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc0;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc0;" u2="Y" k="123" />
+<hkern u1="&#xc0;" u2="W" k="82" />
+<hkern u1="&#xc0;" u2="V" k="82" />
+<hkern u1="&#xc0;" u2="T" k="143" />
+<hkern u1="&#xc0;" u2="Q" k="41" />
+<hkern u1="&#xc0;" u2="O" k="41" />
+<hkern u1="&#xc0;" u2="J" k="-266" />
+<hkern u1="&#xc0;" u2="G" k="41" />
+<hkern u1="&#xc0;" u2="C" k="41" />
+<hkern u1="&#xc0;" u2="&#x27;" k="143" />
+<hkern u1="&#xc0;" u2="&#x22;" k="143" />
+<hkern u1="&#xc1;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc1;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc1;" u2="&#x178;" k="123" />
+<hkern u1="&#xc1;" u2="&#x152;" k="41" />
+<hkern u1="&#xc1;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc1;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc1;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc1;" u2="Y" k="123" />
+<hkern u1="&#xc1;" u2="W" k="82" />
+<hkern u1="&#xc1;" u2="V" k="82" />
+<hkern u1="&#xc1;" u2="T" k="143" />
+<hkern u1="&#xc1;" u2="Q" k="41" />
+<hkern u1="&#xc1;" u2="O" k="41" />
+<hkern u1="&#xc1;" u2="J" k="-266" />
+<hkern u1="&#xc1;" u2="G" k="41" />
+<hkern u1="&#xc1;" u2="C" k="41" />
+<hkern u1="&#xc1;" u2="&#x27;" k="143" />
+<hkern u1="&#xc1;" u2="&#x22;" k="143" />
+<hkern u1="&#xc2;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc2;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc2;" u2="&#x178;" k="123" />
+<hkern u1="&#xc2;" u2="&#x152;" k="41" />
+<hkern u1="&#xc2;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc2;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc2;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc2;" u2="Y" k="123" />
+<hkern u1="&#xc2;" u2="W" k="82" />
+<hkern u1="&#xc2;" u2="V" k="82" />
+<hkern u1="&#xc2;" u2="T" k="143" />
+<hkern u1="&#xc2;" u2="Q" k="41" />
+<hkern u1="&#xc2;" u2="O" k="41" />
+<hkern u1="&#xc2;" u2="J" k="-266" />
+<hkern u1="&#xc2;" u2="G" k="41" />
+<hkern u1="&#xc2;" u2="C" k="41" />
+<hkern u1="&#xc2;" u2="&#x27;" k="143" />
+<hkern u1="&#xc2;" u2="&#x22;" k="143" />
+<hkern u1="&#xc3;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc3;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc3;" u2="&#x178;" k="123" />
+<hkern u1="&#xc3;" u2="&#x152;" k="41" />
+<hkern u1="&#xc3;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc3;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc3;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc3;" u2="Y" k="123" />
+<hkern u1="&#xc3;" u2="W" k="82" />
+<hkern u1="&#xc3;" u2="V" k="82" />
+<hkern u1="&#xc3;" u2="T" k="143" />
+<hkern u1="&#xc3;" u2="Q" k="41" />
+<hkern u1="&#xc3;" u2="O" k="41" />
+<hkern u1="&#xc3;" u2="J" k="-266" />
+<hkern u1="&#xc3;" u2="G" k="41" />
+<hkern u1="&#xc3;" u2="C" k="41" />
+<hkern u1="&#xc3;" u2="&#x27;" k="143" />
+<hkern u1="&#xc3;" u2="&#x22;" k="143" />
+<hkern u1="&#xc4;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc4;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc4;" u2="&#x178;" k="123" />
+<hkern u1="&#xc4;" u2="&#x152;" k="41" />
+<hkern u1="&#xc4;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc4;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc4;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc4;" u2="Y" k="123" />
+<hkern u1="&#xc4;" u2="W" k="82" />
+<hkern u1="&#xc4;" u2="V" k="82" />
+<hkern u1="&#xc4;" u2="T" k="143" />
+<hkern u1="&#xc4;" u2="Q" k="41" />
+<hkern u1="&#xc4;" u2="O" k="41" />
+<hkern u1="&#xc4;" u2="J" k="-266" />
+<hkern u1="&#xc4;" u2="G" k="41" />
+<hkern u1="&#xc4;" u2="C" k="41" />
+<hkern u1="&#xc4;" u2="&#x27;" k="143" />
+<hkern u1="&#xc4;" u2="&#x22;" k="143" />
+<hkern u1="&#xc5;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc5;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc5;" u2="&#x178;" k="123" />
+<hkern u1="&#xc5;" u2="&#x152;" k="41" />
+<hkern u1="&#xc5;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc5;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc5;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc5;" u2="Y" k="123" />
+<hkern u1="&#xc5;" u2="W" k="82" />
+<hkern u1="&#xc5;" u2="V" k="82" />
+<hkern u1="&#xc5;" u2="T" k="143" />
+<hkern u1="&#xc5;" u2="Q" k="41" />
+<hkern u1="&#xc5;" u2="O" k="41" />
+<hkern u1="&#xc5;" u2="J" k="-266" />
+<hkern u1="&#xc5;" u2="G" k="41" />
+<hkern u1="&#xc5;" u2="C" k="41" />
+<hkern u1="&#xc5;" u2="&#x27;" k="143" />
+<hkern u1="&#xc5;" u2="&#x22;" k="143" />
+<hkern u1="&#xc6;" u2="J" k="-123" />
+<hkern u1="&#xc7;" u2="&#x152;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc7;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc7;" u2="Q" k="41" />
+<hkern u1="&#xc7;" u2="O" k="41" />
+<hkern u1="&#xc7;" u2="G" k="41" />
+<hkern u1="&#xc7;" u2="C" k="41" />
+<hkern u1="&#xc8;" u2="J" k="-123" />
+<hkern u1="&#xc9;" u2="J" k="-123" />
+<hkern u1="&#xca;" u2="J" k="-123" />
+<hkern u1="&#xcb;" u2="J" k="-123" />
+<hkern u1="&#xd0;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd0;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd0;" u2="&#x178;" k="20" />
+<hkern u1="&#xd0;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd0;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd0;" u2="Z" k="20" />
+<hkern u1="&#xd0;" u2="Y" k="20" />
+<hkern u1="&#xd0;" u2="X" k="41" />
+<hkern u1="&#xd0;" u2="W" k="20" />
+<hkern u1="&#xd0;" u2="V" k="20" />
+<hkern u1="&#xd0;" u2="T" k="61" />
+<hkern u1="&#xd0;" u2="A" k="41" />
+<hkern u1="&#xd0;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd0;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd2;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd2;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd2;" u2="&#x178;" k="20" />
+<hkern u1="&#xd2;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd2;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd2;" u2="Z" k="20" />
+<hkern u1="&#xd2;" u2="Y" k="20" />
+<hkern u1="&#xd2;" u2="X" k="41" />
+<hkern u1="&#xd2;" u2="W" k="20" />
+<hkern u1="&#xd2;" u2="V" k="20" />
+<hkern u1="&#xd2;" u2="T" k="61" />
+<hkern u1="&#xd2;" u2="A" k="41" />
+<hkern u1="&#xd2;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd2;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd3;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd3;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd3;" u2="&#x178;" k="20" />
+<hkern u1="&#xd3;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd3;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd3;" u2="Z" k="20" />
+<hkern u1="&#xd3;" u2="Y" k="20" />
+<hkern u1="&#xd3;" u2="X" k="41" />
+<hkern u1="&#xd3;" u2="W" k="20" />
+<hkern u1="&#xd3;" u2="V" k="20" />
+<hkern u1="&#xd3;" u2="T" k="61" />
+<hkern u1="&#xd3;" u2="A" k="41" />
+<hkern u1="&#xd3;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd3;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd4;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd4;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd4;" u2="&#x178;" k="20" />
+<hkern u1="&#xd4;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd4;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd4;" u2="Z" k="20" />
+<hkern u1="&#xd4;" u2="Y" k="20" />
+<hkern u1="&#xd4;" u2="X" k="41" />
+<hkern u1="&#xd4;" u2="W" k="20" />
+<hkern u1="&#xd4;" u2="V" k="20" />
+<hkern u1="&#xd4;" u2="T" k="61" />
+<hkern u1="&#xd4;" u2="A" k="41" />
+<hkern u1="&#xd4;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd4;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd5;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd5;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd5;" u2="&#x178;" k="20" />
+<hkern u1="&#xd5;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd5;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd5;" u2="Z" k="20" />
+<hkern u1="&#xd5;" u2="Y" k="20" />
+<hkern u1="&#xd5;" u2="X" k="41" />
+<hkern u1="&#xd5;" u2="W" k="20" />
+<hkern u1="&#xd5;" u2="V" k="20" />
+<hkern u1="&#xd5;" u2="T" k="61" />
+<hkern u1="&#xd5;" u2="A" k="41" />
+<hkern u1="&#xd5;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd5;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd6;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd6;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd6;" u2="&#x178;" k="20" />
+<hkern u1="&#xd6;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd6;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd6;" u2="Z" k="20" />
+<hkern u1="&#xd6;" u2="Y" k="20" />
+<hkern u1="&#xd6;" u2="X" k="41" />
+<hkern u1="&#xd6;" u2="W" k="20" />
+<hkern u1="&#xd6;" u2="V" k="20" />
+<hkern u1="&#xd6;" u2="T" k="61" />
+<hkern u1="&#xd6;" u2="A" k="41" />
+<hkern u1="&#xd6;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd6;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd8;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd8;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd8;" u2="&#x178;" k="20" />
+<hkern u1="&#xd8;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd8;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd8;" u2="Z" k="20" />
+<hkern u1="&#xd8;" u2="Y" k="20" />
+<hkern u1="&#xd8;" u2="X" k="41" />
+<hkern u1="&#xd8;" u2="W" k="20" />
+<hkern u1="&#xd8;" u2="V" k="20" />
+<hkern u1="&#xd8;" u2="T" k="61" />
+<hkern u1="&#xd8;" u2="A" k="41" />
+<hkern u1="&#xd8;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd8;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd9;" u2="&#x201e;" k="41" />
+<hkern u1="&#xd9;" u2="&#x201a;" k="41" />
+<hkern u1="&#xd9;" u2="&#xc5;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc4;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc3;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc2;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc1;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc0;" k="20" />
+<hkern u1="&#xd9;" u2="A" k="20" />
+<hkern u1="&#xd9;" u2="&#x2e;" k="41" />
+<hkern u1="&#xd9;" u2="&#x2c;" k="41" />
+<hkern u1="&#xda;" u2="&#x201e;" k="41" />
+<hkern u1="&#xda;" u2="&#x201a;" k="41" />
+<hkern u1="&#xda;" u2="&#xc5;" k="20" />
+<hkern u1="&#xda;" u2="&#xc4;" k="20" />
+<hkern u1="&#xda;" u2="&#xc3;" k="20" />
+<hkern u1="&#xda;" u2="&#xc2;" k="20" />
+<hkern u1="&#xda;" u2="&#xc1;" k="20" />
+<hkern u1="&#xda;" u2="&#xc0;" k="20" />
+<hkern u1="&#xda;" u2="A" k="20" />
+<hkern u1="&#xda;" u2="&#x2e;" k="41" />
+<hkern u1="&#xda;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdb;" u2="&#x201e;" k="41" />
+<hkern u1="&#xdb;" u2="&#x201a;" k="41" />
+<hkern u1="&#xdb;" u2="&#xc5;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc4;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc3;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc2;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc1;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc0;" k="20" />
+<hkern u1="&#xdb;" u2="A" k="20" />
+<hkern u1="&#xdb;" u2="&#x2e;" k="41" />
+<hkern u1="&#xdb;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdc;" u2="&#x201e;" k="41" />
+<hkern u1="&#xdc;" u2="&#x201a;" k="41" />
+<hkern u1="&#xdc;" u2="&#xc5;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc4;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc3;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc2;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc1;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc0;" k="20" />
+<hkern u1="&#xdc;" u2="A" k="20" />
+<hkern u1="&#xdc;" u2="&#x2e;" k="41" />
+<hkern u1="&#xdc;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdd;" u2="&#x201e;" k="123" />
+<hkern u1="&#xdd;" u2="&#x201a;" k="123" />
+<hkern u1="&#xdd;" u2="&#x153;" k="102" />
+<hkern u1="&#xdd;" u2="&#x152;" k="41" />
+<hkern u1="&#xdd;" u2="&#xfc;" k="61" />
+<hkern u1="&#xdd;" u2="&#xfb;" k="61" />
+<hkern u1="&#xdd;" u2="&#xfa;" k="61" />
+<hkern u1="&#xdd;" u2="&#xf9;" k="61" />
+<hkern u1="&#xdd;" u2="&#xf8;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf6;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf5;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf4;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf3;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf2;" k="102" />
+<hkern u1="&#xdd;" u2="&#xeb;" k="102" />
+<hkern u1="&#xdd;" u2="&#xea;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe9;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe8;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe7;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe6;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe5;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe4;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe3;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe2;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe1;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe0;" k="102" />
+<hkern u1="&#xdd;" u2="&#xd8;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd6;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd5;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd4;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd3;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd2;" k="41" />
+<hkern u1="&#xdd;" u2="&#xc7;" k="41" />
+<hkern u1="&#xdd;" u2="&#xc5;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc4;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc3;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc2;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc1;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc0;" k="123" />
+<hkern u1="&#xdd;" u2="z" k="41" />
+<hkern u1="&#xdd;" u2="u" k="61" />
+<hkern u1="&#xdd;" u2="s" k="82" />
+<hkern u1="&#xdd;" u2="r" k="61" />
+<hkern u1="&#xdd;" u2="q" k="102" />
+<hkern u1="&#xdd;" u2="p" k="61" />
+<hkern u1="&#xdd;" u2="o" k="102" />
+<hkern u1="&#xdd;" u2="n" k="61" />
+<hkern u1="&#xdd;" u2="m" k="61" />
+<hkern u1="&#xdd;" u2="g" k="41" />
+<hkern u1="&#xdd;" u2="e" k="102" />
+<hkern u1="&#xdd;" u2="d" k="102" />
+<hkern u1="&#xdd;" u2="c" k="102" />
+<hkern u1="&#xdd;" u2="a" k="102" />
+<hkern u1="&#xdd;" u2="Q" k="41" />
+<hkern u1="&#xdd;" u2="O" k="41" />
+<hkern u1="&#xdd;" u2="G" k="41" />
+<hkern u1="&#xdd;" u2="C" k="41" />
+<hkern u1="&#xdd;" u2="A" k="123" />
+<hkern u1="&#xdd;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xdd;" u2="&#x2e;" k="123" />
+<hkern u1="&#xdd;" u2="&#x2c;" k="123" />
+<hkern u1="&#xde;" u2="&#x201e;" k="266" />
+<hkern u1="&#xde;" u2="&#x201a;" k="266" />
+<hkern u1="&#xde;" u2="&#xc5;" k="102" />
+<hkern u1="&#xde;" u2="&#xc4;" k="102" />
+<hkern u1="&#xde;" u2="&#xc3;" k="102" />
+<hkern u1="&#xde;" u2="&#xc2;" k="102" />
+<hkern u1="&#xde;" u2="&#xc1;" k="102" />
+<hkern u1="&#xde;" u2="&#xc0;" k="102" />
+<hkern u1="&#xde;" u2="Z" k="20" />
+<hkern u1="&#xde;" u2="X" k="41" />
+<hkern u1="&#xde;" u2="A" k="102" />
+<hkern u1="&#xde;" u2="&#x2e;" k="266" />
+<hkern u1="&#xde;" u2="&#x2c;" k="266" />
+<hkern u1="&#xe0;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe0;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe0;" u2="&#x27;" k="20" />
+<hkern u1="&#xe0;" u2="&#x22;" k="20" />
+<hkern u1="&#xe1;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe1;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe1;" u2="&#x27;" k="20" />
+<hkern u1="&#xe1;" u2="&#x22;" k="20" />
+<hkern u1="&#xe2;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe2;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe2;" u2="&#x27;" k="20" />
+<hkern u1="&#xe2;" u2="&#x22;" k="20" />
+<hkern u1="&#xe3;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe3;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe3;" u2="&#x27;" k="20" />
+<hkern u1="&#xe3;" u2="&#x22;" k="20" />
+<hkern u1="&#xe4;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe4;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe4;" u2="&#x27;" k="20" />
+<hkern u1="&#xe4;" u2="&#x22;" k="20" />
+<hkern u1="&#xe5;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe5;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe5;" u2="&#x27;" k="20" />
+<hkern u1="&#xe5;" u2="&#x22;" k="20" />
+<hkern u1="&#xe8;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe8;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe8;" u2="&#xfd;" k="41" />
+<hkern u1="&#xe8;" u2="z" k="20" />
+<hkern u1="&#xe8;" u2="y" k="41" />
+<hkern u1="&#xe8;" u2="x" k="41" />
+<hkern u1="&#xe8;" u2="w" k="41" />
+<hkern u1="&#xe8;" u2="v" k="41" />
+<hkern u1="&#xe8;" u2="&#x27;" k="20" />
+<hkern u1="&#xe8;" u2="&#x22;" k="20" />
+<hkern u1="&#xe9;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe9;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe9;" u2="&#xfd;" k="41" />
+<hkern u1="&#xe9;" u2="z" k="20" />
+<hkern u1="&#xe9;" u2="y" k="41" />
+<hkern u1="&#xe9;" u2="x" k="41" />
+<hkern u1="&#xe9;" u2="w" k="41" />
+<hkern u1="&#xe9;" u2="v" k="41" />
+<hkern u1="&#xe9;" u2="&#x27;" k="20" />
+<hkern u1="&#xe9;" u2="&#x22;" k="20" />
+<hkern u1="&#xea;" u2="&#x201d;" k="20" />
+<hkern u1="&#xea;" u2="&#x2019;" k="20" />
+<hkern u1="&#xea;" u2="&#xfd;" k="41" />
+<hkern u1="&#xea;" u2="z" k="20" />
+<hkern u1="&#xea;" u2="y" k="41" />
+<hkern u1="&#xea;" u2="x" k="41" />
+<hkern u1="&#xea;" u2="w" k="41" />
+<hkern u1="&#xea;" u2="v" k="41" />
+<hkern u1="&#xea;" u2="&#x27;" k="20" />
+<hkern u1="&#xea;" u2="&#x22;" k="20" />
+<hkern u1="&#xeb;" u2="&#x201d;" k="20" />
+<hkern u1="&#xeb;" u2="&#x2019;" k="20" />
+<hkern u1="&#xeb;" u2="&#xfd;" k="41" />
+<hkern u1="&#xeb;" u2="z" k="20" />
+<hkern u1="&#xeb;" u2="y" k="41" />
+<hkern u1="&#xeb;" u2="x" k="41" />
+<hkern u1="&#xeb;" u2="w" k="41" />
+<hkern u1="&#xeb;" u2="v" k="41" />
+<hkern u1="&#xeb;" u2="&#x27;" k="20" />
+<hkern u1="&#xeb;" u2="&#x22;" k="20" />
+<hkern u1="&#xf0;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf0;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf0;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf0;" u2="z" k="20" />
+<hkern u1="&#xf0;" u2="y" k="41" />
+<hkern u1="&#xf0;" u2="x" k="41" />
+<hkern u1="&#xf0;" u2="w" k="41" />
+<hkern u1="&#xf0;" u2="v" k="41" />
+<hkern u1="&#xf0;" u2="&#x27;" k="20" />
+<hkern u1="&#xf0;" u2="&#x22;" k="20" />
+<hkern u1="&#xf2;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf2;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf2;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf2;" u2="z" k="20" />
+<hkern u1="&#xf2;" u2="y" k="41" />
+<hkern u1="&#xf2;" u2="x" k="41" />
+<hkern u1="&#xf2;" u2="w" k="41" />
+<hkern u1="&#xf2;" u2="v" k="41" />
+<hkern u1="&#xf2;" u2="&#x27;" k="20" />
+<hkern u1="&#xf2;" u2="&#x22;" k="20" />
+<hkern u1="&#xf3;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf3;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf3;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf3;" u2="z" k="20" />
+<hkern u1="&#xf3;" u2="y" k="41" />
+<hkern u1="&#xf3;" u2="x" k="41" />
+<hkern u1="&#xf3;" u2="w" k="41" />
+<hkern u1="&#xf3;" u2="v" k="41" />
+<hkern u1="&#xf3;" u2="&#x27;" k="20" />
+<hkern u1="&#xf3;" u2="&#x22;" k="20" />
+<hkern u1="&#xf4;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf4;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf4;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf4;" u2="z" k="20" />
+<hkern u1="&#xf4;" u2="y" k="41" />
+<hkern u1="&#xf4;" u2="x" k="41" />
+<hkern u1="&#xf4;" u2="w" k="41" />
+<hkern u1="&#xf4;" u2="v" k="41" />
+<hkern u1="&#xf4;" u2="&#x27;" k="20" />
+<hkern u1="&#xf4;" u2="&#x22;" k="20" />
+<hkern u1="&#xf6;" u2="&#x201d;" k="41" />
+<hkern u1="&#xf6;" u2="&#x2019;" k="41" />
+<hkern u1="&#xf6;" u2="&#x27;" k="41" />
+<hkern u1="&#xf6;" u2="&#x22;" k="41" />
+<hkern u1="&#xf8;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf8;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf8;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf8;" u2="z" k="20" />
+<hkern u1="&#xf8;" u2="y" k="41" />
+<hkern u1="&#xf8;" u2="x" k="41" />
+<hkern u1="&#xf8;" u2="w" k="41" />
+<hkern u1="&#xf8;" u2="v" k="41" />
+<hkern u1="&#xf8;" u2="&#x27;" k="20" />
+<hkern u1="&#xf8;" u2="&#x22;" k="20" />
+<hkern u1="&#xfd;" u2="&#x201e;" k="82" />
+<hkern u1="&#xfd;" u2="&#x201d;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x201a;" k="82" />
+<hkern u1="&#xfd;" u2="&#x2019;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xfd;" u2="&#x2e;" k="82" />
+<hkern u1="&#xfd;" u2="&#x2c;" k="82" />
+<hkern u1="&#xfd;" u2="&#x27;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x22;" k="-82" />
+<hkern u1="&#xfe;" u2="&#x201d;" k="20" />
+<hkern u1="&#xfe;" u2="&#x2019;" k="20" />
+<hkern u1="&#xfe;" u2="&#xfd;" k="41" />
+<hkern u1="&#xfe;" u2="z" k="20" />
+<hkern u1="&#xfe;" u2="y" k="41" />
+<hkern u1="&#xfe;" u2="x" k="41" />
+<hkern u1="&#xfe;" u2="w" k="41" />
+<hkern u1="&#xfe;" u2="v" k="41" />
+<hkern u1="&#xfe;" u2="&#x27;" k="20" />
+<hkern u1="&#xfe;" u2="&#x22;" k="20" />
+<hkern u1="&#xff;" u2="&#x201e;" k="82" />
+<hkern u1="&#xff;" u2="&#x201d;" k="-82" />
+<hkern u1="&#xff;" u2="&#x201a;" k="82" />
+<hkern u1="&#xff;" u2="&#x2019;" k="-82" />
+<hkern u1="&#xff;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xff;" u2="&#x2e;" k="82" />
+<hkern u1="&#xff;" u2="&#x2c;" k="82" />
+<hkern u1="&#xff;" u2="&#x27;" k="-82" />
+<hkern u1="&#xff;" u2="&#x22;" k="-82" />
+<hkern u1="&#x152;" u2="J" k="-123" />
+<hkern u1="&#x178;" u2="&#x201e;" k="123" />
+<hkern u1="&#x178;" u2="&#x201a;" k="123" />
+<hkern u1="&#x178;" u2="&#x153;" k="102" />
+<hkern u1="&#x178;" u2="&#x152;" k="41" />
+<hkern u1="&#x178;" u2="&#xfc;" k="61" />
+<hkern u1="&#x178;" u2="&#xfb;" k="61" />
+<hkern u1="&#x178;" u2="&#xfa;" k="61" />
+<hkern u1="&#x178;" u2="&#xf9;" k="61" />
+<hkern u1="&#x178;" u2="&#xf8;" k="102" />
+<hkern u1="&#x178;" u2="&#xf6;" k="102" />
+<hkern u1="&#x178;" u2="&#xf5;" k="102" />
+<hkern u1="&#x178;" u2="&#xf4;" k="102" />
+<hkern u1="&#x178;" u2="&#xf3;" k="102" />
+<hkern u1="&#x178;" u2="&#xf2;" k="102" />
+<hkern u1="&#x178;" u2="&#xeb;" k="102" />
+<hkern u1="&#x178;" u2="&#xea;" k="102" />
+<hkern u1="&#x178;" u2="&#xe9;" k="102" />
+<hkern u1="&#x178;" u2="&#xe8;" k="102" />
+<hkern u1="&#x178;" u2="&#xe7;" k="102" />
+<hkern u1="&#x178;" u2="&#xe6;" k="102" />
+<hkern u1="&#x178;" u2="&#xe5;" k="102" />
+<hkern u1="&#x178;" u2="&#xe4;" k="102" />
+<hkern u1="&#x178;" u2="&#xe3;" k="102" />
+<hkern u1="&#x178;" u2="&#xe2;" k="102" />
+<hkern u1="&#x178;" u2="&#xe1;" k="102" />
+<hkern u1="&#x178;" u2="&#xe0;" k="102" />
+<hkern u1="&#x178;" u2="&#xd8;" k="41" />
+<hkern u1="&#x178;" u2="&#xd6;" k="41" />
+<hkern u1="&#x178;" u2="&#xd5;" k="41" />
+<hkern u1="&#x178;" u2="&#xd4;" k="41" />
+<hkern u1="&#x178;" u2="&#xd3;" k="41" />
+<hkern u1="&#x178;" u2="&#xd2;" k="41" />
+<hkern u1="&#x178;" u2="&#xc7;" k="41" />
+<hkern u1="&#x178;" u2="&#xc5;" k="123" />
+<hkern u1="&#x178;" u2="&#xc4;" k="123" />
+<hkern u1="&#x178;" u2="&#xc3;" k="123" />
+<hkern u1="&#x178;" u2="&#xc2;" k="123" />
+<hkern u1="&#x178;" u2="&#xc1;" k="123" />
+<hkern u1="&#x178;" u2="&#xc0;" k="123" />
+<hkern u1="&#x178;" u2="z" k="41" />
+<hkern u1="&#x178;" u2="u" k="61" />
+<hkern u1="&#x178;" u2="s" k="82" />
+<hkern u1="&#x178;" u2="r" k="61" />
+<hkern u1="&#x178;" u2="q" k="102" />
+<hkern u1="&#x178;" u2="p" k="61" />
+<hkern u1="&#x178;" u2="o" k="102" />
+<hkern u1="&#x178;" u2="n" k="61" />
+<hkern u1="&#x178;" u2="m" k="61" />
+<hkern u1="&#x178;" u2="g" k="41" />
+<hkern u1="&#x178;" u2="e" k="102" />
+<hkern u1="&#x178;" u2="d" k="102" />
+<hkern u1="&#x178;" u2="c" k="102" />
+<hkern u1="&#x178;" u2="a" k="102" />
+<hkern u1="&#x178;" u2="Q" k="41" />
+<hkern u1="&#x178;" u2="O" k="41" />
+<hkern u1="&#x178;" u2="G" k="41" />
+<hkern u1="&#x178;" u2="C" k="41" />
+<hkern u1="&#x178;" u2="A" k="123" />
+<hkern u1="&#x178;" u2="&#x3f;" k="-41" />
+<hkern u1="&#x178;" u2="&#x2e;" k="123" />
+<hkern u1="&#x178;" u2="&#x2c;" k="123" />
+<hkern u1="&#x2013;" u2="T" k="82" />
+<hkern u1="&#x2014;" u2="T" k="82" />
+<hkern u1="&#x2018;" u2="&#x178;" k="-20" />
+<hkern u1="&#x2018;" u2="&#x153;" k="123" />
+<hkern u1="&#x2018;" u2="&#xfc;" k="61" />
+<hkern u1="&#x2018;" u2="&#xfb;" k="61" />
+<hkern u1="&#x2018;" u2="&#xfa;" k="61" />
+<hkern u1="&#x2018;" u2="&#xf9;" k="61" />
+<hkern u1="&#x2018;" u2="&#xf8;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf6;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf5;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf4;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf3;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf2;" k="123" />
+<hkern u1="&#x2018;" u2="&#xeb;" k="123" />
+<hkern u1="&#x2018;" u2="&#xea;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe9;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe8;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe7;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe6;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe5;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe4;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe3;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe2;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe1;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe0;" k="123" />
+<hkern u1="&#x2018;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x2018;" u2="&#xc5;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc4;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc3;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc2;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc1;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc0;" k="143" />
+<hkern u1="&#x2018;" u2="u" k="61" />
+<hkern u1="&#x2018;" u2="s" k="61" />
+<hkern u1="&#x2018;" u2="r" k="61" />
+<hkern u1="&#x2018;" u2="q" k="123" />
+<hkern u1="&#x2018;" u2="p" k="61" />
+<hkern u1="&#x2018;" u2="o" k="123" />
+<hkern u1="&#x2018;" u2="n" k="61" />
+<hkern u1="&#x2018;" u2="m" k="61" />
+<hkern u1="&#x2018;" u2="g" k="61" />
+<hkern u1="&#x2018;" u2="e" k="123" />
+<hkern u1="&#x2018;" u2="d" k="123" />
+<hkern u1="&#x2018;" u2="c" k="123" />
+<hkern u1="&#x2018;" u2="a" k="82" />
+<hkern u1="&#x2018;" u2="Y" k="-20" />
+<hkern u1="&#x2018;" u2="W" k="-41" />
+<hkern u1="&#x2018;" u2="V" k="-41" />
+<hkern u1="&#x2018;" u2="T" k="-41" />
+<hkern u1="&#x2018;" u2="A" k="143" />
+<hkern u1="&#x2019;" u2="&#x178;" k="-20" />
+<hkern u1="&#x2019;" u2="&#x153;" k="123" />
+<hkern u1="&#x2019;" u2="&#xfc;" k="61" />
+<hkern u1="&#x2019;" u2="&#xfb;" k="61" />
+<hkern u1="&#x2019;" u2="&#xfa;" k="61" />
+<hkern u1="&#x2019;" u2="&#xf9;" k="61" />
+<hkern u1="&#x2019;" u2="&#xf8;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf6;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf5;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf4;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf3;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf2;" k="123" />
+<hkern u1="&#x2019;" u2="&#xeb;" k="123" />
+<hkern u1="&#x2019;" u2="&#xea;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe9;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe8;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe7;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe6;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe5;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe4;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe3;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe2;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe1;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe0;" k="123" />
+<hkern u1="&#x2019;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x2019;" u2="&#xc5;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc4;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc3;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc2;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc1;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc0;" k="143" />
+<hkern u1="&#x2019;" u2="u" k="61" />
+<hkern u1="&#x2019;" u2="s" k="61" />
+<hkern u1="&#x2019;" u2="r" k="61" />
+<hkern u1="&#x2019;" u2="q" k="123" />
+<hkern u1="&#x2019;" u2="p" k="61" />
+<hkern u1="&#x2019;" u2="o" k="123" />
+<hkern u1="&#x2019;" u2="n" k="61" />
+<hkern u1="&#x2019;" u2="m" k="61" />
+<hkern u1="&#x2019;" u2="g" k="61" />
+<hkern u1="&#x2019;" u2="e" k="123" />
+<hkern u1="&#x2019;" u2="d" k="123" />
+<hkern u1="&#x2019;" u2="c" k="123" />
+<hkern u1="&#x2019;" u2="a" k="82" />
+<hkern u1="&#x2019;" u2="Y" k="-20" />
+<hkern u1="&#x2019;" u2="W" k="-41" />
+<hkern u1="&#x2019;" u2="V" k="-41" />
+<hkern u1="&#x2019;" u2="T" k="-41" />
+<hkern u1="&#x2019;" u2="A" k="143" />
+<hkern u1="&#x201a;" u2="&#x178;" k="123" />
+<hkern u1="&#x201a;" u2="&#x152;" k="102" />
+<hkern u1="&#x201a;" u2="&#xdd;" k="123" />
+<hkern u1="&#x201a;" u2="&#xdc;" k="41" />
+<hkern u1="&#x201a;" u2="&#xdb;" k="41" />
+<hkern u1="&#x201a;" u2="&#xda;" k="41" />
+<hkern u1="&#x201a;" u2="&#xd9;" k="41" />
+<hkern u1="&#x201a;" u2="&#xd8;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd6;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd5;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd4;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd3;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd2;" k="102" />
+<hkern u1="&#x201a;" u2="&#xc7;" k="102" />
+<hkern u1="&#x201a;" u2="Y" k="123" />
+<hkern u1="&#x201a;" u2="W" k="123" />
+<hkern u1="&#x201a;" u2="V" k="123" />
+<hkern u1="&#x201a;" u2="U" k="41" />
+<hkern u1="&#x201a;" u2="T" k="143" />
+<hkern u1="&#x201a;" u2="Q" k="102" />
+<hkern u1="&#x201a;" u2="O" k="102" />
+<hkern u1="&#x201a;" u2="G" k="102" />
+<hkern u1="&#x201a;" u2="C" k="102" />
+<hkern u1="&#x201c;" u2="&#x178;" k="-20" />
+<hkern u1="&#x201c;" u2="&#x153;" k="123" />
+<hkern u1="&#x201c;" u2="&#xfc;" k="61" />
+<hkern u1="&#x201c;" u2="&#xfb;" k="61" />
+<hkern u1="&#x201c;" u2="&#xfa;" k="61" />
+<hkern u1="&#x201c;" u2="&#xf9;" k="61" />
+<hkern u1="&#x201c;" u2="&#xf8;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf6;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf5;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf4;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf3;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf2;" k="123" />
+<hkern u1="&#x201c;" u2="&#xeb;" k="123" />
+<hkern u1="&#x201c;" u2="&#xea;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe9;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe8;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe7;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe6;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe5;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe4;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe3;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe2;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe1;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe0;" k="123" />
+<hkern u1="&#x201c;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x201c;" u2="&#xc5;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc4;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc3;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc2;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc1;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc0;" k="143" />
+<hkern u1="&#x201c;" u2="u" k="61" />
+<hkern u1="&#x201c;" u2="s" k="61" />
+<hkern u1="&#x201c;" u2="r" k="61" />
+<hkern u1="&#x201c;" u2="q" k="123" />
+<hkern u1="&#x201c;" u2="p" k="61" />
+<hkern u1="&#x201c;" u2="o" k="123" />
+<hkern u1="&#x201c;" u2="n" k="61" />
+<hkern u1="&#x201c;" u2="m" k="61" />
+<hkern u1="&#x201c;" u2="g" k="61" />
+<hkern u1="&#x201c;" u2="e" k="123" />
+<hkern u1="&#x201c;" u2="d" k="123" />
+<hkern u1="&#x201c;" u2="c" k="123" />
+<hkern u1="&#x201c;" u2="a" k="82" />
+<hkern u1="&#x201c;" u2="Y" k="-20" />
+<hkern u1="&#x201c;" u2="W" k="-41" />
+<hkern u1="&#x201c;" u2="V" k="-41" />
+<hkern u1="&#x201c;" u2="T" k="-41" />
+<hkern u1="&#x201c;" u2="A" k="143" />
+<hkern u1="&#x201e;" u2="&#x178;" k="123" />
+<hkern u1="&#x201e;" u2="&#x152;" k="102" />
+<hkern u1="&#x201e;" u2="&#xdd;" k="123" />
+<hkern u1="&#x201e;" u2="&#xdc;" k="41" />
+<hkern u1="&#x201e;" u2="&#xdb;" k="41" />
+<hkern u1="&#x201e;" u2="&#xda;" k="41" />
+<hkern u1="&#x201e;" u2="&#xd9;" k="41" />
+<hkern u1="&#x201e;" u2="&#xd8;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd6;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd5;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd4;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd3;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd2;" k="102" />
+<hkern u1="&#x201e;" u2="&#xc7;" k="102" />
+<hkern u1="&#x201e;" u2="Y" k="123" />
+<hkern u1="&#x201e;" u2="W" k="123" />
+<hkern u1="&#x201e;" u2="V" k="123" />
+<hkern u1="&#x201e;" u2="U" k="41" />
+<hkern u1="&#x201e;" u2="T" k="143" />
+<hkern u1="&#x201e;" u2="Q" k="102" />
+<hkern u1="&#x201e;" u2="O" k="102" />
+<hkern u1="&#x201e;" u2="G" k="102" />
+<hkern u1="&#x201e;" u2="C" k="102" />
+</font>
+</defs></svg> 
\ No newline at end of file
diff --git a/html/tower/docs/fonts/OpenSans-Bold-webfont.woff b/html/tower/docs/fonts/OpenSans-Bold-webfont.woff
new file mode 100644
index 0000000..1205787
--- /dev/null
+++ b/html/tower/docs/fonts/OpenSans-Bold-webfont.woff
Binary files differdiff --git a/html/tower/docs/fonts/OpenSans-BoldItalic-webfont.eot b/html/tower/docs/fonts/OpenSans-BoldItalic-webfont.eot
new file mode 100644
index 0000000..1f639a1
--- /dev/null
+++ b/html/tower/docs/fonts/OpenSans-BoldItalic-webfont.eot
Binary files differdiff --git a/html/tower/docs/fonts/OpenSans-BoldItalic-webfont.svg b/html/tower/docs/fonts/OpenSans-BoldItalic-webfont.svg
new file mode 100644
index 0000000..6a2607b
--- /dev/null
+++ b/html/tower/docs/fonts/OpenSans-BoldItalic-webfont.svg
@@ -0,0 +1,1830 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata></metadata>
+<defs>
+<font id="open_sansbold_italic" horiz-adv-x="1128" >
+<font-face units-per-em="2048" ascent="1638" descent="-410" />
+<missing-glyph horiz-adv-x="532" />
+<glyph unicode="&#xfb01;" horiz-adv-x="1352" d="M0 0zM-45 -492q-104 0 -174 25v242q61 -21 115 -21q61 0 107 40t65 130l204 965h-163l30 145l183 84l18 84q41 190 138.5 277.5t273.5 87.5q131 0 235 -49l-80 -224q-69 31 -133 31q-57 0 -92 -40t-47 -105l-12 -62h219l-49 -229h-220l-215 -1010q-77 -371 -403 -371z M1065 1380q0 87 47.5 131.5t134.5 44.5q73 0 111 -31t38 -89q0 -80 -44 -129.5t-136 -49.5q-151 0 -151 123zM1081 0h-301l237 1118h301z" />
+<glyph unicode="&#xfb02;" horiz-adv-x="1352" d="M0 0zM-45 -492q-104 0 -174 25v242q61 -21 115 -21q61 0 107 40t65 130l204 965h-163l30 145l183 84l18 84q41 190 138.5 277.5t273.5 87.5q131 0 235 -49l-80 -224q-69 31 -133 31q-57 0 -92 -40t-47 -105l-12 -62h219l-49 -229h-220l-215 -1010q-77 -371 -403 -371z M1081 0h-301l330 1556h301z" />
+<glyph unicode="&#xfb03;" horiz-adv-x="2048" d="M-45 -492q-104 0 -174 25v242q61 -21 115 -21q61 0 107 40t65 130l204 965h-163l30 145l183 84l18 84q41 190 138.5 277.5t273.5 87.5q131 0 235 -49l-80 -224q-69 31 -133 31q-57 0 -92 -40t-47 -105l-12 -62h395l18 84q41 190 138.5 277.5t273.5 87.5q131 0 235 -49 l-79 -224q-69 31 -134 31q-57 0 -91.5 -40t-47.5 -105l-12 -62h219l-49 -229h-219l-215 -1010q-77 -371 -404 -371q-104 0 -174 25v242q61 -21 115 -21q136 0 172 170l205 965h-396l-215 -1010q-77 -371 -403 -371zM1778 0h-301l237 1118h301zM1761 1380q0 87 48 131.5 t135 44.5q73 0 111 -31t38 -89q0 -80 -44 -129.5t-136 -49.5q-152 0 -152 123z" />
+<glyph unicode="&#xfb04;" horiz-adv-x="2048" d="M-45 -492q-104 0 -174 25v242q61 -21 115 -21q61 0 107 40t65 130l204 965h-163l30 145l183 84l18 84q41 190 138.5 277.5t273.5 87.5q131 0 235 -49l-80 -224q-69 31 -133 31q-57 0 -92 -40t-47 -105l-12 -62h395l18 84q41 190 138.5 277.5t273.5 87.5q131 0 235 -49 l-79 -224q-69 31 -134 31q-57 0 -91.5 -40t-47.5 -105l-12 -62h219l-49 -229h-219l-215 -1010q-77 -371 -404 -371q-104 0 -174 25v242q61 -21 115 -21q136 0 172 170l205 965h-396l-215 -1010q-77 -371 -403 -371zM1778 0h-301l329 1556h301z" />
+<glyph horiz-adv-x="2048" />
+<glyph horiz-adv-x="2048" />
+<glyph unicode="&#xd;" horiz-adv-x="1044" />
+<glyph unicode=" "  horiz-adv-x="532" />
+<glyph unicode="&#x09;" horiz-adv-x="532" />
+<glyph unicode="&#xa0;" horiz-adv-x="532" />
+<glyph unicode="!" horiz-adv-x="586" d="M391 485h-241l157 977h340zM25 115q0 90 53.5 144t150.5 54q68 0 109 -38t41 -107q0 -87 -55 -141t-144 -54q-73 0 -114 37.5t-41 104.5z" />
+<glyph unicode="&#x22;" horiz-adv-x="928" d="M549 1462l-152 -528h-196l71 528h277zM954 1462l-151 -528h-199l74 528h276z" />
+<glyph unicode="#" horiz-adv-x="1323" d="M1036 846l-69 -232h258l-19 -206h-297l-116 -408h-220l117 408h-194l-115 -408h-215l113 408h-238l18 206h277l70 232h-252l18 209h289l119 407h217l-117 -407h199l116 407h215l-116 -407h239l-18 -209h-279zM553 614h197l69 232h-196z" />
+<glyph unicode="$" d="M1034 496q0 -184 -125.5 -291.5t-367.5 -124.5l-39 -199h-140l44 201q-209 12 -355 86v266q198 -107 404 -117l71 322q-163 61 -241 151t-78 214q0 173 127 279.5t350 121.5l35 151h139l-33 -151q166 -22 295 -90l-106 -232q-132 65 -242 74l-63 -299q131 -51 195 -99.5 t97 -113t33 -149.5zM594 322q63 9 102 45t39 98q0 46 -24.5 75.5t-59.5 43.5zM633 1157q-62 -7 -96.5 -41t-34.5 -94q0 -79 80 -111z" />
+<glyph unicode="%" horiz-adv-x="1753" d="M518 1274q-63 0 -110.5 -128.5t-47.5 -277.5q0 -96 56 -96q65 0 112 131t47 275q0 96 -57 96zM821 1165q0 -166 -56 -310t-151 -217t-217 -73q-139 0 -210.5 83.5t-71.5 236.5q0 169 55.5 311.5t148.5 214.5t216 72q137 0 211.5 -80t74.5 -238zM1554 1462l-1083 -1462 h-240l1088 1462h235zM1376 690q-39 0 -75 -56t-59 -154t-23 -195t55 -97q41 0 77 55t59.5 154.5t23.5 196.5q0 96 -58 96zM1679 590q0 -167 -54 -313.5t-148 -220.5t-215 -74q-144 0 -216.5 78.5t-72.5 222.5q0 177 53 322.5t148 219.5t219 74q137 0 211.5 -78.5 t74.5 -230.5z" />
+<glyph unicode="&#x26;" horiz-adv-x="1450" d="M1325 0h-350l-72 98q-175 -118 -403 -118q-209 0 -320.5 97.5t-111.5 280.5q0 145 78.5 248.5t273.5 200.5q-76 130 -76 258q0 195 117.5 307.5t316.5 112.5q169 0 266 -82.5t97 -224.5q0 -280 -365 -426l195 -263q44 57 80.5 121.5t78.5 173.5h300q-133 -313 -310 -497z M541 623q-88 -51 -123 -104.5t-35 -131.5q0 -65 45.5 -108t116.5 -43q115 0 221 59zM662 920q113 59 155.5 111t42.5 112q0 57 -30 82.5t-70 25.5q-66 0 -102.5 -46.5t-36.5 -119.5q0 -46 12 -92t29 -73z" />
+<glyph unicode="'" horiz-adv-x="522" d="M549 1462l-152 -528h-196l71 528h277z" />
+<glyph unicode="(" horiz-adv-x="694" d="M74 281q0 339 122.5 626.5t381.5 554.5h262q-255 -278 -377.5 -573.5t-122.5 -618.5q0 -308 117 -594h-234q-149 266 -149 605z" />
+<glyph unicode=")" horiz-adv-x="694" d="M618 858q0 -342 -124 -630.5t-379 -551.5h-262q499 545 499 1192q0 307 -116 594h233q149 -264 149 -604z" />
+<glyph unicode="*" horiz-adv-x="1116" d="M885 1522l-113 -353l387 29l-18 -254l-338 43l160 -336l-246 -73l-90 337l-197 -278l-207 164l275 248l-326 92l86 237l338 -174l33 369z" />
+<glyph unicode="+" d="M475 612h-366v219h366v369h219v-369h367v-219h-367v-364h-219v364z" />
+<glyph unicode="," horiz-adv-x="569" d="M377 238l8 -23q-118 -255 -262 -479h-225q74 167 194 502h285z" />
+<glyph unicode="-" horiz-adv-x="659" d="M41 424l53 250h524l-53 -250h-524z" />
+<glyph unicode="." horiz-adv-x="584" d="M25 115q0 90 53.5 144t150.5 54q68 0 109 -38t41 -107q0 -87 -55 -141t-144 -54q-73 0 -114 37.5t-41 104.5z" />
+<glyph unicode="/" horiz-adv-x="862" d="M1014 1462l-809 -1462h-295l809 1462h295z" />
+<glyph unicode="0" d="M1110 1012q0 -470 -168.5 -751t-472.5 -281q-198 0 -300.5 122t-102.5 365q0 297 84 537t228 360.5t333 120.5q399 0 399 -473zM684 1235q-80 0 -149.5 -104t-117.5 -302t-48 -368q0 -115 27.5 -173.5t97.5 -58.5q81 0 150.5 106t116 301t46.5 386q0 111 -30.5 162 t-92.5 51z" />
+<glyph unicode="1" d="M688 0h-305l180 829q35 152 76 287q-9 -8 -61.5 -47t-262.5 -170l-133 215l566 348h249z" />
+<glyph unicode="2" d="M913 0h-962l43 213l477 424q180 159 248.5 254.5t68.5 179.5q0 75 -41 114.5t-110 39.5q-66 0 -135.5 -33.5t-171.5 -118.5l-146 203q132 112 252 159.5t250 47.5q190 0 301 -98t111 -259q0 -107 -41 -201t-122.5 -188t-266.5 -245l-269 -222v-10h568z" />
+<glyph unicode="3" d="M1104 1149q0 -156 -94.5 -262t-261.5 -135v-4q131 -26 198.5 -106.5t67.5 -201.5q0 -133 -74 -238t-212 -163.5t-327 -58.5q-239 0 -387 79v267q84 -50 182 -75.5t191 -25.5q158 0 243 63.5t85 176.5q0 172 -258 172h-138l46 221h73q167 0 263 62t96 172q0 67 -43 104 t-121 37q-134 0 -287 -100l-127 204q124 81 232.5 113.5t246.5 32.5q190 0 298 -90.5t108 -243.5z" />
+<glyph unicode="4" d="M1028 303h-170l-63 -303h-293l63 303h-590l48 234l770 925h311l-195 -919h170zM616 543l58 248q12 58 40 164t42 141h-6q-35 -63 -132 -181l-313 -372h311z" />
+<glyph unicode="5" d="M623 922q183 0 289 -103t106 -287q0 -167 -71.5 -292t-208.5 -192.5t-330 -67.5q-117 0 -218.5 23t-162.5 58v269q174 -99 352 -99q154 0 241 71t87 194q0 94 -57.5 141t-166.5 47q-102 0 -213 -33l-104 78l207 733h755l-55 -262h-489l-88 -293q72 15 127 15z" />
+<glyph unicode="6" d="M88 469q0 202 61 395.5t167.5 335t256.5 213.5t357 72q125 0 223 -27l-51 -246q-84 25 -191 25q-194 0 -313.5 -108t-185.5 -345h4q115 166 311 166q157 0 242.5 -97t85.5 -273q0 -169 -71 -313.5t-190.5 -215.5t-277.5 -71q-212 0 -320 127t-108 362zM530 227 q99 0 161.5 94t62.5 236q0 71 -33.5 113.5t-102.5 42.5q-60 0 -114.5 -35.5t-87.5 -95.5t-33 -160q0 -91 40 -143t107 -52z" />
+<glyph unicode="7" d="M78 0l737 1202h-629l56 260h975l-41 -194l-752 -1268h-346z" />
+<glyph unicode="8" d="M721 1485q123 0 215.5 -42t141 -118t48.5 -174q0 -134 -80.5 -233.5t-230.5 -151.5q217 -141 217 -365q0 -122 -63.5 -218.5t-181 -149.5t-273.5 -53q-214 0 -336.5 100t-122.5 270q0 298 348 426q-165 132 -165 299q0 119 58 212.5t168 145.5t257 52zM582 643 q-116 -45 -173 -107t-57 -153q0 -81 50 -128.5t135 -47.5q93 0 147.5 53.5t54.5 138.5q0 73 -36.5 131.5t-120.5 112.5zM694 1260q-76 0 -121 -46.5t-45 -119.5q0 -132 123 -201q185 72 185 221q0 68 -39.5 107t-102.5 39z" />
+<glyph unicode="9" d="M1092 1001q0 -280 -99 -533t-264 -370.5t-403 -117.5q-128 0 -240 32v256q111 -41 227 -41q121 0 207.5 49t144 138.5t99.5 257.5h-4q-111 -158 -295 -158q-163 0 -252.5 103.5t-89.5 285.5q0 166 73 305.5t196 208t286 68.5q203 0 308.5 -123t105.5 -361zM645 1237 q-65 0 -115.5 -42t-78 -114t-27.5 -153q0 -87 37.5 -131.5t105.5 -44.5q60 0 111.5 36.5t82 100t30.5 158.5q0 84 -35.5 137t-110.5 53z" />
+<glyph unicode=":" horiz-adv-x="584" d="M207 940q0 92 55.5 145.5t149.5 53.5q68 0 108.5 -38.5t40.5 -107.5q0 -86 -54.5 -140t-144.5 -54q-72 0 -113.5 36.5t-41.5 104.5zM25 115q0 90 53.5 144t150.5 54q68 0 109 -38t41 -107q0 -87 -55 -141t-144 -54q-73 0 -114 37.5t-41 104.5z" />
+<glyph unicode=";" horiz-adv-x="584" d="M385 215q-118 -255 -262 -479h-225q74 167 194 502h285zM207 940q0 92 55.5 145.5t149.5 53.5q68 0 108.5 -38.5t40.5 -107.5q0 -86 -54.5 -140t-144.5 -54q-72 0 -113.5 36.5t-41.5 104.5z" />
+<glyph unicode="&#x3c;" d="M1061 203l-952 438v143l952 496v-240l-643 -317l643 -281v-239z" />
+<glyph unicode="=" d="M109 807v217h952v-217h-952zM109 418v219h952v-219h-952z" />
+<glyph unicode="&#x3e;" d="M109 442l643 281l-643 317v240l952 -496v-143l-952 -438v239z" />
+<glyph unicode="?" horiz-adv-x="940" d="M260 485l14 78q19 103 73.5 177t172.5 155q124 84 157.5 127t33.5 96q0 119 -133 119q-50 0 -106.5 -16t-201.5 -84l-92 221q230 125 445 125q177 0 280 -87.5t103 -244.5q0 -83 -28.5 -149.5t-82.5 -123t-190 -147.5q-64 -43 -96.5 -73t-52.5 -64.5t-38 -108.5h-258z M166 115q0 91 55 144.5t150 53.5q68 0 108.5 -38t40.5 -107q0 -87 -55 -141t-143 -54q-74 0 -115 38t-41 104z" />
+<glyph unicode="@" horiz-adv-x="1753" d="M1733 840q0 -173 -64 -321t-177.5 -231t-254.5 -83q-88 0 -144.5 38.5t-72.5 108.5h-6q-50 -77 -113 -112t-147 -35q-127 0 -198 79.5t-71 229.5q0 147 67.5 276.5t187.5 205t268 75.5q185 0 327 -55l-106 -420q-11 -44 -19 -76.5t-8 -64.5q0 -68 58 -68q66 0 124 64 t92.5 171t34.5 214q0 213 -123.5 325.5t-359.5 112.5q-203 0 -366.5 -94t-255 -266t-91.5 -392q0 -243 134 -380.5t376 -137.5q117 0 219.5 20t221.5 66v-186q-230 -90 -465 -90q-217 0 -378 85.5t-246 241.5t-85 359q0 279 120.5 497t343 341.5t497.5 123.5 q318 0 499 -163.5t181 -458.5zM995 889q-82 0 -145.5 -51.5t-100 -137t-36.5 -174.5q0 -65 24.5 -102t69.5 -37q141 0 213 270l57 222q-36 10 -82 10z" />
+<glyph unicode="A" horiz-adv-x="1286" d="M842 348h-473l-172 -348h-320l766 1468h373l147 -1468h-297zM827 608l-26 350q-10 131 -10 253v36q-44 -120 -109 -254l-188 -385h333z" />
+<glyph unicode="B" horiz-adv-x="1270" d="M788 1462q229 0 346 -81.5t117 -243.5q0 -150 -83 -247.5t-236 -129.5v-6q100 -26 159.5 -96.5t59.5 -180.5q0 -229 -153 -353t-423 -124h-522l309 1462h426zM545 883h149q121 0 181.5 48.5t60.5 139.5q0 137 -170 137h-152zM412 256h180q117 0 183.5 58t66.5 161 q0 162 -183 162h-165z" />
+<glyph unicode="C" horiz-adv-x="1253" d="M905 1227q-132 0 -237.5 -81t-169.5 -238.5t-64 -338.5q0 -167 68.5 -248t218.5 -81q146 0 338 77v-260q-199 -77 -400 -77q-254 0 -395 149.5t-141 423.5q0 262 104 482.5t278 335t400 114.5q125 0 222 -22.5t208 -82.5l-118 -250q-106 59 -175 78t-137 19z" />
+<glyph unicode="D" horiz-adv-x="1386" d="M1323 909q0 -280 -98 -486.5t-283.5 -314.5t-437.5 -108h-451l309 1462h396q270 0 417.5 -143t147.5 -410zM518 256q148 0 258 76t172 223.5t62 337.5q0 154 -72.5 234.5t-208.5 80.5h-115l-202 -952h106z" />
+<glyph unicode="E" horiz-adv-x="1110" d="M870 0h-817l309 1462h818l-54 -254h-512l-67 -321h477l-55 -254h-477l-80 -377h512z" />
+<glyph unicode="F" horiz-adv-x="1087" d="M358 0h-305l309 1462h814l-54 -254h-508l-79 -377h473l-56 -253h-473z" />
+<glyph unicode="G" horiz-adv-x="1413" d="M754 821h563l-162 -762q-134 -46 -248.5 -62.5t-242.5 -16.5q-259 0 -400 147t-141 422q0 268 107 484.5t301 334t448 117.5q218 0 410 -99l-115 -251q-74 40 -148 64t-161 24q-153 0 -273.5 -83t-189 -236.5t-68.5 -330.5q0 -172 72.5 -252.5t222.5 -80.5q76 0 170 24 l66 299h-267z" />
+<glyph unicode="H" horiz-adv-x="1434" d="M1135 0h-306l134 631h-471l-134 -631h-305l309 1462h306l-121 -573h471l121 573h305z" />
+<glyph unicode="I" horiz-adv-x="659" d="M53 0l312 1462h305l-312 -1462h-305z" />
+<glyph unicode="J" horiz-adv-x="678" d="M-135 -430q-94 0 -187 27v253q88 -20 164 -20q99 0 160.5 60.5t89.5 191.5l293 1380h305l-303 -1423q-52 -245 -175.5 -357t-346.5 -112z" />
+<glyph unicode="K" horiz-adv-x="1255" d="M1141 0h-338l-211 592l-125 -70l-109 -522h-305l309 1462h306l-152 -702l158 205l409 497h361l-594 -700z" />
+<glyph unicode="L" horiz-adv-x="1061" d="M53 0l309 1462h306l-256 -1206h512l-54 -256h-817z" />
+<glyph unicode="M" horiz-adv-x="1802" d="M838 369l551 1093h423l-309 -1462h-280l145 692q53 247 105 441h-5l-569 -1133h-281l-61 1133h-4q-11 -88 -38 -231t-187 -902h-275l309 1462h404l68 -1093h4z" />
+<glyph unicode="N" horiz-adv-x="1546" d="M1247 0h-342l-356 1106h-6l-4 -32q-32 -216 -66 -386l-145 -688h-275l309 1462h357l340 -1077h4q12 76 39 217t180 860h274z" />
+<glyph unicode="O" horiz-adv-x="1495" d="M1432 938q0 -283 -99 -506.5t-271 -337.5t-396 -114q-256 0 -399.5 147.5t-143.5 409.5q0 265 99 487.5t273 341.5t402 119q255 0 395 -144t140 -403zM872 1227q-121 0 -222 -91.5t-158.5 -251.5t-57.5 -347q0 -147 66.5 -222t187.5 -75t220.5 87t155.5 246t56 357 q0 142 -65 219.5t-183 77.5z" />
+<glyph unicode="P" horiz-adv-x="1188" d="M522 774h56q142 0 223.5 69t81.5 185q0 180 -195 180h-74zM1190 1036q0 -241 -169.5 -378.5t-467.5 -137.5h-86l-109 -520h-305l309 1462h338q242 0 366 -106.5t124 -319.5z" />
+<glyph unicode="Q" horiz-adv-x="1495" d="M1432 938q0 -316 -122.5 -555.5t-334.5 -337.5l254 -393h-359l-178 328h-26q-256 0 -399.5 147.5t-143.5 409.5q0 265 99 487.5t273 341.5t402 119q255 0 395 -144t140 -403zM872 1227q-121 0 -222 -91.5t-158.5 -251.5t-57.5 -347q0 -147 66.5 -222t187.5 -75t220.5 87 t155.5 246t56 357q0 142 -65 219.5t-183 77.5z" />
+<glyph unicode="R" horiz-adv-x="1247" d="M530 813h78q131 0 204 57t73 174q0 82 -47.5 123t-149.5 41h-74zM477 561l-119 -561h-305l309 1462h359q237 0 356 -102t119 -299q0 -158 -83 -271.5t-239 -168.5l261 -621h-332l-207 561h-119z" />
+<glyph unicode="S" horiz-adv-x="1085" d="M946 432q0 -209 -148 -330.5t-401 -121.5q-221 0 -356 90v274q193 -108 358 -108q112 0 175 42.5t63 116.5q0 43 -13.5 75.5t-38.5 60.5t-124 102q-138 99 -194 196t-56 209q0 129 62 230.5t176.5 158t263.5 56.5q217 0 397 -99l-109 -233q-156 74 -288 74 q-83 0 -136 -45t-53 -119q0 -61 33 -106.5t148 -120.5q121 -80 181 -176.5t60 -225.5z" />
+<glyph unicode="T" horiz-adv-x="1087" d="M571 0h-305l254 1204h-352l55 258h1010l-55 -258h-353z" />
+<glyph unicode="U" horiz-adv-x="1415" d="M1434 1462l-201 -946q-57 -266 -218 -401t-419 -135q-212 0 -333.5 113.5t-121.5 307.5q0 72 15 138l196 923h305l-194 -919q-17 -74 -17 -125q0 -178 189 -178q123 0 195 76.5t104 228.5l194 917h306z" />
+<glyph unicode="V" horiz-adv-x="1208" d="M535 299q78 221 110 283l432 880h316l-748 -1462h-334l-127 1462h295l51 -880q4 -45 4 -133q-2 -103 -6 -150h7z" />
+<glyph unicode="W" horiz-adv-x="1831" d="M1006 1018q-46 -146 -115 -299l-324 -719h-338l-45 1462h287l6 -798q0 -52 -4 -173t-10 -174h6q22 64 67 180.5t60 145.5l369 819h270l21 -873q0 -146 -9 -272h6q43 129 131 349l330 796h309l-647 -1462h-346l-22 721l-2 139q0 88 4 158h-4z" />
+<glyph unicode="X" horiz-adv-x="1241" d="M1124 0h-331l-172 543l-396 -543h-342l576 764l-238 698h320l153 -518l363 518h344l-545 -725z" />
+<glyph unicode="Y" horiz-adv-x="1155" d="M627 870l374 592h342l-618 -903l-119 -559h-303l119 559l-236 903h312z" />
+<glyph unicode="Z" horiz-adv-x="1098" d="M920 0h-981l38 201l777 1005h-543l53 256h936l-41 -202l-782 -1004h596z" />
+<glyph unicode="[" horiz-adv-x="678" d="M436 -324h-473l381 1786h473l-45 -211h-215l-291 -1364h215z" />
+<glyph unicode="\" horiz-adv-x="862" d="M481 1462l224 -1462h-267l-217 1462h260z" />
+<glyph unicode="]" horiz-adv-x="678" d="M-92 -113h213l291 1364h-215l45 211h473l-381 -1786h-471z" />
+<glyph unicode="^" horiz-adv-x="1081" d="M20 520l619 950h147l277 -950h-223l-174 633l-402 -633h-244z" />
+<glyph unicode="_" horiz-adv-x="819" d="M635 -324h-821l30 140h822z" />
+<glyph unicode="`" horiz-adv-x="1135" d="M934 1241h-184q-71 69 -138.5 153.5t-103.5 153.5v21h311q36 -148 115 -303v-25z" />
+<glyph unicode="a" horiz-adv-x="1217" d="M406 -20q-147 0 -231.5 106.5t-84.5 298.5q0 198 72 377.5t189 278t257 98.5q97 0 167.5 -42t109.5 -122h8l57 143h232l-238 -1118h-229l14 145h-4q-134 -165 -319 -165zM524 223q69 0 133 67t103 181.5t39 259.5q0 71 -38.5 117.5t-101.5 46.5q-68 0 -129.5 -72 t-98 -190t-36.5 -234q0 -88 33.5 -132t95.5 -44z" />
+<glyph unicode="b" horiz-adv-x="1219" d="M813 1139q146 0 230.5 -108t84.5 -298t-68 -367.5t-187 -281.5t-263 -104q-194 0 -276 163h-8l-58 -143h-231l330 1556h301l-62 -288q-41 -182 -84 -299h8q78 98 142.5 134t140.5 36zM692 895q-68 0 -130 -65t-102 -180.5t-40 -250.5q0 -80 37 -128t102 -48q67 0 128 69 t98.5 189.5t37.5 237.5q0 176 -131 176z" />
+<glyph unicode="c" horiz-adv-x="989" d="M506 -20q-201 0 -308.5 107.5t-107.5 303.5q0 212 74.5 385.5t209.5 268t308 94.5q182 0 328 -72l-92 -229q-54 23 -106 40t-118 17q-85 0 -153.5 -64t-107 -175.5t-38.5 -239.5q0 -96 45.5 -144.5t126.5 -48.5q76 0 141 23.5t134 58.5v-246q-152 -79 -336 -79z" />
+<glyph unicode="d" horiz-adv-x="1217" d="M406 -20q-147 0 -231.5 107t-84.5 300q0 196 71.5 374.5t188.5 278t258 99.5q82 0 141.5 -37t112.5 -127h8l2 28q6 110 25 195l76 358h301l-330 -1556h-229l14 145h-4q-71 -87 -148.5 -126t-170.5 -39zM532 223q66 0 128.5 68.5t100.5 182.5t38 245q0 80 -37.5 128 t-102.5 48q-68 0 -129.5 -72t-98 -190t-36.5 -234q0 -176 137 -176z" />
+<glyph unicode="e" horiz-adv-x="1141" d="M696 922q-88 0 -166 -80t-102 -195h45q155 0 241.5 48.5t86.5 131.5q0 95 -105 95zM532 -20q-210 0 -326 113t-116 319q0 207 82.5 377.5t223.5 260t319 89.5q177 0 276 -81.5t99 -223.5q0 -187 -167 -288.5t-477 -101.5h-51l-2 -21v-20q0 -91 51.5 -143.5t147.5 -52.5 q87 0 158 19t172 67v-227q-172 -86 -390 -86z" />
+<glyph unicode="f" horiz-adv-x="764" d="M-45 -492q-104 0 -174 25v242q61 -21 115 -21q61 0 107 40t65 130l204 965h-163l30 145l183 84l18 84q41 190 138.5 277.5t273.5 87.5q131 0 235 -49l-80 -224q-69 31 -133 31q-57 0 -92 -40t-47 -105l-12 -62h219l-49 -229h-220l-215 -1010q-77 -371 -403 -371z" />
+<glyph unicode="g" horiz-adv-x="1108" d="M1186 1116l-35 -166l-174 -41q16 -52 16 -118q0 -195 -121 -308.5t-329 -113.5q-59 0 -99 10q-84 -27 -84 -78q0 -34 30 -49t89 -23l137 -18q163 -21 237.5 -84.5t74.5 -183.5q0 -211 -156 -323t-446 -112q-208 0 -324.5 75.5t-116.5 207.5q0 102 68.5 175.5t214.5 121.5 q-74 47 -74 133q0 71 44.5 122.5t146.5 98.5q-65 49 -96 112t-31 153q0 199 125.5 315.5t341.5 116.5q83 0 166 -23h395zM365 -6q-106 -14 -160.5 -57t-54.5 -109q0 -115 194 -115q151 0 228 45t77 127q0 39 -32.5 60t-137.5 35zM614 948q-77 0 -124.5 -76.5t-47.5 -191.5 q0 -119 103 -119q75 0 121.5 76.5t46.5 193.5t-99 117z" />
+<glyph unicode="h" horiz-adv-x="1237" d="M977 0h-301l137 653q16 68 16 119q0 123 -108 123q-92 0 -167 -114t-118 -318l-98 -463h-301l330 1556h301q-39 -181 -60 -278t-86 -309h8q62 77 138 123.5t176 46.5q138 0 213.5 -83.5t75.5 -238.5q0 -73 -23 -180z" />
+<glyph unicode="i" horiz-adv-x="608" d="M322 1380q0 87 47.5 131.5t134.5 44.5q73 0 111 -31t38 -89q0 -80 -44 -129.5t-136 -49.5q-151 0 -151 123zM338 0h-301l237 1118h301z" />
+<glyph unicode="j" horiz-adv-x="608" d="M-90 -492q-104 0 -174 25v242q61 -21 114 -21q137 0 173 170l253 1194h302l-265 -1239q-77 -371 -403 -371zM324 1380q0 87 47.5 131.5t134.5 44.5q73 0 111 -31t38 -89q0 -80 -44 -129.5t-136 -49.5q-151 0 -151 123z" />
+<glyph unicode="k" horiz-adv-x="1163" d="M920 1118h344l-498 -504l285 -614h-336l-183 420l-120 -72l-74 -348h-301l330 1556h301l-148 -694q-8 -41 -29 -117l-28 -102h4z" />
+<glyph unicode="l" horiz-adv-x="608" d="M338 0h-301l330 1556h301z" />
+<glyph unicode="m" horiz-adv-x="1853" d="M844 1139q219 0 262 -228h6q68 110 160.5 169t197.5 59q136 0 207.5 -85t71.5 -237q0 -76 -23 -180l-133 -637h-301l138 653q16 68 16 119q0 123 -98 123q-92 0 -166.5 -112t-118.5 -318l-96 -465h-301l137 653q16 68 16 119q0 123 -98 123q-92 0 -167 -114t-118 -318 l-98 -463h-301l237 1118h230l-21 -207h6q146 228 355 228z" />
+<glyph unicode="n" horiz-adv-x="1237" d="M977 0h-301l137 653q16 68 16 119q0 123 -108 123q-92 0 -167 -114t-118 -318l-98 -463h-301l237 1118h230l-21 -207h6q146 228 355 228q138 0 213.5 -83.5t75.5 -238.5q0 -73 -23 -180z" />
+<glyph unicode="o" horiz-adv-x="1198" d="M805 696q0 197 -143 197q-75 0 -134.5 -61t-97 -179t-37.5 -243q0 -185 150 -185q75 0 135 61.5t93.5 171t33.5 238.5zM1108 696q0 -211 -70.5 -374t-203.5 -252.5t-316 -89.5q-195 0 -311.5 117.5t-116.5 312.5q0 213 71.5 379.5t206.5 258t316 91.5q196 0 310 -118 t114 -325z" />
+<glyph unicode="p" horiz-adv-x="1219" d="M813 1139q146 0 230.5 -107.5t84.5 -300.5q0 -191 -68.5 -367.5t-187.5 -280t-262 -103.5q-83 0 -143 37t-111 126h-8q-12 -159 -43 -295l-72 -340h-301l342 1610h230l-17 -170h9q138 191 317 191zM692 895q-68 0 -131.5 -67.5t-102 -180t-38.5 -248.5q0 -80 37 -128 t102 -48q67 0 128 69t98.5 189.5t37.5 237.5q0 176 -131 176z" />
+<glyph unicode="q" horiz-adv-x="1217" d="M391 -20q-88 0 -156 47.5t-106.5 138.5t-38.5 219q0 198 72 377.5t189 278t257 98.5q86 0 152.5 -37.5t124.5 -126.5h8l57 143h232l-342 -1610h-301q47 218 73 337.5t84 304.5h-8q-72 -94 -143 -132t-154 -38zM535 223q64 0 127.5 70t100 181t36.5 245q0 80 -37.5 128 t-102.5 48q-68 0 -129.5 -72t-98 -190t-36.5 -234q0 -88 36.5 -132t103.5 -44z" />
+<glyph unicode="r" horiz-adv-x="862" d="M842 1139q59 0 96 -11l-66 -290q-45 16 -100 16q-116 0 -203.5 -91.5t-124.5 -262.5l-106 -500h-301l237 1118h230l-21 -207h6q147 228 353 228z" />
+<glyph unicode="s" horiz-adv-x="969" d="M829 369q0 -188 -124.5 -288.5t-346.5 -100.5q-107 0 -186.5 15t-148.5 50v248q157 -90 319 -90q80 0 131 32.5t51 88.5q0 43 -37 77t-131 86q-121 68 -169 135.5t-48 159.5q0 170 110.5 263.5t315.5 93.5q201 0 363 -95l-99 -215q-140 84 -258 84q-57 0 -92 -25.5 t-35 -68.5q0 -39 32 -68.5t120 -74.5q123 -63 178 -137t55 -170z" />
+<glyph unicode="t" horiz-adv-x="840" d="M514 223q65 0 162 35v-225q-111 -53 -266 -53q-150 0 -220.5 63t-70.5 195q0 50 12 112l115 539h-152l29 147l196 84l132 236h194l-49 -238h283l-50 -229h-282l-115 -539q-6 -30 -6 -53q0 -74 88 -74z" />
+<glyph unicode="u" horiz-adv-x="1237" d="M262 1118h301l-137 -653q-16 -68 -16 -119q0 -123 108 -123q92 0 167 114t118 318l98 463h301l-237 -1118h-230l21 207h-6q-145 -227 -355 -227q-138 0 -211 82.5t-73 238.5q0 93 24 213z" />
+<glyph unicode="v" horiz-adv-x="1049" d="M455 301q55 153 92 223l297 594h323l-604 -1118h-323l-138 1118h295l45 -586q7 -133 7 -231h6z" />
+<glyph unicode="w" horiz-adv-x="1614" d="M856 860q-62 -178 -123 -319l-233 -541h-324l-51 1118h281l4 -495l-4 -167l-7 -171h4q6 20 14 41.5t51 136.5t46 119l231 536h328v-536q0 -142 -10 -297h6l28 80q73 208 95 258l219 495h307l-530 -1118h-330l-6 520q0 155 10 340h-6z" />
+<glyph unicode="x" horiz-adv-x="1087" d="M379 573l-225 545h321l115 -334l244 334h354l-467 -561l244 -557h-326l-125 342l-264 -342h-350z" />
+<glyph unicode="y" horiz-adv-x="1063" d="M102 1118h295l56 -518q14 -122 14 -293h6q20 51 44 119.5t65 153.5l260 538h327l-680 -1278q-177 -332 -483 -332q-90 0 -147 19v240q68 -13 116 -13q84 0 147.5 48t117.5 149l26 49z" />
+<glyph unicode="z" horiz-adv-x="932" d="M748 0h-795l35 180l575 705h-397l51 233h750l-43 -200l-566 -685h439z" />
+<glyph unicode="{" horiz-adv-x="727" d="M201 319q0 140 -209 140l45 229q122 0 192.5 41.5t92.5 138.5l61 285q38 170 131 239.5t270 69.5h84l-49 -225q-90 -2 -130.5 -34.5t-55.5 -106.5l-66 -297q-45 -207 -276 -236v-8q85 -26 126.5 -82.5t41.5 -134.5q0 -44 -15 -113l-36 -178q-7 -28 -7 -51q0 -54 33.5 -74 t91.5 -20v-226h-53q-167 0 -253.5 63.5t-86.5 184.5q0 57 14 125l39 184q15 69 15 86z" />
+<glyph unicode="|" d="M455 1550h219v-2015h-219v2015z" />
+<glyph unicode="}" horiz-adv-x="727" d="M256 1462q340 0 340 -248q0 -56 -14 -124l-39 -185q-15 -69 -15 -86q0 -139 209 -139l-45 -229q-122 0 -192.5 -42t-91.5 -139l-62 -284q-37 -170 -130.5 -240t-270.5 -70h-45v226q93 3 137 35.5t59 105.5l66 297q25 111 95 166t181 69v9q-168 51 -168 217q0 43 15 112 l37 179q6 30 6 51q0 54 -36.5 74t-109.5 20l41 225h33z" />
+<glyph unicode="~" d="M342 672q-54 0 -116.5 -33t-116.5 -88v231q101 109 256 109q64 0 117 -14t139 -50q64 -27 111 -41t95 -14q51 0 112 30.5t122 90.5v-231q-103 -109 -256 -109q-59 0 -109 11.5t-147 51.5q-89 38 -127 47t-80 9z" />
+<glyph unicode="&#xa1;" horiz-adv-x="586" d="M182 606h242l-158 -977h-340zM549 977q0 -92 -55.5 -145.5t-149.5 -53.5q-68 0 -108.5 38t-40.5 108q0 85 54 139.5t144 54.5q73 0 114.5 -37t41.5 -104z" />
+<glyph unicode="&#xa2;" d="M575 -20h-188l49 210q-134 36 -203 136t-69 258q0 193 62.5 355t178 262.5t267.5 123.5l33 158h188l-35 -158q118 -14 225 -65l-92 -230q-53 23 -105 40t-118 17q-133 0 -216 -143t-83 -336q0 -96 45 -144t127 -48q75 0 140 23.5t134 58.5v-246q-136 -71 -299 -80z" />
+<glyph unicode="&#xa3;" d="M872 1485q195 0 369 -86l-113 -232q-141 68 -237 68q-75 0 -123 -39.5t-68 -132.5l-47 -229h299l-45 -220h-299l-18 -84q-42 -195 -209 -270h655l-55 -260h-993l49 246q196 48 244 264l22 104h-192l45 220h192l49 247q41 197 162 300.5t313 103.5z" />
+<glyph unicode="&#xa4;" d="M190 723q0 102 54 197l-129 127l147 147l127 -127q91 53 197 53q105 0 196 -55l127 129l150 -143l-129 -129q53 -89 53 -199q0 -107 -53 -199l125 -125l-146 -145l-127 125q-95 -51 -196 -51q-115 0 -199 51l-125 -123l-145 145l127 125q-54 93 -54 197zM397 723 q0 -77 54.5 -132.5t134.5 -55.5q81 0 136.5 55t55.5 133q0 80 -56.5 135t-135.5 55q-78 0 -133.5 -56t-55.5 -134z" />
+<glyph unicode="&#xa5;" d="M608 872l371 590h311l-506 -747h203l-39 -178h-252l-28 -138h252l-37 -178h-252l-47 -221h-291l47 221h-252l37 178h252l29 138h-252l39 178h196l-192 747h297z" />
+<glyph unicode="&#xa6;" d="M455 1550h219v-815h-219v815zM455 350h219v-815h-219v815z" />
+<glyph unicode="&#xa7;" horiz-adv-x="995" d="M150 760q0 89 47.5 163t154.5 142q-42 34 -70 84.5t-28 107.5q0 149 117 234.5t313 85.5q172 0 344 -88l-82 -193q-147 84 -282 84q-144 0 -144 -106q0 -43 40.5 -76t127.5 -72q242 -106 242 -303q0 -188 -193 -303q38 -35 64 -85.5t26 -108.5q0 -161 -126 -253.5 t-345 -92.5q-204 0 -336 75v224q172 -105 345 -105q99 0 144.5 35t45.5 92q0 39 -33 72.5t-127 79.5q-117 57 -181 131t-64 176zM506 967q-51 -25 -82 -70.5t-31 -99.5t43.5 -96.5t143.5 -88.5q49 31 75.5 78.5t26.5 95.5q0 109 -176 181z" />
+<glyph unicode="&#xa8;" horiz-adv-x="1135" d="M397 1382q0 78 42.5 118t119.5 40q133 0 133 -108q0 -73 -39 -116.5t-121 -43.5q-135 0 -135 110zM799 1382q0 78 42 118t120 40q65 0 99 -28t34 -80q0 -73 -39.5 -116.5t-120.5 -43.5q-135 0 -135 110z" />
+<glyph unicode="&#xa9;" horiz-adv-x="1704" d="M932 1010q-111 0 -163 -73t-52 -214q0 -134 55.5 -203t159.5 -69q43 0 108.5 15.5t124.5 43.5v-191q-131 -57 -262 -57q-196 0 -307 122.5t-111 336.5q0 225 117.5 351t325.5 126q142 0 284 -72l-75 -174q-114 58 -205 58zM125 731q0 200 100 375t275 276t377 101 q199 0 373.5 -99t276 -275.5t101.5 -377.5q0 -199 -98.5 -373t-272.5 -276t-380 -102q-207 0 -382 103.5t-272.5 276.5t-97.5 371zM266 731q0 -164 81.5 -305t224 -223t305.5 -82q167 0 308 83t221.5 223.5t80.5 303.5t-80.5 303.5t-222 223.5t-307.5 83 q-164 0 -306.5 -82.5t-223.5 -223.5t-81 -304z" />
+<glyph unicode="&#xaa;" horiz-adv-x="772" d="M369 752q-103 0 -160 70t-57 198q0 117 46 228t123 171t177 60q120 0 180 -103h6l39 90h154l-158 -702h-154l8 92h-2q-80 -104 -202 -104zM442 903q45 0 84 41.5t65.5 120t26.5 154.5q0 106 -88 106q-73 0 -123.5 -96t-50.5 -215q0 -111 86 -111z" />
+<glyph unicode="&#xab;" horiz-adv-x="1151" d="M72 569l401 463l191 -155l-279 -334l135 -350l-246 -103l-202 461v18zM559 569l402 463l190 -155l-279 -334l136 -350l-246 -103l-203 461v18z" />
+<glyph unicode="&#xac;" d="M1061 248h-219v364h-733v219h952v-583z" />
+<glyph unicode="&#xad;" horiz-adv-x="659" d="M41 424zM41 424l53 250h524l-53 -250h-524z" />
+<glyph unicode="&#xae;" horiz-adv-x="1704" d="M1237 899q0 -86 -44 -149.5t-130 -96.5l197 -360h-254l-138 297h-67v-297h-230v874h308q173 0 265.5 -67.5t92.5 -200.5zM801 758h51q72 0 113 31t41 92q0 59 -35.5 88.5t-116.5 29.5h-53v-241zM125 731q0 200 100 375t275 276t377 101q199 0 373.5 -99t276 -275.5 t101.5 -377.5q0 -199 -98.5 -373t-272.5 -276t-380 -102q-207 0 -382 103.5t-272.5 276.5t-97.5 371zM266 731q0 -164 81.5 -305t224 -223t305.5 -82q167 0 308 83t221.5 223.5t80.5 303.5t-80.5 303.5t-222 223.5t-307.5 83q-164 0 -306.5 -82.5t-223.5 -223.5t-81 -304z " />
+<glyph unicode="&#xaf;" horiz-adv-x="1024" d="M1030 1556h-1036l45 201h1036z" />
+<glyph unicode="&#xb0;" horiz-adv-x="877" d="M164 1137q0 93 46.5 173.5t127.5 126.5t172 46q93 0 173.5 -47t126.5 -127t46 -172q0 -93 -46 -173t-126 -125.5t-174 -45.5q-93 0 -173 45t-126.5 125t-46.5 174zM354 1137q0 -63 45.5 -108.5t110.5 -45.5q66 0 111 46t45 108q0 63 -45.5 110t-110.5 47t-110.5 -47.5 t-45.5 -109.5z" />
+<glyph unicode="&#xb1;" d="M475 674h-366v219h366v369h219v-369h367v-219h-367v-365h-219v365zM109 0v219h952v-219h-952z" />
+<glyph unicode="&#xb2;" horiz-adv-x="776" d="M707 586h-648l35 166l273 219q111 91 141 122t44.5 59t14.5 56q0 42 -25.5 62t-60.5 20q-86 0 -188 -82l-100 158q74 57 156 87t192 30q123 0 196.5 -63t73.5 -160q0 -70 -22 -123t-70 -103.5t-189 -152.5l-129 -95h347z" />
+<glyph unicode="&#xb3;" horiz-adv-x="776" d="M813 1270q0 -87 -51 -145.5t-166 -88.5v-4q154 -33 154 -176q0 -131 -107 -209t-285 -78q-75 0 -145.5 15.5t-120.5 40.5v192q125 -72 254 -72q76 0 125 30.5t49 88.5q0 37 -26 62.5t-88 25.5h-127l34 160h90q84 0 132.5 28t48.5 85q0 40 -26 60t-71 20q-86 0 -188 -66 l-82 150q142 92 313 92q130 0 206.5 -55.5t76.5 -155.5z" />
+<glyph unicode="&#xb4;" horiz-adv-x="1135" d="M483 1266q79 88 222 303h335v-17q-46 -56 -154 -152.5t-194 -158.5h-209v25z" />
+<glyph unicode="&#xb5;" horiz-adv-x="1249" d="M424 348q0 -60 31.5 -92.5t79.5 -32.5q90 0 162.5 106.5t117.5 319.5l98 469h301l-237 -1118h-229l18 176h-6q-117 -196 -266 -196q-51 0 -89.5 19.5t-58.5 47.5h-6q-8 -66 -21.5 -139t-82.5 -400h-304l342 1610h301l-135 -645q-16 -70 -16 -125z" />
+<glyph unicode="&#xb6;" horiz-adv-x="1341" d="M1202 -260h-162v1616h-166v-1616h-161v819q-62 -18 -146 -18q-216 0 -318 125t-102 376q0 256 107.5 385t343.5 129h604v-1816z" />
+<glyph unicode="&#xb7;" horiz-adv-x="584" d="M131 553zM131 695q0 90 53.5 144t150.5 54q68 0 109 -38t41 -107q0 -87 -55 -141t-144 -54q-73 0 -114 37.5t-41 104.5z" />
+<glyph unicode="&#xb8;" horiz-adv-x="420" d="M262 -250q0 -116 -83 -179t-234 -63q-86 0 -152 23v168q63 -23 125 -23q102 0 102 82q0 34 -31 56.5t-110 31.5l96 154h185l-39 -72q141 -49 141 -178z" />
+<glyph unicode="&#xb9;" horiz-adv-x="776" d="M528 1462h207l-186 -876h-246l84 397q24 109 55 207q-16 -15 -80 -60l-131 -81l-102 165z" />
+<glyph unicode="&#xba;" horiz-adv-x="754" d="M809 1194q0 -128 -48.5 -232.5t-132.5 -157t-196 -52.5q-134 0 -202 75t-68 211q0 197 104 319t277 122q129 0 197.5 -73.5t68.5 -211.5zM522 1315q-64 0 -107.5 -89.5t-43.5 -199.5q0 -111 80 -111q63 0 105 85.5t42 207.5q0 107 -76 107z" />
+<glyph unicode="&#xbb;" horiz-adv-x="1151" d="M1079 535l-401 -463l-191 155l279 334l-135 350l246 103l202 -461v-18zM592 535l-402 -463l-190 155l279 334l-136 350l246 103l203 -461v-18z" />
+<glyph unicode="&#xbc;" horiz-adv-x="1804" d="M97 0zM1500 1462l-1084 -1462h-239l1087 1462h236zM496 1462h207l-186 -876h-246l84 397q24 109 55 207q-16 -15 -80 -60l-131 -81l-102 165zM1573 152h-119l-32 -151h-238l33 151h-373l31 174l475 557h260l-121 -563h119zM1252 320l58 231l22 74q-13 -20 -43 -58 t-211 -247h174z" />
+<glyph unicode="&#xbd;" horiz-adv-x="1804" d="M97 0zM1588 1h-648l35 166l273 219q111 91 141 122t44.5 59t14.5 56q0 42 -25.5 62t-60.5 20q-86 0 -188 -82l-100 158q74 57 156 87t192 30q123 0 196.5 -63t73.5 -160q0 -70 -22 -123t-70 -103.5t-189 -152.5l-129 -95h347zM496 1462h207l-186 -876h-246l84 397 q24 109 55 207q-16 -15 -80 -60l-131 -81l-102 165zM1500 1462l-1084 -1462h-239l1087 1462h236z" />
+<glyph unicode="&#xbe;" horiz-adv-x="1804" d="M133 0zM1633 1462l-1084 -1462h-239l1087 1462h236zM1634 152h-119l-32 -151h-238l33 151h-373l31 174l475 557h260l-121 -563h119zM1313 320l58 231l22 74q-13 -20 -43 -58t-211 -247h174zM854 1270q0 -87 -51 -145.5t-166 -88.5v-4q154 -33 154 -176q0 -131 -107 -209 t-285 -78q-75 0 -145.5 15.5t-120.5 40.5v192q125 -72 254 -72q76 0 125 30.5t49 88.5q0 37 -26 62.5t-88 25.5h-127l34 160h90q84 0 132.5 28t48.5 85q0 40 -26 60t-71 20q-86 0 -188 -66l-82 150q142 92 313 92q130 0 206.5 -55.5t76.5 -155.5z" />
+<glyph unicode="&#xbf;" horiz-adv-x="940" d="M678 606l-14 -78q-19 -105 -76.5 -180t-169.5 -151q-122 -83 -156.5 -126t-34.5 -98q0 -118 133 -118q50 0 106.5 16t201.5 84l92 -221q-221 -125 -445 -125q-177 0 -280 87.5t-103 244.5q0 82 28.5 148.5t83.5 124t189 146.5q93 62 128 106.5t51 106.5l8 33h258z M772 977q0 -92 -55.5 -145.5t-149.5 -53.5q-68 0 -108.5 38t-40.5 108q0 86 54.5 140t143.5 54q73 0 114.5 -37t41.5 -104z" />
+<glyph unicode="&#xc0;" horiz-adv-x="1286" d="M0 0zM842 348h-473l-172 -348h-320l766 1468h373l147 -1468h-297zM827 608l-26 350q-10 131 -10 253v36q-44 -120 -109 -254l-188 -385h333zM965 1579h-184q-71 69 -138.5 153.5t-103.5 153.5v21h311q36 -148 115 -303v-25z" />
+<glyph unicode="&#xc1;" horiz-adv-x="1286" d="M0 0zM842 348h-473l-172 -348h-320l766 1468h373l147 -1468h-297zM827 608l-26 350q-10 131 -10 253v36q-44 -120 -109 -254l-188 -385h333zM735 1604q79 88 222 303h335v-17q-46 -56 -154 -152.5t-194 -158.5h-209v25z" />
+<glyph unicode="&#xc2;" horiz-adv-x="1286" d="M0 0zM842 348h-473l-172 -348h-320l766 1468h373l147 -1468h-297zM827 608l-26 350q-10 131 -10 253v36q-44 -120 -109 -254l-188 -385h333zM1235 1579h-198q-63 53 -162 168q-105 -88 -232 -168h-217v25q63 57 153 147t142 156h338q22 -54 74 -142.5t102 -160.5v-25z " />
+<glyph unicode="&#xc3;" horiz-adv-x="1286" d="M0 0zM842 348h-473l-172 -348h-320l766 1468h373l147 -1468h-297zM827 608l-26 350q-10 131 -10 253v36q-44 -120 -109 -254l-188 -385h333zM999 1579q-49 0 -86.5 16.5t-69.5 36t-61.5 36t-62.5 16.5q-31 0 -55.5 -28t-38.5 -79h-177q59 309 281 309q49 0 87.5 -16.5 t71.5 -36t62 -35.5t60 -16q34 0 58 25.5t46 80.5h172q-66 -309 -287 -309z" />
+<glyph unicode="&#xc4;" horiz-adv-x="1286" d="M0 0zM842 348h-473l-172 -348h-320l766 1468h373l147 -1468h-297zM827 608l-26 350q-10 131 -10 253v36q-44 -120 -109 -254l-188 -385h333zM516 1720q0 78 42.5 118t119.5 40q133 0 133 -108q0 -73 -39 -116.5t-121 -43.5q-135 0 -135 110zM918 1720q0 78 42 118t120 40 q65 0 99 -28t34 -80q0 -73 -39.5 -116.5t-120.5 -43.5q-135 0 -135 110z" />
+<glyph unicode="&#xc5;" horiz-adv-x="1286" d="M0 0zM842 348h-473l-172 -348h-320l766 1468h373l147 -1468h-297zM827 608l-26 350q-10 131 -10 253v36q-44 -120 -109 -254l-188 -385h333zM1087 1567q0 -107 -70 -173.5t-184 -66.5q-110 0 -179 63.5t-69 174.5q0 109 68.5 173t179.5 64q110 0 182 -65t72 -170z M930 1565q0 45 -27.5 70.5t-69.5 25.5t-69 -25.5t-27 -70.5t24 -71t72 -26q42 0 69.5 26t27.5 71z" />
+<glyph unicode="&#xc6;" horiz-adv-x="1833" d="M1593 0h-817l74 348h-426l-219 -348h-328l922 1462h1104l-54 -254h-512l-67 -321h477l-55 -254h-478l-79 -377h512zM905 608l127 600h-80l-364 -600h317z" />
+<glyph unicode="&#xc7;" horiz-adv-x="1253" d="M123 0zM905 1227q-132 0 -237.5 -81t-169.5 -238.5t-64 -338.5q0 -167 68.5 -248t218.5 -81q146 0 338 77v-260q-199 -77 -400 -77q-254 0 -395 149.5t-141 423.5q0 262 104 482.5t278 335t400 114.5q125 0 222 -22.5t208 -82.5l-118 -250q-106 59 -175 78t-137 19z M825 -250q0 -116 -83 -179t-234 -63q-86 0 -152 23v168q63 -23 125 -23q102 0 102 82q0 34 -31 56.5t-110 31.5l96 154h185l-39 -72q141 -49 141 -178z" />
+<glyph unicode="&#xc8;" horiz-adv-x="1110" d="M53 0zM870 0h-817l309 1462h818l-54 -254h-512l-67 -321h477l-55 -254h-477l-80 -377h512zM906 1579h-184q-71 69 -138.5 153.5t-103.5 153.5v21h311q36 -148 115 -303v-25z" />
+<glyph unicode="&#xc9;" horiz-adv-x="1110" d="M53 0zM870 0h-817l309 1462h818l-54 -254h-512l-67 -321h477l-55 -254h-477l-80 -377h512zM608 1604q79 88 222 303h335v-17q-46 -56 -154 -152.5t-194 -158.5h-209v25z" />
+<glyph unicode="&#xca;" horiz-adv-x="1110" d="M53 0zM870 0h-817l309 1462h818l-54 -254h-512l-67 -321h477l-55 -254h-477l-80 -377h512zM1177 1579h-198q-63 53 -162 168q-105 -88 -232 -168h-217v25q63 57 153 147t142 156h338q22 -54 74 -142.5t102 -160.5v-25z" />
+<glyph unicode="&#xcb;" horiz-adv-x="1110" d="M53 0zM870 0h-817l309 1462h818l-54 -254h-512l-67 -321h477l-55 -254h-477l-80 -377h512zM438 1720q0 78 42.5 118t119.5 40q133 0 133 -108q0 -73 -39 -116.5t-121 -43.5q-135 0 -135 110zM840 1720q0 78 42 118t120 40q65 0 99 -28t34 -80q0 -73 -39.5 -116.5 t-120.5 -43.5q-135 0 -135 110z" />
+<glyph unicode="&#xcc;" horiz-adv-x="659" d="M53 0zM53 0l312 1462h305l-312 -1462h-305zM667 1579h-184q-71 69 -138.5 153.5t-103.5 153.5v21h311q36 -148 115 -303v-25z" />
+<glyph unicode="&#xcd;" horiz-adv-x="659" d="M53 0zM53 0l312 1462h305l-312 -1462h-305zM414 1604q79 88 222 303h335v-17q-46 -56 -154 -152.5t-194 -158.5h-209v25z" />
+<glyph unicode="&#xce;" horiz-adv-x="659" d="M53 0zM53 0l312 1462h305l-312 -1462h-305zM937 1579h-198q-63 53 -162 168q-105 -88 -232 -168h-217v25q63 57 153 147t142 156h338q22 -54 74 -142.5t102 -160.5v-25z" />
+<glyph unicode="&#xcf;" horiz-adv-x="659" d="M53 0zM53 0l312 1462h305l-312 -1462h-305zM222 1720q0 78 42.5 118t119.5 40q133 0 133 -108q0 -73 -39 -116.5t-121 -43.5q-135 0 -135 110zM624 1720q0 78 42 118t120 40q65 0 99 -28t34 -80q0 -73 -39.5 -116.5t-120.5 -43.5q-135 0 -135 110z" />
+<glyph unicode="&#xd0;" horiz-adv-x="1386" d="M1323 909q0 -280 -98 -486.5t-283.5 -314.5t-437.5 -108h-451l125 596h-141l55 254h139l131 612h396q270 0 417.5 -143t147.5 -410zM518 256q148 0 258 76t172 223.5t62 337.5q0 154 -72.5 234.5t-208.5 80.5h-115l-75 -358h237l-55 -254h-238l-71 -340h106z" />
+<glyph unicode="&#xd1;" horiz-adv-x="1546" d="M53 0zM1247 0h-342l-356 1106h-6l-4 -32q-32 -216 -66 -386l-145 -688h-275l309 1462h357l340 -1077h4q12 76 39 217t180 860h274zM1114 1579q-49 0 -86.5 16.5t-69.5 36t-61.5 36t-62.5 16.5q-31 0 -55.5 -28t-38.5 -79h-177q59 309 281 309q49 0 87.5 -16.5t71.5 -36 t62 -35.5t60 -16q34 0 58 25.5t46 80.5h172q-66 -309 -287 -309z" />
+<glyph unicode="&#xd2;" horiz-adv-x="1495" d="M123 0zM1432 938q0 -283 -99 -506.5t-271 -337.5t-396 -114q-256 0 -399.5 147.5t-143.5 409.5q0 265 99 487.5t273 341.5t402 119q255 0 395 -144t140 -403zM872 1227q-121 0 -222 -91.5t-158.5 -251.5t-57.5 -347q0 -147 66.5 -222t187.5 -75t220.5 87t155.5 246 t56 357q0 142 -65 219.5t-183 77.5zM1053 1579h-184q-71 69 -138.5 153.5t-103.5 153.5v21h311q36 -148 115 -303v-25z" />
+<glyph unicode="&#xd3;" horiz-adv-x="1495" d="M123 0zM1432 938q0 -283 -99 -506.5t-271 -337.5t-396 -114q-256 0 -399.5 147.5t-143.5 409.5q0 265 99 487.5t273 341.5t402 119q255 0 395 -144t140 -403zM872 1227q-121 0 -222 -91.5t-158.5 -251.5t-57.5 -347q0 -147 66.5 -222t187.5 -75t220.5 87t155.5 246 t56 357q0 142 -65 219.5t-183 77.5zM753 1604q79 88 222 303h335v-17q-46 -56 -154 -152.5t-194 -158.5h-209v25z" />
+<glyph unicode="&#xd4;" horiz-adv-x="1495" d="M123 0zM1432 938q0 -283 -99 -506.5t-271 -337.5t-396 -114q-256 0 -399.5 147.5t-143.5 409.5q0 265 99 487.5t273 341.5t402 119q255 0 395 -144t140 -403zM872 1227q-121 0 -222 -91.5t-158.5 -251.5t-57.5 -347q0 -147 66.5 -222t187.5 -75t220.5 87t155.5 246 t56 357q0 142 -65 219.5t-183 77.5zM1308 1579h-198q-63 53 -162 168q-105 -88 -232 -168h-217v25q63 57 153 147t142 156h338q22 -54 74 -142.5t102 -160.5v-25z" />
+<glyph unicode="&#xd5;" horiz-adv-x="1495" d="M123 0zM1432 938q0 -283 -99 -506.5t-271 -337.5t-396 -114q-256 0 -399.5 147.5t-143.5 409.5q0 265 99 487.5t273 341.5t402 119q255 0 395 -144t140 -403zM872 1227q-121 0 -222 -91.5t-158.5 -251.5t-57.5 -347q0 -147 66.5 -222t187.5 -75t220.5 87t155.5 246 t56 357q0 142 -65 219.5t-183 77.5zM1071 1579q-49 0 -86.5 16.5t-69.5 36t-61.5 36t-62.5 16.5q-31 0 -55.5 -28t-38.5 -79h-177q59 309 281 309q49 0 87.5 -16.5t71.5 -36t62 -35.5t60 -16q34 0 58 25.5t46 80.5h172q-66 -309 -287 -309z" />
+<glyph unicode="&#xd6;" horiz-adv-x="1495" d="M123 0zM1432 938q0 -283 -99 -506.5t-271 -337.5t-396 -114q-256 0 -399.5 147.5t-143.5 409.5q0 265 99 487.5t273 341.5t402 119q255 0 395 -144t140 -403zM872 1227q-121 0 -222 -91.5t-158.5 -251.5t-57.5 -347q0 -147 66.5 -222t187.5 -75t220.5 87t155.5 246 t56 357q0 142 -65 219.5t-183 77.5zM585 1720q0 78 42.5 118t119.5 40q133 0 133 -108q0 -73 -39 -116.5t-121 -43.5q-135 0 -135 110zM987 1720q0 78 42 118t120 40q65 0 99 -28t34 -80q0 -73 -39.5 -116.5t-120.5 -43.5q-135 0 -135 110z" />
+<glyph unicode="&#xd7;" d="M428 723l-299 301l152 154l301 -299l305 299l153 -150l-305 -305l301 -303l-149 -152l-305 301l-301 -299l-150 152z" />
+<glyph unicode="&#xd8;" horiz-adv-x="1495" d="M1432 938q0 -283 -99 -506.5t-271 -337.5t-396 -114q-180 0 -304 71l-108 -137l-154 115l121 151q-98 138 -98 357q0 265 99 487.5t273 341.5t402 119q182 0 305 -76l105 131l151 -117l-117 -145q91 -134 91 -340zM870 1233q-126 0 -229 -91.5t-160 -252.5t-57 -352 q0 -32 8 -101l596 754q-69 43 -158 43zM1133 930l-5 80l-589 -740q59 -37 153 -37q124 0 226 89t158.5 247.5t56.5 360.5z" />
+<glyph unicode="&#xd9;" horiz-adv-x="1415" d="M141 0zM1434 1462l-201 -946q-57 -266 -218 -401t-419 -135q-212 0 -333.5 113.5t-121.5 307.5q0 72 15 138l196 923h305l-194 -919q-17 -74 -17 -125q0 -178 189 -178q123 0 195 76.5t104 228.5l194 917h306zM1002 1579h-184q-71 69 -138.5 153.5t-103.5 153.5v21h311 q36 -148 115 -303v-25z" />
+<glyph unicode="&#xda;" horiz-adv-x="1415" d="M141 0zM1434 1462l-201 -946q-57 -266 -218 -401t-419 -135q-212 0 -333.5 113.5t-121.5 307.5q0 72 15 138l196 923h305l-194 -919q-17 -74 -17 -125q0 -178 189 -178q123 0 195 76.5t104 228.5l194 917h306zM757 1604q79 88 222 303h335v-17q-46 -56 -154 -152.5 t-194 -158.5h-209v25z" />
+<glyph unicode="&#xdb;" horiz-adv-x="1415" d="M141 0zM1434 1462l-201 -946q-57 -266 -218 -401t-419 -135q-212 0 -333.5 113.5t-121.5 307.5q0 72 15 138l196 923h305l-194 -919q-17 -74 -17 -125q0 -178 189 -178q123 0 195 76.5t104 228.5l194 917h306zM1284 1579h-198q-63 53 -162 168q-105 -88 -232 -168h-217 v25q63 57 153 147t142 156h338q22 -54 74 -142.5t102 -160.5v-25z" />
+<glyph unicode="&#xdc;" horiz-adv-x="1415" d="M141 0zM1434 1462l-201 -946q-57 -266 -218 -401t-419 -135q-212 0 -333.5 113.5t-121.5 307.5q0 72 15 138l196 923h305l-194 -919q-17 -74 -17 -125q0 -178 189 -178q123 0 195 76.5t104 228.5l194 917h306zM565 1720q0 78 42.5 118t119.5 40q133 0 133 -108 q0 -73 -39 -116.5t-121 -43.5q-135 0 -135 110zM967 1720q0 78 42 118t120 40q65 0 99 -28t34 -80q0 -73 -39.5 -116.5t-120.5 -43.5q-135 0 -135 110z" />
+<glyph unicode="&#xdd;" horiz-adv-x="1155" d="M186 0zM627 870l374 592h342l-618 -903l-119 -559h-303l119 559l-236 903h312zM606 1604q79 88 222 303h335v-17q-46 -56 -154 -152.5t-194 -158.5h-209v25z" />
+<glyph unicode="&#xde;" horiz-adv-x="1188" d="M1143 807q0 -243 -170.5 -378.5t-466.5 -135.5h-86l-62 -293h-305l309 1462h306l-50 -229h35q242 0 366 -106.5t124 -319.5zM475 547h55q139 0 222.5 66.5t83.5 185.5q0 180 -195 180h-74z" />
+<glyph unicode="&#xdf;" horiz-adv-x="1350" d="M846 1567q208 0 331 -90t123 -240q0 -114 -49 -192t-178 -152q-73 -42 -96 -68.5t-23 -54.5q0 -23 22 -49.5t79 -69.5q107 -83 144.5 -150.5t37.5 -150.5q0 -170 -123.5 -270t-337.5 -100q-187 0 -297 61v240q128 -78 258 -78q101 0 148 33t47 86q0 40 -26.5 75 t-108.5 97q-94 72 -129 130t-35 126q0 84 45 145t162 127q66 37 104.5 76t38.5 96q0 62 -39.5 98.5t-124.5 36.5q-96 0 -156 -51.5t-85 -171.5l-254 -1219q-43 -198 -147 -288.5t-277 -90.5q-90 0 -160 25v242q61 -21 115 -21q133 0 170 178l254 1207q47 224 182 326 t385 102z" />
+<glyph unicode="&#xe0;" horiz-adv-x="1217" d="M90 0zM406 -20q-147 0 -231.5 106.5t-84.5 298.5q0 198 72 377.5t189 278t257 98.5q97 0 167.5 -42t109.5 -122h8l57 143h232l-238 -1118h-229l14 145h-4q-134 -165 -319 -165zM524 223q69 0 133 67t103 181.5t39 259.5q0 71 -38.5 117.5t-101.5 46.5q-68 0 -129.5 -72 t-98 -190t-36.5 -234q0 -88 33.5 -132t95.5 -44zM869 1241h-184q-71 69 -138.5 153.5t-103.5 153.5v21h311q36 -148 115 -303v-25z" />
+<glyph unicode="&#xe1;" horiz-adv-x="1217" d="M90 0zM406 -20q-147 0 -231.5 106.5t-84.5 298.5q0 198 72 377.5t189 278t257 98.5q97 0 167.5 -42t109.5 -122h8l57 143h232l-238 -1118h-229l14 145h-4q-134 -165 -319 -165zM524 223q69 0 133 67t103 181.5t39 259.5q0 71 -38.5 117.5t-101.5 46.5q-68 0 -129.5 -72 t-98 -190t-36.5 -234q0 -88 33.5 -132t95.5 -44zM598 1266q79 88 222 303h335v-17q-46 -56 -154 -152.5t-194 -158.5h-209v25z" />
+<glyph unicode="&#xe2;" horiz-adv-x="1217" d="M90 0zM406 -20q-147 0 -231.5 106.5t-84.5 298.5q0 198 72 377.5t189 278t257 98.5q97 0 167.5 -42t109.5 -122h8l57 143h232l-238 -1118h-229l14 145h-4q-134 -165 -319 -165zM524 223q69 0 133 67t103 181.5t39 259.5q0 71 -38.5 117.5t-101.5 46.5q-68 0 -129.5 -72 t-98 -190t-36.5 -234q0 -88 33.5 -132t95.5 -44zM1120 1240h-198q-63 53 -162 168q-105 -88 -232 -168h-217v25q63 57 153 147t142 156h338q22 -54 74 -142.5t102 -160.5v-25z" />
+<glyph unicode="&#xe3;" horiz-adv-x="1217" d="M90 0zM406 -20q-147 0 -231.5 106.5t-84.5 298.5q0 198 72 377.5t189 278t257 98.5q97 0 167.5 -42t109.5 -122h8l57 143h232l-238 -1118h-229l14 145h-4q-134 -165 -319 -165zM524 223q69 0 133 67t103 181.5t39 259.5q0 71 -38.5 117.5t-101.5 46.5q-68 0 -129.5 -72 t-98 -190t-36.5 -234q0 -88 33.5 -132t95.5 -44zM884 1241q-49 0 -86.5 16.5t-69.5 36t-61.5 36t-62.5 16.5q-31 0 -55.5 -28t-38.5 -79h-177q59 309 281 309q49 0 87.5 -16.5t71.5 -36t62 -35.5t60 -16q34 0 58 25.5t46 80.5h172q-66 -309 -287 -309z" />
+<glyph unicode="&#xe4;" horiz-adv-x="1217" d="M90 0zM406 -20q-147 0 -231.5 106.5t-84.5 298.5q0 198 72 377.5t189 278t257 98.5q97 0 167.5 -42t109.5 -122h8l57 143h232l-238 -1118h-229l14 145h-4q-134 -165 -319 -165zM524 223q69 0 133 67t103 181.5t39 259.5q0 71 -38.5 117.5t-101.5 46.5q-68 0 -129.5 -72 t-98 -190t-36.5 -234q0 -88 33.5 -132t95.5 -44zM397 1382q0 78 42.5 118t119.5 40q133 0 133 -108q0 -73 -39 -116.5t-121 -43.5q-135 0 -135 110zM799 1382q0 78 42 118t120 40q65 0 99 -28t34 -80q0 -73 -39.5 -116.5t-120.5 -43.5q-135 0 -135 110z" />
+<glyph unicode="&#xe5;" horiz-adv-x="1217" d="M90 0zM406 -20q-147 0 -231.5 106.5t-84.5 298.5q0 198 72 377.5t189 278t257 98.5q97 0 167.5 -42t109.5 -122h8l57 143h232l-238 -1118h-229l14 145h-4q-134 -165 -319 -165zM524 223q69 0 133 67t103 181.5t39 259.5q0 71 -38.5 117.5t-101.5 46.5q-68 0 -129.5 -72 t-98 -190t-36.5 -234q0 -88 33.5 -132t95.5 -44zM1023 1479q0 -107 -70 -173.5t-184 -66.5q-110 0 -179 63.5t-69 174.5q0 109 68.5 173t179.5 64q110 0 182 -65t72 -170zM866 1477q0 45 -27.5 70.5t-69.5 25.5t-69 -25.5t-27 -70.5t24 -71t72 -26q42 0 69.5 26t27.5 71z " />
+<glyph unicode="&#xe6;" horiz-adv-x="1786" d="M1206 -20q-109 0 -179.5 27t-117.5 87l-16 -94h-188l14 145h-6q-71 -88 -146.5 -126.5t-167.5 -38.5q-146 0 -227.5 109t-81.5 296q0 200 68.5 375.5t185 277t258.5 101.5q96 0 160.5 -38.5t114.5 -125.5h6l57 143h188l-18 -90q44 49 120.5 80t168.5 31 q157 0 246.5 -83.5t89.5 -221.5q0 -187 -167 -288.5t-476 -101.5h-52l-2 -19v-19q0 -96 55.5 -147.5t159.5 -51.5q66 0 152 23t162 63v-227q-179 -86 -361 -86zM518 223q72 0 134 68t99 184.5t37 243.5q0 80 -33 128t-102 48q-68 0 -128 -69t-95 -185.5t-35 -241.5 q0 -84 32.5 -130t90.5 -46zM1341 922q-88 0 -166 -80t-102 -195h45q155 0 241.5 48.5t86.5 131.5q0 95 -105 95z" />
+<glyph unicode="&#xe7;" horiz-adv-x="989" d="M90 0zM506 -20q-201 0 -308.5 107.5t-107.5 303.5q0 212 74.5 385.5t209.5 268t308 94.5q182 0 328 -72l-92 -229q-54 23 -106 40t-118 17q-85 0 -153.5 -64t-107 -175.5t-38.5 -239.5q0 -96 45.5 -144.5t126.5 -48.5q76 0 141 23.5t134 58.5v-246q-152 -79 -336 -79z M653 -250q0 -116 -83 -179t-234 -63q-86 0 -152 23v168q63 -23 125 -23q102 0 102 82q0 34 -31 56.5t-110 31.5l96 154h185l-39 -72q141 -49 141 -178z" />
+<glyph unicode="&#xe8;" horiz-adv-x="1141" d="M90 0zM696 922q-88 0 -166 -80t-102 -195h45q155 0 241.5 48.5t86.5 131.5q0 95 -105 95zM532 -20q-210 0 -326 113t-116 319q0 207 82.5 377.5t223.5 260t319 89.5q177 0 276 -81.5t99 -223.5q0 -187 -167 -288.5t-477 -101.5h-51l-2 -21v-20q0 -91 51.5 -143.5 t147.5 -52.5q87 0 158 19t172 67v-227q-172 -86 -390 -86zM849 1241h-184q-71 69 -138.5 153.5t-103.5 153.5v21h311q36 -148 115 -303v-25z" />
+<glyph unicode="&#xe9;" horiz-adv-x="1141" d="M90 0zM696 922q-88 0 -166 -80t-102 -195h45q155 0 241.5 48.5t86.5 131.5q0 95 -105 95zM532 -20q-210 0 -326 113t-116 319q0 207 82.5 377.5t223.5 260t319 89.5q177 0 276 -81.5t99 -223.5q0 -187 -167 -288.5t-477 -101.5h-51l-2 -21v-20q0 -91 51.5 -143.5 t147.5 -52.5q87 0 158 19t172 67v-227q-172 -86 -390 -86zM528 1266q79 88 222 303h335v-17q-46 -56 -154 -152.5t-194 -158.5h-209v25z" />
+<glyph unicode="&#xea;" horiz-adv-x="1141" d="M90 0zM696 922q-88 0 -166 -80t-102 -195h45q155 0 241.5 48.5t86.5 131.5q0 95 -105 95zM532 -20q-210 0 -326 113t-116 319q0 207 82.5 377.5t223.5 260t319 89.5q177 0 276 -81.5t99 -223.5q0 -187 -167 -288.5t-477 -101.5h-51l-2 -21v-20q0 -91 51.5 -143.5 t147.5 -52.5q87 0 158 19t172 67v-227q-172 -86 -390 -86zM1101 1241h-198q-63 53 -162 168q-105 -88 -232 -168h-217v25q63 57 153 147t142 156h338q22 -54 74 -142.5t102 -160.5v-25z" />
+<glyph unicode="&#xeb;" horiz-adv-x="1141" d="M90 0zM696 922q-88 0 -166 -80t-102 -195h45q155 0 241.5 48.5t86.5 131.5q0 95 -105 95zM532 -20q-210 0 -326 113t-116 319q0 207 82.5 377.5t223.5 260t319 89.5q177 0 276 -81.5t99 -223.5q0 -187 -167 -288.5t-477 -101.5h-51l-2 -21v-20q0 -91 51.5 -143.5 t147.5 -52.5q87 0 158 19t172 67v-227q-172 -86 -390 -86zM365 1382q0 78 42.5 118t119.5 40q133 0 133 -108q0 -73 -39 -116.5t-121 -43.5q-135 0 -135 110zM767 1382q0 78 42 118t120 40q65 0 99 -28t34 -80q0 -73 -39.5 -116.5t-120.5 -43.5q-135 0 -135 110z" />
+<glyph unicode="&#xec;" horiz-adv-x="608" d="M37 0zM338 0h-301l237 1118h301zM579 1241h-184q-71 69 -138.5 153.5t-103.5 153.5v21h311q36 -148 115 -303v-25z" />
+<glyph unicode="&#xed;" horiz-adv-x="608" d="M37 0zM338 0h-301l237 1118h301zM291 1266q79 88 222 303h335v-17q-46 -56 -154 -152.5t-194 -158.5h-209v25z" />
+<glyph unicode="&#xee;" horiz-adv-x="608" d="M36 0zM338 0h-301l237 1118h301zM845 1241h-198q-63 53 -162 168q-105 -88 -232 -168h-217v25q63 57 153 147t142 156h338q22 -54 74 -142.5t102 -160.5v-25z" />
+<glyph unicode="&#xef;" horiz-adv-x="608" d="M37 0zM338 0h-301l237 1118h301zM126 1382q0 78 42.5 118t119.5 40q133 0 133 -108q0 -73 -39 -116.5t-121 -43.5q-135 0 -135 110zM528 1382q0 78 42 118t120 40q65 0 99 -28t34 -80q0 -73 -39.5 -116.5t-120.5 -43.5q-135 0 -135 110z" />
+<glyph unicode="&#xf0;" horiz-adv-x="1182" d="M618 1309q-34 34 -124 80l118 186q134 -61 232 -139l237 131l76 -152l-192 -106q81 -107 113 -235t32 -279q0 -249 -69.5 -432.5t-203.5 -283t-323 -99.5q-216 0 -329 110t-113 316q0 165 64.5 301t180.5 212t265 76q83 0 151.5 -31t114.5 -94h6q-20 213 -117 310 l-231 -131l-88 147zM528 205q66 0 122.5 55.5t89 148.5t32.5 193q0 77 -38.5 122.5t-108.5 45.5q-73 0 -130 -53t-88.5 -143t-31.5 -197q0 -81 39 -126.5t114 -45.5z" />
+<glyph unicode="&#xf1;" horiz-adv-x="1237" d="M37 0zM977 0h-301l137 653q16 68 16 119q0 123 -108 123q-92 0 -167 -114t-118 -318l-98 -463h-301l237 1118h230l-21 -207h6q146 228 355 228q138 0 213.5 -83.5t75.5 -238.5q0 -73 -23 -180zM909 1241q-49 0 -86.5 16.5t-69.5 36t-61.5 36t-62.5 16.5q-31 0 -55.5 -28 t-38.5 -79h-177q59 309 281 309q49 0 87.5 -16.5t71.5 -36t62 -35.5t60 -16q34 0 58 25.5t46 80.5h172q-66 -309 -287 -309z" />
+<glyph unicode="&#xf2;" horiz-adv-x="1198" d="M90 0zM805 696q0 197 -143 197q-75 0 -134.5 -61t-97 -179t-37.5 -243q0 -185 150 -185q75 0 135 61.5t93.5 171t33.5 238.5zM1108 696q0 -211 -70.5 -374t-203.5 -252.5t-316 -89.5q-195 0 -311.5 117.5t-116.5 312.5q0 213 71.5 379.5t206.5 258t316 91.5 q196 0 310 -118t114 -325zM845 1241h-184q-71 69 -138.5 153.5t-103.5 153.5v21h311q36 -148 115 -303v-25z" />
+<glyph unicode="&#xf3;" horiz-adv-x="1198" d="M90 0zM805 696q0 197 -143 197q-75 0 -134.5 -61t-97 -179t-37.5 -243q0 -185 150 -185q75 0 135 61.5t93.5 171t33.5 238.5zM1108 696q0 -211 -70.5 -374t-203.5 -252.5t-316 -89.5q-195 0 -311.5 117.5t-116.5 312.5q0 213 71.5 379.5t206.5 258t316 91.5 q196 0 310 -118t114 -325zM571 1266q79 88 222 303h335v-17q-46 -56 -154 -152.5t-194 -158.5h-209v25z" />
+<glyph unicode="&#xf4;" horiz-adv-x="1198" d="M90 0zM805 696q0 197 -143 197q-75 0 -134.5 -61t-97 -179t-37.5 -243q0 -185 150 -185q75 0 135 61.5t93.5 171t33.5 238.5zM1108 696q0 -211 -70.5 -374t-203.5 -252.5t-316 -89.5q-195 0 -311.5 117.5t-116.5 312.5q0 213 71.5 379.5t206.5 258t316 91.5 q196 0 310 -118t114 -325zM1109 1241h-198q-63 53 -162 168q-105 -88 -232 -168h-217v25q63 57 153 147t142 156h338q22 -54 74 -142.5t102 -160.5v-25z" />
+<glyph unicode="&#xf5;" horiz-adv-x="1198" d="M90 0zM805 696q0 197 -143 197q-75 0 -134.5 -61t-97 -179t-37.5 -243q0 -185 150 -185q75 0 135 61.5t93.5 171t33.5 238.5zM1108 696q0 -211 -70.5 -374t-203.5 -252.5t-316 -89.5q-195 0 -311.5 117.5t-116.5 312.5q0 213 71.5 379.5t206.5 258t316 91.5 q196 0 310 -118t114 -325zM865 1241q-49 0 -86.5 16.5t-69.5 36t-61.5 36t-62.5 16.5q-31 0 -55.5 -28t-38.5 -79h-177q59 309 281 309q49 0 87.5 -16.5t71.5 -36t62 -35.5t60 -16q34 0 58 25.5t46 80.5h172q-66 -309 -287 -309z" />
+<glyph unicode="&#xf6;" horiz-adv-x="1198" d="M90 0zM805 696q0 197 -143 197q-75 0 -134.5 -61t-97 -179t-37.5 -243q0 -185 150 -185q75 0 135 61.5t93.5 171t33.5 238.5zM1108 696q0 -211 -70.5 -374t-203.5 -252.5t-316 -89.5q-195 0 -311.5 117.5t-116.5 312.5q0 213 71.5 379.5t206.5 258t316 91.5 q196 0 310 -118t114 -325zM386 1382q0 78 42.5 118t119.5 40q133 0 133 -108q0 -73 -39 -116.5t-121 -43.5q-135 0 -135 110zM788 1382q0 78 42 118t120 40q65 0 99 -28t34 -80q0 -73 -39.5 -116.5t-120.5 -43.5q-135 0 -135 110z" />
+<glyph unicode="&#xf7;" d="M109 612v219h952v-219h-952zM444 373q0 76 37 113.5t103 37.5t102.5 -39t36.5 -112q0 -70 -37 -111t-102 -41t-102.5 39t-37.5 113zM444 1071q0 75 37 113.5t103 38.5q67 0 103 -40.5t36 -111.5q0 -70 -37 -110.5t-102 -40.5t-102.5 39t-37.5 112z" />
+<glyph unicode="&#xf8;" horiz-adv-x="1198" d="M1108 696q0 -211 -70.5 -374t-203.5 -252.5t-316 -89.5q-123 0 -225 53l-109 -135l-141 108l119 148q-72 107 -72 256q0 213 71.5 379.5t206.5 258t316 91.5q131 0 227 -56l70 88l145 -110l-84 -105q66 -107 66 -260zM662 903q-81 0 -144.5 -62.5t-98 -169.5t-34.5 -233 v-12l365 453q-35 24 -88 24zM543 215q114 0 193 133t79 318v16l-358 -444q11 -8 35.5 -15.5t50.5 -7.5z" />
+<glyph unicode="&#xf9;" horiz-adv-x="1237" d="M111 0zM262 1118h301l-137 -653q-16 -68 -16 -119q0 -123 108 -123q92 0 167 114t118 318l98 463h301l-237 -1118h-230l21 207h-6q-145 -227 -355 -227q-138 0 -211 82.5t-73 238.5q0 93 24 213zM845 1241h-184q-71 69 -138.5 153.5t-103.5 153.5v21h311 q36 -148 115 -303v-25z" />
+<glyph unicode="&#xfa;" horiz-adv-x="1237" d="M111 0zM262 1118h301l-137 -653q-16 -68 -16 -119q0 -123 108 -123q92 0 167 114t118 318l98 463h301l-237 -1118h-230l21 207h-6q-145 -227 -355 -227q-138 0 -211 82.5t-73 238.5q0 93 24 213zM610 1266q79 88 222 303h335v-17q-46 -56 -154 -152.5t-194 -158.5h-209 v25z" />
+<glyph unicode="&#xfb;" horiz-adv-x="1237" d="M111 0zM262 1118h301l-137 -653q-16 -68 -16 -119q0 -123 108 -123q92 0 167 114t118 318l98 463h301l-237 -1118h-230l21 207h-6q-145 -227 -355 -227q-138 0 -211 82.5t-73 238.5q0 93 24 213zM1143 1241h-198q-63 53 -162 168q-105 -88 -232 -168h-217v25 q63 57 153 147t142 156h338q22 -54 74 -142.5t102 -160.5v-25z" />
+<glyph unicode="&#xfc;" horiz-adv-x="1237" d="M111 0zM262 1118h301l-137 -653q-16 -68 -16 -119q0 -123 108 -123q92 0 167 114t118 318l98 463h301l-237 -1118h-230l21 207h-6q-145 -227 -355 -227q-138 0 -211 82.5t-73 238.5q0 93 24 213zM411 1382q0 78 42.5 118t119.5 40q133 0 133 -108q0 -73 -39 -116.5 t-121 -43.5q-135 0 -135 110zM813 1382q0 78 42 118t120 40q65 0 99 -28t34 -80q0 -73 -39.5 -116.5t-120.5 -43.5q-135 0 -135 110z" />
+<glyph unicode="&#xfd;" horiz-adv-x="1063" d="M0 0zM102 1118h295l56 -518q14 -122 14 -293h6q20 51 44 119.5t65 153.5l260 538h327l-680 -1278q-177 -332 -483 -332q-90 0 -147 19v240q68 -13 116 -13q84 0 147.5 48t117.5 149l26 49zM497 1266q79 88 222 303h335v-17q-46 -56 -154 -152.5t-194 -158.5h-209v25z" />
+<glyph unicode="&#xfe;" horiz-adv-x="1219" d="M813 1139q150 0 232.5 -106.5t82.5 -301.5q0 -199 -69 -381t-182 -276t-250 -94q-178 0 -271 163h-8q-12 -159 -43 -295l-72 -340h-301l435 2048h301l-66 -307q-29 -131 -80 -280h8q131 170 283 170zM682 895q-71 0 -130 -65t-95.5 -184.5t-36.5 -246.5q0 -80 33.5 -128 t105.5 -48q69 0 129 65t97.5 183.5t37.5 247.5q0 88 -37.5 132t-103.5 44z" />
+<glyph unicode="&#xff;" horiz-adv-x="1063" d="M0 0zM102 1118h295l56 -518q14 -122 14 -293h6q20 51 44 119.5t65 153.5l260 538h327l-680 -1278q-177 -332 -483 -332q-90 0 -147 19v240q68 -13 116 -13q84 0 147.5 48t117.5 149l26 49zM310 1382q0 78 42.5 118t119.5 40q133 0 133 -108q0 -73 -39 -116.5t-121 -43.5 q-135 0 -135 110zM712 1382q0 78 42 118t120 40q65 0 99 -28t34 -80q0 -73 -39.5 -116.5t-120.5 -43.5q-135 0 -135 110z" />
+<glyph unicode="&#x131;" horiz-adv-x="608" d="M338 0h-301l237 1118h301z" />
+<glyph unicode="&#x152;" horiz-adv-x="1845" d="M1606 0h-760q-93 -20 -180 -20q-256 0 -399.5 147.5t-143.5 409.5q0 265 99 487.5t273 341.5t402 119q140 0 209 -23h809l-53 -254h-512l-68 -321h477l-55 -254h-477l-80 -377h512zM688 240q88 0 158 32l194 916q-62 39 -168 39q-121 0 -222 -91.5t-158.5 -251.5 t-57.5 -347q0 -147 66.5 -222t187.5 -75z" />
+<glyph unicode="&#x153;" horiz-adv-x="1806" d="M1198 -20q-116 0 -208 38.5t-138 106.5q-63 -68 -147 -106.5t-207 -38.5q-187 0 -297.5 117t-110.5 317q0 216 69 380.5t200 254.5t309 90q209 0 313 -160q154 160 399 160q177 0 276 -81.5t99 -223.5q0 -187 -167 -288.5t-476 -101.5h-51l-2 -21v-20q0 -91 51 -143.5 t147 -52.5q87 0 158 19t172 67v-227q-93 -46 -185.5 -66t-203.5 -20zM645 893q-71 0 -127 -60.5t-90.5 -176.5t-34.5 -242q0 -91 36.5 -140t109.5 -49q109 0 179 134.5t70 336.5q0 96 -37 146.5t-106 50.5zM1362 922q-88 0 -165.5 -78.5t-102.5 -196.5h45q155 0 241 48.5 t86 131.5q0 95 -104 95z" />
+<glyph unicode="&#x178;" horiz-adv-x="1155" d="M186 0zM627 870l374 592h342l-618 -903l-119 -559h-303l119 559l-236 903h312zM432 1720q0 78 42.5 118t119.5 40q133 0 133 -108q0 -73 -39 -116.5t-121 -43.5q-135 0 -135 110zM834 1720q0 78 42 118t120 40q65 0 99 -28t34 -80q0 -73 -39.5 -116.5t-120.5 -43.5 q-135 0 -135 110z" />
+<glyph unicode="&#x2c6;" horiz-adv-x="1135" d="M1120 1241h-198q-63 53 -162 168q-105 -88 -232 -168h-217v25q63 57 153 147t142 156h338q22 -54 74 -142.5t102 -160.5v-25z" />
+<glyph unicode="&#x2da;" horiz-adv-x="1182" d="M1034 1479q0 -107 -70 -173.5t-184 -66.5q-110 0 -179 63.5t-69 174.5q0 109 68.5 173t179.5 64q110 0 182 -65t72 -170zM877 1477q0 45 -27.5 70.5t-69.5 25.5t-69 -25.5t-27 -70.5t24 -71t72 -26q42 0 69.5 26t27.5 71z" />
+<glyph unicode="&#x2dc;" horiz-adv-x="1135" d="M866 1241q-49 0 -86.5 16.5t-69.5 36t-61.5 36t-62.5 16.5q-31 0 -55.5 -28t-38.5 -79h-177q59 309 281 309q49 0 87.5 -16.5t71.5 -36t62 -35.5t60 -16q34 0 58 25.5t46 80.5h172q-66 -309 -287 -309z" />
+<glyph unicode="&#x2000;" horiz-adv-x="953" />
+<glyph unicode="&#x2001;" horiz-adv-x="1907" />
+<glyph unicode="&#x2002;" horiz-adv-x="953" />
+<glyph unicode="&#x2003;" horiz-adv-x="1907" />
+<glyph unicode="&#x2004;" horiz-adv-x="635" />
+<glyph unicode="&#x2005;" horiz-adv-x="476" />
+<glyph unicode="&#x2006;" horiz-adv-x="317" />
+<glyph unicode="&#x2007;" horiz-adv-x="317" />
+<glyph unicode="&#x2008;" horiz-adv-x="238" />
+<glyph unicode="&#x2009;" horiz-adv-x="381" />
+<glyph unicode="&#x200a;" horiz-adv-x="105" />
+<glyph unicode="&#x2010;" horiz-adv-x="659" d="M41 424l53 250h524l-53 -250h-524z" />
+<glyph unicode="&#x2011;" horiz-adv-x="659" d="M41 424l53 250h524l-53 -250h-524z" />
+<glyph unicode="&#x2012;" horiz-adv-x="659" d="M41 424l53 250h524l-53 -250h-524z" />
+<glyph unicode="&#x2013;" horiz-adv-x="983" d="M41 436l49 230h852l-49 -230h-852z" />
+<glyph unicode="&#x2014;" horiz-adv-x="1966" d="M41 436l49 230h1835l-49 -230h-1835z" />
+<glyph unicode="&#x2018;" horiz-adv-x="440" d="M123 961l-8 22q103 227 262 479h225q-91 -213 -194 -501h-285z" />
+<glyph unicode="&#x2019;" horiz-adv-x="440" d="M586 1462l8 -22q-103 -227 -262 -479h-226q89 206 195 501h285z" />
+<glyph unicode="&#x201a;" horiz-adv-x="569" d="M377 238l8 -23q-103 -227 -262 -479h-225q88 207 194 502h285z" />
+<glyph unicode="&#x201c;" horiz-adv-x="887" d="M569 961l-8 22q103 227 262 479h226q-97 -227 -195 -501h-285zM123 961l-8 22q103 227 262 479h225q-91 -213 -194 -501h-285z" />
+<glyph unicode="&#x201d;" horiz-adv-x="887" d="M586 1462l8 -22q-103 -227 -262 -479h-226q89 206 195 501h285zM1032 1462l8 -22q-103 -227 -262 -479h-225q23 53 46.5 111t148.5 390h284z" />
+<glyph unicode="&#x201e;" horiz-adv-x="1018" d="M377 238l8 -23q-103 -227 -262 -479h-225q88 207 194 502h285zM825 238l9 -23q-100 -221 -263 -479h-225q24 57 49 118.5t146 383.5h284z" />
+<glyph unicode="&#x2022;" horiz-adv-x="739" d="M104 686q0 106 42.5 194t120 136.5t182.5 48.5q120 0 182.5 -67t62.5 -191q0 -177 -91.5 -277t-248.5 -100q-117 0 -183.5 67t-66.5 189z" />
+<glyph unicode="&#x2026;" horiz-adv-x="1706" d="M25 0zM25 115q0 90 53.5 144t150.5 54q68 0 109 -38t41 -107q0 -87 -55 -141t-144 -54q-73 0 -114 37.5t-41 104.5zM586 115q0 90 53.5 144t150.5 54q68 0 109 -38t41 -107q0 -87 -55 -141t-144 -54q-73 0 -114 37.5t-41 104.5zM1147 115q0 90 53.5 144t150.5 54 q68 0 109 -38t41 -107q0 -87 -55 -141t-144 -54q-73 0 -114 37.5t-41 104.5z" />
+<glyph unicode="&#x202f;" horiz-adv-x="381" />
+<glyph unicode="&#x2039;" horiz-adv-x="664" d="M72 569l401 463l191 -155l-279 -334l135 -350l-246 -103l-202 461v18z" />
+<glyph unicode="&#x203a;" horiz-adv-x="664" d="M592 535l-402 -463l-190 155l279 334l-136 350l246 103l203 -461v-18z" />
+<glyph unicode="&#x2044;" horiz-adv-x="256" d="M791 1462l-1084 -1462h-239l1087 1462h236z" />
+<glyph unicode="&#x205f;" horiz-adv-x="476" />
+<glyph unicode="&#x2074;" horiz-adv-x="776" d="M776 737h-119l-32 -151h-238l33 151h-373l31 174l475 557h260l-121 -563h119zM455 905l58 231l22 74q-13 -20 -43 -58t-211 -247h174z" />
+<glyph unicode="&#x20ac;" d="M899 1237q-97 0 -176 -74.5t-135 -212.5h348l-39 -176h-360q-11 -34 -25 -115h299l-37 -178h-280q0 -120 44.5 -181.5t147.5 -61.5q133 0 283 63v-258q-126 -63 -330 -63q-446 0 -446 501h-152l37 178h127q9 67 22 115h-125l39 176h135q87 252 250.5 393.5t374.5 141.5 q100 0 179 -23t165 -80l-125 -223q-87 49 -131 63.5t-90 14.5z" />
+<glyph unicode="&#x2122;" horiz-adv-x="1534" d="M471 741h-168v572h-197v149h564v-149h-199v-572zM1047 741l-166 529h-7l5 -111v-418h-164v721h248l159 -510l170 510h240v-721h-168v408l4 121h-6l-174 -529h-141z" />
+<glyph unicode="&#xe000;" horiz-adv-x="1120" d="M0 1120h1120v-1120h-1120v1120z" />
+<glyph horiz-adv-x="1217" d="M0 0z" />
+<hkern u1="&#x22;" u2="&#x178;" k="-20" />
+<hkern u1="&#x22;" u2="&#x153;" k="123" />
+<hkern u1="&#x22;" u2="&#xfc;" k="61" />
+<hkern u1="&#x22;" u2="&#xfb;" k="61" />
+<hkern u1="&#x22;" u2="&#xfa;" k="61" />
+<hkern u1="&#x22;" u2="&#xf9;" k="61" />
+<hkern u1="&#x22;" u2="&#xf8;" k="123" />
+<hkern u1="&#x22;" u2="&#xf6;" k="123" />
+<hkern u1="&#x22;" u2="&#xf5;" k="123" />
+<hkern u1="&#x22;" u2="&#xf4;" k="123" />
+<hkern u1="&#x22;" u2="&#xf3;" k="123" />
+<hkern u1="&#x22;" u2="&#xf2;" k="123" />
+<hkern u1="&#x22;" u2="&#xeb;" k="123" />
+<hkern u1="&#x22;" u2="&#xea;" k="123" />
+<hkern u1="&#x22;" u2="&#xe9;" k="123" />
+<hkern u1="&#x22;" u2="&#xe8;" k="123" />
+<hkern u1="&#x22;" u2="&#xe7;" k="123" />
+<hkern u1="&#x22;" u2="&#xe6;" k="82" />
+<hkern u1="&#x22;" u2="&#xe5;" k="82" />
+<hkern u1="&#x22;" u2="&#xe4;" k="82" />
+<hkern u1="&#x22;" u2="&#xe3;" k="82" />
+<hkern u1="&#x22;" u2="&#xe2;" k="82" />
+<hkern u1="&#x22;" u2="&#xe1;" k="82" />
+<hkern u1="&#x22;" u2="&#xe0;" k="123" />
+<hkern u1="&#x22;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x22;" u2="&#xc5;" k="143" />
+<hkern u1="&#x22;" u2="&#xc4;" k="143" />
+<hkern u1="&#x22;" u2="&#xc3;" k="143" />
+<hkern u1="&#x22;" u2="&#xc2;" k="143" />
+<hkern u1="&#x22;" u2="&#xc1;" k="143" />
+<hkern u1="&#x22;" u2="&#xc0;" k="143" />
+<hkern u1="&#x22;" u2="u" k="61" />
+<hkern u1="&#x22;" u2="s" k="61" />
+<hkern u1="&#x22;" u2="r" k="61" />
+<hkern u1="&#x22;" u2="q" k="123" />
+<hkern u1="&#x22;" u2="p" k="61" />
+<hkern u1="&#x22;" u2="o" k="123" />
+<hkern u1="&#x22;" u2="n" k="61" />
+<hkern u1="&#x22;" u2="m" k="61" />
+<hkern u1="&#x22;" u2="g" k="61" />
+<hkern u1="&#x22;" u2="e" k="123" />
+<hkern u1="&#x22;" u2="d" k="123" />
+<hkern u1="&#x22;" u2="c" k="123" />
+<hkern u1="&#x22;" u2="a" k="82" />
+<hkern u1="&#x22;" u2="Y" k="-20" />
+<hkern u1="&#x22;" u2="W" k="-41" />
+<hkern u1="&#x22;" u2="V" k="-41" />
+<hkern u1="&#x22;" u2="T" k="-41" />
+<hkern u1="&#x22;" u2="A" k="143" />
+<hkern u1="&#x27;" u2="&#x178;" k="-20" />
+<hkern u1="&#x27;" u2="&#x153;" k="123" />
+<hkern u1="&#x27;" u2="&#xfc;" k="61" />
+<hkern u1="&#x27;" u2="&#xfb;" k="61" />
+<hkern u1="&#x27;" u2="&#xfa;" k="61" />
+<hkern u1="&#x27;" u2="&#xf9;" k="61" />
+<hkern u1="&#x27;" u2="&#xf8;" k="123" />
+<hkern u1="&#x27;" u2="&#xf6;" k="123" />
+<hkern u1="&#x27;" u2="&#xf5;" k="123" />
+<hkern u1="&#x27;" u2="&#xf4;" k="123" />
+<hkern u1="&#x27;" u2="&#xf3;" k="123" />
+<hkern u1="&#x27;" u2="&#xf2;" k="123" />
+<hkern u1="&#x27;" u2="&#xeb;" k="123" />
+<hkern u1="&#x27;" u2="&#xea;" k="123" />
+<hkern u1="&#x27;" u2="&#xe9;" k="123" />
+<hkern u1="&#x27;" u2="&#xe8;" k="123" />
+<hkern u1="&#x27;" u2="&#xe7;" k="123" />
+<hkern u1="&#x27;" u2="&#xe6;" k="82" />
+<hkern u1="&#x27;" u2="&#xe5;" k="82" />
+<hkern u1="&#x27;" u2="&#xe4;" k="82" />
+<hkern u1="&#x27;" u2="&#xe3;" k="82" />
+<hkern u1="&#x27;" u2="&#xe2;" k="82" />
+<hkern u1="&#x27;" u2="&#xe1;" k="82" />
+<hkern u1="&#x27;" u2="&#xe0;" k="123" />
+<hkern u1="&#x27;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x27;" u2="&#xc5;" k="143" />
+<hkern u1="&#x27;" u2="&#xc4;" k="143" />
+<hkern u1="&#x27;" u2="&#xc3;" k="143" />
+<hkern u1="&#x27;" u2="&#xc2;" k="143" />
+<hkern u1="&#x27;" u2="&#xc1;" k="143" />
+<hkern u1="&#x27;" u2="&#xc0;" k="143" />
+<hkern u1="&#x27;" u2="u" k="61" />
+<hkern u1="&#x27;" u2="s" k="61" />
+<hkern u1="&#x27;" u2="r" k="61" />
+<hkern u1="&#x27;" u2="q" k="123" />
+<hkern u1="&#x27;" u2="p" k="61" />
+<hkern u1="&#x27;" u2="o" k="123" />
+<hkern u1="&#x27;" u2="n" k="61" />
+<hkern u1="&#x27;" u2="m" k="61" />
+<hkern u1="&#x27;" u2="g" k="61" />
+<hkern u1="&#x27;" u2="e" k="123" />
+<hkern u1="&#x27;" u2="d" k="123" />
+<hkern u1="&#x27;" u2="c" k="123" />
+<hkern u1="&#x27;" u2="a" k="82" />
+<hkern u1="&#x27;" u2="Y" k="-20" />
+<hkern u1="&#x27;" u2="W" k="-41" />
+<hkern u1="&#x27;" u2="V" k="-41" />
+<hkern u1="&#x27;" u2="T" k="-41" />
+<hkern u1="&#x27;" u2="A" k="143" />
+<hkern u1="&#x28;" u2="J" k="-184" />
+<hkern u1="&#x2c;" u2="&#x178;" k="123" />
+<hkern u1="&#x2c;" u2="&#x152;" k="102" />
+<hkern u1="&#x2c;" u2="&#xdd;" k="123" />
+<hkern u1="&#x2c;" u2="&#xdc;" k="41" />
+<hkern u1="&#x2c;" u2="&#xdb;" k="41" />
+<hkern u1="&#x2c;" u2="&#xda;" k="41" />
+<hkern u1="&#x2c;" u2="&#xd9;" k="41" />
+<hkern u1="&#x2c;" u2="&#xd8;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd6;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd5;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd4;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd3;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd2;" k="102" />
+<hkern u1="&#x2c;" u2="&#xc7;" k="102" />
+<hkern u1="&#x2c;" u2="Y" k="123" />
+<hkern u1="&#x2c;" u2="W" k="123" />
+<hkern u1="&#x2c;" u2="V" k="123" />
+<hkern u1="&#x2c;" u2="U" k="41" />
+<hkern u1="&#x2c;" u2="T" k="143" />
+<hkern u1="&#x2c;" u2="Q" k="102" />
+<hkern u1="&#x2c;" u2="O" k="102" />
+<hkern u1="&#x2c;" u2="G" k="102" />
+<hkern u1="&#x2c;" u2="C" k="102" />
+<hkern u1="&#x2d;" u2="T" k="82" />
+<hkern u1="&#x2e;" u2="&#x178;" k="123" />
+<hkern u1="&#x2e;" u2="&#x152;" k="102" />
+<hkern u1="&#x2e;" u2="&#xdd;" k="123" />
+<hkern u1="&#x2e;" u2="&#xdc;" k="41" />
+<hkern u1="&#x2e;" u2="&#xdb;" k="41" />
+<hkern u1="&#x2e;" u2="&#xda;" k="41" />
+<hkern u1="&#x2e;" u2="&#xd9;" k="41" />
+<hkern u1="&#x2e;" u2="&#xd8;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd6;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd5;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd4;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd3;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd2;" k="102" />
+<hkern u1="&#x2e;" u2="&#xc7;" k="102" />
+<hkern u1="&#x2e;" u2="Y" k="123" />
+<hkern u1="&#x2e;" u2="W" k="123" />
+<hkern u1="&#x2e;" u2="V" k="123" />
+<hkern u1="&#x2e;" u2="U" k="41" />
+<hkern u1="&#x2e;" u2="T" k="143" />
+<hkern u1="&#x2e;" u2="Q" k="102" />
+<hkern u1="&#x2e;" u2="O" k="102" />
+<hkern u1="&#x2e;" u2="G" k="102" />
+<hkern u1="&#x2e;" u2="C" k="102" />
+<hkern u1="A" u2="&#x201d;" k="143" />
+<hkern u1="A" u2="&#x2019;" k="143" />
+<hkern u1="A" u2="&#x178;" k="123" />
+<hkern u1="A" u2="&#x152;" k="41" />
+<hkern u1="A" u2="&#xdd;" k="123" />
+<hkern u1="A" u2="&#xd8;" k="41" />
+<hkern u1="A" u2="&#xd6;" k="41" />
+<hkern u1="A" u2="&#xd5;" k="41" />
+<hkern u1="A" u2="&#xd4;" k="41" />
+<hkern u1="A" u2="&#xd3;" k="41" />
+<hkern u1="A" u2="&#xd2;" k="41" />
+<hkern u1="A" u2="&#xc7;" k="41" />
+<hkern u1="A" u2="Y" k="123" />
+<hkern u1="A" u2="W" k="82" />
+<hkern u1="A" u2="V" k="82" />
+<hkern u1="A" u2="T" k="143" />
+<hkern u1="A" u2="Q" k="41" />
+<hkern u1="A" u2="O" k="41" />
+<hkern u1="A" u2="J" k="-266" />
+<hkern u1="A" u2="G" k="41" />
+<hkern u1="A" u2="C" k="41" />
+<hkern u1="A" u2="&#x27;" k="143" />
+<hkern u1="A" u2="&#x22;" k="143" />
+<hkern u1="B" u2="&#x201e;" k="82" />
+<hkern u1="B" u2="&#x201a;" k="82" />
+<hkern u1="B" u2="&#x178;" k="20" />
+<hkern u1="B" u2="&#xdd;" k="20" />
+<hkern u1="B" u2="&#xc5;" k="41" />
+<hkern u1="B" u2="&#xc4;" k="41" />
+<hkern u1="B" u2="&#xc3;" k="41" />
+<hkern u1="B" u2="&#xc2;" k="41" />
+<hkern u1="B" u2="&#xc1;" k="41" />
+<hkern u1="B" u2="&#xc0;" k="41" />
+<hkern u1="B" u2="Z" k="20" />
+<hkern u1="B" u2="Y" k="20" />
+<hkern u1="B" u2="X" k="41" />
+<hkern u1="B" u2="W" k="20" />
+<hkern u1="B" u2="V" k="20" />
+<hkern u1="B" u2="T" k="61" />
+<hkern u1="B" u2="A" k="41" />
+<hkern u1="B" u2="&#x2e;" k="82" />
+<hkern u1="B" u2="&#x2c;" k="82" />
+<hkern u1="C" u2="&#x152;" k="41" />
+<hkern u1="C" u2="&#xd8;" k="41" />
+<hkern u1="C" u2="&#xd6;" k="41" />
+<hkern u1="C" u2="&#xd5;" k="41" />
+<hkern u1="C" u2="&#xd4;" k="41" />
+<hkern u1="C" u2="&#xd3;" k="41" />
+<hkern u1="C" u2="&#xd2;" k="41" />
+<hkern u1="C" u2="&#xc7;" k="41" />
+<hkern u1="C" u2="Q" k="41" />
+<hkern u1="C" u2="O" k="41" />
+<hkern u1="C" u2="G" k="41" />
+<hkern u1="C" u2="C" k="41" />
+<hkern u1="D" u2="&#x201e;" k="82" />
+<hkern u1="D" u2="&#x201a;" k="82" />
+<hkern u1="D" u2="&#x178;" k="20" />
+<hkern u1="D" u2="&#xdd;" k="20" />
+<hkern u1="D" u2="&#xc5;" k="41" />
+<hkern u1="D" u2="&#xc4;" k="41" />
+<hkern u1="D" u2="&#xc3;" k="41" />
+<hkern u1="D" u2="&#xc2;" k="41" />
+<hkern u1="D" u2="&#xc1;" k="41" />
+<hkern u1="D" u2="&#xc0;" k="41" />
+<hkern u1="D" u2="Z" k="20" />
+<hkern u1="D" u2="Y" k="20" />
+<hkern u1="D" u2="X" k="41" />
+<hkern u1="D" u2="W" k="20" />
+<hkern u1="D" u2="V" k="20" />
+<hkern u1="D" u2="T" k="61" />
+<hkern u1="D" u2="A" k="41" />
+<hkern u1="D" u2="&#x2e;" k="82" />
+<hkern u1="D" u2="&#x2c;" k="82" />
+<hkern u1="E" u2="J" k="-123" />
+<hkern u1="F" u2="&#x201e;" k="123" />
+<hkern u1="F" u2="&#x201a;" k="123" />
+<hkern u1="F" u2="&#xc5;" k="41" />
+<hkern u1="F" u2="&#xc4;" k="41" />
+<hkern u1="F" u2="&#xc3;" k="41" />
+<hkern u1="F" u2="&#xc2;" k="41" />
+<hkern u1="F" u2="&#xc1;" k="41" />
+<hkern u1="F" u2="&#xc0;" k="41" />
+<hkern u1="F" u2="A" k="41" />
+<hkern u1="F" u2="&#x3f;" k="-41" />
+<hkern u1="F" u2="&#x2e;" k="123" />
+<hkern u1="F" u2="&#x2c;" k="123" />
+<hkern u1="K" u2="&#x152;" k="41" />
+<hkern u1="K" u2="&#xd8;" k="41" />
+<hkern u1="K" u2="&#xd6;" k="41" />
+<hkern u1="K" u2="&#xd5;" k="41" />
+<hkern u1="K" u2="&#xd4;" k="41" />
+<hkern u1="K" u2="&#xd3;" k="41" />
+<hkern u1="K" u2="&#xd2;" k="41" />
+<hkern u1="K" u2="&#xc7;" k="41" />
+<hkern u1="K" u2="Q" k="41" />
+<hkern u1="K" u2="O" k="41" />
+<hkern u1="K" u2="G" k="41" />
+<hkern u1="K" u2="C" k="41" />
+<hkern u1="L" u2="&#x201d;" k="164" />
+<hkern u1="L" u2="&#x2019;" k="164" />
+<hkern u1="L" u2="&#x178;" k="61" />
+<hkern u1="L" u2="&#x152;" k="41" />
+<hkern u1="L" u2="&#xdd;" k="61" />
+<hkern u1="L" u2="&#xdc;" k="20" />
+<hkern u1="L" u2="&#xdb;" k="20" />
+<hkern u1="L" u2="&#xda;" k="20" />
+<hkern u1="L" u2="&#xd9;" k="20" />
+<hkern u1="L" u2="&#xd8;" k="41" />
+<hkern u1="L" u2="&#xd6;" k="41" />
+<hkern u1="L" u2="&#xd5;" k="41" />
+<hkern u1="L" u2="&#xd4;" k="41" />
+<hkern u1="L" u2="&#xd3;" k="41" />
+<hkern u1="L" u2="&#xd2;" k="41" />
+<hkern u1="L" u2="&#xc7;" k="41" />
+<hkern u1="L" u2="Y" k="61" />
+<hkern u1="L" u2="W" k="41" />
+<hkern u1="L" u2="V" k="41" />
+<hkern u1="L" u2="U" k="20" />
+<hkern u1="L" u2="T" k="41" />
+<hkern u1="L" u2="Q" k="41" />
+<hkern u1="L" u2="O" k="41" />
+<hkern u1="L" u2="G" k="41" />
+<hkern u1="L" u2="C" k="41" />
+<hkern u1="L" u2="&#x27;" k="164" />
+<hkern u1="L" u2="&#x22;" k="164" />
+<hkern u1="O" u2="&#x201e;" k="82" />
+<hkern u1="O" u2="&#x201a;" k="82" />
+<hkern u1="O" u2="&#x178;" k="20" />
+<hkern u1="O" u2="&#xdd;" k="20" />
+<hkern u1="O" u2="&#xc5;" k="41" />
+<hkern u1="O" u2="&#xc4;" k="41" />
+<hkern u1="O" u2="&#xc3;" k="41" />
+<hkern u1="O" u2="&#xc2;" k="41" />
+<hkern u1="O" u2="&#xc1;" k="41" />
+<hkern u1="O" u2="&#xc0;" k="41" />
+<hkern u1="O" u2="Z" k="20" />
+<hkern u1="O" u2="Y" k="20" />
+<hkern u1="O" u2="X" k="41" />
+<hkern u1="O" u2="W" k="20" />
+<hkern u1="O" u2="V" k="20" />
+<hkern u1="O" u2="T" k="61" />
+<hkern u1="O" u2="A" k="41" />
+<hkern u1="O" u2="&#x2e;" k="82" />
+<hkern u1="O" u2="&#x2c;" k="82" />
+<hkern u1="P" u2="&#x201e;" k="266" />
+<hkern u1="P" u2="&#x201a;" k="266" />
+<hkern u1="P" u2="&#xc5;" k="102" />
+<hkern u1="P" u2="&#xc4;" k="102" />
+<hkern u1="P" u2="&#xc3;" k="102" />
+<hkern u1="P" u2="&#xc2;" k="102" />
+<hkern u1="P" u2="&#xc1;" k="102" />
+<hkern u1="P" u2="&#xc0;" k="102" />
+<hkern u1="P" u2="Z" k="20" />
+<hkern u1="P" u2="X" k="41" />
+<hkern u1="P" u2="A" k="102" />
+<hkern u1="P" u2="&#x2e;" k="266" />
+<hkern u1="P" u2="&#x2c;" k="266" />
+<hkern u1="Q" u2="&#x201e;" k="82" />
+<hkern u1="Q" u2="&#x201a;" k="82" />
+<hkern u1="Q" u2="&#x178;" k="20" />
+<hkern u1="Q" u2="&#xdd;" k="20" />
+<hkern u1="Q" u2="&#xc5;" k="41" />
+<hkern u1="Q" u2="&#xc4;" k="41" />
+<hkern u1="Q" u2="&#xc3;" k="41" />
+<hkern u1="Q" u2="&#xc2;" k="41" />
+<hkern u1="Q" u2="&#xc1;" k="41" />
+<hkern u1="Q" u2="&#xc0;" k="41" />
+<hkern u1="Q" u2="Z" k="20" />
+<hkern u1="Q" u2="Y" k="20" />
+<hkern u1="Q" u2="X" k="41" />
+<hkern u1="Q" u2="W" k="20" />
+<hkern u1="Q" u2="V" k="20" />
+<hkern u1="Q" u2="T" k="61" />
+<hkern u1="Q" u2="A" k="41" />
+<hkern u1="Q" u2="&#x2e;" k="82" />
+<hkern u1="Q" u2="&#x2c;" k="82" />
+<hkern u1="T" u2="&#x201e;" k="123" />
+<hkern u1="T" u2="&#x201a;" k="123" />
+<hkern u1="T" u2="&#x2014;" k="82" />
+<hkern u1="T" u2="&#x2013;" k="82" />
+<hkern u1="T" u2="&#x153;" k="143" />
+<hkern u1="T" u2="&#x152;" k="41" />
+<hkern u1="T" u2="&#xfd;" k="41" />
+<hkern u1="T" u2="&#xfc;" k="102" />
+<hkern u1="T" u2="&#xfb;" k="102" />
+<hkern u1="T" u2="&#xfa;" k="102" />
+<hkern u1="T" u2="&#xf9;" k="102" />
+<hkern u1="T" u2="&#xf8;" k="143" />
+<hkern u1="T" u2="&#xf6;" k="143" />
+<hkern u1="T" u2="&#xf5;" k="143" />
+<hkern u1="T" u2="&#xf4;" k="143" />
+<hkern u1="T" u2="&#xf3;" k="143" />
+<hkern u1="T" u2="&#xf2;" k="143" />
+<hkern u1="T" u2="&#xeb;" k="143" />
+<hkern u1="T" u2="&#xea;" k="143" />
+<hkern u1="T" u2="&#xe9;" k="143" />
+<hkern u1="T" u2="&#xe8;" k="143" />
+<hkern u1="T" u2="&#xe7;" k="143" />
+<hkern u1="T" u2="&#xe6;" k="164" />
+<hkern u1="T" u2="&#xe5;" k="164" />
+<hkern u1="T" u2="&#xe4;" k="164" />
+<hkern u1="T" u2="&#xe3;" k="164" />
+<hkern u1="T" u2="&#xe2;" k="164" />
+<hkern u1="T" u2="&#xe1;" k="164" />
+<hkern u1="T" u2="&#xe0;" k="143" />
+<hkern u1="T" u2="&#xd8;" k="41" />
+<hkern u1="T" u2="&#xd6;" k="41" />
+<hkern u1="T" u2="&#xd5;" k="41" />
+<hkern u1="T" u2="&#xd4;" k="41" />
+<hkern u1="T" u2="&#xd3;" k="41" />
+<hkern u1="T" u2="&#xd2;" k="41" />
+<hkern u1="T" u2="&#xc7;" k="41" />
+<hkern u1="T" u2="&#xc5;" k="143" />
+<hkern u1="T" u2="&#xc4;" k="143" />
+<hkern u1="T" u2="&#xc3;" k="143" />
+<hkern u1="T" u2="&#xc2;" k="143" />
+<hkern u1="T" u2="&#xc1;" k="143" />
+<hkern u1="T" u2="&#xc0;" k="143" />
+<hkern u1="T" u2="z" k="82" />
+<hkern u1="T" u2="y" k="41" />
+<hkern u1="T" u2="x" k="41" />
+<hkern u1="T" u2="w" k="41" />
+<hkern u1="T" u2="v" k="41" />
+<hkern u1="T" u2="u" k="102" />
+<hkern u1="T" u2="s" k="123" />
+<hkern u1="T" u2="r" k="102" />
+<hkern u1="T" u2="q" k="143" />
+<hkern u1="T" u2="p" k="102" />
+<hkern u1="T" u2="o" k="143" />
+<hkern u1="T" u2="n" k="102" />
+<hkern u1="T" u2="m" k="102" />
+<hkern u1="T" u2="g" k="143" />
+<hkern u1="T" u2="e" k="143" />
+<hkern u1="T" u2="d" k="143" />
+<hkern u1="T" u2="c" k="143" />
+<hkern u1="T" u2="a" k="164" />
+<hkern u1="T" u2="T" k="-41" />
+<hkern u1="T" u2="Q" k="41" />
+<hkern u1="T" u2="O" k="41" />
+<hkern u1="T" u2="G" k="41" />
+<hkern u1="T" u2="C" k="41" />
+<hkern u1="T" u2="A" k="143" />
+<hkern u1="T" u2="&#x3f;" k="-41" />
+<hkern u1="T" u2="&#x2e;" k="123" />
+<hkern u1="T" u2="&#x2d;" k="82" />
+<hkern u1="T" u2="&#x2c;" k="123" />
+<hkern u1="U" u2="&#x201e;" k="41" />
+<hkern u1="U" u2="&#x201a;" k="41" />
+<hkern u1="U" u2="&#xc5;" k="20" />
+<hkern u1="U" u2="&#xc4;" k="20" />
+<hkern u1="U" u2="&#xc3;" k="20" />
+<hkern u1="U" u2="&#xc2;" k="20" />
+<hkern u1="U" u2="&#xc1;" k="20" />
+<hkern u1="U" u2="&#xc0;" k="20" />
+<hkern u1="U" u2="A" k="20" />
+<hkern u1="U" u2="&#x2e;" k="41" />
+<hkern u1="U" u2="&#x2c;" k="41" />
+<hkern u1="V" u2="&#x201e;" k="102" />
+<hkern u1="V" u2="&#x201a;" k="102" />
+<hkern u1="V" u2="&#x153;" k="41" />
+<hkern u1="V" u2="&#x152;" k="20" />
+<hkern u1="V" u2="&#xfc;" k="20" />
+<hkern u1="V" u2="&#xfb;" k="20" />
+<hkern u1="V" u2="&#xfa;" k="20" />
+<hkern u1="V" u2="&#xf9;" k="20" />
+<hkern u1="V" u2="&#xf8;" k="41" />
+<hkern u1="V" u2="&#xf6;" k="41" />
+<hkern u1="V" u2="&#xf5;" k="41" />
+<hkern u1="V" u2="&#xf4;" k="41" />
+<hkern u1="V" u2="&#xf3;" k="41" />
+<hkern u1="V" u2="&#xf2;" k="41" />
+<hkern u1="V" u2="&#xeb;" k="41" />
+<hkern u1="V" u2="&#xea;" k="41" />
+<hkern u1="V" u2="&#xe9;" k="41" />
+<hkern u1="V" u2="&#xe8;" k="41" />
+<hkern u1="V" u2="&#xe7;" k="41" />
+<hkern u1="V" u2="&#xe6;" k="41" />
+<hkern u1="V" u2="&#xe5;" k="41" />
+<hkern u1="V" u2="&#xe4;" k="41" />
+<hkern u1="V" u2="&#xe3;" k="41" />
+<hkern u1="V" u2="&#xe2;" k="41" />
+<hkern u1="V" u2="&#xe1;" k="41" />
+<hkern u1="V" u2="&#xe0;" k="41" />
+<hkern u1="V" u2="&#xd8;" k="20" />
+<hkern u1="V" u2="&#xd6;" k="20" />
+<hkern u1="V" u2="&#xd5;" k="20" />
+<hkern u1="V" u2="&#xd4;" k="20" />
+<hkern u1="V" u2="&#xd3;" k="20" />
+<hkern u1="V" u2="&#xd2;" k="20" />
+<hkern u1="V" u2="&#xc7;" k="20" />
+<hkern u1="V" u2="&#xc5;" k="82" />
+<hkern u1="V" u2="&#xc4;" k="82" />
+<hkern u1="V" u2="&#xc3;" k="82" />
+<hkern u1="V" u2="&#xc2;" k="82" />
+<hkern u1="V" u2="&#xc1;" k="82" />
+<hkern u1="V" u2="&#xc0;" k="82" />
+<hkern u1="V" u2="u" k="20" />
+<hkern u1="V" u2="s" k="20" />
+<hkern u1="V" u2="r" k="20" />
+<hkern u1="V" u2="q" k="41" />
+<hkern u1="V" u2="p" k="20" />
+<hkern u1="V" u2="o" k="41" />
+<hkern u1="V" u2="n" k="20" />
+<hkern u1="V" u2="m" k="20" />
+<hkern u1="V" u2="g" k="20" />
+<hkern u1="V" u2="e" k="41" />
+<hkern u1="V" u2="d" k="41" />
+<hkern u1="V" u2="c" k="41" />
+<hkern u1="V" u2="a" k="41" />
+<hkern u1="V" u2="Q" k="20" />
+<hkern u1="V" u2="O" k="20" />
+<hkern u1="V" u2="G" k="20" />
+<hkern u1="V" u2="C" k="20" />
+<hkern u1="V" u2="A" k="82" />
+<hkern u1="V" u2="&#x3f;" k="-41" />
+<hkern u1="V" u2="&#x2e;" k="102" />
+<hkern u1="V" u2="&#x2c;" k="102" />
+<hkern u1="W" u2="&#x201e;" k="102" />
+<hkern u1="W" u2="&#x201a;" k="102" />
+<hkern u1="W" u2="&#x153;" k="41" />
+<hkern u1="W" u2="&#x152;" k="20" />
+<hkern u1="W" u2="&#xfc;" k="20" />
+<hkern u1="W" u2="&#xfb;" k="20" />
+<hkern u1="W" u2="&#xfa;" k="20" />
+<hkern u1="W" u2="&#xf9;" k="20" />
+<hkern u1="W" u2="&#xf8;" k="41" />
+<hkern u1="W" u2="&#xf6;" k="41" />
+<hkern u1="W" u2="&#xf5;" k="41" />
+<hkern u1="W" u2="&#xf4;" k="41" />
+<hkern u1="W" u2="&#xf3;" k="41" />
+<hkern u1="W" u2="&#xf2;" k="41" />
+<hkern u1="W" u2="&#xeb;" k="41" />
+<hkern u1="W" u2="&#xea;" k="41" />
+<hkern u1="W" u2="&#xe9;" k="41" />
+<hkern u1="W" u2="&#xe8;" k="41" />
+<hkern u1="W" u2="&#xe7;" k="41" />
+<hkern u1="W" u2="&#xe6;" k="41" />
+<hkern u1="W" u2="&#xe5;" k="41" />
+<hkern u1="W" u2="&#xe4;" k="41" />
+<hkern u1="W" u2="&#xe3;" k="41" />
+<hkern u1="W" u2="&#xe2;" k="41" />
+<hkern u1="W" u2="&#xe1;" k="41" />
+<hkern u1="W" u2="&#xe0;" k="41" />
+<hkern u1="W" u2="&#xd8;" k="20" />
+<hkern u1="W" u2="&#xd6;" k="20" />
+<hkern u1="W" u2="&#xd5;" k="20" />
+<hkern u1="W" u2="&#xd4;" k="20" />
+<hkern u1="W" u2="&#xd3;" k="20" />
+<hkern u1="W" u2="&#xd2;" k="20" />
+<hkern u1="W" u2="&#xc7;" k="20" />
+<hkern u1="W" u2="&#xc5;" k="82" />
+<hkern u1="W" u2="&#xc4;" k="82" />
+<hkern u1="W" u2="&#xc3;" k="82" />
+<hkern u1="W" u2="&#xc2;" k="82" />
+<hkern u1="W" u2="&#xc1;" k="82" />
+<hkern u1="W" u2="&#xc0;" k="82" />
+<hkern u1="W" u2="u" k="20" />
+<hkern u1="W" u2="s" k="20" />
+<hkern u1="W" u2="r" k="20" />
+<hkern u1="W" u2="q" k="41" />
+<hkern u1="W" u2="p" k="20" />
+<hkern u1="W" u2="o" k="41" />
+<hkern u1="W" u2="n" k="20" />
+<hkern u1="W" u2="m" k="20" />
+<hkern u1="W" u2="g" k="20" />
+<hkern u1="W" u2="e" k="41" />
+<hkern u1="W" u2="d" k="41" />
+<hkern u1="W" u2="c" k="41" />
+<hkern u1="W" u2="a" k="41" />
+<hkern u1="W" u2="Q" k="20" />
+<hkern u1="W" u2="O" k="20" />
+<hkern u1="W" u2="G" k="20" />
+<hkern u1="W" u2="C" k="20" />
+<hkern u1="W" u2="A" k="82" />
+<hkern u1="W" u2="&#x3f;" k="-41" />
+<hkern u1="W" u2="&#x2e;" k="102" />
+<hkern u1="W" u2="&#x2c;" k="102" />
+<hkern u1="X" u2="&#x152;" k="41" />
+<hkern u1="X" u2="&#xd8;" k="41" />
+<hkern u1="X" u2="&#xd6;" k="41" />
+<hkern u1="X" u2="&#xd5;" k="41" />
+<hkern u1="X" u2="&#xd4;" k="41" />
+<hkern u1="X" u2="&#xd3;" k="41" />
+<hkern u1="X" u2="&#xd2;" k="41" />
+<hkern u1="X" u2="&#xc7;" k="41" />
+<hkern u1="X" u2="Q" k="41" />
+<hkern u1="X" u2="O" k="41" />
+<hkern u1="X" u2="G" k="41" />
+<hkern u1="X" u2="C" k="41" />
+<hkern u1="Y" u2="&#x201e;" k="123" />
+<hkern u1="Y" u2="&#x201a;" k="123" />
+<hkern u1="Y" u2="&#x153;" k="102" />
+<hkern u1="Y" u2="&#x152;" k="41" />
+<hkern u1="Y" u2="&#xfc;" k="61" />
+<hkern u1="Y" u2="&#xfb;" k="61" />
+<hkern u1="Y" u2="&#xfa;" k="61" />
+<hkern u1="Y" u2="&#xf9;" k="61" />
+<hkern u1="Y" u2="&#xf8;" k="102" />
+<hkern u1="Y" u2="&#xf6;" k="102" />
+<hkern u1="Y" u2="&#xf5;" k="102" />
+<hkern u1="Y" u2="&#xf4;" k="102" />
+<hkern u1="Y" u2="&#xf3;" k="102" />
+<hkern u1="Y" u2="&#xf2;" k="102" />
+<hkern u1="Y" u2="&#xeb;" k="102" />
+<hkern u1="Y" u2="&#xea;" k="102" />
+<hkern u1="Y" u2="&#xe9;" k="102" />
+<hkern u1="Y" u2="&#xe8;" k="102" />
+<hkern u1="Y" u2="&#xe7;" k="102" />
+<hkern u1="Y" u2="&#xe6;" k="102" />
+<hkern u1="Y" u2="&#xe5;" k="102" />
+<hkern u1="Y" u2="&#xe4;" k="102" />
+<hkern u1="Y" u2="&#xe3;" k="102" />
+<hkern u1="Y" u2="&#xe2;" k="102" />
+<hkern u1="Y" u2="&#xe1;" k="102" />
+<hkern u1="Y" u2="&#xe0;" k="102" />
+<hkern u1="Y" u2="&#xd8;" k="41" />
+<hkern u1="Y" u2="&#xd6;" k="41" />
+<hkern u1="Y" u2="&#xd5;" k="41" />
+<hkern u1="Y" u2="&#xd4;" k="41" />
+<hkern u1="Y" u2="&#xd3;" k="41" />
+<hkern u1="Y" u2="&#xd2;" k="41" />
+<hkern u1="Y" u2="&#xc7;" k="41" />
+<hkern u1="Y" u2="&#xc5;" k="123" />
+<hkern u1="Y" u2="&#xc4;" k="123" />
+<hkern u1="Y" u2="&#xc3;" k="123" />
+<hkern u1="Y" u2="&#xc2;" k="123" />
+<hkern u1="Y" u2="&#xc1;" k="123" />
+<hkern u1="Y" u2="&#xc0;" k="123" />
+<hkern u1="Y" u2="z" k="41" />
+<hkern u1="Y" u2="u" k="61" />
+<hkern u1="Y" u2="s" k="82" />
+<hkern u1="Y" u2="r" k="61" />
+<hkern u1="Y" u2="q" k="102" />
+<hkern u1="Y" u2="p" k="61" />
+<hkern u1="Y" u2="o" k="102" />
+<hkern u1="Y" u2="n" k="61" />
+<hkern u1="Y" u2="m" k="61" />
+<hkern u1="Y" u2="g" k="41" />
+<hkern u1="Y" u2="e" k="102" />
+<hkern u1="Y" u2="d" k="102" />
+<hkern u1="Y" u2="c" k="102" />
+<hkern u1="Y" u2="a" k="102" />
+<hkern u1="Y" u2="Q" k="41" />
+<hkern u1="Y" u2="O" k="41" />
+<hkern u1="Y" u2="G" k="41" />
+<hkern u1="Y" u2="C" k="41" />
+<hkern u1="Y" u2="A" k="123" />
+<hkern u1="Y" u2="&#x3f;" k="-41" />
+<hkern u1="Y" u2="&#x2e;" k="123" />
+<hkern u1="Y" u2="&#x2c;" k="123" />
+<hkern u1="Z" u2="&#x152;" k="20" />
+<hkern u1="Z" u2="&#xd8;" k="20" />
+<hkern u1="Z" u2="&#xd6;" k="20" />
+<hkern u1="Z" u2="&#xd5;" k="20" />
+<hkern u1="Z" u2="&#xd4;" k="20" />
+<hkern u1="Z" u2="&#xd3;" k="20" />
+<hkern u1="Z" u2="&#xd2;" k="20" />
+<hkern u1="Z" u2="&#xc7;" k="20" />
+<hkern u1="Z" u2="Q" k="20" />
+<hkern u1="Z" u2="O" k="20" />
+<hkern u1="Z" u2="G" k="20" />
+<hkern u1="Z" u2="C" k="20" />
+<hkern u1="[" u2="J" k="-184" />
+<hkern u1="a" u2="&#x201d;" k="20" />
+<hkern u1="a" u2="&#x2019;" k="20" />
+<hkern u1="a" u2="&#x27;" k="20" />
+<hkern u1="a" u2="&#x22;" k="20" />
+<hkern u1="b" u2="&#x201d;" k="20" />
+<hkern u1="b" u2="&#x2019;" k="20" />
+<hkern u1="b" u2="&#xfd;" k="41" />
+<hkern u1="b" u2="z" k="20" />
+<hkern u1="b" u2="y" k="41" />
+<hkern u1="b" u2="x" k="41" />
+<hkern u1="b" u2="w" k="41" />
+<hkern u1="b" u2="v" k="41" />
+<hkern u1="b" u2="&#x27;" k="20" />
+<hkern u1="b" u2="&#x22;" k="20" />
+<hkern u1="c" u2="&#x201d;" k="-41" />
+<hkern u1="c" u2="&#x2019;" k="-41" />
+<hkern u1="c" u2="&#x27;" k="-41" />
+<hkern u1="c" u2="&#x22;" k="-41" />
+<hkern u1="e" u2="&#x201d;" k="20" />
+<hkern u1="e" u2="&#x2019;" k="20" />
+<hkern u1="e" u2="&#xfd;" k="41" />
+<hkern u1="e" u2="z" k="20" />
+<hkern u1="e" u2="y" k="41" />
+<hkern u1="e" u2="x" k="41" />
+<hkern u1="e" u2="w" k="41" />
+<hkern u1="e" u2="v" k="41" />
+<hkern u1="e" u2="&#x27;" k="20" />
+<hkern u1="e" u2="&#x22;" k="20" />
+<hkern u1="f" u2="&#x201d;" k="-123" />
+<hkern u1="f" u2="&#x2019;" k="-123" />
+<hkern u1="f" u2="&#x27;" k="-123" />
+<hkern u1="f" u2="&#x22;" k="-123" />
+<hkern u1="h" u2="&#x201d;" k="20" />
+<hkern u1="h" u2="&#x2019;" k="20" />
+<hkern u1="h" u2="&#x27;" k="20" />
+<hkern u1="h" u2="&#x22;" k="20" />
+<hkern u1="k" u2="&#x153;" k="41" />
+<hkern u1="k" u2="&#xf8;" k="41" />
+<hkern u1="k" u2="&#xf6;" k="41" />
+<hkern u1="k" u2="&#xf5;" k="41" />
+<hkern u1="k" u2="&#xf4;" k="41" />
+<hkern u1="k" u2="&#xf3;" k="41" />
+<hkern u1="k" u2="&#xf2;" k="41" />
+<hkern u1="k" u2="&#xeb;" k="41" />
+<hkern u1="k" u2="&#xea;" k="41" />
+<hkern u1="k" u2="&#xe9;" k="41" />
+<hkern u1="k" u2="&#xe8;" k="41" />
+<hkern u1="k" u2="&#xe7;" k="41" />
+<hkern u1="k" u2="&#xe0;" k="41" />
+<hkern u1="k" u2="q" k="41" />
+<hkern u1="k" u2="o" k="41" />
+<hkern u1="k" u2="e" k="41" />
+<hkern u1="k" u2="d" k="41" />
+<hkern u1="k" u2="c" k="41" />
+<hkern u1="m" u2="&#x201d;" k="20" />
+<hkern u1="m" u2="&#x2019;" k="20" />
+<hkern u1="m" u2="&#x27;" k="20" />
+<hkern u1="m" u2="&#x22;" k="20" />
+<hkern u1="n" u2="&#x201d;" k="20" />
+<hkern u1="n" u2="&#x2019;" k="20" />
+<hkern u1="n" u2="&#x27;" k="20" />
+<hkern u1="n" u2="&#x22;" k="20" />
+<hkern u1="o" u2="&#x201d;" k="20" />
+<hkern u1="o" u2="&#x2019;" k="20" />
+<hkern u1="o" u2="&#xfd;" k="41" />
+<hkern u1="o" u2="z" k="20" />
+<hkern u1="o" u2="y" k="41" />
+<hkern u1="o" u2="x" k="41" />
+<hkern u1="o" u2="w" k="41" />
+<hkern u1="o" u2="v" k="41" />
+<hkern u1="o" u2="&#x27;" k="20" />
+<hkern u1="o" u2="&#x22;" k="20" />
+<hkern u1="p" u2="&#x201d;" k="20" />
+<hkern u1="p" u2="&#x2019;" k="20" />
+<hkern u1="p" u2="&#xfd;" k="41" />
+<hkern u1="p" u2="z" k="20" />
+<hkern u1="p" u2="y" k="41" />
+<hkern u1="p" u2="x" k="41" />
+<hkern u1="p" u2="w" k="41" />
+<hkern u1="p" u2="v" k="41" />
+<hkern u1="p" u2="&#x27;" k="20" />
+<hkern u1="p" u2="&#x22;" k="20" />
+<hkern u1="r" u2="&#x201d;" k="-82" />
+<hkern u1="r" u2="&#x2019;" k="-82" />
+<hkern u1="r" u2="&#x153;" k="41" />
+<hkern u1="r" u2="&#xf8;" k="41" />
+<hkern u1="r" u2="&#xf6;" k="41" />
+<hkern u1="r" u2="&#xf5;" k="41" />
+<hkern u1="r" u2="&#xf4;" k="41" />
+<hkern u1="r" u2="&#xf3;" k="41" />
+<hkern u1="r" u2="&#xf2;" k="41" />
+<hkern u1="r" u2="&#xeb;" k="41" />
+<hkern u1="r" u2="&#xea;" k="41" />
+<hkern u1="r" u2="&#xe9;" k="41" />
+<hkern u1="r" u2="&#xe8;" k="41" />
+<hkern u1="r" u2="&#xe7;" k="41" />
+<hkern u1="r" u2="&#xe6;" k="41" />
+<hkern u1="r" u2="&#xe5;" k="41" />
+<hkern u1="r" u2="&#xe4;" k="41" />
+<hkern u1="r" u2="&#xe3;" k="41" />
+<hkern u1="r" u2="&#xe2;" k="41" />
+<hkern u1="r" u2="&#xe1;" k="41" />
+<hkern u1="r" u2="&#xe0;" k="41" />
+<hkern u1="r" u2="q" k="41" />
+<hkern u1="r" u2="o" k="41" />
+<hkern u1="r" u2="g" k="20" />
+<hkern u1="r" u2="e" k="41" />
+<hkern u1="r" u2="d" k="41" />
+<hkern u1="r" u2="c" k="41" />
+<hkern u1="r" u2="a" k="41" />
+<hkern u1="r" u2="&#x27;" k="-82" />
+<hkern u1="r" u2="&#x22;" k="-82" />
+<hkern u1="t" u2="&#x201d;" k="-41" />
+<hkern u1="t" u2="&#x2019;" k="-41" />
+<hkern u1="t" u2="&#x27;" k="-41" />
+<hkern u1="t" u2="&#x22;" k="-41" />
+<hkern u1="v" u2="&#x201e;" k="82" />
+<hkern u1="v" u2="&#x201d;" k="-82" />
+<hkern u1="v" u2="&#x201a;" k="82" />
+<hkern u1="v" u2="&#x2019;" k="-82" />
+<hkern u1="v" u2="&#x3f;" k="-41" />
+<hkern u1="v" u2="&#x2e;" k="82" />
+<hkern u1="v" u2="&#x2c;" k="82" />
+<hkern u1="v" u2="&#x27;" k="-82" />
+<hkern u1="v" u2="&#x22;" k="-82" />
+<hkern u1="w" u2="&#x201e;" k="82" />
+<hkern u1="w" u2="&#x201d;" k="-82" />
+<hkern u1="w" u2="&#x201a;" k="82" />
+<hkern u1="w" u2="&#x2019;" k="-82" />
+<hkern u1="w" u2="&#x3f;" k="-41" />
+<hkern u1="w" u2="&#x2e;" k="82" />
+<hkern u1="w" u2="&#x2c;" k="82" />
+<hkern u1="w" u2="&#x27;" k="-82" />
+<hkern u1="w" u2="&#x22;" k="-82" />
+<hkern u1="x" u2="&#x153;" k="41" />
+<hkern u1="x" u2="&#xf8;" k="41" />
+<hkern u1="x" u2="&#xf6;" k="41" />
+<hkern u1="x" u2="&#xf5;" k="41" />
+<hkern u1="x" u2="&#xf4;" k="41" />
+<hkern u1="x" u2="&#xf3;" k="41" />
+<hkern u1="x" u2="&#xf2;" k="41" />
+<hkern u1="x" u2="&#xeb;" k="41" />
+<hkern u1="x" u2="&#xea;" k="41" />
+<hkern u1="x" u2="&#xe9;" k="41" />
+<hkern u1="x" u2="&#xe8;" k="41" />
+<hkern u1="x" u2="&#xe7;" k="41" />
+<hkern u1="x" u2="&#xe0;" k="41" />
+<hkern u1="x" u2="q" k="41" />
+<hkern u1="x" u2="o" k="41" />
+<hkern u1="x" u2="e" k="41" />
+<hkern u1="x" u2="d" k="41" />
+<hkern u1="x" u2="c" k="41" />
+<hkern u1="y" u2="&#x201e;" k="82" />
+<hkern u1="y" u2="&#x201d;" k="-82" />
+<hkern u1="y" u2="&#x201a;" k="82" />
+<hkern u1="y" u2="&#x2019;" k="-82" />
+<hkern u1="y" u2="&#x3f;" k="-41" />
+<hkern u1="y" u2="&#x2e;" k="82" />
+<hkern u1="y" u2="&#x2c;" k="82" />
+<hkern u1="y" u2="&#x27;" k="-82" />
+<hkern u1="y" u2="&#x22;" k="-82" />
+<hkern u1="&#x7b;" u2="J" k="-184" />
+<hkern u1="&#xc0;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc0;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc0;" u2="&#x178;" k="123" />
+<hkern u1="&#xc0;" u2="&#x152;" k="41" />
+<hkern u1="&#xc0;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc0;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc0;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc0;" u2="Y" k="123" />
+<hkern u1="&#xc0;" u2="W" k="82" />
+<hkern u1="&#xc0;" u2="V" k="82" />
+<hkern u1="&#xc0;" u2="T" k="143" />
+<hkern u1="&#xc0;" u2="Q" k="41" />
+<hkern u1="&#xc0;" u2="O" k="41" />
+<hkern u1="&#xc0;" u2="J" k="-266" />
+<hkern u1="&#xc0;" u2="G" k="41" />
+<hkern u1="&#xc0;" u2="C" k="41" />
+<hkern u1="&#xc0;" u2="&#x27;" k="143" />
+<hkern u1="&#xc0;" u2="&#x22;" k="143" />
+<hkern u1="&#xc1;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc1;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc1;" u2="&#x178;" k="123" />
+<hkern u1="&#xc1;" u2="&#x152;" k="41" />
+<hkern u1="&#xc1;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc1;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc1;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc1;" u2="Y" k="123" />
+<hkern u1="&#xc1;" u2="W" k="82" />
+<hkern u1="&#xc1;" u2="V" k="82" />
+<hkern u1="&#xc1;" u2="T" k="143" />
+<hkern u1="&#xc1;" u2="Q" k="41" />
+<hkern u1="&#xc1;" u2="O" k="41" />
+<hkern u1="&#xc1;" u2="J" k="-266" />
+<hkern u1="&#xc1;" u2="G" k="41" />
+<hkern u1="&#xc1;" u2="C" k="41" />
+<hkern u1="&#xc1;" u2="&#x27;" k="143" />
+<hkern u1="&#xc1;" u2="&#x22;" k="143" />
+<hkern u1="&#xc2;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc2;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc2;" u2="&#x178;" k="123" />
+<hkern u1="&#xc2;" u2="&#x152;" k="41" />
+<hkern u1="&#xc2;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc2;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc2;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc2;" u2="Y" k="123" />
+<hkern u1="&#xc2;" u2="W" k="82" />
+<hkern u1="&#xc2;" u2="V" k="82" />
+<hkern u1="&#xc2;" u2="T" k="143" />
+<hkern u1="&#xc2;" u2="Q" k="41" />
+<hkern u1="&#xc2;" u2="O" k="41" />
+<hkern u1="&#xc2;" u2="J" k="-266" />
+<hkern u1="&#xc2;" u2="G" k="41" />
+<hkern u1="&#xc2;" u2="C" k="41" />
+<hkern u1="&#xc2;" u2="&#x27;" k="143" />
+<hkern u1="&#xc2;" u2="&#x22;" k="143" />
+<hkern u1="&#xc3;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc3;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc3;" u2="&#x178;" k="123" />
+<hkern u1="&#xc3;" u2="&#x152;" k="41" />
+<hkern u1="&#xc3;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc3;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc3;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc3;" u2="Y" k="123" />
+<hkern u1="&#xc3;" u2="W" k="82" />
+<hkern u1="&#xc3;" u2="V" k="82" />
+<hkern u1="&#xc3;" u2="T" k="143" />
+<hkern u1="&#xc3;" u2="Q" k="41" />
+<hkern u1="&#xc3;" u2="O" k="41" />
+<hkern u1="&#xc3;" u2="J" k="-266" />
+<hkern u1="&#xc3;" u2="G" k="41" />
+<hkern u1="&#xc3;" u2="C" k="41" />
+<hkern u1="&#xc3;" u2="&#x27;" k="143" />
+<hkern u1="&#xc3;" u2="&#x22;" k="143" />
+<hkern u1="&#xc4;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc4;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc4;" u2="&#x178;" k="123" />
+<hkern u1="&#xc4;" u2="&#x152;" k="41" />
+<hkern u1="&#xc4;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc4;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc4;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc4;" u2="Y" k="123" />
+<hkern u1="&#xc4;" u2="W" k="82" />
+<hkern u1="&#xc4;" u2="V" k="82" />
+<hkern u1="&#xc4;" u2="T" k="143" />
+<hkern u1="&#xc4;" u2="Q" k="41" />
+<hkern u1="&#xc4;" u2="O" k="41" />
+<hkern u1="&#xc4;" u2="J" k="-266" />
+<hkern u1="&#xc4;" u2="G" k="41" />
+<hkern u1="&#xc4;" u2="C" k="41" />
+<hkern u1="&#xc4;" u2="&#x27;" k="143" />
+<hkern u1="&#xc4;" u2="&#x22;" k="143" />
+<hkern u1="&#xc5;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc5;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc5;" u2="&#x178;" k="123" />
+<hkern u1="&#xc5;" u2="&#x152;" k="41" />
+<hkern u1="&#xc5;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc5;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc5;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc5;" u2="Y" k="123" />
+<hkern u1="&#xc5;" u2="W" k="82" />
+<hkern u1="&#xc5;" u2="V" k="82" />
+<hkern u1="&#xc5;" u2="T" k="143" />
+<hkern u1="&#xc5;" u2="Q" k="41" />
+<hkern u1="&#xc5;" u2="O" k="41" />
+<hkern u1="&#xc5;" u2="J" k="-266" />
+<hkern u1="&#xc5;" u2="G" k="41" />
+<hkern u1="&#xc5;" u2="C" k="41" />
+<hkern u1="&#xc5;" u2="&#x27;" k="143" />
+<hkern u1="&#xc5;" u2="&#x22;" k="143" />
+<hkern u1="&#xc6;" u2="J" k="-123" />
+<hkern u1="&#xc7;" u2="&#x152;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc7;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc7;" u2="Q" k="41" />
+<hkern u1="&#xc7;" u2="O" k="41" />
+<hkern u1="&#xc7;" u2="G" k="41" />
+<hkern u1="&#xc7;" u2="C" k="41" />
+<hkern u1="&#xc8;" u2="J" k="-123" />
+<hkern u1="&#xc9;" u2="J" k="-123" />
+<hkern u1="&#xca;" u2="J" k="-123" />
+<hkern u1="&#xcb;" u2="J" k="-123" />
+<hkern u1="&#xd0;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd0;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd0;" u2="&#x178;" k="20" />
+<hkern u1="&#xd0;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd0;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd0;" u2="Z" k="20" />
+<hkern u1="&#xd0;" u2="Y" k="20" />
+<hkern u1="&#xd0;" u2="X" k="41" />
+<hkern u1="&#xd0;" u2="W" k="20" />
+<hkern u1="&#xd0;" u2="V" k="20" />
+<hkern u1="&#xd0;" u2="T" k="61" />
+<hkern u1="&#xd0;" u2="A" k="41" />
+<hkern u1="&#xd0;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd0;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd2;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd2;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd2;" u2="&#x178;" k="20" />
+<hkern u1="&#xd2;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd2;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd2;" u2="Z" k="20" />
+<hkern u1="&#xd2;" u2="Y" k="20" />
+<hkern u1="&#xd2;" u2="X" k="41" />
+<hkern u1="&#xd2;" u2="W" k="20" />
+<hkern u1="&#xd2;" u2="V" k="20" />
+<hkern u1="&#xd2;" u2="T" k="61" />
+<hkern u1="&#xd2;" u2="A" k="41" />
+<hkern u1="&#xd2;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd2;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd3;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd3;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd3;" u2="&#x178;" k="20" />
+<hkern u1="&#xd3;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd3;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd3;" u2="Z" k="20" />
+<hkern u1="&#xd3;" u2="Y" k="20" />
+<hkern u1="&#xd3;" u2="X" k="41" />
+<hkern u1="&#xd3;" u2="W" k="20" />
+<hkern u1="&#xd3;" u2="V" k="20" />
+<hkern u1="&#xd3;" u2="T" k="61" />
+<hkern u1="&#xd3;" u2="A" k="41" />
+<hkern u1="&#xd3;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd3;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd4;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd4;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd4;" u2="&#x178;" k="20" />
+<hkern u1="&#xd4;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd4;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd4;" u2="Z" k="20" />
+<hkern u1="&#xd4;" u2="Y" k="20" />
+<hkern u1="&#xd4;" u2="X" k="41" />
+<hkern u1="&#xd4;" u2="W" k="20" />
+<hkern u1="&#xd4;" u2="V" k="20" />
+<hkern u1="&#xd4;" u2="T" k="61" />
+<hkern u1="&#xd4;" u2="A" k="41" />
+<hkern u1="&#xd4;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd4;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd5;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd5;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd5;" u2="&#x178;" k="20" />
+<hkern u1="&#xd5;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd5;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd5;" u2="Z" k="20" />
+<hkern u1="&#xd5;" u2="Y" k="20" />
+<hkern u1="&#xd5;" u2="X" k="41" />
+<hkern u1="&#xd5;" u2="W" k="20" />
+<hkern u1="&#xd5;" u2="V" k="20" />
+<hkern u1="&#xd5;" u2="T" k="61" />
+<hkern u1="&#xd5;" u2="A" k="41" />
+<hkern u1="&#xd5;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd5;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd6;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd6;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd6;" u2="&#x178;" k="20" />
+<hkern u1="&#xd6;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd6;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd6;" u2="Z" k="20" />
+<hkern u1="&#xd6;" u2="Y" k="20" />
+<hkern u1="&#xd6;" u2="X" k="41" />
+<hkern u1="&#xd6;" u2="W" k="20" />
+<hkern u1="&#xd6;" u2="V" k="20" />
+<hkern u1="&#xd6;" u2="T" k="61" />
+<hkern u1="&#xd6;" u2="A" k="41" />
+<hkern u1="&#xd6;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd6;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd8;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd8;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd8;" u2="&#x178;" k="20" />
+<hkern u1="&#xd8;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd8;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd8;" u2="Z" k="20" />
+<hkern u1="&#xd8;" u2="Y" k="20" />
+<hkern u1="&#xd8;" u2="X" k="41" />
+<hkern u1="&#xd8;" u2="W" k="20" />
+<hkern u1="&#xd8;" u2="V" k="20" />
+<hkern u1="&#xd8;" u2="T" k="61" />
+<hkern u1="&#xd8;" u2="A" k="41" />
+<hkern u1="&#xd8;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd8;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd9;" u2="&#x201e;" k="41" />
+<hkern u1="&#xd9;" u2="&#x201a;" k="41" />
+<hkern u1="&#xd9;" u2="&#xc5;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc4;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc3;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc2;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc1;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc0;" k="20" />
+<hkern u1="&#xd9;" u2="A" k="20" />
+<hkern u1="&#xd9;" u2="&#x2e;" k="41" />
+<hkern u1="&#xd9;" u2="&#x2c;" k="41" />
+<hkern u1="&#xda;" u2="&#x201e;" k="41" />
+<hkern u1="&#xda;" u2="&#x201a;" k="41" />
+<hkern u1="&#xda;" u2="&#xc5;" k="20" />
+<hkern u1="&#xda;" u2="&#xc4;" k="20" />
+<hkern u1="&#xda;" u2="&#xc3;" k="20" />
+<hkern u1="&#xda;" u2="&#xc2;" k="20" />
+<hkern u1="&#xda;" u2="&#xc1;" k="20" />
+<hkern u1="&#xda;" u2="&#xc0;" k="20" />
+<hkern u1="&#xda;" u2="A" k="20" />
+<hkern u1="&#xda;" u2="&#x2e;" k="41" />
+<hkern u1="&#xda;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdb;" u2="&#x201e;" k="41" />
+<hkern u1="&#xdb;" u2="&#x201a;" k="41" />
+<hkern u1="&#xdb;" u2="&#xc5;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc4;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc3;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc2;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc1;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc0;" k="20" />
+<hkern u1="&#xdb;" u2="A" k="20" />
+<hkern u1="&#xdb;" u2="&#x2e;" k="41" />
+<hkern u1="&#xdb;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdc;" u2="&#x201e;" k="41" />
+<hkern u1="&#xdc;" u2="&#x201a;" k="41" />
+<hkern u1="&#xdc;" u2="&#xc5;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc4;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc3;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc2;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc1;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc0;" k="20" />
+<hkern u1="&#xdc;" u2="A" k="20" />
+<hkern u1="&#xdc;" u2="&#x2e;" k="41" />
+<hkern u1="&#xdc;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdd;" u2="&#x201e;" k="123" />
+<hkern u1="&#xdd;" u2="&#x201a;" k="123" />
+<hkern u1="&#xdd;" u2="&#x153;" k="102" />
+<hkern u1="&#xdd;" u2="&#x152;" k="41" />
+<hkern u1="&#xdd;" u2="&#xfc;" k="61" />
+<hkern u1="&#xdd;" u2="&#xfb;" k="61" />
+<hkern u1="&#xdd;" u2="&#xfa;" k="61" />
+<hkern u1="&#xdd;" u2="&#xf9;" k="61" />
+<hkern u1="&#xdd;" u2="&#xf8;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf6;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf5;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf4;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf3;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf2;" k="102" />
+<hkern u1="&#xdd;" u2="&#xeb;" k="102" />
+<hkern u1="&#xdd;" u2="&#xea;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe9;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe8;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe7;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe6;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe5;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe4;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe3;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe2;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe1;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe0;" k="102" />
+<hkern u1="&#xdd;" u2="&#xd8;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd6;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd5;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd4;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd3;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd2;" k="41" />
+<hkern u1="&#xdd;" u2="&#xc7;" k="41" />
+<hkern u1="&#xdd;" u2="&#xc5;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc4;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc3;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc2;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc1;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc0;" k="123" />
+<hkern u1="&#xdd;" u2="z" k="41" />
+<hkern u1="&#xdd;" u2="u" k="61" />
+<hkern u1="&#xdd;" u2="s" k="82" />
+<hkern u1="&#xdd;" u2="r" k="61" />
+<hkern u1="&#xdd;" u2="q" k="102" />
+<hkern u1="&#xdd;" u2="p" k="61" />
+<hkern u1="&#xdd;" u2="o" k="102" />
+<hkern u1="&#xdd;" u2="n" k="61" />
+<hkern u1="&#xdd;" u2="m" k="61" />
+<hkern u1="&#xdd;" u2="g" k="41" />
+<hkern u1="&#xdd;" u2="e" k="102" />
+<hkern u1="&#xdd;" u2="d" k="102" />
+<hkern u1="&#xdd;" u2="c" k="102" />
+<hkern u1="&#xdd;" u2="a" k="102" />
+<hkern u1="&#xdd;" u2="Q" k="41" />
+<hkern u1="&#xdd;" u2="O" k="41" />
+<hkern u1="&#xdd;" u2="G" k="41" />
+<hkern u1="&#xdd;" u2="C" k="41" />
+<hkern u1="&#xdd;" u2="A" k="123" />
+<hkern u1="&#xdd;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xdd;" u2="&#x2e;" k="123" />
+<hkern u1="&#xdd;" u2="&#x2c;" k="123" />
+<hkern u1="&#xde;" u2="&#x201e;" k="266" />
+<hkern u1="&#xde;" u2="&#x201a;" k="266" />
+<hkern u1="&#xde;" u2="&#xc5;" k="102" />
+<hkern u1="&#xde;" u2="&#xc4;" k="102" />
+<hkern u1="&#xde;" u2="&#xc3;" k="102" />
+<hkern u1="&#xde;" u2="&#xc2;" k="102" />
+<hkern u1="&#xde;" u2="&#xc1;" k="102" />
+<hkern u1="&#xde;" u2="&#xc0;" k="102" />
+<hkern u1="&#xde;" u2="Z" k="20" />
+<hkern u1="&#xde;" u2="X" k="41" />
+<hkern u1="&#xde;" u2="A" k="102" />
+<hkern u1="&#xde;" u2="&#x2e;" k="266" />
+<hkern u1="&#xde;" u2="&#x2c;" k="266" />
+<hkern u1="&#xe0;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe0;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe0;" u2="&#x27;" k="20" />
+<hkern u1="&#xe0;" u2="&#x22;" k="20" />
+<hkern u1="&#xe1;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe1;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe1;" u2="&#x27;" k="20" />
+<hkern u1="&#xe1;" u2="&#x22;" k="20" />
+<hkern u1="&#xe2;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe2;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe2;" u2="&#x27;" k="20" />
+<hkern u1="&#xe2;" u2="&#x22;" k="20" />
+<hkern u1="&#xe3;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe3;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe3;" u2="&#x27;" k="20" />
+<hkern u1="&#xe3;" u2="&#x22;" k="20" />
+<hkern u1="&#xe4;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe4;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe4;" u2="&#x27;" k="20" />
+<hkern u1="&#xe4;" u2="&#x22;" k="20" />
+<hkern u1="&#xe5;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe5;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe5;" u2="&#x27;" k="20" />
+<hkern u1="&#xe5;" u2="&#x22;" k="20" />
+<hkern u1="&#xe8;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe8;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe8;" u2="&#xfd;" k="41" />
+<hkern u1="&#xe8;" u2="z" k="20" />
+<hkern u1="&#xe8;" u2="y" k="41" />
+<hkern u1="&#xe8;" u2="x" k="41" />
+<hkern u1="&#xe8;" u2="w" k="41" />
+<hkern u1="&#xe8;" u2="v" k="41" />
+<hkern u1="&#xe8;" u2="&#x27;" k="20" />
+<hkern u1="&#xe8;" u2="&#x22;" k="20" />
+<hkern u1="&#xe9;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe9;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe9;" u2="&#xfd;" k="41" />
+<hkern u1="&#xe9;" u2="z" k="20" />
+<hkern u1="&#xe9;" u2="y" k="41" />
+<hkern u1="&#xe9;" u2="x" k="41" />
+<hkern u1="&#xe9;" u2="w" k="41" />
+<hkern u1="&#xe9;" u2="v" k="41" />
+<hkern u1="&#xe9;" u2="&#x27;" k="20" />
+<hkern u1="&#xe9;" u2="&#x22;" k="20" />
+<hkern u1="&#xea;" u2="&#x201d;" k="20" />
+<hkern u1="&#xea;" u2="&#x2019;" k="20" />
+<hkern u1="&#xea;" u2="&#xfd;" k="41" />
+<hkern u1="&#xea;" u2="z" k="20" />
+<hkern u1="&#xea;" u2="y" k="41" />
+<hkern u1="&#xea;" u2="x" k="41" />
+<hkern u1="&#xea;" u2="w" k="41" />
+<hkern u1="&#xea;" u2="v" k="41" />
+<hkern u1="&#xea;" u2="&#x27;" k="20" />
+<hkern u1="&#xea;" u2="&#x22;" k="20" />
+<hkern u1="&#xeb;" u2="&#x201d;" k="20" />
+<hkern u1="&#xeb;" u2="&#x2019;" k="20" />
+<hkern u1="&#xeb;" u2="&#xfd;" k="41" />
+<hkern u1="&#xeb;" u2="z" k="20" />
+<hkern u1="&#xeb;" u2="y" k="41" />
+<hkern u1="&#xeb;" u2="x" k="41" />
+<hkern u1="&#xeb;" u2="w" k="41" />
+<hkern u1="&#xeb;" u2="v" k="41" />
+<hkern u1="&#xeb;" u2="&#x27;" k="20" />
+<hkern u1="&#xeb;" u2="&#x22;" k="20" />
+<hkern u1="&#xf0;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf0;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf0;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf0;" u2="z" k="20" />
+<hkern u1="&#xf0;" u2="y" k="41" />
+<hkern u1="&#xf0;" u2="x" k="41" />
+<hkern u1="&#xf0;" u2="w" k="41" />
+<hkern u1="&#xf0;" u2="v" k="41" />
+<hkern u1="&#xf0;" u2="&#x27;" k="20" />
+<hkern u1="&#xf0;" u2="&#x22;" k="20" />
+<hkern u1="&#xf2;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf2;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf2;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf2;" u2="z" k="20" />
+<hkern u1="&#xf2;" u2="y" k="41" />
+<hkern u1="&#xf2;" u2="x" k="41" />
+<hkern u1="&#xf2;" u2="w" k="41" />
+<hkern u1="&#xf2;" u2="v" k="41" />
+<hkern u1="&#xf2;" u2="&#x27;" k="20" />
+<hkern u1="&#xf2;" u2="&#x22;" k="20" />
+<hkern u1="&#xf3;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf3;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf3;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf3;" u2="z" k="20" />
+<hkern u1="&#xf3;" u2="y" k="41" />
+<hkern u1="&#xf3;" u2="x" k="41" />
+<hkern u1="&#xf3;" u2="w" k="41" />
+<hkern u1="&#xf3;" u2="v" k="41" />
+<hkern u1="&#xf3;" u2="&#x27;" k="20" />
+<hkern u1="&#xf3;" u2="&#x22;" k="20" />
+<hkern u1="&#xf4;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf4;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf4;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf4;" u2="z" k="20" />
+<hkern u1="&#xf4;" u2="y" k="41" />
+<hkern u1="&#xf4;" u2="x" k="41" />
+<hkern u1="&#xf4;" u2="w" k="41" />
+<hkern u1="&#xf4;" u2="v" k="41" />
+<hkern u1="&#xf4;" u2="&#x27;" k="20" />
+<hkern u1="&#xf4;" u2="&#x22;" k="20" />
+<hkern u1="&#xf6;" u2="&#x201d;" k="41" />
+<hkern u1="&#xf6;" u2="&#x2019;" k="41" />
+<hkern u1="&#xf6;" u2="&#x27;" k="41" />
+<hkern u1="&#xf6;" u2="&#x22;" k="41" />
+<hkern u1="&#xf8;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf8;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf8;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf8;" u2="z" k="20" />
+<hkern u1="&#xf8;" u2="y" k="41" />
+<hkern u1="&#xf8;" u2="x" k="41" />
+<hkern u1="&#xf8;" u2="w" k="41" />
+<hkern u1="&#xf8;" u2="v" k="41" />
+<hkern u1="&#xf8;" u2="&#x27;" k="20" />
+<hkern u1="&#xf8;" u2="&#x22;" k="20" />
+<hkern u1="&#xfd;" u2="&#x201e;" k="82" />
+<hkern u1="&#xfd;" u2="&#x201d;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x201a;" k="82" />
+<hkern u1="&#xfd;" u2="&#x2019;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xfd;" u2="&#x2e;" k="82" />
+<hkern u1="&#xfd;" u2="&#x2c;" k="82" />
+<hkern u1="&#xfd;" u2="&#x27;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x22;" k="-82" />
+<hkern u1="&#xfe;" u2="&#x201d;" k="20" />
+<hkern u1="&#xfe;" u2="&#x2019;" k="20" />
+<hkern u1="&#xfe;" u2="&#xfd;" k="41" />
+<hkern u1="&#xfe;" u2="z" k="20" />
+<hkern u1="&#xfe;" u2="y" k="41" />
+<hkern u1="&#xfe;" u2="x" k="41" />
+<hkern u1="&#xfe;" u2="w" k="41" />
+<hkern u1="&#xfe;" u2="v" k="41" />
+<hkern u1="&#xfe;" u2="&#x27;" k="20" />
+<hkern u1="&#xfe;" u2="&#x22;" k="20" />
+<hkern u1="&#xff;" u2="&#x201e;" k="82" />
+<hkern u1="&#xff;" u2="&#x201d;" k="-82" />
+<hkern u1="&#xff;" u2="&#x201a;" k="82" />
+<hkern u1="&#xff;" u2="&#x2019;" k="-82" />
+<hkern u1="&#xff;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xff;" u2="&#x2e;" k="82" />
+<hkern u1="&#xff;" u2="&#x2c;" k="82" />
+<hkern u1="&#xff;" u2="&#x27;" k="-82" />
+<hkern u1="&#xff;" u2="&#x22;" k="-82" />
+<hkern u1="&#x152;" u2="J" k="-123" />
+<hkern u1="&#x178;" u2="&#x201e;" k="123" />
+<hkern u1="&#x178;" u2="&#x201a;" k="123" />
+<hkern u1="&#x178;" u2="&#x153;" k="102" />
+<hkern u1="&#x178;" u2="&#x152;" k="41" />
+<hkern u1="&#x178;" u2="&#xfc;" k="61" />
+<hkern u1="&#x178;" u2="&#xfb;" k="61" />
+<hkern u1="&#x178;" u2="&#xfa;" k="61" />
+<hkern u1="&#x178;" u2="&#xf9;" k="61" />
+<hkern u1="&#x178;" u2="&#xf8;" k="102" />
+<hkern u1="&#x178;" u2="&#xf6;" k="102" />
+<hkern u1="&#x178;" u2="&#xf5;" k="102" />
+<hkern u1="&#x178;" u2="&#xf4;" k="102" />
+<hkern u1="&#x178;" u2="&#xf3;" k="102" />
+<hkern u1="&#x178;" u2="&#xf2;" k="102" />
+<hkern u1="&#x178;" u2="&#xeb;" k="102" />
+<hkern u1="&#x178;" u2="&#xea;" k="102" />
+<hkern u1="&#x178;" u2="&#xe9;" k="102" />
+<hkern u1="&#x178;" u2="&#xe8;" k="102" />
+<hkern u1="&#x178;" u2="&#xe7;" k="102" />
+<hkern u1="&#x178;" u2="&#xe6;" k="102" />
+<hkern u1="&#x178;" u2="&#xe5;" k="102" />
+<hkern u1="&#x178;" u2="&#xe4;" k="102" />
+<hkern u1="&#x178;" u2="&#xe3;" k="102" />
+<hkern u1="&#x178;" u2="&#xe2;" k="102" />
+<hkern u1="&#x178;" u2="&#xe1;" k="102" />
+<hkern u1="&#x178;" u2="&#xe0;" k="102" />
+<hkern u1="&#x178;" u2="&#xd8;" k="41" />
+<hkern u1="&#x178;" u2="&#xd6;" k="41" />
+<hkern u1="&#x178;" u2="&#xd5;" k="41" />
+<hkern u1="&#x178;" u2="&#xd4;" k="41" />
+<hkern u1="&#x178;" u2="&#xd3;" k="41" />
+<hkern u1="&#x178;" u2="&#xd2;" k="41" />
+<hkern u1="&#x178;" u2="&#xc7;" k="41" />
+<hkern u1="&#x178;" u2="&#xc5;" k="123" />
+<hkern u1="&#x178;" u2="&#xc4;" k="123" />
+<hkern u1="&#x178;" u2="&#xc3;" k="123" />
+<hkern u1="&#x178;" u2="&#xc2;" k="123" />
+<hkern u1="&#x178;" u2="&#xc1;" k="123" />
+<hkern u1="&#x178;" u2="&#xc0;" k="123" />
+<hkern u1="&#x178;" u2="z" k="41" />
+<hkern u1="&#x178;" u2="u" k="61" />
+<hkern u1="&#x178;" u2="s" k="82" />
+<hkern u1="&#x178;" u2="r" k="61" />
+<hkern u1="&#x178;" u2="q" k="102" />
+<hkern u1="&#x178;" u2="p" k="61" />
+<hkern u1="&#x178;" u2="o" k="102" />
+<hkern u1="&#x178;" u2="n" k="61" />
+<hkern u1="&#x178;" u2="m" k="61" />
+<hkern u1="&#x178;" u2="g" k="41" />
+<hkern u1="&#x178;" u2="e" k="102" />
+<hkern u1="&#x178;" u2="d" k="102" />
+<hkern u1="&#x178;" u2="c" k="102" />
+<hkern u1="&#x178;" u2="a" k="102" />
+<hkern u1="&#x178;" u2="Q" k="41" />
+<hkern u1="&#x178;" u2="O" k="41" />
+<hkern u1="&#x178;" u2="G" k="41" />
+<hkern u1="&#x178;" u2="C" k="41" />
+<hkern u1="&#x178;" u2="A" k="123" />
+<hkern u1="&#x178;" u2="&#x3f;" k="-41" />
+<hkern u1="&#x178;" u2="&#x2e;" k="123" />
+<hkern u1="&#x178;" u2="&#x2c;" k="123" />
+<hkern u1="&#x2013;" u2="T" k="82" />
+<hkern u1="&#x2014;" u2="T" k="82" />
+<hkern u1="&#x2018;" u2="&#x178;" k="-20" />
+<hkern u1="&#x2018;" u2="&#x153;" k="123" />
+<hkern u1="&#x2018;" u2="&#xfc;" k="61" />
+<hkern u1="&#x2018;" u2="&#xfb;" k="61" />
+<hkern u1="&#x2018;" u2="&#xfa;" k="61" />
+<hkern u1="&#x2018;" u2="&#xf9;" k="61" />
+<hkern u1="&#x2018;" u2="&#xf8;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf6;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf5;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf4;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf3;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf2;" k="123" />
+<hkern u1="&#x2018;" u2="&#xeb;" k="123" />
+<hkern u1="&#x2018;" u2="&#xea;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe9;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe8;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe7;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe6;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe5;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe4;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe3;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe2;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe1;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe0;" k="123" />
+<hkern u1="&#x2018;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x2018;" u2="&#xc5;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc4;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc3;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc2;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc1;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc0;" k="143" />
+<hkern u1="&#x2018;" u2="u" k="61" />
+<hkern u1="&#x2018;" u2="s" k="61" />
+<hkern u1="&#x2018;" u2="r" k="61" />
+<hkern u1="&#x2018;" u2="q" k="123" />
+<hkern u1="&#x2018;" u2="p" k="61" />
+<hkern u1="&#x2018;" u2="o" k="123" />
+<hkern u1="&#x2018;" u2="n" k="61" />
+<hkern u1="&#x2018;" u2="m" k="61" />
+<hkern u1="&#x2018;" u2="g" k="61" />
+<hkern u1="&#x2018;" u2="e" k="123" />
+<hkern u1="&#x2018;" u2="d" k="123" />
+<hkern u1="&#x2018;" u2="c" k="123" />
+<hkern u1="&#x2018;" u2="a" k="82" />
+<hkern u1="&#x2018;" u2="Y" k="-20" />
+<hkern u1="&#x2018;" u2="W" k="-41" />
+<hkern u1="&#x2018;" u2="V" k="-41" />
+<hkern u1="&#x2018;" u2="T" k="-41" />
+<hkern u1="&#x2018;" u2="A" k="143" />
+<hkern u1="&#x2019;" u2="&#x178;" k="-20" />
+<hkern u1="&#x2019;" u2="&#x153;" k="123" />
+<hkern u1="&#x2019;" u2="&#xfc;" k="61" />
+<hkern u1="&#x2019;" u2="&#xfb;" k="61" />
+<hkern u1="&#x2019;" u2="&#xfa;" k="61" />
+<hkern u1="&#x2019;" u2="&#xf9;" k="61" />
+<hkern u1="&#x2019;" u2="&#xf8;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf6;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf5;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf4;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf3;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf2;" k="123" />
+<hkern u1="&#x2019;" u2="&#xeb;" k="123" />
+<hkern u1="&#x2019;" u2="&#xea;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe9;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe8;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe7;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe6;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe5;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe4;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe3;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe2;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe1;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe0;" k="123" />
+<hkern u1="&#x2019;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x2019;" u2="&#xc5;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc4;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc3;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc2;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc1;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc0;" k="143" />
+<hkern u1="&#x2019;" u2="u" k="61" />
+<hkern u1="&#x2019;" u2="s" k="61" />
+<hkern u1="&#x2019;" u2="r" k="61" />
+<hkern u1="&#x2019;" u2="q" k="123" />
+<hkern u1="&#x2019;" u2="p" k="61" />
+<hkern u1="&#x2019;" u2="o" k="123" />
+<hkern u1="&#x2019;" u2="n" k="61" />
+<hkern u1="&#x2019;" u2="m" k="61" />
+<hkern u1="&#x2019;" u2="g" k="61" />
+<hkern u1="&#x2019;" u2="e" k="123" />
+<hkern u1="&#x2019;" u2="d" k="123" />
+<hkern u1="&#x2019;" u2="c" k="123" />
+<hkern u1="&#x2019;" u2="a" k="82" />
+<hkern u1="&#x2019;" u2="Y" k="-20" />
+<hkern u1="&#x2019;" u2="W" k="-41" />
+<hkern u1="&#x2019;" u2="V" k="-41" />
+<hkern u1="&#x2019;" u2="T" k="-41" />
+<hkern u1="&#x2019;" u2="A" k="143" />
+<hkern u1="&#x201a;" u2="&#x178;" k="123" />
+<hkern u1="&#x201a;" u2="&#x152;" k="102" />
+<hkern u1="&#x201a;" u2="&#xdd;" k="123" />
+<hkern u1="&#x201a;" u2="&#xdc;" k="41" />
+<hkern u1="&#x201a;" u2="&#xdb;" k="41" />
+<hkern u1="&#x201a;" u2="&#xda;" k="41" />
+<hkern u1="&#x201a;" u2="&#xd9;" k="41" />
+<hkern u1="&#x201a;" u2="&#xd8;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd6;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd5;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd4;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd3;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd2;" k="102" />
+<hkern u1="&#x201a;" u2="&#xc7;" k="102" />
+<hkern u1="&#x201a;" u2="Y" k="123" />
+<hkern u1="&#x201a;" u2="W" k="123" />
+<hkern u1="&#x201a;" u2="V" k="123" />
+<hkern u1="&#x201a;" u2="U" k="41" />
+<hkern u1="&#x201a;" u2="T" k="143" />
+<hkern u1="&#x201a;" u2="Q" k="102" />
+<hkern u1="&#x201a;" u2="O" k="102" />
+<hkern u1="&#x201a;" u2="G" k="102" />
+<hkern u1="&#x201a;" u2="C" k="102" />
+<hkern u1="&#x201c;" u2="&#x178;" k="-20" />
+<hkern u1="&#x201c;" u2="&#x153;" k="123" />
+<hkern u1="&#x201c;" u2="&#xfc;" k="61" />
+<hkern u1="&#x201c;" u2="&#xfb;" k="61" />
+<hkern u1="&#x201c;" u2="&#xfa;" k="61" />
+<hkern u1="&#x201c;" u2="&#xf9;" k="61" />
+<hkern u1="&#x201c;" u2="&#xf8;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf6;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf5;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf4;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf3;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf2;" k="123" />
+<hkern u1="&#x201c;" u2="&#xeb;" k="123" />
+<hkern u1="&#x201c;" u2="&#xea;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe9;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe8;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe7;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe6;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe5;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe4;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe3;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe2;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe1;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe0;" k="123" />
+<hkern u1="&#x201c;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x201c;" u2="&#xc5;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc4;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc3;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc2;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc1;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc0;" k="143" />
+<hkern u1="&#x201c;" u2="u" k="61" />
+<hkern u1="&#x201c;" u2="s" k="61" />
+<hkern u1="&#x201c;" u2="r" k="61" />
+<hkern u1="&#x201c;" u2="q" k="123" />
+<hkern u1="&#x201c;" u2="p" k="61" />
+<hkern u1="&#x201c;" u2="o" k="123" />
+<hkern u1="&#x201c;" u2="n" k="61" />
+<hkern u1="&#x201c;" u2="m" k="61" />
+<hkern u1="&#x201c;" u2="g" k="61" />
+<hkern u1="&#x201c;" u2="e" k="123" />
+<hkern u1="&#x201c;" u2="d" k="123" />
+<hkern u1="&#x201c;" u2="c" k="123" />
+<hkern u1="&#x201c;" u2="a" k="82" />
+<hkern u1="&#x201c;" u2="Y" k="-20" />
+<hkern u1="&#x201c;" u2="W" k="-41" />
+<hkern u1="&#x201c;" u2="V" k="-41" />
+<hkern u1="&#x201c;" u2="T" k="-41" />
+<hkern u1="&#x201c;" u2="A" k="143" />
+<hkern u1="&#x201e;" u2="&#x178;" k="123" />
+<hkern u1="&#x201e;" u2="&#x152;" k="102" />
+<hkern u1="&#x201e;" u2="&#xdd;" k="123" />
+<hkern u1="&#x201e;" u2="&#xdc;" k="41" />
+<hkern u1="&#x201e;" u2="&#xdb;" k="41" />
+<hkern u1="&#x201e;" u2="&#xda;" k="41" />
+<hkern u1="&#x201e;" u2="&#xd9;" k="41" />
+<hkern u1="&#x201e;" u2="&#xd8;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd6;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd5;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd4;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd3;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd2;" k="102" />
+<hkern u1="&#x201e;" u2="&#xc7;" k="102" />
+<hkern u1="&#x201e;" u2="Y" k="123" />
+<hkern u1="&#x201e;" u2="W" k="123" />
+<hkern u1="&#x201e;" u2="V" k="123" />
+<hkern u1="&#x201e;" u2="U" k="41" />
+<hkern u1="&#x201e;" u2="T" k="143" />
+<hkern u1="&#x201e;" u2="Q" k="102" />
+<hkern u1="&#x201e;" u2="O" k="102" />
+<hkern u1="&#x201e;" u2="G" k="102" />
+<hkern u1="&#x201e;" u2="C" k="102" />
+</font>
+</defs></svg> 
\ No newline at end of file
diff --git a/html/tower/docs/fonts/OpenSans-BoldItalic-webfont.woff b/html/tower/docs/fonts/OpenSans-BoldItalic-webfont.woff
new file mode 100644
index 0000000..ed760c0
--- /dev/null
+++ b/html/tower/docs/fonts/OpenSans-BoldItalic-webfont.woff
Binary files differdiff --git a/html/tower/docs/fonts/OpenSans-Italic-webfont.eot b/html/tower/docs/fonts/OpenSans-Italic-webfont.eot
new file mode 100644
index 0000000..0c8a0ae
--- /dev/null
+++ b/html/tower/docs/fonts/OpenSans-Italic-webfont.eot
Binary files differdiff --git a/html/tower/docs/fonts/OpenSans-Italic-webfont.svg b/html/tower/docs/fonts/OpenSans-Italic-webfont.svg
new file mode 100644
index 0000000..e1075dc
--- /dev/null
+++ b/html/tower/docs/fonts/OpenSans-Italic-webfont.svg
@@ -0,0 +1,1830 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata></metadata>
+<defs>
+<font id="open_sansitalic" horiz-adv-x="1128" >
+<font-face units-per-em="2048" ascent="1638" descent="-410" />
+<missing-glyph horiz-adv-x="532" />
+<glyph unicode="&#xfb01;" horiz-adv-x="1165" d="M0 0zM-104 -492q-69 0 -125 21v141q64 -22 112 -22q76 0 117 62t66 177l227 1082h-193l13 67l206 66l23 100q46 200 127.5 282.5t241.5 82.5q40 0 98 -11.5t90 -25.5l-43 -129q-76 29 -137 29q-87 0 -133.5 -48.5t-75.5 -177.5l-25 -108h238l-25 -127h-237l-232 -1098 q-39 -189 -120 -276t-213 -87zM870 0h-168l234 1096h168zM983 1376q0 56 32 91.5t83 35.5q88 0 88 -90q0 -55 -33.5 -93t-77.5 -38q-40 0 -66 24.5t-26 69.5z" />
+<glyph unicode="&#xfb02;" horiz-adv-x="1165" d="M0 0zM-104 -492q-69 0 -125 21v141q64 -22 112 -22q76 0 117 62t66 177l227 1082h-193l13 67l206 66l23 100q46 200 127.5 282.5t241.5 82.5q40 0 98 -11.5t90 -25.5l-43 -129q-76 29 -137 29q-87 0 -133.5 -48.5t-75.5 -177.5l-25 -108h238l-25 -127h-237l-232 -1098 q-39 -189 -120 -276t-213 -87zM868 0h-168l332 1556h168z" />
+<glyph unicode="&#xfb03;" horiz-adv-x="1815" d="M545 -492q-71 0 -125 21v141q61 -22 115 -22q68 0 111 57.5t69 181.5l227 1082h-481l-232 -1098q-39 -189 -120 -276t-213 -87q-69 0 -125 21v141q64 -22 112 -22q70 0 114 58t69 181l227 1082h-193l13 67l206 66l23 100q46 200 127.5 282.5t241.5 82.5q40 0 98 -11.5 t90 -25.5l-43 -129q-76 29 -137 29q-87 0 -133.5 -48.5t-75.5 -177.5l-25 -108h482l24 108q45 197 126 280t243 83q41 0 97.5 -11t92.5 -26l-45 -129q-76 29 -137 29q-89 0 -135 -51t-74 -175l-24 -108h239l-26 -127h-238l-231 -1098q-43 -195 -123.5 -279t-210.5 -84z M1522 0h-168l233 1096h168zM1634 1376q0 54 32 90.5t83 36.5q88 0 88 -90q0 -55 -33.5 -93t-77.5 -38q-38 0 -65 24.5t-27 69.5z" />
+<glyph unicode="&#xfb04;" horiz-adv-x="1815" d="M1520 0h-168l331 1556h168zM545 -492q-71 0 -125 21v141q61 -22 115 -22q68 0 111 57.5t69 181.5l227 1082h-481l-232 -1098q-39 -189 -120 -276t-213 -87q-69 0 -125 21v141q64 -22 112 -22q70 0 114 58t69 181l227 1082h-193l13 67l206 66l23 100q46 200 127.5 282.5 t241.5 82.5q40 0 98 -11.5t90 -25.5l-43 -129q-76 29 -137 29q-87 0 -133.5 -48.5t-75.5 -177.5l-25 -108h482l24 108q45 197 126 280t243 83q41 0 97.5 -11t92.5 -26l-45 -129q-76 29 -137 29q-89 0 -135 -51t-74 -175l-24 -108h239l-26 -127h-238l-231 -1098 q-43 -195 -123.5 -279t-210.5 -84z" />
+<glyph horiz-adv-x="2048" />
+<glyph horiz-adv-x="2048" />
+<glyph unicode="&#xd;" horiz-adv-x="1044" />
+<glyph unicode=" "  horiz-adv-x="532" />
+<glyph unicode="&#x09;" horiz-adv-x="532" />
+<glyph unicode="&#xa0;" horiz-adv-x="532" />
+<glyph unicode="!" horiz-adv-x="530" d="M555 1462l-274 -1059h-109q49 307 176 1059h207zM43 78q0 76 39.5 120t107.5 44q45 0 73 -27.5t28 -81.5q0 -68 -39 -115t-105 -47q-49 0 -76.5 28t-27.5 79z" />
+<glyph unicode="&#x22;" horiz-adv-x="791" d="M485 1462l-153 -528h-107l72 528h188zM834 1462l-154 -528h-107l72 528h189z" />
+<glyph unicode="#" horiz-adv-x="1323" d="M1036 899l-98 -340h285l-13 -129h-309l-125 -430h-139l129 430h-303l-127 -430h-133l121 430h-261l13 129h284l101 340h-277l13 127h301l123 436h139l-125 -436h305l127 436h133l-125 -436h264l-12 -127h-291zM500 559h303l96 340h-303z" />
+<glyph unicode="$" d="M942 492q0 -162 -112.5 -263t-309.5 -123l-49 -225h-133l49 223q-195 14 -315 72v154q82 -41 175.5 -63.5t166.5 -22.5l98 452q-139 49 -201.5 123.5t-62.5 188.5q0 159 108 255t299 113l39 176h133l-39 -178q159 -12 283 -76l-63 -135q-121 63 -248 72l-94 -440 q149 -55 212.5 -125t63.5 -178zM549 250q107 13 170 75t63 154q0 54 -33 96t-114 74zM627 1235q-108 -11 -167 -69t-59 -156q0 -53 34.5 -97.5t107.5 -70.5z" />
+<glyph unicode="%" horiz-adv-x="1624" d="M1468 1462l-1085 -1462h-152l1086 1462h151zM1284 772q-67 0 -119.5 -64.5t-84 -188.5t-31.5 -240q0 -173 106 -173q65 0 117 65t86.5 198.5t34.5 236.5q0 166 -109 166zM1532 621q0 -107 -31.5 -236t-82 -217.5t-121 -138t-156.5 -49.5q-110 0 -171 74.5t-61 219.5 q0 166 50.5 318.5t136.5 228.5t200 76q116 0 176 -71.5t60 -204.5zM543 1358q-66 0 -119 -63t-85 -187.5t-32 -243.5q0 -172 107 -172q52 0 94 39.5t73.5 114t50.5 175t19 171.5q0 166 -108 166zM791 1206q0 -108 -32 -237.5t-82.5 -217.5t-120.5 -137t-157 -49 q-109 0 -170 75t-61 220q0 166 50.5 318.5t136.5 228.5t200 76q116 0 176 -72t60 -205z" />
+<glyph unicode="&#x26;" horiz-adv-x="1372" d="M737 1348q-105 0 -163 -60t-58 -170q0 -120 82 -235q139 71 191 110t83 85t31 104q0 77 -42.5 121.5t-123.5 44.5zM471 119q87 0 168 33t195 124l-306 433q-128 -67 -184 -116t-85.5 -107.5t-29.5 -131.5q0 -106 66.5 -170.5t175.5 -64.5zM66 342q0 148 90 257.5 t303 211.5q-103 165 -103 309q0 164 106 264.5t281 100.5q149 0 236.5 -79t87.5 -212q0 -78 -32.5 -137t-87.5 -108t-127.5 -90t-153.5 -83l278 -389q127 110 199 295h168q-101 -236 -283 -412l203 -270h-201l-117 166q-120 -100 -230 -143t-247 -43q-168 0 -269 96 t-101 266z" />
+<glyph unicode="'" horiz-adv-x="444" d="M485 1462l-153 -528h-107l72 528h188z" />
+<glyph unicode="(" horiz-adv-x="584" d="M82 272q0 339 120 627t384 563h157q-246 -270 -371.5 -570t-125.5 -618q0 -339 114 -598h-131q-147 266 -147 596z" />
+<glyph unicode=")" horiz-adv-x="584" d="M500 864q0 -341 -121.5 -629.5t-382.5 -558.5h-156q496 551 496 1188q0 341 -113 598h131q146 -269 146 -598z" />
+<glyph unicode="*" horiz-adv-x="1130" d="M854 1528l-123 -383l422 18l-8 -157l-393 47l180 -383l-166 -52l-113 406l-258 -344l-116 121l309 284l-373 109l55 154l371 -185l41 400z" />
+<glyph unicode="+" d="M516 651h-389v142h389v391h141v-391h390v-142h-390v-387h-141v387z" />
+<glyph unicode="," horiz-adv-x="492" d="M291 238l8 -23q-113 -235 -270 -479h-129q126 286 204 502h187z" />
+<glyph unicode="-" horiz-adv-x="639" d="M55 469l35 158h479l-34 -158h-480z" />
+<glyph unicode="." horiz-adv-x="518" d="M43 74q0 77 40.5 122.5t111.5 45.5q43 0 69.5 -26t26.5 -79q0 -71 -40 -118.5t-108 -47.5q-46 0 -73 26t-27 77z" />
+<glyph unicode="/" horiz-adv-x="717" d="M893 1462l-813 -1462h-174l813 1462h174z" />
+<glyph unicode="0" d="M1092 1014q0 -295 -78.5 -539t-214 -369.5t-314.5 -125.5q-176 0 -270 127.5t-94 369.5q0 270 82 514.5t216.5 369t307.5 124.5q365 0 365 -471zM717 1341q-113 0 -209 -115.5t-155.5 -323t-59.5 -423.5q0 -172 50 -264t161 -92q115 0 209 114t150.5 328t56.5 453 q0 323 -203 323z" />
+<glyph unicode="1" d="M588 0h-172l196 913q59 261 88 359q-50 -53 -139 -111l-178 -110l-80 127l449 284h149z" />
+<glyph unicode="2" d="M911 0h-899l31 147l465 420q102 93 176.5 163.5t123 133t72 124t23.5 136.5q0 99 -60 157t-163 58q-77 0 -150.5 -28.5t-162.5 -96.5l-82 115q191 154 413 154q176 0 278.5 -88.5t102.5 -243.5q0 -111 -39.5 -204t-131 -197t-294.5 -281l-352 -307v-8h678z" />
+<glyph unicode="3" d="M1073 1159q0 -156 -101 -264.5t-280 -140.5v-9q124 -23 195 -106.5t71 -208.5q0 -133 -62 -234.5t-181 -158.5t-283 -57q-210 0 -385 79v164q94 -49 199 -75.5t190 -26.5q162 0 252 79.5t90 217.5q0 131 -79 198.5t-220 67.5h-131l31 143h139q165 0 274 87t109 227 q0 92 -58 146t-157 54q-80 0 -157 -27t-175 -93l-80 118q195 144 424 144q179 0 277 -87t98 -237z" />
+<glyph unicode="4" d="M1067 334h-233l-72 -334h-164l74 334h-656l29 158l834 978h196l-207 -983h232zM705 487q46 220 78 373t116 445h-8q-17 -29 -66.5 -96.5t-72.5 -96.5l-533 -625h486z" />
+<glyph unicode="5" d="M598 893q182 0 289.5 -104.5t107.5 -282.5q0 -161 -73 -283t-204 -182.5t-308 -60.5q-193 0 -330 79v164q164 -102 334 -102q191 0 298 96t107 268q0 126 -73.5 199.5t-204.5 73.5q-48 0 -97 -6.5t-139 -30.5l-74 57l197 684h668l-33 -153h-522l-127 -439q87 23 184 23z " />
+<glyph unicode="6" d="M133 424q0 209 60.5 415t163.5 351.5t246 219t327 73.5q111 0 184 -23l-35 -145q-68 22 -170 22q-212 0 -356.5 -149t-212.5 -443h8q59 79 146.5 126t193.5 47q154 0 244 -98.5t90 -270.5q0 -161 -66.5 -294.5t-180.5 -204t-261 -70.5q-182 0 -281.5 115t-99.5 329z M532 121q94 0 167.5 54t114 149t40.5 208q0 248 -221 248q-66 0 -128 -28.5t-110 -76t-72 -104.5t-24 -155q0 -137 60.5 -216t172.5 -79z" />
+<glyph unicode="7" d="M174 0l768 1313h-719l31 149h891l-27 -139l-764 -1323h-180z" />
+<glyph unicode="8" d="M741 1485q174 0 271.5 -86.5t97.5 -235.5q0 -129 -78 -225t-266 -176q127 -78 180 -165t53 -202q0 -122 -60 -217.5t-172.5 -146.5t-264.5 -51q-190 0 -298 98.5t-108 267.5q0 148 95 256t296 184q-95 69 -135.5 144.5t-40.5 171.5q0 111 54.5 198.5t153.5 136t222 48.5z M608 700q-185 -60 -261.5 -143.5t-76.5 -202.5q0 -107 69 -170t181 -63q139 0 222 74t83 196q0 99 -52 174t-165 135zM729 1341q-114 0 -182 -65.5t-68 -175.5q0 -82 39 -144t127 -116q161 60 228 131.5t67 173.5q0 90 -57.5 143t-153.5 53z" />
+<glyph unicode="9" d="M1067 1034q0 -194 -56 -406.5t-147.5 -360t-221.5 -217.5t-302 -70q-136 0 -242 34v158q134 -47 246 -47q202 0 327 141t189 441h-10q-51 -75 -132.5 -118.5t-180.5 -43.5q-169 0 -261 98.5t-92 288.5q0 153 64.5 280.5t180 199t259.5 71.5q180 0 279.5 -114.5 t99.5 -334.5zM682 1341q-150 0 -241 -113t-91 -290q0 -124 54.5 -190t162.5 -66q76 0 140 28.5t108.5 81.5t65 114t20.5 151q0 131 -59 207.5t-160 76.5z" />
+<glyph unicode=":" horiz-adv-x="518" d="M43 74q0 77 40.5 122.5t111.5 45.5q43 0 69.5 -26t26.5 -79q0 -71 -40 -118.5t-108 -47.5q-46 0 -73 26t-27 77zM203 956q0 77 40 122.5t111 45.5q97 0 97 -104q0 -73 -41.5 -119.5t-106.5 -46.5q-46 0 -73 26.5t-27 75.5z" />
+<glyph unicode=";" horiz-adv-x="518" d="M291 238l8 -23q-113 -235 -270 -479h-129q126 286 204 502h187zM203 956q0 77 40 122.5t111 45.5q97 0 97 -104q0 -73 -41.5 -119.5t-106.5 -46.5q-46 0 -73 26.5t-27 75.5z" />
+<glyph unicode="&#x3c;" d="M1040 242l-919 422v98l919 479v-149l-747 -371l747 -328v-151z" />
+<glyph unicode="=" d="M127 858v139h920v-139h-920zM127 444v142h920v-142h-920z" />
+<glyph unicode="&#x3e;" d="M121 393l745 328l-745 371v149l919 -479v-98l-919 -422v151z" />
+<glyph unicode="?" horiz-adv-x="874" d="M260 403q22 130 72.5 213.5t165.5 174.5q128 100 168 144t63 94t23 112q0 93 -51.5 143.5t-147.5 50.5q-81 0 -155 -25.5t-140 -56.5l-61 129q92 51 192 76t182 25q167 0 259 -84t92 -238q0 -123 -65.5 -226.5t-225.5 -223.5q-125 -91 -169 -147.5t-67 -160.5h-135z M158 74q0 77 40 122.5t111 45.5q44 0 70.5 -26t26.5 -79q0 -73 -41.5 -119.5t-106.5 -46.5q-46 0 -73 26t-27 77z" />
+<glyph unicode="@" horiz-adv-x="1735" d="M1679 852q0 -179 -55 -324t-155 -227t-222 -82q-197 0 -213 184h-8q-111 -184 -291 -184q-115 0 -180.5 75.5t-65.5 209.5q0 157 68 284t188.5 199t260.5 72q65 0 127.5 -12t150.5 -48q-64 -242 -98 -368t-31 -172q0 -117 102 -117q78 0 141.5 67t100.5 183.5t37 243.5 q0 239 -128 367t-370 128q-228 0 -406.5 -107t-277 -295.5t-98.5 -416.5q0 -270 143.5 -418.5t409.5 -148.5q197 0 420 86v-127q-219 -90 -443 -90q-314 0 -494.5 184.5t-180.5 505.5q0 261 126.5 485.5t343.5 347.5t486 123q191 0 329 -75.5t210.5 -213.5t72.5 -319z M985 938q-94 0 -174 -55t-126 -153t-46 -212q0 -93 33 -134.5t98 -41.5q187 0 272 315l70 258q-63 23 -127 23z" />
+<glyph unicode="A" horiz-adv-x="1137" d="M813 465h-496l-245 -465h-189l799 1462h174l184 -1462h-170zM795 621l-35 299q-24 179 -29 350q-37 -88 -80.5 -175t-249.5 -474h394z" />
+<glyph unicode="B" horiz-adv-x="1225" d="M770 1462q432 0 432 -336q0 -141 -87 -238t-245 -126v-10q115 -32 176.5 -110.5t61.5 -188.5q0 -212 -152 -332.5t-407 -120.5h-463l309 1462h375zM434 836h248q156 0 249 73t93 199q0 104 -66.5 155.5t-209.5 51.5h-211zM287 145h266q181 0 278 80.5t97 227.5 q0 116 -74.5 177.5t-214.5 61.5h-236z" />
+<glyph unicode="C" horiz-adv-x="1198" d="M942 1331q-174 0 -311.5 -97t-218 -284.5t-80.5 -408.5q0 -187 97.5 -298.5t268.5 -111.5q139 0 322 57v-149q-86 -31 -164 -45t-188 -14q-242 0 -380 149.5t-138 407.5q0 261 105.5 485.5t283.5 342.5t403 118q197 0 348 -80l-69 -141q-138 69 -279 69z" />
+<glyph unicode="D" horiz-adv-x="1364" d="M1300 877q0 -261 -105 -461t-300 -308t-457 -108h-352l309 1462h342q276 0 419.5 -149.5t143.5 -435.5zM449 147q202 0 355 91.5t234.5 258.5t81.5 382t-103 325.5t-302 110.5h-178l-250 -1168h162z" />
+<glyph unicode="E" horiz-adv-x="1047" d="M821 0h-735l309 1462h735l-32 -153h-566l-98 -469h527l-29 -152h-529l-114 -536h565z" />
+<glyph unicode="F" horiz-adv-x="967" d="M258 0h-172l309 1462h735l-30 -153h-568l-110 -533h528l-32 -153h-529z" />
+<glyph unicode="G" horiz-adv-x="1386" d="M821 766h459l-154 -711q-216 -75 -419 -75q-264 0 -410.5 144.5t-146.5 403.5q0 269 101.5 489.5t281.5 343t399 122.5q117 0 219.5 -20t206.5 -64l-66 -152q-77 34 -165.5 59t-194.5 25q-169 0 -307.5 -101.5t-215.5 -283.5t-77 -407q0 -190 102.5 -299t286.5 -109 q154 0 260 39l96 444h-289z" />
+<glyph unicode="H" horiz-adv-x="1389" d="M1085 0h-167l143 688h-660l-145 -688h-170l309 1462h170l-131 -622h660l133 622h168z" />
+<glyph unicode="I" horiz-adv-x="559" d="M86 0l311 1462h168l-311 -1462h-168z" />
+<glyph unicode="J" horiz-adv-x="547" d="M-166 -385q-105 0 -153 25l6 147q69 -20 145 -20q100 0 165.5 62.5t90.5 182.5l307 1450h170l-309 -1468q-79 -379 -422 -379z" />
+<glyph unicode="K" horiz-adv-x="1141" d="M1034 0h-186q-72 181 -146.5 359.5t-146.5 361.5l-174 -131l-125 -590h-170l309 1462h170l-151 -710l700 710h209l-639 -637z" />
+<glyph unicode="L" horiz-adv-x="971" d="M86 0l309 1462h170l-276 -1308h565l-33 -154h-735z" />
+<glyph unicode="M" horiz-adv-x="1714" d="M676 0l-166 1296h-8q-7 -72 -28.5 -197.5t-37.5 -199.5l-190 -899h-162l309 1462h244l149 -1204h9l659 1204h266l-303 -1462h-174q126 590 193 905.5t94 392.5h-6l-717 -1298h-131z" />
+<glyph unicode="N" horiz-adv-x="1438" d="M1139 0h-181l-460 1223h-6q-32 -221 -74 -418l-172 -805h-162l309 1462h180l459 -1220h6q30 224 72 405l174 815h164z" />
+<glyph unicode="O" horiz-adv-x="1475" d="M1411 907q0 -269 -88 -481.5t-252 -329t-379 -116.5q-256 0 -399 149.5t-143 419.5q0 264 96 482t263.5 336t377.5 118q244 0 384 -154t140 -424zM874 1333q-157 0 -281 -101t-192.5 -281t-68.5 -398q0 -199 98 -310.5t266 -111.5q152 0 272.5 97.5t190.5 279.5t70 403 q0 199 -94 310.5t-261 111.5z" />
+<glyph unicode="P" horiz-adv-x="1159" d="M1159 1085q0 -248 -164 -379t-481 -131h-135l-123 -575h-170l309 1462h330q214 0 324 -94.5t110 -282.5zM410 721h133q216 0 328 91t112 267q0 125 -69.5 180.5t-213.5 55.5h-163z" />
+<glyph unicode="Q" horiz-adv-x="1475" d="M874 1333q-157 0 -281 -101t-192.5 -281t-68.5 -398q0 -199 98 -310.5t266 -111.5q158 0 279 100t187.5 280.5t66.5 399.5q0 199 -94 310.5t-261 111.5zM725 -18l-17 -2h-16q-256 0 -399 149.5t-143 419.5q0 264 96 482t263.5 336t377.5 118q244 0 384 -154t140 -424 q0 -333 -139 -576t-375 -321l274 -358h-219z" />
+<glyph unicode="R" horiz-adv-x="1165" d="M385 608l-129 -608h-170l309 1462h320q446 0 446 -366q0 -348 -368 -449l239 -647h-186l-209 608h-252zM532 1313q-102 -494 -116 -559h168q193 0 297 85t104 244q0 121 -67.5 175.5t-219.5 54.5h-166z" />
+<glyph unicode="S" horiz-adv-x="1028" d="M913 424q0 -211 -140.5 -327.5t-395.5 -116.5q-106 0 -186.5 14.5t-151.5 48.5v170q162 -84 340 -84q162 0 257 75.5t95 207.5q0 78 -52.5 137.5t-195.5 140.5q-151 85 -209.5 170t-58.5 201q0 187 132 304.5t347 117.5q99 0 184.5 -19t180.5 -65l-66 -150 q-66 38 -148 60t-151 22q-134 0 -215.5 -69.5t-81.5 -188.5q0 -54 17 -92.5t54 -72.5t142 -95q147 -88 198.5 -138t78 -110.5t26.5 -140.5z" />
+<glyph unicode="T" horiz-adv-x="1020" d="M487 0h-172l277 1311h-406l33 151h985l-30 -151h-408z" />
+<glyph unicode="U" horiz-adv-x="1384" d="M1407 1462l-205 -966q-55 -263 -197.5 -389.5t-388.5 -126.5q-230 0 -341 104t-111 299q0 81 24 201l189 878h170l-191 -891q-22 -106 -22 -188q0 -117 73 -184.5t218 -67.5q172 0 267.5 87.5t139.5 289.5l205 954h170z" />
+<glyph unicode="V" horiz-adv-x="1122" d="M479 197q61 144 162 338l479 927h191l-781 -1462h-180l-162 1462h170l97 -930q20 -196 20 -335h4z" />
+<glyph unicode="W" horiz-adv-x="1745" d="M1257 0h-170l-49 965q-8 136 -8 282h-6q-25 -72 -61 -154.5t-504 -1092.5h-174l-62 1462h170l31 -901l2 -88q0 -98 -10 -258h6q89 243 156 383l405 864h178l43 -860q9 -153 9 -304l-1 -83h9q75 224 131 354l387 893h182z" />
+<glyph unicode="X" horiz-adv-x="1063" d="M956 0h-180l-213 641l-481 -641h-186l596 776l-263 686h172l203 -563l443 563h186l-555 -694z" />
+<glyph unicode="Y" horiz-adv-x="1030" d="M537 715l489 747h193l-627 -921l-113 -541h-172l119 549l-238 913h170z" />
+<glyph unicode="Z" horiz-adv-x="1087" d="M885 0h-901l28 137l924 1170h-655l32 155h858l-26 -139l-924 -1169h697z" />
+<glyph unicode="[" horiz-adv-x="586" d="M371 -324h-387l381 1786h387l-31 -141h-227l-318 -1503h227z" />
+<glyph unicode="\" horiz-adv-x="717" d="M375 1462l217 -1462h-154l-217 1462h154z" />
+<glyph unicode="]" horiz-adv-x="586" d="M-119 -182h225l320 1503h-227l30 141h389l-380 -1786h-388z" />
+<glyph unicode="^" horiz-adv-x="1059" d="M53 553l598 920h109l266 -920h-145l-201 747l-467 -747h-160z" />
+<glyph unicode="_" horiz-adv-x="807" d="M623 -324h-811l30 140h811z" />
+<glyph unicode="`" horiz-adv-x="1135" d="M903 1241h-104q-61 61 -128.5 154t-95.5 153v21h181q43 -136 147 -303v-25z" />
+<glyph unicode="a" horiz-adv-x="1157" d="M639 1116q92 0 164 -49.5t112 -142.5h11l67 172h127l-233 -1096h-133l26 209h-8q-179 -229 -377 -229q-139 0 -218 99t-79 271q0 208 71 386t196 279t274 101zM449 119q97 0 193 92.5t156 241t60 297.5q0 103 -56 164t-147 61q-104 0 -193.5 -86t-140.5 -233t-51 -310 q0 -114 47 -170.5t132 -56.5z" />
+<glyph unicode="b" horiz-adv-x="1182" d="M545 -20q-97 0 -170.5 51t-110.5 139h-10l-70 -170h-125l330 1556h168q-51 -242 -78.5 -370.5t-75.5 -300.5h9q93 118 183.5 173.5t186.5 55.5q141 0 220 -99t79 -272q0 -209 -68.5 -386.5t-191 -277t-276.5 -99.5zM731 975q-96 0 -195.5 -95t-158 -239t-58.5 -295 q0 -110 55.5 -168.5t160.5 -58.5q99 0 184.5 81t137.5 230.5t52 317.5q0 227 -178 227z" />
+<glyph unicode="c" horiz-adv-x="922" d="M506 -20q-194 0 -301 107t-107 302q0 200 74 369t204.5 263.5t293.5 94.5q137 0 268 -51l-47 -141q-120 51 -219 51q-112 0 -204.5 -76.5t-145 -213t-52.5 -296.5q0 -128 66.5 -199t183.5 -71q72 0 136 20t126 47v-143q-124 -63 -276 -63z" />
+<glyph unicode="d" horiz-adv-x="1182" d="M639 1114q194 0 281 -190h10q17 155 45 274l78 358h166l-330 -1556h-139l22 209h-8q-101 -125 -189 -177t-182 -52q-139 0 -217 98t-78 272q0 214 72 392t194.5 275t274.5 97zM449 119q94 0 194 93.5t158.5 239t58.5 296.5q0 111 -54 169t-157 58q-101 0 -187.5 -82.5 t-139 -232t-52.5 -314.5q0 -227 179 -227z" />
+<glyph unicode="e" horiz-adv-x="1010" d="M492 -20q-184 0 -289 109t-105 302q0 188 74.5 360.5t197.5 268.5t271 96q153 0 230 -66.5t77 -185.5q0 -180 -166 -282.5t-475 -102.5h-33l-4 -80q0 -131 61.5 -204.5t190.5 -73.5q63 0 129.5 18t165.5 66v-146q-94 -44 -166 -61.5t-159 -17.5zM631 973 q-103 0 -193.5 -94t-138.5 -261h12q228 0 349.5 59.5t121.5 172.5q0 53 -36.5 88t-114.5 35z" />
+<glyph unicode="f" horiz-adv-x="641" d="M-104 -492q-69 0 -125 21v141q64 -22 112 -22q76 0 117 62t66 177l227 1082h-193l13 67l206 66l23 100q46 200 127.5 282.5t241.5 82.5q40 0 98 -11.5t90 -25.5l-43 -129q-76 29 -137 29q-87 0 -133.5 -48.5t-75.5 -177.5l-25 -108h238l-25 -127h-237l-232 -1098 q-39 -189 -120 -276t-213 -87z" />
+<glyph unicode="g" horiz-adv-x="1026" d="M1100 1096l-25 -107l-211 -24q41 -62 41 -158q0 -191 -116.5 -304.5t-311.5 -113.5q-55 0 -84 8q-139 -53 -139 -131q0 -41 33 -54.5t96 -21.5l117 -14q181 -22 262.5 -88t81.5 -194q0 -184 -146 -285t-411 -101q-194 0 -304 73.5t-110 207.5q0 105 72 182t233 131 q-78 41 -78 121q0 69 51 118.5t142 92.5q-63 32 -103 94.5t-40 145.5q0 194 119.5 318t305.5 124q78 0 154 -20h371zM35 -195q0 -77 65 -122t193 -45q182 0 284.5 63.5t102.5 179.5q0 62 -54 98t-184 50l-159 16q-120 -25 -184 -88t-64 -152zM313 680q0 -85 45 -129.5 t125 -44.5q79 0 138 42t90.5 115.5t31.5 159.5q0 82 -44 125t-126 43q-78 0 -136.5 -40.5t-91 -113t-32.5 -157.5z" />
+<glyph unicode="h" horiz-adv-x="1182" d="M729 0l148 692q18 94 18 135q0 148 -147 148q-89 0 -173.5 -59t-149 -171.5t-97.5 -271.5l-101 -473h-168l330 1556h168q-18 -82 -34.5 -159t-34 -156.5t-38 -166.5t-47.5 -189h11q94 123 185.5 176t191.5 53q131 0 202.5 -72t71.5 -204q0 -62 -23 -166 q-39 -193 -145 -672h-168z" />
+<glyph unicode="i" horiz-adv-x="520" d="M227 0h-168l234 1096h168zM340 1376q0 56 32 91.5t83 35.5q88 0 88 -90q0 -55 -33.5 -93t-77.5 -38q-40 0 -66 24.5t-26 69.5z" />
+<glyph unicode="j" horiz-adv-x="520" d="M-135 -492q-69 0 -123 21v141q61 -22 119 -22q125 0 168 205l264 1243h166l-266 -1258q-36 -171 -114.5 -250.5t-213.5 -79.5zM340 1376q0 56 32 91.5t83 35.5q86 0 86 -90q0 -55 -33.5 -93t-77.5 -38q-38 0 -64 24.5t-26 69.5z" />
+<glyph unicode="k" horiz-adv-x="999" d="M330 559l526 537h201l-469 -467l295 -629h-187l-235 524l-152 -123l-82 -401h-170l330 1556h170l-129 -602t-102 -395h4z" />
+<glyph unicode="l" horiz-adv-x="520" d="M225 0h-168l332 1556h168z" />
+<glyph unicode="m" horiz-adv-x="1786" d="M696 0l148 692q18 94 18 135q0 70 -31 109t-106 39q-84 0 -163.5 -60t-140 -171.5t-93.5 -268.5l-101 -475h-168l234 1096h139l-22 -203h10q87 119 173.5 171t178.5 52q113 0 174 -65t72 -181h8q86 125 183 185.5t196 60.5q127 0 196.5 -68t69.5 -198q0 -68 -22 -178 l-144 -672h-170l148 692q20 104 20 146q0 62 -34.5 99.5t-108.5 37.5q-81 0 -160 -58t-138.5 -164.5t-90.5 -252.5l-107 -500h-168z" />
+<glyph unicode="n" horiz-adv-x="1182" d="M729 0l148 692q20 104 20 144q0 63 -35.5 101t-113.5 38q-89 0 -173.5 -60t-149 -171t-97.5 -269l-101 -475h-168l234 1096h139l-22 -203h10q96 122 185.5 172.5t185.5 50.5q127 0 200.5 -69.5t73.5 -194.5q0 -79 -23 -180l-143 -672h-170z" />
+<glyph unicode="o" horiz-adv-x="1149" d="M643 1110q190 0 300 -112.5t110 -309.5q0 -188 -72 -355t-195 -258t-278 -91q-192 0 -301 113t-109 309q0 190 73 357.5t197 257t275 89.5zM879 711q0 115 -62.5 186.5t-169.5 71.5q-109 0 -195.5 -74t-134 -205.5t-47.5 -292.5q0 -131 63.5 -202.5t182.5 -71.5 q104 0 187 73t129.5 207.5t46.5 307.5z" />
+<glyph unicode="p" horiz-adv-x="1182" d="M545 -20q-97 0 -170 50t-113 140h-10l-4 -38q-3 -25 -10.5 -70t-114.5 -554h-166l336 1588h139l-26 -209h8q179 227 372 227q137 0 216 -97.5t79 -273.5q0 -212 -69 -389t-191 -275.5t-276 -98.5zM731 975q-96 0 -195.5 -95t-158 -239t-58.5 -295q0 -110 55.5 -168.5 t160.5 -58.5q99 0 184.5 81t137.5 230.5t52 317.5q0 227 -178 227z" />
+<glyph unicode="q" horiz-adv-x="1182" d="M641 1116q94 0 165.5 -50.5t108.5 -141.5h13l67 172h125l-336 -1588h-166l101 480q9 45 57 221h-8q-95 -121 -185 -175t-186 -54q-140 0 -219.5 97.5t-79.5 272.5q0 212 72.5 392t196 277t274.5 97zM449 119q92 0 190 92t158.5 237t60.5 300q0 105 -54.5 166t-152.5 61 q-101 0 -189 -84.5t-140 -233t-52 -311.5q0 -227 179 -227z" />
+<glyph unicode="r" horiz-adv-x="811" d="M752 1116q69 0 120 -14l-36 -150q-53 13 -105 13q-91 0 -170.5 -60t-139 -166.5t-87.5 -236.5l-107 -502h-168l234 1096h139l-22 -203h10q72 95 119 136.5t98.5 64t114.5 22.5z" />
+<glyph unicode="s" horiz-adv-x="877" d="M735 311q0 -156 -110.5 -243.5t-311.5 -87.5q-169 0 -305 69v158q70 -42 151 -65t150 -23q126 0 190 50t64 128q0 57 -35 96t-151 107q-130 73 -184 143t-54 166q0 138 101 222.5t266 84.5q171 0 330 -74l-54 -137l-56 25q-101 43 -220 43q-93 0 -146 -43.5t-53 -112.5 q0 -56 35.5 -96t146.5 -103q107 -60 153.5 -103t69.5 -92.5t23 -111.5z" />
+<glyph unicode="t" horiz-adv-x="664" d="M395 117q55 0 144 26v-129q-34 -14 -84 -24t-80 -10q-125 0 -191.5 59.5t-66.5 177.5q0 66 18 150l127 602h-172l14 73l185 78l125 228h98l-55 -252h274l-26 -127h-273l-129 -604q-18 -87 -18 -132q0 -56 29 -86t81 -30z" />
+<glyph unicode="u" horiz-adv-x="1182" d="M451 1096l-150 -695q-18 -89 -18 -139q0 -143 147 -143q88 0 173 60t150 172t99 270l100 475h166l-231 -1096h-139l22 203h-12q-98 -125 -187 -174t-184 -49q-128 0 -201 69.5t-73 198.5q0 62 22 172l146 676h170z" />
+<glyph unicode="v" horiz-adv-x="946" d="M223 0l-125 1096h168l64 -613q24 -258 24 -362h6q127 275 179 371l325 604h178l-591 -1096h-228z" />
+<glyph unicode="w" horiz-adv-x="1468" d="M831 0l-32 602q-4 94 -4 172v156h-9l-50 -118l-83 -189l-291 -623h-202l-43 1096h164l18 -594v-88q0 -147 -8 -269h6q47 124 137 322l295 629h182l37 -594q6 -168 6 -262v-53l-2 -42h6q28 86 83 218.5t323 732.5h178l-506 -1096h-205z" />
+<glyph unicode="x" horiz-adv-x="979" d="M467 434l-346 -434h-195l475 565l-239 531h170l174 -412l330 412h194l-455 -539l252 -557h-168z" />
+<glyph unicode="y" horiz-adv-x="946" d="M98 1096h168l74 -545q10 -69 19.5 -203.5t9.5 -216.5h6q35 87 87 200t77 156l325 609h178l-696 -1282q-93 -172 -184 -239t-219 -67q-72 0 -140 21v135q63 -18 131 -18q82 0 140.5 50.5t113.5 149.5l76 136z" />
+<glyph unicode="z" horiz-adv-x="909" d="M690 0h-719l23 117l694 854h-479l27 125h657l-29 -140l-680 -831h531z" />
+<glyph unicode="{" horiz-adv-x="715" d="M442 -324q-141 0 -216.5 52.5t-75.5 171.5q0 52 20 141q33 146 51.5 227.5t14.5 102.5q0 143 -209 143l32 143q118 0 189.5 43.5t93.5 147.5l68 326q34 160 117.5 224t254.5 64h33l-31 -141q-105 0 -151 -36.5t-66 -123.5l-71 -321q-28 -123 -91 -184t-167 -78v-5 q151 -41 151 -213q0 -59 -18 -131l-47 -211q-15 -58 -15 -98q0 -53 36.5 -77.5t119.5 -24.5v-142h-23z" />
+<glyph unicode="|" d="M541 1556h139v-2052h-139v2052z" />
+<glyph unicode="}" horiz-adv-x="715" d="M285 1462q144 0 220.5 -52.5t76.5 -170.5q0 -48 -21 -141l-49 -219q-16 -68 -16 -111q0 -143 209 -143l-33 -144q-119 0 -190 -43t-93 -147l-67 -326q-36 -164 -119 -226.5t-264 -62.5h-13v142q115 0 167 36t71 123l72 322q25 117 88 179.5t170 80.5v6q-150 42 -150 211 q0 59 18 131l50 213q14 65 14 99q0 53 -40.5 77.5t-139.5 24.5l28 141h11z" />
+<glyph unicode="~" d="M348 713q-54 0 -118.5 -34.5t-114.5 -86.5v151q98 109 243 109q69 0 127 -14.5t144 -51.5q64 -27 112.5 -41t98.5 -14q55 0 119.5 33t115.5 88v-150q-100 -110 -244 -110q-72 0 -135 16.5t-135 48.5q-75 32 -120 44t-93 12z" />
+<glyph unicode="&#xa1;" horiz-adv-x="530" d="M260 684h109l-176 -1057h-207zM250 950q0 76 40.5 122t110.5 46q44 0 70.5 -26t26.5 -80q0 -71 -40.5 -117.5t-105.5 -46.5q-48 0 -75 25.5t-27 76.5z" />
+<glyph unicode="&#xa2;" d="M582 -20h-125l43 215q-132 34 -203.5 137.5t-71.5 257.5q0 185 63.5 344t178.5 258.5t260 120.5l35 170h123l-37 -168q119 -9 217 -49l-47 -142q-109 52 -219 52q-112 0 -204.5 -76.5t-145 -213t-52.5 -296.5q0 -125 66 -198t184 -73q72 0 136 20t126 48v-143 q-123 -62 -286 -66z" />
+<glyph unicode="&#xa3;" d="M842 1481q184 0 336 -86l-66 -133q-146 79 -278 79q-213 0 -263 -237l-69 -326h370l-26 -127h-371l-47 -219q-22 -98 -66 -166.5t-124 -111.5h725l-33 -154h-953l27 141q205 46 258 289l47 221h-200l26 127h201l76 350q75 353 430 353z" />
+<glyph unicode="&#xa4;" d="M229 723q0 117 68 215l-129 129l92 92l127 -129q103 70 217 70t215 -70l129 129l92 -90l-129 -129q70 -104 70 -217q0 -119 -70 -217l127 -127l-90 -90l-129 127q-98 -68 -215 -68q-119 0 -217 70l-127 -127l-90 90l127 127q-68 96 -68 215zM358 723q0 -103 71.5 -174.5 t174.5 -71.5q104 0 177 71.5t73 174.5q0 104 -73 177t-177 73q-102 0 -174 -72.5t-72 -177.5z" />
+<glyph unicode="&#xa5;" d="M582 715l491 747h187l-533 -770h231l-28 -133h-297l-33 -160h297l-29 -133h-295l-57 -266h-154l56 266h-291l29 133h290l33 160h-291l29 133h225l-202 770h163z" />
+<glyph unicode="&#xa6;" d="M541 1556h139v-776h-139v776zM541 281h139v-777h-139v777z" />
+<glyph unicode="&#xa7;" horiz-adv-x="995" d="M174 770q0 201 238 307q-119 70 -119 203q0 127 103.5 206t279.5 79q189 0 321 -68l-53 -123q-148 60 -266 60q-102 0 -162.5 -40.5t-60.5 -109.5q0 -49 38 -83.5t162 -90.5q100 -44 149 -83.5t75 -89.5t26 -114q0 -97 -61 -180t-172 -139q114 -71 114 -189 q0 -152 -114 -237.5t-318 -85.5q-176 0 -295 61v148q56 -34 136.5 -56t156.5 -22q133 0 204 44.5t71 129.5q0 48 -50.5 89t-152.5 87q-138 61 -194 130.5t-56 166.5zM514 1010q-82 -26 -135 -87.5t-53 -131.5t50.5 -117t198.5 -111q80 44 127.5 107t47.5 131 q0 60 -49.5 105.5t-186.5 103.5z" />
+<glyph unicode="&#xa8;" horiz-adv-x="1135" d="M457 1378q0 46 28 79.5t74 33.5q78 0 78 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62zM821 1378q0 46 28 79.5t75 33.5q77 0 77 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62z" />
+<glyph unicode="&#xa9;" horiz-adv-x="1704" d="M928 1059q-125 0 -191.5 -87t-66.5 -241q0 -169 65 -249.5t193 -80.5q82 0 211 43v-122q-66 -28 -113 -38t-104 -10q-192 0 -297 119.5t-105 339.5q0 208 110 330.5t300 122.5q130 0 248 -60l-60 -120q-106 53 -190 53zM139 731q0 200 100 375t275 276t377 101 q197 0 370 -97t277 -272t104 -383q0 -204 -100.5 -376.5t-273 -273.5t-377.5 -101q-207 0 -382 103.5t-272.5 276.5t-97.5 371zM244 731q0 -173 87 -323.5t237.5 -237t322.5 -86.5q174 0 323 87t236.5 235.5t87.5 324.5q0 174 -87 323t-235.5 236.5t-324.5 87.5 q-174 0 -323 -87t-236.5 -235.5t-87.5 -324.5z" />
+<glyph unicode="&#xaa;" horiz-adv-x="686" d="M498 1479q114 0 153 -103h6l37 90h86l-139 -665h-92l14 117h-4q-40 -56 -90 -93t-123 -37q-77 0 -126.5 60t-49.5 166q0 127 41.5 234.5t116.5 169t170 61.5zM381 891q61 0 112.5 49t86 137.5t34.5 167.5q0 62 -28.5 96.5t-85.5 34.5q-92 0 -154.5 -103t-62.5 -243 q0 -139 98 -139z" />
+<glyph unicode="&#xab;" horiz-adv-x="958" d="M88 584l391 374l78 -81l-297 -328l172 -387l-113 -49l-231 442v29zM483 541l367 405l86 -69l-283 -365l158 -350l-113 -49l-215 397v31z" />
+<glyph unicode="&#xac;" d="M1047 793v-529h-140v387h-780v142h920z" />
+<glyph unicode="&#xad;" horiz-adv-x="639" d="M55 469zM55 469l35 158h479l-34 -158h-480z" />
+<glyph unicode="&#xae;" horiz-adv-x="1704" d="M139 731q0 200 100 375t275 276t377 101q197 0 370 -97t277 -272t104 -383q0 -204 -100.5 -376.5t-273 -273.5t-377.5 -101q-207 0 -382 103.5t-272.5 276.5t-97.5 371zM244 731q0 -173 87 -323.5t237.5 -237t322.5 -86.5q174 0 323 87t236.5 235.5t87.5 324.5 q0 174 -87 323t-235.5 236.5t-324.5 87.5q-174 0 -323 -87t-236.5 -235.5t-87.5 -324.5zM1194 915q0 -78 -47.5 -141t-132.5 -98l227 -385h-149l-207 352h-113v-352h-127v880h229q163 0 241.5 -63t78.5 -193zM772 762h92q195 0 195 149q0 76 -47.5 107t-149.5 31h-90v-287z " />
+<glyph unicode="&#xaf;" horiz-adv-x="782" d="M1012 1556h-785l33 132h787z" />
+<glyph unicode="&#xb0;" horiz-adv-x="877" d="M215 1171q0 128 90.5 220t220.5 92q83 0 155.5 -41.5t114.5 -114t42 -156.5q0 -128 -90.5 -218.5t-221.5 -90.5t-221 90.5t-90 218.5zM328 1171q0 -80 58 -138t140 -58q83 0 140 58.5t57 137.5q0 82 -57.5 140.5t-139.5 58.5q-80 0 -139 -58.5t-59 -140.5z" />
+<glyph unicode="&#xb1;" d="M516 643h-389v141h389v392h141v-392h390v-141h-390v-387h-141v387zM127 0v141h920v-141h-920z" />
+<glyph unicode="&#xb2;" horiz-adv-x="717" d="M657 586h-561l23 106l264 228q115 100 158.5 149.5t63.5 93t20 90.5q0 53 -31 85t-90 32q-90 0 -195 -80l-59 90q125 101 274 101q109 0 171.5 -56.5t62.5 -150.5q0 -99 -52.5 -179.5t-197.5 -205.5l-221 -187h395z" />
+<glyph unicode="&#xb3;" horiz-adv-x="717" d="M549 1036q69 -17 108 -68t39 -120q0 -132 -91 -205.5t-253 -73.5q-125 0 -233 56v127q125 -72 239 -72q205 0 205 170q0 137 -178 137h-90l22 107h95q97 0 155 41t58 112q0 60 -34.5 90.5t-93.5 30.5q-102 0 -196 -68l-55 93q109 88 268 88q114 0 178 -56t64 -151 q0 -180 -207 -234v-4z" />
+<glyph unicode="&#xb4;" horiz-adv-x="1135" d="M532 1268q56 60 125.5 151.5t106.5 149.5h190v-21q-38 -49 -140 -151t-177 -156h-105v27z" />
+<glyph unicode="&#xb5;" horiz-adv-x="1194" d="M295 266q0 -147 147 -147q89 0 172 59t148.5 171t99.5 269l105 478h163l-233 -1096h-139l24 205h-12q-93 -121 -183 -173t-188 -52q-112 0 -163 96h-9q-11 -78 -22.5 -148t-83.5 -420h-164l336 1588h168l-148 -695q-18 -92 -18 -135z" />
+<glyph unicode="&#xb6;" horiz-adv-x="1341" d="M1206 -260h-114v1661h-213v-1661h-115v819q-62 -18 -146 -18q-216 0 -317.5 125t-101.5 376q0 260 109 387t341 127h557v-1816z" />
+<glyph unicode="&#xb7;" horiz-adv-x="518" d="M170 587zM170 690q0 77 40.5 122.5t111.5 45.5q43 0 69.5 -26t26.5 -79q0 -71 -40 -118.5t-108 -47.5q-46 0 -73 26t-27 77z" />
+<glyph unicode="&#xb8;" horiz-adv-x="420" d="M211 -276q0 -98 -81 -157t-214 -59q-41 0 -86 9v100q38 -6 68 -6q174 0 174 110q0 46 -39 67.5t-99 29.5l101 182h106l-61 -121q131 -38 131 -155z" />
+<glyph unicode="&#xb9;" horiz-adv-x="717" d="M537 1462h118l-186 -876h-135l112 526q25 103 58 225q-25 -25 -50 -46.5t-145 -100.5l-51 90z" />
+<glyph unicode="&#xba;" horiz-adv-x="688" d="M745 1219q0 -191 -88.5 -311t-240.5 -120q-113 0 -180.5 71t-67.5 196q0 117 42 215.5t117.5 153.5t174.5 55q117 0 180 -67t63 -193zM500 1376q-102 0 -160.5 -87.5t-58.5 -229.5q0 -85 38 -127.5t107 -42.5q94 0 152.5 88.5t58.5 232.5q0 166 -137 166z" />
+<glyph unicode="&#xbb;" horiz-adv-x="958" d="M872 485l-393 -370l-78 82l297 323l-172 391l113 50l233 -447v-29zM477 528l-368 -401l-86 70l282 360l-158 354l113 50l217 -402v-31z" />
+<glyph unicode="&#xbc;" horiz-adv-x="1518" d="M123 0zM1362 1462l-1086 -1462h-153l1085 1462h154zM483 1462h118l-186 -876h-135l112 526q25 103 58 225q-25 -25 -50 -46.5t-145 -100.5l-51 90zM1327 203h-129l-43 -202h-127l43 202h-365l23 101l481 579h133l-121 -563h127zM1095 320q69 322 90 395 q-20 -36 -110 -149l-205 -246h225z" />
+<glyph unicode="&#xbd;" horiz-adv-x="1518" d="M66 0zM427 1462h118l-186 -876h-135l112 526q25 103 58 225q-25 -25 -50 -46.5t-145 -100.5l-51 90zM1305 1462l-1086 -1462h-153l1085 1462h154zM1343 1h-561l23 106l264 228q115 100 158.5 149.5t63.5 93t20 90.5q0 53 -31 85t-90 32q-90 0 -195 -80l-59 90 q125 101 274 101q109 0 171.5 -56.5t62.5 -150.5q0 -99 -52.5 -179.5t-197.5 -205.5l-221 -187h395z" />
+<glyph unicode="&#xbe;" horiz-adv-x="1565" d="M87 0zM517 1036q69 -17 108 -68t39 -120q0 -132 -91 -205.5t-253 -73.5q-125 0 -233 56v127q125 -72 239 -72q205 0 205 170q0 137 -178 137h-90l22 107h95q97 0 155 41t58 112q0 60 -34.5 90.5t-93.5 30.5q-102 0 -196 -68l-55 93q109 88 268 88q114 0 178 -56t64 -151 q0 -180 -207 -234v-4zM1512 1462l-1086 -1462h-153l1085 1462h154zM1477 203h-129l-43 -202h-127l43 202h-365l23 101l481 579h133l-121 -563h127zM1245 320q69 322 90 395q-20 -36 -110 -149l-205 -246h225z" />
+<glyph unicode="&#xbf;" horiz-adv-x="874" d="M657 680q-22 -130 -72 -212t-165 -175l-95 -75q-159 -127 -159 -275q0 -93 51.5 -144t147.5 -51q80 0 154 25.5t140 56.5l62 -129q-90 -48 -189 -74t-186 -26q-168 0 -259 83.5t-91 237.5q0 124 66 228t225 223q132 98 172.5 152.5t62.5 154.5h135zM760 1010 q0 -77 -40.5 -122.5t-111.5 -45.5q-43 0 -69.5 26t-26.5 78q0 71 40 118.5t107 47.5q47 0 74 -25.5t27 -76.5z" />
+<glyph unicode="&#xc0;" horiz-adv-x="1137" d="M0 0zM813 465h-496l-245 -465h-189l799 1462h174l184 -1462h-170zM795 621l-35 299q-24 179 -29 350q-37 -88 -80.5 -175t-249.5 -474h394zM863 1579h-104q-61 61 -128.5 154t-95.5 153v21h181q43 -136 147 -303v-25z" />
+<glyph unicode="&#xc1;" horiz-adv-x="1137" d="M0 0zM813 465h-496l-245 -465h-189l799 1462h174l184 -1462h-170zM795 621l-35 299q-24 179 -29 350q-37 -88 -80.5 -175t-249.5 -474h394zM679 1606q56 60 125.5 151.5t106.5 149.5h190v-21q-38 -49 -140 -151t-177 -156h-105v27z" />
+<glyph unicode="&#xc2;" horiz-adv-x="1137" d="M0 0zM813 465h-496l-245 -465h-189l799 1462h174l184 -1462h-170zM795 621l-35 299q-24 179 -29 350q-37 -88 -80.5 -175t-249.5 -474h394zM1080 1579h-103q-57 48 -161 189q-134 -119 -242 -189h-109v27q145 133 204.5 197.5t82.5 103.5h158q37 -99 128 -235l42 -66v-27 z" />
+<glyph unicode="&#xc3;" horiz-adv-x="1137" d="M0 0zM813 465h-496l-245 -465h-189l799 1462h174l184 -1462h-170zM795 621l-35 299q-24 179 -29 350q-37 -88 -80.5 -175t-249.5 -474h394zM934 1581q-40 0 -77.5 17.5t-73 39t-69 39t-65.5 17.5q-44 0 -69.5 -28.5t-47.5 -86.5h-100q58 258 231 258q44 0 83.5 -18 t75 -39.5t66.5 -39.5t58 -18q44 0 69.5 27t51.5 90h100q-66 -258 -233 -258z" />
+<glyph unicode="&#xc4;" horiz-adv-x="1137" d="M0 0zM813 465h-496l-245 -465h-189l799 1462h174l184 -1462h-170zM795 621l-35 299q-24 179 -29 350q-37 -88 -80.5 -175t-249.5 -474h394zM523 1716q0 46 28 79.5t74 33.5q78 0 78 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62zM887 1716q0 46 28 79.5 t75 33.5q77 0 77 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62z" />
+<glyph unicode="&#xc5;" horiz-adv-x="1137" d="M0 0zM813 465h-496l-245 -465h-189l799 1462h174l184 -1462h-170zM795 621l-35 299q-24 179 -29 350q-37 -88 -80.5 -175t-249.5 -474h394zM991 1585q0 -99 -60 -157t-159 -58q-101 0 -160 57.5t-59 155.5q0 94 62 152.5t157 58.5q101 0 160 -57t59 -152zM887 1583 q0 53 -32 84t-83 31q-49 0 -82 -31t-33 -84q0 -54 29.5 -84.5t85.5 -30.5q51 0 83 30.5t32 84.5z" />
+<glyph unicode="&#xc6;" horiz-adv-x="1673" d="M1448 0h-737l98 465h-438l-293 -465h-197l938 1462h938l-33 -153h-565l-100 -469h528l-28 -150h-529l-115 -538h566zM840 621l147 688h-84l-434 -688h371z" />
+<glyph unicode="&#xc7;" horiz-adv-x="1198" d="M150 0zM942 1331q-174 0 -311.5 -97t-218 -284.5t-80.5 -408.5q0 -187 97.5 -298.5t268.5 -111.5q139 0 322 57v-149q-86 -31 -164 -45t-188 -14q-242 0 -380 149.5t-138 407.5q0 261 105.5 485.5t283.5 342.5t403 118q197 0 348 -80l-69 -141q-138 69 -279 69zM758 -276 q0 -98 -81 -157t-214 -59q-41 0 -86 9v100q38 -6 68 -6q174 0 174 110q0 46 -39 67.5t-99 29.5l101 182h106l-61 -121q131 -38 131 -155z" />
+<glyph unicode="&#xc8;" horiz-adv-x="1047" d="M86 0zM821 0h-735l309 1462h735l-32 -153h-566l-98 -469h527l-29 -152h-529l-114 -536h565zM898 1579h-104q-61 61 -128.5 154t-95.5 153v21h181q43 -136 147 -303v-25z" />
+<glyph unicode="&#xc9;" horiz-adv-x="1047" d="M86 0zM821 0h-735l309 1462h735l-32 -153h-566l-98 -469h527l-29 -152h-529l-114 -536h565zM657 1606q56 60 125.5 151.5t106.5 149.5h190v-21q-38 -49 -140 -151t-177 -156h-105v27z" />
+<glyph unicode="&#xca;" horiz-adv-x="1047" d="M86 0zM821 0h-735l309 1462h735l-32 -153h-566l-98 -469h527l-29 -152h-529l-114 -536h565zM1084 1579h-103q-57 48 -161 189q-134 -119 -242 -189h-109v27q145 133 204.5 197.5t82.5 103.5h158q37 -99 128 -235l42 -66v-27z" />
+<glyph unicode="&#xcb;" horiz-adv-x="1047" d="M86 0zM821 0h-735l309 1462h735l-32 -153h-566l-98 -469h527l-29 -152h-529l-114 -536h565zM523 1716q0 46 28 79.5t74 33.5q78 0 78 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62zM887 1716q0 46 28 79.5t75 33.5q77 0 77 -80q0 -49 -29.5 -83t-68.5 -34 q-35 0 -58.5 22t-23.5 62z" />
+<glyph unicode="&#xcc;" horiz-adv-x="559" d="M86 0zM86 0l311 1462h168l-311 -1462h-168zM593 1579h-104q-61 61 -128.5 154t-95.5 153v21h181q43 -136 147 -303v-25z" />
+<glyph unicode="&#xcd;" horiz-adv-x="559" d="M86 0zM86 0l311 1462h168l-311 -1462h-168zM412 1606q56 60 125.5 151.5t106.5 149.5h190v-21q-38 -49 -140 -151t-177 -156h-105v27z" />
+<glyph unicode="&#xce;" horiz-adv-x="559" d="M86 0zM86 0l311 1462h168l-311 -1462h-168zM808 1579h-103q-57 48 -161 189q-134 -119 -242 -189h-109v27q145 133 204.5 197.5t82.5 103.5h158q37 -99 128 -235l42 -66v-27z" />
+<glyph unicode="&#xcf;" horiz-adv-x="559" d="M86 0zM86 0l311 1462h168l-311 -1462h-168zM265 1716q0 46 28 79.5t74 33.5q78 0 78 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62zM629 1716q0 46 28 79.5t75 33.5q77 0 77 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62z" />
+<glyph unicode="&#xd0;" horiz-adv-x="1364" d="M1300 877q0 -261 -105 -461t-300 -308t-457 -108h-352l135 649h-149l32 150h150l141 663h342q276 0 419.5 -149.5t143.5 -435.5zM449 147q202 0 355 91.5t234.5 258.5t81.5 382t-103 325.5t-302 110.5h-178l-111 -516h330l-33 -150h-330l-106 -502h162z" />
+<glyph unicode="&#xd1;" horiz-adv-x="1438" d="M84 0zM1139 0h-181l-460 1223h-6q-32 -221 -74 -418l-172 -805h-162l309 1462h180l459 -1220h6q30 224 72 405l174 815h164zM1102 1581q-40 0 -77.5 17.5t-73 39t-69 39t-65.5 17.5q-44 0 -69.5 -28.5t-47.5 -86.5h-100q58 258 231 258q44 0 83.5 -18t75 -39.5 t66.5 -39.5t58 -18q44 0 69.5 27t51.5 90h100q-66 -258 -233 -258z" />
+<glyph unicode="&#xd2;" horiz-adv-x="1475" d="M150 0zM1411 907q0 -269 -88 -481.5t-252 -329t-379 -116.5q-256 0 -399 149.5t-143 419.5q0 264 96 482t263.5 336t377.5 118q244 0 384 -154t140 -424zM874 1333q-157 0 -281 -101t-192.5 -281t-68.5 -398q0 -199 98 -310.5t266 -111.5q152 0 272.5 97.5t190.5 279.5 t70 403q0 199 -94 310.5t-261 111.5zM1007 1579h-104q-61 61 -128.5 154t-95.5 153v21h181q43 -136 147 -303v-25z" />
+<glyph unicode="&#xd3;" horiz-adv-x="1475" d="M150 0zM1411 907q0 -269 -88 -481.5t-252 -329t-379 -116.5q-256 0 -399 149.5t-143 419.5q0 264 96 482t263.5 336t377.5 118q244 0 384 -154t140 -424zM874 1333q-157 0 -281 -101t-192.5 -281t-68.5 -398q0 -199 98 -310.5t266 -111.5q152 0 272.5 97.5t190.5 279.5 t70 403q0 199 -94 310.5t-261 111.5zM821 1606q56 60 125.5 151.5t106.5 149.5h190v-21q-38 -49 -140 -151t-177 -156h-105v27z" />
+<glyph unicode="&#xd4;" horiz-adv-x="1475" d="M150 0zM1411 907q0 -269 -88 -481.5t-252 -329t-379 -116.5q-256 0 -399 149.5t-143 419.5q0 264 96 482t263.5 336t377.5 118q244 0 384 -154t140 -424zM874 1333q-157 0 -281 -101t-192.5 -281t-68.5 -398q0 -199 98 -310.5t266 -111.5q152 0 272.5 97.5t190.5 279.5 t70 403q0 199 -94 310.5t-261 111.5zM1227 1579h-103q-57 48 -161 189q-134 -119 -242 -189h-109v27q145 133 204.5 197.5t82.5 103.5h158q37 -99 128 -235l42 -66v-27z" />
+<glyph unicode="&#xd5;" horiz-adv-x="1475" d="M150 0zM1411 907q0 -269 -88 -481.5t-252 -329t-379 -116.5q-256 0 -399 149.5t-143 419.5q0 264 96 482t263.5 336t377.5 118q244 0 384 -154t140 -424zM874 1333q-157 0 -281 -101t-192.5 -281t-68.5 -398q0 -199 98 -310.5t266 -111.5q152 0 272.5 97.5t190.5 279.5 t70 403q0 199 -94 310.5t-261 111.5zM1067 1581q-40 0 -77.5 17.5t-73 39t-69 39t-65.5 17.5q-44 0 -69.5 -28.5t-47.5 -86.5h-100q58 258 231 258q44 0 83.5 -18t75 -39.5t66.5 -39.5t58 -18q44 0 69.5 27t51.5 90h100q-66 -258 -233 -258z" />
+<glyph unicode="&#xd6;" horiz-adv-x="1475" d="M150 0zM1411 907q0 -269 -88 -481.5t-252 -329t-379 -116.5q-256 0 -399 149.5t-143 419.5q0 264 96 482t263.5 336t377.5 118q244 0 384 -154t140 -424zM874 1333q-157 0 -281 -101t-192.5 -281t-68.5 -398q0 -199 98 -310.5t266 -111.5q152 0 272.5 97.5t190.5 279.5 t70 403q0 199 -94 310.5t-261 111.5zM664 1716q0 46 28 79.5t74 33.5q78 0 78 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62zM1028 1716q0 46 28 79.5t75 33.5q77 0 77 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62z" />
+<glyph unicode="&#xd7;" d="M487 723l-319 321l98 99l320 -320l323 320l99 -96l-324 -324l322 -322l-97 -96l-323 320l-320 -318l-96 96z" />
+<glyph unicode="&#xd8;" horiz-adv-x="1475" d="M1411 907q0 -269 -88 -481.5t-252 -329t-379 -116.5q-200 0 -332 96l-129 -160l-112 92l137 170q-106 136 -106 371q0 264 96 482t263.5 336t377.5 118q99 0 178.5 -27t151.5 -84l131 166l114 -92l-149 -184q48 -62 73 -156t25 -201zM874 1333q-157 0 -281 -101 t-192.5 -281t-68.5 -398q0 -135 41 -227l737 919q-90 88 -236 88zM1229 911q0 118 -33 205l-733 -911q91 -74 233 -74q152 0 272.5 97.5t190.5 279.5t70 403z" />
+<glyph unicode="&#xd9;" horiz-adv-x="1384" d="M164 0zM1407 1462l-205 -966q-55 -263 -197.5 -389.5t-388.5 -126.5q-230 0 -341 104t-111 299q0 81 24 201l189 878h170l-191 -891q-22 -106 -22 -188q0 -117 73 -184.5t218 -67.5q172 0 267.5 87.5t139.5 289.5l205 954h170zM991 1579h-104q-61 61 -128.5 154 t-95.5 153v21h181q43 -136 147 -303v-25z" />
+<glyph unicode="&#xda;" horiz-adv-x="1384" d="M164 0zM1407 1462l-205 -966q-55 -263 -197.5 -389.5t-388.5 -126.5q-230 0 -341 104t-111 299q0 81 24 201l189 878h170l-191 -891q-22 -106 -22 -188q0 -117 73 -184.5t218 -67.5q172 0 267.5 87.5t139.5 289.5l205 954h170zM823 1606q56 60 125.5 151.5t106.5 149.5 h190v-21q-38 -49 -140 -151t-177 -156h-105v27z" />
+<glyph unicode="&#xdb;" horiz-adv-x="1384" d="M164 0zM1407 1462l-205 -966q-55 -263 -197.5 -389.5t-388.5 -126.5q-230 0 -341 104t-111 299q0 81 24 201l189 878h170l-191 -891q-22 -106 -22 -188q0 -117 73 -184.5t218 -67.5q172 0 267.5 87.5t139.5 289.5l205 954h170zM1217 1579h-103q-57 48 -161 189 q-134 -119 -242 -189h-109v27q145 133 204.5 197.5t82.5 103.5h158q37 -99 128 -235l42 -66v-27z" />
+<glyph unicode="&#xdc;" horiz-adv-x="1384" d="M164 0zM1407 1462l-205 -966q-55 -263 -197.5 -389.5t-388.5 -126.5q-230 0 -341 104t-111 299q0 81 24 201l189 878h170l-191 -891q-22 -106 -22 -188q0 -117 73 -184.5t218 -67.5q172 0 267.5 87.5t139.5 289.5l205 954h170zM643 1716q0 46 28 79.5t74 33.5 q78 0 78 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62zM1007 1716q0 46 28 79.5t75 33.5q77 0 77 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62z" />
+<glyph unicode="&#xdd;" horiz-adv-x="1030" d="M188 0zM537 715l489 747h193l-627 -921l-113 -541h-172l119 549l-238 913h170zM616 1606q56 60 125.5 151.5t106.5 149.5h190v-21q-38 -49 -140 -151t-177 -156h-105v27z" />
+<glyph unicode="&#xde;" horiz-adv-x="1159" d="M1106 829q0 -248 -164 -379t-483 -131h-133l-70 -319h-170l309 1462h170l-53 -256h160q213 0 323.5 -95t110.5 -282zM354 465h135q215 0 328 91t113 267q0 126 -70 181t-215 55h-166z" />
+<glyph unicode="&#xdf;" horiz-adv-x="1182" d="M-133 -492q-69 0 -123 21v143q61 -22 111 -22q65 0 107 47.5t65 157.5l280 1314q43 200 156 299t307 99q162 0 252 -71t90 -196q0 -57 -21 -106.5t-61.5 -95t-178.5 -150.5q-110 -83 -110 -151q0 -56 95 -122q47 -34 101 -87.5t79.5 -110t25.5 -123.5 q0 -175 -108.5 -274.5t-292.5 -99.5q-175 0 -268 71v160q51 -41 118.5 -66.5t129.5 -25.5q113 0 181 58t68 159q0 40 -10.5 71t-33.5 59t-89 83q-88 69 -122.5 124t-34.5 115q0 53 18.5 96t49.5 78.5t124 104.5q80 56 111 87.5t48 65t17 70.5q0 64 -52.5 100.5t-141.5 36.5 q-119 0 -186 -62.5t-95 -190.5l-274 -1303q-40 -189 -121 -276t-211 -87z" />
+<glyph unicode="&#xe0;" horiz-adv-x="1157" d="M98 0zM639 1116q92 0 164 -49.5t112 -142.5h11l67 172h127l-233 -1096h-133l26 209h-8q-179 -229 -377 -229q-139 0 -218 99t-79 271q0 208 71 386t196 279t274 101zM449 119q97 0 193 92.5t156 241t60 297.5q0 103 -56 164t-147 61q-104 0 -193.5 -86t-140.5 -233 t-51 -310q0 -114 47 -170.5t132 -56.5zM824 1241h-104q-61 61 -128.5 154t-95.5 153v21h181q43 -136 147 -303v-25z" />
+<glyph unicode="&#xe1;" horiz-adv-x="1157" d="M98 0zM639 1116q92 0 164 -49.5t112 -142.5h11l67 172h127l-233 -1096h-133l26 209h-8q-179 -229 -377 -229q-139 0 -218 99t-79 271q0 208 71 386t196 279t274 101zM449 119q97 0 193 92.5t156 241t60 297.5q0 103 -56 164t-147 61q-104 0 -193.5 -86t-140.5 -233 t-51 -310q0 -114 47 -170.5t132 -56.5zM600 1268q56 60 125.5 151.5t106.5 149.5h190v-21q-38 -49 -140 -151t-177 -156h-105v27z" />
+<glyph unicode="&#xe2;" horiz-adv-x="1157" d="M98 0zM639 1116q92 0 164 -49.5t112 -142.5h11l67 172h127l-233 -1096h-133l26 209h-8q-179 -229 -377 -229q-139 0 -218 99t-79 271q0 208 71 386t196 279t274 101zM449 119q97 0 193 92.5t156 241t60 297.5q0 103 -56 164t-147 61q-104 0 -193.5 -86t-140.5 -233 t-51 -310q0 -114 47 -170.5t132 -56.5zM1005 1241h-103q-57 48 -161 189q-134 -119 -242 -189h-109v27q145 133 204.5 197.5t82.5 103.5h158q37 -99 128 -235l42 -66v-27z" />
+<glyph unicode="&#xe3;" horiz-adv-x="1157" d="M98 0zM639 1116q92 0 164 -49.5t112 -142.5h11l67 172h127l-233 -1096h-133l26 209h-8q-179 -229 -377 -229q-139 0 -218 99t-79 271q0 208 71 386t196 279t274 101zM449 119q97 0 193 92.5t156 241t60 297.5q0 103 -56 164t-147 61q-104 0 -193.5 -86t-140.5 -233 t-51 -310q0 -114 47 -170.5t132 -56.5zM856 1243q-40 0 -77.5 17.5t-73 39t-69 39t-65.5 17.5q-44 0 -69.5 -28.5t-47.5 -86.5h-100q58 258 231 258q44 0 83.5 -18t75 -39.5t66.5 -39.5t58 -18q44 0 69.5 27t51.5 90h100q-66 -258 -233 -258z" />
+<glyph unicode="&#xe4;" horiz-adv-x="1157" d="M98 0zM639 1116q92 0 164 -49.5t112 -142.5h11l67 172h127l-233 -1096h-133l26 209h-8q-179 -229 -377 -229q-139 0 -218 99t-79 271q0 208 71 386t196 279t274 101zM449 119q97 0 193 92.5t156 241t60 297.5q0 103 -56 164t-147 61q-104 0 -193.5 -86t-140.5 -233 t-51 -310q0 -114 47 -170.5t132 -56.5zM454 1378q0 46 28 79.5t74 33.5q78 0 78 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62zM818 1378q0 46 28 79.5t75 33.5q77 0 77 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62z" />
+<glyph unicode="&#xe5;" horiz-adv-x="1157" d="M98 0zM639 1116q92 0 164 -49.5t112 -142.5h11l67 172h127l-233 -1096h-133l26 209h-8q-179 -229 -377 -229q-139 0 -218 99t-79 271q0 208 71 386t196 279t274 101zM449 119q97 0 193 92.5t156 241t60 297.5q0 103 -56 164t-147 61q-104 0 -193.5 -86t-140.5 -233 t-51 -310q0 -114 47 -170.5t132 -56.5zM951 1456q0 -99 -60 -157t-159 -58q-101 0 -160 57.5t-59 155.5q0 94 62 152.5t157 58.5q101 0 160 -57t59 -152zM847 1454q0 53 -32 84t-83 31q-49 0 -82 -31t-33 -84q0 -54 29.5 -84.5t85.5 -30.5q51 0 83 30.5t32 84.5z" />
+<glyph unicode="&#xe6;" horiz-adv-x="1669" d="M1165 -20q-108 0 -189.5 39.5t-121.5 119.5l-31 -139h-114l26 209h-8q-109 -132 -191.5 -180.5t-177.5 -48.5q-122 0 -191 99t-69 269q0 206 70.5 385t191.5 281t263 102q82 0 145 -48.5t102 -143.5h11l67 172h109l-31 -146q123 166 332 166q119 0 192.5 -68t73.5 -184 q0 -182 -166.5 -283.5t-472.5 -101.5h-39l-4 -80q0 -131 62.5 -204.5t193.5 -73.5q55 0 116.5 16.5t178.5 67.5v-150q-164 -75 -328 -75zM412 119q95 0 188.5 91.5t153 240.5t59.5 299q0 103 -45.5 164t-122.5 61q-99 0 -187 -86.5t-138 -231.5t-50 -309q0 -114 37 -171.5 t105 -57.5zM1325 973q-117 0 -211 -94.5t-141 -260.5h14q226 0 348.5 58.5t122.5 169.5q0 61 -35 94t-98 33z" />
+<glyph unicode="&#xe7;" horiz-adv-x="922" d="M98 0zM506 -20q-194 0 -301 107t-107 302q0 200 74 369t204.5 263.5t293.5 94.5q137 0 268 -51l-47 -141q-120 51 -219 51q-112 0 -204.5 -76.5t-145 -213t-52.5 -296.5q0 -128 66.5 -199t183.5 -71q72 0 136 20t126 47v-143q-124 -63 -276 -63zM592 -276q0 -98 -81 -157 t-214 -59q-41 0 -86 9v100q38 -6 68 -6q174 0 174 110q0 46 -39 67.5t-99 29.5l101 182h106l-61 -121q131 -38 131 -155z" />
+<glyph unicode="&#xe8;" horiz-adv-x="1010" d="M98 0zM492 -20q-184 0 -289 109t-105 302q0 188 74.5 360.5t197.5 268.5t271 96q153 0 230 -66.5t77 -185.5q0 -180 -166 -282.5t-475 -102.5h-33l-4 -80q0 -131 61.5 -204.5t190.5 -73.5q63 0 129.5 18t165.5 66v-146q-94 -44 -166 -61.5t-159 -17.5zM631 973 q-103 0 -193.5 -94t-138.5 -261h12q228 0 349.5 59.5t121.5 172.5q0 53 -36.5 88t-114.5 35zM777 1241h-104q-61 61 -128.5 154t-95.5 153v21h181q43 -136 147 -303v-25z" />
+<glyph unicode="&#xe9;" horiz-adv-x="1010" d="M98 0zM492 -20q-184 0 -289 109t-105 302q0 188 74.5 360.5t197.5 268.5t271 96q153 0 230 -66.5t77 -185.5q0 -180 -166 -282.5t-475 -102.5h-33l-4 -80q0 -131 61.5 -204.5t190.5 -73.5q63 0 129.5 18t165.5 66v-146q-94 -44 -166 -61.5t-159 -17.5zM631 973 q-103 0 -193.5 -94t-138.5 -261h12q228 0 349.5 59.5t121.5 172.5q0 53 -36.5 88t-114.5 35zM585 1268q56 60 125.5 151.5t106.5 149.5h190v-21q-38 -49 -140 -151t-177 -156h-105v27z" />
+<glyph unicode="&#xea;" horiz-adv-x="1010" d="M98 0zM492 -20q-184 0 -289 109t-105 302q0 188 74.5 360.5t197.5 268.5t271 96q153 0 230 -66.5t77 -185.5q0 -180 -166 -282.5t-475 -102.5h-33l-4 -80q0 -131 61.5 -204.5t190.5 -73.5q63 0 129.5 18t165.5 66v-146q-94 -44 -166 -61.5t-159 -17.5zM631 973 q-103 0 -193.5 -94t-138.5 -261h12q228 0 349.5 59.5t121.5 172.5q0 53 -36.5 88t-114.5 35zM966 1241h-103q-57 48 -161 189q-134 -119 -242 -189h-109v27q145 133 204.5 197.5t82.5 103.5h158q37 -99 128 -235l42 -66v-27z" />
+<glyph unicode="&#xeb;" horiz-adv-x="1010" d="M98 0zM492 -20q-184 0 -289 109t-105 302q0 188 74.5 360.5t197.5 268.5t271 96q153 0 230 -66.5t77 -185.5q0 -180 -166 -282.5t-475 -102.5h-33l-4 -80q0 -131 61.5 -204.5t190.5 -73.5q63 0 129.5 18t165.5 66v-146q-94 -44 -166 -61.5t-159 -17.5zM631 973 q-103 0 -193.5 -94t-138.5 -261h12q228 0 349.5 59.5t121.5 172.5q0 53 -36.5 88t-114.5 35zM413 1378q0 46 28 79.5t74 33.5q78 0 78 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62zM777 1378q0 46 28 79.5t75 33.5q77 0 77 -80q0 -49 -29.5 -83t-68.5 -34 q-35 0 -58.5 22t-23.5 62z" />
+<glyph unicode="&#xec;" horiz-adv-x="520" d="M59 0zM227 0h-168l234 1096h168zM492 1241h-104q-61 61 -128.5 154t-95.5 153v21h181q43 -136 147 -303v-25z" />
+<glyph unicode="&#xed;" horiz-adv-x="520" d="M59 0zM227 0h-168l234 1096h168zM324 1268q56 60 125.5 151.5t106.5 149.5h190v-21q-38 -49 -140 -151t-177 -156h-105v27z" />
+<glyph unicode="&#xee;" horiz-adv-x="520" d="M59 0zM227 0h-168l234 1096h168zM708 1241h-103q-57 48 -161 189q-134 -119 -242 -189h-109v27q145 133 204.5 197.5t82.5 103.5h158q37 -99 128 -235l42 -66v-27z" />
+<glyph unicode="&#xef;" horiz-adv-x="520" d="M59 0zM227 0h-168l234 1096h168zM161 1378q0 46 28 79.5t74 33.5q78 0 78 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62zM525 1378q0 46 28 79.5t75 33.5q77 0 77 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62z" />
+<glyph unicode="&#xf0;" horiz-adv-x="1165" d="M676 1343q-66 58 -146 113l95 117q118 -84 188 -154l260 146l64 -105l-240 -133q87 -115 126.5 -240.5t39.5 -269.5q0 -253 -71.5 -447t-203 -292t-311.5 -98q-182 0 -284.5 104t-102.5 289q0 160 67.5 298t187 217t267.5 79q105 0 181.5 -45.5t111.5 -124.5l6 2v17 q0 136 -36.5 240t-110.5 197l-270 -149l-56 108zM487 121q107 0 190 56t134 168t51 226q0 118 -65.5 187t-178.5 69q-109 0 -189 -57.5t-123.5 -161t-43.5 -231.5q0 -126 57.5 -191t167.5 -65z" />
+<glyph unicode="&#xf1;" horiz-adv-x="1182" d="M59 0zM729 0l148 692q20 104 20 144q0 63 -35.5 101t-113.5 38q-89 0 -173.5 -60t-149 -171t-97.5 -269l-101 -475h-168l234 1096h139l-22 -203h10q96 122 185.5 172.5t185.5 50.5q127 0 200.5 -69.5t73.5 -194.5q0 -79 -23 -180l-143 -672h-170zM871 1243 q-40 0 -77.5 17.5t-73 39t-69 39t-65.5 17.5q-44 0 -69.5 -28.5t-47.5 -86.5h-100q58 258 231 258q44 0 83.5 -18t75 -39.5t66.5 -39.5t58 -18q44 0 69.5 27t51.5 90h100q-66 -258 -233 -258z" />
+<glyph unicode="&#xf2;" horiz-adv-x="1149" d="M98 0zM643 1110q190 0 300 -112.5t110 -309.5q0 -188 -72 -355t-195 -258t-278 -91q-192 0 -301 113t-109 309q0 190 73 357.5t197 257t275 89.5zM879 711q0 115 -62.5 186.5t-169.5 71.5q-109 0 -195.5 -74t-134 -205.5t-47.5 -292.5q0 -131 63.5 -202.5t182.5 -71.5 q104 0 187 73t129.5 207.5t46.5 307.5zM798 1241h-104q-61 61 -128.5 154t-95.5 153v21h181q43 -136 147 -303v-25z" />
+<glyph unicode="&#xf3;" horiz-adv-x="1149" d="M98 0zM643 1110q190 0 300 -112.5t110 -309.5q0 -188 -72 -355t-195 -258t-278 -91q-192 0 -301 113t-109 309q0 190 73 357.5t197 257t275 89.5zM879 711q0 115 -62.5 186.5t-169.5 71.5q-109 0 -195.5 -74t-134 -205.5t-47.5 -292.5q0 -131 63.5 -202.5t182.5 -71.5 q104 0 187 73t129.5 207.5t46.5 307.5zM589 1268q56 60 125.5 151.5t106.5 149.5h190v-21q-38 -49 -140 -151t-177 -156h-105v27z" />
+<glyph unicode="&#xf4;" horiz-adv-x="1149" d="M98 0zM643 1110q190 0 300 -112.5t110 -309.5q0 -188 -72 -355t-195 -258t-278 -91q-192 0 -301 113t-109 309q0 190 73 357.5t197 257t275 89.5zM879 711q0 115 -62.5 186.5t-169.5 71.5q-109 0 -195.5 -74t-134 -205.5t-47.5 -292.5q0 -131 63.5 -202.5t182.5 -71.5 q104 0 187 73t129.5 207.5t46.5 307.5zM997 1241h-103q-57 48 -161 189q-134 -119 -242 -189h-109v27q145 133 204.5 197.5t82.5 103.5h158q37 -99 128 -235l42 -66v-27z" />
+<glyph unicode="&#xf5;" horiz-adv-x="1149" d="M98 0zM643 1110q190 0 300 -112.5t110 -309.5q0 -188 -72 -355t-195 -258t-278 -91q-192 0 -301 113t-109 309q0 190 73 357.5t197 257t275 89.5zM879 711q0 115 -62.5 186.5t-169.5 71.5q-109 0 -195.5 -74t-134 -205.5t-47.5 -292.5q0 -131 63.5 -202.5t182.5 -71.5 q104 0 187 73t129.5 207.5t46.5 307.5zM844 1243q-40 0 -77.5 17.5t-73 39t-69 39t-65.5 17.5q-44 0 -69.5 -28.5t-47.5 -86.5h-100q58 258 231 258q44 0 83.5 -18t75 -39.5t66.5 -39.5t58 -18q44 0 69.5 27t51.5 90h100q-66 -258 -233 -258z" />
+<glyph unicode="&#xf6;" horiz-adv-x="1149" d="M98 0zM643 1110q190 0 300 -112.5t110 -309.5q0 -188 -72 -355t-195 -258t-278 -91q-192 0 -301 113t-109 309q0 190 73 357.5t197 257t275 89.5zM879 711q0 115 -62.5 186.5t-169.5 71.5q-109 0 -195.5 -74t-134 -205.5t-47.5 -292.5q0 -131 63.5 -202.5t182.5 -71.5 q104 0 187 73t129.5 207.5t46.5 307.5zM433 1378q0 46 28 79.5t74 33.5q78 0 78 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62zM797 1378q0 46 28 79.5t75 33.5q77 0 77 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62z" />
+<glyph unicode="&#xf7;" d="M127 651v142h920v-142h-920zM475 373q0 121 111 121q53 0 82.5 -30.5t29.5 -90.5q0 -58 -30 -89.5t-82 -31.5t-81.5 31t-29.5 90zM475 1071q0 121 111 121q53 0 82.5 -30.5t29.5 -90.5q0 -58 -30 -89.5t-82 -31.5t-81.5 31t-29.5 90z" />
+<glyph unicode="&#xf8;" horiz-adv-x="1149" d="M1047 705q0 -189 -69.5 -360t-191.5 -266t-276 -95q-146 0 -246 65l-98 -125l-105 82l109 135q-68 103 -68 265q0 194 73.5 361t195.5 255t272 88q146 0 252 -68l104 129l105 -79l-119 -129q62 -97 62 -258zM647 971q-108 0 -195.5 -73t-137.5 -202t-50 -280 q0 -92 17 -137l518 645q-54 47 -152 47zM885 688q0 84 -13 119l-514 -641q57 -45 158 -45q103 0 188.5 71.5t133 200.5t47.5 295z" />
+<glyph unicode="&#xf9;" horiz-adv-x="1182" d="M113 0zM451 1096l-150 -695q-18 -89 -18 -139q0 -143 147 -143q88 0 173 60t150 172t99 270l100 475h166l-231 -1096h-139l22 203h-12q-98 -125 -187 -174t-184 -49q-128 0 -201 69.5t-73 198.5q0 62 22 172l146 676h170zM800 1241h-104q-61 61 -128.5 154t-95.5 153v21 h181q43 -136 147 -303v-25z" />
+<glyph unicode="&#xfa;" horiz-adv-x="1182" d="M113 0zM451 1096l-150 -695q-18 -89 -18 -139q0 -143 147 -143q88 0 173 60t150 172t99 270l100 475h166l-231 -1096h-139l22 203h-12q-98 -125 -187 -174t-184 -49q-128 0 -201 69.5t-73 198.5q0 62 22 172l146 676h170zM636 1268q56 60 125.5 151.5t106.5 149.5h190 v-21q-38 -49 -140 -151t-177 -156h-105v27z" />
+<glyph unicode="&#xfb;" horiz-adv-x="1182" d="M113 0zM451 1096l-150 -695q-18 -89 -18 -139q0 -143 147 -143q88 0 173 60t150 172t99 270l100 475h166l-231 -1096h-139l22 203h-12q-98 -125 -187 -174t-184 -49q-128 0 -201 69.5t-73 198.5q0 62 22 172l146 676h170zM1024 1241h-103q-57 48 -161 189 q-134 -119 -242 -189h-109v27q145 133 204.5 197.5t82.5 103.5h158q37 -99 128 -235l42 -66v-27z" />
+<glyph unicode="&#xfc;" horiz-adv-x="1182" d="M113 0zM451 1096l-150 -695q-18 -89 -18 -139q0 -143 147 -143q88 0 173 60t150 172t99 270l100 475h166l-231 -1096h-139l22 203h-12q-98 -125 -187 -174t-184 -49q-128 0 -201 69.5t-73 198.5q0 62 22 172l146 676h170zM457 1378q0 46 28 79.5t74 33.5q78 0 78 -80 q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62zM821 1378q0 46 28 79.5t75 33.5q77 0 77 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62z" />
+<glyph unicode="&#xfd;" horiz-adv-x="946" d="M0 0zM98 1096h168l74 -545q10 -69 19.5 -203.5t9.5 -216.5h6q35 87 87 200t77 156l325 609h178l-696 -1282q-93 -172 -184 -239t-219 -67q-72 0 -140 21v135q63 -18 131 -18q82 0 140.5 50.5t113.5 149.5l76 136zM500 1268q56 60 125.5 151.5t106.5 149.5h190v-21 q-38 -49 -140 -151t-177 -156h-105v27z" />
+<glyph unicode="&#xfe;" horiz-adv-x="1182" d="M545 -20q-98 0 -172 51t-113 139h-10q-8 -104 -25 -176l-102 -486h-166l432 2048h168q-95 -441 -115 -522t-39 -149h9q101 125 189 177t183 52q139 0 218 -97.5t79 -273.5q0 -212 -69 -389t-191 -275.5t-276 -98.5zM731 975q-96 0 -195.5 -95t-158 -239t-58.5 -295 q0 -110 55.5 -168.5t160.5 -58.5q99 0 184.5 81t137.5 230.5t52 317.5q0 227 -178 227z" />
+<glyph unicode="&#xff;" horiz-adv-x="946" d="M0 0zM98 1096h168l74 -545q10 -69 19.5 -203.5t9.5 -216.5h6q35 87 87 200t77 156l325 609h178l-696 -1282q-93 -172 -184 -239t-219 -67q-72 0 -140 21v135q63 -18 131 -18q82 0 140.5 50.5t113.5 149.5l76 136zM335 1378q0 46 28 79.5t74 33.5q78 0 78 -80 q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62zM699 1378q0 46 28 79.5t75 33.5q77 0 77 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62z" />
+<glyph unicode="&#x131;" horiz-adv-x="520" d="M227 0h-168l234 1096h168z" />
+<glyph unicode="&#x152;" horiz-adv-x="1751" d="M1524 0h-674q-78 -20 -158 -20q-256 0 -399 149.5t-143 419.5q0 264 96 482t263.5 336t377.5 118q152 0 237 -23h709l-31 -153h-565l-100 -469h528l-31 -150h-528l-115 -538h565zM696 131q69 0 123 19l246 1161q-76 22 -191 22q-157 0 -281 -101t-192.5 -281t-68.5 -398 q0 -199 98 -310.5t266 -111.5z" />
+<glyph unicode="&#x153;" horiz-adv-x="1769" d="M1251 -20q-270 0 -356 225q-69 -107 -171.5 -164t-225.5 -57q-184 0 -292 114t-108 308q0 193 75 360t201 255.5t281 88.5q270 0 359 -225q75 109 177.5 170t221.5 61q139 0 217 -65.5t78 -186.5q0 -183 -164.5 -284t-468.5 -101h-41l-4 -80q0 -131 61.5 -204.5 t190.5 -73.5q75 0 145 24.5t150 59.5v-150q-162 -75 -326 -75zM649 969q-109 0 -196 -73t-135 -202t-48 -284q0 -141 62 -214t172 -73q177 0 278 160.5t101 427.5q0 124 -59.5 191t-174.5 67zM1413 973q-125 0 -220.5 -94.5t-139.5 -260.5h18q231 0 351 61t120 177 q0 48 -32 82.5t-97 34.5z" />
+<glyph unicode="&#x178;" horiz-adv-x="1030" d="M188 0zM537 715l489 747h193l-627 -921l-113 -541h-172l119 549l-238 913h170zM452 1716q0 46 28 79.5t74 33.5q78 0 78 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62zM816 1716q0 46 28 79.5t75 33.5q77 0 77 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22 t-23.5 62z" />
+<glyph unicode="&#x2c6;" horiz-adv-x="1135" d="M1014 1241h-103q-57 48 -161 189q-134 -119 -242 -189h-109v27q145 133 204.5 197.5t82.5 103.5h158q37 -99 128 -235l42 -66v-27z" />
+<glyph unicode="&#x2da;" horiz-adv-x="1182" d="M989 1456q0 -99 -60 -157t-159 -58q-101 0 -160 57.5t-59 155.5q0 94 62 152.5t157 58.5q101 0 160 -57t59 -152zM885 1454q0 53 -32 84t-83 31q-49 0 -82 -31t-33 -84q0 -54 29.5 -84.5t85.5 -30.5q51 0 83 30.5t32 84.5z" />
+<glyph unicode="&#x2dc;" horiz-adv-x="1135" d="M838 1243q-40 0 -77.5 17.5t-73 39t-69 39t-65.5 17.5q-44 0 -69.5 -28.5t-47.5 -86.5h-100q58 258 231 258q44 0 83.5 -18t75 -39.5t66.5 -39.5t58 -18q44 0 69.5 27t51.5 90h100q-66 -258 -233 -258z" />
+<glyph unicode="&#x2000;" horiz-adv-x="953" />
+<glyph unicode="&#x2001;" horiz-adv-x="1907" />
+<glyph unicode="&#x2002;" horiz-adv-x="953" />
+<glyph unicode="&#x2003;" horiz-adv-x="1907" />
+<glyph unicode="&#x2004;" horiz-adv-x="635" />
+<glyph unicode="&#x2005;" horiz-adv-x="476" />
+<glyph unicode="&#x2006;" horiz-adv-x="317" />
+<glyph unicode="&#x2007;" horiz-adv-x="317" />
+<glyph unicode="&#x2008;" horiz-adv-x="238" />
+<glyph unicode="&#x2009;" horiz-adv-x="381" />
+<glyph unicode="&#x200a;" horiz-adv-x="105" />
+<glyph unicode="&#x2010;" horiz-adv-x="639" d="M55 469l35 158h479l-34 -158h-480z" />
+<glyph unicode="&#x2011;" horiz-adv-x="639" d="M55 469l35 158h479l-34 -158h-480z" />
+<glyph unicode="&#x2012;" horiz-adv-x="639" d="M55 469l35 158h479l-34 -158h-480z" />
+<glyph unicode="&#x2013;" horiz-adv-x="983" d="M55 469l35 160h823l-34 -160h-824z" />
+<glyph unicode="&#x2014;" horiz-adv-x="1966" d="M55 469l35 160h1806l-34 -160h-1807z" />
+<glyph unicode="&#x2018;" horiz-adv-x="348" d="M129 961l-6 22q98 211 270 479h127q-147 -345 -203 -501h-188z" />
+<glyph unicode="&#x2019;" horiz-adv-x="348" d="M516 1462l8 -22q-40 -91 -111 -218.5t-159 -260.5h-129q134 298 203 501h188z" />
+<glyph unicode="&#x201a;" horiz-adv-x="492" d="M291 238l8 -23q-113 -235 -270 -479h-129q126 286 204 502h187z" />
+<glyph unicode="&#x201c;" horiz-adv-x="719" d="M500 961l-8 22q80 181 272 479h127q-162 -379 -203 -501h-188zM129 961l-6 22q98 211 270 479h127q-147 -345 -203 -501h-188z" />
+<glyph unicode="&#x201d;" horiz-adv-x="719" d="M516 1462l8 -22q-40 -91 -111 -218.5t-159 -260.5h-129q134 298 203 501h188zM885 1462l10 -22q-94 -206 -274 -479h-127q57 126 115.5 272.5t86.5 228.5h189z" />
+<glyph unicode="&#x201e;" horiz-adv-x="858" d="M291 238l8 -23q-113 -235 -270 -479h-129q126 286 204 502h187zM659 238l9 -23q-95 -205 -271 -479h-129q140 316 203 502h188z" />
+<glyph unicode="&#x2022;" horiz-adv-x="774" d="M199 684q0 145 73.5 231t198.5 86q92 0 139 -49t47 -141q0 -141 -74 -230t-202 -89q-89 0 -135.5 49.5t-46.5 142.5z" />
+<glyph unicode="&#x2026;" horiz-adv-x="1563" d="M43 0zM563 74q0 77 40.5 122.5t111.5 45.5q43 0 69.5 -26t26.5 -79q0 -71 -40 -118.5t-108 -47.5q-46 0 -73 26t-27 77zM1085 74q0 77 40.5 122.5t111.5 45.5q43 0 69.5 -26t26.5 -79q0 -71 -40 -118.5t-108 -47.5q-46 0 -73 26t-27 77zM43 74q0 77 40.5 122.5 t111.5 45.5q43 0 69.5 -26t26.5 -79q0 -71 -40 -118.5t-108 -47.5q-46 0 -73 26t-27 77z" />
+<glyph unicode="&#x202f;" horiz-adv-x="381" />
+<glyph unicode="&#x2039;" horiz-adv-x="580" d="M88 578l391 380l78 -81l-297 -334l172 -381l-113 -49l-231 436v29z" />
+<glyph unicode="&#x203a;" horiz-adv-x="580" d="M492 496l-392 -381l-77 82l296 333l-172 381l113 50l232 -437v-28z" />
+<glyph unicode="&#x2044;" horiz-adv-x="268" d="M752 1462l-1086 -1462h-153l1085 1462h154z" />
+<glyph unicode="&#x205f;" horiz-adv-x="476" />
+<glyph unicode="&#x2074;" horiz-adv-x="717" d="M713 788h-129l-43 -202h-127l43 202h-365l23 101l481 579h133l-121 -563h127zM481 905q69 322 90 395q-20 -36 -110 -149l-205 -246h225z" />
+<glyph unicode="&#x20ac;" d="M928 1329q-140 0 -254 -99t-189 -298h426l-26 -133h-441q-21 -65 -32 -164h381l-29 -131h-361q0 -373 297 -373q123 0 256 55v-147q-127 -59 -278 -59q-212 0 -328.5 133.5t-116.5 378.5v12h-170l27 131h154q8 80 30 164h-151l27 133h159q97 267 259.5 408t369.5 141 q89 0 160 -21.5t141 -70.5l-80 -138q-113 78 -231 78z" />
+<glyph unicode="&#x2122;" horiz-adv-x="1534" d="M438 741h-121v617h-196v104h516v-104h-199v-617zM1014 741l-189 551h-6q4 -52 4 -121v-430h-118v721h180l182 -557l193 557h170v-721h-121v430q0 73 4 121h-6l-197 -551h-96z" />
+<glyph unicode="&#xe000;" horiz-adv-x="1095" d="M0 1095h1095v-1095h-1095v1095z" />
+<glyph horiz-adv-x="1182" d="M0 0z" />
+<hkern u1="&#x22;" u2="&#x178;" k="-20" />
+<hkern u1="&#x22;" u2="&#x153;" k="123" />
+<hkern u1="&#x22;" u2="&#xfc;" k="61" />
+<hkern u1="&#x22;" u2="&#xfb;" k="61" />
+<hkern u1="&#x22;" u2="&#xfa;" k="61" />
+<hkern u1="&#x22;" u2="&#xf9;" k="61" />
+<hkern u1="&#x22;" u2="&#xf8;" k="123" />
+<hkern u1="&#x22;" u2="&#xf6;" k="123" />
+<hkern u1="&#x22;" u2="&#xf5;" k="123" />
+<hkern u1="&#x22;" u2="&#xf4;" k="123" />
+<hkern u1="&#x22;" u2="&#xf3;" k="123" />
+<hkern u1="&#x22;" u2="&#xf2;" k="123" />
+<hkern u1="&#x22;" u2="&#xeb;" k="123" />
+<hkern u1="&#x22;" u2="&#xea;" k="123" />
+<hkern u1="&#x22;" u2="&#xe9;" k="123" />
+<hkern u1="&#x22;" u2="&#xe8;" k="123" />
+<hkern u1="&#x22;" u2="&#xe7;" k="123" />
+<hkern u1="&#x22;" u2="&#xe6;" k="82" />
+<hkern u1="&#x22;" u2="&#xe5;" k="82" />
+<hkern u1="&#x22;" u2="&#xe4;" k="82" />
+<hkern u1="&#x22;" u2="&#xe3;" k="82" />
+<hkern u1="&#x22;" u2="&#xe2;" k="82" />
+<hkern u1="&#x22;" u2="&#xe1;" k="82" />
+<hkern u1="&#x22;" u2="&#xe0;" k="123" />
+<hkern u1="&#x22;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x22;" u2="&#xc5;" k="143" />
+<hkern u1="&#x22;" u2="&#xc4;" k="143" />
+<hkern u1="&#x22;" u2="&#xc3;" k="143" />
+<hkern u1="&#x22;" u2="&#xc2;" k="143" />
+<hkern u1="&#x22;" u2="&#xc1;" k="143" />
+<hkern u1="&#x22;" u2="&#xc0;" k="143" />
+<hkern u1="&#x22;" u2="u" k="61" />
+<hkern u1="&#x22;" u2="s" k="61" />
+<hkern u1="&#x22;" u2="r" k="61" />
+<hkern u1="&#x22;" u2="q" k="123" />
+<hkern u1="&#x22;" u2="p" k="61" />
+<hkern u1="&#x22;" u2="o" k="123" />
+<hkern u1="&#x22;" u2="n" k="61" />
+<hkern u1="&#x22;" u2="m" k="61" />
+<hkern u1="&#x22;" u2="g" k="61" />
+<hkern u1="&#x22;" u2="e" k="123" />
+<hkern u1="&#x22;" u2="d" k="123" />
+<hkern u1="&#x22;" u2="c" k="123" />
+<hkern u1="&#x22;" u2="a" k="82" />
+<hkern u1="&#x22;" u2="Y" k="-20" />
+<hkern u1="&#x22;" u2="W" k="-41" />
+<hkern u1="&#x22;" u2="V" k="-41" />
+<hkern u1="&#x22;" u2="T" k="-41" />
+<hkern u1="&#x22;" u2="A" k="143" />
+<hkern u1="&#x27;" u2="&#x178;" k="-20" />
+<hkern u1="&#x27;" u2="&#x153;" k="123" />
+<hkern u1="&#x27;" u2="&#xfc;" k="61" />
+<hkern u1="&#x27;" u2="&#xfb;" k="61" />
+<hkern u1="&#x27;" u2="&#xfa;" k="61" />
+<hkern u1="&#x27;" u2="&#xf9;" k="61" />
+<hkern u1="&#x27;" u2="&#xf8;" k="123" />
+<hkern u1="&#x27;" u2="&#xf6;" k="123" />
+<hkern u1="&#x27;" u2="&#xf5;" k="123" />
+<hkern u1="&#x27;" u2="&#xf4;" k="123" />
+<hkern u1="&#x27;" u2="&#xf3;" k="123" />
+<hkern u1="&#x27;" u2="&#xf2;" k="123" />
+<hkern u1="&#x27;" u2="&#xeb;" k="123" />
+<hkern u1="&#x27;" u2="&#xea;" k="123" />
+<hkern u1="&#x27;" u2="&#xe9;" k="123" />
+<hkern u1="&#x27;" u2="&#xe8;" k="123" />
+<hkern u1="&#x27;" u2="&#xe7;" k="123" />
+<hkern u1="&#x27;" u2="&#xe6;" k="82" />
+<hkern u1="&#x27;" u2="&#xe5;" k="82" />
+<hkern u1="&#x27;" u2="&#xe4;" k="82" />
+<hkern u1="&#x27;" u2="&#xe3;" k="82" />
+<hkern u1="&#x27;" u2="&#xe2;" k="82" />
+<hkern u1="&#x27;" u2="&#xe1;" k="82" />
+<hkern u1="&#x27;" u2="&#xe0;" k="123" />
+<hkern u1="&#x27;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x27;" u2="&#xc5;" k="143" />
+<hkern u1="&#x27;" u2="&#xc4;" k="143" />
+<hkern u1="&#x27;" u2="&#xc3;" k="143" />
+<hkern u1="&#x27;" u2="&#xc2;" k="143" />
+<hkern u1="&#x27;" u2="&#xc1;" k="143" />
+<hkern u1="&#x27;" u2="&#xc0;" k="143" />
+<hkern u1="&#x27;" u2="u" k="61" />
+<hkern u1="&#x27;" u2="s" k="61" />
+<hkern u1="&#x27;" u2="r" k="61" />
+<hkern u1="&#x27;" u2="q" k="123" />
+<hkern u1="&#x27;" u2="p" k="61" />
+<hkern u1="&#x27;" u2="o" k="123" />
+<hkern u1="&#x27;" u2="n" k="61" />
+<hkern u1="&#x27;" u2="m" k="61" />
+<hkern u1="&#x27;" u2="g" k="61" />
+<hkern u1="&#x27;" u2="e" k="123" />
+<hkern u1="&#x27;" u2="d" k="123" />
+<hkern u1="&#x27;" u2="c" k="123" />
+<hkern u1="&#x27;" u2="a" k="82" />
+<hkern u1="&#x27;" u2="Y" k="-20" />
+<hkern u1="&#x27;" u2="W" k="-41" />
+<hkern u1="&#x27;" u2="V" k="-41" />
+<hkern u1="&#x27;" u2="T" k="-41" />
+<hkern u1="&#x27;" u2="A" k="143" />
+<hkern u1="&#x28;" u2="J" k="-184" />
+<hkern u1="&#x2c;" u2="&#x178;" k="123" />
+<hkern u1="&#x2c;" u2="&#x152;" k="102" />
+<hkern u1="&#x2c;" u2="&#xdd;" k="123" />
+<hkern u1="&#x2c;" u2="&#xdc;" k="41" />
+<hkern u1="&#x2c;" u2="&#xdb;" k="41" />
+<hkern u1="&#x2c;" u2="&#xda;" k="41" />
+<hkern u1="&#x2c;" u2="&#xd9;" k="41" />
+<hkern u1="&#x2c;" u2="&#xd8;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd6;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd5;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd4;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd3;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd2;" k="102" />
+<hkern u1="&#x2c;" u2="&#xc7;" k="102" />
+<hkern u1="&#x2c;" u2="Y" k="123" />
+<hkern u1="&#x2c;" u2="W" k="123" />
+<hkern u1="&#x2c;" u2="V" k="123" />
+<hkern u1="&#x2c;" u2="U" k="41" />
+<hkern u1="&#x2c;" u2="T" k="143" />
+<hkern u1="&#x2c;" u2="Q" k="102" />
+<hkern u1="&#x2c;" u2="O" k="102" />
+<hkern u1="&#x2c;" u2="G" k="102" />
+<hkern u1="&#x2c;" u2="C" k="102" />
+<hkern u1="&#x2d;" u2="T" k="82" />
+<hkern u1="&#x2e;" u2="&#x178;" k="123" />
+<hkern u1="&#x2e;" u2="&#x152;" k="102" />
+<hkern u1="&#x2e;" u2="&#xdd;" k="123" />
+<hkern u1="&#x2e;" u2="&#xdc;" k="41" />
+<hkern u1="&#x2e;" u2="&#xdb;" k="41" />
+<hkern u1="&#x2e;" u2="&#xda;" k="41" />
+<hkern u1="&#x2e;" u2="&#xd9;" k="41" />
+<hkern u1="&#x2e;" u2="&#xd8;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd6;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd5;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd4;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd3;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd2;" k="102" />
+<hkern u1="&#x2e;" u2="&#xc7;" k="102" />
+<hkern u1="&#x2e;" u2="Y" k="123" />
+<hkern u1="&#x2e;" u2="W" k="123" />
+<hkern u1="&#x2e;" u2="V" k="123" />
+<hkern u1="&#x2e;" u2="U" k="41" />
+<hkern u1="&#x2e;" u2="T" k="143" />
+<hkern u1="&#x2e;" u2="Q" k="102" />
+<hkern u1="&#x2e;" u2="O" k="102" />
+<hkern u1="&#x2e;" u2="G" k="102" />
+<hkern u1="&#x2e;" u2="C" k="102" />
+<hkern u1="A" u2="&#x201d;" k="143" />
+<hkern u1="A" u2="&#x2019;" k="143" />
+<hkern u1="A" u2="&#x178;" k="123" />
+<hkern u1="A" u2="&#x152;" k="41" />
+<hkern u1="A" u2="&#xdd;" k="123" />
+<hkern u1="A" u2="&#xd8;" k="41" />
+<hkern u1="A" u2="&#xd6;" k="41" />
+<hkern u1="A" u2="&#xd5;" k="41" />
+<hkern u1="A" u2="&#xd4;" k="41" />
+<hkern u1="A" u2="&#xd3;" k="41" />
+<hkern u1="A" u2="&#xd2;" k="41" />
+<hkern u1="A" u2="&#xc7;" k="41" />
+<hkern u1="A" u2="Y" k="123" />
+<hkern u1="A" u2="W" k="82" />
+<hkern u1="A" u2="V" k="82" />
+<hkern u1="A" u2="T" k="143" />
+<hkern u1="A" u2="Q" k="41" />
+<hkern u1="A" u2="O" k="41" />
+<hkern u1="A" u2="J" k="-266" />
+<hkern u1="A" u2="G" k="41" />
+<hkern u1="A" u2="C" k="41" />
+<hkern u1="A" u2="&#x27;" k="143" />
+<hkern u1="A" u2="&#x22;" k="143" />
+<hkern u1="B" u2="&#x201e;" k="82" />
+<hkern u1="B" u2="&#x201a;" k="82" />
+<hkern u1="B" u2="&#x178;" k="20" />
+<hkern u1="B" u2="&#xdd;" k="20" />
+<hkern u1="B" u2="&#xc5;" k="41" />
+<hkern u1="B" u2="&#xc4;" k="41" />
+<hkern u1="B" u2="&#xc3;" k="41" />
+<hkern u1="B" u2="&#xc2;" k="41" />
+<hkern u1="B" u2="&#xc1;" k="41" />
+<hkern u1="B" u2="&#xc0;" k="41" />
+<hkern u1="B" u2="Z" k="20" />
+<hkern u1="B" u2="Y" k="20" />
+<hkern u1="B" u2="X" k="41" />
+<hkern u1="B" u2="W" k="20" />
+<hkern u1="B" u2="V" k="20" />
+<hkern u1="B" u2="T" k="61" />
+<hkern u1="B" u2="A" k="41" />
+<hkern u1="B" u2="&#x2e;" k="82" />
+<hkern u1="B" u2="&#x2c;" k="82" />
+<hkern u1="C" u2="&#x152;" k="41" />
+<hkern u1="C" u2="&#xd8;" k="41" />
+<hkern u1="C" u2="&#xd6;" k="41" />
+<hkern u1="C" u2="&#xd5;" k="41" />
+<hkern u1="C" u2="&#xd4;" k="41" />
+<hkern u1="C" u2="&#xd3;" k="41" />
+<hkern u1="C" u2="&#xd2;" k="41" />
+<hkern u1="C" u2="&#xc7;" k="41" />
+<hkern u1="C" u2="Q" k="41" />
+<hkern u1="C" u2="O" k="41" />
+<hkern u1="C" u2="G" k="41" />
+<hkern u1="C" u2="C" k="41" />
+<hkern u1="D" u2="&#x201e;" k="82" />
+<hkern u1="D" u2="&#x201a;" k="82" />
+<hkern u1="D" u2="&#x178;" k="20" />
+<hkern u1="D" u2="&#xdd;" k="20" />
+<hkern u1="D" u2="&#xc5;" k="41" />
+<hkern u1="D" u2="&#xc4;" k="41" />
+<hkern u1="D" u2="&#xc3;" k="41" />
+<hkern u1="D" u2="&#xc2;" k="41" />
+<hkern u1="D" u2="&#xc1;" k="41" />
+<hkern u1="D" u2="&#xc0;" k="41" />
+<hkern u1="D" u2="Z" k="20" />
+<hkern u1="D" u2="Y" k="20" />
+<hkern u1="D" u2="X" k="41" />
+<hkern u1="D" u2="W" k="20" />
+<hkern u1="D" u2="V" k="20" />
+<hkern u1="D" u2="T" k="61" />
+<hkern u1="D" u2="A" k="41" />
+<hkern u1="D" u2="&#x2e;" k="82" />
+<hkern u1="D" u2="&#x2c;" k="82" />
+<hkern u1="E" u2="J" k="-123" />
+<hkern u1="F" u2="&#x201e;" k="123" />
+<hkern u1="F" u2="&#x201a;" k="123" />
+<hkern u1="F" u2="&#xc5;" k="41" />
+<hkern u1="F" u2="&#xc4;" k="41" />
+<hkern u1="F" u2="&#xc3;" k="41" />
+<hkern u1="F" u2="&#xc2;" k="41" />
+<hkern u1="F" u2="&#xc1;" k="41" />
+<hkern u1="F" u2="&#xc0;" k="41" />
+<hkern u1="F" u2="A" k="41" />
+<hkern u1="F" u2="&#x3f;" k="-41" />
+<hkern u1="F" u2="&#x2e;" k="123" />
+<hkern u1="F" u2="&#x2c;" k="123" />
+<hkern u1="K" u2="&#x152;" k="41" />
+<hkern u1="K" u2="&#xd8;" k="41" />
+<hkern u1="K" u2="&#xd6;" k="41" />
+<hkern u1="K" u2="&#xd5;" k="41" />
+<hkern u1="K" u2="&#xd4;" k="41" />
+<hkern u1="K" u2="&#xd3;" k="41" />
+<hkern u1="K" u2="&#xd2;" k="41" />
+<hkern u1="K" u2="&#xc7;" k="41" />
+<hkern u1="K" u2="Q" k="41" />
+<hkern u1="K" u2="O" k="41" />
+<hkern u1="K" u2="G" k="41" />
+<hkern u1="K" u2="C" k="41" />
+<hkern u1="L" u2="&#x201d;" k="164" />
+<hkern u1="L" u2="&#x2019;" k="164" />
+<hkern u1="L" u2="&#x178;" k="61" />
+<hkern u1="L" u2="&#x152;" k="41" />
+<hkern u1="L" u2="&#xdd;" k="61" />
+<hkern u1="L" u2="&#xdc;" k="20" />
+<hkern u1="L" u2="&#xdb;" k="20" />
+<hkern u1="L" u2="&#xda;" k="20" />
+<hkern u1="L" u2="&#xd9;" k="20" />
+<hkern u1="L" u2="&#xd8;" k="41" />
+<hkern u1="L" u2="&#xd6;" k="41" />
+<hkern u1="L" u2="&#xd5;" k="41" />
+<hkern u1="L" u2="&#xd4;" k="41" />
+<hkern u1="L" u2="&#xd3;" k="41" />
+<hkern u1="L" u2="&#xd2;" k="41" />
+<hkern u1="L" u2="&#xc7;" k="41" />
+<hkern u1="L" u2="Y" k="61" />
+<hkern u1="L" u2="W" k="41" />
+<hkern u1="L" u2="V" k="41" />
+<hkern u1="L" u2="U" k="20" />
+<hkern u1="L" u2="T" k="41" />
+<hkern u1="L" u2="Q" k="41" />
+<hkern u1="L" u2="O" k="41" />
+<hkern u1="L" u2="G" k="41" />
+<hkern u1="L" u2="C" k="41" />
+<hkern u1="L" u2="&#x27;" k="164" />
+<hkern u1="L" u2="&#x22;" k="164" />
+<hkern u1="O" u2="&#x201e;" k="82" />
+<hkern u1="O" u2="&#x201a;" k="82" />
+<hkern u1="O" u2="&#x178;" k="20" />
+<hkern u1="O" u2="&#xdd;" k="20" />
+<hkern u1="O" u2="&#xc5;" k="41" />
+<hkern u1="O" u2="&#xc4;" k="41" />
+<hkern u1="O" u2="&#xc3;" k="41" />
+<hkern u1="O" u2="&#xc2;" k="41" />
+<hkern u1="O" u2="&#xc1;" k="41" />
+<hkern u1="O" u2="&#xc0;" k="41" />
+<hkern u1="O" u2="Z" k="20" />
+<hkern u1="O" u2="Y" k="20" />
+<hkern u1="O" u2="X" k="41" />
+<hkern u1="O" u2="W" k="20" />
+<hkern u1="O" u2="V" k="20" />
+<hkern u1="O" u2="T" k="61" />
+<hkern u1="O" u2="A" k="41" />
+<hkern u1="O" u2="&#x2e;" k="82" />
+<hkern u1="O" u2="&#x2c;" k="82" />
+<hkern u1="P" u2="&#x201e;" k="266" />
+<hkern u1="P" u2="&#x201a;" k="266" />
+<hkern u1="P" u2="&#xc5;" k="102" />
+<hkern u1="P" u2="&#xc4;" k="102" />
+<hkern u1="P" u2="&#xc3;" k="102" />
+<hkern u1="P" u2="&#xc2;" k="102" />
+<hkern u1="P" u2="&#xc1;" k="102" />
+<hkern u1="P" u2="&#xc0;" k="102" />
+<hkern u1="P" u2="Z" k="20" />
+<hkern u1="P" u2="X" k="41" />
+<hkern u1="P" u2="A" k="102" />
+<hkern u1="P" u2="&#x2e;" k="266" />
+<hkern u1="P" u2="&#x2c;" k="266" />
+<hkern u1="Q" u2="&#x201e;" k="82" />
+<hkern u1="Q" u2="&#x201a;" k="82" />
+<hkern u1="Q" u2="&#x178;" k="20" />
+<hkern u1="Q" u2="&#xdd;" k="20" />
+<hkern u1="Q" u2="&#xc5;" k="41" />
+<hkern u1="Q" u2="&#xc4;" k="41" />
+<hkern u1="Q" u2="&#xc3;" k="41" />
+<hkern u1="Q" u2="&#xc2;" k="41" />
+<hkern u1="Q" u2="&#xc1;" k="41" />
+<hkern u1="Q" u2="&#xc0;" k="41" />
+<hkern u1="Q" u2="Z" k="20" />
+<hkern u1="Q" u2="Y" k="20" />
+<hkern u1="Q" u2="X" k="41" />
+<hkern u1="Q" u2="W" k="20" />
+<hkern u1="Q" u2="V" k="20" />
+<hkern u1="Q" u2="T" k="61" />
+<hkern u1="Q" u2="A" k="41" />
+<hkern u1="Q" u2="&#x2e;" k="82" />
+<hkern u1="Q" u2="&#x2c;" k="82" />
+<hkern u1="T" u2="&#x201e;" k="123" />
+<hkern u1="T" u2="&#x201a;" k="123" />
+<hkern u1="T" u2="&#x2014;" k="82" />
+<hkern u1="T" u2="&#x2013;" k="82" />
+<hkern u1="T" u2="&#x153;" k="143" />
+<hkern u1="T" u2="&#x152;" k="41" />
+<hkern u1="T" u2="&#xfd;" k="41" />
+<hkern u1="T" u2="&#xfc;" k="102" />
+<hkern u1="T" u2="&#xfb;" k="102" />
+<hkern u1="T" u2="&#xfa;" k="102" />
+<hkern u1="T" u2="&#xf9;" k="102" />
+<hkern u1="T" u2="&#xf8;" k="143" />
+<hkern u1="T" u2="&#xf6;" k="143" />
+<hkern u1="T" u2="&#xf5;" k="143" />
+<hkern u1="T" u2="&#xf4;" k="143" />
+<hkern u1="T" u2="&#xf3;" k="143" />
+<hkern u1="T" u2="&#xf2;" k="143" />
+<hkern u1="T" u2="&#xeb;" k="143" />
+<hkern u1="T" u2="&#xea;" k="143" />
+<hkern u1="T" u2="&#xe9;" k="143" />
+<hkern u1="T" u2="&#xe8;" k="143" />
+<hkern u1="T" u2="&#xe7;" k="143" />
+<hkern u1="T" u2="&#xe6;" k="164" />
+<hkern u1="T" u2="&#xe5;" k="164" />
+<hkern u1="T" u2="&#xe4;" k="164" />
+<hkern u1="T" u2="&#xe3;" k="164" />
+<hkern u1="T" u2="&#xe2;" k="164" />
+<hkern u1="T" u2="&#xe1;" k="164" />
+<hkern u1="T" u2="&#xe0;" k="143" />
+<hkern u1="T" u2="&#xd8;" k="41" />
+<hkern u1="T" u2="&#xd6;" k="41" />
+<hkern u1="T" u2="&#xd5;" k="41" />
+<hkern u1="T" u2="&#xd4;" k="41" />
+<hkern u1="T" u2="&#xd3;" k="41" />
+<hkern u1="T" u2="&#xd2;" k="41" />
+<hkern u1="T" u2="&#xc7;" k="41" />
+<hkern u1="T" u2="&#xc5;" k="143" />
+<hkern u1="T" u2="&#xc4;" k="143" />
+<hkern u1="T" u2="&#xc3;" k="143" />
+<hkern u1="T" u2="&#xc2;" k="143" />
+<hkern u1="T" u2="&#xc1;" k="143" />
+<hkern u1="T" u2="&#xc0;" k="143" />
+<hkern u1="T" u2="z" k="82" />
+<hkern u1="T" u2="y" k="41" />
+<hkern u1="T" u2="x" k="41" />
+<hkern u1="T" u2="w" k="41" />
+<hkern u1="T" u2="v" k="41" />
+<hkern u1="T" u2="u" k="102" />
+<hkern u1="T" u2="s" k="123" />
+<hkern u1="T" u2="r" k="102" />
+<hkern u1="T" u2="q" k="143" />
+<hkern u1="T" u2="p" k="102" />
+<hkern u1="T" u2="o" k="143" />
+<hkern u1="T" u2="n" k="102" />
+<hkern u1="T" u2="m" k="102" />
+<hkern u1="T" u2="g" k="143" />
+<hkern u1="T" u2="e" k="143" />
+<hkern u1="T" u2="d" k="143" />
+<hkern u1="T" u2="c" k="143" />
+<hkern u1="T" u2="a" k="164" />
+<hkern u1="T" u2="T" k="-41" />
+<hkern u1="T" u2="Q" k="41" />
+<hkern u1="T" u2="O" k="41" />
+<hkern u1="T" u2="G" k="41" />
+<hkern u1="T" u2="C" k="41" />
+<hkern u1="T" u2="A" k="143" />
+<hkern u1="T" u2="&#x3f;" k="-41" />
+<hkern u1="T" u2="&#x2e;" k="123" />
+<hkern u1="T" u2="&#x2d;" k="82" />
+<hkern u1="T" u2="&#x2c;" k="123" />
+<hkern u1="U" u2="&#x201e;" k="41" />
+<hkern u1="U" u2="&#x201a;" k="41" />
+<hkern u1="U" u2="&#xc5;" k="20" />
+<hkern u1="U" u2="&#xc4;" k="20" />
+<hkern u1="U" u2="&#xc3;" k="20" />
+<hkern u1="U" u2="&#xc2;" k="20" />
+<hkern u1="U" u2="&#xc1;" k="20" />
+<hkern u1="U" u2="&#xc0;" k="20" />
+<hkern u1="U" u2="A" k="20" />
+<hkern u1="U" u2="&#x2e;" k="41" />
+<hkern u1="U" u2="&#x2c;" k="41" />
+<hkern u1="V" u2="&#x201e;" k="102" />
+<hkern u1="V" u2="&#x201a;" k="102" />
+<hkern u1="V" u2="&#x153;" k="41" />
+<hkern u1="V" u2="&#x152;" k="20" />
+<hkern u1="V" u2="&#xfc;" k="20" />
+<hkern u1="V" u2="&#xfb;" k="20" />
+<hkern u1="V" u2="&#xfa;" k="20" />
+<hkern u1="V" u2="&#xf9;" k="20" />
+<hkern u1="V" u2="&#xf8;" k="41" />
+<hkern u1="V" u2="&#xf6;" k="41" />
+<hkern u1="V" u2="&#xf5;" k="41" />
+<hkern u1="V" u2="&#xf4;" k="41" />
+<hkern u1="V" u2="&#xf3;" k="41" />
+<hkern u1="V" u2="&#xf2;" k="41" />
+<hkern u1="V" u2="&#xeb;" k="41" />
+<hkern u1="V" u2="&#xea;" k="41" />
+<hkern u1="V" u2="&#xe9;" k="41" />
+<hkern u1="V" u2="&#xe8;" k="41" />
+<hkern u1="V" u2="&#xe7;" k="41" />
+<hkern u1="V" u2="&#xe6;" k="41" />
+<hkern u1="V" u2="&#xe5;" k="41" />
+<hkern u1="V" u2="&#xe4;" k="41" />
+<hkern u1="V" u2="&#xe3;" k="41" />
+<hkern u1="V" u2="&#xe2;" k="41" />
+<hkern u1="V" u2="&#xe1;" k="41" />
+<hkern u1="V" u2="&#xe0;" k="41" />
+<hkern u1="V" u2="&#xd8;" k="20" />
+<hkern u1="V" u2="&#xd6;" k="20" />
+<hkern u1="V" u2="&#xd5;" k="20" />
+<hkern u1="V" u2="&#xd4;" k="20" />
+<hkern u1="V" u2="&#xd3;" k="20" />
+<hkern u1="V" u2="&#xd2;" k="20" />
+<hkern u1="V" u2="&#xc7;" k="20" />
+<hkern u1="V" u2="&#xc5;" k="82" />
+<hkern u1="V" u2="&#xc4;" k="82" />
+<hkern u1="V" u2="&#xc3;" k="82" />
+<hkern u1="V" u2="&#xc2;" k="82" />
+<hkern u1="V" u2="&#xc1;" k="82" />
+<hkern u1="V" u2="&#xc0;" k="82" />
+<hkern u1="V" u2="u" k="20" />
+<hkern u1="V" u2="s" k="20" />
+<hkern u1="V" u2="r" k="20" />
+<hkern u1="V" u2="q" k="41" />
+<hkern u1="V" u2="p" k="20" />
+<hkern u1="V" u2="o" k="41" />
+<hkern u1="V" u2="n" k="20" />
+<hkern u1="V" u2="m" k="20" />
+<hkern u1="V" u2="g" k="20" />
+<hkern u1="V" u2="e" k="41" />
+<hkern u1="V" u2="d" k="41" />
+<hkern u1="V" u2="c" k="41" />
+<hkern u1="V" u2="a" k="41" />
+<hkern u1="V" u2="Q" k="20" />
+<hkern u1="V" u2="O" k="20" />
+<hkern u1="V" u2="G" k="20" />
+<hkern u1="V" u2="C" k="20" />
+<hkern u1="V" u2="A" k="82" />
+<hkern u1="V" u2="&#x3f;" k="-41" />
+<hkern u1="V" u2="&#x2e;" k="102" />
+<hkern u1="V" u2="&#x2c;" k="102" />
+<hkern u1="W" u2="&#x201e;" k="102" />
+<hkern u1="W" u2="&#x201a;" k="102" />
+<hkern u1="W" u2="&#x153;" k="41" />
+<hkern u1="W" u2="&#x152;" k="20" />
+<hkern u1="W" u2="&#xfc;" k="20" />
+<hkern u1="W" u2="&#xfb;" k="20" />
+<hkern u1="W" u2="&#xfa;" k="20" />
+<hkern u1="W" u2="&#xf9;" k="20" />
+<hkern u1="W" u2="&#xf8;" k="41" />
+<hkern u1="W" u2="&#xf6;" k="41" />
+<hkern u1="W" u2="&#xf5;" k="41" />
+<hkern u1="W" u2="&#xf4;" k="41" />
+<hkern u1="W" u2="&#xf3;" k="41" />
+<hkern u1="W" u2="&#xf2;" k="41" />
+<hkern u1="W" u2="&#xeb;" k="41" />
+<hkern u1="W" u2="&#xea;" k="41" />
+<hkern u1="W" u2="&#xe9;" k="41" />
+<hkern u1="W" u2="&#xe8;" k="41" />
+<hkern u1="W" u2="&#xe7;" k="41" />
+<hkern u1="W" u2="&#xe6;" k="41" />
+<hkern u1="W" u2="&#xe5;" k="41" />
+<hkern u1="W" u2="&#xe4;" k="41" />
+<hkern u1="W" u2="&#xe3;" k="41" />
+<hkern u1="W" u2="&#xe2;" k="41" />
+<hkern u1="W" u2="&#xe1;" k="41" />
+<hkern u1="W" u2="&#xe0;" k="41" />
+<hkern u1="W" u2="&#xd8;" k="20" />
+<hkern u1="W" u2="&#xd6;" k="20" />
+<hkern u1="W" u2="&#xd5;" k="20" />
+<hkern u1="W" u2="&#xd4;" k="20" />
+<hkern u1="W" u2="&#xd3;" k="20" />
+<hkern u1="W" u2="&#xd2;" k="20" />
+<hkern u1="W" u2="&#xc7;" k="20" />
+<hkern u1="W" u2="&#xc5;" k="82" />
+<hkern u1="W" u2="&#xc4;" k="82" />
+<hkern u1="W" u2="&#xc3;" k="82" />
+<hkern u1="W" u2="&#xc2;" k="82" />
+<hkern u1="W" u2="&#xc1;" k="82" />
+<hkern u1="W" u2="&#xc0;" k="82" />
+<hkern u1="W" u2="u" k="20" />
+<hkern u1="W" u2="s" k="20" />
+<hkern u1="W" u2="r" k="20" />
+<hkern u1="W" u2="q" k="41" />
+<hkern u1="W" u2="p" k="20" />
+<hkern u1="W" u2="o" k="41" />
+<hkern u1="W" u2="n" k="20" />
+<hkern u1="W" u2="m" k="20" />
+<hkern u1="W" u2="g" k="20" />
+<hkern u1="W" u2="e" k="41" />
+<hkern u1="W" u2="d" k="41" />
+<hkern u1="W" u2="c" k="41" />
+<hkern u1="W" u2="a" k="41" />
+<hkern u1="W" u2="Q" k="20" />
+<hkern u1="W" u2="O" k="20" />
+<hkern u1="W" u2="G" k="20" />
+<hkern u1="W" u2="C" k="20" />
+<hkern u1="W" u2="A" k="82" />
+<hkern u1="W" u2="&#x3f;" k="-41" />
+<hkern u1="W" u2="&#x2e;" k="102" />
+<hkern u1="W" u2="&#x2c;" k="102" />
+<hkern u1="X" u2="&#x152;" k="41" />
+<hkern u1="X" u2="&#xd8;" k="41" />
+<hkern u1="X" u2="&#xd6;" k="41" />
+<hkern u1="X" u2="&#xd5;" k="41" />
+<hkern u1="X" u2="&#xd4;" k="41" />
+<hkern u1="X" u2="&#xd3;" k="41" />
+<hkern u1="X" u2="&#xd2;" k="41" />
+<hkern u1="X" u2="&#xc7;" k="41" />
+<hkern u1="X" u2="Q" k="41" />
+<hkern u1="X" u2="O" k="41" />
+<hkern u1="X" u2="G" k="41" />
+<hkern u1="X" u2="C" k="41" />
+<hkern u1="Y" u2="&#x201e;" k="123" />
+<hkern u1="Y" u2="&#x201a;" k="123" />
+<hkern u1="Y" u2="&#x153;" k="102" />
+<hkern u1="Y" u2="&#x152;" k="41" />
+<hkern u1="Y" u2="&#xfc;" k="61" />
+<hkern u1="Y" u2="&#xfb;" k="61" />
+<hkern u1="Y" u2="&#xfa;" k="61" />
+<hkern u1="Y" u2="&#xf9;" k="61" />
+<hkern u1="Y" u2="&#xf8;" k="102" />
+<hkern u1="Y" u2="&#xf6;" k="102" />
+<hkern u1="Y" u2="&#xf5;" k="102" />
+<hkern u1="Y" u2="&#xf4;" k="102" />
+<hkern u1="Y" u2="&#xf3;" k="102" />
+<hkern u1="Y" u2="&#xf2;" k="102" />
+<hkern u1="Y" u2="&#xeb;" k="102" />
+<hkern u1="Y" u2="&#xea;" k="102" />
+<hkern u1="Y" u2="&#xe9;" k="102" />
+<hkern u1="Y" u2="&#xe8;" k="102" />
+<hkern u1="Y" u2="&#xe7;" k="102" />
+<hkern u1="Y" u2="&#xe6;" k="102" />
+<hkern u1="Y" u2="&#xe5;" k="102" />
+<hkern u1="Y" u2="&#xe4;" k="102" />
+<hkern u1="Y" u2="&#xe3;" k="102" />
+<hkern u1="Y" u2="&#xe2;" k="102" />
+<hkern u1="Y" u2="&#xe1;" k="102" />
+<hkern u1="Y" u2="&#xe0;" k="102" />
+<hkern u1="Y" u2="&#xd8;" k="41" />
+<hkern u1="Y" u2="&#xd6;" k="41" />
+<hkern u1="Y" u2="&#xd5;" k="41" />
+<hkern u1="Y" u2="&#xd4;" k="41" />
+<hkern u1="Y" u2="&#xd3;" k="41" />
+<hkern u1="Y" u2="&#xd2;" k="41" />
+<hkern u1="Y" u2="&#xc7;" k="41" />
+<hkern u1="Y" u2="&#xc5;" k="123" />
+<hkern u1="Y" u2="&#xc4;" k="123" />
+<hkern u1="Y" u2="&#xc3;" k="123" />
+<hkern u1="Y" u2="&#xc2;" k="123" />
+<hkern u1="Y" u2="&#xc1;" k="123" />
+<hkern u1="Y" u2="&#xc0;" k="123" />
+<hkern u1="Y" u2="z" k="41" />
+<hkern u1="Y" u2="u" k="61" />
+<hkern u1="Y" u2="s" k="82" />
+<hkern u1="Y" u2="r" k="61" />
+<hkern u1="Y" u2="q" k="102" />
+<hkern u1="Y" u2="p" k="61" />
+<hkern u1="Y" u2="o" k="102" />
+<hkern u1="Y" u2="n" k="61" />
+<hkern u1="Y" u2="m" k="61" />
+<hkern u1="Y" u2="g" k="41" />
+<hkern u1="Y" u2="e" k="102" />
+<hkern u1="Y" u2="d" k="102" />
+<hkern u1="Y" u2="c" k="102" />
+<hkern u1="Y" u2="a" k="102" />
+<hkern u1="Y" u2="Q" k="41" />
+<hkern u1="Y" u2="O" k="41" />
+<hkern u1="Y" u2="G" k="41" />
+<hkern u1="Y" u2="C" k="41" />
+<hkern u1="Y" u2="A" k="123" />
+<hkern u1="Y" u2="&#x3f;" k="-41" />
+<hkern u1="Y" u2="&#x2e;" k="123" />
+<hkern u1="Y" u2="&#x2c;" k="123" />
+<hkern u1="Z" u2="&#x152;" k="20" />
+<hkern u1="Z" u2="&#xd8;" k="20" />
+<hkern u1="Z" u2="&#xd6;" k="20" />
+<hkern u1="Z" u2="&#xd5;" k="20" />
+<hkern u1="Z" u2="&#xd4;" k="20" />
+<hkern u1="Z" u2="&#xd3;" k="20" />
+<hkern u1="Z" u2="&#xd2;" k="20" />
+<hkern u1="Z" u2="&#xc7;" k="20" />
+<hkern u1="Z" u2="Q" k="20" />
+<hkern u1="Z" u2="O" k="20" />
+<hkern u1="Z" u2="G" k="20" />
+<hkern u1="Z" u2="C" k="20" />
+<hkern u1="[" u2="J" k="-184" />
+<hkern u1="a" u2="&#x201d;" k="20" />
+<hkern u1="a" u2="&#x2019;" k="20" />
+<hkern u1="a" u2="&#x27;" k="20" />
+<hkern u1="a" u2="&#x22;" k="20" />
+<hkern u1="b" u2="&#x201d;" k="20" />
+<hkern u1="b" u2="&#x2019;" k="20" />
+<hkern u1="b" u2="&#xfd;" k="41" />
+<hkern u1="b" u2="z" k="20" />
+<hkern u1="b" u2="y" k="41" />
+<hkern u1="b" u2="x" k="41" />
+<hkern u1="b" u2="w" k="41" />
+<hkern u1="b" u2="v" k="41" />
+<hkern u1="b" u2="&#x27;" k="20" />
+<hkern u1="b" u2="&#x22;" k="20" />
+<hkern u1="c" u2="&#x201d;" k="-41" />
+<hkern u1="c" u2="&#x2019;" k="-41" />
+<hkern u1="c" u2="&#x27;" k="-41" />
+<hkern u1="c" u2="&#x22;" k="-41" />
+<hkern u1="e" u2="&#x201d;" k="20" />
+<hkern u1="e" u2="&#x2019;" k="20" />
+<hkern u1="e" u2="&#xfd;" k="41" />
+<hkern u1="e" u2="z" k="20" />
+<hkern u1="e" u2="y" k="41" />
+<hkern u1="e" u2="x" k="41" />
+<hkern u1="e" u2="w" k="41" />
+<hkern u1="e" u2="v" k="41" />
+<hkern u1="e" u2="&#x27;" k="20" />
+<hkern u1="e" u2="&#x22;" k="20" />
+<hkern u1="f" u2="&#x201d;" k="-123" />
+<hkern u1="f" u2="&#x2019;" k="-123" />
+<hkern u1="f" u2="&#x27;" k="-123" />
+<hkern u1="f" u2="&#x22;" k="-123" />
+<hkern u1="h" u2="&#x201d;" k="20" />
+<hkern u1="h" u2="&#x2019;" k="20" />
+<hkern u1="h" u2="&#x27;" k="20" />
+<hkern u1="h" u2="&#x22;" k="20" />
+<hkern u1="k" u2="&#x153;" k="41" />
+<hkern u1="k" u2="&#xf8;" k="41" />
+<hkern u1="k" u2="&#xf6;" k="41" />
+<hkern u1="k" u2="&#xf5;" k="41" />
+<hkern u1="k" u2="&#xf4;" k="41" />
+<hkern u1="k" u2="&#xf3;" k="41" />
+<hkern u1="k" u2="&#xf2;" k="41" />
+<hkern u1="k" u2="&#xeb;" k="41" />
+<hkern u1="k" u2="&#xea;" k="41" />
+<hkern u1="k" u2="&#xe9;" k="41" />
+<hkern u1="k" u2="&#xe8;" k="41" />
+<hkern u1="k" u2="&#xe7;" k="41" />
+<hkern u1="k" u2="&#xe0;" k="41" />
+<hkern u1="k" u2="q" k="41" />
+<hkern u1="k" u2="o" k="41" />
+<hkern u1="k" u2="e" k="41" />
+<hkern u1="k" u2="d" k="41" />
+<hkern u1="k" u2="c" k="41" />
+<hkern u1="m" u2="&#x201d;" k="20" />
+<hkern u1="m" u2="&#x2019;" k="20" />
+<hkern u1="m" u2="&#x27;" k="20" />
+<hkern u1="m" u2="&#x22;" k="20" />
+<hkern u1="n" u2="&#x201d;" k="20" />
+<hkern u1="n" u2="&#x2019;" k="20" />
+<hkern u1="n" u2="&#x27;" k="20" />
+<hkern u1="n" u2="&#x22;" k="20" />
+<hkern u1="o" u2="&#x201d;" k="20" />
+<hkern u1="o" u2="&#x2019;" k="20" />
+<hkern u1="o" u2="&#xfd;" k="41" />
+<hkern u1="o" u2="z" k="20" />
+<hkern u1="o" u2="y" k="41" />
+<hkern u1="o" u2="x" k="41" />
+<hkern u1="o" u2="w" k="41" />
+<hkern u1="o" u2="v" k="41" />
+<hkern u1="o" u2="&#x27;" k="20" />
+<hkern u1="o" u2="&#x22;" k="20" />
+<hkern u1="p" u2="&#x201d;" k="20" />
+<hkern u1="p" u2="&#x2019;" k="20" />
+<hkern u1="p" u2="&#xfd;" k="41" />
+<hkern u1="p" u2="z" k="20" />
+<hkern u1="p" u2="y" k="41" />
+<hkern u1="p" u2="x" k="41" />
+<hkern u1="p" u2="w" k="41" />
+<hkern u1="p" u2="v" k="41" />
+<hkern u1="p" u2="&#x27;" k="20" />
+<hkern u1="p" u2="&#x22;" k="20" />
+<hkern u1="r" u2="&#x201d;" k="-82" />
+<hkern u1="r" u2="&#x2019;" k="-82" />
+<hkern u1="r" u2="&#x153;" k="41" />
+<hkern u1="r" u2="&#xf8;" k="41" />
+<hkern u1="r" u2="&#xf6;" k="41" />
+<hkern u1="r" u2="&#xf5;" k="41" />
+<hkern u1="r" u2="&#xf4;" k="41" />
+<hkern u1="r" u2="&#xf3;" k="41" />
+<hkern u1="r" u2="&#xf2;" k="41" />
+<hkern u1="r" u2="&#xeb;" k="41" />
+<hkern u1="r" u2="&#xea;" k="41" />
+<hkern u1="r" u2="&#xe9;" k="41" />
+<hkern u1="r" u2="&#xe8;" k="41" />
+<hkern u1="r" u2="&#xe7;" k="41" />
+<hkern u1="r" u2="&#xe6;" k="41" />
+<hkern u1="r" u2="&#xe5;" k="41" />
+<hkern u1="r" u2="&#xe4;" k="41" />
+<hkern u1="r" u2="&#xe3;" k="41" />
+<hkern u1="r" u2="&#xe2;" k="41" />
+<hkern u1="r" u2="&#xe1;" k="41" />
+<hkern u1="r" u2="&#xe0;" k="41" />
+<hkern u1="r" u2="q" k="41" />
+<hkern u1="r" u2="o" k="41" />
+<hkern u1="r" u2="g" k="20" />
+<hkern u1="r" u2="e" k="41" />
+<hkern u1="r" u2="d" k="41" />
+<hkern u1="r" u2="c" k="41" />
+<hkern u1="r" u2="a" k="41" />
+<hkern u1="r" u2="&#x27;" k="-82" />
+<hkern u1="r" u2="&#x22;" k="-82" />
+<hkern u1="t" u2="&#x201d;" k="-41" />
+<hkern u1="t" u2="&#x2019;" k="-41" />
+<hkern u1="t" u2="&#x27;" k="-41" />
+<hkern u1="t" u2="&#x22;" k="-41" />
+<hkern u1="v" u2="&#x201e;" k="82" />
+<hkern u1="v" u2="&#x201d;" k="-82" />
+<hkern u1="v" u2="&#x201a;" k="82" />
+<hkern u1="v" u2="&#x2019;" k="-82" />
+<hkern u1="v" u2="&#x3f;" k="-41" />
+<hkern u1="v" u2="&#x2e;" k="82" />
+<hkern u1="v" u2="&#x2c;" k="82" />
+<hkern u1="v" u2="&#x27;" k="-82" />
+<hkern u1="v" u2="&#x22;" k="-82" />
+<hkern u1="w" u2="&#x201e;" k="82" />
+<hkern u1="w" u2="&#x201d;" k="-82" />
+<hkern u1="w" u2="&#x201a;" k="82" />
+<hkern u1="w" u2="&#x2019;" k="-82" />
+<hkern u1="w" u2="&#x3f;" k="-41" />
+<hkern u1="w" u2="&#x2e;" k="82" />
+<hkern u1="w" u2="&#x2c;" k="82" />
+<hkern u1="w" u2="&#x27;" k="-82" />
+<hkern u1="w" u2="&#x22;" k="-82" />
+<hkern u1="x" u2="&#x153;" k="41" />
+<hkern u1="x" u2="&#xf8;" k="41" />
+<hkern u1="x" u2="&#xf6;" k="41" />
+<hkern u1="x" u2="&#xf5;" k="41" />
+<hkern u1="x" u2="&#xf4;" k="41" />
+<hkern u1="x" u2="&#xf3;" k="41" />
+<hkern u1="x" u2="&#xf2;" k="41" />
+<hkern u1="x" u2="&#xeb;" k="41" />
+<hkern u1="x" u2="&#xea;" k="41" />
+<hkern u1="x" u2="&#xe9;" k="41" />
+<hkern u1="x" u2="&#xe8;" k="41" />
+<hkern u1="x" u2="&#xe7;" k="41" />
+<hkern u1="x" u2="&#xe0;" k="41" />
+<hkern u1="x" u2="q" k="41" />
+<hkern u1="x" u2="o" k="41" />
+<hkern u1="x" u2="e" k="41" />
+<hkern u1="x" u2="d" k="41" />
+<hkern u1="x" u2="c" k="41" />
+<hkern u1="y" u2="&#x201e;" k="82" />
+<hkern u1="y" u2="&#x201d;" k="-82" />
+<hkern u1="y" u2="&#x201a;" k="82" />
+<hkern u1="y" u2="&#x2019;" k="-82" />
+<hkern u1="y" u2="&#x3f;" k="-41" />
+<hkern u1="y" u2="&#x2e;" k="82" />
+<hkern u1="y" u2="&#x2c;" k="82" />
+<hkern u1="y" u2="&#x27;" k="-82" />
+<hkern u1="y" u2="&#x22;" k="-82" />
+<hkern u1="&#x7b;" u2="J" k="-184" />
+<hkern u1="&#xc0;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc0;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc0;" u2="&#x178;" k="123" />
+<hkern u1="&#xc0;" u2="&#x152;" k="41" />
+<hkern u1="&#xc0;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc0;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc0;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc0;" u2="Y" k="123" />
+<hkern u1="&#xc0;" u2="W" k="82" />
+<hkern u1="&#xc0;" u2="V" k="82" />
+<hkern u1="&#xc0;" u2="T" k="143" />
+<hkern u1="&#xc0;" u2="Q" k="41" />
+<hkern u1="&#xc0;" u2="O" k="41" />
+<hkern u1="&#xc0;" u2="J" k="-266" />
+<hkern u1="&#xc0;" u2="G" k="41" />
+<hkern u1="&#xc0;" u2="C" k="41" />
+<hkern u1="&#xc0;" u2="&#x27;" k="143" />
+<hkern u1="&#xc0;" u2="&#x22;" k="143" />
+<hkern u1="&#xc1;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc1;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc1;" u2="&#x178;" k="123" />
+<hkern u1="&#xc1;" u2="&#x152;" k="41" />
+<hkern u1="&#xc1;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc1;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc1;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc1;" u2="Y" k="123" />
+<hkern u1="&#xc1;" u2="W" k="82" />
+<hkern u1="&#xc1;" u2="V" k="82" />
+<hkern u1="&#xc1;" u2="T" k="143" />
+<hkern u1="&#xc1;" u2="Q" k="41" />
+<hkern u1="&#xc1;" u2="O" k="41" />
+<hkern u1="&#xc1;" u2="J" k="-266" />
+<hkern u1="&#xc1;" u2="G" k="41" />
+<hkern u1="&#xc1;" u2="C" k="41" />
+<hkern u1="&#xc1;" u2="&#x27;" k="143" />
+<hkern u1="&#xc1;" u2="&#x22;" k="143" />
+<hkern u1="&#xc2;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc2;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc2;" u2="&#x178;" k="123" />
+<hkern u1="&#xc2;" u2="&#x152;" k="41" />
+<hkern u1="&#xc2;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc2;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc2;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc2;" u2="Y" k="123" />
+<hkern u1="&#xc2;" u2="W" k="82" />
+<hkern u1="&#xc2;" u2="V" k="82" />
+<hkern u1="&#xc2;" u2="T" k="143" />
+<hkern u1="&#xc2;" u2="Q" k="41" />
+<hkern u1="&#xc2;" u2="O" k="41" />
+<hkern u1="&#xc2;" u2="J" k="-266" />
+<hkern u1="&#xc2;" u2="G" k="41" />
+<hkern u1="&#xc2;" u2="C" k="41" />
+<hkern u1="&#xc2;" u2="&#x27;" k="143" />
+<hkern u1="&#xc2;" u2="&#x22;" k="143" />
+<hkern u1="&#xc3;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc3;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc3;" u2="&#x178;" k="123" />
+<hkern u1="&#xc3;" u2="&#x152;" k="41" />
+<hkern u1="&#xc3;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc3;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc3;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc3;" u2="Y" k="123" />
+<hkern u1="&#xc3;" u2="W" k="82" />
+<hkern u1="&#xc3;" u2="V" k="82" />
+<hkern u1="&#xc3;" u2="T" k="143" />
+<hkern u1="&#xc3;" u2="Q" k="41" />
+<hkern u1="&#xc3;" u2="O" k="41" />
+<hkern u1="&#xc3;" u2="J" k="-266" />
+<hkern u1="&#xc3;" u2="G" k="41" />
+<hkern u1="&#xc3;" u2="C" k="41" />
+<hkern u1="&#xc3;" u2="&#x27;" k="143" />
+<hkern u1="&#xc3;" u2="&#x22;" k="143" />
+<hkern u1="&#xc4;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc4;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc4;" u2="&#x178;" k="123" />
+<hkern u1="&#xc4;" u2="&#x152;" k="41" />
+<hkern u1="&#xc4;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc4;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc4;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc4;" u2="Y" k="123" />
+<hkern u1="&#xc4;" u2="W" k="82" />
+<hkern u1="&#xc4;" u2="V" k="82" />
+<hkern u1="&#xc4;" u2="T" k="143" />
+<hkern u1="&#xc4;" u2="Q" k="41" />
+<hkern u1="&#xc4;" u2="O" k="41" />
+<hkern u1="&#xc4;" u2="J" k="-266" />
+<hkern u1="&#xc4;" u2="G" k="41" />
+<hkern u1="&#xc4;" u2="C" k="41" />
+<hkern u1="&#xc4;" u2="&#x27;" k="143" />
+<hkern u1="&#xc4;" u2="&#x22;" k="143" />
+<hkern u1="&#xc5;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc5;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc5;" u2="&#x178;" k="123" />
+<hkern u1="&#xc5;" u2="&#x152;" k="41" />
+<hkern u1="&#xc5;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc5;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc5;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc5;" u2="Y" k="123" />
+<hkern u1="&#xc5;" u2="W" k="82" />
+<hkern u1="&#xc5;" u2="V" k="82" />
+<hkern u1="&#xc5;" u2="T" k="143" />
+<hkern u1="&#xc5;" u2="Q" k="41" />
+<hkern u1="&#xc5;" u2="O" k="41" />
+<hkern u1="&#xc5;" u2="J" k="-266" />
+<hkern u1="&#xc5;" u2="G" k="41" />
+<hkern u1="&#xc5;" u2="C" k="41" />
+<hkern u1="&#xc5;" u2="&#x27;" k="143" />
+<hkern u1="&#xc5;" u2="&#x22;" k="143" />
+<hkern u1="&#xc6;" u2="J" k="-123" />
+<hkern u1="&#xc7;" u2="&#x152;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc7;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc7;" u2="Q" k="41" />
+<hkern u1="&#xc7;" u2="O" k="41" />
+<hkern u1="&#xc7;" u2="G" k="41" />
+<hkern u1="&#xc7;" u2="C" k="41" />
+<hkern u1="&#xc8;" u2="J" k="-123" />
+<hkern u1="&#xc9;" u2="J" k="-123" />
+<hkern u1="&#xca;" u2="J" k="-123" />
+<hkern u1="&#xcb;" u2="J" k="-123" />
+<hkern u1="&#xd0;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd0;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd0;" u2="&#x178;" k="20" />
+<hkern u1="&#xd0;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd0;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd0;" u2="Z" k="20" />
+<hkern u1="&#xd0;" u2="Y" k="20" />
+<hkern u1="&#xd0;" u2="X" k="41" />
+<hkern u1="&#xd0;" u2="W" k="20" />
+<hkern u1="&#xd0;" u2="V" k="20" />
+<hkern u1="&#xd0;" u2="T" k="61" />
+<hkern u1="&#xd0;" u2="A" k="41" />
+<hkern u1="&#xd0;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd0;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd2;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd2;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd2;" u2="&#x178;" k="20" />
+<hkern u1="&#xd2;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd2;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd2;" u2="Z" k="20" />
+<hkern u1="&#xd2;" u2="Y" k="20" />
+<hkern u1="&#xd2;" u2="X" k="41" />
+<hkern u1="&#xd2;" u2="W" k="20" />
+<hkern u1="&#xd2;" u2="V" k="20" />
+<hkern u1="&#xd2;" u2="T" k="61" />
+<hkern u1="&#xd2;" u2="A" k="41" />
+<hkern u1="&#xd2;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd2;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd3;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd3;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd3;" u2="&#x178;" k="20" />
+<hkern u1="&#xd3;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd3;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd3;" u2="Z" k="20" />
+<hkern u1="&#xd3;" u2="Y" k="20" />
+<hkern u1="&#xd3;" u2="X" k="41" />
+<hkern u1="&#xd3;" u2="W" k="20" />
+<hkern u1="&#xd3;" u2="V" k="20" />
+<hkern u1="&#xd3;" u2="T" k="61" />
+<hkern u1="&#xd3;" u2="A" k="41" />
+<hkern u1="&#xd3;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd3;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd4;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd4;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd4;" u2="&#x178;" k="20" />
+<hkern u1="&#xd4;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd4;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd4;" u2="Z" k="20" />
+<hkern u1="&#xd4;" u2="Y" k="20" />
+<hkern u1="&#xd4;" u2="X" k="41" />
+<hkern u1="&#xd4;" u2="W" k="20" />
+<hkern u1="&#xd4;" u2="V" k="20" />
+<hkern u1="&#xd4;" u2="T" k="61" />
+<hkern u1="&#xd4;" u2="A" k="41" />
+<hkern u1="&#xd4;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd4;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd5;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd5;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd5;" u2="&#x178;" k="20" />
+<hkern u1="&#xd5;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd5;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd5;" u2="Z" k="20" />
+<hkern u1="&#xd5;" u2="Y" k="20" />
+<hkern u1="&#xd5;" u2="X" k="41" />
+<hkern u1="&#xd5;" u2="W" k="20" />
+<hkern u1="&#xd5;" u2="V" k="20" />
+<hkern u1="&#xd5;" u2="T" k="61" />
+<hkern u1="&#xd5;" u2="A" k="41" />
+<hkern u1="&#xd5;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd5;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd6;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd6;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd6;" u2="&#x178;" k="20" />
+<hkern u1="&#xd6;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd6;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd6;" u2="Z" k="20" />
+<hkern u1="&#xd6;" u2="Y" k="20" />
+<hkern u1="&#xd6;" u2="X" k="41" />
+<hkern u1="&#xd6;" u2="W" k="20" />
+<hkern u1="&#xd6;" u2="V" k="20" />
+<hkern u1="&#xd6;" u2="T" k="61" />
+<hkern u1="&#xd6;" u2="A" k="41" />
+<hkern u1="&#xd6;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd6;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd8;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd8;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd8;" u2="&#x178;" k="20" />
+<hkern u1="&#xd8;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd8;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd8;" u2="Z" k="20" />
+<hkern u1="&#xd8;" u2="Y" k="20" />
+<hkern u1="&#xd8;" u2="X" k="41" />
+<hkern u1="&#xd8;" u2="W" k="20" />
+<hkern u1="&#xd8;" u2="V" k="20" />
+<hkern u1="&#xd8;" u2="T" k="61" />
+<hkern u1="&#xd8;" u2="A" k="41" />
+<hkern u1="&#xd8;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd8;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd9;" u2="&#x201e;" k="41" />
+<hkern u1="&#xd9;" u2="&#x201a;" k="41" />
+<hkern u1="&#xd9;" u2="&#xc5;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc4;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc3;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc2;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc1;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc0;" k="20" />
+<hkern u1="&#xd9;" u2="A" k="20" />
+<hkern u1="&#xd9;" u2="&#x2e;" k="41" />
+<hkern u1="&#xd9;" u2="&#x2c;" k="41" />
+<hkern u1="&#xda;" u2="&#x201e;" k="41" />
+<hkern u1="&#xda;" u2="&#x201a;" k="41" />
+<hkern u1="&#xda;" u2="&#xc5;" k="20" />
+<hkern u1="&#xda;" u2="&#xc4;" k="20" />
+<hkern u1="&#xda;" u2="&#xc3;" k="20" />
+<hkern u1="&#xda;" u2="&#xc2;" k="20" />
+<hkern u1="&#xda;" u2="&#xc1;" k="20" />
+<hkern u1="&#xda;" u2="&#xc0;" k="20" />
+<hkern u1="&#xda;" u2="A" k="20" />
+<hkern u1="&#xda;" u2="&#x2e;" k="41" />
+<hkern u1="&#xda;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdb;" u2="&#x201e;" k="41" />
+<hkern u1="&#xdb;" u2="&#x201a;" k="41" />
+<hkern u1="&#xdb;" u2="&#xc5;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc4;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc3;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc2;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc1;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc0;" k="20" />
+<hkern u1="&#xdb;" u2="A" k="20" />
+<hkern u1="&#xdb;" u2="&#x2e;" k="41" />
+<hkern u1="&#xdb;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdc;" u2="&#x201e;" k="41" />
+<hkern u1="&#xdc;" u2="&#x201a;" k="41" />
+<hkern u1="&#xdc;" u2="&#xc5;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc4;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc3;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc2;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc1;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc0;" k="20" />
+<hkern u1="&#xdc;" u2="A" k="20" />
+<hkern u1="&#xdc;" u2="&#x2e;" k="41" />
+<hkern u1="&#xdc;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdd;" u2="&#x201e;" k="123" />
+<hkern u1="&#xdd;" u2="&#x201a;" k="123" />
+<hkern u1="&#xdd;" u2="&#x153;" k="102" />
+<hkern u1="&#xdd;" u2="&#x152;" k="41" />
+<hkern u1="&#xdd;" u2="&#xfc;" k="61" />
+<hkern u1="&#xdd;" u2="&#xfb;" k="61" />
+<hkern u1="&#xdd;" u2="&#xfa;" k="61" />
+<hkern u1="&#xdd;" u2="&#xf9;" k="61" />
+<hkern u1="&#xdd;" u2="&#xf8;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf6;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf5;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf4;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf3;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf2;" k="102" />
+<hkern u1="&#xdd;" u2="&#xeb;" k="102" />
+<hkern u1="&#xdd;" u2="&#xea;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe9;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe8;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe7;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe6;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe5;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe4;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe3;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe2;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe1;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe0;" k="102" />
+<hkern u1="&#xdd;" u2="&#xd8;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd6;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd5;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd4;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd3;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd2;" k="41" />
+<hkern u1="&#xdd;" u2="&#xc7;" k="41" />
+<hkern u1="&#xdd;" u2="&#xc5;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc4;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc3;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc2;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc1;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc0;" k="123" />
+<hkern u1="&#xdd;" u2="z" k="41" />
+<hkern u1="&#xdd;" u2="u" k="61" />
+<hkern u1="&#xdd;" u2="s" k="82" />
+<hkern u1="&#xdd;" u2="r" k="61" />
+<hkern u1="&#xdd;" u2="q" k="102" />
+<hkern u1="&#xdd;" u2="p" k="61" />
+<hkern u1="&#xdd;" u2="o" k="102" />
+<hkern u1="&#xdd;" u2="n" k="61" />
+<hkern u1="&#xdd;" u2="m" k="61" />
+<hkern u1="&#xdd;" u2="g" k="41" />
+<hkern u1="&#xdd;" u2="e" k="102" />
+<hkern u1="&#xdd;" u2="d" k="102" />
+<hkern u1="&#xdd;" u2="c" k="102" />
+<hkern u1="&#xdd;" u2="a" k="102" />
+<hkern u1="&#xdd;" u2="Q" k="41" />
+<hkern u1="&#xdd;" u2="O" k="41" />
+<hkern u1="&#xdd;" u2="G" k="41" />
+<hkern u1="&#xdd;" u2="C" k="41" />
+<hkern u1="&#xdd;" u2="A" k="123" />
+<hkern u1="&#xdd;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xdd;" u2="&#x2e;" k="123" />
+<hkern u1="&#xdd;" u2="&#x2c;" k="123" />
+<hkern u1="&#xde;" u2="&#x201e;" k="266" />
+<hkern u1="&#xde;" u2="&#x201a;" k="266" />
+<hkern u1="&#xde;" u2="&#xc5;" k="102" />
+<hkern u1="&#xde;" u2="&#xc4;" k="102" />
+<hkern u1="&#xde;" u2="&#xc3;" k="102" />
+<hkern u1="&#xde;" u2="&#xc2;" k="102" />
+<hkern u1="&#xde;" u2="&#xc1;" k="102" />
+<hkern u1="&#xde;" u2="&#xc0;" k="102" />
+<hkern u1="&#xde;" u2="Z" k="20" />
+<hkern u1="&#xde;" u2="X" k="41" />
+<hkern u1="&#xde;" u2="A" k="102" />
+<hkern u1="&#xde;" u2="&#x2e;" k="266" />
+<hkern u1="&#xde;" u2="&#x2c;" k="266" />
+<hkern u1="&#xe0;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe0;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe0;" u2="&#x27;" k="20" />
+<hkern u1="&#xe0;" u2="&#x22;" k="20" />
+<hkern u1="&#xe1;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe1;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe1;" u2="&#x27;" k="20" />
+<hkern u1="&#xe1;" u2="&#x22;" k="20" />
+<hkern u1="&#xe2;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe2;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe2;" u2="&#x27;" k="20" />
+<hkern u1="&#xe2;" u2="&#x22;" k="20" />
+<hkern u1="&#xe3;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe3;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe3;" u2="&#x27;" k="20" />
+<hkern u1="&#xe3;" u2="&#x22;" k="20" />
+<hkern u1="&#xe4;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe4;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe4;" u2="&#x27;" k="20" />
+<hkern u1="&#xe4;" u2="&#x22;" k="20" />
+<hkern u1="&#xe5;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe5;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe5;" u2="&#x27;" k="20" />
+<hkern u1="&#xe5;" u2="&#x22;" k="20" />
+<hkern u1="&#xe8;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe8;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe8;" u2="&#xfd;" k="41" />
+<hkern u1="&#xe8;" u2="z" k="20" />
+<hkern u1="&#xe8;" u2="y" k="41" />
+<hkern u1="&#xe8;" u2="x" k="41" />
+<hkern u1="&#xe8;" u2="w" k="41" />
+<hkern u1="&#xe8;" u2="v" k="41" />
+<hkern u1="&#xe8;" u2="&#x27;" k="20" />
+<hkern u1="&#xe8;" u2="&#x22;" k="20" />
+<hkern u1="&#xe9;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe9;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe9;" u2="&#xfd;" k="41" />
+<hkern u1="&#xe9;" u2="z" k="20" />
+<hkern u1="&#xe9;" u2="y" k="41" />
+<hkern u1="&#xe9;" u2="x" k="41" />
+<hkern u1="&#xe9;" u2="w" k="41" />
+<hkern u1="&#xe9;" u2="v" k="41" />
+<hkern u1="&#xe9;" u2="&#x27;" k="20" />
+<hkern u1="&#xe9;" u2="&#x22;" k="20" />
+<hkern u1="&#xea;" u2="&#x201d;" k="20" />
+<hkern u1="&#xea;" u2="&#x2019;" k="20" />
+<hkern u1="&#xea;" u2="&#xfd;" k="41" />
+<hkern u1="&#xea;" u2="z" k="20" />
+<hkern u1="&#xea;" u2="y" k="41" />
+<hkern u1="&#xea;" u2="x" k="41" />
+<hkern u1="&#xea;" u2="w" k="41" />
+<hkern u1="&#xea;" u2="v" k="41" />
+<hkern u1="&#xea;" u2="&#x27;" k="20" />
+<hkern u1="&#xea;" u2="&#x22;" k="20" />
+<hkern u1="&#xeb;" u2="&#x201d;" k="20" />
+<hkern u1="&#xeb;" u2="&#x2019;" k="20" />
+<hkern u1="&#xeb;" u2="&#xfd;" k="41" />
+<hkern u1="&#xeb;" u2="z" k="20" />
+<hkern u1="&#xeb;" u2="y" k="41" />
+<hkern u1="&#xeb;" u2="x" k="41" />
+<hkern u1="&#xeb;" u2="w" k="41" />
+<hkern u1="&#xeb;" u2="v" k="41" />
+<hkern u1="&#xeb;" u2="&#x27;" k="20" />
+<hkern u1="&#xeb;" u2="&#x22;" k="20" />
+<hkern u1="&#xf0;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf0;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf0;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf0;" u2="z" k="20" />
+<hkern u1="&#xf0;" u2="y" k="41" />
+<hkern u1="&#xf0;" u2="x" k="41" />
+<hkern u1="&#xf0;" u2="w" k="41" />
+<hkern u1="&#xf0;" u2="v" k="41" />
+<hkern u1="&#xf0;" u2="&#x27;" k="20" />
+<hkern u1="&#xf0;" u2="&#x22;" k="20" />
+<hkern u1="&#xf2;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf2;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf2;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf2;" u2="z" k="20" />
+<hkern u1="&#xf2;" u2="y" k="41" />
+<hkern u1="&#xf2;" u2="x" k="41" />
+<hkern u1="&#xf2;" u2="w" k="41" />
+<hkern u1="&#xf2;" u2="v" k="41" />
+<hkern u1="&#xf2;" u2="&#x27;" k="20" />
+<hkern u1="&#xf2;" u2="&#x22;" k="20" />
+<hkern u1="&#xf3;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf3;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf3;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf3;" u2="z" k="20" />
+<hkern u1="&#xf3;" u2="y" k="41" />
+<hkern u1="&#xf3;" u2="x" k="41" />
+<hkern u1="&#xf3;" u2="w" k="41" />
+<hkern u1="&#xf3;" u2="v" k="41" />
+<hkern u1="&#xf3;" u2="&#x27;" k="20" />
+<hkern u1="&#xf3;" u2="&#x22;" k="20" />
+<hkern u1="&#xf4;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf4;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf4;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf4;" u2="z" k="20" />
+<hkern u1="&#xf4;" u2="y" k="41" />
+<hkern u1="&#xf4;" u2="x" k="41" />
+<hkern u1="&#xf4;" u2="w" k="41" />
+<hkern u1="&#xf4;" u2="v" k="41" />
+<hkern u1="&#xf4;" u2="&#x27;" k="20" />
+<hkern u1="&#xf4;" u2="&#x22;" k="20" />
+<hkern u1="&#xf6;" u2="&#x201d;" k="41" />
+<hkern u1="&#xf6;" u2="&#x2019;" k="41" />
+<hkern u1="&#xf6;" u2="&#x27;" k="41" />
+<hkern u1="&#xf6;" u2="&#x22;" k="41" />
+<hkern u1="&#xf8;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf8;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf8;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf8;" u2="z" k="20" />
+<hkern u1="&#xf8;" u2="y" k="41" />
+<hkern u1="&#xf8;" u2="x" k="41" />
+<hkern u1="&#xf8;" u2="w" k="41" />
+<hkern u1="&#xf8;" u2="v" k="41" />
+<hkern u1="&#xf8;" u2="&#x27;" k="20" />
+<hkern u1="&#xf8;" u2="&#x22;" k="20" />
+<hkern u1="&#xfd;" u2="&#x201e;" k="82" />
+<hkern u1="&#xfd;" u2="&#x201d;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x201a;" k="82" />
+<hkern u1="&#xfd;" u2="&#x2019;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xfd;" u2="&#x2e;" k="82" />
+<hkern u1="&#xfd;" u2="&#x2c;" k="82" />
+<hkern u1="&#xfd;" u2="&#x27;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x22;" k="-82" />
+<hkern u1="&#xfe;" u2="&#x201d;" k="20" />
+<hkern u1="&#xfe;" u2="&#x2019;" k="20" />
+<hkern u1="&#xfe;" u2="&#xfd;" k="41" />
+<hkern u1="&#xfe;" u2="z" k="20" />
+<hkern u1="&#xfe;" u2="y" k="41" />
+<hkern u1="&#xfe;" u2="x" k="41" />
+<hkern u1="&#xfe;" u2="w" k="41" />
+<hkern u1="&#xfe;" u2="v" k="41" />
+<hkern u1="&#xfe;" u2="&#x27;" k="20" />
+<hkern u1="&#xfe;" u2="&#x22;" k="20" />
+<hkern u1="&#xff;" u2="&#x201e;" k="82" />
+<hkern u1="&#xff;" u2="&#x201d;" k="-82" />
+<hkern u1="&#xff;" u2="&#x201a;" k="82" />
+<hkern u1="&#xff;" u2="&#x2019;" k="-82" />
+<hkern u1="&#xff;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xff;" u2="&#x2e;" k="82" />
+<hkern u1="&#xff;" u2="&#x2c;" k="82" />
+<hkern u1="&#xff;" u2="&#x27;" k="-82" />
+<hkern u1="&#xff;" u2="&#x22;" k="-82" />
+<hkern u1="&#x152;" u2="J" k="-123" />
+<hkern u1="&#x178;" u2="&#x201e;" k="123" />
+<hkern u1="&#x178;" u2="&#x201a;" k="123" />
+<hkern u1="&#x178;" u2="&#x153;" k="102" />
+<hkern u1="&#x178;" u2="&#x152;" k="41" />
+<hkern u1="&#x178;" u2="&#xfc;" k="61" />
+<hkern u1="&#x178;" u2="&#xfb;" k="61" />
+<hkern u1="&#x178;" u2="&#xfa;" k="61" />
+<hkern u1="&#x178;" u2="&#xf9;" k="61" />
+<hkern u1="&#x178;" u2="&#xf8;" k="102" />
+<hkern u1="&#x178;" u2="&#xf6;" k="102" />
+<hkern u1="&#x178;" u2="&#xf5;" k="102" />
+<hkern u1="&#x178;" u2="&#xf4;" k="102" />
+<hkern u1="&#x178;" u2="&#xf3;" k="102" />
+<hkern u1="&#x178;" u2="&#xf2;" k="102" />
+<hkern u1="&#x178;" u2="&#xeb;" k="102" />
+<hkern u1="&#x178;" u2="&#xea;" k="102" />
+<hkern u1="&#x178;" u2="&#xe9;" k="102" />
+<hkern u1="&#x178;" u2="&#xe8;" k="102" />
+<hkern u1="&#x178;" u2="&#xe7;" k="102" />
+<hkern u1="&#x178;" u2="&#xe6;" k="102" />
+<hkern u1="&#x178;" u2="&#xe5;" k="102" />
+<hkern u1="&#x178;" u2="&#xe4;" k="102" />
+<hkern u1="&#x178;" u2="&#xe3;" k="102" />
+<hkern u1="&#x178;" u2="&#xe2;" k="102" />
+<hkern u1="&#x178;" u2="&#xe1;" k="102" />
+<hkern u1="&#x178;" u2="&#xe0;" k="102" />
+<hkern u1="&#x178;" u2="&#xd8;" k="41" />
+<hkern u1="&#x178;" u2="&#xd6;" k="41" />
+<hkern u1="&#x178;" u2="&#xd5;" k="41" />
+<hkern u1="&#x178;" u2="&#xd4;" k="41" />
+<hkern u1="&#x178;" u2="&#xd3;" k="41" />
+<hkern u1="&#x178;" u2="&#xd2;" k="41" />
+<hkern u1="&#x178;" u2="&#xc7;" k="41" />
+<hkern u1="&#x178;" u2="&#xc5;" k="123" />
+<hkern u1="&#x178;" u2="&#xc4;" k="123" />
+<hkern u1="&#x178;" u2="&#xc3;" k="123" />
+<hkern u1="&#x178;" u2="&#xc2;" k="123" />
+<hkern u1="&#x178;" u2="&#xc1;" k="123" />
+<hkern u1="&#x178;" u2="&#xc0;" k="123" />
+<hkern u1="&#x178;" u2="z" k="41" />
+<hkern u1="&#x178;" u2="u" k="61" />
+<hkern u1="&#x178;" u2="s" k="82" />
+<hkern u1="&#x178;" u2="r" k="61" />
+<hkern u1="&#x178;" u2="q" k="102" />
+<hkern u1="&#x178;" u2="p" k="61" />
+<hkern u1="&#x178;" u2="o" k="102" />
+<hkern u1="&#x178;" u2="n" k="61" />
+<hkern u1="&#x178;" u2="m" k="61" />
+<hkern u1="&#x178;" u2="g" k="41" />
+<hkern u1="&#x178;" u2="e" k="102" />
+<hkern u1="&#x178;" u2="d" k="102" />
+<hkern u1="&#x178;" u2="c" k="102" />
+<hkern u1="&#x178;" u2="a" k="102" />
+<hkern u1="&#x178;" u2="Q" k="41" />
+<hkern u1="&#x178;" u2="O" k="41" />
+<hkern u1="&#x178;" u2="G" k="41" />
+<hkern u1="&#x178;" u2="C" k="41" />
+<hkern u1="&#x178;" u2="A" k="123" />
+<hkern u1="&#x178;" u2="&#x3f;" k="-41" />
+<hkern u1="&#x178;" u2="&#x2e;" k="123" />
+<hkern u1="&#x178;" u2="&#x2c;" k="123" />
+<hkern u1="&#x2013;" u2="T" k="82" />
+<hkern u1="&#x2014;" u2="T" k="82" />
+<hkern u1="&#x2018;" u2="&#x178;" k="-20" />
+<hkern u1="&#x2018;" u2="&#x153;" k="123" />
+<hkern u1="&#x2018;" u2="&#xfc;" k="61" />
+<hkern u1="&#x2018;" u2="&#xfb;" k="61" />
+<hkern u1="&#x2018;" u2="&#xfa;" k="61" />
+<hkern u1="&#x2018;" u2="&#xf9;" k="61" />
+<hkern u1="&#x2018;" u2="&#xf8;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf6;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf5;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf4;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf3;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf2;" k="123" />
+<hkern u1="&#x2018;" u2="&#xeb;" k="123" />
+<hkern u1="&#x2018;" u2="&#xea;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe9;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe8;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe7;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe6;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe5;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe4;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe3;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe2;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe1;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe0;" k="123" />
+<hkern u1="&#x2018;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x2018;" u2="&#xc5;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc4;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc3;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc2;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc1;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc0;" k="143" />
+<hkern u1="&#x2018;" u2="u" k="61" />
+<hkern u1="&#x2018;" u2="s" k="61" />
+<hkern u1="&#x2018;" u2="r" k="61" />
+<hkern u1="&#x2018;" u2="q" k="123" />
+<hkern u1="&#x2018;" u2="p" k="61" />
+<hkern u1="&#x2018;" u2="o" k="123" />
+<hkern u1="&#x2018;" u2="n" k="61" />
+<hkern u1="&#x2018;" u2="m" k="61" />
+<hkern u1="&#x2018;" u2="g" k="61" />
+<hkern u1="&#x2018;" u2="e" k="123" />
+<hkern u1="&#x2018;" u2="d" k="123" />
+<hkern u1="&#x2018;" u2="c" k="123" />
+<hkern u1="&#x2018;" u2="a" k="82" />
+<hkern u1="&#x2018;" u2="Y" k="-20" />
+<hkern u1="&#x2018;" u2="W" k="-41" />
+<hkern u1="&#x2018;" u2="V" k="-41" />
+<hkern u1="&#x2018;" u2="T" k="-41" />
+<hkern u1="&#x2018;" u2="A" k="143" />
+<hkern u1="&#x2019;" u2="&#x178;" k="-20" />
+<hkern u1="&#x2019;" u2="&#x153;" k="123" />
+<hkern u1="&#x2019;" u2="&#xfc;" k="61" />
+<hkern u1="&#x2019;" u2="&#xfb;" k="61" />
+<hkern u1="&#x2019;" u2="&#xfa;" k="61" />
+<hkern u1="&#x2019;" u2="&#xf9;" k="61" />
+<hkern u1="&#x2019;" u2="&#xf8;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf6;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf5;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf4;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf3;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf2;" k="123" />
+<hkern u1="&#x2019;" u2="&#xeb;" k="123" />
+<hkern u1="&#x2019;" u2="&#xea;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe9;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe8;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe7;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe6;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe5;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe4;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe3;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe2;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe1;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe0;" k="123" />
+<hkern u1="&#x2019;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x2019;" u2="&#xc5;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc4;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc3;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc2;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc1;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc0;" k="143" />
+<hkern u1="&#x2019;" u2="u" k="61" />
+<hkern u1="&#x2019;" u2="s" k="61" />
+<hkern u1="&#x2019;" u2="r" k="61" />
+<hkern u1="&#x2019;" u2="q" k="123" />
+<hkern u1="&#x2019;" u2="p" k="61" />
+<hkern u1="&#x2019;" u2="o" k="123" />
+<hkern u1="&#x2019;" u2="n" k="61" />
+<hkern u1="&#x2019;" u2="m" k="61" />
+<hkern u1="&#x2019;" u2="g" k="61" />
+<hkern u1="&#x2019;" u2="e" k="123" />
+<hkern u1="&#x2019;" u2="d" k="123" />
+<hkern u1="&#x2019;" u2="c" k="123" />
+<hkern u1="&#x2019;" u2="a" k="82" />
+<hkern u1="&#x2019;" u2="Y" k="-20" />
+<hkern u1="&#x2019;" u2="W" k="-41" />
+<hkern u1="&#x2019;" u2="V" k="-41" />
+<hkern u1="&#x2019;" u2="T" k="-41" />
+<hkern u1="&#x2019;" u2="A" k="143" />
+<hkern u1="&#x201a;" u2="&#x178;" k="123" />
+<hkern u1="&#x201a;" u2="&#x152;" k="102" />
+<hkern u1="&#x201a;" u2="&#xdd;" k="123" />
+<hkern u1="&#x201a;" u2="&#xdc;" k="41" />
+<hkern u1="&#x201a;" u2="&#xdb;" k="41" />
+<hkern u1="&#x201a;" u2="&#xda;" k="41" />
+<hkern u1="&#x201a;" u2="&#xd9;" k="41" />
+<hkern u1="&#x201a;" u2="&#xd8;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd6;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd5;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd4;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd3;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd2;" k="102" />
+<hkern u1="&#x201a;" u2="&#xc7;" k="102" />
+<hkern u1="&#x201a;" u2="Y" k="123" />
+<hkern u1="&#x201a;" u2="W" k="123" />
+<hkern u1="&#x201a;" u2="V" k="123" />
+<hkern u1="&#x201a;" u2="U" k="41" />
+<hkern u1="&#x201a;" u2="T" k="143" />
+<hkern u1="&#x201a;" u2="Q" k="102" />
+<hkern u1="&#x201a;" u2="O" k="102" />
+<hkern u1="&#x201a;" u2="G" k="102" />
+<hkern u1="&#x201a;" u2="C" k="102" />
+<hkern u1="&#x201c;" u2="&#x178;" k="-20" />
+<hkern u1="&#x201c;" u2="&#x153;" k="123" />
+<hkern u1="&#x201c;" u2="&#xfc;" k="61" />
+<hkern u1="&#x201c;" u2="&#xfb;" k="61" />
+<hkern u1="&#x201c;" u2="&#xfa;" k="61" />
+<hkern u1="&#x201c;" u2="&#xf9;" k="61" />
+<hkern u1="&#x201c;" u2="&#xf8;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf6;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf5;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf4;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf3;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf2;" k="123" />
+<hkern u1="&#x201c;" u2="&#xeb;" k="123" />
+<hkern u1="&#x201c;" u2="&#xea;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe9;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe8;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe7;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe6;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe5;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe4;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe3;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe2;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe1;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe0;" k="123" />
+<hkern u1="&#x201c;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x201c;" u2="&#xc5;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc4;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc3;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc2;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc1;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc0;" k="143" />
+<hkern u1="&#x201c;" u2="u" k="61" />
+<hkern u1="&#x201c;" u2="s" k="61" />
+<hkern u1="&#x201c;" u2="r" k="61" />
+<hkern u1="&#x201c;" u2="q" k="123" />
+<hkern u1="&#x201c;" u2="p" k="61" />
+<hkern u1="&#x201c;" u2="o" k="123" />
+<hkern u1="&#x201c;" u2="n" k="61" />
+<hkern u1="&#x201c;" u2="m" k="61" />
+<hkern u1="&#x201c;" u2="g" k="61" />
+<hkern u1="&#x201c;" u2="e" k="123" />
+<hkern u1="&#x201c;" u2="d" k="123" />
+<hkern u1="&#x201c;" u2="c" k="123" />
+<hkern u1="&#x201c;" u2="a" k="82" />
+<hkern u1="&#x201c;" u2="Y" k="-20" />
+<hkern u1="&#x201c;" u2="W" k="-41" />
+<hkern u1="&#x201c;" u2="V" k="-41" />
+<hkern u1="&#x201c;" u2="T" k="-41" />
+<hkern u1="&#x201c;" u2="A" k="143" />
+<hkern u1="&#x201e;" u2="&#x178;" k="123" />
+<hkern u1="&#x201e;" u2="&#x152;" k="102" />
+<hkern u1="&#x201e;" u2="&#xdd;" k="123" />
+<hkern u1="&#x201e;" u2="&#xdc;" k="41" />
+<hkern u1="&#x201e;" u2="&#xdb;" k="41" />
+<hkern u1="&#x201e;" u2="&#xda;" k="41" />
+<hkern u1="&#x201e;" u2="&#xd9;" k="41" />
+<hkern u1="&#x201e;" u2="&#xd8;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd6;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd5;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd4;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd3;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd2;" k="102" />
+<hkern u1="&#x201e;" u2="&#xc7;" k="102" />
+<hkern u1="&#x201e;" u2="Y" k="123" />
+<hkern u1="&#x201e;" u2="W" k="123" />
+<hkern u1="&#x201e;" u2="V" k="123" />
+<hkern u1="&#x201e;" u2="U" k="41" />
+<hkern u1="&#x201e;" u2="T" k="143" />
+<hkern u1="&#x201e;" u2="Q" k="102" />
+<hkern u1="&#x201e;" u2="O" k="102" />
+<hkern u1="&#x201e;" u2="G" k="102" />
+<hkern u1="&#x201e;" u2="C" k="102" />
+</font>
+</defs></svg> 
\ No newline at end of file
diff --git a/html/tower/docs/fonts/OpenSans-Italic-webfont.woff b/html/tower/docs/fonts/OpenSans-Italic-webfont.woff
new file mode 100644
index 0000000..ff652e6
--- /dev/null
+++ b/html/tower/docs/fonts/OpenSans-Italic-webfont.woff
Binary files differdiff --git a/html/tower/docs/fonts/OpenSans-Light-webfont.eot b/html/tower/docs/fonts/OpenSans-Light-webfont.eot
new file mode 100644
index 0000000..1486840
--- /dev/null
+++ b/html/tower/docs/fonts/OpenSans-Light-webfont.eot
Binary files differdiff --git a/html/tower/docs/fonts/OpenSans-Light-webfont.svg b/html/tower/docs/fonts/OpenSans-Light-webfont.svg
new file mode 100644
index 0000000..11a472c
--- /dev/null
+++ b/html/tower/docs/fonts/OpenSans-Light-webfont.svg
@@ -0,0 +1,1831 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata></metadata>
+<defs>
+<font id="open_sanslight" horiz-adv-x="1169" >
+<font-face units-per-em="2048" ascent="1638" descent="-410" />
+<missing-glyph horiz-adv-x="532" />
+<glyph unicode="&#xfb01;" horiz-adv-x="1077" d="M29 0zM586 1001h-256v-1001h-99v1001h-202v58l202 37v84q0 200 73.5 293.5t240.5 93.5q90 0 180 -27l-23 -86q-80 25 -159 25q-116 0 -164.5 -68.5t-48.5 -222.5v-101h256v-86zM895 0h-99v1087h99v-1087zM782 1389q0 96 63 96q31 0 48.5 -25t17.5 -71q0 -45 -17.5 -71 t-48.5 -26q-63 0 -63 97z" />
+<glyph unicode="&#xfb02;" horiz-adv-x="1077" d="M29 0zM586 1001h-256v-1001h-99v1001h-202v58l202 37v84q0 200 73.5 293.5t240.5 93.5q90 0 180 -27l-23 -86q-80 25 -159 25q-116 0 -164.5 -68.5t-48.5 -222.5v-101h256v-86zM895 0h-99v1556h99v-1556z" />
+<glyph unicode="&#xfb03;" horiz-adv-x="1692" d="M29 0zM586 1001h-256v-1001h-99v1001h-202v58l202 37v84q0 200 73.5 293.5t240.5 93.5q90 0 180 -27l-23 -86q-80 25 -159 25q-116 0 -164.5 -68.5t-48.5 -222.5v-101h256v-86zM1200 1001h-256v-1001h-99v1001h-202v58l202 37v84q0 200 73.5 293.5t240.5 93.5 q90 0 180 -27l-23 -86q-80 25 -159 25q-116 0 -164.5 -68.5t-48.5 -222.5v-101h256v-86zM1510 0h-99v1087h99v-1087zM1397 1389q0 96 63 96q31 0 48.5 -25t17.5 -71q0 -45 -17.5 -71t-48.5 -26q-63 0 -63 97z" />
+<glyph unicode="&#xfb04;" horiz-adv-x="1692" d="M29 0zM586 1001h-256v-1001h-99v1001h-202v58l202 37v84q0 200 73.5 293.5t240.5 93.5q90 0 180 -27l-23 -86q-80 25 -159 25q-116 0 -164.5 -68.5t-48.5 -222.5v-101h256v-86zM1200 1001h-256v-1001h-99v1001h-202v58l202 37v84q0 200 73.5 293.5t240.5 93.5 q90 0 180 -27l-23 -86q-80 25 -159 25q-116 0 -164.5 -68.5t-48.5 -222.5v-101h256v-86zM1510 0h-99v1556h99v-1556z" />
+<glyph horiz-adv-x="2048" />
+<glyph horiz-adv-x="2048" />
+<glyph unicode="&#xd;" horiz-adv-x="1044" />
+<glyph unicode=" "  horiz-adv-x="532" />
+<glyph unicode="&#x09;" horiz-adv-x="532" />
+<glyph unicode="&#xa0;" horiz-adv-x="532" />
+<glyph unicode="!" horiz-adv-x="492" d="M276 377h-61l-29 1085h119zM164 78q0 98 80 98q82 0 82 -98t-82 -98q-80 0 -80 98z" />
+<glyph unicode="&#x22;" horiz-adv-x="723" d="M260 1462l-33 -528h-61l-33 528h127zM590 1462l-33 -528h-61l-33 528h127z" />
+<glyph unicode="#" horiz-adv-x="1323" d="M967 928l-76 -398h303v-79h-320l-86 -451h-90l88 451h-360l-86 -451h-88l86 451h-283v79h299l76 398h-297v80h311l86 454h91l-89 -454h365l88 454h86l-88 -454h285v-80h-301zM440 530h363l78 398h-363z" />
+<glyph unicode="$" d="M991 440q0 -133 -99 -217t-274 -106v-236h-81v232q-92 2 -200.5 22.5t-172.5 50.5v103q75 -36 179.5 -61t193.5 -25v508q-145 44 -215 88t-102 104t-32 146q0 124 94.5 208.5t254.5 104.5v192h81v-190q197 -9 351 -72l-33 -90q-141 62 -318 72v-486q213 -66 293 -144 t80 -204zM881 444q0 85 -63 140.5t-200 95.5v-471q122 13 192.5 75t70.5 160zM297 1049q0 -86 57 -141t183 -93v453q-119 -16 -179.5 -76t-60.5 -143z" />
+<glyph unicode="%" horiz-adv-x="1653" d="M211 1026q0 -186 45 -279.5t141 -93.5q193 0 193 373q0 184 -49.5 276.5t-143.5 92.5q-96 0 -141 -92.5t-45 -276.5zM688 1026q0 -226 -75 -343.5t-216 -117.5q-133 0 -208.5 120.5t-75.5 340.5q0 223 72 340t212 117q139 0 215 -120.5t76 -336.5zM1063 438 q0 -185 45 -277.5t141 -92.5q193 0 193 370q0 369 -193 369q-96 0 -141 -91.5t-45 -277.5zM1540 438q0 -226 -74 -343.5t-215 -117.5q-136 0 -211 121.5t-75 339.5q0 225 73.5 341t212.5 116q137 0 213 -120t76 -337zM1280 1462l-811 -1462h-96l811 1462h96z" />
+<glyph unicode="&#x26;" horiz-adv-x="1460" d="M123 371q0 138 73.5 235t274.5 205l-75 82q-66 71 -98 139t-32 142q0 143 95.5 227t256.5 84q155 0 245.5 -81t90.5 -224q0 -105 -70 -192.5t-253 -194.5l452 -457q61 72 104 157t75 201h96q-63 -246 -209 -426l266 -268h-135l-193 197q-92 -90 -164 -131.5t-157.5 -63.5 t-194.5 -22q-209 0 -328.5 103t-119.5 288zM578 70q128 0 234.5 43.5t209.5 146.5l-483 485q-136 -72 -196.5 -122.5t-88 -109.5t-27.5 -138q0 -143 93 -224t258 -81zM373 1176q0 -79 40 -146t152 -174q159 85 221 159t62 169q0 94 -62 152.5t-168 58.5q-114 0 -179.5 -58 t-65.5 -161z" />
+<glyph unicode="'" horiz-adv-x="393" d="M260 1462l-33 -528h-61l-33 528h127z" />
+<glyph unicode="(" horiz-adv-x="557" d="M82 561q0 265 77.5 496t223.5 405h113q-148 -182 -227 -412.5t-79 -486.5q0 -483 304 -887h-111q-147 170 -224 397t-77 488z" />
+<glyph unicode=")" horiz-adv-x="557" d="M475 561q0 -263 -77.5 -490t-223.5 -395h-111q304 404 304 887q0 257 -79 487.5t-227 411.5h113q147 -175 224 -406.5t77 -494.5z" />
+<glyph unicode="*" horiz-adv-x="1128" d="M631 1556l-37 -405l405 104l21 -131l-395 -39l247 -340l-124 -71l-191 379l-180 -379l-125 71l242 340l-390 39l19 131l401 -104l-39 405h146z" />
+<glyph unicode="+" d="M625 764h434v-82h-434v-432h-82v432h-432v82h432v434h82v-434z" />
+<glyph unicode="," horiz-adv-x="440" d="M295 238l12 -21q-75 -265 -174 -481h-65q77 275 110 502h117z" />
+<glyph unicode="-" horiz-adv-x="659" d="M92 512v82h475v-82h-475z" />
+<glyph unicode="." horiz-adv-x="487" d="M162 78q0 98 80 98q82 0 82 -98t-82 -98q-80 0 -80 98z" />
+<glyph unicode="/" horiz-adv-x="698" d="M674 1462l-545 -1462h-104l544 1462h105z" />
+<glyph unicode="0" d="M1055 735q0 -385 -117.5 -570t-355.5 -185q-229 0 -348 190.5t-119 564.5q0 382 115.5 566t351.5 184q231 0 352 -190.5t121 -559.5zM223 735q0 -340 89 -502.5t270 -162.5q189 0 275.5 168t86.5 497q0 324 -86.5 492t-275.5 168t-274 -168t-85 -492z" />
+<glyph unicode="1" d="M682 0h-98v1065q0 145 12 301q-15 -15 -31 -29t-309 -243l-57 71l397 297h86v-1462z" />
+<glyph unicode="2" d="M1028 0h-915v88l389 406q164 170 230 260t97 172t31 172q0 131 -86 213t-223 82q-183 0 -350 -133l-54 69q183 154 406 154q191 0 300.5 -102t109.5 -281q0 -145 -73.5 -280.5t-268.5 -334.5l-375 -385v-4h782v-96z" />
+<glyph unicode="3" d="M979 1118q0 -136 -85.5 -229t-229.5 -119v-6q176 -22 268 -112t92 -242q0 -205 -139.5 -317.5t-401.5 -112.5q-223 0 -389 83v99q84 -44 188.5 -69t196.5 -25q221 0 332 89.5t111 252.5q0 145 -113.5 223t-333.5 78h-158v96h160q182 0 288.5 86.5t106.5 234.5 q0 122 -86.5 195.5t-226.5 73.5q-109 0 -199 -30.5t-202 -104.5l-49 67q85 71 205 112.5t243 41.5q202 0 312 -95.5t110 -269.5z" />
+<glyph unicode="4" d="M1141 373h-252v-373h-94v373h-752v67l725 1030h121v-1011h252v-86zM795 459v418q0 302 14 507h-8q-20 -37 -123 -188l-516 -737h633z" />
+<glyph unicode="5" d="M537 879q234 0 368.5 -113t134.5 -311q0 -225 -140 -350t-386 -125q-109 0 -207 21.5t-164 61.5v103q108 -55 192 -76.5t179 -21.5q192 0 308 101.5t116 274.5q0 163 -113 256t-307 93q-130 0 -272 -39l-60 39l58 669h704v-96h-610l-45 -516q156 29 244 29z" />
+<glyph unicode="6" d="M131 623q0 285 77.5 479.5t220 288.5t343.5 94q94 0 172 -23v-88q-73 27 -176 27q-247 0 -384.5 -178t-154.5 -518h13q76 98 174 148t207 50q205 0 320.5 -117t115.5 -323q0 -224 -121.5 -353.5t-327.5 -129.5q-222 0 -350.5 169.5t-128.5 473.5zM610 68q164 0 255 103 t91 294q0 168 -90 262t-245 94q-102 0 -189.5 -45t-139.5 -119.5t-52 -152.5q0 -111 49.5 -213.5t134 -162.5t186.5 -60z" />
+<glyph unicode="7" d="M334 0l602 1366h-827v96h946v-73l-604 -1389h-117z" />
+<glyph unicode="8" d="M582 1487q186 0 299.5 -95t113.5 -257q0 -112 -70.5 -198t-228.5 -159q192 -79 270 -173t78 -228q0 -181 -126.5 -289t-339.5 -108q-221 0 -339 101t-118 294q0 131 83 230t257 169q-161 76 -227 160.5t-66 202.5q0 105 53 184.5t148.5 122.5t212.5 43zM223 360 q0 -138 93.5 -214t261.5 -76q164 0 264 80.5t100 218.5q0 124 -78.5 201.5t-302.5 162.5q-184 -71 -261 -157t-77 -216zM580 1397q-141 0 -226.5 -69.5t-85.5 -190.5q0 -70 31.5 -123.5t91 -97t199.5 -101.5q163 63 234 139t71 183q0 120 -84.5 190t-230.5 70z" />
+<glyph unicode="9" d="M1036 842q0 -288 -75.5 -482t-220 -287t-349.5 -93q-104 0 -192 26v86q43 -14 103.5 -21.5t92.5 -7.5q247 0 387 178.5t156 520.5h-12q-73 -96 -174 -147.5t-211 -51.5q-203 0 -316.5 112t-113.5 318q0 220 124.5 356t323.5 136q144 0 252 -75.5t166.5 -221.5t58.5 -346z M559 1397q-158 0 -252 -106.5t-94 -291.5q0 -174 87 -264t249 -90q101 0 188.5 45t139 119.5t51.5 151.5q0 117 -46.5 219t-130 159.5t-192.5 57.5z" />
+<glyph unicode=":" horiz-adv-x="487" d="M162 78q0 98 80 98q82 0 82 -98t-82 -98q-80 0 -80 98zM162 971q0 98 80 98q82 0 82 -98q0 -53 -23.5 -76t-58.5 -23q-34 0 -57 23t-23 76z" />
+<glyph unicode=";" horiz-adv-x="487" d="M303 238l12 -21q-75 -265 -174 -481h-65q29 97 62 245.5t48 256.5h117zM162 971q0 98 80 98q82 0 82 -98q0 -53 -23.5 -76t-58.5 -23q-34 0 -57 23t-23 76z" />
+<glyph unicode="&#x3c;" d="M1059 266l-948 416v61l948 474v-95l-823 -405l823 -355v-96z" />
+<glyph unicode="=" d="M111 885v82h948v-82h-948zM111 477v82h948v-82h-948z" />
+<glyph unicode="&#x3e;" d="M111 362l823 355l-823 405v95l948 -474v-61l-948 -416v96z" />
+<glyph unicode="?" horiz-adv-x="862" d="M293 377v37q0 123 37.5 201t138.5 167l91 79q72 61 103 121t31 138q0 127 -83.5 202t-219.5 75q-79 0 -148 -17.5t-149 -56.5l-37 80q110 48 184.5 64t153.5 16q183 0 288 -98.5t105 -270.5q0 -68 -18 -119t-50.5 -94.5t-78.5 -84t-102 -87.5q-64 -54 -98.5 -98.5 t-50 -93.5t-15.5 -146v-14h-82zM260 78q0 98 80 98q82 0 82 -98t-82 -98q-80 0 -80 98z" />
+<glyph unicode="@" horiz-adv-x="1815" d="M1702 725q0 -228 -90.5 -366t-245.5 -138q-89 0 -144.5 54t-64.5 147h-4q-43 -100 -124 -150.5t-189 -50.5q-148 0 -229 96.5t-81 270.5q0 202 120.5 330.5t314.5 128.5q138 0 286 -41l-22 -464v-30q0 -104 35 -156.5t116 -52.5q103 0 168.5 116.5t65.5 303.5 q0 194 -79 340t-225.5 224.5t-334.5 78.5q-230 0 -405.5 -99.5t-270 -281.5t-94.5 -418q0 -322 167 -497.5t474 -175.5q93 0 188.5 18t231.5 70v-99q-203 -80 -414 -80q-349 0 -544 200.5t-195 557.5q0 256 108.5 460.5t307 317.5t448.5 113q215 0 380.5 -89t255 -254.5 t89.5 -383.5zM633 590q0 -143 55 -215t174 -72q255 0 273 346l16 291q-79 27 -193 27q-149 0 -237 -102.5t-88 -274.5z" />
+<glyph unicode="A" horiz-adv-x="1229" d="M911 516h-594l-204 -516h-113l588 1468h65l576 -1468h-115zM354 608h523l-199 527q-25 62 -60 172q-27 -96 -59 -174z" />
+<glyph unicode="B" horiz-adv-x="1284" d="M207 1462h401q271 0 398 -92t127 -278q0 -127 -77.5 -211.5t-226.5 -108.5v-6q175 -26 257.5 -110.5t82.5 -235.5q0 -202 -134 -311t-380 -109h-448v1462zM309 811h322q206 0 299.5 68.5t93.5 214.5t-105.5 212t-314.5 66h-295v-561zM309 721v-631h344q406 0 406 330 q0 301 -428 301h-322z" />
+<glyph unicode="C" horiz-adv-x="1272" d="M831 1391q-275 0 -433 -176t-158 -482q0 -313 149 -486t426 -173q184 0 338 47v-90q-145 -51 -362 -51q-308 0 -485 199t-177 556q0 223 84.5 393t243 262.5t368.5 92.5q214 0 383 -80l-41 -92q-160 80 -336 80z" />
+<glyph unicode="D" horiz-adv-x="1446" d="M1317 745q0 -368 -193 -556.5t-567 -188.5h-350v1462h395q350 0 532.5 -183t182.5 -534zM1206 741q0 314 -159.5 472.5t-468.5 158.5h-269v-1282h242q655 0 655 651z" />
+<glyph unicode="E" horiz-adv-x="1130" d="M1006 0h-799v1462h799v-94h-697v-553h658v-94h-658v-627h697v-94z" />
+<glyph unicode="F" horiz-adv-x="1028" d="M309 0h-102v1462h801v-94h-699v-620h660v-95h-660v-653z" />
+<glyph unicode="G" horiz-adv-x="1481" d="M782 737h539v-667q-212 -90 -477 -90q-346 0 -530.5 195.5t-184.5 553.5q0 223 91.5 395.5t262 266.5t391.5 94q239 0 429 -88l-41 -92q-190 88 -394 88q-289 0 -458.5 -178.5t-169.5 -481.5q0 -330 161 -496.5t473 -166.5q202 0 343 57v514h-435v96z" />
+<glyph unicode="H" horiz-adv-x="1473" d="M1266 0h-103v719h-854v-719h-102v1462h102v-649h854v649h103v-1462z" />
+<glyph unicode="I" horiz-adv-x="516" d="M207 0v1462h102v-1462h-102z" />
+<glyph unicode="J" horiz-adv-x="506" d="M-33 -369q-92 0 -151 27v88q78 -20 149 -20q242 0 242 264v1472h102v-1462q0 -369 -342 -369z" />
+<glyph unicode="K" horiz-adv-x="1190" d="M1190 0h-125l-561 772l-195 -172v-600h-102v1462h102v-760l162 162l573 598h130l-599 -618z" />
+<glyph unicode="L" horiz-adv-x="1051" d="M207 0v1462h102v-1366h697v-96h-799z" />
+<glyph unicode="M" horiz-adv-x="1767" d="M850 0l-545 1350h-8q8 -124 8 -254v-1096h-98v1462h158l518 -1286h6l518 1286h154v-1462h-103v1108q0 116 12 240h-8l-547 -1348h-65z" />
+<glyph unicode="N" horiz-adv-x="1477" d="M1270 0h-103l-866 1298h-8q12 -232 12 -350v-948h-98v1462h102l865 -1296h6q-9 180 -9 342v954h99v-1462z" />
+<glyph unicode="O" horiz-adv-x="1565" d="M1436 733q0 -348 -174 -550.5t-480 -202.5q-305 0 -479 202.5t-174 552.5q0 349 175.5 549.5t479.5 200.5q306 0 479 -201.5t173 -550.5zM240 733q0 -314 140 -485.5t402 -171.5q264 0 403.5 170t139.5 487q0 316 -139.5 484.5t-401.5 168.5q-261 0 -402.5 -170 t-141.5 -483z" />
+<glyph unicode="P" horiz-adv-x="1198" d="M1087 1042q0 -212 -144 -325t-408 -113h-226v-604h-102v1462h358q522 0 522 -420zM309 692h201q247 0 357 81.5t110 264.5q0 169 -104 250.5t-322 81.5h-242v-678z" />
+<glyph unicode="Q" horiz-adv-x="1565" d="M1436 733q0 -294 -126 -486.5t-349 -246.5l333 -348h-166l-282 330l-33 -2h-31q-305 0 -479 202.5t-174 552.5q0 349 175.5 549.5t479.5 200.5q306 0 479 -201.5t173 -550.5zM240 733q0 -314 140 -485.5t402 -171.5q264 0 403.5 170t139.5 487q0 316 -139.5 484.5 t-401.5 168.5q-261 0 -402.5 -170t-141.5 -483z" />
+<glyph unicode="R" horiz-adv-x="1217" d="M309 637v-637h-102v1462h348q272 0 402 -100.5t130 -302.5q0 -147 -77.5 -248t-235.5 -145l397 -666h-122l-377 637h-363zM309 725h279q185 0 287 82.5t102 243.5q0 167 -100 243t-326 76h-242v-645z" />
+<glyph unicode="S" horiz-adv-x="1116" d="M1014 377q0 -183 -134.5 -290t-357.5 -107q-268 0 -411 59v102q158 -67 403 -67q180 0 285.5 82.5t105.5 216.5q0 83 -35 137.5t-114 99.5t-232 97q-224 77 -309.5 166.5t-85.5 238.5q0 164 128.5 267.5t330.5 103.5q206 0 387 -78l-37 -88q-182 76 -348 76 q-162 0 -258 -75t-96 -204q0 -81 29.5 -133t96.5 -93.5t230 -99.5q171 -59 257 -114.5t125.5 -126t39.5 -170.5z" />
+<glyph unicode="T" horiz-adv-x="1073" d="M588 0h-103v1366h-475v96h1053v-96h-475v-1366z" />
+<glyph unicode="U" horiz-adv-x="1473" d="M1282 1462v-946q0 -252 -146 -394t-407 -142q-254 0 -396.5 142.5t-142.5 397.5v942h103v-946q0 -211 117 -328.5t331 -117.5q209 0 324 115.5t115 320.5v956h102z" />
+<glyph unicode="V" horiz-adv-x="1182" d="M1071 1462h111l-547 -1462h-90l-545 1462h109l368 -995q84 -225 113 -338q20 75 79 233z" />
+<glyph unicode="W" horiz-adv-x="1827" d="M1372 0h-84l-321 1128q-40 139 -60 228q-16 -87 -45.5 -200t-322.5 -1156h-86l-402 1462h107l256 -942q15 -57 28 -105.5t23.5 -91t19 -82t15.5 -79.5q24 136 102 413l250 887h113l293 -1018q51 -176 73 -284q13 72 33.5 153t308.5 1149h103z" />
+<glyph unicode="X" horiz-adv-x="1102" d="M1102 0h-117l-432 682l-440 -682h-113l492 762l-447 700h115l395 -626l401 626h109l-453 -698z" />
+<glyph unicode="Y" horiz-adv-x="1081" d="M543 662l428 800h110l-487 -897v-565h-105v557l-489 905h117z" />
+<glyph unicode="Z" horiz-adv-x="1180" d="M1098 0h-1016v76l856 1290h-817v96h954v-76l-858 -1290h881v-96z" />
+<glyph unicode="[" horiz-adv-x="653" d="M602 -324h-428v1786h428v-94h-330v-1597h330v-95z" />
+<glyph unicode="\" horiz-adv-x="698" d="M127 1462l547 -1462h-103l-546 1462h102z" />
+<glyph unicode="]" horiz-adv-x="653" d="M51 -229h330v1597h-330v94h428v-1786h-428v95z" />
+<glyph unicode="^" d="M88 561l465 912h68l460 -912h-100l-395 791l-398 -791h-100z" />
+<glyph unicode="_" horiz-adv-x="842" d="M846 -266h-850v82h850v-82z" />
+<glyph unicode="`" horiz-adv-x="1182" d="M776 1241h-69q-96 79 -188.5 171.5t-125.5 139.5v17h142q26 -48 98.5 -142t142.5 -170v-16z" />
+<glyph unicode="a" horiz-adv-x="1085" d="M842 0l-25 172h-8q-82 -105 -168.5 -148.5t-204.5 -43.5q-160 0 -249 82t-89 227q0 159 132.5 247t383.5 93l207 6v72q0 155 -63 234t-203 79q-151 0 -313 -84l-37 86q179 84 354 84q179 0 267.5 -93t88.5 -290v-723h-73zM442 70q174 0 274.5 99.5t100.5 276.5v107 l-190 -8q-229 -11 -326.5 -71.5t-97.5 -188.5q0 -102 62.5 -158.5t176.5 -56.5z" />
+<glyph unicode="b" horiz-adv-x="1219" d="M641 1108q228 0 343.5 -143.5t115.5 -419.5q0 -271 -121.5 -418t-341.5 -147q-116 0 -209 48t-147 136h-9l-28 -164h-62v1556h99v-391q0 -88 -4 -162l-3 -85h7q62 98 149.5 144t210.5 46zM639 1018q-192 0 -275 -110t-83 -363v-17q0 -246 86.5 -353t269.5 -107 q178 0 268 124.5t90 354.5q0 471 -356 471z" />
+<glyph unicode="c" horiz-adv-x="973" d="M616 -20q-233 0 -365 147t-132 410q0 270 137 420.5t375 150.5q141 0 270 -49l-27 -88q-141 47 -245 47q-200 0 -303 -123.5t-103 -355.5q0 -220 103 -344.5t288 -124.5q148 0 275 53v-92q-104 -51 -273 -51z" />
+<glyph unicode="d" horiz-adv-x="1219" d="M580 1108q118 0 204 -43t154 -147h6q-6 126 -6 247v391h98v-1556h-65l-25 166h-8q-124 -186 -356 -186q-225 0 -344 140t-119 408q0 282 118 431t343 149zM580 1018q-178 0 -267.5 -125t-89.5 -363q0 -462 359 -462q184 0 270 107t86 353v17q0 252 -84.5 362.5 t-273.5 110.5z" />
+<glyph unicode="e" horiz-adv-x="1124" d="M621 -20q-237 0 -369.5 146t-132.5 409q0 260 128 416.5t345 156.5q192 0 303 -134t111 -364v-80h-783q2 -224 104.5 -342t293.5 -118q93 0 163.5 13t178.5 56v-90q-92 -40 -170 -54.5t-172 -14.5zM592 1020q-157 0 -252 -103.5t-111 -298.5h672q0 189 -82 295.5 t-227 106.5z" />
+<glyph unicode="f" horiz-adv-x="614" d="M586 1001h-256v-1001h-99v1001h-202v58l202 37v84q0 200 73.5 293.5t240.5 93.5q90 0 180 -27l-23 -86q-80 25 -159 25q-116 0 -164.5 -68.5t-48.5 -222.5v-101h256v-86z" />
+<glyph unicode="g" horiz-adv-x="1071" d="M1030 1087v-69l-225 -14q90 -112 90 -246q0 -157 -104.5 -254.5t-280.5 -97.5q-74 0 -104 6q-59 -31 -90 -73t-31 -89q0 -52 39.5 -76t132.5 -24h190q177 0 271 -71.5t94 -211.5q0 -172 -139.5 -265.5t-397.5 -93.5q-205 0 -317.5 79t-112.5 220q0 112 69.5 186 t188.5 101q-49 21 -78.5 59.5t-29.5 88.5q0 109 139 192q-95 39 -148 122.5t-53 191.5q0 163 103.5 261.5t279.5 98.5q107 0 166 -21h348zM150 -184q0 -224 333 -224q428 0 428 273q0 98 -67 142t-217 44h-178q-299 0 -299 -235zM233 748q0 -126 76.5 -195.5t204.5 -69.5 q136 0 208.5 69t72.5 200q0 139 -74.5 208.5t-208.5 69.5q-130 0 -204.5 -74.5t-74.5 -207.5z" />
+<glyph unicode="h" horiz-adv-x="1208" d="M940 0v705q0 164 -69 238.5t-214 74.5q-195 0 -285.5 -98.5t-90.5 -319.5v-600h-99v1556h99v-495l-5 -139h7q61 98 154 142t231 44q370 0 370 -397v-711h-98z" />
+<glyph unicode="i" horiz-adv-x="463" d="M281 0h-99v1087h99v-1087zM168 1389q0 96 63 96q31 0 48.5 -25t17.5 -71q0 -45 -17.5 -71t-48.5 -26q-63 0 -63 97z" />
+<glyph unicode="j" horiz-adv-x="463" d="M37 -492q-80 0 -135 25v86q69 -20 129 -20q151 0 151 176v1312h99v-1298q0 -135 -63.5 -208t-180.5 -73zM168 1389q0 96 63 96q31 0 48.5 -25t17.5 -71q0 -45 -17.5 -71t-48.5 -26q-63 0 -63 97z" />
+<glyph unicode="k" horiz-adv-x="991" d="M279 477l555 610h120l-428 -464l465 -623h-119l-413 549l-178 -162v-387h-99v1556h99v-780l-7 -299h5z" />
+<glyph unicode="l" horiz-adv-x="463" d="M281 0h-99v1556h99v-1556z" />
+<glyph unicode="m" horiz-adv-x="1808" d="M1540 0v713q0 159 -62 232t-190 73q-167 0 -247 -92t-80 -289v-637h-101v743q0 275 -252 275q-171 0 -249 -99.5t-78 -318.5v-600h-99v1087h82l21 -149h6q45 81 128 125.5t183 44.5q257 0 330 -193h4q53 93 142.5 143t203.5 50q178 0 267 -95t89 -302v-711h-98z" />
+<glyph unicode="n" horiz-adv-x="1208" d="M940 0v705q0 164 -69 238.5t-214 74.5q-195 0 -285.5 -98.5t-90.5 -319.5v-600h-99v1087h84l19 -149h6q106 170 377 170q370 0 370 -397v-711h-98z" />
+<glyph unicode="o" horiz-adv-x="1200" d="M1081 545q0 -266 -129 -415.5t-356 -149.5q-143 0 -252 69t-167 198t-58 298q0 266 129 414.5t354 148.5q224 0 351.5 -150.5t127.5 -412.5zM223 545q0 -224 98.5 -349.5t278.5 -125.5t278.5 125.5t98.5 349.5q0 225 -99.5 349t-279.5 124t-277.5 -123.5t-97.5 -349.5z " />
+<glyph unicode="p" horiz-adv-x="1219" d="M647 -20q-251 0 -366 188h-7l3 -84q4 -74 4 -162v-414h-99v1579h84l19 -155h6q112 176 358 176q220 0 335.5 -144.5t115.5 -420.5q0 -268 -121.5 -415.5t-331.5 -147.5zM645 68q167 0 258.5 124t91.5 347q0 479 -346 479q-190 0 -279 -104.5t-89 -340.5v-32 q0 -255 85.5 -364t278.5 -109z" />
+<glyph unicode="q" horiz-adv-x="1219" d="M569 -20q-214 0 -332 142t-118 410q0 275 118 425.5t338 150.5q236 0 353 -174h6l18 153h84v-1579h-98v414q0 122 6 248h-6q-118 -190 -369 -190zM571 68q198 0 282.5 109t84.5 366v12q0 245 -85 354t-271 109q-176 0 -267.5 -124t-91.5 -364q0 -229 89.5 -345.5 t258.5 -116.5z" />
+<glyph unicode="r" horiz-adv-x="797" d="M610 1108q69 0 148 -14l-19 -95q-68 17 -141 17q-139 0 -228 -118t-89 -298v-600h-99v1087h84l10 -196h7q67 120 143 168.5t184 48.5z" />
+<glyph unicode="s" horiz-adv-x="954" d="M856 283q0 -146 -111 -224.5t-315 -78.5q-218 0 -346 67v107q164 -82 346 -82q161 0 244.5 53.5t83.5 142.5q0 82 -66.5 138t-218.5 110q-163 59 -229 101.5t-99.5 96t-33.5 130.5q0 122 102.5 193t286.5 71q176 0 334 -66l-37 -90q-160 66 -297 66q-133 0 -211 -44 t-78 -122q0 -85 60.5 -136t236.5 -114q147 -53 214 -95.5t100.5 -96.5t33.5 -127z" />
+<glyph unicode="t" horiz-adv-x="686" d="M469 68q94 0 164 16v-80q-72 -24 -166 -24q-144 0 -212.5 77t-68.5 242v702h-161v58l161 45l50 246h51v-263h319v-86h-319v-688q0 -125 44 -185t138 -60z" />
+<glyph unicode="u" horiz-adv-x="1208" d="M268 1087v-704q0 -164 69 -238.5t214 -74.5q194 0 285.5 98t91.5 319v600h98v-1087h-84l-18 150h-6q-106 -170 -377 -170q-371 0 -371 397v710h98z" />
+<glyph unicode="v" horiz-adv-x="940" d="M420 0l-420 1087h102l281 -739q56 -142 84 -248h6q41 136 84 250l281 737h102l-420 -1087h-100z" />
+<glyph unicode="w" horiz-adv-x="1481" d="M1051 0l-238 727q-23 74 -59 217h-6l-21 -74l-45 -145l-242 -725h-98l-311 1087h106l174 -630q61 -234 80 -344h6q59 234 86 311l224 663h90l213 -661q72 -235 88 -311h6q8 65 80 348l166 624h100l-295 -1087h-104z" />
+<glyph unicode="x" horiz-adv-x="1020" d="M449 559l-379 528h114l324 -458l321 458h109l-373 -528l400 -559h-115l-342 485l-344 -485h-109z" />
+<glyph unicode="y" horiz-adv-x="940" d="M0 1087h102l230 -610q105 -281 133 -379h6q42 129 137 385l230 604h102l-487 -1263q-59 -154 -99 -208t-93.5 -81t-129.5 -27q-57 0 -127 21v86q58 -16 125 -16q51 0 90 24t70.5 74.5t73 160t53.5 142.5z" />
+<glyph unicode="z" horiz-adv-x="944" d="M858 0h-776v63l645 936h-598v88h727v-63l-649 -936h651v-88z" />
+<glyph unicode="{" horiz-adv-x="723" d="M389 -27q0 -102 59.5 -152.5t202.5 -53.5v-91q-195 0 -277.5 75t-82.5 231v337q0 205 -230 209v80q122 2 176 51t54 148v350q0 299 360 305v-90q-138 -5 -200 -58t-62 -157v-305q0 -130 -44 -194t-142 -85v-8q97 -20 141.5 -83.5t44.5 -186.5v-322z" />
+<glyph unicode="|" horiz-adv-x="1108" d="M508 1561h92v-2067h-92v2067z" />
+<glyph unicode="}" horiz-adv-x="723" d="M334 295q0 123 44.5 186.5t141.5 83.5v8q-97 20 -141.5 84t-44.5 195v305q0 103 -61.5 156.5t-200.5 58.5v90q174 0 267 -77.5t93 -227.5v-350q0 -100 54.5 -148.5t175.5 -50.5v-80q-230 -4 -230 -209v-337q0 -155 -82.5 -230.5t-277.5 -75.5v91q141 2 201.5 52.5 t60.5 153.5v322z" />
+<glyph unicode="~" d="M334 745q-49 0 -108 -30.5t-115 -89.5v94q108 110 233 110q61 0 115 -13.5t155 -57.5q126 -58 220 -58q56 0 109.5 30.5t115.5 94.5v-96q-48 -49 -104.5 -81t-129.5 -32q-116 0 -270 72q-124 57 -221 57z" />
+<glyph unicode="&#xa1;" horiz-adv-x="492" d="M215 711h61l29 -1086h-119zM166 1010q0 98 80 98q82 0 82 -98q0 -53 -23.5 -76t-58.5 -23q-34 0 -57 23t-23 76z" />
+<glyph unicode="&#xa2;" d="M602 190q-186 30 -288.5 175t-102.5 380q0 232 102.5 381.5t288.5 182.5v174h82v-166h14q131 0 275 -55l-31 -84q-134 51 -237 51q-187 0 -288.5 -122.5t-101.5 -358.5q0 -225 100.5 -349.5t280.5 -124.5q131 0 267 58v-92q-110 -56 -267 -56h-12v-204h-82v210z" />
+<glyph unicode="&#xa3;" d="M412 676v-256q0 -116 -35 -196t-113 -128h809v-96h-995v84q110 21 171.5 110t61.5 224v258h-211v82h211v297q0 204 98 315t281 111q175 0 330 -68l-35 -86q-157 66 -295 66q-141 0 -209.5 -81t-68.5 -253v-301h411v-82h-411z" />
+<glyph unicode="&#xa4;" d="M991 723q0 -151 -90 -256l139 -141l-59 -60l-137 142q-110 -93 -260 -93q-153 0 -260 93l-138 -142l-59 60l139 141q-90 106 -90 256q0 147 90 258l-139 141l59 60l138 -142q103 93 260 93q155 0 260 -93l137 142l59 -60l-139 -141q90 -111 90 -258zM584 395 q134 0 228.5 95.5t94.5 232.5q0 136 -95 233t-228 97q-134 0 -229 -97t-95 -233t94.5 -232t229.5 -96z" />
+<glyph unicode="&#xa5;" d="M586 666l428 796h110l-432 -788h283v-82h-338v-205h338v-82h-338v-305h-105v305h-337v82h337v205h-337v82h278l-430 788h117z" />
+<glyph unicode="&#xa6;" horiz-adv-x="1108" d="M508 1561h92v-764h-92v764zM508 258h92v-764h-92v764z" />
+<glyph unicode="&#xa7;" horiz-adv-x="1057" d="M145 813q0 83 50.5 152.5t138.5 107.5q-86 47 -125 102t-39 136q0 117 101.5 183.5t275.5 66.5q175 0 336 -64l-35 -80q-91 34 -158.5 47t-144.5 13q-134 0 -205.5 -44.5t-71.5 -119.5q0 -54 25.5 -88.5t85.5 -65.5t188 -74q192 -64 264 -132.5t72 -170.5 q0 -173 -186 -274q86 -42 129 -96t43 -136q0 -135 -113 -207.5t-311 -72.5q-92 0 -171 15t-165 52v95q182 -78 332 -78q162 0 247 49.5t85 140.5q0 55 -25 87.5t-88.5 65.5t-190.5 79q-200 73 -272 141.5t-72 169.5zM246 825q0 -65 31.5 -104t105.5 -75t250 -99 q82 41 126 98t44 121q0 62 -32 102t-108.5 77t-236.5 87q-81 -23 -130.5 -79t-49.5 -128z" />
+<glyph unicode="&#xa8;" horiz-adv-x="1182" d="M336 1389q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86zM717 1389q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86z" />
+<glyph unicode="&#xa9;" horiz-adv-x="1704" d="M897 1092q-142 0 -222.5 -94.5t-80.5 -264.5q0 -186 74.5 -275t220.5 -89q84 0 198 43v-88q-102 -45 -208 -45q-187 0 -288.5 115t-101.5 331q0 208 111 332.5t297 124.5q119 0 227 -52l-37 -83q-98 45 -190 45zM100 731q0 200 100 375t275 276t377 101q200 0 375 -100 t276 -275t101 -377q0 -197 -97 -370t-272 -277t-383 -104q-207 0 -382 103.5t-272.5 276.5t-97.5 371zM193 731q0 -178 88.5 -329.5t240.5 -240.5t330 -89t329.5 88.5t240.5 240.5t89 330q0 174 -85.5 325t-239 243t-334.5 92q-176 0 -328.5 -88.5t-241.5 -242.5t-89 -329z " />
+<glyph unicode="&#xaa;" horiz-adv-x="686" d="M512 813l-25 72q-84 -84 -202 -84q-95 0 -151 49t-56 139q0 100 80 151.5t241 59.5l95 4v43q0 77 -38 114.5t-106 37.5q-87 0 -196 -49l-33 73q117 56 231 56q228 0 228 -215v-451h-68zM168 993q0 -54 35 -85t96 -31q90 0 142.5 50t52.5 142v64l-88 -5 q-116 -6 -177 -36.5t-61 -98.5z" />
+<glyph unicode="&#xab;" horiz-adv-x="885" d="M82 543l309 393l62 -43l-254 -363l254 -362l-62 -43l-309 391v27zM442 543l310 393l61 -43l-254 -363l254 -362l-61 -43l-310 391v27z" />
+<glyph unicode="&#xac;" d="M1038 764v-494h-82v412h-845v82h927z" />
+<glyph unicode="&#xad;" horiz-adv-x="659" d="M92 512zM92 512v82h475v-82h-475z" />
+<glyph unicode="&#xae;" horiz-adv-x="1704" d="M709 731h112q91 0 143 46.5t52 135.5q0 172 -197 172h-110v-354zM1120 918q0 -79 -38.5 -139.5t-110.5 -94.5l237 -393h-121l-210 360h-168v-360h-101v880h211q143 0 222 -62t79 -191zM100 731q0 200 100 375t275 276t377 101q200 0 375 -100t276 -275t101 -377 q0 -197 -97 -370t-272 -277t-383 -104q-207 0 -382 103.5t-272.5 276.5t-97.5 371zM193 731q0 -178 88.5 -329.5t240.5 -240.5t330 -89t329.5 88.5t240.5 240.5t89 330q0 174 -85.5 325t-239 243t-334.5 92q-176 0 -328.5 -88.5t-241.5 -242.5t-89 -329z" />
+<glyph unicode="&#xaf;" horiz-adv-x="1024" d="M1030 1556h-1036v82h1036v-82z" />
+<glyph unicode="&#xb0;" horiz-adv-x="877" d="M139 1184q0 132 86.5 215.5t212.5 83.5t212.5 -83.5t86.5 -215.5t-86.5 -215.5t-212.5 -83.5q-130 0 -214.5 83t-84.5 216zM229 1184q0 -91 61 -154t148 -63q86 0 147.5 62t61.5 155q0 92 -60 154.5t-149 62.5q-90 0 -149.5 -64t-59.5 -153z" />
+<glyph unicode="&#xb1;" d="M111 1zM111 1v82h948v-82h-948zM625 764h434v-82h-434v-432h-82v432h-432v82h432v434h82v-434z" />
+<glyph unicode="&#xb2;" horiz-adv-x="688" d="M629 586h-576v78l242 237q125 121 172 193t47 149q0 71 -46.5 112.5t-123.5 41.5q-108 0 -217 -82l-49 65q119 103 270 103q124 0 194 -63.5t70 -174.5q0 -47 -13 -89t-40 -85.5t-68.5 -90t-308.5 -306.5h447v-88z" />
+<glyph unicode="&#xb3;" horiz-adv-x="688" d="M616 1260q0 -78 -44 -131.5t-117 -75.5q186 -45 186 -211q0 -130 -88.5 -201.5t-247.5 -71.5q-144 0 -264 60v88q136 -62 266 -62q115 0 174.5 49t59.5 136q0 83 -59.5 122t-178.5 39h-131v84h135q105 0 158 43.5t53 120.5q0 67 -47 107.5t-127 40.5q-128 0 -246 -78 l-47 70q130 94 293 94q127 0 199.5 -60t72.5 -163z" />
+<glyph unicode="&#xb4;" horiz-adv-x="1182" d="M393 1257q73 79 144.5 171.5t97.5 140.5h141v-17q-36 -52 -122.5 -138t-190.5 -173h-70v16z" />
+<glyph unicode="&#xb5;" horiz-adv-x="1221" d="M281 1087v-704q0 -164 69 -238.5t213 -74.5q194 0 285.5 98t91.5 319v600h98v-1087h-84l-18 150h-6q-50 -77 -150 -123.5t-217 -46.5q-99 0 -167.5 27.5t-119.5 84.5q5 -92 5 -170v-414h-99v1579h99z" />
+<glyph unicode="&#xb6;" horiz-adv-x="1341" d="M1106 -260h-100v1722h-228v-1722h-100v819q-64 -18 -146 -18q-216 0 -317.5 125t-101.5 376q0 260 109 387t341 127h543v-1816z" />
+<glyph unicode="&#xb7;" horiz-adv-x="487" d="M162 623zM162 721q0 98 80 98q82 0 82 -98t-82 -98q-80 0 -80 98z" />
+<glyph unicode="&#xb8;" horiz-adv-x="420" d="M393 -291q0 -100 -67.5 -150.5t-188.5 -50.5q-68 0 -94 11v88q30 -10 92 -10q78 0 119 28t41 80q0 94 -193 121l93 174h96l-66 -117q168 -37 168 -174z" />
+<glyph unicode="&#xb9;" horiz-adv-x="688" d="M350 1462h92v-876h-98v547q0 99 12 233q-26 -23 -233 -145l-47 77z" />
+<glyph unicode="&#xba;" horiz-adv-x="739" d="M670 1141q0 -161 -80 -250.5t-223 -89.5t-220 86t-77 254q0 162 78 250t223 88q142 0 220.5 -87t78.5 -251zM160 1141q0 -264 209 -264t209 264q0 131 -50 194.5t-159 63.5t-159 -63.5t-50 -194.5z" />
+<glyph unicode="&#xbb;" horiz-adv-x="885" d="M803 518l-309 -393l-62 43l254 362l-254 363l62 43l309 -391v-27zM442 518l-309 -393l-61 43l254 362l-254 363l61 43l309 -391v-27z" />
+<glyph unicode="&#xbc;" horiz-adv-x="1516" d="M59 0zM333 1462h92v-876h-98v547q0 99 12 233q-26 -23 -233 -145l-47 77zM1148 1462l-811 -1462h-94l811 1462h94zM1392 242h-129v-241h-90v241h-413v60l407 581h96v-563h129v-78zM1173 320v221q0 132 8 232q-6 -12 -21.5 -35.5t-295.5 -417.5h309z" />
+<glyph unicode="&#xbd;" horiz-adv-x="1516" d="M11 0zM285 1462h92v-876h-98v547q0 99 12 233q-26 -23 -233 -145l-47 77zM1073 1462l-811 -1462h-94l811 1462h94zM1403 1h-576v78l242 237q125 121 172 193t47 149q0 71 -46.5 112.5t-123.5 41.5q-108 0 -217 -82l-49 65q119 103 270 103q124 0 194 -63.5t70 -174.5 q0 -47 -13 -89t-40 -85.5t-68.5 -90t-308.5 -306.5h447v-88z" />
+<glyph unicode="&#xbe;" horiz-adv-x="1516" d="M41 0zM616 1260q0 -78 -44 -131.5t-117 -75.5q186 -45 186 -211q0 -130 -88.5 -201.5t-247.5 -71.5q-144 0 -264 60v88q136 -62 266 -62q115 0 174.5 49t59.5 136q0 83 -59.5 122t-178.5 39h-131v84h135q105 0 158 43.5t53 120.5q0 67 -47 107.5t-127 40.5 q-128 0 -246 -78l-47 70q130 94 293 94q127 0 199.5 -60t72.5 -163zM1300 1462l-811 -1462h-94l811 1462h94zM1495 242h-129v-241h-90v241h-413v60l407 581h96v-563h129v-78zM1276 320v221q0 132 8 232q-6 -12 -21.5 -35.5t-295.5 -417.5h309z" />
+<glyph unicode="&#xbf;" horiz-adv-x="862" d="M569 711v-37q0 -125 -39.5 -204.5t-136.5 -164.5l-90 -79q-73 -61 -104 -120.5t-31 -138.5q0 -124 82 -200t221 -76q125 0 233 46l64 27l37 -79q-111 -48 -185.5 -64t-152.5 -16q-184 0 -288.5 99t-104.5 269q0 70 20 124t58.5 102t171.5 159q64 53 98.5 98.5t49.5 94 t15 145.5v15h82zM440 1010q0 98 80 98q82 0 82 -98q0 -53 -23.5 -76t-58.5 -23q-34 0 -57 23t-23 76z" />
+<glyph unicode="&#xc0;" horiz-adv-x="1229" d="M0 0zM911 516h-594l-204 -516h-113l588 1468h65l576 -1468h-115zM354 608h523l-199 527q-25 62 -60 172q-27 -96 -59 -174zM720 1579h-69q-96 79 -188.5 171.5t-125.5 139.5v17h142q26 -48 98.5 -142t142.5 -170v-16z" />
+<glyph unicode="&#xc1;" horiz-adv-x="1229" d="M0 0zM911 516h-594l-204 -516h-113l588 1468h65l576 -1468h-115zM354 608h523l-199 527q-25 62 -60 172q-27 -96 -59 -174zM504 1595q73 79 144.5 171.5t97.5 140.5h141v-17q-36 -52 -122.5 -138t-190.5 -173h-70v16z" />
+<glyph unicode="&#xc2;" horiz-adv-x="1229" d="M0 0zM911 516h-594l-204 -516h-113l588 1468h65l576 -1468h-115zM354 608h523l-199 527q-25 62 -60 172q-27 -96 -59 -174zM328 1595q62 67 131.5 156t110.5 156h98q68 -120 242 -312v-16h-70q-122 101 -221 207q-108 -114 -221 -207h-70v16z" />
+<glyph unicode="&#xc3;" horiz-adv-x="1229" d="M0 0zM911 516h-594l-204 -516h-113l588 1468h65l576 -1468h-115zM354 608h523l-199 527q-25 62 -60 172q-27 -96 -59 -174zM784 1581q-36 0 -75 18.5t-101 71.5q-32 26 -62.5 46t-62.5 20q-45 0 -75 -34.5t-48 -121.5h-73q10 111 63 174.5t137 63.5q48 0 88 -25t82 -59 q34 -28 66 -50t61 -22q46 0 77 36.5t48 119.5h76q-16 -116 -69 -177t-132 -61z" />
+<glyph unicode="&#xc4;" horiz-adv-x="1229" d="M0 0zM911 516h-594l-204 -516h-113l588 1468h65l576 -1468h-115zM354 608h523l-199 527q-25 62 -60 172q-27 -96 -59 -174zM367 1727q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86zM748 1727q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86z" />
+<glyph unicode="&#xc5;" horiz-adv-x="1229" d="M0 0zM911 516h-594l-204 -516h-113l588 1468h65l576 -1468h-115zM354 608h523l-199 527q-25 62 -60 172q-27 -96 -59 -174zM836 1610q0 -97 -60 -155t-157 -58t-157 58t-60 155q0 94 60 152.5t157 58.5t157 -59t60 -152zM482 1610q0 -66 37.5 -103.5t99.5 -37.5 t99.5 37.5t37.5 103.5q0 64 -39 101.5t-98 37.5q-62 0 -99.5 -38t-37.5 -101z" />
+<glyph unicode="&#xc6;" horiz-adv-x="1653" d="M1528 0h-717v516h-475l-227 -516h-111l653 1462h877v-94h-615v-553h576v-94h-576v-627h615v-94zM377 608h434v760h-100z" />
+<glyph unicode="&#xc7;" horiz-adv-x="1272" d="M129 0zM831 1391q-275 0 -433 -176t-158 -482q0 -313 149 -486t426 -173q184 0 338 47v-90q-145 -51 -362 -51q-308 0 -485 199t-177 556q0 223 84.5 393t243 262.5t368.5 92.5q214 0 383 -80l-41 -92q-160 80 -336 80zM911 -291q0 -100 -67.5 -150.5t-188.5 -50.5 q-68 0 -94 11v88q30 -10 92 -10q78 0 119 28t41 80q0 94 -193 121l93 174h96l-66 -117q168 -37 168 -174z" />
+<glyph unicode="&#xc8;" horiz-adv-x="1130" d="M207 0zM1006 0h-799v1462h799v-94h-697v-553h658v-94h-658v-627h697v-94zM697 1579h-69q-96 79 -188.5 171.5t-125.5 139.5v17h142q26 -48 98.5 -142t142.5 -170v-16z" />
+<glyph unicode="&#xc9;" horiz-adv-x="1130" d="M207 0zM1006 0h-799v1462h799v-94h-697v-553h658v-94h-658v-627h697v-94zM463 1595q73 79 144.5 171.5t97.5 140.5h141v-17q-36 -52 -122.5 -138t-190.5 -173h-70v16z" />
+<glyph unicode="&#xca;" horiz-adv-x="1130" d="M207 0zM1006 0h-799v1462h799v-94h-697v-553h658v-94h-658v-627h697v-94zM315 1595q62 67 131.5 156t110.5 156h98q68 -120 242 -312v-16h-70q-122 101 -221 207q-108 -114 -221 -207h-70v16z" />
+<glyph unicode="&#xcb;" horiz-adv-x="1130" d="M207 0zM1006 0h-799v1462h799v-94h-697v-553h658v-94h-658v-627h697v-94zM354 1727q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86zM735 1727q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86z" />
+<glyph unicode="&#xcc;" horiz-adv-x="516" d="M0 0zM207 0v1462h102v-1462h-102zM320 1579h-69q-96 79 -188.5 171.5t-125.5 139.5v17h142q26 -48 98.5 -142t142.5 -170v-16z" />
+<glyph unicode="&#xcd;" horiz-adv-x="516" d="M191 0zM207 0v1462h102v-1462h-102zM191 1595q73 79 144.5 171.5t97.5 140.5h141v-17q-36 -52 -122.5 -138t-190.5 -173h-70v16z" />
+<glyph unicode="&#xce;" horiz-adv-x="516" d="M0 0zM207 0v1462h102v-1462h-102zM-32 1595q62 67 131.5 156t110.5 156h98q68 -120 242 -312v-16h-70q-122 101 -221 207q-108 -114 -221 -207h-70v16z" />
+<glyph unicode="&#xcf;" horiz-adv-x="516" d="M5 0zM207 0v1462h102v-1462h-102zM5 1727q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86zM386 1727q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86z" />
+<glyph unicode="&#xd0;" horiz-adv-x="1466" d="M1317 745q0 -368 -193 -556.5t-567 -188.5h-350v678h-160v94h160v690h395q350 0 532.5 -183t182.5 -534zM1206 741q0 314 -159.5 472.5t-468.5 158.5h-269v-600h406v-94h-406v-588h242q655 0 655 651z" />
+<glyph unicode="&#xd1;" horiz-adv-x="1477" d="M207 0zM1270 0h-103l-866 1298h-8q12 -232 12 -350v-948h-98v1462h102l865 -1296h6q-9 180 -9 342v954h99v-1462zM897 1581q-36 0 -75 18.5t-101 71.5q-32 26 -62.5 46t-62.5 20q-45 0 -75 -34.5t-48 -121.5h-73q10 111 63 174.5t137 63.5q48 0 88 -25t82 -59 q34 -28 66 -50t61 -22q46 0 77 36.5t48 119.5h76q-16 -116 -69 -177t-132 -61z" />
+<glyph unicode="&#xd2;" horiz-adv-x="1565" d="M129 0zM1436 733q0 -348 -174 -550.5t-480 -202.5q-305 0 -479 202.5t-174 552.5q0 349 175.5 549.5t479.5 200.5q306 0 479 -201.5t173 -550.5zM240 733q0 -314 140 -485.5t402 -171.5q264 0 403.5 170t139.5 487q0 316 -139.5 484.5t-401.5 168.5q-261 0 -402.5 -170 t-141.5 -483zM885 1579h-69q-96 79 -188.5 171.5t-125.5 139.5v17h142q26 -48 98.5 -142t142.5 -170v-16z" />
+<glyph unicode="&#xd3;" horiz-adv-x="1565" d="M129 0zM1436 733q0 -348 -174 -550.5t-480 -202.5q-305 0 -479 202.5t-174 552.5q0 349 175.5 549.5t479.5 200.5q306 0 479 -201.5t173 -550.5zM240 733q0 -314 140 -485.5t402 -171.5q264 0 403.5 170t139.5 487q0 316 -139.5 484.5t-401.5 168.5q-261 0 -402.5 -170 t-141.5 -483zM686 1595q73 79 144.5 171.5t97.5 140.5h141v-17q-36 -52 -122.5 -138t-190.5 -173h-70v16z" />
+<glyph unicode="&#xd4;" horiz-adv-x="1565" d="M129 0zM1436 733q0 -348 -174 -550.5t-480 -202.5q-305 0 -479 202.5t-174 552.5q0 349 175.5 549.5t479.5 200.5q306 0 479 -201.5t173 -550.5zM240 733q0 -314 140 -485.5t402 -171.5q264 0 403.5 170t139.5 487q0 316 -139.5 484.5t-401.5 168.5q-261 0 -402.5 -170 t-141.5 -483zM492 1595q62 67 131.5 156t110.5 156h98q68 -120 242 -312v-16h-70q-122 101 -221 207q-108 -114 -221 -207h-70v16z" />
+<glyph unicode="&#xd5;" horiz-adv-x="1565" d="M129 0zM1436 733q0 -348 -174 -550.5t-480 -202.5q-305 0 -479 202.5t-174 552.5q0 349 175.5 549.5t479.5 200.5q306 0 479 -201.5t173 -550.5zM240 733q0 -314 140 -485.5t402 -171.5q264 0 403.5 170t139.5 487q0 316 -139.5 484.5t-401.5 168.5q-261 0 -402.5 -170 t-141.5 -483zM940 1581q-36 0 -75 18.5t-101 71.5q-32 26 -62.5 46t-62.5 20q-45 0 -75 -34.5t-48 -121.5h-73q10 111 63 174.5t137 63.5q48 0 88 -25t82 -59q34 -28 66 -50t61 -22q46 0 77 36.5t48 119.5h76q-16 -116 -69 -177t-132 -61z" />
+<glyph unicode="&#xd6;" horiz-adv-x="1565" d="M129 0zM1436 733q0 -348 -174 -550.5t-480 -202.5q-305 0 -479 202.5t-174 552.5q0 349 175.5 549.5t479.5 200.5q306 0 479 -201.5t173 -550.5zM240 733q0 -314 140 -485.5t402 -171.5q264 0 403.5 170t139.5 487q0 316 -139.5 484.5t-401.5 168.5q-261 0 -402.5 -170 t-141.5 -483zM529 1727q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86zM910 1727q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86z" />
+<glyph unicode="&#xd7;" d="M584 780l409 408l58 -58l-408 -407l406 -408l-58 -57l-407 408l-406 -408l-57 57l405 408l-407 407l57 58z" />
+<glyph unicode="&#xd8;" horiz-adv-x="1565" d="M1436 733q0 -348 -174 -550.5t-480 -202.5q-236 0 -395 120l-86 -120l-74 59l90 127q-188 200 -188 569q0 349 175.5 549.5t479.5 200.5q232 0 392 -121l108 152l72 -60l-111 -153q191 -207 191 -570zM1325 733q0 315 -139 486l-742 -1037q133 -106 338 -106 q264 0 403.5 170t139.5 487zM240 733q0 -312 139 -483l739 1034q-133 102 -334 102q-261 0 -402.5 -170t-141.5 -483z" />
+<glyph unicode="&#xd9;" horiz-adv-x="1473" d="M190 0zM1282 1462v-946q0 -252 -146 -394t-407 -142q-254 0 -396.5 142.5t-142.5 397.5v942h103v-946q0 -211 117 -328.5t331 -117.5q209 0 324 115.5t115 320.5v956h102zM833 1579h-69q-96 79 -188.5 171.5t-125.5 139.5v17h142q26 -48 98.5 -142t142.5 -170v-16z" />
+<glyph unicode="&#xda;" horiz-adv-x="1473" d="M190 0zM1282 1462v-946q0 -252 -146 -394t-407 -142q-254 0 -396.5 142.5t-142.5 397.5v942h103v-946q0 -211 117 -328.5t331 -117.5q209 0 324 115.5t115 320.5v956h102zM633 1595q73 79 144.5 171.5t97.5 140.5h141v-17q-36 -52 -122.5 -138t-190.5 -173h-70v16z" />
+<glyph unicode="&#xdb;" horiz-adv-x="1473" d="M190 0zM1282 1462v-946q0 -252 -146 -394t-407 -142q-254 0 -396.5 142.5t-142.5 397.5v942h103v-946q0 -211 117 -328.5t331 -117.5q209 0 324 115.5t115 320.5v956h102zM444 1595q62 67 131.5 156t110.5 156h98q68 -120 242 -312v-16h-70q-122 101 -221 207 q-108 -114 -221 -207h-70v16z" />
+<glyph unicode="&#xdc;" horiz-adv-x="1473" d="M190 0zM1282 1462v-946q0 -252 -146 -394t-407 -142q-254 0 -396.5 142.5t-142.5 397.5v942h103v-946q0 -211 117 -328.5t331 -117.5q209 0 324 115.5t115 320.5v956h102zM481 1727q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86zM862 1727q0 46 15.5 66 t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86z" />
+<glyph unicode="&#xdd;" horiz-adv-x="1081" d="M0 0zM543 662l428 800h110l-487 -897v-565h-105v557l-489 905h117zM434 1595q73 79 144.5 171.5t97.5 140.5h141v-17q-36 -52 -122.5 -138t-190.5 -173h-70v16z" />
+<glyph unicode="&#xde;" horiz-adv-x="1198" d="M1087 778q0 -212 -144 -325t-408 -113h-226v-340h-102v1462h102v-264h256q522 0 522 -420zM309 428h201q247 0 357 81.5t110 264.5q0 169 -104 250.5t-322 81.5h-242v-678z" />
+<glyph unicode="&#xdf;" horiz-adv-x="1194" d="M961 1284q0 -139 -139 -250q-81 -64 -110.5 -100.5t-29.5 -75.5q0 -44 14.5 -68t51.5 -57t102 -78q106 -75 151.5 -124.5t68 -103t22.5 -120.5q0 -156 -88 -241.5t-246 -85.5q-95 0 -174.5 18.5t-126.5 48.5v107q65 -38 148.5 -62t152.5 -24q114 0 174.5 54.5t60.5 160.5 q0 83 -39 144t-149 136q-127 87 -175 147t-48 146q0 60 32.5 110t106.5 108q74 57 106.5 105.5t32.5 106.5q0 93 -70 143t-202 50q-145 0 -226 -69t-81 -196v-1214h-99v1206q0 173 103.5 267t292.5 94q188 0 285.5 -72.5t97.5 -210.5z" />
+<glyph unicode="&#xe0;" horiz-adv-x="1085" d="M98 0zM842 0l-25 172h-8q-82 -105 -168.5 -148.5t-204.5 -43.5q-160 0 -249 82t-89 227q0 159 132.5 247t383.5 93l207 6v72q0 155 -63 234t-203 79q-151 0 -313 -84l-37 86q179 84 354 84q179 0 267.5 -93t88.5 -290v-723h-73zM442 70q174 0 274.5 99.5t100.5 276.5v107 l-190 -8q-229 -11 -326.5 -71.5t-97.5 -188.5q0 -102 62.5 -158.5t176.5 -56.5zM638 1241h-69q-96 79 -188.5 171.5t-125.5 139.5v17h142q26 -48 98.5 -142t142.5 -170v-16z" />
+<glyph unicode="&#xe1;" horiz-adv-x="1085" d="M98 0zM842 0l-25 172h-8q-82 -105 -168.5 -148.5t-204.5 -43.5q-160 0 -249 82t-89 227q0 159 132.5 247t383.5 93l207 6v72q0 155 -63 234t-203 79q-151 0 -313 -84l-37 86q179 84 354 84q179 0 267.5 -93t88.5 -290v-723h-73zM442 70q174 0 274.5 99.5t100.5 276.5v107 l-190 -8q-229 -11 -326.5 -71.5t-97.5 -188.5q0 -102 62.5 -158.5t176.5 -56.5zM422 1257q73 79 144.5 171.5t97.5 140.5h141v-17q-36 -52 -122.5 -138t-190.5 -173h-70v16z" />
+<glyph unicode="&#xe2;" horiz-adv-x="1085" d="M98 0zM842 0l-25 172h-8q-82 -105 -168.5 -148.5t-204.5 -43.5q-160 0 -249 82t-89 227q0 159 132.5 247t383.5 93l207 6v72q0 155 -63 234t-203 79q-151 0 -313 -84l-37 86q179 84 354 84q179 0 267.5 -93t88.5 -290v-723h-73zM442 70q174 0 274.5 99.5t100.5 276.5v107 l-190 -8q-229 -11 -326.5 -71.5t-97.5 -188.5q0 -102 62.5 -158.5t176.5 -56.5zM251 1257q62 67 131.5 156t110.5 156h98q68 -120 242 -312v-16h-70q-122 101 -221 207q-108 -114 -221 -207h-70v16z" />
+<glyph unicode="&#xe3;" horiz-adv-x="1085" d="M98 0zM842 0l-25 172h-8q-82 -105 -168.5 -148.5t-204.5 -43.5q-160 0 -249 82t-89 227q0 159 132.5 247t383.5 93l207 6v72q0 155 -63 234t-203 79q-151 0 -313 -84l-37 86q179 84 354 84q179 0 267.5 -93t88.5 -290v-723h-73zM442 70q174 0 274.5 99.5t100.5 276.5v107 l-190 -8q-229 -11 -326.5 -71.5t-97.5 -188.5q0 -102 62.5 -158.5t176.5 -56.5zM697 1243q-36 0 -75 18.5t-101 71.5q-32 26 -62.5 46t-62.5 20q-45 0 -75 -34.5t-48 -121.5h-73q10 111 63 174.5t137 63.5q48 0 88 -25t82 -59q34 -28 66 -50t61 -22q46 0 77 36.5t48 119.5 h76q-16 -116 -69 -177t-132 -61z" />
+<glyph unicode="&#xe4;" horiz-adv-x="1085" d="M98 0zM842 0l-25 172h-8q-82 -105 -168.5 -148.5t-204.5 -43.5q-160 0 -249 82t-89 227q0 159 132.5 247t383.5 93l207 6v72q0 155 -63 234t-203 79q-151 0 -313 -84l-37 86q179 84 354 84q179 0 267.5 -93t88.5 -290v-723h-73zM442 70q174 0 274.5 99.5t100.5 276.5v107 l-190 -8q-229 -11 -326.5 -71.5t-97.5 -188.5q0 -102 62.5 -158.5t176.5 -56.5zM282 1389q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86zM663 1389q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86z" />
+<glyph unicode="&#xe5;" horiz-adv-x="1085" d="M98 0zM842 0l-25 172h-8q-82 -105 -168.5 -148.5t-204.5 -43.5q-160 0 -249 82t-89 227q0 159 132.5 247t383.5 93l207 6v72q0 155 -63 234t-203 79q-151 0 -313 -84l-37 86q179 84 354 84q179 0 267.5 -93t88.5 -290v-723h-73zM442 70q174 0 274.5 99.5t100.5 276.5v107 l-190 -8q-229 -11 -326.5 -71.5t-97.5 -188.5q0 -102 62.5 -158.5t176.5 -56.5zM759 1456q0 -97 -60 -155t-157 -58t-157 58t-60 155q0 94 60 152.5t157 58.5t157 -59t60 -152zM405 1456q0 -66 37.5 -103.5t99.5 -37.5t99.5 37.5t37.5 103.5q0 64 -39 101.5t-98 37.5 q-62 0 -99.5 -38t-37.5 -101z" />
+<glyph unicode="&#xe6;" horiz-adv-x="1731" d="M1243 -20q-295 0 -397 256q-68 -133 -168 -194.5t-252 -61.5q-156 0 -242 82.5t-86 226.5q0 154 125 243t377 97l201 6v72q0 155 -61.5 234t-198.5 79q-148 0 -305 -84l-37 86q173 84 346 84q261 0 325 -211q111 213 347 213q184 0 289.5 -134.5t105.5 -363.5v-80h-715 q0 -460 348 -460q85 0 150 12t174 57v-90q-92 -41 -165 -55t-161 -14zM434 70q169 0 266 99.5t97 276.5v107l-187 -8q-219 -11 -313 -71.5t-94 -188.5q0 -102 61 -158.5t170 -56.5zM1217 1020q-284 0 -314 -402h604q0 188 -77.5 295t-212.5 107z" />
+<glyph unicode="&#xe7;" horiz-adv-x="973" d="M119 0zM616 -20q-233 0 -365 147t-132 410q0 270 137 420.5t375 150.5q141 0 270 -49l-27 -88q-141 47 -245 47q-200 0 -303 -123.5t-103 -355.5q0 -220 103 -344.5t288 -124.5q148 0 275 53v-92q-104 -51 -273 -51zM723 -291q0 -100 -67.5 -150.5t-188.5 -50.5 q-68 0 -94 11v88q30 -10 92 -10q78 0 119 28t41 80q0 94 -193 121l93 174h96l-66 -117q168 -37 168 -174z" />
+<glyph unicode="&#xe8;" horiz-adv-x="1124" d="M119 0zM621 -20q-237 0 -369.5 146t-132.5 409q0 260 128 416.5t345 156.5q192 0 303 -134t111 -364v-80h-783q2 -224 104.5 -342t293.5 -118q93 0 163.5 13t178.5 56v-90q-92 -40 -170 -54.5t-172 -14.5zM592 1020q-157 0 -252 -103.5t-111 -298.5h672q0 189 -82 295.5 t-227 106.5zM685 1241h-69q-96 79 -188.5 171.5t-125.5 139.5v17h142q26 -48 98.5 -142t142.5 -170v-16z" />
+<glyph unicode="&#xe9;" horiz-adv-x="1124" d="M119 0zM621 -20q-237 0 -369.5 146t-132.5 409q0 260 128 416.5t345 156.5q192 0 303 -134t111 -364v-80h-783q2 -224 104.5 -342t293.5 -118q93 0 163.5 13t178.5 56v-90q-92 -40 -170 -54.5t-172 -14.5zM592 1020q-157 0 -252 -103.5t-111 -298.5h672q0 189 -82 295.5 t-227 106.5zM452 1257q73 79 144.5 171.5t97.5 140.5h141v-17q-36 -52 -122.5 -138t-190.5 -173h-70v16z" />
+<glyph unicode="&#xea;" horiz-adv-x="1124" d="M119 0zM621 -20q-237 0 -369.5 146t-132.5 409q0 260 128 416.5t345 156.5q192 0 303 -134t111 -364v-80h-783q2 -224 104.5 -342t293.5 -118q93 0 163.5 13t178.5 56v-90q-92 -40 -170 -54.5t-172 -14.5zM592 1020q-157 0 -252 -103.5t-111 -298.5h672q0 189 -82 295.5 t-227 106.5zM290 1257q62 67 131.5 156t110.5 156h98q68 -120 242 -312v-16h-70q-122 101 -221 207q-108 -114 -221 -207h-70v16z" />
+<glyph unicode="&#xeb;" horiz-adv-x="1124" d="M119 0zM621 -20q-237 0 -369.5 146t-132.5 409q0 260 128 416.5t345 156.5q192 0 303 -134t111 -364v-80h-783q2 -224 104.5 -342t293.5 -118q93 0 163.5 13t178.5 56v-90q-92 -40 -170 -54.5t-172 -14.5zM592 1020q-157 0 -252 -103.5t-111 -298.5h672q0 189 -82 295.5 t-227 106.5zM331 1389q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86zM712 1389q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86z" />
+<glyph unicode="&#xec;" horiz-adv-x="463" d="M0 0zM281 0h-99v1087h99v-1087zM349 1241h-69q-96 79 -188.5 171.5t-125.5 139.5v17h142q26 -48 98.5 -142t142.5 -170v-16z" />
+<glyph unicode="&#xed;" horiz-adv-x="463" d="M107 0zM281 0h-99v1087h99v-1087zM107 1257q73 79 144.5 171.5t97.5 140.5h141v-17q-36 -52 -122.5 -138t-190.5 -173h-70v16z" />
+<glyph unicode="&#xee;" horiz-adv-x="463" d="M0 0zM281 0h-99v1087h99v-1087zM-58 1257q62 67 131.5 156t110.5 156h98q68 -120 242 -312v-16h-70q-122 101 -221 207q-108 -114 -221 -207h-70v16z" />
+<glyph unicode="&#xef;" horiz-adv-x="463" d="M0 0zM281 0h-99v1087h99v-1087zM-21 1389q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86zM360 1389q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86z" />
+<glyph unicode="&#xf0;" horiz-adv-x="1174" d="M1055 559q0 -276 -124 -427.5t-349 -151.5q-214 0 -339.5 130t-125.5 361q0 228 126.5 357.5t342.5 129.5q108 0 187.5 -33t148.5 -96l4 2q-64 270 -269 459l-270 -157l-49 77l244 146q-86 62 -199 119l45 81q147 -69 248 -145l225 137l49 -84l-202 -121 q154 -151 230.5 -353t76.5 -431zM950 557q0 146 -97 228.5t-267 82.5q-185 0 -275 -100.5t-90 -304.5q0 -186 94.5 -289.5t268.5 -103.5q179 0 272.5 123t93.5 364z" />
+<glyph unicode="&#xf1;" horiz-adv-x="1208" d="M182 0zM940 0v705q0 164 -69 238.5t-214 74.5q-195 0 -285.5 -98.5t-90.5 -319.5v-600h-99v1087h84l19 -149h6q106 170 377 170q370 0 370 -397v-711h-98zM779 1243q-36 0 -75 18.5t-101 71.5q-32 26 -62.5 46t-62.5 20q-45 0 -75 -34.5t-48 -121.5h-73q10 111 63 174.5 t137 63.5q48 0 88 -25t82 -59q34 -28 66 -50t61 -22q46 0 77 36.5t48 119.5h76q-16 -116 -69 -177t-132 -61z" />
+<glyph unicode="&#xf2;" horiz-adv-x="1200" d="M119 0zM1081 545q0 -266 -129 -415.5t-356 -149.5q-143 0 -252 69t-167 198t-58 298q0 266 129 414.5t354 148.5q224 0 351.5 -150.5t127.5 -412.5zM223 545q0 -224 98.5 -349.5t278.5 -125.5t278.5 125.5t98.5 349.5q0 225 -99.5 349t-279.5 124t-277.5 -123.5 t-97.5 -349.5zM718 1241h-69q-96 79 -188.5 171.5t-125.5 139.5v17h142q26 -48 98.5 -142t142.5 -170v-16z" />
+<glyph unicode="&#xf3;" horiz-adv-x="1200" d="M119 0zM1081 545q0 -266 -129 -415.5t-356 -149.5q-143 0 -252 69t-167 198t-58 298q0 266 129 414.5t354 148.5q224 0 351.5 -150.5t127.5 -412.5zM223 545q0 -224 98.5 -349.5t278.5 -125.5t278.5 125.5t98.5 349.5q0 225 -99.5 349t-279.5 124t-277.5 -123.5 t-97.5 -349.5zM499 1257q73 79 144.5 171.5t97.5 140.5h141v-17q-36 -52 -122.5 -138t-190.5 -173h-70v16z" />
+<glyph unicode="&#xf4;" horiz-adv-x="1200" d="M119 0zM1081 545q0 -266 -129 -415.5t-356 -149.5q-143 0 -252 69t-167 198t-58 298q0 266 129 414.5t354 148.5q224 0 351.5 -150.5t127.5 -412.5zM223 545q0 -224 98.5 -349.5t278.5 -125.5t278.5 125.5t98.5 349.5q0 225 -99.5 349t-279.5 124t-277.5 -123.5 t-97.5 -349.5zM309 1257q62 67 131.5 156t110.5 156h98q68 -120 242 -312v-16h-70q-122 101 -221 207q-108 -114 -221 -207h-70v16z" />
+<glyph unicode="&#xf5;" horiz-adv-x="1200" d="M119 0zM1081 545q0 -266 -129 -415.5t-356 -149.5q-143 0 -252 69t-167 198t-58 298q0 266 129 414.5t354 148.5q224 0 351.5 -150.5t127.5 -412.5zM223 545q0 -224 98.5 -349.5t278.5 -125.5t278.5 125.5t98.5 349.5q0 225 -99.5 349t-279.5 124t-277.5 -123.5 t-97.5 -349.5zM761 1243q-36 0 -75 18.5t-101 71.5q-32 26 -62.5 46t-62.5 20q-45 0 -75 -34.5t-48 -121.5h-73q10 111 63 174.5t137 63.5q48 0 88 -25t82 -59q34 -28 66 -50t61 -22q46 0 77 36.5t48 119.5h76q-16 -116 -69 -177t-132 -61z" />
+<glyph unicode="&#xf6;" horiz-adv-x="1200" d="M119 0zM1081 545q0 -266 -129 -415.5t-356 -149.5q-143 0 -252 69t-167 198t-58 298q0 266 129 414.5t354 148.5q224 0 351.5 -150.5t127.5 -412.5zM223 545q0 -224 98.5 -349.5t278.5 -125.5t278.5 125.5t98.5 349.5q0 225 -99.5 349t-279.5 124t-277.5 -123.5 t-97.5 -349.5zM346 1389q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86zM727 1389q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86z" />
+<glyph unicode="&#xf7;" d="M111 682v82h948v-82h-948zM504 1075q0 99 80 99q82 0 82 -99q0 -52 -23.5 -75t-58.5 -23q-34 0 -57 23t-23 75zM504 371q0 98 80 98q82 0 82 -98q0 -53 -23.5 -76t-58.5 -23q-34 0 -57 23t-23 76z" />
+<glyph unicode="&#xf8;" horiz-adv-x="1200" d="M1081 545q0 -266 -129 -415.5t-356 -149.5q-173 0 -291 98l-86 -113l-72 58l93 120q-121 153 -121 402q0 266 129 414.5t354 148.5q179 0 301 -104l96 124l74 -55l-104 -137q112 -147 112 -391zM223 545q0 -200 78 -322l543 705q-98 90 -246 90q-180 0 -277.5 -123.5 t-97.5 -349.5zM977 545q0 190 -72 309l-543 -702q94 -82 238 -82q180 0 278.5 125.5t98.5 349.5z" />
+<glyph unicode="&#xf9;" horiz-adv-x="1208" d="M170 0zM268 1087v-704q0 -164 69 -238.5t214 -74.5q194 0 285.5 98t91.5 319v600h98v-1087h-84l-18 150h-6q-106 -170 -377 -170q-371 0 -371 397v710h98zM687 1241h-69q-96 79 -188.5 171.5t-125.5 139.5v17h142q26 -48 98.5 -142t142.5 -170v-16z" />
+<glyph unicode="&#xfa;" horiz-adv-x="1208" d="M170 0zM268 1087v-704q0 -164 69 -238.5t214 -74.5q194 0 285.5 98t91.5 319v600h98v-1087h-84l-18 150h-6q-106 -170 -377 -170q-371 0 -371 397v710h98zM495 1257q73 79 144.5 171.5t97.5 140.5h141v-17q-36 -52 -122.5 -138t-190.5 -173h-70v16z" />
+<glyph unicode="&#xfb;" horiz-adv-x="1208" d="M170 0zM268 1087v-704q0 -164 69 -238.5t214 -74.5q194 0 285.5 98t91.5 319v600h98v-1087h-84l-18 150h-6q-106 -170 -377 -170q-371 0 -371 397v710h98zM313 1257q62 67 131.5 156t110.5 156h98q68 -120 242 -312v-16h-70q-122 101 -221 207q-108 -114 -221 -207h-70 v16z" />
+<glyph unicode="&#xfc;" horiz-adv-x="1208" d="M170 0zM268 1087v-704q0 -164 69 -238.5t214 -74.5q194 0 285.5 98t91.5 319v600h98v-1087h-84l-18 150h-6q-106 -170 -377 -170q-371 0 -371 397v710h98zM350 1389q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86zM731 1389q0 46 15.5 66t47.5 20q64 0 64 -86 t-64 -86q-63 0 -63 86z" />
+<glyph unicode="&#xfd;" horiz-adv-x="940" d="M0 0zM0 1087h102l230 -610q105 -281 133 -379h6q42 129 137 385l230 604h102l-487 -1263q-59 -154 -99 -208t-93.5 -81t-129.5 -27q-57 0 -127 21v86q58 -16 125 -16q51 0 90 24t70.5 74.5t73 160t53.5 142.5zM361 1257q73 79 144.5 171.5t97.5 140.5h141v-17 q-36 -52 -122.5 -138t-190.5 -173h-70v16z" />
+<glyph unicode="&#xfe;" horiz-adv-x="1219" d="M281 918q114 190 368 190q220 0 335.5 -144.5t115.5 -420.5q0 -268 -121.5 -415.5t-331.5 -147.5q-251 0 -366 188h-7l3 -84q4 -74 4 -162v-414h-99v2048h99v-391l-7 -247h7zM645 68q167 0 258.5 124t91.5 347q0 479 -348 479q-193 0 -279.5 -105t-86.5 -354v-18 q0 -255 85.5 -364t278.5 -109z" />
+<glyph unicode="&#xff;" horiz-adv-x="940" d="M0 0zM0 1087h102l230 -610q105 -281 133 -379h6q42 129 137 385l230 604h102l-487 -1263q-59 -154 -99 -208t-93.5 -81t-129.5 -27q-57 0 -127 21v86q58 -16 125 -16q51 0 90 24t70.5 74.5t73 160t53.5 142.5zM214 1389q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86 q-63 0 -63 86zM595 1389q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86z" />
+<glyph unicode="&#x131;" horiz-adv-x="463" d="M281 0h-99v1087h99v-1087z" />
+<glyph unicode="&#x152;" horiz-adv-x="1839" d="M1714 0h-756q-76 -16 -176 -16q-305 0 -479 200t-174 551q0 347 174.5 545.5t480.5 198.5q78 0 183 -17h747v-94h-655v-553h616v-94h-616v-627h655v-94zM782 80q109 0 174 18v1266q-62 16 -172 16q-262 0 -403 -167.5t-141 -479.5q0 -315 140.5 -484t401.5 -169z" />
+<glyph unicode="&#x153;" horiz-adv-x="1942" d="M1438 -20q-156 0 -266.5 67.5t-165.5 198.5q-59 -128 -158 -197t-252 -69q-143 0 -252 69t-167 198t-58 298q0 266 129 414.5t354 148.5q151 0 251 -70t157 -209q110 279 399 279q192 0 303 -134t111 -364v-80h-762q2 -230 100.5 -345t276.5 -115q93 0 163.5 13t178.5 56 v-90q-92 -40 -170 -54.5t-172 -14.5zM223 545q0 -224 98.5 -349.5t278.5 -125.5q174 0 265 122.5t91 352.5q0 224 -93 348.5t-265 124.5q-180 0 -277.5 -123.5t-97.5 -349.5zM1409 1020q-155 0 -242 -104t-102 -298h653q0 189 -82 295.5t-227 106.5z" />
+<glyph unicode="&#x178;" horiz-adv-x="1081" d="M0 0zM543 662l428 800h110l-487 -897v-565h-105v557l-489 905h117zM288 1727q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86zM669 1727q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86z" />
+<glyph unicode="&#x2c6;" horiz-adv-x="1182" d="M299 1257q62 67 131.5 156t110.5 156h98q68 -120 242 -312v-16h-70q-122 101 -221 207q-108 -114 -221 -207h-70v16z" />
+<glyph unicode="&#x2da;" horiz-adv-x="1182" d="M805 1456q0 -97 -60 -155t-157 -58t-157 58t-60 155q0 94 60 152.5t157 58.5t157 -59t60 -152zM451 1456q0 -66 37.5 -103.5t99.5 -37.5t99.5 37.5t37.5 103.5q0 64 -39 101.5t-98 37.5q-62 0 -99.5 -38t-37.5 -101z" />
+<glyph unicode="&#x2dc;" horiz-adv-x="1182" d="M780 1243q-36 0 -75 18.5t-101 71.5q-32 26 -62.5 46t-62.5 20q-45 0 -75 -34.5t-48 -121.5h-73q10 111 63 174.5t137 63.5q48 0 88 -25t82 -59q34 -28 66 -50t61 -22q46 0 77 36.5t48 119.5h76q-16 -116 -69 -177t-132 -61z" />
+<glyph unicode="&#x2000;" horiz-adv-x="953" />
+<glyph unicode="&#x2001;" horiz-adv-x="1907" />
+<glyph unicode="&#x2002;" horiz-adv-x="953" />
+<glyph unicode="&#x2003;" horiz-adv-x="1907" />
+<glyph unicode="&#x2004;" horiz-adv-x="635" />
+<glyph unicode="&#x2005;" horiz-adv-x="476" />
+<glyph unicode="&#x2006;" horiz-adv-x="317" />
+<glyph unicode="&#x2007;" horiz-adv-x="317" />
+<glyph unicode="&#x2008;" horiz-adv-x="238" />
+<glyph unicode="&#x2009;" horiz-adv-x="381" />
+<glyph unicode="&#x200a;" horiz-adv-x="105" />
+<glyph unicode="&#x2010;" horiz-adv-x="659" d="M92 512v82h475v-82h-475z" />
+<glyph unicode="&#x2011;" horiz-adv-x="659" d="M92 512v82h475v-82h-475z" />
+<glyph unicode="&#x2012;" horiz-adv-x="659" d="M92 512v82h475v-82h-475z" />
+<glyph unicode="&#x2013;" horiz-adv-x="1024" d="M82 512v82h860v-82h-860z" />
+<glyph unicode="&#x2014;" horiz-adv-x="2048" d="M82 512v82h1884v-82h-1884z" />
+<glyph unicode="&#x2018;" horiz-adv-x="297" d="M41 961l-12 20q32 112 81.5 251t92.5 230h65q-30 -101 -64.5 -257t-45.5 -244h-117z" />
+<glyph unicode="&#x2019;" horiz-adv-x="297" d="M256 1462l12 -20q-75 -265 -174 -481h-65q29 96 61 241.5t49 259.5h117z" />
+<glyph unicode="&#x201a;" horiz-adv-x="451" d="M68 0zM295 238l12 -20q-75 -265 -174 -481h-65q29 96 61 241.5t49 259.5h117z" />
+<glyph unicode="&#x201c;" horiz-adv-x="614" d="M358 961l-12 20q34 120 83 255t91 226h66q-30 -98 -63 -248.5t-48 -252.5h-117zM41 961l-12 20q32 112 81.5 251t92.5 230h65q-30 -101 -64.5 -257t-45.5 -244h-117z" />
+<glyph unicode="&#x201d;" horiz-adv-x="614" d="M256 1462l12 -20q-75 -265 -174 -481h-65q29 96 61 241.5t49 259.5h117zM573 1462l13 -20q-36 -128 -85 -261t-89 -220h-66q30 98 63 248.5t48 252.5h116z" />
+<glyph unicode="&#x201e;" horiz-adv-x="768" d="M68 0zM295 238l12 -20q-75 -265 -174 -481h-65q29 96 61 241.5t49 259.5h117zM612 238l13 -20q-36 -128 -85 -261t-89 -220h-66q30 98 63 248.5t48 252.5h116z" />
+<glyph unicode="&#x2022;" horiz-adv-x="770" d="M231 748q0 89 40.5 134.5t113.5 45.5t113.5 -47t40.5 -133q0 -85 -41 -133t-113 -48t-113 47t-41 134z" />
+<glyph unicode="&#x2026;" horiz-adv-x="1466" d="M162 0zM162 78q0 98 80 98q82 0 82 -98t-82 -98q-80 0 -80 98zM651 78q0 98 80 98q82 0 82 -98t-82 -98q-80 0 -80 98zM1141 78q0 98 80 98q82 0 82 -98t-82 -98q-80 0 -80 98z" />
+<glyph unicode="&#x202f;" horiz-adv-x="381" />
+<glyph unicode="&#x2039;" horiz-adv-x="524" d="M82 543l309 393l62 -43l-254 -363l254 -362l-62 -43l-309 391v27z" />
+<glyph unicode="&#x203a;" horiz-adv-x="524" d="M442 518l-309 -393l-61 43l254 362l-254 363l61 43l309 -391v-27z" />
+<glyph unicode="&#x2044;" horiz-adv-x="246" d="M573 1462l-811 -1462h-94l811 1462h94z" />
+<glyph unicode="&#x205f;" horiz-adv-x="476" />
+<glyph unicode="&#x2074;" horiz-adv-x="688" d="M657 827h-129v-241h-90v241h-413v60l407 581h96v-563h129v-78zM438 905v221q0 132 8 232q-6 -12 -21.5 -35.5t-295.5 -417.5h309z" />
+<glyph unicode="&#x20ac;" d="M803 1397q-174 0 -288 -125.5t-155 -364.5h502v-82h-510l-4 -104v-24q0 -65 4 -87h449v-82h-443q30 -217 147.5 -338.5t301.5 -121.5q148 0 287 65v-94q-81 -34 -150.5 -46.5t-140.5 -12.5q-228 0 -367.5 140t-181.5 408h-180v82h172q-4 38 -4 113l4 102h-172v82h184 q39 272 183 425t362 153q88 0 161 -17t148 -57l-39 -86q-132 72 -270 72z" />
+<glyph unicode="&#x2122;" horiz-adv-x="1485" d="M313 741h-86v643h-217v78h522v-78h-219v-643zM913 741l-221 609h-6l4 -201v-408h-82v721h125l221 -606l224 606h125v-721h-86v398l4 207h-7l-227 -605h-74z" />
+<glyph unicode="&#x2212;" d="M111 682v82h948v-82h-948z" />
+<glyph unicode="&#xe000;" horiz-adv-x="1085" d="M0 1085h1085v-1085h-1085v1085z" />
+<glyph horiz-adv-x="1219" d="M0 0z" />
+<hkern u1="&#x22;" u2="&#x178;" k="-20" />
+<hkern u1="&#x22;" u2="&#x153;" k="123" />
+<hkern u1="&#x22;" u2="&#xfc;" k="61" />
+<hkern u1="&#x22;" u2="&#xfb;" k="61" />
+<hkern u1="&#x22;" u2="&#xfa;" k="61" />
+<hkern u1="&#x22;" u2="&#xf9;" k="61" />
+<hkern u1="&#x22;" u2="&#xf8;" k="123" />
+<hkern u1="&#x22;" u2="&#xf6;" k="123" />
+<hkern u1="&#x22;" u2="&#xf5;" k="123" />
+<hkern u1="&#x22;" u2="&#xf4;" k="123" />
+<hkern u1="&#x22;" u2="&#xf3;" k="123" />
+<hkern u1="&#x22;" u2="&#xf2;" k="123" />
+<hkern u1="&#x22;" u2="&#xeb;" k="123" />
+<hkern u1="&#x22;" u2="&#xea;" k="123" />
+<hkern u1="&#x22;" u2="&#xe9;" k="123" />
+<hkern u1="&#x22;" u2="&#xe8;" k="123" />
+<hkern u1="&#x22;" u2="&#xe7;" k="123" />
+<hkern u1="&#x22;" u2="&#xe6;" k="82" />
+<hkern u1="&#x22;" u2="&#xe5;" k="82" />
+<hkern u1="&#x22;" u2="&#xe4;" k="82" />
+<hkern u1="&#x22;" u2="&#xe3;" k="82" />
+<hkern u1="&#x22;" u2="&#xe2;" k="82" />
+<hkern u1="&#x22;" u2="&#xe1;" k="82" />
+<hkern u1="&#x22;" u2="&#xe0;" k="123" />
+<hkern u1="&#x22;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x22;" u2="&#xc5;" k="143" />
+<hkern u1="&#x22;" u2="&#xc4;" k="143" />
+<hkern u1="&#x22;" u2="&#xc3;" k="143" />
+<hkern u1="&#x22;" u2="&#xc2;" k="143" />
+<hkern u1="&#x22;" u2="&#xc1;" k="143" />
+<hkern u1="&#x22;" u2="&#xc0;" k="143" />
+<hkern u1="&#x22;" u2="u" k="61" />
+<hkern u1="&#x22;" u2="s" k="61" />
+<hkern u1="&#x22;" u2="r" k="61" />
+<hkern u1="&#x22;" u2="q" k="123" />
+<hkern u1="&#x22;" u2="p" k="61" />
+<hkern u1="&#x22;" u2="o" k="123" />
+<hkern u1="&#x22;" u2="n" k="61" />
+<hkern u1="&#x22;" u2="m" k="61" />
+<hkern u1="&#x22;" u2="g" k="61" />
+<hkern u1="&#x22;" u2="e" k="123" />
+<hkern u1="&#x22;" u2="d" k="123" />
+<hkern u1="&#x22;" u2="c" k="123" />
+<hkern u1="&#x22;" u2="a" k="82" />
+<hkern u1="&#x22;" u2="Y" k="-20" />
+<hkern u1="&#x22;" u2="W" k="-41" />
+<hkern u1="&#x22;" u2="V" k="-41" />
+<hkern u1="&#x22;" u2="T" k="-41" />
+<hkern u1="&#x22;" u2="A" k="143" />
+<hkern u1="&#x27;" u2="&#x178;" k="-20" />
+<hkern u1="&#x27;" u2="&#x153;" k="123" />
+<hkern u1="&#x27;" u2="&#xfc;" k="61" />
+<hkern u1="&#x27;" u2="&#xfb;" k="61" />
+<hkern u1="&#x27;" u2="&#xfa;" k="61" />
+<hkern u1="&#x27;" u2="&#xf9;" k="61" />
+<hkern u1="&#x27;" u2="&#xf8;" k="123" />
+<hkern u1="&#x27;" u2="&#xf6;" k="123" />
+<hkern u1="&#x27;" u2="&#xf5;" k="123" />
+<hkern u1="&#x27;" u2="&#xf4;" k="123" />
+<hkern u1="&#x27;" u2="&#xf3;" k="123" />
+<hkern u1="&#x27;" u2="&#xf2;" k="123" />
+<hkern u1="&#x27;" u2="&#xeb;" k="123" />
+<hkern u1="&#x27;" u2="&#xea;" k="123" />
+<hkern u1="&#x27;" u2="&#xe9;" k="123" />
+<hkern u1="&#x27;" u2="&#xe8;" k="123" />
+<hkern u1="&#x27;" u2="&#xe7;" k="123" />
+<hkern u1="&#x27;" u2="&#xe6;" k="82" />
+<hkern u1="&#x27;" u2="&#xe5;" k="82" />
+<hkern u1="&#x27;" u2="&#xe4;" k="82" />
+<hkern u1="&#x27;" u2="&#xe3;" k="82" />
+<hkern u1="&#x27;" u2="&#xe2;" k="82" />
+<hkern u1="&#x27;" u2="&#xe1;" k="82" />
+<hkern u1="&#x27;" u2="&#xe0;" k="123" />
+<hkern u1="&#x27;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x27;" u2="&#xc5;" k="143" />
+<hkern u1="&#x27;" u2="&#xc4;" k="143" />
+<hkern u1="&#x27;" u2="&#xc3;" k="143" />
+<hkern u1="&#x27;" u2="&#xc2;" k="143" />
+<hkern u1="&#x27;" u2="&#xc1;" k="143" />
+<hkern u1="&#x27;" u2="&#xc0;" k="143" />
+<hkern u1="&#x27;" u2="u" k="61" />
+<hkern u1="&#x27;" u2="s" k="61" />
+<hkern u1="&#x27;" u2="r" k="61" />
+<hkern u1="&#x27;" u2="q" k="123" />
+<hkern u1="&#x27;" u2="p" k="61" />
+<hkern u1="&#x27;" u2="o" k="123" />
+<hkern u1="&#x27;" u2="n" k="61" />
+<hkern u1="&#x27;" u2="m" k="61" />
+<hkern u1="&#x27;" u2="g" k="61" />
+<hkern u1="&#x27;" u2="e" k="123" />
+<hkern u1="&#x27;" u2="d" k="123" />
+<hkern u1="&#x27;" u2="c" k="123" />
+<hkern u1="&#x27;" u2="a" k="82" />
+<hkern u1="&#x27;" u2="Y" k="-20" />
+<hkern u1="&#x27;" u2="W" k="-41" />
+<hkern u1="&#x27;" u2="V" k="-41" />
+<hkern u1="&#x27;" u2="T" k="-41" />
+<hkern u1="&#x27;" u2="A" k="143" />
+<hkern u1="&#x28;" u2="J" k="-184" />
+<hkern u1="&#x2c;" u2="&#x178;" k="123" />
+<hkern u1="&#x2c;" u2="&#x152;" k="102" />
+<hkern u1="&#x2c;" u2="&#xdd;" k="123" />
+<hkern u1="&#x2c;" u2="&#xdc;" k="41" />
+<hkern u1="&#x2c;" u2="&#xdb;" k="41" />
+<hkern u1="&#x2c;" u2="&#xda;" k="41" />
+<hkern u1="&#x2c;" u2="&#xd9;" k="41" />
+<hkern u1="&#x2c;" u2="&#xd8;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd6;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd5;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd4;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd3;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd2;" k="102" />
+<hkern u1="&#x2c;" u2="&#xc7;" k="102" />
+<hkern u1="&#x2c;" u2="Y" k="123" />
+<hkern u1="&#x2c;" u2="W" k="123" />
+<hkern u1="&#x2c;" u2="V" k="123" />
+<hkern u1="&#x2c;" u2="U" k="41" />
+<hkern u1="&#x2c;" u2="T" k="143" />
+<hkern u1="&#x2c;" u2="Q" k="102" />
+<hkern u1="&#x2c;" u2="O" k="102" />
+<hkern u1="&#x2c;" u2="G" k="102" />
+<hkern u1="&#x2c;" u2="C" k="102" />
+<hkern u1="&#x2d;" u2="T" k="82" />
+<hkern u1="&#x2e;" u2="&#x178;" k="123" />
+<hkern u1="&#x2e;" u2="&#x152;" k="102" />
+<hkern u1="&#x2e;" u2="&#xdd;" k="123" />
+<hkern u1="&#x2e;" u2="&#xdc;" k="41" />
+<hkern u1="&#x2e;" u2="&#xdb;" k="41" />
+<hkern u1="&#x2e;" u2="&#xda;" k="41" />
+<hkern u1="&#x2e;" u2="&#xd9;" k="41" />
+<hkern u1="&#x2e;" u2="&#xd8;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd6;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd5;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd4;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd3;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd2;" k="102" />
+<hkern u1="&#x2e;" u2="&#xc7;" k="102" />
+<hkern u1="&#x2e;" u2="Y" k="123" />
+<hkern u1="&#x2e;" u2="W" k="123" />
+<hkern u1="&#x2e;" u2="V" k="123" />
+<hkern u1="&#x2e;" u2="U" k="41" />
+<hkern u1="&#x2e;" u2="T" k="143" />
+<hkern u1="&#x2e;" u2="Q" k="102" />
+<hkern u1="&#x2e;" u2="O" k="102" />
+<hkern u1="&#x2e;" u2="G" k="102" />
+<hkern u1="&#x2e;" u2="C" k="102" />
+<hkern u1="A" u2="&#x201d;" k="143" />
+<hkern u1="A" u2="&#x2019;" k="143" />
+<hkern u1="A" u2="&#x178;" k="123" />
+<hkern u1="A" u2="&#x152;" k="41" />
+<hkern u1="A" u2="&#xdd;" k="123" />
+<hkern u1="A" u2="&#xd8;" k="41" />
+<hkern u1="A" u2="&#xd6;" k="41" />
+<hkern u1="A" u2="&#xd5;" k="41" />
+<hkern u1="A" u2="&#xd4;" k="41" />
+<hkern u1="A" u2="&#xd3;" k="41" />
+<hkern u1="A" u2="&#xd2;" k="41" />
+<hkern u1="A" u2="&#xc7;" k="41" />
+<hkern u1="A" u2="Y" k="123" />
+<hkern u1="A" u2="W" k="82" />
+<hkern u1="A" u2="V" k="82" />
+<hkern u1="A" u2="T" k="143" />
+<hkern u1="A" u2="Q" k="41" />
+<hkern u1="A" u2="O" k="41" />
+<hkern u1="A" u2="J" k="-266" />
+<hkern u1="A" u2="G" k="41" />
+<hkern u1="A" u2="C" k="41" />
+<hkern u1="A" u2="&#x27;" k="143" />
+<hkern u1="A" u2="&#x22;" k="143" />
+<hkern u1="B" u2="&#x201e;" k="82" />
+<hkern u1="B" u2="&#x201a;" k="82" />
+<hkern u1="B" u2="&#x178;" k="20" />
+<hkern u1="B" u2="&#xdd;" k="20" />
+<hkern u1="B" u2="&#xc5;" k="41" />
+<hkern u1="B" u2="&#xc4;" k="41" />
+<hkern u1="B" u2="&#xc3;" k="41" />
+<hkern u1="B" u2="&#xc2;" k="41" />
+<hkern u1="B" u2="&#xc1;" k="41" />
+<hkern u1="B" u2="&#xc0;" k="41" />
+<hkern u1="B" u2="Z" k="20" />
+<hkern u1="B" u2="Y" k="20" />
+<hkern u1="B" u2="X" k="41" />
+<hkern u1="B" u2="W" k="20" />
+<hkern u1="B" u2="V" k="20" />
+<hkern u1="B" u2="T" k="61" />
+<hkern u1="B" u2="A" k="41" />
+<hkern u1="B" u2="&#x2e;" k="82" />
+<hkern u1="B" u2="&#x2c;" k="82" />
+<hkern u1="C" u2="&#x152;" k="41" />
+<hkern u1="C" u2="&#xd8;" k="41" />
+<hkern u1="C" u2="&#xd6;" k="41" />
+<hkern u1="C" u2="&#xd5;" k="41" />
+<hkern u1="C" u2="&#xd4;" k="41" />
+<hkern u1="C" u2="&#xd3;" k="41" />
+<hkern u1="C" u2="&#xd2;" k="41" />
+<hkern u1="C" u2="&#xc7;" k="41" />
+<hkern u1="C" u2="Q" k="41" />
+<hkern u1="C" u2="O" k="41" />
+<hkern u1="C" u2="G" k="41" />
+<hkern u1="C" u2="C" k="41" />
+<hkern u1="D" u2="&#x201e;" k="82" />
+<hkern u1="D" u2="&#x201a;" k="82" />
+<hkern u1="D" u2="&#x178;" k="20" />
+<hkern u1="D" u2="&#xdd;" k="20" />
+<hkern u1="D" u2="&#xc5;" k="41" />
+<hkern u1="D" u2="&#xc4;" k="41" />
+<hkern u1="D" u2="&#xc3;" k="41" />
+<hkern u1="D" u2="&#xc2;" k="41" />
+<hkern u1="D" u2="&#xc1;" k="41" />
+<hkern u1="D" u2="&#xc0;" k="41" />
+<hkern u1="D" u2="Z" k="20" />
+<hkern u1="D" u2="Y" k="20" />
+<hkern u1="D" u2="X" k="41" />
+<hkern u1="D" u2="W" k="20" />
+<hkern u1="D" u2="V" k="20" />
+<hkern u1="D" u2="T" k="61" />
+<hkern u1="D" u2="A" k="41" />
+<hkern u1="D" u2="&#x2e;" k="82" />
+<hkern u1="D" u2="&#x2c;" k="82" />
+<hkern u1="E" u2="J" k="-123" />
+<hkern u1="F" u2="&#x201e;" k="123" />
+<hkern u1="F" u2="&#x201a;" k="123" />
+<hkern u1="F" u2="&#xc5;" k="41" />
+<hkern u1="F" u2="&#xc4;" k="41" />
+<hkern u1="F" u2="&#xc3;" k="41" />
+<hkern u1="F" u2="&#xc2;" k="41" />
+<hkern u1="F" u2="&#xc1;" k="41" />
+<hkern u1="F" u2="&#xc0;" k="41" />
+<hkern u1="F" u2="A" k="41" />
+<hkern u1="F" u2="&#x3f;" k="-41" />
+<hkern u1="F" u2="&#x2e;" k="123" />
+<hkern u1="F" u2="&#x2c;" k="123" />
+<hkern u1="K" u2="&#x152;" k="41" />
+<hkern u1="K" u2="&#xd8;" k="41" />
+<hkern u1="K" u2="&#xd6;" k="41" />
+<hkern u1="K" u2="&#xd5;" k="41" />
+<hkern u1="K" u2="&#xd4;" k="41" />
+<hkern u1="K" u2="&#xd3;" k="41" />
+<hkern u1="K" u2="&#xd2;" k="41" />
+<hkern u1="K" u2="&#xc7;" k="41" />
+<hkern u1="K" u2="Q" k="41" />
+<hkern u1="K" u2="O" k="41" />
+<hkern u1="K" u2="G" k="41" />
+<hkern u1="K" u2="C" k="41" />
+<hkern u1="L" u2="&#x201d;" k="164" />
+<hkern u1="L" u2="&#x2019;" k="164" />
+<hkern u1="L" u2="&#x178;" k="61" />
+<hkern u1="L" u2="&#x152;" k="41" />
+<hkern u1="L" u2="&#xdd;" k="61" />
+<hkern u1="L" u2="&#xdc;" k="20" />
+<hkern u1="L" u2="&#xdb;" k="20" />
+<hkern u1="L" u2="&#xda;" k="20" />
+<hkern u1="L" u2="&#xd9;" k="20" />
+<hkern u1="L" u2="&#xd8;" k="41" />
+<hkern u1="L" u2="&#xd6;" k="41" />
+<hkern u1="L" u2="&#xd5;" k="41" />
+<hkern u1="L" u2="&#xd4;" k="41" />
+<hkern u1="L" u2="&#xd3;" k="41" />
+<hkern u1="L" u2="&#xd2;" k="41" />
+<hkern u1="L" u2="&#xc7;" k="41" />
+<hkern u1="L" u2="Y" k="61" />
+<hkern u1="L" u2="W" k="41" />
+<hkern u1="L" u2="V" k="41" />
+<hkern u1="L" u2="U" k="20" />
+<hkern u1="L" u2="T" k="41" />
+<hkern u1="L" u2="Q" k="41" />
+<hkern u1="L" u2="O" k="41" />
+<hkern u1="L" u2="G" k="41" />
+<hkern u1="L" u2="C" k="41" />
+<hkern u1="L" u2="&#x27;" k="164" />
+<hkern u1="L" u2="&#x22;" k="164" />
+<hkern u1="O" u2="&#x201e;" k="82" />
+<hkern u1="O" u2="&#x201a;" k="82" />
+<hkern u1="O" u2="&#x178;" k="20" />
+<hkern u1="O" u2="&#xdd;" k="20" />
+<hkern u1="O" u2="&#xc5;" k="41" />
+<hkern u1="O" u2="&#xc4;" k="41" />
+<hkern u1="O" u2="&#xc3;" k="41" />
+<hkern u1="O" u2="&#xc2;" k="41" />
+<hkern u1="O" u2="&#xc1;" k="41" />
+<hkern u1="O" u2="&#xc0;" k="41" />
+<hkern u1="O" u2="Z" k="20" />
+<hkern u1="O" u2="Y" k="20" />
+<hkern u1="O" u2="X" k="41" />
+<hkern u1="O" u2="W" k="20" />
+<hkern u1="O" u2="V" k="20" />
+<hkern u1="O" u2="T" k="61" />
+<hkern u1="O" u2="A" k="41" />
+<hkern u1="O" u2="&#x2e;" k="82" />
+<hkern u1="O" u2="&#x2c;" k="82" />
+<hkern u1="P" u2="&#x201e;" k="266" />
+<hkern u1="P" u2="&#x201a;" k="266" />
+<hkern u1="P" u2="&#xc5;" k="102" />
+<hkern u1="P" u2="&#xc4;" k="102" />
+<hkern u1="P" u2="&#xc3;" k="102" />
+<hkern u1="P" u2="&#xc2;" k="102" />
+<hkern u1="P" u2="&#xc1;" k="102" />
+<hkern u1="P" u2="&#xc0;" k="102" />
+<hkern u1="P" u2="Z" k="20" />
+<hkern u1="P" u2="X" k="41" />
+<hkern u1="P" u2="A" k="102" />
+<hkern u1="P" u2="&#x2e;" k="266" />
+<hkern u1="P" u2="&#x2c;" k="266" />
+<hkern u1="Q" u2="&#x201e;" k="82" />
+<hkern u1="Q" u2="&#x201a;" k="82" />
+<hkern u1="Q" u2="&#x178;" k="20" />
+<hkern u1="Q" u2="&#xdd;" k="20" />
+<hkern u1="Q" u2="&#xc5;" k="41" />
+<hkern u1="Q" u2="&#xc4;" k="41" />
+<hkern u1="Q" u2="&#xc3;" k="41" />
+<hkern u1="Q" u2="&#xc2;" k="41" />
+<hkern u1="Q" u2="&#xc1;" k="41" />
+<hkern u1="Q" u2="&#xc0;" k="41" />
+<hkern u1="Q" u2="Z" k="20" />
+<hkern u1="Q" u2="Y" k="20" />
+<hkern u1="Q" u2="X" k="41" />
+<hkern u1="Q" u2="W" k="20" />
+<hkern u1="Q" u2="V" k="20" />
+<hkern u1="Q" u2="T" k="61" />
+<hkern u1="Q" u2="A" k="41" />
+<hkern u1="Q" u2="&#x2e;" k="82" />
+<hkern u1="Q" u2="&#x2c;" k="82" />
+<hkern u1="T" u2="&#x201e;" k="123" />
+<hkern u1="T" u2="&#x201a;" k="123" />
+<hkern u1="T" u2="&#x2014;" k="82" />
+<hkern u1="T" u2="&#x2013;" k="82" />
+<hkern u1="T" u2="&#x153;" k="143" />
+<hkern u1="T" u2="&#x152;" k="41" />
+<hkern u1="T" u2="&#xfd;" k="41" />
+<hkern u1="T" u2="&#xfc;" k="102" />
+<hkern u1="T" u2="&#xfb;" k="102" />
+<hkern u1="T" u2="&#xfa;" k="102" />
+<hkern u1="T" u2="&#xf9;" k="102" />
+<hkern u1="T" u2="&#xf8;" k="143" />
+<hkern u1="T" u2="&#xf6;" k="143" />
+<hkern u1="T" u2="&#xf5;" k="143" />
+<hkern u1="T" u2="&#xf4;" k="143" />
+<hkern u1="T" u2="&#xf3;" k="143" />
+<hkern u1="T" u2="&#xf2;" k="143" />
+<hkern u1="T" u2="&#xeb;" k="143" />
+<hkern u1="T" u2="&#xea;" k="143" />
+<hkern u1="T" u2="&#xe9;" k="143" />
+<hkern u1="T" u2="&#xe8;" k="143" />
+<hkern u1="T" u2="&#xe7;" k="143" />
+<hkern u1="T" u2="&#xe6;" k="164" />
+<hkern u1="T" u2="&#xe5;" k="164" />
+<hkern u1="T" u2="&#xe4;" k="164" />
+<hkern u1="T" u2="&#xe3;" k="164" />
+<hkern u1="T" u2="&#xe2;" k="164" />
+<hkern u1="T" u2="&#xe1;" k="164" />
+<hkern u1="T" u2="&#xe0;" k="143" />
+<hkern u1="T" u2="&#xd8;" k="41" />
+<hkern u1="T" u2="&#xd6;" k="41" />
+<hkern u1="T" u2="&#xd5;" k="41" />
+<hkern u1="T" u2="&#xd4;" k="41" />
+<hkern u1="T" u2="&#xd3;" k="41" />
+<hkern u1="T" u2="&#xd2;" k="41" />
+<hkern u1="T" u2="&#xc7;" k="41" />
+<hkern u1="T" u2="&#xc5;" k="143" />
+<hkern u1="T" u2="&#xc4;" k="143" />
+<hkern u1="T" u2="&#xc3;" k="143" />
+<hkern u1="T" u2="&#xc2;" k="143" />
+<hkern u1="T" u2="&#xc1;" k="143" />
+<hkern u1="T" u2="&#xc0;" k="143" />
+<hkern u1="T" u2="z" k="82" />
+<hkern u1="T" u2="y" k="41" />
+<hkern u1="T" u2="x" k="41" />
+<hkern u1="T" u2="w" k="41" />
+<hkern u1="T" u2="v" k="41" />
+<hkern u1="T" u2="u" k="102" />
+<hkern u1="T" u2="s" k="123" />
+<hkern u1="T" u2="r" k="102" />
+<hkern u1="T" u2="q" k="143" />
+<hkern u1="T" u2="p" k="102" />
+<hkern u1="T" u2="o" k="143" />
+<hkern u1="T" u2="n" k="102" />
+<hkern u1="T" u2="m" k="102" />
+<hkern u1="T" u2="g" k="143" />
+<hkern u1="T" u2="e" k="143" />
+<hkern u1="T" u2="d" k="143" />
+<hkern u1="T" u2="c" k="143" />
+<hkern u1="T" u2="a" k="164" />
+<hkern u1="T" u2="T" k="-41" />
+<hkern u1="T" u2="Q" k="41" />
+<hkern u1="T" u2="O" k="41" />
+<hkern u1="T" u2="G" k="41" />
+<hkern u1="T" u2="C" k="41" />
+<hkern u1="T" u2="A" k="143" />
+<hkern u1="T" u2="&#x3f;" k="-41" />
+<hkern u1="T" u2="&#x2e;" k="123" />
+<hkern u1="T" u2="&#x2d;" k="82" />
+<hkern u1="T" u2="&#x2c;" k="123" />
+<hkern u1="U" u2="&#x201e;" k="41" />
+<hkern u1="U" u2="&#x201a;" k="41" />
+<hkern u1="U" u2="&#xc5;" k="20" />
+<hkern u1="U" u2="&#xc4;" k="20" />
+<hkern u1="U" u2="&#xc3;" k="20" />
+<hkern u1="U" u2="&#xc2;" k="20" />
+<hkern u1="U" u2="&#xc1;" k="20" />
+<hkern u1="U" u2="&#xc0;" k="20" />
+<hkern u1="U" u2="A" k="20" />
+<hkern u1="U" u2="&#x2e;" k="41" />
+<hkern u1="U" u2="&#x2c;" k="41" />
+<hkern u1="V" u2="&#x201e;" k="102" />
+<hkern u1="V" u2="&#x201a;" k="102" />
+<hkern u1="V" u2="&#x153;" k="41" />
+<hkern u1="V" u2="&#x152;" k="20" />
+<hkern u1="V" u2="&#xfc;" k="20" />
+<hkern u1="V" u2="&#xfb;" k="20" />
+<hkern u1="V" u2="&#xfa;" k="20" />
+<hkern u1="V" u2="&#xf9;" k="20" />
+<hkern u1="V" u2="&#xf8;" k="41" />
+<hkern u1="V" u2="&#xf6;" k="41" />
+<hkern u1="V" u2="&#xf5;" k="41" />
+<hkern u1="V" u2="&#xf4;" k="41" />
+<hkern u1="V" u2="&#xf3;" k="41" />
+<hkern u1="V" u2="&#xf2;" k="41" />
+<hkern u1="V" u2="&#xeb;" k="41" />
+<hkern u1="V" u2="&#xea;" k="41" />
+<hkern u1="V" u2="&#xe9;" k="41" />
+<hkern u1="V" u2="&#xe8;" k="41" />
+<hkern u1="V" u2="&#xe7;" k="41" />
+<hkern u1="V" u2="&#xe6;" k="41" />
+<hkern u1="V" u2="&#xe5;" k="41" />
+<hkern u1="V" u2="&#xe4;" k="41" />
+<hkern u1="V" u2="&#xe3;" k="41" />
+<hkern u1="V" u2="&#xe2;" k="41" />
+<hkern u1="V" u2="&#xe1;" k="41" />
+<hkern u1="V" u2="&#xe0;" k="41" />
+<hkern u1="V" u2="&#xd8;" k="20" />
+<hkern u1="V" u2="&#xd6;" k="20" />
+<hkern u1="V" u2="&#xd5;" k="20" />
+<hkern u1="V" u2="&#xd4;" k="20" />
+<hkern u1="V" u2="&#xd3;" k="20" />
+<hkern u1="V" u2="&#xd2;" k="20" />
+<hkern u1="V" u2="&#xc7;" k="20" />
+<hkern u1="V" u2="&#xc5;" k="82" />
+<hkern u1="V" u2="&#xc4;" k="82" />
+<hkern u1="V" u2="&#xc3;" k="82" />
+<hkern u1="V" u2="&#xc2;" k="82" />
+<hkern u1="V" u2="&#xc1;" k="82" />
+<hkern u1="V" u2="&#xc0;" k="82" />
+<hkern u1="V" u2="u" k="20" />
+<hkern u1="V" u2="s" k="20" />
+<hkern u1="V" u2="r" k="20" />
+<hkern u1="V" u2="q" k="41" />
+<hkern u1="V" u2="p" k="20" />
+<hkern u1="V" u2="o" k="41" />
+<hkern u1="V" u2="n" k="20" />
+<hkern u1="V" u2="m" k="20" />
+<hkern u1="V" u2="g" k="20" />
+<hkern u1="V" u2="e" k="41" />
+<hkern u1="V" u2="d" k="41" />
+<hkern u1="V" u2="c" k="41" />
+<hkern u1="V" u2="a" k="41" />
+<hkern u1="V" u2="Q" k="20" />
+<hkern u1="V" u2="O" k="20" />
+<hkern u1="V" u2="G" k="20" />
+<hkern u1="V" u2="C" k="20" />
+<hkern u1="V" u2="A" k="82" />
+<hkern u1="V" u2="&#x3f;" k="-41" />
+<hkern u1="V" u2="&#x2e;" k="102" />
+<hkern u1="V" u2="&#x2c;" k="102" />
+<hkern u1="W" u2="&#x201e;" k="102" />
+<hkern u1="W" u2="&#x201a;" k="102" />
+<hkern u1="W" u2="&#x153;" k="41" />
+<hkern u1="W" u2="&#x152;" k="20" />
+<hkern u1="W" u2="&#xfc;" k="20" />
+<hkern u1="W" u2="&#xfb;" k="20" />
+<hkern u1="W" u2="&#xfa;" k="20" />
+<hkern u1="W" u2="&#xf9;" k="20" />
+<hkern u1="W" u2="&#xf8;" k="41" />
+<hkern u1="W" u2="&#xf6;" k="41" />
+<hkern u1="W" u2="&#xf5;" k="41" />
+<hkern u1="W" u2="&#xf4;" k="41" />
+<hkern u1="W" u2="&#xf3;" k="41" />
+<hkern u1="W" u2="&#xf2;" k="41" />
+<hkern u1="W" u2="&#xeb;" k="41" />
+<hkern u1="W" u2="&#xea;" k="41" />
+<hkern u1="W" u2="&#xe9;" k="41" />
+<hkern u1="W" u2="&#xe8;" k="41" />
+<hkern u1="W" u2="&#xe7;" k="41" />
+<hkern u1="W" u2="&#xe6;" k="41" />
+<hkern u1="W" u2="&#xe5;" k="41" />
+<hkern u1="W" u2="&#xe4;" k="41" />
+<hkern u1="W" u2="&#xe3;" k="41" />
+<hkern u1="W" u2="&#xe2;" k="41" />
+<hkern u1="W" u2="&#xe1;" k="41" />
+<hkern u1="W" u2="&#xe0;" k="41" />
+<hkern u1="W" u2="&#xd8;" k="20" />
+<hkern u1="W" u2="&#xd6;" k="20" />
+<hkern u1="W" u2="&#xd5;" k="20" />
+<hkern u1="W" u2="&#xd4;" k="20" />
+<hkern u1="W" u2="&#xd3;" k="20" />
+<hkern u1="W" u2="&#xd2;" k="20" />
+<hkern u1="W" u2="&#xc7;" k="20" />
+<hkern u1="W" u2="&#xc5;" k="82" />
+<hkern u1="W" u2="&#xc4;" k="82" />
+<hkern u1="W" u2="&#xc3;" k="82" />
+<hkern u1="W" u2="&#xc2;" k="82" />
+<hkern u1="W" u2="&#xc1;" k="82" />
+<hkern u1="W" u2="&#xc0;" k="82" />
+<hkern u1="W" u2="u" k="20" />
+<hkern u1="W" u2="s" k="20" />
+<hkern u1="W" u2="r" k="20" />
+<hkern u1="W" u2="q" k="41" />
+<hkern u1="W" u2="p" k="20" />
+<hkern u1="W" u2="o" k="41" />
+<hkern u1="W" u2="n" k="20" />
+<hkern u1="W" u2="m" k="20" />
+<hkern u1="W" u2="g" k="20" />
+<hkern u1="W" u2="e" k="41" />
+<hkern u1="W" u2="d" k="41" />
+<hkern u1="W" u2="c" k="41" />
+<hkern u1="W" u2="a" k="41" />
+<hkern u1="W" u2="Q" k="20" />
+<hkern u1="W" u2="O" k="20" />
+<hkern u1="W" u2="G" k="20" />
+<hkern u1="W" u2="C" k="20" />
+<hkern u1="W" u2="A" k="82" />
+<hkern u1="W" u2="&#x3f;" k="-41" />
+<hkern u1="W" u2="&#x2e;" k="102" />
+<hkern u1="W" u2="&#x2c;" k="102" />
+<hkern u1="X" u2="&#x152;" k="41" />
+<hkern u1="X" u2="&#xd8;" k="41" />
+<hkern u1="X" u2="&#xd6;" k="41" />
+<hkern u1="X" u2="&#xd5;" k="41" />
+<hkern u1="X" u2="&#xd4;" k="41" />
+<hkern u1="X" u2="&#xd3;" k="41" />
+<hkern u1="X" u2="&#xd2;" k="41" />
+<hkern u1="X" u2="&#xc7;" k="41" />
+<hkern u1="X" u2="Q" k="41" />
+<hkern u1="X" u2="O" k="41" />
+<hkern u1="X" u2="G" k="41" />
+<hkern u1="X" u2="C" k="41" />
+<hkern u1="Y" u2="&#x201e;" k="123" />
+<hkern u1="Y" u2="&#x201a;" k="123" />
+<hkern u1="Y" u2="&#x153;" k="102" />
+<hkern u1="Y" u2="&#x152;" k="41" />
+<hkern u1="Y" u2="&#xfc;" k="61" />
+<hkern u1="Y" u2="&#xfb;" k="61" />
+<hkern u1="Y" u2="&#xfa;" k="61" />
+<hkern u1="Y" u2="&#xf9;" k="61" />
+<hkern u1="Y" u2="&#xf8;" k="102" />
+<hkern u1="Y" u2="&#xf6;" k="102" />
+<hkern u1="Y" u2="&#xf5;" k="102" />
+<hkern u1="Y" u2="&#xf4;" k="102" />
+<hkern u1="Y" u2="&#xf3;" k="102" />
+<hkern u1="Y" u2="&#xf2;" k="102" />
+<hkern u1="Y" u2="&#xeb;" k="102" />
+<hkern u1="Y" u2="&#xea;" k="102" />
+<hkern u1="Y" u2="&#xe9;" k="102" />
+<hkern u1="Y" u2="&#xe8;" k="102" />
+<hkern u1="Y" u2="&#xe7;" k="102" />
+<hkern u1="Y" u2="&#xe6;" k="102" />
+<hkern u1="Y" u2="&#xe5;" k="102" />
+<hkern u1="Y" u2="&#xe4;" k="102" />
+<hkern u1="Y" u2="&#xe3;" k="102" />
+<hkern u1="Y" u2="&#xe2;" k="102" />
+<hkern u1="Y" u2="&#xe1;" k="102" />
+<hkern u1="Y" u2="&#xe0;" k="102" />
+<hkern u1="Y" u2="&#xd8;" k="41" />
+<hkern u1="Y" u2="&#xd6;" k="41" />
+<hkern u1="Y" u2="&#xd5;" k="41" />
+<hkern u1="Y" u2="&#xd4;" k="41" />
+<hkern u1="Y" u2="&#xd3;" k="41" />
+<hkern u1="Y" u2="&#xd2;" k="41" />
+<hkern u1="Y" u2="&#xc7;" k="41" />
+<hkern u1="Y" u2="&#xc5;" k="123" />
+<hkern u1="Y" u2="&#xc4;" k="123" />
+<hkern u1="Y" u2="&#xc3;" k="123" />
+<hkern u1="Y" u2="&#xc2;" k="123" />
+<hkern u1="Y" u2="&#xc1;" k="123" />
+<hkern u1="Y" u2="&#xc0;" k="123" />
+<hkern u1="Y" u2="z" k="41" />
+<hkern u1="Y" u2="u" k="61" />
+<hkern u1="Y" u2="s" k="82" />
+<hkern u1="Y" u2="r" k="61" />
+<hkern u1="Y" u2="q" k="102" />
+<hkern u1="Y" u2="p" k="61" />
+<hkern u1="Y" u2="o" k="102" />
+<hkern u1="Y" u2="n" k="61" />
+<hkern u1="Y" u2="m" k="61" />
+<hkern u1="Y" u2="g" k="41" />
+<hkern u1="Y" u2="e" k="102" />
+<hkern u1="Y" u2="d" k="102" />
+<hkern u1="Y" u2="c" k="102" />
+<hkern u1="Y" u2="a" k="102" />
+<hkern u1="Y" u2="Q" k="41" />
+<hkern u1="Y" u2="O" k="41" />
+<hkern u1="Y" u2="G" k="41" />
+<hkern u1="Y" u2="C" k="41" />
+<hkern u1="Y" u2="A" k="123" />
+<hkern u1="Y" u2="&#x3f;" k="-41" />
+<hkern u1="Y" u2="&#x2e;" k="123" />
+<hkern u1="Y" u2="&#x2c;" k="123" />
+<hkern u1="Z" u2="&#x152;" k="20" />
+<hkern u1="Z" u2="&#xd8;" k="20" />
+<hkern u1="Z" u2="&#xd6;" k="20" />
+<hkern u1="Z" u2="&#xd5;" k="20" />
+<hkern u1="Z" u2="&#xd4;" k="20" />
+<hkern u1="Z" u2="&#xd3;" k="20" />
+<hkern u1="Z" u2="&#xd2;" k="20" />
+<hkern u1="Z" u2="&#xc7;" k="20" />
+<hkern u1="Z" u2="Q" k="20" />
+<hkern u1="Z" u2="O" k="20" />
+<hkern u1="Z" u2="G" k="20" />
+<hkern u1="Z" u2="C" k="20" />
+<hkern u1="[" u2="J" k="-184" />
+<hkern u1="a" u2="&#x201d;" k="20" />
+<hkern u1="a" u2="&#x2019;" k="20" />
+<hkern u1="a" u2="&#x27;" k="20" />
+<hkern u1="a" u2="&#x22;" k="20" />
+<hkern u1="b" u2="&#x201d;" k="20" />
+<hkern u1="b" u2="&#x2019;" k="20" />
+<hkern u1="b" u2="&#xfd;" k="41" />
+<hkern u1="b" u2="z" k="20" />
+<hkern u1="b" u2="y" k="41" />
+<hkern u1="b" u2="x" k="41" />
+<hkern u1="b" u2="w" k="41" />
+<hkern u1="b" u2="v" k="41" />
+<hkern u1="b" u2="&#x27;" k="20" />
+<hkern u1="b" u2="&#x22;" k="20" />
+<hkern u1="c" u2="&#x201d;" k="-41" />
+<hkern u1="c" u2="&#x2019;" k="-41" />
+<hkern u1="c" u2="&#x27;" k="-41" />
+<hkern u1="c" u2="&#x22;" k="-41" />
+<hkern u1="e" u2="&#x201d;" k="20" />
+<hkern u1="e" u2="&#x2019;" k="20" />
+<hkern u1="e" u2="&#xfd;" k="41" />
+<hkern u1="e" u2="z" k="20" />
+<hkern u1="e" u2="y" k="41" />
+<hkern u1="e" u2="x" k="41" />
+<hkern u1="e" u2="w" k="41" />
+<hkern u1="e" u2="v" k="41" />
+<hkern u1="e" u2="&#x27;" k="20" />
+<hkern u1="e" u2="&#x22;" k="20" />
+<hkern u1="f" u2="&#x201d;" k="-123" />
+<hkern u1="f" u2="&#x2019;" k="-123" />
+<hkern u1="f" u2="&#x27;" k="-123" />
+<hkern u1="f" u2="&#x22;" k="-123" />
+<hkern u1="h" u2="&#x201d;" k="20" />
+<hkern u1="h" u2="&#x2019;" k="20" />
+<hkern u1="h" u2="&#x27;" k="20" />
+<hkern u1="h" u2="&#x22;" k="20" />
+<hkern u1="k" u2="&#x153;" k="41" />
+<hkern u1="k" u2="&#xf8;" k="41" />
+<hkern u1="k" u2="&#xf6;" k="41" />
+<hkern u1="k" u2="&#xf5;" k="41" />
+<hkern u1="k" u2="&#xf4;" k="41" />
+<hkern u1="k" u2="&#xf3;" k="41" />
+<hkern u1="k" u2="&#xf2;" k="41" />
+<hkern u1="k" u2="&#xeb;" k="41" />
+<hkern u1="k" u2="&#xea;" k="41" />
+<hkern u1="k" u2="&#xe9;" k="41" />
+<hkern u1="k" u2="&#xe8;" k="41" />
+<hkern u1="k" u2="&#xe7;" k="41" />
+<hkern u1="k" u2="&#xe0;" k="41" />
+<hkern u1="k" u2="q" k="41" />
+<hkern u1="k" u2="o" k="41" />
+<hkern u1="k" u2="e" k="41" />
+<hkern u1="k" u2="d" k="41" />
+<hkern u1="k" u2="c" k="41" />
+<hkern u1="m" u2="&#x201d;" k="20" />
+<hkern u1="m" u2="&#x2019;" k="20" />
+<hkern u1="m" u2="&#x27;" k="20" />
+<hkern u1="m" u2="&#x22;" k="20" />
+<hkern u1="n" u2="&#x201d;" k="20" />
+<hkern u1="n" u2="&#x2019;" k="20" />
+<hkern u1="n" u2="&#x27;" k="20" />
+<hkern u1="n" u2="&#x22;" k="20" />
+<hkern u1="o" u2="&#x201d;" k="20" />
+<hkern u1="o" u2="&#x2019;" k="20" />
+<hkern u1="o" u2="&#xfd;" k="41" />
+<hkern u1="o" u2="z" k="20" />
+<hkern u1="o" u2="y" k="41" />
+<hkern u1="o" u2="x" k="41" />
+<hkern u1="o" u2="w" k="41" />
+<hkern u1="o" u2="v" k="41" />
+<hkern u1="o" u2="&#x27;" k="20" />
+<hkern u1="o" u2="&#x22;" k="20" />
+<hkern u1="p" u2="&#x201d;" k="20" />
+<hkern u1="p" u2="&#x2019;" k="20" />
+<hkern u1="p" u2="&#xfd;" k="41" />
+<hkern u1="p" u2="z" k="20" />
+<hkern u1="p" u2="y" k="41" />
+<hkern u1="p" u2="x" k="41" />
+<hkern u1="p" u2="w" k="41" />
+<hkern u1="p" u2="v" k="41" />
+<hkern u1="p" u2="&#x27;" k="20" />
+<hkern u1="p" u2="&#x22;" k="20" />
+<hkern u1="r" u2="&#x201d;" k="-82" />
+<hkern u1="r" u2="&#x2019;" k="-82" />
+<hkern u1="r" u2="&#x153;" k="41" />
+<hkern u1="r" u2="&#xf8;" k="41" />
+<hkern u1="r" u2="&#xf6;" k="41" />
+<hkern u1="r" u2="&#xf5;" k="41" />
+<hkern u1="r" u2="&#xf4;" k="41" />
+<hkern u1="r" u2="&#xf3;" k="41" />
+<hkern u1="r" u2="&#xf2;" k="41" />
+<hkern u1="r" u2="&#xeb;" k="41" />
+<hkern u1="r" u2="&#xea;" k="41" />
+<hkern u1="r" u2="&#xe9;" k="41" />
+<hkern u1="r" u2="&#xe8;" k="41" />
+<hkern u1="r" u2="&#xe7;" k="41" />
+<hkern u1="r" u2="&#xe6;" k="41" />
+<hkern u1="r" u2="&#xe5;" k="41" />
+<hkern u1="r" u2="&#xe4;" k="41" />
+<hkern u1="r" u2="&#xe3;" k="41" />
+<hkern u1="r" u2="&#xe2;" k="41" />
+<hkern u1="r" u2="&#xe1;" k="41" />
+<hkern u1="r" u2="&#xe0;" k="41" />
+<hkern u1="r" u2="q" k="41" />
+<hkern u1="r" u2="o" k="41" />
+<hkern u1="r" u2="g" k="20" />
+<hkern u1="r" u2="e" k="41" />
+<hkern u1="r" u2="d" k="41" />
+<hkern u1="r" u2="c" k="41" />
+<hkern u1="r" u2="a" k="41" />
+<hkern u1="r" u2="&#x27;" k="-82" />
+<hkern u1="r" u2="&#x22;" k="-82" />
+<hkern u1="t" u2="&#x201d;" k="-41" />
+<hkern u1="t" u2="&#x2019;" k="-41" />
+<hkern u1="t" u2="&#x27;" k="-41" />
+<hkern u1="t" u2="&#x22;" k="-41" />
+<hkern u1="v" u2="&#x201e;" k="82" />
+<hkern u1="v" u2="&#x201d;" k="-82" />
+<hkern u1="v" u2="&#x201a;" k="82" />
+<hkern u1="v" u2="&#x2019;" k="-82" />
+<hkern u1="v" u2="&#x3f;" k="-41" />
+<hkern u1="v" u2="&#x2e;" k="82" />
+<hkern u1="v" u2="&#x2c;" k="82" />
+<hkern u1="v" u2="&#x27;" k="-82" />
+<hkern u1="v" u2="&#x22;" k="-82" />
+<hkern u1="w" u2="&#x201e;" k="82" />
+<hkern u1="w" u2="&#x201d;" k="-82" />
+<hkern u1="w" u2="&#x201a;" k="82" />
+<hkern u1="w" u2="&#x2019;" k="-82" />
+<hkern u1="w" u2="&#x3f;" k="-41" />
+<hkern u1="w" u2="&#x2e;" k="82" />
+<hkern u1="w" u2="&#x2c;" k="82" />
+<hkern u1="w" u2="&#x27;" k="-82" />
+<hkern u1="w" u2="&#x22;" k="-82" />
+<hkern u1="x" u2="&#x153;" k="41" />
+<hkern u1="x" u2="&#xf8;" k="41" />
+<hkern u1="x" u2="&#xf6;" k="41" />
+<hkern u1="x" u2="&#xf5;" k="41" />
+<hkern u1="x" u2="&#xf4;" k="41" />
+<hkern u1="x" u2="&#xf3;" k="41" />
+<hkern u1="x" u2="&#xf2;" k="41" />
+<hkern u1="x" u2="&#xeb;" k="41" />
+<hkern u1="x" u2="&#xea;" k="41" />
+<hkern u1="x" u2="&#xe9;" k="41" />
+<hkern u1="x" u2="&#xe8;" k="41" />
+<hkern u1="x" u2="&#xe7;" k="41" />
+<hkern u1="x" u2="&#xe0;" k="41" />
+<hkern u1="x" u2="q" k="41" />
+<hkern u1="x" u2="o" k="41" />
+<hkern u1="x" u2="e" k="41" />
+<hkern u1="x" u2="d" k="41" />
+<hkern u1="x" u2="c" k="41" />
+<hkern u1="y" u2="&#x201e;" k="82" />
+<hkern u1="y" u2="&#x201d;" k="-82" />
+<hkern u1="y" u2="&#x201a;" k="82" />
+<hkern u1="y" u2="&#x2019;" k="-82" />
+<hkern u1="y" u2="&#x3f;" k="-41" />
+<hkern u1="y" u2="&#x2e;" k="82" />
+<hkern u1="y" u2="&#x2c;" k="82" />
+<hkern u1="y" u2="&#x27;" k="-82" />
+<hkern u1="y" u2="&#x22;" k="-82" />
+<hkern u1="&#x7b;" u2="J" k="-184" />
+<hkern u1="&#xc0;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc0;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc0;" u2="&#x178;" k="123" />
+<hkern u1="&#xc0;" u2="&#x152;" k="41" />
+<hkern u1="&#xc0;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc0;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc0;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc0;" u2="Y" k="123" />
+<hkern u1="&#xc0;" u2="W" k="82" />
+<hkern u1="&#xc0;" u2="V" k="82" />
+<hkern u1="&#xc0;" u2="T" k="143" />
+<hkern u1="&#xc0;" u2="Q" k="41" />
+<hkern u1="&#xc0;" u2="O" k="41" />
+<hkern u1="&#xc0;" u2="J" k="-266" />
+<hkern u1="&#xc0;" u2="G" k="41" />
+<hkern u1="&#xc0;" u2="C" k="41" />
+<hkern u1="&#xc0;" u2="&#x27;" k="143" />
+<hkern u1="&#xc0;" u2="&#x22;" k="143" />
+<hkern u1="&#xc1;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc1;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc1;" u2="&#x178;" k="123" />
+<hkern u1="&#xc1;" u2="&#x152;" k="41" />
+<hkern u1="&#xc1;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc1;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc1;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc1;" u2="Y" k="123" />
+<hkern u1="&#xc1;" u2="W" k="82" />
+<hkern u1="&#xc1;" u2="V" k="82" />
+<hkern u1="&#xc1;" u2="T" k="143" />
+<hkern u1="&#xc1;" u2="Q" k="41" />
+<hkern u1="&#xc1;" u2="O" k="41" />
+<hkern u1="&#xc1;" u2="J" k="-266" />
+<hkern u1="&#xc1;" u2="G" k="41" />
+<hkern u1="&#xc1;" u2="C" k="41" />
+<hkern u1="&#xc1;" u2="&#x27;" k="143" />
+<hkern u1="&#xc1;" u2="&#x22;" k="143" />
+<hkern u1="&#xc2;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc2;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc2;" u2="&#x178;" k="123" />
+<hkern u1="&#xc2;" u2="&#x152;" k="41" />
+<hkern u1="&#xc2;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc2;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc2;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc2;" u2="Y" k="123" />
+<hkern u1="&#xc2;" u2="W" k="82" />
+<hkern u1="&#xc2;" u2="V" k="82" />
+<hkern u1="&#xc2;" u2="T" k="143" />
+<hkern u1="&#xc2;" u2="Q" k="41" />
+<hkern u1="&#xc2;" u2="O" k="41" />
+<hkern u1="&#xc2;" u2="J" k="-266" />
+<hkern u1="&#xc2;" u2="G" k="41" />
+<hkern u1="&#xc2;" u2="C" k="41" />
+<hkern u1="&#xc2;" u2="&#x27;" k="143" />
+<hkern u1="&#xc2;" u2="&#x22;" k="143" />
+<hkern u1="&#xc3;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc3;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc3;" u2="&#x178;" k="123" />
+<hkern u1="&#xc3;" u2="&#x152;" k="41" />
+<hkern u1="&#xc3;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc3;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc3;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc3;" u2="Y" k="123" />
+<hkern u1="&#xc3;" u2="W" k="82" />
+<hkern u1="&#xc3;" u2="V" k="82" />
+<hkern u1="&#xc3;" u2="T" k="143" />
+<hkern u1="&#xc3;" u2="Q" k="41" />
+<hkern u1="&#xc3;" u2="O" k="41" />
+<hkern u1="&#xc3;" u2="J" k="-266" />
+<hkern u1="&#xc3;" u2="G" k="41" />
+<hkern u1="&#xc3;" u2="C" k="41" />
+<hkern u1="&#xc3;" u2="&#x27;" k="143" />
+<hkern u1="&#xc3;" u2="&#x22;" k="143" />
+<hkern u1="&#xc4;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc4;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc4;" u2="&#x178;" k="123" />
+<hkern u1="&#xc4;" u2="&#x152;" k="41" />
+<hkern u1="&#xc4;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc4;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc4;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc4;" u2="Y" k="123" />
+<hkern u1="&#xc4;" u2="W" k="82" />
+<hkern u1="&#xc4;" u2="V" k="82" />
+<hkern u1="&#xc4;" u2="T" k="143" />
+<hkern u1="&#xc4;" u2="Q" k="41" />
+<hkern u1="&#xc4;" u2="O" k="41" />
+<hkern u1="&#xc4;" u2="J" k="-266" />
+<hkern u1="&#xc4;" u2="G" k="41" />
+<hkern u1="&#xc4;" u2="C" k="41" />
+<hkern u1="&#xc4;" u2="&#x27;" k="143" />
+<hkern u1="&#xc4;" u2="&#x22;" k="143" />
+<hkern u1="&#xc5;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc5;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc5;" u2="&#x178;" k="123" />
+<hkern u1="&#xc5;" u2="&#x152;" k="41" />
+<hkern u1="&#xc5;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc5;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc5;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc5;" u2="Y" k="123" />
+<hkern u1="&#xc5;" u2="W" k="82" />
+<hkern u1="&#xc5;" u2="V" k="82" />
+<hkern u1="&#xc5;" u2="T" k="143" />
+<hkern u1="&#xc5;" u2="Q" k="41" />
+<hkern u1="&#xc5;" u2="O" k="41" />
+<hkern u1="&#xc5;" u2="J" k="-266" />
+<hkern u1="&#xc5;" u2="G" k="41" />
+<hkern u1="&#xc5;" u2="C" k="41" />
+<hkern u1="&#xc5;" u2="&#x27;" k="143" />
+<hkern u1="&#xc5;" u2="&#x22;" k="143" />
+<hkern u1="&#xc6;" u2="J" k="-123" />
+<hkern u1="&#xc7;" u2="&#x152;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc7;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc7;" u2="Q" k="41" />
+<hkern u1="&#xc7;" u2="O" k="41" />
+<hkern u1="&#xc7;" u2="G" k="41" />
+<hkern u1="&#xc7;" u2="C" k="41" />
+<hkern u1="&#xc8;" u2="J" k="-123" />
+<hkern u1="&#xc9;" u2="J" k="-123" />
+<hkern u1="&#xca;" u2="J" k="-123" />
+<hkern u1="&#xcb;" u2="J" k="-123" />
+<hkern u1="&#xd0;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd0;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd0;" u2="&#x178;" k="20" />
+<hkern u1="&#xd0;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd0;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd0;" u2="Z" k="20" />
+<hkern u1="&#xd0;" u2="Y" k="20" />
+<hkern u1="&#xd0;" u2="X" k="41" />
+<hkern u1="&#xd0;" u2="W" k="20" />
+<hkern u1="&#xd0;" u2="V" k="20" />
+<hkern u1="&#xd0;" u2="T" k="61" />
+<hkern u1="&#xd0;" u2="A" k="41" />
+<hkern u1="&#xd0;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd0;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd2;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd2;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd2;" u2="&#x178;" k="20" />
+<hkern u1="&#xd2;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd2;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd2;" u2="Z" k="20" />
+<hkern u1="&#xd2;" u2="Y" k="20" />
+<hkern u1="&#xd2;" u2="X" k="41" />
+<hkern u1="&#xd2;" u2="W" k="20" />
+<hkern u1="&#xd2;" u2="V" k="20" />
+<hkern u1="&#xd2;" u2="T" k="61" />
+<hkern u1="&#xd2;" u2="A" k="41" />
+<hkern u1="&#xd2;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd2;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd3;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd3;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd3;" u2="&#x178;" k="20" />
+<hkern u1="&#xd3;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd3;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd3;" u2="Z" k="20" />
+<hkern u1="&#xd3;" u2="Y" k="20" />
+<hkern u1="&#xd3;" u2="X" k="41" />
+<hkern u1="&#xd3;" u2="W" k="20" />
+<hkern u1="&#xd3;" u2="V" k="20" />
+<hkern u1="&#xd3;" u2="T" k="61" />
+<hkern u1="&#xd3;" u2="A" k="41" />
+<hkern u1="&#xd3;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd3;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd4;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd4;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd4;" u2="&#x178;" k="20" />
+<hkern u1="&#xd4;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd4;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd4;" u2="Z" k="20" />
+<hkern u1="&#xd4;" u2="Y" k="20" />
+<hkern u1="&#xd4;" u2="X" k="41" />
+<hkern u1="&#xd4;" u2="W" k="20" />
+<hkern u1="&#xd4;" u2="V" k="20" />
+<hkern u1="&#xd4;" u2="T" k="61" />
+<hkern u1="&#xd4;" u2="A" k="41" />
+<hkern u1="&#xd4;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd4;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd5;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd5;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd5;" u2="&#x178;" k="20" />
+<hkern u1="&#xd5;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd5;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd5;" u2="Z" k="20" />
+<hkern u1="&#xd5;" u2="Y" k="20" />
+<hkern u1="&#xd5;" u2="X" k="41" />
+<hkern u1="&#xd5;" u2="W" k="20" />
+<hkern u1="&#xd5;" u2="V" k="20" />
+<hkern u1="&#xd5;" u2="T" k="61" />
+<hkern u1="&#xd5;" u2="A" k="41" />
+<hkern u1="&#xd5;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd5;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd6;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd6;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd6;" u2="&#x178;" k="20" />
+<hkern u1="&#xd6;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd6;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd6;" u2="Z" k="20" />
+<hkern u1="&#xd6;" u2="Y" k="20" />
+<hkern u1="&#xd6;" u2="X" k="41" />
+<hkern u1="&#xd6;" u2="W" k="20" />
+<hkern u1="&#xd6;" u2="V" k="20" />
+<hkern u1="&#xd6;" u2="T" k="61" />
+<hkern u1="&#xd6;" u2="A" k="41" />
+<hkern u1="&#xd6;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd6;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd8;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd8;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd8;" u2="&#x178;" k="20" />
+<hkern u1="&#xd8;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd8;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd8;" u2="Z" k="20" />
+<hkern u1="&#xd8;" u2="Y" k="20" />
+<hkern u1="&#xd8;" u2="X" k="41" />
+<hkern u1="&#xd8;" u2="W" k="20" />
+<hkern u1="&#xd8;" u2="V" k="20" />
+<hkern u1="&#xd8;" u2="T" k="61" />
+<hkern u1="&#xd8;" u2="A" k="41" />
+<hkern u1="&#xd8;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd8;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd9;" u2="&#x201e;" k="41" />
+<hkern u1="&#xd9;" u2="&#x201a;" k="41" />
+<hkern u1="&#xd9;" u2="&#xc5;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc4;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc3;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc2;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc1;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc0;" k="20" />
+<hkern u1="&#xd9;" u2="A" k="20" />
+<hkern u1="&#xd9;" u2="&#x2e;" k="41" />
+<hkern u1="&#xd9;" u2="&#x2c;" k="41" />
+<hkern u1="&#xda;" u2="&#x201e;" k="41" />
+<hkern u1="&#xda;" u2="&#x201a;" k="41" />
+<hkern u1="&#xda;" u2="&#xc5;" k="20" />
+<hkern u1="&#xda;" u2="&#xc4;" k="20" />
+<hkern u1="&#xda;" u2="&#xc3;" k="20" />
+<hkern u1="&#xda;" u2="&#xc2;" k="20" />
+<hkern u1="&#xda;" u2="&#xc1;" k="20" />
+<hkern u1="&#xda;" u2="&#xc0;" k="20" />
+<hkern u1="&#xda;" u2="A" k="20" />
+<hkern u1="&#xda;" u2="&#x2e;" k="41" />
+<hkern u1="&#xda;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdb;" u2="&#x201e;" k="41" />
+<hkern u1="&#xdb;" u2="&#x201a;" k="41" />
+<hkern u1="&#xdb;" u2="&#xc5;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc4;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc3;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc2;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc1;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc0;" k="20" />
+<hkern u1="&#xdb;" u2="A" k="20" />
+<hkern u1="&#xdb;" u2="&#x2e;" k="41" />
+<hkern u1="&#xdb;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdc;" u2="&#x201e;" k="41" />
+<hkern u1="&#xdc;" u2="&#x201a;" k="41" />
+<hkern u1="&#xdc;" u2="&#xc5;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc4;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc3;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc2;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc1;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc0;" k="20" />
+<hkern u1="&#xdc;" u2="A" k="20" />
+<hkern u1="&#xdc;" u2="&#x2e;" k="41" />
+<hkern u1="&#xdc;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdd;" u2="&#x201e;" k="123" />
+<hkern u1="&#xdd;" u2="&#x201a;" k="123" />
+<hkern u1="&#xdd;" u2="&#x153;" k="102" />
+<hkern u1="&#xdd;" u2="&#x152;" k="41" />
+<hkern u1="&#xdd;" u2="&#xfc;" k="61" />
+<hkern u1="&#xdd;" u2="&#xfb;" k="61" />
+<hkern u1="&#xdd;" u2="&#xfa;" k="61" />
+<hkern u1="&#xdd;" u2="&#xf9;" k="61" />
+<hkern u1="&#xdd;" u2="&#xf8;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf6;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf5;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf4;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf3;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf2;" k="102" />
+<hkern u1="&#xdd;" u2="&#xeb;" k="102" />
+<hkern u1="&#xdd;" u2="&#xea;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe9;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe8;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe7;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe6;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe5;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe4;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe3;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe2;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe1;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe0;" k="102" />
+<hkern u1="&#xdd;" u2="&#xd8;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd6;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd5;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd4;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd3;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd2;" k="41" />
+<hkern u1="&#xdd;" u2="&#xc7;" k="41" />
+<hkern u1="&#xdd;" u2="&#xc5;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc4;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc3;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc2;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc1;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc0;" k="123" />
+<hkern u1="&#xdd;" u2="z" k="41" />
+<hkern u1="&#xdd;" u2="u" k="61" />
+<hkern u1="&#xdd;" u2="s" k="82" />
+<hkern u1="&#xdd;" u2="r" k="61" />
+<hkern u1="&#xdd;" u2="q" k="102" />
+<hkern u1="&#xdd;" u2="p" k="61" />
+<hkern u1="&#xdd;" u2="o" k="102" />
+<hkern u1="&#xdd;" u2="n" k="61" />
+<hkern u1="&#xdd;" u2="m" k="61" />
+<hkern u1="&#xdd;" u2="g" k="41" />
+<hkern u1="&#xdd;" u2="e" k="102" />
+<hkern u1="&#xdd;" u2="d" k="102" />
+<hkern u1="&#xdd;" u2="c" k="102" />
+<hkern u1="&#xdd;" u2="a" k="102" />
+<hkern u1="&#xdd;" u2="Q" k="41" />
+<hkern u1="&#xdd;" u2="O" k="41" />
+<hkern u1="&#xdd;" u2="G" k="41" />
+<hkern u1="&#xdd;" u2="C" k="41" />
+<hkern u1="&#xdd;" u2="A" k="123" />
+<hkern u1="&#xdd;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xdd;" u2="&#x2e;" k="123" />
+<hkern u1="&#xdd;" u2="&#x2c;" k="123" />
+<hkern u1="&#xde;" u2="&#x201e;" k="266" />
+<hkern u1="&#xde;" u2="&#x201a;" k="266" />
+<hkern u1="&#xde;" u2="&#xc5;" k="102" />
+<hkern u1="&#xde;" u2="&#xc4;" k="102" />
+<hkern u1="&#xde;" u2="&#xc3;" k="102" />
+<hkern u1="&#xde;" u2="&#xc2;" k="102" />
+<hkern u1="&#xde;" u2="&#xc1;" k="102" />
+<hkern u1="&#xde;" u2="&#xc0;" k="102" />
+<hkern u1="&#xde;" u2="Z" k="20" />
+<hkern u1="&#xde;" u2="X" k="41" />
+<hkern u1="&#xde;" u2="A" k="102" />
+<hkern u1="&#xde;" u2="&#x2e;" k="266" />
+<hkern u1="&#xde;" u2="&#x2c;" k="266" />
+<hkern u1="&#xe0;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe0;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe0;" u2="&#x27;" k="20" />
+<hkern u1="&#xe0;" u2="&#x22;" k="20" />
+<hkern u1="&#xe1;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe1;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe1;" u2="&#x27;" k="20" />
+<hkern u1="&#xe1;" u2="&#x22;" k="20" />
+<hkern u1="&#xe2;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe2;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe2;" u2="&#x27;" k="20" />
+<hkern u1="&#xe2;" u2="&#x22;" k="20" />
+<hkern u1="&#xe3;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe3;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe3;" u2="&#x27;" k="20" />
+<hkern u1="&#xe3;" u2="&#x22;" k="20" />
+<hkern u1="&#xe4;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe4;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe4;" u2="&#x27;" k="20" />
+<hkern u1="&#xe4;" u2="&#x22;" k="20" />
+<hkern u1="&#xe5;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe5;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe5;" u2="&#x27;" k="20" />
+<hkern u1="&#xe5;" u2="&#x22;" k="20" />
+<hkern u1="&#xe8;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe8;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe8;" u2="&#xfd;" k="41" />
+<hkern u1="&#xe8;" u2="z" k="20" />
+<hkern u1="&#xe8;" u2="y" k="41" />
+<hkern u1="&#xe8;" u2="x" k="41" />
+<hkern u1="&#xe8;" u2="w" k="41" />
+<hkern u1="&#xe8;" u2="v" k="41" />
+<hkern u1="&#xe8;" u2="&#x27;" k="20" />
+<hkern u1="&#xe8;" u2="&#x22;" k="20" />
+<hkern u1="&#xe9;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe9;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe9;" u2="&#xfd;" k="41" />
+<hkern u1="&#xe9;" u2="z" k="20" />
+<hkern u1="&#xe9;" u2="y" k="41" />
+<hkern u1="&#xe9;" u2="x" k="41" />
+<hkern u1="&#xe9;" u2="w" k="41" />
+<hkern u1="&#xe9;" u2="v" k="41" />
+<hkern u1="&#xe9;" u2="&#x27;" k="20" />
+<hkern u1="&#xe9;" u2="&#x22;" k="20" />
+<hkern u1="&#xea;" u2="&#x201d;" k="20" />
+<hkern u1="&#xea;" u2="&#x2019;" k="20" />
+<hkern u1="&#xea;" u2="&#xfd;" k="41" />
+<hkern u1="&#xea;" u2="z" k="20" />
+<hkern u1="&#xea;" u2="y" k="41" />
+<hkern u1="&#xea;" u2="x" k="41" />
+<hkern u1="&#xea;" u2="w" k="41" />
+<hkern u1="&#xea;" u2="v" k="41" />
+<hkern u1="&#xea;" u2="&#x27;" k="20" />
+<hkern u1="&#xea;" u2="&#x22;" k="20" />
+<hkern u1="&#xeb;" u2="&#x201d;" k="20" />
+<hkern u1="&#xeb;" u2="&#x2019;" k="20" />
+<hkern u1="&#xeb;" u2="&#xfd;" k="41" />
+<hkern u1="&#xeb;" u2="z" k="20" />
+<hkern u1="&#xeb;" u2="y" k="41" />
+<hkern u1="&#xeb;" u2="x" k="41" />
+<hkern u1="&#xeb;" u2="w" k="41" />
+<hkern u1="&#xeb;" u2="v" k="41" />
+<hkern u1="&#xeb;" u2="&#x27;" k="20" />
+<hkern u1="&#xeb;" u2="&#x22;" k="20" />
+<hkern u1="&#xf0;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf0;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf0;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf0;" u2="z" k="20" />
+<hkern u1="&#xf0;" u2="y" k="41" />
+<hkern u1="&#xf0;" u2="x" k="41" />
+<hkern u1="&#xf0;" u2="w" k="41" />
+<hkern u1="&#xf0;" u2="v" k="41" />
+<hkern u1="&#xf0;" u2="&#x27;" k="20" />
+<hkern u1="&#xf0;" u2="&#x22;" k="20" />
+<hkern u1="&#xf2;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf2;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf2;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf2;" u2="z" k="20" />
+<hkern u1="&#xf2;" u2="y" k="41" />
+<hkern u1="&#xf2;" u2="x" k="41" />
+<hkern u1="&#xf2;" u2="w" k="41" />
+<hkern u1="&#xf2;" u2="v" k="41" />
+<hkern u1="&#xf2;" u2="&#x27;" k="20" />
+<hkern u1="&#xf2;" u2="&#x22;" k="20" />
+<hkern u1="&#xf3;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf3;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf3;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf3;" u2="z" k="20" />
+<hkern u1="&#xf3;" u2="y" k="41" />
+<hkern u1="&#xf3;" u2="x" k="41" />
+<hkern u1="&#xf3;" u2="w" k="41" />
+<hkern u1="&#xf3;" u2="v" k="41" />
+<hkern u1="&#xf3;" u2="&#x27;" k="20" />
+<hkern u1="&#xf3;" u2="&#x22;" k="20" />
+<hkern u1="&#xf4;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf4;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf4;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf4;" u2="z" k="20" />
+<hkern u1="&#xf4;" u2="y" k="41" />
+<hkern u1="&#xf4;" u2="x" k="41" />
+<hkern u1="&#xf4;" u2="w" k="41" />
+<hkern u1="&#xf4;" u2="v" k="41" />
+<hkern u1="&#xf4;" u2="&#x27;" k="20" />
+<hkern u1="&#xf4;" u2="&#x22;" k="20" />
+<hkern u1="&#xf6;" u2="&#x201d;" k="41" />
+<hkern u1="&#xf6;" u2="&#x2019;" k="41" />
+<hkern u1="&#xf6;" u2="&#x27;" k="41" />
+<hkern u1="&#xf6;" u2="&#x22;" k="41" />
+<hkern u1="&#xf8;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf8;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf8;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf8;" u2="z" k="20" />
+<hkern u1="&#xf8;" u2="y" k="41" />
+<hkern u1="&#xf8;" u2="x" k="41" />
+<hkern u1="&#xf8;" u2="w" k="41" />
+<hkern u1="&#xf8;" u2="v" k="41" />
+<hkern u1="&#xf8;" u2="&#x27;" k="20" />
+<hkern u1="&#xf8;" u2="&#x22;" k="20" />
+<hkern u1="&#xfd;" u2="&#x201e;" k="82" />
+<hkern u1="&#xfd;" u2="&#x201d;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x201a;" k="82" />
+<hkern u1="&#xfd;" u2="&#x2019;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xfd;" u2="&#x2e;" k="82" />
+<hkern u1="&#xfd;" u2="&#x2c;" k="82" />
+<hkern u1="&#xfd;" u2="&#x27;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x22;" k="-82" />
+<hkern u1="&#xfe;" u2="&#x201d;" k="20" />
+<hkern u1="&#xfe;" u2="&#x2019;" k="20" />
+<hkern u1="&#xfe;" u2="&#xfd;" k="41" />
+<hkern u1="&#xfe;" u2="z" k="20" />
+<hkern u1="&#xfe;" u2="y" k="41" />
+<hkern u1="&#xfe;" u2="x" k="41" />
+<hkern u1="&#xfe;" u2="w" k="41" />
+<hkern u1="&#xfe;" u2="v" k="41" />
+<hkern u1="&#xfe;" u2="&#x27;" k="20" />
+<hkern u1="&#xfe;" u2="&#x22;" k="20" />
+<hkern u1="&#xff;" u2="&#x201e;" k="82" />
+<hkern u1="&#xff;" u2="&#x201d;" k="-82" />
+<hkern u1="&#xff;" u2="&#x201a;" k="82" />
+<hkern u1="&#xff;" u2="&#x2019;" k="-82" />
+<hkern u1="&#xff;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xff;" u2="&#x2e;" k="82" />
+<hkern u1="&#xff;" u2="&#x2c;" k="82" />
+<hkern u1="&#xff;" u2="&#x27;" k="-82" />
+<hkern u1="&#xff;" u2="&#x22;" k="-82" />
+<hkern u1="&#x152;" u2="J" k="-123" />
+<hkern u1="&#x178;" u2="&#x201e;" k="123" />
+<hkern u1="&#x178;" u2="&#x201a;" k="123" />
+<hkern u1="&#x178;" u2="&#x153;" k="102" />
+<hkern u1="&#x178;" u2="&#x152;" k="41" />
+<hkern u1="&#x178;" u2="&#xfc;" k="61" />
+<hkern u1="&#x178;" u2="&#xfb;" k="61" />
+<hkern u1="&#x178;" u2="&#xfa;" k="61" />
+<hkern u1="&#x178;" u2="&#xf9;" k="61" />
+<hkern u1="&#x178;" u2="&#xf8;" k="102" />
+<hkern u1="&#x178;" u2="&#xf6;" k="102" />
+<hkern u1="&#x178;" u2="&#xf5;" k="102" />
+<hkern u1="&#x178;" u2="&#xf4;" k="102" />
+<hkern u1="&#x178;" u2="&#xf3;" k="102" />
+<hkern u1="&#x178;" u2="&#xf2;" k="102" />
+<hkern u1="&#x178;" u2="&#xeb;" k="102" />
+<hkern u1="&#x178;" u2="&#xea;" k="102" />
+<hkern u1="&#x178;" u2="&#xe9;" k="102" />
+<hkern u1="&#x178;" u2="&#xe8;" k="102" />
+<hkern u1="&#x178;" u2="&#xe7;" k="102" />
+<hkern u1="&#x178;" u2="&#xe6;" k="102" />
+<hkern u1="&#x178;" u2="&#xe5;" k="102" />
+<hkern u1="&#x178;" u2="&#xe4;" k="102" />
+<hkern u1="&#x178;" u2="&#xe3;" k="102" />
+<hkern u1="&#x178;" u2="&#xe2;" k="102" />
+<hkern u1="&#x178;" u2="&#xe1;" k="102" />
+<hkern u1="&#x178;" u2="&#xe0;" k="102" />
+<hkern u1="&#x178;" u2="&#xd8;" k="41" />
+<hkern u1="&#x178;" u2="&#xd6;" k="41" />
+<hkern u1="&#x178;" u2="&#xd5;" k="41" />
+<hkern u1="&#x178;" u2="&#xd4;" k="41" />
+<hkern u1="&#x178;" u2="&#xd3;" k="41" />
+<hkern u1="&#x178;" u2="&#xd2;" k="41" />
+<hkern u1="&#x178;" u2="&#xc7;" k="41" />
+<hkern u1="&#x178;" u2="&#xc5;" k="123" />
+<hkern u1="&#x178;" u2="&#xc4;" k="123" />
+<hkern u1="&#x178;" u2="&#xc3;" k="123" />
+<hkern u1="&#x178;" u2="&#xc2;" k="123" />
+<hkern u1="&#x178;" u2="&#xc1;" k="123" />
+<hkern u1="&#x178;" u2="&#xc0;" k="123" />
+<hkern u1="&#x178;" u2="z" k="41" />
+<hkern u1="&#x178;" u2="u" k="61" />
+<hkern u1="&#x178;" u2="s" k="82" />
+<hkern u1="&#x178;" u2="r" k="61" />
+<hkern u1="&#x178;" u2="q" k="102" />
+<hkern u1="&#x178;" u2="p" k="61" />
+<hkern u1="&#x178;" u2="o" k="102" />
+<hkern u1="&#x178;" u2="n" k="61" />
+<hkern u1="&#x178;" u2="m" k="61" />
+<hkern u1="&#x178;" u2="g" k="41" />
+<hkern u1="&#x178;" u2="e" k="102" />
+<hkern u1="&#x178;" u2="d" k="102" />
+<hkern u1="&#x178;" u2="c" k="102" />
+<hkern u1="&#x178;" u2="a" k="102" />
+<hkern u1="&#x178;" u2="Q" k="41" />
+<hkern u1="&#x178;" u2="O" k="41" />
+<hkern u1="&#x178;" u2="G" k="41" />
+<hkern u1="&#x178;" u2="C" k="41" />
+<hkern u1="&#x178;" u2="A" k="123" />
+<hkern u1="&#x178;" u2="&#x3f;" k="-41" />
+<hkern u1="&#x178;" u2="&#x2e;" k="123" />
+<hkern u1="&#x178;" u2="&#x2c;" k="123" />
+<hkern u1="&#x2013;" u2="T" k="82" />
+<hkern u1="&#x2014;" u2="T" k="82" />
+<hkern u1="&#x2018;" u2="&#x178;" k="-20" />
+<hkern u1="&#x2018;" u2="&#x153;" k="123" />
+<hkern u1="&#x2018;" u2="&#xfc;" k="61" />
+<hkern u1="&#x2018;" u2="&#xfb;" k="61" />
+<hkern u1="&#x2018;" u2="&#xfa;" k="61" />
+<hkern u1="&#x2018;" u2="&#xf9;" k="61" />
+<hkern u1="&#x2018;" u2="&#xf8;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf6;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf5;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf4;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf3;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf2;" k="123" />
+<hkern u1="&#x2018;" u2="&#xeb;" k="123" />
+<hkern u1="&#x2018;" u2="&#xea;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe9;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe8;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe7;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe6;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe5;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe4;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe3;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe2;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe1;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe0;" k="123" />
+<hkern u1="&#x2018;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x2018;" u2="&#xc5;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc4;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc3;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc2;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc1;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc0;" k="143" />
+<hkern u1="&#x2018;" u2="u" k="61" />
+<hkern u1="&#x2018;" u2="s" k="61" />
+<hkern u1="&#x2018;" u2="r" k="61" />
+<hkern u1="&#x2018;" u2="q" k="123" />
+<hkern u1="&#x2018;" u2="p" k="61" />
+<hkern u1="&#x2018;" u2="o" k="123" />
+<hkern u1="&#x2018;" u2="n" k="61" />
+<hkern u1="&#x2018;" u2="m" k="61" />
+<hkern u1="&#x2018;" u2="g" k="61" />
+<hkern u1="&#x2018;" u2="e" k="123" />
+<hkern u1="&#x2018;" u2="d" k="123" />
+<hkern u1="&#x2018;" u2="c" k="123" />
+<hkern u1="&#x2018;" u2="a" k="82" />
+<hkern u1="&#x2018;" u2="Y" k="-20" />
+<hkern u1="&#x2018;" u2="W" k="-41" />
+<hkern u1="&#x2018;" u2="V" k="-41" />
+<hkern u1="&#x2018;" u2="T" k="-41" />
+<hkern u1="&#x2018;" u2="A" k="143" />
+<hkern u1="&#x2019;" u2="&#x178;" k="-20" />
+<hkern u1="&#x2019;" u2="&#x153;" k="123" />
+<hkern u1="&#x2019;" u2="&#xfc;" k="61" />
+<hkern u1="&#x2019;" u2="&#xfb;" k="61" />
+<hkern u1="&#x2019;" u2="&#xfa;" k="61" />
+<hkern u1="&#x2019;" u2="&#xf9;" k="61" />
+<hkern u1="&#x2019;" u2="&#xf8;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf6;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf5;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf4;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf3;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf2;" k="123" />
+<hkern u1="&#x2019;" u2="&#xeb;" k="123" />
+<hkern u1="&#x2019;" u2="&#xea;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe9;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe8;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe7;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe6;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe5;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe4;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe3;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe2;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe1;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe0;" k="123" />
+<hkern u1="&#x2019;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x2019;" u2="&#xc5;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc4;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc3;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc2;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc1;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc0;" k="143" />
+<hkern u1="&#x2019;" u2="u" k="61" />
+<hkern u1="&#x2019;" u2="s" k="61" />
+<hkern u1="&#x2019;" u2="r" k="61" />
+<hkern u1="&#x2019;" u2="q" k="123" />
+<hkern u1="&#x2019;" u2="p" k="61" />
+<hkern u1="&#x2019;" u2="o" k="123" />
+<hkern u1="&#x2019;" u2="n" k="61" />
+<hkern u1="&#x2019;" u2="m" k="61" />
+<hkern u1="&#x2019;" u2="g" k="61" />
+<hkern u1="&#x2019;" u2="e" k="123" />
+<hkern u1="&#x2019;" u2="d" k="123" />
+<hkern u1="&#x2019;" u2="c" k="123" />
+<hkern u1="&#x2019;" u2="a" k="82" />
+<hkern u1="&#x2019;" u2="Y" k="-20" />
+<hkern u1="&#x2019;" u2="W" k="-41" />
+<hkern u1="&#x2019;" u2="V" k="-41" />
+<hkern u1="&#x2019;" u2="T" k="-41" />
+<hkern u1="&#x2019;" u2="A" k="143" />
+<hkern u1="&#x201a;" u2="&#x178;" k="123" />
+<hkern u1="&#x201a;" u2="&#x152;" k="102" />
+<hkern u1="&#x201a;" u2="&#xdd;" k="123" />
+<hkern u1="&#x201a;" u2="&#xdc;" k="41" />
+<hkern u1="&#x201a;" u2="&#xdb;" k="41" />
+<hkern u1="&#x201a;" u2="&#xda;" k="41" />
+<hkern u1="&#x201a;" u2="&#xd9;" k="41" />
+<hkern u1="&#x201a;" u2="&#xd8;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd6;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd5;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd4;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd3;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd2;" k="102" />
+<hkern u1="&#x201a;" u2="&#xc7;" k="102" />
+<hkern u1="&#x201a;" u2="Y" k="123" />
+<hkern u1="&#x201a;" u2="W" k="123" />
+<hkern u1="&#x201a;" u2="V" k="123" />
+<hkern u1="&#x201a;" u2="U" k="41" />
+<hkern u1="&#x201a;" u2="T" k="143" />
+<hkern u1="&#x201a;" u2="Q" k="102" />
+<hkern u1="&#x201a;" u2="O" k="102" />
+<hkern u1="&#x201a;" u2="G" k="102" />
+<hkern u1="&#x201a;" u2="C" k="102" />
+<hkern u1="&#x201c;" u2="&#x178;" k="-20" />
+<hkern u1="&#x201c;" u2="&#x153;" k="123" />
+<hkern u1="&#x201c;" u2="&#xfc;" k="61" />
+<hkern u1="&#x201c;" u2="&#xfb;" k="61" />
+<hkern u1="&#x201c;" u2="&#xfa;" k="61" />
+<hkern u1="&#x201c;" u2="&#xf9;" k="61" />
+<hkern u1="&#x201c;" u2="&#xf8;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf6;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf5;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf4;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf3;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf2;" k="123" />
+<hkern u1="&#x201c;" u2="&#xeb;" k="123" />
+<hkern u1="&#x201c;" u2="&#xea;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe9;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe8;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe7;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe6;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe5;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe4;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe3;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe2;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe1;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe0;" k="123" />
+<hkern u1="&#x201c;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x201c;" u2="&#xc5;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc4;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc3;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc2;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc1;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc0;" k="143" />
+<hkern u1="&#x201c;" u2="u" k="61" />
+<hkern u1="&#x201c;" u2="s" k="61" />
+<hkern u1="&#x201c;" u2="r" k="61" />
+<hkern u1="&#x201c;" u2="q" k="123" />
+<hkern u1="&#x201c;" u2="p" k="61" />
+<hkern u1="&#x201c;" u2="o" k="123" />
+<hkern u1="&#x201c;" u2="n" k="61" />
+<hkern u1="&#x201c;" u2="m" k="61" />
+<hkern u1="&#x201c;" u2="g" k="61" />
+<hkern u1="&#x201c;" u2="e" k="123" />
+<hkern u1="&#x201c;" u2="d" k="123" />
+<hkern u1="&#x201c;" u2="c" k="123" />
+<hkern u1="&#x201c;" u2="a" k="82" />
+<hkern u1="&#x201c;" u2="Y" k="-20" />
+<hkern u1="&#x201c;" u2="W" k="-41" />
+<hkern u1="&#x201c;" u2="V" k="-41" />
+<hkern u1="&#x201c;" u2="T" k="-41" />
+<hkern u1="&#x201c;" u2="A" k="143" />
+<hkern u1="&#x201e;" u2="&#x178;" k="123" />
+<hkern u1="&#x201e;" u2="&#x152;" k="102" />
+<hkern u1="&#x201e;" u2="&#xdd;" k="123" />
+<hkern u1="&#x201e;" u2="&#xdc;" k="41" />
+<hkern u1="&#x201e;" u2="&#xdb;" k="41" />
+<hkern u1="&#x201e;" u2="&#xda;" k="41" />
+<hkern u1="&#x201e;" u2="&#xd9;" k="41" />
+<hkern u1="&#x201e;" u2="&#xd8;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd6;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd5;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd4;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd3;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd2;" k="102" />
+<hkern u1="&#x201e;" u2="&#xc7;" k="102" />
+<hkern u1="&#x201e;" u2="Y" k="123" />
+<hkern u1="&#x201e;" u2="W" k="123" />
+<hkern u1="&#x201e;" u2="V" k="123" />
+<hkern u1="&#x201e;" u2="U" k="41" />
+<hkern u1="&#x201e;" u2="T" k="143" />
+<hkern u1="&#x201e;" u2="Q" k="102" />
+<hkern u1="&#x201e;" u2="O" k="102" />
+<hkern u1="&#x201e;" u2="G" k="102" />
+<hkern u1="&#x201e;" u2="C" k="102" />
+</font>
+</defs></svg> 
\ No newline at end of file
diff --git a/html/tower/docs/fonts/OpenSans-Light-webfont.woff b/html/tower/docs/fonts/OpenSans-Light-webfont.woff
new file mode 100644
index 0000000..e786074
--- /dev/null
+++ b/html/tower/docs/fonts/OpenSans-Light-webfont.woff
Binary files differdiff --git a/html/tower/docs/fonts/OpenSans-LightItalic-webfont.eot b/html/tower/docs/fonts/OpenSans-LightItalic-webfont.eot
new file mode 100644
index 0000000..8f44592
--- /dev/null
+++ b/html/tower/docs/fonts/OpenSans-LightItalic-webfont.eot
Binary files differdiff --git a/html/tower/docs/fonts/OpenSans-LightItalic-webfont.svg b/html/tower/docs/fonts/OpenSans-LightItalic-webfont.svg
new file mode 100644
index 0000000..431d7e3
--- /dev/null
+++ b/html/tower/docs/fonts/OpenSans-LightItalic-webfont.svg
@@ -0,0 +1,1835 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata></metadata>
+<defs>
+<font id="open_sanslight_italic" horiz-adv-x="1128" >
+<font-face units-per-em="2048" ascent="1638" descent="-410" />
+<missing-glyph horiz-adv-x="532" />
+<glyph unicode="&#xfb00;" horiz-adv-x="1155" d="M-131 -492q-48 0 -102 19v90q53 -16 100 -16q88 0 134 53t75 186l246 1166h-205l14 67l205 14l35 160q35 168 116.5 244t227.5 76q73 0 166 -31l-25 -80q-87 27 -147 27q-96 0 -153.5 -53.5t-84.5 -178.5l-35 -164h477l35 160q35 168 116.5 244t227.5 76q73 0 166 -31 l-24 -80q-87 27 -148 27q-97 0 -154.5 -54.5t-82.5 -177.5l-35 -164h248l-17 -81h-248l-252 -1190q-34 -165 -105.5 -236.5t-193.5 -71.5q-48 0 -102 19v90q53 -16 100 -16q88 0 134 53t75 186l244 1166h-477l-252 -1190q-33 -161 -104 -234.5t-195 -73.5z" />
+<glyph unicode="&#xfb01;" horiz-adv-x="1040" d="M0 0zM739 0h-98l231 1087h96zM915 1366q0 55 22 88t60 33q57 0 57 -72q0 -57 -22 -90t-57 -33q-29 0 -44.5 19.5t-15.5 54.5zM-148 -492q-48 0 -102 19v90q53 -16 100 -16q88 0 134 53t75 186l246 1166h-205l14 67l205 14l35 160q35 168 116.5 244t227.5 76q73 0 166 -31 l-25 -80q-87 27 -147 27q-96 0 -153.5 -53.5t-84.5 -178.5l-35 -164h248l-16 -81h-248l-252 -1190q-33 -161 -104 -234.5t-195 -73.5z" />
+<glyph unicode="&#xfb02;" horiz-adv-x="1042" d="M0 0zM737 0h-94l334 1556h94zM-148 -492q-48 0 -102 19v90q53 -16 100 -16q88 0 134 53t75 186l246 1166h-205l14 67l205 14l35 160q35 168 116.5 244t227.5 76q73 0 166 -31l-25 -80q-87 27 -147 27q-96 0 -153.5 -53.5t-84.5 -178.5l-35 -164h248l-16 -81h-248 l-252 -1190q-33 -161 -104 -234.5t-195 -73.5z" />
+<glyph unicode="&#xfb03;" horiz-adv-x="1616" d="M0 0zM-148 -492q-48 0 -102 19v90q53 -16 100 -16q88 0 134 53t75 186l246 1166h-205l14 67l205 14l35 160q35 168 116.5 244t227.5 76q73 0 166 -31l-25 -80q-87 27 -147 27q-96 0 -153.5 -53.5t-84.5 -178.5l-35 -164h477l35 160q35 168 116.5 244t227.5 76 q73 0 166 -31l-24 -80q-87 27 -148 27q-97 0 -154.5 -54.5t-82.5 -177.5l-35 -164h248l-17 -81h-248l-252 -1190q-34 -165 -105.5 -236.5t-193.5 -71.5q-48 0 -102 19v90q53 -16 100 -16q88 0 134 53t75 186l244 1166h-477l-252 -1190q-33 -161 -104 -234.5t-195 -73.5z M1315 0h-98l231 1087h96zM1491 1366q0 55 22 88t60 33q57 0 57 -72q0 -57 -22 -90t-57 -33q-29 0 -44.5 19.5t-15.5 54.5z" />
+<glyph unicode="&#xfb04;" horiz-adv-x="1626" d="M0 0zM-148 -492q-48 0 -102 19v90q53 -16 100 -16q88 0 134 53t75 186l246 1166h-205l14 67l205 14l35 160q35 168 116.5 244t227.5 76q73 0 166 -31l-25 -80q-87 27 -147 27q-96 0 -153.5 -53.5t-84.5 -178.5l-35 -164h477l35 160q35 168 116.5 244t227.5 76 q73 0 166 -31l-24 -80q-87 27 -148 27q-97 0 -154.5 -54.5t-82.5 -177.5l-35 -164h248l-17 -81h-248l-252 -1190q-34 -165 -105.5 -236.5t-193.5 -71.5q-48 0 -102 19v90q53 -16 100 -16q88 0 134 53t75 186l244 1166h-477l-252 -1190q-33 -161 -104 -234.5t-195 -73.5z M1321 0h-94l334 1556h94z" />
+<glyph horiz-adv-x="2048" />
+<glyph horiz-adv-x="2048" />
+<glyph unicode="&#xd;" horiz-adv-x="1044" />
+<glyph unicode=" "  horiz-adv-x="532" />
+<glyph unicode="&#x09;" horiz-adv-x="532" />
+<glyph unicode="&#xa0;" horiz-adv-x="532" />
+<glyph unicode="!" horiz-adv-x="502" d="M248 377h-62l203 1085h119zM80 57q0 56 25 88.5t69 32.5q66 0 66 -72q0 -53 -25 -87.5t-68 -34.5q-67 0 -67 73z" />
+<glyph unicode="&#x22;" horiz-adv-x="721" d="M455 1462l-146 -528h-61l80 528h127zM784 1462l-145 -528h-61l79 528h127z" />
+<glyph unicode="#" horiz-adv-x="1323" d="M389 530l119 398h-297l8 80h311l134 454h90l-136 -454h365l135 454h86l-135 -454h285l-8 -80h-302l-118 -398h303l-8 -79h-320l-133 -451h-90l135 451h-360l-134 -451h-88l134 451h-283l8 79h299zM475 530h363l120 398h-362z" />
+<glyph unicode="$" d="M928 467q0 -151 -110.5 -243t-297.5 -103l-53 -240h-82l51 240q-79 2 -158 18t-137 43v94q65 -34 153.5 -53.5t160.5 -19.5l110 512q-110 53 -153 91t-66.5 87.5t-23.5 116.5q0 155 105.5 250.5t272.5 99.5l41 192h80l-41 -192q149 -5 277 -68l-35 -78q-110 61 -256 70 l-109 -514q124 -60 172.5 -99.5t73.5 -88.5t25 -115zM537 203q142 7 223.5 74.5t81.5 183.5q0 76 -48 129.5t-157 97.5zM686 1284q-134 -9 -205 -80t-71 -186q0 -78 37 -128.5t137 -96.5z" />
+<glyph unicode="%" horiz-adv-x="1556" d="M1458 1462l-1139 -1462h-106l1135 1462h110zM1520 612q0 -175 -50 -327t-136 -230t-197 -78q-112 0 -172 75.5t-60 223.5q0 160 52 312t138 229.5t193 77.5q121 0 176.5 -71.5t55.5 -211.5zM1284 821q-80 0 -146.5 -72.5t-106.5 -202.5t-40 -263q0 -116 41 -174t113 -58 q130 0 209.5 166.5t79.5 386.5q0 109 -36 163t-114 54zM760 1198q0 -175 -50 -327t-136 -230t-197 -78q-112 0 -172 75.5t-60 223.5q0 160 52 312t138 229.5t193 77.5q232 0 232 -283zM524 1407q-79 0 -145 -71.5t-107 -203t-41 -264.5q0 -115 41 -173t113 -58 q84 0 148.5 72t102.5 204t38 277q0 109 -36 163t-114 54z" />
+<glyph unicode="&#x26;" horiz-adv-x="1331" d="M748 1395q-125 0 -194 -68t-69 -192q0 -132 109 -281q203 89 279.5 163.5t76.5 182.5q0 91 -56.5 143t-145.5 52zM465 63q108 0 211.5 42.5t222.5 146.5l-352 493q-164 -79 -232 -134.5t-103.5 -124t-35.5 -158.5q0 -119 78 -192t211 -73zM78 324q0 162 99 277.5 t325 215.5l-41 67q-78 128 -78 251q0 157 101 253.5t264 96.5q145 0 227 -76.5t82 -206.5q0 -85 -41 -154t-121 -128t-256 -138l330 -463q73 75 135.5 176.5t91.5 186.5h111q-102 -247 -285 -436l184 -246h-123l-131 184q-121 -108 -242 -156t-266 -48q-167 0 -266.5 94 t-99.5 250z" />
+<glyph unicode="'" horiz-adv-x="403" d="M461 1462l-146 -528h-61l80 528h127z" />
+<glyph unicode="(" horiz-adv-x="526" d="M104 270q0 343 122 633t382 559h105q-259 -276 -384.5 -568t-125.5 -618q0 -317 127 -600h-80q-146 262 -146 594z" />
+<glyph unicode=")" horiz-adv-x="526" d="M453 868q0 -345 -123.5 -636t-380.5 -556h-105q257 274 383.5 566.5t126.5 619.5q0 148 -28.5 294t-98.5 306h80q146 -262 146 -594z" />
+<glyph unicode="*" horiz-adv-x="1137" d="M834 1540l-109 -405l438 8l-8 -107l-416 29l181 -401l-115 -37l-135 417l-285 -348l-78 78l318 318l-392 125l39 102l394 -168l47 408z" />
+<glyph unicode="+" d="M563 672h-401v100h401v404h101v-404h401v-100h-401v-400h-101v400z" />
+<glyph unicode="," horiz-adv-x="451" d="M250 238l8 -23q-34 -92 -114 -233.5t-160 -245.5h-74q79 132 141 271t88 231h111z" />
+<glyph unicode="-" horiz-adv-x="629" d="M82 502l18 90h457l-16 -90h-459z" />
+<glyph unicode="." horiz-adv-x="485" d="M82 55q0 56 25 88.5t69 32.5q66 0 66 -72q0 -53 -25 -87.5t-67 -34.5q-68 0 -68 73z" />
+<glyph unicode="/" horiz-adv-x="641" d="M827 1462l-817 -1462h-110l815 1462h112z" />
+<glyph unicode="0" d="M1075 1016q0 -201 -41 -405t-116.5 -346t-183.5 -213.5t-242 -71.5q-176 0 -264.5 126.5t-88.5 387.5q0 186 44.5 381.5t124 334t187 207t240.5 68.5q340 0 340 -469zM723 1397q-134 0 -241.5 -113t-173.5 -329t-66 -451q0 -222 62.5 -329t197.5 -107q139 0 244 112 t166 337t61 489q0 199 -59.5 295t-190.5 96z" />
+<glyph unicode="1" d="M537 0h-105l225 1055q19 92 74 293q-42 -36 -75.5 -61t-249.5 -161l-52 78l406 258h90z" />
+<glyph unicode="2" d="M909 0h-870l22 104l449 402q198 177 284 276.5t126.5 186.5t40.5 180q0 112 -66 178t-197 66q-176 0 -333 -129l-54 73q180 146 394 146q173 0 268.5 -85t95.5 -237q0 -110 -43.5 -208.5t-141.5 -211.5t-311 -303l-383 -338v-4h736z" />
+<glyph unicode="3" d="M1049 1174q0 -162 -106 -275t-286 -143v-4q117 -24 185.5 -115.5t68.5 -226.5q0 -134 -64 -233t-179.5 -148t-274.5 -49q-96 0 -184.5 20.5t-153.5 52.5v101q172 -86 344 -86q197 0 303.5 89.5t106.5 252.5q0 145 -89 223t-247 78h-117l21 96h110q209 0 333 95.5 t124 258.5q0 114 -63.5 175t-188.5 61q-167 0 -344 -131l-49 75q84 67 188 104.5t218 37.5q161 0 252.5 -82.5t91.5 -226.5z" />
+<glyph unicode="4" d="M1071 371h-264l-80 -371h-96l80 371h-688l20 96l881 1010h118l-215 -1018h265zM729 459q79 369 119 558.5t86 354.5h-4q-66 -91 -129 -166l-651 -747h579z" />
+<glyph unicode="5" d="M582 879q188 0 292.5 -102t104.5 -279q0 -237 -148 -377.5t-407 -140.5q-84 0 -177.5 20t-158.5 51v107q170 -90 340 -90q208 0 328.5 114.5t120.5 313.5q0 140 -85 219.5t-225 79.5q-133 0 -243 -41l-66 49l193 659h624l-18 -96h-541l-149 -516q98 29 215 29z" />
+<glyph unicode="6" d="M170 428q0 283 105 544.5t269.5 385t383.5 123.5q123 0 182 -21l-18 -90q-86 23 -170 23q-233 0 -393.5 -174t-233.5 -502h8q68 94 164 143t211 49q161 0 250.5 -100.5t89.5 -282.5q0 -156 -60 -281t-171 -195t-257 -70q-171 0 -265.5 119t-94.5 329zM543 68 q112 0 196.5 58.5t130 162t45.5 229.5q0 146 -67 224.5t-195 78.5q-81 0 -154 -31.5t-129 -87t-78 -115t-22 -173.5q0 -164 72.5 -255t200.5 -91z" />
+<glyph unicode="7" d="M244 0l796 1366h-766l23 96h858l-20 -110l-779 -1352h-112z" />
+<glyph unicode="8" d="M737 1485q163 0 258 -85t95 -229q0 -138 -84 -234.5t-285 -172.5q130 -78 190 -170.5t60 -208.5t-58 -208t-165.5 -144.5t-260.5 -52.5q-178 0 -283.5 92.5t-105.5 253.5q0 159 100.5 268.5t321.5 187.5q-100 72 -144 152t-44 180q0 159 114 265t291 106zM610 733 q-218 -73 -313.5 -167.5t-95.5 -225.5q0 -136 77.5 -206.5t219.5 -70.5q168 0 270 91t102 233q0 104 -62 189t-198 157zM727 1399q-130 0 -214.5 -82t-84.5 -203q0 -91 41.5 -159t157.5 -142q192 62 279 144t87 206q0 109 -70.5 172.5t-195.5 63.5z" />
+<glyph unicode="9" d="M1059 1032q0 -288 -101.5 -548t-263.5 -382t-393 -122q-114 0 -186 22v90q87 -29 192 -29q474 0 627 674h-8q-140 -192 -367 -192q-162 0 -255 105t-93 284q0 155 59.5 281t170.5 196t257 70q174 0 267.5 -115.5t93.5 -333.5zM686 1393q-112 0 -197.5 -58.5 t-130.5 -162.5t-45 -230q0 -145 67.5 -225t192.5 -80q83 0 157.5 32.5t129 87.5t76.5 114t22 176q0 166 -71 256t-201 90z" />
+<glyph unicode=":" horiz-adv-x="485" d="M260 989q0 57 25.5 89t68.5 32q66 0 66 -72q0 -55 -25 -89t-67 -34q-68 0 -68 74zM102 55q0 56 25.5 88.5t69.5 32.5q65 0 65 -72q0 -55 -25.5 -88.5t-66.5 -33.5q-68 0 -68 73z" />
+<glyph unicode=";" horiz-adv-x="485" d="M287 238l8 -23q-35 -96 -118.5 -242t-156.5 -237h-73q79 132 141 271t88 231h111zM266 989q0 57 25.5 89t68.5 32q66 0 66 -72q0 -55 -25 -89t-67 -34q-68 0 -68 74z" />
+<glyph unicode="&#x3c;" d="M1051 262l-914 414v74l914 471v-103l-801 -399l801 -350v-107z" />
+<glyph unicode="=" d="M168 885v100h903v-100h-903zM168 461v98h903v-98h-903z" />
+<glyph unicode="&#x3e;" d="M170 369l801 350l-801 399v103l915 -471v-74l-915 -414v107z" />
+<glyph unicode="?" horiz-adv-x="799" d="M242 362l6 29q29 132 82 206.5t157 147.5q118 84 175 145.5t86.5 127.5t29.5 141q0 108 -67.5 170t-182.5 62q-139 0 -307 -101l-39 86q85 49 171.5 78t187.5 29q159 0 250.5 -84.5t91.5 -229.5q0 -127 -66 -234t-231 -226q-85 -61 -132.5 -108.5t-73 -95t-46.5 -143.5 h-92zM170 59q0 56 25 88.5t69 32.5q66 0 66 -71q0 -54 -24.5 -88.5t-67.5 -34.5q-68 0 -68 73z" />
+<glyph unicode="@" horiz-adv-x="1724" d="M1688 858q0 -179 -56 -323.5t-154.5 -227t-211.5 -82.5q-98 0 -154.5 55t-56.5 144h-4q-54 -97 -132.5 -148t-168.5 -51q-112 0 -178 73t-66 202q0 156 63 283t178 198.5t261 71.5q122 0 252 -52l-84 -315q-39 -140 -39 -221q0 -71 34.5 -111.5t100.5 -40.5 q86 0 160 73.5t117.5 198t43.5 251.5q0 156 -65 277t-187 188t-292 67q-235 0 -424.5 -108.5t-295.5 -304t-106 -439.5q0 -288 155 -449t435 -161q207 0 420 82v-90q-210 -82 -428 -82q-203 0 -357.5 82.5t-238.5 239t-84 370.5q0 276 121.5 493.5t337 337t473.5 119.5 q189 0 330.5 -72.5t221 -213t79.5 -314.5zM1008 969q-113 0 -204.5 -59t-142.5 -165.5t-51 -238.5q0 -92 40.5 -142.5t113.5 -50.5q101 0 180.5 89t124.5 255l78 289q-66 23 -139 23z" />
+<glyph unicode="A" horiz-adv-x="1059" d="M805 520h-512l-287 -520h-117l822 1468h67l201 -1468h-105zM793 612l-39 291q-31 242 -39 402q-30 -63 -64.5 -130t-306.5 -563h449z" />
+<glyph unicode="B" horiz-adv-x="1202" d="M412 1462h379q190 0 290.5 -84t100.5 -241q0 -153 -90 -249t-254 -124v-4q125 -31 188.5 -113.5t63.5 -204.5q0 -205 -140.5 -323.5t-390.5 -118.5h-457zM377 811h278q206 0 313 81t107 238q0 119 -78 180.5t-229 61.5h-272zM358 721l-135 -631h342q201 0 309.5 87.5 t108.5 256.5q0 145 -90 216t-275 71h-260z" />
+<glyph unicode="C" horiz-adv-x="1169" d="M961 1389q-197 0 -351.5 -104.5t-245 -304.5t-90.5 -441q0 -225 110.5 -346t317.5 -121q140 0 304 51v-94q-156 -49 -316 -49q-252 0 -386 145t-134 410q0 266 104.5 488t284.5 341t402 119q177 0 307 -68l-45 -90q-55 30 -124.5 47t-137.5 17z" />
+<glyph unicode="D" horiz-adv-x="1350" d="M1288 879q0 -253 -109.5 -461.5t-300.5 -313t-446 -104.5h-330l310 1462h305q282 0 426.5 -147.5t144.5 -435.5zM430 90q226 0 394.5 94.5t261 275.5t92.5 412q0 498 -476 498h-206l-275 -1280h209z" />
+<glyph unicode="E" horiz-adv-x="1067" d="M829 0h-727l310 1462h727l-21 -94h-624l-117 -553h590l-21 -94h-588l-135 -627h627z" />
+<glyph unicode="F" horiz-adv-x="981" d="M205 0h-103l310 1462h708l-20 -94h-604l-134 -620h570l-21 -95h-569z" />
+<glyph unicode="G" horiz-adv-x="1374" d="M856 735h406l-150 -682q-211 -73 -405 -73q-257 0 -397 146t-140 421q0 265 105 483.5t283.5 335.5t395.5 117q113 0 203 -19t184 -59l-38 -94q-110 46 -189.5 62t-167.5 16q-184 0 -339 -107.5t-244 -301.5t-89 -433q0 -229 114.5 -352t326.5 -123q155 0 309 47l117 526 h-303z" />
+<glyph unicode="H" horiz-adv-x="1366" d="M1063 0h-100l151 719h-760l-149 -719h-103l310 1462h102l-139 -649h760l137 649h100z" />
+<glyph unicode="I" horiz-adv-x="504" d="M102 0l310 1462h98l-309 -1462h-99z" />
+<glyph unicode="J" horiz-adv-x="477" d="M-180 -360q-48 0 -88 8t-56 16l11 92q57 -20 137 -20q213 0 262 241l309 1485h105l-314 -1491q-35 -170 -125 -250.5t-241 -80.5z" />
+<glyph unicode="K" horiz-adv-x="1122" d="M979 0h-111l-342 788l-190 -153l-131 -635h-103l310 1462h102l-158 -723l133 121l680 602h138l-699 -610z" />
+<glyph unicode="L" horiz-adv-x="938" d="M102 0l310 1462h102l-289 -1366h621l-23 -96h-721z" />
+<glyph unicode="M" horiz-adv-x="1669" d="M772 205l733 1257h150l-301 -1462h-101l191 901q79 369 100 447h-6l-780 -1348h-51l-222 1348h-6q-20 -154 -78 -426l-196 -922h-96l309 1462h143l205 -1257h6z" />
+<glyph unicode="N" horiz-adv-x="1372" d="M1069 0h-86l-516 1284h-8q-23 -149 -48 -273t-214 -1011h-95l310 1462h80l522 -1294h8q23 176 74 416l188 878h94z" />
+<glyph unicode="O" horiz-adv-x="1464" d="M1403 911q0 -255 -94 -481.5t-252 -338t-365 -111.5q-250 0 -385 149t-135 430q0 262 93 477.5t255 331t373 115.5q247 0 378.5 -148.5t131.5 -423.5zM879 1389q-174 0 -308.5 -101t-214.5 -298t-80 -417q0 -245 109.5 -373t319.5 -128q169 0 300 98.5t210 300t79 430.5 q0 240 -104.5 364t-310.5 124z" />
+<glyph unicode="P" horiz-adv-x="1145" d="M1145 1102q0 -500 -610 -500h-201l-129 -602h-103l310 1462h315q202 0 310 -92.5t108 -267.5zM350 694h191q252 0 373.5 96.5t121.5 305.5q0 274 -329 274h-211z" />
+<glyph unicode="Q" horiz-adv-x="1464" d="M1403 911q0 -216 -70 -418t-186.5 -324t-274.5 -167l267 -350h-142l-231 332l-74 -4q-250 0 -385 149t-135 430q0 262 93 477.5t255 331t373 115.5q247 0 378.5 -148.5t131.5 -423.5zM879 1389q-174 0 -308.5 -101t-214.5 -298t-80 -417q0 -245 109.5 -373t319.5 -128 q169 0 300 98.5t210 300t79 430.5q0 240 -104.5 364t-310.5 124z" />
+<glyph unicode="R" horiz-adv-x="1145" d="M336 633l-131 -633h-103l310 1462h303q430 0 430 -360q0 -182 -103.5 -303t-281.5 -152q201 -591 221 -647h-111l-211 633h-323zM358 725h252q208 0 317 95.5t109 281.5q0 268 -329 268h-211z" />
+<glyph unicode="S" horiz-adv-x="1020" d="M895 403q0 -126 -65.5 -224.5t-179.5 -148.5t-269 -50q-88 0 -172.5 17t-171.5 58v109q163 -92 348 -92q188 0 295.5 86.5t107.5 232.5q0 61 -17 104.5t-52.5 78.5t-91 68t-131.5 75q-150 76 -209.5 164t-59.5 206t59 207.5t165 139t237 49.5q99 0 180 -17.5t168 -60.5 l-32 -94q-66 40 -151.5 63t-164.5 23q-163 0 -259.5 -82.5t-96.5 -218.5q0 -103 49 -170t182 -133q154 -79 213.5 -130t89 -113t29.5 -147z" />
+<glyph unicode="T" horiz-adv-x="985" d="M438 0h-102l289 1368h-432l20 94h973l-19 -94h-440z" />
+<glyph unicode="U" horiz-adv-x="1370" d="M1395 1462l-207 -977q-58 -270 -197 -387.5t-375 -117.5q-440 0 -440 401q0 83 27 201l186 880h103l-193 -899q-20 -89 -20 -184q0 -309 342 -309q195 0 307.5 96.5t158.5 318.5l207 977h101z" />
+<glyph unicode="V" horiz-adv-x="1079" d="M457 147q51 111 124 247l572 1068h117l-799 -1462h-88l-182 1462h100l117 -950q26 -217 35 -365h4z" />
+<glyph unicode="W" horiz-adv-x="1702" d="M1018 1341q-27 -76 -62 -153.5t-563 -1187.5h-82l-73 1462h100l47 -1031l4 -165l-2 -86h6q85 226 170 398l434 884h105l61 -878q19 -266 19 -410h6q30 86 61.5 163t493.5 1125h108q-169 -365 -330.5 -731t-328.5 -731h-78l-78 1075q-11 142 -11 219l1 47h-8z" />
+<glyph unicode="X" horiz-adv-x="971" d="M879 0h-107l-254 678l-526 -678h-127l608 766l-272 696h106l240 -626l483 626h119l-555 -719z" />
+<glyph unicode="Y" horiz-adv-x="965" d="M494 645l544 817h117l-631 -932l-108 -530h-105l119 545l-237 917h100z" />
+<glyph unicode="Z" d="M913 0h-925l22 92l1069 1276h-764l23 94h887l-19 -88l-1069 -1280h799z" />
+<glyph unicode="[" horiz-adv-x="537" d="M369 -324h-426l376 1786h429l-19 -90h-330l-340 -1605h330z" />
+<glyph unicode="\" horiz-adv-x="641" d="M295 1462l242 -1462h-82l-246 1462h86z" />
+<glyph unicode="]" horiz-adv-x="537" d="M203 1462h426l-377 -1786h-428l18 91h330l340 1605h-330z" />
+<glyph unicode="^" horiz-adv-x="1047" d="M70 569l587 906h91l260 -906h-105l-217 809l-500 -809h-116z" />
+<glyph unicode="_" horiz-adv-x="801" d="M625 -291h-807l18 86h807z" />
+<glyph unicode="`" horiz-adv-x="1135" d="M766 1241h-66q-50 52 -114 144.5t-99 162.5v21h115q46 -129 164 -303v-25z" />
+<glyph unicode="a" horiz-adv-x="1133" d="M655 1104q232 0 279 -219h6l59 202h80l-229 -1087h-82l45 274h-6q-84 -142 -187 -218t-237 -76q-281 0 -281 374q0 197 75 376t200.5 276.5t277.5 97.5zM406 70q89 0 177.5 62t159 166t107.5 230t37 213q0 79 -26 141.5t-77 99t-127 36.5q-124 0 -224 -82t-164 -245.5 t-64 -325.5q0 -152 50 -223.5t151 -71.5z" />
+<glyph unicode="b" horiz-adv-x="1151" d="M500 -16q-113 0 -186 59t-97 166h-6l-55 -209h-80l327 1556h95q-131 -628 -162 -751h6q93 156 199 229.5t231 73.5q281 0 281 -375q0 -203 -76 -380t-201 -273t-276 -96zM750 1018q-91 0 -180 -61.5t-160.5 -169.5t-106.5 -235t-35 -206q0 -129 64 -202.5t166 -73.5 q124 0 224 83t164 245t64 325q0 152 -49 223.5t-151 71.5z" />
+<glyph unicode="c" horiz-adv-x="887" d="M477 -20q-174 0 -274.5 110.5t-100.5 306.5q0 193 73.5 361.5t198.5 257t290 88.5q134 0 241 -43l-28 -90q-107 47 -218 47q-129 0 -232.5 -77t-162.5 -222t-59 -320q0 -158 73.5 -243.5t208.5 -85.5q71 0 131.5 13t131.5 46v-92q-116 -57 -273 -57z" />
+<glyph unicode="d" horiz-adv-x="1133" d="M655 1104q230 0 279 -219h4q12 66 143 671h99l-330 -1556h-82l45 274h-6q-173 -294 -424 -294q-281 0 -281 374q0 193 71.5 370t197.5 278.5t284 101.5zM406 70q89 0 178.5 62.5t160 168t106.5 231t36 209.5q0 126 -61.5 201.5t-168.5 75.5q-124 0 -224 -83t-164 -242.5 t-64 -327.5q0 -295 201 -295z" />
+<glyph unicode="e" horiz-adv-x="928" d="M469 -20q-173 0 -270 109.5t-97 305.5q0 181 71 347t195.5 264t274.5 98q114 0 182 -61t68 -166q0 -181 -163.5 -276t-485.5 -95h-33q-6 -44 -6 -98q0 -165 74 -251.5t213 -86.5q132 0 276 73v-94q-140 -69 -299 -69zM631 1018q-131 0 -243.5 -115.5t-162.5 -308.5h49 q517 0 517 270q0 67 -43.5 110.5t-116.5 43.5z" />
+<glyph unicode="f" horiz-adv-x="578" d="M-131 -492q-48 0 -102 19v90q53 -16 100 -16q88 0 134 53t75 186l246 1166h-205l14 67l205 14l35 160q35 168 116.5 244t227.5 76q73 0 166 -31l-25 -80q-87 27 -147 27q-96 0 -153.5 -53.5t-84.5 -178.5l-35 -164h248l-16 -81h-248l-252 -1190q-33 -161 -104 -234.5 t-195 -73.5z" />
+<glyph unicode="g" horiz-adv-x="1040" d="M1100 1087l-17 -79l-243 -11q26 -28 43.5 -84t17.5 -114q0 -109 -54.5 -206.5t-148 -145.5t-213.5 -48q-63 0 -77 9q-80 -33 -124 -73t-44 -81t31.5 -64.5t113.5 -31.5l121 -11q346 -31 346 -264q0 -112 -65 -197.5t-187 -131.5t-291 -46q-186 0 -291.5 72t-105.5 203 q0 236 309 334q-78 42 -78 123q0 123 191 202q-71 36 -110.5 105.5t-39.5 157.5q0 111 53.5 204t148 146t206.5 53q69 0 147 -21h361zM14 -207q0 -101 81 -150t224 -49q203 0 317 74.5t114 204.5q0 85 -62.5 130.5t-218.5 57.5l-160 15q-157 -45 -226 -114.5t-69 -168.5z M285 711q0 -112 58.5 -170t164.5 -58q88 0 154 37t102.5 114t36.5 169q0 104 -56 161.5t-157 57.5q-93 0 -161 -43t-105 -116t-37 -152z" />
+<glyph unicode="h" horiz-adv-x="1143" d="M764 0l149 692q21 92 21 156q0 80 -43.5 125t-134.5 45q-112 0 -210.5 -67t-166 -188t-103.5 -286l-102 -477h-98l332 1556h96l-86 -411q-44 -200 -66 -279h6q78 113 186.5 175.5t229.5 62.5q124 0 192 -65t68 -183q0 -70 -24 -182l-148 -674h-98z" />
+<glyph unicode="i" horiz-adv-x="475" d="M174 0h-98l231 1087h96zM350 1366q0 55 22 88t60 33q57 0 57 -72q0 -57 -22 -90t-57 -33q-29 0 -44.5 19.5t-15.5 54.5z" />
+<glyph unicode="j" horiz-adv-x="475" d="M-166 -492q-62 0 -113 19v92q47 -22 113 -22q82 0 128.5 51.5t72.5 177.5l266 1261h96l-268 -1271q-35 -165 -106.5 -236.5t-188.5 -71.5zM350 1366q0 55 22 88t60 33q57 0 57 -72q0 -57 -22 -90t-57 -33q-29 0 -44.5 19.5t-15.5 54.5z" />
+<glyph unicode="k" horiz-adv-x="944" d="M270 477l609 610h125l-474 -469l297 -618h-106l-264 559l-205 -188l-80 -371h-96l330 1556h96l-166 -780l-70 -299h4z" />
+<glyph unicode="l" horiz-adv-x="475" d="M170 0h-94l334 1556h94z" />
+<glyph unicode="m" horiz-adv-x="1751" d="M711 0l147 674q25 125 25 162q0 182 -154 182q-106 0 -200 -67.5t-159 -188.5t-100 -287l-100 -475h-98l231 1087h80l-33 -210h6q80 113 181.5 170t212.5 57q106 0 163 -67t60 -195h6q77 129 181 195.5t222 66.5q117 0 182.5 -61.5t65.5 -176.5q0 -29 -2.5 -56.5 t-19.5 -119.5l-152 -690h-100l149 680q25 120 25 176q0 77 -43 119.5t-119 42.5q-157 0 -277.5 -137.5t-168.5 -362.5l-109 -518h-102z" />
+<glyph unicode="n" horiz-adv-x="1143" d="M764 0l149 692q21 92 21 156q0 80 -43.5 125t-134.5 45q-112 0 -210.5 -67t-166 -187.5t-103.5 -286.5l-102 -477h-98l231 1087h82l-37 -221h6q164 238 416 238q130 0 195 -64t65 -184q0 -70 -24 -182l-148 -674h-98z" />
+<glyph unicode="o" horiz-adv-x="1124" d="M649 1108q180 0 278.5 -108.5t98.5 -299.5q0 -197 -71.5 -368.5t-195.5 -261.5t-286 -90q-184 0 -279.5 109.5t-95.5 313.5q0 191 73 358t197 257t281 90zM641 1022q-124 0 -223 -78.5t-158 -225t-59 -310.5q0 -342 282 -342q127 0 225.5 77.5t157 228t58.5 330.5 q0 154 -73 237t-210 83z" />
+<glyph unicode="p" horiz-adv-x="1149" d="M498 -16q-230 0 -279 219h-4q-13 -72 -149 -695h-99l336 1579h82l-45 -274h6q91 153 195.5 224t228.5 71q135 0 208 -92.5t73 -282.5q0 -195 -72 -371t-197.5 -277t-283.5 -101zM748 1018q-87 0 -174 -58.5t-161.5 -167.5t-110.5 -237.5t-36 -208.5q0 -125 61.5 -200.5 t168.5 -75.5q124 0 225 84t164 243.5t63 325.5q0 295 -200 295z" />
+<glyph unicode="q" horiz-adv-x="1157" d="M651 1104q109 0 183.5 -58t99.5 -167h6l55 208h80l-327 -1556h-95l98 470l64 282h-6q-93 -156 -199 -229.5t-231 -73.5q-281 0 -281 374q0 201 75.5 379t200.5 274.5t277 96.5zM401 70q92 0 182 62.5t160.5 171.5t105 236.5t34.5 200.5q0 130 -63.5 203.5t-166.5 73.5 q-124 0 -224 -83t-164 -245t-64 -325q0 -143 45.5 -219t154.5 -76z" />
+<glyph unicode="r" horiz-adv-x="752" d="M713 1106q69 0 123 -14l-21 -93q-47 15 -113 15q-94 0 -179 -64t-153 -192t-100 -277l-100 -481h-98l231 1087h80l-29 -204h6q73 94 123 135.5t106.5 64.5t123.5 23z" />
+<glyph unicode="s" horiz-adv-x="827" d="M713 295q0 -144 -103 -229.5t-280 -85.5q-173 0 -305 75v107q74 -46 153 -71t148 -25q138 0 211 57.5t73 163.5q0 42 -15.5 74t-50 61.5t-132.5 85.5q-148 80 -200 145.5t-52 159.5q0 128 98.5 209.5t259.5 81.5q75 0 158.5 -17.5t140.5 -46.5l-35 -88q-136 64 -264 64 q-116 0 -186 -53t-70 -138q0 -55 17 -88t60.5 -68.5t119.5 -76.5q114 -63 161.5 -103.5t70 -86.5t22.5 -107z" />
+<glyph unicode="t" horiz-adv-x="616" d="M694 1087l-18 -81h-283l-135 -635q-22 -99 -22 -164q0 -139 126 -139q68 0 152 26v-86q-101 -28 -170 -28q-99 0 -153 54.5t-54 158.5q0 73 29 206l129 607h-182l14 67l184 17l97 253h55l-55 -256h286z" />
+<glyph unicode="u" horiz-adv-x="1143" d="M381 1087l-152 -698q-22 -106 -22 -158q0 -74 47.5 -117.5t138.5 -43.5q110 0 207.5 65.5t164 187t99.5 279.5l105 485h98l-231 -1087h-80l28 205h-6q-167 -221 -403 -221q-131 0 -198.5 62t-67.5 181q0 60 22 170l150 690h100z" />
+<glyph unicode="v" horiz-adv-x="895" d="M276 0l-172 1087h101l108 -735q26 -165 33 -254h6q51 115 129 256l406 733h102l-600 -1087h-113z" />
+<glyph unicode="w" horiz-adv-x="1393" d="M838 0l-60 686q-14 224 -14 266h-6q-34 -92 -144 -290l-356 -662h-117l-20 1087h92l13 -821l-3 -157h6q61 134 150 297l373 681h77l64 -681q14 -147 14 -297h6l24 61l101 236l320 681h96l-508 -1087h-108z" />
+<glyph unicode="x" horiz-adv-x="922" d="M442 483l-393 -483h-121l471 559l-245 528h100l207 -462l373 462h120l-448 -534l258 -553h-98z" />
+<glyph unicode="y" horiz-adv-x="920" d="M123 1087h100l82 -548q51 -351 55 -449h11q43 105 186 367l348 630h103l-713 -1290q-72 -127 -122.5 -178t-114 -81t-146.5 -30q-68 0 -129 21v92q71 -27 137 -27q80 0 147 49.5t130 164.5t100 184z" />
+<glyph unicode="z" horiz-adv-x="887" d="M700 0h-729l15 72l776 932h-543l17 83h659l-18 -83l-762 -920h602z" />
+<glyph unicode="{" horiz-adv-x="709" d="M424 -324q-256 0 -256 199q0 45 16 115l56 252q18 90 18 127q0 159 -199 159l21 78q126 0 191 49t89 158l89 393q30 135 106 195.5t215 60.5h29l-17 -86q-86 -2 -129 -20.5t-69.5 -61.5t-44.5 -120l-74 -338q-30 -134 -91.5 -194.5t-164.5 -78.5v-4q68 -18 105.5 -68.5 t37.5 -121.5q0 -52 -24 -164l-47 -225q-13 -58 -13 -101q0 -61 37.5 -89t138.5 -28v-86h-20z" />
+<glyph unicode="|" d="M584 1561h100v-2071h-100v2071z" />
+<glyph unicode="}" horiz-adv-x="709" d="M332 1462q131 0 189.5 -51t58.5 -147q0 -41 -17 -115l-55 -252q-19 -95 -19 -127q0 -77 49.5 -118.5t149.5 -41.5l-20 -78q-125 0 -191 -48.5t-90 -157.5l-88 -394q-32 -139 -108.5 -197.5t-213.5 -58.5h-18v86q96 2 138 21t68.5 61t43.5 121l74 338q27 126 87.5 189.5 t168.5 82.5v5q-75 20 -109.5 72.5t-34.5 117.5q0 55 18 131l54 258q12 61 12 101q0 44 -18 69t-54 36t-116 11l20 86h21z" />
+<glyph unicode="~" d="M350 745q-49 0 -108 -30.5t-115 -89.5v94q108 110 233 110q61 0 115 -13.5t156 -57.5q126 -58 219 -58q54 0 107.5 29t117.5 96v-96q-111 -113 -233 -113q-117 0 -271 72q-62 29 -112.5 43t-108.5 14z" />
+<glyph unicode="&#xa1;" horiz-adv-x="502" d="M264 711h62l-203 -1086h-119zM432 1030q0 -56 -25 -88.5t-69 -32.5q-66 0 -66 72q0 55 25 89t68 34q67 0 67 -74z" />
+<glyph unicode="&#xa2;" d="M578 -20h-93l45 215q-132 25 -206 132.5t-74 272.5q0 184 63.5 341t178 253t256.5 111l36 178h90l-38 -176q116 -4 217 -43l-29 -90q-107 47 -217 47q-130 0 -233 -76t-162.5 -221t-59.5 -322q0 -164 74.5 -247t208.5 -83q127 0 264 60v-92q-118 -58 -281 -58z" />
+<glyph unicode="&#xa3;" d="M879 1479q170 0 313 -78l-39 -84l-54 26q-108 50 -231 50q-134 0 -220.5 -74.5t-117.5 -220.5l-73 -340h409l-18 -82h-408l-57 -268q-50 -225 -188 -314h759l-20 -94h-938l16 84q93 11 165.5 95.5t107.5 236.5l57 260h-199l17 82h198l76 350q41 187 155 279t290 92z" />
+<glyph unicode="&#xa4;" d="M262 723q0 118 74 225l-129 129l63 64l127 -129q105 78 230 78q118 0 223 -78l131 129l61 -62l-129 -129q78 -106 78 -227q0 -135 -78 -227l129 -127l-61 -62l-131 127q-104 -76 -223 -76q-126 0 -228 80l-129 -129l-61 62l127 127q-74 98 -74 225zM350 723 q0 -116 80 -196.5t197 -80.5t198.5 81t81.5 196q0 75 -36.5 140t-102.5 104t-141 39q-114 0 -195.5 -82t-81.5 -201z" />
+<glyph unicode="&#xa5;" d="M584 645l544 817h117l-559 -823h266l-16 -76h-315l-39 -190h317l-18 -84h-316l-59 -289h-105l64 289h-299l18 84h299l41 190h-301l17 76h258l-215 823h100z" />
+<glyph unicode="&#xa6;" d="M578 1561h100v-756h-100v756zM578 246h100v-756h-100v756z" />
+<glyph unicode="&#xa7;" horiz-adv-x="995" d="M211 778q0 101 69.5 182t198.5 130q-64 31 -103.5 85.5t-39.5 120.5q0 74 46 134.5t132.5 94.5t202.5 34q163 0 289 -58l-31 -80q-138 54 -264 54q-124 0 -202.5 -46.5t-78.5 -123.5q0 -59 46 -104.5t183 -106.5q112 -52 158.5 -89.5t71 -85t24.5 -110.5 q0 -197 -249 -317q122 -64 122 -197q0 -86 -48 -153.5t-139.5 -105.5t-221.5 -38q-157 0 -275 53v99q47 -27 126 -46.5t153 -19.5q149 0 228 52.5t79 150.5q0 62 -42.5 106t-166.5 96q-155 65 -211.5 130t-56.5 159zM559 1038q-119 -30 -187.5 -97.5t-68.5 -154.5 q0 -57 24.5 -96.5t81 -73t187.5 -81.5q103 49 162 113.5t59 156.5q0 72 -57.5 126t-200.5 107z" />
+<glyph unicode="&#xa8;" horiz-adv-x="1135" d="M836 1366q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63zM492 1366q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63z" />
+<glyph unicode="&#xa9;" horiz-adv-x="1704" d="M944 1092q-142 0 -222.5 -94.5t-80.5 -264.5q0 -186 74.5 -275t220.5 -89q85 0 199 43v-88q-104 -45 -209 -45q-187 0 -288 116t-101 330q0 207 110 332t297 125q119 0 227 -52l-36 -83q-99 45 -191 45zM147 731q0 200 100 375t275 276t377 101q200 0 375 -100t276 -275 t101 -377q0 -197 -97 -370t-272 -277t-383 -104q-207 0 -382 103.5t-272.5 276.5t-97.5 371zM240 731q0 -178 88.5 -329.5t240.5 -240.5t330 -89q174 0 325 85.5t243 239t92 334.5q0 178 -89 330t-240.5 241t-330.5 89q-182 0 -335 -92t-238.5 -243t-85.5 -325z" />
+<glyph unicode="&#xaa;" horiz-adv-x="643" d="M487 1485q55 0 97.5 -29t66.5 -86h6l35 103h66l-137 -650h-72l22 125h-4q-96 -137 -223 -137q-80 0 -127 56.5t-47 164.5q0 189 90.5 321t226.5 132zM369 885q66 0 133.5 75.5t97.5 184.5q16 51 16 123q0 58 -36 100.5t-93 42.5q-94 0 -161.5 -111.5t-67.5 -271.5 q0 -143 111 -143z" />
+<glyph unicode="&#xab;" horiz-adv-x="860" d="M426 932l57 -49l-317 -336l213 -385l-64 -39l-254 418l2 26zM786 932l58 -49l-314 -336l209 -385l-63 -39l-254 418l2 26z" />
+<glyph unicode="&#xac;" d="M1028 772v-500h-100v400h-803v100h903z" />
+<glyph unicode="&#xad;" horiz-adv-x="629" d="M77 502zM77 502l18 90h457l-16 -90h-459z" />
+<glyph unicode="&#xae;" horiz-adv-x="1704" d="M758 731h112q93 0 144 46.5t51 135.5q0 172 -197 172h-110v-354zM1169 918q0 -80 -39.5 -141t-109.5 -93l237 -393h-120l-211 360h-168v-360h-101v880h211q143 0 222 -62t79 -191zM150 731q0 207 103.5 382t276.5 272.5t371 97.5q200 0 375 -100t276 -275t101 -377 q0 -197 -97 -370t-272 -277t-383 -104q-204 0 -376.5 100.5t-273.5 273t-101 377.5zM242 731q0 -178 88.5 -329.5t240.5 -240.5t330 -89q174 0 325 85.5t243 239t92 334.5q0 178 -89 330t-240.5 241t-330.5 89q-182 0 -335 -92t-238.5 -243t-85.5 -325z" />
+<glyph unicode="&#xaf;" horiz-adv-x="655" d="M1001 1556h-653l53 97h654z" />
+<glyph unicode="&#xb0;" horiz-adv-x="877" d="M242 1190q0 120 85 206.5t208 86.5q122 0 207 -86.5t85 -206.5q0 -122 -85.5 -207.5t-206.5 -85.5q-122 0 -207.5 85.5t-85.5 207.5zM315 1190q0 -89 64.5 -153t155.5 -64q92 0 155.5 64t63.5 153q0 90 -64 155.5t-155 65.5q-90 0 -155 -65.5t-65 -155.5z" />
+<glyph unicode="&#xb1;" d="M528 629h-401v98h401v406h101v-406h401v-98h-401v-400h-101v400zM127 0v100h903v-100h-903z" />
+<glyph unicode="&#xb2;" horiz-adv-x="643" d="M604 586h-522l16 80l297 258q137 118 182.5 190.5t45.5 153.5q0 59 -38.5 97t-105.5 38q-95 0 -194 -76l-41 62q108 90 239 90q73 0 125 -27t78.5 -72t26.5 -100q0 -106 -59 -198.5t-183 -194.5l-266 -223h416z" />
+<glyph unicode="&#xb3;" horiz-adv-x="643" d="M705 1276q0 -85 -48.5 -148t-154.5 -88v-4q66 -16 105.5 -68t39.5 -124q0 -77 -39 -141t-109 -99t-161 -35q-59 0 -123.5 15.5t-105.5 40.5v90q46 -28 108 -48t125 -20q99 0 159 52.5t60 142.5q0 162 -196 162h-84l16 79h86q102 0 168.5 49.5t66.5 129.5 q0 68 -37.5 102.5t-105.5 34.5q-100 0 -199 -68l-40 64q109 86 251 86q100 0 159 -56.5t59 -148.5z" />
+<glyph unicode="&#xb4;" horiz-adv-x="1135" d="M580 1262q66 51 150.5 142t129.5 165h137v-23q-51 -66 -157.5 -158.5t-192.5 -146.5h-67v21z" />
+<glyph unicode="&#xb5;" horiz-adv-x="1171" d="M238 242q0 -82 48.5 -127t135.5 -45q110 0 207 64.5t162.5 182.5t101.5 285l104 485h99l-234 -1087h-78l29 205h-6q-164 -221 -404 -221q-85 0 -139 32.5t-76 89.5h-6q-18 -132 -51 -284l-63 -314h-97l338 1579h101l-152 -698q-20 -96 -20 -147z" />
+<glyph unicode="&#xb6;" horiz-adv-x="1341" d="M1208 -260h-100v1722h-227v-1722h-101v819q-64 -18 -145 -18q-216 0 -318 125t-102 376q0 260 109 387t342 127h542v-1816z" />
+<glyph unicode="&#xb7;" horiz-adv-x="485" d="M207 625zM207 698q0 56 25 88.5t69 32.5q66 0 66 -72q0 -53 -25 -87.5t-67 -34.5q-68 0 -68 73z" />
+<glyph unicode="&#xb8;" horiz-adv-x="420" d="M197 -289q0 -94 -75.5 -148.5t-217.5 -54.5q-46 0 -78 7v79q30 -6 72 -6q198 0 198 115q0 97 -151 107l110 190h80l-78 -137q140 -30 140 -152z" />
+<glyph unicode="&#xb9;" horiz-adv-x="643" d="M512 1462h80l-186 -876h-84l118 569q5 21 11.5 50.5t14 60t15.5 59t15 49.5q-34 -31 -60 -51.5t-143 -93.5l-39 59z" />
+<glyph unicode="&#xba;" horiz-adv-x="655" d="M518 1479q105 0 165 -64t60 -180q0 -115 -40 -214t-114 -156.5t-175 -57.5q-114 0 -169 67.5t-55 184.5q0 112 41.5 209.5t116 154t170.5 56.5zM508 1405q-70 0 -124 -46.5t-84 -124.5t-30 -167q0 -186 156 -186q73 0 125.5 46.5t81.5 127.5t29 176q0 83 -39 128.5 t-115 45.5z" />
+<glyph unicode="&#xbb;" horiz-adv-x="860" d="M451 123l-58 49l314 336l-209 385l63 39l254 -418l-2 -27zM90 123l-57 49l313 336l-209 385l64 39l254 -418l-2 -27z" />
+<glyph unicode="&#xbc;" horiz-adv-x="1481" d="M129 0zM1319 230h-131l-49 -229h-82l49 229h-391l21 76l506 577h86l-125 -581h133zM1121 302q61 294 79 365.5t29 105.5q-10 -16 -61 -79t-338 -392h291zM1323 1462l-1087 -1462h-107l1086 1462h108zM509 1462h80l-186 -876h-84l118 569q5 21 11.5 50.5t14 60t15.5 59 t15 49.5q-34 -31 -60 -51.5t-143 -93.5l-39 59z" />
+<glyph unicode="&#xbd;" horiz-adv-x="1458" d="M53 0zM1278 1h-522l16 80l297 258q137 118 182.5 190.5t45.5 153.5q0 59 -38.5 97t-105.5 38q-95 0 -194 -76l-41 62q108 90 239 90q73 0 125 -27t78.5 -72t26.5 -100q0 -106 -59 -198.5t-183 -194.5l-266 -223h416zM431 1462h80l-186 -876h-84l118 569q5 21 11.5 50.5 t14 60t15.5 59t15 49.5q-34 -31 -60 -51.5t-143 -93.5l-39 59zM1247 1462l-1087 -1462h-107l1086 1462h108z" />
+<glyph unicode="&#xbe;" horiz-adv-x="1458" d="M71 0zM1380 230h-131l-49 -229h-82l49 229h-391l21 76l506 577h86l-125 -581h133zM1182 302q61 294 79 365.5t29 105.5q-10 -16 -61 -79t-338 -392h291zM667 1276q0 -85 -48.5 -148t-154.5 -88v-4q66 -16 105.5 -68t39.5 -124q0 -77 -39 -141t-109 -99t-161 -35 q-59 0 -123.5 15.5t-105.5 40.5v90q46 -28 108 -48t125 -20q99 0 159 52.5t60 142.5q0 162 -196 162h-84l16 79h86q102 0 168.5 49.5t66.5 129.5q0 68 -37.5 102.5t-105.5 34.5q-100 0 -199 -68l-40 64q109 86 251 86q100 0 159 -56.5t59 -148.5zM1407 1462l-1087 -1462 h-107l1086 1462h108z" />
+<glyph unicode="&#xbf;" horiz-adv-x="799" d="M641 717l-6 -29q-28 -127 -79 -200t-161 -154q-118 -84 -175 -145.5t-86.5 -127.5t-29.5 -141q0 -106 65.5 -168.5t184.5 -62.5q141 0 308 100l38 -86q-85 -49 -170.5 -77.5t-187.5 -28.5q-159 0 -250.5 84.5t-91.5 228.5q0 133 70 240.5t227 220.5q85 61 133.5 109 t73 95t45.5 142h92zM713 1020q0 -56 -25.5 -88.5t-69.5 -32.5q-65 0 -65 72q0 56 25 89.5t67 33.5q68 0 68 -74z" />
+<glyph unicode="&#xc0;" horiz-adv-x="1059" d="M0 0zM805 520h-512l-287 -520h-117l822 1468h67l201 -1468h-105zM793 612l-39 291q-31 242 -39 402q-30 -63 -64.5 -130t-306.5 -563h449zM815 1579h-66q-50 52 -114 144.5t-99 162.5v21h115q46 -129 164 -303v-25z" />
+<glyph unicode="&#xc1;" horiz-adv-x="1059" d="M0 0zM805 520h-512l-287 -520h-117l822 1468h67l201 -1468h-105zM793 612l-39 291q-31 242 -39 402q-30 -63 -64.5 -130t-306.5 -563h449zM668 1600q66 51 150.5 142t129.5 165h137v-23q-51 -66 -157.5 -158.5t-192.5 -146.5h-67v21z" />
+<glyph unicode="&#xc2;" horiz-adv-x="1059" d="M0 0zM805 520h-512l-287 -520h-117l822 1468h67l201 -1468h-105zM793 612l-39 291q-31 242 -39 402q-30 -63 -64.5 -130t-306.5 -563h449zM1007 1579h-49q-70 60 -161 207q-55 -57 -125 -114.5t-125 -92.5h-54v29q68 56 157.5 148.5t127.5 150.5h64q23 -64 72.5 -152.5 t92.5 -146.5v-29z" />
+<glyph unicode="&#xc3;" horiz-adv-x="1059" d="M0 0zM805 520h-512l-287 -520h-117l822 1468h67l201 -1468h-105zM793 612l-39 291q-31 242 -39 402q-30 -63 -64.5 -130t-306.5 -563h449zM911 1587q-40 0 -77.5 19t-75.5 45q-34 23 -64.5 41t-68.5 18q-45 0 -74 -28.5t-51 -100.5h-74q19 108 71 166.5t134 58.5 q41 0 73.5 -14t117.5 -72q52 -36 94 -36q43 0 71.5 30.5t46.5 100.5h76q-26 -118 -74.5 -173t-124.5 -55z" />
+<glyph unicode="&#xc4;" horiz-adv-x="1059" d="M0 0zM805 520h-512l-287 -520h-117l822 1468h67l201 -1468h-105zM793 612l-39 291q-31 242 -39 402q-30 -63 -64.5 -130t-306.5 -563h449zM879 1704q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63zM535 1704q0 49 20.5 78t56.5 29q54 0 54 -64 q0 -48 -21 -77t-55 -29q-55 0 -55 63z" />
+<glyph unicode="&#xc5;" horiz-adv-x="1059" d="M0 0zM805 520h-512l-287 -520h-117l822 1468h67l201 -1468h-105zM793 612l-39 291q-31 242 -39 402q-30 -63 -64.5 -130t-306.5 -563h449zM945 1600q0 -92 -57.5 -148.5t-145.5 -56.5q-93 0 -148 52t-55 145q0 88 59.5 144t149.5 56q88 0 142.5 -50t54.5 -142zM867 1598 q0 57 -33.5 90t-87.5 33q-60 0 -93.5 -36t-33.5 -93t33 -90t90 -33q56 0 90.5 36t34.5 93z" />
+<glyph unicode="&#xc6;" horiz-adv-x="1640" d="M1403 0h-727l110 522h-444l-328 -522h-131l946 1462h883l-20 -94h-625l-117 -553h590l-20 -94h-588l-135 -627h626zM408 627h401l156 741h-88z" />
+<glyph unicode="&#xc7;" horiz-adv-x="1169" d="M170 0zM961 1389q-197 0 -351.5 -104.5t-245 -304.5t-90.5 -441q0 -225 110.5 -346t317.5 -121q140 0 304 51v-94q-156 -49 -316 -49q-252 0 -386 145t-134 410q0 266 104.5 488t284.5 341t402 119q177 0 307 -68l-45 -90q-55 30 -124.5 47t-137.5 17zM752 -289 q0 -94 -75.5 -148.5t-217.5 -54.5q-46 0 -78 7v79q30 -6 72 -6q198 0 198 115q0 97 -151 107l110 190h80l-78 -137q140 -30 140 -152z" />
+<glyph unicode="&#xc8;" horiz-adv-x="1067" d="M102 0zM829 0h-727l310 1462h727l-21 -94h-624l-117 -553h590l-21 -94h-588l-135 -627h627zM891 1579h-66q-50 52 -114 144.5t-99 162.5v21h115q46 -129 164 -303v-25z" />
+<glyph unicode="&#xc9;" horiz-adv-x="1067" d="M102 0zM829 0h-727l310 1462h727l-21 -94h-624l-117 -553h590l-21 -94h-588l-135 -627h627zM654 1600q66 51 150.5 142t129.5 165h137v-23q-51 -66 -157.5 -158.5t-192.5 -146.5h-67v21z" />
+<glyph unicode="&#xca;" horiz-adv-x="1067" d="M102 0zM829 0h-727l310 1462h727l-21 -94h-624l-117 -553h590l-21 -94h-588l-135 -627h627zM1036 1579h-49q-70 60 -161 207q-55 -57 -125 -114.5t-125 -92.5h-54v29q68 56 157.5 148.5t127.5 150.5h64q23 -64 72.5 -152.5t92.5 -146.5v-29z" />
+<glyph unicode="&#xcb;" horiz-adv-x="1067" d="M102 0zM829 0h-727l310 1462h727l-21 -94h-624l-117 -553h590l-21 -94h-588l-135 -627h627zM902 1704q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63zM558 1704q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63z" />
+<glyph unicode="&#xcc;" horiz-adv-x="504" d="M102 0zM102 0l310 1462h98l-309 -1462h-99zM525 1579h-66q-50 52 -114 144.5t-99 162.5v21h115q46 -129 164 -303v-25z" />
+<glyph unicode="&#xcd;" horiz-adv-x="504" d="M102 0zM102 0l310 1462h98l-309 -1462h-99zM419 1600q66 51 150.5 142t129.5 165h137v-23q-51 -66 -157.5 -158.5t-192.5 -146.5h-67v21z" />
+<glyph unicode="&#xce;" horiz-adv-x="504" d="M102 0zM102 0l310 1462h98l-309 -1462h-99zM738 1579h-49q-70 60 -161 207q-55 -57 -125 -114.5t-125 -92.5h-54v29q68 56 157.5 148.5t127.5 150.5h64q23 -64 72.5 -152.5t92.5 -146.5v-29z" />
+<glyph unicode="&#xcf;" horiz-adv-x="504" d="M102 0zM102 0l310 1462h98l-309 -1462h-99zM604 1704q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63zM260 1704q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63z" />
+<glyph unicode="&#xd0;" horiz-adv-x="1352" d="M1288 879q0 -253 -109.5 -461.5t-300.5 -313t-446 -104.5h-330l144 676h-156l21 96h155l146 690h305q282 0 426.5 -147.5t144.5 -435.5zM430 90q226 0 394.5 94.5t261 275.5t92.5 412q0 498 -476 498h-206l-129 -598h378l-20 -96h-379l-125 -586h209z" />
+<glyph unicode="&#xd1;" horiz-adv-x="1372" d="M102 0zM1069 0h-86l-516 1284h-8q-23 -149 -48 -273t-214 -1011h-95l310 1462h80l522 -1294h8q23 176 74 416l188 878h94zM1062 1587q-40 0 -77.5 19t-75.5 45q-34 23 -64.5 41t-68.5 18q-45 0 -74 -28.5t-51 -100.5h-74q19 108 71 166.5t134 58.5q41 0 73.5 -14 t117.5 -72q52 -36 94 -36q43 0 71.5 30.5t46.5 100.5h76q-26 -118 -74.5 -173t-124.5 -55z" />
+<glyph unicode="&#xd2;" horiz-adv-x="1464" d="M172 0zM1403 911q0 -255 -94 -481.5t-252 -338t-365 -111.5q-250 0 -385 149t-135 430q0 262 93 477.5t255 331t373 115.5q247 0 378.5 -148.5t131.5 -423.5zM879 1389q-174 0 -308.5 -101t-214.5 -298t-80 -417q0 -245 109.5 -373t319.5 -128q169 0 300 98.5t210 300 t79 430.5q0 240 -104.5 364t-310.5 124zM989 1579h-66q-50 52 -114 144.5t-99 162.5v21h115q46 -129 164 -303v-25z" />
+<glyph unicode="&#xd3;" horiz-adv-x="1464" d="M172 0zM1403 911q0 -255 -94 -481.5t-252 -338t-365 -111.5q-250 0 -385 149t-135 430q0 262 93 477.5t255 331t373 115.5q247 0 378.5 -148.5t131.5 -423.5zM879 1389q-174 0 -308.5 -101t-214.5 -298t-80 -417q0 -245 109.5 -373t319.5 -128q169 0 300 98.5t210 300 t79 430.5q0 240 -104.5 364t-310.5 124zM844 1600q66 51 150.5 142t129.5 165h137v-23q-51 -66 -157.5 -158.5t-192.5 -146.5h-67v21z" />
+<glyph unicode="&#xd4;" horiz-adv-x="1464" d="M172 0zM1403 911q0 -255 -94 -481.5t-252 -338t-365 -111.5q-250 0 -385 149t-135 430q0 262 93 477.5t255 331t373 115.5q247 0 378.5 -148.5t131.5 -423.5zM879 1389q-174 0 -308.5 -101t-214.5 -298t-80 -417q0 -245 109.5 -373t319.5 -128q169 0 300 98.5t210 300 t79 430.5q0 240 -104.5 364t-310.5 124zM1171 1579h-49q-70 60 -161 207q-55 -57 -125 -114.5t-125 -92.5h-54v29q68 56 157.5 148.5t127.5 150.5h64q23 -64 72.5 -152.5t92.5 -146.5v-29z" />
+<glyph unicode="&#xd5;" horiz-adv-x="1464" d="M172 0zM1403 911q0 -255 -94 -481.5t-252 -338t-365 -111.5q-250 0 -385 149t-135 430q0 262 93 477.5t255 331t373 115.5q247 0 378.5 -148.5t131.5 -423.5zM879 1389q-174 0 -308.5 -101t-214.5 -298t-80 -417q0 -245 109.5 -373t319.5 -128q169 0 300 98.5t210 300 t79 430.5q0 240 -104.5 364t-310.5 124zM1077 1587q-40 0 -77.5 19t-75.5 45q-34 23 -64.5 41t-68.5 18q-45 0 -74 -28.5t-51 -100.5h-74q19 108 71 166.5t134 58.5q41 0 73.5 -14t117.5 -72q52 -36 94 -36q43 0 71.5 30.5t46.5 100.5h76q-26 -118 -74.5 -173t-124.5 -55z " />
+<glyph unicode="&#xd6;" horiz-adv-x="1464" d="M172 0zM1403 911q0 -255 -94 -481.5t-252 -338t-365 -111.5q-250 0 -385 149t-135 430q0 262 93 477.5t255 331t373 115.5q247 0 378.5 -148.5t131.5 -423.5zM879 1389q-174 0 -308.5 -101t-214.5 -298t-80 -417q0 -245 109.5 -373t319.5 -128q169 0 300 98.5t210 300 t79 430.5q0 240 -104.5 364t-310.5 124zM1031 1704q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63zM687 1704q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63z" />
+<glyph unicode="&#xd7;" d="M551 723l-330 332l70 69l330 -329l333 329l68 -67l-332 -334l332 -332l-68 -67l-333 329l-330 -327l-68 67z" />
+<glyph unicode="&#xd8;" horiz-adv-x="1464" d="M1403 911q0 -187 -52 -365.5t-144.5 -304.5t-223 -193.5t-291.5 -67.5q-215 0 -348 112l-139 -170l-66 64l146 172q-113 149 -113 401q0 263 94 479.5t256.5 330.5t370.5 114q219 0 352 -121l133 168l70 -53l-145 -183q45 -51 72.5 -161t27.5 -222zM879 1389 q-134 0 -244 -59.5t-188.5 -170t-124.5 -267.5t-46 -319q0 -105 21.5 -191t56.5 -138l826 1032q-107 113 -301 113zM1294 901q0 85 -17.5 172t-43.5 129l-821 -1030q107 -100 293 -100q170 0 301 100t209.5 296.5t78.5 432.5z" />
+<glyph unicode="&#xd9;" horiz-adv-x="1370" d="M176 0zM1395 1462l-207 -977q-58 -270 -197 -387.5t-375 -117.5q-440 0 -440 401q0 83 27 201l186 880h103l-193 -899q-20 -89 -20 -184q0 -309 342 -309q195 0 307.5 96.5t158.5 318.5l207 977h101zM946 1579h-66q-50 52 -114 144.5t-99 162.5v21h115q46 -129 164 -303 v-25z" />
+<glyph unicode="&#xda;" horiz-adv-x="1370" d="M176 0zM1395 1462l-207 -977q-58 -270 -197 -387.5t-375 -117.5q-440 0 -440 401q0 83 27 201l186 880h103l-193 -899q-20 -89 -20 -184q0 -309 342 -309q195 0 307.5 96.5t158.5 318.5l207 977h101zM838 1600q66 51 150.5 142t129.5 165h137v-23q-51 -66 -157.5 -158.5 t-192.5 -146.5h-67v21z" />
+<glyph unicode="&#xdb;" horiz-adv-x="1370" d="M176 0zM1395 1462l-207 -977q-58 -270 -197 -387.5t-375 -117.5q-440 0 -440 401q0 83 27 201l186 880h103l-193 -899q-20 -89 -20 -184q0 -309 342 -309q195 0 307.5 96.5t158.5 318.5l207 977h101zM1148 1579h-49q-70 60 -161 207q-55 -57 -125 -114.5t-125 -92.5h-54 v29q68 56 157.5 148.5t127.5 150.5h64q23 -64 72.5 -152.5t92.5 -146.5v-29z" />
+<glyph unicode="&#xdc;" horiz-adv-x="1370" d="M176 0zM1395 1462l-207 -977q-58 -270 -197 -387.5t-375 -117.5q-440 0 -440 401q0 83 27 201l186 880h103l-193 -899q-20 -89 -20 -184q0 -309 342 -309q195 0 307.5 96.5t158.5 318.5l207 977h101zM1022 1704q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29 q-55 0 -55 63zM678 1704q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63z" />
+<glyph unicode="&#xdd;" horiz-adv-x="965" d="M193 0zM494 645l544 817h117l-631 -932l-108 -530h-105l119 545l-237 917h100zM563 1600q66 51 150.5 142t129.5 165h137v-23q-51 -66 -157.5 -158.5t-192.5 -146.5h-67v21z" />
+<glyph unicode="&#xde;" horiz-adv-x="1145" d="M1087 836q0 -247 -153 -373.5t-457 -126.5h-201l-71 -336h-103l310 1462h102l-57 -266h213q200 0 308.5 -92.5t108.5 -267.5zM293 428h190q256 0 376 98.5t120 302.5q0 275 -330 275h-211z" />
+<glyph unicode="&#xdf;" horiz-adv-x="1094" d="M-162 -492q-73 0 -119 23v90q53 -24 115 -24q79 0 123 50.5t66 153.5l305 1409q80 357 405 357q137 0 215 -61.5t78 -174.5q0 -75 -44.5 -140.5t-166.5 -148.5q-107 -76 -141.5 -124.5t-34.5 -106.5q0 -51 34 -88.5t93 -75.5q96 -63 138 -133.5t42 -165.5 q0 -170 -106.5 -269t-286.5 -99q-143 0 -234 65v109q45 -36 112.5 -59t129.5 -23q132 0 208.5 71t76.5 195q0 75 -31.5 129t-109.5 108q-82 58 -119 110.5t-37 121.5q0 57 21 103t60.5 88.5t137.5 113.5q101 70 131.5 116t30.5 101q0 70 -55 110t-150 40q-129 0 -205 -76 t-108 -229l-291 -1377q-33 -152 -103.5 -220.5t-179.5 -68.5z" />
+<glyph unicode="&#xe0;" horiz-adv-x="1133" d="M102 0zM655 1104q232 0 279 -219h6l59 202h80l-229 -1087h-82l45 274h-6q-84 -142 -187 -218t-237 -76q-281 0 -281 374q0 197 75 376t200.5 276.5t277.5 97.5zM406 70q89 0 177.5 62t159 166t107.5 230t37 213q0 79 -26 141.5t-77 99t-127 36.5q-124 0 -224 -82 t-164 -245.5t-64 -325.5q0 -152 50 -223.5t151 -71.5zM809 1241h-66q-50 52 -114 144.5t-99 162.5v21h115q46 -129 164 -303v-25z" />
+<glyph unicode="&#xe1;" horiz-adv-x="1133" d="M102 0zM655 1104q232 0 279 -219h6l59 202h80l-229 -1087h-82l45 274h-6q-84 -142 -187 -218t-237 -76q-281 0 -281 374q0 197 75 376t200.5 276.5t277.5 97.5zM406 70q89 0 177.5 62t159 166t107.5 230t37 213q0 79 -26 141.5t-77 99t-127 36.5q-124 0 -224 -82 t-164 -245.5t-64 -325.5q0 -152 50 -223.5t151 -71.5zM586 1262q66 51 150.5 142t129.5 165h137v-23q-51 -66 -157.5 -158.5t-192.5 -146.5h-67v21z" />
+<glyph unicode="&#xe2;" horiz-adv-x="1133" d="M102 0zM655 1104q232 0 279 -219h6l59 202h80l-229 -1087h-82l45 274h-6q-84 -142 -187 -218t-237 -76q-281 0 -281 374q0 197 75 376t200.5 276.5t277.5 97.5zM406 70q89 0 177.5 62t159 166t107.5 230t37 213q0 79 -26 141.5t-77 99t-127 36.5q-124 0 -224 -82 t-164 -245.5t-64 -325.5q0 -152 50 -223.5t151 -71.5zM955 1243h-49q-70 60 -161 207q-55 -57 -125 -114.5t-125 -92.5h-54v29q68 56 157.5 148.5t127.5 150.5h64q23 -64 72.5 -152.5t92.5 -146.5v-29z" />
+<glyph unicode="&#xe3;" horiz-adv-x="1133" d="M102 0zM655 1104q232 0 279 -219h6l59 202h80l-229 -1087h-82l45 274h-6q-84 -142 -187 -218t-237 -76q-281 0 -281 374q0 197 75 376t200.5 276.5t277.5 97.5zM406 70q89 0 177.5 62t159 166t107.5 230t37 213q0 79 -26 141.5t-77 99t-127 36.5q-124 0 -224 -82 t-164 -245.5t-64 -325.5q0 -152 50 -223.5t151 -71.5zM858 1249q-40 0 -77.5 19t-75.5 45q-34 23 -64.5 41t-68.5 18q-45 0 -74 -28.5t-51 -100.5h-74q19 108 71 166.5t134 58.5q41 0 73.5 -14t117.5 -72q52 -36 94 -36q43 0 71.5 30.5t46.5 100.5h76q-26 -118 -74.5 -173 t-124.5 -55z" />
+<glyph unicode="&#xe4;" horiz-adv-x="1133" d="M102 0zM655 1104q232 0 279 -219h6l59 202h80l-229 -1087h-82l45 274h-6q-84 -142 -187 -218t-237 -76q-281 0 -281 374q0 197 75 376t200.5 276.5t277.5 97.5zM406 70q89 0 177.5 62t159 166t107.5 230t37 213q0 79 -26 141.5t-77 99t-127 36.5q-124 0 -224 -82 t-164 -245.5t-64 -325.5q0 -152 50 -223.5t151 -71.5zM835 1366q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63zM491 1366q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63z" />
+<glyph unicode="&#xe5;" horiz-adv-x="1133" d="M102 0zM655 1104q232 0 279 -219h6l59 202h80l-229 -1087h-82l45 274h-6q-84 -142 -187 -218t-237 -76q-281 0 -281 374q0 197 75 376t200.5 276.5t277.5 97.5zM406 70q89 0 177.5 62t159 166t107.5 230t37 213q0 79 -26 141.5t-77 99t-127 36.5q-124 0 -224 -82 t-164 -245.5t-64 -325.5q0 -152 50 -223.5t151 -71.5zM927 1448q0 -92 -57.5 -148.5t-145.5 -56.5q-93 0 -148 52t-55 145q0 88 59.5 144t149.5 56q88 0 142.5 -50t54.5 -142zM849 1446q0 57 -33.5 90t-87.5 33q-60 0 -93.5 -36t-33.5 -93t33 -90t90 -33q56 0 90.5 36 t34.5 93z" />
+<glyph unicode="&#xe6;" horiz-adv-x="1602" d="M1155 -20q-123 0 -211 60t-117 165l-39 -205h-77l41 254h-9q-94 -142 -189 -208t-208 -66q-120 0 -182 94t-62 270q0 206 70.5 384.5t192.5 277t274 98.5q106 0 166 -56.5t74 -156.5h10l59 192h66l-35 -186q139 207 350 207q112 0 175 -61.5t63 -172.5 q0 -179 -158.5 -271.5t-470.5 -92.5h-39q-8 -51 -8 -96q0 -161 69.5 -250.5t217.5 -89.5q69 0 133.5 21t130.5 52v-94q-80 -37 -147 -53t-140 -16zM369 70q67 0 138.5 42t134 117.5t106 170.5t63.5 199t20 165q0 118 -49 186t-141 68q-123 0 -223 -86t-156.5 -240 t-56.5 -340q0 -150 42.5 -216t121.5 -66zM1317 1018q-119 0 -232 -115.5t-172 -308.5h48q263 0 383 67t120 203q0 71 -38.5 112.5t-108.5 41.5z" />
+<glyph unicode="&#xe7;" horiz-adv-x="887" d="M102 0zM477 -20q-174 0 -274.5 110.5t-100.5 306.5q0 193 73.5 361.5t198.5 257t290 88.5q134 0 241 -43l-28 -90q-107 47 -218 47q-129 0 -232.5 -77t-162.5 -222t-59 -320q0 -158 73.5 -243.5t208.5 -85.5q71 0 131.5 13t131.5 46v-92q-116 -57 -273 -57zM574 -289 q0 -94 -75.5 -148.5t-217.5 -54.5q-46 0 -78 7v79q30 -6 72 -6q198 0 198 115q0 97 -151 107l110 190h80l-78 -137q140 -30 140 -152z" />
+<glyph unicode="&#xe8;" horiz-adv-x="928" d="M102 0zM469 -20q-173 0 -270 109.5t-97 305.5q0 181 71 347t195.5 264t274.5 98q114 0 182 -61t68 -166q0 -181 -163.5 -276t-485.5 -95h-33q-6 -44 -6 -98q0 -165 74 -251.5t213 -86.5q132 0 276 73v-94q-140 -69 -299 -69zM631 1018q-131 0 -243.5 -115.5 t-162.5 -308.5h49q517 0 517 270q0 67 -43.5 110.5t-116.5 43.5zM751 1241h-66q-50 52 -114 144.5t-99 162.5v21h115q46 -129 164 -303v-25z" />
+<glyph unicode="&#xe9;" horiz-adv-x="928" d="M102 0zM469 -20q-173 0 -270 109.5t-97 305.5q0 181 71 347t195.5 264t274.5 98q114 0 182 -61t68 -166q0 -181 -163.5 -276t-485.5 -95h-33q-6 -44 -6 -98q0 -165 74 -251.5t213 -86.5q132 0 276 73v-94q-140 -69 -299 -69zM631 1018q-131 0 -243.5 -115.5 t-162.5 -308.5h49q517 0 517 270q0 67 -43.5 110.5t-116.5 43.5zM532 1262q66 51 150.5 142t129.5 165h137v-23q-51 -66 -157.5 -158.5t-192.5 -146.5h-67v21z" />
+<glyph unicode="&#xea;" horiz-adv-x="928" d="M102 0zM469 -20q-173 0 -270 109.5t-97 305.5q0 181 71 347t195.5 264t274.5 98q114 0 182 -61t68 -166q0 -181 -163.5 -276t-485.5 -95h-33q-6 -44 -6 -98q0 -165 74 -251.5t213 -86.5q132 0 276 73v-94q-140 -69 -299 -69zM631 1018q-131 0 -243.5 -115.5 t-162.5 -308.5h49q517 0 517 270q0 67 -43.5 110.5t-116.5 43.5zM904 1241h-49q-70 60 -161 207q-55 -57 -125 -114.5t-125 -92.5h-54v29q68 56 157.5 148.5t127.5 150.5h64q23 -64 72.5 -152.5t92.5 -146.5v-29z" />
+<glyph unicode="&#xeb;" horiz-adv-x="928" d="M102 0zM469 -20q-173 0 -270 109.5t-97 305.5q0 181 71 347t195.5 264t274.5 98q114 0 182 -61t68 -166q0 -181 -163.5 -276t-485.5 -95h-33q-6 -44 -6 -98q0 -165 74 -251.5t213 -86.5q132 0 276 73v-94q-140 -69 -299 -69zM631 1018q-131 0 -243.5 -115.5 t-162.5 -308.5h49q517 0 517 270q0 67 -43.5 110.5t-116.5 43.5zM780 1366q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63zM436 1366q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63z" />
+<glyph unicode="&#xec;" horiz-adv-x="475" d="M76 0zM174 0h-98l231 1087h96zM454 1241h-66q-50 52 -114 144.5t-99 162.5v21h115q46 -129 164 -303v-25z" />
+<glyph unicode="&#xed;" horiz-adv-x="475" d="M76 0zM174 0h-98l231 1087h96zM284 1262q66 51 150.5 142t129.5 165h137v-23q-51 -66 -157.5 -158.5t-192.5 -146.5h-67v21z" />
+<glyph unicode="&#xee;" horiz-adv-x="475" d="M76 0zM174 0h-98l231 1087h96zM642 1241h-49q-70 60 -161 207q-55 -57 -125 -114.5t-125 -92.5h-54v29q68 56 157.5 148.5t127.5 150.5h64q23 -64 72.5 -152.5t92.5 -146.5v-29z" />
+<glyph unicode="&#xef;" horiz-adv-x="475" d="M76 0zM174 0h-98l231 1087h96zM515 1366q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63zM171 1366q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63z" />
+<glyph unicode="&#xf0;" horiz-adv-x="1124" d="M713 1364q-54 60 -158 139l59 68q32 -26 81 -66t100 -94l266 150l39 -74l-256 -141q87 -116 131.5 -276t44.5 -335q0 -355 -141.5 -555t-399.5 -200q-177 0 -277 106.5t-100 294.5q0 170 63 301.5t178.5 203.5t262.5 72q107 0 188 -49.5t121 -142.5h5q0 139 -43 289 t-115 243l-295 -163l-39 73zM489 70q118 0 208.5 61t144 186.5t53.5 270.5q0 77 -35 142t-100 101.5t-156 36.5q-124 0 -213.5 -61.5t-137.5 -169.5t-48 -248q0 -153 73.5 -236t210.5 -83z" />
+<glyph unicode="&#xf1;" horiz-adv-x="1143" d="M76 0zM764 0l149 692q21 92 21 156q0 80 -43.5 125t-134.5 45q-112 0 -210.5 -67t-166 -187.5t-103.5 -286.5l-102 -477h-98l231 1087h82l-37 -221h6q164 238 416 238q130 0 195 -64t65 -184q0 -70 -24 -182l-148 -674h-98zM874 1249q-40 0 -77.5 19t-75.5 45 q-34 23 -64.5 41t-68.5 18q-45 0 -74 -28.5t-51 -100.5h-74q19 108 71 166.5t134 58.5q41 0 73.5 -14t117.5 -72q52 -36 94 -36q43 0 71.5 30.5t46.5 100.5h76q-26 -118 -74.5 -173t-124.5 -55z" />
+<glyph unicode="&#xf2;" horiz-adv-x="1124" d="M98 0zM649 1108q180 0 278.5 -108.5t98.5 -299.5q0 -197 -71.5 -368.5t-195.5 -261.5t-286 -90q-184 0 -279.5 109.5t-95.5 313.5q0 191 73 358t197 257t281 90zM641 1022q-124 0 -223 -78.5t-158 -225t-59 -310.5q0 -342 282 -342q127 0 225.5 77.5t157 228t58.5 330.5 q0 154 -73 237t-210 83zM744 1241h-66q-50 52 -114 144.5t-99 162.5v21h115q46 -129 164 -303v-25z" />
+<glyph unicode="&#xf3;" horiz-adv-x="1124" d="M98 0zM649 1108q180 0 278.5 -108.5t98.5 -299.5q0 -197 -71.5 -368.5t-195.5 -261.5t-286 -90q-184 0 -279.5 109.5t-95.5 313.5q0 191 73 358t197 257t281 90zM641 1022q-124 0 -223 -78.5t-158 -225t-59 -310.5q0 -342 282 -342q127 0 225.5 77.5t157 228t58.5 330.5 q0 154 -73 237t-210 83zM573 1262q66 51 150.5 142t129.5 165h137v-23q-51 -66 -157.5 -158.5t-192.5 -146.5h-67v21z" />
+<glyph unicode="&#xf4;" horiz-adv-x="1124" d="M98 0zM649 1108q180 0 278.5 -108.5t98.5 -299.5q0 -197 -71.5 -368.5t-195.5 -261.5t-286 -90q-184 0 -279.5 109.5t-95.5 313.5q0 191 73 358t197 257t281 90zM641 1022q-124 0 -223 -78.5t-158 -225t-59 -310.5q0 -342 282 -342q127 0 225.5 77.5t157 228t58.5 330.5 q0 154 -73 237t-210 83zM941 1241h-49q-70 60 -161 207q-55 -57 -125 -114.5t-125 -92.5h-54v29q68 56 157.5 148.5t127.5 150.5h64q23 -64 72.5 -152.5t92.5 -146.5v-29z" />
+<glyph unicode="&#xf5;" horiz-adv-x="1124" d="M98 0zM649 1108q180 0 278.5 -108.5t98.5 -299.5q0 -197 -71.5 -368.5t-195.5 -261.5t-286 -90q-184 0 -279.5 109.5t-95.5 313.5q0 191 73 358t197 257t281 90zM641 1022q-124 0 -223 -78.5t-158 -225t-59 -310.5q0 -342 282 -342q127 0 225.5 77.5t157 228t58.5 330.5 q0 154 -73 237t-210 83zM839 1249q-40 0 -77.5 19t-75.5 45q-34 23 -64.5 41t-68.5 18q-45 0 -74 -28.5t-51 -100.5h-74q19 108 71 166.5t134 58.5q41 0 73.5 -14t117.5 -72q52 -36 94 -36q43 0 71.5 30.5t46.5 100.5h76q-26 -118 -74.5 -173t-124.5 -55z" />
+<glyph unicode="&#xf6;" horiz-adv-x="1124" d="M98 0zM649 1108q180 0 278.5 -108.5t98.5 -299.5q0 -197 -71.5 -368.5t-195.5 -261.5t-286 -90q-184 0 -279.5 109.5t-95.5 313.5q0 191 73 358t197 257t281 90zM641 1022q-124 0 -223 -78.5t-158 -225t-59 -310.5q0 -342 282 -342q127 0 225.5 77.5t157 228t58.5 330.5 q0 154 -73 237t-210 83zM812 1366q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63zM468 1366q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63z" />
+<glyph unicode="&#xf7;" d="M168 672v100h903v-100h-903zM522 373q0 106 96 106q48 0 73.5 -27.5t25.5 -78.5q0 -57 -29 -82t-70 -25q-96 0 -96 107zM522 1071q0 107 96 107q46 0 72.5 -27.5t26.5 -79.5q0 -57 -29 -81.5t-70 -24.5q-96 0 -96 106z" />
+<glyph unicode="&#xf8;" horiz-adv-x="1124" d="M164 127q-66 106 -66 276q0 191 73 358t197 257t281 90q150 0 250 -82l109 133l65 -53l-117 -143q70 -105 70 -263q0 -197 -71.5 -368.5t-195.5 -261.5t-286 -90q-163 0 -254 83l-110 -135l-64 54zM924 702q0 101 -35 179l-608 -742q67 -73 202 -73q127 0 225.5 77.5 t157 228t58.5 330.5zM641 1022q-124 0 -223 -78.5t-158 -225t-59 -310.5q0 -125 32 -197l605 739q-74 72 -197 72z" />
+<glyph unicode="&#xf9;" horiz-adv-x="1143" d="M109 0zM381 1087l-152 -698q-22 -106 -22 -158q0 -74 47.5 -117.5t138.5 -43.5q110 0 207.5 65.5t164 187t99.5 279.5l105 485h98l-231 -1087h-80l28 205h-6q-167 -221 -403 -221q-131 0 -198.5 62t-67.5 181q0 60 22 170l150 690h100zM774 1241h-66q-50 52 -114 144.5 t-99 162.5v21h115q46 -129 164 -303v-25z" />
+<glyph unicode="&#xfa;" horiz-adv-x="1143" d="M109 0zM381 1087l-152 -698q-22 -106 -22 -158q0 -74 47.5 -117.5t138.5 -43.5q110 0 207.5 65.5t164 187t99.5 279.5l105 485h98l-231 -1087h-80l28 205h-6q-167 -221 -403 -221q-131 0 -198.5 62t-67.5 181q0 60 22 170l150 690h100zM627 1262q66 51 150.5 142 t129.5 165h137v-23q-51 -66 -157.5 -158.5t-192.5 -146.5h-67v21z" />
+<glyph unicode="&#xfb;" horiz-adv-x="1143" d="M109 0zM381 1087l-152 -698q-22 -106 -22 -158q0 -74 47.5 -117.5t138.5 -43.5q110 0 207.5 65.5t164 187t99.5 279.5l105 485h98l-231 -1087h-80l28 205h-6q-167 -221 -403 -221q-131 0 -198.5 62t-67.5 181q0 60 22 170l150 690h100zM957 1241h-49q-70 60 -161 207 q-55 -57 -125 -114.5t-125 -92.5h-54v29q68 56 157.5 148.5t127.5 150.5h64q23 -64 72.5 -152.5t92.5 -146.5v-29z" />
+<glyph unicode="&#xfc;" horiz-adv-x="1143" d="M109 0zM381 1087l-152 -698q-22 -106 -22 -158q0 -74 47.5 -117.5t138.5 -43.5q110 0 207.5 65.5t164 187t99.5 279.5l105 485h98l-231 -1087h-80l28 205h-6q-167 -221 -403 -221q-131 0 -198.5 62t-67.5 181q0 60 22 170l150 690h100zM827 1366q0 49 20.5 78t56.5 29 q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63zM483 1366q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63z" />
+<glyph unicode="&#xfd;" horiz-adv-x="920" d="M0 0zM123 1087h100l82 -548q51 -351 55 -449h11q43 105 186 367l348 630h103l-713 -1290q-72 -127 -122.5 -178t-114 -81t-146.5 -30q-68 0 -129 21v92q71 -27 137 -27q80 0 147 49.5t130 164.5t100 184zM505 1262q66 51 150.5 142t129.5 165h137v-23 q-51 -66 -157.5 -158.5t-192.5 -146.5h-67v21z" />
+<glyph unicode="&#xfe;" horiz-adv-x="1163" d="M498 -16q-230 0 -279 219h-4q-13 -72 -149 -695h-99l434 2048h99q-114 -535 -164 -751h6q93 156 199 229.5t231 73.5q133 0 206 -92.5t73 -282.5q0 -195 -72 -371t-197.5 -277t-283.5 -101zM748 1018q-86 0 -172.5 -57.5t-162.5 -169.5t-111.5 -238t-35.5 -207 q0 -125 61.5 -200.5t168.5 -75.5q124 0 225 84t164 243.5t63 325.5q0 295 -200 295z" />
+<glyph unicode="&#xff;" horiz-adv-x="920" d="M0 0zM123 1087h100l82 -548q51 -351 55 -449h11q43 105 186 367l348 630h103l-713 -1290q-72 -127 -122.5 -178t-114 -81t-146.5 -30q-68 0 -129 21v92q71 -27 137 -27q80 0 147 49.5t130 164.5t100 184zM698 1366q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77 t-55 -29q-55 0 -55 63zM354 1366q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63z" />
+<glyph unicode="&#x131;" horiz-adv-x="475" d="M174 0h-98l231 1087h96z" />
+<glyph unicode="&#x152;" horiz-adv-x="1767" d="M1530 0h-666q-25 -6 -77.5 -13t-94.5 -7q-251 0 -385.5 149.5t-134.5 429.5q0 263 96 482t262 330.5t381 111.5q130 0 240 -21h688l-20 -94h-625l-117 -553h590l-20 -94h-588l-135 -627h626zM705 72q68 0 116 12l271 1290q-110 15 -189 15q-182 0 -321.5 -98.5 t-222.5 -293.5t-83 -424q0 -245 109 -373t320 -128z" />
+<glyph unicode="&#x153;" horiz-adv-x="1720" d="M1262 -20q-135 0 -228 69t-125 201q-65 -127 -179 -198.5t-257 -71.5q-184 0 -279.5 109.5t-95.5 313.5q0 191 73 358t197 257t281 90q141 0 237 -74.5t126 -212.5q70 132 182.5 207.5t241.5 75.5q114 0 182 -61t68 -166q0 -181 -163.5 -276t-486.5 -95h-32 q-7 -38 -7 -98q0 -165 74 -251.5t213 -86.5q133 0 277 73v-94q-140 -69 -299 -69zM641 1022q-124 0 -223 -78.5t-158 -225t-59 -310.5q0 -342 282 -342q127 0 225.5 77.5t157 228t58.5 330.5q0 154 -73 237t-210 83zM1423 1018q-131 0 -243 -115t-162 -309h49q516 0 516 270 q0 70 -44.5 112t-115.5 42z" />
+<glyph unicode="&#x178;" horiz-adv-x="965" d="M193 0zM494 645l544 817h117l-631 -932l-108 -530h-105l119 545l-237 917h100zM798 1704q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63zM454 1704q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63z" />
+<glyph unicode="&#x2c6;" horiz-adv-x="1135" d="M958 1241h-49q-70 60 -161 207q-55 -57 -125 -114.5t-125 -92.5h-54v29q68 56 157.5 148.5t127.5 150.5h64q23 -64 72.5 -152.5t92.5 -146.5v-29z" />
+<glyph unicode="&#x2da;" horiz-adv-x="1182" d="M967 1448q0 -92 -57.5 -148.5t-145.5 -56.5q-93 0 -148 52t-55 145q0 88 59.5 144t149.5 56q88 0 142.5 -50t54.5 -142zM889 1446q0 57 -33.5 90t-87.5 33q-60 0 -93.5 -36t-33.5 -93t33 -90t90 -33q56 0 90.5 36t34.5 93z" />
+<glyph unicode="&#x2dc;" horiz-adv-x="1135" d="M831 1249q-40 0 -77.5 19t-75.5 45q-34 23 -64.5 41t-68.5 18q-45 0 -74 -28.5t-51 -100.5h-74q19 108 71 166.5t134 58.5q41 0 73.5 -14t117.5 -72q52 -36 94 -36q43 0 71.5 30.5t46.5 100.5h76q-26 -118 -74.5 -173t-124.5 -55z" />
+<glyph unicode="&#x2000;" horiz-adv-x="953" />
+<glyph unicode="&#x2001;" horiz-adv-x="1907" />
+<glyph unicode="&#x2002;" horiz-adv-x="953" />
+<glyph unicode="&#x2003;" horiz-adv-x="1907" />
+<glyph unicode="&#x2004;" horiz-adv-x="635" />
+<glyph unicode="&#x2005;" horiz-adv-x="476" />
+<glyph unicode="&#x2006;" horiz-adv-x="317" />
+<glyph unicode="&#x2007;" horiz-adv-x="317" />
+<glyph unicode="&#x2008;" horiz-adv-x="238" />
+<glyph unicode="&#x2009;" horiz-adv-x="381" />
+<glyph unicode="&#x200a;" horiz-adv-x="105" />
+<glyph unicode="&#x2010;" horiz-adv-x="629" d="M82 502l18 90h457l-16 -90h-459z" />
+<glyph unicode="&#x2011;" horiz-adv-x="629" d="M82 502l18 90h457l-16 -90h-459z" />
+<glyph unicode="&#x2012;" horiz-adv-x="629" d="M82 502l18 90h457l-16 -90h-459z" />
+<glyph unicode="&#x2013;" horiz-adv-x="983" d="M66 502l18 90h807l-17 -90h-808z" />
+<glyph unicode="&#x2014;" horiz-adv-x="1966" d="M68 502l18 90h1788l-16 -90h-1790z" />
+<glyph unicode="&#x2018;" horiz-adv-x="299" d="M133 961l-4 22q41 100 116 231t161 248h73q-66 -106 -129.5 -242.5t-103.5 -258.5h-113z" />
+<glyph unicode="&#x2019;" horiz-adv-x="299" d="M475 1462l4 -22q-43 -105 -117.5 -235.5t-158.5 -243.5h-74q66 106 129.5 242.5t103.5 258.5h113z" />
+<glyph unicode="&#x201a;" horiz-adv-x="451" d="M246 238l4 -23q-40 -97 -115.5 -230t-161.5 -249h-73q68 110 131.5 248t101.5 254h113z" />
+<glyph unicode="&#x201c;" horiz-adv-x="631" d="M133 961l-4 22q41 100 116 231t161 248h73q-66 -106 -129.5 -242.5t-103.5 -258.5h-113zM467 961l-4 22q43 104 120 238.5t156 240.5h74q-66 -106 -129.5 -242.5t-103.5 -258.5h-113z" />
+<glyph unicode="&#x201d;" horiz-adv-x="631" d="M809 1462l4 -22q-43 -105 -117.5 -235.5t-158.5 -243.5h-74q66 106 129.5 242.5t103.5 258.5h113zM475 1462l4 -22q-43 -105 -117.5 -235.5t-158.5 -243.5h-74q66 106 129.5 242.5t103.5 258.5h113z" />
+<glyph unicode="&#x201e;" horiz-adv-x="776" d="M561 238l4 -23q-43 -105 -117.5 -235.5t-158.5 -243.5h-74q66 108 129 242.5t105 259.5h112zM227 238l4 -23q-43 -105 -117.5 -235.5t-158.5 -243.5h-74q73 119 135.5 254.5t98.5 247.5h112z" />
+<glyph unicode="&#x2022;" horiz-adv-x="793" d="M248 682q0 137 63 213t172 76q76 0 116 -39.5t40 -118.5q0 -125 -66 -207t-176 -82q-149 0 -149 158z" />
+<glyph unicode="&#x2026;" horiz-adv-x="1489" d="M69 0zM69 55q0 56 25 88.5t69 32.5q66 0 66 -72q0 -53 -25 -87.5t-67 -34.5q-68 0 -68 73zM569 55q0 56 25 88.5t69 32.5q66 0 66 -72q0 -53 -25 -87.5t-67 -34.5q-68 0 -68 73zM1071 55q0 56 25 88.5t69 32.5q66 0 66 -72q0 -53 -25 -87.5t-67 -34.5q-68 0 -68 73z" />
+<glyph unicode="&#x202f;" horiz-adv-x="381" />
+<glyph unicode="&#x2039;" horiz-adv-x="537" d="M451 932l57 -49l-318 -336l213 -385l-63 -39l-254 418l2 26z" />
+<glyph unicode="&#x203a;" horiz-adv-x="537" d="M94 123l-57 49l317 336l-213 385l64 39l254 -418l-2 -27z" />
+<glyph unicode="&#x2044;" horiz-adv-x="274" d="M731 1462l-1087 -1462h-107l1086 1462h108z" />
+<glyph unicode="&#x205f;" horiz-adv-x="476" />
+<glyph unicode="&#x2074;" horiz-adv-x="643" d="M657 815h-131l-49 -229h-82l49 229h-391l21 76l506 577h86l-125 -581h133zM459 887q61 294 79 365.5t29 105.5q-10 -16 -61 -79t-338 -392h291z" />
+<glyph unicode="&#x20ac;" d="M991 1389q-186 0 -330.5 -120.5t-226.5 -346.5h457l-21 -82h-460q-30 -98 -39 -217h442l-20 -82h-424q0 -243 89 -356t265 -113q115 0 252 57v-94q-129 -55 -270 -55q-209 0 -325 139.5t-116 394.5v27h-184l16 82h172q5 101 35 217h-170l19 82h174q95 273 270 417 t399 144q166 0 287 -90l-53 -82q-102 78 -238 78z" />
+<glyph unicode="&#x2122;" horiz-adv-x="1534" d="M477 741h-86v643h-217v78h522v-78h-219v-643zM1077 741l-221 609h-6l4 -201v-408h-82v721h125l221 -606l223 606h125v-721h-86v398l4 207h-6l-227 -605h-74z" />
+<glyph unicode="&#xe000;" horiz-adv-x="1085" d="M0 1085h1085v-1085h-1085v1085z" />
+<glyph horiz-adv-x="1133" d="M0 0z" />
+<hkern u1="&#x22;" u2="&#x178;" k="-20" />
+<hkern u1="&#x22;" u2="&#x153;" k="123" />
+<hkern u1="&#x22;" u2="&#xfc;" k="61" />
+<hkern u1="&#x22;" u2="&#xfb;" k="61" />
+<hkern u1="&#x22;" u2="&#xfa;" k="61" />
+<hkern u1="&#x22;" u2="&#xf9;" k="61" />
+<hkern u1="&#x22;" u2="&#xf8;" k="123" />
+<hkern u1="&#x22;" u2="&#xf6;" k="123" />
+<hkern u1="&#x22;" u2="&#xf5;" k="123" />
+<hkern u1="&#x22;" u2="&#xf4;" k="123" />
+<hkern u1="&#x22;" u2="&#xf3;" k="123" />
+<hkern u1="&#x22;" u2="&#xf2;" k="123" />
+<hkern u1="&#x22;" u2="&#xeb;" k="123" />
+<hkern u1="&#x22;" u2="&#xea;" k="123" />
+<hkern u1="&#x22;" u2="&#xe9;" k="123" />
+<hkern u1="&#x22;" u2="&#xe8;" k="123" />
+<hkern u1="&#x22;" u2="&#xe7;" k="123" />
+<hkern u1="&#x22;" u2="&#xe6;" k="82" />
+<hkern u1="&#x22;" u2="&#xe5;" k="82" />
+<hkern u1="&#x22;" u2="&#xe4;" k="82" />
+<hkern u1="&#x22;" u2="&#xe3;" k="82" />
+<hkern u1="&#x22;" u2="&#xe2;" k="82" />
+<hkern u1="&#x22;" u2="&#xe1;" k="82" />
+<hkern u1="&#x22;" u2="&#xe0;" k="123" />
+<hkern u1="&#x22;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x22;" u2="&#xc5;" k="143" />
+<hkern u1="&#x22;" u2="&#xc4;" k="143" />
+<hkern u1="&#x22;" u2="&#xc3;" k="143" />
+<hkern u1="&#x22;" u2="&#xc2;" k="143" />
+<hkern u1="&#x22;" u2="&#xc1;" k="143" />
+<hkern u1="&#x22;" u2="&#xc0;" k="143" />
+<hkern u1="&#x22;" u2="u" k="61" />
+<hkern u1="&#x22;" u2="s" k="61" />
+<hkern u1="&#x22;" u2="r" k="61" />
+<hkern u1="&#x22;" u2="q" k="123" />
+<hkern u1="&#x22;" u2="p" k="61" />
+<hkern u1="&#x22;" u2="o" k="123" />
+<hkern u1="&#x22;" u2="n" k="61" />
+<hkern u1="&#x22;" u2="m" k="61" />
+<hkern u1="&#x22;" u2="g" k="61" />
+<hkern u1="&#x22;" u2="e" k="123" />
+<hkern u1="&#x22;" u2="d" k="123" />
+<hkern u1="&#x22;" u2="c" k="123" />
+<hkern u1="&#x22;" u2="a" k="82" />
+<hkern u1="&#x22;" u2="Y" k="-20" />
+<hkern u1="&#x22;" u2="W" k="-41" />
+<hkern u1="&#x22;" u2="V" k="-41" />
+<hkern u1="&#x22;" u2="T" k="-41" />
+<hkern u1="&#x22;" u2="A" k="143" />
+<hkern u1="&#x27;" u2="&#x178;" k="-20" />
+<hkern u1="&#x27;" u2="&#x153;" k="123" />
+<hkern u1="&#x27;" u2="&#xfc;" k="61" />
+<hkern u1="&#x27;" u2="&#xfb;" k="61" />
+<hkern u1="&#x27;" u2="&#xfa;" k="61" />
+<hkern u1="&#x27;" u2="&#xf9;" k="61" />
+<hkern u1="&#x27;" u2="&#xf8;" k="123" />
+<hkern u1="&#x27;" u2="&#xf6;" k="123" />
+<hkern u1="&#x27;" u2="&#xf5;" k="123" />
+<hkern u1="&#x27;" u2="&#xf4;" k="123" />
+<hkern u1="&#x27;" u2="&#xf3;" k="123" />
+<hkern u1="&#x27;" u2="&#xf2;" k="123" />
+<hkern u1="&#x27;" u2="&#xeb;" k="123" />
+<hkern u1="&#x27;" u2="&#xea;" k="123" />
+<hkern u1="&#x27;" u2="&#xe9;" k="123" />
+<hkern u1="&#x27;" u2="&#xe8;" k="123" />
+<hkern u1="&#x27;" u2="&#xe7;" k="123" />
+<hkern u1="&#x27;" u2="&#xe6;" k="82" />
+<hkern u1="&#x27;" u2="&#xe5;" k="82" />
+<hkern u1="&#x27;" u2="&#xe4;" k="82" />
+<hkern u1="&#x27;" u2="&#xe3;" k="82" />
+<hkern u1="&#x27;" u2="&#xe2;" k="82" />
+<hkern u1="&#x27;" u2="&#xe1;" k="82" />
+<hkern u1="&#x27;" u2="&#xe0;" k="123" />
+<hkern u1="&#x27;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x27;" u2="&#xc5;" k="143" />
+<hkern u1="&#x27;" u2="&#xc4;" k="143" />
+<hkern u1="&#x27;" u2="&#xc3;" k="143" />
+<hkern u1="&#x27;" u2="&#xc2;" k="143" />
+<hkern u1="&#x27;" u2="&#xc1;" k="143" />
+<hkern u1="&#x27;" u2="&#xc0;" k="143" />
+<hkern u1="&#x27;" u2="u" k="61" />
+<hkern u1="&#x27;" u2="s" k="61" />
+<hkern u1="&#x27;" u2="r" k="61" />
+<hkern u1="&#x27;" u2="q" k="123" />
+<hkern u1="&#x27;" u2="p" k="61" />
+<hkern u1="&#x27;" u2="o" k="123" />
+<hkern u1="&#x27;" u2="n" k="61" />
+<hkern u1="&#x27;" u2="m" k="61" />
+<hkern u1="&#x27;" u2="g" k="61" />
+<hkern u1="&#x27;" u2="e" k="123" />
+<hkern u1="&#x27;" u2="d" k="123" />
+<hkern u1="&#x27;" u2="c" k="123" />
+<hkern u1="&#x27;" u2="a" k="82" />
+<hkern u1="&#x27;" u2="Y" k="-20" />
+<hkern u1="&#x27;" u2="W" k="-41" />
+<hkern u1="&#x27;" u2="V" k="-41" />
+<hkern u1="&#x27;" u2="T" k="-41" />
+<hkern u1="&#x27;" u2="A" k="143" />
+<hkern u1="&#x28;" u2="J" k="-184" />
+<hkern u1="&#x2c;" u2="&#x178;" k="123" />
+<hkern u1="&#x2c;" u2="&#x152;" k="102" />
+<hkern u1="&#x2c;" u2="&#xdd;" k="123" />
+<hkern u1="&#x2c;" u2="&#xdc;" k="41" />
+<hkern u1="&#x2c;" u2="&#xdb;" k="41" />
+<hkern u1="&#x2c;" u2="&#xda;" k="41" />
+<hkern u1="&#x2c;" u2="&#xd9;" k="41" />
+<hkern u1="&#x2c;" u2="&#xd8;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd6;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd5;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd4;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd3;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd2;" k="102" />
+<hkern u1="&#x2c;" u2="&#xc7;" k="102" />
+<hkern u1="&#x2c;" u2="Y" k="123" />
+<hkern u1="&#x2c;" u2="W" k="123" />
+<hkern u1="&#x2c;" u2="V" k="123" />
+<hkern u1="&#x2c;" u2="U" k="41" />
+<hkern u1="&#x2c;" u2="T" k="143" />
+<hkern u1="&#x2c;" u2="Q" k="102" />
+<hkern u1="&#x2c;" u2="O" k="102" />
+<hkern u1="&#x2c;" u2="G" k="102" />
+<hkern u1="&#x2c;" u2="C" k="102" />
+<hkern u1="&#x2d;" u2="T" k="82" />
+<hkern u1="&#x2e;" u2="&#x178;" k="123" />
+<hkern u1="&#x2e;" u2="&#x152;" k="102" />
+<hkern u1="&#x2e;" u2="&#xdd;" k="123" />
+<hkern u1="&#x2e;" u2="&#xdc;" k="41" />
+<hkern u1="&#x2e;" u2="&#xdb;" k="41" />
+<hkern u1="&#x2e;" u2="&#xda;" k="41" />
+<hkern u1="&#x2e;" u2="&#xd9;" k="41" />
+<hkern u1="&#x2e;" u2="&#xd8;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd6;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd5;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd4;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd3;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd2;" k="102" />
+<hkern u1="&#x2e;" u2="&#xc7;" k="102" />
+<hkern u1="&#x2e;" u2="Y" k="123" />
+<hkern u1="&#x2e;" u2="W" k="123" />
+<hkern u1="&#x2e;" u2="V" k="123" />
+<hkern u1="&#x2e;" u2="U" k="41" />
+<hkern u1="&#x2e;" u2="T" k="143" />
+<hkern u1="&#x2e;" u2="Q" k="102" />
+<hkern u1="&#x2e;" u2="O" k="102" />
+<hkern u1="&#x2e;" u2="G" k="102" />
+<hkern u1="&#x2e;" u2="C" k="102" />
+<hkern u1="A" u2="&#x201d;" k="143" />
+<hkern u1="A" u2="&#x2019;" k="143" />
+<hkern u1="A" u2="&#x178;" k="123" />
+<hkern u1="A" u2="&#x152;" k="41" />
+<hkern u1="A" u2="&#xdd;" k="123" />
+<hkern u1="A" u2="&#xd8;" k="41" />
+<hkern u1="A" u2="&#xd6;" k="41" />
+<hkern u1="A" u2="&#xd5;" k="41" />
+<hkern u1="A" u2="&#xd4;" k="41" />
+<hkern u1="A" u2="&#xd3;" k="41" />
+<hkern u1="A" u2="&#xd2;" k="41" />
+<hkern u1="A" u2="&#xc7;" k="41" />
+<hkern u1="A" u2="Y" k="123" />
+<hkern u1="A" u2="W" k="82" />
+<hkern u1="A" u2="V" k="82" />
+<hkern u1="A" u2="T" k="143" />
+<hkern u1="A" u2="Q" k="41" />
+<hkern u1="A" u2="O" k="41" />
+<hkern u1="A" u2="J" k="-266" />
+<hkern u1="A" u2="G" k="41" />
+<hkern u1="A" u2="C" k="41" />
+<hkern u1="A" u2="&#x27;" k="143" />
+<hkern u1="A" u2="&#x22;" k="143" />
+<hkern u1="B" u2="&#x201e;" k="82" />
+<hkern u1="B" u2="&#x201a;" k="82" />
+<hkern u1="B" u2="&#x178;" k="20" />
+<hkern u1="B" u2="&#xdd;" k="20" />
+<hkern u1="B" u2="&#xc5;" k="41" />
+<hkern u1="B" u2="&#xc4;" k="41" />
+<hkern u1="B" u2="&#xc3;" k="41" />
+<hkern u1="B" u2="&#xc2;" k="41" />
+<hkern u1="B" u2="&#xc1;" k="41" />
+<hkern u1="B" u2="&#xc0;" k="41" />
+<hkern u1="B" u2="Z" k="20" />
+<hkern u1="B" u2="Y" k="20" />
+<hkern u1="B" u2="X" k="41" />
+<hkern u1="B" u2="W" k="20" />
+<hkern u1="B" u2="V" k="20" />
+<hkern u1="B" u2="T" k="61" />
+<hkern u1="B" u2="A" k="41" />
+<hkern u1="B" u2="&#x2e;" k="82" />
+<hkern u1="B" u2="&#x2c;" k="82" />
+<hkern u1="C" u2="&#x152;" k="41" />
+<hkern u1="C" u2="&#xd8;" k="41" />
+<hkern u1="C" u2="&#xd6;" k="41" />
+<hkern u1="C" u2="&#xd5;" k="41" />
+<hkern u1="C" u2="&#xd4;" k="41" />
+<hkern u1="C" u2="&#xd3;" k="41" />
+<hkern u1="C" u2="&#xd2;" k="41" />
+<hkern u1="C" u2="&#xc7;" k="41" />
+<hkern u1="C" u2="Q" k="41" />
+<hkern u1="C" u2="O" k="41" />
+<hkern u1="C" u2="G" k="41" />
+<hkern u1="C" u2="C" k="41" />
+<hkern u1="D" u2="&#x201e;" k="82" />
+<hkern u1="D" u2="&#x201a;" k="82" />
+<hkern u1="D" u2="&#x178;" k="20" />
+<hkern u1="D" u2="&#xdd;" k="20" />
+<hkern u1="D" u2="&#xc5;" k="41" />
+<hkern u1="D" u2="&#xc4;" k="41" />
+<hkern u1="D" u2="&#xc3;" k="41" />
+<hkern u1="D" u2="&#xc2;" k="41" />
+<hkern u1="D" u2="&#xc1;" k="41" />
+<hkern u1="D" u2="&#xc0;" k="41" />
+<hkern u1="D" u2="Z" k="20" />
+<hkern u1="D" u2="Y" k="20" />
+<hkern u1="D" u2="X" k="41" />
+<hkern u1="D" u2="W" k="20" />
+<hkern u1="D" u2="V" k="20" />
+<hkern u1="D" u2="T" k="61" />
+<hkern u1="D" u2="A" k="41" />
+<hkern u1="D" u2="&#x2e;" k="82" />
+<hkern u1="D" u2="&#x2c;" k="82" />
+<hkern u1="E" u2="J" k="-123" />
+<hkern u1="F" u2="&#x201e;" k="123" />
+<hkern u1="F" u2="&#x201a;" k="123" />
+<hkern u1="F" u2="&#xc5;" k="41" />
+<hkern u1="F" u2="&#xc4;" k="41" />
+<hkern u1="F" u2="&#xc3;" k="41" />
+<hkern u1="F" u2="&#xc2;" k="41" />
+<hkern u1="F" u2="&#xc1;" k="41" />
+<hkern u1="F" u2="&#xc0;" k="41" />
+<hkern u1="F" u2="A" k="41" />
+<hkern u1="F" u2="&#x3f;" k="-41" />
+<hkern u1="F" u2="&#x2e;" k="123" />
+<hkern u1="F" u2="&#x2c;" k="123" />
+<hkern u1="K" u2="&#x152;" k="41" />
+<hkern u1="K" u2="&#xd8;" k="41" />
+<hkern u1="K" u2="&#xd6;" k="41" />
+<hkern u1="K" u2="&#xd5;" k="41" />
+<hkern u1="K" u2="&#xd4;" k="41" />
+<hkern u1="K" u2="&#xd3;" k="41" />
+<hkern u1="K" u2="&#xd2;" k="41" />
+<hkern u1="K" u2="&#xc7;" k="41" />
+<hkern u1="K" u2="Q" k="41" />
+<hkern u1="K" u2="O" k="41" />
+<hkern u1="K" u2="G" k="41" />
+<hkern u1="K" u2="C" k="41" />
+<hkern u1="L" u2="&#x201d;" k="164" />
+<hkern u1="L" u2="&#x2019;" k="164" />
+<hkern u1="L" u2="&#x178;" k="61" />
+<hkern u1="L" u2="&#x152;" k="41" />
+<hkern u1="L" u2="&#xdd;" k="61" />
+<hkern u1="L" u2="&#xdc;" k="20" />
+<hkern u1="L" u2="&#xdb;" k="20" />
+<hkern u1="L" u2="&#xda;" k="20" />
+<hkern u1="L" u2="&#xd9;" k="20" />
+<hkern u1="L" u2="&#xd8;" k="41" />
+<hkern u1="L" u2="&#xd6;" k="41" />
+<hkern u1="L" u2="&#xd5;" k="41" />
+<hkern u1="L" u2="&#xd4;" k="41" />
+<hkern u1="L" u2="&#xd3;" k="41" />
+<hkern u1="L" u2="&#xd2;" k="41" />
+<hkern u1="L" u2="&#xc7;" k="41" />
+<hkern u1="L" u2="Y" k="61" />
+<hkern u1="L" u2="W" k="41" />
+<hkern u1="L" u2="V" k="41" />
+<hkern u1="L" u2="U" k="20" />
+<hkern u1="L" u2="T" k="41" />
+<hkern u1="L" u2="Q" k="41" />
+<hkern u1="L" u2="O" k="41" />
+<hkern u1="L" u2="G" k="41" />
+<hkern u1="L" u2="C" k="41" />
+<hkern u1="L" u2="&#x27;" k="164" />
+<hkern u1="L" u2="&#x22;" k="164" />
+<hkern u1="O" u2="&#x201e;" k="82" />
+<hkern u1="O" u2="&#x201a;" k="82" />
+<hkern u1="O" u2="&#x178;" k="20" />
+<hkern u1="O" u2="&#xdd;" k="20" />
+<hkern u1="O" u2="&#xc5;" k="41" />
+<hkern u1="O" u2="&#xc4;" k="41" />
+<hkern u1="O" u2="&#xc3;" k="41" />
+<hkern u1="O" u2="&#xc2;" k="41" />
+<hkern u1="O" u2="&#xc1;" k="41" />
+<hkern u1="O" u2="&#xc0;" k="41" />
+<hkern u1="O" u2="Z" k="20" />
+<hkern u1="O" u2="Y" k="20" />
+<hkern u1="O" u2="X" k="41" />
+<hkern u1="O" u2="W" k="20" />
+<hkern u1="O" u2="V" k="20" />
+<hkern u1="O" u2="T" k="61" />
+<hkern u1="O" u2="A" k="41" />
+<hkern u1="O" u2="&#x2e;" k="82" />
+<hkern u1="O" u2="&#x2c;" k="82" />
+<hkern u1="P" u2="&#x201e;" k="266" />
+<hkern u1="P" u2="&#x201a;" k="266" />
+<hkern u1="P" u2="&#xc5;" k="102" />
+<hkern u1="P" u2="&#xc4;" k="102" />
+<hkern u1="P" u2="&#xc3;" k="102" />
+<hkern u1="P" u2="&#xc2;" k="102" />
+<hkern u1="P" u2="&#xc1;" k="102" />
+<hkern u1="P" u2="&#xc0;" k="102" />
+<hkern u1="P" u2="Z" k="20" />
+<hkern u1="P" u2="X" k="41" />
+<hkern u1="P" u2="A" k="102" />
+<hkern u1="P" u2="&#x2e;" k="266" />
+<hkern u1="P" u2="&#x2c;" k="266" />
+<hkern u1="Q" u2="&#x201e;" k="82" />
+<hkern u1="Q" u2="&#x201a;" k="82" />
+<hkern u1="Q" u2="&#x178;" k="20" />
+<hkern u1="Q" u2="&#xdd;" k="20" />
+<hkern u1="Q" u2="&#xc5;" k="41" />
+<hkern u1="Q" u2="&#xc4;" k="41" />
+<hkern u1="Q" u2="&#xc3;" k="41" />
+<hkern u1="Q" u2="&#xc2;" k="41" />
+<hkern u1="Q" u2="&#xc1;" k="41" />
+<hkern u1="Q" u2="&#xc0;" k="41" />
+<hkern u1="Q" u2="Z" k="20" />
+<hkern u1="Q" u2="Y" k="20" />
+<hkern u1="Q" u2="X" k="41" />
+<hkern u1="Q" u2="W" k="20" />
+<hkern u1="Q" u2="V" k="20" />
+<hkern u1="Q" u2="T" k="61" />
+<hkern u1="Q" u2="A" k="41" />
+<hkern u1="Q" u2="&#x2e;" k="82" />
+<hkern u1="Q" u2="&#x2c;" k="82" />
+<hkern u1="T" u2="&#x201e;" k="123" />
+<hkern u1="T" u2="&#x201a;" k="123" />
+<hkern u1="T" u2="&#x2014;" k="82" />
+<hkern u1="T" u2="&#x2013;" k="82" />
+<hkern u1="T" u2="&#x153;" k="143" />
+<hkern u1="T" u2="&#x152;" k="41" />
+<hkern u1="T" u2="&#xfd;" k="41" />
+<hkern u1="T" u2="&#xfc;" k="102" />
+<hkern u1="T" u2="&#xfb;" k="102" />
+<hkern u1="T" u2="&#xfa;" k="102" />
+<hkern u1="T" u2="&#xf9;" k="102" />
+<hkern u1="T" u2="&#xf8;" k="143" />
+<hkern u1="T" u2="&#xf6;" k="143" />
+<hkern u1="T" u2="&#xf5;" k="143" />
+<hkern u1="T" u2="&#xf4;" k="143" />
+<hkern u1="T" u2="&#xf3;" k="143" />
+<hkern u1="T" u2="&#xf2;" k="143" />
+<hkern u1="T" u2="&#xeb;" k="143" />
+<hkern u1="T" u2="&#xea;" k="143" />
+<hkern u1="T" u2="&#xe9;" k="143" />
+<hkern u1="T" u2="&#xe8;" k="143" />
+<hkern u1="T" u2="&#xe7;" k="143" />
+<hkern u1="T" u2="&#xe6;" k="164" />
+<hkern u1="T" u2="&#xe5;" k="164" />
+<hkern u1="T" u2="&#xe4;" k="164" />
+<hkern u1="T" u2="&#xe3;" k="164" />
+<hkern u1="T" u2="&#xe2;" k="164" />
+<hkern u1="T" u2="&#xe1;" k="164" />
+<hkern u1="T" u2="&#xe0;" k="143" />
+<hkern u1="T" u2="&#xd8;" k="41" />
+<hkern u1="T" u2="&#xd6;" k="41" />
+<hkern u1="T" u2="&#xd5;" k="41" />
+<hkern u1="T" u2="&#xd4;" k="41" />
+<hkern u1="T" u2="&#xd3;" k="41" />
+<hkern u1="T" u2="&#xd2;" k="41" />
+<hkern u1="T" u2="&#xc7;" k="41" />
+<hkern u1="T" u2="&#xc5;" k="143" />
+<hkern u1="T" u2="&#xc4;" k="143" />
+<hkern u1="T" u2="&#xc3;" k="143" />
+<hkern u1="T" u2="&#xc2;" k="143" />
+<hkern u1="T" u2="&#xc1;" k="143" />
+<hkern u1="T" u2="&#xc0;" k="143" />
+<hkern u1="T" u2="z" k="82" />
+<hkern u1="T" u2="y" k="41" />
+<hkern u1="T" u2="x" k="41" />
+<hkern u1="T" u2="w" k="41" />
+<hkern u1="T" u2="v" k="41" />
+<hkern u1="T" u2="u" k="102" />
+<hkern u1="T" u2="s" k="123" />
+<hkern u1="T" u2="r" k="102" />
+<hkern u1="T" u2="q" k="143" />
+<hkern u1="T" u2="p" k="102" />
+<hkern u1="T" u2="o" k="143" />
+<hkern u1="T" u2="n" k="102" />
+<hkern u1="T" u2="m" k="102" />
+<hkern u1="T" u2="g" k="143" />
+<hkern u1="T" u2="e" k="143" />
+<hkern u1="T" u2="d" k="143" />
+<hkern u1="T" u2="c" k="143" />
+<hkern u1="T" u2="a" k="164" />
+<hkern u1="T" u2="T" k="-41" />
+<hkern u1="T" u2="Q" k="41" />
+<hkern u1="T" u2="O" k="41" />
+<hkern u1="T" u2="G" k="41" />
+<hkern u1="T" u2="C" k="41" />
+<hkern u1="T" u2="A" k="143" />
+<hkern u1="T" u2="&#x3f;" k="-41" />
+<hkern u1="T" u2="&#x2e;" k="123" />
+<hkern u1="T" u2="&#x2d;" k="82" />
+<hkern u1="T" u2="&#x2c;" k="123" />
+<hkern u1="U" u2="&#x201e;" k="41" />
+<hkern u1="U" u2="&#x201a;" k="41" />
+<hkern u1="U" u2="&#xc5;" k="20" />
+<hkern u1="U" u2="&#xc4;" k="20" />
+<hkern u1="U" u2="&#xc3;" k="20" />
+<hkern u1="U" u2="&#xc2;" k="20" />
+<hkern u1="U" u2="&#xc1;" k="20" />
+<hkern u1="U" u2="&#xc0;" k="20" />
+<hkern u1="U" u2="A" k="20" />
+<hkern u1="U" u2="&#x2e;" k="41" />
+<hkern u1="U" u2="&#x2c;" k="41" />
+<hkern u1="V" u2="&#x201e;" k="102" />
+<hkern u1="V" u2="&#x201a;" k="102" />
+<hkern u1="V" u2="&#x153;" k="41" />
+<hkern u1="V" u2="&#x152;" k="20" />
+<hkern u1="V" u2="&#xfc;" k="20" />
+<hkern u1="V" u2="&#xfb;" k="20" />
+<hkern u1="V" u2="&#xfa;" k="20" />
+<hkern u1="V" u2="&#xf9;" k="20" />
+<hkern u1="V" u2="&#xf8;" k="41" />
+<hkern u1="V" u2="&#xf6;" k="41" />
+<hkern u1="V" u2="&#xf5;" k="41" />
+<hkern u1="V" u2="&#xf4;" k="41" />
+<hkern u1="V" u2="&#xf3;" k="41" />
+<hkern u1="V" u2="&#xf2;" k="41" />
+<hkern u1="V" u2="&#xeb;" k="41" />
+<hkern u1="V" u2="&#xea;" k="41" />
+<hkern u1="V" u2="&#xe9;" k="41" />
+<hkern u1="V" u2="&#xe8;" k="41" />
+<hkern u1="V" u2="&#xe7;" k="41" />
+<hkern u1="V" u2="&#xe6;" k="41" />
+<hkern u1="V" u2="&#xe5;" k="41" />
+<hkern u1="V" u2="&#xe4;" k="41" />
+<hkern u1="V" u2="&#xe3;" k="41" />
+<hkern u1="V" u2="&#xe2;" k="41" />
+<hkern u1="V" u2="&#xe1;" k="41" />
+<hkern u1="V" u2="&#xe0;" k="41" />
+<hkern u1="V" u2="&#xd8;" k="20" />
+<hkern u1="V" u2="&#xd6;" k="20" />
+<hkern u1="V" u2="&#xd5;" k="20" />
+<hkern u1="V" u2="&#xd4;" k="20" />
+<hkern u1="V" u2="&#xd3;" k="20" />
+<hkern u1="V" u2="&#xd2;" k="20" />
+<hkern u1="V" u2="&#xc7;" k="20" />
+<hkern u1="V" u2="&#xc5;" k="82" />
+<hkern u1="V" u2="&#xc4;" k="82" />
+<hkern u1="V" u2="&#xc3;" k="82" />
+<hkern u1="V" u2="&#xc2;" k="82" />
+<hkern u1="V" u2="&#xc1;" k="82" />
+<hkern u1="V" u2="&#xc0;" k="82" />
+<hkern u1="V" u2="u" k="20" />
+<hkern u1="V" u2="s" k="20" />
+<hkern u1="V" u2="r" k="20" />
+<hkern u1="V" u2="q" k="41" />
+<hkern u1="V" u2="p" k="20" />
+<hkern u1="V" u2="o" k="41" />
+<hkern u1="V" u2="n" k="20" />
+<hkern u1="V" u2="m" k="20" />
+<hkern u1="V" u2="g" k="20" />
+<hkern u1="V" u2="e" k="41" />
+<hkern u1="V" u2="d" k="41" />
+<hkern u1="V" u2="c" k="41" />
+<hkern u1="V" u2="a" k="41" />
+<hkern u1="V" u2="Q" k="20" />
+<hkern u1="V" u2="O" k="20" />
+<hkern u1="V" u2="G" k="20" />
+<hkern u1="V" u2="C" k="20" />
+<hkern u1="V" u2="A" k="82" />
+<hkern u1="V" u2="&#x3f;" k="-41" />
+<hkern u1="V" u2="&#x2e;" k="102" />
+<hkern u1="V" u2="&#x2c;" k="102" />
+<hkern u1="W" u2="&#x201e;" k="102" />
+<hkern u1="W" u2="&#x201a;" k="102" />
+<hkern u1="W" u2="&#x153;" k="41" />
+<hkern u1="W" u2="&#x152;" k="20" />
+<hkern u1="W" u2="&#xfc;" k="20" />
+<hkern u1="W" u2="&#xfb;" k="20" />
+<hkern u1="W" u2="&#xfa;" k="20" />
+<hkern u1="W" u2="&#xf9;" k="20" />
+<hkern u1="W" u2="&#xf8;" k="41" />
+<hkern u1="W" u2="&#xf6;" k="41" />
+<hkern u1="W" u2="&#xf5;" k="41" />
+<hkern u1="W" u2="&#xf4;" k="41" />
+<hkern u1="W" u2="&#xf3;" k="41" />
+<hkern u1="W" u2="&#xf2;" k="41" />
+<hkern u1="W" u2="&#xeb;" k="41" />
+<hkern u1="W" u2="&#xea;" k="41" />
+<hkern u1="W" u2="&#xe9;" k="41" />
+<hkern u1="W" u2="&#xe8;" k="41" />
+<hkern u1="W" u2="&#xe7;" k="41" />
+<hkern u1="W" u2="&#xe6;" k="41" />
+<hkern u1="W" u2="&#xe5;" k="41" />
+<hkern u1="W" u2="&#xe4;" k="41" />
+<hkern u1="W" u2="&#xe3;" k="41" />
+<hkern u1="W" u2="&#xe2;" k="41" />
+<hkern u1="W" u2="&#xe1;" k="41" />
+<hkern u1="W" u2="&#xe0;" k="41" />
+<hkern u1="W" u2="&#xd8;" k="20" />
+<hkern u1="W" u2="&#xd6;" k="20" />
+<hkern u1="W" u2="&#xd5;" k="20" />
+<hkern u1="W" u2="&#xd4;" k="20" />
+<hkern u1="W" u2="&#xd3;" k="20" />
+<hkern u1="W" u2="&#xd2;" k="20" />
+<hkern u1="W" u2="&#xc7;" k="20" />
+<hkern u1="W" u2="&#xc5;" k="82" />
+<hkern u1="W" u2="&#xc4;" k="82" />
+<hkern u1="W" u2="&#xc3;" k="82" />
+<hkern u1="W" u2="&#xc2;" k="82" />
+<hkern u1="W" u2="&#xc1;" k="82" />
+<hkern u1="W" u2="&#xc0;" k="82" />
+<hkern u1="W" u2="u" k="20" />
+<hkern u1="W" u2="s" k="20" />
+<hkern u1="W" u2="r" k="20" />
+<hkern u1="W" u2="q" k="41" />
+<hkern u1="W" u2="p" k="20" />
+<hkern u1="W" u2="o" k="41" />
+<hkern u1="W" u2="n" k="20" />
+<hkern u1="W" u2="m" k="20" />
+<hkern u1="W" u2="g" k="20" />
+<hkern u1="W" u2="e" k="41" />
+<hkern u1="W" u2="d" k="41" />
+<hkern u1="W" u2="c" k="41" />
+<hkern u1="W" u2="a" k="41" />
+<hkern u1="W" u2="Q" k="20" />
+<hkern u1="W" u2="O" k="20" />
+<hkern u1="W" u2="G" k="20" />
+<hkern u1="W" u2="C" k="20" />
+<hkern u1="W" u2="A" k="82" />
+<hkern u1="W" u2="&#x3f;" k="-41" />
+<hkern u1="W" u2="&#x2e;" k="102" />
+<hkern u1="W" u2="&#x2c;" k="102" />
+<hkern u1="X" u2="&#x152;" k="41" />
+<hkern u1="X" u2="&#xd8;" k="41" />
+<hkern u1="X" u2="&#xd6;" k="41" />
+<hkern u1="X" u2="&#xd5;" k="41" />
+<hkern u1="X" u2="&#xd4;" k="41" />
+<hkern u1="X" u2="&#xd3;" k="41" />
+<hkern u1="X" u2="&#xd2;" k="41" />
+<hkern u1="X" u2="&#xc7;" k="41" />
+<hkern u1="X" u2="Q" k="41" />
+<hkern u1="X" u2="O" k="41" />
+<hkern u1="X" u2="G" k="41" />
+<hkern u1="X" u2="C" k="41" />
+<hkern u1="Y" u2="&#x201e;" k="123" />
+<hkern u1="Y" u2="&#x201a;" k="123" />
+<hkern u1="Y" u2="&#x153;" k="102" />
+<hkern u1="Y" u2="&#x152;" k="41" />
+<hkern u1="Y" u2="&#xfc;" k="61" />
+<hkern u1="Y" u2="&#xfb;" k="61" />
+<hkern u1="Y" u2="&#xfa;" k="61" />
+<hkern u1="Y" u2="&#xf9;" k="61" />
+<hkern u1="Y" u2="&#xf8;" k="102" />
+<hkern u1="Y" u2="&#xf6;" k="102" />
+<hkern u1="Y" u2="&#xf5;" k="102" />
+<hkern u1="Y" u2="&#xf4;" k="102" />
+<hkern u1="Y" u2="&#xf3;" k="102" />
+<hkern u1="Y" u2="&#xf2;" k="102" />
+<hkern u1="Y" u2="&#xeb;" k="102" />
+<hkern u1="Y" u2="&#xea;" k="102" />
+<hkern u1="Y" u2="&#xe9;" k="102" />
+<hkern u1="Y" u2="&#xe8;" k="102" />
+<hkern u1="Y" u2="&#xe7;" k="102" />
+<hkern u1="Y" u2="&#xe6;" k="102" />
+<hkern u1="Y" u2="&#xe5;" k="102" />
+<hkern u1="Y" u2="&#xe4;" k="102" />
+<hkern u1="Y" u2="&#xe3;" k="102" />
+<hkern u1="Y" u2="&#xe2;" k="102" />
+<hkern u1="Y" u2="&#xe1;" k="102" />
+<hkern u1="Y" u2="&#xe0;" k="102" />
+<hkern u1="Y" u2="&#xd8;" k="41" />
+<hkern u1="Y" u2="&#xd6;" k="41" />
+<hkern u1="Y" u2="&#xd5;" k="41" />
+<hkern u1="Y" u2="&#xd4;" k="41" />
+<hkern u1="Y" u2="&#xd3;" k="41" />
+<hkern u1="Y" u2="&#xd2;" k="41" />
+<hkern u1="Y" u2="&#xc7;" k="41" />
+<hkern u1="Y" u2="&#xc5;" k="123" />
+<hkern u1="Y" u2="&#xc4;" k="123" />
+<hkern u1="Y" u2="&#xc3;" k="123" />
+<hkern u1="Y" u2="&#xc2;" k="123" />
+<hkern u1="Y" u2="&#xc1;" k="123" />
+<hkern u1="Y" u2="&#xc0;" k="123" />
+<hkern u1="Y" u2="z" k="41" />
+<hkern u1="Y" u2="u" k="61" />
+<hkern u1="Y" u2="s" k="82" />
+<hkern u1="Y" u2="r" k="61" />
+<hkern u1="Y" u2="q" k="102" />
+<hkern u1="Y" u2="p" k="61" />
+<hkern u1="Y" u2="o" k="102" />
+<hkern u1="Y" u2="n" k="61" />
+<hkern u1="Y" u2="m" k="61" />
+<hkern u1="Y" u2="g" k="41" />
+<hkern u1="Y" u2="e" k="102" />
+<hkern u1="Y" u2="d" k="102" />
+<hkern u1="Y" u2="c" k="102" />
+<hkern u1="Y" u2="a" k="102" />
+<hkern u1="Y" u2="Q" k="41" />
+<hkern u1="Y" u2="O" k="41" />
+<hkern u1="Y" u2="G" k="41" />
+<hkern u1="Y" u2="C" k="41" />
+<hkern u1="Y" u2="A" k="123" />
+<hkern u1="Y" u2="&#x3f;" k="-41" />
+<hkern u1="Y" u2="&#x2e;" k="123" />
+<hkern u1="Y" u2="&#x2c;" k="123" />
+<hkern u1="Z" u2="&#x152;" k="20" />
+<hkern u1="Z" u2="&#xd8;" k="20" />
+<hkern u1="Z" u2="&#xd6;" k="20" />
+<hkern u1="Z" u2="&#xd5;" k="20" />
+<hkern u1="Z" u2="&#xd4;" k="20" />
+<hkern u1="Z" u2="&#xd3;" k="20" />
+<hkern u1="Z" u2="&#xd2;" k="20" />
+<hkern u1="Z" u2="&#xc7;" k="20" />
+<hkern u1="Z" u2="Q" k="20" />
+<hkern u1="Z" u2="O" k="20" />
+<hkern u1="Z" u2="G" k="20" />
+<hkern u1="Z" u2="C" k="20" />
+<hkern u1="[" u2="J" k="-184" />
+<hkern u1="a" u2="&#x201d;" k="20" />
+<hkern u1="a" u2="&#x2019;" k="20" />
+<hkern u1="a" u2="&#x27;" k="20" />
+<hkern u1="a" u2="&#x22;" k="20" />
+<hkern u1="b" u2="&#x201d;" k="20" />
+<hkern u1="b" u2="&#x2019;" k="20" />
+<hkern u1="b" u2="&#xfd;" k="41" />
+<hkern u1="b" u2="z" k="20" />
+<hkern u1="b" u2="y" k="41" />
+<hkern u1="b" u2="x" k="41" />
+<hkern u1="b" u2="w" k="41" />
+<hkern u1="b" u2="v" k="41" />
+<hkern u1="b" u2="&#x27;" k="20" />
+<hkern u1="b" u2="&#x22;" k="20" />
+<hkern u1="c" u2="&#x201d;" k="-41" />
+<hkern u1="c" u2="&#x2019;" k="-41" />
+<hkern u1="c" u2="&#x27;" k="-41" />
+<hkern u1="c" u2="&#x22;" k="-41" />
+<hkern u1="e" u2="&#x201d;" k="20" />
+<hkern u1="e" u2="&#x2019;" k="20" />
+<hkern u1="e" u2="&#xfd;" k="41" />
+<hkern u1="e" u2="z" k="20" />
+<hkern u1="e" u2="y" k="41" />
+<hkern u1="e" u2="x" k="41" />
+<hkern u1="e" u2="w" k="41" />
+<hkern u1="e" u2="v" k="41" />
+<hkern u1="e" u2="&#x27;" k="20" />
+<hkern u1="e" u2="&#x22;" k="20" />
+<hkern u1="f" u2="&#x201d;" k="-123" />
+<hkern u1="f" u2="&#x2019;" k="-123" />
+<hkern u1="f" u2="&#x27;" k="-123" />
+<hkern u1="f" u2="&#x22;" k="-123" />
+<hkern u1="h" u2="&#x201d;" k="20" />
+<hkern u1="h" u2="&#x2019;" k="20" />
+<hkern u1="h" u2="&#x27;" k="20" />
+<hkern u1="h" u2="&#x22;" k="20" />
+<hkern u1="k" u2="&#x153;" k="41" />
+<hkern u1="k" u2="&#xf8;" k="41" />
+<hkern u1="k" u2="&#xf6;" k="41" />
+<hkern u1="k" u2="&#xf5;" k="41" />
+<hkern u1="k" u2="&#xf4;" k="41" />
+<hkern u1="k" u2="&#xf3;" k="41" />
+<hkern u1="k" u2="&#xf2;" k="41" />
+<hkern u1="k" u2="&#xeb;" k="41" />
+<hkern u1="k" u2="&#xea;" k="41" />
+<hkern u1="k" u2="&#xe9;" k="41" />
+<hkern u1="k" u2="&#xe8;" k="41" />
+<hkern u1="k" u2="&#xe7;" k="41" />
+<hkern u1="k" u2="&#xe0;" k="41" />
+<hkern u1="k" u2="q" k="41" />
+<hkern u1="k" u2="o" k="41" />
+<hkern u1="k" u2="e" k="41" />
+<hkern u1="k" u2="d" k="41" />
+<hkern u1="k" u2="c" k="41" />
+<hkern u1="m" u2="&#x201d;" k="20" />
+<hkern u1="m" u2="&#x2019;" k="20" />
+<hkern u1="m" u2="&#x27;" k="20" />
+<hkern u1="m" u2="&#x22;" k="20" />
+<hkern u1="n" u2="&#x201d;" k="20" />
+<hkern u1="n" u2="&#x2019;" k="20" />
+<hkern u1="n" u2="&#x27;" k="20" />
+<hkern u1="n" u2="&#x22;" k="20" />
+<hkern u1="o" u2="&#x201d;" k="20" />
+<hkern u1="o" u2="&#x2019;" k="20" />
+<hkern u1="o" u2="&#xfd;" k="41" />
+<hkern u1="o" u2="z" k="20" />
+<hkern u1="o" u2="y" k="41" />
+<hkern u1="o" u2="x" k="41" />
+<hkern u1="o" u2="w" k="41" />
+<hkern u1="o" u2="v" k="41" />
+<hkern u1="o" u2="&#x27;" k="20" />
+<hkern u1="o" u2="&#x22;" k="20" />
+<hkern u1="p" u2="&#x201d;" k="20" />
+<hkern u1="p" u2="&#x2019;" k="20" />
+<hkern u1="p" u2="&#xfd;" k="41" />
+<hkern u1="p" u2="z" k="20" />
+<hkern u1="p" u2="y" k="41" />
+<hkern u1="p" u2="x" k="41" />
+<hkern u1="p" u2="w" k="41" />
+<hkern u1="p" u2="v" k="41" />
+<hkern u1="p" u2="&#x27;" k="20" />
+<hkern u1="p" u2="&#x22;" k="20" />
+<hkern u1="r" u2="&#x201d;" k="-82" />
+<hkern u1="r" u2="&#x2019;" k="-82" />
+<hkern u1="r" u2="&#x153;" k="41" />
+<hkern u1="r" u2="&#xf8;" k="41" />
+<hkern u1="r" u2="&#xf6;" k="41" />
+<hkern u1="r" u2="&#xf5;" k="41" />
+<hkern u1="r" u2="&#xf4;" k="41" />
+<hkern u1="r" u2="&#xf3;" k="41" />
+<hkern u1="r" u2="&#xf2;" k="41" />
+<hkern u1="r" u2="&#xeb;" k="41" />
+<hkern u1="r" u2="&#xea;" k="41" />
+<hkern u1="r" u2="&#xe9;" k="41" />
+<hkern u1="r" u2="&#xe8;" k="41" />
+<hkern u1="r" u2="&#xe7;" k="41" />
+<hkern u1="r" u2="&#xe6;" k="41" />
+<hkern u1="r" u2="&#xe5;" k="41" />
+<hkern u1="r" u2="&#xe4;" k="41" />
+<hkern u1="r" u2="&#xe3;" k="41" />
+<hkern u1="r" u2="&#xe2;" k="41" />
+<hkern u1="r" u2="&#xe1;" k="41" />
+<hkern u1="r" u2="&#xe0;" k="41" />
+<hkern u1="r" u2="q" k="41" />
+<hkern u1="r" u2="o" k="41" />
+<hkern u1="r" u2="g" k="20" />
+<hkern u1="r" u2="e" k="41" />
+<hkern u1="r" u2="d" k="41" />
+<hkern u1="r" u2="c" k="41" />
+<hkern u1="r" u2="a" k="41" />
+<hkern u1="r" u2="&#x27;" k="-82" />
+<hkern u1="r" u2="&#x22;" k="-82" />
+<hkern u1="t" u2="&#x201d;" k="-41" />
+<hkern u1="t" u2="&#x2019;" k="-41" />
+<hkern u1="t" u2="&#x27;" k="-41" />
+<hkern u1="t" u2="&#x22;" k="-41" />
+<hkern u1="v" u2="&#x201e;" k="82" />
+<hkern u1="v" u2="&#x201d;" k="-82" />
+<hkern u1="v" u2="&#x201a;" k="82" />
+<hkern u1="v" u2="&#x2019;" k="-82" />
+<hkern u1="v" u2="&#x3f;" k="-41" />
+<hkern u1="v" u2="&#x2e;" k="82" />
+<hkern u1="v" u2="&#x2c;" k="82" />
+<hkern u1="v" u2="&#x27;" k="-82" />
+<hkern u1="v" u2="&#x22;" k="-82" />
+<hkern u1="w" u2="&#x201e;" k="82" />
+<hkern u1="w" u2="&#x201d;" k="-82" />
+<hkern u1="w" u2="&#x201a;" k="82" />
+<hkern u1="w" u2="&#x2019;" k="-82" />
+<hkern u1="w" u2="&#x3f;" k="-41" />
+<hkern u1="w" u2="&#x2e;" k="82" />
+<hkern u1="w" u2="&#x2c;" k="82" />
+<hkern u1="w" u2="&#x27;" k="-82" />
+<hkern u1="w" u2="&#x22;" k="-82" />
+<hkern u1="x" u2="&#x153;" k="41" />
+<hkern u1="x" u2="&#xf8;" k="41" />
+<hkern u1="x" u2="&#xf6;" k="41" />
+<hkern u1="x" u2="&#xf5;" k="41" />
+<hkern u1="x" u2="&#xf4;" k="41" />
+<hkern u1="x" u2="&#xf3;" k="41" />
+<hkern u1="x" u2="&#xf2;" k="41" />
+<hkern u1="x" u2="&#xeb;" k="41" />
+<hkern u1="x" u2="&#xea;" k="41" />
+<hkern u1="x" u2="&#xe9;" k="41" />
+<hkern u1="x" u2="&#xe8;" k="41" />
+<hkern u1="x" u2="&#xe7;" k="41" />
+<hkern u1="x" u2="&#xe0;" k="41" />
+<hkern u1="x" u2="q" k="41" />
+<hkern u1="x" u2="o" k="41" />
+<hkern u1="x" u2="e" k="41" />
+<hkern u1="x" u2="d" k="41" />
+<hkern u1="x" u2="c" k="41" />
+<hkern u1="y" u2="&#x201e;" k="82" />
+<hkern u1="y" u2="&#x201d;" k="-82" />
+<hkern u1="y" u2="&#x201a;" k="82" />
+<hkern u1="y" u2="&#x2019;" k="-82" />
+<hkern u1="y" u2="&#x3f;" k="-41" />
+<hkern u1="y" u2="&#x2e;" k="82" />
+<hkern u1="y" u2="&#x2c;" k="82" />
+<hkern u1="y" u2="&#x27;" k="-82" />
+<hkern u1="y" u2="&#x22;" k="-82" />
+<hkern u1="&#x7b;" u2="J" k="-184" />
+<hkern u1="&#xc0;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc0;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc0;" u2="&#x178;" k="123" />
+<hkern u1="&#xc0;" u2="&#x152;" k="41" />
+<hkern u1="&#xc0;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc0;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc0;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc0;" u2="Y" k="123" />
+<hkern u1="&#xc0;" u2="W" k="82" />
+<hkern u1="&#xc0;" u2="V" k="82" />
+<hkern u1="&#xc0;" u2="T" k="143" />
+<hkern u1="&#xc0;" u2="Q" k="41" />
+<hkern u1="&#xc0;" u2="O" k="41" />
+<hkern u1="&#xc0;" u2="J" k="-266" />
+<hkern u1="&#xc0;" u2="G" k="41" />
+<hkern u1="&#xc0;" u2="C" k="41" />
+<hkern u1="&#xc0;" u2="&#x27;" k="143" />
+<hkern u1="&#xc0;" u2="&#x22;" k="143" />
+<hkern u1="&#xc1;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc1;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc1;" u2="&#x178;" k="123" />
+<hkern u1="&#xc1;" u2="&#x152;" k="41" />
+<hkern u1="&#xc1;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc1;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc1;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc1;" u2="Y" k="123" />
+<hkern u1="&#xc1;" u2="W" k="82" />
+<hkern u1="&#xc1;" u2="V" k="82" />
+<hkern u1="&#xc1;" u2="T" k="143" />
+<hkern u1="&#xc1;" u2="Q" k="41" />
+<hkern u1="&#xc1;" u2="O" k="41" />
+<hkern u1="&#xc1;" u2="J" k="-266" />
+<hkern u1="&#xc1;" u2="G" k="41" />
+<hkern u1="&#xc1;" u2="C" k="41" />
+<hkern u1="&#xc1;" u2="&#x27;" k="143" />
+<hkern u1="&#xc1;" u2="&#x22;" k="143" />
+<hkern u1="&#xc2;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc2;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc2;" u2="&#x178;" k="123" />
+<hkern u1="&#xc2;" u2="&#x152;" k="41" />
+<hkern u1="&#xc2;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc2;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc2;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc2;" u2="Y" k="123" />
+<hkern u1="&#xc2;" u2="W" k="82" />
+<hkern u1="&#xc2;" u2="V" k="82" />
+<hkern u1="&#xc2;" u2="T" k="143" />
+<hkern u1="&#xc2;" u2="Q" k="41" />
+<hkern u1="&#xc2;" u2="O" k="41" />
+<hkern u1="&#xc2;" u2="J" k="-266" />
+<hkern u1="&#xc2;" u2="G" k="41" />
+<hkern u1="&#xc2;" u2="C" k="41" />
+<hkern u1="&#xc2;" u2="&#x27;" k="143" />
+<hkern u1="&#xc2;" u2="&#x22;" k="143" />
+<hkern u1="&#xc3;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc3;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc3;" u2="&#x178;" k="123" />
+<hkern u1="&#xc3;" u2="&#x152;" k="41" />
+<hkern u1="&#xc3;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc3;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc3;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc3;" u2="Y" k="123" />
+<hkern u1="&#xc3;" u2="W" k="82" />
+<hkern u1="&#xc3;" u2="V" k="82" />
+<hkern u1="&#xc3;" u2="T" k="143" />
+<hkern u1="&#xc3;" u2="Q" k="41" />
+<hkern u1="&#xc3;" u2="O" k="41" />
+<hkern u1="&#xc3;" u2="J" k="-266" />
+<hkern u1="&#xc3;" u2="G" k="41" />
+<hkern u1="&#xc3;" u2="C" k="41" />
+<hkern u1="&#xc3;" u2="&#x27;" k="143" />
+<hkern u1="&#xc3;" u2="&#x22;" k="143" />
+<hkern u1="&#xc4;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc4;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc4;" u2="&#x178;" k="123" />
+<hkern u1="&#xc4;" u2="&#x152;" k="41" />
+<hkern u1="&#xc4;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc4;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc4;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc4;" u2="Y" k="123" />
+<hkern u1="&#xc4;" u2="W" k="82" />
+<hkern u1="&#xc4;" u2="V" k="82" />
+<hkern u1="&#xc4;" u2="T" k="143" />
+<hkern u1="&#xc4;" u2="Q" k="41" />
+<hkern u1="&#xc4;" u2="O" k="41" />
+<hkern u1="&#xc4;" u2="J" k="-266" />
+<hkern u1="&#xc4;" u2="G" k="41" />
+<hkern u1="&#xc4;" u2="C" k="41" />
+<hkern u1="&#xc4;" u2="&#x27;" k="143" />
+<hkern u1="&#xc4;" u2="&#x22;" k="143" />
+<hkern u1="&#xc5;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc5;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc5;" u2="&#x178;" k="123" />
+<hkern u1="&#xc5;" u2="&#x152;" k="41" />
+<hkern u1="&#xc5;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc5;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc5;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc5;" u2="Y" k="123" />
+<hkern u1="&#xc5;" u2="W" k="82" />
+<hkern u1="&#xc5;" u2="V" k="82" />
+<hkern u1="&#xc5;" u2="T" k="143" />
+<hkern u1="&#xc5;" u2="Q" k="41" />
+<hkern u1="&#xc5;" u2="O" k="41" />
+<hkern u1="&#xc5;" u2="J" k="-266" />
+<hkern u1="&#xc5;" u2="G" k="41" />
+<hkern u1="&#xc5;" u2="C" k="41" />
+<hkern u1="&#xc5;" u2="&#x27;" k="143" />
+<hkern u1="&#xc5;" u2="&#x22;" k="143" />
+<hkern u1="&#xc6;" u2="J" k="-123" />
+<hkern u1="&#xc7;" u2="&#x152;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc7;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc7;" u2="Q" k="41" />
+<hkern u1="&#xc7;" u2="O" k="41" />
+<hkern u1="&#xc7;" u2="G" k="41" />
+<hkern u1="&#xc7;" u2="C" k="41" />
+<hkern u1="&#xc8;" u2="J" k="-123" />
+<hkern u1="&#xc9;" u2="J" k="-123" />
+<hkern u1="&#xca;" u2="J" k="-123" />
+<hkern u1="&#xcb;" u2="J" k="-123" />
+<hkern u1="&#xd0;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd0;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd0;" u2="&#x178;" k="20" />
+<hkern u1="&#xd0;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd0;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd0;" u2="Z" k="20" />
+<hkern u1="&#xd0;" u2="Y" k="20" />
+<hkern u1="&#xd0;" u2="X" k="41" />
+<hkern u1="&#xd0;" u2="W" k="20" />
+<hkern u1="&#xd0;" u2="V" k="20" />
+<hkern u1="&#xd0;" u2="T" k="61" />
+<hkern u1="&#xd0;" u2="A" k="41" />
+<hkern u1="&#xd0;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd0;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd2;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd2;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd2;" u2="&#x178;" k="20" />
+<hkern u1="&#xd2;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd2;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd2;" u2="Z" k="20" />
+<hkern u1="&#xd2;" u2="Y" k="20" />
+<hkern u1="&#xd2;" u2="X" k="41" />
+<hkern u1="&#xd2;" u2="W" k="20" />
+<hkern u1="&#xd2;" u2="V" k="20" />
+<hkern u1="&#xd2;" u2="T" k="61" />
+<hkern u1="&#xd2;" u2="A" k="41" />
+<hkern u1="&#xd2;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd2;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd3;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd3;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd3;" u2="&#x178;" k="20" />
+<hkern u1="&#xd3;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd3;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd3;" u2="Z" k="20" />
+<hkern u1="&#xd3;" u2="Y" k="20" />
+<hkern u1="&#xd3;" u2="X" k="41" />
+<hkern u1="&#xd3;" u2="W" k="20" />
+<hkern u1="&#xd3;" u2="V" k="20" />
+<hkern u1="&#xd3;" u2="T" k="61" />
+<hkern u1="&#xd3;" u2="A" k="41" />
+<hkern u1="&#xd3;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd3;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd4;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd4;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd4;" u2="&#x178;" k="20" />
+<hkern u1="&#xd4;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd4;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd4;" u2="Z" k="20" />
+<hkern u1="&#xd4;" u2="Y" k="20" />
+<hkern u1="&#xd4;" u2="X" k="41" />
+<hkern u1="&#xd4;" u2="W" k="20" />
+<hkern u1="&#xd4;" u2="V" k="20" />
+<hkern u1="&#xd4;" u2="T" k="61" />
+<hkern u1="&#xd4;" u2="A" k="41" />
+<hkern u1="&#xd4;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd4;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd5;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd5;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd5;" u2="&#x178;" k="20" />
+<hkern u1="&#xd5;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd5;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd5;" u2="Z" k="20" />
+<hkern u1="&#xd5;" u2="Y" k="20" />
+<hkern u1="&#xd5;" u2="X" k="41" />
+<hkern u1="&#xd5;" u2="W" k="20" />
+<hkern u1="&#xd5;" u2="V" k="20" />
+<hkern u1="&#xd5;" u2="T" k="61" />
+<hkern u1="&#xd5;" u2="A" k="41" />
+<hkern u1="&#xd5;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd5;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd6;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd6;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd6;" u2="&#x178;" k="20" />
+<hkern u1="&#xd6;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd6;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd6;" u2="Z" k="20" />
+<hkern u1="&#xd6;" u2="Y" k="20" />
+<hkern u1="&#xd6;" u2="X" k="41" />
+<hkern u1="&#xd6;" u2="W" k="20" />
+<hkern u1="&#xd6;" u2="V" k="20" />
+<hkern u1="&#xd6;" u2="T" k="61" />
+<hkern u1="&#xd6;" u2="A" k="41" />
+<hkern u1="&#xd6;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd6;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd8;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd8;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd8;" u2="&#x178;" k="20" />
+<hkern u1="&#xd8;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd8;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd8;" u2="Z" k="20" />
+<hkern u1="&#xd8;" u2="Y" k="20" />
+<hkern u1="&#xd8;" u2="X" k="41" />
+<hkern u1="&#xd8;" u2="W" k="20" />
+<hkern u1="&#xd8;" u2="V" k="20" />
+<hkern u1="&#xd8;" u2="T" k="61" />
+<hkern u1="&#xd8;" u2="A" k="41" />
+<hkern u1="&#xd8;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd8;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd9;" u2="&#x201e;" k="41" />
+<hkern u1="&#xd9;" u2="&#x201a;" k="41" />
+<hkern u1="&#xd9;" u2="&#xc5;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc4;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc3;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc2;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc1;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc0;" k="20" />
+<hkern u1="&#xd9;" u2="A" k="20" />
+<hkern u1="&#xd9;" u2="&#x2e;" k="41" />
+<hkern u1="&#xd9;" u2="&#x2c;" k="41" />
+<hkern u1="&#xda;" u2="&#x201e;" k="41" />
+<hkern u1="&#xda;" u2="&#x201a;" k="41" />
+<hkern u1="&#xda;" u2="&#xc5;" k="20" />
+<hkern u1="&#xda;" u2="&#xc4;" k="20" />
+<hkern u1="&#xda;" u2="&#xc3;" k="20" />
+<hkern u1="&#xda;" u2="&#xc2;" k="20" />
+<hkern u1="&#xda;" u2="&#xc1;" k="20" />
+<hkern u1="&#xda;" u2="&#xc0;" k="20" />
+<hkern u1="&#xda;" u2="A" k="20" />
+<hkern u1="&#xda;" u2="&#x2e;" k="41" />
+<hkern u1="&#xda;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdb;" u2="&#x201e;" k="41" />
+<hkern u1="&#xdb;" u2="&#x201a;" k="41" />
+<hkern u1="&#xdb;" u2="&#xc5;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc4;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc3;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc2;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc1;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc0;" k="20" />
+<hkern u1="&#xdb;" u2="A" k="20" />
+<hkern u1="&#xdb;" u2="&#x2e;" k="41" />
+<hkern u1="&#xdb;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdc;" u2="&#x201e;" k="41" />
+<hkern u1="&#xdc;" u2="&#x201a;" k="41" />
+<hkern u1="&#xdc;" u2="&#xc5;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc4;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc3;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc2;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc1;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc0;" k="20" />
+<hkern u1="&#xdc;" u2="A" k="20" />
+<hkern u1="&#xdc;" u2="&#x2e;" k="41" />
+<hkern u1="&#xdc;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdd;" u2="&#x201e;" k="123" />
+<hkern u1="&#xdd;" u2="&#x201a;" k="123" />
+<hkern u1="&#xdd;" u2="&#x153;" k="102" />
+<hkern u1="&#xdd;" u2="&#x152;" k="41" />
+<hkern u1="&#xdd;" u2="&#xfc;" k="61" />
+<hkern u1="&#xdd;" u2="&#xfb;" k="61" />
+<hkern u1="&#xdd;" u2="&#xfa;" k="61" />
+<hkern u1="&#xdd;" u2="&#xf9;" k="61" />
+<hkern u1="&#xdd;" u2="&#xf8;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf6;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf5;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf4;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf3;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf2;" k="102" />
+<hkern u1="&#xdd;" u2="&#xeb;" k="102" />
+<hkern u1="&#xdd;" u2="&#xea;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe9;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe8;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe7;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe6;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe5;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe4;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe3;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe2;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe1;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe0;" k="102" />
+<hkern u1="&#xdd;" u2="&#xd8;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd6;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd5;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd4;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd3;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd2;" k="41" />
+<hkern u1="&#xdd;" u2="&#xc7;" k="41" />
+<hkern u1="&#xdd;" u2="&#xc5;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc4;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc3;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc2;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc1;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc0;" k="123" />
+<hkern u1="&#xdd;" u2="z" k="41" />
+<hkern u1="&#xdd;" u2="u" k="61" />
+<hkern u1="&#xdd;" u2="s" k="82" />
+<hkern u1="&#xdd;" u2="r" k="61" />
+<hkern u1="&#xdd;" u2="q" k="102" />
+<hkern u1="&#xdd;" u2="p" k="61" />
+<hkern u1="&#xdd;" u2="o" k="102" />
+<hkern u1="&#xdd;" u2="n" k="61" />
+<hkern u1="&#xdd;" u2="m" k="61" />
+<hkern u1="&#xdd;" u2="g" k="41" />
+<hkern u1="&#xdd;" u2="e" k="102" />
+<hkern u1="&#xdd;" u2="d" k="102" />
+<hkern u1="&#xdd;" u2="c" k="102" />
+<hkern u1="&#xdd;" u2="a" k="102" />
+<hkern u1="&#xdd;" u2="Q" k="41" />
+<hkern u1="&#xdd;" u2="O" k="41" />
+<hkern u1="&#xdd;" u2="G" k="41" />
+<hkern u1="&#xdd;" u2="C" k="41" />
+<hkern u1="&#xdd;" u2="A" k="123" />
+<hkern u1="&#xdd;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xdd;" u2="&#x2e;" k="123" />
+<hkern u1="&#xdd;" u2="&#x2c;" k="123" />
+<hkern u1="&#xde;" u2="&#x201e;" k="266" />
+<hkern u1="&#xde;" u2="&#x201a;" k="266" />
+<hkern u1="&#xde;" u2="&#xc5;" k="102" />
+<hkern u1="&#xde;" u2="&#xc4;" k="102" />
+<hkern u1="&#xde;" u2="&#xc3;" k="102" />
+<hkern u1="&#xde;" u2="&#xc2;" k="102" />
+<hkern u1="&#xde;" u2="&#xc1;" k="102" />
+<hkern u1="&#xde;" u2="&#xc0;" k="102" />
+<hkern u1="&#xde;" u2="Z" k="20" />
+<hkern u1="&#xde;" u2="X" k="41" />
+<hkern u1="&#xde;" u2="A" k="102" />
+<hkern u1="&#xde;" u2="&#x2e;" k="266" />
+<hkern u1="&#xde;" u2="&#x2c;" k="266" />
+<hkern u1="&#xe0;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe0;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe0;" u2="&#x27;" k="20" />
+<hkern u1="&#xe0;" u2="&#x22;" k="20" />
+<hkern u1="&#xe1;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe1;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe1;" u2="&#x27;" k="20" />
+<hkern u1="&#xe1;" u2="&#x22;" k="20" />
+<hkern u1="&#xe2;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe2;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe2;" u2="&#x27;" k="20" />
+<hkern u1="&#xe2;" u2="&#x22;" k="20" />
+<hkern u1="&#xe3;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe3;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe3;" u2="&#x27;" k="20" />
+<hkern u1="&#xe3;" u2="&#x22;" k="20" />
+<hkern u1="&#xe4;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe4;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe4;" u2="&#x27;" k="20" />
+<hkern u1="&#xe4;" u2="&#x22;" k="20" />
+<hkern u1="&#xe5;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe5;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe5;" u2="&#x27;" k="20" />
+<hkern u1="&#xe5;" u2="&#x22;" k="20" />
+<hkern u1="&#xe8;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe8;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe8;" u2="&#xfd;" k="41" />
+<hkern u1="&#xe8;" u2="z" k="20" />
+<hkern u1="&#xe8;" u2="y" k="41" />
+<hkern u1="&#xe8;" u2="x" k="41" />
+<hkern u1="&#xe8;" u2="w" k="41" />
+<hkern u1="&#xe8;" u2="v" k="41" />
+<hkern u1="&#xe8;" u2="&#x27;" k="20" />
+<hkern u1="&#xe8;" u2="&#x22;" k="20" />
+<hkern u1="&#xe9;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe9;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe9;" u2="&#xfd;" k="41" />
+<hkern u1="&#xe9;" u2="z" k="20" />
+<hkern u1="&#xe9;" u2="y" k="41" />
+<hkern u1="&#xe9;" u2="x" k="41" />
+<hkern u1="&#xe9;" u2="w" k="41" />
+<hkern u1="&#xe9;" u2="v" k="41" />
+<hkern u1="&#xe9;" u2="&#x27;" k="20" />
+<hkern u1="&#xe9;" u2="&#x22;" k="20" />
+<hkern u1="&#xea;" u2="&#x201d;" k="20" />
+<hkern u1="&#xea;" u2="&#x2019;" k="20" />
+<hkern u1="&#xea;" u2="&#xfd;" k="41" />
+<hkern u1="&#xea;" u2="z" k="20" />
+<hkern u1="&#xea;" u2="y" k="41" />
+<hkern u1="&#xea;" u2="x" k="41" />
+<hkern u1="&#xea;" u2="w" k="41" />
+<hkern u1="&#xea;" u2="v" k="41" />
+<hkern u1="&#xea;" u2="&#x27;" k="20" />
+<hkern u1="&#xea;" u2="&#x22;" k="20" />
+<hkern u1="&#xeb;" u2="&#x201d;" k="20" />
+<hkern u1="&#xeb;" u2="&#x2019;" k="20" />
+<hkern u1="&#xeb;" u2="&#xfd;" k="41" />
+<hkern u1="&#xeb;" u2="z" k="20" />
+<hkern u1="&#xeb;" u2="y" k="41" />
+<hkern u1="&#xeb;" u2="x" k="41" />
+<hkern u1="&#xeb;" u2="w" k="41" />
+<hkern u1="&#xeb;" u2="v" k="41" />
+<hkern u1="&#xeb;" u2="&#x27;" k="20" />
+<hkern u1="&#xeb;" u2="&#x22;" k="20" />
+<hkern u1="&#xf0;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf0;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf0;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf0;" u2="z" k="20" />
+<hkern u1="&#xf0;" u2="y" k="41" />
+<hkern u1="&#xf0;" u2="x" k="41" />
+<hkern u1="&#xf0;" u2="w" k="41" />
+<hkern u1="&#xf0;" u2="v" k="41" />
+<hkern u1="&#xf0;" u2="&#x27;" k="20" />
+<hkern u1="&#xf0;" u2="&#x22;" k="20" />
+<hkern u1="&#xf2;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf2;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf2;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf2;" u2="z" k="20" />
+<hkern u1="&#xf2;" u2="y" k="41" />
+<hkern u1="&#xf2;" u2="x" k="41" />
+<hkern u1="&#xf2;" u2="w" k="41" />
+<hkern u1="&#xf2;" u2="v" k="41" />
+<hkern u1="&#xf2;" u2="&#x27;" k="20" />
+<hkern u1="&#xf2;" u2="&#x22;" k="20" />
+<hkern u1="&#xf3;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf3;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf3;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf3;" u2="z" k="20" />
+<hkern u1="&#xf3;" u2="y" k="41" />
+<hkern u1="&#xf3;" u2="x" k="41" />
+<hkern u1="&#xf3;" u2="w" k="41" />
+<hkern u1="&#xf3;" u2="v" k="41" />
+<hkern u1="&#xf3;" u2="&#x27;" k="20" />
+<hkern u1="&#xf3;" u2="&#x22;" k="20" />
+<hkern u1="&#xf4;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf4;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf4;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf4;" u2="z" k="20" />
+<hkern u1="&#xf4;" u2="y" k="41" />
+<hkern u1="&#xf4;" u2="x" k="41" />
+<hkern u1="&#xf4;" u2="w" k="41" />
+<hkern u1="&#xf4;" u2="v" k="41" />
+<hkern u1="&#xf4;" u2="&#x27;" k="20" />
+<hkern u1="&#xf4;" u2="&#x22;" k="20" />
+<hkern u1="&#xf6;" u2="&#x201d;" k="41" />
+<hkern u1="&#xf6;" u2="&#x2019;" k="41" />
+<hkern u1="&#xf6;" u2="&#x27;" k="41" />
+<hkern u1="&#xf6;" u2="&#x22;" k="41" />
+<hkern u1="&#xf8;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf8;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf8;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf8;" u2="z" k="20" />
+<hkern u1="&#xf8;" u2="y" k="41" />
+<hkern u1="&#xf8;" u2="x" k="41" />
+<hkern u1="&#xf8;" u2="w" k="41" />
+<hkern u1="&#xf8;" u2="v" k="41" />
+<hkern u1="&#xf8;" u2="&#x27;" k="20" />
+<hkern u1="&#xf8;" u2="&#x22;" k="20" />
+<hkern u1="&#xfd;" u2="&#x201e;" k="82" />
+<hkern u1="&#xfd;" u2="&#x201d;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x201a;" k="82" />
+<hkern u1="&#xfd;" u2="&#x2019;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xfd;" u2="&#x2e;" k="82" />
+<hkern u1="&#xfd;" u2="&#x2c;" k="82" />
+<hkern u1="&#xfd;" u2="&#x27;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x22;" k="-82" />
+<hkern u1="&#xfe;" u2="&#x201d;" k="20" />
+<hkern u1="&#xfe;" u2="&#x2019;" k="20" />
+<hkern u1="&#xfe;" u2="&#xfd;" k="41" />
+<hkern u1="&#xfe;" u2="z" k="20" />
+<hkern u1="&#xfe;" u2="y" k="41" />
+<hkern u1="&#xfe;" u2="x" k="41" />
+<hkern u1="&#xfe;" u2="w" k="41" />
+<hkern u1="&#xfe;" u2="v" k="41" />
+<hkern u1="&#xfe;" u2="&#x27;" k="20" />
+<hkern u1="&#xfe;" u2="&#x22;" k="20" />
+<hkern u1="&#xff;" u2="&#x201e;" k="82" />
+<hkern u1="&#xff;" u2="&#x201d;" k="-82" />
+<hkern u1="&#xff;" u2="&#x201a;" k="82" />
+<hkern u1="&#xff;" u2="&#x2019;" k="-82" />
+<hkern u1="&#xff;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xff;" u2="&#x2e;" k="82" />
+<hkern u1="&#xff;" u2="&#x2c;" k="82" />
+<hkern u1="&#xff;" u2="&#x27;" k="-82" />
+<hkern u1="&#xff;" u2="&#x22;" k="-82" />
+<hkern u1="&#x152;" u2="J" k="-123" />
+<hkern u1="&#x178;" u2="&#x201e;" k="123" />
+<hkern u1="&#x178;" u2="&#x201a;" k="123" />
+<hkern u1="&#x178;" u2="&#x153;" k="102" />
+<hkern u1="&#x178;" u2="&#x152;" k="41" />
+<hkern u1="&#x178;" u2="&#xfc;" k="61" />
+<hkern u1="&#x178;" u2="&#xfb;" k="61" />
+<hkern u1="&#x178;" u2="&#xfa;" k="61" />
+<hkern u1="&#x178;" u2="&#xf9;" k="61" />
+<hkern u1="&#x178;" u2="&#xf8;" k="102" />
+<hkern u1="&#x178;" u2="&#xf6;" k="102" />
+<hkern u1="&#x178;" u2="&#xf5;" k="102" />
+<hkern u1="&#x178;" u2="&#xf4;" k="102" />
+<hkern u1="&#x178;" u2="&#xf3;" k="102" />
+<hkern u1="&#x178;" u2="&#xf2;" k="102" />
+<hkern u1="&#x178;" u2="&#xeb;" k="102" />
+<hkern u1="&#x178;" u2="&#xea;" k="102" />
+<hkern u1="&#x178;" u2="&#xe9;" k="102" />
+<hkern u1="&#x178;" u2="&#xe8;" k="102" />
+<hkern u1="&#x178;" u2="&#xe7;" k="102" />
+<hkern u1="&#x178;" u2="&#xe6;" k="102" />
+<hkern u1="&#x178;" u2="&#xe5;" k="102" />
+<hkern u1="&#x178;" u2="&#xe4;" k="102" />
+<hkern u1="&#x178;" u2="&#xe3;" k="102" />
+<hkern u1="&#x178;" u2="&#xe2;" k="102" />
+<hkern u1="&#x178;" u2="&#xe1;" k="102" />
+<hkern u1="&#x178;" u2="&#xe0;" k="102" />
+<hkern u1="&#x178;" u2="&#xd8;" k="41" />
+<hkern u1="&#x178;" u2="&#xd6;" k="41" />
+<hkern u1="&#x178;" u2="&#xd5;" k="41" />
+<hkern u1="&#x178;" u2="&#xd4;" k="41" />
+<hkern u1="&#x178;" u2="&#xd3;" k="41" />
+<hkern u1="&#x178;" u2="&#xd2;" k="41" />
+<hkern u1="&#x178;" u2="&#xc7;" k="41" />
+<hkern u1="&#x178;" u2="&#xc5;" k="123" />
+<hkern u1="&#x178;" u2="&#xc4;" k="123" />
+<hkern u1="&#x178;" u2="&#xc3;" k="123" />
+<hkern u1="&#x178;" u2="&#xc2;" k="123" />
+<hkern u1="&#x178;" u2="&#xc1;" k="123" />
+<hkern u1="&#x178;" u2="&#xc0;" k="123" />
+<hkern u1="&#x178;" u2="z" k="41" />
+<hkern u1="&#x178;" u2="u" k="61" />
+<hkern u1="&#x178;" u2="s" k="82" />
+<hkern u1="&#x178;" u2="r" k="61" />
+<hkern u1="&#x178;" u2="q" k="102" />
+<hkern u1="&#x178;" u2="p" k="61" />
+<hkern u1="&#x178;" u2="o" k="102" />
+<hkern u1="&#x178;" u2="n" k="61" />
+<hkern u1="&#x178;" u2="m" k="61" />
+<hkern u1="&#x178;" u2="g" k="41" />
+<hkern u1="&#x178;" u2="e" k="102" />
+<hkern u1="&#x178;" u2="d" k="102" />
+<hkern u1="&#x178;" u2="c" k="102" />
+<hkern u1="&#x178;" u2="a" k="102" />
+<hkern u1="&#x178;" u2="Q" k="41" />
+<hkern u1="&#x178;" u2="O" k="41" />
+<hkern u1="&#x178;" u2="G" k="41" />
+<hkern u1="&#x178;" u2="C" k="41" />
+<hkern u1="&#x178;" u2="A" k="123" />
+<hkern u1="&#x178;" u2="&#x3f;" k="-41" />
+<hkern u1="&#x178;" u2="&#x2e;" k="123" />
+<hkern u1="&#x178;" u2="&#x2c;" k="123" />
+<hkern u1="&#x2013;" u2="T" k="82" />
+<hkern u1="&#x2014;" u2="T" k="82" />
+<hkern u1="&#x2018;" u2="&#x178;" k="-20" />
+<hkern u1="&#x2018;" u2="&#x153;" k="123" />
+<hkern u1="&#x2018;" u2="&#xfc;" k="61" />
+<hkern u1="&#x2018;" u2="&#xfb;" k="61" />
+<hkern u1="&#x2018;" u2="&#xfa;" k="61" />
+<hkern u1="&#x2018;" u2="&#xf9;" k="61" />
+<hkern u1="&#x2018;" u2="&#xf8;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf6;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf5;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf4;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf3;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf2;" k="123" />
+<hkern u1="&#x2018;" u2="&#xeb;" k="123" />
+<hkern u1="&#x2018;" u2="&#xea;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe9;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe8;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe7;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe6;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe5;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe4;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe3;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe2;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe1;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe0;" k="123" />
+<hkern u1="&#x2018;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x2018;" u2="&#xc5;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc4;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc3;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc2;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc1;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc0;" k="143" />
+<hkern u1="&#x2018;" u2="u" k="61" />
+<hkern u1="&#x2018;" u2="s" k="61" />
+<hkern u1="&#x2018;" u2="r" k="61" />
+<hkern u1="&#x2018;" u2="q" k="123" />
+<hkern u1="&#x2018;" u2="p" k="61" />
+<hkern u1="&#x2018;" u2="o" k="123" />
+<hkern u1="&#x2018;" u2="n" k="61" />
+<hkern u1="&#x2018;" u2="m" k="61" />
+<hkern u1="&#x2018;" u2="g" k="61" />
+<hkern u1="&#x2018;" u2="e" k="123" />
+<hkern u1="&#x2018;" u2="d" k="123" />
+<hkern u1="&#x2018;" u2="c" k="123" />
+<hkern u1="&#x2018;" u2="a" k="82" />
+<hkern u1="&#x2018;" u2="Y" k="-20" />
+<hkern u1="&#x2018;" u2="W" k="-41" />
+<hkern u1="&#x2018;" u2="V" k="-41" />
+<hkern u1="&#x2018;" u2="T" k="-41" />
+<hkern u1="&#x2018;" u2="A" k="143" />
+<hkern u1="&#x2019;" u2="&#x178;" k="-20" />
+<hkern u1="&#x2019;" u2="&#x153;" k="123" />
+<hkern u1="&#x2019;" u2="&#xfc;" k="61" />
+<hkern u1="&#x2019;" u2="&#xfb;" k="61" />
+<hkern u1="&#x2019;" u2="&#xfa;" k="61" />
+<hkern u1="&#x2019;" u2="&#xf9;" k="61" />
+<hkern u1="&#x2019;" u2="&#xf8;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf6;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf5;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf4;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf3;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf2;" k="123" />
+<hkern u1="&#x2019;" u2="&#xeb;" k="123" />
+<hkern u1="&#x2019;" u2="&#xea;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe9;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe8;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe7;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe6;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe5;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe4;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe3;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe2;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe1;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe0;" k="123" />
+<hkern u1="&#x2019;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x2019;" u2="&#xc5;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc4;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc3;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc2;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc1;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc0;" k="143" />
+<hkern u1="&#x2019;" u2="u" k="61" />
+<hkern u1="&#x2019;" u2="s" k="61" />
+<hkern u1="&#x2019;" u2="r" k="61" />
+<hkern u1="&#x2019;" u2="q" k="123" />
+<hkern u1="&#x2019;" u2="p" k="61" />
+<hkern u1="&#x2019;" u2="o" k="123" />
+<hkern u1="&#x2019;" u2="n" k="61" />
+<hkern u1="&#x2019;" u2="m" k="61" />
+<hkern u1="&#x2019;" u2="g" k="61" />
+<hkern u1="&#x2019;" u2="e" k="123" />
+<hkern u1="&#x2019;" u2="d" k="123" />
+<hkern u1="&#x2019;" u2="c" k="123" />
+<hkern u1="&#x2019;" u2="a" k="82" />
+<hkern u1="&#x2019;" u2="Y" k="-20" />
+<hkern u1="&#x2019;" u2="W" k="-41" />
+<hkern u1="&#x2019;" u2="V" k="-41" />
+<hkern u1="&#x2019;" u2="T" k="-41" />
+<hkern u1="&#x2019;" u2="A" k="143" />
+<hkern u1="&#x201a;" u2="&#x178;" k="123" />
+<hkern u1="&#x201a;" u2="&#x152;" k="102" />
+<hkern u1="&#x201a;" u2="&#xdd;" k="123" />
+<hkern u1="&#x201a;" u2="&#xdc;" k="41" />
+<hkern u1="&#x201a;" u2="&#xdb;" k="41" />
+<hkern u1="&#x201a;" u2="&#xda;" k="41" />
+<hkern u1="&#x201a;" u2="&#xd9;" k="41" />
+<hkern u1="&#x201a;" u2="&#xd8;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd6;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd5;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd4;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd3;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd2;" k="102" />
+<hkern u1="&#x201a;" u2="&#xc7;" k="102" />
+<hkern u1="&#x201a;" u2="Y" k="123" />
+<hkern u1="&#x201a;" u2="W" k="123" />
+<hkern u1="&#x201a;" u2="V" k="123" />
+<hkern u1="&#x201a;" u2="U" k="41" />
+<hkern u1="&#x201a;" u2="T" k="143" />
+<hkern u1="&#x201a;" u2="Q" k="102" />
+<hkern u1="&#x201a;" u2="O" k="102" />
+<hkern u1="&#x201a;" u2="G" k="102" />
+<hkern u1="&#x201a;" u2="C" k="102" />
+<hkern u1="&#x201c;" u2="&#x178;" k="-20" />
+<hkern u1="&#x201c;" u2="&#x153;" k="123" />
+<hkern u1="&#x201c;" u2="&#xfc;" k="61" />
+<hkern u1="&#x201c;" u2="&#xfb;" k="61" />
+<hkern u1="&#x201c;" u2="&#xfa;" k="61" />
+<hkern u1="&#x201c;" u2="&#xf9;" k="61" />
+<hkern u1="&#x201c;" u2="&#xf8;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf6;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf5;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf4;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf3;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf2;" k="123" />
+<hkern u1="&#x201c;" u2="&#xeb;" k="123" />
+<hkern u1="&#x201c;" u2="&#xea;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe9;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe8;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe7;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe6;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe5;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe4;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe3;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe2;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe1;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe0;" k="123" />
+<hkern u1="&#x201c;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x201c;" u2="&#xc5;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc4;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc3;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc2;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc1;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc0;" k="143" />
+<hkern u1="&#x201c;" u2="u" k="61" />
+<hkern u1="&#x201c;" u2="s" k="61" />
+<hkern u1="&#x201c;" u2="r" k="61" />
+<hkern u1="&#x201c;" u2="q" k="123" />
+<hkern u1="&#x201c;" u2="p" k="61" />
+<hkern u1="&#x201c;" u2="o" k="123" />
+<hkern u1="&#x201c;" u2="n" k="61" />
+<hkern u1="&#x201c;" u2="m" k="61" />
+<hkern u1="&#x201c;" u2="g" k="61" />
+<hkern u1="&#x201c;" u2="e" k="123" />
+<hkern u1="&#x201c;" u2="d" k="123" />
+<hkern u1="&#x201c;" u2="c" k="123" />
+<hkern u1="&#x201c;" u2="a" k="82" />
+<hkern u1="&#x201c;" u2="Y" k="-20" />
+<hkern u1="&#x201c;" u2="W" k="-41" />
+<hkern u1="&#x201c;" u2="V" k="-41" />
+<hkern u1="&#x201c;" u2="T" k="-41" />
+<hkern u1="&#x201c;" u2="A" k="143" />
+<hkern u1="&#x201e;" u2="&#x178;" k="123" />
+<hkern u1="&#x201e;" u2="&#x152;" k="102" />
+<hkern u1="&#x201e;" u2="&#xdd;" k="123" />
+<hkern u1="&#x201e;" u2="&#xdc;" k="41" />
+<hkern u1="&#x201e;" u2="&#xdb;" k="41" />
+<hkern u1="&#x201e;" u2="&#xda;" k="41" />
+<hkern u1="&#x201e;" u2="&#xd9;" k="41" />
+<hkern u1="&#x201e;" u2="&#xd8;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd6;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd5;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd4;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd3;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd2;" k="102" />
+<hkern u1="&#x201e;" u2="&#xc7;" k="102" />
+<hkern u1="&#x201e;" u2="Y" k="123" />
+<hkern u1="&#x201e;" u2="W" k="123" />
+<hkern u1="&#x201e;" u2="V" k="123" />
+<hkern u1="&#x201e;" u2="U" k="41" />
+<hkern u1="&#x201e;" u2="T" k="143" />
+<hkern u1="&#x201e;" u2="Q" k="102" />
+<hkern u1="&#x201e;" u2="O" k="102" />
+<hkern u1="&#x201e;" u2="G" k="102" />
+<hkern u1="&#x201e;" u2="C" k="102" />
+<hkern g1="uniFB00" u2="&#x201d;" k="-123" />
+<hkern g1="uniFB00" u2="&#x2019;" k="-123" />
+<hkern g1="uniFB00" u2="&#x27;" k="-123" />
+<hkern g1="uniFB00" u2="&#x22;" k="-123" />
+</font>
+</defs></svg> 
\ No newline at end of file
diff --git a/html/tower/docs/fonts/OpenSans-LightItalic-webfont.woff b/html/tower/docs/fonts/OpenSans-LightItalic-webfont.woff
new file mode 100644
index 0000000..43e8b9e
--- /dev/null
+++ b/html/tower/docs/fonts/OpenSans-LightItalic-webfont.woff
Binary files differdiff --git a/html/tower/docs/fonts/OpenSans-Regular-webfont.eot b/html/tower/docs/fonts/OpenSans-Regular-webfont.eot
new file mode 100644
index 0000000..6bbc3cf
--- /dev/null
+++ b/html/tower/docs/fonts/OpenSans-Regular-webfont.eot
Binary files differdiff --git a/html/tower/docs/fonts/OpenSans-Regular-webfont.svg b/html/tower/docs/fonts/OpenSans-Regular-webfont.svg
new file mode 100644
index 0000000..25a3952
--- /dev/null
+++ b/html/tower/docs/fonts/OpenSans-Regular-webfont.svg
@@ -0,0 +1,1831 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata></metadata>
+<defs>
+<font id="open_sansregular" horiz-adv-x="1171" >
+<font-face units-per-em="2048" ascent="1638" descent="-410" />
+<missing-glyph horiz-adv-x="532" />
+<glyph unicode="&#xfb01;" horiz-adv-x="1212" d="M29 0zM670 967h-279v-967h-166v967h-196v75l196 60v61q0 404 353 404q87 0 204 -35l-43 -133q-96 31 -164 31q-94 0 -139 -62.5t-45 -200.5v-71h279v-129zM1036 0h-166v1096h166v-1096zM856 1393q0 57 28 83.5t70 26.5q40 0 69 -27t29 -83t-29 -83.5t-69 -27.5 q-42 0 -70 27.5t-28 83.5z" />
+<glyph unicode="&#xfb02;" horiz-adv-x="1212" d="M29 0zM670 967h-279v-967h-166v967h-196v75l196 60v61q0 404 353 404q87 0 204 -35l-43 -133q-96 31 -164 31q-94 0 -139 -62.5t-45 -200.5v-71h279v-129zM1036 0h-166v1556h166v-1556z" />
+<glyph unicode="&#xfb03;" horiz-adv-x="1909" d="M29 0zM1358 967h-279v-967h-166v967h-196v75l196 60v61q0 404 353 404q87 0 204 -35l-43 -133q-96 31 -164 31q-94 0 -139 -62.5t-45 -200.5v-71h279v-129zM670 967h-279v-967h-166v967h-196v75l196 60v61q0 404 353 404q87 0 204 -35l-43 -133q-96 31 -164 31 q-94 0 -139 -62.5t-45 -200.5v-71h279v-129zM1731 0h-166v1096h166v-1096zM1551 1393q0 57 28 83.5t70 26.5q40 0 69 -27t29 -83t-29 -83.5t-69 -27.5q-42 0 -70 27.5t-28 83.5z" />
+<glyph unicode="&#xfb04;" horiz-adv-x="1909" d="M29 0zM1358 967h-279v-967h-166v967h-196v75l196 60v61q0 404 353 404q87 0 204 -35l-43 -133q-96 31 -164 31q-94 0 -139 -62.5t-45 -200.5v-71h279v-129zM670 967h-279v-967h-166v967h-196v75l196 60v61q0 404 353 404q87 0 204 -35l-43 -133q-96 31 -164 31 q-94 0 -139 -62.5t-45 -200.5v-71h279v-129zM1731 0h-166v1556h166v-1556z" />
+<glyph horiz-adv-x="2048" />
+<glyph horiz-adv-x="2048" />
+<glyph unicode="&#xd;" horiz-adv-x="1044" />
+<glyph unicode=" "  horiz-adv-x="532" />
+<glyph unicode="&#x09;" horiz-adv-x="532" />
+<glyph unicode="&#xa0;" horiz-adv-x="532" />
+<glyph unicode="!" horiz-adv-x="547" d="M326 403h-105l-51 1059h207zM152 106q0 136 120 136q58 0 89.5 -35t31.5 -101q0 -64 -32 -99.5t-89 -35.5q-52 0 -86 31.5t-34 103.5z" />
+<glyph unicode="&#x22;" horiz-adv-x="821" d="M319 1462l-40 -528h-105l-41 528h186zM688 1462l-41 -528h-104l-41 528h186z" />
+<glyph unicode="#" horiz-adv-x="1323" d="M981 899l-66 -340h283v-129h-307l-84 -430h-137l84 430h-303l-82 -430h-136l80 430h-262v129h287l68 340h-277v127h299l82 436h139l-82 -436h305l84 436h134l-84 -436h264v-127h-289zM475 559h303l66 340h-303z" />
+<glyph unicode="$" d="M1036 449q0 -136 -102 -224.5t-285 -111.5v-232h-129v223q-112 0 -217 17.5t-172 48.5v156q83 -37 191.5 -60.5t197.5 -23.5v440q-205 65 -287.5 151t-82.5 222q0 131 101.5 215t268.5 102v182h129v-180q184 -5 355 -74l-52 -131q-149 59 -303 70v-434q157 -50 235 -97.5 t115 -109t37 -149.5zM866 436q0 72 -44.5 116.5t-172.5 88.5v-389q217 30 217 184zM319 1057q0 -76 45 -122t156 -87v387q-99 -16 -150 -62.5t-51 -115.5z" />
+<glyph unicode="%" horiz-adv-x="1686" d="M242 1026q0 -170 37 -255t120 -85q164 0 164 340q0 338 -164 338q-83 0 -120 -84t-37 -254zM700 1026q0 -228 -76.5 -344.5t-224.5 -116.5q-140 0 -217.5 119t-77.5 342q0 227 74.5 342t220.5 115q145 0 223 -119t78 -338zM1122 440q0 -171 37 -255.5t121 -84.5t124 83.5 t40 256.5q0 171 -40 253.5t-124 82.5t-121 -82.5t-37 -253.5zM1581 440q0 -227 -76.5 -343.5t-224.5 -116.5q-142 0 -218.5 119t-76.5 341q0 227 74.5 342t220.5 115q142 0 221.5 -117.5t79.5 -339.5zM1323 1462l-811 -1462h-147l811 1462h147z" />
+<glyph unicode="&#x26;" horiz-adv-x="1495" d="M414 1171q0 -69 36 -131.5t123 -150.5q129 75 179.5 138.5t50.5 146.5q0 77 -51.5 125.5t-137.5 48.5q-89 0 -144.5 -48t-55.5 -129zM569 129q241 0 400 154l-437 424q-111 -68 -157 -112.5t-68 -95.5t-22 -116q0 -117 77.5 -185.5t206.5 -68.5zM113 379q0 130 69.5 230 t249.5 202q-85 95 -115.5 144t-48.5 102t-18 110q0 150 98 234t273 84q162 0 255 -83.5t93 -232.5q0 -107 -68 -197.5t-225 -183.5l407 -391q56 62 89.5 145.5t56.5 182.5h168q-68 -286 -205 -434l299 -291h-229l-185 178q-118 -106 -240 -152t-272 -46q-215 0 -333.5 106 t-118.5 293z" />
+<glyph unicode="'" horiz-adv-x="453" d="M319 1462l-40 -528h-105l-41 528h186z" />
+<glyph unicode="(" horiz-adv-x="606" d="M82 561q0 265 77.5 496t223.5 405h162q-144 -193 -216.5 -424t-72.5 -475q0 -240 74 -469t213 -418h-160q-147 170 -224 397t-77 488z" />
+<glyph unicode=")" horiz-adv-x="606" d="M524 561q0 -263 -77.5 -490t-223.5 -395h-160q139 188 213 417.5t74 469.5q0 244 -72.5 475t-216.5 424h162q147 -175 224 -406.5t77 -494.5z" />
+<glyph unicode="*" horiz-adv-x="1130" d="M657 1556l-43 -395l398 111l26 -182l-381 -31l248 -326l-172 -94l-176 362l-160 -362l-176 94l242 326l-377 31l29 182l391 -111l-43 395h194z" />
+<glyph unicode="+" d="M653 791h412v-138h-412v-426h-139v426h-410v138h410v428h139v-428z" />
+<glyph unicode="," horiz-adv-x="502" d="M350 238l15 -23q-26 -100 -75 -232.5t-102 -246.5h-125q27 104 59.5 257t45.5 245h182z" />
+<glyph unicode="-" horiz-adv-x="659" d="M84 473v152h491v-152h-491z" />
+<glyph unicode="." horiz-adv-x="545" d="M152 106q0 67 30.5 101.5t87.5 34.5q58 0 90.5 -34.5t32.5 -101.5q0 -65 -33 -100t-90 -35q-51 0 -84.5 31.5t-33.5 103.5z" />
+<glyph unicode="/" horiz-adv-x="752" d="M731 1462l-545 -1462h-166l545 1462h166z" />
+<glyph unicode="0" d="M1069 733q0 -379 -119.5 -566t-365.5 -187q-236 0 -359 191.5t-123 561.5q0 382 119 567t363 185q238 0 361.5 -193t123.5 -559zM270 733q0 -319 75 -464.5t239 -145.5q166 0 240.5 147.5t74.5 462.5t-74.5 461.5t-240.5 146.5q-164 0 -239 -144.5t-75 -463.5z" />
+<glyph unicode="1" d="M715 0h-162v1042q0 130 8 246q-21 -21 -47 -44t-238 -195l-88 114l387 299h140v-1462z" />
+<glyph unicode="2" d="M1061 0h-961v143l385 387q176 178 232 254t84 148t28 155q0 117 -71 185.5t-197 68.5q-91 0 -172.5 -30t-181.5 -109l-88 113q202 168 440 168q206 0 323 -105.5t117 -283.5q0 -139 -78 -275t-292 -344l-320 -313v-8h752v-154z" />
+<glyph unicode="3" d="M1006 1118q0 -140 -78.5 -229t-222.5 -119v-8q176 -22 261 -112t85 -236q0 -209 -145 -321.5t-412 -112.5q-116 0 -212.5 17.5t-187.5 61.5v158q95 -47 202.5 -71.5t203.5 -24.5q379 0 379 297q0 266 -418 266h-144v143h146q171 0 271 75.5t100 209.5q0 107 -73.5 168 t-199.5 61q-96 0 -181 -26t-194 -96l-84 112q90 71 207.5 111.5t247.5 40.5q213 0 331 -97.5t118 -267.5z" />
+<glyph unicode="4" d="M1130 336h-217v-336h-159v336h-711v145l694 989h176v-983h217v-151zM754 487v486q0 143 10 323h-8q-48 -96 -90 -159l-457 -650h545z" />
+<glyph unicode="5" d="M557 893q231 0 363.5 -114.5t132.5 -313.5q0 -227 -144.5 -356t-398.5 -129q-247 0 -377 79v160q70 -45 174 -70.5t205 -25.5q176 0 273.5 83t97.5 240q0 306 -375 306q-95 0 -254 -29l-86 55l55 684h727v-153h-585l-37 -439q115 23 229 23z" />
+<glyph unicode="6" d="M117 625q0 431 167.5 644.5t495.5 213.5q113 0 178 -19v-143q-77 25 -176 25q-235 0 -359 -146.5t-136 -460.5h12q110 172 348 172q197 0 310.5 -119t113.5 -323q0 -228 -124.5 -358.5t-336.5 -130.5q-227 0 -360 170.5t-133 474.5zM608 121q142 0 220.5 89.5t78.5 258.5 q0 145 -73 228t-218 83q-90 0 -165 -37t-119.5 -102t-44.5 -135q0 -103 40 -192t113.5 -141t167.5 -52z" />
+<glyph unicode="7" d="M285 0l606 1309h-797v153h973v-133l-598 -1329h-184z" />
+<glyph unicode="8" d="M584 1483q200 0 317 -93t117 -257q0 -108 -67 -197t-214 -162q178 -85 253 -178.5t75 -216.5q0 -182 -127 -290.5t-348 -108.5q-234 0 -360 102.5t-126 290.5q0 251 306 391q-138 78 -198 168.5t-60 202.5q0 159 117.5 253.5t314.5 94.5zM268 369q0 -120 83.5 -187 t234.5 -67q149 0 232 70t83 192q0 97 -78 172.5t-272 146.5q-149 -64 -216 -141.5t-67 -185.5zM582 1348q-125 0 -196 -60t-71 -160q0 -92 59 -158t218 -132q143 60 202.5 129t59.5 161q0 101 -72.5 160.5t-199.5 59.5z" />
+<glyph unicode="9" d="M1061 838q0 -858 -664 -858q-116 0 -184 20v143q80 -26 182 -26q240 0 362.5 148.5t133.5 455.5h-12q-55 -83 -146 -126.5t-205 -43.5q-194 0 -308 116t-114 324q0 228 127.5 360t335.5 132q149 0 260.5 -76.5t171.5 -223t60 -345.5zM569 1341q-143 0 -221 -92t-78 -256 q0 -144 72 -226.5t219 -82.5q91 0 167.5 37t120.5 101t44 134q0 105 -41 194t-114.5 140t-168.5 51z" />
+<glyph unicode=":" horiz-adv-x="545" d="M152 106q0 67 30.5 101.5t87.5 34.5q58 0 90.5 -34.5t32.5 -101.5q0 -65 -33 -100t-90 -35q-51 0 -84.5 31.5t-33.5 103.5zM152 989q0 135 118 135q123 0 123 -135q0 -65 -33 -100t-90 -35q-51 0 -84.5 31.5t-33.5 103.5z" />
+<glyph unicode=";" horiz-adv-x="545" d="M350 238l15 -23q-26 -100 -75 -232.5t-102 -246.5h-125q27 104 59.5 257t45.5 245h182zM147 989q0 135 119 135q123 0 123 -135q0 -65 -33 -100t-90 -35q-58 0 -88.5 35t-30.5 100z" />
+<glyph unicode="&#x3c;" d="M1065 242l-961 422v98l961 479v-149l-782 -371l782 -328v-151z" />
+<glyph unicode="=" d="M119 858v137h930v-137h-930zM119 449v137h930v-137h-930z" />
+<glyph unicode="&#x3e;" d="M104 393l783 326l-783 373v149l961 -479v-98l-961 -422v151z" />
+<glyph unicode="?" horiz-adv-x="879" d="M289 403v54q0 117 36 192.5t134 159.5q136 115 171.5 173t35.5 140q0 102 -65.5 157.5t-188.5 55.5q-79 0 -154 -18.5t-172 -67.5l-59 135q189 99 395 99q191 0 297 -94t106 -265q0 -73 -19.5 -128.5t-57.5 -105t-164 -159.5q-101 -86 -133.5 -143t-32.5 -152v-33h-129z M240 106q0 136 120 136q58 0 89.5 -35t31.5 -101q0 -64 -32 -99.5t-89 -35.5q-52 0 -86 31.5t-34 103.5z" />
+<glyph unicode="@" horiz-adv-x="1841" d="M1720 729q0 -142 -44 -260t-124 -183t-184 -65q-86 0 -145 52t-70 133h-8q-40 -87 -114.5 -136t-176.5 -49q-150 0 -234.5 102.5t-84.5 278.5q0 204 118 331.5t310 127.5q68 0 154 -12.5t155 -34.5l-25 -470v-22q0 -178 133 -178q91 0 148 107.5t57 279.5q0 181 -74 317 t-210.5 209.5t-313.5 73.5q-223 0 -388 -92.5t-252 -264t-87 -396.5q0 -305 161 -469t464 -164q210 0 436 86v-133q-192 -84 -436 -84q-363 0 -563.5 199.5t-200.5 557.5q0 260 107 463t305 314.5t454 111.5q215 0 382.5 -90.5t259 -257t91.5 -383.5zM686 598 q0 -254 195 -254q207 0 225 313l14 261q-72 20 -157 20q-130 0 -203.5 -90t-73.5 -250z" />
+<glyph unicode="A" horiz-adv-x="1296" d="M1120 0l-182 465h-586l-180 -465h-172l578 1468h143l575 -1468h-176zM885 618l-170 453q-33 86 -68 211q-22 -96 -63 -211l-172 -453h473z" />
+<glyph unicode="B" horiz-adv-x="1327" d="M201 1462h413q291 0 421 -87t130 -275q0 -130 -72.5 -214.5t-211.5 -109.5v-10q333 -57 333 -350q0 -196 -132.5 -306t-370.5 -110h-510v1462zM371 836h280q180 0 259 56.5t79 190.5q0 123 -88 177.5t-280 54.5h-250v-479zM371 692v-547h305q177 0 266.5 68.5t89.5 214.5 q0 136 -91.5 200t-278.5 64h-291z" />
+<glyph unicode="C" horiz-adv-x="1292" d="M827 1331q-241 0 -380.5 -160.5t-139.5 -439.5q0 -287 134.5 -443.5t383.5 -156.5q153 0 349 55v-149q-152 -57 -375 -57q-323 0 -498.5 196t-175.5 557q0 226 84.5 396t244 262t375.5 92q230 0 402 -84l-72 -146q-166 78 -332 78z" />
+<glyph unicode="D" horiz-adv-x="1493" d="M1368 745q0 -362 -196.5 -553.5t-565.5 -191.5h-405v1462h448q341 0 530 -189t189 -528zM1188 739q0 286 -143.5 431t-426.5 145h-247v-1168h207q304 0 457 149.5t153 442.5z" />
+<glyph unicode="E" horiz-adv-x="1139" d="M1016 0h-815v1462h815v-151h-645v-471h606v-150h-606v-538h645v-152z" />
+<glyph unicode="F" horiz-adv-x="1057" d="M371 0h-170v1462h815v-151h-645v-535h606v-151h-606v-625z" />
+<glyph unicode="G" horiz-adv-x="1491" d="M844 766h497v-711q-116 -37 -236 -56t-278 -19q-332 0 -517 197.5t-185 553.5q0 228 91.5 399.5t263.5 262t403 90.5q234 0 436 -86l-66 -150q-198 84 -381 84q-267 0 -417 -159t-150 -441q0 -296 144.5 -449t424.5 -153q152 0 297 35v450h-327v152z" />
+<glyph unicode="H" horiz-adv-x="1511" d="M1311 0h-170v688h-770v-688h-170v1462h170v-622h770v622h170v-1462z" />
+<glyph unicode="I" horiz-adv-x="571" d="M201 0v1462h170v-1462h-170z" />
+<glyph unicode="J" horiz-adv-x="547" d="M-12 -385q-94 0 -148 27v145q71 -20 148 -20q99 0 150.5 60t51.5 173v1462h170v-1448q0 -190 -96 -294.5t-276 -104.5z" />
+<glyph unicode="K" horiz-adv-x="1257" d="M1257 0h-200l-533 709l-153 -136v-573h-170v1462h170v-725l663 725h201l-588 -635z" />
+<glyph unicode="L" horiz-adv-x="1063" d="M201 0v1462h170v-1308h645v-154h-815z" />
+<glyph unicode="M" horiz-adv-x="1849" d="M848 0l-496 1296h-8q14 -154 14 -366v-930h-157v1462h256l463 -1206h8l467 1206h254v-1462h-170v942q0 162 14 352h-8l-500 -1294h-137z" />
+<glyph unicode="N" horiz-adv-x="1544" d="M1343 0h-194l-799 1227h-8q16 -216 16 -396v-831h-157v1462h192l797 -1222h8q-2 27 -9 173.5t-5 209.5v839h159v-1462z" />
+<glyph unicode="O" horiz-adv-x="1595" d="M1470 733q0 -351 -177.5 -552t-493.5 -201q-323 0 -498.5 197.5t-175.5 557.5q0 357 176 553.5t500 196.5q315 0 492 -200t177 -552zM305 733q0 -297 126.5 -450.5t367.5 -153.5q243 0 367 153t124 451q0 295 -123.5 447.5t-365.5 152.5q-243 0 -369.5 -153.5 t-126.5 -446.5z" />
+<glyph unicode="P" horiz-adv-x="1233" d="M1128 1036q0 -222 -151.5 -341.5t-433.5 -119.5h-172v-575h-170v1462h379q548 0 548 -426zM371 721h153q226 0 327 73t101 234q0 145 -95 216t-296 71h-190v-594z" />
+<glyph unicode="Q" horiz-adv-x="1595" d="M1470 733q0 -281 -113 -467t-319 -252l348 -362h-247l-285 330l-55 -2q-323 0 -498.5 197.5t-175.5 557.5q0 357 176 553.5t500 196.5q315 0 492 -200t177 -552zM305 733q0 -297 126.5 -450.5t367.5 -153.5q243 0 367 153t124 451q0 295 -123.5 447.5t-365.5 152.5 q-243 0 -369.5 -153.5t-126.5 -446.5z" />
+<glyph unicode="R" horiz-adv-x="1266" d="M371 608v-608h-170v1462h401q269 0 397.5 -103t128.5 -310q0 -290 -294 -392l397 -657h-201l-354 608h-305zM371 754h233q180 0 264 71.5t84 214.5q0 145 -85.5 209t-274.5 64h-221v-559z" />
+<glyph unicode="S" horiz-adv-x="1124" d="M1026 389q0 -193 -140 -301t-380 -108q-260 0 -400 67v164q90 -38 196 -60t210 -22q170 0 256 64.5t86 179.5q0 76 -30.5 124.5t-102 89.5t-217.5 93q-204 73 -291.5 173t-87.5 261q0 169 127 269t336 100q218 0 401 -80l-53 -148q-181 76 -352 76q-135 0 -211 -58 t-76 -161q0 -76 28 -124.5t94.5 -89t203.5 -89.5q230 -82 316.5 -176t86.5 -244z" />
+<glyph unicode="T" horiz-adv-x="1133" d="M651 0h-170v1311h-463v151h1096v-151h-463v-1311z" />
+<glyph unicode="U" horiz-adv-x="1491" d="M1305 1462v-946q0 -250 -151 -393t-415 -143t-408.5 144t-144.5 396v942h170v-954q0 -183 100 -281t294 -98q185 0 285 98.5t100 282.5v952h170z" />
+<glyph unicode="V" horiz-adv-x="1219" d="M1036 1462h183l-527 -1462h-168l-524 1462h180l336 -946q58 -163 92 -317q36 162 94 323z" />
+<glyph unicode="W" horiz-adv-x="1896" d="M1477 0h-168l-295 979q-21 65 -47 164t-27 119q-22 -132 -70 -289l-286 -973h-168l-389 1462h180l231 -903q48 -190 70 -344q27 183 80 358l262 889h180l275 -897q48 -155 81 -350q19 142 72 346l230 901h180z" />
+<glyph unicode="X" horiz-adv-x="1182" d="M1174 0h-193l-393 643l-400 -643h-180l486 764l-453 698h188l363 -579l366 579h181l-453 -692z" />
+<glyph unicode="Y" horiz-adv-x="1147" d="M573 731l390 731h184l-488 -895v-567h-172v559l-487 903h186z" />
+<glyph unicode="Z" horiz-adv-x="1169" d="M1087 0h-1005v133l776 1176h-752v153h959v-133l-776 -1175h798v-154z" />
+<glyph unicode="[" horiz-adv-x="674" d="M623 -324h-457v1786h457v-141h-289v-1503h289v-142z" />
+<glyph unicode="\" horiz-adv-x="752" d="M186 1462l547 -1462h-166l-544 1462h163z" />
+<glyph unicode="]" horiz-adv-x="674" d="M51 -182h289v1503h-289v141h457v-1786h-457v142z" />
+<glyph unicode="^" horiz-adv-x="1110" d="M49 551l434 922h99l477 -922h-152l-372 745l-334 -745h-152z" />
+<glyph unicode="_" horiz-adv-x="918" d="M922 -315h-926v131h926v-131z" />
+<glyph unicode="`" horiz-adv-x="1182" d="M786 1241h-110q-65 52 -154 148t-129 159v21h203q32 -69 89 -159.5t101 -143.5v-25z" />
+<glyph unicode="a" horiz-adv-x="1139" d="M850 0l-33 156h-8q-82 -103 -163.5 -139.5t-203.5 -36.5q-163 0 -255.5 84t-92.5 239q0 332 531 348l186 6v68q0 129 -55.5 190.5t-177.5 61.5q-137 0 -310 -84l-51 127q81 44 177.5 69t193.5 25q196 0 290.5 -87t94.5 -279v-748h-123zM475 117q155 0 243.5 85t88.5 238 v99l-166 -7q-198 -7 -285.5 -61.5t-87.5 -169.5q0 -90 54.5 -137t152.5 -47z" />
+<glyph unicode="b" horiz-adv-x="1255" d="M686 1114q216 0 335.5 -147.5t119.5 -417.5t-120.5 -419.5t-334.5 -149.5q-107 0 -195.5 39.5t-148.5 121.5h-12l-35 -141h-119v1556h166v-378q0 -127 -8 -228h8q116 164 344 164zM662 975q-170 0 -245 -97.5t-75 -328.5t77 -330.5t247 -99.5q153 0 228 111.5t75 320.5 q0 214 -75 319t-232 105z" />
+<glyph unicode="c" horiz-adv-x="975" d="M614 -20q-238 0 -368.5 146.5t-130.5 414.5q0 275 132.5 425t377.5 150q79 0 158 -17t124 -40l-51 -141q-55 22 -120 36.5t-115 14.5q-334 0 -334 -426q0 -202 81.5 -310t241.5 -108q137 0 281 59v-147q-110 -57 -277 -57z" />
+<glyph unicode="d" horiz-adv-x="1255" d="M922 147h-9q-115 -167 -344 -167q-215 0 -334.5 147t-119.5 418t120 421t334 150q223 0 342 -162h13l-7 79l-4 77v446h166v-1556h-135zM590 119q170 0 246.5 92.5t76.5 298.5v35q0 233 -77.5 332.5t-247.5 99.5q-146 0 -223.5 -113.5t-77.5 -320.5q0 -210 77 -317 t226 -107z" />
+<glyph unicode="e" horiz-adv-x="1149" d="M639 -20q-243 0 -383.5 148t-140.5 411q0 265 130.5 421t350.5 156q206 0 326 -135.5t120 -357.5v-105h-755q5 -193 97.5 -293t260.5 -100q177 0 350 74v-148q-88 -38 -166.5 -54.5t-189.5 -16.5zM594 977q-132 0 -210.5 -86t-92.5 -238h573q0 157 -70 240.5t-200 83.5z " />
+<glyph unicode="f" horiz-adv-x="694" d="M670 967h-279v-967h-166v967h-196v75l196 60v61q0 404 353 404q87 0 204 -35l-43 -133q-96 31 -164 31q-94 0 -139 -62.5t-45 -200.5v-71h279v-129z" />
+<glyph unicode="g" horiz-adv-x="1122" d="M1073 1096v-105l-203 -24q28 -35 50 -91.5t22 -127.5q0 -161 -110 -257t-302 -96q-49 0 -92 8q-106 -56 -106 -141q0 -45 37 -66.5t127 -21.5h194q178 0 273.5 -75t95.5 -218q0 -182 -146 -277.5t-426 -95.5q-215 0 -331.5 80t-116.5 226q0 100 64 173t180 99 q-42 19 -70.5 59t-28.5 93q0 60 32 105t101 87q-85 35 -138.5 119t-53.5 192q0 180 108 277.5t306 97.5q86 0 155 -20h379zM199 -184q0 -89 75 -135t215 -46q209 0 309.5 62.5t100.5 169.5q0 89 -55 123.5t-207 34.5h-199q-113 0 -176 -54t-63 -155zM289 745q0 -115 65 -174 t181 -59q243 0 243 236q0 247 -246 247q-117 0 -180 -63t-63 -187z" />
+<glyph unicode="h" horiz-adv-x="1257" d="M926 0v709q0 134 -61 200t-191 66q-173 0 -252.5 -94t-79.5 -308v-573h-166v1556h166v-471q0 -85 -8 -141h10q49 79 139.5 124.5t206.5 45.5q201 0 301.5 -95.5t100.5 -303.5v-715h-166z" />
+<glyph unicode="i" horiz-adv-x="518" d="M342 0h-166v1096h166v-1096zM162 1393q0 57 28 83.5t70 26.5q40 0 69 -27t29 -83t-29 -83.5t-69 -27.5q-42 0 -70 27.5t-28 83.5z" />
+<glyph unicode="j" horiz-adv-x="518" d="M43 -492q-95 0 -154 25v135q69 -20 136 -20q78 0 114.5 42.5t36.5 129.5v1276h166v-1264q0 -324 -299 -324zM162 1393q0 57 28 83.5t70 26.5q40 0 69 -27t29 -83t-29 -83.5t-69 -27.5q-42 0 -70 27.5t-28 83.5z" />
+<glyph unicode="k" horiz-adv-x="1075" d="M340 561q43 61 131 160l354 375h197l-444 -467l475 -629h-201l-387 518l-125 -108v-410h-164v1556h164v-825q0 -55 -8 -170h8z" />
+<glyph unicode="l" horiz-adv-x="518" d="M342 0h-166v1556h166v-1556z" />
+<glyph unicode="m" horiz-adv-x="1905" d="M1573 0v713q0 131 -56 196.5t-174 65.5q-155 0 -229 -89t-74 -274v-612h-166v713q0 131 -56 196.5t-175 65.5q-156 0 -228.5 -93.5t-72.5 -306.5v-575h-166v1096h135l27 -150h8q47 80 132.5 125t191.5 45q257 0 336 -186h8q49 86 142 136t212 50q186 0 278.5 -95.5 t92.5 -305.5v-715h-166z" />
+<glyph unicode="n" horiz-adv-x="1257" d="M926 0v709q0 134 -61 200t-191 66q-172 0 -252 -93t-80 -307v-575h-166v1096h135l27 -150h8q51 81 143 125.5t205 44.5q198 0 298 -95.5t100 -305.5v-715h-166z" />
+<glyph unicode="o" horiz-adv-x="1237" d="M1122 549q0 -268 -135 -418.5t-373 -150.5q-147 0 -261 69t-176 198t-62 302q0 268 134 417.5t372 149.5q230 0 365.5 -153t135.5 -414zM287 549q0 -210 84 -320t247 -110t247.5 109.5t84.5 320.5q0 209 -84.5 317.5t-249.5 108.5q-163 0 -246 -107t-83 -319z" />
+<glyph unicode="p" horiz-adv-x="1255" d="M686 -20q-107 0 -195.5 39.5t-148.5 121.5h-12q12 -96 12 -182v-451h-166v1588h135l23 -150h8q64 90 149 130t195 40q218 0 336.5 -149t118.5 -418q0 -270 -120.5 -419.5t-334.5 -149.5zM662 975q-168 0 -243 -93t-77 -296v-37q0 -231 77 -330.5t247 -99.5 q142 0 222.5 115t80.5 317q0 205 -80.5 314.5t-226.5 109.5z" />
+<glyph unicode="q" horiz-adv-x="1255" d="M590 119q166 0 242 89t81 300v37q0 230 -78 331t-247 101q-146 0 -223.5 -113.5t-77.5 -320.5t76.5 -315.5t226.5 -108.5zM565 -20q-212 0 -331 149t-119 416q0 269 120 420t334 151q225 0 346 -170h9l24 150h131v-1588h-166v469q0 100 11 170h-13q-115 -167 -346 -167z " />
+<glyph unicode="r" horiz-adv-x="836" d="M676 1116q73 0 131 -12l-23 -154q-68 15 -120 15q-133 0 -227.5 -108t-94.5 -269v-588h-166v1096h137l19 -203h8q61 107 147 165t189 58z" />
+<glyph unicode="s" horiz-adv-x="977" d="M883 299q0 -153 -114 -236t-320 -83q-218 0 -340 69v154q79 -40 169.5 -63t174.5 -23q130 0 200 41.5t70 126.5q0 64 -55.5 109.5t-216.5 107.5q-153 57 -217.5 99.5t-96 96.5t-31.5 129q0 134 109 211.5t299 77.5q177 0 346 -72l-59 -135q-165 68 -299 68 q-118 0 -178 -37t-60 -102q0 -44 22.5 -75t72.5 -59t192 -81q195 -71 263.5 -143t68.5 -181z" />
+<glyph unicode="t" horiz-adv-x="723" d="M530 117q44 0 85 6.5t65 13.5v-127q-27 -13 -79.5 -21.5t-94.5 -8.5q-318 0 -318 335v652h-157v80l157 69l70 234h96v-254h318v-129h-318v-645q0 -99 47 -152t129 -53z" />
+<glyph unicode="u" horiz-adv-x="1257" d="M332 1096v-711q0 -134 61 -200t191 -66q172 0 251.5 94t79.5 307v576h166v-1096h-137l-24 147h-9q-51 -81 -141.5 -124t-206.5 -43q-200 0 -299.5 95t-99.5 304v717h168z" />
+<glyph unicode="v" horiz-adv-x="1026" d="M416 0l-416 1096h178l236 -650q80 -228 94 -296h8q11 53 69.5 219.5t262.5 726.5h178l-416 -1096h-194z" />
+<glyph unicode="w" horiz-adv-x="1593" d="M1071 0l-201 643q-19 59 -71 268h-8q-40 -175 -70 -270l-207 -641h-192l-299 1096h174q106 -413 161.5 -629t63.5 -291h8q11 57 35.5 147.5t42.5 143.5l201 629h180l196 -629q56 -172 76 -289h8q4 36 21.5 111t208.5 807h172l-303 -1096h-197z" />
+<glyph unicode="x" horiz-adv-x="1073" d="M440 561l-381 535h189l289 -420l288 420h187l-381 -535l401 -561h-188l-307 444l-310 -444h-188z" />
+<glyph unicode="y" horiz-adv-x="1032" d="M2 1096h178l240 -625q79 -214 98 -309h8q13 51 54.5 174.5t271.5 759.5h178l-471 -1248q-70 -185 -163.5 -262.5t-229.5 -77.5q-76 0 -150 17v133q55 -12 123 -12q171 0 244 192l61 156z" />
+<glyph unicode="z" horiz-adv-x="958" d="M877 0h-795v113l598 854h-561v129h743v-129l-590 -838h605v-129z" />
+<glyph unicode="{" horiz-adv-x="776" d="M475 12q0 -102 58.5 -148t171.5 -48v-140q-190 2 -294 87t-104 239v303q0 104 -63 148.5t-183 44.5v141q130 2 188 48t58 142v306q0 155 108 241t290 86v-139q-230 -6 -230 -199v-295q0 -215 -223 -254v-12q223 -39 223 -254v-297z" />
+<glyph unicode="|" horiz-adv-x="1128" d="M494 1556h141v-2052h-141v2052z" />
+<glyph unicode="}" horiz-adv-x="776" d="M522 575q-223 39 -223 254v295q0 193 -227 199v139q184 0 289.5 -87t105.5 -240v-306q0 -97 59 -142.5t189 -47.5v-141q-122 0 -185 -44.5t-63 -148.5v-303q0 -153 -102.5 -238.5t-292.5 -87.5v140q111 2 169 48t58 148v297q0 114 55 174t168 80v12z" />
+<glyph unicode="~" d="M338 713q-53 0 -116.5 -33.5t-117.5 -87.5v151q100 109 244 109q68 0 124.5 -14t145.5 -52q66 -28 115 -41.5t96 -13.5q54 0 118 32t118 89v-150q-102 -110 -244 -110q-72 0 -135 16.5t-135 48.5q-75 32 -120 44t-93 12z" />
+<glyph unicode="&#xa1;" horiz-adv-x="547" d="M219 684h105l51 -1057h-207zM393 983q0 -135 -121 -135q-60 0 -90 35.5t-30 99.5q0 63 31.5 99t88.5 36q51 0 86 -32t35 -103z" />
+<glyph unicode="&#xa2;" d="M971 240q-105 -54 -252 -60v-200h-133v206q-203 32 -299.5 168.5t-96.5 386.5q0 508 396 570v172h135v-164q75 -3 146 -19.5t120 -39.5l-49 -140q-133 51 -242 51q-172 0 -253 -105.5t-81 -322.5q0 -212 79.5 -313.5t246.5 -101.5q141 0 283 59v-147z" />
+<glyph unicode="&#xa3;" d="M682 1481q190 0 360 -84l-61 -133q-154 77 -297 77q-123 0 -185.5 -62t-62.5 -202v-295h422v-127h-422v-221q0 -100 -32.5 -168t-106.5 -112h795v-154h-1029v141q205 47 205 291v223h-198v127h198v316q0 178 112 280.5t302 102.5z" />
+<glyph unicode="&#xa4;" d="M184 723q0 122 74 229l-135 140l94 92l135 -133q104 73 234 73q127 0 229 -73l137 133l95 -92l-134 -138q74 -113 74 -231q0 -131 -74 -234l131 -135l-92 -92l-137 133q-102 -71 -229 -71q-134 0 -234 73l-135 -133l-92 92l133 136q-74 107 -74 231zM313 723 q0 -112 78.5 -192t194.5 -80t195 79.5t79 192.5q0 114 -80 195t-194 81q-116 0 -194.5 -82t-78.5 -194z" />
+<glyph unicode="&#xa5;" d="M584 735l379 727h174l-416 -770h262v-127h-317v-170h317v-127h-317v-268h-164v268h-316v127h316v170h-316v127h256l-411 770h178z" />
+<glyph unicode="&#xa6;" horiz-adv-x="1128" d="M494 1556h141v-776h-141v776zM494 281h141v-777h-141v777z" />
+<glyph unicode="&#xa7;" horiz-adv-x="1057" d="M139 809q0 86 43 154.5t121 105.5q-74 40 -116 95.5t-42 140.5q0 121 103.5 190.5t300.5 69.5q94 0 173.5 -14.5t176.5 -53.5l-53 -131q-98 39 -165.5 52.5t-143.5 13.5q-116 0 -174 -29.5t-58 -93.5q0 -60 61.5 -102t215.5 -97q186 -68 261 -143.5t75 -182.5 q0 -90 -41 -160.5t-115 -111.5q153 -81 153 -227q0 -140 -117 -216.5t-329 -76.5q-218 0 -346 65v148q78 -37 175 -59.5t179 -22.5q134 0 204.5 38t70.5 109q0 46 -24 75t-78 58t-169 72q-142 52 -209 97t-100 102t-33 135zM285 829q0 -77 66 -129.5t233 -113.5l49 -19 q137 80 137 191q0 83 -73.5 139t-258.5 113q-68 -19 -110.5 -69t-42.5 -112z" />
+<glyph unicode="&#xa8;" horiz-adv-x="1182" d="M309 1393q0 52 26.5 75t63.5 23q38 0 65.5 -23t27.5 -75q0 -50 -27.5 -74.5t-65.5 -24.5q-37 0 -63.5 24.5t-26.5 74.5zM690 1393q0 52 26.5 75t63.5 23t64.5 -23t27.5 -75q0 -50 -27.5 -74.5t-64.5 -24.5t-63.5 24.5t-26.5 74.5z" />
+<glyph unicode="&#xa9;" horiz-adv-x="1704" d="M893 1059q-125 0 -192.5 -87t-67.5 -241q0 -168 63.5 -249t194.5 -81q86 0 211 45v-124q-48 -20 -98.5 -34t-120.5 -14q-194 0 -298 120.5t-104 336.5q0 209 110.5 332t301.5 123q128 0 246 -60l-58 -118q-108 51 -188 51zM100 731q0 200 100 375t275 276t377 101 q200 0 375 -100t276 -275t101 -377q0 -197 -97 -370t-272 -277t-383 -104q-207 0 -382 103.5t-272.5 276.5t-97.5 371zM205 731q0 -173 87 -323.5t237.5 -237t322.5 -86.5q174 0 323 87t236.5 235.5t87.5 324.5q0 174 -87 323t-235.5 236.5t-324.5 87.5q-174 0 -323 -87 t-236.5 -235.5t-87.5 -324.5z" />
+<glyph unicode="&#xaa;" horiz-adv-x="725" d="M532 801l-24 84q-92 -97 -232 -97q-95 0 -150.5 49.5t-55.5 151.5t77 154.5t242 58.5l117 4v39q0 133 -148 133q-100 0 -204 -51l-43 96q114 56 247 56q130 0 198.5 -52.5t68.5 -173.5v-452h-93zM193 989q0 -100 112 -100q201 0 201 180v49l-98 -4q-112 -4 -163.5 -32.5 t-51.5 -92.5z" />
+<glyph unicode="&#xab;" horiz-adv-x="1018" d="M82 551l342 407l119 -69l-289 -350l289 -351l-119 -71l-342 407v27zM477 551l344 407l117 -69l-287 -350l287 -351l-117 -71l-344 407v27z" />
+<glyph unicode="&#xac;" d="M1065 791v-527h-137v389h-824v138h961z" />
+<glyph unicode="&#xad;" horiz-adv-x="659" d="M84 473zM84 473v152h491v-152h-491z" />
+<glyph unicode="&#xae;" horiz-adv-x="1704" d="M723 762h108q80 0 128.5 41.5t48.5 105.5q0 75 -43 107.5t-136 32.5h-106v-287zM1157 913q0 -80 -42.5 -141.5t-119.5 -91.5l238 -395h-168l-207 354h-135v-354h-148v891h261q166 0 243.5 -65t77.5 -198zM100 731q0 200 100 375t275 276t377 101q200 0 375 -100t276 -275 t101 -377q0 -197 -97 -370t-272 -277t-383 -104q-207 0 -382 103.5t-272.5 276.5t-97.5 371zM205 731q0 -173 87 -323.5t237.5 -237t322.5 -86.5q174 0 323 87t236.5 235.5t87.5 324.5q0 174 -87 323t-235.5 236.5t-324.5 87.5q-174 0 -323 -87t-236.5 -235.5t-87.5 -324.5z " />
+<glyph unicode="&#xaf;" horiz-adv-x="1024" d="M1030 1556h-1036v127h1036v-127z" />
+<glyph unicode="&#xb0;" horiz-adv-x="877" d="M127 1171q0 130 90.5 221t220.5 91t221 -90.5t91 -221.5q0 -84 -41 -155.5t-114 -113.5t-157 -42q-130 0 -220.5 90t-90.5 221zM242 1171q0 -82 58.5 -139t139.5 -57q80 0 137.5 56.5t57.5 139.5q0 84 -56.5 140.5t-138.5 56.5q-83 0 -140.5 -57t-57.5 -140z" />
+<glyph unicode="&#xb1;" d="M104 1zM653 791h412v-138h-412v-426h-139v426h-410v138h410v428h139v-428zM104 1v138h961v-138h-961z" />
+<glyph unicode="&#xb2;" horiz-adv-x="711" d="M653 586h-604v104l236 230q89 86 130 134.5t57.5 86.5t16.5 92q0 68 -40 102.5t-103 34.5q-52 0 -101 -19t-118 -69l-66 88q131 111 283 111q132 0 205.5 -65t73.5 -177q0 -80 -44.5 -155.5t-191.5 -213.5l-174 -165h440v-119z" />
+<glyph unicode="&#xb3;" horiz-adv-x="711" d="M627 1255q0 -80 -41 -131.5t-109 -74.5q176 -47 176 -209q0 -128 -92 -199.5t-260 -71.5q-152 0 -268 56v123q147 -68 270 -68q211 0 211 162q0 145 -231 145h-117v107h119q103 0 152.5 39.5t49.5 107.5q0 61 -40 95t-107 34q-66 0 -122 -21.5t-112 -56.5l-69 90 q63 45 133 72t164 27q136 0 214.5 -59.5t78.5 -166.5z" />
+<glyph unicode="&#xb4;" horiz-adv-x="1182" d="M393 1266q48 62 103.5 150t87.5 153h202v-21q-44 -65 -131 -160t-151 -147h-111v25z" />
+<glyph unicode="&#xb5;" horiz-adv-x="1268" d="M342 381q0 -262 254 -262q171 0 250.5 94.5t79.5 306.5v576h166v-1096h-136l-26 147h-10q-111 -167 -340 -167q-150 0 -238 92h-10q10 -84 10 -244v-320h-166v1588h166v-715z" />
+<glyph unicode="&#xb6;" horiz-adv-x="1341" d="M1120 -260h-114v1712h-213v-1712h-115v819q-62 -18 -146 -18q-216 0 -317.5 125t-101.5 376q0 260 109 387t341 127h557v-1816z" />
+<glyph unicode="&#xb7;" horiz-adv-x="545" d="M152 723q0 66 31 100.5t87 34.5q58 0 90.5 -34.5t32.5 -100.5q0 -65 -33 -100t-90 -35q-51 0 -84.5 31.5t-33.5 103.5z" />
+<glyph unicode="&#xb8;" horiz-adv-x="465" d="M436 -289q0 -97 -76.5 -150t-226.5 -53q-51 0 -96 9v106q45 -8 104 -8q79 0 119.5 20t40.5 74q0 43 -39.5 69.5t-148.5 43.5l88 178h110l-55 -115q180 -39 180 -174z" />
+<glyph unicode="&#xb9;" horiz-adv-x="711" d="M338 1462h143v-876h-133v579q0 91 6 181q-22 -22 -49 -44.5t-162 -117.5l-67 96z" />
+<glyph unicode="&#xba;" horiz-adv-x="768" d="M702 1135q0 -164 -85.5 -255.5t-235.5 -91.5q-146 0 -230.5 93t-84.5 254q0 163 84 253.5t235 90.5q152 0 234.5 -91t82.5 -253zM188 1135q0 -122 45.5 -183t149.5 -61q105 0 151 61t46 183q0 123 -46 182t-151 59q-103 0 -149 -59t-46 -182z" />
+<glyph unicode="&#xbb;" horiz-adv-x="1018" d="M936 524l-344 -407l-117 71l287 351l-287 350l117 69l344 -407v-27zM541 524l-344 -407l-117 71l287 351l-287 350l117 69l344 -407v-27z" />
+<glyph unicode="&#xbc;" horiz-adv-x="1597" d="M75 0zM1298 1462l-903 -1462h-143l903 1462h143zM337 1462h143v-876h-133v579q0 91 6 181q-22 -22 -49 -44.5t-162 -117.5l-67 96zM1489 203h-125v-202h-145v202h-402v101l408 579h139v-563h125v-117zM1219 320v195q0 134 6 209q-5 -12 -17 -31.5t-27 -42l-30 -45 t-26 -39.5l-168 -246h262z" />
+<glyph unicode="&#xbd;" horiz-adv-x="1597" d="M46 0zM1230 1462l-903 -1462h-143l903 1462h143zM308 1462h143v-876h-133v579q0 91 6 181q-22 -22 -49 -44.5t-162 -117.5l-67 96zM1499 1h-604v104l236 230q89 86 130 134.5t57.5 86.5t16.5 92q0 68 -40 102.5t-103 34.5q-52 0 -101 -19t-118 -69l-66 88 q131 111 283 111q132 0 205.5 -65t73.5 -177q0 -80 -44.5 -155.5t-191.5 -213.5l-174 -165h440v-119z" />
+<glyph unicode="&#xbe;" horiz-adv-x="1597" d="M26 0zM620 1255q0 -80 -41 -131.5t-109 -74.5q176 -47 176 -209q0 -128 -92 -199.5t-260 -71.5q-152 0 -268 56v123q147 -68 270 -68q211 0 211 162q0 145 -231 145h-117v107h119q103 0 152.5 39.5t49.5 107.5q0 61 -40 95t-107 34q-66 0 -122 -21.5t-112 -56.5l-69 90 q63 45 133 72t164 27q136 0 214.5 -59.5t78.5 -166.5zM1390 1462l-903 -1462h-143l903 1462h143zM1569 203h-125v-202h-145v202h-402v101l408 579h139v-563h125v-117zM1299 320v195q0 134 6 209q-5 -12 -17 -31.5t-27 -42l-30 -45t-26 -39.5l-168 -246h262z" />
+<glyph unicode="&#xbf;" horiz-adv-x="879" d="M590 684v-51q0 -122 -37.5 -196t-134.5 -158q-121 -106 -151.5 -143.5t-43 -76t-12.5 -94.5q0 -100 66 -156.5t188 -56.5q80 0 155 19t173 67l59 -135q-197 -96 -395 -96q-190 0 -298 93t-108 263q0 70 17.5 122.5t49.5 97t76.5 85.5t98.5 88q101 88 133.5 146t32.5 151 v31h131zM639 983q0 -135 -121 -135q-59 0 -90 34.5t-31 100.5q0 64 33 99.5t88 35.5q51 0 86 -32t35 -103z" />
+<glyph unicode="&#xc0;" horiz-adv-x="1296" d="M0 0zM1120 0l-182 465h-586l-180 -465h-172l578 1468h143l575 -1468h-176zM885 618l-170 453q-33 86 -68 211q-22 -96 -63 -211l-172 -453h473zM724 1579h-110q-65 52 -154 148t-129 159v21h203q32 -69 89 -159.5t101 -143.5v-25z" />
+<glyph unicode="&#xc1;" horiz-adv-x="1296" d="M0 0zM1120 0l-182 465h-586l-180 -465h-172l578 1468h143l575 -1468h-176zM885 618l-170 453q-33 86 -68 211q-22 -96 -63 -211l-172 -453h473zM526 1604q48 62 103.5 150t87.5 153h202v-21q-44 -65 -131 -160t-151 -147h-111v25z" />
+<glyph unicode="&#xc2;" horiz-adv-x="1296" d="M0 0zM1120 0l-182 465h-586l-180 -465h-172l578 1468h143l575 -1468h-176zM885 618l-170 453q-33 86 -68 211q-22 -96 -63 -211l-172 -453h473zM303 1602q127 136 178 200t74 105h166q22 -42 76.5 -108.5t179.5 -196.5v-23h-119q-88 55 -221 186q-136 -134 -219 -186 h-115v23z" />
+<glyph unicode="&#xc3;" horiz-adv-x="1296" d="M0 0zM1120 0l-182 465h-586l-180 -465h-172l578 1468h143l575 -1468h-176zM885 618l-170 453q-33 86 -68 211q-22 -96 -63 -211l-172 -453h473zM792 1581q-43 0 -84 18.5t-80.5 41t-76 41t-70.5 18.5q-50 0 -75.5 -30t-39.5 -91h-98q13 121 70.5 189.5t148.5 68.5 q46 0 89 -18.5t82 -41t75 -41t68 -18.5q49 0 73 29.5t39 91.5h99q-13 -121 -69.5 -189.5t-150.5 -68.5z" />
+<glyph unicode="&#xc4;" horiz-adv-x="1296" d="M0 0zM1120 0l-182 465h-586l-180 -465h-172l578 1468h143l575 -1468h-176zM885 618l-170 453q-33 86 -68 211q-22 -96 -63 -211l-172 -453h473zM364 1731q0 52 26.5 75t63.5 23q38 0 65.5 -23t27.5 -75q0 -50 -27.5 -74.5t-65.5 -24.5q-37 0 -63.5 24.5t-26.5 74.5z M745 1731q0 52 26.5 75t63.5 23t64.5 -23t27.5 -75q0 -50 -27.5 -74.5t-64.5 -24.5t-63.5 24.5t-26.5 74.5z" />
+<glyph unicode="&#xc5;" horiz-adv-x="1296" d="M0 0zM1120 0l-182 465h-586l-180 -465h-172l578 1468h143l575 -1468h-176zM885 618l-170 453q-33 86 -68 211q-22 -96 -63 -211l-172 -453h473zM870 1587q0 -98 -61.5 -157.5t-163.5 -59.5q-101 0 -161 58.5t-60 156.5t60.5 155.5t160.5 57.5q101 0 163 -59.5t62 -151.5z M762 1585q0 56 -33 86.5t-84 30.5t-84 -30.5t-33 -86.5t30 -86.5t87 -30.5q52 0 84.5 30.5t32.5 86.5z" />
+<glyph unicode="&#xc6;" horiz-adv-x="1788" d="M1665 0h-750v465h-514l-227 -465h-176l698 1462h969v-151h-580v-471h541v-150h-541v-538h580v-152zM469 618h446v693h-118z" />
+<glyph unicode="&#xc7;" horiz-adv-x="1292" d="M125 0zM827 1331q-241 0 -380.5 -160.5t-139.5 -439.5q0 -287 134.5 -443.5t383.5 -156.5q153 0 349 55v-149q-152 -57 -375 -57q-323 0 -498.5 196t-175.5 557q0 226 84.5 396t244 262t375.5 92q230 0 402 -84l-72 -146q-166 78 -332 78zM950 -289q0 -97 -76.5 -150 t-226.5 -53q-51 0 -96 9v106q45 -8 104 -8q79 0 119.5 20t40.5 74q0 43 -39.5 69.5t-148.5 43.5l88 178h110l-55 -115q180 -39 180 -174z" />
+<glyph unicode="&#xc8;" horiz-adv-x="1139" d="M201 0zM1016 0h-815v1462h815v-151h-645v-471h606v-150h-606v-538h645v-152zM713 1579h-110q-65 52 -154 148t-129 159v21h203q32 -69 89 -159.5t101 -143.5v-25z" />
+<glyph unicode="&#xc9;" horiz-adv-x="1139" d="M201 0zM1016 0h-815v1462h815v-151h-645v-471h606v-150h-606v-538h645v-152zM456 1604q48 62 103.5 150t87.5 153h202v-21q-44 -65 -131 -160t-151 -147h-111v25z" />
+<glyph unicode="&#xca;" horiz-adv-x="1139" d="M201 0zM1016 0h-815v1462h815v-151h-645v-471h606v-150h-606v-538h645v-152zM263 1602q127 136 178 200t74 105h166q22 -42 76.5 -108.5t179.5 -196.5v-23h-119q-88 55 -221 186q-136 -134 -219 -186h-115v23z" />
+<glyph unicode="&#xcb;" horiz-adv-x="1139" d="M201 0zM1016 0h-815v1462h815v-151h-645v-471h606v-150h-606v-538h645v-152zM327 1731q0 52 26.5 75t63.5 23q38 0 65.5 -23t27.5 -75q0 -50 -27.5 -74.5t-65.5 -24.5q-37 0 -63.5 24.5t-26.5 74.5zM708 1731q0 52 26.5 75t63.5 23t64.5 -23t27.5 -75q0 -50 -27.5 -74.5 t-64.5 -24.5t-63.5 24.5t-26.5 74.5z" />
+<glyph unicode="&#xcc;" horiz-adv-x="571" d="M5 0zM201 0v1462h170v-1462h-170zM398 1579h-110q-65 52 -154 148t-129 159v21h203q32 -69 89 -159.5t101 -143.5v-25z" />
+<glyph unicode="&#xcd;" horiz-adv-x="571" d="M179 0zM201 0v1462h170v-1462h-170zM179 1604q48 62 103.5 150t87.5 153h202v-21q-44 -65 -131 -160t-151 -147h-111v25z" />
+<glyph unicode="&#xce;" horiz-adv-x="571" d="M0 0zM201 0v1462h170v-1462h-170zM-57 1602q127 136 178 200t74 105h166q22 -42 76.5 -108.5t179.5 -196.5v-23h-119q-88 55 -221 186q-136 -134 -219 -186h-115v23z" />
+<glyph unicode="&#xcf;" horiz-adv-x="571" d="M5 0zM201 0v1462h170v-1462h-170zM5 1731q0 52 26.5 75t63.5 23q38 0 65.5 -23t27.5 -75q0 -50 -27.5 -74.5t-65.5 -24.5q-37 0 -63.5 24.5t-26.5 74.5zM386 1731q0 52 26.5 75t63.5 23t64.5 -23t27.5 -75q0 -50 -27.5 -74.5t-64.5 -24.5t-63.5 24.5t-26.5 74.5z" />
+<glyph unicode="&#xd0;" horiz-adv-x="1479" d="M1352 745q0 -362 -196.5 -553.5t-565.5 -191.5h-389v649h-154v150h154v663h434q337 0 527 -187.5t190 -529.5zM1171 739q0 576 -569 576h-231v-516h379v-150h-379v-502h190q610 0 610 592z" />
+<glyph unicode="&#xd1;" horiz-adv-x="1544" d="M201 0zM1343 0h-194l-799 1227h-8q16 -216 16 -396v-831h-157v1462h192l797 -1222h8q-2 27 -9 173.5t-5 209.5v839h159v-1462zM935 1581q-43 0 -84 18.5t-80.5 41t-76 41t-70.5 18.5q-50 0 -75.5 -30t-39.5 -91h-98q13 121 70.5 189.5t148.5 68.5q46 0 89 -18.5t82 -41 t75 -41t68 -18.5q49 0 73 29.5t39 91.5h99q-13 -121 -69.5 -189.5t-150.5 -68.5z" />
+<glyph unicode="&#xd2;" horiz-adv-x="1595" d="M125 0zM1470 733q0 -351 -177.5 -552t-493.5 -201q-323 0 -498.5 197.5t-175.5 557.5q0 357 176 553.5t500 196.5q315 0 492 -200t177 -552zM305 733q0 -297 126.5 -450.5t367.5 -153.5q243 0 367 153t124 451q0 295 -123.5 447.5t-365.5 152.5q-243 0 -369.5 -153.5 t-126.5 -446.5zM907 1579h-110q-65 52 -154 148t-129 159v21h203q32 -69 89 -159.5t101 -143.5v-25z" />
+<glyph unicode="&#xd3;" horiz-adv-x="1595" d="M125 0zM1470 733q0 -351 -177.5 -552t-493.5 -201q-323 0 -498.5 197.5t-175.5 557.5q0 357 176 553.5t500 196.5q315 0 492 -200t177 -552zM305 733q0 -297 126.5 -450.5t367.5 -153.5q243 0 367 153t124 451q0 295 -123.5 447.5t-365.5 152.5q-243 0 -369.5 -153.5 t-126.5 -446.5zM659 1604q48 62 103.5 150t87.5 153h202v-21q-44 -65 -131 -160t-151 -147h-111v25z" />
+<glyph unicode="&#xd4;" horiz-adv-x="1595" d="M125 0zM1470 733q0 -351 -177.5 -552t-493.5 -201q-323 0 -498.5 197.5t-175.5 557.5q0 357 176 553.5t500 196.5q315 0 492 -200t177 -552zM305 733q0 -297 126.5 -450.5t367.5 -153.5q243 0 367 153t124 451q0 295 -123.5 447.5t-365.5 152.5q-243 0 -369.5 -153.5 t-126.5 -446.5zM448 1602q127 136 178 200t74 105h166q22 -42 76.5 -108.5t179.5 -196.5v-23h-119q-88 55 -221 186q-136 -134 -219 -186h-115v23z" />
+<glyph unicode="&#xd5;" horiz-adv-x="1595" d="M125 0zM1470 733q0 -351 -177.5 -552t-493.5 -201q-323 0 -498.5 197.5t-175.5 557.5q0 357 176 553.5t500 196.5q315 0 492 -200t177 -552zM305 733q0 -297 126.5 -450.5t367.5 -153.5q243 0 367 153t124 451q0 295 -123.5 447.5t-365.5 152.5q-243 0 -369.5 -153.5 t-126.5 -446.5zM942 1581q-43 0 -84 18.5t-80.5 41t-76 41t-70.5 18.5q-50 0 -75.5 -30t-39.5 -91h-98q13 121 70.5 189.5t148.5 68.5q46 0 89 -18.5t82 -41t75 -41t68 -18.5q49 0 73 29.5t39 91.5h99q-13 -121 -69.5 -189.5t-150.5 -68.5z" />
+<glyph unicode="&#xd6;" horiz-adv-x="1595" d="M125 0zM1470 733q0 -351 -177.5 -552t-493.5 -201q-323 0 -498.5 197.5t-175.5 557.5q0 357 176 553.5t500 196.5q315 0 492 -200t177 -552zM305 733q0 -297 126.5 -450.5t367.5 -153.5q243 0 367 153t124 451q0 295 -123.5 447.5t-365.5 152.5q-243 0 -369.5 -153.5 t-126.5 -446.5zM522 1731q0 52 26.5 75t63.5 23q38 0 65.5 -23t27.5 -75q0 -50 -27.5 -74.5t-65.5 -24.5q-37 0 -63.5 24.5t-26.5 74.5zM903 1731q0 52 26.5 75t63.5 23t64.5 -23t27.5 -75q0 -50 -27.5 -74.5t-64.5 -24.5t-63.5 24.5t-26.5 74.5z" />
+<glyph unicode="&#xd7;" d="M940 1176l96 -99l-352 -354l350 -352l-96 -99l-354 351l-348 -351l-101 99l350 352l-352 352l100 101l353 -355z" />
+<glyph unicode="&#xd8;" horiz-adv-x="1595" d="M1470 733q0 -351 -177.5 -552t-493.5 -201q-235 0 -383 100l-101 -141l-120 79l108 154q-178 198 -178 563q0 357 176 553.5t500 196.5q209 0 366 -94l97 135l120 -80l-106 -148q192 -202 192 -565zM1290 733q0 272 -110 426l-672 -948q115 -82 291 -82q243 0 367 153 t124 451zM305 733q0 -262 101 -416l669 943q-106 73 -274 73q-243 0 -369.5 -153.5t-126.5 -446.5z" />
+<glyph unicode="&#xd9;" horiz-adv-x="1491" d="M186 0zM1305 1462v-946q0 -250 -151 -393t-415 -143t-408.5 144t-144.5 396v942h170v-954q0 -183 100 -281t294 -98q185 0 285 98.5t100 282.5v952h170zM856 1579h-110q-65 52 -154 148t-129 159v21h203q32 -69 89 -159.5t101 -143.5v-25z" />
+<glyph unicode="&#xda;" horiz-adv-x="1491" d="M186 0zM1305 1462v-946q0 -250 -151 -393t-415 -143t-408.5 144t-144.5 396v942h170v-954q0 -183 100 -281t294 -98q185 0 285 98.5t100 282.5v952h170zM600 1604q48 62 103.5 150t87.5 153h202v-21q-44 -65 -131 -160t-151 -147h-111v25z" />
+<glyph unicode="&#xdb;" horiz-adv-x="1491" d="M186 0zM1305 1462v-946q0 -250 -151 -393t-415 -143t-408.5 144t-144.5 396v942h170v-954q0 -183 100 -281t294 -98q185 0 285 98.5t100 282.5v952h170zM393 1602q127 136 178 200t74 105h166q22 -42 76.5 -108.5t179.5 -196.5v-23h-119q-88 55 -221 186 q-136 -134 -219 -186h-115v23z" />
+<glyph unicode="&#xdc;" horiz-adv-x="1491" d="M186 0zM1305 1462v-946q0 -250 -151 -393t-415 -143t-408.5 144t-144.5 396v942h170v-954q0 -183 100 -281t294 -98q185 0 285 98.5t100 282.5v952h170zM461 1731q0 52 26.5 75t63.5 23q38 0 65.5 -23t27.5 -75q0 -50 -27.5 -74.5t-65.5 -24.5q-37 0 -63.5 24.5 t-26.5 74.5zM842 1731q0 52 26.5 75t63.5 23t64.5 -23t27.5 -75q0 -50 -27.5 -74.5t-64.5 -24.5t-63.5 24.5t-26.5 74.5z" />
+<glyph unicode="&#xdd;" horiz-adv-x="1147" d="M0 0zM573 731l390 731h184l-488 -895v-567h-172v559l-487 903h186zM442 1604q48 62 103.5 150t87.5 153h202v-21q-44 -65 -131 -160t-151 -147h-111v25z" />
+<glyph unicode="&#xde;" horiz-adv-x="1251" d="M1145 784q0 -227 -151.5 -346t-438.5 -119h-184v-319h-170v1462h170v-256h215q281 0 420 -103.5t139 -318.5zM371 465h168q226 0 327 71.5t101 235.5q0 149 -95 218t-297 69h-204v-594z" />
+<glyph unicode="&#xdf;" horiz-adv-x="1274" d="M1049 1266q0 -135 -143 -250q-88 -70 -116 -103.5t-28 -66.5q0 -32 13.5 -53t49 -49.5t113.5 -79.5q140 -95 191 -173.5t51 -179.5q0 -160 -97 -245.5t-276 -85.5q-188 0 -295 69v154q63 -39 141 -62.5t150 -23.5q215 0 215 182q0 75 -41.5 128.5t-151.5 123.5 q-127 82 -175 143.5t-48 145.5q0 63 34.5 116t105.5 106q75 57 107 102t32 98q0 80 -68 122.5t-195 42.5q-276 0 -276 -223v-1204h-166v1202q0 178 110 271.5t332 93.5q206 0 318.5 -78.5t112.5 -222.5z" />
+<glyph unicode="&#xe0;" horiz-adv-x="1139" d="M94 0zM850 0l-33 156h-8q-82 -103 -163.5 -139.5t-203.5 -36.5q-163 0 -255.5 84t-92.5 239q0 332 531 348l186 6v68q0 129 -55.5 190.5t-177.5 61.5q-137 0 -310 -84l-51 127q81 44 177.5 69t193.5 25q196 0 290.5 -87t94.5 -279v-748h-123zM475 117q155 0 243.5 85 t88.5 238v99l-166 -7q-198 -7 -285.5 -61.5t-87.5 -169.5q0 -90 54.5 -137t152.5 -47zM672 1241h-110q-65 52 -154 148t-129 159v21h203q32 -69 89 -159.5t101 -143.5v-25z" />
+<glyph unicode="&#xe1;" horiz-adv-x="1139" d="M94 0zM850 0l-33 156h-8q-82 -103 -163.5 -139.5t-203.5 -36.5q-163 0 -255.5 84t-92.5 239q0 332 531 348l186 6v68q0 129 -55.5 190.5t-177.5 61.5q-137 0 -310 -84l-51 127q81 44 177.5 69t193.5 25q196 0 290.5 -87t94.5 -279v-748h-123zM475 117q155 0 243.5 85 t88.5 238v99l-166 -7q-198 -7 -285.5 -61.5t-87.5 -169.5q0 -90 54.5 -137t152.5 -47zM436 1266q48 62 103.5 150t87.5 153h202v-21q-44 -65 -131 -160t-151 -147h-111v25z" />
+<glyph unicode="&#xe2;" horiz-adv-x="1139" d="M94 0zM850 0l-33 156h-8q-82 -103 -163.5 -139.5t-203.5 -36.5q-163 0 -255.5 84t-92.5 239q0 332 531 348l186 6v68q0 129 -55.5 190.5t-177.5 61.5q-137 0 -310 -84l-51 127q81 44 177.5 69t193.5 25q196 0 290.5 -87t94.5 -279v-748h-123zM475 117q155 0 243.5 85 t88.5 238v99l-166 -7q-198 -7 -285.5 -61.5t-87.5 -169.5q0 -90 54.5 -137t152.5 -47zM228 1264q127 136 178 200t74 105h166q22 -42 76.5 -108.5t179.5 -196.5v-23h-119q-88 55 -221 186q-136 -134 -219 -186h-115v23z" />
+<glyph unicode="&#xe3;" horiz-adv-x="1139" d="M94 0zM850 0l-33 156h-8q-82 -103 -163.5 -139.5t-203.5 -36.5q-163 0 -255.5 84t-92.5 239q0 332 531 348l186 6v68q0 129 -55.5 190.5t-177.5 61.5q-137 0 -310 -84l-51 127q81 44 177.5 69t193.5 25q196 0 290.5 -87t94.5 -279v-748h-123zM475 117q155 0 243.5 85 t88.5 238v99l-166 -7q-198 -7 -285.5 -61.5t-87.5 -169.5q0 -90 54.5 -137t152.5 -47zM721 1243q-43 0 -84 18.5t-80.5 41t-76 41t-70.5 18.5q-50 0 -75.5 -30t-39.5 -91h-98q13 121 70.5 189.5t148.5 68.5q46 0 89 -18.5t82 -41t75 -41t68 -18.5q49 0 73 29.5t39 91.5h99 q-13 -121 -69.5 -189.5t-150.5 -68.5z" />
+<glyph unicode="&#xe4;" horiz-adv-x="1139" d="M94 0zM850 0l-33 156h-8q-82 -103 -163.5 -139.5t-203.5 -36.5q-163 0 -255.5 84t-92.5 239q0 332 531 348l186 6v68q0 129 -55.5 190.5t-177.5 61.5q-137 0 -310 -84l-51 127q81 44 177.5 69t193.5 25q196 0 290.5 -87t94.5 -279v-748h-123zM475 117q155 0 243.5 85 t88.5 238v99l-166 -7q-198 -7 -285.5 -61.5t-87.5 -169.5q0 -90 54.5 -137t152.5 -47zM279 1393q0 52 26.5 75t63.5 23q38 0 65.5 -23t27.5 -75q0 -50 -27.5 -74.5t-65.5 -24.5q-37 0 -63.5 24.5t-26.5 74.5zM660 1393q0 52 26.5 75t63.5 23t64.5 -23t27.5 -75 q0 -50 -27.5 -74.5t-64.5 -24.5t-63.5 24.5t-26.5 74.5z" />
+<glyph unicode="&#xe5;" horiz-adv-x="1139" d="M94 0zM850 0l-33 156h-8q-82 -103 -163.5 -139.5t-203.5 -36.5q-163 0 -255.5 84t-92.5 239q0 332 531 348l186 6v68q0 129 -55.5 190.5t-177.5 61.5q-137 0 -310 -84l-51 127q81 44 177.5 69t193.5 25q196 0 290.5 -87t94.5 -279v-748h-123zM475 117q155 0 243.5 85 t88.5 238v99l-166 -7q-198 -7 -285.5 -61.5t-87.5 -169.5q0 -90 54.5 -137t152.5 -47zM804 1458q0 -98 -61.5 -157.5t-163.5 -59.5q-101 0 -161 58.5t-60 156.5t60.5 155.5t160.5 57.5q101 0 163 -59.5t62 -151.5zM696 1456q0 56 -33 86.5t-84 30.5t-84 -30.5t-33 -86.5 t30 -86.5t87 -30.5q52 0 84.5 30.5t32.5 86.5z" />
+<glyph unicode="&#xe6;" horiz-adv-x="1757" d="M94 303q0 161 124 250.5t378 97.5l184 6v68q0 129 -58 190.5t-177 61.5q-144 0 -307 -84l-52 127q74 41 173.5 67.5t197.5 26.5q130 0 212.5 -43.5t123.5 -138.5q53 88 138.5 136t195.5 48q192 0 308 -133.5t116 -355.5v-107h-701q8 -395 322 -395q91 0 169.5 17.5 t162.5 56.5v-148q-86 -38 -160.5 -54.5t-175.5 -16.5q-289 0 -414 233q-81 -127 -179.5 -180t-232.5 -53q-163 0 -255.5 85t-92.5 238zM268 301q0 -95 53.5 -139.5t141.5 -44.5q145 0 229 84.5t84 238.5v99l-158 -7q-186 -8 -268 -62.5t-82 -168.5zM1225 977 q-121 0 -190.5 -83t-80.5 -241h519q0 156 -64 240t-184 84z" />
+<glyph unicode="&#xe7;" horiz-adv-x="975" d="M115 0zM614 -20q-238 0 -368.5 146.5t-130.5 414.5q0 275 132.5 425t377.5 150q79 0 158 -17t124 -40l-51 -141q-55 22 -120 36.5t-115 14.5q-334 0 -334 -426q0 -202 81.5 -310t241.5 -108q137 0 281 59v-147q-110 -57 -277 -57zM762 -289q0 -97 -76.5 -150t-226.5 -53 q-51 0 -96 9v106q45 -8 104 -8q79 0 119.5 20t40.5 74q0 43 -39.5 69.5t-148.5 43.5l88 178h110l-55 -115q180 -39 180 -174z" />
+<glyph unicode="&#xe8;" horiz-adv-x="1149" d="M115 0zM639 -20q-243 0 -383.5 148t-140.5 411q0 265 130.5 421t350.5 156q206 0 326 -135.5t120 -357.5v-105h-755q5 -193 97.5 -293t260.5 -100q177 0 350 74v-148q-88 -38 -166.5 -54.5t-189.5 -16.5zM594 977q-132 0 -210.5 -86t-92.5 -238h573q0 157 -70 240.5 t-200 83.5zM711 1241h-110q-65 52 -154 148t-129 159v21h203q32 -69 89 -159.5t101 -143.5v-25z" />
+<glyph unicode="&#xe9;" horiz-adv-x="1149" d="M115 0zM639 -20q-243 0 -383.5 148t-140.5 411q0 265 130.5 421t350.5 156q206 0 326 -135.5t120 -357.5v-105h-755q5 -193 97.5 -293t260.5 -100q177 0 350 74v-148q-88 -38 -166.5 -54.5t-189.5 -16.5zM594 977q-132 0 -210.5 -86t-92.5 -238h573q0 157 -70 240.5 t-200 83.5zM471 1266q48 62 103.5 150t87.5 153h202v-21q-44 -65 -131 -160t-151 -147h-111v25z" />
+<glyph unicode="&#xea;" horiz-adv-x="1149" d="M115 0zM639 -20q-243 0 -383.5 148t-140.5 411q0 265 130.5 421t350.5 156q206 0 326 -135.5t120 -357.5v-105h-755q5 -193 97.5 -293t260.5 -100q177 0 350 74v-148q-88 -38 -166.5 -54.5t-189.5 -16.5zM594 977q-132 0 -210.5 -86t-92.5 -238h573q0 157 -70 240.5 t-200 83.5zM259 1264q127 136 178 200t74 105h166q22 -42 76.5 -108.5t179.5 -196.5v-23h-119q-88 55 -221 186q-136 -134 -219 -186h-115v23z" />
+<glyph unicode="&#xeb;" horiz-adv-x="1149" d="M115 0zM639 -20q-243 0 -383.5 148t-140.5 411q0 265 130.5 421t350.5 156q206 0 326 -135.5t120 -357.5v-105h-755q5 -193 97.5 -293t260.5 -100q177 0 350 74v-148q-88 -38 -166.5 -54.5t-189.5 -16.5zM594 977q-132 0 -210.5 -86t-92.5 -238h573q0 157 -70 240.5 t-200 83.5zM319 1393q0 52 26.5 75t63.5 23q38 0 65.5 -23t27.5 -75q0 -50 -27.5 -74.5t-65.5 -24.5q-37 0 -63.5 24.5t-26.5 74.5zM700 1393q0 52 26.5 75t63.5 23t64.5 -23t27.5 -75q0 -50 -27.5 -74.5t-64.5 -24.5t-63.5 24.5t-26.5 74.5z" />
+<glyph unicode="&#xec;" horiz-adv-x="518" d="M0 0zM342 0h-166v1096h166v-1096zM355 1241h-110q-65 52 -154 148t-129 159v21h203q32 -69 89 -159.5t101 -143.5v-25z" />
+<glyph unicode="&#xed;" horiz-adv-x="518" d="M169 0zM342 0h-166v1096h166v-1096zM169 1266q48 62 103.5 150t87.5 153h202v-21q-44 -65 -131 -160t-151 -147h-111v25z" />
+<glyph unicode="&#xee;" horiz-adv-x="518" d="M0 0zM342 0h-166v1096h166v-1096zM-77 1264q127 136 178 200t74 105h166q22 -42 76.5 -108.5t179.5 -196.5v-23h-119q-88 55 -221 186q-136 -134 -219 -186h-115v23z" />
+<glyph unicode="&#xef;" horiz-adv-x="518" d="M0 0zM342 0h-166v1096h166v-1096zM-20 1393q0 52 26.5 75t63.5 23q38 0 65.5 -23t27.5 -75q0 -50 -27.5 -74.5t-65.5 -24.5q-37 0 -63.5 24.5t-26.5 74.5zM361 1393q0 52 26.5 75t63.5 23t64.5 -23t27.5 -75q0 -50 -27.5 -74.5t-64.5 -24.5t-63.5 24.5t-26.5 74.5z" />
+<glyph unicode="&#xf0;" horiz-adv-x="1221" d="M1122 563q0 -281 -130.5 -432t-377.5 -151q-222 0 -361.5 134.5t-139.5 360.5q0 230 131.5 361t351.5 131q226 0 326 -121l8 4q-57 214 -262 405l-271 -155l-73 108l233 133q-92 62 -186 111l69 117q156 -73 258 -148l238 138l76 -107l-207 -119q152 -143 234.5 -342 t82.5 -428zM954 512q0 147 -90 232t-246 85q-337 0 -337 -360q0 -167 87.5 -258.5t249.5 -91.5q175 0 255.5 100.5t80.5 292.5z" />
+<glyph unicode="&#xf1;" horiz-adv-x="1257" d="M176 0zM926 0v709q0 134 -61 200t-191 66q-172 0 -252 -93t-80 -307v-575h-166v1096h135l27 -150h8q51 81 143 125.5t205 44.5q198 0 298 -95.5t100 -305.5v-715h-166zM802 1243q-43 0 -84 18.5t-80.5 41t-76 41t-70.5 18.5q-50 0 -75.5 -30t-39.5 -91h-98 q13 121 70.5 189.5t148.5 68.5q46 0 89 -18.5t82 -41t75 -41t68 -18.5q49 0 73 29.5t39 91.5h99q-13 -121 -69.5 -189.5t-150.5 -68.5z" />
+<glyph unicode="&#xf2;" horiz-adv-x="1237" d="M115 0zM1122 549q0 -268 -135 -418.5t-373 -150.5q-147 0 -261 69t-176 198t-62 302q0 268 134 417.5t372 149.5q230 0 365.5 -153t135.5 -414zM287 549q0 -210 84 -320t247 -110t247.5 109.5t84.5 320.5q0 209 -84.5 317.5t-249.5 108.5q-163 0 -246 -107t-83 -319z M742 1241h-110q-65 52 -154 148t-129 159v21h203q32 -69 89 -159.5t101 -143.5v-25z" />
+<glyph unicode="&#xf3;" horiz-adv-x="1237" d="M115 0zM1122 549q0 -268 -135 -418.5t-373 -150.5q-147 0 -261 69t-176 198t-62 302q0 268 134 417.5t372 149.5q230 0 365.5 -153t135.5 -414zM287 549q0 -210 84 -320t247 -110t247.5 109.5t84.5 320.5q0 209 -84.5 317.5t-249.5 108.5q-163 0 -246 -107t-83 -319z M479 1266q48 62 103.5 150t87.5 153h202v-21q-44 -65 -131 -160t-151 -147h-111v25z" />
+<glyph unicode="&#xf4;" horiz-adv-x="1237" d="M115 0zM1122 549q0 -268 -135 -418.5t-373 -150.5q-147 0 -261 69t-176 198t-62 302q0 268 134 417.5t372 149.5q230 0 365.5 -153t135.5 -414zM287 549q0 -210 84 -320t247 -110t247.5 109.5t84.5 320.5q0 209 -84.5 317.5t-249.5 108.5q-163 0 -246 -107t-83 -319z M282 1264q127 136 178 200t74 105h166q22 -42 76.5 -108.5t179.5 -196.5v-23h-119q-88 55 -221 186q-136 -134 -219 -186h-115v23z" />
+<glyph unicode="&#xf5;" horiz-adv-x="1237" d="M115 0zM1122 549q0 -268 -135 -418.5t-373 -150.5q-147 0 -261 69t-176 198t-62 302q0 268 134 417.5t372 149.5q230 0 365.5 -153t135.5 -414zM287 549q0 -210 84 -320t247 -110t247.5 109.5t84.5 320.5q0 209 -84.5 317.5t-249.5 108.5q-163 0 -246 -107t-83 -319z M773 1243q-43 0 -84 18.5t-80.5 41t-76 41t-70.5 18.5q-50 0 -75.5 -30t-39.5 -91h-98q13 121 70.5 189.5t148.5 68.5q46 0 89 -18.5t82 -41t75 -41t68 -18.5q49 0 73 29.5t39 91.5h99q-13 -121 -69.5 -189.5t-150.5 -68.5z" />
+<glyph unicode="&#xf6;" horiz-adv-x="1237" d="M115 0zM1122 549q0 -268 -135 -418.5t-373 -150.5q-147 0 -261 69t-176 198t-62 302q0 268 134 417.5t372 149.5q230 0 365.5 -153t135.5 -414zM287 549q0 -210 84 -320t247 -110t247.5 109.5t84.5 320.5q0 209 -84.5 317.5t-249.5 108.5q-163 0 -246 -107t-83 -319z M336 1393q0 52 26.5 75t63.5 23q38 0 65.5 -23t27.5 -75q0 -50 -27.5 -74.5t-65.5 -24.5q-37 0 -63.5 24.5t-26.5 74.5zM717 1393q0 52 26.5 75t63.5 23t64.5 -23t27.5 -75q0 -50 -27.5 -74.5t-64.5 -24.5t-63.5 24.5t-26.5 74.5z" />
+<glyph unicode="&#xf7;" d="M104 653v138h961v-138h-961zM471 373q0 60 29.5 90.5t83.5 30.5q52 0 81 -31.5t29 -89.5q0 -57 -29.5 -89t-80.5 -32q-52 0 -82.5 31.5t-30.5 89.5zM471 1071q0 60 29.5 90.5t83.5 30.5q52 0 81 -31.5t29 -89.5q0 -57 -29.5 -89t-80.5 -32q-52 0 -82.5 31.5t-30.5 89.5z " />
+<glyph unicode="&#xf8;" horiz-adv-x="1237" d="M1122 549q0 -268 -135 -418.5t-373 -150.5q-154 0 -266 69l-84 -117l-114 78l94 131q-129 152 -129 408q0 268 134 417.5t372 149.5q154 0 270 -76l84 119l117 -76l-97 -133q127 -152 127 -401zM287 549q0 -171 53 -273l465 646q-75 53 -189 53q-163 0 -246 -107 t-83 -319zM950 549q0 164 -51 264l-465 -643q71 -51 184 -51q163 0 247.5 109.5t84.5 320.5z" />
+<glyph unicode="&#xf9;" horiz-adv-x="1257" d="M164 0zM332 1096v-711q0 -134 61 -200t191 -66q172 0 251.5 94t79.5 307v576h166v-1096h-137l-24 147h-9q-51 -81 -141.5 -124t-206.5 -43q-200 0 -299.5 95t-99.5 304v717h168zM726 1241h-110q-65 52 -154 148t-129 159v21h203q32 -69 89 -159.5t101 -143.5v-25z" />
+<glyph unicode="&#xfa;" horiz-adv-x="1257" d="M164 0zM332 1096v-711q0 -134 61 -200t191 -66q172 0 251.5 94t79.5 307v576h166v-1096h-137l-24 147h-9q-51 -81 -141.5 -124t-206.5 -43q-200 0 -299.5 95t-99.5 304v717h168zM506 1266q48 62 103.5 150t87.5 153h202v-21q-44 -65 -131 -160t-151 -147h-111v25z" />
+<glyph unicode="&#xfb;" horiz-adv-x="1257" d="M164 0zM332 1096v-711q0 -134 61 -200t191 -66q172 0 251.5 94t79.5 307v576h166v-1096h-137l-24 147h-9q-51 -81 -141.5 -124t-206.5 -43q-200 0 -299.5 95t-99.5 304v717h168zM286 1264q127 136 178 200t74 105h166q22 -42 76.5 -108.5t179.5 -196.5v-23h-119 q-88 55 -221 186q-136 -134 -219 -186h-115v23z" />
+<glyph unicode="&#xfc;" horiz-adv-x="1257" d="M164 0zM332 1096v-711q0 -134 61 -200t191 -66q172 0 251.5 94t79.5 307v576h166v-1096h-137l-24 147h-9q-51 -81 -141.5 -124t-206.5 -43q-200 0 -299.5 95t-99.5 304v717h168zM342 1393q0 52 26.5 75t63.5 23q38 0 65.5 -23t27.5 -75q0 -50 -27.5 -74.5t-65.5 -24.5 q-37 0 -63.5 24.5t-26.5 74.5zM723 1393q0 52 26.5 75t63.5 23t64.5 -23t27.5 -75q0 -50 -27.5 -74.5t-64.5 -24.5t-63.5 24.5t-26.5 74.5z" />
+<glyph unicode="&#xfd;" horiz-adv-x="1032" d="M2 0zM2 1096h178l240 -625q79 -214 98 -309h8q13 51 54.5 174.5t271.5 759.5h178l-471 -1248q-70 -185 -163.5 -262.5t-229.5 -77.5q-76 0 -150 17v133q55 -12 123 -12q171 0 244 192l61 156zM411 1266q48 62 103.5 150t87.5 153h202v-21q-44 -65 -131 -160t-151 -147 h-111v25z" />
+<glyph unicode="&#xfe;" horiz-adv-x="1255" d="M344 948q66 89 151 128.5t191 39.5q215 0 335 -150t120 -417q0 -268 -120.5 -418.5t-334.5 -150.5q-222 0 -344 161h-12l4 -34q8 -77 8 -140v-459h-166v2048h166v-466q0 -52 -6 -142h8zM664 975q-168 0 -244 -92t-78 -293v-41q0 -231 77 -330.5t247 -99.5q303 0 303 432 q0 215 -74 319.5t-231 104.5z" />
+<glyph unicode="&#xff;" horiz-adv-x="1032" d="M2 0zM2 1096h178l240 -625q79 -214 98 -309h8q13 51 54.5 174.5t271.5 759.5h178l-471 -1248q-70 -185 -163.5 -262.5t-229.5 -77.5q-76 0 -150 17v133q55 -12 123 -12q171 0 244 192l61 156zM234 1393q0 52 26.5 75t63.5 23q38 0 65.5 -23t27.5 -75q0 -50 -27.5 -74.5 t-65.5 -24.5q-37 0 -63.5 24.5t-26.5 74.5zM615 1393q0 52 26.5 75t63.5 23t64.5 -23t27.5 -75q0 -50 -27.5 -74.5t-64.5 -24.5t-63.5 24.5t-26.5 74.5z" />
+<glyph unicode="&#x131;" horiz-adv-x="518" d="M342 0h-166v1096h166v-1096z" />
+<glyph unicode="&#x152;" horiz-adv-x="1890" d="M1767 0h-768q-102 -20 -194 -20q-327 0 -503.5 196.5t-176.5 558.5q0 360 174 555t494 195q102 0 192 -23h782v-151h-589v-471h551v-150h-551v-538h589v-152zM811 1333q-249 0 -377.5 -152.5t-128.5 -447.5q0 -297 128.5 -450.5t375.5 -153.5q112 0 199 33v1141 q-87 30 -197 30z" />
+<glyph unicode="&#x153;" horiz-adv-x="1929" d="M1430 -20q-293 0 -418 235q-62 -116 -166.5 -175.5t-241.5 -59.5q-223 0 -357 152.5t-134 416.5q0 265 131 415t366 150q131 0 233.5 -59.5t164.5 -173.5q58 112 154 172.5t222 60.5q201 0 320 -132.5t119 -358.5v-105h-729q8 -393 338 -393q94 0 174.5 17.5t167.5 56.5 v-148q-88 -39 -164 -55t-180 -16zM287 549q0 -211 76 -320.5t243 -109.5q163 0 239.5 106.5t76.5 315.5q0 221 -77.5 327.5t-242.5 106.5q-166 0 -240.5 -108t-74.5 -318zM1382 975q-127 0 -199.5 -82t-84.5 -240h544q0 158 -66 240t-194 82z" />
+<glyph unicode="&#x178;" horiz-adv-x="1147" d="M0 0zM573 731l390 731h184l-488 -895v-567h-172v559l-487 903h186zM294 1731q0 52 26.5 75t63.5 23q38 0 65.5 -23t27.5 -75q0 -50 -27.5 -74.5t-65.5 -24.5q-37 0 -63.5 24.5t-26.5 74.5zM675 1731q0 52 26.5 75t63.5 23t64.5 -23t27.5 -75q0 -50 -27.5 -74.5 t-64.5 -24.5t-63.5 24.5t-26.5 74.5z" />
+<glyph unicode="&#x2c6;" horiz-adv-x="1212" d="M268 1264q127 136 178 200t74 105h166q22 -42 76.5 -108.5t179.5 -196.5v-23h-119q-88 55 -221 186q-136 -134 -219 -186h-115v23z" />
+<glyph unicode="&#x2da;" horiz-adv-x="1182" d="M813 1458q0 -98 -61.5 -157.5t-163.5 -59.5q-101 0 -161 58.5t-60 156.5t60.5 155.5t160.5 57.5q101 0 163 -59.5t62 -151.5zM705 1456q0 56 -33 86.5t-84 30.5t-84 -30.5t-33 -86.5t30 -86.5t87 -30.5q52 0 84.5 30.5t32.5 86.5z" />
+<glyph unicode="&#x2dc;" horiz-adv-x="1212" d="M788 1243q-43 0 -84 18.5t-80.5 41t-76 41t-70.5 18.5q-50 0 -75.5 -30t-39.5 -91h-98q13 121 70.5 189.5t148.5 68.5q46 0 89 -18.5t82 -41t75 -41t68 -18.5q49 0 73 29.5t39 91.5h99q-13 -121 -69.5 -189.5t-150.5 -68.5z" />
+<glyph unicode="&#x2000;" horiz-adv-x="953" />
+<glyph unicode="&#x2001;" horiz-adv-x="1907" />
+<glyph unicode="&#x2002;" horiz-adv-x="953" />
+<glyph unicode="&#x2003;" horiz-adv-x="1907" />
+<glyph unicode="&#x2004;" horiz-adv-x="635" />
+<glyph unicode="&#x2005;" horiz-adv-x="476" />
+<glyph unicode="&#x2006;" horiz-adv-x="317" />
+<glyph unicode="&#x2007;" horiz-adv-x="317" />
+<glyph unicode="&#x2008;" horiz-adv-x="238" />
+<glyph unicode="&#x2009;" horiz-adv-x="381" />
+<glyph unicode="&#x200a;" horiz-adv-x="105" />
+<glyph unicode="&#x2010;" horiz-adv-x="659" d="M84 473v152h491v-152h-491z" />
+<glyph unicode="&#x2011;" horiz-adv-x="659" d="M84 473v152h491v-152h-491z" />
+<glyph unicode="&#x2012;" horiz-adv-x="659" d="M84 473v152h491v-152h-491z" />
+<glyph unicode="&#x2013;" horiz-adv-x="1024" d="M82 473v152h860v-152h-860z" />
+<glyph unicode="&#x2014;" horiz-adv-x="2048" d="M82 473v152h1884v-152h-1884z" />
+<glyph unicode="&#x2018;" horiz-adv-x="348" d="M37 961l-12 22q22 90 71 224t105 255h123q-66 -254 -103 -501h-184z" />
+<glyph unicode="&#x2019;" horiz-adv-x="348" d="M309 1462l15 -22q-26 -100 -75 -232.5t-102 -246.5h-122q70 285 102 501h182z" />
+<glyph unicode="&#x201a;" horiz-adv-x="502" d="M63 0zM350 238l15 -23q-26 -100 -75 -232.5t-102 -246.5h-125q27 104 59.5 257t45.5 245h182z" />
+<glyph unicode="&#x201c;" horiz-adv-x="717" d="M406 961l-15 22q56 215 178 479h123q-30 -115 -59.5 -259.5t-42.5 -241.5h-184zM37 961l-12 22q22 90 71 224t105 255h123q-66 -254 -103 -501h-184z" />
+<glyph unicode="&#x201d;" horiz-adv-x="717" d="M309 1462l15 -22q-26 -100 -75 -232.5t-102 -246.5h-122q70 285 102 501h182zM678 1462l14 -22q-24 -91 -72 -224t-104 -255h-125q26 100 59 254t46 247h182z" />
+<glyph unicode="&#x201e;" horiz-adv-x="829" d="M25 0zM309 238l15 -22q-26 -100 -75 -232.5t-102 -246.5h-122q70 285 102 501h182zM678 238l14 -22q-24 -91 -72 -224t-104 -255h-125q26 100 59 254t46 247h182z" />
+<glyph unicode="&#x2022;" horiz-adv-x="770" d="M164 748q0 121 56.5 184t164.5 63q105 0 163 -62t58 -185q0 -119 -57.5 -183.5t-163.5 -64.5q-107 0 -164 65.5t-57 182.5z" />
+<glyph unicode="&#x2026;" horiz-adv-x="1606" d="M152 0zM152 106q0 67 30.5 101.5t87.5 34.5q58 0 90.5 -34.5t32.5 -101.5q0 -65 -33 -100t-90 -35q-51 0 -84.5 31.5t-33.5 103.5zM682 106q0 67 30.5 101.5t87.5 34.5q58 0 90.5 -34.5t32.5 -101.5q0 -65 -33 -100t-90 -35q-51 0 -84.5 31.5t-33.5 103.5zM1213 106 q0 67 30.5 101.5t87.5 34.5q58 0 90.5 -34.5t32.5 -101.5q0 -65 -33 -100t-90 -35q-51 0 -84.5 31.5t-33.5 103.5z" />
+<glyph unicode="&#x202f;" horiz-adv-x="381" />
+<glyph unicode="&#x2039;" horiz-adv-x="623" d="M82 551l342 407l119 -69l-289 -350l289 -351l-119 -71l-342 407v27z" />
+<glyph unicode="&#x203a;" horiz-adv-x="623" d="M541 524l-344 -407l-117 71l287 351l-287 350l117 69l344 -407v-27z" />
+<glyph unicode="&#x2044;" horiz-adv-x="266" d="M655 1462l-903 -1462h-143l903 1462h143z" />
+<glyph unicode="&#x205f;" horiz-adv-x="476" />
+<glyph unicode="&#x2074;" horiz-adv-x="711" d="M692 788h-125v-202h-145v202h-402v101l408 579h139v-563h125v-117zM422 905v195q0 134 6 209q-5 -12 -17 -31.5t-27 -42l-30 -45t-26 -39.5l-168 -246h262z" />
+<glyph unicode="&#x20ac;" horiz-adv-x="1208" d="M795 1333q-319 0 -398 -403h510v-129h-524l-2 -57v-64l2 -45h463v-129h-447q37 -180 138.5 -278.5t271.5 -98.5q156 0 309 66v-150q-146 -65 -317 -65q-237 0 -381.5 134.5t-190.5 391.5h-166v129h152l-2 42v44l2 80h-152v129h164q39 261 185 407t383 146q201 0 366 -97 l-71 -139q-166 86 -295 86z" />
+<glyph unicode="&#x2122;" horiz-adv-x="1589" d="M369 741h-123v615h-209v106h543v-106h-211v-615zM969 741l-201 559h-8l6 -129v-430h-119v721h187l196 -559l203 559h180v-721h-127v420l6 137h-8l-211 -557h-104z" />
+<glyph unicode="&#x2212;" d="M104 653v138h961v-138h-961z" />
+<glyph unicode="&#xe000;" horiz-adv-x="1095" d="M0 1095h1095v-1095h-1095v1095z" />
+<glyph horiz-adv-x="1255" d="M0 0z" />
+<hkern u1="&#x22;" u2="&#x178;" k="-20" />
+<hkern u1="&#x22;" u2="&#x153;" k="123" />
+<hkern u1="&#x22;" u2="&#xfc;" k="61" />
+<hkern u1="&#x22;" u2="&#xfb;" k="61" />
+<hkern u1="&#x22;" u2="&#xfa;" k="61" />
+<hkern u1="&#x22;" u2="&#xf9;" k="61" />
+<hkern u1="&#x22;" u2="&#xf8;" k="123" />
+<hkern u1="&#x22;" u2="&#xf6;" k="123" />
+<hkern u1="&#x22;" u2="&#xf5;" k="123" />
+<hkern u1="&#x22;" u2="&#xf4;" k="123" />
+<hkern u1="&#x22;" u2="&#xf3;" k="123" />
+<hkern u1="&#x22;" u2="&#xf2;" k="123" />
+<hkern u1="&#x22;" u2="&#xeb;" k="123" />
+<hkern u1="&#x22;" u2="&#xea;" k="123" />
+<hkern u1="&#x22;" u2="&#xe9;" k="123" />
+<hkern u1="&#x22;" u2="&#xe8;" k="123" />
+<hkern u1="&#x22;" u2="&#xe7;" k="123" />
+<hkern u1="&#x22;" u2="&#xe6;" k="82" />
+<hkern u1="&#x22;" u2="&#xe5;" k="82" />
+<hkern u1="&#x22;" u2="&#xe4;" k="82" />
+<hkern u1="&#x22;" u2="&#xe3;" k="82" />
+<hkern u1="&#x22;" u2="&#xe2;" k="82" />
+<hkern u1="&#x22;" u2="&#xe1;" k="82" />
+<hkern u1="&#x22;" u2="&#xe0;" k="123" />
+<hkern u1="&#x22;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x22;" u2="&#xc5;" k="143" />
+<hkern u1="&#x22;" u2="&#xc4;" k="143" />
+<hkern u1="&#x22;" u2="&#xc3;" k="143" />
+<hkern u1="&#x22;" u2="&#xc2;" k="143" />
+<hkern u1="&#x22;" u2="&#xc1;" k="143" />
+<hkern u1="&#x22;" u2="&#xc0;" k="143" />
+<hkern u1="&#x22;" u2="u" k="61" />
+<hkern u1="&#x22;" u2="s" k="61" />
+<hkern u1="&#x22;" u2="r" k="61" />
+<hkern u1="&#x22;" u2="q" k="123" />
+<hkern u1="&#x22;" u2="p" k="61" />
+<hkern u1="&#x22;" u2="o" k="123" />
+<hkern u1="&#x22;" u2="n" k="61" />
+<hkern u1="&#x22;" u2="m" k="61" />
+<hkern u1="&#x22;" u2="g" k="61" />
+<hkern u1="&#x22;" u2="e" k="123" />
+<hkern u1="&#x22;" u2="d" k="123" />
+<hkern u1="&#x22;" u2="c" k="123" />
+<hkern u1="&#x22;" u2="a" k="82" />
+<hkern u1="&#x22;" u2="Y" k="-20" />
+<hkern u1="&#x22;" u2="W" k="-41" />
+<hkern u1="&#x22;" u2="V" k="-41" />
+<hkern u1="&#x22;" u2="T" k="-41" />
+<hkern u1="&#x22;" u2="A" k="143" />
+<hkern u1="&#x27;" u2="&#x178;" k="-20" />
+<hkern u1="&#x27;" u2="&#x153;" k="123" />
+<hkern u1="&#x27;" u2="&#xfc;" k="61" />
+<hkern u1="&#x27;" u2="&#xfb;" k="61" />
+<hkern u1="&#x27;" u2="&#xfa;" k="61" />
+<hkern u1="&#x27;" u2="&#xf9;" k="61" />
+<hkern u1="&#x27;" u2="&#xf8;" k="123" />
+<hkern u1="&#x27;" u2="&#xf6;" k="123" />
+<hkern u1="&#x27;" u2="&#xf5;" k="123" />
+<hkern u1="&#x27;" u2="&#xf4;" k="123" />
+<hkern u1="&#x27;" u2="&#xf3;" k="123" />
+<hkern u1="&#x27;" u2="&#xf2;" k="123" />
+<hkern u1="&#x27;" u2="&#xeb;" k="123" />
+<hkern u1="&#x27;" u2="&#xea;" k="123" />
+<hkern u1="&#x27;" u2="&#xe9;" k="123" />
+<hkern u1="&#x27;" u2="&#xe8;" k="123" />
+<hkern u1="&#x27;" u2="&#xe7;" k="123" />
+<hkern u1="&#x27;" u2="&#xe6;" k="82" />
+<hkern u1="&#x27;" u2="&#xe5;" k="82" />
+<hkern u1="&#x27;" u2="&#xe4;" k="82" />
+<hkern u1="&#x27;" u2="&#xe3;" k="82" />
+<hkern u1="&#x27;" u2="&#xe2;" k="82" />
+<hkern u1="&#x27;" u2="&#xe1;" k="82" />
+<hkern u1="&#x27;" u2="&#xe0;" k="123" />
+<hkern u1="&#x27;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x27;" u2="&#xc5;" k="143" />
+<hkern u1="&#x27;" u2="&#xc4;" k="143" />
+<hkern u1="&#x27;" u2="&#xc3;" k="143" />
+<hkern u1="&#x27;" u2="&#xc2;" k="143" />
+<hkern u1="&#x27;" u2="&#xc1;" k="143" />
+<hkern u1="&#x27;" u2="&#xc0;" k="143" />
+<hkern u1="&#x27;" u2="u" k="61" />
+<hkern u1="&#x27;" u2="s" k="61" />
+<hkern u1="&#x27;" u2="r" k="61" />
+<hkern u1="&#x27;" u2="q" k="123" />
+<hkern u1="&#x27;" u2="p" k="61" />
+<hkern u1="&#x27;" u2="o" k="123" />
+<hkern u1="&#x27;" u2="n" k="61" />
+<hkern u1="&#x27;" u2="m" k="61" />
+<hkern u1="&#x27;" u2="g" k="61" />
+<hkern u1="&#x27;" u2="e" k="123" />
+<hkern u1="&#x27;" u2="d" k="123" />
+<hkern u1="&#x27;" u2="c" k="123" />
+<hkern u1="&#x27;" u2="a" k="82" />
+<hkern u1="&#x27;" u2="Y" k="-20" />
+<hkern u1="&#x27;" u2="W" k="-41" />
+<hkern u1="&#x27;" u2="V" k="-41" />
+<hkern u1="&#x27;" u2="T" k="-41" />
+<hkern u1="&#x27;" u2="A" k="143" />
+<hkern u1="&#x28;" u2="J" k="-184" />
+<hkern u1="&#x2c;" u2="&#x178;" k="123" />
+<hkern u1="&#x2c;" u2="&#x152;" k="102" />
+<hkern u1="&#x2c;" u2="&#xdd;" k="123" />
+<hkern u1="&#x2c;" u2="&#xdc;" k="41" />
+<hkern u1="&#x2c;" u2="&#xdb;" k="41" />
+<hkern u1="&#x2c;" u2="&#xda;" k="41" />
+<hkern u1="&#x2c;" u2="&#xd9;" k="41" />
+<hkern u1="&#x2c;" u2="&#xd8;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd6;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd5;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd4;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd3;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd2;" k="102" />
+<hkern u1="&#x2c;" u2="&#xc7;" k="102" />
+<hkern u1="&#x2c;" u2="Y" k="123" />
+<hkern u1="&#x2c;" u2="W" k="123" />
+<hkern u1="&#x2c;" u2="V" k="123" />
+<hkern u1="&#x2c;" u2="U" k="41" />
+<hkern u1="&#x2c;" u2="T" k="143" />
+<hkern u1="&#x2c;" u2="Q" k="102" />
+<hkern u1="&#x2c;" u2="O" k="102" />
+<hkern u1="&#x2c;" u2="G" k="102" />
+<hkern u1="&#x2c;" u2="C" k="102" />
+<hkern u1="&#x2d;" u2="T" k="82" />
+<hkern u1="&#x2e;" u2="&#x178;" k="123" />
+<hkern u1="&#x2e;" u2="&#x152;" k="102" />
+<hkern u1="&#x2e;" u2="&#xdd;" k="123" />
+<hkern u1="&#x2e;" u2="&#xdc;" k="41" />
+<hkern u1="&#x2e;" u2="&#xdb;" k="41" />
+<hkern u1="&#x2e;" u2="&#xda;" k="41" />
+<hkern u1="&#x2e;" u2="&#xd9;" k="41" />
+<hkern u1="&#x2e;" u2="&#xd8;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd6;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd5;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd4;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd3;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd2;" k="102" />
+<hkern u1="&#x2e;" u2="&#xc7;" k="102" />
+<hkern u1="&#x2e;" u2="Y" k="123" />
+<hkern u1="&#x2e;" u2="W" k="123" />
+<hkern u1="&#x2e;" u2="V" k="123" />
+<hkern u1="&#x2e;" u2="U" k="41" />
+<hkern u1="&#x2e;" u2="T" k="143" />
+<hkern u1="&#x2e;" u2="Q" k="102" />
+<hkern u1="&#x2e;" u2="O" k="102" />
+<hkern u1="&#x2e;" u2="G" k="102" />
+<hkern u1="&#x2e;" u2="C" k="102" />
+<hkern u1="A" u2="&#x201d;" k="143" />
+<hkern u1="A" u2="&#x2019;" k="143" />
+<hkern u1="A" u2="&#x178;" k="123" />
+<hkern u1="A" u2="&#x152;" k="41" />
+<hkern u1="A" u2="&#xdd;" k="123" />
+<hkern u1="A" u2="&#xd8;" k="41" />
+<hkern u1="A" u2="&#xd6;" k="41" />
+<hkern u1="A" u2="&#xd5;" k="41" />
+<hkern u1="A" u2="&#xd4;" k="41" />
+<hkern u1="A" u2="&#xd3;" k="41" />
+<hkern u1="A" u2="&#xd2;" k="41" />
+<hkern u1="A" u2="&#xc7;" k="41" />
+<hkern u1="A" u2="Y" k="123" />
+<hkern u1="A" u2="W" k="82" />
+<hkern u1="A" u2="V" k="82" />
+<hkern u1="A" u2="T" k="143" />
+<hkern u1="A" u2="Q" k="41" />
+<hkern u1="A" u2="O" k="41" />
+<hkern u1="A" u2="J" k="-266" />
+<hkern u1="A" u2="G" k="41" />
+<hkern u1="A" u2="C" k="41" />
+<hkern u1="A" u2="&#x27;" k="143" />
+<hkern u1="A" u2="&#x22;" k="143" />
+<hkern u1="B" u2="&#x201e;" k="82" />
+<hkern u1="B" u2="&#x201a;" k="82" />
+<hkern u1="B" u2="&#x178;" k="20" />
+<hkern u1="B" u2="&#xdd;" k="20" />
+<hkern u1="B" u2="&#xc5;" k="41" />
+<hkern u1="B" u2="&#xc4;" k="41" />
+<hkern u1="B" u2="&#xc3;" k="41" />
+<hkern u1="B" u2="&#xc2;" k="41" />
+<hkern u1="B" u2="&#xc1;" k="41" />
+<hkern u1="B" u2="&#xc0;" k="41" />
+<hkern u1="B" u2="Z" k="20" />
+<hkern u1="B" u2="Y" k="20" />
+<hkern u1="B" u2="X" k="41" />
+<hkern u1="B" u2="W" k="20" />
+<hkern u1="B" u2="V" k="20" />
+<hkern u1="B" u2="T" k="61" />
+<hkern u1="B" u2="A" k="41" />
+<hkern u1="B" u2="&#x2e;" k="82" />
+<hkern u1="B" u2="&#x2c;" k="82" />
+<hkern u1="C" u2="&#x152;" k="41" />
+<hkern u1="C" u2="&#xd8;" k="41" />
+<hkern u1="C" u2="&#xd6;" k="41" />
+<hkern u1="C" u2="&#xd5;" k="41" />
+<hkern u1="C" u2="&#xd4;" k="41" />
+<hkern u1="C" u2="&#xd3;" k="41" />
+<hkern u1="C" u2="&#xd2;" k="41" />
+<hkern u1="C" u2="&#xc7;" k="41" />
+<hkern u1="C" u2="Q" k="41" />
+<hkern u1="C" u2="O" k="41" />
+<hkern u1="C" u2="G" k="41" />
+<hkern u1="C" u2="C" k="41" />
+<hkern u1="D" u2="&#x201e;" k="82" />
+<hkern u1="D" u2="&#x201a;" k="82" />
+<hkern u1="D" u2="&#x178;" k="20" />
+<hkern u1="D" u2="&#xdd;" k="20" />
+<hkern u1="D" u2="&#xc5;" k="41" />
+<hkern u1="D" u2="&#xc4;" k="41" />
+<hkern u1="D" u2="&#xc3;" k="41" />
+<hkern u1="D" u2="&#xc2;" k="41" />
+<hkern u1="D" u2="&#xc1;" k="41" />
+<hkern u1="D" u2="&#xc0;" k="41" />
+<hkern u1="D" u2="Z" k="20" />
+<hkern u1="D" u2="Y" k="20" />
+<hkern u1="D" u2="X" k="41" />
+<hkern u1="D" u2="W" k="20" />
+<hkern u1="D" u2="V" k="20" />
+<hkern u1="D" u2="T" k="61" />
+<hkern u1="D" u2="A" k="41" />
+<hkern u1="D" u2="&#x2e;" k="82" />
+<hkern u1="D" u2="&#x2c;" k="82" />
+<hkern u1="E" u2="J" k="-123" />
+<hkern u1="F" u2="&#x201e;" k="123" />
+<hkern u1="F" u2="&#x201a;" k="123" />
+<hkern u1="F" u2="&#xc5;" k="41" />
+<hkern u1="F" u2="&#xc4;" k="41" />
+<hkern u1="F" u2="&#xc3;" k="41" />
+<hkern u1="F" u2="&#xc2;" k="41" />
+<hkern u1="F" u2="&#xc1;" k="41" />
+<hkern u1="F" u2="&#xc0;" k="41" />
+<hkern u1="F" u2="A" k="41" />
+<hkern u1="F" u2="&#x3f;" k="-41" />
+<hkern u1="F" u2="&#x2e;" k="123" />
+<hkern u1="F" u2="&#x2c;" k="123" />
+<hkern u1="K" u2="&#x152;" k="41" />
+<hkern u1="K" u2="&#xd8;" k="41" />
+<hkern u1="K" u2="&#xd6;" k="41" />
+<hkern u1="K" u2="&#xd5;" k="41" />
+<hkern u1="K" u2="&#xd4;" k="41" />
+<hkern u1="K" u2="&#xd3;" k="41" />
+<hkern u1="K" u2="&#xd2;" k="41" />
+<hkern u1="K" u2="&#xc7;" k="41" />
+<hkern u1="K" u2="Q" k="41" />
+<hkern u1="K" u2="O" k="41" />
+<hkern u1="K" u2="G" k="41" />
+<hkern u1="K" u2="C" k="41" />
+<hkern u1="L" u2="&#x201d;" k="164" />
+<hkern u1="L" u2="&#x2019;" k="164" />
+<hkern u1="L" u2="&#x178;" k="61" />
+<hkern u1="L" u2="&#x152;" k="41" />
+<hkern u1="L" u2="&#xdd;" k="61" />
+<hkern u1="L" u2="&#xdc;" k="20" />
+<hkern u1="L" u2="&#xdb;" k="20" />
+<hkern u1="L" u2="&#xda;" k="20" />
+<hkern u1="L" u2="&#xd9;" k="20" />
+<hkern u1="L" u2="&#xd8;" k="41" />
+<hkern u1="L" u2="&#xd6;" k="41" />
+<hkern u1="L" u2="&#xd5;" k="41" />
+<hkern u1="L" u2="&#xd4;" k="41" />
+<hkern u1="L" u2="&#xd3;" k="41" />
+<hkern u1="L" u2="&#xd2;" k="41" />
+<hkern u1="L" u2="&#xc7;" k="41" />
+<hkern u1="L" u2="Y" k="61" />
+<hkern u1="L" u2="W" k="41" />
+<hkern u1="L" u2="V" k="41" />
+<hkern u1="L" u2="U" k="20" />
+<hkern u1="L" u2="T" k="41" />
+<hkern u1="L" u2="Q" k="41" />
+<hkern u1="L" u2="O" k="41" />
+<hkern u1="L" u2="G" k="41" />
+<hkern u1="L" u2="C" k="41" />
+<hkern u1="L" u2="&#x27;" k="164" />
+<hkern u1="L" u2="&#x22;" k="164" />
+<hkern u1="O" u2="&#x201e;" k="82" />
+<hkern u1="O" u2="&#x201a;" k="82" />
+<hkern u1="O" u2="&#x178;" k="20" />
+<hkern u1="O" u2="&#xdd;" k="20" />
+<hkern u1="O" u2="&#xc5;" k="41" />
+<hkern u1="O" u2="&#xc4;" k="41" />
+<hkern u1="O" u2="&#xc3;" k="41" />
+<hkern u1="O" u2="&#xc2;" k="41" />
+<hkern u1="O" u2="&#xc1;" k="41" />
+<hkern u1="O" u2="&#xc0;" k="41" />
+<hkern u1="O" u2="Z" k="20" />
+<hkern u1="O" u2="Y" k="20" />
+<hkern u1="O" u2="X" k="41" />
+<hkern u1="O" u2="W" k="20" />
+<hkern u1="O" u2="V" k="20" />
+<hkern u1="O" u2="T" k="61" />
+<hkern u1="O" u2="A" k="41" />
+<hkern u1="O" u2="&#x2e;" k="82" />
+<hkern u1="O" u2="&#x2c;" k="82" />
+<hkern u1="P" u2="&#x201e;" k="266" />
+<hkern u1="P" u2="&#x201a;" k="266" />
+<hkern u1="P" u2="&#xc5;" k="102" />
+<hkern u1="P" u2="&#xc4;" k="102" />
+<hkern u1="P" u2="&#xc3;" k="102" />
+<hkern u1="P" u2="&#xc2;" k="102" />
+<hkern u1="P" u2="&#xc1;" k="102" />
+<hkern u1="P" u2="&#xc0;" k="102" />
+<hkern u1="P" u2="Z" k="20" />
+<hkern u1="P" u2="X" k="41" />
+<hkern u1="P" u2="A" k="102" />
+<hkern u1="P" u2="&#x2e;" k="266" />
+<hkern u1="P" u2="&#x2c;" k="266" />
+<hkern u1="Q" u2="&#x201e;" k="82" />
+<hkern u1="Q" u2="&#x201a;" k="82" />
+<hkern u1="Q" u2="&#x178;" k="20" />
+<hkern u1="Q" u2="&#xdd;" k="20" />
+<hkern u1="Q" u2="&#xc5;" k="41" />
+<hkern u1="Q" u2="&#xc4;" k="41" />
+<hkern u1="Q" u2="&#xc3;" k="41" />
+<hkern u1="Q" u2="&#xc2;" k="41" />
+<hkern u1="Q" u2="&#xc1;" k="41" />
+<hkern u1="Q" u2="&#xc0;" k="41" />
+<hkern u1="Q" u2="Z" k="20" />
+<hkern u1="Q" u2="Y" k="20" />
+<hkern u1="Q" u2="X" k="41" />
+<hkern u1="Q" u2="W" k="20" />
+<hkern u1="Q" u2="V" k="20" />
+<hkern u1="Q" u2="T" k="61" />
+<hkern u1="Q" u2="A" k="41" />
+<hkern u1="Q" u2="&#x2e;" k="82" />
+<hkern u1="Q" u2="&#x2c;" k="82" />
+<hkern u1="T" u2="&#x201e;" k="123" />
+<hkern u1="T" u2="&#x201a;" k="123" />
+<hkern u1="T" u2="&#x2014;" k="82" />
+<hkern u1="T" u2="&#x2013;" k="82" />
+<hkern u1="T" u2="&#x153;" k="143" />
+<hkern u1="T" u2="&#x152;" k="41" />
+<hkern u1="T" u2="&#xfd;" k="41" />
+<hkern u1="T" u2="&#xfc;" k="102" />
+<hkern u1="T" u2="&#xfb;" k="102" />
+<hkern u1="T" u2="&#xfa;" k="102" />
+<hkern u1="T" u2="&#xf9;" k="102" />
+<hkern u1="T" u2="&#xf8;" k="143" />
+<hkern u1="T" u2="&#xf6;" k="143" />
+<hkern u1="T" u2="&#xf5;" k="143" />
+<hkern u1="T" u2="&#xf4;" k="143" />
+<hkern u1="T" u2="&#xf3;" k="143" />
+<hkern u1="T" u2="&#xf2;" k="143" />
+<hkern u1="T" u2="&#xeb;" k="143" />
+<hkern u1="T" u2="&#xea;" k="143" />
+<hkern u1="T" u2="&#xe9;" k="143" />
+<hkern u1="T" u2="&#xe8;" k="143" />
+<hkern u1="T" u2="&#xe7;" k="143" />
+<hkern u1="T" u2="&#xe6;" k="164" />
+<hkern u1="T" u2="&#xe5;" k="164" />
+<hkern u1="T" u2="&#xe4;" k="164" />
+<hkern u1="T" u2="&#xe3;" k="164" />
+<hkern u1="T" u2="&#xe2;" k="164" />
+<hkern u1="T" u2="&#xe1;" k="164" />
+<hkern u1="T" u2="&#xe0;" k="143" />
+<hkern u1="T" u2="&#xd8;" k="41" />
+<hkern u1="T" u2="&#xd6;" k="41" />
+<hkern u1="T" u2="&#xd5;" k="41" />
+<hkern u1="T" u2="&#xd4;" k="41" />
+<hkern u1="T" u2="&#xd3;" k="41" />
+<hkern u1="T" u2="&#xd2;" k="41" />
+<hkern u1="T" u2="&#xc7;" k="41" />
+<hkern u1="T" u2="&#xc5;" k="143" />
+<hkern u1="T" u2="&#xc4;" k="143" />
+<hkern u1="T" u2="&#xc3;" k="143" />
+<hkern u1="T" u2="&#xc2;" k="143" />
+<hkern u1="T" u2="&#xc1;" k="143" />
+<hkern u1="T" u2="&#xc0;" k="143" />
+<hkern u1="T" u2="z" k="82" />
+<hkern u1="T" u2="y" k="41" />
+<hkern u1="T" u2="x" k="41" />
+<hkern u1="T" u2="w" k="41" />
+<hkern u1="T" u2="v" k="41" />
+<hkern u1="T" u2="u" k="102" />
+<hkern u1="T" u2="s" k="123" />
+<hkern u1="T" u2="r" k="102" />
+<hkern u1="T" u2="q" k="143" />
+<hkern u1="T" u2="p" k="102" />
+<hkern u1="T" u2="o" k="143" />
+<hkern u1="T" u2="n" k="102" />
+<hkern u1="T" u2="m" k="102" />
+<hkern u1="T" u2="g" k="143" />
+<hkern u1="T" u2="e" k="143" />
+<hkern u1="T" u2="d" k="143" />
+<hkern u1="T" u2="c" k="143" />
+<hkern u1="T" u2="a" k="164" />
+<hkern u1="T" u2="T" k="-41" />
+<hkern u1="T" u2="Q" k="41" />
+<hkern u1="T" u2="O" k="41" />
+<hkern u1="T" u2="G" k="41" />
+<hkern u1="T" u2="C" k="41" />
+<hkern u1="T" u2="A" k="143" />
+<hkern u1="T" u2="&#x3f;" k="-41" />
+<hkern u1="T" u2="&#x2e;" k="123" />
+<hkern u1="T" u2="&#x2d;" k="82" />
+<hkern u1="T" u2="&#x2c;" k="123" />
+<hkern u1="U" u2="&#x201e;" k="41" />
+<hkern u1="U" u2="&#x201a;" k="41" />
+<hkern u1="U" u2="&#xc5;" k="20" />
+<hkern u1="U" u2="&#xc4;" k="20" />
+<hkern u1="U" u2="&#xc3;" k="20" />
+<hkern u1="U" u2="&#xc2;" k="20" />
+<hkern u1="U" u2="&#xc1;" k="20" />
+<hkern u1="U" u2="&#xc0;" k="20" />
+<hkern u1="U" u2="A" k="20" />
+<hkern u1="U" u2="&#x2e;" k="41" />
+<hkern u1="U" u2="&#x2c;" k="41" />
+<hkern u1="V" u2="&#x201e;" k="102" />
+<hkern u1="V" u2="&#x201a;" k="102" />
+<hkern u1="V" u2="&#x153;" k="41" />
+<hkern u1="V" u2="&#x152;" k="20" />
+<hkern u1="V" u2="&#xfc;" k="20" />
+<hkern u1="V" u2="&#xfb;" k="20" />
+<hkern u1="V" u2="&#xfa;" k="20" />
+<hkern u1="V" u2="&#xf9;" k="20" />
+<hkern u1="V" u2="&#xf8;" k="41" />
+<hkern u1="V" u2="&#xf6;" k="41" />
+<hkern u1="V" u2="&#xf5;" k="41" />
+<hkern u1="V" u2="&#xf4;" k="41" />
+<hkern u1="V" u2="&#xf3;" k="41" />
+<hkern u1="V" u2="&#xf2;" k="41" />
+<hkern u1="V" u2="&#xeb;" k="41" />
+<hkern u1="V" u2="&#xea;" k="41" />
+<hkern u1="V" u2="&#xe9;" k="41" />
+<hkern u1="V" u2="&#xe8;" k="41" />
+<hkern u1="V" u2="&#xe7;" k="41" />
+<hkern u1="V" u2="&#xe6;" k="41" />
+<hkern u1="V" u2="&#xe5;" k="41" />
+<hkern u1="V" u2="&#xe4;" k="41" />
+<hkern u1="V" u2="&#xe3;" k="41" />
+<hkern u1="V" u2="&#xe2;" k="41" />
+<hkern u1="V" u2="&#xe1;" k="41" />
+<hkern u1="V" u2="&#xe0;" k="41" />
+<hkern u1="V" u2="&#xd8;" k="20" />
+<hkern u1="V" u2="&#xd6;" k="20" />
+<hkern u1="V" u2="&#xd5;" k="20" />
+<hkern u1="V" u2="&#xd4;" k="20" />
+<hkern u1="V" u2="&#xd3;" k="20" />
+<hkern u1="V" u2="&#xd2;" k="20" />
+<hkern u1="V" u2="&#xc7;" k="20" />
+<hkern u1="V" u2="&#xc5;" k="82" />
+<hkern u1="V" u2="&#xc4;" k="82" />
+<hkern u1="V" u2="&#xc3;" k="82" />
+<hkern u1="V" u2="&#xc2;" k="82" />
+<hkern u1="V" u2="&#xc1;" k="82" />
+<hkern u1="V" u2="&#xc0;" k="82" />
+<hkern u1="V" u2="u" k="20" />
+<hkern u1="V" u2="s" k="20" />
+<hkern u1="V" u2="r" k="20" />
+<hkern u1="V" u2="q" k="41" />
+<hkern u1="V" u2="p" k="20" />
+<hkern u1="V" u2="o" k="41" />
+<hkern u1="V" u2="n" k="20" />
+<hkern u1="V" u2="m" k="20" />
+<hkern u1="V" u2="g" k="20" />
+<hkern u1="V" u2="e" k="41" />
+<hkern u1="V" u2="d" k="41" />
+<hkern u1="V" u2="c" k="41" />
+<hkern u1="V" u2="a" k="41" />
+<hkern u1="V" u2="Q" k="20" />
+<hkern u1="V" u2="O" k="20" />
+<hkern u1="V" u2="G" k="20" />
+<hkern u1="V" u2="C" k="20" />
+<hkern u1="V" u2="A" k="82" />
+<hkern u1="V" u2="&#x3f;" k="-41" />
+<hkern u1="V" u2="&#x2e;" k="102" />
+<hkern u1="V" u2="&#x2c;" k="102" />
+<hkern u1="W" u2="&#x201e;" k="102" />
+<hkern u1="W" u2="&#x201a;" k="102" />
+<hkern u1="W" u2="&#x153;" k="41" />
+<hkern u1="W" u2="&#x152;" k="20" />
+<hkern u1="W" u2="&#xfc;" k="20" />
+<hkern u1="W" u2="&#xfb;" k="20" />
+<hkern u1="W" u2="&#xfa;" k="20" />
+<hkern u1="W" u2="&#xf9;" k="20" />
+<hkern u1="W" u2="&#xf8;" k="41" />
+<hkern u1="W" u2="&#xf6;" k="41" />
+<hkern u1="W" u2="&#xf5;" k="41" />
+<hkern u1="W" u2="&#xf4;" k="41" />
+<hkern u1="W" u2="&#xf3;" k="41" />
+<hkern u1="W" u2="&#xf2;" k="41" />
+<hkern u1="W" u2="&#xeb;" k="41" />
+<hkern u1="W" u2="&#xea;" k="41" />
+<hkern u1="W" u2="&#xe9;" k="41" />
+<hkern u1="W" u2="&#xe8;" k="41" />
+<hkern u1="W" u2="&#xe7;" k="41" />
+<hkern u1="W" u2="&#xe6;" k="41" />
+<hkern u1="W" u2="&#xe5;" k="41" />
+<hkern u1="W" u2="&#xe4;" k="41" />
+<hkern u1="W" u2="&#xe3;" k="41" />
+<hkern u1="W" u2="&#xe2;" k="41" />
+<hkern u1="W" u2="&#xe1;" k="41" />
+<hkern u1="W" u2="&#xe0;" k="41" />
+<hkern u1="W" u2="&#xd8;" k="20" />
+<hkern u1="W" u2="&#xd6;" k="20" />
+<hkern u1="W" u2="&#xd5;" k="20" />
+<hkern u1="W" u2="&#xd4;" k="20" />
+<hkern u1="W" u2="&#xd3;" k="20" />
+<hkern u1="W" u2="&#xd2;" k="20" />
+<hkern u1="W" u2="&#xc7;" k="20" />
+<hkern u1="W" u2="&#xc5;" k="82" />
+<hkern u1="W" u2="&#xc4;" k="82" />
+<hkern u1="W" u2="&#xc3;" k="82" />
+<hkern u1="W" u2="&#xc2;" k="82" />
+<hkern u1="W" u2="&#xc1;" k="82" />
+<hkern u1="W" u2="&#xc0;" k="82" />
+<hkern u1="W" u2="u" k="20" />
+<hkern u1="W" u2="s" k="20" />
+<hkern u1="W" u2="r" k="20" />
+<hkern u1="W" u2="q" k="41" />
+<hkern u1="W" u2="p" k="20" />
+<hkern u1="W" u2="o" k="41" />
+<hkern u1="W" u2="n" k="20" />
+<hkern u1="W" u2="m" k="20" />
+<hkern u1="W" u2="g" k="20" />
+<hkern u1="W" u2="e" k="41" />
+<hkern u1="W" u2="d" k="41" />
+<hkern u1="W" u2="c" k="41" />
+<hkern u1="W" u2="a" k="41" />
+<hkern u1="W" u2="Q" k="20" />
+<hkern u1="W" u2="O" k="20" />
+<hkern u1="W" u2="G" k="20" />
+<hkern u1="W" u2="C" k="20" />
+<hkern u1="W" u2="A" k="82" />
+<hkern u1="W" u2="&#x3f;" k="-41" />
+<hkern u1="W" u2="&#x2e;" k="102" />
+<hkern u1="W" u2="&#x2c;" k="102" />
+<hkern u1="X" u2="&#x152;" k="41" />
+<hkern u1="X" u2="&#xd8;" k="41" />
+<hkern u1="X" u2="&#xd6;" k="41" />
+<hkern u1="X" u2="&#xd5;" k="41" />
+<hkern u1="X" u2="&#xd4;" k="41" />
+<hkern u1="X" u2="&#xd3;" k="41" />
+<hkern u1="X" u2="&#xd2;" k="41" />
+<hkern u1="X" u2="&#xc7;" k="41" />
+<hkern u1="X" u2="Q" k="41" />
+<hkern u1="X" u2="O" k="41" />
+<hkern u1="X" u2="G" k="41" />
+<hkern u1="X" u2="C" k="41" />
+<hkern u1="Y" u2="&#x201e;" k="123" />
+<hkern u1="Y" u2="&#x201a;" k="123" />
+<hkern u1="Y" u2="&#x153;" k="102" />
+<hkern u1="Y" u2="&#x152;" k="41" />
+<hkern u1="Y" u2="&#xfc;" k="61" />
+<hkern u1="Y" u2="&#xfb;" k="61" />
+<hkern u1="Y" u2="&#xfa;" k="61" />
+<hkern u1="Y" u2="&#xf9;" k="61" />
+<hkern u1="Y" u2="&#xf8;" k="102" />
+<hkern u1="Y" u2="&#xf6;" k="102" />
+<hkern u1="Y" u2="&#xf5;" k="102" />
+<hkern u1="Y" u2="&#xf4;" k="102" />
+<hkern u1="Y" u2="&#xf3;" k="102" />
+<hkern u1="Y" u2="&#xf2;" k="102" />
+<hkern u1="Y" u2="&#xeb;" k="102" />
+<hkern u1="Y" u2="&#xea;" k="102" />
+<hkern u1="Y" u2="&#xe9;" k="102" />
+<hkern u1="Y" u2="&#xe8;" k="102" />
+<hkern u1="Y" u2="&#xe7;" k="102" />
+<hkern u1="Y" u2="&#xe6;" k="102" />
+<hkern u1="Y" u2="&#xe5;" k="102" />
+<hkern u1="Y" u2="&#xe4;" k="102" />
+<hkern u1="Y" u2="&#xe3;" k="102" />
+<hkern u1="Y" u2="&#xe2;" k="102" />
+<hkern u1="Y" u2="&#xe1;" k="102" />
+<hkern u1="Y" u2="&#xe0;" k="102" />
+<hkern u1="Y" u2="&#xd8;" k="41" />
+<hkern u1="Y" u2="&#xd6;" k="41" />
+<hkern u1="Y" u2="&#xd5;" k="41" />
+<hkern u1="Y" u2="&#xd4;" k="41" />
+<hkern u1="Y" u2="&#xd3;" k="41" />
+<hkern u1="Y" u2="&#xd2;" k="41" />
+<hkern u1="Y" u2="&#xc7;" k="41" />
+<hkern u1="Y" u2="&#xc5;" k="123" />
+<hkern u1="Y" u2="&#xc4;" k="123" />
+<hkern u1="Y" u2="&#xc3;" k="123" />
+<hkern u1="Y" u2="&#xc2;" k="123" />
+<hkern u1="Y" u2="&#xc1;" k="123" />
+<hkern u1="Y" u2="&#xc0;" k="123" />
+<hkern u1="Y" u2="z" k="41" />
+<hkern u1="Y" u2="u" k="61" />
+<hkern u1="Y" u2="s" k="82" />
+<hkern u1="Y" u2="r" k="61" />
+<hkern u1="Y" u2="q" k="102" />
+<hkern u1="Y" u2="p" k="61" />
+<hkern u1="Y" u2="o" k="102" />
+<hkern u1="Y" u2="n" k="61" />
+<hkern u1="Y" u2="m" k="61" />
+<hkern u1="Y" u2="g" k="41" />
+<hkern u1="Y" u2="e" k="102" />
+<hkern u1="Y" u2="d" k="102" />
+<hkern u1="Y" u2="c" k="102" />
+<hkern u1="Y" u2="a" k="102" />
+<hkern u1="Y" u2="Q" k="41" />
+<hkern u1="Y" u2="O" k="41" />
+<hkern u1="Y" u2="G" k="41" />
+<hkern u1="Y" u2="C" k="41" />
+<hkern u1="Y" u2="A" k="123" />
+<hkern u1="Y" u2="&#x3f;" k="-41" />
+<hkern u1="Y" u2="&#x2e;" k="123" />
+<hkern u1="Y" u2="&#x2c;" k="123" />
+<hkern u1="Z" u2="&#x152;" k="20" />
+<hkern u1="Z" u2="&#xd8;" k="20" />
+<hkern u1="Z" u2="&#xd6;" k="20" />
+<hkern u1="Z" u2="&#xd5;" k="20" />
+<hkern u1="Z" u2="&#xd4;" k="20" />
+<hkern u1="Z" u2="&#xd3;" k="20" />
+<hkern u1="Z" u2="&#xd2;" k="20" />
+<hkern u1="Z" u2="&#xc7;" k="20" />
+<hkern u1="Z" u2="Q" k="20" />
+<hkern u1="Z" u2="O" k="20" />
+<hkern u1="Z" u2="G" k="20" />
+<hkern u1="Z" u2="C" k="20" />
+<hkern u1="[" u2="J" k="-184" />
+<hkern u1="a" u2="&#x201d;" k="20" />
+<hkern u1="a" u2="&#x2019;" k="20" />
+<hkern u1="a" u2="&#x27;" k="20" />
+<hkern u1="a" u2="&#x22;" k="20" />
+<hkern u1="b" u2="&#x201d;" k="20" />
+<hkern u1="b" u2="&#x2019;" k="20" />
+<hkern u1="b" u2="&#xfd;" k="41" />
+<hkern u1="b" u2="z" k="20" />
+<hkern u1="b" u2="y" k="41" />
+<hkern u1="b" u2="x" k="41" />
+<hkern u1="b" u2="w" k="41" />
+<hkern u1="b" u2="v" k="41" />
+<hkern u1="b" u2="&#x27;" k="20" />
+<hkern u1="b" u2="&#x22;" k="20" />
+<hkern u1="c" u2="&#x201d;" k="-41" />
+<hkern u1="c" u2="&#x2019;" k="-41" />
+<hkern u1="c" u2="&#x27;" k="-41" />
+<hkern u1="c" u2="&#x22;" k="-41" />
+<hkern u1="e" u2="&#x201d;" k="20" />
+<hkern u1="e" u2="&#x2019;" k="20" />
+<hkern u1="e" u2="&#xfd;" k="41" />
+<hkern u1="e" u2="z" k="20" />
+<hkern u1="e" u2="y" k="41" />
+<hkern u1="e" u2="x" k="41" />
+<hkern u1="e" u2="w" k="41" />
+<hkern u1="e" u2="v" k="41" />
+<hkern u1="e" u2="&#x27;" k="20" />
+<hkern u1="e" u2="&#x22;" k="20" />
+<hkern u1="f" u2="&#x201d;" k="-123" />
+<hkern u1="f" u2="&#x2019;" k="-123" />
+<hkern u1="f" u2="&#x27;" k="-123" />
+<hkern u1="f" u2="&#x22;" k="-123" />
+<hkern u1="h" u2="&#x201d;" k="20" />
+<hkern u1="h" u2="&#x2019;" k="20" />
+<hkern u1="h" u2="&#x27;" k="20" />
+<hkern u1="h" u2="&#x22;" k="20" />
+<hkern u1="k" u2="&#x153;" k="41" />
+<hkern u1="k" u2="&#xf8;" k="41" />
+<hkern u1="k" u2="&#xf6;" k="41" />
+<hkern u1="k" u2="&#xf5;" k="41" />
+<hkern u1="k" u2="&#xf4;" k="41" />
+<hkern u1="k" u2="&#xf3;" k="41" />
+<hkern u1="k" u2="&#xf2;" k="41" />
+<hkern u1="k" u2="&#xeb;" k="41" />
+<hkern u1="k" u2="&#xea;" k="41" />
+<hkern u1="k" u2="&#xe9;" k="41" />
+<hkern u1="k" u2="&#xe8;" k="41" />
+<hkern u1="k" u2="&#xe7;" k="41" />
+<hkern u1="k" u2="&#xe0;" k="41" />
+<hkern u1="k" u2="q" k="41" />
+<hkern u1="k" u2="o" k="41" />
+<hkern u1="k" u2="e" k="41" />
+<hkern u1="k" u2="d" k="41" />
+<hkern u1="k" u2="c" k="41" />
+<hkern u1="m" u2="&#x201d;" k="20" />
+<hkern u1="m" u2="&#x2019;" k="20" />
+<hkern u1="m" u2="&#x27;" k="20" />
+<hkern u1="m" u2="&#x22;" k="20" />
+<hkern u1="n" u2="&#x201d;" k="20" />
+<hkern u1="n" u2="&#x2019;" k="20" />
+<hkern u1="n" u2="&#x27;" k="20" />
+<hkern u1="n" u2="&#x22;" k="20" />
+<hkern u1="o" u2="&#x201d;" k="20" />
+<hkern u1="o" u2="&#x2019;" k="20" />
+<hkern u1="o" u2="&#xfd;" k="41" />
+<hkern u1="o" u2="z" k="20" />
+<hkern u1="o" u2="y" k="41" />
+<hkern u1="o" u2="x" k="41" />
+<hkern u1="o" u2="w" k="41" />
+<hkern u1="o" u2="v" k="41" />
+<hkern u1="o" u2="&#x27;" k="20" />
+<hkern u1="o" u2="&#x22;" k="20" />
+<hkern u1="p" u2="&#x201d;" k="20" />
+<hkern u1="p" u2="&#x2019;" k="20" />
+<hkern u1="p" u2="&#xfd;" k="41" />
+<hkern u1="p" u2="z" k="20" />
+<hkern u1="p" u2="y" k="41" />
+<hkern u1="p" u2="x" k="41" />
+<hkern u1="p" u2="w" k="41" />
+<hkern u1="p" u2="v" k="41" />
+<hkern u1="p" u2="&#x27;" k="20" />
+<hkern u1="p" u2="&#x22;" k="20" />
+<hkern u1="r" u2="&#x201d;" k="-82" />
+<hkern u1="r" u2="&#x2019;" k="-82" />
+<hkern u1="r" u2="&#x153;" k="41" />
+<hkern u1="r" u2="&#xf8;" k="41" />
+<hkern u1="r" u2="&#xf6;" k="41" />
+<hkern u1="r" u2="&#xf5;" k="41" />
+<hkern u1="r" u2="&#xf4;" k="41" />
+<hkern u1="r" u2="&#xf3;" k="41" />
+<hkern u1="r" u2="&#xf2;" k="41" />
+<hkern u1="r" u2="&#xeb;" k="41" />
+<hkern u1="r" u2="&#xea;" k="41" />
+<hkern u1="r" u2="&#xe9;" k="41" />
+<hkern u1="r" u2="&#xe8;" k="41" />
+<hkern u1="r" u2="&#xe7;" k="41" />
+<hkern u1="r" u2="&#xe6;" k="41" />
+<hkern u1="r" u2="&#xe5;" k="41" />
+<hkern u1="r" u2="&#xe4;" k="41" />
+<hkern u1="r" u2="&#xe3;" k="41" />
+<hkern u1="r" u2="&#xe2;" k="41" />
+<hkern u1="r" u2="&#xe1;" k="41" />
+<hkern u1="r" u2="&#xe0;" k="41" />
+<hkern u1="r" u2="q" k="41" />
+<hkern u1="r" u2="o" k="41" />
+<hkern u1="r" u2="g" k="20" />
+<hkern u1="r" u2="e" k="41" />
+<hkern u1="r" u2="d" k="41" />
+<hkern u1="r" u2="c" k="41" />
+<hkern u1="r" u2="a" k="41" />
+<hkern u1="r" u2="&#x27;" k="-82" />
+<hkern u1="r" u2="&#x22;" k="-82" />
+<hkern u1="t" u2="&#x201d;" k="-41" />
+<hkern u1="t" u2="&#x2019;" k="-41" />
+<hkern u1="t" u2="&#x27;" k="-41" />
+<hkern u1="t" u2="&#x22;" k="-41" />
+<hkern u1="v" u2="&#x201e;" k="82" />
+<hkern u1="v" u2="&#x201d;" k="-82" />
+<hkern u1="v" u2="&#x201a;" k="82" />
+<hkern u1="v" u2="&#x2019;" k="-82" />
+<hkern u1="v" u2="&#x3f;" k="-41" />
+<hkern u1="v" u2="&#x2e;" k="82" />
+<hkern u1="v" u2="&#x2c;" k="82" />
+<hkern u1="v" u2="&#x27;" k="-82" />
+<hkern u1="v" u2="&#x22;" k="-82" />
+<hkern u1="w" u2="&#x201e;" k="82" />
+<hkern u1="w" u2="&#x201d;" k="-82" />
+<hkern u1="w" u2="&#x201a;" k="82" />
+<hkern u1="w" u2="&#x2019;" k="-82" />
+<hkern u1="w" u2="&#x3f;" k="-41" />
+<hkern u1="w" u2="&#x2e;" k="82" />
+<hkern u1="w" u2="&#x2c;" k="82" />
+<hkern u1="w" u2="&#x27;" k="-82" />
+<hkern u1="w" u2="&#x22;" k="-82" />
+<hkern u1="x" u2="&#x153;" k="41" />
+<hkern u1="x" u2="&#xf8;" k="41" />
+<hkern u1="x" u2="&#xf6;" k="41" />
+<hkern u1="x" u2="&#xf5;" k="41" />
+<hkern u1="x" u2="&#xf4;" k="41" />
+<hkern u1="x" u2="&#xf3;" k="41" />
+<hkern u1="x" u2="&#xf2;" k="41" />
+<hkern u1="x" u2="&#xeb;" k="41" />
+<hkern u1="x" u2="&#xea;" k="41" />
+<hkern u1="x" u2="&#xe9;" k="41" />
+<hkern u1="x" u2="&#xe8;" k="41" />
+<hkern u1="x" u2="&#xe7;" k="41" />
+<hkern u1="x" u2="&#xe0;" k="41" />
+<hkern u1="x" u2="q" k="41" />
+<hkern u1="x" u2="o" k="41" />
+<hkern u1="x" u2="e" k="41" />
+<hkern u1="x" u2="d" k="41" />
+<hkern u1="x" u2="c" k="41" />
+<hkern u1="y" u2="&#x201e;" k="82" />
+<hkern u1="y" u2="&#x201d;" k="-82" />
+<hkern u1="y" u2="&#x201a;" k="82" />
+<hkern u1="y" u2="&#x2019;" k="-82" />
+<hkern u1="y" u2="&#x3f;" k="-41" />
+<hkern u1="y" u2="&#x2e;" k="82" />
+<hkern u1="y" u2="&#x2c;" k="82" />
+<hkern u1="y" u2="&#x27;" k="-82" />
+<hkern u1="y" u2="&#x22;" k="-82" />
+<hkern u1="&#x7b;" u2="J" k="-184" />
+<hkern u1="&#xc0;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc0;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc0;" u2="&#x178;" k="123" />
+<hkern u1="&#xc0;" u2="&#x152;" k="41" />
+<hkern u1="&#xc0;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc0;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc0;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc0;" u2="Y" k="123" />
+<hkern u1="&#xc0;" u2="W" k="82" />
+<hkern u1="&#xc0;" u2="V" k="82" />
+<hkern u1="&#xc0;" u2="T" k="143" />
+<hkern u1="&#xc0;" u2="Q" k="41" />
+<hkern u1="&#xc0;" u2="O" k="41" />
+<hkern u1="&#xc0;" u2="J" k="-266" />
+<hkern u1="&#xc0;" u2="G" k="41" />
+<hkern u1="&#xc0;" u2="C" k="41" />
+<hkern u1="&#xc0;" u2="&#x27;" k="143" />
+<hkern u1="&#xc0;" u2="&#x22;" k="143" />
+<hkern u1="&#xc1;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc1;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc1;" u2="&#x178;" k="123" />
+<hkern u1="&#xc1;" u2="&#x152;" k="41" />
+<hkern u1="&#xc1;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc1;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc1;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc1;" u2="Y" k="123" />
+<hkern u1="&#xc1;" u2="W" k="82" />
+<hkern u1="&#xc1;" u2="V" k="82" />
+<hkern u1="&#xc1;" u2="T" k="143" />
+<hkern u1="&#xc1;" u2="Q" k="41" />
+<hkern u1="&#xc1;" u2="O" k="41" />
+<hkern u1="&#xc1;" u2="J" k="-266" />
+<hkern u1="&#xc1;" u2="G" k="41" />
+<hkern u1="&#xc1;" u2="C" k="41" />
+<hkern u1="&#xc1;" u2="&#x27;" k="143" />
+<hkern u1="&#xc1;" u2="&#x22;" k="143" />
+<hkern u1="&#xc2;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc2;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc2;" u2="&#x178;" k="123" />
+<hkern u1="&#xc2;" u2="&#x152;" k="41" />
+<hkern u1="&#xc2;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc2;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc2;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc2;" u2="Y" k="123" />
+<hkern u1="&#xc2;" u2="W" k="82" />
+<hkern u1="&#xc2;" u2="V" k="82" />
+<hkern u1="&#xc2;" u2="T" k="143" />
+<hkern u1="&#xc2;" u2="Q" k="41" />
+<hkern u1="&#xc2;" u2="O" k="41" />
+<hkern u1="&#xc2;" u2="J" k="-266" />
+<hkern u1="&#xc2;" u2="G" k="41" />
+<hkern u1="&#xc2;" u2="C" k="41" />
+<hkern u1="&#xc2;" u2="&#x27;" k="143" />
+<hkern u1="&#xc2;" u2="&#x22;" k="143" />
+<hkern u1="&#xc3;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc3;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc3;" u2="&#x178;" k="123" />
+<hkern u1="&#xc3;" u2="&#x152;" k="41" />
+<hkern u1="&#xc3;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc3;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc3;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc3;" u2="Y" k="123" />
+<hkern u1="&#xc3;" u2="W" k="82" />
+<hkern u1="&#xc3;" u2="V" k="82" />
+<hkern u1="&#xc3;" u2="T" k="143" />
+<hkern u1="&#xc3;" u2="Q" k="41" />
+<hkern u1="&#xc3;" u2="O" k="41" />
+<hkern u1="&#xc3;" u2="J" k="-266" />
+<hkern u1="&#xc3;" u2="G" k="41" />
+<hkern u1="&#xc3;" u2="C" k="41" />
+<hkern u1="&#xc3;" u2="&#x27;" k="143" />
+<hkern u1="&#xc3;" u2="&#x22;" k="143" />
+<hkern u1="&#xc4;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc4;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc4;" u2="&#x178;" k="123" />
+<hkern u1="&#xc4;" u2="&#x152;" k="41" />
+<hkern u1="&#xc4;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc4;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc4;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc4;" u2="Y" k="123" />
+<hkern u1="&#xc4;" u2="W" k="82" />
+<hkern u1="&#xc4;" u2="V" k="82" />
+<hkern u1="&#xc4;" u2="T" k="143" />
+<hkern u1="&#xc4;" u2="Q" k="41" />
+<hkern u1="&#xc4;" u2="O" k="41" />
+<hkern u1="&#xc4;" u2="J" k="-266" />
+<hkern u1="&#xc4;" u2="G" k="41" />
+<hkern u1="&#xc4;" u2="C" k="41" />
+<hkern u1="&#xc4;" u2="&#x27;" k="143" />
+<hkern u1="&#xc4;" u2="&#x22;" k="143" />
+<hkern u1="&#xc5;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc5;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc5;" u2="&#x178;" k="123" />
+<hkern u1="&#xc5;" u2="&#x152;" k="41" />
+<hkern u1="&#xc5;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc5;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc5;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc5;" u2="Y" k="123" />
+<hkern u1="&#xc5;" u2="W" k="82" />
+<hkern u1="&#xc5;" u2="V" k="82" />
+<hkern u1="&#xc5;" u2="T" k="143" />
+<hkern u1="&#xc5;" u2="Q" k="41" />
+<hkern u1="&#xc5;" u2="O" k="41" />
+<hkern u1="&#xc5;" u2="J" k="-266" />
+<hkern u1="&#xc5;" u2="G" k="41" />
+<hkern u1="&#xc5;" u2="C" k="41" />
+<hkern u1="&#xc5;" u2="&#x27;" k="143" />
+<hkern u1="&#xc5;" u2="&#x22;" k="143" />
+<hkern u1="&#xc6;" u2="J" k="-123" />
+<hkern u1="&#xc7;" u2="&#x152;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc7;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc7;" u2="Q" k="41" />
+<hkern u1="&#xc7;" u2="O" k="41" />
+<hkern u1="&#xc7;" u2="G" k="41" />
+<hkern u1="&#xc7;" u2="C" k="41" />
+<hkern u1="&#xc8;" u2="J" k="-123" />
+<hkern u1="&#xc9;" u2="J" k="-123" />
+<hkern u1="&#xca;" u2="J" k="-123" />
+<hkern u1="&#xcb;" u2="J" k="-123" />
+<hkern u1="&#xd0;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd0;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd0;" u2="&#x178;" k="20" />
+<hkern u1="&#xd0;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd0;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd0;" u2="Z" k="20" />
+<hkern u1="&#xd0;" u2="Y" k="20" />
+<hkern u1="&#xd0;" u2="X" k="41" />
+<hkern u1="&#xd0;" u2="W" k="20" />
+<hkern u1="&#xd0;" u2="V" k="20" />
+<hkern u1="&#xd0;" u2="T" k="61" />
+<hkern u1="&#xd0;" u2="A" k="41" />
+<hkern u1="&#xd0;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd0;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd2;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd2;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd2;" u2="&#x178;" k="20" />
+<hkern u1="&#xd2;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd2;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd2;" u2="Z" k="20" />
+<hkern u1="&#xd2;" u2="Y" k="20" />
+<hkern u1="&#xd2;" u2="X" k="41" />
+<hkern u1="&#xd2;" u2="W" k="20" />
+<hkern u1="&#xd2;" u2="V" k="20" />
+<hkern u1="&#xd2;" u2="T" k="61" />
+<hkern u1="&#xd2;" u2="A" k="41" />
+<hkern u1="&#xd2;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd2;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd3;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd3;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd3;" u2="&#x178;" k="20" />
+<hkern u1="&#xd3;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd3;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd3;" u2="Z" k="20" />
+<hkern u1="&#xd3;" u2="Y" k="20" />
+<hkern u1="&#xd3;" u2="X" k="41" />
+<hkern u1="&#xd3;" u2="W" k="20" />
+<hkern u1="&#xd3;" u2="V" k="20" />
+<hkern u1="&#xd3;" u2="T" k="61" />
+<hkern u1="&#xd3;" u2="A" k="41" />
+<hkern u1="&#xd3;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd3;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd4;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd4;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd4;" u2="&#x178;" k="20" />
+<hkern u1="&#xd4;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd4;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd4;" u2="Z" k="20" />
+<hkern u1="&#xd4;" u2="Y" k="20" />
+<hkern u1="&#xd4;" u2="X" k="41" />
+<hkern u1="&#xd4;" u2="W" k="20" />
+<hkern u1="&#xd4;" u2="V" k="20" />
+<hkern u1="&#xd4;" u2="T" k="61" />
+<hkern u1="&#xd4;" u2="A" k="41" />
+<hkern u1="&#xd4;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd4;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd5;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd5;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd5;" u2="&#x178;" k="20" />
+<hkern u1="&#xd5;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd5;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd5;" u2="Z" k="20" />
+<hkern u1="&#xd5;" u2="Y" k="20" />
+<hkern u1="&#xd5;" u2="X" k="41" />
+<hkern u1="&#xd5;" u2="W" k="20" />
+<hkern u1="&#xd5;" u2="V" k="20" />
+<hkern u1="&#xd5;" u2="T" k="61" />
+<hkern u1="&#xd5;" u2="A" k="41" />
+<hkern u1="&#xd5;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd5;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd6;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd6;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd6;" u2="&#x178;" k="20" />
+<hkern u1="&#xd6;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd6;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd6;" u2="Z" k="20" />
+<hkern u1="&#xd6;" u2="Y" k="20" />
+<hkern u1="&#xd6;" u2="X" k="41" />
+<hkern u1="&#xd6;" u2="W" k="20" />
+<hkern u1="&#xd6;" u2="V" k="20" />
+<hkern u1="&#xd6;" u2="T" k="61" />
+<hkern u1="&#xd6;" u2="A" k="41" />
+<hkern u1="&#xd6;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd6;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd8;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd8;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd8;" u2="&#x178;" k="20" />
+<hkern u1="&#xd8;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd8;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd8;" u2="Z" k="20" />
+<hkern u1="&#xd8;" u2="Y" k="20" />
+<hkern u1="&#xd8;" u2="X" k="41" />
+<hkern u1="&#xd8;" u2="W" k="20" />
+<hkern u1="&#xd8;" u2="V" k="20" />
+<hkern u1="&#xd8;" u2="T" k="61" />
+<hkern u1="&#xd8;" u2="A" k="41" />
+<hkern u1="&#xd8;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd8;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd9;" u2="&#x201e;" k="41" />
+<hkern u1="&#xd9;" u2="&#x201a;" k="41" />
+<hkern u1="&#xd9;" u2="&#xc5;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc4;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc3;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc2;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc1;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc0;" k="20" />
+<hkern u1="&#xd9;" u2="A" k="20" />
+<hkern u1="&#xd9;" u2="&#x2e;" k="41" />
+<hkern u1="&#xd9;" u2="&#x2c;" k="41" />
+<hkern u1="&#xda;" u2="&#x201e;" k="41" />
+<hkern u1="&#xda;" u2="&#x201a;" k="41" />
+<hkern u1="&#xda;" u2="&#xc5;" k="20" />
+<hkern u1="&#xda;" u2="&#xc4;" k="20" />
+<hkern u1="&#xda;" u2="&#xc3;" k="20" />
+<hkern u1="&#xda;" u2="&#xc2;" k="20" />
+<hkern u1="&#xda;" u2="&#xc1;" k="20" />
+<hkern u1="&#xda;" u2="&#xc0;" k="20" />
+<hkern u1="&#xda;" u2="A" k="20" />
+<hkern u1="&#xda;" u2="&#x2e;" k="41" />
+<hkern u1="&#xda;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdb;" u2="&#x201e;" k="41" />
+<hkern u1="&#xdb;" u2="&#x201a;" k="41" />
+<hkern u1="&#xdb;" u2="&#xc5;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc4;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc3;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc2;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc1;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc0;" k="20" />
+<hkern u1="&#xdb;" u2="A" k="20" />
+<hkern u1="&#xdb;" u2="&#x2e;" k="41" />
+<hkern u1="&#xdb;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdc;" u2="&#x201e;" k="41" />
+<hkern u1="&#xdc;" u2="&#x201a;" k="41" />
+<hkern u1="&#xdc;" u2="&#xc5;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc4;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc3;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc2;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc1;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc0;" k="20" />
+<hkern u1="&#xdc;" u2="A" k="20" />
+<hkern u1="&#xdc;" u2="&#x2e;" k="41" />
+<hkern u1="&#xdc;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdd;" u2="&#x201e;" k="123" />
+<hkern u1="&#xdd;" u2="&#x201a;" k="123" />
+<hkern u1="&#xdd;" u2="&#x153;" k="102" />
+<hkern u1="&#xdd;" u2="&#x152;" k="41" />
+<hkern u1="&#xdd;" u2="&#xfc;" k="61" />
+<hkern u1="&#xdd;" u2="&#xfb;" k="61" />
+<hkern u1="&#xdd;" u2="&#xfa;" k="61" />
+<hkern u1="&#xdd;" u2="&#xf9;" k="61" />
+<hkern u1="&#xdd;" u2="&#xf8;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf6;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf5;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf4;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf3;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf2;" k="102" />
+<hkern u1="&#xdd;" u2="&#xeb;" k="102" />
+<hkern u1="&#xdd;" u2="&#xea;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe9;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe8;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe7;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe6;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe5;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe4;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe3;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe2;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe1;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe0;" k="102" />
+<hkern u1="&#xdd;" u2="&#xd8;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd6;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd5;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd4;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd3;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd2;" k="41" />
+<hkern u1="&#xdd;" u2="&#xc7;" k="41" />
+<hkern u1="&#xdd;" u2="&#xc5;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc4;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc3;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc2;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc1;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc0;" k="123" />
+<hkern u1="&#xdd;" u2="z" k="41" />
+<hkern u1="&#xdd;" u2="u" k="61" />
+<hkern u1="&#xdd;" u2="s" k="82" />
+<hkern u1="&#xdd;" u2="r" k="61" />
+<hkern u1="&#xdd;" u2="q" k="102" />
+<hkern u1="&#xdd;" u2="p" k="61" />
+<hkern u1="&#xdd;" u2="o" k="102" />
+<hkern u1="&#xdd;" u2="n" k="61" />
+<hkern u1="&#xdd;" u2="m" k="61" />
+<hkern u1="&#xdd;" u2="g" k="41" />
+<hkern u1="&#xdd;" u2="e" k="102" />
+<hkern u1="&#xdd;" u2="d" k="102" />
+<hkern u1="&#xdd;" u2="c" k="102" />
+<hkern u1="&#xdd;" u2="a" k="102" />
+<hkern u1="&#xdd;" u2="Q" k="41" />
+<hkern u1="&#xdd;" u2="O" k="41" />
+<hkern u1="&#xdd;" u2="G" k="41" />
+<hkern u1="&#xdd;" u2="C" k="41" />
+<hkern u1="&#xdd;" u2="A" k="123" />
+<hkern u1="&#xdd;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xdd;" u2="&#x2e;" k="123" />
+<hkern u1="&#xdd;" u2="&#x2c;" k="123" />
+<hkern u1="&#xde;" u2="&#x201e;" k="266" />
+<hkern u1="&#xde;" u2="&#x201a;" k="266" />
+<hkern u1="&#xde;" u2="&#xc5;" k="102" />
+<hkern u1="&#xde;" u2="&#xc4;" k="102" />
+<hkern u1="&#xde;" u2="&#xc3;" k="102" />
+<hkern u1="&#xde;" u2="&#xc2;" k="102" />
+<hkern u1="&#xde;" u2="&#xc1;" k="102" />
+<hkern u1="&#xde;" u2="&#xc0;" k="102" />
+<hkern u1="&#xde;" u2="Z" k="20" />
+<hkern u1="&#xde;" u2="X" k="41" />
+<hkern u1="&#xde;" u2="A" k="102" />
+<hkern u1="&#xde;" u2="&#x2e;" k="266" />
+<hkern u1="&#xde;" u2="&#x2c;" k="266" />
+<hkern u1="&#xe0;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe0;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe0;" u2="&#x27;" k="20" />
+<hkern u1="&#xe0;" u2="&#x22;" k="20" />
+<hkern u1="&#xe1;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe1;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe1;" u2="&#x27;" k="20" />
+<hkern u1="&#xe1;" u2="&#x22;" k="20" />
+<hkern u1="&#xe2;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe2;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe2;" u2="&#x27;" k="20" />
+<hkern u1="&#xe2;" u2="&#x22;" k="20" />
+<hkern u1="&#xe3;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe3;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe3;" u2="&#x27;" k="20" />
+<hkern u1="&#xe3;" u2="&#x22;" k="20" />
+<hkern u1="&#xe4;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe4;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe4;" u2="&#x27;" k="20" />
+<hkern u1="&#xe4;" u2="&#x22;" k="20" />
+<hkern u1="&#xe5;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe5;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe5;" u2="&#x27;" k="20" />
+<hkern u1="&#xe5;" u2="&#x22;" k="20" />
+<hkern u1="&#xe8;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe8;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe8;" u2="&#xfd;" k="41" />
+<hkern u1="&#xe8;" u2="z" k="20" />
+<hkern u1="&#xe8;" u2="y" k="41" />
+<hkern u1="&#xe8;" u2="x" k="41" />
+<hkern u1="&#xe8;" u2="w" k="41" />
+<hkern u1="&#xe8;" u2="v" k="41" />
+<hkern u1="&#xe8;" u2="&#x27;" k="20" />
+<hkern u1="&#xe8;" u2="&#x22;" k="20" />
+<hkern u1="&#xe9;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe9;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe9;" u2="&#xfd;" k="41" />
+<hkern u1="&#xe9;" u2="z" k="20" />
+<hkern u1="&#xe9;" u2="y" k="41" />
+<hkern u1="&#xe9;" u2="x" k="41" />
+<hkern u1="&#xe9;" u2="w" k="41" />
+<hkern u1="&#xe9;" u2="v" k="41" />
+<hkern u1="&#xe9;" u2="&#x27;" k="20" />
+<hkern u1="&#xe9;" u2="&#x22;" k="20" />
+<hkern u1="&#xea;" u2="&#x201d;" k="20" />
+<hkern u1="&#xea;" u2="&#x2019;" k="20" />
+<hkern u1="&#xea;" u2="&#xfd;" k="41" />
+<hkern u1="&#xea;" u2="z" k="20" />
+<hkern u1="&#xea;" u2="y" k="41" />
+<hkern u1="&#xea;" u2="x" k="41" />
+<hkern u1="&#xea;" u2="w" k="41" />
+<hkern u1="&#xea;" u2="v" k="41" />
+<hkern u1="&#xea;" u2="&#x27;" k="20" />
+<hkern u1="&#xea;" u2="&#x22;" k="20" />
+<hkern u1="&#xeb;" u2="&#x201d;" k="20" />
+<hkern u1="&#xeb;" u2="&#x2019;" k="20" />
+<hkern u1="&#xeb;" u2="&#xfd;" k="41" />
+<hkern u1="&#xeb;" u2="z" k="20" />
+<hkern u1="&#xeb;" u2="y" k="41" />
+<hkern u1="&#xeb;" u2="x" k="41" />
+<hkern u1="&#xeb;" u2="w" k="41" />
+<hkern u1="&#xeb;" u2="v" k="41" />
+<hkern u1="&#xeb;" u2="&#x27;" k="20" />
+<hkern u1="&#xeb;" u2="&#x22;" k="20" />
+<hkern u1="&#xf0;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf0;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf0;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf0;" u2="z" k="20" />
+<hkern u1="&#xf0;" u2="y" k="41" />
+<hkern u1="&#xf0;" u2="x" k="41" />
+<hkern u1="&#xf0;" u2="w" k="41" />
+<hkern u1="&#xf0;" u2="v" k="41" />
+<hkern u1="&#xf0;" u2="&#x27;" k="20" />
+<hkern u1="&#xf0;" u2="&#x22;" k="20" />
+<hkern u1="&#xf2;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf2;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf2;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf2;" u2="z" k="20" />
+<hkern u1="&#xf2;" u2="y" k="41" />
+<hkern u1="&#xf2;" u2="x" k="41" />
+<hkern u1="&#xf2;" u2="w" k="41" />
+<hkern u1="&#xf2;" u2="v" k="41" />
+<hkern u1="&#xf2;" u2="&#x27;" k="20" />
+<hkern u1="&#xf2;" u2="&#x22;" k="20" />
+<hkern u1="&#xf3;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf3;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf3;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf3;" u2="z" k="20" />
+<hkern u1="&#xf3;" u2="y" k="41" />
+<hkern u1="&#xf3;" u2="x" k="41" />
+<hkern u1="&#xf3;" u2="w" k="41" />
+<hkern u1="&#xf3;" u2="v" k="41" />
+<hkern u1="&#xf3;" u2="&#x27;" k="20" />
+<hkern u1="&#xf3;" u2="&#x22;" k="20" />
+<hkern u1="&#xf4;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf4;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf4;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf4;" u2="z" k="20" />
+<hkern u1="&#xf4;" u2="y" k="41" />
+<hkern u1="&#xf4;" u2="x" k="41" />
+<hkern u1="&#xf4;" u2="w" k="41" />
+<hkern u1="&#xf4;" u2="v" k="41" />
+<hkern u1="&#xf4;" u2="&#x27;" k="20" />
+<hkern u1="&#xf4;" u2="&#x22;" k="20" />
+<hkern u1="&#xf6;" u2="&#x201d;" k="41" />
+<hkern u1="&#xf6;" u2="&#x2019;" k="41" />
+<hkern u1="&#xf6;" u2="&#x27;" k="41" />
+<hkern u1="&#xf6;" u2="&#x22;" k="41" />
+<hkern u1="&#xf8;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf8;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf8;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf8;" u2="z" k="20" />
+<hkern u1="&#xf8;" u2="y" k="41" />
+<hkern u1="&#xf8;" u2="x" k="41" />
+<hkern u1="&#xf8;" u2="w" k="41" />
+<hkern u1="&#xf8;" u2="v" k="41" />
+<hkern u1="&#xf8;" u2="&#x27;" k="20" />
+<hkern u1="&#xf8;" u2="&#x22;" k="20" />
+<hkern u1="&#xfd;" u2="&#x201e;" k="82" />
+<hkern u1="&#xfd;" u2="&#x201d;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x201a;" k="82" />
+<hkern u1="&#xfd;" u2="&#x2019;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xfd;" u2="&#x2e;" k="82" />
+<hkern u1="&#xfd;" u2="&#x2c;" k="82" />
+<hkern u1="&#xfd;" u2="&#x27;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x22;" k="-82" />
+<hkern u1="&#xfe;" u2="&#x201d;" k="20" />
+<hkern u1="&#xfe;" u2="&#x2019;" k="20" />
+<hkern u1="&#xfe;" u2="&#xfd;" k="41" />
+<hkern u1="&#xfe;" u2="z" k="20" />
+<hkern u1="&#xfe;" u2="y" k="41" />
+<hkern u1="&#xfe;" u2="x" k="41" />
+<hkern u1="&#xfe;" u2="w" k="41" />
+<hkern u1="&#xfe;" u2="v" k="41" />
+<hkern u1="&#xfe;" u2="&#x27;" k="20" />
+<hkern u1="&#xfe;" u2="&#x22;" k="20" />
+<hkern u1="&#xff;" u2="&#x201e;" k="82" />
+<hkern u1="&#xff;" u2="&#x201d;" k="-82" />
+<hkern u1="&#xff;" u2="&#x201a;" k="82" />
+<hkern u1="&#xff;" u2="&#x2019;" k="-82" />
+<hkern u1="&#xff;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xff;" u2="&#x2e;" k="82" />
+<hkern u1="&#xff;" u2="&#x2c;" k="82" />
+<hkern u1="&#xff;" u2="&#x27;" k="-82" />
+<hkern u1="&#xff;" u2="&#x22;" k="-82" />
+<hkern u1="&#x152;" u2="J" k="-123" />
+<hkern u1="&#x178;" u2="&#x201e;" k="123" />
+<hkern u1="&#x178;" u2="&#x201a;" k="123" />
+<hkern u1="&#x178;" u2="&#x153;" k="102" />
+<hkern u1="&#x178;" u2="&#x152;" k="41" />
+<hkern u1="&#x178;" u2="&#xfc;" k="61" />
+<hkern u1="&#x178;" u2="&#xfb;" k="61" />
+<hkern u1="&#x178;" u2="&#xfa;" k="61" />
+<hkern u1="&#x178;" u2="&#xf9;" k="61" />
+<hkern u1="&#x178;" u2="&#xf8;" k="102" />
+<hkern u1="&#x178;" u2="&#xf6;" k="102" />
+<hkern u1="&#x178;" u2="&#xf5;" k="102" />
+<hkern u1="&#x178;" u2="&#xf4;" k="102" />
+<hkern u1="&#x178;" u2="&#xf3;" k="102" />
+<hkern u1="&#x178;" u2="&#xf2;" k="102" />
+<hkern u1="&#x178;" u2="&#xeb;" k="102" />
+<hkern u1="&#x178;" u2="&#xea;" k="102" />
+<hkern u1="&#x178;" u2="&#xe9;" k="102" />
+<hkern u1="&#x178;" u2="&#xe8;" k="102" />
+<hkern u1="&#x178;" u2="&#xe7;" k="102" />
+<hkern u1="&#x178;" u2="&#xe6;" k="102" />
+<hkern u1="&#x178;" u2="&#xe5;" k="102" />
+<hkern u1="&#x178;" u2="&#xe4;" k="102" />
+<hkern u1="&#x178;" u2="&#xe3;" k="102" />
+<hkern u1="&#x178;" u2="&#xe2;" k="102" />
+<hkern u1="&#x178;" u2="&#xe1;" k="102" />
+<hkern u1="&#x178;" u2="&#xe0;" k="102" />
+<hkern u1="&#x178;" u2="&#xd8;" k="41" />
+<hkern u1="&#x178;" u2="&#xd6;" k="41" />
+<hkern u1="&#x178;" u2="&#xd5;" k="41" />
+<hkern u1="&#x178;" u2="&#xd4;" k="41" />
+<hkern u1="&#x178;" u2="&#xd3;" k="41" />
+<hkern u1="&#x178;" u2="&#xd2;" k="41" />
+<hkern u1="&#x178;" u2="&#xc7;" k="41" />
+<hkern u1="&#x178;" u2="&#xc5;" k="123" />
+<hkern u1="&#x178;" u2="&#xc4;" k="123" />
+<hkern u1="&#x178;" u2="&#xc3;" k="123" />
+<hkern u1="&#x178;" u2="&#xc2;" k="123" />
+<hkern u1="&#x178;" u2="&#xc1;" k="123" />
+<hkern u1="&#x178;" u2="&#xc0;" k="123" />
+<hkern u1="&#x178;" u2="z" k="41" />
+<hkern u1="&#x178;" u2="u" k="61" />
+<hkern u1="&#x178;" u2="s" k="82" />
+<hkern u1="&#x178;" u2="r" k="61" />
+<hkern u1="&#x178;" u2="q" k="102" />
+<hkern u1="&#x178;" u2="p" k="61" />
+<hkern u1="&#x178;" u2="o" k="102" />
+<hkern u1="&#x178;" u2="n" k="61" />
+<hkern u1="&#x178;" u2="m" k="61" />
+<hkern u1="&#x178;" u2="g" k="41" />
+<hkern u1="&#x178;" u2="e" k="102" />
+<hkern u1="&#x178;" u2="d" k="102" />
+<hkern u1="&#x178;" u2="c" k="102" />
+<hkern u1="&#x178;" u2="a" k="102" />
+<hkern u1="&#x178;" u2="Q" k="41" />
+<hkern u1="&#x178;" u2="O" k="41" />
+<hkern u1="&#x178;" u2="G" k="41" />
+<hkern u1="&#x178;" u2="C" k="41" />
+<hkern u1="&#x178;" u2="A" k="123" />
+<hkern u1="&#x178;" u2="&#x3f;" k="-41" />
+<hkern u1="&#x178;" u2="&#x2e;" k="123" />
+<hkern u1="&#x178;" u2="&#x2c;" k="123" />
+<hkern u1="&#x2013;" u2="T" k="82" />
+<hkern u1="&#x2014;" u2="T" k="82" />
+<hkern u1="&#x2018;" u2="&#x178;" k="-20" />
+<hkern u1="&#x2018;" u2="&#x153;" k="123" />
+<hkern u1="&#x2018;" u2="&#xfc;" k="61" />
+<hkern u1="&#x2018;" u2="&#xfb;" k="61" />
+<hkern u1="&#x2018;" u2="&#xfa;" k="61" />
+<hkern u1="&#x2018;" u2="&#xf9;" k="61" />
+<hkern u1="&#x2018;" u2="&#xf8;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf6;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf5;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf4;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf3;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf2;" k="123" />
+<hkern u1="&#x2018;" u2="&#xeb;" k="123" />
+<hkern u1="&#x2018;" u2="&#xea;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe9;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe8;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe7;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe6;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe5;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe4;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe3;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe2;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe1;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe0;" k="123" />
+<hkern u1="&#x2018;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x2018;" u2="&#xc5;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc4;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc3;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc2;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc1;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc0;" k="143" />
+<hkern u1="&#x2018;" u2="u" k="61" />
+<hkern u1="&#x2018;" u2="s" k="61" />
+<hkern u1="&#x2018;" u2="r" k="61" />
+<hkern u1="&#x2018;" u2="q" k="123" />
+<hkern u1="&#x2018;" u2="p" k="61" />
+<hkern u1="&#x2018;" u2="o" k="123" />
+<hkern u1="&#x2018;" u2="n" k="61" />
+<hkern u1="&#x2018;" u2="m" k="61" />
+<hkern u1="&#x2018;" u2="g" k="61" />
+<hkern u1="&#x2018;" u2="e" k="123" />
+<hkern u1="&#x2018;" u2="d" k="123" />
+<hkern u1="&#x2018;" u2="c" k="123" />
+<hkern u1="&#x2018;" u2="a" k="82" />
+<hkern u1="&#x2018;" u2="Y" k="-20" />
+<hkern u1="&#x2018;" u2="W" k="-41" />
+<hkern u1="&#x2018;" u2="V" k="-41" />
+<hkern u1="&#x2018;" u2="T" k="-41" />
+<hkern u1="&#x2018;" u2="A" k="143" />
+<hkern u1="&#x2019;" u2="&#x178;" k="-20" />
+<hkern u1="&#x2019;" u2="&#x153;" k="123" />
+<hkern u1="&#x2019;" u2="&#xfc;" k="61" />
+<hkern u1="&#x2019;" u2="&#xfb;" k="61" />
+<hkern u1="&#x2019;" u2="&#xfa;" k="61" />
+<hkern u1="&#x2019;" u2="&#xf9;" k="61" />
+<hkern u1="&#x2019;" u2="&#xf8;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf6;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf5;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf4;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf3;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf2;" k="123" />
+<hkern u1="&#x2019;" u2="&#xeb;" k="123" />
+<hkern u1="&#x2019;" u2="&#xea;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe9;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe8;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe7;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe6;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe5;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe4;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe3;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe2;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe1;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe0;" k="123" />
+<hkern u1="&#x2019;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x2019;" u2="&#xc5;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc4;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc3;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc2;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc1;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc0;" k="143" />
+<hkern u1="&#x2019;" u2="u" k="61" />
+<hkern u1="&#x2019;" u2="s" k="61" />
+<hkern u1="&#x2019;" u2="r" k="61" />
+<hkern u1="&#x2019;" u2="q" k="123" />
+<hkern u1="&#x2019;" u2="p" k="61" />
+<hkern u1="&#x2019;" u2="o" k="123" />
+<hkern u1="&#x2019;" u2="n" k="61" />
+<hkern u1="&#x2019;" u2="m" k="61" />
+<hkern u1="&#x2019;" u2="g" k="61" />
+<hkern u1="&#x2019;" u2="e" k="123" />
+<hkern u1="&#x2019;" u2="d" k="123" />
+<hkern u1="&#x2019;" u2="c" k="123" />
+<hkern u1="&#x2019;" u2="a" k="82" />
+<hkern u1="&#x2019;" u2="Y" k="-20" />
+<hkern u1="&#x2019;" u2="W" k="-41" />
+<hkern u1="&#x2019;" u2="V" k="-41" />
+<hkern u1="&#x2019;" u2="T" k="-41" />
+<hkern u1="&#x2019;" u2="A" k="143" />
+<hkern u1="&#x201a;" u2="&#x178;" k="123" />
+<hkern u1="&#x201a;" u2="&#x152;" k="102" />
+<hkern u1="&#x201a;" u2="&#xdd;" k="123" />
+<hkern u1="&#x201a;" u2="&#xdc;" k="41" />
+<hkern u1="&#x201a;" u2="&#xdb;" k="41" />
+<hkern u1="&#x201a;" u2="&#xda;" k="41" />
+<hkern u1="&#x201a;" u2="&#xd9;" k="41" />
+<hkern u1="&#x201a;" u2="&#xd8;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd6;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd5;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd4;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd3;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd2;" k="102" />
+<hkern u1="&#x201a;" u2="&#xc7;" k="102" />
+<hkern u1="&#x201a;" u2="Y" k="123" />
+<hkern u1="&#x201a;" u2="W" k="123" />
+<hkern u1="&#x201a;" u2="V" k="123" />
+<hkern u1="&#x201a;" u2="U" k="41" />
+<hkern u1="&#x201a;" u2="T" k="143" />
+<hkern u1="&#x201a;" u2="Q" k="102" />
+<hkern u1="&#x201a;" u2="O" k="102" />
+<hkern u1="&#x201a;" u2="G" k="102" />
+<hkern u1="&#x201a;" u2="C" k="102" />
+<hkern u1="&#x201c;" u2="&#x178;" k="-20" />
+<hkern u1="&#x201c;" u2="&#x153;" k="123" />
+<hkern u1="&#x201c;" u2="&#xfc;" k="61" />
+<hkern u1="&#x201c;" u2="&#xfb;" k="61" />
+<hkern u1="&#x201c;" u2="&#xfa;" k="61" />
+<hkern u1="&#x201c;" u2="&#xf9;" k="61" />
+<hkern u1="&#x201c;" u2="&#xf8;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf6;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf5;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf4;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf3;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf2;" k="123" />
+<hkern u1="&#x201c;" u2="&#xeb;" k="123" />
+<hkern u1="&#x201c;" u2="&#xea;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe9;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe8;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe7;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe6;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe5;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe4;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe3;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe2;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe1;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe0;" k="123" />
+<hkern u1="&#x201c;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x201c;" u2="&#xc5;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc4;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc3;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc2;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc1;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc0;" k="143" />
+<hkern u1="&#x201c;" u2="u" k="61" />
+<hkern u1="&#x201c;" u2="s" k="61" />
+<hkern u1="&#x201c;" u2="r" k="61" />
+<hkern u1="&#x201c;" u2="q" k="123" />
+<hkern u1="&#x201c;" u2="p" k="61" />
+<hkern u1="&#x201c;" u2="o" k="123" />
+<hkern u1="&#x201c;" u2="n" k="61" />
+<hkern u1="&#x201c;" u2="m" k="61" />
+<hkern u1="&#x201c;" u2="g" k="61" />
+<hkern u1="&#x201c;" u2="e" k="123" />
+<hkern u1="&#x201c;" u2="d" k="123" />
+<hkern u1="&#x201c;" u2="c" k="123" />
+<hkern u1="&#x201c;" u2="a" k="82" />
+<hkern u1="&#x201c;" u2="Y" k="-20" />
+<hkern u1="&#x201c;" u2="W" k="-41" />
+<hkern u1="&#x201c;" u2="V" k="-41" />
+<hkern u1="&#x201c;" u2="T" k="-41" />
+<hkern u1="&#x201c;" u2="A" k="143" />
+<hkern u1="&#x201e;" u2="&#x178;" k="123" />
+<hkern u1="&#x201e;" u2="&#x152;" k="102" />
+<hkern u1="&#x201e;" u2="&#xdd;" k="123" />
+<hkern u1="&#x201e;" u2="&#xdc;" k="41" />
+<hkern u1="&#x201e;" u2="&#xdb;" k="41" />
+<hkern u1="&#x201e;" u2="&#xda;" k="41" />
+<hkern u1="&#x201e;" u2="&#xd9;" k="41" />
+<hkern u1="&#x201e;" u2="&#xd8;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd6;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd5;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd4;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd3;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd2;" k="102" />
+<hkern u1="&#x201e;" u2="&#xc7;" k="102" />
+<hkern u1="&#x201e;" u2="Y" k="123" />
+<hkern u1="&#x201e;" u2="W" k="123" />
+<hkern u1="&#x201e;" u2="V" k="123" />
+<hkern u1="&#x201e;" u2="U" k="41" />
+<hkern u1="&#x201e;" u2="T" k="143" />
+<hkern u1="&#x201e;" u2="Q" k="102" />
+<hkern u1="&#x201e;" u2="O" k="102" />
+<hkern u1="&#x201e;" u2="G" k="102" />
+<hkern u1="&#x201e;" u2="C" k="102" />
+</font>
+</defs></svg> 
\ No newline at end of file
diff --git a/html/tower/docs/fonts/OpenSans-Regular-webfont.woff b/html/tower/docs/fonts/OpenSans-Regular-webfont.woff
new file mode 100644
index 0000000..e231183
--- /dev/null
+++ b/html/tower/docs/fonts/OpenSans-Regular-webfont.woff
Binary files differdiff --git a/html/tower/docs/game.js.html b/html/tower/docs/game.js.html
new file mode 100644
index 0000000..b34bcf8
--- /dev/null
+++ b/html/tower/docs/game.js.html
@@ -0,0 +1,537 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: game.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: game.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>// generate updated docs
+// jsdoc js -d docs
+
+/**
+ * Main game entry point
+ * Initializes the game state and starts the game loop
+ * 
+ * @module game
+ */
+
+/** Canvas elements for rendering the game */
+const canvas = document.getElementById('gameCanvas');
+const ctx = canvas.getContext('2d');
+
+/** Game timing variables */
+let lastTimestamp = 0;
+const ENEMY_SPAWN_INTERVAL = 1000; // 1 second between enemy spawns
+let lastEnemySpawn = 0;
+let enemiesRemaining = 0;
+
+/** Drag and drop state tracking */
+let draggedTowerType = null;
+let hoverCell = null;
+
+/**
+ * Main game loop using requestAnimationFrame
+ * This is the heart of the game, running approximately 60 times per second
+ * 
+ * @param {number} timestamp - Current time in milliseconds, provided by requestAnimationFrame
+ * 
+ * Key concepts:
+ * - RequestAnimationFrame for smooth animation
+ * - Delta time for consistent motion regardless of frame rate
+ * - Game state management
+ */
+function gameLoop(timestamp) {
+    const deltaTime = timestamp - lastTimestamp;
+    lastTimestamp = timestamp;
+    
+    ctx.clearRect(0, 0, canvas.width, canvas.height);
+    
+    if (!gameState.isGameOver) {
+        if (gameState.phase === GamePhase.COMBAT) {
+            handleCombatPhase(timestamp, deltaTime);
+            
+            // Check for level completion
+            if (gameState.checkLevelComplete()) {
+                handleLevelComplete();
+            }
+        }
+    }
+    
+    renderGame();
+    requestAnimationFrame(gameLoop);
+}
+
+/**
+ * Handles all combat phase updates including enemy movement, attacks, and collisions
+ * 
+ * @param {number} timestamp - Current game time in milliseconds
+ * @param {number} deltaTime - Time elapsed since last frame
+ * 
+ * Key concepts:
+ * - Game state updates
+ * - Entity management (enemies, towers, projectiles)
+ * - Particle effects
+ * - Combat mechanics
+ */
+function handleCombatPhase(timestamp, deltaTime) {
+    spawnEnemies(timestamp);
+    updateEnemies();
+    // Update particle effects with time-based animation
+    gameState.particles = updateParticles(gameState.particles, timestamp, deltaTime);
+    // Remove expired projectiles
+    gameState.projectiles = gameState.projectiles.filter(p => timestamp - p.createdAt &lt; p.lifetime);
+    
+    const cellSize = canvas.width / 20;
+    
+    // Process combat interactions
+    processTowerAttacks(
+        gameState.towers,
+        gameState.enemies,
+        gameState.projectiles,
+        gameState.particles,
+        timestamp,
+        cellSize
+    );
+    
+    processEnemyAttacks(
+        gameState.enemies,
+        gameState.towers,
+        gameState.particles,
+        timestamp,
+        cellSize
+    );
+    
+    // Remove defeated enemies and destroyed towers
+    // Uses array filter with a callback that has side effects (awarding currency)
+    gameState.enemies = gameState.enemies.filter(enemy => {
+        if (enemy.currentHealth &lt;= 0) {
+            gameState.awardEnemyDestroyed();
+            return false;
+        }
+        return true;
+    });
+    gameState.towers = gameState.towers.filter(tower => tower.currentHealth > 0);
+}
+
+/**
+ * Spawns new enemies at regular intervals during combat
+ * 
+ * @param {number} timestamp - Current game time in milliseconds
+ * 
+ * Key concepts:
+ * - Time-based game events
+ * - Enemy creation and management
+ * - Game balance through spawn timing
+ */
+function spawnEnemies(timestamp) {
+    if (enemiesRemaining > 0 &amp;&amp; timestamp - lastEnemySpawn > ENEMY_SPAWN_INTERVAL) {
+        gameState.enemies.push(createEnemy({ x: 0, y: gameState.path[0].y }));
+        lastEnemySpawn = timestamp;
+        enemiesRemaining--;
+    }
+}
+
+/**
+ * Renders all game elements to the canvas using a layered approach.
+ * This function demonstrates several key game development patterns:
+ * 
+ * 1. Canvas State Management:
+ *    - Uses save()/restore() to isolate rendering contexts
+ *    - Resets transform matrix to prevent state leaks
+ *    - Maintains clean state between rendering phases
+ * 
+ * 2. Layered Rendering Pattern:
+ *    - Renders in specific order (background → entities → UI)
+ *    - Each layer builds on top of previous layers
+ *    - Separates rendering concerns for easier maintenance
+ * 
+ * 3. Separation of Concerns:
+ *    - Each render function handles one specific type of game element
+ *    - UI rendering is isolated from game element rendering
+ *    - Clear boundaries between different rendering responsibilities
+ * 
+ * The rendering order is important:
+ * 1. Grid (background)
+ * 2. Particles (effects under entities)
+ * 3. Projectiles (dynamic game elements)
+ * 4. Towers (static game entities)
+ * 5. Enemies (moving game entities)
+ * 6. UI (top layer)
+ */
+function renderGame() {
+    // Reset the canvas transform matrix to identity
+    // This prevents any previous transformations from affecting new renders
+    ctx.setTransform(1, 0, 0, 1, 0, 0);
+    
+    // Clear the entire canvas to prevent ghosting
+    // This is crucial for animation smoothness
+    ctx.clearRect(0, 0, canvas.width, canvas.height);
+    
+    // Save the initial clean state
+    // This is part of the state stack pattern used in canvas rendering
+    ctx.save();
+    
+    // Render game world elements in specific order
+    // This creates the layered effect common in 2D games
+    renderGrid(ctx, gameState.grid);          // Background layer
+    renderParticles(ctx, gameState.particles); // Effect layer
+    renderProjectiles(ctx, gameState.projectiles); // Dynamic elements
+    renderTowers(ctx, gameState.towers);       // Static entities
+    renderEnemies(ctx, gameState.enemies);     // Moving entities
+    
+    // Restore to clean state before UI rendering
+    // This ensures UI rendering isn't affected by game world rendering
+    ctx.restore();
+    ctx.save();
+    
+    // Render UI elements last so they appear on top
+    // UI is rendered with its own clean state to prevent interference
+    renderUI(ctx, gameState);
+    
+    // Final state restoration
+    // Ensures clean state for next frame
+    ctx.restore();
+}
+
+/**
+ * Initializes the game by:
+ * 1. Generating the path for enemies to follow
+ * 2. Setting up initial enemy count
+ * 3. Binding event listeners
+ * 4. Starting the game loop
+ * 
+ * Uses Promise-based path generation to handle async initialization
+ */
+generatePath(gameState.grid).then(path => {
+    gameState.path = path;
+    // Random enemy count between 5-30 for variety
+    enemiesRemaining = Math.floor(Math.random() * 26) + 5;
+    initializeEventListeners();
+    // Start the game loop using requestAnimationFrame for smooth animation
+    requestAnimationFrame(gameLoop);
+});
+
+/**
+ * Transitions the game from placement to combat phase.
+ * Demonstrates state machine pattern commonly used in games.
+ * 
+ * Side effects:
+ * - Updates game phase
+ * - Disables UI elements
+ * - Updates visual feedback
+ */
+function startCombat() {
+    if (gameState.phase === GamePhase.PLACEMENT &amp;&amp; gameState.towers.length > 0) {
+        // State transition
+        gameState.phase = GamePhase.COMBAT;
+        
+        // UI updates
+        document.getElementById('startCombat').disabled = true;
+        
+        // Visual feedback for disabled state
+        document.querySelectorAll('.tower-option').forEach(option => {
+            option.draggable = false;
+            option.style.cursor = 'not-allowed';
+            option.style.opacity = '0.5';
+        });
+    }
+}
+
+/**
+ * Sets up all event listeners for user interaction
+ * 
+ * Key concepts:
+ * - Event-driven programming
+ * - HTML5 Drag and Drop API
+ * - DOM manipulation
+ * - Method decoration (towers.push)
+ */
+function initializeEventListeners() {
+    // Add this at the beginning of the function
+    populateTowerPalette();
+    
+    // Set up tower palette drag events
+    document.querySelectorAll('.tower-option').forEach(option => {
+        option.addEventListener('dragstart', (e) => {
+            draggedTowerType = e.target.dataset.towerType;
+            // Required for Firefox - must set data for drag operation
+            e.dataTransfer.setData('text/plain', '');
+        });
+        
+        option.addEventListener('dragend', () => {
+            draggedTowerType = null;
+            hoverCell = null;
+        });
+    });
+
+    // Set up canvas drag and drop handling
+    canvas.addEventListener('dragover', (e) => {
+        e.preventDefault(); // Required for drop to work
+        const rect = canvas.getBoundingClientRect();
+        // Convert mouse coordinates to grid coordinates
+        const x = Math.floor((e.clientX - rect.left) / (canvas.width / 20));
+        const y = Math.floor((e.clientY - rect.top) / (canvas.height / 20));
+        
+        // Validate grid boundaries
+        if (x >= 0 &amp;&amp; x &lt; 20 &amp;&amp; y >= 0 &amp;&amp; y &lt; 20) {
+            hoverCell = { x, y };
+        } else {
+            hoverCell = null;
+        }
+    });
+
+    canvas.addEventListener('dragleave', () => {
+        hoverCell = null;
+    });
+
+    // Handle tower placement on drop
+    canvas.addEventListener('drop', (e) => {
+        e.preventDefault();
+        if (!draggedTowerType || !hoverCell) return;
+
+        const tower = TowerTypes[draggedTowerType];
+        // Validate placement and currency
+        if (
+            gameState.grid[hoverCell.y][hoverCell.x] === 'empty' &amp;&amp;
+            gameState.currency >= tower.cost
+        ) {
+            gameState.grid[hoverCell.y][hoverCell.x] = 'tower';
+            gameState.towers.push(createTower(draggedTowerType, { ...hoverCell }));
+            gameState.currency -= tower.cost;
+        }
+        
+        // Reset drag state
+        draggedTowerType = null;
+        hoverCell = null;
+    });
+
+    // Combat phase transition
+    document.getElementById('startCombat').addEventListener('click', startCombat);
+    
+    // Dynamic button state management
+    const updateStartButton = () => {
+        const button = document.getElementById('startCombat');
+        button.disabled = gameState.towers.length === 0;
+    };
+    
+    // Decorator pattern: Enhance towers.push to update UI
+    const originalPush = gameState.towers.push;
+    gameState.towers.push = function(...args) {
+        const result = originalPush.apply(this, args);
+        updateStartButton();
+        return result;
+    };
+    
+    updateStartButton();
+}
+
+/**
+ * Handles the transition between levels
+ * Shows completion message and sets up next level
+ */
+function handleLevelComplete() {
+    // Pause the game briefly
+    gameState.phase = GamePhase.TRANSITION;
+    
+    // Calculate ammo bonus
+    let ammoBonus = 0;
+    gameState.towers.forEach(tower => {
+        ammoBonus += tower.ammo * 0.25;
+    });
+    ammoBonus = Math.floor(ammoBonus);
+    
+    // Show level complete message with modal
+    const message = `
+        Level ${gameState.level} Complete!
+        
+        Stats:
+        - Enemies Destroyed: ${gameState.enemiesDestroyed}
+        - Enemies Escaped: ${gameState.enemiesEscaped}
+        
+        Bonuses:
+        - Current Money: $${gameState.currency}
+        - Remaining Ammo Bonus: +$${ammoBonus}
+        
+        Total After Bonuses: $${gameState.currency + ammoBonus + 10}
+        
+        Ready for Level ${gameState.level + 1}?
+    `;
+    
+    // Use setTimeout to allow the final frame to render
+    setTimeout(() => {
+        if (confirm(message)) {
+            startNextLevel();
+        }
+    }, 100);
+}
+
+/**
+ * Sets up the next level
+ * Increases difficulty and resets the game state while preserving currency
+ */
+function startNextLevel() {
+    gameState.advanceToNextLevel();
+    
+    // Generate new path
+    generatePath(gameState.grid).then(path => {
+        gameState.path = path;
+        
+        // Exponential enemy scaling
+        const baseEnemies = 5;
+        const scalingFactor = 1.5;  // Each level increases by 50%
+        enemiesRemaining = Math.floor(baseEnemies * Math.pow(scalingFactor, gameState.level - 1));
+        
+        // Re-enable tower palette
+        document.querySelectorAll('.tower-option').forEach(option => {
+            option.draggable = true;
+            option.style.cursor = 'grab';
+            option.style.opacity = '1';
+        });
+        
+        // Reset start button
+        const startButton = document.getElementById('startCombat');
+        startButton.disabled = false;
+        startButton.textContent = `Start Level ${gameState.level}`;
+    });
+}
+
+// Update the renderUI function to show current level
+function renderUI(ctx, gameState) {
+    ctx.fillStyle = 'black';
+    ctx.font = '20px Arial';
+    ctx.fillText(`Level: ${gameState.level}`, 10, 30);
+    ctx.fillText(`Currency: $${gameState.currency}`, 10, 60);
+    ctx.fillText(`Phase: ${gameState.phase}`, 10, 90);
+    ctx.fillText(`Destroyed: ${gameState.enemiesDestroyed}`, 10, 120);
+    ctx.fillText(`Escaped: ${gameState.enemiesEscaped}`, 10, 150);
+}
+
+/**
+ * Dynamically populates the tower palette based on TowerTypes
+ */
+function populateTowerPalette() {
+    const palette = document.querySelector('.tower-palette');
+    // Clear existing tower options
+    palette.innerHTML = '';
+    
+    // Create tower options dynamically
+    Object.entries(TowerTypes).forEach(([type, tower]) => {
+        const towerOption = document.createElement('div');
+        towerOption.className = 'tower-option';
+        towerOption.draggable = true;
+        towerOption.dataset.towerType = type;
+        
+        towerOption.innerHTML = `
+            &lt;div class="tower-preview" style="background: ${tower.color};">&lt;/div>
+            &lt;div class="tower-info">
+                &lt;div class="tower-name">${tower.name}&lt;/div>
+                &lt;div class="tower-cost">Cost: $${tower.cost}&lt;/div>
+                &lt;div class="tower-ammo">Ammo: ${tower.maxAmmo}&lt;/div>
+            &lt;/div>
+        `;
+        
+        palette.appendChild(towerOption);
+    });
+    
+    // Add start combat button
+    const startButton = document.createElement('button');
+    startButton.id = 'startCombat';
+    startButton.className = 'start-button';
+    startButton.textContent = 'Start Run';
+    palette.appendChild(startButton);
+}
+
+/**
+ * Handles game over state and prompts for restart
+ */
+function handleGameOver() {
+    gameState.phase = GamePhase.TRANSITION;
+    gameState.isGameOver = true;
+    
+    const message = `
+        Game Over!
+        
+        Final Stats:
+        Level Reached: ${gameState.level}
+        Enemies Destroyed: ${gameState.enemiesDestroyed}
+        Enemies Escaped: ${gameState.enemiesEscaped}
+        
+        Would you like to restart from Level 1?
+    `;
+    
+    setTimeout(() => {
+        if (confirm(message)) {
+            restartGame();
+        }
+    }, 100);
+}
+
+/**
+ * Restarts the game from level 1 with fresh state
+ */
+function restartGame() {
+    gameState.resetGame();
+    
+    // Generate new path
+    generatePath(gameState.grid).then(path => {
+        gameState.path = path;
+        
+        // Reset enemy count to level 1
+        enemiesRemaining = 5;
+        
+        // Re-enable tower palette
+        document.querySelectorAll('.tower-option').forEach(option => {
+            option.draggable = true;
+            option.style.cursor = 'grab';
+            option.style.opacity = '1';
+        });
+        
+        // Reset start button
+        const startButton = document.getElementById('startCombat');
+        startButton.disabled = false;
+        startButton.textContent = 'Start Level 1';
+    });
+} </code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-game.html">game</a></li><li><a href="module-gameState.html">gameState</a></li><li><a href="module-mechanics.html">mechanics</a></li><li><a href="module-path.html">path</a></li><li><a href="module-renderer.html">renderer</a></li><li><a href="module-uiHandlers.html">uiHandlers</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.3</a> on Mon Feb 17 2025 09:19:19 GMT-0500 (Eastern Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
diff --git a/html/tower/docs/gameState.js.html b/html/tower/docs/gameState.js.html
new file mode 100644
index 0000000..1276143
--- /dev/null
+++ b/html/tower/docs/gameState.js.html
@@ -0,0 +1,338 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: gameState.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: gameState.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/**
+ * Game State Module
+ * 
+ * This module defines the game state and game phases
+ * 
+ * @module gameState
+ */
+
+
+/**
+ * Game phases
+ * 
+ * @enum {string}
+ * @readonly
+ */
+const GamePhase = {
+    PLACEMENT: 'place',
+    COMBAT: 'run'
+};
+
+/**
+ * Tower types
+ * 
+ * @enum {string}
+ * @readonly
+ */
+const TowerTypes = {
+    BASIC: {
+        name: 'Basic',
+        cost: 5,
+        range: 3,
+        damage: 1,
+        attackSpeed: 1,
+        color: '#3498db',
+        maxAmmo: 75
+    },
+    RAPID: {
+        name: 'Fast',
+        cost: 10,
+        range: 2,
+        damage: 1,
+        attackSpeed: 3,
+        color: '#16a085',
+        maxAmmo: 50
+    },
+    SNIPER: {
+        name: 'Distance',
+        cost: 20,
+        range: 6,
+        damage: 2,
+        attackSpeed: 0.5,
+        color: '#8e44ad',
+        maxAmmo: 50
+    },
+    GOOP: {
+        name: 'Goop',
+        cost: 20,
+        range: 3,
+        damage: 0,
+        attackSpeed: 1,
+        color: '#27ae60',
+        special: 'slow',
+        slowAmount: 0.75,
+        maxAmmo: 25
+    },
+    AOE: {
+        name: 'AOE',
+        cost: 25,
+        range: 2,
+        damage: 3,
+        attackSpeed: 0.25,
+        color: '#d35400',
+        special: 'aoe',
+        aoeRadius: 2,
+        maxAmmo: 25
+    }
+};
+
+/**
+ * Particle types
+ * 
+ * @enum {string}
+ * @readonly
+ */
+const ParticleTypes = {
+    DEATH_PARTICLE: {
+        lifetime: 1000, // milliseconds
+        speed: 0.1,
+        colors: ['#e74c3c', '#c0392b', '#d35400', '#e67e22']
+    },
+    PROJECTILE: {
+        lifetime: 300,
+        speed: 0.3,
+        color: '#ecf0f1'
+    },
+    AOE_EXPLOSION: {
+        lifetime: 500,
+        initialRadius: 10,
+        finalRadius: 60,
+        color: '#d35400',
+        ringWidth: 3
+    },
+    SLIME_TRAIL: {
+        lifetime: 800,
+        color: '#27ae60',  // Same as Goop tower
+        size: 12,
+        fadeStart: 0.2     // When the fade should begin (percentage of lifetime)
+    }
+};
+
+/**
+ * Enemy types
+ * 
+ * @enum {string}
+ * @readonly
+ */
+const EnemyTypes = {
+    BASIC: {
+        color: '#c0392b',
+        baseHealth: { min: 2, max: 6 },
+        speed: { min: 1, max: 1.5 },
+        damage: 0,
+        isRanged: false
+    },
+    RANGED: {
+        color: '#2c3e50',
+        baseHealth: { min: 1, max: 4 },
+        speed: { min: 0.7, max: 1.2 },
+        damage: 0.3,
+        attackRange: 3,
+        attackSpeed: 1, // attacks per second
+        isRanged: true
+    }
+};
+
+/**
+ * Creates a tower
+ * 
+ * @param {string} type - Tower type
+ * @param {Object} position - Position of the tower
+ */
+function createTower(type, position) {
+    const towerType = TowerTypes[type];
+    return {
+        ...towerType,
+        type,
+        position,
+        lastAttackTime: 0,
+        currentHealth: 10,
+        maxHealth: 10,
+        ammo: towerType.maxAmmo  // Initialize ammo
+    };
+}
+
+/**
+ * Creates an enemy
+ * 
+ * @param {Object} startPosition - Starting position of the enemy
+ */
+function createEnemy(startPosition) {
+    // 20% chance for ranged enemy
+    const type = Math.random() &lt; 0.2 ? 'RANGED' : 'BASIC';
+    const enemyType = EnemyTypes[type];
+    
+    // Scale health ranges with level
+    const levelScaling = 1 + (gameState.level - 1) * 0.25; // increase health by 25% per level
+    const minHealth = Math.floor(enemyType.baseHealth.min * levelScaling);
+    const maxHealth = Math.floor(enemyType.baseHealth.max * levelScaling);
+    
+    const health = Math.floor(Math.random() * 
+        (maxHealth - minHealth + 1)) + minHealth;
+    
+    return {
+        position: { ...startPosition },
+        currentHealth: health,
+        maxHealth: health,
+        speed: enemyType.speed.min + Math.random() * (enemyType.speed.max - enemyType.speed.min),
+        pathIndex: 0,
+        type,
+        lastAttackTime: 0,
+        damage: enemyType.damage
+    };
+}
+
+/**
+ * Creates a particle
+ * 
+ * @param {string} type - Particle type
+ * @param {Object} position - Position of the particle
+ */
+function createParticle(type, position, angle) {
+    return {
+        position: { ...position },
+        velocity: {
+            x: Math.cos(angle) * type.speed,
+            y: Math.sin(angle) * type.speed
+        },
+        color: Array.isArray(type.colors) 
+            ? type.colors[Math.floor(Math.random() * type.colors.length)]
+            : type.color,
+        createdAt: performance.now(),
+        lifetime: type.lifetime,
+        size: 3 + Math.random() * 2
+    };
+}
+
+
+/**
+ * Game state
+ * 
+ * @type {Object}
+ */
+const gameState = {
+    grid: Array(20).fill().map(() => Array(20).fill('empty')),
+    path: [],
+    towers: [],
+    enemies: [],
+    currency: 100,
+    phase: GamePhase.PLACEMENT,
+    isGameOver: false,
+    particles: [],
+    projectiles: [],
+    enemiesDestroyed: 0,
+    enemiesEscaped: 0,
+    level: 1,
+    
+    /**
+     * Resets the game state
+     */
+    resetGame() {
+        this.grid = Array(20).fill().map(() => Array(20).fill('empty'));
+        this.path = [];
+        this.towers = [];
+        this.enemies = [];
+        this.currency = 100;
+        this.phase = GamePhase.PLACEMENT;
+        this.isGameOver = false;
+        this.particles = [];
+        this.projectiles = [];
+        this.enemiesDestroyed = 0;
+        this.enemiesEscaped = 0;
+        this.level = 1;
+    },
+    
+
+    /**
+     * Awards the enemy destroyed
+     */
+    awardEnemyDestroyed() {
+        this.enemiesDestroyed++;
+        // Random reward between 1 and 3
+        const reward = Math.floor(Math.random() * 3) + 1;
+        this.currency += reward;
+    },
+    
+
+    /**
+     * Checks if the level is complete
+     * 
+     * @returns {boolean}
+     */
+    checkLevelComplete() {
+        return this.enemies.length === 0 &amp;&amp; 
+               enemiesRemaining === 0 &amp;&amp; 
+               this.phase === GamePhase.COMBAT;
+    },
+    
+
+    /**
+     * Advances to the next level
+     */
+    advanceToNextLevel() {
+
+        let ammoBonus = 0;
+        this.towers.forEach(tower => {
+            ammoBonus += tower.ammo * 0.25;
+        });
+        this.currency += Math.floor(ammoBonus);  // Round down to nearest whole number
+        
+        this.level++;
+        this.phase = GamePhase.PLACEMENT;
+        this.towers = [];
+        this.enemies = [];
+        this.projectiles = [];
+        this.particles = [];
+        this.grid = Array(20).fill().map(() => Array(20).fill('empty'));
+    }
+}; </code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-game.html">game</a></li><li><a href="module-gameState.html">gameState</a></li><li><a href="module-mechanics.html">mechanics</a></li><li><a href="module-path.html">path</a></li><li><a href="module-renderer.html">renderer</a></li><li><a href="module-uiHandlers.html">uiHandlers</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.3</a> on Mon Feb 17 2025 09:19:19 GMT-0500 (Eastern Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
diff --git a/html/tower/docs/global.html b/html/tower/docs/global.html
new file mode 100644
index 0000000..d21546f
--- /dev/null
+++ b/html/tower/docs/global.html
@@ -0,0 +1,3447 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Global</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Global</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+        
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+        
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="createDeathParticles"><span class="type-signature"></span>createDeathParticles<span class="signature">(target, cellSize)</span><span class="type-signature"> &rarr; {Array.&lt;Object>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Creates death effect particles for defeated entities
+Implements visual feedback system
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>target</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Object</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The defeated entity</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>cellSize</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Size of grid cell for scaling</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="mechanics.js.html">mechanics.js</a>, <a href="mechanics.js.html#line149">line 149</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    Array of particle objects
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Array.&lt;Object></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="findTowersInRange"><span class="type-signature"></span>findTowersInRange<span class="signature">(enemy, towers)</span><span class="type-signature"> &rarr; {Array.&lt;Object>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Finds towers within enemy attack range
+Implements targeting system for enemies
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>enemy</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Object</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Enemy doing the targeting</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>towers</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Array.&lt;Object></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Array of potential tower targets</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="mechanics.js.html">mechanics.js</a>, <a href="mechanics.js.html#line304">line 304</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    Array of towers in range
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Array.&lt;Object></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="generatePath"><span class="type-signature"></span>generatePath<span class="signature">(grid)</span><span class="type-signature"> &rarr; {Promise.&lt;Array.&lt;{x: number, y: number}>>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Generates a valid path through the game grid using a modified depth-first search.
+This algorithm ensures:
+- Path always moves from left to right
+- No diagonal movements
+- No path segments touch each other (except at turns)
+- Path is always completable
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>grid</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Array.&lt;Array.&lt;string>></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">2D array representing the game grid</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="path.js.html">path.js</a>, <a href="path.js.html#line26">line 26</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    Promise resolving to array of path coordinates
+
+Implementation uses:
+- Backtracking algorithm pattern
+- Constraint satisfaction
+- Random selection for variety
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Promise.&lt;Array.&lt;{x: number, y: number}>></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="getPathPosition"><span class="type-signature"></span>getPathPosition<span class="signature">(progress, path)</span><span class="type-signature"> &rarr; {Object}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Calculates a position along the path based on a progress value
+Implements smooth entity movement along path segments
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>progress</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Progress along path (0-1)</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>path</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Array.&lt;{x: number, y: number}></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Array of path coordinates</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="path.js.html">path.js</a>, <a href="path.js.html#line138">line 138</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    Interpolated position along path
+
+Uses:
+- Linear interpolation (lerp)
+- Path segment traversal
+- Normalized progress tracking
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Object</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="handleAOEEffect"><span class="type-signature"></span>handleAOEEffect<span class="signature">(target, tower, enemies, particles, cellSize)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Handles AOE (Area of Effect) damage and visual effects
+Implements area damage system
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>target</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Object</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Primary target</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>tower</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Object</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Tower dealing AOE damage</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>enemies</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Array.&lt;Object></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">All enemies for AOE calculation</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>particles</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Array.&lt;Object></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Particle array for effects</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>cellSize</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Grid cell size</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="mechanics.js.html">mechanics.js</a>, <a href="mechanics.js.html#line399">line 399</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="handleEnemyAttack"><span class="type-signature"></span>handleEnemyAttack<span class="signature">(enemy, tower, particles, timestamp, cellSize)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Handles enemy attack execution and effects
+Implements enemy combat mechanics
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>enemy</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Object</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Attacking enemy</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>tower</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Object</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Target tower</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>particles</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Array.&lt;Object></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Particle array for effects</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>timestamp</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Current game timestamp</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>cellSize</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Grid cell size</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="mechanics.js.html">mechanics.js</a>, <a href="mechanics.js.html#line322">line 322</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="handleSlowEffect"><span class="type-signature"></span>handleSlowEffect<span class="signature">(target, tower, timestamp, particles, cellSize)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Handles slow effect application and stacking
+Implements status effect system
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>target</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Object</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Enemy to apply slow to</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>tower</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Object</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Tower applying the effect</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>timestamp</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Current game timestamp</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>particles</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Array.&lt;Object></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Particle array for effects</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>cellSize</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Grid cell size</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="mechanics.js.html">mechanics.js</a>, <a href="mechanics.js.html#line358">line 358</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="handleTowerAttack"><span class="type-signature"></span>handleTowerAttack<span class="signature">(tower, target, projectiles, particles, timestamp, cellSize)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Handles individual tower attack logic including special effects
+Implements tower ability system
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>tower</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Object</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Attacking tower</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>target</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Object</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Target enemy</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>projectiles</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Array.&lt;Object></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Projectile array</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>particles</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Array.&lt;Object></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Particle array</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>timestamp</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Current game timestamp</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>cellSize</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Grid cell size</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="mechanics.js.html">mechanics.js</a>, <a href="mechanics.js.html#line244">line 244</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="initializeDragAndDrop"><span class="type-signature"></span>initializeDragAndDrop<span class="signature">(canvas, gameState)</span><span class="type-signature"> &rarr; {Object}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Initializes drag and drop functionality for tower placement
+Implements HTML5 Drag and Drop API
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>canvas</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">HTMLCanvasElement</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Game canvas element</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>gameState</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Object</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Current game state</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="uiHandlers.js.html">uiHandlers.js</a>, <a href="uiHandlers.js.html#line20">line 20</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    Drag handlers and state information
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Object</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="placeTower"><span class="type-signature"></span>placeTower<span class="signature">(gameState, towerType, position)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Places a tower in the game grid
+Implements tower placement validation and state updates
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>gameState</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Object</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Current game state</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>towerType</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Type of tower to place</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>position</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Object</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Grid position for placement</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="uiHandlers.js.html">uiHandlers.js</a>, <a href="uiHandlers.js.html#line84">line 84</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="processEnemyAttacks"><span class="type-signature"></span>processEnemyAttacks<span class="signature">(enemies, towers, particles, timestamp, cellSize)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Processes enemy attack behaviors and targeting
+Implements enemy combat AI
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>enemies</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Array.&lt;Object></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Array of enemy objects</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>towers</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Array.&lt;Object></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Array of tower objects</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>particles</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Array.&lt;Object></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Particle effect array</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>timestamp</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Current game timestamp</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>cellSize</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Grid cell size</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="mechanics.js.html">mechanics.js</a>, <a href="mechanics.js.html#line281">line 281</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="processTowerAttacks"><span class="type-signature"></span>processTowerAttacks<span class="signature">(towers, enemies, projectiles, particles, timestamp, cellSize)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Processes tower attacks and targeting
+Implements combat mechanics and special abilities
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>towers</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Array.&lt;Object></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Array of tower objects</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>enemies</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Array.&lt;Object></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Array of enemy objects</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>projectiles</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Array.&lt;Object></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Array of projectile objects</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>particles</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Array.&lt;Object></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Array of particle objects</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>timestamp</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Current game timestamp</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>cellSize</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Size of grid cell for scaling</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="mechanics.js.html">mechanics.js</a>, <a href="mechanics.js.html#line188">line 188</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="renderEnemies"><span class="type-signature"></span>renderEnemies<span class="signature">(ctx, enemies)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Renders all enemies with health indicators and effects
+Implements visual state representation
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>ctx</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">CanvasRenderingContext2D</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Canvas rendering context</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>enemies</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Array.&lt;Object></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Array of enemy objects</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="renderer.js.html">renderer.js</a>, <a href="renderer.js.html#line86">line 86</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="renderGrid"><span class="type-signature"></span>renderGrid<span class="signature">(ctx, grid)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Renders the game grid with path and hover previews
+Implements visual feedback for player actions
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>ctx</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">CanvasRenderingContext2D</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Canvas rendering context</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>grid</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Array.&lt;Array.&lt;string>></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Game grid state</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="renderer.js.html">renderer.js</a>, <a href="renderer.js.html#line19">line 19</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="renderUI"><span class="type-signature"></span>renderUI<span class="signature">(ctx, gameState)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Renders game UI elements with clean state management
+Implements heads-up display (HUD) pattern
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>ctx</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">CanvasRenderingContext2D</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Canvas rendering context</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>gameState</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Object</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Current game state</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="renderer.js.html">renderer.js</a>, <a href="renderer.js.html#line140">line 140</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="updateEnemies"><span class="type-signature"></span>updateEnemies<span class="signature">()</span><span class="type-signature"> &rarr; {void}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Updates all enemy states including movement, health, and status effects
+Implements core game loop mechanics for enemy behavior
+
+Key features:
+- Path following
+- Health management
+- Status effect processing
+- Collision detection
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="mechanics.js.html">mechanics.js</a>, <a href="mechanics.js.html#line23">line 23</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">void</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="updateParticles"><span class="type-signature"></span>updateParticles<span class="signature">(particles, timestamp, deltaTime)</span><span class="type-signature"> &rarr; {Array.&lt;Object>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Updates particle effects with time-based animation
+Implements particle system lifecycle management
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>particles</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Array.&lt;Object></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Array of particle objects</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>timestamp</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Current game timestamp</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>deltaTime</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Time elapsed since last frame</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="mechanics.js.html">mechanics.js</a>, <a href="mechanics.js.html#line127">line 127</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    Updated particles array
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Array.&lt;Object></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+    
+
+    
+
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-game.html">game</a></li></ul><h3>Global</h3><ul><li><a href="global.html#createDeathParticles">createDeathParticles</a></li><li><a href="global.html#findTowersInRange">findTowersInRange</a></li><li><a href="global.html#generatePath">generatePath</a></li><li><a href="global.html#getPathPosition">getPathPosition</a></li><li><a href="global.html#handleAOEEffect">handleAOEEffect</a></li><li><a href="global.html#handleEnemyAttack">handleEnemyAttack</a></li><li><a href="global.html#handleSlowEffect">handleSlowEffect</a></li><li><a href="global.html#handleTowerAttack">handleTowerAttack</a></li><li><a href="global.html#initializeDragAndDrop">initializeDragAndDrop</a></li><li><a href="global.html#placeTower">placeTower</a></li><li><a href="global.html#processEnemyAttacks">processEnemyAttacks</a></li><li><a href="global.html#processTowerAttacks">processTowerAttacks</a></li><li><a href="global.html#renderEnemies">renderEnemies</a></li><li><a href="global.html#renderGrid">renderGrid</a></li><li><a href="global.html#renderUI">renderUI</a></li><li><a href="global.html#updateEnemies">updateEnemies</a></li><li><a href="global.html#updateParticles">updateParticles</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.3</a> on Mon Feb 17 2025 09:12:54 GMT-0500 (Eastern Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/html/tower/docs/index.html b/html/tower/docs/index.html
new file mode 100644
index 0000000..9a1549d
--- /dev/null
+++ b/html/tower/docs/index.html
@@ -0,0 +1,65 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Home</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Home</h1>
+
+    
+
+
+
+    
+
+
+    <h3> </h3>
+
+
+
+
+
+
+
+
+
+
+    
+
+
+
+
+
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-game.html">game</a></li><li><a href="module-gameState.html">gameState</a></li><li><a href="module-mechanics.html">mechanics</a></li><li><a href="module-path.html">path</a></li><li><a href="module-renderer.html">renderer</a></li><li><a href="module-uiHandlers.html">uiHandlers</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.3</a> on Mon Feb 17 2025 09:19:19 GMT-0500 (Eastern Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/html/tower/docs/mechanics.js.html b/html/tower/docs/mechanics.js.html
new file mode 100644
index 0000000..d629a87
--- /dev/null
+++ b/html/tower/docs/mechanics.js.html
@@ -0,0 +1,480 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: mechanics.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: mechanics.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/**
+ * Combat Mechanics Module
+ *  
+ * This module handles all combat-related game mechanics including:
+ * 1. Enemy movement and behavior
+ * 2. Tower attacks and targeting
+ * 3. Projectile and particle systems
+ * 4. Status effects and special abilities
+ * 
+ * @module mechanics
+ */
+
+/**
+ * Updates all enemy states including movement, health, and status effects
+ * Implements core game loop mechanics for enemy behavior
+ * 
+ * Key features:
+ * - Path following
+ * - Health management
+ * - Status effect processing
+ * - Collision detection
+ * 
+ * @returns {void}
+ */
+function updateEnemies() {
+    const cellSize = canvas.width / 20;
+    
+    gameState.enemies = gameState.enemies.filter(enemy => {
+        // Initialize progress tracking for new enemies
+        if (typeof enemy.progress === 'undefined') {
+            enemy.progress = 0;
+        }
+        
+        // Update movement progress
+        enemy.progress += enemy.speed * 0.001;
+        
+        // Handle path completion
+        if (enemy.progress >= 1) {
+            gameState.enemiesEscaped++;
+            // Deduct currency when enemy escapes
+            gameState.currency = Math.max(0, gameState.currency - 10);
+            // Check for game over
+            if (gameState.currency &lt;= 0) {
+                handleGameOver();
+            }
+            return false;
+        }
+        
+        // Projectile collision detection and damage application
+        const hitByProjectile = gameState.projectiles.some(projectile => {
+            // Calculate current projectile position based on lifetime
+            const age = performance.now() - projectile.createdAt;
+            const progress = Math.min(age / projectile.lifetime, 1);
+            
+            const currentX = projectile.startPos.x + (projectile.targetPos.x - projectile.startPos.x) * progress;
+            const currentY = projectile.startPos.y + (projectile.targetPos.y - projectile.startPos.y) * progress;
+            
+            const distance = Math.hypot(
+                enemy.position.x - currentX,
+                enemy.position.y - currentY
+            );
+            
+            if (distance &lt; 0.5) {
+                // Apply damage when projectile hits
+                enemy.currentHealth -= projectile.damage;
+                return true;
+            }
+            return false;
+        });
+        
+        if (enemy.currentHealth &lt;= 0) {
+            gameState.awardEnemyDestroyed();
+            // Create death particles
+            gameState.particles.push(...createDeathParticles(enemy, cellSize));
+            return false;
+        }
+        
+        // Update position based on path progress
+        const pathPosition = getPathPosition(enemy.progress, gameState.path);
+        enemy.position.x = pathPosition.x;
+        enemy.position.y = pathPosition.y;
+        
+        // Process slow effect expiration
+        if (enemy.slowed &amp;&amp; performance.now() > enemy.slowExpiry) {
+            enemy.slowed = false;
+            enemy.slowStacks = 0;
+            enemy.currentSlowAmount = 0;
+            enemy.speed = enemy.originalSpeed;
+        }
+        
+        // Visual feedback for slowed status
+        if (enemy.slowed &amp;&amp; Math.random() &lt; 0.2 + (enemy.slowStacks * 0.05)) {
+            gameState.particles.push(createSlimeTrail(enemy, cellSize));
+        }
+        
+        return true;
+    });
+    
+    // Remove projectiles that hit enemies
+    gameState.projectiles = gameState.projectiles.filter(projectile => {
+        const age = performance.now() - projectile.createdAt;
+        if (age >= projectile.lifetime) return false;
+        
+        const progress = age / projectile.lifetime;
+        const currentX = projectile.startPos.x + (projectile.targetPos.x - projectile.startPos.x) * progress;
+        const currentY = projectile.startPos.y + (projectile.targetPos.y - projectile.startPos.y) * progress;
+        
+        const hitEnemy = gameState.enemies.some(enemy => {
+            const distance = Math.hypot(
+                enemy.position.x - currentX,
+                enemy.position.y - currentY
+            );
+            return distance &lt; 0.5;
+        });
+        
+        return !hitEnemy;
+    });
+}
+
+/**
+ * Updates particle effects with time-based animation
+ * Implements particle system lifecycle management
+ * 
+ * @param {Array&lt;Object>} particles - Array of particle objects
+ * @param {number} timestamp - Current game timestamp
+ * @param {number} deltaTime - Time elapsed since last frame
+ * @returns {Array&lt;Object>} Updated particles array
+ */
+function updateParticles(particles, timestamp, deltaTime) {
+    return particles.filter(particle => {
+        const age = timestamp - particle.createdAt;
+        if (age > particle.lifetime) return false;
+        
+        if (particle.velocity) {
+            particle.position.x += particle.velocity.x * deltaTime;
+            particle.position.y += particle.velocity.y * deltaTime;
+        }
+        
+        return true;
+    });
+}
+
+/**
+ * Creates death effect particles for defeated entities
+ * Implements visual feedback system
+ * 
+ * @param {Object} target - The defeated entity
+ * @param {number} cellSize - Size of grid cell for scaling
+ * @returns {Array&lt;Object>} Array of particle objects
+ */
+function createDeathParticles(target, cellSize) {
+    const particles = [];
+    const centerX = (target.position.x + 0.5) * cellSize;
+    const centerY = (target.position.y + 0.5) * cellSize;
+    
+    const particleCount = 8 + Math.floor(Math.random() * 8);
+    for (let i = 0; i &lt; particleCount; i++) {
+        const baseAngle = (Math.PI * 2 * i) / particleCount;
+        const randomAngle = baseAngle + (Math.random() - 0.5) * 1.5;
+        const speedMultiplier = 0.7 + Math.random() * 0.6;
+        const startOffset = Math.random() * 5;
+        
+        particles.push(createParticle(
+            {
+                ...ParticleTypes.DEATH_PARTICLE,
+                speed: ParticleTypes.DEATH_PARTICLE.speed * speedMultiplier,
+                lifetime: ParticleTypes.DEATH_PARTICLE.lifetime * (0.8 + Math.random() * 0.4)
+            },
+            {
+                x: centerX + Math.cos(randomAngle) * startOffset,
+                y: centerY + Math.sin(randomAngle) * startOffset
+            },
+            randomAngle
+        ));
+    }
+    return particles;
+}
+
+/**
+ * Processes tower attacks and targeting
+ * Implements combat mechanics and special abilities
+ * 
+ * @param {Array&lt;Object>} towers - Array of tower objects
+ * @param {Array&lt;Object>} enemies - Array of enemy objects
+ * @param {Array&lt;Object>} projectiles - Array of projectile objects
+ * @param {Array&lt;Object>} particles - Array of particle objects
+ * @param {number} timestamp - Current game timestamp
+ * @param {number} cellSize - Size of grid cell for scaling
+ */
+function processTowerAttacks(towers, enemies, projectiles, particles, timestamp, cellSize) {
+    towers.forEach(tower => {
+        if (timestamp - tower.lastAttackTime > 1000 / tower.attackSpeed) {
+            const enemiesInRange = findEnemiesInRange(tower, enemies);
+            
+            if (enemiesInRange.length > 0 &amp;&amp; tower.ammo > 0) {
+                const target = enemiesInRange[0];
+                handleTowerAttack(tower, target, projectiles, particles, timestamp, cellSize);
+            }
+        }
+    });
+}
+
+function findEnemiesInRange(tower, enemies) {
+    return enemies.filter(enemy => {
+        const dx = enemy.position.x - tower.position.x;
+        const dy = enemy.position.y - tower.position.y;
+        return Math.sqrt(dx * dx + dy * dy) &lt;= tower.range;
+    });
+}
+
+function createAOEExplosion(position, cellSize) {
+    return {
+        position: {
+            x: (position.x + 0.5) * cellSize,
+            y: (position.y + 0.5) * cellSize
+        },
+        createdAt: performance.now(),
+        type: 'AOE_EXPLOSION',
+        ...ParticleTypes.AOE_EXPLOSION
+    };
+}
+
+function createSlimeTrail(enemy, cellSize) {
+    return {
+        position: {
+            x: (enemy.position.x + 0.5) * cellSize,
+            y: (enemy.position.y + 0.5) * cellSize
+        },
+        createdAt: performance.now(),
+        type: 'SLIME_TRAIL',
+        ...ParticleTypes.SLIME_TRAIL
+    };
+}
+
+/**
+ * Handles individual tower attack logic including special effects
+ * Implements tower ability system
+ * 
+ * @param {Object} tower - Attacking tower
+ * @param {Object} target - Target enemy
+ * @param {Array&lt;Object>} projectiles - Projectile array
+ * @param {Array&lt;Object>} particles - Particle array
+ * @param {number} timestamp - Current game timestamp
+ * @param {number} cellSize - Grid cell size
+ */
+function handleTowerAttack(tower, target, projectiles, particles, timestamp, cellSize) {
+    // Only attack if we have ammo
+    if (tower.ammo &lt;= 0) return;
+    
+    // Decrease ammo (already checked it's > 0)
+    tower.ammo--;
+    
+    // Create projectile
+    projectiles.push({
+        startPos: { ...tower.position },
+        targetPos: { ...target.position },
+        createdAt: timestamp,
+        lifetime: 300,
+        towerType: tower.type,
+        damage: tower.damage
+    });
+    
+    // Process special abilities
+    if (tower.special === 'slow') {
+        handleSlowEffect(target, tower, timestamp, particles, cellSize);
+    } else if (tower.special === 'aoe') {
+        handleAOEEffect(target, tower, gameState.enemies, particles, cellSize);
+    }
+    
+    tower.lastAttackTime = timestamp;
+}
+
+/**
+ * Processes enemy attack behaviors and targeting
+ * Implements enemy combat AI
+ * 
+ * @param {Array&lt;Object>} enemies - Array of enemy objects
+ * @param {Array&lt;Object>} towers - Array of tower objects
+ * @param {Array&lt;Object>} particles - Particle effect array
+ * @param {number} timestamp - Current game timestamp
+ * @param {number} cellSize - Grid cell size
+ */
+function processEnemyAttacks(enemies, towers, particles, timestamp, cellSize) {
+    enemies.forEach(enemy => {
+        if (!EnemyTypes[enemy.type].isRanged) return;
+        
+        if (timestamp - enemy.lastAttackTime > 1000 / EnemyTypes[enemy.type].attackSpeed) {
+            const towersInRange = findTowersInRange(enemy, towers);
+            
+            if (towersInRange.length > 0) {
+                const target = towersInRange[0];
+                handleEnemyAttack(enemy, target, particles, timestamp, cellSize);
+            }
+        }
+    });
+}
+
+/**
+ * Finds towers within enemy attack range
+ * Implements targeting system for enemies
+ * 
+ * @param {Object} enemy - Enemy doing the targeting
+ * @param {Array&lt;Object>} towers - Array of potential tower targets
+ * @returns {Array&lt;Object>} Array of towers in range
+ */
+function findTowersInRange(enemy, towers) {
+    return towers.filter(tower => {
+        const dx = tower.position.x - enemy.position.x;
+        const dy = tower.position.y - enemy.position.y;
+        return Math.sqrt(dx * dx + dy * dy) &lt;= EnemyTypes[enemy.type].attackRange;
+    });
+}
+
+/**
+ * Handles enemy attack execution and effects
+ * Implements enemy combat mechanics
+ * 
+ * @param {Object} enemy - Attacking enemy
+ * @param {Object} tower - Target tower
+ * @param {Array&lt;Object>} particles - Particle array for effects
+ * @param {number} timestamp - Current game timestamp
+ * @param {number} cellSize - Grid cell size
+ */
+function handleEnemyAttack(enemy, tower, particles, timestamp, cellSize) {
+    // Create projectile effect
+    particles.push(createParticle(
+        {
+            ...ParticleTypes.PROJECTILE,
+            color: '#8e44ad80', // Semi-transparent purple
+            lifetime: 500
+        },
+        {
+            x: (enemy.position.x + 0.5) * cellSize,
+            y: (enemy.position.y + 0.5) * cellSize
+        },
+        Math.atan2(
+            tower.position.y - enemy.position.y,
+            tower.position.x - enemy.position.x
+        )
+    ));
+    
+    // Apply damage and update tower state
+    tower.currentHealth -= enemy.damage;
+    enemy.lastAttackTime = timestamp;
+    
+    // Dynamic damage reduction based on tower health
+    tower.damage = TowerTypes[tower.type].damage * (tower.currentHealth / tower.maxHealth);
+}
+
+/**
+ * Handles slow effect application and stacking
+ * Implements status effect system
+ * 
+ * @param {Object} target - Enemy to apply slow to
+ * @param {Object} tower - Tower applying the effect
+ * @param {number} timestamp - Current game timestamp
+ * @param {Array&lt;Object>} particles - Particle array for effects
+ * @param {number} cellSize - Grid cell size
+ */
+function handleSlowEffect(target, tower, timestamp, particles, cellSize) {
+    // Initialize slow effect tracking
+    if (!target.slowStacks) {
+        target.slowStacks = 0;
+    }
+    
+    const maxStacks = 5;  // Maximum 5 stacks
+    if (target.slowStacks &lt; maxStacks) {
+        target.slowStacks++;
+        // Each stack slows by an additional 10% (multiplicative)
+        const newSlowAmount = 1 - Math.pow(0.9, target.slowStacks);
+        
+        // Only update if new slow is stronger
+        if (!target.slowed || newSlowAmount > target.currentSlowAmount) {
+            const originalSpeed = target.originalSpeed || target.speed;
+            target.originalSpeed = originalSpeed;
+            target.speed = originalSpeed * (1 - newSlowAmount);
+            target.currentSlowAmount = newSlowAmount;
+            target.slowed = true;
+        }
+        
+        // Visual feedback particles
+        for (let i = 0; i &lt; 4 + target.slowStacks; i++) {
+            particles.push(createSlimeTrail(target, cellSize));
+        }
+    }
+    
+    // Refresh effect duration
+    target.slowExpiry = timestamp + 2000;  // 2 second duration
+}
+
+/**
+ * Handles AOE (Area of Effect) damage and visual effects
+ * Implements area damage system
+ * 
+ * @param {Object} target - Primary target
+ * @param {Object} tower - Tower dealing AOE damage
+ * @param {Array&lt;Object>} enemies - All enemies for AOE calculation
+ * @param {Array&lt;Object>} particles - Particle array for effects
+ * @param {number} cellSize - Grid cell size
+ */
+function handleAOEEffect(target, tower, enemies, particles, cellSize) {
+    // Find all enemies in AOE radius
+    const enemiesInAOE = enemies.filter(enemy => {
+        const dx = enemy.position.x - target.position.x;
+        const dy = enemy.position.y - target.position.y;
+        return Math.sqrt(dx * dx + dy * dy) &lt;= tower.aoeRadius;
+    });
+    
+    // Create explosion effect
+    particles.push(createAOEExplosion(target.position, cellSize));
+    
+    // Apply AOE damage
+    enemiesInAOE.forEach(enemy => {
+        enemy.currentHealth -= tower.damage;
+        if (enemy.currentHealth &lt;= 0) {
+            particles.push(...createDeathParticles(enemy, cellSize));
+        }
+    });
+}
+
+// Update createEnemy to track original speed
+function createEnemy(startPosition) {
+    const enemy = {
+        // ... existing enemy properties ...
+        slowStacks: 0,
+        currentSlowAmount: 0
+    };
+    enemy.originalSpeed = enemy.speed;  // Store original speed
+    return enemy;
+} </code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-game.html">game</a></li><li><a href="module-gameState.html">gameState</a></li><li><a href="module-mechanics.html">mechanics</a></li><li><a href="module-path.html">path</a></li><li><a href="module-renderer.html">renderer</a></li><li><a href="module-uiHandlers.html">uiHandlers</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.3</a> on Mon Feb 17 2025 09:19:19 GMT-0500 (Eastern Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
diff --git a/html/tower/docs/module-game.html b/html/tower/docs/module-game.html
new file mode 100644
index 0000000..a5bf480
--- /dev/null
+++ b/html/tower/docs/module-game.html
@@ -0,0 +1,1553 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Module: game</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Module: game</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        
+            
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+            <div class="description">Main game entry point
+Initializes the game state and starts the game loop</div>
+        
+
+        
+            
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="game.js.html">game.js</a>, <a href="game.js.html#line4">line 4</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id="~canvas"><span class="type-signature">(inner, constant) </span>canvas<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    Canvas elements for rendering the game
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="game.js.html">game.js</a>, <a href="game.js.html#line12">line 12</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="~draggedTowerType"><span class="type-signature">(inner) </span>draggedTowerType<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    Drag and drop state tracking
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="game.js.html">game.js</a>, <a href="game.js.html#line22">line 22</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="~lastTimestamp"><span class="type-signature">(inner) </span>lastTimestamp<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    Game timing variables
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="game.js.html">game.js</a>, <a href="game.js.html#line16">line 16</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="~gameLoop"><span class="type-signature">(inner) </span>gameLoop<span class="signature">(timestamp)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Main game loop using requestAnimationFrame
+This is the heart of the game, running approximately 60 times per second
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>timestamp</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Current time in milliseconds, provided by requestAnimationFrame
+
+Key concepts:
+- RequestAnimationFrame for smooth animation
+- Delta time for consistent motion regardless of frame rate
+- Game state management</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="game.js.html">game.js</a>, <a href="game.js.html#line36">line 36</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="~handleCombatPhase"><span class="type-signature">(inner) </span>handleCombatPhase<span class="signature">(timestamp, deltaTime)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Handles all combat phase updates including enemy movement, attacks, and collisions
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>timestamp</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Current game time in milliseconds</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>deltaTime</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Time elapsed since last frame
+
+Key concepts:
+- Game state updates
+- Entity management (enemies, towers, projectiles)
+- Particle effects
+- Combat mechanics</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="game.js.html">game.js</a>, <a href="game.js.html#line69">line 69</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="~handleGameOver"><span class="type-signature">(inner) </span>handleGameOver<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Handles game over state and prompts for restart
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="game.js.html">game.js</a>, <a href="game.js.html#line440">line 440</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="~handleLevelComplete"><span class="type-signature">(inner) </span>handleLevelComplete<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Handles the transition between levels
+Shows completion message and sets up next level
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="game.js.html">game.js</a>, <a href="game.js.html#line325">line 325</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="~initializeEventListeners"><span class="type-signature">(inner) </span>initializeEventListeners<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Sets up all event listeners for user interaction
+
+Key concepts:
+- Event-driven programming
+- HTML5 Drag and Drop API
+- DOM manipulation
+- Method decoration (towers.push)
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="game.js.html">game.js</a>, <a href="game.js.html#line242">line 242</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="~populateTowerPalette"><span class="type-signature">(inner) </span>populateTowerPalette<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Dynamically populates the tower palette based on TowerTypes
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="game.js.html">game.js</a>, <a href="game.js.html#line405">line 405</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="~renderGame"><span class="type-signature">(inner) </span>renderGame<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Renders all game elements to the canvas using a layered approach.
+This function demonstrates several key game development patterns:
+
+1. Canvas State Management:
+   - Uses save()/restore() to isolate rendering contexts
+   - Resets transform matrix to prevent state leaks
+   - Maintains clean state between rendering phases
+
+2. Layered Rendering Pattern:
+   - Renders in specific order (background → entities → UI)
+   - Each layer builds on top of previous layers
+   - Separates rendering concerns for easier maintenance
+
+3. Separation of Concerns:
+   - Each render function handles one specific type of game element
+   - UI rendering is isolated from game element rendering
+   - Clear boundaries between different rendering responsibilities
+
+The rendering order is important:
+1. Grid (background)
+2. Particles (effects under entities)
+3. Projectiles (dynamic game elements)
+4. Towers (static game entities)
+5. Enemies (moving game entities)
+6. UI (top layer)
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="game.js.html">game.js</a>, <a href="game.js.html#line154">line 154</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="~restartGame"><span class="type-signature">(inner) </span>restartGame<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Restarts the game from level 1 with fresh state
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="game.js.html">game.js</a>, <a href="game.js.html#line465">line 465</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="~spawnEnemies"><span class="type-signature">(inner) </span>spawnEnemies<span class="signature">(timestamp)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Spawns new enemies at regular intervals during combat
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>timestamp</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Current game time in milliseconds
+
+Key concepts:
+- Time-based game events
+- Enemy creation and management
+- Game balance through spawn timing</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="game.js.html">game.js</a>, <a href="game.js.html#line119">line 119</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="~startCombat"><span class="type-signature">(inner) </span>startCombat<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Transitions the game from placement to combat phase.
+Demonstrates state machine pattern commonly used in games.
+
+Side effects:
+- Updates game phase
+- Disables UI elements
+- Updates visual feedback
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="game.js.html">game.js</a>, <a href="game.js.html#line216">line 216</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="~startNextLevel"><span class="type-signature">(inner) </span>startNextLevel<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Sets up the next level
+Increases difficulty and resets the game state while preserving currency
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="game.js.html">game.js</a>, <a href="game.js.html#line365">line 365</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-game.html">game</a></li><li><a href="module-gameState.html">gameState</a></li><li><a href="module-mechanics.html">mechanics</a></li><li><a href="module-path.html">path</a></li><li><a href="module-renderer.html">renderer</a></li><li><a href="module-uiHandlers.html">uiHandlers</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.3</a> on Mon Feb 17 2025 09:19:19 GMT-0500 (Eastern Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/html/tower/docs/module-gameState.html b/html/tower/docs/module-gameState.html
new file mode 100644
index 0000000..84feb7b
--- /dev/null
+++ b/html/tower/docs/module-gameState.html
@@ -0,0 +1,1407 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Module: gameState</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Module: gameState</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        
+            
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+            <div class="description">Game State Module
+
+This module defines the game state and game phases</div>
+        
+
+        
+            
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="gameState.js.html">gameState.js</a>, <a href="gameState.js.html#line1">line 1</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id="~EnemyTypes"><span class="type-signature">(inner, constant) </span>EnemyTypes<span class="type-signature"> :string</span></h4>
+
+
+
+
+<div class="description">
+    Enemy types
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">string</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+    <h5 class="subsection-title">Properties:</h5>
+
+    
+
+<table class="props">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>BASIC</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last"></td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>RANGED</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last"></td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="gameState.js.html">gameState.js</a>, <a href="gameState.js.html#line117">line 117</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="~GamePhase"><span class="type-signature">(inner, constant) </span>GamePhase<span class="type-signature"> :string</span></h4>
+
+
+
+
+<div class="description">
+    Game phases
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">string</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+    <h5 class="subsection-title">Properties:</h5>
+
+    
+
+<table class="props">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>PLACEMENT</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last"></td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>COMBAT</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last"></td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="gameState.js.html">gameState.js</a>, <a href="gameState.js.html#line16">line 16</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="~ParticleTypes"><span class="type-signature">(inner, constant) </span>ParticleTypes<span class="type-signature"> :string</span></h4>
+
+
+
+
+<div class="description">
+    Particle types
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">string</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+    <h5 class="subsection-title">Properties:</h5>
+
+    
+
+<table class="props">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>DEATH_PARTICLE</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last"></td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>PROJECTILE</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last"></td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>AOE_EXPLOSION</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last"></td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>SLIME_TRAIL</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last"></td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="gameState.js.html">gameState.js</a>, <a href="gameState.js.html#line85">line 85</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="~TowerTypes"><span class="type-signature">(inner, constant) </span>TowerTypes<span class="type-signature"> :string</span></h4>
+
+
+
+
+<div class="description">
+    Tower types
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">string</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+    <h5 class="subsection-title">Properties:</h5>
+
+    
+
+<table class="props">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>BASIC</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last"></td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>RAPID</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last"></td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>SNIPER</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last"></td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>GOOP</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last"></td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>AOE</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last"></td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="gameState.js.html">gameState.js</a>, <a href="gameState.js.html#line27">line 27</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="~gameState"><span class="type-signature">(inner, constant) </span>gameState<span class="type-signature"> :Object</span></h4>
+
+
+
+
+<div class="description">
+    Game state
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Object</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="gameState.js.html">gameState.js</a>, <a href="gameState.js.html#line213">line 213</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="~createEnemy"><span class="type-signature">(inner) </span>createEnemy<span class="signature">(startPosition)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Creates an enemy
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>startPosition</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Object</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Starting position of the enemy</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="gameState.js.html">gameState.js</a>, <a href="gameState.js.html#line160">line 160</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="~createParticle"><span class="type-signature">(inner) </span>createParticle<span class="signature">(type, position)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Creates a particle
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>type</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Particle type</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>position</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Object</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Position of the particle</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="gameState.js.html">gameState.js</a>, <a href="gameState.js.html#line191">line 191</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="~createTower"><span class="type-signature">(inner) </span>createTower<span class="signature">(type, position)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Creates a tower
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>type</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Tower type</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>position</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Object</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Position of the tower</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="gameState.js.html">gameState.js</a>, <a href="gameState.js.html#line142">line 142</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-game.html">game</a></li><li><a href="module-gameState.html">gameState</a></li><li><a href="module-mechanics.html">mechanics</a></li><li><a href="module-path.html">path</a></li><li><a href="module-renderer.html">renderer</a></li><li><a href="module-uiHandlers.html">uiHandlers</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.3</a> on Mon Feb 17 2025 09:19:19 GMT-0500 (Eastern Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/html/tower/docs/module-mechanics.html b/html/tower/docs/module-mechanics.html
new file mode 100644
index 0000000..acfb5c7
--- /dev/null
+++ b/html/tower/docs/module-mechanics.html
@@ -0,0 +1,2286 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Module: mechanics</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Module: mechanics</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        
+            
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+            <div class="description">Combat Mechanics Module
+ 
+This module handles all combat-related game mechanics including:
+1. Enemy movement and behavior
+2. Tower attacks and targeting
+3. Projectile and particle systems
+4. Status effects and special abilities</div>
+        
+
+        
+            
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="mechanics.js.html">mechanics.js</a>, <a href="mechanics.js.html#line1">line 1</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="~createDeathParticles"><span class="type-signature">(inner) </span>createDeathParticles<span class="signature">(target, cellSize)</span><span class="type-signature"> &rarr; {Array.&lt;Object>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Creates death effect particles for defeated entities
+Implements visual feedback system
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>target</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Object</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The defeated entity</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>cellSize</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Size of grid cell for scaling</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="mechanics.js.html">mechanics.js</a>, <a href="mechanics.js.html#line151">line 151</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    Array of particle objects
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Array.&lt;Object></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="~findTowersInRange"><span class="type-signature">(inner) </span>findTowersInRange<span class="signature">(enemy, towers)</span><span class="type-signature"> &rarr; {Array.&lt;Object>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Finds towers within enemy attack range
+Implements targeting system for enemies
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>enemy</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Object</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Enemy doing the targeting</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>towers</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Array.&lt;Object></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Array of potential tower targets</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="mechanics.js.html">mechanics.js</a>, <a href="mechanics.js.html#line306">line 306</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    Array of towers in range
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Array.&lt;Object></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="~handleAOEEffect"><span class="type-signature">(inner) </span>handleAOEEffect<span class="signature">(target, tower, enemies, particles, cellSize)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Handles AOE (Area of Effect) damage and visual effects
+Implements area damage system
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>target</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Object</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Primary target</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>tower</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Object</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Tower dealing AOE damage</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>enemies</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Array.&lt;Object></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">All enemies for AOE calculation</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>particles</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Array.&lt;Object></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Particle array for effects</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>cellSize</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Grid cell size</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="mechanics.js.html">mechanics.js</a>, <a href="mechanics.js.html#line401">line 401</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="~handleEnemyAttack"><span class="type-signature">(inner) </span>handleEnemyAttack<span class="signature">(enemy, tower, particles, timestamp, cellSize)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Handles enemy attack execution and effects
+Implements enemy combat mechanics
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>enemy</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Object</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Attacking enemy</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>tower</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Object</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Target tower</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>particles</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Array.&lt;Object></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Particle array for effects</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>timestamp</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Current game timestamp</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>cellSize</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Grid cell size</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="mechanics.js.html">mechanics.js</a>, <a href="mechanics.js.html#line324">line 324</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="~handleSlowEffect"><span class="type-signature">(inner) </span>handleSlowEffect<span class="signature">(target, tower, timestamp, particles, cellSize)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Handles slow effect application and stacking
+Implements status effect system
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>target</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Object</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Enemy to apply slow to</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>tower</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Object</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Tower applying the effect</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>timestamp</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Current game timestamp</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>particles</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Array.&lt;Object></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Particle array for effects</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>cellSize</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Grid cell size</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="mechanics.js.html">mechanics.js</a>, <a href="mechanics.js.html#line360">line 360</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="~handleTowerAttack"><span class="type-signature">(inner) </span>handleTowerAttack<span class="signature">(tower, target, projectiles, particles, timestamp, cellSize)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Handles individual tower attack logic including special effects
+Implements tower ability system
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>tower</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Object</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Attacking tower</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>target</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Object</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Target enemy</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>projectiles</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Array.&lt;Object></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Projectile array</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>particles</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Array.&lt;Object></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Particle array</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>timestamp</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Current game timestamp</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>cellSize</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Grid cell size</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="mechanics.js.html">mechanics.js</a>, <a href="mechanics.js.html#line246">line 246</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="~processEnemyAttacks"><span class="type-signature">(inner) </span>processEnemyAttacks<span class="signature">(enemies, towers, particles, timestamp, cellSize)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Processes enemy attack behaviors and targeting
+Implements enemy combat AI
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>enemies</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Array.&lt;Object></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Array of enemy objects</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>towers</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Array.&lt;Object></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Array of tower objects</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>particles</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Array.&lt;Object></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Particle effect array</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>timestamp</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Current game timestamp</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>cellSize</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Grid cell size</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="mechanics.js.html">mechanics.js</a>, <a href="mechanics.js.html#line283">line 283</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="~processTowerAttacks"><span class="type-signature">(inner) </span>processTowerAttacks<span class="signature">(towers, enemies, projectiles, particles, timestamp, cellSize)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Processes tower attacks and targeting
+Implements combat mechanics and special abilities
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>towers</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Array.&lt;Object></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Array of tower objects</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>enemies</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Array.&lt;Object></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Array of enemy objects</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>projectiles</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Array.&lt;Object></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Array of projectile objects</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>particles</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Array.&lt;Object></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Array of particle objects</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>timestamp</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Current game timestamp</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>cellSize</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Size of grid cell for scaling</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="mechanics.js.html">mechanics.js</a>, <a href="mechanics.js.html#line190">line 190</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="~updateEnemies"><span class="type-signature">(inner) </span>updateEnemies<span class="signature">()</span><span class="type-signature"> &rarr; {void}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Updates all enemy states including movement, health, and status effects
+Implements core game loop mechanics for enemy behavior
+
+Key features:
+- Path following
+- Health management
+- Status effect processing
+- Collision detection
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="mechanics.js.html">mechanics.js</a>, <a href="mechanics.js.html#line25">line 25</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">void</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="~updateParticles"><span class="type-signature">(inner) </span>updateParticles<span class="signature">(particles, timestamp, deltaTime)</span><span class="type-signature"> &rarr; {Array.&lt;Object>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Updates particle effects with time-based animation
+Implements particle system lifecycle management
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>particles</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Array.&lt;Object></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Array of particle objects</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>timestamp</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Current game timestamp</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>deltaTime</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Time elapsed since last frame</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="mechanics.js.html">mechanics.js</a>, <a href="mechanics.js.html#line129">line 129</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    Updated particles array
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Array.&lt;Object></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+    
+
+    
+
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-game.html">game</a></li><li><a href="module-gameState.html">gameState</a></li><li><a href="module-mechanics.html">mechanics</a></li><li><a href="module-path.html">path</a></li><li><a href="module-renderer.html">renderer</a></li><li><a href="module-uiHandlers.html">uiHandlers</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.3</a> on Mon Feb 17 2025 09:19:19 GMT-0500 (Eastern Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/html/tower/docs/module-path.html b/html/tower/docs/module-path.html
new file mode 100644
index 0000000..42b3180
--- /dev/null
+++ b/html/tower/docs/module-path.html
@@ -0,0 +1,531 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Module: path</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Module: path</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        
+            
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+            <div class="description">Path Generation Module
+
+This module demonstrates several advanced game development concepts:
+1. Procedural Content Generation (PCG)
+2. Pathfinding algorithms
+3. Constraint-based generation</div>
+        
+
+        
+            
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="path.js.html">path.js</a>, <a href="path.js.html#line1">line 1</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="~generatePath"><span class="type-signature">(inner) </span>generatePath<span class="signature">(grid)</span><span class="type-signature"> &rarr; {Promise.&lt;Array.&lt;{x: number, y: number}>>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Generates a valid path through the game grid using a modified depth-first search.
+This algorithm ensures:
+- Path always moves from left to right
+- No diagonal movements
+- No path segments touch each other (except at turns)
+- Path is always completable
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>grid</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Array.&lt;Array.&lt;string>></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">2D array representing the game grid</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="path.js.html">path.js</a>, <a href="path.js.html#line28">line 28</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    Promise resolving to array of path coordinates
+
+Implementation uses:
+- Backtracking algorithm pattern
+- Constraint satisfaction
+- Random selection for variety
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Promise.&lt;Array.&lt;{x: number, y: number}>></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="~getPathPosition"><span class="type-signature">(inner) </span>getPathPosition<span class="signature">(progress, path)</span><span class="type-signature"> &rarr; {Object}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Calculates a position along the path based on a progress value
+Implements smooth entity movement along path segments
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>progress</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Progress along path (0-1)</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>path</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Array.&lt;{x: number, y: number}></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Array of path coordinates</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="path.js.html">path.js</a>, <a href="path.js.html#line140">line 140</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    Interpolated position along path
+
+Uses:
+- Linear interpolation (lerp)
+- Path segment traversal
+- Normalized progress tracking
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Object</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+    
+
+    
+
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-game.html">game</a></li><li><a href="module-gameState.html">gameState</a></li><li><a href="module-mechanics.html">mechanics</a></li><li><a href="module-path.html">path</a></li><li><a href="module-renderer.html">renderer</a></li><li><a href="module-uiHandlers.html">uiHandlers</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.3</a> on Mon Feb 17 2025 09:19:19 GMT-0500 (Eastern Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/html/tower/docs/module-renderer.html b/html/tower/docs/module-renderer.html
new file mode 100644
index 0000000..bed9852
--- /dev/null
+++ b/html/tower/docs/module-renderer.html
@@ -0,0 +1,659 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Module: renderer</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Module: renderer</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        
+            
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+            <div class="description">Rendering Module
+
+This module handles all game rendering operations using HTML5 Canvas.
+Demonstrates key game development patterns:
+1. Layer-based rendering
+2. Particle systems
+3. Visual state feedback
+4. Canvas state management</div>
+        
+
+        
+            
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="renderer.js.html">renderer.js</a>, <a href="renderer.js.html#line1">line 1</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="~renderEnemies"><span class="type-signature">(inner) </span>renderEnemies<span class="signature">(ctx, enemies)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Renders all enemies with health indicators and effects
+Implements visual state representation
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>ctx</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">CanvasRenderingContext2D</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Canvas rendering context</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>enemies</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Array.&lt;Object></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Array of enemy objects</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="renderer.js.html">renderer.js</a>, <a href="renderer.js.html#line88">line 88</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="~renderGrid"><span class="type-signature">(inner) </span>renderGrid<span class="signature">(ctx, grid)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Renders the game grid with path and hover previews
+Implements visual feedback for player actions
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>ctx</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">CanvasRenderingContext2D</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Canvas rendering context</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>grid</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Array.&lt;Array.&lt;string>></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Game grid state</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="renderer.js.html">renderer.js</a>, <a href="renderer.js.html#line21">line 21</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="~renderUI"><span class="type-signature">(inner) </span>renderUI<span class="signature">(ctx, gameState)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Renders game UI elements with clean state management
+Implements heads-up display (HUD) pattern
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>ctx</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">CanvasRenderingContext2D</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Canvas rendering context</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>gameState</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Object</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Current game state</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="renderer.js.html">renderer.js</a>, <a href="renderer.js.html#line142">line 142</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-game.html">game</a></li><li><a href="module-gameState.html">gameState</a></li><li><a href="module-mechanics.html">mechanics</a></li><li><a href="module-path.html">path</a></li><li><a href="module-renderer.html">renderer</a></li><li><a href="module-uiHandlers.html">uiHandlers</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.3</a> on Mon Feb 17 2025 09:19:19 GMT-0500 (Eastern Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/html/tower/docs/module-uiHandlers.html b/html/tower/docs/module-uiHandlers.html
new file mode 100644
index 0000000..fc3fdc4
--- /dev/null
+++ b/html/tower/docs/module-uiHandlers.html
@@ -0,0 +1,543 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Module: uiHandlers</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Module: uiHandlers</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        
+            
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+            <div class="description">UI Handlers Module
+
+This module manages user interactions and UI state.
+Implements:
+1. Drag and Drop system
+2. Event handling
+3. UI state management
+4. Input validation</div>
+        
+
+        
+            
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="uiHandlers.js.html">uiHandlers.js</a>, <a href="uiHandlers.js.html#line1">line 1</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="~initializeDragAndDrop"><span class="type-signature">(inner) </span>initializeDragAndDrop<span class="signature">(canvas, gameState)</span><span class="type-signature"> &rarr; {Object}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Initializes drag and drop functionality for tower placement
+Implements HTML5 Drag and Drop API
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>canvas</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">HTMLCanvasElement</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Game canvas element</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>gameState</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Object</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Current game state</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="uiHandlers.js.html">uiHandlers.js</a>, <a href="uiHandlers.js.html#line22">line 22</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    Drag handlers and state information
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Object</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="~placeTower"><span class="type-signature">(inner) </span>placeTower<span class="signature">(gameState, towerType, position)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Places a tower in the game grid
+Implements tower placement validation and state updates
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>gameState</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Object</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Current game state</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>towerType</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">string</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Type of tower to place</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>position</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Object</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Grid position for placement</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="uiHandlers.js.html">uiHandlers.js</a>, <a href="uiHandlers.js.html#line86">line 86</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-game.html">game</a></li><li><a href="module-gameState.html">gameState</a></li><li><a href="module-mechanics.html">mechanics</a></li><li><a href="module-path.html">path</a></li><li><a href="module-renderer.html">renderer</a></li><li><a href="module-uiHandlers.html">uiHandlers</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.3</a> on Mon Feb 17 2025 09:19:19 GMT-0500 (Eastern Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/html/tower/docs/path.js.html b/html/tower/docs/path.js.html
new file mode 100644
index 0000000..ff45ba3
--- /dev/null
+++ b/html/tower/docs/path.js.html
@@ -0,0 +1,226 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: path.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: path.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/**
+ * Path Generation Module
+ * 
+ * This module demonstrates several advanced game development concepts:
+ * 1. Procedural Content Generation (PCG)
+ * 2. Pathfinding algorithms
+ * 3. Constraint-based generation
+ * 
+ * @module path
+ */
+
+/**
+ * Generates a valid path through the game grid using a modified depth-first search.
+ * This algorithm ensures:
+ * - Path always moves from left to right
+ * - No diagonal movements
+ * - No path segments touch each other (except at turns)
+ * - Path is always completable
+ * 
+ * @param {Array&lt;Array&lt;string>>} grid - 2D array representing the game grid
+ * @returns {Promise&lt;Array&lt;{x: number, y: number}>>} Promise resolving to array of path coordinates
+ * 
+ * Implementation uses:
+ * - Backtracking algorithm pattern
+ * - Constraint satisfaction
+ * - Random selection for variety
+ */
+function generatePath(grid) {
+    const width = grid[0].length;
+    const height = grid.length;
+    
+    // Initialize with random start point on left edge
+    const startY = Math.floor(Math.random() * height);
+    let currentPos = { x: 0, y: startY };
+    
+    const path = [currentPos];
+    grid[startY][0] = 'path';
+    
+    /**
+     * Determines valid moves from current position based on game rules
+     * Uses constraint checking to ensure path validity
+     * 
+     * @param {Object} pos - Current position {x, y}
+     * @returns {Array&lt;{x: number, y: number}>} Array of valid next positions
+     */
+    function getValidMoves(pos) {
+        const moves = [];
+        // Prioritize right movement for path progression
+        const directions = [
+            { x: 1, y: 0 },  // right
+            { x: 0, y: -1 }, // up
+            { x: 0, y: 1 }   // down
+        ];
+        
+        for (const dir of directions) {
+            const newX = pos.x + dir.x;
+            const newY = pos.y + dir.y;
+            
+            // Enforce boundary constraints
+            if (newX &lt; 0 || newX >= width || newY &lt; 0 || newY >= height) {
+                continue;
+            }
+            
+            // Check path isolation constraint
+            if (grid[newY][newX] === 'empty' &amp;&amp; !hasAdjacentPath(newX, newY, grid)) {
+                moves.push({ x: newX, y: newY });
+            }
+        }
+        
+        return moves;
+    }
+    
+    /**
+     * Checks if a position has adjacent path tiles (excluding previous path tile)
+     * Implements path isolation constraint
+     * 
+     * @param {number} x - X coordinate to check
+     * @param {number} y - Y coordinate to check
+     * @param {Array&lt;Array&lt;string>>} grid - Current grid state
+     * @returns {boolean} True if position has adjacent path tiles
+     */
+    function hasAdjacentPath(x, y, grid) {
+        const adjacentCells = [
+            { x: x, y: y - 1 },     // up
+            { x: x, y: y + 1 },     // down
+            { x: x - 1, y: y },     // left
+            { x: x + 1, y: y },     // right
+        ];
+        
+        return adjacentCells.some(cell => {
+            if (cell.x &lt; 0 || cell.x >= width || cell.y &lt; 0 || cell.y >= height) {
+                return false;
+            }
+            return grid[cell.y][cell.x] === 'path' &amp;&amp; 
+                   !path.some(p => p.x === cell.x &amp;&amp; p.y === cell.y);
+        });
+    }
+    
+    // Main path generation loop with backtracking
+    while (currentPos.x &lt; width - 1) {
+        const moves = getValidMoves(currentPos);
+        
+        if (moves.length === 0) {
+            // Backtrack when no valid moves exist
+            if (path.length &lt;= 1) {
+                // Restart if backtracking fails
+                return generatePath(grid);
+            }
+            
+            path.pop();
+            const lastPos = path[path.length - 1];
+            grid[currentPos.y][currentPos.x] = 'empty';
+            currentPos = lastPos;
+            continue;
+        }
+        
+        // Random selection for path variety
+        const nextMove = moves[Math.floor(Math.random() * moves.length)];
+        currentPos = nextMove;
+        path.push(currentPos);
+        grid[currentPos.y][currentPos.x] = 'path';
+    }
+    
+    return Promise.resolve(path);
+}
+
+/**
+ * Calculates a position along the path based on a progress value
+ * Implements smooth entity movement along path segments
+ * 
+ * @param {number} progress - Progress along path (0-1)
+ * @param {Array&lt;{x: number, y: number}>} path - Array of path coordinates
+ * @returns {{x: number, y: number}} Interpolated position along path
+ * 
+ * Uses:
+ * - Linear interpolation (lerp)
+ * - Path segment traversal
+ * - Normalized progress tracking
+ */
+function getPathPosition(progress, path) {
+    // Normalize progress to valid range
+    progress = Math.max(0, Math.min(1, progress));
+    
+    // Calculate total path length for normalization
+    let totalLength = 0;
+    for (let i = 1; i &lt; path.length; i++) {
+        const dx = path[i].x - path[i-1].x;
+        const dy = path[i].y - path[i-1].y;
+        totalLength += Math.sqrt(dx * dx + dy * dy);
+    }
+    
+    // Convert progress to distance along path
+    const targetDistance = progress * totalLength;
+    
+    // Find appropriate path segment
+    let currentDistance = 0;
+    for (let i = 1; i &lt; path.length; i++) {
+        const dx = path[i].x - path[i-1].x;
+        const dy = path[i].y - path[i-1].y;
+        const segmentLength = Math.sqrt(dx * dx + dy * dy);
+        
+        if (currentDistance + segmentLength >= targetDistance) {
+            // Linear interpolation within segment
+            const segmentProgress = (targetDistance - currentDistance) / segmentLength;
+            return {
+                x: path[i-1].x + dx * segmentProgress,
+                y: path[i-1].y + dy * segmentProgress
+            };
+        }
+        
+        currentDistance += segmentLength;
+    }
+    
+    // Fallback to end of path
+    return { ...path[path.length - 1] };
+} </code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-game.html">game</a></li><li><a href="module-gameState.html">gameState</a></li><li><a href="module-mechanics.html">mechanics</a></li><li><a href="module-path.html">path</a></li><li><a href="module-renderer.html">renderer</a></li><li><a href="module-uiHandlers.html">uiHandlers</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.3</a> on Mon Feb 17 2025 09:19:19 GMT-0500 (Eastern Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
diff --git a/html/tower/docs/renderer.js.html b/html/tower/docs/renderer.js.html
new file mode 100644
index 0000000..ed49c44
--- /dev/null
+++ b/html/tower/docs/renderer.js.html
@@ -0,0 +1,431 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: renderer.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: renderer.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/**
+ * Rendering Module
+ * 
+ * This module handles all game rendering operations using HTML5 Canvas.
+ * Demonstrates key game development patterns:
+ * 1. Layer-based rendering
+ * 2. Particle systems
+ * 3. Visual state feedback
+ * 4. Canvas state management
+ * 
+ * @module renderer
+ */
+
+/**
+ * Renders the game grid with path and hover previews
+ * Implements visual feedback for player actions
+ * 
+ * @param {CanvasRenderingContext2D} ctx - Canvas rendering context
+ * @param {Array&lt;Array&lt;string>>} grid - Game grid state
+ */
+function renderGrid(ctx, grid) {
+    const cellSize = canvas.width / 20;
+    
+    // Draw grid lines for visual reference
+    ctx.strokeStyle = '#ccc';
+    ctx.lineWidth = 1;
+    
+    for (let i = 0; i &lt;= 20; i++) {
+        // Vertical lines
+        ctx.beginPath();
+        ctx.moveTo(i * cellSize, 0);
+        ctx.lineTo(i * cellSize, canvas.height);
+        ctx.stroke();
+        
+        // Horizontal lines
+        ctx.beginPath();
+        ctx.moveTo(0, i * cellSize);
+        ctx.lineTo(canvas.width, i * cellSize);
+        ctx.stroke();
+    }
+    
+    // Render grid cells with path highlighting
+    grid.forEach((row, y) => {
+        row.forEach((cell, x) => {
+            if (cell === 'path') {
+                ctx.fillStyle = '#f4a460';
+                ctx.fillRect(x * cellSize, y * cellSize, cellSize, cellSize);
+            }
+        });
+    });
+
+    // Render tower placement preview
+    if (gameState.phase === GamePhase.PLACEMENT &amp;&amp; draggedTowerType &amp;&amp; hoverCell) {
+        const tower = TowerTypes[draggedTowerType];
+        const canPlace = grid[hoverCell.y][hoverCell.x] === 'empty' &amp;&amp;
+                        gameState.playerCurrency >= tower.cost;
+        
+        // Visual feedback for placement validity
+        ctx.fillStyle = canPlace ? tower.color + '80' : 'rgba(255, 0, 0, 0.3)';
+        ctx.fillRect(
+            hoverCell.x * cellSize,
+            hoverCell.y * cellSize,
+            cellSize,
+            cellSize
+        );
+        
+        // Range indicator preview
+        ctx.beginPath();
+        ctx.arc(
+            (hoverCell.x + 0.5) * cellSize,
+            (hoverCell.y + 0.5) * cellSize,
+            tower.range * cellSize,
+            0,
+            Math.PI * 2
+        );
+        ctx.strokeStyle = canPlace ? tower.color + '40' : 'rgba(255, 0, 0, 0.2)';
+        ctx.stroke();
+    }
+}
+
+/**
+ * Renders all enemies with health indicators and effects
+ * Implements visual state representation
+ * 
+ * @param {CanvasRenderingContext2D} ctx - Canvas rendering context
+ * @param {Array&lt;Object>} enemies - Array of enemy objects
+ */
+function renderEnemies(ctx, enemies) {
+    const cellSize = canvas.width / 20;
+    
+    enemies.forEach(enemy => {
+        // Health-based opacity for visual feedback
+        const healthPercent = enemy.currentHealth / enemy.maxHealth;
+        const opacity = 0.3 + (healthPercent * 0.7);
+        
+        // Dynamic color based on enemy state
+        const color = EnemyTypes[enemy.type].color;
+        const hexOpacity = Math.floor(opacity * 255).toString(16).padStart(2, '0');
+        
+        // Draw enemy body with solid black border
+        ctx.beginPath();
+        ctx.arc(
+            (enemy.position.x + 0.5) * cellSize,
+            (enemy.position.y + 0.5) * cellSize,
+            cellSize / 3,
+            0,
+            Math.PI * 2
+        );
+        
+        // Fill with dynamic opacity
+        ctx.fillStyle = `${color}${hexOpacity}`;
+        ctx.fill();
+        
+        // Add solid black border
+        ctx.strokeStyle = 'black';
+        ctx.lineWidth = 2;
+        ctx.stroke();
+        
+        // Range indicator for special enemy types
+        if (EnemyTypes[enemy.type].isRanged) {
+            ctx.beginPath();
+            ctx.arc(
+                (enemy.position.x + 0.5) * cellSize,
+                (enemy.position.y + 0.5) * cellSize,
+                EnemyTypes[enemy.type].attackRange * cellSize,
+                0,
+                Math.PI * 2
+            );
+            ctx.strokeStyle = `${EnemyTypes[enemy.type].color}40`;
+            ctx.stroke();
+        }
+    });
+}
+
+/**
+ * Renders game UI elements with clean state management
+ * Implements heads-up display (HUD) pattern
+ * 
+ * @param {CanvasRenderingContext2D} ctx - Canvas rendering context
+ * @param {Object} gameState - Current game state
+ */
+function renderUI(ctx, gameState) {
+    const padding = 20;
+    const lineHeight = 30;
+    const startY = padding;
+    const width = 200;
+    const height = lineHeight * 5;
+    
+    // Save the current canvas state
+    ctx.save();
+    
+    // Reset any transformations
+    ctx.setTransform(1, 0, 0, 1, 0, 0);
+    
+    // Semi-transparent background for readability
+    ctx.fillStyle = 'rgba(255, 255, 255, 0.8)';
+    ctx.fillRect(0, 0, width, height + padding);
+    
+    // Text rendering setup
+    ctx.fillStyle = 'black';
+    ctx.font = '20px Arial';
+    ctx.textAlign = 'left';
+    ctx.textBaseline = 'top';
+    
+    // Game state information
+    ctx.fillText(`Level: ${gameState.level}`, padding, startY);
+    ctx.fillText(`Currency: $${gameState.currency}`, padding, startY + lineHeight);
+    ctx.fillText(`Phase: ${gameState.phase}`, padding, startY + lineHeight * 2);
+    ctx.fillText(`Destroyed: ${gameState.enemiesDestroyed}`, padding, startY + lineHeight * 3);
+    ctx.fillText(`Escaped: ${gameState.enemiesEscaped}`, padding, startY + lineHeight * 4);
+    
+    // Restore the canvas state
+    ctx.restore();
+}
+
+function renderTowers(ctx, towers) {
+    const cellSize = canvas.width / 20;
+    
+    towers.forEach(tower => {
+        const healthPercent = tower.currentHealth / tower.maxHealth;
+        
+        // Draw tower body
+        ctx.fillStyle = tower.color + Math.floor(healthPercent * 255).toString(16).padStart(2, '0');
+        ctx.fillRect(
+            tower.position.x * cellSize + cellSize * 0.1,
+            tower.position.y * cellSize + cellSize * 0.1,
+            cellSize * 0.8,
+            cellSize * 0.8
+        );
+        
+        // Draw ammo count
+        ctx.fillStyle = 'white';
+        ctx.font = '12px Arial';
+        ctx.textAlign = 'center';
+        ctx.fillText(
+            tower.ammo,
+            (tower.position.x + 0.5) * cellSize,
+            (tower.position.y + 0.7) * cellSize
+        );
+        
+        // Draw range indicator
+        if (gameState.phase === GamePhase.PLACEMENT) {
+            ctx.beginPath();
+            ctx.arc(
+                (tower.position.x + 0.5) * cellSize,
+                (tower.position.y + 0.5) * cellSize,
+                tower.range * cellSize,
+                0,
+                Math.PI * 2
+            );
+            ctx.strokeStyle = tower.color + '40';
+            ctx.stroke();
+        }
+    });
+}
+
+// Add new render function for particles
+function renderParticles(ctx, particles) {
+    particles.forEach(particle => {
+        const age = performance.now() - particle.createdAt;
+        const lifePercent = age / particle.lifetime;
+        
+        if (lifePercent &lt;= 1) {
+            if (particle.type === 'SLIME_TRAIL') {
+                // Calculate opacity based on lifetime and fade start
+                let opacity = 1;
+                if (lifePercent > particle.fadeStart) {
+                    opacity = 1 - ((lifePercent - particle.fadeStart) / (1 - particle.fadeStart));
+                }
+                opacity *= 0.3; // Make it translucent
+                
+                ctx.globalAlpha = opacity;
+                ctx.fillStyle = particle.color;
+                
+                // Draw a circular slime splat
+                ctx.beginPath();
+                ctx.arc(
+                    particle.position.x,
+                    particle.position.y,
+                    particle.size * (1 - lifePercent * 0.3), // Slightly shrink over time
+                    0,
+                    Math.PI * 2
+                );
+                ctx.fill();
+                
+                // Add some variation to the splat
+                for (let i = 0; i &lt; 3; i++) {
+                    const angle = (Math.PI * 2 * i) / 3;
+                    const distance = particle.size * 0.4;
+                    ctx.beginPath();
+                    ctx.arc(
+                        particle.position.x + Math.cos(angle) * distance,
+                        particle.position.y + Math.sin(angle) * distance,
+                        particle.size * 0.4 * (1 - lifePercent * 0.3),
+                        0,
+                        Math.PI * 2
+                    );
+                    ctx.fill();
+                }
+            } else if (particle.type === 'AOE_EXPLOSION') {
+                // Draw expanding circle
+                const radius = particle.initialRadius + 
+                    (particle.finalRadius - particle.initialRadius) * lifePercent;
+                
+                // Draw multiple rings for better effect
+                const numRings = 3;
+                for (let i = 0; i &lt; numRings; i++) {
+                    const ringRadius = radius * (1 - (i * 0.2));
+                    const ringAlpha = (1 - lifePercent) * (1 - (i * 0.3));
+                    
+                    ctx.beginPath();
+                    ctx.arc(
+                        particle.position.x,
+                        particle.position.y,
+                        ringRadius,
+                        0,
+                        Math.PI * 2
+                    );
+                    ctx.strokeStyle = particle.color;
+                    ctx.lineWidth = particle.ringWidth * (1 - (i * 0.2));
+                    ctx.globalAlpha = ringAlpha;
+                    ctx.stroke();
+                }
+                
+                // Draw affected area
+                ctx.beginPath();
+                ctx.arc(
+                    particle.position.x,
+                    particle.position.y,
+                    radius,
+                    0,
+                    Math.PI * 2
+                );
+                ctx.fillStyle = particle.color + '20'; // Very transparent fill
+                ctx.fill();
+            } else {
+                // Original particle rendering
+                ctx.fillStyle = particle.color;
+                ctx.beginPath();
+                ctx.arc(
+                    particle.position.x,
+                    particle.position.y,
+                    particle.size * (1 - lifePercent),
+                    0,
+                    Math.PI * 2
+                );
+                ctx.fill();
+            }
+        }
+    });
+    ctx.globalAlpha = 1;
+}
+
+// Add new render function for projectiles
+function renderProjectiles(ctx, projectiles) {
+    const cellSize = canvas.width / 20;
+    
+    projectiles.forEach(projectile => {
+        const age = performance.now() - projectile.createdAt;
+        const progress = age / projectile.lifetime;
+        
+        if (progress &lt;= 1) {
+            // Draw projectile trail
+            ctx.beginPath();
+            ctx.moveTo(
+                projectile.startPos.x * cellSize + cellSize / 2,
+                projectile.startPos.y * cellSize + cellSize / 2
+            );
+            
+            const currentX = projectile.startPos.x + (projectile.targetPos.x - projectile.startPos.x) * progress;
+            const currentY = projectile.startPos.y + (projectile.targetPos.y - projectile.startPos.y) * progress;
+            
+            ctx.lineTo(
+                currentX * cellSize + cellSize / 2,
+                currentY * cellSize + cellSize / 2
+            );
+            
+            ctx.strokeStyle = '#fff';
+            ctx.lineWidth = 2;
+            ctx.stroke();
+            
+            // Draw projectile head
+            ctx.beginPath();
+            ctx.arc(
+                currentX * cellSize + cellSize / 2,
+                currentY * cellSize + cellSize / 2,
+                4,
+                0,
+                Math.PI * 2
+            );
+            ctx.fillStyle = '#fff';
+            ctx.fill();
+        }
+    });
+}
+
+// Update level complete message in game.js
+function handleLevelComplete() {
+    gameState.phase = GamePhase.TRANSITION;
+    
+    // Calculate ammo bonus
+    let ammoBonus = 0;
+    gameState.towers.forEach(tower => {
+        ammoBonus += tower.ammo * 2;
+    });
+    
+    const message = `
+        Level ${gameState.level} Complete!
+        Current Money: $${gameState.currency}
+        Ammo Bonus: +$${ammoBonus}
+        Level Bonus: +$10
+        
+        Ready for Level ${gameState.level + 1}?
+    `;
+    
+    setTimeout(() => {
+        if (confirm(message)) {
+            startNextLevel();
+        }
+    }, 100);
+} </code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-game.html">game</a></li><li><a href="module-gameState.html">gameState</a></li><li><a href="module-mechanics.html">mechanics</a></li><li><a href="module-path.html">path</a></li><li><a href="module-renderer.html">renderer</a></li><li><a href="module-uiHandlers.html">uiHandlers</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.3</a> on Mon Feb 17 2025 09:19:19 GMT-0500 (Eastern Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
diff --git a/html/tower/docs/scripts/linenumber.js b/html/tower/docs/scripts/linenumber.js
new file mode 100644
index 0000000..4354785
--- /dev/null
+++ b/html/tower/docs/scripts/linenumber.js
@@ -0,0 +1,25 @@
+/*global document */
+(() => {
+    const source = document.getElementsByClassName('prettyprint source linenums');
+    let i = 0;
+    let lineNumber = 0;
+    let lineId;
+    let lines;
+    let totalLines;
+    let anchorHash;
+
+    if (source && source[0]) {
+        anchorHash = document.location.hash.substring(1);
+        lines = source[0].getElementsByTagName('li');
+        totalLines = lines.length;
+
+        for (; i < totalLines; i++) {
+            lineNumber++;
+            lineId = `line${lineNumber}`;
+            lines[i].id = lineId;
+            if (lineId === anchorHash) {
+                lines[i].className += ' selected';
+            }
+        }
+    }
+})();
diff --git a/html/tower/docs/scripts/prettify/Apache-License-2.0.txt b/html/tower/docs/scripts/prettify/Apache-License-2.0.txt
new file mode 100644
index 0000000..d645695
--- /dev/null
+++ b/html/tower/docs/scripts/prettify/Apache-License-2.0.txt
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
diff --git a/html/tower/docs/scripts/prettify/lang-css.js b/html/tower/docs/scripts/prettify/lang-css.js
new file mode 100644
index 0000000..041e1f5
--- /dev/null
+++ b/html/tower/docs/scripts/prettify/lang-css.js
@@ -0,0 +1,2 @@
+PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\f\r ]+/,null," \t\r\n"]],[["str",/^"(?:[^\n\f\r"\\]|\\(?:\r\n?|\n|\f)|\\[\S\s])*"/,null],["str",/^'(?:[^\n\f\r'\\]|\\(?:\r\n?|\n|\f)|\\[\S\s])*'/,null],["lang-css-str",/^url\(([^"')]*)\)/i],["kwd",/^(?:url|rgb|!important|@import|@page|@media|@charset|inherit)(?=[^\w-]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*)\s*:/i],["com",/^\/\*[^*]*\*+(?:[^*/][^*]*\*+)*\//],["com",
+/^(?:<\!--|--\>)/],["lit",/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],["lit",/^#[\da-f]{3,6}/i],["pln",/^-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*/i],["pun",/^[^\s\w"']+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[["kwd",/^-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[["str",/^[^"')]+/]]),["css-str"]);
diff --git a/html/tower/docs/scripts/prettify/prettify.js b/html/tower/docs/scripts/prettify/prettify.js
new file mode 100644
index 0000000..eef5ad7
--- /dev/null
+++ b/html/tower/docs/scripts/prettify/prettify.js
@@ -0,0 +1,28 @@
+var q=null;window.PR_SHOULD_USE_CONTINUATION=!0;
+(function(){function L(a){function m(a){var f=a.charCodeAt(0);if(f!==92)return f;var b=a.charAt(1);return(f=r[b])?f:"0"<=b&&b<="7"?parseInt(a.substring(1),8):b==="u"||b==="x"?parseInt(a.substring(2),16):a.charCodeAt(1)}function e(a){if(a<32)return(a<16?"\\x0":"\\x")+a.toString(16);a=String.fromCharCode(a);if(a==="\\"||a==="-"||a==="["||a==="]")a="\\"+a;return a}function h(a){for(var f=a.substring(1,a.length-1).match(/\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\[0-3][0-7]{0,2}|\\[0-7]{1,2}|\\[\S\s]|[^\\]/g),a=
+[],b=[],o=f[0]==="^",c=o?1:0,i=f.length;c<i;++c){var j=f[c];if(/\\[bdsw]/i.test(j))a.push(j);else{var j=m(j),d;c+2<i&&"-"===f[c+1]?(d=m(f[c+2]),c+=2):d=j;b.push([j,d]);d<65||j>122||(d<65||j>90||b.push([Math.max(65,j)|32,Math.min(d,90)|32]),d<97||j>122||b.push([Math.max(97,j)&-33,Math.min(d,122)&-33]))}}b.sort(function(a,f){return a[0]-f[0]||f[1]-a[1]});f=[];j=[NaN,NaN];for(c=0;c<b.length;++c)i=b[c],i[0]<=j[1]+1?j[1]=Math.max(j[1],i[1]):f.push(j=i);b=["["];o&&b.push("^");b.push.apply(b,a);for(c=0;c<
+f.length;++c)i=f[c],b.push(e(i[0])),i[1]>i[0]&&(i[1]+1>i[0]&&b.push("-"),b.push(e(i[1])));b.push("]");return b.join("")}function y(a){for(var f=a.source.match(/\[(?:[^\\\]]|\\[\S\s])*]|\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\\d+|\\[^\dux]|\(\?[!:=]|[()^]|[^()[\\^]+/g),b=f.length,d=[],c=0,i=0;c<b;++c){var j=f[c];j==="("?++i:"\\"===j.charAt(0)&&(j=+j.substring(1))&&j<=i&&(d[j]=-1)}for(c=1;c<d.length;++c)-1===d[c]&&(d[c]=++t);for(i=c=0;c<b;++c)j=f[c],j==="("?(++i,d[i]===void 0&&(f[c]="(?:")):"\\"===j.charAt(0)&&
+(j=+j.substring(1))&&j<=i&&(f[c]="\\"+d[i]);for(i=c=0;c<b;++c)"^"===f[c]&&"^"!==f[c+1]&&(f[c]="");if(a.ignoreCase&&s)for(c=0;c<b;++c)j=f[c],a=j.charAt(0),j.length>=2&&a==="["?f[c]=h(j):a!=="\\"&&(f[c]=j.replace(/[A-Za-z]/g,function(a){a=a.charCodeAt(0);return"["+String.fromCharCode(a&-33,a|32)+"]"}));return f.join("")}for(var t=0,s=!1,l=!1,p=0,d=a.length;p<d;++p){var g=a[p];if(g.ignoreCase)l=!0;else if(/[a-z]/i.test(g.source.replace(/\\u[\da-f]{4}|\\x[\da-f]{2}|\\[^UXux]/gi,""))){s=!0;l=!1;break}}for(var r=
+{b:8,t:9,n:10,v:11,f:12,r:13},n=[],p=0,d=a.length;p<d;++p){g=a[p];if(g.global||g.multiline)throw Error(""+g);n.push("(?:"+y(g)+")")}return RegExp(n.join("|"),l?"gi":"g")}function M(a){function m(a){switch(a.nodeType){case 1:if(e.test(a.className))break;for(var g=a.firstChild;g;g=g.nextSibling)m(g);g=a.nodeName;if("BR"===g||"LI"===g)h[s]="\n",t[s<<1]=y++,t[s++<<1|1]=a;break;case 3:case 4:g=a.nodeValue,g.length&&(g=p?g.replace(/\r\n?/g,"\n"):g.replace(/[\t\n\r ]+/g," "),h[s]=g,t[s<<1]=y,y+=g.length,
+t[s++<<1|1]=a)}}var e=/(?:^|\s)nocode(?:\s|$)/,h=[],y=0,t=[],s=0,l;a.currentStyle?l=a.currentStyle.whiteSpace:window.getComputedStyle&&(l=document.defaultView.getComputedStyle(a,q).getPropertyValue("white-space"));var p=l&&"pre"===l.substring(0,3);m(a);return{a:h.join("").replace(/\n$/,""),c:t}}function B(a,m,e,h){m&&(a={a:m,d:a},e(a),h.push.apply(h,a.e))}function x(a,m){function e(a){for(var l=a.d,p=[l,"pln"],d=0,g=a.a.match(y)||[],r={},n=0,z=g.length;n<z;++n){var f=g[n],b=r[f],o=void 0,c;if(typeof b===
+"string")c=!1;else{var i=h[f.charAt(0)];if(i)o=f.match(i[1]),b=i[0];else{for(c=0;c<t;++c)if(i=m[c],o=f.match(i[1])){b=i[0];break}o||(b="pln")}if((c=b.length>=5&&"lang-"===b.substring(0,5))&&!(o&&typeof o[1]==="string"))c=!1,b="src";c||(r[f]=b)}i=d;d+=f.length;if(c){c=o[1];var j=f.indexOf(c),k=j+c.length;o[2]&&(k=f.length-o[2].length,j=k-c.length);b=b.substring(5);B(l+i,f.substring(0,j),e,p);B(l+i+j,c,C(b,c),p);B(l+i+k,f.substring(k),e,p)}else p.push(l+i,b)}a.e=p}var h={},y;(function(){for(var e=a.concat(m),
+l=[],p={},d=0,g=e.length;d<g;++d){var r=e[d],n=r[3];if(n)for(var k=n.length;--k>=0;)h[n.charAt(k)]=r;r=r[1];n=""+r;p.hasOwnProperty(n)||(l.push(r),p[n]=q)}l.push(/[\S\s]/);y=L(l)})();var t=m.length;return e}function u(a){var m=[],e=[];a.tripleQuotedStrings?m.push(["str",/^(?:'''(?:[^'\\]|\\[\S\s]|''?(?=[^']))*(?:'''|$)|"""(?:[^"\\]|\\[\S\s]|""?(?=[^"]))*(?:"""|$)|'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$))/,q,"'\""]):a.multiLineStrings?m.push(["str",/^(?:'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$)|`(?:[^\\`]|\\[\S\s])*(?:`|$))/,
+q,"'\"`"]):m.push(["str",/^(?:'(?:[^\n\r'\\]|\\.)*(?:'|$)|"(?:[^\n\r"\\]|\\.)*(?:"|$))/,q,"\"'"]);a.verbatimStrings&&e.push(["str",/^@"(?:[^"]|"")*(?:"|$)/,q]);var h=a.hashComments;h&&(a.cStyleComments?(h>1?m.push(["com",/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,q,"#"]):m.push(["com",/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\n\r]*)/,q,"#"]),e.push(["str",/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,q])):m.push(["com",/^#[^\n\r]*/,
+q,"#"]));a.cStyleComments&&(e.push(["com",/^\/\/[^\n\r]*/,q]),e.push(["com",/^\/\*[\S\s]*?(?:\*\/|$)/,q]));a.regexLiterals&&e.push(["lang-regex",/^(?:^^\.?|[!+-]|!=|!==|#|%|%=|&|&&|&&=|&=|\(|\*|\*=|\+=|,|-=|->|\/|\/=|:|::|;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|[?@[^]|\^=|\^\^|\^\^=|{|\||\|=|\|\||\|\|=|~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\s*(\/(?=[^*/])(?:[^/[\\]|\\[\S\s]|\[(?:[^\\\]]|\\[\S\s])*(?:]|$))+\/)/]);(h=a.types)&&e.push(["typ",h]);a=(""+a.keywords).replace(/^ | $/g,
+"");a.length&&e.push(["kwd",RegExp("^(?:"+a.replace(/[\s,]+/g,"|")+")\\b"),q]);m.push(["pln",/^\s+/,q," \r\n\t\xa0"]);e.push(["lit",/^@[$_a-z][\w$@]*/i,q],["typ",/^(?:[@_]?[A-Z]+[a-z][\w$@]*|\w+_t\b)/,q],["pln",/^[$_a-z][\w$@]*/i,q],["lit",/^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i,q,"0123456789"],["pln",/^\\[\S\s]?/,q],["pun",/^.[^\s\w"-$'./@\\`]*/,q]);return x(m,e)}function D(a,m){function e(a){switch(a.nodeType){case 1:if(k.test(a.className))break;if("BR"===a.nodeName)h(a),
+a.parentNode&&a.parentNode.removeChild(a);else for(a=a.firstChild;a;a=a.nextSibling)e(a);break;case 3:case 4:if(p){var b=a.nodeValue,d=b.match(t);if(d){var c=b.substring(0,d.index);a.nodeValue=c;(b=b.substring(d.index+d[0].length))&&a.parentNode.insertBefore(s.createTextNode(b),a.nextSibling);h(a);c||a.parentNode.removeChild(a)}}}}function h(a){function b(a,d){var e=d?a.cloneNode(!1):a,f=a.parentNode;if(f){var f=b(f,1),g=a.nextSibling;f.appendChild(e);for(var h=g;h;h=g)g=h.nextSibling,f.appendChild(h)}return e}
+for(;!a.nextSibling;)if(a=a.parentNode,!a)return;for(var a=b(a.nextSibling,0),e;(e=a.parentNode)&&e.nodeType===1;)a=e;d.push(a)}var k=/(?:^|\s)nocode(?:\s|$)/,t=/\r\n?|\n/,s=a.ownerDocument,l;a.currentStyle?l=a.currentStyle.whiteSpace:window.getComputedStyle&&(l=s.defaultView.getComputedStyle(a,q).getPropertyValue("white-space"));var p=l&&"pre"===l.substring(0,3);for(l=s.createElement("LI");a.firstChild;)l.appendChild(a.firstChild);for(var d=[l],g=0;g<d.length;++g)e(d[g]);m===(m|0)&&d[0].setAttribute("value",
+m);var r=s.createElement("OL");r.className="linenums";for(var n=Math.max(0,m-1|0)||0,g=0,z=d.length;g<z;++g)l=d[g],l.className="L"+(g+n)%10,l.firstChild||l.appendChild(s.createTextNode("\xa0")),r.appendChild(l);a.appendChild(r)}function k(a,m){for(var e=m.length;--e>=0;){var h=m[e];A.hasOwnProperty(h)?window.console&&console.warn("cannot override language handler %s",h):A[h]=a}}function C(a,m){if(!a||!A.hasOwnProperty(a))a=/^\s*</.test(m)?"default-markup":"default-code";return A[a]}function E(a){var m=
+a.g;try{var e=M(a.h),h=e.a;a.a=h;a.c=e.c;a.d=0;C(m,h)(a);var k=/\bMSIE\b/.test(navigator.userAgent),m=/\n/g,t=a.a,s=t.length,e=0,l=a.c,p=l.length,h=0,d=a.e,g=d.length,a=0;d[g]=s;var r,n;for(n=r=0;n<g;)d[n]!==d[n+2]?(d[r++]=d[n++],d[r++]=d[n++]):n+=2;g=r;for(n=r=0;n<g;){for(var z=d[n],f=d[n+1],b=n+2;b+2<=g&&d[b+1]===f;)b+=2;d[r++]=z;d[r++]=f;n=b}for(d.length=r;h<p;){var o=l[h+2]||s,c=d[a+2]||s,b=Math.min(o,c),i=l[h+1],j;if(i.nodeType!==1&&(j=t.substring(e,b))){k&&(j=j.replace(m,"\r"));i.nodeValue=
+j;var u=i.ownerDocument,v=u.createElement("SPAN");v.className=d[a+1];var x=i.parentNode;x.replaceChild(v,i);v.appendChild(i);e<o&&(l[h+1]=i=u.createTextNode(t.substring(b,o)),x.insertBefore(i,v.nextSibling))}e=b;e>=o&&(h+=2);e>=c&&(a+=2)}}catch(w){"console"in window&&console.log(w&&w.stack?w.stack:w)}}var v=["break,continue,do,else,for,if,return,while"],w=[[v,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"],
+"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"],F=[w,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"],G=[w,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"],
+H=[G,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"],w=[w,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"],I=[v,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"],
+J=[v,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],v=[v,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"],K=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/,N=/\S/,O=u({keywords:[F,H,w,"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END"+
+I,J,v],hashComments:!0,cStyleComments:!0,multiLineStrings:!0,regexLiterals:!0}),A={};k(O,["default-code"]);k(x([],[["pln",/^[^<?]+/],["dec",/^<!\w[^>]*(?:>|$)/],["com",/^<\!--[\S\s]*?(?:--\>|$)/],["lang-",/^<\?([\S\s]+?)(?:\?>|$)/],["lang-",/^<%([\S\s]+?)(?:%>|$)/],["pun",/^(?:<[%?]|[%?]>)/],["lang-",/^<xmp\b[^>]*>([\S\s]+?)<\/xmp\b[^>]*>/i],["lang-js",/^<script\b[^>]*>([\S\s]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\S\s]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),
+["default-markup","htm","html","mxml","xhtml","xml","xsl"]);k(x([["pln",/^\s+/,q," \t\r\n"],["atv",/^(?:"[^"]*"?|'[^']*'?)/,q,"\"'"]],[["tag",/^^<\/?[a-z](?:[\w-.:]*\w)?|\/?>$/i],["atn",/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^\s"'>]*(?:[^\s"'/>]|\/(?=\s)))/],["pun",/^[/<->]+/],["lang-js",/^on\w+\s*=\s*"([^"]+)"/i],["lang-js",/^on\w+\s*=\s*'([^']+)'/i],["lang-js",/^on\w+\s*=\s*([^\s"'>]+)/i],["lang-css",/^style\s*=\s*"([^"]+)"/i],["lang-css",/^style\s*=\s*'([^']+)'/i],["lang-css",
+/^style\s*=\s*([^\s"'>]+)/i]]),["in.tag"]);k(x([],[["atv",/^[\S\s]+/]]),["uq.val"]);k(u({keywords:F,hashComments:!0,cStyleComments:!0,types:K}),["c","cc","cpp","cxx","cyc","m"]);k(u({keywords:"null,true,false"}),["json"]);k(u({keywords:H,hashComments:!0,cStyleComments:!0,verbatimStrings:!0,types:K}),["cs"]);k(u({keywords:G,cStyleComments:!0}),["java"]);k(u({keywords:v,hashComments:!0,multiLineStrings:!0}),["bsh","csh","sh"]);k(u({keywords:I,hashComments:!0,multiLineStrings:!0,tripleQuotedStrings:!0}),
+["cv","py"]);k(u({keywords:"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["perl","pl","pm"]);k(u({keywords:J,hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["rb"]);k(u({keywords:w,cStyleComments:!0,regexLiterals:!0}),["js"]);k(u({keywords:"all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes",
+hashComments:3,cStyleComments:!0,multilineStrings:!0,tripleQuotedStrings:!0,regexLiterals:!0}),["coffee"]);k(x([],[["str",/^[\S\s]+/]]),["regex"]);window.prettyPrintOne=function(a,m,e){var h=document.createElement("PRE");h.innerHTML=a;e&&D(h,e);E({g:m,i:e,h:h});return h.innerHTML};window.prettyPrint=function(a){function m(){for(var e=window.PR_SHOULD_USE_CONTINUATION?l.now()+250:Infinity;p<h.length&&l.now()<e;p++){var n=h[p],k=n.className;if(k.indexOf("prettyprint")>=0){var k=k.match(g),f,b;if(b=
+!k){b=n;for(var o=void 0,c=b.firstChild;c;c=c.nextSibling)var i=c.nodeType,o=i===1?o?b:c:i===3?N.test(c.nodeValue)?b:o:o;b=(f=o===b?void 0:o)&&"CODE"===f.tagName}b&&(k=f.className.match(g));k&&(k=k[1]);b=!1;for(o=n.parentNode;o;o=o.parentNode)if((o.tagName==="pre"||o.tagName==="code"||o.tagName==="xmp")&&o.className&&o.className.indexOf("prettyprint")>=0){b=!0;break}b||((b=(b=n.className.match(/\blinenums\b(?::(\d+))?/))?b[1]&&b[1].length?+b[1]:!0:!1)&&D(n,b),d={g:k,h:n,i:b},E(d))}}p<h.length?setTimeout(m,
+250):a&&a()}for(var e=[document.getElementsByTagName("pre"),document.getElementsByTagName("code"),document.getElementsByTagName("xmp")],h=[],k=0;k<e.length;++k)for(var t=0,s=e[k].length;t<s;++t)h.push(e[k][t]);var e=q,l=Date;l.now||(l={now:function(){return+new Date}});var p=0,d,g=/\blang(?:uage)?-([\w.]+)(?!\S)/;m()};window.PR={createSimpleLexer:x,registerLangHandler:k,sourceDecorator:u,PR_ATTRIB_NAME:"atn",PR_ATTRIB_VALUE:"atv",PR_COMMENT:"com",PR_DECLARATION:"dec",PR_KEYWORD:"kwd",PR_LITERAL:"lit",
+PR_NOCODE:"nocode",PR_PLAIN:"pln",PR_PUNCTUATION:"pun",PR_SOURCE:"src",PR_STRING:"str",PR_TAG:"tag",PR_TYPE:"typ"}})();
diff --git a/html/tower/docs/styles/jsdoc-default.css b/html/tower/docs/styles/jsdoc-default.css
new file mode 100644
index 0000000..7d1729d
--- /dev/null
+++ b/html/tower/docs/styles/jsdoc-default.css
@@ -0,0 +1,358 @@
+@font-face {
+    font-family: 'Open Sans';
+    font-weight: normal;
+    font-style: normal;
+    src: url('../fonts/OpenSans-Regular-webfont.eot');
+    src:
+        local('Open Sans'),
+        local('OpenSans'),
+        url('../fonts/OpenSans-Regular-webfont.eot?#iefix') format('embedded-opentype'),
+        url('../fonts/OpenSans-Regular-webfont.woff') format('woff'),
+        url('../fonts/OpenSans-Regular-webfont.svg#open_sansregular') format('svg');
+}
+
+@font-face {
+    font-family: 'Open Sans Light';
+    font-weight: normal;
+    font-style: normal;
+    src: url('../fonts/OpenSans-Light-webfont.eot');
+    src:
+        local('Open Sans Light'),
+        local('OpenSans Light'),
+        url('../fonts/OpenSans-Light-webfont.eot?#iefix') format('embedded-opentype'),
+        url('../fonts/OpenSans-Light-webfont.woff') format('woff'),
+        url('../fonts/OpenSans-Light-webfont.svg#open_sanslight') format('svg');
+}
+
+html
+{
+    overflow: auto;
+    background-color: #fff;
+    font-size: 14px;
+}
+
+body
+{
+    font-family: 'Open Sans', sans-serif;
+    line-height: 1.5;
+    color: #4d4e53;
+    background-color: white;
+}
+
+a, a:visited, a:active {
+    color: #0095dd;
+    text-decoration: none;
+}
+
+a:hover {
+    text-decoration: underline;
+}
+
+header
+{
+    display: block;
+    padding: 0px 4px;
+}
+
+tt, code, kbd, samp {
+    font-family: Consolas, Monaco, 'Andale Mono', monospace;
+}
+
+.class-description {
+    font-size: 130%;
+    line-height: 140%;
+    margin-bottom: 1em;
+    margin-top: 1em;
+}
+
+.class-description:empty {
+    margin: 0;
+}
+
+#main {
+    float: left;
+    width: 70%;
+}
+
+article dl {
+    margin-bottom: 40px;
+}
+
+article img {
+  max-width: 100%;
+}
+
+section
+{
+    display: block;
+    background-color: #fff;
+    padding: 12px 24px;
+    border-bottom: 1px solid #ccc;
+    margin-right: 30px;
+}
+
+.variation {
+    display: none;
+}
+
+.signature-attributes {
+    font-size: 60%;
+    color: #aaa;
+    font-style: italic;
+    font-weight: lighter;
+}
+
+nav
+{
+    display: block;
+    float: right;
+    margin-top: 28px;
+    width: 30%;
+    box-sizing: border-box;
+    border-left: 1px solid #ccc;
+    padding-left: 16px;
+}
+
+nav ul {
+    font-family: 'Lucida Grande', 'Lucida Sans Unicode', arial, sans-serif;
+    font-size: 100%;
+    line-height: 17px;
+    padding: 0;
+    margin: 0;
+    list-style-type: none;
+}
+
+nav ul a, nav ul a:visited, nav ul a:active {
+    font-family: Consolas, Monaco, 'Andale Mono', monospace;
+    line-height: 18px;
+    color: #4D4E53;
+}
+
+nav h3 {
+    margin-top: 12px;
+}
+
+nav li {
+    margin-top: 6px;
+}
+
+footer {
+    display: block;
+    padding: 6px;
+    margin-top: 12px;
+    font-style: italic;
+    font-size: 90%;
+}
+
+h1, h2, h3, h4 {
+    font-weight: 200;
+    margin: 0;
+}
+
+h1
+{
+    font-family: 'Open Sans Light', sans-serif;
+    font-size: 48px;
+    letter-spacing: -2px;
+    margin: 12px 24px 20px;
+}
+
+h2, h3.subsection-title
+{
+    font-size: 30px;
+    font-weight: 700;
+    letter-spacing: -1px;
+    margin-bottom: 12px;
+}
+
+h3
+{
+    font-size: 24px;
+    letter-spacing: -0.5px;
+    margin-bottom: 12px;
+}
+
+h4
+{
+    font-size: 18px;
+    letter-spacing: -0.33px;
+    margin-bottom: 12px;
+    color: #4d4e53;
+}
+
+h5, .container-overview .subsection-title
+{
+    font-size: 120%;
+    font-weight: bold;
+    letter-spacing: -0.01em;
+    margin: 8px 0 3px 0;
+}
+
+h6
+{
+    font-size: 100%;
+    letter-spacing: -0.01em;
+    margin: 6px 0 3px 0;
+    font-style: italic;
+}
+
+table
+{
+    border-spacing: 0;
+    border: 0;
+    border-collapse: collapse;
+}
+
+td, th
+{
+    border: 1px solid #ddd;
+    margin: 0px;
+    text-align: left;
+    vertical-align: top;
+    padding: 4px 6px;
+    display: table-cell;
+}
+
+thead tr
+{
+    background-color: #ddd;
+    font-weight: bold;
+}
+
+th { border-right: 1px solid #aaa; }
+tr > th:last-child { border-right: 1px solid #ddd; }
+
+.ancestors, .attribs { color: #999; }
+.ancestors a, .attribs a
+{
+    color: #999 !important;
+    text-decoration: none;
+}
+
+.clear
+{
+    clear: both;
+}
+
+.important
+{
+    font-weight: bold;
+    color: #950B02;
+}
+
+.yes-def {
+    text-indent: -1000px;
+}
+
+.type-signature {
+    color: #aaa;
+}
+
+.name, .signature {
+    font-family: Consolas, Monaco, 'Andale Mono', monospace;
+}
+
+.details { margin-top: 14px; border-left: 2px solid #DDD; }
+.details dt { width: 120px; float: left; padding-left: 10px;  padding-top: 6px; }
+.details dd { margin-left: 70px; }
+.details ul { margin: 0; }
+.details ul { list-style-type: none; }
+.details li { margin-left: 30px; padding-top: 6px; }
+.details pre.prettyprint { margin: 0 }
+.details .object-value { padding-top: 0; }
+
+.description {
+    margin-bottom: 1em;
+    margin-top: 1em;
+}
+
+.code-caption
+{
+    font-style: italic;
+    font-size: 107%;
+    margin: 0;
+}
+
+.source
+{
+    border: 1px solid #ddd;
+    width: 80%;
+    overflow: auto;
+}
+
+.prettyprint.source {
+    width: inherit;
+}
+
+.source code
+{
+    font-size: 100%;
+    line-height: 18px;
+    display: block;
+    padding: 4px 12px;
+    margin: 0;
+    background-color: #fff;
+    color: #4D4E53;
+}
+
+.prettyprint code span.line
+{
+  display: inline-block;
+}
+
+.prettyprint.linenums
+{
+  padding-left: 70px;
+  -webkit-user-select: none;
+  -moz-user-select: none;
+  -ms-user-select: none;
+  user-select: none;
+}
+
+.prettyprint.linenums ol
+{
+  padding-left: 0;
+}
+
+.prettyprint.linenums li
+{
+  border-left: 3px #ddd solid;
+}
+
+.prettyprint.linenums li.selected,
+.prettyprint.linenums li.selected *
+{
+  background-color: lightyellow;
+}
+
+.prettyprint.linenums li *
+{
+  -webkit-user-select: text;
+  -moz-user-select: text;
+  -ms-user-select: text;
+  user-select: text;
+}
+
+.params .name, .props .name, .name code {
+    color: #4D4E53;
+    font-family: Consolas, Monaco, 'Andale Mono', monospace;
+    font-size: 100%;
+}
+
+.params td.description > p:first-child,
+.props td.description > p:first-child
+{
+    margin-top: 0;
+    padding-top: 0;
+}
+
+.params td.description > p:last-child,
+.props td.description > p:last-child
+{
+    margin-bottom: 0;
+    padding-bottom: 0;
+}
+
+.disabled {
+    color: #454545;
+}
diff --git a/html/tower/docs/styles/prettify-jsdoc.css b/html/tower/docs/styles/prettify-jsdoc.css
new file mode 100644
index 0000000..5a2526e
--- /dev/null
+++ b/html/tower/docs/styles/prettify-jsdoc.css
@@ -0,0 +1,111 @@
+/* JSDoc prettify.js theme */
+
+/* plain text */
+.pln {
+  color: #000000;
+  font-weight: normal;
+  font-style: normal;
+}
+
+/* string content */
+.str {
+  color: #006400;
+  font-weight: normal;
+  font-style: normal;
+}
+
+/* a keyword */
+.kwd {
+  color: #000000;
+  font-weight: bold;
+  font-style: normal;
+}
+
+/* a comment */
+.com {
+  font-weight: normal;
+  font-style: italic;
+}
+
+/* a type name */
+.typ {
+  color: #000000;
+  font-weight: normal;
+  font-style: normal;
+}
+
+/* a literal value */
+.lit {
+  color: #006400;
+  font-weight: normal;
+  font-style: normal;
+}
+
+/* punctuation */
+.pun {
+  color: #000000;
+  font-weight: bold;
+  font-style: normal;
+}
+
+/* lisp open bracket */
+.opn {
+  color: #000000;
+  font-weight: bold;
+  font-style: normal;
+}
+
+/* lisp close bracket */
+.clo {
+  color: #000000;
+  font-weight: bold;
+  font-style: normal;
+}
+
+/* a markup tag name */
+.tag {
+  color: #006400;
+  font-weight: normal;
+  font-style: normal;
+}
+
+/* a markup attribute name */
+.atn {
+  color: #006400;
+  font-weight: normal;
+  font-style: normal;
+}
+
+/* a markup attribute value */
+.atv {
+  color: #006400;
+  font-weight: normal;
+  font-style: normal;
+}
+
+/* a declaration */
+.dec {
+  color: #000000;
+  font-weight: bold;
+  font-style: normal;
+}
+
+/* a variable name */
+.var {
+  color: #000000;
+  font-weight: normal;
+  font-style: normal;
+}
+
+/* a function name */
+.fun {
+  color: #000000;
+  font-weight: bold;
+  font-style: normal;
+}
+
+/* Specify class=linenums on a pre to get line numbering */
+ol.linenums {
+  margin-top: 0;
+  margin-bottom: 0;
+}
diff --git a/html/tower/docs/styles/prettify-tomorrow.css b/html/tower/docs/styles/prettify-tomorrow.css
new file mode 100644
index 0000000..b6f92a7
--- /dev/null
+++ b/html/tower/docs/styles/prettify-tomorrow.css
@@ -0,0 +1,132 @@
+/* Tomorrow Theme */
+/* Original theme - https://github.com/chriskempson/tomorrow-theme */
+/* Pretty printing styles. Used with prettify.js. */
+/* SPAN elements with the classes below are added by prettyprint. */
+/* plain text */
+.pln {
+  color: #4d4d4c; }
+
+@media screen {
+  /* string content */
+  .str {
+    color: #718c00; }
+
+  /* a keyword */
+  .kwd {
+    color: #8959a8; }
+
+  /* a comment */
+  .com {
+    color: #8e908c; }
+
+  /* a type name */
+  .typ {
+    color: #4271ae; }
+
+  /* a literal value */
+  .lit {
+    color: #f5871f; }
+
+  /* punctuation */
+  .pun {
+    color: #4d4d4c; }
+
+  /* lisp open bracket */
+  .opn {
+    color: #4d4d4c; }
+
+  /* lisp close bracket */
+  .clo {
+    color: #4d4d4c; }
+
+  /* a markup tag name */
+  .tag {
+    color: #c82829; }
+
+  /* a markup attribute name */
+  .atn {
+    color: #f5871f; }
+
+  /* a markup attribute value */
+  .atv {
+    color: #3e999f; }
+
+  /* a declaration */
+  .dec {
+    color: #f5871f; }
+
+  /* a variable name */
+  .var {
+    color: #c82829; }
+
+  /* a function name */
+  .fun {
+    color: #4271ae; } }
+/* Use higher contrast and text-weight for printable form. */
+@media print, projection {
+  .str {
+    color: #060; }
+
+  .kwd {
+    color: #006;
+    font-weight: bold; }
+
+  .com {
+    color: #600;
+    font-style: italic; }
+
+  .typ {
+    color: #404;
+    font-weight: bold; }
+
+  .lit {
+    color: #044; }
+
+  .pun, .opn, .clo {
+    color: #440; }
+
+  .tag {
+    color: #006;
+    font-weight: bold; }
+
+  .atn {
+    color: #404; }
+
+  .atv {
+    color: #060; } }
+/* Style */
+/*
+pre.prettyprint {
+  background: white;
+  font-family: Consolas, Monaco, 'Andale Mono', monospace;
+  font-size: 12px;
+  line-height: 1.5;
+  border: 1px solid #ccc;
+  padding: 10px; }
+*/
+
+/* Specify class=linenums on a pre to get line numbering */
+ol.linenums {
+  margin-top: 0;
+  margin-bottom: 0; }
+
+/* IE indents via margin-left */
+li.L0,
+li.L1,
+li.L2,
+li.L3,
+li.L4,
+li.L5,
+li.L6,
+li.L7,
+li.L8,
+li.L9 {
+  /* */ }
+
+/* Alternate shading for lines */
+li.L1,
+li.L3,
+li.L5,
+li.L7,
+li.L9 {
+  /* */ }
diff --git a/html/tower/docs/uiHandlers.js.html b/html/tower/docs/uiHandlers.js.html
new file mode 100644
index 0000000..35f3867
--- /dev/null
+++ b/html/tower/docs/uiHandlers.js.html
@@ -0,0 +1,146 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: uiHandlers.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: uiHandlers.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/**
+ * UI Handlers Module
+ * 
+ * This module manages user interactions and UI state.
+ * Implements:
+ * 1. Drag and Drop system
+ * 2. Event handling
+ * 3. UI state management
+ * 4. Input validation
+ * 
+ * @module uiHandlers
+ */
+
+/**
+ * Initializes drag and drop functionality for tower placement
+ * Implements HTML5 Drag and Drop API
+ * 
+ * @param {HTMLCanvasElement} canvas - Game canvas element
+ * @param {Object} gameState - Current game state
+ * @returns {Object} Drag handlers and state information
+ */
+function initializeDragAndDrop(canvas, gameState) {
+    let draggedTowerType = null;
+    let hoverCell = null;
+
+    const dragHandlers = {
+        /**
+         * Handles start of tower drag operation
+         * Sets up drag data and visual feedback
+         */
+        onDragStart: (e) => {
+            draggedTowerType = e.target.dataset.towerType;
+            e.dataTransfer.setData('text/plain', '');
+        },
+        
+        /**
+         * Handles end of drag operation
+         * Cleans up drag state
+         */
+        onDragEnd: () => {
+            draggedTowerType = null;
+            hoverCell = null;
+        },
+        
+        /**
+         * Handles drag over canvas
+         * Updates hover position and preview
+         */
+        onDragOver: (e) => {
+            e.preventDefault();
+            const rect = canvas.getBoundingClientRect();
+            const x = Math.floor((e.clientX - rect.left) / (canvas.width / 20));
+            const y = Math.floor((e.clientY - rect.top) / (canvas.height / 20));
+            
+            hoverCell = (x >= 0 &amp;&amp; x &lt; 20 &amp;&amp; y >= 0 &amp;&amp; y &lt; 20) ? { x, y } : null;
+        },
+        
+        /**
+         * Handles tower placement on drop
+         * Validates placement and updates game state
+         */
+        onDrop: (e) => {
+            e.preventDefault();
+            if (!draggedTowerType || !hoverCell) return;
+            
+            placeTower(gameState, draggedTowerType, hoverCell);
+            draggedTowerType = null;
+            hoverCell = null;
+        }
+    };
+
+    return { 
+        dragHandlers, 
+        getHoverInfo: () => ({ draggedTowerType, hoverCell }) 
+    };
+}
+
+/**
+ * Places a tower in the game grid
+ * Implements tower placement validation and state updates
+ * 
+ * @param {Object} gameState - Current game state
+ * @param {string} towerType - Type of tower to place
+ * @param {Object} position - Grid position for placement
+ */
+function placeTower(gameState, towerType, position) {
+    const tower = TowerTypes[towerType];
+    if (
+        gameState.grid[position.y][position.x] === 'empty' &amp;&amp;
+        gameState.currency >= tower.cost
+    ) {
+        gameState.grid[position.y][position.x] = 'tower';
+        gameState.towers.push(createTower(towerType, { ...position }));
+        gameState.currency -= tower.cost;
+    }
+} </code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-game.html">game</a></li><li><a href="module-gameState.html">gameState</a></li><li><a href="module-mechanics.html">mechanics</a></li><li><a href="module-path.html">path</a></li><li><a href="module-renderer.html">renderer</a></li><li><a href="module-uiHandlers.html">uiHandlers</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.3</a> on Mon Feb 17 2025 09:19:19 GMT-0500 (Eastern Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
diff --git a/html/tower/index.html b/html/tower/index.html
new file mode 100644
index 0000000..10316b7
--- /dev/null
+++ b/html/tower/index.html
@@ -0,0 +1,116 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>Tower</title>
+    <style>
+        body {
+            margin: 0;
+            display: flex;
+            justify-content: center;
+            align-items: center;
+            min-height: 100vh;
+            background-color: #f0f0f0;
+        }
+        .game-container {
+            position: relative;
+            display: flex;
+            gap: 20px;
+            align-items: flex-start;
+        }
+        #gameCanvas {
+            border: 2px solid #333;
+            background-color: white;
+            position: relative;
+            flex-shrink: 0;
+        }
+        .tower-palette {
+            width: 160px;
+            background: white;
+            border: 2px solid #333;
+            padding: 10px;
+            display: flex;
+            flex-direction: column;
+            gap: 5px;
+            flex-shrink: 0;
+        }
+        .tower-option {
+            width: 140px;
+            height: 75px;
+            cursor: grab;
+            position: relative;
+            display: flex;
+            flex-direction: row;
+            gap: 10px;
+            align-items: center;
+            justify-content: flex-start;
+            padding: 5px;
+        }
+        .tower-option:active {
+            cursor: grabbing;
+        }
+        .tower-preview {
+            width: 25px;
+            height: 25px;
+            flex-shrink: 0;
+        }
+        .tower-info {
+            display: flex;
+            flex-direction: column;
+            align-items: flex-start;
+            gap: 2px;
+            font-family: sans-serif;
+        }
+        .tower-name {
+            font-size: 16px;
+        }
+        .tower-cost {
+            font-size: 12px;
+            color: #000000;
+        }
+        .tower-ammo {
+            font-size: 12px;
+            color: #000000;
+        }
+        .start-button {
+            margin-top: 20px;
+            padding: 10px;
+            background-color: #2ecc71;
+            color: white;
+            border: none;
+            border-radius: 4px;
+            cursor: pointer;
+            font-size: 16px;
+            width: 100%;
+        }
+        .start-button:hover {
+            background-color: #27ae60;
+        }
+        .start-button:disabled {
+            background-color: #95a5a6;
+            cursor: not-allowed;
+        }
+    </style>
+</head>
+<body>
+    <div class="game-container">
+        <div class="tower-palette">
+            <!-- Tower options populated dynamically -->
+        </div>
+        <canvas id="gameCanvas" width="600" height="600"></canvas>
+    </div>
+    
+    <!-- Core game modules -->
+    <script src="js/path.js"></script>
+    <script src="js/mechanics.js"></script>
+    <script src="js/uiHandlers.js"></script>
+    
+    <!-- Rendering modules -->
+    <script src="js/renderer.js"></script>
+    
+    <!-- Game state and main loop -->
+    <script src="js/gameState.js"></script>
+    <script src="js/game.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/html/tower/js/game.js b/html/tower/js/game.js
new file mode 100644
index 0000000..4d8ed39
--- /dev/null
+++ b/html/tower/js/game.js
@@ -0,0 +1,487 @@
+// generate updated docs
+// jsdoc js -d docs
+
+/**
+ * Main game entry point
+ * Initializes the game state and starts the game loop
+ * 
+ * @module game
+ */
+
+/** Canvas elements for rendering the game */
+const canvas = document.getElementById('gameCanvas');
+const ctx = canvas.getContext('2d');
+
+/** Game timing variables */
+let lastTimestamp = 0;
+const ENEMY_SPAWN_INTERVAL = 1000; // 1 second between enemy spawns
+let lastEnemySpawn = 0;
+let enemiesRemaining = 0;
+
+/** Drag and drop state tracking */
+let draggedTowerType = null;
+let hoverCell = null;
+
+/**
+ * Main game loop using requestAnimationFrame
+ * This is the heart of the game, running approximately 60 times per second
+ * 
+ * @param {number} timestamp - Current time in milliseconds, provided by requestAnimationFrame
+ * 
+ * Key concepts:
+ * - RequestAnimationFrame for smooth animation
+ * - Delta time for consistent motion regardless of frame rate
+ * - Game state management
+ */
+function gameLoop(timestamp) {
+    const deltaTime = timestamp - lastTimestamp;
+    lastTimestamp = timestamp;
+    
+    ctx.clearRect(0, 0, canvas.width, canvas.height);
+    
+    if (!gameState.isGameOver) {
+        if (gameState.phase === GamePhase.COMBAT) {
+            handleCombatPhase(timestamp, deltaTime);
+            
+            // Check for level completion
+            if (gameState.checkLevelComplete()) {
+                handleLevelComplete();
+            }
+        }
+    }
+    
+    renderGame();
+    requestAnimationFrame(gameLoop);
+}
+
+/**
+ * Handles all combat phase updates including enemy movement, attacks, and collisions
+ * 
+ * @param {number} timestamp - Current game time in milliseconds
+ * @param {number} deltaTime - Time elapsed since last frame
+ * 
+ * Key concepts:
+ * - Game state updates
+ * - Entity management (enemies, towers, projectiles)
+ * - Particle effects
+ * - Combat mechanics
+ */
+function handleCombatPhase(timestamp, deltaTime) {
+    spawnEnemies(timestamp);
+    updateEnemies();
+    // Update particle effects with time-based animation
+    gameState.particles = updateParticles(gameState.particles, timestamp, deltaTime);
+    // Remove expired projectiles
+    gameState.projectiles = gameState.projectiles.filter(p => timestamp - p.createdAt < p.lifetime);
+    
+    const cellSize = canvas.width / 20;
+    
+    // Process combat interactions
+    processTowerAttacks(
+        gameState.towers,
+        gameState.enemies,
+        gameState.projectiles,
+        gameState.particles,
+        timestamp,
+        cellSize
+    );
+    
+    processEnemyAttacks(
+        gameState.enemies,
+        gameState.towers,
+        gameState.particles,
+        timestamp,
+        cellSize
+    );
+    
+    // Remove defeated enemies and destroyed towers
+    // Uses array filter with a callback that has side effects (awarding currency)
+    gameState.enemies = gameState.enemies.filter(enemy => {
+        if (enemy.currentHealth <= 0) {
+            gameState.awardEnemyDestroyed();
+            return false;
+        }
+        return true;
+    });
+    gameState.towers = gameState.towers.filter(tower => tower.currentHealth > 0);
+}
+
+/**
+ * Spawns new enemies at regular intervals during combat
+ * 
+ * @param {number} timestamp - Current game time in milliseconds
+ * 
+ * Key concepts:
+ * - Time-based game events
+ * - Enemy creation and management
+ * - Game balance through spawn timing
+ */
+function spawnEnemies(timestamp) {
+    if (enemiesRemaining > 0 && timestamp - lastEnemySpawn > ENEMY_SPAWN_INTERVAL) {
+        gameState.enemies.push(createEnemy({ x: 0, y: gameState.path[0].y }));
+        lastEnemySpawn = timestamp;
+        enemiesRemaining--;
+    }
+}
+
+/**
+ * Renders all game elements to the canvas using a layered approach.
+ * This function demonstrates several key game development patterns:
+ * 
+ * 1. Canvas State Management:
+ *    - Uses save()/restore() to isolate rendering contexts
+ *    - Resets transform matrix to prevent state leaks
+ *    - Maintains clean state between rendering phases
+ * 
+ * 2. Layered Rendering Pattern:
+ *    - Renders in specific order (background → entities → UI)
+ *    - Each layer builds on top of previous layers
+ *    - Separates rendering concerns for easier maintenance
+ * 
+ * 3. Separation of Concerns:
+ *    - Each render function handles one specific type of game element
+ *    - UI rendering is isolated from game element rendering
+ *    - Clear boundaries between different rendering responsibilities
+ * 
+ * The rendering order is important:
+ * 1. Grid (background)
+ * 2. Particles (effects under entities)
+ * 3. Projectiles (dynamic game elements)
+ * 4. Towers (static game entities)
+ * 5. Enemies (moving game entities)
+ * 6. UI (top layer)
+ */
+function renderGame() {
+    // Reset the canvas transform matrix to identity
+    // This prevents any previous transformations from affecting new renders
+    ctx.setTransform(1, 0, 0, 1, 0, 0);
+    
+    // Clear the entire canvas to prevent ghosting
+    // This is crucial for animation smoothness
+    ctx.clearRect(0, 0, canvas.width, canvas.height);
+    
+    // Save the initial clean state
+    // This is part of the state stack pattern used in canvas rendering
+    ctx.save();
+    
+    // Render game world elements in specific order
+    // This creates the layered effect common in 2D games
+    renderGrid(ctx, gameState.grid);          // Background layer
+    renderParticles(ctx, gameState.particles); // Effect layer
+    renderProjectiles(ctx, gameState.projectiles); // Dynamic elements
+    renderTowers(ctx, gameState.towers);       // Static entities
+    renderEnemies(ctx, gameState.enemies);     // Moving entities
+    
+    // Restore to clean state before UI rendering
+    // This ensures UI rendering isn't affected by game world rendering
+    ctx.restore();
+    ctx.save();
+    
+    // Render UI elements last so they appear on top
+    // UI is rendered with its own clean state to prevent interference
+    renderUI(ctx, gameState);
+    
+    // Final state restoration
+    // Ensures clean state for next frame
+    ctx.restore();
+}
+
+/**
+ * Initializes the game by:
+ * 1. Generating the path for enemies to follow
+ * 2. Setting up initial enemy count
+ * 3. Binding event listeners
+ * 4. Starting the game loop
+ * 
+ * Uses Promise-based path generation to handle async initialization
+ */
+generatePath(gameState.grid).then(path => {
+    gameState.path = path;
+    // Random enemy count between 5-30 for variety
+    enemiesRemaining = Math.floor(Math.random() * 26) + 5;
+    initializeEventListeners();
+    // Start the game loop using requestAnimationFrame for smooth animation
+    requestAnimationFrame(gameLoop);
+});
+
+/**
+ * Transitions the game from placement to combat phase.
+ * Demonstrates state machine pattern commonly used in games.
+ * 
+ * Side effects:
+ * - Updates game phase
+ * - Disables UI elements
+ * - Updates visual feedback
+ */
+function startCombat() {
+    if (gameState.phase === GamePhase.PLACEMENT && gameState.towers.length > 0) {
+        // State transition
+        gameState.phase = GamePhase.COMBAT;
+        
+        // UI updates
+        document.getElementById('startCombat').disabled = true;
+        
+        // Visual feedback for disabled state
+        document.querySelectorAll('.tower-option').forEach(option => {
+            option.draggable = false;
+            option.style.cursor = 'not-allowed';
+            option.style.opacity = '0.5';
+        });
+    }
+}
+
+/**
+ * Sets up all event listeners for user interaction
+ * 
+ * Key concepts:
+ * - Event-driven programming
+ * - HTML5 Drag and Drop API
+ * - DOM manipulation
+ * - Method decoration (towers.push)
+ */
+function initializeEventListeners() {
+    // Add this at the beginning of the function
+    populateTowerPalette();
+    
+    // Set up tower palette drag events
+    document.querySelectorAll('.tower-option').forEach(option => {
+        option.addEventListener('dragstart', (e) => {
+            draggedTowerType = e.target.dataset.towerType;
+            // Required for Firefox - must set data for drag operation
+            e.dataTransfer.setData('text/plain', '');
+        });
+        
+        option.addEventListener('dragend', () => {
+            draggedTowerType = null;
+            hoverCell = null;
+        });
+    });
+
+    // Set up canvas drag and drop handling
+    canvas.addEventListener('dragover', (e) => {
+        e.preventDefault(); // Required for drop to work
+        const rect = canvas.getBoundingClientRect();
+        // Convert mouse coordinates to grid coordinates
+        const x = Math.floor((e.clientX - rect.left) / (canvas.width / 20));
+        const y = Math.floor((e.clientY - rect.top) / (canvas.height / 20));
+        
+        // Validate grid boundaries
+        if (x >= 0 && x < 20 && y >= 0 && y < 20) {
+            hoverCell = { x, y };
+        } else {
+            hoverCell = null;
+        }
+    });
+
+    canvas.addEventListener('dragleave', () => {
+        hoverCell = null;
+    });
+
+    // Handle tower placement on drop
+    canvas.addEventListener('drop', (e) => {
+        e.preventDefault();
+        if (!draggedTowerType || !hoverCell) return;
+
+        const tower = TowerTypes[draggedTowerType];
+        // Validate placement and currency
+        if (
+            gameState.grid[hoverCell.y][hoverCell.x] === 'empty' &&
+            gameState.currency >= tower.cost
+        ) {
+            gameState.grid[hoverCell.y][hoverCell.x] = 'tower';
+            gameState.towers.push(createTower(draggedTowerType, { ...hoverCell }));
+            gameState.currency -= tower.cost;
+        }
+        
+        // Reset drag state
+        draggedTowerType = null;
+        hoverCell = null;
+    });
+
+    // Combat phase transition
+    document.getElementById('startCombat').addEventListener('click', startCombat);
+    
+    // Dynamic button state management
+    const updateStartButton = () => {
+        const button = document.getElementById('startCombat');
+        button.disabled = gameState.towers.length === 0;
+    };
+    
+    // Decorator pattern: Enhance towers.push to update UI
+    const originalPush = gameState.towers.push;
+    gameState.towers.push = function(...args) {
+        const result = originalPush.apply(this, args);
+        updateStartButton();
+        return result;
+    };
+    
+    updateStartButton();
+}
+
+/**
+ * Handles the transition between levels
+ * Shows completion message and sets up next level
+ */
+function handleLevelComplete() {
+    // Pause the game briefly
+    gameState.phase = GamePhase.TRANSITION;
+    
+    // Calculate ammo bonus
+    let ammoBonus = 0;
+    gameState.towers.forEach(tower => {
+        ammoBonus += tower.ammo * 0.25;
+    });
+    ammoBonus = Math.floor(ammoBonus);
+    
+    // Show level complete message with modal
+    const message = `
+        Level ${gameState.level} Complete!
+        
+        Stats:
+        - Enemies Destroyed: ${gameState.enemiesDestroyed}
+        - Enemies Escaped: ${gameState.enemiesEscaped}
+        
+        Bonuses:
+        - Current Money: $${gameState.currency}
+        - Remaining Ammo Bonus: +$${ammoBonus}
+        
+        Total After Bonuses: $${gameState.currency + ammoBonus + 10}
+        
+        Ready for Level ${gameState.level + 1}?
+    `;
+    
+    // Use setTimeout to allow the final frame to render
+    setTimeout(() => {
+        if (confirm(message)) {
+            startNextLevel();
+        }
+    }, 100);
+}
+
+/**
+ * Sets up the next level
+ * Increases difficulty and resets the game state while preserving currency
+ */
+function startNextLevel() {
+    gameState.advanceToNextLevel();
+    
+    // Generate new path
+    generatePath(gameState.grid).then(path => {
+        gameState.path = path;
+        
+        // Exponential enemy scaling
+        const baseEnemies = 5;
+        const scalingFactor = 1.5;  // Each level increases by 50%
+        enemiesRemaining = Math.floor(baseEnemies * Math.pow(scalingFactor, gameState.level - 1));
+        
+        // Re-enable tower palette
+        document.querySelectorAll('.tower-option').forEach(option => {
+            option.draggable = true;
+            option.style.cursor = 'grab';
+            option.style.opacity = '1';
+        });
+        
+        // Reset start button
+        const startButton = document.getElementById('startCombat');
+        startButton.disabled = false;
+        startButton.textContent = `Start Level ${gameState.level}`;
+    });
+}
+
+// Update the renderUI function to show current level
+function renderUI(ctx, gameState) {
+    ctx.fillStyle = 'black';
+    ctx.font = '20px Arial';
+    ctx.fillText(`Level: ${gameState.level}`, 10, 30);
+    ctx.fillText(`Currency: $${gameState.currency}`, 10, 60);
+    ctx.fillText(`Phase: ${gameState.phase}`, 10, 90);
+    ctx.fillText(`Destroyed: ${gameState.enemiesDestroyed}`, 10, 120);
+    ctx.fillText(`Escaped: ${gameState.enemiesEscaped}`, 10, 150);
+}
+
+/**
+ * Dynamically populates the tower palette based on TowerTypes
+ */
+function populateTowerPalette() {
+    const palette = document.querySelector('.tower-palette');
+    // Clear existing tower options
+    palette.innerHTML = '';
+    
+    // Create tower options dynamically
+    Object.entries(TowerTypes).forEach(([type, tower]) => {
+        const towerOption = document.createElement('div');
+        towerOption.className = 'tower-option';
+        towerOption.draggable = true;
+        towerOption.dataset.towerType = type;
+        
+        towerOption.innerHTML = `
+            <div class="tower-preview" style="background: ${tower.color};"></div>
+            <div class="tower-info">
+                <div class="tower-name">${tower.name}</div>
+                <div class="tower-cost">Cost: $${tower.cost}</div>
+                <div class="tower-ammo">Ammo: ${tower.maxAmmo}</div>
+            </div>
+        `;
+        
+        palette.appendChild(towerOption);
+    });
+    
+    // Add start combat button
+    const startButton = document.createElement('button');
+    startButton.id = 'startCombat';
+    startButton.className = 'start-button';
+    startButton.textContent = 'Start Run';
+    palette.appendChild(startButton);
+}
+
+/**
+ * Handles game over state and prompts for restart
+ */
+function handleGameOver() {
+    gameState.phase = GamePhase.TRANSITION;
+    gameState.isGameOver = true;
+    
+    const message = `
+        Game Over!
+        
+        Final Stats:
+        Level Reached: ${gameState.level}
+        Enemies Destroyed: ${gameState.enemiesDestroyed}
+        Enemies Escaped: ${gameState.enemiesEscaped}
+        
+        Would you like to restart from Level 1?
+    `;
+    
+    setTimeout(() => {
+        if (confirm(message)) {
+            restartGame();
+        }
+    }, 100);
+}
+
+/**
+ * Restarts the game from level 1 with fresh state
+ */
+function restartGame() {
+    gameState.resetGame();
+    
+    // Generate new path
+    generatePath(gameState.grid).then(path => {
+        gameState.path = path;
+        
+        // Reset enemy count to level 1
+        enemiesRemaining = 5;
+        
+        // Re-enable tower palette
+        document.querySelectorAll('.tower-option').forEach(option => {
+            option.draggable = true;
+            option.style.cursor = 'grab';
+            option.style.opacity = '1';
+        });
+        
+        // Reset start button
+        const startButton = document.getElementById('startCombat');
+        startButton.disabled = false;
+        startButton.textContent = 'Start Level 1';
+    });
+} 
\ No newline at end of file
diff --git a/html/tower/js/gameState.js b/html/tower/js/gameState.js
new file mode 100644
index 0000000..ac7a968
--- /dev/null
+++ b/html/tower/js/gameState.js
@@ -0,0 +1,288 @@
+/**
+ * Game State Module
+ * 
+ * This module defines the game state and game phases
+ * 
+ * @module gameState
+ */
+
+
+/**
+ * Game phases
+ * 
+ * @enum {string}
+ * @readonly
+ */
+const GamePhase = {
+    PLACEMENT: 'place',
+    COMBAT: 'run'
+};
+
+/**
+ * Tower types
+ * 
+ * @enum {string}
+ * @readonly
+ */
+const TowerTypes = {
+    BASIC: {
+        name: 'Basic',
+        cost: 5,
+        range: 3,
+        damage: 1,
+        attackSpeed: 1,
+        color: '#3498db',
+        maxAmmo: 75
+    },
+    RAPID: {
+        name: 'Fast',
+        cost: 10,
+        range: 2,
+        damage: 1,
+        attackSpeed: 3,
+        color: '#16a085',
+        maxAmmo: 50
+    },
+    SNIPER: {
+        name: 'Distance',
+        cost: 20,
+        range: 6,
+        damage: 2,
+        attackSpeed: 0.5,
+        color: '#8e44ad',
+        maxAmmo: 50
+    },
+    GOOP: {
+        name: 'Goop',
+        cost: 20,
+        range: 3,
+        damage: 0,
+        attackSpeed: 1,
+        color: '#27ae60',
+        special: 'slow',
+        slowAmount: 0.75,
+        maxAmmo: 25
+    },
+    AOE: {
+        name: 'AOE',
+        cost: 25,
+        range: 2,
+        damage: 3,
+        attackSpeed: 0.25,
+        color: '#d35400',
+        special: 'aoe',
+        aoeRadius: 2,
+        maxAmmo: 25
+    }
+};
+
+/**
+ * Particle types
+ * 
+ * @enum {string}
+ * @readonly
+ */
+const ParticleTypes = {
+    DEATH_PARTICLE: {
+        lifetime: 1000, // milliseconds
+        speed: 0.1,
+        colors: ['#e74c3c', '#c0392b', '#d35400', '#e67e22']
+    },
+    PROJECTILE: {
+        lifetime: 300,
+        speed: 0.3,
+        color: '#ecf0f1'
+    },
+    AOE_EXPLOSION: {
+        lifetime: 500,
+        initialRadius: 10,
+        finalRadius: 60,
+        color: '#d35400',
+        ringWidth: 3
+    },
+    SLIME_TRAIL: {
+        lifetime: 800,
+        color: '#27ae60',  // Same as Goop tower
+        size: 12,
+        fadeStart: 0.2     // When the fade should begin (percentage of lifetime)
+    }
+};
+
+/**
+ * Enemy types
+ * 
+ * @enum {string}
+ * @readonly
+ */
+const EnemyTypes = {
+    BASIC: {
+        color: '#c0392b',
+        baseHealth: { min: 2, max: 6 },
+        speed: { min: 1, max: 1.5 },
+        damage: 0,
+        isRanged: false
+    },
+    RANGED: {
+        color: '#2c3e50',
+        baseHealth: { min: 1, max: 4 },
+        speed: { min: 0.7, max: 1.2 },
+        damage: 0.3,
+        attackRange: 3,
+        attackSpeed: 1, // attacks per second
+        isRanged: true
+    }
+};
+
+/**
+ * Creates a tower
+ * 
+ * @param {string} type - Tower type
+ * @param {Object} position - Position of the tower
+ */
+function createTower(type, position) {
+    const towerType = TowerTypes[type];
+    return {
+        ...towerType,
+        type,
+        position,
+        lastAttackTime: 0,
+        currentHealth: 10,
+        maxHealth: 10,
+        ammo: towerType.maxAmmo  // Initialize ammo
+    };
+}
+
+/**
+ * Creates an enemy
+ * 
+ * @param {Object} startPosition - Starting position of the enemy
+ */
+function createEnemy(startPosition) {
+    // 20% chance for ranged enemy
+    const type = Math.random() < 0.2 ? 'RANGED' : 'BASIC';
+    const enemyType = EnemyTypes[type];
+    
+    // Scale health ranges with level
+    const levelScaling = 1 + (gameState.level - 1) * 0.25; // increase health by 25% per level
+    const minHealth = Math.floor(enemyType.baseHealth.min * levelScaling);
+    const maxHealth = Math.floor(enemyType.baseHealth.max * levelScaling);
+    
+    const health = Math.floor(Math.random() * 
+        (maxHealth - minHealth + 1)) + minHealth;
+    
+    return {
+        position: { ...startPosition },
+        currentHealth: health,
+        maxHealth: health,
+        speed: enemyType.speed.min + Math.random() * (enemyType.speed.max - enemyType.speed.min),
+        pathIndex: 0,
+        type,
+        lastAttackTime: 0,
+        damage: enemyType.damage
+    };
+}
+
+/**
+ * Creates a particle
+ * 
+ * @param {string} type - Particle type
+ * @param {Object} position - Position of the particle
+ */
+function createParticle(type, position, angle) {
+    return {
+        position: { ...position },
+        velocity: {
+            x: Math.cos(angle) * type.speed,
+            y: Math.sin(angle) * type.speed
+        },
+        color: Array.isArray(type.colors) 
+            ? type.colors[Math.floor(Math.random() * type.colors.length)]
+            : type.color,
+        createdAt: performance.now(),
+        lifetime: type.lifetime,
+        size: 3 + Math.random() * 2
+    };
+}
+
+
+/**
+ * Game state
+ * 
+ * @type {Object}
+ */
+const gameState = {
+    grid: Array(20).fill().map(() => Array(20).fill('empty')),
+    path: [],
+    towers: [],
+    enemies: [],
+    currency: 100,
+    phase: GamePhase.PLACEMENT,
+    isGameOver: false,
+    particles: [],
+    projectiles: [],
+    enemiesDestroyed: 0,
+    enemiesEscaped: 0,
+    level: 1,
+    
+    /**
+     * Resets the game state
+     */
+    resetGame() {
+        this.grid = Array(20).fill().map(() => Array(20).fill('empty'));
+        this.path = [];
+        this.towers = [];
+        this.enemies = [];
+        this.currency = 100;
+        this.phase = GamePhase.PLACEMENT;
+        this.isGameOver = false;
+        this.particles = [];
+        this.projectiles = [];
+        this.enemiesDestroyed = 0;
+        this.enemiesEscaped = 0;
+        this.level = 1;
+    },
+    
+
+    /**
+     * Awards the enemy destroyed
+     */
+    awardEnemyDestroyed() {
+        this.enemiesDestroyed++;
+        // Random reward between 1 and 3
+        const reward = Math.floor(Math.random() * 3) + 1;
+        this.currency += reward;
+    },
+    
+
+    /**
+     * Checks if the level is complete
+     * 
+     * @returns {boolean}
+     */
+    checkLevelComplete() {
+        return this.enemies.length === 0 && 
+               enemiesRemaining === 0 && 
+               this.phase === GamePhase.COMBAT;
+    },
+    
+
+    /**
+     * Advances to the next level
+     */
+    advanceToNextLevel() {
+
+        let ammoBonus = 0;
+        this.towers.forEach(tower => {
+            ammoBonus += tower.ammo * 0.25;
+        });
+        this.currency += Math.floor(ammoBonus);  // Round down to nearest whole number
+        
+        this.level++;
+        this.phase = GamePhase.PLACEMENT;
+        this.towers = [];
+        this.enemies = [];
+        this.projectiles = [];
+        this.particles = [];
+        this.grid = Array(20).fill().map(() => Array(20).fill('empty'));
+    }
+}; 
\ No newline at end of file
diff --git a/html/tower/js/mechanics.js b/html/tower/js/mechanics.js
new file mode 100644
index 0000000..bc73fff
--- /dev/null
+++ b/html/tower/js/mechanics.js
@@ -0,0 +1,430 @@
+/**
+ * Combat Mechanics Module
+ *  
+ * This module handles all combat-related game mechanics including:
+ * 1. Enemy movement and behavior
+ * 2. Tower attacks and targeting
+ * 3. Projectile and particle systems
+ * 4. Status effects and special abilities
+ * 
+ * @module mechanics
+ */
+
+/**
+ * Updates all enemy states including movement, health, and status effects
+ * Implements core game loop mechanics for enemy behavior
+ * 
+ * Key features:
+ * - Path following
+ * - Health management
+ * - Status effect processing
+ * - Collision detection
+ * 
+ * @returns {void}
+ */
+function updateEnemies() {
+    const cellSize = canvas.width / 20;
+    
+    gameState.enemies = gameState.enemies.filter(enemy => {
+        // Initialize progress tracking for new enemies
+        if (typeof enemy.progress === 'undefined') {
+            enemy.progress = 0;
+        }
+        
+        // Update movement progress
+        enemy.progress += enemy.speed * 0.001;
+        
+        // Handle path completion
+        if (enemy.progress >= 1) {
+            gameState.enemiesEscaped++;
+            // Deduct currency when enemy escapes
+            gameState.currency = Math.max(0, gameState.currency - 10);
+            // Check for game over
+            if (gameState.currency <= 0) {
+                handleGameOver();
+            }
+            return false;
+        }
+        
+        // Projectile collision detection and damage application
+        const hitByProjectile = gameState.projectiles.some(projectile => {
+            // Calculate current projectile position based on lifetime
+            const age = performance.now() - projectile.createdAt;
+            const progress = Math.min(age / projectile.lifetime, 1);
+            
+            const currentX = projectile.startPos.x + (projectile.targetPos.x - projectile.startPos.x) * progress;
+            const currentY = projectile.startPos.y + (projectile.targetPos.y - projectile.startPos.y) * progress;
+            
+            const distance = Math.hypot(
+                enemy.position.x - currentX,
+                enemy.position.y - currentY
+            );
+            
+            if (distance < 0.5) {
+                // Apply damage when projectile hits
+                enemy.currentHealth -= projectile.damage;
+                return true;
+            }
+            return false;
+        });
+        
+        if (enemy.currentHealth <= 0) {
+            gameState.awardEnemyDestroyed();
+            // Create death particles
+            gameState.particles.push(...createDeathParticles(enemy, cellSize));
+            return false;
+        }
+        
+        // Update position based on path progress
+        const pathPosition = getPathPosition(enemy.progress, gameState.path);
+        enemy.position.x = pathPosition.x;
+        enemy.position.y = pathPosition.y;
+        
+        // Process slow effect expiration
+        if (enemy.slowed && performance.now() > enemy.slowExpiry) {
+            enemy.slowed = false;
+            enemy.slowStacks = 0;
+            enemy.currentSlowAmount = 0;
+            enemy.speed = enemy.originalSpeed;
+        }
+        
+        // Visual feedback for slowed status
+        if (enemy.slowed && Math.random() < 0.2 + (enemy.slowStacks * 0.05)) {
+            gameState.particles.push(createSlimeTrail(enemy, cellSize));
+        }
+        
+        return true;
+    });
+    
+    // Remove projectiles that hit enemies
+    gameState.projectiles = gameState.projectiles.filter(projectile => {
+        const age = performance.now() - projectile.createdAt;
+        if (age >= projectile.lifetime) return false;
+        
+        const progress = age / projectile.lifetime;
+        const currentX = projectile.startPos.x + (projectile.targetPos.x - projectile.startPos.x) * progress;
+        const currentY = projectile.startPos.y + (projectile.targetPos.y - projectile.startPos.y) * progress;
+        
+        const hitEnemy = gameState.enemies.some(enemy => {
+            const distance = Math.hypot(
+                enemy.position.x - currentX,
+                enemy.position.y - currentY
+            );
+            return distance < 0.5;
+        });
+        
+        return !hitEnemy;
+    });
+}
+
+/**
+ * Updates particle effects with time-based animation
+ * Implements particle system lifecycle management
+ * 
+ * @param {Array<Object>} particles - Array of particle objects
+ * @param {number} timestamp - Current game timestamp
+ * @param {number} deltaTime - Time elapsed since last frame
+ * @returns {Array<Object>} Updated particles array
+ */
+function updateParticles(particles, timestamp, deltaTime) {
+    return particles.filter(particle => {
+        const age = timestamp - particle.createdAt;
+        if (age > particle.lifetime) return false;
+        
+        if (particle.velocity) {
+            particle.position.x += particle.velocity.x * deltaTime;
+            particle.position.y += particle.velocity.y * deltaTime;
+        }
+        
+        return true;
+    });
+}
+
+/**
+ * Creates death effect particles for defeated entities
+ * Implements visual feedback system
+ * 
+ * @param {Object} target - The defeated entity
+ * @param {number} cellSize - Size of grid cell for scaling
+ * @returns {Array<Object>} Array of particle objects
+ */
+function createDeathParticles(target, cellSize) {
+    const particles = [];
+    const centerX = (target.position.x + 0.5) * cellSize;
+    const centerY = (target.position.y + 0.5) * cellSize;
+    
+    const particleCount = 8 + Math.floor(Math.random() * 8);
+    for (let i = 0; i < particleCount; i++) {
+        const baseAngle = (Math.PI * 2 * i) / particleCount;
+        const randomAngle = baseAngle + (Math.random() - 0.5) * 1.5;
+        const speedMultiplier = 0.7 + Math.random() * 0.6;
+        const startOffset = Math.random() * 5;
+        
+        particles.push(createParticle(
+            {
+                ...ParticleTypes.DEATH_PARTICLE,
+                speed: ParticleTypes.DEATH_PARTICLE.speed * speedMultiplier,
+                lifetime: ParticleTypes.DEATH_PARTICLE.lifetime * (0.8 + Math.random() * 0.4)
+            },
+            {
+                x: centerX + Math.cos(randomAngle) * startOffset,
+                y: centerY + Math.sin(randomAngle) * startOffset
+            },
+            randomAngle
+        ));
+    }
+    return particles;
+}
+
+/**
+ * Processes tower attacks and targeting
+ * Implements combat mechanics and special abilities
+ * 
+ * @param {Array<Object>} towers - Array of tower objects
+ * @param {Array<Object>} enemies - Array of enemy objects
+ * @param {Array<Object>} projectiles - Array of projectile objects
+ * @param {Array<Object>} particles - Array of particle objects
+ * @param {number} timestamp - Current game timestamp
+ * @param {number} cellSize - Size of grid cell for scaling
+ */
+function processTowerAttacks(towers, enemies, projectiles, particles, timestamp, cellSize) {
+    towers.forEach(tower => {
+        if (timestamp - tower.lastAttackTime > 1000 / tower.attackSpeed) {
+            const enemiesInRange = findEnemiesInRange(tower, enemies);
+            
+            if (enemiesInRange.length > 0 && tower.ammo > 0) {
+                const target = enemiesInRange[0];
+                handleTowerAttack(tower, target, projectiles, particles, timestamp, cellSize);
+            }
+        }
+    });
+}
+
+function findEnemiesInRange(tower, enemies) {
+    return enemies.filter(enemy => {
+        const dx = enemy.position.x - tower.position.x;
+        const dy = enemy.position.y - tower.position.y;
+        return Math.sqrt(dx * dx + dy * dy) <= tower.range;
+    });
+}
+
+function createAOEExplosion(position, cellSize) {
+    return {
+        position: {
+            x: (position.x + 0.5) * cellSize,
+            y: (position.y + 0.5) * cellSize
+        },
+        createdAt: performance.now(),
+        type: 'AOE_EXPLOSION',
+        ...ParticleTypes.AOE_EXPLOSION
+    };
+}
+
+function createSlimeTrail(enemy, cellSize) {
+    return {
+        position: {
+            x: (enemy.position.x + 0.5) * cellSize,
+            y: (enemy.position.y + 0.5) * cellSize
+        },
+        createdAt: performance.now(),
+        type: 'SLIME_TRAIL',
+        ...ParticleTypes.SLIME_TRAIL
+    };
+}
+
+/**
+ * Handles individual tower attack logic including special effects
+ * Implements tower ability system
+ * 
+ * @param {Object} tower - Attacking tower
+ * @param {Object} target - Target enemy
+ * @param {Array<Object>} projectiles - Projectile array
+ * @param {Array<Object>} particles - Particle array
+ * @param {number} timestamp - Current game timestamp
+ * @param {number} cellSize - Grid cell size
+ */
+function handleTowerAttack(tower, target, projectiles, particles, timestamp, cellSize) {
+    // Only attack if we have ammo
+    if (tower.ammo <= 0) return;
+    
+    // Decrease ammo (already checked it's > 0)
+    tower.ammo--;
+    
+    // Create projectile
+    projectiles.push({
+        startPos: { ...tower.position },
+        targetPos: { ...target.position },
+        createdAt: timestamp,
+        lifetime: 300,
+        towerType: tower.type,
+        damage: tower.damage
+    });
+    
+    // Process special abilities
+    if (tower.special === 'slow') {
+        handleSlowEffect(target, tower, timestamp, particles, cellSize);
+    } else if (tower.special === 'aoe') {
+        handleAOEEffect(target, tower, gameState.enemies, particles, cellSize);
+    }
+    
+    tower.lastAttackTime = timestamp;
+}
+
+/**
+ * Processes enemy attack behaviors and targeting
+ * Implements enemy combat AI
+ * 
+ * @param {Array<Object>} enemies - Array of enemy objects
+ * @param {Array<Object>} towers - Array of tower objects
+ * @param {Array<Object>} particles - Particle effect array
+ * @param {number} timestamp - Current game timestamp
+ * @param {number} cellSize - Grid cell size
+ */
+function processEnemyAttacks(enemies, towers, particles, timestamp, cellSize) {
+    enemies.forEach(enemy => {
+        if (!EnemyTypes[enemy.type].isRanged) return;
+        
+        if (timestamp - enemy.lastAttackTime > 1000 / EnemyTypes[enemy.type].attackSpeed) {
+            const towersInRange = findTowersInRange(enemy, towers);
+            
+            if (towersInRange.length > 0) {
+                const target = towersInRange[0];
+                handleEnemyAttack(enemy, target, particles, timestamp, cellSize);
+            }
+        }
+    });
+}
+
+/**
+ * Finds towers within enemy attack range
+ * Implements targeting system for enemies
+ * 
+ * @param {Object} enemy - Enemy doing the targeting
+ * @param {Array<Object>} towers - Array of potential tower targets
+ * @returns {Array<Object>} Array of towers in range
+ */
+function findTowersInRange(enemy, towers) {
+    return towers.filter(tower => {
+        const dx = tower.position.x - enemy.position.x;
+        const dy = tower.position.y - enemy.position.y;
+        return Math.sqrt(dx * dx + dy * dy) <= EnemyTypes[enemy.type].attackRange;
+    });
+}
+
+/**
+ * Handles enemy attack execution and effects
+ * Implements enemy combat mechanics
+ * 
+ * @param {Object} enemy - Attacking enemy
+ * @param {Object} tower - Target tower
+ * @param {Array<Object>} particles - Particle array for effects
+ * @param {number} timestamp - Current game timestamp
+ * @param {number} cellSize - Grid cell size
+ */
+function handleEnemyAttack(enemy, tower, particles, timestamp, cellSize) {
+    // Create projectile effect
+    particles.push(createParticle(
+        {
+            ...ParticleTypes.PROJECTILE,
+            color: '#8e44ad80', // Semi-transparent purple
+            lifetime: 500
+        },
+        {
+            x: (enemy.position.x + 0.5) * cellSize,
+            y: (enemy.position.y + 0.5) * cellSize
+        },
+        Math.atan2(
+            tower.position.y - enemy.position.y,
+            tower.position.x - enemy.position.x
+        )
+    ));
+    
+    // Apply damage and update tower state
+    tower.currentHealth -= enemy.damage;
+    enemy.lastAttackTime = timestamp;
+    
+    // Dynamic damage reduction based on tower health
+    tower.damage = TowerTypes[tower.type].damage * (tower.currentHealth / tower.maxHealth);
+}
+
+/**
+ * Handles slow effect application and stacking
+ * Implements status effect system
+ * 
+ * @param {Object} target - Enemy to apply slow to
+ * @param {Object} tower - Tower applying the effect
+ * @param {number} timestamp - Current game timestamp
+ * @param {Array<Object>} particles - Particle array for effects
+ * @param {number} cellSize - Grid cell size
+ */
+function handleSlowEffect(target, tower, timestamp, particles, cellSize) {
+    // Initialize slow effect tracking
+    if (!target.slowStacks) {
+        target.slowStacks = 0;
+    }
+    
+    const maxStacks = 5;  // Maximum 5 stacks
+    if (target.slowStacks < maxStacks) {
+        target.slowStacks++;
+        // Each stack slows by an additional 10% (multiplicative)
+        const newSlowAmount = 1 - Math.pow(0.9, target.slowStacks);
+        
+        // Only update if new slow is stronger
+        if (!target.slowed || newSlowAmount > target.currentSlowAmount) {
+            const originalSpeed = target.originalSpeed || target.speed;
+            target.originalSpeed = originalSpeed;
+            target.speed = originalSpeed * (1 - newSlowAmount);
+            target.currentSlowAmount = newSlowAmount;
+            target.slowed = true;
+        }
+        
+        // Visual feedback particles
+        for (let i = 0; i < 4 + target.slowStacks; i++) {
+            particles.push(createSlimeTrail(target, cellSize));
+        }
+    }
+    
+    // Refresh effect duration
+    target.slowExpiry = timestamp + 2000;  // 2 second duration
+}
+
+/**
+ * Handles AOE (Area of Effect) damage and visual effects
+ * Implements area damage system
+ * 
+ * @param {Object} target - Primary target
+ * @param {Object} tower - Tower dealing AOE damage
+ * @param {Array<Object>} enemies - All enemies for AOE calculation
+ * @param {Array<Object>} particles - Particle array for effects
+ * @param {number} cellSize - Grid cell size
+ */
+function handleAOEEffect(target, tower, enemies, particles, cellSize) {
+    // Find all enemies in AOE radius
+    const enemiesInAOE = enemies.filter(enemy => {
+        const dx = enemy.position.x - target.position.x;
+        const dy = enemy.position.y - target.position.y;
+        return Math.sqrt(dx * dx + dy * dy) <= tower.aoeRadius;
+    });
+    
+    // Create explosion effect
+    particles.push(createAOEExplosion(target.position, cellSize));
+    
+    // Apply AOE damage
+    enemiesInAOE.forEach(enemy => {
+        enemy.currentHealth -= tower.damage;
+        if (enemy.currentHealth <= 0) {
+            particles.push(...createDeathParticles(enemy, cellSize));
+        }
+    });
+}
+
+// Update createEnemy to track original speed
+function createEnemy(startPosition) {
+    const enemy = {
+        // ... existing enemy properties ...
+        slowStacks: 0,
+        currentSlowAmount: 0
+    };
+    enemy.originalSpeed = enemy.speed;  // Store original speed
+    return enemy;
+} 
\ No newline at end of file
diff --git a/html/tower/js/path.js b/html/tower/js/path.js
new file mode 100644
index 0000000..8b840ce
--- /dev/null
+++ b/html/tower/js/path.js
@@ -0,0 +1,176 @@
+/**
+ * Path Generation Module
+ * 
+ * This module demonstrates several advanced game development concepts:
+ * 1. Procedural Content Generation (PCG)
+ * 2. Pathfinding algorithms
+ * 3. Constraint-based generation
+ * 
+ * @module path
+ */
+
+/**
+ * Generates a valid path through the game grid using a modified depth-first search.
+ * This algorithm ensures:
+ * - Path always moves from left to right
+ * - No diagonal movements
+ * - No path segments touch each other (except at turns)
+ * - Path is always completable
+ * 
+ * @param {Array<Array<string>>} grid - 2D array representing the game grid
+ * @returns {Promise<Array<{x: number, y: number}>>} Promise resolving to array of path coordinates
+ * 
+ * Implementation uses:
+ * - Backtracking algorithm pattern
+ * - Constraint satisfaction
+ * - Random selection for variety
+ */
+function generatePath(grid) {
+    const width = grid[0].length;
+    const height = grid.length;
+    
+    // Initialize with random start point on left edge
+    const startY = Math.floor(Math.random() * height);
+    let currentPos = { x: 0, y: startY };
+    
+    const path = [currentPos];
+    grid[startY][0] = 'path';
+    
+    /**
+     * Determines valid moves from current position based on game rules
+     * Uses constraint checking to ensure path validity
+     * 
+     * @param {Object} pos - Current position {x, y}
+     * @returns {Array<{x: number, y: number}>} Array of valid next positions
+     */
+    function getValidMoves(pos) {
+        const moves = [];
+        // Prioritize right movement for path progression
+        const directions = [
+            { x: 1, y: 0 },  // right
+            { x: 0, y: -1 }, // up
+            { x: 0, y: 1 }   // down
+        ];
+        
+        for (const dir of directions) {
+            const newX = pos.x + dir.x;
+            const newY = pos.y + dir.y;
+            
+            // Enforce boundary constraints
+            if (newX < 0 || newX >= width || newY < 0 || newY >= height) {
+                continue;
+            }
+            
+            // Check path isolation constraint
+            if (grid[newY][newX] === 'empty' && !hasAdjacentPath(newX, newY, grid)) {
+                moves.push({ x: newX, y: newY });
+            }
+        }
+        
+        return moves;
+    }
+    
+    /**
+     * Checks if a position has adjacent path tiles (excluding previous path tile)
+     * Implements path isolation constraint
+     * 
+     * @param {number} x - X coordinate to check
+     * @param {number} y - Y coordinate to check
+     * @param {Array<Array<string>>} grid - Current grid state
+     * @returns {boolean} True if position has adjacent path tiles
+     */
+    function hasAdjacentPath(x, y, grid) {
+        const adjacentCells = [
+            { x: x, y: y - 1 },     // up
+            { x: x, y: y + 1 },     // down
+            { x: x - 1, y: y },     // left
+            { x: x + 1, y: y },     // right
+        ];
+        
+        return adjacentCells.some(cell => {
+            if (cell.x < 0 || cell.x >= width || cell.y < 0 || cell.y >= height) {
+                return false;
+            }
+            return grid[cell.y][cell.x] === 'path' && 
+                   !path.some(p => p.x === cell.x && p.y === cell.y);
+        });
+    }
+    
+    // Main path generation loop with backtracking
+    while (currentPos.x < width - 1) {
+        const moves = getValidMoves(currentPos);
+        
+        if (moves.length === 0) {
+            // Backtrack when no valid moves exist
+            if (path.length <= 1) {
+                // Restart if backtracking fails
+                return generatePath(grid);
+            }
+            
+            path.pop();
+            const lastPos = path[path.length - 1];
+            grid[currentPos.y][currentPos.x] = 'empty';
+            currentPos = lastPos;
+            continue;
+        }
+        
+        // Random selection for path variety
+        const nextMove = moves[Math.floor(Math.random() * moves.length)];
+        currentPos = nextMove;
+        path.push(currentPos);
+        grid[currentPos.y][currentPos.x] = 'path';
+    }
+    
+    return Promise.resolve(path);
+}
+
+/**
+ * Calculates a position along the path based on a progress value
+ * Implements smooth entity movement along path segments
+ * 
+ * @param {number} progress - Progress along path (0-1)
+ * @param {Array<{x: number, y: number}>} path - Array of path coordinates
+ * @returns {{x: number, y: number}} Interpolated position along path
+ * 
+ * Uses:
+ * - Linear interpolation (lerp)
+ * - Path segment traversal
+ * - Normalized progress tracking
+ */
+function getPathPosition(progress, path) {
+    // Normalize progress to valid range
+    progress = Math.max(0, Math.min(1, progress));
+    
+    // Calculate total path length for normalization
+    let totalLength = 0;
+    for (let i = 1; i < path.length; i++) {
+        const dx = path[i].x - path[i-1].x;
+        const dy = path[i].y - path[i-1].y;
+        totalLength += Math.sqrt(dx * dx + dy * dy);
+    }
+    
+    // Convert progress to distance along path
+    const targetDistance = progress * totalLength;
+    
+    // Find appropriate path segment
+    let currentDistance = 0;
+    for (let i = 1; i < path.length; i++) {
+        const dx = path[i].x - path[i-1].x;
+        const dy = path[i].y - path[i-1].y;
+        const segmentLength = Math.sqrt(dx * dx + dy * dy);
+        
+        if (currentDistance + segmentLength >= targetDistance) {
+            // Linear interpolation within segment
+            const segmentProgress = (targetDistance - currentDistance) / segmentLength;
+            return {
+                x: path[i-1].x + dx * segmentProgress,
+                y: path[i-1].y + dy * segmentProgress
+            };
+        }
+        
+        currentDistance += segmentLength;
+    }
+    
+    // Fallback to end of path
+    return { ...path[path.length - 1] };
+} 
\ No newline at end of file
diff --git a/html/tower/js/renderer.js b/html/tower/js/renderer.js
new file mode 100644
index 0000000..fce4b88
--- /dev/null
+++ b/html/tower/js/renderer.js
@@ -0,0 +1,381 @@
+/**
+ * Rendering Module
+ * 
+ * This module handles all game rendering operations using HTML5 Canvas.
+ * Demonstrates key game development patterns:
+ * 1. Layer-based rendering
+ * 2. Particle systems
+ * 3. Visual state feedback
+ * 4. Canvas state management
+ * 
+ * @module renderer
+ */
+
+/**
+ * Renders the game grid with path and hover previews
+ * Implements visual feedback for player actions
+ * 
+ * @param {CanvasRenderingContext2D} ctx - Canvas rendering context
+ * @param {Array<Array<string>>} grid - Game grid state
+ */
+function renderGrid(ctx, grid) {
+    const cellSize = canvas.width / 20;
+    
+    // Draw grid lines for visual reference
+    ctx.strokeStyle = '#ccc';
+    ctx.lineWidth = 1;
+    
+    for (let i = 0; i <= 20; i++) {
+        // Vertical lines
+        ctx.beginPath();
+        ctx.moveTo(i * cellSize, 0);
+        ctx.lineTo(i * cellSize, canvas.height);
+        ctx.stroke();
+        
+        // Horizontal lines
+        ctx.beginPath();
+        ctx.moveTo(0, i * cellSize);
+        ctx.lineTo(canvas.width, i * cellSize);
+        ctx.stroke();
+    }
+    
+    // Render grid cells with path highlighting
+    grid.forEach((row, y) => {
+        row.forEach((cell, x) => {
+            if (cell === 'path') {
+                ctx.fillStyle = '#f4a460';
+                ctx.fillRect(x * cellSize, y * cellSize, cellSize, cellSize);
+            }
+        });
+    });
+
+    // Render tower placement preview
+    if (gameState.phase === GamePhase.PLACEMENT && draggedTowerType && hoverCell) {
+        const tower = TowerTypes[draggedTowerType];
+        const canPlace = grid[hoverCell.y][hoverCell.x] === 'empty' &&
+                        gameState.playerCurrency >= tower.cost;
+        
+        // Visual feedback for placement validity
+        ctx.fillStyle = canPlace ? tower.color + '80' : 'rgba(255, 0, 0, 0.3)';
+        ctx.fillRect(
+            hoverCell.x * cellSize,
+            hoverCell.y * cellSize,
+            cellSize,
+            cellSize
+        );
+        
+        // Range indicator preview
+        ctx.beginPath();
+        ctx.arc(
+            (hoverCell.x + 0.5) * cellSize,
+            (hoverCell.y + 0.5) * cellSize,
+            tower.range * cellSize,
+            0,
+            Math.PI * 2
+        );
+        ctx.strokeStyle = canPlace ? tower.color + '40' : 'rgba(255, 0, 0, 0.2)';
+        ctx.stroke();
+    }
+}
+
+/**
+ * Renders all enemies with health indicators and effects
+ * Implements visual state representation
+ * 
+ * @param {CanvasRenderingContext2D} ctx - Canvas rendering context
+ * @param {Array<Object>} enemies - Array of enemy objects
+ */
+function renderEnemies(ctx, enemies) {
+    const cellSize = canvas.width / 20;
+    
+    enemies.forEach(enemy => {
+        // Health-based opacity for visual feedback
+        const healthPercent = enemy.currentHealth / enemy.maxHealth;
+        const opacity = 0.3 + (healthPercent * 0.7);
+        
+        // Dynamic color based on enemy state
+        const color = EnemyTypes[enemy.type].color;
+        const hexOpacity = Math.floor(opacity * 255).toString(16).padStart(2, '0');
+        
+        // Draw enemy body with solid black border
+        ctx.beginPath();
+        ctx.arc(
+            (enemy.position.x + 0.5) * cellSize,
+            (enemy.position.y + 0.5) * cellSize,
+            cellSize / 3,
+            0,
+            Math.PI * 2
+        );
+        
+        // Fill with dynamic opacity
+        ctx.fillStyle = `${color}${hexOpacity}`;
+        ctx.fill();
+        
+        // Add solid black border
+        ctx.strokeStyle = 'black';
+        ctx.lineWidth = 2;
+        ctx.stroke();
+        
+        // Range indicator for special enemy types
+        if (EnemyTypes[enemy.type].isRanged) {
+            ctx.beginPath();
+            ctx.arc(
+                (enemy.position.x + 0.5) * cellSize,
+                (enemy.position.y + 0.5) * cellSize,
+                EnemyTypes[enemy.type].attackRange * cellSize,
+                0,
+                Math.PI * 2
+            );
+            ctx.strokeStyle = `${EnemyTypes[enemy.type].color}40`;
+            ctx.stroke();
+        }
+    });
+}
+
+/**
+ * Renders game UI elements with clean state management
+ * Implements heads-up display (HUD) pattern
+ * 
+ * @param {CanvasRenderingContext2D} ctx - Canvas rendering context
+ * @param {Object} gameState - Current game state
+ */
+function renderUI(ctx, gameState) {
+    const padding = 20;
+    const lineHeight = 30;
+    const startY = padding;
+    const width = 200;
+    const height = lineHeight * 5;
+    
+    // Save the current canvas state
+    ctx.save();
+    
+    // Reset any transformations
+    ctx.setTransform(1, 0, 0, 1, 0, 0);
+    
+    // Semi-transparent background for readability
+    ctx.fillStyle = 'rgba(255, 255, 255, 0.8)';
+    ctx.fillRect(0, 0, width, height + padding);
+    
+    // Text rendering setup
+    ctx.fillStyle = 'black';
+    ctx.font = '20px Arial';
+    ctx.textAlign = 'left';
+    ctx.textBaseline = 'top';
+    
+    // Game state information
+    ctx.fillText(`Level: ${gameState.level}`, padding, startY);
+    ctx.fillText(`Currency: $${gameState.currency}`, padding, startY + lineHeight);
+    ctx.fillText(`Phase: ${gameState.phase}`, padding, startY + lineHeight * 2);
+    ctx.fillText(`Destroyed: ${gameState.enemiesDestroyed}`, padding, startY + lineHeight * 3);
+    ctx.fillText(`Escaped: ${gameState.enemiesEscaped}`, padding, startY + lineHeight * 4);
+    
+    // Restore the canvas state
+    ctx.restore();
+}
+
+function renderTowers(ctx, towers) {
+    const cellSize = canvas.width / 20;
+    
+    towers.forEach(tower => {
+        const healthPercent = tower.currentHealth / tower.maxHealth;
+        
+        // Draw tower body
+        ctx.fillStyle = tower.color + Math.floor(healthPercent * 255).toString(16).padStart(2, '0');
+        ctx.fillRect(
+            tower.position.x * cellSize + cellSize * 0.1,
+            tower.position.y * cellSize + cellSize * 0.1,
+            cellSize * 0.8,
+            cellSize * 0.8
+        );
+        
+        // Draw ammo count
+        ctx.fillStyle = 'white';
+        ctx.font = '12px Arial';
+        ctx.textAlign = 'center';
+        ctx.fillText(
+            tower.ammo,
+            (tower.position.x + 0.5) * cellSize,
+            (tower.position.y + 0.7) * cellSize
+        );
+        
+        // Draw range indicator
+        if (gameState.phase === GamePhase.PLACEMENT) {
+            ctx.beginPath();
+            ctx.arc(
+                (tower.position.x + 0.5) * cellSize,
+                (tower.position.y + 0.5) * cellSize,
+                tower.range * cellSize,
+                0,
+                Math.PI * 2
+            );
+            ctx.strokeStyle = tower.color + '40';
+            ctx.stroke();
+        }
+    });
+}
+
+// Add new render function for particles
+function renderParticles(ctx, particles) {
+    particles.forEach(particle => {
+        const age = performance.now() - particle.createdAt;
+        const lifePercent = age / particle.lifetime;
+        
+        if (lifePercent <= 1) {
+            if (particle.type === 'SLIME_TRAIL') {
+                // Calculate opacity based on lifetime and fade start
+                let opacity = 1;
+                if (lifePercent > particle.fadeStart) {
+                    opacity = 1 - ((lifePercent - particle.fadeStart) / (1 - particle.fadeStart));
+                }
+                opacity *= 0.3; // Make it translucent
+                
+                ctx.globalAlpha = opacity;
+                ctx.fillStyle = particle.color;
+                
+                // Draw a circular slime splat
+                ctx.beginPath();
+                ctx.arc(
+                    particle.position.x,
+                    particle.position.y,
+                    particle.size * (1 - lifePercent * 0.3), // Slightly shrink over time
+                    0,
+                    Math.PI * 2
+                );
+                ctx.fill();
+                
+                // Add some variation to the splat
+                for (let i = 0; i < 3; i++) {
+                    const angle = (Math.PI * 2 * i) / 3;
+                    const distance = particle.size * 0.4;
+                    ctx.beginPath();
+                    ctx.arc(
+                        particle.position.x + Math.cos(angle) * distance,
+                        particle.position.y + Math.sin(angle) * distance,
+                        particle.size * 0.4 * (1 - lifePercent * 0.3),
+                        0,
+                        Math.PI * 2
+                    );
+                    ctx.fill();
+                }
+            } else if (particle.type === 'AOE_EXPLOSION') {
+                // Draw expanding circle
+                const radius = particle.initialRadius + 
+                    (particle.finalRadius - particle.initialRadius) * lifePercent;
+                
+                // Draw multiple rings for better effect
+                const numRings = 3;
+                for (let i = 0; i < numRings; i++) {
+                    const ringRadius = radius * (1 - (i * 0.2));
+                    const ringAlpha = (1 - lifePercent) * (1 - (i * 0.3));
+                    
+                    ctx.beginPath();
+                    ctx.arc(
+                        particle.position.x,
+                        particle.position.y,
+                        ringRadius,
+                        0,
+                        Math.PI * 2
+                    );
+                    ctx.strokeStyle = particle.color;
+                    ctx.lineWidth = particle.ringWidth * (1 - (i * 0.2));
+                    ctx.globalAlpha = ringAlpha;
+                    ctx.stroke();
+                }
+                
+                // Draw affected area
+                ctx.beginPath();
+                ctx.arc(
+                    particle.position.x,
+                    particle.position.y,
+                    radius,
+                    0,
+                    Math.PI * 2
+                );
+                ctx.fillStyle = particle.color + '20'; // Very transparent fill
+                ctx.fill();
+            } else {
+                // Original particle rendering
+                ctx.fillStyle = particle.color;
+                ctx.beginPath();
+                ctx.arc(
+                    particle.position.x,
+                    particle.position.y,
+                    particle.size * (1 - lifePercent),
+                    0,
+                    Math.PI * 2
+                );
+                ctx.fill();
+            }
+        }
+    });
+    ctx.globalAlpha = 1;
+}
+
+// Add new render function for projectiles
+function renderProjectiles(ctx, projectiles) {
+    const cellSize = canvas.width / 20;
+    
+    projectiles.forEach(projectile => {
+        const age = performance.now() - projectile.createdAt;
+        const progress = age / projectile.lifetime;
+        
+        if (progress <= 1) {
+            // Draw projectile trail
+            ctx.beginPath();
+            ctx.moveTo(
+                projectile.startPos.x * cellSize + cellSize / 2,
+                projectile.startPos.y * cellSize + cellSize / 2
+            );
+            
+            const currentX = projectile.startPos.x + (projectile.targetPos.x - projectile.startPos.x) * progress;
+            const currentY = projectile.startPos.y + (projectile.targetPos.y - projectile.startPos.y) * progress;
+            
+            ctx.lineTo(
+                currentX * cellSize + cellSize / 2,
+                currentY * cellSize + cellSize / 2
+            );
+            
+            ctx.strokeStyle = '#fff';
+            ctx.lineWidth = 2;
+            ctx.stroke();
+            
+            // Draw projectile head
+            ctx.beginPath();
+            ctx.arc(
+                currentX * cellSize + cellSize / 2,
+                currentY * cellSize + cellSize / 2,
+                4,
+                0,
+                Math.PI * 2
+            );
+            ctx.fillStyle = '#fff';
+            ctx.fill();
+        }
+    });
+}
+
+// Update level complete message in game.js
+function handleLevelComplete() {
+    gameState.phase = GamePhase.TRANSITION;
+    
+    // Calculate ammo bonus
+    let ammoBonus = 0;
+    gameState.towers.forEach(tower => {
+        ammoBonus += tower.ammo * 2;
+    });
+    
+    const message = `
+        Level ${gameState.level} Complete!
+        Current Money: $${gameState.currency}
+        Ammo Bonus: +$${ammoBonus}
+        Level Bonus: +$10
+        
+        Ready for Level ${gameState.level + 1}?
+    `;
+    
+    setTimeout(() => {
+        if (confirm(message)) {
+            startNextLevel();
+        }
+    }, 100);
+} 
\ No newline at end of file
diff --git a/html/tower/js/uiHandlers.js b/html/tower/js/uiHandlers.js
new file mode 100644
index 0000000..00651ca
--- /dev/null
+++ b/html/tower/js/uiHandlers.js
@@ -0,0 +1,96 @@
+/**
+ * UI Handlers Module
+ * 
+ * This module manages user interactions and UI state.
+ * Implements:
+ * 1. Drag and Drop system
+ * 2. Event handling
+ * 3. UI state management
+ * 4. Input validation
+ * 
+ * @module uiHandlers
+ */
+
+/**
+ * Initializes drag and drop functionality for tower placement
+ * Implements HTML5 Drag and Drop API
+ * 
+ * @param {HTMLCanvasElement} canvas - Game canvas element
+ * @param {Object} gameState - Current game state
+ * @returns {Object} Drag handlers and state information
+ */
+function initializeDragAndDrop(canvas, gameState) {
+    let draggedTowerType = null;
+    let hoverCell = null;
+
+    const dragHandlers = {
+        /**
+         * Handles start of tower drag operation
+         * Sets up drag data and visual feedback
+         */
+        onDragStart: (e) => {
+            draggedTowerType = e.target.dataset.towerType;
+            e.dataTransfer.setData('text/plain', '');
+        },
+        
+        /**
+         * Handles end of drag operation
+         * Cleans up drag state
+         */
+        onDragEnd: () => {
+            draggedTowerType = null;
+            hoverCell = null;
+        },
+        
+        /**
+         * Handles drag over canvas
+         * Updates hover position and preview
+         */
+        onDragOver: (e) => {
+            e.preventDefault();
+            const rect = canvas.getBoundingClientRect();
+            const x = Math.floor((e.clientX - rect.left) / (canvas.width / 20));
+            const y = Math.floor((e.clientY - rect.top) / (canvas.height / 20));
+            
+            hoverCell = (x >= 0 && x < 20 && y >= 0 && y < 20) ? { x, y } : null;
+        },
+        
+        /**
+         * Handles tower placement on drop
+         * Validates placement and updates game state
+         */
+        onDrop: (e) => {
+            e.preventDefault();
+            if (!draggedTowerType || !hoverCell) return;
+            
+            placeTower(gameState, draggedTowerType, hoverCell);
+            draggedTowerType = null;
+            hoverCell = null;
+        }
+    };
+
+    return { 
+        dragHandlers, 
+        getHoverInfo: () => ({ draggedTowerType, hoverCell }) 
+    };
+}
+
+/**
+ * Places a tower in the game grid
+ * Implements tower placement validation and state updates
+ * 
+ * @param {Object} gameState - Current game state
+ * @param {string} towerType - Type of tower to place
+ * @param {Object} position - Grid position for placement
+ */
+function placeTower(gameState, towerType, position) {
+    const tower = TowerTypes[towerType];
+    if (
+        gameState.grid[position.y][position.x] === 'empty' &&
+        gameState.currency >= tower.cost
+    ) {
+        gameState.grid[position.y][position.x] = 'tower';
+        gameState.towers.push(createTower(towerType, { ...position }));
+        gameState.currency -= tower.cost;
+    }
+} 
\ No newline at end of file
diff --git a/html/voice-memos/app.js b/html/voice-memos/app.js
new file mode 100644
index 0000000..d21d1fa
--- /dev/null
+++ b/html/voice-memos/app.js
@@ -0,0 +1,606 @@
+/**
+ * @typedef {Object} AudioState
+ * @property {MediaRecorder} mediaRecorder - The MediaRecorder instance
+ * @property {AudioContext} audioContext - The Web Audio API context
+ * @property {AnalyserNode} analyser - The analyser node for waveform visualization
+ * @property {Array<Blob>} audioChunks - Array of audio data chunks
+ * @property {boolean} isRecording - Recording state flag
+ * @property {number} countdown - Countdown value before recording starts
+ * @property {boolean} isPlaying - Playback state flag
+ * @property {number} recordingStartTime - Timestamp when recording started
+ * @property {string} lastError - Last error message
+ * @property {string} mimeType - MIME type for recording
+ */
+
+/**
+ * @type {AudioState}
+ */
+const initialState = {
+    mediaRecorder: null,
+    audioContext: null,
+    analyser: null,
+    audioChunks: [],
+    isRecording: false,
+    countdown: 0,
+    isPlaying: false,
+    recordingStartTime: 0,
+    lastError: '',
+    mimeType: null
+};
+
+/**
+ * Constants for local storage
+ */
+const STORAGE_KEYS = {
+    LAST_DEVICE_ID: 'voice_memo_last_device_id'
+};
+
+/**
+ * DOM Elements
+ */
+const elements = {
+    inputSource: document.getElementById('inputSource'),
+    startBtn: document.getElementById('startBtn'),
+    stopBtn: document.getElementById('stopBtn'),
+    playBtn: document.getElementById('playBtn'),
+    saveBtn: document.getElementById('saveBtn'),
+    waveform: document.getElementById('waveform'),
+    status: document.getElementById('status')
+};
+
+/**
+ * @returns {Object} State management functions
+ */
+const createStateManager = () => {
+    let state = { ...initialState };
+
+    return {
+        getState: () => ({ ...state }),
+        setState: (newState) => {
+            state = { ...state, ...newState };
+            updateUI();
+        }
+    };
+};
+
+const stateManager = createStateManager();
+
+/**
+ * Formats elapsed time to MM:SS
+ * @param {number} seconds - Time in seconds
+ * @returns {string} Formatted time string
+ */
+const formatTime = (seconds) => {
+    const minutes = Math.floor(seconds / 60);
+    const remainingSeconds = Math.floor(seconds % 60);
+    return `${minutes.toString().padStart(2, '0')}:${remainingSeconds.toString().padStart(2, '0')}`;
+};
+
+const updateUI = () => {
+    const { 
+        isRecording, 
+        audioChunks, 
+        countdown, 
+        isPlaying, 
+        recordingStartTime,
+        lastError 
+    } = stateManager.getState();
+    
+    // Update button states
+    elements.startBtn.disabled = isRecording || countdown > 0;
+    elements.stopBtn.disabled = !isRecording;
+    elements.playBtn.disabled = audioChunks.length === 0 || isRecording || isPlaying;
+    elements.saveBtn.disabled = audioChunks.length === 0 || isRecording;
+    
+    // Update recording indicator
+    const recordingIndicator = document.getElementById('recordingIndicator');
+    if (recordingIndicator) {
+        recordingIndicator.style.display = isRecording ? 'block' : 'none';
+    }
+    
+    // Update status message
+    let statusMessage = '';
+    
+    if (lastError) {
+        statusMessage = `Error: ${lastError}`;
+    } else if (countdown > 0) {
+        statusMessage = `Get ready! Recording starts in ${countdown}...`;
+    } else if (isRecording) {
+        const elapsedTime = formatTime((Date.now() - recordingStartTime) / 1000);
+        statusMessage = `Recording in progress... (${elapsedTime})`;
+    } else if (isPlaying) {
+        statusMessage = 'Playing recording...';
+    } else if (audioChunks.length > 0) {
+        statusMessage = 'Recording complete. You can play it back or save it.';
+    } else if (!elements.inputSource.value) {
+        statusMessage = 'Please allow microphone access and select an input source';
+    } else {
+        statusMessage = 'Ready to record. Click "Record" to begin.';
+    }
+    
+    elements.status.textContent = statusMessage;
+};
+
+/**
+ * Saves the selected device ID to local storage
+ * Retains the last selected audio input device ID
+ * @param {string} deviceId - The device ID to save
+ */
+const saveSelectedDevice = (deviceId) => {
+    try {
+        localStorage.setItem(STORAGE_KEYS.LAST_DEVICE_ID, deviceId);
+    } catch (error) {
+        console.warn('Could not save device preference:', error);
+    }
+};
+
+/**
+ * Gets the last selected device ID from local storage
+ * so that the user doesn't have to select the same device every time
+ * @returns {string|null} The last selected device ID or null if not found
+ */
+const getLastSelectedDevice = () => {
+    try {
+        return localStorage.getItem(STORAGE_KEYS.LAST_DEVICE_ID);
+    } catch (error) {
+        console.warn('Could not retrieve device preference:', error);
+        return null;
+    }
+};
+
+const populateInputSources = async () => {
+    try {
+        // First, request microphone permission to get device labels
+        await navigator.mediaDevices.getUserMedia({ audio: true });
+        
+        const devices = await navigator.mediaDevices.enumerateDevices();
+        const audioInputs = devices.filter(device => device.kind === 'audioinput');
+        
+        if (audioInputs.length === 0) {
+            elements.status.textContent = 'No audio input devices found';
+            return;
+        }
+        
+        elements.inputSource.innerHTML = audioInputs
+            .map(device => `<option value="${device.deviceId}">${device.label || `Microphone ${device.deviceId.slice(0, 5)}`}</option>`)
+            .join('');
+
+        // Try to restore the last selected device
+        const lastDeviceId = getLastSelectedDevice();
+        if (lastDeviceId) {
+            // Check if the last used device still exists
+            const deviceExists = audioInputs.some(device => device.deviceId === lastDeviceId);
+            if (deviceExists) {
+                elements.inputSource.value = lastDeviceId;
+            }
+        }
+            
+        elements.status.textContent = 'Ready to record. Click "Start Recording" to begin.';
+    } catch (error) {
+        console.error('Error getting audio devices:', error);
+        elements.status.textContent = 'Please allow microphone access to continue';
+    }
+};
+
+/**
+ * Creates and configures the audio context and analyzer
+ * @returns {Promise<{audioContext: AudioContext, analyser: AnalyserNode}>}
+ */
+const createAudioContext = async () => {
+    const audioContext = new (window.AudioContext || window.webkitAudioContext)();
+    const analyser = audioContext.createAnalyser();
+    analyser.fftSize = 2048;
+    
+    return { audioContext, analyser };
+};
+
+/**
+ * Sets up the waveform visualization
+ * @param {AnalyserNode} analyser - The analyzer node
+ */
+const setupWaveformVisualization = (analyser) => {
+    const bufferLength = analyser.frequencyBinCount;
+    const dataArray = new Uint8Array(bufferLength);
+    const canvas = document.createElement('canvas');
+    const canvasCtx = canvas.getContext('2d');
+    const recordingIndicator = document.getElementById('recordingIndicator');
+    
+    // Show recording indicator
+    recordingIndicator.style.display = 'block';
+    
+    elements.waveform.innerHTML = '';
+    elements.waveform.appendChild(canvas);
+    
+    const draw = () => {
+        if (!stateManager.getState().isRecording) {
+            recordingIndicator.style.display = 'none';
+            return;
+        }
+        
+        requestAnimationFrame(draw);
+        analyser.getByteTimeDomainData(dataArray);
+        
+        canvas.width = elements.waveform.clientWidth;
+        canvas.height = elements.waveform.clientHeight;
+        
+        // Clear the canvas with a gradient background
+        const gradient = canvasCtx.createLinearGradient(0, 0, 0, canvas.height);
+        gradient.addColorStop(0, '#f8f8f8');
+        gradient.addColorStop(1, '#f2f2f7');
+        canvasCtx.fillStyle = gradient;
+        canvasCtx.fillRect(0, 0, canvas.width, canvas.height);
+        
+        // Draw center line
+        canvasCtx.beginPath();
+        canvasCtx.strokeStyle = '#e5e5ea';
+        canvasCtx.lineWidth = 1;
+        canvasCtx.moveTo(0, canvas.height / 2);
+        canvasCtx.lineTo(canvas.width, canvas.height / 2);
+        canvasCtx.stroke();
+        
+        // Draw waveform
+        canvasCtx.beginPath();
+        canvasCtx.lineWidth = 2;
+        canvasCtx.strokeStyle = '#ff3b30';
+        
+        const sliceWidth = canvas.width / bufferLength;
+        let x = 0;
+        
+        const smoothedData = [];
+        const smoothingFactor = 0.2;
+        
+        for (let i = 0; i < bufferLength; i++) {
+            const raw = dataArray[i] / 128.0 - 1.0;
+            
+            if (i > 0) {
+                smoothedData.push(smoothedData[i-1] * smoothingFactor + raw * (1 - smoothingFactor));
+            } else {
+                smoothedData.push(raw);
+            }
+        }
+        
+        for (let i = 0; i < bufferLength; i++) {
+            const v = smoothedData[i];
+            const y = (v * canvas.height / 4) + canvas.height / 2;
+            
+            if (i === 0) {
+                canvasCtx.moveTo(x, y);
+            } else {
+                canvasCtx.lineTo(x, y);
+            }
+            
+            x += sliceWidth;
+        }
+        
+        canvasCtx.stroke();
+        
+        // Draw a reflection of the waveform
+        canvasCtx.beginPath();
+        canvasCtx.strokeStyle = 'rgba(255, 59, 48, 0.3)';
+        x = 0;
+        
+        for (let i = 0; i < bufferLength; i++) {
+            const v = -smoothedData[i]; // Mirror the waveform
+            const y = (v * canvas.height / 4) + canvas.height / 2;
+            
+            if (i === 0) {
+                canvasCtx.moveTo(x, y);
+            } else {
+                canvasCtx.lineTo(x, y);
+            }
+            
+            x += sliceWidth;
+        }
+        
+        canvasCtx.stroke();
+    };
+    
+    draw();
+};
+
+/**
+ * Determines the best supported MIME type for the current browser
+ * @returns {string} The best supported MIME type or null if none found
+ */
+const getSupportedMimeType = () => {
+    const types = [
+        'audio/webm',
+        'audio/mp4',
+        'audio/ogg',
+        'audio/wav',
+        'audio/mpeg'
+    ];
+    
+    // Add codec options for better compatibility
+    const typesWithCodecs = [
+        'audio/webm;codecs=opus',
+        'audio/webm;codecs=pcm',
+        'audio/mp4;codecs=mp4a.40.2'
+    ];
+    
+    // Combine all types to check
+    const allTypes = [...typesWithCodecs, ...types];
+    
+    for (const type of allTypes) {
+        if (MediaRecorder.isTypeSupported(type)) {
+            console.log(`Browser supports recording with MIME type: ${type}`);
+            return type;
+        }
+    }
+    
+    console.warn('No supported MIME types found for MediaRecorder');
+    return null;
+};
+
+/**
+ * Starts the recording process after a countdown
+ */
+const startRecording = async () => {
+    try {
+        stateManager.setState({ 
+            countdown: 3,
+            lastError: ''
+        });
+        
+        // Countdown loop
+        for (let i = 3; i > 0; i--) {
+            await new Promise(resolve => setTimeout(resolve, 1000));
+            stateManager.setState({ countdown: i - 1 });
+        }
+        
+        const deviceId = elements.inputSource.value;
+        const constraints = {
+            audio: deviceId ? { deviceId: { exact: deviceId } } : true
+        };
+        
+        const stream = await navigator.mediaDevices.getUserMedia(constraints);
+        
+        const { audioContext, analyser } = await createAudioContext();
+        const source = audioContext.createMediaStreamSource(stream);
+        source.connect(analyser);
+        
+        // Get supported MIME type
+        const mimeType = getSupportedMimeType();
+        
+        // Create MediaRecorder with options if mimeType is supported
+        const options = mimeType ? { mimeType } : undefined;
+        const mediaRecorder = new MediaRecorder(stream, options);
+        const audioChunks = [];
+        
+        mediaRecorder.ondataavailable = (event) => {
+            if (event.data.size > 0) {
+                audioChunks.push(event.data);
+                stateManager.setState({ audioChunks });
+            }
+        };
+        
+        mediaRecorder.onstop = () => {
+            const finalChunks = [...audioChunks];
+            stateManager.setState({ 
+                audioChunks: finalChunks,
+                isRecording: false,
+                countdown: 0
+            });
+        };
+        
+        // Start recording with 1 second timeslices to ensure we get data chunks
+        // FIXME: experiment with different chunk sizes
+        mediaRecorder.start(1000);
+        
+        stateManager.setState({
+            mediaRecorder,
+            audioContext,
+            analyser,
+            audioChunks,
+            isRecording: true,
+            countdown: 0,
+            recordingStartTime: Date.now(),
+            mimeType: mediaRecorder.mimeType
+        });
+        
+        setupWaveformVisualization(analyser);
+    } catch (error) {
+        console.error('Error starting recording:', error);
+        stateManager.setState({ 
+            countdown: 0,
+            lastError: 'Failed to start recording. Please check microphone permissions.'
+        });
+    }
+};
+
+/**
+ * Stops the recording and prepares for playback
+ */
+const stopRecording = () => {
+    const { mediaRecorder } = stateManager.getState();
+    
+    if (mediaRecorder && mediaRecorder.state !== 'inactive') {
+        mediaRecorder.stop();
+        mediaRecorder.stream.getTracks().forEach(track => track.stop());
+    }
+};
+
+/**
+ * Plays back the recorded audio
+ */
+const playRecording = () => {
+    const { audioChunks, mimeType } = stateManager.getState();
+    
+    // Use the detected MIME type or fallback to a generic audio type
+    const blobType = mimeType || 'audio/webm';
+    const audioBlob = new Blob(audioChunks, { type: blobType });
+    const audioUrl = URL.createObjectURL(audioBlob);
+    
+    const audio = new Audio(audioUrl);
+    
+    stateManager.setState({ isPlaying: true });
+    
+    // Add error handling before playing
+    const playPromise = audio.play();
+    
+    if (playPromise !== undefined) {
+        playPromise
+            .then(() => {
+                console.log('Audio playback started successfully');
+            })
+            .catch(error => {
+                console.error('Error playing audio:', error);
+                URL.revokeObjectURL(audioUrl);
+                stateManager.setState({ 
+                    isPlaying: false,
+                    lastError: `Playback error: ${error.message || 'Could not play recording in this browser'}`
+                });
+                
+                // Try alternative playback method for Safari
+                if (error.name === 'NotSupportedError') {
+                    tryAlternativePlayback(audioBlob);
+                }
+            });
+    }
+    
+    audio.onended = () => {
+        URL.revokeObjectURL(audioUrl);
+        stateManager.setState({ isPlaying: false });
+    };
+};
+
+/**
+ * Attempts alternative playback methods for Safari
+ * @param {Blob} audioBlob - The audio blob to play
+ */
+const tryAlternativePlayback = async (audioBlob) => {
+    try {
+        // Create a new audio context
+        const audioContext = new (window.AudioContext || window.webkitAudioContext)();
+        
+        // Convert blob to array buffer
+        const arrayBuffer = await audioBlob.arrayBuffer();
+        
+        // Decode the audio data
+        const audioBuffer = await audioContext.decodeAudioData(arrayBuffer);
+        
+        // Create a buffer source
+        const source = audioContext.createBufferSource();
+        source.buffer = audioBuffer;
+        source.connect(audioContext.destination);
+        
+        // Play the audio
+        source.start(0);
+        
+        stateManager.setState({ isPlaying: true });
+        
+        // Handle playback completion
+        source.onended = () => {
+            stateManager.setState({ isPlaying: false });
+        };
+        
+        console.log('Using alternative playback method for Safari');
+    } catch (error) {
+        console.error('Alternative playback failed:', error);
+        stateManager.setState({ 
+            isPlaying: false,
+            lastError: 'Could not play recording in this browser. Try saving and playing externally.'
+        });
+    }
+};
+
+/**
+ * Saves the recording as an audio file with proper metadata
+ */
+const saveRecording = async () => {
+    const { audioChunks, mimeType, recordingStartTime } = stateManager.getState();
+    
+    // Use the detected MIME type or fallback to a generic audio type
+    const blobType = mimeType || 'audio/webm';
+    const audioBlob = new Blob(audioChunks, { type: blobType });
+    
+    // Calculate recording duration
+    const recordingDuration = recordingStartTime ? 
+        Math.floor((Date.now() - recordingStartTime) / 1000) : 0;
+    
+    // Get device information
+    const deviceId = elements.inputSource.value;
+    const deviceLabel = Array.from(elements.inputSource.options)
+        .find(option => option.value === deviceId)?.text || 'Unknown Device';
+    
+    // Format current date for filename
+    const now = new Date();
+    const formattedDate = now.toISOString().replace(/[:.]/g, '-');
+    
+    // Determine file extension based on MIME type
+    let fileExtension = 'webm';
+    if (mimeType) {
+        if (mimeType.includes('mp4')) fileExtension = 'mp4';
+        else if (mimeType.includes('mp3') || mimeType.includes('mpeg')) fileExtension = 'mp3';
+        else if (mimeType.includes('ogg')) fileExtension = 'ogg';
+        else if (mimeType.includes('wav')) fileExtension = 'wav';
+    }
+    
+    // For formats that support metadata through the Web Audio API
+    if (fileExtension === 'wav' || fileExtension === 'mp3') {
+        try {
+            // Create a new audio context
+            const audioContext = new (window.AudioContext || window.webkitAudioContext)();
+            
+            // Convert blob to array buffer
+            const arrayBuffer = await audioBlob.arrayBuffer();
+            
+            // Decode the audio data
+            const audioBuffer = await audioContext.decodeAudioData(arrayBuffer);
+            
+            // Create metadata object
+            const metadata = {
+                title: `Voice Memo ${formattedDate}`,
+                artist: 'Audio Gremlins',
+                album: 'Voice Recordings',
+                date: now.toISOString(),
+                device: deviceLabel,
+                duration: recordingDuration,
+                sampleRate: audioBuffer.sampleRate,
+                numberOfChannels: audioBuffer.numberOfChannels
+            };
+            
+            console.log('Audio metadata:', metadata);
+            
+            // Note: Web browsers don't provide direct API for writing metadata to audio files
+            // We're logging the metadata and including what we can in the filename
+            
+            // For a complete solution, server-side processing or a dedicated library would be needed
+        } catch (error) {
+            console.warn('Could not process audio metadata:', error);
+        }
+    }
+    
+    // Include some metadata in the filename since browser APIs don't allow direct metadata embedding
+    const filename = `voice-memo_${formattedDate}_${deviceLabel.replace(/[^a-z0-9]/gi, '-')}_${recordingDuration}s.${fileExtension}`;
+    
+    // Create download link
+    const audioUrl = URL.createObjectURL(audioBlob);
+    const a = document.createElement('a');
+    a.href = audioUrl;
+    a.download = filename;
+    document.body.appendChild(a);
+    a.click();
+    document.body.removeChild(a);
+    URL.revokeObjectURL(audioUrl);
+    
+    // Log metadata for debugging
+    console.log('Saved recording with filename:', filename);
+    console.log('Recording details:', {
+        timestamp: now.toISOString(),
+        duration: recordingDuration + 's',
+        device: deviceLabel,
+        mimeType: blobType,
+        fileSize: Math.round(audioBlob.size / 1024) + 'KB'
+    });
+};
+
+// Event Listeners
+elements.startBtn.addEventListener('click', startRecording);
+elements.stopBtn.addEventListener('click', stopRecording);
+elements.playBtn.addEventListener('click', playRecording);
+elements.saveBtn.addEventListener('click', saveRecording);
+elements.inputSource.addEventListener('change', (e) => saveSelectedDevice(e.target.value));
+
+// Initialize
+populateInputSources();
\ No newline at end of file
diff --git a/html/voice-memos/index.html b/html/voice-memos/index.html
new file mode 100644
index 0000000..af4aaef
--- /dev/null
+++ b/html/voice-memos/index.html
@@ -0,0 +1,248 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <meta name="theme-color" content="#ff3b30">
+    <meta name="apple-mobile-web-app-capable" content="yes">
+    <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
+    <title>Voice Memos</title>
+    <style>
+        :root {
+            --primary-color: #ff3b30;
+            --secondary-color: #34c759;
+            --text-color: #333;
+            --light-gray: #f2f2f7;
+            --medium-gray: #e5e5ea;
+            --dark-gray: #8e8e93;
+            --border-radius: 12px;
+            --safe-area-inset-bottom: env(safe-area-inset-bottom, 0px);
+        }
+        
+        * {
+            -webkit-tap-highlight-color: transparent;
+            box-sizing: border-box;
+        }
+        
+        body {
+            font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
+            max-width: 800px;
+            margin: 0 auto;
+            padding: 20px;
+            background-color: beige;
+            color: var(--text-color);
+            -webkit-touch-callout: none;
+            -webkit-user-select: none;
+            user-select: none;
+        }
+        
+        .container {
+            background-color: white;
+            padding: 24px;
+            border-radius: var(--border-radius);
+            box-shadow: 0 4px 20px rgba(0,0,0,0.08);
+        }
+        
+        h1 {
+            font-size: 24px;
+            font-weight: 600;
+            margin-top: 0;
+            margin-bottom: 24px;
+            text-align: center;
+        }
+        
+        .input-container {
+            margin-bottom: 24px;
+        }
+        
+        .controls {
+            display: flex;
+            gap: 12px;
+            margin: 24px 0;
+            justify-content: center;
+        }
+        
+        button {
+            padding: 10px 20px;
+            border: none;
+            border-radius: 24px;
+            font-weight: 500;
+            font-size: 14px;
+            cursor: pointer;
+            transition: all 0.2s ease;
+            display: flex;
+            align-items: center;
+            justify-content: center;
+            min-width: 100px;
+            touch-action: manipulation;
+        }
+        
+        button:active {
+            transform: scale(0.96);
+        }
+        
+        /* Mobile styles */
+        @media screen and (max-width: 600px) {
+            body {
+                padding: 12px;
+            }
+            
+            .container {
+                padding: 16px;
+                padding-bottom: calc(16px + var(--safe-area-inset-bottom));
+                margin-bottom: env(safe-area-inset-bottom);
+            }
+            
+            .controls {
+                flex-direction: column;
+                gap: 16px;
+                padding: 0;
+            }
+            
+            button {
+                width: 100%;
+                padding: 16px 20px;
+                font-size: 16px;
+                min-width: unset;
+                min-height: 48px;
+            }
+            
+            select {
+                height: 48px;
+                font-size: 16px;
+                padding: 12px 16px;
+            }
+            
+            .waveform-container {
+                height: 100px;
+                margin: 16px 0;
+            }
+            
+            .status {
+                font-size: 15px;
+                padding: 8px 0;
+            }
+        }
+        
+        #startBtn {
+            background-color: var(--primary-color);
+            color: white;
+        }
+        
+        #stopBtn {
+            background-color: var(--dark-gray);
+            color: white;
+        }
+        
+        #playBtn {
+            background-color: var(--secondary-color);
+            color: white;
+        }
+        
+        #saveBtn {
+            background-color: #007AFF;
+            color: white;
+        }
+        
+        button:disabled {
+            background-color: var(--medium-gray) !important;
+            color: var(--dark-gray);
+            cursor: not-allowed;
+            transform: none;
+            box-shadow: none;
+        }
+        
+        select {
+            width: 100%;
+            padding: 12px;
+            border-radius: var(--border-radius);
+            border: 1px solid var(--medium-gray);
+            background-color: var(--light-gray);
+            font-size: 14px;
+            appearance: none;
+            background-repeat: no-repeat;
+            background-position: right 12px top 50%;
+            background-size: 12px auto;
+            touch-action: manipulation;
+        }
+        
+        .waveform-container {
+            position: relative;
+            width: 100%;
+            height: 120px;
+            background-color: var(--light-gray);
+            border-radius: var(--border-radius);
+            margin: 24px 0;
+            overflow: hidden;
+        }
+        
+        #waveform {
+            width: 100%;
+            height: 100%;
+            display: flex;
+            align-items: center;
+            justify-content: center;
+        }
+        
+        .status {
+            text-align: center;
+            margin: 16px 0;
+            font-size: 14px;
+            color: var(--dark-gray);
+            font-weight: 500;
+        }
+        
+        .recording-indicator {
+            display: none;
+            position: absolute;
+            top: 10px;
+            right: 10px;
+            width: 12px;
+            height: 12px;
+            border-radius: 50%;
+            background-color: var(--primary-color);
+            animation: pulse 1.5s infinite;
+        }
+        
+        @keyframes pulse {
+            0% {
+                transform: scale(0.95);
+                box-shadow: 0 0 0 0 rgba(255, 59, 48, 0.7);
+            }
+            
+            70% {
+                transform: scale(1);
+                box-shadow: 0 0 0 10px rgba(255, 59, 48, 0);
+            }
+            
+            100% {
+                transform: scale(0.95);
+                box-shadow: 0 0 0 0 rgba(255, 59, 48, 0);
+            }
+        }
+    </style>
+</head>
+<body>
+    <div class="container">
+        
+        <div class="input-container">
+            <select id="inputSource"></select>
+        </div>
+        
+        <div class="waveform-container">
+            <div id="waveform"></div>
+            <div class="recording-indicator" id="recordingIndicator"></div>
+        </div>
+        
+        <div class="controls">
+            <button id="startBtn">Record</button>
+            <button id="stopBtn" disabled>Stop</button>
+            <button id="playBtn" disabled>Play</button>
+            <button id="saveBtn" disabled>Save</button>
+        </div>
+        
+        <div id="status" class="status">Select an input source to begin</div>
+    </div>
+    <script src="app.js"></script>
+</body>
+</html>
\ No newline at end of file